From 4a0977b0f6d61a42bcfabcfc05ec1ee6531e14f1 Mon Sep 17 00:00:00 2001 From: Ivaylo Ivanov Date: Tue, 6 Aug 2024 13:25:07 +0300 Subject: [PATCH] lib: Replace the broken newlib implementation with neatlibc Make 2 different folders for armv7 and aarch64 assembly neatlibc functions. Add the neatlibc submodule, make it work against the Makefile system. Pray. Signed-off-by: Ivaylo Ivanov --- .gitmodules | 3 + Makefile | 3 +- include/COPYING | 340 - include/COPYING3 | 674 - include/_ansi.h | 82 - include/_newlib_version.h | 2 - include/_syslist.h | 40 - include/alloca-conf.h | 60 - include/alloca.h | 21 - include/ansidecl.h | 329 - include/aout/ChangeLog | 262 - include/aout/adobe.h | 314 - include/aout/aout64.h | 516 - include/aout/ar.h | 55 - include/aout/dynix3.h | 87 - include/aout/encap.h | 135 - include/aout/host.h | 43 - include/aout/hp.h | 83 - include/aout/hp300hpux.h | 132 - include/aout/hppa.h | 22 - include/aout/ranlib.h | 63 - include/aout/reloc.h | 67 - include/aout/stab.def | 283 - include/aout/stab_gnu.h | 55 - include/aout/sun4.h | 239 - include/ar.h | 65 - include/argz.h | 33 - include/arm-acle-compat.h | 182 - include/assert.h | 50 - include/bfdlink.h | 842 - include/binary-io.h | 62 - include/bout.h | 192 - include/cgen/ChangeLog | 32 - include/cgen/basic-modes.h | 52 - include/cgen/basic-ops.h | 347 - include/cgen/bitset.h | 56 - include/coff/ChangeLog | 373 - include/coff/ChangeLog-9103 | 1186 -- include/coff/alpha.h | 386 - include/coff/apollo.h | 125 - include/coff/arm.h | 130 - include/coff/aux-coff.h | 49 - include/coff/ecoff.h | 411 - include/coff/external.h | 269 - include/coff/go32exe.h | 36 - include/coff/h8300.h | 55 - include/coff/h8500.h | 47 - include/coff/i386.h | 74 - include/coff/i860.h | 87 - include/coff/i960.h | 320 - include/coff/ia64.h | 89 - include/coff/internal.h | 830 - include/coff/m68k.h | 82 - include/coff/m88k.h | 197 - include/coff/mcore.h | 72 - include/coff/mips.h | 344 - include/coff/mipspe.h | 67 - include/coff/or32.h | 288 - include/coff/pe.h | 512 - include/coff/powerpc.h | 59 - include/coff/rs6000.h | 353 - include/coff/rs6k64.h | 275 - include/coff/sh.h | 148 - include/coff/sparc.h | 156 - include/coff/sym.h | 484 - include/coff/symconst.h | 184 - include/coff/ti.h | 561 - include/coff/tic30.h | 51 - include/coff/tic4x.h | 47 - include/coff/tic54x.h | 60 - include/coff/tic80.h | 123 - include/coff/w65.h | 47 - include/coff/we32k.h | 62 - include/coff/x86_64.h | 57 - include/coff/xcoff.h | 647 - include/coff/z80.h | 60 - include/coff/z8k.h | 49 - include/complex.h | 150 - include/cpio.h | 30 - include/ctype.h | 183 - include/demangle.h | 691 - include/devctl.h | 78 - include/dirent.h | 85 - include/dis-asm.h | 382 - include/dwarf2.def | 713 - include/dwarf2.h | 434 - include/dyn-string.h | 72 - include/elf.h | 3147 ---- include/elf/ChangeLog | 1892 -- include/elf/ChangeLog-9103 | 1957 -- include/elf/aarch64.h | 327 - include/elf/alpha.h | 131 - include/elf/arc.h | 57 - include/elf/arm.h | 344 - include/elf/avr.h | 86 - include/elf/bfin.h | 95 - include/elf/common.h | 1001 - include/elf/cr16.h | 62 - include/elf/cr16c.h | 258 - include/elf/cris.h | 193 - include/elf/crx.h | 53 - include/elf/d10v.h | 38 - include/elf/d30v.h | 42 - include/elf/dlx.h | 53 - include/elf/dwarf.h | 323 - include/elf/epiphany.h | 59 - include/elf/external.h | 288 - include/elf/fr30.h | 42 - include/elf/frv.h | 130 - include/elf/h8.h | 101 - include/elf/hppa.h | 635 - include/elf/i370.h | 61 - include/elf/i386.h | 79 - include/elf/i860.h | 66 - include/elf/i960.h | 37 - include/elf/ia64.h | 416 - include/elf/internal.h | 360 - include/elf/ip2k.h | 62 - include/elf/iq2000.h | 58 - include/elf/lm32.h | 56 - include/elf/m32c.h | 67 - include/elf/m32r.h | 123 - include/elf/m68hc11.h | 107 - include/elf/m68k.h | 102 - include/elf/mcore.h | 47 - include/elf/mep.h | 95 - include/elf/metag.h | 91 - include/elf/microblaze.h | 71 - include/elf/mips.h | 1172 -- include/elf/mmix.h | 173 - include/elf/mn10200.h | 40 - include/elf/mn10300.h | 80 - include/elf/moxie.h | 32 - include/elf/msp430.h | 101 - include/elf/mt.h | 46 - include/elf/nios2.h | 91 - include/elf/openrisc.h | 39 - include/elf/or32.h | 56 - include/elf/pj.h | 44 - include/elf/ppc.h | 223 - include/elf/ppc64.h | 177 - include/elf/reloc-macros.h | 129 - include/elf/rl78.h | 120 - include/elf/rx.h | 141 - include/elf/s390.h | 134 - include/elf/score.h | 130 - include/elf/sh.h | 250 - include/elf/sparc.h | 231 - include/elf/spu.h | 61 - include/elf/tic6x-attrs.h | 35 - include/elf/tic6x.h | 167 - include/elf/tilegx.h | 176 - include/elf/tilepro.h | 144 - include/elf/v850.h | 283 - include/elf/vax.h | 51 - include/elf/vxworks.h | 33 - include/elf/x86-64.h | 90 - include/elf/xc16x.h | 40 - include/elf/xgate.h | 77 - include/elf/xstormy16.h | 57 - include/elf/xtensa.h | 208 - include/environ.h | 33 - include/envlock.h | 15 - include/envz.h | 16 - include/errno.h | 11 - include/fastmath.h | 13 - include/fcntl.h | 1 - include/fenv.h | 42 - include/fibheap.h | 94 - include/filenames.h | 99 - include/floatformat.h | 159 - include/fnmatch.h | 55 - include/fopen-bin.h | 44 - include/fopen-same.h | 44 - include/fopen-vms.h | 42 - include/ftw.h | 66 - include/gcc-c-fe.def | 197 - include/gcc-c-interface.h | 220 - include/gcc-interface.h | 127 - include/gdb/ChangeLog | 272 - include/gdb/callback.h | 338 - include/gdb/fileio.h | 144 - include/gdb/gdb-index.h | 99 - include/gdb/remote-sim.h | 287 - include/gdb/signals.def | 200 - include/gdb/signals.h | 58 - include/gdb/sim-arm.h | 112 - include/gdb/sim-bfin.h | 82 - include/gdb/sim-cr16.h | 106 - include/gdb/sim-d10v.h | 141 - include/gdb/sim-frv.h | 51 - include/gdb/sim-h8300.h | 77 - include/gdb/sim-lm32.h | 76 - include/gdb/sim-m32c.h | 62 - include/gdb/sim-ppc.h | 773 - include/gdb/sim-rl78.h | 76 - include/gdb/sim-rx.h | 56 - include/gdb/sim-sh.h | 169 - include/gdbm.h | 91 - include/getopt.h | 185 - include/glob.h | 90 - include/gomp-constants.h | 259 - include/grp.h | 86 - include/hashtab.h | 204 - include/hp-symtab.h | 1867 -- include/iconv.h | 63 - include/ieee.h | 165 - include/ieeefp.h | 295 - include/inttypes.h | 345 - include/langinfo.h | 332 - include/leb128.h | 136 - include/libgen.h | 37 - include/libiberty.h | 739 - include/limits.h | 147 - include/locale.h | 96 - include/longlong.h | 1758 -- include/lto-symtab.h | 41 - include/mach-o/ChangeLog | 81 - include/mach-o/arm.h | 37 - include/mach-o/codesign.h | 85 - include/mach-o/external.h | 348 - include/mach-o/loader.h | 378 - include/mach-o/reloc.h | 33 - include/mach-o/x86-64.h | 37 - include/machine/_arc4random.h | 1 - include/machine/_default_types.h | 250 - include/machine/_endian.h | 35 - include/machine/_time.h | 3 - include/machine/_types.h | 8 - include/machine/ansi.h | 1 - include/machine/endian.h | 69 - include/machine/fastmath.h | 98 - include/machine/ieee.h | 127 - include/machine/ieeefp.h | 529 - include/machine/malloc.h | 8 - include/machine/param.h | 1 - include/machine/setjmp-dj.h | 43 - include/machine/setjmp.h | 495 - include/machine/stdlib.h | 8 - include/machine/termios.h | 1 - include/machine/time.h | 15 - include/machine/types.h | 13 - include/malloc.h | 173 - include/math.h | 644 - include/md5.h | 154 - include/memory.h | 4 - include/ndbm.h | 91 - include/newlib.h | 2 - include/nlm/ChangeLog | 119 - include/nlm/alpha-ext.h | 167 - include/nlm/common.h | 123 - include/nlm/external.h | 172 - include/nlm/i386-ext.h | 117 - include/nlm/internal.h | 309 - include/nlm/ppc-ext.h | 164 - include/nlm/sparc32-ext.h | 121 - include/oasys.h | 192 - include/objalloc.h | 115 - include/obstack.h | 535 - include/opcode/ChangeLog | 1916 -- include/opcode/ChangeLog-9103 | 3131 ---- include/opcode/aarch64.h | 932 - include/opcode/alpha.h | 238 - include/opcode/arc.h | 322 - include/opcode/arm.h | 289 - include/opcode/avr.h | 300 - include/opcode/bfin.h | 1761 -- include/opcode/cgen.h | 1480 -- include/opcode/convex.h | 1708 -- include/opcode/cr16.h | 451 - include/opcode/cris.h | 367 - include/opcode/crx.h | 419 - include/opcode/d10v.h | 209 - include/opcode/d30v.h | 288 - include/opcode/dlx.h | 283 - include/opcode/h8300.h | 1892 -- include/opcode/hppa.h | 1092 -- include/opcode/i370.h | 267 - include/opcode/i386.h | 148 - include/opcode/i860.h | 507 - include/opcode/i960.h | 525 - include/opcode/ia64.h | 422 - include/opcode/m68hc11.h | 456 - include/opcode/m68k.h | 378 - include/opcode/m88k.h | 455 - include/opcode/metag.h | 2079 -- include/opcode/mips.h | 2151 --- include/opcode/mmix.h | 187 - include/opcode/mn10200.h | 111 - include/opcode/mn10300.h | 170 - include/opcode/moxie.h | 74 - include/opcode/msp430-decode.h | 130 - include/opcode/msp430.h | 194 - include/opcode/nios2.h | 522 - include/opcode/np1.h | 421 - include/opcode/ns32k.h | 487 - include/opcode/or32.h | 181 - include/opcode/pdp11.h | 84 - include/opcode/pj.h | 49 - include/opcode/pn.h | 283 - include/opcode/ppc.h | 413 - include/opcode/pyr.h | 305 - include/opcode/rl78.h | 168 - include/opcode/rx.h | 215 - include/opcode/s390.h | 154 - include/opcode/score-datadep.h | 65 - include/opcode/score-inst.h | 236 - include/opcode/sparc.h | 280 - include/opcode/spu-insns.h | 417 - include/opcode/spu.h | 125 - include/opcode/tahoe.h | 232 - include/opcode/tic30.h | 691 - include/opcode/tic4x.h | 1079 -- include/opcode/tic54x.h | 163 - include/opcode/tic6x-control-registers.h | 56 - include/opcode/tic6x-insn-formats.h | 616 - include/opcode/tic6x-opcode-table.h | 3677 ---- include/opcode/tic6x.h | 718 - include/opcode/tic80.h | 283 - include/opcode/tilegx.h | 1304 -- include/opcode/tilepro.h | 1638 -- include/opcode/v850.h | 240 - include/opcode/vax.h | 383 - include/opcode/xgate.h | 100 - include/os9k.h | 181 - include/partition.h | 82 - include/paths.h | 9 - include/plugin-api.h | 457 - include/progress.h | 38 - include/pthread.h | 456 - include/pwd.h | 83 - include/reent.h | 188 - include/regdef.h | 7 - include/regex.h | 103 - include/rpc/types.h | 85 - include/rpc/xdr.h | 389 - include/safe-ctype.h | 150 - include/sched.h | 112 - include/search.h | 64 - include/setjmp.h | 25 - include/sha1.h | 145 - include/signal.h | 35 - include/simple-object.h | 204 - include/som/ChangeLog | 20 - include/som/aout.h | 249 - include/som/clock.h | 30 - include/som/internal.h | 206 - include/som/lst.h | 93 - include/som/reloc.h | 79 - include/sort.h | 48 - include/spawn.h | 111 - include/splay-tree.h | 156 - include/ssp/ssp.h | 76 - include/ssp/stdio.h | 101 - include/ssp/stdlib.h | 30 - include/ssp/string.h | 115 - include/ssp/strings.h | 55 - include/ssp/unistd.h | 93 - include/ssp/wchar.h | 97 - include/stdatomic.h | 409 - include/stdint.h | 466 - include/stdio.h | 807 - include/stdio_ext.h | 79 - include/stdlib.h | 345 - include/string.h | 183 - include/strings.h | 80 - include/symcat.h | 55 - include/sys/_default_fcntl.h | 240 - include/sys/_intsup.h | 199 - include/sys/_locale.h | 12 - include/sys/_pthreadtypes.h | 233 - include/sys/_sigset.h | 43 - include/sys/_stdint.h | 90 - include/sys/_timespec.h | 52 - include/sys/_timeval.h | 60 - include/sys/_types.h | 228 - include/sys/_tz_structs.h | 24 - include/sys/cdefs.h | 740 - include/sys/config.h | 314 - include/sys/custom_file.h | 2 - include/sys/dir.h | 10 - include/sys/dirent.h | 13 - include/sys/endian.h | 207 - include/sys/errno.h | 198 - include/sys/fcntl.h | 4 - include/sys/features.h | 538 - include/sys/fenv.h | 113 - include/sys/file.h | 2 - include/sys/iconvnls.h | 77 - include/sys/lock.h | 69 - include/sys/mman.h | 166 - include/sys/param.h | 35 - include/sys/queue.h | 919 - include/sys/reent.h | 896 - include/sys/resource.h | 24 - include/sys/sched.h | 69 - include/sys/select.h | 94 - include/sys/signal.h | 388 - include/sys/stat.h | 179 - include/sys/stdio.h | 27 - include/sys/string.h | 2 - include/sys/syslimits.h | 61 - include/sys/time.h | 448 - include/sys/timeb.h | 40 - include/sys/times.h | 32 - include/sys/timespec.h | 63 - include/sys/tree.h | 864 - include/sys/types.h | 228 - include/sys/unistd.h | 586 - include/sys/utime.h | 22 - include/sys/wait.h | 44 - include/tar.h | 43 - include/termios.h | 7 - include/tgmath.h | 185 - include/threads.h | 93 - include/time.h | 313 - include/timeval-utils.h | 40 - include/unctrl.h | 42 - include/unistd.h | 6 - include/utime.h | 12 - include/utmp.h | 8 - include/vms/ChangeLog | 87 - include/vms/dcx.h | 50 - include/vms/dmt.h | 48 - include/vms/dsc.h | 129 - include/vms/dst.h | 274 - include/vms/eeom.h | 62 - include/vms/egps.h | 64 - include/vms/egsd.h | 60 - include/vms/egst.h | 39 - include/vms/egsy.h | 54 - include/vms/eiaf.h | 80 - include/vms/eicp.h | 38 - include/vms/eidc.h | 49 - include/vms/eiha.h | 54 - include/vms/eihd.h | 145 - include/vms/eihi.h | 50 - include/vms/eihs.h | 62 - include/vms/eihvn.h | 58 - include/vms/eisd.h | 118 - include/vms/emh.h | 79 - include/vms/eobjrec.h | 48 - include/vms/esdf.h | 41 - include/vms/esdfm.h | 49 - include/vms/esdfv.h | 49 - include/vms/esgps.h | 72 - include/vms/esrf.h | 36 - include/vms/etir.h | 114 - include/vms/internal.h | 63 - include/vms/lbr.h | 332 - include/vms/prt.h | 43 - include/vms/shl.h | 55 - include/vtv-change-permission.h | 58 - include/wchar.h | 339 - include/wctype.h | 74 - include/wordexp.h | 53 - include/xregex.h | 29 - include/xregex2.h | 564 - include/xtensa-config.h | 176 - include/xtensa-isa-internal.h | 234 - include/xtensa-isa.h | 813 - lib/Makefile | 365 +- lib/acinclude.m4 | 68 - lib/argz/Makefile.inc | 23 - lib/argz/argz_add.c | 32 - lib/argz/argz_add_sep.c | 35 - lib/argz/argz_append.c | 31 - lib/argz/argz_count.c | 25 - lib/argz/argz_create.c | 49 - lib/argz/argz_create_sep.c | 68 - lib/argz/argz_delete.c | 40 - lib/argz/argz_extract.c | 31 - lib/argz/argz_insert.c | 47 - lib/argz/argz_next.c | 36 - lib/argz/argz_replace.c | 93 - lib/argz/argz_stringify.c | 26 - lib/argz/buf_findstr.c | 44 - lib/argz/buf_findstr.h | 12 - lib/argz/envz_add.c | 46 - lib/argz/envz_entry.c | 45 - lib/argz/envz_get.c | 42 - lib/argz/envz_merge.c | 61 - lib/argz/envz_remove.c | 36 - lib/argz/envz_strip.c | 41 - lib/ctype/Makefile.inc | 112 - lib/ctype/caseconv.t | 328 - lib/ctype/categories.c | 40 - lib/ctype/categories.cat | 29 - lib/ctype/categories.h | 7 - lib/ctype/categories.t | 2298 --- lib/ctype/ctype.tex | 143 - lib/ctype/ctype_.c | 185 - lib/ctype/ctype_.h | 22 - lib/ctype/ctype_cp.h | 801 - lib/ctype/ctype_iso.h | 455 - lib/ctype/isalnum.c | 50 - lib/ctype/isalnum_l.c | 10 - lib/ctype/isalpha.c | 49 - lib/ctype/isalpha_l.c | 10 - lib/ctype/isascii.c | 50 - lib/ctype/isascii_l.c | 10 - lib/ctype/isblank.c | 48 - lib/ctype/isblank_l.c | 10 - lib/ctype/iscntrl.c | 52 - lib/ctype/iscntrl_l.c | 10 - lib/ctype/isdigit.c | 51 - lib/ctype/isdigit_l.c | 10 - lib/ctype/islower.c | 49 - lib/ctype/islower_l.c | 10 - lib/ctype/isprint.c | 71 - lib/ctype/isprint_l.c | 18 - lib/ctype/ispunct.c | 51 - lib/ctype/ispunct_l.c | 11 - lib/ctype/isspace.c | 50 - lib/ctype/isspace_l.c | 11 - lib/ctype/isupper.c | 47 - lib/ctype/isupper_l.c | 11 - lib/ctype/iswalnum.c | 43 - lib/ctype/iswalnum_l.c | 23 - lib/ctype/iswalpha.c | 73 - lib/ctype/iswalpha_l.c | 21 - lib/ctype/iswblank.c | 72 - lib/ctype/iswblank_l.c | 20 - lib/ctype/iswcntrl.c | 72 - lib/ctype/iswcntrl_l.c | 20 - lib/ctype/iswctype.c | 75 - lib/ctype/iswctype_l.c | 41 - lib/ctype/iswdigit.c | 43 - lib/ctype/iswdigit_l.c | 8 - lib/ctype/iswgraph.c | 72 - lib/ctype/iswgraph_l.c | 23 - lib/ctype/iswlower.c | 42 - lib/ctype/iswlower_l.c | 20 - lib/ctype/iswprint.c | 72 - lib/ctype/iswprint_l.c | 21 - lib/ctype/iswpunct.c | 72 - lib/ctype/iswpunct_l.c | 26 - lib/ctype/iswspace.c | 72 - lib/ctype/iswspace_l.c | 21 - lib/ctype/iswupper.c | 42 - lib/ctype/iswupper_l.c | 20 - lib/ctype/iswxdigit.c | 44 - lib/ctype/iswxdigit_l.c | 11 - lib/ctype/isxdigit.c | 50 - lib/ctype/isxdigit_l.c | 11 - lib/ctype/jp2uc.c | 200 - lib/ctype/jp2uc.h | 6849 ------- lib/ctype/local.h | 44 - lib/ctype/mkcaseconv | 128 - lib/ctype/mkcategories | 71 - lib/ctype/mkunidata | 60 - lib/ctype/toascii.c | 48 - lib/ctype/toascii_l.c | 10 - lib/ctype/tolower.c | 82 - lib/ctype/tolower_l.c | 36 - lib/ctype/toupper.c | 82 - lib/ctype/toupper_l.c | 38 - lib/ctype/towctrans.c | 101 - lib/ctype/towctrans_l.c | 162 - lib/ctype/towlower.c | 81 - lib/ctype/towlower_l.c | 15 - lib/ctype/towupper.c | 84 - lib/ctype/towupper_l.c | 14 - lib/ctype/wctrans.c | 98 - lib/ctype/wctrans_l.c | 10 - lib/ctype/wctype.c | 141 - lib/ctype/wctype_l.c | 8 - lib/errno/Makefile.inc | 1 - lib/errno/errno.c | 22 - lib/iconv/Makefile.inc | 28 - lib/iconv/ccs/Makefile.inc | 24 - lib/iconv/ccs/big5.c | 12615 ------------- lib/iconv/ccs/binary/Makefile.inc | 14 - lib/iconv/ccs/binary/big5.cct | Bin 328072 -> 0 bytes lib/iconv/ccs/binary/cns11643_plane1.cct | Bin 236400 -> 0 bytes lib/iconv/ccs/binary/cns11643_plane14.cct | Bin 217604 -> 0 bytes lib/iconv/ccs/binary/cns11643_plane2.cct | Bin 257204 -> 0 bytes lib/iconv/ccs/binary/cp775.cct | Bin 4692 -> 0 bytes lib/iconv/ccs/binary/cp850.cct | Bin 4180 -> 0 bytes lib/iconv/ccs/binary/cp852.cct | Bin 4180 -> 0 bytes lib/iconv/ccs/binary/cp855.cct | Bin 4180 -> 0 bytes lib/iconv/ccs/binary/cp866.cct | Bin 4692 -> 0 bytes lib/iconv/ccs/binary/iso_8859_1.cct | Bin 2648 -> 0 bytes lib/iconv/ccs/binary/iso_8859_10.cct | Bin 3672 -> 0 bytes lib/iconv/ccs/binary/iso_8859_11.cct | Bin 3160 -> 0 bytes lib/iconv/ccs/binary/iso_8859_13.cct | Bin 3672 -> 0 bytes lib/iconv/ccs/binary/iso_8859_14.cct | Bin 3672 -> 0 bytes lib/iconv/ccs/binary/iso_8859_15.cct | Bin 3672 -> 0 bytes lib/iconv/ccs/binary/iso_8859_2.cct | Bin 3672 -> 0 bytes lib/iconv/ccs/binary/iso_8859_3.cct | Bin 3672 -> 0 bytes lib/iconv/ccs/binary/iso_8859_4.cct | Bin 3672 -> 0 bytes lib/iconv/ccs/binary/iso_8859_5.cct | Bin 3672 -> 0 bytes lib/iconv/ccs/binary/iso_8859_6.cct | Bin 3160 -> 0 bytes lib/iconv/ccs/binary/iso_8859_7.cct | Bin 3672 -> 0 bytes lib/iconv/ccs/binary/iso_8859_8.cct | Bin 3672 -> 0 bytes lib/iconv/ccs/binary/iso_8859_9.cct | Bin 3160 -> 0 bytes lib/iconv/ccs/binary/iso_ir_111.cct | Bin 3672 -> 0 bytes lib/iconv/ccs/binary/jis_x0201_1976.cct | Bin 2652 -> 0 bytes lib/iconv/ccs/binary/jis_x0208_1990.cct | Bin 255648 -> 0 bytes lib/iconv/ccs/binary/jis_x0212_1990.cct | Bin 233472 -> 0 bytes lib/iconv/ccs/binary/koi8_r.cct | Bin 4692 -> 0 bytes lib/iconv/ccs/binary/koi8_ru.cct | Bin 5204 -> 0 bytes lib/iconv/ccs/binary/koi8_u.cct | Bin 4692 -> 0 bytes lib/iconv/ccs/binary/koi8_uni.cct | Bin 5204 -> 0 bytes lib/iconv/ccs/binary/ksx1001.cct | Bin 335764 -> 0 bytes lib/iconv/ccs/binary/win_1250.cct | Bin 4692 -> 0 bytes lib/iconv/ccs/binary/win_1251.cct | Bin 4180 -> 0 bytes lib/iconv/ccs/binary/win_1252.cct | Bin 4692 -> 0 bytes lib/iconv/ccs/binary/win_1253.cct | Bin 4692 -> 0 bytes lib/iconv/ccs/binary/win_1254.cct | Bin 4692 -> 0 bytes lib/iconv/ccs/binary/win_1255.cct | Bin 5204 -> 0 bytes lib/iconv/ccs/binary/win_1256.cct | Bin 5204 -> 0 bytes lib/iconv/ccs/binary/win_1257.cct | Bin 4692 -> 0 bytes lib/iconv/ccs/binary/win_1258.cct | Bin 5204 -> 0 bytes lib/iconv/ccs/ccs.h | 158 - lib/iconv/ccs/ccsbi.c | 179 - lib/iconv/ccs/ccsbi.h | 521 - lib/iconv/ccs/ccsnames.h | 56 - lib/iconv/ccs/cns11643_plane1.c | 11211 ----------- lib/iconv/ccs/cns11643_plane14.c | 10763 ----------- lib/iconv/ccs/cns11643_plane2.c | 11948 ------------ lib/iconv/ccs/cp775.c | 341 - lib/iconv/ccs/cp850.c | 308 - lib/iconv/ccs/cp852.c | 308 - lib/iconv/ccs/cp855.c | 308 - lib/iconv/ccs/cp866.c | 341 - lib/iconv/ccs/iso_8859_1.c | 209 - lib/iconv/ccs/iso_8859_10.c | 275 - lib/iconv/ccs/iso_8859_11.c | 242 - lib/iconv/ccs/iso_8859_13.c | 275 - lib/iconv/ccs/iso_8859_14.c | 275 - lib/iconv/ccs/iso_8859_15.c | 275 - lib/iconv/ccs/iso_8859_2.c | 275 - lib/iconv/ccs/iso_8859_3.c | 275 - lib/iconv/ccs/iso_8859_4.c | 275 - lib/iconv/ccs/iso_8859_5.c | 275 - lib/iconv/ccs/iso_8859_6.c | 242 - lib/iconv/ccs/iso_8859_7.c | 275 - lib/iconv/ccs/iso_8859_8.c | 275 - lib/iconv/ccs/iso_8859_9.c | 242 - lib/iconv/ccs/iso_ir_111.c | 275 - lib/iconv/ccs/jis_x0201_1976.c | 209 - lib/iconv/ccs/jis_x0208_1990.c | 12161 ------------ lib/iconv/ccs/jis_x0212_1990.c | 11385 ----------- lib/iconv/ccs/koi8_r.c | 341 - lib/iconv/ccs/koi8_ru.c | 374 - lib/iconv/ccs/koi8_u.c | 341 - lib/iconv/ccs/koi8_uni.c | 374 - lib/iconv/ccs/ksx1001.c | 15612 ---------------- lib/iconv/ccs/mktbl.pl | 1505 -- lib/iconv/ccs/win_1250.c | 341 - lib/iconv/ccs/win_1251.c | 308 - lib/iconv/ccs/win_1252.c | 341 - lib/iconv/ccs/win_1253.c | 341 - lib/iconv/ccs/win_1254.c | 341 - lib/iconv/ccs/win_1255.c | 374 - lib/iconv/ccs/win_1256.c | 374 - lib/iconv/ccs/win_1257.c | 341 - lib/iconv/ccs/win_1258.c | 374 - lib/iconv/ces/Makefile.inc | 19 - lib/iconv/ces/cesbi.c | 401 - lib/iconv/ces/cesbi.h | 276 - lib/iconv/ces/cesdeps.h | 40 - lib/iconv/ces/euc.c | 464 - lib/iconv/ces/mkdeps.pl | 969 - lib/iconv/ces/table-pcs.c | 161 - lib/iconv/ces/table.c | 584 - lib/iconv/ces/ucs-2-internal.c | 124 - lib/iconv/ces/ucs-2.c | 165 - lib/iconv/ces/ucs-4-internal.c | 124 - lib/iconv/ces/ucs-4.c | 167 - lib/iconv/ces/us-ascii.c | 118 - lib/iconv/ces/utf-16.c | 300 - lib/iconv/ces/utf-8.c | 294 - lib/iconv/encoding.aliases | 55 - lib/iconv/iconv.tex | 1709 -- lib/iconv/lib/Makefile.inc | 16 - lib/iconv/lib/aliasesbi.c | 212 - lib/iconv/lib/aliasesi.c | 166 - lib/iconv/lib/conv.h | 221 - lib/iconv/lib/encnames.h | 63 - lib/iconv/lib/encoding.deps | 441 - lib/iconv/lib/endian.h | 73 - lib/iconv/lib/iconv.c | 307 - lib/iconv/lib/iconvnls.c | 354 - lib/iconv/lib/iconvnls.h | 37 - lib/iconv/lib/local.h | 64 - lib/iconv/lib/nullconv.c | 135 - lib/iconv/lib/ucsconv.c | 348 - lib/iconv/lib/ucsconv.h | 327 - lib/include/_ansi.h | 82 - lib/include/_newlib_version.h | 2 - lib/include/_syslist.h | 40 - lib/include/alloca.h | 21 - lib/include/ar.h | 65 - lib/include/argz.h | 33 - lib/include/assert.h | 50 - lib/include/complex.h | 150 - lib/include/cpio.h | 30 - lib/include/ctype.h | 183 - lib/include/devctl.h | 78 - lib/include/dirent.h | 85 - lib/include/elf.h | 3147 ---- lib/include/envlock.h | 15 - lib/include/envz.h | 16 - lib/include/errno.h | 11 - lib/include/fastmath.h | 13 - lib/include/fcntl.h | 1 - lib/include/fenv.h | 42 - lib/include/fnmatch.h | 55 - lib/include/ftw.h | 66 - lib/include/getopt.h | 185 - lib/include/glob.h | 90 - lib/include/grp.h | 86 - lib/include/iconv.h | 63 - lib/include/ieeefp.h | 295 - lib/include/inttypes.h | 345 - lib/include/langinfo.h | 332 - lib/include/libgen.h | 37 - lib/include/limits.h | 147 - lib/include/locale.h | 96 - lib/include/machine/_arc4random.h | 1 - lib/include/machine/_default_types.h | 250 - lib/include/machine/_endian.h | 35 - lib/include/machine/_time.h | 3 - lib/include/machine/_types.h | 8 - lib/include/machine/ansi.h | 1 - lib/include/machine/endian.h | 69 - lib/include/machine/fastmath.h | 98 - lib/include/machine/ieee.h | 127 - lib/include/machine/ieeefp.h | 529 - lib/include/machine/malloc.h | 8 - lib/include/machine/param.h | 1 - lib/include/machine/setjmp-dj.h | 43 - lib/include/machine/setjmp.h | 495 - lib/include/machine/stdlib.h | 8 - lib/include/machine/termios.h | 1 - lib/include/machine/time.h | 15 - lib/include/machine/types.h | 13 - lib/include/malloc.h | 173 - lib/include/math.h | 644 - lib/include/memory.h | 4 - lib/include/ndbm.h | 91 - lib/include/newlib.h | 2 - lib/include/paths.h | 9 - lib/include/pthread.h | 456 - lib/include/pwd.h | 83 - lib/include/reent.h | 188 - lib/include/regdef.h | 7 - lib/include/regex.h | 103 - lib/include/rpc/types.h | 85 - lib/include/rpc/xdr.h | 389 - lib/include/sched.h | 112 - lib/include/search.h | 64 - lib/include/setjmp.h | 25 - lib/include/signal.h | 35 - lib/include/spawn.h | 111 - lib/include/ssp/ssp.h | 76 - lib/include/ssp/stdio.h | 101 - lib/include/ssp/stdlib.h | 30 - lib/include/ssp/string.h | 115 - lib/include/ssp/strings.h | 55 - lib/include/ssp/unistd.h | 93 - lib/include/ssp/wchar.h | 97 - lib/include/stdatomic.h | 409 - lib/include/stdint.h | 466 - lib/include/stdio.h | 807 - lib/include/stdio_ext.h | 79 - lib/include/stdlib.h | 345 - lib/include/string.h | 183 - lib/include/strings.h | 80 - lib/include/sys/_default_fcntl.h | 240 - lib/include/sys/_intsup.h | 199 - lib/include/sys/_locale.h | 12 - lib/include/sys/_pthreadtypes.h | 233 - lib/include/sys/_sigset.h | 43 - lib/include/sys/_stdint.h | 90 - lib/include/sys/_timespec.h | 52 - lib/include/sys/_timeval.h | 60 - lib/include/sys/_types.h | 228 - lib/include/sys/_tz_structs.h | 24 - lib/include/sys/cdefs.h | 740 - lib/include/sys/config.h | 314 - lib/include/sys/custom_file.h | 2 - lib/include/sys/dir.h | 10 - lib/include/sys/dirent.h | 13 - lib/include/sys/endian.h | 207 - lib/include/sys/errno.h | 198 - lib/include/sys/fcntl.h | 4 - lib/include/sys/features.h | 538 - lib/include/sys/fenv.h | 113 - lib/include/sys/file.h | 2 - lib/include/sys/iconvnls.h | 77 - lib/include/sys/lock.h | 69 - lib/include/sys/param.h | 35 - lib/include/sys/queue.h | 919 - lib/include/sys/reent.h | 896 - lib/include/sys/resource.h | 24 - lib/include/sys/sched.h | 69 - lib/include/sys/select.h | 94 - lib/include/sys/signal.h | 388 - lib/include/sys/stat.h | 179 - lib/include/sys/stdio.h | 27 - lib/include/sys/string.h | 2 - lib/include/sys/syslimits.h | 61 - lib/include/sys/time.h | 448 - lib/include/sys/timeb.h | 40 - lib/include/sys/times.h | 32 - lib/include/sys/timespec.h | 63 - lib/include/sys/tree.h | 864 - lib/include/sys/types.h | 228 - lib/include/sys/unistd.h | 586 - lib/include/sys/utime.h | 22 - lib/include/sys/wait.h | 44 - lib/include/tar.h | 43 - lib/include/termios.h | 7 - lib/include/tgmath.h | 185 - lib/include/threads.h | 93 - lib/include/time.h | 313 - lib/include/unctrl.h | 42 - lib/include/unistd.h | 6 - lib/include/utime.h | 12 - lib/include/utmp.h | 8 - lib/include/wchar.h | 339 - lib/include/wctype.h | 74 - lib/include/wordexp.h | 53 - lib/libc.in.xml | 45 - lib/libc.texi | 431 - lib/locale/Makefile.inc | 28 - lib/locale/duplocale.c | 102 - lib/locale/freelocale.c | 64 - lib/locale/lctype.c | 103 - lib/locale/lmessages.c | 106 - lib/locale/lmonetary.c | 133 - lib/locale/lnumeric.c | 89 - lib/locale/locale.c | 1031 - lib/locale/locale.tex | 123 - lib/locale/localeconv.c | 68 - lib/locale/newlocale.c | 226 - lib/locale/nl_langinfo.3 | 90 - lib/locale/nl_langinfo.c | 398 - lib/locale/setlocale.h | 455 - lib/locale/timelocal.c | 192 - lib/locale/uselocale.c | 79 - lib/machine/Makefile.inc | 174 - lib/machine/aarch64/Makefile.inc | 32 - lib/machine/aarch64/machine/_fpmath.h | 64 - lib/machine/aarch64/machine/_types.h | 37 - lib/machine/aarch64/machine/fenv-fp.h | 156 - lib/machine/aarch64/memchr-stub.c | 31 - lib/machine/aarch64/memchr.S | 176 - lib/machine/aarch64/memcmp-stub.c | 31 - lib/machine/aarch64/memcmp.S | 196 - lib/machine/aarch64/memcpy-stub.c | 31 - lib/machine/aarch64/memcpy.S | 230 - lib/machine/aarch64/memmove-stub.c | 31 - lib/machine/aarch64/memmove.S | 155 - lib/machine/aarch64/memset-stub.c | 31 - lib/machine/aarch64/memset.S | 240 - lib/machine/aarch64/rawmemchr-stub.c | 31 - lib/machine/aarch64/rawmemchr.S | 68 - lib/machine/aarch64/setjmp.S | 74 - lib/machine/aarch64/stpcpy-stub.c | 31 - lib/machine/aarch64/stpcpy.S | 34 - lib/machine/aarch64/strchr-stub.c | 31 - lib/machine/aarch64/strchr.S | 164 - lib/machine/aarch64/strchrnul-stub.c | 31 - lib/machine/aarch64/strchrnul.S | 149 - lib/machine/aarch64/strcmp-stub.c | 31 - lib/machine/aarch64/strcmp.S | 202 - lib/machine/aarch64/strcpy-stub.c | 31 - lib/machine/aarch64/strcpy.S | 341 - lib/machine/aarch64/strlen-stub.c | 31 - lib/machine/aarch64/strlen.S | 238 - lib/machine/aarch64/strncmp-stub.c | 31 - lib/machine/aarch64/strncmp.S | 290 - lib/machine/aarch64/strnlen-stub.c | 31 - lib/machine/aarch64/strnlen.S | 187 - lib/machine/aarch64/strrchr-stub.c | 31 - lib/machine/aarch64/strrchr.S | 182 - lib/machine/aarch64/sys/fcntl.h | 12 - lib/machine/aarch64/sys/fenv.h | 120 - lib/machine/amdgcn/Makefile.inc | 7 - lib/machine/amdgcn/abort.c | 25 - lib/machine/amdgcn/atexit.c | 25 - lib/machine/amdgcn/exit-value.h | 54 - lib/machine/amdgcn/exit.c | 23 - lib/machine/amdgcn/getreent.c | 100 - lib/machine/amdgcn/mlock.c | 115 - lib/machine/amdgcn/signal.c | 10 - lib/machine/arc/Makefile.inc | 31 - lib/machine/arc/asm.h | 82 - lib/machine/arc/memcmp-bs-norm.S | 225 - lib/machine/arc/memcmp-stub.c | 36 - lib/machine/arc/memcmp.S | 154 - lib/machine/arc/memcpy-archs.S | 327 - lib/machine/arc/memcpy-bs.S | 105 - lib/machine/arc/memcpy-stub.c | 36 - lib/machine/arc/memcpy.S | 111 - lib/machine/arc/memset-archs.S | 148 - lib/machine/arc/memset-bs.S | 154 - lib/machine/arc/memset-stub.c | 36 - lib/machine/arc/memset.S | 110 - lib/machine/arc/setjmp.S | 165 - lib/machine/arc/strchr-bs-norm.S | 166 - lib/machine/arc/strchr-bs.S | 202 - lib/machine/arc/strchr-stub.c | 36 - lib/machine/arc/strchr.S | 208 - lib/machine/arc/strcmp-archs.S | 109 - lib/machine/arc/strcmp-stub.c | 36 - lib/machine/arc/strcmp.S | 133 - lib/machine/arc/strcpy-bs-arc600.S | 120 - lib/machine/arc/strcpy-bs.S | 103 - lib/machine/arc/strcpy-stub.c | 36 - lib/machine/arc/strcpy.S | 90 - lib/machine/arc/strlen-bs-norm.S | 116 - lib/machine/arc/strlen-bs.S | 122 - lib/machine/arc/strlen-stub.c | 36 - lib/machine/arc/strlen.S | 165 - lib/machine/arc/strncpy-bs.S | 171 - lib/machine/arc/strncpy-stub.c | 36 - lib/machine/arc/strncpy.S | 134 - lib/machine/arm/Makefile.inc | 11 - lib/machine/arm/aeabi_memclr.c | 45 - lib/machine/arm/aeabi_memcpy-armv7a.S | 286 - lib/machine/arm/aeabi_memcpy.c | 64 - lib/machine/arm/aeabi_memmove-arm.S | 64 - lib/machine/arm/aeabi_memmove-soft.S | 50 - lib/machine/arm/aeabi_memmove-thumb.S | 72 - lib/machine/arm/aeabi_memmove-thumb2.S | 72 - lib/machine/arm/aeabi_memmove.c | 63 - lib/machine/arm/aeabi_memset-arm.S | 107 - lib/machine/arm/aeabi_memset-soft.S | 50 - lib/machine/arm/aeabi_memset-thumb.S | 126 - lib/machine/arm/aeabi_memset-thumb2.S | 115 - lib/machine/arm/aeabi_memset.c | 65 - lib/machine/arm/arm_asm.h | 504 - lib/machine/arm/machine/_endian.h | 39 - lib/machine/arm/machine/param.h | 8 - lib/machine/arm/memchr-stub.c | 38 - lib/machine/arm/memchr.S | 424 - lib/machine/arm/memcpy-armv7a.S | 619 - lib/machine/arm/memcpy-armv7m.S | 344 - lib/machine/arm/memcpy-stub.c | 41 - lib/machine/arm/memcpy.S | 47 - lib/machine/arm/setjmp.S | 281 - lib/machine/arm/strcmp-arm-tiny.S | 53 - lib/machine/arm/strcmp-armv4.S | 394 - lib/machine/arm/strcmp-armv4t.S | 54 - lib/machine/arm/strcmp-armv6.S | 470 - lib/machine/arm/strcmp-armv6m.S | 141 - lib/machine/arm/strcmp-armv7.S | 482 - lib/machine/arm/strcmp-armv7m.S | 388 - lib/machine/arm/strcmp.S | 97 - lib/machine/arm/strcpy.c | 174 - lib/machine/arm/strlen-armv7.S | 191 - lib/machine/arm/strlen-stub.c | 174 - lib/machine/arm/strlen-thumb1-Os.S | 50 - lib/machine/arm/strlen-thumb2-Os.S | 62 - lib/machine/arm/strlen.S | 51 - lib/machine/arm/sys/fenv.h | 90 - lib/machine/bfin/Makefile.inc | 1 - lib/machine/bfin/longjmp.S | 115 - lib/machine/bfin/setjmp.S | 108 - lib/machine/cr16/Makefile.inc | 1 - lib/machine/cr16/getenv.c | 24 - lib/machine/cr16/setjmp.S | 97 - lib/machine/cr16/sys/asm.h | 280 - lib/machine/cr16/sys/libh.h | 51 - lib/machine/cr16/sys/syscall.h | 60 - lib/machine/cris/Makefile.inc | 13 - lib/machine/cris/include/pthread.h | 93 - lib/machine/cris/libcdtor.c | 91 - lib/machine/cris/memcpy.c | 238 - lib/machine/cris/memmove.c | 257 - lib/machine/cris/memset.c | 259 - lib/machine/cris/setjmp.c | 212 - lib/machine/cris/sys/errno.h | 177 - lib/machine/cris/sys/fcntl.h | 163 - lib/machine/cris/sys/signal.h | 93 - lib/machine/crx/Makefile.inc | 1 - lib/machine/crx/getenv.c | 24 - lib/machine/crx/setjmp.S | 51 - lib/machine/crx/sys/asm.h | 421 - lib/machine/crx/sys/libh.h | 51 - lib/machine/crx/sys/syscall.h | 61 - lib/machine/csky/Makefile.inc | 1 - lib/machine/csky/setjmp.S | 79 - lib/machine/d10v/Makefile.inc | 1 - lib/machine/d10v/setjmp.S | 55 - lib/machine/d30v/Makefile.inc | 1 - lib/machine/d30v/setjmp.S | 106 - lib/machine/epiphany/Makefile.inc | 1 - lib/machine/epiphany/setjmp.S | 69 - lib/machine/fr30/Makefile.inc | 1 - lib/machine/fr30/setjmp.S | 64 - lib/machine/frv/Makefile.inc | 1 - lib/machine/frv/setjmp.S | 126 - lib/machine/ft32/Makefile.inc | 1 - lib/machine/ft32/memcpy.S | 32 - lib/machine/ft32/memset.S | 30 - lib/machine/ft32/setjmp.S | 94 - lib/machine/ft32/stpcmp.S | 22 - lib/machine/ft32/strcmp.S | 22 - lib/machine/ft32/strcpy.S | 23 - lib/machine/ft32/strlen.S | 22 - lib/machine/h8300/Makefile.inc | 3 - lib/machine/h8300/defines.h | 138 - lib/machine/h8300/h8sx_strcpy.S | 14 - lib/machine/h8300/memcpy.S | 149 - lib/machine/h8300/memset.S | 102 - lib/machine/h8300/reg_memcpy.S | 30 - lib/machine/h8300/reg_memset.S | 30 - lib/machine/h8300/setarch.h | 21 - lib/machine/h8300/setjmp.S | 68 - lib/machine/h8300/strcmp.S | 60 - lib/machine/h8500/Makefile.inc | 1 - lib/machine/h8500/cmpsi.c | 126 - lib/machine/h8500/divhi3.S | 54 - lib/machine/h8500/divsi3.c | 134 - lib/machine/h8500/mulhi3.c | 21 - lib/machine/h8500/mulsi3.c | 72 - lib/machine/h8500/negsi2.c | 7 - lib/machine/h8500/psi.S | 136 - lib/machine/h8500/setjmp.S | 27 - lib/machine/h8500/shifts.c | 45 - lib/machine/hppa/DEFS.h | 178 - lib/machine/hppa/Makefile.inc | 5 - lib/machine/hppa/memchr.S | 48 - lib/machine/hppa/memcmp.S | 183 - lib/machine/hppa/memcpy.S | 146 - lib/machine/hppa/memset.S | 85 - lib/machine/hppa/setjmp.S | 156 - lib/machine/hppa/strcat.S | 178 - lib/machine/hppa/strcmp.S | 282 - lib/machine/hppa/strcpy.S | 285 - lib/machine/hppa/strlen.S | 79 - lib/machine/hppa/strncat.S | 238 - lib/machine/hppa/strncmp.S | 189 - lib/machine/hppa/strncpy.S | 256 - lib/machine/i386/Makefile.inc | 7 - lib/machine/i386/i386mach.h | 83 - lib/machine/i386/machine/_fpmath.h | 56 - lib/machine/i386/machine/fastmath.h | 122 - lib/machine/i386/memchr.S | 135 - lib/machine/i386/memcmp.S | 104 - lib/machine/i386/memcpy.S | 86 - lib/machine/i386/memmove.S | 173 - lib/machine/i386/memset.S | 109 - lib/machine/i386/setjmp.S | 132 - lib/machine/i386/strchr.S | 197 - lib/machine/i386/strlen.S | 102 - lib/machine/i960/Makefile.inc | 29 - lib/machine/i960/memccpy.S | 143 - lib/machine/i960/memccpy_ca.S | 245 - lib/machine/i960/memchr.S | 130 - lib/machine/i960/memchr_ca.S | 153 - lib/machine/i960/memcmp.S | 128 - lib/machine/i960/memcmp_ca.S | 205 - lib/machine/i960/memcpy.S | 160 - lib/machine/i960/memcpy_ca.S | 353 - lib/machine/i960/memset.S | 121 - lib/machine/i960/setjmp.S | 96 - lib/machine/i960/strchr.S | 123 - lib/machine/i960/strchr_ca.S | 152 - lib/machine/i960/strcmp.S | 118 - lib/machine/i960/strcmp_ca.S | 246 - lib/machine/i960/strcpy.S | 177 - lib/machine/i960/strcpy_ca.S | 284 - lib/machine/i960/strcspn.S | 94 - lib/machine/i960/strdup.S | 66 - lib/machine/i960/strlen.S | 117 - lib/machine/i960/strlen_ca.S | 146 - lib/machine/i960/strncat.S | 155 - lib/machine/i960/strncat_ca.S | 300 - lib/machine/i960/strncmp.S | 129 - lib/machine/i960/strncmp_ca.S | 253 - lib/machine/i960/strncpy.S | 154 - lib/machine/i960/strncpy_ca.S | 289 - lib/machine/i960/strpbrk.S | 100 - lib/machine/i960/strrchr.S | 137 - lib/machine/iq2000/Makefile.inc | 1 - lib/machine/iq2000/setjmp.S | 51 - lib/machine/lm32/Makefile.inc | 1 - lib/machine/lm32/setjmp.S | 94 - lib/machine/m32c/Makefile.inc | 1 - lib/machine/m32c/setjmp.S | 133 - lib/machine/m32r/Makefile.inc | 1 - lib/machine/m32r/setjmp.S | 52 - lib/machine/m68hc11/Makefile.inc | 1 - lib/machine/m68hc11/setjmp.S | 141 - lib/machine/m68k/Makefile.inc | 1 - lib/machine/m68k/m68kasm.h | 40 - lib/machine/m68k/memcpy.S | 112 - lib/machine/m68k/memset.S | 100 - lib/machine/m68k/setjmp.S | 49 - lib/machine/m68k/strcpy.c | 36 - lib/machine/m68k/strlen.c | 35 - lib/machine/m88k/Makefile.inc | 1 - lib/machine/m88k/setjmp.S | 48 - lib/machine/mep/Makefile.inc | 1 - lib/machine/mep/setjmp.S | 118 - lib/machine/microblaze/Makefile.inc | 1 - lib/machine/microblaze/abort.c | 60 - lib/machine/microblaze/longjmp.S | 80 - lib/machine/microblaze/mb_endian.h | 15 - lib/machine/microblaze/setjmp.S | 79 - lib/machine/microblaze/strcmp.c | 191 - lib/machine/microblaze/strcpy.c | 180 - lib/machine/microblaze/strlen.c | 150 - lib/machine/mips/Makefile.inc | 1 - lib/machine/mips/machine/asm.h | 361 - lib/machine/mips/machine/fenv-fp.h | 207 - lib/machine/mips/machine/fenv-softfloat.h | 169 - lib/machine/mips/machine/regdef.h | 103 - lib/machine/mips/memcpy.S | 873 - lib/machine/mips/memset.S | 427 - lib/machine/mips/setjmp.S | 159 - lib/machine/mips/strcmp.S | 252 - lib/machine/mips/strlen.c | 74 - lib/machine/mips/strncpy.c | 250 - lib/machine/mips/sys/fenv.h | 88 - lib/machine/mn10200/Makefile.inc | 1 - lib/machine/mn10200/setjmp.S | 33 - lib/machine/mn10300/Makefile.inc | 5 - lib/machine/mn10300/memchr.S | 108 - lib/machine/mn10300/memcmp.S | 85 - lib/machine/mn10300/memcpy.S | 101 - lib/machine/mn10300/memset.S | 95 - lib/machine/mn10300/setjmp.S | 92 - lib/machine/mn10300/strchr.S | 121 - lib/machine/mn10300/strcmp.S | 88 - lib/machine/mn10300/strcpy.S | 85 - lib/machine/mn10300/strlen.S | 79 - lib/machine/moxie/Makefile.inc | 1 - lib/machine/moxie/setjmp.S | 76 - lib/machine/msp430/Makefile.inc | 8 - lib/machine/msp430/setjmp.S | 107 - lib/machine/msp430/tiny-printf.c | 272 - lib/machine/msp430/tiny-puts.c | 20 - lib/machine/mt/Makefile.inc | 1 - lib/machine/mt/setjmp.S | 99 - lib/machine/nds32/Makefile.inc | 8 - lib/machine/nds32/abort.c | 38 - lib/machine/nds32/acinclude.m4 | 11 - lib/machine/nds32/memcpy.S | 77 - lib/machine/nds32/memset.S | 80 - lib/machine/nds32/setjmp.S | 166 - lib/machine/nds32/strcmp.S | 96 - lib/machine/nds32/strcpy.S | 76 - lib/machine/necv70/Makefile.inc | 1 - lib/machine/necv70/fastmath.S | 251 - lib/machine/necv70/machine/registers.h | 14 - lib/machine/necv70/necv70.tex | 99 - lib/machine/necv70/setjmp.S | 33 - lib/machine/nios2/Makefile.inc | 1 - lib/machine/nvptx/Makefile.inc | 5 - lib/machine/nvptx/_exit.c | 41 - lib/machine/nvptx/abort.c | 23 - lib/machine/nvptx/assert.c | 40 - lib/machine/nvptx/calloc.c | 26 - lib/machine/nvptx/callocr.c | 22 - lib/machine/nvptx/clock.c | 18 - lib/machine/nvptx/free.c | 26 - lib/machine/nvptx/malloc.c | 29 - lib/machine/nvptx/mallocr.c | 26 - lib/machine/nvptx/misc.c | 83 - lib/machine/nvptx/printf.c | 30 - lib/machine/nvptx/putchar.c | 31 - lib/machine/nvptx/puts.c | 27 - lib/machine/nvptx/realloc.c | 32 - lib/machine/nvptx/reallocr.c | 21 - lib/machine/nvptx/write.c | 33 - lib/machine/or1k/Makefile.inc | 1 - lib/machine/or1k/setjmp.S | 108 - lib/machine/powerpc/Makefile.inc | 35 - lib/machine/powerpc/acinclude.m4 | 10 - lib/machine/powerpc/atosfix16.c | 80 - lib/machine/powerpc/atosfix32.c | 26 - lib/machine/powerpc/atosfix64.c | 26 - lib/machine/powerpc/atoufix16.c | 80 - lib/machine/powerpc/atoufix32.c | 26 - lib/machine/powerpc/atoufix64.c | 26 - lib/machine/powerpc/fix64.h | 80 - lib/machine/powerpc/machine/fenv-fp.h | 198 - lib/machine/powerpc/machine/malloc.h | 20 - lib/machine/powerpc/machine/stdlib.h | 71 - lib/machine/powerpc/setjmp.S | 387 - lib/machine/powerpc/simdldtoa.c | 3722 ---- lib/machine/powerpc/strtosfix16.c | 179 - lib/machine/powerpc/strtosfix32.c | 102 - lib/machine/powerpc/strtosfix64.c | 115 - lib/machine/powerpc/strtoufix16.c | 170 - lib/machine/powerpc/strtoufix32.c | 99 - lib/machine/powerpc/strtoufix64.c | 114 - lib/machine/powerpc/sys/fenv.h | 132 - lib/machine/powerpc/ufix64toa.c | 90 - lib/machine/powerpc/vec_calloc.c | 53 - lib/machine/powerpc/vec_callocr.c | 2 - lib/machine/powerpc/vec_free.c | 14 - lib/machine/powerpc/vec_malloc.c | 105 - lib/machine/powerpc/vec_mallocr.c | 424 - lib/machine/powerpc/vec_realloc.c | 16 - lib/machine/powerpc/vec_reallocr.c | 2 - lib/machine/powerpc/vfprintf.c | 1377 -- lib/machine/powerpc/vfscanf.c | 1219 -- lib/machine/pru/Makefile.inc | 1 - lib/machine/riscv/Makefile.inc | 3 - lib/machine/riscv/ffs.c | 32 - lib/machine/riscv/ieeefp.c | 144 - lib/machine/riscv/memcpy-asm.S | 32 - lib/machine/riscv/memcpy.c | 88 - lib/machine/riscv/memmove-stub.c | 14 - lib/machine/riscv/memmove.S | 40 - lib/machine/riscv/memset.S | 113 - lib/machine/riscv/setjmp.S | 98 - lib/machine/riscv/strcmp.S | 196 - lib/machine/riscv/strcpy.c | 64 - lib/machine/riscv/strlen.c | 53 - lib/machine/riscv/sys/asm.h | 50 - lib/machine/riscv/sys/fenv.h | 88 - lib/machine/riscv/sys/string.h | 23 - lib/machine/rl78/Makefile.inc | 1 - lib/machine/rl78/setjmp.S | 186 - lib/machine/rx/Makefile.inc | 4 - lib/machine/rx/memchr.S | 32 - lib/machine/rx/memcpy.S | 31 - lib/machine/rx/memmove.S | 57 - lib/machine/rx/mempcpy.S | 25 - lib/machine/rx/memset.S | 13 - lib/machine/rx/setjmp.S | 89 - lib/machine/rx/strcat.S | 41 - lib/machine/rx/strcmp.S | 33 - lib/machine/rx/strcpy.S | 25 - lib/machine/rx/strlen.S | 29 - lib/machine/rx/strncat.S | 58 - lib/machine/rx/strncmp.S | 41 - lib/machine/rx/strncpy.S | 41 - lib/machine/sh/Makefile.inc | 5 - lib/machine/sh/acinclude.m4 | 10 - lib/machine/sh/asm.h | 42 - lib/machine/sh/memcpy.S | 395 - lib/machine/sh/memset.S | 164 - lib/machine/sh/setjmp.S | 191 - lib/machine/sh/strcmp.S | 225 - lib/machine/sh/strcpy.S | 134 - lib/machine/sh/strlen.S | 87 - lib/machine/sh/strncpy.S | 209 - lib/machine/shared_x86/sys/fenv.h | 179 - lib/machine/sparc/Makefile.inc | 1 - lib/machine/sparc/machine/sparclet.h | 32 - lib/machine/sparc/scan.c | 15 - lib/machine/sparc/setjmp.S | 144 - lib/machine/sparc/shuffle.c | 15 - lib/machine/sparc/sys/fenv.h | 85 - lib/machine/spu/Makefile.inc | 28 - lib/machine/spu/acinclude.m4 | 9 - lib/machine/spu/assert.c | 39 - lib/machine/spu/c99ppe.h | 115 - lib/machine/spu/calloc_ea.c | 56 - lib/machine/spu/clearerr.c | 53 - lib/machine/spu/creat.c | 14 - lib/machine/spu/ea_internal.h | 147 - lib/machine/spu/fclose.c | 54 - lib/machine/spu/fdopen.c | 43 - lib/machine/spu/feof.c | 50 - lib/machine/spu/ferror.c | 50 - lib/machine/spu/fflush.c | 49 - lib/machine/spu/fgetc.c | 50 - lib/machine/spu/fgetpos.c | 59 - lib/machine/spu/fgets.c | 63 - lib/machine/spu/fileno.c | 51 - lib/machine/spu/fiprintf.S | 32 - lib/machine/spu/fiscanf.S | 32 - lib/machine/spu/fopen.c | 77 - lib/machine/spu/fprintf.S | 57 - lib/machine/spu/fputc.c | 62 - lib/machine/spu/fputs.c | 61 - lib/machine/spu/fread.c | 68 - lib/machine/spu/free_ea.c | 51 - lib/machine/spu/freopen.c | 74 - lib/machine/spu/fscanf.S | 57 - lib/machine/spu/fseek.c | 64 - lib/machine/spu/fsetpos.c | 60 - lib/machine/spu/ftell.c | 51 - lib/machine/spu/fwrite.c | 68 - lib/machine/spu/getc.c | 54 - lib/machine/spu/getchar.c | 48 - lib/machine/spu/gets.c | 47 - lib/machine/spu/include/ea.h | 137 - lib/machine/spu/include/fenv.h | 64 - lib/machine/spu/include/spu_timer.h | 85 - lib/machine/spu/iprintf.S | 32 - lib/machine/spu/iscanf.S | 32 - lib/machine/spu/machine/_types.h | 60 - lib/machine/spu/malloc_ea.c | 47 - lib/machine/spu/memchr_ea.c | 73 - lib/machine/spu/memcmp.c | 43 - lib/machine/spu/memcmp_ea.c | 78 - lib/machine/spu/memcpy.c | 118 - lib/machine/spu/memcpy_ea.c | 78 - lib/machine/spu/memmove.c | 216 - lib/machine/spu/memmove_ea.c | 77 - lib/machine/spu/memset.c | 90 - lib/machine/spu/memset_ea.c | 66 - lib/machine/spu/mk_syscalls | 101 - lib/machine/spu/mmap_ea.c | 66 - lib/machine/spu/mremap_ea.c | 62 - lib/machine/spu/msync_ea.c | 44 - lib/machine/spu/munmap_ea.c | 43 - lib/machine/spu/perror.c | 28 - lib/machine/spu/posix_memalign_ea.c | 66 - lib/machine/spu/pread_ea.c | 59 - lib/machine/spu/printf.S | 51 - lib/machine/spu/putc.c | 63 - lib/machine/spu/putchar.c | 18 - lib/machine/spu/puts.c | 15 - lib/machine/spu/pwrite_ea.c | 59 - lib/machine/spu/read_ea.c | 59 - lib/machine/spu/readv_ea.c | 69 - lib/machine/spu/realloc_ea.c | 55 - lib/machine/spu/remove.c | 46 - lib/machine/spu/rename.c | 56 - lib/machine/spu/rewind.c | 53 - lib/machine/spu/scanf.S | 51 - lib/machine/spu/setbuf.c | 64 - lib/machine/spu/setjmp.S | 183 - lib/machine/spu/setvbuf.c | 70 - lib/machine/spu/siprintf.S | 32 - lib/machine/spu/siscanf.S | 32 - lib/machine/spu/sleep.c | 18 - lib/machine/spu/sniprintf.S | 32 - lib/machine/spu/snprintf.S | 51 - lib/machine/spu/sprintf.S | 51 - lib/machine/spu/spu-gmon.c | 440 - lib/machine/spu/spu-mcount.S | 93 - lib/machine/spu/spu_clock_stop.c | 67 - lib/machine/spu/spu_clock_svcs.c | 93 - lib/machine/spu/spu_timebase.c | 51 - lib/machine/spu/spu_timer_flih.S | 152 - lib/machine/spu/spu_timer_free.c | 86 - lib/machine/spu/spu_timer_internal.h | 140 - lib/machine/spu/spu_timer_slih.c | 221 - lib/machine/spu/spu_timer_slih_reg.c | 72 - lib/machine/spu/spu_timer_stop.c | 101 - lib/machine/spu/spu_timer_svcs.c | 115 - lib/machine/spu/sscanf.S | 51 - lib/machine/spu/stack_reg_va.S | 170 - lib/machine/spu/stdio.c | 84 - lib/machine/spu/straddr.h | 75 - lib/machine/spu/strcat.c | 46 - lib/machine/spu/strcat_ea.c | 55 - lib/machine/spu/strchr.c | 82 - lib/machine/spu/strchr_ea.c | 47 - lib/machine/spu/strcmp.c | 94 - lib/machine/spu/strcmp_ea.c | 86 - lib/machine/spu/strcpy.c | 41 - lib/machine/spu/strcpy.h | 185 - lib/machine/spu/strcpy_ea.c | 51 - lib/machine/spu/strcspn.c | 96 - lib/machine/spu/strcspn_ea.c | 63 - lib/machine/spu/strlen.c | 68 - lib/machine/spu/strlen_ea.c | 67 - lib/machine/spu/strncat.c | 46 - lib/machine/spu/strncat_ea.c | 60 - lib/machine/spu/strncmp.c | 46 - lib/machine/spu/strncmp.h | 155 - lib/machine/spu/strncmp_ea.c | 87 - lib/machine/spu/strncpy.c | 42 - lib/machine/spu/strncpy_ea.c | 57 - lib/machine/spu/strpbrk.c | 96 - lib/machine/spu/strpbrk_ea.c | 47 - lib/machine/spu/strrchr.c | 115 - lib/machine/spu/strrchr_ea.c | 84 - lib/machine/spu/strspn.c | 95 - lib/machine/spu/strspn_ea.c | 65 - lib/machine/spu/strstr_ea.c | 75 - lib/machine/spu/strxfrm.c | 61 - lib/machine/spu/sys/custom_file.h | 13 - lib/machine/spu/sys/dirent.h | 57 - lib/machine/spu/sys/errno.h | 178 - lib/machine/spu/sys/fenv.h | 144 - lib/machine/spu/sys/linux_syscalls.h | 310 - lib/machine/spu/sys/mman.h | 85 - lib/machine/spu/sys/sched.h | 12 - lib/machine/spu/sys/syscall.h | 10 - lib/machine/spu/sys/uio.h | 26 - lib/machine/spu/sys/utime.h | 23 - lib/machine/spu/syscall.def | 38 - lib/machine/spu/tmpfile.c | 65 - lib/machine/spu/tmpnam.c | 43 - lib/machine/spu/ungetc.c | 63 - lib/machine/spu/usleep.c | 18 - lib/machine/spu/vec_literal.h | 70 - lib/machine/spu/vfiprintf.c | 2 - lib/machine/spu/vfiscanf.c | 2 - lib/machine/spu/vfprintf.c | 71 - lib/machine/spu/vfscanf.c | 71 - lib/machine/spu/viprintf.c | 2 - lib/machine/spu/viscanf.c | 2 - lib/machine/spu/vprintf.c | 33 - lib/machine/spu/vscanf.c | 65 - lib/machine/spu/vsiprintf.c | 2 - lib/machine/spu/vsiscanf.c | 2 - lib/machine/spu/vsniprintf.c | 2 - lib/machine/spu/vsnprintf.c | 43 - lib/machine/spu/vsprintf.c | 40 - lib/machine/spu/vsscanf.c | 71 - lib/machine/spu/write_ea.c | 60 - lib/machine/spu/writev_ea.c | 69 - lib/machine/tic4x/Makefile.inc | 1 - lib/machine/tic4x/setjmp.S | 75 - lib/machine/tic6x/Makefile.inc | 1 - lib/machine/tic6x/setjmp.S | 96 - lib/machine/tic80/Makefile.inc | 1 - lib/machine/tic80/setjmp.S | 50 - lib/machine/v850/Makefile.inc | 1 - lib/machine/v850/setjmp.S | 47 - lib/machine/visium/Makefile.inc | 1 - lib/machine/visium/memcpy.c | 879 - lib/machine/visium/memcpy.h | 31 - lib/machine/visium/memmove.c | 52 - lib/machine/visium/memset.c | 681 - lib/machine/visium/memset.h | 31 - lib/machine/visium/setjmp.S | 67 - lib/machine/w65/Makefile.inc | 3 - lib/machine/w65/cmpsi.c | 28 - lib/machine/w65/divsi3.c | 134 - lib/machine/w65/lshrhi.S | 48 - lib/machine/w65/mulsi3.c | 17 - lib/machine/w65/sdivhi3.S | 35 - lib/machine/w65/smulhi3.S | 20 - lib/machine/w65/udivhi3.S | 30 - lib/machine/w65/umodhi3.S | 7 - lib/machine/x86_64/Makefile.inc | 1 - lib/machine/x86_64/machine/_fpmath.h | 57 - lib/machine/x86_64/memcpy.S | 113 - lib/machine/x86_64/memset.S | 88 - lib/machine/x86_64/setjmp.S | 53 - lib/machine/x86_64/x86_64mach.h | 113 - lib/machine/xc16x/Makefile.inc | 1 - lib/machine/xc16x/putchar.c | 17 - lib/machine/xc16x/puts.c | 21 - lib/machine/xc16x/setjmp.S | 23 - lib/machine/xstormy16/Makefile.inc | 14 - lib/machine/xstormy16/calloc.c | 2 - lib/machine/xstormy16/callocr.c | 7 - lib/machine/xstormy16/cfree.c | 2 - lib/machine/xstormy16/freer.c | 7 - lib/machine/xstormy16/malign.c | 2 - lib/machine/xstormy16/malloc.c | 4 - lib/machine/xstormy16/mallocr.c | 7 - lib/machine/xstormy16/msize.c | 2 - lib/machine/xstormy16/mstats.c | 6 - lib/machine/xstormy16/realloc.c | 2 - lib/machine/xstormy16/reallocr.c | 7 - lib/machine/xstormy16/setjmp.S | 57 - lib/machine/xstormy16/tiny-malloc.c | 603 - lib/machine/xstormy16/valloc.c | 4 - lib/machine/z8k/Makefile.inc | 1 - lib/machine/z8k/args.h | 13 - lib/machine/z8k/memcmp.S | 185 - lib/machine/z8k/memcpy.S | 145 - lib/machine/z8k/memmove.S | 180 - lib/machine/z8k/memset.S | 135 - lib/machine/z8k/setjmp.S | 102 - lib/misc/Makefile.inc | 18 - lib/misc/__dprintf.c | 268 - lib/misc/ffs.c | 32 - lib/misc/fini.c | 39 - lib/misc/init.c | 47 - lib/misc/lock.c | 153 - lib/misc/misc.tex | 18 - lib/misc/unctrl.c | 137 - lib/neatlibc | 1 + lib/neatlibcaarch64/aarch64/bits.S | 20 + lib/neatlibcaarch64/aarch64/lmem.S | 26 + lib/neatlibcaarch64/aarch64/string.S | 167 + lib/neatlibcaarch64/aarch64/syscall.S | 294 + lib/neatlibcarm/arm/bits.S | 21 + lib/neatlibcarm/arm/lmem.S | 25 + lib/neatlibcarm/arm/string.S | 166 + lib/neatlibcarm/arm/syscall.S | 291 + lib/posix/COPYRIGHT | 52 - lib/posix/Makefile.inc | 43 - lib/posix/_isatty.c | 21 - lib/posix/cclass.h | 59 - lib/posix/closedir.c | 66 - lib/posix/cname.h | 138 - lib/posix/collate.c | 215 - lib/posix/collate.h | 67 - lib/posix/collcmp.c | 84 - lib/posix/creat.c | 12 - lib/posix/dirfd.c | 38 - lib/posix/engine.c | 1141 -- lib/posix/execl.c | 39 - lib/posix/execle.c | 37 - lib/posix/execlp.c | 35 - lib/posix/execv.c | 23 - lib/posix/execve.c | 20 - lib/posix/execvp.c | 71 - lib/posix/fnmatch.3 | 147 - lib/posix/fnmatch.c | 232 - lib/posix/ftw.c | 33 - lib/posix/glob.3 | 462 - lib/posix/glob.c | 913 - lib/posix/isatty.c | 10 - lib/posix/namespace.h | 153 - lib/posix/nftw.c | 156 - lib/posix/opendir.c | 99 - lib/posix/popen.c | 228 - lib/posix/posix.tex | 16 - lib/posix/posix_spawn.c | 710 - lib/posix/readdir.c | 87 - lib/posix/readdir_r.c | 100 - lib/posix/regcomp.c | 2088 --- lib/posix/regerror.c | 178 - lib/posix/regex.3 | 697 - lib/posix/regex2.h | 173 - lib/posix/regexec.c | 184 - lib/posix/regfree.c | 86 - lib/posix/rewinddir.c | 52 - lib/posix/rune.h | 63 - lib/posix/runetype.h | 98 - lib/posix/scandir.c | 157 - lib/posix/seekdir.c | 57 - lib/posix/sleep.c | 23 - lib/posix/sysexits.h | 114 - lib/posix/telldir.c | 204 - lib/posix/un-namespace.h | 140 - lib/posix/usleep.c | 21 - lib/posix/utils.h | 54 - lib/posix/wordexp.c | 243 - lib/posix/wordexp2.h | 21 - lib/posix/wordfree.c | 48 - lib/reent/Makefile.inc | 67 - lib/reent/closer.c | 52 - lib/reent/execr.c | 125 - lib/reent/fcntlr.c | 56 - lib/reent/fstat64r.c | 64 - lib/reent/fstatr.c | 60 - lib/reent/getreent.c | 22 - lib/reent/gettimeofdayr.c | 67 - lib/reent/impure.c | 20 - lib/reent/isattyr.c | 57 - lib/reent/linkr.c | 58 - lib/reent/lseek64r.c | 59 - lib/reent/lseekr.c | 54 - lib/reent/mkdirr.c | 56 - lib/reent/open64r.c | 61 - lib/reent/openr.c | 56 - lib/reent/readr.c | 54 - lib/reent/reent.c | 101 - lib/reent/reent.tex | 117 - lib/reent/renamer.c | 66 - lib/reent/sbrkr.c | 56 - lib/reent/signalr.c | 87 - lib/reent/stat64r.c | 60 - lib/reent/statr.c | 60 - lib/reent/timesr.c | 55 - lib/reent/unlinkr.c | 52 - lib/reent/writer.c | 54 - lib/search/Makefile.inc | 45 - lib/search/bsd_qsort_r.c | 2 - lib/search/bsearch.c | 91 - lib/search/db_local.h | 214 - lib/search/extern.h | 62 - lib/search/hash.c | 1037 - lib/search/hash.h | 317 - lib/search/hash_bigkey.c | 666 - lib/search/hash_buf.c | 360 - lib/search/hash_func.c | 216 - lib/search/hash_log2.c | 51 - lib/search/hash_page.c | 944 - lib/search/hcreate.3 | 206 - lib/search/hcreate.c | 80 - lib/search/hcreate_r.c | 194 - lib/search/ndbm.c | 217 - lib/search/page.h | 89 - lib/search/qsort.c | 345 - lib/search/qsort_r.c | 48 - lib/search/tdelete.c | 66 - lib/search/tdestroy.c | 50 - lib/search/tfind.c | 47 - lib/search/tsearch.3 | 118 - lib/search/tsearch.c | 57 - lib/search/twalk.c | 57 - lib/signal/Makefile.inc | 14 - lib/signal/psignal.c | 68 - lib/signal/raise.c | 69 - lib/signal/sig2str.c | 302 - lib/signal/signal.c | 227 - lib/signal/signal.tex | 78 - lib/ssp/Makefile.inc | 46 - lib/ssp/chk_fail.c | 13 - lib/ssp/gets_chk.c | 78 - lib/ssp/memcpy_chk.c | 54 - lib/ssp/memmove_chk.c | 50 - lib/ssp/mempcpy_chk.c | 21 - lib/ssp/memset_chk.c | 49 - lib/ssp/snprintf_chk.c | 59 - lib/ssp/sprintf_chk.c | 63 - lib/ssp/ssp.tex | 57 - lib/ssp/stack_protector.c | 51 - lib/ssp/stpcpy_chk.c | 58 - lib/ssp/stpncpy_chk.c | 56 - lib/ssp/strcat_chk.c | 62 - lib/ssp/strcpy_chk.c | 55 - lib/ssp/strncat_chk.c | 73 - lib/ssp/strncpy_chk.c | 55 - lib/ssp/vsnprintf_chk.c | 51 - lib/ssp/vsprintf_chk.c | 60 - lib/stdio/Makefile.inc | 285 - lib/stdio/asiprintf.c | 78 - lib/stdio/asniprintf.c | 106 - lib/stdio/asnprintf.c | 117 - lib/stdio/asprintf.c | 89 - lib/stdio/clearerr.c | 81 - lib/stdio/clearerr_u.c | 40 - lib/stdio/diprintf.c | 80 - lib/stdio/dprintf.c | 97 - lib/stdio/fclose.c | 128 - lib/stdio/fcloseall.c | 74 - lib/stdio/fdopen.c | 131 - lib/stdio/feof.c | 76 - lib/stdio/feof_u.c | 39 - lib/stdio/ferror.c | 85 - lib/stdio/ferror_u.c | 40 - lib/stdio/fflush.c | 294 - lib/stdio/fflush_u.c | 28 - lib/stdio/fgetc.c | 119 - lib/stdio/fgetc_u.c | 54 - lib/stdio/fgetpos.c | 90 - lib/stdio/fgets.c | 198 - lib/stdio/fgets_u.c | 28 - lib/stdio/fgetwc.c | 193 - lib/stdio/fgetwc_u.c | 47 - lib/stdio/fgetws.c | 182 - lib/stdio/fgetws_u.c | 28 - lib/stdio/fileno.c | 80 - lib/stdio/fileno_u.c | 45 - lib/stdio/findfp.c | 311 - lib/stdio/fiprintf.c | 53 - lib/stdio/fiscanf.c | 51 - lib/stdio/flags.c | 94 - lib/stdio/floatio.h | 32 - lib/stdio/fmemopen.c | 364 - lib/stdio/fopen.c | 171 - lib/stdio/fopencookie.c | 256 - lib/stdio/fprintf.c | 64 - lib/stdio/fpurge.c | 110 - lib/stdio/fputc.c | 120 - lib/stdio/fputc_u.c | 54 - lib/stdio/fputs.c | 142 - lib/stdio/fputs_u.c | 28 - lib/stdio/fputwc.c | 186 - lib/stdio/fputwc_u.c | 49 - lib/stdio/fputws.c | 167 - lib/stdio/fputws_u.c | 28 - lib/stdio/fread.c | 268 - lib/stdio/fread_u.c | 28 - lib/stdio/freopen.c | 252 - lib/stdio/fscanf.c | 62 - lib/stdio/fseek.c | 102 - lib/stdio/fseeko.c | 368 - lib/stdio/fsetlocking.c | 89 - lib/stdio/fsetpos.c | 82 - lib/stdio/ftell.c | 108 - lib/stdio/ftello.c | 160 - lib/stdio/funopen.c | 272 - lib/stdio/fvwrite.c | 265 - lib/stdio/fvwrite.h | 36 - lib/stdio/fwalk.c | 52 - lib/stdio/fwide.c | 76 - lib/stdio/fwprintf.c | 54 - lib/stdio/fwrite.c | 179 - lib/stdio/fwrite_u.c | 28 - lib/stdio/fwscanf.c | 53 - lib/stdio/getc.c | 105 - lib/stdio/getc_u.c | 88 - lib/stdio/getchar.c | 93 - lib/stdio/getchar_u.c | 88 - lib/stdio/getdelim.c | 133 - lib/stdio/getline.c | 46 - lib/stdio/gets.c | 101 - lib/stdio/getw.c | 63 - lib/stdio/getwc.c | 50 - lib/stdio/getwc_u.c | 51 - lib/stdio/getwchar.c | 109 - lib/stdio/getwchar_u.c | 50 - lib/stdio/iprintf.c | 55 - lib/stdio/iscanf.c | 53 - lib/stdio/local.h | 321 - lib/stdio/makebuf.c | 124 - lib/stdio/mktemp.c | 371 - lib/stdio/nano-svfprintf.c | 2 - lib/stdio/nano-svfscanf.c | 2 - lib/stdio/nano-vfprintf.c | 661 - lib/stdio/nano-vfprintf_float.c | 367 - lib/stdio/nano-vfprintf_i.c | 250 - lib/stdio/nano-vfprintf_local.h | 234 - lib/stdio/nano-vfscanf.c | 465 - lib/stdio/nano-vfscanf_float.c | 342 - lib/stdio/nano-vfscanf_i.c | 232 - lib/stdio/nano-vfscanf_local.h | 178 - lib/stdio/open_memstream.c | 405 - lib/stdio/perror.c | 113 - lib/stdio/printf.c | 66 - lib/stdio/putc.c | 112 - lib/stdio/putc_u.c | 91 - lib/stdio/putchar.c | 88 - lib/stdio/putchar_u.c | 80 - lib/stdio/puts.c | 132 - lib/stdio/putw.c | 58 - lib/stdio/putwc.c | 51 - lib/stdio/putwc_u.c | 52 - lib/stdio/putwchar.c | 104 - lib/stdio/putwchar_u.c | 51 - lib/stdio/refill.c | 128 - lib/stdio/remove.c | 79 - lib/stdio/rename.c | 63 - lib/stdio/rewind.c | 70 - lib/stdio/rget.c | 57 - lib/stdio/scanf.c | 65 - lib/stdio/sccl.c | 126 - lib/stdio/setbuf.c | 72 - lib/stdio/setbuffer.c | 73 - lib/stdio/setlinebuf.c | 62 - lib/stdio/setvbuf.c | 222 - lib/stdio/siprintf.c | 142 - lib/stdio/siscanf.c | 127 - lib/stdio/sniprintf.c | 89 - lib/stdio/snprintf.c | 99 - lib/stdio/sprintf.c | 629 - lib/stdio/sscanf.c | 478 - lib/stdio/stdio.c | 144 - lib/stdio/stdio.tex | 327 - lib/stdio/stdio_ext.c | 106 - lib/stdio/svfiprintf.c | 3 - lib/stdio/svfiscanf.c | 3 - lib/stdio/svfiwprintf.c | 3 - lib/stdio/svfiwscanf.c | 3 - lib/stdio/svfprintf.c | 2 - lib/stdio/svfscanf.c | 2 - lib/stdio/svfwprintf.c | 2 - lib/stdio/svfwscanf.c | 2 - lib/stdio/swprintf.c | 633 - lib/stdio/swscanf.c | 459 - lib/stdio/tmpfile.c | 88 - lib/stdio/tmpnam.c | 191 - lib/stdio/ungetc.c | 214 - lib/stdio/ungetwc.c | 115 - lib/stdio/vasiprintf.c | 63 - lib/stdio/vasniprintf.c | 69 - lib/stdio/vasnprintf.c | 81 - lib/stdio/vasprintf.c | 75 - lib/stdio/vdiprintf.c | 45 - lib/stdio/vdprintf.c | 56 - lib/stdio/vfieeefp.h | 284 - lib/stdio/vfiprintf.c | 2 - lib/stdio/vfiscanf.c | 2 - lib/stdio/vfiwprintf.c | 2 - lib/stdio/vfiwscanf.c | 2 - lib/stdio/vfprintf.c | 2345 --- lib/stdio/vfscanf.c | 1991 -- lib/stdio/vfwprintf.c | 2016 -- lib/stdio/vfwscanf.c | 1646 -- lib/stdio/viprintf.c | 122 - lib/stdio/viscanf.c | 107 - lib/stdio/vprintf.c | 57 - lib/stdio/vscanf.c | 58 - lib/stdio/vsiprintf.c | 59 - lib/stdio/vsiscanf.c | 59 - lib/stdio/vsniprintf.c | 70 - lib/stdio/vsnprintf.c | 82 - lib/stdio/vsprintf.c | 71 - lib/stdio/vsscanf.c | 71 - lib/stdio/vswprintf.c | 80 - lib/stdio/vswscanf.c | 60 - lib/stdio/vwprintf.c | 47 - lib/stdio/vwscanf.c | 47 - lib/stdio/wbuf.c | 94 - lib/stdio/wprintf.c | 56 - lib/stdio/wscanf.c | 56 - lib/stdio/wsetup.c | 93 - lib/stdio64/Makefile.inc | 31 - lib/stdio64/fdopen64.c | 116 - lib/stdio64/fgetpos64.c | 72 - lib/stdio64/fopen64.c | 127 - lib/stdio64/freopen64.c | 258 - lib/stdio64/fseeko64.c | 353 - lib/stdio64/fsetpos64.c | 66 - lib/stdio64/ftello64.c | 159 - lib/stdio64/stdio64.c | 79 - lib/stdio64/stdio64.tex | 46 - lib/stdio64/tmpfile64.c | 93 - lib/stdlib/Makefile.inc | 247 - lib/stdlib/_Exit.c | 40 - lib/stdlib/__adjust.c | 43 - lib/stdlib/__atexit.c | 154 - lib/stdlib/__call_atexit.c | 159 - lib/stdlib/__exp10.c | 29 - lib/stdlib/__ten_mu.c | 23 - lib/stdlib/_mallocr.c | 3721 ---- lib/stdlib/a64l.c | 188 - lib/stdlib/abort.c | 63 - lib/stdlib/abs.c | 38 - lib/stdlib/aligned_alloc.c | 37 - lib/stdlib/arc4random.c | 218 - lib/stdlib/arc4random.h | 91 - lib/stdlib/arc4random_uniform.c | 56 - lib/stdlib/assert.c | 74 - lib/stdlib/atexit.c | 59 - lib/stdlib/atexit.h | 14 - lib/stdlib/atof.c | 63 - lib/stdlib/atoff.c | 8 - lib/stdlib/atoi.c | 62 - lib/stdlib/atol.c | 21 - lib/stdlib/atoll.c | 79 - lib/stdlib/btowc.c | 32 - lib/stdlib/calloc.c | 56 - lib/stdlib/callocr.c | 2 - lib/stdlib/cfreer.c | 2 - lib/stdlib/chacha_private.h | 221 - lib/stdlib/cxa_atexit.c | 39 - lib/stdlib/cxa_finalize.c | 19 - lib/stdlib/div.c | 122 - lib/stdlib/drand48.c | 29 - lib/stdlib/dtoa.c | 863 - lib/stdlib/dtoastub.c | 21 - lib/stdlib/ecvtbuf.c | 451 - lib/stdlib/efgcvt.c | 168 - lib/stdlib/environ.c | 36 - lib/stdlib/envlock.c | 54 - lib/stdlib/eprintf.c | 26 - lib/stdlib/erand48.c | 32 - lib/stdlib/exit.c | 66 - lib/stdlib/freer.c | 2 - lib/stdlib/gdtoa-dmisc.c | 230 - lib/stdlib/gdtoa-gdtoa.c | 837 - lib/stdlib/gdtoa-gethex.c | 359 - lib/stdlib/gdtoa-gmisc.c | 91 - lib/stdlib/gdtoa-hexnan.c | 155 - lib/stdlib/gdtoa-ldtoa.c | 159 - lib/stdlib/gdtoa.h | 172 - lib/stdlib/gdtoaimp.h | 206 - lib/stdlib/getenv.c | 85 - lib/stdlib/getenv_r.c | 126 - lib/stdlib/getopt.c | 526 - lib/stdlib/getsubopt.3 | 145 - lib/stdlib/getsubopt.c | 97 - lib/stdlib/imaxabs.c | 36 - lib/stdlib/imaxdiv.c | 48 - lib/stdlib/itoa.c | 67 - lib/stdlib/jrand48.c | 30 - lib/stdlib/l64a.c | 66 - lib/stdlib/labs.c | 43 - lib/stdlib/lcong48.c | 44 - lib/stdlib/ldiv.c | 99 - lib/stdlib/ldtoa.c | 3908 ---- lib/stdlib/llabs.c | 60 - lib/stdlib/lldiv.c | 109 - lib/stdlib/local.h | 65 - lib/stdlib/lrand48.c | 31 - lib/stdlib/malign.c | 19 - lib/stdlib/malignr.c | 2 - lib/stdlib/mallinfor.c | 2 - lib/stdlib/malloc.c | 175 - lib/stdlib/mallocr.c | 2 - lib/stdlib/malloptr.c | 2 - lib/stdlib/mallstatsr.c | 2 - lib/stdlib/mbctype.h | 21 - lib/stdlib/mblen.c | 78 - lib/stdlib/mblen_r.c | 68 - lib/stdlib/mbrlen.c | 26 - lib/stdlib/mbrtowc.c | 82 - lib/stdlib/mbsinit.c | 14 - lib/stdlib/mbsnrtowcs.c | 151 - lib/stdlib/mbsrtowcs.c | 29 - lib/stdlib/mbstowcs.c | 75 - lib/stdlib/mbstowcs_r.c | 37 - lib/stdlib/mbtowc.c | 92 - lib/stdlib/mbtowc_r.c | 976 - lib/stdlib/mlock.c | 57 - lib/stdlib/mman.h | 166 - lib/stdlib/mprec.c | 1044 -- lib/stdlib/mprec.h | 410 - lib/stdlib/mrand48.c | 30 - lib/stdlib/msize.c | 18 - lib/stdlib/msizer.c | 2 - lib/stdlib/mstats.c | 136 - lib/stdlib/mtrim.c | 18 - lib/stdlib/nano-mallocr.c | 737 - lib/stdlib/nrand48.c | 31 - lib/stdlib/on_exit.c | 73 - lib/stdlib/on_exit_args.c | 30 - lib/stdlib/on_exit_args.h | 12 - lib/stdlib/putenv.c | 30 - lib/stdlib/putenv_r.c | 55 - lib/stdlib/pvallocr.c | 2 - lib/stdlib/quick_exit.c | 88 - lib/stdlib/rand.c | 88 - lib/stdlib/rand48.c | 152 - lib/stdlib/rand48.h | 36 - lib/stdlib/rand_r.c | 37 - lib/stdlib/random.c | 82 - lib/stdlib/realloc.c | 21 - lib/stdlib/reallocarray.c | 35 - lib/stdlib/reallocf.c | 53 - lib/stdlib/reallocr.c | 2 - lib/stdlib/rpmatch.c | 82 - lib/stdlib/sb_charsets.c | 813 - lib/stdlib/seed48.c | 42 - lib/stdlib/setenv.c | 51 - lib/stdlib/setenv_r.c | 158 - lib/stdlib/srand48.c | 36 - lib/stdlib/std.h | 27 - lib/stdlib/stdlib.tex | 210 - lib/stdlib/strtod.c | 1348 -- lib/stdlib/strtodg.c | 1126 -- lib/stdlib/strtoimax.c | 172 - lib/stdlib/strtol.c | 241 - lib/stdlib/strtold.c | 105 - lib/stdlib/strtoll.c | 238 - lib/stdlib/strtoll_r.c | 1 - lib/stdlib/strtorx.c | 123 - lib/stdlib/strtoul.c | 215 - lib/stdlib/strtoull.c | 213 - lib/stdlib/strtoull_r.c | 1 - lib/stdlib/strtoumax.c | 151 - lib/stdlib/system.c | 178 - lib/stdlib/utoa.c | 74 - lib/stdlib/valloc.c | 24 - lib/stdlib/vallocr.c | 2 - lib/stdlib/wcrtomb.c | 81 - lib/stdlib/wcsnrtombs.c | 167 - lib/stdlib/wcsrtombs.c | 26 - lib/stdlib/wcstod.c | 281 - lib/stdlib/wcstoimax.c | 158 - lib/stdlib/wcstol.c | 237 - lib/stdlib/wcstold.c | 124 - lib/stdlib/wcstoll.c | 237 - lib/stdlib/wcstoll_r.c | 1 - lib/stdlib/wcstombs.c | 75 - lib/stdlib/wcstombs_r.c | 47 - lib/stdlib/wcstoul.c | 216 - lib/stdlib/wcstoull.c | 232 - lib/stdlib/wcstoull_r.c | 1 - lib/stdlib/wcstoumax.c | 157 - lib/stdlib/wctob.c | 25 - lib/stdlib/wctomb.c | 77 - lib/stdlib/wctomb_r.c | 658 - lib/string/Makefile.inc | 149 - lib/string/WIDTH-A | 569 - lib/string/ambiguous.t | 61 - lib/string/bcmp.c | 41 - lib/string/bcopy.c | 32 - lib/string/bzero.c | 34 - lib/string/combining.t | 122 - lib/string/explicit_bzero.c | 16 - lib/string/ffsl.c | 34 - lib/string/ffsll.c | 34 - lib/string/fls.c | 38 - lib/string/flsl.c | 38 - lib/string/flsll.c | 38 - lib/string/gnu_basename.c | 25 - lib/string/index.c | 38 - lib/string/local.h | 18 - lib/string/memccpy.c | 136 - lib/string/memchr.c | 126 - lib/string/memcmp.c | 105 - lib/string/memcpy.c | 105 - lib/string/memmem.c | 187 - lib/string/memmove.c | 136 - lib/string/mempcpy.c | 100 - lib/string/memrchr.c | 126 - lib/string/memset.c | 96 - lib/string/mkunidata | 73 - lib/string/mkwide | 49 - lib/string/mkwidthA | 20 - lib/string/rawmemchr.c | 114 - lib/string/rindex.c | 38 - lib/string/stpcpy.c | 84 - lib/string/stpncpy.c | 107 - lib/string/str-two-way.h | 416 - lib/string/strcasecmp.c | 51 - lib/string/strcasecmp_l.c | 54 - lib/string/strcasestr.c | 146 - lib/string/strcat.c | 97 - lib/string/strchr.c | 116 - lib/string/strchrnul.c | 40 - lib/string/strcmp.c | 99 - lib/string/strcoll.c | 44 - lib/string/strcoll_l.c | 46 - lib/string/strcpy.c | 92 - lib/string/strcspn.c | 48 - lib/string/strdup.c | 13 - lib/string/strdup_r.c | 16 - lib/string/strerror.c | 905 - lib/string/strerror_r.c | 77 - lib/string/strings.tex | 205 - lib/string/strlcat.c | 57 - lib/string/strlcpy.c | 52 - lib/string/strlen.c | 82 - lib/string/strlwr.c | 40 - lib/string/strncasecmp.c | 53 - lib/string/strncasecmp_l.c | 56 - lib/string/strncat.c | 107 - lib/string/strncmp.c | 114 - lib/string/strncpy.c | 118 - lib/string/strndup.c | 15 - lib/string/strndup_r.c | 26 - lib/string/strnlen.c | 42 - lib/string/strnstr.c | 51 - lib/string/strpbrk.c | 51 - lib/string/strrchr.c | 53 - lib/string/strsep.c | 18 - lib/string/strsignal.c | 253 - lib/string/strspn.c | 52 - lib/string/strstr.c | 204 - lib/string/strtok.c | 94 - lib/string/strtok_r.c | 97 - lib/string/strupr.c | 40 - lib/string/strverscmp.c | 92 - lib/string/strxfrm.c | 69 - lib/string/strxfrm_l.c | 71 - lib/string/swab.c | 37 - lib/string/timingsafe_bcmp.c | 29 - lib/string/timingsafe_memcmp.c | 46 - lib/string/u_strerr.c | 14 - lib/string/uniset | 697 - lib/string/wcpcpy.c | 35 - lib/string/wcpncpy.c | 55 - lib/string/wcscasecmp.c | 51 - lib/string/wcscasecmp_l.c | 54 - lib/string/wcscat.c | 80 - lib/string/wcschr.c | 76 - lib/string/wcscmp.c | 78 - lib/string/wcscoll.c | 41 - lib/string/wcscoll_l.c | 43 - lib/string/wcscpy.c | 74 - lib/string/wcscspn.c | 80 - lib/string/wcsdup.c | 56 - lib/string/wcslcat.c | 86 - lib/string/wcslcpy.c | 77 - lib/string/wcslen.c | 67 - lib/string/wcsncasecmp.c | 53 - lib/string/wcsncasecmp_l.c | 56 - lib/string/wcsncat.c | 85 - lib/string/wcsncmp.c | 84 - lib/string/wcsncpy.c | 52 - lib/string/wcsnlen.c | 68 - lib/string/wcspbrk.c | 82 - lib/string/wcsrchr.c | 81 - lib/string/wcsspn.c | 82 - lib/string/wcsstr.c | 100 - lib/string/wcstok.c | 174 - lib/string/wcstrings.tex | 130 - lib/string/wcswidth.c | 66 - lib/string/wcsxfrm.c | 45 - lib/string/wcsxfrm_l.c | 47 - lib/string/wcwidth.c | 241 - lib/string/wide.t | 33 - lib/string/wmemchr.c | 82 - lib/string/wmemcmp.c | 82 - lib/string/wmemcpy.c | 70 - lib/string/wmemmove.c | 75 - lib/string/wmempcpy.c | 42 - lib/string/wmemset.c | 75 - lib/string/xpg_strerror_r.c | 25 - lib/sys.tex | 399 - lib/sys/Makefile.inc | 69 - lib/sys/a29khif/Makefile.inc | 35 - lib/sys/a29khif/_alloc.S | 55 - lib/sys/a29khif/_close.S | 40 - lib/sys/a29khif/_cycles.S | 39 - lib/sys/a29khif/_exit.S | 39 - lib/sys/a29khif/_fstat.S | 79 - lib/sys/a29khif/_getpsiz.S | 38 - lib/sys/a29khif/_gettz.S | 39 - lib/sys/a29khif/_ioctl.S | 39 - lib/sys/a29khif/_iostat.S | 43 - lib/sys/a29khif/_iowait.S | 39 - lib/sys/a29khif/_isatty.S | 20 - lib/sys/a29khif/_lseek.S | 42 - lib/sys/a29khif/_open.S | 39 - lib/sys/a29khif/_query.S | 39 - lib/sys/a29khif/_read.S | 38 - lib/sys/a29khif/_sbrk.S | 30 - lib/sys/a29khif/_setim.S | 39 - lib/sys/a29khif/_settrap.S | 39 - lib/sys/a29khif/_setvec.S | 38 - lib/sys/a29khif/_tmpnam.S | 41 - lib/sys/a29khif/_write.S | 40 - lib/sys/a29khif/alloc.S | 64 - lib/sys/a29khif/clock.S | 41 - lib/sys/a29khif/crt0.S | 226 - lib/sys/a29khif/getargs.S | 38 - lib/sys/a29khif/getenv.S | 48 - lib/sys/a29khif/getpid.c | 12 - lib/sys/a29khif/kill.c | 20 - lib/sys/a29khif/read.S | 54 - lib/sys/a29khif/remove.S | 43 - lib/sys/a29khif/rename.S | 41 - lib/sys/a29khif/signal.S | 452 - lib/sys/a29khif/stubs.S | 135 - lib/sys/a29khif/sys/cpudef.h | 270 - lib/sys/a29khif/sys/fpsymbol.h | 2970 --- lib/sys/a29khif/sys/intrinsi.h | 457 - lib/sys/a29khif/sys/macros.h | 37 - lib/sys/a29khif/sys/proreg.h | 60 - lib/sys/a29khif/sys/romdcl.h | 392 - lib/sys/a29khif/sys/smartmac.h | 1491 -- lib/sys/a29khif/sys/sysmac.h | 165 - lib/sys/a29khif/systime.S | 44 - lib/sys/a29khif/vec.S | 35 - lib/sys/amdgcn/Makefile.inc | 3 - lib/sys/amdgcn/close.c | 24 - lib/sys/amdgcn/fcntl.c | 24 - lib/sys/amdgcn/fstat.c | 25 - lib/sys/amdgcn/getpid.c | 20 - lib/sys/amdgcn/isatty.c | 23 - lib/sys/amdgcn/kill.c | 23 - lib/sys/amdgcn/lseek.c | 24 - lib/sys/amdgcn/open.c | 25 - lib/sys/amdgcn/raise.c | 20 - lib/sys/amdgcn/read.c | 21 - lib/sys/amdgcn/stat.c | 24 - lib/sys/amdgcn/unlink.c | 23 - lib/sys/amdgcn/write.c | 113 - lib/sys/arm/Makefile.inc | 6 - lib/sys/arm/access.c | 33 - lib/sys/arm/aeabi_atexit.c | 13 - lib/sys/arm/arm.h | 90 - lib/sys/arm/crt0.S | 633 - lib/sys/arm/libcfunc.c | 15 - lib/sys/arm/swi.h | 91 - lib/sys/arm/sys/fcntl.h | 12 - lib/sys/arm/syscalls.c | 717 - lib/sys/arm/sysconf.c | 34 - lib/sys/arm/trap.S | 95 - lib/sys/d10v/Makefile.inc | 1 - lib/sys/d10v/creat.c | 7 - lib/sys/d10v/crt0.S | 63 - lib/sys/d10v/sys/syscall.h | 38 - lib/sys/d10v/syscalls.c | 216 - lib/sys/d10v/trap.S | 296 - lib/sys/epiphany/Makefile.inc | 2 - lib/sys/epiphany/e_printf.c | 150 - lib/sys/h8300hms/Makefile.inc | 3 - lib/sys/h8300hms/_exit.S | 17 - lib/sys/h8300hms/close.S | 17 - lib/sys/h8300hms/crt0.S | 105 - lib/sys/h8300hms/crt1.c | 18 - lib/sys/h8300hms/fstat.S | 18 - lib/sys/h8300hms/lseek.S | 18 - lib/sys/h8300hms/misc.c | 32 - lib/sys/h8300hms/open.S | 14 - lib/sys/h8300hms/read.S | 18 - lib/sys/h8300hms/sbrk.c | 28 - lib/sys/h8300hms/setarch.h | 21 - lib/sys/h8300hms/stat.S | 12 - lib/sys/h8300hms/sys/file.h | 29 - lib/sys/h8300hms/sys/syscall.h | 1 - lib/sys/h8300hms/syscalls.c | 18 - lib/sys/h8300hms/write.S | 17 - lib/sys/h8500hms/Makefile.inc | 1 - lib/sys/h8500hms/crt0.c | 32 - lib/sys/h8500hms/misc.c | 27 - lib/sys/h8500hms/syscalls.c | 129 - lib/sys/m88kbug/Makefile.inc | 1 - lib/sys/m88kbug/crt0.c | 19 - lib/sys/m88kbug/sys/systraps.h | 9 - lib/sys/m88kbug/syscalls.c | 131 - lib/sys/mmixware/Makefile.inc | 6 - lib/sys/mmixware/_exit.c | 30 - lib/sys/mmixware/access.c | 42 - lib/sys/mmixware/chmod.c | 26 - lib/sys/mmixware/chown.c | 26 - lib/sys/mmixware/close.c | 38 - lib/sys/mmixware/creat.c | 27 - lib/sys/mmixware/crt0.c | 18 - lib/sys/mmixware/execv.c | 26 - lib/sys/mmixware/execve.c | 26 - lib/sys/mmixware/fork.c | 26 - lib/sys/mmixware/fstat.c | 26 - lib/sys/mmixware/getpid.c | 22 - lib/sys/mmixware/gettime.c | 27 - lib/sys/mmixware/isatty.c | 23 - lib/sys/mmixware/kill.c | 28 - lib/sys/mmixware/link.c | 25 - lib/sys/mmixware/lseek.c | 63 - lib/sys/mmixware/open.c | 237 - lib/sys/mmixware/pipe.c | 26 - lib/sys/mmixware/read.c | 61 - lib/sys/mmixware/sbrk.c | 59 - lib/sys/mmixware/setjmp.S | 87 - lib/sys/mmixware/stat.c | 27 - lib/sys/mmixware/sys/syscall.h | 145 - lib/sys/mmixware/time.c | 30 - lib/sys/mmixware/times.c | 25 - lib/sys/mmixware/unlink.c | 23 - lib/sys/mmixware/utime.c | 28 - lib/sys/mmixware/wait.c | 27 - lib/sys/mmixware/write.c | 42 - lib/sys/netware/Makefile.inc | 3 - lib/sys/netware/crt0.c | 4 - lib/sys/netware/getpid.c | 11 - lib/sys/netware/link.c | 17 - lib/sys/or1k/Makefile.inc | 1 - lib/sys/or1k/getreent.S | 26 - lib/sys/or1k/mlock.c | 94 - lib/sys/or1k/or1k-asm.h | 83 - lib/sys/rdos/Makefile.inc | 5 - lib/sys/rdos/chown.c | 11 - lib/sys/rdos/close.c | 36 - lib/sys/rdos/config.h | 1 - lib/sys/rdos/crt0.S | 406 - lib/sys/rdos/execve.c | 10 - lib/sys/rdos/fork.c | 10 - lib/sys/rdos/fstat.c | 45 - lib/sys/rdos/getenv.c | 78 - lib/sys/rdos/getpid.c | 10 - lib/sys/rdos/gettod.c | 15 - lib/sys/rdos/isatty.c | 9 - lib/sys/rdos/kill.c | 10 - lib/sys/rdos/link.c | 10 - lib/sys/rdos/lseek.c | 59 - lib/sys/rdos/open.c | 59 - lib/sys/rdos/rdos.S | 7528 -------- lib/sys/rdos/rdos.h | 344 - lib/sys/rdos/rdoshelp.c | 162 - lib/sys/rdos/read.c | 35 - lib/sys/rdos/readlink.c | 11 - lib/sys/rdos/sbrk.c | 33 - lib/sys/rdos/stat.c | 12 - lib/sys/rdos/symlink.c | 10 - lib/sys/rdos/times.c | 11 - lib/sys/rdos/unlink.c | 10 - lib/sys/rdos/user.def | 368 - lib/sys/rdos/wait.c | 10 - lib/sys/rdos/write.c | 35 - lib/sys/rtems/Makefile.inc | 1 - lib/sys/rtems/cpusetalloc.c | 38 - lib/sys/rtems/cpusetfree.c | 38 - lib/sys/rtems/crt0.c | 236 - lib/sys/rtems/dummysys.c | 1 - lib/sys/rtems/include/README | 79 - lib/sys/rtems/include/arpa/inet.h | 159 - lib/sys/rtems/include/limits.h | 176 - lib/sys/rtems/include/machine/_align.h | 38 - lib/sys/rtems/include/machine/_arc4random.h | 35 - lib/sys/rtems/include/machine/_bitcount.h | 90 - lib/sys/rtems/include/machine/_libatomic.h | 46 - lib/sys/rtems/include/machine/_threads.h | 53 - lib/sys/rtems/include/machine/_time.h | 34 - lib/sys/rtems/include/machine/_types.h | 43 - lib/sys/rtems/include/machine/limits.h | 5 - lib/sys/rtems/include/machine/param.h | 88 - lib/sys/rtems/include/machine/types.h | 96 - lib/sys/rtems/include/net/if.h | 668 - lib/sys/rtems/include/netdb.h | 306 - lib/sys/rtems/include/netinet/in.h | 666 - lib/sys/rtems/include/netinet/tcp.h | 442 - lib/sys/rtems/include/netinet6/in6.h | 603 - lib/sys/rtems/include/poll.h | 1 - lib/sys/rtems/include/semaphore.h | 60 - lib/sys/rtems/include/sys/_bitset.h | 72 - lib/sys/rtems/include/sys/_cpuset.h | 59 - lib/sys/rtems/include/sys/_iovec.h | 50 - lib/sys/rtems/include/sys/_pthreadtypes.h | 256 - lib/sys/rtems/include/sys/_sockaddr_storage.h | 56 - lib/sys/rtems/include/sys/_termios.h | 238 - lib/sys/rtems/include/sys/_uio.h | 52 - lib/sys/rtems/include/sys/_winsize.h | 49 - lib/sys/rtems/include/sys/bitset.h | 365 - lib/sys/rtems/include/sys/cpuset.h | 230 - lib/sys/rtems/include/sys/dirent.h | 120 - lib/sys/rtems/include/sys/filio.h | 89 - lib/sys/rtems/include/sys/ioccom.h | 96 - lib/sys/rtems/include/sys/ioctl.h | 53 - lib/sys/rtems/include/sys/lock.h | 396 - lib/sys/rtems/include/sys/mman.h | 303 - lib/sys/rtems/include/sys/param.h | 284 - lib/sys/rtems/include/sys/poll.h | 107 - lib/sys/rtems/include/sys/socket.h | 699 - lib/sys/rtems/include/sys/sockio.h | 153 - lib/sys/rtems/include/sys/syslimits.h | 60 - lib/sys/rtems/include/sys/syslog.h | 204 - lib/sys/rtems/include/sys/ttycom.h | 137 - lib/sys/rtems/include/sys/ttydefaults.h | 113 - lib/sys/rtems/include/sys/uio.h | 70 - lib/sys/rtems/include/sys/un.h | 86 - lib/sys/rtems/include/sys/utime.h | 34 - lib/sys/rtems/include/syslog.h | 1 - lib/sys/rtems/include/termios.h | 109 - lib/sys/sh/Makefile.inc | 3 - lib/sys/sh/creat.c | 7 - lib/sys/sh/crt0.S | 119 - lib/sys/sh/ftruncate.c | 9 - lib/sys/sh/sys/syscall.h | 38 - lib/sys/sh/syscalls.c | 228 - lib/sys/sh/trap.S | 43 - lib/sys/sh/truncate.c | 9 - lib/sys/sysmec/Makefile.inc | 6 - lib/sys/sysmec/_exit.c | 34 - lib/sys/sysmec/access.c | 33 - lib/sys/sysmec/chmod.c | 16 - lib/sys/sysmec/chown.c | 17 - lib/sys/sysmec/close.c | 16 - lib/sys/sysmec/creat.c | 17 - lib/sys/sysmec/crt0.S | 65 - lib/sys/sysmec/crt1.c | 16 - lib/sys/sysmec/execv.c | 16 - lib/sys/sysmec/execve.c | 16 - lib/sys/sysmec/fork.c | 16 - lib/sys/sysmec/fstat.c | 19 - lib/sys/sysmec/getpid.c | 15 - lib/sys/sysmec/gettime.c | 17 - lib/sys/sysmec/isatty.c | 16 - lib/sys/sysmec/kill.c | 16 - lib/sys/sysmec/lseek.c | 19 - lib/sys/sysmec/open.c | 17 - lib/sys/sysmec/pipe.c | 16 - lib/sys/sysmec/read.c | 17 - lib/sys/sysmec/sbrk.c | 36 - lib/sys/sysmec/stat.c | 17 - lib/sys/sysmec/sys/syscall.h | 35 - lib/sys/sysmec/time.c | 16 - lib/sys/sysmec/times.c | 17 - lib/sys/sysmec/trap.S | 13 - lib/sys/sysmec/unlink.c | 16 - lib/sys/sysmec/utime.c | 18 - lib/sys/sysmec/wait.c | 17 - lib/sys/sysmec/write.c | 18 - lib/sys/sysnec810/Makefile.inc | 1 - lib/sys/sysnec810/crt0.S | 22 - lib/sys/sysnec810/io.S | 41 - lib/sys/sysnec810/misc.c | 39 - lib/sys/sysnec810/sbrk.c | 12 - lib/sys/sysnec810/write.c | 36 - lib/sys/sysnecv850/Makefile.inc | 8 - lib/sys/sysnecv850/_exit.c | 34 - lib/sys/sysnecv850/access.c | 33 - lib/sys/sysnecv850/chmod.c | 16 - lib/sys/sysnecv850/chown.c | 16 - lib/sys/sysnecv850/close.c | 16 - lib/sys/sysnecv850/creat.c | 17 - lib/sys/sysnecv850/crt0.S | 84 - lib/sys/sysnecv850/crt1.c | 16 - lib/sys/sysnecv850/execv.c | 16 - lib/sys/sysnecv850/execve.c | 16 - lib/sys/sysnecv850/fork.c | 16 - lib/sys/sysnecv850/fstat.c | 17 - lib/sys/sysnecv850/getpid.c | 15 - lib/sys/sysnecv850/gettime.c | 17 - lib/sys/sysnecv850/isatty.c | 16 - lib/sys/sysnecv850/kill.c | 19 - lib/sys/sysnecv850/link.c | 16 - lib/sys/sysnecv850/lseek.c | 18 - lib/sys/sysnecv850/open.c | 17 - lib/sys/sysnecv850/pipe.c | 16 - lib/sys/sysnecv850/read.c | 17 - lib/sys/sysnecv850/rename.c | 17 - lib/sys/sysnecv850/sbrk.c | 29 - lib/sys/sysnecv850/stat.c | 17 - lib/sys/sysnecv850/sys/syscall.h | 36 - lib/sys/sysnecv850/time.c | 16 - lib/sys/sysnecv850/times.c | 17 - lib/sys/sysnecv850/trap.S | 10 - lib/sys/sysnecv850/unlink.c | 16 - lib/sys/sysnecv850/utime.c | 18 - lib/sys/sysnecv850/wait.c | 17 - lib/sys/sysnecv850/write.c | 18 - lib/sys/sysvi386/Makefile.inc | 10 - lib/sys/sysvi386/_exit.S | 6 - lib/sys/sysvi386/_longjmp.S | 31 - lib/sys/sysvi386/_setjmp.S | 24 - lib/sys/sysvi386/access.S | 8 - lib/sys/sysvi386/alarm.S | 5 - lib/sys/sysvi386/brk.S | 8 - lib/sys/sysvi386/cerror.S | 9 - lib/sys/sysvi386/chdir.S | 9 - lib/sys/sysvi386/chmod.S | 9 - lib/sys/sysvi386/close.S | 9 - lib/sys/sysvi386/closedir.c | 54 - lib/sys/sysvi386/crt0.c | 123 - lib/sys/sysvi386/dup.c | 6 - lib/sys/sysvi386/dup2.c | 7 - lib/sys/sysvi386/exec.c | 54 - lib/sys/sysvi386/execve.S | 7 - lib/sys/sysvi386/fcntl.S | 9 - lib/sys/sysvi386/fork.S | 12 - lib/sys/sysvi386/fpathconf.S | 6 - lib/sys/sysvi386/fps.S | 18 - lib/sys/sysvi386/fpx.c | 70 - lib/sys/sysvi386/fstat.S | 9 - lib/sys/sysvi386/getdents.S | 6 - lib/sys/sysvi386/getegid.S | 9 - lib/sys/sysvi386/geteuid.S | 9 - lib/sys/sysvi386/getgid.S | 8 - lib/sys/sysvi386/getgroups.S | 8 - lib/sys/sysvi386/getpid.S | 9 - lib/sys/sysvi386/getuid.S | 8 - lib/sys/sysvi386/ioctl.S | 9 - lib/sys/sysvi386/isatty.c | 11 - lib/sys/sysvi386/kill.S | 9 - lib/sys/sysvi386/link.S | 9 - lib/sys/sysvi386/lseek.S | 8 - lib/sys/sysvi386/mkdir.S | 9 - lib/sys/sysvi386/open.S | 9 - lib/sys/sysvi386/opendir.c | 76 - lib/sys/sysvi386/pathconf.S | 6 - lib/sys/sysvi386/pause.S | 6 - lib/sys/sysvi386/pipe.S | 12 - lib/sys/sysvi386/read.S | 8 - lib/sys/sysvi386/readdir.c | 68 - lib/sys/sysvi386/rename.S | 9 - lib/sys/sysvi386/rewinddir.c | 45 - lib/sys/sysvi386/rmdir.S | 9 - lib/sys/sysvi386/sbrk.c | 21 - lib/sys/sysvi386/scandir.c | 130 - lib/sys/sysvi386/seekdir.c | 48 - lib/sys/sysvi386/setgid.S | 9 - lib/sys/sysvi386/setuid.S | 9 - lib/sys/sysvi386/sigaction.S | 20 - lib/sys/sysvi386/signal.S | 16 - lib/sys/sysvi386/sigprocmask.S | 12 - lib/sys/sysvi386/sleep.c | 12 - lib/sys/sysvi386/speed.c | 24 - lib/sys/sysvi386/stat.S | 9 - lib/sys/sysvi386/sys/dirent.h | 31 - lib/sys/sysvi386/sys/setjmp.h | 6 - lib/sys/sysvi386/sys/termio.h | 82 - lib/sys/sysvi386/sys/termios.h | 121 - lib/sys/sysvi386/sys/utime.h | 12 - lib/sys/sysvi386/sys/utmp.h | 43 - lib/sys/sysvi386/sys/wait.h | 42 - lib/sys/sysvi386/sysconf.S | 6 - lib/sys/sysvi386/tcgetattr.c | 6 - lib/sys/sysvi386/tcline.c | 84 - lib/sys/sysvi386/tcsetattr.c | 7 - lib/sys/sysvi386/telldir.c | 125 - lib/sys/sysvi386/time.S | 8 - lib/sys/sysvi386/times.S | 8 - lib/sys/sysvi386/unlink.S | 9 - lib/sys/sysvi386/utime.S | 8 - lib/sys/sysvi386/wait.S | 13 - lib/sys/sysvi386/waitpid.S | 18 - lib/sys/sysvi386/write.S | 8 - lib/sys/sysvnecv70/Makefile.inc | 3 - lib/sys/sysvnecv70/cerror.S | 9 - lib/sys/sysvnecv70/close.S | 10 - lib/sys/sysvnecv70/crt0.S | 28 - lib/sys/sysvnecv70/exit.S | 7 - lib/sys/sysvnecv70/fps.S | 18 - lib/sys/sysvnecv70/fpx.c | 70 - lib/sys/sysvnecv70/fstat.S | 11 - lib/sys/sysvnecv70/ioctl.S | 9 - lib/sys/sysvnecv70/isatty.S | 19 - lib/sys/sysvnecv70/lseek.S | 9 - lib/sys/sysvnecv70/open.S | 10 - lib/sys/sysvnecv70/read.S | 9 - lib/sys/sysvnecv70/sbrk.S | 34 - lib/sys/sysvnecv70/sysv60.S | 9 - lib/sys/sysvnecv70/sysvnecv70.tex | 129 - lib/sys/sysvnecv70/write.S | 9 - lib/sys/tic80/Makefile.inc | 0 lib/sys/tic80/crt0.c | 22 - lib/sys/tirtos/Makefile.inc | 1 - lib/sys/tirtos/include/sys/lock.h | 109 - lib/sys/tirtos/lock.c | 92 - lib/sys/w65/Makefile.inc | 1 - lib/sys/w65/crt0.c | 16 - lib/sys/w65/sys/syscall.h | 31 - lib/sys/w65/syscalls.c | 191 - lib/sys/w65/trap.c | 15 - lib/sys/z8ksim/Makefile.inc | 1 - lib/sys/z8ksim/crt0.c | 58 - lib/sys/z8ksim/glue.c | 156 - lib/sys/z8ksim/sys/syscall.h | 23 - lib/syscalls/Makefile.inc | 33 - lib/syscalls/sysclose.c | 10 - lib/syscalls/sysexecve.c | 12 - lib/syscalls/sysfcntl.c | 18 - lib/syscalls/sysfork.c | 16 - lib/syscalls/sysfstat.c | 12 - lib/syscalls/sysgetpid.c | 10 - lib/syscalls/sysgettod.c | 12 - lib/syscalls/sysisatty.c | 14 - lib/syscalls/syskill.c | 11 - lib/syscalls/syslink.c | 11 - lib/syscalls/syslseek.c | 12 - lib/syscalls/sysopen.c | 23 - lib/syscalls/sysread.c | 12 - lib/syscalls/syssbrk.c | 13 - lib/syscalls/sysstat.c | 12 - lib/syscalls/systimes.c | 10 - lib/syscalls/sysunlink.c | 10 - lib/syscalls/syswait.c | 10 - lib/syscalls/syswrite.c | 12 - lib/time/Makefile.inc | 39 - lib/time/asctime.c | 63 - lib/time/asctime_r.c | 26 - lib/time/clock.c | 65 - lib/time/ctime.c | 45 - lib/time/ctime_r.c | 14 - lib/time/difftime.c | 37 - lib/time/gettzinfo.c | 15 - lib/time/gmtime.c | 65 - lib/time/gmtime_r.c | 100 - lib/time/lcltime.c | 54 - lib/time/lcltime_r.c | 126 - lib/time/local.h | 41 - lib/time/mktime.c | 282 - lib/time/month_lengths.c | 14 - lib/time/strftime.c | 1974 -- lib/time/strptime.c | 517 - lib/time/time.c | 48 - lib/time/time.tex | 96 - lib/time/tzcalc_limits.c | 76 - lib/time/tzlock.c | 52 - lib/time/tzset.c | 124 - lib/time/tzset_r.c | 260 - lib/time/tzvars.c | 10 - lib/time/wcsftime.c | 68 - lib/unix/Makefile.inc | 35 - lib/unix/basename.c | 27 - lib/unix/dirname.c | 31 - lib/unix/getcwd.c | 267 - lib/unix/getlogin.c | 45 - lib/unix/getpass.c | 101 - lib/unix/getpwent.c | 131 - lib/unix/getut.c | 91 - lib/unix/pread.c | 76 - lib/unix/pwrite.c | 77 - lib/unix/sigset.c | 67 - lib/unix/ttyname.c | 53 - lib/unix/ttyname.h | 6 - lib/unix/ttyname_r.c | 92 - lib/xdr/Makefile.inc | 38 - lib/xdr/README | 194 - lib/xdr/xdr.c | 1008 - lib/xdr/xdr_array.c | 159 - lib/xdr/xdr_float.c | 131 - lib/xdr/xdr_float_vax.c | 252 - lib/xdr/xdr_mem.c | 303 - lib/xdr/xdr_private.c | 55 - lib/xdr/xdr_private.h | 78 - lib/xdr/xdr_rec.c | 904 - lib/xdr/xdr_reference.c | 137 - lib/xdr/xdr_sizeof.c | 173 - lib/xdr/xdr_stdio.c | 206 - 2553 files changed, 1044 insertions(+), 464046 deletions(-) create mode 100644 .gitmodules delete mode 100644 include/COPYING delete mode 100644 include/COPYING3 delete mode 100644 include/_ansi.h delete mode 100644 include/_newlib_version.h delete mode 100644 include/_syslist.h delete mode 100644 include/alloca-conf.h delete mode 100644 include/alloca.h delete mode 100644 include/ansidecl.h delete mode 100644 include/aout/ChangeLog delete mode 100644 include/aout/adobe.h delete mode 100644 include/aout/aout64.h delete mode 100644 include/aout/ar.h delete mode 100644 include/aout/dynix3.h delete mode 100644 include/aout/encap.h delete mode 100644 include/aout/host.h delete mode 100644 include/aout/hp.h delete mode 100644 include/aout/hp300hpux.h delete mode 100644 include/aout/hppa.h delete mode 100644 include/aout/ranlib.h delete mode 100644 include/aout/reloc.h delete mode 100644 include/aout/stab.def delete mode 100644 include/aout/stab_gnu.h delete mode 100644 include/aout/sun4.h delete mode 100644 include/ar.h delete mode 100644 include/argz.h delete mode 100644 include/arm-acle-compat.h delete mode 100644 include/assert.h delete mode 100644 include/bfdlink.h delete mode 100644 include/binary-io.h delete mode 100644 include/bout.h delete mode 100644 include/cgen/ChangeLog delete mode 100644 include/cgen/basic-modes.h delete mode 100644 include/cgen/basic-ops.h delete mode 100644 include/cgen/bitset.h delete mode 100644 include/coff/ChangeLog delete mode 100644 include/coff/ChangeLog-9103 delete mode 100644 include/coff/alpha.h delete mode 100644 include/coff/apollo.h delete mode 100644 include/coff/arm.h delete mode 100644 include/coff/aux-coff.h delete mode 100644 include/coff/ecoff.h delete mode 100644 include/coff/external.h delete mode 100644 include/coff/go32exe.h delete mode 100644 include/coff/h8300.h delete mode 100644 include/coff/h8500.h delete mode 100644 include/coff/i386.h delete mode 100644 include/coff/i860.h delete mode 100644 include/coff/i960.h delete mode 100644 include/coff/ia64.h delete mode 100644 include/coff/internal.h delete mode 100644 include/coff/m68k.h delete mode 100644 include/coff/m88k.h delete mode 100644 include/coff/mcore.h delete mode 100644 include/coff/mips.h delete mode 100644 include/coff/mipspe.h delete mode 100644 include/coff/or32.h delete mode 100644 include/coff/pe.h delete mode 100644 include/coff/powerpc.h delete mode 100644 include/coff/rs6000.h delete mode 100644 include/coff/rs6k64.h delete mode 100644 include/coff/sh.h delete mode 100644 include/coff/sparc.h delete mode 100644 include/coff/sym.h delete mode 100644 include/coff/symconst.h delete mode 100644 include/coff/ti.h delete mode 100644 include/coff/tic30.h delete mode 100644 include/coff/tic4x.h delete mode 100644 include/coff/tic54x.h delete mode 100644 include/coff/tic80.h delete mode 100644 include/coff/w65.h delete mode 100644 include/coff/we32k.h delete mode 100644 include/coff/x86_64.h delete mode 100644 include/coff/xcoff.h delete mode 100644 include/coff/z80.h delete mode 100644 include/coff/z8k.h delete mode 100644 include/complex.h delete mode 100644 include/cpio.h delete mode 100644 include/ctype.h delete mode 100644 include/demangle.h delete mode 100644 include/devctl.h delete mode 100644 include/dirent.h delete mode 100644 include/dis-asm.h delete mode 100644 include/dwarf2.def delete mode 100644 include/dwarf2.h delete mode 100644 include/dyn-string.h delete mode 100644 include/elf.h delete mode 100644 include/elf/ChangeLog delete mode 100644 include/elf/ChangeLog-9103 delete mode 100644 include/elf/aarch64.h delete mode 100644 include/elf/alpha.h delete mode 100644 include/elf/arc.h delete mode 100644 include/elf/arm.h delete mode 100644 include/elf/avr.h delete mode 100644 include/elf/bfin.h delete mode 100644 include/elf/common.h delete mode 100644 include/elf/cr16.h delete mode 100644 include/elf/cr16c.h delete mode 100644 include/elf/cris.h delete mode 100644 include/elf/crx.h delete mode 100644 include/elf/d10v.h delete mode 100644 include/elf/d30v.h delete mode 100644 include/elf/dlx.h delete mode 100644 include/elf/dwarf.h delete mode 100644 include/elf/epiphany.h delete mode 100644 include/elf/external.h delete mode 100644 include/elf/fr30.h delete mode 100644 include/elf/frv.h delete mode 100644 include/elf/h8.h delete mode 100644 include/elf/hppa.h delete mode 100644 include/elf/i370.h delete mode 100644 include/elf/i386.h delete mode 100644 include/elf/i860.h delete mode 100644 include/elf/i960.h delete mode 100644 include/elf/ia64.h delete mode 100644 include/elf/internal.h delete mode 100644 include/elf/ip2k.h delete mode 100644 include/elf/iq2000.h delete mode 100644 include/elf/lm32.h delete mode 100644 include/elf/m32c.h delete mode 100644 include/elf/m32r.h delete mode 100644 include/elf/m68hc11.h delete mode 100644 include/elf/m68k.h delete mode 100644 include/elf/mcore.h delete mode 100644 include/elf/mep.h delete mode 100644 include/elf/metag.h delete mode 100644 include/elf/microblaze.h delete mode 100644 include/elf/mips.h delete mode 100644 include/elf/mmix.h delete mode 100644 include/elf/mn10200.h delete mode 100644 include/elf/mn10300.h delete mode 100644 include/elf/moxie.h delete mode 100644 include/elf/msp430.h delete mode 100644 include/elf/mt.h delete mode 100644 include/elf/nios2.h delete mode 100644 include/elf/openrisc.h delete mode 100644 include/elf/or32.h delete mode 100644 include/elf/pj.h delete mode 100644 include/elf/ppc.h delete mode 100644 include/elf/ppc64.h delete mode 100644 include/elf/reloc-macros.h delete mode 100644 include/elf/rl78.h delete mode 100644 include/elf/rx.h delete mode 100644 include/elf/s390.h delete mode 100644 include/elf/score.h delete mode 100644 include/elf/sh.h delete mode 100644 include/elf/sparc.h delete mode 100644 include/elf/spu.h delete mode 100644 include/elf/tic6x-attrs.h delete mode 100644 include/elf/tic6x.h delete mode 100644 include/elf/tilegx.h delete mode 100644 include/elf/tilepro.h delete mode 100644 include/elf/v850.h delete mode 100644 include/elf/vax.h delete mode 100644 include/elf/vxworks.h delete mode 100644 include/elf/x86-64.h delete mode 100644 include/elf/xc16x.h delete mode 100644 include/elf/xgate.h delete mode 100644 include/elf/xstormy16.h delete mode 100644 include/elf/xtensa.h delete mode 100644 include/environ.h delete mode 100644 include/envlock.h delete mode 100644 include/envz.h delete mode 100644 include/errno.h delete mode 100644 include/fastmath.h delete mode 100644 include/fcntl.h delete mode 100644 include/fenv.h delete mode 100644 include/fibheap.h delete mode 100644 include/filenames.h delete mode 100644 include/floatformat.h delete mode 100644 include/fnmatch.h delete mode 100644 include/fopen-bin.h delete mode 100644 include/fopen-same.h delete mode 100644 include/fopen-vms.h delete mode 100644 include/ftw.h delete mode 100644 include/gcc-c-fe.def delete mode 100644 include/gcc-c-interface.h delete mode 100644 include/gcc-interface.h delete mode 100644 include/gdb/ChangeLog delete mode 100644 include/gdb/callback.h delete mode 100644 include/gdb/fileio.h delete mode 100644 include/gdb/gdb-index.h delete mode 100644 include/gdb/remote-sim.h delete mode 100644 include/gdb/signals.def delete mode 100644 include/gdb/signals.h delete mode 100644 include/gdb/sim-arm.h delete mode 100644 include/gdb/sim-bfin.h delete mode 100644 include/gdb/sim-cr16.h delete mode 100644 include/gdb/sim-d10v.h delete mode 100644 include/gdb/sim-frv.h delete mode 100644 include/gdb/sim-h8300.h delete mode 100644 include/gdb/sim-lm32.h delete mode 100644 include/gdb/sim-m32c.h delete mode 100644 include/gdb/sim-ppc.h delete mode 100644 include/gdb/sim-rl78.h delete mode 100644 include/gdb/sim-rx.h delete mode 100644 include/gdb/sim-sh.h delete mode 100644 include/gdbm.h delete mode 100644 include/getopt.h delete mode 100644 include/glob.h delete mode 100644 include/gomp-constants.h delete mode 100644 include/grp.h delete mode 100644 include/hashtab.h delete mode 100644 include/hp-symtab.h delete mode 100644 include/iconv.h delete mode 100644 include/ieee.h delete mode 100644 include/ieeefp.h delete mode 100644 include/inttypes.h delete mode 100644 include/langinfo.h delete mode 100644 include/leb128.h delete mode 100644 include/libgen.h delete mode 100644 include/libiberty.h delete mode 100644 include/limits.h delete mode 100644 include/locale.h delete mode 100644 include/longlong.h delete mode 100644 include/lto-symtab.h delete mode 100644 include/mach-o/ChangeLog delete mode 100644 include/mach-o/arm.h delete mode 100644 include/mach-o/codesign.h delete mode 100644 include/mach-o/external.h delete mode 100644 include/mach-o/loader.h delete mode 100644 include/mach-o/reloc.h delete mode 100644 include/mach-o/x86-64.h delete mode 100644 include/machine/_arc4random.h delete mode 100644 include/machine/_default_types.h delete mode 100644 include/machine/_endian.h delete mode 100644 include/machine/_time.h delete mode 100644 include/machine/_types.h delete mode 100644 include/machine/ansi.h delete mode 100644 include/machine/endian.h delete mode 100644 include/machine/fastmath.h delete mode 100644 include/machine/ieee.h delete mode 100644 include/machine/ieeefp.h delete mode 100644 include/machine/malloc.h delete mode 100644 include/machine/param.h delete mode 100644 include/machine/setjmp-dj.h delete mode 100644 include/machine/setjmp.h delete mode 100644 include/machine/stdlib.h delete mode 100644 include/machine/termios.h delete mode 100644 include/machine/time.h delete mode 100644 include/machine/types.h delete mode 100644 include/malloc.h delete mode 100644 include/math.h delete mode 100644 include/md5.h delete mode 100644 include/memory.h delete mode 100644 include/ndbm.h delete mode 100644 include/newlib.h delete mode 100644 include/nlm/ChangeLog delete mode 100644 include/nlm/alpha-ext.h delete mode 100644 include/nlm/common.h delete mode 100644 include/nlm/external.h delete mode 100644 include/nlm/i386-ext.h delete mode 100644 include/nlm/internal.h delete mode 100644 include/nlm/ppc-ext.h delete mode 100644 include/nlm/sparc32-ext.h delete mode 100644 include/oasys.h delete mode 100644 include/objalloc.h delete mode 100644 include/obstack.h delete mode 100644 include/opcode/ChangeLog delete mode 100644 include/opcode/ChangeLog-9103 delete mode 100644 include/opcode/aarch64.h delete mode 100644 include/opcode/alpha.h delete mode 100644 include/opcode/arc.h delete mode 100644 include/opcode/arm.h delete mode 100644 include/opcode/avr.h delete mode 100644 include/opcode/bfin.h delete mode 100644 include/opcode/cgen.h delete mode 100644 include/opcode/convex.h delete mode 100644 include/opcode/cr16.h delete mode 100644 include/opcode/cris.h delete mode 100644 include/opcode/crx.h delete mode 100644 include/opcode/d10v.h delete mode 100644 include/opcode/d30v.h delete mode 100644 include/opcode/dlx.h delete mode 100644 include/opcode/h8300.h delete mode 100644 include/opcode/hppa.h delete mode 100644 include/opcode/i370.h delete mode 100644 include/opcode/i386.h delete mode 100644 include/opcode/i860.h delete mode 100644 include/opcode/i960.h delete mode 100644 include/opcode/ia64.h delete mode 100644 include/opcode/m68hc11.h delete mode 100644 include/opcode/m68k.h delete mode 100644 include/opcode/m88k.h delete mode 100644 include/opcode/metag.h delete mode 100644 include/opcode/mips.h delete mode 100644 include/opcode/mmix.h delete mode 100644 include/opcode/mn10200.h delete mode 100644 include/opcode/mn10300.h delete mode 100644 include/opcode/moxie.h delete mode 100644 include/opcode/msp430-decode.h delete mode 100644 include/opcode/msp430.h delete mode 100644 include/opcode/nios2.h delete mode 100644 include/opcode/np1.h delete mode 100644 include/opcode/ns32k.h delete mode 100644 include/opcode/or32.h delete mode 100644 include/opcode/pdp11.h delete mode 100644 include/opcode/pj.h delete mode 100644 include/opcode/pn.h delete mode 100644 include/opcode/ppc.h delete mode 100644 include/opcode/pyr.h delete mode 100644 include/opcode/rl78.h delete mode 100644 include/opcode/rx.h delete mode 100644 include/opcode/s390.h delete mode 100644 include/opcode/score-datadep.h delete mode 100644 include/opcode/score-inst.h delete mode 100644 include/opcode/sparc.h delete mode 100644 include/opcode/spu-insns.h delete mode 100644 include/opcode/spu.h delete mode 100644 include/opcode/tahoe.h delete mode 100644 include/opcode/tic30.h delete mode 100644 include/opcode/tic4x.h delete mode 100644 include/opcode/tic54x.h delete mode 100644 include/opcode/tic6x-control-registers.h delete mode 100644 include/opcode/tic6x-insn-formats.h delete mode 100644 include/opcode/tic6x-opcode-table.h delete mode 100644 include/opcode/tic6x.h delete mode 100644 include/opcode/tic80.h delete mode 100644 include/opcode/tilegx.h delete mode 100644 include/opcode/tilepro.h delete mode 100644 include/opcode/v850.h delete mode 100644 include/opcode/vax.h delete mode 100644 include/opcode/xgate.h delete mode 100644 include/os9k.h delete mode 100644 include/partition.h delete mode 100644 include/paths.h delete mode 100644 include/plugin-api.h delete mode 100644 include/progress.h delete mode 100644 include/pthread.h delete mode 100644 include/pwd.h delete mode 100644 include/reent.h delete mode 100644 include/regdef.h delete mode 100644 include/regex.h delete mode 100644 include/rpc/types.h delete mode 100644 include/rpc/xdr.h delete mode 100644 include/safe-ctype.h delete mode 100644 include/sched.h delete mode 100644 include/search.h delete mode 100644 include/setjmp.h delete mode 100644 include/sha1.h delete mode 100644 include/signal.h delete mode 100644 include/simple-object.h delete mode 100644 include/som/ChangeLog delete mode 100644 include/som/aout.h delete mode 100644 include/som/clock.h delete mode 100644 include/som/internal.h delete mode 100644 include/som/lst.h delete mode 100644 include/som/reloc.h delete mode 100644 include/sort.h delete mode 100644 include/spawn.h delete mode 100644 include/splay-tree.h delete mode 100644 include/ssp/ssp.h delete mode 100644 include/ssp/stdio.h delete mode 100644 include/ssp/stdlib.h delete mode 100644 include/ssp/string.h delete mode 100644 include/ssp/strings.h delete mode 100644 include/ssp/unistd.h delete mode 100644 include/ssp/wchar.h delete mode 100644 include/stdatomic.h delete mode 100644 include/stdint.h delete mode 100644 include/stdio.h delete mode 100644 include/stdio_ext.h delete mode 100644 include/stdlib.h delete mode 100644 include/string.h delete mode 100644 include/strings.h delete mode 100644 include/symcat.h delete mode 100644 include/sys/_default_fcntl.h delete mode 100644 include/sys/_intsup.h delete mode 100644 include/sys/_locale.h delete mode 100644 include/sys/_pthreadtypes.h delete mode 100644 include/sys/_sigset.h delete mode 100644 include/sys/_stdint.h delete mode 100644 include/sys/_timespec.h delete mode 100644 include/sys/_timeval.h delete mode 100644 include/sys/_types.h delete mode 100644 include/sys/_tz_structs.h delete mode 100644 include/sys/cdefs.h delete mode 100644 include/sys/config.h delete mode 100644 include/sys/custom_file.h delete mode 100644 include/sys/dir.h delete mode 100644 include/sys/dirent.h delete mode 100644 include/sys/endian.h delete mode 100644 include/sys/errno.h delete mode 100644 include/sys/fcntl.h delete mode 100644 include/sys/features.h delete mode 100644 include/sys/fenv.h delete mode 100644 include/sys/file.h delete mode 100644 include/sys/iconvnls.h delete mode 100644 include/sys/lock.h delete mode 100644 include/sys/mman.h delete mode 100644 include/sys/param.h delete mode 100644 include/sys/queue.h delete mode 100644 include/sys/reent.h delete mode 100644 include/sys/resource.h delete mode 100644 include/sys/sched.h delete mode 100644 include/sys/select.h delete mode 100644 include/sys/signal.h delete mode 100644 include/sys/stat.h delete mode 100644 include/sys/stdio.h delete mode 100644 include/sys/string.h delete mode 100644 include/sys/syslimits.h delete mode 100644 include/sys/time.h delete mode 100644 include/sys/timeb.h delete mode 100644 include/sys/times.h delete mode 100644 include/sys/timespec.h delete mode 100644 include/sys/tree.h delete mode 100644 include/sys/types.h delete mode 100644 include/sys/unistd.h delete mode 100644 include/sys/utime.h delete mode 100644 include/sys/wait.h delete mode 100644 include/tar.h delete mode 100644 include/termios.h delete mode 100644 include/tgmath.h delete mode 100644 include/threads.h delete mode 100644 include/time.h delete mode 100644 include/timeval-utils.h delete mode 100644 include/unctrl.h delete mode 100644 include/unistd.h delete mode 100644 include/utime.h delete mode 100644 include/utmp.h delete mode 100644 include/vms/ChangeLog delete mode 100644 include/vms/dcx.h delete mode 100644 include/vms/dmt.h delete mode 100644 include/vms/dsc.h delete mode 100644 include/vms/dst.h delete mode 100644 include/vms/eeom.h delete mode 100644 include/vms/egps.h delete mode 100644 include/vms/egsd.h delete mode 100644 include/vms/egst.h delete mode 100644 include/vms/egsy.h delete mode 100644 include/vms/eiaf.h delete mode 100644 include/vms/eicp.h delete mode 100644 include/vms/eidc.h delete mode 100644 include/vms/eiha.h delete mode 100644 include/vms/eihd.h delete mode 100644 include/vms/eihi.h delete mode 100644 include/vms/eihs.h delete mode 100644 include/vms/eihvn.h delete mode 100644 include/vms/eisd.h delete mode 100644 include/vms/emh.h delete mode 100644 include/vms/eobjrec.h delete mode 100644 include/vms/esdf.h delete mode 100644 include/vms/esdfm.h delete mode 100644 include/vms/esdfv.h delete mode 100644 include/vms/esgps.h delete mode 100644 include/vms/esrf.h delete mode 100644 include/vms/etir.h delete mode 100644 include/vms/internal.h delete mode 100644 include/vms/lbr.h delete mode 100644 include/vms/prt.h delete mode 100644 include/vms/shl.h delete mode 100644 include/vtv-change-permission.h delete mode 100644 include/wchar.h delete mode 100644 include/wctype.h delete mode 100644 include/wordexp.h delete mode 100644 include/xregex.h delete mode 100644 include/xregex2.h delete mode 100644 include/xtensa-config.h delete mode 100644 include/xtensa-isa-internal.h delete mode 100644 include/xtensa-isa.h delete mode 100644 lib/acinclude.m4 delete mode 100644 lib/argz/Makefile.inc delete mode 100644 lib/argz/argz_add.c delete mode 100644 lib/argz/argz_add_sep.c delete mode 100644 lib/argz/argz_append.c delete mode 100644 lib/argz/argz_count.c delete mode 100644 lib/argz/argz_create.c delete mode 100644 lib/argz/argz_create_sep.c delete mode 100644 lib/argz/argz_delete.c delete mode 100644 lib/argz/argz_extract.c delete mode 100644 lib/argz/argz_insert.c delete mode 100644 lib/argz/argz_next.c delete mode 100644 lib/argz/argz_replace.c delete mode 100644 lib/argz/argz_stringify.c delete mode 100644 lib/argz/buf_findstr.c delete mode 100644 lib/argz/buf_findstr.h delete mode 100644 lib/argz/envz_add.c delete mode 100644 lib/argz/envz_entry.c delete mode 100644 lib/argz/envz_get.c delete mode 100644 lib/argz/envz_merge.c delete mode 100644 lib/argz/envz_remove.c delete mode 100644 lib/argz/envz_strip.c delete mode 100644 lib/ctype/Makefile.inc delete mode 100644 lib/ctype/caseconv.t delete mode 100644 lib/ctype/categories.c delete mode 100644 lib/ctype/categories.cat delete mode 100644 lib/ctype/categories.h delete mode 100644 lib/ctype/categories.t delete mode 100644 lib/ctype/ctype.tex delete mode 100644 lib/ctype/ctype_.c delete mode 100644 lib/ctype/ctype_.h delete mode 100644 lib/ctype/ctype_cp.h delete mode 100644 lib/ctype/ctype_iso.h delete mode 100644 lib/ctype/isalnum.c delete mode 100644 lib/ctype/isalnum_l.c delete mode 100644 lib/ctype/isalpha.c delete mode 100644 lib/ctype/isalpha_l.c delete mode 100644 lib/ctype/isascii.c delete mode 100644 lib/ctype/isascii_l.c delete mode 100644 lib/ctype/isblank.c delete mode 100644 lib/ctype/isblank_l.c delete mode 100644 lib/ctype/iscntrl.c delete mode 100644 lib/ctype/iscntrl_l.c delete mode 100644 lib/ctype/isdigit.c delete mode 100644 lib/ctype/isdigit_l.c delete mode 100644 lib/ctype/islower.c delete mode 100644 lib/ctype/islower_l.c delete mode 100644 lib/ctype/isprint.c delete mode 100644 lib/ctype/isprint_l.c delete mode 100644 lib/ctype/ispunct.c delete mode 100644 lib/ctype/ispunct_l.c delete mode 100644 lib/ctype/isspace.c delete mode 100644 lib/ctype/isspace_l.c delete mode 100644 lib/ctype/isupper.c delete mode 100644 lib/ctype/isupper_l.c delete mode 100644 lib/ctype/iswalnum.c delete mode 100644 lib/ctype/iswalnum_l.c delete mode 100644 lib/ctype/iswalpha.c delete mode 100644 lib/ctype/iswalpha_l.c delete mode 100644 lib/ctype/iswblank.c delete mode 100644 lib/ctype/iswblank_l.c delete mode 100644 lib/ctype/iswcntrl.c delete mode 100644 lib/ctype/iswcntrl_l.c delete mode 100644 lib/ctype/iswctype.c delete mode 100644 lib/ctype/iswctype_l.c delete mode 100644 lib/ctype/iswdigit.c delete mode 100644 lib/ctype/iswdigit_l.c delete mode 100644 lib/ctype/iswgraph.c delete mode 100644 lib/ctype/iswgraph_l.c delete mode 100644 lib/ctype/iswlower.c delete mode 100644 lib/ctype/iswlower_l.c delete mode 100644 lib/ctype/iswprint.c delete mode 100644 lib/ctype/iswprint_l.c delete mode 100644 lib/ctype/iswpunct.c delete mode 100644 lib/ctype/iswpunct_l.c delete mode 100644 lib/ctype/iswspace.c delete mode 100644 lib/ctype/iswspace_l.c delete mode 100644 lib/ctype/iswupper.c delete mode 100644 lib/ctype/iswupper_l.c delete mode 100644 lib/ctype/iswxdigit.c delete mode 100644 lib/ctype/iswxdigit_l.c delete mode 100644 lib/ctype/isxdigit.c delete mode 100644 lib/ctype/isxdigit_l.c delete mode 100644 lib/ctype/jp2uc.c delete mode 100644 lib/ctype/jp2uc.h delete mode 100644 lib/ctype/local.h delete mode 100644 lib/ctype/mkcaseconv delete mode 100644 lib/ctype/mkcategories delete mode 100644 lib/ctype/mkunidata delete mode 100644 lib/ctype/toascii.c delete mode 100644 lib/ctype/toascii_l.c delete mode 100644 lib/ctype/tolower.c delete mode 100644 lib/ctype/tolower_l.c delete mode 100644 lib/ctype/toupper.c delete mode 100644 lib/ctype/toupper_l.c delete mode 100644 lib/ctype/towctrans.c delete mode 100644 lib/ctype/towctrans_l.c delete mode 100644 lib/ctype/towlower.c delete mode 100644 lib/ctype/towlower_l.c delete mode 100644 lib/ctype/towupper.c delete mode 100644 lib/ctype/towupper_l.c delete mode 100644 lib/ctype/wctrans.c delete mode 100644 lib/ctype/wctrans_l.c delete mode 100644 lib/ctype/wctype.c delete mode 100644 lib/ctype/wctype_l.c delete mode 100644 lib/errno/Makefile.inc delete mode 100644 lib/errno/errno.c delete mode 100644 lib/iconv/Makefile.inc delete mode 100644 lib/iconv/ccs/Makefile.inc delete mode 100644 lib/iconv/ccs/big5.c delete mode 100644 lib/iconv/ccs/binary/Makefile.inc delete mode 100644 lib/iconv/ccs/binary/big5.cct delete mode 100644 lib/iconv/ccs/binary/cns11643_plane1.cct delete mode 100644 lib/iconv/ccs/binary/cns11643_plane14.cct delete mode 100644 lib/iconv/ccs/binary/cns11643_plane2.cct delete mode 100644 lib/iconv/ccs/binary/cp775.cct delete mode 100644 lib/iconv/ccs/binary/cp850.cct delete mode 100644 lib/iconv/ccs/binary/cp852.cct delete mode 100644 lib/iconv/ccs/binary/cp855.cct delete mode 100644 lib/iconv/ccs/binary/cp866.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_1.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_10.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_11.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_13.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_14.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_15.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_2.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_3.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_4.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_5.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_6.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_7.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_8.cct delete mode 100644 lib/iconv/ccs/binary/iso_8859_9.cct delete mode 100644 lib/iconv/ccs/binary/iso_ir_111.cct delete mode 100644 lib/iconv/ccs/binary/jis_x0201_1976.cct delete mode 100644 lib/iconv/ccs/binary/jis_x0208_1990.cct delete mode 100644 lib/iconv/ccs/binary/jis_x0212_1990.cct delete mode 100644 lib/iconv/ccs/binary/koi8_r.cct delete mode 100644 lib/iconv/ccs/binary/koi8_ru.cct delete mode 100644 lib/iconv/ccs/binary/koi8_u.cct delete mode 100644 lib/iconv/ccs/binary/koi8_uni.cct delete mode 100644 lib/iconv/ccs/binary/ksx1001.cct delete mode 100644 lib/iconv/ccs/binary/win_1250.cct delete mode 100644 lib/iconv/ccs/binary/win_1251.cct delete mode 100644 lib/iconv/ccs/binary/win_1252.cct delete mode 100644 lib/iconv/ccs/binary/win_1253.cct delete mode 100644 lib/iconv/ccs/binary/win_1254.cct delete mode 100644 lib/iconv/ccs/binary/win_1255.cct delete mode 100644 lib/iconv/ccs/binary/win_1256.cct delete mode 100644 lib/iconv/ccs/binary/win_1257.cct delete mode 100644 lib/iconv/ccs/binary/win_1258.cct delete mode 100644 lib/iconv/ccs/ccs.h delete mode 100644 lib/iconv/ccs/ccsbi.c delete mode 100644 lib/iconv/ccs/ccsbi.h delete mode 100644 lib/iconv/ccs/ccsnames.h delete mode 100644 lib/iconv/ccs/cns11643_plane1.c delete mode 100644 lib/iconv/ccs/cns11643_plane14.c delete mode 100644 lib/iconv/ccs/cns11643_plane2.c delete mode 100644 lib/iconv/ccs/cp775.c delete mode 100644 lib/iconv/ccs/cp850.c delete mode 100644 lib/iconv/ccs/cp852.c delete mode 100644 lib/iconv/ccs/cp855.c delete mode 100644 lib/iconv/ccs/cp866.c delete mode 100644 lib/iconv/ccs/iso_8859_1.c delete mode 100644 lib/iconv/ccs/iso_8859_10.c delete mode 100644 lib/iconv/ccs/iso_8859_11.c delete mode 100644 lib/iconv/ccs/iso_8859_13.c delete mode 100644 lib/iconv/ccs/iso_8859_14.c delete mode 100644 lib/iconv/ccs/iso_8859_15.c delete mode 100644 lib/iconv/ccs/iso_8859_2.c delete mode 100644 lib/iconv/ccs/iso_8859_3.c delete mode 100644 lib/iconv/ccs/iso_8859_4.c delete mode 100644 lib/iconv/ccs/iso_8859_5.c delete mode 100644 lib/iconv/ccs/iso_8859_6.c delete mode 100644 lib/iconv/ccs/iso_8859_7.c delete mode 100644 lib/iconv/ccs/iso_8859_8.c delete mode 100644 lib/iconv/ccs/iso_8859_9.c delete mode 100644 lib/iconv/ccs/iso_ir_111.c delete mode 100644 lib/iconv/ccs/jis_x0201_1976.c delete mode 100644 lib/iconv/ccs/jis_x0208_1990.c delete mode 100644 lib/iconv/ccs/jis_x0212_1990.c delete mode 100644 lib/iconv/ccs/koi8_r.c delete mode 100644 lib/iconv/ccs/koi8_ru.c delete mode 100644 lib/iconv/ccs/koi8_u.c delete mode 100644 lib/iconv/ccs/koi8_uni.c delete mode 100644 lib/iconv/ccs/ksx1001.c delete mode 100644 lib/iconv/ccs/mktbl.pl delete mode 100644 lib/iconv/ccs/win_1250.c delete mode 100644 lib/iconv/ccs/win_1251.c delete mode 100644 lib/iconv/ccs/win_1252.c delete mode 100644 lib/iconv/ccs/win_1253.c delete mode 100644 lib/iconv/ccs/win_1254.c delete mode 100644 lib/iconv/ccs/win_1255.c delete mode 100644 lib/iconv/ccs/win_1256.c delete mode 100644 lib/iconv/ccs/win_1257.c delete mode 100644 lib/iconv/ccs/win_1258.c delete mode 100644 lib/iconv/ces/Makefile.inc delete mode 100644 lib/iconv/ces/cesbi.c delete mode 100644 lib/iconv/ces/cesbi.h delete mode 100644 lib/iconv/ces/cesdeps.h delete mode 100644 lib/iconv/ces/euc.c delete mode 100644 lib/iconv/ces/mkdeps.pl delete mode 100644 lib/iconv/ces/table-pcs.c delete mode 100644 lib/iconv/ces/table.c delete mode 100644 lib/iconv/ces/ucs-2-internal.c delete mode 100644 lib/iconv/ces/ucs-2.c delete mode 100644 lib/iconv/ces/ucs-4-internal.c delete mode 100644 lib/iconv/ces/ucs-4.c delete mode 100644 lib/iconv/ces/us-ascii.c delete mode 100644 lib/iconv/ces/utf-16.c delete mode 100644 lib/iconv/ces/utf-8.c delete mode 100644 lib/iconv/encoding.aliases delete mode 100644 lib/iconv/iconv.tex delete mode 100644 lib/iconv/lib/Makefile.inc delete mode 100644 lib/iconv/lib/aliasesbi.c delete mode 100644 lib/iconv/lib/aliasesi.c delete mode 100644 lib/iconv/lib/conv.h delete mode 100644 lib/iconv/lib/encnames.h delete mode 100644 lib/iconv/lib/encoding.deps delete mode 100644 lib/iconv/lib/endian.h delete mode 100644 lib/iconv/lib/iconv.c delete mode 100644 lib/iconv/lib/iconvnls.c delete mode 100644 lib/iconv/lib/iconvnls.h delete mode 100644 lib/iconv/lib/local.h delete mode 100644 lib/iconv/lib/nullconv.c delete mode 100644 lib/iconv/lib/ucsconv.c delete mode 100644 lib/iconv/lib/ucsconv.h delete mode 100644 lib/include/_ansi.h delete mode 100644 lib/include/_newlib_version.h delete mode 100644 lib/include/_syslist.h delete mode 100644 lib/include/alloca.h delete mode 100644 lib/include/ar.h delete mode 100644 lib/include/argz.h delete mode 100644 lib/include/assert.h delete mode 100644 lib/include/complex.h delete mode 100644 lib/include/cpio.h delete mode 100644 lib/include/ctype.h delete mode 100644 lib/include/devctl.h delete mode 100644 lib/include/dirent.h delete mode 100644 lib/include/elf.h delete mode 100644 lib/include/envlock.h delete mode 100644 lib/include/envz.h delete mode 100644 lib/include/errno.h delete mode 100644 lib/include/fastmath.h delete mode 100644 lib/include/fcntl.h delete mode 100644 lib/include/fenv.h delete mode 100644 lib/include/fnmatch.h delete mode 100644 lib/include/ftw.h delete mode 100644 lib/include/getopt.h delete mode 100644 lib/include/glob.h delete mode 100644 lib/include/grp.h delete mode 100644 lib/include/iconv.h delete mode 100644 lib/include/ieeefp.h delete mode 100644 lib/include/inttypes.h delete mode 100644 lib/include/langinfo.h delete mode 100644 lib/include/libgen.h delete mode 100644 lib/include/limits.h delete mode 100644 lib/include/locale.h delete mode 100644 lib/include/machine/_arc4random.h delete mode 100644 lib/include/machine/_default_types.h delete mode 100644 lib/include/machine/_endian.h delete mode 100644 lib/include/machine/_time.h delete mode 100644 lib/include/machine/_types.h delete mode 100644 lib/include/machine/ansi.h delete mode 100644 lib/include/machine/endian.h delete mode 100644 lib/include/machine/fastmath.h delete mode 100644 lib/include/machine/ieee.h delete mode 100644 lib/include/machine/ieeefp.h delete mode 100644 lib/include/machine/malloc.h delete mode 100644 lib/include/machine/param.h delete mode 100644 lib/include/machine/setjmp-dj.h delete mode 100644 lib/include/machine/setjmp.h delete mode 100644 lib/include/machine/stdlib.h delete mode 100644 lib/include/machine/termios.h delete mode 100644 lib/include/machine/time.h delete mode 100644 lib/include/machine/types.h delete mode 100644 lib/include/malloc.h delete mode 100644 lib/include/math.h delete mode 100644 lib/include/memory.h delete mode 100644 lib/include/ndbm.h delete mode 100644 lib/include/newlib.h delete mode 100644 lib/include/paths.h delete mode 100644 lib/include/pthread.h delete mode 100644 lib/include/pwd.h delete mode 100644 lib/include/reent.h delete mode 100644 lib/include/regdef.h delete mode 100644 lib/include/regex.h delete mode 100644 lib/include/rpc/types.h delete mode 100644 lib/include/rpc/xdr.h delete mode 100644 lib/include/sched.h delete mode 100644 lib/include/search.h delete mode 100644 lib/include/setjmp.h delete mode 100644 lib/include/signal.h delete mode 100644 lib/include/spawn.h delete mode 100644 lib/include/ssp/ssp.h delete mode 100644 lib/include/ssp/stdio.h delete mode 100644 lib/include/ssp/stdlib.h delete mode 100644 lib/include/ssp/string.h delete mode 100644 lib/include/ssp/strings.h delete mode 100644 lib/include/ssp/unistd.h delete mode 100644 lib/include/ssp/wchar.h delete mode 100644 lib/include/stdatomic.h delete mode 100644 lib/include/stdint.h delete mode 100644 lib/include/stdio.h delete mode 100644 lib/include/stdio_ext.h delete mode 100644 lib/include/stdlib.h delete mode 100644 lib/include/string.h delete mode 100644 lib/include/strings.h delete mode 100644 lib/include/sys/_default_fcntl.h delete mode 100644 lib/include/sys/_intsup.h delete mode 100644 lib/include/sys/_locale.h delete mode 100644 lib/include/sys/_pthreadtypes.h delete mode 100644 lib/include/sys/_sigset.h delete mode 100644 lib/include/sys/_stdint.h delete mode 100644 lib/include/sys/_timespec.h delete mode 100644 lib/include/sys/_timeval.h delete mode 100644 lib/include/sys/_types.h delete mode 100644 lib/include/sys/_tz_structs.h delete mode 100644 lib/include/sys/cdefs.h delete mode 100644 lib/include/sys/config.h delete mode 100644 lib/include/sys/custom_file.h delete mode 100644 lib/include/sys/dir.h delete mode 100644 lib/include/sys/dirent.h delete mode 100644 lib/include/sys/endian.h delete mode 100644 lib/include/sys/errno.h delete mode 100644 lib/include/sys/fcntl.h delete mode 100644 lib/include/sys/features.h delete mode 100644 lib/include/sys/fenv.h delete mode 100644 lib/include/sys/file.h delete mode 100644 lib/include/sys/iconvnls.h delete mode 100644 lib/include/sys/lock.h delete mode 100644 lib/include/sys/param.h delete mode 100644 lib/include/sys/queue.h delete mode 100644 lib/include/sys/reent.h delete mode 100644 lib/include/sys/resource.h delete mode 100644 lib/include/sys/sched.h delete mode 100644 lib/include/sys/select.h delete mode 100644 lib/include/sys/signal.h delete mode 100644 lib/include/sys/stat.h delete mode 100644 lib/include/sys/stdio.h delete mode 100644 lib/include/sys/string.h delete mode 100644 lib/include/sys/syslimits.h delete mode 100644 lib/include/sys/time.h delete mode 100644 lib/include/sys/timeb.h delete mode 100644 lib/include/sys/times.h delete mode 100644 lib/include/sys/timespec.h delete mode 100644 lib/include/sys/tree.h delete mode 100644 lib/include/sys/types.h delete mode 100644 lib/include/sys/unistd.h delete mode 100644 lib/include/sys/utime.h delete mode 100644 lib/include/sys/wait.h delete mode 100644 lib/include/tar.h delete mode 100644 lib/include/termios.h delete mode 100644 lib/include/tgmath.h delete mode 100644 lib/include/threads.h delete mode 100644 lib/include/time.h delete mode 100644 lib/include/unctrl.h delete mode 100644 lib/include/unistd.h delete mode 100644 lib/include/utime.h delete mode 100644 lib/include/utmp.h delete mode 100644 lib/include/wchar.h delete mode 100644 lib/include/wctype.h delete mode 100644 lib/include/wordexp.h delete mode 100644 lib/libc.in.xml delete mode 100644 lib/libc.texi delete mode 100644 lib/locale/Makefile.inc delete mode 100644 lib/locale/duplocale.c delete mode 100644 lib/locale/freelocale.c delete mode 100644 lib/locale/lctype.c delete mode 100644 lib/locale/lmessages.c delete mode 100644 lib/locale/lmonetary.c delete mode 100644 lib/locale/lnumeric.c delete mode 100644 lib/locale/locale.c delete mode 100644 lib/locale/locale.tex delete mode 100644 lib/locale/localeconv.c delete mode 100644 lib/locale/newlocale.c delete mode 100644 lib/locale/nl_langinfo.3 delete mode 100644 lib/locale/nl_langinfo.c delete mode 100644 lib/locale/setlocale.h delete mode 100644 lib/locale/timelocal.c delete mode 100644 lib/locale/uselocale.c delete mode 100644 lib/machine/Makefile.inc delete mode 100644 lib/machine/aarch64/Makefile.inc delete mode 100644 lib/machine/aarch64/machine/_fpmath.h delete mode 100644 lib/machine/aarch64/machine/_types.h delete mode 100644 lib/machine/aarch64/machine/fenv-fp.h delete mode 100644 lib/machine/aarch64/memchr-stub.c delete mode 100644 lib/machine/aarch64/memchr.S delete mode 100644 lib/machine/aarch64/memcmp-stub.c delete mode 100644 lib/machine/aarch64/memcmp.S delete mode 100644 lib/machine/aarch64/memcpy-stub.c delete mode 100644 lib/machine/aarch64/memcpy.S delete mode 100644 lib/machine/aarch64/memmove-stub.c delete mode 100644 lib/machine/aarch64/memmove.S delete mode 100644 lib/machine/aarch64/memset-stub.c delete mode 100644 lib/machine/aarch64/memset.S delete mode 100644 lib/machine/aarch64/rawmemchr-stub.c delete mode 100644 lib/machine/aarch64/rawmemchr.S delete mode 100644 lib/machine/aarch64/setjmp.S delete mode 100644 lib/machine/aarch64/stpcpy-stub.c delete mode 100644 lib/machine/aarch64/stpcpy.S delete mode 100644 lib/machine/aarch64/strchr-stub.c delete mode 100644 lib/machine/aarch64/strchr.S delete mode 100644 lib/machine/aarch64/strchrnul-stub.c delete mode 100644 lib/machine/aarch64/strchrnul.S delete mode 100644 lib/machine/aarch64/strcmp-stub.c delete mode 100644 lib/machine/aarch64/strcmp.S delete mode 100644 lib/machine/aarch64/strcpy-stub.c delete mode 100644 lib/machine/aarch64/strcpy.S delete mode 100644 lib/machine/aarch64/strlen-stub.c delete mode 100644 lib/machine/aarch64/strlen.S delete mode 100644 lib/machine/aarch64/strncmp-stub.c delete mode 100644 lib/machine/aarch64/strncmp.S delete mode 100644 lib/machine/aarch64/strnlen-stub.c delete mode 100644 lib/machine/aarch64/strnlen.S delete mode 100644 lib/machine/aarch64/strrchr-stub.c delete mode 100644 lib/machine/aarch64/strrchr.S delete mode 100644 lib/machine/aarch64/sys/fcntl.h delete mode 100644 lib/machine/aarch64/sys/fenv.h delete mode 100644 lib/machine/amdgcn/Makefile.inc delete mode 100644 lib/machine/amdgcn/abort.c delete mode 100644 lib/machine/amdgcn/atexit.c delete mode 100644 lib/machine/amdgcn/exit-value.h delete mode 100644 lib/machine/amdgcn/exit.c delete mode 100644 lib/machine/amdgcn/getreent.c delete mode 100644 lib/machine/amdgcn/mlock.c delete mode 100644 lib/machine/amdgcn/signal.c delete mode 100644 lib/machine/arc/Makefile.inc delete mode 100644 lib/machine/arc/asm.h delete mode 100644 lib/machine/arc/memcmp-bs-norm.S delete mode 100644 lib/machine/arc/memcmp-stub.c delete mode 100644 lib/machine/arc/memcmp.S delete mode 100644 lib/machine/arc/memcpy-archs.S delete mode 100644 lib/machine/arc/memcpy-bs.S delete mode 100644 lib/machine/arc/memcpy-stub.c delete mode 100644 lib/machine/arc/memcpy.S delete mode 100644 lib/machine/arc/memset-archs.S delete mode 100644 lib/machine/arc/memset-bs.S delete mode 100644 lib/machine/arc/memset-stub.c delete mode 100644 lib/machine/arc/memset.S delete mode 100644 lib/machine/arc/setjmp.S delete mode 100644 lib/machine/arc/strchr-bs-norm.S delete mode 100644 lib/machine/arc/strchr-bs.S delete mode 100644 lib/machine/arc/strchr-stub.c delete mode 100644 lib/machine/arc/strchr.S delete mode 100644 lib/machine/arc/strcmp-archs.S delete mode 100644 lib/machine/arc/strcmp-stub.c delete mode 100644 lib/machine/arc/strcmp.S delete mode 100644 lib/machine/arc/strcpy-bs-arc600.S delete mode 100644 lib/machine/arc/strcpy-bs.S delete mode 100644 lib/machine/arc/strcpy-stub.c delete mode 100644 lib/machine/arc/strcpy.S delete mode 100644 lib/machine/arc/strlen-bs-norm.S delete mode 100644 lib/machine/arc/strlen-bs.S delete mode 100644 lib/machine/arc/strlen-stub.c delete mode 100644 lib/machine/arc/strlen.S delete mode 100644 lib/machine/arc/strncpy-bs.S delete mode 100644 lib/machine/arc/strncpy-stub.c delete mode 100644 lib/machine/arc/strncpy.S delete mode 100644 lib/machine/arm/Makefile.inc delete mode 100644 lib/machine/arm/aeabi_memclr.c delete mode 100644 lib/machine/arm/aeabi_memcpy-armv7a.S delete mode 100644 lib/machine/arm/aeabi_memcpy.c delete mode 100644 lib/machine/arm/aeabi_memmove-arm.S delete mode 100644 lib/machine/arm/aeabi_memmove-soft.S delete mode 100644 lib/machine/arm/aeabi_memmove-thumb.S delete mode 100644 lib/machine/arm/aeabi_memmove-thumb2.S delete mode 100644 lib/machine/arm/aeabi_memmove.c delete mode 100644 lib/machine/arm/aeabi_memset-arm.S delete mode 100644 lib/machine/arm/aeabi_memset-soft.S delete mode 100644 lib/machine/arm/aeabi_memset-thumb.S delete mode 100644 lib/machine/arm/aeabi_memset-thumb2.S delete mode 100644 lib/machine/arm/aeabi_memset.c delete mode 100644 lib/machine/arm/arm_asm.h delete mode 100644 lib/machine/arm/machine/_endian.h delete mode 100644 lib/machine/arm/machine/param.h delete mode 100644 lib/machine/arm/memchr-stub.c delete mode 100644 lib/machine/arm/memchr.S delete mode 100644 lib/machine/arm/memcpy-armv7a.S delete mode 100644 lib/machine/arm/memcpy-armv7m.S delete mode 100644 lib/machine/arm/memcpy-stub.c delete mode 100644 lib/machine/arm/memcpy.S delete mode 100644 lib/machine/arm/setjmp.S delete mode 100644 lib/machine/arm/strcmp-arm-tiny.S delete mode 100644 lib/machine/arm/strcmp-armv4.S delete mode 100644 lib/machine/arm/strcmp-armv4t.S delete mode 100644 lib/machine/arm/strcmp-armv6.S delete mode 100644 lib/machine/arm/strcmp-armv6m.S delete mode 100644 lib/machine/arm/strcmp-armv7.S delete mode 100644 lib/machine/arm/strcmp-armv7m.S delete mode 100644 lib/machine/arm/strcmp.S delete mode 100644 lib/machine/arm/strcpy.c delete mode 100644 lib/machine/arm/strlen-armv7.S delete mode 100644 lib/machine/arm/strlen-stub.c delete mode 100644 lib/machine/arm/strlen-thumb1-Os.S delete mode 100644 lib/machine/arm/strlen-thumb2-Os.S delete mode 100644 lib/machine/arm/strlen.S delete mode 100644 lib/machine/arm/sys/fenv.h delete mode 100644 lib/machine/bfin/Makefile.inc delete mode 100644 lib/machine/bfin/longjmp.S delete mode 100644 lib/machine/bfin/setjmp.S delete mode 100644 lib/machine/cr16/Makefile.inc delete mode 100644 lib/machine/cr16/getenv.c delete mode 100644 lib/machine/cr16/setjmp.S delete mode 100644 lib/machine/cr16/sys/asm.h delete mode 100644 lib/machine/cr16/sys/libh.h delete mode 100644 lib/machine/cr16/sys/syscall.h delete mode 100644 lib/machine/cris/Makefile.inc delete mode 100644 lib/machine/cris/include/pthread.h delete mode 100644 lib/machine/cris/libcdtor.c delete mode 100644 lib/machine/cris/memcpy.c delete mode 100644 lib/machine/cris/memmove.c delete mode 100644 lib/machine/cris/memset.c delete mode 100644 lib/machine/cris/setjmp.c delete mode 100644 lib/machine/cris/sys/errno.h delete mode 100644 lib/machine/cris/sys/fcntl.h delete mode 100644 lib/machine/cris/sys/signal.h delete mode 100644 lib/machine/crx/Makefile.inc delete mode 100644 lib/machine/crx/getenv.c delete mode 100644 lib/machine/crx/setjmp.S delete mode 100644 lib/machine/crx/sys/asm.h delete mode 100644 lib/machine/crx/sys/libh.h delete mode 100644 lib/machine/crx/sys/syscall.h delete mode 100644 lib/machine/csky/Makefile.inc delete mode 100644 lib/machine/csky/setjmp.S delete mode 100644 lib/machine/d10v/Makefile.inc delete mode 100644 lib/machine/d10v/setjmp.S delete mode 100644 lib/machine/d30v/Makefile.inc delete mode 100644 lib/machine/d30v/setjmp.S delete mode 100644 lib/machine/epiphany/Makefile.inc delete mode 100644 lib/machine/epiphany/setjmp.S delete mode 100644 lib/machine/fr30/Makefile.inc delete mode 100644 lib/machine/fr30/setjmp.S delete mode 100644 lib/machine/frv/Makefile.inc delete mode 100644 lib/machine/frv/setjmp.S delete mode 100644 lib/machine/ft32/Makefile.inc delete mode 100644 lib/machine/ft32/memcpy.S delete mode 100644 lib/machine/ft32/memset.S delete mode 100644 lib/machine/ft32/setjmp.S delete mode 100644 lib/machine/ft32/stpcmp.S delete mode 100644 lib/machine/ft32/strcmp.S delete mode 100644 lib/machine/ft32/strcpy.S delete mode 100644 lib/machine/ft32/strlen.S delete mode 100644 lib/machine/h8300/Makefile.inc delete mode 100644 lib/machine/h8300/defines.h delete mode 100644 lib/machine/h8300/h8sx_strcpy.S delete mode 100644 lib/machine/h8300/memcpy.S delete mode 100644 lib/machine/h8300/memset.S delete mode 100644 lib/machine/h8300/reg_memcpy.S delete mode 100644 lib/machine/h8300/reg_memset.S delete mode 100644 lib/machine/h8300/setarch.h delete mode 100644 lib/machine/h8300/setjmp.S delete mode 100644 lib/machine/h8300/strcmp.S delete mode 100644 lib/machine/h8500/Makefile.inc delete mode 100644 lib/machine/h8500/cmpsi.c delete mode 100644 lib/machine/h8500/divhi3.S delete mode 100644 lib/machine/h8500/divsi3.c delete mode 100644 lib/machine/h8500/mulhi3.c delete mode 100644 lib/machine/h8500/mulsi3.c delete mode 100644 lib/machine/h8500/negsi2.c delete mode 100644 lib/machine/h8500/psi.S delete mode 100644 lib/machine/h8500/setjmp.S delete mode 100644 lib/machine/h8500/shifts.c delete mode 100644 lib/machine/hppa/DEFS.h delete mode 100644 lib/machine/hppa/Makefile.inc delete mode 100644 lib/machine/hppa/memchr.S delete mode 100644 lib/machine/hppa/memcmp.S delete mode 100644 lib/machine/hppa/memcpy.S delete mode 100644 lib/machine/hppa/memset.S delete mode 100644 lib/machine/hppa/setjmp.S delete mode 100644 lib/machine/hppa/strcat.S delete mode 100644 lib/machine/hppa/strcmp.S delete mode 100644 lib/machine/hppa/strcpy.S delete mode 100644 lib/machine/hppa/strlen.S delete mode 100644 lib/machine/hppa/strncat.S delete mode 100644 lib/machine/hppa/strncmp.S delete mode 100644 lib/machine/hppa/strncpy.S delete mode 100644 lib/machine/i386/Makefile.inc delete mode 100644 lib/machine/i386/i386mach.h delete mode 100644 lib/machine/i386/machine/_fpmath.h delete mode 100644 lib/machine/i386/machine/fastmath.h delete mode 100644 lib/machine/i386/memchr.S delete mode 100644 lib/machine/i386/memcmp.S delete mode 100644 lib/machine/i386/memcpy.S delete mode 100644 lib/machine/i386/memmove.S delete mode 100644 lib/machine/i386/memset.S delete mode 100644 lib/machine/i386/setjmp.S delete mode 100644 lib/machine/i386/strchr.S delete mode 100644 lib/machine/i386/strlen.S delete mode 100644 lib/machine/i960/Makefile.inc delete mode 100644 lib/machine/i960/memccpy.S delete mode 100644 lib/machine/i960/memccpy_ca.S delete mode 100644 lib/machine/i960/memchr.S delete mode 100644 lib/machine/i960/memchr_ca.S delete mode 100644 lib/machine/i960/memcmp.S delete mode 100644 lib/machine/i960/memcmp_ca.S delete mode 100644 lib/machine/i960/memcpy.S delete mode 100644 lib/machine/i960/memcpy_ca.S delete mode 100644 lib/machine/i960/memset.S delete mode 100644 lib/machine/i960/setjmp.S delete mode 100644 lib/machine/i960/strchr.S delete mode 100644 lib/machine/i960/strchr_ca.S delete mode 100644 lib/machine/i960/strcmp.S delete mode 100644 lib/machine/i960/strcmp_ca.S delete mode 100644 lib/machine/i960/strcpy.S delete mode 100644 lib/machine/i960/strcpy_ca.S delete mode 100644 lib/machine/i960/strcspn.S delete mode 100644 lib/machine/i960/strdup.S delete mode 100644 lib/machine/i960/strlen.S delete mode 100644 lib/machine/i960/strlen_ca.S delete mode 100644 lib/machine/i960/strncat.S delete mode 100644 lib/machine/i960/strncat_ca.S delete mode 100644 lib/machine/i960/strncmp.S delete mode 100644 lib/machine/i960/strncmp_ca.S delete mode 100644 lib/machine/i960/strncpy.S delete mode 100644 lib/machine/i960/strncpy_ca.S delete mode 100644 lib/machine/i960/strpbrk.S delete mode 100644 lib/machine/i960/strrchr.S delete mode 100644 lib/machine/iq2000/Makefile.inc delete mode 100644 lib/machine/iq2000/setjmp.S delete mode 100644 lib/machine/lm32/Makefile.inc delete mode 100644 lib/machine/lm32/setjmp.S delete mode 100644 lib/machine/m32c/Makefile.inc delete mode 100644 lib/machine/m32c/setjmp.S delete mode 100644 lib/machine/m32r/Makefile.inc delete mode 100644 lib/machine/m32r/setjmp.S delete mode 100644 lib/machine/m68hc11/Makefile.inc delete mode 100644 lib/machine/m68hc11/setjmp.S delete mode 100644 lib/machine/m68k/Makefile.inc delete mode 100644 lib/machine/m68k/m68kasm.h delete mode 100644 lib/machine/m68k/memcpy.S delete mode 100644 lib/machine/m68k/memset.S delete mode 100644 lib/machine/m68k/setjmp.S delete mode 100644 lib/machine/m68k/strcpy.c delete mode 100644 lib/machine/m68k/strlen.c delete mode 100644 lib/machine/m88k/Makefile.inc delete mode 100644 lib/machine/m88k/setjmp.S delete mode 100644 lib/machine/mep/Makefile.inc delete mode 100644 lib/machine/mep/setjmp.S delete mode 100644 lib/machine/microblaze/Makefile.inc delete mode 100644 lib/machine/microblaze/abort.c delete mode 100644 lib/machine/microblaze/longjmp.S delete mode 100644 lib/machine/microblaze/mb_endian.h delete mode 100644 lib/machine/microblaze/setjmp.S delete mode 100644 lib/machine/microblaze/strcmp.c delete mode 100644 lib/machine/microblaze/strcpy.c delete mode 100644 lib/machine/microblaze/strlen.c delete mode 100644 lib/machine/mips/Makefile.inc delete mode 100644 lib/machine/mips/machine/asm.h delete mode 100644 lib/machine/mips/machine/fenv-fp.h delete mode 100644 lib/machine/mips/machine/fenv-softfloat.h delete mode 100644 lib/machine/mips/machine/regdef.h delete mode 100644 lib/machine/mips/memcpy.S delete mode 100644 lib/machine/mips/memset.S delete mode 100644 lib/machine/mips/setjmp.S delete mode 100644 lib/machine/mips/strcmp.S delete mode 100644 lib/machine/mips/strlen.c delete mode 100644 lib/machine/mips/strncpy.c delete mode 100644 lib/machine/mips/sys/fenv.h delete mode 100644 lib/machine/mn10200/Makefile.inc delete mode 100644 lib/machine/mn10200/setjmp.S delete mode 100644 lib/machine/mn10300/Makefile.inc delete mode 100644 lib/machine/mn10300/memchr.S delete mode 100644 lib/machine/mn10300/memcmp.S delete mode 100644 lib/machine/mn10300/memcpy.S delete mode 100644 lib/machine/mn10300/memset.S delete mode 100644 lib/machine/mn10300/setjmp.S delete mode 100644 lib/machine/mn10300/strchr.S delete mode 100644 lib/machine/mn10300/strcmp.S delete mode 100644 lib/machine/mn10300/strcpy.S delete mode 100644 lib/machine/mn10300/strlen.S delete mode 100644 lib/machine/moxie/Makefile.inc delete mode 100644 lib/machine/moxie/setjmp.S delete mode 100644 lib/machine/msp430/Makefile.inc delete mode 100644 lib/machine/msp430/setjmp.S delete mode 100644 lib/machine/msp430/tiny-printf.c delete mode 100644 lib/machine/msp430/tiny-puts.c delete mode 100644 lib/machine/mt/Makefile.inc delete mode 100644 lib/machine/mt/setjmp.S delete mode 100644 lib/machine/nds32/Makefile.inc delete mode 100644 lib/machine/nds32/abort.c delete mode 100644 lib/machine/nds32/acinclude.m4 delete mode 100644 lib/machine/nds32/memcpy.S delete mode 100644 lib/machine/nds32/memset.S delete mode 100644 lib/machine/nds32/setjmp.S delete mode 100644 lib/machine/nds32/strcmp.S delete mode 100644 lib/machine/nds32/strcpy.S delete mode 100644 lib/machine/necv70/Makefile.inc delete mode 100644 lib/machine/necv70/fastmath.S delete mode 100644 lib/machine/necv70/machine/registers.h delete mode 100644 lib/machine/necv70/necv70.tex delete mode 100644 lib/machine/necv70/setjmp.S delete mode 100644 lib/machine/nios2/Makefile.inc delete mode 100644 lib/machine/nvptx/Makefile.inc delete mode 100644 lib/machine/nvptx/_exit.c delete mode 100644 lib/machine/nvptx/abort.c delete mode 100644 lib/machine/nvptx/assert.c delete mode 100644 lib/machine/nvptx/calloc.c delete mode 100644 lib/machine/nvptx/callocr.c delete mode 100644 lib/machine/nvptx/clock.c delete mode 100644 lib/machine/nvptx/free.c delete mode 100644 lib/machine/nvptx/malloc.c delete mode 100644 lib/machine/nvptx/mallocr.c delete mode 100644 lib/machine/nvptx/misc.c delete mode 100644 lib/machine/nvptx/printf.c delete mode 100644 lib/machine/nvptx/putchar.c delete mode 100644 lib/machine/nvptx/puts.c delete mode 100644 lib/machine/nvptx/realloc.c delete mode 100644 lib/machine/nvptx/reallocr.c delete mode 100644 lib/machine/nvptx/write.c delete mode 100644 lib/machine/or1k/Makefile.inc delete mode 100644 lib/machine/or1k/setjmp.S delete mode 100644 lib/machine/powerpc/Makefile.inc delete mode 100644 lib/machine/powerpc/acinclude.m4 delete mode 100644 lib/machine/powerpc/atosfix16.c delete mode 100644 lib/machine/powerpc/atosfix32.c delete mode 100644 lib/machine/powerpc/atosfix64.c delete mode 100644 lib/machine/powerpc/atoufix16.c delete mode 100644 lib/machine/powerpc/atoufix32.c delete mode 100644 lib/machine/powerpc/atoufix64.c delete mode 100644 lib/machine/powerpc/fix64.h delete mode 100644 lib/machine/powerpc/machine/fenv-fp.h delete mode 100644 lib/machine/powerpc/machine/malloc.h delete mode 100644 lib/machine/powerpc/machine/stdlib.h delete mode 100644 lib/machine/powerpc/setjmp.S delete mode 100644 lib/machine/powerpc/simdldtoa.c delete mode 100644 lib/machine/powerpc/strtosfix16.c delete mode 100644 lib/machine/powerpc/strtosfix32.c delete mode 100644 lib/machine/powerpc/strtosfix64.c delete mode 100644 lib/machine/powerpc/strtoufix16.c delete mode 100644 lib/machine/powerpc/strtoufix32.c delete mode 100644 lib/machine/powerpc/strtoufix64.c delete mode 100644 lib/machine/powerpc/sys/fenv.h delete mode 100644 lib/machine/powerpc/ufix64toa.c delete mode 100644 lib/machine/powerpc/vec_calloc.c delete mode 100644 lib/machine/powerpc/vec_callocr.c delete mode 100644 lib/machine/powerpc/vec_free.c delete mode 100644 lib/machine/powerpc/vec_malloc.c delete mode 100644 lib/machine/powerpc/vec_mallocr.c delete mode 100644 lib/machine/powerpc/vec_realloc.c delete mode 100644 lib/machine/powerpc/vec_reallocr.c delete mode 100644 lib/machine/powerpc/vfprintf.c delete mode 100644 lib/machine/powerpc/vfscanf.c delete mode 100644 lib/machine/pru/Makefile.inc delete mode 100644 lib/machine/riscv/Makefile.inc delete mode 100644 lib/machine/riscv/ffs.c delete mode 100644 lib/machine/riscv/ieeefp.c delete mode 100644 lib/machine/riscv/memcpy-asm.S delete mode 100644 lib/machine/riscv/memcpy.c delete mode 100644 lib/machine/riscv/memmove-stub.c delete mode 100644 lib/machine/riscv/memmove.S delete mode 100644 lib/machine/riscv/memset.S delete mode 100644 lib/machine/riscv/setjmp.S delete mode 100644 lib/machine/riscv/strcmp.S delete mode 100644 lib/machine/riscv/strcpy.c delete mode 100644 lib/machine/riscv/strlen.c delete mode 100644 lib/machine/riscv/sys/asm.h delete mode 100644 lib/machine/riscv/sys/fenv.h delete mode 100644 lib/machine/riscv/sys/string.h delete mode 100644 lib/machine/rl78/Makefile.inc delete mode 100644 lib/machine/rl78/setjmp.S delete mode 100644 lib/machine/rx/Makefile.inc delete mode 100644 lib/machine/rx/memchr.S delete mode 100644 lib/machine/rx/memcpy.S delete mode 100644 lib/machine/rx/memmove.S delete mode 100644 lib/machine/rx/mempcpy.S delete mode 100644 lib/machine/rx/memset.S delete mode 100644 lib/machine/rx/setjmp.S delete mode 100644 lib/machine/rx/strcat.S delete mode 100644 lib/machine/rx/strcmp.S delete mode 100644 lib/machine/rx/strcpy.S delete mode 100644 lib/machine/rx/strlen.S delete mode 100644 lib/machine/rx/strncat.S delete mode 100644 lib/machine/rx/strncmp.S delete mode 100644 lib/machine/rx/strncpy.S delete mode 100644 lib/machine/sh/Makefile.inc delete mode 100644 lib/machine/sh/acinclude.m4 delete mode 100644 lib/machine/sh/asm.h delete mode 100644 lib/machine/sh/memcpy.S delete mode 100644 lib/machine/sh/memset.S delete mode 100644 lib/machine/sh/setjmp.S delete mode 100644 lib/machine/sh/strcmp.S delete mode 100644 lib/machine/sh/strcpy.S delete mode 100644 lib/machine/sh/strlen.S delete mode 100644 lib/machine/sh/strncpy.S delete mode 100644 lib/machine/shared_x86/sys/fenv.h delete mode 100644 lib/machine/sparc/Makefile.inc delete mode 100644 lib/machine/sparc/machine/sparclet.h delete mode 100644 lib/machine/sparc/scan.c delete mode 100644 lib/machine/sparc/setjmp.S delete mode 100644 lib/machine/sparc/shuffle.c delete mode 100644 lib/machine/sparc/sys/fenv.h delete mode 100644 lib/machine/spu/Makefile.inc delete mode 100644 lib/machine/spu/acinclude.m4 delete mode 100644 lib/machine/spu/assert.c delete mode 100644 lib/machine/spu/c99ppe.h delete mode 100644 lib/machine/spu/calloc_ea.c delete mode 100644 lib/machine/spu/clearerr.c delete mode 100644 lib/machine/spu/creat.c delete mode 100644 lib/machine/spu/ea_internal.h delete mode 100644 lib/machine/spu/fclose.c delete mode 100644 lib/machine/spu/fdopen.c delete mode 100644 lib/machine/spu/feof.c delete mode 100644 lib/machine/spu/ferror.c delete mode 100644 lib/machine/spu/fflush.c delete mode 100644 lib/machine/spu/fgetc.c delete mode 100644 lib/machine/spu/fgetpos.c delete mode 100644 lib/machine/spu/fgets.c delete mode 100644 lib/machine/spu/fileno.c delete mode 100644 lib/machine/spu/fiprintf.S delete mode 100644 lib/machine/spu/fiscanf.S delete mode 100644 lib/machine/spu/fopen.c delete mode 100644 lib/machine/spu/fprintf.S delete mode 100644 lib/machine/spu/fputc.c delete mode 100644 lib/machine/spu/fputs.c delete mode 100644 lib/machine/spu/fread.c delete mode 100644 lib/machine/spu/free_ea.c delete mode 100644 lib/machine/spu/freopen.c delete mode 100644 lib/machine/spu/fscanf.S delete mode 100644 lib/machine/spu/fseek.c delete mode 100644 lib/machine/spu/fsetpos.c delete mode 100644 lib/machine/spu/ftell.c delete mode 100644 lib/machine/spu/fwrite.c delete mode 100644 lib/machine/spu/getc.c delete mode 100644 lib/machine/spu/getchar.c delete mode 100644 lib/machine/spu/gets.c delete mode 100644 lib/machine/spu/include/ea.h delete mode 100644 lib/machine/spu/include/fenv.h delete mode 100644 lib/machine/spu/include/spu_timer.h delete mode 100644 lib/machine/spu/iprintf.S delete mode 100644 lib/machine/spu/iscanf.S delete mode 100644 lib/machine/spu/machine/_types.h delete mode 100644 lib/machine/spu/malloc_ea.c delete mode 100644 lib/machine/spu/memchr_ea.c delete mode 100644 lib/machine/spu/memcmp.c delete mode 100644 lib/machine/spu/memcmp_ea.c delete mode 100644 lib/machine/spu/memcpy.c delete mode 100644 lib/machine/spu/memcpy_ea.c delete mode 100644 lib/machine/spu/memmove.c delete mode 100644 lib/machine/spu/memmove_ea.c delete mode 100644 lib/machine/spu/memset.c delete mode 100644 lib/machine/spu/memset_ea.c delete mode 100644 lib/machine/spu/mk_syscalls delete mode 100644 lib/machine/spu/mmap_ea.c delete mode 100644 lib/machine/spu/mremap_ea.c delete mode 100644 lib/machine/spu/msync_ea.c delete mode 100644 lib/machine/spu/munmap_ea.c delete mode 100644 lib/machine/spu/perror.c delete mode 100644 lib/machine/spu/posix_memalign_ea.c delete mode 100644 lib/machine/spu/pread_ea.c delete mode 100644 lib/machine/spu/printf.S delete mode 100644 lib/machine/spu/putc.c delete mode 100644 lib/machine/spu/putchar.c delete mode 100644 lib/machine/spu/puts.c delete mode 100644 lib/machine/spu/pwrite_ea.c delete mode 100644 lib/machine/spu/read_ea.c delete mode 100644 lib/machine/spu/readv_ea.c delete mode 100644 lib/machine/spu/realloc_ea.c delete mode 100644 lib/machine/spu/remove.c delete mode 100644 lib/machine/spu/rename.c delete mode 100644 lib/machine/spu/rewind.c delete mode 100644 lib/machine/spu/scanf.S delete mode 100644 lib/machine/spu/setbuf.c delete mode 100644 lib/machine/spu/setjmp.S delete mode 100644 lib/machine/spu/setvbuf.c delete mode 100644 lib/machine/spu/siprintf.S delete mode 100644 lib/machine/spu/siscanf.S delete mode 100644 lib/machine/spu/sleep.c delete mode 100644 lib/machine/spu/sniprintf.S delete mode 100644 lib/machine/spu/snprintf.S delete mode 100644 lib/machine/spu/sprintf.S delete mode 100644 lib/machine/spu/spu-gmon.c delete mode 100644 lib/machine/spu/spu-mcount.S delete mode 100644 lib/machine/spu/spu_clock_stop.c delete mode 100644 lib/machine/spu/spu_clock_svcs.c delete mode 100644 lib/machine/spu/spu_timebase.c delete mode 100644 lib/machine/spu/spu_timer_flih.S delete mode 100644 lib/machine/spu/spu_timer_free.c delete mode 100644 lib/machine/spu/spu_timer_internal.h delete mode 100644 lib/machine/spu/spu_timer_slih.c delete mode 100644 lib/machine/spu/spu_timer_slih_reg.c delete mode 100644 lib/machine/spu/spu_timer_stop.c delete mode 100644 lib/machine/spu/spu_timer_svcs.c delete mode 100644 lib/machine/spu/sscanf.S delete mode 100644 lib/machine/spu/stack_reg_va.S delete mode 100644 lib/machine/spu/stdio.c delete mode 100644 lib/machine/spu/straddr.h delete mode 100644 lib/machine/spu/strcat.c delete mode 100644 lib/machine/spu/strcat_ea.c delete mode 100644 lib/machine/spu/strchr.c delete mode 100644 lib/machine/spu/strchr_ea.c delete mode 100644 lib/machine/spu/strcmp.c delete mode 100644 lib/machine/spu/strcmp_ea.c delete mode 100644 lib/machine/spu/strcpy.c delete mode 100644 lib/machine/spu/strcpy.h delete mode 100644 lib/machine/spu/strcpy_ea.c delete mode 100644 lib/machine/spu/strcspn.c delete mode 100644 lib/machine/spu/strcspn_ea.c delete mode 100644 lib/machine/spu/strlen.c delete mode 100644 lib/machine/spu/strlen_ea.c delete mode 100644 lib/machine/spu/strncat.c delete mode 100644 lib/machine/spu/strncat_ea.c delete mode 100644 lib/machine/spu/strncmp.c delete mode 100644 lib/machine/spu/strncmp.h delete mode 100644 lib/machine/spu/strncmp_ea.c delete mode 100644 lib/machine/spu/strncpy.c delete mode 100644 lib/machine/spu/strncpy_ea.c delete mode 100644 lib/machine/spu/strpbrk.c delete mode 100644 lib/machine/spu/strpbrk_ea.c delete mode 100644 lib/machine/spu/strrchr.c delete mode 100644 lib/machine/spu/strrchr_ea.c delete mode 100644 lib/machine/spu/strspn.c delete mode 100644 lib/machine/spu/strspn_ea.c delete mode 100644 lib/machine/spu/strstr_ea.c delete mode 100644 lib/machine/spu/strxfrm.c delete mode 100644 lib/machine/spu/sys/custom_file.h delete mode 100644 lib/machine/spu/sys/dirent.h delete mode 100644 lib/machine/spu/sys/errno.h delete mode 100644 lib/machine/spu/sys/fenv.h delete mode 100644 lib/machine/spu/sys/linux_syscalls.h delete mode 100644 lib/machine/spu/sys/mman.h delete mode 100644 lib/machine/spu/sys/sched.h delete mode 100644 lib/machine/spu/sys/syscall.h delete mode 100644 lib/machine/spu/sys/uio.h delete mode 100644 lib/machine/spu/sys/utime.h delete mode 100644 lib/machine/spu/syscall.def delete mode 100644 lib/machine/spu/tmpfile.c delete mode 100644 lib/machine/spu/tmpnam.c delete mode 100644 lib/machine/spu/ungetc.c delete mode 100644 lib/machine/spu/usleep.c delete mode 100644 lib/machine/spu/vec_literal.h delete mode 100644 lib/machine/spu/vfiprintf.c delete mode 100644 lib/machine/spu/vfiscanf.c delete mode 100644 lib/machine/spu/vfprintf.c delete mode 100644 lib/machine/spu/vfscanf.c delete mode 100644 lib/machine/spu/viprintf.c delete mode 100644 lib/machine/spu/viscanf.c delete mode 100644 lib/machine/spu/vprintf.c delete mode 100644 lib/machine/spu/vscanf.c delete mode 100644 lib/machine/spu/vsiprintf.c delete mode 100644 lib/machine/spu/vsiscanf.c delete mode 100644 lib/machine/spu/vsniprintf.c delete mode 100644 lib/machine/spu/vsnprintf.c delete mode 100644 lib/machine/spu/vsprintf.c delete mode 100644 lib/machine/spu/vsscanf.c delete mode 100644 lib/machine/spu/write_ea.c delete mode 100644 lib/machine/spu/writev_ea.c delete mode 100644 lib/machine/tic4x/Makefile.inc delete mode 100644 lib/machine/tic4x/setjmp.S delete mode 100644 lib/machine/tic6x/Makefile.inc delete mode 100644 lib/machine/tic6x/setjmp.S delete mode 100644 lib/machine/tic80/Makefile.inc delete mode 100644 lib/machine/tic80/setjmp.S delete mode 100644 lib/machine/v850/Makefile.inc delete mode 100644 lib/machine/v850/setjmp.S delete mode 100644 lib/machine/visium/Makefile.inc delete mode 100644 lib/machine/visium/memcpy.c delete mode 100644 lib/machine/visium/memcpy.h delete mode 100644 lib/machine/visium/memmove.c delete mode 100644 lib/machine/visium/memset.c delete mode 100644 lib/machine/visium/memset.h delete mode 100644 lib/machine/visium/setjmp.S delete mode 100644 lib/machine/w65/Makefile.inc delete mode 100644 lib/machine/w65/cmpsi.c delete mode 100644 lib/machine/w65/divsi3.c delete mode 100644 lib/machine/w65/lshrhi.S delete mode 100644 lib/machine/w65/mulsi3.c delete mode 100644 lib/machine/w65/sdivhi3.S delete mode 100644 lib/machine/w65/smulhi3.S delete mode 100644 lib/machine/w65/udivhi3.S delete mode 100644 lib/machine/w65/umodhi3.S delete mode 100644 lib/machine/x86_64/Makefile.inc delete mode 100644 lib/machine/x86_64/machine/_fpmath.h delete mode 100644 lib/machine/x86_64/memcpy.S delete mode 100644 lib/machine/x86_64/memset.S delete mode 100644 lib/machine/x86_64/setjmp.S delete mode 100644 lib/machine/x86_64/x86_64mach.h delete mode 100644 lib/machine/xc16x/Makefile.inc delete mode 100644 lib/machine/xc16x/putchar.c delete mode 100644 lib/machine/xc16x/puts.c delete mode 100644 lib/machine/xc16x/setjmp.S delete mode 100644 lib/machine/xstormy16/Makefile.inc delete mode 100644 lib/machine/xstormy16/calloc.c delete mode 100644 lib/machine/xstormy16/callocr.c delete mode 100644 lib/machine/xstormy16/cfree.c delete mode 100644 lib/machine/xstormy16/freer.c delete mode 100644 lib/machine/xstormy16/malign.c delete mode 100644 lib/machine/xstormy16/malloc.c delete mode 100644 lib/machine/xstormy16/mallocr.c delete mode 100644 lib/machine/xstormy16/msize.c delete mode 100644 lib/machine/xstormy16/mstats.c delete mode 100644 lib/machine/xstormy16/realloc.c delete mode 100644 lib/machine/xstormy16/reallocr.c delete mode 100644 lib/machine/xstormy16/setjmp.S delete mode 100644 lib/machine/xstormy16/tiny-malloc.c delete mode 100644 lib/machine/xstormy16/valloc.c delete mode 100644 lib/machine/z8k/Makefile.inc delete mode 100644 lib/machine/z8k/args.h delete mode 100644 lib/machine/z8k/memcmp.S delete mode 100644 lib/machine/z8k/memcpy.S delete mode 100644 lib/machine/z8k/memmove.S delete mode 100644 lib/machine/z8k/memset.S delete mode 100644 lib/machine/z8k/setjmp.S delete mode 100644 lib/misc/Makefile.inc delete mode 100644 lib/misc/__dprintf.c delete mode 100644 lib/misc/ffs.c delete mode 100644 lib/misc/fini.c delete mode 100644 lib/misc/init.c delete mode 100644 lib/misc/lock.c delete mode 100644 lib/misc/misc.tex delete mode 100644 lib/misc/unctrl.c create mode 160000 lib/neatlibc create mode 100644 lib/neatlibcaarch64/aarch64/bits.S create mode 100644 lib/neatlibcaarch64/aarch64/lmem.S create mode 100644 lib/neatlibcaarch64/aarch64/string.S create mode 100644 lib/neatlibcaarch64/aarch64/syscall.S create mode 100644 lib/neatlibcarm/arm/bits.S create mode 100644 lib/neatlibcarm/arm/lmem.S create mode 100644 lib/neatlibcarm/arm/string.S create mode 100644 lib/neatlibcarm/arm/syscall.S delete mode 100644 lib/posix/COPYRIGHT delete mode 100644 lib/posix/Makefile.inc delete mode 100644 lib/posix/_isatty.c delete mode 100644 lib/posix/cclass.h delete mode 100644 lib/posix/closedir.c delete mode 100644 lib/posix/cname.h delete mode 100644 lib/posix/collate.c delete mode 100644 lib/posix/collate.h delete mode 100644 lib/posix/collcmp.c delete mode 100644 lib/posix/creat.c delete mode 100644 lib/posix/dirfd.c delete mode 100644 lib/posix/engine.c delete mode 100644 lib/posix/execl.c delete mode 100644 lib/posix/execle.c delete mode 100644 lib/posix/execlp.c delete mode 100644 lib/posix/execv.c delete mode 100644 lib/posix/execve.c delete mode 100644 lib/posix/execvp.c delete mode 100644 lib/posix/fnmatch.3 delete mode 100644 lib/posix/fnmatch.c delete mode 100644 lib/posix/ftw.c delete mode 100644 lib/posix/glob.3 delete mode 100644 lib/posix/glob.c delete mode 100644 lib/posix/isatty.c delete mode 100644 lib/posix/namespace.h delete mode 100644 lib/posix/nftw.c delete mode 100644 lib/posix/opendir.c delete mode 100644 lib/posix/popen.c delete mode 100644 lib/posix/posix.tex delete mode 100644 lib/posix/posix_spawn.c delete mode 100644 lib/posix/readdir.c delete mode 100644 lib/posix/readdir_r.c delete mode 100644 lib/posix/regcomp.c delete mode 100644 lib/posix/regerror.c delete mode 100644 lib/posix/regex.3 delete mode 100644 lib/posix/regex2.h delete mode 100644 lib/posix/regexec.c delete mode 100644 lib/posix/regfree.c delete mode 100644 lib/posix/rewinddir.c delete mode 100644 lib/posix/rune.h delete mode 100644 lib/posix/runetype.h delete mode 100644 lib/posix/scandir.c delete mode 100644 lib/posix/seekdir.c delete mode 100644 lib/posix/sleep.c delete mode 100644 lib/posix/sysexits.h delete mode 100644 lib/posix/telldir.c delete mode 100644 lib/posix/un-namespace.h delete mode 100644 lib/posix/usleep.c delete mode 100644 lib/posix/utils.h delete mode 100644 lib/posix/wordexp.c delete mode 100644 lib/posix/wordexp2.h delete mode 100644 lib/posix/wordfree.c delete mode 100644 lib/reent/Makefile.inc delete mode 100644 lib/reent/closer.c delete mode 100644 lib/reent/execr.c delete mode 100644 lib/reent/fcntlr.c delete mode 100644 lib/reent/fstat64r.c delete mode 100644 lib/reent/fstatr.c delete mode 100644 lib/reent/getreent.c delete mode 100644 lib/reent/gettimeofdayr.c delete mode 100644 lib/reent/impure.c delete mode 100644 lib/reent/isattyr.c delete mode 100644 lib/reent/linkr.c delete mode 100644 lib/reent/lseek64r.c delete mode 100644 lib/reent/lseekr.c delete mode 100644 lib/reent/mkdirr.c delete mode 100644 lib/reent/open64r.c delete mode 100644 lib/reent/openr.c delete mode 100644 lib/reent/readr.c delete mode 100644 lib/reent/reent.c delete mode 100644 lib/reent/reent.tex delete mode 100644 lib/reent/renamer.c delete mode 100644 lib/reent/sbrkr.c delete mode 100644 lib/reent/signalr.c delete mode 100644 lib/reent/stat64r.c delete mode 100644 lib/reent/statr.c delete mode 100644 lib/reent/timesr.c delete mode 100644 lib/reent/unlinkr.c delete mode 100644 lib/reent/writer.c delete mode 100644 lib/search/Makefile.inc delete mode 100644 lib/search/bsd_qsort_r.c delete mode 100644 lib/search/bsearch.c delete mode 100644 lib/search/db_local.h delete mode 100644 lib/search/extern.h delete mode 100644 lib/search/hash.c delete mode 100644 lib/search/hash.h delete mode 100644 lib/search/hash_bigkey.c delete mode 100644 lib/search/hash_buf.c delete mode 100644 lib/search/hash_func.c delete mode 100644 lib/search/hash_log2.c delete mode 100644 lib/search/hash_page.c delete mode 100644 lib/search/hcreate.3 delete mode 100644 lib/search/hcreate.c delete mode 100644 lib/search/hcreate_r.c delete mode 100644 lib/search/ndbm.c delete mode 100644 lib/search/page.h delete mode 100644 lib/search/qsort.c delete mode 100644 lib/search/qsort_r.c delete mode 100644 lib/search/tdelete.c delete mode 100644 lib/search/tdestroy.c delete mode 100644 lib/search/tfind.c delete mode 100644 lib/search/tsearch.3 delete mode 100644 lib/search/tsearch.c delete mode 100644 lib/search/twalk.c delete mode 100644 lib/signal/Makefile.inc delete mode 100644 lib/signal/psignal.c delete mode 100644 lib/signal/raise.c delete mode 100644 lib/signal/sig2str.c delete mode 100644 lib/signal/signal.c delete mode 100644 lib/signal/signal.tex delete mode 100644 lib/ssp/Makefile.inc delete mode 100644 lib/ssp/chk_fail.c delete mode 100644 lib/ssp/gets_chk.c delete mode 100644 lib/ssp/memcpy_chk.c delete mode 100644 lib/ssp/memmove_chk.c delete mode 100644 lib/ssp/mempcpy_chk.c delete mode 100644 lib/ssp/memset_chk.c delete mode 100644 lib/ssp/snprintf_chk.c delete mode 100644 lib/ssp/sprintf_chk.c delete mode 100644 lib/ssp/ssp.tex delete mode 100644 lib/ssp/stack_protector.c delete mode 100644 lib/ssp/stpcpy_chk.c delete mode 100644 lib/ssp/stpncpy_chk.c delete mode 100644 lib/ssp/strcat_chk.c delete mode 100644 lib/ssp/strcpy_chk.c delete mode 100644 lib/ssp/strncat_chk.c delete mode 100644 lib/ssp/strncpy_chk.c delete mode 100644 lib/ssp/vsnprintf_chk.c delete mode 100644 lib/ssp/vsprintf_chk.c delete mode 100644 lib/stdio/Makefile.inc delete mode 100644 lib/stdio/asiprintf.c delete mode 100644 lib/stdio/asniprintf.c delete mode 100644 lib/stdio/asnprintf.c delete mode 100644 lib/stdio/asprintf.c delete mode 100644 lib/stdio/clearerr.c delete mode 100644 lib/stdio/clearerr_u.c delete mode 100644 lib/stdio/diprintf.c delete mode 100644 lib/stdio/dprintf.c delete mode 100644 lib/stdio/fclose.c delete mode 100644 lib/stdio/fcloseall.c delete mode 100644 lib/stdio/fdopen.c delete mode 100644 lib/stdio/feof.c delete mode 100644 lib/stdio/feof_u.c delete mode 100644 lib/stdio/ferror.c delete mode 100644 lib/stdio/ferror_u.c delete mode 100644 lib/stdio/fflush.c delete mode 100644 lib/stdio/fflush_u.c delete mode 100644 lib/stdio/fgetc.c delete mode 100644 lib/stdio/fgetc_u.c delete mode 100644 lib/stdio/fgetpos.c delete mode 100644 lib/stdio/fgets.c delete mode 100644 lib/stdio/fgets_u.c delete mode 100644 lib/stdio/fgetwc.c delete mode 100644 lib/stdio/fgetwc_u.c delete mode 100644 lib/stdio/fgetws.c delete mode 100644 lib/stdio/fgetws_u.c delete mode 100644 lib/stdio/fileno.c delete mode 100644 lib/stdio/fileno_u.c delete mode 100644 lib/stdio/findfp.c delete mode 100644 lib/stdio/fiprintf.c delete mode 100644 lib/stdio/fiscanf.c delete mode 100644 lib/stdio/flags.c delete mode 100644 lib/stdio/floatio.h delete mode 100644 lib/stdio/fmemopen.c delete mode 100644 lib/stdio/fopen.c delete mode 100644 lib/stdio/fopencookie.c delete mode 100644 lib/stdio/fprintf.c delete mode 100644 lib/stdio/fpurge.c delete mode 100644 lib/stdio/fputc.c delete mode 100644 lib/stdio/fputc_u.c delete mode 100644 lib/stdio/fputs.c delete mode 100644 lib/stdio/fputs_u.c delete mode 100644 lib/stdio/fputwc.c delete mode 100644 lib/stdio/fputwc_u.c delete mode 100644 lib/stdio/fputws.c delete mode 100644 lib/stdio/fputws_u.c delete mode 100644 lib/stdio/fread.c delete mode 100644 lib/stdio/fread_u.c delete mode 100644 lib/stdio/freopen.c delete mode 100644 lib/stdio/fscanf.c delete mode 100644 lib/stdio/fseek.c delete mode 100644 lib/stdio/fseeko.c delete mode 100644 lib/stdio/fsetlocking.c delete mode 100644 lib/stdio/fsetpos.c delete mode 100644 lib/stdio/ftell.c delete mode 100644 lib/stdio/ftello.c delete mode 100644 lib/stdio/funopen.c delete mode 100644 lib/stdio/fvwrite.c delete mode 100644 lib/stdio/fvwrite.h delete mode 100644 lib/stdio/fwalk.c delete mode 100644 lib/stdio/fwide.c delete mode 100644 lib/stdio/fwprintf.c delete mode 100644 lib/stdio/fwrite.c delete mode 100644 lib/stdio/fwrite_u.c delete mode 100644 lib/stdio/fwscanf.c delete mode 100644 lib/stdio/getc.c delete mode 100644 lib/stdio/getc_u.c delete mode 100644 lib/stdio/getchar.c delete mode 100644 lib/stdio/getchar_u.c delete mode 100644 lib/stdio/getdelim.c delete mode 100644 lib/stdio/getline.c delete mode 100644 lib/stdio/gets.c delete mode 100644 lib/stdio/getw.c delete mode 100644 lib/stdio/getwc.c delete mode 100644 lib/stdio/getwc_u.c delete mode 100644 lib/stdio/getwchar.c delete mode 100644 lib/stdio/getwchar_u.c delete mode 100644 lib/stdio/iprintf.c delete mode 100644 lib/stdio/iscanf.c delete mode 100644 lib/stdio/local.h delete mode 100644 lib/stdio/makebuf.c delete mode 100644 lib/stdio/mktemp.c delete mode 100644 lib/stdio/nano-svfprintf.c delete mode 100644 lib/stdio/nano-svfscanf.c delete mode 100644 lib/stdio/nano-vfprintf.c delete mode 100644 lib/stdio/nano-vfprintf_float.c delete mode 100644 lib/stdio/nano-vfprintf_i.c delete mode 100644 lib/stdio/nano-vfprintf_local.h delete mode 100644 lib/stdio/nano-vfscanf.c delete mode 100644 lib/stdio/nano-vfscanf_float.c delete mode 100644 lib/stdio/nano-vfscanf_i.c delete mode 100644 lib/stdio/nano-vfscanf_local.h delete mode 100644 lib/stdio/open_memstream.c delete mode 100644 lib/stdio/perror.c delete mode 100644 lib/stdio/printf.c delete mode 100644 lib/stdio/putc.c delete mode 100644 lib/stdio/putc_u.c delete mode 100644 lib/stdio/putchar.c delete mode 100644 lib/stdio/putchar_u.c delete mode 100644 lib/stdio/puts.c delete mode 100644 lib/stdio/putw.c delete mode 100644 lib/stdio/putwc.c delete mode 100644 lib/stdio/putwc_u.c delete mode 100644 lib/stdio/putwchar.c delete mode 100644 lib/stdio/putwchar_u.c delete mode 100644 lib/stdio/refill.c delete mode 100644 lib/stdio/remove.c delete mode 100644 lib/stdio/rename.c delete mode 100644 lib/stdio/rewind.c delete mode 100644 lib/stdio/rget.c delete mode 100644 lib/stdio/scanf.c delete mode 100644 lib/stdio/sccl.c delete mode 100644 lib/stdio/setbuf.c delete mode 100644 lib/stdio/setbuffer.c delete mode 100644 lib/stdio/setlinebuf.c delete mode 100644 lib/stdio/setvbuf.c delete mode 100644 lib/stdio/siprintf.c delete mode 100644 lib/stdio/siscanf.c delete mode 100644 lib/stdio/sniprintf.c delete mode 100644 lib/stdio/snprintf.c delete mode 100644 lib/stdio/sprintf.c delete mode 100644 lib/stdio/sscanf.c delete mode 100644 lib/stdio/stdio.c delete mode 100644 lib/stdio/stdio.tex delete mode 100644 lib/stdio/stdio_ext.c delete mode 100644 lib/stdio/svfiprintf.c delete mode 100644 lib/stdio/svfiscanf.c delete mode 100644 lib/stdio/svfiwprintf.c delete mode 100644 lib/stdio/svfiwscanf.c delete mode 100644 lib/stdio/svfprintf.c delete mode 100644 lib/stdio/svfscanf.c delete mode 100644 lib/stdio/svfwprintf.c delete mode 100644 lib/stdio/svfwscanf.c delete mode 100644 lib/stdio/swprintf.c delete mode 100644 lib/stdio/swscanf.c delete mode 100644 lib/stdio/tmpfile.c delete mode 100644 lib/stdio/tmpnam.c delete mode 100644 lib/stdio/ungetc.c delete mode 100644 lib/stdio/ungetwc.c delete mode 100644 lib/stdio/vasiprintf.c delete mode 100644 lib/stdio/vasniprintf.c delete mode 100644 lib/stdio/vasnprintf.c delete mode 100644 lib/stdio/vasprintf.c delete mode 100644 lib/stdio/vdiprintf.c delete mode 100644 lib/stdio/vdprintf.c delete mode 100644 lib/stdio/vfieeefp.h delete mode 100644 lib/stdio/vfiprintf.c delete mode 100644 lib/stdio/vfiscanf.c delete mode 100644 lib/stdio/vfiwprintf.c delete mode 100644 lib/stdio/vfiwscanf.c delete mode 100644 lib/stdio/vfprintf.c delete mode 100644 lib/stdio/vfscanf.c delete mode 100644 lib/stdio/vfwprintf.c delete mode 100644 lib/stdio/vfwscanf.c delete mode 100644 lib/stdio/viprintf.c delete mode 100644 lib/stdio/viscanf.c delete mode 100644 lib/stdio/vprintf.c delete mode 100644 lib/stdio/vscanf.c delete mode 100644 lib/stdio/vsiprintf.c delete mode 100644 lib/stdio/vsiscanf.c delete mode 100644 lib/stdio/vsniprintf.c delete mode 100644 lib/stdio/vsnprintf.c delete mode 100644 lib/stdio/vsprintf.c delete mode 100644 lib/stdio/vsscanf.c delete mode 100644 lib/stdio/vswprintf.c delete mode 100644 lib/stdio/vswscanf.c delete mode 100644 lib/stdio/vwprintf.c delete mode 100644 lib/stdio/vwscanf.c delete mode 100644 lib/stdio/wbuf.c delete mode 100644 lib/stdio/wprintf.c delete mode 100644 lib/stdio/wscanf.c delete mode 100644 lib/stdio/wsetup.c delete mode 100644 lib/stdio64/Makefile.inc delete mode 100644 lib/stdio64/fdopen64.c delete mode 100644 lib/stdio64/fgetpos64.c delete mode 100644 lib/stdio64/fopen64.c delete mode 100644 lib/stdio64/freopen64.c delete mode 100644 lib/stdio64/fseeko64.c delete mode 100644 lib/stdio64/fsetpos64.c delete mode 100644 lib/stdio64/ftello64.c delete mode 100644 lib/stdio64/stdio64.c delete mode 100644 lib/stdio64/stdio64.tex delete mode 100644 lib/stdio64/tmpfile64.c delete mode 100644 lib/stdlib/Makefile.inc delete mode 100644 lib/stdlib/_Exit.c delete mode 100644 lib/stdlib/__adjust.c delete mode 100644 lib/stdlib/__atexit.c delete mode 100644 lib/stdlib/__call_atexit.c delete mode 100644 lib/stdlib/__exp10.c delete mode 100644 lib/stdlib/__ten_mu.c delete mode 100644 lib/stdlib/_mallocr.c delete mode 100644 lib/stdlib/a64l.c delete mode 100644 lib/stdlib/abort.c delete mode 100644 lib/stdlib/abs.c delete mode 100644 lib/stdlib/aligned_alloc.c delete mode 100644 lib/stdlib/arc4random.c delete mode 100644 lib/stdlib/arc4random.h delete mode 100644 lib/stdlib/arc4random_uniform.c delete mode 100644 lib/stdlib/assert.c delete mode 100644 lib/stdlib/atexit.c delete mode 100644 lib/stdlib/atexit.h delete mode 100644 lib/stdlib/atof.c delete mode 100644 lib/stdlib/atoff.c delete mode 100644 lib/stdlib/atoi.c delete mode 100644 lib/stdlib/atol.c delete mode 100644 lib/stdlib/atoll.c delete mode 100644 lib/stdlib/btowc.c delete mode 100644 lib/stdlib/calloc.c delete mode 100644 lib/stdlib/callocr.c delete mode 100644 lib/stdlib/cfreer.c delete mode 100644 lib/stdlib/chacha_private.h delete mode 100644 lib/stdlib/cxa_atexit.c delete mode 100644 lib/stdlib/cxa_finalize.c delete mode 100644 lib/stdlib/div.c delete mode 100644 lib/stdlib/drand48.c delete mode 100644 lib/stdlib/dtoa.c delete mode 100644 lib/stdlib/dtoastub.c delete mode 100644 lib/stdlib/ecvtbuf.c delete mode 100644 lib/stdlib/efgcvt.c delete mode 100644 lib/stdlib/environ.c delete mode 100644 lib/stdlib/envlock.c delete mode 100644 lib/stdlib/eprintf.c delete mode 100644 lib/stdlib/erand48.c delete mode 100644 lib/stdlib/exit.c delete mode 100644 lib/stdlib/freer.c delete mode 100644 lib/stdlib/gdtoa-dmisc.c delete mode 100644 lib/stdlib/gdtoa-gdtoa.c delete mode 100644 lib/stdlib/gdtoa-gethex.c delete mode 100644 lib/stdlib/gdtoa-gmisc.c delete mode 100644 lib/stdlib/gdtoa-hexnan.c delete mode 100644 lib/stdlib/gdtoa-ldtoa.c delete mode 100644 lib/stdlib/gdtoa.h delete mode 100644 lib/stdlib/gdtoaimp.h delete mode 100644 lib/stdlib/getenv.c delete mode 100644 lib/stdlib/getenv_r.c delete mode 100644 lib/stdlib/getopt.c delete mode 100644 lib/stdlib/getsubopt.3 delete mode 100644 lib/stdlib/getsubopt.c delete mode 100644 lib/stdlib/imaxabs.c delete mode 100644 lib/stdlib/imaxdiv.c delete mode 100644 lib/stdlib/itoa.c delete mode 100644 lib/stdlib/jrand48.c delete mode 100644 lib/stdlib/l64a.c delete mode 100644 lib/stdlib/labs.c delete mode 100644 lib/stdlib/lcong48.c delete mode 100644 lib/stdlib/ldiv.c delete mode 100644 lib/stdlib/ldtoa.c delete mode 100644 lib/stdlib/llabs.c delete mode 100644 lib/stdlib/lldiv.c delete mode 100644 lib/stdlib/local.h delete mode 100644 lib/stdlib/lrand48.c delete mode 100644 lib/stdlib/malign.c delete mode 100644 lib/stdlib/malignr.c delete mode 100644 lib/stdlib/mallinfor.c delete mode 100644 lib/stdlib/malloc.c delete mode 100644 lib/stdlib/mallocr.c delete mode 100644 lib/stdlib/malloptr.c delete mode 100644 lib/stdlib/mallstatsr.c delete mode 100644 lib/stdlib/mbctype.h delete mode 100644 lib/stdlib/mblen.c delete mode 100644 lib/stdlib/mblen_r.c delete mode 100644 lib/stdlib/mbrlen.c delete mode 100644 lib/stdlib/mbrtowc.c delete mode 100644 lib/stdlib/mbsinit.c delete mode 100644 lib/stdlib/mbsnrtowcs.c delete mode 100644 lib/stdlib/mbsrtowcs.c delete mode 100644 lib/stdlib/mbstowcs.c delete mode 100644 lib/stdlib/mbstowcs_r.c delete mode 100644 lib/stdlib/mbtowc.c delete mode 100644 lib/stdlib/mbtowc_r.c delete mode 100644 lib/stdlib/mlock.c delete mode 100644 lib/stdlib/mman.h delete mode 100644 lib/stdlib/mprec.c delete mode 100644 lib/stdlib/mprec.h delete mode 100644 lib/stdlib/mrand48.c delete mode 100644 lib/stdlib/msize.c delete mode 100644 lib/stdlib/msizer.c delete mode 100644 lib/stdlib/mstats.c delete mode 100644 lib/stdlib/mtrim.c delete mode 100644 lib/stdlib/nano-mallocr.c delete mode 100644 lib/stdlib/nrand48.c delete mode 100644 lib/stdlib/on_exit.c delete mode 100644 lib/stdlib/on_exit_args.c delete mode 100644 lib/stdlib/on_exit_args.h delete mode 100644 lib/stdlib/putenv.c delete mode 100644 lib/stdlib/putenv_r.c delete mode 100644 lib/stdlib/pvallocr.c delete mode 100644 lib/stdlib/quick_exit.c delete mode 100644 lib/stdlib/rand.c delete mode 100644 lib/stdlib/rand48.c delete mode 100644 lib/stdlib/rand48.h delete mode 100644 lib/stdlib/rand_r.c delete mode 100644 lib/stdlib/random.c delete mode 100644 lib/stdlib/realloc.c delete mode 100644 lib/stdlib/reallocarray.c delete mode 100644 lib/stdlib/reallocf.c delete mode 100644 lib/stdlib/reallocr.c delete mode 100644 lib/stdlib/rpmatch.c delete mode 100644 lib/stdlib/sb_charsets.c delete mode 100644 lib/stdlib/seed48.c delete mode 100644 lib/stdlib/setenv.c delete mode 100644 lib/stdlib/setenv_r.c delete mode 100644 lib/stdlib/srand48.c delete mode 100644 lib/stdlib/std.h delete mode 100644 lib/stdlib/stdlib.tex delete mode 100644 lib/stdlib/strtod.c delete mode 100644 lib/stdlib/strtodg.c delete mode 100644 lib/stdlib/strtoimax.c delete mode 100644 lib/stdlib/strtol.c delete mode 100644 lib/stdlib/strtold.c delete mode 100644 lib/stdlib/strtoll.c delete mode 100644 lib/stdlib/strtoll_r.c delete mode 100644 lib/stdlib/strtorx.c delete mode 100644 lib/stdlib/strtoul.c delete mode 100644 lib/stdlib/strtoull.c delete mode 100644 lib/stdlib/strtoull_r.c delete mode 100644 lib/stdlib/strtoumax.c delete mode 100644 lib/stdlib/system.c delete mode 100644 lib/stdlib/utoa.c delete mode 100644 lib/stdlib/valloc.c delete mode 100644 lib/stdlib/vallocr.c delete mode 100644 lib/stdlib/wcrtomb.c delete mode 100644 lib/stdlib/wcsnrtombs.c delete mode 100644 lib/stdlib/wcsrtombs.c delete mode 100644 lib/stdlib/wcstod.c delete mode 100644 lib/stdlib/wcstoimax.c delete mode 100644 lib/stdlib/wcstol.c delete mode 100644 lib/stdlib/wcstold.c delete mode 100644 lib/stdlib/wcstoll.c delete mode 100644 lib/stdlib/wcstoll_r.c delete mode 100644 lib/stdlib/wcstombs.c delete mode 100644 lib/stdlib/wcstombs_r.c delete mode 100644 lib/stdlib/wcstoul.c delete mode 100644 lib/stdlib/wcstoull.c delete mode 100644 lib/stdlib/wcstoull_r.c delete mode 100644 lib/stdlib/wcstoumax.c delete mode 100644 lib/stdlib/wctob.c delete mode 100644 lib/stdlib/wctomb.c delete mode 100644 lib/stdlib/wctomb_r.c delete mode 100644 lib/string/Makefile.inc delete mode 100644 lib/string/WIDTH-A delete mode 100644 lib/string/ambiguous.t delete mode 100644 lib/string/bcmp.c delete mode 100644 lib/string/bcopy.c delete mode 100644 lib/string/bzero.c delete mode 100644 lib/string/combining.t delete mode 100644 lib/string/explicit_bzero.c delete mode 100644 lib/string/ffsl.c delete mode 100644 lib/string/ffsll.c delete mode 100644 lib/string/fls.c delete mode 100644 lib/string/flsl.c delete mode 100644 lib/string/flsll.c delete mode 100644 lib/string/gnu_basename.c delete mode 100644 lib/string/index.c delete mode 100644 lib/string/local.h delete mode 100644 lib/string/memccpy.c delete mode 100644 lib/string/memchr.c delete mode 100644 lib/string/memcmp.c delete mode 100644 lib/string/memcpy.c delete mode 100644 lib/string/memmem.c delete mode 100644 lib/string/memmove.c delete mode 100644 lib/string/mempcpy.c delete mode 100644 lib/string/memrchr.c delete mode 100644 lib/string/memset.c delete mode 100644 lib/string/mkunidata delete mode 100644 lib/string/mkwide delete mode 100644 lib/string/mkwidthA delete mode 100644 lib/string/rawmemchr.c delete mode 100644 lib/string/rindex.c delete mode 100644 lib/string/stpcpy.c delete mode 100644 lib/string/stpncpy.c delete mode 100644 lib/string/str-two-way.h delete mode 100644 lib/string/strcasecmp.c delete mode 100644 lib/string/strcasecmp_l.c delete mode 100644 lib/string/strcasestr.c delete mode 100644 lib/string/strcat.c delete mode 100644 lib/string/strchr.c delete mode 100644 lib/string/strchrnul.c delete mode 100644 lib/string/strcmp.c delete mode 100644 lib/string/strcoll.c delete mode 100644 lib/string/strcoll_l.c delete mode 100644 lib/string/strcpy.c delete mode 100644 lib/string/strcspn.c delete mode 100644 lib/string/strdup.c delete mode 100644 lib/string/strdup_r.c delete mode 100644 lib/string/strerror.c delete mode 100644 lib/string/strerror_r.c delete mode 100644 lib/string/strings.tex delete mode 100644 lib/string/strlcat.c delete mode 100644 lib/string/strlcpy.c delete mode 100644 lib/string/strlen.c delete mode 100644 lib/string/strlwr.c delete mode 100644 lib/string/strncasecmp.c delete mode 100644 lib/string/strncasecmp_l.c delete mode 100644 lib/string/strncat.c delete mode 100644 lib/string/strncmp.c delete mode 100644 lib/string/strncpy.c delete mode 100644 lib/string/strndup.c delete mode 100644 lib/string/strndup_r.c delete mode 100644 lib/string/strnlen.c delete mode 100644 lib/string/strnstr.c delete mode 100644 lib/string/strpbrk.c delete mode 100644 lib/string/strrchr.c delete mode 100644 lib/string/strsep.c delete mode 100644 lib/string/strsignal.c delete mode 100644 lib/string/strspn.c delete mode 100644 lib/string/strstr.c delete mode 100644 lib/string/strtok.c delete mode 100644 lib/string/strtok_r.c delete mode 100644 lib/string/strupr.c delete mode 100644 lib/string/strverscmp.c delete mode 100644 lib/string/strxfrm.c delete mode 100644 lib/string/strxfrm_l.c delete mode 100644 lib/string/swab.c delete mode 100644 lib/string/timingsafe_bcmp.c delete mode 100644 lib/string/timingsafe_memcmp.c delete mode 100644 lib/string/u_strerr.c delete mode 100644 lib/string/uniset delete mode 100644 lib/string/wcpcpy.c delete mode 100644 lib/string/wcpncpy.c delete mode 100644 lib/string/wcscasecmp.c delete mode 100644 lib/string/wcscasecmp_l.c delete mode 100644 lib/string/wcscat.c delete mode 100644 lib/string/wcschr.c delete mode 100644 lib/string/wcscmp.c delete mode 100644 lib/string/wcscoll.c delete mode 100644 lib/string/wcscoll_l.c delete mode 100644 lib/string/wcscpy.c delete mode 100644 lib/string/wcscspn.c delete mode 100644 lib/string/wcsdup.c delete mode 100644 lib/string/wcslcat.c delete mode 100644 lib/string/wcslcpy.c delete mode 100644 lib/string/wcslen.c delete mode 100644 lib/string/wcsncasecmp.c delete mode 100644 lib/string/wcsncasecmp_l.c delete mode 100644 lib/string/wcsncat.c delete mode 100644 lib/string/wcsncmp.c delete mode 100644 lib/string/wcsncpy.c delete mode 100644 lib/string/wcsnlen.c delete mode 100644 lib/string/wcspbrk.c delete mode 100644 lib/string/wcsrchr.c delete mode 100644 lib/string/wcsspn.c delete mode 100644 lib/string/wcsstr.c delete mode 100644 lib/string/wcstok.c delete mode 100644 lib/string/wcstrings.tex delete mode 100644 lib/string/wcswidth.c delete mode 100644 lib/string/wcsxfrm.c delete mode 100644 lib/string/wcsxfrm_l.c delete mode 100644 lib/string/wcwidth.c delete mode 100644 lib/string/wide.t delete mode 100644 lib/string/wmemchr.c delete mode 100644 lib/string/wmemcmp.c delete mode 100644 lib/string/wmemcpy.c delete mode 100644 lib/string/wmemmove.c delete mode 100644 lib/string/wmempcpy.c delete mode 100644 lib/string/wmemset.c delete mode 100644 lib/string/xpg_strerror_r.c delete mode 100644 lib/sys.tex delete mode 100644 lib/sys/Makefile.inc delete mode 100644 lib/sys/a29khif/Makefile.inc delete mode 100644 lib/sys/a29khif/_alloc.S delete mode 100644 lib/sys/a29khif/_close.S delete mode 100644 lib/sys/a29khif/_cycles.S delete mode 100644 lib/sys/a29khif/_exit.S delete mode 100644 lib/sys/a29khif/_fstat.S delete mode 100644 lib/sys/a29khif/_getpsiz.S delete mode 100644 lib/sys/a29khif/_gettz.S delete mode 100644 lib/sys/a29khif/_ioctl.S delete mode 100644 lib/sys/a29khif/_iostat.S delete mode 100644 lib/sys/a29khif/_iowait.S delete mode 100644 lib/sys/a29khif/_isatty.S delete mode 100644 lib/sys/a29khif/_lseek.S delete mode 100644 lib/sys/a29khif/_open.S delete mode 100644 lib/sys/a29khif/_query.S delete mode 100644 lib/sys/a29khif/_read.S delete mode 100644 lib/sys/a29khif/_sbrk.S delete mode 100644 lib/sys/a29khif/_setim.S delete mode 100644 lib/sys/a29khif/_settrap.S delete mode 100644 lib/sys/a29khif/_setvec.S delete mode 100644 lib/sys/a29khif/_tmpnam.S delete mode 100644 lib/sys/a29khif/_write.S delete mode 100644 lib/sys/a29khif/alloc.S delete mode 100644 lib/sys/a29khif/clock.S delete mode 100644 lib/sys/a29khif/crt0.S delete mode 100644 lib/sys/a29khif/getargs.S delete mode 100644 lib/sys/a29khif/getenv.S delete mode 100644 lib/sys/a29khif/getpid.c delete mode 100644 lib/sys/a29khif/kill.c delete mode 100644 lib/sys/a29khif/read.S delete mode 100644 lib/sys/a29khif/remove.S delete mode 100644 lib/sys/a29khif/rename.S delete mode 100644 lib/sys/a29khif/signal.S delete mode 100644 lib/sys/a29khif/stubs.S delete mode 100644 lib/sys/a29khif/sys/cpudef.h delete mode 100644 lib/sys/a29khif/sys/fpsymbol.h delete mode 100644 lib/sys/a29khif/sys/intrinsi.h delete mode 100644 lib/sys/a29khif/sys/macros.h delete mode 100644 lib/sys/a29khif/sys/proreg.h delete mode 100644 lib/sys/a29khif/sys/romdcl.h delete mode 100644 lib/sys/a29khif/sys/smartmac.h delete mode 100644 lib/sys/a29khif/sys/sysmac.h delete mode 100644 lib/sys/a29khif/systime.S delete mode 100644 lib/sys/a29khif/vec.S delete mode 100644 lib/sys/amdgcn/Makefile.inc delete mode 100644 lib/sys/amdgcn/close.c delete mode 100644 lib/sys/amdgcn/fcntl.c delete mode 100644 lib/sys/amdgcn/fstat.c delete mode 100644 lib/sys/amdgcn/getpid.c delete mode 100644 lib/sys/amdgcn/isatty.c delete mode 100644 lib/sys/amdgcn/kill.c delete mode 100644 lib/sys/amdgcn/lseek.c delete mode 100644 lib/sys/amdgcn/open.c delete mode 100644 lib/sys/amdgcn/raise.c delete mode 100644 lib/sys/amdgcn/read.c delete mode 100644 lib/sys/amdgcn/stat.c delete mode 100644 lib/sys/amdgcn/unlink.c delete mode 100644 lib/sys/amdgcn/write.c delete mode 100644 lib/sys/arm/Makefile.inc delete mode 100644 lib/sys/arm/access.c delete mode 100644 lib/sys/arm/aeabi_atexit.c delete mode 100644 lib/sys/arm/arm.h delete mode 100644 lib/sys/arm/crt0.S delete mode 100644 lib/sys/arm/libcfunc.c delete mode 100644 lib/sys/arm/swi.h delete mode 100644 lib/sys/arm/sys/fcntl.h delete mode 100644 lib/sys/arm/syscalls.c delete mode 100644 lib/sys/arm/sysconf.c delete mode 100644 lib/sys/arm/trap.S delete mode 100644 lib/sys/d10v/Makefile.inc delete mode 100644 lib/sys/d10v/creat.c delete mode 100644 lib/sys/d10v/crt0.S delete mode 100644 lib/sys/d10v/sys/syscall.h delete mode 100644 lib/sys/d10v/syscalls.c delete mode 100644 lib/sys/d10v/trap.S delete mode 100644 lib/sys/epiphany/Makefile.inc delete mode 100644 lib/sys/epiphany/e_printf.c delete mode 100644 lib/sys/h8300hms/Makefile.inc delete mode 100644 lib/sys/h8300hms/_exit.S delete mode 100644 lib/sys/h8300hms/close.S delete mode 100644 lib/sys/h8300hms/crt0.S delete mode 100644 lib/sys/h8300hms/crt1.c delete mode 100644 lib/sys/h8300hms/fstat.S delete mode 100644 lib/sys/h8300hms/lseek.S delete mode 100644 lib/sys/h8300hms/misc.c delete mode 100644 lib/sys/h8300hms/open.S delete mode 100644 lib/sys/h8300hms/read.S delete mode 100644 lib/sys/h8300hms/sbrk.c delete mode 100644 lib/sys/h8300hms/setarch.h delete mode 100644 lib/sys/h8300hms/stat.S delete mode 100644 lib/sys/h8300hms/sys/file.h delete mode 100644 lib/sys/h8300hms/sys/syscall.h delete mode 100644 lib/sys/h8300hms/syscalls.c delete mode 100644 lib/sys/h8300hms/write.S delete mode 100644 lib/sys/h8500hms/Makefile.inc delete mode 100644 lib/sys/h8500hms/crt0.c delete mode 100644 lib/sys/h8500hms/misc.c delete mode 100644 lib/sys/h8500hms/syscalls.c delete mode 100644 lib/sys/m88kbug/Makefile.inc delete mode 100644 lib/sys/m88kbug/crt0.c delete mode 100644 lib/sys/m88kbug/sys/systraps.h delete mode 100644 lib/sys/m88kbug/syscalls.c delete mode 100644 lib/sys/mmixware/Makefile.inc delete mode 100644 lib/sys/mmixware/_exit.c delete mode 100644 lib/sys/mmixware/access.c delete mode 100644 lib/sys/mmixware/chmod.c delete mode 100644 lib/sys/mmixware/chown.c delete mode 100644 lib/sys/mmixware/close.c delete mode 100644 lib/sys/mmixware/creat.c delete mode 100644 lib/sys/mmixware/crt0.c delete mode 100644 lib/sys/mmixware/execv.c delete mode 100644 lib/sys/mmixware/execve.c delete mode 100644 lib/sys/mmixware/fork.c delete mode 100644 lib/sys/mmixware/fstat.c delete mode 100644 lib/sys/mmixware/getpid.c delete mode 100644 lib/sys/mmixware/gettime.c delete mode 100644 lib/sys/mmixware/isatty.c delete mode 100644 lib/sys/mmixware/kill.c delete mode 100644 lib/sys/mmixware/link.c delete mode 100644 lib/sys/mmixware/lseek.c delete mode 100644 lib/sys/mmixware/open.c delete mode 100644 lib/sys/mmixware/pipe.c delete mode 100644 lib/sys/mmixware/read.c delete mode 100644 lib/sys/mmixware/sbrk.c delete mode 100644 lib/sys/mmixware/setjmp.S delete mode 100644 lib/sys/mmixware/stat.c delete mode 100644 lib/sys/mmixware/sys/syscall.h delete mode 100644 lib/sys/mmixware/time.c delete mode 100644 lib/sys/mmixware/times.c delete mode 100644 lib/sys/mmixware/unlink.c delete mode 100644 lib/sys/mmixware/utime.c delete mode 100644 lib/sys/mmixware/wait.c delete mode 100644 lib/sys/mmixware/write.c delete mode 100644 lib/sys/netware/Makefile.inc delete mode 100644 lib/sys/netware/crt0.c delete mode 100644 lib/sys/netware/getpid.c delete mode 100644 lib/sys/netware/link.c delete mode 100644 lib/sys/or1k/Makefile.inc delete mode 100644 lib/sys/or1k/getreent.S delete mode 100644 lib/sys/or1k/mlock.c delete mode 100644 lib/sys/or1k/or1k-asm.h delete mode 100644 lib/sys/rdos/Makefile.inc delete mode 100644 lib/sys/rdos/chown.c delete mode 100644 lib/sys/rdos/close.c delete mode 100644 lib/sys/rdos/config.h delete mode 100644 lib/sys/rdos/crt0.S delete mode 100644 lib/sys/rdos/execve.c delete mode 100644 lib/sys/rdos/fork.c delete mode 100644 lib/sys/rdos/fstat.c delete mode 100644 lib/sys/rdos/getenv.c delete mode 100644 lib/sys/rdos/getpid.c delete mode 100644 lib/sys/rdos/gettod.c delete mode 100644 lib/sys/rdos/isatty.c delete mode 100644 lib/sys/rdos/kill.c delete mode 100644 lib/sys/rdos/link.c delete mode 100644 lib/sys/rdos/lseek.c delete mode 100644 lib/sys/rdos/open.c delete mode 100644 lib/sys/rdos/rdos.S delete mode 100644 lib/sys/rdos/rdos.h delete mode 100644 lib/sys/rdos/rdoshelp.c delete mode 100644 lib/sys/rdos/read.c delete mode 100644 lib/sys/rdos/readlink.c delete mode 100644 lib/sys/rdos/sbrk.c delete mode 100644 lib/sys/rdos/stat.c delete mode 100644 lib/sys/rdos/symlink.c delete mode 100644 lib/sys/rdos/times.c delete mode 100644 lib/sys/rdos/unlink.c delete mode 100644 lib/sys/rdos/user.def delete mode 100644 lib/sys/rdos/wait.c delete mode 100644 lib/sys/rdos/write.c delete mode 100644 lib/sys/rtems/Makefile.inc delete mode 100644 lib/sys/rtems/cpusetalloc.c delete mode 100644 lib/sys/rtems/cpusetfree.c delete mode 100644 lib/sys/rtems/crt0.c delete mode 100644 lib/sys/rtems/dummysys.c delete mode 100644 lib/sys/rtems/include/README delete mode 100644 lib/sys/rtems/include/arpa/inet.h delete mode 100644 lib/sys/rtems/include/limits.h delete mode 100644 lib/sys/rtems/include/machine/_align.h delete mode 100644 lib/sys/rtems/include/machine/_arc4random.h delete mode 100644 lib/sys/rtems/include/machine/_bitcount.h delete mode 100644 lib/sys/rtems/include/machine/_libatomic.h delete mode 100644 lib/sys/rtems/include/machine/_threads.h delete mode 100644 lib/sys/rtems/include/machine/_time.h delete mode 100644 lib/sys/rtems/include/machine/_types.h delete mode 100644 lib/sys/rtems/include/machine/limits.h delete mode 100644 lib/sys/rtems/include/machine/param.h delete mode 100644 lib/sys/rtems/include/machine/types.h delete mode 100644 lib/sys/rtems/include/net/if.h delete mode 100644 lib/sys/rtems/include/netdb.h delete mode 100644 lib/sys/rtems/include/netinet/in.h delete mode 100644 lib/sys/rtems/include/netinet/tcp.h delete mode 100644 lib/sys/rtems/include/netinet6/in6.h delete mode 100644 lib/sys/rtems/include/poll.h delete mode 100644 lib/sys/rtems/include/semaphore.h delete mode 100644 lib/sys/rtems/include/sys/_bitset.h delete mode 100644 lib/sys/rtems/include/sys/_cpuset.h delete mode 100644 lib/sys/rtems/include/sys/_iovec.h delete mode 100644 lib/sys/rtems/include/sys/_pthreadtypes.h delete mode 100644 lib/sys/rtems/include/sys/_sockaddr_storage.h delete mode 100644 lib/sys/rtems/include/sys/_termios.h delete mode 100644 lib/sys/rtems/include/sys/_uio.h delete mode 100644 lib/sys/rtems/include/sys/_winsize.h delete mode 100644 lib/sys/rtems/include/sys/bitset.h delete mode 100644 lib/sys/rtems/include/sys/cpuset.h delete mode 100644 lib/sys/rtems/include/sys/dirent.h delete mode 100644 lib/sys/rtems/include/sys/filio.h delete mode 100644 lib/sys/rtems/include/sys/ioccom.h delete mode 100644 lib/sys/rtems/include/sys/ioctl.h delete mode 100644 lib/sys/rtems/include/sys/lock.h delete mode 100644 lib/sys/rtems/include/sys/mman.h delete mode 100644 lib/sys/rtems/include/sys/param.h delete mode 100644 lib/sys/rtems/include/sys/poll.h delete mode 100644 lib/sys/rtems/include/sys/socket.h delete mode 100644 lib/sys/rtems/include/sys/sockio.h delete mode 100644 lib/sys/rtems/include/sys/syslimits.h delete mode 100644 lib/sys/rtems/include/sys/syslog.h delete mode 100644 lib/sys/rtems/include/sys/ttycom.h delete mode 100644 lib/sys/rtems/include/sys/ttydefaults.h delete mode 100644 lib/sys/rtems/include/sys/uio.h delete mode 100644 lib/sys/rtems/include/sys/un.h delete mode 100644 lib/sys/rtems/include/sys/utime.h delete mode 100644 lib/sys/rtems/include/syslog.h delete mode 100644 lib/sys/rtems/include/termios.h delete mode 100644 lib/sys/sh/Makefile.inc delete mode 100644 lib/sys/sh/creat.c delete mode 100644 lib/sys/sh/crt0.S delete mode 100644 lib/sys/sh/ftruncate.c delete mode 100644 lib/sys/sh/sys/syscall.h delete mode 100644 lib/sys/sh/syscalls.c delete mode 100644 lib/sys/sh/trap.S delete mode 100644 lib/sys/sh/truncate.c delete mode 100644 lib/sys/sysmec/Makefile.inc delete mode 100644 lib/sys/sysmec/_exit.c delete mode 100644 lib/sys/sysmec/access.c delete mode 100644 lib/sys/sysmec/chmod.c delete mode 100644 lib/sys/sysmec/chown.c delete mode 100644 lib/sys/sysmec/close.c delete mode 100644 lib/sys/sysmec/creat.c delete mode 100644 lib/sys/sysmec/crt0.S delete mode 100644 lib/sys/sysmec/crt1.c delete mode 100644 lib/sys/sysmec/execv.c delete mode 100644 lib/sys/sysmec/execve.c delete mode 100644 lib/sys/sysmec/fork.c delete mode 100644 lib/sys/sysmec/fstat.c delete mode 100644 lib/sys/sysmec/getpid.c delete mode 100644 lib/sys/sysmec/gettime.c delete mode 100644 lib/sys/sysmec/isatty.c delete mode 100644 lib/sys/sysmec/kill.c delete mode 100644 lib/sys/sysmec/lseek.c delete mode 100644 lib/sys/sysmec/open.c delete mode 100644 lib/sys/sysmec/pipe.c delete mode 100644 lib/sys/sysmec/read.c delete mode 100644 lib/sys/sysmec/sbrk.c delete mode 100644 lib/sys/sysmec/stat.c delete mode 100644 lib/sys/sysmec/sys/syscall.h delete mode 100644 lib/sys/sysmec/time.c delete mode 100644 lib/sys/sysmec/times.c delete mode 100644 lib/sys/sysmec/trap.S delete mode 100644 lib/sys/sysmec/unlink.c delete mode 100644 lib/sys/sysmec/utime.c delete mode 100644 lib/sys/sysmec/wait.c delete mode 100644 lib/sys/sysmec/write.c delete mode 100644 lib/sys/sysnec810/Makefile.inc delete mode 100644 lib/sys/sysnec810/crt0.S delete mode 100644 lib/sys/sysnec810/io.S delete mode 100644 lib/sys/sysnec810/misc.c delete mode 100644 lib/sys/sysnec810/sbrk.c delete mode 100644 lib/sys/sysnec810/write.c delete mode 100644 lib/sys/sysnecv850/Makefile.inc delete mode 100644 lib/sys/sysnecv850/_exit.c delete mode 100644 lib/sys/sysnecv850/access.c delete mode 100644 lib/sys/sysnecv850/chmod.c delete mode 100644 lib/sys/sysnecv850/chown.c delete mode 100644 lib/sys/sysnecv850/close.c delete mode 100644 lib/sys/sysnecv850/creat.c delete mode 100644 lib/sys/sysnecv850/crt0.S delete mode 100644 lib/sys/sysnecv850/crt1.c delete mode 100644 lib/sys/sysnecv850/execv.c delete mode 100644 lib/sys/sysnecv850/execve.c delete mode 100644 lib/sys/sysnecv850/fork.c delete mode 100644 lib/sys/sysnecv850/fstat.c delete mode 100644 lib/sys/sysnecv850/getpid.c delete mode 100644 lib/sys/sysnecv850/gettime.c delete mode 100644 lib/sys/sysnecv850/isatty.c delete mode 100644 lib/sys/sysnecv850/kill.c delete mode 100644 lib/sys/sysnecv850/link.c delete mode 100644 lib/sys/sysnecv850/lseek.c delete mode 100644 lib/sys/sysnecv850/open.c delete mode 100644 lib/sys/sysnecv850/pipe.c delete mode 100644 lib/sys/sysnecv850/read.c delete mode 100644 lib/sys/sysnecv850/rename.c delete mode 100644 lib/sys/sysnecv850/sbrk.c delete mode 100644 lib/sys/sysnecv850/stat.c delete mode 100644 lib/sys/sysnecv850/sys/syscall.h delete mode 100644 lib/sys/sysnecv850/time.c delete mode 100644 lib/sys/sysnecv850/times.c delete mode 100644 lib/sys/sysnecv850/trap.S delete mode 100644 lib/sys/sysnecv850/unlink.c delete mode 100644 lib/sys/sysnecv850/utime.c delete mode 100644 lib/sys/sysnecv850/wait.c delete mode 100644 lib/sys/sysnecv850/write.c delete mode 100644 lib/sys/sysvi386/Makefile.inc delete mode 100644 lib/sys/sysvi386/_exit.S delete mode 100644 lib/sys/sysvi386/_longjmp.S delete mode 100644 lib/sys/sysvi386/_setjmp.S delete mode 100644 lib/sys/sysvi386/access.S delete mode 100644 lib/sys/sysvi386/alarm.S delete mode 100644 lib/sys/sysvi386/brk.S delete mode 100644 lib/sys/sysvi386/cerror.S delete mode 100644 lib/sys/sysvi386/chdir.S delete mode 100644 lib/sys/sysvi386/chmod.S delete mode 100644 lib/sys/sysvi386/close.S delete mode 100644 lib/sys/sysvi386/closedir.c delete mode 100644 lib/sys/sysvi386/crt0.c delete mode 100644 lib/sys/sysvi386/dup.c delete mode 100644 lib/sys/sysvi386/dup2.c delete mode 100644 lib/sys/sysvi386/exec.c delete mode 100644 lib/sys/sysvi386/execve.S delete mode 100644 lib/sys/sysvi386/fcntl.S delete mode 100644 lib/sys/sysvi386/fork.S delete mode 100644 lib/sys/sysvi386/fpathconf.S delete mode 100644 lib/sys/sysvi386/fps.S delete mode 100644 lib/sys/sysvi386/fpx.c delete mode 100644 lib/sys/sysvi386/fstat.S delete mode 100644 lib/sys/sysvi386/getdents.S delete mode 100644 lib/sys/sysvi386/getegid.S delete mode 100644 lib/sys/sysvi386/geteuid.S delete mode 100644 lib/sys/sysvi386/getgid.S delete mode 100644 lib/sys/sysvi386/getgroups.S delete mode 100644 lib/sys/sysvi386/getpid.S delete mode 100644 lib/sys/sysvi386/getuid.S delete mode 100644 lib/sys/sysvi386/ioctl.S delete mode 100644 lib/sys/sysvi386/isatty.c delete mode 100644 lib/sys/sysvi386/kill.S delete mode 100644 lib/sys/sysvi386/link.S delete mode 100644 lib/sys/sysvi386/lseek.S delete mode 100644 lib/sys/sysvi386/mkdir.S delete mode 100644 lib/sys/sysvi386/open.S delete mode 100644 lib/sys/sysvi386/opendir.c delete mode 100644 lib/sys/sysvi386/pathconf.S delete mode 100644 lib/sys/sysvi386/pause.S delete mode 100644 lib/sys/sysvi386/pipe.S delete mode 100644 lib/sys/sysvi386/read.S delete mode 100644 lib/sys/sysvi386/readdir.c delete mode 100644 lib/sys/sysvi386/rename.S delete mode 100644 lib/sys/sysvi386/rewinddir.c delete mode 100644 lib/sys/sysvi386/rmdir.S delete mode 100644 lib/sys/sysvi386/sbrk.c delete mode 100644 lib/sys/sysvi386/scandir.c delete mode 100644 lib/sys/sysvi386/seekdir.c delete mode 100644 lib/sys/sysvi386/setgid.S delete mode 100644 lib/sys/sysvi386/setuid.S delete mode 100644 lib/sys/sysvi386/sigaction.S delete mode 100644 lib/sys/sysvi386/signal.S delete mode 100644 lib/sys/sysvi386/sigprocmask.S delete mode 100644 lib/sys/sysvi386/sleep.c delete mode 100644 lib/sys/sysvi386/speed.c delete mode 100644 lib/sys/sysvi386/stat.S delete mode 100644 lib/sys/sysvi386/sys/dirent.h delete mode 100644 lib/sys/sysvi386/sys/setjmp.h delete mode 100644 lib/sys/sysvi386/sys/termio.h delete mode 100644 lib/sys/sysvi386/sys/termios.h delete mode 100644 lib/sys/sysvi386/sys/utime.h delete mode 100644 lib/sys/sysvi386/sys/utmp.h delete mode 100644 lib/sys/sysvi386/sys/wait.h delete mode 100644 lib/sys/sysvi386/sysconf.S delete mode 100644 lib/sys/sysvi386/tcgetattr.c delete mode 100644 lib/sys/sysvi386/tcline.c delete mode 100644 lib/sys/sysvi386/tcsetattr.c delete mode 100644 lib/sys/sysvi386/telldir.c delete mode 100644 lib/sys/sysvi386/time.S delete mode 100644 lib/sys/sysvi386/times.S delete mode 100644 lib/sys/sysvi386/unlink.S delete mode 100644 lib/sys/sysvi386/utime.S delete mode 100644 lib/sys/sysvi386/wait.S delete mode 100644 lib/sys/sysvi386/waitpid.S delete mode 100644 lib/sys/sysvi386/write.S delete mode 100644 lib/sys/sysvnecv70/Makefile.inc delete mode 100644 lib/sys/sysvnecv70/cerror.S delete mode 100644 lib/sys/sysvnecv70/close.S delete mode 100644 lib/sys/sysvnecv70/crt0.S delete mode 100644 lib/sys/sysvnecv70/exit.S delete mode 100644 lib/sys/sysvnecv70/fps.S delete mode 100644 lib/sys/sysvnecv70/fpx.c delete mode 100644 lib/sys/sysvnecv70/fstat.S delete mode 100644 lib/sys/sysvnecv70/ioctl.S delete mode 100644 lib/sys/sysvnecv70/isatty.S delete mode 100644 lib/sys/sysvnecv70/lseek.S delete mode 100644 lib/sys/sysvnecv70/open.S delete mode 100644 lib/sys/sysvnecv70/read.S delete mode 100644 lib/sys/sysvnecv70/sbrk.S delete mode 100644 lib/sys/sysvnecv70/sysv60.S delete mode 100644 lib/sys/sysvnecv70/sysvnecv70.tex delete mode 100644 lib/sys/sysvnecv70/write.S delete mode 100644 lib/sys/tic80/Makefile.inc delete mode 100644 lib/sys/tic80/crt0.c delete mode 100644 lib/sys/tirtos/Makefile.inc delete mode 100644 lib/sys/tirtos/include/sys/lock.h delete mode 100644 lib/sys/tirtos/lock.c delete mode 100644 lib/sys/w65/Makefile.inc delete mode 100644 lib/sys/w65/crt0.c delete mode 100644 lib/sys/w65/sys/syscall.h delete mode 100644 lib/sys/w65/syscalls.c delete mode 100644 lib/sys/w65/trap.c delete mode 100644 lib/sys/z8ksim/Makefile.inc delete mode 100644 lib/sys/z8ksim/crt0.c delete mode 100644 lib/sys/z8ksim/glue.c delete mode 100644 lib/sys/z8ksim/sys/syscall.h delete mode 100644 lib/syscalls/Makefile.inc delete mode 100644 lib/syscalls/sysclose.c delete mode 100644 lib/syscalls/sysexecve.c delete mode 100644 lib/syscalls/sysfcntl.c delete mode 100644 lib/syscalls/sysfork.c delete mode 100644 lib/syscalls/sysfstat.c delete mode 100644 lib/syscalls/sysgetpid.c delete mode 100644 lib/syscalls/sysgettod.c delete mode 100644 lib/syscalls/sysisatty.c delete mode 100644 lib/syscalls/syskill.c delete mode 100644 lib/syscalls/syslink.c delete mode 100644 lib/syscalls/syslseek.c delete mode 100644 lib/syscalls/sysopen.c delete mode 100644 lib/syscalls/sysread.c delete mode 100644 lib/syscalls/syssbrk.c delete mode 100644 lib/syscalls/sysstat.c delete mode 100644 lib/syscalls/systimes.c delete mode 100644 lib/syscalls/sysunlink.c delete mode 100644 lib/syscalls/syswait.c delete mode 100644 lib/syscalls/syswrite.c delete mode 100644 lib/time/Makefile.inc delete mode 100644 lib/time/asctime.c delete mode 100644 lib/time/asctime_r.c delete mode 100644 lib/time/clock.c delete mode 100644 lib/time/ctime.c delete mode 100644 lib/time/ctime_r.c delete mode 100644 lib/time/difftime.c delete mode 100644 lib/time/gettzinfo.c delete mode 100644 lib/time/gmtime.c delete mode 100644 lib/time/gmtime_r.c delete mode 100644 lib/time/lcltime.c delete mode 100644 lib/time/lcltime_r.c delete mode 100644 lib/time/local.h delete mode 100644 lib/time/mktime.c delete mode 100644 lib/time/month_lengths.c delete mode 100644 lib/time/strftime.c delete mode 100644 lib/time/strptime.c delete mode 100644 lib/time/time.c delete mode 100644 lib/time/time.tex delete mode 100644 lib/time/tzcalc_limits.c delete mode 100644 lib/time/tzlock.c delete mode 100644 lib/time/tzset.c delete mode 100644 lib/time/tzset_r.c delete mode 100644 lib/time/tzvars.c delete mode 100644 lib/time/wcsftime.c delete mode 100644 lib/unix/Makefile.inc delete mode 100644 lib/unix/basename.c delete mode 100644 lib/unix/dirname.c delete mode 100644 lib/unix/getcwd.c delete mode 100644 lib/unix/getlogin.c delete mode 100644 lib/unix/getpass.c delete mode 100644 lib/unix/getpwent.c delete mode 100644 lib/unix/getut.c delete mode 100644 lib/unix/pread.c delete mode 100644 lib/unix/pwrite.c delete mode 100644 lib/unix/sigset.c delete mode 100644 lib/unix/ttyname.c delete mode 100644 lib/unix/ttyname.h delete mode 100644 lib/unix/ttyname_r.c delete mode 100644 lib/xdr/Makefile.inc delete mode 100644 lib/xdr/README delete mode 100644 lib/xdr/xdr.c delete mode 100644 lib/xdr/xdr_array.c delete mode 100644 lib/xdr/xdr_float.c delete mode 100644 lib/xdr/xdr_float_vax.c delete mode 100644 lib/xdr/xdr_mem.c delete mode 100644 lib/xdr/xdr_private.c delete mode 100644 lib/xdr/xdr_private.h delete mode 100644 lib/xdr/xdr_rec.c delete mode 100644 lib/xdr/xdr_reference.c delete mode 100644 lib/xdr/xdr_sizeof.c delete mode 100644 lib/xdr/xdr_stdio.c diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..d0c0b49 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "lib/neatlibc"] + path = lib/neatlibc + url = https://github.com/aligrudi/neatlibc.git diff --git a/Makefile b/Makefile index 83d674b..cffd1b8 100644 --- a/Makefile +++ b/Makefile @@ -198,7 +198,8 @@ KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ -Werror-implicit-function-declaration \ -Wno-format-security \ -fno-delete-null-pointer-checks \ - -Wno-builtin-declaration-mismatch -Wno-main + -Wno-builtin-declaration-mismatch -Wno-main -nostdinc \ + -I$(srctree)/lib/neatlibc KBUILD_AFLAGS_KERNEL := KBUILD_CFLAGS_KERNEL := KBUILD_AFLAGS := -D__ASSEMBLY__ diff --git a/include/COPYING b/include/COPYING deleted file mode 100644 index 623b625..0000000 --- a/include/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/include/COPYING3 b/include/COPYING3 deleted file mode 100644 index 94a9ed0..0000000 --- a/include/COPYING3 +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/include/_ansi.h b/include/_ansi.h deleted file mode 100644 index 6c7497e..0000000 --- a/include/_ansi.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Provide support for both ANSI and non-ANSI environments. */ - -/* To get a strict ANSI C environment, define macro __STRICT_ANSI__. This will - "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header - files aren't affected). */ - -#ifndef _ANSIDECL_H_ -#define _ANSIDECL_H_ - -#include -#include - -/* ISO C++. */ - -#ifdef __cplusplus -#if !(defined(_BEGIN_STD_C) && defined(_END_STD_C)) -#ifdef _HAVE_STD_CXX -#define _BEGIN_STD_C namespace std { extern "C" { -#define _END_STD_C } } -#else -#define _BEGIN_STD_C extern "C" { -#define _END_STD_C } -#endif -#if __GNUC_PREREQ (3, 3) -#define _NOTHROW __attribute__ ((__nothrow__)) -#else -#define _NOTHROW throw() -#endif -#endif -#else -#define _BEGIN_STD_C -#define _END_STD_C -#define _NOTHROW -#endif - -#ifndef _LONG_DOUBLE -#define _LONG_DOUBLE long double -#endif - -/* Support gcc's __attribute__ facility. */ - -#ifdef __GNUC__ -#define _ATTRIBUTE(attrs) __attribute__ (attrs) -#else -#define _ATTRIBUTE(attrs) -#endif - -/* The traditional meaning of 'extern inline' for GCC is not - to emit the function body unless the address is explicitly - taken. However this behaviour is changing to match the C99 - standard, which uses 'extern inline' to indicate that the - function body *must* be emitted. Likewise, a function declared - without either 'extern' or 'static' defaults to extern linkage - (C99 6.2.2p5), and the compiler may choose whether to use the - inline version or call the extern linkage version (6.7.4p6). - If we are using GCC, but do not have the new behaviour, we need - to use extern inline; if we are using a new GCC with the - C99-compatible behaviour, or a non-GCC compiler (which we will - have to hope is C99, since there is no other way to achieve the - effect of omitting the function if it isn't referenced) we use - 'static inline', which c99 defines to mean more-or-less the same - as the Gnu C 'extern inline'. */ -#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__) -/* We're using GCC, but without the new C99-compatible behaviour. */ -#define _ELIDABLE_INLINE extern __inline__ _ATTRIBUTE ((__always_inline__)) -#else -/* We're using GCC in C99 mode, or an unknown compiler which - we just have to hope obeys the C99 semantics of inline. */ -#define _ELIDABLE_INLINE static __inline__ -#endif - -#if __GNUC_PREREQ (3, 1) -#define _NOINLINE __attribute__ ((__noinline__)) -#define _NOINLINE_STATIC _NOINLINE static -#else -/* On non-GNU compilers and GCC prior to version 3.1 the compiler can't be - trusted not to inline if it is static. */ -#define _NOINLINE -#define _NOINLINE_STATIC -#endif - -#endif /* _ANSIDECL_H_ */ diff --git a/include/_newlib_version.h b/include/_newlib_version.h deleted file mode 100644 index d4fffb1..0000000 --- a/include/_newlib_version.h +++ /dev/null @@ -1,2 +0,0 @@ -/* dummy file for external tools to use. Real file is created by - newlib configuration. */ diff --git a/include/_syslist.h b/include/_syslist.h deleted file mode 100644 index 271644e..0000000 --- a/include/_syslist.h +++ /dev/null @@ -1,40 +0,0 @@ -/* internal use only -- mapping of "system calls" for libraries that lose - and only provide C names, so that we end up in violation of ANSI */ -#ifndef __SYSLIST_H -#define __SYSLIST_H - -#ifdef MISSING_SYSCALL_NAMES -#define _close close -#define _execve execve -#define _fcntl fcntl -#define _fork fork -#define _fstat fstat -#define _getpid getpid -#define _gettimeofday gettimeofday -#define _isatty isatty -#define _kill kill -#define _link link -#define _lseek lseek -#define _mkdir mkdir -#define _open open -#define _read read -#define _sbrk sbrk -#define _stat stat -#define _times times -#define _unlink unlink -#define _wait wait -#define _write write -#endif /* MISSING_SYSCALL_NAMES */ - -#if defined MISSING_SYSCALL_NAMES || !defined HAVE_OPENDIR -/* If the system call interface is missing opendir, readdir, and - closedir, there is an implementation of these functions in - libc/posix that is implemented using open, getdents, and close. - Note, these functions are currently not in the libc/syscalls - directory. */ -#define _opendir opendir -#define _readdir readdir -#define _closedir closedir -#endif /* MISSING_SYSCALL_NAMES || !HAVE_OPENDIR */ - -#endif /* !__SYSLIST_H_ */ diff --git a/include/alloca-conf.h b/include/alloca-conf.h deleted file mode 100644 index 0e9e2c3..0000000 --- a/include/alloca-conf.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright 2012 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#include "config.h" - -/* This is a merge of code recommended in the autoconf-2.61 documentation - with that recommended in the autoconf-2.13 documentation, with added - tweaks to heed C_ALLOCA. */ - -#if defined HAVE_ALLOCA_H && !defined C_ALLOCA -# include -#else -# if defined __GNUC__ && !defined C_ALLOCA -# if !defined alloca -# define alloca __builtin_alloca -# endif -# else -# if defined _AIX -/* Indented so that pre-ansi C compilers will ignore it, rather than - choke on it. Some versions of AIX require this to be the first - thing seen by the compiler except for comments and preprocessor - directives. */ - #pragma alloca -# else -# if defined _MSC_VER && !defined C_ALLOCA -# include -# define alloca _alloca -# else -# if !defined alloca -# if defined __STDC__ || defined __hpux -# if defined HAVE_STDDEF_H -# include -# if defined __cplusplus -extern "C" void *alloca (size_t); -# else -extern void *alloca (size_t); -# endif -# else -extern void *alloca (); -# endif -# else -extern char *alloca (); -# endif -# endif -# endif -# endif -# endif -#endif diff --git a/include/alloca.h b/include/alloca.h deleted file mode 100644 index 5d36318..0000000 --- a/include/alloca.h +++ /dev/null @@ -1,21 +0,0 @@ -/* libc/include/alloca.h - Allocate memory on stack */ - -/* Written 2000 by Werner Almesberger */ -/* Rearranged for general inclusion by stdlib.h. - 2001, Corinna Vinschen */ - -#ifndef _NEWLIB_ALLOCA_H -#define _NEWLIB_ALLOCA_H - -#include "_ansi.h" -#include - -#undef alloca - -#ifdef __GNUC__ -#define alloca(size) __builtin_alloca(size) -#else -void * alloca (size_t); -#endif - -#endif diff --git a/include/ansidecl.h b/include/ansidecl.h deleted file mode 100644 index 6e4bfc2..0000000 --- a/include/ansidecl.h +++ /dev/null @@ -1,329 +0,0 @@ -/* ANSI and traditional C compatability macros - Copyright (C) 1991-2015 Free Software Foundation, Inc. - This file is part of the GNU C Library. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* ANSI and traditional C compatibility macros - - ANSI C is assumed if __STDC__ is #defined. - - Macro ANSI C definition Traditional C definition - ----- ---- - ---------- ----------- - ---------- - PTR `void *' `char *' - const not defined `' - volatile not defined `' - signed not defined `' - - For ease of writing code which uses GCC extensions but needs to be - portable to other compilers, we provide the GCC_VERSION macro that - simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various - wrappers around __attribute__. Also, __extension__ will be #defined - to nothing if it doesn't work. See below. */ - -#ifndef _ANSIDECL_H -#define _ANSIDECL_H 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* Every source file includes this file, - so they will all get the switch for lint. */ -/* LINTLIBRARY */ - -/* Using MACRO(x,y) in cpp #if conditionals does not work with some - older preprocessors. Thus we can't define something like this: - -#define HAVE_GCC_VERSION(MAJOR, MINOR) \ - (__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR))) - -and then test "#if HAVE_GCC_VERSION(2,7)". - -So instead we use the macro below and test it against specific values. */ - -/* This macro simplifies testing whether we are using gcc, and if it - is of a particular minimum version. (Both major & minor numbers are - significant.) This macro will evaluate to 0 if we are not using - gcc at all. */ -#ifndef GCC_VERSION -#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__) -#endif /* GCC_VERSION */ - -#if defined (__STDC__) || defined(__cplusplus) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32) -/* All known AIX compilers implement these things (but don't always - define __STDC__). The RISC/OS MIPS compiler defines these things - in SVR4 mode, but does not define __STDC__. */ -/* eraxxon@alumni.rice.edu: The Compaq C++ compiler, unlike many other - C++ compilers, does not define __STDC__, though it acts as if this - was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */ - -#define PTR void * - -#undef const -#undef volatile -#undef signed - -/* inline requires special treatment; it's in C99, and GCC >=2.7 supports - it too, but it's not in C89. */ -#undef inline -#if __STDC_VERSION__ >= 199901L || defined(__cplusplus) || (defined(__SUNPRO_C) && defined(__C99FEATURES__)) -/* it's a keyword */ -#else -# if GCC_VERSION >= 2007 -# define inline __inline__ /* __inline__ prevents -pedantic warnings */ -# else -# define inline /* nothing */ -# endif -#endif - -#else /* Not ANSI C. */ - -#define PTR char * - -/* some systems define these in header files for non-ansi mode */ -#undef const -#undef volatile -#undef signed -#undef inline -#define const -#define volatile -#define signed -#define inline - -#endif /* ANSI C. */ - -/* Define macros for some gcc attributes. This permits us to use the - macros freely, and know that they will come into play for the - version of gcc in which they are supported. */ - -#if (GCC_VERSION < 2007) -# define __attribute__(x) -#endif - -/* Attribute __malloc__ on functions was valid as of gcc 2.96. */ -#ifndef ATTRIBUTE_MALLOC -# if (GCC_VERSION >= 2096) -# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define ATTRIBUTE_MALLOC -# endif /* GNUC >= 2.96 */ -#endif /* ATTRIBUTE_MALLOC */ - -/* Attributes on labels were valid as of gcc 2.93 and g++ 4.5. For - g++ an attribute on a label must be followed by a semicolon. */ -#ifndef ATTRIBUTE_UNUSED_LABEL -# ifndef __cplusplus -# if GCC_VERSION >= 2093 -# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED -# else -# define ATTRIBUTE_UNUSED_LABEL -# endif -# else -# if GCC_VERSION >= 4005 -# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED ; -# else -# define ATTRIBUTE_UNUSED_LABEL -# endif -# endif -#endif - -/* Similarly to ARG_UNUSED below. Prior to GCC 3.4, the C++ frontend - couldn't parse attributes placed after the identifier name, and now - the entire compiler is built with C++. */ -#ifndef ATTRIBUTE_UNUSED -#if GCC_VERSION >= 3004 -# define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -#else -#define ATTRIBUTE_UNUSED -#endif -#endif /* ATTRIBUTE_UNUSED */ - -/* Before GCC 3.4, the C++ frontend couldn't parse attributes placed after the - identifier name. */ -#if ! defined(__cplusplus) || (GCC_VERSION >= 3004) -# define ARG_UNUSED(NAME) NAME ATTRIBUTE_UNUSED -#else /* !__cplusplus || GNUC >= 3.4 */ -# define ARG_UNUSED(NAME) NAME -#endif /* !__cplusplus || GNUC >= 3.4 */ - -#ifndef ATTRIBUTE_NORETURN -#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) -#endif /* ATTRIBUTE_NORETURN */ - -/* Attribute `nonnull' was valid as of gcc 3.3. */ -#ifndef ATTRIBUTE_NONNULL -# if (GCC_VERSION >= 3003) -# define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m))) -# else -# define ATTRIBUTE_NONNULL(m) -# endif /* GNUC >= 3.3 */ -#endif /* ATTRIBUTE_NONNULL */ - -/* Attribute `returns_nonnull' was valid as of gcc 4.9. */ -#ifndef ATTRIBUTE_RETURNS_NONNULL -# if (GCC_VERSION >= 4009) -# define ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) -# else -# define ATTRIBUTE_RETURNS_NONNULL -# endif /* GNUC >= 4.9 */ -#endif /* ATTRIBUTE_RETURNS_NONNULL */ - -/* Attribute `pure' was valid as of gcc 3.0. */ -#ifndef ATTRIBUTE_PURE -# if (GCC_VERSION >= 3000) -# define ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define ATTRIBUTE_PURE -# endif /* GNUC >= 3.0 */ -#endif /* ATTRIBUTE_PURE */ - -/* Use ATTRIBUTE_PRINTF when the format specifier must not be NULL. - This was the case for the `printf' format attribute by itself - before GCC 3.3, but as of 3.3 we need to add the `nonnull' - attribute to retain this behavior. */ -#ifndef ATTRIBUTE_PRINTF -#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m) -#define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2) -#define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3) -#define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4) -#define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5) -#define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6) -#endif /* ATTRIBUTE_PRINTF */ - -/* Use ATTRIBUTE_FPTR_PRINTF when the format attribute is to be set on - a function pointer. Format attributes were allowed on function - pointers as of gcc 3.1. */ -#ifndef ATTRIBUTE_FPTR_PRINTF -# if (GCC_VERSION >= 3001) -# define ATTRIBUTE_FPTR_PRINTF(m, n) ATTRIBUTE_PRINTF(m, n) -# else -# define ATTRIBUTE_FPTR_PRINTF(m, n) -# endif /* GNUC >= 3.1 */ -# define ATTRIBUTE_FPTR_PRINTF_1 ATTRIBUTE_FPTR_PRINTF(1, 2) -# define ATTRIBUTE_FPTR_PRINTF_2 ATTRIBUTE_FPTR_PRINTF(2, 3) -# define ATTRIBUTE_FPTR_PRINTF_3 ATTRIBUTE_FPTR_PRINTF(3, 4) -# define ATTRIBUTE_FPTR_PRINTF_4 ATTRIBUTE_FPTR_PRINTF(4, 5) -# define ATTRIBUTE_FPTR_PRINTF_5 ATTRIBUTE_FPTR_PRINTF(5, 6) -#endif /* ATTRIBUTE_FPTR_PRINTF */ - -/* Use ATTRIBUTE_NULL_PRINTF when the format specifier may be NULL. A - NULL format specifier was allowed as of gcc 3.3. */ -#ifndef ATTRIBUTE_NULL_PRINTF -# if (GCC_VERSION >= 3003) -# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) -# else -# define ATTRIBUTE_NULL_PRINTF(m, n) -# endif /* GNUC >= 3.3 */ -# define ATTRIBUTE_NULL_PRINTF_1 ATTRIBUTE_NULL_PRINTF(1, 2) -# define ATTRIBUTE_NULL_PRINTF_2 ATTRIBUTE_NULL_PRINTF(2, 3) -# define ATTRIBUTE_NULL_PRINTF_3 ATTRIBUTE_NULL_PRINTF(3, 4) -# define ATTRIBUTE_NULL_PRINTF_4 ATTRIBUTE_NULL_PRINTF(4, 5) -# define ATTRIBUTE_NULL_PRINTF_5 ATTRIBUTE_NULL_PRINTF(5, 6) -#endif /* ATTRIBUTE_NULL_PRINTF */ - -/* Attribute `sentinel' was valid as of gcc 3.5. */ -#ifndef ATTRIBUTE_SENTINEL -# if (GCC_VERSION >= 3005) -# define ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__)) -# else -# define ATTRIBUTE_SENTINEL -# endif /* GNUC >= 3.5 */ -#endif /* ATTRIBUTE_SENTINEL */ - - -#ifndef ATTRIBUTE_ALIGNED_ALIGNOF -# if (GCC_VERSION >= 3000) -# define ATTRIBUTE_ALIGNED_ALIGNOF(m) __attribute__ ((__aligned__ (__alignof__ (m)))) -# else -# define ATTRIBUTE_ALIGNED_ALIGNOF(m) -# endif /* GNUC >= 3.0 */ -#endif /* ATTRIBUTE_ALIGNED_ALIGNOF */ - -/* Useful for structures whose layout must much some binary specification - regardless of the alignment and padding qualities of the compiler. */ -#ifndef ATTRIBUTE_PACKED -# define ATTRIBUTE_PACKED __attribute__ ((packed)) -#endif - -/* Attribute `hot' and `cold' was valid as of gcc 4.3. */ -#ifndef ATTRIBUTE_COLD -# if (GCC_VERSION >= 4003) -# define ATTRIBUTE_COLD __attribute__ ((__cold__)) -# else -# define ATTRIBUTE_COLD -# endif /* GNUC >= 4.3 */ -#endif /* ATTRIBUTE_COLD */ -#ifndef ATTRIBUTE_HOT -# if (GCC_VERSION >= 4003) -# define ATTRIBUTE_HOT __attribute__ ((__hot__)) -# else -# define ATTRIBUTE_HOT -# endif /* GNUC >= 4.3 */ -#endif /* ATTRIBUTE_HOT */ - -/* Attribute 'no_sanitize_undefined' was valid as of gcc 4.9. */ -#ifndef ATTRIBUTE_NO_SANITIZE_UNDEFINED -# if (GCC_VERSION >= 4009) -# define ATTRIBUTE_NO_SANITIZE_UNDEFINED __attribute__ ((no_sanitize_undefined)) -# else -# define ATTRIBUTE_NO_SANITIZE_UNDEFINED -# endif /* GNUC >= 4.9 */ -#endif /* ATTRIBUTE_NO_SANITIZE_UNDEFINED */ - -/* We use __extension__ in some places to suppress -pedantic warnings - about GCC extensions. This feature didn't work properly before - gcc 2.8. */ -#if GCC_VERSION < 2008 -#define __extension__ -#endif - -/* This is used to declare a const variable which should be visible - outside of the current compilation unit. Use it as - EXPORTED_CONST int i = 1; - This is because the semantics of const are different in C and C++. - "extern const" is permitted in C but it looks strange, and gcc - warns about it when -Wc++-compat is not used. */ -#ifdef __cplusplus -#define EXPORTED_CONST extern const -#else -#define EXPORTED_CONST const -#endif - -/* Be conservative and only use enum bitfields with C++ or GCC. - FIXME: provide a complete autoconf test for buggy enum bitfields. */ - -#ifdef __cplusplus -#define ENUM_BITFIELD(TYPE) enum TYPE -#elif (GCC_VERSION > 2000) -#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE -#else -#define ENUM_BITFIELD(TYPE) unsigned int -#endif - - /* This is used to mark a class or virtual function as final. */ -#if __cplusplus >= 201103L -#define GCC_FINAL final -#elif GCC_VERSION >= 4007 -#define GCC_FINAL __final -#else -#define GCC_FINAL -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* ansidecl.h */ diff --git a/include/aout/ChangeLog b/include/aout/ChangeLog deleted file mode 100644 index b4d4139..0000000 --- a/include/aout/ChangeLog +++ /dev/null @@ -1,262 +0,0 @@ -2010-04-15 Nick Clifton - - * adobe.h: Update copyright notice to use GPLv3. - * aout64.h: Likewise. - * ar.h: Likewise. - * dynix3.h: Likewise. - * encap.h: Likewise. - * host.h: Likewise. - * hp.h: Likewise. - * hp300hpux.h: Likewise. - * ranlib.h: Likewise. - * reloc.h: Likewise. - * stab.def: Likewise. - * stab_gnu.h: Likewise. - * sun4.h: Likewise. - -2009-10-02 Alan Modra - - * aout64.h (N_SHARED_LIB): Define as zero if not already defined. - * sun4.h (N_SHARED_LIB): Define. - * hp300hpux.h (N_SHARED_LIB): Don't define. - -2008-08-28 Tristan Gingold - - * stab.def: Add BNSYM, ENSYM, OSO for darwin. - -2008-03-27 Cary Coutant - - * ar.h (ARMAGT): New magic string for thin archives. - -2005-08-18 Alan Modra - - * encap.h: Remove a29k support. - -2005-05-10 Nick Clifton - - * Update the address and phone number of the FSF organization in - the GPL notices in the following files: - adobe.h, aout64.h, ar.h, dynix3.h, encap.h, host.h, hp.h, - ranlib.h, reloc.h, stab.def, stab_gnu.h, sun4.h - -2004-01-06 Mark Kettenis - - * stab.def: Add N_PATCH to DO definition. - -2003-03-06 Elias Athanasopoulos - - * aout64.h (BYTES_IN_WORD): Define if necessary. - -2001-09-18 Alan Modra - - * aout64.h: Formatting fixes. - (N_TXTADDR): Evaluate to a bfd_vma. - (N_DATADDR): Avoid negative unsigned warning. - * hp300hpux.h: Formatting fixes. - (N_DATADDR): Avoid negative unsigned warning. - -2000-04-03 Hans-Peter Nilsson - - * aout64.h (RELOC_EXT_BITS_EXTERN_BIG): Wrap definition in #ifndef. - (RELOC_EXT_BITS_EXTERN_LITTLE): Ditto. - (RELOC_EXT_BITS_TYPE_BIG): Ditto. - (RELOC_EXT_BITS_TYPE_SH_BIG): Ditto. - (RELOC_EXT_BITS_TYPE_LITTLE): Ditto. - (RELOC_EXT_BITS_TYPE_SH_LITTLE): Ditto. - -1999-07-12 Ian Lance Taylor - - * aout64.h (N_SHARED_LIB): Define as 0 if TEXT_START_ADDR is - defined as 0. - -1998-06-28 Peter Schauer - - * stab.def: Add N_ALIAS from SunPro F77. - -1996-03-11 Ian Lance Taylor - - * stab.def: Use __define_stab_duplicate rather than __define_stab - for duplicate entries N_BROWS and N_MOD2. - * stab_gnu.h (__define_stab_duplicate): Define before including - stab.def. - -1995-10-27 Niklas Hallqvist - - * aout64.h, host.h, hp300hpux.h, sun4.h: Changed PAGE_SIZE to - TARGET_PAGE_SIZE. - -1995-09-12 Ian Lance Taylor - - * sun4.h (struct internal_sun4_dynamic_link): Change all fields - from long to unsigned long. - -1995-07-12 Ken Raeburn - - * sun4.h (PAGE_SIZE): Undefine before defining. - -1994-09-04 Richard Earnshaw (rwe@pegasus.esprit.ec.org) - - * aout64.h: Only define QMAGIC if it isn't already defined. - -1994-06-16 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * aout64.h (BMAGIC): Define. - -1994-06-11 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - Add weak symbols as an extension to a.out. - * aout64.h (N_WEAKU, N_WEAKA, N_WEAKT, N_WEAKD, N_WEAKB): Define. - * stab.def: Update symbol value table. - -1994-06-02 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * sun4.h (EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE): Correct from 28 to - 24. Fix up ld_got comment. - -1994-03-30 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) - - * dynix3.h: Cleanup, adapt to current bfd version. - -1994-02-26 Ian Lance Taylor (ian@cygnus.com) - - * aout64.h: Add casts to avoid warnings from SVR4 cc. - -1994-02-11 Stan Shebs (shebs@andros.cygnus.com) - - * ar.h (ARMAG, ARMAGB, ARFMAG): Change '\n' to '\012', for greater - portability. - -1994-01-21 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * sun4.h: Added information about SunOS shared libraries. - -1994-01-07 Jim Kingdon (kingdon@deneb.cygnus.com) - - * aout64.h (N_TXTADDR): Add comment regarding OMAGIC and NMAGIC. - -1993-12-25 Jim Kingdon (kingdon@lioth.cygnus.com) - - * aout64.h (N_DATOFF): Don't pad (revert change of 8 Jul 1993). - -1993-11-16 Jim Kingdon (kingdon@lioth.cygnus.com) - - * aout64.h: New macros ZMAGIC_DISK_BLOCK_SIZE and N_DISK_BLOCK_SIZE - for Linux ZMAGIC. - (N_TXTOFF, N_DATOFF): Use them. - -1993-11-04 Ken Raeburn (raeburn@kr-pc.cygnus.com) - - * aout64.h (RELOC_STD_BITS_RELATIVE_LITTLE): Fixed value to match - sun3 system; used to overlap other fields. - (RELOC_STD_BITS_JMPTABLE_LITTLE): Likewise. - -1993-11-03 David J. Mackenzie (djm@thepub.cygnus.com) - - * aout64.h (RELOC_STD_BITS_BASEREL_LITTLE): Make it 0x10 (Ken's - suggestion) to avoid conflict with RELOC_STD_BITS_EXTERN_LITTLE. - -1993-10-29 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * hp300hpux.h (N_SHARED_LIB): Define to be 0. - -1993-09-13 John Gilmore (gnu@cygnus.com) - - * ar.h (ARMAP_TIME_OFFSET): Add and describe. - -Mon Aug 23 Sean Fagan (sef@cygnus.com) - - * aout64.h [ARCH_SIZE != 64]: Allow N_BADMAG to be overridden. - -1993-08-16 Jim Kingdon (kingdon@lioth.cygnus.com) - - * stab_gnu.h: Include aout/stab.def not just stab.def. - -1993-07-18 Jim Kingdon (kingdon@rtl.cygnus.com) - - * dynix3.h: New, for symmetry running dynix. - -1993-07-08 Jim Kingdon (kingdon@lioth.cygnus.com) - - * aout64.h (N_BADMAG): Recognize QMAGIC. - N_TXTOFF, N_TXTADDR, N_TXTSIZE: Special code for QMAGIC. - N_DATOFF: Pad text size if we need to. - -1993-06-18 Jim Kingdon (kingdon@lioth.cygnus.com) - - * stab.def (N_ECOML): Fix comment. - -1993-05-31 Jim Kingdon (kingdon@cygnus.com) - - * stab.def: Remove Solaris information on N_FUN stabstring grammar; - I've transferred it to gdb/doc/stabs.texinfo, where it belongs. - -1993-05-10 Ken Raeburn (raeburn@kr-pc.cygnus.com) - - * hp300hpux.h: Patch from Glenn Engel for linker problem and - compatibility fix: - (OMAGIC, NMAGIC): New definitions. - (SHAREMAGIC): Deleted. - (HPUX_DOT_O_MAGIC): New macro. - (_N_BADMAG): Adjusted. - (N_HEADER_IN_TEXT, N_DATADDR): New macros. - -1993-04-29 Ken Raeburn (raeburn@deneb.cygnus.com) - - * hp300hpux.h: New file from Glenn Engel, glenne@lsid.hp.com. - -1993-04-27 Ken Raeburn (raeburn@kr-pc.cygnus.com) - - * aout64.h (struct external_exec, *MAGIC, N_BADMAG): Don't define - if `external_exec' is already defined as a macro. - (N_DATOFF, N_TRELOFF, N_DRELOFF, N_SYMOFF, N_STROFF): Don't define - if already defined. - (struct external_nlist, EXTERNAL_NLIST_SIZE): Don't define if - `external_nlist' is already defined as a macro. - -1992-08-15 John Gilmore (gnu@cygnus.com) - - * adobe.h: Add description of a.out.adobe format. - -1992-07-03 John Gilmore (gnu at cygnus.com) - - * stab.def: Update more Solaris definitions. - * stab_gnu.h: Add N_SO language types, and Solaris basic float types. - -1992-06-14 John Gilmore (gnu at cygnus.com) - - * stab.def: Update descriptions of Solaris-2 stabs; add N_UNDF. - -1992-06-11 John Gilmore (gnu at cygnus.com) - - * stab.def: Add N_OBJ and N_OPT from Solaris-2. - -1992-01-30 John Gilmore (gnu at cygnus.com) - - * aout64.h: N_TXTSIZE needs some more parentheses. - I don't trust C precedence. - -1991-12-18 Per Bothner (bothner at cygnus.com) - - * aout64.h: Move common sunos-specific test - to recognize shared libraries into new macro N_SHARED_LIB. - Use it to simplify & reformat N_TXTADDR, N_TXTOFF, N_TXTSIZE. - -1991-11-30 Steve Chamberlain (sac at rtl.cygnus.com) - - * aout64.h, ar.h, encap.h, host.h, hp.h, ranlib.h, reloc.h, - stab.def, stab_gnu.h, sun4.h: All moved from the devo/include - directory. - - -Copyright (C) 1991-2012 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - -Local Variables: -mode: change-log -left-margin: 8 -fill-column: 74 -version-control: never -End: diff --git a/include/aout/adobe.h b/include/aout/adobe.h deleted file mode 100644 index ce22552..0000000 --- a/include/aout/adobe.h +++ /dev/null @@ -1,314 +0,0 @@ -/* `a.out.adobe' differences from standard a.out files - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef __A_OUT_ADOBE_H__ -#define __A_OUT_ADOBE_H__ - -#define BYTES_IN_WORD 4 - -/* Struct external_exec is the same. */ - -/* This is the layout on disk of the 32-bit or 64-bit exec header. */ - -struct external_exec -{ - bfd_byte e_info[4]; /* magic number and stuff */ - bfd_byte e_text[BYTES_IN_WORD]; /* length of text section in bytes */ - bfd_byte e_data[BYTES_IN_WORD]; /* length of data section in bytes */ - bfd_byte e_bss[BYTES_IN_WORD]; /* length of bss area in bytes */ - bfd_byte e_syms[BYTES_IN_WORD]; /* length of symbol table in bytes */ - bfd_byte e_entry[BYTES_IN_WORD]; /* start address */ - bfd_byte e_trsize[BYTES_IN_WORD]; /* length of text relocation info */ - bfd_byte e_drsize[BYTES_IN_WORD]; /* length of data relocation info */ -}; - -#define EXEC_BYTES_SIZE (4 + BYTES_IN_WORD * 7) - -/* Magic numbers for a.out files */ - -#undef ZMAGIC -#define ZMAGIC 0xAD0BE /* Cute, eh? */ -#undef OMAGIC -#undef NMAGIC - -#define N_BADMAG(x) ((x).a_info != ZMAGIC) - -/* By default, segment size is constant. But some machines override this - to be a function of the a.out header (e.g. machine type). */ -#ifndef N_SEGSIZE -#define N_SEGSIZE(x) SEGMENT_SIZE -#endif -#undef N_SEGSIZE /* FIXMEXXXX */ - -/* Segment information for the a.out.Adobe format is specified after the - file header. It contains N segment descriptors, followed by one with - a type of zero. - - The actual text of the segments starts at N_TXTOFF in the file, - regardless of how many or how few segment headers there are. */ - -struct external_segdesc { - unsigned char e_type[1]; - unsigned char e_size[3]; - unsigned char e_virtbase[4]; - unsigned char e_filebase[4]; -}; - -struct internal_segdesc { - unsigned int a_type:8; /* Segment type N_TEXT, N_DATA, 0 */ - unsigned int a_size:24; /* Segment size */ - bfd_vma a_virtbase; /* Virtual address */ - unsigned int a_filebase; /* Base address in object file */ -}; - -#define N_TXTADDR(x) \ - -/* This is documented to be at 1024, but appears to really be at 2048. - FIXME?! */ -#define N_TXTOFF(x) 2048 - -#define N_TXTSIZE(x) ((x).a_text) - -#define N_DATADDR(x) - -#define N_BSSADDR(x) - -/* Offsets of the various portions of the file after the text segment. */ - -#define N_DATOFF(x) ( N_TXTOFF(x) + N_TXTSIZE(x) ) -#define N_TRELOFF(x) ( N_DATOFF(x) + (x).a_data ) -#define N_DRELOFF(x) ( N_TRELOFF(x) + (x).a_trsize ) -#define N_SYMOFF(x) ( N_DRELOFF(x) + (x).a_drsize ) -#define N_STROFF(x) ( N_SYMOFF(x) + (x).a_syms ) - -/* Symbols */ -struct external_nlist { - bfd_byte e_strx[BYTES_IN_WORD]; /* index into string table of name */ - bfd_byte e_type[1]; /* type of symbol */ - bfd_byte e_other[1]; /* misc info (usually empty) */ - bfd_byte e_desc[2]; /* description field */ - bfd_byte e_value[BYTES_IN_WORD]; /* value of symbol */ -}; - -#define EXTERNAL_NLIST_SIZE (BYTES_IN_WORD+4+BYTES_IN_WORD) - -struct internal_nlist { - unsigned long n_strx; /* index into string table of name */ - unsigned char n_type; /* type of symbol */ - unsigned char n_other; /* misc info (usually empty) */ - unsigned short n_desc; /* description field */ - bfd_vma n_value; /* value of symbol */ -}; - -/* The n_type field is the symbol type, containing: */ - -#define N_UNDF 0 /* Undefined symbol */ -#define N_ABS 2 /* Absolute symbol -- defined at particular addr */ -#define N_TEXT 4 /* Text sym -- defined at offset in text seg */ -#define N_DATA 6 /* Data sym -- defined at offset in data seg */ -#define N_BSS 8 /* BSS sym -- defined at offset in zero'd seg */ -#define N_COMM 0x12 /* Common symbol (visible after shared lib dynlink) */ -#define N_FN 0x1f /* File name of .o file */ -#define N_FN_SEQ 0x0C /* N_FN from Sequent compilers (sigh) */ -/* Note: N_EXT can only be usefully OR-ed with N_UNDF, N_ABS, N_TEXT, - N_DATA, or N_BSS. When the low-order bit of other types is set, - (e.g. N_WARNING versus N_FN), they are two different types. */ -#define N_EXT 1 /* External symbol (as opposed to local-to-this-file) */ -#define N_TYPE 0x1e -#define N_STAB 0xe0 /* If any of these bits are on, it's a debug symbol */ - -#define N_INDR 0x0a - -/* The following symbols refer to set elements. - All the N_SET[ATDB] symbols with the same name form one set. - Space is allocated for the set in the text section, and each set - elements value is stored into one word of the space. - The first word of the space is the length of the set (number of elements). - - The address of the set is made into an N_SETV symbol - whose name is the same as the name of the set. - This symbol acts like a N_DATA global symbol - in that it can satisfy undefined external references. */ - -/* These appear as input to LD, in a .o file. */ -#define N_SETA 0x14 /* Absolute set element symbol */ -#define N_SETT 0x16 /* Text set element symbol */ -#define N_SETD 0x18 /* Data set element symbol */ -#define N_SETB 0x1A /* Bss set element symbol */ - -/* This is output from LD. */ -#define N_SETV 0x1C /* Pointer to set vector in data area. */ - -/* Warning symbol. The text gives a warning message, the next symbol - in the table will be undefined. When the symbol is referenced, the - message is printed. */ - -#define N_WARNING 0x1e - -/* Relocations - - There are two types of relocation flavours for a.out systems, - standard and extended. The standard form is used on systems where the - instruction has room for all the bits of an offset to the operand, whilst - the extended form is used when an address operand has to be split over n - instructions. Eg, on the 68k, each move instruction can reference - the target with a displacement of 16 or 32 bits. On the sparc, move - instructions use an offset of 14 bits, so the offset is stored in - the reloc field, and the data in the section is ignored. -*/ - -/* This structure describes a single relocation to be performed. - The text-relocation section of the file is a vector of these structures, - all of which apply to the text section. - Likewise, the data-relocation section applies to the data section. */ - -struct reloc_std_external { - bfd_byte r_address[BYTES_IN_WORD]; /* offset of of data to relocate */ - bfd_byte r_index[3]; /* symbol table index of symbol */ - bfd_byte r_type[1]; /* relocation type */ -}; - -#define RELOC_STD_BITS_PCREL_BIG 0x80 -#define RELOC_STD_BITS_PCREL_LITTLE 0x01 - -#define RELOC_STD_BITS_LENGTH_BIG 0x60 -#define RELOC_STD_BITS_LENGTH_SH_BIG 5 /* To shift to units place */ -#define RELOC_STD_BITS_LENGTH_LITTLE 0x06 -#define RELOC_STD_BITS_LENGTH_SH_LITTLE 1 - -#define RELOC_STD_BITS_EXTERN_BIG 0x10 -#define RELOC_STD_BITS_EXTERN_LITTLE 0x08 - -#define RELOC_STD_BITS_BASEREL_BIG 0x08 -#define RELOC_STD_BITS_BASEREL_LITTLE 0x08 - -#define RELOC_STD_BITS_JMPTABLE_BIG 0x04 -#define RELOC_STD_BITS_JMPTABLE_LITTLE 0x04 - -#define RELOC_STD_BITS_RELATIVE_BIG 0x02 -#define RELOC_STD_BITS_RELATIVE_LITTLE 0x02 - -#define RELOC_STD_SIZE (BYTES_IN_WORD + 3 + 1) /* Bytes per relocation entry */ - -struct reloc_std_internal -{ - bfd_vma r_address; /* Address (within segment) to be relocated. */ - /* The meaning of r_symbolnum depends on r_extern. */ - unsigned int r_symbolnum:24; - /* Nonzero means value is a pc-relative offset - and it should be relocated for changes in its own address - as well as for changes in the symbol or section specified. */ - unsigned int r_pcrel:1; - /* Length (as exponent of 2) of the field to be relocated. - Thus, a value of 2 indicates 1<<2 bytes. */ - unsigned int r_length:2; - /* 1 => relocate with value of symbol. - r_symbolnum is the index of the symbol - in files the symbol table. - 0 => relocate with the address of a segment. - r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS - (the N_EXT bit may be set also, but signifies nothing). */ - unsigned int r_extern:1; - /* The next three bits are for SunOS shared libraries, and seem to - be undocumented. */ - unsigned int r_baserel:1; /* Linkage table relative */ - unsigned int r_jmptable:1; /* pc-relative to jump table */ - unsigned int r_relative:1; /* "relative relocation" */ - /* unused */ - unsigned int r_pad:1; /* Padding -- set to zero */ -}; - - -/* EXTENDED RELOCS */ - -struct reloc_ext_external { - bfd_byte r_address[BYTES_IN_WORD]; /* offset of of data to relocate */ - bfd_byte r_index[3]; /* symbol table index of symbol */ - bfd_byte r_type[1]; /* relocation type */ - bfd_byte r_addend[BYTES_IN_WORD]; /* datum addend */ -}; - -#define RELOC_EXT_BITS_EXTERN_BIG 0x80 -#define RELOC_EXT_BITS_EXTERN_LITTLE 0x01 - -#define RELOC_EXT_BITS_TYPE_BIG 0x1F -#define RELOC_EXT_BITS_TYPE_SH_BIG 0 -#define RELOC_EXT_BITS_TYPE_LITTLE 0xF8 -#define RELOC_EXT_BITS_TYPE_SH_LITTLE 3 - -/* Bytes per relocation entry */ -#define RELOC_EXT_SIZE (BYTES_IN_WORD + 3 + 1 + BYTES_IN_WORD) - -enum reloc_type -{ - /* simple relocations */ - RELOC_8, /* data[0:7] = addend + sv */ - RELOC_16, /* data[0:15] = addend + sv */ - RELOC_32, /* data[0:31] = addend + sv */ - /* pc-rel displacement */ - RELOC_DISP8, /* data[0:7] = addend - pc + sv */ - RELOC_DISP16, /* data[0:15] = addend - pc + sv */ - RELOC_DISP32, /* data[0:31] = addend - pc + sv */ - /* Special */ - RELOC_WDISP30, /* data[0:29] = (addend + sv - pc)>>2 */ - RELOC_WDISP22, /* data[0:21] = (addend + sv - pc)>>2 */ - RELOC_HI22, /* data[0:21] = (addend + sv)>>10 */ - RELOC_22, /* data[0:21] = (addend + sv) */ - RELOC_13, /* data[0:12] = (addend + sv) */ - RELOC_LO10, /* data[0:9] = (addend + sv) */ - RELOC_SFA_BASE, - RELOC_SFA_OFF13, - /* P.I.C. (base-relative) */ - RELOC_BASE10, /* Not sure - maybe we can do this the */ - RELOC_BASE13, /* right way now */ - RELOC_BASE22, - /* for some sort of pc-rel P.I.C. (?) */ - RELOC_PC10, - RELOC_PC22, - /* P.I.C. jump table */ - RELOC_JMP_TBL, - /* reputedly for shared libraries somehow */ - RELOC_SEGOFF16, - RELOC_GLOB_DAT, - RELOC_JMP_SLOT, - RELOC_RELATIVE, - - RELOC_11, - RELOC_WDISP2_14, - RELOC_WDISP19, - RELOC_HHI22, /* data[0:21] = (addend + sv) >> 42 */ - RELOC_HLO10, /* data[0:9] = (addend + sv) >> 32 */ - - /* 29K relocation types */ - RELOC_JUMPTARG, - RELOC_CONST, - RELOC_CONSTH, - - NO_RELOC - }; - - -struct reloc_internal { - bfd_vma r_address; /* offset of of data to relocate */ - long r_index; /* symbol table index of symbol */ - enum reloc_type r_type; /* relocation type */ - bfd_vma r_addend; /* datum addend */ -}; - -#endif /* __A_OUT_ADOBE_H__ */ diff --git a/include/aout/aout64.h b/include/aout/aout64.h deleted file mode 100644 index 384909e..0000000 --- a/include/aout/aout64.h +++ /dev/null @@ -1,516 +0,0 @@ -/* `a.out' object-file definitions, including extensions to 64-bit fields - - Copyright 1999, 2000, 2001, 2003, 2009, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef __A_OUT_64_H__ -#define __A_OUT_64_H__ - -#ifndef BYTES_IN_WORD -#define BYTES_IN_WORD 4 -#endif - -/* This is the layout on disk of the 32-bit or 64-bit exec header. */ - -#ifndef external_exec -struct external_exec -{ - bfd_byte e_info[4]; /* Magic number and stuff. */ - bfd_byte e_text[BYTES_IN_WORD]; /* Length of text section in bytes. */ - bfd_byte e_data[BYTES_IN_WORD]; /* Length of data section in bytes. */ - bfd_byte e_bss[BYTES_IN_WORD]; /* Length of bss area in bytes. */ - bfd_byte e_syms[BYTES_IN_WORD]; /* Length of symbol table in bytes. */ - bfd_byte e_entry[BYTES_IN_WORD]; /* Start address. */ - bfd_byte e_trsize[BYTES_IN_WORD]; /* Length of text relocation info. */ - bfd_byte e_drsize[BYTES_IN_WORD]; /* Length of data relocation info. */ -}; - -#define EXEC_BYTES_SIZE (4 + BYTES_IN_WORD * 7) - -/* Magic numbers for a.out files. */ - -#if ARCH_SIZE==64 -#define OMAGIC 0x1001 /* Code indicating object file. */ -#define ZMAGIC 0x1002 /* Code indicating demand-paged executable. */ -#define NMAGIC 0x1003 /* Code indicating pure executable. */ - -/* There is no 64-bit QMAGIC as far as I know. */ - -#define N_BADMAG(x) (N_MAGIC(x) != OMAGIC \ - && N_MAGIC(x) != NMAGIC \ - && N_MAGIC(x) != ZMAGIC) -#else -#define OMAGIC 0407 /* Object file or impure executable. */ -#define NMAGIC 0410 /* Code indicating pure executable. */ -#define ZMAGIC 0413 /* Code indicating demand-paged executable. */ -#define BMAGIC 0415 /* Used by a b.out object. */ - -/* This indicates a demand-paged executable with the header in the text. - It is used by 386BSD (and variants) and Linux, at least. */ -#ifndef QMAGIC -#define QMAGIC 0314 -#endif -# ifndef N_BADMAG -# define N_BADMAG(x) (N_MAGIC(x) != OMAGIC \ - && N_MAGIC(x) != NMAGIC \ - && N_MAGIC(x) != ZMAGIC \ - && N_MAGIC(x) != QMAGIC) -# endif /* N_BADMAG */ -#endif - -#endif - -#ifdef QMAGIC -#define N_IS_QMAGIC(x) (N_MAGIC (x) == QMAGIC) -#else -#define N_IS_QMAGIC(x) (0) -#endif - -/* The difference between TARGET_PAGE_SIZE and N_SEGSIZE is that TARGET_PAGE_SIZE is - the finest granularity at which you can page something, thus it - controls the padding (if any) before the text segment of a ZMAGIC - file. N_SEGSIZE is the resolution at which things can be marked as - read-only versus read/write, so it controls the padding between the - text segment and the data segment (in memory; on disk the padding - between them is TARGET_PAGE_SIZE). TARGET_PAGE_SIZE and N_SEGSIZE are the same - for most machines, but different for sun3. */ - -/* By default, segment size is constant. But some machines override this - to be a function of the a.out header (e.g. machine type). */ - -#ifndef N_SEGSIZE -#define N_SEGSIZE(x) SEGMENT_SIZE -#endif - -/* Virtual memory address of the text section. - This is getting very complicated. A good reason to discard a.out format - for something that specifies these fields explicitly. But til then... - - * OMAGIC and NMAGIC files: - (object files: text for "relocatable addr 0" right after the header) - start at 0, offset is EXEC_BYTES_SIZE, size as stated. - * The text address, offset, and size of ZMAGIC files depend - on the entry point of the file: - * entry point below TEXT_START_ADDR: - (hack for SunOS shared libraries) - start at 0, offset is 0, size as stated. - * If N_HEADER_IN_TEXT(x) is true (which defaults to being the - case when the entry point is EXEC_BYTES_SIZE or further into a page): - no padding is needed; text can start after exec header. Sun - considers the text segment of such files to include the exec header; - for BFD's purposes, we don't, which makes more work for us. - start at TEXT_START_ADDR + EXEC_BYTES_SIZE, offset is EXEC_BYTES_SIZE, - size as stated minus EXEC_BYTES_SIZE. - * If N_HEADER_IN_TEXT(x) is false (which defaults to being the case when - the entry point is less than EXEC_BYTES_SIZE into a page (e.g. page - aligned)): (padding is needed so that text can start at a page boundary) - start at TEXT_START_ADDR, offset TARGET_PAGE_SIZE, size as stated. - - Specific configurations may want to hardwire N_HEADER_IN_TEXT, - for efficiency or to allow people to play games with the entry point. - In that case, you would #define N_HEADER_IN_TEXT(x) as 1 for sunos, - and as 0 for most other hosts (Sony News, Vax Ultrix, etc). - (Do this in the appropriate bfd target file.) - (The default is a heuristic that will break if people try changing - the entry point, perhaps with the ld -e flag.) - - * QMAGIC is always like a ZMAGIC for which N_HEADER_IN_TEXT is true, - and for which the starting address is TARGET_PAGE_SIZE (or should this be - SEGMENT_SIZE?) (TEXT_START_ADDR only applies to ZMAGIC, not to QMAGIC). */ - -/* This macro is only relevant for ZMAGIC files; QMAGIC always has the header - in the text. */ -#ifndef N_HEADER_IN_TEXT -#define N_HEADER_IN_TEXT(x) \ - (((x).a_entry & (TARGET_PAGE_SIZE-1)) >= EXEC_BYTES_SIZE) -#endif - -/* Sun shared libraries, not linux. This macro is only relevant for ZMAGIC - files. */ -#ifndef N_SHARED_LIB -#define N_SHARED_LIB(x) (0) -#endif - -/* Returning 0 not TEXT_START_ADDR for OMAGIC and NMAGIC is based on - the assumption that we are dealing with a .o file, not an - executable. This is necessary for OMAGIC (but means we don't work - right on the output from ld -N); more questionable for NMAGIC. */ - -#ifndef N_TXTADDR -#define N_TXTADDR(x) \ - (/* The address of a QMAGIC file is always one page in, \ - with the header in the text. */ \ - N_IS_QMAGIC (x) \ - ? (bfd_vma) TARGET_PAGE_SIZE + EXEC_BYTES_SIZE \ - : (N_MAGIC (x) != ZMAGIC \ - ? (bfd_vma) 0 /* Object file or NMAGIC. */ \ - : (N_SHARED_LIB (x) \ - ? (bfd_vma) 0 \ - : (N_HEADER_IN_TEXT (x) \ - ? (bfd_vma) TEXT_START_ADDR + EXEC_BYTES_SIZE \ - : (bfd_vma) TEXT_START_ADDR)))) -#endif - -/* If N_HEADER_IN_TEXT is not true for ZMAGIC, there is some padding - to make the text segment start at a certain boundary. For most - systems, this boundary is TARGET_PAGE_SIZE. But for Linux, in the - time-honored tradition of crazy ZMAGIC hacks, it is 1024 which is - not what TARGET_PAGE_SIZE needs to be for QMAGIC. */ - -#ifndef ZMAGIC_DISK_BLOCK_SIZE -#define ZMAGIC_DISK_BLOCK_SIZE TARGET_PAGE_SIZE -#endif - -#define N_DISK_BLOCK_SIZE(x) \ - (N_MAGIC(x) == ZMAGIC ? ZMAGIC_DISK_BLOCK_SIZE : TARGET_PAGE_SIZE) - -/* Offset in an a.out of the start of the text section. */ -#ifndef N_TXTOFF -#define N_TXTOFF(x) \ - (/* For {O,N,Q}MAGIC, no padding. */ \ - N_MAGIC (x) != ZMAGIC \ - ? EXEC_BYTES_SIZE \ - : (N_SHARED_LIB (x) \ - ? 0 \ - : (N_HEADER_IN_TEXT (x) \ - ? EXEC_BYTES_SIZE /* No padding. */ \ - : ZMAGIC_DISK_BLOCK_SIZE /* A page of padding. */))) -#endif -/* Size of the text section. It's always as stated, except that we - offset it to `undo' the adjustment to N_TXTADDR and N_TXTOFF - for ZMAGIC files that nominally include the exec header - as part of the first page of text. (BFD doesn't consider the - exec header to be part of the text segment.) */ -#ifndef N_TXTSIZE -#define N_TXTSIZE(x) \ - (/* For QMAGIC, we don't consider the header part of the text section. */\ - N_IS_QMAGIC (x) \ - ? (x).a_text - EXEC_BYTES_SIZE \ - : ((N_MAGIC (x) != ZMAGIC || N_SHARED_LIB (x)) \ - ? (x).a_text \ - : (N_HEADER_IN_TEXT (x) \ - ? (x).a_text - EXEC_BYTES_SIZE /* No padding. */ \ - : (x).a_text /* A page of padding. */ ))) -#endif -/* The address of the data segment in virtual memory. - It is the text segment address, plus text segment size, rounded - up to a N_SEGSIZE boundary for pure or pageable files. */ -#ifndef N_DATADDR -#define N_DATADDR(x) \ - (N_MAGIC (x) == OMAGIC \ - ? (N_TXTADDR (x) + N_TXTSIZE (x)) \ - : (N_SEGSIZE (x) + ((N_TXTADDR (x) + N_TXTSIZE (x) - 1) \ - & ~ (bfd_vma) (N_SEGSIZE (x) - 1)))) -#endif -/* The address of the BSS segment -- immediately after the data segment. */ - -#define N_BSSADDR(x) (N_DATADDR (x) + (x).a_data) - -/* Offsets of the various portions of the file after the text segment. */ - -/* For {Q,Z}MAGIC, there is padding to make the data segment start on - a page boundary. Most of the time the a_text field (and thus - N_TXTSIZE) already contains this padding. It is possible that for - BSDI and/or 386BSD it sometimes doesn't contain the padding, and - perhaps we should be adding it here. But this seems kind of - questionable and probably should be BSDI/386BSD-specific if we do - do it. - - For NMAGIC (at least for hp300 BSD, probably others), there is - padding in memory only, not on disk, so we must *not* ever pad here - for NMAGIC. */ - -#ifndef N_DATOFF -#define N_DATOFF(x) (N_TXTOFF (x) + N_TXTSIZE (x)) -#endif -#ifndef N_TRELOFF -#define N_TRELOFF(x) (N_DATOFF (x) + (x).a_data) -#endif -#ifndef N_DRELOFF -#define N_DRELOFF(x) (N_TRELOFF (x) + (x).a_trsize) -#endif -#ifndef N_SYMOFF -#define N_SYMOFF(x) (N_DRELOFF (x) + (x).a_drsize) -#endif -#ifndef N_STROFF -#define N_STROFF(x) (N_SYMOFF (x) + (x).a_syms) -#endif - -/* Symbols */ -#ifndef external_nlist -struct external_nlist -{ - bfd_byte e_strx[BYTES_IN_WORD]; /* Index into string table of name. */ - bfd_byte e_type[1]; /* Type of symbol. */ - bfd_byte e_other[1]; /* Misc info (usually empty). */ - bfd_byte e_desc[2]; /* Description field. */ - bfd_byte e_value[BYTES_IN_WORD]; /* Value of symbol. */ -}; -#define EXTERNAL_NLIST_SIZE (BYTES_IN_WORD+4+BYTES_IN_WORD) -#endif - -struct internal_nlist -{ - unsigned long n_strx; /* Index into string table of name. */ - unsigned char n_type; /* Type of symbol. */ - unsigned char n_other; /* Misc info (usually empty). */ - unsigned short n_desc; /* Description field. */ - bfd_vma n_value; /* Value of symbol. */ -}; - -/* The n_type field is the symbol type, containing: */ - -#define N_UNDF 0 /* Undefined symbol. */ -#define N_ABS 2 /* Absolute symbol -- defined at particular addr. */ -#define N_TEXT 4 /* Text sym -- defined at offset in text seg. */ -#define N_DATA 6 /* Data sym -- defined at offset in data seg. */ -#define N_BSS 8 /* BSS sym -- defined at offset in zero'd seg. */ -#define N_COMM 0x12 /* Common symbol (visible after shared lib dynlink). */ -#define N_FN 0x1f /* File name of .o file. */ -#define N_FN_SEQ 0x0C /* N_FN from Sequent compilers (sigh). */ -/* Note: N_EXT can only be usefully OR-ed with N_UNDF, N_ABS, N_TEXT, - N_DATA, or N_BSS. When the low-order bit of other types is set, - (e.g. N_WARNING versus N_FN), they are two different types. */ -#define N_EXT 1 /* External symbol (as opposed to local-to-this-file). */ -#define N_TYPE 0x1e -#define N_STAB 0xe0 /* If any of these bits are on, it's a debug symbol. */ - -#define N_INDR 0x0a - -/* The following symbols refer to set elements. - All the N_SET[ATDB] symbols with the same name form one set. - Space is allocated for the set in the text section, and each set - elements value is stored into one word of the space. - The first word of the space is the length of the set (number of elements). - - The address of the set is made into an N_SETV symbol - whose name is the same as the name of the set. - This symbol acts like a N_DATA global symbol - in that it can satisfy undefined external references. */ - -/* These appear as input to LD, in a .o file. */ -#define N_SETA 0x14 /* Absolute set element symbol. */ -#define N_SETT 0x16 /* Text set element symbol. */ -#define N_SETD 0x18 /* Data set element symbol. */ -#define N_SETB 0x1A /* Bss set element symbol. */ - -/* This is output from LD. */ -#define N_SETV 0x1C /* Pointer to set vector in data area. */ - -/* Warning symbol. The text gives a warning message, the next symbol - in the table will be undefined. When the symbol is referenced, the - message is printed. */ - -#define N_WARNING 0x1e - -/* Weak symbols. These are a GNU extension to the a.out format. The - semantics are those of ELF weak symbols. Weak symbols are always - externally visible. The N_WEAK? values are squeezed into the - available slots. The value of a N_WEAKU symbol is 0. The values - of the other types are the definitions. */ -#define N_WEAKU 0x0d /* Weak undefined symbol. */ -#define N_WEAKA 0x0e /* Weak absolute symbol. */ -#define N_WEAKT 0x0f /* Weak text symbol. */ -#define N_WEAKD 0x10 /* Weak data symbol. */ -#define N_WEAKB 0x11 /* Weak bss symbol. */ - -/* Relocations - - There are two types of relocation flavours for a.out systems, - standard and extended. The standard form is used on systems where the - instruction has room for all the bits of an offset to the operand, whilst - the extended form is used when an address operand has to be split over n - instructions. Eg, on the 68k, each move instruction can reference - the target with a displacement of 16 or 32 bits. On the sparc, move - instructions use an offset of 14 bits, so the offset is stored in - the reloc field, and the data in the section is ignored. */ - -/* This structure describes a single relocation to be performed. - The text-relocation section of the file is a vector of these structures, - all of which apply to the text section. - Likewise, the data-relocation section applies to the data section. */ - -struct reloc_std_external -{ - bfd_byte r_address[BYTES_IN_WORD]; /* Offset of of data to relocate. */ - bfd_byte r_index[3]; /* Symbol table index of symbol. */ - bfd_byte r_type[1]; /* Relocation type. */ -}; - -#define RELOC_STD_BITS_PCREL_BIG ((unsigned int) 0x80) -#define RELOC_STD_BITS_PCREL_LITTLE ((unsigned int) 0x01) - -#define RELOC_STD_BITS_LENGTH_BIG ((unsigned int) 0x60) -#define RELOC_STD_BITS_LENGTH_SH_BIG 5 -#define RELOC_STD_BITS_LENGTH_LITTLE ((unsigned int) 0x06) -#define RELOC_STD_BITS_LENGTH_SH_LITTLE 1 - -#define RELOC_STD_BITS_EXTERN_BIG ((unsigned int) 0x10) -#define RELOC_STD_BITS_EXTERN_LITTLE ((unsigned int) 0x08) - -#define RELOC_STD_BITS_BASEREL_BIG ((unsigned int) 0x08) -#define RELOC_STD_BITS_BASEREL_LITTLE ((unsigned int) 0x10) - -#define RELOC_STD_BITS_JMPTABLE_BIG ((unsigned int) 0x04) -#define RELOC_STD_BITS_JMPTABLE_LITTLE ((unsigned int) 0x20) - -#define RELOC_STD_BITS_RELATIVE_BIG ((unsigned int) 0x02) -#define RELOC_STD_BITS_RELATIVE_LITTLE ((unsigned int) 0x40) - -#define RELOC_STD_SIZE (BYTES_IN_WORD + 3 + 1) /* Bytes per relocation entry. */ - -struct reloc_std_internal -{ - bfd_vma r_address; /* Address (within segment) to be relocated. */ - /* The meaning of r_symbolnum depends on r_extern. */ - unsigned int r_symbolnum:24; - /* Nonzero means value is a pc-relative offset - and it should be relocated for changes in its own address - as well as for changes in the symbol or section specified. */ - unsigned int r_pcrel:1; - /* Length (as exponent of 2) of the field to be relocated. - Thus, a value of 2 indicates 1<<2 bytes. */ - unsigned int r_length:2; - /* 1 => relocate with value of symbol. - r_symbolnum is the index of the symbol - in files the symbol table. - 0 => relocate with the address of a segment. - r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS - (the N_EXT bit may be set also, but signifies nothing). */ - unsigned int r_extern:1; - /* The next three bits are for SunOS shared libraries, and seem to - be undocumented. */ - unsigned int r_baserel:1; /* Linkage table relative. */ - unsigned int r_jmptable:1; /* pc-relative to jump table. */ - unsigned int r_relative:1; /* "relative relocation". */ - /* unused */ - unsigned int r_pad:1; /* Padding -- set to zero. */ -}; - - -/* EXTENDED RELOCS. */ - -struct reloc_ext_external -{ - bfd_byte r_address[BYTES_IN_WORD]; /* Offset of of data to relocate. */ - bfd_byte r_index[3]; /* Symbol table index of symbol. */ - bfd_byte r_type[1]; /* Relocation type. */ - bfd_byte r_addend[BYTES_IN_WORD]; /* Datum addend. */ -}; - -#ifndef RELOC_EXT_BITS_EXTERN_BIG -#define RELOC_EXT_BITS_EXTERN_BIG ((unsigned int) 0x80) -#endif - -#ifndef RELOC_EXT_BITS_EXTERN_LITTLE -#define RELOC_EXT_BITS_EXTERN_LITTLE ((unsigned int) 0x01) -#endif - -#ifndef RELOC_EXT_BITS_TYPE_BIG -#define RELOC_EXT_BITS_TYPE_BIG ((unsigned int) 0x1F) -#endif - -#ifndef RELOC_EXT_BITS_TYPE_SH_BIG -#define RELOC_EXT_BITS_TYPE_SH_BIG 0 -#endif - -#ifndef RELOC_EXT_BITS_TYPE_LITTLE -#define RELOC_EXT_BITS_TYPE_LITTLE ((unsigned int) 0xF8) -#endif - -#ifndef RELOC_EXT_BITS_TYPE_SH_LITTLE -#define RELOC_EXT_BITS_TYPE_SH_LITTLE 3 -#endif - -/* Bytes per relocation entry. */ -#define RELOC_EXT_SIZE (BYTES_IN_WORD + 3 + 1 + BYTES_IN_WORD) - -enum reloc_type -{ - /* Simple relocations. */ - RELOC_8, /* data[0:7] = addend + sv */ - RELOC_16, /* data[0:15] = addend + sv */ - RELOC_32, /* data[0:31] = addend + sv */ - /* PC-rel displacement. */ - RELOC_DISP8, /* data[0:7] = addend - pc + sv */ - RELOC_DISP16, /* data[0:15] = addend - pc + sv */ - RELOC_DISP32, /* data[0:31] = addend - pc + sv */ - /* Special. */ - RELOC_WDISP30, /* data[0:29] = (addend + sv - pc)>>2 */ - RELOC_WDISP22, /* data[0:21] = (addend + sv - pc)>>2 */ - RELOC_HI22, /* data[0:21] = (addend + sv)>>10 */ - RELOC_22, /* data[0:21] = (addend + sv) */ - RELOC_13, /* data[0:12] = (addend + sv) */ - RELOC_LO10, /* data[0:9] = (addend + sv) */ - RELOC_SFA_BASE, - RELOC_SFA_OFF13, - /* P.I.C. (base-relative). */ - RELOC_BASE10, /* Not sure - maybe we can do this the */ - RELOC_BASE13, /* right way now */ - RELOC_BASE22, - /* For some sort of pc-rel P.I.C. (?) */ - RELOC_PC10, - RELOC_PC22, - /* P.I.C. jump table. */ - RELOC_JMP_TBL, - /* Reputedly for shared libraries somehow. */ - RELOC_SEGOFF16, - RELOC_GLOB_DAT, - RELOC_JMP_SLOT, - RELOC_RELATIVE, - - RELOC_11, - RELOC_WDISP2_14, - RELOC_WDISP19, - RELOC_HHI22, /* data[0:21] = (addend + sv) >> 42 */ - RELOC_HLO10, /* data[0:9] = (addend + sv) >> 32 */ - - /* 29K relocation types. */ - RELOC_JUMPTARG, - RELOC_CONST, - RELOC_CONSTH, - - /* All the new ones I can think of, for sparc v9. */ - RELOC_64, /* data[0:63] = addend + sv */ - RELOC_DISP64, /* data[0:63] = addend - pc + sv */ - RELOC_WDISP21, /* data[0:20] = (addend + sv - pc)>>2 */ - RELOC_DISP21, /* data[0:20] = addend - pc + sv */ - RELOC_DISP14, /* data[0:13] = addend - pc + sv */ - /* Q . - What are the other ones, - Since this is a clean slate, can we throw away the ones we dont - understand ? Should we sort the values ? What about using a - microcode format like the 68k ? */ - NO_RELOC - }; - - -struct reloc_internal -{ - bfd_vma r_address; /* Offset of of data to relocate. */ - long r_index; /* Symbol table index of symbol. */ - enum reloc_type r_type; /* Relocation type. */ - bfd_vma r_addend; /* Datum addend. */ -}; - -/* Q. - Should the length of the string table be 4 bytes or 8 bytes ? - - Q. - What about archive indexes ? */ - -#endif /* __A_OUT_64_H__ */ diff --git a/include/aout/ar.h b/include/aout/ar.h deleted file mode 100644 index de04382..0000000 --- a/include/aout/ar.h +++ /dev/null @@ -1,55 +0,0 @@ -/* archive file definition for GNU software - - Copyright 2001, 2008, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* So far this is correct for BSDish archives. Don't forget that - files must begin on an even byte boundary. */ - -#ifndef __GNU_AR_H__ -#define __GNU_AR_H__ - -/* Note that the usual '\n' in magic strings may translate to different - characters, as allowed by ANSI. '\012' has a fixed value, and remains - compatible with existing BSDish archives. */ - -#define ARMAG "!\012" /* For COFF and a.out archives. */ -#define ARMAGB "!\012" /* For b.out archives. */ -#define ARMAGT "!\012" /* For thin archives. */ -#define SARMAG 8 -#define ARFMAG "`\012" - -/* The ar_date field of the armap (__.SYMDEF) member of an archive - must be greater than the modified date of the entire file, or - BSD-derived linkers complain. We originally write the ar_date with - this offset from the real file's mod-time. After finishing the - file, we rewrite ar_date if it's not still greater than the mod date. */ - -#define ARMAP_TIME_OFFSET 60 - -struct ar_hdr -{ - char ar_name[16]; /* Name of this member. */ - char ar_date[12]; /* File mtime. */ - char ar_uid[6]; /* Owner uid; printed as decimal. */ - char ar_gid[6]; /* Owner gid; printed as decimal. */ - char ar_mode[8]; /* File mode, printed as octal. */ - char ar_size[10]; /* File size, printed as decimal. */ - char ar_fmag[2]; /* Should contain ARFMAG. */ -}; - -#endif /* __GNU_AR_H__ */ diff --git a/include/aout/dynix3.h b/include/aout/dynix3.h deleted file mode 100644 index 808e53a..0000000 --- a/include/aout/dynix3.h +++ /dev/null @@ -1,87 +0,0 @@ -/* a.out specifics for Sequent Symmetry running Dynix 3.x - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef A_OUT_DYNIX3_H -#define A_OUT_DYNIX3_H - -#define external_exec dynix_external_exec - -/* struct exec for Dynix 3 - - a_gdtbl and a_bootstrap are only for standalone binaries. - Shared data fields are not supported by the kernel as of Dynix 3.1, - but are supported by Dynix compiler programs. */ -struct dynix_external_exec - { - unsigned char e_info[4]; - unsigned char e_text[4]; - unsigned char e_data[4]; - unsigned char e_bss[4]; - unsigned char e_syms[4]; - unsigned char e_entry[4]; - unsigned char e_trsize[4]; - unsigned char e_drsize[4]; - unsigned char e_g_code[8]; - unsigned char e_g_data[8]; - unsigned char e_g_desc[8]; - unsigned char e_shdata[4]; - unsigned char e_shbss[4]; - unsigned char e_shdrsize[4]; - unsigned char e_bootstrap[44]; - unsigned char e_reserved[12]; - unsigned char e_version[4]; - }; - -#define EXEC_BYTES_SIZE (128) - -/* All executables under Dynix are demand paged with read-only text, - Thus no NMAGIC. - - ZMAGIC has a page of 0s at virtual 0, - XMAGIC has an invalid page at virtual 0. */ -#define OMAGIC 0x12eb /* .o */ -#define ZMAGIC 0x22eb /* zero @ 0, demand load */ -#define XMAGIC 0x32eb /* invalid @ 0, demand load */ -#define SMAGIC 0x42eb /* standalone, not supported here */ - -#define N_BADMAG(x) ((OMAGIC != N_MAGIC(x)) && \ - (ZMAGIC != N_MAGIC(x)) && \ - (XMAGIC != N_MAGIC(x)) && \ - (SMAGIC != N_MAGIC(x))) - -#define N_ADDRADJ(x) ((ZMAGIC == N_MAGIC(x) || XMAGIC == N_MAGIC(x)) ? 0x1000 : 0) - -#define N_TXTOFF(x) (EXEC_BYTES_SIZE) -#define N_DATOFF(x) (N_TXTOFF(x) + N_TXTSIZE(x)) -#define N_SHDATOFF(x) (N_DATOFF(x) + (x).a_data) -#define N_TRELOFF(x) (N_SHDATOFF(x) + (x).a_shdata) -#define N_DRELOFF(x) (N_TRELOFF(x) + (x).a_trsize) -#define N_SHDRELOFF(x) (N_DRELOFF(x) + (x).a_drsize) -#define N_SYMOFF(x) (N_SHDRELOFF(x) + (x).a_shdrsize) -#define N_STROFF(x) (N_SYMOFF(x) + (x).a_syms) - -#define N_TXTADDR(x) \ - (((OMAGIC == N_MAGIC(x)) || (SMAGIC == N_MAGIC(x))) ? 0 \ - : TEXT_START_ADDR + EXEC_BYTES_SIZE) - -#define N_TXTSIZE(x) \ - (((OMAGIC == N_MAGIC(x)) || (SMAGIC == N_MAGIC(x))) ? ((x).a_text) \ - : ((x).a_text - N_ADDRADJ(x) - EXEC_BYTES_SIZE)) - -#endif /* A_OUT_DYNIX3_H */ diff --git a/include/aout/encap.h b/include/aout/encap.h deleted file mode 100644 index 7ebec69..0000000 --- a/include/aout/encap.h +++ /dev/null @@ -1,135 +0,0 @@ -/* Yet Another Try at encapsulating bfd object files in coff. - Copyright 1988, 1989, 1991, 2010 Free Software Foundation, Inc. - Written by Pace Willisson 12/9/88 - - This file is obsolete. It needs to be converted to just define a bunch - of stuff that BFD can use to do coff-encapsulated files. --gnu@cygnus.com - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* - * We only use the coff headers to tell the kernel - * how to exec the file. Therefore, the only fields that need to - * be filled in are the scnptr and vaddr for the text and data - * sections, and the vaddr for the bss. As far as coff is concerned, - * there is no symbol table, relocation, or line numbers. - * - * A normal bsd header (struct exec) is placed after the coff headers, - * and before the real text. I defined a the new fields 'a_machtype' - * and a_flags. If a_machtype is M_386, and a_flags & A_ENCAP is - * true, then the bsd header is preceeded by a coff header. Macros - * like N_TXTOFF and N_TXTADDR use this field to find the bsd header. - * - * The only problem is to track down the bsd exec header. The - * macros HEADER_OFFSET, etc do this. - */ - -#define N_FLAGS_COFF_ENCAPSULATE 0x20 /* coff header precedes bsd header */ - -/* Describe the COFF header used for encapsulation. */ - -struct coffheader -{ - /* filehdr */ - unsigned short f_magic; - unsigned short f_nscns; - long f_timdat; - long f_symptr; - long f_nsyms; - unsigned short f_opthdr; - unsigned short f_flags; - /* aouthdr */ - short magic; - short vstamp; - long tsize; - long dsize; - long bsize; - long entry; - long text_start; - long data_start; - struct coffscn - { - char s_name[8]; - long s_paddr; - long s_vaddr; - long s_size; - long s_scnptr; - long s_relptr; - long s_lnnoptr; - unsigned short s_nreloc; - unsigned short s_nlnno; - long s_flags; - } scns[3]; -}; - -/* Describe some of the parameters of the encapsulation, - including how to find the encapsulated BSD header. */ - -/* FIXME, this is dumb. The same tools can't handle a.outs for different - architectures, just because COFF_MAGIC is different; so you need a - separate GNU nm for every architecture!!? Unfortunately, it needs to - be this way, since the COFF_MAGIC value is determined by the kernel - we're trying to fool here. */ - -#define COFF_MAGIC_I386 0514 /* I386MAGIC */ -#define COFF_MAGIC_M68K 0520 /* MC68MAGIC */ - -#ifdef COFF_MAGIC -short __header_offset_temp; -#define HEADER_OFFSET(f) \ - (__header_offset_temp = 0, \ - fread ((char *)&__header_offset_temp, sizeof (short), 1, (f)), \ - fseek ((f), -sizeof (short), 1), \ - __header_offset_temp==COFF_MAGIC ? sizeof(struct coffheader) : 0) -#else -#define HEADER_OFFSET(f) 0 -#endif - -#define HEADER_SEEK(f) (fseek ((f), HEADER_OFFSET((f)), 1)) - -/* Describe the characteristics of the BSD header - that appears inside the encapsulation. */ - -/* Encapsulated coff files that are linked ZMAGIC have a text segment - offset just past the header (and a matching TXTADDR), excluding - the headers from the text segment proper but keeping the physical - layout and the virtual memory layout page-aligned. - - Non-encapsulated a.out files that are linked ZMAGIC have a text - segment that starts at 0 and an N_TXTADR similarly offset to 0. - They too are page-aligned with each other, but they include the - a.out header as part of the text. - - The _N_HDROFF gets sizeof struct exec added to it, so we have - to compensate here. See . */ - -#undef _N_HDROFF -#undef N_TXTADDR -#undef N_DATADDR - -#define _N_HDROFF(x) ((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \ - sizeof (struct coffheader) : 0) - -/* Address of text segment in memory after it is loaded. */ -#define N_TXTADDR(x) \ - ((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \ - sizeof (struct coffheader) + sizeof (struct exec) : 0) -#define SEGMENT_SIZE 0x400000 - -#define N_DATADDR(x) \ - ((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \ - (SEGMENT_SIZE + ((N_TXTADDR(x)+(x).a_text-1) & ~(SEGMENT_SIZE-1))) : \ - (N_TXTADDR(x)+(x).a_text)) diff --git a/include/aout/host.h b/include/aout/host.h deleted file mode 100644 index 4260cc5..0000000 --- a/include/aout/host.h +++ /dev/null @@ -1,43 +0,0 @@ -/* host.h - Parameters about the a.out format, based on the host system - on which the program is compiled. - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* Address of data segment in memory after it is loaded. - It is up to you to define SEGMENT_SIZE on machines not listed here. */ -#ifndef SEGMENT_SIZE - -#if defined(hp300) || defined(pyr) -#define SEGMENT_SIZE page_size -#endif - -#ifdef sony -#define SEGMENT_SIZE 0x1000 -#endif /* Sony. */ - -#ifdef is68k -#define SEGMENT_SIZE 0x20000 -#endif - -#if defined(m68k) && defined(PORTAR) -#define TARGET_PAGE_SIZE 0x400 -#define SEGMENT_SIZE TARGET_PAGE_SIZE -#endif - -#endif /*!defined(SEGMENT_SIZE)*/ - diff --git a/include/aout/hp.h b/include/aout/hp.h deleted file mode 100644 index b60741a..0000000 --- a/include/aout/hp.h +++ /dev/null @@ -1,83 +0,0 @@ -/* Special version of for use under HP-UX. - Copyright 1988, 1991, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* THIS FILE IS OBSOLETE. It needs to be revised as a variant "external" - a.out format for use with BFD. */ - -/* The `exec' structure and overall layout must be close to HP's when - we are running on an HP system, otherwise we will not be able to - execute the resulting file. */ - -/* Allow this file to be included twice. */ -#ifndef __GNU_EXEC_MACROS__ - -struct exec -{ - unsigned short a_machtype; /* machine type */ - unsigned short a_magic; /* magic number */ - unsigned long a_spare1; - unsigned long a_spare2; - unsigned long a_text; /* length of text, in bytes */ - unsigned long a_data; /* length of data, in bytes */ - unsigned long a_bss; /* length of uninitialized data area for file, in bytes */ - unsigned long a_trsize; /* length of relocation info for text, in bytes */ - unsigned long a_drsize; /* length of relocation info for data, in bytes */ - unsigned long a_spare3; /* HP = pascal interface size */ - unsigned long a_spare4; /* HP = symbol table size */ - unsigned long a_spare5; /* HP = debug name table size */ - unsigned long a_entry; /* start address */ - unsigned long a_spare6; /* HP = source line table size */ - unsigned long a_spare7; /* HP = value table size */ - unsigned long a_syms; /* length of symbol table data in file, in bytes */ - unsigned long a_spare8; -}; - -/* Tell a.out.gnu.h not to define `struct exec'. */ -#define __STRUCT_EXEC_OVERRIDE__ - -#include "../a.out.gnu.h" - -#undef N_MAGIC -#undef N_MACHTYPE -#undef N_FLAGS -#undef N_SET_INFO -#undef N_SET_MAGIC -#undef N_SET_MACHTYPE -#undef N_SET_FLAGS - -#define N_MAGIC(exec) ((exec) . a_magic) -#define N_MACHTYPE(exec) ((exec) . a_machtype) -#define N_SET_MAGIC(exec, magic) (((exec) . a_magic) = (magic)) -#define N_SET_MACHTYPE(exec, machtype) (((exec) . a_machtype) = (machtype)) - -#undef N_BADMAG -#define N_BADMAG(x) ((_N_BADMAG (x)) || (_N_BADMACH (x))) - -#define _N_BADMACH(x) \ -(((N_MACHTYPE (x)) != HP9000S200_ID) && \ - ((N_MACHTYPE (x)) != HP98x6_ID)) - -#define HP98x6_ID 0x20A -#define HP9000S200_ID 0x20C - -#undef _N_HDROFF -#define _N_HDROFF(x) (SEGMENT_SIZE - (sizeof (struct exec))) - -#define SEGMENT_SIZE 0x1000 - -#endif /* __GNU_EXEC_MACROS__ */ diff --git a/include/aout/hp300hpux.h b/include/aout/hp300hpux.h deleted file mode 100644 index 97a3eb5..0000000 --- a/include/aout/hp300hpux.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Special version of for use under HP-UX. - Copyright 1988, 1993, 1995, 2001, 2009, 2010 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -struct hp300hpux_exec_bytes -{ - unsigned char e_info[4]; /* a_machtype/a_magic */ - unsigned char e_spare1[4]; - unsigned char e_spare2[4]; - unsigned char e_text[4]; /* length of text, in bytes */ - unsigned char e_data[4]; /* length of data, in bytes */ - unsigned char e_bss[4]; /* length of uninitialized data area , in bytes */ - unsigned char e_trsize[4]; /* length of relocation info for text, in bytes*/ - unsigned char e_drsize[4]; /* length of relocation info for data, in bytes*/ - unsigned char e_passize[4];/* HP = pascal interface size */ - unsigned char e_syms[4]; /* HP = symbol table size */ - unsigned char e_spare5[4]; /* HP = debug name table size */ - unsigned char e_entry[4]; /* start address */ - unsigned char e_spare6[4]; /* HP = source line table size */ - unsigned char e_supsize[4];/* HP = value table size */ - unsigned char e_drelocs[4]; - unsigned char e_extension[4]; /* file offset of extension */ -}; -#define EXEC_BYTES_SIZE 64 - -struct hp300hpux_nlist_bytes - { - unsigned char e_value[4]; - unsigned char e_type[1]; - unsigned char e_length[1]; /* length of ascii symbol name */ - unsigned char e_almod[2]; /* alignment mod */ - unsigned char e_shlib[2]; /* info about dynamic linking */ - }; -#define EXTERNAL_NLIST_SIZE 10 - -struct hp300hpux_reloc - { - unsigned char r_address[4];/* offset of of data to relocate */ - unsigned char r_index[2]; /* symbol table index of symbol */ - unsigned char r_type[1]; /* relocation type */ - unsigned char r_length[1]; /* length of item to reloc */ - }; - -struct hp300hpux_header_extension -{ - unsigned char e_syms[4]; - unsigned char unique_headers[12*4]; - unsigned char e_header[2]; /* type of header */ - unsigned char e_version[2]; /* version */ - unsigned char e_size[4]; /* bytes following*/ - unsigned char e_extension[4];/* file offset of next extension */ -}; -#define EXTERNAL_EXTENSION_HEADER_SIZE (16*4) - -/* hpux separates object files (0x106) and impure executables (0x107) */ -/* but the bfd code does not distinguish between them. Since we want to*/ -/* read hpux .o files, we add an special define and use it below in */ -/* offset and address calculations. */ - -#define HPUX_DOT_O_MAGIC 0x106 -#define OMAGIC 0x107 /* object file or impure executable. */ -#define NMAGIC 0x108 /* Code indicating pure executable. */ -#define ZMAGIC 0x10B /* demand-paged executable. */ - -#define N_HEADER_IN_TEXT(x) 0 - -#if 0 /* libaout.h only uses the lower 8 bits */ -#define HP98x6_ID 0x20A -#define HP9000S200_ID 0x20C -#endif -#define HP98x6_ID 0x0A -#define HP9000S200_ID 0x0C - -#define N_BADMAG(x) ((_N_BADMAG (x)) || (_N_BADMACH (x))) - -#define N_DATADDR(x) \ - ((N_MAGIC (x) == OMAGIC || N_MAGIC (x) == HPUX_DOT_O_MAGIC) \ - ? (N_TXTADDR (x) + N_TXTSIZE (x)) \ - : (N_SEGSIZE (x) + ((N_TXTADDR (x) + N_TXTSIZE (x) - 1) \ - & ~ (bfd_vma) (N_SEGSIZE (x) - 1)))) - -#define _N_BADMACH(x) \ - (((N_MACHTYPE (x)) != HP9000S200_ID) && ((N_MACHTYPE (x)) != HP98x6_ID)) - -#define _N_BADMAG(x) (N_MAGIC(x) != HPUX_DOT_O_MAGIC \ - && N_MAGIC(x) != OMAGIC \ - && N_MAGIC(x) != NMAGIC \ - && N_MAGIC(x) != ZMAGIC ) - -#undef _N_HDROFF -#define _N_HDROFF(x) (SEGMENT_SIZE - (sizeof (struct exec))) - -#undef N_DATOFF -#undef N_PASOFF -#undef N_SYMOFF -#undef N_SUPOFF -#undef N_TRELOFF -#undef N_DRELOFF -#undef N_STROFF - -#define N_DATOFF(x) ( N_TXTOFF(x) + N_TXTSIZE(x) ) -#define N_PASOFF(x) ( N_DATOFF(x) + (x).a_data) -#define N_SYMOFF(x) ( N_PASOFF(x) /* + (x).a_passize*/ ) -#define N_SUPOFF(x) ( N_SYMOFF(x) + (x).a_syms ) -#define N_TRELOFF(x) ( N_SUPOFF(x) /* + 0 (x).a_supsize*/ ) -#define N_DRELOFF(x) ( N_TRELOFF(x) + (x).a_trsize ) -#define N_EXTHOFF(x) ( N_DRELOFF(x) /* + 0 (x).a_drsize */) -#define N_STROFF(x) ( 0 /* no string table */ ) - -/* use these when the file has gnu symbol tables */ -#define N_GNU_TRELOFF(x) (N_DATOFF(x) + (x).a_data) -#define N_GNU_DRELOFF(x) (N_GNU_TRELOFF(x) + (x).a_trsize) -#define N_GNU_SYMOFF(x) (N_GNU_DRELOFF(x) + (x).a_drsize) - -#define TARGET_PAGE_SIZE 0x1000 -#define SEGMENT_SIZE 0x1000 -#define TEXT_START_ADDR 0 diff --git a/include/aout/hppa.h b/include/aout/hppa.h deleted file mode 100644 index 24698bb..0000000 --- a/include/aout/hppa.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2012 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "filehdr.h" -#include "aouthdr.h" -#include "scnhdr.h" -#include "spacehdr.h" -#include "syms.h" diff --git a/include/aout/ranlib.h b/include/aout/ranlib.h deleted file mode 100644 index 92bec46..0000000 --- a/include/aout/ranlib.h +++ /dev/null @@ -1,63 +0,0 @@ -/* ranlib.h -- archive library index member definition for GNU. - Copyright 1990, 1991, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* The Symdef member of an archive contains two things: - a table that maps symbol-string offsets to file offsets, - and a symbol-string table. All the symbol names are - run together (each with trailing null) in the symbol-string - table. There is a single longword bytecount on the front - of each of these tables. Thus if we have two symbols, - "foo" and "_bar", that are in archive members at offsets - 200 and 900, it would look like this: - 16 ; byte count of index table - 0 ; offset of "foo" in string table - 200 ; offset of foo-module in file - 4 ; offset of "bar" in string table - 900 ; offset of bar-module in file - 9 ; byte count of string table - "foo\0_bar\0" ; string table */ - -#define RANLIBMAG "__.SYMDEF" /* Archive file name containing index */ -#define RANLIBSKEW 3 /* Creation time offset */ - -/* Format of __.SYMDEF: - First, a longword containing the size of the 'symdef' data that follows. - Second, zero or more 'symdef' structures. - Third, a longword containing the length of symbol name strings. - Fourth, zero or more symbol name strings (each followed by a null). */ - -struct symdef - { - union - { - unsigned long string_offset; /* In the file */ - char *name; /* In memory, sometimes */ - } s; - /* this points to the front of the file header (AKA member header -- - a struct ar_hdr), not to the front of the file or into the file). - in other words it only tells you which file to read */ - unsigned long file_offset; - }; - -/* Compatability with BSD code */ - -#define ranlib symdef -#define ran_un s -#define ran_strx string_offset -#define ran_name name -#define ran_off file_offset diff --git a/include/aout/reloc.h b/include/aout/reloc.h deleted file mode 100644 index 6f1bc52..0000000 --- a/include/aout/reloc.h +++ /dev/null @@ -1,67 +0,0 @@ -/* reloc.h -- Header file for relocation information. - Copyright 1989, 1990, 1991, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* Relocation types for a.out files using reloc_info_extended - (SPARC and AMD 29000). */ - -#ifndef _RELOC_H_READ_ -#define _RELOC_H_READ_ 1 - -enum reloc_type - { - RELOC_8, RELOC_16, RELOC_32, /* simple relocations */ - RELOC_DISP8, RELOC_DISP16, RELOC_DISP32, /* pc-rel displacement */ - RELOC_WDISP30, RELOC_WDISP22, - RELOC_HI22, RELOC_22, - RELOC_13, RELOC_LO10, - RELOC_SFA_BASE, RELOC_SFA_OFF13, - RELOC_BASE10, RELOC_BASE13, RELOC_BASE22, /* P.I.C. (base-relative) */ - RELOC_PC10, RELOC_PC22, /* for some sort of pc-rel P.I.C. (?) */ - RELOC_JMP_TBL, /* P.I.C. jump table */ - RELOC_SEGOFF16, /* reputedly for shared libraries somehow */ - RELOC_GLOB_DAT, RELOC_JMP_SLOT, RELOC_RELATIVE, - RELOC_11, - RELOC_WDISP2_14, - RELOC_WDISP19, - RELOC_HHI22, - RELOC_HLO10, - - /* 29K relocation types */ - RELOC_JUMPTARG, RELOC_CONST, RELOC_CONSTH, - - RELOC_WDISP14, RELOC_WDISP21, - - NO_RELOC - }; - -#define RELOC_TYPE_NAMES \ -"8", "16", "32", "DISP8", \ -"DISP16", "DISP32", "WDISP30", "WDISP22", \ -"HI22", "22", "13", "LO10", \ -"SFA_BASE", "SFAOFF13", "BASE10", "BASE13", \ -"BASE22", "PC10", "PC22", "JMP_TBL", \ -"SEGOFF16", "GLOB_DAT", "JMP_SLOT", "RELATIVE", \ -"11", "WDISP2_14", "WDISP19", "HHI22", \ -"HLO10", \ -"JUMPTARG", "CONST", "CONSTH", "WDISP14", \ -"WDISP21", \ -"NO_RELOC" - -#endif /* _RELOC_H_READ_ */ - -/* end of reloc.h */ diff --git a/include/aout/stab.def b/include/aout/stab.def deleted file mode 100644 index ad1c62e..0000000 --- a/include/aout/stab.def +++ /dev/null @@ -1,283 +0,0 @@ -/* Table of DBX symbol codes for the GNU system. - Copyright 1988, 1991, 1992, 1993, 1994, 1996, 1998, 2004, 2010 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 3 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* New stab from Solaris 2. This uses an n_type of 0, which in a.out files - overlaps the N_UNDF used for ordinary symbols. In ELF files, the - debug information is in a different file section, so there is no conflict. - This symbol's n_value gives the size of the string section associated - with this file. The symbol's n_strx (relative to the just-updated - string section start address) gives the name of the source file, - e.g. "foo.c", without any path information. The symbol's n_desc gives - the count of upcoming symbols associated with this file (not including - this one). */ -/* __define_stab (N_UNDF, 0x00, "UNDF") */ - -/* Global variable. Only the name is significant. - To find the address, look in the corresponding external symbol. */ -__define_stab (N_GSYM, 0x20, "GSYM") - -/* Function name for BSD Fortran. Only the name is significant. - To find the address, look in the corresponding external symbol. */ -__define_stab (N_FNAME, 0x22, "FNAME") - -/* Function name or text-segment variable for C. Value is its address. - Desc is supposedly starting line number, but GCC doesn't set it - and DBX seems not to miss it. */ -__define_stab (N_FUN, 0x24, "FUN") - -/* Data-segment variable with internal linkage. Value is its address. - "Static Sym". */ -__define_stab (N_STSYM, 0x26, "STSYM") - -/* BSS-segment variable with internal linkage. Value is its address. */ -__define_stab (N_LCSYM, 0x28, "LCSYM") - -/* Name of main routine. Only the name is significant. */ -__define_stab (N_MAIN, 0x2a, "MAIN") - -/* Solaris2: Read-only data symbols. */ -__define_stab (N_ROSYM, 0x2c, "ROSYM") - -/* MacOS X: - The beginning of a relocatable function block - including stabs. */ -__define_stab (N_BNSYM, 0x2e, "BNSYM") - -/* Global symbol in Pascal. - Supposedly the value is its line number; I'm skeptical. */ -__define_stab (N_PC, 0x30, "PC") - -/* Number of symbols: 0, files,,funcs,lines according to Ultrix V4.0. */ -__define_stab (N_NSYMS, 0x32, "NSYMS") - -/* "No DST map for sym: name, ,0,type,ignored" according to Ultrix V4.0. */ -__define_stab (N_NOMAP, 0x34, "NOMAP") - -/* New stab from Solaris 2. Like N_SO, but for the object file. Two in - a row provide the build directory and the relative path of the .o from it. - Solaris2 uses this to avoid putting the stabs info into the linked - executable; this stab goes into the ".stab.index" section, and the debugger - reads the real stabs directly from the .o files instead. */ -__define_stab (N_OBJ, 0x38, "OBJ") - -/* New stab from Solaris 2. Options for the debugger, related to the - source language for this module. E.g. whether to use ANSI - integral promotions or traditional integral promotions. */ -__define_stab (N_OPT, 0x3c, "OPT") - -/* Register variable. Value is number of register. */ -__define_stab (N_RSYM, 0x40, "RSYM") - -/* Modula-2 compilation unit. Can someone say what info it contains? */ -__define_stab (N_M2C, 0x42, "M2C") - -/* Line number in text segment. Desc is the line number; - value is corresponding address. On Solaris2, the line number is - relative to the start of the current function. */ -__define_stab (N_SLINE, 0x44, "SLINE") - -/* Similar, for data segment. */ -__define_stab (N_DSLINE, 0x46, "DSLINE") - -/* Similar, for bss segment. */ -__define_stab (N_BSLINE, 0x48, "BSLINE") - -/* Sun's source-code browser stabs. ?? Don't know what the fields are. - Supposedly the field is "path to associated .cb file". THIS VALUE - OVERLAPS WITH N_BSLINE! */ -__define_stab_duplicate (N_BROWS, 0x48, "BROWS") - -/* GNU Modula-2 definition module dependency. Value is the modification time - of the definition file. Other is non-zero if it is imported with the - GNU M2 keyword %INITIALIZE. Perhaps N_M2C can be used if there - are enough empty fields? */ -__define_stab(N_DEFD, 0x4a, "DEFD") - -/* New in Solaris2. Function start/body/end line numbers. */ -__define_stab(N_FLINE, 0x4C, "FLINE") - -/* MacOS X: This tells the end of a relocatable function + debugging info. */ -__define_stab(N_ENSYM, 0x4E, "ENSYM") - -/* THE FOLLOWING TWO STAB VALUES CONFLICT. Happily, one is for Modula-2 - and one is for C++. Still,... */ -/* GNU C++ exception variable. Name is variable name. */ -__define_stab (N_EHDECL, 0x50, "EHDECL") -/* Modula2 info "for imc": name,,0,0,0 according to Ultrix V4.0. */ -__define_stab_duplicate (N_MOD2, 0x50, "MOD2") - -/* GNU C++ `catch' clause. Value is its address. Desc is nonzero if - this entry is immediately followed by a CAUGHT stab saying what exception - was caught. Multiple CAUGHT stabs means that multiple exceptions - can be caught here. If Desc is 0, it means all exceptions are caught - here. */ -__define_stab (N_CATCH, 0x54, "CATCH") - -/* Structure or union element. Value is offset in the structure. */ -__define_stab (N_SSYM, 0x60, "SSYM") - -/* Solaris2: Last stab emitted for module. */ -__define_stab (N_ENDM, 0x62, "ENDM") - -/* Name of main source file. - Value is starting text address of the compilation. - If multiple N_SO's appear, the first to contain a trailing / is the - compilation directory. The first to not contain a trailing / is the - source file name, relative to the compilation directory. Others (perhaps - resulting from cfront) are ignored. - On Solaris2, value is undefined, but desc is a source-language code. */ - -__define_stab (N_SO, 0x64, "SO") - -/* Apple: This is the stab that associated the .o file with the - N_SO stab, in the case where debug info is mostly stored in the .o file. */ -__define_stab (N_OSO, 0x66, "OSO") - -/* SunPro F77: Name of alias. */ -__define_stab (N_ALIAS, 0x6c, "ALIAS") - -/* Automatic variable in the stack. Value is offset from frame pointer. - Also used for type descriptions. */ -__define_stab (N_LSYM, 0x80, "LSYM") - -/* Beginning of an include file. Only Sun uses this. - In an object file, only the name is significant. - The Sun linker puts data into some of the other fields. */ -__define_stab (N_BINCL, 0x82, "BINCL") - -/* Name of sub-source file (#include file). - Value is starting text address of the compilation. */ -__define_stab (N_SOL, 0x84, "SOL") - -/* Parameter variable. Value is offset from argument pointer. - (On most machines the argument pointer is the same as the frame pointer. */ -__define_stab (N_PSYM, 0xa0, "PSYM") - -/* End of an include file. No name. - This and N_BINCL act as brackets around the file's output. - In an object file, there is no significant data in this entry. - The Sun linker puts data into some of the fields. */ -__define_stab (N_EINCL, 0xa2, "EINCL") - -/* Alternate entry point. Value is its address. */ -__define_stab (N_ENTRY, 0xa4, "ENTRY") - -/* Beginning of lexical block. - The desc is the nesting level in lexical blocks. - The value is the address of the start of the text for the block. - The variables declared inside the block *precede* the N_LBRAC symbol. - On Solaris2, the value is relative to the start of the current function. */ -__define_stab (N_LBRAC, 0xc0, "LBRAC") - -/* Place holder for deleted include file. Replaces a N_BINCL and everything - up to the corresponding N_EINCL. The Sun linker generates these when - it finds multiple identical copies of the symbols from an include file. - This appears only in output from the Sun linker. */ -__define_stab (N_EXCL, 0xc2, "EXCL") - -/* Modula-2 scope information. Can someone say what info it contains? */ -__define_stab (N_SCOPE, 0xc4, "SCOPE") - -/* Solaris2: Patch Run Time Checker. */ -__define_stab (N_PATCH, 0xd0, "PATCH") - -/* End of a lexical block. Desc matches the N_LBRAC's desc. - The value is the address of the end of the text for the block. - On Solaris2, the value is relative to the start of the current function. */ -__define_stab (N_RBRAC, 0xe0, "RBRAC") - -/* Begin named common block. Only the name is significant. */ -__define_stab (N_BCOMM, 0xe2, "BCOMM") - -/* End named common block. Only the name is significant - (and it should match the N_BCOMM). */ -__define_stab (N_ECOMM, 0xe4, "ECOMM") - -/* Member of a common block; value is offset within the common block. - This should occur within a BCOMM/ECOMM pair. */ -__define_stab (N_ECOML, 0xe8, "ECOML") - -/* Solaris2: Pascal "with" statement: type,,0,0,offset */ -__define_stab (N_WITH, 0xea, "WITH") - -/* These STAB's are used on Gould systems for Non-Base register symbols - or something like that. FIXME. I have assigned the values at random - since I don't have a Gould here. Fixups from Gould folk welcome... */ -__define_stab (N_NBTEXT, 0xF0, "NBTEXT") -__define_stab (N_NBDATA, 0xF2, "NBDATA") -__define_stab (N_NBBSS, 0xF4, "NBBSS") -__define_stab (N_NBSTS, 0xF6, "NBSTS") -__define_stab (N_NBLCS, 0xF8, "NBLCS") - -/* Second symbol entry containing a length-value for the preceding entry. - The value is the length. */ -__define_stab (N_LENG, 0xfe, "LENG") - -/* The above information, in matrix format. - - STAB MATRIX - _________________________________________________ - | 00 - 1F are not dbx stab symbols | - | In most cases, the low bit is the EXTernal bit| - - | 00 UNDEF | 02 ABS | 04 TEXT | 06 DATA | - | 01 |EXT | 03 |EXT | 05 |EXT | 07 |EXT | - - | 08 BSS | 0A INDR | 0C FN_SEQ | 0E WEAKA | - | 09 |EXT | 0B | 0D WEAKU | 0F WEAKT | - - | 10 WEAKD | 12 COMM | 14 SETA | 16 SETT | - | 11 WEAKB | 13 | 15 | 17 | - - | 18 SETD | 1A SETB | 1C SETV | 1E WARNING| - | 19 | 1B | 1D | 1F FN | - - |_______________________________________________| - | Debug entries with bit 01 set are unused. | - | 20 GSYM | 22 FNAME | 24 FUN | 26 STSYM | - | 28 LCSYM | 2A MAIN | 2C ROSYM | 2E | - | 30 PC | 32 NSYMS | 34 NOMAP | 36 | - | 38 OBJ | 3A | 3C OPT | 3E | - | 40 RSYM | 42 M2C | 44 SLINE | 46 DSLINE | - | 48 BSLINE*| 4A DEFD | 4C FLINE | 4E | - | 50 EHDECL*| 52 | 54 CATCH | 56 | - | 58 | 5A | 5C | 5E | - | 60 SSYM | 62 ENDM | 64 SO | 66 | - | 68 | 6A | 6C ALIAS | 6E | - | 70 | 72 | 74 | 76 | - | 78 | 7A | 7C | 7E | - | 80 LSYM | 82 BINCL | 84 SOL | 86 | - | 88 | 8A | 8C | 8E | - | 90 | 92 | 94 | 96 | - | 98 | 9A | 9C | 9E | - | A0 PSYM | A2 EINCL | A4 ENTRY | A6 | - | A8 | AA | AC | AE | - | B0 | B2 | B4 | B6 | - | B8 | BA | BC | BE | - | C0 LBRAC | C2 EXCL | C4 SCOPE | C6 | - | C8 | CA | CC | CE | - | D0 PATCH | D2 | D4 | D6 | - | D8 | DA | DC | DE | - | E0 RBRAC | E2 BCOMM | E4 ECOMM | E6 | - | E8 ECOML | EA WITH | EC | EE | - | F0 | F2 | F4 | F6 | - | F8 | FA | FC | FE LENG | - +-----------------------------------------------+ - * 50 EHDECL is also MOD2. - * 48 BSLINE is also BROWS. - */ diff --git a/include/aout/stab_gnu.h b/include/aout/stab_gnu.h deleted file mode 100644 index 60b5272..0000000 --- a/include/aout/stab_gnu.h +++ /dev/null @@ -1,55 +0,0 @@ -/* gnu_stab.h Definitions for GNU extensions to STABS - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ -#ifndef __GNU_STAB__ - -/* Indicate the GNU stab.h is in use. */ - -#define __GNU_STAB__ - -#define __define_stab(NAME, CODE, STRING) NAME=CODE, -#define __define_stab_duplicate(NAME, CODE, STRING) NAME=CODE, - -enum __stab_debug_code -{ -#include "aout/stab.def" -LAST_UNUSED_STAB_CODE -}; - -#undef __define_stab - -/* Definitions of "desc" field for N_SO stabs in Solaris2. */ - -#define N_SO_AS 1 -#define N_SO_C 2 -#define N_SO_ANSI_C 3 -#define N_SO_CC 4 /* C++ */ -#define N_SO_FORTRAN 5 -#define N_SO_PASCAL 6 - -/* Solaris2: Floating point type values in basic types. */ - -#define NF_NONE 0 -#define NF_SINGLE 1 /* IEEE 32-bit */ -#define NF_DOUBLE 2 /* IEEE 64-bit */ -#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 (whatever that is) */ - -#endif /* __GNU_STAB_ */ diff --git a/include/aout/sun4.h b/include/aout/sun4.h deleted file mode 100644 index 06f7584..0000000 --- a/include/aout/sun4.h +++ /dev/null @@ -1,239 +0,0 @@ -/* SPARC-specific values for a.out files - - Copyright 2001, 2009, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* Some systems, e.g., AIX, may have defined this in header files already - included. */ -#undef TARGET_PAGE_SIZE -#define TARGET_PAGE_SIZE 0x2000 /* 8K. aka NBPG in */ -/* Note that some SPARCs have 4K pages, some 8K, some others. */ - -#define SEG_SIZE_SPARC TARGET_PAGE_SIZE -#define SEG_SIZE_SUN3 0x20000 /* Resolution of r/w protection hw */ - -#define TEXT_START_ADDR TARGET_PAGE_SIZE /* Location 0 is not accessible */ -#define N_HEADER_IN_TEXT(x) 1 - -/* Non-default definitions of the accessor macros... */ - -/* Segment size varies on Sun-3 versus Sun-4. */ - -#define N_SEGSIZE(x) (N_MACHTYPE(x) == M_SPARC? SEG_SIZE_SPARC: \ - N_MACHTYPE(x) == M_68020? SEG_SIZE_SUN3: \ - /* Guess? */ TARGET_PAGE_SIZE) - -/* Virtual Address of text segment from the a.out file. For OMAGIC, - (almost always "unlinked .o's" these days), should be zero. - Sun added a kludge so that shared libraries linked ZMAGIC get - an address of zero if a_entry (!!!) is lower than the otherwise - expected text address. These kludges have gotta go! - For linked files, should reflect reality if we know it. */ - -#define N_SHARED_LIB(x) ((x).a_entry < TEXT_START_ADDR \ - && (x).a_text >= EXEC_BYTES_SIZE) - -/* This differs from the version in aout64.h (which we override by defining - it here) only for NMAGIC (we return TEXT_START_ADDR+EXEC_BYTES_SIZE; - they return 0). */ - -#define N_TXTADDR(x) \ - (N_MAGIC(x)==OMAGIC? 0 \ - : (N_MAGIC(x) == ZMAGIC && (x).a_entry < TEXT_START_ADDR)? 0 \ - : TEXT_START_ADDR+EXEC_BYTES_SIZE) - -/* When a file is linked against a shared library on SunOS 4, the - dynamic bit in the exec header is set, and the first symbol in the - symbol table is __DYNAMIC. Its value is the address of the - following structure. */ - -struct external_sun4_dynamic -{ - /* The version number of the structure. SunOS 4.1.x creates files - with version number 3, which is what this structure is based on. - According to gdb, version 2 is similar. I believe that version 2 - used a different type of procedure linkage table, and there may - have been other differences. */ - bfd_byte ld_version[4]; - /* The virtual address of a 28 byte structure used in debugging. - The contents are filled in at run time by ld.so. */ - bfd_byte ldd[4]; - /* The virtual address of another structure with information about - how to relocate the executable at run time. */ - bfd_byte ld[4]; -}; - -/* The size of the debugging structure pointed to by the debugger - field of __DYNAMIC. */ -#define EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE (24) - -/* The structure pointed to by the linker field of __DYNAMIC. As far - as I can tell, most of the addresses in this structure are offsets - within the file, but some are actually virtual addresses. */ - -struct internal_sun4_dynamic_link -{ - /* Linked list of loaded objects. This is filled in at runtime by - ld.so and probably by dlopen. */ - unsigned long ld_loaded; - - /* The address of the list of names of shared objects which must be - included at runtime. Each entry in the list is 16 bytes: the 4 - byte address of the string naming the object (e.g., for -lc this - is "c"); 4 bytes of flags--the high bit is whether to search for - the object using the library path; the 2 byte major version - number; the 2 byte minor version number; the 4 byte address of - the next entry in the list (zero if this is the last entry). The - version numbers seem to only be non-zero when doing library - searching. */ - unsigned long ld_need; - - /* The address of the path to search for the shared objects which - must be included. This points to a string in PATH format which - is generated from the -L arguments to the linker. According to - the man page, ld.so implicitly adds ${LD_LIBRARY_PATH} to the - beginning of this string and /lib:/usr/lib:/usr/local/lib to the - end. The string is terminated by a null byte. This field is - zero if there is no additional path. */ - unsigned long ld_rules; - - /* The address of the global offset table. This appears to be a - virtual address, not a file offset. The first entry in the - global offset table seems to be the virtual address of the - sun4_dynamic structure (the same value as the __DYNAMIC symbol). - The global offset table is used for PIC code to hold the - addresses of variables. A dynamically linked file which does not - itself contain PIC code has a four byte global offset table. */ - unsigned long ld_got; - - /* The address of the procedure linkage table. This appears to be a - virtual address, not a file offset. - - On a SPARC, the table is composed of 12 byte entries, each of - which consists of three instructions. The first entry is - sethi %hi(0),%g1 - jmp %g1 - nop - These instructions are changed by ld.so into a jump directly into - ld.so itself. Each subsequent entry is - save %sp, -96, %sp - call
- - The reloc_number is the number of the reloc to use to resolve - this entry. The reloc will be a JMP_SLOT reloc against some - symbol that is not defined in this object file but should be - defined in a shared object (if it is not, ld.so will report a - runtime error and exit). The constant 0x010000000 turns the - reloc number into a sethi of %g0, which does nothing since %g0 is - hardwired to zero. - - When one of these entries is executed, it winds up calling into - ld.so. ld.so looks at the reloc number, available via the return - address, to determine which entry this is. It then looks at the - reloc and patches up the entry in the table into a sethi and jmp - to the real address followed by a nop. This means that the reloc - lookup only has to happen once, and it also means that the - relocation only needs to be done if the function is actually - called. The relocation is expensive because ld.so must look up - the symbol by name. - - The size of the procedure linkage table is given by the ld_plt_sz - field. */ - unsigned long ld_plt; - - /* The address of the relocs. These are in the same format as - ordinary relocs. Symbol index numbers refer to the symbols - pointed to by ld_stab. I think the only way to determine the - number of relocs is to assume that all the bytes from ld_rel to - ld_hash contain reloc entries. */ - unsigned long ld_rel; - - /* The address of a hash table of symbols. The hash table has - roughly the same number of entries as there are dynamic symbols; - I think the only way to get the exact size is to assume that - every byte from ld_hash to ld_stab is devoted to the hash table. - - Each entry in the hash table is eight bytes. The first four - bytes are a symbol index into the dynamic symbols. The second - four bytes are the index of the next hash table entry in the - bucket. The ld_buckets field gives the number of buckets, say B. - The first B entries in the hash table each start a bucket which - is chained through the second four bytes of each entry. A value - of zero ends the chain. - - The hash function is simply - h = 0; - while (*string != '\0') - h = (h << 1) + *string++; - h &= 0x7fffffff; - - To look up a symbol, compute the hash value of the name. Take - the modulos of hash value and the number of buckets. Start at - that entry in the hash table. See if the symbol (from the first - four bytes of the hash table entry) has the name you are looking - for. If not, use the chain field (the second four bytes of the - hash table entry) to move on to the next entry in this bucket. - If the chain field is zero you have reached the end of the - bucket, and the symbol is not in the hash table. */ - unsigned long ld_hash; - - /* The address of the symbol table. This is a list of - external_nlist structures. The string indices are relative to - the ld_symbols field. I think the only way to determine the - number of symbols is to assume that all the bytes between ld_stab - and ld_symbols are external_nlist structures. */ - unsigned long ld_stab; - - /* I don't know what this is for. It seems to always be zero. */ - unsigned long ld_stab_hash; - - /* The number of buckets in the hash table. */ - unsigned long ld_buckets; - - /* The address of the symbol string table. The first string in this - string table need not be the empty string. */ - unsigned long ld_symbols; - - /* The size in bytes of the symbol string table. */ - unsigned long ld_symb_size; - - /* The size in bytes of the text segment. */ - unsigned long ld_text; - - /* The size in bytes of the procedure linkage table. */ - unsigned long ld_plt_sz; -}; - -/* The external form of the structure. */ - -struct external_sun4_dynamic_link -{ - bfd_byte ld_loaded[4]; - bfd_byte ld_need[4]; - bfd_byte ld_rules[4]; - bfd_byte ld_got[4]; - bfd_byte ld_plt[4]; - bfd_byte ld_rel[4]; - bfd_byte ld_hash[4]; - bfd_byte ld_stab[4]; - bfd_byte ld_stab_hash[4]; - bfd_byte ld_buckets[4]; - bfd_byte ld_symbols[4]; - bfd_byte ld_symb_size[4]; - bfd_byte ld_text[4]; - bfd_byte ld_plt_sz[4]; -}; diff --git a/include/ar.h b/include/ar.h deleted file mode 100644 index 4c05813..0000000 --- a/include/ar.h +++ /dev/null @@ -1,65 +0,0 @@ -/* $NetBSD: ar.h,v 1.4 1994/10/26 00:55:43 cgd Exp $ */ - -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * This code is derived from software contributed to Berkeley by - * Hugh Smith at The University of Guelph. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)ar.h 8.2 (Berkeley) 1/21/94 - */ - -#ifndef _AR_H_ -#define _AR_H_ - -/* Pre-4BSD archives had these magic numbers in them. */ -#define OARMAG1 0177555 -#define OARMAG2 0177545 - -#define ARMAG "!\n" /* ar "magic number" */ -#define SARMAG 8 /* strlen(ARMAG); */ - -#define AR_EFMT1 "#1/" /* extended format #1 */ - -struct ar_hdr { - char ar_name[16]; /* name */ - char ar_date[12]; /* modification time */ - char ar_uid[6]; /* user id */ - char ar_gid[6]; /* group id */ - char ar_mode[8]; /* octal file permissions */ - char ar_size[10]; /* size in bytes */ -#define ARFMAG "`\n" - char ar_fmag[2]; /* consistency check */ -}; - -#endif /* !_AR_H_ */ diff --git a/include/argz.h b/include/argz.h deleted file mode 100644 index 02c9adb..0000000 --- a/include/argz.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _ARGZ_H_ -#define _ARGZ_H_ - -#include -#include - -#include "_ansi.h" - -_BEGIN_STD_C - -/* The newlib implementation of these functions assumes that sizeof(char) == 1. */ -error_t argz_create (char *const argv[], char **argz, size_t *argz_len); -error_t argz_create_sep (const char *string, int sep, char **argz, size_t *argz_len); -size_t argz_count (const char *argz, size_t argz_len); -void argz_extract (char *argz, size_t argz_len, char **argv); -void argz_stringify (char *argz, size_t argz_len, int sep); -error_t argz_add (char **argz, size_t *argz_len, const char *str); -error_t argz_add_sep (char **argz, size_t *argz_len, const char *str, int sep); -error_t argz_append (char **argz, size_t *argz_len, const char *buf, size_t buf_len); -error_t argz_delete (char **argz, size_t *argz_len, char *entry); -error_t argz_insert (char **argz, size_t *argz_len, char *before, const char *entry); -char * argz_next (char *argz, size_t argz_len, const char *entry); -error_t argz_replace (char **argz, size_t *argz_len, const char *str, const char *with, unsigned *replace_count); - -_END_STD_C - -#endif /* _ARGZ_H_ */ diff --git a/include/arm-acle-compat.h b/include/arm-acle-compat.h deleted file mode 100644 index 888ae2e..0000000 --- a/include/arm-acle-compat.h +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Copyright (c) 2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __ARM_ARCH - -/* ACLE standardises a set of pre-defines that describe the ARM architecture. - These were mostly implemented in GCC around GCC-4.8; older versions - have no, or only partial support. To provide a level of backwards - compatibility we try to work out what the definitions should be, given - the older pre-defines that GCC did produce. This isn't complete, but - it should be enough for use by routines that depend on this header. */ - -/* No need to handle ARMv8, GCC had ACLE support before that. */ - -# ifdef __ARM_ARCH_7__ -/* The common subset of ARMv7 in all profiles. */ -# define __ARM_ARCH 7 -# define __ARM_ARCH_ISA_THUMB 2 -# define __ARM_FEATURE_CLZ -# define __ARM_FEATURE_LDREX 7 -# define __ARM_FEATURE_UNALIGNED -# endif - -# if defined (__ARM_ARCH_7A__) || defined (__ARM_ARCH_7R__) -# define __ARM_ARCH 7 -# define __ARM_ARCH_ISA_THUMB 2 -# define __ARM_ARCH_ISA_ARM -# define __ARM_FEATURE_CLZ -# define __ARM_FEATURE_SIMD32 -# define __ARM_FEATURE_DSP -# define __ARM_FEATURE_QBIT -# define __ARM_FEATURE_SAT -# define __ARM_FEATURE_LDREX 15 -# define __ARM_FEATURE_UNALIGNED -# ifdef __ARM_ARCH_7A__ -# define __ARM_ARCH_PROFILE 'A' -# else -# define __ARM_ARCH_PROFILE 'R' -# endif -# endif - -# ifdef __ARM_ARCH_7EM__ -# define __ARM_ARCH 7 -# define __ARM_ARCH_ISA_THUMB 2 -# define __ARM_FEATURE_CLZ -# define __ARM_FEATURE_SIMD32 -# define __ARM_FEATURE_DSP -# define __ARM_FEATURE_QBIT -# define __ARM_FEATURE_SAT -# define __ARM_FEATURE_LDREX 7 -# define __ARM_FEATURE_UNALIGNED -# define __ARM_ARCH_PROFILE 'M' -# endif - -# ifdef __ARM_ARCH_7M__ -# define __ARM_ARCH 7 -# define __ARM_ARCH_ISA_THUMB 2 -# define __ARM_FEATURE_CLZ -# define __ARM_FEATURE_QBIT -# define __ARM_FEATURE_SAT -# define __ARM_FEATURE_LDREX 7 -# define __ARM_FEATURE_UNALIGNED -# define __ARM_ARCH_PROFILE 'M' -# endif - -# ifdef __ARM_ARCH_6T2__ -# define __ARM_ARCH 6 -# define __ARM_ARCH_ISA_THUMB 2 -# define __ARM_ARCH_ISA_ARM -# define __ARM_FEATURE_CLZ -# define __ARM_FEATURE_SIMD32 -# define __ARM_FEATURE_DSP -# define __ARM_FEATURE_QBIT -# define __ARM_FEATURE_SAT -# define __ARM_FEATURE_LDREX 4 -# define __ARM_FEATURE_UNALIGNED -# endif - -# ifdef __ARM_ARCH_6M__ -# define __ARM_ARCH 6 -# define __ARM_ARCH_ISA_THUMB 1 -# define __ARM_ARCH_PROFILE 'M' -# endif - -# if defined (__ARM_ARCH_6__) || defined (__ARM_ARCH_6J__) \ - || defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6Z__) \ - || defined (__ARM_ARCH_6ZK__) -# define __ARM_ARCH 6 -# define __ARM_ARCH_ISA_THUMB 1 -# define __ARM_ARCH_ISA_ARM -# define __ARM_FEATURE_CLZ -# define __ARM_FEATURE_SIMD32 -# define __ARM_FEATURE_DSP -# define __ARM_FEATURE_QBIT -# define __ARM_FEATURE_SAT -# define __ARM_FEATURE_UNALIGNED -# ifndef __thumb__ -# if defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6ZK__) -# define __ARM_FEATURE_LDREX 15 -# else -# define __ARM_FEATURE_LDREX 4 -# endif -# endif -# endif - -# if defined (__ARM_ARCH_5TE__) || defined (__ARM_ARCH_5E__) -# define __ARM_ARCH 5 -# define __ARM_ARCH_ISA_ARM -# ifdef __ARM_ARCH_5TE__ -# define __ARM_ARCH_ISA_THUMB 1 -# endif -# define __ARM_FEATURE_CLZ -# define __ARM_FEATURE_DSP -# endif - -# if defined (__ARM_ARCH_5T__) || defined (__ARM_ARCH_5__) -# define __ARM_ARCH 5 -# define __ARM_ARCH_ISA_ARM -# ifdef __ARM_ARCH_5TE__ -# define __ARM_ARCH_ISA_THUMB 1 -# endif -# define __ARM_FEATURE_CLZ -# endif - -# ifdef __ARM_ARCH_4T__ -# define __ARM_ARCH 4 -# define __ARM_ARCH_ISA_ARM -# define __ARM_ARCH_ISA_THUMB 1 -# endif - -# ifdef __ARM_ARCH_4__ -# define __ARM_ARCH 4 -# define __ARM_ARCH_ISA_ARM -# endif - -# if defined (__ARM_ARCH_3__) || defined (__ARM_ARCH_3M__) -# define __ARM_ARCH 3 -# define __ARM_ARCH_ISA_ARM -# endif - -# ifdef __ARM_ARCH_2__ -# define __ARM_ARCH 2 -# define __ARM_ARCH_ISA_ARM -# endif - -# ifdef __ARMEB__ -# define __ARM_BIG_ENDIAN -# endif - -/* If we still don't know what the target architecture is, then we're - probably not using GCC. */ -# ifndef __ARM_ARCH -# error Unable to determine architecture version. -# endif - -#endif /* __ARM_ARCH */ - diff --git a/include/assert.h b/include/assert.h deleted file mode 100644 index b9e5e9b..0000000 --- a/include/assert.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - assert.h -*/ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "_ansi.h" - -#undef assert - -#ifdef NDEBUG /* required by ANSI standard */ -# define assert(__e) ((void)0) -#else -# define assert(__e) ((__e) ? (void)0 : __assert_func (__FILE__, __LINE__, \ - __ASSERT_FUNC, #__e)) - -# ifndef __ASSERT_FUNC - /* Use g++'s demangled names in C++. */ -# if defined __cplusplus && defined __GNUC__ -# define __ASSERT_FUNC __PRETTY_FUNCTION__ - - /* C99 requires the use of __func__. */ -# elif __STDC_VERSION__ >= 199901L -# define __ASSERT_FUNC __func__ - - /* Older versions of gcc don't have __func__ but can use __FUNCTION__. */ -# elif __GNUC__ >= 2 -# define __ASSERT_FUNC __FUNCTION__ - - /* failed to detect __func__ support. */ -# else -# define __ASSERT_FUNC ((char *) 0) -# endif -# endif /* !__ASSERT_FUNC */ -#endif /* !NDEBUG */ - -void __assert (const char *, int, const char *) - _ATTRIBUTE ((__noreturn__)); -void __assert_func (const char *, int, const char *, const char *) - _ATTRIBUTE ((__noreturn__)); - -#if __STDC_VERSION__ >= 201112L && !defined __cplusplus -# define static_assert _Static_assert -#endif - -#ifdef __cplusplus -} -#endif diff --git a/include/bfdlink.h b/include/bfdlink.h deleted file mode 100644 index 1ac0738..0000000 --- a/include/bfdlink.h +++ /dev/null @@ -1,842 +0,0 @@ -/* bfdlink.h -- header file for BFD link routines - Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, - 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. - Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef BFDLINK_H -#define BFDLINK_H - -/* Which symbols to strip during a link. */ -enum bfd_link_strip -{ - strip_none, /* Don't strip any symbols. */ - strip_debugger, /* Strip debugging symbols. */ - strip_some, /* keep_hash is the list of symbols to keep. */ - strip_all /* Strip all symbols. */ -}; - -/* Which local symbols to discard during a link. This is irrelevant - if strip_all is used. */ -enum bfd_link_discard -{ - discard_sec_merge, /* Discard local temporary symbols in SEC_MERGE - sections. */ - discard_none, /* Don't discard any locals. */ - discard_l, /* Discard local temporary symbols. */ - discard_all /* Discard all locals. */ -}; - -/* Describes the type of hash table entry structure being used. - Different hash table structure have different fields and so - support different linking features. */ -enum bfd_link_hash_table_type - { - bfd_link_generic_hash_table, - bfd_link_elf_hash_table - }; - -/* These are the possible types of an entry in the BFD link hash - table. */ - -enum bfd_link_hash_type -{ - bfd_link_hash_new, /* Symbol is new. */ - bfd_link_hash_undefined, /* Symbol seen before, but undefined. */ - bfd_link_hash_undefweak, /* Symbol is weak and undefined. */ - bfd_link_hash_defined, /* Symbol is defined. */ - bfd_link_hash_defweak, /* Symbol is weak and defined. */ - bfd_link_hash_common, /* Symbol is common. */ - bfd_link_hash_indirect, /* Symbol is an indirect link. */ - bfd_link_hash_warning /* Like indirect, but warn if referenced. */ -}; - -enum bfd_link_common_skip_ar_symbols -{ - bfd_link_common_skip_none, - bfd_link_common_skip_text, - bfd_link_common_skip_data, - bfd_link_common_skip_all -}; - -struct bfd_link_hash_common_entry - { - unsigned int alignment_power; /* Alignment. */ - asection *section; /* Symbol section. */ - }; - -/* The linking routines use a hash table which uses this structure for - its elements. */ - -struct bfd_link_hash_entry -{ - /* Base hash table entry structure. */ - struct bfd_hash_entry root; - - /* Type of this entry. */ - ENUM_BITFIELD (bfd_link_hash_type) type : 8; - - unsigned int non_ir_ref : 1; - - /* A union of information depending upon the type. */ - union - { - /* Nothing is kept for bfd_hash_new. */ - /* bfd_link_hash_undefined, bfd_link_hash_undefweak. */ - struct - { - /* Undefined and common symbols are kept in a linked list through - this field. This field is present in all of the union element - so that we don't need to remove entries from the list when we - change their type. Removing entries would either require the - list to be doubly linked, which would waste more memory, or - require a traversal. When an undefined or common symbol is - created, it should be added to this list, the head of which is in - the link hash table itself. As symbols are defined, they need - not be removed from the list; anything which reads the list must - doublecheck the symbol type. - - Weak symbols are not kept on this list. - - Defined and defweak symbols use this field as a reference marker. - If the field is not NULL, or this structure is the tail of the - undefined symbol list, the symbol has been referenced. If the - symbol is undefined and becomes defined, this field will - automatically be non-NULL since the symbol will have been on the - undefined symbol list. */ - struct bfd_link_hash_entry *next; - bfd *abfd; /* BFD symbol was found in. */ - } undef; - /* bfd_link_hash_defined, bfd_link_hash_defweak. */ - struct - { - struct bfd_link_hash_entry *next; - asection *section; /* Symbol section. */ - bfd_vma value; /* Symbol value. */ - } def; - /* bfd_link_hash_indirect, bfd_link_hash_warning. */ - struct - { - struct bfd_link_hash_entry *next; - struct bfd_link_hash_entry *link; /* Real symbol. */ - const char *warning; /* Warning (bfd_link_hash_warning only). */ - } i; - /* bfd_link_hash_common. */ - struct - { - struct bfd_link_hash_entry *next; - /* The linker needs to know three things about common - symbols: the size, the alignment, and the section in - which the symbol should be placed. We store the size - here, and we allocate a small structure to hold the - section and the alignment. The alignment is stored as a - power of two. We don't store all the information - directly because we don't want to increase the size of - the union; this structure is a major space user in the - linker. */ - struct bfd_link_hash_common_entry *p; - bfd_size_type size; /* Common symbol size. */ - } c; - } u; -}; - -/* This is the link hash table. It is a derived class of - bfd_hash_table. */ - -struct bfd_link_hash_table -{ - /* The hash table itself. */ - struct bfd_hash_table table; - /* A linked list of undefined and common symbols, linked through the - next field in the bfd_link_hash_entry structure. */ - struct bfd_link_hash_entry *undefs; - /* Entries are added to the tail of the undefs list. */ - struct bfd_link_hash_entry *undefs_tail; - /* The type of the link hash table. */ - enum bfd_link_hash_table_type type; -}; - -/* Look up an entry in a link hash table. If FOLLOW is TRUE, this - follows bfd_link_hash_indirect and bfd_link_hash_warning links to - the real symbol. */ -extern struct bfd_link_hash_entry *bfd_link_hash_lookup - (struct bfd_link_hash_table *, const char *, bfd_boolean create, - bfd_boolean copy, bfd_boolean follow); - -/* Look up an entry in the main linker hash table if the symbol might - be wrapped. This should only be used for references to an - undefined symbol, not for definitions of a symbol. */ - -extern struct bfd_link_hash_entry *bfd_wrapped_link_hash_lookup - (bfd *, struct bfd_link_info *, const char *, bfd_boolean, - bfd_boolean, bfd_boolean); - -/* Traverse a link hash table. */ -extern void bfd_link_hash_traverse - (struct bfd_link_hash_table *, - bfd_boolean (*) (struct bfd_link_hash_entry *, void *), - void *); - -/* Add an entry to the undefs list. */ -extern void bfd_link_add_undef - (struct bfd_link_hash_table *, struct bfd_link_hash_entry *); - -/* Remove symbols from the undefs list that don't belong there. */ -extern void bfd_link_repair_undef_list - (struct bfd_link_hash_table *table); - -/* Read symbols and cache symbol pointer array in outsymbols. */ -extern bfd_boolean bfd_generic_link_read_symbols (bfd *); - -struct bfd_sym_chain -{ - struct bfd_sym_chain *next; - const char *name; -}; - -/* How to handle unresolved symbols. - There are four possibilities which are enumerated below: */ -enum report_method -{ - /* This is the initial value when then link_info structure is created. - It allows the various stages of the linker to determine whether they - allowed to set the value. */ - RM_NOT_YET_SET = 0, - RM_IGNORE, - RM_GENERATE_WARNING, - RM_GENERATE_ERROR -}; - -typedef enum {with_flags, without_flags} flag_type; - -/* A section flag list. */ -struct flag_info_list -{ - flag_type with; - const char *name; - bfd_boolean valid; - struct flag_info_list *next; -}; - -/* Section flag info. */ -struct flag_info -{ - flagword only_with_flags; - flagword not_with_flags; - struct flag_info_list *flag_list; - bfd_boolean flags_initialized; -}; - -struct bfd_elf_dynamic_list; -struct bfd_elf_version_tree; - -/* This structure holds all the information needed to communicate - between BFD and the linker when doing a link. */ - -struct bfd_link_info -{ - /* TRUE if BFD should generate a shared object (or a pie). */ - unsigned int shared: 1; - - /* TRUE if generating an executable, position independent or not. */ - unsigned int executable : 1; - - /* TRUE if generating a position independent executable. */ - unsigned int pie: 1; - - /* TRUE if BFD should generate a relocatable object file. */ - unsigned int relocatable: 1; - - /* TRUE if BFD should pre-bind symbols in a shared object. */ - unsigned int symbolic: 1; - - /* TRUE if executable should not contain copy relocs. - Setting this true may result in a non-sharable text segment. */ - unsigned int nocopyreloc: 1; - - /* TRUE if BFD should export all symbols in the dynamic symbol table - of an executable, rather than only those used. */ - unsigned int export_dynamic: 1; - - /* TRUE if a default symbol version should be created and used for - exported symbols. */ - unsigned int create_default_symver: 1; - - /* TRUE if unreferenced sections should be removed. */ - unsigned int gc_sections: 1; - - /* TRUE if every symbol should be reported back via the notice - callback. */ - unsigned int notice_all: 1; - - /* TRUE if we are loading LTO outputs. */ - unsigned int loading_lto_outputs: 1; - - /* TRUE if global symbols in discarded sections should be stripped. */ - unsigned int strip_discarded: 1; - - /* TRUE if all data symbols should be dynamic. */ - unsigned int dynamic_data: 1; - - /* Which symbols to strip. */ - ENUM_BITFIELD (bfd_link_strip) strip : 2; - - /* Which local symbols to discard. */ - ENUM_BITFIELD (bfd_link_discard) discard : 2; - - /* Criteria for skipping symbols when determining - whether to include an object from an archive. */ - ENUM_BITFIELD (bfd_link_common_skip_ar_symbols) common_skip_ar_symbols : 2; - - /* What to do with unresolved symbols in an object file. - When producing executables the default is GENERATE_ERROR. - When producing shared libraries the default is IGNORE. The - assumption with shared libraries is that the reference will be - resolved at load/execution time. */ - ENUM_BITFIELD (report_method) unresolved_syms_in_objects : 2; - - /* What to do with unresolved symbols in a shared library. - The same defaults apply. */ - ENUM_BITFIELD (report_method) unresolved_syms_in_shared_libs : 2; - - /* TRUE if shared objects should be linked directly, not shared. */ - unsigned int static_link: 1; - - /* TRUE if symbols should be retained in memory, FALSE if they - should be freed and reread. */ - unsigned int keep_memory: 1; - - /* TRUE if BFD should generate relocation information in the final - executable. */ - unsigned int emitrelocations: 1; - - /* TRUE if PT_GNU_RELRO segment should be created. */ - unsigned int relro: 1; - - /* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment - should be created. */ - unsigned int eh_frame_hdr: 1; - - /* TRUE if we should warn when adding a DT_TEXTREL to a shared object. */ - unsigned int warn_shared_textrel: 1; - - /* TRUE if we should error when adding a DT_TEXTREL. */ - unsigned int error_textrel: 1; - - /* TRUE if .hash section should be created. */ - unsigned int emit_hash: 1; - - /* TRUE if .gnu.hash section should be created. */ - unsigned int emit_gnu_hash: 1; - - /* If TRUE reduce memory overheads, at the expense of speed. This will - cause map file generation to use an O(N^2) algorithm and disable - caching ELF symbol buffer. */ - unsigned int reduce_memory_overheads: 1; - - /* TRUE if the output file should be in a traditional format. This - is equivalent to the setting of the BFD_TRADITIONAL_FORMAT flag - on the output file, but may be checked when reading the input - files. */ - unsigned int traditional_format: 1; - - /* TRUE if non-PLT relocs should be merged into one reloc section - and sorted so that relocs against the same symbol come together. */ - unsigned int combreloc: 1; - - /* TRUE if a default symbol version should be created and used for - imported symbols. */ - unsigned int default_imported_symver: 1; - - /* TRUE if the new ELF dynamic tags are enabled. */ - unsigned int new_dtags: 1; - - /* FALSE if .eh_frame unwind info should be generated for PLT and other - linker created sections, TRUE if it should be omitted. */ - unsigned int no_ld_generated_unwind_info: 1; - - /* TRUE if BFD should generate a "task linked" object file, - similar to relocatable but also with globals converted to - statics. */ - unsigned int task_link: 1; - - /* TRUE if ok to have multiple definition. */ - unsigned int allow_multiple_definition: 1; - - /* TRUE if ok to have version with no definition. */ - unsigned int allow_undefined_version: 1; - - /* TRUE if some symbols have to be dynamic, controlled by - --dynamic-list command line options. */ - unsigned int dynamic: 1; - - /* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W|PF_X - flags. */ - unsigned int execstack: 1; - - /* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W - flags. */ - unsigned int noexecstack: 1; - - /* TRUE if we want to produced optimized output files. This might - need much more time and therefore must be explicitly selected. */ - unsigned int optimize: 1; - - /* TRUE if user should be informed of removed unreferenced sections. */ - unsigned int print_gc_sections: 1; - - /* TRUE if we should warn alternate ELF machine code. */ - unsigned int warn_alternate_em: 1; - - /* TRUE if the linker script contained an explicit PHDRS command. */ - unsigned int user_phdrs: 1; - - /* Char that may appear as the first char of a symbol, but should be - skipped (like symbol_leading_char) when looking up symbols in - wrap_hash. Used by PowerPC Linux for 'dot' symbols. */ - char wrap_char; - - /* Separator between archive and filename in linker script filespecs. */ - char path_separator; - - /* Default stack size. Zero means default (often zero itself), -1 - means explicitly zero-sized. */ - bfd_signed_vma stacksize; - - /* Enable or disable target specific optimizations. - - Not all targets have optimizations to enable. - - Normally these optimizations are disabled by default but some targets - prefer to enable them by default. So this field is a tri-state variable. - The values are: - - zero: Enable the optimizations (either from --relax being specified on - the command line or the backend's before_allocation emulation function. - - positive: The user has requested that these optimizations be disabled. - (Via the --no-relax command line option). - - negative: The optimizations are disabled. (Set when initializing the - args_type structure in ldmain.c:main. */ - signed int disable_target_specific_optimizations; - - /* Function callbacks. */ - const struct bfd_link_callbacks *callbacks; - - /* Hash table handled by BFD. */ - struct bfd_link_hash_table *hash; - - /* Hash table of symbols to keep. This is NULL unless strip is - strip_some. */ - struct bfd_hash_table *keep_hash; - - /* Hash table of symbols to report back via the notice callback. If - this is NULL, and notice_all is FALSE, then no symbols are - reported back. */ - struct bfd_hash_table *notice_hash; - - /* Hash table of symbols which are being wrapped (the --wrap linker - option). If this is NULL, no symbols are being wrapped. */ - struct bfd_hash_table *wrap_hash; - - /* Hash table of symbols which may be left unresolved during - a link. If this is NULL, no symbols can be left unresolved. */ - struct bfd_hash_table *ignore_hash; - - /* The output BFD. */ - bfd *output_bfd; - - /* The list of input BFD's involved in the link. These are chained - together via the link_next field. */ - bfd *input_bfds; - bfd **input_bfds_tail; - - /* If a symbol should be created for each input BFD, this is section - where those symbols should be placed. It must be a section in - the output BFD. It may be NULL, in which case no such symbols - will be created. This is to support CREATE_OBJECT_SYMBOLS in the - linker command language. */ - asection *create_object_symbols_section; - - /* List of global symbol names that are starting points for marking - sections against garbage collection. */ - struct bfd_sym_chain *gc_sym_list; - - /* If a base output file is wanted, then this points to it */ - void *base_file; - - /* The function to call when the executable or shared object is - loaded. */ - const char *init_function; - - /* The function to call when the executable or shared object is - unloaded. */ - const char *fini_function; - - /* Number of relaxation passes. Usually only one relaxation pass - is needed. But a backend can have as many relaxation passes as - necessary. During bfd_relax_section call, it is set to the - current pass, starting from 0. */ - int relax_pass; - - /* Number of relaxation trips. This number is incremented every - time the relaxation pass is restarted due to a previous - relaxation returning true in *AGAIN. */ - int relax_trip; - - /* Non-zero if auto-import thunks for DATA items in pei386 DLLs - should be generated/linked against. Set to 1 if this feature - is explicitly requested by the user, -1 if enabled by default. */ - int pei386_auto_import; - - /* Non-zero if runtime relocs for DATA items with non-zero addends - in pei386 DLLs should be generated. Set to 1 if this feature - is explicitly requested by the user, -1 if enabled by default. */ - int pei386_runtime_pseudo_reloc; - - /* How many spare .dynamic DT_NULL entries should be added? */ - unsigned int spare_dynamic_tags; - - /* May be used to set DT_FLAGS for ELF. */ - bfd_vma flags; - - /* May be used to set DT_FLAGS_1 for ELF. */ - bfd_vma flags_1; - - /* Start and end of RELRO region. */ - bfd_vma relro_start, relro_end; - - /* List of symbols should be dynamic. */ - struct bfd_elf_dynamic_list *dynamic_list; - - /* The version information. */ - struct bfd_elf_version_tree *version_info; -}; - -/* This structures holds a set of callback functions. These are called - by the BFD linker routines. Except for the info functions, the first - argument to each callback function is the bfd_link_info structure - being used and each function returns a boolean value. If the - function returns FALSE, then the BFD function which called it should - return with a failure indication. */ - -struct bfd_link_callbacks -{ - /* A function which is called when an object is added from an - archive. ABFD is the archive element being added. NAME is the - name of the symbol which caused the archive element to be pulled - in. This function may set *SUBSBFD to point to an alternative - BFD from which symbols should in fact be added in place of the - original BFD's symbols. */ - bfd_boolean (*add_archive_element) - (struct bfd_link_info *, bfd *abfd, const char *name, bfd **subsbfd); - /* A function which is called when a symbol is found with multiple - definitions. H is the symbol which is defined multiple times. - NBFD is the new BFD, NSEC is the new section, and NVAL is the new - value. NSEC may be bfd_com_section or bfd_ind_section. */ - bfd_boolean (*multiple_definition) - (struct bfd_link_info *, struct bfd_link_hash_entry *h, - bfd *nbfd, asection *nsec, bfd_vma nval); - /* A function which is called when a common symbol is defined - multiple times. H is the symbol appearing multiple times. - NBFD is the BFD of the new symbol. NTYPE is the type of the new - symbol, one of bfd_link_hash_defined, bfd_link_hash_common, or - bfd_link_hash_indirect. If NTYPE is bfd_link_hash_common, NSIZE - is the size of the new symbol. */ - bfd_boolean (*multiple_common) - (struct bfd_link_info *, struct bfd_link_hash_entry *h, - bfd *nbfd, enum bfd_link_hash_type ntype, bfd_vma nsize); - /* A function which is called to add a symbol to a set. ENTRY is - the link hash table entry for the set itself (e.g., - __CTOR_LIST__). RELOC is the relocation to use for an entry in - the set when generating a relocatable file, and is also used to - get the size of the entry when generating an executable file. - ABFD, SEC and VALUE identify the value to add to the set. */ - bfd_boolean (*add_to_set) - (struct bfd_link_info *, struct bfd_link_hash_entry *entry, - bfd_reloc_code_real_type reloc, bfd *abfd, asection *sec, bfd_vma value); - /* A function which is called when the name of a g++ constructor or - destructor is found. This is only called by some object file - formats. CONSTRUCTOR is TRUE for a constructor, FALSE for a - destructor. This will use BFD_RELOC_CTOR when generating a - relocatable file. NAME is the name of the symbol found. ABFD, - SECTION and VALUE are the value of the symbol. */ - bfd_boolean (*constructor) - (struct bfd_link_info *, bfd_boolean constructor, const char *name, - bfd *abfd, asection *sec, bfd_vma value); - /* A function which is called to issue a linker warning. For - example, this is called when there is a reference to a warning - symbol. WARNING is the warning to be issued. SYMBOL is the name - of the symbol which triggered the warning; it may be NULL if - there is none. ABFD, SECTION and ADDRESS identify the location - which trigerred the warning; either ABFD or SECTION or both may - be NULL if the location is not known. */ - bfd_boolean (*warning) - (struct bfd_link_info *, const char *warning, const char *symbol, - bfd *abfd, asection *section, bfd_vma address); - /* A function which is called when a relocation is attempted against - an undefined symbol. NAME is the symbol which is undefined. - ABFD, SECTION and ADDRESS identify the location from which the - reference is made. IS_FATAL indicates whether an undefined symbol is - a fatal error or not. In some cases SECTION may be NULL. */ - bfd_boolean (*undefined_symbol) - (struct bfd_link_info *, const char *name, bfd *abfd, - asection *section, bfd_vma address, bfd_boolean is_fatal); - /* A function which is called when a reloc overflow occurs. ENTRY is - the link hash table entry for the symbol the reloc is against. - NAME is the name of the local symbol or section the reloc is - against, RELOC_NAME is the name of the relocation, and ADDEND is - any addend that is used. ABFD, SECTION and ADDRESS identify the - location at which the overflow occurs; if this is the result of a - bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then - ABFD will be NULL. */ - bfd_boolean (*reloc_overflow) - (struct bfd_link_info *, struct bfd_link_hash_entry *entry, - const char *name, const char *reloc_name, bfd_vma addend, - bfd *abfd, asection *section, bfd_vma address); - /* A function which is called when a dangerous reloc is performed. - MESSAGE is an appropriate message. - ABFD, SECTION and ADDRESS identify the location at which the - problem occurred; if this is the result of a - bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then - ABFD will be NULL. */ - bfd_boolean (*reloc_dangerous) - (struct bfd_link_info *, const char *message, - bfd *abfd, asection *section, bfd_vma address); - /* A function which is called when a reloc is found to be attached - to a symbol which is not being written out. NAME is the name of - the symbol. ABFD, SECTION and ADDRESS identify the location of - the reloc; if this is the result of a - bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then - ABFD will be NULL. */ - bfd_boolean (*unattached_reloc) - (struct bfd_link_info *, const char *name, - bfd *abfd, asection *section, bfd_vma address); - /* A function which is called when a symbol in notice_hash is - defined or referenced. H is the symbol. ABFD, SECTION and - ADDRESS are the (new) value of the symbol. If SECTION is - bfd_und_section, this is a reference. FLAGS are the symbol - BSF_* flags. STRING is the name of the symbol to indirect to if - the sym is indirect, or the warning string if a warning sym. */ - bfd_boolean (*notice) - (struct bfd_link_info *, struct bfd_link_hash_entry *h, - bfd *abfd, asection *section, bfd_vma address, flagword flags, - const char *string); - /* Error or warning link info message. */ - void (*einfo) - (const char *fmt, ...); - /* General link info message. */ - void (*info) - (const char *fmt, ...); - /* Message to be printed in linker map file. */ - void (*minfo) - (const char *fmt, ...); - /* This callback provides a chance for users of the BFD library to - override its decision about whether to place two adjacent sections - into the same segment. */ - bfd_boolean (*override_segment_assignment) - (struct bfd_link_info *, bfd * abfd, - asection * current_section, asection * previous_section, - bfd_boolean new_segment); -}; - -/* The linker builds link_order structures which tell the code how to - include input data in the output file. */ - -/* These are the types of link_order structures. */ - -enum bfd_link_order_type -{ - bfd_undefined_link_order, /* Undefined. */ - bfd_indirect_link_order, /* Built from a section. */ - bfd_data_link_order, /* Set to explicit data. */ - bfd_section_reloc_link_order, /* Relocate against a section. */ - bfd_symbol_reloc_link_order /* Relocate against a symbol. */ -}; - -/* This is the link_order structure itself. These form a chain - attached to the output section whose contents they are describing. */ - -struct bfd_link_order -{ - /* Next link_order in chain. */ - struct bfd_link_order *next; - /* Type of link_order. */ - enum bfd_link_order_type type; - /* Offset within output section. */ - bfd_vma offset; - /* Size within output section. */ - bfd_size_type size; - /* Type specific information. */ - union - { - struct - { - /* Section to include. If this is used, then - section->output_section must be the section the - link_order is attached to, section->output_offset must - equal the link_order offset field, and section->size - must equal the link_order size field. Maybe these - restrictions should be relaxed someday. */ - asection *section; - } indirect; - struct - { - /* Size of contents, or zero when contents should be filled by - the architecture-dependent fill function. - A non-zero value allows filling of the output section - with an arbitrary repeated pattern. */ - unsigned int size; - /* Data to put into file. */ - bfd_byte *contents; - } data; - struct - { - /* Description of reloc to generate. Used for - bfd_section_reloc_link_order and - bfd_symbol_reloc_link_order. */ - struct bfd_link_order_reloc *p; - } reloc; - } u; -}; - -/* A linker order of type bfd_section_reloc_link_order or - bfd_symbol_reloc_link_order means to create a reloc against a - section or symbol, respectively. This is used to implement -Ur to - generate relocs for the constructor tables. The - bfd_link_order_reloc structure describes the reloc that BFD should - create. It is similar to a arelent, but I didn't use arelent - because the linker does not know anything about most symbols, and - any asymbol structure it creates will be partially meaningless. - This information could logically be in the bfd_link_order struct, - but I didn't want to waste the space since these types of relocs - are relatively rare. */ - -struct bfd_link_order_reloc -{ - /* Reloc type. */ - bfd_reloc_code_real_type reloc; - - union - { - /* For type bfd_section_reloc_link_order, this is the section - the reloc should be against. This must be a section in the - output BFD, not any of the input BFDs. */ - asection *section; - /* For type bfd_symbol_reloc_link_order, this is the name of the - symbol the reloc should be against. */ - const char *name; - } u; - - /* Addend to use. The object file should contain zero. The BFD - backend is responsible for filling in the contents of the object - file correctly. For some object file formats (e.g., COFF) the - addend must be stored into in the object file, and for some - (e.g., SPARC a.out) it is kept in the reloc. */ - bfd_vma addend; -}; - -/* Allocate a new link_order for a section. */ -extern struct bfd_link_order *bfd_new_link_order (bfd *, asection *); - -/* These structures are used to describe version information for the - ELF linker. These structures could be manipulated entirely inside - BFD, but it would be a pain. Instead, the regular linker sets up - these structures, and then passes them into BFD. */ - -/* Glob pattern for a version. */ - -struct bfd_elf_version_expr -{ - /* Next glob pattern for this version. */ - struct bfd_elf_version_expr *next; - /* Glob pattern. */ - const char *pattern; - /* Set if pattern is not a glob. */ - unsigned int literal : 1; - /* Defined by ".symver". */ - unsigned int symver : 1; - /* Defined by version script. */ - unsigned int script : 1; - /* Pattern type. */ -#define BFD_ELF_VERSION_C_TYPE 1 -#define BFD_ELF_VERSION_CXX_TYPE 2 -#define BFD_ELF_VERSION_JAVA_TYPE 4 - unsigned int mask : 3; -}; - -struct bfd_elf_version_expr_head -{ - /* List of all patterns, both wildcards and non-wildcards. */ - struct bfd_elf_version_expr *list; - /* Hash table for non-wildcards. */ - void *htab; - /* Remaining patterns. */ - struct bfd_elf_version_expr *remaining; - /* What kind of pattern types are present in list (bitmask). */ - unsigned int mask; -}; - -/* Version dependencies. */ - -struct bfd_elf_version_deps -{ - /* Next dependency for this version. */ - struct bfd_elf_version_deps *next; - /* The version which this version depends upon. */ - struct bfd_elf_version_tree *version_needed; -}; - -/* A node in the version tree. */ - -struct bfd_elf_version_tree -{ - /* Next version. */ - struct bfd_elf_version_tree *next; - /* Name of this version. */ - const char *name; - /* Version number. */ - unsigned int vernum; - /* Regular expressions for global symbols in this version. */ - struct bfd_elf_version_expr_head globals; - /* Regular expressions for local symbols in this version. */ - struct bfd_elf_version_expr_head locals; - /* List of versions which this version depends upon. */ - struct bfd_elf_version_deps *deps; - /* Index of the version name. This is used within BFD. */ - unsigned int name_indx; - /* Whether this version tree was used. This is used within BFD. */ - int used; - /* Matching hook. */ - struct bfd_elf_version_expr *(*match) - (struct bfd_elf_version_expr_head *head, - struct bfd_elf_version_expr *prev, const char *sym); -}; - -struct bfd_elf_dynamic_list -{ - struct bfd_elf_version_expr_head head; - struct bfd_elf_version_expr *(*match) - (struct bfd_elf_version_expr_head *head, - struct bfd_elf_version_expr *prev, const char *sym); -}; - -#endif diff --git a/include/binary-io.h b/include/binary-io.h deleted file mode 100644 index 2984271..0000000 --- a/include/binary-io.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Binary mode I/O. - Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#ifndef _BINARY_H -#define _BINARY_H - -/* Include this header after and , because - systems that distinguish between text and binary I/O usually - define O_BINARY in , and the MSVC7 doesn't - like to be included after '#define fileno ...' - - We don't include here because not all systems have - that header. */ - -#if !defined O_BINARY && defined _O_BINARY - /* For MSC-compatible compilers. */ -# define O_BINARY _O_BINARY -# define O_TEXT _O_TEXT -#endif -#ifdef __BEOS__ - /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */ -# undef O_BINARY -# undef O_TEXT -#endif -#if O_BINARY -# if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__ -# include /* declares setmode() */ -# else -# define setmode _setmode -# undef fileno -# define fileno _fileno -# endif -# ifdef __DJGPP__ -# include /* declares isatty() */ -# /* Avoid putting stdin/stdout in binary mode if it is connected to the -# console, because that would make it impossible for the user to -# interrupt the program through Ctrl-C or Ctrl-Break. */ -# define SET_BINARY(fd) (!isatty (fd) ? (setmode (fd, O_BINARY), 0) : 0) -# else -# define SET_BINARY(fd) setmode (fd, O_BINARY) -# endif -#else - /* On reasonable systems, binary I/O is the default. */ -# undef O_BINARY -# define O_BINARY 0 -# define SET_BINARY(fd) /* nothing */ -#endif - -#endif /* _BINARY_H */ diff --git a/include/bout.h b/include/bout.h deleted file mode 100644 index 4a30228..0000000 --- a/include/bout.h +++ /dev/null @@ -1,192 +0,0 @@ -/* This file is a modified version of 'a.out.h'. It is to be used in all - GNU tools modified to support the i80960 (or tools that operate on - object files created by such tools). - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* All i80960 development is done in a CROSS-DEVELOPMENT environment. I.e., - object code is generated on, and executed under the direction of a symbolic - debugger running on, a host system. We do not want to be subject to the - vagaries of which host it is or whether it supports COFF or a.out format, - or anything else. We DO want to: - - o always generate the same format object files, regardless of host. - - o have an 'a.out' header that we can modify for our own purposes - (the 80960 is typically an embedded processor and may require - enhanced linker support that the normal a.out.h header can't - accommodate). - - As for byte-ordering, the following rules apply: - - o Text and data that is actually downloaded to the target is always - in i80960 (little-endian) order. - - o All other numbers (in the header, symbols, relocation directives) - are in host byte-order: object files CANNOT be lifted from a - little-end host and used on a big-endian (or vice versa) without - modification. - ==> THIS IS NO LONGER TRUE USING BFD. WE CAN GENERATE ANY BYTE ORDER - FOR THE HEADER, AND READ ANY BYTE ORDER. PREFERENCE WOULD BE TO - USE LITTLE-ENDIAN BYTE ORDER THROUGHOUT, REGARDLESS OF HOST. <== - - o The downloader ('comm960') takes care to generate a pseudo-header - with correct (i80960) byte-ordering before shipping text and data - off to the NINDY monitor in the target systems. Symbols and - relocation info are never sent to the target. */ - -#define BMAGIC 0415 -/* We don't accept the following (see N_BADMAG macro). - They're just here so GNU code will compile. */ -#define OMAGIC 0407 /* old impure format */ -#define NMAGIC 0410 /* read-only text */ -#define ZMAGIC 0413 /* demand load format */ - -/* FILE HEADER - All 'lengths' are given as a number of bytes. - All 'alignments' are for relinkable files only; an alignment of - 'n' indicates the corresponding segment must begin at an - address that is a multiple of (2**n). */ -struct external_exec - { - /* Standard stuff */ - unsigned char e_info[4]; /* Identifies this as a b.out file */ - unsigned char e_text[4]; /* Length of text */ - unsigned char e_data[4]; /* Length of data */ - unsigned char e_bss[4]; /* Length of uninitialized data area */ - unsigned char e_syms[4]; /* Length of symbol table */ - unsigned char e_entry[4]; /* Runtime start address */ - unsigned char e_trsize[4]; /* Length of text relocation info */ - unsigned char e_drsize[4]; /* Length of data relocation info */ - - /* Added for i960 */ - unsigned char e_tload[4]; /* Text runtime load address */ - unsigned char e_dload[4]; /* Data runtime load address */ - unsigned char e_talign[1]; /* Alignment of text segment */ - unsigned char e_dalign[1]; /* Alignment of data segment */ - unsigned char e_balign[1]; /* Alignment of bss segment */ - unsigned char e_relaxable[1];/* Assembled with enough info to allow linker to relax */ - }; - -#define EXEC_BYTES_SIZE (sizeof (struct external_exec)) - -/* These macros use the a_xxx field names, since they operate on the exec - structure after it's been byte-swapped and realigned on the host machine. */ -#define N_BADMAG(x) (((x).a_info)!=BMAGIC) -#define N_TXTOFF(x) EXEC_BYTES_SIZE -#define N_DATOFF(x) ( N_TXTOFF(x) + (x).a_text ) -#define N_TROFF(x) ( N_DATOFF(x) + (x).a_data ) -#define N_TRELOFF N_TROFF -#define N_DROFF(x) ( N_TROFF(x) + (x).a_trsize ) -#define N_DRELOFF N_DROFF -#define N_SYMOFF(x) ( N_DROFF(x) + (x).a_drsize ) -#define N_STROFF(x) ( N_SYMOFF(x) + (x).a_syms ) -#define N_DATADDR(x) ( (x).a_dload ) - -/* Address of text segment in memory after it is loaded. */ -#if !defined (N_TXTADDR) -#define N_TXTADDR(x) 0 -#endif - -/* A single entry in the symbol table. */ -struct nlist - { - union - { - char* n_name; - struct nlist * n_next; - long n_strx; /* Index into string table */ - } n_un; - - unsigned char n_type; /* See below */ - char n_other; /* Used in i80960 support -- see below */ - short n_desc; - unsigned long n_value; - }; - - -/* Legal values of n_type. */ -#define N_UNDF 0 /* Undefined symbol */ -#define N_ABS 2 /* Absolute symbol */ -#define N_TEXT 4 /* Text symbol */ -#define N_DATA 6 /* Data symbol */ -#define N_BSS 8 /* BSS symbol */ -#define N_FN 31 /* Filename symbol */ - -#define N_EXT 1 /* External symbol (OR'd in with one of above) */ -#define N_TYPE 036 /* Mask for all the type bits */ -#define N_STAB 0340 /* Mask for all bits used for SDB entries */ - -/* MEANING OF 'n_other' - - If non-zero, the 'n_other' fields indicates either a leaf procedure or - a system procedure, as follows: - - 1 <= n_other <= 32 : - The symbol is the entry point to a system procedure. - 'n_value' is the address of the entry, as for any other - procedure. The system procedure number (which can be used in - a 'calls' instruction) is (n_other-1). These entries come from - '.sysproc' directives. - - n_other == N_CALLNAME - the symbol is the 'call' entry point to a leaf procedure. - The *next* symbol in the symbol table must be the corresponding - 'bal' entry point to the procedure (see following). These - entries come from '.leafproc' directives in which two different - symbols are specified (the first one is represented here). - - - n_other == N_BALNAME - the symbol is the 'bal' entry point to a leaf procedure. - These entries result from '.leafproc' directives in which only - one symbol is specified, or in which the same symbol is - specified twice. - - Note that an N_CALLNAME entry *must* have a corresponding N_BALNAME entry, - but not every N_BALNAME entry must have an N_CALLNAME entry. */ -#define N_CALLNAME ((char)-1) -#define N_BALNAME ((char)-2) -#define IS_CALLNAME(x) (N_CALLNAME == (x)) -#define IS_BALNAME(x) (N_BALNAME == (x)) -#define IS_OTHER(x) ((x)>0 && (x) <=32) - -#define b_out_relocation_info relocation_info -struct relocation_info - { - int r_address; /* File address of item to be relocated. */ - unsigned -#define r_index r_symbolnum - r_symbolnum:24, /* Index of symbol on which relocation is based, - if r_extern is set. Otherwise set to - either N_TEXT, N_DATA, or N_BSS to - indicate section on which relocation is - based. */ - r_pcrel:1, /* 1 => relocate PC-relative; else absolute - On i960, pc-relative implies 24-bit - address, absolute implies 32-bit. */ - r_length:2, /* Number of bytes to relocate: - 0 => 1 byte - 1 => 2 bytes -- used for 13 bit pcrel - 2 => 4 bytes. */ - r_extern:1, - r_bsr:1, /* Something for the GNU NS32K assembler. */ - r_disp:1, /* Something for the GNU NS32K assembler. */ - r_callj:1, /* 1 if relocation target is an i960 'callj'. */ - r_relaxable:1; /* 1 if enough info is left to relax the data. */ -}; diff --git a/include/cgen/ChangeLog b/include/cgen/ChangeLog deleted file mode 100644 index 7692d4e..0000000 --- a/include/cgen/ChangeLog +++ /dev/null @@ -1,32 +0,0 @@ -2013-07-18 Andrew Neitsch - - PR binutils/15728 - * basic-ops.h: (SUBWORDSIQI) Make declaration static. - * (SUBWORDSIHI): Likewise. - * (SUBWORDDIQI): Likewise. - * (SUBWORDDIHI): Likewise. - * (SUBWORDDISI): Likewise. - -2010-01-05 Doug Evans - - * basic-modes.h (MAKEDI): New macro. - -2009-10-23 Doug Evans - - * basic-modes.h: New file. Moved here from opcodes/cgen-types.h. - * basic-ops.h: New file. Moved here from opcodes/cgen-ops.h. - * bitset.h: New file. Moved here from ../opcode/cgen-bitset.h. - Update license to GPL v3. - -Copyright (C) 2009-2012 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - -Local Variables: -mode: change-log -left-margin: 8 -fill-column: 74 -version-control: never -End: diff --git a/include/cgen/basic-modes.h b/include/cgen/basic-modes.h deleted file mode 100644 index bd87f3a..0000000 --- a/include/cgen/basic-modes.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Basic CGEN modes. - Copyright 2005, 2007, 2009 Free Software Foundation, Inc. - Contributed by Red Hat. - - This file is part of the GNU opcodes library. - - This library is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - It is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this library; see the file COPYING3. If not, write to the - Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -#ifndef CGEN_BASIC_MODES_H -#define CGEN_BASIC_MODES_H - -/* This file doesn't contain all modes, - just the basic/portable ones. - It also provides access to stdint.h (*1) so the includer doesn't have - to deal with the portability issues. - (*1): To the extent that bfd_stdint.h does for now. */ - -/* IWBN to avoid unnecessary dependencies on bfd-anything. */ -#include "bfd_stdint.h" - -typedef int8_t QI; -typedef uint8_t UQI; - -typedef int16_t HI; -typedef uint16_t UHI; - -typedef int32_t SI; -typedef uint32_t USI; - -typedef int64_t DI; -typedef uint64_t UDI; - -typedef int INT; -typedef unsigned int UINT; - -/* Cover macro to create a 64-bit integer. */ -#define MAKEDI(hi, lo) ((((DI) (SI) (hi)) << 32) | ((UDI) (USI) (lo))) - -#endif /* CGEN_BASIC_MODES_H */ diff --git a/include/cgen/basic-ops.h b/include/cgen/basic-ops.h deleted file mode 100644 index 49883f4..0000000 --- a/include/cgen/basic-ops.h +++ /dev/null @@ -1,347 +0,0 @@ -/* Basic semantics ops support for CGEN. - Copyright 2005-2013 Free Software Foundation, Inc. - Contributed by Red Hat. - - This file is part of the GNU opcodes library. - - This library is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - It is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this library; see the file COPYING3. If not, write to the - Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -#ifndef CGEN_BASIC_OPS_H -#define CGEN_BASIC_OPS_H - -#include - -#if defined (__GNUC__) && ! defined (SEMOPS_DEFINE_INLINE) -#define SEMOPS_DEFINE_INLINE -#define SEMOPS_INLINE extern inline -#else -#define SEMOPS_INLINE -#endif - -/* These don't really have a mode. */ -#define ANDIF(x, y) ((x) && (y)) -#define ORIF(x, y) ((x) || (y)) - -#define SUBBI(x, y) ((x) - (y)) -#define ANDBI(x, y) ((x) & (y)) -#define ORBI(x, y) ((x) | (y)) -#define XORBI(x, y) ((x) ^ (y)) -#define NEGBI(x) (- (x)) -#define NOTBI(x) (! (BI) (x)) -#define INVBI(x) (~ (x)) -#define EQBI(x, y) ((BI) (x) == (BI) (y)) -#define NEBI(x, y) ((BI) (x) != (BI) (y)) -#define LTBI(x, y) ((BI) (x) < (BI) (y)) -#define LEBI(x, y) ((BI) (x) <= (BI) (y)) -#define GTBI(x, y) ((BI) (x) > (BI) (y)) -#define GEBI(x, y) ((BI) (x) >= (BI) (y)) -#define LTUBI(x, y) ((BI) (x) < (BI) (y)) -#define LEUBI(x, y) ((BI) (x) <= (BI) (y)) -#define GTUBI(x, y) ((BI) (x) > (BI) (y)) -#define GEUBI(x, y) ((BI) (x) >= (BI) (y)) - -#define ADDQI(x, y) ((x) + (y)) -#define SUBQI(x, y) ((x) - (y)) -#define MULQI(x, y) ((x) * (y)) -#define DIVQI(x, y) ((QI) (x) / (QI) (y)) -#define UDIVQI(x, y) ((UQI) (x) / (UQI) (y)) -#define MODQI(x, y) ((QI) (x) % (QI) (y)) -#define UMODQI(x, y) ((UQI) (x) % (UQI) (y)) -#define SRAQI(x, y) ((QI) (x) >> (y)) -#define SRLQI(x, y) ((UQI) (x) >> (y)) -#define SLLQI(x, y) ((UQI) (x) << (y)) -extern QI RORQI (QI, int); -extern QI ROLQI (QI, int); -#define ANDQI(x, y) ((x) & (y)) -#define ORQI(x, y) ((x) | (y)) -#define XORQI(x, y) ((x) ^ (y)) -#define NEGQI(x) (- (x)) -#define NOTQI(x) (! (QI) (x)) -#define INVQI(x) (~ (x)) -#define ABSQI(x) ((x) < 0 ? -(x) : (x)) -#define EQQI(x, y) ((QI) (x) == (QI) (y)) -#define NEQI(x, y) ((QI) (x) != (QI) (y)) -#define LTQI(x, y) ((QI) (x) < (QI) (y)) -#define LEQI(x, y) ((QI) (x) <= (QI) (y)) -#define GTQI(x, y) ((QI) (x) > (QI) (y)) -#define GEQI(x, y) ((QI) (x) >= (QI) (y)) -#define LTUQI(x, y) ((UQI) (x) < (UQI) (y)) -#define LEUQI(x, y) ((UQI) (x) <= (UQI) (y)) -#define GTUQI(x, y) ((UQI) (x) > (UQI) (y)) -#define GEUQI(x, y) ((UQI) (x) >= (UQI) (y)) - -#define ADDHI(x, y) ((x) + (y)) -#define SUBHI(x, y) ((x) - (y)) -#define MULHI(x, y) ((x) * (y)) -#define DIVHI(x, y) ((HI) (x) / (HI) (y)) -#define UDIVHI(x, y) ((UHI) (x) / (UHI) (y)) -#define MODHI(x, y) ((HI) (x) % (HI) (y)) -#define UMODHI(x, y) ((UHI) (x) % (UHI) (y)) -#define SRAHI(x, y) ((HI) (x) >> (y)) -#define SRLHI(x, y) ((UHI) (x) >> (y)) -#define SLLHI(x, y) ((UHI) (x) << (y)) -extern HI RORHI (HI, int); -extern HI ROLHI (HI, int); -#define ANDHI(x, y) ((x) & (y)) -#define ORHI(x, y) ((x) | (y)) -#define XORHI(x, y) ((x) ^ (y)) -#define NEGHI(x) (- (x)) -#define NOTHI(x) (! (HI) (x)) -#define INVHI(x) (~ (x)) -#define ABSHI(x) ((x) < 0 ? -(x) : (x)) -#define EQHI(x, y) ((HI) (x) == (HI) (y)) -#define NEHI(x, y) ((HI) (x) != (HI) (y)) -#define LTHI(x, y) ((HI) (x) < (HI) (y)) -#define LEHI(x, y) ((HI) (x) <= (HI) (y)) -#define GTHI(x, y) ((HI) (x) > (HI) (y)) -#define GEHI(x, y) ((HI) (x) >= (HI) (y)) -#define LTUHI(x, y) ((UHI) (x) < (UHI) (y)) -#define LEUHI(x, y) ((UHI) (x) <= (UHI) (y)) -#define GTUHI(x, y) ((UHI) (x) > (UHI) (y)) -#define GEUHI(x, y) ((UHI) (x) >= (UHI) (y)) - -#define ADDSI(x, y) ((x) + (y)) -#define SUBSI(x, y) ((x) - (y)) -#define MULSI(x, y) ((x) * (y)) -#define DIVSI(x, y) ((SI) (x) / (SI) (y)) -#define UDIVSI(x, y) ((USI) (x) / (USI) (y)) -#define MODSI(x, y) ((SI) (x) % (SI) (y)) -#define UMODSI(x, y) ((USI) (x) % (USI) (y)) -#define SRASI(x, y) ((SI) (x) >> (y)) -#define SRLSI(x, y) ((USI) (x) >> (y)) -#define SLLSI(x, y) ((USI) (x) << (y)) -extern SI RORSI (SI, int); -extern SI ROLSI (SI, int); -#define ANDSI(x, y) ((x) & (y)) -#define ORSI(x, y) ((x) | (y)) -#define XORSI(x, y) ((x) ^ (y)) -#define NEGSI(x) (- (x)) -#define NOTSI(x) (! (SI) (x)) -#define INVSI(x) (~ (x)) -#define ABSSI(x) ((x) < 0 ? -(x) : (x)) -#define EQSI(x, y) ((SI) (x) == (SI) (y)) -#define NESI(x, y) ((SI) (x) != (SI) (y)) -#define LTSI(x, y) ((SI) (x) < (SI) (y)) -#define LESI(x, y) ((SI) (x) <= (SI) (y)) -#define GTSI(x, y) ((SI) (x) > (SI) (y)) -#define GESI(x, y) ((SI) (x) >= (SI) (y)) -#define LTUSI(x, y) ((USI) (x) < (USI) (y)) -#define LEUSI(x, y) ((USI) (x) <= (USI) (y)) -#define GTUSI(x, y) ((USI) (x) > (USI) (y)) -#define GEUSI(x, y) ((USI) (x) >= (USI) (y)) - -#ifdef DI_FN_SUPPORT -extern DI ADDDI (DI, DI); -extern DI SUBDI (DI, DI); -extern DI MULDI (DI, DI); -extern DI DIVDI (DI, DI); -extern DI UDIVDI (DI, DI); -extern DI MODDI (DI, DI); -extern DI UMODDI (DI, DI); -extern DI SRADI (DI, int); -extern UDI SRLDI (UDI, int); -extern UDI SLLDI (UDI, int); -extern DI RORDI (DI, int); -extern DI ROLDI (DI, int); -extern DI ANDDI (DI, DI); -extern DI ORDI (DI, DI); -extern DI XORDI (DI, DI); -extern DI NEGDI (DI); -extern int NOTDI (DI); -extern DI INVDI (DI); -extern int EQDI (DI, DI); -extern int NEDI (DI, DI); -extern int LTDI (DI, DI); -extern int LEDI (DI, DI); -extern int GTDI (DI, DI); -extern int GEDI (DI, DI); -extern int LTUDI (UDI, UDI); -extern int LEUDI (UDI, UDI); -extern int GTUDI (UDI, UDI); -extern int GEUDI (UDI, UDI); -#else /* ! DI_FN_SUPPORT */ -#define ADDDI(x, y) ((x) + (y)) -#define SUBDI(x, y) ((x) - (y)) -#define MULDI(x, y) ((x) * (y)) -#define DIVDI(x, y) ((DI) (x) / (DI) (y)) -#define UDIVDI(x, y) ((UDI) (x) / (UDI) (y)) -#define MODDI(x, y) ((DI) (x) % (DI) (y)) -#define UMODDI(x, y) ((UDI) (x) % (UDI) (y)) -#define SRADI(x, y) ((DI) (x) >> (y)) -#define SRLDI(x, y) ((UDI) (x) >> (y)) -#define SLLDI(x, y) ((UDI) (x) << (y)) -extern DI RORDI (DI, int); -extern DI ROLDI (DI, int); -#define ANDDI(x, y) ((x) & (y)) -#define ORDI(x, y) ((x) | (y)) -#define XORDI(x, y) ((x) ^ (y)) -#define NEGDI(x) (- (x)) -#define NOTDI(x) (! (DI) (x)) -#define INVDI(x) (~ (x)) -#define ABSDI(x) ((x) < 0 ? -(x) : (x)) -#define EQDI(x, y) ((DI) (x) == (DI) (y)) -#define NEDI(x, y) ((DI) (x) != (DI) (y)) -#define LTDI(x, y) ((DI) (x) < (DI) (y)) -#define LEDI(x, y) ((DI) (x) <= (DI) (y)) -#define GTDI(x, y) ((DI) (x) > (DI) (y)) -#define GEDI(x, y) ((DI) (x) >= (DI) (y)) -#define LTUDI(x, y) ((UDI) (x) < (UDI) (y)) -#define LEUDI(x, y) ((UDI) (x) <= (UDI) (y)) -#define GTUDI(x, y) ((UDI) (x) > (UDI) (y)) -#define GEUDI(x, y) ((UDI) (x) >= (UDI) (y)) -#endif /* DI_FN_SUPPORT */ - -#define EXTBIQI(x) ((QI) (BI) (x)) -#define EXTBIHI(x) ((HI) (BI) (x)) -#define EXTBISI(x) ((SI) (BI) (x)) -#if defined (DI_FN_SUPPORT) -extern DI EXTBIDI (BI); -#else -#define EXTBIDI(x) ((DI) (BI) (x)) -#endif -#define EXTQIHI(x) ((HI) (QI) (x)) -#define EXTQISI(x) ((SI) (QI) (x)) -#if defined (DI_FN_SUPPORT) -extern DI EXTQIDI (QI); -#else -#define EXTQIDI(x) ((DI) (QI) (x)) -#endif -#define EXTHIHI(x) ((HI) (HI) (x)) -#define EXTHISI(x) ((SI) (HI) (x)) -#define EXTSISI(x) ((SI) (SI) (x)) -#if defined (DI_FN_SUPPORT) -extern DI EXTHIDI (HI); -#else -#define EXTHIDI(x) ((DI) (HI) (x)) -#endif -#if defined (DI_FN_SUPPORT) -extern DI EXTSIDI (SI); -#else -#define EXTSIDI(x) ((DI) (SI) (x)) -#endif - -#define ZEXTBIQI(x) ((QI) (BI) (x)) -#define ZEXTBIHI(x) ((HI) (BI) (x)) -#define ZEXTBISI(x) ((SI) (BI) (x)) -#if defined (DI_FN_SUPPORT) -extern DI ZEXTBIDI (BI); -#else -#define ZEXTBIDI(x) ((DI) (BI) (x)) -#endif -#define ZEXTQIHI(x) ((HI) (UQI) (x)) -#define ZEXTQISI(x) ((SI) (UQI) (x)) -#if defined (DI_FN_SUPPORT) -extern DI ZEXTQIDI (QI); -#else -#define ZEXTQIDI(x) ((DI) (UQI) (x)) -#endif -#define ZEXTHISI(x) ((SI) (UHI) (x)) -#define ZEXTHIHI(x) ((HI) (UHI) (x)) -#define ZEXTSISI(x) ((SI) (USI) (x)) -#if defined (DI_FN_SUPPORT) -extern DI ZEXTHIDI (HI); -#else -#define ZEXTHIDI(x) ((DI) (UHI) (x)) -#endif -#if defined (DI_FN_SUPPORT) -extern DI ZEXTSIDI (SI); -#else -#define ZEXTSIDI(x) ((DI) (USI) (x)) -#endif - -#define TRUNCQIBI(x) ((BI) (QI) (x)) -#define TRUNCHIBI(x) ((BI) (HI) (x)) -#define TRUNCHIQI(x) ((QI) (HI) (x)) -#define TRUNCSIBI(x) ((BI) (SI) (x)) -#define TRUNCSIQI(x) ((QI) (SI) (x)) -#define TRUNCSIHI(x) ((HI) (SI) (x)) -#define TRUNCSISI(x) ((SI) (SI) (x)) -#if defined (DI_FN_SUPPORT) -extern BI TRUNCDIBI (DI); -#else -#define TRUNCDIBI(x) ((BI) (DI) (x)) -#endif -#if defined (DI_FN_SUPPORT) -extern QI TRUNCDIQI (DI); -#else -#define TRUNCDIQI(x) ((QI) (DI) (x)) -#endif -#if defined (DI_FN_SUPPORT) -extern HI TRUNCDIHI (DI); -#else -#define TRUNCDIHI(x) ((HI) (DI) (x)) -#endif -#if defined (DI_FN_SUPPORT) -extern SI TRUNCDISI (DI); -#else -#define TRUNCDISI(x) ((SI) (DI) (x)) -#endif - -/* Composing/decomposing the various types. - Word ordering is endian-independent. Words are specified most to least - significant and word number 0 is the most significant word. - ??? May also wish an endian-dependent version. Later. */ - -static QI SUBWORDSIQI (SI, int); -static HI SUBWORDSIHI (SI, int); -static QI SUBWORDDIQI (DI, int); -static HI SUBWORDDIHI (DI, int); -static SI SUBWORDDISI (DI, int); - -#ifdef SEMOPS_DEFINE_INLINE - -SEMOPS_INLINE QI -SUBWORDSIQI (SI in, int byte) -{ - assert (byte >= 0 && byte <= 3); - return (UQI) (in >> (8 * (3 - byte))) & 0xFF; -} - -SEMOPS_INLINE HI -SUBWORDSIHI (SI in, int word) -{ - if (word == 0) - return (USI) in >> 16; - else - return in; -} - -SEMOPS_INLINE QI -SUBWORDDIQI (DI in, int byte) -{ - assert (byte >= 0 && byte <= 7); - return (UQI) (in >> (8 * (7 - byte))) & 0xFF; -} - -SEMOPS_INLINE HI -SUBWORDDIHI (DI in, int word) -{ - assert (word >= 0 && word <= 3); - return (UHI) (in >> (16 * (3 - word))) & 0xFFFF; -} - -SEMOPS_INLINE SI -SUBWORDDISI (DI in, int word) -{ - if (word == 0) - return (UDI) in >> 32; - else - return in; -} - -#endif /* SUBWORD,JOIN */ - -#endif /* CGEN_BASIC_OPS_H */ diff --git a/include/cgen/bitset.h b/include/cgen/bitset.h deleted file mode 100644 index 7a6a993..0000000 --- a/include/cgen/bitset.h +++ /dev/null @@ -1,56 +0,0 @@ -/* Header file the type CGEN_BITSET. - Copyright 2002, 2005, 2009 Free Software Foundation, Inc. - - This file is part of the GNU opcodes library. - - This library is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - It is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this library; see the file COPYING3. If not, write to the - Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -#ifndef CGEN_BITSET_H -#define CGEN_BITSET_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* A bitmask represented as a string. - Each member of the set is represented as a bit - in the string. Bytes are indexed from left to right in the string and - bits from most significant to least within each byte. - - For example, the bit representing member number 6 is (set->bits[0] & 0x02). -*/ -typedef struct cgen_bitset -{ - unsigned length; - char *bits; -} CGEN_BITSET; - -extern CGEN_BITSET *cgen_bitset_create PARAMS ((unsigned)); -extern void cgen_bitset_init PARAMS ((CGEN_BITSET *, unsigned)); -extern void cgen_bitset_clear PARAMS ((CGEN_BITSET *)); -extern void cgen_bitset_add PARAMS ((CGEN_BITSET *, unsigned)); -extern void cgen_bitset_set PARAMS ((CGEN_BITSET *, unsigned)); -extern int cgen_bitset_compare PARAMS ((CGEN_BITSET *, CGEN_BITSET *)); -extern void cgen_bitset_union PARAMS ((CGEN_BITSET *, CGEN_BITSET *, CGEN_BITSET *)); -extern int cgen_bitset_intersect_p PARAMS ((CGEN_BITSET *, CGEN_BITSET *)); -extern int cgen_bitset_contains PARAMS ((CGEN_BITSET *, unsigned)); -extern CGEN_BITSET *cgen_bitset_copy PARAMS ((CGEN_BITSET *)); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif diff --git a/include/coff/ChangeLog b/include/coff/ChangeLog deleted file mode 100644 index 2a9c0ab..0000000 --- a/include/coff/ChangeLog +++ /dev/null @@ -1,373 +0,0 @@ -2013-07-10 Tristan Gingold - - * rs6000.h (external_core_dumpx): New structure. - (external_ld_info32): Ditto. - -2013-07-02 Tristan Gingold - - * internal.h (C_STTLS, C_GTLS): Define. - * xcoff.h (XMC_TL, XMC_TU, XMC_TE): Define. - -2013-02-04 Alan Modra - - * ti.h (SWAP_OUT_RELOC_EXTRA): Define. - -2013-01-02 Martin Storsjo - - * arm.h (ARMV7PEMAGIC): Define. - (ARMBADMAG): Update. - -2011-06-02 Nick Clifton - - * i860.h: Fix spelling mistake in comment. - -2011-05-04 Tristan Gingold - - * rs6000.h (union external_auxent): Add x_ftype field. - * rs6k64.h: (struct external_auxent): Remap x_file field. - -2011-05-04 Tristan Gingold - - * rs6000.h (struct external_exceptab): New struct. - (EXCEPTSZ): New macro. - * rs6k64.h: (struct external_exceptab): New struct. - (EXCEPTSZ): New macro. - -2011-05-03 Tristan Gingold - - * rs6000.h (struct external_ldsym): Use E_SYMNMLEN instead of - SYMNMLEN. - -2011-04-27 Tristan Gingold - - * xcoff.h (F_FDPR_PROF, F_FDPR_OPTI, F_DSA, F_VARPG) - (STYP_DWARF, SSUBTYP_DWINFO) - (SSUBTYP_DWLINE, SSUBTYP_DWPBNMS, SSUBTYP_DWPBTYP) - (SSUBTYP_DWARNGE, SSUBTYP_DWABREV, SSUBTYP_DWSTR) - (SSUBTYP_DWRNGES, STYP_TDATA, STYP_TBSS, R_TLS, R_TLS_IE) - (R_TLS_LD, R_TLS_LE, R_TLSM, R_TLSML, R_TOCU, R_TOCL, C_DWARF): - New macros. - -2011-03-31 Tristan Gingold - - * internal.h (C_NULL_VALUE): Define. - -2010-06-29 Alan Modra - - * maxq.h: Delete file. - -2010-04-15 Nick Clifton - - * alpha.h: Update copyright notice to use GPLv3. - * apollo.h: Likewise. - * arm.h: Likewise. - * aux-coff.h: Likewise. - * ecoff.h: Likewise. - * external.h: Likewise. - * go32exe.h: Likewise. - * h8300.h: Likewise. - * h8500.h: Likewise. - * i386.h: Likewise. - * i860.h: Likewise. - * i960.h: Likewise. - * ia64.h: Likewise. - * internal.h: Likewise. - * m68k.h: Likewise. - * m88k.h: Likewise. - * maxq.h: Likewise. - * mcore.h: Likewise. - * mips.h: Likewise. - * mipspe.h: Likewise. - * or32.h: Likewise. - * pe.h: Likewise. - * powerpc.h: Likewise. - * rs6000.h: Likewise. - * rs6k64.h: Likewise. - * sh.h: Likewise. - * sparc.h: Likewise. - * ti.h: Likewise. - * tic30.h: Likewise. - * tic4x.h: Likewise. - * tic54x.h: Likewise. - * tic80.h: Likewise. - * w65.h: Likewise. - * we32k.h: Likewise. - * x86_64.h: Likewise. - * xcoff.h: Likewise. - * z80.h: Likewise. - * z8k.h: Likewise. - -2009-12-02 Jerker Bäck - - PR binutils/11017 - * i386lh (COFF_PAGE_SIZE): Define. - * x86_64.h (COFF_PAGE_SIZE): Define. - -2009-10-17 Arnold Metselaar - - * z80.h: Store alignment requirement in section header, to allow - ld to preserve alignment. Some code was copied from ti.h. - -2009-09-05 Martin Thuresson - - * ti.h (GET_LNSZ_SIZE, PUT_LNSZ_SIZE): Updated name of class - variable to in_class to match changes in function that use this - macro. - -2009-08-10 Jan Kratochvil - - Fix references past allocated memory for i386-*-go32. - * ti.h (COFF_ADJUST_FILEHDR_IN_POST, COFF_ADJUST_FILEHDR_OUT_POST): - Reference F_TARGET_ID only when !COFF0_P. - -2009-08-10 Jan Kratochvil - - Stop using bfd_usrdata in libbfd. - * go32exe.h (struct external_filehdr_go32_exe , FILHSZ): Replace - STUBSIZE by GO32_STUBSIZE. - (STUBSIZE): Move the definition ... - * internal.h (GO32_STUBSIZE): ... here and rename it. - (struct internal_filehdr , F_GO32STUB): New. - -2009-06-03 Ulrich Weigand - - * symconst.h (btLong64, btULong64, btLongLong64, btULongLong64, - btAdr64, btInt64, btUInt64): New defines. - -2009-04-21 Kai Tietz - - * pe.h (pex64_runtime_function): New structure. - (external_pex64_runtime_function): Likewise. - (pex64_unwind_code): Likewise. - (external_pex64_unwind_code): Likewise. - (pex64_unwind_info): Likewise. - (external_pex64_unwind_info): Likewise. - (external_pex64_scope): Likewise. - (pex64_scope): Likewise. - (pex64_scope_entry): Likewise. - (external_pex64_scope_entry): Likewise. - (PEX64_IS_RUNTIME_FUNCTION_CHAINED): New macro. - (PEX64_GET_UNWINDDATA_UNIFIED_RVA): Likewise. - (PEX64_UNWCODE_CODE): Likewise. - (PEX64_UNWCODE_INFO): Likewise. - (UWOP_...): Add defines for unwind code. - (UNW_FLAG_...): Add defined for unwind info flags. - (PEX64_SCOPE_ENTRY_SIZE): New macro. - (PEX64_UWI_VERSION): Likewise. - (PEX64_UWI_FLAGS): Likewise. - (PEX64_UWI_FRAMEREG): Likewise. - (PEX64_UWI_FRAMEOFF): Likewise. - (PEX64_UWI_SIZEOF_UWCODE_ARRAY): Likewise. - (PEX64_OFFSET_TO_UNWIND_CODE): Likewise. - (PEX64_OFFSET_TO_HANDLER_RVA): Likewise. - (PEX64_OFFSET_TO_SCOPE_COUNT): Likewise. - (PEX64_SCOPE_ENTRY): Likewise. - -2009-04-17 H.J. Lu - - * pe.h (IMAGE_SUBSYSTEM_EFI_ROM): Renamed to ... - (IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER): This. - -2009-04-01 Richard Sandiford - - * xcoff.h (xcoff_link_hash_table): Move to bfd/xcofflink.c. - -2009-03-14 Richard Sandiford - - * xcoff.h (XCOFF_EXPALL, XCOFF_EXPFULL): New flags. - (xcoff_loader_info): Add auto_export_flags. - -2009-03-14 Richard Sandiford - - * internal.h (C_AIX_WEAKEXT): New macro. - (C_WEAKEXT): Use the GNU definition in the generic part of the file, - and conditionally reset it to C_AIX_WEAKEXT in the XCOFF part of - the file. - (CSECT_SYM_P): New macro. - * xcoff.h (L_WEAK): Define. - (EXTERN_SYM_P): New macro. - -2009-03-14 Richard Sandiford - - * xcoff.h (XCOFF_ALLOCATED): New flag. - -2009-03-14 Richard Sandiford - - * xcoff.h (XCOFF_CALLED, XCOFF_IMPORT): Update comments. - (XCOFF_WAS_UNDEFINED): New flag. - (xcoff_link_hash_table): Add an "rtld" field. - -2009-03-14 Dave Korn - - * internal.h (struct internal_extra_pe_aouthdr): Correct type - of DllCharacteristics flags field to unsigned. - * pe.h (IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE, - IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE, - IMAGE_DLL_CHARACTERISTICS_NX_COMPAT, - IMAGE_DLLCHARACTERISTICS_NO_ISOLATION, - IMAGE_DLLCHARACTERISTICS_NO_SEH, - IMAGE_DLLCHARACTERISTICS_NO_BIND, - IMAGE_DLLCHARACTERISTICS_WDM_DRIVER, - IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE): New macros to - define flag bit values for DllCharacteristics field of PEAOUTHDR, - PEPAOUTHDR. - -2008-12-23 Johan Olmutz Nielsen - - * ti.h (COFF_ADJUST_SCNHDR_OUT_PRE): Define. - -2008-06-17 Nick Clifton - - * ti.h (GET_SCNHDR_NLNNO): Provide an alternative version of this - macro which does not trigger an array bounds warning in gcc. - (PUT_SCNHDR_NLNNO): Likewise. - (GET_SCNHDR_FLAGS): Likewise. - (PUT_SCNHDR_FLAGS): Likewise. - (GET_SCNHDR_PAGE): Likewise. - (PUT_SCNHDR_PAGE): Likewise. - -2007-11-05 Danny Smith - - * pe.h (COFF_ENCODE_ALIGNMENT) Define. - -2007-08-02 H.J. Lu - - * pe.h (IMAGE_SCN_ALIGN_POWER_BIT_POS): New. - (IMAGE_SCN_ALIGN_POWER_BIT_MASK): Likewise. - (IMAGE_SCN_ALIGN_POWER_NUM): Likewise. - (IMAGE_SCN_ALIGN_POWER_CONST): Likewise. - (IMAGE_SCN_ALIGN_128BYTES): Likewise. - (IMAGE_SCN_ALIGN_256BYTES): Likewise. - (IMAGE_SCN_ALIGN_512BYTES): Likewise. - (IMAGE_SCN_ALIGN_1024BYTES): Likewise. - (IMAGE_SCN_ALIGN_2048BYTES): Likewise. - (IMAGE_SCN_ALIGN_4096BYTES): Likewise. - (IMAGE_SCN_ALIGN_8192BYTES): Likewise. - (IMAGE_SCN_ALIGN_1BYTES): Redefined with - IMAGE_SCN_ALIGN_POWER_CONST. - (IMAGE_SCN_ALIGN_2BYTES): Likewise. - (IMAGE_SCN_ALIGN_4BYTES): Likewise. - (IMAGE_SCN_ALIGN_8BYTES): Likewise. - (IMAGE_SCN_ALIGN_16BYTES): Likewise. - (IMAGE_SCN_ALIGN_32BYTES): Likewise. - (IMAGE_SCN_ALIGN_64BYTES): Likewise. - -2007-07-12 Kai Tietz - - * internal.h (struct internal_syment): Use bfd_hostptr_t for - _n_zeroes and _n_offset fields. - -2007-04-27 Alan Modra - - * rs6000.h: Write Mimi's name in ASCII. - -2007-03-19 H.J. Lu - - * internal.h (internal_extra_pe_aouthdr): Add Magic, - MajorLinkerVersion, MinorLinkerVersion, SizeOfCode, - SizeOfInitializedData, SizeOfUninitializedData, - AddressOfEntryPoint, BaseOfCode and BaseOfData. - -2006-12-05 Michael Tautschnig - Nick Clifton - - * external.h (struct external_aouthdr): Add ATTRIBUTE_PACKED. - (struct external_syment): Likewise. - (union external_auxent): Likewise. - -2006-11-14 Phil Lello - - * pe.h: Added defines for IMAGE_SUBSYSTEM_EFI_ROM and - IMAGE_SUBSYSTEM_XBOX. - * internal.h: Added defines for PE directory entry types. - NB: in internal.h because IMAGE_NUMBEROF_DIRECTORY_ENTRYIES is in - pe.h - -2006-09-20 Kai Tietz - - * external.h: Add proper external_aouthdr64 structure (without - data_start member). - (AOUTHDRSZ64): Set according structure size. - (AOUTHDR64): As typedef of external_aouthdr64 structure. - * internal.h: Add relocation identifiers for coff. - * pe.h: Add define IMAGE_FILE_MACHINE_AMD64 the coff signature. - (PEPAOUTHDR): Adjust structure to have proper size (using AOUTHDR64). - (PEPAOUTSZ): Calculated size of 240. - * x86_64.h: Coff information for x86_64 (AMD64). - -2006-02-05 Arnold Metselaar - - * internal.h: Add relocation number R_IMM24 for Z80. - -2005-10-25 Arnold Metselaar - - * internal.h: Add relocation number for Z80 - * z80.h: New file. - -2005-08-18 Alan Modra - - * a29k.h: Delete. - -2005-07-14 Daniel Marques - - * alpha.h (ALPHA_ECOFF_COMPRESSEDMAG): Define. - * ecoff.h (ALPHA_MAGIC_COMPRESSED): Define. - -2005-05-10 Nick Clifton - - * Update the address and phone number of the FSF organization in - the GPL notices in the following files: - a29k.h, alpha.h, apollo.h, arm.h, aux-coff.h, ecoff.h, external.h, - go32exe.h, h8300.h, h8500.h, i386.h, i860.h, i960.h, ia64.h, - internal.h, m68k.h, m88k.h, maxq.h, mcore.h, mips.h, mipspe.h, - or32.h, pe.h, powerpc.h, rs6k64.h, sh.h, sparc.h, ti.h, tic30.h, - tic4x.h, tic54x.h, tic80.h, w65.h, we32k.h, xcoff.h, z8k.h - -2005-02-21 Alan Modra - - * xcoff.h (struct xcoff_loader_info): Warning fix. - -2005-01-10 Inderpreet Singh - - * maxq.h (F_MAXQ10, F_MAXQ20): Define. - -2004-11-08 Inderpreet Singh - Vineet Sharma - - * maxq.h: New file: Defintions for the maxq port. - -2004-11-08 Aaron W. LaFramboise - - * pe.h (IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY): Define. - (IMAGE_WEAK_EXTERN_SEARCH_LIBRARY): Same. - (IMAGE_WEAK_EXTERN_SEARCH_ALIAS): Same. - -2004-08-13 Mark Kettenis - - * symconst.h (langMax): Fix typo in comment. - -2004-04-23 Chris Demetriou - - * mips.h (MIPS_R_RELHI, MIPS_R_RELLO, MIPS_R_SWITCH): Remove - (MIPS_R_PCREL16): Update comment. - * ecoff.h (struct ecoff_value_adjust): Remove structure. - (struct ecoff_debug_info): Remove 'adjust' member. - -2004-04-20 DJ Delorie - - * internal.h (R_SECREL32): Add. - -For older changes see ChangeLog-9103 - -Copyright (C) 2004-2012 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - -Local Variables: -mode: change-log -left-margin: 8 -fill-column: 74 -version-control: never -End: diff --git a/include/coff/ChangeLog-9103 b/include/coff/ChangeLog-9103 deleted file mode 100644 index c8a7b10..0000000 --- a/include/coff/ChangeLog-9103 +++ /dev/null @@ -1,1186 +0,0 @@ -2005-04-13 H.J. Lu - - Moved from ../ChangeLog - - 2003-04-04 Svein E. Seldal - * tic4x.h: Namespace cleanup. Replace s/c4x/tic4x - and s/c3x/tic3x/ - - 2003-01-20 Svein E. Seldal - * tic4x.h (TICOFF_TARGET_MACHINE_GET): Fixed define bug - * ti.h (TICOFF_TARGET_MACHINE_GET): Added macros - - 2002-08-28 Michael Hayes - * internal.h: Add new relocation types. - * ti.h: Add file-header flags for tic4x code. - * tic4x.h: New file - -2003-12-02 Graham Reed - - * internal.h (C_WEAKEXT): Add alternative value for AIX 5.2 - based targets. - -2003-08-23 Jason Eckhardt - - * coff/i860.h (COFF860_R_PAIR, COFF860_R_LOW0, COFF860_R_LOW1, - COFF860_R_LOW2, COFF860_R_LOW3, COFF860_R_LOW4, COFF860_R_SPLIT0, - COFF860_R_SPLIT1, COFF860_R_SPLIT2, COFF860_R_HIGHADJ, - COFF860_R_BRADDR): Define new relocation constants and document. - Minor formatting adjustments. - -2003-08-07 Alan Modra - - * ti.h (GET_SCNHDR_NRELOC): Rename PTR param to LOC. - (PUT_SCNHDR_NRELOC, GET_SCNHDR_NLNNO, PUT_SCNHDR_NLNNO): Likewise. - (GET_SCNHDR_FLAGS, PUT_SCNHDR_FLAGS): Likewise. - (GET_SCNHDR_PAGE, PUT_SCNHDR_PAGE): Likewise. - -2003-07-17 Jeff Muizelaar - - * pe.h: (IMAGE_FILE_NET_RUN_FROM_SWAP): Define. - (IMAGE_FILE_MACHINE_WCEMIPSV2): Define. - (IMAGE_FILE_MACHINE_SH3DSP): Define. - (IMAGE_FILE_MACHINE_SH3E): Define. - (IMAGE_FILE_MACHINE_SH5): Define. - (IMAGE_FILE_MACHINE_AM33): Define. - (IMAGE_FILE_MACHINE_POWERPCFP): Define. - (IMAGE_FILE_MACHINE_AXP64): Define. - (IMAGE_FILE_MACHINE_TRICORE): Define. - (IMAGE_FILE_MACHINE_CEF): Define. - (IMAGE_FILE_MACHINE_EBC): Define. - (IMAGE_FILE_MACHINE_AMD64): Define. - (IMAGE_FILE_MACHINE_M32R): Define. - (IMAGE_FILE_MACHINE_CEE): Define. - -2003-07-14 Christian Groessler - - * i860.h (AOUTSZ): Define for i860 coff. - -2003-06-29 Andreas Jaeger - - * xcoff.h (struct __rtinit ): Convert to ISO C90 prototypes. - - * ecoff.h: Convert to ISO C90 prototypes. Replace PTR by void *. - -2003-04-24 Dhananjay Deshpande - - * coff/h8300.h (H8300HNMAGIC, H8300SNMAGIC): New. - (H8300HNBADMAG, H8300SNBADMAG): New. - -2003-04-15 Rohit Kumar Srivastava - - * sh.h: Replace occurrances of 'Hitachi' with 'Renesas'. - * h8300.h: Likewise. - * h8500.h: Likewise. - -2003-03-25 Stan Cox - Nick Clifton - - Contribute support for Intel's iWMMXt chip - an ARM variant: - - * arm.h (ARM_NOTE_SECTION): Define. - -2002-11-30 Alan Modra - - * ecoff.h: Replace boolean with bfd_boolean. - * xcoff.h: Likewise. - -2002-03-18 Tom Rix - - * rs6k64.h: Add U64_TOCMAGIC, AIX 5 64 bit magic number. - -2002-02-01 Tom Rix - - * xcoff.h: Conditionally support for pre AIX 4.3. - -2002-01-31 Ivan Guzvinec - - * or32.h: New file. - -2001-12-24 Tom Rix - - * xcoff.h (xcoff_big_format_p): Make the default archive - format. - (XCOFFARMAG_ELEMENT_SIZE, XCOFFARMAGBIG_ELEMENT_SIZE): Define for - archive header ascii elements. - -2001-12-17 Tom Rix - - * xcoff.h : Add .except and .typchk section string and styp flags. - Fix xcoff_big_format_p macro. - -2001-12-16 Tom Rix - - * xcoff.h : Clean up formatting. - -2002-01-15 Richard Earnshaw - - * arm.h (F_VFP_FLOAT): Define. - -2001-11-11 Timothy Wall - - * ti.h: Move arch-specific stuff from here... - (COFF_ADJUST_SYM_IN/OUT): Optionally put page flag into symbol - value. - * tic54x.h: ...to here. - -2001-10-26 Christian Groessler - - * external.h (GET_LINENO_LNNO): Fix usage of H_GET_32/16. - (PUT_LINENO_LNNO): Likewise with H_PUT_32/16. - -2001-09-21 Nick Clifton - - * ti.h (GET_SCNHDR_PAGE): Fix compile time warning. - -2001-09-18 Alan Modra - - * external.h (GET_LINENO_LNNO): Use H_GET_32/16. - (PUT_LINENO_LNNO): Use H_PUT_32/16. - * m88k.h (GET_LNSZ_SIZE, GET_LNSZ_LNNO, GET_SCN_NRELOC, - GET_SCN_NLINNO): Use H_GET_32. - (PUT_LNSZ_LNNO, PUT_LNSZ_SIZE, PUT_SCN_NRELOC, PUT_SCN_NLINNO): - Use H_PUT_32. - * ti.h: Formatting fixes. Make use of H_GET_* and H_PUT_* throughout. - * xcoff.h: White space changes. - -2001-09-05 Tom Rix - - * xcoff.h : Add XCOFF_SYSCALL32 and XCOFF_SYSCALL64 hash table flags. - -2001-08-27 Andreas Jaeger - - * xcoff.h (struct __rtinit): Make proper prototype for rtl. - -Fri Aug 24 01:18:51 2001 J"orn Rennecke - - * internal.h (R_JMP2, R_JMPL2, R_MOVL2): Comment spelling fix. - -2001-04-05 Tom Rix - - * rs6000.h : move xcoff32 external structures from xcofflink. - * rs6k64.h : move xcoff64 external structures from xcofflink. - * internal.h : promote 32 bit structure elements to 64 bit - for xcoff64 support - * xcoff.h : New file. - -2001-03-23 Nick Clifton - - * a29k.h: Fix compile time warning. - * external.h: Fix compile time warning. - * m88k.h: Fix compile time warning. - -2001-03-13 Nick Clifton - - * external.h: New file. Common structure definitions found in - other COFF header files. - - * a29k.h: Use external.h. - * apollo.h: Use external.h. - * arm.h: Use external.h. - * h8300.h: Use external.h. - * h8500.h: Use external.h. - * i386.h: Use external.h. - * i860.h: Use external.h. - * ia64.h: Use external.h. - * m68k.h: Use external.h. - * m88k.h: Use external.h. - * mcore.h: Use external.h. - * mips.h: Use external.h. - * mipspe.h: Use external.h. - * powerpc.h: Use external.h. - * rs6000.h: Use external.h. - * rs6k64.h: Use external.h. - * sh.h: Use external.h. - * sparc.h: Use external.h. - * tic30.h: Use external.h. - * tic80.h: Use external.h. - * w65.h: Use external.h. - * we32k.h: Use external.h. - * z8k.h: Use external.h. - -2001-02-09 David Mosberger - - * pe.h (PEPAOUTSZ): Rename from PEP64AOUTSZ. - Rename from PEPAOUTHDR. - -2001-01-23 H.J. Lu - - * pe.h (struct external_PEI_DOS_hdr): New. - (struct external_PEI_IMAGE_hdr): New. - -2000-12-11 Alan Modra - - * ti.h (OCTETS_PER_BYTE_POWER): Change #warning to #error. - -2000-12-08 Alan Modra - - * ti.h (OCTETS_PER_BYTE_POWER): Change #warn to #warning. - -2000-06-30 DJ Delorie - - * pe.h: Clarify a comment. - -2000-05-05 Clinton Popetz - - * rs6k64.h (U802TOC64MAGIC): Change to U803XTOCMAGIC. - -2000-04-24 Clinton Popetz - - * rs6k64.h: New file. - -2000-04-17 Timothy Wall - - * ti.h: Load page cleanup. - * intental.h: Add load page field. - -Mon Apr 17 16:44:01 2000 David Mosberger - - * pe.h (PEP64AOUTHDR): New header for PE+. - (PEP64AOUTSZ): New macro. - (IMAGE_SUBSYSTEM_UNKNOWN): New macro. - (IMAGE_SUBSYSTEM_NATIVE): Ditto. - (IMAGE_SUBSYSTEM_WINDOWS_GUI): Ditto. - (IMAGE_SUBSYSTEM_WINDOWS_CUI): Ditto. - (IMAGE_SUBSYSTEM_POSIX_CUI): Ditto. - (IMAGE_SUBSYSTEM_WINDOWS_CE_GUI): Ditto. - (IMAGE_SUBSYSTEM_EFI_APPLICATION): Ditto. - (IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER): Ditto. - (IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER): Ditto. - * internal.h (PE_DEF_FILE_ALIGNMENT): Define only if not defined - already. - * ia64.h: New file. - -2000-04-13 Alan Modra - - * ti.h (ADDR_MASK): Don't use ul suffix on constants. - (PG_MASK): Ditto. - -2000-04-11 Timothy Wall - - * ti.h: Remove load page references until load pages are - reimplemented. - * tic54x.h: Ditto. - -2000-04-07 Timothy Wall - - * internal.h: Fix some comments related to TI COFF (instead of tic80). - * ti.h: New. - * tic54x.h: New. - -Wed Apr 5 22:08:41 2000 J"orn Rennecke - - * sh.h (R_SH_LOOP_START, R_SH_LOOP_END): Define. - -2000-03-15 Kazu Hirata - - * internal.h: Fix a typo in the comment for R_MOVL2. - -2000-02-28 Nick Clifton - - * mipspe.h (MIPS_PE_MAGIC): Define. - * sh.h (SH_PE_MAGIC): Define. - -2000-02-22 Nick Clifton DJ Delorie - - * sh.h: Add Windows CE definitions. - * arm.h: Add Windows CE definitions. - * mipspe.h: New file: Windows CE definitions for MIPS. - * pe.h: Add constants for ILF support. - -2000-01-05 Nick Clifton - - * pe.h: Fix formatting of comments. - (IMAGE_FILE_AGGRESSIVE_WS_TRIM): Define. - (IMAGE_FILE_LARGE_ADDRESS_AWARE): Define. - (IMAGE_FILE_16BIT_MACHINE): Define. - (IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP): Define. - (IMAGE_FILE_UP_SYSTEM_ONLY): Define. - (IMAGE_FILE_MACHINE_UNKNOWN): Define. - (IMAGE_FILE_MACHINE_ALPHA): Define. - (IMAGE_FILE_MACHINE_ALPHA64): Define. - (IMAGE_FILE_MACHINE_I386): Define. - (IMAGE_FILE_MACHINE_IA64): Define. - (IMAGE_FILE_MACHINE_M68K): Define. - (IMAGE_FILE_MACHINE_MIPS16): Define. - (IMAGE_FILE_MACHINE_MIPSFPU): Define. - (IMAGE_FILE_MACHINE_MIPSFPU16): Define. - (IMAGE_FILE_MACHINE_POWERPC): Define. - (IMAGE_FILE_MACHINE_R3000): Define. - (IMAGE_FILE_MACHINE_R4000): Define. - (IMAGE_FILE_MACHINE_R10000): Define. - (IMAGE_FILE_MACHINE_SH3): Define. - (IMAGE_FILE_MACHINE_SH4): Define. - (IMAGE_FILE_MACHINE_THUMB): Define. - -1999-09-20 Alan Modra - - * internal.h: Delete bogus R_PCLONG, duplicate R_RELBYTE and - R_RELWORD, and rewrite some R_* as decimal. - -1999-09-06 Donn Terry - - * internal.h (DTYPE): Define. - * pe.h (struct external_PEI_filehdr): Rename from - external_PE_filehdr. Define even if COFF_IMAGE_WITH_PE is not - defined. - -1999-07-17 Nick Clifton - - * arm.h (F_SOFT_FLOAT): Rename from F_SOFTFLOAT. - -1999-06-21 Philip Blundell - - * arm.h (F_SOFTFLOAT): Define. - -1999-07-05 Nick Clifton - - * arm.h (F_ARM_5): Define. - -Wed Jun 2 18:08:18 1999 Richard Henderson - - * internal.h (BEOS_EXE_IMAGE_BASE, BEOS_DLL_IMAGE_BASE): New. - -Mon May 17 13:35:35 1999 Stan Cox - - * arm.h (F_PIC, F_ARM_2, F_ARM_2a, F_ARM_3, F_ARM_3M, - F_ARM_4, F_ARM_4T, F_APCS26): Changed values to distinguish - F_ARM_2a, F_ARM_3M, F_ARM_4T. - -1999-05-15 Nick Clifton - - * mcore.h (IMAGE_REL_MCORE_RVA): Define. - -1999-04-21 Nick Clifton - - * mcore.h (GET_LINENO_LNNO): New macro. - (PUT_LINENO_LNNO): New macro. - -1999-04-08 Nick Clifton - - * mcore.h: New header file. Defines for Motorola's MCore - processor. - -Sun Dec 6 21:36:37 1998 Mark Elbrecht - - * internal.h (C_WEAKEXT): Define. - -Wed Jan 27 13:35:35 1999 Stan Cox - - * arm.h (F_PIC_INT, F_ARM_2, F_ARM_3, F_ARM_4, F_APCS26): - Changed values to avoid clashing with IMAGE_FILE_* coff header - flag values. - -Wed Apr 1 16:06:15 1998 Nick Clifton - - * internal.h: Document numbers associated with Thumb symbol - types. - -Fri Mar 27 17:16:57 1998 Ian Lance Taylor - - * internal.h (ISPTR, ISFCN, ISARY): Add casts to unsigned long. - -Mon Feb 2 17:10:38 1998 Steve Haworth - - * tic30.h: New file. - -Fri Dec 12 11:49:07 1997 Fred Fish - - * tic80.h (R_MPPCR15W): New relocation type, for 15 bit PC relative - offsets. - -Tue Dec 2 10:21:40 1997 Nick Clifton - - * arm.h (COFFARM): New define. - -Mon Dec 1 20:24:18 1997 J"orn Rennecke - - * sh.h (R_SH_SWITCH8): New. - -Sat Nov 22 15:10:14 1997 Nick Clifton - - * internal.h (C_THUMBEXTFUNC, C_THUMBSTATFUNC): Constants to - define static and external functions. - - * arm.h: Add bits to support PIC and APCS-FLOAT type binaries, - when implemented. - -Fri Oct 3 14:25:17 1997 Fred Fish - - * tic80.h (R_PPL16B): Make constant uppercase for consistency. - -Tue Jul 22 18:18:58 1997 Robert Hoehne - - * go32exe.h: New file. - -Tue Jul 8 12:23:55 1997 Fred Fish - - * tic80.h (TIC80_TARGET_ID): Add define. - * internal.h (struct internal_filehdr): Add f_target_id field. - -Tue Jun 3 16:44:18 1997 Nick Clifton - - * internal.h: Add storage classes for Thumb symbols - -Mon May 26 14:07:55 1997 Ian Lance Taylor - - * tic80.h (R_PPL16B): Correct value. - -Tue May 13 10:21:14 1997 Nick Clifton - - * arm.h (constants): Added new flag bits F_APCS_26 and - F_APCS_SET for the f_flags field of the filehdr structure. Added new - flags: F_APCS26, F_ARM_2, F_ARM_3, F_ARM_7, F_ARM_7T to store - information in the flags field of the internal_f structure used by BFD - routines. - -Sat May 3 08:24:59 1997 Fred Fish - - * internal.h (C_UEXT, C_STATLAB, C_EXTLAB, C_SYSTEM): - New storage classes for TIc80. - -Fri Apr 18 11:52:55 1997 Niklas Hallqvist - - * alpha.h (ALPHA_ECOFF_BADMAG): Recognize *BSD/alpha magic too. - (ALPHA_R_LITERALSLEAZY): Define. - * ecoff.h (ALPHA_MAGIC_BSD): Define. - -Wed Jan 29 11:31:51 1997 Ian Lance Taylor - - * i960.h (R_IPR13, R_ALIGN): Define. - -Mon Jan 27 13:34:30 1997 Ian Lance Taylor - - * internal.h (R_IPRMED, R_OPTCALL, R_OPTCALLX): Move definitions - from here... - * i960.h (R_IPRMED, R_OPTCALL, R_OPTCALLX): ...to here. - -Wed Jan 22 20:10:47 1997 Fred Fish - - * tic80.h (TIC80MAGIC): Renamed to TIC80_AOUTHDR_MAGIC. - -Fri Dec 27 22:05:45 1996 Fred Fish - - * tic80.h: New file for TIc80 support. - -Thu Dec 19 16:18:11 1996 Ian Lance Taylor - - * arm.h (_LIT): Define. - -Fri Jun 28 12:54:38 1996 Ian Lance Taylor - - * pe.h (FILHSZ): Define. - -Wed Jun 26 16:24:26 1996 Ian Lance Taylor - - * All files: Define FILHSZ, AOUTSZ, AOUTHDRSZ, SCNHSZ, SYMESZ, - AUXESZ, LINESZ, RELSZ as numeric constants rather than uses of - sizeof. Define AOUTHDRSZ in all files. - * pe.h (AOUTSZ): Define by adding to AOUTHDRSZ. - -Fri Jun 21 11:17:46 1996 Richard Henderson - - * alpha.h: Add declarations for relocation types added for Alpha - OSF/1 3.0. - -Tue Jun 18 16:04:29 1996 Jeffrey A. Law - - * h8300.h (H8300SMAGIC): Define. - (H8300SBADMAG): Define. - -Mon Jun 10 11:53:28 1996 Jeffrey A Law (law@cygnus.com) - - * internal.h (R_BCC_INV, R_JMP_DEL): New relocations for - relaxing in the H8/300 series. - -Thu May 16 15:49:22 1996 Ian Lance Taylor - - * sh.h (R_SH_CODE, R_SH_DATA, R_SH_LABEL): Define. - -Tue May 7 00:36:39 1996 Jeffrey A Law (law@cygnus.com) - - * internal.h (R_JMPL2): Renamed from R_JMPL_B8 to be - consistent with other similar relocs. - - * internal.h (H8/300 specific relocs): Add comments better - explaining what each reloc is used for. - (R_MOV16B1, R_MOV16B2): Renamed from R_MOVB1 and R_MOVB2. - (R_MOV24B1, R_MOV24B2): Renamed from R_MOVLB1 and R_MOVLB2. - (R_MOVL1, R_MOVL2): New relocs. - -Fri May 3 13:01:12 1996 Jeffrey A Law (law@cygnus.com) - - * internal.h (R_PCRWORD_B): Define for the h8300 relaxing - linker. - -Wed May 1 19:21:03 1996 Ian Lance Taylor - - * internal.h (SCNNMLEN): Define. - (struct internal_scnhdr): Use SCNNMLEN for s_name field. - -Fri Mar 29 13:41:25 1996 Ian Lance Taylor - - * pe.h: Define IMAGE_COMDAT codes. - -Wed Mar 27 17:29:42 1996 Ian Lance Taylor - - * arm.h (union external_auxent): Add x_checksum, x_associated, and - x_comdat fields to x_scn struct. - * i386.h (union external_auxent): Likewise. - * powerpc.h (union external_auxent): Likewise. - * internal.h (union internal_auxent): Likewise. - -Thu Mar 21 16:25:57 1996 David Mosberger-Tang - - * ecoff.h (struct ecoff_find_line): Add caching fields. - -Thu Mar 14 15:22:44 1996 Jeffrey A Law (law@cygnus.com) - - * internal.h (R_MEM_INDIRECT): New reloc for the h8300. - -Fri Feb 9 10:44:11 1996 Ian Lance Taylor - - * aux-coff.h: Rename from aux.h, to avoid problems on hapless DOS - systems which think that aux is a com port. - -Mon Feb 5 18:35:00 1996 Ian Lance Taylor - - * i960.h (F_I960HX): Define. - -Wed Jan 31 13:11:54 1996 Richard Henderson - - * aux.h: New file. - * internal.h, m68k.h: Protect against multiple inclusion. - -Wed Nov 22 13:48:39 1995 Ian Lance Taylor - - * ecoff.h (_RCONST, STYP_RCONST, RELOC_SECTION_RCONST): Define. - (NUM_RELOC_SECTIONS): Update. - * symconst.h (scRConst): Define. - -Tue Nov 14 18:54:29 1995 Ian Lance Taylor - - * internal.h (C_NT_WEAK): Define. - -Thu Nov 9 14:08:30 1995 Ian Lance Taylor - - * rs6000.h (STYP_OVRFLO): Define. - -Tue Nov 7 14:38:45 1995 Kim Knuttila - - * powerpc.h (IMAGE_NT_OPTIONAL_HDR_MAGIC): Added define. - * pe.h: Added defines for file level flags - -Mon Nov 6 17:28:01 1995 Harry Dolan - - * i860.h: New file, based on i386.h. - -Wed Nov 1 15:25:18 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 - - * m68k.h (PAGEMAGICEXECSWAPPED): Define. - (PAGEMAGICPEXECSWAPPED): Define. - (PAGEMAGICPEXECTSHLIB): Define. - (PAGEMAGICPEXECPAGED): Define. - (_COMMENT): DEFINE. - * m88k.h (_COMMENT): Define. - -Wed Oct 18 18:36:19 1995 Geoffrey Noer - - * sym.h: #if 0'd out runtime_pdr struct because it chokes - Visual C++ and there aren't any references to it elsewhere in gdb. - -Mon Oct 16 11:12:24 1995 Ian Lance Taylor - - * rs6000.h (SMALL_AOUTSZ): Define. - - * internal.h (XMC_TD): Define. - -Tue Oct 10 18:41:03 1995 Ian Lance Taylor - - * internal.h (struct internal_aouthdr): Add o_cputype field. - * rs6000.h (AOUTHDR): Rename o_resv1 to o_cputype. - -Mon Oct 9 14:45:46 1995 Ian Lance Taylor - - * rs6000.h (AOUTHDR): Add o_maxdata field. Add comments. - (_PAD, _LOADER): Define. - (STYP_LOADER): Define. - * internal.h (struct internal_aouthdr): Add o_maxdata field. - -Thu Oct 5 10:02:57 1995 Ian Lance Taylor - - * ecoff.h: Define section name macros and STYP macros for various - Alpha sections: .got, .hash, .dynsym, .dynstr, .rel.dyn, .conflic, - .comment, .liblist, .dynamic. - -Wed Oct 4 10:56:35 1995 Kim Knuttila - - * pe.h: Moved DOSMAGIC and NT_SIGNATURE defines here - * powerpc.h: removed DOSMAGIC, NT_SIGNATURE, and DEFAULT_* defines - Also removed other unused defines (various MAGIC ones) - * i386.h: removed DOSMAGIC, NT_SIGNATURE, and DEFAULT_* defines - * arm.h: removed DOSMAGIC, NT_SIGNATURE, and DEFAULT_* defines - * apollo.h: removed unused DEFAULT_* defines - * alpha.h: removed unused DEFAULT_* defines - * h8500.h: removed unused DEFAULT_* defines - * h8300.h: removed unused DEFAULT_* defines - * i960.h: removed unused DEFAULT_* defines - * m88k.h: removed unused DEFAULT_* defines - * we32k.h: removed unused DEFAULT_* defines - * rs6000.h: removed unused DEFAULT_* defines - * mips.h: removed unused DEFAULT_* defines - * m68k.h: removed unused DEFAULT_* defines - * z8k.h: removed unused DEFAULT_* defines - * w65.h: removed unused DEFAULT_* defines - * sparc.h: removed unused DEFAULT_* defines - * sh.h: removed unused DEFAULT_* defines - -Fri Sep 29 08:40:08 1995 Kim Knuttila - - * powerpc.h: Reformatted to GNU coding conventions. - -Wed Sep 27 06:50:50 1995 Kim Knuttila - - * pe.h: added defines for more section characteristics - * powerpc.h (new file): base coff definitions for ppc PE - -Tue Sep 12 12:08:20 1995 Ian Lance Taylor - - * internal.h (struct internal_syment): Change n_numaux field from - char to unsigned char. - -Fri Sep 1 15:39:36 1995 Kazumoto Kojima - - * mips.h (struct rpdr_ext): Define. - -Thu Aug 31 16:51:50 1995 steve chamberlain - - * internal.h (internal_aouthdr, internal_filehdr): - don't indirect the pe stuff. - -Tue Aug 29 14:16:07 1995 steve chamberlain - - * i386.h (NT_DEF_RESERVE, NT_DEF_COMMIT): Make the same - as 'the other' compiler. - * internal.h (NT_IMAGE_BASE): Deleted. - (NT_EXE_IMAGE_BASE, NT_DLL_IMAGE_BASE): New. - (PE_DEF_SECTION_ALIGNMENT, PE_DEF_FILE_ALIGNMENT): New. - (R_IMAGEBASE): New. - -Mon Aug 21 18:12:19 1995 steve chamberlain - - * internal.h: (internal_filehdr): Moved PE stuff into - internal_extra_pe_filehdr. - (internal_aouthdr): Moved PE stuff into - interanl_extra_pe_aouthdr. - -Mon Jul 24 14:05:39 1995 Ian Lance Taylor - - * internal.h: Move R_SH_* relocs from here... - * sh.h: ...to here. - (R_SH_SWITCH16, R_SH_SWITCH32): Define. - (R_SH_USES, R_SH_COUNT, R_SH_ALIGN): Define. - -Thu Jun 29 00:04:25 1995 Steve Chamberlain - - * internal.h (NT_DEF_RESERVE, NT_DEF_COMMIT): Increase a lot. - -Tue May 16 15:08:20 1995 Ken Raeburn - - * internal.h (NT_subsystem, NT_stack_heap): Delete - -Tue May 16 15:08:20 1995 Ken Raeburn - - * internal.h (NT_subsystem, NT_stack_heap): Now extern. - -Sat May 13 10:14:08 1995 Steve Chamberlain - - * pe.h: New file. - * i386.h (NT_SECTION_ALIGNMENT, NT_FILE_ALIGNMENT, - NT_DEF_RESERVE, NT_DEF_COMMIT): New. - * internal.h (internal_filehdr): New fields for PE. - (IMAGE_DATA_DIRECTORY): New. - (internal_aouthdr): New fields for PE. - -Tue Feb 14 17:59:37 1995 Ian Lance Taylor - - * ecoff.h (struct ecoff_fdrtab_entry): Define. - (struct ecoff_find_line): Define. - -Sat Feb 4 14:38:03 1995 David Mosberger-Tang - - * sym.h (struct pdr): field "prof" added. - - * alpha.h (PDR_BITS1_PROF_*): added, macros for PDR_BITS*_RESERVED_* - updated accordingly. - -Sun Jan 15 18:38:33 1995 Steve Chamberlain - - * w65.h: New file. - -Wed Nov 23 22:43:38 1994 Steve Chamberlain (sac@jonny.cygnus.com) - - * sh.h (SH_ARCH_MAGIC_BIG, SH_ARCH_MAGIC_LITTLE): New. - (SHBADMAG): Changed to suit. - -Tue Jul 26 17:46:08 1994 Ken Raeburn (raeburn@cujo.cygnus.com) - - * i960.h (F_I960JX): New macro. - -Wed Jul 6 00:48:57 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) - - * alpha.h: Add definitions for alpha file header flags, encoding - the object type of the file. - -Mon Jun 20 13:47:01 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) - - * ecoff.h (ecoff_swap_tir_in): Remove declaration. - (ecoff_swap_tir_out): Likewise. - (ecoff_swap_rndx_in, ecoff_swap_rndx_out): Likewise. - (struct ecoff_debug_swap): Add new fields: swap_tir_in, - swap_rndx_in, swap_tir_out, swap_rndx_out, read_debug_info. - -Sun Jun 12 03:51:52 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) - - * symconst.h: Pick up SGI define for stIndirect. - -Fri Apr 22 13:05:28 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ecoff.h (REGINFO): Don't define. - (struct ecoff_reginfo): Don't define. - - * sh.h (SH_ARCH_MAGIC): Rename from SHMAGIC. SHMAGIC is used by - several targets to mean a shared library. - (SHBADMAG): Corresponding change. - -Thu Apr 14 13:00:53 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h (RELOC_BITS3_TYPE_BIG): Changed from 0x1e to 0x3e. - (RELOC_BITS3_TYPEHI_LITTLE): Define. - (RELOC_BITS3_TYPEHI_SH_LITTLE): Define. - (MIPS_R_PCREL16): Change value from 8 to 12 to match Irix 4. - (MIPS_R_RELHI): Define. - (MIPS_R_RELLO): Define. - (MIPS_R_SWITCH): Change value from 9 to 22. - -Thu Apr 7 14:19:35 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h (MIPS_R_SWITCH): Define. - -Thu Mar 31 19:28:33 1994 Ken Raeburn (raeburn@cujo.cygnus.com) - - * internal.h (internal_aouthdr): Added comments for Apollo fields. - -Thu Mar 31 16:28:02 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ecoff.h (STYP_ECOFF_LIB): Define as used on Irix 4. - -Fri Mar 25 17:16:55 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ecoff.h (struct ecoff_debug_info): Add adjust field. - (struct ecoff_value_adjust): Define. - -Tue Mar 22 13:22:47 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h (MIPS_R_PCREL16): Define. - -Sat Feb 26 10:26:38 1994 Ian Lance Taylor (ian@cygnus.com) - - * ecoff.h: Add casts to avoid warnings from SVR4 cc. - -Mon Feb 21 09:48:46 1994 Ian Lance Taylor (ian@lisa.cygnus.com) - - * sym.h (struct runtime_pdr): Make field adr bfd_vma, not unsigned - long. - (SYMR): Make field value bfd_vma, not long. - -Fri Feb 4 23:35:53 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * rs6000.h (STYP_DEBUG): Define. - -Wed Feb 2 14:31:37 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * internal.h (union internal_auxent): Change x_csect.x_scnlen into - a union of a long and a pointer to a symbol. XCOFF sometimes uses - this field as a symbol index. - -Mon Jan 10 23:54:25 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ecoff.h (ecoff_debug_info): Remove fields line_end, - external_dnr_end, external_pdr_end, external_sym_end, - external_opt_end, external_aux_end, ss_end, external_fdr_end. - Replace ifdbase with ifdmap. - -Wed Jan 5 17:05:36 1994 Ken Raeburn (raeburn@deneb.cygnus.com) - - * ecoff.h (STYP_EXTENDESC, STYP_COMMENT, STYP_XDATA, STYP_PDATA): - Define. - -Wed Jan 5 16:58:24 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ecoff.h (NUM_RELOC_SECTIONS): Define. - -Tue Dec 21 09:24:56 1993 Ken Raeburn (raeburn@rtl.cygnus.com) - - * sparc.h (struct external_reloc): Rename field r_addend to - r_offset. - -Sat Dec 11 16:12:32 1993 Steve Chamberlain (sac@thepub.cygnus.com) - - * internal.h (R_DISP7, R_SH_IMM16): New reloc types. - -Tue Nov 23 14:23:19 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ecoff.h (struct ecoff_debug_swap): Added *_end fields for all - the symbolic information pointers. - - * sym.h: Named the EXTR structure ecoff_extr. - -Fri Nov 19 08:21:18 1993 Ken Raeburn (raeburn@rover.cygnus.com) - - * sparc.h (RELSZ): Use correct size. - -Wed Nov 17 17:18:16 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h (struct ecoff_debug_info): Define. - -Tue Nov 2 17:56:57 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ecoff.h (struct ecoff_debug_swap): Define. - -Thu Oct 28 17:07:50 1993 Stan Shebs (shebs@rtl.cygnus.com) - - * i386.h (I386LYNXMAGIC): Rename to LYNXCOFFMAGIC. - * m68k.h (LYNXCOFFMAGIC): Define. - * sparc.h: New file. - -Tue Oct 19 15:34:50 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * alpha.h (external_aouthdr): Split four byte padding field into - two byte bldrev field and two byte padding field. - - * ecoff.h (_LITA, _PDATA, _XDATA, STYP_LITA): Defined. - -Wed Oct 13 15:52:34 1993 Ken Raeburn (raeburn@cygnus.com) - - Sun Oct 10 17:27:10 1993 Troy Rollo (troy@cbme.unsw.edu.au) - - * internal.h: Added o_sri, o_inlib and o_vid for Apollos as well - as R_DIR16. - - * apollo.h: New file - -Mon Oct 11 17:16:48 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ecoff.h (REGINFO, struct ecoff_reginfo): Define. - -Tue Oct 5 10:52:53 1993 Jim Kingdon (kingdon@lioth.cygnus.com) - - * rs6000.h: Change non-ASCII characters in comment to octal - escapes. - -Tue Sep 28 03:27:04 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) - - * ecoff.h (_FINI, STYP_ECOFF_FINI): Add to support .fini section. - -Fri Sep 24 11:53:53 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h (BADMAG): Recognize MIPS_MAGIC_LITTLE3 and MIPS_MAGIC_BIG3. - * ecoff.h: Define MIPS_MAGIC_LITTLE3 and MIPS_MAGIC_BIG3. - -Thu Sep 23 21:07:14 1993 Jim Kingdon (kingdon@lioth.cygnus.com) - - * mips.h (BADMAG): Recognize MIPS_MAGIC_LITTLE2 and MIPS_MAGIC_BIG2. - * ecoff.h: Define MIPS_MAGIC_LITTLE2 and MIPS_MAGIC_BIG2. - -Thu Sep 16 20:27:21 1993 Jim Kingdon (kingdon@cirdan.cygnus.com) - - * sym.h, symconst.h: Add comment stating these files are not part - of GDB, GAS, etc. In 1991, when we asked rms whether we could - include these files in GDB (although they are copyrighted by - someone besides the FSF), he said it was OK if they were not - considered part of GDB. - -Fri Sep 10 17:40:35 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ecoff.h (AUX_PUT_ANY): Cast val argument to bfd_vma. - - * alpha.c (external_aouthdr): Need four bytes of padding between - vstamp and tsize. - -Tue Sep 7 14:20:43 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ecoff.h (AUX_GET_ANY, AUX_PUT_ANY): Changed to reflect further - change in bfd swapping routine names. - -Tue Sep 7 10:15:17 1993 Jim Kingdon (kingdon@lioth.cygnus.com) - - * ecoff.h (AUX_GET_ANY): Change name of _do_getb32 to reflect bfd - changes. - -Fri Aug 13 14:30:32 1993 Ian Lance Taylor (ian@cygnus.com) - - * ecoff.h (RELOC_SECTION_NONE): Define. - -Thu Aug 12 11:24:42 1993 Ian Lance Taylor (ian@cygnus.com) - - * alpha.h (struct external_reloc): Add r_symndx field. - (RELSZ): Correct. - (RELOC_BITS*): Correct. - (ALPHA_R_*): Define. - * ecoff.h (RELOC_SECTION_{XDATA,PDATA,FINI,LITA,ABS}): Define. - (r_extern): Undefine. - * internal.h (struct internal_reloc): Make r_vaddr bfd_vma rather - than long. Add r_extern field. - - * alpha.h (PDR_BITS*): Define. - * sym.h (PDR): Give correct names to new fields. - - * ecoff.h: Moved MIPS reloc definitions from here... - * mips.h: to here. - -Mon Aug 2 16:37:14 1993 Stu Grossman (grossman at cygnus.com) - - * i386.h: Add Lynx magic number. - -Tue Aug 3 11:17:53 1993 Ian Lance Taylor (ian@cygnus.com) - - * alpha.h: Corrected external symbolic debugging structures to - match actual usage. - * internal.h (internal_filehdr, internal_aouthdr, - internal_scnhdr): Changed type of some fields to bfd_vma so they - can hold 64 bits. - * sym.h (HDRR, FDR, PDR, EXTR): Likewise. - (PDR): Added new fields found on Alpha. - * symconst.h (magicSym2): Define; new value found on Alpha. - - * ecoff.h: New file. - * alpha.h, mips.h: Moved common information into ecoff.h. Moved - external structure definitions in from ecoff-ext.h. - * ecoff-ext.h: Removed; information now in alpha.h and mips.h. - -Sun Jul 18 21:43:59 1993 Jim Kingdon (kingdon@rtl.cygnus.com) - - * i386.h: Recognize I386PTXMAGIC. - -Fri Jul 16 09:54:35 1993 Ian Lance Taylor (ian@cygnus.com) - - * mips.h (MIPS_AOUT_{OZ}MAGIC): Renamed from {OZ}MAGIC. - -Thu Jul 15 12:23:55 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * m88k.h (union external_auxent): Move x_fcn back inside x_fcnary. - ({GET,PUT}_FCN_{LNNOPTR,ENDNDX}): Adjust accordingly. - -Sun Jul 11 18:00:18 1993 Jim Kingdon (kingdon@lioth.cygnus.com) - - * m68k.h: Define MC68KBCSMAGIC. - -Thu Jun 10 11:46:28 1993 Ian Lance Taylor (ian@cygnus.com) - - * mips.h (_INIT, STYP_MIPS_INIT): Define (used on Irix4). - (STYP_OTHER_LOAD): Define as STYP_MIPS_INIT. - -Wed Jun 9 15:09:09 1993 Ian Lance Taylor (ian@cygnus.com) - - * mips.h (OMAGIC): Define. - -Tue Jun 8 12:16:03 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) - - Support for H8/300-H - * h8300.h: New magic number. - * internal.h: New relocations. - -Mon Apr 26 18:04:47 1993 Steve Chamberlain (sac@thepub.cygnus.com) - - * internal.h, sh.h: Support for SH. - -Sat Apr 24 21:34:59 1993 Jim Kingdon (kingdon@cygnus.com) - - * a29k.h: Define _LIT. - -Fri Apr 23 18:41:23 1993 Steve Chamberlain (sac@thepub.cygnus.com) - - * alpha.h: New file. - -Thu Apr 8 12:36:34 1993 Ian Lance Taylor (ian@cygnus.com) - - * internal.h (C_SHADOW, C_VERSION): Copied in from m88k.h. - * m88k.h, i386.h, we32k.h: Don't define all the storage classes; - they're already in internal.h. - -Wed Apr 7 11:51:24 1993 Jim Kingdon (kingdon@cygnus.com) - - * internal.h: Change n_sclass to unsigned char. - Change C_EFCN to 0xff, change RS/6000 dbx symbols - to no longer be signed. - -Fri Mar 19 14:52:56 1993 Steve Chamberlain (sac@thepub.cygnus.com) - - * internal.h: Add H8/500 reloc types. - -Wed Mar 17 09:46:03 1993 Ian Lance Taylor (ian@cygnus.com) - - * ecoff-ext.h (AUX_PUT_ANY): Don't use void values in branches of - conditional expression. - -Thu Mar 4 14:12:06 1993 Ian Lance Taylor (ian@cygnus.com) - - * ecoff-ext.h (AUX_GET_*): Rewrote to use new macro AUX_GET_ANY. - (AUX_PUT_*): New macros corresponding to the AUX_GET macros. - (ecoff_swap_tir_out): Added prototype. - - * mips.h (N_BTMASK, N_TMASK, N_BTSHFT, N_TSHIFT): Define; these - are needed to interpret gcc debugging output. - -Tue Feb 9 07:43:27 1993 Ian Lance Taylor (ian@cygnus.com) - - * we32k.h (BTYPE, ISPTR, ISFCN, ISARY, DECREF): Removed - more definitions duplicated in internal.h. - -Wed Feb 3 09:18:24 1993 Ian Lance Taylor (ian@cygnus.com) - - * mips.h (RELOC_BITS3_TYPE_*): Correct for big endian machines. - -Mon Jan 25 11:35:51 1993 Ian Lance Taylor (ian@cygnus.com) - - * internal.h (internal_aouthdr): Added additional fields used only - by MIPS ECOFF. - -Thu Jan 21 10:28:38 1993 Ian Lance Taylor (ian@cygnus.com) - - * mips.h (AOUTHDR): Added additional fields used by ECOFF. - -Tue Jan 19 12:21:19 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * i386.h, we32k.h (N_*, T_*, DT_*): Removed still more definitions - duplicated in internal.h. - - * mips.h (RELOC_SECTION_*, ECOFF_R_*): Defined constants for ECOFF - relocs. - -Fri Jan 15 18:17:00 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ecoff-ext.h: Added prototypes for new ECOFF swapping functions. - (opt_ext): New structure. - * mips.h (ZMAGIC): Defined to be 0413. - (_LIB): Defined to be ".lib" - (external_reloc): MIPS ECOFF relocs are only 8 bytes. Added - macros to aid in swapping. - -Fri Jan 8 16:19:26 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ecoff-ext.h: Added prototypes for ECOFF swapping functions. - * internal.h (internal_scnhdr): Always provide s_align field, not - just on i960. - (internal_reloc): Always provide r_size field, not just on - RS/6000. - * mips.h (_RDATA, _SDATA, _SBSS, _LIT4, _LIT8, STYP_RDATA, - STYP_SDATA, STYP_SBSS, STYP_LIT4, STYP_LIT8): Defined. - (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB, MIPS_UNMARK_STAB, - STABS_SYMBOL): Moved in from gdb/mipsread.c. - -Wed Jan 6 14:01:46 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * i386.h, we32k.h: removed STYP_* defines, since they duplicated - those in internal.h. - -Tue Dec 29 15:40:07 1992 Ian Lance Taylor (ian@cygnus.com) - - * i386.h: define I386AIXMAGIC for Danbury AIX PS/2 compiler. - -Sat Dec 12 16:07:57 1992 Ian Lance Taylor (ian@cygnus.com) - - * i386.h: don't define BTYPE, ISPTR, ISFCN, ISARY, DECREF: they - are defined in internal.h. - -Thu Nov 12 09:52:01 1992 Steve Chamberlain (sac@thepub.cygnus.com) - - * internal.h: (internal_reloc): r_offset is now a long. - * z8k.h: slight comment enhancement - -Wed Sep 30 07:46:08 1992 Steve Chamberlain (sac@thepub.cygnus.com) - - * internal.h: changed z8k reloc types - -Fri Aug 28 10:16:31 1992 Brendan Kehoe (brendan@cygnus.com) - - * we32k.h: new file - -Thu Aug 27 13:00:01 1992 Brendan Kehoe (brendan@cygnus.com) - - * symconst.h: comment out cruft at the end of #endif - -Tue Aug 25 15:06:49 1992 Steve Chamberlain (sac@thepub.cygnus.com) - - * internal.h: added #define for STYP_LIT, removed from a29k and - h8300. - - * z8k.h: added z8000 support - -Thu Jul 16 16:32:00 1992 Steve Chamberlain (sac@thepub.cygnus.com) - - * internal.h: added R_RELLONG_NEG reloc type - -Fri Jun 12 20:11:04 1992 John Gilmore (gnu at cygnus.com) - - * symconst.h: Fix unterminated comment. - -Wed Jun 10 07:57:49 1992 Steve Chamberlain (sac@thepub.cygnus.com) - - * i386.h: a.out magic numbers from - mohring@informatik.tu-muenchen.de - -Mon Jun 8 20:13:33 1992 John Gilmore (gnu at cygnus.com) - - * ecoff-ext.h, mips.h: Use unsigned chars everywhere. - (Suggested by Antti Miettinen.) - -Tue Apr 14 15:18:44 1992 John Gilmore (gnu at cygnus.com) - - * sym.h: Add comments. - * symconst.h: Merge with Fred's changes. - -Tue Apr 14 14:30:05 1992 Fred Fish (fnf@cygnus.com) - - * symconst.h: Pick up SGI defines for stStruct, stUnion, stEnum, - langCplusplus, and langCplusplusV2. - -Thu Apr 2 19:47:43 1992 John Gilmore (gnu at cygnus.com) - - * sym.h, symconst.h: MIPS has provided redistributable versions - of these files. Thanks! - * ecoff-ext.h: Add weakext bit to match new sym.h. - -Fri Mar 6 00:10:46 1992 John Gilmore (gnu at cygnus.com) - - * ecoff-ext.h: Add relative file descriptors. - -Thu Feb 27 11:53:04 1992 John Gilmore (gnu at cygnus.com) - - * ecoff-ext.h: New file for external (in-file) form of ecoff - symbol structures. - -Thu Feb 6 11:33:32 1992 Steve Chamberlain (sac at rtl.cygnus.com) - - * h8300.h: made the external_lineno l_lnno field 4 bytes wide. - andded GET/PUT_LINENO_LNNO macros - -Sat Nov 30 20:38:35 1991 Steve Chamberlain (sac at rtl.cygnus.com) - - * a29k.h, h8300.h, i386.h, i960.h, internal.h, m68k.h, m88k.h, - mips.h, rs6000.h: Move from above coff-.h. - - -Copyright (C) 1991-2003 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - -Local Variables: -mode: change-log -left-margin: 8 -fill-column: 74 -version-control: never -End: diff --git a/include/coff/alpha.h b/include/coff/alpha.h deleted file mode 100644 index 8151689..0000000 --- a/include/coff/alpha.h +++ /dev/null @@ -1,386 +0,0 @@ -/* ECOFF support on Alpha machines. - coff/ecoff.h must be included before this file. - - Copyright 2001, 2005, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/********************** FILE HEADER **********************/ - -struct external_filehdr -{ - unsigned char f_magic[2]; /* magic number */ - unsigned char f_nscns[2]; /* number of sections */ - unsigned char f_timdat[4]; /* time & date stamp */ - unsigned char f_symptr[8]; /* file pointer to symtab */ - unsigned char f_nsyms[4]; /* number of symtab entries */ - unsigned char f_opthdr[2]; /* sizeof(optional hdr) */ - unsigned char f_flags[2]; /* flags */ -}; - -/* Magic numbers are defined in coff/ecoff.h. */ -#define ALPHA_ECOFF_BADMAG(x) \ - ((x).f_magic != ALPHA_MAGIC && (x).f_magic != ALPHA_MAGIC_BSD) - -#define ALPHA_ECOFF_COMPRESSEDMAG(x) \ - ((x).f_magic == ALPHA_MAGIC_COMPRESSED) - -/* The object type is encoded in the f_flags. */ -#define F_ALPHA_OBJECT_TYPE_MASK 0x3000 -#define F_ALPHA_NO_SHARED 0x1000 -#define F_ALPHA_SHARABLE 0x2000 -#define F_ALPHA_CALL_SHARED 0x3000 - -#define FILHDR struct external_filehdr -#define FILHSZ 24 - -/********************** AOUT "OPTIONAL HEADER" **********************/ - -typedef struct external_aouthdr -{ - unsigned char magic[2]; /* type of file */ - unsigned char vstamp[2]; /* version stamp */ - unsigned char bldrev[2]; /* ?? */ - unsigned char padding[2]; /* pad to quadword boundary */ - unsigned char tsize[8]; /* text size in bytes */ - unsigned char dsize[8]; /* initialized data " " */ - unsigned char bsize[8]; /* uninitialized data " " */ - unsigned char entry[8]; /* entry pt. */ - unsigned char text_start[8]; /* base of text used for this file */ - unsigned char data_start[8]; /* base of data used for this file */ - unsigned char bss_start[8]; /* base of bss used for this file */ - unsigned char gprmask[4]; /* bitmask of general registers used */ - unsigned char fprmask[4]; /* bitmask of floating point registers used */ - unsigned char gp_value[8]; /* value for gp register */ -} AOUTHDR; - -/* compute size of a header */ - -#define AOUTSZ 80 -#define AOUTHDRSZ 80 - -/********************** SECTION HEADER **********************/ - -struct external_scnhdr -{ - unsigned char s_name[8]; /* section name */ - unsigned char s_paddr[8]; /* physical address, aliased s_nlib */ - unsigned char s_vaddr[8]; /* virtual address */ - unsigned char s_size[8]; /* section size */ - unsigned char s_scnptr[8]; /* file ptr to raw data for section */ - unsigned char s_relptr[8]; /* file ptr to relocation */ - unsigned char s_lnnoptr[8]; /* file ptr to line numbers */ - unsigned char s_nreloc[2]; /* number of relocation entries */ - unsigned char s_nlnno[2]; /* number of line number entries*/ - unsigned char s_flags[4]; /* flags */ -}; - -#define SCNHDR struct external_scnhdr -#define SCNHSZ 64 - -/********************** RELOCATION DIRECTIVES **********************/ - -struct external_reloc -{ - unsigned char r_vaddr[8]; - unsigned char r_symndx[4]; - unsigned char r_bits[4]; -}; - -#define RELOC struct external_reloc -#define RELSZ 16 - -/* Constants to unpack the r_bits field. The Alpha seems to always be - little endian, so I haven't bothered to define big endian variants - of these. */ - -#define RELOC_BITS0_TYPE_LITTLE 0xff -#define RELOC_BITS0_TYPE_SH_LITTLE 0 - -#define RELOC_BITS1_EXTERN_LITTLE 0x01 - -#define RELOC_BITS1_OFFSET_LITTLE 0x7e -#define RELOC_BITS1_OFFSET_SH_LITTLE 1 - -#define RELOC_BITS1_RESERVED_LITTLE 0x80 -#define RELOC_BITS1_RESERVED_SH_LITTLE 7 -#define RELOC_BITS2_RESERVED_LITTLE 0xff -#define RELOC_BITS2_RESERVED_SH_LEFT_LITTLE 1 -#define RELOC_BITS3_RESERVED_LITTLE 0x03 -#define RELOC_BITS3_RESERVED_SH_LEFT_LITTLE 9 - -#define RELOC_BITS3_SIZE_LITTLE 0xfc -#define RELOC_BITS3_SIZE_SH_LITTLE 2 - -/* The r_type field in a reloc is one of the following values. */ -#define ALPHA_R_IGNORE 0 -#define ALPHA_R_REFLONG 1 -#define ALPHA_R_REFQUAD 2 -#define ALPHA_R_GPREL32 3 -#define ALPHA_R_LITERAL 4 -#define ALPHA_R_LITUSE 5 -#define ALPHA_R_GPDISP 6 -#define ALPHA_R_BRADDR 7 -#define ALPHA_R_HINT 8 -#define ALPHA_R_SREL16 9 -#define ALPHA_R_SREL32 10 -#define ALPHA_R_SREL64 11 -#define ALPHA_R_OP_PUSH 12 -#define ALPHA_R_OP_STORE 13 -#define ALPHA_R_OP_PSUB 14 -#define ALPHA_R_OP_PRSHIFT 15 -#define ALPHA_R_GPVALUE 16 -#define ALPHA_R_GPRELHIGH 17 -#define ALPHA_R_GPRELLOW 18 -#define ALPHA_R_IMMED 19 - -/* Overloaded reloc value used by Net- and OpenBSD. */ -#define ALPHA_R_LITERALSLEAZY 17 - -/* With ALPHA_R_LITUSE, the r_size field is one of the following values. */ -#define ALPHA_R_LU_BASE 1 -#define ALPHA_R_LU_BYTOFF 2 -#define ALPHA_R_LU_JSR 3 - -/* With ALPHA_R_IMMED, the r_size field is one of the following values. */ -#define ALPHA_R_IMMED_GP_16 1 -#define ALPHA_R_IMMED_GP_HI32 2 -#define ALPHA_R_IMMED_SCN_HI32 3 -#define ALPHA_R_IMMED_BR_HI32 4 -#define ALPHA_R_IMMED_LO32 5 - -/********************** SYMBOLIC INFORMATION **********************/ - -/* Written by John Gilmore. */ - -/* ECOFF uses COFF-like section structures, but its own symbol format. - This file defines the symbol format in fields whose size and alignment - will not vary on different host systems. */ - -/* File header as a set of bytes */ - -struct hdr_ext -{ - unsigned char h_magic[2]; - unsigned char h_vstamp[2]; - unsigned char h_ilineMax[4]; - unsigned char h_idnMax[4]; - unsigned char h_ipdMax[4]; - unsigned char h_isymMax[4]; - unsigned char h_ioptMax[4]; - unsigned char h_iauxMax[4]; - unsigned char h_issMax[4]; - unsigned char h_issExtMax[4]; - unsigned char h_ifdMax[4]; - unsigned char h_crfd[4]; - unsigned char h_iextMax[4]; - unsigned char h_cbLine[8]; - unsigned char h_cbLineOffset[8]; - unsigned char h_cbDnOffset[8]; - unsigned char h_cbPdOffset[8]; - unsigned char h_cbSymOffset[8]; - unsigned char h_cbOptOffset[8]; - unsigned char h_cbAuxOffset[8]; - unsigned char h_cbSsOffset[8]; - unsigned char h_cbSsExtOffset[8]; - unsigned char h_cbFdOffset[8]; - unsigned char h_cbRfdOffset[8]; - unsigned char h_cbExtOffset[8]; -}; - -/* File descriptor external record */ - -struct fdr_ext -{ - unsigned char f_adr[8]; - unsigned char f_cbLineOffset[8]; - unsigned char f_cbLine[8]; - unsigned char f_cbSs[8]; - unsigned char f_rss[4]; - unsigned char f_issBase[4]; - unsigned char f_isymBase[4]; - unsigned char f_csym[4]; - unsigned char f_ilineBase[4]; - unsigned char f_cline[4]; - unsigned char f_ioptBase[4]; - unsigned char f_copt[4]; - unsigned char f_ipdFirst[4]; - unsigned char f_cpd[4]; - unsigned char f_iauxBase[4]; - unsigned char f_caux[4]; - unsigned char f_rfdBase[4]; - unsigned char f_crfd[4]; - unsigned char f_bits1[1]; - unsigned char f_bits2[3]; - unsigned char f_padding[4]; -}; - -#define FDR_BITS1_LANG_BIG 0xF8 -#define FDR_BITS1_LANG_SH_BIG 3 -#define FDR_BITS1_LANG_LITTLE 0x1F -#define FDR_BITS1_LANG_SH_LITTLE 0 - -#define FDR_BITS1_FMERGE_BIG 0x04 -#define FDR_BITS1_FMERGE_LITTLE 0x20 - -#define FDR_BITS1_FREADIN_BIG 0x02 -#define FDR_BITS1_FREADIN_LITTLE 0x40 - -#define FDR_BITS1_FBIGENDIAN_BIG 0x01 -#define FDR_BITS1_FBIGENDIAN_LITTLE 0x80 - -#define FDR_BITS2_GLEVEL_BIG 0xC0 -#define FDR_BITS2_GLEVEL_SH_BIG 6 -#define FDR_BITS2_GLEVEL_LITTLE 0x03 -#define FDR_BITS2_GLEVEL_SH_LITTLE 0 - -/* We ignore the `reserved' field in bits2. */ - -/* Procedure descriptor external record */ - -struct pdr_ext { - unsigned char p_adr[8]; - unsigned char p_cbLineOffset[8]; - unsigned char p_isym[4]; - unsigned char p_iline[4]; - unsigned char p_regmask[4]; - unsigned char p_regoffset[4]; - unsigned char p_iopt[4]; - unsigned char p_fregmask[4]; - unsigned char p_fregoffset[4]; - unsigned char p_frameoffset[4]; - unsigned char p_lnLow[4]; - unsigned char p_lnHigh[4]; - unsigned char p_gp_prologue[1]; - unsigned char p_bits1[1]; - unsigned char p_bits2[1]; - unsigned char p_localoff[1]; - unsigned char p_framereg[2]; - unsigned char p_pcreg[2]; -}; - -#define PDR_BITS1_GP_USED_BIG 0x80 -#define PDR_BITS1_REG_FRAME_BIG 0x40 -#define PDR_BITS1_PROF_BIG 0x20 -#define PDR_BITS1_RESERVED_BIG 0x1f -#define PDR_BITS1_RESERVED_SH_LEFT_BIG 8 -#define PDR_BITS2_RESERVED_BIG 0xff -#define PDR_BITS2_RESERVED_SH_BIG 0 - -#define PDR_BITS1_GP_USED_LITTLE 0x01 -#define PDR_BITS1_REG_FRAME_LITTLE 0x02 -#define PDR_BITS1_PROF_LITTLE 0x04 -#define PDR_BITS1_RESERVED_LITTLE 0xf8 -#define PDR_BITS1_RESERVED_SH_LITTLE 3 -#define PDR_BITS2_RESERVED_LITTLE 0xff -#define PDR_BITS2_RESERVED_SH_LEFT_LITTLE 5 - -/* Line numbers */ - -struct line_ext { - unsigned char l_line[4]; -}; - -/* Symbol external record */ - -struct sym_ext { - unsigned char s_value[8]; - unsigned char s_iss[4]; - unsigned char s_bits1[1]; - unsigned char s_bits2[1]; - unsigned char s_bits3[1]; - unsigned char s_bits4[1]; -}; - -#define SYM_BITS1_ST_BIG 0xFC -#define SYM_BITS1_ST_SH_BIG 2 -#define SYM_BITS1_ST_LITTLE 0x3F -#define SYM_BITS1_ST_SH_LITTLE 0 - -#define SYM_BITS1_SC_BIG 0x03 -#define SYM_BITS1_SC_SH_LEFT_BIG 3 -#define SYM_BITS1_SC_LITTLE 0xC0 -#define SYM_BITS1_SC_SH_LITTLE 6 - -#define SYM_BITS2_SC_BIG 0xE0 -#define SYM_BITS2_SC_SH_BIG 5 -#define SYM_BITS2_SC_LITTLE 0x07 -#define SYM_BITS2_SC_SH_LEFT_LITTLE 2 - -#define SYM_BITS2_RESERVED_BIG 0x10 -#define SYM_BITS2_RESERVED_LITTLE 0x08 - -#define SYM_BITS2_INDEX_BIG 0x0F -#define SYM_BITS2_INDEX_SH_LEFT_BIG 16 -#define SYM_BITS2_INDEX_LITTLE 0xF0 -#define SYM_BITS2_INDEX_SH_LITTLE 4 - -#define SYM_BITS3_INDEX_SH_LEFT_BIG 8 -#define SYM_BITS3_INDEX_SH_LEFT_LITTLE 4 - -#define SYM_BITS4_INDEX_SH_LEFT_BIG 0 -#define SYM_BITS4_INDEX_SH_LEFT_LITTLE 12 - -/* External symbol external record */ - -struct ext_ext { - struct sym_ext es_asym; - unsigned char es_bits1[1]; - unsigned char es_bits2[3]; - unsigned char es_ifd[4]; -}; - -#define EXT_BITS1_JMPTBL_BIG 0x80 -#define EXT_BITS1_JMPTBL_LITTLE 0x01 - -#define EXT_BITS1_COBOL_MAIN_BIG 0x40 -#define EXT_BITS1_COBOL_MAIN_LITTLE 0x02 - -#define EXT_BITS1_WEAKEXT_BIG 0x20 -#define EXT_BITS1_WEAKEXT_LITTLE 0x04 - -/* Dense numbers external record */ - -struct dnr_ext { - unsigned char d_rfd[4]; - unsigned char d_index[4]; -}; - -/* Relative file descriptor */ - -struct rfd_ext { - unsigned char rfd[4]; -}; - -/* Optimizer symbol external record */ - -struct opt_ext { - unsigned char o_bits1[1]; - unsigned char o_bits2[1]; - unsigned char o_bits3[1]; - unsigned char o_bits4[1]; - struct rndx_ext o_rndx; - unsigned char o_offset[4]; -}; - -#define OPT_BITS2_VALUE_SH_LEFT_BIG 16 -#define OPT_BITS2_VALUE_SH_LEFT_LITTLE 0 - -#define OPT_BITS3_VALUE_SH_LEFT_BIG 8 -#define OPT_BITS3_VALUE_SH_LEFT_LITTLE 8 - -#define OPT_BITS4_VALUE_SH_LEFT_BIG 0 -#define OPT_BITS4_VALUE_SH_LEFT_LITTLE 16 diff --git a/include/coff/apollo.h b/include/coff/apollo.h deleted file mode 100644 index 1d4802f..0000000 --- a/include/coff/apollo.h +++ /dev/null @@ -1,125 +0,0 @@ -/* coff information for Apollo M68K - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define DO_NOT_DEFINE_AOUTHDR -#define L_LNNO_SIZE 2 -#include "coff/external.h" - -/* Motorola 68000/68008/68010/68020 */ -#define MC68MAGIC 0520 -#define MC68KWRMAGIC 0520 /* writeable text segments */ -#define MC68TVMAGIC 0521 -#define MC68KROMAGIC 0521 /* readonly shareable text segments */ -#define MC68KPGMAGIC 0522 /* demand paged text segments */ -#define M68MAGIC 0210 -#define M68TVMAGIC 0211 - -/* Apollo 68000-based machines have a different magic number. This comes - * from /usr/include/apollo/filehdr.h - */ -#define APOLLOM68KMAGIC 0627 - -#define OMAGIC M68MAGIC -#define M68KBADMAG(x) (((x).f_magic!=MC68MAGIC) && ((x).f_magic!=MC68KWRMAGIC) && ((x).f_magic!=MC68TVMAGIC) && \ - ((x).f_magic!=MC68KROMAGIC) && ((x).f_magic!=MC68KPGMAGIC) && ((x).f_magic!=M68MAGIC) && ((x).f_magic!=M68TVMAGIC) && \ - ((x).f_magic!=APOLLOM68KMAGIC) ) - -/********************** AOUT "OPTIONAL HEADER" **********************/ - -typedef struct -{ - char magic[2]; /* type of file */ - char vstamp[2]; /* version stamp */ - char tsize[4]; /* text size in bytes, padded to FW bdry*/ - char dsize[4]; /* initialized data " " */ - char bsize[4]; /* uninitialized data " " */ - char entry[4]; /* entry pt. */ - char text_start[4]; /* base of text used for this file */ - char data_start[4]; /* base of data used for this file */ - char o_sri[4]; /* Apollo specific - .sri data pointer */ - char o_inlib[4]; /* Apollo specific - .inlib data pointer */ - char vid[8]; /* Apollo specific - 64 bit version ID */ -} -AOUTHDR; - -#define APOLLO_COFF_VERSION_NUMBER 1 /* the value of the aouthdr magic */ -#define AOUTHDRSZ 44 -#define AOUTSZ 44 - -/* Apollo allowa for larger section names by allowing - them to be in the string table. */ - -/* If s_zeores is all zeroes, s_offset gives the real - location of the name in the string table. */ - -#define s_zeroes section_name.s_name -#define s_offset (section_name.s_name+4) - -/* More names of "special" sections. */ -#define _TV ".tv" -#define _INIT ".init" -#define _FINI ".fini" -#define _LINES ".lines" -#define _BLOCKS ".blocks" -#define _SRI ".sri" /* Static Resource Information (systype, - et al.) */ -#define _MIR ".mir" /* Module Information Records */ -#define _APTV ".aptv" /* Apollo-style transfer vectors. */ -#define _INLIB ".inlib" /* Shared Library information */ -#define _RWDI ".rwdi" /* Read/write data initialization directives for - compressed sections */ -#define _UNWIND ".unwind" /* Stack unwind information */ - -/********************** RELOCATION DIRECTIVES **********************/ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; -#ifdef M68K_COFF_OFFSET - char r_offset[4]; -#endif - -}; - -#define RELOC struct external_reloc - -#ifdef M68K_COFF_OFFSET -#define RELSZ 14 -#else -#define RELSZ 10 -#endif - -/* Apollo specific STYP flags */ - -#define STYP_RELOCATED_NOT_LOADED 0x00010000 /* Section is relocated normally during linking, but need - not be loaded during program execution */ -#define STYP_DEBUG 0x00020000 /* debug section */ -#define STYP_OVERLAY 0x00040000 /* Section is overlayed */ -#define STYP_INSTRUCTION 0x00200000 /* Section contains executable code */ - -#define STYP_ZERO 0x00800000 /* Section is initialized to zero */ -#define STYP_INSTALLED 0x02000000 /* Section should be installable in KGT */ -#define STYP_LOOK_INSTALLED 0x04000000 /* Look for section in KGT */ -#define STYP_SECALIGN1 0x08000000 /* Specially aligned section */ -#define STYP_SECALIGN2 0x10000000 /* " " " */ -#define STYP_COMPRESSED 0x20000000 /* No section data per se (s_scnptr = 0), but there are - initialization directives for it in .rwdi section - (used in conjunction with STYP_BSS) */ diff --git a/include/coff/arm.h b/include/coff/arm.h deleted file mode 100644 index 4beb121..0000000 --- a/include/coff/arm.h +++ /dev/null @@ -1,130 +0,0 @@ -/* ARM COFF support for BFD. - Copyright 1998, 1999, 2000, 2002, 2003, 2010, 2013 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#define COFFARM 1 - -#define L_LNNO_SIZE 2 -#define INCLUDE_COMDAT_FIELDS_IN_AUXENT -#include "coff/external.h" - -/* Bits for f_flags: - F_RELFLG relocation info stripped from file - F_EXEC file is executable (no unresolved external references) - F_LNNO line numbers stripped from file - F_LSYMS local symbols stripped from file - F_INTERWORK file supports switching between ARM and Thumb instruction sets - F_INTERWORK_SET the F_INTERWORK bit is valid - F_APCS_FLOAT code passes float arguments in float registers - F_PIC code is reentrant/position-independent - F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax) - F_APCS_26 file uses 26 bit ARM Procedure Calling Standard - F_APCS_SET the F_APCS_26, F_APCS_FLOAT and F_PIC bits have been initialised - F_SOFT_FLOAT code does not use floating point instructions. */ - -#define F_RELFLG (0x0001) -#define F_EXEC (0x0002) -#define F_LNNO (0x0004) -#define F_LSYMS (0x0008) -#define F_INTERWORK (0x0010) -#define F_INTERWORK_SET (0x0020) -#define F_APCS_FLOAT (0x0040) -#undef F_AR16WR -#define F_PIC (0x0080) -#define F_AR32WR (0x0100) -#define F_APCS_26 (0x0400) -#define F_APCS_SET (0x0800) -#define F_SOFT_FLOAT (0x2000) -#define F_VFP_FLOAT (0x4000) - -/* Bits stored in flags field of the internal_f structure */ - -#define F_INTERWORK (0x0010) -#define F_APCS_FLOAT (0x0040) -#define F_PIC (0x0080) -#define F_APCS26 (0x1000) -#define F_ARM_ARCHITECTURE_MASK (0x4000+0x0800+0x0400) -#define F_ARM_2 (0x0400) -#define F_ARM_2a (0x0800) -#define F_ARM_3 (0x0c00) -#define F_ARM_3M (0x4000) -#define F_ARM_4 (0x4400) -#define F_ARM_4T (0x4800) -#define F_ARM_5 (0x4c00) - -/* - ARMMAGIC ought to encoded the procesor type, - but it is too late to change it now, instead - the flags field of the internal_f structure - is used as shown above. - - XXX - NC 5/6/97. */ - -#define ARMMAGIC 0xa00 /* I just made this up */ - -#define ARMBADMAG(x) (((x).f_magic != ARMMAGIC)) - -#define ARMPEMAGIC 0x1c0 -#define THUMBPEMAGIC 0x1c2 -#define ARMV7PEMAGIC 0x1c4 - -#undef ARMBADMAG -#define ARMBADMAG(x) (((x).f_magic != ARMMAGIC) && ((x).f_magic != ARMPEMAGIC) && ((x).f_magic != THUMBPEMAGIC) && ((x).f_magic != ARMV7PEMAGIC)) - -#define OMAGIC 0404 /* object files, eg as output */ -#define ZMAGIC 0413 /* demand load format, eg normal ld output */ -#define STMAGIC 0401 /* target shlib */ -#define SHMAGIC 0443 /* host shlib */ - -/* define some NT default values */ -/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */ -#define NT_SECTION_ALIGNMENT 0x1000 -#define NT_FILE_ALIGNMENT 0x200 -#define NT_DEF_RESERVE 0x100000 -#define NT_DEF_COMMIT 0x1000 - -/* We use the .rdata section to hold read only data. */ -#define _LIT ".rdata" - -/********************** RELOCATION DIRECTIVES **********************/ -#ifdef ARM_WINCE -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 10 - -#else -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; - char r_offset[4]; -}; - -#define RELOC struct external_reloc -#define RELSZ 14 -#endif - -#define ARM_NOTE_SECTION ".note" diff --git a/include/coff/aux-coff.h b/include/coff/aux-coff.h deleted file mode 100644 index de7979a..0000000 --- a/include/coff/aux-coff.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Modifications of internal.h and m68k.h needed by A/UX - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. - - Suggested by Ian Lance Taylor */ - -#ifndef GNU_COFF_AUX_H -#define GNU_COFF_AUX_H 1 - -#include "coff/internal.h" -#include "coff/m68k.h" - -/* Section contains 64-byte padded pathnames of shared libraries */ -#undef STYP_LIB -#define STYP_LIB 0x200 - -/* Section contains shared library initialization code */ -#undef STYP_INIT -#define STYP_INIT 0x400 - -/* Section contains .ident information */ -#undef STYP_IDENT -#define STYP_IDENT 0x800 - -/* Section types used by bfd and gas not defined (directly) by A/UX */ -#undef STYP_OVER -#define STYP_OVER 0 -#undef STYP_INFO -#define STYP_INFO STYP_IDENT - -/* Traditional name of the section tagged with STYP_LIB */ -#define _LIB ".lib" - -#endif /* GNU_COFF_AUX_H */ diff --git a/include/coff/ecoff.h b/include/coff/ecoff.h deleted file mode 100644 index a7991a9..0000000 --- a/include/coff/ecoff.h +++ /dev/null @@ -1,411 +0,0 @@ -/* Generic ECOFF support. - This does not include symbol information, found in sym.h and - symconst.h. - - Copyright 2001, 2002, 2003, 2004, 2005, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef ECOFF_H -#define ECOFF_H - -/* Mips magic numbers used in filehdr. MIPS_MAGIC_LITTLE is used on - little endian machines. MIPS_MAGIC_BIG is used on big endian - machines. Where is MIPS_MAGIC_1 from? */ -#define MIPS_MAGIC_1 0x0180 -#define MIPS_MAGIC_LITTLE 0x0162 -#define MIPS_MAGIC_BIG 0x0160 - -/* These are the magic numbers used for MIPS code compiled at ISA - level 2. */ -#define MIPS_MAGIC_LITTLE2 0x0166 -#define MIPS_MAGIC_BIG2 0x0163 - -/* These are the magic numbers used for MIPS code compiled at ISA - level 3. */ -#define MIPS_MAGIC_LITTLE3 0x142 -#define MIPS_MAGIC_BIG3 0x140 - -/* Alpha magic numbers used in filehdr. */ -#define ALPHA_MAGIC 0x183 -#define ALPHA_MAGIC_BSD 0x185 -/* A compressed version of an ALPHA_MAGIC file created by DEC's tools. */ -#define ALPHA_MAGIC_COMPRESSED 0x188 - -/* Magic numbers used in a.out header. */ -#define ECOFF_AOUT_OMAGIC 0407 /* not demand paged (ld -N). */ -#define ECOFF_AOUT_ZMAGIC 0413 /* demand load format, eg normal ld output */ - -/* Names of special sections. */ -#define _TEXT ".text" -#define _DATA ".data" -#define _BSS ".bss" -#define _RDATA ".rdata" -#define _SDATA ".sdata" -#define _SBSS ".sbss" -#define _LITA ".lita" -#define _LIT4 ".lit4" -#define _LIT8 ".lit8" -#define _LIB ".lib" -#define _INIT ".init" -#define _FINI ".fini" -#define _PDATA ".pdata" -#define _XDATA ".xdata" -#define _GOT ".got" -#define _HASH ".hash" -#define _DYNSYM ".dynsym" -#define _DYNSTR ".dynstr" -#define _RELDYN ".rel.dyn" -#define _CONFLIC ".conflic" -#define _COMMENT ".comment" -#define _LIBLIST ".liblist" -#define _DYNAMIC ".dynamic" -#define _RCONST ".rconst" - -/* ECOFF uses some additional section flags. */ -#define STYP_RDATA 0x100 -#define STYP_SDATA 0x200 -#define STYP_SBSS 0x400 -#define STYP_GOT 0x1000 -#define STYP_DYNAMIC 0x2000 -#define STYP_DYNSYM 0x4000 -#define STYP_RELDYN 0x8000 -#define STYP_DYNSTR 0x10000 -#define STYP_HASH 0x20000 -#define STYP_LIBLIST 0x40000 -#define STYP_CONFLIC 0x100000 -#define STYP_ECOFF_FINI 0x1000000 -#define STYP_EXTENDESC 0x2000000 /* 0x02FFF000 bits => scn type, rest clr */ -#define STYP_LITA 0x4000000 -#define STYP_LIT8 0x8000000 -#define STYP_LIT4 0x10000000 -#define STYP_ECOFF_LIB 0x40000000 -#define STYP_ECOFF_INIT 0x80000000 -#define STYP_OTHER_LOAD (STYP_ECOFF_INIT | STYP_ECOFF_FINI) - -/* extended section types */ -#define STYP_COMMENT 0x2100000 -#define STYP_RCONST 0x2200000 -#define STYP_XDATA 0x2400000 -#define STYP_PDATA 0x2800000 - -/* The linker needs a section to hold small common variables while - linking. There is no convenient way to create it when the linker - needs it, so we always create one for each BFD. We then avoid - writing it out. */ -#define SCOMMON ".scommon" - -/* If the extern bit in a reloc is 1, then r_symndx is an index into - the external symbol table. If the extern bit is 0, then r_symndx - indicates a section, and is one of the following values. */ -#define RELOC_SECTION_NONE 0 -#define RELOC_SECTION_TEXT 1 -#define RELOC_SECTION_RDATA 2 -#define RELOC_SECTION_DATA 3 -#define RELOC_SECTION_SDATA 4 -#define RELOC_SECTION_SBSS 5 -#define RELOC_SECTION_BSS 6 -#define RELOC_SECTION_INIT 7 -#define RELOC_SECTION_LIT8 8 -#define RELOC_SECTION_LIT4 9 -#define RELOC_SECTION_XDATA 10 -#define RELOC_SECTION_PDATA 11 -#define RELOC_SECTION_FINI 12 -#define RELOC_SECTION_LITA 13 -#define RELOC_SECTION_ABS 14 -#define RELOC_SECTION_RCONST 15 - -#define NUM_RELOC_SECTIONS 16 - -/********************** STABS **********************/ - -/* gcc uses mips-tfile to output type information in special stabs - entries. These must match the corresponding definition in - gcc/config/mips.h. At some point, these should probably go into a - shared include file, but currently gcc and gdb do not share any - directories. */ -#define CODE_MASK 0x8F300 -#define ECOFF_IS_STAB(sym) (((sym)->index & 0xFFF00) == CODE_MASK) -#define ECOFF_MARK_STAB(code) ((code)+CODE_MASK) -#define ECOFF_UNMARK_STAB(code) ((code)-CODE_MASK) -#define STABS_SYMBOL "@stabs" - -/********************** COFF **********************/ - -/* gcc also uses mips-tfile to output COFF debugging information. - These are the values it uses when outputting the .type directive. - These should also be in a shared include file. */ -#define N_BTMASK (017) -#define N_TMASK (060) -#define N_BTSHFT (4) -#define N_TSHIFT (2) - -/********************** AUX **********************/ - -/* The auxiliary type information is the same on all known ECOFF - targets. I can't see any reason that it would ever change, so I am - going to gamble and define the external structures here, in the - target independent ECOFF header file. The internal forms are - defined in coff/sym.h, which was originally donated by MIPS - Computer Systems. */ - -/* Type information external record */ - -struct tir_ext { - unsigned char t_bits1[1]; - unsigned char t_tq45[1]; - unsigned char t_tq01[1]; - unsigned char t_tq23[1]; -}; - -#define TIR_BITS1_FBITFIELD_BIG ((unsigned int) 0x80) -#define TIR_BITS1_FBITFIELD_LITTLE ((unsigned int) 0x01) - -#define TIR_BITS1_CONTINUED_BIG ((unsigned int) 0x40) -#define TIR_BITS1_CONTINUED_LITTLE ((unsigned int) 0x02) - -#define TIR_BITS1_BT_BIG ((unsigned int) 0x3F) -#define TIR_BITS1_BT_SH_BIG 0 -#define TIR_BITS1_BT_LITTLE ((unsigned int) 0xFC) -#define TIR_BITS1_BT_SH_LITTLE 2 - -#define TIR_BITS_TQ4_BIG ((unsigned int) 0xF0) -#define TIR_BITS_TQ4_SH_BIG 4 -#define TIR_BITS_TQ5_BIG ((unsigned int) 0x0F) -#define TIR_BITS_TQ5_SH_BIG 0 -#define TIR_BITS_TQ4_LITTLE ((unsigned int) 0x0F) -#define TIR_BITS_TQ4_SH_LITTLE 0 -#define TIR_BITS_TQ5_LITTLE ((unsigned int) 0xF0) -#define TIR_BITS_TQ5_SH_LITTLE 4 - -#define TIR_BITS_TQ0_BIG ((unsigned int) 0xF0) -#define TIR_BITS_TQ0_SH_BIG 4 -#define TIR_BITS_TQ1_BIG ((unsigned int) 0x0F) -#define TIR_BITS_TQ1_SH_BIG 0 -#define TIR_BITS_TQ0_LITTLE ((unsigned int) 0x0F) -#define TIR_BITS_TQ0_SH_LITTLE 0 -#define TIR_BITS_TQ1_LITTLE ((unsigned int) 0xF0) -#define TIR_BITS_TQ1_SH_LITTLE 4 - -#define TIR_BITS_TQ2_BIG ((unsigned int) 0xF0) -#define TIR_BITS_TQ2_SH_BIG 4 -#define TIR_BITS_TQ3_BIG ((unsigned int) 0x0F) -#define TIR_BITS_TQ3_SH_BIG 0 -#define TIR_BITS_TQ2_LITTLE ((unsigned int) 0x0F) -#define TIR_BITS_TQ2_SH_LITTLE 0 -#define TIR_BITS_TQ3_LITTLE ((unsigned int) 0xF0) -#define TIR_BITS_TQ3_SH_LITTLE 4 - -/* Relative symbol external record */ - -struct rndx_ext { - unsigned char r_bits[4]; -}; - -#define RNDX_BITS0_RFD_SH_LEFT_BIG 4 -#define RNDX_BITS1_RFD_BIG ((unsigned int) 0xF0) -#define RNDX_BITS1_RFD_SH_BIG 4 - -#define RNDX_BITS0_RFD_SH_LEFT_LITTLE 0 -#define RNDX_BITS1_RFD_LITTLE ((unsigned int) 0x0F) -#define RNDX_BITS1_RFD_SH_LEFT_LITTLE 8 - -#define RNDX_BITS1_INDEX_BIG ((unsigned int) 0x0F) -#define RNDX_BITS1_INDEX_SH_LEFT_BIG 16 -#define RNDX_BITS2_INDEX_SH_LEFT_BIG 8 -#define RNDX_BITS3_INDEX_SH_LEFT_BIG 0 - -#define RNDX_BITS1_INDEX_LITTLE ((unsigned int) 0xF0) -#define RNDX_BITS1_INDEX_SH_LITTLE 4 -#define RNDX_BITS2_INDEX_SH_LEFT_LITTLE 4 -#define RNDX_BITS3_INDEX_SH_LEFT_LITTLE 12 - -/* Auxiliary symbol information external record */ - -union aux_ext { - struct tir_ext a_ti; - struct rndx_ext a_rndx; - unsigned char a_dnLow[4]; - unsigned char a_dnHigh[4]; - unsigned char a_isym[4]; - unsigned char a_iss[4]; - unsigned char a_width[4]; - unsigned char a_count[4]; -}; - -#define AUX_GET_ANY(bigend, ax, field) \ - ((bigend) ? bfd_getb32 ((ax)->field) : bfd_getl32 ((ax)->field)) - -#define AUX_GET_DNLOW(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_dnLow) -#define AUX_GET_DNHIGH(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_dnHigh) -#define AUX_GET_ISYM(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_isym) -#define AUX_GET_ISS(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_iss) -#define AUX_GET_WIDTH(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_width) -#define AUX_GET_COUNT(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_count) - -#define AUX_PUT_ANY(bigend, val, ax, field) \ - ((bigend) \ - ? (bfd_putb32 ((bfd_vma) (val), (ax)->field), 0) \ - : (bfd_putl32 ((bfd_vma) (val), (ax)->field), 0)) - -#define AUX_PUT_DNLOW(bigend, val, ax) \ - AUX_PUT_ANY ((bigend), (val), (ax), a_dnLow) -#define AUX_PUT_DNHIGH(bigend, val, ax) \ - AUX_PUT_ANY ((bigend), (val), (ax), a_dnHigh) -#define AUX_PUT_ISYM(bigend, val, ax) \ - AUX_PUT_ANY ((bigend), (val), (ax), a_isym) -#define AUX_PUT_ISS(bigend, val, ax) \ - AUX_PUT_ANY ((bigend), (val), (ax), a_iss) -#define AUX_PUT_WIDTH(bigend, val, ax) \ - AUX_PUT_ANY ((bigend), (val), (ax), a_width) -#define AUX_PUT_COUNT(bigend, val, ax) \ - AUX_PUT_ANY ((bigend), (val), (ax), a_count) - -/********************** SYMBOLS **********************/ - -/* For efficiency, gdb deals directly with the unswapped symbolic - information (that way it only takes the time to swap information - that it really needs to read). gdb originally retrieved the - information directly from the BFD backend information, but that - strategy, besides being sort of ugly, does not work for MIPS ELF, - which also uses ECOFF debugging information. This structure holds - pointers to the (mostly) unswapped symbolic information. */ - -struct ecoff_debug_info -{ - /* The swapped ECOFF symbolic header. */ - HDRR symbolic_header; - - /* Pointers to the unswapped symbolic information. Note that the - pointers to external structures point to different sorts of - information on different ECOFF targets. The ecoff_debug_swap - structure provides the sizes of the structures and the functions - needed to swap the information in and out. These pointers are - all pointers to arrays, not single structures. They will be NULL - if there are no instances of the relevant structure. These - fields are also used by the assembler to output ECOFF debugging - information. */ - unsigned char *line; - void *external_dnr; /* struct dnr_ext */ - void *external_pdr; /* struct pdr_ext */ - void *external_sym; /* struct sym_ext */ - void *external_opt; /* struct opt_ext */ - union aux_ext *external_aux; - char *ss; - char *ssext; - void *external_fdr; /* struct fdr_ext */ - void *external_rfd; /* struct rfd_ext */ - void *external_ext; /* struct ext_ext */ - - /* These fields are used when linking. They may disappear at some - point. */ - char *ssext_end; - void *external_ext_end; - - /* When linking, this field holds a mapping from the input FDR - numbers to the output numbers, and is used when writing out the - external symbols. It is NULL if no mapping is required. */ - RFDT *ifdmap; - - /* The swapped FDR information. Currently this is never NULL, but - code using this structure should probably double-check in case - this changes in the future. This is a pointer to an array, not a - single structure. */ - FDR *fdr; -}; - -/* These structures are used by the ECOFF find_nearest_line function. */ - -struct ecoff_fdrtab_entry -{ - /* Base address in .text of this FDR. */ - bfd_vma base_addr; - FDR *fdr; -}; - -struct ecoff_find_line -{ - /* Allocated memory to hold function and file names. */ - char *find_buffer; - - /* FDR table, sorted by address: */ - long fdrtab_len; - struct ecoff_fdrtab_entry *fdrtab; - - /* Cache entry for most recently found line information. The sect - field is NULL if this cache does not contain valid information. */ - struct - { - asection *sect; - bfd_vma start; - bfd_vma stop; - const char *filename; - const char *functionname; - unsigned int line_num; - } cache; -}; - -/********************** SWAPPING **********************/ - -/* The generic ECOFF code needs to be able to swap debugging - information in and out in the specific format used by a particular - ECOFF implementation. This structure provides the information - needed to do this. */ - -struct ecoff_debug_swap -{ - /* Symbol table magic number. */ - int sym_magic; - /* Alignment of debugging information. E.g., 4. */ - bfd_size_type debug_align; - /* Sizes of external symbolic information. */ - bfd_size_type external_hdr_size; - bfd_size_type external_dnr_size; - bfd_size_type external_pdr_size; - bfd_size_type external_sym_size; - bfd_size_type external_opt_size; - bfd_size_type external_fdr_size; - bfd_size_type external_rfd_size; - bfd_size_type external_ext_size; - /* Functions to swap in external symbolic data. */ - void (*swap_hdr_in) (bfd *, void *, HDRR *); - void (*swap_dnr_in) (bfd *, void *, DNR *); - void (*swap_pdr_in) (bfd *, void *, PDR *); - void (*swap_sym_in) (bfd *, void *, SYMR *); - void (*swap_opt_in) (bfd *, void *, OPTR *); - void (*swap_fdr_in) (bfd *, void *, FDR *); - void (*swap_rfd_in) (bfd *, void *, RFDT *); - void (*swap_ext_in) (bfd *, void *, EXTR *); - void (*swap_tir_in) (int, const struct tir_ext *, TIR *); - void (*swap_rndx_in) (int, const struct rndx_ext *, RNDXR *); - /* Functions to swap out external symbolic data. */ - void (*swap_hdr_out) (bfd *, const HDRR *, void *); - void (*swap_dnr_out) (bfd *, const DNR *, void *); - void (*swap_pdr_out) (bfd *, const PDR *, void *); - void (*swap_sym_out) (bfd *, const SYMR *, void *); - void (*swap_opt_out) (bfd *, const OPTR *, void *); - void (*swap_fdr_out) (bfd *, const FDR *, void *); - void (*swap_rfd_out) (bfd *, const RFDT *, void *); - void (*swap_ext_out) (bfd *, const EXTR *, void *); - void (*swap_tir_out) (int, const TIR *, struct tir_ext *); - void (*swap_rndx_out) (int, const RNDXR *, struct rndx_ext *); - /* Function to read symbol data and set up pointers in - ecoff_debug_info structure. The section argument is used for - ELF, not straight ECOFF. */ - bfd_boolean (*read_debug_info) (bfd *, asection *, struct ecoff_debug_info *); -}; - -#endif /* ! defined (ECOFF_H) */ diff --git a/include/coff/external.h b/include/coff/external.h deleted file mode 100644 index 4bf594d..0000000 --- a/include/coff/external.h +++ /dev/null @@ -1,269 +0,0 @@ -/* external.h -- External COFF structures - - Copyright 2001, 2006, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef COFF_EXTERNAL_H -#define COFF_EXTERNAL_H - -#ifndef DO_NOT_DEFINE_FILHDR -/********************** FILE HEADER **********************/ - -struct external_filehdr - { - char f_magic[2]; /* magic number */ - char f_nscns[2]; /* number of sections */ - char f_timdat[4]; /* time & date stamp */ - char f_symptr[4]; /* file pointer to symtab */ - char f_nsyms[4]; /* number of symtab entries */ - char f_opthdr[2]; /* sizeof(optional hdr) */ - char f_flags[2]; /* flags */ - }; - -#define FILHDR struct external_filehdr -#define FILHSZ 20 -#endif - -#ifndef DO_NOT_DEFINE_AOUTHDR -/********************** AOUT "OPTIONAL HEADER" **********************/ - -typedef struct external_aouthdr - { - char magic[2]; /* type of file */ - char vstamp[2]; /* version stamp */ - char tsize[4]; /* text size in bytes, padded to FW bdry*/ - char dsize[4]; /* initialized data " " */ - char bsize[4]; /* uninitialized data " " */ - char entry[4]; /* entry pt. */ - char text_start[4]; /* base of text used for this file */ - char data_start[4]; /* base of data used for this file */ - } ATTRIBUTE_PACKED -AOUTHDR; - -#define AOUTHDRSZ 28 -#define AOUTSZ 28 - -typedef struct external_aouthdr64 -{ - char magic[2]; /* Type of file. */ - char vstamp[2]; /* Version stamp. */ - char tsize[4]; /* Text size in bytes, padded to FW bdry*/ - char dsize[4]; /* Initialized data " ". */ - char bsize[4]; /* Uninitialized data " ". */ - char entry[4]; /* Entry pt. */ - char text_start[4]; /* Base of text used for this file. */ -} -AOUTHDR64; -#define AOUTHDRSZ64 24 - -#endif /* not DO_NOT_DEFINE_AOUTHDR */ - -#ifndef DO_NOT_DEFINE_SCNHDR -/********************** SECTION HEADER **********************/ - -struct external_scnhdr - { - char s_name[8]; /* section name */ - char s_paddr[4]; /* physical address, aliased s_nlib */ - char s_vaddr[4]; /* virtual address */ - char s_size[4]; /* section size */ - char s_scnptr[4]; /* file ptr to raw data for section */ - char s_relptr[4]; /* file ptr to relocation */ - char s_lnnoptr[4]; /* file ptr to line numbers */ - char s_nreloc[2]; /* number of relocation entries */ - char s_nlnno[2]; /* number of line number entries */ - char s_flags[4]; /* flags */ - }; - -#define SCNHDR struct external_scnhdr -#define SCNHSZ 40 - -/* Names of "special" sections. */ - -#define _TEXT ".text" -#define _DATA ".data" -#define _BSS ".bss" -#define _COMMENT ".comment" -#define _LIB ".lib" -#endif /* not DO_NOT_DEFINE_SCNHDR */ - -#ifndef DO_NOT_DEFINE_LINENO - -/********************** LINE NUMBERS **********************/ - -#ifndef L_LNNO_SIZE -#error L_LNNO_SIZE needs to be defined -#endif - -/* 1 line number entry for every "breakpointable" source line in a section. - Line numbers are grouped on a per function basis; first entry in a function - grouping will have l_lnno = 0 and in place of physical address will be the - symbol table index of the function name. */ -struct external_lineno -{ - union - { - char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/ - char l_paddr[4]; /* (physical) address of line number */ - } l_addr; - - char l_lnno[L_LNNO_SIZE]; /* line number */ -}; - -#define LINENO struct external_lineno -#define LINESZ (4 + L_LNNO_SIZE) - -#if L_LNNO_SIZE == 4 -#define GET_LINENO_LNNO(abfd, ext) H_GET_32 (abfd, (ext->l_lnno)) -#define PUT_LINENO_LNNO(abfd, val, ext) H_PUT_32 (abfd, val, (ext->l_lnno)) -#endif -#if L_LNNO_SIZE == 2 -#define GET_LINENO_LNNO(abfd, ext) H_GET_16 (abfd, (ext->l_lnno)) -#define PUT_LINENO_LNNO(abfd, val, ext) H_PUT_16 (abfd, val, (ext->l_lnno)) -#endif - -#endif /* not DO_NOT_DEFINE_LINENO */ - -#ifndef DO_NOT_DEFINE_SYMENT -/********************** SYMBOLS **********************/ - -#define E_SYMNMLEN 8 /* # characters in a symbol name */ -#ifndef E_FILNMLEN -#define E_FILNMLEN 14 -#endif -#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */ - -struct external_syment -{ - union - { - char e_name[E_SYMNMLEN]; - - struct - { - char e_zeroes[4]; - char e_offset[4]; - } e; - } e; - - char e_value[4]; - char e_scnum[2]; - char e_type[2]; - char e_sclass[1]; - char e_numaux[1]; -} ATTRIBUTE_PACKED ; - -#define SYMENT struct external_syment -#define SYMESZ 18 - -#ifndef N_BTMASK -#define N_BTMASK 0xf -#endif - -#ifndef N_TMASK -#define N_TMASK 0x30 -#endif - -#ifndef N_BTSHFT -#define N_BTSHFT 4 -#endif - -#ifndef N_TSHIFT -#define N_TSHIFT 2 -#endif - -#endif /* not DO_NOT_DEFINE_SYMENT */ - -#ifndef DO_NOT_DEFINE_AUXENT - -union external_auxent -{ - struct - { - char x_tagndx[4]; /* str, un, or enum tag indx */ - - union - { - struct - { - char x_lnno[2]; /* declaration line number */ - char x_size[2]; /* str/union/array size */ - } x_lnsz; - - char x_fsize[4]; /* size of function */ - - } x_misc; - - union - { - struct /* if ISFCN, tag, or .bb */ - { - char x_lnnoptr[4]; /* ptr to fcn line # */ - char x_endndx[4]; /* entry ndx past block end */ - } x_fcn; - - struct /* if ISARY, up to 4 dimen. */ - { - char x_dimen[E_DIMNUM][2]; - } x_ary; - - } x_fcnary; - - char x_tvndx[2]; /* tv index */ - - } x_sym; - - union - { - char x_fname[E_FILNMLEN]; - - struct - { - char x_zeroes[4]; - char x_offset[4]; - } x_n; - - } x_file; - - struct - { - char x_scnlen[4]; /* section length */ - char x_nreloc[2]; /* # relocation entries */ - char x_nlinno[2]; /* # line numbers */ -#ifdef INCLUDE_COMDAT_FIELDS_IN_AUXENT - char x_checksum[4]; /* section COMDAT checksum */ - char x_associated[2]; /* COMDAT associated section index */ - char x_comdat[1]; /* COMDAT selection number */ -#endif - } x_scn; - - struct - { - char x_tvfill[4]; /* tv fill value */ - char x_tvlen[2]; /* length of .tv */ - char x_tvran[2][2]; /* tv range */ - } x_tv; /* info about .tv section (in auxent of symbol .tv)) */ -} ATTRIBUTE_PACKED ; - -#define AUXENT union external_auxent -#define AUXESZ 18 - -#define _ETEXT "etext" - -#endif /* not DO_NOT_DEFINE_AUXENT */ - -#endif /* COFF_EXTERNAL_H */ diff --git a/include/coff/go32exe.h b/include/coff/go32exe.h deleted file mode 100644 index a2ca6cd..0000000 --- a/include/coff/go32exe.h +++ /dev/null @@ -1,36 +0,0 @@ -/* COFF information for PC running go32. - - Copyright 2001, 2005, 2009, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -struct external_filehdr_go32_exe - { - char stub[GO32_STUBSIZE]; /* the stub to load the image */ - /* the standard COFF header */ - char f_magic[2]; /* magic number */ - char f_nscns[2]; /* number of sections */ - char f_timdat[4]; /* time & date stamp */ - char f_symptr[4]; /* file pointer to symtab */ - char f_nsyms[4]; /* number of symtab entries */ - char f_opthdr[2]; /* sizeof(optional hdr) */ - char f_flags[2]; /* flags */ - }; - -#undef FILHDR -#define FILHDR struct external_filehdr_go32_exe -#undef FILHSZ -#define FILHSZ GO32_STUBSIZE+20 diff --git a/include/coff/h8300.h b/include/coff/h8300.h deleted file mode 100644 index 4de6602..0000000 --- a/include/coff/h8300.h +++ /dev/null @@ -1,55 +0,0 @@ -/* coff information for Renesas H8/300 and H8/300-H - - Copyright 2001, 2003, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define L_LNNO_SIZE 4 -#include "coff/external.h" - -#define H8300MAGIC 0x8300 -#define H8300HMAGIC 0x8301 -#define H8300SMAGIC 0x8302 -#define H8300HNMAGIC 0x8303 -#define H8300SNMAGIC 0x8304 - -#define H8300BADMAG(x) (((x).f_magic != H8300MAGIC)) -#define H8300HBADMAG(x) (((x).f_magic != H8300HMAGIC)) -#define H8300SBADMAG(x) (((x).f_magic != H8300SMAGIC)) -#define H8300HNBADMAG(x) (((x).f_magic != H8300HNMAGIC)) -#define H8300SNBADMAG(x) (((x).f_magic != H8300SNMAGIC)) - -/* Relocation directives. */ - -/* The external reloc has an offset field, because some of the reloc - types on the h8 don't have room in the instruction for the entire - offset - eg the strange jump and high page addressing modes. */ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_offset[4]; - char r_type[2]; - char r_stuff[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 16 - - - - diff --git a/include/coff/h8500.h b/include/coff/h8500.h deleted file mode 100644 index 56097f8..0000000 --- a/include/coff/h8500.h +++ /dev/null @@ -1,47 +0,0 @@ -/* coff information for Renesas H8/500 - - Copyright 2001, 2003, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define L_LNNO_SIZE 4 -#include "coff/external.h" - -#define H8500MAGIC 0x8500 - -#define H8500BADMAG(x) ((0xffff && ((x).f_magic) != H8500MAGIC)) - -/********************** RELOCATION DIRECTIVES **********************/ - -/* The external reloc has an offset field, because some of the reloc - types on the h8 don't have room in the instruction for the entire - offset - eg the strange jump and high page addressing modes. */ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_offset[4]; - char r_type[2]; - char r_stuff[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 16 - - - - diff --git a/include/coff/i386.h b/include/coff/i386.h deleted file mode 100644 index 61e723a..0000000 --- a/include/coff/i386.h +++ /dev/null @@ -1,74 +0,0 @@ -/* coff information for Intel 386/486. - - Copyright 2001, 2009, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define L_LNNO_SIZE 2 -#define INCLUDE_COMDAT_FIELDS_IN_AUXENT -#include "coff/external.h" - -#define COFF_PAGE_SIZE 0x1000 - -/* Bits for f_flags: - F_RELFLG Relocation info stripped from file - F_EXEC File is executable (no unresolved external references) - F_LNNO Line numbers stripped from file - F_LSYMS Local symbols stripped from file - F_AR32WR File has byte ordering of an AR32WR machine (e.g. vax). */ - -#define F_RELFLG (0x0001) -#define F_EXEC (0x0002) -#define F_LNNO (0x0004) -#define F_LSYMS (0x0008) - -#define I386MAGIC 0x14c -#define I386PTXMAGIC 0x154 -#define I386AIXMAGIC 0x175 - -/* This is Lynx's all-platform magic number for executables. */ - -#define LYNXCOFFMAGIC 0415 - -#define I386BADMAG(x) ( ((x).f_magic != I386MAGIC) \ - && (x).f_magic != I386AIXMAGIC \ - && (x).f_magic != I386PTXMAGIC \ - && (x).f_magic != LYNXCOFFMAGIC) - -#define OMAGIC 0404 /* Object files, eg as output. */ -#define ZMAGIC 0413 /* Demand load format, eg normal ld output. */ -#define STMAGIC 0401 /* Target shlib. */ -#define SHMAGIC 0443 /* Host shlib. */ - -/* Define some NT default values. */ -/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */ -#define NT_SECTION_ALIGNMENT 0x1000 -#define NT_FILE_ALIGNMENT 0x200 -#define NT_DEF_RESERVE 0x100000 -#define NT_DEF_COMMIT 0x1000 - -/* Relocation directives. */ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 10 - diff --git a/include/coff/i860.h b/include/coff/i860.h deleted file mode 100644 index 0767de4..0000000 --- a/include/coff/i860.h +++ /dev/null @@ -1,87 +0,0 @@ -/* COFF information for the Intel i860. - - Copyright 2001, 2003, 2010, 2011 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file was hacked from i386.h [dolan@ssd.intel.com] */ - -#define L_LNNO_SIZE 2 -#include "coff/external.h" - -/* Bits for f_flags: - F_RELFLG relocation info stripped from file - F_EXEC file is executable (no unresolved external references) - F_LNNO line numbers stripped from file - F_LSYMS local symbols stripped from file - F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax). */ - -#define F_RELFLG (0x0001) -#define F_EXEC (0x0002) -#define F_LNNO (0x0004) -#define F_LSYMS (0x0008) - -#define I860MAGIC 0x14d - -#define I860BADMAG(x) ((x).f_magic != I860MAGIC) - -#undef AOUTSZ -#define AOUTSZ 36 - -/* FIXME: What are the a.out magic numbers? */ - -#define _ETEXT "etext" - -/********************** RELOCATION DIRECTIVES **********************/ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 10 - -/* The relocation directory entry types. - PAIR : The low half that follows relates to the preceding HIGH[ADJ]. - HIGH : The high half of a 32-bit constant. - LOWn : The low half, insn bits 15..(n-1), 2^n-byte aligned. - SPLITn : The low half, insn bits 20..16 and 10..(n-1), 2^n-byte aligned. - HIGHADJ: Similar to HIGH, but with adjustment. - BRADDR : 26-bit branch displacement. - - Note: The Intel assembler manual lists LOW4 as one of the - relocation types, but it appears to be useless for the i860. - We will recognize it anyway, just in case it actually appears in - any object files. */ - -enum { - COFF860_R_PAIR = 0x1c, - COFF860_R_HIGH = 0x1e, - COFF860_R_LOW0 = 0x1f, - COFF860_R_LOW1 = 0x20, - COFF860_R_LOW2 = 0x21, - COFF860_R_LOW3 = 0x22, - COFF860_R_LOW4 = 0x23, - COFF860_R_SPLIT0 = 0x24, - COFF860_R_SPLIT1 = 0x25, - COFF860_R_SPLIT2 = 0x26, - COFF860_R_HIGHADJ = 0x27, - COFF860_R_BRADDR = 0x28 -}; - diff --git a/include/coff/i960.h b/include/coff/i960.h deleted file mode 100644 index 2bf42ad..0000000 --- a/include/coff/i960.h +++ /dev/null @@ -1,320 +0,0 @@ -/* coff information for 80960. Origins: Intel corp, natch. - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* NOTE: Tagentries (cf TAGBITS) are no longer used by the 960 */ - -/********************** FILE HEADER **********************/ - -struct external_filehdr -{ - char f_magic[2]; /* magic number */ - char f_nscns[2]; /* number of sections */ - char f_timdat[4]; /* time & date stamp */ - char f_symptr[4]; /* file pointer to symtab */ - char f_nsyms[4]; /* number of symtab entries */ - char f_opthdr[2]; /* sizeof(optional hdr) */ - char f_flags[2]; /* flags */ -}; - -#define OMAGIC (0407) /* old impure format. data immediately - follows text. both sections are rw. */ -#define NMAGIC (0410) /* split i&d, read-only text */ - -/* -* Intel 80960 (I960) processor flags. -* F_I960TYPE == mask for processor type field. -*/ - -#define F_I960TYPE (0xf000) -#define F_I960CORE (0x1000) -#define F_I960KB (0x2000) -#define F_I960SB (0x2000) -#define F_I960MC (0x3000) -#define F_I960XA (0x4000) -#define F_I960CA (0x5000) -#define F_I960KA (0x6000) -#define F_I960SA (0x6000) -#define F_I960JX (0x7000) -#define F_I960HX (0x8000) - - -/** i80960 Magic Numbers -*/ - -#define I960ROMAGIC (0x160) /* read-only text segments */ -#define I960RWMAGIC (0x161) /* read-write text segments */ - -#define I960BADMAG(x) (((x).f_magic!=I960ROMAGIC) && ((x).f_magic!=I960RWMAGIC)) - -#define FILHDR struct external_filehdr -#define FILHSZ 20 - -/********************** AOUT "OPTIONAL HEADER" **********************/ - -typedef struct -{ - unsigned long phys_addr; - unsigned long bitarray; -} TAGBITS; - -typedef struct -{ - char magic[2]; /* type of file */ - char vstamp[2]; /* version stamp */ - char tsize[4]; /* text size in bytes, padded to FW bdry*/ - char dsize[4]; /* initialized data " " */ - char bsize[4]; /* uninitialized data " " */ - char entry[4]; /* entry pt. */ - char text_start[4]; /* base of text used for this file */ - char data_start[4]; /* base of data used for this file */ - char tagentries[4]; /* number of tag entries to follow */ -} -AOUTHDR; - -/* return a pointer to the tag bits array */ - -#define TAGPTR(aout) ((TAGBITS *) (&(aout.tagentries)+1)) - -/* compute size of a header */ - -/*#define AOUTSZ(aout) (sizeof(AOUTHDR)+(aout.tagentries*sizeof(TAGBITS)))*/ -#define AOUTSZ 32 -#define AOUTHDRSZ 32 - - -/********************** SECTION HEADER **********************/ - -struct external_scnhdr -{ - char s_name[8]; /* section name */ - char s_paddr[4]; /* physical address, aliased s_nlib */ - char s_vaddr[4]; /* virtual address */ - char s_size[4]; /* section size */ - char s_scnptr[4]; /* file ptr to raw data for section */ - char s_relptr[4]; /* file ptr to relocation */ - char s_lnnoptr[4]; /* file ptr to line numbers */ - char s_nreloc[2]; /* number of relocation entries */ - char s_nlnno[2]; /* number of line number entries*/ - char s_flags[4]; /* flags */ - char s_align[4]; /* section alignment */ -}; - - -#define SCNHDR struct external_scnhdr -#define SCNHSZ 44 - -/* - * names of "special" sections - */ -#define _TEXT ".text" -#define _DATA ".data" -#define _BSS ".bss" - -/********************** LINE NUMBERS **********************/ - -/* 1 line number entry for every "breakpointable" source line in a section. - * Line numbers are grouped on a per function basis; first entry in a function - * grouping will have l_lnno = 0 and in place of physical address will be the - * symbol table index of the function name. - */ -struct external_lineno -{ - union - { - char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/ - char l_paddr[4]; /* (physical) address of line number */ - } l_addr; - - char l_lnno[2]; /* line number */ - char padding[2]; /* force alignment */ -}; - - -#define LINENO struct external_lineno -#define LINESZ 8 - -/********************** SYMBOLS **********************/ - -#define E_SYMNMLEN 8 /* # characters in a symbol name */ -#define E_FILNMLEN 14 /* # characters in a file name */ -#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */ - -struct external_syment -{ - union - { - char e_name[E_SYMNMLEN]; - - struct - { - char e_zeroes[4]; - char e_offset[4]; - } e; - } e; - - char e_value[4]; - char e_scnum[2]; - char e_flags[2]; - char e_type[4]; - char e_sclass[1]; - char e_numaux[1]; - char pad2[2]; -}; - -#define N_BTMASK (0x1f) -#define N_TMASK (0x60) -#define N_BTSHFT (5) -#define N_TSHIFT (2) - -union external_auxent -{ - struct - { - char x_tagndx[4]; /* str, un, or enum tag indx */ - - union - { - struct - { - char x_lnno[2]; /* declaration line number */ - char x_size[2]; /* str/union/array size */ - } x_lnsz; - - char x_fsize[4]; /* size of function */ - - } x_misc; - - union - { - struct /* if ISFCN, tag, or .bb */ - { - char x_lnnoptr[4]; /* ptr to fcn line # */ - char x_endndx[4]; /* entry ndx past block end */ - } x_fcn; - - struct /* if ISARY, up to 4 dimen. */ - { - char x_dimen[E_DIMNUM][2]; - } x_ary; - - } x_fcnary; - - char x_tvndx[2]; /* tv index */ - - } x_sym; - - union - { - char x_fname[E_FILNMLEN]; - - struct - { - char x_zeroes[4]; - char x_offset[4]; - } x_n; - - } x_file; - - struct - { - char x_scnlen[4]; /* section length */ - char x_nreloc[2]; /* # relocation entries */ - char x_nlinno[2]; /* # line numbers */ - - } x_scn; - - struct - { - char x_tvfill[4]; /* tv fill value */ - char x_tvlen[2]; /* length of .tv */ - char x_tvran[2][2]; /* tv range */ - - } x_tv; /* info about .tv section (in auxent of symbol .tv)) */ - - /****************************************** - * I960-specific *2nd* aux. entry formats - ******************************************/ - struct - { - /* This is a very old typo that keeps getting propagated. */ -#define x_stdindx x_stindx - char x_stindx[4]; /* sys. table entry */ - } x_sc; /* system call entry */ - - struct - { - char x_balntry[4]; /* BAL entry point */ - } x_bal; /* BAL-callable function */ - - struct - { - char x_timestamp[4]; /* time stamp */ - char x_idstring[20]; /* producer identity string */ - - } x_ident; /* Producer ident info */ -}; - -#define SYMENT struct external_syment -#define SYMESZ 24 -#define AUXENT union external_auxent -#define AUXESZ 24 - -# define _ETEXT "_etext" - -/********************** RELOCATION DIRECTIVES **********************/ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; - char pad[2]; -}; - -/* r_type values for the i960. */ - -/* The i960 uses R_RELLONG, which is defined in internal.h as 0x11. - It is an absolute 32 bit relocation. */ - -#define R_IPRMED (0x19) /* 24-bit ip-relative relocation */ -#define R_OPTCALL (0x1b) /* 32-bit optimizable call (leafproc/sysproc) */ -#define R_OPTCALLX (0x1c) /* 64-bit optimizable call (leafproc/sysproc) */ - -/* The following relocation types are defined use by relaxing linkers, - which convert 32 bit calls (which require a 64 bit instruction) - into 24 bit calls (which require a 32 bit instruction) when - possible. It will be possible whenever the target of the call is - within a 24 bit range of the call instruction. - - It is always safe to ignore these relocations. They only serve to - mark points which the relaxing linker will have to consider. The - assembler must ensure that the correct code is generated even if - the relocations are ignored. In particular, this means that the - R_IPR13 relocation may not appear with an external symbol. */ - -#define R_IPR13 (0x1d) /* 13 bit ip-relative branch */ -#define R_ALIGN (0x1e) /* alignment marker. This has no - associated symbol. Instead, the - r_symndx field indicates the - require alignment at this point in - the file. It must be a power of 2. */ - -#define RELOC struct external_reloc -#define RELSZ 12 - diff --git a/include/coff/ia64.h b/include/coff/ia64.h deleted file mode 100644 index 2ee6268..0000000 --- a/include/coff/ia64.h +++ /dev/null @@ -1,89 +0,0 @@ -/* coff information for HP/Intel IA-64. - - Copyright 2000, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define DO_NOT_DEFINE_AOUTHDR -#define L_LNNO_SIZE 2 -#define INCLUDE_COMDAT_FIELDS_IN_AUXENT -#include "coff/external.h" - -#define IA64MAGIC 0x200 - -#define IA64BADMAG(x) (((x).f_magic != IA64MAGIC)) - -/* Bits for f_flags: - * F_RELFLG relocation info stripped from file - * F_EXEC file is executable (no unresolved external references) - * F_LNNO line numbers stripped from file - * F_LSYMS local symbols stripped from file - * F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax) - */ - -#define F_RELFLG (0x0001) -#define F_EXEC (0x0002) -#define F_LNNO (0x0004) -#define F_LSYMS (0x0008) - -/********************** AOUT "OPTIONAL HEADER" **********************/ -typedef struct -{ - char magic[2]; /* type of file */ - char vstamp[2]; /* version stamp */ - char tsize[4]; /* text size in bytes, padded to FW bdry*/ - char dsize[4]; /* initialized data " " */ - char bsize[4]; /* uninitialized data " " */ - char entry[4]; /* entry pt. */ - char text_start[4]; /* base of text used for this file */ -#ifndef BFD64 - char data_start[4]; /* base of data used for this file */ -#endif -} -AOUTHDR; - -#define PE32MAGIC 0x10b /* 32-bit image */ -#define PE32PMAGIC 0x20b /* 32-bit image inside 64-bit address space */ - -#define PE32PBADMAG(x) (((x).f_magic != PE32PMAGIC)) - -#define AOUTSZ 108 -#define AOUTHDRSZ 108 - -#define OMAGIC 0404 /* object files, eg as output */ -#define ZMAGIC 0413 /* demand load format, eg normal ld output */ -#define STMAGIC 0401 /* target shlib */ -#define SHMAGIC 0443 /* host shlib */ - -/* define some NT default values */ -/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */ -#define NT_SECTION_ALIGNMENT 0x1000 -#define NT_FILE_ALIGNMENT 0x200 -#define NT_DEF_RESERVE 0x100000 -#define NT_DEF_COMMIT 0x1000 - -/********************** RELOCATION DIRECTIVES **********************/ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 10 - diff --git a/include/coff/internal.h b/include/coff/internal.h deleted file mode 100644 index 8b84324..0000000 --- a/include/coff/internal.h +++ /dev/null @@ -1,830 +0,0 @@ -/* Internal format of COFF object file data structures, for GNU BFD. - This file is part of BFD, the Binary File Descriptor library. - - Copyright 1999, 2000, 2001, 2002, 2003, 2004. 2005, 2006, 2007, 2009, - 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef GNU_COFF_INTERNAL_H -#define GNU_COFF_INTERNAL_H 1 - -/* First, make "signed char" work, even on old compilers. */ -#ifndef signed -#ifndef __STDC__ -#define signed /**/ -#endif -#endif - -/********************** FILE HEADER **********************/ - -/* extra stuff in a PE header. */ - -struct internal_extra_pe_filehdr -{ - /* DOS header data follows for PE stuff */ - unsigned short e_magic; /* Magic number, 0x5a4d */ - unsigned short e_cblp; /* Bytes on last page of file, 0x90 */ - unsigned short e_cp; /* Pages in file, 0x3 */ - unsigned short e_crlc; /* Relocations, 0x0 */ - unsigned short e_cparhdr; /* Size of header in paragraphs, 0x4 */ - unsigned short e_minalloc; /* Minimum extra paragraphs needed, 0x0 */ - unsigned short e_maxalloc; /* Maximum extra paragraphs needed, 0xFFFF */ - unsigned short e_ss; /* Initial (relative) SS value, 0x0 */ - unsigned short e_sp; /* Initial SP value, 0xb8 */ - unsigned short e_csum; /* Checksum, 0x0 */ - unsigned short e_ip; /* Initial IP value, 0x0 */ - unsigned short e_cs; /* Initial (relative) CS value, 0x0 */ - unsigned short e_lfarlc; /* File address of relocation table, 0x40 */ - unsigned short e_ovno; /* Overlay number, 0x0 */ - unsigned short e_res[4]; /* Reserved words, all 0x0 */ - unsigned short e_oemid; /* OEM identifier (for e_oeminfo), 0x0 */ - unsigned short e_oeminfo; /* OEM information; e_oemid specific, 0x0 */ - unsigned short e_res2[10]; /* Reserved words, all 0x0 */ - bfd_vma e_lfanew; /* File address of new exe header, 0x80 */ - unsigned long dos_message[16]; /* text which always follows dos header */ - bfd_vma nt_signature; /* required NT signature, 0x4550 */ -}; - -#define GO32_STUBSIZE 2048 - -struct internal_filehdr -{ - struct internal_extra_pe_filehdr pe; - - /* coff-stgo32 EXE stub header before BFD tdata has been allocated. - Its data is kept in INTERNAL_FILEHDR.GO32STUB afterwards. - - F_GO32STUB is set iff go32stub contains a valid data. Artifical headers - created in BFD have no pre-set go32stub. */ - char go32stub[GO32_STUBSIZE]; - - /* Standard coff internal info. */ - unsigned short f_magic; /* magic number */ - unsigned short f_nscns; /* number of sections */ - long f_timdat; /* time & date stamp */ - bfd_vma f_symptr; /* file pointer to symtab */ - long f_nsyms; /* number of symtab entries */ - unsigned short f_opthdr; /* sizeof(optional hdr) */ - unsigned short f_flags; /* flags */ - unsigned short f_target_id; /* (TI COFF specific) */ -}; - - -/* Bits for f_flags: - F_RELFLG relocation info stripped from file - F_EXEC file is executable (no unresolved external references) - F_LNNO line numbers stripped from file - F_LSYMS local symbols stripped from file - F_AR16WR file is 16-bit little-endian - F_AR32WR file is 32-bit little-endian - F_AR32W file is 32-bit big-endian - F_DYNLOAD rs/6000 aix: dynamically loadable w/imports & exports - F_SHROBJ rs/6000 aix: file is a shared object - F_DLL PE format DLL - F_GO32STUB Field go32stub contains valid data. */ - -#define F_RELFLG (0x0001) -#define F_EXEC (0x0002) -#define F_LNNO (0x0004) -#define F_LSYMS (0x0008) -#define F_AR16WR (0x0080) -#define F_AR32WR (0x0100) -#define F_AR32W (0x0200) -#define F_DYNLOAD (0x1000) -#define F_SHROBJ (0x2000) -#define F_DLL (0x2000) -#define F_GO32STUB (0x4000) - -/* Extra structure which is used in the optional header. */ -typedef struct _IMAGE_DATA_DIRECTORY -{ - bfd_vma VirtualAddress; - long Size; -} IMAGE_DATA_DIRECTORY; -#define PE_EXPORT_TABLE 0 -#define PE_IMPORT_TABLE 1 -#define PE_RESOURCE_TABLE 2 -#define PE_EXCEPTION_TABLE 3 -#define PE_CERTIFICATE_TABLE 4 -#define PE_BASE_RELOCATION_TABLE 5 -#define PE_DEBUG_DATA 6 -#define PE_ARCHITECTURE 7 -#define PE_GLOBAL_PTR 8 -#define PE_TLS_TABLE 9 -#define PE_LOAD_CONFIG_TABLE 10 -#define PE_BOUND_IMPORT_TABLE 11 -#define PE_IMPORT_ADDRESS_TABLE 12 -#define PE_DELAY_IMPORT_DESCRIPTOR 13 -#define PE_CLR_RUNTIME_HEADER 14 -/* DataDirectory[15] is currently reserved, so no define. */ -#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 - -/* Default image base for NT. */ -#define NT_EXE_IMAGE_BASE 0x400000 -#define NT_DLL_IMAGE_BASE 0x10000000 - -/* Default image base for BeOS. */ -#define BEOS_EXE_IMAGE_BASE 0x80000000 -#define BEOS_DLL_IMAGE_BASE 0x10000000 - -/* Extra stuff in a PE aouthdr */ - -#define PE_DEF_SECTION_ALIGNMENT 0x1000 -#ifndef PE_DEF_FILE_ALIGNMENT -# define PE_DEF_FILE_ALIGNMENT 0x200 -#endif - -struct internal_extra_pe_aouthdr -{ - /* FIXME: The following entries are in AOUTHDR. But they aren't - available internally in bfd. We add them here so that objdump - can dump them. */ - /* The state of the image file */ - short Magic; - /* Linker major version number */ - char MajorLinkerVersion; - /* Linker minor version number */ - char MinorLinkerVersion; - /* Total size of all code sections */ - long SizeOfCode; - /* Total size of all initialized data sections */ - long SizeOfInitializedData; - /* Total size of all uninitialized data sections */ - long SizeOfUninitializedData; - /* Address of entry point relative to image base. */ - bfd_vma AddressOfEntryPoint; - /* Address of the first code section relative to image base. */ - bfd_vma BaseOfCode; - /* Address of the first data section relative to image base. */ - bfd_vma BaseOfData; - - /* PE stuff */ - bfd_vma ImageBase; /* address of specific location in memory that - file is located, NT default 0x10000 */ - - bfd_vma SectionAlignment; /* section alignment default 0x1000 */ - bfd_vma FileAlignment; /* file alignment default 0x200 */ - short MajorOperatingSystemVersion; /* minimum version of the operating */ - short MinorOperatingSystemVersion; /* system req'd for exe, default to 1*/ - short MajorImageVersion; /* user defineable field to store version of */ - short MinorImageVersion; /* exe or dll being created, default to 0 */ - short MajorSubsystemVersion; /* minimum subsystem version required to */ - short MinorSubsystemVersion; /* run exe; default to 3.1 */ - long Reserved1; /* seems to be 0 */ - long SizeOfImage; /* size of memory to allocate for prog */ - long SizeOfHeaders; /* size of PE header and section table */ - long CheckSum; /* set to 0 */ - short Subsystem; - - /* type of subsystem exe uses for user interface, - possible values: - 1 - NATIVE Doesn't require a subsystem - 2 - WINDOWS_GUI runs in Windows GUI subsystem - 3 - WINDOWS_CUI runs in Windows char sub. (console app) - 5 - OS2_CUI runs in OS/2 character subsystem - 7 - POSIX_CUI runs in Posix character subsystem */ - unsigned short DllCharacteristics; /* flags for DLL init */ - bfd_vma SizeOfStackReserve; /* amount of memory to reserve */ - bfd_vma SizeOfStackCommit; /* amount of memory initially committed for - initial thread's stack, default is 0x1000 */ - bfd_vma SizeOfHeapReserve; /* amount of virtual memory to reserve and */ - bfd_vma SizeOfHeapCommit; /* commit, don't know what to defaut it to */ - long LoaderFlags; /* can probably set to 0 */ - long NumberOfRvaAndSizes; /* number of entries in next entry, 16 */ - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -}; - -/********************** AOUT "OPTIONAL HEADER" **********************/ -struct internal_aouthdr -{ - short magic; /* type of file */ - short vstamp; /* version stamp */ - bfd_vma tsize; /* text size in bytes, padded to FW bdry*/ - bfd_vma dsize; /* initialized data " " */ - bfd_vma bsize; /* uninitialized data " " */ - bfd_vma entry; /* entry pt. */ - bfd_vma text_start; /* base of text used for this file */ - bfd_vma data_start; /* base of data used for this file */ - - /* i960 stuff */ - unsigned long tagentries; /* number of tag entries to follow */ - - /* RS/6000 stuff */ - bfd_vma o_toc; /* address of TOC */ - short o_snentry; /* section number for entry point */ - short o_sntext; /* section number for text */ - short o_sndata; /* section number for data */ - short o_sntoc; /* section number for toc */ - short o_snloader; /* section number for loader section */ - short o_snbss; /* section number for bss */ - short o_algntext; /* max alignment for text */ - short o_algndata; /* max alignment for data */ - short o_modtype; /* Module type field, 1R,RE,RO */ - short o_cputype; /* Encoded CPU type */ - bfd_vma o_maxstack; /* max stack size allowed. */ - bfd_vma o_maxdata; /* max data size allowed. */ - - /* ECOFF stuff */ - bfd_vma bss_start; /* Base of bss section. */ - bfd_vma gp_value; /* GP register value. */ - unsigned long gprmask; /* General registers used. */ - unsigned long cprmask[4]; /* Coprocessor registers used. */ - unsigned long fprmask; /* Floating pointer registers used. */ - - /* Apollo stuff */ - long o_inlib; /* inlib data */ - long o_sri; /* Static Resource Information */ - long vid[2]; /* Version id */ - - struct internal_extra_pe_aouthdr pe; -}; - -/********************** STORAGE CLASSES **********************/ - -/* This used to be defined as -1, but now n_sclass is unsigned. */ -#define C_EFCN 0xff /* physical end of function */ -#define C_NULL 0 -#define C_AUTO 1 /* automatic variable */ -#define C_EXT 2 /* external symbol */ -#define C_STAT 3 /* static */ -#define C_REG 4 /* register variable */ -#define C_EXTDEF 5 /* external definition */ -#define C_LABEL 6 /* label */ -#define C_ULABEL 7 /* undefined label */ -#define C_MOS 8 /* member of structure */ -#define C_ARG 9 /* function argument */ -#define C_STRTAG 10 /* structure tag */ -#define C_MOU 11 /* member of union */ -#define C_UNTAG 12 /* union tag */ -#define C_TPDEF 13 /* type definition */ -#define C_USTATIC 14 /* undefined static */ -#define C_ENTAG 15 /* enumeration tag */ -#define C_MOE 16 /* member of enumeration */ -#define C_REGPARM 17 /* register parameter */ -#define C_FIELD 18 /* bit field */ -#define C_AUTOARG 19 /* auto argument */ -#define C_LASTENT 20 /* dummy entry (end of block) */ -#define C_BLOCK 100 /* ".bb" or ".eb" */ -#define C_FCN 101 /* ".bf" or ".ef" */ -#define C_EOS 102 /* end of structure */ -#define C_FILE 103 /* file name */ -#define C_LINE 104 /* line # reformatted as symbol table entry */ -#define C_ALIAS 105 /* duplicate tag */ -#define C_HIDDEN 106 /* ext symbol in dmert public lib */ -#define C_WEAKEXT 127 /* weak symbol -- GNU extension. */ - -/* New storage classes for TI COFF */ -#define C_UEXT 19 /* Tentative external definition */ -#define C_STATLAB 20 /* Static load time label */ -#define C_EXTLAB 21 /* External load time label */ -#define C_SYSTEM 23 /* System Wide variable */ - -/* New storage classes for WINDOWS_NT */ -#define C_SECTION 104 /* section name */ -#define C_NT_WEAK 105 /* weak external */ - - /* New storage classes for 80960 */ - -/* C_LEAFPROC is obsolete. Use C_LEAFEXT or C_LEAFSTAT */ -#define C_LEAFPROC 108 /* Leaf procedure, "call" via BAL */ - -#define C_SCALL 107 /* Procedure reachable via system call */ -#define C_LEAFEXT 108 /* External leaf */ -#define C_LEAFSTAT 113 /* Static leaf */ -#define C_OPTVAR 109 /* Optimized variable */ -#define C_DEFINE 110 /* Preprocessor #define */ -#define C_PRAGMA 111 /* Advice to compiler or linker */ -#define C_SEGMENT 112 /* 80960 segment name */ - - /* Storage classes for m88k */ -#define C_SHADOW 107 /* shadow symbol */ -#define C_VERSION 108 /* coff version symbol */ - - /* New storage classes for RS/6000 */ -#define C_HIDEXT 107 /* Un-named external symbol */ -#define C_BINCL 108 /* Marks beginning of include file */ -#define C_EINCL 109 /* Marks ending of include file */ -#define C_AIX_WEAKEXT 111 /* AIX definition of C_WEAKEXT. */ - -#define C_NULL_VALUE 0x00de1e00 /* Value for a C_NULL deleted entry. */ - -#if defined _AIX52 || defined AIX_WEAK_SUPPORT -#undef C_WEAKEXT -#define C_WEAKEXT C_AIX_WEAKEXT -#endif - - /* storage classes for stab symbols for RS/6000 */ -#define C_GSYM (0x80) -#define C_LSYM (0x81) -#define C_PSYM (0x82) -#define C_RSYM (0x83) -#define C_RPSYM (0x84) -#define C_STSYM (0x85) -#define C_TCSYM (0x86) -#define C_BCOMM (0x87) -#define C_ECOML (0x88) -#define C_ECOMM (0x89) -#define C_DECL (0x8c) -#define C_ENTRY (0x8d) -#define C_FUN (0x8e) -#define C_BSTAT (0x8f) -#define C_ESTAT (0x90) -#define C_GTLS (0x97) -#define C_STTLS (0x98) - -/* Storage classes for Thumb symbols */ -#define C_THUMBEXT (128 + C_EXT) /* 130 */ -#define C_THUMBSTAT (128 + C_STAT) /* 131 */ -#define C_THUMBLABEL (128 + C_LABEL) /* 134 */ -#define C_THUMBEXTFUNC (C_THUMBEXT + 20) /* 150 */ -#define C_THUMBSTATFUNC (C_THUMBSTAT + 20) /* 151 */ - -/* True if XCOFF symbols of class CLASS have auxillary csect information. */ -#define CSECT_SYM_P(CLASS) \ - ((CLASS) == C_EXT || (CLASS) == C_AIX_WEAKEXT || (CLASS) == C_HIDEXT) - -/********************** SECTION HEADER **********************/ - -#define SCNNMLEN (8) - -struct internal_scnhdr -{ - char s_name[SCNNMLEN]; /* section name */ - - /* Physical address, aliased s_nlib. - In the pei format, this field is the virtual section size - (the size of the section after being loaded int memory), - NOT the physical address. */ - bfd_vma s_paddr; - - bfd_vma s_vaddr; /* virtual address */ - bfd_vma s_size; /* section size */ - bfd_vma s_scnptr; /* file ptr to raw data for section */ - bfd_vma s_relptr; /* file ptr to relocation */ - bfd_vma s_lnnoptr; /* file ptr to line numbers */ - unsigned long s_nreloc; /* number of relocation entries */ - unsigned long s_nlnno; /* number of line number entries*/ - long s_flags; /* flags */ - long s_align; /* used on I960 */ - unsigned char s_page; /* TI COFF load page */ -}; - -/* s_flags "type". */ -#define STYP_REG (0x0000) /* "regular": allocated, relocated, loaded */ -#define STYP_DSECT (0x0001) /* "dummy": relocated only*/ -#define STYP_NOLOAD (0x0002) /* "noload": allocated, relocated, not loaded */ -#define STYP_GROUP (0x0004) /* "grouped": formed of input sections */ -#define STYP_PAD (0x0008) /* "padding": not allocated, not relocated, loaded */ -#define STYP_COPY (0x0010) /* "copy": for decision function used by field update; not allocated, not relocated, - loaded; reloc & lineno entries processed normally */ -#define STYP_TEXT (0x0020) /* section contains text only */ -#define S_SHRSEG (0x0020) /* In 3b Update files (output of ogen), sections which appear in SHARED segments of the Pfile - will have the S_SHRSEG flag set by ogen, to inform dufr that updating 1 copy of the proc. will - update all process invocations. */ -#define STYP_DATA (0x0040) /* section contains data only */ -#define STYP_BSS (0x0080) /* section contains bss only */ -#define S_NEWFCN (0x0100) /* In a minimal file or an update file, a new function (as compared with a replaced function) */ -#define STYP_INFO (0x0200) /* comment: not allocated not relocated, not loaded */ -#define STYP_OVER (0x0400) /* overlay: relocated not allocated or loaded */ -#define STYP_LIB (0x0800) /* for .lib: same as INFO */ -#define STYP_MERGE (0x2000) /* merge section -- combines with text, data or bss sections only */ -#define STYP_REVERSE_PAD (0x4000) /* section will be padded with no-op instructions - wherever padding is necessary and there is a - word of contiguous bytes beginning on a word - boundary. */ - -#define STYP_LIT 0x8020 /* Literal data (like STYP_TEXT) */ - - -/********************** LINE NUMBERS **********************/ - -/* 1 line number entry for every "breakpointable" source line in a section. - Line numbers are grouped on a per function basis; first entry in a function - grouping will have l_lnno = 0 and in place of physical address will be the - symbol table index of the function name. */ - -struct internal_lineno -{ - union - { - bfd_signed_vma l_symndx; /* function name symbol index, iff l_lnno == 0*/ - bfd_signed_vma l_paddr; /* (physical) address of line number */ - } l_addr; - unsigned long l_lnno; /* line number */ -}; - -/********************** SYMBOLS **********************/ - -#define SYMNMLEN 8 /* # characters in a symbol name */ -#define FILNMLEN 14 /* # characters in a file name */ -#define DIMNUM 4 /* # array dimensions in auxiliary entry */ - -struct internal_syment -{ - union - { - char _n_name[SYMNMLEN]; /* old COFF version */ - struct - { - bfd_hostptr_t _n_zeroes; /* new == 0 */ - bfd_hostptr_t _n_offset; /* offset into string table */ - } _n_n; - char *_n_nptr[2]; /* allows for overlaying */ - } _n; - bfd_vma n_value; /* value of symbol */ - short n_scnum; /* section number */ - unsigned short n_flags; /* copy of flags from filhdr */ - unsigned short n_type; /* type and derived type */ - unsigned char n_sclass; /* storage class */ - unsigned char n_numaux; /* number of aux. entries */ -}; - -#define n_name _n._n_name -#define n_zeroes _n._n_n._n_zeroes -#define n_offset _n._n_n._n_offset - -/* Relocatable symbols have number of the section in which they are defined, - or one of the following: */ - -#define N_UNDEF ((short)0) /* undefined symbol */ -#define N_ABS ((short)-1) /* value of symbol is absolute */ -#define N_DEBUG ((short)-2) /* debugging symbol -- value is meaningless */ -#define N_TV ((short)-3) /* indicates symbol needs preload transfer vector */ -#define P_TV ((short)-4) /* indicates symbol needs postload transfer vector*/ - -/* Type of a symbol, in low N bits of the word. */ - -#define T_NULL 0 -#define T_VOID 1 /* function argument (only used by compiler) */ -#define T_CHAR 2 /* character */ -#define T_SHORT 3 /* short integer */ -#define T_INT 4 /* integer */ -#define T_LONG 5 /* long integer */ -#define T_FLOAT 6 /* floating point */ -#define T_DOUBLE 7 /* double word */ -#define T_STRUCT 8 /* structure */ -#define T_UNION 9 /* union */ -#define T_ENUM 10 /* enumeration */ -#define T_MOE 11 /* member of enumeration*/ -#define T_UCHAR 12 /* unsigned character */ -#define T_USHORT 13 /* unsigned short */ -#define T_UINT 14 /* unsigned integer */ -#define T_ULONG 15 /* unsigned long */ -#define T_LNGDBL 16 /* long double */ - -/* Derived types, in n_type. */ - -#define DT_NON (0) /* no derived type */ -#define DT_PTR (1) /* pointer */ -#define DT_FCN (2) /* function */ -#define DT_ARY (3) /* array */ - -#define BTYPE(x) ((x) & N_BTMASK) -#define DTYPE(x) (((x) & N_TMASK) >> N_BTSHFT) - -#define ISPTR(x) \ - (((unsigned long) (x) & N_TMASK) == ((unsigned long) DT_PTR << N_BTSHFT)) -#define ISFCN(x) \ - (((unsigned long) (x) & N_TMASK) == ((unsigned long) DT_FCN << N_BTSHFT)) -#define ISARY(x) \ - (((unsigned long) (x) & N_TMASK) == ((unsigned long) DT_ARY << N_BTSHFT)) -#define ISTAG(x) \ - ((x) == C_STRTAG || (x) == C_UNTAG || (x) == C_ENTAG) -#define DECREF(x) \ - ((((x) >> N_TSHIFT) & ~ N_BTMASK) | ((x) & N_BTMASK)) - -union internal_auxent -{ - struct - { - - union - { - long l; /* str, un, or enum tag indx */ - struct coff_ptr_struct *p; - } x_tagndx; - - union - { - struct - { - unsigned short x_lnno; /* declaration line number */ - unsigned short x_size; /* str/union/array size */ - } x_lnsz; - long x_fsize; /* size of function */ - } x_misc; - - union - { - struct - { /* if ISFCN, tag, or .bb */ - bfd_signed_vma x_lnnoptr; /* ptr to fcn line # */ - union - { /* entry ndx past block end */ - long l; - struct coff_ptr_struct *p; - } x_endndx; - } x_fcn; - - struct - { /* if ISARY, up to 4 dimen. */ - unsigned short x_dimen[DIMNUM]; - } x_ary; - } x_fcnary; - - unsigned short x_tvndx; /* tv index */ - } x_sym; - - union - { - char x_fname[FILNMLEN]; - struct - { - long x_zeroes; - long x_offset; - } x_n; - } x_file; - - struct - { - long x_scnlen; /* section length */ - unsigned short x_nreloc; /* # relocation entries */ - unsigned short x_nlinno; /* # line numbers */ - unsigned long x_checksum; /* section COMDAT checksum for PE */ - unsigned short x_associated; /* COMDAT associated section index for PE */ - unsigned char x_comdat; /* COMDAT selection number for PE */ - } x_scn; - - struct - { - long x_tvfill; /* tv fill value */ - unsigned short x_tvlen; /* length of .tv */ - unsigned short x_tvran[2]; /* tv range */ - } x_tv; /* info about .tv section (in auxent of symbol .tv)) */ - - /****************************************** - * RS/6000-specific auxent - last auxent for every external symbol - ******************************************/ - struct - { - union - { /* csect length or enclosing csect */ - bfd_signed_vma l; - struct coff_ptr_struct *p; - } x_scnlen; - long x_parmhash; /* parm type hash index */ - unsigned short x_snhash; /* sect num with parm hash */ - unsigned char x_smtyp; /* symbol align and type */ - /* 0-4 - Log 2 of alignment */ - /* 5-7 - symbol type */ - unsigned char x_smclas; /* storage mapping class */ - long x_stab; /* dbx stab info index */ - unsigned short x_snstab; /* sect num with dbx stab */ - } x_csect; /* csect definition information */ - -/* x_smtyp values: */ - -#define SMTYP_ALIGN(x) ((x) >> 3) /* log2 of alignment */ -#define SMTYP_SMTYP(x) ((x) & 0x7) /* symbol type */ -/* Symbol type values: */ -#define XTY_ER 0 /* External reference */ -#define XTY_SD 1 /* Csect definition */ -#define XTY_LD 2 /* Label definition */ -#define XTY_CM 3 /* .BSS */ -#define XTY_EM 4 /* Error message */ -#define XTY_US 5 /* "Reserved for internal use" */ - -/* x_smclas values: */ - -#define XMC_PR 0 /* Read-only program code */ -#define XMC_RO 1 /* Read-only constant */ -#define XMC_DB 2 /* Read-only debug dictionary table */ -#define XMC_TC 3 /* Read-write general TOC entry */ -#define XMC_UA 4 /* Read-write unclassified */ -#define XMC_RW 5 /* Read-write data */ -#define XMC_GL 6 /* Read-only global linkage */ -#define XMC_XO 7 /* Read-only extended operation */ -#define XMC_SV 8 /* Read-only supervisor call */ -#define XMC_BS 9 /* Read-write BSS */ -#define XMC_DS 10 /* Read-write descriptor csect */ -#define XMC_UC 11 /* Read-write unnamed Fortran common */ -#define XMC_TI 12 /* Read-only traceback index csect */ -#define XMC_TB 13 /* Read-only traceback table csect */ -/* 14 ??? */ -#define XMC_TC0 15 /* Read-write TOC anchor */ -#define XMC_TD 16 /* Read-write data in TOC */ - - /****************************************** - * I960-specific *2nd* aux. entry formats - ******************************************/ - struct - { - /* This is a very old typo that keeps getting propagated. */ -#define x_stdindx x_stindx - long x_stindx; /* sys. table entry */ - } x_sc; /* system call entry */ - - struct - { - unsigned long x_balntry; /* BAL entry point */ - } x_bal; /* BAL-callable function */ - - struct - { - unsigned long x_timestamp; /* time stamp */ - char x_idstring[20]; /* producer identity string */ - } x_ident; /* Producer ident info */ - -}; - -/********************** RELOCATION DIRECTIVES **********************/ - -struct internal_reloc -{ - bfd_vma r_vaddr; /* Virtual address of reference */ - long r_symndx; /* Index into symbol table */ - unsigned short r_type; /* Relocation type */ - unsigned char r_size; /* Used by RS/6000 and ECOFF */ - unsigned char r_extern; /* Used by ECOFF */ - unsigned long r_offset; /* Used by Alpha ECOFF, SPARC, others */ -}; - -/* X86-64 relocations. */ -#define R_AMD64_ABS 0 /* Reference is absolute, no relocation is necessary. */ -#define R_AMD64_DIR64 1 /* 64-bit address (VA). */ -#define R_AMD64_DIR32 2 /* 32-bit address (VA) R_DIR32. */ -#define R_AMD64_IMAGEBASE 3 /* 32-bit absolute ref w/o base R_IMAGEBASE. */ -#define R_AMD64_PCRLONG 4 /* 32-bit relative address from byte following reloc R_PCRLONG. */ -#define R_AMD64_PCRLONG_1 5 /* 32-bit relative address from byte distance 1 from reloc. */ -#define R_AMD64_PCRLONG_2 6 /* 32-bit relative address from byte distance 2 from reloc. */ -#define R_AMD64_PCRLONG_3 7 /* 32-bit relative address from byte distance 3 from reloc. */ -#define R_AMD64_PCRLONG_4 8 /* 32-bit relative address from byte distance 4 from reloc. */ -#define R_AMD64_PCRLONG_5 9 /* 32-bit relative address from byte distance 5 from reloc. */ -#define R_AMD64_SECTION 10 /* Section index. */ -#define R_AMD64_SECREL 11 /* 32 bit offset from base of section containing target R_SECREL. */ -#define R_AMD64_SECREL7 12 /* 7 bit unsigned offset from base of section containing target. */ -#define R_AMD64_TOKEN 13 /* 32 bit metadata token. */ -#define R_AMD64_PCRQUAD 14 /* Pseude PC64 relocation - Note: not specified by MS/AMD but need for gas pc-relative 64bit wide relocation generated by ELF. */ - -/* i386 Relocations. */ - -#define R_DIR16 1 -#define R_REL24 5 -#define R_DIR32 6 -#define R_IMAGEBASE 7 -#define R_SECREL32 11 -#define R_RELBYTE 15 -#define R_RELWORD 16 -#define R_RELLONG 17 -#define R_PCRBYTE 18 -#define R_PCRWORD 19 -#define R_PCRLONG 20 -#define R_PCR24 21 -#define R_IPRSHORT 24 -#define R_IPRLONG 26 -#define R_GETSEG 29 -#define R_GETPA 30 -#define R_TAGWORD 31 -#define R_JUMPTARG 32 /* strange 29k 00xx00xx reloc */ -#define R_PARTLS16 32 -#define R_PARTMS8 33 - -#define R_PCR16L 128 -#define R_PCR26L 129 -#define R_VRT16 130 -#define R_HVRT16 131 -#define R_LVRT16 132 -#define R_VRT32 133 - - -/* This reloc identifies mov.b instructions with a 16bit absolute - address. The linker tries to turn insns with this reloc into - an absolute 8-bit address. */ -#define R_MOV16B1 0x41 - -/* This reloc identifies mov.b instructions which had a 16bit - absolute address which have been shortened into a 8-bit - absolute address. */ -#define R_MOV16B2 0x42 - -/* This reloc identifies jmp insns with a 16bit target address; - the linker tries to turn these insns into bra insns with - an 8bit pc-relative target. */ -#define R_JMP1 0x43 - -/* This reloc identifies a bra with an 8-bit pc-relative - target that was formerly a jmp insn with a 16bit target. */ -#define R_JMP2 0x44 - -/* ??? */ -#define R_RELLONG_NEG 0x45 - -/* This reloc identifies jmp insns with a 24bit target address; - the linker tries to turn these insns into bra insns with - an 8bit pc-relative target. */ -#define R_JMPL1 0x46 - -/* This reloc identifies a bra with an 8-bit pc-relative - target that was formerly a jmp insn with a 24bit target. */ -#define R_JMPL2 0x47 - -/* This reloc identifies mov.b instructions with a 24bit absolute - address. The linker tries to turn insns with this reloc into - an absolute 8-bit address. */ - -#define R_MOV24B1 0x48 - -/* This reloc identifies mov.b instructions which had a 24bit - absolute address which have been shortened into a 8-bit - absolute address. */ -#define R_MOV24B2 0x49 - -/* An h8300 memory indirect jump/call. Forces the address of the jump/call - target into the function vector (in page zero), and the address of the - vector entry to be placed in the jump/call instruction. */ -#define R_MEM_INDIRECT 0x4a - -/* This reloc identifies a 16bit pc-relative branch target which was - shortened into an 8bit pc-relative branch target. */ -#define R_PCRWORD_B 0x4b - -/* This reloc identifies mov.[wl] instructions with a 32/24 bit - absolute address; the linker may turn this into a mov.[wl] - insn with a 16bit absolute address. */ -#define R_MOVL1 0x4c - -/* This reloc identifies mov.[wl] insns which formerly had - a 32/24bit absolute address and now have a 16bit absolute address. */ -#define R_MOVL2 0x4d - -/* This reloc identifies a bCC:8 which will have it's condition - inverted and its target redirected to the target of the branch - in the following insn. */ -#define R_BCC_INV 0x4e - -/* This reloc identifies a jmp instruction that has been deleted. */ -#define R_JMP_DEL 0x4f - -/* Z8k modes */ -#define R_IMM16 0x01 /* 16 bit abs */ -#define R_JR 0x02 /* jr 8 bit disp */ -#define R_IMM4L 0x23 /* low nibble */ -#define R_IMM8 0x22 /* 8 bit abs */ -#define R_IMM32 R_RELLONG /* 32 bit abs */ -#define R_CALL R_DA /* Absolute address which could be a callr */ -#define R_JP R_DA /* Absolute address which could be a jp */ -#define R_REL16 0x04 /* 16 bit PC rel */ -#define R_CALLR 0x05 /* callr 12 bit disp */ -#define R_SEG 0x10 /* set if in segmented mode */ -#define R_IMM4H 0x24 /* high nibble */ -#define R_DISP7 0x25 /* djnz displacement */ - -/* Z80 modes */ -#define R_OFF8 0x32 /* 8 bit signed abs, for (i[xy]+d) */ -#define R_IMM24 0x33 /* 24 bit abs */ -/* R_JR, R_IMM8, R_IMM16, R_IMM32 - as for Z8k */ - -/* H8500 modes */ - -#define R_H8500_IMM8 1 /* 8 bit immediate */ -#define R_H8500_IMM16 2 /* 16 bit immediate */ -#define R_H8500_PCREL8 3 /* 8 bit pcrel */ -#define R_H8500_PCREL16 4 /* 16 bit pcrel */ -#define R_H8500_HIGH8 5 /* high 8 bits of 24 bit address */ -#define R_H8500_LOW16 7 /* low 16 bits of 24 bit immediate */ -#define R_H8500_IMM24 6 /* 24 bit immediate */ -#define R_H8500_IMM32 8 /* 32 bit immediate */ -#define R_H8500_HIGH16 9 /* high 16 bits of 32 bit immediate */ - -/* W65 modes */ - -#define R_W65_ABS8 1 /* addr & 0xff */ -#define R_W65_ABS16 2 /* addr & 0xffff */ -#define R_W65_ABS24 3 /* addr & 0xffffff */ - -#define R_W65_ABS8S8 4 /* (addr >> 8) & 0xff */ -#define R_W65_ABS8S16 5 /* (addr >> 16) & 0xff */ - -#define R_W65_ABS16S8 6 /* (addr >> 8) & 0ffff */ -#define R_W65_ABS16S16 7 /* (addr >> 16) & 0ffff */ - -#define R_W65_PCR8 8 -#define R_W65_PCR16 9 - -#define R_W65_DP 10 /* direct page 8 bits only */ - -#endif /* GNU_COFF_INTERNAL_H */ diff --git a/include/coff/m68k.h b/include/coff/m68k.h deleted file mode 100644 index c00c5a9..0000000 --- a/include/coff/m68k.h +++ /dev/null @@ -1,82 +0,0 @@ -/* coff information for M68K - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef GNU_COFF_M68K_H -#define GNU_COFF_M68K_H 1 - -#define L_LNNO_SIZE 2 -#include "coff/external.h" - -/* Motorola 68000/68008/68010/68020 */ -#define MC68MAGIC 0520 -#define MC68KWRMAGIC 0520 /* writeable text segments */ -#define MC68TVMAGIC 0521 -#define MC68KROMAGIC 0521 /* readonly shareable text segments */ -#define MC68KPGMAGIC 0522 /* demand paged text segments */ -#define M68MAGIC 0210 -#define M68TVMAGIC 0211 - -/* This is the magic of the Bull dpx/2 */ -#define MC68KBCSMAGIC 0526 - -/* This is Lynx's all-platform magic number for executables. */ - -#define LYNXCOFFMAGIC 0415 - -#define OMAGIC M68MAGIC - -/* This intentionally does not include MC68KBCSMAGIC; it only includes - magic numbers which imply that names do not have underscores. */ -#define M68KBADMAG(x) (((x).f_magic != MC68MAGIC) \ - && ((x).f_magic != MC68KWRMAGIC) \ - && ((x).f_magic != MC68TVMAGIC) \ - && ((x).f_magic != MC68KROMAGIC) \ - && ((x).f_magic != MC68KPGMAGIC) \ - && ((x).f_magic != M68MAGIC) \ - && ((x).f_magic != M68TVMAGIC) \ - && ((x).f_magic != LYNXCOFFMAGIC)) - -/* Magic numbers for the a.out header. */ - -#define PAGEMAGICEXECSWAPPED 0407 /* executable (swapped) */ -#define PAGEMAGICPEXECSWAPPED 0410 /* pure executable (swapped) */ -#define PAGEMAGICPEXECTSHLIB 0443 /* pure executable (target shared library) */ -#define PAGEMAGICPEXECPAGED 0413 /* pure executable (paged) */ - -/********************** RELOCATION DIRECTIVES **********************/ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; -#ifdef M68K_COFF_OFFSET - char r_offset[4]; -#endif -}; - -#define RELOC struct external_reloc - -#ifdef M68K_COFF_OFFSET -#define RELSZ 14 -#else -#define RELSZ 10 -#endif - -#endif /* GNU_COFF_M68K_H */ diff --git a/include/coff/m88k.h b/include/coff/m88k.h deleted file mode 100644 index 8e1b3c9..0000000 --- a/include/coff/m88k.h +++ /dev/null @@ -1,197 +0,0 @@ -/* coff information for 88k bcs - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define DO_NOT_DEFINE_SCNHDR -#define L_LNNO_SIZE 4 -#define DO_NOT_DEFINE_SYMENT -#define DO_NOT_DEFINE_AUXENT -#include "coff/external.h" - -#define MC88MAGIC 0540 /* 88k BCS executable */ -#define MC88DMAGIC 0541 /* DG/UX executable */ -#define MC88OMAGIC 0555 /* Object file */ - -#define MC88BADMAG(x) (((x).f_magic != MC88MAGIC) \ - && ((x).f_magic != MC88DMAGIC) \ - && ((x).f_magic != MC88OMAGIC)) - -#define PAGEMAGIC3 0414 /* Split i&d, zero mapped */ -#define PAGEMAGICBCS 0413 - -/********************** SECTION HEADER **********************/ - -struct external_scnhdr -{ - char s_name[8]; /* section name */ - char s_paddr[4]; /* physical address, aliased s_nlib */ - char s_vaddr[4]; /* virtual address */ - char s_size[4]; /* section size */ - char s_scnptr[4]; /* file ptr to raw data for section */ - char s_relptr[4]; /* file ptr to relocation */ - char s_lnnoptr[4]; /* file ptr to line numbers */ - char s_nreloc[4]; /* number of relocation entries */ - char s_nlnno[4]; /* number of line number entries*/ - char s_flags[4]; /* flags */ -}; - -#define SCNHDR struct external_scnhdr -#define SCNHSZ 44 - -/* Names of "special" sections. */ -#define _TEXT ".text" -#define _DATA ".data" -#define _BSS ".bss" -#define _COMMENT ".comment" - - -/********************** SYMBOLS **********************/ - -#define E_SYMNMLEN 8 /* # characters in a symbol name */ -#define E_FILNMLEN 14 /* # characters in a file name */ -#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */ - -struct external_syment -{ - union - { - char e_name[E_SYMNMLEN]; - - struct - { - char e_zeroes[4]; - char e_offset[4]; - } e; - - } e; - - char e_value[4]; - char e_scnum[2]; - char e_type[2]; - char e_sclass[1]; - char e_numaux[1]; - char pad2[2]; -}; - -#define N_BTMASK 017 -#define N_TMASK 060 -#define N_BTSHFT 4 -#define N_TSHIFT 2 - -/* Note that this isn't the same shape as other coffs */ -union external_auxent -{ - struct - { - char x_tagndx[4]; /* str, un, or enum tag indx */ - /* 4 */ - - union - { - char x_fsize[4]; /* size of function */ - - struct - { - char x_lnno[4]; /* declaration line number */ - char x_size[4]; /* str/union/array size */ - } x_lnsz; - - } x_misc; - - /* 12 */ - union - { - struct /* if ISFCN, tag, or .bb */ - { - char x_lnnoptr[4]; /* ptr to fcn line # */ - char x_endndx[4]; /* entry ndx past block end */ - } x_fcn; - - struct /* if ISARY, up to 4 dimen. */ - { - char x_dimen[E_DIMNUM][2]; - } x_ary; - - } x_fcnary; - /* 20 */ - - } x_sym; - - union - { - char x_fname[E_FILNMLEN]; - - struct - { - char x_zeroes[4]; - char x_offset[4]; - } x_n; - - } x_file; - - struct - { - char x_scnlen[4]; /* section length */ - char x_nreloc[4]; /* # relocation entries */ - char x_nlinno[4]; /* # line numbers */ - } x_scn; - - struct - { - char x_tvfill[4]; /* tv fill value */ - char x_tvlen[2]; /* length of .tv */ - char x_tvran[2][2]; /* tv range */ - } x_tv; /* info about .tv section (in auxent of symbol .tv)) */ -}; - -#define GET_LNSZ_SIZE(abfd, ext) \ - H_GET_32 (abfd, ext->x_sym.x_misc.x_lnsz.x_size) -#define GET_LNSZ_LNNO(abfd, ext) \ - H_GET_32 (abfd, ext->x_sym.x_misc.x_lnsz.x_lnno) -#define PUT_LNSZ_LNNO(abfd, in, ext) \ - H_PUT_32 (abfd, in, ext->x_sym.x_misc.x_lnsz.x_lnno) -#define PUT_LNSZ_SIZE(abfd, in, ext) \ - H_PUT_32 (abfd, in, ext->x_sym.x_misc.x_lnsz.x_size) -#define GET_SCN_NRELOC(abfd, ext) \ - H_GET_32 (abfd, ext->x_scn.x_nreloc) -#define GET_SCN_NLINNO(abfd, ext) \ - H_GET_32 (abfd, ext->x_scn.x_nlinno) -#define PUT_SCN_NRELOC(abfd, in, ext) \ - H_PUT_32 (abfd, in, ext->x_scn.x_nreloc) -#define PUT_SCN_NLINNO(abfd, in, ext) \ - H_PUT_32 (abfd,in, ext->x_scn.x_nlinno) - -#define SYMENT struct external_syment -#define SYMESZ 20 -#define AUXENT union external_auxent -#define AUXESZ 20 - -/********************** RELOCATION DIRECTIVES **********************/ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; - char r_offset[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 12 - -#define NO_TVNDX diff --git a/include/coff/mcore.h b/include/coff/mcore.h deleted file mode 100644 index 60dbfb2..0000000 --- a/include/coff/mcore.h +++ /dev/null @@ -1,72 +0,0 @@ -/* Motorola MCore support for BFD. - Copyright 1999, 2000, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file holds definitions specific to the MCore COFF/PE ABI. */ - -#ifndef _COFF_MORE_H -#define _COFF_MORE_H - -#define INCLUDE_COMDAT_FIELDS_IN_AUXENT -#define L_LNNO_SIZE 2 -#include "coff/external.h" - -#define MCOREMAGIC 0xb00 /* I just made this up */ - -#define MCOREBADMAG(x) (((x).f_magic != MCOREMAGIC)) - -#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */ - -#define IMAGE_REL_MCORE_ABSOLUTE 0x0000 -#define IMAGE_REL_MCORE_ADDR32 0x0001 -#define IMAGE_REL_MCORE_PCREL_IMM8BY4 0x0002 -#define IMAGE_REL_MCORE_PCREL_IMM11BY2 0x0003 -#define IMAGE_REL_MCORE_PCREL_IMM4BY2 0x0004 -#define IMAGE_REL_MCORE_PCREL_32 0x0005 -#define IMAGE_REL_MCORE_PCREL_JSR_IMM11BY2 0x0006 -#define IMAGE_REL_MCORE_RVA 0x0007 - -#define PEMCORE - -#define OMAGIC 0404 /* object files, eg as output */ -#define ZMAGIC 0413 /* demand load format, eg normal ld output */ -#define STMAGIC 0401 /* target shlib */ -#define SHMAGIC 0443 /* host shlib */ - -/* From winnt.h */ -#define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b - -/* Define some NT default values. */ -#define NT_SECTION_ALIGNMENT 0x1000 -#define NT_FILE_ALIGNMENT 0x200 -#define NT_DEF_RESERVE 0x100000 -#define NT_DEF_COMMIT 0x1000 - -struct external_reloc -{ - char r_vaddr [4]; - char r_symndx [4]; - char r_type [2]; - char r_offset [4]; -}; - -#define RELOC struct external_reloc -#define RELSZ 14 - -#endif /* __COFF_MCORE_H */ diff --git a/include/coff/mips.h b/include/coff/mips.h deleted file mode 100644 index f1c243b..0000000 --- a/include/coff/mips.h +++ /dev/null @@ -1,344 +0,0 @@ -/* ECOFF support on MIPS machines. - coff/ecoff.h must be included before this file. - - Copyright 1999, 2004, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define DO_NOT_DEFINE_AOUTHDR -#define L_LNNO_SIZE 4 -#include "coff/external.h" - -/* Magic numbers are defined in coff/ecoff.h. */ -#define MIPS_ECOFF_BADMAG(x) (((x).f_magic!=MIPS_MAGIC_1) && \ - ((x).f_magic!=MIPS_MAGIC_LITTLE) &&\ - ((x).f_magic!=MIPS_MAGIC_BIG) && \ - ((x).f_magic!=MIPS_MAGIC_LITTLE2) && \ - ((x).f_magic!=MIPS_MAGIC_BIG2) && \ - ((x).f_magic!=MIPS_MAGIC_LITTLE3) && \ - ((x).f_magic!=MIPS_MAGIC_BIG3)) - - -/********************** AOUT "OPTIONAL HEADER" **********************/ - -typedef struct external_aouthdr -{ - unsigned char magic[2]; /* type of file */ - unsigned char vstamp[2]; /* version stamp */ - unsigned char tsize[4]; /* text size in bytes, padded to FW bdry*/ - unsigned char dsize[4]; /* initialized data " " */ - unsigned char bsize[4]; /* uninitialized data " " */ - unsigned char entry[4]; /* entry pt. */ - unsigned char text_start[4]; /* base of text used for this file */ - unsigned char data_start[4]; /* base of data used for this file */ - unsigned char bss_start[4]; /* base of bss used for this file */ - unsigned char gprmask[4]; /* ?? */ - unsigned char cprmask[4][4]; /* ?? */ - unsigned char gp_value[4]; /* value for gp register */ -} AOUTHDR; - -/* compute size of a header */ - -#define AOUTSZ 56 -#define AOUTHDRSZ 56 - -/********************** RELOCATION DIRECTIVES **********************/ - -struct external_reloc - { - unsigned char r_vaddr[4]; - unsigned char r_bits[4]; - }; - -#define RELOC struct external_reloc -#define RELSZ 8 - -/* MIPS ECOFF uses a packed 8 byte format for relocs. These constants - are used to unpack the r_bits field. */ - -#define RELOC_BITS0_SYMNDX_SH_LEFT_BIG 16 -#define RELOC_BITS0_SYMNDX_SH_LEFT_LITTLE 0 - -#define RELOC_BITS1_SYMNDX_SH_LEFT_BIG 8 -#define RELOC_BITS1_SYMNDX_SH_LEFT_LITTLE 8 - -#define RELOC_BITS2_SYMNDX_SH_LEFT_BIG 0 -#define RELOC_BITS2_SYMNDX_SH_LEFT_LITTLE 16 - -/* Originally, ECOFF used four bits for the reloc type and had three - reserved bits. Irix 4 added another bit for the reloc type, which - was easy because it was big endian and one of the spare bits became - the new most significant bit. To make this also work for little - endian ECOFF, we need to wrap one of the reserved bits around to - become the most significant bit of the reloc type. */ -#define RELOC_BITS3_TYPE_BIG 0x3E -#define RELOC_BITS3_TYPE_SH_BIG 1 -#define RELOC_BITS3_TYPE_LITTLE 0x78 -#define RELOC_BITS3_TYPE_SH_LITTLE 3 -#define RELOC_BITS3_TYPEHI_LITTLE 0x04 -#define RELOC_BITS3_TYPEHI_SH_LITTLE 2 - -#define RELOC_BITS3_EXTERN_BIG 0x01 -#define RELOC_BITS3_EXTERN_LITTLE 0x80 - -/* The r_type field in a reloc is one of the following values. I - don't know if any other values can appear. These seem to be all - that occur in the Ultrix 4.2 libraries. */ -#define MIPS_R_IGNORE 0 -#define MIPS_R_REFHALF 1 -#define MIPS_R_REFWORD 2 -#define MIPS_R_JMPADDR 3 -#define MIPS_R_REFHI 4 -#define MIPS_R_REFLO 5 -#define MIPS_R_GPREL 6 -#define MIPS_R_LITERAL 7 - -/* FIXME: This relocation is used (internally only) to represent branches - when assembling. It should never appear in output files, and - be removed. (It used to be used for embedded-PIC support.) */ -#define MIPS_R_PCREL16 12 - -/********************** STABS **********************/ - -#define MIPS_IS_STAB ECOFF_IS_STAB -#define MIPS_MARK_STAB ECOFF_MARK_STAB -#define MIPS_UNMARK_STAB ECOFF_UNMARK_STAB - -/********************** SYMBOLIC INFORMATION **********************/ - -/* Written by John Gilmore. */ - -/* ECOFF uses COFF-like section structures, but its own symbol format. - This file defines the symbol format in fields whose size and alignment - will not vary on different host systems. */ - -/* File header as a set of bytes */ - -struct hdr_ext -{ - unsigned char h_magic[2]; - unsigned char h_vstamp[2]; - unsigned char h_ilineMax[4]; - unsigned char h_cbLine[4]; - unsigned char h_cbLineOffset[4]; - unsigned char h_idnMax[4]; - unsigned char h_cbDnOffset[4]; - unsigned char h_ipdMax[4]; - unsigned char h_cbPdOffset[4]; - unsigned char h_isymMax[4]; - unsigned char h_cbSymOffset[4]; - unsigned char h_ioptMax[4]; - unsigned char h_cbOptOffset[4]; - unsigned char h_iauxMax[4]; - unsigned char h_cbAuxOffset[4]; - unsigned char h_issMax[4]; - unsigned char h_cbSsOffset[4]; - unsigned char h_issExtMax[4]; - unsigned char h_cbSsExtOffset[4]; - unsigned char h_ifdMax[4]; - unsigned char h_cbFdOffset[4]; - unsigned char h_crfd[4]; - unsigned char h_cbRfdOffset[4]; - unsigned char h_iextMax[4]; - unsigned char h_cbExtOffset[4]; -}; - -/* File descriptor external record */ - -struct fdr_ext -{ - unsigned char f_adr[4]; - unsigned char f_rss[4]; - unsigned char f_issBase[4]; - unsigned char f_cbSs[4]; - unsigned char f_isymBase[4]; - unsigned char f_csym[4]; - unsigned char f_ilineBase[4]; - unsigned char f_cline[4]; - unsigned char f_ioptBase[4]; - unsigned char f_copt[4]; - unsigned char f_ipdFirst[2]; - unsigned char f_cpd[2]; - unsigned char f_iauxBase[4]; - unsigned char f_caux[4]; - unsigned char f_rfdBase[4]; - unsigned char f_crfd[4]; - unsigned char f_bits1[1]; - unsigned char f_bits2[3]; - unsigned char f_cbLineOffset[4]; - unsigned char f_cbLine[4]; -}; - -#define FDR_BITS1_LANG_BIG 0xF8 -#define FDR_BITS1_LANG_SH_BIG 3 -#define FDR_BITS1_LANG_LITTLE 0x1F -#define FDR_BITS1_LANG_SH_LITTLE 0 - -#define FDR_BITS1_FMERGE_BIG 0x04 -#define FDR_BITS1_FMERGE_LITTLE 0x20 - -#define FDR_BITS1_FREADIN_BIG 0x02 -#define FDR_BITS1_FREADIN_LITTLE 0x40 - -#define FDR_BITS1_FBIGENDIAN_BIG 0x01 -#define FDR_BITS1_FBIGENDIAN_LITTLE 0x80 - -#define FDR_BITS2_GLEVEL_BIG 0xC0 -#define FDR_BITS2_GLEVEL_SH_BIG 6 -#define FDR_BITS2_GLEVEL_LITTLE 0x03 -#define FDR_BITS2_GLEVEL_SH_LITTLE 0 - -/* We ignore the `reserved' field in bits2. */ - -/* Procedure descriptor external record */ - -struct pdr_ext -{ - unsigned char p_adr[4]; - unsigned char p_isym[4]; - unsigned char p_iline[4]; - unsigned char p_regmask[4]; - unsigned char p_regoffset[4]; - unsigned char p_iopt[4]; - unsigned char p_fregmask[4]; - unsigned char p_fregoffset[4]; - unsigned char p_frameoffset[4]; - unsigned char p_framereg[2]; - unsigned char p_pcreg[2]; - unsigned char p_lnLow[4]; - unsigned char p_lnHigh[4]; - unsigned char p_cbLineOffset[4]; -}; - -/* Runtime procedure table */ - -struct rpdr_ext -{ - unsigned char p_adr[4]; - unsigned char p_regmask[4]; - unsigned char p_regoffset[4]; - unsigned char p_fregmask[4]; - unsigned char p_fregoffset[4]; - unsigned char p_frameoffset[4]; - unsigned char p_framereg[2]; - unsigned char p_pcreg[2]; - unsigned char p_irpss[4]; - unsigned char p_reserved[4]; - unsigned char p_exception_info[4]; -}; - -/* Line numbers */ - -struct line_ext -{ - unsigned char l_line[4]; -}; - -/* Symbol external record */ - -struct sym_ext -{ - unsigned char s_iss[4]; - unsigned char s_value[4]; - unsigned char s_bits1[1]; - unsigned char s_bits2[1]; - unsigned char s_bits3[1]; - unsigned char s_bits4[1]; -}; - -#define SYM_BITS1_ST_BIG 0xFC -#define SYM_BITS1_ST_SH_BIG 2 -#define SYM_BITS1_ST_LITTLE 0x3F -#define SYM_BITS1_ST_SH_LITTLE 0 - -#define SYM_BITS1_SC_BIG 0x03 -#define SYM_BITS1_SC_SH_LEFT_BIG 3 -#define SYM_BITS1_SC_LITTLE 0xC0 -#define SYM_BITS1_SC_SH_LITTLE 6 - -#define SYM_BITS2_SC_BIG 0xE0 -#define SYM_BITS2_SC_SH_BIG 5 -#define SYM_BITS2_SC_LITTLE 0x07 -#define SYM_BITS2_SC_SH_LEFT_LITTLE 2 - -#define SYM_BITS2_RESERVED_BIG 0x10 -#define SYM_BITS2_RESERVED_LITTLE 0x08 - -#define SYM_BITS2_INDEX_BIG 0x0F -#define SYM_BITS2_INDEX_SH_LEFT_BIG 16 -#define SYM_BITS2_INDEX_LITTLE 0xF0 -#define SYM_BITS2_INDEX_SH_LITTLE 4 - -#define SYM_BITS3_INDEX_SH_LEFT_BIG 8 -#define SYM_BITS3_INDEX_SH_LEFT_LITTLE 4 - -#define SYM_BITS4_INDEX_SH_LEFT_BIG 0 -#define SYM_BITS4_INDEX_SH_LEFT_LITTLE 12 - -/* External symbol external record */ - -struct ext_ext -{ - unsigned char es_bits1[1]; - unsigned char es_bits2[1]; - unsigned char es_ifd[2]; - struct sym_ext es_asym; -}; - -#define EXT_BITS1_JMPTBL_BIG 0x80 -#define EXT_BITS1_JMPTBL_LITTLE 0x01 - -#define EXT_BITS1_COBOL_MAIN_BIG 0x40 -#define EXT_BITS1_COBOL_MAIN_LITTLE 0x02 - -#define EXT_BITS1_WEAKEXT_BIG 0x20 -#define EXT_BITS1_WEAKEXT_LITTLE 0x04 - -/* Dense numbers external record */ - -struct dnr_ext -{ - unsigned char d_rfd[4]; - unsigned char d_index[4]; -}; - -/* Relative file descriptor */ - -struct rfd_ext -{ - unsigned char rfd[4]; -}; - -/* Optimizer symbol external record */ - -struct opt_ext -{ - unsigned char o_bits1[1]; - unsigned char o_bits2[1]; - unsigned char o_bits3[1]; - unsigned char o_bits4[1]; - struct rndx_ext o_rndx; - unsigned char o_offset[4]; -}; - -#define OPT_BITS2_VALUE_SH_LEFT_BIG 16 -#define OPT_BITS2_VALUE_SH_LEFT_LITTLE 0 - -#define OPT_BITS3_VALUE_SH_LEFT_BIG 8 -#define OPT_BITS3_VALUE_SH_LEFT_LITTLE 8 - -#define OPT_BITS4_VALUE_SH_LEFT_BIG 0 -#define OPT_BITS4_VALUE_SH_LEFT_LITTLE 16 diff --git a/include/coff/mipspe.h b/include/coff/mipspe.h deleted file mode 100644 index f1a0d43..0000000 --- a/include/coff/mipspe.h +++ /dev/null @@ -1,67 +0,0 @@ -/* coff information for Windows CE with MIPS VR4111 - - Copyright 2000, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define L_LNNO_SIZE 2 -#define INCLUDE_COMDAT_FIELDS_IN_AUXENT -#include "coff/external.h" - -#define MIPS_ARCH_MAGIC_WINCE 0x0166 /* Windows CE - little endian */ -#define MIPS_PE_MAGIC 0x010b - -#define MIPSBADMAG(x) ((x).f_magic != MIPS_ARCH_MAGIC_WINCE) - -/* define some NT default values */ -/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */ -#define NT_SECTION_ALIGNMENT 0x1000 -#define NT_FILE_ALIGNMENT 0x200 -#define NT_DEF_RESERVE 0x100000 -#define NT_DEF_COMMIT 0x1000 - -/********************** RELOCATION DIRECTIVES **********************/ - -/* The external reloc has an offset field, because some of the reloc - types on the h8 don't have room in the instruction for the entire - offset - eg the strange jump and high page addressing modes. */ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 10 - -/* MIPS PE relocation types. */ - -#define MIPS_R_ABSOLUTE 0 /* ignored */ -#define MIPS_R_REFHALF 1 -#define MIPS_R_REFWORD 2 -#define MIPS_R_JMPADDR 3 -#define MIPS_R_REFHI 4 /* PAIR follows */ -#define MIPS_R_REFLO 5 -#define MIPS_R_GPREL 6 -#define MIPS_R_LITERAL 7 /* same as GPREL */ -#define MIPS_R_SECTION 10 -#define MIPS_R_SECREL 11 -#define MIPS_R_SECRELLO 12 -#define MIPS_R_SECRELHI 13 /* PAIR follows */ -#define MIPS_R_RVA 34 /* 0x22 */ -#define MIPS_R_PAIR 37 /* 0x25 - symndx is really a signed 16-bit addend */ diff --git a/include/coff/or32.h b/include/coff/or32.h deleted file mode 100644 index 9be7887..0000000 --- a/include/coff/or32.h +++ /dev/null @@ -1,288 +0,0 @@ -/* COFF specification for OpenRISC 1000. - Copyright (C) 1993-2000, 2002, 2010 Free Software Foundation, Inc. - Contributed by David Wood @ New York University. - Modified by Johan Rydberg, - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef OR32 -# define OR32 -#endif - -/* File Header and related definitions. */ -struct external_filehdr -{ - char f_magic[2]; /* magic number */ - char f_nscns[2]; /* number of sections */ - char f_timdat[4]; /* time & date stamp */ - char f_symptr[4]; /* file pointer to symtab */ - char f_nsyms[4]; /* number of symtab entries */ - char f_opthdr[2]; /* sizeof(optional hdr) */ - char f_flags[2]; /* flags */ -}; - -#define FILHDR struct external_filehdr -#define FILHSZ 20 - -/* Magic numbers for OpenRISC 1000. As it is know we use the - numbers for Am29000. - - (AT&T will assign the "real" magic number). */ -#define SIPFBOMAGIC 0572 /* Am29000 (Byte 0 is MSB). */ -#define SIPRBOMAGIC 0573 /* Am29000 (Byte 0 is LSB). */ - -#define OR32_MAGIC_BIG SIPFBOMAGIC -#define OR32_MAGIC_LITTLE SIPRBOMAGIC -#define OR32BADMAG(x) (((x).f_magic!=OR32_MAGIC_BIG) && \ - ((x).f_magic!=OR32_MAGIC_LITTLE)) - -#define OMAGIC OR32_MAGIC_BIG - -/* Optional (a.out) header. */ -typedef struct external_aouthdr -{ - char magic[2]; /* type of file */ - char vstamp[2]; /* version stamp */ - char tsize[4]; /* text size in bytes, padded to FW bdry */ - char dsize[4]; /* initialized data " " */ - char bsize[4]; /* uninitialized data " " */ - char entry[4]; /* entry pt. */ - char text_start[4]; /* base of text used for this file */ - char data_start[4]; /* base of data used for this file */ -} AOUTHDR; - -#define AOUTSZ 28 -#define AOUTHDRSZ 28 - -/* aouthdr magic numbers. */ -#define NMAGIC 0410 /* separate i/d executable. */ -#define SHMAGIC 0406 /* NYU/Ultra3 shared data executable - (writable text). */ - -#define _ETEXT "_etext" - -/* Section header and related definitions. */ -struct external_scnhdr -{ - char s_name[8]; /* section name */ - char s_paddr[4]; /* physical address, aliased s_nlib */ - char s_vaddr[4]; /* virtual address */ - char s_size[4]; /* section size */ - char s_scnptr[4]; /* file ptr to raw data for section */ - char s_relptr[4]; /* file ptr to relocation */ - char s_lnnoptr[4]; /* file ptr to line numbers */ - char s_nreloc[2]; /* number of relocation entries */ - char s_nlnno[2]; /* number of line number entries */ - char s_flags[4]; /* flags */ -}; - -#define SCNHDR struct external_scnhdr -#define SCNHSZ 40 - -/* Names of "special" sections: */ -#define _TEXT ".text" -#define _DATA ".data" -#define _BSS ".bss" -#define _LIT ".lit" - -/* Section types - with additional section type for global - registers which will be relocatable for the OpenRISC 1000. - - In instances where it is necessary for a linker to produce an - output file which contains text or data not based at virtual - address 0, e.g. for a ROM, then the linker should accept - address base information as command input and use PAD sections - to skip over unused addresses. */ -#define STYP_BSSREG 0x1200 /* Global register area (like STYP_INFO) */ -#define STYP_ENVIR 0x2200 /* Environment (like STYP_INFO) */ -#define STYP_ABS 0x4000 /* Absolute (allocated, not reloc, loaded) */ - -/* Relocation information declaration and related definitions: */ -struct external_reloc -{ - char r_vaddr[4]; /* (virtual) address of reference */ - char r_symndx[4]; /* index into symbol table */ - char r_type[2]; /* relocation type */ -}; - -#define RELOC struct external_reloc -#define RELSZ 10 /* sizeof (RELOC) */ - -/* Relocation types for the OpenRISC 1000: */ - -#define R_ABS 0 /* reference is absolute */ -#define R_IREL 030 /* instruction relative (jmp/call) */ -#define R_IABS 031 /* instruction absolute (jmp/call) */ -#define R_ILOHALF 032 /* instruction low half (const) */ -#define R_IHIHALF 033 /* instruction high half (consth) part 1 */ -#define R_IHCONST 034 /* instruction high half (consth) part 2 */ - /* constant offset of R_IHIHALF relocation */ -#define R_BYTE 035 /* relocatable byte value */ -#define R_HWORD 036 /* relocatable halfword value */ -#define R_WORD 037 /* relocatable word value */ - -#define R_IGLBLRC 040 /* instruction global register RC */ -#define R_IGLBLRA 041 /* instruction global register RA */ -#define R_IGLBLRB 042 /* instruction global register RB */ - -/* - NOTE: - All the "I" forms refer to 29000 instruction formats. The linker is - expected to know how the numeric information is split and/or aligned - within the instruction word(s). R_BYTE works for instructions, too. - - If the parameter to a CONSTH instruction is a relocatable type, two - relocation records are written. The first has an r_type of R_IHIHALF - (33 octal) and a normal r_vaddr and r_symndx. The second relocation - record has an r_type of R_IHCONST (34 octal), a normal r_vaddr (which - is redundant), and an r_symndx containing the 32-bit constant offset - to the relocation instead of the actual symbol table index. This - second record is always written, even if the constant offset is zero. - The constant fields of the instruction are set to zero. */ - -/* Line number entry declaration and related definitions: */ -struct external_lineno -{ - union - { - char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/ - char l_paddr[4]; /* (physical) address of line number */ - } - l_addr; - - char l_lnno[2]; /* line number */ -}; - -#define LINENO struct external_lineno -#define LINESZ 6 /* sizeof (LINENO) */ - -/* Symbol entry declaration and related definitions: */ -#define E_SYMNMLEN 8 /* Number of characters in a symbol name */ - -struct external_syment -{ - union - { - char e_name[E_SYMNMLEN]; - struct - { - char e_zeroes[4]; - char e_offset[4]; - } - e; - } - e; - - char e_value[4]; - char e_scnum[2]; - char e_type[2]; - char e_sclass[1]; - char e_numaux[1]; -}; - -#define SYMENT struct external_syment -#define SYMESZ 18 - -/* Storage class definitions - new classes for global registers: */ -#define C_GLBLREG 19 /* global register */ -#define C_EXTREG 20 /* external global register */ -#define C_DEFREG 21 /* ext. def. of global register */ - -/* Derived symbol mask/shifts: */ -#define N_BTMASK (0xf) -#define N_BTSHFT (4) -#define N_TMASK (0x30) -#define N_TSHIFT (2) - -/* Auxiliary symbol table entry declaration and related - definitions. */ -#define E_FILNMLEN 14 /* # characters in a file name */ -#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */ - -union external_auxent -{ - struct - { - char x_tagndx[4]; /* str, un, or enum tag indx */ - union - { - struct - { - char x_lnno[2]; /* declaration line number */ - char x_size[2]; /* str/union/array size */ - } - x_lnsz; - - char x_fsize[4]; /* size of function */ - } - x_misc; - - union - { - struct /* if ISFCN, tag, or .bb */ - { - char x_lnnoptr[4]; /* ptr to fcn line # */ - char x_endndx[4]; /* entry ndx past block end */ - } - x_fcn; - - struct /* if ISARY, up to 4 dimen. */ - { - char x_dimen[E_DIMNUM][2]; - } - x_ary; - } - x_fcnary; - - char x_tvndx[2]; /* tv index */ - } - x_sym; - - union - { - char x_fname[E_FILNMLEN]; - - struct - { - char x_zeroes[4]; - char x_offset[4]; - } - x_n; - } - x_file; - - struct - { - char x_scnlen[4]; /* section length */ - char x_nreloc[2]; /* # relocation entries */ - char x_nlinno[2]; /* # line numbers */ - } - x_scn; - - struct - { - char x_tvfill[4]; /* tv fill value */ - char x_tvlen[2]; /* length of .tv */ - char x_tvran[2][2]; /* tv range */ - } - x_tv; /* info about .tv section - (in auxent of symbol .tv)) */ -}; - -#define AUXENT union external_auxent -#define AUXESZ 18 diff --git a/include/coff/pe.h b/include/coff/pe.h deleted file mode 100644 index 601a68e..0000000 --- a/include/coff/pe.h +++ /dev/null @@ -1,512 +0,0 @@ -/* pe.h - PE COFF header information - - Copyright 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2009, 2010 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ -#ifndef _PE_H -#define _PE_H - -/* NT specific file attributes. */ -#define IMAGE_FILE_RELOCS_STRIPPED 0x0001 -#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 -#define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 -#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 -#define IMAGE_FILE_AGGRESSIVE_WS_TRIM 0x0010 -#define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020 -#define IMAGE_FILE_16BIT_MACHINE 0x0040 -#define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 -#define IMAGE_FILE_32BIT_MACHINE 0x0100 -#define IMAGE_FILE_DEBUG_STRIPPED 0x0200 -#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400 -#define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800 -#define IMAGE_FILE_SYSTEM 0x1000 -#define IMAGE_FILE_DLL 0x2000 -#define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000 -#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 - -/* DllCharacteristics flag bits. The inconsistent naming may seem - odd, but that is how they are defined in the PE specification. */ -#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE 0x0040 -#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY 0x0080 -#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT 0x0100 -#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION 0x0200 -#define IMAGE_DLLCHARACTERISTICS_NO_SEH 0x0400 -#define IMAGE_DLLCHARACTERISTICS_NO_BIND 0x0800 -#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 0x2000 -#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000 - -/* Additional flags to be set for section headers to allow the NT loader to - read and write to the section data (to replace the addresses of data in - dlls for one thing); also to execute the section in .text's case. */ -#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 -#define IMAGE_SCN_MEM_EXECUTE 0x20000000 -#define IMAGE_SCN_MEM_READ 0x40000000 -#define IMAGE_SCN_MEM_WRITE 0x80000000 - -/* Section characteristics added for ppc-nt. */ - -#define IMAGE_SCN_TYPE_NO_PAD 0x00000008 /* Reserved. */ - -#define IMAGE_SCN_CNT_CODE 0x00000020 /* Section contains code. */ -#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 /* Section contains initialized data. */ -#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 /* Section contains uninitialized data. */ - -#define IMAGE_SCN_LNK_OTHER 0x00000100 /* Reserved. */ -#define IMAGE_SCN_LNK_INFO 0x00000200 /* Section contains comments or some other type of information. */ -#define IMAGE_SCN_LNK_REMOVE 0x00000800 /* Section contents will not become part of image. */ -#define IMAGE_SCN_LNK_COMDAT 0x00001000 /* Section contents comdat. */ - -#define IMAGE_SCN_MEM_FARDATA 0x00008000 - -#define IMAGE_SCN_MEM_PURGEABLE 0x00020000 -#define IMAGE_SCN_MEM_16BIT 0x00020000 -#define IMAGE_SCN_MEM_LOCKED 0x00040000 -#define IMAGE_SCN_MEM_PRELOAD 0x00080000 - -/* Bit position in the s_flags field where the alignment values start. */ -#define IMAGE_SCN_ALIGN_POWER_BIT_POS 20 -#define IMAGE_SCN_ALIGN_POWER_BIT_MASK 0x00f00000 -#define IMAGE_SCN_ALIGN_POWER_NUM(val) \ - (((val) >> IMAGE_SCN_ALIGN_POWER_BIT_POS) - 1) -#define IMAGE_SCN_ALIGN_POWER_CONST(val) \ - (((val) + 1) << IMAGE_SCN_ALIGN_POWER_BIT_POS) - -#define IMAGE_SCN_ALIGN_1BYTES IMAGE_SCN_ALIGN_POWER_CONST (0) -#define IMAGE_SCN_ALIGN_2BYTES IMAGE_SCN_ALIGN_POWER_CONST (1) -#define IMAGE_SCN_ALIGN_4BYTES IMAGE_SCN_ALIGN_POWER_CONST (2) -#define IMAGE_SCN_ALIGN_8BYTES IMAGE_SCN_ALIGN_POWER_CONST (3) -/* Default alignment if no others are specified. */ -#define IMAGE_SCN_ALIGN_16BYTES IMAGE_SCN_ALIGN_POWER_CONST (4) -#define IMAGE_SCN_ALIGN_32BYTES IMAGE_SCN_ALIGN_POWER_CONST (5) -#define IMAGE_SCN_ALIGN_64BYTES IMAGE_SCN_ALIGN_POWER_CONST (6) -#define IMAGE_SCN_ALIGN_128BYTES IMAGE_SCN_ALIGN_POWER_CONST (7) -#define IMAGE_SCN_ALIGN_256BYTES IMAGE_SCN_ALIGN_POWER_CONST (8) -#define IMAGE_SCN_ALIGN_512BYTES IMAGE_SCN_ALIGN_POWER_CONST (9) -#define IMAGE_SCN_ALIGN_1024BYTES IMAGE_SCN_ALIGN_POWER_CONST (10) -#define IMAGE_SCN_ALIGN_2048BYTES IMAGE_SCN_ALIGN_POWER_CONST (11) -#define IMAGE_SCN_ALIGN_4096BYTES IMAGE_SCN_ALIGN_POWER_CONST (12) -#define IMAGE_SCN_ALIGN_8192BYTES IMAGE_SCN_ALIGN_POWER_CONST (13) - -/* Encode alignment power into IMAGE_SCN_ALIGN bits of s_flags */ -#define COFF_ENCODE_ALIGNMENT(SECTION, ALIGNMENT_POWER) \ - ((SECTION).s_flags |= IMAGE_SCN_ALIGN_POWER_CONST ((ALIGNMENT_POWER))) - -#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 /* Section contains extended relocations. */ -#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000 /* Section is not cachable. */ -#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000 /* Section is not pageable. */ -#define IMAGE_SCN_MEM_SHARED 0x10000000 /* Section is shareable. */ - -/* COMDAT selection codes. */ - -#define IMAGE_COMDAT_SELECT_NODUPLICATES (1) /* Warn if duplicates. */ -#define IMAGE_COMDAT_SELECT_ANY (2) /* No warning. */ -#define IMAGE_COMDAT_SELECT_SAME_SIZE (3) /* Warn if different size. */ -#define IMAGE_COMDAT_SELECT_EXACT_MATCH (4) /* Warn if different. */ -#define IMAGE_COMDAT_SELECT_ASSOCIATIVE (5) /* Base on other section. */ - -/* Machine numbers. */ - -#define IMAGE_FILE_MACHINE_UNKNOWN 0x0000 -#define IMAGE_FILE_MACHINE_ALPHA 0x0184 -#define IMAGE_FILE_MACHINE_ALPHA64 0x0284 -#define IMAGE_FILE_MACHINE_AM33 0x01d3 -#define IMAGE_FILE_MACHINE_AMD64 0x8664 -#define IMAGE_FILE_MACHINE_ARM 0x01c0 -#define IMAGE_FILE_MACHINE_AXP64 IMAGE_FILE_MACHINE_ALPHA64 -#define IMAGE_FILE_MACHINE_CEE 0xc0ee -#define IMAGE_FILE_MACHINE_CEF 0x0cef -#define IMAGE_FILE_MACHINE_EBC 0x0ebc -#define IMAGE_FILE_MACHINE_I386 0x014c -#define IMAGE_FILE_MACHINE_IA64 0x0200 -#define IMAGE_FILE_MACHINE_M32R 0x9041 -#define IMAGE_FILE_MACHINE_M68K 0x0268 -#define IMAGE_FILE_MACHINE_MIPS16 0x0266 -#define IMAGE_FILE_MACHINE_MIPSFPU 0x0366 -#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466 -#define IMAGE_FILE_MACHINE_POWERPC 0x01f0 -#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1 -#define IMAGE_FILE_MACHINE_R10000 0x0168 -#define IMAGE_FILE_MACHINE_R3000 0x0162 -#define IMAGE_FILE_MACHINE_R4000 0x0166 -#define IMAGE_FILE_MACHINE_SH3 0x01a2 -#define IMAGE_FILE_MACHINE_SH3DSP 0x01a3 -#define IMAGE_FILE_MACHINE_SH3E 0x01a4 -#define IMAGE_FILE_MACHINE_SH4 0x01a6 -#define IMAGE_FILE_MACHINE_SH5 0x01a8 -#define IMAGE_FILE_MACHINE_THUMB 0x01c2 -#define IMAGE_FILE_MACHINE_TRICORE 0x0520 -#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169 -#define IMAGE_FILE_MACHINE_AMD64 0x8664 - -#define IMAGE_SUBSYSTEM_UNKNOWN 0 -#define IMAGE_SUBSYSTEM_NATIVE 1 -#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 -#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 -#define IMAGE_SUBSYSTEM_POSIX_CUI 7 -#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9 -#define IMAGE_SUBSYSTEM_EFI_APPLICATION 10 -#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 -#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 -#define IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER 13 -#define IMAGE_SUBSYSTEM_XBOX 14 - -/* Magic values that are true for all dos/nt implementations. */ -#define DOSMAGIC 0x5a4d -#define NT_SIGNATURE 0x00004550 - -/* NT allows long filenames, we want to accommodate this. - This may break some of the bfd functions. */ -#undef FILNMLEN -#define FILNMLEN 18 /* # characters in a file name. */ - -struct external_PEI_DOS_hdr -{ - /* DOS header fields - always at offset zero in the EXE file. */ - char e_magic[2]; /* Magic number, 0x5a4d. */ - char e_cblp[2]; /* Bytes on last page of file, 0x90. */ - char e_cp[2]; /* Pages in file, 0x3. */ - char e_crlc[2]; /* Relocations, 0x0. */ - char e_cparhdr[2]; /* Size of header in paragraphs, 0x4. */ - char e_minalloc[2]; /* Minimum extra paragraphs needed, 0x0. */ - char e_maxalloc[2]; /* Maximum extra paragraphs needed, 0xFFFF. */ - char e_ss[2]; /* Initial (relative) SS value, 0x0. */ - char e_sp[2]; /* Initial SP value, 0xb8. */ - char e_csum[2]; /* Checksum, 0x0. */ - char e_ip[2]; /* Initial IP value, 0x0. */ - char e_cs[2]; /* Initial (relative) CS value, 0x0. */ - char e_lfarlc[2]; /* File address of relocation table, 0x40. */ - char e_ovno[2]; /* Overlay number, 0x0. */ - char e_res[4][2]; /* Reserved words, all 0x0. */ - char e_oemid[2]; /* OEM identifier (for e_oeminfo), 0x0. */ - char e_oeminfo[2]; /* OEM information; e_oemid specific, 0x0. */ - char e_res2[10][2]; /* Reserved words, all 0x0. */ - char e_lfanew[4]; /* File address of new exe header, usually 0x80. */ - char dos_message[16][4]; /* Other stuff, always follow DOS header. */ -}; - -struct external_PEI_IMAGE_hdr -{ - char nt_signature[4]; /* required NT signature, 0x4550. */ - - /* From standard header. */ - char f_magic[2]; /* Magic number. */ - char f_nscns[2]; /* Number of sections. */ - char f_timdat[4]; /* Time & date stamp. */ - char f_symptr[4]; /* File pointer to symtab. */ - char f_nsyms[4]; /* Number of symtab entries. */ - char f_opthdr[2]; /* Sizeof(optional hdr). */ - char f_flags[2]; /* Flags. */ -}; - -struct external_PEI_filehdr -{ - /* DOS header fields - always at offset zero in the EXE file. */ - char e_magic[2]; /* Magic number, 0x5a4d. */ - char e_cblp[2]; /* Bytes on last page of file, 0x90. */ - char e_cp[2]; /* Pages in file, 0x3. */ - char e_crlc[2]; /* Relocations, 0x0. */ - char e_cparhdr[2]; /* Size of header in paragraphs, 0x4. */ - char e_minalloc[2]; /* Minimum extra paragraphs needed, 0x0. */ - char e_maxalloc[2]; /* Maximum extra paragraphs needed, 0xFFFF. */ - char e_ss[2]; /* Initial (relative) SS value, 0x0. */ - char e_sp[2]; /* Initial SP value, 0xb8. */ - char e_csum[2]; /* Checksum, 0x0. */ - char e_ip[2]; /* Initial IP value, 0x0. */ - char e_cs[2]; /* Initial (relative) CS value, 0x0. */ - char e_lfarlc[2]; /* File address of relocation table, 0x40. */ - char e_ovno[2]; /* Overlay number, 0x0. */ - char e_res[4][2]; /* Reserved words, all 0x0. */ - char e_oemid[2]; /* OEM identifier (for e_oeminfo), 0x0. */ - char e_oeminfo[2]; /* OEM information; e_oemid specific, 0x0. */ - char e_res2[10][2]; /* Reserved words, all 0x0. */ - char e_lfanew[4]; /* File address of new exe header, usually 0x80. */ - char dos_message[16][4]; /* Other stuff, always follow DOS header. */ - - /* Note: additional bytes may be inserted before the signature. Use - the e_lfanew field to find the actual location of the NT signature. */ - - char nt_signature[4]; /* required NT signature, 0x4550. */ - - /* From standard header. */ - char f_magic[2]; /* Magic number. */ - char f_nscns[2]; /* Number of sections. */ - char f_timdat[4]; /* Time & date stamp. */ - char f_symptr[4]; /* File pointer to symtab. */ - char f_nsyms[4]; /* Number of symtab entries. */ - char f_opthdr[2]; /* Sizeof(optional hdr). */ - char f_flags[2]; /* Flags. */ -}; - -#ifdef COFF_IMAGE_WITH_PE - -/* The filehdr is only weird in images. */ - -#undef FILHDR -#define FILHDR struct external_PEI_filehdr -#undef FILHSZ -#define FILHSZ 152 - -#endif /* COFF_IMAGE_WITH_PE */ - -/* 32-bit PE a.out header: */ - -typedef struct -{ - AOUTHDR standard; - - /* NT extra fields; see internal.h for descriptions. */ - char ImageBase[4]; - char SectionAlignment[4]; - char FileAlignment[4]; - char MajorOperatingSystemVersion[2]; - char MinorOperatingSystemVersion[2]; - char MajorImageVersion[2]; - char MinorImageVersion[2]; - char MajorSubsystemVersion[2]; - char MinorSubsystemVersion[2]; - char Reserved1[4]; - char SizeOfImage[4]; - char SizeOfHeaders[4]; - char CheckSum[4]; - char Subsystem[2]; - char DllCharacteristics[2]; - char SizeOfStackReserve[4]; - char SizeOfStackCommit[4]; - char SizeOfHeapReserve[4]; - char SizeOfHeapCommit[4]; - char LoaderFlags[4]; - char NumberOfRvaAndSizes[4]; - /* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; */ - char DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars. */ -} PEAOUTHDR; - -#undef AOUTSZ -#define AOUTSZ (AOUTHDRSZ + 196) - -/* Like PEAOUTHDR, except that the "standard" member has no BaseOfData - (aka data_start) member and that some of the members are 8 instead - of just 4 bytes long. */ -typedef struct -{ -#ifdef AOUTHDRSZ64 - AOUTHDR64 standard; -#else - AOUTHDR standard; -#endif - /* NT extra fields; see internal.h for descriptions. */ - char ImageBase[8]; - char SectionAlignment[4]; - char FileAlignment[4]; - char MajorOperatingSystemVersion[2]; - char MinorOperatingSystemVersion[2]; - char MajorImageVersion[2]; - char MinorImageVersion[2]; - char MajorSubsystemVersion[2]; - char MinorSubsystemVersion[2]; - char Reserved1[4]; - char SizeOfImage[4]; - char SizeOfHeaders[4]; - char CheckSum[4]; - char Subsystem[2]; - char DllCharacteristics[2]; - char SizeOfStackReserve[8]; - char SizeOfStackCommit[8]; - char SizeOfHeapReserve[8]; - char SizeOfHeapCommit[8]; - char LoaderFlags[4]; - char NumberOfRvaAndSizes[4]; - /* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; */ - char DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars. */ -} PEPAOUTHDR; - -#ifdef AOUTHDRSZ64 -#define PEPAOUTSZ (AOUTHDRSZ64 + 196 + 5 * 4) /* = 240 */ -#else -#define PEPAOUTSZ 240 -#endif - -#undef E_FILNMLEN -#define E_FILNMLEN 18 /* # characters in a file name. */ - -/* Import Tyoes fot ILF format object files.. */ -#define IMPORT_CODE 0 -#define IMPORT_DATA 1 -#define IMPORT_CONST 2 - -/* Import Name Tyoes for ILF format object files. */ -#define IMPORT_ORDINAL 0 -#define IMPORT_NAME 1 -#define IMPORT_NAME_NOPREFIX 2 -#define IMPORT_NAME_UNDECORATE 3 - -/* Weak external characteristics. */ -#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1 -#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2 -#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3 - -/* .pdata/.xdata defines and structures for x64 PE+ for exception handling. */ - -/* .pdata in exception directory. */ - -struct pex64_runtime_function -{ - bfd_vma rva_BeginAddress; - bfd_vma rva_EndAddress; - bfd_vma rva_UnwindData; - unsigned int isChained : 1; -}; - -struct external_pex64_runtime_function -{ - bfd_byte rva_BeginAddress[4]; - bfd_byte rva_EndAddress[4]; - bfd_byte rva_UnwindData[4]; -}; - -/* If the lowest significant bit is set for rva_UnwindData RVA, it - means that the unified RVA points to another pex64_runtime_function - that this entry shares the unwind_info block with. */ -#define PEX64_IS_RUNTIME_FUNCTION_CHAINED(PTR_RTF) \ - (((PTR_RTF)->rva_UnwindData & 1) != 0) -#define PEX64_GET_UNWINDDATA_UNIFIED_RVA(PTR_RTF) \ - ((PTR_RTF)->rva_UnwindData & ~1) - -/* The unwind codes. */ -#define UWOP_PUSH_NONVOL 0 -#define UWOP_ALLOC_LARGE 1 -#define UWOP_ALLOC_SMALL 2 -#define UWOP_SET_FPREG 3 -#define UWOP_SAVE_NONVOL 4 -#define UWOP_SAVE_NONVOL_FAR 5 -#define UWOP_SAVE_XMM 6 -#define UWOP_SAVE_XMM_FAR 7 -#define UWOP_SAVE_XMM128 8 -#define UWOP_SAVE_XMM128_FAR 9 -#define UWOP_PUSH_MACHFRAME 10 - -struct pex64_unwind_code -{ - bfd_vma prologue_offset; - /* Contains Frame offset, or frame allocation size. */ - bfd_vma frame_addr; - unsigned int uwop_code : 4; - /* xmm, mm, or standard register from 0 - 15. */ - unsigned int reg : 4; - /* Used for UWOP_PUSH_MACHFRAME to indicate optional errorcode stack - argument. */ - unsigned int has_errorcode : 1; -}; - -struct external_pex64_unwind_code -{ - bfd_byte dta[2]; -}; - -#define PEX64_UNWCODE_CODE(VAL) ((VAL) & 0xf) -#define PEX64_UNWCODE_INFO(VAL) (((VAL) >> 4) & 0xf) - -/* The unwind info. */ -#define UNW_FLAG_NHANDLER 0 -#define UNW_FLAG_EHANDLER 1 -#define UNW_FLAG_UHANDLER 2 -#define UNW_FLAG_FHANDLER 3 -#define UNW_FLAG_CHAININFO 4 - -#define UNW_FLAG_MASK 0x1f - -struct pex64_unwind_info -{ - bfd_vma SizeOfBlock; - bfd_byte Version; /* Values from 0 up to 7 are possible. */ - bfd_byte Flags; /* Values from 0 up to 31 are possible. */ - bfd_vma SizeOfPrologue; - bfd_vma CountOfCodes; /* Amount of pex64_unwind_code elements. */ - /* 0 = CFA, 1..15 are index of integer registers. */ - unsigned int FrameRegister : 4; - bfd_vma FrameOffset; - bfd_vma sizeofUnwindCodes; - bfd_byte *rawUnwindCodes; - /* Valid for UNW_FLAG_EHANDLER and UNW_FLAG_UHANDLER. */ - bfd_vma CountOfScopes; - bfd_byte *rawScopeEntries; - bfd_vma rva_ExceptionHandler; /* UNW_EHANDLER. */ - bfd_vma rva_TerminationHandler; /* UNW_FLAG_UHANDLER. */ - bfd_vma rva_FrameHandler; /* UNW_FLAG_FHANDLER. */ - bfd_vma FrameHandlerArgument; /* UNW_FLAG_FHANDLER. */ - bfd_vma rva_FunctionEntry; /* UNW_FLAG_CHAININFO. */ -}; - -struct external_pex64_unwind_info -{ - bfd_byte Version_Flags; - bfd_byte SizeOfPrologue; - bfd_byte CountOfCodes; - bfd_byte FrameRegisterOffset; - /* external_pex64_unwind_code array. */ - /* bfd_byte handler[4]; */ - /* Optional language specific data. */ -}; - -struct external_pex64_scope -{ - bfd_vma Count; -}; - -struct pex64_scope -{ - bfd_byte Count[4]; -}; - -struct pex64_scope_entry -{ - bfd_vma rva_BeginAddress; - bfd_vma rva_EndAddress; - bfd_vma rva_HandlerAddress; - bfd_vma rva_JumpAddress; -}; -#define PEX64_SCOPE_ENTRY_SIZE 16 - -struct external_pex64_scope_entry -{ - bfd_byte rva_BeginAddress[4]; - bfd_byte rva_EndAddress[4]; - bfd_byte rva_HandlerAddress[4]; - bfd_byte rva_JumpAddress[4]; -}; - -#define PEX64_UWI_VERSION(VAL) ((VAL) & 7) -#define PEX64_UWI_FLAGS(VAL) (((VAL) >> 3) & 0x1f) -#define PEX64_UWI_FRAMEREG(VAL) ((VAL) & 0xf) -#define PEX64_UWI_FRAMEOFF(VAL) (((VAL) >> 4) & 0xf) -#define PEX64_UWI_SIZEOF_UWCODE_ARRAY(VAL) \ - ((((VAL) + 1) & ~1) * 2) - -#define PEX64_OFFSET_TO_UNWIND_CODE 0x4 - -#define PEX64_OFFSET_TO_HANDLER_RVA (COUNTOFUNWINDCODES) \ - (PEX64_OFFSET_TO_UNWIND_CODE + \ - PEX64_UWI_SIZEOF_UWCODE_ARRAY(COUNTOFUNWINDCODES)) - -#define PEX64_OFFSET_TO_SCOPE_COUNT(COUNTOFUNWINDCODES) \ - (PEX64_OFFSET_TO_HANDLER_RVA(COUNTOFUNWINDCODES) + 4) - -#define PEX64_SCOPE_ENTRY(COUNTOFUNWINDCODES, IDX) \ - (PEX64_OFFSET_TO_SCOPE_COUNT(COUNTOFUNWINDCODES) + \ - PEX64_SCOPE_ENTRY_SIZE * (IDX)) - -#endif /* _PE_H */ diff --git a/include/coff/powerpc.h b/include/coff/powerpc.h deleted file mode 100644 index eba4730..0000000 --- a/include/coff/powerpc.h +++ /dev/null @@ -1,59 +0,0 @@ -/* Basic coff information for the PowerPC - Based on coff/rs6000.h, coff/i386.h and others. - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. - - Initial release: Kim Knuttila (krk@cygnus.com) */ -#define L_LNNO_SIZE 2 -#define INCLUDE_COMDAT_FIELDS_IN_AUXENT -#include "coff/external.h" - -/* Bits for f_flags: - F_RELFLG relocation info stripped from file - F_EXEC file is executable (no unresolved external references) - F_LNNO line numbers stripped from file - F_LSYMS local symbols stripped from file - F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax). */ - -#define F_RELFLG (0x0001) -#define F_EXEC (0x0002) -#define F_LNNO (0x0004) -#define F_LSYMS (0x0008) - -/* extra NT defines */ -#define PPCMAGIC 0760 /* peeked on aa PowerPC Windows NT box */ -#define DOSMAGIC 0x5a4d /* from arm.h, i386.h */ -#define NT_SIGNATURE 0x00004550 /* from arm.h, i386.h */ - -/* from winnt.h */ -#define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b - -#define PPCBADMAG(x) ((x).f_magic != PPCMAGIC) - -/********************** RELOCATION DIRECTIVES **********************/ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 10 - diff --git a/include/coff/rs6000.h b/include/coff/rs6000.h deleted file mode 100644 index 7972d33..0000000 --- a/include/coff/rs6000.h +++ /dev/null @@ -1,353 +0,0 @@ -/* IBM RS/6000 "XCOFF" file definitions for BFD. - Copyright (C) 1990, 1991, 2001, 2010 Free Software Foundation, Inc. - Written by Mimi Phuong-Thao Vo of IBM - and John Gilmore of Cygnus Support. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/********************** FILE HEADER **********************/ - -struct external_filehdr { - char f_magic[2]; /* magic number */ - char f_nscns[2]; /* number of sections */ - char f_timdat[4]; /* time & date stamp */ - char f_symptr[4]; /* file pointer to symtab */ - char f_nsyms[4]; /* number of symtab entries */ - char f_opthdr[2]; /* sizeof(optional hdr) */ - char f_flags[2]; /* flags */ -}; - - /* IBM RS/6000 */ -#define U802WRMAGIC 0730 /* writeable text segments **chh** */ -#define U802ROMAGIC 0735 /* readonly sharable text segments */ -#define U802TOCMAGIC 0737 /* readonly text segments and TOC */ - -#define BADMAG(x) \ - ((x).f_magic != U802ROMAGIC && (x).f_magic != U802WRMAGIC && \ - (x).f_magic != U802TOCMAGIC) - -#define FILHDR struct external_filehdr -#define FILHSZ 20 - - -/********************** AOUT "OPTIONAL HEADER" **********************/ - - -typedef struct -{ - unsigned char magic[2]; /* type of file */ - unsigned char vstamp[2]; /* version stamp */ - unsigned char tsize[4]; /* text size in bytes, padded to FW bdry */ - unsigned char dsize[4]; /* initialized data " " */ - unsigned char bsize[4]; /* uninitialized data " " */ - unsigned char entry[4]; /* entry pt. */ - unsigned char text_start[4]; /* base of text used for this file */ - unsigned char data_start[4]; /* base of data used for this file */ - unsigned char o_toc[4]; /* address of TOC */ - unsigned char o_snentry[2]; /* section number of entry point */ - unsigned char o_sntext[2]; /* section number of .text section */ - unsigned char o_sndata[2]; /* section number of .data section */ - unsigned char o_sntoc[2]; /* section number of TOC */ - unsigned char o_snloader[2]; /* section number of .loader section */ - unsigned char o_snbss[2]; /* section number of .bss section */ - unsigned char o_algntext[2]; /* .text alignment */ - unsigned char o_algndata[2]; /* .data alignment */ - unsigned char o_modtype[2]; /* module type (??) */ - unsigned char o_cputype[2]; /* cpu type */ - unsigned char o_maxstack[4]; /* max stack size (??) */ - unsigned char o_maxdata[4]; /* max data size (??) */ - unsigned char o_resv2[12]; /* reserved */ -} -AOUTHDR; - -#define AOUTSZ 72 -#define SMALL_AOUTSZ (28) -#define AOUTHDRSZ 72 - -/********************** SECTION HEADER **********************/ - - -struct external_scnhdr { - char s_name[8]; /* section name */ - char s_paddr[4]; /* physical address, aliased s_nlib */ - char s_vaddr[4]; /* virtual address */ - char s_size[4]; /* section size */ - char s_scnptr[4]; /* file ptr to raw data for section */ - char s_relptr[4]; /* file ptr to relocation */ - char s_lnnoptr[4]; /* file ptr to line numbers */ - char s_nreloc[2]; /* number of relocation entries */ - char s_nlnno[2]; /* number of line number entries*/ - char s_flags[4]; /* flags */ -}; - -#define SCNHDR struct external_scnhdr -#define SCNHSZ 40 - -/********************** LINE NUMBERS **********************/ - -/* 1 line number entry for every "breakpointable" source line in a section. - * Line numbers are grouped on a per function basis; first entry in a function - * grouping will have l_lnno = 0 and in place of physical address will be the - * symbol table index of the function name. - */ -struct external_lineno { - union { - char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/ - char l_paddr[4]; /* (physical) address of line number */ - } l_addr; - char l_lnno[2]; /* line number */ -}; - - -#define LINENO struct external_lineno -#define LINESZ 6 - - -/********************** SYMBOLS **********************/ - -#define E_SYMNMLEN 8 /* # characters in a symbol name */ -#define E_FILNMLEN 14 /* # characters in a file name */ -#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */ - -struct external_syment -{ - union { - char e_name[E_SYMNMLEN]; - struct { - char e_zeroes[4]; - char e_offset[4]; - } e; - } e; - char e_value[4]; - char e_scnum[2]; - char e_type[2]; - char e_sclass[1]; - char e_numaux[1]; -}; - - - -#define N_BTMASK (017) -#define N_TMASK (060) -#define N_BTSHFT (4) -#define N_TSHIFT (2) - - -union external_auxent { - struct { - char x_tagndx[4]; /* str, un, or enum tag indx */ - union { - struct { - char x_lnno[2]; /* declaration line number */ - char x_size[2]; /* str/union/array size */ - } x_lnsz; - char x_fsize[4]; /* size of function */ - } x_misc; - union { - struct { /* if ISFCN, tag, or .bb */ - char x_lnnoptr[4]; /* ptr to fcn line # */ - char x_endndx[4]; /* entry ndx past block end */ - } x_fcn; - struct { /* if ISARY, up to 4 dimen. */ - char x_dimen[E_DIMNUM][2]; - } x_ary; - } x_fcnary; - char x_tvndx[2]; /* tv index */ - } x_sym; - - struct { - union { - char x_fname[E_FILNMLEN]; - struct { - char x_zeroes[4]; - char x_offset[4]; - } x_n; - } x_n; - char x_ftype[1]; - } x_file; - - struct { - char x_scnlen[4]; /* section length */ - char x_nreloc[2]; /* # relocation entries */ - char x_nlinno[2]; /* # line numbers */ - } x_scn; - - struct { - char x_tvfill[4]; /* tv fill value */ - char x_tvlen[2]; /* length of .tv */ - char x_tvran[2][2]; /* tv range */ - } x_tv; /* info about .tv section (in auxent of symbol .tv)) */ - - struct { - unsigned char x_scnlen[4]; - unsigned char x_parmhash[4]; - unsigned char x_snhash[2]; - unsigned char x_smtyp[1]; - unsigned char x_smclas[1]; - unsigned char x_stab[4]; - unsigned char x_snstab[2]; - } x_csect; - -}; - -#define SYMENT struct external_syment -#define SYMESZ 18 -#define AUXENT union external_auxent -#define AUXESZ 18 -#define DBXMASK 0x80 /* for dbx storage mask */ -#define SYMNAME_IN_DEBUG(symptr) ((symptr)->n_sclass & DBXMASK) - - - -/********************** RELOCATION DIRECTIVES **********************/ - - -struct external_reloc { - char r_vaddr[4]; - char r_symndx[4]; - char r_size[1]; - char r_type[1]; -}; - - -#define RELOC struct external_reloc -#define RELSZ 10 - -#define DEFAULT_DATA_SECTION_ALIGNMENT 4 -#define DEFAULT_BSS_SECTION_ALIGNMENT 4 -#define DEFAULT_TEXT_SECTION_ALIGNMENT 4 -/* For new sections we havn't heard of before */ -#define DEFAULT_SECTION_ALIGNMENT 4 - -/* The ldhdr structure. This appears at the start of the .loader - section. */ - -struct external_ldhdr -{ - bfd_byte l_version[4]; - bfd_byte l_nsyms[4]; - bfd_byte l_nreloc[4]; - bfd_byte l_istlen[4]; - bfd_byte l_nimpid[4]; - bfd_byte l_impoff[4]; - bfd_byte l_stlen[4]; - bfd_byte l_stoff[4]; -}; - -#define LDHDRSZ (8 * 4) - -struct external_ldsym -{ - union - { - bfd_byte _l_name[E_SYMNMLEN]; - struct - { - bfd_byte _l_zeroes[4]; - bfd_byte _l_offset[4]; - } _l_l; - } _l; - bfd_byte l_value[4]; - bfd_byte l_scnum[2]; - bfd_byte l_smtype[1]; - bfd_byte l_smclas[1]; - bfd_byte l_ifile[4]; - bfd_byte l_parm[4]; -}; - -#define LDSYMSZ (8 + 3 * 4 + 2 + 2) - -struct external_ldrel -{ - bfd_byte l_vaddr[4]; - bfd_byte l_symndx[4]; - bfd_byte l_rtype[2]; - bfd_byte l_rsecnm[2]; -}; - -#define LDRELSZ (2 * 4 + 2 * 2) - -struct external_exceptab -{ - union { - bfd_byte e_symndx[4]; - bfd_byte e_paddr[4]; - } e_addr; - bfd_byte e_lang[1]; - bfd_byte e_reason[1]; -}; - -#define EXCEPTSZ (4 + 2) - -/******************** Core files *************************/ - -struct external_core_dumpx -{ - unsigned char c_signo[1]; - unsigned char c_flag[1]; - unsigned char c_entries[2]; - - unsigned char c_version[4]; - - unsigned char c_fdsinfox[8]; - unsigned char c_loader[8]; - unsigned char c_lsize[8]; - - unsigned char c_n_thr[4]; - unsigned char c_reserved0[4]; - unsigned char c_thr[8]; - - unsigned char c_segs[8]; - unsigned char c_segregion[8]; - - unsigned char c_stack[8]; - unsigned char c_stackorg[8]; - unsigned char c_size[8]; - - unsigned char c_data[8]; - unsigned char c_dataorg[8]; - unsigned char c_datasize[8]; - unsigned char c_sdorg[8]; - unsigned char c_sdsize[8]; - - unsigned char c_vmmregions[8]; - unsigned char c_vmm[8]; - - unsigned char c_impl[4]; - unsigned char c_pad[4]; - unsigned char c_cprs[8]; - unsigned char c_reserved[7 * 8]; - - /* Followed by: - - context of the faulting thread. - - user structure. */ -}; - - -/* Core file verion. */ -#define CORE_DUMPX_VERSION 0x0feeddb1 -#define CORE_DUMPXX_VERSION 0x0feeddb2 - -struct external_ld_info32 -{ - unsigned char ldinfo_next[4]; - unsigned char core_offset[4]; - unsigned char ldinfo_textorg[4]; - unsigned char ldinfo_textsize[4]; - unsigned char ldinfo_dataorg[4]; - unsigned char ldinfo_datasize[4]; - unsigned char ldinfo_filename[2]; -}; diff --git a/include/coff/rs6k64.h b/include/coff/rs6k64.h deleted file mode 100644 index 453198a..0000000 --- a/include/coff/rs6k64.h +++ /dev/null @@ -1,275 +0,0 @@ -/* IBM RS/6000 "XCOFF64" file definitions for BFD. - Copyright (C) 2000, 2001, 2002, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/********************** FILE HEADER **********************/ - -struct external_filehdr -{ - char f_magic[2]; /* magic number */ - char f_nscns[2]; /* number of sections */ - char f_timdat[4]; /* time & date stamp */ - char f_symptr[8]; /* file pointer to symtab */ - char f_opthdr[2]; /* sizeof(optional hdr) */ - char f_flags[2]; /* flags */ - char f_nsyms[4]; /* number of symtab entries */ -}; - -/* IBM RS/6000. */ -#define U803XTOCMAGIC 0757 /* Aix 4.3 64-bit XCOFF */ -#define U64_TOCMAGIC 0767 /* AIX 5+ 64-bit XCOFF */ -#define BADMAG(x) ((x).f_magic != U803XTOCMAGIC && (x).f_magic != U64_TOCMAGIC) - -#define FILHDR struct external_filehdr -#define FILHSZ 24 - -/********************** AOUT "OPTIONAL HEADER" **********************/ - -typedef struct -{ - unsigned char magic[2]; /* type of file */ - unsigned char vstamp[2]; /* version stamp */ - unsigned char o_debugger[4]; /* reserved */ - unsigned char text_start[8]; /* base of text used for this file */ - unsigned char data_start[8]; /* base of data used for this file */ - unsigned char o_toc[8]; /* address of TOC */ - unsigned char o_snentry[2]; /* section number of entry point */ - unsigned char o_sntext[2]; /* section number of .text section */ - unsigned char o_sndata[2]; /* section number of .data section */ - unsigned char o_sntoc[2]; /* section number of TOC */ - unsigned char o_snloader[2]; /* section number of .loader section */ - unsigned char o_snbss[2]; /* section number of .bss section */ - unsigned char o_algntext[2]; /* .text alignment */ - unsigned char o_algndata[2]; /* .data alignment */ - unsigned char o_modtype[2]; /* module type (??) */ - unsigned char o_cputype[2]; /* cpu type */ - unsigned char o_resv2[4]; /* reserved */ - unsigned char tsize[8]; /* text size bytes, padded to FW bdry */ - unsigned char dsize[8]; /* initialized data " " */ - unsigned char bsize[8]; /* uninitialized data " " */ - unsigned char entry[8]; /* entry pt. */ - unsigned char o_maxstack[8]; /* max stack size (??) */ - unsigned char o_maxdata[8]; /* max data size (??) */ - unsigned char o_resv3[16]; /* reserved */ -} -AOUTHDR; - -#define AOUTSZ 120 -#define SMALL_AOUTSZ (0) -#define AOUTHDRSZ 72 - -/********************** SECTION HEADER **********************/ - -struct external_scnhdr -{ - char s_name[8]; /* section name */ - char s_paddr[8]; /* physical address, aliased s_nlib */ - char s_vaddr[8]; /* virtual address */ - char s_size[8]; /* section size */ - char s_scnptr[8]; /* file ptr to raw data for section */ - char s_relptr[8]; /* file ptr to relocation */ - char s_lnnoptr[8]; /* file ptr to line numbers */ - char s_nreloc[4]; /* number of relocation entries */ - char s_nlnno[4]; /* number of line number entries*/ - char s_flags[4]; /* flags */ - char s_pad[4]; /* padding */ -}; - -#define SCNHDR struct external_scnhdr - -#define SCNHSZ 72 - -/********************** LINE NUMBERS **********************/ - -/* 1 line number entry for every "breakpointable" source line in a section. - Line numbers are grouped on a per function basis; first entry in a function - grouping will have l_lnno = 0 and in place of physical address will be the - symbol table index of the function name. */ - -struct external_lineno -{ - union - { - char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/ - char l_paddr[8]; /* (physical) address of line number */ - } l_addr; - - char l_lnno[4]; /* line number */ -}; - -#define LINENO struct external_lineno - -#define LINESZ 12 - -/********************** SYMBOLS **********************/ - -#define E_SYMNMLEN 8 /* # characters in a symbol name */ -#define E_FILNMLEN 14 /* # characters in a file name */ -#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */ - -struct external_syment -{ - char e_value[8]; - char e_offset[4]; - char e_scnum[2]; - char e_type[2]; - char e_sclass[1]; - char e_numaux[1]; -}; - -#define N_BTMASK (017) -#define N_TMASK (060) -#define N_BTSHFT (4) -#define N_TSHIFT (2) - -union external_auxent -{ - struct { - union { - struct { - char x_lnno[4]; /* declaration line number */ - char x_size[2]; /* str/union/array size */ - } x_lnsz; - struct { - char x_lnnoptr[8];/* ptr to fcn line */ - char x_fsize[4]; /* size of function */ - char x_endndx[4]; /* entry ndx past block end */ - } x_fcn; - } x_fcnary; - } x_sym; - - struct { - union { - char x_fname[E_FILNMLEN]; - struct { - char x_zeroes[4]; - char x_offset[4]; - char x_pad[6]; - } x_n; - } x_n; - unsigned char x_ftype[1]; - unsigned char x_resv[2]; - } x_file; - - struct { - char x_exptr[8]; - char x_fsize[4]; - char x_endndx[4]; - char x_pad[1]; - } x_except; - - struct { - unsigned char x_scnlen_lo[4]; - unsigned char x_parmhash[4]; - unsigned char x_snhash[2]; - unsigned char x_smtyp[1]; - unsigned char x_smclas[1]; - unsigned char x_scnlen_hi[4]; - unsigned char x_pad[1]; - } x_csect; - - struct { - char x_pad[17]; - char x_auxtype[1]; - } x_auxtype; -}; - -#define SYMENT struct external_syment -#define SYMESZ 18 -#define AUXENT union external_auxent -#define AUXESZ 18 -#define DBXMASK 0x80 /* for dbx storage mask */ -#define SYMNAME_IN_DEBUG(symptr) ((symptr)->n_sclass & DBXMASK) - -/* Values for auxtype field in XCOFF64, taken from AIX 4.3 sym.h. */ -#define _AUX_EXCEPT 255 -#define _AUX_FCN 254 -#define _AUX_SYM 253 -#define _AUX_FILE 252 -#define _AUX_CSECT 251 - -/********************** RELOCATION DIRECTIVES **********************/ - -struct external_reloc -{ - char r_vaddr[8]; - char r_symndx[4]; - char r_size[1]; - char r_type[1]; -}; - -#define RELOC struct external_reloc -#define RELSZ 14 - -#define DEFAULT_DATA_SECTION_ALIGNMENT 4 -#define DEFAULT_BSS_SECTION_ALIGNMENT 4 -#define DEFAULT_TEXT_SECTION_ALIGNMENT 4 -/* For new sections we havn't heard of before */ -#define DEFAULT_SECTION_ALIGNMENT 4 - -/* The ldhdr structure. This appears at the start of the .loader - section. */ - -struct external_ldhdr -{ - bfd_byte l_version[4]; - bfd_byte l_nsyms[4]; - bfd_byte l_nreloc[4]; - bfd_byte l_istlen[4]; - bfd_byte l_nimpid[4]; - bfd_byte l_stlen[4]; - bfd_byte l_impoff[8]; - bfd_byte l_stoff[8]; - bfd_byte l_symoff[8]; - bfd_byte l_rldoff[8]; -}; -#define LDHDRSZ (56) - -struct external_ldsym -{ - bfd_byte l_value[8]; - bfd_byte l_offset[4]; - bfd_byte l_scnum[2]; - bfd_byte l_smtype[1]; - bfd_byte l_smclas[1]; - bfd_byte l_ifile[4]; - bfd_byte l_parm[4]; -}; - -#define LDSYMSZ (24) - -struct external_ldrel -{ - bfd_byte l_vaddr[8]; - bfd_byte l_rtype[2]; - bfd_byte l_rsecnm[2]; - bfd_byte l_symndx[4]; -}; - -#define LDRELSZ (16) - -struct external_exceptab -{ - union { - bfd_byte e_symndx[4]; - bfd_byte e_paddr[8]; - } e_addr; - bfd_byte e_lang[1]; - bfd_byte e_reason[1]; -}; - -#define EXCEPTSZ (10) diff --git a/include/coff/sh.h b/include/coff/sh.h deleted file mode 100644 index bf13104..0000000 --- a/include/coff/sh.h +++ /dev/null @@ -1,148 +0,0 @@ -/* coff information for Renesas SH - - Copyright 2000, 2003, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifdef COFF_WITH_PE -#define L_LNNO_SIZE 2 -#else -#define L_LNNO_SIZE 4 -#endif -#define INCLUDE_COMDAT_FIELDS_IN_AUXENT -#include "coff/external.h" - -#define SH_ARCH_MAGIC_BIG 0x0500 -#define SH_ARCH_MAGIC_LITTLE 0x0550 /* Little endian SH */ -#define SH_ARCH_MAGIC_WINCE 0x01a2 /* Windows CE - little endian */ -#define SH_PE_MAGIC 0x010b - -#define SHBADMAG(x) \ - (((x).f_magic != SH_ARCH_MAGIC_BIG) && \ - ((x).f_magic != SH_ARCH_MAGIC_WINCE) && \ - ((x).f_magic != SH_ARCH_MAGIC_LITTLE)) - -/* Define some NT default values. */ -/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */ -#define NT_SECTION_ALIGNMENT 0x1000 -#define NT_FILE_ALIGNMENT 0x200 -#define NT_DEF_RESERVE 0x100000 -#define NT_DEF_COMMIT 0x1000 - -/********************** RELOCATION DIRECTIVES **********************/ - -/* The external reloc has an offset field, because some of the reloc - types on the h8 don't have room in the instruction for the entire - offset - eg the strange jump and high page addressing modes. */ - -#ifndef COFF_WITH_PE -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_offset[4]; - char r_type[2]; - char r_stuff[2]; -}; -#else -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; -}; -#endif - -#define RELOC struct external_reloc -#ifdef COFF_WITH_PE -#define RELSZ 10 -#else -#define RELSZ 16 -#endif - -/* SH relocation types. Not all of these are actually used. */ - -#define R_SH_UNUSED 0 /* only used internally */ -#define R_SH_IMM32CE 2 /* 32 bit immediate for WinCE */ -#define R_SH_PCREL8 3 /* 8 bit pcrel */ -#define R_SH_PCREL16 4 /* 16 bit pcrel */ -#define R_SH_HIGH8 5 /* high 8 bits of 24 bit address */ -#define R_SH_LOW16 7 /* low 16 bits of 24 bit immediate */ -#define R_SH_IMM24 6 /* 24 bit immediate */ -#define R_SH_PCDISP8BY4 9 /* PC rel 8 bits *4 +ve */ -#define R_SH_PCDISP8BY2 10 /* PC rel 8 bits *2 +ve */ -#define R_SH_PCDISP8 11 /* 8 bit branch */ -#define R_SH_PCDISP 12 /* 12 bit branch */ -#define R_SH_IMM32 14 /* 32 bit immediate */ -#define R_SH_IMM8 16 /* 8 bit immediate */ -#define R_SH_IMAGEBASE 16 /* Windows CE */ -#define R_SH_IMM8BY2 17 /* 8 bit immediate *2 */ -#define R_SH_IMM8BY4 18 /* 8 bit immediate *4 */ -#define R_SH_IMM4 19 /* 4 bit immediate */ -#define R_SH_IMM4BY2 20 /* 4 bit immediate *2 */ -#define R_SH_IMM4BY4 21 /* 4 bit immediate *4 */ -#define R_SH_PCRELIMM8BY2 22 /* PC rel 8 bits *2 unsigned */ -#define R_SH_PCRELIMM8BY4 23 /* PC rel 8 bits *4 unsigned */ -#define R_SH_IMM16 24 /* 16 bit immediate */ - -/* The switch table reloc types are used for relaxing. They are - generated for expressions such as - .word L1 - L2 - The r_offset field holds the difference between the reloc address - and L2. */ -#define R_SH_SWITCH8 33 /* 8 bit switch table entry */ -#define R_SH_SWITCH16 25 /* 16 bit switch table entry */ -#define R_SH_SWITCH32 26 /* 32 bit switch table entry */ - -/* The USES reloc type is used for relaxing. The compiler will - generate .uses pseudo-ops when it finds a function call which it - can relax. The r_offset field of the USES reloc holds the PC - relative offset to the instruction which loads the register used in - the function call. */ -#define R_SH_USES 27 /* .uses pseudo-op */ - -/* The COUNT reloc type is used for relaxing. The assembler will - generate COUNT relocs for addresses referred to by the register - loads associated with USES relocs. The r_offset field of the COUNT - reloc holds the number of times the address is referenced in the - object file. */ -#define R_SH_COUNT 28 /* Count of constant pool uses */ - -/* The ALIGN reloc type is used for relaxing. The r_offset field is - the power of two to which subsequent portions of the object file - must be aligned. */ -#define R_SH_ALIGN 29 /* .align pseudo-op */ - -/* The CODE and DATA reloc types are used for aligning load and store - instructions. The assembler will generate a CODE reloc before a - block of instructions. It will generate a DATA reloc before data. - A section should be processed assuming it contains data, unless a - CODE reloc is seen. The only relevant pieces of information in the - CODE and DATA relocs are the section and the address. The symbol - and offset are meaningless. */ -#define R_SH_CODE 30 /* start of code */ -#define R_SH_DATA 31 /* start of data */ - -/* The LABEL reloc type is used for aligning load and store - instructions. The assembler will generate a LABEL reloc for each - label within a block of instructions. This permits the linker to - avoid swapping instructions which are the targets of branches. */ -#define R_SH_LABEL 32 /* label */ - -/* NB: R_SH_SWITCH8 is 33 */ - -#define R_SH_LOOP_START 34 -#define R_SH_LOOP_END 35 diff --git a/include/coff/sparc.h b/include/coff/sparc.h deleted file mode 100644 index fa94c5f..0000000 --- a/include/coff/sparc.h +++ /dev/null @@ -1,156 +0,0 @@ -/* coff information for Sparc. - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file is an amalgamation of several standard include files that - define coff format, such as filehdr.h, aouthdr.h, and so forth. In - addition, all datatypes have been translated into character arrays of - (presumed) equivalent size. This is necessary so that this file can - be used with different systems while still yielding the same results. */ - -#define L_LNNO_SIZE 2 -#define DO_NOT_DEFINE_SYMENT -#define DO_NOT_DEFINE_AUXENT -#include "coff/external.h" - -#define F_RELFLG (0x0001) /* relocation info stripped */ -#define F_EXEC (0x0002) /* file is executable */ -#define F_LNNO (0x0004) /* line numbers stripped */ -#define F_LSYMS (0x0008) /* local symbols stripped */ - -#define SPARCMAGIC (0540) - -/* This is Lynx's all-platform magic number for executables. */ - -#define LYNXCOFFMAGIC (0415) - -#define OMAGIC 0404 /* object files, eg as output */ -#define ZMAGIC 0413 /* demand load format, eg normal ld output */ -#define STMAGIC 0401 /* target shlib */ -#define SHMAGIC 0443 /* host shlib */ - -/* More names of "special" sections. */ - -#define _TV ".tv" -#define _INIT ".init" -#define _FINI ".fini" - -/********************** SYMBOLS **********************/ - -#define E_SYMNMLEN (8) /* # characters in a symbol name */ -#define E_FILNMLEN (14) /* # characters in a file name */ -#define E_DIMNUM (4) /* # array dimensions in auxiliary entry */ - -struct external_syment -{ - union { - char e_name[E_SYMNMLEN]; - struct { - char e_zeroes[4]; - char e_offset[4]; - } e; -#if 0 /* of doubtful value */ - char e_nptr[2][4]; - struct { - char e_leading_zero[1]; - char e_dbx_type[1]; - char e_dbx_desc[2]; - } e_dbx; -#endif - } e; - - char e_value[4]; - char e_scnum[2]; - char e_type[2]; - char e_sclass[1]; - char e_numaux[1]; - char padding[2]; -}; - -#define N_BTMASK (0xf) -#define N_TMASK (0x30) -#define N_BTSHFT (4) -#define N_TSHIFT (2) - -union external_auxent -{ - struct { - char x_tagndx[4]; /* str, un, or enum tag indx */ - union { - struct { - char x_lnno[2]; /* declaration line number */ - char x_size[2]; /* str/union/array size */ - } x_lnsz; - char x_fsize[4]; /* size of function */ - } x_misc; - union { - struct { /* if ISFCN, tag, or .bb */ - char x_lnnoptr[4]; /* ptr to fcn line # */ - char x_endndx[4]; /* entry ndx past block end */ - } x_fcn; - struct { /* if ISARY, up to 4 dimen. */ - char x_dimen[E_DIMNUM][2]; - } x_ary; - } x_fcnary; - char x_tvndx[2]; /* tv index */ - } x_sym; - - union { - char x_fname[E_FILNMLEN]; - struct { - char x_zeroes[4]; - char x_offset[4]; - } x_n; - } x_file; - - struct { - char x_scnlen[4]; /* section length */ - char x_nreloc[2]; /* # relocation entries */ - char x_nlinno[2]; /* # line numbers */ - } x_scn; - - struct { - char x_tvfill[4]; /* tv fill value */ - char x_tvlen[2]; /* length of .tv */ - char x_tvran[2][2]; /* tv range */ - } x_tv; /* .tv section info (in auxent of sym .tv)) */ - - char x_fill[20]; /* forces to 20-byte size */ -}; - -#define SYMENT struct external_syment -#define SYMESZ 20 -#define AUXENT union external_auxent -#define AUXESZ 20 - -#define _ETEXT "etext" - -/********************** RELOCATION DIRECTIVES **********************/ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; - char r_spare[2]; - char r_offset[4]; -}; - -#define RELOC struct external_reloc -#define RELSZ 16 - diff --git a/include/coff/sym.h b/include/coff/sym.h deleted file mode 100644 index 76204af..0000000 --- a/include/coff/sym.h +++ /dev/null @@ -1,484 +0,0 @@ -/* Declarations of internal format of MIPS ECOFF symbols. - Originally contributed by MIPS Computer Systems and Third Eye Software. - Changes contributed by Cygnus Support are in the public domain. - - This file is just aggregated with the files that make up the GNU - release; it is not considered part of GAS, GDB, or other GNU - programs. */ - -/* - * |-----------------------------------------------------------| - * | Copyright (c) 1992, 1991, 1990 MIPS Computer Systems, Inc.| - * | MIPS Computer Systems, Inc. grants reproduction and use | - * | rights to all parties, PROVIDED that this comment is | - * | maintained in the copy. | - * |-----------------------------------------------------------| - */ -#ifndef _SYM_H -#define _SYM_H - -/* (C) Copyright 1984 by Third Eye Software, Inc. - * - * Third Eye Software, Inc. grants reproduction and use rights to - * all parties, PROVIDED that this comment is maintained in the copy. - * - * Third Eye makes no claims about the applicability of this - * symbol table to a particular use. - */ - -/* - * This file contains the definition of the Third Eye Symbol Table. - * - * Symbols are assumed to be in 'encounter order' - i.e. the order that - * the things they represent were encountered by the compiler/assembler/loader. - * EXCEPT for globals! These are assumed to be bunched together, - * probably right after the last 'normal' symbol. Globals ARE sorted - * in ascending order. - * - * ----------------------------------------------------------------------- - * A brief word about Third Eye naming/use conventions: - * - * All arrays and index's are 0 based. - * All "ifooMax" values are the highest legal value PLUS ONE. This makes - * them good for allocating arrays, etc. All checks are "ifoo < ifooMax". - * - * "isym" Index into the SYMbol table. - * "ipd" Index into the Procedure Descriptor array. - * "ifd" Index into the File Descriptor array. - * "iss" Index into String Space. - * "cb" Count of Bytes. - * "rgPd" array whose domain is "0..ipdMax-1" and RanGe is PDR. - * "rgFd" array whose domain is "0..ifdMax-1" and RanGe is FDR. - */ - - -/* - * Symbolic Header (HDR) structure. - * As long as all the pointers are set correctly, - * we don't care WHAT order the various sections come out in! - * - * A file produced solely for the use of CDB will probably NOT have - * any instructions or data areas in it, as these are available - * in the original. - */ - -typedef struct { - short magic; /* to verify validity of the table */ - short vstamp; /* version stamp */ - long ilineMax; /* number of line number entries */ - bfd_vma cbLine; /* number of bytes for line number entries */ - bfd_vma cbLineOffset; /* offset to start of line number entries*/ - long idnMax; /* max index into dense number table */ - bfd_vma cbDnOffset; /* offset to start dense number table */ - long ipdMax; /* number of procedures */ - bfd_vma cbPdOffset; /* offset to procedure descriptor table */ - long isymMax; /* number of local symbols */ - bfd_vma cbSymOffset; /* offset to start of local symbols*/ - long ioptMax; /* max index into optimization symbol entries */ - bfd_vma cbOptOffset; /* offset to optimization symbol entries */ - long iauxMax; /* number of auxillary symbol entries */ - bfd_vma cbAuxOffset; /* offset to start of auxillary symbol entries*/ - long issMax; /* max index into local strings */ - bfd_vma cbSsOffset; /* offset to start of local strings */ - long issExtMax; /* max index into external strings */ - bfd_vma cbSsExtOffset; /* offset to start of external strings */ - long ifdMax; /* number of file descriptor entries */ - bfd_vma cbFdOffset; /* offset to file descriptor table */ - long crfd; /* number of relative file descriptor entries */ - bfd_vma cbRfdOffset; /* offset to relative file descriptor table */ - long iextMax; /* max index into external symbols */ - bfd_vma cbExtOffset; /* offset to start of external symbol entries*/ - /* If you add machine dependent fields, add them here */ - } HDRR, *pHDRR; -#define cbHDRR sizeof(HDRR) -#define hdrNil ((pHDRR)0) - -/* - * The FDR and PDR structures speed mapping of address <-> name. - * They are sorted in ascending memory order and are kept in - * memory by CDB at runtime. - */ - -/* - * File Descriptor - * - * There is one of these for EVERY FILE, whether compiled with - * full debugging symbols or not. The name of a file should be - * the path name given to the compiler. This allows the user - * to simply specify the names of the directories where the COMPILES - * were done, and we will be able to find their files. - * A field whose comment starts with "R - " indicates that it will be - * setup at runtime. - */ -typedef struct fdr { - bfd_vma adr; /* memory address of beginning of file */ - long rss; /* file name (of source, if known) */ - long issBase; /* file's string space */ - bfd_vma cbSs; /* number of bytes in the ss */ - long isymBase; /* beginning of symbols */ - long csym; /* count file's of symbols */ - long ilineBase; /* file's line symbols */ - long cline; /* count of file's line symbols */ - long ioptBase; /* file's optimization entries */ - long copt; /* count of file's optimization entries */ - unsigned short ipdFirst;/* start of procedures for this file */ - short cpd; /* count of procedures for this file */ - long iauxBase; /* file's auxiliary entries */ - long caux; /* count of file's auxiliary entries */ - long rfdBase; /* index into the file indirect table */ - long crfd; /* count file indirect entries */ - unsigned lang: 5; /* language for this file */ - unsigned fMerge : 1; /* whether this file can be merged */ - unsigned fReadin : 1; /* true if it was read in (not just created) */ - unsigned fBigendian : 1;/* if set, was compiled on big endian machine */ - /* aux's will be in compile host's sex */ - unsigned glevel : 2; /* level this file was compiled with */ - unsigned reserved : 22; /* reserved for future use */ - bfd_vma cbLineOffset; /* byte offset from header for this file ln's */ - bfd_vma cbLine; /* size of lines for this file */ - } FDR, *pFDR; -#define cbFDR sizeof(FDR) -#define fdNil ((pFDR)0) -#define ifdNil -1 -#define ifdTemp 0 -#define ilnNil -1 - - -/* - * Procedure Descriptor - * - * There is one of these for EVERY TEXT LABEL. - * If a procedure is in a file with full symbols, then isym - * will point to the PROC symbols, else it will point to the - * global symbol for the label. - */ - -typedef struct pdr { - bfd_vma adr; /* memory address of start of procedure */ - long isym; /* start of local symbol entries */ - long iline; /* start of line number entries*/ - long regmask; /* save register mask */ - long regoffset; /* save register offset */ - long iopt; /* start of optimization symbol entries*/ - long fregmask; /* save floating point register mask */ - long fregoffset; /* save floating point register offset */ - long frameoffset; /* frame size */ - short framereg; /* frame pointer register */ - short pcreg; /* offset or reg of return pc */ - long lnLow; /* lowest line in the procedure */ - long lnHigh; /* highest line in the procedure */ - bfd_vma cbLineOffset; /* byte offset for this procedure from the fd base */ - /* These fields are new for 64 bit ECOFF. */ - unsigned gp_prologue : 8; /* byte size of GP prologue */ - unsigned gp_used : 1; /* true if the procedure uses GP */ - unsigned reg_frame : 1; /* true if register frame procedure */ - unsigned prof : 1; /* true if compiled with -pg */ - unsigned reserved : 13; /* reserved: must be zero */ - unsigned localoff : 8; /* offset of local variables from vfp */ - } PDR, *pPDR; -#define cbPDR sizeof(PDR) -#define pdNil ((pPDR) 0) -#define ipdNil -1 - -/* - * The structure of the runtime procedure descriptor created by the loader - * for use by the static exception system. - */ -/* - * If 0'd out because exception_info chokes Visual C++ and because there - * don't seem to be any references to this structure elsewhere in gdb. - */ -#if 0 -typedef struct runtime_pdr { - bfd_vma adr; /* memory address of start of procedure */ - long regmask; /* save register mask */ - long regoffset; /* save register offset */ - long fregmask; /* save floating point register mask */ - long fregoffset; /* save floating point register offset */ - long frameoffset; /* frame size */ - short framereg; /* frame pointer register */ - short pcreg; /* offset or reg of return pc */ - long irpss; /* index into the runtime string table */ - long reserved; - struct exception_info *exception_info;/* pointer to exception array */ -} RPDR, *pRPDR; -#define cbRPDR sizeof(RPDR) -#define rpdNil ((pRPDR) 0) -#endif - -/* - * Line Numbers - * - * Line Numbers are segregated from the normal symbols because they - * are [1] smaller , [2] are of no interest to your - * average loader, and [3] are never needed in the middle of normal - * scanning and therefore slow things down. - * - * By definition, the first LINER for any given procedure will have - * the first line of a procedure and represent the first address. - */ - -typedef long LINER, *pLINER; -#define lineNil ((pLINER)0) -#define cbLINER sizeof(LINER) -#define ilineNil -1 - - - -/* - * The Symbol Structure (GFW, to those who Know!) - */ - -typedef struct { - long iss; /* index into String Space of name */ - bfd_vma value; /* value of symbol */ - unsigned st : 6; /* symbol type */ - unsigned sc : 5; /* storage class - text, data, etc */ - unsigned reserved : 1; /* reserved */ - unsigned index : 20; /* index into sym/aux table */ - } SYMR, *pSYMR; -#define symNil ((pSYMR)0) -#define cbSYMR sizeof(SYMR) -#define isymNil -1 -#define indexNil 0xfffff -#define issNil -1 -#define issNull 0 - - -/* The following converts a memory resident string to an iss. - * This hack is recognized in SbFIss, in sym.c of the debugger. - */ -#define IssFSb(sb) (0x80000000 | ((unsigned long)(sb))) - -/* E X T E R N A L S Y M B O L R E C O R D - * - * Same as the SYMR except it contains file context to determine where - * the index is. - */ -typedef struct ecoff_extr { - unsigned jmptbl:1; /* symbol is a jump table entry for shlibs */ - unsigned cobol_main:1; /* symbol is a cobol main procedure */ - unsigned weakext:1; /* symbol is weak external */ - unsigned reserved:13; /* reserved for future use */ - int ifd; /* where the iss and index fields point into */ - SYMR asym; /* symbol for the external */ - } EXTR, *pEXTR; -#define extNil ((pEXTR)0) -#define cbEXTR sizeof(EXTR) - - -/* A U X I L L A R Y T Y P E I N F O R M A T I O N */ - -/* - * Type Information Record - */ -typedef struct { - unsigned fBitfield : 1; /* set if bit width is specified */ - unsigned continued : 1; /* indicates additional TQ info in next AUX */ - unsigned bt : 6; /* basic type */ - unsigned tq4 : 4; - unsigned tq5 : 4; - /* ---- 16 bit boundary ---- */ - unsigned tq0 : 4; - unsigned tq1 : 4; /* 6 type qualifiers - tqPtr, etc. */ - unsigned tq2 : 4; - unsigned tq3 : 4; - } TIR, *pTIR; -#define cbTIR sizeof(TIR) -#define tiNil ((pTIR)0) -#define itqMax 6 - -/* - * Relative symbol record - * - * If the rfd field is 4095, the index field indexes into the global symbol - * table. - */ - -typedef struct { - unsigned rfd : 12; /* index into the file indirect table */ - unsigned index : 20; /* index int sym/aux/iss tables */ - } RNDXR, *pRNDXR; -#define cbRNDXR sizeof(RNDXR) -#define rndxNil ((pRNDXR)0) - -/* dense numbers or sometimes called block numbers are stored in this type, - * a rfd of 0xffffffff is an index into the global table. - */ -typedef struct { - unsigned long rfd; /* index into the file table */ - unsigned long index; /* index int sym/aux/iss tables */ - } DNR, *pDNR; -#define cbDNR sizeof(DNR) -#define dnNil ((pDNR)0) - - - -/* - * Auxillary information occurs only if needed. - * It ALWAYS occurs in this order when present. - - isymMac used by stProc only - TIR type info - TIR additional TQ info (if first TIR was not enough) - rndx if (bt == btStruct,btUnion,btEnum,btSet,btRange, - btTypedef): - rsym.index == iaux for btSet or btRange - else rsym.index == isym - dimLow btRange, btSet - dimMac btRange, btSet - rndx0 As many as there are tq arrays - dimLow0 - dimHigh0 - ... - rndxMax-1 - dimLowMax-1 - dimHighMax-1 - width in bits if (bit field), width in bits. - */ -#define cAuxMax (6 + (idimMax*3)) - -/* a union of all possible info in the AUX universe */ -typedef union { - TIR ti; /* type information record */ - RNDXR rndx; /* relative index into symbol table */ - long dnLow; /* low dimension */ - long dnHigh; /* high dimension */ - long isym; /* symbol table index (end of proc) */ - long iss; /* index into string space (not used) */ - long width; /* width for non-default sized struc fields */ - long count; /* count of ranges for variant arm */ - } AUXU, *pAUXU; -#define cbAUXU sizeof(AUXU) -#define auxNil ((pAUXU)0) -#define iauxNil -1 - - -/* - * Optimization symbols - * - * Optimization symbols contain some overlap information with the normal - * symbol table. In particular, the proc information - * is somewhat redundant but necessary to easily find the other information - * present. - * - * All of the offsets are relative to the beginning of the last otProc - */ - -typedef struct { - unsigned ot: 8; /* optimization type */ - unsigned value: 24; /* address where we are moving it to */ - RNDXR rndx; /* points to a symbol or opt entry */ - unsigned long offset; /* relative offset this occured */ - } OPTR, *pOPTR; -#define optNil ((pOPTR) 0) -#define cbOPTR sizeof(OPTR) -#define ioptNil -1 - -/* - * File Indirect - * - * When a symbol is referenced across files the following procedure is used: - * 1) use the file index to get the File indirect entry. - * 2) use the file indirect entry to get the File descriptor. - * 3) add the sym index to the base of that file's sym table - * - */ - -typedef long RFDT, *pRFDT; -#define cbRFDT sizeof(RFDT) -#define rfdNil -1 - -/* - * The file indirect table in the mips loader is known as an array of FITs. - * This is done to keep the code in the loader readable in the area where - * these tables are merged. Note this is only a name change. - */ -typedef long FIT, *pFIT; -#define cbFIT sizeof(FIT) -#define ifiNil -1 -#define fiNil ((pFIT) 0) - -#ifdef _LANGUAGE_PASCAL -#define ifdNil -1 -#define ilnNil -1 -#define ipdNil -1 -#define ilineNil -1 -#define isymNil -1 -#define indexNil 16#fffff -#define issNil -1 -#define issNull 0 -#define itqMax 6 -#define iauxNil -1 -#define ioptNil -1 -#define rfdNil -1 -#define ifiNil -1 -#endif /* _LANGUAGE_PASCAL */ - - -/* Dense numbers - * - * Rather than use file index, symbol index pairs to represent symbols - * and globals, we use dense number so that they can be easily embeded - * in intermediate code and the programs that process them can - * use direct access tabls instead of hash table (which would be - * necesary otherwise because of the sparse name space caused by - * file index, symbol index pairs. Dense number are represented - * by RNDXRs. - */ - -/* - * The following table defines the meaning of each SYM field as - * a function of the "st". (scD/B == scData OR scBss) - * - * Note: the value "isymMac" is used by symbols that have the concept - * of enclosing a block of related information. This value is the - * isym of the first symbol AFTER the end associated with the primary - * symbol. For example if a procedure was at isym==90 and had an - * isymMac==155, the associated end would be at isym==154, and the - * symbol at 155 would probably (although not necessarily) be the - * symbol for the next procedure. This allows rapid skipping over - * internal information of various sorts. "stEnd"s ALWAYS have the - * isym of the primary symbol that started the block. - * - -ST SC VALUE INDEX --------- ------ -------- ------ -stFile scText address isymMac -stLabel scText address --- -stGlobal scD/B address iaux -stStatic scD/B address iaux -stParam scAbs offset iaux -stLocal scAbs offset iaux -stProc scText address iaux (isymMac is first AUX) -stStaticProc scText address iaux (isymMac is first AUX) - -stMember scNil ordinal --- (if member of enum) - (mipsread thinks the case below has a bit, not byte, offset.) -stMember scNil byte offset iaux (if member of struct/union) -stMember scBits bit offset iaux (bit field spec) - -stBlock scText address isymMac (text block) - (the code seems to think that rather than scNil, we see scInfo for - the two cases below.) -stBlock scNil cb isymMac (struct/union member define) -stBlock scNil cMembers isymMac (enum member define) - - (New types added by SGI to simplify things:) -stStruct scInfo cb isymMac (struct type define) -stUnion scInfo cb isymMac (union type define) -stEnum scInfo cMembers isymMac (enum type define) - -stEnd scText address isymStart -stEnd scNil ------- isymStart (struct/union/enum) - -stTypedef scNil ------- iaux -stRegReloc sc??? value old register number -stForward sc??? new address isym to original symbol - -stConstant scInfo value --- (scalar) -stConstant scInfo iss --- (complex, e.g. string) - - * - */ -#endif diff --git a/include/coff/symconst.h b/include/coff/symconst.h deleted file mode 100644 index ac62ba2..0000000 --- a/include/coff/symconst.h +++ /dev/null @@ -1,184 +0,0 @@ -/* Declarations of constants for internal format of MIPS ECOFF symbols. - Originally contributed by MIPS Computer Systems and Third Eye Software. - Changes contributed by Cygnus Support are in the public domain. - - This file is just aggregated with the files that make up the GNU - release; it is not considered part of GAS, GDB, or other GNU - programs. */ - -/* - * |-----------------------------------------------------------| - * | Copyright (c) 1992, 1991, 1990 MIPS Computer Systems, Inc.| - * | MIPS Computer Systems, Inc. grants reproduction and use | - * | rights to all parties, PROVIDED that this comment is | - * | maintained in the copy. | - * |-----------------------------------------------------------| - */ - -/* (C) Copyright 1984 by Third Eye Software, Inc. - * - * Third Eye Software, Inc. grants reproduction and use rights to - * all parties, PROVIDED that this comment is maintained in the copy. - * - * Third Eye makes no claims about the applicability of this - * symbol table to a particular use. - */ - -/* glevels for field in FDR */ -#define GLEVEL_0 2 -#define GLEVEL_1 1 -#define GLEVEL_2 0 /* for upward compat reasons. */ -#define GLEVEL_3 3 - -/* magic number fo symheader */ -#define magicSym 0x7009 -/* The Alpha uses this value instead, for some reason. */ -#define magicSym2 0x1992 - -/* Language codes */ -#define langC 0 -#define langPascal 1 -#define langFortran 2 -#define langAssembler 3 /* one Assembley inst might map to many mach */ -#define langMachine 4 -#define langNil 5 -#define langAda 6 -#define langPl1 7 -#define langCobol 8 -#define langStdc 9 /* FIXME: Collides with SGI langCplusplus */ -#define langCplusplus 9 /* FIXME: Collides with langStdc */ -#define langCplusplusV2 10 /* SGI addition */ -#define langMax 11 /* maximum allowed 32 -- 5 bits */ - -/* The following are value definitions for the fields in the SYMR */ - -/* - * Storage Classes - */ - -#define scNil 0 -#define scText 1 /* text symbol */ -#define scData 2 /* initialized data symbol */ -#define scBss 3 /* un-initialized data symbol */ -#define scRegister 4 /* value of symbol is register number */ -#define scAbs 5 /* value of symbol is absolute */ -#define scUndefined 6 /* who knows? */ -#define scCdbLocal 7 /* variable's value is IN se->va.?? */ -#define scBits 8 /* this is a bit field */ -#define scCdbSystem 9 /* variable's value is IN CDB's address space */ -#define scDbx 9 /* overlap dbx internal use */ -#define scRegImage 10 /* register value saved on stack */ -#define scInfo 11 /* symbol contains debugger information */ -#define scUserStruct 12 /* address in struct user for current process */ -#define scSData 13 /* load time only small data */ -#define scSBss 14 /* load time only small common */ -#define scRData 15 /* load time only read only data */ -#define scVar 16 /* Var parameter (fortran,pascal) */ -#define scCommon 17 /* common variable */ -#define scSCommon 18 /* small common */ -#define scVarRegister 19 /* Var parameter in a register */ -#define scVariant 20 /* Variant record */ -#define scSUndefined 21 /* small undefined(external) data */ -#define scInit 22 /* .init section symbol */ -#define scBasedVar 23 /* Fortran or PL/1 ptr based var */ -#define scXData 24 /* exception handling data */ -#define scPData 25 /* Procedure section */ -#define scFini 26 /* .fini section */ -#define scRConst 27 /* .rconst section */ -#define scMax 32 - - -/* - * Symbol Types - */ - -#define stNil 0 /* Nuthin' special */ -#define stGlobal 1 /* external symbol */ -#define stStatic 2 /* static */ -#define stParam 3 /* procedure argument */ -#define stLocal 4 /* local variable */ -#define stLabel 5 /* label */ -#define stProc 6 /* " " Procedure */ -#define stBlock 7 /* beginnning of block */ -#define stEnd 8 /* end (of anything) */ -#define stMember 9 /* member (of anything - struct/union/enum */ -#define stTypedef 10 /* type definition */ -#define stFile 11 /* file name */ -#define stRegReloc 12 /* register relocation */ -#define stForward 13 /* forwarding address */ -#define stStaticProc 14 /* load time only static procs */ -#define stConstant 15 /* const */ -#define stStaParam 16 /* Fortran static parameters */ - /* These new symbol types have been recently added to SGI machines. */ -#define stStruct 26 /* Beginning of block defining a struct type */ -#define stUnion 27 /* Beginning of block defining a union type */ -#define stEnum 28 /* Beginning of block defining an enum type */ -#define stIndirect 34 /* Indirect type specification */ - /* Pseudo-symbols - internal to debugger */ -#define stStr 60 /* string */ -#define stNumber 61 /* pure number (ie. 4 NOR 2+2) */ -#define stExpr 62 /* 2+2 vs. 4 */ -#define stType 63 /* post-coersion SER */ -#define stMax 64 - -/* definitions for fields in TIR */ - -/* type qualifiers for ti.tq0 -> ti.(itqMax-1) */ -#define tqNil 0 /* bt is what you see */ -#define tqPtr 1 /* pointer */ -#define tqProc 2 /* procedure */ -#define tqArray 3 /* duh */ -#define tqFar 4 /* longer addressing - 8086/8 land */ -#define tqVol 5 /* volatile */ -#define tqConst 6 /* const */ -#define tqMax 8 - -/* basic types as seen in ti.bt */ -#define btNil 0 /* undefined (also, enum members) */ -#define btAdr 1 /* address - integer same size as pointer */ -#define btChar 2 /* character */ -#define btUChar 3 /* unsigned character */ -#define btShort 4 /* short */ -#define btUShort 5 /* unsigned short */ -#define btInt 6 /* int */ -#define btUInt 7 /* unsigned int */ -#define btLong 8 /* long */ -#define btULong 9 /* unsigned long */ -#define btFloat 10 /* float (real) */ -#define btDouble 11 /* Double (real) */ -#define btStruct 12 /* Structure (Record) */ -#define btUnion 13 /* Union (variant) */ -#define btEnum 14 /* Enumerated */ -#define btTypedef 15 /* defined via a typedef, isymRef points */ -#define btRange 16 /* subrange of int */ -#define btSet 17 /* pascal sets */ -#define btComplex 18 /* fortran complex */ -#define btDComplex 19 /* fortran double complex */ -#define btIndirect 20 /* forward or unnamed typedef */ -#define btFixedDec 21 /* Fixed Decimal */ -#define btFloatDec 22 /* Float Decimal */ -#define btString 23 /* Varying Length Character String */ -#define btBit 24 /* Aligned Bit String */ -#define btPicture 25 /* Picture */ -#define btVoid 26 /* void */ -#define btLongLong 27 /* long long */ -#define btULongLong 28 /* unsigned long long */ -#define btLong64 30 /* long (64-bit) */ -#define btULong64 31 /* unsigned long (64-bit) */ -#define btLongLong64 32 /* long long (64-bit) */ -#define btULongLong64 33 /* unsigned long long (64-bit) */ -#define btAdr64 34 /* address (64-bit) */ -#define btInt64 35 /* int (64-bit) */ -#define btUInt64 36 /* unsigned int (64-bit) */ -#define btMax 64 - -#if (_MFG == _MIPS) -/* optimization type codes */ -#define otNil 0 -#define otReg 1 /* move var to reg */ -#define otBlock 2 /* begin basic block */ -#define otProc 3 /* procedure */ -#define otInline 4 /* inline procedure */ -#define otEnd 5 /* whatever you started */ -#define otMax 6 /* KEEP UP TO DATE */ -#endif /* (_MFG == _MIPS) */ diff --git a/include/coff/ti.h b/include/coff/ti.h deleted file mode 100644 index d54b2ed..0000000 --- a/include/coff/ti.h +++ /dev/null @@ -1,561 +0,0 @@ -/* COFF information for TI COFF support. Definitions in this file should be - customized in a target-specific file, and then this file included (see - tic54x.h for an example). - - Copyright 2000, 2001, 2002, 2003, 2005, 2008, 2009, 2010 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef COFF_TI_H -#define COFF_TI_H - -/* Note "coff/external.h is not used because TI adds extra fields to the structures. */ - -/********************** FILE HEADER **********************/ - -struct external_filehdr - { - char f_magic[2]; /* magic number */ - char f_nscns[2]; /* number of sections */ - char f_timdat[4]; /* time & date stamp */ - char f_symptr[4]; /* file pointer to symtab */ - char f_nsyms[4]; /* number of symtab entries */ - char f_opthdr[2]; /* sizeof(optional hdr) */ - char f_flags[2]; /* flags */ - char f_target_id[2]; /* magic no. (TI COFF-specific) */ - }; - -/* COFF0 has magic number in f_magic, and omits f_target_id from the file - header; for later versions, f_magic is 0xC1 for COFF1 and 0xC2 for COFF2 - and the target-specific magic number is found in f_target_id */ - -#define TICOFF0MAGIC TI_TARGET_ID -#define TICOFF1MAGIC 0x00C1 -#define TICOFF2MAGIC 0x00C2 -#define TICOFF_AOUT_MAGIC 0x0108 /* magic number in optional header */ -#define TICOFF 1 /* customize coffcode.h */ - -/* The target_id field changes depending on the particular CPU target */ -/* for COFF0, the target id appeared in f_magic, where COFFX magic is now */ -#ifndef TI_TARGET_ID -#error "TI_TARGET_ID needs to be defined for your CPU" -#endif - -/* Which bfd_arch to use... */ -#ifndef TICOFF_TARGET_ARCH -#error "TICOFF_TARGET_ARCH needs to be defined for your CPU" -#endif - -#ifndef TICOFF_TARGET_MACHINE_GET -#define TICOFF_TARGET_MACHINE_GET(FLAGS) 0 -#endif - -#ifndef TICOFF_TARGET_MACHINE_SET -#define TICOFF_TARGET_MACHINE_SET(FLAGSP, MACHINE) -#endif - -/* Default to COFF2 for file output */ -#ifndef TICOFF_DEFAULT_MAGIC -#define TICOFF_DEFAULT_MAGIC TICOFF2MAGIC -#endif - -/* This value is made available in the rare case where a bfd is unavailable */ -#ifndef OCTETS_PER_BYTE_POWER -#error "OCTETS_PER_BYTE_POWER not defined for this CPU" -#else -#define OCTETS_PER_BYTE (1<>8)&0xF) - -#define COFF0_P(ABFD) (bfd_coff_filhsz(ABFD) == FILHSZ_V0) -#define COFF2_P(ABFD) (bfd_coff_scnhsz(ABFD) != SCNHSZ_V01) - -#define COFF0_BADMAG(x) ((x).f_magic != TICOFF0MAGIC) -#define COFF1_BADMAG(x) ((x).f_magic != TICOFF1MAGIC || (x).f_target_id != TI_TARGET_ID) -#define COFF2_BADMAG(x) ((x).f_magic != TICOFF2MAGIC || (x).f_target_id != TI_TARGET_ID) - -/* we need to read/write an extra field in the coff file header */ -#ifndef COFF_ADJUST_FILEHDR_IN_POST -#define COFF_ADJUST_FILEHDR_IN_POST(abfd, src, dst) \ - do \ - { \ - if (!COFF0_P (abfd)) \ - ((struct internal_filehdr *)(dst))->f_target_id = \ - H_GET_16 (abfd, ((FILHDR *)(src))->f_target_id); \ - } \ - while (0) -#endif - -#ifndef COFF_ADJUST_FILEHDR_OUT_POST -#define COFF_ADJUST_FILEHDR_OUT_POST(abfd, src, dst) \ - do \ - { \ - if (!COFF0_P (abfd)) \ - H_PUT_16 (abfd, ((struct internal_filehdr *)(src))->f_target_id, \ - ((FILHDR *)(dst))->f_target_id); \ - } \ - while (0) -#endif - -#define FILHDR struct external_filehdr -#define FILHSZ 22 -#define FILHSZ_V0 20 /* COFF0 omits target_id field */ - -/* File header flags */ -#define F_RELFLG (0x0001) -#define F_EXEC (0x0002) -#define F_LNNO (0x0004) -#define F_VERS (0x0010) /* TMS320C4x code */ -/* F_LSYMS needs to be redefined in your source file */ -#define F_LSYMS_TICOFF (0x0010) /* normal COFF is 0x8 */ - -#define F_10 0x00 /* file built for TMS320C1x devices */ -#define F_20 0x10 /* file built for TMS320C2x devices */ -#define F_25 0x20 /* file built for TMS320C2x/C5x devices */ -#define F_LENDIAN 0x0100 /* 16 bits/word, LSB first */ -#define F_SYMMERGE 0x1000 /* duplicate symbols were removed */ - -/********************** OPTIONAL HEADER **********************/ - - -typedef struct -{ - char magic[2]; /* type of file (0x108) */ - char vstamp[2]; /* version stamp */ - char tsize[4]; /* text size in bytes, padded to FW bdry*/ - char dsize[4]; /* initialized data " " */ - char bsize[4]; /* uninitialized data " " */ - char entry[4]; /* entry pt. */ - char text_start[4]; /* base of text used for this file */ - char data_start[4]; /* base of data used for this file */ -} -AOUTHDR; - - -#define AOUTHDRSZ 28 -#define AOUTSZ 28 - - -/********************** SECTION HEADER **********************/ -/* COFF0, COFF1 */ -struct external_scnhdr_v01 { - char s_name[8]; /* section name */ - char s_paddr[4]; /* physical address, aliased s_nlib */ - char s_vaddr[4]; /* virtual address */ - char s_size[4]; /* section size (in WORDS) */ - char s_scnptr[4]; /* file ptr to raw data for section */ - char s_relptr[4]; /* file ptr to relocation */ - char s_lnnoptr[4]; /* file ptr to line numbers */ - char s_nreloc[2]; /* number of relocation entries */ - char s_nlnno[2]; /* number of line number entries*/ - char s_flags[2]; /* flags */ - char s_reserved[1]; /* reserved */ - char s_page[1]; /* section page number (LOAD) */ -}; - -/* COFF2 */ -struct external_scnhdr { - char s_name[8]; /* section name */ - char s_paddr[4]; /* physical address, aliased s_nlib */ - char s_vaddr[4]; /* virtual address */ - char s_size[4]; /* section size (in WORDS) */ - char s_scnptr[4]; /* file ptr to raw data for section */ - char s_relptr[4]; /* file ptr to relocation */ - char s_lnnoptr[4]; /* file ptr to line numbers */ - char s_nreloc[4]; /* number of relocation entries */ - char s_nlnno[4]; /* number of line number entries*/ - char s_flags[4]; /* flags */ - char s_reserved[2]; /* reserved */ - char s_page[2]; /* section page number (LOAD) */ -}; - -/* - * Special section flags - */ - -/* TI COFF defines these flags; - STYP_CLINK: the section should be excluded from the final - linker output if there are no references found to any symbol in the section - STYP_BLOCK: the section should be blocked, i.e. if the section would cross - a page boundary, it is started at a page boundary instead. - TI COFF puts the section alignment power of two in the section flags - e.g. 2**N is alignment, flags |= (N & 0xF) << 8 -*/ -#define STYP_CLINK (0x4000) -#define STYP_BLOCK (0x1000) -#define STYP_ALIGN (0x0F00) /* TI COFF stores section alignment here */ - -#define SCNHDR_V01 struct external_scnhdr_v01 -#define SCNHDR struct external_scnhdr -#define SCNHSZ_V01 40 /* for v0 and v1 */ -#define SCNHSZ 48 - -/* COFF2 changes the offsets and sizes of these fields - Assume we're dealing with the COFF2 scnhdr structure, and adjust - accordingly. Note: The GNU C versions of some of these macros - are necessary in order to avoid compile time warnings triggered - gcc's array bounds checking. The PUT_SCNHDR_PAGE macro also has - the advantage on not evaluating LOC twice. */ - -#define GET_SCNHDR_NRELOC(ABFD, LOC) \ - (COFF2_P (ABFD) ? H_GET_32 (ABFD, LOC) : H_GET_16 (ABFD, LOC)) -#define PUT_SCNHDR_NRELOC(ABFD, VAL, LOC) \ - (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, LOC) : H_PUT_16 (ABFD, VAL, LOC)) -#ifdef __GNUC__ -#define GET_SCNHDR_NLNNO(ABFD, LOC) \ - ({ \ - int nlnno; \ - char * ptr = (LOC); \ - if (COFF2_P (ABFD)) \ - nlnno = H_GET_32 (ABFD, ptr); \ - else \ - nlnno = H_GET_16 (ABFD, ptr - 2); \ - nlnno; \ - }) -#define PUT_SCNHDR_NLNNO(ABFD, VAL, LOC) \ - do \ - { \ - char * ptr = (LOC); \ - if (COFF2_P (ABFD)) \ - H_PUT_32 (ABFD, VAL, ptr); \ - else \ - H_PUT_16 (ABFD, VAL, ptr - 2); \ - } \ - while (0) -#define GET_SCNHDR_FLAGS(ABFD, LOC) \ - ({ \ - int flags; \ - char * ptr = (LOC); \ - if (COFF2_P (ABFD)) \ - flags = H_GET_32 (ABFD, ptr); \ - else \ - flags = H_GET_16 (ABFD, ptr - 4); \ - flags; \ - }) -#define PUT_SCNHDR_FLAGS(ABFD, VAL, LOC) \ - do \ - { \ - char * ptr = (LOC); \ - if (COFF2_P (ABFD)) \ - H_PUT_32 (ABFD, VAL, ptr); \ - else \ - H_PUT_16 (ABFD, VAL, ptr - 4); \ - } \ - while (0) -#define GET_SCNHDR_PAGE(ABFD, LOC) \ - ({ \ - unsigned page; \ - char * ptr = (LOC); \ - if (COFF2_P (ABFD)) \ - page = H_GET_16 (ABFD, ptr); \ - else \ - page = (unsigned) H_GET_8 (ABFD, ptr - 7); \ - page; \ - }) -/* On output, make sure that the "reserved" field is zero. */ -#define PUT_SCNHDR_PAGE(ABFD, VAL, LOC) \ - do \ - { \ - char * ptr = (LOC); \ - if (COFF2_P (ABFD)) \ - H_PUT_16 (ABFD, VAL, ptr); \ - else \ - { \ - H_PUT_8 (ABFD, VAL, ptr - 7); \ - H_PUT_8 (ABFD, 0, ptr - 8); \ - } \ - } \ - while (0) -#else -#define GET_SCNHDR_NLNNO(ABFD, LOC) \ - (COFF2_P (ABFD) ? H_GET_32 (ABFD, LOC) : H_GET_16 (ABFD, (LOC) - 2)) -#define PUT_SCNHDR_NLNNO(ABFD, VAL, LOC) \ - (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, LOC) : H_PUT_16 (ABFD, VAL, (LOC) - 2)) -#define GET_SCNHDR_FLAGS(ABFD, LOC) \ - (COFF2_P (ABFD) ? H_GET_32 (ABFD, LOC) : H_GET_16 (ABFD, (LOC) - 4)) -#define PUT_SCNHDR_FLAGS(ABFD, VAL, LOC) \ - (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, LOC) : H_PUT_16 (ABFD, VAL, (LOC) - 4)) -#define GET_SCNHDR_PAGE(ABFD, LOC) \ - (COFF2_P (ABFD) ? H_GET_16 (ABFD, LOC) : (unsigned) H_GET_8 (ABFD, (LOC) - 7)) -/* On output, make sure that the "reserved" field is zero. */ -#define PUT_SCNHDR_PAGE(ABFD, VAL, LOC) \ - (COFF2_P (ABFD) \ - ? H_PUT_16 (ABFD, VAL, LOC) \ - : H_PUT_8 (ABFD, VAL, (LOC) - 7), H_PUT_8 (ABFD, 0, (LOC) - 8)) -#endif - - -/* TI COFF stores section size as number of bytes (address units, not octets), - so adjust to be number of octets, which is what BFD expects */ -#define GET_SCNHDR_SIZE(ABFD, SZP) \ - (H_GET_32 (ABFD, SZP) * bfd_octets_per_byte (ABFD)) -#define PUT_SCNHDR_SIZE(ABFD, SZ, SZP) \ - H_PUT_32 (ABFD, (SZ) / bfd_octets_per_byte (ABFD), SZP) - -#define COFF_ADJUST_SCNHDR_IN_POST(ABFD, EXT, INT) \ - do \ - { \ - ((struct internal_scnhdr *)(INT))->s_page = \ - GET_SCNHDR_PAGE (ABFD, ((SCNHDR *)(EXT))->s_page); \ - } \ - while (0) - -/* The entire scnhdr may not be assigned. - Ensure that everything is initialized. */ -#define COFF_ADJUST_SCNHDR_OUT_PRE(ABFD, INT, EXT) \ - do \ - { \ - memset((EXT), 0, sizeof (SCNHDR)); \ - } \ - while (0) - -/* The line number and reloc overflow checking in coff_swap_scnhdr_out in - coffswap.h doesn't use PUT_X for s_nlnno and s_nreloc. - Due to different sized v0/v1/v2 section headers, we have to re-write these - fields. - */ -#define COFF_ADJUST_SCNHDR_OUT_POST(ABFD, INT, EXT) \ - do \ - { \ - PUT_SCNHDR_NLNNO (ABFD, ((struct internal_scnhdr *)(INT))->s_nlnno, \ - ((SCNHDR *)(EXT))->s_nlnno); \ - PUT_SCNHDR_NRELOC (ABFD, ((struct internal_scnhdr *)(INT))->s_nreloc,\ - ((SCNHDR *)(EXT))->s_nreloc); \ - PUT_SCNHDR_FLAGS (ABFD, ((struct internal_scnhdr *)(INT))->s_flags, \ - ((SCNHDR *)(EXT))->s_flags); \ - PUT_SCNHDR_PAGE (ABFD, ((struct internal_scnhdr *)(INT))->s_page, \ - ((SCNHDR *)(EXT))->s_page); \ - } \ - while (0) - -/* - * names of "special" sections - */ -#define _TEXT ".text" -#define _DATA ".data" -#define _BSS ".bss" -#define _CINIT ".cinit" /* initialized C data */ -#define _SCONST ".const" /* constants */ -#define _SWITCH ".switch" /* switch tables */ -#define _STACK ".stack" /* C stack */ -#define _SYSMEM ".sysmem" /* used for malloc et al. syscalls */ - -/********************** LINE NUMBERS **********************/ - -/* 1 line number entry for every "breakpointable" source line in a section. - * Line numbers are grouped on a per function basis; first entry in a function - * grouping will have l_lnno = 0 and in place of physical address will be the - * symbol table index of the function name. - */ -struct external_lineno { - union { - char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/ - char l_paddr[4]; /* (physical) address of line number */ - } l_addr; - char l_lnno[2]; /* line number */ -}; - -#define LINENO struct external_lineno -#define LINESZ 6 - - -/********************** SYMBOLS **********************/ - -/* NOTE: this is what a local label looks like in assembly source; what it - looks like in COFF output is undefined */ -#define TICOFF_LOCAL_LABEL_P(NAME) \ -((NAME[0] == '$' && NAME[1] >= '0' && NAME[1] <= '9' && NAME[2] == '\0') \ - || NAME[strlen(NAME)-1] == '?') - -#define E_SYMNMLEN 8 /* # characters in a symbol name */ -#define E_FILNMLEN 14 /* # characters in a file name */ -#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */ - -struct external_syment -{ - union { - char e_name[E_SYMNMLEN]; - struct { - char e_zeroes[4]; - char e_offset[4]; - } e; - } e; - char e_value[4]; - char e_scnum[2]; - char e_type[2]; - char e_sclass[1]; - char e_numaux[1]; -}; - - -#define N_BTMASK (017) -#define N_TMASK (060) -#define N_BTSHFT (4) -#define N_TSHIFT (2) - - -union external_auxent { - struct { - char x_tagndx[4]; /* str, un, or enum tag indx */ - union { - struct { - char x_lnno[2]; /* declaration line number */ - char x_size[2]; /* str/union/array size */ - } x_lnsz; - char x_fsize[4]; /* size of function */ - } x_misc; - union { - struct { /* if ISFCN, tag, or .bb */ - char x_lnnoptr[4]; /* ptr to fcn line # */ - char x_endndx[4]; /* entry ndx past block end */ - } x_fcn; - struct { /* if ISARY, up to 4 dimen. */ - char x_dimen[E_DIMNUM][2]; - } x_ary; - } x_fcnary; - char x_tvndx[2]; /* tv index */ - } x_sym; - - union { - char x_fname[E_FILNMLEN]; - struct { - char x_zeroes[4]; - char x_offset[4]; - } x_n; - } x_file; - - struct { - char x_scnlen[4]; /* section length */ - char x_nreloc[2]; /* # relocation entries */ - char x_nlinno[2]; /* # line numbers */ - } x_scn; - - struct { - char x_tvfill[4]; /* tv fill value */ - char x_tvlen[2]; /* length of .tv */ - char x_tvran[2][2]; /* tv range */ - } x_tv; /* info about .tv section (in auxent of symbol .tv)) */ - - -}; - -#define SYMENT struct external_syment -#define SYMESZ 18 -#define AUXENT union external_auxent -#define AUXESZ 18 - -/* section lengths are in target bytes (not host bytes) */ -#define GET_SCN_SCNLEN(ABFD, EXT) \ - (H_GET_32 (ABFD, (EXT)->x_scn.x_scnlen) * bfd_octets_per_byte (ABFD)) -#define PUT_SCN_SCNLEN(ABFD, INT, EXT) \ - H_PUT_32 (ABFD, (INT) / bfd_octets_per_byte (ABFD), (EXT)->x_scn.x_scnlen) - -/* lnsz size is in bits in COFF file, in bytes in BFD */ -#define GET_LNSZ_SIZE(abfd, ext) \ - (H_GET_16 (abfd, ext->x_sym.x_misc.x_lnsz.x_size) / (in_class != C_FIELD ? 8 : 1)) - -#define PUT_LNSZ_SIZE(abfd, in, ext) \ - H_PUT_16 (abfd, ((in_class != C_FIELD) ? (in) * 8 : (in)), \ - ext->x_sym.x_misc.x_lnsz.x_size) - -/* TI COFF stores offsets for MOS and MOU in bits; BFD expects bytes - Also put the load page flag of the section into the symbol value if it's an - address. */ -#ifndef NEEDS_PAGE -#define NEEDS_PAGE(X) 0 -#define PAGE_MASK 0 -#endif -#define COFF_ADJUST_SYM_IN_POST(ABFD, EXT, INT) \ - do \ - { \ - struct internal_syment *dst = (struct internal_syment *)(INT); \ - if (dst->n_sclass == C_MOS || dst->n_sclass == C_MOU) \ - dst->n_value /= 8; \ - else if (NEEDS_PAGE (dst->n_sclass)) { \ - asection *scn = coff_section_from_bfd_index (abfd, dst->n_scnum); \ - dst->n_value |= (scn->lma & PAGE_MASK); \ - } \ - } \ - while (0) - -#define COFF_ADJUST_SYM_OUT_POST(ABFD, INT, EXT) \ - do \ - { \ - struct internal_syment *src = (struct internal_syment *)(INT); \ - SYMENT *dst = (SYMENT *)(EXT); \ - if (src->n_sclass == C_MOU || src->n_sclass == C_MOS) \ - H_PUT_32 (abfd, src->n_value * 8, dst->e_value); \ - else if (NEEDS_PAGE (src->n_sclass)) { \ - H_PUT_32 (abfd, src->n_value &= ~PAGE_MASK, dst->e_value); \ - } \ - } \ - while (0) - -/* Detect section-relative absolute symbols so they get flagged with a sym - index of -1. -*/ -#define SECTION_RELATIVE_ABSOLUTE_SYMBOL_P(RELOC, SECT) \ - ((*(RELOC)->sym_ptr_ptr)->section->output_section == (SECT) \ - && (RELOC)->howto->name[0] == 'A') - -/********************** RELOCATION DIRECTIVES **********************/ - -struct external_reloc_v0 -{ - char r_vaddr[4]; - char r_symndx[2]; - char r_reserved[2]; - char r_type[2]; -}; - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_reserved[2]; /* extended pmad byte for COFF2 */ - char r_type[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ_V0 10 /* FIXME -- coffcode.h needs fixing */ -#define RELSZ 12 /* for COFF1/2 */ - -#define SWAP_OUT_RELOC_EXTRA(abfd, src, dst) \ - do memset (dst->r_reserved, 0, sizeof (dst->r_reserved)); while (0) - -/* various relocation types. */ -#define R_ABS 0x0000 /* no relocation */ -#define R_REL13 0x002A /* 13-bit direct reference (???) */ -#define R_PARTLS7 0x0028 /* 7 LSBs of an address */ -#define R_PARTMS9 0x0029 /* 9MSBs of an address */ -#define R_EXTWORD 0x002B /* 23-bit direct reference */ -#define R_EXTWORD16 0x002C /* 16-bit direct reference to 23-bit addr*/ -#define R_EXTWORDMS7 0x002D /* upper 7 bits of 23-bit address */ - -#endif /* COFF_TI_H */ diff --git a/include/coff/tic30.h b/include/coff/tic30.h deleted file mode 100644 index 4f7776a..0000000 --- a/include/coff/tic30.h +++ /dev/null @@ -1,51 +0,0 @@ -/* coff information for Texas Instruments TMS320C3X - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define L_LNNO_SIZE 4 -#include "coff/external.h" - -#define TIC30MAGIC 0xC000 - -#define TIC30BADMAG(x) (((x).f_magic != TIC30MAGIC)) - -/********************** RELOCATION DIRECTIVES **********************/ - -/* The external reloc has an offset field, because some of the reloc - types on the z8k don't have room in the instruction for the entire - offset - eg with segments */ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_offset[4]; - char r_type[2]; - char r_stuff[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 16 - -/* TMS320C30 relocation types. */ - -#define R_TIC30_ABS16 0x100 /* 16 bit absolute. */ -#define R_TIC30_ABS24 0x101 /* 24 bit absolute. */ -#define R_TIC30_ABS32 0x102 /* 32 bit absolute. */ -#define R_TIC30_LDP 0x103 /* LDP bits 23-16 to 7-0. */ -#define R_TIC30_PC16 0x104 /* 16 bit pc relative. */ diff --git a/include/coff/tic4x.h b/include/coff/tic4x.h deleted file mode 100644 index 1eb3e26..0000000 --- a/include/coff/tic4x.h +++ /dev/null @@ -1,47 +0,0 @@ -/* TI COFF information for Texas Instruments TMS320C4X/C3X. - This file customizes the settings in coff/ti.h. - - Copyright 2002, 2003, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef COFF_TIC4X_H -#define COFF_TIC4X_H - -#define TIC4X_TARGET_ID 0x0093 -/* Octets per byte, as a power of two. */ -#define TI_TARGET_ID TIC4X_TARGET_ID -#define OCTETS_PER_BYTE_POWER 2 -/* Add to howto to get absolute/sect-relative version. */ -#define HOWTO_BANK 6 -#define TICOFF_TARGET_ARCH bfd_arch_tic4x -/* We use COFF2. */ -#define TICOFF_DEFAULT_MAGIC TICOFF2MAGIC - -#define TICOFF_TARGET_MACHINE_GET(FLAGS) \ - (((FLAGS) & F_VERS) ? bfd_mach_tic4x : bfd_mach_tic3x) - -#define TICOFF_TARGET_MACHINE_SET(FLAGSP, MACHINE) \ - do \ - { \ - if ((MACHINE) == bfd_mach_tic4x) \ - *(FLAGSP) |= F_VERS; \ - } \ - while (0) - -#include "coff/ti.h" - -#endif /* COFF_TIC4X_H */ diff --git a/include/coff/tic54x.h b/include/coff/tic54x.h deleted file mode 100644 index c61f1f2..0000000 --- a/include/coff/tic54x.h +++ /dev/null @@ -1,60 +0,0 @@ -/* TI COFF information for Texas Instruments TMS320C54X. - This file customizes the settings in coff/ti.h. - - Copyright 2000, 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef COFF_TIC54X_H -#define COFF_TIC54X_H - -#define TIC54X_TARGET_ID 0x98 -#define TIC54XALGMAGIC 0x009B /* c54x algebraic assembler output */ -#define TIC5X_TARGET_ID 0x92 -#define TI_TARGET_ID TIC54X_TARGET_ID -#define OCTETS_PER_BYTE_POWER 1 /* octets per byte, as a power of two */ -#define HOWTO_BANK 6 /* add to howto to get absolute/sect-relative version */ -#define TICOFF_TARGET_ARCH bfd_arch_tic54x -#define TICOFF_DEFAULT_MAGIC TICOFF1MAGIC /* we use COFF1 for compatibility */ - -/* Page macros - - The first GDB port requires flags in its remote memory access commands to - distinguish between data/prog space. Hopefully we can make this go away - eventually. Stuff the page in the upper bits of a 32-bit address, since - the c5x family only uses 16 or 23 bits. - - c2x, c5x and most c54x devices have 16-bit addresses, but the c548 has - 23-bit program addresses. Make sure the page flags don't interfere. - These flags are used by GDB to identify the destination page for - addresses. -*/ - -/* Recognized load pages (by common convention). */ -#define PG_PROG 0x0 /* PROG page */ -#define PG_DATA 0x1 /* DATA page */ -#define PG_IO 0x2 /* I/O page */ - -/** Indicate whether the given storage class requires a page flag. */ -#define NEEDS_PAGE(X) ((X)==C_EXT) -#define PAGE_MASK 0xFF000000 -#define ADDR_MASK 0x00FFFFFF -#define PG_TO_FLAG(p) (((unsigned long)(p) & 0xFF) << 24) -#define FLAG_TO_PG(f) (((f) >> 24) & 0xFF) - -#include "coff/ti.h" - -#endif /* COFF_TIC54X_H */ diff --git a/include/coff/tic80.h b/include/coff/tic80.h deleted file mode 100644 index 44f873e..0000000 --- a/include/coff/tic80.h +++ /dev/null @@ -1,123 +0,0 @@ -/* coff information for TI TMS320C80 (MVP) - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define DO_NOT_DEFINE_FILHDR -#define DO_NOT_DEFINE_SCNHDR -#define L_LNNO_SIZE 2 -#include "coff/external.h" - -/********************** FILE HEADER **********************/ - -struct external_filehdr - { - char f_magic[2]; /* magic number */ - char f_nscns[2]; /* number of sections */ - char f_timdat[4]; /* time & date stamp */ - char f_symptr[4]; /* file pointer to symtab */ - char f_nsyms[4]; /* number of symtab entries */ - char f_opthdr[2]; /* sizeof(optional hdr) */ - char f_flags[2]; /* flags */ - char f_target_id[2];/* target id (TIc80 specific) */ -}; - -#define TIC80_ARCH_MAGIC 0x0C1 /* Goes in the file header magic number field */ -#define TIC80_TARGET_ID 0x95 /* Goes in the target id field */ - -#define TIC80BADMAG(x) ((x).f_magic != TIC80_ARCH_MAGIC) - -#define FILHDR struct external_filehdr -#define FILHSZ 22 - -#define TIC80_AOUTHDR_MAGIC 0x108 /* Goes in the optional file header magic number field */ - -/********************** SECTION HEADER **********************/ - -struct external_scnhdr -{ - char s_name[8]; /* section name */ - char s_paddr[4]; /* physical address, aliased s_nlib */ - char s_vaddr[4]; /* virtual address */ - char s_size[4]; /* section size */ - char s_scnptr[4]; /* file ptr to raw data for section */ - char s_relptr[4]; /* file ptr to relocation */ - char s_lnnoptr[4]; /* file ptr to line numbers */ - char s_nreloc[2]; /* number of relocation entries */ - char s_nlnno[2]; /* number of line number entries*/ - char s_flags[2]; /* flags */ - char s_reserved[1]; /* reserved (TIc80 specific) */ - char s_mempage[1]; /* memory page number (TIc80) */ -}; - -/* Names of "special" sections. */ -#define _TEXT ".text" -#define _DATA ".data" -#define _BSS ".bss" -#define _CINIT ".cinit" -#define _CONST ".const" -#define _SWITCH ".switch" -#define _STACK ".stack" -#define _SYSMEM ".sysmem" - -#define SCNHDR struct external_scnhdr -#define SCNHSZ 40 - -/* FIXME - need to correlate external_auxent with - TIc80 Code Generation Tools User's Guide, CG:A-25 */ - -/********************** RELOCATION DIRECTIVES **********************/ - -/* The external reloc has an offset field, because some of the reloc - types on the h8 don't have room in the instruction for the entire - offset - eg the strange jump and high page addressing modes. */ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_reserved[2]; - char r_type[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 12 - -/* TIc80 relocation types. */ - -#define R_ABS 0x00 /* Absolute address - no relocation */ -#define R_RELLONGX 0x11 /* PP: 32 bits, direct */ -#define R_PPBASE 0x34 /* PP: Global base address type */ -#define R_PPLBASE 0x35 /* PP: Local base address type */ -#define R_PP15 0x38 /* PP: Global 15 bit offset */ -#define R_PP15W 0x39 /* PP: Global 15 bit offset divided by 4 */ -#define R_PP15H 0x3A /* PP: Global 15 bit offset divided by 2 */ -#define R_PP16B 0x3B /* PP: Global 16 bit offset for bytes */ -#define R_PPL15 0x3C /* PP: Local 15 bit offset */ -#define R_PPL15W 0x3D /* PP: Local 15 bit offset divided by 4 */ -#define R_PPL15H 0x3E /* PP: Local 15 bit offset divided by 2 */ -#define R_PPL16B 0x3F /* PP: Local 16 bit offset for bytes */ -#define R_PPN15 0x40 /* PP: Global 15 bit negative offset */ -#define R_PPN15W 0x41 /* PP: Global 15 bit negative offset divided by 4 */ -#define R_PPN15H 0x42 /* PP: Global 15 bit negative offset divided by 2 */ -#define R_PPN16B 0x43 /* PP: Global 16 bit negative byte offset */ -#define R_PPLN15 0x44 /* PP: Local 15 bit negative offset */ -#define R_PPLN15W 0x45 /* PP: Local 15 bit negative offset divided by 4 */ -#define R_PPLN15H 0x46 /* PP: Local 15 bit negative offset divided by 2 */ -#define R_PPLN16B 0x47 /* PP: Local 16 bit negative byte offset */ -#define R_MPPCR15W 0x4E /* MP: 15 bit PC-relative divided by 4 */ -#define R_MPPCR 0x4F /* MP: 32 bit PC-relative divided by 4 */ diff --git a/include/coff/w65.h b/include/coff/w65.h deleted file mode 100644 index 31d9609..0000000 --- a/include/coff/w65.h +++ /dev/null @@ -1,47 +0,0 @@ -/* coff information for WDC 65816 - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define L_LNNO_SIZE 4 -#include "coff/external.h" - -#define W65MAGIC 0x6500 - -#define W65BADMAG(x) (((x).f_magic != W65MAGIC)) - -/********************** RELOCATION DIRECTIVES **********************/ - -/* The external reloc has an offset field, because some of the reloc - types on the w65 don't have room in the instruction for the entire - offset - eg the strange jump and high page addressing modes */ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_offset[4]; - char r_type[2]; - char r_stuff[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 16 - - - - diff --git a/include/coff/we32k.h b/include/coff/we32k.h deleted file mode 100644 index 3787dd2..0000000 --- a/include/coff/we32k.h +++ /dev/null @@ -1,62 +0,0 @@ -/* coff information for we32k - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define L_LNNO_SIZE 2 -#include "coff/external.h" - -/* Bits for f_flags: - F_RELFLG relocation info stripped from file - F_EXEC file is executable (no unresolved external references) - F_LNNO line numbers stripped from file - F_LSYMS local symbols stripped from file - F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax). */ - -#define F_RELFLG (0x0001) -#define F_EXEC (0x0002) -#define F_LNNO (0x0004) -#define F_LSYMS (0x0008) -#define F_BM32B (0020000) -#define F_BM32MAU (0040000) - -#define WE32KMAGIC 0x170 /* we32k sans transfer vector */ -#define FBOMAGIC 0x170 /* we32k sans transfer vector */ -#define MTVMAGIC 0x171 /* we32k with transfer vector */ -#define RBOMAGIC 0x172 /* reserved */ -#define WE32KBADMAG(x) ( ((x).f_magic != WE32KMAGIC) \ - && ((x).f_magic != FBOMAGIC) \ - && ((x).f_magic != RBOMAGIC) \ - && ((x).f_magic != MTVMAGIC)) - -/* More names of "special" sections. */ -#define _TV ".tv" -#define _INIT ".init" -#define _FINI ".fini" - -/********************** RELOCATION DIRECTIVES **********************/ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 10 - diff --git a/include/coff/x86_64.h b/include/coff/x86_64.h deleted file mode 100644 index fcd44c8..0000000 --- a/include/coff/x86_64.h +++ /dev/null @@ -1,57 +0,0 @@ -/* COFF information for AMD 64. - Copyright 2006, 2009, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. - - Written by Kai Tietz, OneVision Software GmbH&CoKg. */ - -#define L_LNNO_SIZE 2 -#define INCLUDE_COMDAT_FIELDS_IN_AUXENT - -#include "coff/external.h" - -#define COFF_PAGE_SIZE 0x1000 - -#define AMD64MAGIC 0x8664 - -#define AMD64BADMAG(x) ((x).f_magic != AMD64MAGIC) -#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b - -#define OMAGIC 0404 /* Object files, eg as output. */ -#define ZMAGIC IMAGE_NT_OPTIONAL_HDR64_MAGIC /* Demand load format, eg normal ld output 0x10b. */ -#define STMAGIC 0401 /* Target shlib. */ -#define SHMAGIC 0443 /* Host shlib. */ - -/* Define some NT default values. */ -/* #define NT_IMAGE_BASE 0x400000 moved to internal.h. */ -#define NT_SECTION_ALIGNMENT 0x1000 -#define NT_FILE_ALIGNMENT 0x200 -#define NT_DEF_RESERVE 0x100000 -#define NT_DEF_COMMIT 0x1000 - -/* Relocation directives. */ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_type[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 10 diff --git a/include/coff/xcoff.h b/include/coff/xcoff.h deleted file mode 100644 index 67502cd..0000000 --- a/include/coff/xcoff.h +++ /dev/null @@ -1,647 +0,0 @@ -/* Internal format of XCOFF object file data structures for BFD. - - Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, - 2009, 2010 Free Software Foundation, Inc. - Written by Ian Lance Taylor , Cygnus Support. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _INTERNAL_XCOFF_H -#define _INTERNAL_XCOFF_H - -/* XCOFF specific f_flags. */ - -/* File was profiled with fdpr. */ -#define F_FDPR_PROF 0x0010 - -/* File was reordered with fdpr. */ -#define F_FDPR_OPTI 0x0020 - -/* File use very large program support. */ -#define F_DSA 0x0040 - -/* One aux header specifying medium page sizes is non-zero. */ -#define F_VARPG 0x0100 - -/* Read/write sections are non-executable. */ -#define F_NONEXEC 0x8000 - -/* Linker */ - -/* Names of "special" sections. */ -#define _TEXT ".text" -#define _DATA ".data" -#define _BSS ".bss" -#define _PAD ".pad" -#define _LOADER ".loader" -#define _EXCEPT ".except" -#define _TYPCHK ".typchk" - -/* XCOFF uses special .dwXXX sections with the type STYP_DWARF. */ -#define STYP_DWARF 0x0010 - -/* High-order 16-bits dwarf subtypes. */ -#define SSUBTYP_DWINFO 0x10000 -#define SSUBTYP_DWLINE 0x20000 -#define SSUBTYP_DWPBNMS 0x30000 -#define SSUBTYP_DWPBTYP 0x40000 -#define SSUBTYP_DWARNGE 0x50000 -#define SSUBTYP_DWABREV 0x60000 -#define SSUBTYP_DWSTR 0x70000 -#define SSUBTYP_DWRNGES 0x80000 - -/* XCOFF uses a special .loader section with type STYP_LOADER. */ -#define STYP_LOADER 0x1000 - -/* Specifies an exception section. A section of this type provides - information to identify the reason that a trap or ececptin occured within - and executable object program */ -#define STYP_EXCEPT 0x0100 - -/* Specifies an initialized thread-local data section. */ -#define STYP_TDATA 0x0400 - -/* Specifies an uninitialized thread-local data section. */ -#define STYP_TBSS 0x0800 - -/* XCOFF uses a special .debug section with type STYP_DEBUG. */ -#define STYP_DEBUG 0x2000 - -/* Specifies a type check section. A section of this type contains parameter - argument type check strings used by the AIX binder. */ -#define STYP_TYPCHK 0x4000 - -/* XCOFF handles line number or relocation overflow by creating - another section header with STYP_OVRFLO set. */ -#define STYP_OVRFLO 0x8000 - -#define RS6K_AOUTHDR_OMAGIC 0x0107 /* old: text & data writeable */ -#define RS6K_AOUTHDR_NMAGIC 0x0108 /* new: text r/o, data r/w */ -#define RS6K_AOUTHDR_ZMAGIC 0x010B /* paged: text r/o, both page-aligned */ - -/* XCOFF relocation types. - The relocations are described in the function - xcoff[64]_ppc_relocate_section in coff64-rs6000.c and coff-rs6000.c */ - -#define R_POS (0x00) -#define R_NEG (0x01) -#define R_REL (0x02) -#define R_TOC (0x03) -#define R_RTB (0x04) -#define R_GL (0x05) -#define R_TCL (0x06) -#define R_BA (0x08) -#define R_BR (0x0a) -#define R_RL (0x0c) -#define R_RLA (0x0d) -#define R_REF (0x0f) -#define R_TRL (0x12) -#define R_TRLA (0x13) -#define R_RRTBI (0x14) -#define R_RRTBA (0x15) -#define R_CAI (0x16) -#define R_CREL (0x17) -#define R_RBA (0x18) -#define R_RBAC (0x19) -#define R_RBR (0x1a) -#define R_RBRC (0x1b) -#define R_TLS (0x20) -#define R_TLS_IE (0x21) -#define R_TLS_LD (0x22) -#define R_TLS_LE (0x23) -#define R_TLSM (0x24) -#define R_TLSML (0x25) -#define R_TOCU (0x30) -#define R_TOCL (0x31) - -/* Storage class #defines, from /usr/include/storclass.h that are not already - defined in internal.h */ - -/* Comment string in .info section */ -#define C_INFO 110 - -/* Dwarf symbol. */ -#define C_DWARF 112 - -/* Auxillary Symbol Entries */ - -/* x_smtyp values: */ -#define SMTYP_ALIGN(x) ((x) >> 3) /* log2 of alignment */ -#define SMTYP_SMTYP(x) ((x) & 0x7) /* symbol type */ -/* Symbol type values: */ -#define XTY_ER 0 /* External reference */ -#define XTY_SD 1 /* Csect definition */ -#define XTY_LD 2 /* Label definition */ -#define XTY_CM 3 /* .BSS */ -#define XTY_EM 4 /* Error message */ -#define XTY_US 5 /* "Reserved for internal use" */ - -/* x_smclas values: */ -#define XMC_PR 0 /* Read-only program code */ -#define XMC_RO 1 /* Read-only constant */ -#define XMC_DB 2 /* Read-only debug dictionary table */ -#define XMC_TC 3 /* Read-write general TOC entry */ -#define XMC_UA 4 /* Read-write unclassified */ -#define XMC_RW 5 /* Read-write data */ -#define XMC_GL 6 /* Read-only global linkage */ -#define XMC_XO 7 /* Read-only extended operation */ -#define XMC_SV 8 /* Read-only supervisor call */ -#define XMC_BS 9 /* Read-write BSS */ -#define XMC_DS 10 /* Read-write descriptor csect */ -#define XMC_UC 11 /* Read-write unnamed Fortran common */ -#define XMC_TI 12 /* Read-only traceback index csect */ -#define XMC_TB 13 /* Read-only traceback table csect */ -/* 14 ??? */ -#define XMC_TC0 15 /* Read-write TOC anchor */ -#define XMC_TD 16 /* Read-write data in TOC */ -#define XMC_SV64 17 /* Read-only 64 bit supervisor call */ -#define XMC_SV3264 18 /* Read-only 32 or 64 bit supervisor call */ -/* 19 ??? */ -#define XMC_TL 20 /* Read-write initialized TLS data */ -#define XMC_TU 21 /* Read-write uninitialized TLS data */ -#define XMC_TE 22 /* Same as XMC_TC but mapped after it */ - -/* The ldhdr structure. This appears at the start of the .loader - section. */ - -struct internal_ldhdr -{ - /* The version number: - 1 : 32 bit - 2 : 64 bit */ - unsigned long l_version; - - /* The number of symbol table entries. */ - bfd_size_type l_nsyms; - - /* The number of relocation table entries. */ - bfd_size_type l_nreloc; - - /* The length of the import file string table. */ - bfd_size_type l_istlen; - - /* The number of import files. */ - bfd_size_type l_nimpid; - - /* The offset from the start of the .loader section to the first - entry in the import file table. */ - bfd_size_type l_impoff; - - /* The length of the string table. */ - bfd_size_type l_stlen; - - /* The offset from the start of the .loader section to the first - entry in the string table. */ - bfd_size_type l_stoff; - - /* The offset to start of the symbol table, only in XCOFF64 */ - bfd_vma l_symoff; - - /* The offset to the start of the relocation table, only in XCOFF64 */ - bfd_vma l_rldoff; -}; - -/* The ldsym structure. This is used to represent a symbol in the - .loader section. */ - -struct internal_ldsym -{ - union - { - /* The symbol name if <= SYMNMLEN characters. */ - char _l_name[SYMNMLEN]; - struct - { - /* Zero if the symbol name is more than SYMNMLEN characters. */ - long _l_zeroes; - - /* The offset in the string table if the symbol name is more - than SYMNMLEN characters. */ - long _l_offset; - } - _l_l; - } - _l; - - /* The symbol value. */ - bfd_vma l_value; - - /* The symbol section number. */ - short l_scnum; - - /* The symbol type and flags. */ - char l_smtype; - - /* The symbol storage class. */ - char l_smclas; - - /* The import file ID. */ - bfd_size_type l_ifile; - - /* Offset to the parameter type check string. */ - bfd_size_type l_parm; -}; - -/* These flags are for the l_smtype field (the lower three bits are an - XTY_* value). */ - -/* Imported symbol. */ -#define L_IMPORT (0x40) -/* Entry point. */ -#define L_ENTRY (0x20) -/* Exported symbol. */ -#define L_EXPORT (0x10) -/* Weak symbol. */ -#define L_WEAK (0x08) - -/* The ldrel structure. This is used to represent a reloc in the - .loader section. */ - -struct internal_ldrel -{ - /* The reloc address. */ - bfd_vma l_vaddr; - - /* The symbol table index in the .loader section symbol table. */ - bfd_size_type l_symndx; - - /* The relocation type and size. */ - short l_rtype; - - /* The section number this relocation applies to. */ - short l_rsecnm; -}; - -/* An entry in the XCOFF linker hash table. */ -struct xcoff_link_hash_entry -{ - struct bfd_link_hash_entry root; - - /* Symbol index in output file. Set to -1 initially. Set to -2 if - there is a reloc against this symbol. */ - long indx; - - /* If we have created a TOC entry for this symbol, this is the .tc - section which holds it. */ - asection *toc_section; - - union - { - /* If we have created a TOC entry (the XCOFF_SET_TOC flag is - set), this is the offset in toc_section. */ - bfd_vma toc_offset; - - /* If the TOC entry comes from an input file, this is set to the - symbol index of the C_HIDEXT XMC_TC or XMC_TD symbol. */ - long toc_indx; - } - u; - - /* If this symbol is a function entry point which is called, this - field holds a pointer to the function descriptor. If this symbol - is a function descriptor, this field holds a pointer to the - function entry point. */ - struct xcoff_link_hash_entry *descriptor; - - /* The .loader symbol table entry, if there is one. */ - struct internal_ldsym *ldsym; - - /* If XCOFF_BUILT_LDSYM is set, this is the .loader symbol table - index. If XCOFF_BUILD_LDSYM is clear, and XCOFF_IMPORT is set, - this is the l_ifile value. */ - long ldindx; - - /* Some linker flags. */ - unsigned long flags; - - /* The storage mapping class. */ - unsigned char smclas; -}; - -/* Flags for xcoff_link_hash_entry. */ - -/* Symbol is referenced by a regular object. */ -#define XCOFF_REF_REGULAR 0x00000001 -/* Symbol is defined by a regular object. */ -#define XCOFF_DEF_REGULAR 0x00000002 -/* Symbol is defined by a dynamic object. */ -#define XCOFF_DEF_DYNAMIC 0x00000004 -/* Symbol is used in a reloc being copied into the .loader section. */ -#define XCOFF_LDREL 0x00000008 -/* Symbol is the entry point. */ -#define XCOFF_ENTRY 0x00000010 -/* Symbol is for a function and is the target of a relocation. - The relocation may or may not be a branch-type relocation. */ -#define XCOFF_CALLED 0x00000020 -/* Symbol needs the TOC entry filled in. */ -#define XCOFF_SET_TOC 0x00000040 -/* Symbol is implicitly or explicitly imported. */ -#define XCOFF_IMPORT 0x00000080 -/* Symbol is explicitly exported. */ -#define XCOFF_EXPORT 0x00000100 -/* Symbol has been processed by xcoff_build_ldsyms. */ -#define XCOFF_BUILT_LDSYM 0x00000200 -/* Symbol is mentioned by a section which was not garbage collected. */ -#define XCOFF_MARK 0x00000400 -/* Symbol size is recorded in size_list list from hash table. */ -#define XCOFF_HAS_SIZE 0x00000800 -/* Symbol is a function descriptor. */ -#define XCOFF_DESCRIPTOR 0x00001000 -/* Multiple definitions have been for the symbol. */ -#define XCOFF_MULTIPLY_DEFINED 0x00002000 -/* Symbol is the __rtinit symbol. */ -#define XCOFF_RTINIT 0x00004000 -/* Symbol is an imported 32 bit syscall. */ -#define XCOFF_SYSCALL32 0x00008000 -/* Symbol is an imported 64 bit syscall. */ -#define XCOFF_SYSCALL64 0x00010000 -/* Symbol was not explicitly defined by the time it was marked. */ -#define XCOFF_WAS_UNDEFINED 0x00020000 -/* We have assigned an output XCOFF entry to this symbol. */ -#define XCOFF_ALLOCATED 0x00040000 - -/* The XCOFF linker hash table. */ - -#define XCOFF_NUMBER_OF_SPECIAL_SECTIONS 6 -#define XCOFF_SPECIAL_SECTION_TEXT 0 -#define XCOFF_SPECIAL_SECTION_ETEXT 1 -#define XCOFF_SPECIAL_SECTION_DATA 2 -#define XCOFF_SPECIAL_SECTION_EDATA 3 -#define XCOFF_SPECIAL_SECTION_END 4 -#define XCOFF_SPECIAL_SECTION_END2 5 - -/* These flags indicate which of -bexpall and -bexpfull are in effect. */ -#define XCOFF_EXPALL 1 -#define XCOFF_EXPFULL 2 - -/* This structure is used to pass information through - xcoff_link_hash_traverse. */ - -struct xcoff_loader_info -{ - /* Set if a problem occurred. */ - bfd_boolean failed; - - /* Output BFD. */ - bfd *output_bfd; - - /* Link information structure. */ - struct bfd_link_info *info; - - /* A mask of XCOFF_EXPALL and XCOFF_EXPFULL flags. */ - unsigned int auto_export_flags; - - /* Number of ldsym structures. */ - size_t ldsym_count; - - /* Size of string table. */ - size_t string_size; - - /* String table. */ - char *strings; - - /* Allocated size of string table. */ - size_t string_alc; -}; - -/* In case we're on a 32-bit machine, construct a 64-bit "-1" value - from smaller values. Start with zero, widen, *then* decrement. */ -#define MINUS_ONE (((bfd_vma) 0) - 1) - -/* __rtinit, from /usr/include/rtinit.h. */ -struct __rtinit -{ - /* Pointer to runtime linker. - XXX: Is the parameter really void? */ - int (*rtl) (void); - - /* Offset to array of init functions, 0 if none. */ - int init_offset; - - /* Offset to array of fini functions, 0 if none. */ - int fini_offset; - - /* Size of __RTINIT_DESCRIPTOR. This value should be used instead of - sizeof(__RTINIT_DESCRIPTOR). */ - int __rtinit_descriptor_size; -}; - -#define RTINIT_DESCRIPTOR_SIZE (12) - -struct __rtinit_descriptor -{ - /* Init/fini function. */ - int f; - - /* Offset, relative to the start of the __rtinit symbol, to name of the - function. */ - - int name_offset; - - /* Flags */ - unsigned char flags; -}; - -/* Archive */ - -#define XCOFFARMAG "\012" -#define XCOFFARMAGBIG "\012" -#define SXCOFFARMAG 8 - -/* The size of the ascii archive elements */ -#define XCOFFARMAG_ELEMENT_SIZE 12 -#define XCOFFARMAGBIG_ELEMENT_SIZE 20 - -/* This terminates an XCOFF archive member name. */ - -#define XCOFFARFMAG "`\012" -#define SXCOFFARFMAG 2 - -/* XCOFF archives start with this (printable) structure. */ - -struct xcoff_ar_file_hdr -{ - /* Magic string. */ - char magic[SXCOFFARMAG]; - - /* Offset of the member table (decimal ASCII string). */ - char memoff[XCOFFARMAG_ELEMENT_SIZE]; - - /* Offset of the global symbol table (decimal ASCII string). */ - char symoff[XCOFFARMAG_ELEMENT_SIZE]; - - /* Offset of the first member in the archive (decimal ASCII string). */ - char firstmemoff[XCOFFARMAG_ELEMENT_SIZE]; - - /* Offset of the last member in the archive (decimal ASCII string). */ - char lastmemoff[XCOFFARMAG_ELEMENT_SIZE]; - - /* Offset of the first member on the free list (decimal ASCII - string). */ - char freeoff[XCOFFARMAG_ELEMENT_SIZE]; -}; - -#define SIZEOF_AR_FILE_HDR (SXCOFFARMAG + 5 * XCOFFARMAG_ELEMENT_SIZE) - -/* This is the equivalent data structure for the big archive format. */ - -struct xcoff_ar_file_hdr_big -{ - /* Magic string. */ - char magic[SXCOFFARMAG]; - - /* Offset of the member table (decimal ASCII string). */ - char memoff[XCOFFARMAGBIG_ELEMENT_SIZE]; - - /* Offset of the global symbol table for 32-bit objects (decimal ASCII - string). */ - char symoff[XCOFFARMAGBIG_ELEMENT_SIZE]; - - /* Offset of the global symbol table for 64-bit objects (decimal ASCII - string). */ - char symoff64[XCOFFARMAGBIG_ELEMENT_SIZE]; - - /* Offset of the first member in the archive (decimal ASCII string). */ - char firstmemoff[XCOFFARMAGBIG_ELEMENT_SIZE]; - - /* Offset of the last member in the archive (decimal ASCII string). */ - char lastmemoff[XCOFFARMAGBIG_ELEMENT_SIZE]; - - /* Offset of the first member on the free list (decimal ASCII - string). */ - char freeoff[XCOFFARMAGBIG_ELEMENT_SIZE]; -}; - -#define SIZEOF_AR_FILE_HDR_BIG (SXCOFFARMAG + 6 * XCOFFARMAGBIG_ELEMENT_SIZE) - -/* Each XCOFF archive member starts with this (printable) structure. */ - -struct xcoff_ar_hdr -{ - /* File size not including the header (decimal ASCII string). */ - char size[XCOFFARMAG_ELEMENT_SIZE]; - - /* File offset of next archive member (decimal ASCII string). */ - char nextoff[XCOFFARMAG_ELEMENT_SIZE]; - - /* File offset of previous archive member (decimal ASCII string). */ - char prevoff[XCOFFARMAG_ELEMENT_SIZE]; - - /* File mtime (decimal ASCII string). */ - char date[12]; - - /* File UID (decimal ASCII string). */ - char uid[12]; - - /* File GID (decimal ASCII string). */ - char gid[12]; - - /* File mode (octal ASCII string). */ - char mode[12]; - - /* Length of file name (decimal ASCII string). */ - char namlen[4]; - - /* This structure is followed by the file name. The length of the - name is given in the namlen field. If the length of the name is - odd, the name is followed by a null byte. The name and optional - null byte are followed by XCOFFARFMAG, which is not included in - namlen. The contents of the archive member follow; the number of - bytes is given in the size field. */ -}; - -#define SIZEOF_AR_HDR (3 * XCOFFARMAG_ELEMENT_SIZE + 4 * 12 + 4) - -/* The equivalent for the big archive format. */ - -struct xcoff_ar_hdr_big -{ - /* File size not including the header (decimal ASCII string). */ - char size[XCOFFARMAGBIG_ELEMENT_SIZE]; - - /* File offset of next archive member (decimal ASCII string). */ - char nextoff[XCOFFARMAGBIG_ELEMENT_SIZE]; - - /* File offset of previous archive member (decimal ASCII string). */ - char prevoff[XCOFFARMAGBIG_ELEMENT_SIZE]; - - /* File mtime (decimal ASCII string). */ - char date[12]; - - /* File UID (decimal ASCII string). */ - char uid[12]; - - /* File GID (decimal ASCII string). */ - char gid[12]; - - /* File mode (octal ASCII string). */ - char mode[12]; - - /* Length of file name (decimal ASCII string). */ - char namlen[4]; - - /* This structure is followed by the file name. The length of the - name is given in the namlen field. If the length of the name is - odd, the name is followed by a null byte. The name and optional - null byte are followed by XCOFFARFMAG, which is not included in - namlen. The contents of the archive member follow; the number of - bytes is given in the size field. */ -}; - -#define SIZEOF_AR_HDR_BIG (3 * XCOFFARMAGBIG_ELEMENT_SIZE + 4 * 12 + 4) - -/* We often have to distinguish between the old and big file format. - Make it a bit cleaner. We can use `xcoff_ardata' here because the - `hdr' member has the same size and position in both formats. - is the default format, return TRUE even when xcoff_ardata is - NULL. */ -#ifndef SMALL_ARCHIVE -/* Creates big archives by default */ -#define xcoff_big_format_p(abfd) \ - ((NULL != bfd_ardata (abfd) && NULL == xcoff_ardata (abfd)) || \ - ((NULL != bfd_ardata (abfd)) && \ - (NULL != xcoff_ardata (abfd)) && \ - (xcoff_ardata (abfd)->magic[1] == 'b'))) -#else -/* Creates small archives by default. */ -#define xcoff_big_format_p(abfd) \ - (((NULL != bfd_ardata (abfd)) && \ - (NULL != xcoff_ardata (abfd)) && \ - (xcoff_ardata (abfd)->magic[1] == 'b'))) -#endif - -/* We store a copy of the xcoff_ar_file_hdr in the tdata field of the - artdata structure. Similar for the big archive. */ -#define xcoff_ardata(abfd) \ - ((struct xcoff_ar_file_hdr *) bfd_ardata (abfd)->tdata) -#define xcoff_ardata_big(abfd) \ - ((struct xcoff_ar_file_hdr_big *) bfd_ardata (abfd)->tdata) - -/* We store a copy of the xcoff_ar_hdr in the arelt_data field of an - archive element. Similar for the big archive. */ -#define arch_eltdata(bfd) ((struct areltdata *) ((bfd)->arelt_data)) -#define arch_xhdr(bfd) \ - ((struct xcoff_ar_hdr *) arch_eltdata (bfd)->arch_header) -#define arch_xhdr_big(bfd) \ - ((struct xcoff_ar_hdr_big *) arch_eltdata (bfd)->arch_header) - -/* True if symbols of class CLASS are external. */ -#define EXTERN_SYM_P(CLASS) \ - ((CLASS) == C_EXT || (CLASS) == C_AIX_WEAKEXT) - -#endif /* _INTERNAL_XCOFF_H */ diff --git a/include/coff/z80.h b/include/coff/z80.h deleted file mode 100644 index 712af05..0000000 --- a/include/coff/z80.h +++ /dev/null @@ -1,60 +0,0 @@ -/* coff information for Zilog Z80 - Copyright 2005, 2010 Free Software Foundation, Inc. - Contributed by Arnold Metselaar - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#define L_LNNO_SIZE 4 -#include "coff/external.h" - -/* z80 backend does not use dots in section names. */ -#undef _TEXT -#define _TEXT "text" -#undef _DATA -#define _DATA "data" -#undef _BSS -#define _BSS "bss" - -/* Type of cpu is stored in flags. */ -#define F_MACHMASK 0xF000 - -/* Z80 COFF encodes the section alignment in the section header flags */ -#define COFF_ALIGN_IN_SECTION_HEADER 1 -#define COFF_ALIGN_IN_S_FLAGS 1 -#define F_ALGNMASK 0x0F00 -/* requires a power-of-two argument */ -#define COFF_ENCODE_ALIGNMENT(S,X) ((S).s_flags |= (((unsigned)(X)&0xF)<<8)) -/* result is a power of two */ -#define COFF_DECODE_ALIGNMENT(X) (((X)>>8)&0xF) - -#define Z80MAGIC 0x805A - -#define Z80BADMAG(x) (((x).f_magic != Z80MAGIC)) - -/* Relocation directives. */ - -/* This format actually has more bits than we need. */ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_offset[4]; - char r_type[2]; - char r_stuff[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 16 diff --git a/include/coff/z8k.h b/include/coff/z8k.h deleted file mode 100644 index 5eef86d..0000000 --- a/include/coff/z8k.h +++ /dev/null @@ -1,49 +0,0 @@ -/* coff information for Zilog Z800N - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define L_LNNO_SIZE 4 -#include "coff/external.h" - -/* Type of cpu is stored in flags */ -#define F_Z8001 0x1000 -#define F_Z8002 0x2000 -#define F_MACHMASK 0xf000 - -#define Z8KMAGIC 0x8000 - -#define Z8KBADMAG(x) (((x).f_magic != Z8KMAGIC)) - -/********************** RELOCATION DIRECTIVES **********************/ - -/* The external reloc has an offset field, because some of the reloc - types on the z8k don't have room in the instruction for the entire - offset - eg with segments. */ - -struct external_reloc -{ - char r_vaddr[4]; - char r_symndx[4]; - char r_offset[4]; - char r_type[2]; - char r_stuff[2]; -}; - -#define RELOC struct external_reloc -#define RELSZ 16 - diff --git a/include/complex.h b/include/complex.h deleted file mode 100644 index ad3028e..0000000 --- a/include/complex.h +++ /dev/null @@ -1,150 +0,0 @@ -/* $NetBSD: complex.h,v 1.3 2010/09/15 16:11:30 christos Exp $ */ - -/* - * Written by Matthias Drochner. - * Public domain. - */ - -#ifndef _COMPLEX_H -#define _COMPLEX_H - -#define complex _Complex -#define _Complex_I 1.0fi -#define I _Complex_I - -#include - -__BEGIN_DECLS - -/* 7.3.5 Trigonometric functions */ -/* 7.3.5.1 The cacos functions */ -double complex cacos(double complex); -float complex cacosf(float complex); -long double complex cacosl(long double complex); - -/* 7.3.5.2 The casin functions */ -double complex casin(double complex); -float complex casinf(float complex); -long double complex casinl(long double complex); - -/* 7.3.5.1 The catan functions */ -double complex catan(double complex); -float complex catanf(float complex); -long double complex catanl(long double complex); - -/* 7.3.5.1 The ccos functions */ -double complex ccos(double complex); -float complex ccosf(float complex); -long double complex ccosl(long double complex); - -/* 7.3.5.1 The csin functions */ -double complex csin(double complex); -float complex csinf(float complex); -long double complex csinl(long double complex); - -/* 7.3.5.1 The ctan functions */ -double complex ctan(double complex); -float complex ctanf(float complex); -long double complex ctanl(long double complex); - -/* 7.3.6 Hyperbolic functions */ -/* 7.3.6.1 The cacosh functions */ -double complex cacosh(double complex); -float complex cacoshf(float complex); -long double complex cacoshl(long double complex); - -/* 7.3.6.2 The casinh functions */ -double complex casinh(double complex); -float complex casinhf(float complex); -long double complex casinhl(long double complex); - -/* 7.3.6.3 The catanh functions */ -double complex catanh(double complex); -float complex catanhf(float complex); -long double complex catanhl(long double complex); - -/* 7.3.6.4 The ccosh functions */ -double complex ccosh(double complex); -float complex ccoshf(float complex); -long double complex ccoshl(long double complex); - -/* 7.3.6.5 The csinh functions */ -double complex csinh(double complex); -float complex csinhf(float complex); -long double complex csinhl(long double complex); - -/* 7.3.6.6 The ctanh functions */ -double complex ctanh(double complex); -float complex ctanhf(float complex); -long double complex ctanhl(long double complex); - -/* 7.3.7 Exponential and logarithmic functions */ -/* 7.3.7.1 The cexp functions */ -double complex cexp(double complex); -float complex cexpf(float complex); -long double complex cexpl(long double complex); - -/* 7.3.7.2 The clog functions */ -double complex clog(double complex); -float complex clogf(float complex); -long double complex clogl(long double complex); - -/* 7.3.8 Power and absolute-value functions */ -/* 7.3.8.1 The cabs functions */ -/*#ifndef __LIBM0_SOURCE__ */ -/* avoid conflict with historical cabs(struct complex) */ -/* double cabs(double complex) __RENAME(__c99_cabs); - float cabsf(float complex) __RENAME(__c99_cabsf); - #endif -*/ -long double cabsl(long double complex) ; -double cabs(double complex) ; -float cabsf(float complex) ; - -/* 7.3.8.2 The cpow functions */ -double complex cpow(double complex, double complex); -float complex cpowf(float complex, float complex); -long double complex cpowl(long double complex, long double complex); - -/* 7.3.8.3 The csqrt functions */ -double complex csqrt(double complex); -float complex csqrtf(float complex); -long double complex csqrtl(long double complex); - -/* 7.3.9 Manipulation functions */ -/* 7.3.9.1 The carg functions */ -double carg(double complex); -float cargf(float complex); -long double cargl(long double complex); - -/* 7.3.9.2 The cimag functions */ -double cimag(double complex); -float cimagf(float complex); -long double cimagl(long double complex); - -/* 7.3.9.3 The conj functions */ -double complex conj(double complex); -float complex conjf(float complex); -long double complex conjl(long double complex); - -/* 7.3.9.4 The cproj functions */ -double complex cproj(double complex); -float complex cprojf(float complex); -long double complex cprojl(long double complex); - -/* 7.3.9.5 The creal functions */ -double creal(double complex); -float crealf(float complex); -long double creall(long double complex); - -#if __GNU_VISIBLE -double complex clog10(double complex); -float complex clog10f(float complex); -# if defined(__CYGWIN__) -long double complex clog10l(long double complex); -# endif -#endif - -__END_DECLS - -#endif /* ! _COMPLEX_H */ diff --git a/include/cpio.h b/include/cpio.h deleted file mode 100644 index 99860b2..0000000 --- a/include/cpio.h +++ /dev/null @@ -1,30 +0,0 @@ -/* POSIX.1 symbolic constants for c_mode field of cpio archive format */ - -#ifndef _CPIO_H -#define _CPIO_H - -#define C_IRUSR 0000400 /* Read by owner */ -#define C_IWUSR 0000200 /* Write by owner */ -#define C_IXUSR 0000100 /* Execute by owner */ -#define C_IRGRP 0000040 /* Read by group */ -#define C_IWGRP 0000020 /* Write by group */ -#define C_IXGRP 0000010 /* Execute by group */ -#define C_IROTH 0000004 /* Read by others */ -#define C_IWOTH 0000002 /* Write by others */ -#define C_IXOTH 0000001 /* Execute by others */ -#define C_ISUID 0004000 /* Set user ID */ -#define C_ISGID 0002000 /* Set group ID */ -#define C_ISVTX 0001000 /* On directories, restricted deletion flag */ - -#define C_ISDIR 0040000 /* Directory */ -#define C_ISFIFO 0010000 /* FIFO */ -#define C_ISREG 0100000 /* Regular file */ -#define C_ISBLK 0060000 /* Block special */ -#define C_ISCHR 0020000 /* Character special */ -#define C_ISCTG 0110000 /* Reserved */ -#define C_ISLNK 0120000 /* Symbolic link */ -#define C_ISSOCK 0140000 /* Socket */ - -#define MAGIC "070707" - -#endif /* _CPIO_H */ diff --git a/include/ctype.h b/include/ctype.h deleted file mode 100644 index b29594a..0000000 --- a/include/ctype.h +++ /dev/null @@ -1,183 +0,0 @@ -#ifndef _CTYPE_H_ -#define _CTYPE_H_ - -#include "_ansi.h" -#include - -#if __POSIX_VISIBLE >= 200809 || __MISC_VISIBLE || defined (_LIBC) -#include -#endif - -_BEGIN_STD_C - -int isalnum (int __c); -int isalpha (int __c); -int iscntrl (int __c); -int isdigit (int __c); -int isgraph (int __c); -int islower (int __c); -int isprint (int __c); -int ispunct (int __c); -int isspace (int __c); -int isupper (int __c); -int isxdigit (int __c); -int tolower (int __c); -int toupper (int __c); - -#if __ISO_C_VISIBLE >= 1999 -int isblank (int __c); -#endif - -#if __MISC_VISIBLE || __XSI_VISIBLE -int isascii (int __c); -int toascii (int __c); -#define _tolower(__c) ((unsigned char)(__c) - 'A' + 'a') -#define _toupper(__c) ((unsigned char)(__c) - 'a' + 'A') -#endif - -#if __POSIX_VISIBLE >= 200809 -extern int isalnum_l (int __c, locale_t __l); -extern int isalpha_l (int __c, locale_t __l); -extern int isblank_l (int __c, locale_t __l); -extern int iscntrl_l (int __c, locale_t __l); -extern int isdigit_l (int __c, locale_t __l); -extern int isgraph_l (int __c, locale_t __l); -extern int islower_l (int __c, locale_t __l); -extern int isprint_l (int __c, locale_t __l); -extern int ispunct_l (int __c, locale_t __l); -extern int isspace_l (int __c, locale_t __l); -extern int isupper_l (int __c, locale_t __l); -extern int isxdigit_l(int __c, locale_t __l); -extern int tolower_l (int __c, locale_t __l); -extern int toupper_l (int __c, locale_t __l); -#endif - -#if __MISC_VISIBLE -extern int isascii_l (int __c, locale_t __l); -extern int toascii_l (int __c, locale_t __l); -#endif - -#define _U 01 -#define _L 02 -#define _N 04 -#define _S 010 -#define _P 020 -#define _C 040 -#define _X 0100 -#define _B 0200 - -/* For C++ backward-compatibility only. */ -extern __IMPORT const char _ctype_[]; - -#ifdef __HAVE_LOCALE_INFO__ -const char *__locale_ctype_ptr (void); -#else -#define __locale_ctype_ptr() _ctype_ -#endif - -# define __CTYPE_PTR (__locale_ctype_ptr ()) - -#ifndef __cplusplus -/* These macros are intentionally written in a manner that will trigger - a gcc -Wall warning if the user mistakenly passes a 'char' instead - of an int containing an 'unsigned char'. Note that the sizeof will - always be 1, which is what we want for mapping EOF to __CTYPE_PTR[0]; - the use of a raw index inside the sizeof triggers the gcc warning if - __c was of type char, and sizeof masks side effects of the extra __c. - Meanwhile, the real index to __CTYPE_PTR+1 must be cast to int, - since isalpha(0x100000001LL) must equal isalpha(1), rather than being - an out-of-bounds reference on a 64-bit machine. */ -#define __ctype_lookup(__c) ((__CTYPE_PTR+sizeof(""[__c]))[(int)(__c)]) - -#define isalpha(__c) (__ctype_lookup(__c)&(_U|_L)) -#define isupper(__c) ((__ctype_lookup(__c)&(_U|_L))==_U) -#define islower(__c) ((__ctype_lookup(__c)&(_U|_L))==_L) -#define isdigit(__c) (__ctype_lookup(__c)&_N) -#define isxdigit(__c) (__ctype_lookup(__c)&(_X|_N)) -#define isspace(__c) (__ctype_lookup(__c)&_S) -#define ispunct(__c) (__ctype_lookup(__c)&_P) -#define isalnum(__c) (__ctype_lookup(__c)&(_U|_L|_N)) -#define isprint(__c) (__ctype_lookup(__c)&(_P|_U|_L|_N|_B)) -#define isgraph(__c) (__ctype_lookup(__c)&(_P|_U|_L|_N)) -#define iscntrl(__c) (__ctype_lookup(__c)&_C) - -#if defined(__GNUC__) && __ISO_C_VISIBLE >= 1999 -#define isblank(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - (__ctype_lookup(__x)&_B) || (int) (__x) == '\t';}) -#endif - -#if __POSIX_VISIBLE >= 200809 -#ifdef __HAVE_LOCALE_INFO__ -const char *__locale_ctype_ptr_l (locale_t); -#else -static __inline const char * -__locale_ctype_ptr_l(locale_t _l) -{ - (void)_l; - return __locale_ctype_ptr(); -} -#endif -#define __ctype_lookup_l(__c,__l) ((__locale_ctype_ptr_l(__l)+sizeof(""[__c]))[(int)(__c)]) - -#define isalpha_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_U|_L)) -#define isupper_l(__c,__l) ((__ctype_lookup_l(__c,__l)&(_U|_L))==_U) -#define islower_l(__c,__l) ((__ctype_lookup_l(__c,__l)&(_U|_L))==_L) -#define isdigit_l(__c,__l) (__ctype_lookup_l(__c,__l)&_N) -#define isxdigit_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_X|_N)) -#define isspace_l(__c,__l) (__ctype_lookup_l(__c,__l)&_S) -#define ispunct_l(__c,__l) (__ctype_lookup_l(__c,__l)&_P) -#define isalnum_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_U|_L|_N)) -#define isprint_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_P|_U|_L|_N|_B)) -#define isgraph_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_P|_U|_L|_N)) -#define iscntrl_l(__c,__l) (__ctype_lookup_l(__c,__l)&_C) - -#if defined(__GNUC__) -#define isblank_l(__c, __l) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - (__ctype_lookup_l(__x,__l)&_B) || (int) (__x) == '\t';}) -#endif - -#endif /* __POSIX_VISIBLE >= 200809 */ - -#if __MISC_VISIBLE || __XSI_VISIBLE -#define isascii(__c) ((unsigned)(__c)<=0177) -#define toascii(__c) ((__c)&0177) -#endif - -#if __MISC_VISIBLE -#define isascii_l(__c,__l) ((__l),(unsigned)(__c)<=0177) -#define toascii_l(__c,__l) ((__l),(__c)&0177) -#endif - -/* Non-gcc versions will get the library versions, and will be - slightly slower. These macros are not NLS-aware so they are - disabled if the system supports the extended character sets. */ -# if defined(__GNUC__) -# if !defined (_MB_EXTENDED_CHARSETS_ISO) && !defined (_MB_EXTENDED_CHARSETS_WINDOWS) -# define toupper(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - islower (__x) ? (int) __x - 'a' + 'A' : (int) __x;}) -# define tolower(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - isupper (__x) ? (int) __x - 'A' + 'a' : (int) __x;}) -# else /* _MB_EXTENDED_CHARSETS* */ -/* Allow a gcc warning if the user passed 'char', but defer to the - function. */ -# define toupper(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - (void) __CTYPE_PTR[__x]; (toupper) (__x);}) -# define tolower(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - (void) __CTYPE_PTR[__x]; (tolower) (__x);}) -# endif /* _MB_EXTENDED_CHARSETS* */ -# endif /* __GNUC__ */ - -#if __POSIX_VISIBLE >= 200809 -#endif /* __POSIX_VISIBLE >= 200809 */ - -#endif /* !__cplusplus */ - -_END_STD_C - -#endif /* _CTYPE_H_ */ diff --git a/include/demangle.h b/include/demangle.h deleted file mode 100644 index 1d7cadf..0000000 --- a/include/demangle.h +++ /dev/null @@ -1,691 +0,0 @@ -/* Defs for interface to demanglers. - Copyright (C) 1992-2015 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License - as published by the Free Software Foundation; either version 2, or - (at your option) any later version. - - In addition to the permissions in the GNU Library General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file into - combinations with other programs, and to distribute those - combinations without any restriction coming from the use of this - file. (The Library Public License restrictions do apply in other - respects; for example, they cover modification of the file, and - distribution when not linked into a combined executable.) - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - - -#if !defined (DEMANGLE_H) -#define DEMANGLE_H - -#include "libiberty.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Options passed to cplus_demangle (in 2nd parameter). */ - -#define DMGL_NO_OPTS 0 /* For readability... */ -#define DMGL_PARAMS (1 << 0) /* Include function args */ -#define DMGL_ANSI (1 << 1) /* Include const, volatile, etc */ -#define DMGL_JAVA (1 << 2) /* Demangle as Java rather than C++. */ -#define DMGL_VERBOSE (1 << 3) /* Include implementation details. */ -#define DMGL_TYPES (1 << 4) /* Also try to demangle type encodings. */ -#define DMGL_RET_POSTFIX (1 << 5) /* Print function return types (when - present) after function signature. - It applies only to the toplevel - function type. */ -#define DMGL_RET_DROP (1 << 6) /* Suppress printing function return - types, even if present. It applies - only to the toplevel function type. - */ - -#define DMGL_AUTO (1 << 8) -#define DMGL_GNU (1 << 9) -#define DMGL_LUCID (1 << 10) -#define DMGL_ARM (1 << 11) -#define DMGL_HP (1 << 12) /* For the HP aCC compiler; - same as ARM except for - template arguments, etc. */ -#define DMGL_EDG (1 << 13) -#define DMGL_GNU_V3 (1 << 14) -#define DMGL_GNAT (1 << 15) -#define DMGL_DLANG (1 << 16) - -/* If none of these are set, use 'current_demangling_style' as the default. */ -#define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM|DMGL_HP|DMGL_EDG|DMGL_GNU_V3|DMGL_JAVA|DMGL_GNAT|DMGL_DLANG) - -/* Enumeration of possible demangling styles. - - Lucid and ARM styles are still kept logically distinct, even though - they now both behave identically. The resulting style is actual the - union of both. I.E. either style recognizes both "__pt__" and "__rf__" - for operator "->", even though the first is lucid style and the second - is ARM style. (FIXME?) */ - -extern enum demangling_styles -{ - no_demangling = -1, - unknown_demangling = 0, - auto_demangling = DMGL_AUTO, - gnu_demangling = DMGL_GNU, - lucid_demangling = DMGL_LUCID, - arm_demangling = DMGL_ARM, - hp_demangling = DMGL_HP, - edg_demangling = DMGL_EDG, - gnu_v3_demangling = DMGL_GNU_V3, - java_demangling = DMGL_JAVA, - gnat_demangling = DMGL_GNAT, - dlang_demangling = DMGL_DLANG -} current_demangling_style; - -/* Define string names for the various demangling styles. */ - -#define NO_DEMANGLING_STYLE_STRING "none" -#define AUTO_DEMANGLING_STYLE_STRING "auto" -#define GNU_DEMANGLING_STYLE_STRING "gnu" -#define LUCID_DEMANGLING_STYLE_STRING "lucid" -#define ARM_DEMANGLING_STYLE_STRING "arm" -#define HP_DEMANGLING_STYLE_STRING "hp" -#define EDG_DEMANGLING_STYLE_STRING "edg" -#define GNU_V3_DEMANGLING_STYLE_STRING "gnu-v3" -#define JAVA_DEMANGLING_STYLE_STRING "java" -#define GNAT_DEMANGLING_STYLE_STRING "gnat" -#define DLANG_DEMANGLING_STYLE_STRING "dlang" - -/* Some macros to test what demangling style is active. */ - -#define CURRENT_DEMANGLING_STYLE current_demangling_style -#define AUTO_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_AUTO) -#define GNU_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU) -#define LUCID_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_LUCID) -#define ARM_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_ARM) -#define HP_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_HP) -#define EDG_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_EDG) -#define GNU_V3_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU_V3) -#define JAVA_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_JAVA) -#define GNAT_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNAT) -#define DLANG_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_DLANG) - -/* Provide information about the available demangle styles. This code is - pulled from gdb into libiberty because it is useful to binutils also. */ - -extern const struct demangler_engine -{ - const char *const demangling_style_name; - const enum demangling_styles demangling_style; - const char *const demangling_style_doc; -} libiberty_demanglers[]; - -extern char * -cplus_demangle (const char *mangled, int options); - -extern int -cplus_demangle_opname (const char *opname, char *result, int options); - -extern const char * -cplus_mangle_opname (const char *opname, int options); - -/* Note: This sets global state. FIXME if you care about multi-threading. */ - -extern void -set_cplus_marker_for_demangling (int ch); - -extern enum demangling_styles -cplus_demangle_set_style (enum demangling_styles style); - -extern enum demangling_styles -cplus_demangle_name_to_style (const char *name); - -/* Callback typedef for allocation-less demangler interfaces. */ -typedef void (*demangle_callbackref) (const char *, size_t, void *); - -/* V3 ABI demangling entry points, defined in cp-demangle.c. Callback - variants return non-zero on success, zero on error. char* variants - return a string allocated by malloc on success, NULL on error. */ -extern int -cplus_demangle_v3_callback (const char *mangled, int options, - demangle_callbackref callback, void *opaque); - -extern char* -cplus_demangle_v3 (const char *mangled, int options); - -extern int -java_demangle_v3_callback (const char *mangled, - demangle_callbackref callback, void *opaque); - -extern char* -java_demangle_v3 (const char *mangled); - -char * -ada_demangle (const char *mangled, int options); - -extern char * -dlang_demangle (const char *mangled, int options); - -enum gnu_v3_ctor_kinds { - gnu_v3_complete_object_ctor = 1, - gnu_v3_base_object_ctor, - gnu_v3_complete_object_allocating_ctor, - /* These are not part of the V3 ABI. Unified constructors are generated - as a speed-for-space optimization when the -fdeclone-ctor-dtor option - is used, and are always internal symbols. */ - gnu_v3_unified_ctor, - gnu_v3_object_ctor_group -}; - -/* Return non-zero iff NAME is the mangled form of a constructor name - in the G++ V3 ABI demangling style. Specifically, return an `enum - gnu_v3_ctor_kinds' value indicating what kind of constructor - it is. */ -extern enum gnu_v3_ctor_kinds - is_gnu_v3_mangled_ctor (const char *name); - - -enum gnu_v3_dtor_kinds { - gnu_v3_deleting_dtor = 1, - gnu_v3_complete_object_dtor, - gnu_v3_base_object_dtor, - /* These are not part of the V3 ABI. Unified destructors are generated - as a speed-for-space optimization when the -fdeclone-ctor-dtor option - is used, and are always internal symbols. */ - gnu_v3_unified_dtor, - gnu_v3_object_dtor_group -}; - -/* Return non-zero iff NAME is the mangled form of a destructor name - in the G++ V3 ABI demangling style. Specifically, return an `enum - gnu_v3_dtor_kinds' value, indicating what kind of destructor - it is. */ -extern enum gnu_v3_dtor_kinds - is_gnu_v3_mangled_dtor (const char *name); - -/* The V3 demangler works in two passes. The first pass builds a tree - representation of the mangled name, and the second pass turns the - tree representation into a demangled string. Here we define an - interface to permit a caller to build their own tree - representation, which they can pass to the demangler to get a - demangled string. This can be used to canonicalize user input into - something which the demangler might output. It could also be used - by other demanglers in the future. */ - -/* These are the component types which may be found in the tree. Many - component types have one or two subtrees, referred to as left and - right (a component type with only one subtree puts it in the left - subtree). */ - -enum demangle_component_type -{ - /* A name, with a length and a pointer to a string. */ - DEMANGLE_COMPONENT_NAME, - /* A qualified name. The left subtree is a class or namespace or - some such thing, and the right subtree is a name qualified by - that class. */ - DEMANGLE_COMPONENT_QUAL_NAME, - /* A local name. The left subtree describes a function, and the - right subtree is a name which is local to that function. */ - DEMANGLE_COMPONENT_LOCAL_NAME, - /* A typed name. The left subtree is a name, and the right subtree - describes that name as a function. */ - DEMANGLE_COMPONENT_TYPED_NAME, - /* A template. The left subtree is a template name, and the right - subtree is a template argument list. */ - DEMANGLE_COMPONENT_TEMPLATE, - /* A template parameter. This holds a number, which is the template - parameter index. */ - DEMANGLE_COMPONENT_TEMPLATE_PARAM, - /* A function parameter. This holds a number, which is the index. */ - DEMANGLE_COMPONENT_FUNCTION_PARAM, - /* A constructor. This holds a name and the kind of - constructor. */ - DEMANGLE_COMPONENT_CTOR, - /* A destructor. This holds a name and the kind of destructor. */ - DEMANGLE_COMPONENT_DTOR, - /* A vtable. This has one subtree, the type for which this is a - vtable. */ - DEMANGLE_COMPONENT_VTABLE, - /* A VTT structure. This has one subtree, the type for which this - is a VTT. */ - DEMANGLE_COMPONENT_VTT, - /* A construction vtable. The left subtree is the type for which - this is a vtable, and the right subtree is the derived type for - which this vtable is built. */ - DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE, - /* A typeinfo structure. This has one subtree, the type for which - this is the tpeinfo structure. */ - DEMANGLE_COMPONENT_TYPEINFO, - /* A typeinfo name. This has one subtree, the type for which this - is the typeinfo name. */ - DEMANGLE_COMPONENT_TYPEINFO_NAME, - /* A typeinfo function. This has one subtree, the type for which - this is the tpyeinfo function. */ - DEMANGLE_COMPONENT_TYPEINFO_FN, - /* A thunk. This has one subtree, the name for which this is a - thunk. */ - DEMANGLE_COMPONENT_THUNK, - /* A virtual thunk. This has one subtree, the name for which this - is a virtual thunk. */ - DEMANGLE_COMPONENT_VIRTUAL_THUNK, - /* A covariant thunk. This has one subtree, the name for which this - is a covariant thunk. */ - DEMANGLE_COMPONENT_COVARIANT_THUNK, - /* A Java class. This has one subtree, the type. */ - DEMANGLE_COMPONENT_JAVA_CLASS, - /* A guard variable. This has one subtree, the name for which this - is a guard variable. */ - DEMANGLE_COMPONENT_GUARD, - /* The init and wrapper functions for C++11 thread_local variables. */ - DEMANGLE_COMPONENT_TLS_INIT, - DEMANGLE_COMPONENT_TLS_WRAPPER, - /* A reference temporary. This has one subtree, the name for which - this is a temporary. */ - DEMANGLE_COMPONENT_REFTEMP, - /* A hidden alias. This has one subtree, the encoding for which it - is providing alternative linkage. */ - DEMANGLE_COMPONENT_HIDDEN_ALIAS, - /* A standard substitution. This holds the name of the - substitution. */ - DEMANGLE_COMPONENT_SUB_STD, - /* The restrict qualifier. The one subtree is the type which is - being qualified. */ - DEMANGLE_COMPONENT_RESTRICT, - /* The volatile qualifier. The one subtree is the type which is - being qualified. */ - DEMANGLE_COMPONENT_VOLATILE, - /* The const qualifier. The one subtree is the type which is being - qualified. */ - DEMANGLE_COMPONENT_CONST, - /* The restrict qualifier modifying a member function. The one - subtree is the type which is being qualified. */ - DEMANGLE_COMPONENT_RESTRICT_THIS, - /* The volatile qualifier modifying a member function. The one - subtree is the type which is being qualified. */ - DEMANGLE_COMPONENT_VOLATILE_THIS, - /* The const qualifier modifying a member function. The one subtree - is the type which is being qualified. */ - DEMANGLE_COMPONENT_CONST_THIS, - /* C++11 A reference modifying a member function. The one subtree is the - type which is being referenced. */ - DEMANGLE_COMPONENT_REFERENCE_THIS, - /* C++11: An rvalue reference modifying a member function. The one - subtree is the type which is being referenced. */ - DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS, - /* A vendor qualifier. The left subtree is the type which is being - qualified, and the right subtree is the name of the - qualifier. */ - DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL, - /* A pointer. The one subtree is the type which is being pointed - to. */ - DEMANGLE_COMPONENT_POINTER, - /* A reference. The one subtree is the type which is being - referenced. */ - DEMANGLE_COMPONENT_REFERENCE, - /* C++0x: An rvalue reference. The one subtree is the type which is - being referenced. */ - DEMANGLE_COMPONENT_RVALUE_REFERENCE, - /* A complex type. The one subtree is the base type. */ - DEMANGLE_COMPONENT_COMPLEX, - /* An imaginary type. The one subtree is the base type. */ - DEMANGLE_COMPONENT_IMAGINARY, - /* A builtin type. This holds the builtin type information. */ - DEMANGLE_COMPONENT_BUILTIN_TYPE, - /* A vendor's builtin type. This holds the name of the type. */ - DEMANGLE_COMPONENT_VENDOR_TYPE, - /* A function type. The left subtree is the return type. The right - subtree is a list of ARGLIST nodes. Either or both may be - NULL. */ - DEMANGLE_COMPONENT_FUNCTION_TYPE, - /* An array type. The left subtree is the dimension, which may be - NULL, or a string (represented as DEMANGLE_COMPONENT_NAME), or an - expression. The right subtree is the element type. */ - DEMANGLE_COMPONENT_ARRAY_TYPE, - /* A pointer to member type. The left subtree is the class type, - and the right subtree is the member type. CV-qualifiers appear - on the latter. */ - DEMANGLE_COMPONENT_PTRMEM_TYPE, - /* A fixed-point type. */ - DEMANGLE_COMPONENT_FIXED_TYPE, - /* A vector type. The left subtree is the number of elements, - the right subtree is the element type. */ - DEMANGLE_COMPONENT_VECTOR_TYPE, - /* An argument list. The left subtree is the current argument, and - the right subtree is either NULL or another ARGLIST node. */ - DEMANGLE_COMPONENT_ARGLIST, - /* A template argument list. The left subtree is the current - template argument, and the right subtree is either NULL or - another TEMPLATE_ARGLIST node. */ - DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, - /* An initializer list. The left subtree is either an explicit type or - NULL, and the right subtree is a DEMANGLE_COMPONENT_ARGLIST. */ - DEMANGLE_COMPONENT_INITIALIZER_LIST, - /* An operator. This holds information about a standard - operator. */ - DEMANGLE_COMPONENT_OPERATOR, - /* An extended operator. This holds the number of arguments, and - the name of the extended operator. */ - DEMANGLE_COMPONENT_EXTENDED_OPERATOR, - /* A typecast, represented as a unary operator. The one subtree is - the type to which the argument should be cast. */ - DEMANGLE_COMPONENT_CAST, - /* A conversion operator, represented as a unary operator. The one - subtree is the type to which the argument should be converted - to. */ - DEMANGLE_COMPONENT_CONVERSION, - /* A nullary expression. The left subtree is the operator. */ - DEMANGLE_COMPONENT_NULLARY, - /* A unary expression. The left subtree is the operator, and the - right subtree is the single argument. */ - DEMANGLE_COMPONENT_UNARY, - /* A binary expression. The left subtree is the operator, and the - right subtree is a BINARY_ARGS. */ - DEMANGLE_COMPONENT_BINARY, - /* Arguments to a binary expression. The left subtree is the first - argument, and the right subtree is the second argument. */ - DEMANGLE_COMPONENT_BINARY_ARGS, - /* A trinary expression. The left subtree is the operator, and the - right subtree is a TRINARY_ARG1. */ - DEMANGLE_COMPONENT_TRINARY, - /* Arguments to a trinary expression. The left subtree is the first - argument, and the right subtree is a TRINARY_ARG2. */ - DEMANGLE_COMPONENT_TRINARY_ARG1, - /* More arguments to a trinary expression. The left subtree is the - second argument, and the right subtree is the third argument. */ - DEMANGLE_COMPONENT_TRINARY_ARG2, - /* A literal. The left subtree is the type, and the right subtree - is the value, represented as a DEMANGLE_COMPONENT_NAME. */ - DEMANGLE_COMPONENT_LITERAL, - /* A negative literal. Like LITERAL, but the value is negated. - This is a minor hack: the NAME used for LITERAL points directly - to the mangled string, but since negative numbers are mangled - using 'n' instead of '-', we want a way to indicate a negative - number which involves neither modifying the mangled string nor - allocating a new copy of the literal in memory. */ - DEMANGLE_COMPONENT_LITERAL_NEG, - /* A libgcj compiled resource. The left subtree is the name of the - resource. */ - DEMANGLE_COMPONENT_JAVA_RESOURCE, - /* A name formed by the concatenation of two parts. The left - subtree is the first part and the right subtree the second. */ - DEMANGLE_COMPONENT_COMPOUND_NAME, - /* A name formed by a single character. */ - DEMANGLE_COMPONENT_CHARACTER, - /* A number. */ - DEMANGLE_COMPONENT_NUMBER, - /* A decltype type. */ - DEMANGLE_COMPONENT_DECLTYPE, - /* Global constructors keyed to name. */ - DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS, - /* Global destructors keyed to name. */ - DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS, - /* A lambda closure type. */ - DEMANGLE_COMPONENT_LAMBDA, - /* A default argument scope. */ - DEMANGLE_COMPONENT_DEFAULT_ARG, - /* An unnamed type. */ - DEMANGLE_COMPONENT_UNNAMED_TYPE, - /* A transactional clone. This has one subtree, the encoding for - which it is providing alternative linkage. */ - DEMANGLE_COMPONENT_TRANSACTION_CLONE, - /* A non-transactional clone entry point. In the i386/x86_64 abi, - the unmangled symbol of a tm_callable becomes a thunk and the - non-transactional function version is mangled thus. */ - DEMANGLE_COMPONENT_NONTRANSACTION_CLONE, - /* A pack expansion. */ - DEMANGLE_COMPONENT_PACK_EXPANSION, - /* A name with an ABI tag. */ - DEMANGLE_COMPONENT_TAGGED_NAME, - /* A transaction-safe function type. */ - DEMANGLE_COMPONENT_TRANSACTION_SAFE, - /* A cloned function. */ - DEMANGLE_COMPONENT_CLONE -}; - -/* Types which are only used internally. */ - -struct demangle_operator_info; -struct demangle_builtin_type_info; - -/* A node in the tree representation is an instance of a struct - demangle_component. Note that the field names of the struct are - not well protected against macros defined by the file including - this one. We can fix this if it ever becomes a problem. */ - -struct demangle_component -{ - /* The type of this component. */ - enum demangle_component_type type; - - union - { - /* For DEMANGLE_COMPONENT_NAME. */ - struct - { - /* A pointer to the name (which need not NULL terminated) and - its length. */ - const char *s; - int len; - } s_name; - - /* For DEMANGLE_COMPONENT_OPERATOR. */ - struct - { - /* Operator. */ - const struct demangle_operator_info *op; - } s_operator; - - /* For DEMANGLE_COMPONENT_EXTENDED_OPERATOR. */ - struct - { - /* Number of arguments. */ - int args; - /* Name. */ - struct demangle_component *name; - } s_extended_operator; - - /* For DEMANGLE_COMPONENT_FIXED_TYPE. */ - struct - { - /* The length, indicated by a C integer type name. */ - struct demangle_component *length; - /* _Accum or _Fract? */ - short accum; - /* Saturating or not? */ - short sat; - } s_fixed; - - /* For DEMANGLE_COMPONENT_CTOR. */ - struct - { - /* Kind of constructor. */ - enum gnu_v3_ctor_kinds kind; - /* Name. */ - struct demangle_component *name; - } s_ctor; - - /* For DEMANGLE_COMPONENT_DTOR. */ - struct - { - /* Kind of destructor. */ - enum gnu_v3_dtor_kinds kind; - /* Name. */ - struct demangle_component *name; - } s_dtor; - - /* For DEMANGLE_COMPONENT_BUILTIN_TYPE. */ - struct - { - /* Builtin type. */ - const struct demangle_builtin_type_info *type; - } s_builtin; - - /* For DEMANGLE_COMPONENT_SUB_STD. */ - struct - { - /* Standard substitution string. */ - const char* string; - /* Length of string. */ - int len; - } s_string; - - /* For DEMANGLE_COMPONENT_*_PARAM. */ - struct - { - /* Parameter index. */ - long number; - } s_number; - - /* For DEMANGLE_COMPONENT_CHARACTER. */ - struct - { - int character; - } s_character; - - /* For other types. */ - struct - { - /* Left (or only) subtree. */ - struct demangle_component *left; - /* Right subtree. */ - struct demangle_component *right; - } s_binary; - - struct - { - /* subtree, same place as d_left. */ - struct demangle_component *sub; - /* integer. */ - int num; - } s_unary_num; - - } u; -}; - -/* People building mangled trees are expected to allocate instances of - struct demangle_component themselves. They can then call one of - the following functions to fill them in. */ - -/* Fill in most component types with a left subtree and a right - subtree. Returns non-zero on success, zero on failure, such as an - unrecognized or inappropriate component type. */ - -extern int -cplus_demangle_fill_component (struct demangle_component *fill, - enum demangle_component_type, - struct demangle_component *left, - struct demangle_component *right); - -/* Fill in a DEMANGLE_COMPONENT_NAME. Returns non-zero on success, - zero for bad arguments. */ - -extern int -cplus_demangle_fill_name (struct demangle_component *fill, - const char *, int); - -/* Fill in a DEMANGLE_COMPONENT_BUILTIN_TYPE, using the name of the - builtin type (e.g., "int", etc.). Returns non-zero on success, - zero if the type is not recognized. */ - -extern int -cplus_demangle_fill_builtin_type (struct demangle_component *fill, - const char *type_name); - -/* Fill in a DEMANGLE_COMPONENT_OPERATOR, using the name of the - operator and the number of arguments which it takes (the latter is - used to disambiguate operators which can be both binary and unary, - such as '-'). Returns non-zero on success, zero if the operator is - not recognized. */ - -extern int -cplus_demangle_fill_operator (struct demangle_component *fill, - const char *opname, int args); - -/* Fill in a DEMANGLE_COMPONENT_EXTENDED_OPERATOR, providing the - number of arguments and the name. Returns non-zero on success, - zero for bad arguments. */ - -extern int -cplus_demangle_fill_extended_operator (struct demangle_component *fill, - int numargs, - struct demangle_component *nm); - -/* Fill in a DEMANGLE_COMPONENT_CTOR. Returns non-zero on success, - zero for bad arguments. */ - -extern int -cplus_demangle_fill_ctor (struct demangle_component *fill, - enum gnu_v3_ctor_kinds kind, - struct demangle_component *name); - -/* Fill in a DEMANGLE_COMPONENT_DTOR. Returns non-zero on success, - zero for bad arguments. */ - -extern int -cplus_demangle_fill_dtor (struct demangle_component *fill, - enum gnu_v3_dtor_kinds kind, - struct demangle_component *name); - -/* This function translates a mangled name into a struct - demangle_component tree. The first argument is the mangled name. - The second argument is DMGL_* options. This returns a pointer to a - tree on success, or NULL on failure. On success, the third - argument is set to a block of memory allocated by malloc. This - block should be passed to free when the tree is no longer - needed. */ - -extern struct demangle_component * -cplus_demangle_v3_components (const char *mangled, int options, void **mem); - -/* This function takes a struct demangle_component tree and returns - the corresponding demangled string. The first argument is DMGL_* - options. The second is the tree to demangle. The third is a guess - at the length of the demangled string, used to initially allocate - the return buffer. The fourth is a pointer to a size_t. On - success, this function returns a buffer allocated by malloc(), and - sets the size_t pointed to by the fourth argument to the size of - the allocated buffer (not the length of the returned string). On - failure, this function returns NULL, and sets the size_t pointed to - by the fourth argument to 0 for an invalid tree, or to 1 for a - memory allocation error. */ - -extern char * -cplus_demangle_print (int options, - const struct demangle_component *tree, - int estimated_length, - size_t *p_allocated_size); - -/* This function takes a struct demangle_component tree and passes back - a demangled string in one or more calls to a callback function. - The first argument is DMGL_* options. The second is the tree to - demangle. The third is a pointer to a callback function; on each call - this receives an element of the demangled string, its length, and an - opaque value. The fourth is the opaque value passed to the callback. - The callback is called once or more to return the full demangled - string. The demangled element string is always nul-terminated, though - its length is also provided for convenience. In contrast to - cplus_demangle_print(), this function does not allocate heap memory - to grow output strings (except perhaps where alloca() is implemented - by malloc()), and so is normally safe for use where the heap has been - corrupted. On success, this function returns 1; on failure, 0. */ - -extern int -cplus_demangle_print_callback (int options, - const struct demangle_component *tree, - demangle_callbackref callback, void *opaque); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* DEMANGLE_H */ diff --git a/include/devctl.h b/include/devctl.h deleted file mode 100644 index 46305cf..0000000 --- a/include/devctl.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2016,2019 Joel Sherrill . - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _POSIX_DEVCTL_h_ -#define _POSIX_DEVCTL_h_ - -/* - * Nothing in this file should be visible unless _POSIX_26_C_SOURCE is - * defined. - */ -#ifdef _POSIX_26_C_SOURCE - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(__rtems__) -/* - * The FACE Technical Standard, Edition 3.0 and later require the - * definition of the subcommand SOCKCLOSE in . - * - * Reference: https://www.opengroup.org/face - * - * Using 'D' should avoid the letters used by other users of - */ -#include - -#define SOCKCLOSE _IO('D', 1) /* socket close */ -#endif - -/* - * The posix_devctl() method is defined by POSIX 1003.26-2003. Aside - * from the single method, it adds the following requirements: - * - * + define _POSIX_26_VERSION to 200312L - * + add _SC_POSIX_26_VERSION in . Return _POSIX_26_VERSION - * + application must define _POSIX_26_C_SOURCE to use posix_devctl(). - * + posix_devctl() is prototyped in - */ -int posix_devctl( - int fd, - int dcmd, - void *__restrict dev_data_ptr, - size_t nbyte, - int *__restrict dev_info_ptr -); - -#ifdef __cplusplus -} -#endif - -#endif /* _POSIX_26_C_SOURCE */ -#endif /*_POSIX_DEVCTL_h_ */ diff --git a/include/dirent.h b/include/dirent.h deleted file mode 100644 index cdfa21f..0000000 --- a/include/dirent.h +++ /dev/null @@ -1,85 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)dirent.h 8.3 (Berkeley) 8/10/94 - * $FreeBSD: head/include/dirent.h 326024 2017-11-20 19:45:28Z pfg $ - */ - -#ifndef _DIRENT_H_ -#define _DIRENT_H_ - -#include -#include - -#if !defined(MAXNAMLEN) && __BSD_VISIBLE -#define MAXNAMLEN 1024 -#endif - -__BEGIN_DECLS -#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 700 -int alphasort(const struct dirent **, const struct dirent **); -int dirfd(DIR *); -#endif -#if __BSD_VISIBLE -int fdclosedir(DIR *); -#endif -DIR *opendir(const char *); -DIR *fdopendir(int); -struct dirent * - readdir(DIR *); -#if __POSIX_VISIBLE >= 199506 || __XSI_VISIBLE >= 500 -int readdir_r(DIR *__restrict, struct dirent *__restrict, - struct dirent **__restrict); -#endif -void rewinddir(DIR *); -#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 700 -int scandir(const char *, struct dirent ***, - int (*)(const struct dirent *), int (*)(const struct dirent **, - const struct dirent **)); -#endif -#ifdef _LIBC -void _seekdir(DIR *, long); -#endif -#if __MISC_VISIBLE || __XSI_VISIBLE -#ifndef __INSIDE_CYGWIN__ -void seekdir(DIR *, long); -long telldir(DIR *); -#endif -#endif -int closedir(DIR *); -#if __GNU_VISIBLE -int scandirat(int, const char *, struct dirent ***, - int (*) (const struct dirent *), int (*) (const struct dirent **, - const struct dirent **)); -int versionsort(const struct dirent **, const struct dirent **); -#endif -__END_DECLS - -#endif /*_DIRENT_H_*/ diff --git a/include/dis-asm.h b/include/dis-asm.h deleted file mode 100644 index 78e9fc0..0000000 --- a/include/dis-asm.h +++ /dev/null @@ -1,382 +0,0 @@ -/* Interface between the opcode library and its callers. - - Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, 2010, - 2011, 2012 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. - - Written by Cygnus Support, 1993. - - The opcode library (libopcodes.a) provides instruction decoders for - a large variety of instruction sets, callable with an identical - interface, for making instruction-processing programs more independent - of the instruction set being processed. */ - -#ifndef DIS_ASM_H -#define DIS_ASM_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include "bfd.h" - - typedef int (*fprintf_ftype) (void *, const char*, ...) ATTRIBUTE_FPTR_PRINTF_2; - -enum dis_insn_type -{ - dis_noninsn, /* Not a valid instruction. */ - dis_nonbranch, /* Not a branch instruction. */ - dis_branch, /* Unconditional branch. */ - dis_condbranch, /* Conditional branch. */ - dis_jsr, /* Jump to subroutine. */ - dis_condjsr, /* Conditional jump to subroutine. */ - dis_dref, /* Data reference instruction. */ - dis_dref2 /* Two data references in instruction. */ -}; - -/* This struct is passed into the instruction decoding routine, - and is passed back out into each callback. The various fields are used - for conveying information from your main routine into your callbacks, - for passing information into the instruction decoders (such as the - addresses of the callback functions), or for passing information - back from the instruction decoders to their callers. - - It must be initialized before it is first passed; this can be done - by hand, or using one of the initialization macros below. */ - -typedef struct disassemble_info -{ - fprintf_ftype fprintf_func; - void *stream; - void *application_data; - - /* Target description. We could replace this with a pointer to the bfd, - but that would require one. There currently isn't any such requirement - so to avoid introducing one we record these explicitly. */ - /* The bfd_flavour. This can be bfd_target_unknown_flavour. */ - enum bfd_flavour flavour; - /* The bfd_arch value. */ - enum bfd_architecture arch; - /* The bfd_mach value. */ - unsigned long mach; - /* Endianness (for bi-endian cpus). Mono-endian cpus can ignore this. */ - enum bfd_endian endian; - /* Endianness of code, for mixed-endian situations such as ARM BE8. */ - enum bfd_endian endian_code; - /* An arch/mach-specific bitmask of selected instruction subsets, mainly - for processors with run-time-switchable instruction sets. The default, - zero, means that there is no constraint. CGEN-based opcodes ports - may use ISA_foo masks. */ - void *insn_sets; - - /* Some targets need information about the current section to accurately - display insns. If this is NULL, the target disassembler function - will have to make its best guess. */ - asection *section; - - /* An array of pointers to symbols either at the location being disassembled - or at the start of the function being disassembled. The array is sorted - so that the first symbol is intended to be the one used. The others are - present for any misc. purposes. This is not set reliably, but if it is - not NULL, it is correct. */ - asymbol **symbols; - /* Number of symbols in array. */ - int num_symbols; - - /* Symbol table provided for targets that want to look at it. This is - used on Arm to find mapping symbols and determine Arm/Thumb code. */ - asymbol **symtab; - int symtab_pos; - int symtab_size; - - /* For use by the disassembler. - The top 16 bits are reserved for public use (and are documented here). - The bottom 16 bits are for the internal use of the disassembler. */ - unsigned long flags; - /* Set if the disassembler has determined that there are one or more - relocations associated with the instruction being disassembled. */ -#define INSN_HAS_RELOC (1 << 31) - /* Set if the user has requested the disassembly of data as well as code. */ -#define DISASSEMBLE_DATA (1 << 30) - /* Set if the user has specifically set the machine type encoded in the - mach field of this structure. */ -#define USER_SPECIFIED_MACHINE_TYPE (1 << 29) - - /* Use internally by the target specific disassembly code. */ - void *private_data; - - /* Function used to get bytes to disassemble. MEMADDR is the - address of the stuff to be disassembled, MYADDR is the address to - put the bytes in, and LENGTH is the number of bytes to read. - INFO is a pointer to this struct. - Returns an errno value or 0 for success. */ - int (*read_memory_func) - (bfd_vma memaddr, bfd_byte *myaddr, unsigned int length, - struct disassemble_info *dinfo); - - /* Function which should be called if we get an error that we can't - recover from. STATUS is the errno value from read_memory_func and - MEMADDR is the address that we were trying to read. INFO is a - pointer to this struct. */ - void (*memory_error_func) - (int status, bfd_vma memaddr, struct disassemble_info *dinfo); - - /* Function called to print ADDR. */ - void (*print_address_func) - (bfd_vma addr, struct disassemble_info *dinfo); - - /* Function called to determine if there is a symbol at the given ADDR. - If there is, the function returns 1, otherwise it returns 0. - This is used by ports which support an overlay manager where - the overlay number is held in the top part of an address. In - some circumstances we want to include the overlay number in the - address, (normally because there is a symbol associated with - that address), but sometimes we want to mask out the overlay bits. */ - int (* symbol_at_address_func) - (bfd_vma addr, struct disassemble_info *dinfo); - - /* Function called to check if a SYMBOL is can be displayed to the user. - This is used by some ports that want to hide special symbols when - displaying debugging outout. */ - bfd_boolean (* symbol_is_valid) - (asymbol *, struct disassemble_info *dinfo); - - /* These are for buffer_read_memory. */ - bfd_byte *buffer; - bfd_vma buffer_vma; - unsigned int buffer_length; - - /* This variable may be set by the instruction decoder. It suggests - the number of bytes objdump should display on a single line. If - the instruction decoder sets this, it should always set it to - the same value in order to get reasonable looking output. */ - int bytes_per_line; - - /* The next two variables control the way objdump displays the raw data. */ - /* For example, if bytes_per_line is 8 and bytes_per_chunk is 4, the */ - /* output will look like this: - 00: 00000000 00000000 - with the chunks displayed according to "display_endian". */ - int bytes_per_chunk; - enum bfd_endian display_endian; - - /* Number of octets per incremented target address - Normally one, but some DSPs have byte sizes of 16 or 32 bits. */ - unsigned int octets_per_byte; - - /* The number of zeroes we want to see at the end of a section before we - start skipping them. */ - unsigned int skip_zeroes; - - /* The number of zeroes to skip at the end of a section. If the number - of zeroes at the end is between SKIP_ZEROES_AT_END and SKIP_ZEROES, - they will be disassembled. If there are fewer than - SKIP_ZEROES_AT_END, they will be skipped. This is a heuristic - attempt to avoid disassembling zeroes inserted by section - alignment. */ - unsigned int skip_zeroes_at_end; - - /* Whether the disassembler always needs the relocations. */ - bfd_boolean disassembler_needs_relocs; - - /* Results from instruction decoders. Not all decoders yet support - this information. This info is set each time an instruction is - decoded, and is only valid for the last such instruction. - - To determine whether this decoder supports this information, set - insn_info_valid to 0, decode an instruction, then check it. */ - - char insn_info_valid; /* Branch info has been set. */ - char branch_delay_insns; /* How many sequential insn's will run before - a branch takes effect. (0 = normal) */ - char data_size; /* Size of data reference in insn, in bytes */ - enum dis_insn_type insn_type; /* Type of instruction */ - bfd_vma target; /* Target address of branch or dref, if known; - zero if unknown. */ - bfd_vma target2; /* Second target address for dref2 */ - - /* Command line options specific to the target disassembler. */ - char * disassembler_options; - -} disassemble_info; - - -/* Standard disassemblers. Disassemble one instruction at the given - target address. Return number of octets processed. */ -typedef int (*disassembler_ftype) (bfd_vma, disassemble_info *); - -extern int print_insn_aarch64 (bfd_vma, disassemble_info *); -extern int print_insn_alpha (bfd_vma, disassemble_info *); -extern int print_insn_avr (bfd_vma, disassemble_info *); -extern int print_insn_bfin (bfd_vma, disassemble_info *); -extern int print_insn_big_arm (bfd_vma, disassemble_info *); -extern int print_insn_big_mips (bfd_vma, disassemble_info *); -extern int print_insn_big_nios2 (bfd_vma, disassemble_info *); -extern int print_insn_big_or32 (bfd_vma, disassemble_info *); -extern int print_insn_big_powerpc (bfd_vma, disassemble_info *); -extern int print_insn_big_score (bfd_vma, disassemble_info *); -extern int print_insn_cr16 (bfd_vma, disassemble_info *); -extern int print_insn_crx (bfd_vma, disassemble_info *); -extern int print_insn_d10v (bfd_vma, disassemble_info *); -extern int print_insn_d30v (bfd_vma, disassemble_info *); -extern int print_insn_dlx (bfd_vma, disassemble_info *); -extern int print_insn_epiphany (bfd_vma, disassemble_info *); -extern int print_insn_fr30 (bfd_vma, disassemble_info *); -extern int print_insn_frv (bfd_vma, disassemble_info *); -extern int print_insn_h8300 (bfd_vma, disassemble_info *); -extern int print_insn_h8300h (bfd_vma, disassemble_info *); -extern int print_insn_h8300s (bfd_vma, disassemble_info *); -extern int print_insn_h8500 (bfd_vma, disassemble_info *); -extern int print_insn_hppa (bfd_vma, disassemble_info *); -extern int print_insn_i370 (bfd_vma, disassemble_info *); -extern int print_insn_i386 (bfd_vma, disassemble_info *); -extern int print_insn_i386_att (bfd_vma, disassemble_info *); -extern int print_insn_i386_intel (bfd_vma, disassemble_info *); -extern int print_insn_i860 (bfd_vma, disassemble_info *); -extern int print_insn_i960 (bfd_vma, disassemble_info *); -extern int print_insn_ia64 (bfd_vma, disassemble_info *); -extern int print_insn_ip2k (bfd_vma, disassemble_info *); -extern int print_insn_iq2000 (bfd_vma, disassemble_info *); -extern int print_insn_little_arm (bfd_vma, disassemble_info *); -extern int print_insn_little_mips (bfd_vma, disassemble_info *); -extern int print_insn_little_nios2 (bfd_vma, disassemble_info *); -extern int print_insn_little_or32 (bfd_vma, disassemble_info *); -extern int print_insn_little_powerpc (bfd_vma, disassemble_info *); -extern int print_insn_little_score (bfd_vma, disassemble_info *); -extern int print_insn_lm32 (bfd_vma, disassemble_info *); -extern int print_insn_m32c (bfd_vma, disassemble_info *); -extern int print_insn_m32r (bfd_vma, disassemble_info *); -extern int print_insn_m68hc11 (bfd_vma, disassemble_info *); -extern int print_insn_m68hc12 (bfd_vma, disassemble_info *); -extern int print_insn_m9s12x (bfd_vma, disassemble_info *); -extern int print_insn_m9s12xg (bfd_vma, disassemble_info *); -extern int print_insn_m68k (bfd_vma, disassemble_info *); -extern int print_insn_m88k (bfd_vma, disassemble_info *); -extern int print_insn_mcore (bfd_vma, disassemble_info *); -extern int print_insn_mep (bfd_vma, disassemble_info *); -extern int print_insn_metag (bfd_vma, disassemble_info *); -extern int print_insn_microblaze (bfd_vma, disassemble_info *); -extern int print_insn_mmix (bfd_vma, disassemble_info *); -extern int print_insn_mn10200 (bfd_vma, disassemble_info *); -extern int print_insn_mn10300 (bfd_vma, disassemble_info *); -extern int print_insn_moxie (bfd_vma, disassemble_info *); -extern int print_insn_msp430 (bfd_vma, disassemble_info *); -extern int print_insn_mt (bfd_vma, disassemble_info *); -extern int print_insn_ns32k (bfd_vma, disassemble_info *); -extern int print_insn_openrisc (bfd_vma, disassemble_info *); -extern int print_insn_pdp11 (bfd_vma, disassemble_info *); -extern int print_insn_pj (bfd_vma, disassemble_info *); -extern int print_insn_rs6000 (bfd_vma, disassemble_info *); -extern int print_insn_s390 (bfd_vma, disassemble_info *); -extern int print_insn_sh (bfd_vma, disassemble_info *); -extern int print_insn_sh64 (bfd_vma, disassemble_info *); -extern int print_insn_sh64x_media (bfd_vma, disassemble_info *); -extern int print_insn_sparc (bfd_vma, disassemble_info *); -extern int print_insn_spu (bfd_vma, disassemble_info *); -extern int print_insn_tic30 (bfd_vma, disassemble_info *); -extern int print_insn_tic4x (bfd_vma, disassemble_info *); -extern int print_insn_tic54x (bfd_vma, disassemble_info *); -extern int print_insn_tic6x (bfd_vma, disassemble_info *); -extern int print_insn_tic80 (bfd_vma, disassemble_info *); -extern int print_insn_tilegx (bfd_vma, disassemble_info *); -extern int print_insn_tilepro (bfd_vma, disassemble_info *); -extern int print_insn_v850 (bfd_vma, disassemble_info *); -extern int print_insn_vax (bfd_vma, disassemble_info *); -extern int print_insn_w65 (bfd_vma, disassemble_info *); -extern int print_insn_xc16x (bfd_vma, disassemble_info *); -extern int print_insn_xgate (bfd_vma, disassemble_info *); -extern int print_insn_xstormy16 (bfd_vma, disassemble_info *); -extern int print_insn_xtensa (bfd_vma, disassemble_info *); -extern int print_insn_z80 (bfd_vma, disassemble_info *); -extern int print_insn_z8001 (bfd_vma, disassemble_info *); -extern int print_insn_z8002 (bfd_vma, disassemble_info *); -extern int print_insn_rx (bfd_vma, disassemble_info *); -extern int print_insn_rl78 (bfd_vma, disassemble_info *); - -extern disassembler_ftype arc_get_disassembler (void *); -extern disassembler_ftype cris_get_disassembler (bfd *); - -extern void print_aarch64_disassembler_options (FILE *); -extern void print_i386_disassembler_options (FILE *); -extern void print_mips_disassembler_options (FILE *); -extern void print_ppc_disassembler_options (FILE *); -extern void print_arm_disassembler_options (FILE *); -extern void parse_arm_disassembler_option (char *); -extern void print_s390_disassembler_options (FILE *); -extern int get_arm_regname_num_options (void); -extern int set_arm_regname_option (int); -extern int get_arm_regnames (int, const char **, const char **, const char *const **); -extern bfd_boolean aarch64_symbol_is_valid (asymbol *, struct disassemble_info *); -extern bfd_boolean arm_symbol_is_valid (asymbol *, struct disassemble_info *); -extern void disassemble_init_powerpc (struct disassemble_info *); - -/* Fetch the disassembler for a given BFD, if that support is available. */ -extern disassembler_ftype disassembler (bfd *); - -/* Amend the disassemble_info structure as necessary for the target architecture. - Should only be called after initialising the info->arch field. */ -extern void disassemble_init_for_target (struct disassemble_info * dinfo); - -/* Document any target specific options available from the disassembler. */ -extern void disassembler_usage (FILE *); - - -/* This block of definitions is for particular callers who read instructions - into a buffer before calling the instruction decoder. */ - -/* Here is a function which callers may wish to use for read_memory_func. - It gets bytes from a buffer. */ -extern int buffer_read_memory - (bfd_vma, bfd_byte *, unsigned int, struct disassemble_info *); - -/* This function goes with buffer_read_memory. - It prints a message using info->fprintf_func and info->stream. */ -extern void perror_memory (int, bfd_vma, struct disassemble_info *); - - -/* Just print the address in hex. This is included for completeness even - though both GDB and objdump provide their own (to print symbolic - addresses). */ -extern void generic_print_address - (bfd_vma, struct disassemble_info *); - -/* Always true. */ -extern int generic_symbol_at_address - (bfd_vma, struct disassemble_info *); - -/* Also always true. */ -extern bfd_boolean generic_symbol_is_valid - (asymbol *, struct disassemble_info *); - -/* Method to initialize a disassemble_info struct. This should be - called by all applications creating such a struct. */ -extern void init_disassemble_info (struct disassemble_info *dinfo, void *stream, - fprintf_ftype fprintf_func); - -/* For compatibility with existing code. */ -#define INIT_DISASSEMBLE_INFO(INFO, STREAM, FPRINTF_FUNC) \ - init_disassemble_info (&(INFO), (STREAM), (fprintf_ftype) (FPRINTF_FUNC)) -#define INIT_DISASSEMBLE_INFO_NO_ARCH(INFO, STREAM, FPRINTF_FUNC) \ - init_disassemble_info (&(INFO), (STREAM), (fprintf_ftype) (FPRINTF_FUNC)) - - -#ifdef __cplusplus -} -#endif - -#endif /* ! defined (DIS_ASM_H) */ diff --git a/include/dwarf2.def b/include/dwarf2.def deleted file mode 100644 index 2dfee56..0000000 --- a/include/dwarf2.def +++ /dev/null @@ -1,713 +0,0 @@ -/* -*- c -*- - Declarations and definitions of codes relating to the DWARF2 and - DWARF3 symbolic debugging information formats. - Copyright (C) 1992-2015 Free Software Foundation, Inc. - - Written by Gary Funck (gary@intrepid.com) The Ada Joint Program - Office (AJPO), Florida State University and Silicon Graphics Inc. - provided support for this effort -- June 21, 1995. - - Derived from the DWARF 1 implementation written by Ron Guilmette - (rfg@netcom.com), November 1990. - - This file is part of GCC. - - GCC is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the Free - Software Foundation; either version 3, or (at your option) any later - version. - - GCC is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. - - Under Section 7 of GPL version 3, you are granted additional - permissions described in the GCC Runtime Library Exception, version - 3.1, as published by the Free Software Foundation. - - You should have received a copy of the GNU General Public License and - a copy of the GCC Runtime Library Exception along with this program; - see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - . */ - -/* This file is derived from the DWARF specification (a public document) - Revision 2.0.0 (July 27, 1993) developed by the UNIX International - Programming Languages Special Interest Group (UI/PLSIG) and distributed - by UNIX International. Copies of this specification are available from - UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054. - - This file also now contains definitions from the DWARF 3 specification - published Dec 20, 2005, available from: http://dwarf.freestandards.org. - - This file also now contains definitions from the DWARF 4 - specification, available from: http://dwarfstd.org/ */ - -/* This file declares various DWARF-related constants using a set of - macros which can be redefined by the including file. - - The macros are in sections. Each section corresponds to a single - set of DWARF constants and has a corresponding key. The key is - used in all the macro names. - - The sections are TAG (for DW_TAG_ constants), FORM (DW_FORM_), AT - (DW_AT_), OP (DW_OP_), ATE (DW_ATE_), and CFA (DW_CFA_). - - Using TAG as an example, the following macros may be used for each - key: - - DW_FIRST_TAG(name, value) - Introduce the first DW_TAG constant. - - DW_TAG(name, value) - Define a subsequent constant. - - DW_TAG_DUP(name, value) - Define a subsequent constant whose value - is a duplicate of some other constant. Not all keys use the _DUP - macro form. If more than one name shares a value, then the base - (DW_TAG) form will be the preferred name and DW_TAG_DUP will hold - any alternate names. - - DW_END_TAG - Invoked at the end of the DW_TAG constants. */ - -DW_FIRST_TAG (DW_TAG_padding, 0x00) -DW_TAG (DW_TAG_array_type, 0x01) -DW_TAG (DW_TAG_class_type, 0x02) -DW_TAG (DW_TAG_entry_point, 0x03) -DW_TAG (DW_TAG_enumeration_type, 0x04) -DW_TAG (DW_TAG_formal_parameter, 0x05) -DW_TAG (DW_TAG_imported_declaration, 0x08) -DW_TAG (DW_TAG_label, 0x0a) -DW_TAG (DW_TAG_lexical_block, 0x0b) -DW_TAG (DW_TAG_member, 0x0d) -DW_TAG (DW_TAG_pointer_type, 0x0f) -DW_TAG (DW_TAG_reference_type, 0x10) -DW_TAG (DW_TAG_compile_unit, 0x11) -DW_TAG (DW_TAG_string_type, 0x12) -DW_TAG (DW_TAG_structure_type, 0x13) -DW_TAG (DW_TAG_subroutine_type, 0x15) -DW_TAG (DW_TAG_typedef, 0x16) -DW_TAG (DW_TAG_union_type, 0x17) -DW_TAG (DW_TAG_unspecified_parameters, 0x18) -DW_TAG (DW_TAG_variant, 0x19) -DW_TAG (DW_TAG_common_block, 0x1a) -DW_TAG (DW_TAG_common_inclusion, 0x1b) -DW_TAG (DW_TAG_inheritance, 0x1c) -DW_TAG (DW_TAG_inlined_subroutine, 0x1d) -DW_TAG (DW_TAG_module, 0x1e) -DW_TAG (DW_TAG_ptr_to_member_type, 0x1f) -DW_TAG (DW_TAG_set_type, 0x20) -DW_TAG (DW_TAG_subrange_type, 0x21) -DW_TAG (DW_TAG_with_stmt, 0x22) -DW_TAG (DW_TAG_access_declaration, 0x23) -DW_TAG (DW_TAG_base_type, 0x24) -DW_TAG (DW_TAG_catch_block, 0x25) -DW_TAG (DW_TAG_const_type, 0x26) -DW_TAG (DW_TAG_constant, 0x27) -DW_TAG (DW_TAG_enumerator, 0x28) -DW_TAG (DW_TAG_file_type, 0x29) -DW_TAG (DW_TAG_friend, 0x2a) -DW_TAG (DW_TAG_namelist, 0x2b) -DW_TAG (DW_TAG_namelist_item, 0x2c) -DW_TAG (DW_TAG_packed_type, 0x2d) -DW_TAG (DW_TAG_subprogram, 0x2e) -DW_TAG (DW_TAG_template_type_param, 0x2f) -DW_TAG (DW_TAG_template_value_param, 0x30) -DW_TAG (DW_TAG_thrown_type, 0x31) -DW_TAG (DW_TAG_try_block, 0x32) -DW_TAG (DW_TAG_variant_part, 0x33) -DW_TAG (DW_TAG_variable, 0x34) -DW_TAG (DW_TAG_volatile_type, 0x35) -/* DWARF 3. */ -DW_TAG (DW_TAG_dwarf_procedure, 0x36) -DW_TAG (DW_TAG_restrict_type, 0x37) -DW_TAG (DW_TAG_interface_type, 0x38) -DW_TAG (DW_TAG_namespace, 0x39) -DW_TAG (DW_TAG_imported_module, 0x3a) -DW_TAG (DW_TAG_unspecified_type, 0x3b) -DW_TAG (DW_TAG_partial_unit, 0x3c) -DW_TAG (DW_TAG_imported_unit, 0x3d) -DW_TAG (DW_TAG_condition, 0x3f) -DW_TAG (DW_TAG_shared_type, 0x40) -/* DWARF 4. */ -DW_TAG (DW_TAG_type_unit, 0x41) -DW_TAG (DW_TAG_rvalue_reference_type, 0x42) -DW_TAG (DW_TAG_template_alias, 0x43) -/* DWARF 5. */ -DW_TAG (DW_TAG_atomic_type, 0x47) - -DW_TAG_DUP (DW_TAG_lo_user, 0x4080) -DW_TAG_DUP (DW_TAG_hi_user, 0xffff) - -/* SGI/MIPS Extensions. */ -DW_TAG (DW_TAG_MIPS_loop, 0x4081) - -/* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */ -DW_TAG (DW_TAG_HP_array_descriptor, 0x4090) -DW_TAG (DW_TAG_HP_Bliss_field, 0x4091) -DW_TAG (DW_TAG_HP_Bliss_field_set, 0x4092) - -/* GNU extensions. */ -DW_TAG (DW_TAG_format_label, 0x4101) /* For FORTRAN 77 and Fortran 90. */ -DW_TAG (DW_TAG_function_template, 0x4102) /* For C++. */ -DW_TAG (DW_TAG_class_template, 0x4103) /* For C++. */ -DW_TAG (DW_TAG_GNU_BINCL, 0x4104) -DW_TAG (DW_TAG_GNU_EINCL, 0x4105) -/* Template template parameter. - See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */ -DW_TAG (DW_TAG_GNU_template_template_param, 0x4106) - -/* Template parameter pack extension, specified at - http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates - The values of these two TAGS are in the DW_TAG_GNU_* space until the tags - are properly part of DWARF 5. */ -DW_TAG (DW_TAG_GNU_template_parameter_pack, 0x4107) -DW_TAG (DW_TAG_GNU_formal_parameter_pack, 0x4108) -/* The GNU call site extension, specified at - http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . - The values of these two TAGS are in the DW_TAG_GNU_* space until the tags - are properly part of DWARF 5. */ -DW_TAG (DW_TAG_GNU_call_site, 0x4109) -DW_TAG (DW_TAG_GNU_call_site_parameter, 0x410a) -/* Extensions for UPC. See: http://dwarfstd.org/doc/DWARF4.pdf. */ -DW_TAG (DW_TAG_upc_shared_type, 0x8765) -DW_TAG (DW_TAG_upc_strict_type, 0x8766) -DW_TAG (DW_TAG_upc_relaxed_type, 0x8767) -/* PGI (STMicroelectronics) extensions. No documentation available. */ -DW_TAG (DW_TAG_PGI_kanji_type, 0xA000) -DW_TAG (DW_TAG_PGI_interface_block, 0xA020) -DW_END_TAG - -DW_FIRST_FORM (DW_FORM_addr, 0x01) -DW_FORM (DW_FORM_block2, 0x03) -DW_FORM (DW_FORM_block4, 0x04) -DW_FORM (DW_FORM_data2, 0x05) -DW_FORM (DW_FORM_data4, 0x06) -DW_FORM (DW_FORM_data8, 0x07) -DW_FORM (DW_FORM_string, 0x08) -DW_FORM (DW_FORM_block, 0x09) -DW_FORM (DW_FORM_block1, 0x0a) -DW_FORM (DW_FORM_data1, 0x0b) -DW_FORM (DW_FORM_flag, 0x0c) -DW_FORM (DW_FORM_sdata, 0x0d) -DW_FORM (DW_FORM_strp, 0x0e) -DW_FORM (DW_FORM_udata, 0x0f) -DW_FORM (DW_FORM_ref_addr, 0x10) -DW_FORM (DW_FORM_ref1, 0x11) -DW_FORM (DW_FORM_ref2, 0x12) -DW_FORM (DW_FORM_ref4, 0x13) -DW_FORM (DW_FORM_ref8, 0x14) -DW_FORM (DW_FORM_ref_udata, 0x15) -DW_FORM (DW_FORM_indirect, 0x16) -/* DWARF 4. */ -DW_FORM (DW_FORM_sec_offset, 0x17) -DW_FORM (DW_FORM_exprloc, 0x18) -DW_FORM (DW_FORM_flag_present, 0x19) -DW_FORM (DW_FORM_ref_sig8, 0x20) -/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */ -DW_FORM (DW_FORM_GNU_addr_index, 0x1f01) -DW_FORM (DW_FORM_GNU_str_index, 0x1f02) -/* Extensions for DWZ multifile. - See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */ -DW_FORM (DW_FORM_GNU_ref_alt, 0x1f20) -DW_FORM (DW_FORM_GNU_strp_alt, 0x1f21) -DW_END_FORM - -DW_FIRST_AT (DW_AT_sibling, 0x01) -DW_AT (DW_AT_location, 0x02) -DW_AT (DW_AT_name, 0x03) -DW_AT (DW_AT_ordering, 0x09) -DW_AT (DW_AT_subscr_data, 0x0a) -DW_AT (DW_AT_byte_size, 0x0b) -DW_AT (DW_AT_bit_offset, 0x0c) -DW_AT (DW_AT_bit_size, 0x0d) -DW_AT (DW_AT_element_list, 0x0f) -DW_AT (DW_AT_stmt_list, 0x10) -DW_AT (DW_AT_low_pc, 0x11) -DW_AT (DW_AT_high_pc, 0x12) -DW_AT (DW_AT_language, 0x13) -DW_AT (DW_AT_member, 0x14) -DW_AT (DW_AT_discr, 0x15) -DW_AT (DW_AT_discr_value, 0x16) -DW_AT (DW_AT_visibility, 0x17) -DW_AT (DW_AT_import, 0x18) -DW_AT (DW_AT_string_length, 0x19) -DW_AT (DW_AT_common_reference, 0x1a) -DW_AT (DW_AT_comp_dir, 0x1b) -DW_AT (DW_AT_const_value, 0x1c) -DW_AT (DW_AT_containing_type, 0x1d) -DW_AT (DW_AT_default_value, 0x1e) -DW_AT (DW_AT_inline, 0x20) -DW_AT (DW_AT_is_optional, 0x21) -DW_AT (DW_AT_lower_bound, 0x22) -DW_AT (DW_AT_producer, 0x25) -DW_AT (DW_AT_prototyped, 0x27) -DW_AT (DW_AT_return_addr, 0x2a) -DW_AT (DW_AT_start_scope, 0x2c) -DW_AT (DW_AT_bit_stride, 0x2e) -DW_AT (DW_AT_upper_bound, 0x2f) -DW_AT (DW_AT_abstract_origin, 0x31) -DW_AT (DW_AT_accessibility, 0x32) -DW_AT (DW_AT_address_class, 0x33) -DW_AT (DW_AT_artificial, 0x34) -DW_AT (DW_AT_base_types, 0x35) -DW_AT (DW_AT_calling_convention, 0x36) -DW_AT (DW_AT_count, 0x37) -DW_AT (DW_AT_data_member_location, 0x38) -DW_AT (DW_AT_decl_column, 0x39) -DW_AT (DW_AT_decl_file, 0x3a) -DW_AT (DW_AT_decl_line, 0x3b) -DW_AT (DW_AT_declaration, 0x3c) -DW_AT (DW_AT_discr_list, 0x3d) -DW_AT (DW_AT_encoding, 0x3e) -DW_AT (DW_AT_external, 0x3f) -DW_AT (DW_AT_frame_base, 0x40) -DW_AT (DW_AT_friend, 0x41) -DW_AT (DW_AT_identifier_case, 0x42) -DW_AT (DW_AT_macro_info, 0x43) -DW_AT (DW_AT_namelist_items, 0x44) -DW_AT (DW_AT_priority, 0x45) -DW_AT (DW_AT_segment, 0x46) -DW_AT (DW_AT_specification, 0x47) -DW_AT (DW_AT_static_link, 0x48) -DW_AT (DW_AT_type, 0x49) -DW_AT (DW_AT_use_location, 0x4a) -DW_AT (DW_AT_variable_parameter, 0x4b) -DW_AT (DW_AT_virtuality, 0x4c) -DW_AT (DW_AT_vtable_elem_location, 0x4d) -/* DWARF 3 values. */ -DW_AT (DW_AT_allocated, 0x4e) -DW_AT (DW_AT_associated, 0x4f) -DW_AT (DW_AT_data_location, 0x50) -DW_AT (DW_AT_byte_stride, 0x51) -DW_AT (DW_AT_entry_pc, 0x52) -DW_AT (DW_AT_use_UTF8, 0x53) -DW_AT (DW_AT_extension, 0x54) -DW_AT (DW_AT_ranges, 0x55) -DW_AT (DW_AT_trampoline, 0x56) -DW_AT (DW_AT_call_column, 0x57) -DW_AT (DW_AT_call_file, 0x58) -DW_AT (DW_AT_call_line, 0x59) -DW_AT (DW_AT_description, 0x5a) -DW_AT (DW_AT_binary_scale, 0x5b) -DW_AT (DW_AT_decimal_scale, 0x5c) -DW_AT (DW_AT_small, 0x5d) -DW_AT (DW_AT_decimal_sign, 0x5e) -DW_AT (DW_AT_digit_count, 0x5f) -DW_AT (DW_AT_picture_string, 0x60) -DW_AT (DW_AT_mutable, 0x61) -DW_AT (DW_AT_threads_scaled, 0x62) -DW_AT (DW_AT_explicit, 0x63) -DW_AT (DW_AT_object_pointer, 0x64) -DW_AT (DW_AT_endianity, 0x65) -DW_AT (DW_AT_elemental, 0x66) -DW_AT (DW_AT_pure, 0x67) -DW_AT (DW_AT_recursive, 0x68) -/* DWARF 4. */ -DW_AT (DW_AT_signature, 0x69) -DW_AT (DW_AT_main_subprogram, 0x6a) -DW_AT (DW_AT_data_bit_offset, 0x6b) -DW_AT (DW_AT_const_expr, 0x6c) -DW_AT (DW_AT_enum_class, 0x6d) -DW_AT (DW_AT_linkage_name, 0x6e) -/* DWARF 5. */ -DW_AT (DW_AT_noreturn, 0x87) - -DW_AT_DUP (DW_AT_lo_user, 0x2000) /* Implementation-defined range start. */ -DW_AT_DUP (DW_AT_hi_user, 0x3fff) /* Implementation-defined range end. */ - -/* SGI/MIPS extensions. */ -DW_AT (DW_AT_MIPS_fde, 0x2001) -DW_AT (DW_AT_MIPS_loop_begin, 0x2002) -DW_AT (DW_AT_MIPS_tail_loop_begin, 0x2003) -DW_AT (DW_AT_MIPS_epilog_begin, 0x2004) -DW_AT (DW_AT_MIPS_loop_unroll_factor, 0x2005) -DW_AT (DW_AT_MIPS_software_pipeline_depth, 0x2006) -DW_AT (DW_AT_MIPS_linkage_name, 0x2007) -DW_AT (DW_AT_MIPS_stride, 0x2008) -DW_AT (DW_AT_MIPS_abstract_name, 0x2009) -DW_AT (DW_AT_MIPS_clone_origin, 0x200a) -DW_AT (DW_AT_MIPS_has_inlines, 0x200b) -/* HP extensions. */ -DW_AT (DW_AT_HP_block_index, 0x2000) -DW_AT_DUP (DW_AT_HP_unmodifiable, 0x2001) /* Same as DW_AT_MIPS_fde. */ -DW_AT_DUP (DW_AT_HP_prologue, 0x2005) /* Same as DW_AT_MIPS_loop_unroll. */ -DW_AT_DUP (DW_AT_HP_epilogue, 0x2008) /* Same as DW_AT_MIPS_stride. */ -DW_AT (DW_AT_HP_actuals_stmt_list, 0x2010) -DW_AT (DW_AT_HP_proc_per_section, 0x2011) -DW_AT (DW_AT_HP_raw_data_ptr, 0x2012) -DW_AT (DW_AT_HP_pass_by_reference, 0x2013) -DW_AT (DW_AT_HP_opt_level, 0x2014) -DW_AT (DW_AT_HP_prof_version_id, 0x2015) -DW_AT (DW_AT_HP_opt_flags, 0x2016) -DW_AT (DW_AT_HP_cold_region_low_pc, 0x2017) -DW_AT (DW_AT_HP_cold_region_high_pc, 0x2018) -DW_AT (DW_AT_HP_all_variables_modifiable, 0x2019) -DW_AT (DW_AT_HP_linkage_name, 0x201a) -DW_AT (DW_AT_HP_prof_flags, 0x201b) /* In comp unit of procs_info for -g. */ -DW_AT (DW_AT_HP_unit_name, 0x201f) -DW_AT (DW_AT_HP_unit_size, 0x2020) -DW_AT (DW_AT_HP_widened_byte_size, 0x2021) -DW_AT (DW_AT_HP_definition_points, 0x2022) -DW_AT (DW_AT_HP_default_location, 0x2023) -DW_AT (DW_AT_HP_is_result_param, 0x2029) - -/* GNU extensions. */ -DW_AT (DW_AT_sf_names, 0x2101) -DW_AT (DW_AT_src_info, 0x2102) -DW_AT (DW_AT_mac_info, 0x2103) -DW_AT (DW_AT_src_coords, 0x2104) -DW_AT (DW_AT_body_begin, 0x2105) -DW_AT (DW_AT_body_end, 0x2106) -DW_AT (DW_AT_GNU_vector, 0x2107) -/* Thread-safety annotations. - See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation . */ -DW_AT (DW_AT_GNU_guarded_by, 0x2108) -DW_AT (DW_AT_GNU_pt_guarded_by, 0x2109) -DW_AT (DW_AT_GNU_guarded, 0x210a) -DW_AT (DW_AT_GNU_pt_guarded, 0x210b) -DW_AT (DW_AT_GNU_locks_excluded, 0x210c) -DW_AT (DW_AT_GNU_exclusive_locks_required, 0x210d) -DW_AT (DW_AT_GNU_shared_locks_required, 0x210e) -/* One-definition rule violation detection. - See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo . */ -DW_AT (DW_AT_GNU_odr_signature, 0x210f) -/* Template template argument name. - See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */ -DW_AT (DW_AT_GNU_template_name, 0x2110) -/* The GNU call site extension. - See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . */ -DW_AT (DW_AT_GNU_call_site_value, 0x2111) -DW_AT (DW_AT_GNU_call_site_data_value, 0x2112) -DW_AT (DW_AT_GNU_call_site_target, 0x2113) -DW_AT (DW_AT_GNU_call_site_target_clobbered, 0x2114) -DW_AT (DW_AT_GNU_tail_call, 0x2115) -DW_AT (DW_AT_GNU_all_tail_call_sites, 0x2116) -DW_AT (DW_AT_GNU_all_call_sites, 0x2117) -DW_AT (DW_AT_GNU_all_source_call_sites, 0x2118) -/* Section offset into .debug_macro section. */ -DW_AT (DW_AT_GNU_macros, 0x2119) -/* Attribute for C++ deleted special member functions (= delete;). */ -DW_AT (DW_AT_GNU_deleted, 0x211a) -/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */ -DW_AT (DW_AT_GNU_dwo_name, 0x2130) -DW_AT (DW_AT_GNU_dwo_id, 0x2131) -DW_AT (DW_AT_GNU_ranges_base, 0x2132) -DW_AT (DW_AT_GNU_addr_base, 0x2133) -DW_AT (DW_AT_GNU_pubnames, 0x2134) -DW_AT (DW_AT_GNU_pubtypes, 0x2135) -/* Attribute for discriminator. - See http://gcc.gnu.org/wiki/Discriminator */ -DW_AT (DW_AT_GNU_discriminator, 0x2136) -/* VMS extensions. */ -DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201) -/* GNAT extensions. */ -/* GNAT descriptive type. - See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type . */ -DW_AT (DW_AT_use_GNAT_descriptive_type, 0x2301) -DW_AT (DW_AT_GNAT_descriptive_type, 0x2302) -/* Rational constant extension. - See https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator . */ -DW_TAG (DW_AT_GNU_numerator, 0x2303) -DW_TAG (DW_AT_GNU_denominator, 0x2304) -/* Biased integer extension. - See https://gcc.gnu.org/wiki/DW_AT_GNU_bias . */ -DW_TAG (DW_AT_GNU_bias, 0x2305) -/* UPC extension. */ -DW_AT (DW_AT_upc_threads_scaled, 0x3210) -/* PGI (STMicroelectronics) extensions. */ -DW_AT (DW_AT_PGI_lbase, 0x3a00) -DW_AT (DW_AT_PGI_soffset, 0x3a01) -DW_AT (DW_AT_PGI_lstride, 0x3a02) -/* Apple extensions. */ -DW_AT (DW_AT_APPLE_optimized, 0x3fe1) -DW_AT (DW_AT_APPLE_flags, 0x3fe2) -DW_AT (DW_AT_APPLE_isa, 0x3fe3) -DW_AT (DW_AT_APPLE_block, 0x3fe4) -DW_AT (DW_AT_APPLE_major_runtime_vers, 0x3fe5) -DW_AT (DW_AT_APPLE_runtime_class, 0x3fe6) -DW_AT (DW_AT_APPLE_omit_frame_ptr, 0x3fe7) -DW_AT (DW_AT_APPLE_property_name, 0x3fe8) -DW_AT (DW_AT_APPLE_property_getter, 0x3fe9) -DW_AT (DW_AT_APPLE_property_setter, 0x3fea) -DW_AT (DW_AT_APPLE_property_attribute, 0x3feb) -DW_AT (DW_AT_APPLE_objc_complete_type, 0x3fec) -DW_AT (DW_AT_APPLE_property, 0x3fed) -DW_END_AT - -DW_FIRST_OP (DW_OP_addr, 0x03) -DW_OP (DW_OP_deref, 0x06) -DW_OP (DW_OP_const1u, 0x08) -DW_OP (DW_OP_const1s, 0x09) -DW_OP (DW_OP_const2u, 0x0a) -DW_OP (DW_OP_const2s, 0x0b) -DW_OP (DW_OP_const4u, 0x0c) -DW_OP (DW_OP_const4s, 0x0d) -DW_OP (DW_OP_const8u, 0x0e) -DW_OP (DW_OP_const8s, 0x0f) -DW_OP (DW_OP_constu, 0x10) -DW_OP (DW_OP_consts, 0x11) -DW_OP (DW_OP_dup, 0x12) -DW_OP (DW_OP_drop, 0x13) -DW_OP (DW_OP_over, 0x14) -DW_OP (DW_OP_pick, 0x15) -DW_OP (DW_OP_swap, 0x16) -DW_OP (DW_OP_rot, 0x17) -DW_OP (DW_OP_xderef, 0x18) -DW_OP (DW_OP_abs, 0x19) -DW_OP (DW_OP_and, 0x1a) -DW_OP (DW_OP_div, 0x1b) -DW_OP (DW_OP_minus, 0x1c) -DW_OP (DW_OP_mod, 0x1d) -DW_OP (DW_OP_mul, 0x1e) -DW_OP (DW_OP_neg, 0x1f) -DW_OP (DW_OP_not, 0x20) -DW_OP (DW_OP_or, 0x21) -DW_OP (DW_OP_plus, 0x22) -DW_OP (DW_OP_plus_uconst, 0x23) -DW_OP (DW_OP_shl, 0x24) -DW_OP (DW_OP_shr, 0x25) -DW_OP (DW_OP_shra, 0x26) -DW_OP (DW_OP_xor, 0x27) -DW_OP (DW_OP_bra, 0x28) -DW_OP (DW_OP_eq, 0x29) -DW_OP (DW_OP_ge, 0x2a) -DW_OP (DW_OP_gt, 0x2b) -DW_OP (DW_OP_le, 0x2c) -DW_OP (DW_OP_lt, 0x2d) -DW_OP (DW_OP_ne, 0x2e) -DW_OP (DW_OP_skip, 0x2f) -DW_OP (DW_OP_lit0, 0x30) -DW_OP (DW_OP_lit1, 0x31) -DW_OP (DW_OP_lit2, 0x32) -DW_OP (DW_OP_lit3, 0x33) -DW_OP (DW_OP_lit4, 0x34) -DW_OP (DW_OP_lit5, 0x35) -DW_OP (DW_OP_lit6, 0x36) -DW_OP (DW_OP_lit7, 0x37) -DW_OP (DW_OP_lit8, 0x38) -DW_OP (DW_OP_lit9, 0x39) -DW_OP (DW_OP_lit10, 0x3a) -DW_OP (DW_OP_lit11, 0x3b) -DW_OP (DW_OP_lit12, 0x3c) -DW_OP (DW_OP_lit13, 0x3d) -DW_OP (DW_OP_lit14, 0x3e) -DW_OP (DW_OP_lit15, 0x3f) -DW_OP (DW_OP_lit16, 0x40) -DW_OP (DW_OP_lit17, 0x41) -DW_OP (DW_OP_lit18, 0x42) -DW_OP (DW_OP_lit19, 0x43) -DW_OP (DW_OP_lit20, 0x44) -DW_OP (DW_OP_lit21, 0x45) -DW_OP (DW_OP_lit22, 0x46) -DW_OP (DW_OP_lit23, 0x47) -DW_OP (DW_OP_lit24, 0x48) -DW_OP (DW_OP_lit25, 0x49) -DW_OP (DW_OP_lit26, 0x4a) -DW_OP (DW_OP_lit27, 0x4b) -DW_OP (DW_OP_lit28, 0x4c) -DW_OP (DW_OP_lit29, 0x4d) -DW_OP (DW_OP_lit30, 0x4e) -DW_OP (DW_OP_lit31, 0x4f) -DW_OP (DW_OP_reg0, 0x50) -DW_OP (DW_OP_reg1, 0x51) -DW_OP (DW_OP_reg2, 0x52) -DW_OP (DW_OP_reg3, 0x53) -DW_OP (DW_OP_reg4, 0x54) -DW_OP (DW_OP_reg5, 0x55) -DW_OP (DW_OP_reg6, 0x56) -DW_OP (DW_OP_reg7, 0x57) -DW_OP (DW_OP_reg8, 0x58) -DW_OP (DW_OP_reg9, 0x59) -DW_OP (DW_OP_reg10, 0x5a) -DW_OP (DW_OP_reg11, 0x5b) -DW_OP (DW_OP_reg12, 0x5c) -DW_OP (DW_OP_reg13, 0x5d) -DW_OP (DW_OP_reg14, 0x5e) -DW_OP (DW_OP_reg15, 0x5f) -DW_OP (DW_OP_reg16, 0x60) -DW_OP (DW_OP_reg17, 0x61) -DW_OP (DW_OP_reg18, 0x62) -DW_OP (DW_OP_reg19, 0x63) -DW_OP (DW_OP_reg20, 0x64) -DW_OP (DW_OP_reg21, 0x65) -DW_OP (DW_OP_reg22, 0x66) -DW_OP (DW_OP_reg23, 0x67) -DW_OP (DW_OP_reg24, 0x68) -DW_OP (DW_OP_reg25, 0x69) -DW_OP (DW_OP_reg26, 0x6a) -DW_OP (DW_OP_reg27, 0x6b) -DW_OP (DW_OP_reg28, 0x6c) -DW_OP (DW_OP_reg29, 0x6d) -DW_OP (DW_OP_reg30, 0x6e) -DW_OP (DW_OP_reg31, 0x6f) -DW_OP (DW_OP_breg0, 0x70) -DW_OP (DW_OP_breg1, 0x71) -DW_OP (DW_OP_breg2, 0x72) -DW_OP (DW_OP_breg3, 0x73) -DW_OP (DW_OP_breg4, 0x74) -DW_OP (DW_OP_breg5, 0x75) -DW_OP (DW_OP_breg6, 0x76) -DW_OP (DW_OP_breg7, 0x77) -DW_OP (DW_OP_breg8, 0x78) -DW_OP (DW_OP_breg9, 0x79) -DW_OP (DW_OP_breg10, 0x7a) -DW_OP (DW_OP_breg11, 0x7b) -DW_OP (DW_OP_breg12, 0x7c) -DW_OP (DW_OP_breg13, 0x7d) -DW_OP (DW_OP_breg14, 0x7e) -DW_OP (DW_OP_breg15, 0x7f) -DW_OP (DW_OP_breg16, 0x80) -DW_OP (DW_OP_breg17, 0x81) -DW_OP (DW_OP_breg18, 0x82) -DW_OP (DW_OP_breg19, 0x83) -DW_OP (DW_OP_breg20, 0x84) -DW_OP (DW_OP_breg21, 0x85) -DW_OP (DW_OP_breg22, 0x86) -DW_OP (DW_OP_breg23, 0x87) -DW_OP (DW_OP_breg24, 0x88) -DW_OP (DW_OP_breg25, 0x89) -DW_OP (DW_OP_breg26, 0x8a) -DW_OP (DW_OP_breg27, 0x8b) -DW_OP (DW_OP_breg28, 0x8c) -DW_OP (DW_OP_breg29, 0x8d) -DW_OP (DW_OP_breg30, 0x8e) -DW_OP (DW_OP_breg31, 0x8f) -DW_OP (DW_OP_regx, 0x90) -DW_OP (DW_OP_fbreg, 0x91) -DW_OP (DW_OP_bregx, 0x92) -DW_OP (DW_OP_piece, 0x93) -DW_OP (DW_OP_deref_size, 0x94) -DW_OP (DW_OP_xderef_size, 0x95) -DW_OP (DW_OP_nop, 0x96) -/* DWARF 3 extensions. */ -DW_OP (DW_OP_push_object_address, 0x97) -DW_OP (DW_OP_call2, 0x98) -DW_OP (DW_OP_call4, 0x99) -DW_OP (DW_OP_call_ref, 0x9a) -DW_OP (DW_OP_form_tls_address, 0x9b) -DW_OP (DW_OP_call_frame_cfa, 0x9c) -DW_OP (DW_OP_bit_piece, 0x9d) - -/* DWARF 4 extensions. */ -DW_OP (DW_OP_implicit_value, 0x9e) -DW_OP (DW_OP_stack_value, 0x9f) - -DW_OP_DUP (DW_OP_lo_user, 0xe0) /* Implementation-defined range start. */ -DW_OP_DUP (DW_OP_hi_user, 0xff) /* Implementation-defined range end. */ - -/* GNU extensions. */ -DW_OP (DW_OP_GNU_push_tls_address, 0xe0) -/* The following is for marking variables that are uninitialized. */ -DW_OP (DW_OP_GNU_uninit, 0xf0) -DW_OP (DW_OP_GNU_encoded_addr, 0xf1) -/* The GNU implicit pointer extension. - See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open . */ -DW_OP (DW_OP_GNU_implicit_pointer, 0xf2) -/* The GNU entry value extension. - See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open . */ -DW_OP (DW_OP_GNU_entry_value, 0xf3) -/* The GNU typed stack extension. - See http://www.dwarfstd.org/doc/040408.1.html . */ -DW_OP (DW_OP_GNU_const_type, 0xf4) -DW_OP (DW_OP_GNU_regval_type, 0xf5) -DW_OP (DW_OP_GNU_deref_type, 0xf6) -DW_OP (DW_OP_GNU_convert, 0xf7) -DW_OP (DW_OP_GNU_reinterpret, 0xf9) -/* The GNU parameter ref extension. */ -DW_OP (DW_OP_GNU_parameter_ref, 0xfa) -/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */ -DW_OP (DW_OP_GNU_addr_index, 0xfb) -DW_OP (DW_OP_GNU_const_index, 0xfc) -/* HP extensions. */ -DW_OP_DUP (DW_OP_HP_unknown, 0xe0) /* Ouch, the same as GNU_push_tls_address. */ -DW_OP (DW_OP_HP_is_value, 0xe1) -DW_OP (DW_OP_HP_fltconst4, 0xe2) -DW_OP (DW_OP_HP_fltconst8, 0xe3) -DW_OP (DW_OP_HP_mod_range, 0xe4) -DW_OP (DW_OP_HP_unmod_range, 0xe5) -DW_OP (DW_OP_HP_tls, 0xe6) -/* PGI (STMicroelectronics) extensions. */ -DW_OP (DW_OP_PGI_omp_thread_num, 0xf8) -DW_END_OP - -DW_FIRST_ATE (DW_ATE_void, 0x0) -DW_ATE (DW_ATE_address, 0x1) -DW_ATE (DW_ATE_boolean, 0x2) -DW_ATE (DW_ATE_complex_float, 0x3) -DW_ATE (DW_ATE_float, 0x4) -DW_ATE (DW_ATE_signed, 0x5) -DW_ATE (DW_ATE_signed_char, 0x6) -DW_ATE (DW_ATE_unsigned, 0x7) -DW_ATE (DW_ATE_unsigned_char, 0x8) -/* DWARF 3. */ -DW_ATE (DW_ATE_imaginary_float, 0x9) -DW_ATE (DW_ATE_packed_decimal, 0xa) -DW_ATE (DW_ATE_numeric_string, 0xb) -DW_ATE (DW_ATE_edited, 0xc) -DW_ATE (DW_ATE_signed_fixed, 0xd) -DW_ATE (DW_ATE_unsigned_fixed, 0xe) -DW_ATE (DW_ATE_decimal_float, 0xf) -/* DWARF 4. */ -DW_ATE (DW_ATE_UTF, 0x10) - -DW_ATE_DUP (DW_ATE_lo_user, 0x80) -DW_ATE_DUP (DW_ATE_hi_user, 0xff) - -/* HP extensions. */ -DW_ATE (DW_ATE_HP_float80, 0x80) /* Floating-point (80 bit). */ -DW_ATE (DW_ATE_HP_complex_float80, 0x81) /* Complex floating-point (80 bit). */ -DW_ATE (DW_ATE_HP_float128, 0x82) /* Floating-point (128 bit). */ -DW_ATE (DW_ATE_HP_complex_float128, 0x83) /* Complex fp (128 bit). */ -DW_ATE (DW_ATE_HP_floathpintel, 0x84) /* Floating-point (82 bit IA64). */ -DW_ATE (DW_ATE_HP_imaginary_float80, 0x85) -DW_ATE (DW_ATE_HP_imaginary_float128, 0x86) -DW_ATE (DW_ATE_HP_VAX_float, 0x88) /* F or G floating. */ -DW_ATE (DW_ATE_HP_VAX_float_d, 0x89) /* D floating. */ -DW_ATE (DW_ATE_HP_packed_decimal, 0x8a) /* Cobol. */ -DW_ATE (DW_ATE_HP_zoned_decimal, 0x8b) /* Cobol. */ -DW_ATE (DW_ATE_HP_edited, 0x8c) /* Cobol. */ -DW_ATE (DW_ATE_HP_signed_fixed, 0x8d) /* Cobol. */ -DW_ATE (DW_ATE_HP_unsigned_fixed, 0x8e) /* Cobol. */ -DW_ATE (DW_ATE_HP_VAX_complex_float, 0x8f) /* F or G floating complex. */ -DW_ATE (DW_ATE_HP_VAX_complex_float_d, 0x90) /* D floating complex. */ - -DW_END_ATE - -DW_FIRST_CFA (DW_CFA_advance_loc, 0x40) -DW_CFA (DW_CFA_offset, 0x80) -DW_CFA (DW_CFA_restore, 0xc0) -DW_CFA (DW_CFA_nop, 0x00) -DW_CFA (DW_CFA_set_loc, 0x01) -DW_CFA (DW_CFA_advance_loc1, 0x02) -DW_CFA (DW_CFA_advance_loc2, 0x03) -DW_CFA (DW_CFA_advance_loc4, 0x04) -DW_CFA (DW_CFA_offset_extended, 0x05) -DW_CFA (DW_CFA_restore_extended, 0x06) -DW_CFA (DW_CFA_undefined, 0x07) -DW_CFA (DW_CFA_same_value, 0x08) -DW_CFA (DW_CFA_register, 0x09) -DW_CFA (DW_CFA_remember_state, 0x0a) -DW_CFA (DW_CFA_restore_state, 0x0b) -DW_CFA (DW_CFA_def_cfa, 0x0c) -DW_CFA (DW_CFA_def_cfa_register, 0x0d) -DW_CFA (DW_CFA_def_cfa_offset, 0x0e) -/* DWARF 3. */ -DW_CFA (DW_CFA_def_cfa_expression, 0x0f) -DW_CFA (DW_CFA_expression, 0x10) -DW_CFA (DW_CFA_offset_extended_sf, 0x11) -DW_CFA (DW_CFA_def_cfa_sf, 0x12) -DW_CFA (DW_CFA_def_cfa_offset_sf, 0x13) -DW_CFA (DW_CFA_val_offset, 0x14) -DW_CFA (DW_CFA_val_offset_sf, 0x15) -DW_CFA (DW_CFA_val_expression, 0x16) - -DW_CFA (DW_CFA_lo_user, 0x1c) -DW_CFA (DW_CFA_hi_user, 0x3f) - -/* SGI/MIPS specific. */ -DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d) -/* GNU extensions. */ -DW_CFA (DW_CFA_GNU_window_save, 0x2d) -DW_CFA (DW_CFA_GNU_args_size, 0x2e) -DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f) - -DW_END_CFA diff --git a/include/dwarf2.h b/include/dwarf2.h deleted file mode 100644 index 1a145aa..0000000 --- a/include/dwarf2.h +++ /dev/null @@ -1,434 +0,0 @@ -/* Declarations and definitions of codes relating to the DWARF2 and - DWARF3 symbolic debugging information formats. - Copyright (C) 1992-2016 Free Software Foundation, Inc. - - Written by Gary Funck (gary@intrepid.com) The Ada Joint Program - Office (AJPO), Florida State University and Silicon Graphics Inc. - provided support for this effort -- June 21, 1995. - - Derived from the DWARF 1 implementation written by Ron Guilmette - (rfg@netcom.com), November 1990. - - This file is part of GCC. - - GCC is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the Free - Software Foundation; either version 3, or (at your option) any later - version. - - GCC is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. - - Under Section 7 of GPL version 3, you are granted additional - permissions described in the GCC Runtime Library Exception, version - 3.1, as published by the Free Software Foundation. - - You should have received a copy of the GNU General Public License and - a copy of the GCC Runtime Library Exception along with this program; - see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - . */ - -/* This file is derived from the DWARF specification (a public document) - Revision 2.0.0 (July 27, 1993) developed by the UNIX International - Programming Languages Special Interest Group (UI/PLSIG) and distributed - by UNIX International. Copies of this specification are available from - UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054. - - This file also now contains definitions from the DWARF 3 specification - published Dec 20, 2005, available from: http://dwarf.freestandards.org. */ - -#ifndef _DWARF2_H -#define _DWARF2_H - -#define DW_TAG(name, value) , name = value -#define DW_TAG_DUP(name, value) , name = value -#define DW_FORM(name, value) , name = value -#define DW_AT(name, value) , name = value -#define DW_AT_DUP(name, value) , name = value -#define DW_OP(name, value) , name = value -#define DW_OP_DUP(name, value) , name = value -#define DW_ATE(name, value) , name = value -#define DW_ATE_DUP(name, value) , name = value -#define DW_CFA(name, value) , name = value - -#define DW_FIRST_TAG(name, value) enum dwarf_tag { \ - name = value -#define DW_END_TAG }; -#define DW_FIRST_FORM(name, value) enum dwarf_form { \ - name = value -#define DW_END_FORM }; -#define DW_FIRST_AT(name, value) enum dwarf_attribute { \ - name = value -#define DW_END_AT }; -#define DW_FIRST_OP(name, value) enum dwarf_location_atom { \ - name = value -#define DW_END_OP }; -#define DW_FIRST_ATE(name, value) enum dwarf_type { \ - name = value -#define DW_END_ATE }; -#define DW_FIRST_CFA(name, value) enum dwarf_call_frame_info { \ - name = value -#define DW_END_CFA }; - -#include "dwarf2.def" - -#undef DW_FIRST_TAG -#undef DW_END_TAG -#undef DW_FIRST_FORM -#undef DW_END_FORM -#undef DW_FIRST_AT -#undef DW_END_AT -#undef DW_FIRST_OP -#undef DW_END_OP -#undef DW_FIRST_ATE -#undef DW_END_ATE -#undef DW_FIRST_CFA -#undef DW_END_CFA - -#undef DW_TAG -#undef DW_TAG_DUP -#undef DW_FORM -#undef DW_AT -#undef DW_AT_DUP -#undef DW_OP -#undef DW_OP_DUP -#undef DW_ATE -#undef DW_ATE_DUP -#undef DW_CFA - -/* Flag that tells whether entry has a child or not. */ -#define DW_children_no 0 -#define DW_children_yes 1 - -#define DW_AT_stride_size DW_AT_bit_stride /* Note: The use of DW_AT_stride_size is deprecated. */ -#define DW_AT_stride DW_AT_byte_stride /* Note: The use of DW_AT_stride is deprecated. */ - -/* Decimal sign encodings. */ -enum dwarf_decimal_sign_encoding - { - /* DWARF 3. */ - DW_DS_unsigned = 0x01, - DW_DS_leading_overpunch = 0x02, - DW_DS_trailing_overpunch = 0x03, - DW_DS_leading_separate = 0x04, - DW_DS_trailing_separate = 0x05 - }; - -/* Endianity encodings. */ -enum dwarf_endianity_encoding - { - /* DWARF 3. */ - DW_END_default = 0x00, - DW_END_big = 0x01, - DW_END_little = 0x02, - - DW_END_lo_user = 0x40, - DW_END_hi_user = 0xff - }; - -/* Array ordering names and codes. */ -enum dwarf_array_dim_ordering - { - DW_ORD_row_major = 0, - DW_ORD_col_major = 1 - }; - -/* Access attribute. */ -enum dwarf_access_attribute - { - DW_ACCESS_public = 1, - DW_ACCESS_protected = 2, - DW_ACCESS_private = 3 - }; - -/* Visibility. */ -enum dwarf_visibility_attribute - { - DW_VIS_local = 1, - DW_VIS_exported = 2, - DW_VIS_qualified = 3 - }; - -/* Virtuality. */ -enum dwarf_virtuality_attribute - { - DW_VIRTUALITY_none = 0, - DW_VIRTUALITY_virtual = 1, - DW_VIRTUALITY_pure_virtual = 2 - }; - -/* Case sensitivity. */ -enum dwarf_id_case - { - DW_ID_case_sensitive = 0, - DW_ID_up_case = 1, - DW_ID_down_case = 2, - DW_ID_case_insensitive = 3 - }; - -/* Calling convention. */ -enum dwarf_calling_convention - { - DW_CC_normal = 0x1, - DW_CC_program = 0x2, - DW_CC_nocall = 0x3, - - DW_CC_lo_user = 0x40, - DW_CC_hi_user = 0xff, - - DW_CC_GNU_renesas_sh = 0x40, - DW_CC_GNU_borland_fastcall_i386 = 0x41, - - /* This DW_CC_ value is not currently generated by any toolchain. It is - used internally to GDB to indicate OpenCL C functions that have been - compiled with the IBM XL C for OpenCL compiler and use a non-platform - calling convention for passing OpenCL C vector types. This value may - be changed freely as long as it does not conflict with any other DW_CC_ - value defined here. */ - DW_CC_GDB_IBM_OpenCL = 0xff - }; - -/* Inline attribute. */ -enum dwarf_inline_attribute - { - DW_INL_not_inlined = 0, - DW_INL_inlined = 1, - DW_INL_declared_not_inlined = 2, - DW_INL_declared_inlined = 3 - }; - -/* Discriminant lists. */ -enum dwarf_discrim_list - { - DW_DSC_label = 0, - DW_DSC_range = 1 - }; - -/* Line number opcodes. */ -enum dwarf_line_number_ops - { - DW_LNS_extended_op = 0, - DW_LNS_copy = 1, - DW_LNS_advance_pc = 2, - DW_LNS_advance_line = 3, - DW_LNS_set_file = 4, - DW_LNS_set_column = 5, - DW_LNS_negate_stmt = 6, - DW_LNS_set_basic_block = 7, - DW_LNS_const_add_pc = 8, - DW_LNS_fixed_advance_pc = 9, - /* DWARF 3. */ - DW_LNS_set_prologue_end = 10, - DW_LNS_set_epilogue_begin = 11, - DW_LNS_set_isa = 12 - }; - -/* Line number extended opcodes. */ -enum dwarf_line_number_x_ops - { - DW_LNE_end_sequence = 1, - DW_LNE_set_address = 2, - DW_LNE_define_file = 3, - DW_LNE_set_discriminator = 4, - /* HP extensions. */ - DW_LNE_HP_negate_is_UV_update = 0x11, - DW_LNE_HP_push_context = 0x12, - DW_LNE_HP_pop_context = 0x13, - DW_LNE_HP_set_file_line_column = 0x14, - DW_LNE_HP_set_routine_name = 0x15, - DW_LNE_HP_set_sequence = 0x16, - DW_LNE_HP_negate_post_semantics = 0x17, - DW_LNE_HP_negate_function_exit = 0x18, - DW_LNE_HP_negate_front_end_logical = 0x19, - DW_LNE_HP_define_proc = 0x20, - DW_LNE_HP_source_file_correlation = 0x80, - - DW_LNE_lo_user = 0x80, - DW_LNE_hi_user = 0xff - }; - -/* Sub-opcodes for DW_LNE_HP_source_file_correlation. */ -enum dwarf_line_number_hp_sfc_ops - { - DW_LNE_HP_SFC_formfeed = 1, - DW_LNE_HP_SFC_set_listing_line = 2, - DW_LNE_HP_SFC_associate = 3 - }; - -/* Type codes for location list entries. - Extension for Fission. See http://gcc.gnu.org/wiki/DebugFission. */ - -enum dwarf_location_list_entry_type - { - DW_LLE_GNU_end_of_list_entry = 0, - DW_LLE_GNU_base_address_selection_entry = 1, - DW_LLE_GNU_start_end_entry = 2, - DW_LLE_GNU_start_length_entry = 3 - }; - -#define DW_CIE_ID 0xffffffff -#define DW64_CIE_ID 0xffffffffffffffffULL -#define DW_CIE_VERSION 1 - -#define DW_CFA_extended 0 - -#define DW_CHILDREN_no 0x00 -#define DW_CHILDREN_yes 0x01 - -#define DW_ADDR_none 0 - -/* Source language names and codes. */ -enum dwarf_source_language - { - DW_LANG_C89 = 0x0001, - DW_LANG_C = 0x0002, - DW_LANG_Ada83 = 0x0003, - DW_LANG_C_plus_plus = 0x0004, - DW_LANG_Cobol74 = 0x0005, - DW_LANG_Cobol85 = 0x0006, - DW_LANG_Fortran77 = 0x0007, - DW_LANG_Fortran90 = 0x0008, - DW_LANG_Pascal83 = 0x0009, - DW_LANG_Modula2 = 0x000a, - /* DWARF 3. */ - DW_LANG_Java = 0x000b, - DW_LANG_C99 = 0x000c, - DW_LANG_Ada95 = 0x000d, - DW_LANG_Fortran95 = 0x000e, - DW_LANG_PLI = 0x000f, - DW_LANG_ObjC = 0x0010, - DW_LANG_ObjC_plus_plus = 0x0011, - DW_LANG_UPC = 0x0012, - DW_LANG_D = 0x0013, - /* DWARF 4. */ - DW_LANG_Python = 0x0014, - /* DWARF 5. */ - DW_LANG_Go = 0x0016, - - DW_LANG_C_plus_plus_11 = 0x001a, /* dwarf5.20141029.pdf DRAFT */ - DW_LANG_Rust = 0x001c, - DW_LANG_C11 = 0x001d, - DW_LANG_C_plus_plus_14 = 0x0021, - DW_LANG_Fortran03 = 0x0022, - DW_LANG_Fortran08 = 0x0023, - - DW_LANG_lo_user = 0x8000, /* Implementation-defined range start. */ - DW_LANG_hi_user = 0xffff, /* Implementation-defined range start. */ - - /* MIPS. */ - DW_LANG_Mips_Assembler = 0x8001, - /* UPC. */ - DW_LANG_Upc = 0x8765, - /* HP extensions. */ - DW_LANG_HP_Bliss = 0x8003, - DW_LANG_HP_Basic91 = 0x8004, - DW_LANG_HP_Pascal91 = 0x8005, - DW_LANG_HP_IMacro = 0x8006, - DW_LANG_HP_Assembler = 0x8007, - - /* Rust extension, but replaced in DWARF 5. */ - DW_LANG_Rust_old = 0x9000 - }; - -/* Names and codes for macro information. */ -enum dwarf_macinfo_record_type - { - DW_MACINFO_define = 1, - DW_MACINFO_undef = 2, - DW_MACINFO_start_file = 3, - DW_MACINFO_end_file = 4, - DW_MACINFO_vendor_ext = 255 - }; - -/* Names and codes for new style macro information. */ -enum dwarf_macro_record_type - { - DW_MACRO_GNU_define = 1, - DW_MACRO_GNU_undef = 2, - DW_MACRO_GNU_start_file = 3, - DW_MACRO_GNU_end_file = 4, - DW_MACRO_GNU_define_indirect = 5, - DW_MACRO_GNU_undef_indirect = 6, - DW_MACRO_GNU_transparent_include = 7, - /* Extensions for DWZ multifile. - See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */ - DW_MACRO_GNU_define_indirect_alt = 8, - DW_MACRO_GNU_undef_indirect_alt = 9, - DW_MACRO_GNU_transparent_include_alt = 10, - DW_MACRO_GNU_lo_user = 0xe0, - DW_MACRO_GNU_hi_user = 0xff - }; - -/* @@@ For use with GNU frame unwind information. */ - -#define DW_EH_PE_absptr 0x00 -#define DW_EH_PE_omit 0xff - -#define DW_EH_PE_uleb128 0x01 -#define DW_EH_PE_udata2 0x02 -#define DW_EH_PE_udata4 0x03 -#define DW_EH_PE_udata8 0x04 -#define DW_EH_PE_sleb128 0x09 -#define DW_EH_PE_sdata2 0x0A -#define DW_EH_PE_sdata4 0x0B -#define DW_EH_PE_sdata8 0x0C -#define DW_EH_PE_signed 0x08 - -#define DW_EH_PE_pcrel 0x10 -#define DW_EH_PE_textrel 0x20 -#define DW_EH_PE_datarel 0x30 -#define DW_EH_PE_funcrel 0x40 -#define DW_EH_PE_aligned 0x50 - -#define DW_EH_PE_indirect 0x80 - -/* Codes for the debug sections in a dwarf package (.dwp) file. - Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFissionDWP. */ -enum dwarf_sect - { - DW_SECT_INFO = 1, - DW_SECT_TYPES = 2, - DW_SECT_ABBREV = 3, - DW_SECT_LINE = 4, - DW_SECT_LOC = 5, - DW_SECT_STR_OFFSETS = 6, - DW_SECT_MACINFO = 7, - DW_SECT_MACRO = 8, - DW_SECT_MAX = 8 - }; - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Return the name of a DW_TAG_ constant, or NULL if the value is not - recognized. */ -extern const char *get_DW_TAG_name (unsigned int tag); - -/* Return the name of a DW_AT_ constant, or NULL if the value is not - recognized. */ -extern const char *get_DW_AT_name (unsigned int attr); - -/* Return the name of a DW_FORM_ constant, or NULL if the value is not - recognized. */ -extern const char *get_DW_FORM_name (unsigned int form); - -/* Return the name of a DW_OP_ constant, or NULL if the value is not - recognized. */ -extern const char *get_DW_OP_name (unsigned int op); - -/* Return the name of a DW_ATE_ constant, or NULL if the value is not - recognized. */ -extern const char *get_DW_ATE_name (unsigned int enc); - -/* Return the name of a DW_CFA_ constant, or NULL if the value is not - recognized. */ -extern const char *get_DW_CFA_name (unsigned int opc); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _DWARF2_H */ diff --git a/include/dyn-string.h b/include/dyn-string.h deleted file mode 100644 index 7c3684b..0000000 --- a/include/dyn-string.h +++ /dev/null @@ -1,72 +0,0 @@ -/* An abstract string datatype. - Copyright (C) 1998-2015 Free Software Foundation, Inc. - Contributed by Mark Mitchell (mark@markmitchell.com). - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GCC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street - Fifth Floor, -Boston, MA 02110-1301, USA. */ - -#ifndef DYN_STRING_H -#define DYN_STRING_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct dyn_string -{ - int allocated; /* The amount of space allocated for the string. */ - int length; /* The actual length of the string. */ - char *s; /* The string itself, NUL-terminated. */ -}* dyn_string_t; - -/* The length STR, in bytes, not including the terminating NUL. */ -#define dyn_string_length(STR) \ - ((STR)->length) - -/* The NTBS in which the contents of STR are stored. */ -#define dyn_string_buf(STR) \ - ((STR)->s) - -/* Compare DS1 to DS2 with strcmp. */ -#define dyn_string_compare(DS1, DS2) \ - (strcmp ((DS1)->s, (DS2)->s)) - - -extern int dyn_string_init (struct dyn_string *, int); -extern dyn_string_t dyn_string_new (int); -extern void dyn_string_delete (dyn_string_t); -extern char *dyn_string_release (dyn_string_t); -extern dyn_string_t dyn_string_resize (dyn_string_t, int); -extern void dyn_string_clear (dyn_string_t); -extern int dyn_string_copy (dyn_string_t, dyn_string_t); -extern int dyn_string_copy_cstr (dyn_string_t, const char *); -extern int dyn_string_prepend (dyn_string_t, dyn_string_t); -extern int dyn_string_prepend_cstr (dyn_string_t, const char *); -extern int dyn_string_insert (dyn_string_t, int, dyn_string_t); -extern int dyn_string_insert_cstr (dyn_string_t, int, const char *); -extern int dyn_string_insert_char (dyn_string_t, int, int); -extern int dyn_string_append (dyn_string_t, dyn_string_t); -extern int dyn_string_append_cstr (dyn_string_t, const char *); -extern int dyn_string_append_char (dyn_string_t, int); -extern int dyn_string_substring (dyn_string_t, dyn_string_t, int, int); -extern int dyn_string_eq (dyn_string_t, dyn_string_t); - -#ifdef __cplusplus -} -#endif - -#endif /* !defined (DYN_STRING_H) */ diff --git a/include/elf.h b/include/elf.h deleted file mode 100644 index 79d3b97..0000000 --- a/include/elf.h +++ /dev/null @@ -1,3147 +0,0 @@ -/* -From musl include/elf.h - -Copyright © 2005-2014 Rich Felker, et al. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifndef _ELF_H -#define _ELF_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -typedef uint16_t Elf32_Half; -typedef uint16_t Elf64_Half; - -typedef uint32_t Elf32_Word; -typedef int32_t Elf32_Sword; -typedef uint32_t Elf64_Word; -typedef int32_t Elf64_Sword; - -typedef uint64_t Elf32_Xword; -typedef int64_t Elf32_Sxword; -typedef uint64_t Elf64_Xword; -typedef int64_t Elf64_Sxword; - -typedef uint32_t Elf32_Addr; -typedef uint64_t Elf64_Addr; - -typedef uint32_t Elf32_Off; -typedef uint64_t Elf64_Off; - -typedef uint16_t Elf32_Section; -typedef uint16_t Elf64_Section; - -typedef Elf32_Half Elf32_Versym; -typedef Elf64_Half Elf64_Versym; - -#define EI_NIDENT (16) - -typedef struct { - unsigned char e_ident[EI_NIDENT]; - Elf32_Half e_type; - Elf32_Half e_machine; - Elf32_Word e_version; - Elf32_Addr e_entry; - Elf32_Off e_phoff; - Elf32_Off e_shoff; - Elf32_Word e_flags; - Elf32_Half e_ehsize; - Elf32_Half e_phentsize; - Elf32_Half e_phnum; - Elf32_Half e_shentsize; - Elf32_Half e_shnum; - Elf32_Half e_shstrndx; -} Elf32_Ehdr; - -typedef struct { - unsigned char e_ident[EI_NIDENT]; - Elf64_Half e_type; - Elf64_Half e_machine; - Elf64_Word e_version; - Elf64_Addr e_entry; - Elf64_Off e_phoff; - Elf64_Off e_shoff; - Elf64_Word e_flags; - Elf64_Half e_ehsize; - Elf64_Half e_phentsize; - Elf64_Half e_phnum; - Elf64_Half e_shentsize; - Elf64_Half e_shnum; - Elf64_Half e_shstrndx; -} Elf64_Ehdr; - -#define EI_MAG0 0 -#define ELFMAG0 0x7f - -#define EI_MAG1 1 -#define ELFMAG1 'E' - -#define EI_MAG2 2 -#define ELFMAG2 'L' - -#define EI_MAG3 3 -#define ELFMAG3 'F' - - -#define ELFMAG "\177ELF" -#define SELFMAG 4 - -#define EI_CLASS 4 -#define ELFCLASSNONE 0 -#define ELFCLASS32 1 -#define ELFCLASS64 2 -#define ELFCLASSNUM 3 - -#define EI_DATA 5 -#define ELFDATANONE 0 -#define ELFDATA2LSB 1 -#define ELFDATA2MSB 2 -#define ELFDATANUM 3 - -#define EI_VERSION 6 - - -#define EI_OSABI 7 -#define ELFOSABI_NONE 0 -#define ELFOSABI_SYSV 0 -#define ELFOSABI_HPUX 1 -#define ELFOSABI_NETBSD 2 -#define ELFOSABI_LINUX 3 -#define ELFOSABI_GNU 3 -#define ELFOSABI_SOLARIS 6 -#define ELFOSABI_AIX 7 -#define ELFOSABI_IRIX 8 -#define ELFOSABI_FREEBSD 9 -#define ELFOSABI_TRU64 10 -#define ELFOSABI_MODESTO 11 -#define ELFOSABI_OPENBSD 12 -#define ELFOSABI_ARM 97 -#define ELFOSABI_STANDALONE 255 - -#define EI_ABIVERSION 8 - -#define EI_PAD 9 - - - -#define ET_NONE 0 -#define ET_REL 1 -#define ET_EXEC 2 -#define ET_DYN 3 -#define ET_CORE 4 -#define ET_NUM 5 -#define ET_LOOS 0xfe00 -#define ET_HIOS 0xfeff -#define ET_LOPROC 0xff00 -#define ET_HIPROC 0xffff - - - -#define EM_NONE 0 -#define EM_M32 1 -#define EM_SPARC 2 -#define EM_386 3 -#define EM_68K 4 -#define EM_88K 5 -#define EM_860 7 -#define EM_MIPS 8 -#define EM_S370 9 -#define EM_MIPS_RS3_LE 10 - -#define EM_PARISC 15 -#define EM_VPP500 17 -#define EM_SPARC32PLUS 18 -#define EM_960 19 -#define EM_PPC 20 -#define EM_PPC64 21 -#define EM_S390 22 - -#define EM_V800 36 -#define EM_FR20 37 -#define EM_RH32 38 -#define EM_RCE 39 -#define EM_ARM 40 -#define EM_FAKE_ALPHA 41 -#define EM_SH 42 -#define EM_SPARCV9 43 -#define EM_TRICORE 44 -#define EM_ARC 45 -#define EM_H8_300 46 -#define EM_H8_300H 47 -#define EM_H8S 48 -#define EM_H8_500 49 -#define EM_IA_64 50 -#define EM_MIPS_X 51 -#define EM_COLDFIRE 52 -#define EM_68HC12 53 -#define EM_MMA 54 -#define EM_PCP 55 -#define EM_NCPU 56 -#define EM_NDR1 57 -#define EM_STARCORE 58 -#define EM_ME16 59 -#define EM_ST100 60 -#define EM_TINYJ 61 -#define EM_X86_64 62 -#define EM_PDSP 63 - -#define EM_FX66 66 -#define EM_ST9PLUS 67 -#define EM_ST7 68 -#define EM_68HC16 69 -#define EM_68HC11 70 -#define EM_68HC08 71 -#define EM_68HC05 72 -#define EM_SVX 73 -#define EM_ST19 74 -#define EM_VAX 75 -#define EM_CRIS 76 -#define EM_JAVELIN 77 -#define EM_FIREPATH 78 -#define EM_ZSP 79 -#define EM_MMIX 80 -#define EM_HUANY 81 -#define EM_PRISM 82 -#define EM_AVR 83 -#define EM_FR30 84 -#define EM_D10V 85 -#define EM_D30V 86 -#define EM_V850 87 -#define EM_M32R 88 -#define EM_MN10300 89 -#define EM_MN10200 90 -#define EM_PJ 91 -#define EM_OR1K 92 -#define EM_OPENRISC 92 -#define EM_ARC_A5 93 -#define EM_ARC_COMPACT 93 -#define EM_XTENSA 94 -#define EM_VIDEOCORE 95 -#define EM_TMM_GPP 96 -#define EM_NS32K 97 -#define EM_TPC 98 -#define EM_SNP1K 99 -#define EM_ST200 100 -#define EM_IP2K 101 -#define EM_MAX 102 -#define EM_CR 103 -#define EM_F2MC16 104 -#define EM_MSP430 105 -#define EM_BLACKFIN 106 -#define EM_SE_C33 107 -#define EM_SEP 108 -#define EM_ARCA 109 -#define EM_UNICORE 110 -#define EM_EXCESS 111 -#define EM_DXP 112 -#define EM_ALTERA_NIOS2 113 -#define EM_CRX 114 -#define EM_XGATE 115 -#define EM_C166 116 -#define EM_M16C 117 -#define EM_DSPIC30F 118 -#define EM_CE 119 -#define EM_M32C 120 -#define EM_TSK3000 131 -#define EM_RS08 132 -#define EM_SHARC 133 -#define EM_ECOG2 134 -#define EM_SCORE7 135 -#define EM_DSP24 136 -#define EM_VIDEOCORE3 137 -#define EM_LATTICEMICO32 138 -#define EM_SE_C17 139 -#define EM_TI_C6000 140 -#define EM_TI_C2000 141 -#define EM_TI_C5500 142 -#define EM_TI_ARP32 143 -#define EM_TI_PRU 144 -#define EM_MMDSP_PLUS 160 -#define EM_CYPRESS_M8C 161 -#define EM_R32C 162 -#define EM_TRIMEDIA 163 -#define EM_QDSP6 164 -#define EM_8051 165 -#define EM_STXP7X 166 -#define EM_NDS32 167 -#define EM_ECOG1X 168 -#define EM_MAXQ30 169 -#define EM_XIMO16 170 -#define EM_MANIK 171 -#define EM_CRAYNV2 172 -#define EM_RX 173 -#define EM_METAG 174 -#define EM_MCST_ELBRUS 175 -#define EM_ECOG16 176 -#define EM_CR16 177 -#define EM_ETPU 178 -#define EM_SLE9X 179 -#define EM_L10M 180 -#define EM_K10M 181 -#define EM_AARCH64 183 -#define EM_AVR32 185 -#define EM_STM8 186 -#define EM_TILE64 187 -#define EM_TILEPRO 188 -#define EM_MICROBLAZE 189 -#define EM_CUDA 190 -#define EM_TILEGX 191 -#define EM_CLOUDSHIELD 192 -#define EM_COREA_1ST 193 -#define EM_COREA_2ND 194 -#define EM_ARC_COMPACT2 195 -#define EM_OPEN8 196 -#define EM_RL78 197 -#define EM_VIDEOCORE5 198 -#define EM_78KOR 199 -#define EM_56800EX 200 -#define EM_BA1 201 -#define EM_BA2 202 -#define EM_XCORE 203 -#define EM_MCHP_PIC 204 -#define EM_KM32 210 -#define EM_KMX32 211 -#define EM_EMX16 212 -#define EM_EMX8 213 -#define EM_KVARC 214 -#define EM_CDP 215 -#define EM_COGE 216 -#define EM_COOL 217 -#define EM_NORC 218 -#define EM_CSR_KALIMBA 219 -#define EM_Z80 220 -#define EM_VISIUM 221 -#define EM_FT32 222 -#define EM_MOXIE 223 -#define EM_AMDGPU 224 -#define EM_RISCV 243 -#define EM_BPF 247 -#define EM_NUM 248 - -#define EM_ALPHA 0x9026 - -#define EV_NONE 0 -#define EV_CURRENT 1 -#define EV_NUM 2 - -typedef struct { - Elf32_Word sh_name; - Elf32_Word sh_type; - Elf32_Word sh_flags; - Elf32_Addr sh_addr; - Elf32_Off sh_offset; - Elf32_Word sh_size; - Elf32_Word sh_link; - Elf32_Word sh_info; - Elf32_Word sh_addralign; - Elf32_Word sh_entsize; -} Elf32_Shdr; - -typedef struct { - Elf64_Word sh_name; - Elf64_Word sh_type; - Elf64_Xword sh_flags; - Elf64_Addr sh_addr; - Elf64_Off sh_offset; - Elf64_Xword sh_size; - Elf64_Word sh_link; - Elf64_Word sh_info; - Elf64_Xword sh_addralign; - Elf64_Xword sh_entsize; -} Elf64_Shdr; - - - -#define SHN_UNDEF 0 -#define SHN_LORESERVE 0xff00 -#define SHN_LOPROC 0xff00 -#define SHN_BEFORE 0xff00 - -#define SHN_AFTER 0xff01 - -#define SHN_HIPROC 0xff1f -#define SHN_LOOS 0xff20 -#define SHN_HIOS 0xff3f -#define SHN_ABS 0xfff1 -#define SHN_COMMON 0xfff2 -#define SHN_XINDEX 0xffff -#define SHN_HIRESERVE 0xffff - - - -#define SHT_NULL 0 -#define SHT_PROGBITS 1 -#define SHT_SYMTAB 2 -#define SHT_STRTAB 3 -#define SHT_RELA 4 -#define SHT_HASH 5 -#define SHT_DYNAMIC 6 -#define SHT_NOTE 7 -#define SHT_NOBITS 8 -#define SHT_REL 9 -#define SHT_SHLIB 10 -#define SHT_DYNSYM 11 -#define SHT_INIT_ARRAY 14 -#define SHT_FINI_ARRAY 15 -#define SHT_PREINIT_ARRAY 16 -#define SHT_GROUP 17 -#define SHT_SYMTAB_SHNDX 18 -#define SHT_NUM 19 -#define SHT_LOOS 0x60000000 -#define SHT_GNU_ATTRIBUTES 0x6ffffff5 -#define SHT_GNU_HASH 0x6ffffff6 -#define SHT_GNU_LIBLIST 0x6ffffff7 -#define SHT_CHECKSUM 0x6ffffff8 -#define SHT_LOSUNW 0x6ffffffa -#define SHT_SUNW_move 0x6ffffffa -#define SHT_SUNW_COMDAT 0x6ffffffb -#define SHT_SUNW_syminfo 0x6ffffffc -#define SHT_GNU_verdef 0x6ffffffd -#define SHT_GNU_verneed 0x6ffffffe -#define SHT_GNU_versym 0x6fffffff -#define SHT_HISUNW 0x6fffffff -#define SHT_HIOS 0x6fffffff -#define SHT_LOPROC 0x70000000 -#define SHT_HIPROC 0x7fffffff -#define SHT_LOUSER 0x80000000 -#define SHT_HIUSER 0x8fffffff - -#define SHF_WRITE (1 << 0) -#define SHF_ALLOC (1 << 1) -#define SHF_EXECINSTR (1 << 2) -#define SHF_MERGE (1 << 4) -#define SHF_STRINGS (1 << 5) -#define SHF_INFO_LINK (1 << 6) -#define SHF_LINK_ORDER (1 << 7) -#define SHF_OS_NONCONFORMING (1 << 8) - -#define SHF_GROUP (1 << 9) -#define SHF_TLS (1 << 10) -#define SHF_COMPRESSED (1 << 11) -#define SHF_MASKOS 0x0ff00000 -#define SHF_MASKPROC 0xf0000000 -#define SHF_ORDERED (1 << 30) -#define SHF_EXCLUDE (1U << 31) - -typedef struct { - Elf32_Word ch_type; - Elf32_Word ch_size; - Elf32_Word ch_addralign; -} Elf32_Chdr; - -typedef struct { - Elf64_Word ch_type; - Elf64_Word ch_reserved; - Elf64_Xword ch_size; - Elf64_Xword ch_addralign; -} Elf64_Chdr; - -#define ELFCOMPRESS_ZLIB 1 -#define ELFCOMPRESS_LOOS 0x60000000 -#define ELFCOMPRESS_HIOS 0x6fffffff -#define ELFCOMPRESS_LOPROC 0x70000000 -#define ELFCOMPRESS_HIPROC 0x7fffffff - - -#define GRP_COMDAT 0x1 - -typedef struct { - Elf32_Word st_name; - Elf32_Addr st_value; - Elf32_Word st_size; - unsigned char st_info; - unsigned char st_other; - Elf32_Section st_shndx; -} Elf32_Sym; - -typedef struct { - Elf64_Word st_name; - unsigned char st_info; - unsigned char st_other; - Elf64_Section st_shndx; - Elf64_Addr st_value; - Elf64_Xword st_size; -} Elf64_Sym; - -typedef struct { - Elf32_Half si_boundto; - Elf32_Half si_flags; -} Elf32_Syminfo; - -typedef struct { - Elf64_Half si_boundto; - Elf64_Half si_flags; -} Elf64_Syminfo; - -#define SYMINFO_BT_SELF 0xffff -#define SYMINFO_BT_PARENT 0xfffe -#define SYMINFO_BT_LOWRESERVE 0xff00 - -#define SYMINFO_FLG_DIRECT 0x0001 -#define SYMINFO_FLG_PASSTHRU 0x0002 -#define SYMINFO_FLG_COPY 0x0004 -#define SYMINFO_FLG_LAZYLOAD 0x0008 - -#define SYMINFO_NONE 0 -#define SYMINFO_CURRENT 1 -#define SYMINFO_NUM 2 - -#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) -#define ELF32_ST_TYPE(val) ((val) & 0xf) -#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) - -#define ELF64_ST_BIND(val) ELF32_ST_BIND (val) -#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) -#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type)) - -#define STB_LOCAL 0 -#define STB_GLOBAL 1 -#define STB_WEAK 2 -#define STB_NUM 3 -#define STB_LOOS 10 -#define STB_GNU_UNIQUE 10 -#define STB_HIOS 12 -#define STB_LOPROC 13 -#define STB_HIPROC 15 - -#define STT_NOTYPE 0 -#define STT_OBJECT 1 -#define STT_FUNC 2 -#define STT_SECTION 3 -#define STT_FILE 4 -#define STT_COMMON 5 -#define STT_TLS 6 -#define STT_NUM 7 -#define STT_LOOS 10 -#define STT_GNU_IFUNC 10 -#define STT_HIOS 12 -#define STT_LOPROC 13 -#define STT_HIPROC 15 - -#define STN_UNDEF 0 - -#define ELF32_ST_VISIBILITY(o) ((o) & 0x03) -#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o) - -#define STV_DEFAULT 0 -#define STV_INTERNAL 1 -#define STV_HIDDEN 2 -#define STV_PROTECTED 3 - - - - -typedef struct { - Elf32_Addr r_offset; - Elf32_Word r_info; -} Elf32_Rel; - -typedef struct { - Elf64_Addr r_offset; - Elf64_Xword r_info; -} Elf64_Rel; - - - -typedef struct { - Elf32_Addr r_offset; - Elf32_Word r_info; - Elf32_Sword r_addend; -} Elf32_Rela; - -typedef struct { - Elf64_Addr r_offset; - Elf64_Xword r_info; - Elf64_Sxword r_addend; -} Elf64_Rela; - - - -#define ELF32_R_SYM(val) ((val) >> 8) -#define ELF32_R_TYPE(val) ((val) & 0xff) -#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) - -#define ELF64_R_SYM(i) ((i) >> 32) -#define ELF64_R_TYPE(i) ((i) & 0xffffffff) -#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type)) - - - -typedef struct { - Elf32_Word p_type; - Elf32_Off p_offset; - Elf32_Addr p_vaddr; - Elf32_Addr p_paddr; - Elf32_Word p_filesz; - Elf32_Word p_memsz; - Elf32_Word p_flags; - Elf32_Word p_align; -} Elf32_Phdr; - -typedef struct { - Elf64_Word p_type; - Elf64_Word p_flags; - Elf64_Off p_offset; - Elf64_Addr p_vaddr; - Elf64_Addr p_paddr; - Elf64_Xword p_filesz; - Elf64_Xword p_memsz; - Elf64_Xword p_align; -} Elf64_Phdr; - - - -#define PT_NULL 0 -#define PT_LOAD 1 -#define PT_DYNAMIC 2 -#define PT_INTERP 3 -#define PT_NOTE 4 -#define PT_SHLIB 5 -#define PT_PHDR 6 -#define PT_TLS 7 -#define PT_NUM 8 -#define PT_LOOS 0x60000000 -#define PT_GNU_EH_FRAME 0x6474e550 -#define PT_GNU_STACK 0x6474e551 -#define PT_GNU_RELRO 0x6474e552 -#define PT_LOSUNW 0x6ffffffa -#define PT_SUNWBSS 0x6ffffffa -#define PT_SUNWSTACK 0x6ffffffb -#define PT_HISUNW 0x6fffffff -#define PT_HIOS 0x6fffffff -#define PT_LOPROC 0x70000000 -#define PT_HIPROC 0x7fffffff - - -#define PN_XNUM 0xffff - - -#define PF_X (1 << 0) -#define PF_W (1 << 1) -#define PF_R (1 << 2) -#define PF_MASKOS 0x0ff00000 -#define PF_MASKPROC 0xf0000000 - - - -#define NT_PRSTATUS 1 -#define NT_FPREGSET 2 -#define NT_PRPSINFO 3 -#define NT_PRXREG 4 -#define NT_TASKSTRUCT 4 -#define NT_PLATFORM 5 -#define NT_AUXV 6 -#define NT_GWINDOWS 7 -#define NT_ASRS 8 -#define NT_PSTATUS 10 -#define NT_PSINFO 13 -#define NT_PRCRED 14 -#define NT_UTSNAME 15 -#define NT_LWPSTATUS 16 -#define NT_LWPSINFO 17 -#define NT_PRFPXREG 20 -#define NT_SIGINFO 0x53494749 -#define NT_FILE 0x46494c45 -#define NT_PRXFPREG 0x46e62b7f -#define NT_PPC_VMX 0x100 -#define NT_PPC_SPE 0x101 -#define NT_PPC_VSX 0x102 -#define NT_386_TLS 0x200 -#define NT_386_IOPERM 0x201 -#define NT_X86_XSTATE 0x202 -#define NT_S390_HIGH_GPRS 0x300 -#define NT_S390_TIMER 0x301 -#define NT_S390_TODCMP 0x302 -#define NT_S390_TODPREG 0x303 -#define NT_S390_CTRS 0x304 -#define NT_S390_PREFIX 0x305 -#define NT_S390_LAST_BREAK 0x306 -#define NT_S390_SYSTEM_CALL 0x307 -#define NT_S390_TDB 0x308 -#define NT_ARM_VFP 0x400 -#define NT_ARM_TLS 0x401 -#define NT_ARM_HW_BREAK 0x402 -#define NT_ARM_HW_WATCH 0x403 -#define NT_ARM_SYSTEM_CALL 0x404 -#define NT_ARM_SVE 0x405 -#define NT_METAG_CBUF 0x500 -#define NT_METAG_RPIPE 0x501 -#define NT_METAG_TLS 0x502 -#define NT_VERSION 1 - - - - -typedef struct { - Elf32_Sword d_tag; - union { - Elf32_Word d_val; - Elf32_Addr d_ptr; - } d_un; -} Elf32_Dyn; - -typedef struct { - Elf64_Sxword d_tag; - union { - Elf64_Xword d_val; - Elf64_Addr d_ptr; - } d_un; -} Elf64_Dyn; - - - -#define DT_NULL 0 -#define DT_NEEDED 1 -#define DT_PLTRELSZ 2 -#define DT_PLTGOT 3 -#define DT_HASH 4 -#define DT_STRTAB 5 -#define DT_SYMTAB 6 -#define DT_RELA 7 -#define DT_RELASZ 8 -#define DT_RELAENT 9 -#define DT_STRSZ 10 -#define DT_SYMENT 11 -#define DT_INIT 12 -#define DT_FINI 13 -#define DT_SONAME 14 -#define DT_RPATH 15 -#define DT_SYMBOLIC 16 -#define DT_REL 17 -#define DT_RELSZ 18 -#define DT_RELENT 19 -#define DT_PLTREL 20 -#define DT_DEBUG 21 -#define DT_TEXTREL 22 -#define DT_JMPREL 23 -#define DT_BIND_NOW 24 -#define DT_INIT_ARRAY 25 -#define DT_FINI_ARRAY 26 -#define DT_INIT_ARRAYSZ 27 -#define DT_FINI_ARRAYSZ 28 -#define DT_RUNPATH 29 -#define DT_FLAGS 30 -#define DT_ENCODING 32 -#define DT_PREINIT_ARRAY 32 -#define DT_PREINIT_ARRAYSZ 33 -#define DT_NUM 34 -#define DT_LOOS 0x6000000d -#define DT_HIOS 0x6ffff000 -#define DT_LOPROC 0x70000000 -#define DT_HIPROC 0x7fffffff -#define DT_PROCNUM DT_MIPS_NUM - -#define DT_VALRNGLO 0x6ffffd00 -#define DT_GNU_PRELINKED 0x6ffffdf5 -#define DT_GNU_CONFLICTSZ 0x6ffffdf6 -#define DT_GNU_LIBLISTSZ 0x6ffffdf7 -#define DT_CHECKSUM 0x6ffffdf8 -#define DT_PLTPADSZ 0x6ffffdf9 -#define DT_MOVEENT 0x6ffffdfa -#define DT_MOVESZ 0x6ffffdfb -#define DT_FEATURE_1 0x6ffffdfc -#define DT_POSFLAG_1 0x6ffffdfd - -#define DT_SYMINSZ 0x6ffffdfe -#define DT_SYMINENT 0x6ffffdff -#define DT_VALRNGHI 0x6ffffdff -#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) -#define DT_VALNUM 12 - -#define DT_ADDRRNGLO 0x6ffffe00 -#define DT_GNU_HASH 0x6ffffef5 -#define DT_TLSDESC_PLT 0x6ffffef6 -#define DT_TLSDESC_GOT 0x6ffffef7 -#define DT_GNU_CONFLICT 0x6ffffef8 -#define DT_GNU_LIBLIST 0x6ffffef9 -#define DT_CONFIG 0x6ffffefa -#define DT_DEPAUDIT 0x6ffffefb -#define DT_AUDIT 0x6ffffefc -#define DT_PLTPAD 0x6ffffefd -#define DT_MOVETAB 0x6ffffefe -#define DT_SYMINFO 0x6ffffeff -#define DT_ADDRRNGHI 0x6ffffeff -#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) -#define DT_ADDRNUM 11 - - - -#define DT_VERSYM 0x6ffffff0 - -#define DT_RELACOUNT 0x6ffffff9 -#define DT_RELCOUNT 0x6ffffffa - - -#define DT_FLAGS_1 0x6ffffffb -#define DT_VERDEF 0x6ffffffc - -#define DT_VERDEFNUM 0x6ffffffd -#define DT_VERNEED 0x6ffffffe - -#define DT_VERNEEDNUM 0x6fffffff -#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) -#define DT_VERSIONTAGNUM 16 - - - -#define DT_AUXILIARY 0x7ffffffd -#define DT_FILTER 0x7fffffff -#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1) -#define DT_EXTRANUM 3 - - -#define DF_ORIGIN 0x00000001 -#define DF_SYMBOLIC 0x00000002 -#define DF_TEXTREL 0x00000004 -#define DF_BIND_NOW 0x00000008 -#define DF_STATIC_TLS 0x00000010 - - - -#define DF_1_NOW 0x00000001 -#define DF_1_GLOBAL 0x00000002 -#define DF_1_GROUP 0x00000004 -#define DF_1_NODELETE 0x00000008 -#define DF_1_LOADFLTR 0x00000010 -#define DF_1_INITFIRST 0x00000020 -#define DF_1_NOOPEN 0x00000040 -#define DF_1_ORIGIN 0x00000080 -#define DF_1_DIRECT 0x00000100 -#define DF_1_TRANS 0x00000200 -#define DF_1_INTERPOSE 0x00000400 -#define DF_1_NODEFLIB 0x00000800 -#define DF_1_NODUMP 0x00001000 -#define DF_1_CONFALT 0x00002000 -#define DF_1_ENDFILTEE 0x00004000 -#define DF_1_DISPRELDNE 0x00008000 -#define DF_1_DISPRELPND 0x00010000 -#define DF_1_NODIRECT 0x00020000 -#define DF_1_IGNMULDEF 0x00040000 -#define DF_1_NOKSYMS 0x00080000 -#define DF_1_NOHDR 0x00100000 -#define DF_1_EDITED 0x00200000 -#define DF_1_NORELOC 0x00400000 -#define DF_1_SYMINTPOSE 0x00800000 -#define DF_1_GLOBAUDIT 0x01000000 -#define DF_1_SINGLETON 0x02000000 - -#define DTF_1_PARINIT 0x00000001 -#define DTF_1_CONFEXP 0x00000002 - - -#define DF_P1_LAZYLOAD 0x00000001 -#define DF_P1_GROUPPERM 0x00000002 - - - - -typedef struct { - Elf32_Half vd_version; - Elf32_Half vd_flags; - Elf32_Half vd_ndx; - Elf32_Half vd_cnt; - Elf32_Word vd_hash; - Elf32_Word vd_aux; - Elf32_Word vd_next; -} Elf32_Verdef; - -typedef struct { - Elf64_Half vd_version; - Elf64_Half vd_flags; - Elf64_Half vd_ndx; - Elf64_Half vd_cnt; - Elf64_Word vd_hash; - Elf64_Word vd_aux; - Elf64_Word vd_next; -} Elf64_Verdef; - - - -#define VER_DEF_NONE 0 -#define VER_DEF_CURRENT 1 -#define VER_DEF_NUM 2 - - -#define VER_FLG_BASE 0x1 -#define VER_FLG_WEAK 0x2 - - -#define VER_NDX_LOCAL 0 -#define VER_NDX_GLOBAL 1 -#define VER_NDX_LORESERVE 0xff00 -#define VER_NDX_ELIMINATE 0xff01 - - - -typedef struct { - Elf32_Word vda_name; - Elf32_Word vda_next; -} Elf32_Verdaux; - -typedef struct { - Elf64_Word vda_name; - Elf64_Word vda_next; -} Elf64_Verdaux; - - - - -typedef struct { - Elf32_Half vn_version; - Elf32_Half vn_cnt; - Elf32_Word vn_file; - Elf32_Word vn_aux; - Elf32_Word vn_next; -} Elf32_Verneed; - -typedef struct { - Elf64_Half vn_version; - Elf64_Half vn_cnt; - Elf64_Word vn_file; - Elf64_Word vn_aux; - Elf64_Word vn_next; -} Elf64_Verneed; - - - -#define VER_NEED_NONE 0 -#define VER_NEED_CURRENT 1 -#define VER_NEED_NUM 2 - - - -typedef struct { - Elf32_Word vna_hash; - Elf32_Half vna_flags; - Elf32_Half vna_other; - Elf32_Word vna_name; - Elf32_Word vna_next; -} Elf32_Vernaux; - -typedef struct { - Elf64_Word vna_hash; - Elf64_Half vna_flags; - Elf64_Half vna_other; - Elf64_Word vna_name; - Elf64_Word vna_next; -} Elf64_Vernaux; - - - -#define VER_FLG_WEAK 0x2 - - - -typedef struct { - uint32_t a_type; - union { - uint32_t a_val; - } a_un; -} Elf32_auxv_t; - -typedef struct { - uint64_t a_type; - union { - uint64_t a_val; - } a_un; -} Elf64_auxv_t; - - - -#define AT_NULL 0 -#define AT_IGNORE 1 -#define AT_EXECFD 2 -#define AT_PHDR 3 -#define AT_PHENT 4 -#define AT_PHNUM 5 -#define AT_PAGESZ 6 -#define AT_BASE 7 -#define AT_FLAGS 8 -#define AT_ENTRY 9 -#define AT_NOTELF 10 -#define AT_UID 11 -#define AT_EUID 12 -#define AT_GID 13 -#define AT_EGID 14 -#define AT_CLKTCK 17 - - -#define AT_PLATFORM 15 -#define AT_HWCAP 16 - - - - -#define AT_FPUCW 18 - - -#define AT_DCACHEBSIZE 19 -#define AT_ICACHEBSIZE 20 -#define AT_UCACHEBSIZE 21 - - - -#define AT_IGNOREPPC 22 - -#define AT_SECURE 23 - -#define AT_BASE_PLATFORM 24 - -#define AT_RANDOM 25 - -#define AT_HWCAP2 26 - -#define AT_EXECFN 31 - - - -#define AT_SYSINFO 32 -#define AT_SYSINFO_EHDR 33 - - - -#define AT_L1I_CACHESHAPE 34 -#define AT_L1D_CACHESHAPE 35 -#define AT_L2_CACHESHAPE 36 -#define AT_L3_CACHESHAPE 37 - - - - -typedef struct { - Elf32_Word n_namesz; - Elf32_Word n_descsz; - Elf32_Word n_type; -} Elf32_Nhdr; - -typedef struct { - Elf64_Word n_namesz; - Elf64_Word n_descsz; - Elf64_Word n_type; -} Elf64_Nhdr; - - - - -#define ELF_NOTE_SOLARIS "SUNW Solaris" - - -#define ELF_NOTE_GNU "GNU" - - - - - -#define ELF_NOTE_PAGESIZE_HINT 1 - - -#define NT_GNU_ABI_TAG 1 -#define ELF_NOTE_ABI NT_GNU_ABI_TAG - - - -#define ELF_NOTE_OS_LINUX 0 -#define ELF_NOTE_OS_GNU 1 -#define ELF_NOTE_OS_SOLARIS2 2 -#define ELF_NOTE_OS_FREEBSD 3 - -#define NT_GNU_BUILD_ID 3 -#define NT_GNU_GOLD_VERSION 4 - - - -typedef struct { - Elf32_Xword m_value; - Elf32_Word m_info; - Elf32_Word m_poffset; - Elf32_Half m_repeat; - Elf32_Half m_stride; -} Elf32_Move; - -typedef struct { - Elf64_Xword m_value; - Elf64_Xword m_info; - Elf64_Xword m_poffset; - Elf64_Half m_repeat; - Elf64_Half m_stride; -} Elf64_Move; - - -#define ELF32_M_SYM(info) ((info) >> 8) -#define ELF32_M_SIZE(info) ((unsigned char) (info)) -#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size)) - -#define ELF64_M_SYM(info) ELF32_M_SYM (info) -#define ELF64_M_SIZE(info) ELF32_M_SIZE (info) -#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size) - -#define EF_CPU32 0x00810000 - -#define R_68K_NONE 0 -#define R_68K_32 1 -#define R_68K_16 2 -#define R_68K_8 3 -#define R_68K_PC32 4 -#define R_68K_PC16 5 -#define R_68K_PC8 6 -#define R_68K_GOT32 7 -#define R_68K_GOT16 8 -#define R_68K_GOT8 9 -#define R_68K_GOT32O 10 -#define R_68K_GOT16O 11 -#define R_68K_GOT8O 12 -#define R_68K_PLT32 13 -#define R_68K_PLT16 14 -#define R_68K_PLT8 15 -#define R_68K_PLT32O 16 -#define R_68K_PLT16O 17 -#define R_68K_PLT8O 18 -#define R_68K_COPY 19 -#define R_68K_GLOB_DAT 20 -#define R_68K_JMP_SLOT 21 -#define R_68K_RELATIVE 22 -#define R_68K_NUM 23 - -#define R_386_NONE 0 -#define R_386_32 1 -#define R_386_PC32 2 -#define R_386_GOT32 3 -#define R_386_PLT32 4 -#define R_386_COPY 5 -#define R_386_GLOB_DAT 6 -#define R_386_JMP_SLOT 7 -#define R_386_RELATIVE 8 -#define R_386_GOTOFF 9 -#define R_386_GOTPC 10 -#define R_386_32PLT 11 -#define R_386_TLS_TPOFF 14 -#define R_386_TLS_IE 15 -#define R_386_TLS_GOTIE 16 -#define R_386_TLS_LE 17 -#define R_386_TLS_GD 18 -#define R_386_TLS_LDM 19 -#define R_386_16 20 -#define R_386_PC16 21 -#define R_386_8 22 -#define R_386_PC8 23 -#define R_386_TLS_GD_32 24 -#define R_386_TLS_GD_PUSH 25 -#define R_386_TLS_GD_CALL 26 -#define R_386_TLS_GD_POP 27 -#define R_386_TLS_LDM_32 28 -#define R_386_TLS_LDM_PUSH 29 -#define R_386_TLS_LDM_CALL 30 -#define R_386_TLS_LDM_POP 31 -#define R_386_TLS_LDO_32 32 -#define R_386_TLS_IE_32 33 -#define R_386_TLS_LE_32 34 -#define R_386_TLS_DTPMOD32 35 -#define R_386_TLS_DTPOFF32 36 -#define R_386_TLS_TPOFF32 37 -#define R_386_SIZE32 38 -#define R_386_TLS_GOTDESC 39 -#define R_386_TLS_DESC_CALL 40 -#define R_386_TLS_DESC 41 -#define R_386_IRELATIVE 42 -#define R_386_GOT32X 43 -#define R_386_NUM 44 - - - - - -#define STT_SPARC_REGISTER 13 - - - -#define EF_SPARCV9_MM 3 -#define EF_SPARCV9_TSO 0 -#define EF_SPARCV9_PSO 1 -#define EF_SPARCV9_RMO 2 -#define EF_SPARC_LEDATA 0x800000 -#define EF_SPARC_EXT_MASK 0xFFFF00 -#define EF_SPARC_32PLUS 0x000100 -#define EF_SPARC_SUN_US1 0x000200 -#define EF_SPARC_HAL_R1 0x000400 -#define EF_SPARC_SUN_US3 0x000800 - - - -#define R_SPARC_NONE 0 -#define R_SPARC_8 1 -#define R_SPARC_16 2 -#define R_SPARC_32 3 -#define R_SPARC_DISP8 4 -#define R_SPARC_DISP16 5 -#define R_SPARC_DISP32 6 -#define R_SPARC_WDISP30 7 -#define R_SPARC_WDISP22 8 -#define R_SPARC_HI22 9 -#define R_SPARC_22 10 -#define R_SPARC_13 11 -#define R_SPARC_LO10 12 -#define R_SPARC_GOT10 13 -#define R_SPARC_GOT13 14 -#define R_SPARC_GOT22 15 -#define R_SPARC_PC10 16 -#define R_SPARC_PC22 17 -#define R_SPARC_WPLT30 18 -#define R_SPARC_COPY 19 -#define R_SPARC_GLOB_DAT 20 -#define R_SPARC_JMP_SLOT 21 -#define R_SPARC_RELATIVE 22 -#define R_SPARC_UA32 23 - - - -#define R_SPARC_PLT32 24 -#define R_SPARC_HIPLT22 25 -#define R_SPARC_LOPLT10 26 -#define R_SPARC_PCPLT32 27 -#define R_SPARC_PCPLT22 28 -#define R_SPARC_PCPLT10 29 -#define R_SPARC_10 30 -#define R_SPARC_11 31 -#define R_SPARC_64 32 -#define R_SPARC_OLO10 33 -#define R_SPARC_HH22 34 -#define R_SPARC_HM10 35 -#define R_SPARC_LM22 36 -#define R_SPARC_PC_HH22 37 -#define R_SPARC_PC_HM10 38 -#define R_SPARC_PC_LM22 39 -#define R_SPARC_WDISP16 40 -#define R_SPARC_WDISP19 41 -#define R_SPARC_GLOB_JMP 42 -#define R_SPARC_7 43 -#define R_SPARC_5 44 -#define R_SPARC_6 45 -#define R_SPARC_DISP64 46 -#define R_SPARC_PLT64 47 -#define R_SPARC_HIX22 48 -#define R_SPARC_LOX10 49 -#define R_SPARC_H44 50 -#define R_SPARC_M44 51 -#define R_SPARC_L44 52 -#define R_SPARC_REGISTER 53 -#define R_SPARC_UA64 54 -#define R_SPARC_UA16 55 -#define R_SPARC_TLS_GD_HI22 56 -#define R_SPARC_TLS_GD_LO10 57 -#define R_SPARC_TLS_GD_ADD 58 -#define R_SPARC_TLS_GD_CALL 59 -#define R_SPARC_TLS_LDM_HI22 60 -#define R_SPARC_TLS_LDM_LO10 61 -#define R_SPARC_TLS_LDM_ADD 62 -#define R_SPARC_TLS_LDM_CALL 63 -#define R_SPARC_TLS_LDO_HIX22 64 -#define R_SPARC_TLS_LDO_LOX10 65 -#define R_SPARC_TLS_LDO_ADD 66 -#define R_SPARC_TLS_IE_HI22 67 -#define R_SPARC_TLS_IE_LO10 68 -#define R_SPARC_TLS_IE_LD 69 -#define R_SPARC_TLS_IE_LDX 70 -#define R_SPARC_TLS_IE_ADD 71 -#define R_SPARC_TLS_LE_HIX22 72 -#define R_SPARC_TLS_LE_LOX10 73 -#define R_SPARC_TLS_DTPMOD32 74 -#define R_SPARC_TLS_DTPMOD64 75 -#define R_SPARC_TLS_DTPOFF32 76 -#define R_SPARC_TLS_DTPOFF64 77 -#define R_SPARC_TLS_TPOFF32 78 -#define R_SPARC_TLS_TPOFF64 79 -#define R_SPARC_GOTDATA_HIX22 80 -#define R_SPARC_GOTDATA_LOX10 81 -#define R_SPARC_GOTDATA_OP_HIX22 82 -#define R_SPARC_GOTDATA_OP_LOX10 83 -#define R_SPARC_GOTDATA_OP 84 -#define R_SPARC_H34 85 -#define R_SPARC_SIZE32 86 -#define R_SPARC_SIZE64 87 -#define R_SPARC_GNU_VTINHERIT 250 -#define R_SPARC_GNU_VTENTRY 251 -#define R_SPARC_REV32 252 - -#define R_SPARC_NUM 253 - - - -#define DT_SPARC_REGISTER 0x70000001 -#define DT_SPARC_NUM 2 - - -#define EF_MIPS_NOREORDER 1 -#define EF_MIPS_PIC 2 -#define EF_MIPS_CPIC 4 -#define EF_MIPS_XGOT 8 -#define EF_MIPS_64BIT_WHIRL 16 -#define EF_MIPS_ABI2 32 -#define EF_MIPS_ABI_ON32 64 -#define EF_MIPS_FP64 512 -#define EF_MIPS_NAN2008 1024 -#define EF_MIPS_ARCH 0xf0000000 - - - -#define EF_MIPS_ARCH_1 0x00000000 -#define EF_MIPS_ARCH_2 0x10000000 -#define EF_MIPS_ARCH_3 0x20000000 -#define EF_MIPS_ARCH_4 0x30000000 -#define EF_MIPS_ARCH_5 0x40000000 -#define EF_MIPS_ARCH_32 0x50000000 -#define EF_MIPS_ARCH_64 0x60000000 -#define EF_MIPS_ARCH_32R2 0x70000000 -#define EF_MIPS_ARCH_64R2 0x80000000 - - -#define E_MIPS_ARCH_1 0x00000000 -#define E_MIPS_ARCH_2 0x10000000 -#define E_MIPS_ARCH_3 0x20000000 -#define E_MIPS_ARCH_4 0x30000000 -#define E_MIPS_ARCH_5 0x40000000 -#define E_MIPS_ARCH_32 0x50000000 -#define E_MIPS_ARCH_64 0x60000000 - - - -#define SHN_MIPS_ACOMMON 0xff00 -#define SHN_MIPS_TEXT 0xff01 -#define SHN_MIPS_DATA 0xff02 -#define SHN_MIPS_SCOMMON 0xff03 -#define SHN_MIPS_SUNDEFINED 0xff04 - - - -#define SHT_MIPS_LIBLIST 0x70000000 -#define SHT_MIPS_MSYM 0x70000001 -#define SHT_MIPS_CONFLICT 0x70000002 -#define SHT_MIPS_GPTAB 0x70000003 -#define SHT_MIPS_UCODE 0x70000004 -#define SHT_MIPS_DEBUG 0x70000005 -#define SHT_MIPS_REGINFO 0x70000006 -#define SHT_MIPS_PACKAGE 0x70000007 -#define SHT_MIPS_PACKSYM 0x70000008 -#define SHT_MIPS_RELD 0x70000009 -#define SHT_MIPS_IFACE 0x7000000b -#define SHT_MIPS_CONTENT 0x7000000c -#define SHT_MIPS_OPTIONS 0x7000000d -#define SHT_MIPS_SHDR 0x70000010 -#define SHT_MIPS_FDESC 0x70000011 -#define SHT_MIPS_EXTSYM 0x70000012 -#define SHT_MIPS_DENSE 0x70000013 -#define SHT_MIPS_PDESC 0x70000014 -#define SHT_MIPS_LOCSYM 0x70000015 -#define SHT_MIPS_AUXSYM 0x70000016 -#define SHT_MIPS_OPTSYM 0x70000017 -#define SHT_MIPS_LOCSTR 0x70000018 -#define SHT_MIPS_LINE 0x70000019 -#define SHT_MIPS_RFDESC 0x7000001a -#define SHT_MIPS_DELTASYM 0x7000001b -#define SHT_MIPS_DELTAINST 0x7000001c -#define SHT_MIPS_DELTACLASS 0x7000001d -#define SHT_MIPS_DWARF 0x7000001e -#define SHT_MIPS_DELTADECL 0x7000001f -#define SHT_MIPS_SYMBOL_LIB 0x70000020 -#define SHT_MIPS_EVENTS 0x70000021 -#define SHT_MIPS_TRANSLATE 0x70000022 -#define SHT_MIPS_PIXIE 0x70000023 -#define SHT_MIPS_XLATE 0x70000024 -#define SHT_MIPS_XLATE_DEBUG 0x70000025 -#define SHT_MIPS_WHIRL 0x70000026 -#define SHT_MIPS_EH_REGION 0x70000027 -#define SHT_MIPS_XLATE_OLD 0x70000028 -#define SHT_MIPS_PDR_EXCEPTION 0x70000029 - - - -#define SHF_MIPS_GPREL 0x10000000 -#define SHF_MIPS_MERGE 0x20000000 -#define SHF_MIPS_ADDR 0x40000000 -#define SHF_MIPS_STRINGS 0x80000000 -#define SHF_MIPS_NOSTRIP 0x08000000 -#define SHF_MIPS_LOCAL 0x04000000 -#define SHF_MIPS_NAMES 0x02000000 -#define SHF_MIPS_NODUPE 0x01000000 - - - - - -#define STO_MIPS_DEFAULT 0x0 -#define STO_MIPS_INTERNAL 0x1 -#define STO_MIPS_HIDDEN 0x2 -#define STO_MIPS_PROTECTED 0x3 -#define STO_MIPS_PLT 0x8 -#define STO_MIPS_SC_ALIGN_UNUSED 0xff - - -#define STB_MIPS_SPLIT_COMMON 13 - - - -typedef union { - struct { - Elf32_Word gt_current_g_value; - Elf32_Word gt_unused; - } gt_header; - struct { - Elf32_Word gt_g_value; - Elf32_Word gt_bytes; - } gt_entry; -} Elf32_gptab; - - - -typedef struct { - Elf32_Word ri_gprmask; - Elf32_Word ri_cprmask[4]; - Elf32_Sword ri_gp_value; -} Elf32_RegInfo; - - - -typedef struct { - unsigned char kind; - - unsigned char size; - Elf32_Section section; - - Elf32_Word info; -} Elf_Options; - - - -#define ODK_NULL 0 -#define ODK_REGINFO 1 -#define ODK_EXCEPTIONS 2 -#define ODK_PAD 3 -#define ODK_HWPATCH 4 -#define ODK_FILL 5 -#define ODK_TAGS 6 -#define ODK_HWAND 7 -#define ODK_HWOR 8 - - - -#define OEX_FPU_MIN 0x1f -#define OEX_FPU_MAX 0x1f00 -#define OEX_PAGE0 0x10000 -#define OEX_SMM 0x20000 -#define OEX_FPDBUG 0x40000 -#define OEX_PRECISEFP OEX_FPDBUG -#define OEX_DISMISS 0x80000 - -#define OEX_FPU_INVAL 0x10 -#define OEX_FPU_DIV0 0x08 -#define OEX_FPU_OFLO 0x04 -#define OEX_FPU_UFLO 0x02 -#define OEX_FPU_INEX 0x01 - - - -#define OHW_R4KEOP 0x1 -#define OHW_R8KPFETCH 0x2 -#define OHW_R5KEOP 0x4 -#define OHW_R5KCVTL 0x8 - -#define OPAD_PREFIX 0x1 -#define OPAD_POSTFIX 0x2 -#define OPAD_SYMBOL 0x4 - - - -typedef struct { - Elf32_Word hwp_flags1; - Elf32_Word hwp_flags2; -} Elf_Options_Hw; - - - -#define OHWA0_R4KEOP_CHECKED 0x00000001 -#define OHWA1_R4KEOP_CLEAN 0x00000002 - - - -#define R_MIPS_NONE 0 -#define R_MIPS_16 1 -#define R_MIPS_32 2 -#define R_MIPS_REL32 3 -#define R_MIPS_26 4 -#define R_MIPS_HI16 5 -#define R_MIPS_LO16 6 -#define R_MIPS_GPREL16 7 -#define R_MIPS_LITERAL 8 -#define R_MIPS_GOT16 9 -#define R_MIPS_PC16 10 -#define R_MIPS_CALL16 11 -#define R_MIPS_GPREL32 12 - -#define R_MIPS_SHIFT5 16 -#define R_MIPS_SHIFT6 17 -#define R_MIPS_64 18 -#define R_MIPS_GOT_DISP 19 -#define R_MIPS_GOT_PAGE 20 -#define R_MIPS_GOT_OFST 21 -#define R_MIPS_GOT_HI16 22 -#define R_MIPS_GOT_LO16 23 -#define R_MIPS_SUB 24 -#define R_MIPS_INSERT_A 25 -#define R_MIPS_INSERT_B 26 -#define R_MIPS_DELETE 27 -#define R_MIPS_HIGHER 28 -#define R_MIPS_HIGHEST 29 -#define R_MIPS_CALL_HI16 30 -#define R_MIPS_CALL_LO16 31 -#define R_MIPS_SCN_DISP 32 -#define R_MIPS_REL16 33 -#define R_MIPS_ADD_IMMEDIATE 34 -#define R_MIPS_PJUMP 35 -#define R_MIPS_RELGOT 36 -#define R_MIPS_JALR 37 -#define R_MIPS_TLS_DTPMOD32 38 -#define R_MIPS_TLS_DTPREL32 39 -#define R_MIPS_TLS_DTPMOD64 40 -#define R_MIPS_TLS_DTPREL64 41 -#define R_MIPS_TLS_GD 42 -#define R_MIPS_TLS_LDM 43 -#define R_MIPS_TLS_DTPREL_HI16 44 -#define R_MIPS_TLS_DTPREL_LO16 45 -#define R_MIPS_TLS_GOTTPREL 46 -#define R_MIPS_TLS_TPREL32 47 -#define R_MIPS_TLS_TPREL64 48 -#define R_MIPS_TLS_TPREL_HI16 49 -#define R_MIPS_TLS_TPREL_LO16 50 -#define R_MIPS_GLOB_DAT 51 -#define R_MIPS_COPY 126 -#define R_MIPS_JUMP_SLOT 127 - -#define R_MIPS_NUM 128 - - - -#define PT_MIPS_REGINFO 0x70000000 -#define PT_MIPS_RTPROC 0x70000001 -#define PT_MIPS_OPTIONS 0x70000002 -#define PT_MIPS_ABIFLAGS 0x70000003 - - - -#define PF_MIPS_LOCAL 0x10000000 - - - -#define DT_MIPS_RLD_VERSION 0x70000001 -#define DT_MIPS_TIME_STAMP 0x70000002 -#define DT_MIPS_ICHECKSUM 0x70000003 -#define DT_MIPS_IVERSION 0x70000004 -#define DT_MIPS_FLAGS 0x70000005 -#define DT_MIPS_BASE_ADDRESS 0x70000006 -#define DT_MIPS_MSYM 0x70000007 -#define DT_MIPS_CONFLICT 0x70000008 -#define DT_MIPS_LIBLIST 0x70000009 -#define DT_MIPS_LOCAL_GOTNO 0x7000000a -#define DT_MIPS_CONFLICTNO 0x7000000b -#define DT_MIPS_LIBLISTNO 0x70000010 -#define DT_MIPS_SYMTABNO 0x70000011 -#define DT_MIPS_UNREFEXTNO 0x70000012 -#define DT_MIPS_GOTSYM 0x70000013 -#define DT_MIPS_HIPAGENO 0x70000014 -#define DT_MIPS_RLD_MAP 0x70000016 -#define DT_MIPS_DELTA_CLASS 0x70000017 -#define DT_MIPS_DELTA_CLASS_NO 0x70000018 - -#define DT_MIPS_DELTA_INSTANCE 0x70000019 -#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a - -#define DT_MIPS_DELTA_RELOC 0x7000001b -#define DT_MIPS_DELTA_RELOC_NO 0x7000001c - -#define DT_MIPS_DELTA_SYM 0x7000001d - -#define DT_MIPS_DELTA_SYM_NO 0x7000001e - -#define DT_MIPS_DELTA_CLASSSYM 0x70000020 - -#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 - -#define DT_MIPS_CXX_FLAGS 0x70000022 -#define DT_MIPS_PIXIE_INIT 0x70000023 -#define DT_MIPS_SYMBOL_LIB 0x70000024 -#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 -#define DT_MIPS_LOCAL_GOTIDX 0x70000026 -#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 -#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 -#define DT_MIPS_OPTIONS 0x70000029 -#define DT_MIPS_INTERFACE 0x7000002a -#define DT_MIPS_DYNSTR_ALIGN 0x7000002b -#define DT_MIPS_INTERFACE_SIZE 0x7000002c -#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d - -#define DT_MIPS_PERF_SUFFIX 0x7000002e - -#define DT_MIPS_COMPACT_SIZE 0x7000002f -#define DT_MIPS_GP_VALUE 0x70000030 -#define DT_MIPS_AUX_DYNAMIC 0x70000031 - -#define DT_MIPS_PLTGOT 0x70000032 - -#define DT_MIPS_RWPLT 0x70000034 -#define DT_MIPS_RLD_MAP_REL 0x70000035 -#define DT_MIPS_NUM 0x36 - - - -#define RHF_NONE 0 -#define RHF_QUICKSTART (1 << 0) -#define RHF_NOTPOT (1 << 1) -#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) -#define RHF_NO_MOVE (1 << 3) -#define RHF_SGI_ONLY (1 << 4) -#define RHF_GUARANTEE_INIT (1 << 5) -#define RHF_DELTA_C_PLUS_PLUS (1 << 6) -#define RHF_GUARANTEE_START_INIT (1 << 7) -#define RHF_PIXIE (1 << 8) -#define RHF_DEFAULT_DELAY_LOAD (1 << 9) -#define RHF_REQUICKSTART (1 << 10) -#define RHF_REQUICKSTARTED (1 << 11) -#define RHF_CORD (1 << 12) -#define RHF_NO_UNRES_UNDEF (1 << 13) -#define RHF_RLD_ORDER_SAFE (1 << 14) - - - -typedef struct { - Elf32_Word l_name; - Elf32_Word l_time_stamp; - Elf32_Word l_checksum; - Elf32_Word l_version; - Elf32_Word l_flags; -} Elf32_Lib; - -typedef struct { - Elf64_Word l_name; - Elf64_Word l_time_stamp; - Elf64_Word l_checksum; - Elf64_Word l_version; - Elf64_Word l_flags; -} Elf64_Lib; - - - - -#define LL_NONE 0 -#define LL_EXACT_MATCH (1 << 0) -#define LL_IGNORE_INT_VER (1 << 1) -#define LL_REQUIRE_MINOR (1 << 2) -#define LL_EXPORTS (1 << 3) -#define LL_DELAY_LOAD (1 << 4) -#define LL_DELTA (1 << 5) - - - -typedef Elf32_Addr Elf32_Conflict; - -typedef struct { - Elf32_Half version; - unsigned char isa_level; - unsigned char isa_rev; - unsigned char gpr_size; - unsigned char cpr1_size; - unsigned char cpr2_size; - unsigned char fp_abi; - Elf32_Word isa_ext; - Elf32_Word ases; - Elf32_Word flags1; - Elf32_Word flags2; -} Elf_MIPS_ABIFlags_v0; - -#define MIPS_AFL_REG_NONE 0x00 -#define MIPS_AFL_REG_32 0x01 -#define MIPS_AFL_REG_64 0x02 -#define MIPS_AFL_REG_128 0x03 - -#define MIPS_AFL_ASE_DSP 0x00000001 -#define MIPS_AFL_ASE_DSPR2 0x00000002 -#define MIPS_AFL_ASE_EVA 0x00000004 -#define MIPS_AFL_ASE_MCU 0x00000008 -#define MIPS_AFL_ASE_MDMX 0x00000010 -#define MIPS_AFL_ASE_MIPS3D 0x00000020 -#define MIPS_AFL_ASE_MT 0x00000040 -#define MIPS_AFL_ASE_SMARTMIPS 0x00000080 -#define MIPS_AFL_ASE_VIRT 0x00000100 -#define MIPS_AFL_ASE_MSA 0x00000200 -#define MIPS_AFL_ASE_MIPS16 0x00000400 -#define MIPS_AFL_ASE_MICROMIPS 0x00000800 -#define MIPS_AFL_ASE_XPA 0x00001000 -#define MIPS_AFL_ASE_MASK 0x00001fff - -#define MIPS_AFL_EXT_XLR 1 -#define MIPS_AFL_EXT_OCTEON2 2 -#define MIPS_AFL_EXT_OCTEONP 3 -#define MIPS_AFL_EXT_LOONGSON_3A 4 -#define MIPS_AFL_EXT_OCTEON 5 -#define MIPS_AFL_EXT_5900 6 -#define MIPS_AFL_EXT_4650 7 -#define MIPS_AFL_EXT_4010 8 -#define MIPS_AFL_EXT_4100 9 -#define MIPS_AFL_EXT_3900 10 -#define MIPS_AFL_EXT_10000 11 -#define MIPS_AFL_EXT_SB1 12 -#define MIPS_AFL_EXT_4111 13 -#define MIPS_AFL_EXT_4120 14 -#define MIPS_AFL_EXT_5400 15 -#define MIPS_AFL_EXT_5500 16 -#define MIPS_AFL_EXT_LOONGSON_2E 17 -#define MIPS_AFL_EXT_LOONGSON_2F 18 - -#define MIPS_AFL_FLAGS1_ODDSPREG 1 - -enum -{ - Val_GNU_MIPS_ABI_FP_ANY = 0, - Val_GNU_MIPS_ABI_FP_DOUBLE = 1, - Val_GNU_MIPS_ABI_FP_SINGLE = 2, - Val_GNU_MIPS_ABI_FP_SOFT = 3, - Val_GNU_MIPS_ABI_FP_OLD_64 = 4, - Val_GNU_MIPS_ABI_FP_XX = 5, - Val_GNU_MIPS_ABI_FP_64 = 6, - Val_GNU_MIPS_ABI_FP_64A = 7, - Val_GNU_MIPS_ABI_FP_MAX = 7 -}; - - - - -#define EF_PARISC_TRAPNIL 0x00010000 -#define EF_PARISC_EXT 0x00020000 -#define EF_PARISC_LSB 0x00040000 -#define EF_PARISC_WIDE 0x00080000 -#define EF_PARISC_NO_KABP 0x00100000 - -#define EF_PARISC_LAZYSWAP 0x00400000 -#define EF_PARISC_ARCH 0x0000ffff - - - -#define EFA_PARISC_1_0 0x020b -#define EFA_PARISC_1_1 0x0210 -#define EFA_PARISC_2_0 0x0214 - - - -#define SHN_PARISC_ANSI_COMMON 0xff00 - -#define SHN_PARISC_HUGE_COMMON 0xff01 - - - -#define SHT_PARISC_EXT 0x70000000 -#define SHT_PARISC_UNWIND 0x70000001 -#define SHT_PARISC_DOC 0x70000002 - - - -#define SHF_PARISC_SHORT 0x20000000 -#define SHF_PARISC_HUGE 0x40000000 -#define SHF_PARISC_SBP 0x80000000 - - - -#define STT_PARISC_MILLICODE 13 - -#define STT_HP_OPAQUE (STT_LOOS + 0x1) -#define STT_HP_STUB (STT_LOOS + 0x2) - - - -#define R_PARISC_NONE 0 -#define R_PARISC_DIR32 1 -#define R_PARISC_DIR21L 2 -#define R_PARISC_DIR17R 3 -#define R_PARISC_DIR17F 4 -#define R_PARISC_DIR14R 6 -#define R_PARISC_PCREL32 9 -#define R_PARISC_PCREL21L 10 -#define R_PARISC_PCREL17R 11 -#define R_PARISC_PCREL17F 12 -#define R_PARISC_PCREL14R 14 -#define R_PARISC_DPREL21L 18 -#define R_PARISC_DPREL14R 22 -#define R_PARISC_GPREL21L 26 -#define R_PARISC_GPREL14R 30 -#define R_PARISC_LTOFF21L 34 -#define R_PARISC_LTOFF14R 38 -#define R_PARISC_SECREL32 41 -#define R_PARISC_SEGBASE 48 -#define R_PARISC_SEGREL32 49 -#define R_PARISC_PLTOFF21L 50 -#define R_PARISC_PLTOFF14R 54 -#define R_PARISC_LTOFF_FPTR32 57 -#define R_PARISC_LTOFF_FPTR21L 58 -#define R_PARISC_LTOFF_FPTR14R 62 -#define R_PARISC_FPTR64 64 -#define R_PARISC_PLABEL32 65 -#define R_PARISC_PLABEL21L 66 -#define R_PARISC_PLABEL14R 70 -#define R_PARISC_PCREL64 72 -#define R_PARISC_PCREL22F 74 -#define R_PARISC_PCREL14WR 75 -#define R_PARISC_PCREL14DR 76 -#define R_PARISC_PCREL16F 77 -#define R_PARISC_PCREL16WF 78 -#define R_PARISC_PCREL16DF 79 -#define R_PARISC_DIR64 80 -#define R_PARISC_DIR14WR 83 -#define R_PARISC_DIR14DR 84 -#define R_PARISC_DIR16F 85 -#define R_PARISC_DIR16WF 86 -#define R_PARISC_DIR16DF 87 -#define R_PARISC_GPREL64 88 -#define R_PARISC_GPREL14WR 91 -#define R_PARISC_GPREL14DR 92 -#define R_PARISC_GPREL16F 93 -#define R_PARISC_GPREL16WF 94 -#define R_PARISC_GPREL16DF 95 -#define R_PARISC_LTOFF64 96 -#define R_PARISC_LTOFF14WR 99 -#define R_PARISC_LTOFF14DR 100 -#define R_PARISC_LTOFF16F 101 -#define R_PARISC_LTOFF16WF 102 -#define R_PARISC_LTOFF16DF 103 -#define R_PARISC_SECREL64 104 -#define R_PARISC_SEGREL64 112 -#define R_PARISC_PLTOFF14WR 115 -#define R_PARISC_PLTOFF14DR 116 -#define R_PARISC_PLTOFF16F 117 -#define R_PARISC_PLTOFF16WF 118 -#define R_PARISC_PLTOFF16DF 119 -#define R_PARISC_LTOFF_FPTR64 120 -#define R_PARISC_LTOFF_FPTR14WR 123 -#define R_PARISC_LTOFF_FPTR14DR 124 -#define R_PARISC_LTOFF_FPTR16F 125 -#define R_PARISC_LTOFF_FPTR16WF 126 -#define R_PARISC_LTOFF_FPTR16DF 127 -#define R_PARISC_LORESERVE 128 -#define R_PARISC_COPY 128 -#define R_PARISC_IPLT 129 -#define R_PARISC_EPLT 130 -#define R_PARISC_TPREL32 153 -#define R_PARISC_TPREL21L 154 -#define R_PARISC_TPREL14R 158 -#define R_PARISC_LTOFF_TP21L 162 -#define R_PARISC_LTOFF_TP14R 166 -#define R_PARISC_LTOFF_TP14F 167 -#define R_PARISC_TPREL64 216 -#define R_PARISC_TPREL14WR 219 -#define R_PARISC_TPREL14DR 220 -#define R_PARISC_TPREL16F 221 -#define R_PARISC_TPREL16WF 222 -#define R_PARISC_TPREL16DF 223 -#define R_PARISC_LTOFF_TP64 224 -#define R_PARISC_LTOFF_TP14WR 227 -#define R_PARISC_LTOFF_TP14DR 228 -#define R_PARISC_LTOFF_TP16F 229 -#define R_PARISC_LTOFF_TP16WF 230 -#define R_PARISC_LTOFF_TP16DF 231 -#define R_PARISC_GNU_VTENTRY 232 -#define R_PARISC_GNU_VTINHERIT 233 -#define R_PARISC_TLS_GD21L 234 -#define R_PARISC_TLS_GD14R 235 -#define R_PARISC_TLS_GDCALL 236 -#define R_PARISC_TLS_LDM21L 237 -#define R_PARISC_TLS_LDM14R 238 -#define R_PARISC_TLS_LDMCALL 239 -#define R_PARISC_TLS_LDO21L 240 -#define R_PARISC_TLS_LDO14R 241 -#define R_PARISC_TLS_DTPMOD32 242 -#define R_PARISC_TLS_DTPMOD64 243 -#define R_PARISC_TLS_DTPOFF32 244 -#define R_PARISC_TLS_DTPOFF64 245 -#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L -#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R -#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L -#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R -#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32 -#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64 -#define R_PARISC_HIRESERVE 255 - - - -#define PT_HP_TLS (PT_LOOS + 0x0) -#define PT_HP_CORE_NONE (PT_LOOS + 0x1) -#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) -#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) -#define PT_HP_CORE_COMM (PT_LOOS + 0x4) -#define PT_HP_CORE_PROC (PT_LOOS + 0x5) -#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) -#define PT_HP_CORE_STACK (PT_LOOS + 0x7) -#define PT_HP_CORE_SHM (PT_LOOS + 0x8) -#define PT_HP_CORE_MMF (PT_LOOS + 0x9) -#define PT_HP_PARALLEL (PT_LOOS + 0x10) -#define PT_HP_FASTBIND (PT_LOOS + 0x11) -#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) -#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) -#define PT_HP_STACK (PT_LOOS + 0x14) - -#define PT_PARISC_ARCHEXT 0x70000000 -#define PT_PARISC_UNWIND 0x70000001 - - - -#define PF_PARISC_SBP 0x08000000 - -#define PF_HP_PAGE_SIZE 0x00100000 -#define PF_HP_FAR_SHARED 0x00200000 -#define PF_HP_NEAR_SHARED 0x00400000 -#define PF_HP_CODE 0x01000000 -#define PF_HP_MODIFY 0x02000000 -#define PF_HP_LAZYSWAP 0x04000000 -#define PF_HP_SBP 0x08000000 - - - - - - -#define EF_ALPHA_32BIT 1 -#define EF_ALPHA_CANRELAX 2 - - - - -#define SHT_ALPHA_DEBUG 0x70000001 -#define SHT_ALPHA_REGINFO 0x70000002 - - - -#define SHF_ALPHA_GPREL 0x10000000 - - -#define STO_ALPHA_NOPV 0x80 -#define STO_ALPHA_STD_GPLOAD 0x88 - - - -#define R_ALPHA_NONE 0 -#define R_ALPHA_REFLONG 1 -#define R_ALPHA_REFQUAD 2 -#define R_ALPHA_GPREL32 3 -#define R_ALPHA_LITERAL 4 -#define R_ALPHA_LITUSE 5 -#define R_ALPHA_GPDISP 6 -#define R_ALPHA_BRADDR 7 -#define R_ALPHA_HINT 8 -#define R_ALPHA_SREL16 9 -#define R_ALPHA_SREL32 10 -#define R_ALPHA_SREL64 11 -#define R_ALPHA_GPRELHIGH 17 -#define R_ALPHA_GPRELLOW 18 -#define R_ALPHA_GPREL16 19 -#define R_ALPHA_COPY 24 -#define R_ALPHA_GLOB_DAT 25 -#define R_ALPHA_JMP_SLOT 26 -#define R_ALPHA_RELATIVE 27 -#define R_ALPHA_TLS_GD_HI 28 -#define R_ALPHA_TLSGD 29 -#define R_ALPHA_TLS_LDM 30 -#define R_ALPHA_DTPMOD64 31 -#define R_ALPHA_GOTDTPREL 32 -#define R_ALPHA_DTPREL64 33 -#define R_ALPHA_DTPRELHI 34 -#define R_ALPHA_DTPRELLO 35 -#define R_ALPHA_DTPREL16 36 -#define R_ALPHA_GOTTPREL 37 -#define R_ALPHA_TPREL64 38 -#define R_ALPHA_TPRELHI 39 -#define R_ALPHA_TPRELLO 40 -#define R_ALPHA_TPREL16 41 - -#define R_ALPHA_NUM 46 - - -#define LITUSE_ALPHA_ADDR 0 -#define LITUSE_ALPHA_BASE 1 -#define LITUSE_ALPHA_BYTOFF 2 -#define LITUSE_ALPHA_JSR 3 -#define LITUSE_ALPHA_TLS_GD 4 -#define LITUSE_ALPHA_TLS_LDM 5 - - -#define DT_ALPHA_PLTRO (DT_LOPROC + 0) -#define DT_ALPHA_NUM 1 - - - - -#define EF_PPC_EMB 0x80000000 - - -#define EF_PPC_RELOCATABLE 0x00010000 -#define EF_PPC_RELOCATABLE_LIB 0x00008000 - - - -#define R_PPC_NONE 0 -#define R_PPC_ADDR32 1 -#define R_PPC_ADDR24 2 -#define R_PPC_ADDR16 3 -#define R_PPC_ADDR16_LO 4 -#define R_PPC_ADDR16_HI 5 -#define R_PPC_ADDR16_HA 6 -#define R_PPC_ADDR14 7 -#define R_PPC_ADDR14_BRTAKEN 8 -#define R_PPC_ADDR14_BRNTAKEN 9 -#define R_PPC_REL24 10 -#define R_PPC_REL14 11 -#define R_PPC_REL14_BRTAKEN 12 -#define R_PPC_REL14_BRNTAKEN 13 -#define R_PPC_GOT16 14 -#define R_PPC_GOT16_LO 15 -#define R_PPC_GOT16_HI 16 -#define R_PPC_GOT16_HA 17 -#define R_PPC_PLTREL24 18 -#define R_PPC_COPY 19 -#define R_PPC_GLOB_DAT 20 -#define R_PPC_JMP_SLOT 21 -#define R_PPC_RELATIVE 22 -#define R_PPC_LOCAL24PC 23 -#define R_PPC_UADDR32 24 -#define R_PPC_UADDR16 25 -#define R_PPC_REL32 26 -#define R_PPC_PLT32 27 -#define R_PPC_PLTREL32 28 -#define R_PPC_PLT16_LO 29 -#define R_PPC_PLT16_HI 30 -#define R_PPC_PLT16_HA 31 -#define R_PPC_SDAREL16 32 -#define R_PPC_SECTOFF 33 -#define R_PPC_SECTOFF_LO 34 -#define R_PPC_SECTOFF_HI 35 -#define R_PPC_SECTOFF_HA 36 - - -#define R_PPC_TLS 67 -#define R_PPC_DTPMOD32 68 -#define R_PPC_TPREL16 69 -#define R_PPC_TPREL16_LO 70 -#define R_PPC_TPREL16_HI 71 -#define R_PPC_TPREL16_HA 72 -#define R_PPC_TPREL32 73 -#define R_PPC_DTPREL16 74 -#define R_PPC_DTPREL16_LO 75 -#define R_PPC_DTPREL16_HI 76 -#define R_PPC_DTPREL16_HA 77 -#define R_PPC_DTPREL32 78 -#define R_PPC_GOT_TLSGD16 79 -#define R_PPC_GOT_TLSGD16_LO 80 -#define R_PPC_GOT_TLSGD16_HI 81 -#define R_PPC_GOT_TLSGD16_HA 82 -#define R_PPC_GOT_TLSLD16 83 -#define R_PPC_GOT_TLSLD16_LO 84 -#define R_PPC_GOT_TLSLD16_HI 85 -#define R_PPC_GOT_TLSLD16_HA 86 -#define R_PPC_GOT_TPREL16 87 -#define R_PPC_GOT_TPREL16_LO 88 -#define R_PPC_GOT_TPREL16_HI 89 -#define R_PPC_GOT_TPREL16_HA 90 -#define R_PPC_GOT_DTPREL16 91 -#define R_PPC_GOT_DTPREL16_LO 92 -#define R_PPC_GOT_DTPREL16_HI 93 -#define R_PPC_GOT_DTPREL16_HA 94 -#define R_PPC_TLSGD 95 -#define R_PPC_TLSLD 96 - - -#define R_PPC_EMB_NADDR32 101 -#define R_PPC_EMB_NADDR16 102 -#define R_PPC_EMB_NADDR16_LO 103 -#define R_PPC_EMB_NADDR16_HI 104 -#define R_PPC_EMB_NADDR16_HA 105 -#define R_PPC_EMB_SDAI16 106 -#define R_PPC_EMB_SDA2I16 107 -#define R_PPC_EMB_SDA2REL 108 -#define R_PPC_EMB_SDA21 109 -#define R_PPC_EMB_MRKREF 110 -#define R_PPC_EMB_RELSEC16 111 -#define R_PPC_EMB_RELST_LO 112 -#define R_PPC_EMB_RELST_HI 113 -#define R_PPC_EMB_RELST_HA 114 -#define R_PPC_EMB_BIT_FLD 115 -#define R_PPC_EMB_RELSDA 116 - - -#define R_PPC_DIAB_SDA21_LO 180 -#define R_PPC_DIAB_SDA21_HI 181 -#define R_PPC_DIAB_SDA21_HA 182 -#define R_PPC_DIAB_RELSDA_LO 183 -#define R_PPC_DIAB_RELSDA_HI 184 -#define R_PPC_DIAB_RELSDA_HA 185 - - -#define R_PPC_IRELATIVE 248 - - -#define R_PPC_REL16 249 -#define R_PPC_REL16_LO 250 -#define R_PPC_REL16_HI 251 -#define R_PPC_REL16_HA 252 - - - -#define R_PPC_TOC16 255 - - -#define DT_PPC_GOT (DT_LOPROC + 0) -#define DT_PPC_OPT (DT_LOPROC + 1) -#define DT_PPC_NUM 2 - -#define PPC_OPT_TLS 1 - - -#define R_PPC64_NONE R_PPC_NONE -#define R_PPC64_ADDR32 R_PPC_ADDR32 -#define R_PPC64_ADDR24 R_PPC_ADDR24 -#define R_PPC64_ADDR16 R_PPC_ADDR16 -#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO -#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI -#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA -#define R_PPC64_ADDR14 R_PPC_ADDR14 -#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN -#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN -#define R_PPC64_REL24 R_PPC_REL24 -#define R_PPC64_REL14 R_PPC_REL14 -#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN -#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN -#define R_PPC64_GOT16 R_PPC_GOT16 -#define R_PPC64_GOT16_LO R_PPC_GOT16_LO -#define R_PPC64_GOT16_HI R_PPC_GOT16_HI -#define R_PPC64_GOT16_HA R_PPC_GOT16_HA - -#define R_PPC64_COPY R_PPC_COPY -#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT -#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT -#define R_PPC64_RELATIVE R_PPC_RELATIVE - -#define R_PPC64_UADDR32 R_PPC_UADDR32 -#define R_PPC64_UADDR16 R_PPC_UADDR16 -#define R_PPC64_REL32 R_PPC_REL32 -#define R_PPC64_PLT32 R_PPC_PLT32 -#define R_PPC64_PLTREL32 R_PPC_PLTREL32 -#define R_PPC64_PLT16_LO R_PPC_PLT16_LO -#define R_PPC64_PLT16_HI R_PPC_PLT16_HI -#define R_PPC64_PLT16_HA R_PPC_PLT16_HA - -#define R_PPC64_SECTOFF R_PPC_SECTOFF -#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO -#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI -#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA -#define R_PPC64_ADDR30 37 -#define R_PPC64_ADDR64 38 -#define R_PPC64_ADDR16_HIGHER 39 -#define R_PPC64_ADDR16_HIGHERA 40 -#define R_PPC64_ADDR16_HIGHEST 41 -#define R_PPC64_ADDR16_HIGHESTA 42 -#define R_PPC64_UADDR64 43 -#define R_PPC64_REL64 44 -#define R_PPC64_PLT64 45 -#define R_PPC64_PLTREL64 46 -#define R_PPC64_TOC16 47 -#define R_PPC64_TOC16_LO 48 -#define R_PPC64_TOC16_HI 49 -#define R_PPC64_TOC16_HA 50 -#define R_PPC64_TOC 51 -#define R_PPC64_PLTGOT16 52 -#define R_PPC64_PLTGOT16_LO 53 -#define R_PPC64_PLTGOT16_HI 54 -#define R_PPC64_PLTGOT16_HA 55 - -#define R_PPC64_ADDR16_DS 56 -#define R_PPC64_ADDR16_LO_DS 57 -#define R_PPC64_GOT16_DS 58 -#define R_PPC64_GOT16_LO_DS 59 -#define R_PPC64_PLT16_LO_DS 60 -#define R_PPC64_SECTOFF_DS 61 -#define R_PPC64_SECTOFF_LO_DS 62 -#define R_PPC64_TOC16_DS 63 -#define R_PPC64_TOC16_LO_DS 64 -#define R_PPC64_PLTGOT16_DS 65 -#define R_PPC64_PLTGOT16_LO_DS 66 - - -#define R_PPC64_TLS 67 -#define R_PPC64_DTPMOD64 68 -#define R_PPC64_TPREL16 69 -#define R_PPC64_TPREL16_LO 70 -#define R_PPC64_TPREL16_HI 71 -#define R_PPC64_TPREL16_HA 72 -#define R_PPC64_TPREL64 73 -#define R_PPC64_DTPREL16 74 -#define R_PPC64_DTPREL16_LO 75 -#define R_PPC64_DTPREL16_HI 76 -#define R_PPC64_DTPREL16_HA 77 -#define R_PPC64_DTPREL64 78 -#define R_PPC64_GOT_TLSGD16 79 -#define R_PPC64_GOT_TLSGD16_LO 80 -#define R_PPC64_GOT_TLSGD16_HI 81 -#define R_PPC64_GOT_TLSGD16_HA 82 -#define R_PPC64_GOT_TLSLD16 83 -#define R_PPC64_GOT_TLSLD16_LO 84 -#define R_PPC64_GOT_TLSLD16_HI 85 -#define R_PPC64_GOT_TLSLD16_HA 86 -#define R_PPC64_GOT_TPREL16_DS 87 -#define R_PPC64_GOT_TPREL16_LO_DS 88 -#define R_PPC64_GOT_TPREL16_HI 89 -#define R_PPC64_GOT_TPREL16_HA 90 -#define R_PPC64_GOT_DTPREL16_DS 91 -#define R_PPC64_GOT_DTPREL16_LO_DS 92 -#define R_PPC64_GOT_DTPREL16_HI 93 -#define R_PPC64_GOT_DTPREL16_HA 94 -#define R_PPC64_TPREL16_DS 95 -#define R_PPC64_TPREL16_LO_DS 96 -#define R_PPC64_TPREL16_HIGHER 97 -#define R_PPC64_TPREL16_HIGHERA 98 -#define R_PPC64_TPREL16_HIGHEST 99 -#define R_PPC64_TPREL16_HIGHESTA 100 -#define R_PPC64_DTPREL16_DS 101 -#define R_PPC64_DTPREL16_LO_DS 102 -#define R_PPC64_DTPREL16_HIGHER 103 -#define R_PPC64_DTPREL16_HIGHERA 104 -#define R_PPC64_DTPREL16_HIGHEST 105 -#define R_PPC64_DTPREL16_HIGHESTA 106 -#define R_PPC64_TLSGD 107 -#define R_PPC64_TLSLD 108 -#define R_PPC64_TOCSAVE 109 -#define R_PPC64_ADDR16_HIGH 110 -#define R_PPC64_ADDR16_HIGHA 111 -#define R_PPC64_TPREL16_HIGH 112 -#define R_PPC64_TPREL16_HIGHA 113 -#define R_PPC64_DTPREL16_HIGH 114 -#define R_PPC64_DTPREL16_HIGHA 115 - - -#define R_PPC64_JMP_IREL 247 -#define R_PPC64_IRELATIVE 248 -#define R_PPC64_REL16 249 -#define R_PPC64_REL16_LO 250 -#define R_PPC64_REL16_HI 251 -#define R_PPC64_REL16_HA 252 - -#define EF_PPC64_ABI 3 - -#define DT_PPC64_GLINK (DT_LOPROC + 0) -#define DT_PPC64_OPD (DT_LOPROC + 1) -#define DT_PPC64_OPDSZ (DT_LOPROC + 2) -#define DT_PPC64_OPT (DT_LOPROC + 3) -#define DT_PPC64_NUM 4 - -#define PPC64_OPT_TLS 1 -#define PPC64_OPT_MULTI_TOC 2 - -#define STO_PPC64_LOCAL_BIT 5 -#define STO_PPC64_LOCAL_MASK 0xe0 -#define PPC64_LOCAL_ENTRY_OFFSET(x) (1 << (((x)&0xe0)>>5) & 0xfc) - - -#define EF_ARM_RELEXEC 0x01 -#define EF_ARM_HASENTRY 0x02 -#define EF_ARM_INTERWORK 0x04 -#define EF_ARM_APCS_26 0x08 -#define EF_ARM_APCS_FLOAT 0x10 -#define EF_ARM_PIC 0x20 -#define EF_ARM_ALIGN8 0x40 -#define EF_ARM_NEW_ABI 0x80 -#define EF_ARM_OLD_ABI 0x100 -#define EF_ARM_SOFT_FLOAT 0x200 -#define EF_ARM_VFP_FLOAT 0x400 -#define EF_ARM_MAVERICK_FLOAT 0x800 - -#define EF_ARM_ABI_FLOAT_SOFT 0x200 -#define EF_ARM_ABI_FLOAT_HARD 0x400 - - -#define EF_ARM_SYMSARESORTED 0x04 -#define EF_ARM_DYNSYMSUSESEGIDX 0x08 -#define EF_ARM_MAPSYMSFIRST 0x10 -#define EF_ARM_EABIMASK 0XFF000000 - - -#define EF_ARM_BE8 0x00800000 -#define EF_ARM_LE8 0x00400000 - -#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) -#define EF_ARM_EABI_UNKNOWN 0x00000000 -#define EF_ARM_EABI_VER1 0x01000000 -#define EF_ARM_EABI_VER2 0x02000000 -#define EF_ARM_EABI_VER3 0x03000000 -#define EF_ARM_EABI_VER4 0x04000000 -#define EF_ARM_EABI_VER5 0x05000000 - - -#define STT_ARM_TFUNC STT_LOPROC -#define STT_ARM_16BIT STT_HIPROC - - -#define SHF_ARM_ENTRYSECT 0x10000000 -#define SHF_ARM_COMDEF 0x80000000 - - - -#define PF_ARM_SB 0x10000000 - -#define PF_ARM_PI 0x20000000 -#define PF_ARM_ABS 0x40000000 - - -#define PT_ARM_EXIDX (PT_LOPROC + 1) - - -#define SHT_ARM_EXIDX (SHT_LOPROC + 1) -#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) -#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) - -#define R_AARCH64_NONE 0 -#define R_AARCH64_P32_ABS32 1 -#define R_AARCH64_P32_COPY 180 -#define R_AARCH64_P32_GLOB_DAT 181 -#define R_AARCH64_P32_JUMP_SLOT 182 -#define R_AARCH64_P32_RELATIVE 183 -#define R_AARCH64_P32_TLS_DTPMOD 184 -#define R_AARCH64_P32_TLS_DTPREL 185 -#define R_AARCH64_P32_TLS_TPREL 186 -#define R_AARCH64_P32_TLSDESC 187 -#define R_AARCH64_P32_IRELATIVE 188 -#define R_AARCH64_ABS64 257 -#define R_AARCH64_ABS32 258 -#define R_AARCH64_ABS16 259 -#define R_AARCH64_PREL64 260 -#define R_AARCH64_PREL32 261 -#define R_AARCH64_PREL16 262 -#define R_AARCH64_MOVW_UABS_G0 263 -#define R_AARCH64_MOVW_UABS_G0_NC 264 -#define R_AARCH64_MOVW_UABS_G1 265 -#define R_AARCH64_MOVW_UABS_G1_NC 266 -#define R_AARCH64_MOVW_UABS_G2 267 -#define R_AARCH64_MOVW_UABS_G2_NC 268 -#define R_AARCH64_MOVW_UABS_G3 269 -#define R_AARCH64_MOVW_SABS_G0 270 -#define R_AARCH64_MOVW_SABS_G1 271 -#define R_AARCH64_MOVW_SABS_G2 272 -#define R_AARCH64_LD_PREL_LO19 273 -#define R_AARCH64_ADR_PREL_LO21 274 -#define R_AARCH64_ADR_PREL_PG_HI21 275 -#define R_AARCH64_ADR_PREL_PG_HI21_NC 276 -#define R_AARCH64_ADD_ABS_LO12_NC 277 -#define R_AARCH64_LDST8_ABS_LO12_NC 278 -#define R_AARCH64_TSTBR14 279 -#define R_AARCH64_CONDBR19 280 -#define R_AARCH64_JUMP26 282 -#define R_AARCH64_CALL26 283 -#define R_AARCH64_LDST16_ABS_LO12_NC 284 -#define R_AARCH64_LDST32_ABS_LO12_NC 285 -#define R_AARCH64_LDST64_ABS_LO12_NC 286 -#define R_AARCH64_MOVW_PREL_G0 287 -#define R_AARCH64_MOVW_PREL_G0_NC 288 -#define R_AARCH64_MOVW_PREL_G1 289 -#define R_AARCH64_MOVW_PREL_G1_NC 290 -#define R_AARCH64_MOVW_PREL_G2 291 -#define R_AARCH64_MOVW_PREL_G2_NC 292 -#define R_AARCH64_MOVW_PREL_G3 293 -#define R_AARCH64_LDST128_ABS_LO12_NC 299 -#define R_AARCH64_MOVW_GOTOFF_G0 300 -#define R_AARCH64_MOVW_GOTOFF_G0_NC 301 -#define R_AARCH64_MOVW_GOTOFF_G1 302 -#define R_AARCH64_MOVW_GOTOFF_G1_NC 303 -#define R_AARCH64_MOVW_GOTOFF_G2 304 -#define R_AARCH64_MOVW_GOTOFF_G2_NC 305 -#define R_AARCH64_MOVW_GOTOFF_G3 306 -#define R_AARCH64_GOTREL64 307 -#define R_AARCH64_GOTREL32 308 -#define R_AARCH64_GOT_LD_PREL19 309 -#define R_AARCH64_LD64_GOTOFF_LO15 310 -#define R_AARCH64_ADR_GOT_PAGE 311 -#define R_AARCH64_LD64_GOT_LO12_NC 312 -#define R_AARCH64_LD64_GOTPAGE_LO15 313 -#define R_AARCH64_TLSGD_ADR_PREL21 512 -#define R_AARCH64_TLSGD_ADR_PAGE21 513 -#define R_AARCH64_TLSGD_ADD_LO12_NC 514 -#define R_AARCH64_TLSGD_MOVW_G1 515 -#define R_AARCH64_TLSGD_MOVW_G0_NC 516 -#define R_AARCH64_TLSLD_ADR_PREL21 517 -#define R_AARCH64_TLSLD_ADR_PAGE21 518 -#define R_AARCH64_TLSLD_ADD_LO12_NC 519 -#define R_AARCH64_TLSLD_MOVW_G1 520 -#define R_AARCH64_TLSLD_MOVW_G0_NC 521 -#define R_AARCH64_TLSLD_LD_PREL19 522 -#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523 -#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524 -#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525 -#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526 -#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527 -#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528 -#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529 -#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530 -#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531 -#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532 -#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533 -#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534 -#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535 -#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536 -#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537 -#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538 -#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539 -#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540 -#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541 -#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542 -#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543 -#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544 -#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545 -#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546 -#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547 -#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548 -#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549 -#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550 -#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551 -#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552 -#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553 -#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554 -#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555 -#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556 -#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557 -#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558 -#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559 -#define R_AARCH64_TLSDESC_LD_PREL19 560 -#define R_AARCH64_TLSDESC_ADR_PREL21 561 -#define R_AARCH64_TLSDESC_ADR_PAGE21 562 -#define R_AARCH64_TLSDESC_LD64_LO12 563 -#define R_AARCH64_TLSDESC_ADD_LO12 564 -#define R_AARCH64_TLSDESC_OFF_G1 565 -#define R_AARCH64_TLSDESC_OFF_G0_NC 566 -#define R_AARCH64_TLSDESC_LDR 567 -#define R_AARCH64_TLSDESC_ADD 568 -#define R_AARCH64_TLSDESC_CALL 569 -#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570 -#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571 -#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572 -#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573 -#define R_AARCH64_COPY 1024 -#define R_AARCH64_GLOB_DAT 1025 -#define R_AARCH64_JUMP_SLOT 1026 -#define R_AARCH64_RELATIVE 1027 -#define R_AARCH64_TLS_DTPMOD 1028 -#define R_AARCH64_TLS_DTPMOD64 1028 -#define R_AARCH64_TLS_DTPREL 1029 -#define R_AARCH64_TLS_DTPREL64 1029 -#define R_AARCH64_TLS_TPREL 1030 -#define R_AARCH64_TLS_TPREL64 1030 -#define R_AARCH64_TLSDESC 1031 - - -#define R_ARM_NONE 0 -#define R_ARM_PC24 1 -#define R_ARM_ABS32 2 -#define R_ARM_REL32 3 -#define R_ARM_PC13 4 -#define R_ARM_ABS16 5 -#define R_ARM_ABS12 6 -#define R_ARM_THM_ABS5 7 -#define R_ARM_ABS8 8 -#define R_ARM_SBREL32 9 -#define R_ARM_THM_PC22 10 -#define R_ARM_THM_PC8 11 -#define R_ARM_AMP_VCALL9 12 -#define R_ARM_TLS_DESC 13 -#define R_ARM_THM_SWI8 14 -#define R_ARM_XPC25 15 -#define R_ARM_THM_XPC22 16 -#define R_ARM_TLS_DTPMOD32 17 -#define R_ARM_TLS_DTPOFF32 18 -#define R_ARM_TLS_TPOFF32 19 -#define R_ARM_COPY 20 -#define R_ARM_GLOB_DAT 21 -#define R_ARM_JUMP_SLOT 22 -#define R_ARM_RELATIVE 23 -#define R_ARM_GOTOFF 24 -#define R_ARM_GOTPC 25 -#define R_ARM_GOT32 26 -#define R_ARM_PLT32 27 -#define R_ARM_CALL 28 -#define R_ARM_JUMP24 29 -#define R_ARM_THM_JUMP24 30 -#define R_ARM_BASE_ABS 31 -#define R_ARM_ALU_PCREL_7_0 32 -#define R_ARM_ALU_PCREL_15_8 33 -#define R_ARM_ALU_PCREL_23_15 34 -#define R_ARM_LDR_SBREL_11_0 35 -#define R_ARM_ALU_SBREL_19_12 36 -#define R_ARM_ALU_SBREL_27_20 37 -#define R_ARM_TARGET1 38 -#define R_ARM_SBREL31 39 -#define R_ARM_V4BX 40 -#define R_ARM_TARGET2 41 -#define R_ARM_PREL31 42 -#define R_ARM_MOVW_ABS_NC 43 -#define R_ARM_MOVT_ABS 44 -#define R_ARM_MOVW_PREL_NC 45 -#define R_ARM_MOVT_PREL 46 -#define R_ARM_THM_MOVW_ABS_NC 47 -#define R_ARM_THM_MOVT_ABS 48 -#define R_ARM_THM_MOVW_PREL_NC 49 -#define R_ARM_THM_MOVT_PREL 50 -#define R_ARM_THM_JUMP19 51 -#define R_ARM_THM_JUMP6 52 -#define R_ARM_THM_ALU_PREL_11_0 53 -#define R_ARM_THM_PC12 54 -#define R_ARM_ABS32_NOI 55 -#define R_ARM_REL32_NOI 56 -#define R_ARM_ALU_PC_G0_NC 57 -#define R_ARM_ALU_PC_G0 58 -#define R_ARM_ALU_PC_G1_NC 59 -#define R_ARM_ALU_PC_G1 60 -#define R_ARM_ALU_PC_G2 61 -#define R_ARM_LDR_PC_G1 62 -#define R_ARM_LDR_PC_G2 63 -#define R_ARM_LDRS_PC_G0 64 -#define R_ARM_LDRS_PC_G1 65 -#define R_ARM_LDRS_PC_G2 66 -#define R_ARM_LDC_PC_G0 67 -#define R_ARM_LDC_PC_G1 68 -#define R_ARM_LDC_PC_G2 69 -#define R_ARM_ALU_SB_G0_NC 70 -#define R_ARM_ALU_SB_G0 71 -#define R_ARM_ALU_SB_G1_NC 72 -#define R_ARM_ALU_SB_G1 73 -#define R_ARM_ALU_SB_G2 74 -#define R_ARM_LDR_SB_G0 75 -#define R_ARM_LDR_SB_G1 76 -#define R_ARM_LDR_SB_G2 77 -#define R_ARM_LDRS_SB_G0 78 -#define R_ARM_LDRS_SB_G1 79 -#define R_ARM_LDRS_SB_G2 80 -#define R_ARM_LDC_SB_G0 81 -#define R_ARM_LDC_SB_G1 82 -#define R_ARM_LDC_SB_G2 83 -#define R_ARM_MOVW_BREL_NC 84 -#define R_ARM_MOVT_BREL 85 -#define R_ARM_MOVW_BREL 86 -#define R_ARM_THM_MOVW_BREL_NC 87 -#define R_ARM_THM_MOVT_BREL 88 -#define R_ARM_THM_MOVW_BREL 89 -#define R_ARM_TLS_GOTDESC 90 -#define R_ARM_TLS_CALL 91 -#define R_ARM_TLS_DESCSEQ 92 -#define R_ARM_THM_TLS_CALL 93 -#define R_ARM_PLT32_ABS 94 -#define R_ARM_GOT_ABS 95 -#define R_ARM_GOT_PREL 96 -#define R_ARM_GOT_BREL12 97 -#define R_ARM_GOTOFF12 98 -#define R_ARM_GOTRELAX 99 -#define R_ARM_GNU_VTENTRY 100 -#define R_ARM_GNU_VTINHERIT 101 -#define R_ARM_THM_PC11 102 -#define R_ARM_THM_PC9 103 -#define R_ARM_TLS_GD32 104 - -#define R_ARM_TLS_LDM32 105 - -#define R_ARM_TLS_LDO32 106 - -#define R_ARM_TLS_IE32 107 - -#define R_ARM_TLS_LE32 108 -#define R_ARM_TLS_LDO12 109 -#define R_ARM_TLS_LE12 110 -#define R_ARM_TLS_IE12GP 111 -#define R_ARM_ME_TOO 128 -#define R_ARM_THM_TLS_DESCSEQ 129 -#define R_ARM_THM_TLS_DESCSEQ16 129 -#define R_ARM_THM_TLS_DESCSEQ32 130 -#define R_ARM_THM_GOT_BREL12 131 -#define R_ARM_IRELATIVE 160 -#define R_ARM_RXPC25 249 -#define R_ARM_RSBREL32 250 -#define R_ARM_THM_RPC22 251 -#define R_ARM_RREL32 252 -#define R_ARM_RABS22 253 -#define R_ARM_RPC24 254 -#define R_ARM_RBASE 255 - -#define R_ARM_NUM 256 - - - - -#define EF_IA_64_MASKOS 0x0000000f -#define EF_IA_64_ABI64 0x00000010 -#define EF_IA_64_ARCH 0xff000000 - - -#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) -#define PT_IA_64_UNWIND (PT_LOPROC + 1) -#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12) -#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13) -#define PT_IA_64_HP_STACK (PT_LOOS + 0x14) - - -#define PF_IA_64_NORECOV 0x80000000 - - -#define SHT_IA_64_EXT (SHT_LOPROC + 0) -#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) - - -#define SHF_IA_64_SHORT 0x10000000 -#define SHF_IA_64_NORECOV 0x20000000 - - -#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) -#define DT_IA_64_NUM 1 - - -#define R_IA64_NONE 0x00 -#define R_IA64_IMM14 0x21 -#define R_IA64_IMM22 0x22 -#define R_IA64_IMM64 0x23 -#define R_IA64_DIR32MSB 0x24 -#define R_IA64_DIR32LSB 0x25 -#define R_IA64_DIR64MSB 0x26 -#define R_IA64_DIR64LSB 0x27 -#define R_IA64_GPREL22 0x2a -#define R_IA64_GPREL64I 0x2b -#define R_IA64_GPREL32MSB 0x2c -#define R_IA64_GPREL32LSB 0x2d -#define R_IA64_GPREL64MSB 0x2e -#define R_IA64_GPREL64LSB 0x2f -#define R_IA64_LTOFF22 0x32 -#define R_IA64_LTOFF64I 0x33 -#define R_IA64_PLTOFF22 0x3a -#define R_IA64_PLTOFF64I 0x3b -#define R_IA64_PLTOFF64MSB 0x3e -#define R_IA64_PLTOFF64LSB 0x3f -#define R_IA64_FPTR64I 0x43 -#define R_IA64_FPTR32MSB 0x44 -#define R_IA64_FPTR32LSB 0x45 -#define R_IA64_FPTR64MSB 0x46 -#define R_IA64_FPTR64LSB 0x47 -#define R_IA64_PCREL60B 0x48 -#define R_IA64_PCREL21B 0x49 -#define R_IA64_PCREL21M 0x4a -#define R_IA64_PCREL21F 0x4b -#define R_IA64_PCREL32MSB 0x4c -#define R_IA64_PCREL32LSB 0x4d -#define R_IA64_PCREL64MSB 0x4e -#define R_IA64_PCREL64LSB 0x4f -#define R_IA64_LTOFF_FPTR22 0x52 -#define R_IA64_LTOFF_FPTR64I 0x53 -#define R_IA64_LTOFF_FPTR32MSB 0x54 -#define R_IA64_LTOFF_FPTR32LSB 0x55 -#define R_IA64_LTOFF_FPTR64MSB 0x56 -#define R_IA64_LTOFF_FPTR64LSB 0x57 -#define R_IA64_SEGREL32MSB 0x5c -#define R_IA64_SEGREL32LSB 0x5d -#define R_IA64_SEGREL64MSB 0x5e -#define R_IA64_SEGREL64LSB 0x5f -#define R_IA64_SECREL32MSB 0x64 -#define R_IA64_SECREL32LSB 0x65 -#define R_IA64_SECREL64MSB 0x66 -#define R_IA64_SECREL64LSB 0x67 -#define R_IA64_REL32MSB 0x6c -#define R_IA64_REL32LSB 0x6d -#define R_IA64_REL64MSB 0x6e -#define R_IA64_REL64LSB 0x6f -#define R_IA64_LTV32MSB 0x74 -#define R_IA64_LTV32LSB 0x75 -#define R_IA64_LTV64MSB 0x76 -#define R_IA64_LTV64LSB 0x77 -#define R_IA64_PCREL21BI 0x79 -#define R_IA64_PCREL22 0x7a -#define R_IA64_PCREL64I 0x7b -#define R_IA64_IPLTMSB 0x80 -#define R_IA64_IPLTLSB 0x81 -#define R_IA64_COPY 0x84 -#define R_IA64_SUB 0x85 -#define R_IA64_LTOFF22X 0x86 -#define R_IA64_LDXMOV 0x87 -#define R_IA64_TPREL14 0x91 -#define R_IA64_TPREL22 0x92 -#define R_IA64_TPREL64I 0x93 -#define R_IA64_TPREL64MSB 0x96 -#define R_IA64_TPREL64LSB 0x97 -#define R_IA64_LTOFF_TPREL22 0x9a -#define R_IA64_DTPMOD64MSB 0xa6 -#define R_IA64_DTPMOD64LSB 0xa7 -#define R_IA64_LTOFF_DTPMOD22 0xaa -#define R_IA64_DTPREL14 0xb1 -#define R_IA64_DTPREL22 0xb2 -#define R_IA64_DTPREL64I 0xb3 -#define R_IA64_DTPREL32MSB 0xb4 -#define R_IA64_DTPREL32LSB 0xb5 -#define R_IA64_DTPREL64MSB 0xb6 -#define R_IA64_DTPREL64LSB 0xb7 -#define R_IA64_LTOFF_DTPREL22 0xba - - -#define EF_SH_MACH_MASK 0x1f -#define EF_SH_UNKNOWN 0x0 -#define EF_SH1 0x1 -#define EF_SH2 0x2 -#define EF_SH3 0x3 -#define EF_SH_DSP 0x4 -#define EF_SH3_DSP 0x5 -#define EF_SH4AL_DSP 0x6 -#define EF_SH3E 0x8 -#define EF_SH4 0x9 -#define EF_SH2E 0xb -#define EF_SH4A 0xc -#define EF_SH2A 0xd -#define EF_SH4_NOFPU 0x10 -#define EF_SH4A_NOFPU 0x11 -#define EF_SH4_NOMMU_NOFPU 0x12 -#define EF_SH2A_NOFPU 0x13 -#define EF_SH3_NOMMU 0x14 -#define EF_SH2A_SH4_NOFPU 0x15 -#define EF_SH2A_SH3_NOFPU 0x16 -#define EF_SH2A_SH4 0x17 -#define EF_SH2A_SH3E 0x18 - -#define R_SH_NONE 0 -#define R_SH_DIR32 1 -#define R_SH_REL32 2 -#define R_SH_DIR8WPN 3 -#define R_SH_IND12W 4 -#define R_SH_DIR8WPL 5 -#define R_SH_DIR8WPZ 6 -#define R_SH_DIR8BP 7 -#define R_SH_DIR8W 8 -#define R_SH_DIR8L 9 -#define R_SH_SWITCH16 25 -#define R_SH_SWITCH32 26 -#define R_SH_USES 27 -#define R_SH_COUNT 28 -#define R_SH_ALIGN 29 -#define R_SH_CODE 30 -#define R_SH_DATA 31 -#define R_SH_LABEL 32 -#define R_SH_SWITCH8 33 -#define R_SH_GNU_VTINHERIT 34 -#define R_SH_GNU_VTENTRY 35 -#define R_SH_TLS_GD_32 144 -#define R_SH_TLS_LD_32 145 -#define R_SH_TLS_LDO_32 146 -#define R_SH_TLS_IE_32 147 -#define R_SH_TLS_LE_32 148 -#define R_SH_TLS_DTPMOD32 149 -#define R_SH_TLS_DTPOFF32 150 -#define R_SH_TLS_TPOFF32 151 -#define R_SH_GOT32 160 -#define R_SH_PLT32 161 -#define R_SH_COPY 162 -#define R_SH_GLOB_DAT 163 -#define R_SH_JMP_SLOT 164 -#define R_SH_RELATIVE 165 -#define R_SH_GOTOFF 166 -#define R_SH_GOTPC 167 -#define R_SH_GOT20 201 -#define R_SH_GOTOFF20 202 -#define R_SH_GOTFUNCDESC 203 -#define R_SH_GOTFUNCDEST20 204 -#define R_SH_GOTOFFFUNCDESC 205 -#define R_SH_GOTOFFFUNCDEST20 206 -#define R_SH_FUNCDESC 207 -#define R_SH_FUNCDESC_VALUE 208 - -#define R_SH_NUM 256 - - - -#define R_390_NONE 0 -#define R_390_8 1 -#define R_390_12 2 -#define R_390_16 3 -#define R_390_32 4 -#define R_390_PC32 5 -#define R_390_GOT12 6 -#define R_390_GOT32 7 -#define R_390_PLT32 8 -#define R_390_COPY 9 -#define R_390_GLOB_DAT 10 -#define R_390_JMP_SLOT 11 -#define R_390_RELATIVE 12 -#define R_390_GOTOFF32 13 -#define R_390_GOTPC 14 -#define R_390_GOT16 15 -#define R_390_PC16 16 -#define R_390_PC16DBL 17 -#define R_390_PLT16DBL 18 -#define R_390_PC32DBL 19 -#define R_390_PLT32DBL 20 -#define R_390_GOTPCDBL 21 -#define R_390_64 22 -#define R_390_PC64 23 -#define R_390_GOT64 24 -#define R_390_PLT64 25 -#define R_390_GOTENT 26 -#define R_390_GOTOFF16 27 -#define R_390_GOTOFF64 28 -#define R_390_GOTPLT12 29 -#define R_390_GOTPLT16 30 -#define R_390_GOTPLT32 31 -#define R_390_GOTPLT64 32 -#define R_390_GOTPLTENT 33 -#define R_390_PLTOFF16 34 -#define R_390_PLTOFF32 35 -#define R_390_PLTOFF64 36 -#define R_390_TLS_LOAD 37 -#define R_390_TLS_GDCALL 38 - -#define R_390_TLS_LDCALL 39 - -#define R_390_TLS_GD32 40 - -#define R_390_TLS_GD64 41 - -#define R_390_TLS_GOTIE12 42 - -#define R_390_TLS_GOTIE32 43 - -#define R_390_TLS_GOTIE64 44 - -#define R_390_TLS_LDM32 45 - -#define R_390_TLS_LDM64 46 - -#define R_390_TLS_IE32 47 - -#define R_390_TLS_IE64 48 - -#define R_390_TLS_IEENT 49 - -#define R_390_TLS_LE32 50 - -#define R_390_TLS_LE64 51 - -#define R_390_TLS_LDO32 52 - -#define R_390_TLS_LDO64 53 - -#define R_390_TLS_DTPMOD 54 -#define R_390_TLS_DTPOFF 55 -#define R_390_TLS_TPOFF 56 - -#define R_390_20 57 -#define R_390_GOT20 58 -#define R_390_GOTPLT20 59 -#define R_390_TLS_GOTIE20 60 - - -#define R_390_NUM 61 - - - -#define R_CRIS_NONE 0 -#define R_CRIS_8 1 -#define R_CRIS_16 2 -#define R_CRIS_32 3 -#define R_CRIS_8_PCREL 4 -#define R_CRIS_16_PCREL 5 -#define R_CRIS_32_PCREL 6 -#define R_CRIS_GNU_VTINHERIT 7 -#define R_CRIS_GNU_VTENTRY 8 -#define R_CRIS_COPY 9 -#define R_CRIS_GLOB_DAT 10 -#define R_CRIS_JUMP_SLOT 11 -#define R_CRIS_RELATIVE 12 -#define R_CRIS_16_GOT 13 -#define R_CRIS_32_GOT 14 -#define R_CRIS_16_GOTPLT 15 -#define R_CRIS_32_GOTPLT 16 -#define R_CRIS_32_GOTREL 17 -#define R_CRIS_32_PLT_GOTREL 18 -#define R_CRIS_32_PLT_PCREL 19 - -#define R_CRIS_NUM 20 - - - -#define R_X86_64_NONE 0 -#define R_X86_64_64 1 -#define R_X86_64_PC32 2 -#define R_X86_64_GOT32 3 -#define R_X86_64_PLT32 4 -#define R_X86_64_COPY 5 -#define R_X86_64_GLOB_DAT 6 -#define R_X86_64_JUMP_SLOT 7 -#define R_X86_64_RELATIVE 8 -#define R_X86_64_GOTPCREL 9 - -#define R_X86_64_32 10 -#define R_X86_64_32S 11 -#define R_X86_64_16 12 -#define R_X86_64_PC16 13 -#define R_X86_64_8 14 -#define R_X86_64_PC8 15 -#define R_X86_64_DTPMOD64 16 -#define R_X86_64_DTPOFF64 17 -#define R_X86_64_TPOFF64 18 -#define R_X86_64_TLSGD 19 - -#define R_X86_64_TLSLD 20 - -#define R_X86_64_DTPOFF32 21 -#define R_X86_64_GOTTPOFF 22 - -#define R_X86_64_TPOFF32 23 -#define R_X86_64_PC64 24 -#define R_X86_64_GOTOFF64 25 -#define R_X86_64_GOTPC32 26 -#define R_X86_64_GOT64 27 -#define R_X86_64_GOTPCREL64 28 -#define R_X86_64_GOTPC64 29 -#define R_X86_64_GOTPLT64 30 -#define R_X86_64_PLTOFF64 31 -#define R_X86_64_SIZE32 32 -#define R_X86_64_SIZE64 33 - -#define R_X86_64_GOTPC32_TLSDESC 34 -#define R_X86_64_TLSDESC_CALL 35 - -#define R_X86_64_TLSDESC 36 -#define R_X86_64_IRELATIVE 37 -#define R_X86_64_RELATIVE64 38 -#define R_X86_64_GOTPCRELX 41 -#define R_X86_64_REX_GOTPCRELX 42 -#define R_X86_64_NUM 43 - - - -#define R_MN10300_NONE 0 -#define R_MN10300_32 1 -#define R_MN10300_16 2 -#define R_MN10300_8 3 -#define R_MN10300_PCREL32 4 -#define R_MN10300_PCREL16 5 -#define R_MN10300_PCREL8 6 -#define R_MN10300_GNU_VTINHERIT 7 -#define R_MN10300_GNU_VTENTRY 8 -#define R_MN10300_24 9 -#define R_MN10300_GOTPC32 10 -#define R_MN10300_GOTPC16 11 -#define R_MN10300_GOTOFF32 12 -#define R_MN10300_GOTOFF24 13 -#define R_MN10300_GOTOFF16 14 -#define R_MN10300_PLT32 15 -#define R_MN10300_PLT16 16 -#define R_MN10300_GOT32 17 -#define R_MN10300_GOT24 18 -#define R_MN10300_GOT16 19 -#define R_MN10300_COPY 20 -#define R_MN10300_GLOB_DAT 21 -#define R_MN10300_JMP_SLOT 22 -#define R_MN10300_RELATIVE 23 - -#define R_MN10300_NUM 24 - - - -#define R_M32R_NONE 0 -#define R_M32R_16 1 -#define R_M32R_32 2 -#define R_M32R_24 3 -#define R_M32R_10_PCREL 4 -#define R_M32R_18_PCREL 5 -#define R_M32R_26_PCREL 6 -#define R_M32R_HI16_ULO 7 -#define R_M32R_HI16_SLO 8 -#define R_M32R_LO16 9 -#define R_M32R_SDA16 10 -#define R_M32R_GNU_VTINHERIT 11 -#define R_M32R_GNU_VTENTRY 12 - -#define R_M32R_16_RELA 33 -#define R_M32R_32_RELA 34 -#define R_M32R_24_RELA 35 -#define R_M32R_10_PCREL_RELA 36 -#define R_M32R_18_PCREL_RELA 37 -#define R_M32R_26_PCREL_RELA 38 -#define R_M32R_HI16_ULO_RELA 39 -#define R_M32R_HI16_SLO_RELA 40 -#define R_M32R_LO16_RELA 41 -#define R_M32R_SDA16_RELA 42 -#define R_M32R_RELA_GNU_VTINHERIT 43 -#define R_M32R_RELA_GNU_VTENTRY 44 -#define R_M32R_REL32 45 - -#define R_M32R_GOT24 48 -#define R_M32R_26_PLTREL 49 -#define R_M32R_COPY 50 -#define R_M32R_GLOB_DAT 51 -#define R_M32R_JMP_SLOT 52 -#define R_M32R_RELATIVE 53 -#define R_M32R_GOTOFF 54 -#define R_M32R_GOTPC24 55 -#define R_M32R_GOT16_HI_ULO 56 - -#define R_M32R_GOT16_HI_SLO 57 - -#define R_M32R_GOT16_LO 58 -#define R_M32R_GOTPC_HI_ULO 59 - -#define R_M32R_GOTPC_HI_SLO 60 - -#define R_M32R_GOTPC_LO 61 - -#define R_M32R_GOTOFF_HI_ULO 62 - -#define R_M32R_GOTOFF_HI_SLO 63 - -#define R_M32R_GOTOFF_LO 64 -#define R_M32R_NUM 256 - -#define R_MICROBLAZE_NONE 0 -#define R_MICROBLAZE_32 1 -#define R_MICROBLAZE_32_PCREL 2 -#define R_MICROBLAZE_64_PCREL 3 -#define R_MICROBLAZE_32_PCREL_LO 4 -#define R_MICROBLAZE_64 5 -#define R_MICROBLAZE_32_LO 6 -#define R_MICROBLAZE_SRO32 7 -#define R_MICROBLAZE_SRW32 8 -#define R_MICROBLAZE_64_NONE 9 -#define R_MICROBLAZE_32_SYM_OP_SYM 10 -#define R_MICROBLAZE_GNU_VTINHERIT 11 -#define R_MICROBLAZE_GNU_VTENTRY 12 -#define R_MICROBLAZE_GOTPC_64 13 -#define R_MICROBLAZE_GOT_64 14 -#define R_MICROBLAZE_PLT_64 15 -#define R_MICROBLAZE_REL 16 -#define R_MICROBLAZE_JUMP_SLOT 17 -#define R_MICROBLAZE_GLOB_DAT 18 -#define R_MICROBLAZE_GOTOFF_64 19 -#define R_MICROBLAZE_GOTOFF_32 20 -#define R_MICROBLAZE_COPY 21 -#define R_MICROBLAZE_TLS 22 -#define R_MICROBLAZE_TLSGD 23 -#define R_MICROBLAZE_TLSLD 24 -#define R_MICROBLAZE_TLSDTPMOD32 25 -#define R_MICROBLAZE_TLSDTPREL32 26 -#define R_MICROBLAZE_TLSDTPREL64 27 -#define R_MICROBLAZE_TLSGOTTPREL32 28 -#define R_MICROBLAZE_TLSTPREL32 29 - -#define DT_NIOS2_GP 0x70000002 - -#define R_NIOS2_NONE 0 -#define R_NIOS2_S16 1 -#define R_NIOS2_U16 2 -#define R_NIOS2_PCREL16 3 -#define R_NIOS2_CALL26 4 -#define R_NIOS2_IMM5 5 -#define R_NIOS2_CACHE_OPX 6 -#define R_NIOS2_IMM6 7 -#define R_NIOS2_IMM8 8 -#define R_NIOS2_HI16 9 -#define R_NIOS2_LO16 10 -#define R_NIOS2_HIADJ16 11 -#define R_NIOS2_BFD_RELOC_32 12 -#define R_NIOS2_BFD_RELOC_16 13 -#define R_NIOS2_BFD_RELOC_8 14 -#define R_NIOS2_GPREL 15 -#define R_NIOS2_GNU_VTINHERIT 16 -#define R_NIOS2_GNU_VTENTRY 17 -#define R_NIOS2_UJMP 18 -#define R_NIOS2_CJMP 19 -#define R_NIOS2_CALLR 20 -#define R_NIOS2_ALIGN 21 -#define R_NIOS2_GOT16 22 -#define R_NIOS2_CALL16 23 -#define R_NIOS2_GOTOFF_LO 24 -#define R_NIOS2_GOTOFF_HA 25 -#define R_NIOS2_PCREL_LO 26 -#define R_NIOS2_PCREL_HA 27 -#define R_NIOS2_TLS_GD16 28 -#define R_NIOS2_TLS_LDM16 29 -#define R_NIOS2_TLS_LDO16 30 -#define R_NIOS2_TLS_IE16 31 -#define R_NIOS2_TLS_LE16 32 -#define R_NIOS2_TLS_DTPMOD 33 -#define R_NIOS2_TLS_DTPREL 34 -#define R_NIOS2_TLS_TPREL 35 -#define R_NIOS2_COPY 36 -#define R_NIOS2_GLOB_DAT 37 -#define R_NIOS2_JUMP_SLOT 38 -#define R_NIOS2_RELATIVE 39 -#define R_NIOS2_GOTOFF 40 -#define R_NIOS2_CALL26_NOAT 41 -#define R_NIOS2_GOT_LO 42 -#define R_NIOS2_GOT_HA 43 -#define R_NIOS2_CALL_LO 44 -#define R_NIOS2_CALL_HA 45 - -#define R_OR1K_NONE 0 -#define R_OR1K_32 1 -#define R_OR1K_16 2 -#define R_OR1K_8 3 -#define R_OR1K_LO_16_IN_INSN 4 -#define R_OR1K_HI_16_IN_INSN 5 -#define R_OR1K_INSN_REL_26 6 -#define R_OR1K_GNU_VTENTRY 7 -#define R_OR1K_GNU_VTINHERIT 8 -#define R_OR1K_32_PCREL 9 -#define R_OR1K_16_PCREL 10 -#define R_OR1K_8_PCREL 11 -#define R_OR1K_GOTPC_HI16 12 -#define R_OR1K_GOTPC_LO16 13 -#define R_OR1K_GOT16 14 -#define R_OR1K_PLT26 15 -#define R_OR1K_GOTOFF_HI16 16 -#define R_OR1K_GOTOFF_LO16 17 -#define R_OR1K_COPY 18 -#define R_OR1K_GLOB_DAT 19 -#define R_OR1K_JMP_SLOT 20 -#define R_OR1K_RELATIVE 21 -#define R_OR1K_TLS_GD_HI16 22 -#define R_OR1K_TLS_GD_LO16 23 -#define R_OR1K_TLS_LDM_HI16 24 -#define R_OR1K_TLS_LDM_LO16 25 -#define R_OR1K_TLS_LDO_HI16 26 -#define R_OR1K_TLS_LDO_LO16 27 -#define R_OR1K_TLS_IE_HI16 28 -#define R_OR1K_TLS_IE_LO16 29 -#define R_OR1K_TLS_LE_HI16 30 -#define R_OR1K_TLS_LE_LO16 31 -#define R_OR1K_TLS_TPOFF 32 -#define R_OR1K_TLS_DTPOFF 33 -#define R_OR1K_TLS_DTPMOD 34 - -#define R_BPF_NONE 0 -#define R_BPF_MAP_FD 1 - -#ifdef __cplusplus -} -#endif - - -#endif diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog deleted file mode 100644 index c2577e8..0000000 --- a/include/elf/ChangeLog +++ /dev/null @@ -1,1892 +0,0 @@ -2013-10-14 Chao-ying Fu - - * mips.h (enum): Add Tag_GNU_MIPS_ABI_MSA. - (enum): Add Val_GNU_MIPS_ABI_MSA_ANY and Val_GNU_MIPS_ABI_MSA_128. - -2013-09-17 Doug Gilmore - - * mips.h (EF_MIPS_FP64): New e_flags bit. - -2013-08-09 Nick Clifton - - * rl78.c (E_FLAG_RL78_G10): Define. - -2013-07-15 Maciej W. Rozycki - - * mips.h (Tag_GNU_MIPS_ABI_FP): Remove comment. - (Val_GNU_MIPS_ABI_FP_ANY, Val_GNU_MIPS_ABI_FP_DOUBLE, - Val_GNU_MIPS_ABI_FP_SINGLE, Val_GNU_MIPS_ABI_FP_SOFT, - Val_GNU_MIPS_ABI_FP_64): New enum. - -2013-07-12 Maciej W. Rozycki - - * mips.h (EF_MIPS_NAN2008): New macro. - -2013-07-08 Tristan Gingold - - * ia64.h (STB_VMS_WEAK, STB_VMS_SYSTEM): Add. - -2013-07-05 Andreas Krebbel - - * s390.h: Add new relocs R_390_PC12DBL, R_390_PLT12DBL, - R_390_PC24DBL, and R_390_PLT24DBL. - -2013-06-26 Yufeng Zhang - - * aarch64.h: Add ELF32 reloc codes and remove fake ELF64 ones. - -2013-06-24 Maciej W. Rozycki - - * mips.h (ELF_ST_IS_MIPS_PLT): Respect STO_MIPS16 setting. - (ELF_ST_SET_MIPS_PLT): Likewise. - -2013-06-19 Will Newton - - * aarch64.h: Remove R_AARCH64_IRELATIVE. - -2013-06-07 Will Newton - - * aarch64.h: Add R_AARCH64_IRELATIVE reloc. - -2013-06-06 Maciej W. Rozycki - - * mips.h (ELF_ST_SET_MIPS_PIC): Clear any STO_MIPS16 setting. - -2013-05-30 Paul Brook - - * mips.h (R_MIPS_EH): New. - -2013-05-28 Yufeng Zhang - - * aarch64.h (R_AARCH64_TLSDESC_LD64_PREL19): Rename to ... - (R_AARCH64_TLSDESC_LD_PREL19): ... this. - (R_AARCH64_TLSDESC_ADR_PAGE): Rename to ... - (R_AARCH64_TLSDESC_ADR_PAGE21): ... this. - -2013-05-22 H.J. Lu - - * common.h (EM_INTEL205): New. - (EM_INTEL206): Likewise. - (EM_INTEL207): Likewise. - (EM_INTEL208): Likewise. - (EM_INTEL209): Likewise. - -2013-05-02 Nick Clifton - - * msp430.h: Add MSP430X relocs. - Add some more MSP430 machine numbers. - Add values used by .MSP430.attributes section. - -2013-03-21 Michael Schewe - - * h8.h: Add new reloc R_H8_DISP32A16 for relaxation of - mov @(disp:32,ERx) to mov @(disp:16,ERx). - -2013-03-08 Andreas Arnez - - * common.h (NT_S390_TDB): Define. - -2013-02-06 Sandra Loosemore - Andrew Jenner - - Based on patches from Altera Corporation. - - * nios2.h: New file. - -2013-01-24 Nick Clifton - - * v850.h: Add support for e3v5 architecture. - Reorganize processor selection macros. - -2013-01-16 H.J. Lu - - * i386.h (R_386_SIZE32): Fill it. - * x86-64.h (R_X86_64_SIZE32): Likewise. - (R_X86_64_SIZE64): Likewise. - -2013-01-10 Will Newton - - * common.h: Fix case of "Meta". - * metag.h: New file. - -2013-01-08 Yufeng Zhang - - * common.h (NT_ARM_TLS, NT_ARM_HW_BREAK, NT_ARM_HW_WATCH): New macro - definitions. - -2013-01-04 Juergen Urban - - * mips.h: Add MIPS machine variant number for r5900 which is - compatible with old Playstation 2 software. - -2012-11-16 H.J. Lu - - * common.h (DF_1_CONLFAT): Renamed to ... - (DF_1_CONFALT): This. - (DF_1_ENDFILTEE): New. - (DF_1_DISPRELDNE): Likewise. - (DF_1_DISPRELPND): Likewise. - (DF_1_NODIRECT): Likewise. - (DF_1_IGNMULDEF): Likewise. - (DF_1_NOKSYMS): Likewise. - (DF_1_NOHDR): Likewise. - (DF_1_EDITED): Likewise. - (DF_1_NORELOC): Likewise. - (DF_1_SYMINTPOSE): Likewise. - (DF_1_GLOBAUDIT): Likewise. - (DF_1_SINGLETON): Likewise. - -2012-11-09 Nick Clifton - - * rx.h (EF_RX_CPU_RX): Add comment. - (E_FLAG_RX_ABI): Define. - - * v850.h: Add RH850 ABI values. - -2012-11-08 Maciej W. Rozycki - - * mips.h (EF_MIPS_32BITMODE): Move next to lower-order bits. - -2012-11-01 Tom Tromey - - * common.h (NT_386_TLS, NT_386_IOPERM): New defines. - -2012-10-30 Steve McIntyre - - * elf/arm.h (EF_ARM_ABI_FLOAT_SOFT): New define. - (EF_ARM_ABI_FLOAT_HARD): Likewise. - -2012-10-23 Tom Tromey - - * common.h (NT_SIGINFO, NT_FILE): New defines. - -2012-08-27 Walter Lee - - * tilegx.h (R_TILEGX_IMM16_X0_HW0_PLT_PCREL): New relocation. - (R_TILEGX_IMM16_X1_HW0_PLT_PCREL): Ditto. - (R_TILEGX_IMM16_X0_HW1_PLT_PCREL): Ditto. - (R_TILEGX_IMM16_X1_HW1_PLT_PCREL): Ditto. - (R_TILEGX_IMM16_X0_HW2_PLT_PCREL): Ditto. - (R_TILEGX_IMM16_X1_HW2_PLT_PCREL): Ditto. - (R_TILEGX_IMM16_X0_HW3_PLT_PCREL): Ditto. - (R_TILEGX_IMM16_X1_HW3_PLT_PCREL): Ditto. - (R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL): Ditto. - (R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL): Ditto. - (R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL): Ditto. - (R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL): Ditto. - (R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL ): Ditto. - (R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL): Ditto. - -2012-08-13 Ian Bolton - Laurent Desnogues - Jim MacArthur - Marcus Shawcroft - Nigel Stephens - Ramana Radhakrishnan - Richard Earnshaw - Sofiane Naci - Tejas Belagod - Yufeng Zhang - - * aarch64.h: New file. - * common.h (EM_res183): Rename to EM_AARCH64. - (EM_res184): Rename to EM_ARM184. - -2012-06-28 Iain Sandoe - - * common.h (AT_L1I_CACHESHAPE, AT_L1D_CACHESHAPE, - AT_L2_CACHESHAPE, AT_L3_CACHESHAPE): New defines. - -2012-05-16 Georg-Johann Lay - - PR target/13503 - * avr.h (RELOC_NUMBERS): Rename R_AVR_8_HHI8 to R_AVR_8_HLO8. - -2012-05-15 James Murray - - * m68hc11.h (R_M68HC12_16B, R_M68HC12_PCREL_9, R_M68HC12_PCREL_10) - R_M68HC12_HI8XG, R_M68HC12_LO8XG): New relocations. - (E_M68HC11_XGATE_RAMOFFSET): Define. - -2012-05-14 James Lemke - * ppc.h (SEC_PPC_VLE): Remove. - -2012-05-14 Catherine Moore - James Lemke - - * ppc.h (R_PPC_VLE_REL8): New reloction. - (R_PPC_VLE_REL15): Likewise. - (R_PPC_VLE_REL24): Likewise. - (R_PPC_VLE_LO16A): Likewise. - (R_PPC_VLE_LO16D): Likewise. - (R_PPC_VLE_HI16A): Likewise. - (R_PPC_VLE_HI16D): Likewise. - (R_PPC_VLE_HA16A): Likewise. - (R_PPC_VLE_HA16D): Likewise. - (R_PPC_VLE_SDA21): Likewise. - (R_PPC_VLE_SDA21_LO): Likewise. - (R_PPC_VLE_SDAREL_LO16A): Likewise. - (R_PPC_VLE_SDAREL_LO16D): Likewise. - (R_PPC_VLE_SDAREL_HI16A): Likewise. - (R_PPC_VLE_SDAREL_HI16D): Likewise. - (R_PPC_VLE_SDAREL_HA16A): Likewise. - (R_PPC_VLE_SDAREL_HA16D): Likewise. - (SEC_PPC_VLE): Remove. - (PF_PPC_VLE): New program header flag. - (SHF_PPC_VLE): New section header flag. - (vle_opcodes, vle_num_opcodes): New. - (VLE_OP): New macro. - (VLE_OP_TO_SEG): New macro. - -2012-05-11 Georg-Johann Lay - - * xgate.h: Mininal file to support XGATE relocations. - -2012-04-27 David S. Miller - - * sparc.h: Add new ELF_SPARC_HWCAP_* defines for crypto, - pause, and compare-and-branch instructions. - -2012-03-07 Nick Clifton - - * mn10300.h (elf_mn10300_reloc_type): Add R_MN10300_TLS_GD, - R_MN10300_TLS_LD, R_MN10300_TLS_LDO, R_MN10300_TLS_GOTIE, - R_MN10300_TLS_IE, R_MN10300_TLS_LE, R_MN10300_TLS_DPTMOD, - R_MN10300_TLS_DTPOFF and R_MN10300_TLS_TPOFF. - -2012-02-25 Walter Lee - - * tilegx.h (R_TILEGX_IMM16_X0_HW1_GOT): Delete. - (R_TILEGX_IMM16_X1_HW1_GOT): Ditto. - (R_TILEGX_IMM16_X0_HW2_GOT): Ditto. - (R_TILEGX_IMM16_X1_HW2_GOT): Ditto. - (R_TILEGX_IMM16_X0_HW3_GOT): Ditto. - (R_TILEGX_IMM16_X1_HW3_GOT): Ditto. - (R_TILEGX_IMM16_X0_HW2_LAST_GOT): Ditto. - (R_TILEGX_IMM16_X1_HW2_LAST_GOT): Ditto. - (R_TILEGX_IMM16_X0_HW1_TLS_GD): Ditto. - (R_TILEGX_IMM16_X1_HW1_TLS_GD): Ditto. - (R_TILEGX_IMM16_X0_HW2_TLS_GD): Ditto. - (R_TILEGX_IMM16_X1_HW2_TLS_GD): Ditto. - (R_TILEGX_IMM16_X0_HW3_TLS_GD): Ditto. - (R_TILEGX_IMM16_X1_HW3_TLS_GD): Ditto. - (R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD): Ditto. - (R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD): Ditto. - (R_TILEGX_IMM16_X0_HW1_TLS_IE): Ditto. - (R_TILEGX_IMM16_X1_HW1_TLS_IE): Ditto. - (R_TILEGX_IMM16_X0_HW2_TLS_IE): Ditto. - (R_TILEGX_IMM16_X1_HW2_TLS_IE): Ditto. - (R_TILEGX_IMM16_X0_HW3_TLS_IE): Ditto. - (R_TILEGX_IMM16_X1_HW3_TLS_IE): Ditto. - (R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE): Ditto. - (R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE): Ditto. - (R_TILEGX_IMM16_X0_HW0_TLS_LE): New relocation. - (R_TILEGX_IMM16_X1_HW0_TLS_LE): Ditto. - (R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE): Ditto. - (R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE): Ditto. - (R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE): Ditto. - (R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE): Ditto. - (R_TILEGX_TLS_GD_CALL): Ditto. - (R_TILEGX_IMM8_X0_TLS_GD_ADD): Ditto. - (R_TILEGX_IMM8_X1_TLS_GD_ADD): Ditto. - (R_TILEGX_IMM8_Y0_TLS_GD_ADD): Ditto. - (R_TILEGX_IMM8_Y1_TLS_GD_ADD): Ditto. - (R_TILEGX_TLS_IE_LOAD): Ditto. - (R_TILEGX_IMM8_X0_TLS_ADD): Ditto. - (R_TILEGX_IMM8_X1_TLS_ADD): Ditto. - (R_TILEGX_IMM8_Y0_TLS_ADD): Ditto. - (R_TILEGX_IMM8_Y1_TLS_ADD): Ditto. - * tilepro.h (R_TILEPRO_TLS_GD_CALL): New relocation. - (R_TILEPRO_IMM8_X0_TLS_GD_ADD): Ditto. - (R_TILEPRO_IMM8_X1_TLS_GD_ADD): Ditto. - (R_TILEPRO_IMM8_Y0_TLS_GD_ADD): Ditto. - (R_TILEPRO_IMM8_Y1_TLS_GD_ADD): Ditto. - (R_TILEPRO_TLS_IE_LOAD): Ditto. - (R_TILEPRO_IMM16_X0_TLS_LE): Ditto. - (R_TILEPRO_IMM16_X1_TLS_LE): Ditto. - (R_TILEPRO_IMM16_X0_TLS_LE_LO): Ditto. - (R_TILEPRO_IMM16_X1_TLS_LE_LO): Ditto. - (R_TILEPRO_IMM16_X0_TLS_LE_HI): Ditto. - (R_TILEPRO_IMM16_X1_TLS_LE_HI): Ditto. - (R_TILEPRO_IMM16_X0_TLS_LE_HA): Ditto. - (R_TILEPRO_IMM16_X1_TLS_LE_HA): Ditto. - -2011-12-22 DJ Delorie - - * rl78.h (R_RL78_RH_RELAX, R_RL78_RH_SFR, R_RL78_RH_SADDR): New. - (RL78_RELAXA_BRA, RL78_RELAXA_ADDR16: New. - -2011-12-19 Chung-Lin Tang - - * mips.h (elf_mips_reloc_type): Add R_MIPS16_TLS_* entries. - -2011-12-06 Ulrich Weigand - - * common.h (NT_S390_LAST_BREAK): Define. - (NT_S390_SYSTEM_CALL): Likewise. - -2011-11-01 DJ Delorie - - * common.h (EM_RL78, EM_78K0R): New. - * rl78.h: New. - -2011-10-25 Joern Rennecke - - * epiphany.h: New file. - * common.h (EM_ADAPTEVA_EPIPHANY): Define. - -2011-10-10 Alan Modra - - * ppc64.h (R_PPC64_TOCSAVE): Add. - -2011-10-05 DJ Delorie - - * rx.h (E_FLAG_RX_PID): New. - -2011-09-21 David S. Miller - - * sparc.h (Tag_GNU_Sparc_HWCAPS): New object attribute. - (ELF_SPARC_HWCAP_*): New HWCAPS bitmask values. - -2011-08-12 H.J. Lu - - PR ld/13082 - * x86-64.h (R_X86_64_RELATIVE64): New. - -2011-07-24 Chao-ying Fu - Maciej W. Rozycki - - * mips.h (R_MICROMIPS_min): New relocations. - (R_MICROMIPS_26_S1): Likewise. - (R_MICROMIPS_HI16, R_MICROMIPS_LO16): Likewise. - (R_MICROMIPS_GPREL16, R_MICROMIPS_LITERAL): Likewise. - (R_MICROMIPS_GOT16, R_MICROMIPS_PC7_S1): Likewise. - (R_MICROMIPS_PC10_S1, R_MICROMIPS_PC16_S1): Likewise. - (R_MICROMIPS_CALL16, R_MICROMIPS_GOT_DISP): Likewise. - (R_MICROMIPS_GOT_PAGE, R_MICROMIPS_GOT_OFST): Likewise. - (R_MICROMIPS_GOT_HI16, R_MICROMIPS_GOT_LO16): Likewise. - (R_MICROMIPS_SUB, R_MICROMIPS_HIGHER): Likewise. - (R_MICROMIPS_HIGHEST, R_MICROMIPS_CALL_HI16): Likewise. - (R_MICROMIPS_CALL_LO16, R_MICROMIPS_SCN_DISP): Likewise. - (R_MICROMIPS_JALR, R_MICROMIPS_HI0_LO16): Likewise. - (R_MICROMIPS_TLS_GD, R_MICROMIPS_TLS_LDM): Likewise. - (R_MICROMIPS_TLS_DTPREL_HI, R_MICROMIPS_TLS_DTPREL_LO): Likewise. - (R_MICROMIPS_TLS_GOTTPREL): Likewise. - (R_MICROMIPS_TLS_TPREL_HI16): Likewise. - (R_MICROMIPS_TLS_TPREL_LO16): Likewise. - (R_MICROMIPS_GPREL7_S2, R_MICROMIPS_PC23_S2): Likewise. - (R_MICROMIPS_max): Likewise. - (EF_MIPS_ARCH_ASE_MICROMIPS): New macro. - (STO_MIPS_ISA, STO_MIPS_FLAGS): Likewise. - (ELF_ST_IS_MIPS_PLT, ELF_ST_SET_MIPS_PLT): Likewise. - (STO_MICROMIPS): Likewise. - (ELF_ST_IS_MICROMIPS, ELF_ST_SET_MICROMIPS): Likewise. - (ELF_ST_IS_COMPRESSED): Likewise. - (STO_MIPS_PLT, STO_MIPS_PIC): Rework. - (ELF_ST_IS_MIPS_PIC, ELF_ST_SET_MIPS_PIC): Likewise. - (STO_MIPS16, ELF_ST_IS_MIPS16, ELF_ST_SET_MIPS16): Likewise. - -2011-07-22 H.J. Lu - - * common.h (EM_K1OM): New. - -2011-07-03 Samuel Thibault - Thomas Schwinge - - PR binutils/12913 - * common.h (ELFOSABI_GNU): Define, replaces... - (ELFOSABI_LINUX): ... this, kept as an alias. - (ELFOSABI_HURD): Remove. - -2011-06-15 Ulrich Weigand - - * common.h (NT_ARM_VFP): Define. - -2011-06-13 Walter Lee - - * common.h: Add EM_TILEGX. - * tilegx.h: New file. - * tilepro.h: New file. - -2011-06-09 Tristan Gingold - - * ia64.h (Elf64_External_VMS_ORIG_DYN_Note): New struct. - -2011-06-02 Nick Clifton - - * common.h: Fix spelling mistake in comment. - * reloc-macros.h: Likewise. - -2011-05-31 Paul Brook - - * arm.h (arm_st_branch_type): Add ST_BRANCH_UNKNOWN. - -2011-05-09 Paul Brook - - * tic6x.h (ELF_STRING_C6000_unwind, - ELF_STRING_C6000_unwind_info, ELF_STRING_C6000_unwind_once, - ELF_STRING_C6000_unwind_info_once): Define. - -2011-04-15 Sergio Durigan Junior - - * common.h (NT_STAPSDT): New define. - -2011-03-31 Bernd Schmidt - - * tic6x.h (R_C6000_JUMP_SPLOT, R_C6000_EHTYPE, - R_C6000_PCR_H16, R_C6000_PCR_L16): New relocs. - (SHN_TIC6X_SCOMMON): Define. - -2011-03-31 Tristan Gingold - - * ia64.h (Elf64_External_VMS_Note): New struct. - (NT_VMS_MHD, NT_VMS_LNM, NT_VMS_SRC, NT_VMS_TITLE, NT_VMS_EIDC) - (NT_VMS_FPMODE, NT_VMS_LINKTIME, NT_VMS_IMGNAM, NT_VMS_IMGID) - (NT_VMS_LINKID, NT_VMS_IMGBID, NT_VMS_GSTNAM, NT_VMS_ORIG_DYN) - (NT_VMS_PATCHTIME) New macros. - -2011-03-14 Richard Sandiford - - * arm.h (R_ARM_IRELATIVE): New relocation. - -2011-03-14 Richard Sandiford - - * internal.h (elf_internal_sym): Add st_target_internal. - * arm.h (arm_st_branch_type): New enum. - (ARM_SYM_BRANCH_TYPE): New macro. - -2011-03-10 Nick Clifton - - * common.h (EM_V850): V850s now supplied by Renesas. - -2011-02-25 Alan Modra - - PR 12516 - * internal.h (ELF_SECTION_IN_SEGMENT_1): Don't match zero size - sections at start or end of PT_DYNAMIC. - -2011-01-10 Nathan Sidwell - Glauber de Oliveira Costa - - * arm.h (R_ARM_TLS_DESC, R_ARM_TLS_GOTDESC, R_ARM_TLS_CALL, - R_ARM_TLS_DESCSEQ, T_ARM_THM_TLS_CALL, R_ARM_THM_TLS_DESCSEQ): New - relocations. - -2010-11-16 Jie Zhang - - * bfin.h (EF_BFIN_CODE_IN_L1): Define. - (EF_BFIN_DATA_IN_L1): Define. - -2010-11-11 Mingming Sun - - * mips.h (E_MIPS_MACH_LS3A): Defined. - -2010-11-02 Joseph Myers - - * tic6x-attrs.h (Tag_ABI_wchar_t, Tag_ABI_stack_align_needed, - Tag_ABI_stack_align_preserved, Tag_ABI_PID, Tag_ABI_PIC, - Tag_ABI_array_object_alignment, - Tag_ABI_array_object_align_expected, Tag_ABI_conformance): Define. - -2010-10-29 Joseph Myers - - * tic6x-attrs.h (Tag_ABI_compatibility): Define. - -2010-10-29 Bernd Schmidt - Joseph Myers - - * tic6x-attrs.h (Tag_ABI_DSBT): New. - -2010-10-21 Joseph Myers - - * tic6x-attrs.h (Tag_C6XABI_Tag_CPU_arch): Change to Tag_ISA, - value 4. - * tic6x.h (Values for Tag_C6XABI_Tag_CPU_arch): Rename for - attribute renaming. - -2010-07-23 Naveen.H.S - Ina Pandit - - * v850.h: Add support for V850E2 and V850E2V3. - (v850_reloc_type): Update the newly added relocations - -2010-07-20 Alan Modra - - * internal.h (ELF_TBSS_SPECIAL): New macro, extracted from.. - (ELF_SECTION_SIZE): ..here. - (ELF_SECTION_IN_SEGMENT_1): Add "strict" arg. - (ELF_SECTION_IN_SEGMENT_STRICT): New macro. - -2010-06-25 Alan Modra - - * ppc64.h (R_PPC64_LO_DS_OPT): Define. - -2010-06-15 Joseph Myers - - * tic6x-attrs.h: New. - * tic6x.h: Include elf/tic6x-attrs.h for attribute table. - (C6XABI_Tag_CPU_arch_none, C6XABI_Tag_CPU_arch_C62X, - C6XABI_Tag_CPU_arch_C67X, C6XABI_Tag_CPU_arch_C67XP, - C6XABI_Tag_CPU_arch_C64X, C6XABI_Tag_CPU_arch_C64XP, - C6XABI_Tag_CPU_arch_C674X): Define. - -2010-06-11 Tristan Gingold - - * ia64.h (EF_IA_64_VMS_COMCOD, EF_IA_64_VMS_COMCOD_SUCCESS) - (EF_IA_64_VMS_COMCOD_WARNING, EF_IA_64_VMS_COMCOD_ERROR) - (EF_IA_64_VMS_COMCOD_ABORT, EF_IA_64_VMS_LINKAGES): Define. - (VMS_LF_CALL_DEBUG, VMS_LF_NOP0BUFS, VMS_LF_P0IMAGE) - (VMS_LF_MKTHREADS, VMS_LF_UPCALLS, VMS_LF_IMGSTA) - (VMS_LF_INITIALIZE, VMS_LF_MAIN, VMS_LF_EXE_INIT) - (VMS_LF_TBK_IN_IMG, VMS_LF_DBG_IN_IMG, VMS_LF_TBK_IN_DSF) - (VMS_LF_DBG_IN_DSF, VMS_LF_SIGNATURES, VMS_LF_REL_SEG_OFF): Define. - (VMS_STO_VISIBILITY, VMS_ST_VISIBILITY, VMS_STO_FUNC_TYPE) - (VMS_ST_FUNC_TYPE, VMS_SFT_CODE_ADDR, VMS_SFT_SYMV_IDX) - (VMS_SFT_FD, VMS_SFT_RESERVE, VMS_STO_LINKAGE, VMS_ST_LINKAGE) - (VMS_STL_IGNORE, VMS_STL_RESERVE, VMS_STL_STD, VMS_STL_LNK): Define. - (Elf64_External_VMS_IMAGE_FIXUP): New declaration. - (Elf64_External_VMS_IMAGE_RELA): Ditto. - (R_IA64_VMS_DIR8, R_IA64_VMS_DIR16LSB, R_IA64_VMS_CALL_SIGNATURE) - (R_IA64_VMS_EXECLET_FUNC, R_IA64_VMS_EXECLET_DATA, R_IA64_VMS_FIX8) - (R_IA64_VMS_FIX16, R_IA64_VMS_FIX32, R_IA64_VMS_FIX64) - (R_IA64_VMS_FIXFD, R_IA64_VMS_ACC_LOAD, R_IA64_VMS_ACC_ADD) - (R_IA64_VMS_ACC_SUB, R_IA64_VMS_ACC_MUL, R_IA64_VMS_ACC_DIV) - (R_IA64_VMS_ACC_AND, R_IA64_VMS_ACC_IOR, R_IA64_VMS_ACC_EOR) - (R_IA64_VMS_ACC_ASH, R_IA64_VMS_ACC_STO8, R_IA64_VMS_ACC_STO16LSH) - (R_IA64_VMS_ACC_STO32LSH, R_IA64_VMS_ACC_STO64LSH): New. - -2010-05-25 Daniel Jacobowitz - Joseph Myers - Andrew Stubbs - - * sh.h (EF_SH_PIC, EF_SH_FDPIC): Define. - (R_SH_FIRST_INVALID_RELOC_6, R_SH_LAST_INVALID_RELOC_6): New. Adjust - other invalid ranges. - (R_SH_GOT20, R_SH_GOTOFF20, R_SH_GOTFUNCDESC, R_SH_GOTFUNCDESC20) - (R_SH_GOTOFFFUNCDESC, R_SH_GOTOFFFUNCDESC20, R_SH_FUNCDESC) - (R_SH_FUNCDESC_VALUE): New. - -2010-05-18 H.J. Lu - - PR gas/11600 - * common.h (SHF_EXCLUDE): New. - - * i370.h (SHF_EXCLUDE): Removed. - * or32.h (SHF_EXCLUDE): Likewise. - * ppc.h (SHF_EXCLUDE): Likewise. - * sparc.h (SHF_EXCLUDE): Likewise. - -2010-04-23 Alan Modra - - * internal.h (ELF_SECTION_SIZE): Protect macro args with parentheses. - Invert logic to clarify test for .tbss. - (ELF_IS_SECTION_IN_SEGMENT): Rename to.. - (ELF_SECTION_IN_SEGMENT_1): ..this. Add check_vma param. Protect - macro args with parentheses. - (ELF_SECTION_IN_SEGMENT): Define. - (ELF_IS_SECTION_IN_SEGMENT_FILE): Delete. - (ELF_IS_SECTION_IN_SEGMENT_MEMORY): Delete. - -2010-04-15 Matthew Gretton-Dann - - * arm.h (Tag_FP_arch, Tag_ABI_align_needed, Tag_ABI_align_preserved, - Tag_FP_HP_extension): Add new ABI attribute tags. - -2010-04-15 Nick Clifton - - * alpha.h: Update copyright notice to use GPLv3. - * arc.h: Likewise. - * arm.h: Likewise. - * avr.h: Likewise. - * bfin.h: Likewise. - * common.h: Likewise. - * cr16.h: Likewise. - * cr16c.h: Likewise. - * cris.h: Likewise. - * crx.h: Likewise. - * d10v.h: Likewise. - * d30v.h: Likewise. - * dlx.h: Likewise. - * dwarf.h: Likewise. - * external.h: Likewise. - * fr30.h: Likewise. - * frv.h: Likewise. - * h8.h: Likewise. - * hppa.h: Likewise. - * i370.h: Likewise. - * i386.h: Likewise. - * i860.h: Likewise. - * i960.h: Likewise. - * ia64.h: Likewise. - * internal.h: Likewise. - * ip2k.h: Likewise. - * iq2000.h: Likewise. - * lm32.h: Likewise. - * m32c.h: Likewise. - * m32r.h: Likewise. - * m68hc11.h: Likewise. - * m68k.h: Likewise. - * mcore.h: Likewise. - * mep.h: Likewise. - * microblaze.h: Likewise. - * mips.h: Likewise. - * mmix.h: Likewise. - * mn10200.h: Likewise. - * moxie.h: Likewise. - * msp430.h: Likewise. - * mt.h: Likewise. - * openrisc.h: Likewise. - * or32.h: Likewise. - * pj.h: Likewise. - * ppc.h: Likewise. - * ppc64.h: Likewise. - * reloc-macros.h: Likewise. - * rx.h: Likewise. - * s390.h: Likewise. - * sh.h: Likewise. - * sparc.h: Likewise. - * spu.h: Likewise. - * v850.h: Likewise. - * vax.h: Likewise. - * vxworks.h: Likewise. - * x86-64.h: Likewise. - * xc16x.h: Likewise. - * xstormy16.h: Likewise. - * xtensa.h: Likewise. - -2010-04-08 David Stubbs - - * internal.h (ELF_IS_SECTION_IN_SEGMENT): PT_PHDR program headers - cannot contain any sections. - -2010-03-25 Joseph Myers - - * common.h (ELFOSABI_C6000_ELFABI, ELFOSABI_C6000_LINUX): Define. - * tic6x.h: New. - -2010-03-05 Rainer Orth - - * common.h (VER_FLG_*): Document. - (VER_FLG_INFO): Define. - -2010-02-23 Andrew Zabolotny - - PR binutils/11297 - * avr.h: (R_AVR_8): New relocation number. - -2010-02-18 Matthew Gretton-Dann - - * arm.h (Tag_MPextension_use): Renumber. - (Tag_DIV_use): Add. - (Tag_MPextension_use_legacy): Likewise. - -2010-02-09 Michael Holzheu - - * common.h (NT_S390_TIMER, NT_S390_TODCMP, NT_S390_TODPREG, - NT_S390_CTRS and NT_S390_PREFIX): Define. - -2010-02-08 David S. Miller - - * sparc.h (R_SPARC_JMP_IREL, R_SPARC_IRELATIVE): Define. - -2010-02-02 H.J. Lu - - * common.h (NT_386_XSTATE): New. - -2010-01-21 Andreas Krebbel - - * s390.h (EF_S390_HIGH_GPRS): Added macro definition. - -2010-01-19 Daisuke Hatayama - - * common.h (PN_XNUM): Define. - -2009-12-18 Ulrich Weigand - - * common.h (NT_S390_HIGH_GPRS): Define. - -2009-12-17 Alan Modra - - * ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT, - R_PPC_RELAX32PC_PLT): Delete. - (R_PPC_RELAX, R_PPC_RELAX_PLT, R_PPC_RELAX_PLTREL24): Define. - -2009-12-03 David Daney - Adam Nemet - - * mips.h (E_MIPS_MACH_OCTEON2): New machine flag. - -2009-11-28 Joseph Myers - - * common.h (ELFOSABI_FENIXOS, EM_TI_C6000, EM_TI_C2000, - EM_TI_C5500, EM_CUDA): Define. - (EM_res140, EM_res141, EM_res142): Remove. - -2009-11-17 Paul Brook - Daniel Jacobowitz - - * arm.h (TAG_CPU_ARCH_V7E_M): Define. - -2009-09-29 DJ Delorie - - * rx.h: New file. - -2009-09-21 Alan Modra - - * ppc.h (DT_PPC_TLSOPT): Define. - * ppc64.h (DT_PPC64_TLSOPT): Define. - -2009-08-10 Daniel Gutson - - * arm.h: (SHT_ARM_DEBUGOVERLAY): New define. - (SHT_ARM_OVERLAYSECTION): New define. - -2006-08-09 Bernd Schmidt - - From Mike Frysinger - * bfin.h (R_BFIN_UNUSED, R_BFIN_PCREL5M2, R_BFIN_UNUSED1, - R_BFIN_PCREL10, R_BFIN_PCREL12_JUMP, R_BFIN_RIMM16, - R_BFIN_LUIMM16, R_BFIN_HUIMM16, R_BFIN_PCREL12_JUMP_S, - R_BFIN_PCREL24_JUMP_X, R_BFIN_PCREL24, R_BFIN_UNUSEDB, - R_BFIN_UNUSEDC, R_BFIN_PCREL24_JUMP_L, R_BFIN_PCREL24_CALL_X, - R_BFIN_VAR_EQ_SYMB, R_BFIN_BYTE_DATA, R_BFIN_BYTE2_DATA, - R_BFIN_BYTE4_DATA, R_BFIN_PCREL11, R_BFIN_PUSH, R_BFIN_CONST, - R_BFIN_ADD, R_BFIN_SUB, R_BFIN_MULT, R_BFIN_DIV, R_BFIN_MOD, - R_BFIN_LSHIFT, R_BFIN_RSHIFT, R_BFIN_AND, R_BFIN_OR, R_BFIN_XOR, - R_BFIN_LAND, R_BFIN_LOR, R_BFIN_LEN, R_BFIN_NEG, R_BFIN_COMP, - R_BFIN_PAGE, R_BFIN_HWPAGE, R_BFIN_ADDR, R_BFIN_PLTPLC, - R_BFIN_GOT, R_BFIN_MAX): Renamed from R_unused0, R_pcrel5ms, - R_unused1, R_pcrel10, R_pcrel12_jump, R_rimm16, R_luimm16, - R_huimm16, R_pcrel12_jump_s, R_pcrel24_jump_x, R_pcrel24, - R_unusedb, R_unusedc, R_pcrel24_jump_l, R_pcrel24_call_x, - R_var_eq_symb, R_byte_data, R_byte2_data, R_byte4_data, R_pcrel11, - R_push, R_const, R_add, R_sub, R_mult, R_div, R_mod, R_lshift, - R_rshift, R_and, R_or, R_xor, R_land, R_lor, R_len, R_neg, R_comp, - R_page, R_hwpage, R_addr, R_pltpc, R_got. - -2009-08-09 Michael Eager - - * elf/common.h: Define EM_resnnn reserved values. Add EM_AVR32, - EM_STM8, EM_TILE64, EM_TILEPRO. Change EM_MICROBLAZE. - -2009-08-06 Michael Eager - - * elf/common.h: Define EM_MICROBLAZE & EM_MICROBLAZE_OLD. - * elf/microblaze.h: New reloc definitions. - -2009-07-30 Alan Modra - - * ppc64.h: Add R_PPC64_JMP_IREL, R_PPC64_REL16, R_PPC64_REL16_LO, - R_PPC64_REL16_HI, R_PPC64_REL16_HA. - -2009-07-25 H.J. Lu - - * common.h (EM_L1OM): New. - -2009-07-24 Trevor Smigiel - Alan Modra - - * spu.h (R_SPU_ADD_PIC): New. - -2009-07-23 Ulrich Drepper - - * common.h (STB_GNU_UNIQUE): Define. - -2009-07-10 Tom Tromey - - * dwarf2.h: Move to `..'. - -2009-07-10 H.J. Lu - - * dwarf2.h: Just include ../dwarf2.h. - -2009-07-10 Alan Modra - - * ppc.h (R_PPC_IRELATIVE): Add. - (R_PPC_RELAX32, R_PPC_RELAX32PC, - R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Renumber. - * ppc64.h (R_PPC64_IRELATIVE): Add. - -2009-07-03 Jakub Jelinek - - * dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value - and DW_OP_stack_value. - -2009-06-22 Alan Modra - - * ppc.h (R_PPC_RELAX*): Define as enum. - -2009-06-11 Anthony Green - - * moxie.h (R_MOXIE_PCREL10): New. - -2009-06-01 H.J. Lu - - PR ld/10205 - * i386.h (R_386_IRELATIVE): New. - * x86-64.h (R_X86_64_IRELATIVE): Likewise. - -2009-05-27 H.J. Lu - - * common.h: Update comments for dynamic tag ranges. - -2009-04-30 DJ Delorie - - * mep.h (EF_MEP_COP_*): New. - (EF_MEP_ALL_FLAGS): Add them. - -2009-04-30 Nick Clifton - - * common.h (STT_GNU_IFUNC): Define. - -2009-04-24 Cary Coutant - - * dwarf2.h (DW_LNE_set_discriminator): New enum value. - -2009-04-15 Anthony Green - - * common.h (EM_MOXIE): Define. - * moxie.h: New file. - -2009-04-07 DJ Delorie - - * mep.h (EF_MEP_CPU_C5): New. - -2009-04-01 H.J. Lu - - * common.h (EM_INTEL178): Removed. - (EM_INTEL179): Likewise. - (EM_ETPU): New. - (EM_SLE9X): Likewise. - (EM_INTEL181): Likewise. - (EM_INTEL182): Likewise. - -2009-03-31 H.J. Lu - - * common.h (EM_INTEL178): New. - (EM_INTEL179): Likewise. - (EM_INTEL180): Likewise. - -2009-03-20 Mikolaj Zalewski - - * common.h (SHT_GNU_INCREMENTAL_INPUTS): Define. - -2009-03-14 Mark Kettenis - - * common.h (NT_OPENBSD_PROCINFO, NT_OPENBSD_AUXV) - (NT_OPENBSD_REGS, NT_OPENBSD_FPREGS, NT_OPENBSD_XFPREGS) - (NT_OPENBSD_WCOOKIE): New defines. - -2009-03-16 Jan Kratochvil - - * common.h (AT_RANDOM): Define. - -2009-03-04 Alan Modra - - * ppc.h (R_PPC_TLSGD, R_PPC_TLSLD): Add new relocs. - * ppc64.h (R_PPC64_TLSGD, R_PPC64_TLSLD): Add new relocs. - -2009-03-02 Qinwei - - * score.h (RELOC_NUMBER): Add R_SCORE_IMM32. - * common.h (EM_SCORE_OLD): Define. - -2009-02-23 H.J. Lu - - * common.h (STB_LOPROC): Replace Application-specific with - Processor-specific in comments. - (STB_HIPROC): Likewise. - (STT_LOPROC): Likewise. - (STT_HIPROC): Likewise. - -2009-02-03 Sandip Matte - - * mips.h (E_MIPS_MACH_XLR): Define. - -2009-02-03 Maxim Kuvyrkov - - * m68k.h: Map TLS relocations to numbers. - -2009-01-15 Andrew Stubbs - Julian Brown - - * arm.h (TAG_CPU_ARCH_V6_M, TAG_CPU_ARCH_V6S_M): New defines. - (MAX_TAG_CPU_ARCH, TAG_CPU_ARCH_V4T_PLUS_V6_M): New defines. - (Tag_NEON_arch): Rename to Tag_Advanced_SIMD_arch to match ARM ABI - version 2.07. - (Tag_undefined39, Tag_nodefaults): New enum values. - (Tag_also_compatible_with, Tag_T2EE_use): Likewise. - (Tag_conformance, Tag_Virtualization_use): Likewise. - (Tag_undefined69, Tag_MPextension_use): Likewise. - -2009-01-15 Douglas B Rupp - - * ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): - New macros. Minor reformatting. - -2008-12-23 Jon Beniston - - * lm32.h: New file. - -2008-12-23 Nick Clifton - - * commmon.h (STT_IFUNC): Delete. - -2008-12-20 Hans-Peter Nilsson - - * cris.h (R_CRIS_32_IE): New relocation. - -2008-12-03 Nick Clifton - - * common.h (STT_IFUNC): Define. - -2008-11-27 M R Swami Reddy - - * cr16.h (R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and - R_CR16_GLOB_DAT): New relocations. - -2008-11-25 Hans-Peter Nilsson - - * cris.h (R_CRIS_32_TPREL): Correct comment. - (R_CRIS_DTPMOD): Open up for use elsewhere than the fourth GOT entry. - -2008-11-18 Catherine Moore - - * arm.h (Tag_ABI_FP_16bit_format): Define. - -2008-11-14 Nathan Sidwell - - * internal.h (struct elf_segment_map): Add header_size field. - -2008-10-13 Ulrich Weigand - - * common.h (AT_BASE_PLATFORM, AT_EXECFN): Define. - -2008-10-10 Nathan Froyd - - * ppc.h: Add Tag_GNU_Power_ABI_Struct_Return. - -2008-10-04 Hans-Peter Nilsson - - * cris.h (R_CRIS_32_GOT_GD, R_CRIS_16_GOT_GD, R_CRIS_32_GD) - (R_CRIS_DTP, R_CRIS_32_DTPREL, R_CRIS_16_DTPREL, R_CRIS_DTPMOD) - (R_CRIS_32_GOT_TPREL, R_CRIS_16_GOT_TPREL, R_CRIS_32_TPREL) - (R_CRIS_16_TPREL): New relocations. - -2008-08-20 Bob Wilson - - * xtensa.h (R_XTENSA_TLSDESC_FN, R_XTENSA_TLSDESC_ARG) - (R_XTENSA_TLS_DTPOFF, R_XTENSA_TLS_TPOFF, R_XTENSA_TLS_FUNC) - (R_XTENSA_TLS_ARG, R_XTENSA_TLS_CALL): New. - -2008-08-08 Richard Sandiford - Daniel Jacobowitz - Catherine Moore - Mark Shinwell - - * mips.h (STO_MIPS_PLT, ELF_ST_IS_MIPS_PLT, ELF_ST_SET_MIPS_PLT) - (STO_MIPS_PIC, DT_MIPS_PLTGOT, DT_MIPS_RWPLT): New macros. - -2008-08-04 Markus Weiss - - * common.h (ELFOSABI_AROS): Update comment. - -2008-07-26 Michael Eager - - * ppc.h: Add description of single-precision. - -2008-07-21 Luis Machado - - * common.h: Define NT_PPC_VSX. - -2008-07-10 Richard Sandiford - - * mips.h (ELF_ST_IS_MIPS16, ELF_ST_SET_MIPS16): New macros. - -2008-06-18 M R Swami Reddy - - * common.h (EM_CR16): Correct value. - (EM_CR16): Rename to EM_CR16_OLD. - -2008-06-12 DJ Delorie - - * common.h (EM_M32C_NEW): Rename to EM_M32C. - (EM_M32C): Rename to EM_M32C_OLD. - -2008-06-12 Joseph Myers - - * common.h: Update e_machine table. - -2008-06-09 Takashi Yoshii - - * sh.h (EF_SH_BFD_TABLE): Set bfd_mach_sh for EF_SH_UNKNOWN. - -2008-06-09 Joseph Myers - - * common.h: Change registry@caldera.com to registry@sco.com. - -2008-05-21 Nick Clifton - - * reloc-macros.h: Add a comment about the use of the - END_RELOC_NUMBERS symbol as a sentinel value. - -2008-05-15 Christophe Lyon - - * arm.h (END_RELOC_NUMBERS): Provide a maximum value. - -2008-04-16 David S. Miller - - * elf/sparc.h (R_SPARC_GOTDATA_HIX22, - R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22, - R_SPARC_GOTDATA_OP_LOX10, R_SPARC_GOTDATA_OP, - R_SPARC_H34, R_SPARC_SIZE32, R_SPARC_SIZE64): New relocs. - -2008-03-24 Ian Lance Taylor - - * common.h (NT_GNU_GOLD_VERSION): Define. - -2008-03-13 Alan Modra - - * internal.h (Elf_Internal_Shdr): Change sh_link and sh_info from - unsigned long to unsigned int. Change sh_addralign to bfd_vma. - Order struct as for external version. - -2008-03-12 Alan Modra - - PR 5900 - * common.h (SHN_BAD): Delete. - (SHN_LORESERVE .. SHN_HIRESERVE): Move to.. - * external.h: ..here. - * internal.h (SHN_LORESERVE, SHN_HIRESERVE): Define. - (SHN_LOPROC, SHN_HIPROC, SHN_LOOS, SHN_HIOS): Define. - (SHN_ABS, SHN_COMMON, SHN_XINDEX, SHN_BAD): Define. - -2008-03-12 Alan Modra - - * cr16c.h (SHN_CR16C_FCOMMON): Define using SHN_LORESERVE. - (SHN_CR16C_NCOMMON): Likewise. - * hppa.h (SHN_PARISC_ANSI_COMMON): Likewise. - (SHN_PARISC_HUGE_COMMON): Likewise. - * ia64.h (SHN_IA_64_ANSI_COMMON): Likewise. - (SHN_IA_64_VMS_SYMVEC): Define using SHN_LOOS. - * m32r.h (SHN_M32R_SCOMMON): Define using SHN_LORESERVE. - * mips.h (SHN_MIPS_ACOMMON, SHN_MIPS_TEXT): Likewise. - (SHN_MIPS_DATA, SHN_MIPS_SCOMMON, SHN_MIPS_SUNDEFINED): Likewise. - * score.h (SHN_SCORE_TEXT, SHN_SCORE_DATA): Likewise. - (SHN_SCORE_SCOMMON): Likewise. - * sparc.h (SHN_BEFORE, SHN_AFTER): Likewise. - * v850.h (SHN_V850_SCOMMON, SHN_V850_TCOMMON): Likewise. - (SHN_V850_ZCOMMON): Likewise. - * x86-64.h (SHN_X86_64_LCOMMON): Likewise. - -2008-03-03 Pallavi Tambay - - * dwarf2.h: (enum dwarf_location_atom): Add new DW_OP: - DW_OP_PGI_omp_thread_num. - -2008-02-04 Adam Nemet - - * mips.h: Update copyright. - (E_MIPS_MACH_OCTEON): New macro. - -2008-01-30 Tristan Gingold - - Add OpenVMS extensions. - * ia64.h (SHF_IA_64_VMS_GLOBAL, SHF_IA_64_VMS_OVERLAID) - (SHF_IA_64_VMS_SHARED, SHF_IA_64_VMS_VECTOR) - (SHF_IA_64_VMS_ALLOC_64BIT, SHF_IA_64_VMS_PROTECTED) - (SHT_IA_64_VMS_TRACE, SHT_IA_64_VMS_TIE_SIGNATURES) - (SHT_IA_64_VMS_DEBUG, SHT_IA_64_VMS_DEBUG_STR) - (SHT_IA_64_VMS_LINKAGES, SHT_IA_64_VMS_SYMBOL_VECTOR) - (SHT_IA_64_VMS_FIXUP, DT_IA_64_VMS_SUBTYPE) - (DT_IA_64_VMS_IMGIOCNT, DT_IA_64_VMS_LNKFLAGS) - (DT_IA_64_VMS_VIR_MEM_BLK_SIZ, DT_IA_64_VMS_IDENT) - (DT_IA_64_VMS_NEEDED_IDENT, DT_IA_64_VMS_IMG_RELA_CNT) - (DT_IA_64_VMS_SEG_RELA_CNT, DT_IA_64_VMS_FIXUP_RELA_CNT) - (DT_IA_64_VMS_FIXUP_NEEDED, DT_IA_64_VMS_SYMVEC_CNT) - (DT_IA_64_VMS_XLATED, DT_IA_64_VMS_STACKSIZE) - (DT_IA_64_VMS_UNWINDSZ, DT_IA_64_VMS_UNWIND_CODSEG) - (DT_IA_64_VMS_UNWIND_INFOSEG, DT_IA_64_VMS_LINKTIME) - (DT_IA_64_VMS_SEG_NO, DT_IA_64_VMS_SYMVEC_OFFSET) - (DT_IA_64_VMS_SYMVEC_SEG, DT_IA_64_VMS_UNWIND_OFFSET) - (DT_IA_64_VMS_UNWIND_SEG, DT_IA_64_VMS_STRTAB_OFFSET) - (DT_IA_64_VMS_SYSVER_OFFSET, DT_IA_64_VMS_IMG_RELA_OFF) - (DT_IA_64_VMS_SEG_RELA_OFF, DT_IA_64_VMS_FIXUP_RELA_OFF) - (DT_IA_64_VMS_PLTGOT_OFFSET, DT_IA_64_VMS_PLTGOT_SEG) - (DT_IA_64_VMS_FPMODE, SHN_IA_64_VMS_SYMVEC): Define - -2008-01-16 Mark Kettenis - - * common.h (AT_SUN_AUXFLAGS): Define. - -2007-12-11 Daniel Jacobowitz - - * dwarf2.h (DW_AT_hi_user): Correct value. - -2007-12-07 Bob Wilson - - * xtensa.h (R_XTENSA_32_PCREL): New. - -2007-11-29 Mark Shinwell - - * mips.h (E_MIPS_MACH_LS2E): New. - (E_MIPS_MACH_LS2F): New. - -2007-11-28 Nathan Sidwell - - * internal.h (ELF_IS_SECTION_IN_SEGMENT): Adjust to cope with - segments at the end of memory. - -2007-11-17 Thiemo Seufer - - * mips.h (Tag_GNU_MIPS_ABI_FP): Mention -mips32r2 -mfp64 variant - in comment. - -2007-11-16 Nick Clifton - - * dwarf2.h: Mention the location of the DWARF3 spec on the web. - (DW_AT_stride_size): Rename to DW_AT_bit_stride. - (DW_AT_stride): Rename to DW_AT_byte_stride. - -2007-11-08 Nathan Sidwell - - * vxworks.h: New. - -2007-10-30 Nick Clifton - - * mn10300.h (R_MN10300_ALIGN): Define. - -2007-10-25 Daniel Jacobowitz - - * ppc.h (Tag_GNU_Power_ABI_Vector): New. - -2007-10-19 Nick Clifton - - * mn10300.h: Add R_MN10300_SYM_DIFF reloc. - -2007-10-18 Roland McGrath - - * common.h (NT_PPC_VMX): New macro. - -2007-10-01 M R Swami Reddy - - * cr16.h: Updated with new relocaction macros. - -2007-09-17 H.J. Lu - - PR binutils/3281 - PR binutils/5037 - * internal.h (elf_segment_map): Add p_size and p_size_valid. - (ELF_IS_SECTION_IN_SEGMENT): Allow SHF_TLS sections in - PT_GNU_RELRO segments. - -2007-09-11 Nathan Sidwell - - * m68k.h (EF_M68K_CF_ISA_C_NODIV): New. - -2007-08-25 Ulrich Weigand - - * common.h (NT_SPU): Define. - -2007-08-16 H.J. Lu - - * common.h: Revert last change. - -2007-08-16 H.J. Lu - - * common.h (PT_GNU_STACK): Renamed to ... - (PT_GNU_ATTR): This. - (PT_GNU_STACK): New. Make an alias of PT_GNU_ATTR. - -2007-07-09 Roland McGrath - - * common.h (NT_GNU_HWCAP, NT_GNU_BUILD_ID): New macros. - -2007-06-29 Joseph Myers - - * ppc.h (Tag_GNU_Power_ABI_FP): Define. - -2007-06-29 Joseph Myers - - * mips.h (Tag_GNU_MIPS_ABI_FP): Define. - -2007-06-29 Joseph Myers - - * arm.h (elf32_arm_add_eabi_attr_int, - elf32_arm_add_eabi_attr_string, elf32_arm_add_eabi_attr_compat, - elf32_arm_get_eabi_attr_int, elf32_arm_set_eabi_attr_contents, - elf32_arm_eabi_attr_size, Tag_NULL, Tag_File, Tag_Section, - Tag_Symbol, Tag_compatibility): Remove. - * common.h (SHT_GNU_ATTRIBUTES): Define. - -2007-06-29 M R Swami Reddy - - * common.h (EM_CR16): New entry for CR16 cpu. - * cr16.h: New file. - -2007-06-11 Sterling Augustine - Bob Wilson - - * xtensa.h (XTENSA_PROP_INSN_NO_TRANSFORM): Renamed to... - (XTENSA_PROP_NO_TRANSFORM): ...this. - -2007-05-18 Caroline Tice - - * dwarf2.h: (enum dwarf_location_atom): Add new DW_OP, - DW_OP_GNU_uninit. - -2007-05-12 Alan Modra - - * spu.h (R_SPU_ADDR16X): Define. - (R_SPU_PPU32, R_SPU_PPU64): Renumber. - -2007-05-11 Alan Modra - - * spu.h (R_SPU_PPU32, R_SPU_PPU64): Define. - -2007-05-02 Alan Modra - - * internal.h (ELF_IS_SECTION_IN_SEGMENT): Check both file offset - and vma for appropriate sections. - -2007-04-26 Jan Beulich - - * common.h (DT_ENCODING): Correct value (back to spec mandated - value). - -2007-03-08 Alan Modra - - * v850.h (V850_OTHER_TDA_BYTE): Delete. - (V850_OTHER_SDA, V850_OTHER_ZDA, V850_OTHER_TDA): Assign bits - that don't clash with visibility bits. - -2007-03-07 Alan Modra - - * common.h (ELF_ST_VISIBILITY): Comment typo fix. - -2007-02-05 Dave Brolley - Richard Sandiford - Richard Henderson - DJ Delorie - Ben Elliston - - * mep.h: New file. - * common.h (EM_CYGNUS_MEP): Define. - -2007-02-15 Dave Brolley - - From Graydon Hoare : - * common.h (STT_RELC, STT_SRELC, R_RELC): New macros. - -2007-01-08 Kazu Hirata - - * m68k.h (EF_M68K_FIDO): New. - (EF_M68K_ARCH_MASK): OR EF_M68K_FIDO. - (EF_M68K_CPU32_FIDO_A, EF_M68K_CPU32_MASK): Remove. - -2006-12-25 Kazu Hirata - - * m68k.h (EF_M68K_CPU32_FIDO_A, EF_M68K_CPU32_MASK): New. - -2006-12-19 Kazu Hirata - - * m68k.h (EF_M68K_ARCH_MASK): New. - -2006-12-19 Nathan Sidwell - - * internal.h (struct elf_segment_map): Add p_vaddr_offset field. - -2006-12-07 Kazu Hirata - - * m68k.h (EF_M68K_ISA_MASK, EF_M68K_ISA_A_NODIV, - EF_M68K_ISA_A, EF_M68K_ISA_A_PLUS, EF_M68K_ISA_B_NOUSP, - EF_M68K_ISA_B, EF_M68K_ISA_C, EF_M68K_MAC_MASK, EF_M68K_MAC, - EF_M68K_EMAC, EF_M68K_EMAC_B, EF_M68K_FLOAT): Rename to - EF_M68K_CF_ISA_MASK, EF_M68K_CF_ISA_A_NODIV, EF_M68K_CF_ISA_A, - EF_M68K_CF_ISA_A_PLUS, EF_M68K_CF_ISA_B_NOUSP, - EF_M68K_CF_ISA_B, EF_M68K_CF_ISA_C, EF_M68K_CF_MAC_MASK, - EF_M68K_CF_MAC, EF_M68K_CF_EMAC, EF_M68K_CF_EMAC_B, - EF_M68K_CF_FLOAT, respectively. - -2006-12-05 Michael Tautschnig - Nick Clifton - - * external.h (struct Elf_External_Versym): Use ATTRIBUTE_PACKED. - -2006-10-28 Richard Sandiford - - * mips.h (R_MIPS_GLOB_DAT): Define - (R_MIPS_max): Bump by 1. - -2006-10-25 Trevor Smigiel - Yukishige Shibata - Nobuhisa Fujinami - Takeaki Fukuoka - Alan Modra - - * common.h (EM_SPU): Define. - * spu.h: New file. - -2006-10-19 Mei Ligang - - * score.h (EF_SCORE_PIC): Redefine EF_SCORE_PIC as 0x80000000. - (EF_SCORE_FIXDEP): Redefine EF_SCORE_FIXDEP as 0x40000000. - (EF_SCORE_HASENTRY): Delete. - -2006-10-17 Mark Shinwell - - * arm.h: Define TAG_CPU_ARCH_* constants. - -2006-09-17 Mei Ligang - - * score.h: New file. - * common.h: Add Score machine number. - -2006-07-10 Jakub Jelinek - - * common.h (SHT_GNU_HASH, DT_GNU_HASH): Define. - -2006-05-31 H.J. Lu - - * internal.h (ELF_SECTION_SIZE): New. - (ELF_IS_SECTION_IN_SEGMENT): Likewise. - (ELF_IS_SECTION_IN_SEGMENT_FILE): Updated. - (ELF_IS_SECTION_IN_SEGMENT_MEMORY): Likewise. - -2006-05-27 H.J. Lu - - * internal.h (struct elf_segment_map): Add p_align and p_align_valid. - -2006-05-24 Carlos O'Donell - Randolph Chung - * hppa.h (R_PARISC_TLS_GD21L, R_PARISC_TLS_GD14R, R_PARISC_TLS_GDCALL, - R_PARISC_TLS_LDM21L, R_PARISC_TLS_LDM14R, R_PARISC_TLS_LDMCALL, - R_PARISC_TLS_LDO21L, R_PARISC_TLS_LDO14R, R_PARISC_TLS_DTPMOD32, - R_PARISC_TLS_DTPMOD64, R_PARISC_TLS_DTPOFF32, R_PARISC_TLS_DTPOFF64): - New TLS relocs. - (R_PARISC_TLS_LE21L, R_PARISC_TLS_LE14R, R_PARISC_TLS_IE21L, - R_PARISC_TLS_IE14R, R_PARISC_TLS_TPREL32, R_PARISC_TLS_TPREL64): - Define TLS relocs using existing equivalents. - -2006-05-24 Bjoern Haase - - * avr.h: Add E_AVR_MACH_AVR6, R_AVR_LO8_LDI_GS and R_AVR_HI8_LDI_GS. - -2006-03-25 Bernd Schmidt - - * bfin.h (R_BFIN_GOT17M4, R_BFIN_GOTHI, R_BFIN_GOTLO, - R_BFIN_FUNCDESC, R_BFIN_FUNCDESC_GOT17M4, R_BFIN_FUNCDESC_GOTHI, - R_BFIN_FUNCDESC_GOTLO, R_BFIN_FUNCDESC_VALUE, - R_BFIN_FUNCDESC_GOTOFF17M4, R_BFIN_FUNCDESC_GOTOFFHI, - R_BFIN_FUNCDESC_GOTOFFLO, R_BFIN_GOTOFF17M4, R_BFIN_GOTOFFHI, - R_BFIN_GOTOFFLO): New relocs. - (EF_BFIN_PIC, EF_BFIN_FDPIC, EF_BFIN_PIC_FLAGS): New macros. - -2006-03-23 Michael Matz - - * x86-64.h: Add the new relocations with their official - numbers. - -2006-03-22 Richard Sandiford - Daniel Jacobowitz - Phil Edwards - Zack Weinberg - Mark Mitchell - Nathan Sidwell - - * mips.h (R_MIPS_COPY, R_MIPS_JUMP_SLOT): New relocs. - -2006-03-19 John David Anglin - - * hppa.h (SHF_HP_TLS, SHF_HP_NEAR_SHARED, SHF_HP_FAR_SHARED, - SHF_HP_COMDAT, SHF_HP_CONST, SHN_TLS_COMMON, SHN_NS_COMMON, - SHN_NS_UNDEF, SHN_FS_UNDEF, SHN_HP_EXTERN, SHN_HP_EXTHINT, - SHN_HP_UNDEF_BIND_IMM, SHT_HP_OVLBITS, SHT_HP_DLKM, SHT_HP_COMDAT, - SHT_HP_OBJDICT, SHT_HP_ANNOT, STB_HP_ALIAS): Define. - -2006-03-10 Paul Brook - - * arm.h (EF_ARM_EABI_VER5): Define. - -2006-03-06 Nathan Sidwell - - * m68k.h (EF_M68K_ISA_MASK, EF_M68K_ISA_A, - EF_M68K_ISA_A_PLUS, EF_M68K_ISA_B, EF_M68K_ISA_C): Adjust. - (EF_M68K_ISA_A_NODIV, EF_M68K_ISA_B_NOUSP): New. - (EF_M68K_HW_DIV, EF_M68K_USP): Remove. - (EF_M68K_MAC, EF_M68K_EMAC, EF_M68K_FLOAT): Adjust. - (EF_M68K_EMAC_B): New. - -2006-03-03 Bjoern Haase - - * avr.h (R_AVR_MS8_LDI,R_AVR_MS8_LDI_NEG): Add. - (EF_AVR_LINKRELAX_PREPARED): Add. - -2006-03-02 Ben Elliston - - Import from the GCC tree: - 2006-03-01 Jakub Jelinek - - * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants - from DWARF 3. - (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale, - DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count, - DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled, - DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity, - DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New. - (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New. - (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited, - DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New. - (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch, - DW_DS_leading_separate, DW_DS_trailing_separate): New. - (DW_END_default, DW_END_big, DW_END_little): New. - (DW_END_lo_user, DW_END_hi_user): Define. - (DW_LNE_lo_user, DW_LNE_hi_user): Define. - (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New. - (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC, - DW_LANG_D): New. - -2006-02-06 Steve Ellcey - - * ia64.h (SHF_IA_64_HP_TLS): New. - -2006-02-24 DJ Delorie - - * m32c.h: Add relax relocs. - -2006-02-17 Shrirang Khisti - Anil Paranjape - Shilin Shakti - - * common.h (EM_XC16X): New entry for xc16x cpu. - Sort other EM_* numbers into numerical order. - * xc16x.h: New file. - -2006-02-10 H.J. Lu - - PR binutils/2258 - * internal.h (ELF_IS_SECTION_IN_SEGMENT_FILE): New. - (ELF_IS_SECTION_IN_SEGMENT_MEMORY): Likewise. - -2006-02-07 Nathan Sidwell - - * m68k.h (EF_CPU32, EF_M68000, EF_CFV4E): Rename to ... - (EF_M68K_CPU32, EF_M68K_M68000, EF_M68K_CFV4E): ... here. - (EF_M68K_ISA_MASK, EF_M68K_ISA_A, EF_M68K_M68K_ISA_A_PLUS, - EF_M68K_ISA_B, EF_M68K_HW_DIV, EF_M68K_MAC_MASK, EF_M68K_MAC, - EF_M68K_EMAC, EF_M68K_USP, EF_M68K_FLOAT): New. - -2006-02-06 Steve Ellcey - - * ia64.h (SHF_IA_64_HP_TLS): New. - -2006-01-18 Alexandre Oliva - - Introduce TLS descriptors for i386 and x86_64. - * common.h (DT_TLSDESC_GOT, DT_TLSDESC_PLT): New. - * i386.h (R_386_TLS_GOTDESC, R_386_TLS_DESC_CALL, R_386_TLS_DESC): - New. - * x86-64.h (R_X86_64_GOTPC32_TLSDESC, R_X86_64_TLSDESC_CALL, - R_X86_64_TLSDESC): New. - -2006-01-09 Mike Frysinger : - - * common.h (EM_ALTERA_NIOS2, EM_NIOS32) Define. - -2005-12-16 Nathan Sidwell - - Second part of ms1 to mt renaming. - * common.h (EM_MT): Renamed. - * mt.h: Rename relocs, cpu & other defines. - -2005-12-12 Nathan Sidwell - - * mt.h: Renamed from ms1.h - -2005-12-12 Paul Brook - - * arm.h (elf32_arm_get_eabi_attr_int): Add prototype. - -2005-11-11 Nick Clifton - - PR 1150 - * mips.h (STO_OPTIONAL): Define. - (ELF_MIPS_IS_OPTIONAL): Define. - -2005-11-07 Nathan Sidwell - - Add ms2. - * ms1.h (EF_MS1_CPU_MS2): New. - -2005-11-06 John David Anglin - - * hppa.h (R_PARISC_DIR64WR, R_PARISC_DIR64DR): Remove relocs. - -2005-09-30 Catherine Moore - - * bfin.h: New file. - * common.h (EM_BLACKFIN): Define. - -2005-10-08 Paul Brook - - * arm.h: Add prototypes for BFD object attribute routines. - -2005-09-09 Richard Earnshaw - - * arm.h (SHT_ARM_PREEMPTMAP, SHT_ARM_ATTRIBUTES): New defines. - -2005-08-09 John David Anglin - - * hppa.h (SHT_PARISC_DLKM, SHF_PARISC_WEAKORDER, PT_PARISC_WEAKORDER): - New defines. - -2005-08-04 John David Anglin - - * hppa.h (PF_HP_CODE, PF_HP_MODIFY, PF_HP_LAZYSWAP): Revise defines. - (PF_HP_CODE_DEPR, PF_HP_MODIFY_DEPR, PF_HP_LAZYSWAP_DEPR): New - deprecated defines. - (DT_HP_EPLTREL, DT_HP_EPLTRELSZ, DT_HP_FILTERED, DT_HP_FILTER_TLS, - DT_HP_COMPAT_FILTERED, DT_HP_LAZYLOAD, DT_HP_BIND_NOW_COUNT, DT_PLT, - DT_PLT_SIZE, DT_DLT, DT_DLT_SIZE, DT_HP_BIND_DEPTH_FIRST, DT_HP_GST, - DT_HP_SHLIB_FIXED, DT_HP_MERGE_SHLIB_SEG, DT_HP_NODELETE, DT_HP_GROUP, - DT_HP_PROTECT_LINKAGE_TABLE, PT_HP_OPT_ANNOT, PT_HP_HSL_ANNOT, - PT_HP_STACK, PT_HP_CORE_UTSNAME, NT_HP_COMPILER, NT_HP_COPYRIGHT, - NT_HP_VERSION, NT_HP_SRCFILE_INFO, NT_HP_LINKER, NT_HP_INSTRUMENTED, - NT_HP_UX_OPTIONS): Define. - -2005-07-25 DJ Delorie - - * m32c.h: Add R_M32C_8, R_M32C_LO16, R_M32C_HI8, and R_M32C_HI16. - -2005-07-25 Jan Hubicka - - * x86-64.h (SHN_X86_64_LCOMMON): New. - (SHF_X86_64_LARGE): New. - -2005-07-20 Kazuhiro Inaoka - - * m32r.h (R_M32R_REL32): Added. - -2005-07-18 Ben Elliston - - * dwarf2.h (enum dwarf_type): Remove DW_AT_GNU_decimal_float. - Replace with DW_ATE_decimal_float (now in DWARF 3). - -2005-07-14 Jim Blandy - - Add support for Renesas M32C and M16C. - * common.h (EM_M32C): New machine number. - * m32c.h: New file. - -2005-06-17 Jakub Jelinek - - * external.h (GRP_ENTRY_SIZE): Define. - -2005-06-17 Jan Beulich - - * x86-64.h (elf_x86_64_reloc_type): Adjust comment for - R_X86_64_GOTPCREL. Add R_X86_64_PC64, R_X86_64_GOTOFF64, and - R_X86_64_GOTPC32. - -2005-06-07 Aldy Hernandez - Michael Snyder - Stan Cox - - * common.h (EM_MS1): Define. - - * ms1.h: New file. - -2005-05-31 Richard Henderson - - * alpha.h (LITUSE_ALPHA_JSRDIRECT): New. - -2005-05-29 Richard Henderson - - * alpha.h (DT_ALPHA_PLTRO): New. - -2005-05-19 Ben Elliston - - * dwarf2.h (enum dwarf_type): Assign DW_ATE_GNU_decimal_float from - the user-defined encoding space pending inclusion in the standard. - -2005-05-18 Zack Weinberg - - * arm.h: Make all #ifndef OLD_ARM_ABI blocks - unconditional, delete all #ifdef OLD_ARM_ABI blocks. - -2005-05-17 Zack Weinberg - - * arm.h: Import complete list of official relocation names - and numbers from AAELF. Define FAKE_RELOCs for old names. - Remove a few old names no longer used anywhere. - -2005-05-14 Alan Modra - - * ppc.h (DT_PPC_GOT): Rename from DT_PPC_GLINK. - -2005-05-11 Alan Modra - - * ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT, - R_PPC_RELAX32PC_PLT) Adjust. - (R_PPC_REL16, R_PPC_REL16_LO, R_PPC_REL16_HI, R_PPC_REL16_HA): Define. - (DT_PPC_GLINK): Define. - -2005-05-10 Nick Clifton - - * Update the address and phone number of the FSF organization in - the GPL notices in the following files: - alpha.h, arc.h, arm.h, avr.h, common.h, cr16c.h, cris.h, crx.h, - d10v.h, d30v.h, dlx.h, dwarf.h, dwarf2.h, external.h, fr30.h, - frv.h, h8.h, hppa.h, i370.h, i386.h, i860.h, i960.h, ia64.h, - internal.h, ip2k.h, iq2000.h, m32r.h, m68hc11.h, m68k.h, mcore.h, - mips.h, mmix.h, mn10200.h, mn10300.h, msp430.h, openrisc.h, - or32.h, pj.h, ppc.h, ppc64.h, reloc-macros.h, s390.h, sh.h, - sparc.h, v850.h, vax.h, x86-64.h, xstormy16.h, xtensa.h - -2005-04-13 H.J. Lu - - Moved from ../ChangeLog - - 2004-10-27 Richard Earnshaw - * arm.h: Add R_ARM_CALL and R_ARM_JUMP32. - - 2004-10-12 Paul Brook - * arm.h (EF_ARM_EABI_VER4): Define. - - 2004-10-08 Daniel Jacobowitz - - * common.h (PT_SUNW_EH_FRAME): Define. - * x86-64.h (SHT_X86_64_UNWIND): Define. - - 2004-10-07 Bob Wilson - * xtensa.h (R_XTENSA_DIFF8, R_XTENSA_DIFF16, R_XTENSA_DIFF32, - R_XTENSA_SLOT*_OP, R_XTENSA_SLOT*_ALT): New relocations. - (XTENSA_PROP_SEC_NAME): Define. - (property_table_entry): Add flags field. - (XTENSA_PROP_*, GET_XTENSA_PROP_*, SET_XTENSA_PROP_*): Define. - - 2004-09-17 Paul Brook - * arm.h: Remove R_ARM_STKCHK and R_ARM_THM_STKCHK. - Add R_ARM_TARGET2, R_ARM_PREL31, R_ARM_GOT_ABS, R_ARM_GOT_PREL, - R_ARM_GOT_BREL12, R_ARM_GOTOFF12 and R_ARM_GOTRELAX. - - 2004-09-13 Paul Brook - * arm.h: Rename RELABS to TARGET1. - - 2004-05-11 Jakub Jelinek - * common.h (PT_GNU_EH_FRAME, PT_GNU_STACK): Add comments. - (PT_GNU_RELRO): Define. - -2005-03-29 Daniel Jacobowitz - Phil Blundell - - * arm.h: Add TLS relocations. - -2005-03-23 Ben Elliston - - * dwarf.h: Merge with GCC's dwarf.h. - -2005-03-18 C Jaipraash - - * m68k.h (EF_CFV4E): Define. - -2005-03-17 Paul Brook - Dan Jacobowitz - Mark Mitchell - - * arm.h (PT_ARM_EXIDX): Define. - -2005-03-02 Daniel Jacobowitz - Joseph Myers - - * mips.h: Define MIPS TLS relocations. - -2005-02-15 Nigel Stephens - Maciej W. Rozycki - - * mips.h (R_MIPS16_GOT16): New reloc code. - (R_MIPS16_CALL16): Likewise. - (R_MIPS16_HI16): Likewise. - (R_MIPS16_LO16): Likewise. - (R_MIPS16_min): New fake reloc code. - (R_MIPS16_max): Likewise. - -2005-02-11 Maciej W. Rozycki - - * mips.h (R_MIPS_max): Use FAKE_RELOC to define. - -2005-01-25 Alexandre Oliva - - 2004-12-10 Alexandre Oliva - * frv.h: Add R_FRV_TLSMOFF. - 2004-11-10 Alexandre Oliva - * frv.h: Add TLS relocations. - -2005-01-17 Nick Clifton - - * sh.h (EF_SH2A_SH4_NOFPU, EF_SH2A_SH3_NOFPU, EF_SH2A_SH4, - EF_SH2A_SH3E): New flags. - (EF_SH_BFD_TABLE): Add these new flags to the table. - -2005-01-12 Alan Modra - - * ppc.h (R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Define. - (R_PPC_RELAX32, R_PPC_RELAX32PC): Adjust value. - -2004-12-22 Klaus Rudolph - - * avr.h (R_AVR_LDI, R_AVR_6, R_AVR_6_ADIW): New relocs. - -2004-12-16 Richard Sandiford - - * v850.h (R_V850_LO16_SPLIT_OFFSET): New reloc. - -2004-12-09 Ian Lance Taylor - - * mips.h (E_MIPS_MACH_9000): Define. - -2004-11-04 Hans-Peter Nilsson - - * cris.h (EF_CRIS_VARIANT_MASK, EF_CRIS_VARIANT_ANY_V0_V10) - (EF_CRIS_VARIANT_V32, EF_CRIS_VARIANT_COMMON_V10_V32): New - macros. - -2004-10-06 Eric Christopher - - * dwarf2.h: Sync with gcc dwarf2.h. Fix typo. - -2004-10-01 Paul Brook - - * arm.h (SHT_ARM_EXIDX): Define. - (ELF_STRING_ARM_unwind, ELF_STRING_ARM_unwind, - ELF_STRING_ARM_unwind_once, ELF_STRING_ARM_unwind_info_once): - Define. - -2004-08-25 Dmitry Diky - - * msp430.h: Add new relocs. - -2004-08-12 H.J. Lu - - * i386.h (R_386_USED_BY_INTEL_200): New. - -2004-07-29 Alexandre Oliva - - Introduce SH2a support. - 2004-02-18 Corinna Vinschen - * sh.h (EF_SH2A_NOFPU): New. - 2003-12-01 Michael Snyder - * sh.h (EF_SH2A): New. - -2004-07-27 Tomer Levi - - * crx.h: Add BFD_RELOC_CRX_SWITCH8, BFD_RELOC_CRX_SWITCH16, - BFD_RELOC_CRX_SWITCH32. - -2004-07-06 Tomer Levi - - * common.h (EM_CRX): Define. - * crx.h: New file. - -2004-06-25 Kazuhiro Inaoka - - * m32r.h: Add defintions of R_M32R_GOTOFF_HI_ULO, - R_M32R_GOTOFF_HI_SLO and R_M32R_GOTOFF_LO. - -2004-06-19 Alan Modra - - * common.h (ELF64_R_INFO): Warning fix. - -2004-06-14 Chris Demetriou - - * mips.h (R_MIPS_PC32): Add back (undoing removal on 2004-04-24), - with an updated comment. - -2004-05-28 Andrew Stubbs - - * sh.h (EF_SH_HAS_DSP): Remove. - (EF_SH_HAS_FP): Remove. - (EF_SH_MERGE_MACH): Remove. - (EF_SH4_NOFPU): Convert to decimal. - (EF_SH4A_NOFPU): Likewise. - (EF_SH4_NOMMU_NOFPU): Likewise. - (EF_SH3_NOMMU): Add new macro. - (EF_SH_BFD_TABLE): Likewise. - (sh_find_elf_flags): Add prototype. - (sh_elf_get_flags_from_mach): Likewise. - -2004-04-24 Chris Demetriou - - * mips.h (R_MIPS_PC32, R_MIPS_PC64, R_MIPS_GNU_REL_LO16) - (R_MIPS_GNU_REL_HI16): Remove. - (R_MIPS_GNU_REL16_S2): Update comment. - -2004-30-30 Galit Heller - Tomer Levi - - * common.h (EM_CR): Define. - * cr16c.h: New file. - -2004-03-23 Paul Brook - - * arm.h (EF_ERM_BE8, EF_ARM_LE8, EF_ARM_EABI_VER3): Add. - -2003-03-03 Andrew Stubbs - - * sh.h: Add EF_SH4_NOMMU_NOFPU. - -2004-03-01 Richard Sandiford - - * frv.h (EF_FRV_CPU_FR405, EF_FRV_CPU_FR450): Define. - -2004-01-28 Roland McGrath - - * common.h (AT_SECURE): New macro. - -2004-01-21 Roland McGrath - - * common.h (AT_SUN_UID, AT_SUN_RUID, AT_SUN_GID): New macros. - (AT_SUN_RGID, AT_SUN_LDELF, AT_SUN_LDSHDR, AT_SUN_LDNAME, - AT_SUN_LPAGESZ, AT_SUN_PLATFORM, AT_SUN_HWCAP, AT_SUN_IFLUSH, - AT_SUN_CPU, AT_SUN_EMUL_ENTRY, AT_SUN_EMUL_EXECFD, - AT_SUN_EXECNAME) AT_SUN_MMU, AT_SUN_LDDATA): Likewise. - -2004-01-17 Mark Kettenis - - * common.h (NT_OPENBSD_IDENT): Define. - -2004-01-06 Alexandre Oliva - - 2003-09-18 Alexandre Oliva - * frv.h (EF_FRV_FDPIC): New macro. - (EF_FRV_PIC_FLAGS): Adjust. - 2003-08-08 Alexandre Oliva - * frv.h (R_FRV_FUNCDESC_VALUE, R_FRV_FUNCDESC_GOTOFF12, - R_FRV_FUNCDESC_GOTOFFLO, R_FRV_FUNCDESC_GOTOFFHI, R_FRV_GOTOFF12, - R_FRV_GOTOFFLO, R_FRV_GOTOFFHI): New. - 2003-08-04 Alexandre Oliva - * frv.h (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO, R_FRV_FUNCDESC, - R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI, R_FRV_FUNCDESC_GOTLO): - New. - - -For older changes see ChangeLog-9103 - -Copyright (C) 2004-2012 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - -Local Variables: -mode: change-log -left-margin: 8 -fill-column: 74 -version-control: never -End: diff --git a/include/elf/ChangeLog-9103 b/include/elf/ChangeLog-9103 deleted file mode 100644 index 6746d0a..0000000 --- a/include/elf/ChangeLog-9103 +++ /dev/null @@ -1,1957 +0,0 @@ -2005-04-13 H.J. Lu - - Moved from ../ChangeLog - - 2003-10-14 Bob Wilson - * xtensa.h: Formatting. Fix comments about property section - names for linkonce sections. - - 2003-05-23 Jakub Jelinek - * common.h (PT_GNU_STACK): Define. - - 2003-01-25 Jakub Jelinek - * sparc.h: Add TLS relocs. Move R_SPARC_REV32 to 252. - - 2002-09-26 Jakub Jelinek - * x86-64.h: Add TLS relocs. - - 2002-09-19 Jakub Jelinek - * i386.h (R_386_TLS_TPOFF, R_386_TLS_IE, R_386_TLS_GOTIE): - Define. - - 2002-07-10 Jakub Jelinek - * common.h (SHT_GNU_LIBLIST, DT_GNU_PRELINKED, - DT_GNU_CONFLICT*, DT_GNU_LIBLIST*): Define. - - 2002-05-31 Michal Ludvig - * dwarf2.h (DW_CFA_low_user, DW_CFA_high_user): Renamed - to DW_CFA_lo_user, DW_CFA_hi_user respectively. - - 2002-05-23 Jakub Jelinek - * common.h (PT_TLS, SHF_TLS, STT_TLS, DF_STATIC_TLS): Define. - * ia64.h (R_IA64_LTOFF_TPREL22): Renamed from R_IA64_LTOFF_TP22. - * i386.h: Add TLS relocs. - -2003-12-19 Kazuhiro Inaoka - - * m32r.h : Added m32r-linux and PIC support. Add new ABI that - uses RELA. - (R_M32R_16_RELA, R_M32R_32_RELA, R_M32R_24_RELA, - R_M32R_10_PCREL_RELA, R_M32R_18_PCREL_RELA, - R_M32R_26_PCREL_RELA, R_M32R_HI16_ULO_RELA, - R_M32R_HI16_SLO_RELA, R_M32R_LO16_RELA, - R_M32R_SDA16_RELA, R_M32R_RELA_GNU_VTINHERIT, - R_M32R_RELA_GNU_VTENTRY, R_M32R_GOT24, - R_M32R_26_PLTREL, R_M32R_COPY, R_M32R_GLOB_DAT, - R_M32R_JMP_SLOT, R_M32R_RELATIVE, R_M32R_GOTOFF, - R_M32R_GOTPC24, R_M32R_GOT16_HI_ULO, - R_M32R_GOT16_HI_SLO, R_M32R_GOT16_LO, - R_M32R_GOTPC_HI_ULO, R_M32R_GOTPC_HI_SLO, - R_M32R_GOTPC_LO): New relocs. - -2003-12-06 Alan Modra - - From Jan Beulich - * common.h (DT_HIOS): Correct value. - -2003-12-03 Kazuhiro Inaoka - - * m32r.h: Add new machine type m32r2 and instruction modes. - -2003-11-06 Alan Modra - - * ppc.h (R_PPC_RELAX32PC): Define. - -2003-10-22 Alexandre Oliva , - Michael Snyder - - * sh.h (EF_SH4A, EF_SH4AL_DSP, EF_SH4_NOFPU, EF_SH4A_NOFPU): New. - (EF_SH_MERGE_MACH): Combine them. - -2003-10-18 Hans-Peter Nilsson - - * mmix.h (R_MMIX_PUSHJ_STUBBABLE): New reloc number. - (_bfd_mmix_before_linker_allocation): Rename from - _bfd_mmix_prepare_linker_allocated_gregs. - (_bfd_mmix_after_linker_allocation): Rename from - _bfd_mmix_finalize_linker_allocated_gregs. - -2003-10-06 Dave Brolley - - * frv.h (EF_FRV_CPU_FR550): New macro. - -2003-09-30 Chris Demetriou - - * mips.h (E_MIPS_ARCH_64R2): New define. - -2003-09-23 DJ Delorie - - * sh.h (R_SH_SWITCH8, R_SH_GNU_VTINHERIT, R_SH_GNU_VTENTRY, - R_SH_LOOP_START,R_SH_LOOP_END): Move to "reserved" spaces. - (R_SH_DIR16, R_SH_DIR8, R_SH_DIR8UL, R_SH_DIR8UW, R_SH_DIR8U, - R_SH_DIR8SW, R_SH_DIR8S, R_SH_DIR4UL, R_SH_DIR4UW, R_SH_DIR4U, - R_SH_PSHA, R_SH_PSHL): New. - -2003-09-11 James Cownie - - * dwarf2.h: Add HP dwarf extensions from their hacked gdb - header files (ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz). - -2003-09-04 Nick Clifton - - * v850.h (E_V850E1_ARCH): Define. - -2003-08-21 James Cownie - - * dwarf2.h: Add PGI dwarf extensions. - -2003-08-08 Dmitry Diky - - * msp430.h: Add xW42 and xE42 parts. Sort MPU list according to - gcc order. - -2003-08-07 Alan Modra - - * reloc-macros.h (START_RELOC_NUMBERS) : Remove PARAMS macro. Use - C90 function definition. Formatting. - (RELOC_NUMBER): Remove !__STDC__ code. - -2003-07-28 Eric Christopher - - * ppc.h (R_PPC_RELAX32): New. Fake relocation. - -2003-07-25 H.J. Lu - - * v850.h (SHF_V850_GPREL): New. - (SHF_V850_EPREL): Likewise. - (SHF_V850_R0REL): Likewise. - -2003-07-09 Alexandre Oliva - - 2001-05-16 Alexandre Oliva - * mn10300.h: Introduce GOTPC16, GOTOFF24, GOTOFF16 and - PLT16, and rename GOTPC to GOTPC32 and GOTOFF to GOTOFF32. - Renumbered all relocs. - 2001-04-12 Alexandre Oliva - * mn10300.h (R_MN10300_GOTPC, R_MN10300_GOTOFF, - R_MN10300_PLT32, R_MN10300_GOT32, R_MN10300_GOT24, - R_MN10300_GOT16, R_MN10300_COPY, R_MN10300_GLOB_DAT, - R_MN10300_JMP_SLOT, R_MN10300_RELATIVE): New relocs. - -2003-07-09 Alexandre Oliva - - 2000-04-01 Alexandre Oliva - * mn10300.h (E_MN10300_MACH_AM33_2): Renamed from - E_MN10300_MACH_AM332. - 2000-03-31 Alexandre Oliva - * mn10300.h (E_MN10300_MACH_AM332): Defined. - -2003-07-01 Martin Schwidefsky - - * s390.h (elf_s390_reloc_type): Add long displacement relocations - R_390_20, R_390_GOT20, R_390_GOTPLT20 and R_390_TLS_GOTIE20. - -2003-06-29 Andreas Jaeger - - * mmix.h: Convert to ISO C90 prototypes. - * mips.h: Likewise. - -2003-06-13 Robert Millan - - * common.h (GNU_ABI_TAG_NETBSD): New tag. - (GNU_ABI_TAG_FREEBSD): New tag. - -2003-06-10 Richard Sandiford - - * h8.h (E_H8_MACH_H8300SXN): New flag. - -2003-06-03 Nick Clifton - - * v850.h (R_V850_32): Rename to R_V850_ABS32. - Add R_V850_REL32. - -2003-05-15 Roland McGrath - - * common.h (NT_AUXV, AT_*): New macros. - * external.h (Elf32_External_Auxv, Elf64_External_Auxv): New types. - * internal.h (Elf_Internal_Auxv): New type. - -2003-05-14 Michael Snyder - From Bernd Schmidt - * h8.h (E_H8_MACH_H8300SX): New. - -2003-04-24 Dhananjay Deshpande - - * h8.h (E_H8_MACH_H8300HN, E_H8_MACH_H8300SN): New - -2003-04-23 J"orn Rennecke - - * common.h (EM_SH): Amend comment to refer to SuperH. - -2003-04-22 Kazuhiro Inaoka - - * common.h: Replace references to Mitsubishi M32R with - references to Renesas M32R. - -2003-04-15 Rohit Kumar Srivastava - - * common.h: Replace occurrances of 'Hitachi' with 'Renesas'. - -2003-04-01 Bob Wilson - - * common.h (EM_XTENSA_OLD): Define. - * xtensa.h: New file. - -2003-04-01 Nick Clifton - - * arm.h (ARM_NOTE_SECTION): Include .gnu in the string. - -2003-03-25 Stan Cox - Nick Clifton - - Contribute support for Intel's iWMMXt chip - an ARM variant: - - * arm.h (ARM_NOTE_SECTION): Define. - -2003-03-03 J"orn Rennecke - - * sh.h (EF_SH_MERGE_MACH): Make sure SH2E & SH3/SH3E merge to SH3E, - and SH2E & SH4 merge to SH4, not SH2E. - -2003-02-21 Ian Wienand - - * ia64.h (SHT_IA_64_LOPSREG, SHT_IA_64_HIPSREG, - SHT_IA_64_PRIORITY_INIT): Define. - -2003-02-18 Alan Modra - - * ppc64.h (IS_PPC64_TLS_RELOC): Rename from IS_TLS_RELOC. - - * ppc.h: Replace DTPMOD64, TPREL64, DTPREL64 with DTPMOD32 etc. - (IS_PPC_TLS_RELOC): Define. - -2003-02-10 Nick Clifton - - * arm.h (EF_ARM_MAVERICK_FLOAT): Define. - -2003-02-05 Alan Modra - - * ppc.h: Add TLS relocs. Format. - * ppc64.h: Likewise. - -2003-01-27 Alexandre Oliva - - * mips.h (EF_MIPS_XGOT): Define. - -2003-01-24 Martin Schwidefsky - - * s390.h: Add s390 TLS relocations. - -2003-01-23 Nick Clifton - - * Add sh2e support: - - 2002-04-02 Alexandre Oliva - - * sh.h (EF_SH_MERGE_MACH): Handle SH2E. - - 2002-04-02 Elena Zannoni - - * sh.h (EF_SH2E): New. - -2003-01-23 Alan Modra - - * sh.h: Split out various bits to bfd/elf32-sh64.h. - -2003-01-20 Martin Schwidefsky - - * s390.h: Rename R_390_GOTOFF to R_390_GOTOFF32. Add new gotoff, - gotplt and pltoff relocations. - -2003-01-17 Alan Modra - - * common.h: Formatting, typo fixes. - (DT_ENCODING): Correct value. - -2003-01-17 Fabio Alemagna - - * common.h (ELFOSABI_AROS): Define. - (ELFOSABI_OPENVMS): Likewise. - (ELFOSABI_NSK): Likewise. - -2003-01-16 Alan Modra - - * ppc.h: Split out ppc64 definitions to.. - * pcc64.h: ..here. New file. - (R_PPC64_REL30): Rename from R_PPC64_ADDR30. - -2003-01-13 Dmitry Diky - - * elf/common.h (EM_MSP430): Change e_machine value to officially - assigned. - -2003-01-02 Ben Elliston - - * common.h (EM_IQ2000): Define. - * iq2000.h: New file. - -2002-12-30 Chris Demetriou - - * mips.h (E_MIPS_ARCH_32R2): New define. - -2002-12-24 Dmitry Diky - - * common.h: Define msp430 machine numbers. - * msp430.h: New file. Define msp430 relocs. - -2002-12-20 DJ Delorie - - * xstormy16.h: Add XSTORMY16_12. - -2002-12-16 Andrew MacLeod - - * xstormy16.h (START_RELOC_NUMBERS) Add relocation numbers - for R_XSTORMY16_LO16 and R_XSTORMY16_HI16. - -2002-12-10 James Cownie - - * dwarf2.h (DW_TAG_upc_shared_type, DW_TAG_upc_strict_type, - DW_TAG_upc_relaxed_type, DW_AT_upc_threads_scaled, DW_LANG_Upc): - Define. - -2002-12-01 Stephane Carrez - - * m68hc11.h (EF_M68HC12_MACH, EF_M68HCS12_MACH): Define. - (EF_M68HC11_MACH_MASK, EF_M68HC11_MACH): Define. - (EF_M68HC11_MERGE_MACH, EF_M68HC11_CAN_MERGE_MACH): Define. - -2002-11-30 Alan Modra - - * mmix.h: Replace boolean with bfd_boolean. - * sh.h: Likewise. - -2002-11-28 Alan Modra - - * internal.h (elf32_internal_ehdr, Elf32_Internal_Ehdr, - elf64_internal_ehdr, Elf64_Internal_Ehdr, elf32_internal_phdr, - Elf32_Internal_Phdr, elf64_internal_phdr, Elf64_Internal_Phdr, - elf32_internal_shdr, Elf32_Internal_Shdr, elf64_internal_shdr, - Elf64_Internal_Shdr, elf32_internal_sym, elf64_internal_sym, - Elf32_Internal_Sym, Elf64_Internal_Sym, Elf32_Internal_Note, - elf32_internal_note, elf32_internal_rel, Elf32_Internal_Rel, - elf64_internal_rel, Elf64_Internal_Rel, elf32_internal_rela, - elf64_internal_rela, Elf32_Internal_Rela, Elf64_Internal_Rela, - elf32_internal_dyn, elf64_internal_dyn, Elf32_Internal_Dyn, - Elf64_Internal_Dyn, elf32_internal_verdef, elf64_internal_verdef, - elf32_internal_verdaux, elf64_internal_verdaux, elf32_internal_verneed, - elf64_internal_verneed, elf32_internal_vernaux, elf64_internal_vernaux, - elf32_internal_versym, elf64_internal_versym, Elf32_Internal_Verdef, - Elf64_Internal_Verdef, Elf32_Internal_Verdaux, Elf64_Internal_Verdaux, - Elf32_Internal_Verneed, Elf64_Internal_Verneed, Elf32_Internal_Vernaux, - Elf64_Internal_Vernaux, Elf32_Internal_Versym, Elf64_Internal_Versym, - Elf32_Internal_Syminfo, Elf64_Internal_Syminfo): Delete. - (Elf_Internal_Rel): Delete. - -2002-10-11 Kaz Kojima - - * sh.h: Add SH TLS relocs. - -2002-09-30 Gavin Romig-Koch - Ken Raeburn - Aldy Hernandez - Eric Christopher - Richard Sandiford - - * mips.h (E_MIPS_MACH_4120, E_MIPS_MACH_5400, E_MIPS_MACH_5500): New. - -2002-09-12 Roland McGrath - - * dwarf2.h: Updates from GCC version of thie file: - (enum dwarf_location_atom): DW_OP_calli -> DW_OP_call_ref. - Add DW_OP_GNU_push_tls_address. - (DW_OP_lo_user): Change to 0xe0. - -2002-08-28 Catherine Moore - - * v850.h (R_V850_LONGCALL, R_V850_ALIGN, - R_V850_LONGJUMP): New relocations. - -2002-08-15 Alan Modra - - * i370.h: Define relocs using reloc-macros.h. - -2002-08-13 Stephane Carrez - - * m68hc11.h (E_M68HC12_BANKS, E_M68HC11_I32, E_M68HC11_F64, - EF_M68HC11_ABI): Define for ABI specification. - (STO_M68HC12_FAR, STO_M68HC12_INTERRUPT): Symbol flags for - linker and debugger. - (R_M68HC11_24, R_M68HC11_LO16, R_M68HC11_PAGE): New relocs. - (R_M68HC11_RL_JUMP, R_M68HC11_RL_GROUP): New reloc for linker - relaxation. - -2002-07-15 Denis Chertykov - Frank Ch. Eigler - Ben Elliston - Alan Lehotsky - John Healy - Graham Stott - Jeff Johnston - - * common.h (EM_IP2K): New macro. - (EM_IP2K_OLD): New macro. - * ip2k.h: New file. - -2002-07-01 Matt Thomas - - * vax.h: Rename EF_* to EF_VAX_*. - -2002-06-18 Dave Brolley - - From Catherine Moore, Michael Meissner, Dave Brolley: - * common.h (EM_CYGNUS_FRV): New macro. - * frv.h: New file. - -2002-06-06 Lars Brinkhoff - - * common.h: Change registry@sco.com to registry@caldera.com. - (EM_PDP10, EM_PDP11): Define. - -2002-06-04 Jason Thorpe - - * sh.h (_bfd_sh64_crange_qsort_cmpb, _bfd_sh64_crange_qsort_cmpl) - (_bfd_sh64_crange_bsearch_cmpb, _bfd_sh64_crange_bsearch_cmpl): New - prototypes. - -2002-06-01 Richard Henderson - - * alpha.h (LITUSE_ALPHA_ADDR, LITUSE_ALPHA_BASE, LITUSE_ALPHA_BYTOFF, - LITUSE_ALPHA_JSR, LITUSE_ALPHA_TLSGD, LITUSE_ALPHA_TLSLDM): New. - -2002-05-30 Richard Henderson - - * alpha.h (R_ALPHA_TLSGD, R_ALPHA_TLSLDM, R_ALPHA_DTPMOD64, - R_ALPHA_GOTDTPREL, R_ALPHA_DTPREL64, R_ALPHA_DTPRELHI, - R_ALPHA_DTPRELLO, R_ALPHA_DTPREL16, R_ALPHA_GOTTPREL, R_ALPHA_TPREL64, - R_ALPHA_TPRELHI, R_ALPHA_TPRELLO, R_ALPHA_TPREL16): New. - -2002-05-29 Matt Thomas - - * vax.h: New file - -2002-05-28 Kuang Hwa Lin - - * common.h (EM_DLX): Define. - * dlx.h: New file. - -2002-05-08 Jason Thorpe - - * common.h (NT_GNU_ABI_TAG): Define. - (GNU_ABI_TAG_LINUX): Define. - (GNU_ABI_TAG_HURD): Define. - (GNU_ABI_TAG_SOLARIS): Define. - (NT_NETBSD_IDENT): Define. - (NT_FREEBSD_ABI_TAG): Define. - -2002-04-24 Elena Zannoni - - * dwarf2.h: Add DW_AT_GNU_vector. - -2002-02-13 Matt Fredette - - * m68k.h (EF_M68000): Define. - -2002-02-12 Alan Modra - - * ppc.h (DT_PPC64_OPD, DT_PPC64_OPDSZ): Define. - -2002-02-09 Richard Henderson - - * alpha.h (R_ALPHA_BRSGP): New. - -2002-02-08 Alexandre Oliva - - Contribute sh64-elf. - 2002-01-23 Alexandre Oliva - * sh.h (R_SH_GOTPLT32, R_SH_GOT_LOW16, R_SH_GOT_MEDLOW16, - R_SH_GOT_MEDHI16, R_SH_GOT_HI16, R_SH_GOTPLT_LOW16, - R_SH_GOTPLT_MEDLOW16, R_SH_GOTPLT_MEDHI16, R_SH_GOTPLT_HI16, - R_SH_PLT_LOW16, R_SH_PLT_MEDLOW16, R_SH_PLT_MEDHI16, - R_SH_PLT_HI16, R_SH_GOTOFF_LOW16, R_SH_GOTOFF_MEDLOW16, - R_SH_GOTOFF_MEDHI16, R_SH_GOTOFF_HI16, R_SH_GOTPC_LOW16, - R_SH_GOTPC_MEDLOW16, R_SH_GOTPC_MEDHI16, R_SH_GOTPC_HI16, - R_SH_GOT10BY4, R_SH_GOTPLT10BY4, R_SH_GOT10BY8, - R_SH_GOTPLT10BY8, R_SH_COPY64, R_SH_GLOB_DAT64, R_SH_JMP_SLOT64, - R_SH_RELATIVE64): New relocs. - (R_SH_FIRST_INVALID_RELOC_4): Adjust. - 2001-05-16 Alexandre Oliva - * sh.h: Renumbered and renamed some SH5 relocations to match - official numbers and names; moved unmaching ones to the range - 0xf2-0xff. - 2001-01-06 Hans-Peter Nilsson - * sh.h (sh64_get_contents_type): Declare. - (sh64_address_is_shmedia): Likewise. - 2000-12-30 Hans-Peter Nilsson - * sh.h (sh64_elf_crange): New type. - (struct sh64_section_data): New. - (sh64_elf_section_data): New macro. - (EF_SH5): Rename back from EF_SH64. - 2000-12-18 Hans-Peter Nilsson - * sh.h (SHF_SH5_ISA32_MIXED, SHT_SH5_CR_SORTED, - SH64_CRANGES_SECTION_NAME, SH64_CRANGE_SIZE, - SH64_CRANGE_CR_ADDR_OFFSET, SH64_CRANGE_CR_SIZE_OFFSET, - SH64_CRANGE_CR_TYPE_OFFSET): New macros. - 2000-12-12 Hans-Peter Nilsson - * sh.h (EF_SH64): Don't define EF_SH64_ABI64. - 2000-11-27 Hans-Peter Nilsson - * sh.h (EF_SH64_32BIT_ABI, EF_SH64_64BIT_ABI): Delete. - (EF_SH64_ABI64): New. - 2000-11-23 Hans-Peter Nilsson - * sh.h (EF_SH64): Rename from EF_SH5. - (EF_SH64_32BIT_ABI): New. - (EF_SH64_64BIT_ABI): New. - (R_SH_PT_16, R_SH_SHMEDIA_CODE - R_SH_IMMU5, R_SH_IMMS6, R_SH_IMMU6, R_SH_IMMS10, R_SH_IMMS10BY2, - R_SH_IMMS10BY4, R_SH_IMMS10BY8, R_SH_IMMS16, R_SH_IMMU16, - R_SH_IMM_LOW16, R_SH_IMM_LOW16_PCREL, R_SH_IMM_MEDLOW16, - R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16, R_SH_IMM_MEDHI16_PCREL, - R_SH_IMM_HI16, R_SH_IMM_HI16_PCREL, R_SH_64, R_SH_64_PCREL): New - relocs. - 2000-09-01 Ben Elliston - * sh.h (EF_SH5): Define. - -2002-02-01 Hans-Peter Nilsson - - * mmix.h: Tweak comments. - (MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME): New. - [BFD_ARCH_SIZE] (_bfd_mmix_prepare_linker_allocated_gregs, - _bfd_mmix_finalize_linker_allocated_gregs, - _bfd_mmix_check_all_relocs): Provide prototypes. - -2002-01-31 Ivan Guzvinec - - * or32.h: New file. - * common.h: Add support for or32 targets. - -2002-01-28 Jason Merrill - - * dwarf2.h: Sync with gcc version. - -2002-01-16 Alan Modra - - * ppc.h (DT_PPC64_GLINK): Define. - -2002-01-15 Richard Earnshaw - - * arm.h (F_VFP_FLOAT, EF_ARM_VFP_FLOAT): Define. - -2002-01-09 Jason Thorpe - - * common.h: Update copyright years. - (NT_NETBSDCORE_PROCINFO): Define. - (NT_NETBSDCORE_FIRSTMACH): Define. - -2002-01-06 Steve Ellcey - - * ia64.h (ELF_STRING_ia64_unwind_hdr): New Macro for HP-UX. - (SHT_IA_64_HP_OPT_ANOT): Ditto - (PT_IA_64_HP_OPT_ANOT): Ditto - (PT_IA_64_HP_HSL_ANOT): Ditto - (PT_IA_64_HP_STACK): Ditto - (SHN_IA_64_ANSI_COMMON): Ditto - -2001-12-17 Alan Modra - - * external.h (Elf_External_Sym_Shndx): Declare. - * internal.h (struct elf_internal_sym ): Make it an - unsigned int. - * common.h (SHN_BAD): Define. - -2001-12-13 Jakub Jelinek - - * common.h (PT_GNU_EH_FRAME): Define. - -2001-12-11 Alan Modra - - * common.h (SHN_XINDEX): Comment typo fix. - * internal.h (Elf_Internal_Ehdr): Change existing "unsigned short" - size, count and index fields to "unsigned int". - -2001-12-07 Geoffrey Keating - Richard Henderson - - * common.h (EM_XSTORMY16): Define. - * xstormy16.h: New file. - -2001-11-15 Alan Modra - - * common.h (NT_ARCH): Define. Remove incorrect comment. - -2001-11-11 Geoffrey Keating - - * dwarf2.h (dwarf_line_number_ops): Add DWARF 3 opcodes. - -2001-10-30 Hans-Peter Nilsson - - * mmix.h: New file. - -2001-10-23 Alan Modra - - * internal.h: White space changes to keep lines under 80 chars. - -2001-10-16 Jeff Holcomb - - * internal.h (elf_internal_shdr): Make contents a unsigned char *. - -2001-09-18 Alan Modra - - * internal.h (elf_internal_rela): Make r_addend a bfd_vma. - -2001-09-13 Alexandre Oliva - - * common.h (EM_OPENRISC_OLD): Renamed the old EM_OPENRISC entry. - -2001-09-12 Alexandre Oliva - - * common.h (EM_AVR_OLD): Renamed from... - (EM_AVR): this, redefined as in the current ELF standard. - (EM_PJ_OLD): Renamed from... - (EM_PJ): this, redefined as in the current ELF standard. - (EM_R30, EM_D10V, EM_D30V, EM_V850, EM_M32R, EM_MN10300, - EM_MN10200, EM_OPENRISC, EM_ARC_A5, EM_XTENSA): Defined as in - the current ELF standard. - (EM_CYGNUS_ARC): Removed, unused for a long time. - -2001-09-04 Richard Henderson - - * alpha.h (R_ALPHA_OP*, R_ALPHA_IMMED*, R_ALPHA_GPVALUE): Remove. - (R_ALPHA_GPREL16): Rename from R_ALPHA_IMMED_GP_16. - -2001-08-30 Eric Christopher - - * mips.h: Remove E_MIPS_MACH_MIPS32_4K. - -2001-08-29 Jeff Law - - * h8.h (EF_H8_MACH): New mask for encoded machine type. - (E_H8_MACH_H8300, E_H8_MACH_H8300H, E_H8_MACH_H8300S): New - machine types. - -2001-08-26 J"orn Rennecke - - * h8.h: New file. - -2001-08-27 Staffan Ulfberg - - * ppc.h: Add relocs from the 64-bit PowerPC ELF ABI revision 1.2. - -2001-06-30 Daniel Berlin - - * dwarf2.h: Remerge with gcc version, - including all new DWARF 2.1 extensions. - -2001-06-29 James Cownie - - * dwarf2.h: Add DWARF 2.1 attribues. - -2001-06-15 Per Bothner - - * dwarf2.h: Partial merge with gcc version. - (enum dwarf_descrim_list): Fix typo -> dwarf_discrim_list. - (DW_LANG_Java): Use value from dwarf 2.1 draft (also used in gcc). - -2001-05-15 Ralf Baechle - - * common.h: Remove definition of EM_MIPS_RS4_BE. The constant was - never in active use and is used otherwise by the ABI. - -2001-05-11 Jakub Jelinek - - * ia64.h (ELF_STRING_ia64_unwind_once): Define. - (ELF_STRING_ia64_unwind_info_once): Define. - -2001-05-07 Thiemo Seufer - - * external.h: Fix typo. - * mips.h: Add/Extend many comments with reference to the MIPS ELF64 - spec v. 2.4, available at e.g. - ftp://oss.sgi.com/pub/linux/mips/doc/ABI/ELF64.ps. - (EF_MIPS_UCODE): Define. - (EF_MIPS_OPTIONS_FIRST): Define. - (EF_MIPS_ARCH_ASE): Define. - (EF_MIPS_ARCH_ASE_MDMX): Define. - (EF_MIPS_ARCH_ASE_M16): Define. - (SHF_MIPS_ADDR): Renamed SHF_MIPS_ADDR32. - (SHF_MIPS_STRING): Renamed SHF_MIPS_ADDR64. - (SHF_MIPS_NODUPES): Define. - (ELF64_MIPS_R_SSYM): New MIPS ELF 64 relocation info access macro. - (ELF64_MIPS_R_TYPE3): Likewise. - (ELF64_MIPS_R_TYPE2): Likewise. - (ELF64_MIPS_R_TYPE): Likewise. - (OHW_R10KLDL): Define. - -2001-04-24 Todd Fries - - * sparc.h: Fix typo. - -2001-04-20 Johan Rydberg - - * openrisc.h: New file. - * common.h (EM_OPENRISC): New constant. - -2001-04-23 Bo Thorsen - - * x86-64.h: Add vtable support. - -2001-03-23 Nick Clifton - - * mips.h: Remove extraneous whitespace. - -2001-03-22 Hans-Peter Nilsson - - * cris.h: Add leading comment about PC-relative location. - (R_CRIS_COPY, R_CRIS_GLOB_DAT, R_CRIS_JUMP_SLOT, R_CRIS_RELATIVE, - R_CRIS_16_GOT, R_CRIS_32_GOT, R_CRIS_16_GOTPLT, R_CRIS_32_GOTPLT, - R_CRIS_32_GOTREL, R_CRIS_32_PLT_GOTREL, R_CRIS_32_PLT_PCREL): - New relocs. - -2001-02-27 Philip Blundell - - * arm.h: Add new definitions from ARM document SWS ESPC 0003 B-01. - (EF_PIC, et al.): Rename to EF_ARM_xx. - -2001-02-09 Martin Schwidefsky - - * common.h: Add linux target for S/390. - * s390.h: New file. - -2001-01-11 Peter Targett - - * arc.h (E_ARC_MACH_ARC5, E_ARC_MACH_ARC6, E_ARC_MACH_ARC7, - E_ARC_MACH_ARC8): New definitions for cpu types. - - * common.h (EM_ARC): Change comment. - -2000-12-12 Nick Clifton - - * mips.h: Fix formatting. - -2000-12-11 Jeffrey A Law (law@cygnus.com) - - * hppa.h (DT_HP_*): Define relative to OLD_DT_LOOS for hpux - compatibility. - -2000-10-16 Chris Demetriou - - * mips.h (E_MIPS_ARCH_32): New constant. - (E_MIPS_MACH_MIPS32, E_MIPS_MACH_MIPS32_4K): Replace the - former with the latter. - - * mips.h (E_MIPS_ARCH_5, E_MIPS_ARCH_64): New definitions. - - * mips.h (E_MIPS_MACH_SB1): New constant. - -2000-11-30 Jan Hubicka - - * common.h (EM_X86_64): New macro. - * x86-64.h: New file. - -2000-11-27 Hans-Peter Nilsson - - * common.h (e_machine numbers): Clarify comments to describe how - EM_* constants are assigned. Move EM_PJ from official section to - ad-hoc section. - (EM_CRIS): Correct comment to match official description. - (EM_MMIX): Ditto. - -2000-11-22 Nick Clifton - - * common.h (EM_JAVELIN): New machine number. - (EM_FIREPATH): New machine number. - (EM_ZSP): New machine number. - (EM_MMIX): New machine number. - (EM_HUANY): New machine number. - (EM_PRISM): New machine number. - (SHT_GROUP): New section type. - (SHT_SYMTAB_SHNDX): New section type. - (SHF_GROUP): New section flag. - (SHN_XINDEX): New section index. - (GRP_COMDAT): New section group flag. - -2000-11-20 H.J. Lu - - * common.h (ELFOSABI_MONTEREY): Renamed to ... - (ELFOSABI_AIX): This. - -2000-11-16 Richard Henderson - - Update relocations per August psABI docs. - * ia64.h (R_IA64_SEGBASE): Remove. - (R_IA64_LTV*): Renumber to 0x74 to 0x77. - (R_IA64_EPLTMSB, R_IA64_EPLTLSB): Remove. - (R_IA64_TPREL14, R_IA64_TPREL64I): New. - (R_IA64_DTPMOD*): New. - (R_IA64_DTPREL*): New. - -2000-09-29 Hans-Peter Nilsson - - * cris.h (EF_CRIS_UNDERSCORE): New. - -2000-09-27 Alan Modra - - * hppa.h (R_PARISC_DIR14F): Add. - -2000-09-14 Alexandre Oliva - - * sh.h (R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT, - R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): Change - numbers to the range from 160 to 167. - (R_SH_FIRST_INVALID_RELOC): Adjust. - (R_SH_FIRST_INVALID_RELOC_2, R_SH_LAST_INVALID_RELOC_2): - New relocs to fill in the gap. - -2000-09-13 Anders Norlander - - * mips.h (E_MIPS_MACH_4K): New define. - -2000-09-05 Alan Modra - - * hppa.h: Fix a comment. - (R_PARISC_PCREL12F): Define. - (R_PARISC_GNU_VTENTRY): Define. - (R_PARISC_GNU_VTINHERIT): Define. - -2000-09-01 Alexandre Oliva - - * sh.h (R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT, - R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): New relocs. - (R_SH_FIRST_INVALID_RELOC): Adjust. - -2000-08-14 Jim Wilson - - * ia64.h (EF_IA_64_REDUCEDFP, EF_IA_64_CONS_GP, - EF_IA_64_NOFUNCDESC_CONS_GP, EF_IA_64_ABSOLUTE): Define. - -2000-08-07 Nick Clifton - - * ppc.h: Remove spurious CYGNUS LOCAL comments. - * v850.h: Likewise. - -2000-07-22 Jason Eckhardt - - * i860.h: New file. - (elf_i860_reloc_type): Defined ELF32 i860 relocations. - -2000-07-20 Hans-Peter Nilsson - - common.h (EM_CRIS): New machine number. - cris.h: New file. - -2000-07-19 H.J. Lu - - * common.h (DF_1_NODEFLIB): Renamed from DF_1_NODEPLIB. - -2000-07-19 H.J. Lu - - * common.h (DT_CHECKSUM): Set to 0x6ffffdf8. - (DTF_1_CONFEXP): It is 0x00000002 as suspected. - -2000-07-19 H.J. Lu - - * common.h (DT_FEATURE): Renamed from DT_FEATURE_1. - (DT_CONFIG): New. From Solaris 8. - (DT_DEPAUDIT): Likewise. - (DT_AUDIT): Likewise. - (DT_PLTPAD): Likewise. - (DT_MOVETAB): Likewise. - (DF_1_NODEPLIB): Likewise. - (DF_1_NODUMP): Likewise. - (DF_1_CONLFAT): Likewise. - (DT_CHECKSUM): Likewise. FIXME. Check the value on Solaris 8. - (DTF_1_CONFEXP): Likewise. - -2000-07-18 H.J. Lu - - * common.h (DT_FLAGS_1): Renamed from DT_1_FLAGS. - -2000-07-12 Alan Modra - - * internal.h (struct elf_internal_sym): Update comment for st_other. - -2000-07-10 Alan Modra - - * hppa.h: Add comments to all the relocs. - -2000-06-26 Marek Michalkiewicz - - * avr.h (E_AVR_MACH_AVR5): Define. - -2000-06-18 Stephane Carrez - - * m68hc11.h: New file, definitions for the Motorola 68hc11. - -2000-06-06 Alan Modra - - * reloc-macros.h (START_RELOC_NUMBERS): Don't define initial dummy - -1 valued enum. - (RELOC_NUMBER, FAKE_RELOC, EMPTY_RELOC): Append rather than - prepend comma. - (END_RELOC_NUMBERS): Give macro an arg to define as last enum. - - * alpha.h (R_ALPHA_max): Define via END_RELOC_NUMBERS rather than - with EMPTY_RELOC. - * arc.h (R_ARC_max): Likewise. - * avr.h (R_AVR_max): Likewise. - * fr30.h (R_FR30_max): Likewise. - * hppa.h (R_PARISC_UNIMPLEMENTED): Likewise. - * i960.h (R_960_max): Likewise. - * m32r.h (R_M32R_max): Likewise. - * m68k.h (R_68K_max): Likewise. - * mcore.h (R_MCORE_max): Likewise. - * mn10300.h (R_MN10300_MAX): Likewise. - * pj.h (R_PJ_max): Likewise. - * ppc.h (R_PPC_max): Likewise. - * sh.h (R_SH_max): Likewise. - * sparc.h (R_SPARC_max): Likewise. - * v850.h (R_V850_max): Likewise. - - * arm.h (R_ARM_max): Define via END_RELOC_NUMBERS. - * d10v.h (R_D10V_max): Likewise. - * d30v.h (R_D30V_max): Likewise. - * ia64.h (R_IA64_max): Likewise. - * mips.h (R_MIPS_maxext): Likewise. - * mn10200.h (R_MN10200_max): Likewise. - - * i386.h (R_386_max): Remove old RELOC_NUMBER definition, and - define via END_RELOC_NUMBERS. - -2000-06-03 Alan Modra - - * reloc-macros.h (START_RELOC_NUMBERS): Fix name clash for - !__STDC__ case. - (RELOC_NUMBER): Use ansi stringify if ALMOST_STDC defined. - -2000-05-22 Richard Henderson - - * ia64.h (R_IA64_PCREL60B, R_IA64_PCREL21BI): New. - (R_IA64_PCREL22, R_IA64_PCREL64I): New. - -2000-05-02 H.J. Lu - - * common.h (ELFOSABI_NONE): Renamed from ELFOSABI_SYSV. - (ELFOSABI_MODESTO): Defined. - (ELFOSABI_OPENBSD): Likewise. - -2000-04-21 Richard Henderson - David Mosberger - - * ia64.h: New file. - -2000-04-14 H.J. Lu - - * common.h (ELFOSABI_TRUE64): Renamed to ELFOSABI_TRU64. - -2000-04-14 H.J. Lu - - * common.h (ELFOSABI_NETBSD): Defined. - (ELFOSABI_HURD): Likewise. - (ELFOSABI_SOLARIS): Likewise. - (ELFOSABI_MONTEREY): Likewise. - (ELFOSABI_IRIX): Likewise. - (ELFOSABI_FREEBSD): Likewise. - (ELFOSABI_TRUE64): Likewise. - -2000-04-07 Nick Clifton - - * arm-oabi.h: Delete. - * arm.h: Merge in definitions of old reloc numbers from - arm-oabi.h. - -2000-04-06 Nick Clifton - - * arm.h (EF_ARM_SYMSARESORTED): Define. - (EF_ARM_EABIMASK): Define. - (EF_ARM_EABI_VERSION): Define. - (EF_ARM_EABI_UNKNOWN): Define. - (EF_ARM_EABI_VER1): Define. - (PF_ARM_PI): Define. - (PF_ARM_ABS): Define. - -2000-04-05 J"orn Rennecke - - * sh.h (R_SH_LOOP_START, R_SH_LOOP_END): New RELOC_NUMBERs. - -2000-03-27 Denis Chertykov - - * avr.h: New file. AVR ELF support for BFD. - * common.h: Add AVR magic number. - -2000-03-10 Geoffrey Keating - - * mips.h: Add R_MIPS_GNU_REL_HI16, R_MIPS_GNU_REL_LO16, - R_MIPS_GNU_REL16_S2, R_MIPS_PC64 and R_MIPS_PC32 relocation - numbers. - -2000-02-23 Linas Vepstas - - * i370.h: New file. - -2000-02-22 Nick Clifton - - * common.h (ELF_ST_OTHER): Remove definition. - (ELF32_ST_OTHER): Remove definition. - (ELF64_ST_OTHER): Remove definition. - -2000-02-22 H.J. Lu - - * common.h (ELFOSABI_LINUX): Define. - -2000-02-17 J"orn Rennecke - - * sh.h: (EF_SH_MACH_MASK, EF_SH_UNKNOWN, EF_SH1, EF_SH2): New macros. - (EF_SH3, EF_SH_HAS_DSP, EF_SH_DSP, EF_SH3_DSP): Likewise. - (EF_SH_HAS_FP, EF_SH3E, EF_SH4, EF_SH_MERGE_MACH): Likewise. - -2000-02-03 H.J. Lu - - * arm-oabi.h: Duplicate changes made to arm.h on Jan. 27, - 2000 by Thomas de Lellis . - -2000-01-27 Thomas de Lellis - - * arm.h (STT_ARM_TFUNC): Define in terms of STT_LOPROC. - (STT_ARM_16BIT): New flag. Denotes a label that was defined in - Thumb block but was does not identify a function. - -2000-01-20 Nick Clifton - - * common.h (EM_MCORE): Fix spelling of Motorola. - * mcore.h (EM_MCORE): Fix spelling of Motorola. - -2000-01-13 Nick Clifton - - * common.h (EM_S370): Change comment - this is now the IBM - System/370. - (EM_IA_64): Change comment - this is now the IA-64. - -2000-01-11 Nick Clifton - - * common.h (DT_ENCODING): Fix definition of this value. - (DT_LOOS): Fix definition of this value. - (DT_HIOS): Fix definition of this value. - (OLD_DT_LOOS): Value of DT_LOOS before Oct 4, 1999 draft - of ELF spec changed it. - (OLD_DT_HIOS): Value of DT_HIOS before Oct 4, 1999 draft - of ELF spec changed it. - -2000-01-10 Egor Duda - - * common.h (NT_WIN32PSTATUS): Define. (cygwin elf core dumps). - -1999-12-28 Nick Clifton - - * mips.h (STO_*): Redefine in terms of STV_* values now in - common.h. - -1999-12-27 Nick Clifton - - * common.h: Upgrade to match Oct4, 1999 Draft ELF ABI Spec. - (EM_MIPS_RS3_LE): New machine number. - (EM_RCE): New machine number. - (EM_MMA): New machine number. - (EM_PCP): New machine number. - (EM_NCPU): New machine number. - (EM_NDR1): New machine number. - (EM_STARCORE): New machine number. - (EM_ME16): New machine number. - (EM_ST100): New machine number. - (EM_TINYJ): New machine number. - (EM_FX66): New machine number. - (EM_ST9PLUS): New machine number. - (EM_ST7): New machine number. - (EM_68HC16): New machine number. - (EM_68HC11): New machine number. - (EM_68HC08): New machine number. - (EM_68HC05): New machine number. - (EM_SVX): New machine number. - (EM_VAX): New machine number. - (PF_MASKOS): Change value. - (SHT_INIT_ARRAY): New value for sh_type field. - (SHT_FINI_ARRAY): New value for sh_type field. - (SHT_PREINIT_ARRAY): New value for sh_type field. - (SHT_HIUSER): Change value. - (SHF_MERGE): New valye for sh_flags field. - (SHF_STRINGS): New valye for sh_flags field. - (SHF_INFO_LINK): New valye for sh_flags field. - (SHF_OS_NONCONFORMING): New valye for sh_flags field. - (SHF_MASKOS): Change value. - (ELF_ST_VISIBILITY): New macro. - (ELF_ST_OTHER): New macro. - (STT_COMMON): New symbol type. - (STV_DEFAULT): Value for symbol visibility. - (STV_INTERNAL): Value for symbol visibility. - (STV_HIDDEN): Value for symbol visibility. - (STV_PROTECTED): Value for symbol visibility. - (DT_RUNPATH): New dynamic section tag. - (DT_FLAGS): New dynamic section tag. - (DT_ENCODING): New dynamic section tag. - (DT_PREINIT_ARRAY): New dynamic section tag. - (DT_PREINIT_ARRAYSZ): New dynamic section tag. - (DT_LOPROC): New dynamic section tag index. - (DT_HIPROC): New dynamic section tag index. - (DF_ORIGIN): Value for dynamic section flag. - (DF_SYMBOLIC): Value for dynamic section flag. - (DF_TEXTREL): Value for dynamic section flag. - (DF_BIND_NOW): Value for dynamic section flag. - -1999-12-09 Fred Fish - - * i960.h (reloc-macros.h): Include using relative dir elf/. - * i386.h (reloc-macros.h): Include using relative dir elf/. - * hppa.h (reloc-macros.h): Include using relative dir elf/. - -1999-12-07 Jim Blandy - - * common.h (NT_PRXFPREG): New definition. - -Wed Dec 1 03:02:15 1999 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (E_MN10300_MACH_AM33): Define. - -Mon Oct 11 22:42:37 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h (PF_HP_PAGE_SIZE): Define. - (PF_HP_FAR_SHARED, PF_HP_NEAR_SHARED, PF_HP_CODE): Likewise. - (PF_HP_MODIFY, PF_HP_LAZYSWAP, PF_HP_SBP): Likewise. - -Mon Oct 4 17:42:38 1999 Doug Evans - - * m32r.h (E_M32RX_ARCH): Define. - -1999-09-15 Ulrich Drepper - - * hppa.h: Add DT_HP_GST_SIZE, DT_HP_GST_VERSION, and DT_HP_GST_HASHVAL. - -1999-09-04 Steve Chamberlain - - * pj.h: New file. - * common.h (EM_PJ): Define. - -1999-09-02 Ulrich Drepper - - * hppa.h: Add HPUX specific symbol type definitions. - - * hppa.h: Add HPUX specific dynamic and program header table - specific definitions. - -1999-08-31 Scott Bambrough - - * common.h (NT_TASKSTRUCT): Define. - -1999-07-16 Jakub Jelinek - - * sparc.h (EF_SPARC_SUN_US3): Define in Cheetah extensions - flag (as per SCD2.4.1). - -1999-07-16 Jakub Jelinek - - * sparc.h (ELF64_R_TYPE_DATA): Only use ELF64_R_TYPE bits, not - ELF64_R_SYM bits. - -1999-06-21 Philip Blundell - - * arm.h (EF_SOFT_FLOAT, F_SOFT_FLOAT): Define. - -1999-07-13 Andreas Schwab - - * m68k.h (EF_CPU32): Move definition inside multiple inclusion - guard. - -1999-07-08 Richard Henderson - - * sparc.h (ELF64_R_TYPE_DATA): Sign extend the value. - (ELF64_R_TYPE_INFO): Mask out all but low 24 bits of data. - (DT_SPARC_PLTFMT): Delete. - Based on a patch from Jakub Jelinek. - -Mon Jun 21 16:36:02 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h (elf_hppa_reloc_type): Renamed from elf32_hppa_reloc_type. - -1999-06-10 Jakub Jelinek - - * sparc.h (R_SPARC_max_std): Define. - -Wed Jun 9 15:16:34 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h: Update with various changes from newest PA ELF - specifications. - -1999-06-03 Ian Lance Taylor - - * common.h (EM_PPC64): Define. - -1999-06-02 Stu Grossman - - * dwarf.h: Add LANG_JAVA. - * dwarf2.h: Add DW_LANG_Java. - -1999-05-29 Nick Clifton - - * common.h (ELFOSABI_ARM): Define. - -1999-05-28 Nick Clifton - - * reloc-macros.h: Update comment. - -1999-05-28 Ian Lance Taylor - - * i960.h: New file. - -1999-05-16 Nick Clifton - - * mcore.h (R_MCORE_COPY): Define. - (R_MCORE_GLOB_DAT): Define. - (R_MCORE_JUMP_SLOT): Define. - -1999-05-15 Nick Clifton - - * mcore.h (R_MCORE_RELATIVE): Define. - -1999-05-05 Catherine Moore - - * m68k.h (EF_CPU32): Define. - -1999-04-21 Nick Clifton - - * reloc-macros.h (START_RELOC_NUMBERS): Prepend an underscore to - fake reloc entry name (if possible), in order to avoid conflicts - with typedefs of the same name. - -1999-04-16 Gavin Romig-Koch - - * mips.h (EF_MIPS_32BITMODE): New. - -1999-04-08 Nick Clifton - - * mcore.h: New header file. Defines for Motorola's MCore - processor. - -1999-04-08 Nick Clifton - - * common.h: Add new constants defined in: "System V Application - Binary Interface - DRAFT - April 29, 1998" found at the web site: - http://www.sco.com/developer/gabi/contents.html - - (EM_MMA): Removed. Replaced with EM_MCORE as Motorolla own this - value. - -1999-03-31 Nick Clifton - - * reloc-macros.h: Fixed to not generate an enum with a trailing - comma. - -1999-03-16 Gavin Romig-Koch - - * mips.h (E_MIPS_MACH_5000): New. - -1999-03-10 Ulrich Drepper - - * common.h: Add definitions for a few more Solaris ELF extensions. - -Thu Feb 18 18:58:26 1999 Ian Lance Taylor - - * external.h: Only use attribute if __GNUC__ is defined. - -1999-02-17 Nick Clifton - - Patch submitted by: Scott Bambrough - - * external.h: struct Elf_External_Versym must be packed on - ARM. Code uses sizeof(Elf_External_Versym) and assumes it is - equal to sizeof(char[2]). Reported by Jim Pick - -1999-02-02 Nick Clifton - - * dwarf2.h (DWARF2_External_ARange): New structure. - (DWARF2_Internal_ARange): New structure. - -Mon Feb 1 11:33:56 1999 Catherine Moore - - * arm.h: Renumber relocs to conform to standard. - (EF_NEW_ABI): Define. - (EF_OLD_ABI): Define. - * arm-oabi.h: New file. - -1999-01-28 Nick Clifton - - * fr30.h: Add R_FR30_GNU_VT{INHERIT,ENTRY} relocs. - -1999-01-27 Nick Clifton - - * dwarf2.h: Add typedefs for structures found in dwarf2 sections. - -1998-12-16 Gavin Romig-Koch - - * mips.h (E_MIPS_MACH_4111): New. - -1998-12-15 Gavin Romig-Koch - - * mips.h (EF_MIPS_ABI,E_MIPS_ABI_O32,E_MIPS_ABI_O64, - E_MIPS_ABI_EABI32,E_MIPS_ABI_EABI64): - -1998-12-03 Nick Clifton - - * fr30.h: Add R_FR30_48 reloc. - -1998-12-02 Ulrich Drepper - - * mips.h: Add external data type for conflict section. - - * mips.h: Add more LL_* options from Irix 6.5. - - * mips.h: Add R_MIPS_JALR and adjust R_MIPS_max appropriately. - -Mon Nov 30 15:25:58 1998 J"orn Rennecke - - * sh.h (elf_sh_reloc_type): Add R_SH_FIRST_INVALID_RELOC, - R_SH_LAST_INVALID_RELOC, R_SH_SWITCH8 and R_SH_max. - -Tue Nov 10 15:12:28 1998 Nick Clifton - - * common.h (EM_CYGNUS_FR30): Reduce to a 16 bit value. - -Tue Nov 10 15:17:28 1998 Catherine Moore - - * d10v.h: Add vtable relocs. - -Wed Nov 4 15:56:50 1998 Nick Clifton - - * common.h (EM_CYGNUS_FR30): New machine number. - - * fr30.h: New file: Definitions for the FR30. - -Fri Oct 30 11:54:15 1998 Catherine Moore - - From Philip Blundell : - * arm.h (R_ARM_COPY, et al.): New relocs, used by Linux for PIC. - (EF_ALIGN8): New flag. - -Tue Oct 20 11:19:50 1998 Ian Lance Taylor - - * common.h (NT_LWPSTATUS): Close comment accidentally left open. - -Mon Oct 19 20:24:11 1998 Catherine Moore - - * sh.h: Add vtable relocs. - -Mon Oct 19 01:44:42 1998 Felix Lee - - * common.h (NT_PSTATUS, NT_FPREGS, NT_PSINFO, - NT_LWPSTATUS,NT_LWPSINFO): added. - * internal.h (Elf_Internal_Note): new structure members. - -Fri Oct 16 14:11:25 1998 Catherine Moore - - * m32r.h: Add vtable relocs. - -Tue Oct 6 09:22:22 1998 Catherine Moore - - * sparc.h: Add vtable relocs. - -Mon Oct 5 09:39:22 1998 Catherine Moore - - * v850.h: Add vtable relocs. - -Sun Oct 4 21:17:51 1998 Ian Lance Taylor - - * i386.h (R_386_max): Change from 252 to 24. - -Mon Sep 21 12:24:44 1998 Catherine Moore - - * i386.h: Change vtable reloc numbers. - -Sun Sep 20 00:54:22 1998 Andreas Schwab - - * m68k.h: Add vtable relocs and R_68K_max. - -Tue Sep 15 09:56:49 CDT 1998 Catherine Moore - - * arm.h: Add vtable relocs. - -Mon Aug 31 11:25:27 1998 Catherine Moore - - * arm.h: Define STT_ARM_TFUNC. Remove ST_THUMB_xxxx - definitions. - -Sat Aug 29 22:25:51 1998 Richard Henderson - - * i386.h: Add vtable relocs. - -1998-08-25 16:42 Ulrich Drepper - - * common.h: Add SYMINFO_* macros to access Elf*_Syminfo information. - - * external.h: Add Elf_External_Syminfo definition. - - * internal.h: Add Elf_Internal_Syminfo, Elf32_Internal_Syminfo, - and Elf64_Syminfo definitions. - -Sun Aug 9 20:26:49 CDT 1998 Catherine Moore - - * arm.h: Add ST_THUMB definitions. - -Wed Aug 5 15:52:35 1998 Nick Clifton - - * arm.h: Add ELF header flags to specify compile time optins: - EF_INTERWORK: New flag. - EF_APCS_26: New flag. - EF_APCS_FLOAT: New flag. - EF_PIC: New flag. - -1998-07-31 21:28 Ulrich Drepper - - * mips.h: Add missing RHF_* constants. - -Fri Jul 31 10:01:40 1998 Catherine Moore - - * arm.h: Add R_ARM_THM_PC9 relocation. - -1998-07-30 16:25 Ulrich Drepper - - * common.h: Add new DT_* entries and there flag macros from Solaris. - -Tue Jul 28 18:14:07 1998 Stan Cox - - * sparc.h: (R_SPARC_REV32): Added for little endian data e.g. sparc 86x. - -Fri Jul 24 11:22:06 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.h: Add R_MN10300_24 relocation. - -1998-07-24 Ulrich Drepper - - * mips.h: Add MIPS64 relocation names and values. - -Wed Jul 22 19:29:00 Catherine Moore - - * arm.h: Rename relocations. - -1998-07-22 Ulrich Drepper - - * ppc.h: Define enum as elf_ppc_reloc_type. - -Wed Jul 22 16:22:11 1998 Nick Clifton - - * reloc-macros.h: New file. Provides relocation macros: - START_RELOC_NUMBERS, RELOC_NUMBER, FAKE_RELOC, EMPTY_RELOC and - END_RELOC_NUMBERS used by other elf header files. - - * alpha.h: Use reloc-macros.h. - * arc.h: Use reloc-macros.h. - * arm.h: Use reloc-macros.h. - * d10v.h: Use reloc-macros.h. - * d30v.h: Use reloc-macros.h. - * hppa.h: Use reloc-macros.h. - * i386.h: Use reloc-macros.h. - * m32r.h: Use reloc-macros.h. - * m68k.h: Use reloc-macros.h. - * mips.h: Use reloc-macros.h. - * mn10200.h: Use reloc-macros.h. - * mn10300.h: Use reloc-macros.h. - * ppc.h: Use reloc-macros.h. - * sh.h: Use reloc-macros.h. - * sparc.h: Use reloc-macros.h. - * v850.h: Use reloc-macros.h. - -1998-07-22 13:07 Ulrich Drepper - - * mn10300.h: Rewrite relocation definition using macros. - * mips.h: Likewise. - * ppc.h: Likewise. - * alpha.h: Likewise. - * arm.h: Likewise. - * d10v.h: Likewise. - * d30v.h: Likewise. - * m32r.h: Likewise. - * m68k.h: Likewise. - * mn10200.h: Likewise. - * sh.h: Likewise. - * sparc.h: Likewise. - -1998-07-21 13:07 Ulrich Drepper - - * arm.h: New file. - * d10v.h: New file. - * d30v.h: New file. - * i386.h: New file. - * m68k.h: New file. - * mn10200.h: New file. - * sh.h: New file. - - * mips.h: Add R_MIPS_* and SHT_MIPS_* entries. - - * mn10300.h: Add R_MN10300_* entries. - - * ppc.h: Add R_PPC_* entries. - -1998-07-20 07:11 Ulrich Drepper - - * mips.h: Add ODK_*, OEX_*, OPAD_*, OHW_*, and OGP_* constants. - Define Elf32_External_Lib. - -1998-07-19 15:24 Ulrich Drepper - - * mips.h (PT_MIPS_OPTIONS): New symbol. - Add lots of DT_MIPS_* symbols. - -Fri Jun 26 10:46:35 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.h: New file. - -Thu Jun 18 19:27:56 1998 Nick Clifton - - * common.h (EM_960, EM_V800, EM_FR20, EM_RH32, EM_MMA, - EM_OLD_ALPHA): Add these constants. - -Thu Jun 11 17:59:01 1998 Nick Clifton - - * common.h (EM_486, EM_S370): Add these constants. - -Tue Jun 9 09:35:29 1998 Nick Clifton - - * common.h (EM_ARM): Add this constant. - -Wed May 6 09:45:30 1998 Gavin Koch - - * mips.h (EF_MIPS_MACH,E_MIPS_MACH_*): Added. - -Sat Apr 25 18:35:06 1998 Richard Henderson - - * alpha.h (STO_ALPHA_NOPV, STO_ALPHA_STD_GPLOAD): New. - -Wed Apr 15 15:42:45 1998 Richard Henderson - - * common.h (EM_SPARC64): Move and rename to EM_OLD_SPARCV9. - (EM_SPARCV9): New. This is the official ABI name and number. - -Sat Feb 28 17:04:41 1998 Richard Henderson - - * alpha.h (EF_ALPHA_32BIT, EF_ALPHA_CANRELAX): New. - -Mon Dec 15 15:07:49 1997 Nick Clifton - - * m32r.h (EF_M32R_ARCH, E_M32R_ARCH): New flags to - specify machine architecture. - -Fri Dec 5 11:20:08 1997 Nick Clifton - - * v850.h: New constants: SHN_V850_SCOMMON, SHN_V850_TCOMMON, - SHN_V850_ZCOMMON, SHT_V850_SCOMMON, SHT_V850_TCOMMON, - SHT_V850_ZCOMMON to handle v850 common sections. - enum reloc_type renamed to v850_reloc_type to avoid name - conflict. - -Thu Oct 23 13:55:24 1997 Richard Henderson - - * sparc.h (enum elf_sparc_reloc_type): Add UA64 & UA16. - -Thu Oct 23 00:42:04 1997 Richard Henderson - - * sparc.h (DT_SPARC_REGISTER): New macro. - (DT_SPARC_PLTFMT): In support of old sparc64-linux .plts; will - go away soon. - -Tue Sep 30 13:26:58 1997 Doug Evans - - * sparc.h (EF_SPARC_HAL_R1, EF_SPARC_EXT_MASK): New macros. - (EF_SPARCV9_{MM,TSO,PSO,RMO}): New macros. - (SHN_BEFORE,SHN_AFTER): New macros. - (SHF_EXCLUDE,SHF_ORDERED): New macros. - (STT_REGISTER): New macro. - (R_SPARC_GLOB_JMP): Deleted, but slot reserved. - (R_SPARC_{DISP64,PLT64,HIX22,LOX10}): New relocations. - (R_SPARC_{H44,M44,L44,REGISTER}): New relocations. - (ELF64_R_TYPE_{DATA,ID,INFO}): New macros. - -Wed Sep 17 16:41:42 1997 Nick Clifton - - * v850.h: Add R_V850_CALLT_6_7_OFFSET and R_V850_CALLT_16_16_OFFSET. - -Tue Sep 16 14:16:17 1997 Nick Clifton - - * v850.h (reloc_type): Add R_V850_TDA_16_16_OFFSET. - -Wed Sep 3 15:11:14 1997 Richard Henderson - - * mips.h: Correct typo in comment. - -Wed Sep 3 11:25:57 1997 Nick Clifton - - * v850.h (reloc_type): Remove R_V850_16_PCREL. - -Tue Sep 2 17:41:05 1997 Nick Clifton - - * common.h: Remove magic number for V850E. - * common.h: Remove magic number for V850EA. - * v850.h: Add new flags for e_flags field in elf header. - -Mon Aug 25 16:06:47 1997 Nick Clifton - - * common.h (EM_CYGNUS_V850E): backend magic number for v850e. - * common.h (EM_CYGNUS_V850EA): backend magic number for v850ea. - -Mon Aug 18 11:05:23 1997 Nick Clifton - - * v850.h (reloc_type): Add 16 bit PC relative relocation. - -Fri Aug 15 05:10:09 1997 Doug Evans - - * arc.h (enum reloc): Move here from elf32-arc.c. - -Fri Aug 8 17:05:29 1997 Doug Evans - - * arc.h: New file. - * common.h (EM_CYGNUS_ARC): Define. - -Mon Jun 16 14:46:12 1997 Ian Lance Taylor - - * internal.h (Elf_Internal_Ehdr): Change e_phoff and e_shoff from - bfd_signed_vma to bfd_size_type, as they are not signed. - -Wed Mar 5 15:35:26 1997 Doug Evans - - * m32r.h (SHF_M32R_CAN_RELAX): Define. - -Mon Feb 24 17:49:01 1997 Ian Lance Taylor - - * external.h: Dump the 32/64 bit specific forms of the version - structures, and just define them as size independent. - - * common.h (VERSYM_HIDDEN, VERSYM_VERSION): Define. - -Fri Feb 21 13:00:34 1997 Doug Evans - - * m32r.h (enum reloc_type): Add R_M32R_SDA16. - (SHN_M32R_SCOMMON): Define. - -Wed Feb 19 15:35:31 1997 Ian Lance Taylor - - From Eric Youngdale : - * external.h, internal.h, common.h: Added new structures and - definitions for ELF versions. - -Tue Feb 18 17:40:36 1997 Martin M. Hunt - - * common.h (EM_CYGNUS_D30V): Define. - -Mon Jan 27 11:54:44 1997 Doug Evans - - * m32r.h (enum reloc_type): Add R_M32R_HI16_[SU]LO,R_M32R_LO16. - -Fri Jan 3 11:32:51 1997 Michael Meissner - - * v850.h (V850_OTHER_{TDA_BYTE,ERROR}): New bits for the st_other - field. - (SHN_V850_*): Remove v850 specific section indexes, which are not - needed. - (enum reloc_type): Move the v850 relocations here from - elf32-v850.c - -Thu Jan 2 19:30:23 1997 Michael Meissner - - * v850.h: New file, provide V850 specific definitions. - -Tue Dec 31 14:44:32 1996 Ian Lance Taylor - - * common.h (DT_AUXILIARY): Define. - (DT_FILTER): Define. - -Wed Dec 4 05:03:37 1996 Jason Merrill - - * dwarf2.h: Update. - -Tue Nov 26 10:44:47 1996 Ian Lance Taylor - - * mips.h (STO_MIPS16): Define. - -Tue Nov 12 15:45:42 1996 Martin M. Hunt - - * d10v.h: Remove empty file. - -Tue Oct 8 11:31:24 1996 Ian Lance Taylor - - * mips.h (EF_MIPS_ABI2): Define. - -Thu Oct 3 10:01:40 1996 Jeffrey A Law (law@cygnus.com) - - * common.h: Break mn10x00 support into mn10200 and mn10300. - -Wed Oct 2 21:26:43 1996 Jeffrey A Law (law@cygnus.com) - - * common.h (EM_CYGNUS_MN10x00): Define. - -Mon Sep 23 09:18:04 1996 Doug Evans - - * m32r.h: New file. - -Fri Aug 30 17:06:21 1996 Ian Lance Taylor - - * common.h (EM_SH): Define. - -Tue Aug 20 14:47:54 1996 J.T. Conklin - - * common.h (EM_CYGNUS_V850): Define. - -Mon Aug 19 10:59:10 1996 Doug Evans - - * common.h (EM_CYGNUS_M32R): Define. - -Mon Jul 22 18:59:55 1996 Ian Lance Taylor - - * mips.h (SHT_MIPS_IFACE, SHT_MIPS_CONTENT): Define. - (SHT_MIPS_SYMBOL_LIB): Define. - (SHF_MIPS_MERGE, SHF_MIPS_ADDR32, SHF_MIPS_ADDR64): Define. - (SHF_MIPS_NOSTRIP, SHF_MIPS_LOCAL, SHF_MIPS_NAMES): Define. - -Thu Jul 18 19:12:15 1996 Stan Shebs - - * dwarf2.h: New file. - -Jul 18 13:20:39 1996 Martin M. Hunt - - * common.h (EM_CYGNUS_D10V): Define. - * d10v.h: New file. - -Fri Jun 21 12:33:24 1996 Richard Henderson - - * alpha.h: New file. - * common.h (EM_ALPHA): Define. - -Fri May 31 17:28:05 1996 Ian Lance Taylor - - * mips.h (Elf_External_Options, Elf_Internal_Options): Define. - (bfd_mips_elf_swap_options_in): Declare. - (bfd_mips_elf_swap_options_out): Declare. - (ODK_*): Define. - (Elf64_External_RegInfo, Elf64_Internal_RegInfo): Define. - (bfd_mips_elf64_swap_reginfo_in): Declare. - (bfd_mips_elf64_swap_reginfo_out): Declare. - -Thu May 30 12:35:57 1996 Ian Lance Taylor - - * mips.h (E_MIPS_ARCH_4): Define. - -Wed May 29 15:35:33 1996 Ian Lance Taylor - - * mips.h (Elf64_Mips_External_Rel): Define. - (Elf64_Mips_Internal_Rel): Define. - (Elf64_Mips_External_Rela, Elf64_Mips_Internal_Rela): Define. - (RSS_*): Define. - -Mon Apr 22 18:26:30 1996 Doug Evans - - * sparc.h (R_SPARC_[56]): Always define. - -Mon Feb 19 01:55:56 1996 Doug Evans - - * sparc.h (R_SPARC_{PLT32,HIPLT22,LOPLT10,PCPLT32,PCPLT22, - PCPLT10,5,6}): Don't define ifdef SPARC64_OLD_RELOCS. - -Tue Feb 6 11:33:58 1996 Doug Evans - - * sparc.h (enum sparc_elf_reloc_type): Define. - -Wed Jan 17 09:09:16 1996 Doug Evans - - * common.h: Define EM_SPARC32PLUS. - * sparc.h: New file. - -Thu Jan 11 16:27:34 1996 Michael Meissner - - * ppc.h (SHF_EXCLUDE, SHT_ORDERED): New fields from the abi. - -Thu Nov 30 16:47:18 1995 Ian Lance Taylor - - * internal.h (struct elf_segment_map): Add includes_filehdr and - includes_phdrs fields. - -Tue Nov 28 16:58:10 1995 Ian Lance Taylor - - * internal.h (struct elf_segment_map): Define. - -Tue Oct 31 15:19:36 1995 Fred Fish - - * common.h, dwarf.h, external.h, hppa.h, internal.h, - mips.h, ppc.h: Protect against multiple inclusions. - -Thu Sep 21 13:51:58 1995 Michael Meissner - - * ppc.h (EF_PPC_RELOCATABLE_LIB): Add new flag bit. - -Fri Sep 1 15:32:17 1995 Kazumoto Kojima - - * mips.h: Add some definitions used on Irix 5. - -Tue Jun 20 10:18:28 1995 Jeff Law (law@snake.cs.utah.edu) - - * hppa.h (CPU_PA_RISC1_0): Protect from redefinitions. - (CPU_PA_RISC1_1): Likewise. - -Wed Mar 8 18:14:37 1995 Michael Meissner - - * ppc.h: New file for PowerPC support. - -Tue Feb 14 13:59:13 1995 Michael Meissner - - * common.h (EM_PPC): Use offical value of 20, not 17. - (EM_PPC_OLD): Define this to be the old value of EM_PPC. - -Tue Jan 24 09:40:59 1995 Michael Meissner - - * common.h (EM_PPC): New macro, PowerPC machine id. - -Tue Jan 17 10:51:38 1995 Ian Lance Taylor - - * mips.h (SHT_MIPS_MSYM, SHT_MIPS_DWARF, SHT_MIPS_EVENTS): Define. - -Mon Oct 17 13:43:59 1994 Ian Lance Taylor - - * internal.h (Elf_Internal_Shdr): Remove rawdata and size fields. - Add bfd_section field. - -Tue May 24 16:11:50 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h (Elf32_External_gptab): Define. - -Mon May 16 13:22:04 1994 Jeff Law (law@snake.cs.utah.edu) - - * common.h (EM_HPPA): Delete. - (EM_PARISC): Add. - * hppa.h: New file. - -Mon May 9 13:27:03 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * common.h (SHN_LORESERVE): Rename from SHN_LORESERV. - (ELF32_R_TYPE, ELF32_R_INFO): Don't rely on size of unsigned char. - (ELF64_R_TYPE): Don't rely on size of unsigned long. - -Mon Apr 25 15:53:09 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * internal.h (Elf_Internal_Shdr): Use PTR, not void *. - -Fri Mar 11 00:34:59 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) - - * mips.h (SHN_MIPS_TEXT, SHN_MIPS_DATA): Define. - -Sat Mar 5 14:08:54 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) - - * internal.h: Remove Elf32_*, Elf64_* typedefs. These names - cause conflicts with system headers, e.g. link.h in gdb/solib.c. - Combine 32- and 64-bit versions of *_Internal_Dyn. - * common.h: Replace uses of Elf64_Word, Elf64_Xword typedefs - by their expansion. - * mips.h: Replace uses of Elf32_Word, Elf32_Sword, Elf32_Addr - typedefs by their expansion. Add DT_MIPS_RLD_MAP definition. - -Fri Feb 18 10:39:54 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * common.h (EM_CYGNUS_POWERPC): Define. This may be temporary, - depending upon how quickly I can find a real PowerPC ABI. - -Mon Feb 7 08:27:13 1994 Jim Kingdon (kingdon@lioth.cygnus.com) - - * internal.h: Change HOST_64_BIT to BFD_HOST_64_BIT. - -Wed Feb 2 14:12:18 1994 Jim Kingdon (kingdon@lioth.cygnus.com) - - * common.h: Add comments regarding value of EM_HPPA and how to - pick an unofficial value. - -Wed Nov 17 17:14:26 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h (SHT_MIPS_OPTIONS): Define. - -Mon Nov 8 17:57:00 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h: Added some more MIPS ABI macro definitions. - -Wed Nov 3 22:07:17 1993 Ken Raeburn (raeburn@rtl.cygnus.com) - - * common.h (EM_MIPS_RS4_BE): New macro. - -Tue Oct 12 07:28:18 1993 Ian Lance Taylor (ian@cygnus.com) - - * mips.h: New file. MIPS ABI specific information. - -Mon Jun 21 13:13:43 1993 Ken Raeburn (raeburn@poseidon.cygnus.com) - - * internal.h: Combined 32- and 64-bit versions of all structures - except *_Internal_Dyn. This will simply the assembler interface, - and some bfd code. - -Tue May 25 02:00:16 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) - - * external.h, internal.h, common.h: Added 64-bit versions of some - structures and macros. Renamed old versions to put "32" in the - name. Some are unchanged. - -Thu Apr 29 12:12:20 1993 Ken Raeburn (raeburn@deneb.cygnus.com) - - * common.h (EM_HPPA, NT_VERSION, STN_UNDEF, DT_*): New macros. - * external.h (Elf_External_Dyn): New type. - - * internal.h (Elf_Intenral_Shdr): New field `size'. - (Elf_Internal_Dyn): New type. - -Tue Apr 20 16:03:45 1993 Fred Fish (fnf@cygnus.com) - - * dwarf.h (LANG_CHILL): Change value to one randomly picked in - the user defined range, to reduce probability of collisions. - -Sun Nov 15 09:34:02 1992 Fred Fish (fnf@cygnus.com) - - * dwarf.h (AT_src_coords): Whitespace change only. - * dwarf.h (AT_body_begin, AT_body_end, LANG_MODULA2): - Add from latest gcc. - * dwarf.h (LANG_CHILL): Add as GNU extension. - -Sat Aug 1 13:46:53 1992 Fred Fish (fnf@cygnus.com) - - * dwarf.h: Replace with current version from gcc distribution. - -Fri Jun 19 19:05:09 1992 John Gilmore (gnu at cygnus.com) - - * internal.h: Add real struct tags to all the Type_Defs, so they - can be used in prototypes where the Type_Defs are not known. - -Fri Apr 3 20:58:58 1992 Mark Eichin (eichin at cygnus.com) - - * common.h: added ELF_R_{SYM,TYPE,INFO} for handling relocation - info - added EM_MIPS, and corrected value of EM_860 based on System V ABI - manual. - - * external.h: added Elf_External_{Rel,Rela}. - - * internal.h: added Elf_Internal_{Rel,Rela}. - added rawdata to Elf_Internal_Shdr. - -Sat Nov 30 20:43:59 1991 Steve Chamberlain (sac at rtl.cygnus.com) - - * common.h, dwarf.h, external.h, internal.h, ChangeLog; moved from - ../elf- - - -Copyright (C) 1991-2003 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - -Local Variables: -mode: change-log -left-margin: 8 -fill-column: 74 -version-control: never -End: diff --git a/include/elf/aarch64.h b/include/elf/aarch64.h deleted file mode 100644 index 4101603..0000000 --- a/include/elf/aarch64.h +++ /dev/null @@ -1,327 +0,0 @@ -/* AArch64 ELF support for BFD. - - Copyright 2009, 2010, 2011, 2012 Free Software Foundation, Inc. - Contributed by ARM Ltd. - - This file is part of GNU Binutils. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the license, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING3. If not, - see . */ - -#ifndef _ELF_AARCH64_H -#define _ELF_AARCH64_H - -#include "elf/reloc-macros.h" - -/* Processor specific program header types. */ -#define PT_AARCH64_ARCHEXT (PT_LOPROC + 0) - -/* Additional section types. */ -#define SHT_AARCH64_ATTRIBUTES 0x70000003 /* Section holds attributes. */ - -/* AArch64-specific values for sh_flags. */ -#define SHF_ENTRYSECT 0x10000000 /* Section contains an - entry point. */ -#define SHF_COMDEF 0x80000000 /* Section may be multiply defined - in the input to a link step. */ - -/* Relocation types. */ - -START_RELOC_NUMBERS (elf_aarch64_reloc_type) - -/* Null relocations. */ -RELOC_NUMBER (R_AARCH64_NONE, 0) /* No reloc */ - -/* Basic data relocations. */ - -/* .word: (S+A) */ -RELOC_NUMBER (R_AARCH64_P32_ABS32, 1) - -/* .half: (S+A) */ -RELOC_NUMBER (R_AARCH64_P32_ABS16, 2) - -/* .word: (S+A-P) */ -RELOC_NUMBER (R_AARCH64_P32_PREL32, 3) - -/* .half: (S+A-P) */ -RELOC_NUMBER (R_AARCH64_P32_PREL16, 4) - -/* Group relocations to create a 16, 32, 48 or 64 bit - unsigned data or abs address inline. */ - -/* MOV[ZK]: ((S+A) >> 0) & 0xffff */ -RELOC_NUMBER (R_AARCH64_P32_MOVW_UABS_G0, 5) - -/* MOV[ZK]: ((S+A) >> 0) & 0xffff */ -RELOC_NUMBER (R_AARCH64_P32_MOVW_UABS_G0_NC, 6) - -/* MOV[ZK]: ((S+A) >> 16) & 0xffff */ -RELOC_NUMBER (R_AARCH64_P32_MOVW_UABS_G1, 7) - -/* Group relocations to create high part of a 16, 32, 48 or 64 bit - signed data or abs address inline. Will change instruction - to MOVN or MOVZ depending on sign of calculated value. */ - -/* MOV[ZN]: ((S+A) >> 0) & 0xffff */ -RELOC_NUMBER (R_AARCH64_P32_MOVW_SABS_G0, 8) - -/* Relocations to generate 19, 21 and 33 bit PC-relative load/store - addresses: PG(x) is (x & ~0xfff). */ - -/* LD-lit: ((S+A-P) >> 2) & 0x7ffff */ -RELOC_NUMBER (R_AARCH64_P32_LD_PREL_LO19, 9) - -/* ADR: (S+A-P) & 0x1fffff */ -RELOC_NUMBER (R_AARCH64_P32_ADR_PREL_LO21, 10) - -/* ADRH: ((PG(S+A)-PG(P)) >> 12) & 0x1fffff */ -RELOC_NUMBER (R_AARCH64_P32_ADR_PREL_PG_HI21, 11) - -/* ADD: (S+A) & 0xfff */ -RELOC_NUMBER (R_AARCH64_P32_ADD_ABS_LO12_NC, 12) - -/* LD/ST8: (S+A) & 0xfff */ -RELOC_NUMBER (R_AARCH64_P32_LDST8_ABS_LO12_NC, 13) - -/* LD/ST16: (S+A) & 0xffe */ -RELOC_NUMBER (R_AARCH64_P32_LDST16_ABS_LO12_NC, 14) - -/* LD/ST32: (S+A) & 0xffc */ -RELOC_NUMBER (R_AARCH64_P32_LDST32_ABS_LO12_NC, 15) - -/* LD/ST64: (S+A) & 0xff8 */ -RELOC_NUMBER (R_AARCH64_P32_LDST64_ABS_LO12_NC, 16) - -/* LD/ST128: (S+A) & 0xff0 */ -RELOC_NUMBER (R_AARCH64_P32_LDST128_ABS_LO12_NC, 17) - -/* Relocations for control-flow instructions. */ - -/* TBZ/NZ: ((S+A-P) >> 2) & 0x3fff. */ -RELOC_NUMBER (R_AARCH64_P32_TSTBR14, 18) - -/* B.cond: ((S+A-P) >> 2) & 0x7ffff. */ -RELOC_NUMBER (R_AARCH64_P32_CONDBR19, 19) - -/* B: ((S+A-P) >> 2) & 0x3ffffff. */ -RELOC_NUMBER (R_AARCH64_P32_JUMP26, 20) - -/* BL: ((S+A-P) >> 2) & 0x3ffffff. */ -RELOC_NUMBER (R_AARCH64_P32_CALL26, 21) - - -RELOC_NUMBER (R_AARCH64_P32_GOT_LD_PREL19, 25) -RELOC_NUMBER (R_AARCH64_P32_ADR_GOT_PAGE, 26) -RELOC_NUMBER (R_AARCH64_P32_LD32_GOT_LO12_NC, 27) - - -RELOC_NUMBER (R_AARCH64_P32_TLSGD_ADR_PAGE21, 81) -RELOC_NUMBER (R_AARCH64_P32_TLSGD_ADD_LO12_NC, 82) -RELOC_NUMBER (R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21, 103) -RELOC_NUMBER (R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC, 104) -RELOC_NUMBER (R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19, 105) -RELOC_NUMBER (R_AARCH64_P32_TLSLE_MOVW_TPREL_G1, 106) -RELOC_NUMBER (R_AARCH64_P32_TLSLE_MOVW_TPREL_G0, 107) -RELOC_NUMBER (R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC, 108) -RELOC_NUMBER (R_AARCH64_P32_TLSLE_ADD_TPREL_HI12, 109) -RELOC_NUMBER (R_AARCH64_P32_TLSLE_ADD_TPREL_LO12, 110) -RELOC_NUMBER (R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC, 111) - -RELOC_NUMBER (R_AARCH64_P32_TLSDESC_LD_PREL19, 122) -RELOC_NUMBER (R_AARCH64_P32_TLSDESC_ADR_PREL21, 123) -RELOC_NUMBER (R_AARCH64_P32_TLSDESC_ADR_PAGE21, 124) -RELOC_NUMBER (R_AARCH64_P32_TLSDESC_LD32_LO12_NC, 125) -RELOC_NUMBER (R_AARCH64_P32_TLSDESC_ADD_LO12_NC, 126) -RELOC_NUMBER (R_AARCH64_P32_TLSDESC_CALL, 127) - -/* Dynamic relocations */ - -/* Copy symbol at runtime. */ -RELOC_NUMBER (R_AARCH64_P32_COPY, 180) - -/* Create GOT entry. */ -RELOC_NUMBER (R_AARCH64_P32_GLOB_DAT, 181) - - /* Create PLT entry. */ -RELOC_NUMBER (R_AARCH64_P32_JUMP_SLOT, 182) - -/* Adjust by program base. */ -RELOC_NUMBER (R_AARCH64_P32_RELATIVE, 183) -RELOC_NUMBER (R_AARCH64_P32_TLS_DTPMOD, 184) -RELOC_NUMBER (R_AARCH64_P32_TLS_DTPREL, 185) -RELOC_NUMBER (R_AARCH64_P32_TLS_TPREL, 186) -RELOC_NUMBER (R_AARCH64_P32_TLSDESC, 187) -RELOC_NUMBER (R_AARCH64_P32_IRELATIVE, 188) - -RELOC_NUMBER (R_AARCH64_NULL, 256) /* No reloc */ - -/* Basic data relocations. */ - -/* .xword: (S+A) */ -RELOC_NUMBER (R_AARCH64_ABS64, 257) - -/* .word: (S+A) */ -RELOC_NUMBER (R_AARCH64_ABS32, 258) - -/* .half: (S+A) */ -RELOC_NUMBER (R_AARCH64_ABS16, 259) - -/* .xword: (S+A-P) */ -RELOC_NUMBER (R_AARCH64_PREL64, 260) - -/* .word: (S+A-P) */ -RELOC_NUMBER (R_AARCH64_PREL32, 261) - -/* .half: (S+A-P) */ -RELOC_NUMBER (R_AARCH64_PREL16, 262) - -/* Group relocations to create a 16, 32, 48 or 64 bit - unsigned data or abs address inline. */ - -/* MOV[ZK]: ((S+A) >> 0) & 0xffff */ -RELOC_NUMBER (R_AARCH64_MOVW_UABS_G0, 263) - -/* MOV[ZK]: ((S+A) >> 0) & 0xffff */ -RELOC_NUMBER (R_AARCH64_MOVW_UABS_G0_NC, 264) - -/* MOV[ZK]: ((S+A) >> 16) & 0xffff */ -RELOC_NUMBER (R_AARCH64_MOVW_UABS_G1, 265) - -/* MOV[ZK]: ((S+A) >> 16) & 0xffff */ -RELOC_NUMBER (R_AARCH64_MOVW_UABS_G1_NC, 266) - -/* MOV[ZK]: ((S+A) >> 32) & 0xffff */ -RELOC_NUMBER (R_AARCH64_MOVW_UABS_G2, 267) - -/* MOV[ZK]: ((S+A) >> 32) & 0xffff */ -RELOC_NUMBER (R_AARCH64_MOVW_UABS_G2_NC, 268) - -/* MOV[ZK]: ((S+A) >> 48) & 0xffff */ -RELOC_NUMBER (R_AARCH64_MOVW_UABS_G3, 269) - -/* Group relocations to create high part of a 16, 32, 48 or 64 bit - signed data or abs address inline. Will change instruction - to MOVN or MOVZ depending on sign of calculated value. */ - -/* MOV[ZN]: ((S+A) >> 0) & 0xffff */ -RELOC_NUMBER (R_AARCH64_MOVW_SABS_G0, 270) - -/* MOV[ZN]: ((S+A) >> 16) & 0xffff */ -RELOC_NUMBER (R_AARCH64_MOVW_SABS_G1, 271) - -/* MOV[ZN]: ((S+A) >> 32) & 0xffff */ -RELOC_NUMBER (R_AARCH64_MOVW_SABS_G2, 272) - -/* Relocations to generate 19, 21 and 33 bit PC-relative load/store - addresses: PG(x) is (x & ~0xfff). */ - -/* LD-lit: ((S+A-P) >> 2) & 0x7ffff */ -RELOC_NUMBER (R_AARCH64_LD_PREL_LO19, 273) - -/* ADR: (S+A-P) & 0x1fffff */ -RELOC_NUMBER (R_AARCH64_ADR_PREL_LO21, 274) - -/* ADRH: ((PG(S+A)-PG(P)) >> 12) & 0x1fffff */ -RELOC_NUMBER (R_AARCH64_ADR_PREL_PG_HI21, 275) - -/* ADRH: ((PG(S+A)-PG(P)) >> 12) & 0x1fffff */ -RELOC_NUMBER (R_AARCH64_ADR_PREL_PG_HI21_NC, 276) - -/* ADD: (S+A) & 0xfff */ -RELOC_NUMBER (R_AARCH64_ADD_ABS_LO12_NC, 277) - -/* LD/ST8: (S+A) & 0xfff */ -RELOC_NUMBER (R_AARCH64_LDST8_ABS_LO12_NC, 278) - -/* Relocations for control-flow instructions. */ - -/* TBZ/NZ: ((S+A-P) >> 2) & 0x3fff. */ -RELOC_NUMBER (R_AARCH64_TSTBR14, 279) - -/* B.cond: ((S+A-P) >> 2) & 0x7ffff. */ -RELOC_NUMBER (R_AARCH64_CONDBR19, 280) - -/* 281 unused */ - -/* B: ((S+A-P) >> 2) & 0x3ffffff. */ -RELOC_NUMBER (R_AARCH64_JUMP26, 282) - -/* BL: ((S+A-P) >> 2) & 0x3ffffff. */ -RELOC_NUMBER (R_AARCH64_CALL26, 283) - -/* LD/ST16: (S+A) & 0xffe */ -RELOC_NUMBER (R_AARCH64_LDST16_ABS_LO12_NC, 284) - -/* LD/ST32: (S+A) & 0xffc */ -RELOC_NUMBER (R_AARCH64_LDST32_ABS_LO12_NC, 285) - -/* LD/ST64: (S+A) & 0xff8 */ -RELOC_NUMBER (R_AARCH64_LDST64_ABS_LO12_NC, 286) - -/* LD/ST128: (S+A) & 0xff0 */ -RELOC_NUMBER (R_AARCH64_LDST128_ABS_LO12_NC, 299) - -RELOC_NUMBER (R_AARCH64_GOT_LD_PREL19, 309) -RELOC_NUMBER (R_AARCH64_ADR_GOT_PAGE, 311) -RELOC_NUMBER (R_AARCH64_LD64_GOT_LO12_NC, 312) - -RELOC_NUMBER (R_AARCH64_TLSGD_ADR_PAGE21, 513) -RELOC_NUMBER (R_AARCH64_TLSGD_ADD_LO12_NC, 514) -RELOC_NUMBER (R_AARCH64_TLSIE_MOVW_GOTTPREL_G1, 539) -RELOC_NUMBER (R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC, 540) -RELOC_NUMBER (R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21, 541) -RELOC_NUMBER (R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC, 542) -RELOC_NUMBER (R_AARCH64_TLSIE_LD_GOTTPREL_PREL19, 543) -RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G2, 544) -RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G1, 545) -RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G1_NC, 546) -RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G0, 547) -RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G0_NC, 548) -RELOC_NUMBER (R_AARCH64_TLSLE_ADD_TPREL_HI12, 549) -RELOC_NUMBER (R_AARCH64_TLSLE_ADD_TPREL_LO12, 550) -RELOC_NUMBER (R_AARCH64_TLSLE_ADD_TPREL_LO12_NC, 551) - -RELOC_NUMBER (R_AARCH64_TLSDESC_LD_PREL19, 560) -RELOC_NUMBER (R_AARCH64_TLSDESC_ADR_PREL21, 561) -RELOC_NUMBER (R_AARCH64_TLSDESC_ADR_PAGE21, 562) -RELOC_NUMBER (R_AARCH64_TLSDESC_LD64_LO12_NC, 563) -RELOC_NUMBER (R_AARCH64_TLSDESC_ADD_LO12_NC, 564) -RELOC_NUMBER (R_AARCH64_TLSDESC_OFF_G1, 565) -RELOC_NUMBER (R_AARCH64_TLSDESC_OFF_G0_NC, 566) -RELOC_NUMBER (R_AARCH64_TLSDESC_LDR, 567) -RELOC_NUMBER (R_AARCH64_TLSDESC_ADD, 568) -RELOC_NUMBER (R_AARCH64_TLSDESC_CALL, 569) - -/* Dynamic relocations */ - -/* Copy symbol at runtime. */ -RELOC_NUMBER (R_AARCH64_COPY, 1024) - -/* Create GOT entry. */ -RELOC_NUMBER (R_AARCH64_GLOB_DAT, 1025) - - /* Create PLT entry. */ -RELOC_NUMBER (R_AARCH64_JUMP_SLOT, 1026) - -/* Adjust by program base. */ -RELOC_NUMBER (R_AARCH64_RELATIVE, 1027) -RELOC_NUMBER (R_AARCH64_TLS_DTPMOD, 1028) -RELOC_NUMBER (R_AARCH64_TLS_DTPREL, 1029) -RELOC_NUMBER (R_AARCH64_TLS_TPREL, 1030) -RELOC_NUMBER (R_AARCH64_TLSDESC, 1031) -RELOC_NUMBER (R_AARCH64_IRELATIVE, 1032) - -END_RELOC_NUMBERS (R_AARCH64_end) - -#endif /* _ELF_AARCH64_H */ diff --git a/include/elf/alpha.h b/include/elf/alpha.h deleted file mode 100644 index f4fe566..0000000 --- a/include/elf/alpha.h +++ /dev/null @@ -1,131 +0,0 @@ -/* ALPHA ELF support for BFD. - Copyright 1996, 1998, 2000, 2001, 2002, 2010 Free Software Foundation, Inc. - - By Eric Youngdale, . No processor supplement available - for this platform. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file holds definitions specific to the ALPHA ELF ABI. Note - that most of this is not actually implemented by BFD. */ - -#ifndef _ELF_ALPHA_H -#define _ELF_ALPHA_H - -/* Processor specific flags for the ELF header e_flags field. */ - -/* All addresses must be below 2GB. */ -#define EF_ALPHA_32BIT 0x00000001 - -/* All relocations needed for relaxation with code movement are present. */ -#define EF_ALPHA_CANRELAX 0x00000002 - -/* Processor specific section flags. */ - -/* This section must be in the global data area. */ -#define SHF_ALPHA_GPREL 0x10000000 - -/* Section contains some sort of debugging information. The exact - format is unspecified. It's probably ECOFF symbols. */ -#define SHT_ALPHA_DEBUG 0x70000001 - -/* Section contains register usage information. */ -#define SHT_ALPHA_REGINFO 0x70000002 - -/* A section of type SHT_MIPS_REGINFO contains the following - structure. */ -typedef struct -{ - /* Mask of general purpose registers used. */ - unsigned long ri_gprmask; - /* Mask of co-processor registers used. */ - unsigned long ri_cprmask[4]; - /* GP register value for this object file. */ - long ri_gp_value; -} Elf64_RegInfo; - -/* Special values for the st_other field in the symbol table. */ - -#define STO_ALPHA_NOPV 0x80 -#define STO_ALPHA_STD_GPLOAD 0x88 - -/* Special values for Elf64_Dyn tag. */ -#define DT_ALPHA_PLTRO DT_LOPROC - -#include "elf/reloc-macros.h" - -/* Alpha relocs. */ -START_RELOC_NUMBERS (elf_alpha_reloc_type) - RELOC_NUMBER (R_ALPHA_NONE, 0) /* No reloc */ - RELOC_NUMBER (R_ALPHA_REFLONG, 1) /* Direct 32 bit */ - RELOC_NUMBER (R_ALPHA_REFQUAD, 2) /* Direct 64 bit */ - RELOC_NUMBER (R_ALPHA_GPREL32, 3) /* GP relative 32 bit */ - RELOC_NUMBER (R_ALPHA_LITERAL, 4) /* GP relative 16 bit w/optimization */ - RELOC_NUMBER (R_ALPHA_LITUSE, 5) /* Optimization hint for LITERAL */ - RELOC_NUMBER (R_ALPHA_GPDISP, 6) /* Add displacement to GP */ - RELOC_NUMBER (R_ALPHA_BRADDR, 7) /* PC+4 relative 23 bit shifted */ - RELOC_NUMBER (R_ALPHA_HINT, 8) /* PC+4 relative 16 bit shifted */ - RELOC_NUMBER (R_ALPHA_SREL16, 9) /* PC relative 16 bit */ - RELOC_NUMBER (R_ALPHA_SREL32, 10) /* PC relative 32 bit */ - RELOC_NUMBER (R_ALPHA_SREL64, 11) /* PC relative 64 bit */ - - /* Skip 12 - 16; deprecated ECOFF relocs. */ - - RELOC_NUMBER (R_ALPHA_GPRELHIGH, 17) /* GP relative 32 bit, high 16 bits */ - RELOC_NUMBER (R_ALPHA_GPRELLOW, 18) /* GP relative 32 bit, low 16 bits */ - RELOC_NUMBER (R_ALPHA_GPREL16, 19) /* GP relative 16 bit */ - - /* Skip 20 - 23; deprecated ECOFF relocs. */ - - /* These relocations are specific to shared libraries. */ - RELOC_NUMBER (R_ALPHA_COPY, 24) /* Copy symbol at runtime */ - RELOC_NUMBER (R_ALPHA_GLOB_DAT, 25) /* Create GOT entry */ - RELOC_NUMBER (R_ALPHA_JMP_SLOT, 26) /* Create PLT entry */ - RELOC_NUMBER (R_ALPHA_RELATIVE, 27) /* Adjust by program base */ - - /* Like BRADDR, but assert that the source and target object file - share the same GP value, and adjust the target address for - STO_ALPHA_STD_GPLOAD. */ - RELOC_NUMBER (R_ALPHA_BRSGP, 28) - - /* Thread-Local Storage. */ - RELOC_NUMBER (R_ALPHA_TLSGD, 29) - RELOC_NUMBER (R_ALPHA_TLSLDM, 30) - RELOC_NUMBER (R_ALPHA_DTPMOD64, 31) - RELOC_NUMBER (R_ALPHA_GOTDTPREL, 32) - RELOC_NUMBER (R_ALPHA_DTPREL64, 33) - RELOC_NUMBER (R_ALPHA_DTPRELHI, 34) - RELOC_NUMBER (R_ALPHA_DTPRELLO, 35) - RELOC_NUMBER (R_ALPHA_DTPREL16, 36) - RELOC_NUMBER (R_ALPHA_GOTTPREL, 37) - RELOC_NUMBER (R_ALPHA_TPREL64, 38) - RELOC_NUMBER (R_ALPHA_TPRELHI, 39) - RELOC_NUMBER (R_ALPHA_TPRELLO, 40) - RELOC_NUMBER (R_ALPHA_TPREL16, 41) - -END_RELOC_NUMBERS (R_ALPHA_max) - -#define LITUSE_ALPHA_ADDR 0 -#define LITUSE_ALPHA_BASE 1 -#define LITUSE_ALPHA_BYTOFF 2 -#define LITUSE_ALPHA_JSR 3 -#define LITUSE_ALPHA_TLSGD 4 -#define LITUSE_ALPHA_TLSLDM 5 -#define LITUSE_ALPHA_JSRDIRECT 6 - -#endif /* _ELF_ALPHA_H */ diff --git a/include/elf/arc.h b/include/elf/arc.h deleted file mode 100644 index a07ed2e..0000000 --- a/include/elf/arc.h +++ /dev/null @@ -1,57 +0,0 @@ -/* ARC ELF support for BFD. - Copyright 1995, 1997, 1998, 2000, 2001, 2010 Free Software Foundation, Inc. - Contributed by Doug Evans, (dje@cygnus.com) - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file holds definitions specific to the ARC ELF ABI. */ - -#ifndef _ELF_ARC_H -#define _ELF_ARC_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ - -START_RELOC_NUMBERS (elf_arc_reloc_type) - RELOC_NUMBER (R_ARC_NONE, 0) - RELOC_NUMBER (R_ARC_32, 1) - RELOC_NUMBER (R_ARC_B26, 2) - RELOC_NUMBER (R_ARC_B22_PCREL, 3) -END_RELOC_NUMBERS (R_ARC_max) - -/* Processor specific flags for the ELF header e_flags field. */ - -/* Four bit ARC machine type field. */ - -#define EF_ARC_MACH 0x0000000f - -/* Various CPU types. */ - -#define E_ARC_MACH_ARC5 0 -#define E_ARC_MACH_ARC6 1 -#define E_ARC_MACH_ARC7 2 -#define E_ARC_MACH_ARC8 3 - -/* Leave bits 0xf0 alone in case we ever have more than 16 cpu types. */ - -/* File contains position independent code. */ - -#define EF_ARC_PIC 0x00000100 - -#endif /* _ELF_ARC_H */ diff --git a/include/elf/arm.h b/include/elf/arm.h deleted file mode 100644 index d799303..0000000 --- a/include/elf/arm.h +++ /dev/null @@ -1,344 +0,0 @@ -/* ARM ELF support for BFD. - Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2009, 2010 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_ARM_H -#define _ELF_ARM_H - -#include "elf/reloc-macros.h" - -/* Processor specific flags for the ELF header e_flags field. */ -#define EF_ARM_RELEXEC 0x01 -#define EF_ARM_HASENTRY 0x02 -#define EF_ARM_INTERWORK 0x04 -#define EF_ARM_APCS_26 0x08 -#define EF_ARM_APCS_FLOAT 0x10 -#define EF_ARM_PIC 0x20 -#define EF_ARM_ALIGN8 0x40 /* 8-bit structure alignment is in use. */ -#define EF_ARM_NEW_ABI 0x80 -#define EF_ARM_OLD_ABI 0x100 -#define EF_ARM_SOFT_FLOAT 0x200 -#define EF_ARM_VFP_FLOAT 0x400 -#define EF_ARM_MAVERICK_FLOAT 0x800 - -/* Frame unwind information */ -#define PT_ARM_EXIDX (PT_LOPROC + 1) - -/* Other constants defined in the ARM ELF spec. version B-01. */ -#define EF_ARM_SYMSARESORTED 0x04 /* NB conflicts with EF_INTERWORK. */ -#define EF_ARM_DYNSYMSUSESEGIDX 0x08 /* NB conflicts with EF_APCS26. */ -#define EF_ARM_MAPSYMSFIRST 0x10 /* NB conflicts with EF_APCS_FLOAT. */ -#define EF_ARM_EABIMASK 0xFF000000 - -/* New constants defined in the ARM ELF spec. version XXX. - Only valid in conjunction with EF_ARM_EABI_VER5. */ -#define EF_ARM_ABI_FLOAT_SOFT 0x200 /* NB conflicts with EF_ARM_SOFT_FLOAT. */ -#define EF_ARM_ABI_FLOAT_HARD 0x400 /* NB conflicts with EF_ARM_VFP_FLOAT. */ - -/* Constants defined in AAELF. */ -#define EF_ARM_BE8 0x00800000 -#define EF_ARM_LE8 0x00400000 - -#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) -#define EF_ARM_EABI_UNKNOWN 0x00000000 -#define EF_ARM_EABI_VER1 0x01000000 -#define EF_ARM_EABI_VER2 0x02000000 -#define EF_ARM_EABI_VER3 0x03000000 -#define EF_ARM_EABI_VER4 0x04000000 -#define EF_ARM_EABI_VER5 0x05000000 - -/* Local aliases for some flags to match names used by COFF port. */ -#define F_INTERWORK EF_ARM_INTERWORK -#define F_APCS26 EF_ARM_APCS_26 -#define F_APCS_FLOAT EF_ARM_APCS_FLOAT -#define F_PIC EF_ARM_PIC -#define F_SOFT_FLOAT EF_ARM_SOFT_FLOAT -#define F_VFP_FLOAT EF_ARM_VFP_FLOAT - -/* Additional symbol types for Thumb. */ -#define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */ -#define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */ - -/* Additional section types. */ -#define SHT_ARM_EXIDX 0x70000001 /* Section holds ARM unwind info. */ -#define SHT_ARM_PREEMPTMAP 0x70000002 /* Section pre-emption details. */ -#define SHT_ARM_ATTRIBUTES 0x70000003 /* Section holds attributes. */ -#define SHT_ARM_DEBUGOVERLAY 0x70000004 /* Section holds overlay debug info. */ -#define SHT_ARM_OVERLAYSECTION 0x70000005 /* Section holds GDB and overlay integration info. */ - -/* ARM-specific values for sh_flags. */ -#define SHF_ENTRYSECT 0x10000000 /* Section contains an entry point. */ -#define SHF_COMDEF 0x80000000 /* Section may be multiply defined in the input to a link step. */ - -/* ARM-specific program header flags. */ -#define PF_ARM_SB 0x10000000 /* Segment contains the location addressed by the static base. */ -#define PF_ARM_PI 0x20000000 /* Segment is position-independent. */ -#define PF_ARM_ABS 0x40000000 /* Segment must be loaded at its base address. */ - -/* Values for the Tag_CPU_arch EABI attribute. */ -#define TAG_CPU_ARCH_PRE_V4 0 -#define TAG_CPU_ARCH_V4 1 -#define TAG_CPU_ARCH_V4T 2 -#define TAG_CPU_ARCH_V5T 3 -#define TAG_CPU_ARCH_V5TE 4 -#define TAG_CPU_ARCH_V5TEJ 5 -#define TAG_CPU_ARCH_V6 6 -#define TAG_CPU_ARCH_V6KZ 7 -#define TAG_CPU_ARCH_V6T2 8 -#define TAG_CPU_ARCH_V6K 9 -#define TAG_CPU_ARCH_V7 10 -#define TAG_CPU_ARCH_V6_M 11 -#define TAG_CPU_ARCH_V6S_M 12 -#define TAG_CPU_ARCH_V7E_M 13 -#define TAG_CPU_ARCH_V8 14 -#define MAX_TAG_CPU_ARCH 14 -/* Pseudo-architecture to allow objects to be compatible with the subset of - armv4t and armv6-m. This value should never be stored in object files. */ -#define TAG_CPU_ARCH_V4T_PLUS_V6_M (MAX_TAG_CPU_ARCH + 1) - -/* Relocation types. */ - -START_RELOC_NUMBERS (elf_arm_reloc_type) -/* AAELF official names and numbers. */ - RELOC_NUMBER (R_ARM_NONE, 0) - RELOC_NUMBER (R_ARM_PC24, 1) /* deprecated */ - RELOC_NUMBER (R_ARM_ABS32, 2) - RELOC_NUMBER (R_ARM_REL32, 3) - RELOC_NUMBER (R_ARM_LDR_PC_G0, 4) - RELOC_NUMBER (R_ARM_ABS16, 5) - RELOC_NUMBER (R_ARM_ABS12, 6) - RELOC_NUMBER (R_ARM_THM_ABS5, 7) - RELOC_NUMBER (R_ARM_ABS8, 8) - RELOC_NUMBER (R_ARM_SBREL32, 9) - RELOC_NUMBER (R_ARM_THM_CALL, 10) - RELOC_NUMBER (R_ARM_THM_PC8, 11) - RELOC_NUMBER (R_ARM_BREL_ADJ, 12) - RELOC_NUMBER (R_ARM_TLS_DESC, 13) - RELOC_NUMBER (R_ARM_THM_SWI8, 14) /* obsolete */ - RELOC_NUMBER (R_ARM_XPC25, 15) /* obsolete */ - RELOC_NUMBER (R_ARM_THM_XPC22, 16) /* obsolete */ - RELOC_NUMBER (R_ARM_TLS_DTPMOD32, 17) - RELOC_NUMBER (R_ARM_TLS_DTPOFF32, 18) - RELOC_NUMBER (R_ARM_TLS_TPOFF32, 19) - RELOC_NUMBER (R_ARM_COPY, 20) /* Copy symbol at runtime. */ - RELOC_NUMBER (R_ARM_GLOB_DAT, 21) /* Create GOT entry. */ - RELOC_NUMBER (R_ARM_JUMP_SLOT, 22) /* Create PLT entry. */ - RELOC_NUMBER (R_ARM_RELATIVE, 23) /* Adjust by program base. */ - RELOC_NUMBER (R_ARM_GOTOFF32, 24) /* 32 bit offset to GOT. */ - RELOC_NUMBER (R_ARM_BASE_PREL, 25) /* 32 bit PC relative offset to GOT. */ - RELOC_NUMBER (R_ARM_GOT_BREL, 26) /* 32 bit GOT entry. */ - RELOC_NUMBER (R_ARM_PLT32, 27) /* deprecated - 32 bit PLT address. */ - RELOC_NUMBER (R_ARM_CALL, 28) - RELOC_NUMBER (R_ARM_JUMP24, 29) - RELOC_NUMBER (R_ARM_THM_JUMP24, 30) - RELOC_NUMBER (R_ARM_BASE_ABS, 31) - RELOC_NUMBER (R_ARM_ALU_PCREL7_0, 32) /* obsolete */ - RELOC_NUMBER (R_ARM_ALU_PCREL15_8, 33) /* obsolete */ - RELOC_NUMBER (R_ARM_ALU_PCREL23_15, 34) /* obsolete */ - RELOC_NUMBER (R_ARM_LDR_SBREL_11_0, 35) /* deprecated, should have _NC suffix */ - RELOC_NUMBER (R_ARM_ALU_SBREL_19_12, 36) /* deprecated, should have _NC suffix */ - RELOC_NUMBER (R_ARM_ALU_SBREL_27_20, 37) /* deprecated, should have _CK suffix */ - RELOC_NUMBER (R_ARM_TARGET1, 38) - RELOC_NUMBER (R_ARM_SBREL31, 39) /* deprecated */ - RELOC_NUMBER (R_ARM_V4BX, 40) - RELOC_NUMBER (R_ARM_TARGET2, 41) - RELOC_NUMBER (R_ARM_PREL31, 42) - RELOC_NUMBER (R_ARM_MOVW_ABS_NC, 43) - RELOC_NUMBER (R_ARM_MOVT_ABS, 44) - RELOC_NUMBER (R_ARM_MOVW_PREL_NC, 45) - RELOC_NUMBER (R_ARM_MOVT_PREL, 46) - RELOC_NUMBER (R_ARM_THM_MOVW_ABS_NC, 47) - RELOC_NUMBER (R_ARM_THM_MOVT_ABS, 48) - RELOC_NUMBER (R_ARM_THM_MOVW_PREL_NC, 49) - RELOC_NUMBER (R_ARM_THM_MOVT_PREL, 50) - RELOC_NUMBER (R_ARM_THM_JUMP19, 51) - RELOC_NUMBER (R_ARM_THM_JUMP6, 52) - RELOC_NUMBER (R_ARM_THM_ALU_PREL_11_0, 53) - RELOC_NUMBER (R_ARM_THM_PC12, 54) - RELOC_NUMBER (R_ARM_ABS32_NOI, 55) - RELOC_NUMBER (R_ARM_REL32_NOI, 56) - RELOC_NUMBER (R_ARM_ALU_PC_G0_NC, 57) - RELOC_NUMBER (R_ARM_ALU_PC_G0, 58) - RELOC_NUMBER (R_ARM_ALU_PC_G1_NC, 59) - RELOC_NUMBER (R_ARM_ALU_PC_G1, 60) - RELOC_NUMBER (R_ARM_ALU_PC_G2, 61) - RELOC_NUMBER (R_ARM_LDR_PC_G1, 62) - RELOC_NUMBER (R_ARM_LDR_PC_G2, 63) - RELOC_NUMBER (R_ARM_LDRS_PC_G0, 64) - RELOC_NUMBER (R_ARM_LDRS_PC_G1, 65) - RELOC_NUMBER (R_ARM_LDRS_PC_G2, 66) - RELOC_NUMBER (R_ARM_LDC_PC_G0, 67) - RELOC_NUMBER (R_ARM_LDC_PC_G1, 68) - RELOC_NUMBER (R_ARM_LDC_PC_G2, 69) - RELOC_NUMBER (R_ARM_ALU_SB_G0_NC, 70) - RELOC_NUMBER (R_ARM_ALU_SB_G0, 71) - RELOC_NUMBER (R_ARM_ALU_SB_G1_NC, 72) - RELOC_NUMBER (R_ARM_ALU_SB_G1, 73) - RELOC_NUMBER (R_ARM_ALU_SB_G2, 74) - RELOC_NUMBER (R_ARM_LDR_SB_G0, 75) - RELOC_NUMBER (R_ARM_LDR_SB_G1, 76) - RELOC_NUMBER (R_ARM_LDR_SB_G2, 77) - RELOC_NUMBER (R_ARM_LDRS_SB_G0, 78) - RELOC_NUMBER (R_ARM_LDRS_SB_G1, 79) - RELOC_NUMBER (R_ARM_LDRS_SB_G2, 80) - RELOC_NUMBER (R_ARM_LDC_SB_G0, 81) - RELOC_NUMBER (R_ARM_LDC_SB_G1, 82) - RELOC_NUMBER (R_ARM_LDC_SB_G2, 83) - RELOC_NUMBER (R_ARM_MOVW_BREL_NC, 84) - RELOC_NUMBER (R_ARM_MOVT_BREL, 85) - RELOC_NUMBER (R_ARM_MOVW_BREL, 86) - RELOC_NUMBER (R_ARM_THM_MOVW_BREL_NC, 87) - RELOC_NUMBER (R_ARM_THM_MOVT_BREL, 88) - RELOC_NUMBER (R_ARM_THM_MOVW_BREL, 89) - RELOC_NUMBER (R_ARM_TLS_GOTDESC, 90) - RELOC_NUMBER (R_ARM_TLS_CALL, 91) - RELOC_NUMBER (R_ARM_TLS_DESCSEQ, 92) - RELOC_NUMBER (R_ARM_THM_TLS_CALL, 93) - RELOC_NUMBER (R_ARM_PLT32_ABS, 94) - RELOC_NUMBER (R_ARM_GOT_ABS, 95) - RELOC_NUMBER (R_ARM_GOT_PREL, 96) - RELOC_NUMBER (R_ARM_GOT_BREL12, 97) - RELOC_NUMBER (R_ARM_GOTOFF12, 98) - RELOC_NUMBER (R_ARM_GOTRELAX, 99) - RELOC_NUMBER (R_ARM_GNU_VTENTRY, 100) /* deprecated - old C++ abi */ - RELOC_NUMBER (R_ARM_GNU_VTINHERIT, 101) /* deprecated - old C++ abi */ - RELOC_NUMBER (R_ARM_THM_JUMP11, 102) - RELOC_NUMBER (R_ARM_THM_JUMP8, 103) - RELOC_NUMBER (R_ARM_TLS_GD32, 104) - RELOC_NUMBER (R_ARM_TLS_LDM32, 105) - RELOC_NUMBER (R_ARM_TLS_LDO32, 106) - RELOC_NUMBER (R_ARM_TLS_IE32, 107) - RELOC_NUMBER (R_ARM_TLS_LE32, 108) - RELOC_NUMBER (R_ARM_TLS_LDO12, 109) - RELOC_NUMBER (R_ARM_TLS_LE12, 110) - RELOC_NUMBER (R_ARM_TLS_IE12GP, 111) - /* 112 - 127 private range */ - RELOC_NUMBER (R_ARM_ME_TOO, 128) /* obsolete */ - RELOC_NUMBER (R_ARM_THM_TLS_DESCSEQ ,129) - - RELOC_NUMBER (R_ARM_IRELATIVE, 160) - - /* Extensions? R=read-only? */ - RELOC_NUMBER (R_ARM_RXPC25, 249) - RELOC_NUMBER (R_ARM_RSBREL32, 250) - RELOC_NUMBER (R_ARM_THM_RPC22, 251) - RELOC_NUMBER (R_ARM_RREL32, 252) - RELOC_NUMBER (R_ARM_RABS32, 253) - RELOC_NUMBER (R_ARM_RPC24, 254) - RELOC_NUMBER (R_ARM_RBASE, 255) - - /* Unofficial names for some of the relocs. */ - FAKE_RELOC (R_ARM_GOTOFF, R_ARM_GOTOFF32) /* 32 bit offset to GOT. */ - FAKE_RELOC (R_ARM_THM_PC22, R_ARM_THM_CALL) - FAKE_RELOC (R_ARM_THM_PC11, R_ARM_THM_JUMP11) - FAKE_RELOC (R_ARM_THM_PC9, R_ARM_THM_JUMP8) - - /* Relocs with both a different name, and (apparently) different meaning in - GNU usage. */ - FAKE_RELOC (R_ARM_GOTPC, R_ARM_BASE_PREL) /* 32 bit PC relative offset to GOT. */ - FAKE_RELOC (R_ARM_GOT32, R_ARM_GOT_BREL) /* 32 bit GOT entry. */ - FAKE_RELOC (R_ARM_ROSEGREL32, R_ARM_SBREL31) /* ??? */ - FAKE_RELOC (R_ARM_AMP_VCALL9, R_ARM_BREL_ADJ) /* Thumb-something. Not used. */ - -END_RELOC_NUMBERS (R_ARM_max = 256) - -#ifdef BFD_ARCH_SIZE -/* EABI object attributes. */ - -enum -{ - /* 0-3 are generic. */ - Tag_CPU_raw_name = 4, - Tag_CPU_name, - Tag_CPU_arch, - Tag_CPU_arch_profile, - Tag_ARM_ISA_use, - Tag_THUMB_ISA_use, - Tag_FP_arch, - Tag_WMMX_arch, - Tag_Advanced_SIMD_arch, - Tag_PCS_config, - Tag_ABI_PCS_R9_use, - Tag_ABI_PCS_RW_data, - Tag_ABI_PCS_RO_data, - Tag_ABI_PCS_GOT_use, - Tag_ABI_PCS_wchar_t, - Tag_ABI_FP_rounding, - Tag_ABI_FP_denormal, - Tag_ABI_FP_exceptions, - Tag_ABI_FP_user_exceptions, - Tag_ABI_FP_number_model, - Tag_ABI_align_needed, - Tag_ABI_align_preserved, - Tag_ABI_enum_size, - Tag_ABI_HardFP_use, - Tag_ABI_VFP_args, - Tag_ABI_WMMX_args, - Tag_ABI_optimization_goals, - Tag_ABI_FP_optimization_goals, - /* 32 is generic (Tag_compatibility). */ - Tag_undefined33 = 33, - Tag_CPU_unaligned_access, - Tag_undefined35, - Tag_FP_HP_extension, - Tag_undefined37, - Tag_ABI_FP_16bit_format, - Tag_undefined39, - Tag_undefined40, - Tag_undefined41, - Tag_MPextension_use, - Tag_undefined_43, - Tag_DIV_use, - Tag_nodefaults = 64, - Tag_also_compatible_with, - Tag_T2EE_use, - Tag_conformance, - Tag_Virtualization_use, - Tag_undefined69, - Tag_MPextension_use_legacy, - - /* The following tags are legacy names for other tags. */ - Tag_VFP_arch = Tag_FP_arch, - Tag_ABI_align8_needed = Tag_ABI_align_needed, - Tag_ABI_align8_preserved = Tag_ABI_align_preserved, - Tag_VFP_HP_extension = Tag_FP_HP_extension -}; - -#endif - -/* The name of the note section used to identify arm variants. */ -#define ARM_NOTE_SECTION ".note.gnu.arm.ident" - -/* Special section names. */ -#define ELF_STRING_ARM_unwind ".ARM.exidx" -#define ELF_STRING_ARM_unwind_info ".ARM.extab" -#define ELF_STRING_ARM_unwind_once ".gnu.linkonce.armexidx." -#define ELF_STRING_ARM_unwind_info_once ".gnu.linkonce.armextab." - -enum arm_st_branch_type { - ST_BRANCH_TO_ARM, - ST_BRANCH_TO_THUMB, - ST_BRANCH_LONG, - ST_BRANCH_UNKNOWN -}; - -#define ARM_SYM_BRANCH_TYPE(SYM) \ - ((enum arm_st_branch_type) (SYM)->st_target_internal) - -#endif /* _ELF_ARM_H */ diff --git a/include/elf/avr.h b/include/elf/avr.h deleted file mode 100644 index b45d902..0000000 --- a/include/elf/avr.h +++ /dev/null @@ -1,86 +0,0 @@ -/* AVR ELF support for BFD. - Copyright 1999, 2000, 2004, 2006, 2010, 2012 - Free Software Foundation, Inc. - Contributed by Denis Chertykov - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_AVR_H -#define _ELF_AVR_H - -#include "elf/reloc-macros.h" - -/* Processor specific flags for the ELF header e_flags field. */ -#define EF_AVR_MACH 0x7F - -/* If bit #7 is set, it is assumed that the elf file uses local symbols - as reference for the relocations so that linker relaxation is possible. */ -#define EF_AVR_LINKRELAX_PREPARED 0x80 - -#define E_AVR_MACH_AVR1 1 -#define E_AVR_MACH_AVR2 2 -#define E_AVR_MACH_AVR25 25 -#define E_AVR_MACH_AVR3 3 -#define E_AVR_MACH_AVR31 31 -#define E_AVR_MACH_AVR35 35 -#define E_AVR_MACH_AVR4 4 -#define E_AVR_MACH_AVR5 5 -#define E_AVR_MACH_AVR51 51 -#define E_AVR_MACH_AVR6 6 -#define E_AVR_MACH_XMEGA1 101 -#define E_AVR_MACH_XMEGA2 102 -#define E_AVR_MACH_XMEGA3 103 -#define E_AVR_MACH_XMEGA4 104 -#define E_AVR_MACH_XMEGA5 105 -#define E_AVR_MACH_XMEGA6 106 -#define E_AVR_MACH_XMEGA7 107 - -/* Relocations. */ -START_RELOC_NUMBERS (elf_avr_reloc_type) - RELOC_NUMBER (R_AVR_NONE, 0) - RELOC_NUMBER (R_AVR_32, 1) - RELOC_NUMBER (R_AVR_7_PCREL, 2) - RELOC_NUMBER (R_AVR_13_PCREL, 3) - RELOC_NUMBER (R_AVR_16, 4) - RELOC_NUMBER (R_AVR_16_PM, 5) - RELOC_NUMBER (R_AVR_LO8_LDI, 6) - RELOC_NUMBER (R_AVR_HI8_LDI, 7) - RELOC_NUMBER (R_AVR_HH8_LDI, 8) - RELOC_NUMBER (R_AVR_LO8_LDI_NEG, 9) - RELOC_NUMBER (R_AVR_HI8_LDI_NEG, 10) - RELOC_NUMBER (R_AVR_HH8_LDI_NEG, 11) - RELOC_NUMBER (R_AVR_LO8_LDI_PM, 12) - RELOC_NUMBER (R_AVR_HI8_LDI_PM, 13) - RELOC_NUMBER (R_AVR_HH8_LDI_PM, 14) - RELOC_NUMBER (R_AVR_LO8_LDI_PM_NEG, 15) - RELOC_NUMBER (R_AVR_HI8_LDI_PM_NEG, 16) - RELOC_NUMBER (R_AVR_HH8_LDI_PM_NEG, 17) - RELOC_NUMBER (R_AVR_CALL, 18) - RELOC_NUMBER (R_AVR_LDI, 19) - RELOC_NUMBER (R_AVR_6, 20) - RELOC_NUMBER (R_AVR_6_ADIW, 21) - RELOC_NUMBER (R_AVR_MS8_LDI, 22) - RELOC_NUMBER (R_AVR_MS8_LDI_NEG, 23) - RELOC_NUMBER (R_AVR_LO8_LDI_GS, 24) - RELOC_NUMBER (R_AVR_HI8_LDI_GS, 25) - RELOC_NUMBER (R_AVR_8, 26) - RELOC_NUMBER (R_AVR_8_LO8, 27) - RELOC_NUMBER (R_AVR_8_HI8, 28) - RELOC_NUMBER (R_AVR_8_HLO8, 29) -END_RELOC_NUMBERS (R_AVR_max) - -#endif /* _ELF_AVR_H */ diff --git a/include/elf/bfin.h b/include/elf/bfin.h deleted file mode 100644 index 8d92906..0000000 --- a/include/elf/bfin.h +++ /dev/null @@ -1,95 +0,0 @@ -/* Blackfin ELF support for BFD. - Copyright (C) 2005, 2006, 2009, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_BFIN_H -#define _ELF_BFIN_H - -#include "elf/reloc-macros.h" - -START_RELOC_NUMBERS (elf_bfin_reloc_type) - RELOC_NUMBER (R_BFIN_UNUSED0, 0x00) /* relocation type 0 is not defined */ - RELOC_NUMBER (R_BFIN_PCREL5M2, 0x01) /* LSETUP part a */ - RELOC_NUMBER (R_BFIN_UNUSED1, 0x02) /* relocation type 2 is not defined */ - RELOC_NUMBER (R_BFIN_PCREL10, 0x03) /* type 3, 0x00) if cc jump */ - RELOC_NUMBER (R_BFIN_PCREL12_JUMP, 0x04) /* type 4, 0x00) jump */ - RELOC_NUMBER (R_BFIN_RIMM16, 0x05) /* type 0x5, 0x00) rN = */ - RELOC_NUMBER (R_BFIN_LUIMM16, 0x06) /* # 0x6, 0x00) preg.l= Load imm 16 to lower half */ - RELOC_NUMBER (R_BFIN_HUIMM16, 0x07) /* # 0x7, 0x00) preg.h= Load imm 16 to upper half */ - RELOC_NUMBER (R_BFIN_PCREL12_JUMP_S, 0x08) /* # 0x8 jump.s */ - RELOC_NUMBER (R_BFIN_PCREL24_JUMP_X, 0x09) /* # 0x9 jump.x */ - RELOC_NUMBER (R_BFIN_PCREL24, 0x0a) /* # 0xa call , 0x00) not expandable */ - RELOC_NUMBER (R_BFIN_UNUSEDB, 0x0b) /* # 0xb not generated */ - RELOC_NUMBER (R_BFIN_UNUSEDC, 0x0c) /* # 0xc not used */ - RELOC_NUMBER (R_BFIN_PCREL24_JUMP_L, 0x0d) /* 0xd jump.l */ - RELOC_NUMBER (R_BFIN_PCREL24_CALL_X, 0x0e) /* 0xE, 0x00) call.x if is above 24 bit limit call through P1 */ - RELOC_NUMBER (R_BFIN_VAR_EQ_SYMB, 0x0f) /* 0xf, 0x00) linker should treat it same as 0x12 */ - RELOC_NUMBER (R_BFIN_BYTE_DATA, 0x10) /* 0x10, 0x00) .byte var = symbol */ - RELOC_NUMBER (R_BFIN_BYTE2_DATA, 0x11) /* 0x11, 0x00) .byte2 var = symbol */ - RELOC_NUMBER (R_BFIN_BYTE4_DATA, 0x12) /* 0x12, 0x00) .byte4 var = symbol and .var var=symbol */ - RELOC_NUMBER (R_BFIN_PCREL11, 0x13) /* 0x13, 0x00) lsetup part b */ - RELOC_NUMBER (R_BFIN_GOT17M4, 0x14) - RELOC_NUMBER (R_BFIN_GOTHI, 0x15) - RELOC_NUMBER (R_BFIN_GOTLO, 0x16) - RELOC_NUMBER (R_BFIN_FUNCDESC, 0x17) - RELOC_NUMBER (R_BFIN_FUNCDESC_GOT17M4, 0x18) - RELOC_NUMBER (R_BFIN_FUNCDESC_GOTHI, 0x19) - RELOC_NUMBER (R_BFIN_FUNCDESC_GOTLO, 0x1a) - RELOC_NUMBER (R_BFIN_FUNCDESC_VALUE, 0x1b) - RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFF17M4, 0x1c) - RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFFHI, 0x1d) - RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFFLO, 0x1e) - RELOC_NUMBER (R_BFIN_GOTOFF17M4, 0x1f) - RELOC_NUMBER (R_BFIN_GOTOFFHI, 0x20) - RELOC_NUMBER (R_BFIN_GOTOFFLO, 0x21) - - RELOC_NUMBER (R_BFIN_PUSH, 0xE0) - RELOC_NUMBER (R_BFIN_CONST, 0xE1) - RELOC_NUMBER (R_BFIN_ADD, 0xE2) - RELOC_NUMBER (R_BFIN_SUB, 0xE3) - RELOC_NUMBER (R_BFIN_MULT, 0xE4) - RELOC_NUMBER (R_BFIN_DIV, 0xE5) - RELOC_NUMBER (R_BFIN_MOD, 0xE6) - RELOC_NUMBER (R_BFIN_LSHIFT, 0xE7) - RELOC_NUMBER (R_BFIN_RSHIFT, 0xE8) - RELOC_NUMBER (R_BFIN_AND, 0xE9) - RELOC_NUMBER (R_BFIN_OR, 0xEA) - RELOC_NUMBER (R_BFIN_XOR, 0xEB) - RELOC_NUMBER (R_BFIN_LAND, 0xEC) - RELOC_NUMBER (R_BFIN_LOR, 0xED) - RELOC_NUMBER (R_BFIN_LEN, 0xEE) - RELOC_NUMBER (R_BFIN_NEG, 0xEF) - RELOC_NUMBER (R_BFIN_COMP, 0xF0) - RELOC_NUMBER (R_BFIN_PAGE, 0xF1) - RELOC_NUMBER (R_BFIN_HWPAGE, 0xF2) - RELOC_NUMBER (R_BFIN_ADDR, 0xF3) - RELOC_NUMBER (R_BFIN_PLTPC, 0x40) /* PLT gnu only relocation */ - RELOC_NUMBER (R_BFIN_GOT, 0x41) /* GOT gnu only relocation */ - RELOC_NUMBER (R_BFIN_GNU_VTINHERIT, 0x42) /* C++, gnu only */ - RELOC_NUMBER (R_BFIN_GNU_VTENTRY, 0x43) /* C++, gnu only */ -END_RELOC_NUMBERS (R_BFIN_max) - -/* Processor specific flags for the ELF header e_flags field. */ -#define EF_BFIN_PIC 0x00000001 /* -fpic */ -#define EF_BFIN_FDPIC 0x00000002 /* -mfdpic */ - -#define EF_BFIN_CODE_IN_L1 0x00000010 /* --code-in-l1 */ -#define EF_BFIN_DATA_IN_L1 0x00000020 /* --data-in-l1 */ - -#define EF_BFIN_PIC_FLAGS (EF_BFIN_PIC | EF_BFIN_FDPIC) -#endif /* _ELF_BFIN_H */ diff --git a/include/elf/common.h b/include/elf/common.h deleted file mode 100644 index cd3bcdd..0000000 --- a/include/elf/common.h +++ /dev/null @@ -1,1001 +0,0 @@ -/* ELF support for BFD. - Copyright 1991-2013 Free Software Foundation, Inc. - - Written by Fred Fish @ Cygnus Support, from information published - in "UNIX System V Release 4, Programmers Guide: ANSI C and - Programming Support Tools". - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file is part of ELF support for BFD, and contains the portions - that are common to both the internal and external representations. - For example, ELFMAG0 is the byte 0x7F in both the internal (in-memory) - and external (in-file) representations. */ - -#ifndef _ELF_COMMON_H -#define _ELF_COMMON_H - -/* Fields in e_ident[]. */ - -#define EI_MAG0 0 /* File identification byte 0 index */ -#define ELFMAG0 0x7F /* Magic number byte 0 */ - -#define EI_MAG1 1 /* File identification byte 1 index */ -#define ELFMAG1 'E' /* Magic number byte 1 */ - -#define EI_MAG2 2 /* File identification byte 2 index */ -#define ELFMAG2 'L' /* Magic number byte 2 */ - -#define EI_MAG3 3 /* File identification byte 3 index */ -#define ELFMAG3 'F' /* Magic number byte 3 */ - -#define EI_CLASS 4 /* File class */ -#define ELFCLASSNONE 0 /* Invalid class */ -#define ELFCLASS32 1 /* 32-bit objects */ -#define ELFCLASS64 2 /* 64-bit objects */ - -#define EI_DATA 5 /* Data encoding */ -#define ELFDATANONE 0 /* Invalid data encoding */ -#define ELFDATA2LSB 1 /* 2's complement, little endian */ -#define ELFDATA2MSB 2 /* 2's complement, big endian */ - -#define EI_VERSION 6 /* File version */ - -#define EI_OSABI 7 /* Operating System/ABI indication */ -#define ELFOSABI_NONE 0 /* UNIX System V ABI */ -#define ELFOSABI_HPUX 1 /* HP-UX operating system */ -#define ELFOSABI_NETBSD 2 /* NetBSD */ -#define ELFOSABI_GNU 3 /* GNU */ -#define ELFOSABI_LINUX 3 /* Alias for ELFOSABI_GNU */ -#define ELFOSABI_SOLARIS 6 /* Solaris */ -#define ELFOSABI_AIX 7 /* AIX */ -#define ELFOSABI_IRIX 8 /* IRIX */ -#define ELFOSABI_FREEBSD 9 /* FreeBSD */ -#define ELFOSABI_TRU64 10 /* TRU64 UNIX */ -#define ELFOSABI_MODESTO 11 /* Novell Modesto */ -#define ELFOSABI_OPENBSD 12 /* OpenBSD */ -#define ELFOSABI_OPENVMS 13 /* OpenVMS */ -#define ELFOSABI_NSK 14 /* Hewlett-Packard Non-Stop Kernel */ -#define ELFOSABI_AROS 15 /* AROS */ -#define ELFOSABI_FENIXOS 16 /* FenixOS */ -#define ELFOSABI_C6000_ELFABI 64 /* Bare-metal TMS320C6000 */ -#define ELFOSABI_C6000_LINUX 65 /* Linux TMS320C6000 */ -#define ELFOSABI_ARM 97 /* ARM */ -#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ - -#define EI_ABIVERSION 8 /* ABI version */ - -#define EI_PAD 9 /* Start of padding bytes */ - - -/* Values for e_type, which identifies the object file type. */ - -#define ET_NONE 0 /* No file type */ -#define ET_REL 1 /* Relocatable file */ -#define ET_EXEC 2 /* Executable file */ -#define ET_DYN 3 /* Shared object file */ -#define ET_CORE 4 /* Core file */ -#define ET_LOOS 0xFE00 /* Operating system-specific */ -#define ET_HIOS 0xFEFF /* Operating system-specific */ -#define ET_LOPROC 0xFF00 /* Processor-specific */ -#define ET_HIPROC 0xFFFF /* Processor-specific */ - -/* Values for e_machine, which identifies the architecture. These numbers - are officially assigned by registry@sco.com. See below for a list of - ad-hoc numbers used during initial development. */ - -#define EM_NONE 0 /* No machine */ -#define EM_M32 1 /* AT&T WE 32100 */ -#define EM_SPARC 2 /* SUN SPARC */ -#define EM_386 3 /* Intel 80386 */ -#define EM_68K 4 /* Motorola m68k family */ -#define EM_88K 5 /* Motorola m88k family */ -#define EM_486 6 /* Intel 80486 *//* Reserved for future use */ -#define EM_860 7 /* Intel 80860 */ -#define EM_MIPS 8 /* MIPS R3000 (officially, big-endian only) */ -#define EM_S370 9 /* IBM System/370 */ -#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian (Oct 4 1999 Draft) Deprecated */ -#define EM_res011 11 /* Reserved */ -#define EM_res012 12 /* Reserved */ -#define EM_res013 13 /* Reserved */ -#define EM_res014 14 /* Reserved */ -#define EM_PARISC 15 /* HPPA */ -#define EM_res016 16 /* Reserved */ -#define EM_VPP550 17 /* Fujitsu VPP500 */ -#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */ -#define EM_960 19 /* Intel 80960 */ -#define EM_PPC 20 /* PowerPC */ -#define EM_PPC64 21 /* 64-bit PowerPC */ -#define EM_S390 22 /* IBM S/390 */ -#define EM_SPU 23 /* Sony/Toshiba/IBM SPU */ -#define EM_res024 24 /* Reserved */ -#define EM_res025 25 /* Reserved */ -#define EM_res026 26 /* Reserved */ -#define EM_res027 27 /* Reserved */ -#define EM_res028 28 /* Reserved */ -#define EM_res029 29 /* Reserved */ -#define EM_res030 30 /* Reserved */ -#define EM_res031 31 /* Reserved */ -#define EM_res032 32 /* Reserved */ -#define EM_res033 33 /* Reserved */ -#define EM_res034 34 /* Reserved */ -#define EM_res035 35 /* Reserved */ -#define EM_V800 36 /* NEC V800 series */ -#define EM_FR20 37 /* Fujitsu FR20 */ -#define EM_RH32 38 /* TRW RH32 */ -#define EM_MCORE 39 /* Motorola M*Core */ /* May also be taken by Fujitsu MMA */ -#define EM_RCE 39 /* Old name for MCore */ -#define EM_ARM 40 /* ARM */ -#define EM_OLD_ALPHA 41 /* Digital Alpha */ -#define EM_SH 42 /* Renesas (formerly Hitachi) / SuperH SH */ -#define EM_SPARCV9 43 /* SPARC v9 64-bit */ -#define EM_TRICORE 44 /* Siemens Tricore embedded processor */ -#define EM_ARC 45 /* ARC Cores */ -#define EM_H8_300 46 /* Renesas (formerly Hitachi) H8/300 */ -#define EM_H8_300H 47 /* Renesas (formerly Hitachi) H8/300H */ -#define EM_H8S 48 /* Renesas (formerly Hitachi) H8S */ -#define EM_H8_500 49 /* Renesas (formerly Hitachi) H8/500 */ -#define EM_IA_64 50 /* Intel IA-64 Processor */ -#define EM_MIPS_X 51 /* Stanford MIPS-X */ -#define EM_COLDFIRE 52 /* Motorola Coldfire */ -#define EM_68HC12 53 /* Motorola M68HC12 */ -#define EM_MMA 54 /* Fujitsu Multimedia Accelerator */ -#define EM_PCP 55 /* Siemens PCP */ -#define EM_NCPU 56 /* Sony nCPU embedded RISC processor */ -#define EM_NDR1 57 /* Denso NDR1 microprocessor */ -#define EM_STARCORE 58 /* Motorola Star*Core processor */ -#define EM_ME16 59 /* Toyota ME16 processor */ -#define EM_ST100 60 /* STMicroelectronics ST100 processor */ -#define EM_TINYJ 61 /* Advanced Logic Corp. TinyJ embedded processor */ -#define EM_X86_64 62 /* Advanced Micro Devices X86-64 processor */ -#define EM_PDSP 63 /* Sony DSP Processor */ -#define EM_PDP10 64 /* Digital Equipment Corp. PDP-10 */ -#define EM_PDP11 65 /* Digital Equipment Corp. PDP-11 */ -#define EM_FX66 66 /* Siemens FX66 microcontroller */ -#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 bit microcontroller */ -#define EM_ST7 68 /* STMicroelectronics ST7 8-bit microcontroller */ -#define EM_68HC16 69 /* Motorola MC68HC16 Microcontroller */ -#define EM_68HC11 70 /* Motorola MC68HC11 Microcontroller */ -#define EM_68HC08 71 /* Motorola MC68HC08 Microcontroller */ -#define EM_68HC05 72 /* Motorola MC68HC05 Microcontroller */ -#define EM_SVX 73 /* Silicon Graphics SVx */ -#define EM_ST19 74 /* STMicroelectronics ST19 8-bit cpu */ -#define EM_VAX 75 /* Digital VAX */ -#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */ -#define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded cpu */ -#define EM_FIREPATH 78 /* Element 14 64-bit DSP processor */ -#define EM_ZSP 79 /* LSI Logic's 16-bit DSP processor */ -#define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */ -#define EM_HUANY 81 /* Harvard's machine-independent format */ -#define EM_PRISM 82 /* SiTera Prism */ -#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */ -#define EM_FR30 84 /* Fujitsu FR30 */ -#define EM_D10V 85 /* Mitsubishi D10V */ -#define EM_D30V 86 /* Mitsubishi D30V */ -#define EM_V850 87 /* Renesas V850 (formerly NEC V850) */ -#define EM_M32R 88 /* Renesas M32R (formerly Mitsubishi M32R) */ -#define EM_MN10300 89 /* Matsushita MN10300 */ -#define EM_MN10200 90 /* Matsushita MN10200 */ -#define EM_PJ 91 /* picoJava */ -#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */ -#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */ -#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */ -#define EM_VIDEOCORE 95 /* Alphamosaic VideoCore processor */ -#define EM_TMM_GPP 96 /* Thompson Multimedia General Purpose Processor */ -#define EM_NS32K 97 /* National Semiconductor 32000 series */ -#define EM_TPC 98 /* Tenor Network TPC processor */ -#define EM_SNP1K 99 /* Trebia SNP 1000 processor */ -#define EM_ST200 100 /* STMicroelectronics ST200 microcontroller */ -#define EM_IP2K 101 /* Ubicom IP2022 micro controller */ -#define EM_MAX 102 /* MAX Processor */ -#define EM_CR 103 /* National Semiconductor CompactRISC */ -#define EM_F2MC16 104 /* Fujitsu F2MC16 */ -#define EM_MSP430 105 /* TI msp430 micro controller */ -#define EM_BLACKFIN 106 /* ADI Blackfin */ -#define EM_SE_C33 107 /* S1C33 Family of Seiko Epson processors */ -#define EM_SEP 108 /* Sharp embedded microprocessor */ -#define EM_ARCA 109 /* Arca RISC Microprocessor */ -#define EM_UNICORE 110 /* Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University */ -#define EM_EXCESS 111 /* eXcess: 16/32/64-bit configurable embedded CPU */ -#define EM_DXP 112 /* Icera Semiconductor Inc. Deep Execution Processor */ -#define EM_ALTERA_NIOS2 113 /* Altera Nios II soft-core processor */ -#define EM_CRX 114 /* National Semiconductor CRX */ -#define EM_XGATE 115 /* Motorola XGATE embedded processor */ -#define EM_C166 116 /* Infineon C16x/XC16x processor */ -#define EM_M16C 117 /* Renesas M16C series microprocessors */ -#define EM_DSPIC30F 118 /* Microchip Technology dsPIC30F Digital Signal Controller */ -#define EM_CE 119 /* Freescale Communication Engine RISC core */ -#define EM_M32C 120 /* Renesas M32C series microprocessors */ -#define EM_res121 121 /* Reserved */ -#define EM_res122 122 /* Reserved */ -#define EM_res123 123 /* Reserved */ -#define EM_res124 124 /* Reserved */ -#define EM_res125 125 /* Reserved */ -#define EM_res126 126 /* Reserved */ -#define EM_res127 127 /* Reserved */ -#define EM_res128 128 /* Reserved */ -#define EM_res129 129 /* Reserved */ -#define EM_res130 130 /* Reserved */ -#define EM_TSK3000 131 /* Altium TSK3000 core */ -#define EM_RS08 132 /* Freescale RS08 embedded processor */ -#define EM_res133 133 /* Reserved */ -#define EM_ECOG2 134 /* Cyan Technology eCOG2 microprocessor */ -#define EM_SCORE 135 /* Sunplus Score */ -#define EM_SCORE7 135 /* Sunplus S+core7 RISC processor */ -#define EM_DSP24 136 /* New Japan Radio (NJR) 24-bit DSP Processor */ -#define EM_VIDEOCORE3 137 /* Broadcom VideoCore III processor */ -#define EM_LATTICEMICO32 138 /* RISC processor for Lattice FPGA architecture */ -#define EM_SE_C17 139 /* Seiko Epson C17 family */ -#define EM_TI_C6000 140 /* Texas Instruments TMS320C6000 DSP family */ -#define EM_TI_C2000 141 /* Texas Instruments TMS320C2000 DSP family */ -#define EM_TI_C5500 142 /* Texas Instruments TMS320C55x DSP family */ -#define EM_res143 143 /* Reserved */ -#define EM_res144 144 /* Reserved */ -#define EM_res145 145 /* Reserved */ -#define EM_res146 146 /* Reserved */ -#define EM_res147 147 /* Reserved */ -#define EM_res148 148 /* Reserved */ -#define EM_res149 149 /* Reserved */ -#define EM_res150 150 /* Reserved */ -#define EM_res151 151 /* Reserved */ -#define EM_res152 152 /* Reserved */ -#define EM_res153 153 /* Reserved */ -#define EM_res154 154 /* Reserved */ -#define EM_res155 155 /* Reserved */ -#define EM_res156 156 /* Reserved */ -#define EM_res157 157 /* Reserved */ -#define EM_res158 158 /* Reserved */ -#define EM_res159 159 /* Reserved */ -#define EM_MMDSP_PLUS 160 /* STMicroelectronics 64bit VLIW Data Signal Processor */ -#define EM_CYPRESS_M8C 161 /* Cypress M8C microprocessor */ -#define EM_R32C 162 /* Renesas R32C series microprocessors */ -#define EM_TRIMEDIA 163 /* NXP Semiconductors TriMedia architecture family */ -#define EM_QDSP6 164 /* QUALCOMM DSP6 Processor */ -#define EM_8051 165 /* Intel 8051 and variants */ -#define EM_STXP7X 166 /* STMicroelectronics STxP7x family */ -#define EM_NDS32 167 /* Andes Technology compact code size embedded RISC processor family */ -#define EM_ECOG1 168 /* Cyan Technology eCOG1X family */ -#define EM_ECOG1X 168 /* Cyan Technology eCOG1X family */ -#define EM_MAXQ30 169 /* Dallas Semiconductor MAXQ30 Core Micro-controllers */ -#define EM_XIMO16 170 /* New Japan Radio (NJR) 16-bit DSP Processor */ -#define EM_MANIK 171 /* M2000 Reconfigurable RISC Microprocessor */ -#define EM_CRAYNV2 172 /* Cray Inc. NV2 vector architecture */ -#define EM_RX 173 /* Renesas RX family */ -#define EM_METAG 174 /* Imagination Technologies Meta processor architecture */ -#define EM_MCST_ELBRUS 175 /* MCST Elbrus general purpose hardware architecture */ -#define EM_ECOG16 176 /* Cyan Technology eCOG16 family */ -#define EM_CR16 177 /* National Semiconductor CompactRISC 16-bit processor */ -#define EM_ETPU 178 /* Freescale Extended Time Processing Unit */ -#define EM_SLE9X 179 /* Infineon Technologies SLE9X core */ -#define EM_L1OM 180 /* Intel L1OM */ -#define EM_K1OM 181 /* Intel K1OM */ -#define EM_INTEL182 182 /* Reserved by Intel */ -#define EM_AARCH64 183 /* ARM 64-bit architecture */ -#define EM_ARM184 184 /* Reserved by ARM */ -#define EM_AVR32 185 /* Atmel Corporation 32-bit microprocessor family */ -#define EM_STM8 186 /* STMicroeletronics STM8 8-bit microcontroller */ -#define EM_TILE64 187 /* Tilera TILE64 multicore architecture family */ -#define EM_TILEPRO 188 /* Tilera TILEPro multicore architecture family */ -#define EM_MICROBLAZE 189 /* Xilinx MicroBlaze 32-bit RISC soft processor core */ -#define EM_CUDA 190 /* NVIDIA CUDA architecture */ -#define EM_TILEGX 191 /* Tilera TILE-Gx multicore architecture family */ -#define EM_RL78 197 /* Renesas RL78 family. */ -#define EM_78K0R 199 /* Renesas 78K0R. */ -#define EM_INTEL205 205 /* Reserved by Intel */ -#define EM_INTEL206 206 /* Reserved by Intel */ -#define EM_INTEL207 207 /* Reserved by Intel */ -#define EM_INTEL208 208 /* Reserved by Intel */ -#define EM_INTEL209 209 /* Reserved by Intel */ - -/* If it is necessary to assign new unofficial EM_* values, please pick large - random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision - with official or non-GNU unofficial values. - - NOTE: Do not just increment the most recent number by one. - Somebody else somewhere will do exactly the same thing, and you - will have a collision. Instead, pick a random number. - - Normally, each entity or maintainer responsible for a machine with an - unofficial e_machine number should eventually ask registry@sco.com for - an officially blessed number to be added to the list above. */ - -/* Old version of Sparc v9, from before the ABI; - This should be removed shortly. */ -#define EM_OLD_SPARCV9 11 - -/* Old version of PowerPC, this should be removed shortly. */ -#define EM_PPC_OLD 17 - -/* picoJava */ -#define EM_PJ_OLD 99 - -/* Old, unofficial value for National Semiconductor CompactRISC - CR16 */ -#define EM_CR16_OLD 115 - -/* AVR magic number. Written in the absense of an ABI. */ -#define EM_AVR_OLD 0x1057 - -/* MSP430 magic number. Written in the absense of everything. */ -#define EM_MSP430_OLD 0x1059 - -/* Morpho MT. Written in the absense of an ABI. */ -#define EM_MT 0x2530 - -/* FR30 magic number - no EABI available. */ -#define EM_CYGNUS_FR30 0x3330 - -/* OpenRISC magic number. Written in the absense of an ABI. */ -#define EM_OPENRISC_OLD 0x3426 - -/* DLX magic number. Written in the absense of an ABI. */ -#define EM_DLX 0x5aa5 - -/* FRV magic number - no EABI available??. */ -#define EM_CYGNUS_FRV 0x5441 - -/* Infineon Technologies 16-bit microcontroller with C166-V2 core. */ -#define EM_XC16X 0x4688 - -/* D10V backend magic number. Written in the absence of an ABI. */ -#define EM_CYGNUS_D10V 0x7650 - -/* D30V backend magic number. Written in the absence of an ABI. */ -#define EM_CYGNUS_D30V 0x7676 - -/* Ubicom IP2xxx; Written in the absense of an ABI. */ -#define EM_IP2K_OLD 0x8217 - -/* (Deprecated) Temporary number for the OpenRISC processor. */ -#define EM_OR32 0x8472 - -/* Cygnus PowerPC ELF backend. Written in the absence of an ABI. */ -#define EM_CYGNUS_POWERPC 0x9025 - -/* Alpha backend magic number. Written in the absence of an ABI. */ -#define EM_ALPHA 0x9026 - -/* Cygnus M32R ELF backend. Written in the absence of an ABI. */ -#define EM_CYGNUS_M32R 0x9041 - -/* V850 backend magic number. Written in the absense of an ABI. */ -#define EM_CYGNUS_V850 0x9080 - -/* old S/390 backend magic number. Written in the absence of an ABI. */ -#define EM_S390_OLD 0xa390 - -/* Old, unofficial value for Xtensa. */ -#define EM_XTENSA_OLD 0xabc7 - -#define EM_XSTORMY16 0xad45 - -/* mn10200 and mn10300 backend magic numbers. - Written in the absense of an ABI. */ -#define EM_CYGNUS_MN10300 0xbeef -#define EM_CYGNUS_MN10200 0xdead - -/* Renesas M32C and M16C. */ -#define EM_M32C_OLD 0xFEB0 - -/* Vitesse IQ2000. */ -#define EM_IQ2000 0xFEBA - -/* NIOS magic number - no EABI available. */ -#define EM_NIOS32 0xFEBB - -#define EM_CYGNUS_MEP 0xF00D /* Toshiba MeP */ - -#define EM_MOXIE 0xFEED /* Moxie */ - -/* Old Sunplus S+core7 backend magic number. Written in the absence of an ABI. */ -#define EM_SCORE_OLD 95 - -#define EM_MICROBLAZE_OLD 0xbaab /* Old MicroBlaze */ - -#define EM_ADAPTEVA_EPIPHANY 0x1223 /* Adapteva's Epiphany architecture. */ - -/* See the above comment before you add a new EM_* value here. */ - -/* Values for e_version. */ - -#define EV_NONE 0 /* Invalid ELF version */ -#define EV_CURRENT 1 /* Current version */ - -/* Value for e_phnum. */ -#define PN_XNUM 0xffff /* Extended numbering */ - -/* Values for program header, p_type field. */ - -#define PT_NULL 0 /* Program header table entry unused */ -#define PT_LOAD 1 /* Loadable program segment */ -#define PT_DYNAMIC 2 /* Dynamic linking information */ -#define PT_INTERP 3 /* Program interpreter */ -#define PT_NOTE 4 /* Auxiliary information */ -#define PT_SHLIB 5 /* Reserved, unspecified semantics */ -#define PT_PHDR 6 /* Entry for header table itself */ -#define PT_TLS 7 /* Thread local storage segment */ -#define PT_LOOS 0x60000000 /* OS-specific */ -#define PT_HIOS 0x6fffffff /* OS-specific */ -#define PT_LOPROC 0x70000000 /* Processor-specific */ -#define PT_HIPROC 0x7FFFFFFF /* Processor-specific */ - -#define PT_GNU_EH_FRAME (PT_LOOS + 0x474e550) /* Frame unwind information */ -#define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME /* Solaris uses the same value */ -#define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */ -#define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */ - -/* Program segment permissions, in program header p_flags field. */ - -#define PF_X (1 << 0) /* Segment is executable */ -#define PF_W (1 << 1) /* Segment is writable */ -#define PF_R (1 << 2) /* Segment is readable */ -/* #define PF_MASKOS 0x0F000000 *//* OS-specific reserved bits */ -#define PF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */ -#define PF_MASKPROC 0xF0000000 /* Processor-specific reserved bits */ - -/* Values for section header, sh_type field. */ - -#define SHT_NULL 0 /* Section header table entry unused */ -#define SHT_PROGBITS 1 /* Program specific (private) data */ -#define SHT_SYMTAB 2 /* Link editing symbol table */ -#define SHT_STRTAB 3 /* A string table */ -#define SHT_RELA 4 /* Relocation entries with addends */ -#define SHT_HASH 5 /* A symbol hash table */ -#define SHT_DYNAMIC 6 /* Information for dynamic linking */ -#define SHT_NOTE 7 /* Information that marks file */ -#define SHT_NOBITS 8 /* Section occupies no space in file */ -#define SHT_REL 9 /* Relocation entries, no addends */ -#define SHT_SHLIB 10 /* Reserved, unspecified semantics */ -#define SHT_DYNSYM 11 /* Dynamic linking symbol table */ - -#define SHT_INIT_ARRAY 14 /* Array of ptrs to init functions */ -#define SHT_FINI_ARRAY 15 /* Array of ptrs to finish functions */ -#define SHT_PREINIT_ARRAY 16 /* Array of ptrs to pre-init funcs */ -#define SHT_GROUP 17 /* Section contains a section group */ -#define SHT_SYMTAB_SHNDX 18 /* Indicies for SHN_XINDEX entries */ - -#define SHT_LOOS 0x60000000 /* First of OS specific semantics */ -#define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */ - -#define SHT_GNU_INCREMENTAL_INPUTS 0x6fff4700 /* incremental build data */ -#define SHT_GNU_ATTRIBUTES 0x6ffffff5 /* Object attributes */ -#define SHT_GNU_HASH 0x6ffffff6 /* GNU style symbol hash table */ -#define SHT_GNU_LIBLIST 0x6ffffff7 /* List of prelink dependencies */ - -/* The next three section types are defined by Solaris, and are named - SHT_SUNW*. We use them in GNU code, so we also define SHT_GNU* - versions. */ -#define SHT_SUNW_verdef 0x6ffffffd /* Versions defined by file */ -#define SHT_SUNW_verneed 0x6ffffffe /* Versions needed by file */ -#define SHT_SUNW_versym 0x6fffffff /* Symbol versions */ - -#define SHT_GNU_verdef SHT_SUNW_verdef -#define SHT_GNU_verneed SHT_SUNW_verneed -#define SHT_GNU_versym SHT_SUNW_versym - -#define SHT_LOPROC 0x70000000 /* Processor-specific semantics, lo */ -#define SHT_HIPROC 0x7FFFFFFF /* Processor-specific semantics, hi */ -#define SHT_LOUSER 0x80000000 /* Application-specific semantics */ -/* #define SHT_HIUSER 0x8FFFFFFF *//* Application-specific semantics */ -#define SHT_HIUSER 0xFFFFFFFF /* New value, defined in Oct 4, 1999 Draft */ - -/* Values for section header, sh_flags field. */ - -#define SHF_WRITE (1 << 0) /* Writable data during execution */ -#define SHF_ALLOC (1 << 1) /* Occupies memory during execution */ -#define SHF_EXECINSTR (1 << 2) /* Executable machine instructions */ -#define SHF_MERGE (1 << 4) /* Data in this section can be merged */ -#define SHF_STRINGS (1 << 5) /* Contains null terminated character strings */ -#define SHF_INFO_LINK (1 << 6) /* sh_info holds section header table index */ -#define SHF_LINK_ORDER (1 << 7) /* Preserve section ordering when linking */ -#define SHF_OS_NONCONFORMING (1 << 8) /* OS specific processing required */ -#define SHF_GROUP (1 << 9) /* Member of a section group */ -#define SHF_TLS (1 << 10) /* Thread local storage section */ - -/* #define SHF_MASKOS 0x0F000000 *//* OS-specific semantics */ -#define SHF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */ -#define SHF_MASKPROC 0xF0000000 /* Processor-specific semantics */ - -/* This used to be implemented as a processor specific section flag. - We just make it generic. */ -#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude - this section from executable - and shared library that it - builds when those objects - are not to be further - relocated. */ - -/* Values of note segment descriptor types for core files. */ - -#define NT_PRSTATUS 1 /* Contains copy of prstatus struct */ -#define NT_FPREGSET 2 /* Contains copy of fpregset struct */ -#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */ -#define NT_TASKSTRUCT 4 /* Contains copy of task struct */ -#define NT_AUXV 6 /* Contains copy of Elfxx_auxv_t */ -#define NT_PRXFPREG 0x46e62b7f /* Contains a user_xfpregs_struct; */ - /* note name must be "LINUX". */ -#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */ - /* note name must be "LINUX". */ -#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */ - /* note name must be "LINUX". */ -#define NT_386_TLS 0x200 /* x86 TLS information */ - /* note name must be "LINUX". */ -#define NT_386_IOPERM 0x201 /* x86 io permissions */ - /* note name must be "LINUX". */ -#define NT_X86_XSTATE 0x202 /* x86 XSAVE extended state */ - /* note name must be "LINUX". */ -#define NT_S390_HIGH_GPRS 0x300 /* S/390 upper halves of GPRs */ - /* note name must be "LINUX". */ -#define NT_S390_TIMER 0x301 /* S390 timer */ - /* note name must be "LINUX". */ -#define NT_S390_TODCMP 0x302 /* S390 TOD clock comparator */ - /* note name must be "LINUX". */ -#define NT_S390_TODPREG 0x303 /* S390 TOD programmable register */ - /* note name must be "LINUX". */ -#define NT_S390_CTRS 0x304 /* S390 control registers */ - /* note name must be "LINUX". */ -#define NT_S390_PREFIX 0x305 /* S390 prefix register */ - /* note name must be "LINUX". */ -#define NT_S390_LAST_BREAK 0x306 /* S390 breaking event address */ - /* note name must be "LINUX". */ -#define NT_S390_SYSTEM_CALL 0x307 /* S390 system call restart data */ - /* note name must be "LINUX". */ -#define NT_S390_TDB 0x308 /* S390 transaction diagnostic block */ - /* note name must be "LINUX". */ -#define NT_ARM_VFP 0x400 /* ARM VFP registers */ -/* The following definitions should really use NT_AARCH_..., but defined - this way for compatibility with Linux. */ -#define NT_ARM_TLS 0x401 /* AArch TLS registers */ - /* note name must be "LINUX". */ -#define NT_ARM_HW_BREAK 0x402 /* AArch hardware breakpoint registers */ - /* note name must be "LINUX". */ -#define NT_ARM_HW_WATCH 0x403 /* AArch hardware watchpoint registers */ - /* note name must be "LINUX". */ -#define NT_SIGINFO 0x53494749 /* Fields of siginfo_t. */ -#define NT_FILE 0x46494c45 /* Description of mapped files. */ - -/* Note segments for core files on dir-style procfs systems. */ - -#define NT_PSTATUS 10 /* Has a struct pstatus */ -#define NT_FPREGS 12 /* Has a struct fpregset */ -#define NT_PSINFO 13 /* Has a struct psinfo */ -#define NT_LWPSTATUS 16 /* Has a struct lwpstatus_t */ -#define NT_LWPSINFO 17 /* Has a struct lwpsinfo_t */ -#define NT_WIN32PSTATUS 18 /* Has a struct win32_pstatus */ - -/* Note segment for SystemTap probes. */ -#define NT_STAPSDT 3 - -/* Note segments for core files on NetBSD systems. Note name - must start with "NetBSD-CORE". */ - -#define NT_NETBSDCORE_PROCINFO 1 /* Has a struct procinfo */ -#define NT_NETBSDCORE_FIRSTMACH 32 /* start of machdep note types */ - - -/* Note segments for core files on OpenBSD systems. Note name is - "OpenBSD". */ - -#define NT_OPENBSD_PROCINFO 10 -#define NT_OPENBSD_AUXV 11 -#define NT_OPENBSD_REGS 20 -#define NT_OPENBSD_FPREGS 21 -#define NT_OPENBSD_XFPREGS 22 -#define NT_OPENBSD_WCOOKIE 23 - - -/* Note segments for core files on SPU systems. Note name - must start with "SPU/". */ - -#define NT_SPU 1 - -/* Values of note segment descriptor types for object files. */ - -#define NT_VERSION 1 /* Contains a version string. */ -#define NT_ARCH 2 /* Contains an architecture string. */ - -/* Values for notes in non-core files using name "GNU". */ - -#define NT_GNU_ABI_TAG 1 -#define NT_GNU_HWCAP 2 /* Used by ld.so and kernel vDSO. */ -#define NT_GNU_BUILD_ID 3 /* Generated by ld --build-id. */ -#define NT_GNU_GOLD_VERSION 4 /* Generated by gold. */ - -/* Values used in GNU .note.ABI-tag notes (NT_GNU_ABI_TAG). */ -#define GNU_ABI_TAG_LINUX 0 -#define GNU_ABI_TAG_HURD 1 -#define GNU_ABI_TAG_SOLARIS 2 -#define GNU_ABI_TAG_FREEBSD 3 -#define GNU_ABI_TAG_NETBSD 4 - -/* Values for NetBSD .note.netbsd.ident notes. Note name is "NetBSD". */ - -#define NT_NETBSD_IDENT 1 - -/* Values for OpenBSD .note.openbsd.ident notes. Note name is "OpenBSD". */ - -#define NT_OPENBSD_IDENT 1 - -/* Values for FreeBSD .note.ABI-tag notes. Note name is "FreeBSD". */ - -#define NT_FREEBSD_ABI_TAG 1 - -/* These three macros disassemble and assemble a symbol table st_info field, - which contains the symbol binding and symbol type. The STB_ and STT_ - defines identify the binding and type. */ - -#define ELF_ST_BIND(val) (((unsigned int)(val)) >> 4) -#define ELF_ST_TYPE(val) ((val) & 0xF) -#define ELF_ST_INFO(bind,type) (((bind) << 4) + ((type) & 0xF)) - -/* The 64bit and 32bit versions of these macros are identical, but - the ELF spec defines them, so here they are. */ -#define ELF32_ST_BIND ELF_ST_BIND -#define ELF32_ST_TYPE ELF_ST_TYPE -#define ELF32_ST_INFO ELF_ST_INFO -#define ELF64_ST_BIND ELF_ST_BIND -#define ELF64_ST_TYPE ELF_ST_TYPE -#define ELF64_ST_INFO ELF_ST_INFO - -/* This macro disassembles and assembles a symbol's visibility into - the st_other field. The STV_ defines specify the actual visibility. */ - -#define ELF_ST_VISIBILITY(v) ((v) & 0x3) -/* The remaining bits in the st_other field are not currently used. - They should be set to zero. */ - -#define ELF32_ST_VISIBILITY ELF_ST_VISIBILITY -#define ELF64_ST_VISIBILITY ELF_ST_VISIBILITY - - -#define STN_UNDEF 0 /* Undefined symbol index */ - -#define STB_LOCAL 0 /* Symbol not visible outside obj */ -#define STB_GLOBAL 1 /* Symbol visible outside obj */ -#define STB_WEAK 2 /* Like globals, lower precedence */ -#define STB_LOOS 10 /* OS-specific semantics */ -#define STB_GNU_UNIQUE 10 /* Symbol is unique in namespace */ -#define STB_HIOS 12 /* OS-specific semantics */ -#define STB_LOPROC 13 /* Processor-specific semantics */ -#define STB_HIPROC 15 /* Processor-specific semantics */ - -#define STT_NOTYPE 0 /* Symbol type is unspecified */ -#define STT_OBJECT 1 /* Symbol is a data object */ -#define STT_FUNC 2 /* Symbol is a code object */ -#define STT_SECTION 3 /* Symbol associated with a section */ -#define STT_FILE 4 /* Symbol gives a file name */ -#define STT_COMMON 5 /* An uninitialised common block */ -#define STT_TLS 6 /* Thread local data object */ -#define STT_RELC 8 /* Complex relocation expression */ -#define STT_SRELC 9 /* Signed Complex relocation expression */ -#define STT_LOOS 10 /* OS-specific semantics */ -#define STT_GNU_IFUNC 10 /* Symbol is an indirect code object */ -#define STT_HIOS 12 /* OS-specific semantics */ -#define STT_LOPROC 13 /* Processor-specific semantics */ -#define STT_HIPROC 15 /* Processor-specific semantics */ - -/* The following constants control how a symbol may be accessed once it has - become part of an executable or shared library. */ - -#define STV_DEFAULT 0 /* Visibility is specified by binding type */ -#define STV_INTERNAL 1 /* OS specific version of STV_HIDDEN */ -#define STV_HIDDEN 2 /* Can only be seen inside currect component */ -#define STV_PROTECTED 3 /* Treat as STB_LOCAL inside current component */ - -/* Relocation info handling macros. */ - -#define ELF32_R_SYM(i) ((i) >> 8) -#define ELF32_R_TYPE(i) ((i) & 0xff) -#define ELF32_R_INFO(s,t) (((s) << 8) + ((t) & 0xff)) - -#define ELF64_R_SYM(i) ((i) >> 32) -#define ELF64_R_TYPE(i) ((i) & 0xffffffff) -#define ELF64_R_INFO(s,t) (((bfd_vma) (s) << 31 << 1) + (bfd_vma) (t)) - -/* Dynamic section tags. */ - -#define DT_NULL 0 -#define DT_NEEDED 1 -#define DT_PLTRELSZ 2 -#define DT_PLTGOT 3 -#define DT_HASH 4 -#define DT_STRTAB 5 -#define DT_SYMTAB 6 -#define DT_RELA 7 -#define DT_RELASZ 8 -#define DT_RELAENT 9 -#define DT_STRSZ 10 -#define DT_SYMENT 11 -#define DT_INIT 12 -#define DT_FINI 13 -#define DT_SONAME 14 -#define DT_RPATH 15 -#define DT_SYMBOLIC 16 -#define DT_REL 17 -#define DT_RELSZ 18 -#define DT_RELENT 19 -#define DT_PLTREL 20 -#define DT_DEBUG 21 -#define DT_TEXTREL 22 -#define DT_JMPREL 23 -#define DT_BIND_NOW 24 -#define DT_INIT_ARRAY 25 -#define DT_FINI_ARRAY 26 -#define DT_INIT_ARRAYSZ 27 -#define DT_FINI_ARRAYSZ 28 -#define DT_RUNPATH 29 -#define DT_FLAGS 30 -#define DT_ENCODING 32 -#define DT_PREINIT_ARRAY 32 -#define DT_PREINIT_ARRAYSZ 33 - -/* Note, the Oct 4, 1999 draft of the ELF ABI changed the values - for DT_LOOS and DT_HIOS. Some implementations however, use - values outside of the new range (see below). */ -#define OLD_DT_LOOS 0x60000000 -#define DT_LOOS 0x6000000d -#define DT_HIOS 0x6ffff000 -#define OLD_DT_HIOS 0x6fffffff - -#define DT_LOPROC 0x70000000 -#define DT_HIPROC 0x7fffffff - -/* The next 2 dynamic tag ranges, integer value range (DT_VALRNGLO to - DT_VALRNGHI) and virtual address range (DT_ADDRRNGLO to DT_ADDRRNGHI), - are used on Solaris. We support them everywhere. Note these values - lie outside of the (new) range for OS specific values. This is a - deliberate special case and we maintain it for backwards compatability. - */ -#define DT_VALRNGLO 0x6ffffd00 -#define DT_GNU_PRELINKED 0x6ffffdf5 -#define DT_GNU_CONFLICTSZ 0x6ffffdf6 -#define DT_GNU_LIBLISTSZ 0x6ffffdf7 -#define DT_CHECKSUM 0x6ffffdf8 -#define DT_PLTPADSZ 0x6ffffdf9 -#define DT_MOVEENT 0x6ffffdfa -#define DT_MOVESZ 0x6ffffdfb -#define DT_FEATURE 0x6ffffdfc -#define DT_POSFLAG_1 0x6ffffdfd -#define DT_SYMINSZ 0x6ffffdfe -#define DT_SYMINENT 0x6ffffdff -#define DT_VALRNGHI 0x6ffffdff - -#define DT_ADDRRNGLO 0x6ffffe00 -#define DT_GNU_HASH 0x6ffffef5 -#define DT_TLSDESC_PLT 0x6ffffef6 -#define DT_TLSDESC_GOT 0x6ffffef7 -#define DT_GNU_CONFLICT 0x6ffffef8 -#define DT_GNU_LIBLIST 0x6ffffef9 -#define DT_CONFIG 0x6ffffefa -#define DT_DEPAUDIT 0x6ffffefb -#define DT_AUDIT 0x6ffffefc -#define DT_PLTPAD 0x6ffffefd -#define DT_MOVETAB 0x6ffffefe -#define DT_SYMINFO 0x6ffffeff -#define DT_ADDRRNGHI 0x6ffffeff - -#define DT_RELACOUNT 0x6ffffff9 -#define DT_RELCOUNT 0x6ffffffa -#define DT_FLAGS_1 0x6ffffffb -#define DT_VERDEF 0x6ffffffc -#define DT_VERDEFNUM 0x6ffffffd -#define DT_VERNEED 0x6ffffffe -#define DT_VERNEEDNUM 0x6fffffff - -/* This tag is a GNU extension to the Solaris version scheme. */ -#define DT_VERSYM 0x6ffffff0 - -#define DT_LOPROC 0x70000000 -#define DT_HIPROC 0x7fffffff - -/* These section tags are used on Solaris. We support them - everywhere, and hope they do not conflict. */ - -#define DT_AUXILIARY 0x7ffffffd -#define DT_USED 0x7ffffffe -#define DT_FILTER 0x7fffffff - - -/* Values used in DT_FEATURE .dynamic entry. */ -#define DTF_1_PARINIT 0x00000001 -/* From - - http://docs.sun.com:80/ab2/coll.45.13/LLM/@Ab2PageView/21165?Ab2Lang=C&Ab2Enc=iso-8859-1 - - DTF_1_CONFEXP is the same as DTF_1_PARINIT. It is a typo. The value - defined here is the same as the one in on Solaris 8. */ -#define DTF_1_CONFEXP 0x00000002 - -/* Flag values used in the DT_POSFLAG_1 .dynamic entry. */ -#define DF_P1_LAZYLOAD 0x00000001 -#define DF_P1_GROUPPERM 0x00000002 - -/* Flag value in in the DT_FLAGS_1 .dynamic entry. */ -#define DF_1_NOW 0x00000001 -#define DF_1_GLOBAL 0x00000002 -#define DF_1_GROUP 0x00000004 -#define DF_1_NODELETE 0x00000008 -#define DF_1_LOADFLTR 0x00000010 -#define DF_1_INITFIRST 0x00000020 -#define DF_1_NOOPEN 0x00000040 -#define DF_1_ORIGIN 0x00000080 -#define DF_1_DIRECT 0x00000100 -#define DF_1_TRANS 0x00000200 -#define DF_1_INTERPOSE 0x00000400 -#define DF_1_NODEFLIB 0x00000800 -#define DF_1_NODUMP 0x00001000 -#define DF_1_CONFALT 0x00002000 -#define DF_1_ENDFILTEE 0x00004000 -#define DF_1_DISPRELDNE 0x00008000 -#define DF_1_DISPRELPND 0x00010000 -#define DF_1_NODIRECT 0x00020000 -#define DF_1_IGNMULDEF 0x00040000 -#define DF_1_NOKSYMS 0x00080000 -#define DF_1_NOHDR 0x00100000 -#define DF_1_EDITED 0x00200000 -#define DF_1_NORELOC 0x00400000 -#define DF_1_SYMINTPOSE 0x00800000 -#define DF_1_GLOBAUDIT 0x01000000 -#define DF_1_SINGLETON 0x02000000 - -/* Flag values for the DT_FLAGS entry. */ -#define DF_ORIGIN (1 << 0) -#define DF_SYMBOLIC (1 << 1) -#define DF_TEXTREL (1 << 2) -#define DF_BIND_NOW (1 << 3) -#define DF_STATIC_TLS (1 << 4) - -/* These constants are used for the version number of a Elf32_Verdef - structure. */ - -#define VER_DEF_NONE 0 -#define VER_DEF_CURRENT 1 - -/* These constants appear in the vd_flags field of a Elf32_Verdef - structure. - - Cf. the Solaris Linker and Libraries Guide, Ch. 7, Object File Format, - Versioning Sections, for a description: - - http://docs.sun.com/app/docs/doc/819-0690/chapter6-93046?l=en&a=view */ - -#define VER_FLG_BASE 0x1 -#define VER_FLG_WEAK 0x2 -#define VER_FLG_INFO 0x4 - -/* These special constants can be found in an Elf32_Versym field. */ - -#define VER_NDX_LOCAL 0 -#define VER_NDX_GLOBAL 1 - -/* These constants are used for the version number of a Elf32_Verneed - structure. */ - -#define VER_NEED_NONE 0 -#define VER_NEED_CURRENT 1 - -/* This flag appears in a Versym structure. It means that the symbol - is hidden, and is only visible with an explicit version number. - This is a GNU extension. */ - -#define VERSYM_HIDDEN 0x8000 - -/* This is the mask for the rest of the Versym information. */ - -#define VERSYM_VERSION 0x7fff - -/* This is a special token which appears as part of a symbol name. It - indictes that the rest of the name is actually the name of a - version node, and is not part of the actual name. This is a GNU - extension. For example, the symbol name `stat@ver2' is taken to - mean the symbol `stat' in version `ver2'. */ - -#define ELF_VER_CHR '@' - -/* Possible values for si_boundto. */ - -#define SYMINFO_BT_SELF 0xffff /* Symbol bound to self */ -#define SYMINFO_BT_PARENT 0xfffe /* Symbol bound to parent */ -#define SYMINFO_BT_LOWRESERVE 0xff00 /* Beginning of reserved entries */ - -/* Possible bitmasks for si_flags. */ - -#define SYMINFO_FLG_DIRECT 0x0001 /* Direct bound symbol */ -#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-thru symbol for translator */ -#define SYMINFO_FLG_COPY 0x0004 /* Symbol is a copy-reloc */ -#define SYMINFO_FLG_LAZYLOAD 0x0008 /* Symbol bound to object to be lazy loaded */ - -/* Syminfo version values. */ - -#define SYMINFO_NONE 0 -#define SYMINFO_CURRENT 1 -#define SYMINFO_NUM 2 - -/* Section Group Flags. */ - -#define GRP_COMDAT 0x1 /* A COMDAT group */ - -/* Auxv a_type values. */ - -#define AT_NULL 0 /* End of vector */ -#define AT_IGNORE 1 /* Entry should be ignored */ -#define AT_EXECFD 2 /* File descriptor of program */ -#define AT_PHDR 3 /* Program headers for program */ -#define AT_PHENT 4 /* Size of program header entry */ -#define AT_PHNUM 5 /* Number of program headers */ -#define AT_PAGESZ 6 /* System page size */ -#define AT_BASE 7 /* Base address of interpreter */ -#define AT_FLAGS 8 /* Flags */ -#define AT_ENTRY 9 /* Entry point of program */ -#define AT_NOTELF 10 /* Program is not ELF */ -#define AT_UID 11 /* Real uid */ -#define AT_EUID 12 /* Effective uid */ -#define AT_GID 13 /* Real gid */ -#define AT_EGID 14 /* Effective gid */ -#define AT_CLKTCK 17 /* Frequency of times() */ -#define AT_PLATFORM 15 /* String identifying platform. */ -#define AT_HWCAP 16 /* Machine dependent hints about - processor capabilities. */ -#define AT_FPUCW 18 /* Used FPU control word. */ -#define AT_DCACHEBSIZE 19 /* Data cache block size. */ -#define AT_ICACHEBSIZE 20 /* Instruction cache block size. */ -#define AT_UCACHEBSIZE 21 /* Unified cache block size. */ -#define AT_IGNOREPPC 22 /* Entry should be ignored */ -#define AT_SECURE 23 /* Boolean, was exec setuid-like? */ -#define AT_BASE_PLATFORM 24 /* String identifying real platform, - may differ from AT_PLATFORM. */ -#define AT_RANDOM 25 /* Address of 16 random bytes. */ -#define AT_EXECFN 31 /* Filename of executable. */ -/* Pointer to the global system page used for system calls and other - nice things. */ -#define AT_SYSINFO 32 -#define AT_SYSINFO_EHDR 33 /* Pointer to ELF header of system-supplied DSO. */ - -/* More complete cache descriptions than AT_[DIU]CACHEBSIZE. If the - value is -1, then the cache doesn't exist. Otherwise: - - bit 0-3: Cache set-associativity; 0 means fully associative. - bit 4-7: Log2 of cacheline size. - bit 8-31: Size of the entire cache >> 8. */ - -#define AT_L1I_CACHESHAPE 34 -#define AT_L1D_CACHESHAPE 35 -#define AT_L2_CACHESHAPE 36 -#define AT_L3_CACHESHAPE 37 - -#define AT_SUN_UID 2000 /* Effective user ID. */ -#define AT_SUN_RUID 2001 /* Real user ID. */ -#define AT_SUN_GID 2002 /* Effective group ID. */ -#define AT_SUN_RGID 2003 /* Real group ID. */ -#define AT_SUN_LDELF 2004 /* Dynamic linker's ELF header. */ -#define AT_SUN_LDSHDR 2005 /* Dynamic linker's section headers. */ -#define AT_SUN_LDNAME 2006 /* String giving name of dynamic linker. */ -#define AT_SUN_LPAGESZ 2007 /* Large pagesize. */ -#define AT_SUN_PLATFORM 2008 /* Platform name string. */ -#define AT_SUN_HWCAP 2009 /* Machine dependent hints about - processor capabilities. */ -#define AT_SUN_IFLUSH 2010 /* Should flush icache? */ -#define AT_SUN_CPU 2011 /* CPU name string. */ -#define AT_SUN_EMUL_ENTRY 2012 /* COFF entry point address. */ -#define AT_SUN_EMUL_EXECFD 2013 /* COFF executable file descriptor. */ -#define AT_SUN_EXECNAME 2014 /* Canonicalized file name given to execve. */ -#define AT_SUN_MMU 2015 /* String for name of MMU module. */ -#define AT_SUN_LDDATA 2016 /* Dynamic linker's data segment address. */ -#define AT_SUN_AUXFLAGS 2017 /* AF_SUN_ flags passed from the kernel. */ - - -#endif /* _ELF_COMMON_H */ diff --git a/include/elf/cr16.h b/include/elf/cr16.h deleted file mode 100644 index 3278474..0000000 --- a/include/elf/cr16.h +++ /dev/null @@ -1,62 +0,0 @@ -/* CR16 ELF support for BFD. - Copyright 2007, 2010 Free Software Foundation, Inc. - Contributed by M R Swami Reddy. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_CR16_H -#define _ELF_CR16_H - -#include "elf/reloc-macros.h" - -/* Creating indices for reloc_map_index array. */ -START_RELOC_NUMBERS(elf_cr16_reloc_type) - RELOC_NUMBER (R_CR16_NONE, 0) - RELOC_NUMBER (R_CR16_NUM8, 1) - RELOC_NUMBER (R_CR16_NUM16, 2) - RELOC_NUMBER (R_CR16_NUM32, 3) - RELOC_NUMBER (R_CR16_NUM32a, 4) - RELOC_NUMBER (R_CR16_REGREL4, 5) - RELOC_NUMBER (R_CR16_REGREL4a, 6) - RELOC_NUMBER (R_CR16_REGREL14, 7) - RELOC_NUMBER (R_CR16_REGREL14a, 8) - RELOC_NUMBER (R_CR16_REGREL16, 9) - RELOC_NUMBER (R_CR16_REGREL20, 10) - RELOC_NUMBER (R_CR16_REGREL20a, 11) - RELOC_NUMBER (R_CR16_ABS20, 12) - RELOC_NUMBER (R_CR16_ABS24, 13) - RELOC_NUMBER (R_CR16_IMM4, 14) - RELOC_NUMBER (R_CR16_IMM8, 15) - RELOC_NUMBER (R_CR16_IMM16, 16) - RELOC_NUMBER (R_CR16_IMM20, 17) - RELOC_NUMBER (R_CR16_IMM24, 18) - RELOC_NUMBER (R_CR16_IMM32, 19) - RELOC_NUMBER (R_CR16_IMM32a, 20) - RELOC_NUMBER (R_CR16_DISP4, 21) - RELOC_NUMBER (R_CR16_DISP8, 22) - RELOC_NUMBER (R_CR16_DISP16, 23) - RELOC_NUMBER (R_CR16_DISP24, 24) - RELOC_NUMBER (R_CR16_DISP24a, 25) - RELOC_NUMBER (R_CR16_SWITCH8, 26) - RELOC_NUMBER (R_CR16_SWITCH16, 27) - RELOC_NUMBER (R_CR16_SWITCH32, 28) - RELOC_NUMBER (R_CR16_GOT_REGREL20, 29) - RELOC_NUMBER (R_CR16_GOTC_REGREL20, 30) - RELOC_NUMBER (R_CR16_GLOB_DAT, 31) -END_RELOC_NUMBERS(R_CR16_MAX) - -#endif /* _ELF_CR16_H */ diff --git a/include/elf/cr16c.h b/include/elf/cr16c.h deleted file mode 100644 index dbefb0a..0000000 --- a/include/elf/cr16c.h +++ /dev/null @@ -1,258 +0,0 @@ -/* CR16C ELF support for BFD. - Copyright 2004, 2008, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_CR16C_H -#define _ELF_CR16C_H - -#include "bfd.h" -#include "elf/reloc-macros.h" - -/* Creating indices for reloc_map_index array. */ -START_RELOC_NUMBERS (elf_cr16c_reloc_type) - RELOC_NUMBER (RINDEX_16C_NUM08, 0) - RELOC_NUMBER (RINDEX_16C_NUM08_C, 1) - RELOC_NUMBER (RINDEX_16C_NUM16, 2) - RELOC_NUMBER (RINDEX_16C_NUM16_C, 3) - RELOC_NUMBER (RINDEX_16C_NUM32, 4) - RELOC_NUMBER (RINDEX_16C_NUM32_C, 5) - RELOC_NUMBER (RINDEX_16C_DISP04, 6) - RELOC_NUMBER (RINDEX_16C_DISP04_C, 7) - RELOC_NUMBER (RINDEX_16C_DISP08, 8) - RELOC_NUMBER (RINDEX_16C_DISP08_C, 9) - RELOC_NUMBER (RINDEX_16C_DISP16, 10) - RELOC_NUMBER (RINDEX_16C_DISP16_C, 11) - RELOC_NUMBER (RINDEX_16C_DISP24, 12) - RELOC_NUMBER (RINDEX_16C_DISP24_C, 13) - RELOC_NUMBER (RINDEX_16C_DISP24a, 14) - RELOC_NUMBER (RINDEX_16C_DISP24a_C, 15) - RELOC_NUMBER (RINDEX_16C_REG04, 16) - RELOC_NUMBER (RINDEX_16C_REG04_C, 17) - RELOC_NUMBER (RINDEX_16C_REG04a, 18) - RELOC_NUMBER (RINDEX_16C_REG04a_C, 19) - RELOC_NUMBER (RINDEX_16C_REG14, 20) - RELOC_NUMBER (RINDEX_16C_REG14_C, 21) - RELOC_NUMBER (RINDEX_16C_REG16, 22) - RELOC_NUMBER (RINDEX_16C_REG16_C, 23) - RELOC_NUMBER (RINDEX_16C_REG20, 24) - RELOC_NUMBER (RINDEX_16C_REG20_C, 25) - RELOC_NUMBER (RINDEX_16C_ABS20, 26) - RELOC_NUMBER (RINDEX_16C_ABS20_C, 27) - RELOC_NUMBER (RINDEX_16C_ABS24, 28) - RELOC_NUMBER (RINDEX_16C_ABS24_C, 29) - RELOC_NUMBER (RINDEX_16C_IMM04, 30) - RELOC_NUMBER (RINDEX_16C_IMM04_C, 31) - RELOC_NUMBER (RINDEX_16C_IMM16, 32) - RELOC_NUMBER (RINDEX_16C_IMM16_C, 33) - RELOC_NUMBER (RINDEX_16C_IMM20, 34) - RELOC_NUMBER (RINDEX_16C_IMM20_C, 35) - RELOC_NUMBER (RINDEX_16C_IMM24, 36) - RELOC_NUMBER (RINDEX_16C_IMM24_C, 37) - RELOC_NUMBER (RINDEX_16C_IMM32, 38) - RELOC_NUMBER (RINDEX_16C_IMM32_C, 39) -END_RELOC_NUMBERS (RINDEX_16C_MAX) - -/* CR16C Relocation Types ('cr_reloc_type' entry in the reloc_map structure). - The relocation constant name is determined as follows : - - R_16C_[_C] - - Where : - - is one of the following: - NUM - R_NUMBER mnemonic, - DISP - R_16C_DISPL mnemonic, - REG - R_16C_REGREL mnemonic, - ABS - R_16C_ABS mnemonic, - IMM - R_16C_IMMED mnemonic, - stands for R_S_16C_ - _C means 'code label' and is only added when R_ADDRTYPE subfield - is of type R_CODE_ADDR. */ - -/* The table below shows what the hex digits in the definition of the - relocation type constants correspond to. - ------------------------------------------------------------------ - R_SIZESP R_FORMAT R_RELTO R_ADDRTYPE - ------------------------------------------------------------------ */ -/* R_S_16C_08 R_NUMBER R_ABS R_ADDRESS */ -#define R_16C_NUM08 0X0001 - -/* R_S_16C_08 R_NUMBER R_ABS R_CODE_ADDR */ -#define R_16C_NUM08_C 0X0006 - -/* R_S_16C_16 R_NUMBER R_ABS R_ADDRESS */ -#define R_16C_NUM16 0X1001 - -/* R_S_16C_16 R_NUMBER R_ABS R_CODE_ADDR */ -#define R_16C_NUM16_C 0X1006 - -/* R_S_16C_32 R_NUMBER R_ABS R_ADDRESS */ -#define R_16C_NUM32 0X2001 - -/* R_S_16C_32 R_NUMBER R_ABS R_CODE_ADDR */ -#define R_16C_NUM32_C 0X2006 - -/* R_S_16C_04 R_16C_DISPL R_PCREL R_ADDRESS */ -#define R_16C_DISP04 0X5411 - -/* R_S_16C_04 R_16C_DISPL R_PCREL R_CODE_ADDR */ -#define R_16C_DISP04_C 0X5416 - -/* R_S_16C_08 R_16C_DISPL R_PCREL R_ADDRESS */ -#define R_16C_DISP08 0X0411 - -/* R_S_16C_08 R_16C_DISPL R_PCREL R_CODE_ADDR */ -#define R_16C_DISP08_C 0X0416 - -/* R_S_16C_16 R_16C_DISPL R_PCREL R_ADDRESS */ -#define R_16C_DISP16 0X1411 - -/* R_S_16C_16 R_16C_DISPL R_PCREL R_CODE_ADDR */ -#define R_16C_DISP16_C 0X1416 - -/* R_S_16C_24 R_16C_DISPL R_PCREL R_ADDRESS */ -#define R_16C_DISP24 0X7411 - -/* R_S_16C_24 R_16C_DISPL R_PCREL R_CODE_ADDR */ -#define R_16C_DISP24_C 0X7416 - -/* R_S_16C_24a R_16C_DISPL R_PCREL R_ADDRESS */ -#define R_16C_DISP24a 0X6411 - -/* R_S_16C_24a R_16C_DISPL R_PCREL R_CODE_ADDR */ -#define R_16C_DISP24a_C 0X6416 - -/* R_S_16C_04 R_16C_REGREL R_ABS R_ADDRESS */ -#define R_16C_REG04 0X5201 - -/* R_S_16C_04 R_16C_REGREL R_ABS R_CODE_ADDR */ -#define R_16C_REG04_C 0X5206 - -/* R_S_16C_04_a R_16C_REGREL R_ABS R_ADDRESS */ -#define R_16C_REG04a 0X4201 - -/* R_S_16C_04_a R_16C_REGREL R_ABS R_CODE_ADDR */ -#define R_16C_REG04a_C 0X4206 - -/* R_S_16C_14 R_16C_REGREL R_ABS R_ADDRESS */ -#define R_16C_REG14 0X3201 - -/* R_S_16C_14 R_16C_REGREL R_ABS R_CODE_ADDR */ -#define R_16C_REG14_C 0X3206 - -/* R_S_16C_16 R_16C_REGREL R_ABS R_ADDRESS */ -#define R_16C_REG16 0X1201 - -/* R_S_16C_16 R_16C_REGREL R_ABS R_CODE_ADDR */ -#define R_16C_REG16_C 0X1206 - -/* R_S_16C_20 R_16C_REGREL R_ABS R_ADDRESS */ -#define R_16C_REG20 0X8201 - -/* R_S_16C_20 R_16C_REGREL R_ABS R_CODE_ADDR */ -#define R_16C_REG20_C 0X8206 - -/* R_S_16C_20 R_16C_ABS R_ABS R_ADDRESS */ -#define R_16C_ABS20 0X8101 - -/* R_S_16C_20 R_16C_ABS R_ABS R_CODE_ADDR */ -#define R_16C_ABS20_C 0X8106 - -/* R_S_16C_24 R_16C_ABS R_ABS R_ADDRESS */ -#define R_16C_ABS24 0X7101 - -/* R_S_16C_24 R_16C_ABS R_ABS R_CODE_ADDR */ -#define R_16C_ABS24_C 0X7106 - -/* R_S_16C_04 R_16C_IMMED R_ABS R_ADDRESS */ -#define R_16C_IMM04 0X5301 - -/* R_S_16C_04 R_16C_IMMED R_ABS R_CODE_ADDR */ -#define R_16C_IMM04_C 0X5306 - -/* R_S_16C_16 R_16C_IMMED R_ABS R_ADDRESS */ -#define R_16C_IMM16 0X1301 - -/* R_S_16C_16 R_16C_IMMED R_ABS R_CODE_ADDR */ -#define R_16C_IMM16_C 0X1306 - -/* R_S_16C_20 R_16C_IMMED R_ABS R_ADDRESS */ -#define R_16C_IMM20 0X8301 - -/* R_S_16C_20 R_16C_IMMED R_ABS R_CODE_ADDR */ -#define R_16C_IMM20_C 0X8306 - -/* R_S_16C_24 R_16C_IMMED R_ABS R_ADDRESS */ -#define R_16C_IMM24 0X7301 - -/* R_S_16C_24 R_16C_IMMED R_ABS R_CODE_ADDR */ -#define R_16C_IMM24_C 0X7306 - -/* R_S_16C_32 R_16C_IMMED R_ABS R_ADDRESS */ -#define R_16C_IMM32 0X2301 - -/* R_S_16C_32 R_16C_IMMED R_ABS R_CODE_ADDR */ -#define R_16C_IMM32_C 0X2306 - - -/* Relocation item type. */ -#define R_ADDRTYPE 0x000f -#define R_ADDRESS 0x0001 /* Take address of symbol. */ -#define R_CODE_ADDR 0x0006 /* Take address of symbol divided by 2. */ - -/* Relocation action. */ -#define R_RELTO 0x00f0 -#define R_ABS 0x0000 /* Keep symbol's address as such. */ -#define R_PCREL 0x0010 /* Subtract the pc address of hole. */ - -/* Relocation item data format. */ -#define R_FORMAT 0x0f00 -#define R_NUMBER 0x0000 /* Retain as two's complement value. */ -#define R_16C_DISPL 0x0400 /* CR16C displacement type. */ -#define R_16C_ABS 0x0100 /* CR16C absolute type. */ -#define R_16C_REGREL 0x0200 /* CR16C register-relative type. */ -#define R_16C_IMMED 0x0300 /* CR16C immediate type. */ - -/* Relocation item size. */ -#define R_SIZESP 0xf000 -#define R_S_16C_04 0x5000 -#define R_S_16C_04_a 0x4000 -#define R_S_16C_08 0x0000 -#define R_S_16C_14 0x3000 -#define R_S_16C_16 0x1000 -#define R_S_16C_20 0x8000 -#define R_S_16C_24_a 0x6000 -#define R_S_16C_24 0x7000 -#define R_S_16C_32 0x2000 - - -/* Processor specific section indices. These sections do not actually - exist. Symbols with a st_shndx field corresponding to one of these - values have a special meaning. */ - -/* Far common symbol. */ -#define SHN_CR16C_FCOMMON SHN_LORESERVE -#define SHN_CR16C_NCOMMON (SHN_LORESERVE + 1) - -typedef struct reloc_map -{ - unsigned short cr_reloc_type; /* CR relocation type. */ - bfd_reloc_code_real_type bfd_reloc_enum; /* BFD relocation enum. */ -} RELOC_MAP; - -#endif /* _ELF_CR16C_H */ diff --git a/include/elf/cris.h b/include/elf/cris.h deleted file mode 100644 index 5889a90..0000000 --- a/include/elf/cris.h +++ /dev/null @@ -1,193 +0,0 @@ -/* CRIS ELF support for BFD. - Copyright 2000, 2001, 2004, 2010 Free Software Foundation, Inc. - Contributed by Axis Communications AB, Lund, Sweden. - Written by Hans-Peter Nilsson. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_CRIS_H -#define _ELF_CRIS_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_cris_reloc_type) - RELOC_NUMBER (R_CRIS_NONE, 0) - RELOC_NUMBER (R_CRIS_8, 1) - RELOC_NUMBER (R_CRIS_16, 2) - RELOC_NUMBER (R_CRIS_32, 3) - - /* The "PC" position is the location right after the relocation. */ - RELOC_NUMBER (R_CRIS_8_PCREL, 4) - RELOC_NUMBER (R_CRIS_16_PCREL, 5) - RELOC_NUMBER (R_CRIS_32_PCREL, 6) - - RELOC_NUMBER (R_CRIS_GNU_VTINHERIT, 7) - RELOC_NUMBER (R_CRIS_GNU_VTENTRY, 8) - - /* Copy contents at dynlinking. Generated by the linker. - The BFD equivalent is BFD_RELOC_CRIS_COPY. */ - RELOC_NUMBER (R_CRIS_COPY, 9) - - /* Create GOT entry. Generated by the linker. - The BFD equivalent is BFD_RELOC_CRIS_GLOB_DAT. */ - RELOC_NUMBER (R_CRIS_GLOB_DAT, 10) - - /* Create PLT entry. Generated by the linker. - The BFD equivalent is BFD_RELOC_CRIS_JUMP_SLOT. */ - RELOC_NUMBER (R_CRIS_JUMP_SLOT, 11) - - /* Adjust by program base. Generated by the linker. - The BFD equivalent is BFD_RELOC_CRIS_RELATIVE. */ - RELOC_NUMBER (R_CRIS_RELATIVE, 12) - - /* A 16-bit offset to entry in GOT and request to create GOT entry for - that symbol. - The BFD equivalent is BFD_RELOC_CRIS_16_GOT. */ - RELOC_NUMBER (R_CRIS_16_GOT, 13) - - /* A 32-bit offset to entry in GOT and request to create GOT entry for - that symbol. - The BFD equivalent is BFD_RELOC_CRIS_32_GOT. */ - RELOC_NUMBER (R_CRIS_32_GOT, 14) - - /* A 16-bit offset to entry in PLT part of GOT and request to create PLT - entry for that symbol. - The BFD equivalent is BFD_RELOC_CRIS_16_GOTPLT. */ - RELOC_NUMBER (R_CRIS_16_GOTPLT, 15) - - /* A 32-bit offset to entry in PLT part of GOT and request to create PLT - entry for that symbol. - The BFD equivalent is BFD_RELOC_CRIS_32_GOTPLT. */ - RELOC_NUMBER (R_CRIS_32_GOTPLT, 16) - - /* A 32-bit offset from GOT to (local) symbol: no GOT entry should be - necessary. - The BFD equivalent is BFD_RELOC_CRIS_32_GOTREL. */ - RELOC_NUMBER (R_CRIS_32_GOTREL, 17) - - /* A 32-bit offset from GOT to entry for this symbol in PLT and request - to create PLT entry for symbol. - The BFD equivalent is BFD_RELOC_CRIS_32_GOTREL. */ - RELOC_NUMBER (R_CRIS_32_PLT_GOTREL, 18) - - /* A 32-bit offset from location after this relocation (addend specifies - offset) to entry for this symbol in PLT and request to create PLT - entry for symbol. - The BFD equivalent is BFD_RELOC_CRIS_32_PLT_PCREL. */ - RELOC_NUMBER (R_CRIS_32_PLT_PCREL, 19) - - /* An assembler-generated-only relocation, instructing the linker to - reserve two GOT slots, carrying the R_CRIS_DTP relocation for the - symbol (pointing to the first slot, the relocation fills in - both). The value is a 32-bit-value, relative to the start of the - GOT. Assembly syntax: "sym:GDGOTREL". */ - RELOC_NUMBER (R_CRIS_32_GOT_GD, 20) - - /* Similar to R_CRIS_32_GOT_GD, but the value is a 16-bit unsigned - number, limiting access to 65536/4 global symbols per module (or - 65536/8 thread variables; loosely speaking G*4+T*8 < 65536, where - T is the number of thread variables and G is the number of other - external global variables and functions). Assembly syntax: - "sym:GDGOTREL16". */ - RELOC_NUMBER (R_CRIS_16_GOT_GD, 21) - - /* Similar to R_CRIS_32_GOT_GD, but the value is the absolute - address of the GOT entry. Disallowed in DSOs created with - -shared. Assembly syntax: "sym:GD". */ - RELOC_NUMBER (R_CRIS_32_GD, 22) - - /* A linker-generated-only relocation, instructing the dynamic - linker to fill in the module ID and module-relative-TLS-block - offset of the symbol in question, used for GOT entries. Note - that this relocation instructs to fill in two 32-bit values. */ - RELOC_NUMBER (R_CRIS_DTP, 23) - - /* An assembler-generated-only relocation, instructing the linker to - reserve the first two GOT slots, and attach the R_CRIS_DTPMOD - relocation(*) for the module to the first slot, the second - containing zero. The value is 32 bits, the offset from the start - of the TLS block of the module to the thread-local symbol - mentioned in the relocation. This relocation must only be applied - to module-local symbols. Assembly syntax: "expr:DTPREL". */ - RELOC_NUMBER (R_CRIS_32_DTPREL, 24) - - /* Similar to R_CRIS_32_DTPREL, but the value is a 16-bit signed - number, limiting the size of thread-variables of the DSO to 32768 - bytes. (Note: matches both model 1 and 2 and allows use of addo.w - as the instruction where this relocation is used.) Assembly - syntax: "expr:DTPREL16". */ - RELOC_NUMBER (R_CRIS_16_DTPREL, 25) - - /* An assembler-generated-only relocation, instructing the linker to - reserve a GOT slot and attach the R_CRIS_32_TPREL relocation for - the symbol in question. The value is 32 bits, which is the - GOT-relative offset of the slot. Assembly syntax: - "sym:TPOFFGOT". */ - RELOC_NUMBER (R_CRIS_32_GOT_TPREL, 26) - - /* Similar to R_CRIS_32_TPREL, but the value is a 16-bit positive - number, limiting the number of thread- and global variables of - the DSO to 32768/4. Assembly syntax: "sym:TPOFFGOT16". */ - RELOC_NUMBER (R_CRIS_16_GOT_TPREL, 27) - - /* An assembler- and linker-generated relocation, instructing to - resolve the symbol in question yielding the TLS offset of the - thread variable, relative to the global TLS block. Not allowed - as input when generating a DSO. Assembly syntax: - "expr:TPOFF". */ - RELOC_NUMBER (R_CRIS_32_TPREL, 28) - - /* Similar to R_CRIS_32_TPREL, but only applicable to executables - compiled with -msmall-tls. Not allowed in a DSO. The value is a - 16-bit signed number, limiting the size of thread-variables of - the executable to 32768 bytes. (Note: being signed makes it match - both model 1 and 2 and allows use of addo.w as the instruction - where this relocation is applied.) Assembly syntax: - "expr:TPOFF16". */ - RELOC_NUMBER (R_CRIS_16_TPREL, 29) - - /* A linker-generated-only relocation, instructing the dynamic - linker to fill in the current module ID, used for GOT entries - (usually the fourth one). */ - RELOC_NUMBER (R_CRIS_DTPMOD, 30) - - /* Similar to R_CRIS_32_GOT_TPREL, but the value is the absolute - address of the GOT entry. Disallowed in DSOs created with - -shared. Assembly syntax: "sym:IE". */ - RELOC_NUMBER (R_CRIS_32_IE, 31) - - /* No other relocs must be visible outside the assembler. */ - -END_RELOC_NUMBERS (R_CRIS_max) - -/* User symbols in this file have a leading underscore. */ -#define EF_CRIS_UNDERSCORE 0x00000001 - -/* This is a mask for different incompatible machine variants. */ -#define EF_CRIS_VARIANT_MASK 0x0000000e - -/* Variant 0; may contain v0..10 object. */ -#define EF_CRIS_VARIANT_ANY_V0_V10 0x00000000 - -/* Variant 1; contains v32 object. */ -#define EF_CRIS_VARIANT_V32 0x00000002 - -/* Variant 2; contains object compatible with v32 and v10. */ -#define EF_CRIS_VARIANT_COMMON_V10_V32 0x00000004 - -#endif /* _ELF_CRIS_H */ diff --git a/include/elf/crx.h b/include/elf/crx.h deleted file mode 100644 index 38428f2..0000000 --- a/include/elf/crx.h +++ /dev/null @@ -1,53 +0,0 @@ -/* CRX ELF support for BFD. - Copyright 2004, 2010 Free Software Foundation, Inc. - Contributed by Tomer Levi, NSC, Israel. - Originally written for GAS 2.12 by Tomer Levi, NSC, Israel. - Updates, BFDizing, GNUifying and ELF support by Tomer Levi. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_CRX_H -#define _ELF_CRX_H - -#include "elf/reloc-macros.h" - -/* Creating indices for reloc_map_index array. */ -START_RELOC_NUMBERS(elf_crx_reloc_type) - RELOC_NUMBER (R_CRX_NONE, 0) - RELOC_NUMBER (R_CRX_REL4, 1) - RELOC_NUMBER (R_CRX_REL8, 2) - RELOC_NUMBER (R_CRX_REL8_CMP, 3) - RELOC_NUMBER (R_CRX_REL16, 4) - RELOC_NUMBER (R_CRX_REL24, 5) - RELOC_NUMBER (R_CRX_REL32, 6) - RELOC_NUMBER (R_CRX_REGREL12, 7) - RELOC_NUMBER (R_CRX_REGREL22, 8) - RELOC_NUMBER (R_CRX_REGREL28, 9) - RELOC_NUMBER (R_CRX_REGREL32, 10) - RELOC_NUMBER (R_CRX_ABS16, 11) - RELOC_NUMBER (R_CRX_ABS32, 12) - RELOC_NUMBER (R_CRX_NUM8, 13) - RELOC_NUMBER (R_CRX_NUM16, 14) - RELOC_NUMBER (R_CRX_NUM32, 15) - RELOC_NUMBER (R_CRX_IMM16, 16) - RELOC_NUMBER (R_CRX_IMM32, 17) - RELOC_NUMBER (R_CRX_SWITCH8, 18) - RELOC_NUMBER (R_CRX_SWITCH16, 19) - RELOC_NUMBER (R_CRX_SWITCH32, 20) -END_RELOC_NUMBERS(R_CRX_MAX) - -#endif /* _ELF_CRX_H */ diff --git a/include/elf/d10v.h b/include/elf/d10v.h deleted file mode 100644 index 5850b37..0000000 --- a/include/elf/d10v.h +++ /dev/null @@ -1,38 +0,0 @@ -/* d10v ELF support for BFD. - Copyright 1998, 2000, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_D10V_H -#define _ELF_D10V_H - -#include "elf/reloc-macros.h" - -/* Relocation types. */ -START_RELOC_NUMBERS (elf_d10v_reloc_type) - RELOC_NUMBER (R_D10V_NONE, 0) - RELOC_NUMBER (R_D10V_10_PCREL_R, 1) - RELOC_NUMBER (R_D10V_10_PCREL_L, 2) - RELOC_NUMBER (R_D10V_16, 3) - RELOC_NUMBER (R_D10V_18, 4) - RELOC_NUMBER (R_D10V_18_PCREL, 5) - RELOC_NUMBER (R_D10V_32, 6) - RELOC_NUMBER (R_D10V_GNU_VTINHERIT, 7) - RELOC_NUMBER (R_D10V_GNU_VTENTRY, 8) -END_RELOC_NUMBERS (R_D10V_max) - -#endif diff --git a/include/elf/d30v.h b/include/elf/d30v.h deleted file mode 100644 index 8174a40..0000000 --- a/include/elf/d30v.h +++ /dev/null @@ -1,42 +0,0 @@ -/* d30v ELF support for BFD. - Copyright 1998, 2000, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_D30V_H -#define _ELF_D30V_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_d30v_reloc_type) - RELOC_NUMBER (R_D30V_NONE, 0) - RELOC_NUMBER (R_D30V_6, 1) - RELOC_NUMBER (R_D30V_9_PCREL, 2) - RELOC_NUMBER (R_D30V_9_PCREL_R, 3) - RELOC_NUMBER (R_D30V_15, 4) - RELOC_NUMBER (R_D30V_15_PCREL, 5) - RELOC_NUMBER (R_D30V_15_PCREL_R, 6) - RELOC_NUMBER (R_D30V_21, 7) - RELOC_NUMBER (R_D30V_21_PCREL, 8) - RELOC_NUMBER (R_D30V_21_PCREL_R, 9) - RELOC_NUMBER (R_D30V_32, 10) - RELOC_NUMBER (R_D30V_32_PCREL, 11) - RELOC_NUMBER (R_D30V_32_NORMAL, 12) -END_RELOC_NUMBERS (R_D30V_max) - -#endif diff --git a/include/elf/dlx.h b/include/elf/dlx.h deleted file mode 100644 index 7d61633..0000000 --- a/include/elf/dlx.h +++ /dev/null @@ -1,53 +0,0 @@ -/* DLX support for BFD. - Copyright 2002, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_DLX_H -#define _ELF_DLX_H - -#include "elf/reloc-macros.h" - -#if 0 -START_RELOC_NUMBERS (elf_dlx_reloc_type) - RELOC_NUMBER (R_DLX_NONE, 0) - RELOC_NUMBER (R_DLX_RELOC_16, 1) - RELOC_NUMBER (R_DLX_RELOC_26, 2) - RELOC_NUMBER (R_DLX_RELOC_32, 3) - RELOC_NUMBER (R_DLX_GNU_VTINHERIT, 4) - RELOC_NUMBER (R_DLX_GNU_VTENTRY, 5) - RELOC_NUMBER (R_DLX_RELOC_16_HI, 6) - RELOC_NUMBER (R_DLX_RELOC_16_LO, 7) - RELOC_NUMBER (R_DLX_RELOC_16_PCREL, 8) - RELOC_NUMBER (R_DLX_RELOC_26_PCREL, 9) -END_RELOC_NUMBERS (R_DLX_max) -#else -START_RELOC_NUMBERS (elf_dlx_reloc_type) - RELOC_NUMBER (R_DLX_NONE, 0) - RELOC_NUMBER (R_DLX_RELOC_8, 1) - RELOC_NUMBER (R_DLX_RELOC_16, 2) - RELOC_NUMBER (R_DLX_RELOC_32, 3) - RELOC_NUMBER (R_DLX_GNU_VTINHERIT, 4) - RELOC_NUMBER (R_DLX_GNU_VTENTRY, 5) - RELOC_NUMBER (R_DLX_RELOC_16_HI, 6) - RELOC_NUMBER (R_DLX_RELOC_16_LO, 7) - RELOC_NUMBER (R_DLX_RELOC_16_PCREL, 8) - RELOC_NUMBER (R_DLX_RELOC_26_PCREL, 9) -END_RELOC_NUMBERS (R_DLX_max) -#endif /* 0 */ - -#endif /* _ELF_DLX_H */ diff --git a/include/elf/dwarf.h b/include/elf/dwarf.h deleted file mode 100644 index c2e6a67..0000000 --- a/include/elf/dwarf.h +++ /dev/null @@ -1,323 +0,0 @@ -/* Declarations and definitions of codes relating to the DWARF symbolic - debugging information format. - - Written by Ron Guilmette (rfg@netcom.com) - - Copyright 1992, 1993, 1995, 1999, 2005, 2010 Free Software Foundation, Inc. - - This file is part of both GCC and the BFD library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -/* This file is derived from the DWARF specification (a public document) - Revision 1.0.1 (April 8, 1992) developed by the UNIX International - Programming Languages Special Interest Group (UI/PLSIG) and distributed - by UNIX International. Copies of this specification are available from - UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054. */ - -#ifndef _ELF_DWARF_H -#define _ELF_DWARF_H - -/* Tag names and codes. */ - -enum dwarf_tag { - TAG_padding = 0x0000, - TAG_array_type = 0x0001, - TAG_class_type = 0x0002, - TAG_entry_point = 0x0003, - TAG_enumeration_type = 0x0004, - TAG_formal_parameter = 0x0005, - TAG_global_subroutine = 0x0006, - TAG_global_variable = 0x0007, - /* 0x0008 -- reserved */ - /* 0x0009 -- reserved */ - TAG_label = 0x000a, - TAG_lexical_block = 0x000b, - TAG_local_variable = 0x000c, - TAG_member = 0x000d, - /* 0x000e -- reserved */ - TAG_pointer_type = 0x000f, - TAG_reference_type = 0x0010, - TAG_compile_unit = 0x0011, - TAG_string_type = 0x0012, - TAG_structure_type = 0x0013, - TAG_subroutine = 0x0014, - TAG_subroutine_type = 0x0015, - TAG_typedef = 0x0016, - TAG_union_type = 0x0017, - TAG_unspecified_parameters = 0x0018, - TAG_variant = 0x0019, - TAG_common_block = 0x001a, - TAG_common_inclusion = 0x001b, - TAG_inheritance = 0x001c, - TAG_inlined_subroutine = 0x001d, - TAG_module = 0x001e, - TAG_ptr_to_member_type = 0x001f, - TAG_set_type = 0x0020, - TAG_subrange_type = 0x0021, - TAG_with_stmt = 0x0022, - - /* GNU extensions */ - - TAG_format_label = 0x8000, /* for FORTRAN 77 and Fortran 90 */ - TAG_namelist = 0x8001, /* For Fortran 90 */ - TAG_function_template = 0x8002, /* for C++ */ - TAG_class_template = 0x8003 /* for C++ */ -}; - -#define TAG_lo_user 0x8000 /* implementation-defined range start */ -#define TAG_hi_user 0xffff /* implementation-defined range end */ -#define TAG_source_file TAG_compile_unit /* for backward compatibility */ - -/* Form names and codes. */ - -enum dwarf_form { - FORM_ADDR = 0x1, - FORM_REF = 0x2, - FORM_BLOCK2 = 0x3, - FORM_BLOCK4 = 0x4, - FORM_DATA2 = 0x5, - FORM_DATA4 = 0x6, - FORM_DATA8 = 0x7, - FORM_STRING = 0x8 -}; - -/* Attribute names and codes. */ - -enum dwarf_attribute { - AT_sibling = (0x0010|FORM_REF), - AT_location = (0x0020|FORM_BLOCK2), - AT_name = (0x0030|FORM_STRING), - AT_fund_type = (0x0050|FORM_DATA2), - AT_mod_fund_type = (0x0060|FORM_BLOCK2), - AT_user_def_type = (0x0070|FORM_REF), - AT_mod_u_d_type = (0x0080|FORM_BLOCK2), - AT_ordering = (0x0090|FORM_DATA2), - AT_subscr_data = (0x00a0|FORM_BLOCK2), - AT_byte_size = (0x00b0|FORM_DATA4), - AT_bit_offset = (0x00c0|FORM_DATA2), - AT_bit_size = (0x00d0|FORM_DATA4), - /* (0x00e0|FORM_xxxx) -- reserved */ - AT_element_list = (0x00f0|FORM_BLOCK4), - AT_stmt_list = (0x0100|FORM_DATA4), - AT_low_pc = (0x0110|FORM_ADDR), - AT_high_pc = (0x0120|FORM_ADDR), - AT_language = (0x0130|FORM_DATA4), - AT_member = (0x0140|FORM_REF), - AT_discr = (0x0150|FORM_REF), - AT_discr_value = (0x0160|FORM_BLOCK2), - /* (0x0170|FORM_xxxx) -- reserved */ - /* (0x0180|FORM_xxxx) -- reserved */ - AT_string_length = (0x0190|FORM_BLOCK2), - AT_common_reference = (0x01a0|FORM_REF), - AT_comp_dir = (0x01b0|FORM_STRING), - AT_const_value_string = (0x01c0|FORM_STRING), - AT_const_value_data2 = (0x01c0|FORM_DATA2), - AT_const_value_data4 = (0x01c0|FORM_DATA4), - AT_const_value_data8 = (0x01c0|FORM_DATA8), - AT_const_value_block2 = (0x01c0|FORM_BLOCK2), - AT_const_value_block4 = (0x01c0|FORM_BLOCK4), - AT_containing_type = (0x01d0|FORM_REF), - AT_default_value_addr = (0x01e0|FORM_ADDR), - AT_default_value_data2 = (0x01e0|FORM_DATA2), - AT_default_value_data4 = (0x01e0|FORM_DATA4), - AT_default_value_data8 = (0x01e0|FORM_DATA8), - AT_default_value_string = (0x01e0|FORM_STRING), - AT_friends = (0x01f0|FORM_BLOCK2), - AT_inline = (0x0200|FORM_STRING), - AT_is_optional = (0x0210|FORM_STRING), - AT_lower_bound_ref = (0x0220|FORM_REF), - AT_lower_bound_data2 = (0x0220|FORM_DATA2), - AT_lower_bound_data4 = (0x0220|FORM_DATA4), - AT_lower_bound_data8 = (0x0220|FORM_DATA8), - AT_private = (0x0240|FORM_STRING), - AT_producer = (0x0250|FORM_STRING), - AT_program = (0x0230|FORM_STRING), - AT_protected = (0x0260|FORM_STRING), - AT_prototyped = (0x0270|FORM_STRING), - AT_public = (0x0280|FORM_STRING), - AT_pure_virtual = (0x0290|FORM_STRING), - AT_return_addr = (0x02a0|FORM_BLOCK2), - AT_abstract_origin = (0x02b0|FORM_REF), - AT_start_scope = (0x02c0|FORM_DATA4), - AT_stride_size = (0x02e0|FORM_DATA4), - AT_upper_bound_ref = (0x02f0|FORM_REF), - AT_upper_bound_data2 = (0x02f0|FORM_DATA2), - AT_upper_bound_data4 = (0x02f0|FORM_DATA4), - AT_upper_bound_data8 = (0x02f0|FORM_DATA8), - AT_virtual = (0x0300|FORM_STRING), - - /* GNU extensions. */ - - AT_sf_names = (0x8000|FORM_DATA4), - AT_src_info = (0x8010|FORM_DATA4), - AT_mac_info = (0x8020|FORM_DATA4), - AT_src_coords = (0x8030|FORM_DATA4), - AT_body_begin = (0x8040|FORM_ADDR), - AT_body_end = (0x8050|FORM_ADDR) -}; - -#define AT_lo_user 0x2000 /* implementation-defined range start */ -#define AT_hi_user 0x3ff0 /* implementation-defined range end */ - -/* Location atom names and codes. */ - -enum dwarf_location_atom { - OP_REG = 0x01, - OP_BASEREG = 0x02, - OP_ADDR = 0x03, - OP_CONST = 0x04, - OP_DEREF2 = 0x05, - OP_DEREF4 = 0x06, - OP_ADD = 0x07, - - /* GNU extensions. */ - - OP_MULT = 0x80 -}; - -#define OP_LO_USER 0x80 /* implementation-defined range start */ -#define OP_HI_USER 0xff /* implementation-defined range end */ - -/* Fundamental type names and codes. */ - -enum dwarf_fundamental_type { - FT_char = 0x0001, - FT_signed_char = 0x0002, - FT_unsigned_char = 0x0003, - FT_short = 0x0004, - FT_signed_short = 0x0005, - FT_unsigned_short = 0x0006, - FT_integer = 0x0007, - FT_signed_integer = 0x0008, - FT_unsigned_integer = 0x0009, - FT_long = 0x000a, - FT_signed_long = 0x000b, - FT_unsigned_long = 0x000c, - FT_pointer = 0x000d, /* an alias for (void *) */ - FT_float = 0x000e, - FT_dbl_prec_float = 0x000f, - FT_ext_prec_float = 0x0010, /* breaks "classic" svr4 SDB */ - FT_complex = 0x0011, /* breaks "classic" svr4 SDB */ - FT_dbl_prec_complex = 0x0012, /* breaks "classic" svr4 SDB */ - /* 0x0013 -- reserved */ - FT_void = 0x0014, - FT_boolean = 0x0015, /* breaks "classic" svr4 SDB */ - FT_ext_prec_complex = 0x0016, /* breaks "classic" svr4 SDB */ - FT_label = 0x0017, - - /* GNU extensions - The low order byte must indicate the size (in bytes) for the type. - All of these types will probably break "classic" svr4 SDB. */ - - FT_long_long = 0x8008, - FT_signed_long_long = 0x8108, - FT_unsigned_long_long = 0x8208, - - FT_int8 = 0x9001, - FT_signed_int8 = 0x9101, - FT_unsigned_int8 = 0x9201, - FT_int16 = 0x9302, - FT_signed_int16 = 0x9402, - FT_unsigned_int16 = 0x9502, - FT_int32 = 0x9604, - FT_signed_int32 = 0x9704, - FT_unsigned_int32 = 0x9804, - FT_int64 = 0x9908, - FT_signed_int64 = 0x9a08, - FT_unsigned_int64 = 0x9b08, - FT_int128 = 0x9c10, - FT_signed_int128 = 0x9d10, - FT_unsigned_int128 = 0x9e10, - - FT_real32 = 0xa004, - FT_real64 = 0xa108, - FT_real96 = 0xa20c, - FT_real128 = 0xa310 -}; - -#define FT_lo_user 0x8000 /* implementation-defined range start */ -#define FT_hi_user 0xffff /* implementation defined range end */ - -/* Type modifier names and codes. */ - -enum dwarf_type_modifier { - MOD_pointer_to = 0x01, - MOD_reference_to = 0x02, - MOD_const = 0x03, - MOD_volatile = 0x04 -}; - -#define MOD_lo_user 0x80 /* implementation-defined range start */ -#define MOD_hi_user 0xff /* implementation-defined range end */ - -/* Array ordering names and codes. */ - -enum dwarf_array_dim_ordering { - ORD_row_major = 0, - ORD_col_major = 1 -}; - -/* Array subscript format names and codes. */ - -enum dwarf_subscr_data_formats { - FMT_FT_C_C = 0x0, - FMT_FT_C_X = 0x1, - FMT_FT_X_C = 0x2, - FMT_FT_X_X = 0x3, - FMT_UT_C_C = 0x4, - FMT_UT_C_X = 0x5, - FMT_UT_X_C = 0x6, - FMT_UT_X_X = 0x7, - FMT_ET = 0x8 -}; - -/* Derived from above for ease of use. */ - -#define FMT_CODE(_FUNDAMENTAL_TYPE_P, _LB_CONST_P, _UB_CONST_P) \ - (((_FUNDAMENTAL_TYPE_P) ? 0 : 4) \ - | ((_LB_CONST_P) ? 0 : 2) \ - | ((_UB_CONST_P) ? 0 : 1)) - -/* Source language names and codes. */ - -enum dwarf_source_language { - LANG_C89 = 0x00000001, - LANG_C = 0x00000002, - LANG_ADA83 = 0x00000003, - LANG_C_PLUS_PLUS = 0x00000004, - LANG_COBOL74 = 0x00000005, - LANG_COBOL85 = 0x00000006, - LANG_FORTRAN77 = 0x00000007, - LANG_FORTRAN90 = 0x00000008, - LANG_PASCAL83 = 0x00000009, - LANG_MODULA2 = 0x0000000a, - LANG_JAVA = 0x0000000b -}; - -#define LANG_lo_user 0x00008000 /* implementation-defined range start */ -#define LANG_hi_user 0x0000ffff /* implementation-defined range end */ - -/* Names and codes for GNU "macinfo" extension. */ - -enum dwarf_macinfo_record_type { - MACINFO_start = 's', - MACINFO_resume = 'r', - MACINFO_define = 'd', - MACINFO_undef = 'u' -}; - -#endif /* _ELF_DWARF_H */ diff --git a/include/elf/epiphany.h b/include/elf/epiphany.h deleted file mode 100644 index bb2dcff..0000000 --- a/include/elf/epiphany.h +++ /dev/null @@ -1,59 +0,0 @@ -/* Adapteva EPIPHANY ELF support for BFD. - Copyright (C) 2009, 2011 Free Software Foundation, Inc. - Contributed by Embecosm on behalf of Adapteva, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_EPIPHANY_H -#define _ELF_EPIPHANY_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_epiphany_reloc_type) - RELOC_NUMBER (R_EPIPHANY_NONE, 0) - - /* Absolute address relocations. */ - RELOC_NUMBER (R_EPIPHANY_8, 1) - RELOC_NUMBER (R_EPIPHANY_16, 2) - RELOC_NUMBER (R_EPIPHANY_32, 3) - - /* PC-relative relocations. */ - RELOC_NUMBER (R_EPIPHANY_8_PCREL, 4) - RELOC_NUMBER (R_EPIPHANY_16_PCREL,5) - RELOC_NUMBER (R_EPIPHANY_32_PCREL,6) - - /* special forms for 8/24 bit branch displacements. */ - RELOC_NUMBER (R_EPIPHANY_SIMM8, 7) - RELOC_NUMBER (R_EPIPHANY_SIMM24, 8) - - /* HIGH and LOW relocations taking part of a 32 bit address and - depositing it into the IMM16 field of a destination. */ - RELOC_NUMBER (R_EPIPHANY_HIGH, 9) - RELOC_NUMBER (R_EPIPHANY_LOW,10) - - /* 11 bit signed immediate value. */ - RELOC_NUMBER (R_EPIPHANY_SIMM11, 11) - /* 11 bit magnitude addressing displacement. */ - RELOC_NUMBER (R_EPIPHANY_IMM11, 12) - - /* 8 bit immediate for MOV.S R,IMM8. */ - RELOC_NUMBER (R_EPIPHANY_IMM8, 13) - -END_RELOC_NUMBERS(R_EPIPHANY_max) - -#endif /* _ELF_EPIPHANY_H */ diff --git a/include/elf/external.h b/include/elf/external.h deleted file mode 100644 index ef7724e..0000000 --- a/include/elf/external.h +++ /dev/null @@ -1,288 +0,0 @@ -/* ELF support for BFD. - Copyright 1991, 1992, 1993, 1995, 1997, 1998, 1999, 2001, 2003, 2005, - 2008, 2010 Free Software Foundation, Inc. - - Written by Fred Fish @ Cygnus Support, from information published - in "UNIX System V Release 4, Programmers Guide: ANSI C and - Programming Support Tools". - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file is part of ELF support for BFD, and contains the portions - that describe how ELF is represented externally by the BFD library. - I.E. it describes the in-file representation of ELF. It requires - the elf/common.h file which contains the portions that are common to - both the internal and external representations. */ - -/* The 64-bit stuff is kind of random. Perhaps someone will publish a - spec someday. */ - -#ifndef _ELF_EXTERNAL_H -#define _ELF_EXTERNAL_H - -/* Special section indices, which may show up in st_shndx fields, among - other places. */ - -#define SHN_LORESERVE 0xFF00 /* Begin range of reserved indices */ -#define SHN_LOPROC 0xFF00 /* Begin range of appl-specific */ -#define SHN_HIPROC 0xFF1F /* End range of appl-specific */ -#define SHN_LOOS 0xFF20 /* OS specific semantics, lo */ -#define SHN_HIOS 0xFF3F /* OS specific semantics, hi */ -#define SHN_ABS 0xFFF1 /* Associated symbol is absolute */ -#define SHN_COMMON 0xFFF2 /* Associated symbol is in common */ -#define SHN_XINDEX 0xFFFF /* Section index is held elsewhere */ -#define SHN_HIRESERVE 0xFFFF /* End range of reserved indices */ - -/* ELF Header (32-bit implementations) */ - -typedef struct { - unsigned char e_ident[16]; /* ELF "magic number" */ - unsigned char e_type[2]; /* Identifies object file type */ - unsigned char e_machine[2]; /* Specifies required architecture */ - unsigned char e_version[4]; /* Identifies object file version */ - unsigned char e_entry[4]; /* Entry point virtual address */ - unsigned char e_phoff[4]; /* Program header table file offset */ - unsigned char e_shoff[4]; /* Section header table file offset */ - unsigned char e_flags[4]; /* Processor-specific flags */ - unsigned char e_ehsize[2]; /* ELF header size in bytes */ - unsigned char e_phentsize[2]; /* Program header table entry size */ - unsigned char e_phnum[2]; /* Program header table entry count */ - unsigned char e_shentsize[2]; /* Section header table entry size */ - unsigned char e_shnum[2]; /* Section header table entry count */ - unsigned char e_shstrndx[2]; /* Section header string table index */ -} Elf32_External_Ehdr; - -typedef struct { - unsigned char e_ident[16]; /* ELF "magic number" */ - unsigned char e_type[2]; /* Identifies object file type */ - unsigned char e_machine[2]; /* Specifies required architecture */ - unsigned char e_version[4]; /* Identifies object file version */ - unsigned char e_entry[8]; /* Entry point virtual address */ - unsigned char e_phoff[8]; /* Program header table file offset */ - unsigned char e_shoff[8]; /* Section header table file offset */ - unsigned char e_flags[4]; /* Processor-specific flags */ - unsigned char e_ehsize[2]; /* ELF header size in bytes */ - unsigned char e_phentsize[2]; /* Program header table entry size */ - unsigned char e_phnum[2]; /* Program header table entry count */ - unsigned char e_shentsize[2]; /* Section header table entry size */ - unsigned char e_shnum[2]; /* Section header table entry count */ - unsigned char e_shstrndx[2]; /* Section header string table index */ -} Elf64_External_Ehdr; - -/* Program header */ - -typedef struct { - unsigned char p_type[4]; /* Identifies program segment type */ - unsigned char p_offset[4]; /* Segment file offset */ - unsigned char p_vaddr[4]; /* Segment virtual address */ - unsigned char p_paddr[4]; /* Segment physical address */ - unsigned char p_filesz[4]; /* Segment size in file */ - unsigned char p_memsz[4]; /* Segment size in memory */ - unsigned char p_flags[4]; /* Segment flags */ - unsigned char p_align[4]; /* Segment alignment, file & memory */ -} Elf32_External_Phdr; - -typedef struct { - unsigned char p_type[4]; /* Identifies program segment type */ - unsigned char p_flags[4]; /* Segment flags */ - unsigned char p_offset[8]; /* Segment file offset */ - unsigned char p_vaddr[8]; /* Segment virtual address */ - unsigned char p_paddr[8]; /* Segment physical address */ - unsigned char p_filesz[8]; /* Segment size in file */ - unsigned char p_memsz[8]; /* Segment size in memory */ - unsigned char p_align[8]; /* Segment alignment, file & memory */ -} Elf64_External_Phdr; - -/* Section header */ - -typedef struct { - unsigned char sh_name[4]; /* Section name, index in string tbl */ - unsigned char sh_type[4]; /* Type of section */ - unsigned char sh_flags[4]; /* Miscellaneous section attributes */ - unsigned char sh_addr[4]; /* Section virtual addr at execution */ - unsigned char sh_offset[4]; /* Section file offset */ - unsigned char sh_size[4]; /* Size of section in bytes */ - unsigned char sh_link[4]; /* Index of another section */ - unsigned char sh_info[4]; /* Additional section information */ - unsigned char sh_addralign[4]; /* Section alignment */ - unsigned char sh_entsize[4]; /* Entry size if section holds table */ -} Elf32_External_Shdr; - -typedef struct { - unsigned char sh_name[4]; /* Section name, index in string tbl */ - unsigned char sh_type[4]; /* Type of section */ - unsigned char sh_flags[8]; /* Miscellaneous section attributes */ - unsigned char sh_addr[8]; /* Section virtual addr at execution */ - unsigned char sh_offset[8]; /* Section file offset */ - unsigned char sh_size[8]; /* Size of section in bytes */ - unsigned char sh_link[4]; /* Index of another section */ - unsigned char sh_info[4]; /* Additional section information */ - unsigned char sh_addralign[8]; /* Section alignment */ - unsigned char sh_entsize[8]; /* Entry size if section holds table */ -} Elf64_External_Shdr; - -/* Symbol table entry */ - -typedef struct { - unsigned char st_name[4]; /* Symbol name, index in string tbl */ - unsigned char st_value[4]; /* Value of the symbol */ - unsigned char st_size[4]; /* Associated symbol size */ - unsigned char st_info[1]; /* Type and binding attributes */ - unsigned char st_other[1]; /* No defined meaning, 0 */ - unsigned char st_shndx[2]; /* Associated section index */ -} Elf32_External_Sym; - -typedef struct { - unsigned char st_name[4]; /* Symbol name, index in string tbl */ - unsigned char st_info[1]; /* Type and binding attributes */ - unsigned char st_other[1]; /* No defined meaning, 0 */ - unsigned char st_shndx[2]; /* Associated section index */ - unsigned char st_value[8]; /* Value of the symbol */ - unsigned char st_size[8]; /* Associated symbol size */ -} Elf64_External_Sym; - -typedef struct { - unsigned char est_shndx[4]; /* Section index */ -} Elf_External_Sym_Shndx; - -/* Note segments */ - -typedef struct { - unsigned char namesz[4]; /* Size of entry's owner string */ - unsigned char descsz[4]; /* Size of the note descriptor */ - unsigned char type[4]; /* Interpretation of the descriptor */ - char name[1]; /* Start of the name+desc data */ -} Elf_External_Note; - -/* Relocation Entries */ -typedef struct { - unsigned char r_offset[4]; /* Location at which to apply the action */ - unsigned char r_info[4]; /* index and type of relocation */ -} Elf32_External_Rel; - -typedef struct { - unsigned char r_offset[4]; /* Location at which to apply the action */ - unsigned char r_info[4]; /* index and type of relocation */ - unsigned char r_addend[4]; /* Constant addend used to compute value */ -} Elf32_External_Rela; - -typedef struct { - unsigned char r_offset[8]; /* Location at which to apply the action */ - unsigned char r_info[8]; /* index and type of relocation */ -} Elf64_External_Rel; - -typedef struct { - unsigned char r_offset[8]; /* Location at which to apply the action */ - unsigned char r_info[8]; /* index and type of relocation */ - unsigned char r_addend[8]; /* Constant addend used to compute value */ -} Elf64_External_Rela; - -/* dynamic section structure */ - -typedef struct { - unsigned char d_tag[4]; /* entry tag value */ - union { - unsigned char d_val[4]; - unsigned char d_ptr[4]; - } d_un; -} Elf32_External_Dyn; - -typedef struct { - unsigned char d_tag[8]; /* entry tag value */ - union { - unsigned char d_val[8]; - unsigned char d_ptr[8]; - } d_un; -} Elf64_External_Dyn; - -/* The version structures are currently size independent. They are - named without a 32 or 64. If that ever changes, these structures - will need to be renamed. */ - -/* This structure appears in a SHT_GNU_verdef section. */ - -typedef struct { - unsigned char vd_version[2]; - unsigned char vd_flags[2]; - unsigned char vd_ndx[2]; - unsigned char vd_cnt[2]; - unsigned char vd_hash[4]; - unsigned char vd_aux[4]; - unsigned char vd_next[4]; -} Elf_External_Verdef; - -/* This structure appears in a SHT_GNU_verdef section. */ - -typedef struct { - unsigned char vda_name[4]; - unsigned char vda_next[4]; -} Elf_External_Verdaux; - -/* This structure appears in a SHT_GNU_verneed section. */ - -typedef struct { - unsigned char vn_version[2]; - unsigned char vn_cnt[2]; - unsigned char vn_file[4]; - unsigned char vn_aux[4]; - unsigned char vn_next[4]; -} Elf_External_Verneed; - -/* This structure appears in a SHT_GNU_verneed section. */ - -typedef struct { - unsigned char vna_hash[4]; - unsigned char vna_flags[2]; - unsigned char vna_other[2]; - unsigned char vna_name[4]; - unsigned char vna_next[4]; -} Elf_External_Vernaux; - -/* This structure appears in a SHT_GNU_versym section. This is not a - standard ELF structure; ELF just uses Elf32_Half. */ - -typedef struct { - unsigned char vs_vers[2]; -} ATTRIBUTE_PACKED Elf_External_Versym; - -/* Structure for syminfo section. */ -typedef struct -{ - unsigned char si_boundto[2]; - unsigned char si_flags[2]; -} Elf_External_Syminfo; - - -/* This structure appears on the stack and in NT_AUXV core file notes. */ -typedef struct -{ - unsigned char a_type[4]; - unsigned char a_val[4]; -} Elf32_External_Auxv; - -typedef struct -{ - unsigned char a_type[8]; - unsigned char a_val[8]; -} Elf64_External_Auxv; - -/* Size of SHT_GROUP section entry. */ - -#define GRP_ENTRY_SIZE 4 - -#endif /* _ELF_EXTERNAL_H */ diff --git a/include/elf/fr30.h b/include/elf/fr30.h deleted file mode 100644 index 918ac97..0000000 --- a/include/elf/fr30.h +++ /dev/null @@ -1,42 +0,0 @@ -/* FR30 ELF support for BFD. - Copyright 1998, 1999, 2000, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_FR30_H -#define _ELF_FR30_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_fr30_reloc_type) - RELOC_NUMBER (R_FR30_NONE, 0) - RELOC_NUMBER (R_FR30_8, 1) - RELOC_NUMBER (R_FR30_20, 2) - RELOC_NUMBER (R_FR30_32, 3) - RELOC_NUMBER (R_FR30_48, 4) - RELOC_NUMBER (R_FR30_6_IN_4, 5) - RELOC_NUMBER (R_FR30_8_IN_8, 6) - RELOC_NUMBER (R_FR30_9_IN_8, 7) - RELOC_NUMBER (R_FR30_10_IN_8, 8) - RELOC_NUMBER (R_FR30_9_PCREL, 9) - RELOC_NUMBER (R_FR30_12_PCREL, 10) - RELOC_NUMBER (R_FR30_GNU_VTINHERIT, 11) - RELOC_NUMBER (R_FR30_GNU_VTENTRY, 12) -END_RELOC_NUMBERS (R_FR30_max) - -#endif /* _ELF_FR30_H */ diff --git a/include/elf/frv.h b/include/elf/frv.h deleted file mode 100644 index b79e51d..0000000 --- a/include/elf/frv.h +++ /dev/null @@ -1,130 +0,0 @@ -/* FRV ELF support for BFD. - Copyright (C) 2002, 2003, 2004, 2005, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_FRV_H -#define _ELF_FRV_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_frv_reloc_type) - RELOC_NUMBER (R_FRV_NONE, 0) - RELOC_NUMBER (R_FRV_32, 1) - RELOC_NUMBER (R_FRV_LABEL16, 2) - RELOC_NUMBER (R_FRV_LABEL24, 3) - RELOC_NUMBER (R_FRV_LO16, 4) - RELOC_NUMBER (R_FRV_HI16, 5) - RELOC_NUMBER (R_FRV_GPREL12, 6) - RELOC_NUMBER (R_FRV_GPRELU12, 7) - RELOC_NUMBER (R_FRV_GPREL32, 8) - RELOC_NUMBER (R_FRV_GPRELHI, 9) - RELOC_NUMBER (R_FRV_GPRELLO, 10) - RELOC_NUMBER (R_FRV_GOT12, 11) - RELOC_NUMBER (R_FRV_GOTHI, 12) - RELOC_NUMBER (R_FRV_GOTLO, 13) - RELOC_NUMBER (R_FRV_FUNCDESC, 14) - RELOC_NUMBER (R_FRV_FUNCDESC_GOT12, 15) - RELOC_NUMBER (R_FRV_FUNCDESC_GOTHI, 16) - RELOC_NUMBER (R_FRV_FUNCDESC_GOTLO, 17) - RELOC_NUMBER (R_FRV_FUNCDESC_VALUE, 18) - RELOC_NUMBER (R_FRV_FUNCDESC_GOTOFF12, 19) - RELOC_NUMBER (R_FRV_FUNCDESC_GOTOFFHI, 20) - RELOC_NUMBER (R_FRV_FUNCDESC_GOTOFFLO, 21) - RELOC_NUMBER (R_FRV_GOTOFF12, 22) - RELOC_NUMBER (R_FRV_GOTOFFHI, 23) - RELOC_NUMBER (R_FRV_GOTOFFLO, 24) - RELOC_NUMBER (R_FRV_GETTLSOFF, 25) - RELOC_NUMBER (R_FRV_TLSDESC_VALUE, 26) - RELOC_NUMBER (R_FRV_GOTTLSDESC12, 27) - RELOC_NUMBER (R_FRV_GOTTLSDESCHI, 28) - RELOC_NUMBER (R_FRV_GOTTLSDESCLO, 29) - RELOC_NUMBER (R_FRV_TLSMOFF12, 30) - RELOC_NUMBER (R_FRV_TLSMOFFHI, 31) - RELOC_NUMBER (R_FRV_TLSMOFFLO, 32) - RELOC_NUMBER (R_FRV_GOTTLSOFF12, 33) - RELOC_NUMBER (R_FRV_GOTTLSOFFHI, 34) - RELOC_NUMBER (R_FRV_GOTTLSOFFLO, 35) - RELOC_NUMBER (R_FRV_TLSOFF, 36) - RELOC_NUMBER (R_FRV_TLSDESC_RELAX, 37) - RELOC_NUMBER (R_FRV_GETTLSOFF_RELAX, 38) - RELOC_NUMBER (R_FRV_TLSOFF_RELAX, 39) - RELOC_NUMBER (R_FRV_TLSMOFF, 40) - RELOC_NUMBER (R_FRV_GNU_VTINHERIT, 200) - RELOC_NUMBER (R_FRV_GNU_VTENTRY, 201) -END_RELOC_NUMBERS(R_FRV_max) - -/* Processor specific flags for the ELF header e_flags field. */ - /* gpr support */ -#define EF_FRV_GPR_MASK 0x00000003 /* mask for # of gprs */ -#define EF_FRV_GPR_32 0x00000001 /* -mgpr-32 */ -#define EF_FRV_GPR_64 0x00000002 /* -mgpr-64 */ - - /* fpr support */ -#define EF_FRV_FPR_MASK 0x0000000c /* mask for # of fprs */ -#define EF_FRV_FPR_32 0x00000004 /* -mfpr-32 */ -#define EF_FRV_FPR_64 0x00000008 /* -mfpr-64 */ -#define EF_FRV_FPR_NONE 0x0000000c /* -msoft-float */ - - /* double word support */ -#define EF_FRV_DWORD_MASK 0x00000030 /* mask for dword support */ -#define EF_FRV_DWORD_YES 0x00000010 /* use double word insns */ -#define EF_FRV_DWORD_NO 0x00000020 /* don't use double word insn*/ - -#define EF_FRV_DOUBLE 0x00000040 /* -mdouble */ -#define EF_FRV_MEDIA 0x00000080 /* -mmedia */ - -#define EF_FRV_PIC 0x00000100 /* -fpic */ -#define EF_FRV_NON_PIC_RELOCS 0x00000200 /* used non pic safe relocs */ - -#define EF_FRV_MULADD 0x00000400 /* -mmuladd */ -#define EF_FRV_BIGPIC 0x00000800 /* -fPIC */ -#define EF_FRV_LIBPIC 0x00001000 /* -mlibrary-pic */ -#define EF_FRV_G0 0x00002000 /* -G 0, no small data ptr */ -#define EF_FRV_NOPACK 0x00004000 /* -mnopack */ -#define EF_FRV_FDPIC 0x00008000 /* -mfdpic */ - -#define EF_FRV_CPU_MASK 0xff000000 /* specific cpu bits */ -#define EF_FRV_CPU_GENERIC 0x00000000 /* generic FRV */ -#define EF_FRV_CPU_FR500 0x01000000 /* FRV500 */ -#define EF_FRV_CPU_FR300 0x02000000 /* FRV300 */ -#define EF_FRV_CPU_SIMPLE 0x03000000 /* SIMPLE */ -#define EF_FRV_CPU_TOMCAT 0x04000000 /* Tomcat, FR500 prototype */ -#define EF_FRV_CPU_FR400 0x05000000 /* FRV400 */ -#define EF_FRV_CPU_FR550 0x06000000 /* FRV550 */ -#define EF_FRV_CPU_FR405 0x07000000 -#define EF_FRV_CPU_FR450 0x08000000 - - /* Mask of PIC related bits */ -#define EF_FRV_PIC_FLAGS (EF_FRV_PIC | EF_FRV_LIBPIC | EF_FRV_BIGPIC \ - | EF_FRV_FDPIC) - - /* Mask of all flags */ -#define EF_FRV_ALL_FLAGS (EF_FRV_GPR_MASK | \ - EF_FRV_FPR_MASK | \ - EF_FRV_DWORD_MASK | \ - EF_FRV_DOUBLE | \ - EF_FRV_MEDIA | \ - EF_FRV_PIC_FLAGS | \ - EF_FRV_NON_PIC_RELOCS | \ - EF_FRV_MULADD | \ - EF_FRV_G0 | \ - EF_FRV_NOPACK | \ - EF_FRV_CPU_MASK) - -#endif /* _ELF_FRV_H */ diff --git a/include/elf/h8.h b/include/elf/h8.h deleted file mode 100644 index 2a3d905..0000000 --- a/include/elf/h8.h +++ /dev/null @@ -1,101 +0,0 @@ -/* H8300/h8500 ELF support for BFD. - Copyright 2001-2013 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_H8_H -#define _ELF_H8_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -/* Relocations 59..64 are GNU extensions. */ -START_RELOC_NUMBERS (elf_h8_reloc_type) - RELOC_NUMBER (R_H8_NONE, 0) - RELOC_NUMBER (R_H8_DIR32, 1) - RELOC_NUMBER (R_H8_DIR32_28, 2) - RELOC_NUMBER (R_H8_DIR32_24, 3) - RELOC_NUMBER (R_H8_DIR32_16, 4) - RELOC_NUMBER (R_H8_DIR32U, 6) - RELOC_NUMBER (R_H8_DIR32U_28, 7) - RELOC_NUMBER (R_H8_DIR32U_24, 8) - RELOC_NUMBER (R_H8_DIR32U_20, 9) - RELOC_NUMBER (R_H8_DIR32U_16, 10) - RELOC_NUMBER (R_H8_DIR24, 11) - RELOC_NUMBER (R_H8_DIR24_20, 12) - RELOC_NUMBER (R_H8_DIR24_16, 13) - RELOC_NUMBER (R_H8_DIR24U, 14) - RELOC_NUMBER (R_H8_DIR24U_20, 15) - RELOC_NUMBER (R_H8_DIR24U_16, 16) - RELOC_NUMBER (R_H8_DIR16, 17) - RELOC_NUMBER (R_H8_DIR16U, 18) - RELOC_NUMBER (R_H8_DIR16S_32, 19) - RELOC_NUMBER (R_H8_DIR16S_28, 20) - RELOC_NUMBER (R_H8_DIR16S_24, 21) - RELOC_NUMBER (R_H8_DIR16S_20, 22) - RELOC_NUMBER (R_H8_DIR16S, 23) - RELOC_NUMBER (R_H8_DIR8, 24) - RELOC_NUMBER (R_H8_DIR8U, 25) - RELOC_NUMBER (R_H8_DIR8Z_32, 26) - RELOC_NUMBER (R_H8_DIR8Z_28, 27) - RELOC_NUMBER (R_H8_DIR8Z_24, 28) - RELOC_NUMBER (R_H8_DIR8Z_20, 29) - RELOC_NUMBER (R_H8_DIR8Z_16, 30) - RELOC_NUMBER (R_H8_PCREL16, 31) - RELOC_NUMBER (R_H8_PCREL8, 32) - RELOC_NUMBER (R_H8_BPOS, 33) - FAKE_RELOC (R_H8_FIRST_INVALID_DIR_RELOC, 34) - FAKE_RELOC (R_H8_LAST_INVALID_DIR_RELOC, 58) - RELOC_NUMBER (R_H8_DIR16A8, 59) - RELOC_NUMBER (R_H8_DIR16R8, 60) - RELOC_NUMBER (R_H8_DIR24A8, 61) - RELOC_NUMBER (R_H8_DIR24R8, 62) - RELOC_NUMBER (R_H8_DIR32A16, 63) - RELOC_NUMBER (R_H8_DISP32A16, 64) - RELOC_NUMBER (R_H8_ABS32, 65) - RELOC_NUMBER (R_H8_ABS32A16, 127) - RELOC_NUMBER (R_H8_SYM, 128) - RELOC_NUMBER (R_H8_OPneg, 129) - RELOC_NUMBER (R_H8_OPadd, 130) - RELOC_NUMBER (R_H8_OPsub, 131) - RELOC_NUMBER (R_H8_OPmul, 132) - RELOC_NUMBER (R_H8_OPdiv, 133) - RELOC_NUMBER (R_H8_OPshla, 134) - RELOC_NUMBER (R_H8_OPshra, 135) - RELOC_NUMBER (R_H8_OPsctsize, 136) - RELOC_NUMBER (R_H8_OPhword, 137) - RELOC_NUMBER (R_H8_OPlword, 138) - RELOC_NUMBER (R_H8_OPhigh, 139) - RELOC_NUMBER (R_H8_OPlow, 140) - RELOC_NUMBER (R_H8_OPscttop, 141) -END_RELOC_NUMBERS (R_H8_max) - -/* Machine variant if we know it. This field was invented at Cygnus, - but it is hoped that other vendors will adopt it. If some standard - is developed, this code should be changed to follow it. */ - -#define EF_H8_MACH 0x00FF0000 - -#define E_H8_MACH_H8300 0x00800000 -#define E_H8_MACH_H8300H 0x00810000 -#define E_H8_MACH_H8300S 0x00820000 -#define E_H8_MACH_H8300HN 0x00830000 -#define E_H8_MACH_H8300SN 0x00840000 -#define E_H8_MACH_H8300SX 0x00850000 -#define E_H8_MACH_H8300SXN 0x00860000 - -#endif diff --git a/include/elf/hppa.h b/include/elf/hppa.h deleted file mode 100644 index 8d3ea45..0000000 --- a/include/elf/hppa.h +++ /dev/null @@ -1,635 +0,0 @@ -/* HPPA ELF support for BFD. - Copyright 1993, 1994, 1995, 1998, 1999, 2000, 2005, 2006, 2008, 2010 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file holds definitions specific to the HPPA ELF ABI. Note - that most of this is not actually implemented by BFD. */ - -#ifndef _ELF_HPPA_H -#define _ELF_HPPA_H - -/* Processor specific flags for the ELF header e_flags field. */ - -/* Trap null address dereferences. */ -#define EF_PARISC_TRAPNIL 0x00010000 - -/* .PARISC.archext section is present. */ -#define EF_PARISC_EXT 0x00020000 - -/* Program expects little-endian mode. */ -#define EF_PARISC_LSB 0x00040000 - -/* Program expects wide mode. */ -#define EF_PARISC_WIDE 0x00080000 - -/* Do not allow kernel-assisted branch prediction. */ -#define EF_PARISC_NO_KABP 0x00100000 - -/* Allow lazy swap for dynamically allocated program segments. */ -#define EF_PARISC_LAZYSWAP 0x00400000 - -/* Architecture version */ -#define EF_PARISC_ARCH 0x0000ffff - -#define EFA_PARISC_1_0 0x020b -#define EFA_PARISC_1_1 0x0210 -#define EFA_PARISC_2_0 0x0214 - -/* Special section indices. */ -/* A symbol that has been declared as a tentative definition in an ANSI C - compilation. */ -#define SHN_PARISC_ANSI_COMMON SHN_LORESERVE - -/* A symbol that has been declared as a common block using the - huge memory model. */ -#define SHN_PARISC_HUGE_COMMON (SHN_LORESERVE + 1) - -/* Processor specific section types. */ - -/* Section contains product specific extension bits. */ -#define SHT_PARISC_EXT 0x70000000 - -/* Section contains unwind table entries. */ -#define SHT_PARISC_UNWIND 0x70000001 - -/* Section contains debug information for optimized code. */ -#define SHT_PARISC_DOC 0x70000002 - -/* Section contains code annotations. */ -#define SHT_PARISC_ANNOT 0x70000003 - -/* DLKM special section. */ -#define SHT_PARISC_DLKM 0x70000004 - -/* These are strictly for compatibility with the older elf32-hppa - implementation. Hopefully we can eliminate them in the future. */ -/* Optional section holding argument location/relocation info. */ -#define SHT_PARISC_SYMEXTN SHT_LOPROC + 8 - -/* Option section for linker stubs. */ -#define SHT_PARISC_STUBS SHT_LOPROC + 9 - -/* Processor specific section flags. */ - -/* Section contains code compiled for static branch prediction. */ -#define SHF_PARISC_SBP 0x80000000 - -/* Section should be allocated from from GP. */ -#define SHF_PARISC_HUGE 0x40000000 - -/* Section should go near GP. */ -#define SHF_PARISC_SHORT 0x20000000 - -/* Section is weak ordered. */ -#define SHF_PARISC_WEAKORDER 0x10000000 - -/* Identifies the entry point of a millicode routine. */ -#define STT_PARISC_MILLI 13 - -/* ELF/HPPA relocation types */ - -/* Note: PA-ELF is defined to use only RELA relocations. */ -#include "elf/reloc-macros.h" - -START_RELOC_NUMBERS (elf_hppa_reloc_type) -RELOC_NUMBER (R_PARISC_NONE, 0) /* No reloc */ - -/* Data / Inst. Format Relocation Expression */ - -RELOC_NUMBER (R_PARISC_DIR32, 1) -/* 32-bit word symbol + addend */ - -RELOC_NUMBER (R_PARISC_DIR21L, 2) -/* long immediate (7) LR(symbol, addend) */ - -RELOC_NUMBER (R_PARISC_DIR17R, 3) -/* branch external (19) RR(symbol, addend) */ - -RELOC_NUMBER (R_PARISC_DIR17F, 4) -/* branch external (19) symbol + addend */ - -RELOC_NUMBER (R_PARISC_DIR14R, 6) -/* load/store (1) RR(symbol, addend) */ - -RELOC_NUMBER (R_PARISC_DIR14F, 7) -/* load/store (1) symbol, addend */ - -/* PC-relative relocation types - Typically used for calls. - Note PCREL17C and PCREL17F differ only in overflow handling. - PCREL17C never reports a relocation error. - - When supporting argument relocations, function calls must be - accompanied by parameter relocation information. This information is - carried in the ten high-order bits of the addend field. The remaining - 22 bits of of the addend field are sign-extended to form the Addend. - - Note the code to build argument relocations depends on the - addend being zero. A consequence of this limitation is GAS - can not perform relocation reductions for function symbols. */ - -RELOC_NUMBER (R_PARISC_PCREL12F, 8) -/* op & branch (17) symbol - PC - 8 + addend */ - -RELOC_NUMBER (R_PARISC_PCREL32, 9) -/* 32-bit word symbol - PC - 8 + addend */ - -RELOC_NUMBER (R_PARISC_PCREL21L, 10) -/* long immediate (7) L(symbol - PC - 8 + addend) */ - -RELOC_NUMBER (R_PARISC_PCREL17R, 11) -/* branch external (19) R(symbol - PC - 8 + addend) */ - -RELOC_NUMBER (R_PARISC_PCREL17F, 12) -/* branch (20) symbol - PC - 8 + addend */ - -RELOC_NUMBER (R_PARISC_PCREL17C, 13) -/* branch (20) symbol - PC - 8 + addend */ - -RELOC_NUMBER (R_PARISC_PCREL14R, 14) -/* load/store (1) R(symbol - PC - 8 + addend) */ - -RELOC_NUMBER (R_PARISC_PCREL14F, 15) -/* load/store (1) symbol - PC - 8 + addend */ - - -/* DP-relative relocation types. */ -RELOC_NUMBER (R_PARISC_DPREL21L, 18) -/* long immediate (7) LR(symbol - GP, addend) */ - -RELOC_NUMBER (R_PARISC_DPREL14WR, 19) -/* load/store mod. comp. (2) RR(symbol - GP, addend) */ - -RELOC_NUMBER (R_PARISC_DPREL14DR, 20) -/* load/store doubleword (3) RR(symbol - GP, addend) */ - -RELOC_NUMBER (R_PARISC_DPREL14R, 22) -/* load/store (1) RR(symbol - GP, addend) */ - -RELOC_NUMBER (R_PARISC_DPREL14F, 23) -/* load/store (1) symbol - GP + addend */ - - -/* Data linkage table (DLT) relocation types - - SOM DLT_REL fixup requests are used to for static data references - from position-independent code within shared libraries. They are - similar to the GOT relocation types in some SVR4 implementations. */ - -RELOC_NUMBER (R_PARISC_DLTREL21L, 26) -/* long immediate (7) LR(symbol - GP, addend) */ - -RELOC_NUMBER (R_PARISC_DLTREL14R, 30) -/* load/store (1) RR(symbol - GP, addend) */ - -RELOC_NUMBER (R_PARISC_DLTREL14F, 31) -/* load/store (1) symbol - GP + addend */ - - -/* DLT indirect relocation types */ -RELOC_NUMBER (R_PARISC_DLTIND21L, 34) -/* long immediate (7) L(ltoff(symbol + addend)) */ - -RELOC_NUMBER (R_PARISC_DLTIND14R, 38) -/* load/store (1) R(ltoff(symbol + addend)) */ - -RELOC_NUMBER (R_PARISC_DLTIND14F, 39) -/* load/store (1) ltoff(symbol + addend) */ - - -/* Base relative relocation types. Ugh. These imply lots of state */ -RELOC_NUMBER (R_PARISC_SETBASE, 40) -/* none no reloc; base := sym */ - -RELOC_NUMBER (R_PARISC_SECREL32, 41) -/* 32-bit word symbol - SECT + addend */ - -RELOC_NUMBER (R_PARISC_BASEREL21L, 42) -/* long immediate (7) LR(symbol - base, addend) */ - -RELOC_NUMBER (R_PARISC_BASEREL17R, 43) -/* branch external (19) RR(symbol - base, addend) */ - -RELOC_NUMBER (R_PARISC_BASEREL17F, 44) -/* branch external (19) symbol - base + addend */ - -RELOC_NUMBER (R_PARISC_BASEREL14R, 46) -/* load/store (1) RR(symbol - base, addend) */ - -RELOC_NUMBER (R_PARISC_BASEREL14F, 47) -/* load/store (1) symbol - base, addend */ - - -/* Segment relative relocation types. */ -RELOC_NUMBER (R_PARISC_SEGBASE, 48) -/* none no relocation; SB := sym */ - -RELOC_NUMBER (R_PARISC_SEGREL32, 49) -/* 32-bit word symbol - SB + addend */ - - -/* Offsets from the PLT. */ -RELOC_NUMBER (R_PARISC_PLTOFF21L, 50) -/* long immediate (7) LR(pltoff(symbol), addend) */ - -RELOC_NUMBER (R_PARISC_PLTOFF14R, 54) -/* load/store (1) RR(pltoff(symbol), addend) */ - -RELOC_NUMBER (R_PARISC_PLTOFF14F, 55) -/* load/store (1) pltoff(symbol) + addend */ - - -RELOC_NUMBER (R_PARISC_LTOFF_FPTR32, 57) -/* 32-bit word ltoff(fptr(symbol+addend)) */ - -RELOC_NUMBER (R_PARISC_LTOFF_FPTR21L, 58) -/* long immediate (7) L(ltoff(fptr(symbol+addend))) */ - -RELOC_NUMBER (R_PARISC_LTOFF_FPTR14R, 62) -/* load/store (1) R(ltoff(fptr(symbol+addend))) */ - - -RELOC_NUMBER (R_PARISC_FPTR64, 64) -/* 64-bit doubleword fptr(symbol+addend) */ - - -/* Plabel relocation types. */ -RELOC_NUMBER (R_PARISC_PLABEL32, 65) -/* 32-bit word fptr(symbol) */ - -RELOC_NUMBER (R_PARISC_PLABEL21L, 66) -/* long immediate (7) L(fptr(symbol)) */ - -RELOC_NUMBER (R_PARISC_PLABEL14R, 70) -/* load/store (1) R(fptr(symbol)) */ - - -/* PCREL relocations. */ -RELOC_NUMBER (R_PARISC_PCREL64, 72) -/* 64-bit doubleword symbol - PC - 8 + addend */ - -RELOC_NUMBER (R_PARISC_PCREL22C, 73) -/* branch & link (21) symbol - PC - 8 + addend */ - -RELOC_NUMBER (R_PARISC_PCREL22F, 74) -/* branch & link (21) symbol - PC - 8 + addend */ - -RELOC_NUMBER (R_PARISC_PCREL14WR, 75) -/* load/store mod. comp. (2) R(symbol - PC - 8 + addend) */ - -RELOC_NUMBER (R_PARISC_PCREL14DR, 76) -/* load/store doubleword (3) R(symbol - PC - 8 + addend) */ - -RELOC_NUMBER (R_PARISC_PCREL16F, 77) -/* load/store (1) symbol - PC - 8 + addend */ - -RELOC_NUMBER (R_PARISC_PCREL16WF, 78) -/* load/store mod. comp. (2) symbol - PC - 8 + addend */ - -RELOC_NUMBER (R_PARISC_PCREL16DF, 79) -/* load/store doubleword (3) symbol - PC - 8 + addend */ - - -RELOC_NUMBER (R_PARISC_DIR64, 80) -/* 64-bit doubleword symbol + addend */ - -RELOC_NUMBER (R_PARISC_DIR14WR, 83) -/* load/store mod. comp. (2) RR(symbol, addend) */ - -RELOC_NUMBER (R_PARISC_DIR14DR, 84) -/* load/store doubleword (3) RR(symbol, addend) */ - -RELOC_NUMBER (R_PARISC_DIR16F, 85) -/* load/store (1) symbol + addend */ - -RELOC_NUMBER (R_PARISC_DIR16WF, 86) -/* load/store mod. comp. (2) symbol + addend */ - -RELOC_NUMBER (R_PARISC_DIR16DF, 87) -/* load/store doubleword (3) symbol + addend */ - -RELOC_NUMBER (R_PARISC_GPREL64, 88) -/* 64-bit doubleword symbol - GP + addend */ - -RELOC_NUMBER (R_PARISC_DLTREL14WR, 91) -/* load/store mod. comp. (2) RR(symbol - GP, addend) */ - -RELOC_NUMBER (R_PARISC_DLTREL14DR, 92) -/* load/store doubleword (3) RR(symbol - GP, addend) */ - -RELOC_NUMBER (R_PARISC_GPREL16F, 93) -/* load/store (1) symbol - GP + addend */ - -RELOC_NUMBER (R_PARISC_GPREL16WF, 94) -/* load/store mod. comp. (2) symbol - GP + addend */ - -RELOC_NUMBER (R_PARISC_GPREL16DF, 95) -/* load/store doubleword (3) symbol - GP + addend */ - - -RELOC_NUMBER (R_PARISC_LTOFF64, 96) -/* 64-bit doubleword ltoff(symbol + addend) */ - -RELOC_NUMBER (R_PARISC_DLTIND14WR, 99) -/* load/store mod. comp. (2) R(ltoff(symbol + addend)) */ - -RELOC_NUMBER (R_PARISC_DLTIND14DR, 100) -/* load/store doubleword (3) R(ltoff(symbol + addend)) */ - -RELOC_NUMBER (R_PARISC_LTOFF16F, 101) -/* load/store (1) ltoff(symbol + addend) */ - -RELOC_NUMBER (R_PARISC_LTOFF16WF, 102) -/* load/store mod. comp. (2) ltoff(symbol + addend) */ - -RELOC_NUMBER (R_PARISC_LTOFF16DF, 103) -/* load/store doubleword (3) ltoff(symbol + addend) */ - - -RELOC_NUMBER (R_PARISC_SECREL64, 104) -/* 64-bit doubleword symbol - SECT + addend */ - -RELOC_NUMBER (R_PARISC_BASEREL14WR, 107) -/* load/store mod. comp. (2) RR(symbol - base, addend) */ - -RELOC_NUMBER (R_PARISC_BASEREL14DR, 108) -/* load/store doubleword (3) RR(symbol - base, addend) */ - - -RELOC_NUMBER (R_PARISC_SEGREL64, 112) -/* 64-bit doubleword symbol - SB + addend */ - -RELOC_NUMBER (R_PARISC_PLTOFF14WR, 115) -/* load/store mod. comp. (2) RR(pltoff(symbol), addend) */ - -RELOC_NUMBER (R_PARISC_PLTOFF14DR, 116) -/* load/store doubleword (3) RR(pltoff(symbol), addend) */ - -RELOC_NUMBER (R_PARISC_PLTOFF16F, 117) -/* load/store (1) pltoff(symbol) + addend */ - -RELOC_NUMBER (R_PARISC_PLTOFF16WF, 118) -/* load/store mod. comp. (2) pltoff(symbol) + addend */ - -RELOC_NUMBER (R_PARISC_PLTOFF16DF, 119) -/* load/store doubleword (3) pltoff(symbol) + addend */ - - -RELOC_NUMBER (R_PARISC_LTOFF_FPTR64, 120) -/* 64-bit doubleword ltoff(fptr(symbol+addend)) */ - -RELOC_NUMBER (R_PARISC_LTOFF_FPTR14WR, 123) -/* load/store mod. comp. (2) R(ltoff(fptr(symbol+addend))) */ - -RELOC_NUMBER (R_PARISC_LTOFF_FPTR14DR, 124) -/* load/store doubleword (3) R(ltoff(fptr(symbol+addend))) */ - -RELOC_NUMBER (R_PARISC_LTOFF_FPTR16F, 125) -/* load/store (1) ltoff(fptr(symbol+addend)) */ - -RELOC_NUMBER (R_PARISC_LTOFF_FPTR16WF, 126) -/* load/store mod. comp. (2) ltoff(fptr(symbol+addend)) */ - -RELOC_NUMBER (R_PARISC_LTOFF_FPTR16DF, 127) -/* load/store doubleword (3) ltoff(fptr(symbol+addend)) */ - - -RELOC_NUMBER (R_PARISC_COPY, 128) -/* data Dynamic relocations only */ - -RELOC_NUMBER (R_PARISC_IPLT, 129) -/* plt */ - -RELOC_NUMBER (R_PARISC_EPLT, 130) -/* plt */ - - -RELOC_NUMBER (R_PARISC_TPREL32, 153) -/* 32-bit word symbol - TP + addend */ - -RELOC_NUMBER (R_PARISC_TPREL21L, 154) -/* long immediate (7) LR(symbol - TP, addend) */ - -RELOC_NUMBER (R_PARISC_TPREL14R, 158) -/* load/store (1) RR(symbol - TP, addend) */ - - -RELOC_NUMBER (R_PARISC_LTOFF_TP21L, 162) -/* long immediate (7) L(ltoff(symbol - TP + addend)) */ - -RELOC_NUMBER (R_PARISC_LTOFF_TP14R, 166) -/* load/store (1) R(ltoff(symbol - TP + addend)) */ - -RELOC_NUMBER (R_PARISC_LTOFF_TP14F, 167) -/* load/store (1) ltoff(symbol - TP + addend) */ - - -RELOC_NUMBER (R_PARISC_TPREL64, 216) -/* 64-bit word symbol - TP + addend */ - -RELOC_NUMBER (R_PARISC_TPREL14WR, 219) -/* load/store mod. comp. (2) RR(symbol - TP, addend) */ - -RELOC_NUMBER (R_PARISC_TPREL14DR, 220) -/* load/store doubleword (3) RR(symbol - TP, addend) */ - -RELOC_NUMBER (R_PARISC_TPREL16F, 221) -/* load/store (1) symbol - TP + addend */ - -RELOC_NUMBER (R_PARISC_TPREL16WF, 222) -/* load/store mod. comp. (2) symbol - TP + addend */ - -RELOC_NUMBER (R_PARISC_TPREL16DF, 223) -/* load/store doubleword (3) symbol - TP + addend */ - - -RELOC_NUMBER (R_PARISC_LTOFF_TP64, 224) -/* 64-bit doubleword ltoff(symbol - TP + addend) */ - -RELOC_NUMBER (R_PARISC_LTOFF_TP14WR, 227) -/* load/store mod. comp. (2) R(ltoff(symbol - TP + addend)) */ - -RELOC_NUMBER (R_PARISC_LTOFF_TP14DR, 228) -/* load/store doubleword (3) R(ltoff(symbol - TP + addend)) */ - -RELOC_NUMBER (R_PARISC_LTOFF_TP16F, 229) -/* load/store (1) ltoff(symbol - TP + addend) */ - -RELOC_NUMBER (R_PARISC_LTOFF_TP16WF, 230) -/* load/store mod. comp. (2) ltoff(symbol - TP + addend) */ - -RELOC_NUMBER (R_PARISC_LTOFF_TP16DF, 231) -/* load/store doubleword (3) ltoff(symbol - TP + addend) */ - -RELOC_NUMBER (R_PARISC_GNU_VTENTRY, 232) -RELOC_NUMBER (R_PARISC_GNU_VTINHERIT, 233) - -RELOC_NUMBER (R_PARISC_TLS_GD21L, 234) -RELOC_NUMBER (R_PARISC_TLS_GD14R, 235) -RELOC_NUMBER (R_PARISC_TLS_GDCALL, 236) -RELOC_NUMBER (R_PARISC_TLS_LDM21L, 237) -RELOC_NUMBER (R_PARISC_TLS_LDM14R, 238) -RELOC_NUMBER (R_PARISC_TLS_LDMCALL, 239) -RELOC_NUMBER (R_PARISC_TLS_LDO21L, 240) -RELOC_NUMBER (R_PARISC_TLS_LDO14R, 241) -RELOC_NUMBER (R_PARISC_TLS_DTPMOD32, 242) -RELOC_NUMBER (R_PARISC_TLS_DTPMOD64, 243) -RELOC_NUMBER (R_PARISC_TLS_DTPOFF32, 244) -RELOC_NUMBER (R_PARISC_TLS_DTPOFF64, 245) - -END_RELOC_NUMBERS (R_PARISC_UNIMPLEMENTED) - -#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L -#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R -#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L -#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R -#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32 -#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64 - -#ifndef RELOC_MACROS_GEN_FUNC -typedef enum elf_hppa_reloc_type elf_hppa_reloc_type; -#endif - -#define PT_PARISC_ARCHEXT 0x70000000 -#define PT_PARISC_UNWIND 0x70000001 -#define PT_PARISC_WEAKORDER 0x70000002 - -/* Flag bits in sh_flags of ElfXX_Shdr. */ -#define SHF_HP_TLS 0x01000000 -#define SHF_HP_NEAR_SHARED 0x02000000 -#define SHF_HP_FAR_SHARED 0x04000000 -#define SHF_HP_COMDAT 0x08000000 -#define SHF_HP_CONST 0x00800000 - -/* Reserved section header indices. */ -#define SHN_TLS_COMMON (SHN_LOOS + 0x0) -#define SHN_NS_COMMON (SHN_LOOS + 0x1) -#define SHN_FS_COMMON (SHN_LOOS + 0x2) -#define SHN_NS_UNDEF (SHN_LOOS + 0x3) -#define SHN_FS_UNDEF (SHN_LOOS + 0x4) -#define SHN_HP_EXTERN (SHN_LOOS + 0x5) -#define SHN_HP_EXTHINT (SHN_LOOS + 0x6) -#define SHN_HP_UNDEF_BIND_IMM (SHN_LOOS + 0x7) - -/* Values of sh_type in ElfXX_Shdr. */ -#define SHT_HP_OVLBITS (SHT_LOOS + 0x0) -#define SHT_HP_DLKM (SHT_LOOS + 0x1) -#define SHT_HP_COMDAT (SHT_LOOS + 0x2) -#define SHT_HP_OBJDICT (SHT_LOOS + 0x3) -#define SHT_HP_ANNOT (SHT_LOOS + 0x4) - -/* Flag bits in p_flags of ElfXX_Phdr. */ -#define PF_HP_CODE 0x00040000 -#define PF_HP_MODIFY 0x00080000 -#define PF_HP_PAGE_SIZE 0x00100000 -#define PF_HP_FAR_SHARED 0x00200000 -#define PF_HP_NEAR_SHARED 0x00400000 -#define PF_HP_LAZYSWAP 0x00800000 -#define PF_HP_CODE_DEPR 0x01000000 -#define PF_HP_MODIFY_DEPR 0x02000000 -#define PF_HP_LAZYSWAP_DEPR 0x04000000 -#define PF_PARISC_SBP 0x08000000 -#define PF_HP_SBP 0x08000000 - - -/* Processor specific dynamic array tags. */ - -/* Arggh. HP's tools define these symbols based on the - old value of DT_LOOS. So we must do the same to be - compatible. */ -#define DT_HP_LOAD_MAP (OLD_DT_LOOS + 0x0) -#define DT_HP_DLD_FLAGS (OLD_DT_LOOS + 0x1) -#define DT_HP_DLD_HOOK (OLD_DT_LOOS + 0x2) -#define DT_HP_UX10_INIT (OLD_DT_LOOS + 0x3) -#define DT_HP_UX10_INITSZ (OLD_DT_LOOS + 0x4) -#define DT_HP_PREINIT (OLD_DT_LOOS + 0x5) -#define DT_HP_PREINITSZ (OLD_DT_LOOS + 0x6) -#define DT_HP_NEEDED (OLD_DT_LOOS + 0x7) -#define DT_HP_TIME_STAMP (OLD_DT_LOOS + 0x8) -#define DT_HP_CHECKSUM (OLD_DT_LOOS + 0x9) -#define DT_HP_GST_SIZE (OLD_DT_LOOS + 0xa) -#define DT_HP_GST_VERSION (OLD_DT_LOOS + 0xb) -#define DT_HP_GST_HASHVAL (OLD_DT_LOOS + 0xc) -#define DT_HP_EPLTREL (OLD_DT_LOOS + 0xd) -#define DT_HP_EPLTRELSZ (OLD_DT_LOOS + 0xe) -#define DT_HP_FILTERED (OLD_DT_LOOS + 0xf) -#define DT_HP_FILTER_TLS (OLD_DT_LOOS + 0x10) -#define DT_HP_COMPAT_FILTERED (OLD_DT_LOOS + 0x11) -#define DT_HP_LAZYLOAD (OLD_DT_LOOS + 0x12) -#define DT_HP_BIND_NOW_COUNT (OLD_DT_LOOS + 0x13) -#define DT_PLT (OLD_DT_LOOS + 0x14) -#define DT_PLT_SIZE (OLD_DT_LOOS + 0x15) -#define DT_DLT (OLD_DT_LOOS + 0x16) -#define DT_DLT_SIZE (OLD_DT_LOOS + 0x17) - -/* Values for DT_HP_DLD_FLAGS. */ -#define DT_HP_DEBUG_PRIVATE 0x00001 /* Map text private */ -#define DT_HP_DEBUG_CALLBACK 0x00002 /* Callback */ -#define DT_HP_DEBUG_CALLBACK_BOR 0x00004 /* BOR callback */ -#define DT_HP_NO_ENVVAR 0x00008 /* No env var */ -#define DT_HP_BIND_NOW 0x00010 /* Bind now */ -#define DT_HP_BIND_NONFATAL 0x00020 /* Bind non-fatal */ -#define DT_HP_BIND_VERBOSE 0x00040 /* Bind verbose */ -#define DT_HP_BIND_RESTRICTED 0x00080 /* Bind restricted */ -#define DT_HP_BIND_SYMBOLIC 0x00100 /* Bind symbolic */ -#define DT_HP_RPATH_FIRST 0x00200 /* RPATH first */ -#define DT_HP_BIND_DEPTH_FIRST 0x00400 /* Bind depth-first */ -#define DT_HP_GST 0x00800 /* Dld global sym table */ -#define DT_HP_SHLIB_FIXED 0x01000 /* shared vtable support */ -#define DT_HP_MERGE_SHLIB_SEG 0x02000 /* merge shlib data segs */ -#define DT_HP_NODELETE 0x04000 /* never unload */ -#define DT_HP_GROUP 0x08000 /* bind only within group */ -#define DT_HP_PROTECT_LINKAGE_TABLE 0x10000 /* protected linkage table */ - -/* Program header extensions. */ -#define PT_HP_TLS (PT_LOOS + 0x0) -#define PT_HP_CORE_NONE (PT_LOOS + 0x1) -#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) -#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) -#define PT_HP_CORE_COMM (PT_LOOS + 0x4) -#define PT_HP_CORE_PROC (PT_LOOS + 0x5) -#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) -#define PT_HP_CORE_STACK (PT_LOOS + 0x7) -#define PT_HP_CORE_SHM (PT_LOOS + 0x8) -#define PT_HP_CORE_MMF (PT_LOOS + 0x9) -#define PT_HP_PARALLEL (PT_LOOS + 0x10) -#define PT_HP_FASTBIND (PT_LOOS + 0x11) -#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) -#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) -#define PT_HP_STACK (PT_LOOS + 0x14) -#define PT_HP_CORE_UTSNAME (PT_LOOS + 0x15) - -/* Binding information. */ -#define STB_HP_ALIAS (STB_LOOS + 0x0) - -/* Additional symbol types. */ -#define STT_HP_OPAQUE (STT_LOOS + 0x1) -#define STT_HP_STUB (STT_LOOS + 0x2) - -/* Note types. */ -#define NT_HP_COMPILER 1 -#define NT_HP_COPYRIGHT 2 -#define NT_HP_VERSION 3 -#define NT_HP_SRCFILE_INFO 4 -#define NT_HP_LINKER 5 -#define NT_HP_INSTRUMENTED 6 -#define NT_HP_UX_OPTIONS 7 - -#endif /* _ELF_HPPA_H */ diff --git a/include/elf/i370.h b/include/elf/i370.h deleted file mode 100644 index 7b451ff..0000000 --- a/include/elf/i370.h +++ /dev/null @@ -1,61 +0,0 @@ -/* i370 ELF support for BFD. - Copyright 2000, 2002, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file holds definitions specific to the i370 ELF ABI. Note - that most of this is not actually implemented by BFD. */ - -#ifndef _ELF_I370_H -#define _ELF_I370_H - -#include "elf/reloc-macros.h" - -/* Processor specific section headers, sh_type field */ - -#define SHT_ORDERED SHT_HIPROC /* Link editor is to sort the \ - entries in this section \ - based on the address \ - specified in the associated \ - symbol table entry. */ - -#define EF_I370_RELOCATABLE 0x00010000 /* i370 -mrelocatable flag */ -#define EF_I370_RELOCATABLE_LIB 0x00008000 /* i370 -mrelocatable-lib flag */ - -/* i370 relocations - Note that there is really just one relocation that we currently - support (and only one that we seem to need, at the moment), and - that is the 31-bit address relocation. Note that the 370/390 - only supports a 31-bit (2GB) address space. */ - -START_RELOC_NUMBERS (i370_reloc_type) - RELOC_NUMBER (R_I370_NONE, 0) - RELOC_NUMBER (R_I370_ADDR31, 1) - RELOC_NUMBER (R_I370_ADDR32, 2) - RELOC_NUMBER (R_I370_ADDR16, 3) - RELOC_NUMBER (R_I370_REL31, 4) - RELOC_NUMBER (R_I370_REL32, 5) - RELOC_NUMBER (R_I370_ADDR12, 6) - RELOC_NUMBER (R_I370_REL12, 7) - RELOC_NUMBER (R_I370_ADDR8, 8) - RELOC_NUMBER (R_I370_REL8, 9) - RELOC_NUMBER (R_I370_COPY, 10) - RELOC_NUMBER (R_I370_RELATIVE, 11) -END_RELOC_NUMBERS (R_I370_max) - -#endif /* _ELF_I370_H */ diff --git a/include/elf/i386.h b/include/elf/i386.h deleted file mode 100644 index c475092..0000000 --- a/include/elf/i386.h +++ /dev/null @@ -1,79 +0,0 @@ -/* ix86 ELF support for BFD. - Copyright 1998, 1999, 2000, 2002, 2004, 2005, 2006, 2009, 2010 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_I386_H -#define _ELF_I386_H - -#include "elf/reloc-macros.h" - -START_RELOC_NUMBERS (elf_i386_reloc_type) - RELOC_NUMBER (R_386_NONE, 0) /* No reloc */ - RELOC_NUMBER (R_386_32, 1) /* Direct 32 bit */ - RELOC_NUMBER (R_386_PC32, 2) /* PC relative 32 bit */ - RELOC_NUMBER (R_386_GOT32, 3) /* 32 bit GOT entry */ - RELOC_NUMBER (R_386_PLT32, 4) /* 32 bit PLT address */ - RELOC_NUMBER (R_386_COPY, 5) /* Copy symbol at runtime */ - RELOC_NUMBER (R_386_GLOB_DAT, 6) /* Create GOT entry */ - RELOC_NUMBER (R_386_JUMP_SLOT, 7) /* Create PLT entry */ - RELOC_NUMBER (R_386_RELATIVE, 8) /* Adjust by program base */ - RELOC_NUMBER (R_386_GOTOFF, 9) /* 32 bit offset to GOT */ - RELOC_NUMBER (R_386_GOTPC, 10) /* 32 bit PC relative offset to GOT */ - RELOC_NUMBER (R_386_32PLT, 11) /* Used by Sun */ - FAKE_RELOC (FIRST_INVALID_RELOC, 12) - FAKE_RELOC (LAST_INVALID_RELOC, 13) - RELOC_NUMBER (R_386_TLS_TPOFF,14) - RELOC_NUMBER (R_386_TLS_IE, 15) - RELOC_NUMBER (R_386_TLS_GOTIE,16) - RELOC_NUMBER (R_386_TLS_LE, 17) - RELOC_NUMBER (R_386_TLS_GD, 18) - RELOC_NUMBER (R_386_TLS_LDM, 19) - RELOC_NUMBER (R_386_16, 20) - RELOC_NUMBER (R_386_PC16, 21) - RELOC_NUMBER (R_386_8, 22) - RELOC_NUMBER (R_386_PC8, 23) - RELOC_NUMBER (R_386_TLS_GD_32, 24) - RELOC_NUMBER (R_386_TLS_GD_PUSH, 25) - RELOC_NUMBER (R_386_TLS_GD_CALL, 26) - RELOC_NUMBER (R_386_TLS_GD_POP, 27) - RELOC_NUMBER (R_386_TLS_LDM_32, 28) - RELOC_NUMBER (R_386_TLS_LDM_PUSH, 29) - RELOC_NUMBER (R_386_TLS_LDM_CALL, 30) - RELOC_NUMBER (R_386_TLS_LDM_POP, 31) - RELOC_NUMBER (R_386_TLS_LDO_32, 32) - RELOC_NUMBER (R_386_TLS_IE_32, 33) - RELOC_NUMBER (R_386_TLS_LE_32, 34) - RELOC_NUMBER (R_386_TLS_DTPMOD32, 35) - RELOC_NUMBER (R_386_TLS_DTPOFF32, 36) - RELOC_NUMBER (R_386_TLS_TPOFF32, 37) - RELOC_NUMBER (R_386_SIZE32, 38) /* 32-bit symbol size */ - RELOC_NUMBER (R_386_TLS_GOTDESC, 39) - RELOC_NUMBER (R_386_TLS_DESC_CALL,40) - RELOC_NUMBER (R_386_TLS_DESC, 41) - RELOC_NUMBER (R_386_IRELATIVE, 42) /* Adjust indirectly by program base */ - - /* Used by Intel. */ - RELOC_NUMBER (R_386_USED_BY_INTEL_200, 200) - - /* These are GNU extensions to enable C++ vtable garbage collection. */ - RELOC_NUMBER (R_386_GNU_VTINHERIT, 250) - RELOC_NUMBER (R_386_GNU_VTENTRY, 251) -END_RELOC_NUMBERS (R_386_max) - -#endif diff --git a/include/elf/i860.h b/include/elf/i860.h deleted file mode 100644 index 834c776..0000000 --- a/include/elf/i860.h +++ /dev/null @@ -1,66 +0,0 @@ -/* i860 ELF support for BFD. - Copyright 2000, 2010 Free Software Foundation, Inc. - - Contributed by Jason Eckhardt . - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_I860_H -#define _ELF_I860_H - -/* Note: i860 ELF is defined to use only RELA relocations. */ - -#include "elf/reloc-macros.h" - -START_RELOC_NUMBERS (elf_i860_reloc_type) - RELOC_NUMBER (R_860_NONE, 0x00) /* No reloc */ - RELOC_NUMBER (R_860_32, 0x01) /* S+A */ - RELOC_NUMBER (R_860_COPY, 0x02) /* No calculation */ - RELOC_NUMBER (R_860_GLOB_DAT, 0x03) /* S, Create GOT entry */ - RELOC_NUMBER (R_860_JUMP_SLOT, 0x04) /* S+A, Create PLT entry */ - RELOC_NUMBER (R_860_RELATIVE, 0x05) /* B+A, Adj by program base */ - RELOC_NUMBER (R_860_PC26, 0x30) /* (S+A-P) >> 2 */ - RELOC_NUMBER (R_860_PLT26, 0x31) /* (L+A-P) >> 2 */ - RELOC_NUMBER (R_860_PC16, 0x32) /* (S+A-P) >> 2 */ - RELOC_NUMBER (R_860_LOW0, 0x40) /* S+A */ - RELOC_NUMBER (R_860_SPLIT0, 0x42) /* S+A */ - RELOC_NUMBER (R_860_LOW1, 0x44) /* S+A */ - RELOC_NUMBER (R_860_SPLIT1, 0x46) /* S+A */ - RELOC_NUMBER (R_860_LOW2, 0x48) /* S+A */ - RELOC_NUMBER (R_860_SPLIT2, 0x4A) /* S+A */ - RELOC_NUMBER (R_860_LOW3, 0x4C) /* S+A */ - RELOC_NUMBER (R_860_LOGOT0, 0x50) /* G */ - RELOC_NUMBER (R_860_SPGOT0, 0x52) /* G */ - RELOC_NUMBER (R_860_LOGOT1, 0x54) /* G */ - RELOC_NUMBER (R_860_SPGOT1, 0x56) /* G */ - RELOC_NUMBER (R_860_LOGOTOFF0, 0x60) /* O */ - RELOC_NUMBER (R_860_SPGOTOFF0, 0x62) /* O */ - RELOC_NUMBER (R_860_LOGOTOFF1, 0x64) /* O */ - RELOC_NUMBER (R_860_SPGOTOFF1, 0x66) /* O */ - RELOC_NUMBER (R_860_LOGOTOFF2, 0x68) /* O */ - RELOC_NUMBER (R_860_LOGOTOFF3, 0x6C) /* O */ - RELOC_NUMBER (R_860_LOPC, 0x70) /* (S+A-P) >> 2 */ - RELOC_NUMBER (R_860_HIGHADJ, 0x80) /* hiadj(S+A) */ - RELOC_NUMBER (R_860_HAGOT, 0x90) /* hiadj(G) */ - RELOC_NUMBER (R_860_HAGOTOFF, 0xA0) /* hiadj(O) */ - RELOC_NUMBER (R_860_HAPC, 0xB0) /* hiadj((S+A-P) >> 2) */ - RELOC_NUMBER (R_860_HIGH, 0xC0) /* (S+A) >> 16 */ - RELOC_NUMBER (R_860_HIGOT, 0xD0) /* G >> 16 */ - RELOC_NUMBER (R_860_HIGOTOFF, 0xE0) /* O */ -END_RELOC_NUMBERS (R_860_max) - -#endif diff --git a/include/elf/i960.h b/include/elf/i960.h deleted file mode 100644 index c319b32..0000000 --- a/include/elf/i960.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Intel 960 ELF support for BFD. - Copyright 1999, 2000, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_I960_H -#define _ELF_I960_H - -#include "elf/reloc-macros.h" - - -START_RELOC_NUMBERS (elf_i960_reloc_type) - RELOC_NUMBER (R_960_NONE, 0) - RELOC_NUMBER (R_960_12, 1) - RELOC_NUMBER (R_960_32, 2) - RELOC_NUMBER (R_960_IP24, 3) - RELOC_NUMBER (R_960_SUB, 4) - RELOC_NUMBER (R_960_OPTCALL, 5) - RELOC_NUMBER (R_960_OPTCALLX, 6) - RELOC_NUMBER (R_960_OPTCALLXA, 7) -END_RELOC_NUMBERS (R_960_max) - -#endif /* _ELF_I960_H */ diff --git a/include/elf/ia64.h b/include/elf/ia64.h deleted file mode 100644 index 7f2453d..0000000 --- a/include/elf/ia64.h +++ /dev/null @@ -1,416 +0,0 @@ -/* IA-64 ELF support for BFD. - Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2008, 2009, 2010 - Free Software Foundation, Inc. - Contributed by David Mosberger-Tang - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _ELF_IA64_H -#define _ELF_IA64_H - -/* Bits in the e_flags field of the Elf64_Ehdr: */ - -#define EF_IA_64_MASKOS 0x0000000f /* OS-specific flags. */ -#define EF_IA_64_ARCH 0xff000000 /* Arch. version mask. */ -#define EF_IA_64_ARCHVER_1 (1 << 24) /* Arch. version level 1 compat. */ - -/* ??? These four definitions are not part of the SVR4 ABI. - They were present in David's initial code drop, so it is probable - that they are used by HP/UX. */ -#define EF_IA_64_TRAPNIL (1 << 0) /* Trap NIL pointer dereferences. */ -#define EF_IA_64_EXT (1 << 2) /* Program uses arch. extensions. */ -#define EF_IA_64_BE (1 << 3) /* PSR BE bit set (big-endian). */ -#define EFA_IA_64_EAS2_3 0x23000000 /* IA64 EAS 2.3. */ - -#define EF_IA_64_ABI64 (1 << 4) /* 64-bit ABI. */ -/* Not used yet. */ -#define EF_IA_64_REDUCEDFP (1 << 5) /* Only FP6-FP11 used. */ -#define EF_IA_64_CONS_GP (1 << 6) /* gp as program wide constant. */ -#define EF_IA_64_NOFUNCDESC_CONS_GP (1 << 7) /* And no function descriptors. */ -/* Not used yet. */ -#define EF_IA_64_ABSOLUTE (1 << 8) /* Load at absolute addresses. */ - -/* OpenVMS speficic. */ -#define EF_IA_64_VMS_COMCOD 0x03 /* Completion code. */ -#define EF_IA_64_VMS_COMCOD_SUCCESS 0 -#define EF_IA_64_VMS_COMCOD_WARNING 1 -#define EF_IA_64_VMS_COMCOD_ERROR 2 -#define EF_IA_64_VMS_COMCOD_ABORT 3 -#define EF_IA_64_VMS_LINKAGES 0x04 /* Contains VMS linkages info. */ - -#define ELF_STRING_ia64_archext ".IA_64.archext" -#define ELF_STRING_ia64_pltoff ".IA_64.pltoff" -#define ELF_STRING_ia64_unwind ".IA_64.unwind" -#define ELF_STRING_ia64_unwind_info ".IA_64.unwind_info" -#define ELF_STRING_ia64_unwind_once ".gnu.linkonce.ia64unw." -#define ELF_STRING_ia64_unwind_info_once ".gnu.linkonce.ia64unwi." -/* .IA_64.unwind_hdr is only used by HP-UX. */ -#define ELF_STRING_ia64_unwind_hdr ".IA_64.unwind_hdr" - -/* Bits in the sh_flags field of Elf64_Shdr: */ - -#define SHF_IA_64_SHORT 0x10000000 /* Section near gp. */ -#define SHF_IA_64_NORECOV 0x20000000 /* Spec insns w/o recovery. */ - -#define SHF_IA_64_HP_TLS 0x01000000 /* HP specific TLS flag. */ - -#define SHF_IA_64_VMS_GLOBAL 0x0100000000ULL /* Global for clustering. */ -#define SHF_IA_64_VMS_OVERLAID 0x0200000000ULL /* To be overlaid. */ -#define SHF_IA_64_VMS_SHARED 0x0400000000ULL /* Shared btw processes. */ -#define SHF_IA_64_VMS_VECTOR 0x0800000000ULL /* Priv change mode vect. */ -#define SHF_IA_64_VMS_ALLOC_64BIT 0x1000000000ULL /* Allocate beyond 2GB. */ -#define SHF_IA_64_VMS_PROTECTED 0x2000000000ULL /* Export from sharable. */ - -/* Possible values for sh_type in Elf64_Shdr: */ - -#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* Extension bits. */ -#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) /* Unwind bits. */ -#define SHT_IA_64_LOPSREG (SHT_LOPROC + 0x8000000) -/* ABI says (SHT_LOPROC + 0xfffffff) but I think it's a typo -- this makes sense. */ -#define SHT_IA_64_HIPSREG (SHT_LOPROC + 0x8ffffff) -#define SHT_IA_64_PRIORITY_INIT (SHT_LOPROC + 0x9000000) - -/* SHT_IA_64_HP_OPT_ANOT is only generated by HPUX compilers for its - optimization annotation section. GCC does not generate it but we - want readelf to know what they are. Do not use two capital Ns in - annotate or sed will turn it into 32 or 64 during the build. */ -#define SHT_IA_64_HP_OPT_ANOT 0x60000004 - -/* OpenVMS section types. */ -/* The section contains PC-to-source correlation information for use by the - VMS RTL's traceback facility. */ -#define SHT_IA_64_VMS_TRACE 0x60000000 -/* The section contains routine signature information for use by the - translated image executive. */ -#define SHT_IA_64_VMS_TIE_SIGNATURES 0x60000001 -/* The section contains dwarf-3 information. */ -#define SHT_IA_64_VMS_DEBUG 0x60000002 -/* The section contains the dwarf-3 string table. */ -#define SHT_IA_64_VMS_DEBUG_STR 0x60000003 -/* The section contains linkage information to perform consistency checking - accross object modules. */ -#define SHT_IA_64_VMS_LINKAGES 0x60000004 -/* The section allows the symbol vector in an image to be location through - the section table. */ -#define SHT_IA_64_VMS_SYMBOL_VECTOR 0x60000005 -/* The section contains inter-image fixups. */ -#define SHT_IA_64_VMS_FIXUP 0x60000006 -/* The section contains unmangled name info. */ -#define SHT_IA_64_VMS_DISPLAY_NAME_INFO 0x60000007 - -/* Bits in the p_flags field of Elf64_Phdr: */ - -#define PF_IA_64_NORECOV 0x80000000 - -/* Possible values for p_type in Elf64_Phdr: */ - -#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) /* Arch extension bits, */ -#define PT_IA_64_UNWIND (PT_LOPROC + 1) /* IA64 unwind bits. */ - -/* HP-UX specific values for p_type in Elf64_Phdr. - These values are currently just used to make - readelf more usable on HP-UX. */ - -#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12) -#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13) -#define PT_IA_64_HP_STACK (PT_LOOS + 0x14) - -/* Possible values for d_tag in Elf64_Dyn: */ - -#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) - -/* VMS specific values for d_tag in Elf64_Dyn: */ - -#define DT_IA_64_VMS_SUBTYPE (DT_LOOS + 0) -#define DT_IA_64_VMS_IMGIOCNT (DT_LOOS + 2) -#define DT_IA_64_VMS_LNKFLAGS (DT_LOOS + 8) -#define DT_IA_64_VMS_VIR_MEM_BLK_SIZ (DT_LOOS + 10) -#define DT_IA_64_VMS_IDENT (DT_LOOS + 12) -#define DT_IA_64_VMS_NEEDED_IDENT (DT_LOOS + 16) -#define DT_IA_64_VMS_IMG_RELA_CNT (DT_LOOS + 18) -#define DT_IA_64_VMS_SEG_RELA_CNT (DT_LOOS + 20) -#define DT_IA_64_VMS_FIXUP_RELA_CNT (DT_LOOS + 22) -#define DT_IA_64_VMS_FIXUP_NEEDED (DT_LOOS + 24) -#define DT_IA_64_VMS_SYMVEC_CNT (DT_LOOS + 26) -#define DT_IA_64_VMS_XLATED (DT_LOOS + 30) -#define DT_IA_64_VMS_STACKSIZE (DT_LOOS + 32) -#define DT_IA_64_VMS_UNWINDSZ (DT_LOOS + 34) -#define DT_IA_64_VMS_UNWIND_CODSEG (DT_LOOS + 36) -#define DT_IA_64_VMS_UNWIND_INFOSEG (DT_LOOS + 38) -#define DT_IA_64_VMS_LINKTIME (DT_LOOS + 40) -#define DT_IA_64_VMS_SEG_NO (DT_LOOS + 42) -#define DT_IA_64_VMS_SYMVEC_OFFSET (DT_LOOS + 44) -#define DT_IA_64_VMS_SYMVEC_SEG (DT_LOOS + 46) -#define DT_IA_64_VMS_UNWIND_OFFSET (DT_LOOS + 48) -#define DT_IA_64_VMS_UNWIND_SEG (DT_LOOS + 50) -#define DT_IA_64_VMS_STRTAB_OFFSET (DT_LOOS + 52) -#define DT_IA_64_VMS_SYSVER_OFFSET (DT_LOOS + 54) -#define DT_IA_64_VMS_IMG_RELA_OFF (DT_LOOS + 56) -#define DT_IA_64_VMS_SEG_RELA_OFF (DT_LOOS + 58) -#define DT_IA_64_VMS_FIXUP_RELA_OFF (DT_LOOS + 60) -#define DT_IA_64_VMS_PLTGOT_OFFSET (DT_LOOS + 62) -#define DT_IA_64_VMS_PLTGOT_SEG (DT_LOOS + 64) -#define DT_IA_64_VMS_FPMODE (DT_LOOS + 66) - -/* Values for DT_IA_64_LNKFLAGS. */ -#define VMS_LF_CALL_DEBUG 0x0001 /* Activate and call the debugger. */ -#define VMS_LF_NOP0BUFS 0x0002 /* RMS use of P0 for i/o disabled. */ -#define VMS_LF_P0IMAGE 0x0004 /* Image in P0 space only. */ -#define VMS_LF_MKTHREADS 0x0008 /* Multiple kernel threads enabled. */ -#define VMS_LF_UPCALLS 0x0010 /* Upcalls enabled. */ -#define VMS_LF_IMGSTA 0x0020 /* Use SYS$IMGSTA. */ -#define VMS_LF_INITIALIZE 0x0040 /* Image uses tfradr2. */ -#define VMS_LF_MAIN 0x0080 /* Image uses tfradr3. */ -#define VMS_LF_EXE_INIT 0x0200 /* Image uses tfradr4. */ -#define VMS_LF_TBK_IN_IMG 0x0400 /* Traceback records in image. */ -#define VMS_LF_DBG_IN_IMG 0x0800 /* Debug records in image. */ -#define VMS_LF_TBK_IN_DSF 0x1000 /* Traceback records in DSF. */ -#define VMS_LF_DBG_IN_DSF 0x2000 /* Debug records in DSF. */ -#define VMS_LF_SIGNATURES 0x4000 /* Signatures present. */ -#define VMS_LF_REL_SEG_OFF 0x8000 /* Maintain relative pos of seg. */ - -/* This section only used by HP-UX, The HP linker gives weak symbols - precedence over regular common symbols. We want common to override - weak. Using this common instead of SHN_COMMON does that. */ -#define SHN_IA_64_ANSI_COMMON SHN_LORESERVE - -/* This section is only used by OpenVMS. Symbol is defined in the symbol - vector (only possible for image files). */ -#define SHN_IA_64_VMS_SYMVEC SHN_LOOS - -/* OpenVMS IA64-specific symbol attributes. */ -#define VMS_STO_VISIBILITY 3 /* Alias of the standard field. */ -#define VMS_ST_VISIBILITY(o) ((o) & VMS_STO_VISIBILITY) -#define VMS_STO_FUNC_TYPE 0x30 /* Function type. */ -#define VMS_ST_FUNC_TYPE(o) (((o) & VMS_STO_FUNC_TYPE) >> 4) -# define VMS_SFT_CODE_ADDR 0 /* Symbol value is a code address. */ -# define VMS_SFT_SYMV_IDX 1 /* Symbol value is a symbol vector index. */ -# define VMS_SFT_FD 2 /* Symbol value is a function descriptor. */ -# define VMS_SFT_RESERVE 3 /* Reserved. */ -#define VMS_STO_LINKAGE 0xc0 -#define VMS_ST_LINKAGE(o) (((o) & VMS_STO_LINKAGE) >> 6) -# define VMS_STL_IGNORE 0 /* No associated linkage. */ -# define VMS_STL_RESERVE 1 -# define VMS_STL_STD 2 /* Standard linkage with return value. */ -# define VMS_STL_LNK 3 /* Explicit represented in .vms_linkages. */ - -/* OpenVMS specific symbol binding values. */ -#define STB_VMS_WEAK 11 /* VMS weak symbol. */ -#define STB_VMS_SYSTEM 12 /* System symbol. */ - -/* OpenVMS specific fixup and relocation structures. */ - -typedef struct -{ - unsigned char fixup_offset[8]; - unsigned char type[4]; - unsigned char fixup_seg[4]; - unsigned char addend[8]; - unsigned char symvec_index[4]; - unsigned char data_type[4]; -} Elf64_External_VMS_IMAGE_FIXUP; - -typedef struct -{ - unsigned char rela_offset[8]; - unsigned char type[4]; - unsigned char rela_seg[4]; - unsigned char addend[8]; - unsigned char sym_offset[8]; - unsigned char sym_seg[4]; - unsigned char fill_1[4]; -} Elf64_External_VMS_IMAGE_RELA; - -/* Note segments. VMS is special as it uses 64-bit entries. */ - -typedef struct { - unsigned char namesz[8]; /* Size of entry's owner string */ - unsigned char descsz[8]; /* Size of the note descriptor */ - unsigned char type[8]; /* Interpretation of the descriptor */ - char name[1]; /* Start of the name+desc data */ -} Elf64_External_VMS_Note; - -#define NT_VMS_MHD 1 /* Object module name, version, and date/time. */ -#define NT_VMS_LNM 2 /* Language processor name. */ -#define NT_VMS_SRC 3 /* Source files. */ -#define NT_VMS_TITLE 4 /* Title text. */ -#define NT_VMS_EIDC 5 /* Entity ident consistency check. */ -#define NT_VMS_FPMODE 6 /* Whole program floating-point mode. */ -#define NT_VMS_LINKTIME 101 /* Date/time image was linked. */ -#define NT_VMS_IMGNAM 102 /* Image name string. */ -#define NT_VMS_IMGID 103 /* Image ident string. */ -#define NT_VMS_LINKID 104 /* Linker ident string. */ -#define NT_VMS_IMGBID 105 /* Image build ident string. */ -#define NT_VMS_GSTNAM 106 /* Global Symbol Table Name. */ -#define NT_VMS_ORIG_DYN 107 /* Original setting of dynamic data. */ -#define NT_VMS_PATCHTIME 108 /* Date/time of last patch. */ - -/* Corresponding data for NT_VMS_ORIG_DYM. */ - -typedef struct { - unsigned char major_id[4]; /* Should be 1. */ - unsigned char minor_id[4]; /* Should be 3. */ - unsigned char manipulation_date[8]; /* Original NT_VMS_LNKTIME. */ - unsigned char link_flags[8]; /* Original NT_VMS_LNKFLAGS. */ - unsigned char elf_flags[4]; /* Original ehdr flags. */ - unsigned char _pad[4]; - unsigned char imgid[1]; /* Original NT_VMS_IMGID. */ -} Elf64_External_VMS_ORIG_DYN_Note; - -/* IA64-specific relocation types: */ - -/* Relocs apply to specific instructions within a bundle. The least - significant 2 bits of the address indicate which instruction in the - bundle the reloc refers to (0=first slot, 1=second slow, 2=third - slot, 3=undefined) and the remaining bits give the address of the - bundle (16 byte aligned). - - The top 5 bits of the reloc code specifies the expression type, the - low 3 bits the format of the data word being relocated. */ - -#include "elf/reloc-macros.h" - -START_RELOC_NUMBERS (elf_ia64_reloc_type) - RELOC_NUMBER (R_IA64_NONE, 0x00) /* none */ - - RELOC_NUMBER (R_IA64_IMM14, 0x21) /* symbol + addend, add imm14 */ - RELOC_NUMBER (R_IA64_IMM22, 0x22) /* symbol + addend, add imm22 */ - RELOC_NUMBER (R_IA64_IMM64, 0x23) /* symbol + addend, mov imm64 */ - RELOC_NUMBER (R_IA64_DIR32MSB, 0x24) /* symbol + addend, data4 MSB */ - RELOC_NUMBER (R_IA64_DIR32LSB, 0x25) /* symbol + addend, data4 LSB */ - RELOC_NUMBER (R_IA64_DIR64MSB, 0x26) /* symbol + addend, data8 MSB */ - RELOC_NUMBER (R_IA64_DIR64LSB, 0x27) /* symbol + addend, data8 LSB */ - - RELOC_NUMBER (R_IA64_GPREL22, 0x2a) /* @gprel(sym+add), add imm22 */ - RELOC_NUMBER (R_IA64_GPREL64I, 0x2b) /* @gprel(sym+add), mov imm64 */ - RELOC_NUMBER (R_IA64_GPREL32MSB, 0x2c) /* @gprel(sym+add), data4 MSB */ - RELOC_NUMBER (R_IA64_GPREL32LSB, 0x2d) /* @gprel(sym+add), data4 LSB */ - RELOC_NUMBER (R_IA64_GPREL64MSB, 0x2e) /* @gprel(sym+add), data8 MSB */ - RELOC_NUMBER (R_IA64_GPREL64LSB, 0x2f) /* @gprel(sym+add), data8 LSB */ - - RELOC_NUMBER (R_IA64_LTOFF22, 0x32) /* @ltoff(sym+add), add imm22 */ - RELOC_NUMBER (R_IA64_LTOFF64I, 0x33) /* @ltoff(sym+add), mov imm64 */ - - RELOC_NUMBER (R_IA64_PLTOFF22, 0x3a) /* @pltoff(sym+add), add imm22 */ - RELOC_NUMBER (R_IA64_PLTOFF64I, 0x3b) /* @pltoff(sym+add), mov imm64 */ - RELOC_NUMBER (R_IA64_PLTOFF64MSB, 0x3e) /* @pltoff(sym+add), data8 MSB */ - RELOC_NUMBER (R_IA64_PLTOFF64LSB, 0x3f) /* @pltoff(sym+add), data8 LSB */ - - RELOC_NUMBER (R_IA64_FPTR64I, 0x43) /* @fptr(sym+add), mov imm64 */ - RELOC_NUMBER (R_IA64_FPTR32MSB, 0x44) /* @fptr(sym+add), data4 MSB */ - RELOC_NUMBER (R_IA64_FPTR32LSB, 0x45) /* @fptr(sym+add), data4 LSB */ - RELOC_NUMBER (R_IA64_FPTR64MSB, 0x46) /* @fptr(sym+add), data8 MSB */ - RELOC_NUMBER (R_IA64_FPTR64LSB, 0x47) /* @fptr(sym+add), data8 LSB */ - - RELOC_NUMBER (R_IA64_PCREL60B, 0x48) /* @pcrel(sym+add), brl */ - RELOC_NUMBER (R_IA64_PCREL21B, 0x49) /* @pcrel(sym+add), ptb, call */ - RELOC_NUMBER (R_IA64_PCREL21M, 0x4a) /* @pcrel(sym+add), chk.s */ - RELOC_NUMBER (R_IA64_PCREL21F, 0x4b) /* @pcrel(sym+add), fchkf */ - RELOC_NUMBER (R_IA64_PCREL32MSB, 0x4c) /* @pcrel(sym+add), data4 MSB */ - RELOC_NUMBER (R_IA64_PCREL32LSB, 0x4d) /* @pcrel(sym+add), data4 LSB */ - RELOC_NUMBER (R_IA64_PCREL64MSB, 0x4e) /* @pcrel(sym+add), data8 MSB */ - RELOC_NUMBER (R_IA64_PCREL64LSB, 0x4f) /* @pcrel(sym+add), data8 LSB */ - - RELOC_NUMBER (R_IA64_LTOFF_FPTR22, 0x52) /* @ltoff(@fptr(s+a)), imm22 */ - RELOC_NUMBER (R_IA64_LTOFF_FPTR64I, 0x53) /* @ltoff(@fptr(s+a)), imm64 */ - RELOC_NUMBER (R_IA64_LTOFF_FPTR32MSB, 0x54) /* @ltoff(@fptr(s+a)), 4 MSB */ - RELOC_NUMBER (R_IA64_LTOFF_FPTR32LSB, 0x55) /* @ltoff(@fptr(s+a)), 4 LSB */ - RELOC_NUMBER (R_IA64_LTOFF_FPTR64MSB, 0x56) /* @ltoff(@fptr(s+a)), 8 MSB */ - RELOC_NUMBER (R_IA64_LTOFF_FPTR64LSB, 0x57) /* @ltoff(@fptr(s+a)), 8 LSB */ - - RELOC_NUMBER (R_IA64_SEGREL32MSB, 0x5c) /* @segrel(sym+add), data4 MSB */ - RELOC_NUMBER (R_IA64_SEGREL32LSB, 0x5d) /* @segrel(sym+add), data4 LSB */ - RELOC_NUMBER (R_IA64_SEGREL64MSB, 0x5e) /* @segrel(sym+add), data8 MSB */ - RELOC_NUMBER (R_IA64_SEGREL64LSB, 0x5f) /* @segrel(sym+add), data8 LSB */ - - RELOC_NUMBER (R_IA64_SECREL32MSB, 0x64) /* @secrel(sym+add), data4 MSB */ - RELOC_NUMBER (R_IA64_SECREL32LSB, 0x65) /* @secrel(sym+add), data4 LSB */ - RELOC_NUMBER (R_IA64_SECREL64MSB, 0x66) /* @secrel(sym+add), data8 MSB */ - RELOC_NUMBER (R_IA64_SECREL64LSB, 0x67) /* @secrel(sym+add), data8 LSB */ - - RELOC_NUMBER (R_IA64_REL32MSB, 0x6c) /* data 4 + REL */ - RELOC_NUMBER (R_IA64_REL32LSB, 0x6d) /* data 4 + REL */ - RELOC_NUMBER (R_IA64_REL64MSB, 0x6e) /* data 8 + REL */ - RELOC_NUMBER (R_IA64_REL64LSB, 0x6f) /* data 8 + REL */ - - RELOC_NUMBER (R_IA64_LTV32MSB, 0x74) /* symbol + addend, data4 MSB */ - RELOC_NUMBER (R_IA64_LTV32LSB, 0x75) /* symbol + addend, data4 LSB */ - RELOC_NUMBER (R_IA64_LTV64MSB, 0x76) /* symbol + addend, data8 MSB */ - RELOC_NUMBER (R_IA64_LTV64LSB, 0x77) /* symbol + addend, data8 LSB */ - - RELOC_NUMBER (R_IA64_PCREL21BI, 0x79) /* @pcrel(sym+add), ptb, call */ - RELOC_NUMBER (R_IA64_PCREL22, 0x7a) /* @pcrel(sym+add), imm22 */ - RELOC_NUMBER (R_IA64_PCREL64I, 0x7b) /* @pcrel(sym+add), imm64 */ - - RELOC_NUMBER (R_IA64_IPLTMSB, 0x80) /* dynamic reloc, imported PLT, MSB */ - RELOC_NUMBER (R_IA64_IPLTLSB, 0x81) /* dynamic reloc, imported PLT, LSB */ - RELOC_NUMBER (R_IA64_COPY, 0x84) /* dynamic reloc, data copy */ - RELOC_NUMBER (R_IA64_LTOFF22X, 0x86) /* LTOFF22, relaxable. */ - RELOC_NUMBER (R_IA64_LDXMOV, 0x87) /* Use of LTOFF22X. */ - - RELOC_NUMBER (R_IA64_TPREL14, 0x91) /* @tprel(sym+add), add imm14 */ - RELOC_NUMBER (R_IA64_TPREL22, 0x92) /* @tprel(sym+add), add imm22 */ - RELOC_NUMBER (R_IA64_TPREL64I, 0x93) /* @tprel(sym+add), add imm64 */ - RELOC_NUMBER (R_IA64_TPREL64MSB, 0x96) /* @tprel(sym+add), data8 MSB */ - RELOC_NUMBER (R_IA64_TPREL64LSB, 0x97) /* @tprel(sym+add), data8 LSB */ - - RELOC_NUMBER (R_IA64_LTOFF_TPREL22, 0x9a) /* @ltoff(@tprel(s+a)), add imm22 */ - - RELOC_NUMBER (R_IA64_DTPMOD64MSB, 0xa6) /* @dtpmod(sym+add), data8 MSB */ - RELOC_NUMBER (R_IA64_DTPMOD64LSB, 0xa7) /* @dtpmod(sym+add), data8 LSB */ - RELOC_NUMBER (R_IA64_LTOFF_DTPMOD22, 0xaa) /* @ltoff(@dtpmod(s+a)), imm22 */ - - RELOC_NUMBER (R_IA64_DTPREL14, 0xb1) /* @dtprel(sym+add), imm14 */ - RELOC_NUMBER (R_IA64_DTPREL22, 0xb2) /* @dtprel(sym+add), imm22 */ - RELOC_NUMBER (R_IA64_DTPREL64I, 0xb3) /* @dtprel(sym+add), imm64 */ - RELOC_NUMBER (R_IA64_DTPREL32MSB, 0xb4) /* @dtprel(sym+add), data4 MSB */ - RELOC_NUMBER (R_IA64_DTPREL32LSB, 0xb5) /* @dtprel(sym+add), data4 LSB */ - RELOC_NUMBER (R_IA64_DTPREL64MSB, 0xb6) /* @dtprel(sym+add), data8 MSB */ - RELOC_NUMBER (R_IA64_DTPREL64LSB, 0xb7) /* @dtprel(sym+add), data8 LSB */ - - RELOC_NUMBER (R_IA64_LTOFF_DTPREL22, 0xba) /* @ltoff(@dtprel(s+a)), imm22 */ - - FAKE_RELOC (R_IA64_MAX_RELOC_CODE, 0xba) - - /* OpenVMS specific relocs. */ - RELOC_NUMBER (R_IA64_VMS_DIR8, 0x70000000) /* S + A */ - RELOC_NUMBER (R_IA64_VMS_DIR16LSB, 0x70000001) /* S + A */ - RELOC_NUMBER (R_IA64_VMS_CALL_SIGNATURE, 0x70000002) - RELOC_NUMBER (R_IA64_VMS_EXECLET_FUNC, 0x70000003) - RELOC_NUMBER (R_IA64_VMS_EXECLET_DATA, 0x70000004) - RELOC_NUMBER (R_IA64_VMS_FIX8, 0x70000005) /* S + A */ - RELOC_NUMBER (R_IA64_VMS_FIX16, 0x70000006) /* S + A */ - RELOC_NUMBER (R_IA64_VMS_FIX32, 0x70000007) /* S + A */ - RELOC_NUMBER (R_IA64_VMS_FIX64, 0x70000008) /* S + A */ - RELOC_NUMBER (R_IA64_VMS_FIXFD, 0x70000009) - RELOC_NUMBER (R_IA64_VMS_ACC_LOAD, 0x7000000a) /* ACC = S + A */ - RELOC_NUMBER (R_IA64_VMS_ACC_ADD, 0x7000000b) /* ACC += S + A */ - RELOC_NUMBER (R_IA64_VMS_ACC_SUB, 0x7000000c) /* ACC -= S + A */ - RELOC_NUMBER (R_IA64_VMS_ACC_MUL, 0x7000000d) /* ACC *= S + A */ - RELOC_NUMBER (R_IA64_VMS_ACC_DIV, 0x7000000e) /* ACC /= S + A */ - RELOC_NUMBER (R_IA64_VMS_ACC_AND, 0x7000000f) /* ACC &= S + A */ - RELOC_NUMBER (R_IA64_VMS_ACC_IOR, 0x70000010) /* ACC |= S + A */ - RELOC_NUMBER (R_IA64_VMS_ACC_EOR, 0x70000011) /* ACC ^= S + A */ - RELOC_NUMBER (R_IA64_VMS_ACC_ASH, 0x70000012) /* ACC >>= S + A */ - RELOC_NUMBER (R_IA64_VMS_ACC_STO8, 0x70000014) /* ACC */ - RELOC_NUMBER (R_IA64_VMS_ACC_STO16LSH, 0x70000015) /* ACC */ - RELOC_NUMBER (R_IA64_VMS_ACC_STO32LSH, 0x70000016) /* ACC */ - RELOC_NUMBER (R_IA64_VMS_ACC_STO64LSH, 0x70000017) /* ACC */ -END_RELOC_NUMBERS (R_IA64_max) - -#endif /* _ELF_IA64_H */ diff --git a/include/elf/internal.h b/include/elf/internal.h deleted file mode 100644 index 4615037..0000000 --- a/include/elf/internal.h +++ /dev/null @@ -1,360 +0,0 @@ -/* ELF support for BFD. - Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002, - 2003, 2006, 2007, 2008, 2010, 2011 Free Software Foundation, Inc. - - Written by Fred Fish @ Cygnus Support, from information published - in "UNIX System V Release 4, Programmers Guide: ANSI C and - Programming Support Tools". - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file is part of ELF support for BFD, and contains the portions - that describe how ELF is represented internally in the BFD library. - I.E. it describes the in-memory representation of ELF. It requires - the elf-common.h file which contains the portions that are common to - both the internal and external representations. */ - -/* NOTE that these structures are not kept in the same order as they appear - in the object file. In some cases they've been reordered for more optimal - packing under various circumstances. */ - -#ifndef _ELF_INTERNAL_H -#define _ELF_INTERNAL_H - -/* Special section indices, which may show up in st_shndx fields, among - other places. */ - -#undef SHN_UNDEF -#undef SHN_LORESERVE -#undef SHN_LOPROC -#undef SHN_HIPROC -#undef SHN_LOOS -#undef SHN_HIOS -#undef SHN_ABS -#undef SHN_COMMON -#undef SHN_XINDEX -#undef SHN_HIRESERVE -#define SHN_UNDEF 0 /* Undefined section reference */ -#define SHN_LORESERVE (-0x100u) /* Begin range of reserved indices */ -#define SHN_LOPROC (-0x100u) /* Begin range of appl-specific */ -#define SHN_HIPROC (-0xE1u) /* End range of appl-specific */ -#define SHN_LOOS (-0xE0u) /* OS specific semantics, lo */ -#define SHN_HIOS (-0xC1u) /* OS specific semantics, hi */ -#define SHN_ABS (-0xFu) /* Associated symbol is absolute */ -#define SHN_COMMON (-0xEu) /* Associated symbol is in common */ -#define SHN_XINDEX (-0x1u) /* Section index is held elsewhere */ -#define SHN_HIRESERVE (-0x1u) /* End range of reserved indices */ -#define SHN_BAD (-0x101u) /* Used internally by bfd */ - -/* ELF Header */ - -#define EI_NIDENT 16 /* Size of e_ident[] */ - -typedef struct elf_internal_ehdr { - unsigned char e_ident[EI_NIDENT]; /* ELF "magic number" */ - bfd_vma e_entry; /* Entry point virtual address */ - bfd_size_type e_phoff; /* Program header table file offset */ - bfd_size_type e_shoff; /* Section header table file offset */ - unsigned long e_version; /* Identifies object file version */ - unsigned long e_flags; /* Processor-specific flags */ - unsigned short e_type; /* Identifies object file type */ - unsigned short e_machine; /* Specifies required architecture */ - unsigned int e_ehsize; /* ELF header size in bytes */ - unsigned int e_phentsize; /* Program header table entry size */ - unsigned int e_phnum; /* Program header table entry count */ - unsigned int e_shentsize; /* Section header table entry size */ - unsigned int e_shnum; /* Section header table entry count */ - unsigned int e_shstrndx; /* Section header string table index */ -} Elf_Internal_Ehdr; - -/* Program header */ - -struct elf_internal_phdr { - unsigned long p_type; /* Identifies program segment type */ - unsigned long p_flags; /* Segment flags */ - bfd_vma p_offset; /* Segment file offset */ - bfd_vma p_vaddr; /* Segment virtual address */ - bfd_vma p_paddr; /* Segment physical address */ - bfd_vma p_filesz; /* Segment size in file */ - bfd_vma p_memsz; /* Segment size in memory */ - bfd_vma p_align; /* Segment alignment, file & memory */ -}; - -typedef struct elf_internal_phdr Elf_Internal_Phdr; - -/* Section header */ - -typedef struct elf_internal_shdr { - unsigned int sh_name; /* Section name, index in string tbl */ - unsigned int sh_type; /* Type of section */ - bfd_vma sh_flags; /* Miscellaneous section attributes */ - bfd_vma sh_addr; /* Section virtual addr at execution */ - file_ptr sh_offset; /* Section file offset */ - bfd_size_type sh_size; /* Size of section in bytes */ - unsigned int sh_link; /* Index of another section */ - unsigned int sh_info; /* Additional section information */ - bfd_vma sh_addralign; /* Section alignment */ - bfd_size_type sh_entsize; /* Entry size if section holds table */ - - /* The internal rep also has some cached info associated with it. */ - asection * bfd_section; /* Associated BFD section. */ - unsigned char *contents; /* Section contents. */ -} Elf_Internal_Shdr; - -/* Symbol table entry */ - -struct elf_internal_sym { - bfd_vma st_value; /* Value of the symbol */ - bfd_vma st_size; /* Associated symbol size */ - unsigned long st_name; /* Symbol name, index in string tbl */ - unsigned char st_info; /* Type and binding attributes */ - unsigned char st_other; /* Visibilty, and target specific */ - unsigned char st_target_internal; /* Internal-only information */ - unsigned int st_shndx; /* Associated section index */ -}; - -typedef struct elf_internal_sym Elf_Internal_Sym; - -/* Note segments */ - -typedef struct elf_internal_note { - unsigned long namesz; /* Size of entry's owner string */ - unsigned long descsz; /* Size of the note descriptor */ - unsigned long type; /* Interpretation of the descriptor */ - char * namedata; /* Start of the name+desc data */ - char * descdata; /* Start of the desc data */ - bfd_vma descpos; /* File offset of the descdata */ -} Elf_Internal_Note; - -/* Relocation Entries */ - -typedef struct elf_internal_rela { - bfd_vma r_offset; /* Location at which to apply the action */ - bfd_vma r_info; /* Index and Type of relocation */ - bfd_vma r_addend; /* Constant addend used to compute value */ -} Elf_Internal_Rela; - -/* dynamic section structure */ - -typedef struct elf_internal_dyn { - /* This needs to support 64-bit values in elf64. */ - bfd_vma d_tag; /* entry tag value */ - union { - /* This needs to support 64-bit values in elf64. */ - bfd_vma d_val; - bfd_vma d_ptr; - } d_un; -} Elf_Internal_Dyn; - -/* This structure appears in a SHT_GNU_verdef section. */ - -typedef struct elf_internal_verdef { - unsigned short vd_version; /* Version number of structure. */ - unsigned short vd_flags; /* Flags (VER_FLG_*). */ - unsigned short vd_ndx; /* Version index. */ - unsigned short vd_cnt; /* Number of verdaux entries. */ - unsigned long vd_hash; /* Hash of name. */ - unsigned long vd_aux; /* Offset to verdaux entries. */ - unsigned long vd_next; /* Offset to next verdef. */ - - /* These fields are set up when BFD reads in the structure. FIXME: - It would be cleaner to store these in a different structure. */ - bfd *vd_bfd; /* BFD. */ - const char *vd_nodename; /* Version name. */ - struct elf_internal_verdef *vd_nextdef; /* vd_next as pointer. */ - struct elf_internal_verdaux *vd_auxptr; /* vd_aux as pointer. */ - unsigned int vd_exp_refno; /* Used by the linker. */ -} Elf_Internal_Verdef; - -/* This structure appears in a SHT_GNU_verdef section. */ - -typedef struct elf_internal_verdaux { - unsigned long vda_name; /* String table offset of name. */ - unsigned long vda_next; /* Offset to next verdaux. */ - - /* These fields are set up when BFD reads in the structure. FIXME: - It would be cleaner to store these in a different structure. */ - const char *vda_nodename; /* vda_name as pointer. */ - struct elf_internal_verdaux *vda_nextptr; /* vda_next as pointer. */ -} Elf_Internal_Verdaux; - -/* This structure appears in a SHT_GNU_verneed section. */ - -typedef struct elf_internal_verneed { - unsigned short vn_version; /* Version number of structure. */ - unsigned short vn_cnt; /* Number of vernaux entries. */ - unsigned long vn_file; /* String table offset of library name. */ - unsigned long vn_aux; /* Offset to vernaux entries. */ - unsigned long vn_next; /* Offset to next verneed. */ - - /* These fields are set up when BFD reads in the structure. FIXME: - It would be cleaner to store these in a different structure. */ - bfd *vn_bfd; /* BFD. */ - const char *vn_filename; /* vn_file as pointer. */ - struct elf_internal_vernaux *vn_auxptr; /* vn_aux as pointer. */ - struct elf_internal_verneed *vn_nextref; /* vn_nextref as pointer. */ -} Elf_Internal_Verneed; - -/* This structure appears in a SHT_GNU_verneed section. */ - -typedef struct elf_internal_vernaux { - unsigned long vna_hash; /* Hash of dependency name. */ - unsigned short vna_flags; /* Flags (VER_FLG_*). */ - unsigned short vna_other; /* Unused. */ - unsigned long vna_name; /* String table offset to version name. */ - unsigned long vna_next; /* Offset to next vernaux. */ - - /* These fields are set up when BFD reads in the structure. FIXME: - It would be cleaner to store these in a different structure. */ - const char *vna_nodename; /* vna_name as pointer. */ - struct elf_internal_vernaux *vna_nextptr; /* vna_next as pointer. */ -} Elf_Internal_Vernaux; - -/* This structure appears in a SHT_GNU_versym section. This is not a - standard ELF structure; ELF just uses Elf32_Half. */ - -typedef struct elf_internal_versym { - unsigned short vs_vers; -} Elf_Internal_Versym; - -/* Structure for syminfo section. */ -typedef struct -{ - unsigned short int si_boundto; - unsigned short int si_flags; -} Elf_Internal_Syminfo; - -/* This structure appears on the stack and in NT_AUXV core file notes. */ -typedef struct -{ - bfd_vma a_type; - bfd_vma a_val; -} Elf_Internal_Auxv; - - -/* This structure is used to describe how sections should be assigned - to program segments. */ - -struct elf_segment_map -{ - /* Next program segment. */ - struct elf_segment_map *next; - /* Program segment type. */ - unsigned long p_type; - /* Program segment flags. */ - unsigned long p_flags; - /* Program segment physical address. */ - bfd_vma p_paddr; - /* Program segment virtual address offset from section vma. */ - bfd_vma p_vaddr_offset; - /* Program segment alignment. */ - bfd_vma p_align; - /* Segment size in file and memory */ - bfd_vma p_size; - /* Required size of filehdr + phdrs, if non-zero */ - bfd_vma header_size; - /* Whether the p_flags field is valid; if not, the flags are based - on the section flags. */ - unsigned int p_flags_valid : 1; - /* Whether the p_paddr field is valid; if not, the physical address - is based on the section lma values. */ - unsigned int p_paddr_valid : 1; - /* Whether the p_align field is valid; if not, PT_LOAD segment - alignment is based on the default maximum page size. */ - unsigned int p_align_valid : 1; - /* Whether the p_size field is valid; if not, the size are based - on the section sizes. */ - unsigned int p_size_valid : 1; - /* Whether this segment includes the file header. */ - unsigned int includes_filehdr : 1; - /* Whether this segment includes the program headers. */ - unsigned int includes_phdrs : 1; - /* Number of sections (may be 0). */ - unsigned int count; - /* Sections. Actual number of elements is in count field. */ - asection *sections[1]; -}; - -/* .tbss is special. It doesn't contribute memory space to normal - segments and it doesn't take file space in normal segments. */ -#define ELF_TBSS_SPECIAL(sec_hdr, segment) \ - (((sec_hdr)->sh_flags & SHF_TLS) != 0 \ - && (sec_hdr)->sh_type == SHT_NOBITS \ - && (segment)->p_type != PT_TLS) - -#define ELF_SECTION_SIZE(sec_hdr, segment) \ - (ELF_TBSS_SPECIAL(sec_hdr, segment) ? 0 : (sec_hdr)->sh_size) - -/* Decide if the section SEC_HDR is in SEGMENT. If CHECK_VMA, then - VMAs are checked for alloc sections. If STRICT, then a zero size - section won't match at the end of a segment, unless the segment - is also zero size. Regardless of STRICT and CHECK_VMA, zero size - sections won't match at the start or end of PT_DYNAMIC, unless - PT_DYNAMIC is itself zero sized. */ -#define ELF_SECTION_IN_SEGMENT_1(sec_hdr, segment, check_vma, strict) \ - ((/* Only PT_LOAD, PT_GNU_RELRO and PT_TLS segments can contain \ - SHF_TLS sections. */ \ - ((((sec_hdr)->sh_flags & SHF_TLS) != 0) \ - && ((segment)->p_type == PT_TLS \ - || (segment)->p_type == PT_GNU_RELRO \ - || (segment)->p_type == PT_LOAD)) \ - /* PT_TLS segment contains only SHF_TLS sections, PT_PHDR no \ - sections at all. */ \ - || (((sec_hdr)->sh_flags & SHF_TLS) == 0 \ - && (segment)->p_type != PT_TLS \ - && (segment)->p_type != PT_PHDR)) \ - /* Any section besides one of type SHT_NOBITS must have file \ - offsets within the segment. */ \ - && ((sec_hdr)->sh_type == SHT_NOBITS \ - || ((bfd_vma) (sec_hdr)->sh_offset >= (segment)->p_offset \ - && (!(strict) \ - || ((sec_hdr)->sh_offset - (segment)->p_offset \ - <= (segment)->p_filesz - 1)) \ - && (((sec_hdr)->sh_offset - (segment)->p_offset \ - + ELF_SECTION_SIZE(sec_hdr, segment)) \ - <= (segment)->p_filesz))) \ - /* SHF_ALLOC sections must have VMAs within the segment. */ \ - && (!(check_vma) \ - || ((sec_hdr)->sh_flags & SHF_ALLOC) == 0 \ - || ((sec_hdr)->sh_addr >= (segment)->p_vaddr \ - && (!(strict) \ - || ((sec_hdr)->sh_addr - (segment)->p_vaddr \ - <= (segment)->p_memsz - 1)) \ - && (((sec_hdr)->sh_addr - (segment)->p_vaddr \ - + ELF_SECTION_SIZE(sec_hdr, segment)) \ - <= (segment)->p_memsz))) \ - /* No zero size sections at start or end of PT_DYNAMIC. */ \ - && ((segment)->p_type != PT_DYNAMIC \ - || (sec_hdr)->sh_size != 0 \ - || (segment)->p_memsz == 0 \ - || (((sec_hdr)->sh_type == SHT_NOBITS \ - || ((bfd_vma) (sec_hdr)->sh_offset > (segment)->p_offset \ - && ((sec_hdr)->sh_offset - (segment)->p_offset \ - < (segment)->p_filesz))) \ - && (((sec_hdr)->sh_flags & SHF_ALLOC) == 0 \ - || ((sec_hdr)->sh_addr > (segment)->p_vaddr \ - && ((sec_hdr)->sh_addr - (segment)->p_vaddr \ - < (segment)->p_memsz)))))) - -#define ELF_SECTION_IN_SEGMENT(sec_hdr, segment) \ - (ELF_SECTION_IN_SEGMENT_1 (sec_hdr, segment, 1, 0)) - -#define ELF_SECTION_IN_SEGMENT_STRICT(sec_hdr, segment) \ - (ELF_SECTION_IN_SEGMENT_1 (sec_hdr, segment, 1, 1)) - -#endif /* _ELF_INTERNAL_H */ diff --git a/include/elf/ip2k.h b/include/elf/ip2k.h deleted file mode 100644 index 8b4f36e..0000000 --- a/include/elf/ip2k.h +++ /dev/null @@ -1,62 +0,0 @@ -/* IP2xxx ELF support for BFD. - Copyright (C) 2000, 2002, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_IP2K_H -#define _ELF_IP2K_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_ip2k_reloc_type) - RELOC_NUMBER (R_IP2K_NONE, 0) - RELOC_NUMBER (R_IP2K_16, 1) - RELOC_NUMBER (R_IP2K_32, 2) - RELOC_NUMBER (R_IP2K_FR9, 3) - RELOC_NUMBER (R_IP2K_BANK, 4) - RELOC_NUMBER (R_IP2K_ADDR16CJP, 5) - RELOC_NUMBER (R_IP2K_PAGE3, 6) - RELOC_NUMBER (R_IP2K_LO8DATA, 7) - RELOC_NUMBER (R_IP2K_HI8DATA, 8) - RELOC_NUMBER (R_IP2K_LO8INSN, 9) - RELOC_NUMBER (R_IP2K_HI8INSN, 10) - RELOC_NUMBER (R_IP2K_PC_SKIP, 11) - RELOC_NUMBER (R_IP2K_TEXT, 12) - RELOC_NUMBER (R_IP2K_FR_OFFSET, 13) - RELOC_NUMBER (R_IP2K_EX8DATA, 14) -END_RELOC_NUMBERS(R_IP2K_max) - - -/* Define the data & instruction memory discriminator. In a linked - executable, an symbol should be deemed to point to an instruction - if ((address & IP2K_INSN_MASK) == IP2K_INSN_VALUE), and similarly - for the data space. See also `ld/emulparams/elf32ip2k.sh'. */ -/* ??? Consider extending the _MASK values to include all the - intermediate bits that must be zero due to the limited physical - memory size on the IP2K. */ - -#define IP2K_DATA_MASK 0xff000000 -#define IP2K_DATA_VALUE 0x01000000 -#define IP2K_INSN_MASK 0xff000000 -#define IP2K_INSN_VALUE 0x02000000 - -/* The location of the memory mapped hardware stack. */ -#define IP2K_STACK_VALUE 0x0f000000 -#define IP2K_STACK_SIZE 0x20 - -#endif /* _ELF_IP2K_H */ diff --git a/include/elf/iq2000.h b/include/elf/iq2000.h deleted file mode 100644 index 0f8e697..0000000 --- a/include/elf/iq2000.h +++ /dev/null @@ -1,58 +0,0 @@ -/* IQ2000 ELF support for BFD. - Copyright (C) 2002, 2003, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_IQ2000_H -#define _ELF_IQ2000_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_iq2000_reloc_type) - RELOC_NUMBER (R_IQ2000_NONE, 0) - RELOC_NUMBER (R_IQ2000_16, 1) - RELOC_NUMBER (R_IQ2000_32, 2) - RELOC_NUMBER (R_IQ2000_26, 3) - RELOC_NUMBER (R_IQ2000_PC16, 4) - RELOC_NUMBER (R_IQ2000_HI16, 5) - RELOC_NUMBER (R_IQ2000_LO16, 6) - RELOC_NUMBER (R_IQ2000_OFFSET_16, 7) - RELOC_NUMBER (R_IQ2000_OFFSET_21, 8) - RELOC_NUMBER (R_IQ2000_UHI16, 9) - RELOC_NUMBER (R_IQ2000_32_DEBUG, 10) - RELOC_NUMBER (R_IQ2000_GNU_VTINHERIT, 200) - RELOC_NUMBER (R_IQ2000_GNU_VTENTRY, 201) -END_RELOC_NUMBERS(R_IQ2000_max) - -#define EF_IQ2000_CPU_IQ2000 0x00000001 /* default */ -#define EF_IQ2000_CPU_IQ10 0x00000002 /* IQ10 */ -#define EF_IQ2000_CPU_MASK 0x00000003 /* specific cpu bits */ -#define EF_IQ2000_ALL_FLAGS (EF_IQ2000_CPU_MASK) - -/* Define the data & instruction memory discriminator. In a linked - executable, an symbol should be deemed to point to an instruction - if ((address & IQ2000_INSN_MASK) == IQ2000_INSN_VALUE), and similarly - for the data space. */ - -#define IQ2000_DATA_MASK 0x80000000 -#define IQ2000_DATA_VALUE 0x00000000 -#define IQ2000_INSN_MASK 0x80000000 -#define IQ2000_INSN_VALUE 0x80000000 - - -#endif /* _ELF_IQ2000_H */ diff --git a/include/elf/lm32.h b/include/elf/lm32.h deleted file mode 100644 index 6ed34ec..0000000 --- a/include/elf/lm32.h +++ /dev/null @@ -1,56 +0,0 @@ -/* Lattice Mico32 ELF support for BFD. - Copyright 2008, 2010 Free Software Foundation, Inc. - Contributed by Jon Beniston - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_LM32_H -#define _ELF_LM32_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_lm32_reloc_type) - RELOC_NUMBER (R_LM32_NONE, 0) - RELOC_NUMBER (R_LM32_8, 1) - RELOC_NUMBER (R_LM32_16, 2) - RELOC_NUMBER (R_LM32_32, 3) - RELOC_NUMBER (R_LM32_HI16, 4) - RELOC_NUMBER (R_LM32_LO16, 5) - RELOC_NUMBER (R_LM32_GPREL16, 6) - RELOC_NUMBER (R_LM32_CALL, 7) - RELOC_NUMBER (R_LM32_BRANCH, 8) - RELOC_NUMBER (R_LM32_GNU_VTINHERIT, 9) - RELOC_NUMBER (R_LM32_GNU_VTENTRY, 10) - RELOC_NUMBER (R_LM32_16_GOT, 11) - RELOC_NUMBER (R_LM32_GOTOFF_HI16, 12) - RELOC_NUMBER (R_LM32_GOTOFF_LO16, 13) - RELOC_NUMBER (R_LM32_COPY, 14) - RELOC_NUMBER (R_LM32_GLOB_DAT, 15) - RELOC_NUMBER (R_LM32_JMP_SLOT, 16) - RELOC_NUMBER (R_LM32_RELATIVE, 17) -END_RELOC_NUMBERS (R_LM32_max) - -/* Processor specific flags for the ELF header e_flags field. */ - -#define EF_LM32_MACH 0x00000001 - -/* Various CPU types. */ - -#define E_LM32_MACH 0x1 - -#endif /* _ELF_LM32_H */ diff --git a/include/elf/m32c.h b/include/elf/m32c.h deleted file mode 100644 index 29b80a6..0000000 --- a/include/elf/m32c.h +++ /dev/null @@ -1,67 +0,0 @@ -/* M32C ELF support for BFD. - Copyright (C) 2004, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_M32C_H -#define _ELF_M32C_H - -#include "elf/reloc-macros.h" - - /* Relocations. */ - START_RELOC_NUMBERS (elf_m32c_reloc_type) - RELOC_NUMBER (R_M32C_NONE, 0) - RELOC_NUMBER (R_M32C_16, 1) - RELOC_NUMBER (R_M32C_24, 2) - RELOC_NUMBER (R_M32C_32, 3) - RELOC_NUMBER (R_M32C_8_PCREL, 4) - RELOC_NUMBER (R_M32C_16_PCREL, 5) - - /* 8 bit unsigned address, used for dsp8[a0] etc */ - RELOC_NUMBER (R_M32C_8, 6) - /* Bits 0..15 of an address, for SMOVF's A0, A1A0, etc. */ - RELOC_NUMBER (R_M32C_LO16, 7) - /* Bits 16..23 of an address, for SMOVF's R1H etc. */ - RELOC_NUMBER (R_M32C_HI8, 8) - /* Bits 16..31 of an address, for LDE's A1A0 etc. */ - RELOC_NUMBER (R_M32C_HI16, 9) - - /* These are relocs we need when relaxing. */ - /* Marks various jump opcodes. */ - RELOC_NUMBER (R_M32C_RL_JUMP, 10) - /* Marks standard one-address form. */ - RELOC_NUMBER (R_M32C_RL_1ADDR, 11) - /* Marks standard two-address form. */ - RELOC_NUMBER (R_M32C_RL_2ADDR, 12) - - END_RELOC_NUMBERS (R_M32C_max) - -#define EF_M32C_CPU_M16C 0x00000075 /* default */ -#define EF_M32C_CPU_M32C 0x00000078 /* m32c */ -#define EF_M32C_CPU_MASK 0x0000007F /* specific cpu bits */ -#define EF_M32C_ALL_FLAGS (EF_M32C_CPU_MASK) - -/* Define the data & instruction memory discriminator. In a linked - executable, an symbol should be deemed to point to an instruction - if ((address & M16C_INSN_MASK) == M16C_INSN_VALUE), and similarly - for the data space. See also `ld/emulparams/elf32m32c.sh'. */ -#define M32C_DATA_MASK 0xffc00000 -#define M32C_DATA_VALUE 0x00000000 -#define M32C_INSN_MASK 0xffc00000 -#define M32C_INSN_VALUE 0x00400000 - -#endif /* _ELF_M32C_H */ diff --git a/include/elf/m32r.h b/include/elf/m32r.h deleted file mode 100644 index 7e06e3f..0000000 --- a/include/elf/m32r.h +++ /dev/null @@ -1,123 +0,0 @@ -/* M32R ELF support for BFD. - Copyright 1996, 1997, 1998, 1999, 2000, 2003, 2004, 2008, 2010 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_M32R_H -#define _ELF_M32R_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_m32r_reloc_type) - RELOC_NUMBER (R_M32R_NONE, 0) - /* REL relocations */ - RELOC_NUMBER (R_M32R_16, 1) /* For backwards compatibility. */ - RELOC_NUMBER (R_M32R_32, 2) /* For backwards compatibility. */ - RELOC_NUMBER (R_M32R_24, 3) /* For backwards compatibility. */ - RELOC_NUMBER (R_M32R_10_PCREL, 4) /* For backwards compatibility. */ - RELOC_NUMBER (R_M32R_18_PCREL, 5) /* For backwards compatibility. */ - RELOC_NUMBER (R_M32R_26_PCREL, 6) /* For backwards compatibility. */ - RELOC_NUMBER (R_M32R_HI16_ULO, 7) /* For backwards compatibility. */ - RELOC_NUMBER (R_M32R_HI16_SLO, 8) /* For backwards compatibility. */ - RELOC_NUMBER (R_M32R_LO16, 9) /* For backwards compatibility. */ - RELOC_NUMBER (R_M32R_SDA16, 10) /* For backwards compatibility. */ - RELOC_NUMBER (R_M32R_GNU_VTINHERIT, 11)/* For backwards compatibility. */ - RELOC_NUMBER (R_M32R_GNU_VTENTRY, 12) /* For backwards compatibility. */ - - /* RELA relocations */ - RELOC_NUMBER (R_M32R_16_RELA, 33) - RELOC_NUMBER (R_M32R_32_RELA, 34) - RELOC_NUMBER (R_M32R_24_RELA, 35) - RELOC_NUMBER (R_M32R_10_PCREL_RELA, 36) - RELOC_NUMBER (R_M32R_18_PCREL_RELA, 37) - RELOC_NUMBER (R_M32R_26_PCREL_RELA, 38) - RELOC_NUMBER (R_M32R_HI16_ULO_RELA, 39) - RELOC_NUMBER (R_M32R_HI16_SLO_RELA, 40) - RELOC_NUMBER (R_M32R_LO16_RELA, 41) - RELOC_NUMBER (R_M32R_SDA16_RELA, 42) - RELOC_NUMBER (R_M32R_RELA_GNU_VTINHERIT, 43) - RELOC_NUMBER (R_M32R_RELA_GNU_VTENTRY, 44) - - RELOC_NUMBER (R_M32R_REL32, 45) - - RELOC_NUMBER (R_M32R_GOT24, 48) - RELOC_NUMBER (R_M32R_26_PLTREL, 49) - RELOC_NUMBER (R_M32R_COPY, 50) - RELOC_NUMBER (R_M32R_GLOB_DAT, 51) - RELOC_NUMBER (R_M32R_JMP_SLOT, 52) - RELOC_NUMBER (R_M32R_RELATIVE, 53) - RELOC_NUMBER (R_M32R_GOTOFF, 54) - RELOC_NUMBER (R_M32R_GOTPC24, 55) - RELOC_NUMBER (R_M32R_GOT16_HI_ULO, 56) - RELOC_NUMBER (R_M32R_GOT16_HI_SLO, 57) - RELOC_NUMBER (R_M32R_GOT16_LO, 58) - RELOC_NUMBER (R_M32R_GOTPC_HI_ULO, 59) - RELOC_NUMBER (R_M32R_GOTPC_HI_SLO, 60) - RELOC_NUMBER (R_M32R_GOTPC_LO, 61) - RELOC_NUMBER (R_M32R_GOTOFF_HI_ULO, 62) - RELOC_NUMBER (R_M32R_GOTOFF_HI_SLO, 63) - RELOC_NUMBER (R_M32R_GOTOFF_LO, 64) - -END_RELOC_NUMBERS (R_M32R_max) - -/* Processor specific section indices. These sections do not actually - exist. Symbols with a st_shndx field corresponding to one of these - values have a special meaning. */ - -/* Small common symbol. */ -#define SHN_M32R_SCOMMON SHN_LORESERVE - -/* Processor specific section flags. */ - -/* This section contains sufficient relocs to be relaxed. - When relaxing, even relocs of branch instructions the assembler could - complete must be present because relaxing may cause the branch target to - move. */ -#define SHF_M32R_CAN_RELAX 0x10000000 - -/* Processor specific flags for the ELF header e_flags field. */ - -/* Two bit m32r architecture field. */ -#define EF_M32R_ARCH 0x30000000 - -/* m32r code. */ -#define E_M32R_ARCH 0x00000000 -/* m32rx code. */ -#define E_M32RX_ARCH 0x10000000 -/* m32r2 code. */ -#define E_M32R2_ARCH 0x20000000 - -/* 12 bit m32r new instructions field. */ -#define EF_M32R_INST 0x0FFF0000 -/* Parallel instructions. */ -#define E_M32R_HAS_PARALLEL 0x00010000 -/* Hidden instructions for m32rx: - jc, jnc, macwhi-a, macwlo-a, mulwhi-a, mulwlo-a, sth+, shb+, sat, pcmpbz, - sc, snc. */ -#define E_M32R_HAS_HIDDEN_INST 0x00020000 -/* New bit instructions: - clrpsw, setpsw, bset, bclr, btst. */ -#define E_M32R_HAS_BIT_INST 0x00040000 -/* Floating point instructions. */ -#define E_M32R_HAS_FLOAT_INST 0x00080000 - -/* 4 bit m32r ignore to check field. */ -#define EF_M32R_IGNORE 0x0000000F - -#endif diff --git a/include/elf/m68hc11.h b/include/elf/m68hc11.h deleted file mode 100644 index 58d8820..0000000 --- a/include/elf/m68hc11.h +++ /dev/null @@ -1,107 +0,0 @@ -/* m68hc11 & m68hc12 ELF support for BFD. - Copyright 1999, 2000, 2001, 2002, 2010, 2012 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_M68HC11_H -#define _ELF_M68HC11_H - -#include "elf/reloc-macros.h" - -/* Relocation types. */ -START_RELOC_NUMBERS (elf_m68hc11_reloc_type) - RELOC_NUMBER (R_M68HC11_NONE, 0) - RELOC_NUMBER (R_M68HC11_8, 1) - RELOC_NUMBER (R_M68HC11_HI8, 2) - RELOC_NUMBER (R_M68HC11_LO8, 3) - RELOC_NUMBER (R_M68HC11_PCREL_8, 4) - RELOC_NUMBER (R_M68HC11_16, 5) - RELOC_NUMBER (R_M68HC11_32, 6) - RELOC_NUMBER (R_M68HC11_3B, 7) - RELOC_NUMBER (R_M68HC11_PCREL_16, 8) - - /* These are GNU extensions to enable C++ vtable garbage collection. */ - RELOC_NUMBER (R_M68HC11_GNU_VTINHERIT, 9) - RELOC_NUMBER (R_M68HC11_GNU_VTENTRY, 10) - - RELOC_NUMBER (R_M68HC11_24, 11) - RELOC_NUMBER (R_M68HC11_LO16, 12) - RELOC_NUMBER (R_M68HC11_PAGE, 13) - - RELOC_NUMBER (R_M68HC12_16B, 15) - RELOC_NUMBER (R_M68HC12_PCREL_9, 16) - RELOC_NUMBER (R_M68HC12_PCREL_10, 17) - RELOC_NUMBER (R_M68HC12_HI8XG, 18) - RELOC_NUMBER (R_M68HC12_LO8XG, 19) - - /* GNU extension for linker relaxation. - Mark beginning of a jump instruction (any form). */ - RELOC_NUMBER (R_M68HC11_RL_JUMP, 20) - - /* Mark beginning of Gcc relaxation group instruction. */ - RELOC_NUMBER (R_M68HC11_RL_GROUP, 21) -END_RELOC_NUMBERS (R_M68HC11_max) - -/* Processor specific flags for the ELF header e_flags field. */ - -/* ABI identification. */ -#define EF_M68HC11_ABI 0x00000000F - -/* Integers are 32-bit long. */ -#define E_M68HC11_I32 0x000000001 - -/* Doubles are 64-bit long. */ -#define E_M68HC11_F64 0x000000002 - -/* Uses 68HC12 memory banks. */ -#define E_M68HC12_BANKS 0x000000004 - -/* XGATE ram offsetting. */ -#define E_M68HC11_XGATE_RAMOFFSET 0x000000100 - -/* Suppress warnings */ -#define E_M68HC11_NO_BANK_WARNING 0x000000200 - -#define EF_M68HC11_MACH_MASK 0xF0 -#define EF_M68HC11_GENERIC 0x00 /* Generic 68HC12/backward compatibility. */ -#define EF_M68HC12_MACH 0x10 /* 68HC12 microcontroller. */ -#define EF_M68HCS12_MACH 0x20 /* 68HCS12 microcontroller. */ -#define EF_M68HC11_MACH(mach) ((mach) & EF_M68HC11_MACH_MASK) - -/* True if we can merge machines. A generic HC12 can work on any proc - but once we have specific code, merge is not possible. */ -#define EF_M68HC11_CAN_MERGE_MACH(mach1, mach2) \ - ((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \ - || (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC) \ - || (EF_M68HC11_MACH (mach2) == EF_M68HC11_GENERIC)) - -#define EF_M68HC11_MERGE_MACH(mach1, mach2) \ - (((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \ - || (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC)) ? \ - EF_M68HC11_MACH (mach2) : EF_M68HC11_MACH (mach1)) - - -/* Special values for the st_other field in the symbol table. These - are used for 68HC12 to identify far functions (must be called with - 'call' and returns with 'rtc'). */ -#define STO_M68HC12_FAR 0x80 - -/* Identify interrupt handlers. This is used by the debugger to - correctly compute the stack frame. */ -#define STO_M68HC12_INTERRUPT 0x40 - -#endif diff --git a/include/elf/m68k.h b/include/elf/m68k.h deleted file mode 100644 index f6f37cc..0000000 --- a/include/elf/m68k.h +++ /dev/null @@ -1,102 +0,0 @@ -/* MC68k ELF support for BFD. - Copyright 1998, 1999, 2000, 2002, 2005, 2006, 2007, 2009, 2010 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_M68K_H -#define _ELF_M68K_H - -#include "elf/reloc-macros.h" - -/* Relocation types. */ -START_RELOC_NUMBERS (elf_m68k_reloc_type) - RELOC_NUMBER (R_68K_NONE, 0) /* No reloc */ - RELOC_NUMBER (R_68K_32, 1) /* Direct 32 bit */ - RELOC_NUMBER (R_68K_16, 2) /* Direct 16 bit */ - RELOC_NUMBER (R_68K_8, 3) /* Direct 8 bit */ - RELOC_NUMBER (R_68K_PC32, 4) /* PC relative 32 bit */ - RELOC_NUMBER (R_68K_PC16, 5) /* PC relative 16 bit */ - RELOC_NUMBER (R_68K_PC8, 6) /* PC relative 8 bit */ - RELOC_NUMBER (R_68K_GOT32, 7) /* 32 bit PC relative GOT entry */ - RELOC_NUMBER (R_68K_GOT16, 8) /* 16 bit PC relative GOT entry */ - RELOC_NUMBER (R_68K_GOT8, 9) /* 8 bit PC relative GOT entry */ - RELOC_NUMBER (R_68K_GOT32O, 10) /* 32 bit GOT offset */ - RELOC_NUMBER (R_68K_GOT16O, 11) /* 16 bit GOT offset */ - RELOC_NUMBER (R_68K_GOT8O, 12) /* 8 bit GOT offset */ - RELOC_NUMBER (R_68K_PLT32, 13) /* 32 bit PC relative PLT address */ - RELOC_NUMBER (R_68K_PLT16, 14) /* 16 bit PC relative PLT address */ - RELOC_NUMBER (R_68K_PLT8, 15) /* 8 bit PC relative PLT address */ - RELOC_NUMBER (R_68K_PLT32O, 16) /* 32 bit PLT offset */ - RELOC_NUMBER (R_68K_PLT16O, 17) /* 16 bit PLT offset */ - RELOC_NUMBER (R_68K_PLT8O, 18) /* 8 bit PLT offset */ - RELOC_NUMBER (R_68K_COPY, 19) /* Copy symbol at runtime */ - RELOC_NUMBER (R_68K_GLOB_DAT, 20) /* Create GOT entry */ - RELOC_NUMBER (R_68K_JMP_SLOT, 21) /* Create PLT entry */ - RELOC_NUMBER (R_68K_RELATIVE, 22) /* Adjust by program base */ - /* These are GNU extensions to enable C++ vtable garbage collection. */ - RELOC_NUMBER (R_68K_GNU_VTINHERIT, 23) - RELOC_NUMBER (R_68K_GNU_VTENTRY, 24) - /* TLS static relocations. */ - RELOC_NUMBER (R_68K_TLS_GD32, 25) - RELOC_NUMBER (R_68K_TLS_GD16, 26) - RELOC_NUMBER (R_68K_TLS_GD8, 27) - RELOC_NUMBER (R_68K_TLS_LDM32, 28) - RELOC_NUMBER (R_68K_TLS_LDM16, 29) - RELOC_NUMBER (R_68K_TLS_LDM8, 30) - RELOC_NUMBER (R_68K_TLS_LDO32, 31) - RELOC_NUMBER (R_68K_TLS_LDO16, 32) - RELOC_NUMBER (R_68K_TLS_LDO8, 33) - RELOC_NUMBER (R_68K_TLS_IE32, 34) - RELOC_NUMBER (R_68K_TLS_IE16, 35) - RELOC_NUMBER (R_68K_TLS_IE8, 36) - RELOC_NUMBER (R_68K_TLS_LE32, 37) - RELOC_NUMBER (R_68K_TLS_LE16, 38) - RELOC_NUMBER (R_68K_TLS_LE8, 39) - RELOC_NUMBER (R_68K_TLS_DTPMOD32, 40) - RELOC_NUMBER (R_68K_TLS_DTPREL32, 41) - RELOC_NUMBER (R_68K_TLS_TPREL32, 42) -END_RELOC_NUMBERS (R_68K_max) - -/* We use the top 24 bits to encode information about the - architecture variant. */ -#define EF_M68K_CPU32 0x00810000 -#define EF_M68K_M68000 0x01000000 -#define EF_M68K_CFV4E 0x00008000 -#define EF_M68K_FIDO 0x02000000 -#define EF_M68K_ARCH_MASK \ - (EF_M68K_M68000 | EF_M68K_CPU32 | EF_M68K_CFV4E | EF_M68K_FIDO) - -/* We use the bottom 8 bits to encode information about the - coldfire variant. If we use any of these bits, the top 24 bits are - either 0 or EF_M68K_CFV4E. */ -#define EF_M68K_CF_ISA_MASK 0x0F /* Which ISA */ -#define EF_M68K_CF_ISA_A_NODIV 0x01 /* ISA A except for div */ -#define EF_M68K_CF_ISA_A 0x02 -#define EF_M68K_CF_ISA_A_PLUS 0x03 -#define EF_M68K_CF_ISA_B_NOUSP 0x04 /* ISA_B except for USP */ -#define EF_M68K_CF_ISA_B 0x05 -#define EF_M68K_CF_ISA_C 0x06 -#define EF_M68K_CF_ISA_C_NODIV 0x07 /* ISA C except for div */ -#define EF_M68K_CF_MAC_MASK 0x30 -#define EF_M68K_CF_MAC 0x10 /* MAC */ -#define EF_M68K_CF_EMAC 0x20 /* EMAC */ -#define EF_M68K_CF_EMAC_B 0x30 /* EMAC_B */ -#define EF_M68K_CF_FLOAT 0x40 /* Has float insns */ -#define EF_M68K_CF_MASK 0xFF - -#endif diff --git a/include/elf/mcore.h b/include/elf/mcore.h deleted file mode 100644 index 2745fee..0000000 --- a/include/elf/mcore.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Motorola MCore support for BFD. - Copyright 1995, 1999, 2000, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file holds definitions specific to the MCore ELF ABI. */ -#ifndef _ELF_MORE_H -#define _ELF_MORE_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_mcore_reloc_type) - RELOC_NUMBER (R_MCORE_NONE, 0) - RELOC_NUMBER (R_MCORE_ADDR32, 1) - RELOC_NUMBER (R_MCORE_PCRELIMM8BY4, 2) - RELOC_NUMBER (R_MCORE_PCRELIMM11BY2, 3) - RELOC_NUMBER (R_MCORE_PCRELIMM4BY2, 4) - RELOC_NUMBER (R_MCORE_PCREL32, 5) - RELOC_NUMBER (R_MCORE_PCRELJSR_IMM11BY2, 6) - RELOC_NUMBER (R_MCORE_GNU_VTINHERIT, 7) - RELOC_NUMBER (R_MCORE_GNU_VTENTRY, 8) - RELOC_NUMBER (R_MCORE_RELATIVE, 9) - RELOC_NUMBER (R_MCORE_COPY, 10) - RELOC_NUMBER (R_MCORE_GLOB_DAT, 11) - RELOC_NUMBER (R_MCORE_JUMP_SLOT, 12) -END_RELOC_NUMBERS (R_MCORE_max) - -/* Section Attributes. */ -#define SHF_MCORE_NOREAD 0x80000000 - -#endif /* _ELF_MCORE_H */ diff --git a/include/elf/mep.h b/include/elf/mep.h deleted file mode 100644 index b0e42ad..0000000 --- a/include/elf/mep.h +++ /dev/null @@ -1,95 +0,0 @@ -/* Toshiba MeP ELF support for BFD. - Copyright (C) 2001, 2004, 2005, 2007, 2009, 2010 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_MEP_H -#define _ELF_MEP_H - -/* Bits in the sh_flags field of Elf32_Shdr: */ - -#define SHF_MEP_VLIW 0x10000000 /* contains vliw code */ - -/* This bit is reserved by BFD for processor specific stuff. Name - it properly so that we can easily stay consistent elsewhere. */ -#define SEC_MEP_VLIW SEC_TIC54X_BLOCK - -#include "elf/reloc-macros.h" - -/* Note: The comments in this file are used by bfd/mep-relocs.pl to - build parts of bfd/elf32-mep.c. */ - -/* Relocations. */ -START_RELOC_NUMBERS (elf_mep_reloc_type) - - /* These two must appear first so that they are not processed by bfd/mep-relocs.pl. */ - RELOC_NUMBER (R_MEP_NONE, 0) - RELOC_NUMBER (R_RELC, 1) - - RELOC_NUMBER (R_MEP_8, 2) /* 7654 3210 U */ - RELOC_NUMBER (R_MEP_16, 3) /* fedc ba98 7654 3210 U */ - RELOC_NUMBER (R_MEP_32, 4) /* vuts rqpo nmlk jihg fedc ba98 7654 3210 U */ - - RELOC_NUMBER (R_MEP_PCREL8A2, 5) /* ---- ---- 7654 321- S PC-REL */ - RELOC_NUMBER (R_MEP_PCREL12A2, 6) /* ---- ba98 7654 321- S PC-REL */ - RELOC_NUMBER (R_MEP_PCREL17A2, 7) /* ---- ---- ---- ---- gfed cba9 8765 4321 S PC-REL */ - RELOC_NUMBER (R_MEP_PCREL24A2, 8) /* ---- -765 4321 ---- nmlk jihg fedc ba98 S PC-REL */ - RELOC_NUMBER (R_MEP_PCABS24A2, 9) /* ---- -765 4321 ---- nmlk jihg fedc ba98 U */ - - RELOC_NUMBER (R_MEP_LOW16, 10) /* ---- ---- ---- ---- fedc ba98 7654 3210 U no-overflow */ - RELOC_NUMBER (R_MEP_HI16U, 11) /* ---- ---- ---- ---- vuts rqpo nmlk jihg U no-overflow */ - RELOC_NUMBER (R_MEP_HI16S, 12) /* ---- ---- ---- ---- vuts rqpo nmlk jihg S no-overflow */ - RELOC_NUMBER (R_MEP_GPREL, 13) /* ---- ---- ---- ---- fedc ba98 7654 3210 S GP-REL*/ - RELOC_NUMBER (R_MEP_TPREL, 14) /* ---- ---- ---- ---- fedc ba98 7654 3210 S TP-REL*/ - - RELOC_NUMBER (R_MEP_TPREL7, 15) /* ---- ---- -654 3210 U TP-REL */ - RELOC_NUMBER (R_MEP_TPREL7A2, 16) /* ---- ---- -654 321- U TP-REL */ - RELOC_NUMBER (R_MEP_TPREL7A4, 17) /* ---- ---- -654 32-- U TP-REL */ - - RELOC_NUMBER (R_MEP_UIMM24, 18) /* ---- ---- 7654 3210 nmlk jihg fedc ba98 U */ - RELOC_NUMBER (R_MEP_ADDR24A4, 19) /* ---- ---- 7654 32-- nmlk jihg fedc ba98 U */ - - RELOC_NUMBER (R_MEP_GNU_VTINHERIT, 20) /* ---- ---- ---- ---- U no-overflow */ - RELOC_NUMBER (R_MEP_GNU_VTENTRY, 21) /* ---- ---- ---- ---- U no-overflow */ - -END_RELOC_NUMBERS(R_MEP_max) - -#define EF_MEP_CPU_MASK 0xff000000 /* specific cpu bits */ -#define EF_MEP_CPU_MEP 0x00000000 /* generic MEP */ -#define EF_MEP_CPU_C2 0x01000000 /* MEP c2 */ -#define EF_MEP_CPU_C3 0x02000000 /* MEP c3 */ -#define EF_MEP_CPU_C4 0x04000000 /* MEP c4 */ -/* 5..7 are reseved */ -#define EF_MEP_CPU_C5 0x08000000 /* MEP c5 */ -#define EF_MEP_CPU_H1 0x10000000 /* MEP h1 */ - -#define EF_MEP_COP_MASK 0x00ff0000 -#define EF_MEP_COP_NONE 0x00000000 -#define EF_MEP_COP_AVC 0x00010000 -#define EF_MEP_COP_AVC2 0x00020000 -#define EF_MEP_COP_FMAX 0x00030000 -/* 4..5 are reserved. */ -#define EF_MEP_COP_IVC2 0x00060000 - -#define EF_MEP_LIBRARY 0x00000100 /* Built as a library */ - -#define EF_MEP_INDEX_MASK 0x000000ff /* Configuration index */ - -#define EF_MEP_ALL_FLAGS 0xffff01ff - -#endif /* _ELF_MEP_H */ diff --git a/include/elf/metag.h b/include/elf/metag.h deleted file mode 100644 index 7ea699d..0000000 --- a/include/elf/metag.h +++ /dev/null @@ -1,91 +0,0 @@ -/* Meta ELF support for BFD. - Copyright (C) 2013 Free Software Foundation, Inc. - Contributed by Imagination Technologies Ltd. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_METAG_H -#define _ELF_METAG_H - -#include "elf/reloc-macros.h" - -/* Relocation types. */ - -START_RELOC_NUMBERS (elf_metag_reloc_type) - RELOC_NUMBER (R_METAG_HIADDR16, 0) - RELOC_NUMBER (R_METAG_LOADDR16, 1) - RELOC_NUMBER (R_METAG_ADDR32, 2) - RELOC_NUMBER (R_METAG_NONE, 3) - RELOC_NUMBER (R_METAG_RELBRANCH, 4) - RELOC_NUMBER (R_METAG_GETSETOFF, 5) - - /* Backward compatability */ - RELOC_NUMBER (R_METAG_REG32OP1, 6) - RELOC_NUMBER (R_METAG_REG32OP2, 7) - RELOC_NUMBER (R_METAG_REG32OP3, 8) - RELOC_NUMBER (R_METAG_REG16OP1, 9) - RELOC_NUMBER (R_METAG_REG16OP2, 10) - RELOC_NUMBER (R_METAG_REG16OP3, 11) - RELOC_NUMBER (R_METAG_REG32OP4, 12) - - RELOC_NUMBER (R_METAG_HIOG, 13) - RELOC_NUMBER (R_METAG_LOOG, 14) - - RELOC_NUMBER (R_METAG_REL8, 15) - RELOC_NUMBER (R_METAG_REL16, 16) - - /* GNU */ - RELOC_NUMBER (R_METAG_GNU_VTINHERIT,30) - RELOC_NUMBER (R_METAG_GNU_VTENTRY, 31) - - /* PIC relocations */ - RELOC_NUMBER (R_METAG_HI16_GOTOFF, 32) - RELOC_NUMBER (R_METAG_LO16_GOTOFF, 33) - RELOC_NUMBER (R_METAG_GETSET_GOTOFF,34) - RELOC_NUMBER (R_METAG_GETSET_GOT, 35) - RELOC_NUMBER (R_METAG_HI16_GOTPC, 36) - RELOC_NUMBER (R_METAG_LO16_GOTPC, 37) - RELOC_NUMBER (R_METAG_HI16_PLT, 38) - RELOC_NUMBER (R_METAG_LO16_PLT, 39) - RELOC_NUMBER (R_METAG_RELBRANCH_PLT,40) - RELOC_NUMBER (R_METAG_GOTOFF, 41) - RELOC_NUMBER (R_METAG_PLT, 42) - RELOC_NUMBER (R_METAG_COPY, 43) - RELOC_NUMBER (R_METAG_JMP_SLOT, 44) - RELOC_NUMBER (R_METAG_RELATIVE, 45) - RELOC_NUMBER (R_METAG_GLOB_DAT, 46) - - /* TLS relocations */ - RELOC_NUMBER (R_METAG_TLS_GD, 47) - RELOC_NUMBER (R_METAG_TLS_LDM, 48) - RELOC_NUMBER (R_METAG_TLS_LDO_HI16, 49) - RELOC_NUMBER (R_METAG_TLS_LDO_LO16, 50) - RELOC_NUMBER (R_METAG_TLS_LDO, 51) - RELOC_NUMBER (R_METAG_TLS_IE, 52) - RELOC_NUMBER (R_METAG_TLS_IENONPIC, 53) - RELOC_NUMBER (R_METAG_TLS_IENONPIC_HI16,54) - RELOC_NUMBER (R_METAG_TLS_IENONPIC_LO16,55) - RELOC_NUMBER (R_METAG_TLS_TPOFF, 56) - RELOC_NUMBER (R_METAG_TLS_DTPMOD, 57) - RELOC_NUMBER (R_METAG_TLS_DTPOFF, 58) - RELOC_NUMBER (R_METAG_TLS_LE, 59) - RELOC_NUMBER (R_METAG_TLS_LE_HI16, 60) - RELOC_NUMBER (R_METAG_TLS_LE_LO16, 61) - -END_RELOC_NUMBERS (R_METAG_MAX) - -#endif /* _ELF_METAG_H */ diff --git a/include/elf/microblaze.h b/include/elf/microblaze.h deleted file mode 100644 index c4d9821..0000000 --- a/include/elf/microblaze.h +++ /dev/null @@ -1,71 +0,0 @@ -/* Xilinx MicroBlaze support for BFD. - - Copyright 2009, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -/* This file holds definitions specific to the MICROBLAZE ELF ABI. */ - -#ifndef _ELF_MICROBLAZE_H -#define _ELF_MICROBLAZE_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_microblaze_reloc_type) - RELOC_NUMBER (R_MICROBLAZE_NONE, 0) - RELOC_NUMBER (R_MICROBLAZE_32, 1) - RELOC_NUMBER (R_MICROBLAZE_32_PCREL, 2) - RELOC_NUMBER (R_MICROBLAZE_64_PCREL, 3) - RELOC_NUMBER (R_MICROBLAZE_32_PCREL_LO, 4) - RELOC_NUMBER (R_MICROBLAZE_64, 5) - RELOC_NUMBER (R_MICROBLAZE_32_LO, 6) - RELOC_NUMBER (R_MICROBLAZE_SRO32, 7) - RELOC_NUMBER (R_MICROBLAZE_SRW32, 8) - RELOC_NUMBER (R_MICROBLAZE_64_NONE, 9) - RELOC_NUMBER (R_MICROBLAZE_32_SYM_OP_SYM, 10) - RELOC_NUMBER (R_MICROBLAZE_GNU_VTINHERIT, 11) - RELOC_NUMBER (R_MICROBLAZE_GNU_VTENTRY, 12) - RELOC_NUMBER (R_MICROBLAZE_GOTPC_64, 13) /* PC-relative GOT offset. */ - RELOC_NUMBER (R_MICROBLAZE_GOT_64, 14) /* GOT entry offset. */ - RELOC_NUMBER (R_MICROBLAZE_PLT_64, 15) /* PLT offset (PC-relative). */ - RELOC_NUMBER (R_MICROBLAZE_REL, 16) /* Adjust by program base. */ - RELOC_NUMBER (R_MICROBLAZE_JUMP_SLOT, 17) /* Create PLT entry. */ - RELOC_NUMBER (R_MICROBLAZE_GLOB_DAT, 18) /* Create GOT entry. */ - RELOC_NUMBER (R_MICROBLAZE_GOTOFF_64, 19) /* Offset relative to GOT. */ - RELOC_NUMBER (R_MICROBLAZE_GOTOFF_32, 20) /* Offset relative to GOT. */ - RELOC_NUMBER (R_MICROBLAZE_COPY, 21) /* Runtime copy. */ - RELOC_NUMBER (R_MICROBLAZE_TLS, 22) /* TLS Reloc */ - RELOC_NUMBER (R_MICROBLAZE_TLSGD, 23) /* TLS General Dynamic */ - RELOC_NUMBER (R_MICROBLAZE_TLSLD, 24) /* TLS Local Dynamic */ - RELOC_NUMBER (R_MICROBLAZE_TLSDTPMOD32, 25) /* TLS Module ID */ - RELOC_NUMBER (R_MICROBLAZE_TLSDTPREL32, 26) /* TLS Offset Within TLS Block */ - RELOC_NUMBER (R_MICROBLAZE_TLSDTPREL64, 27) /* TLS Offset Within TLS Block */ - RELOC_NUMBER (R_MICROBLAZE_TLSGOTTPREL32, 28) /* TLS Offset From Thread Pointer */ - RELOC_NUMBER (R_MICROBLAZE_TLSTPREL32, 29) /* TLS Offset From Thread Pointer */ - -END_RELOC_NUMBERS (R_MICROBLAZE_max) - -/* Global base address names. */ -#define RO_SDA_ANCHOR_NAME "_SDA2_BASE_" -#define RW_SDA_ANCHOR_NAME "_SDA_BASE_" - -/* Section Attributes. */ -#define SHF_MICROBLAZE_NOREAD 0x80000000 - -#endif /* _ELF_MICROBLAZE_H */ diff --git a/include/elf/mips.h b/include/elf/mips.h deleted file mode 100644 index 2c5a9a6..0000000 --- a/include/elf/mips.h +++ /dev/null @@ -1,1172 +0,0 @@ -/* MIPS ELF support for BFD. - Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, - 2003, 2004, 2005, 2008, 2009, 2010, 2013 - Free Software Foundation, Inc. - - By Ian Lance Taylor, Cygnus Support, , from - information in the System V Application Binary Interface, MIPS - Processor Supplement. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file holds definitions specific to the MIPS ELF ABI. Note - that most of this is not actually implemented by BFD. */ - -#ifndef _ELF_MIPS_H -#define _ELF_MIPS_H - -#include "elf/reloc-macros.h" - -/* Relocation types. */ -START_RELOC_NUMBERS (elf_mips_reloc_type) - RELOC_NUMBER (R_MIPS_NONE, 0) - RELOC_NUMBER (R_MIPS_16, 1) - RELOC_NUMBER (R_MIPS_32, 2) /* In Elf 64: alias R_MIPS_ADD */ - RELOC_NUMBER (R_MIPS_REL32, 3) /* In Elf 64: alias R_MIPS_REL */ - RELOC_NUMBER (R_MIPS_26, 4) - RELOC_NUMBER (R_MIPS_HI16, 5) - RELOC_NUMBER (R_MIPS_LO16, 6) - RELOC_NUMBER (R_MIPS_GPREL16, 7) /* In Elf 64: alias R_MIPS_GPREL */ - RELOC_NUMBER (R_MIPS_LITERAL, 8) - RELOC_NUMBER (R_MIPS_GOT16, 9) /* In Elf 64: alias R_MIPS_GOT */ - RELOC_NUMBER (R_MIPS_PC16, 10) - RELOC_NUMBER (R_MIPS_CALL16, 11) /* In Elf 64: alias R_MIPS_CALL */ - RELOC_NUMBER (R_MIPS_GPREL32, 12) - /* The remaining relocs are defined on Irix, although they are not - in the MIPS ELF ABI. */ - RELOC_NUMBER (R_MIPS_UNUSED1, 13) - RELOC_NUMBER (R_MIPS_UNUSED2, 14) - RELOC_NUMBER (R_MIPS_UNUSED3, 15) - RELOC_NUMBER (R_MIPS_SHIFT5, 16) - RELOC_NUMBER (R_MIPS_SHIFT6, 17) - RELOC_NUMBER (R_MIPS_64, 18) - RELOC_NUMBER (R_MIPS_GOT_DISP, 19) - RELOC_NUMBER (R_MIPS_GOT_PAGE, 20) - RELOC_NUMBER (R_MIPS_GOT_OFST, 21) - RELOC_NUMBER (R_MIPS_GOT_HI16, 22) - RELOC_NUMBER (R_MIPS_GOT_LO16, 23) - RELOC_NUMBER (R_MIPS_SUB, 24) - RELOC_NUMBER (R_MIPS_INSERT_A, 25) - RELOC_NUMBER (R_MIPS_INSERT_B, 26) - RELOC_NUMBER (R_MIPS_DELETE, 27) - RELOC_NUMBER (R_MIPS_HIGHER, 28) - RELOC_NUMBER (R_MIPS_HIGHEST, 29) - RELOC_NUMBER (R_MIPS_CALL_HI16, 30) - RELOC_NUMBER (R_MIPS_CALL_LO16, 31) - RELOC_NUMBER (R_MIPS_SCN_DISP, 32) - RELOC_NUMBER (R_MIPS_REL16, 33) - RELOC_NUMBER (R_MIPS_ADD_IMMEDIATE, 34) - RELOC_NUMBER (R_MIPS_PJUMP, 35) - RELOC_NUMBER (R_MIPS_RELGOT, 36) - RELOC_NUMBER (R_MIPS_JALR, 37) - /* TLS relocations. */ - RELOC_NUMBER (R_MIPS_TLS_DTPMOD32, 38) - RELOC_NUMBER (R_MIPS_TLS_DTPREL32, 39) - RELOC_NUMBER (R_MIPS_TLS_DTPMOD64, 40) - RELOC_NUMBER (R_MIPS_TLS_DTPREL64, 41) - RELOC_NUMBER (R_MIPS_TLS_GD, 42) - RELOC_NUMBER (R_MIPS_TLS_LDM, 43) - RELOC_NUMBER (R_MIPS_TLS_DTPREL_HI16, 44) - RELOC_NUMBER (R_MIPS_TLS_DTPREL_LO16, 45) - RELOC_NUMBER (R_MIPS_TLS_GOTTPREL, 46) - RELOC_NUMBER (R_MIPS_TLS_TPREL32, 47) - RELOC_NUMBER (R_MIPS_TLS_TPREL64, 48) - RELOC_NUMBER (R_MIPS_TLS_TPREL_HI16, 49) - RELOC_NUMBER (R_MIPS_TLS_TPREL_LO16, 50) - RELOC_NUMBER (R_MIPS_GLOB_DAT, 51) - FAKE_RELOC (R_MIPS_max, 52) - /* These relocs are used for the mips16. */ - FAKE_RELOC (R_MIPS16_min, 100) - RELOC_NUMBER (R_MIPS16_26, 100) - RELOC_NUMBER (R_MIPS16_GPREL, 101) - RELOC_NUMBER (R_MIPS16_GOT16, 102) - RELOC_NUMBER (R_MIPS16_CALL16, 103) - RELOC_NUMBER (R_MIPS16_HI16, 104) - RELOC_NUMBER (R_MIPS16_LO16, 105) - RELOC_NUMBER (R_MIPS16_TLS_GD, 106) - RELOC_NUMBER (R_MIPS16_TLS_LDM, 107) - RELOC_NUMBER (R_MIPS16_TLS_DTPREL_HI16, 108) - RELOC_NUMBER (R_MIPS16_TLS_DTPREL_LO16, 109) - RELOC_NUMBER (R_MIPS16_TLS_GOTTPREL, 110) - RELOC_NUMBER (R_MIPS16_TLS_TPREL_HI16, 111) - RELOC_NUMBER (R_MIPS16_TLS_TPREL_LO16, 112) - FAKE_RELOC (R_MIPS16_max, 113) - /* These relocations are specific to VxWorks. */ - RELOC_NUMBER (R_MIPS_COPY, 126) - RELOC_NUMBER (R_MIPS_JUMP_SLOT, 127) - - /* These relocations are specific to microMIPS. */ - FAKE_RELOC (R_MICROMIPS_min, 130) - RELOC_NUMBER (R_MICROMIPS_26_S1, 133) - RELOC_NUMBER (R_MICROMIPS_HI16, 134) - RELOC_NUMBER (R_MICROMIPS_LO16, 135) - RELOC_NUMBER (R_MICROMIPS_GPREL16, 136) /* In Elf 64: - alias R_MICROMIPS_GPREL */ - RELOC_NUMBER (R_MICROMIPS_LITERAL, 137) - RELOC_NUMBER (R_MICROMIPS_GOT16, 138) /* In Elf 64: - alias R_MICROMIPS_GOT */ - RELOC_NUMBER (R_MICROMIPS_PC7_S1, 139) - RELOC_NUMBER (R_MICROMIPS_PC10_S1, 140) - RELOC_NUMBER (R_MICROMIPS_PC16_S1, 141) - RELOC_NUMBER (R_MICROMIPS_CALL16, 142) /* In Elf 64: - alias R_MICROMIPS_CALL */ - RELOC_NUMBER (R_MICROMIPS_GOT_DISP, 145) - RELOC_NUMBER (R_MICROMIPS_GOT_PAGE, 146) - RELOC_NUMBER (R_MICROMIPS_GOT_OFST, 147) - RELOC_NUMBER (R_MICROMIPS_GOT_HI16, 148) - RELOC_NUMBER (R_MICROMIPS_GOT_LO16, 149) - RELOC_NUMBER (R_MICROMIPS_SUB, 150) - RELOC_NUMBER (R_MICROMIPS_HIGHER, 151) - RELOC_NUMBER (R_MICROMIPS_HIGHEST, 152) - RELOC_NUMBER (R_MICROMIPS_CALL_HI16, 153) - RELOC_NUMBER (R_MICROMIPS_CALL_LO16, 154) - RELOC_NUMBER (R_MICROMIPS_SCN_DISP, 155) - RELOC_NUMBER (R_MICROMIPS_JALR, 156) - RELOC_NUMBER (R_MICROMIPS_HI0_LO16, 157) - /* TLS relocations. */ - RELOC_NUMBER (R_MICROMIPS_TLS_GD, 162) - RELOC_NUMBER (R_MICROMIPS_TLS_LDM, 163) - RELOC_NUMBER (R_MICROMIPS_TLS_DTPREL_HI16, 164) - RELOC_NUMBER (R_MICROMIPS_TLS_DTPREL_LO16, 165) - RELOC_NUMBER (R_MICROMIPS_TLS_GOTTPREL, 166) - RELOC_NUMBER (R_MICROMIPS_TLS_TPREL_HI16, 169) - RELOC_NUMBER (R_MICROMIPS_TLS_TPREL_LO16, 170) - /* microMIPS GP- and PC-relative relocations. */ - RELOC_NUMBER (R_MICROMIPS_GPREL7_S2, 172) - RELOC_NUMBER (R_MICROMIPS_PC23_S2, 173) - FAKE_RELOC (R_MICROMIPS_max, 174) - - /* This was a GNU extension used by embedded-PIC. It was co-opted by - mips-linux for exception-handling data. GCC stopped using it in - May, 2004, then started using it again for compact unwind tables. */ - RELOC_NUMBER (R_MIPS_PC32, 248) - RELOC_NUMBER (R_MIPS_EH, 249) - /* FIXME: this relocation is used internally by gas. */ - RELOC_NUMBER (R_MIPS_GNU_REL16_S2, 250) - /* These are GNU extensions to enable C++ vtable garbage collection. */ - RELOC_NUMBER (R_MIPS_GNU_VTINHERIT, 253) - RELOC_NUMBER (R_MIPS_GNU_VTENTRY, 254) -END_RELOC_NUMBERS (R_MIPS_maxext) - -/* Processor specific flags for the ELF header e_flags field. */ - -/* At least one .noreorder directive appears in the source. */ -#define EF_MIPS_NOREORDER 0x00000001 - -/* File contains position independent code. */ -#define EF_MIPS_PIC 0x00000002 - -/* Code in file uses the standard calling sequence for calling - position independent code. */ -#define EF_MIPS_CPIC 0x00000004 - -/* ??? Unknown flag, set in IRIX 6's BSDdup2.o in libbsd.a. */ -#define EF_MIPS_XGOT 0x00000008 - -/* Code in file uses UCODE (obsolete) */ -#define EF_MIPS_UCODE 0x00000010 - -/* Code in file uses new ABI (-n32 on Irix 6). */ -#define EF_MIPS_ABI2 0x00000020 - -/* Process the .MIPS.options section first by ld */ -#define EF_MIPS_OPTIONS_FIRST 0x00000080 - -/* Indicates code compiled for a 64-bit machine in 32-bit mode - (regs are 32-bits wide). */ -#define EF_MIPS_32BITMODE 0x00000100 - -/* 32-bit machine but FP registers are 64 bit (-mfp64). */ -#define EF_MIPS_FP64 0x00000200 - -/* Code in file uses the IEEE 754-2008 NaN encoding convention. */ -#define EF_MIPS_NAN2008 0x00000400 - -/* Architectural Extensions used by this file */ -#define EF_MIPS_ARCH_ASE 0x0f000000 - -/* Use MDMX multimedia extensions */ -#define EF_MIPS_ARCH_ASE_MDMX 0x08000000 - -/* Use MIPS-16 ISA extensions */ -#define EF_MIPS_ARCH_ASE_M16 0x04000000 - -/* Use MICROMIPS ISA extensions. */ -#define EF_MIPS_ARCH_ASE_MICROMIPS 0x02000000 - -/* Four bit MIPS architecture field. */ -#define EF_MIPS_ARCH 0xf0000000 - -/* -mips1 code. */ -#define E_MIPS_ARCH_1 0x00000000 - -/* -mips2 code. */ -#define E_MIPS_ARCH_2 0x10000000 - -/* -mips3 code. */ -#define E_MIPS_ARCH_3 0x20000000 - -/* -mips4 code. */ -#define E_MIPS_ARCH_4 0x30000000 - -/* -mips5 code. */ -#define E_MIPS_ARCH_5 0x40000000 - -/* -mips32 code. */ -#define E_MIPS_ARCH_32 0x50000000 - -/* -mips64 code. */ -#define E_MIPS_ARCH_64 0x60000000 - -/* -mips32r2 code. */ -#define E_MIPS_ARCH_32R2 0x70000000 - -/* -mips64r2 code. */ -#define E_MIPS_ARCH_64R2 0x80000000 - -/* The ABI of the file. Also see EF_MIPS_ABI2 above. */ -#define EF_MIPS_ABI 0x0000F000 - -/* The original o32 abi. */ -#define E_MIPS_ABI_O32 0x00001000 - -/* O32 extended to work on 64 bit architectures */ -#define E_MIPS_ABI_O64 0x00002000 - -/* EABI in 32 bit mode */ -#define E_MIPS_ABI_EABI32 0x00003000 - -/* EABI in 64 bit mode */ -#define E_MIPS_ABI_EABI64 0x00004000 - - -/* Machine variant if we know it. This field was invented at Cygnus, - but it is hoped that other vendors will adopt it. If some standard - is developed, this code should be changed to follow it. */ - -#define EF_MIPS_MACH 0x00FF0000 - -/* Cygnus is choosing values between 80 and 9F; - 00 - 7F should be left for a future standard; - the rest are open. */ - -#define E_MIPS_MACH_3900 0x00810000 -#define E_MIPS_MACH_4010 0x00820000 -#define E_MIPS_MACH_4100 0x00830000 -#define E_MIPS_MACH_4650 0x00850000 -#define E_MIPS_MACH_4120 0x00870000 -#define E_MIPS_MACH_4111 0x00880000 -#define E_MIPS_MACH_SB1 0x008a0000 -#define E_MIPS_MACH_OCTEON 0x008b0000 -#define E_MIPS_MACH_XLR 0x008c0000 -#define E_MIPS_MACH_OCTEON2 0x008d0000 -#define E_MIPS_MACH_5400 0x00910000 -#define E_MIPS_MACH_5900 0x00920000 -#define E_MIPS_MACH_5500 0x00980000 -#define E_MIPS_MACH_9000 0x00990000 -#define E_MIPS_MACH_LS2E 0x00A00000 -#define E_MIPS_MACH_LS2F 0x00A10000 -#define E_MIPS_MACH_LS3A 0x00A20000 - -/* Processor specific section indices. These sections do not actually - exist. Symbols with a st_shndx field corresponding to one of these - values have a special meaning. */ - -/* Defined and allocated common symbol. Value is virtual address. If - relocated, alignment must be preserved. */ -#define SHN_MIPS_ACOMMON SHN_LORESERVE - -/* Defined and allocated text symbol. Value is virtual address. - Occur in the dynamic symbol table of Alpha OSF/1 and Irix 5 executables. */ -#define SHN_MIPS_TEXT (SHN_LORESERVE + 1) - -/* Defined and allocated data symbol. Value is virtual address. - Occur in the dynamic symbol table of Alpha OSF/1 and Irix 5 executables. */ -#define SHN_MIPS_DATA (SHN_LORESERVE + 2) - -/* Small common symbol. */ -#define SHN_MIPS_SCOMMON (SHN_LORESERVE + 3) - -/* Small undefined symbol. */ -#define SHN_MIPS_SUNDEFINED (SHN_LORESERVE + 4) - -/* Processor specific section types. */ - -/* Section contains the set of dynamic shared objects used when - statically linking. */ -#define SHT_MIPS_LIBLIST 0x70000000 - -/* I'm not sure what this is, but it's used on Irix 5. */ -#define SHT_MIPS_MSYM 0x70000001 - -/* Section contains list of symbols whose definitions conflict with - symbols defined in shared objects. */ -#define SHT_MIPS_CONFLICT 0x70000002 - -/* Section contains the global pointer table. */ -#define SHT_MIPS_GPTAB 0x70000003 - -/* Section contains microcode information. The exact format is - unspecified. */ -#define SHT_MIPS_UCODE 0x70000004 - -/* Section contains some sort of debugging information. The exact - format is unspecified. It's probably ECOFF symbols. */ -#define SHT_MIPS_DEBUG 0x70000005 - -/* Section contains register usage information. */ -#define SHT_MIPS_REGINFO 0x70000006 - -/* ??? */ -#define SHT_MIPS_PACKAGE 0x70000007 - -/* ??? */ -#define SHT_MIPS_PACKSYM 0x70000008 - -/* ??? */ -#define SHT_MIPS_RELD 0x70000009 - -/* Section contains interface information. */ -#define SHT_MIPS_IFACE 0x7000000b - -/* Section contains description of contents of another section. */ -#define SHT_MIPS_CONTENT 0x7000000c - -/* Section contains miscellaneous options. */ -#define SHT_MIPS_OPTIONS 0x7000000d - -/* ??? */ -#define SHT_MIPS_SHDR 0x70000010 - -/* ??? */ -#define SHT_MIPS_FDESC 0x70000011 - -/* ??? */ -#define SHT_MIPS_EXTSYM 0x70000012 - -/* ??? */ -#define SHT_MIPS_DENSE 0x70000013 - -/* ??? */ -#define SHT_MIPS_PDESC 0x70000014 - -/* ??? */ -#define SHT_MIPS_LOCSYM 0x70000015 - -/* ??? */ -#define SHT_MIPS_AUXSYM 0x70000016 - -/* ??? */ -#define SHT_MIPS_OPTSYM 0x70000017 - -/* ??? */ -#define SHT_MIPS_LOCSTR 0x70000018 - -/* ??? */ -#define SHT_MIPS_LINE 0x70000019 - -/* ??? */ -#define SHT_MIPS_RFDESC 0x7000001a - -/* Delta C++: symbol table */ -#define SHT_MIPS_DELTASYM 0x7000001b - -/* Delta C++: instance table */ -#define SHT_MIPS_DELTAINST 0x7000001c - -/* Delta C++: class table */ -#define SHT_MIPS_DELTACLASS 0x7000001d - -/* DWARF debugging section. */ -#define SHT_MIPS_DWARF 0x7000001e - -/* Delta C++: declarations */ -#define SHT_MIPS_DELTADECL 0x7000001f - -/* List of libraries the binary depends on. Includes a time stamp, version - number. */ -#define SHT_MIPS_SYMBOL_LIB 0x70000020 - -/* Events section. */ -#define SHT_MIPS_EVENTS 0x70000021 - -/* ??? */ -#define SHT_MIPS_TRANSLATE 0x70000022 - -/* Special pixie sections */ -#define SHT_MIPS_PIXIE 0x70000023 - -/* Address translation table (for debug info) */ -#define SHT_MIPS_XLATE 0x70000024 - -/* SGI internal address translation table (for debug info) */ -#define SHT_MIPS_XLATE_DEBUG 0x70000025 - -/* Intermediate code */ -#define SHT_MIPS_WHIRL 0x70000026 - -/* C++ exception handling region info */ -#define SHT_MIPS_EH_REGION 0x70000027 - -/* Obsolete address translation table (for debug info) */ -#define SHT_MIPS_XLATE_OLD 0x70000028 - -/* Runtime procedure descriptor table exception information (ucode) ??? */ -#define SHT_MIPS_PDR_EXCEPTION 0x70000029 - - -/* A section of type SHT_MIPS_LIBLIST contains an array of the - following structure. The sh_link field is the section index of the - string table. The sh_info field is the number of entries in the - section. */ -typedef struct -{ - /* String table index for name of shared object. */ - unsigned long l_name; - /* Time stamp. */ - unsigned long l_time_stamp; - /* Checksum of symbol names and common sizes. */ - unsigned long l_checksum; - /* String table index for version. */ - unsigned long l_version; - /* Flags. */ - unsigned long l_flags; -} Elf32_Lib; - -/* The external version of Elf32_Lib. */ -typedef struct -{ - unsigned char l_name[4]; - unsigned char l_time_stamp[4]; - unsigned char l_checksum[4]; - unsigned char l_version[4]; - unsigned char l_flags[4]; -} Elf32_External_Lib; - -/* The l_flags field of an Elf32_Lib structure may contain the - following flags. */ - -/* Require an exact match at runtime. */ -#define LL_EXACT_MATCH 0x00000001 - -/* Ignore version incompatibilities at runtime. */ -#define LL_IGNORE_INT_VER 0x00000002 - -/* Require matching minor version number. */ -#define LL_REQUIRE_MINOR 0x00000004 - -/* ??? */ -#define LL_EXPORTS 0x00000008 - -/* Delay loading of this library until really needed. */ -#define LL_DELAY_LOAD 0x00000010 - -/* ??? Delta C++ stuff ??? */ -#define LL_DELTA 0x00000020 - - -/* A section of type SHT_MIPS_CONFLICT is an array of indices into the - .dynsym section. Each element has the following type. */ -typedef unsigned long Elf32_Conflict; -typedef unsigned char Elf32_External_Conflict[4]; - -typedef unsigned long Elf64_Conflict; -typedef unsigned char Elf64_External_Conflict[8]; - -/* A section of type SHT_MIPS_GPTAB contains information about how - much GP space would be required for different -G arguments. This - information is only used so that the linker can provide informative - suggestions as to the best -G value to use. The sh_info field is - the index of the section for which this information applies. The - contents of the section are an array of the following union. The - first element uses the gt_header field. The remaining elements use - the gt_entry field. */ -typedef union -{ - struct - { - /* -G value actually used for this object file. */ - unsigned long gt_current_g_value; - /* Unused. */ - unsigned long gt_unused; - } gt_header; - struct - { - /* If this -G argument has been used... */ - unsigned long gt_g_value; - /* ...this many GP section bytes would be required. */ - unsigned long gt_bytes; - } gt_entry; -} Elf32_gptab; - -/* The external version of Elf32_gptab. */ - -typedef union -{ - struct - { - unsigned char gt_current_g_value[4]; - unsigned char gt_unused[4]; - } gt_header; - struct - { - unsigned char gt_g_value[4]; - unsigned char gt_bytes[4]; - } gt_entry; -} Elf32_External_gptab; - -/* A section of type SHT_MIPS_REGINFO contains the following - structure. */ -typedef struct -{ - /* Mask of general purpose registers used. */ - unsigned long ri_gprmask; - /* Mask of co-processor registers used. */ - unsigned long ri_cprmask[4]; - /* GP register value for this object file. */ - long ri_gp_value; -} Elf32_RegInfo; - -/* The external version of the Elf_RegInfo structure. */ -typedef struct -{ - unsigned char ri_gprmask[4]; - unsigned char ri_cprmask[4][4]; - unsigned char ri_gp_value[4]; -} Elf32_External_RegInfo; - -/* MIPS ELF .reginfo swapping routines. */ -extern void bfd_mips_elf32_swap_reginfo_in - (bfd *, const Elf32_External_RegInfo *, Elf32_RegInfo *); -extern void bfd_mips_elf32_swap_reginfo_out - (bfd *, const Elf32_RegInfo *, Elf32_External_RegInfo *); - -/* Processor specific section flags. */ - -/* This section must be in the global data area. */ -#define SHF_MIPS_GPREL 0x10000000 - -/* This section should be merged. */ -#define SHF_MIPS_MERGE 0x20000000 - -/* This section contains address data of size implied by section - element size. */ -#define SHF_MIPS_ADDR 0x40000000 - -/* This section contains string data. */ -#define SHF_MIPS_STRING 0x80000000 - -/* This section may not be stripped. */ -#define SHF_MIPS_NOSTRIP 0x08000000 - -/* This section is local to threads. */ -#define SHF_MIPS_LOCAL 0x04000000 - -/* Linker should generate implicit weak names for this section. */ -#define SHF_MIPS_NAMES 0x02000000 - -/* Section contais text/data which may be replicated in other sections. - Linker should retain only one copy. */ -#define SHF_MIPS_NODUPES 0x01000000 - -/* Processor specific program header types. */ - -/* Register usage information. Identifies one .reginfo section. */ -#define PT_MIPS_REGINFO 0x70000000 - -/* Runtime procedure table. */ -#define PT_MIPS_RTPROC 0x70000001 - -/* .MIPS.options section. */ -#define PT_MIPS_OPTIONS 0x70000002 - -/* Processor specific dynamic array tags. */ - -/* 32 bit version number for runtime linker interface. */ -#define DT_MIPS_RLD_VERSION 0x70000001 - -/* Time stamp. */ -#define DT_MIPS_TIME_STAMP 0x70000002 - -/* Checksum of external strings and common sizes. */ -#define DT_MIPS_ICHECKSUM 0x70000003 - -/* Index of version string in string table. */ -#define DT_MIPS_IVERSION 0x70000004 - -/* 32 bits of flags. */ -#define DT_MIPS_FLAGS 0x70000005 - -/* Base address of the segment. */ -#define DT_MIPS_BASE_ADDRESS 0x70000006 - -/* ??? */ -#define DT_MIPS_MSYM 0x70000007 - -/* Address of .conflict section. */ -#define DT_MIPS_CONFLICT 0x70000008 - -/* Address of .liblist section. */ -#define DT_MIPS_LIBLIST 0x70000009 - -/* Number of local global offset table entries. */ -#define DT_MIPS_LOCAL_GOTNO 0x7000000a - -/* Number of entries in the .conflict section. */ -#define DT_MIPS_CONFLICTNO 0x7000000b - -/* Number of entries in the .liblist section. */ -#define DT_MIPS_LIBLISTNO 0x70000010 - -/* Number of entries in the .dynsym section. */ -#define DT_MIPS_SYMTABNO 0x70000011 - -/* Index of first external dynamic symbol not referenced locally. */ -#define DT_MIPS_UNREFEXTNO 0x70000012 - -/* Index of first dynamic symbol in global offset table. */ -#define DT_MIPS_GOTSYM 0x70000013 - -/* Number of page table entries in global offset table. */ -#define DT_MIPS_HIPAGENO 0x70000014 - -/* Address of run time loader map, used for debugging. */ -#define DT_MIPS_RLD_MAP 0x70000016 - -/* Delta C++ class definition. */ -#define DT_MIPS_DELTA_CLASS 0x70000017 - -/* Number of entries in DT_MIPS_DELTA_CLASS. */ -#define DT_MIPS_DELTA_CLASS_NO 0x70000018 - -/* Delta C++ class instances. */ -#define DT_MIPS_DELTA_INSTANCE 0x70000019 - -/* Number of entries in DT_MIPS_DELTA_INSTANCE. */ -#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a - -/* Delta relocations. */ -#define DT_MIPS_DELTA_RELOC 0x7000001b - -/* Number of entries in DT_MIPS_DELTA_RELOC. */ -#define DT_MIPS_DELTA_RELOC_NO 0x7000001c - -/* Delta symbols that Delta relocations refer to. */ -#define DT_MIPS_DELTA_SYM 0x7000001d - -/* Number of entries in DT_MIPS_DELTA_SYM. */ -#define DT_MIPS_DELTA_SYM_NO 0x7000001e - -/* Delta symbols that hold class declarations. */ -#define DT_MIPS_DELTA_CLASSSYM 0x70000020 - -/* Number of entries in DT_MIPS_DELTA_CLASSSYM. */ -#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 - -/* Flags indicating information about C++ flavor. */ -#define DT_MIPS_CXX_FLAGS 0x70000022 - -/* Pixie information (???). */ -#define DT_MIPS_PIXIE_INIT 0x70000023 - -/* Address of .MIPS.symlib */ -#define DT_MIPS_SYMBOL_LIB 0x70000024 - -/* The GOT index of the first PTE for a segment */ -#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 - -/* The GOT index of the first PTE for a local symbol */ -#define DT_MIPS_LOCAL_GOTIDX 0x70000026 - -/* The GOT index of the first PTE for a hidden symbol */ -#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 - -/* The GOT index of the first PTE for a protected symbol */ -#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 - -/* Address of `.MIPS.options'. */ -#define DT_MIPS_OPTIONS 0x70000029 - -/* Address of `.interface'. */ -#define DT_MIPS_INTERFACE 0x7000002a - -/* ??? */ -#define DT_MIPS_DYNSTR_ALIGN 0x7000002b - -/* Size of the .interface section. */ -#define DT_MIPS_INTERFACE_SIZE 0x7000002c - -/* Size of rld_text_resolve function stored in the GOT. */ -#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d - -/* Default suffix of DSO to be added by rld on dlopen() calls. */ -#define DT_MIPS_PERF_SUFFIX 0x7000002e - -/* Size of compact relocation section (O32). */ -#define DT_MIPS_COMPACT_SIZE 0x7000002f - -/* GP value for auxiliary GOTs. */ -#define DT_MIPS_GP_VALUE 0x70000030 - -/* Address of auxiliary .dynamic. */ -#define DT_MIPS_AUX_DYNAMIC 0x70000031 - -/* Address of the base of the PLTGOT. */ -#define DT_MIPS_PLTGOT 0x70000032 - -/* Points to the base of a writable PLT. */ -#define DT_MIPS_RWPLT 0x70000034 - -/* Flags which may appear in a DT_MIPS_FLAGS entry. */ - -/* No flags. */ -#define RHF_NONE 0x00000000 - -/* Uses shortcut pointers. */ -#define RHF_QUICKSTART 0x00000001 - -/* Hash size is not a power of two. */ -#define RHF_NOTPOT 0x00000002 - -/* Ignore LD_LIBRARY_PATH. */ -#define RHS_NO_LIBRARY_REPLACEMENT 0x00000004 - -/* DSO address may not be relocated. */ -#define RHF_NO_MOVE 0x00000008 - -/* SGI specific features. */ -#define RHF_SGI_ONLY 0x00000010 - -/* Guarantee that .init will finish executing before any non-init - code in DSO is called. */ -#define RHF_GUARANTEE_INIT 0x00000020 - -/* Contains Delta C++ code. */ -#define RHF_DELTA_C_PLUS_PLUS 0x00000040 - -/* Guarantee that .init will start executing before any non-init - code in DSO is called. */ -#define RHF_GUARANTEE_START_INIT 0x00000080 - -/* Generated by pixie. */ -#define RHF_PIXIE 0x00000100 - -/* Delay-load DSO by default. */ -#define RHF_DEFAULT_DELAY_LOAD 0x00000200 - -/* Object may be requickstarted */ -#define RHF_REQUICKSTART 0x00000400 - -/* Object has been requickstarted */ -#define RHF_REQUICKSTARTED 0x00000800 - -/* Generated by cord. */ -#define RHF_CORD 0x00001000 - -/* Object contains no unresolved undef symbols. */ -#define RHF_NO_UNRES_UNDEF 0x00002000 - -/* Symbol table is in a safe order. */ -#define RHF_RLD_ORDER_SAFE 0x00004000 - -/* Special values for the st_other field in the symbol table. These - are used in an Irix 5 dynamic symbol table. */ - -#define STO_DEFAULT STV_DEFAULT -#define STO_INTERNAL STV_INTERNAL -#define STO_HIDDEN STV_HIDDEN -#define STO_PROTECTED STV_PROTECTED - -/* Two topmost bits denote the MIPS ISA for .text symbols: - + 00 -- standard MIPS code, - + 10 -- microMIPS code, - + 11 -- MIPS16 code; requires the following two bits to be set too. - Note that one of the MIPS16 bits overlaps with STO_MIPS_PIC. See below - for details. */ -#define STO_MIPS_ISA (3 << 6) - -/* The mask spanning the rest of MIPS psABI flags. At most one is expected - to be set except for STO_MIPS16. */ -#define STO_MIPS_FLAGS (~(STO_MIPS_ISA | ELF_ST_VISIBILITY (-1))) - -/* The MIPS psABI was updated in 2008 with support for PLTs and copy - relocs. There are therefore two types of nonzero SHN_UNDEF functions: - PLT entries and traditional MIPS lazy binding stubs. We mark the former - with STO_MIPS_PLT to distinguish them from the latter. */ -#define STO_MIPS_PLT 0x8 -#define ELF_ST_IS_MIPS_PLT(other) \ - ((ELF_ST_IS_MIPS16 (other) \ - ? ((other) & (~STO_MIPS16 & STO_MIPS_FLAGS)) \ - : ((other) & STO_MIPS_FLAGS)) == STO_MIPS_PLT) -#define ELF_ST_SET_MIPS_PLT(other) \ - ((ELF_ST_IS_MIPS16 (other) \ - ? ((other) & (STO_MIPS16 | ~STO_MIPS_FLAGS)) \ - : ((other) & ~STO_MIPS_FLAGS)) | STO_MIPS_PLT) - -/* This value is used to mark PIC functions in an object that mixes - PIC and non-PIC. Note that this bit overlaps with STO_MIPS16, - although MIPS16 symbols are never considered to be MIPS_PIC. */ -#define STO_MIPS_PIC 0x20 -#define ELF_ST_IS_MIPS_PIC(other) (((other) & STO_MIPS_FLAGS) == STO_MIPS_PIC) -#define ELF_ST_SET_MIPS_PIC(other) \ - ((ELF_ST_IS_MIPS16 (other) \ - ? ((other) & ~(STO_MIPS16 | STO_MIPS_FLAGS)) \ - : ((other) & ~STO_MIPS_FLAGS)) | STO_MIPS_PIC) - -/* This value is used for a mips16 .text symbol. */ -#define STO_MIPS16 0xf0 -#define ELF_ST_IS_MIPS16(other) (((other) & STO_MIPS16) == STO_MIPS16) -#define ELF_ST_SET_MIPS16(other) ((other) | STO_MIPS16) - -/* This value is used for a microMIPS .text symbol. To distinguish from - STO_MIPS16, we set top two bits to be 10 to denote STO_MICROMIPS. The - mask is STO_MIPS_ISA. */ -#define STO_MICROMIPS (2 << 6) -#define ELF_ST_IS_MICROMIPS(other) (((other) & STO_MIPS_ISA) == STO_MICROMIPS) -#define ELF_ST_SET_MICROMIPS(other) (((other) & ~STO_MIPS_ISA) | STO_MICROMIPS) - -/* Whether code compression (either of the MIPS16 or the microMIPS ASEs) - has been indicated for a .text symbol. */ -#define ELF_ST_IS_COMPRESSED(other) \ - (ELF_ST_IS_MIPS16 (other) || ELF_ST_IS_MICROMIPS (other)) - -/* This bit is used on Irix to indicate a symbol whose definition - is optional - if, at final link time, it cannot be found, no - error message should be produced. */ -#define STO_OPTIONAL (1 << 2) -/* A macro to examine the STO_OPTIONAL bit. */ -#define ELF_MIPS_IS_OPTIONAL(other) ((other) & STO_OPTIONAL) - -/* The 64-bit MIPS ELF ABI uses an unusual reloc format. Each - relocation entry specifies up to three actual relocations, all at - the same address. The first relocation which required a symbol - uses the symbol in the r_sym field. The second relocation which - requires a symbol uses the symbol in the r_ssym field. If all - three relocations require a symbol, the third one uses a zero - value. */ - -/* An entry in a 64 bit SHT_REL section. */ - -typedef struct -{ - /* Address of relocation. */ - unsigned char r_offset[8]; - /* Symbol index. */ - unsigned char r_sym[4]; - /* Special symbol. */ - unsigned char r_ssym[1]; - /* Third relocation. */ - unsigned char r_type3[1]; - /* Second relocation. */ - unsigned char r_type2[1]; - /* First relocation. */ - unsigned char r_type[1]; -} Elf64_Mips_External_Rel; - -typedef struct -{ - /* Address of relocation. */ - bfd_vma r_offset; - /* Symbol index. */ - unsigned long r_sym; - /* Special symbol. */ - unsigned char r_ssym; - /* Third relocation. */ - unsigned char r_type3; - /* Second relocation. */ - unsigned char r_type2; - /* First relocation. */ - unsigned char r_type; -} Elf64_Mips_Internal_Rel; - -/* An entry in a 64 bit SHT_RELA section. */ - -typedef struct -{ - /* Address of relocation. */ - unsigned char r_offset[8]; - /* Symbol index. */ - unsigned char r_sym[4]; - /* Special symbol. */ - unsigned char r_ssym[1]; - /* Third relocation. */ - unsigned char r_type3[1]; - /* Second relocation. */ - unsigned char r_type2[1]; - /* First relocation. */ - unsigned char r_type[1]; - /* Addend. */ - unsigned char r_addend[8]; -} Elf64_Mips_External_Rela; - -typedef struct -{ - /* Address of relocation. */ - bfd_vma r_offset; - /* Symbol index. */ - unsigned long r_sym; - /* Special symbol. */ - unsigned char r_ssym; - /* Third relocation. */ - unsigned char r_type3; - /* Second relocation. */ - unsigned char r_type2; - /* First relocation. */ - unsigned char r_type; - /* Addend. */ - bfd_signed_vma r_addend; -} Elf64_Mips_Internal_Rela; - -/* MIPS ELF 64 relocation info access macros. */ -#define ELF64_MIPS_R_SSYM(i) (((i) >> 24) & 0xff) -#define ELF64_MIPS_R_TYPE3(i) (((i) >> 16) & 0xff) -#define ELF64_MIPS_R_TYPE2(i) (((i) >> 8) & 0xff) -#define ELF64_MIPS_R_TYPE(i) ((i) & 0xff) - -/* Values found in the r_ssym field of a relocation entry. */ - -/* No relocation. */ -#define RSS_UNDEF 0 - -/* Value of GP. */ -#define RSS_GP 1 - -/* Value of GP in object being relocated. */ -#define RSS_GP0 2 - -/* Address of location being relocated. */ -#define RSS_LOC 3 - -/* A SHT_MIPS_OPTIONS section contains a series of options, each of - which starts with this header. */ - -typedef struct -{ - /* Type of option. */ - unsigned char kind[1]; - /* Size of option descriptor, including header. */ - unsigned char size[1]; - /* Section index of affected section, or 0 for global option. */ - unsigned char section[2]; - /* Information specific to this kind of option. */ - unsigned char info[4]; -} Elf_External_Options; - -typedef struct -{ - /* Type of option. */ - unsigned char kind; - /* Size of option descriptor, including header. */ - unsigned char size; - /* Section index of affected section, or 0 for global option. */ - unsigned short section; - /* Information specific to this kind of option. */ - unsigned long info; -} Elf_Internal_Options; - -/* MIPS ELF option header swapping routines. */ -extern void bfd_mips_elf_swap_options_in - (bfd *, const Elf_External_Options *, Elf_Internal_Options *); -extern void bfd_mips_elf_swap_options_out - (bfd *, const Elf_Internal_Options *, Elf_External_Options *); - -/* Values which may appear in the kind field of an Elf_Options - structure. */ - -/* Undefined. */ -#define ODK_NULL 0 - -/* Register usage and GP value. */ -#define ODK_REGINFO 1 - -/* Exception processing information. */ -#define ODK_EXCEPTIONS 2 - -/* Section padding information. */ -#define ODK_PAD 3 - -/* Hardware workarounds performed. */ -#define ODK_HWPATCH 4 - -/* Fill value used by the linker. */ -#define ODK_FILL 5 - -/* Reserved space for desktop tools. */ -#define ODK_TAGS 6 - -/* Hardware workarounds, AND bits when merging. */ -#define ODK_HWAND 7 - -/* Hardware workarounds, OR bits when merging. */ -#define ODK_HWOR 8 - -/* GP group to use for text/data sections. */ -#define ODK_GP_GROUP 9 - -/* ID information. */ -#define ODK_IDENT 10 - -/* In the 32 bit ABI, an ODK_REGINFO option is just a Elf32_RegInfo - structure. In the 64 bit ABI, it is the following structure. The - info field of the options header is not used. */ - -typedef struct -{ - /* Mask of general purpose registers used. */ - unsigned char ri_gprmask[4]; - /* Padding. */ - unsigned char ri_pad[4]; - /* Mask of co-processor registers used. */ - unsigned char ri_cprmask[4][4]; - /* GP register value for this object file. */ - unsigned char ri_gp_value[8]; -} Elf64_External_RegInfo; - -typedef struct -{ - /* Mask of general purpose registers used. */ - unsigned long ri_gprmask; - /* Padding. */ - unsigned long ri_pad; - /* Mask of co-processor registers used. */ - unsigned long ri_cprmask[4]; - /* GP register value for this object file. */ - bfd_vma ri_gp_value; -} Elf64_Internal_RegInfo; - -typedef struct -{ - /* The hash value computed from the name of the corresponding - dynamic symbol. */ - unsigned char ms_hash_value[4]; - /* Contains both the dynamic relocation index and the symbol flags - field. The macros ELF32_MS_REL_INDEX and ELF32_MS_FLAGS are used - to access the individual values. The dynamic relocation index - identifies the first entry in the .rel.dyn section that - references the dynamic symbol corresponding to this msym entry. - If the index is 0, no dynamic relocations are associated with the - symbol. The symbol flags field is reserved for future use. */ - unsigned char ms_info[4]; -} Elf32_External_Msym; - -typedef struct -{ - /* The hash value computed from the name of the corresponding - dynamic symbol. */ - unsigned long ms_hash_value; - /* Contains both the dynamic relocation index and the symbol flags - field. The macros ELF32_MS_REL_INDEX and ELF32_MS_FLAGS are used - to access the individual values. The dynamic relocation index - identifies the first entry in the .rel.dyn section that - references the dynamic symbol corresponding to this msym entry. - If the index is 0, no dynamic relocations are associated with the - symbol. The symbol flags field is reserved for future use. */ - unsigned long ms_info; -} Elf32_Internal_Msym; - -#define ELF32_MS_REL_INDEX(i) ((i) >> 8) -#define ELF32_MS_FLAGS(i) (i) & 0xff) -#define ELF32_MS_INFO(r, f) (((r) << 8) + ((f) & 0xff)) - -/* MIPS ELF reginfo swapping routines. */ -extern void bfd_mips_elf64_swap_reginfo_in - (bfd *, const Elf64_External_RegInfo *, Elf64_Internal_RegInfo *); -extern void bfd_mips_elf64_swap_reginfo_out - (bfd *, const Elf64_Internal_RegInfo *, Elf64_External_RegInfo *); - -/* Masks for the info work of an ODK_EXCEPTIONS descriptor. */ -#define OEX_FPU_MIN 0x1f /* FPEs which must be enabled. */ -#define OEX_FPU_MAX 0x1f00 /* FPEs which may be enabled. */ -#define OEX_PAGE0 0x10000 /* Page zero must be mapped. */ -#define OEX_SMM 0x20000 /* Force sequential memory mode. */ -#define OEX_FPDBUG 0x40000 /* Force precise floating-point - exceptions (debug mode). */ -#define OEX_DISMISS 0x80000 /* Dismiss invalid address faults. */ - -/* Masks of the FP exceptions for OEX_FPU_MIN and OEX_FPU_MAX. */ -#define OEX_FPU_INVAL 0x10 /* Invalid operation exception. */ -#define OEX_FPU_DIV0 0x08 /* Division by zero exception. */ -#define OEX_FPU_OFLO 0x04 /* Overflow exception. */ -#define OEX_FPU_UFLO 0x02 /* Underflow exception. */ -#define OEX_FPU_INEX 0x01 /* Inexact exception. */ - -/* Masks for the info word of an ODK_PAD descriptor. */ -#define OPAD_PREFIX 0x01 -#define OPAD_POSTFIX 0x02 -#define OPAD_SYMBOL 0x04 - -/* Masks for the info word of an ODK_HWPATCH descriptor. */ -#define OHW_R4KEOP 0x00000001 /* R4000 end-of-page patch. */ -#define OHW_R8KPFETCH 0x00000002 /* May need R8000 prefetch patch. */ -#define OHW_R5KEOP 0x00000004 /* R5000 end-of-page patch. */ -#define OHW_R5KCVTL 0x00000008 /* R5000 cvt.[ds].l bug - (clean == 1). */ -#define OHW_R10KLDL 0x00000010 /* Needs R10K misaligned - load patch. */ - -/* Masks for the info word of an ODK_IDENT/ODK_GP_GROUP descriptor. */ -#define OGP_GROUP 0x0000ffff /* GP group number. */ -#define OGP_SELF 0xffff0000 /* Self-contained GP groups. */ - -/* Masks for the info word of an ODK_HWAND/ODK_HWOR descriptor. */ -#define OHWA0_R4KEOP_CHECKED 0x00000001 -#define OHWA0_R4KEOP_CLEAN 0x00000002 - - -/* Object attribute tags. */ -enum -{ - /* 0-3 are generic. */ - - /* Floating-point ABI used by this object file. */ - Tag_GNU_MIPS_ABI_FP = 4, - - /* MSA ABI used by this object file. */ - Tag_GNU_MIPS_ABI_MSA = 8, -}; - -/* Object attribute values. */ -enum -{ - /* Values defined for Tag_GNU_MIPS_ABI_FP. */ - - /* Not tagged or not using any ABIs affected by the differences. */ - Val_GNU_MIPS_ABI_FP_ANY = 0, - - /* Using hard-float -mdouble-float. */ - Val_GNU_MIPS_ABI_FP_DOUBLE = 1, - - /* Using hard-float -msingle-float. */ - Val_GNU_MIPS_ABI_FP_SINGLE = 2, - - /* Using soft-float. */ - Val_GNU_MIPS_ABI_FP_SOFT = 3, - - /* Using -mips32r2 -mfp64. */ - Val_GNU_MIPS_ABI_FP_64 = 4, - - /* Values defined for Tag_GNU_MIPS_ABI_MSA. */ - - /* Not tagged or not using any ABIs affected by the differences. */ - Val_GNU_MIPS_ABI_MSA_ANY = 0, - - /* Using 128-bit MSA. */ - Val_GNU_MIPS_ABI_MSA_128 = 1, -}; - -#endif /* _ELF_MIPS_H */ diff --git a/include/elf/mmix.h b/include/elf/mmix.h deleted file mode 100644 index 6d15f7a..0000000 --- a/include/elf/mmix.h +++ /dev/null @@ -1,173 +0,0 @@ -/* MMIX support for BFD. - Copyright 2001, 2002, 2003, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file holds definitions specific to the MMIX ELF ABI. */ - -#ifndef ELF_MMIX_H -#define ELF_MMIX_H - -#include "elf/reloc-macros.h" - -/* Relocations. See the reloc table in bfd/elf64-mmix.c for details. */ -START_RELOC_NUMBERS (elf_mmix_reloc_type) - RELOC_NUMBER (R_MMIX_NONE, 0) - - /* Standard absolute relocations. */ - RELOC_NUMBER (R_MMIX_8, 1) - RELOC_NUMBER (R_MMIX_16, 2) - RELOC_NUMBER (R_MMIX_24, 3) - RELOC_NUMBER (R_MMIX_32, 4) - RELOC_NUMBER (R_MMIX_64, 5) - - /* Standard relative relocations. */ - RELOC_NUMBER (R_MMIX_PC_8, 6) - RELOC_NUMBER (R_MMIX_PC_16, 7) - RELOC_NUMBER (R_MMIX_PC_24, 8) - RELOC_NUMBER (R_MMIX_PC_32, 9) - RELOC_NUMBER (R_MMIX_PC_64, 10) - - /* GNU extensions for C++ vtables. */ - RELOC_NUMBER (R_MMIX_GNU_VTINHERIT, 11) - RELOC_NUMBER (R_MMIX_GNU_VTENTRY, 12) - - /* A GETA instruction. */ - RELOC_NUMBER (R_MMIX_GETA, 13) - RELOC_NUMBER (R_MMIX_GETA_1, 14) - RELOC_NUMBER (R_MMIX_GETA_2, 15) - RELOC_NUMBER (R_MMIX_GETA_3, 16) - - /* A conditional branch instruction. */ - RELOC_NUMBER (R_MMIX_CBRANCH, 17) - RELOC_NUMBER (R_MMIX_CBRANCH_J, 18) - RELOC_NUMBER (R_MMIX_CBRANCH_1, 19) - RELOC_NUMBER (R_MMIX_CBRANCH_2, 20) - RELOC_NUMBER (R_MMIX_CBRANCH_3, 21) - - /* A PUSHJ instruction. */ - RELOC_NUMBER (R_MMIX_PUSHJ, 22) - RELOC_NUMBER (R_MMIX_PUSHJ_1, 23) - RELOC_NUMBER (R_MMIX_PUSHJ_2, 24) - RELOC_NUMBER (R_MMIX_PUSHJ_3, 25) - - /* A JMP instruction. */ - RELOC_NUMBER (R_MMIX_JMP, 26) - RELOC_NUMBER (R_MMIX_JMP_1, 27) - RELOC_NUMBER (R_MMIX_JMP_2, 28) - RELOC_NUMBER (R_MMIX_JMP_3, 29) - - /* A relative address such as in a GETA or a branch. */ - RELOC_NUMBER (R_MMIX_ADDR19, 30) - - /* A relative address such as in a JMP (only). */ - RELOC_NUMBER (R_MMIX_ADDR27, 31) - - /* A general register or a number 0..255. */ - RELOC_NUMBER (R_MMIX_REG_OR_BYTE, 32) - - /* A general register. */ - RELOC_NUMBER (R_MMIX_REG, 33) - - /* A global register and an offset, the global register (allocated at - link time) contents plus the offset made equivalent to the relocation - expression at link time. The relocation must point at the Y field of - an instruction. */ - RELOC_NUMBER (R_MMIX_BASE_PLUS_OFFSET, 34) - - /* A LOCAL assertion. */ - RELOC_NUMBER (R_MMIX_LOCAL, 35) - - /* A PUSHJ instruction, generating a stub if it does not reach. */ - RELOC_NUMBER (R_MMIX_PUSHJ_STUBBABLE, 36) -END_RELOC_NUMBERS (R_MMIX_max) - - -/* Section Attributes. */ -/* A section containing necessary information for relaxation. */ -#define SHF_MMIX_CANRELAX 0x80000000 - -/* Symbol attributes. */ -/* A symbol with this section-index is a register. */ -#define SHN_REGISTER SHN_LOPROC - -/* This section holds contents for each initialized register, at VMA - regno*8. A symbol relative to this section will be transformed to an - absolute symbol with the value corresponding to the register number at - final link time. A symbol with a value outside the inclusive range - 32*8 .. 254*8 is an error. It is highly recommended to only use an - upper bound of 253*8 or lower as specified in the (currently - unspecified) ABI. */ -#define MMIX_REG_CONTENTS_SECTION_NAME ".MMIX.reg_contents" - -/* At link time, a section by this name is created, expected to be - included in MMIX_REG_CONTENTS_SECTION_NAME in the output. */ -#define MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME \ - ".MMIX.reg_contents.linker_allocated" - -/* This is a faked section holding symbols with SHN_REGISTER. Don't - confuse it with MMIX_REG_CONTENTS_SECTION_NAME; this one has no - contents, just values. It is an error for a value in this section to - be outside the range 32..255 and it must never become an actual section - in an object file. */ -#define MMIX_REG_SECTION_NAME "*REG*" - -/* Appended with a number N=0..65535, this is a representation of the - mmixal "BSPEC N" ... "ESPEC" directive pair; the contents go into an - ELF section by name ".MMIX.spec_data.N". */ -#define MMIX_OTHER_SPEC_SECTION_PREFIX ".MMIX.spec_data." - -/* A section SECNAME is noted to start at "__.MMIX.start.SECNAME" by the - presence of this symbol. Currently only implemented for ".text" - through the symbol "__.MMIX.start..text". */ -#define MMIX_LOC_SECTION_START_SYMBOL_PREFIX "__.MMIX.start." - -/* This symbol is always a function. */ -#define MMIX_START_SYMBOL_NAME "Main" - - -/* We smuggle in a few MMO specifics here. We don't make a specific MMO - file, since we can't reasonably support MMO without ELF; we have to - include this file anyway. */ - -#define MMO_TEXT_SECTION_NAME ".text" -#define MMO_DATA_SECTION_NAME ".data" - -/* A definition for the flags we put in spec data in files. A copy of our - own of some flags to keep immune to BFD flag changes. See section.c of - 2001-07-18 for flag documentation. */ -#define MMO_SEC_ALLOC 0x001 -#define MMO_SEC_LOAD 0x002 -#define MMO_SEC_RELOC 0x004 -#define MMO_SEC_READONLY 0x010 -#define MMO_SEC_CODE 0x020 -#define MMO_SEC_DATA 0x040 -#define MMO_SEC_NEVER_LOAD 0x400 -#define MMO_SEC_IS_COMMON 0x8000 -#define MMO_SEC_DEBUGGING 0x10000 - -#ifdef BFD_ARCH_SIZE -extern bfd_boolean _bfd_mmix_before_linker_allocation - (bfd *, struct bfd_link_info *); -extern bfd_boolean _bfd_mmix_after_linker_allocation - (bfd *, struct bfd_link_info *); -extern bfd_boolean _bfd_mmix_check_all_relocs - (bfd *, struct bfd_link_info *); -#endif - -#endif /* ELF_MMIX_H */ diff --git a/include/elf/mn10200.h b/include/elf/mn10200.h deleted file mode 100644 index 24972b6..0000000 --- a/include/elf/mn10200.h +++ /dev/null @@ -1,40 +0,0 @@ -/* MN10200 ELF support for BFD. - Copyright 1998, 2000, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file holds definitions specific to the MN10200 ELF ABI. */ - -#ifndef _ELF_MN10200_H -#define _ELF_MN10200_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_mn10200_reloc_type) - RELOC_NUMBER (R_MN10200_NONE, 0) - RELOC_NUMBER (R_MN10200_32, 1) - RELOC_NUMBER (R_MN10200_16, 2) - RELOC_NUMBER (R_MN10200_8, 3) - RELOC_NUMBER (R_MN10200_24, 4) - RELOC_NUMBER (R_MN10200_PCREL8, 5) - RELOC_NUMBER (R_MN10200_PCREL16, 6) - RELOC_NUMBER (R_MN10200_PCREL24, 7) -END_RELOC_NUMBERS (R_MN10200_max) - -#endif /* _ELF_MN10200_H */ diff --git a/include/elf/mn10300.h b/include/elf/mn10300.h deleted file mode 100644 index 529b389..0000000 --- a/include/elf/mn10300.h +++ /dev/null @@ -1,80 +0,0 @@ -/* MN10300 ELF support for BFD. - Copyright 1998, 1999, 2000, 2003, 2007 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file holds definitions specific to the MN10300 ELF ABI. */ - -#ifndef _ELF_MN10300_H -#define _ELF_MN10300_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_mn10300_reloc_type) - RELOC_NUMBER (R_MN10300_NONE, 0) - RELOC_NUMBER (R_MN10300_32, 1) - RELOC_NUMBER (R_MN10300_16, 2) - RELOC_NUMBER (R_MN10300_8, 3) - RELOC_NUMBER (R_MN10300_PCREL32, 4) - RELOC_NUMBER (R_MN10300_PCREL16, 5) - RELOC_NUMBER (R_MN10300_PCREL8, 6) - RELOC_NUMBER (R_MN10300_GNU_VTINHERIT, 7) - RELOC_NUMBER (R_MN10300_GNU_VTENTRY, 8) - RELOC_NUMBER (R_MN10300_24, 9) - RELOC_NUMBER (R_MN10300_GOTPC32, 10) - RELOC_NUMBER (R_MN10300_GOTPC16, 11) - RELOC_NUMBER (R_MN10300_GOTOFF32, 12) - RELOC_NUMBER (R_MN10300_GOTOFF24, 13) - RELOC_NUMBER (R_MN10300_GOTOFF16, 14) - RELOC_NUMBER (R_MN10300_PLT32, 15) - RELOC_NUMBER (R_MN10300_PLT16, 16) - RELOC_NUMBER (R_MN10300_GOT32, 17) - RELOC_NUMBER (R_MN10300_GOT24, 18) - RELOC_NUMBER (R_MN10300_GOT16, 19) - RELOC_NUMBER (R_MN10300_COPY, 20) - RELOC_NUMBER (R_MN10300_GLOB_DAT, 21) - RELOC_NUMBER (R_MN10300_JMP_SLOT, 22) - RELOC_NUMBER (R_MN10300_RELATIVE, 23) - RELOC_NUMBER (R_MN10300_TLS_GD, 24) - RELOC_NUMBER (R_MN10300_TLS_LD, 25) - RELOC_NUMBER (R_MN10300_TLS_LDO, 26) - RELOC_NUMBER (R_MN10300_TLS_GOTIE, 27) - RELOC_NUMBER (R_MN10300_TLS_IE, 28) - RELOC_NUMBER (R_MN10300_TLS_LE, 29) - RELOC_NUMBER (R_MN10300_TLS_DTPMOD, 30) - RELOC_NUMBER (R_MN10300_TLS_DTPOFF, 31) - RELOC_NUMBER (R_MN10300_TLS_TPOFF, 32) - RELOC_NUMBER (R_MN10300_SYM_DIFF, 33) - RELOC_NUMBER (R_MN10300_ALIGN, 34) -END_RELOC_NUMBERS (R_MN10300_MAX) - -/* Machine variant if we know it. This field was invented at Cygnus, - but it is hoped that other vendors will adopt it. If some standard - is developed, this code should be changed to follow it. */ - -#define EF_MN10300_MACH 0x00FF0000 - -/* Cygnus is choosing values between 80 and 9F; - 00 - 7F should be left for a future standard; - the rest are open. */ - -#define E_MN10300_MACH_MN10300 0x00810000 -#define E_MN10300_MACH_AM33 0x00820000 -#define E_MN10300_MACH_AM33_2 0x00830000 -#endif /* _ELF_MN10300_H */ diff --git a/include/elf/moxie.h b/include/elf/moxie.h deleted file mode 100644 index 0b3eb38..0000000 --- a/include/elf/moxie.h +++ /dev/null @@ -1,32 +0,0 @@ -/* moxie ELF support for BFD. - Copyright 2009, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_MOXIE_H -#define _ELF_MOXIE_H - -#include "elf/reloc-macros.h" - -/* Relocation types. */ -START_RELOC_NUMBERS (elf_moxie_reloc_type) - RELOC_NUMBER (R_MOXIE_NONE, 0) - RELOC_NUMBER (R_MOXIE_32, 1) - RELOC_NUMBER (R_MOXIE_PCREL10, 2) -END_RELOC_NUMBERS (R_MOXIE_max) - -#endif /* _ELF_MOXIE_H */ diff --git a/include/elf/msp430.h b/include/elf/msp430.h deleted file mode 100644 index ac8e28c..0000000 --- a/include/elf/msp430.h +++ /dev/null @@ -1,101 +0,0 @@ -/* MSP430 ELF support for BFD. - Copyright (C) 2002-2013 Free Software Foundation, Inc. - Contributed by Dmitry Diky - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_MSP430_H -#define _ELF_MSP430_H - -#include "elf/reloc-macros.h" - -/* Processor specific flags for the ELF header e_flags field. */ -#define EF_MSP430_MACH 0xff - -#define E_MSP430_MACH_MSP430x11 11 -#define E_MSP430_MACH_MSP430x11x1 110 -#define E_MSP430_MACH_MSP430x12 12 -#define E_MSP430_MACH_MSP430x13 13 -#define E_MSP430_MACH_MSP430x14 14 -#define E_MSP430_MACH_MSP430x15 15 -#define E_MSP430_MACH_MSP430x16 16 -#define E_MSP430_MACH_MSP430x20 20 -#define E_MSP430_MACH_MSP430x22 22 -#define E_MSP430_MACH_MSP430x23 23 -#define E_MSP430_MACH_MSP430x24 24 -#define E_MSP430_MACH_MSP430x26 26 -#define E_MSP430_MACH_MSP430x31 31 -#define E_MSP430_MACH_MSP430x32 32 -#define E_MSP430_MACH_MSP430x33 33 -#define E_MSP430_MACH_MSP430x41 41 -#define E_MSP430_MACH_MSP430x42 42 -#define E_MSP430_MACH_MSP430x43 43 -#define E_MSP430_MACH_MSP430x44 44 -#define E_MSP430_MACH_MSP430X 45 -#define E_MSP430_MACH_MSP430x46 46 -#define E_MSP430_MACH_MSP430x47 47 -#define E_MSP430_MACH_MSP430x54 54 - -#define SHT_MSP430_ATTRIBUTES 0x70000003 /* Section holds ABI attributes. */ -#define SHT_MSP430_SEC_FLAGS 0x7f000005 /* Holds TI compiler's section flags. */ -#define SHT_MSP430_SYM_ALIASES 0x7f000006 /* Holds TI compiler's symbol aliases. */ - -/* Tag values for an attribute section. */ -#define OFBA_MSPABI_Tag_ISA 4 -#define OFBA_MSPABI_Tag_Code_Model 6 -#define OFBA_MSPABI_Tag_Data_Model 8 - -/* Relocations. */ -START_RELOC_NUMBERS (elf_msp430_reloc_type) - RELOC_NUMBER (R_MSP430_NONE, 0) - RELOC_NUMBER (R_MSP430_32, 1) - RELOC_NUMBER (R_MSP430_10_PCREL, 2) - RELOC_NUMBER (R_MSP430_16, 3) - RELOC_NUMBER (R_MSP430_16_PCREL, 4) - RELOC_NUMBER (R_MSP430_16_BYTE, 5) - RELOC_NUMBER (R_MSP430_16_PCREL_BYTE, 6) - RELOC_NUMBER (R_MSP430_2X_PCREL, 7) - RELOC_NUMBER (R_MSP430_RL_PCREL, 8) - RELOC_NUMBER (R_MSP430_8, 9) - RELOC_NUMBER (R_MSP430_SYM_DIFF, 10) -END_RELOC_NUMBERS (R_MSP430_max) - -START_RELOC_NUMBERS (elf_msp430x_reloc_type) - RELOC_NUMBER (R_MSP430_ABS32, 1) /* aka R_MSP430_32 */ - RELOC_NUMBER (R_MSP430_ABS16, 2) /* aka R_MSP430_16 */ - RELOC_NUMBER (R_MSP430_ABS8, 3) - RELOC_NUMBER (R_MSP430_PCR16, 4) /* aka R_MSP430_16_PCREL */ - RELOC_NUMBER (R_MSP430X_PCR20_EXT_SRC, 5) - RELOC_NUMBER (R_MSP430X_PCR20_EXT_DST, 6) - RELOC_NUMBER (R_MSP430X_PCR20_EXT_ODST, 7) - RELOC_NUMBER (R_MSP430X_ABS20_EXT_SRC, 8) - RELOC_NUMBER (R_MSP430X_ABS20_EXT_DST, 9) - RELOC_NUMBER (R_MSP430X_ABS20_EXT_ODST, 10) - RELOC_NUMBER (R_MSP430X_ABS20_ADR_SRC, 11) - RELOC_NUMBER (R_MSP430X_ABS20_ADR_DST, 12) - RELOC_NUMBER (R_MSP430X_PCR16, 13) /* Like R_MSP430_PCR16 but with overflow checking. */ - RELOC_NUMBER (R_MSP430X_PCR20_CALL, 14) - RELOC_NUMBER (R_MSP430X_ABS16, 15) /* Like R_MSP430_ABS16 but with overflow checking. */ - RELOC_NUMBER (R_MSP430_ABS_HI16, 16) - RELOC_NUMBER (R_MSP430_PREL31, 17) - RELOC_NUMBER (R_MSP430_EHTYPE, 18) /* Mentioned in ABI. */ - RELOC_NUMBER (R_MSP430X_10_PCREL, 19) /* Red Hat invention. Used for Jump instructions. */ - RELOC_NUMBER (R_MSP430X_2X_PCREL, 20) /* Red Hat invention. Used for relaxing jumps. */ - RELOC_NUMBER (R_MSP430X_SYM_DIFF, 21) /* Red Hat invention. Used for relaxing debug info. */ -END_RELOC_NUMBERS (R_MSP430x_max) - -#endif /* _ELF_MSP430_H */ diff --git a/include/elf/mt.h b/include/elf/mt.h deleted file mode 100644 index 2bc09f4..0000000 --- a/include/elf/mt.h +++ /dev/null @@ -1,46 +0,0 @@ -/* MS1 ELF support for BFD. - Copyright (C) 2000, 2005, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_MT_H -#define _ELF_MT_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_mt_reloc_type) - RELOC_NUMBER (R_MT_NONE, 0) - RELOC_NUMBER (R_MT_16, 1) - RELOC_NUMBER (R_MT_32, 2) - RELOC_NUMBER (R_MT_32_PCREL, 3) - RELOC_NUMBER (R_MT_PC16, 4) - RELOC_NUMBER (R_MT_HI16, 5) - RELOC_NUMBER (R_MT_LO16, 6) -END_RELOC_NUMBERS(R_MT_max) - -#define EF_MT_CPU_MRISC 0x00000001 /* default */ -#define EF_MT_CPU_MRISC2 0x00000002 /* MRISC2 */ -#define EF_MT_CPU_MS2 0x00000003 /* MS2 */ -#define EF_MT_CPU_MASK 0x00000003 /* specific cpu bits */ -#define EF_MT_ALL_FLAGS (EF_MT_CPU_MASK) - -/* The location of the memory mapped hardware stack. */ -#define MT_STACK_VALUE 0x0f000000 -#define MT_STACK_SIZE 0x20 - -#endif /* _ELF_MT_H */ diff --git a/include/elf/nios2.h b/include/elf/nios2.h deleted file mode 100644 index ff5947b..0000000 --- a/include/elf/nios2.h +++ /dev/null @@ -1,91 +0,0 @@ -/* Altera Nios II ELF support for BFD. - Copyright (C) 2012, 2013 Free Software Foundation, Inc. - Contributed by Nigel Gray (ngray@altera.com). - Contributed by Mentor Graphics, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - - -/* This file holds definitions specific to the Altera Nios II ELF ABI. Note - that most of this is not actually implemented by BFD. */ - -#ifndef _ELF_NIOS2_H -#define _ELF_NIOS2_H - -#include "elf/reloc-macros.h" - -/* The order of these numbers must match the order in - the elf_nios2_howto_table_rel table for the lookup - function to work properly. */ - -START_RELOC_NUMBERS (elf_nios2_reloc_type) - RELOC_NUMBER (R_NIOS2_NONE, 0) - RELOC_NUMBER (R_NIOS2_S16, 1) - RELOC_NUMBER (R_NIOS2_U16, 2) - RELOC_NUMBER (R_NIOS2_PCREL16, 3) - RELOC_NUMBER (R_NIOS2_CALL26, 4) - RELOC_NUMBER (R_NIOS2_IMM5, 5) - RELOC_NUMBER (R_NIOS2_CACHE_OPX, 6) - RELOC_NUMBER (R_NIOS2_IMM6, 7) - RELOC_NUMBER (R_NIOS2_IMM8, 8) - RELOC_NUMBER (R_NIOS2_HI16, 9) - RELOC_NUMBER (R_NIOS2_LO16, 10) - RELOC_NUMBER (R_NIOS2_HIADJ16, 11) - RELOC_NUMBER (R_NIOS2_BFD_RELOC_32, 12) - RELOC_NUMBER (R_NIOS2_BFD_RELOC_16, 13) - RELOC_NUMBER (R_NIOS2_BFD_RELOC_8, 14) - RELOC_NUMBER (R_NIOS2_GPREL, 15) - RELOC_NUMBER (R_NIOS2_GNU_VTINHERIT, 16) - RELOC_NUMBER (R_NIOS2_GNU_VTENTRY, 17) - RELOC_NUMBER (R_NIOS2_UJMP, 18) - RELOC_NUMBER (R_NIOS2_CJMP, 19) - RELOC_NUMBER (R_NIOS2_CALLR, 20) - RELOC_NUMBER (R_NIOS2_ALIGN, 21) - RELOC_NUMBER (R_NIOS2_GOT16, 22) - RELOC_NUMBER (R_NIOS2_CALL16, 23) - RELOC_NUMBER (R_NIOS2_GOTOFF_LO, 24) - RELOC_NUMBER (R_NIOS2_GOTOFF_HA, 25) - RELOC_NUMBER (R_NIOS2_PCREL_LO, 26) - RELOC_NUMBER (R_NIOS2_PCREL_HA, 27) - RELOC_NUMBER (R_NIOS2_TLS_GD16, 28) - RELOC_NUMBER (R_NIOS2_TLS_LDM16, 29) - RELOC_NUMBER (R_NIOS2_TLS_LDO16, 30) - RELOC_NUMBER (R_NIOS2_TLS_IE16, 31) - RELOC_NUMBER (R_NIOS2_TLS_LE16, 32) - RELOC_NUMBER (R_NIOS2_TLS_DTPMOD, 33) - RELOC_NUMBER (R_NIOS2_TLS_DTPREL, 34) - RELOC_NUMBER (R_NIOS2_TLS_TPREL, 35) - RELOC_NUMBER (R_NIOS2_COPY, 36) - RELOC_NUMBER (R_NIOS2_GLOB_DAT, 37) - RELOC_NUMBER (R_NIOS2_JUMP_SLOT, 38) - RELOC_NUMBER (R_NIOS2_RELATIVE, 39) - RELOC_NUMBER (R_NIOS2_GOTOFF, 40) - RELOC_NUMBER (R_NIOS2_ILLEGAL, 41) -END_RELOC_NUMBERS (R_NIOS2_maxext) - -/* Processor-specific section flags. */ - -/* This is used to mark gp-relative sections. */ -#define SHF_NIOS2_GPREL 0x10000000 - -/* Processor-specific dynamic array tags. */ - -/* Address of _gp. */ -#define DT_NIOS2_GP 0x70000002 - -#endif /* _ELF_NIOS2_H */ diff --git a/include/elf/openrisc.h b/include/elf/openrisc.h deleted file mode 100644 index 87969e8..0000000 --- a/include/elf/openrisc.h +++ /dev/null @@ -1,39 +0,0 @@ -/* OpenRISC ELF support for BFD. - Copyright 2001, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_OPENRISC_H -#define _ELF_OPENRISC_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_openrisc_reloc_type) - RELOC_NUMBER (R_OPENRISC_NONE, 0) - RELOC_NUMBER (R_OPENRISC_INSN_REL_26, 1) - RELOC_NUMBER (R_OPENRISC_INSN_ABS_26, 2) - RELOC_NUMBER (R_OPENRISC_LO_16_IN_INSN, 3) - RELOC_NUMBER (R_OPENRISC_HI_16_IN_INSN, 4) - RELOC_NUMBER (R_OPENRISC_8, 5) - RELOC_NUMBER (R_OPENRISC_16, 6) - RELOC_NUMBER (R_OPENRISC_32, 7) - RELOC_NUMBER (R_OPENRISC_GNU_VTINHERIT, 8) - RELOC_NUMBER (R_OPENRISC_GNU_VTENTRY, 9) -END_RELOC_NUMBERS (R_OPENRISC_max) - -#endif /* _ELF_OPENRISC_H */ diff --git a/include/elf/or32.h b/include/elf/or32.h deleted file mode 100644 index 9f1c2f3..0000000 --- a/include/elf/or32.h +++ /dev/null @@ -1,56 +0,0 @@ -/* OR1K ELF support for BFD. Derived from ppc.h. - Copyright (C) 2002, 2010 Free Software Foundation, Inc. - Contributed by Ivan Guzvinec - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _ELF_OR1K_H -#define _ELF_OR1K_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_or32_reloc_type) - RELOC_NUMBER (R_OR32_NONE, 0) - RELOC_NUMBER (R_OR32_32, 1) - RELOC_NUMBER (R_OR32_16, 2) - RELOC_NUMBER (R_OR32_8, 3) - RELOC_NUMBER (R_OR32_CONST, 4) - RELOC_NUMBER (R_OR32_CONSTH, 5) - RELOC_NUMBER (R_OR32_JUMPTARG, 6) - RELOC_NUMBER (R_OR32_GNU_VTENTRY, 7) - RELOC_NUMBER (R_OR32_GNU_VTINHERIT, 8) -END_RELOC_NUMBERS (R_OR32_max) - -/* Four bit OR32 machine type field. */ -#define EF_OR32_MACH 0x0000000f - -/* Various CPU types. */ -#define E_OR32_MACH_BASE 0x00000000 -#define E_OR32_MACH_UNUSED1 0x00000001 -#define E_OR32_MACH_UNUSED2 0x00000002 -#define E_OR32_MACH_UNUSED4 0x00000003 - -/* Processor specific section headers, sh_type field */ -#define SHT_ORDERED SHT_HIPROC /* Link editor is to sort the \ - entries in this section \ - based on the address \ - specified in the associated \ - symbol table entry. */ - -#endif /* _ELF_OR1K_H */ diff --git a/include/elf/pj.h b/include/elf/pj.h deleted file mode 100644 index afd19e8..0000000 --- a/include/elf/pj.h +++ /dev/null @@ -1,44 +0,0 @@ -/* picoJava ELF support for BFD. - Copyright 1999, 2000, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_PJ_H -#define _ELF_PJ_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ - -START_RELOC_NUMBERS (elf_pj_reloc_type) - RELOC_NUMBER (R_PJ_NONE, 0) - RELOC_NUMBER (R_PJ_DATA_DIR32, 1) - RELOC_NUMBER (R_PJ_CODE_REL32, 2) - RELOC_NUMBER (R_PJ_CODE_REL16, 3) - RELOC_NUMBER (R_PJ_CODE_DIR32, 6) - RELOC_NUMBER (R_PJ_CODE_DIR16, 7) - RELOC_NUMBER (R_PJ_CODE_LO16, 13) - RELOC_NUMBER (R_PJ_CODE_HI16, 14) - RELOC_NUMBER (R_PJ_GNU_VTINHERIT, 15) - RELOC_NUMBER (R_PJ_GNU_VTENTRY, 16) -END_RELOC_NUMBERS (R_PJ_max) - -#define EF_PICOJAVA_ARCH 0x0000000f -#define EF_PICOJAVA_NEWCALLS 0x00000010 -#define EF_PICOJAVA_GNUCALLS 0x00000020 /* The (currently) non standard GNU calling convention */ - -#endif diff --git a/include/elf/ppc.h b/include/elf/ppc.h deleted file mode 100644 index f80a1e8..0000000 --- a/include/elf/ppc.h +++ /dev/null @@ -1,223 +0,0 @@ -/* PPC ELF support for BFD. - Copyright 1995, 1996, 1998, 2000, 2001, 2002, 2003, 2005, 2007, 2008, - 2009, 2010 Free Software Foundation, Inc. - - By Michael Meissner, Cygnus Support, , - from information in the System V Application Binary Interface, - PowerPC Processor Supplement and the PowerPC Embedded Application - Binary Interface (eabi). - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file holds definitions specific to the PPC ELF ABI. Note - that most of this is not actually implemented by BFD. */ - -#ifndef _ELF_PPC_H -#define _ELF_PPC_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_ppc_reloc_type) - RELOC_NUMBER (R_PPC_NONE, 0) - RELOC_NUMBER (R_PPC_ADDR32, 1) - RELOC_NUMBER (R_PPC_ADDR24, 2) - RELOC_NUMBER (R_PPC_ADDR16, 3) - RELOC_NUMBER (R_PPC_ADDR16_LO, 4) - RELOC_NUMBER (R_PPC_ADDR16_HI, 5) - RELOC_NUMBER (R_PPC_ADDR16_HA, 6) - RELOC_NUMBER (R_PPC_ADDR14, 7) - RELOC_NUMBER (R_PPC_ADDR14_BRTAKEN, 8) - RELOC_NUMBER (R_PPC_ADDR14_BRNTAKEN, 9) - RELOC_NUMBER (R_PPC_REL24, 10) - RELOC_NUMBER (R_PPC_REL14, 11) - RELOC_NUMBER (R_PPC_REL14_BRTAKEN, 12) - RELOC_NUMBER (R_PPC_REL14_BRNTAKEN, 13) - RELOC_NUMBER (R_PPC_GOT16, 14) - RELOC_NUMBER (R_PPC_GOT16_LO, 15) - RELOC_NUMBER (R_PPC_GOT16_HI, 16) - RELOC_NUMBER (R_PPC_GOT16_HA, 17) - RELOC_NUMBER (R_PPC_PLTREL24, 18) - RELOC_NUMBER (R_PPC_COPY, 19) - RELOC_NUMBER (R_PPC_GLOB_DAT, 20) - RELOC_NUMBER (R_PPC_JMP_SLOT, 21) - RELOC_NUMBER (R_PPC_RELATIVE, 22) - RELOC_NUMBER (R_PPC_LOCAL24PC, 23) - RELOC_NUMBER (R_PPC_UADDR32, 24) - RELOC_NUMBER (R_PPC_UADDR16, 25) - RELOC_NUMBER (R_PPC_REL32, 26) - RELOC_NUMBER (R_PPC_PLT32, 27) - RELOC_NUMBER (R_PPC_PLTREL32, 28) - RELOC_NUMBER (R_PPC_PLT16_LO, 29) - RELOC_NUMBER (R_PPC_PLT16_HI, 30) - RELOC_NUMBER (R_PPC_PLT16_HA, 31) - RELOC_NUMBER (R_PPC_SDAREL16, 32) - RELOC_NUMBER (R_PPC_SECTOFF, 33) - RELOC_NUMBER (R_PPC_SECTOFF_LO, 34) - RELOC_NUMBER (R_PPC_SECTOFF_HI, 35) - RELOC_NUMBER (R_PPC_SECTOFF_HA, 36) - RELOC_NUMBER (R_PPC_ADDR30, 37) - -#ifndef RELOC_MACROS_GEN_FUNC -/* Fake relocations for branch stubs, only used internally by ld. */ - RELOC_NUMBER (R_PPC_RELAX, 48) - RELOC_NUMBER (R_PPC_RELAX_PLT, 49) - RELOC_NUMBER (R_PPC_RELAX_PLTREL24, 50) -#endif - - /* Relocs added to support TLS. */ - RELOC_NUMBER (R_PPC_TLS, 67) - RELOC_NUMBER (R_PPC_DTPMOD32, 68) - RELOC_NUMBER (R_PPC_TPREL16, 69) - RELOC_NUMBER (R_PPC_TPREL16_LO, 70) - RELOC_NUMBER (R_PPC_TPREL16_HI, 71) - RELOC_NUMBER (R_PPC_TPREL16_HA, 72) - RELOC_NUMBER (R_PPC_TPREL32, 73) - RELOC_NUMBER (R_PPC_DTPREL16, 74) - RELOC_NUMBER (R_PPC_DTPREL16_LO, 75) - RELOC_NUMBER (R_PPC_DTPREL16_HI, 76) - RELOC_NUMBER (R_PPC_DTPREL16_HA, 77) - RELOC_NUMBER (R_PPC_DTPREL32, 78) - RELOC_NUMBER (R_PPC_GOT_TLSGD16, 79) - RELOC_NUMBER (R_PPC_GOT_TLSGD16_LO, 80) - RELOC_NUMBER (R_PPC_GOT_TLSGD16_HI, 81) - RELOC_NUMBER (R_PPC_GOT_TLSGD16_HA, 82) - RELOC_NUMBER (R_PPC_GOT_TLSLD16, 83) - RELOC_NUMBER (R_PPC_GOT_TLSLD16_LO, 84) - RELOC_NUMBER (R_PPC_GOT_TLSLD16_HI, 85) - RELOC_NUMBER (R_PPC_GOT_TLSLD16_HA, 86) - RELOC_NUMBER (R_PPC_GOT_TPREL16, 87) - RELOC_NUMBER (R_PPC_GOT_TPREL16_LO, 88) - RELOC_NUMBER (R_PPC_GOT_TPREL16_HI, 89) - RELOC_NUMBER (R_PPC_GOT_TPREL16_HA, 90) - RELOC_NUMBER (R_PPC_GOT_DTPREL16, 91) - RELOC_NUMBER (R_PPC_GOT_DTPREL16_LO, 92) - RELOC_NUMBER (R_PPC_GOT_DTPREL16_HI, 93) - RELOC_NUMBER (R_PPC_GOT_DTPREL16_HA, 94) - RELOC_NUMBER (R_PPC_TLSGD, 95) - RELOC_NUMBER (R_PPC_TLSLD, 96) - -/* The remaining relocs are from the Embedded ELF ABI, and are not - in the SVR4 ELF ABI. */ - RELOC_NUMBER (R_PPC_EMB_NADDR32, 101) - RELOC_NUMBER (R_PPC_EMB_NADDR16, 102) - RELOC_NUMBER (R_PPC_EMB_NADDR16_LO, 103) - RELOC_NUMBER (R_PPC_EMB_NADDR16_HI, 104) - RELOC_NUMBER (R_PPC_EMB_NADDR16_HA, 105) - RELOC_NUMBER (R_PPC_EMB_SDAI16, 106) - RELOC_NUMBER (R_PPC_EMB_SDA2I16, 107) - RELOC_NUMBER (R_PPC_EMB_SDA2REL, 108) - RELOC_NUMBER (R_PPC_EMB_SDA21, 109) - RELOC_NUMBER (R_PPC_EMB_MRKREF, 110) - RELOC_NUMBER (R_PPC_EMB_RELSEC16, 111) - RELOC_NUMBER (R_PPC_EMB_RELST_LO, 112) - RELOC_NUMBER (R_PPC_EMB_RELST_HI, 113) - RELOC_NUMBER (R_PPC_EMB_RELST_HA, 114) - RELOC_NUMBER (R_PPC_EMB_BIT_FLD, 115) - RELOC_NUMBER (R_PPC_EMB_RELSDA, 116) - -/* PowerPC VLE relocations. */ - RELOC_NUMBER (R_PPC_VLE_REL8, 216) - RELOC_NUMBER (R_PPC_VLE_REL15, 217) - RELOC_NUMBER (R_PPC_VLE_REL24, 218) - RELOC_NUMBER (R_PPC_VLE_LO16A, 219) - RELOC_NUMBER (R_PPC_VLE_LO16D, 220) - RELOC_NUMBER (R_PPC_VLE_HI16A, 221) - RELOC_NUMBER (R_PPC_VLE_HI16D, 222) - RELOC_NUMBER (R_PPC_VLE_HA16A, 223) - RELOC_NUMBER (R_PPC_VLE_HA16D, 224) - RELOC_NUMBER (R_PPC_VLE_SDA21, 225) - RELOC_NUMBER (R_PPC_VLE_SDA21_LO, 226) - RELOC_NUMBER (R_PPC_VLE_SDAREL_LO16A, 227) - RELOC_NUMBER (R_PPC_VLE_SDAREL_LO16D, 228) - RELOC_NUMBER (R_PPC_VLE_SDAREL_HI16A, 229) - RELOC_NUMBER (R_PPC_VLE_SDAREL_HI16D, 230) - RELOC_NUMBER (R_PPC_VLE_SDAREL_HA16A, 231) - RELOC_NUMBER (R_PPC_VLE_SDAREL_HA16D, 232) - -/* Support STT_GNU_IFUNC plt calls. */ - RELOC_NUMBER (R_PPC_IRELATIVE, 248) - -/* These are GNU extensions used in PIC code sequences. */ - RELOC_NUMBER (R_PPC_REL16, 249) - RELOC_NUMBER (R_PPC_REL16_LO, 250) - RELOC_NUMBER (R_PPC_REL16_HI, 251) - RELOC_NUMBER (R_PPC_REL16_HA, 252) - -/* These are GNU extensions to enable C++ vtable garbage collection. */ - RELOC_NUMBER (R_PPC_GNU_VTINHERIT, 253) - RELOC_NUMBER (R_PPC_GNU_VTENTRY, 254) - -/* This is a phony reloc to handle any old fashioned TOC16 references - that may still be in object files. */ - RELOC_NUMBER (R_PPC_TOC16, 255) - -END_RELOC_NUMBERS (R_PPC_max) - -#define IS_PPC_TLS_RELOC(R) \ - ((R) >= R_PPC_TLS && (R) <= R_PPC_GOT_DTPREL16_HA) - -/* Specify the value of _GLOBAL_OFFSET_TABLE_. */ -#define DT_PPC_GOT (DT_LOPROC) - -/* Specify that tls descriptors should be optimized. */ -#define DT_PPC_TLSOPT (DT_LOPROC + 1) - -/* Processor specific flags for the ELF header e_flags field. */ - -#define EF_PPC_EMB 0x80000000 /* PowerPC embedded flag. */ - -#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag. */ -#define EF_PPC_RELOCATABLE_LIB 0x00008000 /* PowerPC -mrelocatable-lib flag. */ - -/* Processor specific program headers, p_flags field. */ -#define PF_PPC_VLE 0x10000000 /* PowerPC VLE. */ - -/* Processor specific section headers, sh_flags field. */ -#define SHF_PPC_VLE 0x10000000 /* PowerPC VLE text section. */ - -/* Processor specific section headers, sh_type field. */ - -#define SHT_ORDERED SHT_HIPROC /* Link editor is to sort the \ - entries in this section \ - based on the address \ - specified in the associated \ - symbol table entry. */ - -/* Object attribute tags. */ -enum -{ - /* 0-3 are generic. */ - Tag_GNU_Power_ABI_FP = 4, /* Value 1 for hard-float, 2 for - soft-float, 3 for single=precision - hard-float; 0 for not tagged or not - using any ABIs affected by the - differences. */ - - /* Value 1 for general purpose registers only, 2 for AltiVec - registers, 3 for SPE registers; 0 for not tagged or not using any - ABIs affected by the differences. */ - Tag_GNU_Power_ABI_Vector = 8, - - /* Value 1 for ABIs using r3/r4 for returning structures <= 8 bytes, - 2 for ABIs using memory; 0 for not tagged or not using any ABIs - affected by the differences. */ - Tag_GNU_Power_ABI_Struct_Return = 12 -}; - -#endif /* _ELF_PPC_H */ diff --git a/include/elf/ppc64.h b/include/elf/ppc64.h deleted file mode 100644 index f1c80f1..0000000 --- a/include/elf/ppc64.h +++ /dev/null @@ -1,177 +0,0 @@ -/* PPC64 ELF support for BFD. - Copyright 2003, 2005, 2009, 2010, 2011 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _ELF_PPC64_H -#define _ELF_PPC64_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_ppc64_reloc_type) - RELOC_NUMBER (R_PPC64_NONE, 0) - RELOC_NUMBER (R_PPC64_ADDR32, 1) - RELOC_NUMBER (R_PPC64_ADDR24, 2) - RELOC_NUMBER (R_PPC64_ADDR16, 3) - RELOC_NUMBER (R_PPC64_ADDR16_LO, 4) - RELOC_NUMBER (R_PPC64_ADDR16_HI, 5) - RELOC_NUMBER (R_PPC64_ADDR16_HA, 6) - RELOC_NUMBER (R_PPC64_ADDR14, 7) - RELOC_NUMBER (R_PPC64_ADDR14_BRTAKEN, 8) - RELOC_NUMBER (R_PPC64_ADDR14_BRNTAKEN, 9) - RELOC_NUMBER (R_PPC64_REL24, 10) - RELOC_NUMBER (R_PPC64_REL14, 11) - RELOC_NUMBER (R_PPC64_REL14_BRTAKEN, 12) - RELOC_NUMBER (R_PPC64_REL14_BRNTAKEN, 13) - RELOC_NUMBER (R_PPC64_GOT16, 14) - RELOC_NUMBER (R_PPC64_GOT16_LO, 15) - RELOC_NUMBER (R_PPC64_GOT16_HI, 16) - RELOC_NUMBER (R_PPC64_GOT16_HA, 17) - /* 18 unused. 32-bit reloc is R_PPC_PLTREL24. */ - RELOC_NUMBER (R_PPC64_COPY, 19) - RELOC_NUMBER (R_PPC64_GLOB_DAT, 20) - RELOC_NUMBER (R_PPC64_JMP_SLOT, 21) - RELOC_NUMBER (R_PPC64_RELATIVE, 22) - /* 23 unused. 32-bit reloc is R_PPC_LOCAL24PC. */ - RELOC_NUMBER (R_PPC64_UADDR32, 24) - RELOC_NUMBER (R_PPC64_UADDR16, 25) - RELOC_NUMBER (R_PPC64_REL32, 26) - RELOC_NUMBER (R_PPC64_PLT32, 27) - RELOC_NUMBER (R_PPC64_PLTREL32, 28) - RELOC_NUMBER (R_PPC64_PLT16_LO, 29) - RELOC_NUMBER (R_PPC64_PLT16_HI, 30) - RELOC_NUMBER (R_PPC64_PLT16_HA, 31) - /* 32 unused. 32-bit reloc is R_PPC_SDAREL16. */ - RELOC_NUMBER (R_PPC64_SECTOFF, 33) - RELOC_NUMBER (R_PPC64_SECTOFF_LO, 34) - RELOC_NUMBER (R_PPC64_SECTOFF_HI, 35) - RELOC_NUMBER (R_PPC64_SECTOFF_HA, 36) - RELOC_NUMBER (R_PPC64_REL30, 37) - RELOC_NUMBER (R_PPC64_ADDR64, 38) - RELOC_NUMBER (R_PPC64_ADDR16_HIGHER, 39) - RELOC_NUMBER (R_PPC64_ADDR16_HIGHERA, 40) - RELOC_NUMBER (R_PPC64_ADDR16_HIGHEST, 41) - RELOC_NUMBER (R_PPC64_ADDR16_HIGHESTA, 42) - RELOC_NUMBER (R_PPC64_UADDR64, 43) - RELOC_NUMBER (R_PPC64_REL64, 44) - RELOC_NUMBER (R_PPC64_PLT64, 45) - RELOC_NUMBER (R_PPC64_PLTREL64, 46) - RELOC_NUMBER (R_PPC64_TOC16, 47) - RELOC_NUMBER (R_PPC64_TOC16_LO, 48) - RELOC_NUMBER (R_PPC64_TOC16_HI, 49) - RELOC_NUMBER (R_PPC64_TOC16_HA, 50) - RELOC_NUMBER (R_PPC64_TOC, 51) - RELOC_NUMBER (R_PPC64_PLTGOT16, 52) - RELOC_NUMBER (R_PPC64_PLTGOT16_LO, 53) - RELOC_NUMBER (R_PPC64_PLTGOT16_HI, 54) - RELOC_NUMBER (R_PPC64_PLTGOT16_HA, 55) - - /* The following relocs were added in the 64-bit PowerPC ELF ABI - revision 1.2. */ - RELOC_NUMBER (R_PPC64_ADDR16_DS, 56) - RELOC_NUMBER (R_PPC64_ADDR16_LO_DS, 57) - RELOC_NUMBER (R_PPC64_GOT16_DS, 58) - RELOC_NUMBER (R_PPC64_GOT16_LO_DS, 59) - RELOC_NUMBER (R_PPC64_PLT16_LO_DS, 60) - RELOC_NUMBER (R_PPC64_SECTOFF_DS, 61) - RELOC_NUMBER (R_PPC64_SECTOFF_LO_DS, 62) - RELOC_NUMBER (R_PPC64_TOC16_DS, 63) - RELOC_NUMBER (R_PPC64_TOC16_LO_DS, 64) - RELOC_NUMBER (R_PPC64_PLTGOT16_DS, 65) - RELOC_NUMBER (R_PPC64_PLTGOT16_LO_DS, 66) - - /* Relocs added to support TLS. PowerPC64 ELF ABI revision 1.5. */ - RELOC_NUMBER (R_PPC64_TLS, 67) - RELOC_NUMBER (R_PPC64_DTPMOD64, 68) - RELOC_NUMBER (R_PPC64_TPREL16, 69) - RELOC_NUMBER (R_PPC64_TPREL16_LO, 70) - RELOC_NUMBER (R_PPC64_TPREL16_HI, 71) - RELOC_NUMBER (R_PPC64_TPREL16_HA, 72) - RELOC_NUMBER (R_PPC64_TPREL64, 73) - RELOC_NUMBER (R_PPC64_DTPREL16, 74) - RELOC_NUMBER (R_PPC64_DTPREL16_LO, 75) - RELOC_NUMBER (R_PPC64_DTPREL16_HI, 76) - RELOC_NUMBER (R_PPC64_DTPREL16_HA, 77) - RELOC_NUMBER (R_PPC64_DTPREL64, 78) - RELOC_NUMBER (R_PPC64_GOT_TLSGD16, 79) - RELOC_NUMBER (R_PPC64_GOT_TLSGD16_LO, 80) - RELOC_NUMBER (R_PPC64_GOT_TLSGD16_HI, 81) - RELOC_NUMBER (R_PPC64_GOT_TLSGD16_HA, 82) - RELOC_NUMBER (R_PPC64_GOT_TLSLD16, 83) - RELOC_NUMBER (R_PPC64_GOT_TLSLD16_LO, 84) - RELOC_NUMBER (R_PPC64_GOT_TLSLD16_HI, 85) - RELOC_NUMBER (R_PPC64_GOT_TLSLD16_HA, 86) - RELOC_NUMBER (R_PPC64_GOT_TPREL16_DS, 87) - RELOC_NUMBER (R_PPC64_GOT_TPREL16_LO_DS, 88) - RELOC_NUMBER (R_PPC64_GOT_TPREL16_HI, 89) - RELOC_NUMBER (R_PPC64_GOT_TPREL16_HA, 90) - RELOC_NUMBER (R_PPC64_GOT_DTPREL16_DS, 91) - RELOC_NUMBER (R_PPC64_GOT_DTPREL16_LO_DS, 92) - RELOC_NUMBER (R_PPC64_GOT_DTPREL16_HI, 93) - RELOC_NUMBER (R_PPC64_GOT_DTPREL16_HA, 94) - RELOC_NUMBER (R_PPC64_TPREL16_DS, 95) - RELOC_NUMBER (R_PPC64_TPREL16_LO_DS, 96) - RELOC_NUMBER (R_PPC64_TPREL16_HIGHER, 97) - RELOC_NUMBER (R_PPC64_TPREL16_HIGHERA, 98) - RELOC_NUMBER (R_PPC64_TPREL16_HIGHEST, 99) - RELOC_NUMBER (R_PPC64_TPREL16_HIGHESTA, 100) - RELOC_NUMBER (R_PPC64_DTPREL16_DS, 101) - RELOC_NUMBER (R_PPC64_DTPREL16_LO_DS, 102) - RELOC_NUMBER (R_PPC64_DTPREL16_HIGHER, 103) - RELOC_NUMBER (R_PPC64_DTPREL16_HIGHERA, 104) - RELOC_NUMBER (R_PPC64_DTPREL16_HIGHEST, 105) - RELOC_NUMBER (R_PPC64_DTPREL16_HIGHESTA, 106) - RELOC_NUMBER (R_PPC64_TLSGD, 107) - RELOC_NUMBER (R_PPC64_TLSLD, 108) - RELOC_NUMBER (R_PPC64_TOCSAVE, 109) - -#ifndef RELOC_MACROS_GEN_FUNC -/* Fake relocation only used internally by ld. */ - RELOC_NUMBER (R_PPC64_LO_DS_OPT, 128) -#endif -/* Support STT_GNU_IFUNC plt calls. */ - RELOC_NUMBER (R_PPC64_JMP_IREL, 247) - RELOC_NUMBER (R_PPC64_IRELATIVE, 248) - -/* These are GNU extensions used in PIC code sequences. */ - RELOC_NUMBER (R_PPC64_REL16, 249) - RELOC_NUMBER (R_PPC64_REL16_LO, 250) - RELOC_NUMBER (R_PPC64_REL16_HI, 251) - RELOC_NUMBER (R_PPC64_REL16_HA, 252) - - /* These are GNU extensions to enable C++ vtable garbage collection. */ - RELOC_NUMBER (R_PPC64_GNU_VTINHERIT, 253) - RELOC_NUMBER (R_PPC64_GNU_VTENTRY, 254) - -END_RELOC_NUMBERS (R_PPC64_max) - -#define IS_PPC64_TLS_RELOC(R) \ - ((R) >= R_PPC64_TLS && (R) <= R_PPC64_DTPREL16_HIGHESTA) - -/* Specify the start of the .glink section. */ -#define DT_PPC64_GLINK DT_LOPROC - -/* Specify the start and size of the .opd section. */ -#define DT_PPC64_OPD (DT_LOPROC + 1) -#define DT_PPC64_OPDSZ (DT_LOPROC + 2) - -/* Specify that tls descriptors should be optimized. */ -#define DT_PPC64_TLSOPT (DT_LOPROC + 3) - -#endif /* _ELF_PPC64_H */ diff --git a/include/elf/reloc-macros.h b/include/elf/reloc-macros.h deleted file mode 100644 index 92fc9c1..0000000 --- a/include/elf/reloc-macros.h +++ /dev/null @@ -1,129 +0,0 @@ -/* Generic relocation support for BFD. - Copyright 1998, 1999, 2000, 2003, 2010, 2011 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* These macros are used by the various *.h target specific header - files to either generate an enum containing all the known relocations - for that target, or if RELOC_MACROS_GEN_FUNC is defined, a recognition - function is generated instead. (This is used by binutils/readelf.c) - - Given a header file like this: - - START_RELOC_NUMBERS (foo) - RELOC_NUMBER (R_foo_NONE, 0) - RELOC_NUMBER (R_foo_32, 1) - EMPTY_RELOC (R_foo_good) - FAKE_RELOC (R_foo_illegal, 9) - END_RELOC_NUMBERS (R_foo_count) - - Then the following will be produced by default (ie if - RELOC_MACROS_GEN_FUNC is *not* defined). - - enum foo - { - R_foo_NONE = 0, - R_foo_32 = 1, - R_foo_good, - R_foo_illegal = 9, - R_foo_count - }; - - Note: The value of the symbol defined in the END_RELOC_NUMBERS - macro (R_foo_count in the case of the example above) will be - set to the value of the whichever *_RELOC macro precedes it plus - one. Therefore if you intend to use the symbol as a sentinel for - the highest valid macro value you should make sure that the - preceding *_RELOC macro is the highest valid number. ie a - declaration like this: - - START_RELOC_NUMBERS (foo) - RELOC_NUMBER (R_foo_NONE, 0) - RELOC_NUMBER (R_foo_32, 1) - FAKE_RELOC (R_foo_illegal, 9) - FAKE_RELOC (R_foo_synonym, 0) - END_RELOC_NUMBERS (R_foo_count) - - will result in R_foo_count having a value of 1 (R_foo_synonym + 1) - rather than 10 or 2 as might be expected. - - Alternatively you can assign a value to END_RELOC_NUMBERS symbol - explicitly, like this: - - START_RELOC_NUMBERS (foo) - RELOC_NUMBER (R_foo_NONE, 0) - RELOC_NUMBER (R_foo_32, 1) - FAKE_RELOC (R_foo_illegal, 9) - FAKE_RELOC (R_foo_synonym, 0) - END_RELOC_NUMBERS (R_foo_count = 2) - - If RELOC_MACROS_GEN_FUNC *is* defined, then instead the - following function will be generated: - - static const char *foo (unsigned long rtype); - static const char * - foo (unsigned long rtype) - { - switch (rtype) - { - case 0: return "R_foo_NONE"; - case 1: return "R_foo_32"; - default: return NULL; - } - } - */ - -#ifndef _RELOC_MACROS_H -#define _RELOC_MACROS_H - -#ifdef RELOC_MACROS_GEN_FUNC - -/* This function takes the relocation number and returns the - string version name of the name of that relocation. If - the relocation is not recognised, NULL is returned. */ - -#define START_RELOC_NUMBERS(name) \ -static const char *name (unsigned long rtype); \ -static const char * \ -name (unsigned long rtype) \ -{ \ - switch (rtype) \ - { - -#define RELOC_NUMBER(name, number) \ - case number: return #name; - -#define FAKE_RELOC(name, number) -#define EMPTY_RELOC(name) - -#define END_RELOC_NUMBERS(name) \ - default: return NULL; \ - } \ -} - - -#else /* Default to generating enum. */ - -#define START_RELOC_NUMBERS(name) enum name { -#define RELOC_NUMBER(name, number) name = number, -#define FAKE_RELOC(name, number) name = number, -#define EMPTY_RELOC(name) name, -#define END_RELOC_NUMBERS(name) name }; - -#endif - -#endif /* _RELOC_MACROS_H */ diff --git a/include/elf/rl78.h b/include/elf/rl78.h deleted file mode 100644 index b281d3a..0000000 --- a/include/elf/rl78.h +++ /dev/null @@ -1,120 +0,0 @@ -/* RL78 ELF support for BFD. - Copyright (C) 2008-2013 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_RL78_H -#define _ELF_RL78_H - -#include "elf/reloc-macros.h" - -/* Note that there are a few internal relocation types used by the - linker to do link-time relaxation. If you update this file, please - check elf32-rl78.c to see if any of the internal relocations need to - be, er, relocated. */ - -/* Preliminary relocations. */ -START_RELOC_NUMBERS (elf_rl78_reloc_type) - - RELOC_NUMBER (R_RL78_NONE, 0x00) - /* These are for data, and are bi-endian. */ - RELOC_NUMBER (R_RL78_DIR32, 0x01) /* Was: R_RL78_32. */ - RELOC_NUMBER (R_RL78_DIR24S, 0x02) /* Was: R_RL78_24. */ - RELOC_NUMBER (R_RL78_DIR16, 0x03) - RELOC_NUMBER (R_RL78_DIR16U, 0x04) /* Was: R_RL78_16_UNS. */ - RELOC_NUMBER (R_RL78_DIR16S, 0x05) /* Was: R_RL78_16. */ - RELOC_NUMBER (R_RL78_DIR8, 0x06) - RELOC_NUMBER (R_RL78_DIR8U, 0x07) /* Was: R_RL78_8_UNS. */ - RELOC_NUMBER (R_RL78_DIR8S, 0x08) /* Was: R_RL78_8. */ - - /* Signed pc-relative values. */ - RELOC_NUMBER (R_RL78_DIR24S_PCREL, 0x09) /* Was: R_RL78_24_PCREL. */ - RELOC_NUMBER (R_RL78_DIR16S_PCREL, 0x0a) /* Was: R_RL78_16_PCREL. */ - RELOC_NUMBER (R_RL78_DIR8S_PCREL, 0x0b) /* Was: R_RL78_8_PCREL. */ - - /* These are for fields in the instructions. */ - RELOC_NUMBER (R_RL78_DIR16UL, 0x0c) - RELOC_NUMBER (R_RL78_DIR16UW, 0x0d) - RELOC_NUMBER (R_RL78_DIR8UL, 0x0e) - RELOC_NUMBER (R_RL78_DIR8UW, 0x0f) - RELOC_NUMBER (R_RL78_DIR32_REV, 0x10) - RELOC_NUMBER (R_RL78_DIR16_REV, 0x11) - RELOC_NUMBER (R_RL78_DIR3U_PCREL, 0x12) - - /* These are extensions added by Red Hat. */ - RELOC_NUMBER (R_RL78_RH_RELAX, 0x2d) /* Marks opcodes suitable for linker relaxation. */ - RELOC_NUMBER (R_RL78_RH_SFR, 0x2e) /* SFR addresses - internal use only. */ - RELOC_NUMBER (R_RL78_RH_SADDR, 0x2f) /* SADDR addresses - internal use only.. */ - - /* These are for complex relocs. */ - RELOC_NUMBER (R_RL78_ABS32, 0x41) - RELOC_NUMBER (R_RL78_ABS24S, 0x42) - RELOC_NUMBER (R_RL78_ABS16, 0x43) - RELOC_NUMBER (R_RL78_ABS16U, 0x44) - RELOC_NUMBER (R_RL78_ABS16S, 0x45) - RELOC_NUMBER (R_RL78_ABS8, 0x46) - RELOC_NUMBER (R_RL78_ABS8U, 0x47) - RELOC_NUMBER (R_RL78_ABS8S, 0x48) - RELOC_NUMBER (R_RL78_ABS24S_PCREL, 0x49) - RELOC_NUMBER (R_RL78_ABS16S_PCREL, 0x4a) - RELOC_NUMBER (R_RL78_ABS8S_PCREL, 0x4b) - RELOC_NUMBER (R_RL78_ABS16UL, 0x4c) - RELOC_NUMBER (R_RL78_ABS16UW, 0x4d) - RELOC_NUMBER (R_RL78_ABS8UL, 0x4e) - RELOC_NUMBER (R_RL78_ABS8UW, 0x4f) - RELOC_NUMBER (R_RL78_ABS32_REV, 0x50) - RELOC_NUMBER (R_RL78_ABS16_REV, 0x51) - - RELOC_NUMBER (R_RL78_SYM, 0x80) - RELOC_NUMBER (R_RL78_OPneg, 0x81) - RELOC_NUMBER (R_RL78_OPadd, 0x82) - RELOC_NUMBER (R_RL78_OPsub, 0x83) - RELOC_NUMBER (R_RL78_OPmul, 0x84) - RELOC_NUMBER (R_RL78_OPdiv, 0x85) - RELOC_NUMBER (R_RL78_OPshla, 0x86) - RELOC_NUMBER (R_RL78_OPshra, 0x87) - RELOC_NUMBER (R_RL78_OPsctsize, 0x88) - RELOC_NUMBER (R_RL78_OPscttop, 0x8d) - RELOC_NUMBER (R_RL78_OPand, 0x90) - RELOC_NUMBER (R_RL78_OPor, 0x91) - RELOC_NUMBER (R_RL78_OPxor, 0x92) - RELOC_NUMBER (R_RL78_OPnot, 0x93) - RELOC_NUMBER (R_RL78_OPmod, 0x94) - RELOC_NUMBER (R_RL78_OPromtop, 0x95) - RELOC_NUMBER (R_RL78_OPramtop, 0x96) - -END_RELOC_NUMBERS (R_RL78_max) - -#define EF_RL78_CPU_RL78 0x00000079 /* FIXME: correct value? */ -#define EF_RL78_CPU_MASK 0x0000007F /* specific cpu bits. */ -#define EF_RL78_ALL_FLAGS (EF_RL78_CPU_MASK) - -/* Values for the e_flags field in the ELF header. */ -#define E_FLAG_RL78_64BIT_DOUBLES (1 << 0) -#define E_FLAG_RL78_DSP (1 << 1) /* Defined in the RL78 CPU Object file specification, but not explained. */ -#define E_FLAG_RL78_G10 (1 << 2) /* CPU is missing register banks 1-3, so uses different ABI. */ - -/* These define the addend field of R_RL78_RH_RELAX relocations. */ -#define RL78_RELAXA_BRA 0x00000010 /* Any type of branch (must be decoded). */ -#define RL78_RELAXA_ADDR16 0x00000020 /* addr16->sfr/saddr opportunity */ -#define RL78_RELAXA_RNUM 0x0000000f /* Number of associated relocations. */ -/* These mark the place where alignment is requested, and the place where the filler bytes end. */ -#define RL78_RELAXA_ALIGN 0x10000000 /* Start alignment; the remaining bits are the alignment value. */ -#define RL78_RELAXA_ELIGN 0x20000000 /* End alignment; the remaining bits are the alignment value. */ -#define RL78_RELAXA_ANUM 0x00ffffff /* Alignment amount, in bytes (i.e. .balign). */ - -#endif /* _ELF_RL78_H */ diff --git a/include/elf/rx.h b/include/elf/rx.h deleted file mode 100644 index c17128c..0000000 --- a/include/elf/rx.h +++ /dev/null @@ -1,141 +0,0 @@ -/* RX ELF support for BFD. - Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_RX_H -#define _ELF_RX_H - -#include "elf/reloc-macros.h" - -/* Note that there are a few internal relocation types used by the - linker to do link-time relaxation. If you update this file, please - check elf32-rx.c to see if any of the internal relocations need to - be, er, relocated. */ - -/* Preliminary relocations. */ -START_RELOC_NUMBERS (elf_rx_reloc_type) - - RELOC_NUMBER (R_RX_NONE, 0x00) - /* These are for data, and are bi-endian. */ - RELOC_NUMBER (R_RX_DIR32, 0x01) /* Was: R_RX_32. */ - RELOC_NUMBER (R_RX_DIR24S, 0x02) /* Was: R_RX_24. */ - RELOC_NUMBER (R_RX_DIR16, 0x03) - RELOC_NUMBER (R_RX_DIR16U, 0x04) /* Was: R_RX_16_UNS. */ - RELOC_NUMBER (R_RX_DIR16S, 0x05) /* Was: R_RX_16. */ - RELOC_NUMBER (R_RX_DIR8, 0x06) - RELOC_NUMBER (R_RX_DIR8U, 0x07) /* Was: R_RX_8_UNS. */ - RELOC_NUMBER (R_RX_DIR8S, 0x08) /* Was: R_RX_8. */ - - /* Signed pc-relative values. */ - RELOC_NUMBER (R_RX_DIR24S_PCREL, 0x09) /* Was: R_RX_24_PCREL. */ - RELOC_NUMBER (R_RX_DIR16S_PCREL, 0x0a) /* Was: R_RX_16_PCREL. */ - RELOC_NUMBER (R_RX_DIR8S_PCREL, 0x0b) /* Was: R_RX_8_PCREL. */ - - /* These are for fields in the instructions. */ - RELOC_NUMBER (R_RX_DIR16UL, 0x0c) - RELOC_NUMBER (R_RX_DIR16UW, 0x0d) - RELOC_NUMBER (R_RX_DIR8UL, 0x0e) - RELOC_NUMBER (R_RX_DIR8UW, 0x0f) - RELOC_NUMBER (R_RX_DIR32_REV, 0x10) - RELOC_NUMBER (R_RX_DIR16_REV, 0x11) - RELOC_NUMBER (R_RX_DIR3U_PCREL, 0x12) - - /* These are extensions added by Red Hat. */ - RELOC_NUMBER (R_RX_RH_3_PCREL, 0x20) /* Like R_RX_DIR8S_PCREL but only 3-bits. */ - RELOC_NUMBER (R_RX_RH_16_OP, 0x21) /* Like R_RX_DIR16 but for opcodes - always big endian. */ - RELOC_NUMBER (R_RX_RH_24_OP, 0x22) /* Like R_RX_DIR24S but for opcodes - always big endian. */ - RELOC_NUMBER (R_RX_RH_32_OP, 0x23) /* Like R_RX_DIR32 but for opcodes - always big endian. */ - RELOC_NUMBER (R_RX_RH_24_UNS, 0x24) /* Like R_RX_DIR24S but for unsigned values. */ - RELOC_NUMBER (R_RX_RH_8_NEG, 0x25) /* Like R_RX_DIR8 but -x is stored. */ - RELOC_NUMBER (R_RX_RH_16_NEG, 0x26) /* Like R_RX_DIR16 but -x is stored. */ - RELOC_NUMBER (R_RX_RH_24_NEG, 0x27) /* Like R_RX_DIR24S but -x is stored. */ - RELOC_NUMBER (R_RX_RH_32_NEG, 0x28) /* Like R_RX_DIR32 but -x is stored. */ - RELOC_NUMBER (R_RX_RH_DIFF, 0x29) /* Subtract from a previous relocation. */ - RELOC_NUMBER (R_RX_RH_GPRELB, 0x2a) /* Byte value, relative to __gp. */ - RELOC_NUMBER (R_RX_RH_GPRELW, 0x2b) /* Word value, relative to __gp. */ - RELOC_NUMBER (R_RX_RH_GPRELL, 0x2c) /* Long value, relative to __gp. */ - RELOC_NUMBER (R_RX_RH_RELAX, 0x2d) /* Marks opcodes suitable for linker relaxation. */ - - /* These are for complex relocs. */ - RELOC_NUMBER (R_RX_ABS32, 0x41) - RELOC_NUMBER (R_RX_ABS24S, 0x42) - RELOC_NUMBER (R_RX_ABS16, 0x43) - RELOC_NUMBER (R_RX_ABS16U, 0x44) - RELOC_NUMBER (R_RX_ABS16S, 0x45) - RELOC_NUMBER (R_RX_ABS8, 0x46) - RELOC_NUMBER (R_RX_ABS8U, 0x47) - RELOC_NUMBER (R_RX_ABS8S, 0x48) - RELOC_NUMBER (R_RX_ABS24S_PCREL, 0x49) - RELOC_NUMBER (R_RX_ABS16S_PCREL, 0x4a) - RELOC_NUMBER (R_RX_ABS8S_PCREL, 0x4b) - RELOC_NUMBER (R_RX_ABS16UL, 0x4c) - RELOC_NUMBER (R_RX_ABS16UW, 0x4d) - RELOC_NUMBER (R_RX_ABS8UL, 0x4e) - RELOC_NUMBER (R_RX_ABS8UW, 0x4f) - RELOC_NUMBER (R_RX_ABS32_REV, 0x50) - RELOC_NUMBER (R_RX_ABS16_REV, 0x51) - - RELOC_NUMBER (R_RX_SYM, 0x80) - RELOC_NUMBER (R_RX_OPneg, 0x81) - RELOC_NUMBER (R_RX_OPadd, 0x82) - RELOC_NUMBER (R_RX_OPsub, 0x83) - RELOC_NUMBER (R_RX_OPmul, 0x84) - RELOC_NUMBER (R_RX_OPdiv, 0x85) - RELOC_NUMBER (R_RX_OPshla, 0x86) - RELOC_NUMBER (R_RX_OPshra, 0x87) - RELOC_NUMBER (R_RX_OPsctsize, 0x88) - RELOC_NUMBER (R_RX_OPscttop, 0x8d) - RELOC_NUMBER (R_RX_OPand, 0x90) - RELOC_NUMBER (R_RX_OPor, 0x91) - RELOC_NUMBER (R_RX_OPxor, 0x92) - RELOC_NUMBER (R_RX_OPnot, 0x93) - RELOC_NUMBER (R_RX_OPmod, 0x94) - RELOC_NUMBER (R_RX_OPromtop, 0x95) - RELOC_NUMBER (R_RX_OPramtop, 0x96) - -END_RELOC_NUMBERS (R_RX_max) - -#define EF_RX_CPU_RX 0x00000079 /* FIXME: this collides with the E_FLAG_RX_... values below. */ -#define EF_RX_CPU_MASK 0x0000007F /* specific cpu bits. */ -#define EF_RX_ALL_FLAGS (EF_RX_CPU_MASK) - -/* Values for the e_flags field in the ELF header. */ -#define E_FLAG_RX_64BIT_DOUBLES (1 << 0) -#define E_FLAG_RX_DSP (1 << 1) /* Defined in the RX CPU Object file specification, but not explained. */ -#define E_FLAG_RX_PID (1 << 2) /* Unofficial - DJ */ -#define E_FLAG_RX_ABI (1 << 3) /* Binary passes stacked arguments using natural alignment. Unofficial - NC. */ - -#define E_FLAG_RX_SINSNS_SET (1 << 6) /* Set if bit-5 is significant. */ -#define E_FLAG_RX_SINSNS_YES (1 << 7) /* Set if string instructions are used in the binary. */ -#define E_FLAG_RX_SINSNS_NO 0 /* Bit-5 if this binary must not be linked with a string instruction using binary. */ -#define E_FLAG_RX_SINSNS_MASK (3 << 6) /* Mask of bits used to determine string instruction use. */ - -/* These define the addend field of R_RX_RH_RELAX relocations. */ -#define RX_RELAXA_IMM6 0x00000010 /* Imm8/16/24/32 at bit offset 6. */ -#define RX_RELAXA_IMM12 0x00000020 /* Imm8/16/24/32 at bit offset 12. */ -#define RX_RELAXA_DSP4 0x00000040 /* Dsp0/8/16 at bit offset 4. */ -#define RX_RELAXA_DSP6 0x00000080 /* Dsp0/8/16 at bit offset 6. */ -#define RX_RELAXA_DSP14 0x00000100 /* Dsp0/8/16 at bit offset 14. */ -#define RX_RELAXA_BRA 0x00000200 /* Any type of branch (must be decoded). */ -#define RX_RELAXA_RNUM 0x0000000f /* Number of associated relocations. */ -/* These mark the place where alignment is requested, and the place where the filler bytes end. */ -#define RX_RELAXA_ALIGN 0x10000000 /* Start alignment; the remaining bits are the alignment value. */ -#define RX_RELAXA_ELIGN 0x20000000 /* End alignment; the remaining bits are the alignment value. */ -#define RX_RELAXA_ANUM 0x00ffffff /* Alignment amount, in bytes (i.e. .balign). */ - -#endif /* _ELF_RX_H */ diff --git a/include/elf/s390.h b/include/elf/s390.h deleted file mode 100644 index 9128f86..0000000 --- a/include/elf/s390.h +++ /dev/null @@ -1,134 +0,0 @@ -/* 390 ELF support for BFD. - Copyright 2000, 2001, 2003, 2010 Free Software Foundation, Inc. - Contributed by Carl B. Pedersen and Martin Schwidefsky. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -#ifndef _ELF_390_H -#define _ELF_390_H - -/* Processor specific flags for the ELF header e_flags field. */ - -/* Symbol types. */ - -#define STACK_REG 15 /* Global Stack reg */ -#define BACKL_REG 14 /* Global Backlink reg */ -#define BASE_REG 13 /* Global Base reg */ -#define GOT_REG 12 /* Holds addr of GOT */ - -#include "elf/reloc-macros.h" - -/* Processor specific flags for the ELF header e_flags field. */ - -#define EF_S390_HIGH_GPRS 0x00000001 - -/* Relocation types. */ - -START_RELOC_NUMBERS (elf_s390_reloc_type) - RELOC_NUMBER (R_390_NONE, 0) /* No reloc. */ - RELOC_NUMBER (R_390_8, 1) /* Direct 8 bit. */ - RELOC_NUMBER (R_390_12, 2) /* Direct 12 bit. */ - RELOC_NUMBER (R_390_16, 3) /* Direct 16 bit. */ - RELOC_NUMBER (R_390_32, 4) /* Direct 32 bit. */ - RELOC_NUMBER (R_390_PC32, 5) /* PC relative 32 bit. */ - RELOC_NUMBER (R_390_GOT12, 6) /* 12 bit GOT offset. */ - RELOC_NUMBER (R_390_GOT32, 7) /* 32 bit GOT offset. */ - RELOC_NUMBER (R_390_PLT32, 8) /* 32 bit PC relative PLT address. */ - RELOC_NUMBER (R_390_COPY, 9) /* Copy symbol at runtime. */ - RELOC_NUMBER (R_390_GLOB_DAT, 10) /* Create GOT entry. */ - RELOC_NUMBER (R_390_JMP_SLOT, 11) /* Create PLT entry. */ - RELOC_NUMBER (R_390_RELATIVE, 12) /* Adjust by program base. */ - RELOC_NUMBER (R_390_GOTOFF32, 13) /* 32 bit offset to GOT. */ - RELOC_NUMBER (R_390_GOTPC, 14) /* 32 bit PC relative offset to GOT. */ - RELOC_NUMBER (R_390_GOT16, 15) /* 16 bit GOT offset. */ - RELOC_NUMBER (R_390_PC16, 16) /* PC relative 16 bit. */ - RELOC_NUMBER (R_390_PC12DBL, 62) /* PC relative 12 bit shifted by 1. */ - RELOC_NUMBER (R_390_PLT12DBL, 63) /* 12 bit PC rel. PLT shifted by 1. */ - RELOC_NUMBER (R_390_PC16DBL, 17) /* PC relative 16 bit shifted by 1. */ - RELOC_NUMBER (R_390_PLT16DBL, 18) /* 16 bit PC rel. PLT shifted by 1. */ - RELOC_NUMBER (R_390_PC24DBL, 64) /* PC relative 24 bit shifted by 1. */ - RELOC_NUMBER (R_390_PLT24DBL, 65) /* 24 bit PC rel. PLT shifted by 1. */ - RELOC_NUMBER (R_390_PC32DBL, 19) /* PC relative 32 bit shifted by 1. */ - RELOC_NUMBER (R_390_PLT32DBL, 20) /* 32 bit PC rel. PLT shifted by 1. */ - RELOC_NUMBER (R_390_GOTPCDBL, 21) /* 32 bit PC rel. GOT shifted by 1. */ - RELOC_NUMBER (R_390_64, 22) /* Direct 64 bit. */ - RELOC_NUMBER (R_390_PC64, 23) /* PC relative 64 bit. */ - RELOC_NUMBER (R_390_GOT64, 24) /* 64 bit GOT offset. */ - RELOC_NUMBER (R_390_PLT64, 25) /* 64 bit PC relative PLT address. */ - RELOC_NUMBER (R_390_GOTENT, 26) /* 32 bit PC rel. to GOT entry >> 1. */ - RELOC_NUMBER (R_390_GOTOFF16, 27) /* 16 bit offset to GOT. */ - RELOC_NUMBER (R_390_GOTOFF64, 28) /* 64 bit offset to GOT. */ - RELOC_NUMBER (R_390_GOTPLT12, 29) /* 12 bit offset to jump slot. */ - RELOC_NUMBER (R_390_GOTPLT16, 30) /* 16 bit offset to jump slot. */ - RELOC_NUMBER (R_390_GOTPLT32, 31) /* 32 bit offset to jump slot. */ - RELOC_NUMBER (R_390_GOTPLT64, 32) /* 64 bit offset to jump slot. */ - RELOC_NUMBER (R_390_GOTPLTENT, 33) /* 32 bit rel. offset to jump slot. */ - RELOC_NUMBER (R_390_PLTOFF16, 34) /* 16 bit offset from GOT to PLT. */ - RELOC_NUMBER (R_390_PLTOFF32, 35) /* 32 bit offset from GOT to PLT. */ - RELOC_NUMBER (R_390_PLTOFF64, 36) /* 16 bit offset from GOT to PLT. */ - RELOC_NUMBER (R_390_TLS_LOAD, 37) /* Tag for load insn in TLS code. */ - RELOC_NUMBER (R_390_TLS_GDCALL, 38) /* Tag for function call in general - dynamic TLS code. */ - RELOC_NUMBER (R_390_TLS_LDCALL, 39) /* Tag for function call in local - dynamic TLS code. */ - RELOC_NUMBER (R_390_TLS_GD32, 40) /* Direct 32 bit for general dynamic - thread local data. */ - RELOC_NUMBER (R_390_TLS_GD64, 41) /* Direct 64 bit for general dynamic - thread local data. */ - RELOC_NUMBER (R_390_TLS_GOTIE12, 42)/* 12 bit GOT offset for static TLS - block offset. */ - RELOC_NUMBER (R_390_TLS_GOTIE32, 43)/* 32 bit GOT offset for static TLS - block offset. */ - RELOC_NUMBER (R_390_TLS_GOTIE64, 44)/* 64 bit GOT offset for static TLS - block offset. */ - RELOC_NUMBER (R_390_TLS_LDM32, 45) /* Direct 32 bit for local dynamic - thread local data in LD code. */ - RELOC_NUMBER (R_390_TLS_LDM64, 46) /* Direct 64 bit for local dynamic - thread local data in LD code. */ - RELOC_NUMBER (R_390_TLS_IE32, 47) /* 32 bit address of GOT entry for - negated static TLS block offset. */ - RELOC_NUMBER (R_390_TLS_IE64, 48) /* 64 bit address of GOT entry for - negated static TLS block offset. */ - RELOC_NUMBER (R_390_TLS_IEENT, 49) /* 32 bit rel. offset to GOT entry for - negated static TLS block offset. */ - RELOC_NUMBER (R_390_TLS_LE32, 50) /* 32 bit negated offset relative to - static TLS block. */ - RELOC_NUMBER (R_390_TLS_LE64, 51) /* 64 bit negated offset relative to - static TLS block. */ - RELOC_NUMBER (R_390_TLS_LDO32, 52) /* 32 bit offset relative to TLS - block. */ - RELOC_NUMBER (R_390_TLS_LDO64, 53) /* 64 bit offset relative to TLS - block. */ - RELOC_NUMBER (R_390_TLS_DTPMOD, 54) /* ID of module containing symbol. */ - RELOC_NUMBER (R_390_TLS_DTPOFF, 55) /* Offset in TLS block. */ - RELOC_NUMBER (R_390_TLS_TPOFF, 56) /* Negate offset in static TLS - block. */ - RELOC_NUMBER (R_390_20, 57) /* Direct 20 bit. */ - RELOC_NUMBER (R_390_GOT20, 58) /* 20 bit GOT offset. */ - RELOC_NUMBER (R_390_GOTPLT20, 59) /* 20 bit offset to jump slot. */ - RELOC_NUMBER (R_390_TLS_GOTIE20, 60)/* 20 bit GOT offset for statis TLS - block offset. */ - RELOC_NUMBER (R_390_IRELATIVE, 61) /* IFUNC relocation. */ - /* These are GNU extensions to enable C++ vtable garbage collection. */ - RELOC_NUMBER (R_390_GNU_VTINHERIT, 250) - RELOC_NUMBER (R_390_GNU_VTENTRY, 251) -END_RELOC_NUMBERS (R_390_max) - -#endif /* _ELF_390_H */ - - diff --git a/include/elf/score.h b/include/elf/score.h deleted file mode 100644 index 8d9c026..0000000 --- a/include/elf/score.h +++ /dev/null @@ -1,130 +0,0 @@ -/* Score ELF support for BFD. - Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc. - Contributed by - Brain.lin (brain.lin@sunplusct.com) - Mei Ligang (ligang@sunnorth.com.cn) - Pei-Lin Tsai (pltsai@sunplus.com) - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_SCORE_H -#define _ELF_SCORE_H - -#include "elf/reloc-macros.h" - -#define SCORE_SIMULATOR_ACTIVE 1 -#define OPC_PTMASK 0xc0000000 /* Parity-bit Mask. */ -#define OPC16_PTMASK 0x00008000 -/* The parity-bit denotes. */ -#define OPC_32 0xc0000000 /* Denotes 32b instruction, (default). */ -#define OPC_16 0x00000000 /* Denotes 16b instruction. */ -#define OPC_PE 0x8000 /* Denotes parallel-execution instructions. */ -#define GP_DISP_LABEL "_gp_disp" - -/* Processor specific flags for the ELF header e_flags field: */ -#define EF_SCORE_MACH 0xffff0000 -#define EF_OMIT_PIC_FIXDD 0x0fff0000 -#define E_SCORE_MACH_SCORE3 0x00030000 -#define E_SCORE_MACH_SCORE7 0x00070000 - -/* File contains position independent code. */ -#define EF_SCORE_PIC 0x80000000 - -/* Fix data dependency. */ -#define EF_SCORE_FIXDEP 0x40000000 - -/* Defined and allocated common symbol. Value is virtual address. If - relocated, alignment must be preserved. */ -#define SHN_SCORE_TEXT (SHN_LORESERVE + 1) -#define SHN_SCORE_DATA (SHN_LORESERVE + 2) -/* Small common symbol. */ -#define SHN_SCORE_SCOMMON (SHN_LORESERVE + 3) - -/* Processor specific section flags. */ - -/* This section must be in the global data area. */ -#define SHF_SCORE_GPREL 0x10000000 - -/* This section should be merged. */ -#define SHF_SCORE_MERGE 0x20000000 - -/* This section contains address data of size implied by section - element size. */ -#define SHF_SCORE_ADDR 0x40000000 - -/* This section contains string data. */ -#define SHF_SCORE_STRING 0x80000000 - -/* This section may not be stripped. */ -#define SHF_SCORE_NOSTRIP 0x08000000 - -/* This section is local to threads. */ -#define SHF_SCORE_LOCAL 0x04000000 - -/* Linker should generate implicit weak names for this section. */ -#define SHF_SCORE_NAMES 0x02000000 - -/* Section contais text/data which may be replicated in other sections. - Linker should retain only one copy. */ -#define SHF_SCORE_NODUPES 0x01000000 - -/* Processor specific dynamic array tags. */ - -/* Base address of the segment. */ -#define DT_SCORE_BASE_ADDRESS 0x70000001 -/* Number of local global offset table entries. */ -#define DT_SCORE_LOCAL_GOTNO 0x70000002 -/* Number of entries in the .dynsym section. */ -#define DT_SCORE_SYMTABNO 0x70000003 -/* Index of first dynamic symbol in global offset table. */ -#define DT_SCORE_GOTSYM 0x70000004 -/* Index of first external dynamic symbol not referenced locally. */ -#define DT_SCORE_UNREFEXTNO 0x70000005 -/* Number of page table entries in global offset table. */ -#define DT_SCORE_HIPAGENO 0x70000006 - - -/* Processor specific section types. */ - - -/* Relocation types. */ -START_RELOC_NUMBERS (elf_score_reloc_type) - RELOC_NUMBER (R_SCORE_NONE, 0) - RELOC_NUMBER (R_SCORE_HI16, 1) - RELOC_NUMBER (R_SCORE_LO16, 2) - RELOC_NUMBER (R_SCORE_BCMP, 3) - RELOC_NUMBER (R_SCORE_24, 4) - RELOC_NUMBER (R_SCORE_PC19, 5) - RELOC_NUMBER (R_SCORE16_11, 6) - RELOC_NUMBER (R_SCORE16_PC8, 7) - RELOC_NUMBER (R_SCORE_ABS32, 8) - RELOC_NUMBER (R_SCORE_ABS16, 9) - RELOC_NUMBER (R_SCORE_DUMMY2, 10) - RELOC_NUMBER (R_SCORE_GP15, 11) - RELOC_NUMBER (R_SCORE_GNU_VTINHERIT, 12) - RELOC_NUMBER (R_SCORE_GNU_VTENTRY, 13) - RELOC_NUMBER (R_SCORE_GOT15, 14) - RELOC_NUMBER (R_SCORE_GOT_LO16, 15) - RELOC_NUMBER (R_SCORE_CALL15, 16) - RELOC_NUMBER (R_SCORE_GPREL32, 17) - RELOC_NUMBER (R_SCORE_REL32, 18) - RELOC_NUMBER (R_SCORE_DUMMY_HI16, 19) - RELOC_NUMBER (R_SCORE_IMM30, 20) - RELOC_NUMBER (R_SCORE_IMM32, 21) -END_RELOC_NUMBERS (R_SCORE_max) - -#endif /* _ELF_SCORE_H */ diff --git a/include/elf/sh.h b/include/elf/sh.h deleted file mode 100644 index c2bd50d..0000000 --- a/include/elf/sh.h +++ /dev/null @@ -1,250 +0,0 @@ -/* SH ELF support for BFD. - Copyright 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2010 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_SH_H -#define _ELF_SH_H - -/* Processor specific flags for the ELF header e_flags field. */ - -#define EF_SH_MACH_MASK 0x1f -#define EF_SH_UNKNOWN 0 /* For backwards compatibility. */ -#define EF_SH1 1 -#define EF_SH2 2 -#define EF_SH3 3 -#define EF_SH_DSP 4 -#define EF_SH3_DSP 5 -#define EF_SH4AL_DSP 6 -#define EF_SH3E 8 -#define EF_SH4 9 -#define EF_SH2E 11 -#define EF_SH4A 12 -#define EF_SH2A 13 - -#define EF_SH4_NOFPU 16 -#define EF_SH4A_NOFPU 17 -#define EF_SH4_NOMMU_NOFPU 18 -#define EF_SH2A_NOFPU 19 -#define EF_SH3_NOMMU 20 - -#define EF_SH2A_SH4_NOFPU 21 -#define EF_SH2A_SH3_NOFPU 22 -#define EF_SH2A_SH4 23 -#define EF_SH2A_SH3E 24 - -/* This one can only mix in objects from other EF_SH5 objects. */ -#define EF_SH5 10 - -/* Define the mapping from ELF to bfd mach numbers. - bfd_mach_* are defined in bfd_in2.h (generated from - archures.c). */ -#define EF_SH_BFD_TABLE \ -/* EF_SH_UNKNOWN */ bfd_mach_sh , \ -/* EF_SH1 */ bfd_mach_sh , \ -/* EF_SH2 */ bfd_mach_sh2 , \ -/* EF_SH3 */ bfd_mach_sh3 , \ -/* EF_SH_DSP */ bfd_mach_sh_dsp , \ -/* EF_SH3_DSP */ bfd_mach_sh3_dsp , \ -/* EF_SHAL_DSP */ bfd_mach_sh4al_dsp , \ -/* 7 */ 0, \ -/* EF_SH3E */ bfd_mach_sh3e , \ -/* EF_SH4 */ bfd_mach_sh4 , \ -/* EF_SH5 */ 0, \ -/* EF_SH2E */ bfd_mach_sh2e , \ -/* EF_SH4A */ bfd_mach_sh4a , \ -/* EF_SH2A */ bfd_mach_sh2a , \ -/* 14, 15 */ 0, 0, \ -/* EF_SH4_NOFPU */ bfd_mach_sh4_nofpu , \ -/* EF_SH4A_NOFPU */ bfd_mach_sh4a_nofpu , \ -/* EF_SH4_NOMMU_NOFPU */ bfd_mach_sh4_nommu_nofpu, \ -/* EF_SH2A_NOFPU */ bfd_mach_sh2a_nofpu , \ -/* EF_SH3_NOMMU */ bfd_mach_sh3_nommu , \ -/* EF_SH2A_SH4_NOFPU */ bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu, \ -/* EF_SH2A_SH3_NOFPU */ bfd_mach_sh2a_nofpu_or_sh3_nommu, \ -/* EF_SH2A_SH4 */ bfd_mach_sh2a_or_sh4 , \ -/* EF_SH2A_SH3E */ bfd_mach_sh2a_or_sh3e - -/* Convert arch_sh* into EF_SH*. */ -int sh_find_elf_flags (unsigned int arch_set); - -/* Convert bfd_mach_* into EF_SH*. */ -int sh_elf_get_flags_from_mach (unsigned long mach); - -/* Other e_flags bits. */ - -#define EF_SH_PIC 0x100 /* Segments of an FDPIC binary may - be relocated independently. */ -#define EF_SH_FDPIC 0x8000 /* Uses the FDPIC ABI. */ - -/* Flags for the st_other symbol field. - Keep away from the STV_ visibility flags (bit 0..1). */ - -/* A reference to this symbol should by default add 1. */ -#define STO_SH5_ISA32 (1 << 2) - -/* Section contains only SHmedia code (no SHcompact code). */ -#define SHF_SH5_ISA32 0x40000000 - -/* Section contains both SHmedia and SHcompact code, and possibly also - constants. */ -#define SHF_SH5_ISA32_MIXED 0x20000000 - -/* If applied to a .cranges section, marks that the section is sorted by - increasing cr_addr values. */ -#define SHT_SH5_CR_SORTED 0x80000001 - -/* Symbol should be handled as DataLabel (attached to global SHN_UNDEF - symbols). */ -#define STT_DATALABEL STT_LOPROC - -#include "elf/reloc-macros.h" - -/* Relocations. */ -/* Relocations 10-32 and 128-255 are GNU extensions. - 25..32 and 10 are used for relaxation. */ -START_RELOC_NUMBERS (elf_sh_reloc_type) - RELOC_NUMBER (R_SH_NONE, 0) - RELOC_NUMBER (R_SH_DIR32, 1) - RELOC_NUMBER (R_SH_REL32, 2) - RELOC_NUMBER (R_SH_DIR8WPN, 3) - RELOC_NUMBER (R_SH_IND12W, 4) - RELOC_NUMBER (R_SH_DIR8WPL, 5) - RELOC_NUMBER (R_SH_DIR8WPZ, 6) - RELOC_NUMBER (R_SH_DIR8BP, 7) - RELOC_NUMBER (R_SH_DIR8W, 8) - RELOC_NUMBER (R_SH_DIR8L, 9) - - RELOC_NUMBER (R_SH_LOOP_START, 10) - RELOC_NUMBER (R_SH_LOOP_END, 11) - - FAKE_RELOC (R_SH_FIRST_INVALID_RELOC, 12) - FAKE_RELOC (R_SH_LAST_INVALID_RELOC, 21) - - RELOC_NUMBER (R_SH_GNU_VTINHERIT, 22) - RELOC_NUMBER (R_SH_GNU_VTENTRY, 23) - RELOC_NUMBER (R_SH_SWITCH8, 24) - RELOC_NUMBER (R_SH_SWITCH16, 25) - RELOC_NUMBER (R_SH_SWITCH32, 26) - RELOC_NUMBER (R_SH_USES, 27) - RELOC_NUMBER (R_SH_COUNT, 28) - RELOC_NUMBER (R_SH_ALIGN, 29) - RELOC_NUMBER (R_SH_CODE, 30) - RELOC_NUMBER (R_SH_DATA, 31) - RELOC_NUMBER (R_SH_LABEL, 32) - - RELOC_NUMBER (R_SH_DIR16, 33) - RELOC_NUMBER (R_SH_DIR8, 34) - RELOC_NUMBER (R_SH_DIR8UL, 35) - RELOC_NUMBER (R_SH_DIR8UW, 36) - RELOC_NUMBER (R_SH_DIR8U, 37) - RELOC_NUMBER (R_SH_DIR8SW, 38) - RELOC_NUMBER (R_SH_DIR8S, 39) - RELOC_NUMBER (R_SH_DIR4UL, 40) - RELOC_NUMBER (R_SH_DIR4UW, 41) - RELOC_NUMBER (R_SH_DIR4U, 42) - RELOC_NUMBER (R_SH_PSHA, 43) - RELOC_NUMBER (R_SH_PSHL, 44) - RELOC_NUMBER (R_SH_DIR5U, 45) - RELOC_NUMBER (R_SH_DIR6U, 46) - RELOC_NUMBER (R_SH_DIR6S, 47) - RELOC_NUMBER (R_SH_DIR10S, 48) - RELOC_NUMBER (R_SH_DIR10SW, 49) - RELOC_NUMBER (R_SH_DIR10SL, 50) - RELOC_NUMBER (R_SH_DIR10SQ, 51) - FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_2, 52) - FAKE_RELOC (R_SH_LAST_INVALID_RELOC_2, 52) - RELOC_NUMBER (R_SH_DIR16S, 53) - FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_3, 54) - FAKE_RELOC (R_SH_LAST_INVALID_RELOC_3, 143) - RELOC_NUMBER (R_SH_TLS_GD_32, 144) - RELOC_NUMBER (R_SH_TLS_LD_32, 145) - RELOC_NUMBER (R_SH_TLS_LDO_32, 146) - RELOC_NUMBER (R_SH_TLS_IE_32, 147) - RELOC_NUMBER (R_SH_TLS_LE_32, 148) - RELOC_NUMBER (R_SH_TLS_DTPMOD32, 149) - RELOC_NUMBER (R_SH_TLS_DTPOFF32, 150) - RELOC_NUMBER (R_SH_TLS_TPOFF32, 151) - FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_4, 152) - FAKE_RELOC (R_SH_LAST_INVALID_RELOC_4, 159) - RELOC_NUMBER (R_SH_GOT32, 160) - RELOC_NUMBER (R_SH_PLT32, 161) - RELOC_NUMBER (R_SH_COPY, 162) - RELOC_NUMBER (R_SH_GLOB_DAT, 163) - RELOC_NUMBER (R_SH_JMP_SLOT, 164) - RELOC_NUMBER (R_SH_RELATIVE, 165) - RELOC_NUMBER (R_SH_GOTOFF, 166) - RELOC_NUMBER (R_SH_GOTPC, 167) - RELOC_NUMBER (R_SH_GOTPLT32, 168) - RELOC_NUMBER (R_SH_GOT_LOW16, 169) - RELOC_NUMBER (R_SH_GOT_MEDLOW16, 170) - RELOC_NUMBER (R_SH_GOT_MEDHI16, 171) - RELOC_NUMBER (R_SH_GOT_HI16, 172) - RELOC_NUMBER (R_SH_GOTPLT_LOW16, 173) - RELOC_NUMBER (R_SH_GOTPLT_MEDLOW16, 174) - RELOC_NUMBER (R_SH_GOTPLT_MEDHI16, 175) - RELOC_NUMBER (R_SH_GOTPLT_HI16, 176) - RELOC_NUMBER (R_SH_PLT_LOW16, 177) - RELOC_NUMBER (R_SH_PLT_MEDLOW16, 178) - RELOC_NUMBER (R_SH_PLT_MEDHI16, 179) - RELOC_NUMBER (R_SH_PLT_HI16, 180) - RELOC_NUMBER (R_SH_GOTOFF_LOW16, 181) - RELOC_NUMBER (R_SH_GOTOFF_MEDLOW16, 182) - RELOC_NUMBER (R_SH_GOTOFF_MEDHI16, 183) - RELOC_NUMBER (R_SH_GOTOFF_HI16, 184) - RELOC_NUMBER (R_SH_GOTPC_LOW16, 185) - RELOC_NUMBER (R_SH_GOTPC_MEDLOW16, 186) - RELOC_NUMBER (R_SH_GOTPC_MEDHI16, 187) - RELOC_NUMBER (R_SH_GOTPC_HI16, 188) - RELOC_NUMBER (R_SH_GOT10BY4, 189) - RELOC_NUMBER (R_SH_GOTPLT10BY4, 190) - RELOC_NUMBER (R_SH_GOT10BY8, 191) - RELOC_NUMBER (R_SH_GOTPLT10BY8, 192) - RELOC_NUMBER (R_SH_COPY64, 193) - RELOC_NUMBER (R_SH_GLOB_DAT64, 194) - RELOC_NUMBER (R_SH_JMP_SLOT64, 195) - RELOC_NUMBER (R_SH_RELATIVE64, 196) - FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_5, 197) - FAKE_RELOC (R_SH_LAST_INVALID_RELOC_5, 200) - RELOC_NUMBER (R_SH_GOT20, 201) - RELOC_NUMBER (R_SH_GOTOFF20, 202) - RELOC_NUMBER (R_SH_GOTFUNCDESC, 203) - RELOC_NUMBER (R_SH_GOTFUNCDESC20, 204) - RELOC_NUMBER (R_SH_GOTOFFFUNCDESC, 205) - RELOC_NUMBER (R_SH_GOTOFFFUNCDESC20, 206) - RELOC_NUMBER (R_SH_FUNCDESC, 207) - RELOC_NUMBER (R_SH_FUNCDESC_VALUE, 208) - FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_6, 209) - FAKE_RELOC (R_SH_LAST_INVALID_RELOC_6, 241) - RELOC_NUMBER (R_SH_SHMEDIA_CODE, 242) - RELOC_NUMBER (R_SH_PT_16, 243) - RELOC_NUMBER (R_SH_IMMS16, 244) - RELOC_NUMBER (R_SH_IMMU16, 245) - RELOC_NUMBER (R_SH_IMM_LOW16, 246) - RELOC_NUMBER (R_SH_IMM_LOW16_PCREL, 247) - RELOC_NUMBER (R_SH_IMM_MEDLOW16, 248) - RELOC_NUMBER (R_SH_IMM_MEDLOW16_PCREL, 249) - RELOC_NUMBER (R_SH_IMM_MEDHI16, 250) - RELOC_NUMBER (R_SH_IMM_MEDHI16_PCREL, 251) - RELOC_NUMBER (R_SH_IMM_HI16, 252) - RELOC_NUMBER (R_SH_IMM_HI16_PCREL, 253) - RELOC_NUMBER (R_SH_64, 254) - RELOC_NUMBER (R_SH_64_PCREL, 255) -END_RELOC_NUMBERS (R_SH_max) - -#endif diff --git a/include/elf/sparc.h b/include/elf/sparc.h deleted file mode 100644 index d182f4d..0000000 --- a/include/elf/sparc.h +++ /dev/null @@ -1,231 +0,0 @@ -/* SPARC ELF support for BFD. - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2008, 2010, - 2011 - Free Software Foundation, Inc. - By Doug Evans, Cygnus Support, . - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _ELF_SPARC_H -#define _ELF_SPARC_H - -/* Processor specific flags for the ELF header e_flags field. */ - -/* These are defined by Sun. */ - -#define EF_SPARC_32PLUS_MASK 0xffff00 /* bits indicating V8+ type */ -#define EF_SPARC_32PLUS 0x000100 /* generic V8+ features */ -#define EF_SPARC_SUN_US1 0x000200 /* Sun UltraSPARC1 extensions */ -#define EF_SPARC_HAL_R1 0x000400 /* HAL R1 extensions */ -#define EF_SPARC_SUN_US3 0x000800 /* Sun UltraSPARCIII extensions */ - -#define EF_SPARC_LEDATA 0x800000 /* little endian data */ - -/* This name is used in the V9 ABI. */ -#define EF_SPARC_EXT_MASK 0xffff00 /* reserved for vendor extensions */ - -/* V9 memory models */ -#define EF_SPARCV9_MM 0x3 /* memory model mask */ -#define EF_SPARCV9_TSO 0x0 /* total store ordering */ -#define EF_SPARCV9_PSO 0x1 /* partial store ordering */ -#define EF_SPARCV9_RMO 0x2 /* relaxed store ordering */ - -/* Section indices. */ - -#define SHN_BEFORE SHN_LORESERVE /* Used with SHF_ORDERED and... */ -#define SHN_AFTER (SHN_LORESERVE + 1) /* SHF_LINK_ORDER section flags. */ - -/* Section flags. */ - -#define SHF_ORDERED 0x40000000 /* treat sh_link,sh_info specially */ - -/* Symbol types. */ - -#define STT_REGISTER 13 /* global reg reserved to app. */ - -#include "elf/reloc-macros.h" - -/* Relocation types. */ -START_RELOC_NUMBERS (elf_sparc_reloc_type) - RELOC_NUMBER (R_SPARC_NONE, 0) - RELOC_NUMBER (R_SPARC_8, 1) - RELOC_NUMBER (R_SPARC_16, 2) - RELOC_NUMBER (R_SPARC_32, 3) - RELOC_NUMBER (R_SPARC_DISP8, 4) - RELOC_NUMBER (R_SPARC_DISP16, 5) - RELOC_NUMBER (R_SPARC_DISP32, 6) - RELOC_NUMBER (R_SPARC_WDISP30, 7) - RELOC_NUMBER (R_SPARC_WDISP22, 8) - RELOC_NUMBER (R_SPARC_HI22, 9) - RELOC_NUMBER (R_SPARC_22, 10) - RELOC_NUMBER (R_SPARC_13, 11) - RELOC_NUMBER (R_SPARC_LO10, 12) - RELOC_NUMBER (R_SPARC_GOT10, 13) - RELOC_NUMBER (R_SPARC_GOT13, 14) - RELOC_NUMBER (R_SPARC_GOT22, 15) - RELOC_NUMBER (R_SPARC_PC10, 16) - RELOC_NUMBER (R_SPARC_PC22, 17) - RELOC_NUMBER (R_SPARC_WPLT30, 18) - RELOC_NUMBER (R_SPARC_COPY, 19) - RELOC_NUMBER (R_SPARC_GLOB_DAT, 20) - RELOC_NUMBER (R_SPARC_JMP_SLOT, 21) - RELOC_NUMBER (R_SPARC_RELATIVE, 22) - RELOC_NUMBER (R_SPARC_UA32, 23) - - /* ??? These 6 relocs are new but not currently used. For binary - compatibility in the sparc64-elf toolchain, we leave them out. - A non-binary upward compatible change is expected for sparc64-elf. */ -#ifndef SPARC64_OLD_RELOCS - /* ??? New relocs on the UltraSPARC. Not sure what they're for yet. */ - RELOC_NUMBER (R_SPARC_PLT32, 24) - RELOC_NUMBER (R_SPARC_HIPLT22, 25) - RELOC_NUMBER (R_SPARC_LOPLT10, 26) - RELOC_NUMBER (R_SPARC_PCPLT32, 27) - RELOC_NUMBER (R_SPARC_PCPLT22, 28) - RELOC_NUMBER (R_SPARC_PCPLT10, 29) -#endif - - /* v9 relocs */ - RELOC_NUMBER (R_SPARC_10, 30) - RELOC_NUMBER (R_SPARC_11, 31) - RELOC_NUMBER (R_SPARC_64, 32) - RELOC_NUMBER (R_SPARC_OLO10, 33) - RELOC_NUMBER (R_SPARC_HH22, 34) - RELOC_NUMBER (R_SPARC_HM10, 35) - RELOC_NUMBER (R_SPARC_LM22, 36) - RELOC_NUMBER (R_SPARC_PC_HH22, 37) - RELOC_NUMBER (R_SPARC_PC_HM10, 38) - RELOC_NUMBER (R_SPARC_PC_LM22, 39) - RELOC_NUMBER (R_SPARC_WDISP16, 40) - RELOC_NUMBER (R_SPARC_WDISP19, 41) - RELOC_NUMBER (R_SPARC_UNUSED_42, 42) - RELOC_NUMBER (R_SPARC_7, 43) - RELOC_NUMBER (R_SPARC_5, 44) - RELOC_NUMBER (R_SPARC_6, 45) - RELOC_NUMBER (R_SPARC_DISP64, 46) - RELOC_NUMBER (R_SPARC_PLT64, 47) - RELOC_NUMBER (R_SPARC_HIX22, 48) - RELOC_NUMBER (R_SPARC_LOX10, 49) - RELOC_NUMBER (R_SPARC_H44, 50) - RELOC_NUMBER (R_SPARC_M44, 51) - RELOC_NUMBER (R_SPARC_L44, 52) - RELOC_NUMBER (R_SPARC_REGISTER, 53) - RELOC_NUMBER (R_SPARC_UA64, 54) - RELOC_NUMBER (R_SPARC_UA16, 55) - - RELOC_NUMBER (R_SPARC_TLS_GD_HI22, 56) - RELOC_NUMBER (R_SPARC_TLS_GD_LO10, 57) - RELOC_NUMBER (R_SPARC_TLS_GD_ADD, 58) - RELOC_NUMBER (R_SPARC_TLS_GD_CALL, 59) - RELOC_NUMBER (R_SPARC_TLS_LDM_HI22, 60) - RELOC_NUMBER (R_SPARC_TLS_LDM_LO10, 61) - RELOC_NUMBER (R_SPARC_TLS_LDM_ADD, 62) - RELOC_NUMBER (R_SPARC_TLS_LDM_CALL, 63) - RELOC_NUMBER (R_SPARC_TLS_LDO_HIX22, 64) - RELOC_NUMBER (R_SPARC_TLS_LDO_LOX10, 65) - RELOC_NUMBER (R_SPARC_TLS_LDO_ADD, 66) - RELOC_NUMBER (R_SPARC_TLS_IE_HI22, 67) - RELOC_NUMBER (R_SPARC_TLS_IE_LO10, 68) - RELOC_NUMBER (R_SPARC_TLS_IE_LD, 69) - RELOC_NUMBER (R_SPARC_TLS_IE_LDX, 70) - RELOC_NUMBER (R_SPARC_TLS_IE_ADD, 71) - RELOC_NUMBER (R_SPARC_TLS_LE_HIX22, 72) - RELOC_NUMBER (R_SPARC_TLS_LE_LOX10, 73) - RELOC_NUMBER (R_SPARC_TLS_DTPMOD32, 74) - RELOC_NUMBER (R_SPARC_TLS_DTPMOD64, 75) - RELOC_NUMBER (R_SPARC_TLS_DTPOFF32, 76) - RELOC_NUMBER (R_SPARC_TLS_DTPOFF64, 77) - RELOC_NUMBER (R_SPARC_TLS_TPOFF32, 78) - RELOC_NUMBER (R_SPARC_TLS_TPOFF64, 79) - - RELOC_NUMBER (R_SPARC_GOTDATA_HIX22, 80) - RELOC_NUMBER (R_SPARC_GOTDATA_LOX10, 81) - RELOC_NUMBER (R_SPARC_GOTDATA_OP_HIX22, 82) - RELOC_NUMBER (R_SPARC_GOTDATA_OP_LOX10, 83) - RELOC_NUMBER (R_SPARC_GOTDATA_OP, 84) - - RELOC_NUMBER (R_SPARC_H34, 85) - RELOC_NUMBER (R_SPARC_SIZE32, 86) - RELOC_NUMBER (R_SPARC_SIZE64, 87) - RELOC_NUMBER (R_SPARC_WDISP10, 88) - - EMPTY_RELOC (R_SPARC_max_std) - - RELOC_NUMBER (R_SPARC_JMP_IREL, 248) - RELOC_NUMBER (R_SPARC_IRELATIVE, 249) - RELOC_NUMBER (R_SPARC_GNU_VTINHERIT, 250) - RELOC_NUMBER (R_SPARC_GNU_VTENTRY, 251) - RELOC_NUMBER (R_SPARC_REV32, 252) - -END_RELOC_NUMBERS (R_SPARC_max) - -/* Relocation macros. */ - -#define ELF64_R_TYPE_DATA(info) \ - (((bfd_signed_vma)(ELF64_R_TYPE(info) >> 8) ^ 0x800000) - 0x800000) -#define ELF64_R_TYPE_ID(info) \ - ((info) & 0xff) -#define ELF64_R_TYPE_INFO(data, type) \ - (((bfd_vma) ((data) & 0xffffff) << 8) | (bfd_vma) (type)) - -/* Values for Elf64_Dyn.d_tag. */ - -#define DT_SPARC_REGISTER 0x70000001 - -/* Object attribute tags. */ -enum -{ - /* 0-3 are generic. */ - Tag_GNU_Sparc_HWCAPS = 4, -}; - -/* These values match the AV_SPARC_* hwcap bits defined under Solaris. */ -#define ELF_SPARC_HWCAP_MUL32 0x00000001 /* umul/umulcc/smul/smulcc insns */ -#define ELF_SPARC_HWCAP_DIV32 0x00000002 /* udiv/udivcc/sdiv/sdivcc insns */ -#define ELF_SPARC_HWCAP_FSMULD 0x00000004 /* 'fsmuld' insn */ -#define ELF_SPARC_HWCAP_V8PLUS 0x00000008 /* v9 insns available to 32bit */ -#define ELF_SPARC_HWCAP_POPC 0x00000010 /* 'popc' insn */ -#define ELF_SPARC_HWCAP_VIS 0x00000020 /* VIS insns */ -#define ELF_SPARC_HWCAP_VIS2 0x00000040 /* VIS2 insns */ -#define ELF_SPARC_HWCAP_ASI_BLK_INIT \ - 0x00000080 /* block init ASIs */ -#define ELF_SPARC_HWCAP_FMAF 0x00000100 /* fused multiply-add */ -#define ELF_SPARC_HWCAP_VIS3 0x00000400 /* VIS3 insns */ -#define ELF_SPARC_HWCAP_HPC 0x00000800 /* HPC insns */ -#define ELF_SPARC_HWCAP_RANDOM 0x00001000 /* 'random' insn */ -#define ELF_SPARC_HWCAP_TRANS 0x00002000 /* transaction insns */ -#define ELF_SPARC_HWCAP_FJFMAU 0x00004000 /* unfused multiply-add */ -#define ELF_SPARC_HWCAP_IMA 0x00008000 /* integer multiply-add */ -#define ELF_SPARC_HWCAP_ASI_CACHE_SPARING \ - 0x00010000 /* cache sparing ASIs */ -#define ELF_SPARC_HWCAP_AES 0x00020000 /* AES crypto insns */ -#define ELF_SPARC_HWCAP_DES 0x00040000 /* DES crypto insns */ -#define ELF_SPARC_HWCAP_KASUMI 0x00080000 /* KASUMI crypto insns */ -#define ELF_SPARC_HWCAP_CAMELLIA \ - 0x00100000 /* CAMELLIA crypto insns */ -#define ELF_SPARC_HWCAP_MD5 0x00200000 /* MD5 hashing insns */ -#define ELF_SPARC_HWCAP_SHA1 0x00400000 /* SHA1 hashing insns */ -#define ELF_SPARC_HWCAP_SHA256 0x00800000 /* SHA256 hashing insns */ -#define ELF_SPARC_HWCAP_SHA512 0x01000000 /* SHA512 hashing insns */ -#define ELF_SPARC_HWCAP_MPMUL 0x02000000 /* Multiple Precision Multiply */ -#define ELF_SPARC_HWCAP_MONT 0x04000000 /* Montgomery Mult/Sqrt */ -#define ELF_SPARC_HWCAP_PAUSE 0x08000000 /* Pause insn */ -#define ELF_SPARC_HWCAP_CBCOND 0x10000000 /* Compare and Branch insns */ -#define ELF_SPARC_HWCAP_CRC32C 0x20000000 /* CRC32C insn */ - -#endif /* _ELF_SPARC_H */ diff --git a/include/elf/spu.h b/include/elf/spu.h deleted file mode 100644 index 0618ec8..0000000 --- a/include/elf/spu.h +++ /dev/null @@ -1,61 +0,0 @@ -/* SPU ELF support for BFD. - - Copyright 2006, 2007, 2009, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_SPU_H -#define _ELF_SPU_H - -#include "elf/reloc-macros.h" - -/* elf32-spu.c depends on these being consecutive. */ -START_RELOC_NUMBERS (elf_spu_reloc_type) - RELOC_NUMBER (R_SPU_NONE, 0) - RELOC_NUMBER (R_SPU_ADDR10, 1) - RELOC_NUMBER (R_SPU_ADDR16, 2) - RELOC_NUMBER (R_SPU_ADDR16_HI, 3) - RELOC_NUMBER (R_SPU_ADDR16_LO, 4) - RELOC_NUMBER (R_SPU_ADDR18, 5) - RELOC_NUMBER (R_SPU_ADDR32, 6) - RELOC_NUMBER (R_SPU_REL16, 7) - RELOC_NUMBER (R_SPU_ADDR7, 8) - RELOC_NUMBER (R_SPU_REL9, 9) - RELOC_NUMBER (R_SPU_REL9I, 10) - RELOC_NUMBER (R_SPU_ADDR10I, 11) - RELOC_NUMBER (R_SPU_ADDR16I, 12) - RELOC_NUMBER (R_SPU_REL32, 13) - RELOC_NUMBER (R_SPU_ADDR16X, 14) - RELOC_NUMBER (R_SPU_PPU32, 15) - RELOC_NUMBER (R_SPU_PPU64, 16) - RELOC_NUMBER (R_SPU_ADD_PIC, 17) -END_RELOC_NUMBERS (R_SPU_max) - -/* Program header extensions */ - -/* Mark a PT_LOAD segment as containing an overlay which should not - initially be loaded. */ -#define PF_OVERLAY (1 << 27) - -/* SPU Dynamic Object Information. */ -#define PT_SPU_INFO 0x70000000 - -/* SPU plugin information */ -#define SPU_PLUGIN_NAME "SPUNAME" -#define SPU_PTNOTE_SPUNAME ".note.spu_name" - -#endif /* _ELF_SPU_H */ diff --git a/include/elf/tic6x-attrs.h b/include/elf/tic6x-attrs.h deleted file mode 100644 index 21ce1e4..0000000 --- a/include/elf/tic6x-attrs.h +++ /dev/null @@ -1,35 +0,0 @@ -/* TI C6X ELF attributes. - Copyright 2010 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* Define the TAG macro before including this file; it takes a tag - name and value. */ - -TAG(Tag_ISA, 4) -TAG(Tag_ABI_wchar_t, 6) -TAG(Tag_ABI_stack_align_needed, 8) -TAG(Tag_ABI_stack_align_preserved, 10) -TAG(Tag_ABI_DSBT, 12) -TAG(Tag_ABI_PID, 14) -TAG(Tag_ABI_PIC, 16) -TAG(Tag_ABI_array_object_alignment, 18) -TAG(Tag_ABI_array_object_align_expected, 20) -TAG(Tag_ABI_compatibility, 32) -TAG(Tag_ABI_conformance, 67) diff --git a/include/elf/tic6x.h b/include/elf/tic6x.h deleted file mode 100644 index e686cc3..0000000 --- a/include/elf/tic6x.h +++ /dev/null @@ -1,167 +0,0 @@ -/* TI C6X ELF support for BFD. - Copyright 2010, 2011 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _ELF_TIC6X_H -#define _ELF_TIC6X_H - -#include "elf/reloc-macros.h" - -/* Relocation types. */ -START_RELOC_NUMBERS (elf_tic6x_reloc_type) - RELOC_NUMBER (R_C6000_NONE, 0) - RELOC_NUMBER (R_C6000_ABS32, 1) - RELOC_NUMBER (R_C6000_ABS16, 2) - RELOC_NUMBER (R_C6000_ABS8, 3) - RELOC_NUMBER (R_C6000_PCR_S21, 4) - RELOC_NUMBER (R_C6000_PCR_S12, 5) - RELOC_NUMBER (R_C6000_PCR_S10, 6) - RELOC_NUMBER (R_C6000_PCR_S7, 7) - RELOC_NUMBER (R_C6000_ABS_S16, 8) - RELOC_NUMBER (R_C6000_ABS_L16, 9) - RELOC_NUMBER (R_C6000_ABS_H16, 10) - RELOC_NUMBER (R_C6000_SBR_U15_B, 11) - RELOC_NUMBER (R_C6000_SBR_U15_H, 12) - RELOC_NUMBER (R_C6000_SBR_U15_W, 13) - RELOC_NUMBER (R_C6000_SBR_S16, 14) - RELOC_NUMBER (R_C6000_SBR_L16_B, 15) - RELOC_NUMBER (R_C6000_SBR_L16_H, 16) - RELOC_NUMBER (R_C6000_SBR_L16_W, 17) - RELOC_NUMBER (R_C6000_SBR_H16_B, 18) - RELOC_NUMBER (R_C6000_SBR_H16_H, 19) - RELOC_NUMBER (R_C6000_SBR_H16_W, 20) - RELOC_NUMBER (R_C6000_SBR_GOT_U15_W, 21) - RELOC_NUMBER (R_C6000_SBR_GOT_L16_W, 22) - RELOC_NUMBER (R_C6000_SBR_GOT_H16_W, 23) - RELOC_NUMBER (R_C6000_DSBT_INDEX, 24) - RELOC_NUMBER (R_C6000_PREL31, 25) - RELOC_NUMBER (R_C6000_COPY, 26) - RELOC_NUMBER (R_C6000_JUMP_SLOT, 27) - RELOC_NUMBER (R_C6000_EHTYPE, 28) - RELOC_NUMBER (R_C6000_PCR_H16, 29) - RELOC_NUMBER (R_C6000_PCR_L16, 30) - RELOC_NUMBER (R_C6000_ALIGN, 253) - RELOC_NUMBER (R_C6000_FPHEAD, 254) - RELOC_NUMBER (R_C6000_NOCMP, 255) -END_RELOC_NUMBERS (R_TIC6X_max) - -/* Processor-specific flags. */ - -/* File contains static relocation information. */ -#define EF_C6000_REL 0x1 - -/* Processor-specific section types. */ - -/* Unwind function table for stack unwinding. */ -#define SHT_C6000_UNWIND 0x70000001 - -/* DLL dynamic linking pre-emption map. */ -#define SHT_C6000_PREEMPTMAP 0x70000002 - -/* Object file compatibility attributes. */ -#define SHT_C6000_ATTRIBUTES 0x70000003 - -/* Intermediate code for link-time optimization. */ -#define SHT_TI_ICODE 0x7F000000 - -/* Symbolic cross reference information. */ -#define SHT_TI_XREF 0x7F000001 - -/* Reserved. */ -#define SHT_TI_HANDLER 0x7F000002 - -/* Compressed data for initializing C variables. */ -#define SHT_TI_INITINFO 0x7F000003 - -/* Extended program header attributes. */ -#define SHT_TI_PHATTRS 0x7F000004 - -/* Processor specific section indices. These sections do not actually - exist. Symbols with a st_shndx field corresponding to one of these - values have a special meaning. */ - -/* Small data area common symbol. */ -#define SHN_TIC6X_SCOMMON SHN_LORESERVE - -/* Processor-specific segment types. */ - -/* Extended Segment Attributes. */ -#define PT_C6000_PHATTR 0x70000000 - -/* Processor-specific dynamic tags. */ - -/* Undocumented. */ -#define DT_C6000_GSYM_OFFSET 0x6000000D - -/* Undocumented. */ -#define DT_C6000_GSTR_OFFSET 0x6000000F - -/* Statically linked base address of data segment. */ -#define DT_C6000_DSBT_BASE 0x70000000 - -/* Number of entries in this module's DSBT. */ -#define DT_C6000_DSBT_SIZE 0x70000001 - -/* Undocumented. */ -#define DT_C6000_PREEMPTMAP 0x70000002 - -/* The hard-coded DSBT index for this module, if any. */ -#define DT_C6000_DSBT_INDEX 0x70000003 - -/* Extended program header attributes. */ - -/* Terminate a segment. */ -#define PHA_NULL 0x0 - -/* Segment's address bound to the final address. */ -#define PHA_BOUND 0x1 - -/* Segment cannot be further relocated. */ -#define PHA_READONLY 0x2 - -/* Build attributes. */ -enum - { -#define TAG(tag, value) tag = value, -#include "elf/tic6x-attrs.h" -#undef TAG - Tag_C6XABI_last - }; - -/* Values for Tag_ISA. GNU-specific names; the ABI does not specify - names for these values. */ -enum - { - C6XABI_Tag_ISA_none = 0, - C6XABI_Tag_ISA_C62X = 1, - C6XABI_Tag_ISA_C67X = 3, - C6XABI_Tag_ISA_C67XP = 4, - C6XABI_Tag_ISA_C64X = 6, - C6XABI_Tag_ISA_C64XP = 7, - C6XABI_Tag_ISA_C674X = 8 - }; - -/* Special section names. */ -#define ELF_STRING_C6000_unwind ".c6xabi.exidx" -#define ELF_STRING_C6000_unwind_info ".c6xabi.extab" -#define ELF_STRING_C6000_unwind_once ".gnu.linkonce.c6xabi.exidx." -#define ELF_STRING_C6000_unwind_info_once ".gnu.linkonce.c6xabi.extab." - -#endif /* _ELF_TIC6X_H */ diff --git a/include/elf/tilegx.h b/include/elf/tilegx.h deleted file mode 100644 index e838b80..0000000 --- a/include/elf/tilegx.h +++ /dev/null @@ -1,176 +0,0 @@ -/* TILE-Gx ELF support for BFD. - Copyright 2011 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _ELF_TILEGX_H -#define _ELF_TILEGX_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_tilegx_reloc_type) - RELOC_NUMBER (R_TILEGX_NONE, 0) - - /* Standard relocations */ - RELOC_NUMBER (R_TILEGX_64, 1) - RELOC_NUMBER (R_TILEGX_32, 2) - RELOC_NUMBER (R_TILEGX_16, 3) - RELOC_NUMBER (R_TILEGX_8, 4) - RELOC_NUMBER (R_TILEGX_64_PCREL, 5) - RELOC_NUMBER (R_TILEGX_32_PCREL, 6) - RELOC_NUMBER (R_TILEGX_16_PCREL, 7) - RELOC_NUMBER (R_TILEGX_8_PCREL, 8) - - /* Custom relocations */ - - RELOC_NUMBER (R_TILEGX_HW0, 9) - RELOC_NUMBER (R_TILEGX_HW1, 10) - RELOC_NUMBER (R_TILEGX_HW2, 11) - RELOC_NUMBER (R_TILEGX_HW3, 12) - RELOC_NUMBER (R_TILEGX_HW0_LAST, 13) - RELOC_NUMBER (R_TILEGX_HW1_LAST, 14) - RELOC_NUMBER (R_TILEGX_HW2_LAST, 15) - - RELOC_NUMBER (R_TILEGX_COPY, 16) - RELOC_NUMBER (R_TILEGX_GLOB_DAT, 17) - RELOC_NUMBER (R_TILEGX_JMP_SLOT, 18) - RELOC_NUMBER (R_TILEGX_RELATIVE, 19) - - /* Branch/jump offsets */ - RELOC_NUMBER (R_TILEGX_BROFF_X1, 20) - RELOC_NUMBER (R_TILEGX_JUMPOFF_X1, 21) - RELOC_NUMBER (R_TILEGX_JUMPOFF_X1_PLT, 22) - - /* Immediate operands. */ - RELOC_NUMBER (R_TILEGX_IMM8_X0, 23) - RELOC_NUMBER (R_TILEGX_IMM8_Y0, 24) - RELOC_NUMBER (R_TILEGX_IMM8_X1, 25) - RELOC_NUMBER (R_TILEGX_IMM8_Y1, 26) - RELOC_NUMBER (R_TILEGX_DEST_IMM8_X1, 27) - RELOC_NUMBER (R_TILEGX_MT_IMM14_X1, 28) - RELOC_NUMBER (R_TILEGX_MF_IMM14_X1, 29) - RELOC_NUMBER (R_TILEGX_MMSTART_X0, 30) - RELOC_NUMBER (R_TILEGX_MMEND_X0, 31) - RELOC_NUMBER (R_TILEGX_SHAMT_X0, 32) - RELOC_NUMBER (R_TILEGX_SHAMT_X1, 33) - RELOC_NUMBER (R_TILEGX_SHAMT_Y0, 34) - RELOC_NUMBER (R_TILEGX_SHAMT_Y1, 35) - - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0, 36) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0, 37) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1, 38) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1, 39) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2, 40) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2, 41) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3, 42) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3, 43) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST, 44) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST, 45) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST, 46) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST, 47) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST, 48) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST, 49) - - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_PCREL, 50) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_PCREL, 51) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_PCREL, 52) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_PCREL, 53) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_PCREL, 54) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_PCREL, 55) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_PCREL, 56) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_PCREL, 57) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_PCREL, 58) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_PCREL, 59) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_PCREL, 60) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_PCREL, 61) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_PCREL, 62) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_PCREL, 63) - - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_GOT, 64) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_GOT, 65) - - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_PLT_PCREL, 66) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_PLT_PCREL, 67) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_PLT_PCREL, 68) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_PLT_PCREL, 69) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_PLT_PCREL, 70) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_PLT_PCREL, 71) - - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_GOT, 72) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_GOT, 73) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_GOT, 74) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_GOT, 75) - - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_PLT_PCREL, 76) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_PLT_PCREL, 77) - - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_GD, 78) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_GD, 79) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_LE, 80) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_LE, 81) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE, 82) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE, 83) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE, 84) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE, 85) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD, 86) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD, 87) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD, 88) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD, 89) - /* Relocs 90-91 are currently not defined. */ - - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_IE, 92) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_IE, 93) - - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL, 94) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL, 95) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL, 96) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL, 97) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL, 98) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL, 99) - - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE, 100) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE, 101) - RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE, 102) - RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE, 103) - /* Relocs 104-105 are currently not defined. */ - - RELOC_NUMBER (R_TILEGX_TLS_DTPMOD64, 106) - RELOC_NUMBER (R_TILEGX_TLS_DTPOFF64, 107) - RELOC_NUMBER (R_TILEGX_TLS_TPOFF64, 108) - RELOC_NUMBER (R_TILEGX_TLS_DTPMOD32, 109) - RELOC_NUMBER (R_TILEGX_TLS_DTPOFF32, 110) - RELOC_NUMBER (R_TILEGX_TLS_TPOFF32, 111) - - RELOC_NUMBER (R_TILEGX_TLS_GD_CALL, 112) - RELOC_NUMBER (R_TILEGX_IMM8_X0_TLS_GD_ADD, 113) - RELOC_NUMBER (R_TILEGX_IMM8_X1_TLS_GD_ADD, 114) - RELOC_NUMBER (R_TILEGX_IMM8_Y0_TLS_GD_ADD, 115) - RELOC_NUMBER (R_TILEGX_IMM8_Y1_TLS_GD_ADD, 116) - RELOC_NUMBER (R_TILEGX_TLS_IE_LOAD, 117) - RELOC_NUMBER (R_TILEGX_IMM8_X0_TLS_ADD, 118) - RELOC_NUMBER (R_TILEGX_IMM8_X1_TLS_ADD, 119) - RELOC_NUMBER (R_TILEGX_IMM8_Y0_TLS_ADD, 120) - RELOC_NUMBER (R_TILEGX_IMM8_Y1_TLS_ADD, 121) - -/* These are GNU extensions to enable C++ vtable garbage collection. */ - RELOC_NUMBER (R_TILEGX_GNU_VTINHERIT, 128) - RELOC_NUMBER (R_TILEGX_GNU_VTENTRY, 129) -END_RELOC_NUMBERS (R_TILEGX_max) - -#endif /* _ELF_TILEGX_H */ diff --git a/include/elf/tilepro.h b/include/elf/tilepro.h deleted file mode 100644 index 0079a2f..0000000 --- a/include/elf/tilepro.h +++ /dev/null @@ -1,144 +0,0 @@ -/* TILEPro ELF support for BFD. - Copyright 2011 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _ELF_TILEPRO_H -#define _ELF_TILEPRO_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_tilepro_reloc_type) - RELOC_NUMBER (R_TILEPRO_NONE, 0) - - /* Standard relocations */ - RELOC_NUMBER (R_TILEPRO_32, 1) - RELOC_NUMBER (R_TILEPRO_16, 2) - RELOC_NUMBER (R_TILEPRO_8, 3) - RELOC_NUMBER (R_TILEPRO_32_PCREL, 4) - RELOC_NUMBER (R_TILEPRO_16_PCREL, 5) - RELOC_NUMBER (R_TILEPRO_8_PCREL, 6) - - RELOC_NUMBER (R_TILEPRO_LO16, 7) - RELOC_NUMBER (R_TILEPRO_HI16, 8) - RELOC_NUMBER (R_TILEPRO_HA16, 9) - - RELOC_NUMBER (R_TILEPRO_COPY, 10) - RELOC_NUMBER (R_TILEPRO_GLOB_DAT, 11) - RELOC_NUMBER (R_TILEPRO_JMP_SLOT, 12) - RELOC_NUMBER (R_TILEPRO_RELATIVE, 13) - - /* Branch/jump offsets */ - RELOC_NUMBER (R_TILEPRO_BROFF_X1, 14) - RELOC_NUMBER (R_TILEPRO_JOFFLONG_X1, 15) - RELOC_NUMBER (R_TILEPRO_JOFFLONG_X1_PLT, 16) - - /* Immediate operands. */ - RELOC_NUMBER (R_TILEPRO_IMM8_X0, 17) - RELOC_NUMBER (R_TILEPRO_IMM8_Y0, 18) - RELOC_NUMBER (R_TILEPRO_IMM8_X1, 19) - RELOC_NUMBER (R_TILEPRO_IMM8_Y1, 20) - RELOC_NUMBER (R_TILEPRO_MT_IMM15_X1, 21) - RELOC_NUMBER (R_TILEPRO_MF_IMM15_X1, 22) - - RELOC_NUMBER (R_TILEPRO_IMM16_X0, 23) - RELOC_NUMBER (R_TILEPRO_IMM16_X1, 24) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_LO, 25) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_LO, 26) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_HI, 27) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_HI, 28) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_HA, 29) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_HA, 30) - - RELOC_NUMBER (R_TILEPRO_IMM16_X0_PCREL, 31) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_PCREL, 32) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_LO_PCREL, 33) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_LO_PCREL, 34) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_HI_PCREL, 35) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_HI_PCREL, 36) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_HA_PCREL, 37) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_HA_PCREL, 38) - - RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT, 39) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT, 40) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_LO, 41) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_LO, 42) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_HI, 43) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_HI, 44) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_HA, 45) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_HA, 46) - - RELOC_NUMBER (R_TILEPRO_MMSTART_X0, 47) - RELOC_NUMBER (R_TILEPRO_MMEND_X0, 48) - RELOC_NUMBER (R_TILEPRO_MMSTART_X1, 49) - RELOC_NUMBER (R_TILEPRO_MMEND_X1, 50) - - RELOC_NUMBER (R_TILEPRO_SHAMT_X0, 51) - RELOC_NUMBER (R_TILEPRO_SHAMT_X1, 52) - RELOC_NUMBER (R_TILEPRO_SHAMT_Y0, 53) - RELOC_NUMBER (R_TILEPRO_SHAMT_Y1, 54) - - RELOC_NUMBER (R_TILEPRO_DEST_IMM8_X1, 55) - - /* Relocs 56-59 are currently not defined. */ - - RELOC_NUMBER (R_TILEPRO_TLS_GD_CALL, 60) - RELOC_NUMBER (R_TILEPRO_IMM8_X0_TLS_GD_ADD, 61) - RELOC_NUMBER (R_TILEPRO_IMM8_X1_TLS_GD_ADD, 62) - RELOC_NUMBER (R_TILEPRO_IMM8_Y0_TLS_GD_ADD, 63) - RELOC_NUMBER (R_TILEPRO_IMM8_Y1_TLS_GD_ADD, 64) - RELOC_NUMBER (R_TILEPRO_TLS_IE_LOAD, 65) - - RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD, 66) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD, 67) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_LO, 68) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_LO, 69) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_HI, 70) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_HI, 71) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_HA, 72) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_HA, 73) - - RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE, 74) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE, 75) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_LO, 76) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_LO, 77) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_HI, 78) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_HI, 79) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_HA, 80) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_HA, 81) - - RELOC_NUMBER (R_TILEPRO_TLS_DTPMOD32, 82) - RELOC_NUMBER (R_TILEPRO_TLS_DTPOFF32, 83) - RELOC_NUMBER (R_TILEPRO_TLS_TPOFF32, 84) - - RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE, 85) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE, 86) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_LO, 87) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_LO, 88) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_HI, 89) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_HI, 90) - RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_HA, 91) - RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_HA, 92) - -/* These are GNU extensions to enable C++ vtable garbage collection. */ - RELOC_NUMBER (R_TILEPRO_GNU_VTINHERIT, 128) - RELOC_NUMBER (R_TILEPRO_GNU_VTENTRY, 129) -END_RELOC_NUMBERS (R_TILEPRO_max) - -#endif /* _ELF_TILEPRO_H */ diff --git a/include/elf/v850.h b/include/elf/v850.h deleted file mode 100644 index 5a08820..0000000 --- a/include/elf/v850.h +++ /dev/null @@ -1,283 +0,0 @@ -/* V850 ELF support for BFD. - Copyright 1997-2013 Free Software Foundation, Inc. - Created by Michael Meissner, Cygnus Support - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file holds definitions specific to the MIPS ELF ABI. Note - that most of this is not actually implemented by BFD. */ - -#ifndef _ELF_V850_H -#define _ELF_V850_H - -/* Processor specific flags for the ELF header e_flags field. */ - -/* Four bit V850 architecture field. */ -#define EF_V850_ARCH 0xf0000000 - -/* v850 code. */ -#define E_V850_ARCH 0x00000000 - -/* v850e code. */ -#define E_V850E_ARCH 0x10000000 - -/* v850e1 code. */ -#define E_V850E1_ARCH 0x20000000 - -/* v850e2 code. */ -#define E_V850E2_ARCH 0x30000000 - -/* v850e2v3 code. */ -#define E_V850E2V3_ARCH 0x40000000 - -/* v850e3v5 code. */ -#define E_V850E3V5_ARCH 0x60000000 - -/* Flags for the st_other field. */ -#define V850_OTHER_SDA 0x10 /* Symbol had SDA relocations. */ -#define V850_OTHER_ZDA 0x20 /* Symbol had ZDA relocations. */ -#define V850_OTHER_TDA 0x40 /* Symbol had TDA relocations. */ -#define V850_OTHER_ERROR 0x80 /* Symbol had an error reported. */ - -/* V850 relocations. */ -#include "elf/reloc-macros.h" - -START_RELOC_NUMBERS (v850_reloc_type) - RELOC_NUMBER (R_V850_NONE, 0) - RELOC_NUMBER (R_V850_9_PCREL, 1) - RELOC_NUMBER (R_V850_22_PCREL, 2) - RELOC_NUMBER (R_V850_HI16_S, 3) - RELOC_NUMBER (R_V850_HI16, 4) - RELOC_NUMBER (R_V850_LO16, 5) - RELOC_NUMBER (R_V850_ABS32, 6) - RELOC_NUMBER (R_V850_16, 7) - RELOC_NUMBER (R_V850_8, 8) - RELOC_NUMBER( R_V850_SDA_16_16_OFFSET, 9) /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */ - RELOC_NUMBER( R_V850_SDA_15_16_OFFSET, 10) /* For ld.w, ld.h, ld.hu, st.w, st.h */ - RELOC_NUMBER( R_V850_ZDA_16_16_OFFSET, 11) /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */ - RELOC_NUMBER( R_V850_ZDA_15_16_OFFSET, 12) /* For ld.w, ld.h, ld.hu, st.w, st.h */ - RELOC_NUMBER( R_V850_TDA_6_8_OFFSET, 13) /* For sst.w, sld.w */ - RELOC_NUMBER( R_V850_TDA_7_8_OFFSET, 14) /* For sst.h, sld.h */ - RELOC_NUMBER( R_V850_TDA_7_7_OFFSET, 15) /* For sst.b, sld.b */ - RELOC_NUMBER( R_V850_TDA_16_16_OFFSET, 16) /* For set1, clr1, not1, tst1, movea, movhi */ - RELOC_NUMBER( R_V850_TDA_4_5_OFFSET, 17) /* For sld.hu */ - RELOC_NUMBER( R_V850_TDA_4_4_OFFSET, 18) /* For sld.bu */ - RELOC_NUMBER( R_V850_SDA_16_16_SPLIT_OFFSET, 19) /* For ld.bu */ - RELOC_NUMBER( R_V850_ZDA_16_16_SPLIT_OFFSET, 20) /* For ld.bu */ - RELOC_NUMBER( R_V850_CALLT_6_7_OFFSET, 21) /* For callt */ - RELOC_NUMBER( R_V850_CALLT_16_16_OFFSET, 22) /* For callt */ - RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23) - RELOC_NUMBER (R_V850_GNU_VTENTRY, 24) - RELOC_NUMBER (R_V850_LONGCALL, 25) - RELOC_NUMBER (R_V850_LONGJUMP, 26) - RELOC_NUMBER (R_V850_ALIGN, 27) - RELOC_NUMBER (R_V850_REL32, 28) - RELOC_NUMBER (R_V850_LO16_SPLIT_OFFSET, 29) /* For ld.bu */ - RELOC_NUMBER (R_V850_16_PCREL, 30) /* For loop */ - RELOC_NUMBER (R_V850_17_PCREL, 31) /* For br */ - RELOC_NUMBER (R_V850_23, 32) /* For 23bit ld.[w,h,hu,b,bu],st.[w,h,b] */ - RELOC_NUMBER (R_V850_32_PCREL, 33) /* For jr32, jarl32 */ - RELOC_NUMBER (R_V850_32_ABS, 34) /* For jmp32 */ - RELOC_NUMBER (R_V850_16_SPLIT_OFFSET, 35) /* For ld.bu */ - RELOC_NUMBER (R_V850_16_S1, 36) /* For ld.w, ld.h st.w st.h */ - RELOC_NUMBER (R_V850_LO16_S1, 37) /* For ld.w, ld.h st.w st.h */ - RELOC_NUMBER (R_V850_CALLT_15_16_OFFSET, 38) /* For ld.w, ld.h, ld.hu, st.w, st.h */ - RELOC_NUMBER (R_V850_32_GOTPCREL, 39) /* GLOBAL_OFFSET_TABLE from pc */ - RELOC_NUMBER (R_V850_16_GOT, 40) /* GOT ENTRY from gp */ - RELOC_NUMBER (R_V850_32_GOT, 41) - RELOC_NUMBER (R_V850_22_PLT, 42) /* For jr */ - RELOC_NUMBER (R_V850_32_PLT, 43) /* For jr32 */ - RELOC_NUMBER (R_V850_COPY, 44) - RELOC_NUMBER (R_V850_GLOB_DAT, 45) - RELOC_NUMBER (R_V850_JMP_SLOT, 46) - RELOC_NUMBER (R_V850_RELATIVE, 47) - RELOC_NUMBER (R_V850_16_GOTOFF, 48) /* From gp */ - RELOC_NUMBER (R_V850_32_GOTOFF, 49) - RELOC_NUMBER (R_V850_CODE, 50) - RELOC_NUMBER (R_V850_DATA, 51) /* For loop */ - -END_RELOC_NUMBERS (R_V850_max) - - -/* Processor specific section indices. These sections do not actually - exist. Symbols with a st_shndx field corresponding to one of these - values have a special meaning. */ - -/* Small data area common symbol. */ -#define SHN_V850_SCOMMON SHN_LORESERVE - -/* Tiny data area common symbol. */ -#define SHN_V850_TCOMMON (SHN_LORESERVE + 1) - -/* Zero data area common symbol. */ -#define SHN_V850_ZCOMMON (SHN_LORESERVE + 2) - - -/* Processor specific section types. */ - -/* Section contains the .scommon data. */ -#define SHT_V850_SCOMMON 0x70000000 - -/* Section contains the .scommon data. */ -#define SHT_V850_TCOMMON 0x70000001 - -/* Section contains the .scommon data. */ -#define SHT_V850_ZCOMMON 0x70000002 - -/* Processor specific section flags. */ - -/* This section must be in the small data area (pointed to by GP). */ -#define SHF_V850_GPREL 0x10000000 - -/* This section must be in the tiny data area (pointed to by EP). */ -#define SHF_V850_EPREL 0x20000000 - -/* This section must be in the zero data area (pointed to by R0). */ -#define SHF_V850_R0REL 0x40000000 - -/* Alternative versions of the above definitions, as specified by the RH850 ABI. */ - -#define EF_RH850_ABI 0xF0000000 - -#define EF_V800_850E3 0x00100000 - -#define EF_RH850_FPU_DOUBLE 0x00000001 /* sizeof(double) == 8. */ -#define EF_RH850_FPU_SINGLE 0x00000002 /* sizeof(double) == 4. */ -#define EF_RH850_SIMD 0x00000004 -#define EF_RH850_CACHE 0x00000008 -#define EF_RH850_MMU 0x00000010 -#define EF_RH850_REGMODE22 0x00000020 /* Registers r15-r24 (inclusive) are not used. */ -#define EF_RH850_REGMODE32 0x00000040 -#define EF_RH850_DATA_ALIGN8 0x00000080 /* 8-byte alignment supported. */ -#define EF_RH850_GP_FIX 0x00000100 /* r4 is fixed. */ -#define EF_RH850_GP_NOFIX 0x00000200 /* r4 is callee save. */ -#define EF_RH850_EP_FIX 0x00000400 /* r30 is fixed. */ -#define EF_RH850_EP_NOFIX 0x00000800 /* r30 is callee save. */ -#define EF_RH850_TP_FIX 0x00001000 /* r5 is fixed. */ -#define EF_RH850_TP_NOFIX 0x00002000 /* r5 is callee save. */ -#define EF_RH850_REG2_RESERVE 0x00004000 /* r2 is fixed. */ -#define EF_RH850_REG2_NORESERVE 0x00008000 /* r2 is callee saved. */ - -#define SHT_RNESAS_IOP SHT_LOUSER /* Used by Renesas linker. */ - -#define SHF_RENESAS_ABS 0x80000000 /* Absolute section. */ -#define SHF_GHS_ABS 0x00000400 /* Use unknown. */ - -#define STT_RENESAS_ENTRY 14 /* Set for functions called at reset time. */ - -START_RELOC_NUMBERS (v800_reloc_type) - - RELOC_NUMBER (R_V800_NONE, 0x00) - RELOC_NUMBER (R_V810_NONE, 0x30) - RELOC_NUMBER (R_V810_BYTE, 0x31) - RELOC_NUMBER (R_V810_HWORD, 0x32) - RELOC_NUMBER (R_V810_WORD, 0x33) - RELOC_NUMBER (R_V810_WLO, 0x34) - RELOC_NUMBER (R_V810_WHI, 0x35) - RELOC_NUMBER (R_V810_WHI1, 0x36) - RELOC_NUMBER (R_V810_GPBYTE, 0x37) - RELOC_NUMBER (R_V810_GPHWORD, 0x38) - RELOC_NUMBER (R_V810_GPWORD, 0x39) - RELOC_NUMBER (R_V810_GPWLO, 0x3a) - RELOC_NUMBER (R_V810_GPWHI, 0x3b) - RELOC_NUMBER (R_V810_GPWHI1, 0x3c) - RELOC_NUMBER (R_V850_HWLO, 0x3d) - FAKE_RELOC (R_V810_reserved1, 0x3e) - RELOC_NUMBER (R_V850_EP7BIT, 0x3f) - RELOC_NUMBER (R_V850_EPHBYTE, 0x40) - RELOC_NUMBER (R_V850_EPWBYTE, 0x41) - RELOC_NUMBER (R_V850_REGHWLO, 0x42) - FAKE_RELOC (R_V810_reserved2, 0x43) - RELOC_NUMBER (R_V850_GPHWLO, 0x44) - FAKE_RELOC (R_V810_reserved3, 0x45) - RELOC_NUMBER (R_V850_PCR22, 0x46) - RELOC_NUMBER (R_V850_BLO, 0x47) - RELOC_NUMBER (R_V850_EP4BIT, 0x48) - RELOC_NUMBER (R_V850_EP5BIT, 0x49) - RELOC_NUMBER (R_V850_REGBLO, 0x4a) - RELOC_NUMBER (R_V850_GPBLO, 0x4b) - RELOC_NUMBER (R_V810_WLO_1, 0x4c) - RELOC_NUMBER (R_V810_GPWLO_1, 0x4d) - RELOC_NUMBER (R_V850_BLO_1, 0x4e) - RELOC_NUMBER (R_V850_HWLO_1, 0x4f) - FAKE_RELOC (R_V810_reserved4, 0x50) - RELOC_NUMBER (R_V850_GPBLO_1, 0x51) - RELOC_NUMBER (R_V850_GPHWLO_1, 0x52) - FAKE_RELOC (R_V810_reserved5, 0x53) - RELOC_NUMBER (R_V850_EPBLO, 0x54) - RELOC_NUMBER (R_V850_EPHWLO, 0x55) - FAKE_RELOC (R_V810_reserved6, 0x56) - RELOC_NUMBER (R_V850_EPWLO_N, 0x57) - RELOC_NUMBER (R_V850_PC32, 0x58) - RELOC_NUMBER (R_V850_W23BIT, 0x59) - RELOC_NUMBER (R_V850_GPW23BIT, 0x5a) - RELOC_NUMBER (R_V850_EPW23BIT, 0x5b) - RELOC_NUMBER (R_V850_B23BIT, 0x5c) - RELOC_NUMBER (R_V850_GPB23BIT, 0x5d) - RELOC_NUMBER (R_V850_EPB23BIT, 0x5e) - RELOC_NUMBER (R_V850_PC16U, 0x5f) - RELOC_NUMBER (R_V850_PC17, 0x60) - RELOC_NUMBER (R_V850_DW8, 0x61) - RELOC_NUMBER (R_V850_GPDW8, 0x62) - RELOC_NUMBER (R_V850_EPDW8, 0x63) - RELOC_NUMBER (R_V850_PC9, 0x64) - RELOC_NUMBER (R_V810_REGBYTE, 0x65) - RELOC_NUMBER (R_V810_REGHWORD, 0x66) - RELOC_NUMBER (R_V810_REGWORD, 0x67) - RELOC_NUMBER (R_V810_REGWLO, 0x68) - RELOC_NUMBER (R_V810_REGWHI, 0x69) - RELOC_NUMBER (R_V810_REGWHI1, 0x6a) - RELOC_NUMBER (R_V850_REGW23BIT, 0x6b) - RELOC_NUMBER (R_V850_REGB23BIT, 0x6c) - RELOC_NUMBER (R_V850_REGDW8, 0x6d) - RELOC_NUMBER (R_V810_EPBYTE, 0x6e) - RELOC_NUMBER (R_V810_EPHWORD, 0x6f) - RELOC_NUMBER (R_V810_EPWORD, 0x70) - RELOC_NUMBER (R_V850_WLO23, 0x71) - RELOC_NUMBER (R_V850_WORD_E, 0x72) - RELOC_NUMBER (R_V850_REGWORD_E, 0x73) - RELOC_NUMBER (R_V850_WORD, 0x74) - RELOC_NUMBER (R_V850_GPWORD, 0x75) - RELOC_NUMBER (R_V850_REGWORD, 0x76) - RELOC_NUMBER (R_V850_EPWORD, 0x77) - RELOC_NUMBER (R_V810_TPBYTE, 0x78) - RELOC_NUMBER (R_V810_TPHWORD, 0x79) - RELOC_NUMBER (R_V810_TPWORD, 0x7a) - RELOC_NUMBER (R_V810_TPWLO, 0x7b) - RELOC_NUMBER (R_V810_TPWHI, 0x7c) - RELOC_NUMBER (R_V810_TPWHI1, 0x7d) - RELOC_NUMBER (R_V850_TPHWLO, 0x7e) - RELOC_NUMBER (R_V850_TPBLO, 0x7f) - RELOC_NUMBER (R_V810_TPWLO_1, 0x80) - RELOC_NUMBER (R_V850_TPBLO_1, 0x81) - RELOC_NUMBER (R_V850_TPHWLO_1, 0x82) - RELOC_NUMBER (R_V850_TP23BIT, 0x83) - RELOC_NUMBER (R_V850_TPW23BIT, 0x84) - RELOC_NUMBER (R_V850_TPDW8, 0x85) - -/* These are defined by the RH850 ABI, but not used. */ - RELOC_NUMBER (R_V810_ABS32, 0xa0) - RELOC_NUMBER (R_V850_SYM, 0xe0) - RELOC_NUMBER (R_V850_OPadd, 0xe1) - RELOC_NUMBER (R_V850_OPsub, 0xe2) - RELOC_NUMBER (R_V850_OPsctsize, 0xe3) - RELOC_NUMBER (R_V850_OPscttop, 0xe4) - -END_RELOC_NUMBERS (R_V800_max) - -#endif /* _ELF_V850_H */ diff --git a/include/elf/vax.h b/include/elf/vax.h deleted file mode 100644 index e44c48e..0000000 --- a/include/elf/vax.h +++ /dev/null @@ -1,51 +0,0 @@ -/* VAX ELF support for BFD. - Copyright (C) 2002, 2010 Free Software Foundation, Inc. - Contributed by Matt Thomas . - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_VAX_H -#define _ELF_VAX_H - -#include "elf/reloc-macros.h" - -/* Relocation types. */ -START_RELOC_NUMBERS (elf_vax_reloc_type) - RELOC_NUMBER (R_VAX_NONE, 0) /* No reloc */ - RELOC_NUMBER (R_VAX_32, 1) /* Direct 32 bit */ - RELOC_NUMBER (R_VAX_16, 2) /* Direct 16 bit */ - RELOC_NUMBER (R_VAX_8, 3) /* Direct 8 bit */ - RELOC_NUMBER (R_VAX_PC32, 4) /* PC relative 32 bit */ - RELOC_NUMBER (R_VAX_PC16, 5) /* PC relative 16 bit */ - RELOC_NUMBER (R_VAX_PC8, 6) /* PC relative 8 bit */ - RELOC_NUMBER (R_VAX_GOT32, 7) /* 32 bit PC relative GOT entry */ - RELOC_NUMBER (R_VAX_PLT32, 13) /* 32 bit PC relative PLT address */ - RELOC_NUMBER (R_VAX_COPY, 19) /* Copy symbol at runtime */ - RELOC_NUMBER (R_VAX_GLOB_DAT, 20) /* Create GOT entry */ - RELOC_NUMBER (R_VAX_JMP_SLOT, 21) /* Create PLT entry */ - RELOC_NUMBER (R_VAX_RELATIVE, 22) /* Adjust by program base */ - /* These are GNU extensions to enable C++ vtable garbage collection. */ - RELOC_NUMBER (R_VAX_GNU_VTINHERIT, 23) - RELOC_NUMBER (R_VAX_GNU_VTENTRY, 24) -END_RELOC_NUMBERS (R_VAX_max) - -/* Processor specific flags for the ELF header e_flags field. */ -#define EF_VAX_NONPIC 0x0001 /* Object contains non-PIC code */ -#define EF_VAX_DFLOAT 0x0100 /* Object contains D-Float insn. */ -#define EF_VAX_GFLOAT 0x0200 /* Object contains G-Float insn. */ - -#endif diff --git a/include/elf/vxworks.h b/include/elf/vxworks.h deleted file mode 100644 index f25f012..0000000 --- a/include/elf/vxworks.h +++ /dev/null @@ -1,33 +0,0 @@ -/* VxWorks ELF support for BFD. - Copyright 2007, 2010 - Free Software Foundation, Inc. - - Contributed by Nathan Sidwell - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _ELF_VXWORKS_H -#define _ELF_VXWORKS_H - -#define DT_VX_WRS_TLS_DATA_START 0x60000010 -#define DT_VX_WRS_TLS_DATA_SIZE 0x60000011 -#define DT_VX_WRS_TLS_DATA_ALIGN 0x60000015 -#define DT_VX_WRS_TLS_VARS_START 0x60000012 -#define DT_VX_WRS_TLS_VARS_SIZE 0x60000013 - -#endif /* _ELF_VXWORKS_H */ diff --git a/include/elf/x86-64.h b/include/elf/x86-64.h deleted file mode 100644 index 0ce92cd..0000000 --- a/include/elf/x86-64.h +++ /dev/null @@ -1,90 +0,0 @@ -/* x86_64 ELF support for BFD. - Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2008, 2009, 2010 - Free Software Foundation, Inc. - Contributed by Jan Hubicka - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_X86_64_H -#define _ELF_X86_64_H - -#include "elf/reloc-macros.h" - -START_RELOC_NUMBERS (elf_x86_64_reloc_type) - RELOC_NUMBER (R_X86_64_NONE, 0) /* No reloc */ - RELOC_NUMBER (R_X86_64_64, 1) /* Direct 64 bit */ - RELOC_NUMBER (R_X86_64_PC32, 2) /* PC relative 32 bit signed */ - RELOC_NUMBER (R_X86_64_GOT32, 3) /* 32 bit GOT entry */ - RELOC_NUMBER (R_X86_64_PLT32, 4) /* 32 bit PLT address */ - RELOC_NUMBER (R_X86_64_COPY, 5) /* Copy symbol at runtime */ - RELOC_NUMBER (R_X86_64_GLOB_DAT, 6) /* Create GOT entry */ - RELOC_NUMBER (R_X86_64_JUMP_SLOT,7) /* Create PLT entry */ - RELOC_NUMBER (R_X86_64_RELATIVE, 8) /* Adjust by program base */ - RELOC_NUMBER (R_X86_64_GOTPCREL, 9) /* 32 bit signed pc relative - offset to GOT entry */ - RELOC_NUMBER (R_X86_64_32, 10) /* Direct 32 bit zero extended */ - RELOC_NUMBER (R_X86_64_32S, 11) /* Direct 32 bit sign extended */ - RELOC_NUMBER (R_X86_64_16, 12) /* Direct 16 bit zero extended */ - RELOC_NUMBER (R_X86_64_PC16, 13) /* 16 bit sign extended pc relative*/ - RELOC_NUMBER (R_X86_64_8, 14) /* Direct 8 bit sign extended */ - RELOC_NUMBER (R_X86_64_PC8, 15) /* 8 bit sign extended pc relative*/ - RELOC_NUMBER (R_X86_64_DTPMOD64, 16) /* ID of module containing symbol */ - RELOC_NUMBER (R_X86_64_DTPOFF64, 17) /* Offset in TLS block */ - RELOC_NUMBER (R_X86_64_TPOFF64, 18) /* Offset in initial TLS block */ - RELOC_NUMBER (R_X86_64_TLSGD, 19) /* PC relative offset to GD GOT block */ - RELOC_NUMBER (R_X86_64_TLSLD, 20) /* PC relative offset to LD GOT block */ - RELOC_NUMBER (R_X86_64_DTPOFF32, 21) /* Offset in TLS block */ - RELOC_NUMBER (R_X86_64_GOTTPOFF, 22) /* PC relative offset to IE GOT entry */ - RELOC_NUMBER (R_X86_64_TPOFF32, 23) /* Offset in initial TLS block */ - RELOC_NUMBER (R_X86_64_PC64, 24) /* PC relative 64 bit */ - RELOC_NUMBER (R_X86_64_GOTOFF64, 25) /* 64 bit offset to GOT */ - RELOC_NUMBER (R_X86_64_GOTPC32, 26) /* 32 bit signed pc relative - offset to GOT */ - RELOC_NUMBER (R_X86_64_GOT64, 27) /* 64 bit GOT entry offset */ - RELOC_NUMBER (R_X86_64_GOTPCREL64, 28) /* 64 bit signed pc relative - offset to GOT entry */ - RELOC_NUMBER (R_X86_64_GOTPC64, 29) /* 64 bit signed pc relative - offset to GOT */ - RELOC_NUMBER (R_X86_64_GOTPLT64, 30) /* like GOT64, but indicates - that PLT entry is needed */ - RELOC_NUMBER (R_X86_64_PLTOFF64, 31) /* 64 bit GOT relative offset - to PLT entry */ - RELOC_NUMBER (R_X86_64_SIZE32, 32) /* 32-bit symbol size */ - RELOC_NUMBER (R_X86_64_SIZE64, 33) /* 64-bit symbol size */ - RELOC_NUMBER (R_X86_64_GOTPC32_TLSDESC, 34) - /* 32 bit signed pc relative - offset to TLS descriptor - in the GOT. */ - RELOC_NUMBER (R_X86_64_TLSDESC_CALL, 35) /* Relaxable call through TLS - descriptor. */ - RELOC_NUMBER (R_X86_64_TLSDESC, 36) /* 2x64-bit TLS descriptor. */ - RELOC_NUMBER (R_X86_64_IRELATIVE, 37) /* Adjust indirectly by program base */ - RELOC_NUMBER (R_X86_64_RELATIVE64, 38) /* 64bit adjust by program base */ - RELOC_NUMBER (R_X86_64_GNU_VTINHERIT, 250) /* GNU C++ hack */ - RELOC_NUMBER (R_X86_64_GNU_VTENTRY, 251) /* GNU C++ hack */ -END_RELOC_NUMBERS (R_X86_64_max) - -/* Processor specific section types. */ - -#define SHT_X86_64_UNWIND 0x70000001 /* unwind information */ - -/* Like SHN_COMMON but the symbol will be allocated in the .lbss - section. */ -#define SHN_X86_64_LCOMMON (SHN_LORESERVE + 2) - -#define SHF_X86_64_LARGE 0x10000000 -#endif diff --git a/include/elf/xc16x.h b/include/elf/xc16x.h deleted file mode 100644 index b46d903..0000000 --- a/include/elf/xc16x.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Infineon XC16X ELF support for BFD. - Copyright 2006, 2010 Free Software Foundation, Inc. - Contributed by KPIT Cummins Infosystems - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_XC16X_H -#define _ELF_XC16X_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_xc16x_reloc_type) - RELOC_NUMBER (R_XC16X_NONE, 0) - RELOC_NUMBER (R_XC16X_ABS_8, 1) - RELOC_NUMBER (R_XC16X_ABS_16, 2) - RELOC_NUMBER (R_XC16X_ABS_32, 3) - RELOC_NUMBER (R_XC16X_8_PCREL, 4) - RELOC_NUMBER (R_XC16X_PAG, 5) - RELOC_NUMBER (R_XC16X_POF, 6) - RELOC_NUMBER (R_XC16X_SEG, 7) - RELOC_NUMBER (R_XC16X_SOF, 8) - -END_RELOC_NUMBERS (R_XC16X_max) - -#endif /* _ELF_XC16X_H */ diff --git a/include/elf/xgate.h b/include/elf/xgate.h deleted file mode 100644 index 33286a8..0000000 --- a/include/elf/xgate.h +++ /dev/null @@ -1,77 +0,0 @@ -/* XGATE ELF support for BFD. - Copyright 2010, 2011, 2012 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_XGATE_H -#define _ELF_XGATE_H - -#include "elf/reloc-macros.h" - -/* Relocation types. */ -START_RELOC_NUMBERS (elf_xgate_reloc_type) - RELOC_NUMBER (R_XGATE_NONE, 0) - RELOC_NUMBER (R_XGATE_8, 1) - RELOC_NUMBER (R_XGATE_PCREL_8, 2) - RELOC_NUMBER (R_XGATE_16, 3) - RELOC_NUMBER (R_XGATE_32, 4) - RELOC_NUMBER (R_XGATE_PCREL_16, 5) - /* These are GNU extensions to enable C++ vtable garbage collection. */ - RELOC_NUMBER (R_XGATE_GNU_VTINHERIT, 6) - RELOC_NUMBER (R_XGATE_GNU_VTENTRY, 7) - - RELOC_NUMBER (R_XGATE_24, 8) - RELOC_NUMBER (R_XGATE_LO16, 9) - RELOC_NUMBER (R_XGATE_GPAGE, 10) - RELOC_NUMBER (R_XGATE_PCREL_9, 11) - RELOC_NUMBER (R_XGATE_PCREL_10, 12) - RELOC_NUMBER (R_XGATE_IMM8_LO, 13) - RELOC_NUMBER (R_XGATE_IMM8_HI, 14) - RELOC_NUMBER (R_XGATE_IMM3, 15) - RELOC_NUMBER (R_XGATE_IMM4, 16) - RELOC_NUMBER (R_XGATE_IMM5, 17) - - /* GNU extension for linker relaxation. - Mark beginning of a jump instruction (any form). */ - RELOC_NUMBER (R_XGATE_RL_JUMP, 18) - - /* Mark beginning of Gcc relaxation group instruction. */ - RELOC_NUMBER (R_XGATE_RL_GROUP, 19) -END_RELOC_NUMBERS (R_XGATE_max) - -/* Processor specific flags for the ELF header e_flags field. */ - -/* ABI identification. */ -#define EF_XGATE_ABI 0x00000000F - -/* Integers are 32-bit long. */ -#define E_XGATE_I32 0x000000001 - -/* Doubles are 64-bit long. */ -#define E_XGATE_F64 0x000000002 - -#define EF_XGATE_MACH_MASK 0xF0 - -#define EF_XGATE_MACH 0x80 /* XGATE microcontroller. */ - -#define E_M68HCS12X_GLOBAL 0x100 - -/* Identify interrupt handlers. This is used by the debugger to - correctly compute the stack frame. */ -#define STO_XGATE_INTERRUPT 0x40 - -#endif diff --git a/include/elf/xstormy16.h b/include/elf/xstormy16.h deleted file mode 100644 index 0ae0def..0000000 --- a/include/elf/xstormy16.h +++ /dev/null @@ -1,57 +0,0 @@ -/* XSTORMY16 ELF support for BFD. - Copyright (C) 2001, 2002, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ELF_XSTORMY16_H -#define _ELF_XSTORMY16_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_xstormy16_reloc_type) - RELOC_NUMBER (R_XSTORMY16_NONE, 0) - - RELOC_NUMBER (R_XSTORMY16_32, 1) - RELOC_NUMBER (R_XSTORMY16_16, 2) - RELOC_NUMBER (R_XSTORMY16_8, 3) - RELOC_NUMBER (R_XSTORMY16_PC32, 4) - RELOC_NUMBER (R_XSTORMY16_PC16, 5) - RELOC_NUMBER (R_XSTORMY16_PC8, 6) - - RELOC_NUMBER (R_XSTORMY16_REL_12, 7) - RELOC_NUMBER (R_XSTORMY16_24, 8) - RELOC_NUMBER (R_XSTORMY16_FPTR16, 9) - - RELOC_NUMBER (R_XSTORMY16_LO16, 10) - RELOC_NUMBER (R_XSTORMY16_HI16, 11) - RELOC_NUMBER (R_XSTORMY16_12, 12) - - RELOC_NUMBER (R_XSTORMY16_GNU_VTINHERIT, 128) - RELOC_NUMBER (R_XSTORMY16_GNU_VTENTRY, 129) -END_RELOC_NUMBERS (R_XSTORMY16_max) - -/* Define the data & instruction memory discriminator. In a linked - executable, an symbol should be deemed to point to an instruction - if ((address & XSTORMY16_INSN_MASK) == XSTORMY16_INSN_VALUE), and similarly - for the data space. See also `ld/emulparams/elf32xstormy16.sh'. */ -#define XSTORMY16_DATA_MASK 0xffc00000 -#define XSTORMY16_DATA_VALUE 0x00000000 -#define XSTORMY16_INSN_MASK 0xffc00000 -#define XSTORMY16_INSN_VALUE 0x00400000 - -#endif /* _ELF_XSTORMY16_H */ diff --git a/include/elf/xtensa.h b/include/elf/xtensa.h deleted file mode 100644 index 0d35f7a..0000000 --- a/include/elf/xtensa.h +++ /dev/null @@ -1,208 +0,0 @@ -/* Xtensa ELF support for BFD. - Copyright 2003, 2004, 2007, 2008, 2010 Free Software Foundation, Inc. - Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, - USA. */ - -/* This file holds definitions specific to the Xtensa ELF ABI. */ - -#ifndef _ELF_XTENSA_H -#define _ELF_XTENSA_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_xtensa_reloc_type) - RELOC_NUMBER (R_XTENSA_NONE, 0) - RELOC_NUMBER (R_XTENSA_32, 1) - RELOC_NUMBER (R_XTENSA_RTLD, 2) - RELOC_NUMBER (R_XTENSA_GLOB_DAT, 3) - RELOC_NUMBER (R_XTENSA_JMP_SLOT, 4) - RELOC_NUMBER (R_XTENSA_RELATIVE, 5) - RELOC_NUMBER (R_XTENSA_PLT, 6) - RELOC_NUMBER (R_XTENSA_OP0, 8) - RELOC_NUMBER (R_XTENSA_OP1, 9) - RELOC_NUMBER (R_XTENSA_OP2, 10) - RELOC_NUMBER (R_XTENSA_ASM_EXPAND, 11) - RELOC_NUMBER (R_XTENSA_ASM_SIMPLIFY, 12) - RELOC_NUMBER (R_XTENSA_32_PCREL, 14) - RELOC_NUMBER (R_XTENSA_GNU_VTINHERIT, 15) - RELOC_NUMBER (R_XTENSA_GNU_VTENTRY, 16) - RELOC_NUMBER (R_XTENSA_DIFF8, 17) - RELOC_NUMBER (R_XTENSA_DIFF16, 18) - RELOC_NUMBER (R_XTENSA_DIFF32, 19) - RELOC_NUMBER (R_XTENSA_SLOT0_OP, 20) - RELOC_NUMBER (R_XTENSA_SLOT1_OP, 21) - RELOC_NUMBER (R_XTENSA_SLOT2_OP, 22) - RELOC_NUMBER (R_XTENSA_SLOT3_OP, 23) - RELOC_NUMBER (R_XTENSA_SLOT4_OP, 24) - RELOC_NUMBER (R_XTENSA_SLOT5_OP, 25) - RELOC_NUMBER (R_XTENSA_SLOT6_OP, 26) - RELOC_NUMBER (R_XTENSA_SLOT7_OP, 27) - RELOC_NUMBER (R_XTENSA_SLOT8_OP, 28) - RELOC_NUMBER (R_XTENSA_SLOT9_OP, 29) - RELOC_NUMBER (R_XTENSA_SLOT10_OP, 30) - RELOC_NUMBER (R_XTENSA_SLOT11_OP, 31) - RELOC_NUMBER (R_XTENSA_SLOT12_OP, 32) - RELOC_NUMBER (R_XTENSA_SLOT13_OP, 33) - RELOC_NUMBER (R_XTENSA_SLOT14_OP, 34) - RELOC_NUMBER (R_XTENSA_SLOT0_ALT, 35) - RELOC_NUMBER (R_XTENSA_SLOT1_ALT, 36) - RELOC_NUMBER (R_XTENSA_SLOT2_ALT, 37) - RELOC_NUMBER (R_XTENSA_SLOT3_ALT, 38) - RELOC_NUMBER (R_XTENSA_SLOT4_ALT, 39) - RELOC_NUMBER (R_XTENSA_SLOT5_ALT, 40) - RELOC_NUMBER (R_XTENSA_SLOT6_ALT, 41) - RELOC_NUMBER (R_XTENSA_SLOT7_ALT, 42) - RELOC_NUMBER (R_XTENSA_SLOT8_ALT, 43) - RELOC_NUMBER (R_XTENSA_SLOT9_ALT, 44) - RELOC_NUMBER (R_XTENSA_SLOT10_ALT, 45) - RELOC_NUMBER (R_XTENSA_SLOT11_ALT, 46) - RELOC_NUMBER (R_XTENSA_SLOT12_ALT, 47) - RELOC_NUMBER (R_XTENSA_SLOT13_ALT, 48) - RELOC_NUMBER (R_XTENSA_SLOT14_ALT, 49) - RELOC_NUMBER (R_XTENSA_TLSDESC_FN, 50) - RELOC_NUMBER (R_XTENSA_TLSDESC_ARG, 51) - RELOC_NUMBER (R_XTENSA_TLS_DTPOFF, 52) - RELOC_NUMBER (R_XTENSA_TLS_TPOFF, 53) - RELOC_NUMBER (R_XTENSA_TLS_FUNC, 54) - RELOC_NUMBER (R_XTENSA_TLS_ARG, 55) - RELOC_NUMBER (R_XTENSA_TLS_CALL, 56) -END_RELOC_NUMBERS (R_XTENSA_max) - -/* Processor-specific flags for the ELF header e_flags field. */ - -/* Four-bit Xtensa machine type field. */ -#define EF_XTENSA_MACH 0x0000000f - -/* Various CPU types. */ -#define E_XTENSA_MACH 0x00000000 - -/* Leave bits 0xf0 alone in case we ever have more than 16 cpu types. - Highly unlikely, but what the heck. */ - -#define EF_XTENSA_XT_INSN 0x00000100 -#define EF_XTENSA_XT_LIT 0x00000200 - - -/* Processor-specific dynamic array tags. */ - -/* Offset of the table that records the GOT location(s). */ -#define DT_XTENSA_GOT_LOC_OFF 0x70000000 - -/* Number of entries in the GOT location table. */ -#define DT_XTENSA_GOT_LOC_SZ 0x70000001 - - -/* Definitions for instruction and literal property tables. The - tables for ".gnu.linkonce.*" sections are placed in the following - sections: - - instruction tables: .gnu.linkonce.x.* - literal tables: .gnu.linkonce.p.* -*/ - -#define XTENSA_INSN_SEC_NAME ".xt.insn" -#define XTENSA_LIT_SEC_NAME ".xt.lit" -#define XTENSA_PROP_SEC_NAME ".xt.prop" - -typedef struct property_table_entry_t -{ - bfd_vma address; - bfd_vma size; - flagword flags; -} property_table_entry; - -/* Flags in the property tables to specify whether blocks of memory are - literals, instructions, data, or unreachable. For instructions, - blocks that begin loop targets and branch targets are designated. - Blocks that do not allow density instructions, instruction reordering - or transformation are also specified. Finally, for branch targets, - branch target alignment priority is included. Alignment of the next - block is specified in the current block and the size of the current - block does not include any fill required to align to the next - block. */ - -#define XTENSA_PROP_LITERAL 0x00000001 -#define XTENSA_PROP_INSN 0x00000002 -#define XTENSA_PROP_DATA 0x00000004 -#define XTENSA_PROP_UNREACHABLE 0x00000008 -/* Instruction-only properties at beginning of code. */ -#define XTENSA_PROP_INSN_LOOP_TARGET 0x00000010 -#define XTENSA_PROP_INSN_BRANCH_TARGET 0x00000020 -/* Instruction-only properties about code. */ -#define XTENSA_PROP_INSN_NO_DENSITY 0x00000040 -#define XTENSA_PROP_INSN_NO_REORDER 0x00000080 -/* Historically, NO_TRANSFORM was a property of instructions, - but it should apply to literals under certain circumstances. */ -#define XTENSA_PROP_NO_TRANSFORM 0x00000100 - -/* Branch target alignment information. This transmits information - to the linker optimization about the priority of aligning a - particular block for branch target alignment: None, low priority, - high priority, or required. These only need to be checked in - instruction blocks marked as XTENSA_PROP_INSN_BRANCH_TARGET. - Common usage is: - - switch (GET_XTENSA_PROP_BT_ALIGN(flags)) - case XTENSA_PROP_BT_ALIGN_NONE: - case XTENSA_PROP_BT_ALIGN_LOW: - case XTENSA_PROP_BT_ALIGN_HIGH: - case XTENSA_PROP_BT_ALIGN_REQUIRE: -*/ -#define XTENSA_PROP_BT_ALIGN_MASK 0x00000600 - -/* No branch target alignment. */ -#define XTENSA_PROP_BT_ALIGN_NONE 0x0 -/* Low priority branch target alignment. */ -#define XTENSA_PROP_BT_ALIGN_LOW 0x1 -/* High priority branch target alignment. */ -#define XTENSA_PROP_BT_ALIGN_HIGH 0x2 -/* Required branch target alignment. */ -#define XTENSA_PROP_BT_ALIGN_REQUIRE 0x3 - -#define GET_XTENSA_PROP_BT_ALIGN(flag) \ - (((unsigned)((flag) & (XTENSA_PROP_BT_ALIGN_MASK))) >> 9) -#define SET_XTENSA_PROP_BT_ALIGN(flag, align) \ - (((flag) & (~XTENSA_PROP_BT_ALIGN_MASK)) | \ - (((align) << 9) & XTENSA_PROP_BT_ALIGN_MASK)) - -/* Alignment is specified in the block BEFORE the one that needs - alignment. Up to 5 bits. Use GET_XTENSA_PROP_ALIGNMENT(flags) to - get the required alignment specified as a power of 2. Use - SET_XTENSA_PROP_ALIGNMENT(flags, pow2) to set the required - alignment. Be careful of side effects since the SET will evaluate - flags twice. Also, note that the SIZE of a block in the property - table does not include the alignment size, so the alignment fill - must be calculated to determine if two blocks are contiguous. - TEXT_ALIGN is not currently implemented but is a placeholder for a - possible future implementation. */ - -#define XTENSA_PROP_ALIGN 0x00000800 - -#define XTENSA_PROP_ALIGNMENT_MASK 0x0001f000 - -#define GET_XTENSA_PROP_ALIGNMENT(flag) \ - (((unsigned)((flag) & (XTENSA_PROP_ALIGNMENT_MASK))) >> 12) -#define SET_XTENSA_PROP_ALIGNMENT(flag, align) \ - (((flag) & (~XTENSA_PROP_ALIGNMENT_MASK)) | \ - (((align) << 12) & XTENSA_PROP_ALIGNMENT_MASK)) - -#define XTENSA_PROP_INSN_ABSLIT 0x00020000 - -#endif /* _ELF_XTENSA_H */ diff --git a/include/environ.h b/include/environ.h deleted file mode 100644 index c18902b..0000000 --- a/include/environ.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Declare the environ system variable. - Copyright (C) 2015 Free Software Foundation, Inc. - -This file is part of the libiberty library. -Libiberty is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -Libiberty is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with libiberty; see the file COPYING.LIB. If not, -write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, -Boston, MA 02110-1301, USA. */ - -/* On OSX, the environ variable can be used directly in the code of an - executable, but cannot be used in the code of a shared library (such as - GCC's liblto_plugin, which links in libiberty code). Instead, the - function _NSGetEnviron can be called to get the address of environ. */ - -#ifndef HAVE_ENVIRON_DECL -# ifdef __APPLE__ -# include -# define environ (*_NSGetEnviron ()) -# else -extern char **environ; -# endif -# define HAVE_ENVIRON_DECL -#endif diff --git a/include/envlock.h b/include/envlock.h deleted file mode 100644 index 799cf7f..0000000 --- a/include/envlock.h +++ /dev/null @@ -1,15 +0,0 @@ -/* envlock.h -- header file for env routines. */ - -#ifndef _INCLUDE_ENVLOCK_H_ -#define _INCLUDE_ENVLOCK_H_ - -#include <_ansi.h> -#include - -#define ENV_LOCK __env_lock(reent_ptr) -#define ENV_UNLOCK __env_unlock(reent_ptr) - -void __env_lock (struct _reent *reent); -void __env_unlock (struct _reent *reent); - -#endif /* _INCLUDE_ENVLOCK_H_ */ diff --git a/include/envz.h b/include/envz.h deleted file mode 100644 index e6a31c3..0000000 --- a/include/envz.h +++ /dev/null @@ -1,16 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include - -/* The newlib implementation of these functions assumes that sizeof(char) == 1. */ -char * envz_entry (const char *envz, size_t envz_len, const char *name); -char * envz_get (const char *envz, size_t envz_len, const char *name); -error_t envz_add (char **envz, size_t *envz_len, const char *name, const char *value); -error_t envz_merge (char **envz, size_t *envz_len, const char *envz2, size_t envz2_len, int override); -void envz_remove(char **envz, size_t *envz_len, const char *name); -void envz_strip (char **envz, size_t *envz_len); diff --git a/include/errno.h b/include/errno.h deleted file mode 100644 index 7cc2ca8..0000000 --- a/include/errno.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef __ERRNO_H__ -#define __ERRNO_H__ - -#ifndef __error_t_defined -typedef int error_t; -#define __error_t_defined 1 -#endif - -#include - -#endif /* !__ERRNO_H__ */ diff --git a/include/fastmath.h b/include/fastmath.h deleted file mode 100644 index 95eea5f..0000000 --- a/include/fastmath.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _FASTMATH_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _FASTMATH_H_ - -#include -#include - -#ifdef __cplusplus -} -#endif -#endif /* _FASTMATH_H_ */ diff --git a/include/fcntl.h b/include/fcntl.h deleted file mode 100644 index 86a9167..0000000 --- a/include/fcntl.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/include/fenv.h b/include/fenv.h deleted file mode 100644 index 4795cc9..0000000 --- a/include/fenv.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2017 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#ifndef _FENV_H -#define _FENV_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Exception */ -int feclearexcept(int excepts); -int fegetexceptflag(fexcept_t *flagp, int excepts); -int feraiseexcept(int excepts); -int fesetexceptflag(const fexcept_t *flagp, int excepts); -int fetestexcept(int excepts); - -/* Rounding mode */ -int fegetround(void); -int fesetround(int rounding_mode); - -/* Float environment */ -int fegetenv(fenv_t *envp); -int feholdexcept(fenv_t *envp); -int fesetenv(const fenv_t *envp); -int feupdateenv(const fenv_t *envp); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/fibheap.h b/include/fibheap.h deleted file mode 100644 index 85b10c5..0000000 --- a/include/fibheap.h +++ /dev/null @@ -1,94 +0,0 @@ -/* A Fibonacci heap datatype. - Copyright (C) 1998-2015 Free Software Foundation, Inc. - Contributed by Daniel Berlin (dan@cgsoftware.com). - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GCC is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street - Fifth Floor, -Boston, MA 02110-1301, USA. */ - -/* Fibonacci heaps are somewhat complex, but, there's an article in - DDJ that explains them pretty well: - - http://www.ddj.com/articles/1997/9701/9701o/9701o.htm?topic=algoritms - - Introduction to algorithms by Corman and Rivest also goes over them. - - The original paper that introduced them is "Fibonacci heaps and their - uses in improved network optimization algorithms" by Tarjan and - Fredman (JACM 34(3), July 1987). - - Amortized and real worst case time for operations: - - ExtractMin: O(lg n) amortized. O(n) worst case. - DecreaseKey: O(1) amortized. O(lg n) worst case. - Insert: O(2) amortized. O(1) actual. - Union: O(1) amortized. O(1) actual. */ - -#ifndef _FIBHEAP_H_ -#define _FIBHEAP_H_ - -#include "ansidecl.h" - -#ifdef __cplusplus -extern "C" { -#endif - -typedef long fibheapkey_t; - -typedef struct fibheap -{ - size_t nodes; - struct fibnode *min; - struct fibnode *root; -} *fibheap_t; - -typedef struct fibnode -{ - struct fibnode *parent; - struct fibnode *child; - struct fibnode *left; - struct fibnode *right; - fibheapkey_t key; - void *data; -#if defined (__GNUC__) && (!defined (SIZEOF_INT) || SIZEOF_INT < 4) - __extension__ unsigned long int degree : 31; - __extension__ unsigned long int mark : 1; -#else - unsigned int degree : 31; - unsigned int mark : 1; -#endif -} *fibnode_t; - -extern fibheap_t fibheap_new (void); -extern fibnode_t fibheap_insert (fibheap_t, fibheapkey_t, void *); -extern int fibheap_empty (fibheap_t); -extern fibheapkey_t fibheap_min_key (fibheap_t); -extern fibheapkey_t fibheap_replace_key (fibheap_t, fibnode_t, - fibheapkey_t); -extern void *fibheap_replace_key_data (fibheap_t, fibnode_t, - fibheapkey_t, void *); -extern void *fibheap_extract_min (fibheap_t); -extern void *fibheap_min (fibheap_t); -extern void *fibheap_replace_data (fibheap_t, fibnode_t, void *); -extern void *fibheap_delete_node (fibheap_t, fibnode_t); -extern void fibheap_delete (fibheap_t); -extern fibheap_t fibheap_union (fibheap_t, fibheap_t); - -#ifdef __cplusplus -} -#endif - -#endif /* _FIBHEAP_H_ */ diff --git a/include/filenames.h b/include/filenames.h deleted file mode 100644 index 1161daa..0000000 --- a/include/filenames.h +++ /dev/null @@ -1,99 +0,0 @@ -/* Macros for taking apart, interpreting and processing file names. - - These are here because some non-Posix (a.k.a. DOSish) systems have - drive letter brain-damage at the beginning of an absolute file name, - use forward- and back-slash in path names interchangeably, and - some of them have case-insensitive file names. - - Copyright (C) 2000-2015 Free Software Foundation, Inc. - -This file is part of BFD, the Binary File Descriptor library. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef FILENAMES_H -#define FILENAMES_H - -#include "hashtab.h" /* for hashval_t */ - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) || defined (__CYGWIN__) -# ifndef HAVE_DOS_BASED_FILE_SYSTEM -# define HAVE_DOS_BASED_FILE_SYSTEM 1 -# endif -# ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM -# define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1 -# endif -# define HAS_DRIVE_SPEC(f) HAS_DOS_DRIVE_SPEC (f) -# define IS_DIR_SEPARATOR(c) IS_DOS_DIR_SEPARATOR (c) -# define IS_ABSOLUTE_PATH(f) IS_DOS_ABSOLUTE_PATH (f) -#else /* not DOSish */ -# if defined(__APPLE__) -# ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM -# define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1 -# endif -# endif /* __APPLE__ */ -# define HAS_DRIVE_SPEC(f) (0) -# define IS_DIR_SEPARATOR(c) IS_UNIX_DIR_SEPARATOR (c) -# define IS_ABSOLUTE_PATH(f) IS_UNIX_ABSOLUTE_PATH (f) -#endif - -#define IS_DIR_SEPARATOR_1(dos_based, c) \ - (((c) == '/') \ - || (((c) == '\\') && (dos_based))) - -#define HAS_DRIVE_SPEC_1(dos_based, f) \ - ((f)[0] && ((f)[1] == ':') && (dos_based)) - -/* Remove the drive spec from F, assuming HAS_DRIVE_SPEC (f). - The result is a pointer to the remainder of F. */ -#define STRIP_DRIVE_SPEC(f) ((f) + 2) - -#define IS_DOS_DIR_SEPARATOR(c) IS_DIR_SEPARATOR_1 (1, c) -#define IS_DOS_ABSOLUTE_PATH(f) IS_ABSOLUTE_PATH_1 (1, f) -#define HAS_DOS_DRIVE_SPEC(f) HAS_DRIVE_SPEC_1 (1, f) - -#define IS_UNIX_DIR_SEPARATOR(c) IS_DIR_SEPARATOR_1 (0, c) -#define IS_UNIX_ABSOLUTE_PATH(f) IS_ABSOLUTE_PATH_1 (0, f) - -/* Note that when DOS_BASED is true, IS_ABSOLUTE_PATH accepts d:foo as - well, although it is only semi-absolute. This is because the users - of IS_ABSOLUTE_PATH want to know whether to prepend the current - working directory to a file name, which should not be done with a - name like d:foo. */ -#define IS_ABSOLUTE_PATH_1(dos_based, f) \ - (IS_DIR_SEPARATOR_1 (dos_based, (f)[0]) \ - || HAS_DRIVE_SPEC_1 (dos_based, f)) - -extern int filename_cmp (const char *s1, const char *s2); -#define FILENAME_CMP(s1, s2) filename_cmp(s1, s2) - -extern int filename_ncmp (const char *s1, const char *s2, - size_t n); - -extern hashval_t filename_hash (const void *s); - -extern int filename_eq (const void *s1, const void *s2); - -extern int canonical_filename_eq (const char *a, const char *b); - -#ifdef __cplusplus -} -#endif - -#endif /* FILENAMES_H */ diff --git a/include/floatformat.h b/include/floatformat.h deleted file mode 100644 index af4d09c..0000000 --- a/include/floatformat.h +++ /dev/null @@ -1,159 +0,0 @@ -/* IEEE floating point support declarations, for GDB, the GNU Debugger. - Copyright (C) 1991-2015 Free Software Foundation, Inc. - -This file is part of GDB. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#if !defined (FLOATFORMAT_H) -#define FLOATFORMAT_H 1 - -#include "ansidecl.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* A floatformat consists of a sign bit, an exponent and a mantissa. Once the - bytes are concatenated according to the byteorder flag, then each of those - fields is contiguous. We number the bits with 0 being the most significant - (i.e. BITS_BIG_ENDIAN type numbering), and specify which bits each field - contains with the *_start and *_len fields. */ - -/* What is the order of the bytes? */ - -enum floatformat_byteorders { - /* Standard little endian byte order. - EX: 1.2345678e10 => 00 00 80 c5 e0 fe 06 42 */ - floatformat_little, - - /* Standard big endian byte order. - EX: 1.2345678e10 => 42 06 fe e0 c5 80 00 00 */ - floatformat_big, - - /* Little endian byte order but big endian word order. - EX: 1.2345678e10 => e0 fe 06 42 00 00 80 c5 */ - floatformat_littlebyte_bigword, - - /* VAX byte order. Little endian byte order with 16-bit words. The - following example is an illustration of the byte order only; VAX - doesn't have a fully IEEE compliant floating-point format. - EX: 1.2345678e10 => 80 c5 00 00 06 42 e0 fe */ - floatformat_vax -}; - -enum floatformat_intbit { floatformat_intbit_yes, floatformat_intbit_no }; - -struct floatformat -{ - enum floatformat_byteorders byteorder; - unsigned int totalsize; /* Total size of number in bits */ - - /* Sign bit is always one bit long. 1 means negative, 0 means positive. */ - unsigned int sign_start; - - unsigned int exp_start; - unsigned int exp_len; - /* Bias added to a "true" exponent to form the biased exponent. It - is intentionally signed as, otherwize, -exp_bias can turn into a - very large number (e.g., given the exp_bias of 0x3fff and a 64 - bit long, the equation (long)(1 - exp_bias) evaluates to - 4294950914) instead of -16382). */ - int exp_bias; - /* Exponent value which indicates NaN. This is the actual value stored in - the float, not adjusted by the exp_bias. This usually consists of all - one bits. */ - unsigned int exp_nan; - - unsigned int man_start; - unsigned int man_len; - - /* Is the integer bit explicit or implicit? */ - enum floatformat_intbit intbit; - - /* Internal name for debugging. */ - const char *name; - - /* Validator method. */ - int (*is_valid) (const struct floatformat *fmt, const void *from); - - /* Is the format actually the sum of two smaller floating point - formats (IBM long double, as described in - gcc/config/rs6000/darwin-ldouble-format)? If so, this is the - smaller format in question, and the fields sign_start through - intbit describe the first half. If not, this is NULL. */ - const struct floatformat *split_half; -}; - -/* floatformats for IEEE single and double, big and little endian. */ - -extern const struct floatformat floatformat_ieee_half_big; -extern const struct floatformat floatformat_ieee_half_little; -extern const struct floatformat floatformat_ieee_single_big; -extern const struct floatformat floatformat_ieee_single_little; -extern const struct floatformat floatformat_ieee_double_big; -extern const struct floatformat floatformat_ieee_double_little; - -/* floatformat for ARM IEEE double, little endian bytes and big endian words */ - -extern const struct floatformat floatformat_ieee_double_littlebyte_bigword; - -/* floatformats for VAX. */ - -extern const struct floatformat floatformat_vax_f; -extern const struct floatformat floatformat_vax_d; -extern const struct floatformat floatformat_vax_g; - -/* floatformats for various extendeds. */ - -extern const struct floatformat floatformat_i387_ext; -extern const struct floatformat floatformat_m68881_ext; -extern const struct floatformat floatformat_i960_ext; -extern const struct floatformat floatformat_m88110_ext; -extern const struct floatformat floatformat_m88110_harris_ext; -extern const struct floatformat floatformat_arm_ext_big; -extern const struct floatformat floatformat_arm_ext_littlebyte_bigword; -/* IA-64 Floating Point register spilt into memory. */ -extern const struct floatformat floatformat_ia64_spill_big; -extern const struct floatformat floatformat_ia64_spill_little; -extern const struct floatformat floatformat_ia64_quad_big; -extern const struct floatformat floatformat_ia64_quad_little; -/* IBM long double (double+double). */ -extern const struct floatformat floatformat_ibm_long_double_big; -extern const struct floatformat floatformat_ibm_long_double_little; - -/* Convert from FMT to a double. - FROM is the address of the extended float. - Store the double in *TO. */ - -extern void -floatformat_to_double (const struct floatformat *, const void *, double *); - -/* The converse: convert the double *FROM to FMT - and store where TO points. */ - -extern void -floatformat_from_double (const struct floatformat *, const double *, void *); - -/* Return non-zero iff the data at FROM is a valid number in format FMT. */ - -extern int -floatformat_is_valid (const struct floatformat *fmt, const void *from); - -#ifdef __cplusplus -} -#endif - -#endif /* defined (FLOATFORMAT_H) */ diff --git a/include/fnmatch.h b/include/fnmatch.h deleted file mode 100644 index a94e923..0000000 --- a/include/fnmatch.h +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: src/include/fnmatch.h,v 1.10 2002/03/23 17:24:53 imp Exp $ - * @(#)fnmatch.h 8.1 (Berkeley) 6/2/93 - */ - -#ifndef _FNMATCH_H_ -#define _FNMATCH_H_ - -#include - -#define FNM_NOMATCH 1 /* Match failed. */ - -#define FNM_NOESCAPE 0x01 /* Disable backslash escaping. */ -#define FNM_PATHNAME 0x02 /* Slash must be matched by slash. */ -#define FNM_PERIOD 0x04 /* Period must be matched by period. */ - -#if __GNU_VISIBLE -#define FNM_LEADING_DIR 0x08 /* Ignore / after Imatch. */ -#define FNM_CASEFOLD 0x10 /* Case insensitive search. */ -#define FNM_IGNORECASE FNM_CASEFOLD -#define FNM_FILE_NAME FNM_PATHNAME -#endif - -__BEGIN_DECLS -int fnmatch(const char *, const char *, int); -__END_DECLS - -#endif /* !_FNMATCH_H_ */ diff --git a/include/fopen-bin.h b/include/fopen-bin.h deleted file mode 100644 index 8f5f771..0000000 --- a/include/fopen-bin.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Macros for the 'type' part of an fopen, freopen or fdopen. - - [Update] - - This version is for "binary" systems, where text and binary files are - different. An example is Mess-Dose. Many Unix systems could also - cope with a "b" in the string, indicating binary files, but some reject this - (and thereby don't conform to ANSI C, but what else is new?). - - Copyright 1996-2012 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* This file is designed for inclusion by host-dependent .h files. No - user application should include it directly, since that would make - the application unable to be configured for both "same" and "binary" - variant systems. */ - -#define FOPEN_RB "rb" -#define FOPEN_WB "wb" -#define FOPEN_AB "ab" -#define FOPEN_RUB "r+b" -#define FOPEN_WUB "w+b" -#define FOPEN_AUB "a+b" - -#define FOPEN_RT "r" -#define FOPEN_WT "w" -#define FOPEN_AT "a" -#define FOPEN_RUT "r+" -#define FOPEN_WUT "w+" -#define FOPEN_AUT "a+" diff --git a/include/fopen-same.h b/include/fopen-same.h deleted file mode 100644 index d139e02..0000000 --- a/include/fopen-same.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Macros for the 'type' part of an fopen, freopen or fdopen. - - [Update] - - This version is for "same" systems, where text and binary files are - the same. An example is Unix. Many Unix systems could also add a - "b" to the string, indicating binary files, but some reject this - (and thereby don't conform to ANSI C, but what else is new?). - - Copyright 1996-2012 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* This file is designed for inclusion by host-dependent .h files. No - user application should include it directly, since that would make - the application unable to be configured for both "same" and "binary" - variant systems. */ - -#define FOPEN_RB "r" -#define FOPEN_WB "w" -#define FOPEN_AB "a" -#define FOPEN_RUB "r+" -#define FOPEN_WUB "w+" -#define FOPEN_AUB "a+" - -#define FOPEN_RT "r" -#define FOPEN_WT "w" -#define FOPEN_AT "a" -#define FOPEN_RUT "r+" -#define FOPEN_WUT "w+" -#define FOPEN_AUT "a+" diff --git a/include/fopen-vms.h b/include/fopen-vms.h deleted file mode 100644 index e2b2dc7..0000000 --- a/include/fopen-vms.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Macros for the 'type' part of an fopen, freopen or fdopen. - - [Update] - - This version is for VMS systems, where text and binary files are - different. - - Copyright 1996-2012 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* This file is designed for inclusion by host-dependent .h files. No - user application should include it directly, since that would make - the application unable to be configured for both "same" and "binary" - variant systems. */ - -#define FOPEN_RB "rb,rfm=udf,rat=none" -#define FOPEN_WB "wb,rfm=udf,rat=none" -#define FOPEN_AB "ab,rfm=udf,rat=none" -#define FOPEN_RUB "r+b,rfm=udf,rat=none" -#define FOPEN_WUB "w+b,rfm=udf,rat=none" -#define FOPEN_AUB "a+b,rfm=udf,rat=none" - -#define FOPEN_RT "r" -#define FOPEN_WT "w" -#define FOPEN_AT "a" -#define FOPEN_RUT "r+" -#define FOPEN_WUT "w+" -#define FOPEN_AUT "a+" diff --git a/include/ftw.h b/include/ftw.h deleted file mode 100644 index 8de1e1e..0000000 --- a/include/ftw.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -* Copyright © 2005-2020 Rich Felker, et al. -* -* Permission is hereby granted, free of charge, to any person obtaining -* a copy of this software and associated documentation files (the -* "Software"), to deal in the Software without restriction, including -* without limitation the rights to use, copy, modify, merge, publish, -* distribute, sublicense, and/or sell copies of the Software, and to -* permit persons to whom the Software is furnished to do so, subject to -* the following conditions: -* -* The above copyright notice and this permission notice shall be -* included in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifndef _FTW_H -#define _FTW_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * Valid flags for the 3rd argument to the function that is passed as the - * second argument to ftw(3) and nftw(3). Say it three times fast! - */ -#define FTW_F 0 /* File. */ -#define FTW_D 1 /* Directory. */ -#define FTW_DNR 2 /* Directory without read permission. */ -#define FTW_DP 3 /* Directory with subdirectories visited. */ -#define FTW_NS 4 /* Unknown type; stat() failed. */ -#define FTW_SL 5 /* Symbolic link. */ -#define FTW_SLN 6 /* Sym link that names a nonexistent file. */ - -/* - * Flags for use as the 4th argument to nftw(3). These may be ORed together. - */ -#define FTW_PHYS 0x01 /* Physical walk, don't follow sym links. */ -#define FTW_MOUNT 0x02 /* The walk does not cross a mount point. */ -#define FTW_DEPTH 0x04 /* Subdirs visited before the dir itself. */ -#define FTW_CHDIR 0x08 /* Change to a directory before reading it. */ - -struct FTW { - int base; - int level; -}; - -int ftw(const char *, int (*)(const char *, const struct stat *, int), int); -int nftw(const char *, int (*)(const char *, const struct stat *, int, struct FTW *), int, int); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/gcc-c-fe.def b/include/gcc-c-fe.def deleted file mode 100644 index 25ace1c..0000000 --- a/include/gcc-c-fe.def +++ /dev/null @@ -1,197 +0,0 @@ -/* Interface between GCC C FE and GDB -*- c -*- - - Copyright (C) 2014-2015 Free Software Foundation, Inc. - - This file is part of GCC. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - - - -/* Create a new "decl" in GCC. A decl is a declaration, basically a - kind of symbol. - - NAME is the name of the new symbol. SYM_KIND is the kind of - symbol being requested. SYM_TYPE is the new symbol's C type; - except for labels, where this is not meaningful and should be - zero. If SUBSTITUTION_NAME is not NULL, then a reference to this - decl in the source will later be substituted with a dereference - of a variable of the given name. Otherwise, for symbols having - an address (e.g., functions), ADDRESS is the address. FILENAME - and LINE_NUMBER refer to the symbol's source location. If this - is not known, FILENAME can be NULL and LINE_NUMBER can be 0. - This function returns the new decl. */ - -GCC_METHOD7 (gcc_decl, build_decl, - const char *, /* Argument NAME. */ - enum gcc_c_symbol_kind, /* Argument SYM_KIND. */ - gcc_type, /* Argument SYM_TYPE. */ - const char *, /* Argument SUBSTITUTION_NAME. */ - gcc_address, /* Argument ADDRESS. */ - const char *, /* Argument FILENAME. */ - unsigned int) /* Argument LINE_NUMBER. */ - -/* Insert a GCC decl into the symbol table. DECL is the decl to - insert. IS_GLOBAL is true if this is an outermost binding, and - false if it is a possibly-shadowing binding. */ - -GCC_METHOD2 (int /* bool */, bind, - gcc_decl, /* Argument DECL. */ - int /* bool */) /* Argument IS_GLOBAL. */ - -/* Insert a tagged type into the symbol table. NAME is the tag name - of the type and TAGGED_TYPE is the type itself. TAGGED_TYPE must - be either a struct, union, or enum type, as these are the only - types that have tags. FILENAME and LINE_NUMBER refer to the type's - source location. If this is not known, FILENAME can be NULL and - LINE_NUMBER can be 0. */ - -GCC_METHOD4 (int /* bool */, tagbind, - const char *, /* Argument NAME. */ - gcc_type, /* Argument TAGGED_TYPE. */ - const char *, /* Argument FILENAME. */ - unsigned int) /* Argument LINE_NUMBER. */ - -/* Return the type of a pointer to a given base type. */ - -GCC_METHOD1 (gcc_type, build_pointer_type, - gcc_type) /* Argument BASE_TYPE. */ - -/* Create a new 'struct' type. Initially it has no fields. */ - -GCC_METHOD0 (gcc_type, build_record_type) - -/* Create a new 'union' type. Initially it has no fields. */ - -GCC_METHOD0 (gcc_type, build_union_type) - -/* Add a field to a struct or union type. FIELD_NAME is the field's - name. FIELD_TYPE is the type of the field. BITSIZE and BITPOS - indicate where in the struct the field occurs. */ - -GCC_METHOD5 (int /* bool */, build_add_field, - gcc_type, /* Argument RECORD_OR_UNION_TYPE. */ - const char *, /* Argument FIELD_NAME. */ - gcc_type, /* Argument FIELD_TYPE. */ - unsigned long, /* Argument BITSIZE. */ - unsigned long) /* Argument BITPOS. */ - -/* After all the fields have been added to a struct or union, the - struct or union type must be "finished". This does some final - cleanups in GCC. */ - -GCC_METHOD2 (int /* bool */, finish_record_or_union, - gcc_type, /* Argument RECORD_OR_UNION_TYPE. */ - unsigned long) /* Argument SIZE_IN_BYTES. */ - -/* Create a new 'enum' type. The new type initially has no - associated constants. */ - -GCC_METHOD1 (gcc_type, build_enum_type, - gcc_type) /* Argument UNDERLYING_INT_TYPE. */ - -/* Add a new constant to an enum type. NAME is the constant's - name and VALUE is its value. */ - -GCC_METHOD3 (int /* bool */, build_add_enum_constant, - gcc_type, /* Argument ENUM_TYPE. */ - const char *, /* Argument NAME. */ - unsigned long) /* Argument VALUE. */ - -/* After all the constants have been added to an enum, the type must - be "finished". This does some final cleanups in GCC. */ - -GCC_METHOD1 (int /* bool */, finish_enum_type, - gcc_type) /* Argument ENUM_TYPE. */ - -/* Create a new function type. RETURN_TYPE is the type returned by - the function, and ARGUMENT_TYPES is a vector, of length NARGS, of - the argument types. IS_VARARGS is true if the function is - varargs. */ - -GCC_METHOD3 (gcc_type, build_function_type, - gcc_type, /* Argument RETURN_TYPE. */ - const struct gcc_type_array *, /* Argument ARGUMENT_TYPES. */ - int /* bool */) /* Argument IS_VARARGS. */ - -/* Return an integer type with the given properties. */ - -GCC_METHOD2 (gcc_type, int_type, - int /* bool */, /* Argument IS_UNSIGNED. */ - unsigned long) /* Argument SIZE_IN_BYTES. */ - -/* Return a floating point type with the given properties. */ - -GCC_METHOD1 (gcc_type, float_type, - unsigned long) /* Argument SIZE_IN_BYTES. */ - -/* Return the 'void' type. */ - -GCC_METHOD0 (gcc_type, void_type) - -/* Return the 'bool' type. */ - -GCC_METHOD0 (gcc_type, bool_type) - -/* Create a new array type. If NUM_ELEMENTS is -1, then the array - is assumed to have an unknown length. */ - -GCC_METHOD2 (gcc_type, build_array_type, - gcc_type, /* Argument ELEMENT_TYPE. */ - int) /* Argument NUM_ELEMENTS. */ - -/* Create a new variably-sized array type. UPPER_BOUND_NAME is the - name of a local variable that holds the upper bound of the array; - it is one less than the array size. */ - -GCC_METHOD2 (gcc_type, build_vla_array_type, - gcc_type, /* Argument ELEMENT_TYPE. */ - const char *) /* Argument UPPER_BOUND_NAME. */ - -/* Return a qualified variant of a given base type. QUALIFIERS says - which qualifiers to use; it is composed of or'd together - constants from 'enum gcc_qualifiers'. */ - -GCC_METHOD2 (gcc_type, build_qualified_type, - gcc_type, /* Argument UNQUALIFIED_TYPE. */ - enum gcc_qualifiers) /* Argument QUALIFIERS. */ - -/* Build a complex type given its element type. */ - -GCC_METHOD1 (gcc_type, build_complex_type, - gcc_type) /* Argument ELEMENT_TYPE. */ - -/* Build a vector type given its element type and number of - elements. */ - -GCC_METHOD2 (gcc_type, build_vector_type, - gcc_type, /* Argument ELEMENT_TYPE. */ - int) /* Argument NUM_ELEMENTS. */ - -/* Build a constant. NAME is the constant's name and VALUE is its - value. FILENAME and LINE_NUMBER refer to the type's source - location. If this is not known, FILENAME can be NULL and - LINE_NUMBER can be 0. */ - -GCC_METHOD5 (int /* bool */, build_constant, - gcc_type, /* Argument TYPE. */ - const char *, /* Argument NAME. */ - unsigned long, /* Argument VALUE. */ - const char *, /* Argument FILENAME. */ - unsigned int) /* Argument LINE_NUMBER. */ - -/* Emit an error and return an error type object. */ - -GCC_METHOD1 (gcc_type, error, - const char *) /* Argument MESSAGE. */ diff --git a/include/gcc-c-interface.h b/include/gcc-c-interface.h deleted file mode 100644 index 95d0fc9..0000000 --- a/include/gcc-c-interface.h +++ /dev/null @@ -1,220 +0,0 @@ -/* Interface between GCC C FE and GDB - - Copyright (C) 2014-2015 Free Software Foundation, Inc. - - This file is part of GCC. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#ifndef GCC_C_INTERFACE_H -#define GCC_C_INTERFACE_H - -#include "gcc-interface.h" - -/* This header defines the interface to the GCC API. It must be both - valid C and valid C++, because it is included by both programs. */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declaration. */ - -struct gcc_c_context; - -/* - * Definitions and declarations for the C front end. - */ - -/* Defined versions of the C front-end API. */ - -enum gcc_c_api_version -{ - GCC_C_FE_VERSION_0 = 0 -}; - -/* Qualifiers. */ - -enum gcc_qualifiers -{ - GCC_QUALIFIER_CONST = 1, - GCC_QUALIFIER_VOLATILE = 2, - GCC_QUALIFIER_RESTRICT = 4 -}; - -/* This enumerates the kinds of decls that GDB can create. */ - -enum gcc_c_symbol_kind -{ - /* A function. */ - - GCC_C_SYMBOL_FUNCTION, - - /* A variable. */ - - GCC_C_SYMBOL_VARIABLE, - - /* A typedef. */ - - GCC_C_SYMBOL_TYPEDEF, - - /* A label. */ - - GCC_C_SYMBOL_LABEL -}; - -/* This enumerates the types of symbols that GCC might request from - GDB. */ - -enum gcc_c_oracle_request -{ - /* An ordinary symbol -- a variable, function, typedef, or enum - constant. */ - - GCC_C_ORACLE_SYMBOL, - - /* A struct, union, or enum tag. */ - - GCC_C_ORACLE_TAG, - - /* A label. */ - - GCC_C_ORACLE_LABEL -}; - -/* The type of the function called by GCC to ask GDB for a symbol's - definition. DATUM is an arbitrary value supplied when the oracle - function is registered. CONTEXT is the GCC context in which the - request is being made. REQUEST specifies what sort of symbol is - being requested, and IDENTIFIER is the name of the symbol. */ - -typedef void gcc_c_oracle_function (void *datum, - struct gcc_c_context *context, - enum gcc_c_oracle_request request, - const char *identifier); - -/* The type of the function called by GCC to ask GDB for a symbol's - address. This should return 0 if the address is not known. */ - -typedef gcc_address gcc_c_symbol_address_function (void *datum, - struct gcc_c_context *ctxt, - const char *identifier); - -/* An array of types used for creating a function type. */ - -struct gcc_type_array -{ - /* Number of elements. */ - - int n_elements; - - /* The elements. */ - - gcc_type *elements; -}; - -/* The vtable used by the C front end. */ - -struct gcc_c_fe_vtable -{ - /* The version of the C interface. The value is one of the - gcc_c_api_version constants. */ - - unsigned int c_version; - - /* Set the callbacks for this context. - - The binding oracle is called whenever the C parser needs to look - up a symbol. This gives the caller a chance to lazily - instantiate symbols using other parts of the gcc_c_fe_interface - API. - - The address oracle is called whenever the C parser needs to look - up a symbol. This is only called for symbols not provided by the - symbol oracle -- that is, just built-in functions where GCC - provides the declaration. - - DATUM is an arbitrary piece of data that is passed back verbatim - to the callbakcs in requests. */ - - void (*set_callbacks) (struct gcc_c_context *self, - gcc_c_oracle_function *binding_oracle, - gcc_c_symbol_address_function *address_oracle, - void *datum); - -#define GCC_METHOD0(R, N) \ - R (*N) (struct gcc_c_context *); -#define GCC_METHOD1(R, N, A) \ - R (*N) (struct gcc_c_context *, A); -#define GCC_METHOD2(R, N, A, B) \ - R (*N) (struct gcc_c_context *, A, B); -#define GCC_METHOD3(R, N, A, B, C) \ - R (*N) (struct gcc_c_context *, A, B, C); -#define GCC_METHOD4(R, N, A, B, C, D) \ - R (*N) (struct gcc_c_context *, A, B, C, D); -#define GCC_METHOD5(R, N, A, B, C, D, E) \ - R (*N) (struct gcc_c_context *, A, B, C, D, E); -#define GCC_METHOD7(R, N, A, B, C, D, E, F, G) \ - R (*N) (struct gcc_c_context *, A, B, C, D, E, F, G); - -#include "gcc-c-fe.def" - -#undef GCC_METHOD0 -#undef GCC_METHOD1 -#undef GCC_METHOD2 -#undef GCC_METHOD3 -#undef GCC_METHOD4 -#undef GCC_METHOD5 -#undef GCC_METHOD7 - -}; - -/* The C front end object. */ - -struct gcc_c_context -{ - /* Base class. */ - - struct gcc_base_context base; - - /* Our vtable. This is a separate field because this is simpler - than implementing a vtable inheritance scheme in C. */ - - const struct gcc_c_fe_vtable *c_ops; -}; - -/* The name of the .so that the compiler builds. We dlopen this - later. */ - -#define GCC_C_FE_LIBCC libcc1.so - -/* The compiler exports a single initialization function. This macro - holds its name as a symbol. */ - -#define GCC_C_FE_CONTEXT gcc_c_fe_context - -/* The type of the initialization function. The caller passes in the - desired base version and desired C-specific version. If the - request can be satisfied, a compatible gcc_context object will be - returned. Otherwise, the function returns NULL. */ - -typedef struct gcc_c_context *gcc_c_fe_context_function - (enum gcc_base_api_version, - enum gcc_c_api_version); - -#ifdef __cplusplus -} -#endif - -#endif /* GCC_C_INTERFACE_H */ diff --git a/include/gcc-interface.h b/include/gcc-interface.h deleted file mode 100644 index df7db6e..0000000 --- a/include/gcc-interface.h +++ /dev/null @@ -1,127 +0,0 @@ -/* Generic interface between GCC and GDB - - Copyright (C) 2014-2015 Free Software Foundation, Inc. - - This file is part of GCC. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#ifndef GCC_INTERFACE_H -#define GCC_INTERFACE_H - -/* This header defines the interface to the GCC API. It must be both - valid C and valid C++, because it is included by both programs. */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Opaque typedefs for objects passed through the interface. */ - -typedef unsigned long long gcc_type; -typedef unsigned long long gcc_decl; - -/* An address in the inferior. */ - -typedef unsigned long long gcc_address; - -/* Forward declaration. */ - -struct gcc_base_context; - -/* Defined versions of the generic API. */ - -enum gcc_base_api_version -{ - GCC_FE_VERSION_0 = 0 -}; - -/* The operations defined by the GCC base API. This is the vtable for - the real context structure which is passed around. - - The "base" API is concerned with basics shared by all compiler - front ends: setting command-line arguments, the file names, etc. - - Front-end-specific interfaces inherit from this one. */ - -struct gcc_base_vtable -{ - /* The actual version implemented in this interface. This field can - be relied on not to move, so users can always check it if they - desire. The value is one of the gcc_base_api_version constants. - */ - - unsigned int version; - - /* Set the compiler's command-line options for the next compilation. - TRIPLET_REGEXP is a regular expression that is used to match the - configury triplet prefix to the compiler. - The arguments are copied by GCC. ARGV need not be - NULL-terminated. The arguments must be set separately for each - compilation; that is, after a compile is requested, the - previously-set arguments cannot be reused. - - This returns NULL on success. On failure, returns a malloc()d - error message. The caller is responsible for freeing it. */ - - char *(*set_arguments) (struct gcc_base_context *self, - const char *triplet_regexp, - int argc, char **argv); - - /* Set the file name of the program to compile. The string is - copied by the method implementation, but the caller must - guarantee that the file exists through the compilation. */ - - void (*set_source_file) (struct gcc_base_context *self, const char *file); - - /* Set a callback to use for printing error messages. DATUM is - passed through to the callback unchanged. */ - - void (*set_print_callback) (struct gcc_base_context *self, - void (*print_function) (void *datum, - const char *message), - void *datum); - - /* Perform the compilation. FILENAME is the name of the resulting - object file. VERBOSE can be set to cause GCC to print some - information as it works. Returns true on success, false on - error. */ - - int /* bool */ (*compile) (struct gcc_base_context *self, - const char *filename, - int /* bool */ verbose); - - /* Destroy this object. */ - - void (*destroy) (struct gcc_base_context *self); -}; - -/* The GCC object. */ - -struct gcc_base_context -{ - /* The virtual table. */ - - const struct gcc_base_vtable *ops; -}; - -/* The name of the dummy wrapper function generated by gdb. */ - -#define GCC_FE_WRAPPER_FUNCTION "_gdb_expr" - -#ifdef __cplusplus -} -#endif - -#endif /* GCC_INTERFACE_H */ diff --git a/include/gdb/ChangeLog b/include/gdb/ChangeLog deleted file mode 100644 index 142f87a..0000000 --- a/include/gdb/ChangeLog +++ /dev/null @@ -1,272 +0,0 @@ -2013-03-15 Steve Ellcey - - * gdb/remote-sim.h (sim_command_completer): Make char arguments const. - -2013-01-01 Joel Brobecker - - Update year range in copyright notice of all files. - -2012-06-23 Doug Evans - - * gdb-index.h: New file. - -2012-05-24 Pedro Alves - - PR gdb/7205 - - Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout. - -2012-05-24 Pedro Alves - - PR gdb/7205 - - Replace target_signal with gdb_signal throughout. - -2012-04-12 Mike Frysinger - - * callback.h (CB_SYS_argc, CB_SYS_argnlen, CB_SYS_argn): Define. - -2012-02-03 Kevin Buettner - - * sim-rl78.h: New file. - -2011-12-03 Mike Frysinger - - * callback.h (cb_get_string): New prototype. - -2011-04-14 Mike Frysinger - - * remote-sim.h (sim_complete_command): New prototype. - -2011-03-05 Mike Frysinger - - * sim-bfin.h: New file. - -2011-01-11 Andrew Burgess - - * remote-sim.h (sim_store_register): Update the API - documentation for this function. - -2010-09-06 Pedro Alves - - * signals.def: Replace all ANY uses by SET with specific numbers. - * signals.h (ANY): Remove. - -2010-07-31 Jan Kratochvil - - * signals.h (enum target_signal): Move the content to signals.def. - Include it. - * signals.def: New file. - -2010-06-24 Kevin Buettner - - * sim-rx.h (sim_rx_regnum): Add sim_rx_acc_regnum. Adjust - register order. - -2010-04-13 Mike Frysinger - - * callback.h: Strip PARAMS from prototypes. - * remote-sim.h: Likewise. - -2010-04-13 Mike Frysinger - - * remote-sim.h (sim_write): Add const to buf arg. - -2009-11-24 DJ Delorie - - * sim-rx.h: New. - -2009-05-18 Jon Beniston - - * sim-lm32.h: New file. - -2009-01-07 Hans-Peter Nilsson - - * callback.h (struct host_callback_struct): Mark member error as - pointing to a noreturn function. - -2008-02-12 M Ranga Swami Reddy - - * sim-cr16.h: New file. - -2008-01-01 Daniel Jacobowitz - - Updated copyright notices for most files. - -2007-10-15 Daniel Jacobowitz - - * sim-ppc.h (sim_spr_register_name): New prototype. - -2007-10-11 Jesper Nilsson - - * callback.h (cb_is_stdin, cb_is_stdout, cb_is_stderr): Add prototypes. - -2007-08-23 Joel Brobecker - - Switch the license of all .h files to GPLv3. - -2007-01-09 Daniel Jacobowitz - - Updated copyright notices for most files. - -2005-07-08 Ben Elliston - - * callback.h: Remove ANSI_PROTOTYPES conditional code. - -2005-01-28 Hans-Peter Nilsson - - * callback.h (struct host_callback_struct): New members pipe, - pipe_empty, pipe_nonempty, ispipe, pipe_buffer and - target_sizeof_int. - (CB_SYS_pipe): New macro. - - * callback.h: Include "bfd.h". - (struct host_callback_struct): New member target_endian. - (cb_store_target_endian): Declare. - -2004-12-15 Hans-Peter Nilsson - - * callback.h (CB_SYS_truncate, CB_SYS_ftruncate): New macros. - -2004-12-13 Hans-Peter Nilsson - - * callback.h (struct host_callback_struct): New member lstat. - (CB_SYS_lstat): New macro. - (CB_SYS_rename): New macro. - -2004-09-08 Michael Snyder - - Commited by Corinna Vinschen - * sim-sh.h: Add new sh2a banked registers. - -2004-08-04 Andrew Cagney - - * sim-ppc.h: Add extern "C" wrapper. - (enum sim_ppc_regnum): Add full list of SPRs. - -2004-08-04 Jim Blandy - - * sim-ppc.h: New file. - -2004-06-25 J"orn Rennecke - - * callback.h (host_callback_struct): Replace members fdopen and - alwaysopen with fd_buddy. - [sim/common: * callback.c: Changed all users. ] - -2003-10-31 Kevin Buettner - - * sim-frv.h: New file. - -2003-10-15 J"orn Rennecke - - * callback.h (struct host_callback_struct): New members ftruncate - and truncate. - -2003-06-10 Corinna Vinschen - - * gdb/fileio.h: New file. - -2003-05-07 Andrew Cagney - - * sim-d10v.h (sim_d10v_translate_addr): Add regcache parameter. - (sim_d10v_translate_imap_addr): Add regcache parameter. - (sim_d10v_translate_dmap_addr): Ditto. - -2003-03-27 Nick Clifton - - * sim-arm.h (sim_arm_regs): Add iWMMXt registers. - -2003-03-20 Nick Clifton - - * sim-arm.h (sim_arm_regs): Add Maverick co-processor - registers. - -2003-02-27 Andrew Cagney - - * remote-sim.h (sim_open, sim_load, sim_create_inferior): Rename - _bfd to bfd. - -2003-02-20 Andrew Cagney - - * remote-sim.h (SIM_RC): Delete unused SIM_RC_UNKNOWN_BREAKPOINT, - SIM_RC_INSUFFICIENT_RESOURCES and SIM_RC_DUPLICATE_BREAKPOINT. - (sim_set_breakpoint, sim_clear_breakpoint): Delete declarations. - (sim_clear_all_breakpoints, sim_enable_breakpoint): Ditto. - (sim_enable_all_breakpoints, sim_disable_breakpoint): Ditto. - (sim_disable_all_breakpoints): Ditto. - -2002-12-26 Kazu Hirata - - * sim-h8300.h: Remove ^M. - -2002-07-29 Andrey Volkov - - * sim-h8300.h: Rename all enums from H8300_ to SIM_H8300_ - prefix. - -2002-07-23 Andrey Volkov - - * sim-h8300.h: New file. - -2002-07-17 Andrew Cagney - - * remote-sim.h: Update copyright. - (sim_set_callbacks, sim_size, sim_trace) - (sim_set_trace, sim_set_profile_size, sim_kill): Delete. Moved to - "sim/common/run-sim.h". - -Wed Jul 17 19:36:38 2002 J"orn Rennecke - - * sim-sh.h: Add enum constants for sh[1-4], sh3e, sh3?-dsp, - renumbering the sh-dsp registers to use distinct numbers. - -2002-06-15 Andrew Cagney - - * sim-arm.h (enum sim_arm_regs): Rename sim_arm_regnum. - -2002-06-12 Andrew Cagney - - * sim-arm.h: New file. - -2002-06-08 Andrew Cagney - - * callback.h: Copy to here from directory above. - * remote-sim.h: Copy to here from directory above. - -2002-06-01 Andrew Cagney - - * sim-d10v.h (sim_d10v_regs): Expand to include all registers. - Update copyright. - -2002-05-23 Andrew Cagney - - * sim-d10v.h: New file. Moved from include/sim-d10v.h. - -2002-05-10 Elena Zannoni - - * sim-sh.h: New file, for sh gdb<->sim interface. - -2002-05-09 Daniel Jacobowitz - - * signals.h: Update comments. - (enum target_signal): Remove conditional compilation around - Mach-specific signals. Move them to after TARGET_SIGNAL_DEFAULT. - -2002-03-10 Daniel Jacobowitz - - * signals.h: New file, from gdb/defs.h. - - -Copyright (C) 2002-2013 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - -Local Variables: -mode: change-log -left-margin: 8 -fill-column: 74 -version-control: never -End: diff --git a/include/gdb/callback.h b/include/gdb/callback.h deleted file mode 100644 index f830398..0000000 --- a/include/gdb/callback.h +++ /dev/null @@ -1,338 +0,0 @@ -/* Remote target system call callback support. - Copyright 1997-2013 Free Software Foundation, Inc. - Contributed by Cygnus Solutions. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* This interface isn't intended to be specific to any particular kind - of remote (hardware, simulator, whatever). As such, support for it - (e.g. sim/common/callback.c) should *not* live in the simulator source - tree, nor should it live in the gdb source tree. */ - -/* There are various ways to handle system calls: - - 1) Have a simulator intercept the appropriate trap instruction and - directly perform the system call on behalf of the target program. - This is the typical way of handling system calls for embedded targets. - [Handling system calls for embedded targets isn't that much of an - oxymoron as running compiler testsuites make use of the capability.] - - This method of system call handling is done when STATE_ENVIRONMENT - is ENVIRONMENT_USER. - - 2) Have a simulator emulate the hardware as much as possible. - If the program running on the real hardware communicates with some sort - of target manager, one would want to be able to run this program on the - simulator as well. - - This method of system call handling is done when STATE_ENVIRONMENT - is ENVIRONMENT_OPERATING. -*/ - -#ifndef CALLBACK_H -#define CALLBACK_H - -/* ??? The reason why we check for va_start here should be documented. */ - -#ifndef va_start -#include -#include -#endif -/* Needed for enum bfd_endian. */ -#include "bfd.h" - -/* Mapping of host/target values. */ -/* ??? For debugging purposes, one might want to add a string of the - name of the symbol. */ - -typedef struct { - int host_val; - int target_val; -} CB_TARGET_DEFS_MAP; - -#define MAX_CALLBACK_FDS 10 - -/* Forward decl for stat/fstat. */ -struct stat; - -typedef struct host_callback_struct host_callback; - -struct host_callback_struct -{ - int (*close) (host_callback *,int); - int (*get_errno) (host_callback *); - int (*isatty) (host_callback *, int); - int (*lseek) (host_callback *, int, long , int); - int (*open) (host_callback *, const char*, int mode); - int (*read) (host_callback *,int, char *, int); - int (*read_stdin) ( host_callback *, char *, int); - int (*rename) (host_callback *, const char *, const char *); - int (*system) (host_callback *, const char *); - long (*time) (host_callback *, long *); - int (*unlink) (host_callback *, const char *); - int (*write) (host_callback *,int, const char *, int); - int (*write_stdout) (host_callback *, const char *, int); - void (*flush_stdout) (host_callback *); - int (*write_stderr) (host_callback *, const char *, int); - void (*flush_stderr) (host_callback *); - int (*stat) (host_callback *, const char *, struct stat *); - int (*fstat) (host_callback *, int, struct stat *); - int (*lstat) (host_callback *, const char *, struct stat *); - int (*ftruncate) (host_callback *, int, long); - int (*truncate) (host_callback *, const char *, long); - int (*pipe) (host_callback *, int *); - - /* Called by the framework when a read call has emptied a pipe buffer. */ - void (*pipe_empty) (host_callback *, int read_fd, int write_fd); - - /* Called by the framework when a write call makes a pipe buffer - non-empty. */ - void (*pipe_nonempty) (host_callback *, int read_fd, int write_fd); - - /* When present, call to the client to give it the oportunity to - poll any io devices for a request to quit (indicated by a nonzero - return value). */ - int (*poll_quit) (host_callback *); - - /* Used when the target has gone away, so we can close open - handles and free memory etc etc. */ - int (*shutdown) (host_callback *); - int (*init) (host_callback *); - - /* depreciated, use vprintf_filtered - Talk to the user on a console. */ - void (*printf_filtered) (host_callback *, const char *, ...); - - /* Talk to the user on a console. */ - void (*vprintf_filtered) (host_callback *, const char *, va_list); - - /* Same as vprintf_filtered but to stderr. */ - void (*evprintf_filtered) (host_callback *, const char *, va_list); - - /* Print an error message and "exit". - In the case of gdb "exiting" means doing a longjmp back to the main - command loop. */ - void (*error) (host_callback *, const char *, ...) -#ifdef __GNUC__ - __attribute__ ((__noreturn__)) -#endif - ; - - int last_errno; /* host format */ - - int fdmap[MAX_CALLBACK_FDS]; - /* fd_buddy is used to contruct circular lists of target fds that point to - the same host fd. A uniquely mapped fd points to itself; for a closed - one, fd_buddy has the value -1. The host file descriptors for stdin / - stdout / stderr are never closed by the simulators, so they are put - in a special fd_buddy circular list which also has MAX_CALLBACK_FDS - as a member. */ - /* ??? We don't have a callback entry for dup, although it is trival to - implement now. */ - short fd_buddy[MAX_CALLBACK_FDS+1]; - - /* 0 = none, >0 = reader (index of writer), - <0 = writer (negative index of reader). - If abs (ispipe[N]) == N, then N is an end of a pipe whose other - end is closed. */ - short ispipe[MAX_CALLBACK_FDS]; - - /* A writer stores the buffer at its index. Consecutive writes - realloc the buffer and add to the size. The reader indicates the - read part in its .size, until it has consumed it all, at which - point it deallocates the buffer and zeroes out both sizes. */ - struct pipe_write_buffer - { - int size; - char *buffer; - } pipe_buffer[MAX_CALLBACK_FDS]; - - /* System call numbers. */ - CB_TARGET_DEFS_MAP *syscall_map; - /* Errno values. */ - CB_TARGET_DEFS_MAP *errno_map; - /* Flags to the open system call. */ - CB_TARGET_DEFS_MAP *open_map; - /* Signal numbers. */ - CB_TARGET_DEFS_MAP *signal_map; - /* Layout of `stat' struct. - The format is a series of "name,length" pairs separated by colons. - Empty space is indicated with a `name' of "space". - All padding must be explicitly mentioned. - Lengths are in bytes. If this needs to be extended to bits, - use "name.bits". - Example: "st_dev,4:st_ino,4:st_mode,4:..." */ - const char *stat_map; - - enum bfd_endian target_endian; - - /* Size of an "int" on the target (for syscalls whose ABI uses "int"). - This must include padding, and only padding-at-higher-address is - supported. For example, a 64-bit target with 32-bit int:s which - are padded to 64 bits when in an array, should supposedly set this - to 8. The default is 4 which matches ILP32 targets and 64-bit - targets with 32-bit ints and no padding. */ - int target_sizeof_int; - - /* Marker for those wanting to do sanity checks. - This should remain the last member of this struct to help catch - miscompilation errors. */ -#define HOST_CALLBACK_MAGIC 4705 /* teds constant */ - int magic; -}; - -extern host_callback default_callback; - -/* Canonical versions of system call numbers. - It's not intended to willy-nilly throw every system call ever heard - of in here. Only include those that have an important use. - ??? One can certainly start a discussion over the ones that are currently - here, but that will always be true. */ - -/* These are used by the ANSI C support of libc. */ -#define CB_SYS_exit 1 -#define CB_SYS_open 2 -#define CB_SYS_close 3 -#define CB_SYS_read 4 -#define CB_SYS_write 5 -#define CB_SYS_lseek 6 -#define CB_SYS_unlink 7 -#define CB_SYS_getpid 8 -#define CB_SYS_kill 9 -#define CB_SYS_fstat 10 -/*#define CB_SYS_sbrk 11 - not currently a system call, but reserved. */ - -/* ARGV support. */ -#define CB_SYS_argvlen 12 -#define CB_SYS_argv 13 - -/* These are extras added for one reason or another. */ -#define CB_SYS_chdir 14 -#define CB_SYS_stat 15 -#define CB_SYS_chmod 16 -#define CB_SYS_utime 17 -#define CB_SYS_time 18 - -/* More standard syscalls. */ -#define CB_SYS_lstat 19 -#define CB_SYS_rename 20 -#define CB_SYS_truncate 21 -#define CB_SYS_ftruncate 22 -#define CB_SYS_pipe 23 - -/* New ARGV support. */ -#define CB_SYS_argc 24 -#define CB_SYS_argnlen 25 -#define CB_SYS_argn 26 - -/* Struct use to pass and return information necessary to perform a - system call. */ -/* FIXME: Need to consider target word size. */ - -typedef struct cb_syscall { - /* The target's value of what system call to perform. */ - int func; - /* The arguments to the syscall. */ - long arg1, arg2, arg3, arg4; - - /* The result. */ - long result; - /* Some system calls have two results. */ - long result2; - /* The target's errno value, or 0 if success. - This is converted to the target's value with host_to_target_errno. */ - int errcode; - - /* Working space to be used by memory read/write callbacks. */ - PTR p1; - PTR p2; - long x1,x2; - - /* Callbacks for reading/writing memory (e.g. for read/write syscalls). - ??? long or unsigned long might be better to use for the `count' - argument here. We mimic sim_{read,write} for now. Be careful to - test any changes with -Wall -Werror, mixed signed comparisons - will get you. */ - int (*read_mem) (host_callback * /*cb*/, struct cb_syscall * /*sc*/, - unsigned long /*taddr*/, char * /*buf*/, - int /*bytes*/); - int (*write_mem) (host_callback * /*cb*/, struct cb_syscall * /*sc*/, - unsigned long /*taddr*/, const char * /*buf*/, - int /*bytes*/); - - /* For sanity checking, should be last entry. */ - int magic; -} CB_SYSCALL; - -/* Magic number sanity checker. */ -#define CB_SYSCALL_MAGIC 0x12344321 - -/* Macro to initialize CB_SYSCALL. Called first, before filling in - any fields. */ -#define CB_SYSCALL_INIT(sc) \ -do { \ - memset ((sc), 0, sizeof (*(sc))); \ - (sc)->magic = CB_SYSCALL_MAGIC; \ -} while (0) - -/* Return codes for various interface routines. */ - -typedef enum { - CB_RC_OK = 0, - /* generic error */ - CB_RC_ERR, - /* either file not found or no read access */ - CB_RC_ACCESS, - CB_RC_NO_MEM -} CB_RC; - -/* Read in target values for system call numbers, errno values, signals. */ -CB_RC cb_read_target_syscall_maps (host_callback *, const char *); - -/* Translate target to host syscall function numbers. */ -int cb_target_to_host_syscall (host_callback *, int); - -/* Translate host to target errno value. */ -int cb_host_to_target_errno (host_callback *, int); - -/* Translate target to host open flags. */ -int cb_target_to_host_open (host_callback *, int); - -/* Translate target signal number to host. */ -int cb_target_to_host_signal (host_callback *, int); - -/* Translate host signal number to target. */ -int cb_host_to_gdb_signal (host_callback *, int); - -/* Translate host stat struct to target. - If stat struct ptr is NULL, just compute target stat struct size. - Result is size of target stat struct or 0 if error. */ -int cb_host_to_target_stat (host_callback *, const struct stat *, PTR); - -/* Translate a value to target endian. */ -void cb_store_target_endian (host_callback *, char *, int, long); - -/* Tests for special fds. */ -int cb_is_stdin (host_callback *, int); -int cb_is_stdout (host_callback *, int); -int cb_is_stderr (host_callback *, int); - -/* Read a string out of the target. */ -int cb_get_string (host_callback *, CB_SYSCALL *, char *, int, unsigned long); - -/* Perform a system call. */ -CB_RC cb_syscall (host_callback *, CB_SYSCALL *); - -#endif diff --git a/include/gdb/fileio.h b/include/gdb/fileio.h deleted file mode 100644 index 73275d4..0000000 --- a/include/gdb/fileio.h +++ /dev/null @@ -1,144 +0,0 @@ -/* Hosted File I/O interface definitions, for GDB, the GNU Debugger. - - Copyright 2003-2013 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#ifndef GDB_FILEIO_H_ -#define GDB_FILEIO_H_ - -/* The following flags are defined to be independent of the host - as well as the target side implementation of these constants. - All constants are defined with a leading FILEIO_ in the name - to allow the usage of these constants together with the - corresponding implementation dependent constants in one module. */ - -/* open(2) flags */ -#define FILEIO_O_RDONLY 0x0 -#define FILEIO_O_WRONLY 0x1 -#define FILEIO_O_RDWR 0x2 -#define FILEIO_O_APPEND 0x8 -#define FILEIO_O_CREAT 0x200 -#define FILEIO_O_TRUNC 0x400 -#define FILEIO_O_EXCL 0x800 -#define FILEIO_O_SUPPORTED (FILEIO_O_RDONLY | FILEIO_O_WRONLY| \ - FILEIO_O_RDWR | FILEIO_O_APPEND| \ - FILEIO_O_CREAT | FILEIO_O_TRUNC| \ - FILEIO_O_EXCL) - -/* mode_t bits */ -#define FILEIO_S_IFREG 0100000 -#define FILEIO_S_IFDIR 040000 -#define FILEIO_S_IFCHR 020000 -#define FILEIO_S_IRUSR 0400 -#define FILEIO_S_IWUSR 0200 -#define FILEIO_S_IXUSR 0100 -#define FILEIO_S_IRWXU 0700 -#define FILEIO_S_IRGRP 040 -#define FILEIO_S_IWGRP 020 -#define FILEIO_S_IXGRP 010 -#define FILEIO_S_IRWXG 070 -#define FILEIO_S_IROTH 04 -#define FILEIO_S_IWOTH 02 -#define FILEIO_S_IXOTH 01 -#define FILEIO_S_IRWXO 07 -#define FILEIO_S_SUPPORTED (FILEIO_S_IFREG|FILEIO_S_IFDIR| \ - FILEIO_S_IRWXU|FILEIO_S_IRWXG| \ - FILEIO_S_IRWXO) - -/* lseek(2) flags */ -#define FILEIO_SEEK_SET 0 -#define FILEIO_SEEK_CUR 1 -#define FILEIO_SEEK_END 2 - -/* errno values */ -#define FILEIO_EPERM 1 -#define FILEIO_ENOENT 2 -#define FILEIO_EINTR 4 -#define FILEIO_EIO 5 -#define FILEIO_EBADF 9 -#define FILEIO_EACCES 13 -#define FILEIO_EFAULT 14 -#define FILEIO_EBUSY 16 -#define FILEIO_EEXIST 17 -#define FILEIO_ENODEV 19 -#define FILEIO_ENOTDIR 20 -#define FILEIO_EISDIR 21 -#define FILEIO_EINVAL 22 -#define FILEIO_ENFILE 23 -#define FILEIO_EMFILE 24 -#define FILEIO_EFBIG 27 -#define FILEIO_ENOSPC 28 -#define FILEIO_ESPIPE 29 -#define FILEIO_EROFS 30 -#define FILEIO_ENOSYS 88 -#define FILEIO_ENAMETOOLONG 91 -#define FILEIO_EUNKNOWN 9999 - -/* limits */ -#define FILEIO_INT_MIN -2147483648L -#define FILEIO_INT_MAX 2147483647L -#define FILEIO_UINT_MAX 4294967295UL -#define FILEIO_LONG_MIN -9223372036854775808LL -#define FILEIO_LONG_MAX 9223372036854775807LL -#define FILEIO_ULONG_MAX 18446744073709551615ULL - -/* Integral types as used in protocol. */ -#if 0 -typedef __int32_t fio_int_t; -typedef __uint32_t fio_uint_t, fio_mode_t, fio_time_t; -typedef __int64_t fio_long_t; -typedef __uint64_t fio_ulong_t; -#endif - -#define FIO_INT_LEN 4 -#define FIO_UINT_LEN 4 -#define FIO_MODE_LEN 4 -#define FIO_TIME_LEN 4 -#define FIO_LONG_LEN 8 -#define FIO_ULONG_LEN 8 - -typedef char fio_int_t[FIO_INT_LEN]; -typedef char fio_uint_t[FIO_UINT_LEN]; -typedef char fio_mode_t[FIO_MODE_LEN]; -typedef char fio_time_t[FIO_TIME_LEN]; -typedef char fio_long_t[FIO_LONG_LEN]; -typedef char fio_ulong_t[FIO_ULONG_LEN]; - -/* Struct stat as used in protocol. For complete independence - of host/target systems, it's defined as an array with offsets - to the members. */ - -struct fio_stat { - fio_uint_t fst_dev; - fio_uint_t fst_ino; - fio_mode_t fst_mode; - fio_uint_t fst_nlink; - fio_uint_t fst_uid; - fio_uint_t fst_gid; - fio_uint_t fst_rdev; - fio_ulong_t fst_size; - fio_ulong_t fst_blksize; - fio_ulong_t fst_blocks; - fio_time_t fst_atime; - fio_time_t fst_mtime; - fio_time_t fst_ctime; -}; - -struct fio_timeval { - fio_time_t ftv_sec; - fio_long_t ftv_usec; -}; - -#endif /* GDB_FILEIO_H_ */ diff --git a/include/gdb/gdb-index.h b/include/gdb/gdb-index.h deleted file mode 100644 index 4e3d0a7..0000000 --- a/include/gdb/gdb-index.h +++ /dev/null @@ -1,99 +0,0 @@ -/* Public attributes of the .gdb_index section. - Copyright (C) 2012-2015 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* This file contains values for understanding the .gdb_index section - needed by more than just GDB, e.g. readelf. */ - -#ifndef GDB_INDEX_H -#define GDB_INDEX_H - -/* Each symbol in .gdb_index refers to a set of CUs that defines the symbol. - Each CU is represented by a 32 bit number that is the index of the CU in - the CU table, plus some attributes of the use of the symbol in that CU. - - The values are defined such that if all the bits are zero, then no - special meaning is assigned to any of them. This is done to preserve - compatibility with older indices. The way this is done is to specify - that if the GDB_INDEX_SYMBOL_KIND value is zero then all other attribute - bits must be zero. - - 0-23 CU index - 24-27 reserved - 28-30 symbol kind - 31 0 == global, 1 == static - - Bits 24-27 are reserved because it's easier to relax restrictions than - it is to impose them after the fact. At present 24 bits to represent - the CU index is plenty. If we need more bits for the CU index or for - attributes then we have them. */ - -/* Whether the symbol is in GLOBAL_BLOCK (== 0) or STATIC_BLOCK (== 1). */ -#define GDB_INDEX_SYMBOL_STATIC_SHIFT 31 -#define GDB_INDEX_SYMBOL_STATIC_MASK 1 -#define GDB_INDEX_SYMBOL_STATIC_VALUE(cu_index) \ - (((cu_index) >> GDB_INDEX_SYMBOL_STATIC_SHIFT) & GDB_INDEX_SYMBOL_STATIC_MASK) -#define GDB_INDEX_SYMBOL_STATIC_SET_VALUE(cu_index, value) \ - do { \ - (cu_index) |= (((value) & GDB_INDEX_SYMBOL_STATIC_MASK) \ - << GDB_INDEX_SYMBOL_STATIC_SHIFT); \ - } while (0) - -/* The kind of the symbol. - We don't use GDB's internal values as these numbers are published - so that other tools can build and read .gdb_index. */ - -typedef enum { - /* Special value to indicate no attributes are present. */ - GDB_INDEX_SYMBOL_KIND_NONE = 0, - GDB_INDEX_SYMBOL_KIND_TYPE = 1, - GDB_INDEX_SYMBOL_KIND_VARIABLE = 2, - GDB_INDEX_SYMBOL_KIND_FUNCTION = 3, - GDB_INDEX_SYMBOL_KIND_OTHER = 4, - /* We currently allocate 3 bits to record the symbol kind. - Give the unused bits a value so gdb will print them sensibly. */ - GDB_INDEX_SYMBOL_KIND_UNUSED5 = 5, - GDB_INDEX_SYMBOL_KIND_UNUSED6 = 6, - GDB_INDEX_SYMBOL_KIND_UNUSED7 = 7 -} gdb_index_symbol_kind; - -#define GDB_INDEX_SYMBOL_KIND_SHIFT 28 -#define GDB_INDEX_SYMBOL_KIND_MASK 7 -#define GDB_INDEX_SYMBOL_KIND_VALUE(cu_index) \ - ((gdb_index_symbol_kind) (((cu_index) >> GDB_INDEX_SYMBOL_KIND_SHIFT) \ - & GDB_INDEX_SYMBOL_KIND_MASK)) -#define GDB_INDEX_SYMBOL_KIND_SET_VALUE(cu_index, value) \ - do { \ - (cu_index) |= (((value) & GDB_INDEX_SYMBOL_KIND_MASK) \ - << GDB_INDEX_SYMBOL_KIND_SHIFT); \ - } while (0) - -#define GDB_INDEX_RESERVED_SHIFT 24 -#define GDB_INDEX_RESERVED_MASK 15 -#define GDB_INDEX_RESERVED_VALUE(cu_index) \ - (((cu_index) >> GDB_INDEX_RESERVED_SHIFT) & GDB_INDEX_RESERVED_MASK) - -/* CU index. */ -#define GDB_INDEX_CU_BITSIZE 24 -#define GDB_INDEX_CU_MASK ((1 << GDB_INDEX_CU_BITSIZE) - 1) -#define GDB_INDEX_CU_VALUE(cu_index) ((cu_index) & GDB_INDEX_CU_MASK) -#define GDB_INDEX_CU_SET_VALUE(cu_index, value) \ - do { \ - (cu_index) |= (value) & GDB_INDEX_CU_MASK; \ - } while (0) - -#endif /* GDB_INDEX_H */ diff --git a/include/gdb/remote-sim.h b/include/gdb/remote-sim.h deleted file mode 100644 index 113030c..0000000 --- a/include/gdb/remote-sim.h +++ /dev/null @@ -1,287 +0,0 @@ -/* This file defines the interface between the simulator and gdb. - - Copyright 1993-2013 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#if !defined (REMOTE_SIM_H) -#define REMOTE_SIM_H 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* This file is used when building stand-alone simulators, so isolate this - file from gdb. */ - -/* Pick up CORE_ADDR_TYPE if defined (from gdb), otherwise use same value as - gdb does (unsigned int - from defs.h). */ - -#ifndef CORE_ADDR_TYPE -typedef unsigned int SIM_ADDR; -#else -typedef CORE_ADDR_TYPE SIM_ADDR; -#endif - - -/* Semi-opaque type used as result of sim_open and passed back to all - other routines. "desc" is short for "descriptor". - It is up to each simulator to define `sim_state'. */ - -typedef struct sim_state *SIM_DESC; - - -/* Values for `kind' arg to sim_open. */ - -typedef enum { - SIM_OPEN_STANDALONE, /* simulator used standalone (run.c) */ - SIM_OPEN_DEBUG /* simulator used by debugger (gdb) */ -} SIM_OPEN_KIND; - - -/* Return codes from various functions. */ - -typedef enum { - SIM_RC_FAIL = 0, - SIM_RC_OK = 1 -} SIM_RC; - - -/* The bfd struct, as an opaque type. */ - -struct bfd; - - -/* Main simulator entry points. */ - - -/* Create a fully initialized simulator instance. - - (This function is called when the simulator is selected from the - gdb command line.) - - KIND specifies how the simulator shall be used. Currently there - are only two kinds: stand-alone and debug. - - CALLBACK specifies a standard host callback (defined in callback.h). - - ABFD, when non NULL, designates a target program. The program is - not loaded. - - ARGV is a standard ARGV pointer such as that passed from the - command line. The syntax of the argument list is is assumed to be - ``SIM-PROG { SIM-OPTION } [ TARGET-PROGRAM { TARGET-OPTION } ]''. - The trailing TARGET-PROGRAM and args are only valid for a - stand-alone simulator. - - On success, the result is a non NULL descriptor that shall be - passed to the other sim_foo functions. While the simulator - configuration can be parameterized by (in decreasing precedence) - ARGV's SIM-OPTION, ARGV's TARGET-PROGRAM and the ABFD argument, the - successful creation of the simulator shall not dependent on the - presence of any of these arguments/options. - - Hardware simulator: The created simulator shall be sufficiently - initialized to handle, with out restrictions any client requests - (including memory reads/writes, register fetch/stores and a - resume). - - Process simulator: that process is not created until a call to - sim_create_inferior. FIXME: What should the state of the simulator - be? */ - -SIM_DESC sim_open (SIM_OPEN_KIND kind, struct host_callback_struct *callback, struct bfd *abfd, char **argv); - - -/* Destory a simulator instance. - - QUITTING is non-zero if we cannot hang on errors. - - This may involve freeing target memory and closing any open files - and mmap'd areas. You cannot assume sim_kill has already been - called. */ - -void sim_close (SIM_DESC sd, int quitting); - - -/* Load program PROG into the simulators memory. - - If ABFD is non-NULL, the bfd for the file has already been opened. - The result is a return code indicating success. - - Hardware simulator: Normally, each program section is written into - memory according to that sections LMA using physical (direct) - addressing. The exception being systems, such as PPC/CHRP, which - support more complicated program loaders. A call to this function - should not effect the state of the processor registers. Multiple - calls to this function are permitted and have an accumulative - effect. - - Process simulator: Calls to this function may be ignored. - - FIXME: Most hardware simulators load the image at the VMA using - virtual addressing. - - FIXME: For some hardware targets, before a loaded program can be - executed, it requires the manipulation of VM registers and tables. - Such manipulation should probably (?) occure in - sim_create_inferior. */ - -SIM_RC sim_load (SIM_DESC sd, char *prog, struct bfd *abfd, int from_tty); - - -/* Prepare to run the simulated program. - - ABFD, if not NULL, provides initial processor state information. - ARGV and ENV, if non NULL, are NULL terminated lists of pointers. - - Hardware simulator: This function shall initialize the processor - registers to a known value. The program counter and possibly stack - pointer shall be set using information obtained from ABFD (or - hardware reset defaults). ARGV and ENV, dependant on the target - ABI, may be written to memory. - - Process simulator: After a call to this function, a new process - instance shall exist. The TEXT, DATA, BSS and stack regions shall - all be initialized, ARGV and ENV shall be written to process - address space (according to the applicable ABI) and the program - counter and stack pointer set accordingly. */ - -SIM_RC sim_create_inferior (SIM_DESC sd, struct bfd *abfd, char **argv, char **env); - - -/* Fetch LENGTH bytes of the simulated program's memory. Start fetch - at virtual address MEM and store in BUF. Result is number of bytes - read, or zero if error. */ - -int sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length); - - -/* Store LENGTH bytes from BUF into the simulated program's - memory. Store bytes starting at virtual address MEM. Result is - number of bytes write, or zero if error. */ - -int sim_write (SIM_DESC sd, SIM_ADDR mem, const unsigned char *buf, int length); - - -/* Fetch register REGNO storing its raw (target endian) value in the - LENGTH byte buffer BUF. Return the actual size of the register or - zero if REGNO is not applicable. - - Legacy implementations ignore LENGTH and always return -1. - - If LENGTH does not match the size of REGNO no data is transfered - (the actual register size is still returned). */ - -int sim_fetch_register (SIM_DESC sd, int regno, unsigned char *buf, int length); - - -/* Store register REGNO from the raw (target endian) value in BUF. - - Return the actual size of the register, any size not equal to - LENGTH indicates the register was not updated correctly. - - Return a LENGTH of -1 to indicate the register was not updated - and an error has occurred. - - Return a LENGTH of 0 to indicate the register was not updated - but no error has occurred. */ - -int sim_store_register (SIM_DESC sd, int regno, unsigned char *buf, int length); - - -/* Print whatever statistics the simulator has collected. - - VERBOSE is currently unused and must always be zero. */ - -void sim_info (SIM_DESC sd, int verbose); - - -/* Run (or resume) the simulated program. - - STEP, when non-zero indicates that only a single simulator cycle - should be emulated. - - SIGGNAL, if non-zero is a (HOST) SIGRC value indicating the type of - event (hardware interrupt, signal) to be delivered to the simulated - program. - - Hardware simulator: If the SIGRC value returned by - sim_stop_reason() is passed back to the simulator via SIGGNAL then - the hardware simulator shall correctly deliver the hardware event - indicated by that signal. If a value of zero is passed in then the - simulation will continue as if there were no outstanding signal. - The effect of any other SIGGNAL value is is implementation - dependant. - - Process simulator: If SIGRC is non-zero then the corresponding - signal is delivered to the simulated program and execution is then - continued. A zero SIGRC value indicates that the program should - continue as normal. */ - -void sim_resume (SIM_DESC sd, int step, int siggnal); - - -/* Asynchronous request to stop the simulation. - A nonzero return indicates that the simulator is able to handle - the request */ - -int sim_stop (SIM_DESC sd); - - -/* Fetch the REASON why the program stopped. - - SIM_EXITED: The program has terminated. SIGRC indicates the target - dependant exit status. - - SIM_STOPPED: The program has stopped. SIGRC uses the host's signal - numbering as a way of identifying the reaon: program interrupted by - user via a sim_stop request (SIGINT); a breakpoint instruction - (SIGTRAP); a completed single step (SIGTRAP); an internal error - condition (SIGABRT); an illegal instruction (SIGILL); Access to an - undefined memory region (SIGSEGV); Mis-aligned memory access - (SIGBUS). For some signals information in addition to the signal - number may be retained by the simulator (e.g. offending address), - that information is not directly accessable via this interface. - - SIM_SIGNALLED: The program has been terminated by a signal. The - simulator has encountered target code that causes the the program - to exit with signal SIGRC. - - SIM_RUNNING, SIM_POLLING: The return of one of these values - indicates a problem internal to the simulator. */ - -enum sim_stop { sim_running, sim_polling, sim_exited, sim_stopped, sim_signalled }; - -void sim_stop_reason (SIM_DESC sd, enum sim_stop *reason, int *sigrc); - - -/* Passthru for other commands that the simulator might support. - Simulators should be prepared to deal with any combination of NULL - or empty CMD. */ - -void sim_do_command (SIM_DESC sd, char *cmd); - -/* Complete a command based on the available sim commands. Returns an - array of possible matches. */ - -char **sim_complete_command (SIM_DESC sd, const char *text, const char *word); - -#ifdef __cplusplus -} -#endif - -#endif /* !defined (REMOTE_SIM_H) */ diff --git a/include/gdb/signals.def b/include/gdb/signals.def deleted file mode 100644 index 637d00d..0000000 --- a/include/gdb/signals.def +++ /dev/null @@ -1,200 +0,0 @@ -/* Target signal numbers for GDB and the GDB remote protocol. - Copyright 2010-2013 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* Used some places (e.g. stop_signal) to record the concept that - there is no signal. */ -SET (GDB_SIGNAL_0, 0, "0", "Signal 0") -#define GDB_SIGNAL_FIRST GDB_SIGNAL_0 -SET (GDB_SIGNAL_HUP, 1, "SIGHUP", "Hangup") -SET (GDB_SIGNAL_INT, 2, "SIGINT", "Interrupt") -SET (GDB_SIGNAL_QUIT, 3, "SIGQUIT", "Quit") -SET (GDB_SIGNAL_ILL, 4, "SIGILL", "Illegal instruction") -SET (GDB_SIGNAL_TRAP, 5, "SIGTRAP", "Trace/breakpoint trap") -SET (GDB_SIGNAL_ABRT, 6, "SIGABRT", "Aborted") -SET (GDB_SIGNAL_EMT, 7, "SIGEMT", "Emulation trap") -SET (GDB_SIGNAL_FPE, 8, "SIGFPE", "Arithmetic exception") -SET (GDB_SIGNAL_KILL, 9, "SIGKILL", "Killed") -SET (GDB_SIGNAL_BUS, 10, "SIGBUS", "Bus error") -SET (GDB_SIGNAL_SEGV, 11, "SIGSEGV", "Segmentation fault") -SET (GDB_SIGNAL_SYS, 12, "SIGSYS", "Bad system call") -SET (GDB_SIGNAL_PIPE, 13, "SIGPIPE", "Broken pipe") -SET (GDB_SIGNAL_ALRM, 14, "SIGALRM", "Alarm clock") -SET (GDB_SIGNAL_TERM, 15, "SIGTERM", "Terminated") -SET (GDB_SIGNAL_URG, 16, "SIGURG", "Urgent I/O condition") -SET (GDB_SIGNAL_STOP, 17, "SIGSTOP", "Stopped (signal)") -SET (GDB_SIGNAL_TSTP, 18, "SIGTSTP", "Stopped (user)") -SET (GDB_SIGNAL_CONT, 19, "SIGCONT", "Continued") -SET (GDB_SIGNAL_CHLD, 20, "SIGCHLD", "Child status changed") -SET (GDB_SIGNAL_TTIN, 21, "SIGTTIN", "Stopped (tty input)") -SET (GDB_SIGNAL_TTOU, 22, "SIGTTOU", "Stopped (tty output)") -SET (GDB_SIGNAL_IO, 23, "SIGIO", "I/O possible") -SET (GDB_SIGNAL_XCPU, 24, "SIGXCPU", "CPU time limit exceeded") -SET (GDB_SIGNAL_XFSZ, 25, "SIGXFSZ", "File size limit exceeded") -SET (GDB_SIGNAL_VTALRM, 26, "SIGVTALRM", "Virtual timer expired") -SET (GDB_SIGNAL_PROF, 27, "SIGPROF", "Profiling timer expired") -SET (GDB_SIGNAL_WINCH, 28, "SIGWINCH", "Window size changed") -SET (GDB_SIGNAL_LOST, 29, "SIGLOST", "Resource lost") -SET (GDB_SIGNAL_USR1, 30, "SIGUSR1", "User defined signal 1") -SET (GDB_SIGNAL_USR2, 31, "SIGUSR2", "User defined signal 2") -SET (GDB_SIGNAL_PWR, 32, "SIGPWR", "Power fail/restart") -/* Similar to SIGIO. Perhaps they should have the same number. */ -SET (GDB_SIGNAL_POLL, 33, "SIGPOLL", "Pollable event occurred") -SET (GDB_SIGNAL_WIND, 34, "SIGWIND", "SIGWIND") -SET (GDB_SIGNAL_PHONE, 35, "SIGPHONE", "SIGPHONE") -SET (GDB_SIGNAL_WAITING, 36, "SIGWAITING", "Process's LWPs are blocked") -SET (GDB_SIGNAL_LWP, 37, "SIGLWP", "Signal LWP") -SET (GDB_SIGNAL_DANGER, 38, "SIGDANGER", "Swap space dangerously low") -SET (GDB_SIGNAL_GRANT, 39, "SIGGRANT", "Monitor mode granted") -SET (GDB_SIGNAL_RETRACT, 40, "SIGRETRACT", - "Need to relinquish monitor mode") -SET (GDB_SIGNAL_MSG, 41, "SIGMSG", "Monitor mode data available") -SET (GDB_SIGNAL_SOUND, 42, "SIGSOUND", "Sound completed") -SET (GDB_SIGNAL_SAK, 43, "SIGSAK", "Secure attention") -SET (GDB_SIGNAL_PRIO, 44, "SIGPRIO", "SIGPRIO") -SET (GDB_SIGNAL_REALTIME_33, 45, "SIG33", "Real-time event 33") -SET (GDB_SIGNAL_REALTIME_34, 46, "SIG34", "Real-time event 34") -SET (GDB_SIGNAL_REALTIME_35, 47, "SIG35", "Real-time event 35") -SET (GDB_SIGNAL_REALTIME_36, 48, "SIG36", "Real-time event 36") -SET (GDB_SIGNAL_REALTIME_37, 49, "SIG37", "Real-time event 37") -SET (GDB_SIGNAL_REALTIME_38, 50, "SIG38", "Real-time event 38") -SET (GDB_SIGNAL_REALTIME_39, 51, "SIG39", "Real-time event 39") -SET (GDB_SIGNAL_REALTIME_40, 52, "SIG40", "Real-time event 40") -SET (GDB_SIGNAL_REALTIME_41, 53, "SIG41", "Real-time event 41") -SET (GDB_SIGNAL_REALTIME_42, 54, "SIG42", "Real-time event 42") -SET (GDB_SIGNAL_REALTIME_43, 55, "SIG43", "Real-time event 43") -SET (GDB_SIGNAL_REALTIME_44, 56, "SIG44", "Real-time event 44") -SET (GDB_SIGNAL_REALTIME_45, 57, "SIG45", "Real-time event 45") -SET (GDB_SIGNAL_REALTIME_46, 58, "SIG46", "Real-time event 46") -SET (GDB_SIGNAL_REALTIME_47, 59, "SIG47", "Real-time event 47") -SET (GDB_SIGNAL_REALTIME_48, 60, "SIG48", "Real-time event 48") -SET (GDB_SIGNAL_REALTIME_49, 61, "SIG49", "Real-time event 49") -SET (GDB_SIGNAL_REALTIME_50, 62, "SIG50", "Real-time event 50") -SET (GDB_SIGNAL_REALTIME_51, 63, "SIG51", "Real-time event 51") -SET (GDB_SIGNAL_REALTIME_52, 64, "SIG52", "Real-time event 52") -SET (GDB_SIGNAL_REALTIME_53, 65, "SIG53", "Real-time event 53") -SET (GDB_SIGNAL_REALTIME_54, 66, "SIG54", "Real-time event 54") -SET (GDB_SIGNAL_REALTIME_55, 67, "SIG55", "Real-time event 55") -SET (GDB_SIGNAL_REALTIME_56, 68, "SIG56", "Real-time event 56") -SET (GDB_SIGNAL_REALTIME_57, 69, "SIG57", "Real-time event 57") -SET (GDB_SIGNAL_REALTIME_58, 70, "SIG58", "Real-time event 58") -SET (GDB_SIGNAL_REALTIME_59, 71, "SIG59", "Real-time event 59") -SET (GDB_SIGNAL_REALTIME_60, 72, "SIG60", "Real-time event 60") -SET (GDB_SIGNAL_REALTIME_61, 73, "SIG61", "Real-time event 61") -SET (GDB_SIGNAL_REALTIME_62, 74, "SIG62", "Real-time event 62") -SET (GDB_SIGNAL_REALTIME_63, 75, "SIG63", "Real-time event 63") - -/* Used internally by Solaris threads. See signal(5) on Solaris. */ -SET (GDB_SIGNAL_CANCEL, 76, "SIGCANCEL", "LWP internal signal") - -/* Yes, this pains me, too. But LynxOS didn't have SIG32, and now - GNU/Linux does, and we can't disturb the numbering, since it's - part of the remote protocol. Note that in some GDB's - GDB_SIGNAL_REALTIME_32 is number 76. */ -SET (GDB_SIGNAL_REALTIME_32, 77, "SIG32", "Real-time event 32") -/* Yet another pain, IRIX 6 has SIG64. */ -SET (GDB_SIGNAL_REALTIME_64, 78, "SIG64", "Real-time event 64") -/* Yet another pain, GNU/Linux MIPS might go up to 128. */ -SET (GDB_SIGNAL_REALTIME_65, 79, "SIG65", "Real-time event 65") -SET (GDB_SIGNAL_REALTIME_66, 80, "SIG66", "Real-time event 66") -SET (GDB_SIGNAL_REALTIME_67, 81, "SIG67", "Real-time event 67") -SET (GDB_SIGNAL_REALTIME_68, 82, "SIG68", "Real-time event 68") -SET (GDB_SIGNAL_REALTIME_69, 83, "SIG69", "Real-time event 69") -SET (GDB_SIGNAL_REALTIME_70, 84, "SIG70", "Real-time event 70") -SET (GDB_SIGNAL_REALTIME_71, 85, "SIG71", "Real-time event 71") -SET (GDB_SIGNAL_REALTIME_72, 86, "SIG72", "Real-time event 72") -SET (GDB_SIGNAL_REALTIME_73, 87, "SIG73", "Real-time event 73") -SET (GDB_SIGNAL_REALTIME_74, 88, "SIG74", "Real-time event 74") -SET (GDB_SIGNAL_REALTIME_75, 89, "SIG75", "Real-time event 75") -SET (GDB_SIGNAL_REALTIME_76, 90, "SIG76", "Real-time event 76") -SET (GDB_SIGNAL_REALTIME_77, 91, "SIG77", "Real-time event 77") -SET (GDB_SIGNAL_REALTIME_78, 92, "SIG78", "Real-time event 78") -SET (GDB_SIGNAL_REALTIME_79, 93, "SIG79", "Real-time event 79") -SET (GDB_SIGNAL_REALTIME_80, 94, "SIG80", "Real-time event 80") -SET (GDB_SIGNAL_REALTIME_81, 95, "SIG81", "Real-time event 81") -SET (GDB_SIGNAL_REALTIME_82, 96, "SIG82", "Real-time event 82") -SET (GDB_SIGNAL_REALTIME_83, 97, "SIG83", "Real-time event 83") -SET (GDB_SIGNAL_REALTIME_84, 98, "SIG84", "Real-time event 84") -SET (GDB_SIGNAL_REALTIME_85, 99, "SIG85", "Real-time event 85") -SET (GDB_SIGNAL_REALTIME_86, 100, "SIG86", "Real-time event 86") -SET (GDB_SIGNAL_REALTIME_87, 101, "SIG87", "Real-time event 87") -SET (GDB_SIGNAL_REALTIME_88, 102, "SIG88", "Real-time event 88") -SET (GDB_SIGNAL_REALTIME_89, 103, "SIG89", "Real-time event 89") -SET (GDB_SIGNAL_REALTIME_90, 104, "SIG90", "Real-time event 90") -SET (GDB_SIGNAL_REALTIME_91, 105, "SIG91", "Real-time event 91") -SET (GDB_SIGNAL_REALTIME_92, 106, "SIG92", "Real-time event 92") -SET (GDB_SIGNAL_REALTIME_93, 107, "SIG93", "Real-time event 93") -SET (GDB_SIGNAL_REALTIME_94, 108, "SIG94", "Real-time event 94") -SET (GDB_SIGNAL_REALTIME_95, 109, "SIG95", "Real-time event 95") -SET (GDB_SIGNAL_REALTIME_96, 110, "SIG96", "Real-time event 96") -SET (GDB_SIGNAL_REALTIME_97, 111, "SIG97", "Real-time event 97") -SET (GDB_SIGNAL_REALTIME_98, 112, "SIG98", "Real-time event 98") -SET (GDB_SIGNAL_REALTIME_99, 113, "SIG99", "Real-time event 99") -SET (GDB_SIGNAL_REALTIME_100, 114, "SIG100", "Real-time event 100") -SET (GDB_SIGNAL_REALTIME_101, 115, "SIG101", "Real-time event 101") -SET (GDB_SIGNAL_REALTIME_102, 116, "SIG102", "Real-time event 102") -SET (GDB_SIGNAL_REALTIME_103, 117, "SIG103", "Real-time event 103") -SET (GDB_SIGNAL_REALTIME_104, 118, "SIG104", "Real-time event 104") -SET (GDB_SIGNAL_REALTIME_105, 119, "SIG105", "Real-time event 105") -SET (GDB_SIGNAL_REALTIME_106, 120, "SIG106", "Real-time event 106") -SET (GDB_SIGNAL_REALTIME_107, 121, "SIG107", "Real-time event 107") -SET (GDB_SIGNAL_REALTIME_108, 122, "SIG108", "Real-time event 108") -SET (GDB_SIGNAL_REALTIME_109, 123, "SIG109", "Real-time event 109") -SET (GDB_SIGNAL_REALTIME_110, 124, "SIG110", "Real-time event 110") -SET (GDB_SIGNAL_REALTIME_111, 125, "SIG111", "Real-time event 111") -SET (GDB_SIGNAL_REALTIME_112, 126, "SIG112", "Real-time event 112") -SET (GDB_SIGNAL_REALTIME_113, 127, "SIG113", "Real-time event 113") -SET (GDB_SIGNAL_REALTIME_114, 128, "SIG114", "Real-time event 114") -SET (GDB_SIGNAL_REALTIME_115, 129, "SIG115", "Real-time event 115") -SET (GDB_SIGNAL_REALTIME_116, 130, "SIG116", "Real-time event 116") -SET (GDB_SIGNAL_REALTIME_117, 131, "SIG117", "Real-time event 117") -SET (GDB_SIGNAL_REALTIME_118, 132, "SIG118", "Real-time event 118") -SET (GDB_SIGNAL_REALTIME_119, 133, "SIG119", "Real-time event 119") -SET (GDB_SIGNAL_REALTIME_120, 134, "SIG120", "Real-time event 120") -SET (GDB_SIGNAL_REALTIME_121, 135, "SIG121", "Real-time event 121") -SET (GDB_SIGNAL_REALTIME_122, 136, "SIG122", "Real-time event 122") -SET (GDB_SIGNAL_REALTIME_123, 137, "SIG123", "Real-time event 123") -SET (GDB_SIGNAL_REALTIME_124, 138, "SIG124", "Real-time event 124") -SET (GDB_SIGNAL_REALTIME_125, 139, "SIG125", "Real-time event 125") -SET (GDB_SIGNAL_REALTIME_126, 140, "SIG126", "Real-time event 126") -SET (GDB_SIGNAL_REALTIME_127, 141, "SIG127", "Real-time event 127") - -SET (GDB_SIGNAL_INFO, 142, "SIGINFO", "Information request") - -/* Some signal we don't know about. */ -SET (GDB_SIGNAL_UNKNOWN, 143, NULL, "Unknown signal") - -/* Use whatever signal we use when one is not specifically specified - (for passing to proceed and so on). */ -SET (GDB_SIGNAL_DEFAULT, 144, NULL, - "Internal error: printing GDB_SIGNAL_DEFAULT") - -/* Mach exceptions. In versions of GDB before 5.2, these were just before - GDB_SIGNAL_INFO if you were compiling on a Mach host (and missing - otherwise). */ -SET (TARGET_EXC_BAD_ACCESS, 145, "EXC_BAD_ACCESS", "Could not access memory") -SET (TARGET_EXC_BAD_INSTRUCTION, 146, "EXC_BAD_INSTRUCTION", - "Illegal instruction/operand") -SET (TARGET_EXC_ARITHMETIC, 147, "EXC_ARITHMETIC", "Arithmetic exception") -SET (TARGET_EXC_EMULATION, 148, "EXC_EMULATION", "Emulation instruction") -SET (TARGET_EXC_SOFTWARE, 149, "EXC_SOFTWARE", "Software generated exception") -SET (TARGET_EXC_BREAKPOINT, 150, "EXC_BREAKPOINT", "Breakpoint") - -/* If you are adding a new signal, add it just above this comment. */ - -/* Last and unused enum value, for sizing arrays, etc. */ -SET (GDB_SIGNAL_LAST, 151, NULL, "GDB_SIGNAL_MAGIC") diff --git a/include/gdb/signals.h b/include/gdb/signals.h deleted file mode 100644 index 1ee2c16..0000000 --- a/include/gdb/signals.h +++ /dev/null @@ -1,58 +0,0 @@ -/* Target signal numbers for GDB and the GDB remote protocol. - Copyright 1986-2013 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#ifndef GDB_SIGNALS_H -#define GDB_SIGNALS_H - -/* The numbering of these signals is chosen to match traditional unix - signals (insofar as various unices use the same numbers, anyway). - It is also the numbering of the GDB remote protocol. Other remote - protocols, if they use a different numbering, should make sure to - translate appropriately. - - Since these numbers have actually made it out into other software - (stubs, etc.), you mustn't disturb the assigned numbering. If you - need to add new signals here, add them to the end of the explicitly - numbered signals, at the comment marker. Add them unconditionally, - not within any #if or #ifdef. - - This is based strongly on Unix/POSIX signals for several reasons: - (1) This set of signals represents a widely-accepted attempt to - represent events of this sort in a portable fashion, (2) we want a - signal to make it from wait to child_wait to the user intact, (3) many - remote protocols use a similar encoding. However, it is - recognized that this set of signals has limitations (such as not - distinguishing between various kinds of SIGSEGV, or not - distinguishing hitting a breakpoint from finishing a single step). - So in the future we may get around this either by adding additional - signals for breakpoint, single-step, etc., or by adding signal - codes; the latter seems more in the spirit of what BSD, System V, - etc. are doing to address these issues. */ - -/* For an explanation of what each signal means, see - gdb_signal_to_string. */ - -enum gdb_signal - { -#define SET(symbol, constant, name, string) \ - symbol = constant, -#include "gdb/signals.def" -#undef SET - }; - -#endif /* #ifndef GDB_SIGNALS_H */ diff --git a/include/gdb/sim-arm.h b/include/gdb/sim-arm.h deleted file mode 100644 index cae062f..0000000 --- a/include/gdb/sim-arm.h +++ /dev/null @@ -1,112 +0,0 @@ -/* This file defines the interface between the Arm simulator and GDB. - - Copyright 2002-2013 Free Software Foundation, Inc. - - Contributed by Red Hat. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#if !defined (SIM_ARM_H) -#define SIM_ARM_H - -#ifdef __cplusplus -extern "C" { // } -#endif - -enum sim_arm_regs -{ - SIM_ARM_R0_REGNUM, - SIM_ARM_R1_REGNUM, - SIM_ARM_R2_REGNUM, - SIM_ARM_R3_REGNUM, - SIM_ARM_R4_REGNUM, - SIM_ARM_R5_REGNUM, - SIM_ARM_R6_REGNUM, - SIM_ARM_R7_REGNUM, - SIM_ARM_R8_REGNUM, - SIM_ARM_R9_REGNUM, - SIM_ARM_R10_REGNUM, - SIM_ARM_R11_REGNUM, - SIM_ARM_R12_REGNUM, - SIM_ARM_R13_REGNUM, - SIM_ARM_R14_REGNUM, - SIM_ARM_R15_REGNUM, /* PC */ - SIM_ARM_FP0_REGNUM, - SIM_ARM_FP1_REGNUM, - SIM_ARM_FP2_REGNUM, - SIM_ARM_FP3_REGNUM, - SIM_ARM_FP4_REGNUM, - SIM_ARM_FP5_REGNUM, - SIM_ARM_FP6_REGNUM, - SIM_ARM_FP7_REGNUM, - SIM_ARM_FPS_REGNUM, - SIM_ARM_PS_REGNUM, - SIM_ARM_MAVERIC_COP0R0_REGNUM, - SIM_ARM_MAVERIC_COP0R1_REGNUM, - SIM_ARM_MAVERIC_COP0R2_REGNUM, - SIM_ARM_MAVERIC_COP0R3_REGNUM, - SIM_ARM_MAVERIC_COP0R4_REGNUM, - SIM_ARM_MAVERIC_COP0R5_REGNUM, - SIM_ARM_MAVERIC_COP0R6_REGNUM, - SIM_ARM_MAVERIC_COP0R7_REGNUM, - SIM_ARM_MAVERIC_COP0R8_REGNUM, - SIM_ARM_MAVERIC_COP0R9_REGNUM, - SIM_ARM_MAVERIC_COP0R10_REGNUM, - SIM_ARM_MAVERIC_COP0R11_REGNUM, - SIM_ARM_MAVERIC_COP0R12_REGNUM, - SIM_ARM_MAVERIC_COP0R13_REGNUM, - SIM_ARM_MAVERIC_COP0R14_REGNUM, - SIM_ARM_MAVERIC_COP0R15_REGNUM, - SIM_ARM_MAVERIC_DSPSC_REGNUM, - SIM_ARM_IWMMXT_COP0R0_REGNUM, - SIM_ARM_IWMMXT_COP0R1_REGNUM, - SIM_ARM_IWMMXT_COP0R2_REGNUM, - SIM_ARM_IWMMXT_COP0R3_REGNUM, - SIM_ARM_IWMMXT_COP0R4_REGNUM, - SIM_ARM_IWMMXT_COP0R5_REGNUM, - SIM_ARM_IWMMXT_COP0R6_REGNUM, - SIM_ARM_IWMMXT_COP0R7_REGNUM, - SIM_ARM_IWMMXT_COP0R8_REGNUM, - SIM_ARM_IWMMXT_COP0R9_REGNUM, - SIM_ARM_IWMMXT_COP0R10_REGNUM, - SIM_ARM_IWMMXT_COP0R11_REGNUM, - SIM_ARM_IWMMXT_COP0R12_REGNUM, - SIM_ARM_IWMMXT_COP0R13_REGNUM, - SIM_ARM_IWMMXT_COP0R14_REGNUM, - SIM_ARM_IWMMXT_COP0R15_REGNUM, - SIM_ARM_IWMMXT_COP1R0_REGNUM, - SIM_ARM_IWMMXT_COP1R1_REGNUM, - SIM_ARM_IWMMXT_COP1R2_REGNUM, - SIM_ARM_IWMMXT_COP1R3_REGNUM, - SIM_ARM_IWMMXT_COP1R4_REGNUM, - SIM_ARM_IWMMXT_COP1R5_REGNUM, - SIM_ARM_IWMMXT_COP1R6_REGNUM, - SIM_ARM_IWMMXT_COP1R7_REGNUM, - SIM_ARM_IWMMXT_COP1R8_REGNUM, - SIM_ARM_IWMMXT_COP1R9_REGNUM, - SIM_ARM_IWMMXT_COP1R10_REGNUM, - SIM_ARM_IWMMXT_COP1R11_REGNUM, - SIM_ARM_IWMMXT_COP1R12_REGNUM, - SIM_ARM_IWMMXT_COP1R13_REGNUM, - SIM_ARM_IWMMXT_COP1R14_REGNUM, - SIM_ARM_IWMMXT_COP1R15_REGNUM -}; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/gdb/sim-bfin.h b/include/gdb/sim-bfin.h deleted file mode 100644 index ef2a115..0000000 --- a/include/gdb/sim-bfin.h +++ /dev/null @@ -1,82 +0,0 @@ -/* This file defines the interface between the Blackfin simulator and GDB. - - Copyright (C) 2005-2013 Free Software Foundation, Inc. - Contributed by Analog Devices. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -enum sim_bfin_regnum { - SIM_BFIN_R0_REGNUM = 0, - SIM_BFIN_R1_REGNUM, - SIM_BFIN_R2_REGNUM, - SIM_BFIN_R3_REGNUM, - SIM_BFIN_R4_REGNUM, - SIM_BFIN_R5_REGNUM, - SIM_BFIN_R6_REGNUM, - SIM_BFIN_R7_REGNUM, - SIM_BFIN_P0_REGNUM, - SIM_BFIN_P1_REGNUM, - SIM_BFIN_P2_REGNUM, - SIM_BFIN_P3_REGNUM, - SIM_BFIN_P4_REGNUM, - SIM_BFIN_P5_REGNUM, - SIM_BFIN_SP_REGNUM, - SIM_BFIN_FP_REGNUM, - SIM_BFIN_I0_REGNUM, - SIM_BFIN_I1_REGNUM, - SIM_BFIN_I2_REGNUM, - SIM_BFIN_I3_REGNUM, - SIM_BFIN_M0_REGNUM, - SIM_BFIN_M1_REGNUM, - SIM_BFIN_M2_REGNUM, - SIM_BFIN_M3_REGNUM, - SIM_BFIN_B0_REGNUM, - SIM_BFIN_B1_REGNUM, - SIM_BFIN_B2_REGNUM, - SIM_BFIN_B3_REGNUM, - SIM_BFIN_L0_REGNUM, - SIM_BFIN_L1_REGNUM, - SIM_BFIN_L2_REGNUM, - SIM_BFIN_L3_REGNUM, - SIM_BFIN_A0_DOT_X_REGNUM, - SIM_BFIN_A0_DOT_W_REGNUM, - SIM_BFIN_A1_DOT_X_REGNUM, - SIM_BFIN_A1_DOT_W_REGNUM, - SIM_BFIN_ASTAT_REGNUM, - SIM_BFIN_RETS_REGNUM, - SIM_BFIN_LC0_REGNUM, - SIM_BFIN_LT0_REGNUM, - SIM_BFIN_LB0_REGNUM, - SIM_BFIN_LC1_REGNUM, - SIM_BFIN_LT1_REGNUM, - SIM_BFIN_LB1_REGNUM, - SIM_BFIN_CYCLES_REGNUM, - SIM_BFIN_CYCLES2_REGNUM, - SIM_BFIN_USP_REGNUM, - SIM_BFIN_SEQSTAT_REGNUM, - SIM_BFIN_SYSCFG_REGNUM, - SIM_BFIN_RETI_REGNUM, - SIM_BFIN_RETX_REGNUM, - SIM_BFIN_RETN_REGNUM, - SIM_BFIN_RETE_REGNUM, - SIM_BFIN_PC_REGNUM, - SIM_BFIN_CC_REGNUM, - SIM_BFIN_TEXT_ADDR, - SIM_BFIN_TEXT_END_ADDR, - SIM_BFIN_DATA_ADDR, - SIM_BFIN_IPEND_REGNUM -}; - diff --git a/include/gdb/sim-cr16.h b/include/gdb/sim-cr16.h deleted file mode 100644 index 1503657..0000000 --- a/include/gdb/sim-cr16.h +++ /dev/null @@ -1,106 +0,0 @@ -/* This file defines the interface between the cr16 simulator and gdb. - - Copyright 2008-2013 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see . */ - -#if !defined (SIM_CR16_H) -#define SIM_CR16_H - -#ifdef __cplusplus -extern "C" { // } -#endif - -enum - { - SIM_CR16_MEMORY_UNIFIED = 0x00000000, - SIM_CR16_MEMORY_INSN = 0x10000000, - SIM_CR16_MEMORY_DATA = 0x10000000, - SIM_CR16_MEMORY_DMAP = 0x10000000, - SIM_CR16_MEMORY_IMAP = 0x10000000 - }; - -extern unsigned long sim_cr16_translate_dmap_addr - (unsigned long offset, - int nr_bytes, - unsigned long *phys, - void *regcache, - unsigned long (*dmap_register) (void *regcache, int reg_nr)); - -extern unsigned long sim_cr16_translate_imap_addr - (unsigned long offset, - int nr_bytes, - unsigned long *phys, - void *regcache, - unsigned long (*imap_register) (void *regcache, int reg_nr)); - -extern unsigned long sim_cr16_translate_addr - (unsigned long vaddr, - int nr_bytes, - unsigned long *phys, - void *regcache, - unsigned long (*dmap_register) (void *regcache, int reg_nr), - unsigned long (*imap_register) (void *regcache, int reg_nr)); - - -/* The simulator makes use of the following register information. */ - -enum sim_cr16_regs -{ - SIM_CR16_R0_REGNUM, - SIM_CR16_R1_REGNUM, - SIM_CR16_R2_REGNUM, - SIM_CR16_R3_REGNUM, - SIM_CR16_R4_REGNUM, - SIM_CR16_R5_REGNUM, - SIM_CR16_R6_REGNUM, - SIM_CR16_R7_REGNUM, - SIM_CR16_R8_REGNUM, - SIM_CR16_R9_REGNUM, - SIM_CR16_R10_REGNUM, - SIM_CR16_R11_REGNUM, - SIM_CR16_R12_REGNUM, - SIM_CR16_R13_REGNUM, - SIM_CR16_R14_REGNUM, - SIM_CR16_R15_REGNUM, - - SIM_CR16_PC_REGNUM, - SIM_CR16_ISP_REGNUM, - SIM_CR16_USP_REGNUM, - SIM_CR16_INTBASE_REGNUM, - SIM_CR16_PSR_REGNUM, - SIM_CR16_CFG_REGNUM, - SIM_CR16_DBS_REGNUM, - SIM_CR16_DCR_REGNUM, - SIM_CR16_DSR_REGNUM, - SIM_CR16_CAR0_REGNUM, - SIM_CR16_CAR1_REGNUM -}; - -enum -{ - SIM_CR16_NR_R_REGS = 16, - SIM_CR16_NR_A_REGS = 2, - SIM_CR16_NR_IMAP_REGS = 2, - SIM_CR16_NR_DMAP_REGS = 4, - SIM_CR16_NR_CR_REGS = 11 -}; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/gdb/sim-d10v.h b/include/gdb/sim-d10v.h deleted file mode 100644 index 12eaa63..0000000 --- a/include/gdb/sim-d10v.h +++ /dev/null @@ -1,141 +0,0 @@ -/* This file defines the interface between the d10v simulator and gdb. - - Copyright 1999-2013 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#if !defined (SIM_D10V_H) -#define SIM_D10V_H - -#ifdef __cplusplus -extern "C" { // } -#endif - -/* GDB interprets addresses as: - - 0x00xxxxxx: Physical unified memory segment (Unified memory) - 0x01xxxxxx: Physical instruction memory segment (On-chip insn memory) - 0x02xxxxxx: Physical data memory segment (On-chip data memory) - 0x10xxxxxx: Logical data address segment (DMAP translated memory) - 0x11xxxxxx: Logical instruction address segment (IMAP translated memory) - - The remote d10v board interprets addresses as: - - 0x00xxxxxx: Physical unified memory segment (Unified memory) - 0x01xxxxxx: Physical instruction memory segment (On-chip insn memory) - 0x02xxxxxx: Physical data memory segment (On-chip data memory) - - The following translate a virtual DMAP/IMAP offset into a physical - memory segment assigning the translated address to PHYS. Since a - memory access may cross a page boundrary the number of bytes for - which the translation is applicable (or 0 for an invalid virtual - offset) is returned. */ - -enum - { - SIM_D10V_MEMORY_UNIFIED = 0x00000000, - SIM_D10V_MEMORY_INSN = 0x01000000, - SIM_D10V_MEMORY_DATA = 0x02000000, - SIM_D10V_MEMORY_DMAP = 0x10000000, - SIM_D10V_MEMORY_IMAP = 0x11000000 - }; - -extern unsigned long sim_d10v_translate_dmap_addr - (unsigned long offset, - int nr_bytes, - unsigned long *phys, - void *regcache, - unsigned long (*dmap_register) (void *regcache, int reg_nr)); - -extern unsigned long sim_d10v_translate_imap_addr - (unsigned long offset, - int nr_bytes, - unsigned long *phys, - void *regcache, - unsigned long (*imap_register) (void *regcache, int reg_nr)); - -extern unsigned long sim_d10v_translate_addr - (unsigned long vaddr, - int nr_bytes, - unsigned long *phys, - void *regcache, - unsigned long (*dmap_register) (void *regcache, int reg_nr), - unsigned long (*imap_register) (void *regcache, int reg_nr)); - - -/* The simulator makes use of the following register information. */ - -enum sim_d10v_regs -{ - SIM_D10V_R0_REGNUM, - SIM_D10V_R1_REGNUM, - SIM_D10V_R2_REGNUM, - SIM_D10V_R3_REGNUM, - SIM_D10V_R4_REGNUM, - SIM_D10V_R5_REGNUM, - SIM_D10V_R6_REGNUM, - SIM_D10V_R7_REGNUM, - SIM_D10V_R8_REGNUM, - SIM_D10V_R9_REGNUM, - SIM_D10V_R10_REGNUM, - SIM_D10V_R11_REGNUM, - SIM_D10V_R12_REGNUM, - SIM_D10V_R13_REGNUM, - SIM_D10V_R14_REGNUM, - SIM_D10V_R15_REGNUM, - SIM_D10V_CR0_REGNUM, - SIM_D10V_CR1_REGNUM, - SIM_D10V_CR2_REGNUM, - SIM_D10V_CR3_REGNUM, - SIM_D10V_CR4_REGNUM, - SIM_D10V_CR5_REGNUM, - SIM_D10V_CR6_REGNUM, - SIM_D10V_CR7_REGNUM, - SIM_D10V_CR8_REGNUM, - SIM_D10V_CR9_REGNUM, - SIM_D10V_CR10_REGNUM, - SIM_D10V_CR11_REGNUM, - SIM_D10V_CR12_REGNUM, - SIM_D10V_CR13_REGNUM, - SIM_D10V_CR14_REGNUM, - SIM_D10V_CR15_REGNUM, - SIM_D10V_A0_REGNUM, - SIM_D10V_A1_REGNUM, - SIM_D10V_SPI_REGNUM, - SIM_D10V_SPU_REGNUM, - SIM_D10V_IMAP0_REGNUM, - SIM_D10V_IMAP1_REGNUM, - SIM_D10V_DMAP0_REGNUM, - SIM_D10V_DMAP1_REGNUM, - SIM_D10V_DMAP2_REGNUM, - SIM_D10V_DMAP3_REGNUM, - SIM_D10V_TS2_DMAP_REGNUM -}; - -enum -{ - SIM_D10V_NR_R_REGS = 16, - SIM_D10V_NR_A_REGS = 2, - SIM_D10V_NR_IMAP_REGS = 2, - SIM_D10V_NR_DMAP_REGS = 4, - SIM_D10V_NR_CR_REGS = 16 -}; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/gdb/sim-frv.h b/include/gdb/sim-frv.h deleted file mode 100644 index bdb17f8..0000000 --- a/include/gdb/sim-frv.h +++ /dev/null @@ -1,51 +0,0 @@ -/* This file defines the interface between the FR-V simulator and GDB. - - Copyright 2003-2013 Free Software Foundation, Inc. - - Contributed by Red Hat. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#if !defined (SIM_FRV_H) -#define SIM_FRV_H - -#ifdef __cplusplus -extern "C" { // } -#endif - -enum sim_frv_regs -{ - SIM_FRV_GR0_REGNUM = 0, - SIM_FRV_GR63_REGNUM = 63, - SIM_FRV_FR0_REGNUM = 64, - SIM_FRV_FR63_REGNUM = 127, - SIM_FRV_PC_REGNUM = 128, - - /* An FR-V architecture may have up to 4096 special purpose registers - (SPRs). In order to determine a specific constant used to access - a particular SPR, one of the H_SPR_ prefixed offsets defined in - opcodes/frv-desc.h should be added to SIM_FRV_SPR0_REGNUM. So, - for example, the number that GDB uses to fetch the link register - from the simulator is (SIM_FRV_SPR0_REGNUM + H_SPR_LR). */ - SIM_FRV_SPR0_REGNUM = 129, - SIM_FRV_SPR4095_REGNUM = SIM_FRV_SPR0_REGNUM + 4095 -}; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/gdb/sim-h8300.h b/include/gdb/sim-h8300.h deleted file mode 100644 index 1649b52..0000000 --- a/include/gdb/sim-h8300.h +++ /dev/null @@ -1,77 +0,0 @@ -/* This file defines the interface between the h8300 simulator and gdb. - Copyright (C) 2002-2013 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#if !defined (SIM_H8300_H) -#define SIM_H8300_H - -#ifdef __cplusplus -extern "C" { //} -#endif - -/* The simulator makes use of the following register information. */ - - enum sim_h8300_regs - { - /* Registers common to all the H8 variants. */ - /* Start here: */ - SIM_H8300_R0_REGNUM, - SIM_H8300_R1_REGNUM, - SIM_H8300_R2_REGNUM, - SIM_H8300_R3_REGNUM, - SIM_H8300_R4_REGNUM, - SIM_H8300_R5_REGNUM, - SIM_H8300_R6_REGNUM, - SIM_H8300_R7_REGNUM, - - SIM_H8300_CCR_REGNUM, /* Contains processor status */ - SIM_H8300_PC_REGNUM, /* Contains program counter */ - /* End here */ - - SIM_H8300_EXR_REGNUM, /* Contains extended processor status - H8S and higher */ - SIM_H8300_MACL_REGNUM, /* Lower part of MAC register (26xx only)*/ - SIM_H8300_MACH_REGNUM, /* High part of MAC register (26xx only) */ - - SIM_H8300_CYCLE_REGNUM, - SIM_H8300_INST_REGNUM, - SIM_H8300_TICK_REGNUM - }; - - enum - { - SIM_H8300_ARG_FIRST_REGNUM = SIM_H8300_R0_REGNUM, /* first reg in which an arg - may be passed */ - SIM_H8300_ARG_LAST_REGNUM = SIM_H8300_R3_REGNUM, /* last reg in which an arg - may be passed */ - SIM_H8300_FP_REGNUM = SIM_H8300_R6_REGNUM, /* Contain address of executing - stack frame */ - SIM_H8300_SP_REGNUM = SIM_H8300_R7_REGNUM /* Contains address of top of stack */ - }; - - enum - { - SIM_H8300_NUM_COMMON_REGS = 10, - SIM_H8300_S_NUM_REGS = 13, - SIM_H8300_NUM_REGS = 16 - }; - -#ifdef __cplusplus -} -#endif - -#endif /* SIM_H8300_H */ diff --git a/include/gdb/sim-lm32.h b/include/gdb/sim-lm32.h deleted file mode 100644 index b04d8d6..0000000 --- a/include/gdb/sim-lm32.h +++ /dev/null @@ -1,76 +0,0 @@ -/* This file defines the interface between the LM32 simulator and GDB. - Contributed by Jon Beniston - - Copyright (C) 2009-2013 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#ifndef SIM_LM32_H -#define SIM_LM32_H - -#ifdef __cplusplus -extern "C" { // } -#endif - -enum sim_lm32_regs -{ - SIM_LM32_R0_REGNUM, - SIM_LM32_R1_REGNUM, - SIM_LM32_R2_REGNUM, - SIM_LM32_R3_REGNUM, - SIM_LM32_R4_REGNUM, - SIM_LM32_R5_REGNUM, - SIM_LM32_R6_REGNUM, - SIM_LM32_R7_REGNUM, - SIM_LM32_R8_REGNUM, - SIM_LM32_R9_REGNUM, - SIM_LM32_R10_REGNUM, - SIM_LM32_R11_REGNUM, - SIM_LM32_R12_REGNUM, - SIM_LM32_R13_REGNUM, - SIM_LM32_R14_REGNUM, - SIM_LM32_R15_REGNUM, - SIM_LM32_R16_REGNUM, - SIM_LM32_R17_REGNUM, - SIM_LM32_R18_REGNUM, - SIM_LM32_R19_REGNUM, - SIM_LM32_R20_REGNUM, - SIM_LM32_R21_REGNUM, - SIM_LM32_R22_REGNUM, - SIM_LM32_R23_REGNUM, - SIM_LM32_R24_REGNUM, - SIM_LM32_R25_REGNUM, - SIM_LM32_GP_REGNUM, - SIM_LM32_FP_REGNUM, - SIM_LM32_SP_REGNUM, - SIM_LM32_RA_REGNUM, - SIM_LM32_BA_REGNUM, - SIM_LM32_EA_REGNUM, - SIM_LM32_PC_REGNUM, - SIM_LM32_EID_REGNUM, - SIM_LM32_EBA_REGNUM, - SIM_LM32_DEBA_REGNUM, - SIM_LM32_IE_REGNUM, - SIM_LM32_IM_REGNUM, - SIM_LM32_IP_REGNUM, - SIM_LM32_NUM_REGS -}; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/gdb/sim-m32c.h b/include/gdb/sim-m32c.h deleted file mode 100644 index 963ae04..0000000 --- a/include/gdb/sim-m32c.h +++ /dev/null @@ -1,62 +0,0 @@ -/* This file defines the interface between the m32c simulator and gdb. - Copyright (C) 2005-2013 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#ifndef SIM_M32C_H -#define SIM_M32C_H - -enum m32c_sim_reg { - m32c_sim_reg_r0_bank0, - m32c_sim_reg_r1_bank0, - m32c_sim_reg_r2_bank0, - m32c_sim_reg_r3_bank0, - m32c_sim_reg_a0_bank0, - m32c_sim_reg_a1_bank0, - m32c_sim_reg_fb_bank0, - m32c_sim_reg_sb_bank0, - m32c_sim_reg_r0_bank1, - m32c_sim_reg_r1_bank1, - m32c_sim_reg_r2_bank1, - m32c_sim_reg_r3_bank1, - m32c_sim_reg_a0_bank1, - m32c_sim_reg_a1_bank1, - m32c_sim_reg_fb_bank1, - m32c_sim_reg_sb_bank1, - m32c_sim_reg_usp, - m32c_sim_reg_isp, - m32c_sim_reg_pc, - m32c_sim_reg_intb, - m32c_sim_reg_flg, - m32c_sim_reg_svf, - m32c_sim_reg_svp, - m32c_sim_reg_vct, - m32c_sim_reg_dmd0, - m32c_sim_reg_dmd1, - m32c_sim_reg_dct0, - m32c_sim_reg_dct1, - m32c_sim_reg_drc0, - m32c_sim_reg_drc1, - m32c_sim_reg_dma0, - m32c_sim_reg_dma1, - m32c_sim_reg_dsa0, - m32c_sim_reg_dsa1, - m32c_sim_reg_dra0, - m32c_sim_reg_dra1, - m32c_sim_reg_num_regs -}; - -#endif /* SIM_M32C_H */ diff --git a/include/gdb/sim-ppc.h b/include/gdb/sim-ppc.h deleted file mode 100644 index 188eb49..0000000 --- a/include/gdb/sim-ppc.h +++ /dev/null @@ -1,773 +0,0 @@ -/* sim-ppc.h --- interface between PowerPC simulator and GDB. - - Copyright 2004-2013 Free Software Foundation, Inc. - - Contributed by Red Hat. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#if !defined (SIM_PPC_H) -#define SIM_PPC_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* The register access functions, sim_fetch_register and - sim_store_register, use the following numbering for PowerPC - registers. */ - -enum sim_ppc_regnum - { - /* General-purpose registers, r0 -- r31. */ - sim_ppc_r0_regnum, - sim_ppc_r1_regnum, - sim_ppc_r2_regnum, - sim_ppc_r3_regnum, - sim_ppc_r4_regnum, - sim_ppc_r5_regnum, - sim_ppc_r6_regnum, - sim_ppc_r7_regnum, - sim_ppc_r8_regnum, - sim_ppc_r9_regnum, - sim_ppc_r10_regnum, - sim_ppc_r11_regnum, - sim_ppc_r12_regnum, - sim_ppc_r13_regnum, - sim_ppc_r14_regnum, - sim_ppc_r15_regnum, - sim_ppc_r16_regnum, - sim_ppc_r17_regnum, - sim_ppc_r18_regnum, - sim_ppc_r19_regnum, - sim_ppc_r20_regnum, - sim_ppc_r21_regnum, - sim_ppc_r22_regnum, - sim_ppc_r23_regnum, - sim_ppc_r24_regnum, - sim_ppc_r25_regnum, - sim_ppc_r26_regnum, - sim_ppc_r27_regnum, - sim_ppc_r28_regnum, - sim_ppc_r29_regnum, - sim_ppc_r30_regnum, - sim_ppc_r31_regnum, - - /* Floating-point registers, f0 -- f31. */ - sim_ppc_f0_regnum, - sim_ppc_f1_regnum, - sim_ppc_f2_regnum, - sim_ppc_f3_regnum, - sim_ppc_f4_regnum, - sim_ppc_f5_regnum, - sim_ppc_f6_regnum, - sim_ppc_f7_regnum, - sim_ppc_f8_regnum, - sim_ppc_f9_regnum, - sim_ppc_f10_regnum, - sim_ppc_f11_regnum, - sim_ppc_f12_regnum, - sim_ppc_f13_regnum, - sim_ppc_f14_regnum, - sim_ppc_f15_regnum, - sim_ppc_f16_regnum, - sim_ppc_f17_regnum, - sim_ppc_f18_regnum, - sim_ppc_f19_regnum, - sim_ppc_f20_regnum, - sim_ppc_f21_regnum, - sim_ppc_f22_regnum, - sim_ppc_f23_regnum, - sim_ppc_f24_regnum, - sim_ppc_f25_regnum, - sim_ppc_f26_regnum, - sim_ppc_f27_regnum, - sim_ppc_f28_regnum, - sim_ppc_f29_regnum, - sim_ppc_f30_regnum, - sim_ppc_f31_regnum, - - /* Altivec vector registers, vr0 -- vr31. */ - sim_ppc_vr0_regnum, - sim_ppc_vr1_regnum, - sim_ppc_vr2_regnum, - sim_ppc_vr3_regnum, - sim_ppc_vr4_regnum, - sim_ppc_vr5_regnum, - sim_ppc_vr6_regnum, - sim_ppc_vr7_regnum, - sim_ppc_vr8_regnum, - sim_ppc_vr9_regnum, - sim_ppc_vr10_regnum, - sim_ppc_vr11_regnum, - sim_ppc_vr12_regnum, - sim_ppc_vr13_regnum, - sim_ppc_vr14_regnum, - sim_ppc_vr15_regnum, - sim_ppc_vr16_regnum, - sim_ppc_vr17_regnum, - sim_ppc_vr18_regnum, - sim_ppc_vr19_regnum, - sim_ppc_vr20_regnum, - sim_ppc_vr21_regnum, - sim_ppc_vr22_regnum, - sim_ppc_vr23_regnum, - sim_ppc_vr24_regnum, - sim_ppc_vr25_regnum, - sim_ppc_vr26_regnum, - sim_ppc_vr27_regnum, - sim_ppc_vr28_regnum, - sim_ppc_vr29_regnum, - sim_ppc_vr30_regnum, - sim_ppc_vr31_regnum, - - /* SPE APU GPR upper halves. These are the upper 32 bits of the - gprs; there is one upper-half register for each gpr, so it is - appropriate to use sim_ppc_num_gprs for iterating through - these. */ - sim_ppc_rh0_regnum, - sim_ppc_rh1_regnum, - sim_ppc_rh2_regnum, - sim_ppc_rh3_regnum, - sim_ppc_rh4_regnum, - sim_ppc_rh5_regnum, - sim_ppc_rh6_regnum, - sim_ppc_rh7_regnum, - sim_ppc_rh8_regnum, - sim_ppc_rh9_regnum, - sim_ppc_rh10_regnum, - sim_ppc_rh11_regnum, - sim_ppc_rh12_regnum, - sim_ppc_rh13_regnum, - sim_ppc_rh14_regnum, - sim_ppc_rh15_regnum, - sim_ppc_rh16_regnum, - sim_ppc_rh17_regnum, - sim_ppc_rh18_regnum, - sim_ppc_rh19_regnum, - sim_ppc_rh20_regnum, - sim_ppc_rh21_regnum, - sim_ppc_rh22_regnum, - sim_ppc_rh23_regnum, - sim_ppc_rh24_regnum, - sim_ppc_rh25_regnum, - sim_ppc_rh26_regnum, - sim_ppc_rh27_regnum, - sim_ppc_rh28_regnum, - sim_ppc_rh29_regnum, - sim_ppc_rh30_regnum, - sim_ppc_rh31_regnum, - - /* SPE APU GPR full registers. Each of these registers is the - 64-bit concatenation of a 32-bit GPR (providing the lower bits) - and a 32-bit upper-half register (providing the higher bits). - As for the upper-half registers, it is appropriate to use - sim_ppc_num_gprs with these. */ - sim_ppc_ev0_regnum, - sim_ppc_ev1_regnum, - sim_ppc_ev2_regnum, - sim_ppc_ev3_regnum, - sim_ppc_ev4_regnum, - sim_ppc_ev5_regnum, - sim_ppc_ev6_regnum, - sim_ppc_ev7_regnum, - sim_ppc_ev8_regnum, - sim_ppc_ev9_regnum, - sim_ppc_ev10_regnum, - sim_ppc_ev11_regnum, - sim_ppc_ev12_regnum, - sim_ppc_ev13_regnum, - sim_ppc_ev14_regnum, - sim_ppc_ev15_regnum, - sim_ppc_ev16_regnum, - sim_ppc_ev17_regnum, - sim_ppc_ev18_regnum, - sim_ppc_ev19_regnum, - sim_ppc_ev20_regnum, - sim_ppc_ev21_regnum, - sim_ppc_ev22_regnum, - sim_ppc_ev23_regnum, - sim_ppc_ev24_regnum, - sim_ppc_ev25_regnum, - sim_ppc_ev26_regnum, - sim_ppc_ev27_regnum, - sim_ppc_ev28_regnum, - sim_ppc_ev29_regnum, - sim_ppc_ev30_regnum, - sim_ppc_ev31_regnum, - - /* Segment registers, sr0 -- sr15. */ - sim_ppc_sr0_regnum, - sim_ppc_sr1_regnum, - sim_ppc_sr2_regnum, - sim_ppc_sr3_regnum, - sim_ppc_sr4_regnum, - sim_ppc_sr5_regnum, - sim_ppc_sr6_regnum, - sim_ppc_sr7_regnum, - sim_ppc_sr8_regnum, - sim_ppc_sr9_regnum, - sim_ppc_sr10_regnum, - sim_ppc_sr11_regnum, - sim_ppc_sr12_regnum, - sim_ppc_sr13_regnum, - sim_ppc_sr14_regnum, - sim_ppc_sr15_regnum, - - /* Miscellaneous --- but non-SPR --- registers. */ - sim_ppc_pc_regnum, - sim_ppc_ps_regnum, - sim_ppc_cr_regnum, - sim_ppc_fpscr_regnum, - sim_ppc_acc_regnum, - sim_ppc_vscr_regnum, - - /* Special-purpose registers. */ - sim_ppc_spr0_regnum, sim_ppc_spr1_regnum, - sim_ppc_spr2_regnum, sim_ppc_spr3_regnum, - sim_ppc_spr4_regnum, sim_ppc_spr5_regnum, - sim_ppc_spr6_regnum, sim_ppc_spr7_regnum, - sim_ppc_spr8_regnum, sim_ppc_spr9_regnum, - sim_ppc_spr10_regnum, sim_ppc_spr11_regnum, - sim_ppc_spr12_regnum, sim_ppc_spr13_regnum, - sim_ppc_spr14_regnum, sim_ppc_spr15_regnum, - sim_ppc_spr16_regnum, sim_ppc_spr17_regnum, - sim_ppc_spr18_regnum, sim_ppc_spr19_regnum, - sim_ppc_spr20_regnum, sim_ppc_spr21_regnum, - sim_ppc_spr22_regnum, sim_ppc_spr23_regnum, - sim_ppc_spr24_regnum, sim_ppc_spr25_regnum, - sim_ppc_spr26_regnum, sim_ppc_spr27_regnum, - sim_ppc_spr28_regnum, sim_ppc_spr29_regnum, - sim_ppc_spr30_regnum, sim_ppc_spr31_regnum, - sim_ppc_spr32_regnum, sim_ppc_spr33_regnum, - sim_ppc_spr34_regnum, sim_ppc_spr35_regnum, - sim_ppc_spr36_regnum, sim_ppc_spr37_regnum, - sim_ppc_spr38_regnum, sim_ppc_spr39_regnum, - sim_ppc_spr40_regnum, sim_ppc_spr41_regnum, - sim_ppc_spr42_regnum, sim_ppc_spr43_regnum, - sim_ppc_spr44_regnum, sim_ppc_spr45_regnum, - sim_ppc_spr46_regnum, sim_ppc_spr47_regnum, - sim_ppc_spr48_regnum, sim_ppc_spr49_regnum, - sim_ppc_spr50_regnum, sim_ppc_spr51_regnum, - sim_ppc_spr52_regnum, sim_ppc_spr53_regnum, - sim_ppc_spr54_regnum, sim_ppc_spr55_regnum, - sim_ppc_spr56_regnum, sim_ppc_spr57_regnum, - sim_ppc_spr58_regnum, sim_ppc_spr59_regnum, - sim_ppc_spr60_regnum, sim_ppc_spr61_regnum, - sim_ppc_spr62_regnum, sim_ppc_spr63_regnum, - sim_ppc_spr64_regnum, sim_ppc_spr65_regnum, - sim_ppc_spr66_regnum, sim_ppc_spr67_regnum, - sim_ppc_spr68_regnum, sim_ppc_spr69_regnum, - sim_ppc_spr70_regnum, sim_ppc_spr71_regnum, - sim_ppc_spr72_regnum, sim_ppc_spr73_regnum, - sim_ppc_spr74_regnum, sim_ppc_spr75_regnum, - sim_ppc_spr76_regnum, sim_ppc_spr77_regnum, - sim_ppc_spr78_regnum, sim_ppc_spr79_regnum, - sim_ppc_spr80_regnum, sim_ppc_spr81_regnum, - sim_ppc_spr82_regnum, sim_ppc_spr83_regnum, - sim_ppc_spr84_regnum, sim_ppc_spr85_regnum, - sim_ppc_spr86_regnum, sim_ppc_spr87_regnum, - sim_ppc_spr88_regnum, sim_ppc_spr89_regnum, - sim_ppc_spr90_regnum, sim_ppc_spr91_regnum, - sim_ppc_spr92_regnum, sim_ppc_spr93_regnum, - sim_ppc_spr94_regnum, sim_ppc_spr95_regnum, - sim_ppc_spr96_regnum, sim_ppc_spr97_regnum, - sim_ppc_spr98_regnum, sim_ppc_spr99_regnum, - sim_ppc_spr100_regnum, sim_ppc_spr101_regnum, - sim_ppc_spr102_regnum, sim_ppc_spr103_regnum, - sim_ppc_spr104_regnum, sim_ppc_spr105_regnum, - sim_ppc_spr106_regnum, sim_ppc_spr107_regnum, - sim_ppc_spr108_regnum, sim_ppc_spr109_regnum, - sim_ppc_spr110_regnum, sim_ppc_spr111_regnum, - sim_ppc_spr112_regnum, sim_ppc_spr113_regnum, - sim_ppc_spr114_regnum, sim_ppc_spr115_regnum, - sim_ppc_spr116_regnum, sim_ppc_spr117_regnum, - sim_ppc_spr118_regnum, sim_ppc_spr119_regnum, - sim_ppc_spr120_regnum, sim_ppc_spr121_regnum, - sim_ppc_spr122_regnum, sim_ppc_spr123_regnum, - sim_ppc_spr124_regnum, sim_ppc_spr125_regnum, - sim_ppc_spr126_regnum, sim_ppc_spr127_regnum, - sim_ppc_spr128_regnum, sim_ppc_spr129_regnum, - sim_ppc_spr130_regnum, sim_ppc_spr131_regnum, - sim_ppc_spr132_regnum, sim_ppc_spr133_regnum, - sim_ppc_spr134_regnum, sim_ppc_spr135_regnum, - sim_ppc_spr136_regnum, sim_ppc_spr137_regnum, - sim_ppc_spr138_regnum, sim_ppc_spr139_regnum, - sim_ppc_spr140_regnum, sim_ppc_spr141_regnum, - sim_ppc_spr142_regnum, sim_ppc_spr143_regnum, - sim_ppc_spr144_regnum, sim_ppc_spr145_regnum, - sim_ppc_spr146_regnum, sim_ppc_spr147_regnum, - sim_ppc_spr148_regnum, sim_ppc_spr149_regnum, - sim_ppc_spr150_regnum, sim_ppc_spr151_regnum, - sim_ppc_spr152_regnum, sim_ppc_spr153_regnum, - sim_ppc_spr154_regnum, sim_ppc_spr155_regnum, - sim_ppc_spr156_regnum, sim_ppc_spr157_regnum, - sim_ppc_spr158_regnum, sim_ppc_spr159_regnum, - sim_ppc_spr160_regnum, sim_ppc_spr161_regnum, - sim_ppc_spr162_regnum, sim_ppc_spr163_regnum, - sim_ppc_spr164_regnum, sim_ppc_spr165_regnum, - sim_ppc_spr166_regnum, sim_ppc_spr167_regnum, - sim_ppc_spr168_regnum, sim_ppc_spr169_regnum, - sim_ppc_spr170_regnum, sim_ppc_spr171_regnum, - sim_ppc_spr172_regnum, sim_ppc_spr173_regnum, - sim_ppc_spr174_regnum, sim_ppc_spr175_regnum, - sim_ppc_spr176_regnum, sim_ppc_spr177_regnum, - sim_ppc_spr178_regnum, sim_ppc_spr179_regnum, - sim_ppc_spr180_regnum, sim_ppc_spr181_regnum, - sim_ppc_spr182_regnum, sim_ppc_spr183_regnum, - sim_ppc_spr184_regnum, sim_ppc_spr185_regnum, - sim_ppc_spr186_regnum, sim_ppc_spr187_regnum, - sim_ppc_spr188_regnum, sim_ppc_spr189_regnum, - sim_ppc_spr190_regnum, sim_ppc_spr191_regnum, - sim_ppc_spr192_regnum, sim_ppc_spr193_regnum, - sim_ppc_spr194_regnum, sim_ppc_spr195_regnum, - sim_ppc_spr196_regnum, sim_ppc_spr197_regnum, - sim_ppc_spr198_regnum, sim_ppc_spr199_regnum, - sim_ppc_spr200_regnum, sim_ppc_spr201_regnum, - sim_ppc_spr202_regnum, sim_ppc_spr203_regnum, - sim_ppc_spr204_regnum, sim_ppc_spr205_regnum, - sim_ppc_spr206_regnum, sim_ppc_spr207_regnum, - sim_ppc_spr208_regnum, sim_ppc_spr209_regnum, - sim_ppc_spr210_regnum, sim_ppc_spr211_regnum, - sim_ppc_spr212_regnum, sim_ppc_spr213_regnum, - sim_ppc_spr214_regnum, sim_ppc_spr215_regnum, - sim_ppc_spr216_regnum, sim_ppc_spr217_regnum, - sim_ppc_spr218_regnum, sim_ppc_spr219_regnum, - sim_ppc_spr220_regnum, sim_ppc_spr221_regnum, - sim_ppc_spr222_regnum, sim_ppc_spr223_regnum, - sim_ppc_spr224_regnum, sim_ppc_spr225_regnum, - sim_ppc_spr226_regnum, sim_ppc_spr227_regnum, - sim_ppc_spr228_regnum, sim_ppc_spr229_regnum, - sim_ppc_spr230_regnum, sim_ppc_spr231_regnum, - sim_ppc_spr232_regnum, sim_ppc_spr233_regnum, - sim_ppc_spr234_regnum, sim_ppc_spr235_regnum, - sim_ppc_spr236_regnum, sim_ppc_spr237_regnum, - sim_ppc_spr238_regnum, sim_ppc_spr239_regnum, - sim_ppc_spr240_regnum, sim_ppc_spr241_regnum, - sim_ppc_spr242_regnum, sim_ppc_spr243_regnum, - sim_ppc_spr244_regnum, sim_ppc_spr245_regnum, - sim_ppc_spr246_regnum, sim_ppc_spr247_regnum, - sim_ppc_spr248_regnum, sim_ppc_spr249_regnum, - sim_ppc_spr250_regnum, sim_ppc_spr251_regnum, - sim_ppc_spr252_regnum, sim_ppc_spr253_regnum, - sim_ppc_spr254_regnum, sim_ppc_spr255_regnum, - sim_ppc_spr256_regnum, sim_ppc_spr257_regnum, - sim_ppc_spr258_regnum, sim_ppc_spr259_regnum, - sim_ppc_spr260_regnum, sim_ppc_spr261_regnum, - sim_ppc_spr262_regnum, sim_ppc_spr263_regnum, - sim_ppc_spr264_regnum, sim_ppc_spr265_regnum, - sim_ppc_spr266_regnum, sim_ppc_spr267_regnum, - sim_ppc_spr268_regnum, sim_ppc_spr269_regnum, - sim_ppc_spr270_regnum, sim_ppc_spr271_regnum, - sim_ppc_spr272_regnum, sim_ppc_spr273_regnum, - sim_ppc_spr274_regnum, sim_ppc_spr275_regnum, - sim_ppc_spr276_regnum, sim_ppc_spr277_regnum, - sim_ppc_spr278_regnum, sim_ppc_spr279_regnum, - sim_ppc_spr280_regnum, sim_ppc_spr281_regnum, - sim_ppc_spr282_regnum, sim_ppc_spr283_regnum, - sim_ppc_spr284_regnum, sim_ppc_spr285_regnum, - sim_ppc_spr286_regnum, sim_ppc_spr287_regnum, - sim_ppc_spr288_regnum, sim_ppc_spr289_regnum, - sim_ppc_spr290_regnum, sim_ppc_spr291_regnum, - sim_ppc_spr292_regnum, sim_ppc_spr293_regnum, - sim_ppc_spr294_regnum, sim_ppc_spr295_regnum, - sim_ppc_spr296_regnum, sim_ppc_spr297_regnum, - sim_ppc_spr298_regnum, sim_ppc_spr299_regnum, - sim_ppc_spr300_regnum, sim_ppc_spr301_regnum, - sim_ppc_spr302_regnum, sim_ppc_spr303_regnum, - sim_ppc_spr304_regnum, sim_ppc_spr305_regnum, - sim_ppc_spr306_regnum, sim_ppc_spr307_regnum, - sim_ppc_spr308_regnum, sim_ppc_spr309_regnum, - sim_ppc_spr310_regnum, sim_ppc_spr311_regnum, - sim_ppc_spr312_regnum, sim_ppc_spr313_regnum, - sim_ppc_spr314_regnum, sim_ppc_spr315_regnum, - sim_ppc_spr316_regnum, sim_ppc_spr317_regnum, - sim_ppc_spr318_regnum, sim_ppc_spr319_regnum, - sim_ppc_spr320_regnum, sim_ppc_spr321_regnum, - sim_ppc_spr322_regnum, sim_ppc_spr323_regnum, - sim_ppc_spr324_regnum, sim_ppc_spr325_regnum, - sim_ppc_spr326_regnum, sim_ppc_spr327_regnum, - sim_ppc_spr328_regnum, sim_ppc_spr329_regnum, - sim_ppc_spr330_regnum, sim_ppc_spr331_regnum, - sim_ppc_spr332_regnum, sim_ppc_spr333_regnum, - sim_ppc_spr334_regnum, sim_ppc_spr335_regnum, - sim_ppc_spr336_regnum, sim_ppc_spr337_regnum, - sim_ppc_spr338_regnum, sim_ppc_spr339_regnum, - sim_ppc_spr340_regnum, sim_ppc_spr341_regnum, - sim_ppc_spr342_regnum, sim_ppc_spr343_regnum, - sim_ppc_spr344_regnum, sim_ppc_spr345_regnum, - sim_ppc_spr346_regnum, sim_ppc_spr347_regnum, - sim_ppc_spr348_regnum, sim_ppc_spr349_regnum, - sim_ppc_spr350_regnum, sim_ppc_spr351_regnum, - sim_ppc_spr352_regnum, sim_ppc_spr353_regnum, - sim_ppc_spr354_regnum, sim_ppc_spr355_regnum, - sim_ppc_spr356_regnum, sim_ppc_spr357_regnum, - sim_ppc_spr358_regnum, sim_ppc_spr359_regnum, - sim_ppc_spr360_regnum, sim_ppc_spr361_regnum, - sim_ppc_spr362_regnum, sim_ppc_spr363_regnum, - sim_ppc_spr364_regnum, sim_ppc_spr365_regnum, - sim_ppc_spr366_regnum, sim_ppc_spr367_regnum, - sim_ppc_spr368_regnum, sim_ppc_spr369_regnum, - sim_ppc_spr370_regnum, sim_ppc_spr371_regnum, - sim_ppc_spr372_regnum, sim_ppc_spr373_regnum, - sim_ppc_spr374_regnum, sim_ppc_spr375_regnum, - sim_ppc_spr376_regnum, sim_ppc_spr377_regnum, - sim_ppc_spr378_regnum, sim_ppc_spr379_regnum, - sim_ppc_spr380_regnum, sim_ppc_spr381_regnum, - sim_ppc_spr382_regnum, sim_ppc_spr383_regnum, - sim_ppc_spr384_regnum, sim_ppc_spr385_regnum, - sim_ppc_spr386_regnum, sim_ppc_spr387_regnum, - sim_ppc_spr388_regnum, sim_ppc_spr389_regnum, - sim_ppc_spr390_regnum, sim_ppc_spr391_regnum, - sim_ppc_spr392_regnum, sim_ppc_spr393_regnum, - sim_ppc_spr394_regnum, sim_ppc_spr395_regnum, - sim_ppc_spr396_regnum, sim_ppc_spr397_regnum, - sim_ppc_spr398_regnum, sim_ppc_spr399_regnum, - sim_ppc_spr400_regnum, sim_ppc_spr401_regnum, - sim_ppc_spr402_regnum, sim_ppc_spr403_regnum, - sim_ppc_spr404_regnum, sim_ppc_spr405_regnum, - sim_ppc_spr406_regnum, sim_ppc_spr407_regnum, - sim_ppc_spr408_regnum, sim_ppc_spr409_regnum, - sim_ppc_spr410_regnum, sim_ppc_spr411_regnum, - sim_ppc_spr412_regnum, sim_ppc_spr413_regnum, - sim_ppc_spr414_regnum, sim_ppc_spr415_regnum, - sim_ppc_spr416_regnum, sim_ppc_spr417_regnum, - sim_ppc_spr418_regnum, sim_ppc_spr419_regnum, - sim_ppc_spr420_regnum, sim_ppc_spr421_regnum, - sim_ppc_spr422_regnum, sim_ppc_spr423_regnum, - sim_ppc_spr424_regnum, sim_ppc_spr425_regnum, - sim_ppc_spr426_regnum, sim_ppc_spr427_regnum, - sim_ppc_spr428_regnum, sim_ppc_spr429_regnum, - sim_ppc_spr430_regnum, sim_ppc_spr431_regnum, - sim_ppc_spr432_regnum, sim_ppc_spr433_regnum, - sim_ppc_spr434_regnum, sim_ppc_spr435_regnum, - sim_ppc_spr436_regnum, sim_ppc_spr437_regnum, - sim_ppc_spr438_regnum, sim_ppc_spr439_regnum, - sim_ppc_spr440_regnum, sim_ppc_spr441_regnum, - sim_ppc_spr442_regnum, sim_ppc_spr443_regnum, - sim_ppc_spr444_regnum, sim_ppc_spr445_regnum, - sim_ppc_spr446_regnum, sim_ppc_spr447_regnum, - sim_ppc_spr448_regnum, sim_ppc_spr449_regnum, - sim_ppc_spr450_regnum, sim_ppc_spr451_regnum, - sim_ppc_spr452_regnum, sim_ppc_spr453_regnum, - sim_ppc_spr454_regnum, sim_ppc_spr455_regnum, - sim_ppc_spr456_regnum, sim_ppc_spr457_regnum, - sim_ppc_spr458_regnum, sim_ppc_spr459_regnum, - sim_ppc_spr460_regnum, sim_ppc_spr461_regnum, - sim_ppc_spr462_regnum, sim_ppc_spr463_regnum, - sim_ppc_spr464_regnum, sim_ppc_spr465_regnum, - sim_ppc_spr466_regnum, sim_ppc_spr467_regnum, - sim_ppc_spr468_regnum, sim_ppc_spr469_regnum, - sim_ppc_spr470_regnum, sim_ppc_spr471_regnum, - sim_ppc_spr472_regnum, sim_ppc_spr473_regnum, - sim_ppc_spr474_regnum, sim_ppc_spr475_regnum, - sim_ppc_spr476_regnum, sim_ppc_spr477_regnum, - sim_ppc_spr478_regnum, sim_ppc_spr479_regnum, - sim_ppc_spr480_regnum, sim_ppc_spr481_regnum, - sim_ppc_spr482_regnum, sim_ppc_spr483_regnum, - sim_ppc_spr484_regnum, sim_ppc_spr485_regnum, - sim_ppc_spr486_regnum, sim_ppc_spr487_regnum, - sim_ppc_spr488_regnum, sim_ppc_spr489_regnum, - sim_ppc_spr490_regnum, sim_ppc_spr491_regnum, - sim_ppc_spr492_regnum, sim_ppc_spr493_regnum, - sim_ppc_spr494_regnum, sim_ppc_spr495_regnum, - sim_ppc_spr496_regnum, sim_ppc_spr497_regnum, - sim_ppc_spr498_regnum, sim_ppc_spr499_regnum, - sim_ppc_spr500_regnum, sim_ppc_spr501_regnum, - sim_ppc_spr502_regnum, sim_ppc_spr503_regnum, - sim_ppc_spr504_regnum, sim_ppc_spr505_regnum, - sim_ppc_spr506_regnum, sim_ppc_spr507_regnum, - sim_ppc_spr508_regnum, sim_ppc_spr509_regnum, - sim_ppc_spr510_regnum, sim_ppc_spr511_regnum, - sim_ppc_spr512_regnum, sim_ppc_spr513_regnum, - sim_ppc_spr514_regnum, sim_ppc_spr515_regnum, - sim_ppc_spr516_regnum, sim_ppc_spr517_regnum, - sim_ppc_spr518_regnum, sim_ppc_spr519_regnum, - sim_ppc_spr520_regnum, sim_ppc_spr521_regnum, - sim_ppc_spr522_regnum, sim_ppc_spr523_regnum, - sim_ppc_spr524_regnum, sim_ppc_spr525_regnum, - sim_ppc_spr526_regnum, sim_ppc_spr527_regnum, - sim_ppc_spr528_regnum, sim_ppc_spr529_regnum, - sim_ppc_spr530_regnum, sim_ppc_spr531_regnum, - sim_ppc_spr532_regnum, sim_ppc_spr533_regnum, - sim_ppc_spr534_regnum, sim_ppc_spr535_regnum, - sim_ppc_spr536_regnum, sim_ppc_spr537_regnum, - sim_ppc_spr538_regnum, sim_ppc_spr539_regnum, - sim_ppc_spr540_regnum, sim_ppc_spr541_regnum, - sim_ppc_spr542_regnum, sim_ppc_spr543_regnum, - sim_ppc_spr544_regnum, sim_ppc_spr545_regnum, - sim_ppc_spr546_regnum, sim_ppc_spr547_regnum, - sim_ppc_spr548_regnum, sim_ppc_spr549_regnum, - sim_ppc_spr550_regnum, sim_ppc_spr551_regnum, - sim_ppc_spr552_regnum, sim_ppc_spr553_regnum, - sim_ppc_spr554_regnum, sim_ppc_spr555_regnum, - sim_ppc_spr556_regnum, sim_ppc_spr557_regnum, - sim_ppc_spr558_regnum, sim_ppc_spr559_regnum, - sim_ppc_spr560_regnum, sim_ppc_spr561_regnum, - sim_ppc_spr562_regnum, sim_ppc_spr563_regnum, - sim_ppc_spr564_regnum, sim_ppc_spr565_regnum, - sim_ppc_spr566_regnum, sim_ppc_spr567_regnum, - sim_ppc_spr568_regnum, sim_ppc_spr569_regnum, - sim_ppc_spr570_regnum, sim_ppc_spr571_regnum, - sim_ppc_spr572_regnum, sim_ppc_spr573_regnum, - sim_ppc_spr574_regnum, sim_ppc_spr575_regnum, - sim_ppc_spr576_regnum, sim_ppc_spr577_regnum, - sim_ppc_spr578_regnum, sim_ppc_spr579_regnum, - sim_ppc_spr580_regnum, sim_ppc_spr581_regnum, - sim_ppc_spr582_regnum, sim_ppc_spr583_regnum, - sim_ppc_spr584_regnum, sim_ppc_spr585_regnum, - sim_ppc_spr586_regnum, sim_ppc_spr587_regnum, - sim_ppc_spr588_regnum, sim_ppc_spr589_regnum, - sim_ppc_spr590_regnum, sim_ppc_spr591_regnum, - sim_ppc_spr592_regnum, sim_ppc_spr593_regnum, - sim_ppc_spr594_regnum, sim_ppc_spr595_regnum, - sim_ppc_spr596_regnum, sim_ppc_spr597_regnum, - sim_ppc_spr598_regnum, sim_ppc_spr599_regnum, - sim_ppc_spr600_regnum, sim_ppc_spr601_regnum, - sim_ppc_spr602_regnum, sim_ppc_spr603_regnum, - sim_ppc_spr604_regnum, sim_ppc_spr605_regnum, - sim_ppc_spr606_regnum, sim_ppc_spr607_regnum, - sim_ppc_spr608_regnum, sim_ppc_spr609_regnum, - sim_ppc_spr610_regnum, sim_ppc_spr611_regnum, - sim_ppc_spr612_regnum, sim_ppc_spr613_regnum, - sim_ppc_spr614_regnum, sim_ppc_spr615_regnum, - sim_ppc_spr616_regnum, sim_ppc_spr617_regnum, - sim_ppc_spr618_regnum, sim_ppc_spr619_regnum, - sim_ppc_spr620_regnum, sim_ppc_spr621_regnum, - sim_ppc_spr622_regnum, sim_ppc_spr623_regnum, - sim_ppc_spr624_regnum, sim_ppc_spr625_regnum, - sim_ppc_spr626_regnum, sim_ppc_spr627_regnum, - sim_ppc_spr628_regnum, sim_ppc_spr629_regnum, - sim_ppc_spr630_regnum, sim_ppc_spr631_regnum, - sim_ppc_spr632_regnum, sim_ppc_spr633_regnum, - sim_ppc_spr634_regnum, sim_ppc_spr635_regnum, - sim_ppc_spr636_regnum, sim_ppc_spr637_regnum, - sim_ppc_spr638_regnum, sim_ppc_spr639_regnum, - sim_ppc_spr640_regnum, sim_ppc_spr641_regnum, - sim_ppc_spr642_regnum, sim_ppc_spr643_regnum, - sim_ppc_spr644_regnum, sim_ppc_spr645_regnum, - sim_ppc_spr646_regnum, sim_ppc_spr647_regnum, - sim_ppc_spr648_regnum, sim_ppc_spr649_regnum, - sim_ppc_spr650_regnum, sim_ppc_spr651_regnum, - sim_ppc_spr652_regnum, sim_ppc_spr653_regnum, - sim_ppc_spr654_regnum, sim_ppc_spr655_regnum, - sim_ppc_spr656_regnum, sim_ppc_spr657_regnum, - sim_ppc_spr658_regnum, sim_ppc_spr659_regnum, - sim_ppc_spr660_regnum, sim_ppc_spr661_regnum, - sim_ppc_spr662_regnum, sim_ppc_spr663_regnum, - sim_ppc_spr664_regnum, sim_ppc_spr665_regnum, - sim_ppc_spr666_regnum, sim_ppc_spr667_regnum, - sim_ppc_spr668_regnum, sim_ppc_spr669_regnum, - sim_ppc_spr670_regnum, sim_ppc_spr671_regnum, - sim_ppc_spr672_regnum, sim_ppc_spr673_regnum, - sim_ppc_spr674_regnum, sim_ppc_spr675_regnum, - sim_ppc_spr676_regnum, sim_ppc_spr677_regnum, - sim_ppc_spr678_regnum, sim_ppc_spr679_regnum, - sim_ppc_spr680_regnum, sim_ppc_spr681_regnum, - sim_ppc_spr682_regnum, sim_ppc_spr683_regnum, - sim_ppc_spr684_regnum, sim_ppc_spr685_regnum, - sim_ppc_spr686_regnum, sim_ppc_spr687_regnum, - sim_ppc_spr688_regnum, sim_ppc_spr689_regnum, - sim_ppc_spr690_regnum, sim_ppc_spr691_regnum, - sim_ppc_spr692_regnum, sim_ppc_spr693_regnum, - sim_ppc_spr694_regnum, sim_ppc_spr695_regnum, - sim_ppc_spr696_regnum, sim_ppc_spr697_regnum, - sim_ppc_spr698_regnum, sim_ppc_spr699_regnum, - sim_ppc_spr700_regnum, sim_ppc_spr701_regnum, - sim_ppc_spr702_regnum, sim_ppc_spr703_regnum, - sim_ppc_spr704_regnum, sim_ppc_spr705_regnum, - sim_ppc_spr706_regnum, sim_ppc_spr707_regnum, - sim_ppc_spr708_regnum, sim_ppc_spr709_regnum, - sim_ppc_spr710_regnum, sim_ppc_spr711_regnum, - sim_ppc_spr712_regnum, sim_ppc_spr713_regnum, - sim_ppc_spr714_regnum, sim_ppc_spr715_regnum, - sim_ppc_spr716_regnum, sim_ppc_spr717_regnum, - sim_ppc_spr718_regnum, sim_ppc_spr719_regnum, - sim_ppc_spr720_regnum, sim_ppc_spr721_regnum, - sim_ppc_spr722_regnum, sim_ppc_spr723_regnum, - sim_ppc_spr724_regnum, sim_ppc_spr725_regnum, - sim_ppc_spr726_regnum, sim_ppc_spr727_regnum, - sim_ppc_spr728_regnum, sim_ppc_spr729_regnum, - sim_ppc_spr730_regnum, sim_ppc_spr731_regnum, - sim_ppc_spr732_regnum, sim_ppc_spr733_regnum, - sim_ppc_spr734_regnum, sim_ppc_spr735_regnum, - sim_ppc_spr736_regnum, sim_ppc_spr737_regnum, - sim_ppc_spr738_regnum, sim_ppc_spr739_regnum, - sim_ppc_spr740_regnum, sim_ppc_spr741_regnum, - sim_ppc_spr742_regnum, sim_ppc_spr743_regnum, - sim_ppc_spr744_regnum, sim_ppc_spr745_regnum, - sim_ppc_spr746_regnum, sim_ppc_spr747_regnum, - sim_ppc_spr748_regnum, sim_ppc_spr749_regnum, - sim_ppc_spr750_regnum, sim_ppc_spr751_regnum, - sim_ppc_spr752_regnum, sim_ppc_spr753_regnum, - sim_ppc_spr754_regnum, sim_ppc_spr755_regnum, - sim_ppc_spr756_regnum, sim_ppc_spr757_regnum, - sim_ppc_spr758_regnum, sim_ppc_spr759_regnum, - sim_ppc_spr760_regnum, sim_ppc_spr761_regnum, - sim_ppc_spr762_regnum, sim_ppc_spr763_regnum, - sim_ppc_spr764_regnum, sim_ppc_spr765_regnum, - sim_ppc_spr766_regnum, sim_ppc_spr767_regnum, - sim_ppc_spr768_regnum, sim_ppc_spr769_regnum, - sim_ppc_spr770_regnum, sim_ppc_spr771_regnum, - sim_ppc_spr772_regnum, sim_ppc_spr773_regnum, - sim_ppc_spr774_regnum, sim_ppc_spr775_regnum, - sim_ppc_spr776_regnum, sim_ppc_spr777_regnum, - sim_ppc_spr778_regnum, sim_ppc_spr779_regnum, - sim_ppc_spr780_regnum, sim_ppc_spr781_regnum, - sim_ppc_spr782_regnum, sim_ppc_spr783_regnum, - sim_ppc_spr784_regnum, sim_ppc_spr785_regnum, - sim_ppc_spr786_regnum, sim_ppc_spr787_regnum, - sim_ppc_spr788_regnum, sim_ppc_spr789_regnum, - sim_ppc_spr790_regnum, sim_ppc_spr791_regnum, - sim_ppc_spr792_regnum, sim_ppc_spr793_regnum, - sim_ppc_spr794_regnum, sim_ppc_spr795_regnum, - sim_ppc_spr796_regnum, sim_ppc_spr797_regnum, - sim_ppc_spr798_regnum, sim_ppc_spr799_regnum, - sim_ppc_spr800_regnum, sim_ppc_spr801_regnum, - sim_ppc_spr802_regnum, sim_ppc_spr803_regnum, - sim_ppc_spr804_regnum, sim_ppc_spr805_regnum, - sim_ppc_spr806_regnum, sim_ppc_spr807_regnum, - sim_ppc_spr808_regnum, sim_ppc_spr809_regnum, - sim_ppc_spr810_regnum, sim_ppc_spr811_regnum, - sim_ppc_spr812_regnum, sim_ppc_spr813_regnum, - sim_ppc_spr814_regnum, sim_ppc_spr815_regnum, - sim_ppc_spr816_regnum, sim_ppc_spr817_regnum, - sim_ppc_spr818_regnum, sim_ppc_spr819_regnum, - sim_ppc_spr820_regnum, sim_ppc_spr821_regnum, - sim_ppc_spr822_regnum, sim_ppc_spr823_regnum, - sim_ppc_spr824_regnum, sim_ppc_spr825_regnum, - sim_ppc_spr826_regnum, sim_ppc_spr827_regnum, - sim_ppc_spr828_regnum, sim_ppc_spr829_regnum, - sim_ppc_spr830_regnum, sim_ppc_spr831_regnum, - sim_ppc_spr832_regnum, sim_ppc_spr833_regnum, - sim_ppc_spr834_regnum, sim_ppc_spr835_regnum, - sim_ppc_spr836_regnum, sim_ppc_spr837_regnum, - sim_ppc_spr838_regnum, sim_ppc_spr839_regnum, - sim_ppc_spr840_regnum, sim_ppc_spr841_regnum, - sim_ppc_spr842_regnum, sim_ppc_spr843_regnum, - sim_ppc_spr844_regnum, sim_ppc_spr845_regnum, - sim_ppc_spr846_regnum, sim_ppc_spr847_regnum, - sim_ppc_spr848_regnum, sim_ppc_spr849_regnum, - sim_ppc_spr850_regnum, sim_ppc_spr851_regnum, - sim_ppc_spr852_regnum, sim_ppc_spr853_regnum, - sim_ppc_spr854_regnum, sim_ppc_spr855_regnum, - sim_ppc_spr856_regnum, sim_ppc_spr857_regnum, - sim_ppc_spr858_regnum, sim_ppc_spr859_regnum, - sim_ppc_spr860_regnum, sim_ppc_spr861_regnum, - sim_ppc_spr862_regnum, sim_ppc_spr863_regnum, - sim_ppc_spr864_regnum, sim_ppc_spr865_regnum, - sim_ppc_spr866_regnum, sim_ppc_spr867_regnum, - sim_ppc_spr868_regnum, sim_ppc_spr869_regnum, - sim_ppc_spr870_regnum, sim_ppc_spr871_regnum, - sim_ppc_spr872_regnum, sim_ppc_spr873_regnum, - sim_ppc_spr874_regnum, sim_ppc_spr875_regnum, - sim_ppc_spr876_regnum, sim_ppc_spr877_regnum, - sim_ppc_spr878_regnum, sim_ppc_spr879_regnum, - sim_ppc_spr880_regnum, sim_ppc_spr881_regnum, - sim_ppc_spr882_regnum, sim_ppc_spr883_regnum, - sim_ppc_spr884_regnum, sim_ppc_spr885_regnum, - sim_ppc_spr886_regnum, sim_ppc_spr887_regnum, - sim_ppc_spr888_regnum, sim_ppc_spr889_regnum, - sim_ppc_spr890_regnum, sim_ppc_spr891_regnum, - sim_ppc_spr892_regnum, sim_ppc_spr893_regnum, - sim_ppc_spr894_regnum, sim_ppc_spr895_regnum, - sim_ppc_spr896_regnum, sim_ppc_spr897_regnum, - sim_ppc_spr898_regnum, sim_ppc_spr899_regnum, - sim_ppc_spr900_regnum, sim_ppc_spr901_regnum, - sim_ppc_spr902_regnum, sim_ppc_spr903_regnum, - sim_ppc_spr904_regnum, sim_ppc_spr905_regnum, - sim_ppc_spr906_regnum, sim_ppc_spr907_regnum, - sim_ppc_spr908_regnum, sim_ppc_spr909_regnum, - sim_ppc_spr910_regnum, sim_ppc_spr911_regnum, - sim_ppc_spr912_regnum, sim_ppc_spr913_regnum, - sim_ppc_spr914_regnum, sim_ppc_spr915_regnum, - sim_ppc_spr916_regnum, sim_ppc_spr917_regnum, - sim_ppc_spr918_regnum, sim_ppc_spr919_regnum, - sim_ppc_spr920_regnum, sim_ppc_spr921_regnum, - sim_ppc_spr922_regnum, sim_ppc_spr923_regnum, - sim_ppc_spr924_regnum, sim_ppc_spr925_regnum, - sim_ppc_spr926_regnum, sim_ppc_spr927_regnum, - sim_ppc_spr928_regnum, sim_ppc_spr929_regnum, - sim_ppc_spr930_regnum, sim_ppc_spr931_regnum, - sim_ppc_spr932_regnum, sim_ppc_spr933_regnum, - sim_ppc_spr934_regnum, sim_ppc_spr935_regnum, - sim_ppc_spr936_regnum, sim_ppc_spr937_regnum, - sim_ppc_spr938_regnum, sim_ppc_spr939_regnum, - sim_ppc_spr940_regnum, sim_ppc_spr941_regnum, - sim_ppc_spr942_regnum, sim_ppc_spr943_regnum, - sim_ppc_spr944_regnum, sim_ppc_spr945_regnum, - sim_ppc_spr946_regnum, sim_ppc_spr947_regnum, - sim_ppc_spr948_regnum, sim_ppc_spr949_regnum, - sim_ppc_spr950_regnum, sim_ppc_spr951_regnum, - sim_ppc_spr952_regnum, sim_ppc_spr953_regnum, - sim_ppc_spr954_regnum, sim_ppc_spr955_regnum, - sim_ppc_spr956_regnum, sim_ppc_spr957_regnum, - sim_ppc_spr958_regnum, sim_ppc_spr959_regnum, - sim_ppc_spr960_regnum, sim_ppc_spr961_regnum, - sim_ppc_spr962_regnum, sim_ppc_spr963_regnum, - sim_ppc_spr964_regnum, sim_ppc_spr965_regnum, - sim_ppc_spr966_regnum, sim_ppc_spr967_regnum, - sim_ppc_spr968_regnum, sim_ppc_spr969_regnum, - sim_ppc_spr970_regnum, sim_ppc_spr971_regnum, - sim_ppc_spr972_regnum, sim_ppc_spr973_regnum, - sim_ppc_spr974_regnum, sim_ppc_spr975_regnum, - sim_ppc_spr976_regnum, sim_ppc_spr977_regnum, - sim_ppc_spr978_regnum, sim_ppc_spr979_regnum, - sim_ppc_spr980_regnum, sim_ppc_spr981_regnum, - sim_ppc_spr982_regnum, sim_ppc_spr983_regnum, - sim_ppc_spr984_regnum, sim_ppc_spr985_regnum, - sim_ppc_spr986_regnum, sim_ppc_spr987_regnum, - sim_ppc_spr988_regnum, sim_ppc_spr989_regnum, - sim_ppc_spr990_regnum, sim_ppc_spr991_regnum, - sim_ppc_spr992_regnum, sim_ppc_spr993_regnum, - sim_ppc_spr994_regnum, sim_ppc_spr995_regnum, - sim_ppc_spr996_regnum, sim_ppc_spr997_regnum, - sim_ppc_spr998_regnum, sim_ppc_spr999_regnum, - sim_ppc_spr1000_regnum, sim_ppc_spr1001_regnum, - sim_ppc_spr1002_regnum, sim_ppc_spr1003_regnum, - sim_ppc_spr1004_regnum, sim_ppc_spr1005_regnum, - sim_ppc_spr1006_regnum, sim_ppc_spr1007_regnum, - sim_ppc_spr1008_regnum, sim_ppc_spr1009_regnum, - sim_ppc_spr1010_regnum, sim_ppc_spr1011_regnum, - sim_ppc_spr1012_regnum, sim_ppc_spr1013_regnum, - sim_ppc_spr1014_regnum, sim_ppc_spr1015_regnum, - sim_ppc_spr1016_regnum, sim_ppc_spr1017_regnum, - sim_ppc_spr1018_regnum, sim_ppc_spr1019_regnum, - sim_ppc_spr1020_regnum, sim_ppc_spr1021_regnum, - sim_ppc_spr1022_regnum, sim_ppc_spr1023_regnum - }; - - -/* Sizes of various register sets. */ -enum - { - sim_ppc_num_gprs = 32, - sim_ppc_num_fprs = 32, - sim_ppc_num_vrs = 32, - sim_ppc_num_srs = 16, - sim_ppc_num_sprs = 1024, - }; - - -/* Return the register name for the supplied SPR number if any, or - NULL if none. */ -extern const char *sim_spr_register_name (int); - -#ifdef __cplusplus -} -#endif - -#endif /* SIM_PPC_H */ diff --git a/include/gdb/sim-rl78.h b/include/gdb/sim-rl78.h deleted file mode 100644 index c52a2a7..0000000 --- a/include/gdb/sim-rl78.h +++ /dev/null @@ -1,76 +0,0 @@ -/* sim-rx.h --- interface between rl78 simulator and GDB. - - Copyright 2011-2013 Free Software Foundation, Inc. - - Contributed by Red Hat. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#if !defined (SIM_RL78_H) -#define SIM_RL78_H - -enum sim_rl78_regnum -{ - sim_rl78_bank0_r0_regnum, - sim_rl78_bank0_r1_regnum, - sim_rl78_bank0_r2_regnum, - sim_rl78_bank0_r3_regnum, - sim_rl78_bank0_r4_regnum, - sim_rl78_bank0_r5_regnum, - sim_rl78_bank0_r6_regnum, - sim_rl78_bank0_r7_regnum, - - sim_rl78_bank1_r0_regnum, - sim_rl78_bank1_r1_regnum, - sim_rl78_bank1_r2_regnum, - sim_rl78_bank1_r3_regnum, - sim_rl78_bank1_r4_regnum, - sim_rl78_bank1_r5_regnum, - sim_rl78_bank1_r6_regnum, - sim_rl78_bank1_r7_regnum, - - sim_rl78_bank2_r0_regnum, - sim_rl78_bank2_r1_regnum, - sim_rl78_bank2_r2_regnum, - sim_rl78_bank2_r3_regnum, - sim_rl78_bank2_r4_regnum, - sim_rl78_bank2_r5_regnum, - sim_rl78_bank2_r6_regnum, - sim_rl78_bank2_r7_regnum, - - sim_rl78_bank3_r0_regnum, - sim_rl78_bank3_r1_regnum, - sim_rl78_bank3_r2_regnum, - sim_rl78_bank3_r3_regnum, - sim_rl78_bank3_r4_regnum, - sim_rl78_bank3_r5_regnum, - sim_rl78_bank3_r6_regnum, - sim_rl78_bank3_r7_regnum, - - sim_rl78_psw_regnum, - sim_rl78_es_regnum, - sim_rl78_cs_regnum, - sim_rl78_pc_regnum, - - sim_rl78_spl_regnum, - sim_rl78_sph_regnum, - sim_rl78_pmc_regnum, - sim_rl78_mem_regnum, - - sim_rl78_num_regs -}; - -#endif /* SIM_RL78_H */ diff --git a/include/gdb/sim-rx.h b/include/gdb/sim-rx.h deleted file mode 100644 index c4d855f..0000000 --- a/include/gdb/sim-rx.h +++ /dev/null @@ -1,56 +0,0 @@ -/* sim-rx.h --- interface between RX simulator and GDB. - - Copyright 2008-2013 Free Software Foundation, Inc. - - Contributed by Red Hat. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#if !defined (SIM_RX_H) -#define SIM_RX_H - -enum sim_rx_regnum - { - sim_rx_r0_regnum, - sim_rx_r1_regnum, - sim_rx_r2_regnum, - sim_rx_r3_regnum, - sim_rx_r4_regnum, - sim_rx_r5_regnum, - sim_rx_r6_regnum, - sim_rx_r7_regnum, - sim_rx_r8_regnum, - sim_rx_r9_regnum, - sim_rx_r10_regnum, - sim_rx_r11_regnum, - sim_rx_r12_regnum, - sim_rx_r13_regnum, - sim_rx_r14_regnum, - sim_rx_r15_regnum, - sim_rx_usp_regnum, - sim_rx_isp_regnum, - sim_rx_ps_regnum, - sim_rx_pc_regnum, - sim_rx_intb_regnum, - sim_rx_bpsw_regnum, - sim_rx_bpc_regnum, - sim_rx_fintv_regnum, - sim_rx_fpsw_regnum, - sim_rx_acc_regnum, - sim_rx_num_regs - }; - -#endif /* SIM_RX_H */ diff --git a/include/gdb/sim-sh.h b/include/gdb/sim-sh.h deleted file mode 100644 index 4e37992..0000000 --- a/include/gdb/sim-sh.h +++ /dev/null @@ -1,169 +0,0 @@ -/* This file defines the interface between the sh simulator and gdb. - Copyright (C) 2000-2013 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#if !defined (SIM_SH_H) -#define SIM_SH_H - -#ifdef __cplusplus -extern "C" { // } -#endif - -/* The simulator makes use of the following register information. */ - -enum -{ - SIM_SH_R0_REGNUM = 0, - SIM_SH_R1_REGNUM, - SIM_SH_R2_REGNUM, - SIM_SH_R3_REGNUM, - SIM_SH_R4_REGNUM, - SIM_SH_R5_REGNUM, - SIM_SH_R6_REGNUM, - SIM_SH_R7_REGNUM, - SIM_SH_R8_REGNUM, - SIM_SH_R9_REGNUM, - SIM_SH_R10_REGNUM, - SIM_SH_R11_REGNUM, - SIM_SH_R12_REGNUM, - SIM_SH_R13_REGNUM, - SIM_SH_R14_REGNUM, - SIM_SH_R15_REGNUM, - SIM_SH_PC_REGNUM, - SIM_SH_PR_REGNUM, - SIM_SH_GBR_REGNUM, - SIM_SH_VBR_REGNUM, - SIM_SH_MACH_REGNUM, - SIM_SH_MACL_REGNUM, - SIM_SH_SR_REGNUM, - SIM_SH_FPUL_REGNUM, - SIM_SH_FPSCR_REGNUM, - SIM_SH_FR0_REGNUM, /* FRn registers: sh3e / sh4 */ - SIM_SH_FR1_REGNUM, - SIM_SH_FR2_REGNUM, - SIM_SH_FR3_REGNUM, - SIM_SH_FR4_REGNUM, - SIM_SH_FR5_REGNUM, - SIM_SH_FR6_REGNUM, - SIM_SH_FR7_REGNUM, - SIM_SH_FR8_REGNUM, - SIM_SH_FR9_REGNUM, - SIM_SH_FR10_REGNUM, - SIM_SH_FR11_REGNUM, - SIM_SH_FR12_REGNUM, - SIM_SH_FR13_REGNUM, - SIM_SH_FR14_REGNUM, - SIM_SH_FR15_REGNUM, - SIM_SH_SSR_REGNUM, /* sh3{,e,-dsp}, sh4 */ - SIM_SH_SPC_REGNUM, /* sh3{,e,-dsp}, sh4 */ - SIM_SH_R0_BANK0_REGNUM, /* SIM_SH_Rn_BANKm_REGNUM: sh3[e] / sh4 */ - SIM_SH_R1_BANK0_REGNUM, - SIM_SH_R2_BANK0_REGNUM, - SIM_SH_R3_BANK0_REGNUM, - SIM_SH_R4_BANK0_REGNUM, - SIM_SH_R5_BANK0_REGNUM, - SIM_SH_R6_BANK0_REGNUM, - SIM_SH_R7_BANK0_REGNUM, - SIM_SH_R0_BANK1_REGNUM, - SIM_SH_R1_BANK1_REGNUM, - SIM_SH_R2_BANK1_REGNUM, - SIM_SH_R3_BANK1_REGNUM, - SIM_SH_R4_BANK1_REGNUM, - SIM_SH_R5_BANK1_REGNUM, - SIM_SH_R6_BANK1_REGNUM, - SIM_SH_R7_BANK1_REGNUM, - SIM_SH_XF0_REGNUM, - SIM_SH_XF1_REGNUM, - SIM_SH_XF2_REGNUM, - SIM_SH_XF3_REGNUM, - SIM_SH_XF4_REGNUM, - SIM_SH_XF5_REGNUM, - SIM_SH_XF6_REGNUM, - SIM_SH_XF7_REGNUM, - SIM_SH_XF8_REGNUM, - SIM_SH_XF9_REGNUM, - SIM_SH_XF10_REGNUM, - SIM_SH_XF11_REGNUM, - SIM_SH_XF12_REGNUM, - SIM_SH_XF13_REGNUM, - SIM_SH_XF14_REGNUM, - SIM_SH_XF15_REGNUM, - SIM_SH_SGR_REGNUM, - SIM_SH_DBR_REGNUM, - SIM_SH4_NUM_REGS, /* 77 */ - - /* sh[3]-dsp */ - SIM_SH_DSR_REGNUM, - SIM_SH_A0G_REGNUM, - SIM_SH_A0_REGNUM, - SIM_SH_A1G_REGNUM, - SIM_SH_A1_REGNUM, - SIM_SH_M0_REGNUM, - SIM_SH_M1_REGNUM, - SIM_SH_X0_REGNUM, - SIM_SH_X1_REGNUM, - SIM_SH_Y0_REGNUM, - SIM_SH_Y1_REGNUM, - SIM_SH_MOD_REGNUM, - SIM_SH_RS_REGNUM, - SIM_SH_RE_REGNUM, - SIM_SH_R0_BANK_REGNUM, - SIM_SH_R1_BANK_REGNUM, - SIM_SH_R2_BANK_REGNUM, - SIM_SH_R3_BANK_REGNUM, - SIM_SH_R4_BANK_REGNUM, - SIM_SH_R5_BANK_REGNUM, - SIM_SH_R6_BANK_REGNUM, - SIM_SH_R7_BANK_REGNUM, - /* 109..127: room for expansion. */ - SIM_SH_TBR_REGNUM, - SIM_SH_IBNR_REGNUM, - SIM_SH_IBCR_REGNUM, - SIM_SH_BANK_REGNUM, - SIM_SH_BANK_MACL_REGNUM, - SIM_SH_BANK_GBR_REGNUM, - SIM_SH_BANK_PR_REGNUM, - SIM_SH_BANK_IVN_REGNUM, - SIM_SH_BANK_MACH_REGNUM -}; - -enum -{ - SIM_SH64_R0_REGNUM = 0, - SIM_SH64_SP_REGNUM = 15, - SIM_SH64_PC_REGNUM = 64, - SIM_SH64_SR_REGNUM = 65, - SIM_SH64_SSR_REGNUM = 66, - SIM_SH64_SPC_REGNUM = 67, - SIM_SH64_TR0_REGNUM = 68, - SIM_SH64_FPCSR_REGNUM = 76, - SIM_SH64_FR0_REGNUM = 77 -}; - -enum -{ - SIM_SH64_NR_REGS = 141, /* total number of architectural registers */ - SIM_SH64_NR_R_REGS = 64, /* number of general registers */ - SIM_SH64_NR_TR_REGS = 8, /* number of target registers */ - SIM_SH64_NR_FP_REGS = 64 /* number of floating point registers */ -}; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/gdbm.h b/include/gdbm.h deleted file mode 100644 index d2a6006..0000000 --- a/include/gdbm.h +++ /dev/null @@ -1,91 +0,0 @@ -/* GNU DBM - DataBase Manager include file - Copyright 1989, 1991 Free Software Foundation, Inc. - Written by Philip A. Nelson. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* You may contact the author by: - e-mail: phil@wwu.edu - us-mail: Philip A. Nelson - Computer Science Department - Western Washington University - Bellingham, WA 98226 - phone: (206) 676-3035 - -*************************************************************************/ - -/* Parameters to gdbm_open for READERS, WRITERS, and WRITERS who - can create the database. */ -#define GDBM_READER 0 -#define GDBM_WRITER 1 -#define GDBM_WRCREAT 2 -#define GDBM_NEWDB 3 - -/* Parameters to gdbm_store for simple insertion or replacement. */ -#define GDBM_INSERT 0 -#define GDBM_REPLACE 1 - - -/* The data and key structure. This structure is defined for compatibility. */ -typedef struct { - char *dptr; - int dsize; - } datum; - - -/* The file information header. This is good enough for most applications. */ -typedef struct {int dummy[10];} *GDBM_FILE; - - -/* These are the routines! */ - -extern GDBM_FILE gdbm_open (); - -extern void gdbm_close (); - -extern datum gdbm_fetch (); - -extern int gdbm_store (); - -extern int gdbm_delete (); - -extern datum gdbm_firstkey (); - -extern datum gdbm_nextkey (); - -extern int gdbm_reorganize (); - - -/* gdbm sends back the following error codes in the variable gdbm_errno. */ -typedef enum { NO_ERROR, - MALLOC_ERROR, - BLOCK_SIZE_ERROR, - FILE_OPEN_ERROR, - FILE_WRITE_ERROR, - FILE_SEEK_ERROR, - FILE_READ_ERROR, - BAD_MAGIC_NUMBER, - EMPTY_DATABASE, - CANT_BE_READER, - CANT_BE_WRITER, - READER_CANT_RECOVER, - READER_CANT_DELETE, - READER_CANT_STORE, - READER_CANT_REORGANIZE, - UNKNOWN_UPDATE, - ITEM_NOT_FOUND, - REORGANIZE_FAILED, - CANNOT_REPLACE} - gdbm_error; diff --git a/include/getopt.h b/include/getopt.h deleted file mode 100644 index ac88524..0000000 --- a/include/getopt.h +++ /dev/null @@ -1,185 +0,0 @@ -/**************************************************************************** - -getopt.h - Read command line options - -AUTHOR: Gregory Pietsch -CREATED Thu Jan 09 22:37:00 1997 - -DESCRIPTION: - -The getopt() function parses the command line arguments. Its arguments argc -and argv are the argument count and array as passed to the main() function -on program invocation. The argument optstring is a list of available option -characters. If such a character is followed by a colon (`:'), the option -takes an argument, which is placed in optarg. If such a character is -followed by two colons, the option takes an optional argument, which is -placed in optarg. If the option does not take an argument, optarg is NULL. - -The external variable optind is the index of the next array element of argv -to be processed; it communicates from one call to the next which element to -process. - -The getopt_long() function works like getopt() except that it also accepts -long options started by two dashes `--'. If these take values, it is either -in the form - ---arg=value - - or - ---arg value - -It takes the additional arguments longopts which is a pointer to the first -element of an array of type GETOPT_LONG_OPTION_T, defined below. The last -element of the array has to be filled with NULL for the name field. - -The longind pointer points to the index of the current long option relative -to longopts if it is non-NULL. - -The getopt() function returns the option character if the option was found -successfully, `:' if there was a missing parameter for one of the options, -`?' for an unknown option character, and EOF for the end of the option list. - -The getopt_long() function's return value is described below. - -The function getopt_long_only() is identical to getopt_long(), except that a -plus sign `+' can introduce long options as well as `--'. - -Describe how to deal with options that follow non-option ARGV-elements. - -If the caller did not specify anything, the default is REQUIRE_ORDER if the -environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise. - -REQUIRE_ORDER means don't recognize them as options; stop option processing -when the first non-option is seen. This is what Unix does. This mode of -operation is selected by either setting the environment variable -POSIXLY_CORRECT, or using `+' as the first character of the optstring -parameter. - -PERMUTE is the default. We permute the contents of ARGV as we scan, so that -eventually all the non-options are at the end. This allows options to be -given in any order, even with programs that were not written to expect this. - -RETURN_IN_ORDER is an option available to programs that were written to -expect options and other ARGV-elements in any order and that care about the -ordering of the two. We describe each non-option ARGV-element as if it were -the argument of an option with character code 1. Using `-' as the first -character of the optstring parameter selects this mode of operation. - -The special argument `--' forces an end of option-scanning regardless of the -value of `ordering'. In the case of RETURN_IN_ORDER, only `--' can cause -getopt() and friends to return EOF with optind != argc. - -COPYRIGHT NOTICE AND DISCLAIMER: - -Copyright (C) 1997 Gregory Pietsch - -This file and the accompanying getopt.c implementation file are hereby -placed in the public domain without restrictions. Just give the author -credit, don't claim you wrote it or prevent anyone else from using it. - -Gregory Pietsch's current e-mail address: -gpietsch@comcast.net -****************************************************************************/ - -/* This is a glibc-extension header file. */ - -#ifndef GETOPT_H -#define GETOPT_H - -#include <_ansi.h> - -/* include files needed by this include file */ - -#define no_argument 0 -#define required_argument 1 -#define optional_argument 2 - -#ifdef __cplusplus -extern "C" -{ - -#endif /* __cplusplus */ - -/* types defined by this include file */ - struct option - { - const char *name; /* the name of the long option */ - int has_arg; /* one of the above macros */ - int *flag; /* determines if getopt_long() returns a - * value for a long option; if it is - * non-NULL, 0 is returned as a function - * value and the value of val is stored in - * the area pointed to by flag. Otherwise, - * val is returned. */ - int val; /* determines the value to return if flag is - * NULL. */ - - }; - -/* While getopt.h is a glibc extension, the following are newlib extensions. - * They are optionally included via the __need_getopt_newlib flag. */ - -#ifdef __need_getopt_newlib - - /* macros defined by this include file */ - #define NO_ARG no_argument - #define REQUIRED_ARG required_argument - #define OPTIONAL_ARG optional_argument - - /* The GETOPT_DATA_INITIALIZER macro is used to initialize a statically- - allocated variable of type struct getopt_data. */ - #define GETOPT_DATA_INITIALIZER {0,0,0,0,0,0,0} - - /* These #defines are to make accessing the reentrant functions easier. */ - #define getopt_r __getopt_r - #define getopt_long_r __getopt_long_r - #define getopt_long_only_r __getopt_long_only_r - - /* The getopt_data structure is for reentrancy. Its members are similar to - the externally-defined variables. */ - typedef struct getopt_data - { - char *optarg; - int optind, opterr, optopt, optwhere; - int permute_from, num_nonopts; - } getopt_data; - -#endif /* __need_getopt_newlib */ - - /* externally-defined variables */ - extern char *optarg; - extern int optind; - extern int opterr; - extern int optopt; - - /* function prototypes */ - int getopt (int __argc, char *const __argv[], const char *__optstring); - - int getopt_long (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind); - - int getopt_long_only (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind); - -#ifdef __need_getopt_newlib - int __getopt_r (int __argc, char *const __argv[], const char *__optstring, - struct getopt_data * __data); - - int __getopt_long_r (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind, - struct getopt_data * __data); - - int __getopt_long_only_r (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind, - struct getopt_data * __data); -#endif /* __need_getopt_newlib */ - -#ifdef __cplusplus -}; - -#endif /* __cplusplus */ - -#endif /* GETOPT_H */ - -/* END OF FILE getopt.h */ diff --git a/include/glob.h b/include/glob.h deleted file mode 100644 index 7a300e6..0000000 --- a/include/glob.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Guido van Rossum. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)glob.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/include/glob.h,v 1.6 2002/03/23 17:24:53 imp Exp $ - */ - -#ifndef _GLOB_H_ -#define _GLOB_H_ - -#include - -struct stat; -typedef struct { - int gl_pathc; /* Count of total paths so far. */ - int gl_matchc; /* Count of paths matching pattern. */ - int gl_offs; /* Reserved at beginning of gl_pathv. */ - int gl_flags; /* Copy of flags parameter to glob. */ - char **gl_pathv; /* List of paths matching pattern. */ - /* Copy of errfunc parameter to glob. */ - int (*gl_errfunc)(const char *, int); - - /* - * Alternate filesystem access methods for glob; replacement - * versions of closedir(3), readdir(3), opendir(3), stat(2) - * and lstat(2). - */ - void (*gl_closedir)(void *); - struct dirent *(*gl_readdir)(void *); - void *(*gl_opendir)(const char *); - int (*gl_lstat)(const char *, struct stat *); - int (*gl_stat)(const char *, struct stat *); -} glob_t; - -#define GLOB_APPEND 0x0001 /* Append to output from previous call. */ -#define GLOB_DOOFFS 0x0002 /* Use gl_offs. */ -#define GLOB_ERR 0x0004 /* Return on error. */ -#define GLOB_MARK 0x0008 /* Append / to matching directories. */ -#define GLOB_NOCHECK 0x0010 /* Return pattern itself if nothing matches. */ -#define GLOB_NOSORT 0x0020 /* Don't sort. */ - -#define GLOB_ALTDIRFUNC 0x0040 /* Use alternately specified directory funcs. */ -#define GLOB_BRACE 0x0080 /* Expand braces ala csh. */ -#define GLOB_MAGCHAR 0x0100 /* Pattern had globbing characters. */ -#define GLOB_NOMAGIC 0x0200 /* GLOB_NOCHECK without magic chars (csh). */ -#define GLOB_QUOTE 0x0400 /* Quote special chars with \. */ -#define GLOB_TILDE 0x0800 /* Expand tilde names from the passwd file. */ -#define GLOB_LIMIT 0x1000 /* limit number of returned paths */ - -/* backwards compatibility, this is the old name for this option */ -#define GLOB_MAXPATH GLOB_LIMIT - -#define GLOB_NOSPACE (-1) /* Malloc call failed. */ -#define GLOB_ABEND (-2) /* Unignored error. */ - -__BEGIN_DECLS -int glob(const char *__restrict, int, int (*)(const char *, int), - glob_t *__restrict); -void globfree(glob_t *); -__END_DECLS - -#endif /* !_GLOB_H_ */ diff --git a/include/gomp-constants.h b/include/gomp-constants.h deleted file mode 100644 index 9bc9fa5..0000000 --- a/include/gomp-constants.h +++ /dev/null @@ -1,259 +0,0 @@ -/* Communication between GCC and libgomp. - - Copyright (C) 2014-2015 Free Software Foundation, Inc. - - Contributed by Mentor Embedded. - - This file is part of the GNU Offloading and Multi Processing Library - (libgomp). - - Libgomp is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - Under Section 7 of GPL version 3, you are granted additional - permissions described in the GCC Runtime Library Exception, version - 3.1, as published by the Free Software Foundation. - - You should have received a copy of the GNU General Public License and - a copy of the GCC Runtime Library Exception along with this program; - see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - . */ - -#ifndef GOMP_CONSTANTS_H -#define GOMP_CONSTANTS_H 1 - -/* Memory mapping types. */ - -/* One byte. */ -#define GOMP_MAP_LAST (1 << 8) - -#define GOMP_MAP_FLAG_TO (1 << 0) -#define GOMP_MAP_FLAG_FROM (1 << 1) -/* Special map kinds, enumerated starting here. */ -#define GOMP_MAP_FLAG_SPECIAL_0 (1 << 2) -#define GOMP_MAP_FLAG_SPECIAL_1 (1 << 3) -#define GOMP_MAP_FLAG_SPECIAL_2 (1 << 4) -#define GOMP_MAP_FLAG_SPECIAL (GOMP_MAP_FLAG_SPECIAL_1 \ - | GOMP_MAP_FLAG_SPECIAL_0) -/* Flag to force a specific behavior (or else, trigger a run-time error). */ -#define GOMP_MAP_FLAG_FORCE (1 << 7) - -enum gomp_map_kind - { - /* If not already present, allocate. */ - GOMP_MAP_ALLOC = 0, - /* ..., and copy to device. */ - GOMP_MAP_TO = (GOMP_MAP_ALLOC | GOMP_MAP_FLAG_TO), - /* ..., and copy from device. */ - GOMP_MAP_FROM = (GOMP_MAP_ALLOC | GOMP_MAP_FLAG_FROM), - /* ..., and copy to and from device. */ - GOMP_MAP_TOFROM = (GOMP_MAP_TO | GOMP_MAP_FROM), - /* The following kind is an internal only map kind, used for pointer based - array sections. OMP_CLAUSE_SIZE for these is not the pointer size, - which is implicitly POINTER_SIZE_UNITS, but the bias. */ - GOMP_MAP_POINTER = (GOMP_MAP_FLAG_SPECIAL_0 | 0), - /* Also internal, behaves like GOMP_MAP_TO, but additionally any - GOMP_MAP_POINTER records consecutive after it which have addresses - falling into that range will not be ignored if GOMP_MAP_TO_PSET wasn't - mapped already. */ - GOMP_MAP_TO_PSET = (GOMP_MAP_FLAG_SPECIAL_0 | 1), - /* Must already be present. */ - GOMP_MAP_FORCE_PRESENT = (GOMP_MAP_FLAG_SPECIAL_0 | 2), - /* Deallocate a mapping, without copying from device. */ - GOMP_MAP_DELETE = (GOMP_MAP_FLAG_SPECIAL_0 | 3), - /* Is a device pointer. OMP_CLAUSE_SIZE for these is unused; is implicitly - POINTER_SIZE_UNITS. */ - GOMP_MAP_FORCE_DEVICEPTR = (GOMP_MAP_FLAG_SPECIAL_1 | 0), - /* Do not map, copy bits for firstprivate instead. */ - /* OpenACC device_resident. */ - GOMP_MAP_DEVICE_RESIDENT = (GOMP_MAP_FLAG_SPECIAL_1 | 1), - /* OpenACC link. */ - GOMP_MAP_LINK = (GOMP_MAP_FLAG_SPECIAL_1 | 2), - /* Allocate. */ - GOMP_MAP_FIRSTPRIVATE = (GOMP_MAP_FLAG_SPECIAL | 0), - /* Similarly, but store the value in the pointer rather than - pointed by the pointer. */ - GOMP_MAP_FIRSTPRIVATE_INT = (GOMP_MAP_FLAG_SPECIAL | 1), - /* Pointer translate host address into device address and copy that - back to host. */ - GOMP_MAP_USE_DEVICE_PTR = (GOMP_MAP_FLAG_SPECIAL | 2), - /* Allocate a zero length array section. Prefer next non-zero length - mapping over previous non-zero length mapping over zero length mapping - at the address. If not already mapped, do nothing (and pointer translate - to NULL). */ - GOMP_MAP_ZERO_LEN_ARRAY_SECTION = (GOMP_MAP_FLAG_SPECIAL | 3), - /* Allocate. */ - GOMP_MAP_FORCE_ALLOC = (GOMP_MAP_FLAG_FORCE | GOMP_MAP_ALLOC), - /* ..., and copy to device. */ - GOMP_MAP_FORCE_TO = (GOMP_MAP_FLAG_FORCE | GOMP_MAP_TO), - /* ..., and copy from device. */ - GOMP_MAP_FORCE_FROM = (GOMP_MAP_FLAG_FORCE | GOMP_MAP_FROM), - /* ..., and copy to and from device. */ - GOMP_MAP_FORCE_TOFROM = (GOMP_MAP_FLAG_FORCE | GOMP_MAP_TOFROM), - /* If not already present, allocate. And unconditionally copy to - device. */ - GOMP_MAP_ALWAYS_TO = (GOMP_MAP_FLAG_SPECIAL_2 | GOMP_MAP_TO), - /* If not already present, allocate. And unconditionally copy from - device. */ - GOMP_MAP_ALWAYS_FROM = (GOMP_MAP_FLAG_SPECIAL_2 - | GOMP_MAP_FROM), - /* If not already present, allocate. And unconditionally copy to and from - device. */ - GOMP_MAP_ALWAYS_TOFROM = (GOMP_MAP_FLAG_SPECIAL_2 - | GOMP_MAP_TOFROM), - /* Map a sparse struct; the address is the base of the structure, alignment - it's required alignment, and size is the number of adjacent entries - that belong to the struct. The adjacent entries should be sorted by - increasing address, so it is easy to determine lowest needed address - (address of the first adjacent entry) and highest needed address - (address of the last adjacent entry plus its size). */ - GOMP_MAP_STRUCT = (GOMP_MAP_FLAG_SPECIAL_2 - | GOMP_MAP_FLAG_SPECIAL | 0), - /* On a location of a pointer/reference that is assumed to be already mapped - earlier, store the translated address of the preceeding mapping. - No refcount is bumped by this, and the store is done unconditionally. */ - GOMP_MAP_ALWAYS_POINTER = (GOMP_MAP_FLAG_SPECIAL_2 - | GOMP_MAP_FLAG_SPECIAL | 1), - /* Forced deallocation of zero length array section. */ - GOMP_MAP_DELETE_ZERO_LEN_ARRAY_SECTION - = (GOMP_MAP_FLAG_SPECIAL_2 - | GOMP_MAP_FLAG_SPECIAL | 3), - /* Decrement usage count and deallocate if zero. */ - GOMP_MAP_RELEASE = (GOMP_MAP_FLAG_SPECIAL_2 - | GOMP_MAP_DELETE), - - /* Internal to GCC, not used in libgomp. */ - /* Do not map, but pointer assign a pointer instead. */ - GOMP_MAP_FIRSTPRIVATE_POINTER = (GOMP_MAP_LAST | 1), - /* Do not map, but pointer assign a reference instead. */ - GOMP_MAP_FIRSTPRIVATE_REFERENCE = (GOMP_MAP_LAST | 2) - }; - -#define GOMP_MAP_COPY_TO_P(X) \ - (!((X) & GOMP_MAP_FLAG_SPECIAL) \ - && ((X) & GOMP_MAP_FLAG_TO)) - -#define GOMP_MAP_COPY_FROM_P(X) \ - (!((X) & GOMP_MAP_FLAG_SPECIAL) \ - && ((X) & GOMP_MAP_FLAG_FROM)) - -#define GOMP_MAP_POINTER_P(X) \ - ((X) == GOMP_MAP_POINTER) - -#define GOMP_MAP_ALWAYS_TO_P(X) \ - (((X) == GOMP_MAP_ALWAYS_TO) || ((X) == GOMP_MAP_ALWAYS_TOFROM)) - -#define GOMP_MAP_ALWAYS_FROM_P(X) \ - (((X) == GOMP_MAP_ALWAYS_FROM) || ((X) == GOMP_MAP_ALWAYS_TOFROM)) - -#define GOMP_MAP_ALWAYS_P(X) \ - (GOMP_MAP_ALWAYS_TO_P (X) || ((X) == GOMP_MAP_ALWAYS_FROM)) - - -/* Asynchronous behavior. Keep in sync with - libgomp/{openacc.h,openacc.f90,openacc_lib.h}:acc_async_t. */ - -#define GOMP_ASYNC_NOVAL -1 -#define GOMP_ASYNC_SYNC -2 - - -/* Device codes. Keep in sync with - libgomp/{openacc.h,openacc.f90,openacc_lib.h}:acc_device_t as well as - libgomp/libgomp-plugin.h. */ -#define GOMP_DEVICE_NONE 0 -#define GOMP_DEVICE_DEFAULT 1 -#define GOMP_DEVICE_HOST 2 -/* #define GOMP_DEVICE_HOST_NONSHM 3 removed. */ -#define GOMP_DEVICE_NOT_HOST 4 -#define GOMP_DEVICE_NVIDIA_PTX 5 -#define GOMP_DEVICE_INTEL_MIC 6 -#define GOMP_DEVICE_HSA 7 - -#define GOMP_DEVICE_ICV -1 -#define GOMP_DEVICE_HOST_FALLBACK -2 - -/* GOMP_task/GOMP_taskloop* flags argument. */ -#define GOMP_TASK_FLAG_UNTIED (1 << 0) -#define GOMP_TASK_FLAG_FINAL (1 << 1) -#define GOMP_TASK_FLAG_MERGEABLE (1 << 2) -#define GOMP_TASK_FLAG_DEPEND (1 << 3) -#define GOMP_TASK_FLAG_PRIORITY (1 << 4) -#define GOMP_TASK_FLAG_UP (1 << 8) -#define GOMP_TASK_FLAG_GRAINSIZE (1 << 9) -#define GOMP_TASK_FLAG_IF (1 << 10) -#define GOMP_TASK_FLAG_NOGROUP (1 << 11) - -/* GOMP_target{_ext,update_ext,enter_exit_data} flags argument. */ -#define GOMP_TARGET_FLAG_NOWAIT (1 << 0) -#define GOMP_TARGET_FLAG_EXIT_DATA (1 << 1) -/* Internal to libgomp. */ -#define GOMP_TARGET_FLAG_UPDATE (1U << 31) - -/* Versions of libgomp and device-specific plugins. GOMP_VERSION - should be incremented whenever an ABI-incompatible change is introduced - to the plugin interface defined in libgomp/libgomp.h. */ -#define GOMP_VERSION 1 -#define GOMP_VERSION_NVIDIA_PTX 1 -#define GOMP_VERSION_INTEL_MIC 0 -#define GOMP_VERSION_HSA 0 - -#define GOMP_VERSION_PACK(LIB, DEV) (((LIB) << 16) | (DEV)) -#define GOMP_VERSION_LIB(PACK) (((PACK) >> 16) & 0xffff) -#define GOMP_VERSION_DEV(PACK) ((PACK) & 0xffff) - -#define GOMP_DIM_GANG 0 -#define GOMP_DIM_WORKER 1 -#define GOMP_DIM_VECTOR 2 -#define GOMP_DIM_MAX 3 -#define GOMP_DIM_MASK(X) (1u << (X)) - -/* Varadic launch arguments. End of list is marked by a zero. */ -#define GOMP_LAUNCH_DIM 1 /* Launch dimensions, op = mask */ -#define GOMP_LAUNCH_ASYNC 2 /* Async, op = cst val if not MAX */ -#define GOMP_LAUNCH_WAIT 3 /* Waits, op = num waits. */ -#define GOMP_LAUNCH_CODE_SHIFT 28 -#define GOMP_LAUNCH_DEVICE_SHIFT 16 -#define GOMP_LAUNCH_OP_SHIFT 0 -#define GOMP_LAUNCH_PACK(CODE,DEVICE,OP) \ - (((CODE) << GOMP_LAUNCH_CODE_SHIFT) \ - | ((DEVICE) << GOMP_LAUNCH_DEVICE_SHIFT) \ - | ((OP) << GOMP_LAUNCH_OP_SHIFT)) -#define GOMP_LAUNCH_CODE(X) (((X) >> GOMP_LAUNCH_CODE_SHIFT) & 0xf) -#define GOMP_LAUNCH_DEVICE(X) (((X) >> GOMP_LAUNCH_DEVICE_SHIFT) & 0xfff) -#define GOMP_LAUNCH_OP(X) (((X) >> GOMP_LAUNCH_OP_SHIFT) & 0xffff) -#define GOMP_LAUNCH_OP_MAX 0xffff - -/* Bitmask to apply in order to find out the intended device of a target - argument. */ -#define GOMP_TARGET_ARG_DEVICE_MASK ((1 << 7) - 1) -/* The target argument is significant for all devices. */ -#define GOMP_TARGET_ARG_DEVICE_ALL 0 - -/* Flag set when the subsequent element in the device-specific argument - values. */ -#define GOMP_TARGET_ARG_SUBSEQUENT_PARAM (1 << 7) - -/* Bitmask to apply to a target argument to find out the value identifier. */ -#define GOMP_TARGET_ARG_ID_MASK (((1 << 8) - 1) << 8) -/* Target argument index of NUM_TEAMS. */ -#define GOMP_TARGET_ARG_NUM_TEAMS (1 << 8) -/* Target argument index of THREAD_LIMIT. */ -#define GOMP_TARGET_ARG_THREAD_LIMIT (2 << 8) - -/* If the value is directly embeded in target argument, it should be a 16-bit - at most and shifted by this many bits. */ -#define GOMP_TARGET_ARG_VALUE_SHIFT 16 - -/* HSA specific data structures. */ - -/* Identifiers of device-specific target arguments. */ -#define GOMP_TARGET_ARG_HSA_KERNEL_ATTRIBUTES (1 << 8) - -#endif diff --git a/include/grp.h b/include/grp.h deleted file mode 100644 index 7296e7a..0000000 --- a/include/grp.h +++ /dev/null @@ -1,86 +0,0 @@ -/* $NetBSD: grp.h,v 1.7 1995/04/29 05:30:40 cgd Exp $ */ - -/*- - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)grp.h 8.2 (Berkeley) 1/21/94 - */ - -#ifndef _GRP_H_ -#define _GRP_H_ - -#include -#include -#ifdef __CYGWIN__ -#include -#endif - -#if __BSD_VISIBLE -#define _PATH_GROUP "/etc/group" -#endif - -struct group { - char *gr_name; /* group name */ - char *gr_passwd; /* group password */ - gid_t gr_gid; /* group id */ - char **gr_mem; /* group members */ -}; - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef __INSIDE_CYGWIN__ -struct group *getgrgid (gid_t); -struct group *getgrnam (const char *); -#if __MISC_VISIBLE || __POSIX_VISIBLE -int getgrnam_r (const char *, struct group *, - char *, size_t, struct group **); -int getgrgid_r (gid_t, struct group *, - char *, size_t, struct group **); -#endif /* __MISC_VISIBLE || __POSIX_VISIBLE */ -#if __MISC_VISIBLE || __XSI_VISIBLE >= 4 -struct group *getgrent (void); -void setgrent (void); -void endgrent (void); -#endif /* __MISC_VISIBLE || __XSI_VISIBLE >= 4 */ -#if __BSD_VISIBLE -int initgroups (const char *, gid_t); -#endif /* __BSD_VISIBLE */ -#endif /* !__INSIDE_CYGWIN__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* !_GRP_H_ */ diff --git a/include/hashtab.h b/include/hashtab.h deleted file mode 100644 index b1b5877..0000000 --- a/include/hashtab.h +++ /dev/null @@ -1,204 +0,0 @@ -/* An expandable hash tables datatype. - Copyright (C) 1999-2015 Free Software Foundation, Inc. - Contributed by Vladimir Makarov (vmakarov@cygnus.com). - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* This package implements basic hash table functionality. It is possible - to search for an entry, create an entry and destroy an entry. - - Elements in the table are generic pointers. - - The size of the table is not fixed; if the occupancy of the table - grows too high the hash table will be expanded. - - The abstract data implementation is based on generalized Algorithm D - from Knuth's book "The art of computer programming". Hash table is - expanded by creation of new hash table and transferring elements from - the old table to the new table. */ - -#ifndef __HASHTAB_H__ -#define __HASHTAB_H__ - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#include "ansidecl.h" - -/* The type for a hash code. */ -typedef unsigned int hashval_t; - -/* Callback function pointer types. */ - -/* Calculate hash of a table entry. */ -typedef hashval_t (*htab_hash) (const void *); - -/* Compare a table entry with a possible entry. The entry already in - the table always comes first, so the second element can be of a - different type (but in this case htab_find and htab_find_slot - cannot be used; instead the variants that accept a hash value - must be used). */ -typedef int (*htab_eq) (const void *, const void *); - -/* Cleanup function called whenever a live element is removed from - the hash table. */ -typedef void (*htab_del) (void *); - -/* Function called by htab_traverse for each live element. The first - arg is the slot of the element (which can be passed to htab_clear_slot - if desired), the second arg is the auxiliary pointer handed to - htab_traverse. Return 1 to continue scan, 0 to stop. */ -typedef int (*htab_trav) (void **, void *); - -/* Memory-allocation function, with the same functionality as calloc(). - Iff it returns NULL, the hash table implementation will pass an error - code back to the user, so if your code doesn't handle errors, - best if you use xcalloc instead. */ -typedef void *(*htab_alloc) (size_t, size_t); - -/* We also need a free() routine. */ -typedef void (*htab_free) (void *); - -/* Memory allocation and deallocation; variants which take an extra - argument. */ -typedef void *(*htab_alloc_with_arg) (void *, size_t, size_t); -typedef void (*htab_free_with_arg) (void *, void *); - -/* This macro defines reserved value for empty table entry. */ - -#define HTAB_EMPTY_ENTRY ((PTR) 0) - -/* This macro defines reserved value for table entry which contained - a deleted element. */ - -#define HTAB_DELETED_ENTRY ((PTR) 1) - -/* Hash tables are of the following type. The structure - (implementation) of this type is not needed for using the hash - tables. All work with hash table should be executed only through - functions mentioned below. The size of this structure is subject to - change. */ - -struct htab { - /* Pointer to hash function. */ - htab_hash hash_f; - - /* Pointer to comparison function. */ - htab_eq eq_f; - - /* Pointer to cleanup function. */ - htab_del del_f; - - /* Table itself. */ - void **entries; - - /* Current size (in entries) of the hash table. */ - size_t size; - - /* Current number of elements including also deleted elements. */ - size_t n_elements; - - /* Current number of deleted elements in the table. */ - size_t n_deleted; - - /* The following member is used for debugging. Its value is number - of all calls of `htab_find_slot' for the hash table. */ - unsigned int searches; - - /* The following member is used for debugging. Its value is number - of collisions fixed for time of work with the hash table. */ - unsigned int collisions; - - /* Pointers to allocate/free functions. */ - htab_alloc alloc_f; - htab_free free_f; - - /* Alternate allocate/free functions, which take an extra argument. */ - void *alloc_arg; - htab_alloc_with_arg alloc_with_arg_f; - htab_free_with_arg free_with_arg_f; - - /* Current size (in entries) of the hash table, as an index into the - table of primes. */ - unsigned int size_prime_index; -}; - -typedef struct htab *htab_t; - -/* An enum saying whether we insert into the hash table or not. */ -enum insert_option {NO_INSERT, INSERT}; - -/* The prototypes of the package functions. */ - -extern htab_t htab_create_alloc (size_t, htab_hash, - htab_eq, htab_del, - htab_alloc, htab_free); - -extern htab_t htab_create_alloc_ex (size_t, htab_hash, - htab_eq, htab_del, - void *, htab_alloc_with_arg, - htab_free_with_arg); - -extern htab_t htab_create_typed_alloc (size_t, htab_hash, htab_eq, htab_del, - htab_alloc, htab_alloc, htab_free); - -/* Backward-compatibility functions. */ -extern htab_t htab_create (size_t, htab_hash, htab_eq, htab_del); -extern htab_t htab_try_create (size_t, htab_hash, htab_eq, htab_del); - -extern void htab_set_functions_ex (htab_t, htab_hash, - htab_eq, htab_del, - void *, htab_alloc_with_arg, - htab_free_with_arg); - -extern void htab_delete (htab_t); -extern void htab_empty (htab_t); - -extern void * htab_find (htab_t, const void *); -extern void ** htab_find_slot (htab_t, const void *, enum insert_option); -extern void * htab_find_with_hash (htab_t, const void *, hashval_t); -extern void ** htab_find_slot_with_hash (htab_t, const void *, - hashval_t, enum insert_option); -extern void htab_clear_slot (htab_t, void **); -extern void htab_remove_elt (htab_t, void *); -extern void htab_remove_elt_with_hash (htab_t, void *, hashval_t); - -extern void htab_traverse (htab_t, htab_trav, void *); -extern void htab_traverse_noresize (htab_t, htab_trav, void *); - -extern size_t htab_size (htab_t); -extern size_t htab_elements (htab_t); -extern double htab_collisions (htab_t); - -/* A hash function for pointers. */ -extern htab_hash htab_hash_pointer; - -/* An equality function for pointers. */ -extern htab_eq htab_eq_pointer; - -/* A hash function for null-terminated strings. */ -extern hashval_t htab_hash_string (const void *); - -/* An iterative hash function for arbitrary data. */ -extern hashval_t iterative_hash (const void *, size_t, hashval_t); -/* Shorthand for hashing something with an intrinsic size. */ -#define iterative_hash_object(OB,INIT) iterative_hash (&OB, sizeof (OB), INIT) - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __HASHTAB_H */ diff --git a/include/hp-symtab.h b/include/hp-symtab.h deleted file mode 100644 index e944e90..0000000 --- a/include/hp-symtab.h +++ /dev/null @@ -1,1867 +0,0 @@ -/* Definitions and structures for reading debug symbols from the - native HP C compiler. - - Written by the Center for Software Science at the University of Utah - and by Cygnus Support. - - Copyright 1994, 1995, 1998, 1999, 2003 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef HP_SYMTAB_INCLUDED -#define HP_SYMTAB_INCLUDED - -/* General information: - - This header file defines and describes only the data structures - necessary to read debug symbols produced by the HP C compiler, - HP ANSI C++ compiler, and HP FORTRAN 90 compiler using the - SOM object file format. - (For a full description of the debug format, ftp hpux-symtab.h from - jaguar.cs.utah.edu:/dist). - - Additional notes (Rich Title) - This file is a reverse-engineered version of a file called - "symtab.h" which exists internal to HP's Computer Languages Organization - in /CLO/Components/DDE/obj/som/symtab.h. Because HP's version of - the file is copyrighted and not distributed, it is necessary for - GDB to use the reverse-engineered version that follows. - Work was done by Cygnus to reverse-engineer the C subset of symtab.h. - The WDB project has extended this to also contain the C++ - symbol definitions, the F90 symbol definitions, - and the DOC (debugging-optimized-code) symbol definitions. - In some cases (the C++ symbol definitions) - I have added internal documentation here that - goes beyond what is supplied in HP's symtab.h. If we someday - unify these files again, the extra comments should be merged back - into HP's symtab.h. - - ------------------------------------------------------------------- - - Debug symbols are contained entirely within an unloadable space called - $DEBUG$. $DEBUG$ contains several subspaces which group related - debug symbols. - - $GNTT$ contains information for global variables, types and contants. - - $LNTT$ contains information for procedures (including nesting), scoping - information, local variables, types, and constants. - - $SLT$ contains source line information so that code addresses may be - mapped to source lines. - - $VT$ contains various strings and constants for named objects (variables, - typedefs, functions, etc). Strings are stored as null-terminated character - lists. Constants always begin on word boundaries. The first byte of - the VT must be zero (a null string). - - $XT$ is not currently used by GDB. - - Many structures within the subspaces point to other structures within - the same subspace, or to structures within a different subspace. These - pointers are represented as a structure index from the beginning of - the appropriate subspace. */ - -/* Used to describe where a constant is stored. */ -enum location_type -{ - LOCATION_IMMEDIATE, - LOCATION_PTR, - LOCATION_VT, -}; - -/* Languages supported by this debug format. Within the data structures - this type is limited to 4 bits for a maximum of 16 languages. */ -enum hp_language -{ - HP_LANGUAGE_UNKNOWN, - HP_LANGUAGE_C, - HP_LANGUAGE_FORTRAN, - HP_LANGUAGE_F77 = HP_LANGUAGE_FORTRAN, - HP_LANGUAGE_PASCAL, - HP_LANGUAGE_MODCAL, - HP_LANGUAGE_COBOL, - HP_LANGUAGE_BASIC, - HP_LANGUAGE_ADA, - HP_LANGUAGE_CPLUSPLUS, - HP_LANGUAGE_DMPASCAL -}; - - -/* Basic data types available in this debug format. Within the data - structures this type is limited to 5 bits for a maximum of 32 basic - data types. */ -enum hp_type -{ - HP_TYPE_UNDEFINED, /* 0 */ - HP_TYPE_BOOLEAN, /* 1 */ - HP_TYPE_CHAR, /* 2 */ - HP_TYPE_INT, /* 3 */ - HP_TYPE_UNSIGNED_INT, /* 4 */ - HP_TYPE_REAL, /* 5 */ - HP_TYPE_COMPLEX, /* 6 */ - HP_TYPE_STRING200, /* 7 */ - HP_TYPE_LONGSTRING200, /* 8 */ - HP_TYPE_TEXT, /* 9 */ - HP_TYPE_FLABEL, /* 10 */ - HP_TYPE_FTN_STRING_SPEC, /* 11 */ - HP_TYPE_MOD_STRING_SPEC, /* 12 */ - HP_TYPE_PACKED_DECIMAL, /* 13 */ - HP_TYPE_REAL_3000, /* 14 */ - HP_TYPE_MOD_STRING_3000, /* 15 */ - HP_TYPE_ANYPOINTER, /* 16 */ - HP_TYPE_GLOBAL_ANYPOINTER, /* 17 */ - HP_TYPE_LOCAL_ANYPOINTER, /* 18 */ - HP_TYPE_COMPLEXS3000, /* 19 */ - HP_TYPE_FTN_STRING_S300_COMPAT, /* 20 */ - HP_TYPE_FTN_STRING_VAX_COMPAT, /* 21 */ - HP_TYPE_BOOLEAN_S300_COMPAT, /* 22 */ - HP_TYPE_BOOLEAN_VAX_COMPAT, /* 23 */ - HP_TYPE_WIDE_CHAR, /* 24 */ - HP_TYPE_LONG, /* 25 */ - HP_TYPE_UNSIGNED_LONG, /* 26 */ - HP_TYPE_DOUBLE, /* 27 */ - HP_TYPE_TEMPLATE_ARG, /* 28 */ - HP_TYPE_VOID /* 29 */ -}; - -/* An immediate name and type table entry. - - extension and immediate will always be one. - global will always be zero. - hp_type is the basic type this entry describes. - bitlength is the length in bits for the basic type. */ -struct dnttp_immediate -{ - unsigned int extension: 1; - unsigned int immediate: 1; - unsigned int global: 1; - unsigned int type: 5; - unsigned int bitlength: 24; -}; - -/* A nonimmediate name and type table entry. - - extension will always be one. - immediate will always be zero. - if global is zero, this entry points into the LNTT - if global is one, this entry points into the GNTT - index is the index within the GNTT or LNTT for this entry. */ -struct dnttp_nonimmediate -{ - unsigned int extension: 1; - unsigned int immediate: 1; - unsigned int global: 1; - unsigned int index: 29; -}; - -/* A pointer to an entry in the GNTT and LNTT tables. It has two - forms depending on the type being described. - - The immediate form is used for simple entries and is one - word. - - The nonimmediate form is used for complex entries and contains - an index into the LNTT or GNTT which describes the entire type. - - If a dnttpointer is -1, then it is a NIL entry. */ - -#define DNTTNIL (-1) -typedef union dnttpointer -{ - struct dnttp_immediate dntti; - struct dnttp_nonimmediate dnttp; - int word; -} dnttpointer; - -/* An index into the source line table. As with dnttpointers, a sltpointer - of -1 indicates a NIL entry. */ -#define SLTNIL (-1) -typedef int sltpointer; - -/* Index into DOC (= "Debugging Optimized Code") line table. */ -#define LTNIL (-1) -typedef int ltpointer; - -/* Index into context table. */ -#define CTXTNIL (-1) -typedef int ctxtpointer; - -/* Unsigned byte offset into the VT. */ -typedef unsigned int vtpointer; - -/* A DNTT entry (used within the GNTT and LNTT). - - DNTT entries are variable sized objects, but are always a multiple - of 3 words (we call each group of 3 words a "block"). - - The first bit in each block is an extension bit. This bit is zero - for the first block of a DNTT entry. If the entry requires more - than one block, then this bit is set to one in all blocks after - the first one. */ - -/* Each DNTT entry describes a particular debug symbol (beginning of - a source file, a function, variables, structures, etc. - - The type of the DNTT entry is stored in the "kind" field within the - DNTT entry itself. */ - -enum dntt_entry_type -{ - DNTT_TYPE_NIL = -1, - DNTT_TYPE_SRCFILE, - DNTT_TYPE_MODULE, - DNTT_TYPE_FUNCTION, - DNTT_TYPE_ENTRY, - DNTT_TYPE_BEGIN, - DNTT_TYPE_END, - DNTT_TYPE_IMPORT, - DNTT_TYPE_LABEL, - DNTT_TYPE_FPARAM, - DNTT_TYPE_SVAR, - DNTT_TYPE_DVAR, - DNTT_TYPE_HOLE1, - DNTT_TYPE_CONST, - DNTT_TYPE_TYPEDEF, - DNTT_TYPE_TAGDEF, - DNTT_TYPE_POINTER, - DNTT_TYPE_ENUM, - DNTT_TYPE_MEMENUM, - DNTT_TYPE_SET, - DNTT_TYPE_SUBRANGE, - DNTT_TYPE_ARRAY, - DNTT_TYPE_STRUCT, - DNTT_TYPE_UNION, - DNTT_TYPE_FIELD, - DNTT_TYPE_VARIANT, - DNTT_TYPE_FILE, - DNTT_TYPE_FUNCTYPE, - DNTT_TYPE_WITH, - DNTT_TYPE_COMMON, - DNTT_TYPE_COBSTRUCT, - DNTT_TYPE_XREF, - DNTT_TYPE_SA, - DNTT_TYPE_MACRO, - DNTT_TYPE_BLOCKDATA, - DNTT_TYPE_CLASS_SCOPE, - DNTT_TYPE_REFERENCE, - DNTT_TYPE_PTRMEM, - DNTT_TYPE_PTRMEMFUNC, - DNTT_TYPE_CLASS, - DNTT_TYPE_GENFIELD, - DNTT_TYPE_VFUNC, - DNTT_TYPE_MEMACCESS, - DNTT_TYPE_INHERITANCE, - DNTT_TYPE_FRIEND_CLASS, - DNTT_TYPE_FRIEND_FUNC, - DNTT_TYPE_MODIFIER, - DNTT_TYPE_OBJECT_ID, - DNTT_TYPE_MEMFUNC, - DNTT_TYPE_TEMPLATE, - DNTT_TYPE_TEMPLATE_ARG, - DNTT_TYPE_FUNC_TEMPLATE, - DNTT_TYPE_LINK, - DNTT_TYPE_DYN_ARRAY_DESC, - DNTT_TYPE_DESC_SUBRANGE, - DNTT_TYPE_BEGIN_EXT, - DNTT_TYPE_INLN, - DNTT_TYPE_INLN_LIST, - DNTT_TYPE_ALIAS, - DNTT_TYPE_DOC_FUNCTION, - DNTT_TYPE_DOC_MEMFUNC, - DNTT_TYPE_MAX -}; - -/* DNTT_TYPE_SRCFILE: - - One DNTT_TYPE_SRCFILE symbol is output for the start of each source - file and at the begin and end of an included file. A DNTT_TYPE_SRCFILE - entry is also output before each DNTT_TYPE_FUNC symbol so that debuggers - can determine what file a function was defined in. - - LANGUAGE describes the source file's language. - - NAME points to an VT entry providing the source file's name. - - Note the name used for DNTT_TYPE_SRCFILE entries are exactly as seen - by the compiler (ie they may be relative or absolute). C include files - via <> inclusion must use absolute paths. - - ADDRESS points to an SLT entry from which line number and code locations - may be determined. */ - -struct dntt_type_srcfile -{ - unsigned int extension: 1; - unsigned int kind: 10; /* DNTT_TYPE_SRCFILE */ - unsigned int language: 4; - unsigned int unused: 17; - vtpointer name; - sltpointer address; -}; - -/* DNTT_TYPE_MODULE: - - A DNTT_TYPE_MODULE symbol is emitted for the start of a pascal - module or C source file. A module indicates a compilation unit - for name-scoping purposes; in that regard there should be - a 1-1 correspondence between GDB "symtab"'s and MODULE symbol records. - - Each DNTT_TYPE_MODULE must have an associated DNTT_TYPE_END symbol. - - NAME points to a VT entry providing the module's name. Note C - source files are considered nameless modules. - - ALIAS point to a VT entry providing a secondary name. - - ADDRESS points to an SLT entry from which line number and code locations - may be determined. */ - -struct dntt_type_module -{ - unsigned int extension: 1; - unsigned int kind: 10; /* DNTT_TYPE_MODULE */ - unsigned int unused: 21; - vtpointer name; - vtpointer alias; - dnttpointer unused2; - sltpointer address; -}; - -/* DNTT_TYPE_FUNCTION, - DNTT_TYPE_ENTRY, - DNTT_TYPE_BLOCKDATA, - DNTT_TYPE_MEMFUNC: - - A DNTT_TYPE_FUNCTION symbol is emitted for each function definition; - a DNTT_TYPE_ENTRY symbols is used for secondary entry points. Both - symbols used the dntt_type_function structure. - A DNTT_TYPE_BLOCKDATA symbol is emitted ...? - A DNTT_TYPE_MEMFUNC symbol is emitted for inlined member functions (C++). - - Each of DNTT_TYPE_FUNCTION must have a matching DNTT_TYPE_END. - - GLOBAL is nonzero if the function has global scope. - - LANGUAGE describes the function's source language. - - OPT_LEVEL describes the optimization level the function was compiled - with. - - VARARGS is nonzero if the function uses varargs. - - NAME points to a VT entry providing the function's name. - - ALIAS points to a VT entry providing a secondary name for the function. - - FIRSTPARAM points to a LNTT entry which describes the parameter list. - - ADDRESS points to an SLT entry from which line number and code locations - may be determined. - - ENTRYADDR is the memory address corresponding the function's entry point - - RETVAL points to a LNTT entry describing the function's return value. - - LOWADDR is the lowest memory address associated with this function. - - HIADDR is the highest memory address associated with this function. */ - -struct dntt_type_function -{ - unsigned int extension: 1; - unsigned int kind: 10; /* DNTT_TYPE_FUNCTION, - DNTT_TYPE_ENTRY, - DNTT_TYPE_BLOCKDATA - or DNTT_TYPE_MEMFUNC */ - unsigned int global: 1; - unsigned int language: 4; - unsigned int nest_level: 5; - unsigned int opt_level: 2; - unsigned int varargs: 1; - unsigned int lang_info: 4; - unsigned int inlined: 1; - unsigned int localalloc: 1; - unsigned int expansion: 1; - unsigned int unused: 1; - vtpointer name; - vtpointer alias; - dnttpointer firstparam; - sltpointer address; - CORE_ADDR entryaddr; - dnttpointer retval; - CORE_ADDR lowaddr; - CORE_ADDR hiaddr; -}; - -/* DNTT_TYPE_BEGIN: - - A DNTT_TYPE_BEGIN symbol is emitted to begin a new nested scope. - Every DNTT_TYPE_BEGIN symbol must have a matching DNTT_TYPE_END symbol. - - CLASSFLAG is nonzero if this is the beginning of a c++ class definition. - - ADDRESS points to an SLT entry from which line number and code locations - may be determined. */ - -struct dntt_type_begin -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int classflag: 1; - unsigned int unused: 20; - sltpointer address; -}; - -/* DNTT_TYPE_END: - - A DNTT_TYPE_END symbol is emitted when closing a scope started by - a DNTT_TYPE_MODULE, DNTT_TYPE_FUNCTION, DNTT_TYPE_WITH, - DNTT_TYPE_COMMON, DNTT_TYPE_BEGIN, and DNTT_TYPE_CLASS_SCOPE symbols. - - ENDKIND describes what type of scope the DNTT_TYPE_END is closing - (one of the above 6 kinds). - - CLASSFLAG is nonzero if this is the end of a c++ class definition. - - ADDRESS points to an SLT entry from which line number and code locations - may be determined. - - BEGINSCOPE points to the LNTT entry which opened the scope. */ - -struct dntt_type_end -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int endkind: 10; - unsigned int classflag: 1; - unsigned int unused: 10; - sltpointer address; - dnttpointer beginscope; -}; - -/* DNTT_TYPE_IMPORT is unused by GDB. */ -/* DNTT_TYPE_LABEL is unused by GDB. */ - -/* DNTT_TYPE_FPARAM: - - A DNTT_TYPE_FPARAM symbol is emitted for a function argument. When - chained together the symbols represent an argument list for a function. - - REGPARAM is nonzero if this parameter was passed in a register. - - INDIRECT is nonzero if this parameter is a pointer to the parameter - (pass by reference or pass by value for large items). - - LONGADDR is nonzero if the parameter is a 64bit pointer. - - NAME is a pointer into the VT for the parameter's name. - - LOCATION describes where the parameter is stored. Depending on the - parameter type LOCATION could be a register number, or an offset - from the stack pointer. - - TYPE points to a NTT entry describing the type of this parameter. - - NEXTPARAM points to the LNTT entry describing the next parameter. */ - -struct dntt_type_fparam -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int regparam: 1; - unsigned int indirect: 1; - unsigned int longaddr: 1; - unsigned int copyparam: 1; - unsigned int dflt: 1; - unsigned int doc_ranges: 1; - unsigned int misc_kind: 1; - unsigned int unused: 14; - vtpointer name; - CORE_ADDR location; - dnttpointer type; - dnttpointer nextparam; - int misc; -}; - -/* DNTT_TYPE_SVAR: - - A DNTT_TYPE_SVAR is emitted to describe a variable in static storage. - - GLOBAL is nonzero if the variable has global scope. - - INDIRECT is nonzero if the variable is a pointer to an object. - - LONGADDR is nonzero if the variable is in long pointer space. - - STATICMEM is nonzero if the variable is a member of a class. - - A_UNION is nonzero if the variable is an anonymous union member. - - NAME is a pointer into the VT for the variable's name. - - LOCATION provides the memory address for the variable. - - TYPE is a pointer into either the GNTT or LNTT which describes - the type of this variable. */ - -struct dntt_type_svar -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int global: 1; - unsigned int indirect: 1; - unsigned int longaddr: 1; - unsigned int staticmem: 1; - unsigned int a_union: 1; - unsigned int unused1: 1; - unsigned int thread_specific: 1; - unsigned int unused2: 14; - vtpointer name; - CORE_ADDR location; - dnttpointer type; - unsigned int offset; - unsigned int displacement; -}; - -/* DNTT_TYPE_DVAR: - - A DNTT_TYPE_DVAR is emitted to describe automatic variables and variables - held in registers. - - GLOBAL is nonzero if the variable has global scope. - - INDIRECT is nonzero if the variable is a pointer to an object. - - REGVAR is nonzero if the variable is in a register. - - A_UNION is nonzero if the variable is an anonymous union member. - - NAME is a pointer into the VT for the variable's name. - - LOCATION provides the memory address or register number for the variable. - - TYPE is a pointer into either the GNTT or LNTT which describes - the type of this variable. */ - -struct dntt_type_dvar -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int global: 1; - unsigned int indirect: 1; - unsigned int regvar: 1; - unsigned int a_union: 1; - unsigned int unused: 17; - vtpointer name; - int location; - dnttpointer type; - unsigned int offset; -}; - -/* DNTT_TYPE_CONST: - - A DNTT_TYPE_CONST symbol is emitted for program constants. - - GLOBAL is nonzero if the constant has global scope. - - INDIRECT is nonzero if the constant is a pointer to an object. - - LOCATION_TYPE describes where to find the constant's value - (in the VT, memory, or embedded in an instruction). - - CLASSMEM is nonzero if the constant is a member of a class. - - NAME is a pointer into the VT for the constant's name. - - LOCATION provides the memory address, register number or pointer - into the VT for the constant's value. - - TYPE is a pointer into either the GNTT or LNTT which describes - the type of this variable. */ - -struct dntt_type_const -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int global: 1; - unsigned int indirect: 1; - unsigned int location_type: 3; - unsigned int classmem: 1; - unsigned int unused: 15; - vtpointer name; - CORE_ADDR location; - dnttpointer type; - unsigned int offset; - unsigned int displacement; -}; - -/* DNTT_TYPE_TYPEDEF and DNTT_TYPE_TAGDEF: - - The same structure is used to describe typedefs and tagdefs. - - DNTT_TYPE_TYPEDEFS are associated with C "typedefs". - - DNTT_TYPE_TAGDEFs are associated with C "struct", "union", and "enum" - tags, which may have the same name as a typedef in the same scope. - Also they are associated with C++ "class" tags, which implicitly have - the same name as the class type. - - GLOBAL is nonzero if the typedef/tagdef has global scope. - - TYPEINFO is used to determine if full type information is available - for a tag. (usually 1, but can be zero for opaque types in C). - - NAME is a pointer into the VT for the constant's name. - - TYPE points to the underlying type for the typedef/tagdef in the - GNTT or LNTT. */ - -struct dntt_type_type -{ - unsigned int extension: 1; - unsigned int kind: 10; /* DNTT_TYPE_TYPEDEF or - DNTT_TYPE_TAGDEF. */ - unsigned int global: 1; - unsigned int typeinfo: 1; - unsigned int unused: 19; - vtpointer name; - dnttpointer type; /* Underlying type, which for TAGDEF's may be - DNTT_TYPE_STRUCT, DNTT_TYPE_UNION, - DNTT_TYPE_ENUM, or DNTT_TYPE_CLASS. - For TYPEDEF's other underlying types - are also possible. */ -}; - -/* DNTT_TYPE_POINTER: - - Used to describe a pointer to an underlying type. - - POINTSTO is a pointer into the GNTT or LNTT for the type which this - pointer points to. - - BITLENGTH is the length of the pointer (not the underlying type). */ - -struct dntt_type_pointer -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int unused: 21; - dnttpointer pointsto; - unsigned int bitlength; -}; - - -/* DNTT_TYPE_ENUM: - - Used to describe enumerated types. - - FIRSTMEM is a pointer to a DNTT_TYPE_MEMENUM in the GNTT/LNTT which - describes the first member (and contains a pointer to the chain of - members). - - BITLENGTH is the number of bits used to hold the values of the enum's - members. */ - -struct dntt_type_enum -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int unused: 21; - dnttpointer firstmem; - unsigned int bitlength; -}; - -/* DNTT_TYPE_MEMENUM - - Used to describe members of an enumerated type. - - CLASSMEM is nonzero if this member is part of a class. - - NAME points into the VT for the name of this member. - - VALUE is the value of this enumeration member. - - NEXTMEM points to the next DNTT_TYPE_MEMENUM in the chain. */ - -struct dntt_type_memenum -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int classmem: 1; - unsigned int unused: 20; - vtpointer name; - unsigned int value; - dnttpointer nextmem; -}; - -/* DNTT_TYPE_SET - - Used to describe PASCAL "set" type. - - DECLARATION describes the bitpacking of the set. - - SUBTYPE points to a DNTT entry describing the type of the members. - - BITLENGTH is the size of the set. */ - -struct dntt_type_set -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int declaration: 2; - unsigned int unused: 19; - dnttpointer subtype; - unsigned int bitlength; -}; - -/* DNTT_TYPE_SUBRANGE - - Used to describe subrange type. - - DYN_LOW describes the lower bound of the subrange: - - 00 for a constant lower bound (found in LOWBOUND). - - 01 for a dynamic lower bound with the lower bound found in the - memory address pointed to by LOWBOUND. - - 10 for a dynamic lower bound described by an variable found in the - DNTT/LNTT (LOWBOUND would be a pointer into the DNTT/LNTT). - - DYN_HIGH is similar to DYN_LOW, except it describes the upper bound. - - SUBTYPE points to the type of the subrange. - - BITLENGTH is the length in bits needed to describe the subrange's - values. */ - -struct dntt_type_subrange -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int dyn_low: 2; - unsigned int dyn_high: 2; - unsigned int unused: 17; - int lowbound; - int highbound; - dnttpointer subtype; - unsigned int bitlength; -}; - -/* DNTT_TYPE_ARRAY - - Used to describe an array type. - - DECLARATION describes the bit packing used in the array. - - ARRAYISBYTES is nonzero if the field in arraylength describes the - length in bytes rather than in bits. A value of zero is used to - describe an array with size 2**32. - - ELEMISBYTES is nonzero if the length if each element in the array - is describes in bytes rather than bits. A value of zero is used - to an element with size 2**32. - - ELEMORDER is nonzero if the elements are indexed in increasing order. - - JUSTIFIED if the elements are left justified to index zero. - - ARRAYLENGTH is the length of the array. - - INDEXTYPE is a DNTT pointer to the type used to index the array. - - ELEMTYPE is a DNTT pointer to the type for the array elements. - - ELEMLENGTH is the length of each element in the array (including - any padding). - - Multi-dimensional arrays are represented by ELEMTYPE pointing to - another DNTT_TYPE_ARRAY. */ - -struct dntt_type_array -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int declaration: 2; - unsigned int dyn_low: 2; - unsigned int dyn_high: 2; - unsigned int arrayisbytes: 1; - unsigned int elemisbytes: 1; - unsigned int elemorder: 1; - unsigned int justified: 1; - unsigned int unused: 11; - unsigned int arraylength; - dnttpointer indextype; - dnttpointer elemtype; - unsigned int elemlength; -}; - -/* DNTT_TYPE_STRUCT - - DNTT_TYPE_STRUCT is used to describe a C structure. - - DECLARATION describes the bitpacking used. - - FIRSTFIELD is a DNTT pointer to the first field of the structure - (each field contains a pointer to the next field, walk the list - to access all fields of the structure). - - VARTAGFIELD and VARLIST are used for Pascal variant records. - - BITLENGTH is the size of the structure in bits. */ - -struct dntt_type_struct -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int declaration: 2; - unsigned int unused: 19; - dnttpointer firstfield; - dnttpointer vartagfield; - dnttpointer varlist; - unsigned int bitlength; -}; - -/* DNTT_TYPE_UNION - - DNTT_TYPE_UNION is used to describe a C union. - - FIRSTFIELD is a DNTT pointer to the beginning of the field chain. - - BITLENGTH is the size of the union in bits. */ - -struct dntt_type_union -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int unused: 21; - dnttpointer firstfield; - unsigned int bitlength; -}; - -/* DNTT_TYPE_FIELD - - DNTT_TYPE_FIELD describes one field in a structure or union - or C++ class. - - VISIBILITY is used to describe the visibility of the field - (for c++. public = 0, protected = 1, private = 2). - - A_UNION is nonzero if this field is a member of an anonymous union. - - STATICMEM is nonzero if this field is a static member of a template. - - NAME is a pointer into the VT for the name of the field. - - BITOFFSET gives the offset of this field in bits from the beginning - of the structure or union this field is a member of. - - TYPE is a DNTT pointer to the type describing this field. - - BITLENGTH is the size of the entry in bits. - - NEXTFIELD is a DNTT pointer to the next field in the chain. */ - -struct dntt_type_field -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int visibility: 2; - unsigned int a_union: 1; - unsigned int staticmem: 1; - unsigned int unused: 17; - vtpointer name; - unsigned int bitoffset; - dnttpointer type; - unsigned int bitlength; - dnttpointer nextfield; -}; - -/* DNTT_TYPE_VARIANT is unused by GDB. */ -/* DNTT_TYPE_FILE is unused by GDB. */ - -/* DNTT_TYPE_FUNCTYPE - - I think this is used to describe a function type (e.g., would - be emitted as part of a function-pointer description). - - VARARGS is nonzero if this function uses varargs. - - FIRSTPARAM is a DNTT pointer to the first entry in the parameter - chain. - - RETVAL is a DNTT pointer to the type of the return value. */ - -struct dntt_type_functype -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int varargs: 1; - unsigned int info: 4; - unsigned int unused: 16; - unsigned int bitlength; - dnttpointer firstparam; - dnttpointer retval; -}; - -/* DNTT_TYPE_WITH is emitted by C++ to indicate "with" scoping semantics. - (Probably also emitted by PASCAL to support "with"...). - - C++ example: Say "memfunc" is a method of class "c", and say - "m" is a data member of class "c". Then from within "memfunc", - it is legal to reference "m" directly (e.g. you don't have to - say "this->m". The symbol table indicates - this by emitting a DNTT_TYPE_WITH symbol within the function "memfunc", - pointing to the type symbol for class "c". - - In GDB, this symbol record is unnecessary, - because GDB's symbol lookup algorithm - infers the "with" semantics when it sees a "this" argument to the member - function. So GDB can safely ignore the DNTT_TYPE_WITH record. - - A DNTT_TYPE_WITH has a matching DNTT_TYPE_END symbol. */ - -struct dntt_type_with -{ - unsigned int extension: 1; /* always zero */ - unsigned int kind: 10; /* always DNTT_TYPE_WITH */ - unsigned int addrtype: 2; /* 0 => STATTYPE */ - /* 1 => DYNTYPE */ - /* 2 => REGTYPE */ - unsigned int indirect: 1; /* 1 => pointer to object */ - unsigned int longaddr: 1; /* 1 => in long pointer space */ - unsigned int nestlevel: 6; /* # of nesting levels back */ - unsigned int doc_ranges: 1; /* 1 => location is range list */ - unsigned int unused: 10; - long location; /* where stored (allocated) */ - sltpointer address; - dnttpointer type; /* type of with expression */ - vtpointer name; /* name of with expression */ - unsigned long offset; /* byte offset from location */ -}; - -/* DNTT_TYPE_COMMON is unsupported by GDB. */ -/* A DNTT_TYPE_COMMON symbol must have a matching DNTT_TYPE_END symbol */ - -/* DNTT_TYPE_COBSTRUCT is unsupported by GDB. */ -/* DNTT_TYPE_XREF is unsupported by GDB. */ -/* DNTT_TYPE_SA is unsupported by GDB. */ -/* DNTT_TYPE_MACRO is unsupported by GDB */ - -/* DNTT_TYPE_BLOCKDATA has the same structure as DNTT_TYPE_FUNCTION */ - -/* The following are the C++ specific SOM records */ - -/* The purpose of the DNTT_TYPE_CLASS_SCOPE is to bracket C++ methods - and indicate the method name belongs in the "class scope" rather - than in the module they are being defined in. For example: - - class c { - ... - void memfunc(); // member function - }; - - void c::memfunc() // definition of class c's "memfunc" - { - ... - } - - main() - { - ... - } - - In the above, the name "memfunc" is not directly visible from "main". - I.e., you have to say "break c::memfunc". - If it were a normal function (not a method), it would be visible - via the simple "break memfunc". Since "memfunc" otherwise looks - like a normal FUNCTION in the symbol table, the bracketing - CLASS_SCOPE is what is used to indicate it is really a method. - - - A DNTT_TYPE_CLASS_SCOPE symbol must have a matching DNTT_TYPE_END symbol. */ - -struct dntt_type_class_scope -{ - unsigned int extension: 1; /* Always zero. */ - unsigned int kind: 10; /* Always DNTT_TYPE_CLASS_SCOPE. */ - unsigned int unused: 21; - sltpointer address ; /* Pointer to SLT entry. */ - dnttpointer type ; /* Pointer to class type DNTT. */ -}; - -/* C++ reference parameter. - The structure of this record is the same as DNTT_TYPE_POINTER - - refer to struct dntt_type_pointer. */ - -/* The next two describe C++ pointer-to-data-member type, and - pointer-to-member-function type, respectively. - DNTT_TYPE_PTRMEM and DNTT_TYPE_PTRMEMFUNC have the same structure. */ - -struct dntt_type_ptrmem -{ - unsigned int extension: 1; /* Always zero. */ - unsigned int kind: 10; /* Always DNTT_TYPE_PTRMEM. */ - unsigned int unused: 21; - dnttpointer pointsto ; /* Pointer to class DNTT. */ - dnttpointer memtype ; /* Type of member. */ -}; - -struct dntt_type_ptrmemfunc -{ - unsigned int extension: 1; /* Always zero. */ - unsigned int kind: 10; /* Always DNTT_TYPE_PTRMEMFUNC. */ - unsigned int unused: 21; - dnttpointer pointsto ; /* Pointer to class DNTT. */ - dnttpointer memtype ; /* Type of member. */ -}; - -/* The DNTT_TYPE_CLASS symbol is emitted to describe a class type. - "memberlist" points to a chained list of FIELD or GENFIELD records - indicating the class members. "parentlist" points to a chained list - of INHERITANCE records indicating classes from which we inherit - fields. */ - -struct dntt_type_class -{ - unsigned int extension: 1; /* Always zero. */ - unsigned int kind: 10; /* Always DNTT_TYPE_CLASS. */ - unsigned int abstract: 1; /* Is this an abstract class? */ - unsigned int class_decl: 2; /* 0=class,1=union,2=struct. */ - unsigned int expansion: 1; /* 1=template expansion. */ - unsigned int unused: 17; - dnttpointer memberlist ; /* Ptr to chain of [GEN]FIELDs. */ - unsigned long vtbl_loc ; /* Offset in obj of ptr to vtbl. */ - dnttpointer parentlist ; /* Ptr to K_INHERITANCE list. */ - unsigned long bitlength ; /* Total at this level. */ - dnttpointer identlist ; /* Ptr to chain of class ident's. */ - dnttpointer friendlist ; /* Ptr to K_FRIEND list. */ - dnttpointer templateptr ; /* Ptr to template. */ - dnttpointer nextexp ; /* Ptr to next expansion. */ -}; - -/* Class members are indicated via either the FIELD record (for - data members, same as for C struct fields), or by the GENFIELD record - (for member functions). */ - -struct dntt_type_genfield -{ - unsigned int extension: 1; /* Always zero. */ - unsigned int kind: 10; /* Always DNTT_TYPE_GENFIELD. */ - unsigned int visibility: 2; /* Pub = 0, prot = 1, priv = 2. */ - unsigned int a_union: 1; /* 1 => anonymous union member. */ - unsigned int unused: 18; - dnttpointer field ; /* Pointer to field or qualifier. */ - dnttpointer nextfield ; /* Pointer to next field. */ -}; - -/* C++ virtual functions. */ - -struct dntt_type_vfunc -{ - unsigned int extension: 1; /* always zero */ - unsigned int kind: 10; /* always DNTT_TYPE_VFUNC */ - unsigned int pure: 1; /* pure virtual function ? */ - unsigned int unused: 20; - dnttpointer funcptr ; /* points to FUNCTION symbol */ - unsigned long vtbl_offset ; /* offset into vtbl for virtual */ -}; - -/* Not precisely sure what this is intended for - DDE ignores it. */ - -struct dntt_type_memaccess -{ - unsigned int extension: 1; /* always zero */ - unsigned int kind: 10; /* always DNTT_TYPE_MEMACCESS */ - unsigned int unused: 21; - dnttpointer classptr ; /* pointer to base class */ - dnttpointer field ; /* pointer field */ -}; - -/* The DNTT_TYPE_INHERITANCE record describes derived classes. - In particular, the "parentlist" field of the CLASS record points - to a list of INHERITANCE records for classes from which we - inherit members. */ - -struct dntt_type_inheritance -{ - unsigned int extension: 1; /* always zero */ - unsigned int kind: 10; /* always DNTT_TYPE_INHERITANCE */ - unsigned int Virtual: 1; /* virtual base class ? */ - unsigned int visibility: 2; /* pub = 0, prot = 1, priv = 2 */ - unsigned int unused: 18; - dnttpointer classname ; /* first parent class, if any */ - unsigned long offset ; /* offset to start of base class */ - dnttpointer next ; /* pointer to next K_INHERITANCE */ - unsigned long future[2] ; /* padding to 3-word block end */ -}; - -/* C++ "friend" classes ... */ - -struct dntt_type_friend_class -{ - unsigned int extension: 1; /* always zero */ - unsigned int kind: 10; /* always DNTT_TYPE_FRIEND_CLASS */ - unsigned int unused: 21; - dnttpointer classptr ; /* pointer to class DNTT */ - dnttpointer next ; /* next DNTT_FRIEND */ -}; - -struct dntt_type_friend_func -{ - unsigned int extension: 1; /* always zero */ - unsigned int kind: 10; /* always DNTT_TYPE_FRIEND_FUNC */ - unsigned int unused: 21; - dnttpointer funcptr ; /* pointer to function */ - dnttpointer classptr ; /* pointer to class DNTT */ - dnttpointer next ; /* next DNTT_FRIEND */ - unsigned long future[2] ; /* padding to 3-word block end */ -}; - -/* DDE appears to ignore the DNTT_TYPE_MODIFIER record. - It could perhaps be used to give better "ptype" output in GDB; - otherwise it is probably safe for GDB to ignore it also. */ - -struct dntt_type_modifier -{ - unsigned int extension: 1; /* always zero */ - unsigned int kind: 10; /* always DNTT_TYPE_MODIFIER */ - unsigned int m_const: 1; /* const */ - unsigned int m_static: 1; /* static */ - unsigned int m_void: 1; /* void */ - unsigned int m_volatile: 1; /* volatile */ - unsigned int m_duplicate: 1; /* duplicate */ - unsigned int unused: 16; - dnttpointer type ; /* subtype */ - unsigned long future ; /* padding to 3-word block end */ -}; - -/* I'm not sure what this was intended for - DDE ignores it. */ - -struct dntt_type_object_id -{ - unsigned int extension: 1; /* always zero */ - unsigned int kind: 10; /* always DNTT_TYPE_OBJECT_ID */ - unsigned int indirect: 1; /* Is object_ident addr of addr? */ - unsigned int unused: 20; - unsigned long object_ident ; /* object identifier */ - unsigned long offset ; /* offset to start of base class */ - dnttpointer next ; /* pointer to next K_OBJECT_ID */ - unsigned long segoffset ; /* for linker fixup */ - unsigned long future ; /* padding to 3-word block end */ -}; - -/* No separate dntt_type_memfunc; same as dntt_type_func */ - -/* Symbol records to support templates. These only get used - in DDE's "describe" output (like GDB's "ptype"). */ - -/* The TEMPLATE record is the header for a template-class. - Like the CLASS record, a TEMPLATE record has a memberlist that - points to a list of template members. It also has an arglist - pointing to a list of TEMPLATE_ARG records. */ - -struct dntt_type_template -{ - unsigned int extension: 1; /* always zero */ - unsigned int kind: 10; /* always DNTT_TYPE_TEMPLATE */ - unsigned int abstract: 1; /* is this an abstract class? */ - unsigned int class_decl: 2; /* 0=class,1=union,2=struct */ - unsigned int unused: 18; - dnttpointer memberlist ; /* ptr to chain of K_[GEN]FIELDs */ - long unused2 ; /* offset in obj of ptr to vtbl */ - dnttpointer parentlist ; /* ptr to K_INHERITANCE list */ - unsigned long bitlength ; /* total at this level */ - dnttpointer identlist ; /* ptr to chain of class ident's */ - dnttpointer friendlist ; /* ptr to K_FRIEND list */ - dnttpointer arglist ; /* ptr to argument list */ - dnttpointer expansions ; /* ptr to expansion list */ -}; - -/* Template-class arguments are a list of TEMPL_ARG records - chained together. The "name" field is the name of the formal. - E.g.: - - template class q { ... }; - - Then "T" is the name of the formal argument. */ - -struct dntt_type_templ_arg -{ - unsigned int extension: 1; /* always zero */ - unsigned int kind: 10; /* always DNTT_TYPE_TEMPL_ARG */ - unsigned int usagetype: 1; /* 0 type-name 1 expression */ - unsigned int unused: 20; - vtpointer name ; /* name of argument */ - dnttpointer type ; /* for non type arguments */ - dnttpointer nextarg ; /* Next argument if any */ - long future[2] ; /* padding to 3-word block end */ -}; - -/* FUNC_TEMPLATE records are sort of like FUNCTION, but are emitted - for template member functions. E.g., - - template class q - { - ... - void f(); - ... - }; - - Within the list of FIELDs/GENFIELDs defining the member list - of the template "q", "f" would appear as a FUNC_TEMPLATE. - We'll also see instances of FUNCTION "f" records for each - instantiation of the template. */ - -struct dntt_type_func_template -{ - unsigned int extension: 1; /* always zero */ - unsigned int kind: 10; /* always DNTT_TYPE_FUNC_TEMPLATE */ - unsigned int public: 1; /* 1 => globally visible */ - unsigned int language: 4; /* type of language */ - unsigned int level: 5; /* nesting level (top level = 0)*/ - unsigned int optimize: 2; /* level of optimization */ - unsigned int varargs: 1; /* ellipses. Pascal/800 later */ - unsigned int info: 4; /* lang-specific stuff; F_xxxx */ - unsigned int inlined: 1; - unsigned int localloc: 1; /* 0 at top, 1 at end of block */ - unsigned int unused: 2; - vtpointer name ; /* name of function */ - vtpointer alias ; /* alternate name, if any */ - dnttpointer firstparam ; /* first FPARAM, if any */ - dnttpointer retval ; /* return type, if any */ - dnttpointer arglist ; /* ptr to argument list */ -}; - -/* LINK is apparently intended to link together function template - definitions with their instantiations. However, it is not clear - why this would be needed, except to provide the information on - a "ptype" command. And as far as I can tell, aCC does not - generate this record. */ - -struct dntt_type_link -{ - unsigned int extension: 1; /* always zero */ - unsigned int kind: 10; /* always DNTT_TYPE_LINK */ - unsigned int linkKind: 4; /* always LINK_UNKNOWN */ - unsigned int unused: 17; - long future1 ; /* expansion */ - dnttpointer ptr1 ; /* link from template */ - dnttpointer ptr2 ; /* to expansion */ - long future[2] ; /* padding to 3-word block end */ -}; - -/* end of C++ specific SOM's. */ - -/* DNTT_TYPE_DYN_ARRAY_DESC is unused by GDB */ -/* DNTT_TYPE_DESC_SUBRANGE is unused by GDB */ -/* DNTT_TYPE_BEGIN_EXT is unused by GDB */ -/* DNTT_TYPE_INLN is unused by GDB */ -/* DNTT_TYPE_INLN_LIST is unused by GDB */ -/* DNTT_TYPE_ALIAS is unused by GDB */ - -struct dntt_type_doc_function -{ - unsigned int extension: 1; /* always zero */ - unsigned int kind: 10; /* K_DOC_FUNCTION or */ - /* K_DOC_MEMFUNC */ - unsigned int global: 1; /* 1 => globally visible */ - unsigned int language: 4; /* type of language */ - unsigned int level: 5; /* nesting level (top level = 0)*/ - unsigned int optimize: 2; /* level of optimization */ - unsigned int varargs: 1; /* ellipses. Pascal/800 later */ - unsigned int info: 4; /* lang-specific stuff; F_xxxx */ - unsigned int inlined: 1; - unsigned int localloc: 1; /* 0 at top, 1 at end of block */ - unsigned int expansion: 1; /* 1 = function expansion */ - unsigned int doc_clone: 1; - vtpointer name; /* name of function */ - vtpointer alias; /* alternate name, if any */ - dnttpointer firstparam; /* first FPARAM, if any */ - sltpointer address; /* code and text locations */ - CORE_ADDR entryaddr; /* address of entry point */ - dnttpointer retval; /* return type, if any */ - CORE_ADDR lowaddr; /* lowest address of function */ - CORE_ADDR hiaddr; /* highest address of function */ - dnttpointer inline_list; /* pointer to first inline */ - ltpointer lt_offset; /* start of frag/cp line table */ - ctxtpointer ctxt_offset; /* start of context table for this routine */ -}; - -/* DNTT_TYPE_DOC_MEMFUNC is unused by GDB */ - -/* DNTT_TYPE_GENERIC and DNTT_TYPE_BLOCK are convience structures - so we can examine a DNTT entry in a generic fashion. */ -struct dntt_type_generic -{ - unsigned int word[9]; -}; - -struct dntt_type_block -{ - unsigned int extension: 1; - unsigned int kind: 10; - unsigned int unused: 21; - unsigned int word[2]; -}; - -/* One entry in a DNTT (either the LNTT or GNTT). - This is a union of the above 60 or so structure definitions. */ - -union dnttentry -{ - struct dntt_type_srcfile dsfile; - struct dntt_type_module dmodule; - struct dntt_type_function dfunc; - struct dntt_type_function dentry; - struct dntt_type_begin dbegin; - struct dntt_type_end dend; - struct dntt_type_fparam dfparam; - struct dntt_type_svar dsvar; - struct dntt_type_dvar ddvar; - struct dntt_type_const dconst; - struct dntt_type_type dtype; - struct dntt_type_type dtag; - struct dntt_type_pointer dptr; - struct dntt_type_enum denum; - struct dntt_type_memenum dmember; - struct dntt_type_set dset; - struct dntt_type_subrange dsubr; - struct dntt_type_array darray; - struct dntt_type_struct dstruct; - struct dntt_type_union dunion; - struct dntt_type_field dfield; - struct dntt_type_functype dfunctype; - struct dntt_type_with dwith; - struct dntt_type_function dblockdata; - struct dntt_type_class_scope dclass_scope; - struct dntt_type_pointer dreference; - struct dntt_type_ptrmem dptrmem; - struct dntt_type_ptrmemfunc dptrmemfunc; - struct dntt_type_class dclass; - struct dntt_type_genfield dgenfield; - struct dntt_type_vfunc dvfunc; - struct dntt_type_memaccess dmemaccess; - struct dntt_type_inheritance dinheritance; - struct dntt_type_friend_class dfriend_class; - struct dntt_type_friend_func dfriend_func; - struct dntt_type_modifier dmodifier; - struct dntt_type_object_id dobject_id; - struct dntt_type_template dtemplate; - struct dntt_type_templ_arg dtempl_arg; - struct dntt_type_func_template dfunc_template; - struct dntt_type_link dlink; - struct dntt_type_doc_function ddocfunc; - struct dntt_type_generic dgeneric; - struct dntt_type_block dblock; -}; - -/* Source line entry types. */ -enum slttype -{ - SLT_NORMAL, - SLT_SRCFILE, - SLT_MODULE, - SLT_FUNCTION, - SLT_ENTRY, - SLT_BEGIN, - SLT_END, - SLT_WITH, - SLT_EXIT, - SLT_ASSIST, - SLT_MARKER, - SLT_CLASS_SCOPE, - SLT_INLN, - SLT_NORMAL_OFFSET, -}; - -/* A normal source line entry. Simply provides a mapping of a source - line number to a code address. - - SLTDESC will always be SLT_NORMAL or SLT_EXIT. */ - -struct slt_normal -{ - unsigned int sltdesc: 4; - unsigned int line: 28; - CORE_ADDR address; -}; - -struct slt_normal_off -{ - unsigned int sltdesc: 4; - unsigned int offset: 6; - unsigned int line: 22; - CORE_ADDR address; -}; - -/* A special source line entry. Provides a mapping of a declaration - to a line number. These entries point back into the DNTT which - references them. */ - -struct slt_special -{ - unsigned int sltdesc: 4; - unsigned int line: 28; - dnttpointer backptr; -}; - -/* Used to describe nesting. - - For nested languages, an slt_assist entry must follow each SLT_FUNC - entry in the SLT. The address field will point forward to the - first slt_normal entry within the function's scope. */ - -struct slt_assist -{ - unsigned int sltdesc: 4; - unsigned int unused: 28; - sltpointer address; -}; - -struct slt_generic -{ - unsigned int word[2]; -}; - -union sltentry -{ - struct slt_normal snorm; - struct slt_normal_off snormoff; - struct slt_special sspec; - struct slt_assist sasst; - struct slt_generic sgeneric; -}; - -/* $LINES$ declarations - This is the line table used for optimized code, which is only present - in the new $PROGRAM_INFO$ debug space. */ - -#define DST_LN_ESCAPE_FLAG1 15 -#define DST_LN_ESCAPE_FLAG2 14 -#define DST_LN_CTX_SPEC1 13 -#define DST_LN_CTX_SPEC2 12 - -/* Escape function codes: */ - -typedef enum -{ - dst_ln_pad, /* pad byte */ - dst_ln_escape_1, /* reserved */ - dst_ln_dpc1_dln1, /* 1 byte line delta, 1 byte pc delta */ - dst_ln_dpc2_dln2, /* 2 bytes line delta, 2 bytes pc delta */ - dst_ln_pc4_ln4, /* 4 bytes ABSOLUTE line number, 4 bytes ABSOLUTE pc */ - dst_ln_dpc0_dln1, /* 1 byte line delta, pc delta = 0 */ - dst_ln_ln_off_1, /* statement escape, stmt # = 1 (2nd stmt on line) */ - dst_ln_ln_off, /* statement escape, stmt # = next byte */ - dst_ln_entry, /* entry escape, next byte is entry number */ - dst_ln_exit, /* exit escape */ - dst_ln_stmt_end, /* gap escape, 4 bytes pc delta */ - dst_ln_stmt_cp, /* current stmt is a critical point */ - dst_ln_escape_12, /* reserved */ - dst_ln_escape_13, /* this is an exception site record */ - dst_ln_nxt_byte, /* next byte contains the real escape code */ - dst_ln_end, /* end escape, final entry follows */ - dst_ln_escape1_END_OF_ENUM -} -dst_ln_escape1_t; - -typedef enum -{ - dst_ln_ctx_1, /* next byte describes context switch with 5-bit */ - /* index into the image table and 3-bit run length. */ - /* If run length is 0, end with another cxt specifier or ctx_end */ - dst_ln_ctx_2, /* next 2 bytes switch context: 13 bit index, 3 bit run length */ - dst_ln_ctx_4, /* next 4 bytes switch context: 29 bit index, 3 bit run length */ - dst_ln_ctx_end, /* end current context */ - dst_ln_col_run_1, /* next byte is column position of start of next statement, */ - /* following byte is length of statement */ - dst_ln_col_run_2, /* next 2 bytes is column position of start of next statement, */ - /* following 2 bytes is length of statement */ - dst_ln_init_base1, /* next 4 bytes are absolute PC, followed by 1 byte of line number */ - dst_ln_init_base2, /* next 4 bytes are absolute PC, followed by 2 bytes of line number */ - dst_ln_init_base3, /* next 4 bytes are absolute PC, followed by 3 bytes of line number */ - dst_ln_escape2_END_OF_ENUM -} -dst_ln_escape2_t; - -typedef union -{ - struct - { - unsigned int pc_delta : 4; /* 4 bit pc delta */ - int ln_delta : 4; /* 4 bit line number delta */ - } - delta; - - struct - { - unsigned int esc_flag : 4; /* alias for pc_delta */ - unsigned int esc_code : 4; /* escape function code (dst_ln_escape1_t, or ...2_t */ - } - esc; - - struct - { - unsigned int esc_flag : 4; /* dst_ln_ctx_spec1, or dst_ln_ctx_spec2 */ - unsigned int run_length : 2; - unsigned int ctx_index : 2; /* ...spec2 contains index; ...spec1, index - 4 */ - } - ctx_spec; - - char sdata; /* signed data byte */ - unsigned char udata; /* unsigned data byte */ -} -dst_ln_entry_t, - * dst_ln_entry_ptr_t; - -/* Warning: although the above union occupies only 1 byte the compiler treats - it as having size 2 (the minimum size of a struct). Therefore a sequence of - dst_ln_entry_t's cannot be described as an array, and walking through such a - sequence requires convoluted code such as - ln_ptr = (dst_ln_entry_ptr_t) (char*) ln_ptr + 1 - We regret the inconvenience. */ - -/* Structure for interpreting the byte following a dst_ln_ctx1 entry. */ -typedef struct -{ - unsigned int ctx1_index : 5; /* 5 bit index into context table */ - unsigned int ctx1_run_length : 3; /* 3 bit run length */ -} dst_ln_ctx1_t, - *dst_ln_ctx1_ptr_t; - -/* Structure for interpreting the bytes following a dst_ln_ctx2 entry. */ -typedef struct -{ - unsigned int ctx2_index : 13; /* 13 bit index into context table */ - unsigned int ctx2_run_length : 3; /* 3 bit run length */ -} dst_ln_ctx2_t, - *dst_ln_ctx2_ptr_t; - -/* Structure for interpreting the bytes following a dst_ln_ctx4 entry. */ -typedef struct -{ - unsigned int ctx4_index : 29; /* 29 bit index into context table */ - unsigned int ctx4_run_length : 3; /* 3 bit run length */ -} dst_ln_ctx4_t, - *dst_ln_ctx4_ptr_t; - - -/* PXDB definitions. - - PXDB is a post-processor which takes the executable file - and massages the debug information so that the debugger may - start up and run more efficiently. Some of the tasks - performed by PXDB are: - - o Remove duplicate global type and variable information - from the GNTT, - - o Append the GNTT onto the end of the LNTT and place both - back in the LNTT section, - - o Build quick look-up tables (description follows) for - files, procedures, modules, and paragraphs (for Cobol), - placing these in the GNTT section, - - o Reconstruct the header appearing in the header section - to access this information. - - The "quick look-up" tables are in the $GNTT$ sub-space, in - the following order: - - Procedures -sorted by address - Source files -sorted by address (of the - generated code from routines) - Modules -sorted by address - Classes - - Address Alias -sorted by index - Object IDs -sorted by object identifier - - Most quick entries have (0-based) indices into the LNTT tables to - the full entries for the item it describes. - - The post-PXDB header is in the $HEADER$ sub-space. Alas, it - occurs in different forms, depending on the optimization level - in the compilation step and whether PXDB was run or not. The - worst part is the forms aren't self-describing, so we'll have - to grovel in the bits to figure out what kind we're looking at - (see hp_get_header in hp-psymtab-read.c). */ - -/* PXDB versions. */ - -#define PXDB_VERSION_CPLUSPLUS 1 -#define PXDB_VERSION_7_4 2 -#define PXDB_VERSION_CPP_30 3 -#define PXDB_VERSION_DDE_3_2A 4 -#define PXDB_VERSION_DDE_3_2 5 -#define PXDB_VERSION_DDE_4_0 6 - -#define PXDB_VERSION_2_1 1 - -/* Header version for the case that there is no DOC info - but the executable has been processed by pxdb (the easy - case, from "cc -g"). */ - -typedef struct PXDB_struct -{ - int pd_entries; /* # of entries in function look-up table */ - int fd_entries; /* # of entries in file look-up table */ - int md_entries; /* # of entries in module look-up table */ - unsigned int pxdbed : 1; /* 1 => file has been preprocessed */ - unsigned int bighdr : 1; /* 1 => this header contains 'time' word */ - unsigned int sa_header : 1;/* 1 => created by SA version of pxdb */ - /* used for version check in xdb */ - unsigned int inlined: 1; /* one or more functions have been inlined */ - unsigned int spare:12; - short version; /* pxdb header version */ - int globals; /* index into the DNTT where GNTT begins */ - unsigned int time; /* modify time of file before being pxdbed */ - int pg_entries; /* # of entries in label look-up table */ - int functions; /* actual number of functions */ - int files; /* actual number of files */ - int cd_entries; /* # of entries in class look-up table */ - int aa_entries; /* # of entries in addr alias look-up table */ - int oi_entries; /* # of entries in object id look-up table */ -} PXDB_header, *PXDB_header_ptr; - -/* Header version for the case that there is no DOC info and the - executable has NOT been processed by pxdb. */ - -typedef struct XDB_header_struct -{ - long gntt_length; - long lntt_length; - long slt_length; - long vt_length; - long xt_length; -} XDB_header; - -/* Header version for the case that there is DOC info and the - executable has been processed by pxdb. */ - -typedef struct DOC_info_PXDB_header_struct -{ - unsigned int xdb_header: 1; /* bit set if this is post-3.1 xdb */ - unsigned int doc_header: 1; /* bit set if this is doc-style header */ - unsigned int version: 8; /* version of pxdb see defines - PXDB_VERSION_* in this file. */ - unsigned int reserved_for_flags: 16;/* for future use; -- must be - set to zero. */ - unsigned int has_aux_pd_table: 1; /* $GNTT$ has aux PD table */ - unsigned int has_expr_table: 1; /* space has $EXPR$ */ - unsigned int has_range_table: 1; /* space has $RANGE$ */ - unsigned int has_context_table: 1; /* space has $SRC_CTXT$ */ - unsigned int has_lines_table: 1; /* space contains a $LINES$ - subspace for line tables. */ - unsigned int has_lt_offset_map: 1; /* space contains an lt_offset - subspace for line table mapping. */ - /* The following fields are the same as those in the PXDB_header in $DEBUG$ */ - int pd_entries; /* # of entries in function look-up table */ - int fd_entries; /* # of entries in file look-up table */ - int md_entries; /* # of entries in module look-up table */ - unsigned int pxdbed : 1; /* 1 => file has been preprocessed */ - unsigned int bighdr : 1; /* 1 => this header contains 'time' word */ - unsigned int sa_header : 1;/* 1 => created by SA version of pxdb */ - /* used for version check in xdb */ - unsigned int inlined: 1; /* one or more functions have been inlined */ - unsigned int spare : 28; - int globals; /* index into the DNTT where GNTT begins */ - unsigned int time; /* modify time of file before being pxdbed */ - int pg_entries; /* # of entries in label look-up table */ - int functions; /* actual number of functions */ - int files; /* actual number of files */ - int cd_entries; /* # of entries in class look-up table */ - int aa_entries; /* # of entries in addr alias look-up table */ - int oi_entries; /* # of entries in object id look-up table */ -} DOC_info_PXDB_header; - -/* Header version for the case that there is DOC info and the - executable has NOT been processed by pxdb. */ - -typedef struct DOC_info_header_struct -{ - unsigned int xdb_header: 1; /* bit set if this is post-3.1 xdb */ - unsigned int doc_header: 1; /* bit set if this is doc-style header*/ - unsigned int version: 8; /* version of debug/header - format. For 10.0 the value - will be 1. For "Davis" the value is 2. */ - unsigned int reserved_for_flags: 18; /* for future use; -- must be set to zero. */ - unsigned int has_range_table: 1; /* space contains a $RANGE$ subspace for variable ranges. */ - unsigned int has_context_table: 1; /* space contains a $CTXT$ subspace for context/inline table. */ - unsigned int has_lines_table: 1; /* space contains a $LINES$ subspace for line tables. */ - unsigned int has_lt_offset_map: 1; /* space contains an lt_offset subspace for line table mapping. */ - - long gntt_length; /* same as old header */ - long lntt_length; /* same as old header */ - long slt_length; /* same as old header */ - long vt_length; /* same as old header */ - long xt_length; /* same as old header */ - long ctxt_length; /* present only if version >= 2 */ - long range_length; /* present only if version >= 2 */ - long expr_length; /* present only if version >= 2 */ - -} DOC_info_header; - -typedef union GenericDebugHeader_union -{ - PXDB_header no_doc; - DOC_info_PXDB_header doc; - XDB_header no_pxdb_no_doc; - DOC_info_header no_pxdb_doc; -} GenericDebugHeader; - - -/* Procedure Descriptor: - An element of the procedure quick look-up table. */ - -typedef struct quick_procedure -{ - long isym; /* 0-based index of first symbol - for procedure in $LNTT$, - i.e. the procedure itself. */ - CORE_ADDR adrStart; /* memory adr of start of proc */ - CORE_ADDR adrEnd; /* memory adr of end of proc */ - char *sbAlias; /* alias name of procedure */ - char *sbProc; /* real name of procedure */ - CORE_ADDR adrBp; /* address of entry breakpoint */ - CORE_ADDR adrExitBp; /* address of exit breakpoint */ - int icd; /* member of this class (index) */ - unsigned int ipd; /* index of template for this */ - /* function (index) */ - unsigned int unused: 5; - unsigned int no_lt_offset: 1;/* no entry in lt_offset table */ - unsigned int fTemplate: 1; /* function template */ - unsigned int fExpansion: 1; /* function expansion */ - unsigned int linked : 1; /* linked with other expansions */ - unsigned int duplicate: 1; /* clone of another procedure */ - unsigned int overloaded:1; /* overloaded function */ - unsigned int member: 1; /* class member function */ - unsigned int constructor:1; /* constructor function */ - unsigned int destructor:1; /* destructor function */ - unsigned int Static: 1; /* static function */ - unsigned int Virtual: 1; /* virtual function */ - unsigned int constant: 1; /* constant function */ - unsigned int pure: 1; /* pure (virtual) function */ - unsigned int language: 4; /* procedure's language */ - unsigned int inlined: 1; /* function has been inlined */ - unsigned int Operator: 1; /* operator function */ - unsigned int stub: 1; /* bodyless function */ - unsigned int optimize: 2; /* optimization level */ - unsigned int level: 5; /* nesting level (top=0) */ -} quick_procedure_entry, *quick_procedure_entry_ptr; - -/* Source File Descriptor: - An element of the source file quick look-up table. */ - -typedef struct quick_source -{ - long isym; /* 0-based index in $LNTT$ of - first symbol for this file. */ - CORE_ADDR adrStart; /* mem adr of start of file's code */ - CORE_ADDR adrEnd; /* mem adr of end of file's code */ - char *sbFile; /* name of source file */ - unsigned int fHasDecl: 1; /* do we have a .d file? */ - unsigned int fWarned: 1; /* have warned about age problems? */ - unsigned int fSrcfile: 1; /* 0 => include 1=> source */ - unsigned short ilnMac; /* lines in file (0 if don't know) */ - int ipd; /* 0-based index of first procedure - in this file, in the quick - look-up table of procedures. */ - unsigned int *rgLn; /* line pointer array, if any */ -} quick_file_entry, *quick_file_entry_ptr; - -/* Module Descriptor: - An element of the module quick reference table. */ - -typedef struct quick_module -{ - long isym; /* 0-based index of first - symbol for module. */ - CORE_ADDR adrStart; /* adr of start of mod. */ - CORE_ADDR adrEnd; /* adr of end of mod. */ - char *sbAlias; /* alias name of module */ - char *sbMod; /* real name of module */ - unsigned int imports: 1; /* module have any imports? */ - unsigned int vars_in_front: 1; /* module globals in front? */ - unsigned int vars_in_gaps: 1; /* module globals in gaps? */ - unsigned int language: 4; /* type of language */ - unsigned int unused : 25; - unsigned int unused2; /* space for future stuff */ -} quick_module_entry, *quick_module_entry_ptr; - -/* Auxiliary Procedure Descriptor: - An element of the auxiliary procedure quick look-up table. */ - -typedef struct quick_aux_procedure -{ - long isym_inln; /* start on inline list for proc */ - long spare; -} quick_aux_procedure_entry, *quick_aux_procedure_entry_ptr; - -/* Paragraph Descriptor: - An element of the paragraph quick look-up table. */ - -typedef struct quick_paragraph -{ - long isym; /* first symbol for label (index) */ - CORE_ADDR adrStart; /* memory adr of start of label */ - CORE_ADDR adrEnd; /* memory adr of end of label */ - char *sbLab; /* name of label */ - unsigned int inst; /* Used in xdb to store inst @ bp */ - unsigned int sect: 1; /* true = section, false = parag. */ - unsigned int unused: 31; /* future use */ -} quick_paragraph_entry, *quick_paragraph_entry_ptr; - -/* Class Descriptor: - An element of the class quick look-up table. */ - -typedef struct quick_class -{ - char *sbClass; /* name of class */ - long isym; /* class symbol (tag) */ - unsigned int type : 2; /* 0=class, 1=union, 2=struct */ - unsigned int fTemplate : 1;/* class template */ - unsigned int expansion : 1;/* template expansion */ - unsigned int unused :28; - sltpointer lowscope; /* beginning of defined scope */ - sltpointer hiscope; /* end of defined scope */ -} quick_class_entry, *quick_class_entry_ptr; - -/* Address Alias Entry - An element of the address alias quick look-up table. */ - -typedef struct quick_alias -{ - CORE_ADDR low; - CORE_ADDR high; - int index; - unsigned int unused : 31; - unsigned int alternate : 1; /* alternate unnamed aliases? */ -} quick_alias_entry, *quick_alias_entry_ptr; - -/* Object Identification Entry - An element of the object identification quick look-up table. */ - -typedef struct quick_obj_ID -{ - CORE_ADDR obj_ident; /* class identifier */ - long isym; /* class symbol */ - long offset; /* offset to object start */ -} quick_obj_ID_entry, *quick_obj_ID_entry_ptr; - -#endif /* HP_SYMTAB_INCLUDED */ diff --git a/include/iconv.h b/include/iconv.h deleted file mode 100644 index 37feb88..0000000 --- a/include/iconv.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy, SoftMine Corporation. - * Rights transferred to Franklin Electronic Publishers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#ifndef _ICONV_H_ -#define _ICONV_H_ - -#include <_ansi.h> -#include -#include -#include - -/* iconv_t: charset conversion descriptor type */ -typedef _iconv_t iconv_t; - -_BEGIN_STD_C - -#ifndef _REENT_ONLY -iconv_t -iconv_open (const char *, const char *); - -size_t -iconv (iconv_t, char **__restrict, size_t *__restrict, - char **__restrict, size_t *__restrict); - -int -iconv_close (iconv_t); -#endif - -iconv_t -_iconv_open_r (struct _reent *, const char *, const char *); - -size_t -_iconv_r (struct _reent *, iconv_t, const char **, - size_t *, char **, size_t *); - -int -_iconv_close_r (struct _reent *, iconv_t); - -_END_STD_C - -#endif /* #ifndef _ICONV_H_ */ diff --git a/include/ieee.h b/include/ieee.h deleted file mode 100644 index 72fcad4..0000000 --- a/include/ieee.h +++ /dev/null @@ -1,165 +0,0 @@ -/* IEEE Standard 695-1980 "Universal Format for Object Modules" header file - - Copyright 2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. - - Contributed by Cygnus Support. */ - -#define N_W_VARIABLES 8 -#define Module_Beginning 0xe0 - -typedef struct ieee_module - { - char *processor; - char *module_name; - } -ieee_module_begin_type; - -#define Address_Descriptor 0xec -typedef struct ieee_address - { - bfd_vma number_of_bits_mau; - bfd_vma number_of_maus_in_address; - - unsigned char byte_order; -#define IEEE_LITTLE 0xcc -#define IEEE_BIG 0xcd - } -ieee_address_descriptor_type; - -typedef union ieee_w_variable - { - file_ptr offset[N_W_VARIABLES]; - - struct - { - file_ptr extension_record; - file_ptr environmental_record; - file_ptr section_part; - file_ptr external_part; - file_ptr debug_information_part; - file_ptr data_part; - file_ptr trailer_part; - file_ptr me_record; - } - r; - } -ieee_w_variable_type; - -typedef enum ieee_record - { - ieee_number_start_enum = 0x00, - ieee_number_end_enum=0x7f, - ieee_number_repeat_start_enum = 0x80, - ieee_number_repeat_end_enum = 0x88, - ieee_number_repeat_4_enum = 0x84, - ieee_number_repeat_3_enum = 0x83, - ieee_number_repeat_2_enum = 0x82, - ieee_number_repeat_1_enum = 0x81, - ieee_module_beginning_enum = 0xe0, - ieee_module_end_enum = 0xe1, - ieee_extension_length_1_enum = 0xde, - ieee_extension_length_2_enum = 0xdf, - ieee_section_type_enum = 0xe6, - ieee_section_alignment_enum = 0xe7, - ieee_external_symbol_enum = 0xe8, - ieee_comma = 0x90, - ieee_external_reference_enum = 0xe9, - ieee_set_current_section_enum = 0xe5, - ieee_address_descriptor_enum = 0xec, - ieee_load_constant_bytes_enum = 0xed, - ieee_load_with_relocation_enum = 0xe4, - - ieee_variable_A_enum = 0xc1, - ieee_variable_B_enum = 0xc2, - ieee_variable_C_enum = 0xc3, - ieee_variable_D_enum = 0xc4, - ieee_variable_E_enum = 0xc5, - ieee_variable_F_enum = 0xc6, - ieee_variable_G_enum = 0xc7, - ieee_variable_H_enum = 0xc8, - ieee_variable_I_enum = 0xc9, - ieee_variable_J_enum = 0xca, - ieee_variable_K_enum = 0xcb, - ieee_variable_L_enum = 0xcc, - ieee_variable_M_enum = 0xcd, - ieee_variable_N_enum = 0xce, - ieee_variable_O_enum = 0xcf, - ieee_variable_P_enum = 0xd0, - ieee_variable_Q_enum = 0xd1, - ieee_variable_R_enum = 0xd2, - ieee_variable_S_enum = 0xd3, - ieee_variable_T_enum = 0xd4, - ieee_variable_U_enum = 0xd5, - ieee_variable_V_enum = 0xd6, - ieee_variable_W_enum = 0xd7, - ieee_variable_X_enum = 0xd8, - ieee_variable_Y_enum = 0xd9, - ieee_variable_Z_enum = 0xda, - ieee_function_plus_enum = 0xa5, - ieee_function_minus_enum = 0xa6, - ieee_function_signed_open_b_enum = 0xba, - ieee_function_signed_close_b_enum = 0xbb, - - ieee_function_unsigned_open_b_enum = 0xbc, - ieee_function_unsigned_close_b_enum = 0xbd, - - ieee_function_either_open_b_enum = 0xbe, - ieee_function_either_close_b_enum = 0xbf, - ieee_record_seperator_enum = 0xdb, - - ieee_e2_first_byte_enum = 0xe2, - ieee_section_size_enum = 0xe2d3, - ieee_physical_region_size_enum = 0xe2c1, - ieee_region_base_address_enum = 0xe2c2, - ieee_mau_size_enum = 0xe2c6, - ieee_m_value_enum = 0xe2cd, - ieee_section_base_address_enum = 0xe2cc, - ieee_asn_record_enum = 0xe2ce, - ieee_section_offset_enum = 0xe2d2, - ieee_value_starting_address_enum = 0xe2c7, - ieee_assign_value_to_variable_enum = 0xe2d7, - ieee_set_current_pc_enum = 0xe2d0, - ieee_value_record_enum = 0xe2c9, - ieee_nn_record = 0xf0, - ieee_at_record_enum = 0xf1, - ieee_ty_record_enum = 0xf2, - ieee_attribute_record_enum = 0xf1c9, - ieee_atn_record_enum = 0xf1ce, - ieee_external_reference_info_record_enum = 0xf1d8, - ieee_weak_external_reference_enum= 0xf4, - ieee_repeat_data_enum = 0xf7, - ieee_bb_record_enum = 0xf8, - ieee_be_record_enum = 0xf9 - } -ieee_record_enum_type; - -typedef struct ieee_section - { - unsigned int section_index; - unsigned int section_type; - char * section_name; - unsigned int parent_section_index; - unsigned int sibling_section_index; - unsigned int context_index; - } -ieee_section_type; - -#define IEEE_REFERENCE_BASE 11 -#define IEEE_PUBLIC_BASE 32 -#define IEEE_SECTION_NUMBER_BASE 1 - diff --git a/include/ieeefp.h b/include/ieeefp.h deleted file mode 100644 index 2d6421a..0000000 --- a/include/ieeefp.h +++ /dev/null @@ -1,295 +0,0 @@ -#ifndef _IEEE_FP_H_ -#define _IEEE_FP_H_ - -#include "_ansi.h" - -#include -#include - -_BEGIN_STD_C - -/* FIXME FIXME FIXME: - Neither of __ieee_{float,double}_shape_type seem to be used anywhere - except in libm/test. If that is the case, please delete these from here. - If that is not the case, please insert documentation here describing why - they're needed. */ - -#ifdef __IEEE_BIG_ENDIAN - -typedef union -{ - double value; - struct - { - unsigned int sign : 1; - unsigned int exponent: 11; - unsigned int fraction0:4; - unsigned int fraction1:16; - unsigned int fraction2:16; - unsigned int fraction3:16; - - } number; - struct - { - unsigned int sign : 1; - unsigned int exponent: 11; - unsigned int quiet:1; - unsigned int function0:3; - unsigned int function1:16; - unsigned int function2:16; - unsigned int function3:16; - } nan; - struct - { - unsigned long msw; - unsigned long lsw; - } parts; - long aslong[2]; -} __ieee_double_shape_type; - -#elif defined __IEEE_LITTLE_ENDIAN - -typedef union -{ - double value; - struct - { -#ifdef __SMALL_BITFIELDS - unsigned int fraction3:16; - unsigned int fraction2:16; - unsigned int fraction1:16; - unsigned int fraction0: 4; -#else - unsigned int fraction1:32; - unsigned int fraction0:20; -#endif - unsigned int exponent :11; - unsigned int sign : 1; - } number; - struct - { -#ifdef __SMALL_BITFIELDS - unsigned int function3:16; - unsigned int function2:16; - unsigned int function1:16; - unsigned int function0:3; -#else - unsigned int function1:32; - unsigned int function0:19; -#endif - unsigned int quiet:1; - unsigned int exponent: 11; - unsigned int sign : 1; - } nan; - struct - { - unsigned long lsw; - unsigned long msw; - } parts; - - long aslong[2]; - -} __ieee_double_shape_type; - -#endif /* __IEEE_LITTLE_ENDIAN */ - -#ifdef __IEEE_BIG_ENDIAN - -typedef union -{ - float value; - struct - { - unsigned int sign : 1; - unsigned int exponent: 8; - unsigned int fraction0: 7; - unsigned int fraction1: 16; - } number; - struct - { - unsigned int sign:1; - unsigned int exponent:8; - unsigned int quiet:1; - unsigned int function0:6; - unsigned int function1:16; - } nan; - long p1; - -} __ieee_float_shape_type; - -#elif defined __IEEE_LITTLE_ENDIAN - -typedef union -{ - float value; - struct - { - unsigned int fraction0: 7; - unsigned int fraction1: 16; - unsigned int exponent: 8; - unsigned int sign : 1; - } number; - struct - { - unsigned int function1:16; - unsigned int function0:6; - unsigned int quiet:1; - unsigned int exponent:8; - unsigned int sign:1; - } nan; - long p1; - -} __ieee_float_shape_type; - -#endif /* __IEEE_LITTLE_ENDIAN */ - -#ifndef _LDBL_EQ_DBL - -#ifndef LDBL_MANT_DIG -#error "LDBL_MANT_DIG not defined - should be found in float.h" - -#elif LDBL_MANT_DIG == DBL_MANT_DIG -#error "double and long double are the same size but LDBL_EQ_DBL is not defined" - -#elif LDBL_MANT_DIG == 53 -/* This happens when doubles are 32-bits and long doubles are 64-bits. */ -#define EXT_EXPBITS 11 -#define EXT_FRACHBITS 20 -#define EXT_FRACLBITS 32 -#define __ieee_ext_field_type unsigned long - -#elif LDBL_MANT_DIG == 64 -#define EXT_EXPBITS 15 -#define EXT_FRACHBITS 32 -#define EXT_FRACLBITS 32 -#define __ieee_ext_field_type unsigned int - -#elif LDBL_MANT_DIG == 65 -#define EXT_EXPBITS 15 -#define EXT_FRACHBITS 32 -#define EXT_FRACLBITS 32 -#define __ieee_ext_field_type unsigned int - -#elif LDBL_MANT_DIG == 112 -#define EXT_EXPBITS 15 -#define EXT_FRACHBITS 48 -#define EXT_FRACLBITS 64 -#define __ieee_ext_field_type unsigned long long - -#elif LDBL_MANT_DIG == 113 -#define EXT_EXPBITS 15 -#define EXT_FRACHBITS 48 -#define EXT_FRACLBITS 64 -#define __ieee_ext_field_type unsigned long long - -#else -#error Unsupported value for LDBL_MANT_DIG -#endif - -#define EXT_EXP_INFNAN ((1 << EXT_EXPBITS) - 1) /* 32767 */ -#define EXT_EXP_BIAS ((1 << (EXT_EXPBITS - 1)) - 1) /* 16383 */ -#define EXT_FRACBITS (EXT_FRACLBITS + EXT_FRACHBITS) - -typedef struct ieee_ext -{ - __ieee_ext_field_type ext_fracl : EXT_FRACLBITS; - __ieee_ext_field_type ext_frach : EXT_FRACHBITS; - __ieee_ext_field_type ext_exp : EXT_EXPBITS; - __ieee_ext_field_type ext_sign : 1; -} ieee_ext; - -typedef union ieee_ext_u -{ - long double extu_ld; - struct ieee_ext extu_ext; -} ieee_ext_u; - -#endif /* ! _LDBL_EQ_DBL */ - - -/* FLOATING ROUNDING */ - -typedef int fp_rnd; -#define FP_RN 0 /* Round to nearest */ -#define FP_RM 1 /* Round down */ -#define FP_RP 2 /* Round up */ -#define FP_RZ 3 /* Round to zero (trunate) */ - -fp_rnd fpgetround (void); -fp_rnd fpsetround (fp_rnd); - -/* EXCEPTIONS */ - -typedef int fp_except; -#define FP_X_INV 0x10 /* Invalid operation */ -#define FP_X_DX 0x80 /* Divide by zero */ -#define FP_X_OFL 0x04 /* Overflow exception */ -#define FP_X_UFL 0x02 /* Underflow exception */ -#define FP_X_IMP 0x01 /* imprecise exception */ - -fp_except fpgetmask (void); -fp_except fpsetmask (fp_except); -fp_except fpgetsticky (void); -fp_except fpsetsticky (fp_except); - -/* INTEGER ROUNDING */ - -typedef int fp_rdi; -#define FP_RDI_TOZ 0 /* Round to Zero */ -#define FP_RDI_RD 1 /* Follow float mode */ - -fp_rdi fpgetroundtoi (void); -fp_rdi fpsetroundtoi (fp_rdi); - -#define __IEEE_DBL_EXPBIAS 1023 -#define __IEEE_FLT_EXPBIAS 127 - -#define __IEEE_DBL_EXPLEN 11 -#define __IEEE_FLT_EXPLEN 8 - - -#define __IEEE_DBL_FRACLEN (64 - (__IEEE_DBL_EXPLEN + 1)) -#define __IEEE_FLT_FRACLEN (32 - (__IEEE_FLT_EXPLEN + 1)) - -#define __IEEE_DBL_MAXPOWTWO ((double)(1L << 32 - 2) * (1L << (32-11) - 32 + 1)) -#define __IEEE_FLT_MAXPOWTWO ((float)(1L << (32-8) - 1)) - -#define __IEEE_DBL_NAN_EXP 0x7ff -#define __IEEE_FLT_NAN_EXP 0xff - -#ifdef __ieeefp_isnanf -#define isnanf(x) __ieeefp_isnanf(x) -#endif - -#ifdef __ieeefp_isinff -#define isinff(x) __ieeefp_isinff(x) -#endif - -#ifdef __ieeefp_finitef -#define finitef(x) __ieeefp_finitef(x) -#endif - -#ifdef _DOUBLE_IS_32BITS -#undef __IEEE_DBL_EXPBIAS -#define __IEEE_DBL_EXPBIAS __IEEE_FLT_EXPBIAS - -#undef __IEEE_DBL_EXPLEN -#define __IEEE_DBL_EXPLEN __IEEE_FLT_EXPLEN - -#undef __IEEE_DBL_FRACLEN -#define __IEEE_DBL_FRACLEN __IEEE_FLT_FRACLEN - -#undef __IEEE_DBL_MAXPOWTWO -#define __IEEE_DBL_MAXPOWTWO __IEEE_FLT_MAXPOWTWO - -#undef __IEEE_DBL_NAN_EXP -#define __IEEE_DBL_NAN_EXP __IEEE_FLT_NAN_EXP - -#undef __ieee_double_shape_type -#define __ieee_double_shape_type __ieee_float_shape_type - -#endif /* _DOUBLE_IS_32BITS */ - -_END_STD_C - -#endif /* _IEEE_FP_H_ */ diff --git a/include/inttypes.h b/include/inttypes.h deleted file mode 100644 index 417ff22..0000000 --- a/include/inttypes.h +++ /dev/null @@ -1,345 +0,0 @@ -/* - * Copyright (c) 2004, 2005 by - * Ralf Corsepius, Ulm/Germany. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -/** - * @file inttypes.h - */ - -#ifndef _INTTYPES_H -#define _INTTYPES_H - -#include -#include -#include -#include "_ansi.h" -#include -#define __need_wchar_t -#include - -#if __BSD_VISIBLE -#include -#endif - -#define __STRINGIFY(a) #a - -/* 8-bit types */ -#define __PRI8(x) __INT8 __STRINGIFY(x) -#define __PRI8LEAST(x) __LEAST8 __STRINGIFY(x) -#define __PRI8FAST(x) __FAST8 __STRINGIFY(x) - -/* NOTICE: scanning 8-bit types requires use of the hh specifier - * which is only supported on newlib platforms that - * are built with C99 I/O format support enabled. If the flag in - * newlib.h hasn't been set during configuration to indicate this, the 8-bit - * scanning format macros are disabled here as they result in undefined - * behaviour which can include memory overwrite. Overriding the flag after the - * library has been built is not recommended as it will expose the underlying - * undefined behaviour. - */ - -#if defined(_WANT_IO_C99_FORMATS) - #define __SCN8(x) __INT8 __STRINGIFY(x) - #define __SCN8LEAST(x) __LEAST8 __STRINGIFY(x) - #define __SCN8FAST(x) __FAST8 __STRINGIFY(x) -#endif /* _WANT_IO_C99_FORMATS */ - - -#define PRId8 __PRI8(d) -#define PRIi8 __PRI8(i) -#define PRIo8 __PRI8(o) -#define PRIu8 __PRI8(u) -#define PRIx8 __PRI8(x) -#define PRIX8 __PRI8(X) - -/* Macros below are only enabled for a newlib built with C99 I/O format support. */ -#if defined(_WANT_IO_C99_FORMATS) - -#define SCNd8 __SCN8(d) -#define SCNi8 __SCN8(i) -#define SCNo8 __SCN8(o) -#define SCNu8 __SCN8(u) -#define SCNx8 __SCN8(x) - -#endif /* _WANT_IO_C99_FORMATS */ - - -#define PRIdLEAST8 __PRI8LEAST(d) -#define PRIiLEAST8 __PRI8LEAST(i) -#define PRIoLEAST8 __PRI8LEAST(o) -#define PRIuLEAST8 __PRI8LEAST(u) -#define PRIxLEAST8 __PRI8LEAST(x) -#define PRIXLEAST8 __PRI8LEAST(X) - -/* Macros below are only enabled for a newlib built with C99 I/O format support. */ -#if defined(_WANT_IO_C99_FORMATS) - - #define SCNdLEAST8 __SCN8LEAST(d) - #define SCNiLEAST8 __SCN8LEAST(i) - #define SCNoLEAST8 __SCN8LEAST(o) - #define SCNuLEAST8 __SCN8LEAST(u) - #define SCNxLEAST8 __SCN8LEAST(x) - -#endif /* _WANT_IO_C99_FORMATS */ - -#define PRIdFAST8 __PRI8FAST(d) -#define PRIiFAST8 __PRI8FAST(i) -#define PRIoFAST8 __PRI8FAST(o) -#define PRIuFAST8 __PRI8FAST(u) -#define PRIxFAST8 __PRI8FAST(x) -#define PRIXFAST8 __PRI8FAST(X) - -/* Macros below are only enabled for a newlib built with C99 I/O format support. */ -#if defined(_WANT_IO_C99_FORMATS) - - #define SCNdFAST8 __SCN8FAST(d) - #define SCNiFAST8 __SCN8FAST(i) - #define SCNoFAST8 __SCN8FAST(o) - #define SCNuFAST8 __SCN8FAST(u) - #define SCNxFAST8 __SCN8FAST(x) - -#endif /* _WANT_IO_C99_FORMATS */ - -/* 16-bit types */ -#define __PRI16(x) __INT16 __STRINGIFY(x) -#define __PRI16LEAST(x) __LEAST16 __STRINGIFY(x) -#define __PRI16FAST(x) __FAST16 __STRINGIFY(x) -#define __SCN16(x) __INT16 __STRINGIFY(x) -#define __SCN16LEAST(x) __LEAST16 __STRINGIFY(x) -#define __SCN16FAST(x) __FAST16 __STRINGIFY(x) - - -#define PRId16 __PRI16(d) -#define PRIi16 __PRI16(i) -#define PRIo16 __PRI16(o) -#define PRIu16 __PRI16(u) -#define PRIx16 __PRI16(x) -#define PRIX16 __PRI16(X) - -#define SCNd16 __SCN16(d) -#define SCNi16 __SCN16(i) -#define SCNo16 __SCN16(o) -#define SCNu16 __SCN16(u) -#define SCNx16 __SCN16(x) - - -#define PRIdLEAST16 __PRI16LEAST(d) -#define PRIiLEAST16 __PRI16LEAST(i) -#define PRIoLEAST16 __PRI16LEAST(o) -#define PRIuLEAST16 __PRI16LEAST(u) -#define PRIxLEAST16 __PRI16LEAST(x) -#define PRIXLEAST16 __PRI16LEAST(X) - -#define SCNdLEAST16 __SCN16LEAST(d) -#define SCNiLEAST16 __SCN16LEAST(i) -#define SCNoLEAST16 __SCN16LEAST(o) -#define SCNuLEAST16 __SCN16LEAST(u) -#define SCNxLEAST16 __SCN16LEAST(x) - - -#define PRIdFAST16 __PRI16FAST(d) -#define PRIiFAST16 __PRI16FAST(i) -#define PRIoFAST16 __PRI16FAST(o) -#define PRIuFAST16 __PRI16FAST(u) -#define PRIxFAST16 __PRI16FAST(x) -#define PRIXFAST16 __PRI16FAST(X) - -#define SCNdFAST16 __SCN16FAST(d) -#define SCNiFAST16 __SCN16FAST(i) -#define SCNoFAST16 __SCN16FAST(o) -#define SCNuFAST16 __SCN16FAST(u) -#define SCNxFAST16 __SCN16FAST(x) - -/* 32-bit types */ -#define __PRI32(x) __INT32 __STRINGIFY(x) -#define __SCN32(x) __INT32 __STRINGIFY(x) -#define __PRI32LEAST(x) __LEAST32 __STRINGIFY(x) -#define __SCN32LEAST(x) __LEAST32 __STRINGIFY(x) -#define __PRI32FAST(x) __FAST32 __STRINGIFY(x) -#define __SCN32FAST(x) __FAST32 __STRINGIFY(x) - -#define PRId32 __PRI32(d) -#define PRIi32 __PRI32(i) -#define PRIo32 __PRI32(o) -#define PRIu32 __PRI32(u) -#define PRIx32 __PRI32(x) -#define PRIX32 __PRI32(X) - -#define SCNd32 __SCN32(d) -#define SCNi32 __SCN32(i) -#define SCNo32 __SCN32(o) -#define SCNu32 __SCN32(u) -#define SCNx32 __SCN32(x) - - -#define PRIdLEAST32 __PRI32LEAST(d) -#define PRIiLEAST32 __PRI32LEAST(i) -#define PRIoLEAST32 __PRI32LEAST(o) -#define PRIuLEAST32 __PRI32LEAST(u) -#define PRIxLEAST32 __PRI32LEAST(x) -#define PRIXLEAST32 __PRI32LEAST(X) - -#define SCNdLEAST32 __SCN32LEAST(d) -#define SCNiLEAST32 __SCN32LEAST(i) -#define SCNoLEAST32 __SCN32LEAST(o) -#define SCNuLEAST32 __SCN32LEAST(u) -#define SCNxLEAST32 __SCN32LEAST(x) - - -#define PRIdFAST32 __PRI32FAST(d) -#define PRIiFAST32 __PRI32FAST(i) -#define PRIoFAST32 __PRI32FAST(o) -#define PRIuFAST32 __PRI32FAST(u) -#define PRIxFAST32 __PRI32FAST(x) -#define PRIXFAST32 __PRI32FAST(X) - -#define SCNdFAST32 __SCN32FAST(d) -#define SCNiFAST32 __SCN32FAST(i) -#define SCNoFAST32 __SCN32FAST(o) -#define SCNuFAST32 __SCN32FAST(u) -#define SCNxFAST32 __SCN32FAST(x) - - -/* 64-bit types */ -#define __PRI64(x) __INT64 __STRINGIFY(x) -#define __SCN64(x) __INT64 __STRINGIFY(x) - -#define __PRI64LEAST(x) __LEAST64 __STRINGIFY(x) -#define __SCN64LEAST(x) __LEAST64 __STRINGIFY(x) -#define __PRI64FAST(x) __FAST64 __STRINGIFY(x) -#define __SCN64FAST(x) __FAST64 __STRINGIFY(x) - -#if __int64_t_defined -#define PRId64 __PRI64(d) -#define PRIi64 __PRI64(i) -#define PRIo64 __PRI64(o) -#define PRIu64 __PRI64(u) -#define PRIx64 __PRI64(x) -#define PRIX64 __PRI64(X) - -#define SCNd64 __SCN64(d) -#define SCNi64 __SCN64(i) -#define SCNo64 __SCN64(o) -#define SCNu64 __SCN64(u) -#define SCNx64 __SCN64(x) -#endif - -#if __int_least64_t_defined -#define PRIdLEAST64 __PRI64LEAST(d) -#define PRIiLEAST64 __PRI64LEAST(i) -#define PRIoLEAST64 __PRI64LEAST(o) -#define PRIuLEAST64 __PRI64LEAST(u) -#define PRIxLEAST64 __PRI64LEAST(x) -#define PRIXLEAST64 __PRI64LEAST(X) - -#define SCNdLEAST64 __SCN64LEAST(d) -#define SCNiLEAST64 __SCN64LEAST(i) -#define SCNoLEAST64 __SCN64LEAST(o) -#define SCNuLEAST64 __SCN64LEAST(u) -#define SCNxLEAST64 __SCN64LEAST(x) -#endif - -#if __int_fast64_t_defined -#define PRIdFAST64 __PRI64FAST(d) -#define PRIiFAST64 __PRI64FAST(i) -#define PRIoFAST64 __PRI64FAST(o) -#define PRIuFAST64 __PRI64FAST(u) -#define PRIxFAST64 __PRI64FAST(x) -#define PRIXFAST64 __PRI64FAST(X) - -#define SCNdFAST64 __SCN64FAST(d) -#define SCNiFAST64 __SCN64FAST(i) -#define SCNoFAST64 __SCN64FAST(o) -#define SCNuFAST64 __SCN64FAST(u) -#define SCNxFAST64 __SCN64FAST(x) -#endif - -/* max-bit types */ -#if __have_long64 -#define __PRIMAX(x) __STRINGIFY(l##x) -#define __SCNMAX(x) __STRINGIFY(l##x) -#elif __have_longlong64 -#define __PRIMAX(x) __STRINGIFY(ll##x) -#define __SCNMAX(x) __STRINGIFY(ll##x) -#else -#define __PRIMAX(x) __STRINGIFY(x) -#define __SCNMAX(x) __STRINGIFY(x) -#endif - -#define PRIdMAX __PRIMAX(d) -#define PRIiMAX __PRIMAX(i) -#define PRIoMAX __PRIMAX(o) -#define PRIuMAX __PRIMAX(u) -#define PRIxMAX __PRIMAX(x) -#define PRIXMAX __PRIMAX(X) - -#define SCNdMAX __SCNMAX(d) -#define SCNiMAX __SCNMAX(i) -#define SCNoMAX __SCNMAX(o) -#define SCNuMAX __SCNMAX(u) -#define SCNxMAX __SCNMAX(x) - -/* ptr types */ -#if defined (_INTPTR_EQ_LONGLONG) -# define __PRIPTR(x) __STRINGIFY(ll##x) -# define __SCNPTR(x) __STRINGIFY(ll##x) -#elif defined (_INTPTR_EQ_LONG) -# define __PRIPTR(x) __STRINGIFY(l##x) -# define __SCNPTR(x) __STRINGIFY(l##x) -#else -# define __PRIPTR(x) __STRINGIFY(x) -# define __SCNPTR(x) __STRINGIFY(x) -#endif - -#define PRIdPTR __PRIPTR(d) -#define PRIiPTR __PRIPTR(i) -#define PRIoPTR __PRIPTR(o) -#define PRIuPTR __PRIPTR(u) -#define PRIxPTR __PRIPTR(x) -#define PRIXPTR __PRIPTR(X) - -#define SCNdPTR __SCNPTR(d) -#define SCNiPTR __SCNPTR(i) -#define SCNoPTR __SCNPTR(o) -#define SCNuPTR __SCNPTR(u) -#define SCNxPTR __SCNPTR(x) - - -typedef struct { - intmax_t quot; - intmax_t rem; -} imaxdiv_t; - -struct _reent; - -#ifdef __cplusplus -extern "C" { -#endif - -extern intmax_t imaxabs(intmax_t); -extern imaxdiv_t imaxdiv(intmax_t __numer, intmax_t __denomer); -extern intmax_t strtoimax(const char *__restrict, char **__restrict, int); -extern intmax_t _strtoimax_r(struct _reent *, const char *__restrict, char **__restrict, int); -extern uintmax_t strtoumax(const char *__restrict, char **__restrict, int); -extern uintmax_t _strtoumax_r(struct _reent *, const char *__restrict, char **__restrict, int); -extern intmax_t wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int); -extern intmax_t _wcstoimax_r(struct _reent *, const wchar_t *__restrict, wchar_t **__restrict, int); -extern uintmax_t wcstoumax(const wchar_t *__restrict, wchar_t **__restrict, int); -extern uintmax_t _wcstoumax_r(struct _reent *, const wchar_t *__restrict, wchar_t **__restrict, int); - -#if __BSD_VISIBLE -extern intmax_t strtoimax_l(const char *__restrict, char **_restrict, int, locale_t); -extern uintmax_t strtoumax_l(const char *__restrict, char **_restrict, int, locale_t); -extern intmax_t wcstoimax_l(const wchar_t *__restrict, wchar_t **_restrict, int, locale_t); -extern uintmax_t wcstoumax_l(const wchar_t *__restrict, wchar_t **_restrict, int, locale_t); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/langinfo.h b/include/langinfo.h deleted file mode 100644 index fcf986c..0000000 --- a/include/langinfo.h +++ /dev/null @@ -1,332 +0,0 @@ -/*- - * Copyright (c) 2001 Alexey Zelkin - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: src/include/langinfo.h,v 1.5 2002/03/23 17:24:53 imp Exp $ - */ - -#ifndef _LANGINFO_H_ -#define _LANGINFO_H_ - -#include -#include -#if __POSIX_VISIBLE >= 200809 -#include -#endif - -#ifndef _NL_ITEM_DECLARED -typedef __nl_item nl_item; -#define _NL_ITEM_DECLARED -#endif - -enum -{ - /* POSIX and BSD defined items have to stick to the original values - to maintain backward compatibility. */ - _NL_CTYPE_CODESET_NAME = 0, /* codeset name */ -#define CODESET _NL_CTYPE_CODESET_NAME - D_T_FMT, /* string for formatting date and time */ -#define D_T_FMT D_T_FMT - D_FMT, /* date format string */ -#define D_FMT D_FMT - T_FMT, /* time format string */ -#define T_FMT T_FMT - T_FMT_AMPM, /* a.m. or p.m. time formatting string */ -#define T_FMT_AMPM T_FMT_AMPM - AM_STR, /* Ante Meridian affix */ -#define AM_STR AM_STR - PM_STR, /* Post Meridian affix */ -#define PM_STR PM_STR - -/* week day names */ - DAY_1, -#define DAY_1 DAY_1 - DAY_2, -#define DAY_2 DAY_2 - DAY_3, -#define DAY_3 DAY_3 - DAY_4, -#define DAY_4 DAY_4 - DAY_5, -#define DAY_5 DAY_5 - DAY_6, -#define DAY_6 DAY_6 - DAY_7, -#define DAY_7 DAY_7 - -/* abbreviated week day names */ - ABDAY_1, -#define ABDAY_1 ABDAY_1 - ABDAY_2, -#define ABDAY_2 ABDAY_2 - ABDAY_3, -#define ABDAY_3 ABDAY_3 - ABDAY_4, -#define ABDAY_4 ABDAY_4 - ABDAY_5, -#define ABDAY_5 ABDAY_5 - ABDAY_6, -#define ABDAY_6 ABDAY_6 - ABDAY_7, -#define ABDAY_7 ABDAY_7 - -/* month names */ - MON_1, -#define MON_1 MON_1 - MON_2, -#define MON_2 MON_2 - MON_3, -#define MON_3 MON_3 - MON_4, -#define MON_4 MON_4 - MON_5, -#define MON_5 MON_5 - MON_6, -#define MON_6 MON_6 - MON_7, -#define MON_7 MON_7 - MON_8, -#define MON_8 MON_8 - MON_9, -#define MON_9 MON_9 - MON_10, -#define MON_10 MON_10 - MON_11, -#define MON_11 MON_11 - MON_12, -#define MON_12 MON_12 - -/* abbreviated month names */ - ABMON_1, -#define ABMON_1 ABMON_1 - ABMON_2, -#define ABMON_2 ABMON_2 - ABMON_3, -#define ABMON_3 ABMON_3 - ABMON_4, -#define ABMON_4 ABMON_4 - ABMON_5, -#define ABMON_5 ABMON_5 - ABMON_6, -#define ABMON_6 ABMON_6 - ABMON_7, -#define ABMON_7 ABMON_7 - ABMON_8, -#define ABMON_8 ABMON_8 - ABMON_9, -#define ABMON_9 ABMON_9 - ABMON_10, -#define ABMON_10 ABMON_10 - ABMON_11, -#define ABMON_11 ABMON_11 - ABMON_12, -#define ABMON_12 ABMON_12 - - ERA, /* era description segments */ -#define ERA ERA - ERA_D_FMT, /* era date format string */ -#define ERA_D_FMT ERA_D_FMT - ERA_D_T_FMT, /* era date and time format string */ -#define ERA_D_T_FMT ERA_D_T_FMT - ERA_T_FMT, /* era time format string */ -#define ERA_T_FMT ERA_T_FMT - ALT_DIGITS, /* alternative symbols for digits */ -#define ALT_DIGITS ALT_DIGITS - - RADIXCHAR, /* radix char */ -#define RADIXCHAR RADIXCHAR - THOUSEP, /* separator for thousands */ -#define THOUSEP THOUSEP - - YESEXPR, /* affirmative response expression */ -#define YESEXPR YESEXPR - NOEXPR, /* negative response expression */ -#define NOEXPR NOEXPR - YESSTR, /* affirmative response for yes/no queries */ -#define YESSTR YESSTR - NOSTR, /* negative response for yes/no queries */ -#define NOSTR NOSTR - - CRNCYSTR, /* currency symbol */ -#define CRNCYSTR CRNCYSTR - - D_MD_ORDER, /* month/day order (BSD extension) */ -#define D_MD_ORDER D_MD_ORDER - - _NL_TIME_DATE_FMT = 84, /* date fmt used by date(1) (GNU extension) */ -#define _DATE_FMT _NL_TIME_DATE_FMT - -#ifdef __HAVE_LOCALE_INFO__ - _NL_CTYPE_MB_CUR_MAX, - _NL_MESSAGES_CODESET, - -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - - /* NOTE: - - Always maintain the order and position of existing entries! - Always append new entry to the list, prior to the definition - of _NL_LOCALE_EXTENDED_LAST_ENTRY. */ - - _NL_LOCALE_EXTENDED_FIRST_ENTRY, - - _NL_CTYPE_OUTDIGITS0_MB, - _NL_CTYPE_OUTDIGITS1_MB, - _NL_CTYPE_OUTDIGITS2_MB, - _NL_CTYPE_OUTDIGITS3_MB, - _NL_CTYPE_OUTDIGITS4_MB, - _NL_CTYPE_OUTDIGITS5_MB, - _NL_CTYPE_OUTDIGITS6_MB, - _NL_CTYPE_OUTDIGITS7_MB, - _NL_CTYPE_OUTDIGITS8_MB, - _NL_CTYPE_OUTDIGITS9_MB, - _NL_CTYPE_OUTDIGITS0_WC, - _NL_CTYPE_OUTDIGITS1_WC, - _NL_CTYPE_OUTDIGITS2_WC, - _NL_CTYPE_OUTDIGITS3_WC, - _NL_CTYPE_OUTDIGITS4_WC, - _NL_CTYPE_OUTDIGITS5_WC, - _NL_CTYPE_OUTDIGITS6_WC, - _NL_CTYPE_OUTDIGITS7_WC, - _NL_CTYPE_OUTDIGITS8_WC, - _NL_CTYPE_OUTDIGITS9_WC, - - _NL_TIME_CODESET, - _NL_TIME_WMON_1, - _NL_TIME_WMON_2, - _NL_TIME_WMON_3, - _NL_TIME_WMON_4, - _NL_TIME_WMON_5, - _NL_TIME_WMON_6, - _NL_TIME_WMON_7, - _NL_TIME_WMON_8, - _NL_TIME_WMON_9, - _NL_TIME_WMON_10, - _NL_TIME_WMON_11, - _NL_TIME_WMON_12, - _NL_TIME_WMONTH_1, - _NL_TIME_WMONTH_2, - _NL_TIME_WMONTH_3, - _NL_TIME_WMONTH_4, - _NL_TIME_WMONTH_5, - _NL_TIME_WMONTH_6, - _NL_TIME_WMONTH_7, - _NL_TIME_WMONTH_8, - _NL_TIME_WMONTH_9, - _NL_TIME_WMONTH_10, - _NL_TIME_WMONTH_11, - _NL_TIME_WMONTH_12, - _NL_TIME_WWDAY_1, - _NL_TIME_WWDAY_2, - _NL_TIME_WWDAY_3, - _NL_TIME_WWDAY_4, - _NL_TIME_WWDAY_5, - _NL_TIME_WWDAY_6, - _NL_TIME_WWDAY_7, - _NL_TIME_WWEEKDAY_1, - _NL_TIME_WWEEKDAY_2, - _NL_TIME_WWEEKDAY_3, - _NL_TIME_WWEEKDAY_4, - _NL_TIME_WWEEKDAY_5, - _NL_TIME_WWEEKDAY_6, - _NL_TIME_WWEEKDAY_7, - _NL_TIME_WT_FMT, - _NL_TIME_WD_FMT, - _NL_TIME_WD_T_FMT, - _NL_TIME_WAM_STR, - _NL_TIME_WPM_STR, - _NL_TIME_WDATE_FMT, - _NL_TIME_WT_FMT_AMPM, - _NL_TIME_WERA, - _NL_TIME_WERA_D_FMT, - _NL_TIME_WERA_D_T_FMT, - _NL_TIME_WERA_T_FMT, - _NL_TIME_WALT_DIGITS, - - _NL_NUMERIC_CODESET, - _NL_NUMERIC_GROUPING, - _NL_NUMERIC_DECIMAL_POINT_WC, - _NL_NUMERIC_THOUSANDS_SEP_WC, - - _NL_MONETARY_INT_CURR_SYMBOL, - _NL_MONETARY_CURRENCY_SYMBOL, - _NL_MONETARY_MON_DECIMAL_POINT, - _NL_MONETARY_MON_THOUSANDS_SEP, - _NL_MONETARY_MON_GROUPING, - _NL_MONETARY_POSITIVE_SIGN, - _NL_MONETARY_NEGATIVE_SIGN, - _NL_MONETARY_INT_FRAC_DIGITS, - _NL_MONETARY_FRAC_DIGITS, - _NL_MONETARY_P_CS_PRECEDES, - _NL_MONETARY_P_SEP_BY_SPACE, - _NL_MONETARY_N_CS_PRECEDES, - _NL_MONETARY_N_SEP_BY_SPACE, - _NL_MONETARY_P_SIGN_POSN, - _NL_MONETARY_N_SIGN_POSN, - _NL_MONETARY_INT_P_CS_PRECEDES, - _NL_MONETARY_INT_P_SEP_BY_SPACE, - _NL_MONETARY_INT_N_CS_PRECEDES, - _NL_MONETARY_INT_N_SEP_BY_SPACE, - _NL_MONETARY_INT_P_SIGN_POSN, - _NL_MONETARY_INT_N_SIGN_POSN, - _NL_MONETARY_CODESET, - _NL_MONETARY_WINT_CURR_SYMBOL, - _NL_MONETARY_WCURRENCY_SYMBOL, - _NL_MONETARY_WMON_DECIMAL_POINT, - _NL_MONETARY_WMON_THOUSANDS_SEP, - _NL_MONETARY_WPOSITIVE_SIGN, - _NL_MONETARY_WNEGATIVE_SIGN, - - _NL_MESSAGES_WYESEXPR, - _NL_MESSAGES_WNOEXPR, - _NL_MESSAGES_WYESSTR, - _NL_MESSAGES_WNOSTR, - - _NL_COLLATE_CODESET, - - /* This MUST be the last entry since it's used to check for an array - index in nl_langinfo(). It also must not exceed _NL_LOCALE_NAME_BASE. */ - _NL_LOCALE_EXTENDED_LAST_ENTRY - -#endif /* __HAVE_LOCALE_INFO_EXTENDED__ */ -#endif /* __HAVE_LOCALE_INFO__ */ - -}; - -/* As an extension, nl_langinfo can retrive the name of a locale - category, with this mapping from setlocale() category (other than - LC_ALL) to nl_item. */ -#define _NL_LOCALE_NAME_BASE 100000 -#if __GNU_VISIBLE -#define NL_LOCALE_NAME(category) (_NL_LOCALE_NAME_BASE + (category)) -#endif - -__BEGIN_DECLS -char *nl_langinfo (nl_item); -#if __POSIX_VISIBLE >= 200809 -char *nl_langinfo_l (nl_item, locale_t); -#endif -__END_DECLS - -#endif /* !_LANGINFO_H_ */ diff --git a/include/leb128.h b/include/leb128.h deleted file mode 100644 index 56016b0..0000000 --- a/include/leb128.h +++ /dev/null @@ -1,136 +0,0 @@ -/* Utilities for reading leb128 values. - Copyright (C) 2012-2015 Free Software Foundation, Inc. - -This file is part of the libiberty library. -Libiberty is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -Libiberty is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with libiberty; see the file COPYING.LIB. If not, write -to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, -Boston, MA 02110-1301, USA. */ - -/* The functions defined here can be speed critical. - Since they are all pretty small we keep things simple and just define - them all as "static inline". - - WARNING: This file is used by GDB which is stuck at C90. :-( - Though it can use stdint.h, inttypes.h. - Therefore if you want to add support for "long long" you need - to wrap it in #ifdef CC_HAS_LONG_LONG. */ - -#ifndef LEB128_H -#define LEB128_H - -/* Get a definition for inline. */ -#include "ansidecl.h" - -/* Get a definition for NULL, size_t. */ -#include - -#ifdef HAVE_STDINT_H -#include -#endif -#ifdef HAVE_INTTYPES_H -#include -#endif - -/* Decode the unsigned LEB128 constant at BUF into the variable pointed to - by R, and return the number of bytes read. - If we read off the end of the buffer, zero is returned, - and nothing is stored in R. - - Note: The result is an int instead of a pointer to the next byte to be - read to avoid const-vs-non-const problems. */ - -static inline size_t -read_uleb128_to_uint64 (const unsigned char *buf, const unsigned char *buf_end, - uint64_t *r) -{ - const unsigned char *p = buf; - unsigned int shift = 0; - uint64_t result = 0; - unsigned char byte; - - while (1) - { - if (p >= buf_end) - return 0; - - byte = *p++; - result |= ((uint64_t) (byte & 0x7f)) << shift; - if ((byte & 0x80) == 0) - break; - shift += 7; - } - - *r = result; - return p - buf; -} - -/* Decode the signed LEB128 constant at BUF into the variable pointed to - by R, and return the number of bytes read. - If we read off the end of the buffer, zero is returned, - and nothing is stored in R. - - Note: The result is an int instead of a pointer to the next byte to be - read to avoid const-vs-non-const problems. */ - -static inline size_t -read_sleb128_to_int64 (const unsigned char *buf, const unsigned char *buf_end, - int64_t *r) -{ - const unsigned char *p = buf; - unsigned int shift = 0; - int64_t result = 0; - unsigned char byte; - - while (1) - { - if (p >= buf_end) - return 0; - - byte = *p++; - result |= ((uint64_t) (byte & 0x7f)) << shift; - shift += 7; - if ((byte & 0x80) == 0) - break; - } - if (shift < (sizeof (*r) * 8) && (byte & 0x40) != 0) - result |= -(((uint64_t) 1) << shift); - - *r = result; - return p - buf; -} - -/* Return the number of bytes to read to skip past an LEB128 number in BUF. - If the end isn't found before reaching BUF_END, return zero. - - Note: The result is an int instead of a pointer to the next byte to be - read to avoid const-vs-non-const problems. */ - -static inline size_t -skip_leb128 (const unsigned char *buf, const unsigned char *buf_end) -{ - const unsigned char *p = buf; - unsigned char byte; - - while (1) - { - if (p == buf_end) - return 0; - - byte = *p++; - if ((byte & 0x80) == 0) - return p - buf; - } -} - -#endif /* LEB128_H */ diff --git a/include/libgen.h b/include/libgen.h deleted file mode 100644 index 414b5aa..0000000 --- a/include/libgen.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * libgen.h - defined by XPG4 - */ - -#ifndef _LIBGEN_H_ -#define _LIBGEN_H_ - -#include "_ansi.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* There are two common basename variants. If you do NOT #include - and you do - - #define _GNU_SOURCE - #include - - you get the GNU version. Otherwise you get the POSIX versionfor which you - should #include i for the function prototype. POSIX requires that - #undef basename will still let you invoke the underlying function. However, - this also implies that the POSIX version is used in this case. That's made - sure here. */ -#undef basename -#define basename __xpg_basename -char *basename (char *) __asm__(__ASMNAME("basename")); -char *dirname (char *); - -#ifdef __cplusplus -} -#endif - -#endif /* _LIBGEN_H_ */ - diff --git a/include/libiberty.h b/include/libiberty.h deleted file mode 100644 index a9c885f..0000000 --- a/include/libiberty.h +++ /dev/null @@ -1,739 +0,0 @@ -/* Function declarations for libiberty. - - Copyright (C) 1997-2015 Free Software Foundation, Inc. - - Note - certain prototypes declared in this header file are for - functions whoes implementation copyright does not belong to the - FSF. Those prototypes are present in this file for reference - purposes only and their presence in this file should not construed - as an indication of ownership by the FSF of the implementation of - those functions in any way or form whatsoever. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. - - Written by Cygnus Support, 1994. - - The libiberty library provides a number of functions which are - missing on some operating systems. We do not declare those here, - to avoid conflicts with the system header files on operating - systems that do support those functions. In this file we only - declare those functions which are specific to libiberty. */ - -#ifndef LIBIBERTY_H -#define LIBIBERTY_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "ansidecl.h" - -/* Get a definition for size_t. */ -#include -/* Get a definition for va_list. */ -#include - -#include - -/* If the OS supports it, ensure that the supplied stream is setup to - avoid any multi-threaded locking. Otherwise leave the FILE pointer - unchanged. If the stream is NULL do nothing. */ - -extern void unlock_stream (FILE *); - -/* If the OS supports it, ensure that the standard I/O streams, stdin, - stdout and stderr are setup to avoid any multi-threaded locking. - Otherwise do nothing. */ - -extern void unlock_std_streams (void); - -/* Open and return a FILE pointer. If the OS supports it, ensure that - the stream is setup to avoid any multi-threaded locking. Otherwise - return the FILE pointer unchanged. */ - -extern FILE *fopen_unlocked (const char *, const char *); -extern FILE *fdopen_unlocked (int, const char *); -extern FILE *freopen_unlocked (const char *, const char *, FILE *); - -/* Build an argument vector from a string. Allocates memory using - malloc. Use freeargv to free the vector. */ - -extern char **buildargv (const char *) ATTRIBUTE_MALLOC; - -/* Free a vector returned by buildargv. */ - -extern void freeargv (char **); - -/* Duplicate an argument vector. Allocates memory using malloc. Use - freeargv to free the vector. */ - -extern char **dupargv (char * const *) ATTRIBUTE_MALLOC; - -/* Expand "@file" arguments in argv. */ - -extern void expandargv (int *, char ***); - -/* Write argv to an @-file, inserting necessary quoting. */ - -extern int writeargv (char * const *, FILE *); - -/* Return the number of elements in argv. */ - -extern int countargv (char * const *); - -/* Return the last component of a path name. Note that we can't use a - prototype here because the parameter is declared inconsistently - across different systems, sometimes as "char *" and sometimes as - "const char *" */ - -/* HAVE_DECL_* is a three-state macro: undefined, 0 or 1. If it is - undefined, we haven't run the autoconf check so provide the - declaration without arguments. If it is 0, we checked and failed - to find the declaration so provide a fully prototyped one. If it - is 1, we found it so don't provide any declaration at all. */ -#if !HAVE_DECL_BASENAME -#if defined (__GNU_LIBRARY__ ) || defined (__linux__) \ - || defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) \ - || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) \ - || defined (__DragonFly__) || defined (HAVE_DECL_BASENAME) -extern char *basename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1); -#else -/* Do not allow basename to be used if there is no prototype seen. We - either need to use the above prototype or have one from - autoconf which would result in HAVE_DECL_BASENAME being set. */ -#define basename basename_cannot_be_used_without_a_prototype -#endif -#endif - -/* A well-defined basename () that is always compiled in. */ - -extern const char *lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1); - -/* Same, but assumes DOS semantics (drive name, backslash is also a - dir separator) regardless of host. */ - -extern const char *dos_lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1); - -/* Same, but assumes Unix semantics (absolute paths always start with - a slash, only forward slash is accepted as dir separator) - regardless of host. */ - -extern const char *unix_lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1); - -/* A well-defined realpath () that is always compiled in. */ - -extern char *lrealpath (const char *); - -/* Concatenate an arbitrary number of strings. You must pass NULL as - the last argument of this function, to terminate the list of - strings. Allocates memory using xmalloc. */ - -extern char *concat (const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_SENTINEL; - -/* Concatenate an arbitrary number of strings. You must pass NULL as - the last argument of this function, to terminate the list of - strings. Allocates memory using xmalloc. The first argument is - not one of the strings to be concatenated, but if not NULL is a - pointer to be freed after the new string is created, similar to the - way xrealloc works. */ - -extern char *reconcat (char *, const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_SENTINEL; - -/* Determine the length of concatenating an arbitrary number of - strings. You must pass NULL as the last argument of this function, - to terminate the list of strings. */ - -extern unsigned long concat_length (const char *, ...) ATTRIBUTE_SENTINEL; - -/* Concatenate an arbitrary number of strings into a SUPPLIED area of - memory. You must pass NULL as the last argument of this function, - to terminate the list of strings. The supplied memory is assumed - to be large enough. */ - -extern char *concat_copy (char *, const char *, ...) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1) ATTRIBUTE_SENTINEL; - -/* Concatenate an arbitrary number of strings into a GLOBAL area of - memory. You must pass NULL as the last argument of this function, - to terminate the list of strings. The supplied memory is assumed - to be large enough. */ - -extern char *concat_copy2 (const char *, ...) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_SENTINEL; - -/* This is the global area used by concat_copy2. */ - -extern char *libiberty_concat_ptr; - -/* Concatenate an arbitrary number of strings. You must pass NULL as - the last argument of this function, to terminate the list of - strings. Allocates memory using alloca. The arguments are - evaluated twice! */ -#define ACONCAT(ACONCAT_PARAMS) \ - (libiberty_concat_ptr = (char *) alloca (concat_length ACONCAT_PARAMS + 1), \ - concat_copy2 ACONCAT_PARAMS) - -/* Check whether two file descriptors refer to the same file. */ - -extern int fdmatch (int fd1, int fd2); - -/* Return the position of the first bit set in the argument. */ -/* Prototypes vary from system to system, so we only provide a - prototype on systems where we know that we need it. */ -#if defined (HAVE_DECL_FFS) && !HAVE_DECL_FFS -extern int ffs(int); -#endif - -/* Get the working directory. The result is cached, so don't call - chdir() between calls to getpwd(). */ - -extern char * getpwd (void); - -/* Get the current time. */ -/* Prototypes vary from system to system, so we only provide a - prototype on systems where we know that we need it. */ -#ifdef __MINGW32__ -/* Forward declaration to avoid #include . */ -struct timeval; -extern int gettimeofday (struct timeval *, void *); -#endif - -/* Get the amount of time the process has run, in microseconds. */ - -extern long get_run_time (void); - -/* Generate a relocated path to some installation directory. Allocates - return value using malloc. */ - -extern char *make_relative_prefix (const char *, const char *, - const char *) ATTRIBUTE_MALLOC; - -/* Generate a relocated path to some installation directory without - attempting to follow any soft links. Allocates - return value using malloc. */ - -extern char *make_relative_prefix_ignore_links (const char *, const char *, - const char *) ATTRIBUTE_MALLOC; - -/* Returns a pointer to a directory path suitable for creating temporary - files in. */ - -extern const char *choose_tmpdir (void) ATTRIBUTE_RETURNS_NONNULL; - -/* Choose a temporary directory to use for scratch files. */ - -extern char *choose_temp_base (void) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL; - -/* Return a temporary file name or NULL if unable to create one. */ - -extern char *make_temp_file (const char *) ATTRIBUTE_MALLOC; - -/* Remove a link to a file unless it is special. */ - -extern int unlink_if_ordinary (const char *); - -/* Allocate memory filled with spaces. Allocates using malloc. */ - -extern const char *spaces (int count); - -/* Return the maximum error number for which strerror will return a - string. */ - -extern int errno_max (void); - -/* Return the name of an errno value (e.g., strerrno (EINVAL) returns - "EINVAL"). */ - -extern const char *strerrno (int); - -/* Given the name of an errno value, return the value. */ - -extern int strtoerrno (const char *); - -/* ANSI's strerror(), but more robust. */ - -extern char *xstrerror (int) ATTRIBUTE_RETURNS_NONNULL; - -/* Return the maximum signal number for which strsignal will return a - string. */ - -extern int signo_max (void); - -/* Return a signal message string for a signal number - (e.g., strsignal (SIGHUP) returns something like "Hangup"). */ -/* This is commented out as it can conflict with one in system headers. - We still document its existence though. */ - -/*extern const char *strsignal (int);*/ - -/* Return the name of a signal number (e.g., strsigno (SIGHUP) returns - "SIGHUP"). */ - -extern const char *strsigno (int); - -/* Given the name of a signal, return its number. */ - -extern int strtosigno (const char *); - -/* Register a function to be run by xexit. Returns 0 on success. */ - -extern int xatexit (void (*fn) (void)); - -/* Exit, calling all the functions registered with xatexit. */ - -extern void xexit (int status) ATTRIBUTE_NORETURN; - -/* Set the program name used by xmalloc. */ - -extern void xmalloc_set_program_name (const char *); - -/* Report an allocation failure. */ -extern void xmalloc_failed (size_t) ATTRIBUTE_NORETURN; - -/* Allocate memory without fail. If malloc fails, this will print a - message to stderr (using the name set by xmalloc_set_program_name, - if any) and then call xexit. */ - -extern void *xmalloc (size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL; - -/* Reallocate memory without fail. This works like xmalloc. Note, - realloc type functions are not suitable for attribute malloc since - they may return the same address across multiple calls. */ - -extern void *xrealloc (void *, size_t) ATTRIBUTE_RETURNS_NONNULL; - -/* Allocate memory without fail and set it to zero. This works like - xmalloc. */ - -extern void *xcalloc (size_t, size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL; - -/* Copy a string into a memory buffer without fail. */ - -extern char *xstrdup (const char *) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL; - -/* Copy at most N characters from string into a buffer without fail. */ - -extern char *xstrndup (const char *, size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL; - -/* Copy an existing memory buffer to a new memory buffer without fail. */ - -extern void *xmemdup (const void *, size_t, size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL; - -/* Physical memory routines. Return values are in BYTES. */ -extern double physmem_total (void); -extern double physmem_available (void); - -/* Compute the 32-bit CRC of a block of memory. */ -extern unsigned int xcrc32 (const unsigned char *, int, unsigned int); - -/* These macros provide a K&R/C89/C++-friendly way of allocating structures - with nice encapsulation. The XDELETE*() macros are technically - superfluous, but provided here for symmetry. Using them consistently - makes it easier to update client code to use different allocators such - as new/delete and new[]/delete[]. */ - -/* Scalar allocators. */ - -#define XALLOCA(T) ((T *) alloca (sizeof (T))) -#define XNEW(T) ((T *) xmalloc (sizeof (T))) -#define XCNEW(T) ((T *) xcalloc (1, sizeof (T))) -#define XDUP(T, P) ((T *) xmemdup ((P), sizeof (T), sizeof (T))) -#define XDELETE(P) free ((void*) (P)) - -/* Array allocators. */ - -#define XALLOCAVEC(T, N) ((T *) alloca (sizeof (T) * (N))) -#define XNEWVEC(T, N) ((T *) xmalloc (sizeof (T) * (N))) -#define XCNEWVEC(T, N) ((T *) xcalloc ((N), sizeof (T))) -#define XDUPVEC(T, P, N) ((T *) xmemdup ((P), sizeof (T) * (N), sizeof (T) * (N))) -#define XRESIZEVEC(T, P, N) ((T *) xrealloc ((void *) (P), sizeof (T) * (N))) -#define XDELETEVEC(P) free ((void*) (P)) - -/* Allocators for variable-sized structures and raw buffers. */ - -#define XALLOCAVAR(T, S) ((T *) alloca ((S))) -#define XNEWVAR(T, S) ((T *) xmalloc ((S))) -#define XCNEWVAR(T, S) ((T *) xcalloc (1, (S))) -#define XDUPVAR(T, P, S1, S2) ((T *) xmemdup ((P), (S1), (S2))) -#define XRESIZEVAR(T, P, S) ((T *) xrealloc ((P), (S))) - -/* Type-safe obstack allocator. */ - -#define XOBNEW(O, T) ((T *) obstack_alloc ((O), sizeof (T))) -#define XOBNEWVEC(O, T, N) ((T *) obstack_alloc ((O), sizeof (T) * (N))) -#define XOBNEWVAR(O, T, S) ((T *) obstack_alloc ((O), (S))) -#define XOBFINISH(O, T) ((T) obstack_finish ((O))) - -/* hex character manipulation routines */ - -#define _hex_array_size 256 -#define _hex_bad 99 -extern const unsigned char _hex_value[_hex_array_size]; -extern void hex_init (void); -#define hex_p(c) (hex_value (c) != _hex_bad) -/* If you change this, note well: Some code relies on side effects in - the argument being performed exactly once. */ -#define hex_value(c) ((unsigned int) _hex_value[(unsigned char) (c)]) - -/* Flags for pex_init. These are bits to be or'ed together. */ - -/* Record subprocess times, if possible. */ -#define PEX_RECORD_TIMES 0x1 - -/* Use pipes for communication between processes, if possible. */ -#define PEX_USE_PIPES 0x2 - -/* Save files used for communication between processes. */ -#define PEX_SAVE_TEMPS 0x4 - -/* Prepare to execute one or more programs, with standard output of - each program fed to standard input of the next. - FLAGS As above. - PNAME The name of the program to report in error messages. - TEMPBASE A base name to use for temporary files; may be NULL to - use a random name. - Returns NULL on error. */ - -extern struct pex_obj *pex_init (int flags, const char *pname, - const char *tempbase) ATTRIBUTE_RETURNS_NONNULL; - -/* Flags for pex_run. These are bits to be or'ed together. */ - -/* Last program in pipeline. Standard output of program goes to - OUTNAME, or, if OUTNAME is NULL, to standard output of caller. Do - not set this if you want to call pex_read_output. After this is - set, pex_run may no longer be called with the same struct - pex_obj. */ -#define PEX_LAST 0x1 - -/* Search for program in executable search path. */ -#define PEX_SEARCH 0x2 - -/* OUTNAME is a suffix. */ -#define PEX_SUFFIX 0x4 - -/* Send program's standard error to standard output. */ -#define PEX_STDERR_TO_STDOUT 0x8 - -/* Input file should be opened in binary mode. This flag is ignored - on Unix. */ -#define PEX_BINARY_INPUT 0x10 - -/* Output file should be opened in binary mode. This flag is ignored - on Unix. For proper behaviour PEX_BINARY_INPUT and - PEX_BINARY_OUTPUT have to match appropriately--i.e., a call using - PEX_BINARY_OUTPUT should be followed by a call using - PEX_BINARY_INPUT. */ -#define PEX_BINARY_OUTPUT 0x20 - -/* Capture stderr to a pipe. The output can be read by - calling pex_read_err and reading from the returned - FILE object. This flag may be specified only for - the last program in a pipeline. - - This flag is supported only on Unix and Windows. */ -#define PEX_STDERR_TO_PIPE 0x40 - -/* Capture stderr in binary mode. This flag is ignored - on Unix. */ -#define PEX_BINARY_ERROR 0x80 - -/* Append stdout to existing file instead of truncating it. */ -#define PEX_STDOUT_APPEND 0x100 - -/* Thes same as PEX_STDOUT_APPEND, but for STDERR. */ -#define PEX_STDERR_APPEND 0x200 - -/* Execute one program. Returns NULL on success. On error returns an - error string (typically just the name of a system call); the error - string is statically allocated. - - OBJ Returned by pex_init. - - FLAGS As above. - - EXECUTABLE The program to execute. - - ARGV NULL terminated array of arguments to pass to the program. - - OUTNAME Sets the output file name as follows: - - PEX_SUFFIX set (OUTNAME may not be NULL): - TEMPBASE parameter to pex_init not NULL: - Output file name is the concatenation of TEMPBASE - and OUTNAME. - TEMPBASE is NULL: - Output file name is a random file name ending in - OUTNAME. - PEX_SUFFIX not set: - OUTNAME not NULL: - Output file name is OUTNAME. - OUTNAME NULL, TEMPBASE not NULL: - Output file name is randomly chosen using - TEMPBASE. - OUTNAME NULL, TEMPBASE NULL: - Output file name is randomly chosen. - - If PEX_LAST is not set, the output file name is the - name to use for a temporary file holding stdout, if - any (there will not be a file if PEX_USE_PIPES is set - and the system supports pipes). If a file is used, it - will be removed when no longer needed unless - PEX_SAVE_TEMPS is set. - - If PEX_LAST is set, and OUTNAME is not NULL, standard - output is written to the output file name. The file - will not be removed. If PEX_LAST and PEX_SUFFIX are - both set, TEMPBASE may not be NULL. - - ERRNAME If not NULL, this is the name of a file to which - standard error is written. If NULL, standard error of - the program is standard error of the caller. - - ERR On an error return, *ERR is set to an errno value, or - to 0 if there is no relevant errno. -*/ - -extern const char *pex_run (struct pex_obj *obj, int flags, - const char *executable, char * const *argv, - const char *outname, const char *errname, - int *err); - -/* As for pex_run (), but takes an extra parameter to enable the - environment for the child process to be specified. - - ENV The environment for the child process, specified as - an array of character pointers. Each element of the - array should point to a string of the form VAR=VALUE, - with the exception of the last element which must be - a null pointer. -*/ - -extern const char *pex_run_in_environment (struct pex_obj *obj, int flags, - const char *executable, - char * const *argv, - char * const *env, - const char *outname, - const char *errname, int *err); - -/* Return a stream for a temporary file to pass to the first program - in the pipeline as input. The file name is chosen as for pex_run. - pex_run closes the file automatically; don't close it yourself. */ - -extern FILE *pex_input_file (struct pex_obj *obj, int flags, - const char *in_name); - -/* Return a stream for a pipe connected to the standard input of the - first program in the pipeline. You must have passed - `PEX_USE_PIPES' to `pex_init'. Close the returned stream - yourself. */ - -extern FILE *pex_input_pipe (struct pex_obj *obj, int binary); - -/* Read the standard output of the last program to be executed. - pex_run can not be called after this. BINARY should be non-zero if - the file should be opened in binary mode; this is ignored on Unix. - Returns NULL on error. Don't call fclose on the returned FILE; it - will be closed by pex_free. */ - -extern FILE *pex_read_output (struct pex_obj *, int binary); - -/* Read the standard error of the last program to be executed. - pex_run can not be called after this. BINARY should be non-zero if - the file should be opened in binary mode; this is ignored on Unix. - Returns NULL on error. Don't call fclose on the returned FILE; it - will be closed by pex_free. */ - -extern FILE *pex_read_err (struct pex_obj *, int binary); - -/* Return exit status of all programs in VECTOR. COUNT indicates the - size of VECTOR. The status codes in the vector are in the order of - the calls to pex_run. Returns 0 on error, 1 on success. */ - -extern int pex_get_status (struct pex_obj *, int count, int *vector); - -/* Return times of all programs in VECTOR. COUNT indicates the size - of VECTOR. struct pex_time is really just struct timeval, but that - is not portable to all systems. Returns 0 on error, 1 on - success. */ - -struct pex_time -{ - unsigned long user_seconds; - unsigned long user_microseconds; - unsigned long system_seconds; - unsigned long system_microseconds; -}; - -extern int pex_get_times (struct pex_obj *, int count, - struct pex_time *vector); - -/* Clean up a pex_obj. If you have not called pex_get_times or - pex_get_status, this will try to kill the subprocesses. */ - -extern void pex_free (struct pex_obj *); - -/* Just execute one program. Return value is as for pex_run. - FLAGS Combination of PEX_SEARCH and PEX_STDERR_TO_STDOUT. - EXECUTABLE As for pex_run. - ARGV As for pex_run. - PNAME As for pex_init. - OUTNAME As for pex_run when PEX_LAST is set. - ERRNAME As for pex_run. - STATUS Set to exit status on success. - ERR As for pex_run. -*/ - -extern const char *pex_one (int flags, const char *executable, - char * const *argv, const char *pname, - const char *outname, const char *errname, - int *status, int *err); - -/* pexecute and pwait are the old pexecute interface, still here for - backward compatibility. Don't use these for new code. Instead, - use pex_init/pex_run/pex_get_status/pex_free, or pex_one. */ - -/* Definitions used by the pexecute routine. */ - -#define PEXECUTE_FIRST 1 -#define PEXECUTE_LAST 2 -#define PEXECUTE_ONE (PEXECUTE_FIRST + PEXECUTE_LAST) -#define PEXECUTE_SEARCH 4 -#define PEXECUTE_VERBOSE 8 - -/* Execute a program. */ - -extern int pexecute (const char *, char * const *, const char *, - const char *, char **, char **, int); - -/* Wait for pexecute to finish. */ - -extern int pwait (int, int *, int); - -#if defined(HAVE_DECL_ASPRINTF) && !HAVE_DECL_ASPRINTF -/* Like sprintf but provides a pointer to malloc'd storage, which must - be freed by the caller. */ - -extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2; -#endif - -/* Like asprintf but allocates memory without fail. This works like - xmalloc. */ - -extern char *xasprintf (const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_PRINTF_1; - -#if !HAVE_DECL_VASPRINTF -/* Like vsprintf but provides a pointer to malloc'd storage, which - must be freed by the caller. */ - -extern int vasprintf (char **, const char *, va_list) ATTRIBUTE_PRINTF(2,0); -#endif - -/* Like vasprintf but allocates memory without fail. This works like - xmalloc. */ - -extern char *xvasprintf (const char *, va_list) ATTRIBUTE_MALLOC ATTRIBUTE_PRINTF(1,0); - -#if defined(HAVE_DECL_SNPRINTF) && !HAVE_DECL_SNPRINTF -/* Like sprintf but prints at most N characters. */ -extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3; -#endif - -#if defined(HAVE_DECL_VSNPRINTF) && !HAVE_DECL_VSNPRINTF -/* Like vsprintf but prints at most N characters. */ -extern int vsnprintf (char *, size_t, const char *, va_list) ATTRIBUTE_PRINTF(3,0); -#endif - -#if defined (HAVE_DECL_STRNLEN) && !HAVE_DECL_STRNLEN -extern size_t strnlen (const char *, size_t); -#endif - -#if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP -/* Compare version strings. */ -extern int strverscmp (const char *, const char *); -#endif - -#if defined(HAVE_DECL_STRTOL) && !HAVE_DECL_STRTOL -extern long int strtol (const char *nptr, - char **endptr, int base); -#endif - -#if defined(HAVE_DECL_STRTOUL) && !HAVE_DECL_STRTOUL -extern unsigned long int strtoul (const char *nptr, - char **endptr, int base); -#endif - -#if defined(HAVE_LONG_LONG) && defined(HAVE_DECL_STRTOLL) && !HAVE_DECL_STRTOLL -__extension__ -extern long long int strtoll (const char *nptr, - char **endptr, int base); -#endif - -#if defined(HAVE_LONG_LONG) && defined(HAVE_DECL_STRTOULL) && !HAVE_DECL_STRTOULL -__extension__ -extern unsigned long long int strtoull (const char *nptr, - char **endptr, int base); -#endif - -#if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP -/* Compare version strings. */ -extern int strverscmp (const char *, const char *); -#endif - -/* Set the title of a process */ -extern void setproctitle (const char *name, ...); - -/* Increase stack limit if possible. */ -extern void stack_limit_increase (unsigned long); - -#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0])) - -/* Drastically simplified alloca configurator. If we're using GCC, - we use __builtin_alloca; otherwise we use the C alloca. The C - alloca is always available. You can override GCC by defining - USE_C_ALLOCA yourself. The canonical autoconf macro C_ALLOCA is - also set/unset as it is often used to indicate whether code needs - to call alloca(0). */ -extern void *C_alloca (size_t) ATTRIBUTE_MALLOC; -#undef alloca -#if GCC_VERSION >= 2000 && !defined USE_C_ALLOCA -# define alloca(x) __builtin_alloca(x) -# undef C_ALLOCA -# define ASTRDUP(X) \ - (__extension__ ({ const char *const libiberty_optr = (X); \ - const unsigned long libiberty_len = strlen (libiberty_optr) + 1; \ - char *const libiberty_nptr = (char *const) alloca (libiberty_len); \ - (char *) memcpy (libiberty_nptr, libiberty_optr, libiberty_len); })) -#else -# define alloca(x) C_alloca(x) -# undef USE_C_ALLOCA -# define USE_C_ALLOCA 1 -# undef C_ALLOCA -# define C_ALLOCA 1 -extern const char *libiberty_optr; -extern char *libiberty_nptr; -extern unsigned long libiberty_len; -# define ASTRDUP(X) \ - (libiberty_optr = (X), \ - libiberty_len = strlen (libiberty_optr) + 1, \ - libiberty_nptr = (char *) alloca (libiberty_len), \ - (char *) memcpy (libiberty_nptr, libiberty_optr, libiberty_len)) -#endif - -#ifdef __cplusplus -} -#endif - - -#endif /* ! defined (LIBIBERTY_H) */ diff --git a/include/limits.h b/include/limits.h deleted file mode 100644 index 893f108..0000000 --- a/include/limits.h +++ /dev/null @@ -1,147 +0,0 @@ -#ifndef _LIBC_LIMITS_H_ -# define _LIBC_LIMITS_H_ 1 - -#include -#include -#include - -# ifdef _MB_LEN_MAX -# define MB_LEN_MAX _MB_LEN_MAX -# else -# define MB_LEN_MAX 1 -# endif - -/* Maximum number of positional arguments, if _WANT_IO_POS_ARGS. */ -# ifndef NL_ARGMAX -# define NL_ARGMAX 32 -# endif - -/* if do not have #include_next support, then we - have to define the limits here. */ -# if !defined __GNUC__ || __GNUC__ < 2 - -# ifndef _LIMITS_H -# define _LIMITS_H 1 - -# include - -/* Number of bits in a `char'. */ -# undef CHAR_BIT -# define CHAR_BIT 8 - -/* Minimum and maximum values a `signed char' can hold. */ -# undef SCHAR_MIN -# define SCHAR_MIN (-128) -# undef SCHAR_MAX -# define SCHAR_MAX 127 - -/* Maximum value an `unsigned char' can hold. (Minimum is 0). */ -# undef UCHAR_MAX -# define UCHAR_MAX 255 - -/* Minimum and maximum values a `char' can hold. */ -# ifdef __CHAR_UNSIGNED__ -# undef CHAR_MIN -# define CHAR_MIN 0 -# undef CHAR_MAX -# define CHAR_MAX 255 -# else -# undef CHAR_MIN -# define CHAR_MIN (-128) -# undef CHAR_MAX -# define CHAR_MAX 127 -# endif - -/* Minimum and maximum values a `signed short int' can hold. */ -# undef SHRT_MIN -/* For the sake of 16 bit hosts, we may not use -32768 */ -# define SHRT_MIN (-32767-1) -# undef SHRT_MAX -# define SHRT_MAX 32767 - -/* Maximum value an `unsigned short int' can hold. (Minimum is 0). */ -# undef USHRT_MAX -# define USHRT_MAX 65535 - -/* Minimum and maximum values a `signed int' can hold. */ -# ifndef __INT_MAX__ -# define __INT_MAX__ 2147483647 -# endif -# undef INT_MIN -# define INT_MIN (-INT_MAX-1) -# undef INT_MAX -# define INT_MAX __INT_MAX__ - -/* Maximum value an `unsigned int' can hold. (Minimum is 0). */ -# undef UINT_MAX -# define UINT_MAX (INT_MAX * 2U + 1) - -/* Minimum and maximum values a `signed long int' can hold. - (Same as `int'). */ -# ifndef __LONG_MAX__ -# if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) || defined (__sparcv9) -# define __LONG_MAX__ 9223372036854775807L -# else -# define __LONG_MAX__ 2147483647L -# endif /* __alpha__ || sparc64 */ -# endif -# undef LONG_MIN -# define LONG_MIN (-LONG_MAX-1) -# undef LONG_MAX -# define LONG_MAX __LONG_MAX__ - -/* Maximum value an `unsigned long int' can hold. (Minimum is 0). */ -# undef ULONG_MAX -# define ULONG_MAX (LONG_MAX * 2UL + 1) - -# ifndef __LONG_LONG_MAX__ -# define __LONG_LONG_MAX__ 9223372036854775807LL -# endif - -# if __ISO_C_VISIBLE >= 1999 -/* Minimum and maximum values a `signed long long int' can hold. */ -# undef LLONG_MIN -# define LLONG_MIN (-LLONG_MAX-1) -# undef LLONG_MAX -# define LLONG_MAX __LONG_LONG_MAX__ - -/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */ -# undef ULLONG_MAX -# define ULLONG_MAX (LLONG_MAX * 2ULL + 1) -# endif - -# if __GNU_VISIBLE -/* Minimum and maximum values a `signed long long int' can hold. */ -# undef LONG_LONG_MIN -# define LONG_LONG_MIN (-LONG_LONG_MAX-1) -# undef LONG_LONG_MAX -# define LONG_LONG_MAX __LONG_LONG_MAX__ - -/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */ -# undef ULONG_LONG_MAX -# define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1) -# endif - -# endif /* _LIMITS_H */ -# endif /* GCC 2. */ - -#endif /* !_LIBC_LIMITS_H_ */ - -#if defined __GNUC__ && !defined _GCC_LIMITS_H_ -/* `_GCC_LIMITS_H_' is what GCC's file defines. */ -# include_next -#endif /* __GNUC__ && !_GCC_LIMITS_H_ */ - -#ifndef _POSIX2_RE_DUP_MAX -/* The maximum number of repeated occurrences of a regular expression - * permitted when using the interval notation `\{M,N\}'. */ -#define _POSIX2_RE_DUP_MAX 255 -#endif /* _POSIX2_RE_DUP_MAX */ - -#ifndef ARG_MAX -#define ARG_MAX 4096 -#endif - -#ifndef PATH_MAX -#define PATH_MAX 4096 -#endif diff --git a/include/locale.h b/include/locale.h deleted file mode 100644 index ec7f861..0000000 --- a/include/locale.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - locale.h - Values appropriate for the formatting of monetary and other - numberic quantities. -*/ - -#ifndef _LOCALE_H_ -#define _LOCALE_H_ - -#include "_ansi.h" -#include - -#define __need_NULL -#include - -#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 LC_MESSAGES 6 - -#if __POSIX_VISIBLE >= 200809 || defined (_LIBC) - -#include - -#define LC_ALL_MASK (1 << LC_ALL) -#define LC_COLLATE_MASK (1 << LC_COLLATE) -#define LC_CTYPE_MASK (1 << LC_CTYPE) -#define LC_MONETARY_MASK (1 << LC_MONETARY) -#define LC_NUMERIC_MASK (1 << LC_NUMERIC) -#define LC_TIME_MASK (1 << LC_TIME) -#define LC_MESSAGES_MASK (1 << LC_MESSAGES) - -#define LC_GLOBAL_LOCALE ((struct __locale_t *) -1) - -#endif /* __POSIX_VISIBLE >= 200809 */ - -_BEGIN_STD_C - -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 int_n_cs_precedes; - char int_n_sep_by_space; - char int_n_sign_posn; - char int_p_cs_precedes; - char int_p_sep_by_space; - char int_p_sign_posn; -}; - -struct _reent; -char *_setlocale_r (struct _reent *, int, const char *); -struct lconv *_localeconv_r (struct _reent *); - -struct __locale_t *_newlocale_r (struct _reent *, int, const char *, - struct __locale_t *); -void _freelocale_r (struct _reent *, struct __locale_t *); -struct __locale_t *_duplocale_r (struct _reent *, struct __locale_t *); -struct __locale_t *_uselocale_r (struct _reent *, struct __locale_t *); - -#ifndef _REENT_ONLY - -char *setlocale (int, const char *); -struct lconv *localeconv (void); - -#if __POSIX_VISIBLE >= 200809 -locale_t newlocale (int, const char *, locale_t); -void freelocale (locale_t); -locale_t duplocale (locale_t); -locale_t uselocale (locale_t); -#endif /* __POSIX_VISIBLE >= 200809 */ - -#endif /* _REENT_ONLY */ - -_END_STD_C - -#endif /* _LOCALE_H_ */ diff --git a/include/longlong.h b/include/longlong.h deleted file mode 100644 index b25a594..0000000 --- a/include/longlong.h +++ /dev/null @@ -1,1758 +0,0 @@ -/* longlong.h -- definitions for mixed size 32/64 bit arithmetic. - Copyright (C) 1991-2015 Free Software Foundation, Inc. - - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - In addition to the permissions in the GNU Lesser General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file into - combinations with other programs, and to distribute those - combinations without any restriction coming from the use of this - file. (The Lesser General Public License restrictions do apply in - other respects; for example, they cover modification of the file, - and distribution when not linked into a combine executable.) - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* You have to define the following before including this file: - - UWtype -- An unsigned type, default type for operations (typically a "word") - UHWtype -- An unsigned type, at least half the size of UWtype. - UDWtype -- An unsigned type, at least twice as large a UWtype - W_TYPE_SIZE -- size in bits of UWtype - - UQItype -- Unsigned 8 bit type. - SItype, USItype -- Signed and unsigned 32 bit types. - DItype, UDItype -- Signed and unsigned 64 bit types. - - On a 32 bit machine UWtype should typically be USItype; - on a 64 bit machine, UWtype should typically be UDItype. */ - -#define __BITS4 (W_TYPE_SIZE / 4) -#define __ll_B ((UWtype) 1 << (W_TYPE_SIZE / 2)) -#define __ll_lowpart(t) ((UWtype) (t) & (__ll_B - 1)) -#define __ll_highpart(t) ((UWtype) (t) >> (W_TYPE_SIZE / 2)) - -#ifndef W_TYPE_SIZE -#define W_TYPE_SIZE 32 -#define UWtype USItype -#define UHWtype USItype -#define UDWtype UDItype -#endif - -/* Used in glibc only. */ -#ifndef attribute_hidden -#define attribute_hidden -#endif - -extern const UQItype __clz_tab[256] attribute_hidden; - -/* Define auxiliary asm macros. - - 1) umul_ppmm(high_prod, low_prod, multiplier, multiplicand) multiplies two - UWtype integers MULTIPLIER and MULTIPLICAND, and generates a two UWtype - word product in HIGH_PROD and LOW_PROD. - - 2) __umulsidi3(a,b) multiplies two UWtype integers A and B, and returns a - UDWtype product. This is just a variant of umul_ppmm. - - 3) udiv_qrnnd(quotient, remainder, high_numerator, low_numerator, - denominator) divides a UDWtype, composed by the UWtype integers - HIGH_NUMERATOR and LOW_NUMERATOR, by DENOMINATOR and places the quotient - in QUOTIENT and the remainder in REMAINDER. HIGH_NUMERATOR must be less - than DENOMINATOR for correct operation. If, in addition, the most - significant bit of DENOMINATOR must be 1, then the pre-processor symbol - UDIV_NEEDS_NORMALIZATION is defined to 1. - - 4) sdiv_qrnnd(quotient, remainder, high_numerator, low_numerator, - denominator). Like udiv_qrnnd but the numbers are signed. The quotient - is rounded towards 0. - - 5) count_leading_zeros(count, x) counts the number of zero-bits from the - msb to the first nonzero bit in the UWtype X. This is the number of - steps X needs to be shifted left to set the msb. Undefined for X == 0, - unless the symbol COUNT_LEADING_ZEROS_0 is defined to some value. - - 6) count_trailing_zeros(count, x) like count_leading_zeros, but counts - from the least significant end. - - 7) add_ssaaaa(high_sum, low_sum, high_addend_1, low_addend_1, - high_addend_2, low_addend_2) adds two UWtype integers, composed by - HIGH_ADDEND_1 and LOW_ADDEND_1, and HIGH_ADDEND_2 and LOW_ADDEND_2 - respectively. The result is placed in HIGH_SUM and LOW_SUM. Overflow - (i.e. carry out) is not stored anywhere, and is lost. - - 8) sub_ddmmss(high_difference, low_difference, high_minuend, low_minuend, - high_subtrahend, low_subtrahend) subtracts two two-word UWtype integers, - composed by HIGH_MINUEND_1 and LOW_MINUEND_1, and HIGH_SUBTRAHEND_2 and - LOW_SUBTRAHEND_2 respectively. The result is placed in HIGH_DIFFERENCE - and LOW_DIFFERENCE. Overflow (i.e. carry out) is not stored anywhere, - and is lost. - - If any of these macros are left undefined for a particular CPU, - C macros are used. */ - -/* The CPUs come in alphabetical order below. - - Please add support for more CPUs here, or improve the current support - for the CPUs below! - (E.g. WE32100, IBM360.) */ - -#if defined (__GNUC__) && !defined (NO_ASM) - -/* We sometimes need to clobber "cc" with gcc2, but that would not be - understood by gcc1. Use cpp to avoid major code duplication. */ -#if __GNUC__ < 2 -#define __CLOBBER_CC -#define __AND_CLOBBER_CC -#else /* __GNUC__ >= 2 */ -#define __CLOBBER_CC : "cc" -#define __AND_CLOBBER_CC , "cc" -#endif /* __GNUC__ < 2 */ - -#if defined (__aarch64__) - -#if W_TYPE_SIZE == 32 -#define count_leading_zeros(COUNT, X) ((COUNT) = __builtin_clz (X)) -#define count_trailing_zeros(COUNT, X) ((COUNT) = __builtin_ctz (X)) -#define COUNT_LEADING_ZEROS_0 32 -#endif /* W_TYPE_SIZE == 32 */ - -#if W_TYPE_SIZE == 64 -#define count_leading_zeros(COUNT, X) ((COUNT) = __builtin_clzll (X)) -#define count_trailing_zeros(COUNT, X) ((COUNT) = __builtin_ctzll (X)) -#define COUNT_LEADING_ZEROS_0 64 -#endif /* W_TYPE_SIZE == 64 */ - -#endif /* __aarch64__ */ - -#if defined (__alpha) && W_TYPE_SIZE == 64 -/* There is a bug in g++ before version 5 that - errors on __builtin_alpha_umulh. */ -#if !defined(__cplusplus) || __GNUC__ >= 5 -#define umul_ppmm(ph, pl, m0, m1) \ - do { \ - UDItype __m0 = (m0), __m1 = (m1); \ - (ph) = __builtin_alpha_umulh (__m0, __m1); \ - (pl) = __m0 * __m1; \ - } while (0) -#define UMUL_TIME 46 -#endif /* !c++ */ -#ifndef LONGLONG_STANDALONE -#define udiv_qrnnd(q, r, n1, n0, d) \ - do { UDItype __r; \ - (q) = __udiv_qrnnd (&__r, (n1), (n0), (d)); \ - (r) = __r; \ - } while (0) -extern UDItype __udiv_qrnnd (UDItype *, UDItype, UDItype, UDItype); -#define UDIV_TIME 220 -#endif /* LONGLONG_STANDALONE */ -#ifdef __alpha_cix__ -#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clzl (X)) -#define count_trailing_zeros(COUNT,X) ((COUNT) = __builtin_ctzl (X)) -#define COUNT_LEADING_ZEROS_0 64 -#else -#define count_leading_zeros(COUNT,X) \ - do { \ - UDItype __xr = (X), __t, __a; \ - __t = __builtin_alpha_cmpbge (0, __xr); \ - __a = __clz_tab[__t ^ 0xff] - 1; \ - __t = __builtin_alpha_extbl (__xr, __a); \ - (COUNT) = 64 - (__clz_tab[__t] + __a*8); \ - } while (0) -#define count_trailing_zeros(COUNT,X) \ - do { \ - UDItype __xr = (X), __t, __a; \ - __t = __builtin_alpha_cmpbge (0, __xr); \ - __t = ~__t & -~__t; \ - __a = ((__t & 0xCC) != 0) * 2; \ - __a += ((__t & 0xF0) != 0) * 4; \ - __a += ((__t & 0xAA) != 0); \ - __t = __builtin_alpha_extbl (__xr, __a); \ - __a <<= 3; \ - __t &= -__t; \ - __a += ((__t & 0xCC) != 0) * 2; \ - __a += ((__t & 0xF0) != 0) * 4; \ - __a += ((__t & 0xAA) != 0); \ - (COUNT) = __a; \ - } while (0) -#endif /* __alpha_cix__ */ -#endif /* __alpha */ - -#if defined (__arc__) && W_TYPE_SIZE == 32 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - __asm__ ("add.f %1, %4, %5\n\tadc %0, %2, %3" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "%r" ((USItype) (ah)), \ - "rICal" ((USItype) (bh)), \ - "%r" ((USItype) (al)), \ - "rICal" ((USItype) (bl))) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - __asm__ ("sub.f %1, %4, %5\n\tsbc %0, %2, %3" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "r" ((USItype) (ah)), \ - "rICal" ((USItype) (bh)), \ - "r" ((USItype) (al)), \ - "rICal" ((USItype) (bl))) - -#define __umulsidi3(u,v) ((UDItype)(USItype)u*(USItype)v) -#ifdef __ARC_NORM__ -#define count_leading_zeros(count, x) \ - do \ - { \ - SItype c_; \ - \ - __asm__ ("norm.f\t%0,%1\n\tmov.mi\t%0,-1" : "=r" (c_) : "r" (x) : "cc");\ - (count) = c_ + 1; \ - } \ - while (0) -#define COUNT_LEADING_ZEROS_0 32 -#endif /* __ARC_NORM__ */ -#endif /* __arc__ */ - -#if defined (__arm__) && (defined (__thumb2__) || !defined (__thumb__)) \ - && W_TYPE_SIZE == 32 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - __asm__ ("adds %1, %4, %5\n\tadc %0, %2, %3" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "%r" ((USItype) (ah)), \ - "rI" ((USItype) (bh)), \ - "%r" ((USItype) (al)), \ - "rI" ((USItype) (bl)) __CLOBBER_CC) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - __asm__ ("subs %1, %4, %5\n\tsbc %0, %2, %3" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "r" ((USItype) (ah)), \ - "rI" ((USItype) (bh)), \ - "r" ((USItype) (al)), \ - "rI" ((USItype) (bl)) __CLOBBER_CC) -# if defined(__ARM_ARCH_2__) || defined(__ARM_ARCH_2A__) \ - || defined(__ARM_ARCH_3__) -# define umul_ppmm(xh, xl, a, b) \ - do { \ - register USItype __t0, __t1, __t2; \ - __asm__ ("%@ Inlined umul_ppmm\n" \ - " mov %2, %5, lsr #16\n" \ - " mov %0, %6, lsr #16\n" \ - " bic %3, %5, %2, lsl #16\n" \ - " bic %4, %6, %0, lsl #16\n" \ - " mul %1, %3, %4\n" \ - " mul %4, %2, %4\n" \ - " mul %3, %0, %3\n" \ - " mul %0, %2, %0\n" \ - " adds %3, %4, %3\n" \ - " addcs %0, %0, #65536\n" \ - " adds %1, %1, %3, lsl #16\n" \ - " adc %0, %0, %3, lsr #16" \ - : "=&r" ((USItype) (xh)), \ - "=r" ((USItype) (xl)), \ - "=&r" (__t0), "=&r" (__t1), "=r" (__t2) \ - : "r" ((USItype) (a)), \ - "r" ((USItype) (b)) __CLOBBER_CC ); \ - } while (0) -# define UMUL_TIME 20 -# else -# define umul_ppmm(xh, xl, a, b) \ - do { \ - /* Generate umull, under compiler control. */ \ - register UDItype __t0 = (UDItype)(USItype)(a) * (USItype)(b); \ - (xl) = (USItype)__t0; \ - (xh) = (USItype)(__t0 >> 32); \ - } while (0) -# define UMUL_TIME 3 -# endif -# define UDIV_TIME 100 -#endif /* __arm__ */ - -#if defined(__arm__) -/* Let gcc decide how best to implement count_leading_zeros. */ -#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X)) -#define count_trailing_zeros(COUNT,X) ((COUNT) = __builtin_ctz (X)) -#define COUNT_LEADING_ZEROS_0 32 -#endif - -#if defined (__AVR__) - -#if W_TYPE_SIZE == 16 -#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X)) -#define count_trailing_zeros(COUNT,X) ((COUNT) = __builtin_ctz (X)) -#define COUNT_LEADING_ZEROS_0 16 -#endif /* W_TYPE_SIZE == 16 */ - -#if W_TYPE_SIZE == 32 -#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clzl (X)) -#define count_trailing_zeros(COUNT,X) ((COUNT) = __builtin_ctzl (X)) -#define COUNT_LEADING_ZEROS_0 32 -#endif /* W_TYPE_SIZE == 32 */ - -#if W_TYPE_SIZE == 64 -#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clzll (X)) -#define count_trailing_zeros(COUNT,X) ((COUNT) = __builtin_ctzll (X)) -#define COUNT_LEADING_ZEROS_0 64 -#endif /* W_TYPE_SIZE == 64 */ - -#endif /* defined (__AVR__) */ - -#if defined (__CRIS__) - -#if __CRIS_arch_version >= 3 -#define count_leading_zeros(COUNT, X) ((COUNT) = __builtin_clz (X)) -#define COUNT_LEADING_ZEROS_0 32 -#endif /* __CRIS_arch_version >= 3 */ - -#if __CRIS_arch_version >= 8 -#define count_trailing_zeros(COUNT, X) ((COUNT) = __builtin_ctz (X)) -#endif /* __CRIS_arch_version >= 8 */ - -#if __CRIS_arch_version >= 10 -#define __umulsidi3(u,v) ((UDItype)(USItype) (u) * (UDItype)(USItype) (v)) -#else -#define __umulsidi3 __umulsidi3 -extern UDItype __umulsidi3 (USItype, USItype); -#endif /* __CRIS_arch_version >= 10 */ - -#define umul_ppmm(w1, w0, u, v) \ - do { \ - UDItype __x = __umulsidi3 (u, v); \ - (w0) = (USItype) (__x); \ - (w1) = (USItype) (__x >> 32); \ - } while (0) - -/* FIXME: defining add_ssaaaa and sub_ddmmss should be advantageous for - DFmode ("double" intrinsics, avoiding two of the three insns handling - carry), but defining them as open-code C composing and doing the - operation in DImode (UDImode) shows that the DImode needs work: - register pressure from requiring neighboring registers and the - traffic to and from them come to dominate, in the 4.7 series. */ - -#endif /* defined (__CRIS__) */ - -#if defined (__hppa) && W_TYPE_SIZE == 32 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - __asm__ ("add %4,%5,%1\n\taddc %2,%3,%0" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "%rM" ((USItype) (ah)), \ - "rM" ((USItype) (bh)), \ - "%rM" ((USItype) (al)), \ - "rM" ((USItype) (bl))) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - __asm__ ("sub %4,%5,%1\n\tsubb %2,%3,%0" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "rM" ((USItype) (ah)), \ - "rM" ((USItype) (bh)), \ - "rM" ((USItype) (al)), \ - "rM" ((USItype) (bl))) -#if defined (_PA_RISC1_1) -#define umul_ppmm(w1, w0, u, v) \ - do { \ - union \ - { \ - UDItype __f; \ - struct {USItype __w1, __w0;} __w1w0; \ - } __t; \ - __asm__ ("xmpyu %1,%2,%0" \ - : "=x" (__t.__f) \ - : "x" ((USItype) (u)), \ - "x" ((USItype) (v))); \ - (w1) = __t.__w1w0.__w1; \ - (w0) = __t.__w1w0.__w0; \ - } while (0) -#define UMUL_TIME 8 -#else -#define UMUL_TIME 30 -#endif -#define UDIV_TIME 40 -#define count_leading_zeros(count, x) \ - do { \ - USItype __tmp; \ - __asm__ ( \ - "ldi 1,%0\n" \ -" extru,= %1,15,16,%%r0 ; Bits 31..16 zero?\n" \ -" extru,tr %1,15,16,%1 ; No. Shift down, skip add.\n"\ -" ldo 16(%0),%0 ; Yes. Perform add.\n" \ -" extru,= %1,23,8,%%r0 ; Bits 15..8 zero?\n" \ -" extru,tr %1,23,8,%1 ; No. Shift down, skip add.\n"\ -" ldo 8(%0),%0 ; Yes. Perform add.\n" \ -" extru,= %1,27,4,%%r0 ; Bits 7..4 zero?\n" \ -" extru,tr %1,27,4,%1 ; No. Shift down, skip add.\n"\ -" ldo 4(%0),%0 ; Yes. Perform add.\n" \ -" extru,= %1,29,2,%%r0 ; Bits 3..2 zero?\n" \ -" extru,tr %1,29,2,%1 ; No. Shift down, skip add.\n"\ -" ldo 2(%0),%0 ; Yes. Perform add.\n" \ -" extru %1,30,1,%1 ; Extract bit 1.\n" \ -" sub %0,%1,%0 ; Subtract it.\n" \ - : "=r" (count), "=r" (__tmp) : "1" (x)); \ - } while (0) -#endif - -#if (defined (__i370__) || defined (__s390__) || defined (__mvs__)) && W_TYPE_SIZE == 32 -#if !defined (__zarch__) -#define smul_ppmm(xh, xl, m0, m1) \ - do { \ - union {DItype __ll; \ - struct {USItype __h, __l;} __i; \ - } __x; \ - __asm__ ("lr %N0,%1\n\tmr %0,%2" \ - : "=&r" (__x.__ll) \ - : "r" (m0), "r" (m1)); \ - (xh) = __x.__i.__h; (xl) = __x.__i.__l; \ - } while (0) -#define sdiv_qrnnd(q, r, n1, n0, d) \ - do { \ - union {DItype __ll; \ - struct {USItype __h, __l;} __i; \ - } __x; \ - __x.__i.__h = n1; __x.__i.__l = n0; \ - __asm__ ("dr %0,%2" \ - : "=r" (__x.__ll) \ - : "0" (__x.__ll), "r" (d)); \ - (q) = __x.__i.__l; (r) = __x.__i.__h; \ - } while (0) -#else -#define smul_ppmm(xh, xl, m0, m1) \ - do { \ - register SItype __r0 __asm__ ("0"); \ - register SItype __r1 __asm__ ("1") = (m0); \ - \ - __asm__ ("mr\t%%r0,%3" \ - : "=r" (__r0), "=r" (__r1) \ - : "r" (__r1), "r" (m1)); \ - (xh) = __r0; (xl) = __r1; \ - } while (0) - -#define sdiv_qrnnd(q, r, n1, n0, d) \ - do { \ - register SItype __r0 __asm__ ("0") = (n1); \ - register SItype __r1 __asm__ ("1") = (n0); \ - \ - __asm__ ("dr\t%%r0,%4" \ - : "=r" (__r0), "=r" (__r1) \ - : "r" (__r0), "r" (__r1), "r" (d)); \ - (q) = __r1; (r) = __r0; \ - } while (0) -#endif /* __zarch__ */ -#endif - -#if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - __asm__ ("add{l} {%5,%1|%1,%5}\n\tadc{l} {%3,%0|%0,%3}" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "%0" ((USItype) (ah)), \ - "g" ((USItype) (bh)), \ - "%1" ((USItype) (al)), \ - "g" ((USItype) (bl))) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - __asm__ ("sub{l} {%5,%1|%1,%5}\n\tsbb{l} {%3,%0|%0,%3}" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "0" ((USItype) (ah)), \ - "g" ((USItype) (bh)), \ - "1" ((USItype) (al)), \ - "g" ((USItype) (bl))) -#define umul_ppmm(w1, w0, u, v) \ - __asm__ ("mul{l} %3" \ - : "=a" ((USItype) (w0)), \ - "=d" ((USItype) (w1)) \ - : "%0" ((USItype) (u)), \ - "rm" ((USItype) (v))) -#define udiv_qrnnd(q, r, n1, n0, dv) \ - __asm__ ("div{l} %4" \ - : "=a" ((USItype) (q)), \ - "=d" ((USItype) (r)) \ - : "0" ((USItype) (n0)), \ - "1" ((USItype) (n1)), \ - "rm" ((USItype) (dv))) -#define count_leading_zeros(count, x) ((count) = __builtin_clz (x)) -#define count_trailing_zeros(count, x) ((count) = __builtin_ctz (x)) -#define UMUL_TIME 40 -#define UDIV_TIME 40 -#endif /* 80x86 */ - -#if defined (__x86_64__) && W_TYPE_SIZE == 64 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - __asm__ ("add{q} {%5,%1|%1,%5}\n\tadc{q} {%3,%0|%0,%3}" \ - : "=r" ((UDItype) (sh)), \ - "=&r" ((UDItype) (sl)) \ - : "%0" ((UDItype) (ah)), \ - "rme" ((UDItype) (bh)), \ - "%1" ((UDItype) (al)), \ - "rme" ((UDItype) (bl))) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - __asm__ ("sub{q} {%5,%1|%1,%5}\n\tsbb{q} {%3,%0|%0,%3}" \ - : "=r" ((UDItype) (sh)), \ - "=&r" ((UDItype) (sl)) \ - : "0" ((UDItype) (ah)), \ - "rme" ((UDItype) (bh)), \ - "1" ((UDItype) (al)), \ - "rme" ((UDItype) (bl))) -#define umul_ppmm(w1, w0, u, v) \ - __asm__ ("mul{q} %3" \ - : "=a" ((UDItype) (w0)), \ - "=d" ((UDItype) (w1)) \ - : "%0" ((UDItype) (u)), \ - "rm" ((UDItype) (v))) -#define udiv_qrnnd(q, r, n1, n0, dv) \ - __asm__ ("div{q} %4" \ - : "=a" ((UDItype) (q)), \ - "=d" ((UDItype) (r)) \ - : "0" ((UDItype) (n0)), \ - "1" ((UDItype) (n1)), \ - "rm" ((UDItype) (dv))) -#define count_leading_zeros(count, x) ((count) = __builtin_clzll (x)) -#define count_trailing_zeros(count, x) ((count) = __builtin_ctzll (x)) -#define UMUL_TIME 40 -#define UDIV_TIME 40 -#endif /* x86_64 */ - -#if defined (__i960__) && W_TYPE_SIZE == 32 -#define umul_ppmm(w1, w0, u, v) \ - ({union {UDItype __ll; \ - struct {USItype __l, __h;} __i; \ - } __xx; \ - __asm__ ("emul %2,%1,%0" \ - : "=d" (__xx.__ll) \ - : "%dI" ((USItype) (u)), \ - "dI" ((USItype) (v))); \ - (w1) = __xx.__i.__h; (w0) = __xx.__i.__l;}) -#define __umulsidi3(u, v) \ - ({UDItype __w; \ - __asm__ ("emul %2,%1,%0" \ - : "=d" (__w) \ - : "%dI" ((USItype) (u)), \ - "dI" ((USItype) (v))); \ - __w; }) -#endif /* __i960__ */ - -#if defined (__ia64) && W_TYPE_SIZE == 64 -/* This form encourages gcc (pre-release 3.4 at least) to emit predicated - "sub r=r,r" and "sub r=r,r,1", giving a 2 cycle latency. The generic - code using "al>= _c; \ - if (_x >= 1 << 4) \ - _x >>= 4, _c += 4; \ - if (_x >= 1 << 2) \ - _x >>= 2, _c += 2; \ - _c += _x >> 1; \ - (count) = W_TYPE_SIZE - 1 - _c; \ - } while (0) -/* similar to what gcc does for __builtin_ffs, but 0 based rather than 1 - based, and we don't need a special case for x==0 here */ -#define count_trailing_zeros(count, x) \ - do { \ - UWtype __ctz_x = (x); \ - __asm__ ("popcnt %0 = %1" \ - : "=r" (count) \ - : "r" ((__ctz_x-1) & ~__ctz_x)); \ - } while (0) -#define UMUL_TIME 14 -#endif - -#if defined (__M32R__) && W_TYPE_SIZE == 32 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - /* The cmp clears the condition bit. */ \ - __asm__ ("cmp %0,%0\n\taddx %1,%5\n\taddx %0,%3" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "0" ((USItype) (ah)), \ - "r" ((USItype) (bh)), \ - "1" ((USItype) (al)), \ - "r" ((USItype) (bl)) \ - : "cbit") -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - /* The cmp clears the condition bit. */ \ - __asm__ ("cmp %0,%0\n\tsubx %1,%5\n\tsubx %0,%3" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "0" ((USItype) (ah)), \ - "r" ((USItype) (bh)), \ - "1" ((USItype) (al)), \ - "r" ((USItype) (bl)) \ - : "cbit") -#endif /* __M32R__ */ - -#if defined (__mc68000__) && W_TYPE_SIZE == 32 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - __asm__ ("add%.l %5,%1\n\taddx%.l %3,%0" \ - : "=d" ((USItype) (sh)), \ - "=&d" ((USItype) (sl)) \ - : "%0" ((USItype) (ah)), \ - "d" ((USItype) (bh)), \ - "%1" ((USItype) (al)), \ - "g" ((USItype) (bl))) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - __asm__ ("sub%.l %5,%1\n\tsubx%.l %3,%0" \ - : "=d" ((USItype) (sh)), \ - "=&d" ((USItype) (sl)) \ - : "0" ((USItype) (ah)), \ - "d" ((USItype) (bh)), \ - "1" ((USItype) (al)), \ - "g" ((USItype) (bl))) - -/* The '020, '030, '040, '060 and CPU32 have 32x32->64 and 64/32->32q-32r. */ -#if (defined (__mc68020__) && !defined (__mc68060__)) -#define umul_ppmm(w1, w0, u, v) \ - __asm__ ("mulu%.l %3,%1:%0" \ - : "=d" ((USItype) (w0)), \ - "=d" ((USItype) (w1)) \ - : "%0" ((USItype) (u)), \ - "dmi" ((USItype) (v))) -#define UMUL_TIME 45 -#define udiv_qrnnd(q, r, n1, n0, d) \ - __asm__ ("divu%.l %4,%1:%0" \ - : "=d" ((USItype) (q)), \ - "=d" ((USItype) (r)) \ - : "0" ((USItype) (n0)), \ - "1" ((USItype) (n1)), \ - "dmi" ((USItype) (d))) -#define UDIV_TIME 90 -#define sdiv_qrnnd(q, r, n1, n0, d) \ - __asm__ ("divs%.l %4,%1:%0" \ - : "=d" ((USItype) (q)), \ - "=d" ((USItype) (r)) \ - : "0" ((USItype) (n0)), \ - "1" ((USItype) (n1)), \ - "dmi" ((USItype) (d))) - -#elif defined (__mcoldfire__) /* not mc68020 */ - -#define umul_ppmm(xh, xl, a, b) \ - __asm__ ("| Inlined umul_ppmm\n" \ - " move%.l %2,%/d0\n" \ - " move%.l %3,%/d1\n" \ - " move%.l %/d0,%/d2\n" \ - " swap %/d0\n" \ - " move%.l %/d1,%/d3\n" \ - " swap %/d1\n" \ - " move%.w %/d2,%/d4\n" \ - " mulu %/d3,%/d4\n" \ - " mulu %/d1,%/d2\n" \ - " mulu %/d0,%/d3\n" \ - " mulu %/d0,%/d1\n" \ - " move%.l %/d4,%/d0\n" \ - " clr%.w %/d0\n" \ - " swap %/d0\n" \ - " add%.l %/d0,%/d2\n" \ - " add%.l %/d3,%/d2\n" \ - " jcc 1f\n" \ - " add%.l %#65536,%/d1\n" \ - "1: swap %/d2\n" \ - " moveq %#0,%/d0\n" \ - " move%.w %/d2,%/d0\n" \ - " move%.w %/d4,%/d2\n" \ - " move%.l %/d2,%1\n" \ - " add%.l %/d1,%/d0\n" \ - " move%.l %/d0,%0" \ - : "=g" ((USItype) (xh)), \ - "=g" ((USItype) (xl)) \ - : "g" ((USItype) (a)), \ - "g" ((USItype) (b)) \ - : "d0", "d1", "d2", "d3", "d4") -#define UMUL_TIME 100 -#define UDIV_TIME 400 -#else /* not ColdFire */ -/* %/ inserts REGISTER_PREFIX, %# inserts IMMEDIATE_PREFIX. */ -#define umul_ppmm(xh, xl, a, b) \ - __asm__ ("| Inlined umul_ppmm\n" \ - " move%.l %2,%/d0\n" \ - " move%.l %3,%/d1\n" \ - " move%.l %/d0,%/d2\n" \ - " swap %/d0\n" \ - " move%.l %/d1,%/d3\n" \ - " swap %/d1\n" \ - " move%.w %/d2,%/d4\n" \ - " mulu %/d3,%/d4\n" \ - " mulu %/d1,%/d2\n" \ - " mulu %/d0,%/d3\n" \ - " mulu %/d0,%/d1\n" \ - " move%.l %/d4,%/d0\n" \ - " eor%.w %/d0,%/d0\n" \ - " swap %/d0\n" \ - " add%.l %/d0,%/d2\n" \ - " add%.l %/d3,%/d2\n" \ - " jcc 1f\n" \ - " add%.l %#65536,%/d1\n" \ - "1: swap %/d2\n" \ - " moveq %#0,%/d0\n" \ - " move%.w %/d2,%/d0\n" \ - " move%.w %/d4,%/d2\n" \ - " move%.l %/d2,%1\n" \ - " add%.l %/d1,%/d0\n" \ - " move%.l %/d0,%0" \ - : "=g" ((USItype) (xh)), \ - "=g" ((USItype) (xl)) \ - : "g" ((USItype) (a)), \ - "g" ((USItype) (b)) \ - : "d0", "d1", "d2", "d3", "d4") -#define UMUL_TIME 100 -#define UDIV_TIME 400 - -#endif /* not mc68020 */ - -/* The '020, '030, '040 and '060 have bitfield insns. - cpu32 disguises as a 68020, but lacks them. */ -#if defined (__mc68020__) && !defined (__mcpu32__) -#define count_leading_zeros(count, x) \ - __asm__ ("bfffo %1{%b2:%b2},%0" \ - : "=d" ((USItype) (count)) \ - : "od" ((USItype) (x)), "n" (0)) -/* Some ColdFire architectures have a ff1 instruction supported via - __builtin_clz. */ -#elif defined (__mcfisaaplus__) || defined (__mcfisac__) -#define count_leading_zeros(count,x) ((count) = __builtin_clz (x)) -#define COUNT_LEADING_ZEROS_0 32 -#endif -#endif /* mc68000 */ - -#if defined (__m88000__) && W_TYPE_SIZE == 32 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - __asm__ ("addu.co %1,%r4,%r5\n\taddu.ci %0,%r2,%r3" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "%rJ" ((USItype) (ah)), \ - "rJ" ((USItype) (bh)), \ - "%rJ" ((USItype) (al)), \ - "rJ" ((USItype) (bl))) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - __asm__ ("subu.co %1,%r4,%r5\n\tsubu.ci %0,%r2,%r3" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "rJ" ((USItype) (ah)), \ - "rJ" ((USItype) (bh)), \ - "rJ" ((USItype) (al)), \ - "rJ" ((USItype) (bl))) -#define count_leading_zeros(count, x) \ - do { \ - USItype __cbtmp; \ - __asm__ ("ff1 %0,%1" \ - : "=r" (__cbtmp) \ - : "r" ((USItype) (x))); \ - (count) = __cbtmp ^ 31; \ - } while (0) -#define COUNT_LEADING_ZEROS_0 63 /* sic */ -#if defined (__mc88110__) -#define umul_ppmm(wh, wl, u, v) \ - do { \ - union {UDItype __ll; \ - struct {USItype __h, __l;} __i; \ - } __xx; \ - __asm__ ("mulu.d %0,%1,%2" \ - : "=r" (__xx.__ll) \ - : "r" ((USItype) (u)), \ - "r" ((USItype) (v))); \ - (wh) = __xx.__i.__h; \ - (wl) = __xx.__i.__l; \ - } while (0) -#define udiv_qrnnd(q, r, n1, n0, d) \ - ({union {UDItype __ll; \ - struct {USItype __h, __l;} __i; \ - } __xx; \ - USItype __q; \ - __xx.__i.__h = (n1); __xx.__i.__l = (n0); \ - __asm__ ("divu.d %0,%1,%2" \ - : "=r" (__q) \ - : "r" (__xx.__ll), \ - "r" ((USItype) (d))); \ - (r) = (n0) - __q * (d); (q) = __q; }) -#define UMUL_TIME 5 -#define UDIV_TIME 25 -#else -#define UMUL_TIME 17 -#define UDIV_TIME 150 -#endif /* __mc88110__ */ -#endif /* __m88000__ */ - -#if defined (__mn10300__) -# if defined (__AM33__) -# define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X)) -# define umul_ppmm(w1, w0, u, v) \ - asm("mulu %3,%2,%1,%0" : "=r"(w0), "=r"(w1) : "r"(u), "r"(v)) -# define smul_ppmm(w1, w0, u, v) \ - asm("mul %3,%2,%1,%0" : "=r"(w0), "=r"(w1) : "r"(u), "r"(v)) -# else -# define umul_ppmm(w1, w0, u, v) \ - asm("nop; nop; mulu %3,%0" : "=d"(w0), "=z"(w1) : "%0"(u), "d"(v)) -# define smul_ppmm(w1, w0, u, v) \ - asm("nop; nop; mul %3,%0" : "=d"(w0), "=z"(w1) : "%0"(u), "d"(v)) -# endif -# define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - do { \ - DWunion __s, __a, __b; \ - __a.s.low = (al); __a.s.high = (ah); \ - __b.s.low = (bl); __b.s.high = (bh); \ - __s.ll = __a.ll + __b.ll; \ - (sl) = __s.s.low; (sh) = __s.s.high; \ - } while (0) -# define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - do { \ - DWunion __s, __a, __b; \ - __a.s.low = (al); __a.s.high = (ah); \ - __b.s.low = (bl); __b.s.high = (bh); \ - __s.ll = __a.ll - __b.ll; \ - (sl) = __s.s.low; (sh) = __s.s.high; \ - } while (0) -# define udiv_qrnnd(q, r, nh, nl, d) \ - asm("divu %2,%0" : "=D"(q), "=z"(r) : "D"(d), "0"(nl), "1"(nh)) -# define sdiv_qrnnd(q, r, nh, nl, d) \ - asm("div %2,%0" : "=D"(q), "=z"(r) : "D"(d), "0"(nl), "1"(nh)) -# define UMUL_TIME 3 -# define UDIV_TIME 38 -#endif - -#if defined (__mips__) && W_TYPE_SIZE == 32 -#define umul_ppmm(w1, w0, u, v) \ - do { \ - UDItype __x = (UDItype) (USItype) (u) * (USItype) (v); \ - (w1) = (USItype) (__x >> 32); \ - (w0) = (USItype) (__x); \ - } while (0) -#define UMUL_TIME 10 -#define UDIV_TIME 100 - -#if (__mips == 32 || __mips == 64) && ! defined (__mips16) -#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X)) -#define COUNT_LEADING_ZEROS_0 32 -#endif -#endif /* __mips__ */ - -#if defined (__ns32000__) && W_TYPE_SIZE == 32 -#define umul_ppmm(w1, w0, u, v) \ - ({union {UDItype __ll; \ - struct {USItype __l, __h;} __i; \ - } __xx; \ - __asm__ ("meid %2,%0" \ - : "=g" (__xx.__ll) \ - : "%0" ((USItype) (u)), \ - "g" ((USItype) (v))); \ - (w1) = __xx.__i.__h; (w0) = __xx.__i.__l;}) -#define __umulsidi3(u, v) \ - ({UDItype __w; \ - __asm__ ("meid %2,%0" \ - : "=g" (__w) \ - : "%0" ((USItype) (u)), \ - "g" ((USItype) (v))); \ - __w; }) -#define udiv_qrnnd(q, r, n1, n0, d) \ - ({union {UDItype __ll; \ - struct {USItype __l, __h;} __i; \ - } __xx; \ - __xx.__i.__h = (n1); __xx.__i.__l = (n0); \ - __asm__ ("deid %2,%0" \ - : "=g" (__xx.__ll) \ - : "0" (__xx.__ll), \ - "g" ((USItype) (d))); \ - (r) = __xx.__i.__l; (q) = __xx.__i.__h; }) -#define count_trailing_zeros(count,x) \ - do { \ - __asm__ ("ffsd %2,%0" \ - : "=r" ((USItype) (count)) \ - : "0" ((USItype) 0), \ - "r" ((USItype) (x))); \ - } while (0) -#endif /* __ns32000__ */ - -/* FIXME: We should test _IBMR2 here when we add assembly support for the - system vendor compilers. - FIXME: What's needed for gcc PowerPC VxWorks? __vxworks__ is not good - enough, since that hits ARM and m68k too. */ -#if (defined (_ARCH_PPC) /* AIX */ \ - || defined (__powerpc__) /* gcc */ \ - || defined (__POWERPC__) /* BEOS */ \ - || defined (__ppc__) /* Darwin */ \ - || (defined (PPC) && ! defined (CPU_FAMILY)) /* gcc 2.7.x GNU&SysV */ \ - || (defined (PPC) && defined (CPU_FAMILY) /* VxWorks */ \ - && CPU_FAMILY == PPC) \ - ) && W_TYPE_SIZE == 32 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - do { \ - if (__builtin_constant_p (bh) && (bh) == 0) \ - __asm__ ("add%I4c %1,%3,%4\n\taddze %0,%2" \ - : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\ - else if (__builtin_constant_p (bh) && (bh) == ~(USItype) 0) \ - __asm__ ("add%I4c %1,%3,%4\n\taddme %0,%2" \ - : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\ - else \ - __asm__ ("add%I5c %1,%4,%5\n\tadde %0,%2,%3" \ - : "=r" (sh), "=&r" (sl) \ - : "%r" (ah), "r" (bh), "%r" (al), "rI" (bl)); \ - } while (0) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - do { \ - if (__builtin_constant_p (ah) && (ah) == 0) \ - __asm__ ("subf%I3c %1,%4,%3\n\tsubfze %0,%2" \ - : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\ - else if (__builtin_constant_p (ah) && (ah) == ~(USItype) 0) \ - __asm__ ("subf%I3c %1,%4,%3\n\tsubfme %0,%2" \ - : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\ - else if (__builtin_constant_p (bh) && (bh) == 0) \ - __asm__ ("subf%I3c %1,%4,%3\n\taddme %0,%2" \ - : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\ - else if (__builtin_constant_p (bh) && (bh) == ~(USItype) 0) \ - __asm__ ("subf%I3c %1,%4,%3\n\taddze %0,%2" \ - : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\ - else \ - __asm__ ("subf%I4c %1,%5,%4\n\tsubfe %0,%3,%2" \ - : "=r" (sh), "=&r" (sl) \ - : "r" (ah), "r" (bh), "rI" (al), "r" (bl)); \ - } while (0) -#define count_leading_zeros(count, x) \ - __asm__ ("cntlzw %0,%1" : "=r" (count) : "r" (x)) -#define COUNT_LEADING_ZEROS_0 32 -#if defined (_ARCH_PPC) || defined (__powerpc__) || defined (__POWERPC__) \ - || defined (__ppc__) \ - || (defined (PPC) && ! defined (CPU_FAMILY)) /* gcc 2.7.x GNU&SysV */ \ - || (defined (PPC) && defined (CPU_FAMILY) /* VxWorks */ \ - && CPU_FAMILY == PPC) -#define umul_ppmm(ph, pl, m0, m1) \ - do { \ - USItype __m0 = (m0), __m1 = (m1); \ - __asm__ ("mulhwu %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \ - (pl) = __m0 * __m1; \ - } while (0) -#define UMUL_TIME 15 -#define smul_ppmm(ph, pl, m0, m1) \ - do { \ - SItype __m0 = (m0), __m1 = (m1); \ - __asm__ ("mulhw %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \ - (pl) = __m0 * __m1; \ - } while (0) -#define SMUL_TIME 14 -#define UDIV_TIME 120 -#endif -#endif /* 32-bit POWER architecture variants. */ - -/* We should test _IBMR2 here when we add assembly support for the system - vendor compilers. */ -#if (defined (_ARCH_PPC64) || defined (__powerpc64__)) && W_TYPE_SIZE == 64 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - do { \ - if (__builtin_constant_p (bh) && (bh) == 0) \ - __asm__ ("add%I4c %1,%3,%4\n\taddze %0,%2" \ - : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\ - else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0) \ - __asm__ ("add%I4c %1,%3,%4\n\taddme %0,%2" \ - : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\ - else \ - __asm__ ("add%I5c %1,%4,%5\n\tadde %0,%2,%3" \ - : "=r" (sh), "=&r" (sl) \ - : "%r" (ah), "r" (bh), "%r" (al), "rI" (bl)); \ - } while (0) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - do { \ - if (__builtin_constant_p (ah) && (ah) == 0) \ - __asm__ ("subf%I3c %1,%4,%3\n\tsubfze %0,%2" \ - : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\ - else if (__builtin_constant_p (ah) && (ah) == ~(UDItype) 0) \ - __asm__ ("subf%I3c %1,%4,%3\n\tsubfme %0,%2" \ - : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\ - else if (__builtin_constant_p (bh) && (bh) == 0) \ - __asm__ ("subf%I3c %1,%4,%3\n\taddme %0,%2" \ - : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\ - else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0) \ - __asm__ ("subf%I3c %1,%4,%3\n\taddze %0,%2" \ - : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\ - else \ - __asm__ ("subf%I4c %1,%5,%4\n\tsubfe %0,%3,%2" \ - : "=r" (sh), "=&r" (sl) \ - : "r" (ah), "r" (bh), "rI" (al), "r" (bl)); \ - } while (0) -#define count_leading_zeros(count, x) \ - __asm__ ("cntlzd %0,%1" : "=r" (count) : "r" (x)) -#define COUNT_LEADING_ZEROS_0 64 -#define umul_ppmm(ph, pl, m0, m1) \ - do { \ - UDItype __m0 = (m0), __m1 = (m1); \ - __asm__ ("mulhdu %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \ - (pl) = __m0 * __m1; \ - } while (0) -#define UMUL_TIME 15 -#define smul_ppmm(ph, pl, m0, m1) \ - do { \ - DItype __m0 = (m0), __m1 = (m1); \ - __asm__ ("mulhd %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \ - (pl) = __m0 * __m1; \ - } while (0) -#define SMUL_TIME 14 /* ??? */ -#define UDIV_TIME 120 /* ??? */ -#endif /* 64-bit PowerPC. */ - -#if defined (__ibm032__) /* RT/ROMP */ && W_TYPE_SIZE == 32 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - __asm__ ("a %1,%5\n\tae %0,%3" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "%0" ((USItype) (ah)), \ - "r" ((USItype) (bh)), \ - "%1" ((USItype) (al)), \ - "r" ((USItype) (bl))) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - __asm__ ("s %1,%5\n\tse %0,%3" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "0" ((USItype) (ah)), \ - "r" ((USItype) (bh)), \ - "1" ((USItype) (al)), \ - "r" ((USItype) (bl))) -#define umul_ppmm(ph, pl, m0, m1) \ - do { \ - USItype __m0 = (m0), __m1 = (m1); \ - __asm__ ( \ - "s r2,r2\n" \ -" mts r10,%2\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" m r2,%3\n" \ -" cas %0,r2,r0\n" \ -" mfs r10,%1" \ - : "=r" ((USItype) (ph)), \ - "=r" ((USItype) (pl)) \ - : "%r" (__m0), \ - "r" (__m1) \ - : "r2"); \ - (ph) += ((((SItype) __m0 >> 31) & __m1) \ - + (((SItype) __m1 >> 31) & __m0)); \ - } while (0) -#define UMUL_TIME 20 -#define UDIV_TIME 200 -#define count_leading_zeros(count, x) \ - do { \ - if ((x) >= 0x10000) \ - __asm__ ("clz %0,%1" \ - : "=r" ((USItype) (count)) \ - : "r" ((USItype) (x) >> 16)); \ - else \ - { \ - __asm__ ("clz %0,%1" \ - : "=r" ((USItype) (count)) \ - : "r" ((USItype) (x))); \ - (count) += 16; \ - } \ - } while (0) -#endif - -#if defined(__sh__) && W_TYPE_SIZE == 32 -#ifndef __sh1__ -#define umul_ppmm(w1, w0, u, v) \ - __asm__ ( \ - "dmulu.l %2,%3\n\tsts%M1 macl,%1\n\tsts%M0 mach,%0" \ - : "=r<" ((USItype)(w1)), \ - "=r<" ((USItype)(w0)) \ - : "r" ((USItype)(u)), \ - "r" ((USItype)(v)) \ - : "macl", "mach") -#define UMUL_TIME 5 -#endif - -/* This is the same algorithm as __udiv_qrnnd_c. */ -#define UDIV_NEEDS_NORMALIZATION 1 - -#ifdef __FDPIC__ -/* FDPIC needs a special version of the asm fragment to extract the - code address from the function descriptor. __udiv_qrnnd_16 is - assumed to be local and not to use the GOT, so loading r12 is - not needed. */ -#define udiv_qrnnd(q, r, n1, n0, d) \ - do { \ - extern UWtype __udiv_qrnnd_16 (UWtype, UWtype) \ - __attribute__ ((visibility ("hidden"))); \ - /* r0: rn r1: qn */ /* r0: n1 r4: n0 r5: d r6: d1 */ /* r2: __m */ \ - __asm__ ( \ - "mov%M4 %4,r5\n" \ -" swap.w %3,r4\n" \ -" swap.w r5,r6\n" \ -" mov.l @%5,r2\n" \ -" jsr @r2\n" \ -" shll16 r6\n" \ -" swap.w r4,r4\n" \ -" mov.l @%5,r2\n" \ -" jsr @r2\n" \ -" swap.w r1,%0\n" \ -" or r1,%0" \ - : "=r" (q), "=&z" (r) \ - : "1" (n1), "r" (n0), "rm" (d), "r" (&__udiv_qrnnd_16) \ - : "r1", "r2", "r4", "r5", "r6", "pr", "t"); \ - } while (0) -#else -#define udiv_qrnnd(q, r, n1, n0, d) \ - do { \ - extern UWtype __udiv_qrnnd_16 (UWtype, UWtype) \ - __attribute__ ((visibility ("hidden"))); \ - /* r0: rn r1: qn */ /* r0: n1 r4: n0 r5: d r6: d1 */ /* r2: __m */ \ - __asm__ ( \ - "mov%M4 %4,r5\n" \ -" swap.w %3,r4\n" \ -" swap.w r5,r6\n" \ -" jsr @%5\n" \ -" shll16 r6\n" \ -" swap.w r4,r4\n" \ -" jsr @%5\n" \ -" swap.w r1,%0\n" \ -" or r1,%0" \ - : "=r" (q), "=&z" (r) \ - : "1" (n1), "r" (n0), "rm" (d), "r" (&__udiv_qrnnd_16) \ - : "r1", "r2", "r4", "r5", "r6", "pr", "t"); \ - } while (0) -#endif /* __FDPIC__ */ - -#define UDIV_TIME 80 - -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - __asm__ ("clrt;subc %5,%1; subc %4,%0" \ - : "=r" (sh), "=r" (sl) \ - : "0" (ah), "1" (al), "r" (bh), "r" (bl) : "t") - -#endif /* __sh__ */ - -#if defined (__sparc__) && !defined (__arch64__) && !defined (__sparcv9) \ - && W_TYPE_SIZE == 32 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - __asm__ ("addcc %r4,%5,%1\n\taddx %r2,%3,%0" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "%rJ" ((USItype) (ah)), \ - "rI" ((USItype) (bh)), \ - "%rJ" ((USItype) (al)), \ - "rI" ((USItype) (bl)) \ - __CLOBBER_CC) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - __asm__ ("subcc %r4,%5,%1\n\tsubx %r2,%3,%0" \ - : "=r" ((USItype) (sh)), \ - "=&r" ((USItype) (sl)) \ - : "rJ" ((USItype) (ah)), \ - "rI" ((USItype) (bh)), \ - "rJ" ((USItype) (al)), \ - "rI" ((USItype) (bl)) \ - __CLOBBER_CC) -#if defined (__sparc_v9__) -#define umul_ppmm(w1, w0, u, v) \ - do { \ - register USItype __g1 asm ("g1"); \ - __asm__ ("umul\t%2,%3,%1\n\t" \ - "srlx\t%1, 32, %0" \ - : "=r" ((USItype) (w1)), \ - "=r" (__g1) \ - : "r" ((USItype) (u)), \ - "r" ((USItype) (v))); \ - (w0) = __g1; \ - } while (0) -#define udiv_qrnnd(__q, __r, __n1, __n0, __d) \ - __asm__ ("mov\t%2,%%y\n\t" \ - "udiv\t%3,%4,%0\n\t" \ - "umul\t%0,%4,%1\n\t" \ - "sub\t%3,%1,%1" \ - : "=&r" ((USItype) (__q)), \ - "=&r" ((USItype) (__r)) \ - : "r" ((USItype) (__n1)), \ - "r" ((USItype) (__n0)), \ - "r" ((USItype) (__d))) -#else -#if defined (__sparc_v8__) -#define umul_ppmm(w1, w0, u, v) \ - __asm__ ("umul %2,%3,%1;rd %%y,%0" \ - : "=r" ((USItype) (w1)), \ - "=r" ((USItype) (w0)) \ - : "r" ((USItype) (u)), \ - "r" ((USItype) (v))) -#define udiv_qrnnd(__q, __r, __n1, __n0, __d) \ - __asm__ ("mov %2,%%y;nop;nop;nop;udiv %3,%4,%0;umul %0,%4,%1;sub %3,%1,%1"\ - : "=&r" ((USItype) (__q)), \ - "=&r" ((USItype) (__r)) \ - : "r" ((USItype) (__n1)), \ - "r" ((USItype) (__n0)), \ - "r" ((USItype) (__d))) -#else -#if defined (__sparclite__) -/* This has hardware multiply but not divide. It also has two additional - instructions scan (ffs from high bit) and divscc. */ -#define umul_ppmm(w1, w0, u, v) \ - __asm__ ("umul %2,%3,%1;rd %%y,%0" \ - : "=r" ((USItype) (w1)), \ - "=r" ((USItype) (w0)) \ - : "r" ((USItype) (u)), \ - "r" ((USItype) (v))) -#define udiv_qrnnd(q, r, n1, n0, d) \ - __asm__ ("! Inlined udiv_qrnnd\n" \ -" wr %%g0,%2,%%y ! Not a delayed write for sparclite\n" \ -" tst %%g0\n" \ -" divscc %3,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%%g1\n" \ -" divscc %%g1,%4,%0\n" \ -" rd %%y,%1\n" \ -" bl,a 1f\n" \ -" add %1,%4,%1\n" \ -"1: ! End of inline udiv_qrnnd" \ - : "=r" ((USItype) (q)), \ - "=r" ((USItype) (r)) \ - : "r" ((USItype) (n1)), \ - "r" ((USItype) (n0)), \ - "rI" ((USItype) (d)) \ - : "g1" __AND_CLOBBER_CC) -#define UDIV_TIME 37 -#define count_leading_zeros(count, x) \ - do { \ - __asm__ ("scan %1,1,%0" \ - : "=r" ((USItype) (count)) \ - : "r" ((USItype) (x))); \ - } while (0) -/* Early sparclites return 63 for an argument of 0, but they warn that future - implementations might change this. Therefore, leave COUNT_LEADING_ZEROS_0 - undefined. */ -#else -/* SPARC without integer multiplication and divide instructions. - (i.e. at least Sun4/20,40,60,65,75,110,260,280,330,360,380,470,490) */ -#define umul_ppmm(w1, w0, u, v) \ - __asm__ ("! Inlined umul_ppmm\n" \ -" wr %%g0,%2,%%y ! SPARC has 0-3 delay insn after a wr\n"\ -" sra %3,31,%%o5 ! Don't move this insn\n" \ -" and %2,%%o5,%%o5 ! Don't move this insn\n" \ -" andcc %%g0,0,%%g1 ! Don't move this insn\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,%3,%%g1\n" \ -" mulscc %%g1,0,%%g1\n" \ -" add %%g1,%%o5,%0\n" \ -" rd %%y,%1" \ - : "=r" ((USItype) (w1)), \ - "=r" ((USItype) (w0)) \ - : "%rI" ((USItype) (u)), \ - "r" ((USItype) (v)) \ - : "g1", "o5" __AND_CLOBBER_CC) -#define UMUL_TIME 39 /* 39 instructions */ -/* It's quite necessary to add this much assembler for the sparc. - The default udiv_qrnnd (in C) is more than 10 times slower! */ -#define udiv_qrnnd(__q, __r, __n1, __n0, __d) \ - __asm__ ("! Inlined udiv_qrnnd\n" \ -" mov 32,%%g1\n" \ -" subcc %1,%2,%%g0\n" \ -"1: bcs 5f\n" \ -" addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb\n" \ -" sub %1,%2,%1 ! this kills msb of n\n" \ -" addx %1,%1,%1 ! so this can't give carry\n" \ -" subcc %%g1,1,%%g1\n" \ -"2: bne 1b\n" \ -" subcc %1,%2,%%g0\n" \ -" bcs 3f\n" \ -" addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb\n" \ -" b 3f\n" \ -" sub %1,%2,%1 ! this kills msb of n\n" \ -"4: sub %1,%2,%1\n" \ -"5: addxcc %1,%1,%1\n" \ -" bcc 2b\n" \ -" subcc %%g1,1,%%g1\n" \ -"! Got carry from n. Subtract next step to cancel this carry.\n" \ -" bne 4b\n" \ -" addcc %0,%0,%0 ! shift n1n0 and a 0-bit in lsb\n" \ -" sub %1,%2,%1\n" \ -"3: xnor %0,0,%0\n" \ -" ! End of inline udiv_qrnnd" \ - : "=&r" ((USItype) (__q)), \ - "=&r" ((USItype) (__r)) \ - : "r" ((USItype) (__d)), \ - "1" ((USItype) (__n1)), \ - "0" ((USItype) (__n0)) : "g1" __AND_CLOBBER_CC) -#define UDIV_TIME (3+7*32) /* 7 instructions/iteration. 32 iterations. */ -#endif /* __sparclite__ */ -#endif /* __sparc_v8__ */ -#endif /* __sparc_v9__ */ -#endif /* sparc32 */ - -#if ((defined (__sparc__) && defined (__arch64__)) || defined (__sparcv9)) \ - && W_TYPE_SIZE == 64 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - do { \ - UDItype __carry = 0; \ - __asm__ ("addcc\t%r5,%6,%1\n\t" \ - "add\t%r3,%4,%0\n\t" \ - "movcs\t%%xcc, 1, %2\n\t" \ - "add\t%0, %2, %0" \ - : "=r" ((UDItype)(sh)), \ - "=&r" ((UDItype)(sl)), \ - "+r" (__carry) \ - : "%rJ" ((UDItype)(ah)), \ - "rI" ((UDItype)(bh)), \ - "%rJ" ((UDItype)(al)), \ - "rI" ((UDItype)(bl)) \ - __CLOBBER_CC); \ - } while (0) - -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - do { \ - UDItype __carry = 0; \ - __asm__ ("subcc\t%r5,%6,%1\n\t" \ - "sub\t%r3,%4,%0\n\t" \ - "movcs\t%%xcc, 1, %2\n\t" \ - "sub\t%0, %2, %0" \ - : "=r" ((UDItype)(sh)), \ - "=&r" ((UDItype)(sl)), \ - "+r" (__carry) \ - : "%rJ" ((UDItype)(ah)), \ - "rI" ((UDItype)(bh)), \ - "%rJ" ((UDItype)(al)), \ - "rI" ((UDItype)(bl)) \ - __CLOBBER_CC); \ - } while (0) - -#define umul_ppmm(wh, wl, u, v) \ - do { \ - UDItype tmp1, tmp2, tmp3, tmp4; \ - __asm__ __volatile__ ( \ - "srl %7,0,%3\n\t" \ - "mulx %3,%6,%1\n\t" \ - "srlx %6,32,%2\n\t" \ - "mulx %2,%3,%4\n\t" \ - "sllx %4,32,%5\n\t" \ - "srl %6,0,%3\n\t" \ - "sub %1,%5,%5\n\t" \ - "srlx %5,32,%5\n\t" \ - "addcc %4,%5,%4\n\t" \ - "srlx %7,32,%5\n\t" \ - "mulx %3,%5,%3\n\t" \ - "mulx %2,%5,%5\n\t" \ - "sethi %%hi(0x80000000),%2\n\t" \ - "addcc %4,%3,%4\n\t" \ - "srlx %4,32,%4\n\t" \ - "add %2,%2,%2\n\t" \ - "movcc %%xcc,%%g0,%2\n\t" \ - "addcc %5,%4,%5\n\t" \ - "sllx %3,32,%3\n\t" \ - "add %1,%3,%1\n\t" \ - "add %5,%2,%0" \ - : "=r" ((UDItype)(wh)), \ - "=&r" ((UDItype)(wl)), \ - "=&r" (tmp1), "=&r" (tmp2), "=&r" (tmp3), "=&r" (tmp4) \ - : "r" ((UDItype)(u)), \ - "r" ((UDItype)(v)) \ - __CLOBBER_CC); \ - } while (0) -#define UMUL_TIME 96 -#define UDIV_TIME 230 -#endif /* sparc64 */ - -#if defined (__vax__) && W_TYPE_SIZE == 32 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - __asm__ ("addl2 %5,%1\n\tadwc %3,%0" \ - : "=g" ((USItype) (sh)), \ - "=&g" ((USItype) (sl)) \ - : "%0" ((USItype) (ah)), \ - "g" ((USItype) (bh)), \ - "%1" ((USItype) (al)), \ - "g" ((USItype) (bl))) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - __asm__ ("subl2 %5,%1\n\tsbwc %3,%0" \ - : "=g" ((USItype) (sh)), \ - "=&g" ((USItype) (sl)) \ - : "0" ((USItype) (ah)), \ - "g" ((USItype) (bh)), \ - "1" ((USItype) (al)), \ - "g" ((USItype) (bl))) -#define umul_ppmm(xh, xl, m0, m1) \ - do { \ - union { \ - UDItype __ll; \ - struct {USItype __l, __h;} __i; \ - } __xx; \ - USItype __m0 = (m0), __m1 = (m1); \ - __asm__ ("emul %1,%2,$0,%0" \ - : "=r" (__xx.__ll) \ - : "g" (__m0), \ - "g" (__m1)); \ - (xh) = __xx.__i.__h; \ - (xl) = __xx.__i.__l; \ - (xh) += ((((SItype) __m0 >> 31) & __m1) \ - + (((SItype) __m1 >> 31) & __m0)); \ - } while (0) -#define sdiv_qrnnd(q, r, n1, n0, d) \ - do { \ - union {DItype __ll; \ - struct {SItype __l, __h;} __i; \ - } __xx; \ - __xx.__i.__h = n1; __xx.__i.__l = n0; \ - __asm__ ("ediv %3,%2,%0,%1" \ - : "=g" (q), "=g" (r) \ - : "g" (__xx.__ll), "g" (d)); \ - } while (0) -#endif /* __vax__ */ - -#ifdef _TMS320C6X -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - do \ - { \ - UDItype __ll; \ - __asm__ ("addu .l1 %1, %2, %0" \ - : "=a" (__ll) : "a" (al), "a" (bl)); \ - (sl) = (USItype)__ll; \ - (sh) = ((USItype)(__ll >> 32)) + (ah) + (bh); \ - } \ - while (0) - -#ifdef _TMS320C6400_PLUS -#define __umulsidi3(u,v) ((UDItype)(USItype)u*(USItype)v) -#define umul_ppmm(w1, w0, u, v) \ - do { \ - UDItype __x = (UDItype) (USItype) (u) * (USItype) (v); \ - (w1) = (USItype) (__x >> 32); \ - (w0) = (USItype) (__x); \ - } while (0) -#endif /* _TMS320C6400_PLUS */ - -#define count_leading_zeros(count, x) ((count) = __builtin_clz (x)) -#ifdef _TMS320C6400 -#define count_trailing_zeros(count, x) ((count) = __builtin_ctz (x)) -#endif -#define UMUL_TIME 4 -#define UDIV_TIME 40 -#endif /* _TMS320C6X */ - -#if defined (__xtensa__) && W_TYPE_SIZE == 32 -/* This code is not Xtensa-configuration-specific, so rely on the compiler - to expand builtin functions depending on what configuration features - are available. This avoids library calls when the operation can be - performed in-line. */ -#define umul_ppmm(w1, w0, u, v) \ - do { \ - DWunion __w; \ - __w.ll = __builtin_umulsidi3 (u, v); \ - w1 = __w.s.high; \ - w0 = __w.s.low; \ - } while (0) -#define __umulsidi3(u, v) __builtin_umulsidi3 (u, v) -#define count_leading_zeros(COUNT, X) ((COUNT) = __builtin_clz (X)) -#define count_trailing_zeros(COUNT, X) ((COUNT) = __builtin_ctz (X)) -#endif /* __xtensa__ */ - -#if defined xstormy16 -extern UHItype __stormy16_count_leading_zeros (UHItype); -#define count_leading_zeros(count, x) \ - do \ - { \ - UHItype size; \ - \ - /* We assume that W_TYPE_SIZE is a multiple of 16... */ \ - for ((count) = 0, size = W_TYPE_SIZE; size; size -= 16) \ - { \ - UHItype c; \ - \ - c = __clzhi2 ((x) >> (size - 16)); \ - (count) += c; \ - if (c != 16) \ - break; \ - } \ - } \ - while (0) -#define COUNT_LEADING_ZEROS_0 W_TYPE_SIZE -#endif - -#if defined (__z8000__) && W_TYPE_SIZE == 16 -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - __asm__ ("add %H1,%H5\n\tadc %H0,%H3" \ - : "=r" ((unsigned int)(sh)), \ - "=&r" ((unsigned int)(sl)) \ - : "%0" ((unsigned int)(ah)), \ - "r" ((unsigned int)(bh)), \ - "%1" ((unsigned int)(al)), \ - "rQR" ((unsigned int)(bl))) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - __asm__ ("sub %H1,%H5\n\tsbc %H0,%H3" \ - : "=r" ((unsigned int)(sh)), \ - "=&r" ((unsigned int)(sl)) \ - : "0" ((unsigned int)(ah)), \ - "r" ((unsigned int)(bh)), \ - "1" ((unsigned int)(al)), \ - "rQR" ((unsigned int)(bl))) -#define umul_ppmm(xh, xl, m0, m1) \ - do { \ - union {long int __ll; \ - struct {unsigned int __h, __l;} __i; \ - } __xx; \ - unsigned int __m0 = (m0), __m1 = (m1); \ - __asm__ ("mult %S0,%H3" \ - : "=r" (__xx.__i.__h), \ - "=r" (__xx.__i.__l) \ - : "%1" (__m0), \ - "rQR" (__m1)); \ - (xh) = __xx.__i.__h; (xl) = __xx.__i.__l; \ - (xh) += ((((signed int) __m0 >> 15) & __m1) \ - + (((signed int) __m1 >> 15) & __m0)); \ - } while (0) -#endif /* __z8000__ */ - -#endif /* __GNUC__ */ - -/* If this machine has no inline assembler, use C macros. */ - -#if !defined (add_ssaaaa) -#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - do { \ - UWtype __x; \ - __x = (al) + (bl); \ - (sh) = (ah) + (bh) + (__x < (al)); \ - (sl) = __x; \ - } while (0) -#endif - -#if !defined (sub_ddmmss) -#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - do { \ - UWtype __x; \ - __x = (al) - (bl); \ - (sh) = (ah) - (bh) - (__x > (al)); \ - (sl) = __x; \ - } while (0) -#endif - -/* If we lack umul_ppmm but have smul_ppmm, define umul_ppmm in terms of - smul_ppmm. */ -#if !defined (umul_ppmm) && defined (smul_ppmm) -#define umul_ppmm(w1, w0, u, v) \ - do { \ - UWtype __w1; \ - UWtype __xm0 = (u), __xm1 = (v); \ - smul_ppmm (__w1, w0, __xm0, __xm1); \ - (w1) = __w1 + (-(__xm0 >> (W_TYPE_SIZE - 1)) & __xm1) \ - + (-(__xm1 >> (W_TYPE_SIZE - 1)) & __xm0); \ - } while (0) -#endif - -/* If we still don't have umul_ppmm, define it using plain C. */ -#if !defined (umul_ppmm) -#define umul_ppmm(w1, w0, u, v) \ - do { \ - UWtype __x0, __x1, __x2, __x3; \ - UHWtype __ul, __vl, __uh, __vh; \ - \ - __ul = __ll_lowpart (u); \ - __uh = __ll_highpart (u); \ - __vl = __ll_lowpart (v); \ - __vh = __ll_highpart (v); \ - \ - __x0 = (UWtype) __ul * __vl; \ - __x1 = (UWtype) __ul * __vh; \ - __x2 = (UWtype) __uh * __vl; \ - __x3 = (UWtype) __uh * __vh; \ - \ - __x1 += __ll_highpart (__x0);/* this can't give carry */ \ - __x1 += __x2; /* but this indeed can */ \ - if (__x1 < __x2) /* did we get it? */ \ - __x3 += __ll_B; /* yes, add it in the proper pos. */ \ - \ - (w1) = __x3 + __ll_highpart (__x1); \ - (w0) = __ll_lowpart (__x1) * __ll_B + __ll_lowpart (__x0); \ - } while (0) -#endif - -#if !defined (__umulsidi3) -#define __umulsidi3(u, v) \ - ({DWunion __w; \ - umul_ppmm (__w.s.high, __w.s.low, u, v); \ - __w.ll; }) -#endif - -/* Define this unconditionally, so it can be used for debugging. */ -#define __udiv_qrnnd_c(q, r, n1, n0, d) \ - do { \ - UWtype __d1, __d0, __q1, __q0; \ - UWtype __r1, __r0, __m; \ - __d1 = __ll_highpart (d); \ - __d0 = __ll_lowpart (d); \ - \ - __r1 = (n1) % __d1; \ - __q1 = (n1) / __d1; \ - __m = (UWtype) __q1 * __d0; \ - __r1 = __r1 * __ll_B | __ll_highpart (n0); \ - if (__r1 < __m) \ - { \ - __q1--, __r1 += (d); \ - if (__r1 >= (d)) /* i.e. we didn't get carry when adding to __r1 */\ - if (__r1 < __m) \ - __q1--, __r1 += (d); \ - } \ - __r1 -= __m; \ - \ - __r0 = __r1 % __d1; \ - __q0 = __r1 / __d1; \ - __m = (UWtype) __q0 * __d0; \ - __r0 = __r0 * __ll_B | __ll_lowpart (n0); \ - if (__r0 < __m) \ - { \ - __q0--, __r0 += (d); \ - if (__r0 >= (d)) \ - if (__r0 < __m) \ - __q0--, __r0 += (d); \ - } \ - __r0 -= __m; \ - \ - (q) = (UWtype) __q1 * __ll_B | __q0; \ - (r) = __r0; \ - } while (0) - -/* If the processor has no udiv_qrnnd but sdiv_qrnnd, go through - __udiv_w_sdiv (defined in libgcc or elsewhere). */ -#if !defined (udiv_qrnnd) && defined (sdiv_qrnnd) -#define udiv_qrnnd(q, r, nh, nl, d) \ - do { \ - extern UWtype __udiv_w_sdiv (UWtype *, UWtype, UWtype, UWtype); \ - UWtype __r; \ - (q) = __udiv_w_sdiv (&__r, nh, nl, d); \ - (r) = __r; \ - } while (0) -#endif - -/* If udiv_qrnnd was not defined for this processor, use __udiv_qrnnd_c. */ -#if !defined (udiv_qrnnd) -#define UDIV_NEEDS_NORMALIZATION 1 -#define udiv_qrnnd __udiv_qrnnd_c -#endif - -#if !defined (count_leading_zeros) -#define count_leading_zeros(count, x) \ - do { \ - UWtype __xr = (x); \ - UWtype __a; \ - \ - if (W_TYPE_SIZE <= 32) \ - { \ - __a = __xr < ((UWtype)1<<2*__BITS4) \ - ? (__xr < ((UWtype)1<<__BITS4) ? 0 : __BITS4) \ - : (__xr < ((UWtype)1<<3*__BITS4) ? 2*__BITS4 : 3*__BITS4); \ - } \ - else \ - { \ - for (__a = W_TYPE_SIZE - 8; __a > 0; __a -= 8) \ - if (((__xr >> __a) & 0xff) != 0) \ - break; \ - } \ - \ - (count) = W_TYPE_SIZE - (__clz_tab[__xr >> __a] + __a); \ - } while (0) -#define COUNT_LEADING_ZEROS_0 W_TYPE_SIZE -#endif - -#if !defined (count_trailing_zeros) -/* Define count_trailing_zeros using count_leading_zeros. The latter might be - defined in asm, but if it is not, the C version above is good enough. */ -#define count_trailing_zeros(count, x) \ - do { \ - UWtype __ctz_x = (x); \ - UWtype __ctz_c; \ - count_leading_zeros (__ctz_c, __ctz_x & -__ctz_x); \ - (count) = W_TYPE_SIZE - 1 - __ctz_c; \ - } while (0) -#endif - -#ifndef UDIV_NEEDS_NORMALIZATION -#define UDIV_NEEDS_NORMALIZATION 0 -#endif diff --git a/include/lto-symtab.h b/include/lto-symtab.h deleted file mode 100644 index 878d050..0000000 --- a/include/lto-symtab.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Data types used in the IL symbol table. - Copyright (C) 2009-2015 Free Software Foundation, Inc. - Contributed by Rafael Espindola - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. - -GCC is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING3. If not see -. */ - -#ifndef GCC_LTO_SYMTAB_H -#define GCC_LTO_SYMTAB_H - -enum gcc_plugin_symbol_kind - { - GCCPK_DEF, - GCCPK_WEAKDEF, - GCCPK_UNDEF, - GCCPK_WEAKUNDEF, - GCCPK_COMMON - }; - -enum gcc_plugin_symbol_visibility - { - GCCPV_DEFAULT, - GCCPV_PROTECTED, - GCCPV_INTERNAL, - GCCPV_HIDDEN - }; - -#endif /* GCC_LTO_SYMTAB_H */ diff --git a/include/mach-o/ChangeLog b/include/mach-o/ChangeLog deleted file mode 100644 index a36c546..0000000 --- a/include/mach-o/ChangeLog +++ /dev/null @@ -1,81 +0,0 @@ -2012-11-14 Tristan Gingold - - * external.h (mach_o_entry_point_command_external) - (mach_o_source_version_command_external) - (mach_o_data_in_code_entry_external): New structures. - - * loader.h (bfd_mach_o_load_command_type): Add - BFD_MACH_O_LC_MAIN, BFD_MACH_O_LC_DATA_IN_CODE, - BFD_MACH_O_LC_SOURCE_VERSION and BFD_MACH_O_LC_DYLIB_CODE_SIGN_DRS. - (BFD_MACH_O_REFERENCE_MASK): Adjust value. - (BFD_MACH_O_N_REF_TO_WEAK): New definition. - (BFD_MACH_O_N_ARM_THUMB_DEF, BFD_MACH_O_N_SYMBOL_RESOLVER): Likewise. - (bfd_mach_o_data_in_code_entry_kind): New enum. - -2012-11-14 Tristan Gingold - - * arm.h: New file. - -2012-02-23 Iain Sandoe - - * external.h: Add comments about relocations fields. Add macros - for non-scattered relocations. Move scattered relocation macros to - here. - * reloc.h: Remove macros related to external representation of reloc - fields. - -2012-01-12 Iain Sandoe - - * loader.h (BFD_MACH_O_INDIRECT_SYM_LOCAL): New. - (BFD_MACH_O_INDIRECT_SYM_ABS): New - -2012-01-04 Tristan Gingold - - * external.h (mach_o_fvmlib_command_external): New structure. - -2012-01-04 Tristan Gingold - - * loader.h: Update copyright year. - (bfd_mach_o_cpu_subtype): Add ARM subtypes. - -2012-01-04 Tristan Gingold - - * external.h: Update copyright year. - (mach_o_symtab_command_external): Add comments. - (mach_o_encryption_info_command_external): New structure. - -2011-12-16 Tristan Gingold - - * codesign.h: New file. - -2011-08-08 Tristan Gingold - - * loader.h (bfd_mach_o_load_command_type): Add - BFD_MACH_O_LC_LOAD_UPWARD_DYLIB, BFD_MACH_O_LC_VERSION_MIN_MACOSX, - BFD_MACH_O_LC_VERSION_MIN_IPHONEOS, BFD_MACH_O_LC_FUNCTION_STARTS, - and BFD_MACH_O_LC_DYLD_ENVIRONMENT. - * external.h (mach_o_version_min_command_external): New structure. - -2011-08-08 Tristan Gingold - - * loader.h: Reorder declarations. - * x86-64.h: New file. - * external.h: New file. - * reloc.h: New file. - -2011-07-06 Tristan Gingold - - * loader.h: New file. - -Copyright (C) 2011-2012 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - -Local Variables: -mode: change-log -left-margin: 8 -fill-column: 74 -version-control: never -End: diff --git a/include/mach-o/arm.h b/include/mach-o/arm.h deleted file mode 100644 index f37ff77..0000000 --- a/include/mach-o/arm.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Mach-O arm declarations for BFD. - Copyright 2012 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _MACH_O_ARM_H -#define _MACH_O_ARM_H - -/* ARM relocations. */ -#define BFD_MACH_O_ARM_RELOC_VANILLA 0 /* Generic relocation. */ -#define BFD_MACH_O_ARM_RELOC_PAIR 1 /* Second entry in a pair. */ -#define BFD_MACH_O_ARM_RELOC_SECTDIFF 2 /* Substract with a PAIR. */ -#define BFD_MACH_O_ARM_RELOC_LOCAL_SECTDIFF 3 /* Like above, but local ref. */ -#define BFD_MACH_O_ARM_RELOC_PB_LA_PTR 4 /* Prebound lazy pointer. */ -#define BFD_MACH_O_ARM_RELOC_BR24 5 /* 24bit branch. */ -#define BFD_MACH_O_THUMB_RELOC_BR22 6 /* 22bit branch. */ -#define BFD_MACH_O_THUMB_32BIT_BRANCH 7 /* Obselete. */ -#define BFD_MACH_O_ARM_RELOC_HALF 8 -#define BFD_MACH_O_ARM_RELOC_HALF_SECTDIFF 9 - -#endif /* _MACH_O_ARM_H */ diff --git a/include/mach-o/codesign.h b/include/mach-o/codesign.h deleted file mode 100644 index ee2f792..0000000 --- a/include/mach-o/codesign.h +++ /dev/null @@ -1,85 +0,0 @@ -/* Mach-O support for BFD. - Copyright 2011 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _MACH_O_CODESIGN_H -#define _MACH_O_CODESIGN_H - -/* Codesign blob magics. */ - -/* Superblob containing all the components. */ -#define BFD_MACH_O_CS_MAGIC_EMBEDDED_SIGNATURE 0xfade0cc0 - -/* Individual code requirement. */ -#define BFD_MACH_O_CS_MAGIC_REQUIREMENT 0xfade0c00 - -/* Collection of code requirements, indexed by type. */ -#define BFD_MACH_O_CS_MAGIC_REQUIREMENTS 0xfade0c01 - -/* Directory. */ -#define BFD_MACH_O_CS_MAGIC_CODEDIRECTORY 0xfade0c02 - -/* Entitlements blob. */ -#define BFD_MACH_O_CS_MAGIC_EMBEDDED_ENTITLEMENTS 0xfade7171 - -/* Blob container. */ -#define BFD_MACH_O_CS_MAGIC_BLOB_WRAPPER 0xfade0b01 - -struct mach_o_codesign_codedirectory_external_v1 -{ - /* All the fields are in network byte order (big endian). */ - unsigned char version[4]; - unsigned char flags[4]; - unsigned char hash_offset[4]; - unsigned char ident_offset[4]; - unsigned char nbr_special_slots[4]; - unsigned char nbr_code_slots[4]; - unsigned char code_limit[4]; - unsigned char hash_size[1]; - unsigned char hash_type[1]; - unsigned char spare1[1]; - unsigned char page_size[1]; - unsigned char spare2[4]; -}; - -struct mach_o_codesign_codedirectory_v1 -{ - unsigned int version; - unsigned int flags; - unsigned int hash_offset; - unsigned int ident_offset; - unsigned int nbr_special_slots; - unsigned int nbr_code_slots; - unsigned int code_limit; - unsigned char hash_size; - unsigned char hash_type; - unsigned char spare1; - unsigned char page_size; - unsigned int spare2; -}; - -/* Value for hash_type. */ -#define BFD_MACH_O_CS_NO_HASH 0 -#define BFD_MACH_O_CS_HASH_SHA1 1 -#define BFD_MACH_O_CS_HASH_SHA256 2 -#define BFD_MACH_O_CS_HASH_PRESTANDARD_SKEIN_160x256 32 /* Skein, 160 bits */ -#define BFD_MACH_O_CS_HASH_PRESTANDARD_SKEIN_256x512 33 /* Skein, 256 bits */ - -#endif /* _MACH_O_CODESIGN_H */ diff --git a/include/mach-o/external.h b/include/mach-o/external.h deleted file mode 100644 index 4b0a83e..0000000 --- a/include/mach-o/external.h +++ /dev/null @@ -1,348 +0,0 @@ -/* Mach-O support for BFD. - Copyright 2011, 2012 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _MACH_O_EXTERNAL_H -#define _MACH_O_EXTERNAL_H - -struct mach_o_header_external -{ - unsigned char magic[4]; /* Magic number. */ - unsigned char cputype[4]; /* CPU that this object is for. */ - unsigned char cpusubtype[4]; /* CPU subtype. */ - unsigned char filetype[4]; /* Type of file. */ - unsigned char ncmds[4]; /* Number of load commands. */ - unsigned char sizeofcmds[4]; /* Total size of load commands. */ - unsigned char flags[4]; /* Flags. */ - unsigned char reserved[4]; /* Reserved (on 64-bit version only). */ -}; - -#define BFD_MACH_O_HEADER_SIZE 28 -#define BFD_MACH_O_HEADER_64_SIZE 32 - -/* 32-bit section header. */ - -struct mach_o_section_32_external -{ - unsigned char sectname[16]; /* Section name. */ - unsigned char segname[16]; /* Segment that the section belongs to. */ - unsigned char addr[4]; /* Address of this section in memory. */ - unsigned char size[4]; /* Size in bytes of this section. */ - unsigned char offset[4]; /* File offset of this section. */ - unsigned char align[4]; /* log2 of this section's alignment. */ - unsigned char reloff[4]; /* File offset of this section's relocs. */ - unsigned char nreloc[4]; /* Number of relocs for this section. */ - unsigned char flags[4]; /* Section flags/attributes. */ - unsigned char reserved1[4]; - unsigned char reserved2[4]; -}; -#define BFD_MACH_O_SECTION_SIZE 68 - -/* 64-bit section header. */ - -struct mach_o_section_64_external -{ - unsigned char sectname[16]; /* Section name. */ - unsigned char segname[16]; /* Segment that the section belongs to. */ - unsigned char addr[8]; /* Address of this section in memory. */ - unsigned char size[8]; /* Size in bytes of this section. */ - unsigned char offset[4]; /* File offset of this section. */ - unsigned char align[4]; /* log2 of this section's alignment. */ - unsigned char reloff[4]; /* File offset of this section's relocs. */ - unsigned char nreloc[4]; /* Number of relocs for this section. */ - unsigned char flags[4]; /* Section flags/attributes. */ - unsigned char reserved1[4]; - unsigned char reserved2[4]; - unsigned char reserved3[4]; -}; -#define BFD_MACH_O_SECTION_64_SIZE 80 - -struct mach_o_load_command_external -{ - unsigned char cmd[4]; /* The type of load command. */ - unsigned char cmdsize[4]; /* Size in bytes of entire command. */ -}; -#define BFD_MACH_O_LC_SIZE 8 - -struct mach_o_segment_command_32_external -{ - unsigned char segname[16]; /* Name of this segment. */ - unsigned char vmaddr[4]; /* Virtual memory address of this segment. */ - unsigned char vmsize[4]; /* Size there, in bytes. */ - unsigned char fileoff[4]; /* Offset in bytes of the data to be mapped. */ - unsigned char filesize[4]; /* Size in bytes on disk. */ - unsigned char maxprot[4]; /* Maximum permitted vm protection. */ - unsigned char initprot[4]; /* Initial vm protection. */ - unsigned char nsects[4]; /* Number of sections in this segment. */ - unsigned char flags[4]; /* Flags that affect the loading. */ -}; -#define BFD_MACH_O_LC_SEGMENT_SIZE 56 /* Include the header. */ - -struct mach_o_segment_command_64_external -{ - unsigned char segname[16]; /* Name of this segment. */ - unsigned char vmaddr[8]; /* Virtual memory address of this segment. */ - unsigned char vmsize[8]; /* Size there, in bytes. */ - unsigned char fileoff[8]; /* Offset in bytes of the data to be mapped. */ - unsigned char filesize[8]; /* Size in bytes on disk. */ - unsigned char maxprot[4]; /* Maximum permitted vm protection. */ - unsigned char initprot[4]; /* Initial vm protection. */ - unsigned char nsects[4]; /* Number of sections in this segment. */ - unsigned char flags[4]; /* Flags that affect the loading. */ -}; -#define BFD_MACH_O_LC_SEGMENT_64_SIZE 72 /* Include the header. */ - -struct mach_o_reloc_info_external -{ - unsigned char r_address[4]; - unsigned char r_symbolnum[4]; -}; -#define BFD_MACH_O_RELENT_SIZE 8 - -/* Relocations are based on 'address' being a section offset and an assumption - that sections are never more than 2^24-1 bytes in size. Relocation data - also carry information on type/size/PC-relative/extern and whether scattered - or not [stored in the MSB of the r_address]. */ - -#define BFD_MACH_O_SR_SCATTERED 0x80000000 - -/* For a non-scattered reloc, the relocation info is found in r_symbolnum. - Bytes 1 to 3 contain the symbol number (0xffffff, in a non-scattered PAIR). - Byte 4 contains the relocation info - but with differing bit-positions - dependent on target endian-ness - as below. */ - -#define BFD_MACH_O_LE_PCREL 0x01 -#define BFD_MACH_O_LE_LENGTH_SHIFT 1 -#define BFD_MACH_O_LE_EXTERN 0x08 -#define BFD_MACH_O_LE_TYPE_SHIFT 4 - -#define BFD_MACH_O_BE_PCREL 0x80 -#define BFD_MACH_O_BE_LENGTH_SHIFT 5 -#define BFD_MACH_O_BE_EXTERN 0x10 -#define BFD_MACH_O_BE_TYPE_SHIFT 0 - -/* The field sizes are the same for both BE and LE. */ -#define BFD_MACH_O_LENGTH_MASK 0x03 -#define BFD_MACH_O_TYPE_MASK 0x0f - -/* For a scattered reloc entry the info is contained in r_address. There - is no need to discriminate on target endian-ness, since the design was - arranged to produce the same layout on both. Scattered relocations are - only used for local items, therefore there is no 'extern' field. */ - -#define BFD_MACH_O_SR_PCREL 0x40000000 -#define BFD_MACH_O_GET_SR_LENGTH(s) (((s) >> 28) & 0x3) -#define BFD_MACH_O_GET_SR_TYPE(s) (((s) >> 24) & 0x0f) -#define BFD_MACH_O_GET_SR_ADDRESS(s) ((s) & 0x00ffffff) -#define BFD_MACH_O_SET_SR_LENGTH(l) (((l) & 0x3) << 28) -#define BFD_MACH_O_SET_SR_TYPE(t) (((t) & 0xf) << 24) -#define BFD_MACH_O_SET_SR_ADDRESS(s) ((s) & 0x00ffffff) - -struct mach_o_symtab_command_external -{ - unsigned char symoff[4]; /* File offset of the symbol table. */ - unsigned char nsyms[4]; /* Number of symbols. */ - unsigned char stroff[4]; /* File offset of the string table. */ - unsigned char strsize[4]; /* String table size. */ -}; - -struct mach_o_nlist_external -{ - unsigned char n_strx[4]; - unsigned char n_type[1]; - unsigned char n_sect[1]; - unsigned char n_desc[2]; - unsigned char n_value[4]; -}; -#define BFD_MACH_O_NLIST_SIZE 12 - -struct mach_o_nlist_64_external -{ - unsigned char n_strx[4]; - unsigned char n_type[1]; - unsigned char n_sect[1]; - unsigned char n_desc[2]; - unsigned char n_value[8]; -}; -#define BFD_MACH_O_NLIST_64_SIZE 16 - -struct mach_o_thread_command_external -{ - unsigned char flavour[4]; - unsigned char count[4]; -}; - -/* For commands that just have a string or a path. */ -struct mach_o_str_command_external -{ - unsigned char str[4]; -}; - -struct mach_o_dylib_command_external -{ - unsigned char name[4]; - unsigned char timestamp[4]; - unsigned char current_version[4]; - unsigned char compatibility_version[4]; -}; - -struct mach_o_dysymtab_command_external -{ - unsigned char ilocalsym[4]; /* Index of. */ - unsigned char nlocalsym[4]; /* Number of. */ - unsigned char iextdefsym[4]; - unsigned char nextdefsym[4]; - unsigned char iundefsym[4]; - unsigned char nundefsym[4]; - unsigned char tocoff[4]; - unsigned char ntoc[4]; - unsigned char modtaboff[4]; - unsigned char nmodtab[4]; - unsigned char extrefsymoff[4]; - unsigned char nextrefsyms[4]; - unsigned char indirectsymoff[4]; - unsigned char nindirectsyms[4]; - unsigned char extreloff[4]; - unsigned char nextrel[4]; - unsigned char locreloff[4]; - unsigned char nlocrel[4]; -}; - -struct mach_o_dylib_module_external -{ - unsigned char module_name[4]; - unsigned char iextdefsym[4]; - unsigned char nextdefsym[4]; - unsigned char irefsym[4]; - unsigned char nrefsym[4]; - unsigned char ilocalsym[4]; - unsigned char nlocalsym[4]; - unsigned char iextrel[4]; - unsigned char nextrel[4]; - unsigned char iinit_iterm[4]; - unsigned char ninit_nterm[4]; - unsigned char objc_module_info_addr[4]; - unsigned char objc_module_info_size[4]; -}; -#define BFD_MACH_O_DYLIB_MODULE_SIZE 52 - -struct mach_o_dylib_module_64_external -{ - unsigned char module_name[4]; - unsigned char iextdefsym[4]; - unsigned char nextdefsym[4]; - unsigned char irefsym[4]; - unsigned char nrefsym[4]; - unsigned char ilocalsym[4]; - unsigned char nlocalsym[4]; - unsigned char iextrel[4]; - unsigned char nextrel[4]; - unsigned char iinit_iterm[4]; - unsigned char ninit_nterm[4]; - unsigned char objc_module_info_size[4]; - unsigned char objc_module_info_addr[8]; -}; -#define BFD_MACH_O_DYLIB_MODULE_64_SIZE 56 - -struct mach_o_dylib_table_of_contents_external -{ - unsigned char symbol_index[4]; - unsigned char module_index[4]; -}; -#define BFD_MACH_O_TABLE_OF_CONTENT_SIZE 8 - -struct mach_o_linkedit_data_command_external -{ - unsigned char dataoff[4]; - unsigned char datasize[4]; -}; - -struct mach_o_dyld_info_command_external -{ - unsigned char rebase_off[4]; - unsigned char rebase_size[4]; - unsigned char bind_off[4]; - unsigned char bind_size[4]; - unsigned char weak_bind_off[4]; - unsigned char weak_bind_size[4]; - unsigned char lazy_bind_off[4]; - unsigned char lazy_bind_size[4]; - unsigned char export_off[4]; - unsigned char export_size[4]; -}; - -struct mach_o_version_min_command_external -{ - unsigned char version[4]; - unsigned char reserved[4]; -}; - -struct mach_o_encryption_info_command_external -{ - unsigned char cryptoff[4]; /* File offset of the encrypted area. */ - unsigned char cryptsize[4]; /* Size of the encrypted area. */ - unsigned char cryptid[4]; /* Encryption method. */ -}; - -struct mach_o_fvmlib_command_external -{ - unsigned char name[4]; /* Offset of the name. */ - unsigned char minor_version[4]; - unsigned char header_addr[4]; -}; - -struct mach_o_entry_point_command_external -{ - unsigned char entryoff[8]; /* File offset of the entry point. */ - unsigned char stacksize[8]; /* Initial stack size, if no null. */ -}; - -struct mach_o_source_version_command_external -{ - unsigned char version[8]; /* Version A.B.C.D.E, with 10 bits for B-E, - and 24 bits for A. */ -}; - -/* The LD_DATA_IN_CODE command use a linkedit_data_command that points to - a table of entries. */ - -struct mach_o_data_in_code_entry_external -{ - unsigned char offset[4]; /* Offset from the mach_header. */ - unsigned char length[2]; /* Number of bytes. */ - unsigned char kind[2]; /* Kind. See BFD_MACH_O_DICE_ values. */ -}; - -struct mach_o_fat_header_external -{ - unsigned char magic[4]; - unsigned char nfat_arch[4]; /* Number of components. */ -}; - -struct mach_o_fat_arch_external -{ - unsigned char cputype[4]; - unsigned char cpusubtype[4]; - unsigned char offset[4]; /* File offset of the member. */ - unsigned char size[4]; /* Size of the member. */ - unsigned char align[4]; /* Power of 2. */ -}; - -#endif /* _MACH_O_EXTERNAL_H */ diff --git a/include/mach-o/loader.h b/include/mach-o/loader.h deleted file mode 100644 index 952bc8f..0000000 --- a/include/mach-o/loader.h +++ /dev/null @@ -1,378 +0,0 @@ -/* Mach-O support for BFD. - Copyright 2011, 2012 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _MACH_O_LOADER_H -#define _MACH_O_LOADER_H - -/* Constants for header. */ - -typedef enum bfd_mach_o_mach_header_magic -{ - BFD_MACH_O_MH_MAGIC = 0xfeedface, - BFD_MACH_O_MH_CIGAM = 0xcefaedfe, - BFD_MACH_O_MH_MAGIC_64 = 0xfeedfacf, - BFD_MACH_O_MH_CIGAM_64 = 0xcffaedfe -} -bfd_mach_o_mach_header_magic; - -#define BFD_MACH_O_CPU_IS64BIT 0x1000000 - -typedef enum bfd_mach_o_cpu_type -{ - BFD_MACH_O_CPU_TYPE_VAX = 1, - BFD_MACH_O_CPU_TYPE_MC680x0 = 6, - BFD_MACH_O_CPU_TYPE_I386 = 7, - BFD_MACH_O_CPU_TYPE_MIPS = 8, - BFD_MACH_O_CPU_TYPE_MC98000 = 10, - BFD_MACH_O_CPU_TYPE_HPPA = 11, - BFD_MACH_O_CPU_TYPE_ARM = 12, - BFD_MACH_O_CPU_TYPE_MC88000 = 13, - BFD_MACH_O_CPU_TYPE_SPARC = 14, - BFD_MACH_O_CPU_TYPE_I860 = 15, - BFD_MACH_O_CPU_TYPE_ALPHA = 16, - BFD_MACH_O_CPU_TYPE_POWERPC = 18, - BFD_MACH_O_CPU_TYPE_POWERPC_64 = (BFD_MACH_O_CPU_TYPE_POWERPC | BFD_MACH_O_CPU_IS64BIT), - BFD_MACH_O_CPU_TYPE_X86_64 = (BFD_MACH_O_CPU_TYPE_I386 | BFD_MACH_O_CPU_IS64BIT) -} -bfd_mach_o_cpu_type; - -typedef enum bfd_mach_o_cpu_subtype -{ - /* i386. */ - BFD_MACH_O_CPU_SUBTYPE_X86_ALL = 3, - - /* arm. */ - BFD_MACH_O_CPU_SUBTYPE_ARM_ALL = 0, - BFD_MACH_O_CPU_SUBTYPE_ARM_V4T = 5, - BFD_MACH_O_CPU_SUBTYPE_ARM_V6 = 6, - BFD_MACH_O_CPU_SUBTYPE_ARM_V5TEJ = 7, - BFD_MACH_O_CPU_SUBTYPE_ARM_XSCALE = 8, - BFD_MACH_O_CPU_SUBTYPE_ARM_V7 = 9 -} -bfd_mach_o_cpu_subtype; - -typedef enum bfd_mach_o_filetype -{ - BFD_MACH_O_MH_OBJECT = 0x01, - BFD_MACH_O_MH_EXECUTE = 0x02, - BFD_MACH_O_MH_FVMLIB = 0x03, - BFD_MACH_O_MH_CORE = 0x04, - BFD_MACH_O_MH_PRELOAD = 0x05, - BFD_MACH_O_MH_DYLIB = 0x06, - BFD_MACH_O_MH_DYLINKER = 0x07, - BFD_MACH_O_MH_BUNDLE = 0x08, - BFD_MACH_O_MH_DYLIB_STUB = 0x09, - BFD_MACH_O_MH_DSYM = 0x0a, - BFD_MACH_O_MH_KEXT_BUNDLE = 0x0b -} -bfd_mach_o_filetype; - -typedef enum bfd_mach_o_header_flags -{ - BFD_MACH_O_MH_NOUNDEFS = 0x0000001, - BFD_MACH_O_MH_INCRLINK = 0x0000002, - BFD_MACH_O_MH_DYLDLINK = 0x0000004, - BFD_MACH_O_MH_BINDATLOAD = 0x0000008, - BFD_MACH_O_MH_PREBOUND = 0x0000010, - BFD_MACH_O_MH_SPLIT_SEGS = 0x0000020, - BFD_MACH_O_MH_LAZY_INIT = 0x0000040, - BFD_MACH_O_MH_TWOLEVEL = 0x0000080, - BFD_MACH_O_MH_FORCE_FLAT = 0x0000100, - BFD_MACH_O_MH_NOMULTIDEFS = 0x0000200, - BFD_MACH_O_MH_NOFIXPREBINDING = 0x0000400, - BFD_MACH_O_MH_PREBINDABLE = 0x0000800, - BFD_MACH_O_MH_ALLMODSBOUND = 0x0001000, - BFD_MACH_O_MH_SUBSECTIONS_VIA_SYMBOLS = 0x0002000, - BFD_MACH_O_MH_CANONICAL = 0x0004000, - BFD_MACH_O_MH_WEAK_DEFINES = 0x0008000, - BFD_MACH_O_MH_BINDS_TO_WEAK = 0x0010000, - BFD_MACH_O_MH_ALLOW_STACK_EXECUTION = 0x0020000, - BFD_MACH_O_MH_ROOT_SAFE = 0x0040000, - BFD_MACH_O_MH_SETUID_SAFE = 0x0080000, - BFD_MACH_O_MH_NO_REEXPORTED_DYLIBS = 0x0100000, - BFD_MACH_O_MH_PIE = 0x0200000, - BFD_MACH_O_MH_DEAD_STRIPPABLE_DYLIB = 0x0400000, - BFD_MACH_O_MH_HAS_TLV_DESCRIPTORS = 0x0800000, - BFD_MACH_O_MH_NO_HEAP_EXECUTION = 0x1000000 -} -bfd_mach_o_header_flags; - -/* Load command constants. */ -#define BFD_MACH_O_LC_REQ_DYLD 0x80000000 - -typedef enum bfd_mach_o_load_command_type -{ - BFD_MACH_O_LC_SEGMENT = 0x1, /* File segment to be mapped. */ - BFD_MACH_O_LC_SYMTAB = 0x2, /* Link-edit stab symbol table info (obsolete). */ - BFD_MACH_O_LC_SYMSEG = 0x3, /* Link-edit gdb symbol table info. */ - BFD_MACH_O_LC_THREAD = 0x4, /* Thread. */ - BFD_MACH_O_LC_UNIXTHREAD = 0x5, /* UNIX thread (includes a stack). */ - BFD_MACH_O_LC_LOADFVMLIB = 0x6, /* Load a fixed VM shared library. */ - BFD_MACH_O_LC_IDFVMLIB = 0x7, /* Fixed VM shared library id. */ - BFD_MACH_O_LC_IDENT = 0x8, /* Object identification information (obsolete). */ - BFD_MACH_O_LC_FVMFILE = 0x9, /* Fixed VM file inclusion. */ - BFD_MACH_O_LC_PREPAGE = 0xa, /* Prepage command (internal use). */ - BFD_MACH_O_LC_DYSYMTAB = 0xb, /* Dynamic link-edit symbol table info. */ - BFD_MACH_O_LC_LOAD_DYLIB = 0xc, /* Load a dynamically linked shared library. */ - BFD_MACH_O_LC_ID_DYLIB = 0xd, /* Dynamically linked shared lib identification. */ - BFD_MACH_O_LC_LOAD_DYLINKER = 0xe, /* Load a dynamic linker. */ - BFD_MACH_O_LC_ID_DYLINKER = 0xf, /* Dynamic linker identification. */ - BFD_MACH_O_LC_PREBOUND_DYLIB = 0x10, /* Modules prebound for a dynamically. */ - BFD_MACH_O_LC_ROUTINES = 0x11, /* Image routines. */ - BFD_MACH_O_LC_SUB_FRAMEWORK = 0x12, /* Sub framework. */ - BFD_MACH_O_LC_SUB_UMBRELLA = 0x13, /* Sub umbrella. */ - BFD_MACH_O_LC_SUB_CLIENT = 0x14, /* Sub client. */ - BFD_MACH_O_LC_SUB_LIBRARY = 0x15, /* Sub library. */ - BFD_MACH_O_LC_TWOLEVEL_HINTS = 0x16, /* Two-level namespace lookup hints. */ - BFD_MACH_O_LC_PREBIND_CKSUM = 0x17, /* Prebind checksum. */ - /* Load a dynamically linked shared library that is allowed to be - missing (weak). */ - BFD_MACH_O_LC_LOAD_WEAK_DYLIB = 0x18, - BFD_MACH_O_LC_SEGMENT_64 = 0x19, /* 64-bit segment of this file to be - mapped. */ - BFD_MACH_O_LC_ROUTINES_64 = 0x1a, /* Address of the dyld init routine - in a dylib. */ - BFD_MACH_O_LC_UUID = 0x1b, /* 128-bit UUID of the executable. */ - BFD_MACH_O_LC_RPATH = 0x1c, /* Run path addiions. */ - BFD_MACH_O_LC_CODE_SIGNATURE = 0x1d, /* Local of code signature. */ - BFD_MACH_O_LC_SEGMENT_SPLIT_INFO = 0x1e, /* Local of info to split seg. */ - BFD_MACH_O_LC_REEXPORT_DYLIB = 0x1f, /* Load and re-export lib. */ - BFD_MACH_O_LC_LAZY_LOAD_DYLIB = 0x20, /* Delay load of lib until use. */ - BFD_MACH_O_LC_ENCRYPTION_INFO = 0x21, /* Encrypted segment info. */ - BFD_MACH_O_LC_DYLD_INFO = 0x22, /* Compressed dyld information. */ - BFD_MACH_O_LC_LOAD_UPWARD_DYLIB = 0x23, /* Load upward dylib. */ - BFD_MACH_O_LC_VERSION_MIN_MACOSX = 0x24, /* Minimal MacOSX version. */ - BFD_MACH_O_LC_VERSION_MIN_IPHONEOS = 0x25, /* Minimal IOS version. */ - BFD_MACH_O_LC_FUNCTION_STARTS = 0x26, /* Compressed table of func start. */ - BFD_MACH_O_LC_DYLD_ENVIRONMENT = 0x27, /* Env variable string for dyld. */ - BFD_MACH_O_LC_MAIN = 0x28, /* Entry point. */ - BFD_MACH_O_LC_DATA_IN_CODE = 0x29, /* Table of non-instructions. */ - BFD_MACH_O_LC_SOURCE_VERSION = 0x2a, /* Source version. */ - BFD_MACH_O_LC_DYLIB_CODE_SIGN_DRS = 0x2b /* DRs from dylibs. */ -} -bfd_mach_o_load_command_type; - -/* Section constants. */ -/* Constants for the type of a section. */ - -typedef enum bfd_mach_o_section_type -{ - /* Regular section. */ - BFD_MACH_O_S_REGULAR = 0x0, - - /* Zero fill on demand section. */ - BFD_MACH_O_S_ZEROFILL = 0x1, - - /* Section with only literal C strings. */ - BFD_MACH_O_S_CSTRING_LITERALS = 0x2, - - /* Section with only 4 byte literals. */ - BFD_MACH_O_S_4BYTE_LITERALS = 0x3, - - /* Section with only 8 byte literals. */ - BFD_MACH_O_S_8BYTE_LITERALS = 0x4, - - /* Section with only pointers to literals. */ - BFD_MACH_O_S_LITERAL_POINTERS = 0x5, - - /* For the two types of symbol pointers sections and the symbol stubs - section they have indirect symbol table entries. For each of the - entries in the section the indirect symbol table entries, in - corresponding order in the indirect symbol table, start at the index - stored in the reserved1 field of the section structure. Since the - indirect symbol table entries correspond to the entries in the - section the number of indirect symbol table entries is inferred from - the size of the section divided by the size of the entries in the - section. For symbol pointers sections the size of the entries in - the section is 4 bytes and for symbol stubs sections the byte size - of the stubs is stored in the reserved2 field of the section - structure. */ - - /* Section with only non-lazy symbol pointers. */ - BFD_MACH_O_S_NON_LAZY_SYMBOL_POINTERS = 0x6, - - /* Section with only lazy symbol pointers. */ - BFD_MACH_O_S_LAZY_SYMBOL_POINTERS = 0x7, - - /* Section with only symbol stubs, byte size of stub in the reserved2 - field. */ - BFD_MACH_O_S_SYMBOL_STUBS = 0x8, - - /* Section with only function pointers for initialization. */ - BFD_MACH_O_S_MOD_INIT_FUNC_POINTERS = 0x9, - - /* Section with only function pointers for termination. */ - BFD_MACH_O_S_MOD_FINI_FUNC_POINTERS = 0xa, - - /* Section contains symbols that are coalesced by the linkers. */ - BFD_MACH_O_S_COALESCED = 0xb, - - /* Zero fill on demand section (possibly larger than 4 GB). */ - BFD_MACH_O_S_GB_ZEROFILL = 0xc, - - /* Section with only pairs of function pointers for interposing. */ - BFD_MACH_O_S_INTERPOSING = 0xd, - - /* Section with only 16 byte literals. */ - BFD_MACH_O_S_16BYTE_LITERALS = 0xe, - - /* Section contains DTrace Object Format. */ - BFD_MACH_O_S_DTRACE_DOF = 0xf, - - /* Section with only lazy symbol pointers to lazy loaded dylibs. */ - BFD_MACH_O_S_LAZY_DYLIB_SYMBOL_POINTERS = 0x10 -} -bfd_mach_o_section_type; - -/* The flags field of a section structure is separated into two parts a section - type and section attributes. The section types are mutually exclusive (it - can only have one type) but the section attributes are not (it may have more - than one attribute). */ - -#define BFD_MACH_O_SECTION_TYPE_MASK 0x000000ff - -/* Constants for the section attributes part of the flags field of a section - structure. */ -#define BFD_MACH_O_SECTION_ATTRIBUTES_MASK 0xffffff00 -/* System setable attributes. */ -#define BFD_MACH_O_SECTION_ATTRIBUTES_SYS 0x00ffff00 -/* User attributes. */ -#define BFD_MACH_O_SECTION_ATTRIBUTES_USR 0xff000000 - -typedef enum bfd_mach_o_section_attribute -{ - /* Section has no specified attibutes. */ - BFD_MACH_O_S_ATTR_NONE = 0, - - /* Section has local relocation entries. */ - BFD_MACH_O_S_ATTR_LOC_RELOC = 0x00000100, - - /* Section has external relocation entries. */ - BFD_MACH_O_S_ATTR_EXT_RELOC = 0x00000200, - - /* Section contains some machine instructions. */ - BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS = 0x00000400, - - /* A debug section. */ - BFD_MACH_O_S_ATTR_DEBUG = 0x02000000, - - /* Used with i386 stubs. */ - BFD_MACH_O_S_SELF_MODIFYING_CODE = 0x04000000, - - /* Blocks are live if they reference live blocks. */ - BFD_MACH_O_S_ATTR_LIVE_SUPPORT = 0x08000000, - - /* No dead stripping. */ - BFD_MACH_O_S_ATTR_NO_DEAD_STRIP = 0x10000000, - - /* Section symbols can be stripped in files with MH_DYLDLINK flag. */ - BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS = 0x20000000, - - /* Section contains coalesced symbols that are not to be in the TOC of an - archive. */ - BFD_MACH_O_S_ATTR_NO_TOC = 0x40000000, - - /* Section contains only true machine instructions. */ - BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS = 0x80000000 -} -bfd_mach_o_section_attribute; - -/* Symbol constants. */ - -/* Symbol n_type values. */ -#define BFD_MACH_O_N_STAB 0xe0 /* If any of these bits set, a symbolic debugging entry. */ -#define BFD_MACH_O_N_PEXT 0x10 /* Private external symbol bit. */ -#define BFD_MACH_O_N_TYPE 0x0e /* Mask for the type bits. */ -#define BFD_MACH_O_N_EXT 0x01 /* External symbol bit, set for external symbols. */ -#define BFD_MACH_O_N_UNDF 0x00 /* Undefined, n_sect == NO_SECT. */ -#define BFD_MACH_O_N_ABS 0x02 /* Absolute, n_sect == NO_SECT. */ -#define BFD_MACH_O_N_INDR 0x0a /* Indirect. */ -#define BFD_MACH_O_N_PBUD 0x0c /* Prebound undefined (defined in a dylib). */ -#define BFD_MACH_O_N_SECT 0x0e /* Defined in section number n_sect. */ - -#define BFD_MACH_O_NO_SECT 0 /* Symbol not in any section of the image. */ - -/* Symbol n_desc reference flags. */ -#define BFD_MACH_O_REFERENCE_MASK 0x07 -#define BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_NON_LAZY 0x00 -#define BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_LAZY 0x01 -#define BFD_MACH_O_REFERENCE_FLAG_DEFINED 0x02 -#define BFD_MACH_O_REFERENCE_FLAG_PRIVATE_DEFINED 0x03 -#define BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY 0x04 -#define BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY 0x05 - -#define BFD_MACH_O_REFERENCED_DYNAMICALLY 0x10 -#define BFD_MACH_O_N_DESC_DISCARDED 0x20 -#define BFD_MACH_O_N_NO_DEAD_STRIP 0x20 -#define BFD_MACH_O_N_WEAK_REF 0x40 -#define BFD_MACH_O_N_WEAK_DEF 0x80 -#define BFD_MACH_O_N_REF_TO_WEAK 0x80 - -#define BFD_MACH_O_N_ARM_THUMB_DEF 0x08 -#define BFD_MACH_O_N_SYMBOL_RESOLVER 0x100 - -#define BFD_MACH_O_INDIRECT_SYM_LOCAL 0x80000000 -#define BFD_MACH_O_INDIRECT_SYM_ABS 0x40000000 - -/* Constants for DATA_IN_CODE entries. */ -typedef enum bfd_mach_o_data_in_code_entry_kind -{ - BFD_MACH_O_DICE_KIND_DATA = 0x0001, /* Data */ - BFD_MACH_O_DICE_JUMP_TABLES8 = 0x0002, /* 1 byte jump tables. */ - BFD_MACH_O_DICE_JUMP_TABLES16 = 0x0003, /* 2 bytes. */ - BFD_MACH_O_DICE_JUMP_TABLES32 = 0x0004, /* 4 bytes. */ - BFD_MACH_O_DICE_ABS_JUMP_TABLES32 = 0x0005 /* Absolute jump table. */ -} bfd_mach_o_data_in_code_entry_kind; - -/* Thread constants. */ - -typedef enum bfd_mach_o_ppc_thread_flavour -{ - BFD_MACH_O_PPC_THREAD_STATE = 1, - BFD_MACH_O_PPC_FLOAT_STATE = 2, - BFD_MACH_O_PPC_EXCEPTION_STATE = 3, - BFD_MACH_O_PPC_VECTOR_STATE = 4, - BFD_MACH_O_PPC_THREAD_STATE64 = 5, - BFD_MACH_O_PPC_EXCEPTION_STATE64 = 6, - BFD_MACH_O_PPC_THREAD_STATE_NONE = 7 -} -bfd_mach_o_ppc_thread_flavour; - -/* Defined in */ -typedef enum bfd_mach_o_i386_thread_flavour -{ - BFD_MACH_O_x86_THREAD_STATE32 = 1, - BFD_MACH_O_x86_FLOAT_STATE32 = 2, - BFD_MACH_O_x86_EXCEPTION_STATE32 = 3, - BFD_MACH_O_x86_THREAD_STATE64 = 4, - BFD_MACH_O_x86_FLOAT_STATE64 = 5, - BFD_MACH_O_x86_EXCEPTION_STATE64 = 6, - BFD_MACH_O_x86_THREAD_STATE = 7, - BFD_MACH_O_x86_FLOAT_STATE = 8, - BFD_MACH_O_x86_EXCEPTION_STATE = 9, - BFD_MACH_O_x86_DEBUG_STATE32 = 10, - BFD_MACH_O_x86_DEBUG_STATE64 = 11, - BFD_MACH_O_x86_DEBUG_STATE = 12, - BFD_MACH_O_x86_THREAD_STATE_NONE = 13 -} -bfd_mach_o_i386_thread_flavour; - -#endif /* _MACH_O_LOADER_H */ diff --git a/include/mach-o/reloc.h b/include/mach-o/reloc.h deleted file mode 100644 index bab31ef..0000000 --- a/include/mach-o/reloc.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Mach-O support for BFD. - Copyright 2011, 2012 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _MACH_O_RELOC_H -#define _MACH_O_RELOC_H - -/* Generic relocation types (used by i386). */ -#define BFD_MACH_O_GENERIC_RELOC_VANILLA 0 -#define BFD_MACH_O_GENERIC_RELOC_PAIR 1 -#define BFD_MACH_O_GENERIC_RELOC_SECTDIFF 2 -#define BFD_MACH_O_GENERIC_RELOC_PB_LA_PTR 3 -#define BFD_MACH_O_GENERIC_RELOC_LOCAL_SECTDIFF 4 -#define BFD_MACH_O_GENERIC_RELOC_TLV 5 - -#endif /* _MACH_O_RELOC_H */ diff --git a/include/mach-o/x86-64.h b/include/mach-o/x86-64.h deleted file mode 100644 index d06bc26..0000000 --- a/include/mach-o/x86-64.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Mach-O support for BFD. - Copyright 2011 - Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _MACH_O_X86_64_H -#define _MACH_O_X86_64_H - -/* X86-64 relocations. */ -#define BFD_MACH_O_X86_64_RELOC_UNSIGNED 0 /* Absolute addresses. */ -#define BFD_MACH_O_X86_64_RELOC_SIGNED 1 /* 32-bit disp. */ -#define BFD_MACH_O_X86_64_RELOC_BRANCH 2 /* 32-bit pcrel disp. */ -#define BFD_MACH_O_X86_64_RELOC_GOT_LOAD 3 /* Movq load of a GOT entry. */ -#define BFD_MACH_O_X86_64_RELOC_GOT 4 /* GOT reference. */ -#define BFD_MACH_O_X86_64_RELOC_SUBTRACTOR 5 /* Symbol difference. */ -#define BFD_MACH_O_X86_64_RELOC_SIGNED_1 6 /* 32-bit signed disp -1. */ -#define BFD_MACH_O_X86_64_RELOC_SIGNED_2 7 /* 32-bit signed disp -2. */ -#define BFD_MACH_O_X86_64_RELOC_SIGNED_4 8 /* 32-bit signed disp -4. */ -#define BFD_MACH_O_X86_64_RELOC_TLV 9 /* Thread local variables. */ - -#endif /* _MACH_O_X86_64_H */ diff --git a/include/machine/_arc4random.h b/include/machine/_arc4random.h deleted file mode 100644 index 52808d7..0000000 --- a/include/machine/_arc4random.h +++ /dev/null @@ -1 +0,0 @@ -/* Use default implementation, see arc4random.h */ diff --git a/include/machine/_default_types.h b/include/machine/_default_types.h deleted file mode 100644 index 6137493..0000000 --- a/include/machine/_default_types.h +++ /dev/null @@ -1,250 +0,0 @@ -/* - * $Id$ - */ - -#ifndef _MACHINE__DEFAULT_TYPES_H -#define _MACHINE__DEFAULT_TYPES_H - -#include - -/* - * Guess on types by examining *_MIN / *_MAX defines. - */ -#if __GNUC_PREREQ (3, 3) -/* GCC >= 3.3.0 has ____ implicitly defined. */ -#define __EXP(x) __##x##__ -#else -/* Fall back to POSIX versions from */ -#define __EXP(x) x -#include -#endif - -/* Check if "long long" is 64bit wide */ -/* Modern GCCs provide __LONG_LONG_MAX__, SUSv3 wants LLONG_MAX */ -#if ( defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff) ) \ - || ( defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff) ) -#define __have_longlong64 1 -#endif - -/* Check if "long" is 64bit or 32bit wide */ -#if __EXP(LONG_MAX) > 0x7fffffff -#define __have_long64 1 -#elif __EXP(LONG_MAX) == 0x7fffffff && !defined(__SPU__) -#define __have_long32 1 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __INT8_TYPE__ -typedef __INT8_TYPE__ __int8_t; -#ifdef __UINT8_TYPE__ -typedef __UINT8_TYPE__ __uint8_t; -#else -typedef unsigned __INT8_TYPE__ __uint8_t; -#endif -#define ___int8_t_defined 1 -#elif __EXP(SCHAR_MAX) == 0x7f -typedef signed char __int8_t ; -typedef unsigned char __uint8_t ; -#define ___int8_t_defined 1 -#endif - -#ifdef __INT16_TYPE__ -typedef __INT16_TYPE__ __int16_t; -#ifdef __UINT16_TYPE__ -typedef __UINT16_TYPE__ __uint16_t; -#else -typedef unsigned __INT16_TYPE__ __uint16_t; -#endif -#define ___int16_t_defined 1 -#elif __EXP(INT_MAX) == 0x7fff -typedef signed int __int16_t; -typedef unsigned int __uint16_t; -#define ___int16_t_defined 1 -#elif __EXP(SHRT_MAX) == 0x7fff -typedef signed short __int16_t; -typedef unsigned short __uint16_t; -#define ___int16_t_defined 1 -#elif __EXP(SCHAR_MAX) == 0x7fff -typedef signed char __int16_t; -typedef unsigned char __uint16_t; -#define ___int16_t_defined 1 -#endif - -#ifdef __INT32_TYPE__ -typedef __INT32_TYPE__ __int32_t; -#ifdef __UINT32_TYPE__ -typedef __UINT32_TYPE__ __uint32_t; -#else -typedef unsigned __INT32_TYPE__ __uint32_t; -#endif -#define ___int32_t_defined 1 -#elif __EXP(INT_MAX) == 0x7fffffffL -typedef signed int __int32_t; -typedef unsigned int __uint32_t; -#define ___int32_t_defined 1 -#elif __EXP(LONG_MAX) == 0x7fffffffL -typedef signed long __int32_t; -typedef unsigned long __uint32_t; -#define ___int32_t_defined 1 -#elif __EXP(SHRT_MAX) == 0x7fffffffL -typedef signed short __int32_t; -typedef unsigned short __uint32_t; -#define ___int32_t_defined 1 -#elif __EXP(SCHAR_MAX) == 0x7fffffffL -typedef signed char __int32_t; -typedef unsigned char __uint32_t; -#define ___int32_t_defined 1 -#endif - -#ifdef __INT64_TYPE__ -typedef __INT64_TYPE__ __int64_t; -#ifdef __UINT64_TYPE__ -typedef __UINT64_TYPE__ __uint64_t; -#else -typedef unsigned __INT64_TYPE__ __uint64_t; -#endif -#define ___int64_t_defined 1 -#elif __EXP(LONG_MAX) > 0x7fffffff -typedef signed long __int64_t; -typedef unsigned long __uint64_t; -#define ___int64_t_defined 1 - -/* GCC has __LONG_LONG_MAX__ */ -#elif defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff) -typedef signed long long __int64_t; -typedef unsigned long long __uint64_t; -#define ___int64_t_defined 1 - -/* POSIX mandates LLONG_MAX in */ -#elif defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff) -typedef signed long long __int64_t; -typedef unsigned long long __uint64_t; -#define ___int64_t_defined 1 - -#elif __EXP(INT_MAX) > 0x7fffffff -typedef signed int __int64_t; -typedef unsigned int __uint64_t; -#define ___int64_t_defined 1 -#endif - -#ifdef __INT_LEAST8_TYPE__ -typedef __INT_LEAST8_TYPE__ __int_least8_t; -#ifdef __UINT_LEAST8_TYPE__ -typedef __UINT_LEAST8_TYPE__ __uint_least8_t; -#else -typedef unsigned __INT_LEAST8_TYPE__ __uint_least8_t; -#endif -#define ___int_least8_t_defined 1 -#elif defined(___int8_t_defined) -typedef __int8_t __int_least8_t; -typedef __uint8_t __uint_least8_t; -#define ___int_least8_t_defined 1 -#elif defined(___int16_t_defined) -typedef __int16_t __int_least8_t; -typedef __uint16_t __uint_least8_t; -#define ___int_least8_t_defined 1 -#elif defined(___int32_t_defined) -typedef __int32_t __int_least8_t; -typedef __uint32_t __uint_least8_t; -#define ___int_least8_t_defined 1 -#elif defined(___int64_t_defined) -typedef __int64_t __int_least8_t; -typedef __uint64_t __uint_least8_t; -#define ___int_least8_t_defined 1 -#endif - -#ifdef __INT_LEAST16_TYPE__ -typedef __INT_LEAST16_TYPE__ __int_least16_t; -#ifdef __UINT_LEAST16_TYPE__ -typedef __UINT_LEAST16_TYPE__ __uint_least16_t; -#else -typedef unsigned __INT_LEAST16_TYPE__ __uint_least16_t; -#endif -#define ___int_least16_t_defined 1 -#elif defined(___int16_t_defined) -typedef __int16_t __int_least16_t; -typedef __uint16_t __uint_least16_t; -#define ___int_least16_t_defined 1 -#elif defined(___int32_t_defined) -typedef __int32_t __int_least16_t; -typedef __uint32_t __uint_least16_t; -#define ___int_least16_t_defined 1 -#elif defined(___int64_t_defined) -typedef __int64_t __int_least16_t; -typedef __uint64_t __uint_least16_t; -#define ___int_least16_t_defined 1 -#endif - -#ifdef __INT_LEAST32_TYPE__ -typedef __INT_LEAST32_TYPE__ __int_least32_t; -#ifdef __UINT_LEAST32_TYPE__ -typedef __UINT_LEAST32_TYPE__ __uint_least32_t; -#else -typedef unsigned __INT_LEAST32_TYPE__ __uint_least32_t; -#endif -#define ___int_least32_t_defined 1 -#elif defined(___int32_t_defined) -typedef __int32_t __int_least32_t; -typedef __uint32_t __uint_least32_t; -#define ___int_least32_t_defined 1 -#elif defined(___int64_t_defined) -typedef __int64_t __int_least32_t; -typedef __uint64_t __uint_least32_t; -#define ___int_least32_t_defined 1 -#endif - -#ifdef __INT_LEAST64_TYPE__ -typedef __INT_LEAST64_TYPE__ __int_least64_t; -#ifdef __UINT_LEAST64_TYPE__ -typedef __UINT_LEAST64_TYPE__ __uint_least64_t; -#else -typedef unsigned __INT_LEAST64_TYPE__ __uint_least64_t; -#endif -#define ___int_least64_t_defined 1 -#elif defined(___int64_t_defined) -typedef __int64_t __int_least64_t; -typedef __uint64_t __uint_least64_t; -#define ___int_least64_t_defined 1 -#endif - -#if defined(__INTMAX_TYPE__) -typedef __INTMAX_TYPE__ __intmax_t; -#elif __have_longlong64 -typedef signed long long __intmax_t; -#else -typedef signed long __intmax_t; -#endif - -#if defined(__UINTMAX_TYPE__) -typedef __UINTMAX_TYPE__ __uintmax_t; -#elif __have_longlong64 -typedef unsigned long long __uintmax_t; -#else -typedef unsigned long __uintmax_t; -#endif - -#ifdef __INTPTR_TYPE__ -typedef __INTPTR_TYPE__ __intptr_t; -#ifdef __UINTPTR_TYPE__ -typedef __UINTPTR_TYPE__ __uintptr_t; -#else -typedef unsigned __INTPTR_TYPE__ __uintptr_t; -#endif -#elif defined(__PTRDIFF_TYPE__) -typedef __PTRDIFF_TYPE__ __intptr_t; -typedef unsigned __PTRDIFF_TYPE__ __uintptr_t; -#else -typedef long __intptr_t; -typedef unsigned long __uintptr_t; -#endif - -#undef __EXP - -#ifdef __cplusplus -} -#endif - -#endif /* _MACHINE__DEFAULT_TYPES_H */ diff --git a/include/machine/_endian.h b/include/machine/_endian.h deleted file mode 100644 index 92a14dc..0000000 --- a/include/machine/_endian.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __MACHINE_ENDIAN_H__ -#error "must be included via " -#endif /* !__MACHINE_ENDIAN_H__ */ - -#include - -#ifdef __PPC__ -/* Get rid of GCC builtin defines on PowerPC */ -#ifdef _BIG_ENDIAN -#undef _BIG_ENDIAN -#endif -#ifdef _LITTLE_ENDIAN -#undef _LITTLE_ENDIAN -#endif -#endif /* __PPC__ */ - -#ifndef _LITTLE_ENDIAN -#define _LITTLE_ENDIAN 1234 -#endif - -#ifndef _BIG_ENDIAN -#define _BIG_ENDIAN 4321 -#endif - -#ifndef _PDP_ENDIAN -#define _PDP_ENDIAN 3412 -#endif - -#ifndef _BYTE_ORDER -#if defined(__IEEE_LITTLE_ENDIAN) || defined(__IEEE_BYTES_LITTLE_ENDIAN) -#define _BYTE_ORDER _LITTLE_ENDIAN -#else -#define _BYTE_ORDER _BIG_ENDIAN -#endif -#endif diff --git a/include/machine/_time.h b/include/machine/_time.h deleted file mode 100644 index 476760c..0000000 --- a/include/machine/_time.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifndef _SYS_TIME_H_ -#error "must be included via " -#endif /* !_SYS_TIME_H_ */ diff --git a/include/machine/_types.h b/include/machine/_types.h deleted file mode 100644 index 17e6d51..0000000 --- a/include/machine/_types.h +++ /dev/null @@ -1,8 +0,0 @@ -/* - * $Id$ - */ - -#ifndef _MACHINE__TYPES_H -#define _MACHINE__TYPES_H -#include -#endif diff --git a/include/machine/ansi.h b/include/machine/ansi.h deleted file mode 100644 index 737b6d0..0000000 --- a/include/machine/ansi.h +++ /dev/null @@ -1 +0,0 @@ -/* dummy header file to support BSD compiler */ diff --git a/include/machine/endian.h b/include/machine/endian.h deleted file mode 100644 index 34a5726..0000000 --- a/include/machine/endian.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef __MACHINE_ENDIAN_H__ -#define __MACHINE_ENDIAN_H__ - -#include -#include -#include - -#if _BYTE_ORDER == _LITTLE_ENDIAN -#define _QUAD_HIGHWORD 1 -#define _QUAD_LOWWORD 0 -#else -#define _QUAD_HIGHWORD 0 -#define _QUAD_LOWWORD 1 -#endif - -#if __BSD_VISIBLE -#define LITTLE_ENDIAN _LITTLE_ENDIAN -#define BIG_ENDIAN _BIG_ENDIAN -#define PDP_ENDIAN _PDP_ENDIAN -#define BYTE_ORDER _BYTE_ORDER -#endif - -#ifdef __GNUC__ -#define __bswap16(_x) __builtin_bswap16(_x) -#define __bswap32(_x) __builtin_bswap32(_x) -#define __bswap64(_x) __builtin_bswap64(_x) -#else /* __GNUC__ */ -static __inline __uint16_t -__bswap16(__uint16_t _x) -{ - - return ((__uint16_t)((_x >> 8) | ((_x << 8) & 0xff00))); -} - -static __inline __uint32_t -__bswap32(__uint32_t _x) -{ - - return ((__uint32_t)((_x >> 24) | ((_x >> 8) & 0xff00) | - ((_x << 8) & 0xff0000) | ((_x << 24) & 0xff000000))); -} - -static __inline __uint64_t -__bswap64(__uint64_t _x) -{ - - return ((__uint64_t)((_x >> 56) | ((_x >> 40) & 0xff00) | - ((_x >> 24) & 0xff0000) | ((_x >> 8) & 0xff000000) | - ((_x << 8) & ((__uint64_t)0xff << 32)) | - ((_x << 24) & ((__uint64_t)0xff << 40)) | - ((_x << 40) & ((__uint64_t)0xff << 48)) | ((_x << 56)))); -} -#endif /* !__GNUC__ */ - -#ifndef __machine_host_to_from_network_defined -#if _BYTE_ORDER == _LITTLE_ENDIAN -#define __htonl(_x) __bswap32(_x) -#define __htons(_x) __bswap16(_x) -#define __ntohl(_x) __bswap32(_x) -#define __ntohs(_x) __bswap16(_x) -#else -#define __htonl(_x) ((__uint32_t)(_x)) -#define __htons(_x) ((__uint16_t)(_x)) -#define __ntohl(_x) ((__uint32_t)(_x)) -#define __ntohs(_x) ((__uint16_t)(_x)) -#endif -#endif /* __machine_host_to_from_network_defined */ - -#endif /* __MACHINE_ENDIAN_H__ */ diff --git a/include/machine/fastmath.h b/include/machine/fastmath.h deleted file mode 100644 index d13ab3b..0000000 --- a/include/machine/fastmath.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifdef __sysvnecv70_target -double EXFUN(fast_sin,(double)); -double EXFUN(fast_cos,(double)); -double EXFUN(fast_tan,(double)); - -double EXFUN(fast_asin,(double)); -double EXFUN(fast_acos,(double)); -double EXFUN(fast_atan,(double)); - -double EXFUN(fast_sinh,(double)); -double EXFUN(fast_cosh,(double)); -double EXFUN(fast_tanh,(double)); - -double EXFUN(fast_asinh,(double)); -double EXFUN(fast_acosh,(double)); -double EXFUN(fast_atanh,(double)); - -double EXFUN(fast_abs,(double)); -double EXFUN(fast_sqrt,(double)); -double EXFUN(fast_exp2,(double)); -double EXFUN(fast_exp10,(double)); -double EXFUN(fast_expe,(double)); -double EXFUN(fast_log10,(double)); -double EXFUN(fast_log2,(double)); -double EXFUN(fast_loge,(double)); - - -#define sin(x) fast_sin(x) -#define cos(x) fast_cos(x) -#define tan(x) fast_tan(x) -#define asin(x) fast_asin(x) -#define acos(x) fast_acos(x) -#define atan(x) fast_atan(x) -#define sinh(x) fast_sinh(x) -#define cosh(x) fast_cosh(x) -#define tanh(x) fast_tanh(x) -#define asinh(x) fast_asinh(x) -#define acosh(x) fast_acosh(x) -#define atanh(x) fast_atanh(x) -#define abs(x) fast_abs(x) -#define sqrt(x) fast_sqrt(x) -#define exp2(x) fast_exp2(x) -#define exp10(x) fast_exp10(x) -#define expe(x) fast_expe(x) -#define log10(x) fast_log10(x) -#define log2(x) fast_log2(x) -#define loge(x) fast_loge(x) - -/* These functions are in assembler, they really do take floats. This - can only be used with a real ANSI compiler */ - -float EXFUN(fast_sinf,(float)); -float EXFUN(fast_cosf,(float)); -float EXFUN(fast_tanf,(float)); - -float EXFUN(fast_asinf,(float)); -float EXFUN(fast_acosf,(float)); -float EXFUN(fast_atanf,(float)); - -float EXFUN(fast_sinhf,(float)); -float EXFUN(fast_coshf,(float)); -float EXFUN(fast_tanhf,(float)); - -float EXFUN(fast_asinhf,(float)); -float EXFUN(fast_acoshf,(float)); -float EXFUN(fast_atanhf,(float)); - -float EXFUN(fast_absf,(float)); -float EXFUN(fast_sqrtf,(float)); -float EXFUN(fast_exp2f,(float)); -float EXFUN(fast_exp10f,(float)); -float EXFUN(fast_expef,(float)); -float EXFUN(fast_log10f,(float)); -float EXFUN(fast_log2f,(float)); -float EXFUN(fast_logef,(float)); -#define sinf(x) fast_sinf(x) -#define cosf(x) fast_cosf(x) -#define tanf(x) fast_tanf(x) -#define asinf(x) fast_asinf(x) -#define acosf(x) fast_acosf(x) -#define atanf(x) fast_atanf(x) -#define sinhf(x) fast_sinhf(x) -#define coshf(x) fast_coshf(x) -#define tanhf(x) fast_tanhf(x) -#define asinhf(x) fast_asinhf(x) -#define acoshf(x) fast_acoshf(x) -#define atanhf(x) fast_atanhf(x) -#define absf(x) fast_absf(x) -#define sqrtf(x) fast_sqrtf(x) -#define exp2f(x) fast_exp2f(x) -#define exp10f(x) fast_exp10f(x) -#define expef(x) fast_expef(x) -#define log10f(x) fast_log10f(x) -#define log2f(x) fast_log2f(x) -#define logef(x) fast_logef(x) -/* Override the functions defined in math.h */ -#endif /* __sysvnecv70_target */ - diff --git a/include/machine/ieee.h b/include/machine/ieee.h deleted file mode 100644 index 0656909..0000000 --- a/include/machine/ieee.h +++ /dev/null @@ -1,127 +0,0 @@ -#ifndef _MACHINE_IEEE_H_ -#define _MACHINE_IEEE_H_ -#include -#include -#include -#include - -#if LDBL_MANT_DIG == 24 -#define EXT_IMPLICIT_NBIT -#define EXT_TO_ARRAY32(p, a) do { \ - (a)[0] = (p)->ext_frac; \ -} while (0) -#ifdef __IEEE_LITTLE_ENDIAN -struct ieee_ext { - uint32_t ext_frac:23; - uint32_t ext_exp:8; - uint32_t ext_sign:1; -}; -#endif -#ifdef __IEEE_BIG_ENDIAN -struct ieee_ext { -#ifndef ___IEEE_BYTES_LITTLE_ENDIAN - uint32_t ext_sign:1; - uint32_t ext_exp:8; - uint32_t ext_frac:23; -#else /* ARMEL without __VFP_FP__ */ - uint32_t ext_frac:23; - uint32_t ext_exp:8; - uint32_t ext_sign:1; -#endif -}; -#endif -#elif LDBL_MANT_DIG == 53 -#define EXT_IMPLICIT_NBIT -#define EXT_TO_ARRAY32(p, a) do { \ - (a)[0] = (p)->ext_fracl; \ - (a)[1] = (p)->ext_frach; \ -} while (0) -#ifdef __IEEE_LITTLE_ENDIAN -struct ieee_ext { - uint32_t ext_fracl; - uint32_t ext_frach:20; - uint32_t ext_exp:11; - uint32_t ext_sign:1; -}; -#endif -#ifdef __IEEE_BIG_ENDIAN -struct ieee_ext { -#ifndef ___IEEE_BYTES_LITTLE_ENDIAN - uint32_t ext_sign:1; - uint32_t ext_exp:11; - uint32_t ext_frach:20; -#else /* ARMEL without __VFP_FP__ */ - uint32_t ext_frach:20; - uint32_t ext_exp:11; - uint32_t ext_sign:1; -#endif - uint32_t ext_fracl; -}; -#endif -#elif LDBL_MANT_DIG == 64 -#define EXT_TO_ARRAY32(p, a) do { \ - (a)[0] = (p)->ext_fracl; \ - (a)[1] = (p)->ext_frach; \ -} while (0) -#ifdef __IEEE_LITTLE_ENDIAN /* for Intel CPU */ -struct ieee_ext { - uint32_t ext_fracl; - uint32_t ext_frach; - uint32_t ext_exp:15; - uint32_t ext_sign:1; - uint32_t ext_padl:16; - uint32_t ext_padh; -}; -#endif -#ifdef __IEEE_BIG_ENDIAN -struct ieee_ext { -#ifndef ___IEEE_BYTES_LITTLE_ENDIAN /* for m68k */ - uint32_t ext_sign:1; - uint32_t ext_exp:15; - uint32_t ext_pad:16; -#else /* ARM FPA10 math coprocessor */ - uint32_t ext_exp:15; - uint32_t ext_pad:16; - uint32_t ext_sign:1; -#endif - uint32_t ext_frach; - uint32_t ext_fracl; -}; -#endif -#elif LDBL_MANT_DIG == 113 -#define EXT_IMPLICIT_NBIT -#define EXT_TO_ARRAY32(p, a) do { \ - (a)[0] = (p)->ext_fracl; \ - (a)[1] = (p)->ext_fraclm; \ - (a)[2] = (p)->ext_frachm; \ - (a)[3] = (p)->ext_frach; \ -} while (0) -#ifdef __IEEE_LITTLE_ENDIAN -struct ieee_ext { - uint32_t ext_fracl; - uint32_t ext_fraclm; - uint32_t ext_frachm; - uint32_t ext_frach:16; - uint32_t ext_exp:15; - uint32_t ext_sign:1; -}; -#endif -#ifdef __IEEE_BIG_ENDIAN -struct ieee_ext { -#ifndef ___IEEE_BYTES_LITTLE_ENDIAN - uint32_t ext_sign:1; - uint32_t ext_exp:15; - uint32_t ext_frach:16; -#else /* ARMEL without __VFP_FP__ */ - uint32_t ext_frach:16; - uint32_t ext_exp:15; - uint32_t ext_sign:1; -#endif - uint32_t ext_frachm; - uint32_t ext_fraclm; - uint32_t ext_fracl; -}; -#endif -#endif - -#endif /* _MACHINE_IEEE_H_ */ diff --git a/include/machine/ieeefp.h b/include/machine/ieeefp.h deleted file mode 100644 index a29557a..0000000 --- a/include/machine/ieeefp.h +++ /dev/null @@ -1,529 +0,0 @@ -#ifndef __IEEE_BIG_ENDIAN -#ifndef __IEEE_LITTLE_ENDIAN - -/* This file can define macros to choose variations of the IEEE float - format: - - _FLT_LARGEST_EXPONENT_IS_NORMAL - - Defined if the float format uses the largest exponent for finite - numbers rather than NaN and infinity representations. Such a - format cannot represent NaNs or infinities at all, but it's FLT_MAX - is twice the IEEE value. - - _FLT_NO_DENORMALS - - Defined if the float format does not support IEEE denormals. Every - float with a zero exponent is taken to be a zero representation. - - ??? At the moment, there are no equivalent macros above for doubles and - the macros are not fully supported by --enable-newlib-hw-fp. - - __IEEE_BIG_ENDIAN - - Defined if the float format is big endian. This is mutually exclusive - with __IEEE_LITTLE_ENDIAN. - - __IEEE_LITTLE_ENDIAN - - Defined if the float format is little endian. This is mutually exclusive - with __IEEE_BIG_ENDIAN. - - Note that one of __IEEE_BIG_ENDIAN or __IEEE_LITTLE_ENDIAN must be specified for a - platform or error will occur. - - __IEEE_BYTES_LITTLE_ENDIAN - - This flag is used in conjunction with __IEEE_BIG_ENDIAN to describe a situation - whereby multiple words of an IEEE floating point are in big endian order, but the - words themselves are little endian with respect to the bytes. - - _DOUBLE_IS_32BITS - - This is used on platforms that support double by using the 32-bit IEEE - float type. - - _FLOAT_ARG - - This represents what type a float arg is passed as. It is used when the type is - not promoted to double. - - - __OBSOLETE_MATH_DEFAULT - - Default value for __OBSOLETE_MATH if that's not set by the user. - It should be set here based on predefined feature macros. - - __OBSOLETE_MATH - - If set to 1 then some new math code will be disabled and older libm - code will be used instead. This is necessary because the new math - code does not support all targets, it assumes that the toolchain has - ISO C99 support (hexfloat literals, standard fenv semantics), the - target has IEEE-754 conforming binary32 float and binary64 double - (not mixed endian) representation, standard SNaN representation, - double and single precision arithmetics has similar latency and it - has no legacy SVID matherr support, only POSIX errno and fenv - exception based error handling. -*/ - -#if (defined(__arm__) || defined(__thumb__)) && !defined(__MAVERICK__) -/* ARM traditionally used big-endian words; and within those words the - byte ordering was big or little endian depending upon the target. - Modern floating-point formats are naturally ordered; in this case - __VFP_FP__ will be defined, even if soft-float. */ -#ifdef __VFP_FP__ -# ifdef __ARMEL__ -# define __IEEE_LITTLE_ENDIAN -# else -# define __IEEE_BIG_ENDIAN -# endif -# if __ARM_FP & 0x8 -# define __OBSOLETE_MATH_DEFAULT 0 -# endif -#else -# define __IEEE_BIG_ENDIAN -# ifdef __ARMEL__ -# define __IEEE_BYTES_LITTLE_ENDIAN -# endif -#endif -#ifndef __SOFTFP__ -# define _SUPPORTS_ERREXCEPT -#endif -/* As per ISO/IEC TS 18661 '__FLT_EVAL_METHOD__' will be defined to 16 - (if compiling with +fp16 support) so it can't be used by math.h to - define float_t and double_t. For values of '__FLT_EVAL_METHOD__' - other than 0, 1, 2 the definition of float_t and double_t is - implementation-defined. */ -#define __DOUBLE_TYPE double -#define __FLOAT_TYPE float -#endif - -#if defined (__aarch64__) -#if defined (__AARCH64EL__) -#define __IEEE_LITTLE_ENDIAN -#else -#define __IEEE_BIG_ENDIAN -#endif -#define __OBSOLETE_MATH_DEFAULT 0 -#ifdef __ARM_FP -# define _SUPPORTS_ERREXCEPT -#endif -/* As per ISO/IEC TS 18661 '__FLT_EVAL_METHOD__' will be defined to 16 - (if compiling with +fp16 support) so it can't be used by math.h to - define float_t and double_t. For values of '__FLT_EVAL_METHOD__' - other than 0, 1, 2 the definition of float_t and double_t is - implementation-defined. */ -#define __DOUBLE_TYPE double -#define __FLOAT_TYPE float -#endif - -#ifdef __epiphany__ -#define __IEEE_LITTLE_ENDIAN -#define Sudden_Underflow 1 -#endif - -#ifdef __hppa__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __nds32__ -#ifdef __big_endian__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __SPU__ -#define __IEEE_BIG_ENDIAN - -#define isfinite(__y) \ - (__extension__ ({int __cy; \ - (sizeof (__y) == sizeof (float)) ? (1) : \ - (__cy = fpclassify(__y)) != FP_INFINITE && __cy != FP_NAN;})) - -#define isinf(__x) ((sizeof (__x) == sizeof (float)) ? (0) : __isinfd(__x)) -#define isnan(__x) ((sizeof (__x) == sizeof (float)) ? (0) : __isnand(__x)) - -/* - * Macros for use in ieeefp.h. We can't just define the real ones here - * (like those above) as we have name space issues when this is *not* - * included via generic the ieeefp.h. - */ -#define __ieeefp_isnanf(x) 0 -#define __ieeefp_isinff(x) 0 -#define __ieeefp_finitef(x) 1 -#endif - -#ifdef __sparc__ -#ifdef __LITTLE_ENDIAN_DATA__ -#define __IEEE_LITTLE_ENDIAN -#else -#define __IEEE_BIG_ENDIAN -#endif -#endif - -#if defined(__m68k__) || defined(__mc68000__) -#define __IEEE_BIG_ENDIAN -#endif - -#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__) -#define __IEEE_BIG_ENDIAN -#ifdef __HAVE_SHORT_DOUBLE__ -# define _DOUBLE_IS_32BITS -#endif -#endif - -#if defined (__H8300__) || defined (__H8300H__) || defined (__H8300S__) || defined (__H8500__) || defined (__H8300SX__) -#define __IEEE_BIG_ENDIAN -#define _FLOAT_ARG float -#define _DOUBLE_IS_32BITS -#endif - -#if defined (__xc16x__) || defined (__xc16xL__) || defined (__xc16xS__) -#define __IEEE_LITTLE_ENDIAN -#define _FLOAT_ARG float -#define _DOUBLE_IS_32BITS -#endif - - -#ifdef __sh__ -#ifdef __LITTLE_ENDIAN__ -#define __IEEE_LITTLE_ENDIAN -#else -#define __IEEE_BIG_ENDIAN -#endif -#if defined(__SH2E__) || defined(__SH3E__) || defined(__SH4_SINGLE_ONLY__) || defined(__SH2A_SINGLE_ONLY__) -#define _DOUBLE_IS_32BITS -#endif -#endif - -#ifdef _AM29K -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef _WIN32 -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __i386__ -#define __IEEE_LITTLE_ENDIAN -# define _SUPPORTS_ERREXCEPT -#endif - -#ifdef __riscv -#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#ifdef __riscv_flen -# define _SUPPORTS_ERREXCEPT -#endif -#if __riscv_flen == 64 -# define __OBSOLETE_MATH_DEFAULT 0 -#else -# define __OBSOLETE_MATH_DEFAULT 1 -#endif -#endif - -#ifdef __i960__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __lm32__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __M32R__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __nvptx__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#if defined(_C4x) || defined(_C3x) -#define __IEEE_BIG_ENDIAN -#define _DOUBLE_IS_32BITS -#endif - -#ifdef __TMS320C6X__ -#ifdef _BIG_ENDIAN -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __TIC80__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __MIPSEL__ -#define __IEEE_LITTLE_ENDIAN -#endif -#ifdef __MIPSEB__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __MMIX__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __D30V__ -#define __IEEE_BIG_ENDIAN -#endif - -/* necv70 was __IEEE_LITTLE_ENDIAN. */ - -#ifdef __W65__ -#define __IEEE_LITTLE_ENDIAN -#define _DOUBLE_IS_32BITS -#endif - -#if defined(__Z8001__) || defined(__Z8002__) -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __m88k__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __mn10300__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __mn10200__ -#define __IEEE_LITTLE_ENDIAN -#define _DOUBLE_IS_32BITS -#endif - -#ifdef __v800 -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __v850 -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __D10V__ -#define __IEEE_BIG_ENDIAN -#if __DOUBLE__ == 32 -#define _DOUBLE_IS_32BITS -#endif -#endif - -#ifdef __PPC__ -#if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX) -#define __IEEE_BIG_ENDIAN -#else -#if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(_WIN32) && _WIN32) -#define __IEEE_LITTLE_ENDIAN -#endif -#endif -#endif - -#ifdef __xstormy16__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __arc__ -#ifdef __big_endian__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __CRX__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __CSKY__ -#ifdef __CSKYBE__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __fr30__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __FT32__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __mcore__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __mt__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __frv__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __moxie__ -#ifdef __MOXIE_BIG_ENDIAN__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __ia64__ -#ifdef __BIG_ENDIAN__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __AVR__ -#define __IEEE_LITTLE_ENDIAN -#define _DOUBLE_IS_32BITS -#endif - -#if defined(__or1k__) || defined(__OR1K__) || defined(__OR1KND__) -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __IP2K__ -#define __IEEE_BIG_ENDIAN -#define __SMALL_BITFIELDS -#define _DOUBLE_IS_32BITS -#endif - -#ifdef __iq2000__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __MAVERICK__ -#ifdef __ARMEL__ -# define __IEEE_LITTLE_ENDIAN -#else /* must be __ARMEB__ */ -# define __IEEE_BIG_ENDIAN -#endif /* __ARMEL__ */ -#endif /* __MAVERICK__ */ - -#ifdef __m32c__ -#define __IEEE_LITTLE_ENDIAN -#define __SMALL_BITFIELDS -#endif - -#ifdef __CRIS__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __BFIN__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __x86_64__ -#define __IEEE_LITTLE_ENDIAN -# define _SUPPORTS_ERREXCEPT -#endif - -#ifdef __mep__ -#ifdef __LITTLE_ENDIAN__ -#define __IEEE_LITTLE_ENDIAN -#else -#define __IEEE_BIG_ENDIAN -#endif -#endif - -#ifdef __MICROBLAZE__ -#ifndef __MICROBLAZEEL__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __MSP430__ -#define __IEEE_LITTLE_ENDIAN -#define __SMALL_BITFIELDS /* 16 Bit INT */ -#endif - -#ifdef __PRU__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __RL78__ -#define __IEEE_LITTLE_ENDIAN -#define __SMALL_BITFIELDS /* 16 Bit INT */ -#ifndef __RL78_64BIT_DOUBLES__ -#define _DOUBLE_IS_32BITS -#endif -#endif - -#ifdef __RX__ - -#ifdef __RX_BIG_ENDIAN__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifndef __RX_64BIT_DOUBLES__ -#define _DOUBLE_IS_32BITS -#endif - -#ifdef __RX_16BIT_INTS__ -#define __SMALL_BITFIELDS -#endif - -#endif - -#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__)) -#define __IEEE_LITTLE_ENDIAN -#define __SMALL_BITFIELDS /* 16 Bit INT */ -#endif - -#ifdef __NIOS2__ -# ifdef __nios2_big_endian__ -# define __IEEE_BIG_ENDIAN -# else -# define __IEEE_LITTLE_ENDIAN -# endif -#endif - -#ifdef __VISIUM__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __AMDGCN__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __XTENSA_EL__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __CYGWIN__ -#define __OBSOLETE_MATH_DEFAULT 0 -#endif - -#ifndef __OBSOLETE_MATH_DEFAULT -/* Use old math code by default. */ -#define __OBSOLETE_MATH_DEFAULT 1 -#endif -#ifndef __OBSOLETE_MATH -#define __OBSOLETE_MATH __OBSOLETE_MATH_DEFAULT -#endif - -#ifndef __IEEE_BIG_ENDIAN -#ifndef __IEEE_LITTLE_ENDIAN -#error Endianess not declared!! -#endif /* not __IEEE_LITTLE_ENDIAN */ -#endif /* not __IEEE_BIG_ENDIAN */ - -#endif /* not __IEEE_LITTLE_ENDIAN */ -#endif /* not __IEEE_BIG_ENDIAN */ - diff --git a/include/machine/malloc.h b/include/machine/malloc.h deleted file mode 100644 index fdada9e..0000000 --- a/include/machine/malloc.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _MACHMALLOC_H_ -#define _MACHMALLOC_H_ - -/* place holder so platforms may add malloc.h extensions */ - -#endif /* _MACHMALLOC_H_ */ - - diff --git a/include/machine/param.h b/include/machine/param.h deleted file mode 100644 index bdf8bf7..0000000 --- a/include/machine/param.h +++ /dev/null @@ -1 +0,0 @@ -/* Place holder for machine-specific param.h. */ diff --git a/include/machine/setjmp-dj.h b/include/machine/setjmp-dj.h deleted file mode 100644 index 6ca5e65..0000000 --- a/include/machine/setjmp-dj.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 1991 DJ Delorie - * All rights reserved. - * - * Redistribution, modification, and use in source and binary forms is permitted - * provided that the above copyright notice and following paragraph are - * duplicated in all such forms. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* Modified to use SETJMP_DJ_H rather than SETJMP_H to avoid - conflicting with setjmp.h. Ian Taylor, Cygnus support, April, - 1993. */ - -#ifndef _SETJMP_DJ_H_ -#define _SETJMP_DJ_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - unsigned long eax; - unsigned long ebx; - unsigned long ecx; - unsigned long edx; - unsigned long esi; - unsigned long edi; - unsigned long ebp; - unsigned long esp; - unsigned long eip; -} jmp_buf[1]; - -extern int setjmp(jmp_buf); -extern void longjmp(jmp_buf, int); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/machine/setjmp.h b/include/machine/setjmp.h deleted file mode 100644 index 29b76ce..0000000 --- a/include/machine/setjmp.h +++ /dev/null @@ -1,495 +0,0 @@ - -_BEGIN_STD_C - -#if defined(__or1k__) || defined(__or1knd__) -/* - * r1, r2, r9, r14, r16 .. r30, SR. - */ -#define _JBLEN 13 -#define _JBTYPE unsigned long -#endif - -#if defined(__arm__) || defined(__thumb__) -/* - * All callee preserved registers: - * core registers: - * r4 - r10, fp, sp, lr - * VFP registers (architectural support dependent): - * d8 - d15 - */ -#define _JBLEN 20 -#define _JBTYPE long long -#endif - -#if defined(__aarch64__) -#define _JBLEN 22 -#define _JBTYPE long long -#endif - -#if defined(__AVR__) -#define _JBLEN 24 -#endif - -#ifdef __sparc__ -/* - * onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext). - * All else recovered by under/over(flow) handling. - */ -#define _JBLEN 13 -#endif - -#ifdef __BFIN__ -#define _JBLEN 40 -#endif - -#ifdef __epiphany__ -/* All callee preserved registers: r4-r10,fp, sp, lr,r15, r32-r39 */ -#define _JBTYPE long long -#define _JBLEN 10 -#endif - -/* necv70 was 9 as well. */ - -#if defined(__m68k__) || defined(__mc68000__) -/* - * onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6, - * fp2-fp7 for 68881. - * All else recovered by under/over(flow) handling. - */ -#define _JBLEN 34 -#endif - -#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__) -/* - * D, X, Y are not saved. - * Only take into account the pseudo soft registers (max 32). - */ -#define _JBLEN 32 -#endif - -#ifdef __nds32__ -/* 17 words for GPRs, - 1 word for $fpcfg.freg and 30 words for FPUs - Reserved 2 words for aligement-adjustment. When storeing double-precision - floating-point register into memory, the address has to be - double-word-aligned. - Check libc/machine/nds32/setjmp.S for more information. */ -#if __NDS32_EXT_FPU_SP__ || __NDS32_EXT_FPU_DP__ -#define _JBLEN 50 -#else -#define _JBLEN 18 -#endif -#endif - -#if defined(__Z8001__) || defined(__Z8002__) -/* 16 regs + pc */ -#define _JBLEN 20 -#endif - -#ifdef _AM29K -/* - * onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext). - * All else recovered by under/over(flow) handling. - */ -#define _JBLEN 9 -#endif - -#ifdef __i386__ -# if defined(__CYGWIN__) && !defined (_JBLEN) -# define _JBLEN (13 * 4) -# elif defined(__unix__) || defined(__rtems__) -# define _JBLEN 9 -# elif defined(__iamcu__) -/* Intel MCU jmp_buf only covers callee-saved registers. */ -# define _JBLEN 6 -# else -# include "setjmp-dj.h" -# endif -#endif - -#ifdef __x86_64__ -# ifdef __CYGWIN__ -# define _JBTYPE long -# define _JBLEN 32 -# else -# define _JBTYPE long long -# define _JBLEN 8 -# endif -#endif - -#ifdef __i960__ -#define _JBLEN 35 -#endif - -#ifdef __M32R__ -/* Only 8 words are currently needed. 10 gives us some slop if we need - to expand. */ -#define _JBLEN 10 -#endif - -#ifdef __mips__ -# if defined(__mips64) -# define _JBTYPE long long -# endif -# ifdef __mips_soft_float -# define _JBLEN 11 -# else -# define _JBLEN 23 -# endif -#endif - -#ifdef __m88000__ -#define _JBLEN 21 -#endif - -#ifdef __H8300__ -#define _JBLEN 5 -#define _JBTYPE int -#endif - -#ifdef __H8300H__ -/* same as H8/300 but registers are twice as big */ -#define _JBLEN 5 -#define _JBTYPE long -#endif - -#if defined (__H8300S__) || defined (__H8300SX__) -/* same as H8/300 but registers are twice as big */ -#define _JBLEN 5 -#define _JBTYPE long -#endif - -#ifdef __H8500__ -#define _JBLEN 4 -#endif - -#ifdef __sh__ -#if __SH5__ -#define _JBLEN 50 -#define _JBTYPE long long -#else -#define _JBLEN 20 -#endif /* __SH5__ */ -#endif - -#ifdef __v800 -#define _JBLEN 28 -#endif - -#ifdef __PPC__ -#ifdef __powerpc64__ -#ifdef __ALTIVEC__ -#define _JBLEN 70 -#else -#define _JBLEN 43 -#endif -#else -#ifdef __ALTIVEC__ -#define _JBLEN 64 -#else -#define _JBLEN 32 -#endif -#endif -#define _JBTYPE double -#endif - -#ifdef __MICROBLAZE__ -#define _JBLEN 20 -#define _JBTYPE unsigned int -#endif - -#ifdef __hppa__ -/* %r30, %r2-%r18, %r27, pad, %fr12-%fr15. - Note space exists for the FP registers, but they are not - saved. */ -#define _JBLEN 28 -#endif - -#if defined(__mn10300__) || defined(__mn10200__) -#ifdef __AM33_2__ -#define _JBLEN 26 -#else -/* A guess */ -#define _JBLEN 10 -#endif -#endif - -#ifdef __v850 -/* I think our setjmp is saving 15 regs at the moment. Gives us one word - slop if we need to expand. */ -#define _JBLEN 16 -#endif - -#if defined(_C4x) -#define _JBLEN 10 -#endif -#if defined(_C3x) -#define _JBLEN 9 -#endif - -#ifdef __TMS320C6X__ -#define _JBLEN 13 -#endif - -#ifdef __TIC80__ -#define _JBLEN 13 -#endif - -#ifdef __D10V__ -#define _JBLEN 8 -#endif - -#ifdef __D30V__ -#define _JBLEN ((64 /* GPR */ + (2*2) /* ACs */ + 18 /* CRs */) / 2) -#define _JBTYPE double -#endif - -#ifdef __frv__ -#define _JBLEN (68/2) /* room for 68 32-bit regs */ -#define _JBTYPE double -#endif - -#ifdef __moxie__ -#define _JBLEN 10 -#endif - -#ifdef __CRX__ -#define _JBLEN 9 -#endif - -#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__)) -/* r6, r7, r8, r9, r10, r11, r12 (r12L, r12H), - * r13 (r13L, r13H), ra(raL, raH), sp(spL, spH) */ -#define _JBLEN 14 -#define _JBTYPE unsigned short -#endif - -#ifdef __fr30__ -#define _JBLEN 10 -#endif - -#ifdef __FT32__ -#define _JBLEN 27 -#endif - -#ifdef __iq2000__ -#define _JBLEN 32 -#endif - -#ifdef __mcore__ -#define _JBLEN 16 -#endif - -#ifdef __arc__ -#define _JBLEN 25 /* r13-r30,blink,lp_count,lp_start,lp_end,mlo,mhi,status32 */ -#endif - -#ifdef __MMIX__ -/* Using a layout compatible with GCC's built-in. */ -#define _JBLEN 5 -#define _JBTYPE unsigned long -#endif - -#ifdef __mt__ -#define _JBLEN 16 -#endif - -#ifdef __SPU__ -#define _JBLEN 50 -#define _JBTYPE __vector signed int -#endif - -#ifdef __xstormy16__ -/* 4 GPRs plus SP plus PC. */ -#define _JBLEN 8 -#endif - -#ifdef __mep__ -/* 16 GPRs, pc, hi, lo */ -#define _JBLEN 19 -#endif - -#ifdef __CRIS__ -#define _JBLEN 18 -#endif - -#ifdef __ia64 -#define _JBLEN 64 -#endif - -#ifdef __lm32__ -#define _JBLEN 19 -#endif - -#ifdef __m32c__ -#if defined(__r8c_cpu__) || defined(__m16c_cpu__) -#define _JBLEN (22/2) -#else -#define _JBLEN (34/2) -#endif -#define _JBTYPE unsigned short -#endif /* __m32c__ */ - -#ifdef __MSP430__ -#define _JBLEN 9 - -#ifdef __MSP430X_LARGE__ -#define _JBTYPE unsigned long -#else -#define _JBTYPE unsigned short -#endif -#endif - -#ifdef __RL78__ -/* Three banks of registers, SP, CS, ES, PC */ -#define _JBLEN (8*3+8) -#define _JBTYPE unsigned char -#endif - -/* - * There are two versions of setjmp()/longjmp(): - * 1) Compiler (gcc) built-in versions. - * 2) Function-call versions. - * - * The built-in versions are used most of the time. When used, gcc replaces - * calls to setjmp()/longjmp() with inline assembly code. The built-in - * versions save/restore a variable number of registers. - - * _JBLEN is set to 40 to be ultra-safe with the built-in versions. - * It only needs to be 12 for the function-call versions - * but this data structure is used by both versions. - */ -#ifdef __NIOS2__ -#define _JBLEN 40 -#define _JBTYPE unsigned long -#endif - -#ifdef __PRU__ -#define _JBLEN 48 -#define _JBTYPE unsigned int -#endif - -#ifdef __RX__ -#define _JBLEN 0x44 -#endif - -#ifdef __VISIUM__ -/* All call-saved GP registers: r11-r19,r21,r22,r23. */ -#define _JBLEN 12 -#endif - -#ifdef __riscv -/* _JBTYPE using long long to make sure the alignment is align to 8 byte, - otherwise in rv32imafd, store/restore FPR may mis-align. */ -#define _JBTYPE long long -#ifdef __riscv_32e -#define _JBLEN ((4*sizeof(long))/sizeof(long)) -#else -#define _JBLEN ((14*sizeof(long) + 12*sizeof(double))/sizeof(long)) -#endif -#endif - -#ifdef __CSKYABIV2__ -#define _JBTYPE unsigned long -#if defined(__CK801__) -#define _JBLEN 7 -#elif defined(__CK802__) -#define _JBLEN 10 -#else -#define _JBLEN 18 -#endif -#endif - -#ifdef _JBLEN -#ifdef _JBTYPE -typedef _JBTYPE jmp_buf[_JBLEN]; -#else -typedef int jmp_buf[_JBLEN]; -#endif -#endif - -_END_STD_C - -#if (defined(__CYGWIN__) || defined(__rtems__)) && __POSIX_VISIBLE -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* POSIX sigsetjmp/siglongjmp macros */ -#ifdef _JBTYPE -typedef _JBTYPE sigjmp_buf[_JBLEN+1+((sizeof (_JBTYPE) + sizeof (sigset_t) - 1) - /sizeof (_JBTYPE))]; -#else -typedef int sigjmp_buf[_JBLEN+1+(sizeof (sigset_t)/sizeof (int))]; -#endif - -#define _SAVEMASK _JBLEN -#define _SIGMASK (_JBLEN+1) - -#ifdef __CYGWIN__ -# define _CYGWIN_WORKING_SIGSETJMP -#endif - -#ifdef _POSIX_THREADS -#define __SIGMASK_FUNC pthread_sigmask -#else -#define __SIGMASK_FUNC sigprocmask -#endif - -#ifdef __CYGWIN__ -/* Per POSIX, siglongjmp has to be implemented as function. Cygwin - provides functions for both, siglongjmp and sigsetjmp since 2.2.0. */ -extern void siglongjmp (sigjmp_buf, int) __attribute__ ((__noreturn__)); -extern int sigsetjmp (sigjmp_buf, int); -#endif - -#if defined(__GNUC__) - -#define sigsetjmp(env, savemask) \ - __extension__ \ - ({ \ - sigjmp_buf *_sjbuf = &(env); \ - ((*_sjbuf)[_SAVEMASK] = savemask,\ - __SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *)((*_sjbuf) + _SIGMASK)),\ - setjmp (*_sjbuf)); \ - }) - -#define siglongjmp(env, val) \ - __extension__ \ - ({ \ - sigjmp_buf *_sjbuf = &(env); \ - ((((*_sjbuf)[_SAVEMASK]) ? \ - __SIGMASK_FUNC (SIG_SETMASK, (sigset_t *)((*_sjbuf) + _SIGMASK), 0)\ - : 0), \ - longjmp (*_sjbuf, val)); \ - }) - -#else /* !__GNUC__ */ - -#define sigsetjmp(env, savemask) ((env)[_SAVEMASK] = savemask,\ - __SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *) ((env) + _SIGMASK)),\ - setjmp (env)) - -#define siglongjmp(env, val) ((((env)[_SAVEMASK])?\ - __SIGMASK_FUNC (SIG_SETMASK, (sigset_t *) ((env) + _SIGMASK), 0):0),\ - longjmp (env, val)) - -#endif - -/* POSIX _setjmp/_longjmp, maintained for XSI compatibility. These - are equivalent to sigsetjmp/siglongjmp when not saving the signal mask. - New applications should use sigsetjmp/siglongjmp instead. */ -#ifdef __CYGWIN__ -extern void _longjmp (jmp_buf, int) __attribute__ ((__noreturn__)); -extern int _setjmp (jmp_buf); -#else -#define _setjmp(env) sigsetjmp ((env), 0) -#define _longjmp(env, val) siglongjmp ((env), (val)) -#endif - -#ifdef __cplusplus -} -#endif -#endif /* (__CYGWIN__ or __rtems__) and __POSIX_VISIBLE */ diff --git a/include/machine/stdlib.h b/include/machine/stdlib.h deleted file mode 100644 index fa3f3a1..0000000 --- a/include/machine/stdlib.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _MACHSTDLIB_H_ -#define _MACHSTDLIB_H_ - -/* place holder so platforms may add stdlib.h extensions */ - -#endif /* _MACHSTDLIB_H_ */ - - diff --git a/include/machine/termios.h b/include/machine/termios.h deleted file mode 100644 index 41fd459..0000000 --- a/include/machine/termios.h +++ /dev/null @@ -1 +0,0 @@ -#define __MAX_BAUD B4000000 diff --git a/include/machine/time.h b/include/machine/time.h deleted file mode 100644 index c75edaf..0000000 --- a/include/machine/time.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef _MACHTIME_H_ -#define _MACHTIME_H_ - -#if defined(__rtems__) || defined(__VISIUM__) || defined(__riscv) -#define _CLOCKS_PER_SEC_ 1000000 -#elif defined(__aarch64__) || defined(__arm__) || defined(__thumb__) -#define _CLOCKS_PER_SEC_ 100 -#endif - -#ifdef __SPU__ -#include -int nanosleep (const struct timespec *, struct timespec *); -#endif - -#endif /* _MACHTIME_H_ */ diff --git a/include/machine/types.h b/include/machine/types.h deleted file mode 100644 index 19d0e85..0000000 --- a/include/machine/types.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Newlib targets may provide an own version of this file in their machine - * directory to add custom user types for . - */ -#ifndef _SYS_TYPES_H -#error "must be included via " -#endif /* !_SYS_TYPES_H */ - -#if defined(__XMK__) && defined(___int64_t_defined) -typedef __uint64_t u_quad_t; -typedef __int64_t quad_t; -typedef quad_t * qaddr_t; -#endif diff --git a/include/malloc.h b/include/malloc.h deleted file mode 100644 index a9dc5bc..0000000 --- a/include/malloc.h +++ /dev/null @@ -1,173 +0,0 @@ -/* malloc.h -- header file for memory routines. */ - -#ifndef _INCLUDE_MALLOC_H_ -#define _INCLUDE_MALLOC_H_ - -#include <_ansi.h> -#include - -#define __need_size_t -#include - -/* include any machine-specific extensions */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* This version of struct mallinfo must match the one in - libc/stdlib/mallocr.c. */ - -struct mallinfo { - size_t arena; /* total space allocated from system */ - size_t ordblks; /* number of non-inuse chunks */ - size_t smblks; /* unused -- always zero */ - size_t hblks; /* number of mmapped regions */ - size_t hblkhd; /* total space in mmapped regions */ - size_t usmblks; /* unused -- always zero */ - size_t fsmblks; /* unused -- always zero */ - size_t uordblks; /* total allocated space */ - size_t fordblks; /* total non-inuse space */ - size_t keepcost; /* top-most, releasable (via malloc_trim) space */ -}; - -/* The routines. */ - -extern void *malloc (size_t); -#ifdef __CYGWIN__ -#undef _malloc_r -#define _malloc_r(r, s) malloc (s) -#else -extern void *_malloc_r (struct _reent *, size_t); -#endif - -extern void free (void *); -#ifdef __CYGWIN__ -#undef _free_r -#define _free_r(r, p) free (p) -#else -extern void _free_r (struct _reent *, void *); -#endif - -extern void *realloc (void *, size_t); -#ifdef __CYGWIN__ -#undef _realloc_r -#define _realloc_r(r, p, s) realloc (p, s) -#else -extern void *_realloc_r (struct _reent *, void *, size_t); -#endif - -extern void *calloc (size_t, size_t); -#ifdef __CYGWIN__ -#undef _calloc_r -#define _calloc_r(r, s1, s2) calloc (s1, s2); -#else -extern void *_calloc_r (struct _reent *, size_t, size_t); -#endif - -extern void *memalign (size_t, size_t); -#ifdef __CYGWIN__ -#undef _memalign_r -#define _memalign_r(r, s1, s2) memalign (s1, s2); -#else -extern void *_memalign_r (struct _reent *, size_t, size_t); -#endif - -extern struct mallinfo mallinfo (void); -#ifdef __CYGWIN__ -#undef _mallinfo_r -#define _mallinfo_r(r) mallinfo () -#else -extern struct mallinfo _mallinfo_r (struct _reent *); -#endif - -extern void malloc_stats (void); -#ifdef __CYGWIN__ -#undef _malloc_stats_r -#define _malloc_stats_r(r) malloc_stats () -#else -extern void _malloc_stats_r (struct _reent *); -#endif - -extern int mallopt (int, int); -#ifdef __CYGWIN__ -#undef _mallopt_r -#define _mallopt_r(i1, i2) mallopt (i1, i2) -#else -extern int _mallopt_r (struct _reent *, int, int); -#endif - -extern size_t malloc_usable_size (void *); -#ifdef __CYGWIN__ -#undef _malloc_usable_size_r -#define _malloc_usable_size_r(r, p) malloc_usable_size (p) -#else -extern size_t _malloc_usable_size_r (struct _reent *, void *); -#endif - -/* These aren't too useful on an embedded system, but we define them - anyhow. */ - -extern void *valloc (size_t); -#ifdef __CYGWIN__ -#undef _valloc_r -#define _valloc_r(r, s) valloc (s) -#else -extern void *_valloc_r (struct _reent *, size_t); -#endif - -extern void *pvalloc (size_t); -#ifdef __CYGWIN__ -#undef _pvalloc_r -#define _pvalloc_r(r, s) pvalloc (s) -#else -extern void *_pvalloc_r (struct _reent *, size_t); -#endif - -extern int malloc_trim (size_t); -#ifdef __CYGWIN__ -#undef _malloc_trim_r -#define _malloc_trim_r(r, s) malloc_trim (s) -#else -extern int _malloc_trim_r (struct _reent *, size_t); -#endif - -extern void __malloc_lock(struct _reent *); - -extern void __malloc_unlock(struct _reent *); - -/* A compatibility routine for an earlier version of the allocator. */ - -extern void mstats (char *); -#ifdef __CYGWIN__ -#undef _mstats_r -#define _mstats_r(r, p) mstats (p) -#else -extern void _mstats_r (struct _reent *, char *); -#endif - -/* SVID2/XPG mallopt options */ - -#define M_MXFAST 1 /* UNUSED in this malloc */ -#define M_NLBLKS 2 /* UNUSED in this malloc */ -#define M_GRAIN 3 /* UNUSED in this malloc */ -#define M_KEEP 4 /* UNUSED in this malloc */ - -/* mallopt options that actually do something */ - -#define M_TRIM_THRESHOLD -1 -#define M_TOP_PAD -2 -#define M_MMAP_THRESHOLD -3 -#define M_MMAP_MAX -4 - -#ifndef __CYGWIN__ -/* Some systems provide this, so do too for compatibility. */ -extern void cfree (void *); -#endif /* __CYGWIN__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* _INCLUDE_MALLOC_H_ */ diff --git a/include/math.h b/include/math.h deleted file mode 100644 index 87f5133..0000000 --- a/include/math.h +++ /dev/null @@ -1,644 +0,0 @@ -#ifndef _MATH_H_ - -#define _MATH_H_ - -#include -#include -#include -#include "_ansi.h" - -_BEGIN_STD_C - -/* Natural log of 2 */ -#define _M_LN2 0.693147180559945309417 - -#if __GNUC_PREREQ (3, 3) - /* gcc >= 3.3 implicitly defines builtins for HUGE_VALx values. */ - -# ifndef HUGE_VAL -# define HUGE_VAL (__builtin_huge_val()) -# endif - -# ifndef HUGE_VALF -# define HUGE_VALF (__builtin_huge_valf()) -# endif - -# ifndef HUGE_VALL -# define HUGE_VALL (__builtin_huge_vall()) -# endif - -# ifndef INFINITY -# define INFINITY (__builtin_inff()) -# endif - -# ifndef NAN -# define NAN (__builtin_nanf("")) -# endif - -#else /* !gcc >= 3.3 */ - - /* No builtins. Use fixed defines instead. (All 3 HUGE plus the INFINITY - * and NAN macros are required to be constant expressions. Using a variable-- - * even a static const--does not meet this requirement, as it cannot be - * evaluated at translation time.) - * The infinities are done using numbers that are far in excess of - * something that would be expected to be encountered in a floating-point - * implementation. (A more certain way uses values from float.h, but that is - * avoided because system includes are not supposed to include each other.) - * This method might produce warnings from some compilers. (It does in - * newer GCCs, but not for ones that would hit this #else.) If this happens, - * please report details to the Newlib mailing list. */ - - #ifndef HUGE_VAL - #define HUGE_VAL (1.0e999999999) - #endif - - #ifndef HUGE_VALF - #define HUGE_VALF (1.0e999999999F) - #endif - - #if !defined(HUGE_VALL) && defined(_HAVE_LONG_DOUBLE) - #define HUGE_VALL (1.0e999999999L) - #endif - - #if !defined(INFINITY) - #define INFINITY (HUGE_VALF) - #endif - - #if !defined(NAN) - #if defined(__GNUC__) && defined(__cplusplus) - /* Exception: older g++ versions warn about the divide by 0 used in the - * normal case (even though older gccs do not). This trick suppresses the - * warning, but causes errors for plain gcc, so is only used in the one - * special case. */ - static const union { __ULong __i[1]; float __d; } __Nanf = {0x7FC00000}; - #define NAN (__Nanf.__d) - #else - #define NAN (0.0F/0.0F) - #endif - #endif - -#endif /* !gcc >= 3.3 */ - -/* Reentrant ANSI C functions. */ - -#ifndef __math_68881 -extern double atan (double); -extern double cos (double); -extern double sin (double); -extern double tan (double); -extern double tanh (double); -extern double frexp (double, int *); -extern double modf (double, double *); -extern double ceil (double); -extern double fabs (double); -extern double floor (double); -#endif /* ! defined (__math_68881) */ - -/* Non reentrant ANSI C functions. */ - -#ifndef _REENT_ONLY -#ifndef __math_68881 -extern double acos (double); -extern double asin (double); -extern double atan2 (double, double); -extern double cosh (double); -extern double sinh (double); -extern double exp (double); -extern double ldexp (double, int); -extern double log (double); -extern double log10 (double); -extern double pow (double, double); -extern double sqrt (double); -extern double fmod (double, double); -#endif /* ! defined (__math_68881) */ -#endif /* ! defined (_REENT_ONLY) */ - -#if __MISC_VISIBLE -extern int finite (double); -extern int finitef (float); -extern int finitel (long double); -extern int isinff (float); -extern int isnanf (float); -#ifdef __CYGWIN__ /* not implemented in newlib yet */ -extern int isinfl (long double); -extern int isnanl (long double); -#endif -#if !defined(__cplusplus) || __cplusplus < 201103L -extern int isinf (double); -#endif -#endif /* __MISC_VISIBLE */ -#if (__MISC_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 600)) \ - && (!defined(__cplusplus) || __cplusplus < 201103L) -extern int isnan (double); -#endif - -#if __ISO_C_VISIBLE >= 1999 -/* ISO C99 types and macros. */ - -/* FIXME: FLT_EVAL_METHOD should somehow be gotten from float.h (which is hard, - * considering that the standard says the includes it defines should not - * include other includes that it defines) and that value used. (This can be - * solved, but autoconf has a bug which makes the solution more difficult, so - * it has been skipped for now.) */ -#if !defined(FLT_EVAL_METHOD) && defined(__FLT_EVAL_METHOD__) - #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ - #define __TMP_FLT_EVAL_METHOD -#endif /* FLT_EVAL_METHOD */ -#if defined FLT_EVAL_METHOD -/* FLT_EVAL_METHOD == 16 has meaning as defined in ISO/IEC TS 18661-3, - * which provides non-compliant extensions to C and POSIX (by adding - * additional positive values for FLT_EVAL_METHOD). It effectively has - * same meaning as the C99 and C11 definitions for value 0, while also - * serving as a flag that the _Float16 (float16_t) type exists. - * - * FLT_EVAL_METHOD could be any number of bits of supported floating point - * format (e.g. 32, 64, 128), but currently only AArch64 and few other targets - * might define that as 16. */ - #if (FLT_EVAL_METHOD == 0) \ - || (FLT_EVAL_METHOD == 16) - typedef float float_t; - typedef double double_t; - #elif FLT_EVAL_METHOD == 1 - typedef double float_t; - typedef double double_t; - #elif FLT_EVAL_METHOD == 2 - typedef long double float_t; - typedef long double double_t; - #else - /* Implementation-defined. Assume float_t and double_t have been - * defined previously for this configuration (e.g. config.h). */ - - /* If __DOUBLE_TYPE is defined (__FLOAT_TYPE is then supposed to be - defined as well) float_t and double_t definition is suggested by - an arch specific header. */ - #ifdef __DOUBLE_TYPE - typedef __DOUBLE_TYPE double_t; - typedef __FLOAT_TYPE float_t; - #endif - /* Assume config.h has provided these types. */ - #endif -#else - /* Assume basic definitions. */ - typedef float float_t; - typedef double double_t; -#endif -#if defined(__TMP_FLT_EVAL_METHOD) - #undef FLT_EVAL_METHOD -#endif - -#define FP_NAN 0 -#define FP_INFINITE 1 -#define FP_ZERO 2 -#define FP_SUBNORMAL 3 -#define FP_NORMAL 4 - -#ifndef FP_ILOGB0 -# define FP_ILOGB0 (-__INT_MAX__) -#endif -#ifndef FP_ILOGBNAN -# define FP_ILOGBNAN __INT_MAX__ -#endif - -#ifndef MATH_ERRNO -# define MATH_ERRNO 1 -#endif -#ifndef MATH_ERREXCEPT -# define MATH_ERREXCEPT 2 -#endif -#ifndef math_errhandling -# ifdef _IEEE_LIBM -# define _MATH_ERRHANDLING_ERRNO 0 -# else -# define _MATH_ERRHANDLING_ERRNO MATH_ERRNO -# endif -# ifdef _SUPPORTS_ERREXCEPT -# define _MATH_ERRHANDLING_ERREXCEPT MATH_ERREXCEPT -# else -# define _MATH_ERRHANDLING_ERREXCEPT 0 -# endif -# define math_errhandling (_MATH_ERRHANDLING_ERRNO | _MATH_ERRHANDLING_ERREXCEPT) -#endif - -extern int __isinff (float); -extern int __isinfd (double); -extern int __isnanf (float); -extern int __isnand (double); -extern int __fpclassifyf (float); -extern int __fpclassifyd (double); -extern int __signbitf (float); -extern int __signbitd (double); - -/* Note: isinf and isnan were once functions in newlib that took double - * arguments. C99 specifies that these names are reserved for macros - * supporting multiple floating point types. Thus, they are - * now defined as macros. Implementations of the old functions - * taking double arguments still exist for compatibility purposes - * (prototypes for them are earlier in this header). */ - -#if __GNUC_PREREQ (4, 4) - #define fpclassify(__x) (__builtin_fpclassify (FP_NAN, FP_INFINITE, \ - FP_NORMAL, FP_SUBNORMAL, \ - FP_ZERO, __x)) - #ifndef isfinite - #define isfinite(__x) (__builtin_isfinite (__x)) - #endif - #ifndef isinf - #define isinf(__x) (__builtin_isinf_sign (__x)) - #endif - #ifndef isnan - #define isnan(__x) (__builtin_isnan (__x)) - #endif - #define isnormal(__x) (__builtin_isnormal (__x)) -#else - #define fpclassify(__x) \ - ((sizeof(__x) == sizeof(float)) ? __fpclassifyf(__x) : \ - __fpclassifyd(__x)) - #ifndef isfinite - #define isfinite(__y) \ - (__extension__ ({int __cy = fpclassify(__y); \ - __cy != FP_INFINITE && __cy != FP_NAN;})) - #endif - #ifndef isinf - #define isinf(__x) (fpclassify(__x) == FP_INFINITE) - #endif - #ifndef isnan - #define isnan(__x) (fpclassify(__x) == FP_NAN) - #endif - #define isnormal(__x) (fpclassify(__x) == FP_NORMAL) -#endif - -#if __GNUC_PREREQ (4, 0) - #if defined(_HAVE_LONG_DOUBLE) - #define signbit(__x) \ - ((sizeof(__x) == sizeof(float)) ? __builtin_signbitf(__x) : \ - (sizeof(__x) == sizeof(double)) ? __builtin_signbit (__x) : \ - __builtin_signbitl(__x)) - #else - #define signbit(__x) \ - ((sizeof(__x) == sizeof(float)) ? __builtin_signbitf(__x) : \ - __builtin_signbit (__x)) - #endif -#else - #define signbit(__x) \ - ((sizeof(__x) == sizeof(float)) ? __signbitf(__x) : \ - __signbitd(__x)) -#endif - -#if __GNUC_PREREQ (2, 97) -#define isgreater(__x,__y) (__builtin_isgreater (__x, __y)) -#define isgreaterequal(__x,__y) (__builtin_isgreaterequal (__x, __y)) -#define isless(__x,__y) (__builtin_isless (__x, __y)) -#define islessequal(__x,__y) (__builtin_islessequal (__x, __y)) -#define islessgreater(__x,__y) (__builtin_islessgreater (__x, __y)) -#define isunordered(__x,__y) (__builtin_isunordered (__x, __y)) -#else -#define isgreater(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x > __y);})) -#define isgreaterequal(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x >= __y);})) -#define isless(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x < __y);})) -#define islessequal(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x <= __y);})) -#define islessgreater(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x < __y || __x > __y);})) - -#define isunordered(a,b) \ - (__extension__ ({__typeof__(a) __a = (a); __typeof__(b) __b = (b); \ - fpclassify(__a) == FP_NAN || fpclassify(__b) == FP_NAN;})) -#endif - -/* Non ANSI double precision functions. */ - -extern double infinity (void); -extern double nan (const char *); -extern double copysign (double, double); -extern double logb (double); -extern int ilogb (double); - -extern double asinh (double); -extern double cbrt (double); -extern double nextafter (double, double); -extern double rint (double); -extern double scalbn (double, int); - -extern double exp2 (double); -extern double scalbln (double, long int); -extern double tgamma (double); -extern double nearbyint (double); -extern long int lrint (double); -extern long long int llrint (double); -extern double round (double); -extern long int lround (double); -extern long long int llround (double); -extern double trunc (double); -extern double remquo (double, double, int *); -extern double fdim (double, double); -extern double fmax (double, double); -extern double fmin (double, double); -extern double fma (double, double, double); - -#ifndef __math_68881 -extern double log1p (double); -extern double expm1 (double); -#endif /* ! defined (__math_68881) */ - -#ifndef _REENT_ONLY -extern double acosh (double); -extern double atanh (double); -extern double remainder (double, double); -extern double gamma (double); -extern double lgamma (double); -extern double erf (double); -extern double erfc (double); -extern double log2 (double); -#if !defined(__cplusplus) -#define log2(x) (log (x) / _M_LN2) -#endif - -#ifndef __math_68881 -extern double hypot (double, double); -#endif - -#endif /* ! defined (_REENT_ONLY) */ - -/* Single precision versions of ANSI functions. */ - -extern float atanf (float); -extern float cosf (float); -extern float sinf (float); -extern float tanf (float); -extern float tanhf (float); -extern float frexpf (float, int *); -extern float modff (float, float *); -extern float ceilf (float); -extern float fabsf (float); -extern float floorf (float); - -#ifndef _REENT_ONLY -extern float acosf (float); -extern float asinf (float); -extern float atan2f (float, float); -extern float coshf (float); -extern float sinhf (float); -extern float expf (float); -extern float ldexpf (float, int); -extern float logf (float); -extern float log10f (float); -extern float powf (float, float); -extern float sqrtf (float); -extern float fmodf (float, float); -#endif /* ! defined (_REENT_ONLY) */ - -/* Other single precision functions. */ - -extern float exp2f (float); -extern float scalblnf (float, long int); -extern float tgammaf (float); -extern float nearbyintf (float); -extern long int lrintf (float); -extern long long int llrintf (float); -extern float roundf (float); -extern long int lroundf (float); -extern long long int llroundf (float); -extern float truncf (float); -extern float remquof (float, float, int *); -extern float fdimf (float, float); -extern float fmaxf (float, float); -extern float fminf (float, float); -extern float fmaf (float, float, float); - -extern float infinityf (void); -extern float nanf (const char *); -extern float copysignf (float, float); -extern float logbf (float); -extern int ilogbf (float); - -extern float asinhf (float); -extern float cbrtf (float); -extern float nextafterf (float, float); -extern float rintf (float); -extern float scalbnf (float, int); -extern float log1pf (float); -extern float expm1f (float); - -#ifndef _REENT_ONLY -extern float acoshf (float); -extern float atanhf (float); -extern float remainderf (float, float); -extern float gammaf (float); -extern float lgammaf (float); -extern float erff (float); -extern float erfcf (float); -extern float log2f (float); -extern float hypotf (float, float); -#endif /* ! defined (_REENT_ONLY) */ - -/* Newlib doesn't fully support long double math functions so far. - On platforms where long double equals double the long double functions - simply call the double functions. On Cygwin the long double functions - are implemented independently from newlib to be able to use optimized - assembler functions despite using the Microsoft x86_64 ABI. */ -#if defined (_LDBL_EQ_DBL) || defined (__CYGWIN__) || \ - defined(__aarch64__) || defined(__i386__) || defined(__x86_64__) -/* Reentrant ANSI C functions. */ -#ifndef __math_68881 -extern long double atanl (long double); -extern long double cosl (long double); -extern long double sinl (long double); -extern long double tanl (long double); -extern long double tanhl (long double); -extern long double frexpl (long double, int *); -extern long double modfl (long double, long double *); -extern long double ceill (long double); -extern long double fabsl (long double); -extern long double floorl (long double); -extern long double log1pl (long double); -extern long double expm1l (long double); -#endif /* ! defined (__math_68881) */ -/* Non reentrant ANSI C functions. */ -#ifndef _REENT_ONLY -#ifndef __math_68881 -extern long double acosl (long double); -extern long double asinl (long double); -extern long double atan2l (long double, long double); -extern long double coshl (long double); -extern long double sinhl (long double); -extern long double expl (long double); -extern long double ldexpl (long double, int); -extern long double logl (long double); -extern long double log10l (long double); -extern long double powl (long double, long double); -extern long double sqrtl (long double); -extern long double fmodl (long double, long double); -extern long double hypotl (long double, long double); -#endif /* ! defined (__math_68881) */ -#endif /* ! defined (_REENT_ONLY) */ -extern long double copysignl (long double, long double); -extern long double nanl (const char *); -extern int ilogbl (long double); -extern long double asinhl (long double); -extern long double cbrtl (long double); -extern long double nextafterl (long double, long double); -extern float nexttowardf (float, long double); -extern double nexttoward (double, long double); -extern long double nexttowardl (long double, long double); -extern long double logbl (long double); -extern long double log2l (long double); -extern long double rintl (long double); -extern long double scalbnl (long double, int); -extern long double exp2l (long double); -extern long double scalblnl (long double, long); -extern long double tgammal (long double); -extern long double nearbyintl (long double); -extern long int lrintl (long double); -extern long long int llrintl (long double); -extern long double roundl (long double); -extern long lroundl (long double); -extern long long int llroundl (long double); -extern long double truncl (long double); -extern long double remquol (long double, long double, int *); -extern long double fdiml (long double, long double); -extern long double fmaxl (long double, long double); -extern long double fminl (long double, long double); -extern long double fmal (long double, long double, long double); -#ifndef _REENT_ONLY -extern long double acoshl (long double); -extern long double atanhl (long double); -extern long double remainderl (long double, long double); -extern long double lgammal (long double); -extern long double erfl (long double); -extern long double erfcl (long double); -#endif /* ! defined (_REENT_ONLY) */ -#else /* !_LDBL_EQ_DBL && !__CYGWIN__ */ -extern long double hypotl (long double, long double); -extern long double sqrtl (long double); -extern long double frexpl (long double, int *); -#ifdef __i386__ -/* Other long double precision functions. */ -extern _LONG_DOUBLE rintl (_LONG_DOUBLE); -extern long int lrintl (_LONG_DOUBLE); -extern long long int llrintl (_LONG_DOUBLE); -#endif /* __i386__ */ -#endif /* !_LDBL_EQ_DBL && !__CYGWIN__ */ - -#endif /* __ISO_C_VISIBLE >= 1999 */ - -#if __MISC_VISIBLE -extern double drem (double, double); -extern float dremf (float, float); -#ifdef __CYGWIN__ -extern float dreml (long double, long double); -#endif /* __CYGWIN__ */ -extern double gamma_r (double, int *); -extern double lgamma_r (double, int *); -extern float gammaf_r (float, int *); -extern float lgammaf_r (float, int *); -#endif - -#if __MISC_VISIBLE || __XSI_VISIBLE -extern double y0 (double); -extern double y1 (double); -extern double yn (int, double); -extern double j0 (double); -extern double j1 (double); -extern double jn (int, double); -#endif - -#if __MISC_VISIBLE || __XSI_VISIBLE >= 600 -extern float y0f (float); -extern float y1f (float); -extern float ynf (int, float); -extern float j0f (float); -extern float j1f (float); -extern float jnf (int, float); -#endif - -/* GNU extensions */ -#if __GNU_VISIBLE -extern void sincos (double, double *, double *); -extern void sincosf (float, float *, float *); -#ifdef __CYGWIN__ -extern void sincosl (long double, long double *, long double *); -#endif /* __CYGWIN__ */ -# ifndef exp10 -extern double exp10 (double); -# endif -# ifndef pow10 -extern double pow10 (double); -# endif -# ifndef exp10f -extern float exp10f (float); -# endif -# ifndef pow10f -extern float pow10f (float); -# endif -#ifdef __CYGWIN__ -# ifndef exp10l -extern float exp10l (float); -# endif -# ifndef pow10l -extern float pow10l (float); -# endif -#endif /* __CYGWIN__ */ -#endif /* __GNU_VISIBLE */ - -#if __MISC_VISIBLE || __XSI_VISIBLE -/* The gamma functions use a global variable, signgam. */ -#ifndef _REENT_ONLY -#define signgam (*__signgam()) -extern int *__signgam (void); -#endif /* ! defined (_REENT_ONLY) */ - -#define __signgam_r(ptr) _REENT_SIGNGAM(ptr) -#endif /* __MISC_VISIBLE || __XSI_VISIBLE */ - -/* Useful constants. */ - -#if __BSD_VISIBLE || __XSI_VISIBLE - -#define MAXFLOAT 3.40282347e+38F - -#define M_E 2.7182818284590452354 -#define M_LOG2E 1.4426950408889634074 -#define M_LOG10E 0.43429448190325182765 -#define M_LN2 _M_LN2 -#define M_LN10 2.30258509299404568402 -#define M_PI 3.14159265358979323846 -#define M_PI_2 1.57079632679489661923 -#define M_PI_4 0.78539816339744830962 -#define M_1_PI 0.31830988618379067154 -#define M_2_PI 0.63661977236758134308 -#define M_2_SQRTPI 1.12837916709551257390 -#define M_SQRT2 1.41421356237309504880 -#define M_SQRT1_2 0.70710678118654752440 - -#endif - -#if __BSD_VISIBLE - -#define M_TWOPI (M_PI * 2.0) -#define M_3PI_4 2.3561944901923448370E0 -#define M_SQRTPI 1.77245385090551602792981 -#define M_LN2LO 1.9082149292705877000E-10 -#define M_LN2HI 6.9314718036912381649E-1 -#define M_SQRT3 1.73205080756887719000 -#define M_IVLN10 0.43429448190325182765 /* 1 / log(10) */ -#define M_LOG2_E _M_LN2 -#define M_INVLN2 1.4426950408889633870E0 /* 1 / log(2) */ - -#endif /* __BSD_VISIBLE */ - -_END_STD_C - -#ifdef __FAST_MATH__ -#include -#endif - -#endif /* _MATH_H_ */ diff --git a/include/md5.h b/include/md5.h deleted file mode 100644 index 909f7b4..0000000 --- a/include/md5.h +++ /dev/null @@ -1,154 +0,0 @@ -/* md5.h - Declaration of functions and data types used for MD5 sum - computing library functions. - Copyright (C) 1995-2015 Free Software Foundation, Inc. - NOTE: The canonical source of this file is maintained with the GNU C - Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) any - later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _MD5_H -#define _MD5_H 1 - -#include - -#if defined HAVE_LIMITS_H || _LIBC -# include -#endif - -#include "ansidecl.h" - -/* The following contortions are an attempt to use the C preprocessor - to determine an unsigned integral type that is 32 bits wide. An - alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but - doing that would require that the configure script compile and *run* - the resulting executable. Locally running cross-compiled executables - is usually not possible. */ - -#ifdef _LIBC -# include -typedef u_int32_t md5_uint32; -typedef uintptr_t md5_uintptr; -#elif defined (HAVE_SYS_TYPES_H) && defined (HAVE_STDINT_H) -#include -#include -typedef uint32_t md5_uint32; -typedef uintptr_t md5_uintptr; -#else -# define INT_MAX_32_BITS 2147483647 - -/* If UINT_MAX isn't defined, assume it's a 32-bit type. - This should be valid for all systems GNU cares about because - that doesn't include 16-bit systems, and only modern systems - (that certainly have ) have 64+-bit integral types. */ - -# ifndef INT_MAX -# define INT_MAX INT_MAX_32_BITS -# endif - -# if INT_MAX == INT_MAX_32_BITS - typedef unsigned int md5_uint32; -# else -# if SHRT_MAX == INT_MAX_32_BITS - typedef unsigned short md5_uint32; -# else -# if LONG_MAX == INT_MAX_32_BITS - typedef unsigned long md5_uint32; -# else - /* The following line is intended to evoke an error. - Using #error is not portable enough. */ - "Cannot determine unsigned 32-bit data type." -# endif -# endif -# endif -/* We have to make a guess about the integer type equivalent in size - to pointers which should always be correct. */ -typedef unsigned long int md5_uintptr; -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Structure to save state of computation between the single steps. */ -struct md5_ctx -{ - md5_uint32 A; - md5_uint32 B; - md5_uint32 C; - md5_uint32 D; - - md5_uint32 total[2]; - md5_uint32 buflen; - char buffer[128] ATTRIBUTE_ALIGNED_ALIGNOF(md5_uint32); -}; - -/* - * The following three functions are build up the low level used in - * the functions `md5_stream' and `md5_buffer'. - */ - -/* Initialize structure containing state of computation. - (RFC 1321, 3.3: Step 3) */ -extern void md5_init_ctx (struct md5_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is necessary that LEN is a multiple of 64!!! */ -extern void md5_process_block (const void *buffer, size_t len, - struct md5_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is NOT required that LEN is a multiple of 64. */ -extern void md5_process_bytes (const void *buffer, size_t len, - struct md5_ctx *ctx); - -/* Process the remaining bytes in the buffer and put result from CTX - in first 16 bytes following RESBUF. The result is always in little - endian byte order, so that a byte-wise output yields to the wanted - ASCII representation of the message digest. - - IMPORTANT: On some systems it is required that RESBUF is correctly - aligned for a 32 bits value. */ -extern void *md5_finish_ctx (struct md5_ctx *ctx, void *resbuf); - - -/* Put result from CTX in first 16 bytes following RESBUF. The result is - always in little endian byte order, so that a byte-wise output yields - to the wanted ASCII representation of the message digest. - - IMPORTANT: On some systems it is required that RESBUF is correctly - aligned for a 32 bits value. */ -extern void *md5_read_ctx (const struct md5_ctx *ctx, void *resbuf); - - -/* Compute MD5 message digest for bytes read from STREAM. The - resulting message digest number will be written into the 16 bytes - beginning at RESBLOCK. */ -extern int md5_stream (FILE *stream, void *resblock); - -/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The - result is always in little endian byte order, so that a byte-wise - output yields to the wanted ASCII representation of the message - digest. */ -extern void *md5_buffer (const char *buffer, size_t len, void *resblock); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/memory.h b/include/memory.h deleted file mode 100644 index f4a14fc..0000000 --- a/include/memory.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef _MEMORY_H -#define _MEMORY_H -#include -#endif /* !_MEMORY_H */ diff --git a/include/ndbm.h b/include/ndbm.h deleted file mode 100644 index 1e5072c..0000000 --- a/include/ndbm.h +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Margo Seltzer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)ndbm.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD$ : src/include/ndbm.h - * Nov 20 19:45:28 2017 UTC by pfg - * SVN Revision 326024 - */ - -#ifndef _NDBM_H_ -#define _NDBM_H_ - -#include /* For mode_t. */ -/* #include */ - -/* - * The above header-file is directly included in `newlib/libc/search/ndbm.c` - * as `db.h` is present in form of `db_local.h`, inside `newlib/libc/search` - * directory and not in `newlib/libc/include`. - * Necessary data-types are mentioned in form of forward-declarations - */ - -/* Map dbm interface onto db(3). */ -#define DBM_RDONLY O_RDONLY - -/* Flags to dbm_store(). */ -#define DBM_INSERT 0 -#define DBM_REPLACE 1 - -/* - * The db(3) support for ndbm always appends this suffix to the - * file name to avoid overwriting the user's original database. - */ -#define DBM_SUFFIX ".db" - -typedef struct { - void *dptr; - int dsize; /* XXX Should be size_t according to 1003.1-2008. */ -} datum; - -struct __db; /* Forward-declaration */ -typedef struct __db DB; /* Forward-declaration */ -typedef DB DBM; -#define dbm_pagfno(a) DBM_PAGFNO_NOT_AVAILABLE - -__BEGIN_DECLS -int dbm_clearerr(DBM *); -void dbm_close(DBM *); -int dbm_delete(DBM *, datum); -int dbm_error(DBM *); -datum dbm_fetch(DBM *, datum); -datum dbm_firstkey(DBM *); -datum dbm_nextkey(DBM *); -DBM *dbm_open(const char *, int, mode_t); -int dbm_store(DBM *, datum, datum, int); -#if __BSD_VISIBLE -int dbm_dirfno(DBM *); -#endif -__END_DECLS - -#endif /* !_NDBM_H_ */ diff --git a/include/newlib.h b/include/newlib.h deleted file mode 100644 index d4fffb1..0000000 --- a/include/newlib.h +++ /dev/null @@ -1,2 +0,0 @@ -/* dummy file for external tools to use. Real file is created by - newlib configuration. */ diff --git a/include/nlm/ChangeLog b/include/nlm/ChangeLog deleted file mode 100644 index 9d5f54b..0000000 --- a/include/nlm/ChangeLog +++ /dev/null @@ -1,119 +0,0 @@ -2010-04-15 Nick Clifton - - * alpha-ext.h: Update copyright notice to use GPLv3. - * common.h: Likewise. - * external.h: Likewise. - * i386-ext.h: Likewise. - * internal.h: Likewise. - * ppc-ext.h: Likewise. - * sparc32-ext.h: Likewise. - -2005-05-10 Nick Clifton - - * Update the address and phone number of the FSF organization in - the GPL notices in the following files: - alpha-ext.h, common.h, external.h, i386-ext.h, internal.h, - ppc-ext.h, sparc32-ext.h - -2003-08-07 Alan Modra - - * internal.h (Nlm_Internal_Custom_Header): Replace PTR with void *. - -2001-10-02 Alan Modra - - * common.h (NLM_CAT, NLM_CAT3): Don't define. - (NLM_CAT4): Update conditions under which this is defined. Document - why CONCAT4 can't be used. - -1994-05-06 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * external.h (nlmNAME(External_Custom_Header)): Add length, - dataOffset, and dataStamp field. - (nlmNAME(External_Cygnus_Ext_Header)): Remove. - * internal.h (Nlm_Internal_Custom_Header): Add hdrLength, - dataOffset, dataStamp and hdr fields. - -1994-04-22 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * external.h (struct nlmNAME(external_cygnus_ext_header)): Rename - from nlmNAME(external_cygnus_section_header). Change stamp field - to 8 bytes. Add bytes field. - * internal.h (nlm_internal_cygnus_ext_header): Rename from - nlm_internal_cygnus_section_header. Change stamp field to 8 - bytes. - -1994-04-21 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * internal.h (struct nlm_internal_cygnus_section_header): Define. - * external.h (struct nlmNAME(external_cygnus_section_header): - Define. - -1994-04-20 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * internal.h (struct nlm_internal_custom_header): Remove - debugRecOffset and debugRecLength fields. Add data field. - * external.h (struct nlmNAME(external_custom_header)): Remove - debugRecOffset and debugRecLength fields. - -1994-02-07 Jim Kingdon (kingdon@lioth.cygnus.com) - - * internal.h: Change HOST_64_BIT to BFD_HOST_64_BIT. - -1993-12-02 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * alpha-ext.h: New file describing formats of information in Alpha - NetWare files. - * common.h: Define some non-external Alpha information. - -1993-11-17 Sean Eric Fagan (sef@cygnus.com) - - * external.h: Don't define external_fixed_header here. - * i386-ext.h, sparc32-ext.h: New header files to define - external_fixed_header for particular CPU's. - -1993-10-27 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * internal.h (Nlm_Internal_Extended_Header): Added fields - sharedDebugRecordOffset and sharedDebugRecordCount. - * external.h (NlmNAME(External_Extended_Header)): Likewise. - - * common.h (NLM_SIGNATURE): Do not define (it's different for each - backend). - -1993-08-31 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * internal.h: Change length fields of type char to type unsigned - char. - -1993-07-31 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * common.h (NLM_HIBIT, NLM_HEADER_VERSION): Define. - -1993-07-22 Fred Fish (fnf@deneb.cygnus.com) - - * common.h (NLM_CAT*, NLM_ARCH_SIZE, NLM_TARGET_LONG_SIZE, - NLM_TARGET_ADDRESS_SIZE, NLM_NAME, NlmNAME, nlmNAME): New - macros. - * external.h (TARGET_LONG_SIZE, TARGET_ADDRESS_SIZE): Remove - macros, convert usages to NLM_ equivalents. - * external.h: Use nlmNAME and NlmNAME macros to derive both - 32 and 64 bit versions. - -1993-07-20 Fred Fish (fnf@deneb.cygnus.com) - - * (common.h, external.h, internal.h): New files for NLM/NetWare - support. - - -Copyright (C) 1993-2012 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - -Local Variables: -mode: change-log -left-margin: 8 -fill-column: 74 -version-control: never -End: diff --git a/include/nlm/alpha-ext.h b/include/nlm/alpha-ext.h deleted file mode 100644 index 7dc6568..0000000 --- a/include/nlm/alpha-ext.h +++ /dev/null @@ -1,167 +0,0 @@ -/* Alpha NLM (NetWare Loadable Module) support for BFD. - Copyright 1993, 2005, 2010 Free Software Foundation, Inc. - By Ian Lance Taylor, Cygnus Support - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* An Alpha NLM starts with an instance of this structure. */ - -struct nlm32_alpha_external_prefix_header -{ - /* Magic number. Must be NLM32_ALPHA_MAGIC. */ - unsigned char magic[4]; - /* Format descriptor. Current value is 2. */ - unsigned char format[4]; - /* Size of prefix header. */ - unsigned char size[4]; - /* Padding. */ - unsigned char pad1[4]; - /* More fields may be added later, supposedly. */ -}; - -/* The external format of an Alpha NLM reloc. This is the same as an - Alpha ECOFF reloc. */ - -struct nlm32_alpha_external_reloc -{ - unsigned char r_vaddr[8]; - unsigned char r_symndx[4]; - unsigned char r_bits[4]; -}; - -/* Constants to unpack the r_bits field of a reloc. */ - -#define RELOC_BITS0_TYPE_LITTLE 0xff -#define RELOC_BITS0_TYPE_SH_LITTLE 0 - -#define RELOC_BITS1_EXTERN_LITTLE 0x01 - -#define RELOC_BITS1_OFFSET_LITTLE 0x7e -#define RELOC_BITS1_OFFSET_SH_LITTLE 1 - -#define RELOC_BITS1_RESERVED_LITTLE 0x80 -#define RELOC_BITS1_RESERVED_SH_LITTLE 7 -#define RELOC_BITS2_RESERVED_LITTLE 0xff -#define RELOC_BITS2_RESERVED_SH_LEFT_LITTLE 1 -#define RELOC_BITS3_RESERVED_LITTLE 0x03 -#define RELOC_BITS3_RESERVED_SH_LEFT_LITTLE 9 - -#define RELOC_BITS3_SIZE_LITTLE 0xfc -#define RELOC_BITS3_SIZE_SH_LITTLE 2 - -/* The external format of the fixed header. */ - -typedef struct nlm32_alpha_external_fixed_header -{ - - /* The signature field identifies the file as an NLM. It must contain - the signature string, which depends upon the NLM target. */ - - unsigned char signature[24]; - - /* The version of the header. At this time, the highest version number - is 4. */ - - unsigned char version[4]; - - /* The name of the module, which must be a DOS name (1-8 characters followed - by a period and a 1-3 character extension). The first byte is the byte - length of the name and the last byte is a null terminator byte. This - field is fixed length, and any unused bytes should be null bytes. The - value is set by the OUTPUT keyword to NLMLINK. */ - - unsigned char moduleName[14]; - - /* Padding to make it come out correct. */ - - unsigned char pad1[2]; - - /* The byte offset of the code image from the start of the file. */ - - unsigned char codeImageOffset[4]; - - /* The size of the code image, in bytes. */ - - unsigned char codeImageSize[4]; - - /* The byte offset of the data image from the start of the file. */ - - unsigned char dataImageOffset[4]; - - /* The size of the data image, in bytes. */ - - unsigned char dataImageSize[4]; - - /* The size of the uninitialized data region that the loader is to be - allocated at load time. Uninitialized data follows the initialized - data in the NLM address space. */ - - unsigned char uninitializedDataSize[4]; - - /* The byte offset of the custom data from the start of the file. The - custom data is set by the CUSTOM keyword to NLMLINK. It is possible - for this to be EOF if there is no custom data. */ - - unsigned char customDataOffset[4]; - - /* The size of the custom data, in bytes. */ - - unsigned char customDataSize[4]; - - /* The byte offset of the module dependencies from the start of the file. - The module dependencies are determined by the MODULE keyword in - NLMLINK. */ - - unsigned char moduleDependencyOffset[4]; - - /* The number of module dependencies at the moduleDependencyOffset. */ - - unsigned char numberOfModuleDependencies[4]; - - /* The byte offset of the relocation fixup data from the start of the file */ - - unsigned char relocationFixupOffset[4]; - - unsigned char numberOfRelocationFixups[4]; - - unsigned char externalReferencesOffset[4]; - - unsigned char numberOfExternalReferences[4]; - - unsigned char publicsOffset[4]; - - unsigned char numberOfPublics[4]; - - /* The byte offset of the internal debug info from the start of the file. - It is possible for this to be EOF if there is no debug info. */ - - unsigned char debugInfoOffset[4]; - - unsigned char numberOfDebugRecords[4]; - - unsigned char codeStartOffset[4]; - - unsigned char exitProcedureOffset[4]; - - unsigned char checkUnloadProcedureOffset[4]; - - unsigned char moduleType[4]; - - unsigned char flags[4]; - -} Nlm32_alpha_External_Fixed_Header; diff --git a/include/nlm/common.h b/include/nlm/common.h deleted file mode 100644 index fcd290e..0000000 --- a/include/nlm/common.h +++ /dev/null @@ -1,123 +0,0 @@ -/* NLM (NetWare Loadable Module) support for BFD. - Copyright 1993, 2001, 2005, 2010 Free Software Foundation, Inc. - - Written by Fred Fish @ Cygnus Support - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file is part of NLM support for BFD, and contains the portions - that are common to both the internal and external representations. */ - -/* If NLM_ARCH_SIZE is not defined, default to 32. NLM_ARCH_SIZE is - optionally defined by the application. */ - -#ifndef NLM_ARCH_SIZE -# define NLM_ARCH_SIZE 32 -#endif - -/* Due to horrible details of ANSI macro expansion, we can't use CONCAT4 - for NLM_NAME. CONCAT2 is used in BFD_JUMP_TABLE macros, and some of - them will expand to tokens that themselves are macros defined in terms - of NLM_NAME. If NLM_NAME were defined using CONCAT4 (which is itself - defined in bfd-in.h using CONCAT2), ANSI preprocessor rules say that - the CONCAT2 within NLM_NAME should not be expanded. - So use another name. */ -#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) -#ifdef SABER -#define NLM_CAT4(a,b,c,d) a##b##c##d -#else -/* This hack is to avoid a problem with some strict ANSI C preprocessors. - The problem is, "32_" is not a valid preprocessing token, and we don't - want extra underscores (e.g., "nlm_32_"). The NLM_XCAT2 macro will - cause the inner CAT2 macros to be evaluated first, producing - still-valid pp-tokens. Then the final concatenation can be done. */ -#define NLM_CAT2(a,b) a##b -#define NLM_XCAT2(a,b) NLM_CAT2(a,b) -#define NLM_CAT4(a,b,c,d) NLM_XCAT2(NLM_CAT2(a,b),NLM_CAT2(c,d)) -#endif -#else -#define NLM_CAT4(a,b,c,d) a/**/b/**/c/**/d -#endif - -#if NLM_ARCH_SIZE == 32 -# define NLM_TARGET_LONG_SIZE 4 -# define NLM_TARGET_ADDRESS_SIZE 4 -# define NLM_NAME(x,y) NLM_CAT4(x,32,_,y) -# define NLM_HIBIT (((bfd_vma) 1) << 31) -#endif -#if NLM_ARCH_SIZE == 64 -# define NLM_TARGET_LONG_SIZE 8 -# define NLM_TARGET_ADDRESS_SIZE 8 -# define NLM_NAME(x,y) NLM_CAT4(x,64,_,y) -# define NLM_HIBIT (((bfd_vma) 1) << 63) -#endif - -#define NlmNAME(X) NLM_NAME(Nlm,X) -#define nlmNAME(X) NLM_NAME(nlm,X) - -/* Give names to things that should not change. */ - -#define NLM_MAX_DESCRIPTION_LENGTH 127 -#define NLM_MAX_SCREEN_NAME_LENGTH 71 -#define NLM_MAX_THREAD_NAME_LENGTH 71 -#define NLM_MAX_COPYRIGHT_MESSAGE_LENGTH 255 -#define NLM_OTHER_DATA_LENGTH 400 /* FIXME */ -#define NLM_OLD_THREAD_NAME_LENGTH 5 -#define NLM_SIGNATURE_SIZE 24 -#define NLM_HEADER_VERSION 4 -#define NLM_MODULE_NAME_SIZE 14 -#define NLM_DEFAULT_STACKSIZE (8 * 1024) - -/* Alpha information. This should probably be in a separate Alpha - header file, but it can't go in alpha-ext.h because some of it is - needed by nlmconv.c. */ - -/* Magic number in Alpha prefix header. */ -#define NLM32_ALPHA_MAGIC (0x83561840) - -/* The r_type field in an Alpha reloc is one of the following values. */ -#define ALPHA_R_IGNORE 0 -#define ALPHA_R_REFLONG 1 -#define ALPHA_R_REFQUAD 2 -#define ALPHA_R_GPREL32 3 -#define ALPHA_R_LITERAL 4 -#define ALPHA_R_LITUSE 5 -#define ALPHA_R_GPDISP 6 -#define ALPHA_R_BRADDR 7 -#define ALPHA_R_HINT 8 -#define ALPHA_R_SREL16 9 -#define ALPHA_R_SREL32 10 -#define ALPHA_R_SREL64 11 -#define ALPHA_R_OP_PUSH 12 -#define ALPHA_R_OP_STORE 13 -#define ALPHA_R_OP_PSUB 14 -#define ALPHA_R_OP_PRSHIFT 15 -#define ALPHA_R_GPVALUE 16 -#define ALPHA_R_NW_RELOC 250 - -/* A local reloc, other than ALPHA_R_GPDISP or ALPHA_R_IGNORE, must be - against one of these symbol indices. */ -#define ALPHA_RELOC_SECTION_TEXT 1 -#define ALPHA_RELOC_SECTION_DATA 3 - -/* An ALPHA_R_NW_RELOC has one of these values in the size field. If - it is SETGP, the r_vaddr field holds the GP value to use. If it is - LITA, the r_vaddr field holds the address of the .lita section and - the r_symndx field holds the size of the .lita section. */ -#define ALPHA_R_NW_RELOC_SETGP 1 -#define ALPHA_R_NW_RELOC_LITA 2 diff --git a/include/nlm/external.h b/include/nlm/external.h deleted file mode 100644 index eebd1cc..0000000 --- a/include/nlm/external.h +++ /dev/null @@ -1,172 +0,0 @@ -/* NLM (NetWare Loadable Module) support for BFD. - Copyright 1993, 1994, 2005, 2010 Free Software Foundation, Inc. - - Written by Fred Fish @ Cygnus Support - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file is part of NLM support for BFD, and contains the portions - that describe how NLM is represented externally by the BFD library. - I.E. it describes the in-file representation of NLM. It requires - the nlm/common.h file which contains the portions that are common to - both the internal and external representations. - - Note that an NLM header consists of three parts: - - (1) A fixed length header that has specific fields of known length, - at specific offsets in the file. - - (2) A variable length header that has specific fields in a specific - order, but some fields may be variable length. - - (3) A auxiliary header that has various optional fields in no specific - order. There is no way to identify the end of the auxiliary headers - except by finding a header without a recognized 'stamp'. - - The exact format of the fixed length header unfortunately varies - from one NLM target to another, due to padding. Each target - defines the correct external format in a separate header file. */ - -/* NLM Header. */ - -/* The version header is one of the optional auxiliary headers and - follows the fixed length and variable length NLM headers. */ - -typedef struct nlmNAME(external_version_header) -{ - - /* The header is recognized by "VeRsIoN#" in the stamp field. */ - char stamp[8]; - - unsigned char majorVersion[NLM_TARGET_LONG_SIZE]; - - unsigned char minorVersion[NLM_TARGET_LONG_SIZE]; - - unsigned char revision[NLM_TARGET_LONG_SIZE]; - - unsigned char year[NLM_TARGET_LONG_SIZE]; - - unsigned char month[NLM_TARGET_LONG_SIZE]; - - unsigned char day[NLM_TARGET_LONG_SIZE]; - -} NlmNAME(External_Version_Header); - - -typedef struct nlmNAME(external_copyright_header) -{ - - /* The header is recognized by "CoPyRiGhT=" in the stamp field. */ - - char stamp[10]; - - unsigned char copyrightMessageLength[1]; - - /* There is a variable length field here called 'copyrightMessage' - that is the length specified by copyrightMessageLength. */ - -} NlmNAME(External_Copyright_Header); - - -typedef struct nlmNAME(external_extended_header) -{ - - /* The header is recognized by "MeSsAgEs" in the stamp field. */ - - char stamp[8]; - - unsigned char languageID[NLM_TARGET_LONG_SIZE]; - - unsigned char messageFileOffset[NLM_TARGET_LONG_SIZE]; - - unsigned char messageFileLength[NLM_TARGET_LONG_SIZE]; - - unsigned char messageCount[NLM_TARGET_LONG_SIZE]; - - unsigned char helpFileOffset[NLM_TARGET_LONG_SIZE]; - - unsigned char helpFileLength[NLM_TARGET_LONG_SIZE]; - - unsigned char RPCDataOffset[NLM_TARGET_LONG_SIZE]; - - unsigned char RPCDataLength[NLM_TARGET_LONG_SIZE]; - - unsigned char sharedCodeOffset[NLM_TARGET_LONG_SIZE]; - - unsigned char sharedCodeLength[NLM_TARGET_LONG_SIZE]; - - unsigned char sharedDataOffset[NLM_TARGET_LONG_SIZE]; - - unsigned char sharedDataLength[NLM_TARGET_LONG_SIZE]; - - unsigned char sharedRelocationFixupOffset[NLM_TARGET_LONG_SIZE]; - - unsigned char sharedRelocationFixupCount[NLM_TARGET_LONG_SIZE]; - - unsigned char sharedExternalReferenceOffset[NLM_TARGET_LONG_SIZE]; - - unsigned char sharedExternalReferenceCount[NLM_TARGET_LONG_SIZE]; - - unsigned char sharedPublicsOffset[NLM_TARGET_LONG_SIZE]; - - unsigned char sharedPublicsCount[NLM_TARGET_LONG_SIZE]; - - unsigned char sharedDebugRecordOffset[NLM_TARGET_LONG_SIZE]; - - unsigned char sharedDebugRecordCount[NLM_TARGET_LONG_SIZE]; - - unsigned char sharedInitializationOffset[NLM_TARGET_ADDRESS_SIZE]; - - unsigned char SharedExitProcedureOffset[NLM_TARGET_ADDRESS_SIZE]; - - unsigned char productID[NLM_TARGET_LONG_SIZE]; - - unsigned char reserved0[NLM_TARGET_LONG_SIZE]; - - unsigned char reserved1[NLM_TARGET_LONG_SIZE]; - - unsigned char reserved2[NLM_TARGET_LONG_SIZE]; - - unsigned char reserved3[NLM_TARGET_LONG_SIZE]; - - unsigned char reserved4[NLM_TARGET_LONG_SIZE]; - - unsigned char reserved5[NLM_TARGET_LONG_SIZE]; - -} NlmNAME(External_Extended_Header); - - -typedef struct nlmNAME(external_custom_header) -{ - - /* The header is recognized by "CuStHeAd" in the stamp field. */ - char stamp[8]; - - /* Length of this header. */ - unsigned char length[NLM_TARGET_LONG_SIZE]; - - /* Offset to data. */ - unsigned char dataOffset[NLM_TARGET_LONG_SIZE]; - - /* Length of data. */ - unsigned char dataLength[NLM_TARGET_LONG_SIZE]; - - /* Stamp for this customer header--we recognize "CyGnUsEx". */ - char dataStamp[8]; - -} NlmNAME(External_Custom_Header); diff --git a/include/nlm/i386-ext.h b/include/nlm/i386-ext.h deleted file mode 100644 index 4de8b34..0000000 --- a/include/nlm/i386-ext.h +++ /dev/null @@ -1,117 +0,0 @@ -/* i386 NLM (NetWare Loadable Module) support for BFD. - Copyright 1993, 2005, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* The external format of the fixed header. */ - -typedef struct nlm32_i386_external_fixed_header -{ - - /* The signature field identifies the file as an NLM. It must contain - the signature string, which depends upon the NLM target. */ - - unsigned char signature[24]; - - /* The version of the header. At this time, the highest version number - is 4. */ - - unsigned char version[4]; - - /* The name of the module, which must be a DOS name (1-8 characters followed - by a period and a 1-3 character extension). The first byte is the byte - length of the name and the last byte is a null terminator byte. This - field is fixed length, and any unused bytes should be null bytes. The - value is set by the OUTPUT keyword to NLMLINK. */ - - unsigned char moduleName[14]; - - /* The byte offset of the code image from the start of the file. */ - - unsigned char codeImageOffset[4]; - - /* The size of the code image, in bytes. */ - - unsigned char codeImageSize[4]; - - /* The byte offset of the data image from the start of the file. */ - - unsigned char dataImageOffset[4]; - - /* The size of the data image, in bytes. */ - - unsigned char dataImageSize[4]; - - /* The size of the uninitialized data region that the loader is to be - allocated at load time. Uninitialized data follows the initialized - data in the NLM address space. */ - - unsigned char uninitializedDataSize[4]; - - /* The byte offset of the custom data from the start of the file. The - custom data is set by the CUSTOM keyword to NLMLINK. It is possible - for this to be EOF if there is no custom data. */ - - unsigned char customDataOffset[4]; - - /* The size of the custom data, in bytes. */ - - unsigned char customDataSize[4]; - - /* The byte offset of the module dependencies from the start of the file. - The module dependencies are determined by the MODULE keyword in - NLMLINK. */ - - unsigned char moduleDependencyOffset[4]; - - /* The number of module dependencies at the moduleDependencyOffset. */ - - unsigned char numberOfModuleDependencies[4]; - - /* The byte offset of the relocation fixup data from the start of the file */ - - unsigned char relocationFixupOffset[4]; - - unsigned char numberOfRelocationFixups[4]; - - unsigned char externalReferencesOffset[4]; - - unsigned char numberOfExternalReferences[4]; - - unsigned char publicsOffset[4]; - - unsigned char numberOfPublics[4]; - - /* The byte offset of the internal debug info from the start of the file. - It is possible for this to be EOF if there is no debug info. */ - - unsigned char debugInfoOffset[4]; - - unsigned char numberOfDebugRecords[4]; - - unsigned char codeStartOffset[4]; - - unsigned char exitProcedureOffset[4]; - - unsigned char checkUnloadProcedureOffset[4]; - - unsigned char moduleType[4]; - - unsigned char flags[4]; - -} Nlm32_i386_External_Fixed_Header; diff --git a/include/nlm/internal.h b/include/nlm/internal.h deleted file mode 100644 index 51e1f00..0000000 --- a/include/nlm/internal.h +++ /dev/null @@ -1,309 +0,0 @@ -/* NLM (NetWare Loadable Module) support for BFD. - Copyright 1993, 1994, 2003, 2005, 2010 Free Software Foundation, Inc. - - Written by Fred Fish @ Cygnus Support. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file is part of NLM support for BFD, and contains the portions - that describe how NLM is represented internally in the BFD library. - I.E. it describes the in-memory representation of NLM. It requires - the nlm/common.h file which contains the portions that are common to - both the internal and external representations. */ - -#if 0 - -/* Types used by various structures, functions, etc. */ - -typedef unsigned long Nlm32_Addr; /* Unsigned program address */ -typedef unsigned long Nlm32_Off; /* Unsigned file offset */ -typedef long Nlm32_Sword; /* Signed large integer */ -typedef unsigned long Nlm32_Word; /* Unsigned large integer */ -typedef unsigned short Nlm32_Half; /* Unsigned medium integer */ -typedef unsigned char Nlm32_Char; /* Unsigned tiny integer */ - -#ifdef BFD_HOST_64_BIT -typedef unsigned BFD_HOST_64_BIT Nlm64_Addr; -typedef unsigned BFD_HOST_64_BIT Nlm64_Off; -typedef BFD_HOST_64_BIT Nlm64_Sxword; -typedef unsigned BFD_HOST_64_BIT Nlm64_Xword; -#endif -typedef long Nlm64_Sword; -typedef unsigned long Nlm64_Word; -typedef unsigned short Nlm64_Half; - -#endif /* 0 */ - -/* This structure contains the internal form of the portion of the NLM - header that is fixed length. */ - -typedef struct nlm_internal_fixed_header -{ - /* The signature field identifies the file as an NLM. It must contain - the signature string, which depends upon the NLM target. */ - - char signature[NLM_SIGNATURE_SIZE]; - - /* The version of the header. At this time, the highest version number - is 4. */ - - long version; - - /* The name of the module, which must be a DOS name (1-8 characters followed - by a period and a 1-3 character extension. The first byte is the byte - length of the name and the last byte is a null terminator byte. This - field is fixed length, and any unused bytes should be null bytes. The - value is set by the OUTPUT keyword to NLMLINK. */ - - char moduleName[NLM_MODULE_NAME_SIZE]; - - /* The byte offset of the code image from the start of the file. */ - - file_ptr codeImageOffset; - - /* The size of the code image, in bytes. */ - - bfd_size_type codeImageSize; - - /* The byte offset of the data image from the start of the file. */ - - file_ptr dataImageOffset; - - /* The size of the data image, in bytes. */ - - bfd_size_type dataImageSize; - - /* The size of the uninitialized data region that the loader is to be - allocated at load time. Uninitialized data follows the initialized - data in the NLM address space. */ - - bfd_size_type uninitializedDataSize; - - /* The byte offset of the custom data from the start of the file. The - custom data is set by the CUSTOM keyword to NLMLINK. */ - - file_ptr customDataOffset; - - /* The size of the custom data, in bytes. */ - - bfd_size_type customDataSize; - - /* The byte offset of the module dependencies from the start of the file. - The module dependencies are determined by the MODULE keyword in - NLMLINK. */ - - file_ptr moduleDependencyOffset; - - /* The number of module dependencies at the moduleDependencyOffset. */ - - long numberOfModuleDependencies; - - /* The byte offset of the relocation fixup data from the start of the file */ - - file_ptr relocationFixupOffset; - long numberOfRelocationFixups; - file_ptr externalReferencesOffset; - long numberOfExternalReferences; - file_ptr publicsOffset; - long numberOfPublics; - file_ptr debugInfoOffset; - long numberOfDebugRecords; - file_ptr codeStartOffset; - file_ptr exitProcedureOffset; - file_ptr checkUnloadProcedureOffset; - long moduleType; - long flags; -} Nlm_Internal_Fixed_Header; - -#define nlm32_internal_fixed_header nlm_internal_fixed_header -#define Nlm32_Internal_Fixed_Header Nlm_Internal_Fixed_Header -#define nlm64_internal_fixed_header nlm_internal_fixed_header -#define Nlm64_Internal_Fixed_Header Nlm_Internal_Fixed_Header - -/* This structure contains the portions of the NLM header that are either - variable in size in the external representation, or else are not at a - fixed offset relative to the start of the NLM header due to preceding - variable sized fields. - - Note that all the fields must exist in the external header, and in - the order used here (the same order is used in the internal form - for consistency, not out of necessity). */ - -typedef struct nlm_internal_variable_header -{ - - /* The descriptionLength field contains the length of the text in - descriptionText, excluding the null terminator. The descriptionText - field contains the NLM description obtained from the DESCRIPTION - keyword in NLMLINK plus the null byte terminator. The descriptionText - can be up to NLM_MAX_DESCRIPTION_LENGTH characters. */ - - unsigned char descriptionLength; - char descriptionText[NLM_MAX_DESCRIPTION_LENGTH + 1]; - - /* The stackSize field contains the size of the stack in bytes, as - specified by the STACK or STACKSIZE keyword in NLMLINK. If no size - is specified, the default is NLM_DEFAULT_STACKSIZE. */ - - long stackSize; - - /* The reserved field is included only for completeness. It should contain - zero. */ - - long reserved; - - /* This field is fixed length, should contain " LONG" (note leading - space), and is unused. */ - - char oldThreadName[NLM_OLD_THREAD_NAME_LENGTH]; - - /* The screenNameLength field contains the length of the actual text stored - in the screenName field, excluding the null byte terminator. The - screenName field contains the screen name as specified by the SCREENNAME - keyword in NLMLINK, and can be up to NLM_MAX_SCREEN_NAME_LENGTH - characters. */ - - unsigned char screenNameLength; - char screenName[NLM_MAX_SCREEN_NAME_LENGTH + 1]; - - /* The threadNameLength field contains the length of the actual text stored - in the threadName field, excluding the null byte terminator. The - threadName field contains the thread name as specified by the THREADNAME - keyword in NLMLINK, and can be up to NLM_MAX_THREAD_NAME_LENGTH - characters. */ - - unsigned char threadNameLength; - char threadName[NLM_MAX_THREAD_NAME_LENGTH + 1]; - -} Nlm_Internal_Variable_Header; - -#define nlm32_internal_variable_header nlm_internal_variable_header -#define Nlm32_Internal_Variable_Header Nlm_Internal_Variable_Header -#define nlm64_internal_variable_header nlm_internal_variable_header -#define Nlm64_Internal_Variable_Header Nlm_Internal_Variable_Header - -/* The version header is one of the optional auxiliary headers and - follows the fixed length and variable length NLM headers. */ - -typedef struct nlm_internal_version_header -{ - /* The header is recognized by "VeRsIoN#" in the stamp field. */ - char stamp[8]; - long majorVersion; - long minorVersion; - long revision; - long year; - long month; - long day; -} Nlm_Internal_Version_Header; - -#define nlm32_internal_version_header nlm_internal_version_header -#define Nlm32_Internal_Version_Header Nlm_Internal_Version_Header -#define nlm64_internal_version_header nlm_internal_version_header -#define Nlm64_Internal_Version_Header Nlm_Internal_Version_Header - -typedef struct nlm_internal_copyright_header -{ - /* The header is recognized by "CoPyRiGhT=" in the stamp field. */ - char stamp[10]; - unsigned char copyrightMessageLength; - char copyrightMessage[NLM_MAX_COPYRIGHT_MESSAGE_LENGTH]; -} Nlm_Internal_Copyright_Header; - -#define nlm32_internal_copyright_header nlm_internal_copyright_header -#define Nlm32_Internal_Copyright_Header Nlm_Internal_Copyright_Header -#define nlm64_internal_copyright_header nlm_internal_copyright_header -#define Nlm64_Internal_Copyright_Header Nlm_Internal_Copyright_Header - -typedef struct nlm_internal_extended_header -{ - /* The header is recognized by "MeSsAgEs" in the stamp field. */ - char stamp[8]; - long languageID; - file_ptr messageFileOffset; - bfd_size_type messageFileLength; - long messageCount; - file_ptr helpFileOffset; - bfd_size_type helpFileLength; - file_ptr RPCDataOffset; - bfd_size_type RPCDataLength; - file_ptr sharedCodeOffset; - bfd_size_type sharedCodeLength; - file_ptr sharedDataOffset; - bfd_size_type sharedDataLength; - file_ptr sharedRelocationFixupOffset; - long sharedRelocationFixupCount; - file_ptr sharedExternalReferenceOffset; - long sharedExternalReferenceCount; - file_ptr sharedPublicsOffset; - long sharedPublicsCount; - file_ptr sharedDebugRecordOffset; - long sharedDebugRecordCount; - bfd_vma SharedInitializationOffset; - bfd_vma SharedExitProcedureOffset; - long productID; - long reserved0; - long reserved1; - long reserved2; - long reserved3; - long reserved4; - long reserved5; -} Nlm_Internal_Extended_Header; - -#define nlm32_internal_extended_header nlm_internal_extended_header -#define Nlm32_Internal_Extended_Header Nlm_Internal_Extended_Header -#define nlm64_internal_extended_header nlm_internal_extended_header -#define Nlm64_Internal_Extended_Header Nlm_Internal_Extended_Header - -/* The format of a custom header as stored internally is different - from the external format. This is how we store a custom header - which we do not recognize. */ - -typedef struct nlm_internal_custom_header -{ - /* The header is recognized by "CuStHeAd" in the stamp field. */ - char stamp[8]; - bfd_size_type hdrLength; - file_ptr dataOffset; - bfd_size_type dataLength; - char dataStamp[8]; - void *hdr; -} Nlm_Internal_Custom_Header; - -#define nlm32_internal_custom_header nlm_internal_custom_header -#define Nlm32_Internal_Custom_Header Nlm_Internal_Custom_Header -#define nlm64_internal_custom_header nlm_internal_custom_header -#define Nlm64_Internal_Custom_Header Nlm_Internal_Custom_Header - -/* The internal Cygnus header is written out externally as a custom - header. We don't try to replicate that structure here. */ - -typedef struct nlm_internal_cygnus_ext_header -{ - /* The header is recognized by "CyGnUsEx" in the stamp field. */ - char stamp[8]; - /* File location of debugging information. */ - file_ptr offset; - /* Length of debugging information. */ - bfd_size_type length; -} Nlm_Internal_Cygnus_Ext_Header; - -#define nlm32_internal_cygnus_ext_header nlm_internal_cygnus_ext_header -#define Nlm32_Internal_Cygnus_Ext_Header Nlm_Internal_Cygnus_Ext_Header -#define nlm64_internal_cygnus_ext_header nlm_internal_cygnus_ext_header -#define Nlm64_Internal_Cygnus_Ext_Header Nlm_Internal_Cygnus_Ext_Header diff --git a/include/nlm/ppc-ext.h b/include/nlm/ppc-ext.h deleted file mode 100644 index 026984b..0000000 --- a/include/nlm/ppc-ext.h +++ /dev/null @@ -1,164 +0,0 @@ -/* PowerPC NLM (NetWare Loadable Module) support for BFD. - Copyright (C) 1994, 2005, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifdef OLDFORMAT - -/* The format of a PowerPC NLM changed. These structures are only - used in the old format. */ - -/* A PowerPC NLM starts with an instance of this structure. */ - -struct nlm32_powerpc_external_prefix_header -{ - /* Signature. Must be "AppleNLM". */ - char signature[8]; - /* Version number. Current value is 1. */ - unsigned char headerVersion[4]; - /* ??. Should be set to 0. */ - unsigned char origins[4]; - /* File creation date in standard Unix time format (seconds since - 1/1/70). */ - unsigned char date[4]; -}; - -#define NLM32_POWERPC_SIGNATURE "AppleNLM" -#define NLM32_POWERPC_HEADER_VERSION 1 - -/* The external format of a PowerPC NLM reloc. This is the same as an - XCOFF dynamic reloc. */ - -struct nlm32_powerpc_external_reloc -{ - /* Address. */ - unsigned char l_vaddr[4]; - /* Symbol table index. This is 0 for .text and 1 for .data. 2 - means .bss, but I don't know if it is used. In XCOFF, larger - numbers are indices into the dynamic symbol table, but they are - presumably not used in an NLM. */ - unsigned char l_symndx[4]; - /* Relocation type. */ - unsigned char l_rtype[2]; - /* Section number being relocated. */ - unsigned char l_rsecnm[2]; -}; - -#endif /* OLDFORMAT */ - -/* The external format of the fixed header. */ - -typedef struct nlm32_powerpc_external_fixed_header -{ - - /* The signature field identifies the file as an NLM. It must contain - the signature string, which depends upon the NLM target. */ - - unsigned char signature[24]; - - /* The version of the header. At this time, the highest version number - is 4. */ - - unsigned char version[4]; - - /* The name of the module, which must be a DOS name (1-8 characters followed - by a period and a 1-3 character extension). The first byte is the byte - length of the name and the last byte is a null terminator byte. This - field is fixed length, and any unused bytes should be null bytes. The - value is set by the OUTPUT keyword to NLMLINK. */ - - unsigned char moduleName[14]; - - /* Padding to make it come out correct. */ - - unsigned char pad1[2]; - - /* The byte offset of the code image from the start of the file. */ - - unsigned char codeImageOffset[4]; - - /* The size of the code image, in bytes. */ - - unsigned char codeImageSize[4]; - - /* The byte offset of the data image from the start of the file. */ - - unsigned char dataImageOffset[4]; - - /* The size of the data image, in bytes. */ - - unsigned char dataImageSize[4]; - - /* The size of the uninitialized data region that the loader is to be - allocated at load time. Uninitialized data follows the initialized - data in the NLM address space. */ - - unsigned char uninitializedDataSize[4]; - - /* The byte offset of the custom data from the start of the file. The - custom data is set by the CUSTOM keyword to NLMLINK. It is possible - for this to be EOF if there is no custom data. */ - - unsigned char customDataOffset[4]; - - /* The size of the custom data, in bytes. */ - - unsigned char customDataSize[4]; - - /* The byte offset of the module dependencies from the start of the file. - The module dependencies are determined by the MODULE keyword in - NLMLINK. */ - - unsigned char moduleDependencyOffset[4]; - - /* The number of module dependencies at the moduleDependencyOffset. */ - - unsigned char numberOfModuleDependencies[4]; - - /* The byte offset of the relocation fixup data from the start of the file */ - - unsigned char relocationFixupOffset[4]; - - unsigned char numberOfRelocationFixups[4]; - - unsigned char externalReferencesOffset[4]; - - unsigned char numberOfExternalReferences[4]; - - unsigned char publicsOffset[4]; - - unsigned char numberOfPublics[4]; - - /* The byte offset of the internal debug info from the start of the file. - It is possible for this to be EOF if there is no debug info. */ - - unsigned char debugInfoOffset[4]; - - unsigned char numberOfDebugRecords[4]; - - unsigned char codeStartOffset[4]; - - unsigned char exitProcedureOffset[4]; - - unsigned char checkUnloadProcedureOffset[4]; - - unsigned char moduleType[4]; - - unsigned char flags[4]; - -} Nlm32_powerpc_External_Fixed_Header; diff --git a/include/nlm/sparc32-ext.h b/include/nlm/sparc32-ext.h deleted file mode 100644 index a5c78e3..0000000 --- a/include/nlm/sparc32-ext.h +++ /dev/null @@ -1,121 +0,0 @@ -/* SPARC NLM (NetWare Loadable Module) support for BFD. - Copyright 1993, 2005, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* The external format of the fixed header. */ - -typedef struct nlm32_sparc_external_fixed_header -{ - - /* The signature field identifies the file as an NLM. It must contain - the signature string, which depends upon the NLM target. */ - - unsigned char signature[24]; - - /* The version of the header. At this time, the highest version number - is 4. */ - - unsigned char version[4]; - - /* The name of the module, which must be a DOS name (1-8 characters followed - by a period and a 1-3 character extension). The first byte is the byte - length of the name and the last byte is a null terminator byte. This - field is fixed length, and any unused bytes should be null bytes. The - value is set by the OUTPUT keyword to NLMLINK. */ - - unsigned char moduleName[14]; - - /* Padding to make it come out correct. */ - - unsigned char pad1[2]; - - /* The byte offset of the code image from the start of the file. */ - - unsigned char codeImageOffset[4]; - - /* The size of the code image, in bytes. */ - - unsigned char codeImageSize[4]; - - /* The byte offset of the data image from the start of the file. */ - - unsigned char dataImageOffset[4]; - - /* The size of the data image, in bytes. */ - - unsigned char dataImageSize[4]; - - /* The size of the uninitialized data region that the loader is to be - allocated at load time. Uninitialized data follows the initialized - data in the NLM address space. */ - - unsigned char uninitializedDataSize[4]; - - /* The byte offset of the custom data from the start of the file. The - custom data is set by the CUSTOM keyword to NLMLINK. It is possible - for this to be EOF if there is no custom data. */ - - unsigned char customDataOffset[4]; - - /* The size of the custom data, in bytes. */ - - unsigned char customDataSize[4]; - - /* The byte offset of the module dependencies from the start of the file. - The module dependencies are determined by the MODULE keyword in - NLMLINK. */ - - unsigned char moduleDependencyOffset[4]; - - /* The number of module dependencies at the moduleDependencyOffset. */ - - unsigned char numberOfModuleDependencies[4]; - - /* The byte offset of the relocation fixup data from the start of the file */ - - unsigned char relocationFixupOffset[4]; - - unsigned char numberOfRelocationFixups[4]; - - unsigned char externalReferencesOffset[4]; - - unsigned char numberOfExternalReferences[4]; - - unsigned char publicsOffset[4]; - - unsigned char numberOfPublics[4]; - - /* The byte offset of the internal debug info from the start of the file. - It is possible for this to be EOF if there is no debug info. */ - - unsigned char debugInfoOffset[4]; - - unsigned char numberOfDebugRecords[4]; - - unsigned char codeStartOffset[4]; - - unsigned char exitProcedureOffset[4]; - - unsigned char checkUnloadProcedureOffset[4]; - - unsigned char moduleType[4]; - - unsigned char flags[4]; - -} Nlm32_sparc_External_Fixed_Header; diff --git a/include/oasys.h b/include/oasys.h deleted file mode 100644 index 92d5c26..0000000 --- a/include/oasys.h +++ /dev/null @@ -1,192 +0,0 @@ -/* Oasys object format header file for BFD. - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. - - Contributed by Cygnus Support. */ - -#define OASYS_MAX_SEC_COUNT 16 -/* **** */ - -typedef struct oasys_archive_header - { - unsigned int version; - char create_date[12]; - char revision_date[12]; - unsigned int mod_count; - file_ptr mod_tbl_offset; - unsigned int sym_tbl_size; - unsigned int sym_count; - file_ptr sym_tbl_offset; - unsigned int xref_count; - file_ptr xref_lst_offset; - } -oasys_archive_header_type; - -typedef struct oasys_extarchive_header - { - bfd_byte version[4]; - bfd_byte create_date[12]; - bfd_byte revision_date[12]; - bfd_byte mod_count[4]; - bfd_byte mod_tbl_offset[4]; - bfd_byte sym_tbl_size[4]; - bfd_byte sym_count[4]; - bfd_byte sym_tbl_offset[4]; - bfd_byte xref_count[4]; - bfd_byte xref_lst_offset[4]; - } -oasys_extarchive_header_type; - -typedef struct oasys_module_table - { - int mod_number; - char mod_date[12]; - unsigned int mod_size; - unsigned int dep_count; - unsigned int depee_count; - file_ptr file_offset; - unsigned int sect_count; - char *module_name; - unsigned int module_name_size; - } -oasys_module_table_type; - -typedef struct oasys_extmodule_table_a - { - bfd_byte mod_number[4]; - bfd_byte mod_date[12]; - bfd_byte mod_size[4]; - bfd_byte dep_count[4]; - bfd_byte depee_count[4]; - bfd_byte sect_count[4]; - bfd_byte file_offset[4]; - bfd_byte mod_name[32]; - } -oasys_extmodule_table_type_a_type; - -typedef struct oasys_extmodule_table_b - { - bfd_byte mod_number[4]; - bfd_byte mod_date[12]; - bfd_byte mod_size[4]; - bfd_byte dep_count[4]; - bfd_byte depee_count[4]; - bfd_byte sect_count[4]; - bfd_byte file_offset[4]; - bfd_byte mod_name_length[4]; - } -oasys_extmodule_table_type_b_type; - -typedef enum oasys_record - { - oasys_record_is_end_enum = 0, - oasys_record_is_data_enum = 1, - oasys_record_is_symbol_enum = 2, - oasys_record_is_header_enum = 3, - oasys_record_is_named_section_enum = 4, - oasys_record_is_com_enum = 5, - oasys_record_is_debug_enum = 6, - oasys_record_is_section_enum = 7, - oasys_record_is_debug_file_enum = 8, - oasys_record_is_module_enum = 9, - oasys_record_is_local_enum = 10 - } -oasys_record_enum_type; - -typedef struct oasys_record_header - { - unsigned char length; - unsigned char check_sum; - unsigned char type; - unsigned char fill; - } -oasys_record_header_type; - -typedef struct oasys_data_record - { - oasys_record_header_type header; - unsigned char relb; - bfd_byte addr[4]; - /* maximum total size of data record is 255 bytes */ - bfd_byte data[246]; - } -oasys_data_record_type; - -typedef struct oasys_header_record - { - oasys_record_header_type header; - unsigned char version_number; - unsigned char rev_number; - char module_name[26-6]; - char description[64-26]; - } -oasys_header_record_type; - -#define OASYS_VERSION_NUMBER 0 -#define OASYS_REV_NUMBER 0 - -typedef struct oasys_symbol_record - { - oasys_record_header_type header; - unsigned char relb; - bfd_byte value[4]; - bfd_byte refno[2]; - char name[64]; - } -oasys_symbol_record_type; - -#define RELOCATION_PCREL_BIT 0x80 -#define RELOCATION_32BIT_BIT 0x40 -#define RELOCATION_TYPE_BITS 0x30 -#define RELOCATION_TYPE_ABS 0x00 -#define RELOCATION_TYPE_REL 0x10 -#define RELOCATION_TYPE_UND 0x20 -#define RELOCATION_TYPE_COM 0x30 -#define RELOCATION_SECT_BITS 0x0f - -typedef struct oasys_section_record - { - oasys_record_header_type header; - unsigned char relb; - bfd_byte value[4]; - bfd_byte vma[4]; - bfd_byte fill[3]; - } -oasys_section_record_type; - -typedef struct oasys_end_record - { - oasys_record_header_type header; - unsigned char relb; - bfd_byte entry[4]; - bfd_byte fill[2]; - bfd_byte zero; - } -oasys_end_record_type; - -typedef union oasys_record_union - { - oasys_record_header_type header; - oasys_data_record_type data; - oasys_section_record_type section; - oasys_symbol_record_type symbol; - oasys_header_record_type first; - oasys_end_record_type end; - bfd_byte pad[256]; - } -oasys_record_union_type; diff --git a/include/objalloc.h b/include/objalloc.h deleted file mode 100644 index 2c06350..0000000 --- a/include/objalloc.h +++ /dev/null @@ -1,115 +0,0 @@ -/* objalloc.h -- routines to allocate memory for objects - Copyright (C) 1997-2015 Free Software Foundation, Inc. - Written by Ian Lance Taylor, Cygnus Solutions. - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2, or (at your option) any -later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, 51 Franklin Street - Fifth Floor, -Boston, MA 02110-1301, USA. */ - -#ifndef OBJALLOC_H -#define OBJALLOC_H - -#include "ansidecl.h" - -/* These routines allocate space for an object. The assumption is - that the object will want to allocate space as it goes along, but - will never want to free any particular block. There is a function - to free a block, which also frees all more recently allocated - blocks. There is also a function to free all the allocated space. - - This is essentially a specialization of obstacks. The main - difference is that a block may not be allocated a bit at a time. - Another difference is that these routines are always built on top - of malloc, and always pass an malloc failure back to the caller, - unlike more recent versions of obstacks. */ - -/* This is what an objalloc structure looks like. Callers should not - refer to these fields, nor should they allocate these structure - themselves. Instead, they should only create them via - objalloc_init, and only access them via the functions and macros - listed below. The structure is only defined here so that we can - access it via macros. */ - -struct objalloc -{ - char *current_ptr; - unsigned int current_space; - void *chunks; -}; - -/* Work out the required alignment. */ - -struct objalloc_align { char x; double d; }; - -#if defined (__STDC__) && __STDC__ -#ifndef offsetof -#include -#endif -#endif -#ifndef offsetof -#define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER) -#endif -#define OBJALLOC_ALIGN offsetof (struct objalloc_align, d) - -/* Create an objalloc structure. Returns NULL if malloc fails. */ - -extern struct objalloc *objalloc_create (void); - -/* Allocate space from an objalloc structure. Returns NULL if malloc - fails. */ - -extern void *_objalloc_alloc (struct objalloc *, unsigned long); - -/* The macro version of objalloc_alloc. We only define this if using - gcc, because otherwise we would have to evaluate the arguments - multiple times, or use a temporary field as obstack.h does. */ - -#if defined (__GNUC__) && defined (__STDC__) && __STDC__ - -/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and - does not implement __extension__. But that compiler doesn't define - __GNUC_MINOR__. */ -#if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__) -#define __extension__ -#endif - -#define objalloc_alloc(o, l) \ - __extension__ \ - ({ struct objalloc *__o = (o); \ - unsigned long __len = (l); \ - if (__len == 0) \ - __len = 1; \ - __len = (__len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1); \ - (__len != 0 && __len <= __o->current_space \ - ? (__o->current_ptr += __len, \ - __o->current_space -= __len, \ - (void *) (__o->current_ptr - __len)) \ - : _objalloc_alloc (__o, __len)); }) - -#else /* ! __GNUC__ */ - -#define objalloc_alloc(o, l) _objalloc_alloc ((o), (l)) - -#endif /* ! __GNUC__ */ - -/* Free an entire objalloc structure. */ - -extern void objalloc_free (struct objalloc *); - -/* Free a block allocated by objalloc_alloc. This also frees all more - recently allocated blocks. */ - -extern void objalloc_free_block (struct objalloc *, void *); - -#endif /* OBJALLOC_H */ diff --git a/include/obstack.h b/include/obstack.h deleted file mode 100644 index 0d13c72..0000000 --- a/include/obstack.h +++ /dev/null @@ -1,535 +0,0 @@ -/* obstack.h - object stack macros - Copyright (C) 1988-2015 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* Summary: - - All the apparent functions defined here are macros. The idea - is that you would use these pre-tested macros to solve a - very specific set of problems, and they would run fast. - Caution: no side-effects in arguments please!! They may be - evaluated MANY times!! - - These macros operate a stack of objects. Each object starts life - small, and may grow to maturity. (Consider building a word syllable - by syllable.) An object can move while it is growing. Once it has - been "finished" it never changes address again. So the "top of the - stack" is typically an immature growing object, while the rest of the - stack is of mature, fixed size and fixed address objects. - - These routines grab large chunks of memory, using a function you - supply, called 'obstack_chunk_alloc'. On occasion, they free chunks, - by calling 'obstack_chunk_free'. You must define them and declare - them before using any obstack macros. - - Each independent stack is represented by a 'struct obstack'. - Each of the obstack macros expects a pointer to such a structure - as the first argument. - - One motivation for this package is the problem of growing char strings - in symbol tables. Unless you are "fascist pig with a read-only mind" - --Gosper's immortal quote from HAKMEM item 154, out of context--you - would not like to put any arbitrary upper limit on the length of your - symbols. - - In practice this often means you will build many short symbols and a - few long symbols. At the time you are reading a symbol you don't know - how long it is. One traditional method is to read a symbol into a - buffer, realloc()ating the buffer every time you try to read a symbol - that is longer than the buffer. This is beaut, but you still will - want to copy the symbol from the buffer to a more permanent - symbol-table entry say about half the time. - - With obstacks, you can work differently. Use one obstack for all symbol - names. As you read a symbol, grow the name in the obstack gradually. - When the name is complete, finalize it. Then, if the symbol exists already, - free the newly read name. - - The way we do this is to take a large chunk, allocating memory from - low addresses. When you want to build a symbol in the chunk you just - add chars above the current "high water mark" in the chunk. When you - have finished adding chars, because you got to the end of the symbol, - you know how long the chars are, and you can create a new object. - Mostly the chars will not burst over the highest address of the chunk, - because you would typically expect a chunk to be (say) 100 times as - long as an average object. - - In case that isn't clear, when we have enough chars to make up - the object, THEY ARE ALREADY CONTIGUOUS IN THE CHUNK (guaranteed) - so we just point to it where it lies. No moving of chars is - needed and this is the second win: potentially long strings need - never be explicitly shuffled. Once an object is formed, it does not - change its address during its lifetime. - - When the chars burst over a chunk boundary, we allocate a larger - chunk, and then copy the partly formed object from the end of the old - chunk to the beginning of the new larger chunk. We then carry on - accreting characters to the end of the object as we normally would. - - A special macro is provided to add a single char at a time to a - growing object. This allows the use of register variables, which - break the ordinary 'growth' macro. - - Summary: - We allocate large chunks. - We carve out one object at a time from the current chunk. - Once carved, an object never moves. - We are free to append data of any size to the currently - growing object. - Exactly one object is growing in an obstack at any one time. - You can run one obstack per control block. - You may have as many control blocks as you dare. - Because of the way we do it, you can "unwind" an obstack - back to a previous state. (You may remove objects much - as you would with a stack.) - */ - - -/* Don't do the contents of this file more than once. */ - -#ifndef _OBSTACK_H -#define _OBSTACK_H 1 - -#ifndef _OBSTACK_INTERFACE_VERSION -# define _OBSTACK_INTERFACE_VERSION 2 -#endif - -#include /* For size_t and ptrdiff_t. */ -#include /* For __GNU_LIBRARY__, and memcpy. */ - -#if _OBSTACK_INTERFACE_VERSION == 1 -/* For binary compatibility with obstack version 1, which used "int" - and "long" for these two types. */ -# define _OBSTACK_SIZE_T unsigned int -# define _CHUNK_SIZE_T unsigned long -# define _OBSTACK_CAST(type, expr) ((type) (expr)) -#else -/* Version 2 with sane types, especially for 64-bit hosts. */ -# define _OBSTACK_SIZE_T size_t -# define _CHUNK_SIZE_T size_t -# define _OBSTACK_CAST(type, expr) (expr) -#endif - -/* If B is the base of an object addressed by P, return the result of - aligning P to the next multiple of A + 1. B and P must be of type - char *. A + 1 must be a power of 2. */ - -#define __BPTR_ALIGN(B, P, A) ((B) + (((P) - (B) + (A)) & ~(A))) - -/* Similar to __BPTR_ALIGN (B, P, A), except optimize the common case - where pointers can be converted to integers, aligned as integers, - and converted back again. If ptrdiff_t is narrower than a - pointer (e.g., the AS/400), play it safe and compute the alignment - relative to B. Otherwise, use the faster strategy of computing the - alignment relative to 0. */ - -#define __PTR_ALIGN(B, P, A) \ - __BPTR_ALIGN (sizeof (ptrdiff_t) < sizeof (void *) ? (B) : (char *) 0, \ - P, A) - -#ifndef __attribute_pure__ -# if defined __GNUC_MINOR__ && __GNUC__ * 1000 + __GNUC_MINOR__ >= 2096 -# define __attribute_pure__ __attribute__ ((__pure__)) -# else -# define __attribute_pure__ -# endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -struct _obstack_chunk /* Lives at front of each chunk. */ -{ - char *limit; /* 1 past end of this chunk */ - struct _obstack_chunk *prev; /* address of prior chunk or NULL */ - char contents[4]; /* objects begin here */ -}; - -struct obstack /* control current object in current chunk */ -{ - _CHUNK_SIZE_T chunk_size; /* preferred size to allocate chunks in */ - struct _obstack_chunk *chunk; /* address of current struct obstack_chunk */ - char *object_base; /* address of object we are building */ - char *next_free; /* where to add next char to current object */ - char *chunk_limit; /* address of char after current chunk */ - union - { - _OBSTACK_SIZE_T i; - void *p; - } temp; /* Temporary for some macros. */ - _OBSTACK_SIZE_T alignment_mask; /* Mask of alignment for each object. */ - - /* These prototypes vary based on 'use_extra_arg'. */ - union - { - void *(*plain) (size_t); - void *(*extra) (void *, size_t); - } chunkfun; - union - { - void (*plain) (void *); - void (*extra) (void *, void *); - } freefun; - - void *extra_arg; /* first arg for chunk alloc/dealloc funcs */ - unsigned use_extra_arg : 1; /* chunk alloc/dealloc funcs take extra arg */ - unsigned maybe_empty_object : 1; /* There is a possibility that the current - chunk contains a zero-length object. This - prevents freeing the chunk if we allocate - a bigger chunk to replace it. */ - unsigned alloc_failed : 1; /* No longer used, as we now call the failed - handler on error, but retained for binary - compatibility. */ -}; - -/* Declare the external functions we use; they are in obstack.c. */ - -extern void _obstack_newchunk (struct obstack *, _OBSTACK_SIZE_T); -extern void _obstack_free (struct obstack *, void *); -extern int _obstack_begin (struct obstack *, - _OBSTACK_SIZE_T, _OBSTACK_SIZE_T, - void *(*) (size_t), void (*) (void *)); -extern int _obstack_begin_1 (struct obstack *, - _OBSTACK_SIZE_T, _OBSTACK_SIZE_T, - void *(*) (void *, size_t), - void (*) (void *, void *), void *); -extern _OBSTACK_SIZE_T _obstack_memory_used (struct obstack *) - __attribute_pure__; - - -/* Error handler called when 'obstack_chunk_alloc' failed to allocate - more memory. This can be set to a user defined function which - should either abort gracefully or use longjump - but shouldn't - return. The default action is to print a message and abort. */ -extern void (*obstack_alloc_failed_handler) (void); - -/* Exit value used when 'print_and_abort' is used. */ -extern int obstack_exit_failure; - -/* Pointer to beginning of object being allocated or to be allocated next. - Note that this might not be the final address of the object - because a new chunk might be needed to hold the final size. */ - -#define obstack_base(h) ((void *) (h)->object_base) - -/* Size for allocating ordinary chunks. */ - -#define obstack_chunk_size(h) ((h)->chunk_size) - -/* Pointer to next byte not yet allocated in current chunk. */ - -#define obstack_next_free(h) ((void *) (h)->next_free) - -/* Mask specifying low bits that should be clear in address of an object. */ - -#define obstack_alignment_mask(h) ((h)->alignment_mask) - -/* To prevent prototype warnings provide complete argument list. */ -#define obstack_init(h) \ - _obstack_begin ((h), 0, 0, \ - _OBSTACK_CAST (void *(*) (size_t), obstack_chunk_alloc), \ - _OBSTACK_CAST (void (*) (void *), obstack_chunk_free)) - -#define obstack_begin(h, size) \ - _obstack_begin ((h), (size), 0, \ - _OBSTACK_CAST (void *(*) (size_t), obstack_chunk_alloc), \ - _OBSTACK_CAST (void (*) (void *), obstack_chunk_free)) - -#define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \ - _obstack_begin ((h), (size), (alignment), \ - _OBSTACK_CAST (void *(*) (size_t), chunkfun), \ - _OBSTACK_CAST (void (*) (void *), freefun)) - -#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \ - _obstack_begin_1 ((h), (size), (alignment), \ - _OBSTACK_CAST (void *(*) (void *, size_t), chunkfun), \ - _OBSTACK_CAST (void (*) (void *, void *), freefun), arg) - -#define obstack_chunkfun(h, newchunkfun) \ - ((void) ((h)->chunkfun.extra = (void *(*) (void *, size_t)) (newchunkfun))) - -#define obstack_freefun(h, newfreefun) \ - ((void) ((h)->freefun.extra = (void *(*) (void *, void *)) (newfreefun))) - -#define obstack_1grow_fast(h, achar) ((void) (*((h)->next_free)++ = (achar))) - -#define obstack_blank_fast(h, n) ((void) ((h)->next_free += (n))) - -#define obstack_memory_used(h) _obstack_memory_used (h) - -#if defined __GNUC__ -# if !defined __GNUC_MINOR__ || __GNUC__ * 1000 + __GNUC_MINOR__ < 2008 -# define __extension__ -# endif - -/* For GNU C, if not -traditional, - we can define these macros to compute all args only once - without using a global variable. - Also, we can avoid using the 'temp' slot, to make faster code. */ - -# define obstack_object_size(OBSTACK) \ - __extension__ \ - ({ struct obstack const *__o = (OBSTACK); \ - (_OBSTACK_SIZE_T) (__o->next_free - __o->object_base); }) - -/* The local variable is named __o1 to avoid a shadowed variable - warning when invoked from other obstack macros. */ -# define obstack_room(OBSTACK) \ - __extension__ \ - ({ struct obstack const *__o1 = (OBSTACK); \ - (_OBSTACK_SIZE_T) (__o1->chunk_limit - __o1->next_free); }) - -# define obstack_make_room(OBSTACK, length) \ - __extension__ \ - ({ struct obstack *__o = (OBSTACK); \ - _OBSTACK_SIZE_T __len = (length); \ - if (obstack_room (__o) < __len) \ - _obstack_newchunk (__o, __len); \ - (void) 0; }) - -# define obstack_empty_p(OBSTACK) \ - __extension__ \ - ({ struct obstack const *__o = (OBSTACK); \ - (__o->chunk->prev == 0 \ - && __o->next_free == __PTR_ALIGN ((char *) __o->chunk, \ - __o->chunk->contents, \ - __o->alignment_mask)); }) - -# define obstack_grow(OBSTACK, where, length) \ - __extension__ \ - ({ struct obstack *__o = (OBSTACK); \ - _OBSTACK_SIZE_T __len = (length); \ - if (obstack_room (__o) < __len) \ - _obstack_newchunk (__o, __len); \ - memcpy (__o->next_free, where, __len); \ - __o->next_free += __len; \ - (void) 0; }) - -# define obstack_grow0(OBSTACK, where, length) \ - __extension__ \ - ({ struct obstack *__o = (OBSTACK); \ - _OBSTACK_SIZE_T __len = (length); \ - if (obstack_room (__o) < __len + 1) \ - _obstack_newchunk (__o, __len + 1); \ - memcpy (__o->next_free, where, __len); \ - __o->next_free += __len; \ - *(__o->next_free)++ = 0; \ - (void) 0; }) - -# define obstack_1grow(OBSTACK, datum) \ - __extension__ \ - ({ struct obstack *__o = (OBSTACK); \ - if (obstack_room (__o) < 1) \ - _obstack_newchunk (__o, 1); \ - obstack_1grow_fast (__o, datum); }) - -/* These assume that the obstack alignment is good enough for pointers - or ints, and that the data added so far to the current object - shares that much alignment. */ - -# define obstack_ptr_grow(OBSTACK, datum) \ - __extension__ \ - ({ struct obstack *__o = (OBSTACK); \ - if (obstack_room (__o) < sizeof (void *)) \ - _obstack_newchunk (__o, sizeof (void *)); \ - obstack_ptr_grow_fast (__o, datum); }) - -# define obstack_int_grow(OBSTACK, datum) \ - __extension__ \ - ({ struct obstack *__o = (OBSTACK); \ - if (obstack_room (__o) < sizeof (int)) \ - _obstack_newchunk (__o, sizeof (int)); \ - obstack_int_grow_fast (__o, datum); }) - -# define obstack_ptr_grow_fast(OBSTACK, aptr) \ - __extension__ \ - ({ struct obstack *__o1 = (OBSTACK); \ - void *__p1 = __o1->next_free; \ - *(const void **) __p1 = (aptr); \ - __o1->next_free += sizeof (const void *); \ - (void) 0; }) - -# define obstack_int_grow_fast(OBSTACK, aint) \ - __extension__ \ - ({ struct obstack *__o1 = (OBSTACK); \ - void *__p1 = __o1->next_free; \ - *(int *) __p1 = (aint); \ - __o1->next_free += sizeof (int); \ - (void) 0; }) - -# define obstack_blank(OBSTACK, length) \ - __extension__ \ - ({ struct obstack *__o = (OBSTACK); \ - _OBSTACK_SIZE_T __len = (length); \ - if (obstack_room (__o) < __len) \ - _obstack_newchunk (__o, __len); \ - obstack_blank_fast (__o, __len); }) - -# define obstack_alloc(OBSTACK, length) \ - __extension__ \ - ({ struct obstack *__h = (OBSTACK); \ - obstack_blank (__h, (length)); \ - obstack_finish (__h); }) - -# define obstack_copy(OBSTACK, where, length) \ - __extension__ \ - ({ struct obstack *__h = (OBSTACK); \ - obstack_grow (__h, (where), (length)); \ - obstack_finish (__h); }) - -# define obstack_copy0(OBSTACK, where, length) \ - __extension__ \ - ({ struct obstack *__h = (OBSTACK); \ - obstack_grow0 (__h, (where), (length)); \ - obstack_finish (__h); }) - -/* The local variable is named __o1 to avoid a shadowed variable - warning when invoked from other obstack macros, typically obstack_free. */ -# define obstack_finish(OBSTACK) \ - __extension__ \ - ({ struct obstack *__o1 = (OBSTACK); \ - void *__value = (void *) __o1->object_base; \ - if (__o1->next_free == __value) \ - __o1->maybe_empty_object = 1; \ - __o1->next_free \ - = __PTR_ALIGN (__o1->object_base, __o1->next_free, \ - __o1->alignment_mask); \ - if ((size_t) (__o1->next_free - (char *) __o1->chunk) \ - > (size_t) (__o1->chunk_limit - (char *) __o1->chunk)) \ - __o1->next_free = __o1->chunk_limit; \ - __o1->object_base = __o1->next_free; \ - __value; }) - -# define obstack_free(OBSTACK, OBJ) \ - __extension__ \ - ({ struct obstack *__o = (OBSTACK); \ - void *__obj = (void *) (OBJ); \ - if (__obj > (void *) __o->chunk && __obj < (void *) __o->chunk_limit) \ - __o->next_free = __o->object_base = (char *) __obj; \ - else \ - _obstack_free (__o, __obj); }) - -#else /* not __GNUC__ */ - -# define obstack_object_size(h) \ - ((_OBSTACK_SIZE_T) ((h)->next_free - (h)->object_base)) - -# define obstack_room(h) \ - ((_OBSTACK_SIZE_T) ((h)->chunk_limit - (h)->next_free)) - -# define obstack_empty_p(h) \ - ((h)->chunk->prev == 0 \ - && (h)->next_free == __PTR_ALIGN ((char *) (h)->chunk, \ - (h)->chunk->contents, \ - (h)->alignment_mask)) - -/* Note that the call to _obstack_newchunk is enclosed in (..., 0) - so that we can avoid having void expressions - in the arms of the conditional expression. - Casting the third operand to void was tried before, - but some compilers won't accept it. */ - -# define obstack_make_room(h, length) \ - ((h)->temp.i = (length), \ - ((obstack_room (h) < (h)->temp.i) \ - ? (_obstack_newchunk (h, (h)->temp.i), 0) : 0), \ - (void) 0) - -# define obstack_grow(h, where, length) \ - ((h)->temp.i = (length), \ - ((obstack_room (h) < (h)->temp.i) \ - ? (_obstack_newchunk ((h), (h)->temp.i), 0) : 0), \ - memcpy ((h)->next_free, where, (h)->temp.i), \ - (h)->next_free += (h)->temp.i, \ - (void) 0) - -# define obstack_grow0(h, where, length) \ - ((h)->temp.i = (length), \ - ((obstack_room (h) < (h)->temp.i + 1) \ - ? (_obstack_newchunk ((h), (h)->temp.i + 1), 0) : 0), \ - memcpy ((h)->next_free, where, (h)->temp.i), \ - (h)->next_free += (h)->temp.i, \ - *((h)->next_free)++ = 0, \ - (void) 0) - -# define obstack_1grow(h, datum) \ - (((obstack_room (h) < 1) \ - ? (_obstack_newchunk ((h), 1), 0) : 0), \ - obstack_1grow_fast (h, datum)) - -# define obstack_ptr_grow(h, datum) \ - (((obstack_room (h) < sizeof (char *)) \ - ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \ - obstack_ptr_grow_fast (h, datum)) - -# define obstack_int_grow(h, datum) \ - (((obstack_room (h) < sizeof (int)) \ - ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \ - obstack_int_grow_fast (h, datum)) - -# define obstack_ptr_grow_fast(h, aptr) \ - (((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr), \ - (void) 0) - -# define obstack_int_grow_fast(h, aint) \ - (((int *) ((h)->next_free += sizeof (int)))[-1] = (aint), \ - (void) 0) - -# define obstack_blank(h, length) \ - ((h)->temp.i = (length), \ - ((obstack_room (h) < (h)->temp.i) \ - ? (_obstack_newchunk ((h), (h)->temp.i), 0) : 0), \ - obstack_blank_fast (h, (h)->temp.i)) - -# define obstack_alloc(h, length) \ - (obstack_blank ((h), (length)), obstack_finish ((h))) - -# define obstack_copy(h, where, length) \ - (obstack_grow ((h), (where), (length)), obstack_finish ((h))) - -# define obstack_copy0(h, where, length) \ - (obstack_grow0 ((h), (where), (length)), obstack_finish ((h))) - -# define obstack_finish(h) \ - (((h)->next_free == (h)->object_base \ - ? (((h)->maybe_empty_object = 1), 0) \ - : 0), \ - (h)->temp.p = (h)->object_base, \ - (h)->next_free \ - = __PTR_ALIGN ((h)->object_base, (h)->next_free, \ - (h)->alignment_mask), \ - (((size_t) ((h)->next_free - (char *) (h)->chunk) \ - > (size_t) ((h)->chunk_limit - (char *) (h)->chunk)) \ - ? ((h)->next_free = (h)->chunk_limit) : 0), \ - (h)->object_base = (h)->next_free, \ - (h)->temp.p) - -# define obstack_free(h, obj) \ - ((h)->temp.p = (void *) (obj), \ - (((h)->temp.p > (void *) (h)->chunk \ - && (h)->temp.p < (void *) (h)->chunk_limit) \ - ? (void) ((h)->next_free = (h)->object_base = (char *) (h)->temp.p) \ - : _obstack_free ((h), (h)->temp.p))) - -#endif /* not __GNUC__ */ - -#ifdef __cplusplus -} /* C++ */ -#endif - -#endif /* _OBSTACK_H */ diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog deleted file mode 100644 index f645a7e..0000000 --- a/include/opcode/ChangeLog +++ /dev/null @@ -1,1916 +0,0 @@ -2013-10-14 Chao-ying Fu - - * mips.h (mips_operand_type): Add OP_IMM_INDEX and OP_REG_INDEX. - (mips_reg_operand_type): Add OP_REG_MSA and OP_REG_MSA_CTRL. - For MIPS, add comments for +d, +e, +h, +k, +l, +n, +o, +u, +v, +w, - +T, +U, +V, +W, +~, +!, +@, +#, +$, +%, +^, +&, +*, +|. - For MIPS, update extension character sequences after +. - (ASE_MSA): New define. - (ASE_MSA64): New define. - For microMIPS, add comments for +d, +e, +h, +k, +l, +n, +o, +u, +v, +w, - +x, +T, +U, +V, +W, +~, +!, +@, +#, +$, +%, +^, +&, +*, +|. - For microMIPS, update extension character sequences after +. - -2013-08-23 Yuri Chornoivan - - PR binutils/15834 - * i960.h: Fix typos. - -2013-08-19 Richard Sandiford - - * mips.h: Remove references to "+I" and imm2_expr. - -2013-08-19 Richard Sandiford - - * mips.h (M_DEXT, M_DINS): Delete. - -2013-08-19 Richard Sandiford - - * mips.h (OP_OPTIONAL_REG): New mips_operand_type. - (mips_optional_operand_p): New function. - -2013-08-04 Jürgen Urban - Richard Sandiford - - * mips.h: Document new VU0 operand characters. - (OP_VU0_SUFFIX, OP_VU0_MATCH_SUFFIX): New mips_operand_types. - (OP_REG_VF, OP_REG_VI, OP_REG_R5900_I, OP_REG_R5900_Q, OP_REG_R5900_R) - (OP_REG_R5900_ACC): New mips_reg_operand_types. - (INSN2_VU0_CHANNEL_SUFFIX): New macro. - (mips_vu0_channel_mask): Declare. - -2013-08-03 Richard Sandiford - - * mips.h (mips_pcrel_operand): Inherit from mips_int_operand. - (mips_int_operand_min, mips_int_operand_max): New functions. - (mips_decode_pcrel_operand): Use mips_decode_int_operand. - -2013-08-01 Richard Sandiford - - * mips.h (mips_decode_reg_operand): New function. - (INSN_WRITE_SHIFT, INSN_WRITE_1, INSN_WRITE_2, INSN_WRITE_ALL) - (INSN_READ_SHIFT, INSN_READ_1, INSN_READ_2, INSN_READ_3, INSN_READ_4) - (INSN_READ_ALL, INSN_READ_GPR_24, INSN_WRITE_GPR_24, INSN_UDI): - New macros. - (INSN_WRITE_GPR_D, INSN_WRITE_GPR_T, INSN_WRITE_FPR_D) - (INSN_WRITE_FPR_S, INSN_WRITE_FPR_T, INSN_READ_GPR_S, INSN_READ_GPR_T) - (INSN_READ_FPR_S, INSN_READ_FPR_T, INSN_READ_FPR_R, INSN_WRITE_GPR_S) - (INSN2_WRITE_GPR_Z, INSN2_WRITE_FPR_Z, INSN2_READ_GPR_Z) - (INSN2_READ_FPR_Z, INSN2_READ_GPR_D, INSN2_READ_FPR_D) - (INSN2_WRITE_GPR_MB, INSN2_READ_GPR_MC, INSN2_MOD_GPR_MD) - (INSN2_READ_GPR_ME, INSN2_MOD_GPR_MF, INSN2_READ_GPR_MG) - (INSN2_READ_GPR_MJ, INSN2_WRITE_GPR_MJ, INSN2_READ_GPR_MP) - (INSN2_WRITE_GPR_MP, INSN2_READ_GPR_MQ, INSN2_READ_GP) - (INSN2_WRITE_GPR_MH, INSN2_READ_GPR_MMN): Delete. Renumber other - macros to cover the gaps. - (INSN2_MOD_SP): Replace with... - (INSN2_WRITE_SP, INSN2_READ_SP): ...these new macros. - (MIPS16_INSN_WRITE_X, MIPS16_INSN_WRITE_Y, MIPS16_INSN_WRITE_Z) - (MIPS16_INSN_WRITE_T, MIPS16_INSN_WRITE_31, MIPS16_INSN_WRITE_GPR_Y) - (MIPS16_INSN_READ_X, MIPS16_INSN_READ_Y, MIPS16_INSN_READ_Z) - (MIPS16_INSN_READ_T, MIPS16_INSN_READ_SP, MIPS16_INSN_READ_GPR_X): - Delete. - -2013-08-01 Richard Sandiford - - * mips.h (MIPS16_INSN_WRITE_SP, MIPS16_INSN_READ_31) - (MIPS16_INSN_READ_PC, MIPS16_INSN_UNCOND_BRANCH) - (MIPS16_INSN_COND_BRANCH): Delete. - -2013-07-24 Anna Tikhonova - Kirill Yukhin - Michael Zolotukhin - - * i386.h (BND_PREFIX_OPCODE): New. - -2013-07-14 Richard Sandiford - - * mips.h (mips_operand_type): Add OP_ENTRY_EXIT_LIST and - OP_SAVE_RESTORE_LIST. - (decode_mips16_operand): Declare. - -2013-07-14 Richard Sandiford - - * mips.h (mips_operand_type, mips_reg_operand_type): New enums. - (mips_operand, mips_int_operand, mips_mapped_int_operand) - (mips_msb_operand, mips_reg_operand, mips_reg_pair_operand) - (mips_pcrel_operand): New structures. - (mips_insert_operand, mips_extract_operand, mips_signed_operand) - (mips_decode_int_operand, mips_decode_pcrel_operand): New functions. - (decode_mips_operand, decode_micromips_operand): Declare. - -2013-07-14 Richard Sandiford - - * mips.h: Document MIPS16 "I" opcode. - -2013-07-07 Richard Sandiford - - * mips.h (M_ACLR_OB, M_ASET_OB, M_CACHE_OB, M_CACHEE_OB, M_L_DOB) - (M_LB_A, M_LBE_OB, M_LBU_A, M_LBUE_OB, M_LD_A, M_LD_OB, M_LDC2_OB) - (M_LDL_OB, M_LDM_OB, M_LDP_OB, M_LDR_OB, M_LH_A, M_LHE_OB, M_LHU_A) - (M_LHUE_OB, M_LL_OB, M_LLD_OB, M_LLE_OB, M_LS_A, M_LW_A, M_LWE_OB) - (M_LWC0_A, M_LWC1_A, M_LWC2_A, M_LWC2_OB, M_LWC3_A, M_LWL_A, M_LWL_OB) - (M_LWLE_OB, M_LWM_OB, M_LWP_OB, M_LWR_A, M_LWR_OB, M_LWRE_OB, M_LWU_OB) - (M_PREF_OB, M_PREFE_OB, M_S_DOB, M_SAA_OB, M_SAAD_OB, M_SC_OB) - (M_SCD_OB, M_SCE_OB, M_SD_A, M_SD_OB, M_SDC2_OB, M_SDL_OB, M_SDM_OB) - (M_SDP_OB, M_SDR_OB, M_SB_A, M_SBE_OB, M_SH_A, M_SHE_OB, M_SW_A) - (M_SWE_OB, M_SWC0_A, M_SWC1_A, M_SWC2_A, M_SWC2_OB, M_SWC3_A, M_SWL_A) - (M_SWL_OB, M_SWLE_OB, M_SWM_OB, M_SWP_OB, M_SWR_A, M_SWR_OB, M_SWRE_OB) - (M_ULD, M_ULH, M_ULHU, M_ULW, M_USH, M_USW, M_USD): Delete. - (M_ULD_A, M_ULH_A, M_ULHU_A, M_ULW_A, M_USH_A, M_USW_A, M_USD_A): - Rename to... - (M_ULD_AB, M_ULH_AB, M_ULHU_AB, M_ULW_AB, M_USH_AB, M_USW_AB) - (M_USD_AB): ...these. - -2013-07-07 Richard Sandiford - - * mips.h: Remove documentation of "[" and "]". Update documentation - of "k" and the MDMX formats. - -2013-07-07 Richard Sandiford - - * mips.h: Update documentation of "+s" and "+S". - -2013-07-07 Richard Sandiford - - * mips.h: Document "+i". - -2013-07-07 Richard Sandiford - - * mips.h: Remove "mi" documentation. Update "mh" documentation. - (OP_MASK_MI, OP_SH_MI, MICROMIPSOP_MASK_MI, MICROMIPSOP_MASK_MI): - Delete. - (INSN2_WRITE_GPR_MHI): Rename to... - (INSN2_WRITE_GPR_MH): ...this. - -2013-07-07 Richard Sandiford - - * mips.h: Remove documentation of "+D" and "+T". - -2013-06-26 Richard Sandiford - - * mips.h: Fix comment for "1": it is now STYPE rather than SHAMT. - Use "source" rather than "destination" for microMIPS "G". - -2013-06-25 Maciej W. Rozycki - - * mips.h: Add M_JRADDIUSP, M_JRC and M_MOVEP anonymous enum - values. - -2013-06-23 Richard Sandiford - - * mips.h: Fix comment typo: "G" is _RS rather than _RD for microMIPS. - -2013-06-17 Catherine Moore - Maciej W. Rozycki - Chao-Ying Fu - - * mips.h (OP_SH_EVAOFFSET): Define. - (OP_MASK_EVAOFFSET): Define. - (INSN_ASE_MASK): Delete. - (ASE_EVA): Define. - (M_CACHEE_AB, M_CACHEE_OB): New. - (M_LBE_OB, M_LBE_AB): New. - (M_LBUE_OB, M_LBUE_AB): New. - (M_LHE_OB, M_LHE_AB): New. - (M_LHUE_OB, M_LHUE_AB): New. - (M_LLE_AB, M_LLE_OB): New. - (M_LWE_OB, M_LWE_AB): New. - (M_LWLE_AB, M_LWLE_OB): New. - (M_LWRE_AB, M_LWRE_OB): New. - (M_PREFE_AB, M_PREFE_OB): New. - (M_SCE_AB, M_SCE_OB): New. - (M_SBE_OB, M_SBE_AB): New. - (M_SHE_OB, M_SHE_AB): New. - (M_SWE_OB, M_SWE_AB): New. - (M_SWLE_AB, M_SWLE_OB): New. - (M_SWRE_AB, M_SWRE_OB): New. - (MICROMIPSOP_SH_EVAOFFSET): Define. - (MICROMIPSOP_MASK_EVAOFFSET): Define. - -2013-06-12 Sandra Loosemore - - * nios2.h (OP_MATCH_ERET): Correct eret encoding. - -2013-05-22 Jürgen Urban - - * mips.h (M_LQC2_AB, M_SQC2_AB): New macros. - -2013-05-09 Andrew Pinski - - * mips.h (OP_MASK_CODE10): Correct definition. - (OP_SH_CODE10): Likewise. - Add a comment that "+J" is used now for OP_*CODE10. - (INSN_ASE_MASK): Update. - (INSN_VIRT): New macro. - (INSN_VIRT64): New macro - -2013-05-02 Nick Clifton - - * msp430.h: Add patterns for MSP430X instructions. - -2013-04-06 David S. Miller - - * sparc.h (F_PREFERRED): Define. - (F_PREF_ALIAS): Define. - -2013-04-03 Nick Clifton - - * v850.h (V850_INVERSE_PCREL): Define. - -2013-03-27 Alexis Deruelle - - PR binutils/15068 - * tic6x-opcode-table.h: Fix patterns for add, ldnw and xor. - -2013-03-27 Alexis Deruelle - - PR binutils/15068 - * tic6xc-insn-formats.h (FLD): Add use of bitfield array. - Add 16-bit opcodes. - * tic6xc-opcode-table.h: Add 16-bit insns. - * tic6x.h: Add support for 16-bit insns. - -2013-03-21 Michael Schewe - - * h8300.h: Add MEMRELAX flag for mov.b/w/l @(d:32,ERs),Rd - and mov.b/w/l Rs,@(d:32,ERd). - -2013-03-20 Alexis Deruelle - - PR gas/15082 - * tic6x-opcode-table.h: Rename mpydp's specific operand type macro - from ORREGD1324 to ORXREGD1324 and make it cross-path-able through - tic6x_operand_xregpair operand coding type. - Make mpydp instruction cross-path-able, ie: remove the FIXed 'x' - opcode field, usu ORXREGD1324 for the src2 operand and remove the - TIC6X_FLAG_NO_CROSS. - -2013-03-20 Alexis Deruelle - - PR gas/15095 - * tic6x.h (enum tic6x_coding_method): Add - tic6x_coding_dreg_(msb|lsb) field coding type in order to encode - separately the msb and lsb of a register pair. This is needed to - encode the opcodes in the same way as TI assembler does. - * tic6x-opcode-table.h: Modify absdp, dpint, dpsp, dptrunc, rcpdp - and rsqrdp opcodes to use the new field coding types. - -2013-03-11 Kyrylo Tkachov - - * arm.h (CRC_EXT_ARMV8): New constant. - (ARCH_CRC_ARMV8): New macro. - -2013-02-28 Yufeng Zhang - - * aarch64.h (AARCH64_FEATURE_CRC): New macro. - -2013-02-06 Sandra Loosemore - Andrew Jenner - - Based on patches from Altera Corporation. - - * nios2.h: New file. - -2013-01-30 Yufeng Zhang - - * aarch64.h (aarch64_op): Add OP_SXTL, OP_SXTL2, OP_UXTL and OP_UXTL2. - -2013-01-28 Alexis Deruelle - - PR gas/15069 - * tic6x-opcode-table.h: Fix encoding of BNOP instruction. - -2013-01-24 Nick Clifton - - * v850.h: Add e3v5 support. - -2013-01-17 Yufeng Zhang - - * aarch64.h (aarch64_op): Remove OP_V_MOVI_B. - -2013-01-10 Peter Bergner - - * ppc.h (PPC_OPCODE_POWER8): New define. - (PPC_OPCODE_HTM): Likewise. - -2013-01-10 Will Newton - - * metag.h: New file. - -2013-01-07 Kaushik Phatak - - * cr16.h (make_instruction): Rename to cr16_make_instruction. - (match_opcode): Rename to cr16_match_opcode. - -2013-01-04 Juergen Urban - - * mips.h: Add support for r5900 instructions including lq and sq. - -2013-01-02 Kaushik Phatak - - * cr16.h (dwordU,wordU): Moved typedefs from cr16-dis.c - (make_instruction,match_opcode): Added function prototypes. - (cr16_words,cr16_allWords,cr16_currInsn): Declare as extern. - -2012-11-23 Alan Modra - - * ppc.h (ppc_parse_cpu): Update prototype. - -2012-10-14 John David Anglin - - * hppa.h (pa_opcodes): Use "cX" completer instead of "cx" in fstqx - opcodes. Likewise, use "cM" instead of "cm" in fstqs opcodes. - -2012-10-04 Andreas Krebbel - - * s390.h (s390_opcode_cpu_val): Add S390_OPCODE_ZEC12. - -2012-09-04 Sergey A. Guriev - - * ia64.h (ia64_opnd): Add new operand types. - -2012-08-21 David S. Miller - - * sparc.h (F3F4): New macro. - -2012-08-13 Ian Bolton - Laurent Desnogues - Jim MacArthur - Marcus Shawcroft - Nigel Stephens - Ramana Radhakrishnan - Richard Earnshaw - Sofiane Naci - Tejas Belagod - Yufeng Zhang - - * aarch64.h: New file. - -2012-08-13 Richard Sandiford - Maciej W. Rozycki - - * mips.h (mips_opcode): Add the exclusions field. - (OPCODE_IS_MEMBER): Remove macro. - (cpu_is_member): New inline function. - (opcode_is_member): Likewise. - -2012-07-31 Chao-Ying Fu - Catherine Moore - Maciej W. Rozycki - - * mips.h: Document microMIPS DSP ASE usage. - (MICROMIPSOP_MASK_DSPACC, MICROMIPSOP_SH_DSPACC): Update for - microMIPS DSP ASE support. - (MICROMIPSOP_MASK_DSPSFT, MICROMIPSOP_SH_DSPSFT): Likewise. - (MICROMIPSOP_MASK_SA3, MICROMIPSOP_SH_SA3): Likewise. - (MICROMIPSOP_MASK_SA4, MICROMIPSOP_SH_SA4): Likewise. - (MICROMIPSOP_MASK_IMM8, MICROMIPSOP_SH_IMM8): Likewise. - (MICROMIPSOP_MASK_IMM10, MICROMIPSOP_SH_IMM10): Likewise. - (MICROMIPSOP_MASK_WRDSP, MICROMIPSOP_SH_WRDSP): Likewise. - (MICROMIPSOP_MASK_BP, MICROMIPSOP_SH_BP): Likewise. - -2012-07-06 Maciej W. Rozycki - - * mips.h: Fix a typo in description. - -2012-06-07 Georg-Johann Lay - - * avr.h: (AVR_ISA_XCH): New define. - (AVR_ISA_XMEGA): Use it. - (XCH, LAS, LAT, LAC): New XMEGA opcodes. - -2012-05-15 James Murray - - * m68hc11.h: Add XGate definitions. - (struct m68hc11_opcode): Add xg_mask field. - -2012-05-14 Catherine Moore - Maciej W. Rozycki - Rhonda Wittels - - * ppc.h (PPC_OPCODE_VLE): New definition. - (PPC_OP_SA): New macro. - (PPC_OP_SE_VLE): New macro. - (PPC_OP): Use a variable shift amount. - (powerpc_operand): Update comments. - (PPC_OPSHIFT_INV): New macro. - (PPC_OPERAND_CR): Replace with... - (PPC_OPERAND_CR_BIT): ...this and - (PPC_OPERAND_CR_REG): ...this. - - -2012-05-03 Sean Keys - - * xgate.h: Header file for XGATE assembler. - -2012-04-27 David S. Miller - - * sparc.h: Document new arg code' )' for crypto RS3 - immediates. - - * sparc.h (struct sparc_opcode): New field 'hwcaps'. - F_MUL32, F_DIV32, F_FDMULD, F_V8PLUS, F_POPC, F_VIS, F_VIS2, - F_ASI_BLK_INIT, F_FMAF, F_VIS3, F_HPC, F_RANDOM, F_TRANS, - F_FJFMAU, F_IMA, F_ASI_CACHE_SPARING, F_HWCAP_MASK): Delete. - (HWCAP_MUL32, HWCAP_DIV32, HWCAP_FSMULD, HWCAP_V8PLUS, HWCAP_POPC, - HWCAP_VIS, HWCAP_VIS2, HWCAP_ASI_BLK_INIT, HWCAP_FMAF, - HWCAP_VIS3, HWCAP_HPC, HWCAP_RANDOM, HWCAP_TRANS, HWCAP_FJFMAU, - HWCAP_IMA, HWCAP_ASI_CACHE_SPARING, HWCAP_AES, HWCAP_DES, - HWCAP_KASUMI, HWCAP_CAMELLIA, HWCAP_MD5, HWCAP_SHA1, - HWCAP_SHA256, HWCAP_SHA512, HWCAP_MPMUL, HWCAP_MONT, HWCAP_PAUSE, - HWCAP_CBCOND, HWCAP_CRC32): New defines. - -2012-03-10 Edmar Wienskoski - - * ppc.h: Add PPC_OPCODE_ALTIVEC2, PPC_OPCODE_E6500, PPC_OPCODE_TMR. - -2012-02-27 Alan Modra - - * crx.h (cst4_map): Update declaration. - -2012-02-25 Walter Lee - - * tilegx.h (tilegx_mnemonic): Add TILEGX_OPC_LD4S_TLS, - TILEGX_OPC_LD_TLS. - * tilepro.h (tilepro_mnemonic): Add TILEPRO_OPC_LW_TLS, - TILEPRO_OPC_LW_TLS_SN. - -2012-02-08 H.J. Lu - - * i386.h (XACQUIRE_PREFIX_OPCODE): New. - (XRELEASE_PREFIX_OPCODE): Likewise. - -2011-12-08 Andrew Pinski - Adam Nemet - - * mips.h (INSN_CHIP_MASK): Update according to INSN_OCTEON2. - (INSN_OCTEON2): New macro. - (CPU_OCTEON2): New macro. - (OPCODE_IS_MEMBER): Add Octeon2. - -2011-11-29 Andrew Pinski - - * mips.h (INSN_CHIP_MASK): Update according to INSN_OCTEONP. - (INSN_OCTEONP): New macro. - (CPU_OCTEONP): New macro. - (OPCODE_IS_MEMBER): Add Octeon+. - (M_SAA_AB, M_SAAD_AB, M_SAA_OB, M_SAAD_OB): New enum values. - -2011-11-01 DJ Delorie - - * rl78.h: New file. - -2011-10-24 Maciej W. Rozycki - - * mips.h: Fix a typo in description. - -2011-09-21 David S. Miller - - * sparc.h (struct sparc_opcode): Expand 'flags' to unsigned int. - (F_MUL32, F_DIV32, F_FSMULD, F_V8PLUS, F_POPC, F_VIS, F_VIS2, - F_ASI_BLK_INIT, F_FMAF, F_VIS3, F_HPC, F_RANDOM, F_TRANS, - F_FJFMAU, F_IMA, F_ASI_CACHE_SPARING): New flag bits. - -2011-08-09 Chao-ying Fu - Maciej W. Rozycki - - * mips.h (OP_MASK_3BITPOS, OP_SH_3BITPOS): New macros. - (OP_MASK_OFFSET12, OP_SH_OFFSET12): Redefine. - (INSN_ASE_MASK): Add the MCU bit. - (INSN_MCU): New macro. - (M_ACLR_AB, M_ACLR_OB, M_ASET_AB, M_ASET_OB): New enum values. - (MICROMIPSOP_MASK_3BITPOS, MICROMIPSOP_SH_3BITPOS): New macros. - -2011-08-09 Maciej W. Rozycki - - * mips.h (INSN_WRITE_GPR_S, INSN2_WRITE_GPR_MB): New macros. - (INSN2_READ_GPR_MC, INSN2_READ_GPR_ME): Likewise. - (INSN2_WRITE_GPR_MF, INSN2_READ_GPR_MG): Likewise. - (INSN2_READ_GPR_MJ, INSN2_WRITE_GPR_MJ): Likewise. - (INSN2_READ_GPR_MP, INSN2_WRITE_GPR_MP): Likewise. - (INSN2_READ_GPR_MQ, INSN2_WRITE_GPR_MHI): Likewise. - (INSN2_READ_GPR_MMN): Likewise. - (INSN2_READ_FPR_D): Change the bit used. - (INSN2_MOD_GPR_MD, INSN2_MOD_GPR_MF): Likewise. - (INSN2_MOD_SP, INSN2_READ_GPR_31, INSN2_READ_GP): Likewise. - (INSN2_READ_PC, INSN2_UNCOND_BRANCH): Likewise. - (INSN2_COND_BRANCH): Likewise. - (INSN2_WRITE_GPR_S, INSN2_MOD_GPR_MB): Remove macros. - (INSN2_MOD_GPR_MC, INSN2_MOD_GPR_ME, INSN2_MOD_GPR_MG): Likewise. - (INSN2_MOD_GPR_MJ, INSN2_MOD_GPR_MP, INSN2_MOD_GPR_MQ): Likewise. - (INSN2_MOD_GPR_MHI, INSN2_MOD_GPR_MM): Likewise. - (INSN2_MOD_GPR_MN): Likewise. - -2011-08-05 David S. Miller - - * sparc.h: Document new format codes '4', '5', and '('. - (OPF_LOW4, RS3): New macros. - -2011-08-03 Maciej W. Rozycki - - * mips.h: Document the use of FP_D in MIPS16 mode. Adjust the - order of flags documented. - -2011-07-29 Maciej W. Rozycki - - * mips.h: Clarify the description of microMIPS instruction - manipulation macros. - (MICROMIPSOP_MASK_MAJOR, MICROMIPSOP_SH_MAJOR): Remove macros. - -2011-07-24 Chao-ying Fu - Maciej W. Rozycki - - * mips.h (OP_MASK_EXTLSB, OP_SH_EXTLSB): New macros. - (OP_MASK_STYPE, OP_SH_STYPE): Likewise. - (OP_MASK_CODE10, OP_SH_CODE10): Likewise. - (OP_MASK_TRAP, OP_SH_TRAP): Likewise. - (OP_MASK_OFFSET12, OP_SH_OFFSET12): Likewise. - (OP_MASK_OFFSET10, OP_SH_OFFSET10): Likewise. - (OP_MASK_RS3, OP_SH_RS3): Likewise. - (OP_MASK_MB, OP_SH_MB, OP_MASK_MC, OP_SH_MC): Likewise. - (OP_MASK_MD, OP_SH_MD, OP_MASK_ME, OP_SH_ME): Likewise. - (OP_MASK_MF, OP_SH_MF, OP_MASK_MG, OP_SH_MG): Likewise. - (OP_MASK_MJ, OP_SH_MJ, OP_MASK_ML, OP_SH_ML): Likewise. - (OP_MASK_MP, OP_SH_MP, OP_MASK_MQ, OP_SH_MQ): Likewise. - (OP_MASK_IMMA, OP_SH_IMMA, OP_MASK_IMMB, OP_SH_IMMB): Likewise. - (OP_MASK_IMMC, OP_SH_IMMC, OP_MASK_IMMF, OP_SH_IMMF): Likewise. - (OP_MASK_IMMG, OP_SH_IMMG, OP_MASK_IMMH, OP_SH_IMMH): Likewise. - (OP_MASK_IMMI, OP_SH_IMMI, OP_MASK_IMMJ, OP_SH_IMMJ): Likewise. - (OP_MASK_IMML, OP_SH_IMML, OP_MASK_IMMM, OP_SH_IMMM): Likewise. - (OP_MASK_IMMN, OP_SH_IMMN, OP_MASK_IMMO, OP_SH_IMMO): Likewise. - (OP_MASK_IMMP, OP_SH_IMMP, OP_MASK_IMMQ, OP_SH_IMMQ): Likewise. - (OP_MASK_IMMU, OP_SH_IMMU, OP_MASK_IMMW, OP_SH_IMMW): Likewise. - (OP_MASK_IMMX, OP_SH_IMMX, OP_MASK_IMMY, OP_SH_IMMY): Likewise. - (INSN_WRITE_GPR_S): New macro. - (INSN2_BRANCH_DELAY_16BIT, INSN2_BRANCH_DELAY_32BIT): Likewise. - (INSN2_READ_FPR_D): Likewise. - (INSN2_MOD_GPR_MB, INSN2_MOD_GPR_MC): Likewise. - (INSN2_MOD_GPR_MD, INSN2_MOD_GPR_ME): Likewise. - (INSN2_MOD_GPR_MF, INSN2_MOD_GPR_MG): Likewise. - (INSN2_MOD_GPR_MJ, INSN2_MOD_GPR_MP): Likewise. - (INSN2_MOD_GPR_MQ, INSN2_MOD_SP): Likewise. - (INSN2_READ_GPR_31, INSN2_READ_GP, INSN2_READ_PC): Likewise. - (INSN2_UNCOND_BRANCH, INSN2_COND_BRANCH): Likewise. - (INSN2_MOD_GPR_MHI, INSN2_MOD_GPR_MM, INSN2_MOD_GPR_MN): Likewise. - (CPU_MICROMIPS): New macro. - (M_BC1FL, M_BC1TL, M_BC2FL, M_BC2TL): New enum values. - (M_BEQL, M_BGEZ, M_BGEZL, M_BGEZALL, M_BGTZ, M_BGTZL): Likewise. - (M_BLEZ, M_BLEZL, M_BLTZ, M_BLTZL, M_BLTZALL, M_BNEL): Likewise. - (M_CACHE_OB, M_JALS_1, M_JALS_2, M_JALS_A): Likewise. - (M_LDC2_OB, M_LDL_OB, M_LDM_AB, M_LDM_OB): Likewise. - (M_LDP_AB, M_LDP_OB, M_LDR_OB, M_LL_OB, M_LLD_OB): Likewise. - (M_LWC2_OB, M_LWL_OB, M_LWM_AB, M_LWM_OB): Likewise. - (M_LWP_AB, M_LWP_OB, M_LWR_OB): Likewise. - (M_LWU_OB, M_PREF_OB, M_SC_OB, M_SCD_OB): Likewise. - (M_SDC2_OB, M_SDL_OB, M_SDM_AB, M_SDM_OB): Likewise. - (M_SDP_AB, M_SDP_OB, M_SDR_OB): Likewise. - (M_SWC2_OB, M_SWL_OB, M_SWM_AB, M_SWM_OB): Likewise. - (M_SWP_AB, M_SWP_OB, M_SWR_OB): Likewise. - (MICROMIPSOP_MASK_MAJOR, MICROMIPSOP_SH_MAJOR): New macros. - (MICROMIPSOP_MASK_IMMEDIATE, MICROMIPSOP_SH_IMMEDIATE): Likewise. - (MICROMIPSOP_MASK_DELTA, MICROMIPSOP_SH_DELTA): Likewise. - (MICROMIPSOP_MASK_CODE10, MICROMIPSOP_SH_CODE10): Likewise. - (MICROMIPSOP_MASK_TRAP, MICROMIPSOP_SH_TRAP): Likewise. - (MICROMIPSOP_MASK_SHAMT, MICROMIPSOP_SH_SHAMT): Likewise. - (MICROMIPSOP_MASK_TARGET, MICROMIPSOP_SH_TARGET): Likewise. - (MICROMIPSOP_MASK_EXTLSB, MICROMIPSOP_SH_EXTLSB): Likewise. - (MICROMIPSOP_MASK_EXTMSBD, MICROMIPSOP_SH_EXTMSBD): Likewise. - (MICROMIPSOP_MASK_INSMSB, MICROMIPSOP_SH_INSMSB): Likewise. - (MICROMIPSOP_MASK_CODE, MICROMIPSOP_SH_CODE): Likewise. - (MICROMIPSOP_MASK_CODE2, MICROMIPSOP_SH_CODE2): Likewise. - (MICROMIPSOP_MASK_CACHE, MICROMIPSOP_SH_CACHE): Likewise. - (MICROMIPSOP_MASK_SEL, MICROMIPSOP_SH_SEL): Likewise. - (MICROMIPSOP_MASK_OFFSET12, MICROMIPSOP_SH_OFFSET12): Likewise. - (MICROMIPSOP_MASK_3BITPOS, MICROMIPSOP_SH_3BITPOS): Likewise. - (MICROMIPSOP_MASK_STYPE, MICROMIPSOP_SH_STYPE): Likewise. - (MICROMIPSOP_MASK_OFFSET10, MICROMIPSOP_SH_OFFSET10): Likewise. - (MICROMIPSOP_MASK_RS, MICROMIPSOP_SH_RS): Likewise. - (MICROMIPSOP_MASK_RT, MICROMIPSOP_SH_RT): Likewise. - (MICROMIPSOP_MASK_RD, MICROMIPSOP_SH_RD): Likewise. - (MICROMIPSOP_MASK_FS, MICROMIPSOP_SH_FS): Likewise. - (MICROMIPSOP_MASK_FT, MICROMIPSOP_SH_FT): Likewise. - (MICROMIPSOP_MASK_FD, MICROMIPSOP_SH_FD): Likewise. - (MICROMIPSOP_MASK_FR, MICROMIPSOP_SH_FR): Likewise. - (MICROMIPSOP_MASK_RS3, MICROMIPSOP_SH_RS3): Likewise. - (MICROMIPSOP_MASK_PREFX, MICROMIPSOP_SH_PREFX): Likewise. - (MICROMIPSOP_MASK_BCC, MICROMIPSOP_SH_BCC): Likewise. - (MICROMIPSOP_MASK_CCC, MICROMIPSOP_SH_CCC): Likewise. - (MICROMIPSOP_MASK_COPZ, MICROMIPSOP_SH_COPZ): Likewise. - (MICROMIPSOP_MASK_MB, MICROMIPSOP_SH_MB): Likewise. - (MICROMIPSOP_MASK_MC, MICROMIPSOP_SH_MC): Likewise. - (MICROMIPSOP_MASK_MD, MICROMIPSOP_SH_MD): Likewise. - (MICROMIPSOP_MASK_ME, MICROMIPSOP_SH_ME): Likewise. - (MICROMIPSOP_MASK_MF, MICROMIPSOP_SH_MF): Likewise. - (MICROMIPSOP_MASK_MG, MICROMIPSOP_SH_MG): Likewise. - (MICROMIPSOP_MASK_MH, MICROMIPSOP_SH_MH): Likewise. - (MICROMIPSOP_MASK_MI, MICROMIPSOP_SH_MI): Likewise. - (MICROMIPSOP_MASK_MJ, MICROMIPSOP_SH_MJ): Likewise. - (MICROMIPSOP_MASK_ML, MICROMIPSOP_SH_ML): Likewise. - (MICROMIPSOP_MASK_MM, MICROMIPSOP_SH_MM): Likewise. - (MICROMIPSOP_MASK_MN, MICROMIPSOP_SH_MN): Likewise. - (MICROMIPSOP_MASK_MP, MICROMIPSOP_SH_MP): Likewise. - (MICROMIPSOP_MASK_MQ, MICROMIPSOP_SH_MQ): Likewise. - (MICROMIPSOP_MASK_IMMA, MICROMIPSOP_SH_IMMA): Likewise. - (MICROMIPSOP_MASK_IMMB, MICROMIPSOP_SH_IMMB): Likewise. - (MICROMIPSOP_MASK_IMMC, MICROMIPSOP_SH_IMMC): Likewise. - (MICROMIPSOP_MASK_IMMD, MICROMIPSOP_SH_IMMD): Likewise. - (MICROMIPSOP_MASK_IMME, MICROMIPSOP_SH_IMME): Likewise. - (MICROMIPSOP_MASK_IMMF, MICROMIPSOP_SH_IMMF): Likewise. - (MICROMIPSOP_MASK_IMMG, MICROMIPSOP_SH_IMMG): Likewise. - (MICROMIPSOP_MASK_IMMH, MICROMIPSOP_SH_IMMH): Likewise. - (MICROMIPSOP_MASK_IMMI, MICROMIPSOP_SH_IMMI): Likewise. - (MICROMIPSOP_MASK_IMMJ, MICROMIPSOP_SH_IMMJ): Likewise. - (MICROMIPSOP_MASK_IMML, MICROMIPSOP_SH_IMML): Likewise. - (MICROMIPSOP_MASK_IMMM, MICROMIPSOP_SH_IMMM): Likewise. - (MICROMIPSOP_MASK_IMMN, MICROMIPSOP_SH_IMMN): Likewise. - (MICROMIPSOP_MASK_IMMO, MICROMIPSOP_SH_IMMO): Likewise. - (MICROMIPSOP_MASK_IMMP, MICROMIPSOP_SH_IMMP): Likewise. - (MICROMIPSOP_MASK_IMMQ, MICROMIPSOP_SH_IMMQ): Likewise. - (MICROMIPSOP_MASK_IMMU, MICROMIPSOP_SH_IMMU): Likewise. - (MICROMIPSOP_MASK_IMMW, MICROMIPSOP_SH_IMMW): Likewise. - (MICROMIPSOP_MASK_IMMX, MICROMIPSOP_SH_IMMX): Likewise. - (MICROMIPSOP_MASK_IMMY, MICROMIPSOP_SH_IMMY): Likewise. - (MICROMIPSOP_MASK_CODE, MICROMIPSOP_SH_CODE): Likewise. - (MICROMIPSOP_MASK_CODE2, MICROMIPSOP_SH_CODE2): Likewise. - (MICROMIPSOP_MASK_CACHE, MICROMIPSOP_SH_CACHE): Likewise. - (MICROMIPSOP_MASK_CODE20, MICROMIPSOP_SH_CODE20): Likewise. - (MICROMIPSOP_MASK_PERFREG, MICROMIPSOP_SH_PERFREG): Likewise. - (MICROMIPSOP_MASK_CODE19, MICROMIPSOP_SH_CODE19): Likewise. - (MICROMIPSOP_MASK_ALN, MICROMIPSOP_SH_ALN): Likewise. - (MICROMIPSOP_MASK_VECBYTE, MICROMIPSOP_SH_VECBYTE): Likewise. - (MICROMIPSOP_MASK_VECALIGN, MICROMIPSOP_SH_VECALIGN): Likewise. - (MICROMIPSOP_MASK_DSPACC, MICROMIPSOP_SH_DSPACC): Likewise. - (MICROMIPSOP_MASK_DSPACC_S, MICROMIPSOP_SH_DSPACC_S): Likewise. - (MICROMIPSOP_MASK_DSPSFT, MICROMIPSOP_SH_DSPSFT): Likewise. - (MICROMIPSOP_MASK_DSPSFT_7, MICROMIPSOP_SH_DSPSFT_7): Likewise. - (MICROMIPSOP_MASK_SA3, MICROMIPSOP_SH_SA3): Likewise. - (MICROMIPSOP_MASK_SA4, MICROMIPSOP_SH_SA4): Likewise. - (MICROMIPSOP_MASK_IMM8, MICROMIPSOP_SH_IMM8): Likewise. - (MICROMIPSOP_MASK_IMM10, MICROMIPSOP_SH_IMM10): Likewise. - (MICROMIPSOP_MASK_WRDSP, MICROMIPSOP_SH_WRDSP): Likewise. - (MICROMIPSOP_MASK_RDDSP, MICROMIPSOP_SH_RDDSP): Likewise. - (MICROMIPSOP_MASK_BP, MICROMIPSOP_SH_BP): Likewise. - (MICROMIPSOP_MASK_MT_U, MICROMIPSOP_SH_MT_U): Likewise. - (MICROMIPSOP_MASK_MT_H, MICROMIPSOP_SH_MT_H): Likewise. - (MICROMIPSOP_MASK_MTACC_T, MICROMIPSOP_SH_MTACC_T): Likewise. - (MICROMIPSOP_MASK_MTACC_D, MICROMIPSOP_SH_MTACC_D): Likewise. - (MICROMIPSOP_MASK_BBITIND, MICROMIPSOP_SH_BBITIND): Likewise. - (MICROMIPSOP_MASK_CINSPOS, MICROMIPSOP_SH_CINSPOS): Likewise. - (MICROMIPSOP_MASK_CINSLM1, MICROMIPSOP_SH_CINSLM1): Likewise. - (MICROMIPSOP_MASK_SEQI, MICROMIPSOP_SH_SEQI): Likewise. - (micromips_opcodes): New declaration. - (bfd_micromips_num_opcodes): Likewise. - -2011-07-24 Maciej W. Rozycki - - * mips.h (INSN_TRAP): Rename to... - (INSN_NO_DELAY_SLOT): ... this. - (INSN_SYNC): Remove macro. - -2011-07-01 Eric B. Weddington - - * avr.h (AVR_ISA_AVR6): Remove AVR_ISA_SPMX as it was actually - a duplicate of AVR_ISA_SPM. - -2011-07-01 Nick Clifton - - * avr.h (AVR_ISA_AVR6): Fix typo, adding AVR_ISA_SPMX. - -2011-06-18 Robin Getz - - * bfin.h (is_macmod_signed): New func - -2011-06-18 Mike Frysinger - - * bfin.h (is_macmod_pmove): Add missing space before func args. - (is_macmod_hmove): Likewise. - -2011-06-13 Walter Lee - - * tilegx.h: New file. - * tilepro.h: New file. - -2011-05-31 Paul Brook - - * arm.h (ARM_ARCH_V7R_IDIV): Define. - -2011-05-24 Andreas Krebbel - - * s390.h: Replace S390_OPERAND_REG_EVEN with - S390_OPERAND_REG_PAIR. - -2011-05-24 Andreas Krebbel - - * s390.h: Add S390_OPCODE_REG_EVEN flag. - -2011-04-18 Julian Brown - - * arm.h (ARM_AEXT_V7_ARM): Remove ARM_EXT_OS from bitmask. - -2011-04-11 Dan McDonald - - PR gas/12296 - * arm.h (ARM_AEXT_V7_ARM): Add ARM_EXT_OS. - -2011-03-22 Eric B. Weddington - - * avr.h (AVR_ISA_SPMX,AVR_ISA_DES,AVR_ISA_M256,AVR_ISA_XMEGA): - New instruction set flags. - (AVR_INSN): Add new instructions for SPM Z+, DES for XMEGA. - -2011-02-28 Maciej W. Rozycki - - * mips.h (M_PREF_AB): New enum value. - -2011-02-12 Mike Frysinger - - * bfin.h (M_S2RND, M_T, M_W32, M_FU, M_TFU, M_IS, M_ISS2, M_IH, - M_IU): Define. - (is_macmod_pmove, is_macmod_hmove): New functions. - -2011-02-11 Mike Frysinger - - * bfin.h: Add OPCODE_BFIN_H ifdef multiple include protection. - -2011-02-04 Bernd Schmidt - - * tic6x-opcode-table.h (cmtl, ll, sl): Available on C64XP. - * tic6x.h (TIC6X_INSN_ATOMIC): Remove. - -2010-12-31 John David Anglin - - PR gas/11395 - * hppa.h (pa_opcodes): Revert last change. Exchange 32 and 64-bit - "bb" entries. - -2010-12-26 John David Anglin - - PR gas/11395 - * hppa.h: Clear "d" bit in "add" and "sub" patterns. - -2010-12-18 Richard Sandiford - - * mips.h: Update commentary after last commit. - -2010-12-18 Mingjie Xing - - * mips.h (OP_*_OFFSET_A, OP_*_OFFSET_B, OP_*_OFFSET_C) - (OP_*_RZ, OP_*_FZ, INSN2_M_FP_D, INSN2_WRITE_GPR_Z, INSN2_WRITE_FPR_Z) - (INSN2_READ_GPR_Z, INSN2_READ_FPR_Z, INSN2_READ_GPR_D): Define. - -2010-11-25 Andreas Krebbel - - * s390.h (enum s390_opcode_cpu_val): Add S390_OPCODE_MAXCPU. - -2010-11-23 Richard Sandiford - - * mips.h: Fix previous commit. - -2010-11-23 Maciej W. Rozycki - - * mips.h (INSN_CHIP_MASK): Update according to INSN_LOONGSON_3A. - (INSN_LOONGSON_3A): Clear bit 31. - -2010-11-15 Matthew Gretton-Dann - - PR gas/12198 - * arm.h (ARM_AEXT_V6M_ONLY): New define. - (ARM_AEXT_V6M): Rewrite in terms of ARM_AEXT_V6M_ONLY. - (ARM_ARCH_V6M_ONLY): New define. - -2010-11-11 Mingming Sun - - * mips.h (INSN_LOONGSON_3A): Defined. - (CPU_LOONGSON_3A): Defined. - (OPCODE_IS_MEMBER): Add LOONGSON_3A. - -2010-10-09 Matt Rice - - * cgen.h (CGEN_ATTR, CGEN_ATTR_TYPE): Rename bool attribute to bool_. - (CGEN_ATTR_BOOLS, CGEN_ATTR_CGEN_INSN_ALIAS_VALUE): Likewise. - -2010-09-23 Matthew Gretton-Dann - - * arm.h (ARM_EXT_VIRT): New define. - (ARM_ARCH_V7A_IDIV_MP_SEC): Rename... - (ARM_ARCH_V7A_IDIV_MP_SEC_VIRT): ...to this and include Virtualization - Extensions. - -2010-09-23 Matthew Gretton-Dann - - * arm.h (ARM_AEXT_ADIV): New define. - (ARM_ARCH_V7A_IDIV_MP_SEC): Likewise. - -2010-09-23 Matthew Gretton-Dann - - * arm.h (ARM_EXT_OS): New define. - (ARM_AEXT_V6SM): Likewise. - (ARM_ARCH_V6SM): Likewise. - -2010-09-23 Matthew Gretton-Dann - - * arm.h (ARM_EXT_MP): Add. - (ARM_ARCH_V7A_MP): Likewise. - -2010-09-22 Mike Frysinger - - * bfin.h: Declare pseudoChr structs/defines. - -2010-09-21 Mike Frysinger - - * bfin.h: Strip trailing whitespace. - -2010-07-29 DJ Delorie - - * rx.h (RX_Operand_Type): Add TwoReg. - (RX_Opcode_ID): Remove ediv and ediv2. - -2010-07-27 DJ Delorie - - * rx.h (RX_Opcode_ID): Add nop2 and nop3 for statistics. - -2010-07-23 Naveen.H.S - Ina Pandit - - * v850.h: Define PROCESSOR_MASK, PROCESSOR_OPTION_EXTENSION, - PROCESSOR_OPTION_ALIAS, PROCESSOR_V850E2, PROCESSOR_V850E2V3 and - PROCESSOR_V850E2_ALL. - Remove PROCESSOR_V850EA support. - (v850_operand): Define V850_OPERAND_EP, V850_OPERAND_FLOAT_CC, - V850_OPERAND_VREG, V850E_IMMEDIATE16, V850E_IMMEDIATE16HI, - V850E_IMMEDIATE23, V850E_IMMEDIATE32, V850_OPERAND_SIGNED, - V850_OPERAND_DISP, V850_PCREL, V850_REG_EVEN, V850E_PUSH_POP, - V850_NOT_IMM0, V850_NOT_SA, V850_OPERAND_BANG and - V850_OPERAND_PERCENT. - Update V850_OPERAND_SRG, V850_OPERAND_CC, V850_OPERAND_RELAX and - V850_NOT_R0. - Remove V850_OPERAND_SIGNED, V850_OPERAND_EP, V850_OPERAND_DISP - and V850E_PUSH_POP - -2010-07-06 Maciej W. Rozycki - - * mips.h (MIPS16_INSN_UNCOND_BRANCH): New macro. - (MIPS16_INSN_BRANCH): Rename to... - (MIPS16_INSN_COND_BRANCH): ... this. - -2010-07-03 Alan Modra - - * ppc.h (PPC_OPCODE_32, PPC_OPCODE_BOOKE64, PPC_OPCODE_CLASSIC): Delete. - Renumber other PPC_OPCODE defines. - -2010-07-03 Alan Modra - - * ppc.h (PPC_OPCODE_COMMON): Expand comment. - -2010-06-29 Alan Modra - - * maxq.h: Delete file. - -2010-06-14 Sebastian Andrzej Siewior - - * ppc.h (PPC_OPCODE_E500): Define. - -2010-05-26 Catherine Moore - - * opcode/mips.h (INSN_MIPS16): Remove. - -2010-04-21 Joseph Myers - - * tic6x-insn-formats.h (s_branch): Correct typo in bitmask. - -2010-04-15 Nick Clifton - - * alpha.h: Update copyright notice to use GPLv3. - * arc.h: Likewise. - * arm.h: Likewise. - * avr.h: Likewise. - * bfin.h: Likewise. - * cgen.h: Likewise. - * convex.h: Likewise. - * cr16.h: Likewise. - * cris.h: Likewise. - * crx.h: Likewise. - * d10v.h: Likewise. - * d30v.h: Likewise. - * dlx.h: Likewise. - * h8300.h: Likewise. - * hppa.h: Likewise. - * i370.h: Likewise. - * i386.h: Likewise. - * i860.h: Likewise. - * i960.h: Likewise. - * ia64.h: Likewise. - * m68hc11.h: Likewise. - * m68k.h: Likewise. - * m88k.h: Likewise. - * maxq.h: Likewise. - * mips.h: Likewise. - * mmix.h: Likewise. - * mn10200.h: Likewise. - * mn10300.h: Likewise. - * msp430.h: Likewise. - * np1.h: Likewise. - * ns32k.h: Likewise. - * or32.h: Likewise. - * pdp11.h: Likewise. - * pj.h: Likewise. - * pn.h: Likewise. - * ppc.h: Likewise. - * pyr.h: Likewise. - * rx.h: Likewise. - * s390.h: Likewise. - * score-datadep.h: Likewise. - * score-inst.h: Likewise. - * sparc.h: Likewise. - * spu-insns.h: Likewise. - * spu.h: Likewise. - * tic30.h: Likewise. - * tic4x.h: Likewise. - * tic54x.h: Likewise. - * tic80.h: Likewise. - * v850.h: Likewise. - * vax.h: Likewise. - -2010-03-25 Joseph Myers - - * tic6x-control-registers.h, tic6x-insn-formats.h, - tic6x-opcode-table.h, tic6x.h: New. - -2010-02-25 Wu Zhangjin - - * mips.h: (LOONGSON2F_NOP_INSN): New macro. - -2010-02-08 Philipp Tomsich - - * opcode/ppc.h (PPC_OPCODE_TITAN): Define. - -2010-01-14 H.J. Lu - - * ia64.h (ia64_find_opcode): Remove argument name. - (ia64_find_next_opcode): Likewise. - (ia64_dis_opcode): Likewise. - (ia64_free_opcode): Likewise. - (ia64_find_dependency): Likewise. - -2009-11-22 Doug Evans - - * cgen.h: Include bfd_stdint.h. - (CGEN_INSN_LGSINT, CGEN_INSN_LGUINT): New types. - -2009-11-18 Paul Brook - - * arm.h (FPU_VFP_V4_SP_D16, FPU_ARCH_VFP_V4_SP_D16): Define. - -2009-11-17 Paul Brook - Daniel Jacobowitz - - * arm.h (ARM_EXT_V6_DSP): Define. - (ARM_AEXT_V6T2, ARM_AEXT_NOTM): Include ARM_EXT_V6_DSP. - (ARM_AEXT_V7EM, ARM_ARCH_V7EM): Define. - -2009-11-04 DJ Delorie - - * rx.h (rx_decode_opcode) (mvtipl): Add. - (mvtcp, mvfcp, opecp): Remove. - -2009-11-02 Paul Brook - - * arm.h (FPU_VFP_EXT_V3xD, FPU_VFP_EXT_FP16, FPU_NEON_EXT_FMA, - FPU_VFP_EXT_FMA, FPU_VFP_V3xD, FPU_VFP_V4D16, FPU_VFP_V4): Define. - (FPU_ARCH_VFP_V3D16_FP16, FPU_ARCH_VFP_V3_FP16, FPU_ARCH_VFP_V3xD, - FPU_ARCH_VFP_V3xD_FP16, FPU_ARCH_VFP_V4, FPU_ARCH_VFP_V4D16, - FPU_ARCH_NEON_VFP_V4): Define. - -2009-10-23 Doug Evans - - * cgen-bitset.h: Delete, moved to ../cgen/bitset.h. - * cgen.h: Update. Improve multi-inclusion macro name. - -2009-10-02 Peter Bergner - - * ppc.h (PPC_OPCODE_476): Define. - -2009-10-01 Peter Bergner - - * ppc.h (PPC_OPCODE_A2): Rename from PPC_OPCODE_PPCA2. - -2009-09-29 DJ Delorie - - * rx.h: New file. - -2009-09-22 Peter Bergner - - * ppc.h (ppc_cpu_t): Typedef to uint64_t. - -2009-09-21 Ben Elliston - - * ppc.h (PPC_OPCODE_PPCA2): New. - -2009-09-05 Martin Thuresson - - * ia64.h (struct ia64_operand): Renamed member class to op_class. - -2009-08-29 Martin Thuresson - - * tic30.h (template): Rename type template to - insn_template. Updated code to use new name. - * tic54x.h (template): Rename type template to - insn_template. - -2009-08-20 Nick Hudson - - * hppa.h (pa_opcodes): Add a pa10 bb without FLAG_STRICT. - -2009-06-11 Anthony Green - - * moxie.h (MOXIE_F3_PCREL): Define. - (moxie_form3_opc_info): Grow. - -2009-06-06 Anthony Green - - * moxie.h (MOXIE_F1_M): Define. - -2009-04-15 Anthony Green - - * moxie.h: Created. - -2009-04-06 DJ Delorie - - * h8300.h: Add relaxation attributes to MOVA opcodes. - -2009-03-10 Alan Modra - - * ppc.h (ppc_parse_cpu): Declare. - -2009-03-02 Qinwei - - * score-inst.h (score_insn_type, score_data_type): Add Ra_I9_I5 - and _IMM11 for mbitclr and mbitset. - * score-datadep.h: Update dependency information. - -2009-02-26 Peter Bergner - - * ppc.h (PPC_OPCODE_POWER7): New. - -2009-02-06 Doug Evans - - * i386.h: Add comment regarding sse* insns and prefixes. - -2009-02-03 Sandip Matte - - * mips.h (INSN_XLR): Define. - (INSN_CHIP_MASK): Update. - (CPU_XLR): Define. - (OPCODE_IS_MEMBER): Update. - (M_MSGSND, M_MSGLD, M_MSGLD_T, M_MSGWAIT, M_MSGWAIT_T): Define. - -2009-01-28 Doug Evans - - * opcode/i386.h: Add multiple inclusion protection. - (EAX_REG_NUM,ECX_REG_NUM,EDX_REGNUM,EBX_REG_NUM,ESI_REG_NUM) - (EDI_REG_NUM): New macros. - (MODRM_MOD_FIELD,MODRM_REG_FIELD,MODRM_RM_FIELD): New macros. - (SIB_SCALE_FIELD,SIB_INDEX_FIELD,SIB_BASE_FIELD): New macros. - (REX_PREFIX_P): New macro. - -2009-01-09 Peter Bergner - - * ppc.h (struct powerpc_opcode): New field "deprecated". - (PPC_OPCODE_NOPOWER4): Delete. - -2008-11-28 Joshua Kinard - - * mips.h: Define CPU_R14000, CPU_R16000. - (OPCODE_IS_MEMBER): Include R14000, R16000 in test. - -2008-11-18 Catherine Moore - - * arm.h (FPU_NEON_FP16): New. - (FPU_ARCH_NEON_FP16): New. - -2008-11-06 Chao-ying Fu - - * mips.h: Doucument '1' for 5-bit sync type. - -2008-08-28 H.J. Lu - - * ia64.h (ia64_resource_specifier): Add IA64_RS_CR_IIB. Update - IA64_RS_CR. - -2008-08-01 Peter Bergner - - * ppc.h (PPC_OPCODE_VSX, PPC_OPERAND_VSR): New. - -2008-07-30 Michael J. Eager - - * ppc.h (PPC_OPCODE_405): Define. - (PPC_OPERAND_FSL, PPC_OPERAND_FCR, PPC_OPERAND_UDI): Define. - -2008-06-13 Peter Bergner - - * ppc.h (ppc_cpu_t): New typedef. - (struct powerpc_opcode ): Use it. - (struct powerpc_operand ): Likewise. - (struct powerpc_macro ): Likewise. - -2008-06-12 Adam Nemet - - * mips.h: Document new field descriptors +x, +X, +p, +P, +s, +S. - Update comment before MIPS16 field descriptors to mention MIPS16. - (OP_SH_BBITIND, OP_MASK_BBITIND): New bit mask and shift count for - BBIT. - (OP_SH_CINSPOS, OP_MASK_CINSPOS, OP_SH_CINSLM1, OP_MASK_CINSLM1): - New bit masks and shift counts for cins and exts. - - * mips.h: Document new field descriptors +Q. - (OP_SH_SEQI, OP_MASK_SEQI): New bit mask and shift count for SEQI. - -2008-04-28 Adam Nemet - - * mips.h (INSN_MACRO): Move it up to the pinfo macros. - (INSN2_M_FP_S, INSN2_M_FP_D): New pinfo2 macros. - -2008-04-14 Edmar Wienskoski - - * ppc.h: (PPC_OPCODE_E500MC): New. - -2008-04-03 H.J. Lu - - * i386.h (MAX_OPERANDS): Set to 5. - (MAX_MNEM_SIZE): Changed to 20. - -2008-03-28 Eric B. Weddington - - * avr.h (AVR_ISA_TINY3): Define new opcode set for attiny167. - -2008-03-09 Paul Brook - - * arm.h (FPU_VFP_EXT_D32, FPU_VFP_V3D16, FPU_ARCH_VFP_V3D16): Define. - -2008-03-04 Paul Brook - - * arm.h (ARM_EXT_V6M, ARM_EXT_BARRIER, ARM_EXT_THUMB_MSR): Define. - (ARM_AEXT_V6T2, ARM_AEXT_V7_ARM, ARM_AEXT_V7M): Use new flags. - (ARM_AEXT_V6M, ARM_ARCH_V6M): Define. - -2008-02-27 Denis Vlasenko - Nick Clifton - - PR 3134 - * h8300.h (h8_opcodes): Add an encoding for a mov.l instruction - with a 32-bit displacement but without the top bit of the 4th byte - set. - -2008-02-18 M R Swami Reddy - - * cr16.h (cr16_num_optab): Declared. - -2008-02-14 Hakan Ardo - - PR gas/2626 - * avr.h (AVR_ISA_2xxe): Define. - -2008-02-04 Adam Nemet - - * mips.h: Update copyright. - (INSN_CHIP_MASK): New macro. - (INSN_OCTEON): New macro. - (CPU_OCTEON): New macro. - (OPCODE_IS_MEMBER): Handle Octeon instructions. - -2008-01-23 Eric B. Weddington - - * avr.h (AVR_ISA_RF401): Add new opcode set for at86rf401. - -2008-01-03 Eric B. Weddington - - * avr.h (AVR_ISA_USB162): Add new opcode set. - (AVR_ISA_AVR3): Likewise. - -2007-11-29 Mark Shinwell - - * mips.h (INSN_LOONGSON_2E): New. - (INSN_LOONGSON_2F): New. - (CPU_LOONGSON_2E): New. - (CPU_LOONGSON_2F): New. - (OPCODE_IS_MEMBER): Update for Loongson-2E and -2F flags. - -2007-11-29 Mark Shinwell - - * mips.h (INSN_ISA*): Redefine certain values as an - enumeration. Update comments. - (mips_isa_table): New. - (ISA_MIPS*): Redefine to match enumeration. - (OPCODE_IS_MEMBER): Modify to correctly test new INSN_ISA* - values. - -2007-08-08 Ben Elliston - - * ppc.h (PPC_OPCODE_PPCPS): New. - -2007-07-03 Nathan Sidwell - - * m68k.h: Document j K & E. - -2007-06-29 M R Swami Reddy - - * cr16.h: New file for CR16 target. - -2007-05-02 Alan Modra - - * ppc.h (PPC_OPERAND_PLUS1): Update comment. - -2007-04-23 Nathan Sidwell - - * m68k.h (mcfisa_c): New. - (mcfusp, mcf_mask): Adjust. - -2007-04-20 Alan Modra - - * ppc.h (struct powerpc_operand): Replace "bits" with "bitm". - (num_powerpc_operands): Declare. - (PPC_OPERAND_SIGNED et al): Redefine as hex. - (PPC_OPERAND_PLUS1): Define. - -2007-03-21 H.J. Lu - - * i386.h (REX_MODE64): Renamed to ... - (REX_W): This. - (REX_EXTX): Renamed to ... - (REX_R): This. - (REX_EXTY): Renamed to ... - (REX_X): This. - (REX_EXTZ): Renamed to ... - (REX_B): This. - -2007-03-15 H.J. Lu - - * i386.h: Add entries from config/tc-i386.h and move tables - to opcodes/i386-opc.h. - -2007-03-13 H.J. Lu - - * i386.h (FloatDR): Removed. - (i386_optab): Use FloatD and FloatD|FloatR instead of FloatDR. - -2007-03-01 Alan Modra - - * spu-insns.h: Add soma double-float insns. - -2007-02-20 Thiemo Seufer - Chao-Ying Fu - - * mips.h (OP_SH_BP, OP_MASK_BP): Add support for balign instruction. - (INSN_DSPR2): Add flag for DSP R2 instructions. - (M_BALIGN): New macro. - -2007-02-14 Alan Modra - - * i386.h (i386_optab): Replace all occurrences of Seg2ShortForm - and Seg3ShortFrom with Shortform. - -2007-02-11 H.J. Lu - - PR gas/4027 - * i386.h (i386_optab): Put the real "test" before the pseudo - one. - -2007-01-08 Kazu Hirata - - * m68k.h (m68010up): OR fido_a. - -2006-12-25 Kazu Hirata - - * m68k.h (fido_a): New. - -2006-12-24 Kazu Hirata - - * m68k.h (mcfmac, mcfemac, cfloat, mcfhwdiv, mcfisa_a, - mcfisa_aa, mcfisa_b, mcfusp, mcf_mask): Double the defined - values. - -2006-11-08 H.J. Lu - - * i386.h (i386_optab): Replace CpuPNI with CpuSSE3. - -2006-10-31 Mei Ligang - - * score-inst.h (enum score_insn_type): Add Insn_internal. - -2006-10-25 Trevor Smigiel - Yukishige Shibata - Nobuhisa Fujinami - Takeaki Fukuoka - Alan Modra - - * spu-insns.h: New file. - * spu.h: New file. - -2006-10-24 Andrew Pinski - - * ppc.h (PPC_OPCODE_CELL): Define. - -2006-10-23 Dwarakanath Rajagopal - - * i386.h : Modify opcode to support for the change in POPCNT opcode - in amdfam10 architecture. - -2006-09-28 H.J. Lu - - * i386.h: Replace CpuMNI with CpuSSSE3. - -2006-09-26 Mark Shinwell - Joseph Myers - Ian Lance Taylor - Ben Elliston - - * arm.h (ARM_CEXT_IWMMXT2, ARM_ARCH_IWMMXT2): Define. - -2006-09-17 Mei Ligang - - * score-datadep.h: New file. - * score-inst.h: New file. - -2006-07-14 H.J. Lu - - * i386.h (i386_optab): Remove InvMem from maskmovq, movhlps, - movlhps, movmskps, pextrw, pmovmskb, movmskpd, maskmovdqu, - movdq2q and movq2dq. - -2006-07-10 Dwarakanath Rajagopal - Michael Meissner - - * i386.h: Add amdfam10 new instructions (SSE4a and ABM instructions). - -2006-06-12 H.J. Lu - - * i386.h (i386_optab): Add "nop" with memory reference. - -2006-06-12 H.J. Lu - - * i386.h (i386_optab): Update comment for 64bit NOP. - -2006-06-06 Ben Elliston - Anton Blanchard - - * ppc.h (PPC_OPCODE_POWER6): Define. - Adjust whitespace. - -2006-06-05 Thiemo Seufer - - * mips.h: Improve description of MT flags. - -2006-05-25 Richard Sandiford - - * m68k.h (mcf_mask): Define. - -2006-05-05 Thiemo Seufer - David Ung - - * mips.h (enum): Add macro M_CACHE_AB. - -2006-05-04 Thiemo Seufer - Nigel Stephens - David Ung - - * mips.h: Add INSN_SMARTMIPS define. - -2006-04-30 Thiemo Seufer - David Ung - - * mips.h: Defines udi bits and masks. Add description of - characters which may appear in the args field of udi - instructions. - -2006-04-26 Thiemo Seufer - - * mips.h: Improve comments describing the bitfield instruction - fields. - -2006-04-26 Julian Brown - - * arm.h (FPU_VFP_EXT_V3): Define constant. - (FPU_NEON_EXT_V1): Likewise. - (FPU_VFP_HARD): Update. - (FPU_VFP_V3): Define macro. - (FPU_ARCH_VFP_V3, FPU_ARCH_VFP_V3_PLUS_NEON_V1): Define macros. - -2006-04-07 Joerg Wunsch - - * avr.h (AVR_ISA_PWMx): New. - -2006-03-28 Nathan Sidwell - - * m68k.h (cpu_m68k, cpu_cf, cpu_m68000, cpu_m68008, cpu_m68010, - cpu_m68020, cpu_m68ec030, cpu_m68040, cpu_m68060, cpu_m68851, - cpu_m68881, cpu_m68882, cpu_cpu32, cpu_cf5200, cpu_cf5206e, - cpu_cf5208, cpu_cf521x, cpu_cf5213, cpu_cf5249, cpu_cf528x, - cpu_cf5307, cpu_cf5329, cpu_cf5407, cpu_cf547x, cpu_cf548x): Remove. - -2006-03-10 Paul Brook - - * arm.h (ARM_AEXT_V7_ARM): Include v6ZK extensions. - -2006-03-04 John David Anglin - - * hppa.h (pa_opcodes): Reorder bb opcodes so that pa10 opcodes come - first. Correct mask of bb "B" opcode. - -2006-02-27 H.J. Lu - - * i386.h (i386_optab): Support Intel Merom New Instructions. - -2006-02-24 Paul Brook - - * arm.h: Add V7 feature bits. - -2006-02-23 H.J. Lu - - * ia64.h (ia64_opnd): Add IA64_OPND_IMMU5b. - -2006-01-31 Paul Brook - Richard Earnshaw - - * arm.h: Use ARM_CPU_FEATURE. - (ARM_AEXT_*, FPU_ENDIAN_PURE, FPU_VFP_HARD): New. - (arm_feature_set): Change to a structure. - (ARM_CPU_HAS_FEATURE, ARM_MERGE_FEATURE_SETS, ARM_CLEAR_FEATURE, - ARM_FEATURE): New macros. - -2005-12-07 Hans-Peter Nilsson - - * cris.h (MOVE_M_TO_PREG_OPCODE, MOVE_M_TO_PREG_ZBITS) - (MOVE_PC_INCR_OPCODE_PREFIX, MOVE_PC_INCR_OPCODE_SUFFIX): New macros. - (ADD_PC_INCR_OPCODE): Don't define. - -2005-12-06 H.J. Lu - - PR gas/1874 - * i386.h (i386_optab): Add 64bit support for monitor and mwait. - -2005-11-14 David Ung - - * mips.h: Assign 'm'/'M' codes to MIPS16e save/restore - instructions. Define MIPS16_ALL_ARGS and MIPS16_ALL_STATICS for - save/restore encoding of the args field. - -2005-10-28 Dave Brolley - - Contribute the following changes: - 2005-02-16 Dave Brolley - - * cgen-bitset.h: Rename CGEN_ISA_MASK to CGEN_BITSET. Rename - cgen_isa_mask_* to cgen_bitset_*. - * cgen.h: Likewise. - - 2003-10-21 Richard Sandiford - - * cgen.h (CGEN_BITSET_ATTR_VALUE): Fix definition. - (CGEN_ATTR_ENTRY): Change "value" to type "unsigned". - (CGEN_CPU_TABLE): Make isas a ponter. - - 2003-09-29 Dave Brolley - - * cgen.h (CGEN_ATTR_VALUE_BITSET_TYPE): New typedef. - (CGEN_ATTR_VALUE_ENUM_TYPE): Ditto. - (CGEN_ATTR_VALUE_TYPE): Use these new typedefs. - - 2002-12-13 Dave Brolley - - * cgen.h (symcat.h): #include it. - (cgen-bitset.h): #include it. - (CGEN_ATTR_VALUE_TYPE): Now a union. - (CGEN_ATTR_VALUE): Reference macros generated in opcodes/-desc.h. - (CGEN_ATTR_ENTRY): 'value' now unsigned. - (cgen_cpu_desc): 'isas' now (CGEN_ISA_MASK*). - * cgen-bitset.h: New file. - -2005-09-30 Catherine Moore - - * bfin.h: New file. - -2005-10-24 Jan Beulich - - * ia64.h (enum ia64_opnd): Move memory operand out of set of - indirect operands. - -2005-10-16 John David Anglin - - * hppa.h (pa_opcodes): Add two fcmp opcodes. Reorder ftest opcodes. - Add FLAG_STRICT to pa10 ftest opcode. - -2005-10-12 John David Anglin - - * hppa.h (pa_opcodes): Remove lha entries. - -2005-10-08 John David Anglin - - * hppa.h (FLAG_STRICT): Revise comment. - (pa_opcode): Revise ordering rules. Add/move strict pa10 variants - before corresponding pa11 opcodes. Add strict pa10 register-immediate - entries for "fdc". - -2005-09-30 Catherine Moore - - * bfin.h: New file. - -2005-09-24 John David Anglin - - * hppa.h (pa_opcodes): Add new "fdc" and "fic" opcode entries. - -2005-09-06 Chao-ying Fu - - * mips.h (OP_SH_MT_U, OP_MASK_MT_U, OP_SH_MT_H, OP_MASK_MT_H, - OP_SH_MTACC_T, OP_MASK_MTACC_T, OP_SH_MTACC_D, OP_MASK_MTACC_D): New - define. - Document !, $, *, &, g, +t, +T operand formats for MT instructions. - (INSN_ASE_MASK): Update to include INSN_MT. - (INSN_MT): New define for MT ASE. - -2005-08-25 Chao-ying Fu - - * mips.h (OP_SH_DSPACC, OP_MASK_DSPACC, OP_SH_DSPACC_S, - OP_MASK_DSPACC_S, OP_SH_DSPSFT, OP_MASK_DSPSFT, OP_SH_DSPSFT_7, - OP_MASK_DSPSFT_7, OP_SH_SA3, OP_MASK_SA3, OP_SH_SA4, OP_MASK_SA4, - OP_SH_IMM8, OP_MASK_IMM8, OP_SH_IMM10, OP_MASK_IMM10, OP_SH_WRDSP, - OP_MASK_WRDSP, OP_SH_RDDSP, OP_MASK_RDDSP): New define. - Document 3, 4, 5, 6, 7, 8, 9, 0, :, ', @ operand formats for DSP - instructions. - (INSN_DSP): New define for DSP ASE. - -2005-08-18 Alan Modra - - * a29k.h: Delete. - -2005-08-15 Daniel Jacobowitz - - * ppc.h (PPC_OPCODE_E300): Define. - -2005-08-12 Martin Schwidefsky - - * s390.h (s390_opcode_cpu_val): Add enum for cpu type z9-109. - -2005-07-28 John David Anglin - - PR gas/336 - * hppa.h (pa_opcodes): Allow 0 immediates in PA 2.0 variants of pdtlb - and pitlb. - -2005-07-27 Jan Beulich - - * i386.h (i386_optab): Add comment to movd. Use LongMem for all - movd-s. Add NoRex64 to movq-s dealing only with mmx or xmm registers. - Add movq-s as 64-bit variants of movd-s. - -2005-07-18 John David Anglin - - * hppa.h: Fix punctuation in comment. - - * hppa.h (pa_opcode): Add rules for opcode ordering. Check first for - implicit space-register addressing. Set space-register bits on opcodes - using implicit space-register addressing. Add various missing pa20 - long-immediate opcodes. Remove various opcodes using implicit 3-bit - space-register addressing. Use "fE" instead of "fe" in various - fstw opcodes. - -2005-07-18 Jan Beulich - - * i386.h (i386_optab): Operands of aam and aad are unsigned. - -2007-07-15 H.J. Lu - - * i386.h (i386_optab): Support Intel VMX Instructions. - -2005-07-10 John David Anglin - - * hppa.h (pa_opcode): Don't set FLAG_STRICT in pa10 loads and stores. - -2005-07-05 Jan Beulich - - * i386.h (i386_optab): Add new insns. - -2005-07-01 Nick Clifton - - * sparc.h: Add typedefs to structure declarations. - -2005-06-20 H.J. Lu - - PR 1013 - * i386.h (i386_optab): Update comments for 64bit addressing on - mov. Allow 64bit addressing for mov and movq. - -2005-06-11 John David Anglin - - * hppa.h (pa_opcodes): Use cM and cX instead of cm and cx, - respectively, in various floating-point load and store patterns. - -2005-05-23 John David Anglin - - * hppa.h (FLAG_STRICT): Correct comment. - (pa_opcodes): Update load and store entries to allow both PA 1.X and - PA 2.0 mneumonics when equivalent. Entries with cache control - completers now require PA 1.1. Adjust whitespace. - -2005-05-19 Anton Blanchard - - * ppc.h (PPC_OPCODE_POWER5): Define. - -2005-05-10 Nick Clifton - - * Update the address and phone number of the FSF organization in - the GPL notices in the following files: - a29k.h, alpha.h, arc.h, arm.h, avr.h, cgen.h, convex.h, cris.h, - crx.h, d10v.h, d30v.h, dlx.h, h8300.h, hppa.h, i370.h, i386.h, - i860.h, i960.h, m68hc11.h, m68k.h, m88k.h, maxq.h, mips.h, mmix.h, - mn10200.h, mn10300.h, msp430.h, np1.h, ns32k.h, or32.h, pdp11.h, - pj.h, pn.h, ppc.h, pyr.h, s390.h, sparc.h, tic30.h, tic4x.h, - tic54x.h, tic80.h, v850.h, vax.h - -2005-05-09 Jan Beulich - - * i386.h (i386_optab): Add ht and hnt. - -2005-04-18 Mark Kettenis - - * i386.h: Insert hyphens into selected VIA PadLock extensions. - Add xcrypt-ctr. Provide aliases without hyphens. - -2005-04-13 H.J. Lu - - Moved from ../ChangeLog - - 2005-04-12 Paul Brook - * m88k.h: Rename psr macros to avoid conflicts. - - 2005-03-12 Zack Weinberg - * arm.h: Adjust comments for ARM_EXT_V4T and ARM_EXT_V5T. - Add ARM_EXT_V6T2, ARM_ARCH_V6T2, ARM_ARCH_V6KT2, ARM_ARCH_V6ZT2, - and ARM_ARCH_V6ZKT2. - - 2004-11-29 Tomer Levi - * crx.h (enum operand_type): Rename rbase_cst4 to rbase_dispu4. - Remove redundant instruction types. - (struct argument): X_op - new field. - (struct cst4_entry): Remove. - (no_op_insn): Declare. - - 2004-11-05 Tomer Levi - * crx.h (enum argtype): Rename types, remove unused types. - - 2004-10-27 Tomer Levi - * crx.h (enum reg): Rearrange registers, remove 'ccfg' and `'pc'. - (enum reg_type): Remove CRX_PC_REGTYPE, CRX_MTPR_REGTYPE. - (enum operand_type): Rearrange operands, edit comments. - replace us with ui for unsigned immediate. - replace d with disps/dispu/dispe for signed/unsigned/escaped - displacements (respectively). - replace rbase_ridx_scl2_dispu with rindex_disps for register index. - (instruction type): Add NO_TYPE_INS. - (instruction flags): Add USER_REG, CST4MAP, NO_SP, NO_RPTR. - (operand_entry): New field - 'flags'. - (operand flags): New. - - 2004-10-21 Tomer Levi - * crx.h (operand_type): Remove redundant types i3, i4, - i5, i8, i12. - Add new unsigned immediate types us3, us4, us5, us16. - -2005-04-12 Mark Kettenis - - * i386.h (i386_optab): Mark VIA PadLock instructions as ImmExt and - adjust them accordingly. - -2005-04-01 Jan Beulich - - * i386.h (i386_optab): Add rdtscp. - -2005-03-29 H.J. Lu - - * i386.h (i386_optab): Don't allow the `l' suffix for moving - between memory and segment register. Allow movq for moving between - general-purpose register and segment register. - -2005-02-09 Jan Beulich - - PR gas/707 - * i386.h (i386_optab): Add x_Suf to fbld and fbstp. Add w_Suf and - FloatMF to fldcw, fstcw, fnstcw, and the memory formas of fstsw and - fnstsw. - -2006-02-07 Nathan Sidwell - - * m68k.h (m68008, m68ec030, m68882): Remove. - (m68k_mask): New. - (cpu_m68k, cpu_cf): New. - (mcf5200, mcf5206e, mcf521x, mcf5249, mcf528x, mcf5307, mcf5407, - mcf5470, mcf5480): Rename to cpu_. Add m680x0 variants. - -2005-01-25 Alexandre Oliva - - 2004-11-10 Alexandre Oliva - * cgen.h (enum cgen_parse_operand_type): Add - CGEN_PARSE_OPERAND_SYMBOLIC. - -2005-01-21 Fred Fish - - * mips.h: Change INSN_ALIAS to INSN2_ALIAS. - Change INSN_WRITE_MDMX_ACC to INSN2_WRITE_MDMX_ACC. - Change INSN_READ_MDMX_ACC to INSN2_READ_MDMX_ACC. - -2005-01-19 Fred Fish - - * mips.h (struct mips_opcode): Add new pinfo2 member. - (INSN_ALIAS): New define for opcode table entries that are - specific instances of another entry, such as 'move' for an 'or' - with a zero operand. - (INSN_READ_MDMX_ACC): Redefine from 0 to 0x2. - (INSN_WRITE_MDMX_ACC): Redefine from 0 to 0x4. - -2004-12-09 Ian Lance Taylor - - * mips.h (CPU_RM9000): Define. - (OPCODE_IS_MEMBER): Handle CPU_RM9000. - -2004-11-25 Jan Beulich - - * i386.h: CpuNo64 mov can't reasonably have a 'q' suffix. Moves - to/from test registers are illegal in 64-bit mode. Add missing - NoRex64 to sidt. fxsave/fxrstor now allow for a 'q' suffix - (previously one had to explicitly encode a rex64 prefix). Re-enable - lahf/sahf in 64-bit mode as at least some Athlon64/Opteron steppings - support it there. Add cmpxchg16b as per Intel's 64-bit documentation. - -2004-11-23 Jan Beulich - - * i386.h (i386_optab): paddq and psubq, even in their MMX form, are - available only with SSE2. Change the MMX additions introduced by SSE - and 3DNow!A to CpuMMX2 (rather than CpuMMX). Indicate the 3DNow!A - instructions by their now designated identifier (since combining i686 - and 3DNow! does not really imply 3DNow!A). - -2004-11-19 Alan Modra - - * msp430.h (struct rcodes_s, MSP430_RLC, msp430_rcodes, - struct hcodes_s, msp430_hcodes): Move to gas/config/tc-msp430.c. - -2004-11-08 Inderpreet Singh - Vineet Sharma - - * maxq.h: New file: Disassembly information for the maxq port. - -2004-11-05 H.J. Lu - - * i386.h (i386_optab): Put back "movzb". - -2004-11-04 Hans-Peter Nilsson - - * cris.h (enum cris_insn_version_usage): Tweak formatting and - comments. Remove member cris_ver_sim. Add members - cris_ver_sim_v0_10, cris_ver_v0_10, cris_ver_v3_10, - cris_ver_v8_10, cris_ver_v10, cris_ver_v10p. - (struct cris_support_reg, struct cris_cond15): New types. - (cris_conds15): Declare. - (JUMP_PC_INCR_OPCODE_V32, BA_DWORD_OPCODE, NOP_OPCODE_COMMON) - (NOP_OPCODE_ZBITS_COMMON, LAPC_DWORD_OPCODE, LAPC_DWORD_Z_BITS) - (NOP_OPCODE_V32, NOP_Z_BITS_V32): New macros. - (NOP_Z_BITS): Define in terms of NOP_OPCODE. - (cris_imm_oprnd_size_type): New members SIZE_FIELD_SIGNED and - SIZE_FIELD_UNSIGNED. - -2004-11-04 Jan Beulich - - * i386.h (sldx_Suf): Remove. - (FP, l_FP, sl_FP, x_FP): Don't imply IgnoreSize. - (q_FP): Define, implying no REX64. - (x_FP, sl_FP): Imply FloatMF. - (i386_optab): Split reg and mem forms of moving from segment registers - so that the memory forms can ignore the 16-/32-bit operand size - distinction. Adjust a few others for Intel mode. Remove *FP uses from - all non-floating-point instructions. Unite 32- and 64-bit forms of - movsx, movzx, and movd. Adjust floating point operations for the above - changes to the *FP macros. Add DefaultSize to floating point control - insns operating on larger memory ranges. Remove left over comments - hinting at certain insns being Intel-syntax ones where the ones - actually meant are already gone. - -2004-10-07 Tomer Levi - - * crx.h: Add COPS_REG_INS - Coprocessor Special register - instruction type. - -2004-09-30 Paul Brook - - * arm.h (ARM_EXT_V6K, ARM_EXT_V6Z): Define. - (ARM_ARCH_V6K, ARM_ARCH_V6Z, ARM_ARCH_V6ZK): Define. - -2004-09-11 Theodore A. Roth - - * avr.h: Add support for - atmega48, atmega88, atmega168, attiny13, attiny2313, at90can128. - -2004-09-09 Segher Boessenkool - - * ppc.h (PPC_OPERAND_OPTIONAL): Fix comment. - -2004-08-24 Dmitry Diky - - * msp430.h (msp430_opc): Add new instructions. - (msp430_rcodes): Declare new instructions. - (msp430_hcodes): Likewise.. - -2004-08-13 Nick Clifton - - PR/301 - * h8300.h (O_JSR): Do not allow VECIND addressing for non-SX - processors. - -2004-08-30 Michal Ludvig - - * i386.h (i386_optab): Added montmul/xsha1/xsha256 insns. - -2004-07-22 H.J. Lu - - * i386.h (i386_optab): Allow cs/ds in 64bit for branch hints. - -2004-07-21 Jan Beulich - - * i386.h: Adjust instruction descriptions to better match the - specification. - -2004-07-16 Richard Earnshaw - - * arm.h: Remove all old content. Replace with architecture defines - from gas/config/tc-arm.c. - -2004-07-09 Andreas Schwab - - * m68k.h: Fix comment. - -2004-07-07 Tomer Levi - - * crx.h: New file. - -2004-06-24 Alan Modra - - * i386.h (i386_optab): Remove fildd, fistpd and fisttpd. - -2004-05-24 Peter Barada - - * m68k.h: Add 'size' to m68k_opcode. - -2004-05-05 Peter Barada - - * m68k.h: Switch from ColdFire chip name to core variant. - -2004-04-22 Peter Barada - - * m68k.h: Add mcfmac/mcfemac definitions. Update operand - descriptions for new EMAC cases. - Remove ColdFire macmw/macml/msacmw/msacmw hacks and properly - handle Motorola MAC syntax. - Allow disassembly of ColdFire V4e object files. - -2004-03-16 Alan Modra - - * ppc.h (PPC_OPERAND_GPR_0): Define. Bump other operand defines. - -2004-03-12 Jakub Jelinek - - * i386.h (i386_optab): Remove CpuNo64 from sysenter and sysexit. - -2004-03-12 Michal Ludvig - - * i386.h (i386_optab): Added xstore as an alias for xstorerng. - -2004-03-12 Michal Ludvig - - * i386.h (i386_optab): Added xstore/xcrypt insns. - -2004-02-09 Anil Paranjpe - - * h8300.h (32bit ldc/stc): Add relaxing support. - -2004-01-12 Anil Paranjpe - - * h8300.h (BITOP): Pass MEMRELAX flag. - -2004-01-09 Anil Paranjpe - - * h8300.h (BITOP): Dissallow operations on @aa:16 and @aa:32 - except for the H8S. - -For older changes see ChangeLog-9103 - -Copyright (C) 2004-2012 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - -Local Variables: -mode: change-log -left-margin: 8 -fill-column: 74 -version-control: never -End: diff --git a/include/opcode/ChangeLog-9103 b/include/opcode/ChangeLog-9103 deleted file mode 100644 index b56e7d5..0000000 --- a/include/opcode/ChangeLog-9103 +++ /dev/null @@ -1,3131 +0,0 @@ -2005-04-13 H.J. Lu - - 2003-11-18 Maciej W. Rozycki - * mips.h: Define new enum members, M_LCA_AB and M_DLCA_AB. - - 2003-04-04 Svein E. Seldal - * tic4x.h: Namespace cleanup. Replace s/c4x/tic4x - - 2002-11-16 Klee Dienes - * m88k.h (INSTAB): Remove 'next' field. - (instruction): Remove definition; replace with extern declaration - and mark as const. - - 2002-08-28 Michael Hayes - * tic4x.h: New file. - - 2002-07-25 Richard Sandiford - * mips.h (CPU_R2000): Remove. - -2003-10-21 Peter Barada - Bernardo Innocenti - - * m68k.h: Add MCFv4/MCF5528x support. - -2003-10-19 Hans-Peter Nilsson - - * mmix.h (JMP_INSN_BYTE): Define. - -2003-09-30 Chris Demetriou - - * mips.h: Document +E, +F, +G, +H, and +I operand types. - Update documentation of I, +B and +C operand types. - (INSN_ISA64R2, ISA_MIPS64R2, CPU_MIPS64R2): New defines. - (M_DEXT, M_DINS): New enum values. - -2003-09-04 Nick Clifton - - * v850.h (PROCESSOR_V850E1): Define. - -2003-08-19 Alan Modra - - * ppc.h (PPC_OPCODE_440): Define. Formatting. Use hex for other - PPC_OPCODE_* defines. - -2003-08-16 Jason Eckhardt - - * i860.h (fmov.ds): Expand as famov.ds. - (fmov.sd): Expand as famov.sd. - (pfmov.ds): Expand as pfamov.ds. - -2003-08-07 Michael Meissner - - * cgen.h: Remove PARAM macro usage in all prototypes. - (CGEN_EXTRACT_INFO): Use void * instead of PTR. - (cgen_print_fn): Ditto. - (CGEN_HW_ENTRY): Ditto. - (CGEN_MAYBE_MULTI_IFLD): Ditto. - (struct cgen_insn): Ditto. - (CGEN_CPU_TABLE): Ditto. - -2003-08-07 Alan Modra - - * alpha.h: Remove PARAMS macro. - * arc.h: Likewise. - * d10v.h: Likewise. - * d30v.h: Likewise. - * i370.h: Likewise. - * or32.h: Likewise. - * pj.h: Likewise. - * ppc.h: Likewise. - * sparc.h: Likewise. - * tic80.h: Likewise. - * v850.h: Likewise. - -2003-07-18 Michael Snyder - - * include/opcode/h8sx.h (DO_MOVA1, DO_MOVA2): Reformatting. - -2003-07-15 Richard Sandiford - - * mips.h (CPU_RM7000): New macro. - (OPCODE_IS_MEMBER): Match CPU_RM7000 against 4650 insns. - -2003-07-09 Alexandre Oliva - - 2000-04-01 Alexandre Oliva - * mn10300.h (AM33_2): Renamed from AM33. - 2000-03-31 Alexandre Oliva - * mn10300.h (AM332, FMT_D3): Defined. - (MN10300_OPERAND_FSREG, MN10300_OPERAND_FDREG): Likewise. - (MN10300_OPERAND_FPCR): Likewise. - -2003-07-01 Martin Schwidefsky - - * s390.h (s390_opcode_cpu_val): Add enum for cpu type z990. - -2003-06-25 Richard Sandiford - - * h8300.h (IMM2_NS, IMM8_NS, IMM16_NS): Remove. - (IMM8U, IMM8U_NS): Define. - (h8_opcodes): Use IMM8U_NS for mov.[wl] #xx:8,@yy. - -2003-06-25 Richard Sandiford - - * h8300.h (h8_opcodes): Fix the mov.l @(dd:32,ERs),ERd and - mov.l ERs,@(dd:32,ERd) entries. - -2003-06-23 H.J. Lu - - * i386.h (i386_optab): Support Intel Precott New Instructions. - -2003-06-10 Gary Hade - - * ppc.h (PPC_OPERAND_DQ): Define. - -2003-06-10 Richard Sandiford - - * h8300.h (IMM4_NS, IMM8_NS): New. - (h8_opcodes): Replace IMM4 with IMM4_NS in mov.b and mov.w entries. - Likewise IMM8 for mov.w and mov.l. Likewise IMM16U for mov.l. - -2003-06-03 Michael Snyder - - * h8300.h (enum h8_model): Add AV_H8S to distinguish from H8H. - (ldc): Split ccr ops from exr ops (which are only available - on H8S or H8SX). - (stc): Ditto. - (andc, orc, xorc): Ditto. - (ldmac, stmac, clrmac, mac): Change access to AV_H8S. - -2003-06-03 Michael Snyder - and Bernd Schmidt - and Alexandre Oliva - * h8300.h: Add support for h8300sx instruction set. - -2003-05-23 Jason Eckhardt - - * i860.h (expand_type): Add XP_ONLY. - (scyc.b): New XP instruction. - (ldio.l): Likewise. - (ldio.s): Likewise. - (ldio.b): Likewise. - (ldint.l): Likewise. - (ldint.s): Likewise. - (ldint.b): Likewise. - (stio.l): Likewise. - (stio.s): Likewise. - (stio.b): Likewise. - (pfld.q): Likewise. - -2003-05-20 Jason Eckhardt - - * i860.h (flush): Set lower 3 bits properly and use 'L' - for the immediate operand type instead of 'i'. - -2003-05-20 Jason Eckhardt - - * i860.h (fzchks): Both S and R bits must be set. - (pfzchks): Likewise. - (faddp): Likewise. - (pfaddp): Likewise. - (fix.ss): Remove (invalid instruction). - (pfix.ss): Likewise. - (ftrunc.ss): Likewise. - (pftrunc.ss): Likewise. - -2003-05-18 Jason Eckhardt - - * i860.h (form, pform): Add missing .dd suffix. - -2003-05-13 Stephane Carrez - - * m68hc11.h (M68HC12_BANK_VIRT): Define to 0x010000 - -2003-04-07 Michael Snyder - - * h8300.h (ldc/stc): Fix up src/dst swaps. - -2003-04-09 J. Grant - - * mips.h: Correct comment typo. - -2003-03-21 Martin Schwidefsky - - * s390.h (s390_opcode_arch_val): Rename to s390_opcode_mode_val. - (S390_OPCODE_ESAME): Rename to S390_OPCODE_ZARCH. - (s390_opcode): Remove architecture. Add modes and min_cpu. - -2003-03-17 D.Venkatasubramanian - - * h8300.h (O_SYS_CMDLINE): New pseudo opcode for command line - processing. - -2003-02-21 Noida D.Venkatasubramanian - - * h8300.h (ldmac, stmac): Replace MACREG with MS32 and MD32. - -2003-01-23 Alan Modra - - * m68hc11.h (cpu6812s): Define. - -2003-01-07 Chris Demetriou - - * mips.h: Fix missing space in comment. - (INSN_ISA1, INSN_ISA2, INSN_ISA3, INSN_ISA4, INSN_ISA5) - (INSN_ISA32, INSN_ISA32R2, INSN_ISA64): Shift values right - by four bits. - -2003-01-02 Chris Demetriou - - * mips.h: Update copyright years to include 2002 (which had - been missed previously) and 2003. Make comments about "+A", - "+B", and "+C" operand types more descriptive. - -2002-12-31 Chris Demetriou - - * mips.h: Note that the "+D" operand type name is now used. - -2002-12-30 Chris Demetriou - - * mips.h: Document "+" as the start of two-character operand - type names, and add new "K", "+A", "+B", and "+C" operand types. - (OP_MASK_INSMSB, OP_SH_INSMSB, OP_MASK_EXTMSB) - (OP_SH_EXTMSB, INSN_ISA32R2, ISA_MIPS32R2, CPU_MIPS32R2): New - defines. - -2002-12-24 Dmitry Diky - - * msp430.h: New file. Defines msp430 opcodes. - -2002-12-30 D.Venkatasubramanian - - * h8300.h: Added some more pseudo opcodes for system call - processing. - -2002-12-19 Chris Demetriou - - * mips.h (OP_OP_COP0, OP_OP_COP1, OP_OP_COP2, OP_OP_COP3) - (OP_OP_LWC1, OP_OP_LWC2, OP_OP_LWC3, OP_OP_LDC1, OP_OP_LDC2) - (OP_OP_LDC3, OP_OP_SWC1, OP_OP_SWC2, OP_OP_SWC3, OP_OP_SDC1) - (OP_OP_SDC2, OP_OP_SDC3): Define. - -2002-12-16 Alan Modra - - * hppa.h (completer_chars): #if 0 out. - - * ns32k.h (struct ns32k_opcode): Constify "name", "operands" and - "default_args". - (struct not_wot): Constify "args". - (struct not): Constify "name". - (numopcodes): Delete. - (endop): Delete. - -2002-12-13 Alan Modra - - * pj.h (pj_opc_info_t): Add union. - -2002-12-04 David Mosberger - - * ia64.h: Fix copyright message. - (IA64_OPND_AR_CSD): New operand kind. - -2002-12-03 Richard Henderson - - * ia64.h (enum ia64_opnd): Add IA64_OPND_LDXMOV. - -2002-12-03 Alan Modra - - * cgen.h (struct cgen_maybe_multi_ifield): Add "const PTR p" to union. - Constify "leaf" and "multi". - -2002-11-19 Klee Dienes - - * h8300.h (h8_opcode): Remove 'noperands', 'idx', and 'size' - fields. - (h8_opcodes). Modify initializer and initializer macros to no - longer initialize the removed fields. - -2002-11-19 Svein E. Seldal - - * tic4x.h (c4x_insts): Fixed LDHI constraint - -2002-11-18 Klee Dienes - - * h8300.h (h8_opcode): Remove 'length' field. - (h8_opcodes): Mark as 'const' (both the declaration and - definition). Modify initializer and initializer macros to no - longer initialize the length field. - -2002-11-18 Klee Dienes - - * arc.h (arc_ext_opcodes): Declare as extern. - (arc_ext_operands): Declare as extern. - * i860.h (i860_opcodes): Declare as const. - -2002-11-18 Svein E. Seldal - - * tic4x.h: File reordering. Added enhanced opcodes. - -2002-11-16 Svein E. Seldal - - * tic4x.h: Major rewrite of entire file. Define instruction - classes, and put each instruction into a class. - -2002-11-11 Svein E. Seldal - - * tic4x.h: Added new opcodes and corrected some bugs. Add support - for new DSP types. - -2002-10-14 Alan Modra - - * cgen.h: Test __BFD_H_SEEN__ rather than BFD_VERSION_DATE. - -2002-09-30 Gavin Romig-Koch - Ken Raeburn - Aldy Hernandez - Eric Christopher - Richard Sandiford - - * mips.h: Update comment for new opcodes. - (OP_MASK_VECBYTE, OP_SH_VECBYTE): New. - (OP_MASK_VECALIGN, OP_SH_VECALIGN): New. - (INSN_4111, INSN_4120, INSN_5400, INSN_5500): New. - (CPU_VR4120, CPU_VR5400, CPU_VR5500): New. - (OPCODE_IS_MEMBER): Handle the new CPU_* values and INSN_* flags. - Don't match CPU_R4111 with INSN_4100. - -2002-08-19 Elena Zannoni - - From matthew green - - * ppc.h (PPC_OPCODE_SPE): New opcode flag for Powerpc e500 - instructions. - (PPC_OPCODE_ISEL, PPC_OPCODE_BRLOCK, PPC_OPCODE_PMR, - PPC_OPCODE_CACHELCK, PPC_OPCODE_RFMCI): New opcode flags for the - e500x2 Integer select, branch locking, performance monitor, - cache locking and machine check APUs, respectively. - (PPC_OPCODE_EFS): New opcode type for efs* instructions. - (PPC_OPCODE_CLASSIC): New opcode type for Classic PowerPC instructions. - -2002-08-13 Stephane Carrez - - * m68hc11.h (M6812_OP_PAGE): Define to identify call operand. - (M68HC12_BANK_VIRT, M68HC12_BANK_MASK, M68HC12_BANK_BASE, - M68HC12_BANK_SHIFT, M68HC12_BANK_PAGE_MASK): Define for 68HC12 - memory banks. - (M6811_OC1M5, M6811_OC1M4, M6811_MODF): Fix value. - -2002-07-09 Thiemo Seufer - - * mips.h (INSN_MIPS16): New define. - -2002-07-08 Alan Modra - - * i386.h: Remove IgnoreSize from movsx and movzx. - -2002-06-08 Alan Modra - - * a29k.h: Replace CONST with const. - (CONST): Don't define. - * convex.h: Replace CONST with const. - (CONST): Don't define. - * dlx.h: Replace CONST with const. - * or32.h (CONST): Don't define. - -2002-05-30 Chris G. Demetriou - - * mips.h (OP_SH_ALN, OP_MASK_ALN, OP_SH_VSEL, OP_MASK_VSEL) - (MDMX_FMTSEL_IMM_QH, MDMX_FMTSEL_IMM_OB, MDMX_FMTSEL_VEC_QH) - (MDMX_FMTSEL_VEC_OB, INSN_READ_MDMX_ACC, INSN_WRITE_MDMX_ACC) - (INSN_MDMX): New constants, for MDMX support. - (opcode character list): Add "O", "Q", "X", "Y", and "Z" for MDMX. - -2002-05-28 Kuang Hwa Lin - - * dlx.h: New file. - -2002-05-25 Alan Modra - - * ia64.h: Use #include "" instead of <> for local header files. - * sparc.h: Likewise. - -2002-05-22 Thiemo Seufer - - * mips.h: Add M_DROL, M_DROL_I, M_DROR, M_DROR_I macro cases. - -2002-05-17 Andrey Volkov - - * h8300.h: Corrected defs of all control regs - and eepmov instr. - -2002-04-11 Alan Modra - - * i386.h: Add intel mode cmpsd and movsd. - Put them before SSE2 insns, so that rep prefix works. - -2002-03-15 Chris G. Demetriou - - * mips.h (INSN_MIPS3D): New definition used to mark MIPS-3D - instructions. - (OPCODE_IS_MEMBER): Adjust comments to indicate that ASE bit masks - may be passed along with the ISA bitmask. - -2002-03-05 Paul Koning - - * pdp11.h: Add format codes for float instruction formats. - -2002-02-25 Alan Modra - - * ppc.h (PPC_OPCODE_POWER4, PPC_OPCODE_NOPOWER4): Define. - -Mon Feb 18 17:31:48 CET 2002 Jan Hubicka - - * i386.h (push,pop): Fix Reg64 to WordReg to allow 16bit operands. - -Mon Feb 11 12:53:19 CET 2002 Jan Hubicka - - * i386.h (push,pop): Allow 16bit operands in 64bit mode. - (xchg): Fix. - (in, out): Disable 64bit operands. - (call, jmp): Avoid REX prefixes. - (jcxz): Prohibit in 64bit mode - (jrcxz, loop): Add 64bit variants. - (movq): Fix patterns. - (movmskps, pextrw, pinstrw): Add 64bit variants. - -2002-01-31 Ivan Guzvinec - - * or32.h: New file. - -2002-01-22 Graydon Hoare - - * cgen.h (CGEN_MAYBE_MULTI_IFLD): New structure. - (CGEN_OPERAND): Add CGEN_MAYBE_MULTI_IFLD field. - -2002-01-21 Thomas Klausner - - * h8300.h: Comment typo fix. - -2002-01-03 matthew green - - * ppc.h (PPC_OPCODE_BOOKE): BookE is not Motorola specific. - (PPC_OPCODE_BOOKE64): Likewise. - -Mon Dec 31 16:45:41 2001 Jeffrey A Law (law@cygnus.com) - - * hppa.h (call, ret): Move to end of table. - (addb, addib): PA2.0 variants should have been PA2.0W. - (ldw, ldh, ldb, stw, sth, stb, stwa): Reorder to keep disassembler - happy. - (fldw, fldd, fstw, fstd, bb): Likewise. - (short loads/stores): Tweak format specifier slightly to keep - disassembler happy. - (indexed loads/stores): Likewise. - (absolute loads/stores): Likewise. - -2001-12-04 Alexandre Oliva - - * d10v.h (OPERAND_NOSP): New macro. - -2001-11-29 Alexandre Oliva - - * d10v.h (OPERAND_SP): New macro. - -2001-11-15 Alan Modra - - * ppc.h (struct powerpc_operand ): Add dialect param. - -2001-11-11 Timothy Wall - - * tic54x.h: Revise opcode layout; don't really need a separate - structure for parallel opcodes. - -2001-11-13 Zack Weinberg - Alan Modra - - * i386.h (i386_optab): Add entries for "sldr", "smsw" and "str" to - accept WordReg. - -2001-11-04 Chris Demetriou - - * mips.h (OPCODE_IS_MEMBER): Remove extra space. - -2001-10-30 Hans-Peter Nilsson - - * mmix.h: New file. - -2001-10-18 Chris Demetriou - - * mips.h (OPCODE_IS_MEMBER): Add a no-op term to the end - of the expression, to make source code merging easier. - -2001-10-17 Chris Demetriou - - * mips.h: Sort coprocessor instruction argument characters - in comment, add a few more words of description for "H". - -2001-10-17 Chris Demetriou - - * mips.h (INSN_SB1): New cpu-specific instruction bit. - (OPCODE_IS_MEMBER): Allow instructions matching INSN_SB1 - if cpu is CPU_SB1. - -2001-10-17 matthew green - - * ppc.h (PPC_OPCODE_BOOKE64): Fix typo. - -2001-10-12 matthew green - - * ppc.h (PPC_OPCODE_BOOKE, PPC_OPCODE_BOOKE64, PPC_OPCODE_403): New - opcode flags for BookE 32-bit, BookE 64-bit and PowerPC 403 - instructions, respectively. - -2001-09-27 Nick Clifton - - * v850.h: Remove spurious comment. - -2001-09-21 Nick Clifton - - * h8300.h: Fix compile time warning messages - -2001-09-04 Richard Henderson - - * alpha.h (struct alpha_operand): Pack elements into bitfields. - -2001-08-31 Eric Christopher - - * mips.h: Remove CPU_MIPS32_4K. - -2001-08-27 Torbjorn Granlund - - * ppc.h (PPC_OPERAND_DS): Define. - -2001-08-25 Andreas Jaeger - - * d30v.h: Fix declaration of reg_name_cnt. - - * d10v.h: Fix declaration of d10v_reg_name_cnt. - - * arc.h: Add prototypes from opcodes/arc-opc.c. - -2001-08-16 Thiemo Seufer - - * mips.h (INSN_10000): Define. - (OPCODE_IS_MEMBER): Check for INSN_10000. - -2001-08-10 Alan Modra - - * ppc.h: Revert 2001-08-08. - -2001-08-10 Richard Sandiford - - * mips.h (INSN_GP32): Remove. - (OPCODE_IS_MEMBER): Remove gp32 parameter. - (M_MOVE): New macro identifier. - -2001-08-08 Alan Modra - - 1999-10-25 Torbjorn Granlund - * ppc.h (struct powerpc_operand): New field `reloc'. - -2001-08-01 Aldy Hernandez - - * mips.h (INSN_ISA_MASK): Nuke bits 12-15. - -2001-07-12 Jeff Johnston - - * cgen.h (CGEN_INSN): Add regex support. - (build_insn_regex): Declare. - -2001-07-11 Frank Ch. Eigler - - * cgen.h (CGEN_MACH): Add insn_chunk_bitsize field. - (cgen_cpu_desc): Ditto. - -2001-07-07 Ben Elliston - - * m88k.h: Clean up and reformat. Remove unused code. - -2001-06-14 Geoffrey Keating - - * cgen.h (cgen_keyword): Add nonalpha_chars field. - -2001-05-23 Thiemo Seufer - - * mips.h (CPU_R12000): Define. - -2001-05-23 John Healy - - * cgen.h: Increased CGEN_MAX_SYNTAX_ELEMENTS to 48. - -2001-05-15 Thiemo Seufer - - * mips.h (INSN_ISA_MASK): Define. - -2001-05-12 Alan Modra - - * i386.h (i386_optab): Second operand of cvtps2dq is an xmm reg, - not an mmx reg. Swap xmm/mmx regs on both movdq2q and movq2dq, - and use InvMem as these insns must have register operands. - -2001-05-04 Alan Modra - - * i386.h (i386_optab): Move InvMem to first operand of pmovmskb - and pextrw to swap reg/rm assignments. - -2001-04-05 Hans-Peter Nilsson - - * cris.h (enum cris_insn_version_usage): Correct comment for - cris_ver_v3p. - -2001-03-24 Alan Modra - - * i386.h (i386_optab): Correct entry for "movntdq". Add "punpcklqdq". - Add InvMem to first operand of "maskmovdqu". - -2001-03-22 Hans-Peter Nilsson - - * cris.h (ADD_PC_INCR_OPCODE): New macro. - -2001-03-21 Kazu Hirata - - * h8300.h: Fix formatting. - -2001-03-22 Alan Modra - - * i386.h (i386_optab): Add paddq, psubq. - -2001-03-19 Alan Modra - - * i386.h (REGNAM_AL, REGNAM_AX, REGNAM_EAX): Define. - -2001-02-28 Igor Shevlyakov - - * m68k.h: new defines for Coldfire V4. Update mcf to know - about mcf5407. - -2001-02-18 lars brinkhoff - - * pdp11.h: New file. - -2001-02-12 Jan Hubicka - - * i386.h (i386_optab): SSE integer converison instructions have - 64bit versions on x86-64. - -2001-02-10 Nick Clifton - - * mips.h: Remove extraneous whitespace. Formating change to allow - for future contribution. - -2001-02-09 Martin Schwidefsky - - * s390.h: New file. - -2001-02-02 Patrick Macdonald - - * cgen.h (CGEN_SYNTAX_CHAR_TYPE): Typedef as unsigned short. - (CGEN_MAX_SYNTAX_ELEMENTS): Rename from CGEN_MAX_SYNTAX_BYTES. - (CGEN_SYNTAX): Define using CGEN_MAX_SYNTAX_ELEMENTS. - -2001-01-24 Karsten Keil - - * i386.h (i386_optab): Fix swapgs - -2001-01-14 Alan Modra - - * hppa.h: Describe new '<' and '>' operand types, and tidy - existing comments. - (pa_opcodes): Add entries for missing wide mode ldi,ldo,ldw,stw. - Remove duplicate "ldw j(s,b),x". Sort some entries. - -2001-01-13 Jan Hubicka - - * i386.h (i386_optab): Fix pusha and ret templates. - -2001-01-11 Peter Targett - - * arc.h (ARC_MACH_5, ARC_MACH_6, ARC_MACH_7, ARC_MACH_8): New - definitions for masking cpu type. - (arc_ext_operand_value) New structure for storing extended - operands. - (ARC_OPERAND_*) Flags for operand values. - -2001-01-10 Jan Hubicka - - * i386.h (pinsrw): Add. - (pshufw): Remove. - (cvttpd2dq): Fix operands. - (cvttps2dq): Likewise. - (movq2q): Rename to movdq2q. - -2001-01-10 Richard Schaal - - * i386.h: Correct movnti instruction. - -2001-01-09 Jeff Johnston - - * cgen.h (CGEN_SYNTAX_CHAR_TYPE): New typedef based on max number - of operands (unsigned char or unsigned short). - (CGEN_SYNTAX): Changed to make array CGEN_SYNTAX_CHAR_TYPE. - (CGEN_SYNTAX_CHAR): Changed to cast to unsigned char. - -2001-01-05 Jan Hubicka - - * i386.h (i386_optab): Make [sml]fence template to use immext field. - -2001-01-03 Jan Hubicka - - * i386.h (i386_optab): Fix 64bit pushf template; Add instructions - introduced by Pentium4 - -2000-12-30 Jan Hubicka - - * i386.h (i386_optab): Add "rex*" instructions; - add swapgs; disable jmp/call far direct instructions for - 64bit mode; add syscall and sysret; disable registers for 0xc6 - template. Add 'q' suffixes to extendable instructions, disable - obsolete instructions, add new sign/zero extension ones. - (i386_regtab): Add extended registers. - (*Suf): Add No_qSuf. - (q_Suf, wlq_Suf, bwlq_Suf): New. - -2000-12-20 Jan Hubicka - - * i386.h (i386_optab): Replace "Imm" with "EncImm". - (i386_regtab): Add flags field. - -2000-12-12 Nick Clifton - - * mips.h: Fix formatting. - -2000-12-01 Chris Demetriou - - mips.h (OP_MASK_SYSCALL, OP_SH_SYSCALL): Delete. - (OP_MASK_CODE20, OP_SH_CODE20): Define, with values of old - OP_*_SYSCALL definitions. - (OP_SH_CODE19, OP_MASK_CODE19): Define, for use as - 19 bit wait codes. - (MIPS operand specifier comments): Remove 'm', add 'U' and - 'J', and update the meaning of 'B' so that it's more general. - - * mips.h (INSN_ISA1, INSN_ISA2, INSN_ISA3, INSN_ISA4, - INSN_ISA5): Renumber, redefine to mean the ISA at which the - instruction was added. - (INSN_ISA32): New constant. - (INSN_4650, INSN_4010, INSN_4100, INSN_3900, INSN_GP32): - Renumber to avoid new and/or renumbered INSN_* constants. - (INSN_MIPS32): Delete. - (ISA_UNKNOWN): New constant to indicate unknown ISA. - (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4, ISA_MIPS5, - ISA_MIPS32): New constants, defined to be the mask of INSN_* - constants available at that ISA level. - (CPU_UNKNOWN): New constant to indicate unknown CPU. - (CPU_4K, CPU_MIPS32_4K): Rename the former to the latter, - define it with a unique value. - (OPCODE_IS_MEMBER): Update for new ISA membership-related - constant meanings. - - * mips.h (INSN_ISA64, ISA_MIPS5, ISA_MIPS64): New - definitions. - - * mips.h (CPU_SB1): New constant. - -2000-10-20 Jakub Jelinek - - * sparc.h (enum sparc_opcode_arch_val): Add SPARC_OPCODE_ARCH_V9B. - Note that '3' is used for siam operand. - -2000-09-22 Jim Wilson - - * ia64.h (enum ia64_dependency_semantics): Add IA64_DVS_STOP. - -2000-09-13 Anders Norlander - - * mips.h: Use defines instead of hard-coded processor numbers. - (CPU_R2000, CPU_R3000, CPU_R3900, CPU_R4000, CPU_R4010, - CPU_VR4100, CPU_R4111, CPU_R4300, CPU_R4400, CPU_R4600, CPU_R4650, - CPU_R5000, CPU_R6000, CPU_R8000, CPU_R10000, CPU_MIPS32, CPU_4K, - CPU_4KC, CPU_4KM, CPU_4KP): Define.. - (OPCODE_IS_MEMBER): Use new defines. - (OP_MASK_SEL, OP_SH_SEL): Define. - (OP_MASK_CODE20, OP_SH_CODE20): Define. - Add 'P' to used characters. - Use 'H' for coprocessor select field. - Use 'm' for 20 bit breakpoint code. - Document new arg characters and add to used characters. - (INSN_MIPS32): New define for MIPS32 extensions. - (OPCODE_IS_MEMBER): Recognize MIPS32 instructions. - -2000-09-05 Alan Modra - - * hppa.h: Mention cz completer. - -2000-08-16 Jim Wilson - - * ia64.h (IA64_OPCODE_POSTINC): New. - -2000-08-15 H.J. Lu - - * i386.h: Swap the Intel syntax "movsx"/"movzx" due to the - IgnoreSize change. - -2000-08-08 Jason Eckhardt - - * i860.h: Small formatting adjustments. - -2000-07-29 Marek Michalkiewicz - - * avr.h (AVR_UNDEF_P, AVR_SKIP_P, AVR_DISP0_P): New macros. - Move related opcodes closer to each other. - Minor changes in comments, list undefined opcodes. - -2000-07-26 Dave Brolley - - * cgen.h (cgen_hw_lookup_by_num): Second parameter is unsigned. - -2000-07-22 Jason Eckhardt - - * i860.h (btne, bte, bla): Changed these opcodes - to use sbroff ('r') instead of split16 ('s'). - (J, K, L, M): New operand types for 16-bit aligned fields. - (ld.x, {p}fld.x, fst.x, pst.d): Changed these opcodes to - use I, J, K, L, M instead of just I. - (T, U): New operand types for split 16-bit aligned fields. - (st.x): Changed these opcodes to use S, T, U instead of just S. - (andh, andnoth, orh, xorh): Deleted 3-register forms as they do not - exist on the i860. - (pfgt.sd, pfle.sd): Deleted these as they do not exist on the i860. - (pfeq.ss, pfeq.dd): New opcodes. - (st.s): Fixed incorrect mask bits. - (fmlow): Fixed incorrect mask bits. - (fzchkl, pfzchkl): Fixed incorrect mask bits. - (faddz, pfaddz): Fixed incorrect mask bits. - (form, pform): Fixed incorrect mask bits. - (pfld.l): Fixed incorrect mask bits. - (fst.q): Fixed incorrect mask bits. - (all floating point opcodes): Fixed incorrect mask bits for - handling of dual bit. - -2000-07-20 Hans-Peter Nilsson - - cris.h: New file. - -2000-06-26 Marek Michalkiewicz - - * avr.h (AVR_ISA_WRAP): Remove, now assumed if not AVR_ISA_MEGA. - (AVR_ISA_ESPM): Remove, because ESPM removed in databook update. - (AVR_ISA_85xx): Remove, all uses changed back to AVR_ISA_2xxx. - (AVR_ISA_M83): Define for ATmega83, ATmega85. - (espm): Remove, because ESPM removed in databook update. - (eicall, eijmp): Move to the end of opcode table. - -2000-06-18 Stephane Carrez - - * m68hc11.h: New file for support of Motorola 68hc11. - -Fri Jun 9 21:51:50 2000 Denis Chertykov - - * avr.h: clr,lsl,rol, ... moved after add,adc, ... - -Wed Jun 7 21:39:54 2000 Denis Chertykov - - * avr.h: New file with AVR opcodes. - -Wed Apr 12 17:11:20 2000 Donald Lindsay - - * d10v.h: added ALONE attribute for d10v_opcode.exec_type. - -2000-05-23 Maciej W. Rozycki - - * i386.h: Allow d suffix on iret, and add DefaultSize modifier. - -2000-05-17 Maciej W. Rozycki - - * i386.h: Use sl_FP, not sl_Suf for fild. - -2000-05-16 Frank Ch. Eigler - - * cgen.h (CGEN_MAX_SYNTAX_BYTES): Increase to 32. Check that - it exceeds CGEN_ACTUAL_MAX_SYNTAX_BYTES, if set. - (CGEN_MAX_IFMT_OPERANDS): Increase to 16. Check that it exceeds - CGEN_ACTUAL_MAX_IFMT_OPERANDS, if set. - -2000-05-13 Alan Modra , - - * i386.h (i386_optab): Cpu686 for sysenter,sysexit,fxsave,fxrestore. - -2000-05-13 Alan Modra , - Alexander Sokolov - - * i386.h (i386_optab): Add cpu_flags for all instructions. - -2000-05-13 Alan Modra - - From Gavin Romig-Koch - * i386.h (wld_Suf): Define. Use on pushf, popf, pusha, popa. - -2000-05-04 Timothy Wall - - * tic54x.h: New. - -2000-05-03 J.T. Conklin - - * ppc.h (PPC_OPCODE_ALTIVEC): New opcode flag for vector unit. - (PPC_OPERAND_VR): New operand flag for vector registers. - -2000-05-01 Kazu Hirata - - * h8300.h (EOP): Add missing initializer. - -Fri Apr 21 15:03:37 2000 Jason Eckhardt - - * hppa.h (pa_opcodes): New opcodes for PA2.0 wide mode - forms of ld/st{b,h,w,d} and fld/fst{w,d} (16-bit displacements). - New operand types l,y,&,fe,fE,fx added to support above forms. - (pa_opcodes): Replaced usage of 'x' as source/target for - floating point double-word loads/stores with 'fx'. - -Fri Apr 21 13:20:53 2000 Richard Henderson - David Mosberger - Timothy Wall - Jim Wilson - - * ia64.h: New file. - -2000-03-27 Nick Clifton - - * d30v.h (SHORT_A1): Fix value. - (SHORT_AR): Renumber so that it is at the end of the list of short - instructions, not the end of the list of long instructions. - -2000-03-26 Alan Modra - - * i386.h: (UNIXWARE_COMPAT): Rename to SYSV386_COMPAT as the - problem isn't really specific to Unixware. - (OLDGCC_COMPAT): Define. - (i386_optab): If !OLDGCC_COMPAT, don't handle fsubp etc. with - destination %st(0). - Fix lots of comments. - -2000-03-02 J"orn Rennecke - - * d30v.h: - (SHORT_B2r, SHORT_B3, SHORT_B3r, SHORT_B3b, SHORT_B3br): Updated. - (SHORT_D1r, SHORT_D2, SHORT_D2r, SHORT_D2Br, SHORT_U): Updated. - (SHORT_F, SHORT_AF, SHORT_T, SHORT_A5, SHORT_CMP, SHORT_CMPU): Updated. - (SHORT_A1, SHORT_AA, SHORT_RA, SHORT_MODINC, SHORT_MODDEC): Updated. - (SHORT_C1, SHORT_C2, SHORT_UF, SHORT_A2, SHORT_NONE, LONG): Updated. - (LONG_U, LONG_Ur, LONG_CMP, LONG_M, LONG_M2, LONG_2, LONG_2r): Updated. - (LONG_2b, LONG_2br, LONG_D, LONG_Dr, LONG_Dbr): Updated. - -2000-02-25 Alan Modra - - * i386.h (fild, fistp): Change intel d_Suf form to fildd and - fistpd without suffix. - -2000-02-24 Nick Clifton - - * cgen.h (cgen_cpu_desc): Rename field 'flags' to - 'signed_overflow_ok_p'. - Delete prototypes for cgen_set_flags() and cgen_get_flags(). - -2000-02-24 Andrew Haley - - * cgen.h (CGEN_INSN_MACH_HAS_P): New macro. - (CGEN_CPU_TABLE): flags: new field. - Add prototypes for new functions. - -2000-02-24 Alan Modra - - * i386.h: Add some more UNIXWARE_COMPAT comments. - -2000-02-23 Linas Vepstas - - * i370.h: New file. - -2000-02-22 Chandra Chavva - - * d30v.h (FLAG_NOT_WITH_ADDSUBppp): Redefined as operation - cannot be combined in parallel with ADD/SUBppp. - -2000-02-22 Andrew Haley - - * mips.h: (OPCODE_IS_MEMBER): Add comment. - -1999-12-30 Andrew Haley - - * mips.h (OPCODE_IS_MEMBER): Add gp32 arg, which determines - whether synthetic opcodes (e.g. move) generate 32-bit or 64-bit - insns. - -2000-01-15 Alan Modra - - * i386.h: Qualify intel mode far call and jmp with x_Suf. - -1999-12-27 Alan Modra - - * i386.h: Add JumpAbsolute qualifier to all non-intel mode - indirect jumps and calls. Add FF/3 call for intel mode. - -Wed Dec 1 03:05:25 1999 Jeffrey A Law (law@cygnus.com) - - * mn10300.h: Add new operand types. Add new instruction formats. - -Wed Nov 24 20:28:58 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h (pa_opcodes): Correctly handle immediate for PA2.0 "bb" - instruction. - -1999-11-18 Gavin Romig-Koch - - * mips.h (INSN_ISA5): New. - -1999-11-01 Gavin Romig-Koch - - * mips.h (OPCODE_IS_MEMBER): New. - -1999-10-29 Nick Clifton - - * d30v.h (SHORT_AR): Define. - -1999-10-18 Michael Meissner - - * alpha.h (alpha_num_opcodes): Convert to unsigned. - (alpha_num_operands): Ditto. - -Sun Oct 10 01:46:56 1999 Jerry Quinn - - * hppa.h (pa_opcodes): Add load and store cache control to - instructions. Add ordered access load and store. - - * hppa.h (pa_opcode): Add new entries for addb and addib. - - * hppa.h (pa_opcodes): Fix cmpb and cmpib entries. - - * hppa.h (pa_opcodes): Add entries for cmpb and cmpib. - -Thu Oct 7 00:12:25 MDT 1999 Diego Novillo - - * d10v.h: Add flag RESTRICTED_NUM3 for imm3 operands. - -Thu Sep 23 07:08:38 1999 Jerry Quinn - - * hppa.h (pa_opcodes): Add "call" and "ret". Clean up "b", "bve" - and "be" using completer prefixes. - - * hppa.h (pa_opcodes): Add initializers to silence compiler. - - * hppa.h: Update comments about character usage. - -Mon Sep 20 03:55:31 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h (pa_opcodes): Fix minor thinkos introduced while cleaning - up the new fstw & bve instructions. - -Sun Sep 19 10:40:59 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h (pa_opcodes): Add remaining PA2.0 integer load/store - instructions. - - * hppa.h (pa_opcodes): Add remaining PA2.0 FP load/store instructions. - - * hppa.h (pa_opcodes): Add long offset double word load/store - instructions. - - * hppa.h (pa_opcodes): Add FLAG_STRICT variants of FP loads and - stores. - - * hppa.h (pa_opcodes): Handle PA2.0 fcnv, fcmp and ftest insns. - - * hppa.h (pa_opcodes): Finish support for PA2.0 "b" instructions. - - * hppa.h (pa_opcodes): Handle PA2.0 "bve" instructions. - - * hppa.h (pa_opcodes): Add new syntax "be" instructions. - - * hppa.h (pa_opcodes): Note use of 'M' and 'L'. - - * hppa.h (pa_opcodes): Add support for "b,l". - - * hppa.h (pa_opcodes): Add support for "b,gate". - -Sat Sep 18 11:41:16 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h (pa_opcodes): Use 'fX' for first register operand - in xmpyu. - - * hppa.h (pa_opcodes): Fix mask for probe and probei. - - * hppa.h (pa_opcodes): Fix mask for depwi. - -Tue Sep 7 13:44:25 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h (pa_opcodes): Add "addil" variant which has the %r1 as - an explicit output argument. - -Mon Sep 6 04:41:42 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h: Add strict variants of PA1.0/PA1.1 loads and stores. - Add a few PA2.0 loads and store variants. - -1999-09-04 Steve Chamberlain - - * pj.h: New file. - -1999-08-29 Alan Modra - - * i386.h (i386_regtab): Move %st to top of table, and split off - other fp reg entries. - (i386_float_regtab): To here. - -Sat Aug 28 00:25:25 1999 Jerry Quinn - - * hppa.h (pa_opcodes): Replace 'f' by 'v'. Prefix float register args - by 'f'. - - * hppa.h (pa_opcodes): Add extrd, extrw, depd, depdi, depw, depwi. - Add supporting args. - - * hppa.h: Document new completers and args. - * hppa.h (pa_opcodes): Add 64 bit patterns and pa2.0 syntax for uxor, - uaddcm, dcor, addi, add, sub, subi, shladd, rfi, and probe. Add pa2.0 - extensions for ssm, rsm, pdtlb, pitlb. Add performance instructions - pmenb and pmdis. - - * hppa.h (pa_opcodes): Add pa2.0 instructions hadd, hshl, - hshr, hsub, mixh, mixw, permh. - - * hppa.h (pa_opcodes): Change completers in instructions to - use 'c' prefix. - - * hppa.h (pa_opcodes): Add popbts, new forms of bb, havg, - hshladd, hshradd, shrpd, and shrpw instructions. Update arg comments. - - * hppa.h (pa_opcodes): Change fmpyfadd, fmpynfadd, fneg, - fnegabs to use 'I' instead of 'F'. - -1999-08-21 Alan Modra - - * i386.h: Add AMD athlon instructions, pfnacc, pfpnacc, pswapd. - Document pf2iw and pi2fw as athlon insns. Remove pswapw. - Alphabetically sort PIII insns. - -Wed Aug 18 18:14:40 1999 Doug Evans - - * cgen.h (CGEN_INSN_MACH_HAS_P): New macro. - -Fri Aug 6 09:46:35 1999 Jerry Quinn - - * hppa.h (pa_opcodes): Add 64 bit versions of or, xor, and, - and andcm. Add 32 and 64 bit version of cmpclr, cmpiclr. - - * hppa.h: Document 64 bit condition completers. - -Thu Aug 5 16:56:07 1999 Jerry Quinn - - * hppa.h (pa_opcodes): Change condition args to use '?' prefix. - -1999-08-04 Alan Modra - - * i386.h (i386_optab): Add DefaultSize modifier to all insns - that implicitly modify %esp. #undef d_Suf, x_suf, sld_suf, - sldx_suf, bwld_Suf, d_FP, x_FP, sld_FP, sldx_FP at end of table. - -Wed Jul 28 02:04:24 1999 Jerry Quinn - Jeff Law - - * hppa.h (pa_opcodes): Add "pushnom" and "pushbts". - - * hppa.h (pa_opcodes): Mark all PA2.0 opcodes with FLAG_STRICT. - - * hppa.h (pa_opcodes): Change xmpyu, fmpyfadd, - and fmpynfadd to use 'J' and 'K' instead of 'E' and 'X'. - -1999-07-13 Alan Modra - - * i386.h: Add "undocumented" AMD 3DNow! pf2iw, pi2fw, pswapw insns. - -Thu Jul 1 00:17:24 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h (struct pa_opcode): Add new field "flags". - (FLAGS_STRICT): Define. - -Fri Jun 25 04:22:04 1999 Jerry Quinn - Jeff Law - - * hppa.h (pa_opcodes): Add pa2.0 clrbts instruction. - - * hppa.h (pa_opcodes): Add entries for mfia and mtsarcm instructions. - -1999-06-23 Alan Modra - - * i386.h: Allow `l' suffix on bswap. Allow `w' suffix on arpl, - lldt, lmsw, ltr, str, verr, verw. Add FP flag to fcmov*. Add FP - flag to fcomi and friends. - -Fri May 28 15:26:11 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h (pa_opcodes): Move integer arithmetic instructions after - integer logical instructions. - -1999-05-28 Linus Nordberg - - * m68k.h: Document new formats `E', `G', `H' and new places `N', - `n', `o'. - - * m68k.h: Define mcf5206e, mcf5307, mcf. Document new format `u' - and new places `m', `M', `h'. - -Thu May 27 04:13:54 1999 Joel Sherrill (joel@OARcorp.com - - * hppa.h (pa_opcodes): Add several processor specific system - instructions. - -Wed May 26 16:57:44 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h (pa_opcodes): Add second entry for "comb", "comib", - "addb", and "addib" to be used by the disassembler. - -1999-05-12 Alan Modra - - * i386.h (ReverseModrm): Remove all occurences. - (InvMem): Add to control/debug/test mov insns, movhlps, movlhps, - movmskps, pextrw, pmovmskb, maskmovq. - Change NoSuf to FP on all MMX, XMM and AMD insns as these all - ignore the data size prefix. - - * i386.h (i386_optab, i386_regtab): Add support for PIII SIMD. - Mostly stolen from Doug Ledford - -Sat May 8 23:27:35 1999 Richard Henderson - - * ppc.h (PPC_OPCODE_64_BRIDGE): New. - -1999-04-14 Doug Evans - - * cgen.h (CGEN_ATTR): Delete member num_nonbools. - (CGEN_ATTR_TYPE): Update. - (CGEN_ATTR_MASK): Number booleans starting at 0. - (CGEN_ATTR_VALUE): Update. - (CGEN_INSN_ATTR): Update. - -Mon Apr 12 23:43:27 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h (fmpyfadd, fmpynfadd, fneg, fnegabs): New PA2.0 - instructions. - -Tue Mar 23 11:24:38 1999 Jeffrey A Law (law@cygnus.com) - - * hppa.h (bb, bvb): Tweak opcode/mask. - - -1999-03-22 Doug Evans - - * cgen.h (CGEN_ISA,CGEN_MACH): New typedefs. - (struct cgen_cpu_desc): Rename member mach to machs. New member isas. - New members word_bitsize,default_insn_bitsize,base_insn-bitsize, - min_insn_bitsize,max_insn_bitsize,isa_table,mach_table,rebuild_tables. - Delete member max_insn_size. - (enum cgen_cpu_open_arg): New enum. - (cpu_open): Update prototype. - (cpu_open_1): Declare. - (cgen_set_cpu): Delete. - -1999-03-11 Doug Evans - - * cgen.h (CGEN_HW_TABLE): Delete `num_init_entries' member. - (CGEN_OPERAND_NIL): New macro. - (CGEN_OPERAND): New member `type'. - (@arch@_cgen_operand_table): Delete decl. - (CGEN_OPERAND_INDEX,CGEN_OPERAND_TYPE,CGEN_OPERAND_ENTRY): Delete. - (CGEN_OPERAND_TABLE): New struct. - (cgen_operand_lookup_by_name,cgen_operand_lookup_by_num): Declare. - (CGEN_OPINST): Pointer to operand table entry replaced with enum. - (CGEN_CPU_TABLE): New member `isa'. Change member `operand_table', - now a CGEN_OPERAND_TABLE. Add CGEN_CPU_DESC arg to - {get,set}_{int,vma}_operand. - (@arch@_cgen_cpu_open): New arg `isa'. - (cgen_set_cpu): Ditto. - -Fri Feb 26 02:36:45 1999 Richard Henderson - - * i386.h: Fill in cmov and fcmov alternates. Add fcomi short forms. - -1999-02-25 Doug Evans - - * cgen.h (enum cgen_asm_type): Add CGEN_ASM_NONE. - (CGEN_HW_ENTRY): Delete member `next'. Change type of `type' to - enum cgen_hw_type. - (CGEN_HW_TABLE): New struct. - (hw_table): Delete declaration. - (CGEN_OPERAND): Change member hw to hw_type, change type from pointer - to table entry to enum. - (CGEN_OPINST): Ditto. - (CGEN_CPU_TABLE): Change member hw_list to hw_table. - -Sat Feb 13 14:13:44 1999 Richard Henderson - - * alpha.h (AXP_OPCODE_EV6): New. - (AXP_OPCODE_NOPAL): Include it. - -1999-02-09 Doug Evans - - * cgen.h (CGEN_CPU_DESC): Renamed from CGEN_OPCODE_DESC. - All uses updated. New members int_insn_p, max_insn_size, - parse_operand,insert_operand,extract_operand,print_operand, - sizeof_fields,set_fields_bitsize,get_int_operand,set_int_operand, - get_vma_operand,set_vma_operand,parse_handlers,insert_handlers, - extract_handlers,print_handlers. - (CGEN_ATTR): Change type of num_nonbools to unsigned int. - (CGEN_ATTR_BOOL_OFFSET): New macro. - (CGEN_ATTR_MASK): Subtract it to compute bit number. - (CGEN_ATTR_VALUE): Redo bool/nonbool attr calculation. - (cgen_opcode_handler): Renamed from cgen_base. - (CGEN_HW_ATTR_VALUE): Renamed from CGEN_HW_ATTR, all uses updated. - (CGEN_OPERAND_ATTR_VALUE): Renamed from CGEN_OPERAND_ATTR, - all uses updated. - (CGEN_OPERAND_INDEX): Rewrite to use table entry, not global. - (enum cgen_opinst_type): Renamed from cgen_operand_instance_type. - (CGEN_IFLD_ATTR_VALUE): Renamed from CGEN_IFLD_ATTR, all uses updated. - (CGEN_OPCODE,CGEN_IBASE): New types. - (CGEN_INSN): Rewrite. - (CGEN_{ASM,DIS}_HASH*): Delete. - (init_opcode_table,init_ibld_table): Declare. - (CGEN_INSN_ATTR): New type. - -Mon Feb 1 21:09:14 1999 Catherine Moore - - * i386.h (d_Suf, x_Suf, sld_Suf, sldx_Suf, bwld_Suf): Define. - (x_FP, d_FP, dls_FP, sldx_FP): Define. - Change *Suf definitions to include x and d suffixes. - (movsx): Use w_Suf and b_Suf. - (movzx): Likewise. - (movs): Use bwld_Suf. - (fld): Change ordering. Use sld_FP. - (fild): Add Intel Syntax equivalent of fildq. - (fst): Use sld_FP. - (fist): Use sld_FP. - (fstp): Use sld_FP. Add x_FP version. - (fistp): LLongMem version for Intel Syntax. - (fcom, fcomp): Use sld_FP. - (fadd, fiadd, fsub): Use sld_FP. - (fsubr): Use sld_FP. - (fmul, fimul, fdvi, fidiv, fdivr): Use sld_FP. - -1999-01-27 Doug Evans - - * cgen.h (enum cgen_mode): Add CGEN_MODE_TARGET_MAX, CGEN_MODE_INT, - CGEN_MODE_UINT. - -1999-01-16 Jeffrey A Law (law@cygnus.com) - - * hppa.h (bv): Fix mask. - -1999-01-05 Doug Evans - - * cgen.h (CGEN_ATTR_VALUE_TYPE): New typedef. - (CGEN_ATTR): Use it. - (CGEN_ATTR_TYPE,CGEN_ATTR_ENTRY): Ditto. - (CGEN_ATTR_TABLE): New member dfault. - -1998-12-30 Gavin Romig-Koch - - * mips.h (MIPS16_INSN_BRANCH): New. - -Wed Dec 9 10:38:48 1998 David Taylor - - The following is part of a change made by Edith Epstein - as part of a project to merge in - changes by HP; HP did not create ChangeLog entries. - - * hppa.h (completer_chars): list of chars to not put a space - after. - -Sun Dec 6 13:21:34 1998 Ian Lance Taylor - - * i386.h (i386_optab): Permit w suffix on processor control and - status word instructions. - -1998-11-30 Doug Evans - - * cgen.h (struct cgen_hw_entry): Delete const on attrs member. - (struct cgen_keyword_entry): Ditto. - (struct cgen_operand): Ditto. - (CGEN_IFLD): New typedef, with associated access macros. - (CGEN_IFMT): New typedef, with associated access macros. - (CGEN_IFMT): Renamed from CGEN_FORMAT. New member `iflds'. - (CGEN_IVALUE): New typedef. - (struct cgen_insn): Delete const on syntax,attrs members. - `format' now points to format data. Type of `value' is now - CGEN_IVALUE. - (struct cgen_opcode_table): New member ifld_table. - -1998-11-18 Doug Evans - - * cgen.h (cgen_extract_fn): Update type of `base_insn' arg. - (CGEN_OPERAND_INSTANCE): New member `attrs'. - (CGEN_OPERAND_INSTANCE_{ATTRS,ATTR}): New macros. - (cgen_dis_lookup_insn): Update type of `base_insn' arg. - (cgen_opcode_table): Update type of dis_hash fn. - (extract_operand): Update type of `insn_value' arg. - -Thu Oct 29 11:38:36 1998 Doug Evans - - * cgen.h (CGEN_VERSION_{MAJOR,MINOR,FIXLEVEL}): Delete. - -Tue Oct 27 08:57:59 1998 Gavin Romig-Koch - - * mips.h (INSN_MULT): Added. - -Tue Oct 20 11:31:34 1998 Alan Modra - - * i386.h (MAX_MNEM_SIZE): Rename from MAX_OPCODE_SIZE. - -Mon Oct 19 12:50:00 1998 Doug Evans - - * cgen.h (CGEN_INSN_INT): New typedef. - (CGEN_INT_INSN_P): Renamed from CGEN_INT_INSN. - (CGEN_INSN_BYTES): Renamed from cgen_insn_t. - (CGEN_INSN_BYTES_PTR): New typedef. - (CGEN_EXTRACT_INFO): New typedef. - (cgen_insert_fn,cgen_extract_fn): Update. - (cgen_opcode_table): New member `insn_endian'. - (assemble_insn,lookup_insn,lookup_get_insn_operands): Update. - (insert_operand,extract_operand): Update. - (cgen_get_insn_value,cgen_put_insn_value): Add prototypes. - -Fri Oct 9 13:38:13 1998 Doug Evans - - * cgen.h (CGEN_ATTR_BOOLS): New macro. - (struct CGEN_HW_ENTRY): New member `attrs'. - (CGEN_HW_ATTR): New macro. - (struct CGEN_OPERAND_INSTANCE): New member `name'. - (CGEN_INSN_INVALID_P): New macro. - -Mon Oct 5 00:21:07 1998 Jeffrey A Law (law@cygnus.com) - - * hppa.h: Add "fid". - -Sun Oct 4 21:00:00 1998 Alan Modra - - From Robert Andrew Dale - * i386.h (i386_optab): Add AMD 3DNow! instructions. - (AMD_3DNOW_OPCODE): Define. - -Tue Sep 22 17:53:47 1998 Nick Clifton - - * d30v.h (EITHER_BUT_PREFER_MU): Define. - -Mon Aug 10 14:09:38 1998 Doug Evans - - * cgen.h (cgen_insn): #if 0 out element `cdx'. - -Mon Aug 3 12:21:57 1998 Doug Evans - - Move all global state data into opcode table struct, and treat - opcode table as something that is "opened/closed". - * cgen.h (CGEN_OPCODE_DESC): New type. - (all fns): New first arg of opcode table descriptor. - (cgen_set_parse_operand_fn): Add prototype. - (cgen_current_machine,cgen_current_endian): Delete. - (CGEN_OPCODE_TABLE): New members mach,endian,operand_table, - parse_operand_fn,asm_hash_table,asm_hash_table_entries, - dis_hash_table,dis_hash_table_entries. - (opcode_open,opcode_close): Add prototypes. - - * cgen.h (cgen_insn): New element `cdx'. - -Thu Jul 30 21:44:25 1998 Frank Ch. Eigler - - * d30v.h (FLAG_LKR): New flag for "left-kills-right" instructions. - -Tue Jul 28 10:59:07 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.h: Add "no_match_operands" field for instructions. - (MN10300_MAX_OPERANDS): Define. - -Fri Jul 24 11:44:24 1998 Doug Evans - - * cgen.h (cgen_macro_insn_count): Declare. - -Tue Jul 21 13:12:13 1998 Doug Evans - - * cgen.h (CGEN_VERSION_{MAJOR,MINOR,FIXLEVEL}): Define. - (cgen_insert_fn,cgen_extract_fn): New arg `pc'. - (get_operand,put_operand): Replaced with get_{int,vma}_operand, - set_{int,vma}_operand. - -Fri Jun 26 11:09:06 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.h: Add "machine" field for instructions. - (MN103, AM30): Define machine types. - -Fri Jun 19 16:09:09 1998 Alan Modra - - * i386.h: Use FP, not sl_Suf, for fxsave and fxrstor. - -1998-06-18 Ulrich Drepper - - * i386.h: Add support for fxsave, fxrstor, sysenter and sysexit. - -Sat Jun 13 11:31:35 1998 Alan Modra - - * i386.h (i386_optab): Add general form of aad and aam. Add ud2a - and ud2b. - (i386_regtab): Allow cr0..7, db0..7, dr0..7, tr0..7, not just - those that happen to be implemented on pentiums. - -Tue Jun 9 12:16:01 1998 Alan Modra - - * i386.h: Change occurences of Data16 to Size16, Data32 to Size32, - IgnoreDataSize to IgnoreSize. Flag address and data size prefixes - with Size16|IgnoreSize or Size32|IgnoreSize. - -Mon Jun 8 12:15:52 1998 Alan Modra - - * i386.h (REPNE): Rename to REPNE_PREFIX_OPCODE. - (REPE): Rename to REPE_PREFIX_OPCODE. - (i386_regtab_end): Remove. - (i386_prefixtab, i386_prefixtab_end): Remove. - (i386_optab): Use NULL as sentinel rather than "" to suit rewrite - of md_begin. - (MAX_OPCODE_SIZE): Define. - (i386_optab_end): Remove. - (sl_Suf): Define. - (sl_FP): Use sl_Suf. - - * i386.h (i386_optab): Allow 16 bit displacement for `mov - mem,acc'. Combine 16 and 32 bit forms of various insns. Allow 16 - bit form of ljmp. Add IsPrefix modifier to prefixes. Add addr32, - data32, dword, and adword prefixes. - (i386_regtab): Add BaseIndex modifier to valid 16 bit base/index - regs. - -Fri Jun 5 23:42:43 1998 Alan Modra - - * i386.h (i386_regtab): Remove BaseIndex modifier from esp. - - * i386.h: Allow `l' suffix on fld, fst, fstp, fcom, fcomp with - register operands, because this is a common idiom. Flag them with - a warning. Allow illegal faddp, fsubp, fsubrp, fmulp, fdivp, - fdivrp because gcc erroneously generates them. Also flag with a - warning. - - * i386.h: Add suffix modifiers to most insns, and tighter operand - checks in some cases. Fix a number of UnixWare compatibility - issues with float insns. Merge some floating point opcodes, using - new FloatMF modifier. - (WORD_PREFIX_OPCODE): Rename to DATA_PREFIX_OPCODE for - consistency. - - * i386.h: Change occurence of ShortformW to W|ShortForm. Add - IgnoreDataSize where appropriate. - -Wed Jun 3 18:28:45 1998 Alan Modra - - * i386.h: (one_byte_segment_defaults): Remove. - (two_byte_segment_defaults): Remove. - (i386_regtab): Add BaseIndex to 32 bit regs reg_type. - -Fri May 15 15:59:04 1998 Doug Evans - - * cgen.h (cgen_hw_lookup_by_name): Renamed from cgen_hw_lookup. - (cgen_hw_lookup_by_num): Declare. - -Thu May 7 09:27:58 1998 Frank Ch. Eigler - - * mips.h (OP_{SH,MASK}_CODE2): Added "q" operand format for lower - ten bits of MIPS ISA1 "break" instruction, and for "sdbbp" - -Thu May 7 02:14:08 1998 Doug Evans - - * cgen.h (cgen_asm_init_parse): Delete. - (cgen_save_fixups,cgen_restore_fixups,cgen_swap_fixups): Delete. - (cgen_asm_record_register,cgen_asm_finish_insn): Delete. - -Mon Apr 27 10:13:11 1998 Doug Evans - - * cgen.h (CGEN_ATTR_TYPE): Delete `const', moved to uses. - (cgen_asm_finish_insn): Update prototype. - (cgen_insn): New members num, data. - (CGEN_INSN_TABLE): Members asm_hash, asm_hash_table_size, - dis_hash, dis_hash_table_size moved to ... - (CGEN_OPCODE_TABLE). Here. Renamed from CGEN_OPCODE_DATA. - All uses updated. New members asm_hash_p, dis_hash_p. - (CGEN_MINSN_EXPANSION): New struct. - (cgen_expand_macro_insn): Declare. - (cgen_macro_insn_count): Declare. - (get_insn_operands): Update prototype. - (lookup_get_insn_operands): Declare. - -Tue Apr 21 17:11:32 1998 Alan Modra - - * i386.h (i386_optab): Change iclrKludge and imulKludge to - regKludge. Add operands types for string instructions. - -Mon Apr 20 14:40:29 1998 Tom Tromey - - * i386.h (X): Renamed from `Z_' to preserve formatting of opcode - table. - -Sun Apr 19 13:54:06 1998 Tom Tromey - - * i386.h (Z_): Renamed from `_' to avoid clash with common alias - for `gettext'. - -Fri Apr 3 12:04:48 1998 Alan Modra - - * i386.h: Remove NoModrm flag from all insns: it's never checked. - Add IsString flag to string instructions. - (IS_STRING): Don't define. - (LOCK_PREFIX_OPCODE, CS_PREFIX_OPCODE, DS_PREFIX_OPCODE): Define. - (ES_PREFIX_OPCODE, FS_PREFIX_OPCODE, GS_PREFIX_OPCODE): Define. - (SS_PREFIX_OPCODE): Define. - -Mon Mar 30 21:31:56 1998 Ian Lance Taylor - - * i386.h: Revert March 24 patch; no more LinearAddress. - -Mon Mar 30 10:25:54 1998 Alan Modra - - * i386.h (i386_optab): Remove fwait (9b) from all floating point - instructions, and instead add FWait opcode modifier. Add short - form of fldenv and fstenv. - (FWAIT_OPCODE): Define. - - * i386.h (i386_optab): Change second operand constraint of `mov - sreg,reg|mem' instruction from Reg16|Mem to WordReg|WordMem to - allow legal instructions such as `movl %gs,%esi' - -Fri Mar 27 18:30:52 1998 Ian Lance Taylor - - * h8300.h: Various changes to fully bracket initializers. - -Tue Mar 24 18:32:47 1998 H.J. Lu - - * i386.h: Set LinearAddress for lidt and lgdt. - -Mon Mar 2 10:44:07 1998 Doug Evans - - * cgen.h (CGEN_BOOL_ATTR): New macro. - -Thu Feb 26 15:54:31 1998 Michael Meissner - - * d30v.h (FLAG_DELAY): New flag for delayed branches/jumps. - -Mon Feb 23 10:38:21 1998 Doug Evans - - * cgen.h (CGEN_CAT3): Delete. Use CONCAT3 now. - (cgen_insn): Record syntax and format entries here, rather than - separately. - -Tue Feb 17 21:42:56 1998 Nick Clifton - - * cgen.h (CGEN_SYNTAX_MAKE_FIELD): New macro. - -Tue Feb 17 16:00:56 1998 Doug Evans - - * cgen.h (cgen_insert_fn): Change type of result to const char *. - (cgen_parse_{signed,unsigned}_integer): Delete min,max arguments. - (CGEN_{INSN,KEYWORD,OPERAND}_NBOOL_ATTRS): Renamed from ..._MAX_ATTRS. - -Thu Feb 12 18:30:41 1998 Doug Evans - - * cgen.h (lookup_insn): New argument alias_p. - -Thu Feb 12 03:41:00 1998 J"orn Rennecke - -Fix rac to accept only a0: - * d10v.h (OPERAND_ACC): Split into: - (OPERAND_ACC0, OPERAND_ACC1) . - (OPERAND_GPR): Define. - -Wed Feb 11 17:31:53 1998 Doug Evans - - * cgen.h (CGEN_FIELDS): Define here. - (CGEN_HW_ENTRY): New member `type'. - (hw_list): Delete decl. - (enum cgen_mode): Declare. - (CGEN_OPERAND): New member `hw'. - (enum cgen_operand_instance_type): Declare. - (CGEN_OPERAND_INSTANCE): New type. - (CGEN_INSN): New member `operands'. - (CGEN_OPCODE_DATA): Make hw_list const. - (get_insn_operands,lookup_insn): Add prototypes for. - -Tue Feb 3 17:11:23 1998 Doug Evans - - * cgen.h (CGEN_INSN_MAX_ATTRS): Renamed from CGEN_MAX_INSN_ATTRS. - (CGEN_HW_ENTRY): Move `next' entry to end of struct. - (CGEN_KEYWORD_MAX_ATTRS): Renamed from CGEN_MAX_KEYWORD_ATTRS. - (CGEN_OPERAND_MAX_ATTRS): Renamed from CGEN_MAX_OPERAND_ATTRS. - -Mon Feb 2 19:19:15 1998 Ian Lance Taylor - - * cgen.h: Correct typo in comment end marker. - -Mon Feb 2 17:10:38 1998 Steve Haworth - - * tic30.h: New file. - -Thu Jan 22 17:54:56 1998 Nick Clifton - - * cgen.h: Add prototypes for cgen_save_fixups(), - cgen_restore_fixups(), and cgen_swap_fixups(). Change prototype - of cgen_asm_finish_insn() to return a char *. - -Wed Jan 14 17:21:43 1998 Nick Clifton - - * cgen.h: Formatting changes to improve readability. - -Mon Jan 12 11:37:36 1998 Doug Evans - - * cgen.h (*): Clean up pass over `struct foo' usage. - (CGEN_ATTR): Make unsigned char. - (CGEN_ATTR_TYPE): Update. - (CGEN_ATTR_{ENTRY,TABLE}): New types. - (cgen_base): Move member `attrs' to cgen_insn. - (CGEN_KEYWORD): New member `null_entry'. - (CGEN_{SYNTAX,FORMAT}): New types. - (cgen_insn): Format and syntax separated from each other. - -Tue Dec 16 15:15:52 1997 Michael Meissner - - * d30v.h (d30v_opcode): Reorder flags somewhat, add new flags for - 2 word load/store, ADDppp/SUBppp, 16/32 bit multiply. Make - flags_{used,set} long. - (d30v_operand): Make flags field long. - -Mon Dec 1 12:24:44 1997 Andreas Schwab - - * m68k.h: Fix comment describing operand types. - -Sun Nov 23 22:31:27 1997 Michael Meissner - - * d30v.h (SHORT_CMPU): Add case for cmpu instruction, and move - everything else after down. - -Tue Nov 18 18:45:14 1997 J"orn Rennecke - - * d10v.h (OPERAND_FLAG): Split into: - (OPERAND_FFLAG, OPERAND_CFLAG) . - -Thu Nov 13 11:04:24 1997 Gavin Koch - - * mips.h (struct mips_opcode): Changed comments to reflect new - field usage. - -Fri Oct 24 22:36:20 1997 Ken Raeburn - - * mips.h: Added to comments a quick-ref list of all assigned - operand type characters. - (OP_{MASK,SH}_PERFREG): New macros. - -Wed Oct 22 17:28:33 1997 Richard Henderson - - * sparc.h: Add '_' and '/' for v9a asr's. - Patch from David Miller - -Tue Oct 14 13:22:29 1997 Jeffrey A Law (law@cygnus.com) - - * h8300.h: Bit ops with absolute addresses not in the 8 bit - area are not available in the base model (H8/300). - -Thu Sep 25 13:03:41 1997 Ian Lance Taylor - - * m68k.h: Remove documentation of ` operand specifier. - -Wed Sep 24 19:00:34 1997 Ian Lance Taylor - - * m68k.h: Document q and v operand specifiers. - -Mon Sep 15 18:28:37 1997 Nick Clifton - - * v850.h (struct v850_opcode): Add processors field. - (PROCESSOR_V850, PROCESSOR_ALL): New bit constants. - (PROCESSOR_V850E, PROCESSOR_NOT_V850): New bit constants. - (PROCESSOR_V850EA): New bit constants. - -Mon Sep 15 11:29:43 1997 Ken Raeburn - - Merge changes from Martin Hunt: - - * d30v.h: Allow up to 64 control registers. Add - SHORT_A5S format. - - * d30v.h (LONG_Db): New form for delayed branches. - - * d30v.h: (LONG_Db): New form for repeati. - - * d30v.h (SHORT_D2B): New form. - - * d30v.h (SHORT_A2): New form. - - * d30v.h (OPERAND_2REG): Add new operand to indicate 2 - registers are used. Needed for VLIW optimization. - -Mon Sep 8 14:05:45 1997 Doug Evans - - * cgen.h: Move assembler interface section - up so cgen_parse_operand_result is defined for cgen_parse_address. - (cgen_parse_address): Update prototype. - -Tue Sep 2 15:32:32 1997 Nick Clifton - - * v850.h (V850_OPREAND_ADJUST_SHORT_MEMORY): Removed. - -Tue Aug 26 12:21:52 1997 Ian Lance Taylor - - * i386.h (two_byte_segment_defaults): Correct base register 5 in - modes 1 and 2 to be ss rather than ds. From Gabriel Paubert - . - - * i386.h: Set ud2 to 0x0f0b. From Gabriel Paubert - . - - * i386.h: Comment fixes for ficom[p]?{s,l} from Gabriel Paubert - . - - * i386.h (JUMP_ON_CX_ZERO): Uncomment (define again). - (JUMP_ON_ECX_ZERO): Remove commented out macro. - -Fri Aug 22 10:38:29 1997 Nick Clifton - - * v850.h (V850_NOT_R0): New flag. - -Mon Aug 18 11:05:58 1997 Nick Clifton - - * v850.h (struct v850_opcode): Remove flags field. - -Wed Aug 13 18:45:48 1997 Nick Clifton - - * v850.h (struct v850_opcode): Add flags field. - (struct v850_operand): Extend meaning of 'bits' and 'shift' - fields. - (V850E_INSTRUCTION, V850EA_INSTRUCTION): New flags. - (V850E_PUSH_POP, V850E_IMMEDIATE16, V850E_IMMEDIATE32): New flags. - -Fri Aug 8 16:58:42 1997 Doug Evans - - * arc.h: New file. - -Thu Jul 24 21:16:58 1997 Doug Evans - - * sparc.h (sparc_opcodes): Declare as const. - -Thu Jul 10 12:53:25 1997 Jeffrey A Law (law@cygnus.com) - - * mips.h (FP_S, FP_D): Define. Bitmasks indicating if an insn - uses single or double precision floating point resources. - (INSN_NO_ISA, INSN_ISA1): Define. - (cpu specific INSN macros): Tweak into bitmasks outside the range - of INSN_ISA field. - -Mon Jun 16 14:10:00 1997 H.J. Lu - - * i386.h: Fix pand opcode. - -Mon Jun 2 11:35:09 1997 Gavin Koch - - * mips.h: Widen INSN_ISA and move it to a more convenient - bit position. Add INSN_3900. - -Tue May 20 11:25:29 1997 Gavin Koch - - * mips.h (struct mips_opcode): added new field membership. - -Mon May 12 16:26:50 1997 H.J. Lu - - * i386.h (movd): only Reg32 is allowed. - - * i386.h: add fcomp and ud2. From Wayne Scott - . - -Mon May 5 17:16:21 1997 Ian Lance Taylor - - * i386.h: Add MMX instructions. - -Mon May 5 12:45:19 1997 H.J. Lu - - * i386.h: Remove W modifier from conditional move instructions. - -Mon Apr 14 14:56:58 1997 Ian Lance Taylor - - * i386.h: Change the opcodes for fsubp, fsubrp, fdivp, and fdivrp - with no arguments to match that generated by the UnixWare - assembler. - -Thu Apr 10 14:35:00 1997 Doug Evans - - * cgen.h (_cgen_assemble_insn): New arg for errmsg. - (cgen_parse_operand_fn): Declare. - (cgen_init_parse_operand): Declare. - (cgen_parse_operand): Renamed from cgen_asm_parse_operand, - new argument `want'. - (enum cgen_parse_operand_result): Renamed from cgen_asm_result. - (enum cgen_parse_operand_type): New enum. - -Sat Apr 5 13:14:05 1997 Ian Lance Taylor - - * i386.h: Revert last patch for the NON_BROKEN_OPCODES cases. - -Fri Apr 4 11:46:11 1997 Doug Evans - - * cgen.h: New file. - -Fri Apr 4 14:02:32 1997 Ian Lance Taylor - - * i386.h: Correct opcode values for fsubp, fsubrp, fdivp, and - fdivrp. - -Tue Mar 25 22:57:26 1997 Stu Grossman (grossman@critters.cygnus.com) - - * v850.h (extract): Make unsigned. - -Mon Mar 24 14:38:15 1997 Ian Lance Taylor - - * i386.h: Add iclr. - -Thu Mar 20 19:49:10 1997 Ian Lance Taylor - - * i386.h: Change DW to W for cmpxchg and xadd, since they don't - take a direction bit. - -Sat Mar 15 19:03:29 1997 H.J. Lu - - * sparc.h (sparc_opcode_lookup_arch): Use full prototype. - -Fri Mar 14 15:22:01 1997 Ian Lance Taylor - - * sparc.h: Include . Update function declarations to - use prototypes, and to use const when appropriate. - -Thu Mar 6 14:18:30 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (MN10300_OPERAND_RELAX): Define. - -Mon Feb 24 15:15:56 1997 Martin M. Hunt - - * d10v.h: Change pre_defined_registers to - d10v_predefined_registers and reg_name_cnt to d10v_reg_name_cnt. - -Sat Feb 22 21:25:00 1997 Dawn Perchik - - * mips.h: Add macros for cop0, cop1 cop2 and cop3. - Change mips_opcodes from const array to a pointer, - and change bfd_mips_num_opcodes from const int to int, - so that we can increase the size of the mips opcodes table - dynamically. - -Fri Feb 21 16:34:18 1997 Martin M. Hunt - - * d30v.h (FLAG_X): Remove unused flag. - -Tue Feb 18 17:37:20 1997 Martin M. Hunt - - * d30v.h: New file. - -Fri Feb 14 13:16:15 1997 Fred Fish - - * tic80.h (PDS_NAME): Macro to access name field of predefined symbols. - (PDS_VALUE): Macro to access value field of predefined symbols. - (tic80_next_predefined_symbol): Add prototype. - -Mon Feb 10 10:32:17 1997 Fred Fish - - * tic80.h (tic80_symbol_to_value): Change prototype to match - change in function, added class parameter. - -Thu Feb 6 17:30:15 1997 Fred Fish - - * tic80.h (TIC80_OPERAND_ENDMASK): Add for flagging TIc80 - endmask fields, which are somewhat weird in that 0 and 32 are - treated exactly the same. - -Thu Jan 30 13:46:18 1997 Fred Fish - - * tic80.h: Change all the OPERAND defines to use the form (1 << X) - rather than a constant that is 2**X. Reorder them to put bits for - operands that have symbolic names in the upper bits, so they can - be packed into an int where the lower bits contain the value that - corresponds to that symbolic name. - (predefined_symbo): Add struct. - (tic80_predefined_symbols): Declare array of translations. - (tic80_num_predefined_symbols): Declare size of that array. - (tic80_value_to_symbol): Declare function. - (tic80_symbol_to_value): Declare function. - -Wed Jan 29 09:37:25 1997 Jeffrey A Law (law@cygnus.com) - - * mn10200.h (MN10200_OPERAND_RELAX): Define. - -Sat Jan 18 15:18:59 1997 Fred Fish - - * tic80.h (TIC80_NO_R0_DEST): Add for opcodes where r0 cannot - be the destination register. - -Thu Jan 16 20:48:55 1997 Fred Fish - - * tic80.h (struct tic80_opcode): Change "format" field to "flags". - (FMT_UNUSED, FMT_SI, FMT_LI, FMT_REG): Delete. - (TIC80_VECTOR): Define a flag bit for the flags. This one means - that the opcode can have two vector instructions in a single - 32 bit word and we have to encode/decode both. - -Tue Jan 14 19:37:09 1997 Fred Fish - - * tic80.h (TIC80_OPERAND_PCREL): Renamed from - TIC80_OPERAND_RELATIVE for PC relative. - (TIC80_OPERAND_BASEREL): New flag bit for register - base relative. - -Mon Jan 13 15:56:38 1997 Fred Fish - - * tic80.h (TIC80_OPERAND_FLOAT): Add for floating point operands. - -Mon Jan 6 10:51:15 1997 Fred Fish - - * tic80.h (TIC80_OPERAND_SCALED): Operand may have optional - ":s" modifier for scaling. - -Sun Jan 5 12:12:19 1997 Fred Fish - - * tic80.h (TIC80_OPERAND_M_SI): Add operand modifier for ":m". - (TIC80_OPERAND_M_LI): Ditto - -Sat Jan 4 19:02:44 1997 Fred Fish - - * tic80.h (TIC80_OPERAND_BITNUM): Renamed from TIC80_OPERAND_CC_SZ. - (TIC80_OPERAND_CC): New define for condition code operand. - (TIC80_OPERAND_CR): New define for control register operand. - -Fri Jan 3 16:22:23 1997 Fred Fish - - * tic80.h (struct tic80_opcode): Name changed. - (struct tic80_opcode): Remove format field. - (struct tic80_operand): Add insertion and extraction functions. - (TIC80_OPERAND_*): Remove old bogus values, start adding new - correct ones. - (FMT_*): Ditto. - -Tue Dec 31 15:05:41 1996 Michael Meissner - - * v850.h (V850_OPERAND_ADJUST_SHORT_MEMORY): New flag to adjust - type IV instruction offsets. - -Fri Dec 27 22:23:10 1996 Fred Fish - - * tic80.h: New file. - -Wed Dec 18 10:06:31 1996 Jeffrey A Law (law@cygnus.com) - - * mn10200.h (MN10200_OPERAND_NOCHECK): Define. - -Sat Dec 14 10:48:31 1996 Fred Fish - - * mn10200.h: Fix comment, mn10200_operand not powerpc_operand. - * mn10300.h: Fix comment, mn10300_operand not powerpc_operand. - * v850.h: Fix comment, v850_operand not powerpc_operand. - -Mon Dec 9 16:45:39 1996 Jeffrey A Law (law@cygnus.com) - - * mn10200.h: Flesh out structures and definitions needed by - the mn10200 assembler & disassembler. - -Tue Nov 26 10:46:56 1996 Ian Lance Taylor - - * mips.h: Add mips16 definitions. - -Mon Nov 25 17:56:54 1996 J.T. Conklin - - * m68k.h: Document new <, >, m, n, o and p operand specifiers. - -Wed Nov 20 10:59:41 1996 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (MN10300_OPERAND_PCREL): Define. - (MN10300_OPERAND_MEMADDR): Define. - -Tue Nov 19 13:30:40 1996 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (MN10300_OPERAND_REG_LIST): Define. - -Wed Nov 6 13:41:08 1996 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (MN10300_OPERAND_SPLIT): Define. - -Tue Nov 5 13:26:12 1996 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (MN10300_OPERAND_EXTENDED): Define. - -Mon Nov 4 12:52:48 1996 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (MN10300_OPERAND_REPEATED): Define. - -Fri Nov 1 10:31:02 1996 Richard Henderson - - * alpha.h: Don't include "bfd.h"; private relocation types are now - negative to minimize problems with shared libraries. Organize - instruction subsets by AMASK extensions and PALcode - implementation. - (struct alpha_operand): Move flags slot for better packing. - -Tue Oct 29 12:19:10 1996 Jeffrey A Law (law@cygnus.com) - - * v850.h (V850_OPERAND_RELAX): New operand flag. - -Thu Oct 10 14:29:11 1996 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (FMT_*): Move operand format definitions - here. - -Tue Oct 8 14:48:07 1996 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (MN10300_OPERAND_PAREN): Define. - -Mon Oct 7 16:52:11 1996 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (mn10300_opcode): Add "format" field. - (MN10300_OPERAND_*): Define. - -Thu Oct 3 10:33:46 1996 Jeffrey A Law (law@cygnus.com) - - * mn10x00.h: Delete. - * mn10200.h, mn10300.h: New files. - -Wed Oct 2 21:31:26 1996 Jeffrey A Law (law@cygnus.com) - - * mn10x00.h: New file. - -Fri Sep 27 18:26:46 1996 Stu Grossman (grossman@critters.cygnus.com) - - * v850.h: Add new flag to indicate this instruction uses a PC - displacement. - -Fri Sep 13 14:58:13 1996 Jeffrey A Law (law@cygnus.com) - - * h8300.h (stmac): Add missing instruction. - -Sat Aug 31 16:02:03 1996 Jeffrey A Law (law@cygnus.com) - - * v850.h (v850_opcode): Remove "size" field. Add "memop" - field. - -Fri Aug 23 10:39:08 1996 Jeffrey A Law (law@cygnus.com) - - * v850.h (V850_OPERAND_EP): Define. - - * v850.h (v850_opcode): Add size field. - -Thu Aug 22 16:51:25 1996 J.T. Conklin - - * v850.h (v850_operands): Add insert and extract fields, pointers - to functions used to handle unusual operand encoding. - (V850_OPERAND_REG, V850_OPERAND_SRG, V850_OPERAND_CC, - V850_OPERAND_SIGNED): Defined. - -Wed Aug 21 17:45:10 1996 J.T. Conklin - - * v850.h (v850_operands): Add flags field. - (OPERAND_REG, OPERAND_NUM): Defined. - -Tue Aug 20 14:52:02 1996 J.T. Conklin - - * v850.h: New file. - -Fri Aug 16 14:44:15 1996 James G. Smith - - * mips.h (OP_SH_LOCC, OP_SH_HICC, OP_MASK_CC, OP_SH_COP1NORM, - OP_MASK_COP1NORM, OP_SH_COP1SPEC, OP_MASK_COP1SPEC, - OP_MASK_COP1SCLR, OP_MASK_COP1CMP, OP_SH_COP1CMP, OP_SH_FORMAT, - OP_MASK_FORMAT, OP_SH_TRUE, OP_MASK_TRUE, OP_SH_GE, OP_MASK_GE, - OP_SH_UNSIGNED, OP_MASK_UNSIGNED, OP_SH_HINT, OP_MASK_HINT): - Defined. - -Fri Aug 16 00:15:15 1996 Jeffrey A Law (law@cygnus.com) - - * hppa.h (pitlb, pitlbe, iitlba, iitlbp, fic, fice): Accept - a 3 bit space id instead of a 2 bit space id. - -Thu Aug 15 13:11:46 1996 Martin M. Hunt - - * d10v.h: Add some additional defines to support the - assembler in determining which operations can be done in parallel. - -Tue Aug 6 11:13:22 1996 Jeffrey A Law (law@cygnus.com) - - * h8300.h (SN): Define. - (eepmov.b): Renamed from "eepmov" - (nop, bpt, rte, rts, sleep, clrmac): These have no size associated - with them. - -Fri Jul 26 11:47:10 1996 Martin M. Hunt - - * d10v.h (OPERAND_SHIFT): New operand flag. - -Thu Jul 25 12:06:22 1996 Martin M. Hunt - - * d10v.h: Changes for divs, parallel-only instructions, and - signed numbers. - -Mon Jul 22 11:21:15 1996 Martin M. Hunt - - * d10v.h (pd_reg): Define. Putting the definition here allows - the assembler and disassembler to share the same struct. - -Mon Jul 22 12:15:25 1996 Ian Lance Taylor - - * i960.h (i960_opcodes): "halt" takes an argument. From Stephen - Williams . - -Wed Jul 17 14:46:38 1996 Martin M. Hunt - - * d10v.h: New file. - -Thu Jul 11 12:09:15 1996 Jeffrey A Law (law@cygnus.com) - - * h8300.h (band, bclr): Force high bit of immediate nibble to zero. - -Wed Jul 3 14:30:12 1996 J.T. Conklin - - * m68k.h (mcf5200): New macro. - Document names of coldfire control registers. - -Tue Jul 2 23:05:45 1996 Jeffrey A Law (law@cygnus.com) - - * h8300.h (SRC_IN_DST): Define. - - * h8300.h (UNOP3): Mark the register operand in this insn - as a source operand, not a destination operand. - (SHIFT_2, SHIFT_IMM): Remove. Eliminate all references. - (UNOP3): Change SHIFT_IMM to IMM for H8/S bitops. Mark - register operand with SRC_IN_DST. - -Fri Jun 21 13:52:17 1996 Richard Henderson - - * alpha.h: New file. - -Thu Jun 20 15:02:57 1996 Ian Lance Taylor - - * rs6k.h: Remove obsolete file. - -Wed Jun 19 15:29:38 1996 Ian Lance Taylor - - * i386.h: Correct opcode values for faddp, fsubp, fsubrp, fmulp, - fdivp, and fdivrp. Add ffreep. - -Tue Jun 18 16:06:00 1996 Jeffrey A. Law - - * h8300.h: Reorder various #defines for readability. - (ABS32SRC, ABS32DST, DSP32LIST, ABS32LIST, A32LIST): Define. - (BITOP): Accept additional (unused) argument. All callers changed. - (EBITOP): Likewise. - (O_LAST): Bump. - (ldc, stc, movb, movw, movl): Use 32bit offsets and absolutes. - - * h8300.h (EXR, SHIFT_2, MACREG, SHIFT_IMM, RDINC): Define. - (O_TAS, O_CLRMAC, O_LDMAC, O_MAC, O_LDM, O_STM): Define. - (BITOP, EBITOP): Handle new H8/S addressing modes for - bit insns. - (UNOP3): Handle new shift/rotate insns on the H8/S. - (insns using exr): New instructions. - (tas, mac, ldmac, clrmac, ldm, stm): New instructions. - -Thu May 23 16:56:48 1996 Jeffrey A Law (law@cygnus.com) - - * h8300.h (add.l): Undo Apr 5th change. The manual I had - was incorrect. - -Mon May 6 23:38:22 1996 Jeffrey A Law (law@cygnus.com) - - * h8300.h (START): Remove. - (MEMRELAX): Define. Mark absolute memory operands in mov.b, mov.w - and mov.l insns that can be relaxed. - -Tue Apr 30 18:30:58 1996 Ian Lance Taylor - - * i386.h: Remove Abs32 from lcall. - -Mon Apr 22 17:09:23 1996 Doug Evans - - * sparc.h (SPARC_OPCODE_ARCH_V9_P): New macro. - (SLCPOP): New macro. - Mark X,Y opcode letters as in use. - -Thu Apr 11 17:28:18 1996 Ian Lance Taylor - - * sparc.h (F_FLOAT, F_FBR): Define. - -Fri Apr 5 16:55:34 1996 Jeffrey A Law (law@cygnus.com) - - * h8300.h (ABS8MEM): Renamed from ABSMOV. Remove ABSMOV - from all insns. - (ABS8SRC,ABS8DST): Add ABS8MEM. - (add.l): Fix reg+reg variant. - (eepmov.w): Renamed from eepmovw. - (ldc,stc): Fix many cases. - -Sun Mar 31 13:30:03 1996 Doug Evans - - * sparc.h (SPARC_OPCODE_ARCH_MASK): New macro. - -Thu Mar 7 15:08:23 1996 Doug Evans - - * sparc.h (O): Mark operand letter as in use. - -Tue Feb 20 20:46:21 1996 Doug Evans - - * sparc.h (sparc_{encode,decode}_sparclet_cpreg): Declare. - Mark operand letters uU as in use. - -Mon Feb 19 01:59:08 1996 Doug Evans - - * sparc.h (sparc_opcode_arch_val): Add SPARC_OPCODE_ARCH_SPARCLET. - (sparc_opcode_arch): Delete member `conflicts'. Add `supported'. - (SPARC_OPCODE_SUPPORTED): New macro. - (SPARC_OPCODE_CONFLICT_P): Rewrite. - (F_NOTV9): Delete. - -Fri Feb 16 12:23:34 1996 Jeffrey A Law (law@cygnus.com) - - * sparc.h (sparc_opcode_lookup_arch) Make return type in - declaration consistent with return type in definition. - -Wed Feb 14 18:14:11 1996 Alan Modra - - * i386.h (i386_optab): Remove Data32 from pushf and popf. - -Thu Feb 8 14:27:21 1996 James Carlson - - * i386.h (i386_regtab): Add 80486 test registers. - -Mon Feb 5 18:35:46 1996 Ian Lance Taylor - - * i960.h (I_HX): Define. - (i960_opcodes): Add HX instruction. - -Mon Jan 29 12:43:39 1996 Ken Raeburn - - * i386.h: Fix waiting forms of finit, fstenv, fsave, fstsw, fstcw, - and fclex. - -Wed Jan 24 22:36:59 1996 Doug Evans - - * sparc.h (enum sparc_opcode_arch_val): Replaces sparc_architecture. - (SPARC_OPCODE_CONFLICT_P): Renamed from ARCHITECTURES_CONFLICT_P. - (bfd_* defines): Delete. - (sparc_opcode_archs): Replaces architecture_pname. - (sparc_opcode_lookup_arch): Declare. - (NUMOPCODES): Delete. - -Mon Jan 22 08:24:32 1996 Doug Evans - - * sparc.h (enum sparc_architecture): Add v9a. - (ARCHITECTURES_CONFLICT_P): Update. - -Thu Dec 28 13:27:53 1995 John Hassey - - * i386.h: Added Pentium Pro instructions. - -Thu Nov 2 22:59:22 1995 Ian Lance Taylor - - * m68k.h: Document new 'W' operand place. - -Tue Oct 24 10:49:10 1995 Jeffrey A Law (law@cygnus.com) - - * hppa.h: Add lci and syncdma instructions. - -Mon Oct 23 11:09:16 1995 James G. Smith - - * mips.h: Added INSN_4100 flag to mark NEC VR4100 specific - instructions. - -Mon Oct 16 10:28:15 1995 Michael Meissner - - * ppc.h (PPC_OPCODE_{COMMON,ANY}): New opcode flags for - assembler's -mcom and -many switches. - -Wed Oct 11 16:56:33 1995 Ken Raeburn - - * i386.h: Fix cmpxchg8b extension opcode description. - -Thu Oct 5 18:03:36 1995 Ken Raeburn - - * i386.h: Add Pentium instructions wrmsr, rdtsc, rdmsr, cmpxchg8b, - and register cr4. - -Tue Sep 19 15:26:43 1995 Ian Lance Taylor - - * m68k.h: Change comment: split type P into types 0, 1 and 2. - -Wed Aug 30 13:50:55 1995 Doug Evans - - * sparc.h (sparc_{encode,decode}_prefetch): Declare. - -Tue Aug 29 15:34:58 1995 Doug Evans - - * sparc.h (sparc_{encode,decode}_{asi,membar}): Declare. - -Wed Aug 2 18:32:19 1995 Ian Lance Taylor - - * m68kmri.h: Remove. - - * m68k.h: Move tables into opcodes/m68k-opc.c, leaving just the - declarations. Remove F_ALIAS and flag field of struct - m68k_opcode. Change arch field of struct m68k_opcode to unsigned - int. Make name and args fields of struct m68k_opcode const. - -Wed Aug 2 08:16:46 1995 Doug Evans - - * sparc.h (F_NOTV9): Define. - -Tue Jul 11 14:20:42 1995 Jeff Spiegel - - * mips.h (INSN_4010): Define. - -Wed Jun 21 18:49:51 1995 Ken Raeburn - - * m68k.h (TBL1): Reverse sense of "round" argument in result. - - Changes from Andreas Schwab : - * m68k.h: Fix argument descriptions of coprocessor - instructions to allow only alterable operands where appropriate. - [!NO_DEFAULT_SIZES]: An omitted size defaults to `w'. - (m68k_opcode_aliases): Add more aliases. - -Fri Apr 14 22:15:34 1995 Ken Raeburn - - * m68k.h: Added explcitly short-sized conditional branches, and a - bunch of aliases (fmov*, ftest*, tdivul) to support gcc's - svr4-based configurations. - -Mon Mar 13 21:30:01 1995 Ken Raeburn - - Mon Feb 27 08:36:39 1995 Bryan Ford - * i386.h: added missing Data16/Data32 flags to a few instructions. - -Wed Mar 8 15:19:53 1995 Ian Lance Taylor - - * mips.h (OP_MASK_FR, OP_SH_FR): Define. - (OP_MASK_BCC, OP_SH_BCC): Define. - (OP_MASK_PREFX, OP_SH_PREFX): Define. - (OP_MASK_CCC, OP_SH_CCC): Define. - (INSN_READ_FPR_R): Define. - (INSN_RFE): Delete. - -Wed Mar 8 03:13:23 1995 Ken Raeburn - - * m68k.h (enum m68k_architecture): Deleted. - (struct m68k_opcode_alias): New type. - (m68k_opcodes): Now const. Deleted opcode aliases with exactly - matching constraints, values and flags. As a side effect of this, - the MOTOROLA_SYNTAX_ONLY and MIT_SYNTAX_ONLY macros, which so far - as I know were never used, now may need re-examining. - (numopcodes): Now const. - (m68k_opcode_aliases, numaliases): New variables. - (endop): Deleted. - [DONT_DEFINE_TABLE]: Declare numopcodes, numaliases, and - m68k_opcode_aliases; update declaration of m68k_opcodes. - -Mon Mar 6 10:02:00 1995 Jeff Law (law@snake.cs.utah.edu) - - * hppa.h (delay_type): Delete unused enumeration. - (pa_opcode): Replace unused delayed field with an architecture - field. - (pa_opcodes): Mark each instruction as either PA1.0 or PA1.1. - -Fri Mar 3 16:10:24 1995 Ian Lance Taylor - - * mips.h (INSN_ISA4): Define. - -Fri Feb 24 19:13:37 1995 Ian Lance Taylor - - * mips.h (M_DLA_AB, M_DLI): Define. - -Thu Feb 23 17:33:09 1995 Jeff Law (law@snake.cs.utah.edu) - - * hppa.h (fstwx): Fix single-bit error. - -Wed Feb 15 12:19:52 1995 Ian Lance Taylor - - * mips.h (M_ULD, M_ULD_A, M_USD, M_USD_A): Define. - -Mon Feb 6 10:35:23 1995 J.T. Conklin - - * i386.h: added cpuid instruction , and dr[0-7] aliases for the - debug registers. From Charles Hannum (mycroft@netbsd.org). - -Mon Feb 6 03:31:54 1995 Ken Raeburn - - Changes from Bryan Ford for 16-bit - i386 support: - * i386.h (MOV_AX_DISP32): New macro. - (i386_optab): Added Data16 and Data32 as needed. Added "w" forms - of several call/return instructions. - (ADDR_PREFIX_OPCODE): New macro. - -Mon Jan 23 16:45:43 1995 Ken Raeburn - - Sat Jan 21 17:50:38 1995 Pat Rankin (rankin@eql.caltech.edu) - - * vax.h (struct vot_wot, field `args'): Make it pointer to const - char. - (struct vot, field `name'): ditto. - -Thu Jan 19 14:47:53 1995 Ken Raeburn - - * vax.h: Supply and properly group all values in end sentinel. - -Tue Jan 17 10:55:30 1995 Ian Lance Taylor - - * mips.h (INSN_ISA, INSN_4650): Define. - -Wed Oct 19 13:34:17 1994 Ian Lance Taylor - - * a29k.h: Add operand type 'I' for `inv' and `iretinv'. On - systems with a separate instruction and data cache, such as the - 29040, these instructions take an optional argument. - -Wed Sep 14 17:44:20 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) - - * mips.h (INSN_STORE_MEMORY): Correct value to not conflict with - INSN_TRAP. - -Tue Sep 6 11:39:08 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) - - * mips.h (INSN_STORE_MEMORY): Define. - -Thu Jul 28 19:28:07 1994 Ken Raeburn (raeburn@cujo.cygnus.com) - - * sparc.h: Document new operand type 'x'. - -Tue Jul 26 17:48:05 1994 Ken Raeburn (raeburn@cujo.cygnus.com) - - * i960.h (I_CX2): New instruction category. It includes - instructions available on Cx and Jx processors. - (I_JX): New instruction category, for JX-only instructions. - (i960_opcodes): Put eshro and sysctl in I_CX2 category. Added - Jx-only instructions, in I_JX category. - -Wed Jul 13 18:43:47 1994 Ken Raeburn (raeburn@cujo.cygnus.com) - - * ns32k.h (endop): Made pointer const too. - -Sun Jul 10 11:01:09 1994 Ian Dall (dall@hfrd.dsto.gov.au) - - * ns32k.h: Drop Q operand type as there is no correct use - for it. Add I and Z operand types which allow better checking. - -Thu Jul 7 12:34:48 1994 Steve Chamberlain (sac@jonny.cygnus.com) - - * h8300.h (xor.l) :fix bit pattern. - (L_2): New size of operand. - (trapa): Use it. - -Fri Jun 10 16:38:11 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * m68k.h: Move "trap" before "tpcc" to change disassembly. - -Fri Jun 3 15:57:36 1994 Ken Raeburn (raeburn@cujo.cygnus.com) - - * sparc.h: Include v9 definitions. - -Thu Jun 2 12:23:17 1994 Ken Raeburn (raeburn@cujo.cygnus.com) - - * m68k.h (m68060): Defined. - (m68040up, mfloat, mmmu): Include it. - (struct m68k_opcode): Widen `arch' field. - (m68k_opcodes): Updated for M68060. Removed comments that were - instructions commented out by "JF" years ago. - -Thu Apr 28 18:31:14 1994 Ken Raeburn (raeburn@cujo.cygnus.com) - - * m68k.h (struct m68k_opcode): Shorten `arch' field to 8 bits, and - add a one-bit `flags' field. - (F_ALIAS): New macro. - -Wed Apr 27 11:29:52 1994 Steve Chamberlain (sac@cygnus.com) - - * h8300.h (dec, inc): Get encoding right. - -Mon Apr 4 13:12:43 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ppc.h (struct powerpc_operand): Removed signedp field; just use - a flag instead. - (PPC_OPERAND_SIGNED): Define. - (PPC_OPERAND_SIGNOPT): Define. - -Thu Mar 31 19:34:08 1994 Ken Raeburn (raeburn@cujo.cygnus.com) - - * i386.h (IS_JUMP_ON_ECX_ZERO, "jcxz" pattern): Operand size - prefix is 0x66, not 0x67. Patch from H.J. Lu (hlu@nynexst.com). - -Thu Mar 3 15:51:05 1994 Ken Raeburn (raeburn@cujo.cygnus.com) - - * i386.h: Reverse last change. It'll be handled in gas instead. - -Thu Feb 24 15:29:05 1994 Ken Raeburn (raeburn@cujo.cygnus.com) - - * i386.h (sar): Disabled the two-operand Imm1 form, since it was - slower on the 486 and used the implicit shift count despite the - explicit operand. The one-operand form is still available to get - the shorter form with the implicit shift count. - -Thu Feb 17 12:27:52 1994 Torbjorn Granlund (tege@mexican.cygnus.com) - - * hppa.h: Fix typo in fstws arg string. - -Wed Feb 9 21:23:52 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ppc.h (struct powerpc_opcode): Make operands field unsigned. - -Mon Feb 7 19:14:58 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ppc.h (PPC_OPCODE_601): Define. - -Fri Feb 4 23:43:50 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - - * hppa.h (addb): Use '@' for addb and addib pseudo ops. - (so we can determine valid completers for both addb and addb[tf].) - - * hppa.h (xmpyu): No floating point format specifier for the - xmpyu instruction. - -Fri Feb 4 23:36:52 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ppc.h (PPC_OPERAND_NEXT): Define. - (PPC_OPERAND_NEGATIVE): Change value to make room for above. - (struct powerpc_macro): Define. - (powerpc_macros, powerpc_num_macros): Declare. - -Fri Jan 21 19:13:50 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * ppc.h: New file. Header file for PowerPC opcode table. - -Mon Jan 17 00:14:23 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - - * hppa.h: More minor template fixes for sfu and copr (to allow - for easier disassembly). - - * hppa.h: Fix templates for all the sfu and copr instructions. - -Wed Dec 15 15:12:42 1993 Ken Raeburn (raeburn@cujo.cygnus.com) - - * i386.h (push): Permit Imm16 operand too. - -Sat Dec 11 16:14:06 1993 Steve Chamberlain (sac@thepub.cygnus.com) - - * h8300.h (andc): Exists in base arch. - -Wed Dec 1 12:15:32 1993 Jeffrey A. Law (law@snake.cs.utah.edu) - - * From Hisashi MINAMINO - * hppa.h: #undef NONE to avoid conflict with hiux include files. - -Sun Nov 21 22:06:57 1993 Jeffrey A. Law (law@snake.cs.utah.edu) - - * hppa.h: Add FP quadword store instructions. - -Wed Nov 17 17:13:16 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h: (M_J_A): Added. - (M_LA): Removed. - -Mon Nov 8 12:12:47 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h (OP_MASK_CACHE, OP_SH_CACHE): Define. From Ted Lemon - . - -Sun Nov 7 00:30:11 1993 Jeffrey A. Law (law@snake.cs.utah.edu) - - * hppa.h: Immediate field in probei instructions is unsigned, - not low-sign extended. - -Wed Nov 3 10:30:00 1993 Jim Kingdon (kingdon@lioth.cygnus.com) - - * m88k.h (RRI10MASK): Change from 0xfc00ffe0 to 0xfc00fc00. - -Tue Nov 2 12:41:30 1993 Ken Raeburn (raeburn@rover.cygnus.com) - - * i386.h: Add "fxch" without operand. - -Mon Nov 1 18:13:03 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h (M_JAL_1, M_JAL_2, M_JAL_A): Added. - -Sat Oct 2 22:26:11 1993 Jeffrey A Law (law@snake.cs.utah.edu) - - * hppa.h: Add gfw and gfr to the opcode table. - -Wed Sep 29 16:23:00 1993 K. Richard Pixley (rich@sendai.cygnus.com) - - * m88k.h: extended to handle m88110. - -Tue Sep 28 19:19:08 1993 Jeffrey A Law (law@snake.cs.utah.edu) - - * hppa.h (be, ble): Use operand type 'z' to denote absolute branch - addresses. - -Tue Sep 14 14:04:35 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * i960.h (i960_opcodes): Properly bracket initializers. - -Mon Sep 13 12:50:52 1993 K. Richard Pixley (rich@sendai.cygnus.com) - - * m88k.h (BOFLAG): rewrite to avoid nested comment. - -Mon Sep 13 15:46:06 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * m68k.h (two): Protect second argument with parentheses. - -Fri Sep 10 16:29:47 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) - - * i386.h (i386_optab): Added new instruction "rsm" (for i386sl). - Deleted old in/out instructions in "#if 0" section. - -Thu Sep 9 17:42:19 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * i386.h (i386_optab): Properly bracket initializers. - -Wed Aug 25 13:50:56 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) - - * hppa.h (pa_opcode): Use '|' for movb and movib insns. (From - Jeff Law, law@cs.utah.edu). - -Mon Aug 23 16:55:03 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) - - * i386.h (lcall): Accept Imm32 operand also. - -Mon Aug 23 12:43:11 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h (M_ABSU): Removed (absolute value of unsigned number??). - (M_DABS): Added. - -Thu Aug 19 15:08:37 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h (INSN_*): Changed values. Removed unused definitions. - Added INSN_COND_BRANCH_LIKELY, INSN_ISA2 and INSN_ISA3. Split - INSN_LOAD_DELAY into INSN_LOAD_MEMORY_DELAY and - INSN_LOAD_COPROC_DELAY. Split INSN_COPROC_DELAY into - INSN_COPROC_MOVE_DELAY and INSN_COPROC_MEMORY_DELAY. - (M_*): Added new values for r6000 and r4000 macros. - (ANY_DELAY): Removed. - -Wed Aug 18 15:37:48 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h: Added M_LI_S and M_LI_SS. - -Tue Aug 17 07:08:08 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) - - * h8300.h: Get some rare mov.bs correct. - -Thu Aug 5 09:15:17 1993 Jim Kingdon (kingdon@lioth.cygnus.com) - - * sparc.h: Don't define const ourself; rely on ansidecl.h having - been included. - -Fri Jul 30 18:41:11 1993 John Gilmore (gnu@cygnus.com) - - * sparc.h (F_JSR, F_UNBR, F_CONDBR): Add new flags to mark - jump instructions, for use in disassemblers. - -Thu Jul 22 07:25:27 1993 Ian Lance Taylor (ian@cygnus.com) - - * m88k.h: Make bitfields just unsigned, not unsigned long or - unsigned short. - -Wed Jul 21 11:55:31 1993 Jim Kingdon (kingdon@deneb.cygnus.com) - - * hppa.h: New argument type 'y'. Use in various float instructions. - -Mon Jul 19 17:17:03 1993 Jim Kingdon (kingdon@deneb.cygnus.com) - - * hppa.h (break): First immediate field is unsigned. - - * hppa.h: Add rfir instruction. - -Sun Jul 18 16:28:08 1993 Jim Kingdon (kingdon@rtl.cygnus.com) - - * mips.h: Split the actual table out into ../../opcodes/mips-opc.c. - -Fri Jul 16 09:59:29 1993 Ian Lance Taylor (ian@cygnus.com) - - * mips.h: Reworked the hazard information somewhat, and fixed some - bugs in the instruction hazard descriptions. - -Thu Jul 15 12:42:01 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * m88k.h: Corrected a couple of opcodes. - -Tue Jul 6 15:17:35 1993 Ian Lance Taylor (ian@cygnus.com) - - * mips.h: Replaced with version from Ralph Campbell and OSF. The - new version includes instruction hazard information, but is - otherwise reasonably similar. - -Thu Jul 1 20:36:17 1993 Doug Evans (dje@canuck.cygnus.com) - - * h8300.h: Fix typo in UNOP3 (affected sh[al][lr].l). - -Fri Jun 11 18:38:44 1993 Ken Raeburn (raeburn@cygnus.com) - - Patches from Jeff Law, law@cs.utah.edu: - * hppa.h: Clean up some of the OLD_TABLE, non-OLD_TABLE braindamage. - Make the tables be the same for the following instructions: - "bb", "addb[tf]", "addib[tf]", "add", "add[loc]", "addco", - "sh[123]add", "sh[123]add[lo]", "sub", "sub[obt]", "sub[bt]o", - "ds", "comclr", "addi", "addi[ot]", "addito", "subi", "subio", - "comiclr", "fadd", "fsub", "fmpy", "fdiv", "fsqrt", "fabs", - "frnd", "fcpy", "fcnvff", "fcnvxf", "fcnvfx", "fcnvfxt", - "fcmp", and "ftest". - - * hppa.h: Make new and old tables the same for "break", "mtctl", - "mfctl", "bb", "ssm", "rsm", "xmpyu", "fmpyadd", "fmpysub". - Fix typo in last patch. Collapse several #ifdefs into a - single #ifdef. - - * hppa.h: Delete remaining OLD_TABLE code. Bring some - of the comments up-to-date. - - * hppa.h: Update "free list" of letters and update - comments describing each letter's function. - -Thu Jul 8 09:05:26 1993 Doug Evans (dje@canuck.cygnus.com) - - * h8300.h: Lots of little fixes for the h8/300h. - -Tue Jun 8 12:16:03 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) - - Support for H8/300-H - * h8300.h: Lots of new opcodes. - -Fri Jun 4 15:41:37 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) - - * h8300.h: checkpoint, includes H8/300-H opcodes. - -Thu Jun 3 15:42:59 1993 Stu Grossman (grossman@cygnus.com) - - * Patches from Jeffrey Law . - * hppa.h: Rework single precision FP - instructions so that they correctly disassemble code - PA1.1 code. - -Thu May 27 19:21:22 1993 Bruce Bauman (boot@osf.org) - - * i386.h (i386_optab, mov pattern): Remove Mem16 restriction from - mov to allow instructions like mov ss,xyz(ecx) to assemble. - -Tue May 25 00:39:40 1993 Ken Raeburn (raeburn@cygnus.com) - - * hppa.h: Use new version from Utah if OLD_TABLE isn't defined; - gdb will define it for now. - -Mon May 24 15:20:06 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) - - * sparc.h: Don't end enumerator list with comma. - -Fri May 14 15:15:50 1993 Ian Lance Taylor (ian@cygnus.com) - - * Based on patches from davidj@ICSI.Berkeley.EDU (David Johnson): - * mips.h (OP_MASK_COPZ, OP_SH_COPZ): Define. - ("bc2t"): Correct typo. - ("[ls]wc[023]"): Use T rather than t. - ("c[0123]"): Define general coprocessor instructions. - -Mon May 10 06:02:25 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com) - - * m68k.h: Move split point for gcc compilation more towards - middle. - -Fri Apr 9 13:26:16 1993 Jim Kingdon (kingdon@cygnus.com) - - * rs6k.h: Clean up instructions for primary opcode 19 (many were - simply wrong, ics, rfi, & rfsvc were missing). - Add "a" to opr_ext for "bb". Doc fix. - -Thu Mar 18 13:45:31 1993 Per Bothner (bothner@rtl.cygnus.com) - - * i386.h: 486 extensions from John Hassey (hassey@dg-rtp.dg.com). - * mips.h: Add casts, to suppress warnings about shifting too much. - * m68k.h: Document the placement code '9'. - -Thu Feb 18 02:03:14 1993 John Gilmore (gnu@cygnus.com) - - * m68k.h (BREAK_UP_BIG_DECL, AND_OTHER_PART): Add kludge which - allows callers to break up the large initialized struct full of - opcodes into two half-sized ones. This permits GCC to compile - this module, since it takes exponential space for initializers. - (numopcodes, endop): Revise to use AND_OTHER_PART in size calcs. - -Thu Feb 4 02:06:56 1993 John Gilmore (gnu@cygnus.com) - - * a29k.h: Remove RCS crud, update GPL to v2, update copyrights. - * convex.h: Added, from GDB's convx-opcode.h. Added CONST to all - initialized structs in it. - -Thu Jan 28 21:32:22 1993 John Gilmore (gnu@cygnus.com) - - Delta 88 changes inspired by Carl Greco, : - * m88k.h (PMEM): Avoid previous definition from . - (AND): Change to AND_ to avoid ansidecl.h `AND' conflict. - -Sat Jan 23 18:10:49 PST 1993 Ralph Campbell (ralphc@pyramid.com) - - * mips.h: document "i" and "j" operands correctly. - -Thu Jan 7 15:58:13 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * mips.h: Removed endianness dependency. - -Sun Jan 3 14:13:35 1993 Steve Chamberlain (sac@thepub.cygnus.com) - - * h8300.h: include info on number of cycles per instruction. - -Mon Dec 21 21:29:08 1992 Stu Grossman (grossman at cygnus.com) - - * hppa.h: Move handy aliases to the front. Fix masks for extract - and deposit instructions. - -Sat Dec 12 16:09:48 1992 Ian Lance Taylor (ian@cygnus.com) - - * i386.h: accept shld and shrd both with and without the shift - count argument, which is always %cl. - -Fri Nov 27 17:13:18 1992 Ken Raeburn (raeburn at cygnus.com) - - * i386.h (i386_optab_end, i386_regtab_end): Now const. - (one_byte_segment_defaults, two_byte_segment_defaults, - i386_prefixtab_end): Ditto. - -Mon Nov 23 10:47:25 1992 Ken Raeburn (raeburn@cygnus.com) - - * vax.h (bb*): Use "v" (bitfield type), not "a" (address operand) - for operand 2; from John Carr, jfc@dsg.dec.com. - -Wed Nov 4 07:36:49 1992 Ken Raeburn (raeburn@cygnus.com) - - * m68k.h: Define FIXED_SIZE_BRANCH, so bsr and bra instructions - always use 16-bit offsets. Makes calculated-size jump tables - feasible. - -Fri Oct 16 22:52:43 1992 Ken Raeburn (raeburn@cygnus.com) - - * i386.h: Fix one-operand forms of in* and out* patterns. - -Tue Sep 22 14:08:14 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) - - * m68k.h: Added CPU32 support. - -Tue Sep 22 00:38:41 1992 John Gilmore (gnu@cygnus.com) - - * mips.h (break): Disassemble the argument. Patch from - jonathan@cs.stanford.edu (Jonathan Stone). - -Wed Sep 9 11:25:28 1992 Ian Lance Taylor (ian@cygnus.com) - - * m68k.h: merged Motorola and MIT syntax. - -Thu Sep 3 09:33:22 1992 Steve Chamberlain (sac@thepub.cygnus.com) - - * m68k.h (pmove): make the tests less strict, the 68k book is - wrong. - -Tue Aug 25 23:25:19 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) - - * m68k.h (m68ec030): Defined as alias for 68030. - (m68k_opcodes): New type characters "3" for 68030 MMU regs and "t" - for immediate 0-7 added. Set up some opcodes (ptest, bkpt) to use - them. Tightened description of "fmovex" to distinguish it from - some "pmove" encodings. Added "pmove" for 68030 MMU regs, cleaned - up descriptions that claimed versions were available for chips not - supporting them. Added "pmovefd". - -Mon Aug 24 12:04:51 1992 Steve Chamberlain (sac@thepub.cygnus.com) - - * m68k.h: fix where the . goes in divull - -Wed Aug 19 11:22:24 1992 Ian Lance Taylor (ian@cygnus.com) - - * m68k.h: the cas2 instruction is supposed to be written with - indirection on the last two operands, which can be either data or - address registers. Added a new operand type 'r' which accepts - either register type. Added new cases for cas2l and cas2w which - use them. Corrected masks for cas2 which failed to recognize use - of address register. - -Fri Aug 14 14:20:38 1992 Per Bothner (bothner@cygnus.com) - - * m68k.h: Merged in patches (mostly m68040-specific) from - Colin Smith . - - * m68k.h: Merged m68kmri.h and m68k.h (using the former as a - base). Also cleaned up duplicates, re-ordered instructions for - the sake of dis-assembling (so aliases come after standard names). - * m68kmri.h: Now just defines some macros, and #includes m68k.h. - -Wed Aug 12 16:38:15 1992 Steve Chamberlain (sac@thepub.cygnus.com) - - * m68kmri.h: added various opcodes. Moved jbxx to bxxes. Filled in - all missing .s - -Mon Aug 10 23:22:33 1992 Ken Raeburn (raeburn@cygnus.com) - - * sparc.h: Moved tables to BFD library. - - * i386.h (i386_optab): Add fildq, fistpq aliases used by gcc. - -Sun Jun 28 13:29:03 1992 Fred Fish (fnf@cygnus.com) - - * h8300.h: Finish filling in all the holes in the opcode table, - so that the Lucid C compiler can digest this as well... - -Fri Jun 26 21:27:17 1992 John Gilmore (gnu at cygnus.com) - - * i386.h: Add setc, setnc, addr16, data16, repz, repnz aliases. - Fix opcodes on various sizes of fild/fist instructions - (16bit=no suffix, 32bit="l" suffix, 64bit="ll" suffix). - Use tabs to indent for comments. Fixes suggested by Minh Tran-Le. - -Thu Jun 25 16:13:26 1992 Stu Grossman (grossman at cygnus.com) - - * h8300.h: Fill in all the holes in the opcode table so that the - losing HPUX C compiler can digest this... - -Thu Jun 11 12:15:25 1992 John Gilmore (gnu at cygnus.com) - - * mips.h: Fix decoding of coprocessor instructions, somewhat. - (Fix by Eric Anderson, 3jean@maas-neotek.arc.nasa.gov.) - -Thu May 28 11:17:44 1992 Jim Wilson (wilson@sphagnum.cygnus.com) - - * sparc.h: Add new architecture variant sparclite; add its scan - and divscc opcodes. Define ARCHITECTURES_CONFLICT_P macro. - -Tue May 5 14:23:27 1992 Per Bothner (bothner@rtl.cygnus.com) - - * mips.h: Add some more opcode synonyms (from Frank Yellin, - fy@lucid.com). - -Thu Apr 16 18:25:26 1992 Per Bothner (bothner@cygnus.com) - - * rs6k.h: New version from IBM (Metin). - -Thu Apr 9 00:31:19 1992 Per Bothner (bothner@rtl.cygnus.com) - - * rs6k.h: Fix incorrect extended opcode for instructions `fm' - and `fd'. (From metin@ibmpa.awdpa.ibm.com (Metin G. Ozisik).) - -Tue Apr 7 13:38:47 1992 Stu Grossman (grossman at cygnus.com) - - * rs6k.h: Move from ../../gdb/rs6k-opcode.h. - -Fri Apr 3 11:30:20 1992 Fred Fish (fnf@cygnus.com) - - * m68k.h (one, two): Cast macro args to unsigned to suppress - complaints from compiler and lint about integer overflow during - shift. - -Sun Mar 29 12:22:08 1992 John Gilmore (gnu at cygnus.com) - - * sparc.h (OP): Avoid signed overflow when shifting to high order bit. - -Fri Mar 6 00:22:38 1992 John Gilmore (gnu at cygnus.com) - - * mips.h: Make bitfield layout depend on the HOST compiler, - not on the TARGET system. - -Fri Feb 21 01:29:51 1992 K. Richard Pixley (rich@cygnus.com) - - * i386.h: added inb, inw, outb, outw opcodes, added att syntax for - scmp, slod, smov, ssca, ssto. Curtesy Minh Tran-Le - . - -Thu Jan 30 07:31:44 1992 Steve Chamberlain (sac at rtl.cygnus.com) - - * h8300.h: turned op_type enum into #define list - -Thu Jan 30 01:07:24 1992 John Gilmore (gnu at cygnus.com) - - * sparc.h: Remove "cypress" architecture. Remove "fitox" and - similar instructions -- they've been renamed to "fitoq", etc. - REALLY fix tsubcctv. Fix "fcmpeq" and "fcmpq" which had wrong - number of arguments. - * h8300.h: Remove extra ; which produces compiler warning. - -Tue Jan 28 22:59:22 1992 Stu Grossman (grossman at cygnus.com) - - * sparc.h: fix opcode for tsubcctv. - -Tue Jan 7 17:19:39 1992 K. Richard Pixley (rich at cygnus.com) - - * sparc.h: fba and cba are now aliases for fb and cb respectively. - -Fri Dec 27 10:55:50 1991 Per Bothner (bothner at cygnus.com) - - * sparc.h (nop): Made the 'lose' field be even tighter, - so only a standard 'nop' is disassembled as a nop. - -Sun Dec 22 12:18:18 1991 Michael Tiemann (tiemann at cygnus.com) - - * sparc.h (nop): Add RD_GO to `lose' so that only %g0 in dest is - disassembled as a nop. - -Wed Dec 18 17:19:44 1991 Stu Grossman (grossman at cygnus.com) - - * m68k.h, sparc.h: ANSIfy enums. - -Tue Dec 10 00:22:20 1991 K. Richard Pixley (rich at rtl.cygnus.com) - - * sparc.h: fix a typo. - -Sat Nov 30 20:40:51 1991 Steve Chamberlain (sac at rtl.cygnus.com) - - * a29k.h, arm.h, h8300.h, i386.h, i860.h, i960.h , m68k.h, - m88k.h, mips.h , np1.h, ns32k.h, pn.h, pyr.h, sparc.h, tahoe.h, - vax.h: Renamed from ../-opcode.h. - - -Copyright (C) 1991-2003 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - -Local Variables: -mode: change-log -left-margin: 8 -fill-column: 74 -version-control: never -End: - diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h deleted file mode 100644 index eaf3cda..0000000 --- a/include/opcode/aarch64.h +++ /dev/null @@ -1,932 +0,0 @@ -/* AArch64 assembler/disassembler support. - - Copyright 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. - Contributed by ARM Ltd. - - This file is part of GNU Binutils. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the license, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING3. If not, - see . */ - -#ifndef OPCODE_AARCH64_H -#define OPCODE_AARCH64_H - -#include "bfd.h" -#include "bfd_stdint.h" -#include -#include - -/* The offset for pc-relative addressing is currently defined to be 0. */ -#define AARCH64_PCREL_OFFSET 0 - -typedef uint32_t aarch64_insn; - -/* The following bitmasks control CPU features. */ -#define AARCH64_FEATURE_V8 0x00000001 /* All processors. */ -#define AARCH64_FEATURE_CRYPTO 0x00010000 /* Crypto instructions. */ -#define AARCH64_FEATURE_FP 0x00020000 /* FP instructions. */ -#define AARCH64_FEATURE_SIMD 0x00040000 /* SIMD instructions. */ -#define AARCH64_FEATURE_CRC 0x00080000 /* CRC instructions. */ - -/* Architectures are the sum of the base and extensions. */ -#define AARCH64_ARCH_V8 AARCH64_FEATURE (AARCH64_FEATURE_V8, \ - AARCH64_FEATURE_FP \ - | AARCH64_FEATURE_SIMD) -#define AARCH64_ARCH_NONE AARCH64_FEATURE (0, 0) -#define AARCH64_ANY AARCH64_FEATURE (-1, 0) /* Any basic core. */ - -/* CPU-specific features. */ -typedef unsigned long aarch64_feature_set; - -#define AARCH64_CPU_HAS_FEATURE(CPU,FEAT) \ - (((CPU) & (FEAT)) != 0) - -#define AARCH64_MERGE_FEATURE_SETS(TARG,F1,F2) \ - do \ - { \ - (TARG) = (F1) | (F2); \ - } \ - while (0) - -#define AARCH64_CLEAR_FEATURE(TARG,F1,F2) \ - do \ - { \ - (TARG) = (F1) &~ (F2); \ - } \ - while (0) - -#define AARCH64_FEATURE(core,coproc) ((core) | (coproc)) - -#define AARCH64_OPCODE_HAS_FEATURE(OPC,FEAT) \ - (((OPC) & (FEAT)) != 0) - -enum aarch64_operand_class -{ - AARCH64_OPND_CLASS_NIL, - AARCH64_OPND_CLASS_INT_REG, - AARCH64_OPND_CLASS_MODIFIED_REG, - AARCH64_OPND_CLASS_FP_REG, - AARCH64_OPND_CLASS_SIMD_REG, - AARCH64_OPND_CLASS_SIMD_ELEMENT, - AARCH64_OPND_CLASS_SISD_REG, - AARCH64_OPND_CLASS_SIMD_REGLIST, - AARCH64_OPND_CLASS_CP_REG, - AARCH64_OPND_CLASS_ADDRESS, - AARCH64_OPND_CLASS_IMMEDIATE, - AARCH64_OPND_CLASS_SYSTEM, -}; - -/* Operand code that helps both parsing and coding. - Keep AARCH64_OPERANDS synced. */ - -enum aarch64_opnd -{ - AARCH64_OPND_NIL, /* no operand---MUST BE FIRST!*/ - - AARCH64_OPND_Rd, /* Integer register as destination. */ - AARCH64_OPND_Rn, /* Integer register as source. */ - AARCH64_OPND_Rm, /* Integer register as source. */ - AARCH64_OPND_Rt, /* Integer register used in ld/st instructions. */ - AARCH64_OPND_Rt2, /* Integer register used in ld/st pair instructions. */ - AARCH64_OPND_Rs, /* Integer register used in ld/st exclusive. */ - AARCH64_OPND_Ra, /* Integer register used in ddp_3src instructions. */ - AARCH64_OPND_Rt_SYS, /* Integer register used in system instructions. */ - - AARCH64_OPND_Rd_SP, /* Integer Rd or SP. */ - AARCH64_OPND_Rn_SP, /* Integer Rn or SP. */ - AARCH64_OPND_Rm_EXT, /* Integer Rm extended. */ - AARCH64_OPND_Rm_SFT, /* Integer Rm shifted. */ - - AARCH64_OPND_Fd, /* Floating-point Fd. */ - AARCH64_OPND_Fn, /* Floating-point Fn. */ - AARCH64_OPND_Fm, /* Floating-point Fm. */ - AARCH64_OPND_Fa, /* Floating-point Fa. */ - AARCH64_OPND_Ft, /* Floating-point Ft. */ - AARCH64_OPND_Ft2, /* Floating-point Ft2. */ - - AARCH64_OPND_Sd, /* AdvSIMD Scalar Sd. */ - AARCH64_OPND_Sn, /* AdvSIMD Scalar Sn. */ - AARCH64_OPND_Sm, /* AdvSIMD Scalar Sm. */ - - AARCH64_OPND_Vd, /* AdvSIMD Vector Vd. */ - AARCH64_OPND_Vn, /* AdvSIMD Vector Vn. */ - AARCH64_OPND_Vm, /* AdvSIMD Vector Vm. */ - AARCH64_OPND_VdD1, /* AdvSIMD .D[1]; for FMOV only. */ - AARCH64_OPND_VnD1, /* AdvSIMD .D[1]; for FMOV only. */ - AARCH64_OPND_Ed, /* AdvSIMD Vector Element Vd. */ - AARCH64_OPND_En, /* AdvSIMD Vector Element Vn. */ - AARCH64_OPND_Em, /* AdvSIMD Vector Element Vm. */ - AARCH64_OPND_LVn, /* AdvSIMD Vector register list used in e.g. TBL. */ - AARCH64_OPND_LVt, /* AdvSIMD Vector register list used in ld/st. */ - AARCH64_OPND_LVt_AL, /* AdvSIMD Vector register list for loading single - structure to all lanes. */ - AARCH64_OPND_LEt, /* AdvSIMD Vector Element list. */ - - AARCH64_OPND_Cn, /* Co-processor register in CRn field. */ - AARCH64_OPND_Cm, /* Co-processor register in CRm field. */ - - AARCH64_OPND_IDX, /* AdvSIMD EXT index operand. */ - AARCH64_OPND_IMM_VLSL,/* Immediate for shifting vector registers left. */ - AARCH64_OPND_IMM_VLSR,/* Immediate for shifting vector registers right. */ - AARCH64_OPND_SIMD_IMM,/* AdvSIMD modified immediate without shift. */ - AARCH64_OPND_SIMD_IMM_SFT, /* AdvSIMD modified immediate with shift. */ - AARCH64_OPND_SIMD_FPIMM,/* AdvSIMD 8-bit fp immediate. */ - AARCH64_OPND_SHLL_IMM,/* Immediate shift for AdvSIMD SHLL instruction - (no encoding). */ - AARCH64_OPND_IMM0, /* Immediate for #0. */ - AARCH64_OPND_FPIMM0, /* Immediate for #0.0. */ - AARCH64_OPND_FPIMM, /* Floating-point Immediate. */ - AARCH64_OPND_IMMR, /* Immediate # in e.g. BFM. */ - AARCH64_OPND_IMMS, /* Immediate # in e.g. BFM. */ - AARCH64_OPND_WIDTH, /* Immediate # in e.g. BFI. */ - AARCH64_OPND_IMM, /* Immediate. */ - AARCH64_OPND_UIMM3_OP1,/* Unsigned 3-bit immediate in the op1 field. */ - AARCH64_OPND_UIMM3_OP2,/* Unsigned 3-bit immediate in the op2 field. */ - AARCH64_OPND_UIMM4, /* Unsigned 4-bit immediate in the CRm field. */ - AARCH64_OPND_UIMM7, /* Unsigned 7-bit immediate in the CRm:op2 fields. */ - AARCH64_OPND_BIT_NUM, /* Immediate. */ - AARCH64_OPND_EXCEPTION,/* imm16 operand in exception instructions. */ - AARCH64_OPND_CCMP_IMM,/* Immediate in conditional compare instructions. */ - AARCH64_OPND_NZCV, /* Flag bit specifier giving an alternative value for - each condition flag. */ - - AARCH64_OPND_LIMM, /* Logical Immediate. */ - AARCH64_OPND_AIMM, /* Arithmetic immediate. */ - AARCH64_OPND_HALF, /* #{, LSL #} operand in move wide. */ - AARCH64_OPND_FBITS, /* FP # operand in e.g. SCVTF */ - AARCH64_OPND_IMM_MOV, /* Immediate operand for the MOV alias. */ - - AARCH64_OPND_COND, /* Standard condition as the last operand. */ - - AARCH64_OPND_ADDR_ADRP, /* Memory address for ADRP */ - AARCH64_OPND_ADDR_PCREL14, /* 14-bit PC-relative address for e.g. TBZ. */ - AARCH64_OPND_ADDR_PCREL19, /* 19-bit PC-relative address for e.g. LDR. */ - AARCH64_OPND_ADDR_PCREL21, /* 21-bit PC-relative address for e.g. ADR. */ - AARCH64_OPND_ADDR_PCREL26, /* 26-bit PC-relative address for e.g. BL. */ - - AARCH64_OPND_ADDR_SIMPLE, /* Address of ld/st exclusive. */ - AARCH64_OPND_ADDR_REGOFF, /* Address of register offset. */ - AARCH64_OPND_ADDR_SIMM7, /* Address of signed 7-bit immediate. */ - AARCH64_OPND_ADDR_SIMM9, /* Address of signed 9-bit immediate. */ - AARCH64_OPND_ADDR_SIMM9_2, /* Same as the above, but the immediate is - negative or unaligned and there is - no writeback allowed. This operand code - is only used to support the programmer- - friendly feature of using LDR/STR as the - the mnemonic name for LDUR/STUR instructions - wherever there is no ambiguity. */ - AARCH64_OPND_ADDR_UIMM12, /* Address of unsigned 12-bit immediate. */ - AARCH64_OPND_SIMD_ADDR_SIMPLE,/* Address of ld/st multiple structures. */ - AARCH64_OPND_SIMD_ADDR_POST, /* Address of ld/st multiple post-indexed. */ - - AARCH64_OPND_SYSREG, /* System register operand. */ - AARCH64_OPND_PSTATEFIELD, /* PSTATE field name operand. */ - AARCH64_OPND_SYSREG_AT, /* System register operand. */ - AARCH64_OPND_SYSREG_DC, /* System register operand. */ - AARCH64_OPND_SYSREG_IC, /* System register operand. */ - AARCH64_OPND_SYSREG_TLBI, /* System register operand. */ - AARCH64_OPND_BARRIER, /* Barrier operand. */ - AARCH64_OPND_BARRIER_ISB, /* Barrier operand for ISB. */ - AARCH64_OPND_PRFOP, /* Prefetch operation. */ -}; - -/* Qualifier constrains an operand. It either specifies a variant of an - operand type or limits values available to an operand type. - - N.B. Order is important; keep aarch64_opnd_qualifiers synced. */ - -enum aarch64_opnd_qualifier -{ - /* Indicating no further qualification on an operand. */ - AARCH64_OPND_QLF_NIL, - - /* Qualifying an operand which is a general purpose (integer) register; - indicating the operand data size or a specific register. */ - AARCH64_OPND_QLF_W, /* Wn, WZR or WSP. */ - AARCH64_OPND_QLF_X, /* Xn, XZR or XSP. */ - AARCH64_OPND_QLF_WSP, /* WSP. */ - AARCH64_OPND_QLF_SP, /* SP. */ - - /* Qualifying an operand which is a floating-point register, a SIMD - vector element or a SIMD vector element list; indicating operand data - size or the size of each SIMD vector element in the case of a SIMD - vector element list. - These qualifiers are also used to qualify an address operand to - indicate the size of data element a load/store instruction is - accessing. - They are also used for the immediate shift operand in e.g. SSHR. Such - a use is only for the ease of operand encoding/decoding and qualifier - sequence matching; such a use should not be applied widely; use the value - constraint qualifiers for immediate operands wherever possible. */ - AARCH64_OPND_QLF_S_B, - AARCH64_OPND_QLF_S_H, - AARCH64_OPND_QLF_S_S, - AARCH64_OPND_QLF_S_D, - AARCH64_OPND_QLF_S_Q, - - /* Qualifying an operand which is a SIMD vector register or a SIMD vector - register list; indicating register shape. - They are also used for the immediate shift operand in e.g. SSHR. Such - a use is only for the ease of operand encoding/decoding and qualifier - sequence matching; such a use should not be applied widely; use the value - constraint qualifiers for immediate operands wherever possible. */ - AARCH64_OPND_QLF_V_8B, - AARCH64_OPND_QLF_V_16B, - AARCH64_OPND_QLF_V_4H, - AARCH64_OPND_QLF_V_8H, - AARCH64_OPND_QLF_V_2S, - AARCH64_OPND_QLF_V_4S, - AARCH64_OPND_QLF_V_1D, - AARCH64_OPND_QLF_V_2D, - AARCH64_OPND_QLF_V_1Q, - - /* Constraint on value. */ - AARCH64_OPND_QLF_imm_0_7, - AARCH64_OPND_QLF_imm_0_15, - AARCH64_OPND_QLF_imm_0_31, - AARCH64_OPND_QLF_imm_0_63, - AARCH64_OPND_QLF_imm_1_32, - AARCH64_OPND_QLF_imm_1_64, - - /* Indicate whether an AdvSIMD modified immediate operand is shift-zeros - or shift-ones. */ - AARCH64_OPND_QLF_LSL, - AARCH64_OPND_QLF_MSL, - - /* Special qualifier helping retrieve qualifier information during the - decoding time (currently not in use). */ - AARCH64_OPND_QLF_RETRIEVE, -}; - -/* Instruction class. */ - -enum aarch64_insn_class -{ - addsub_carry, - addsub_ext, - addsub_imm, - addsub_shift, - asimdall, - asimddiff, - asimdelem, - asimdext, - asimdimm, - asimdins, - asimdmisc, - asimdperm, - asimdsame, - asimdshf, - asimdtbl, - asisddiff, - asisdelem, - asisdlse, - asisdlsep, - asisdlso, - asisdlsop, - asisdmisc, - asisdone, - asisdpair, - asisdsame, - asisdshf, - bitfield, - branch_imm, - branch_reg, - compbranch, - condbranch, - condcmp_imm, - condcmp_reg, - condsel, - cryptoaes, - cryptosha2, - cryptosha3, - dp_1src, - dp_2src, - dp_3src, - exception, - extract, - float2fix, - float2int, - floatccmp, - floatcmp, - floatdp1, - floatdp2, - floatdp3, - floatimm, - floatsel, - ldst_immpost, - ldst_immpre, - ldst_imm9, /* immpost or immpre */ - ldst_pos, - ldst_regoff, - ldst_unpriv, - ldst_unscaled, - ldstexcl, - ldstnapair_offs, - ldstpair_off, - ldstpair_indexed, - loadlit, - log_imm, - log_shift, - movewide, - pcreladdr, - ic_system, - testbranch, -}; - -/* Opcode enumerators. */ - -enum aarch64_op -{ - OP_NIL, - OP_STRB_POS, - OP_LDRB_POS, - OP_LDRSB_POS, - OP_STRH_POS, - OP_LDRH_POS, - OP_LDRSH_POS, - OP_STR_POS, - OP_LDR_POS, - OP_STRF_POS, - OP_LDRF_POS, - OP_LDRSW_POS, - OP_PRFM_POS, - - OP_STURB, - OP_LDURB, - OP_LDURSB, - OP_STURH, - OP_LDURH, - OP_LDURSH, - OP_STUR, - OP_LDUR, - OP_STURV, - OP_LDURV, - OP_LDURSW, - OP_PRFUM, - - OP_LDR_LIT, - OP_LDRV_LIT, - OP_LDRSW_LIT, - OP_PRFM_LIT, - - OP_ADD, - OP_B, - OP_BL, - - OP_MOVN, - OP_MOVZ, - OP_MOVK, - - OP_MOV_IMM_LOG, /* MOV alias for moving bitmask immediate. */ - OP_MOV_IMM_WIDE, /* MOV alias for moving wide immediate. */ - OP_MOV_IMM_WIDEN, /* MOV alias for moving wide immediate (negated). */ - - OP_MOV_V, /* MOV alias for moving vector register. */ - - OP_ASR_IMM, - OP_LSR_IMM, - OP_LSL_IMM, - - OP_BIC, - - OP_UBFX, - OP_BFXIL, - OP_SBFX, - OP_SBFIZ, - OP_BFI, - OP_UBFIZ, - OP_UXTB, - OP_UXTH, - OP_UXTW, - - OP_CINC, - OP_CINV, - OP_CNEG, - OP_CSET, - OP_CSETM, - - OP_FCVT, - OP_FCVTN, - OP_FCVTN2, - OP_FCVTL, - OP_FCVTL2, - OP_FCVTXN_S, /* Scalar version. */ - - OP_ROR_IMM, - - OP_SXTL, - OP_SXTL2, - OP_UXTL, - OP_UXTL2, - - OP_TOTAL_NUM, /* Pseudo. */ -}; - -/* Maximum number of operands an instruction can have. */ -#define AARCH64_MAX_OPND_NUM 6 -/* Maximum number of qualifier sequences an instruction can have. */ -#define AARCH64_MAX_QLF_SEQ_NUM 10 -/* Operand qualifier typedef; optimized for the size. */ -typedef unsigned char aarch64_opnd_qualifier_t; -/* Operand qualifier sequence typedef. */ -typedef aarch64_opnd_qualifier_t \ - aarch64_opnd_qualifier_seq_t [AARCH64_MAX_OPND_NUM]; - -/* FIXME: improve the efficiency. */ -static inline bfd_boolean -empty_qualifier_sequence_p (const aarch64_opnd_qualifier_t *qualifiers) -{ - int i; - for (i = 0; i < AARCH64_MAX_OPND_NUM; ++i) - if (qualifiers[i] != AARCH64_OPND_QLF_NIL) - return FALSE; - return TRUE; -} - -/* This structure holds information for a particular opcode. */ - -struct aarch64_opcode -{ - /* The name of the mnemonic. */ - const char *name; - - /* The opcode itself. Those bits which will be filled in with - operands are zeroes. */ - aarch64_insn opcode; - - /* The opcode mask. This is used by the disassembler. This is a - mask containing ones indicating those bits which must match the - opcode field, and zeroes indicating those bits which need not - match (and are presumably filled in by operands). */ - aarch64_insn mask; - - /* Instruction class. */ - enum aarch64_insn_class iclass; - - /* Enumerator identifier. */ - enum aarch64_op op; - - /* Which architecture variant provides this instruction. */ - const aarch64_feature_set *avariant; - - /* An array of operand codes. Each code is an index into the - operand table. They appear in the order which the operands must - appear in assembly code, and are terminated by a zero. */ - enum aarch64_opnd operands[AARCH64_MAX_OPND_NUM]; - - /* A list of operand qualifier code sequence. Each operand qualifier - code qualifies the corresponding operand code. Each operand - qualifier sequence specifies a valid opcode variant and related - constraint on operands. */ - aarch64_opnd_qualifier_seq_t qualifiers_list[AARCH64_MAX_QLF_SEQ_NUM]; - - /* Flags providing information about this instruction */ - uint32_t flags; -}; - -typedef struct aarch64_opcode aarch64_opcode; - -/* Table describing all the AArch64 opcodes. */ -extern aarch64_opcode aarch64_opcode_table[]; - -/* Opcode flags. */ -#define F_ALIAS (1 << 0) -#define F_HAS_ALIAS (1 << 1) -/* Disassembly preference priority 1-3 (the larger the higher). If nothing - is specified, it is the priority 0 by default, i.e. the lowest priority. */ -#define F_P1 (1 << 2) -#define F_P2 (2 << 2) -#define F_P3 (3 << 2) -/* Flag an instruction that is truly conditional executed, e.g. b.cond. */ -#define F_COND (1 << 4) -/* Instruction has the field of 'sf'. */ -#define F_SF (1 << 5) -/* Instruction has the field of 'size:Q'. */ -#define F_SIZEQ (1 << 6) -/* Floating-point instruction has the field of 'type'. */ -#define F_FPTYPE (1 << 7) -/* AdvSIMD scalar instruction has the field of 'size'. */ -#define F_SSIZE (1 << 8) -/* AdvSIMD vector register arrangement specifier encoded in "imm5<3:0>:Q". */ -#define F_T (1 << 9) -/* Size of GPR operand in AdvSIMD instructions encoded in Q. */ -#define F_GPRSIZE_IN_Q (1 << 10) -/* Size of Rt load signed instruction encoded in opc[0], i.e. bit 22. */ -#define F_LDS_SIZE (1 << 11) -/* Optional operand; assume maximum of 1 operand can be optional. */ -#define F_OPD0_OPT (1 << 12) -#define F_OPD1_OPT (2 << 12) -#define F_OPD2_OPT (3 << 12) -#define F_OPD3_OPT (4 << 12) -#define F_OPD4_OPT (5 << 12) -/* Default value for the optional operand when omitted from the assembly. */ -#define F_DEFAULT(X) (((X) & 0x1f) << 15) -/* Instruction that is an alias of another instruction needs to be - encoded/decoded by converting it to/from the real form, followed by - the encoding/decoding according to the rules of the real opcode. - This compares to the direct coding using the alias's information. - N.B. this flag requires F_ALIAS to be used together. */ -#define F_CONV (1 << 20) -/* Use together with F_ALIAS to indicate an alias opcode is a programmer - friendly pseudo instruction available only in the assembly code (thus will - not show up in the disassembly). */ -#define F_PSEUDO (1 << 21) -/* Instruction has miscellaneous encoding/decoding rules. */ -#define F_MISC (1 << 22) -/* Instruction has the field of 'N'; used in conjunction with F_SF. */ -#define F_N (1 << 23) -/* Opcode dependent field. */ -#define F_OD(X) (((X) & 0x7) << 24) -/* Next bit is 27. */ - -static inline bfd_boolean -alias_opcode_p (const aarch64_opcode *opcode) -{ - return (opcode->flags & F_ALIAS) ? TRUE : FALSE; -} - -static inline bfd_boolean -opcode_has_alias (const aarch64_opcode *opcode) -{ - return (opcode->flags & F_HAS_ALIAS) ? TRUE : FALSE; -} - -/* Priority for disassembling preference. */ -static inline int -opcode_priority (const aarch64_opcode *opcode) -{ - return (opcode->flags >> 2) & 0x3; -} - -static inline bfd_boolean -pseudo_opcode_p (const aarch64_opcode *opcode) -{ - return (opcode->flags & F_PSEUDO) != 0lu ? TRUE : FALSE; -} - -static inline bfd_boolean -optional_operand_p (const aarch64_opcode *opcode, unsigned int idx) -{ - return (((opcode->flags >> 12) & 0x7) == idx + 1) - ? TRUE : FALSE; -} - -static inline aarch64_insn -get_optional_operand_default_value (const aarch64_opcode *opcode) -{ - return (opcode->flags >> 15) & 0x1f; -} - -static inline unsigned int -get_opcode_dependent_value (const aarch64_opcode *opcode) -{ - return (opcode->flags >> 24) & 0x7; -} - -static inline bfd_boolean -opcode_has_special_coder (const aarch64_opcode *opcode) -{ - return (opcode->flags & (F_SF | F_SIZEQ | F_FPTYPE | F_SSIZE | F_T - | F_GPRSIZE_IN_Q | F_LDS_SIZE | F_MISC | F_N | F_COND)) ? TRUE - : FALSE; -} - -struct aarch64_name_value_pair -{ - const char * name; - aarch64_insn value; -}; - -extern const struct aarch64_name_value_pair aarch64_operand_modifiers []; -extern const struct aarch64_name_value_pair aarch64_sys_regs []; -extern const struct aarch64_name_value_pair aarch64_pstatefields []; -extern const struct aarch64_name_value_pair aarch64_barrier_options [16]; -extern const struct aarch64_name_value_pair aarch64_prfops [32]; - -typedef struct -{ - const char *template; - uint32_t value; - int has_xt; -} aarch64_sys_ins_reg; - -extern const aarch64_sys_ins_reg aarch64_sys_regs_ic []; -extern const aarch64_sys_ins_reg aarch64_sys_regs_dc []; -extern const aarch64_sys_ins_reg aarch64_sys_regs_at []; -extern const aarch64_sys_ins_reg aarch64_sys_regs_tlbi []; - -/* Shift/extending operator kinds. - N.B. order is important; keep aarch64_operand_modifiers synced. */ -enum aarch64_modifier_kind -{ - AARCH64_MOD_NONE, - AARCH64_MOD_MSL, - AARCH64_MOD_ROR, - AARCH64_MOD_ASR, - AARCH64_MOD_LSR, - AARCH64_MOD_LSL, - AARCH64_MOD_UXTB, - AARCH64_MOD_UXTH, - AARCH64_MOD_UXTW, - AARCH64_MOD_UXTX, - AARCH64_MOD_SXTB, - AARCH64_MOD_SXTH, - AARCH64_MOD_SXTW, - AARCH64_MOD_SXTX, -}; - -bfd_boolean -aarch64_extend_operator_p (enum aarch64_modifier_kind); - -enum aarch64_modifier_kind -aarch64_get_operand_modifier (const struct aarch64_name_value_pair *); -/* Condition. */ - -typedef struct -{ - /* A list of names with the first one as the disassembly preference; - terminated by NULL if fewer than 3. */ - const char *names[3]; - aarch64_insn value; -} aarch64_cond; - -extern const aarch64_cond aarch64_conds[16]; - -const aarch64_cond* get_cond_from_value (aarch64_insn value); -const aarch64_cond* get_inverted_cond (const aarch64_cond *cond); - -/* Structure representing an operand. */ - -struct aarch64_opnd_info -{ - enum aarch64_opnd type; - aarch64_opnd_qualifier_t qualifier; - int idx; - - union - { - struct - { - unsigned regno; - } reg; - struct - { - unsigned regno : 5; - unsigned index : 4; - } reglane; - /* e.g. LVn. */ - struct - { - unsigned first_regno : 5; - unsigned num_regs : 3; - /* 1 if it is a list of reg element. */ - unsigned has_index : 1; - /* Lane index; valid only when has_index is 1. */ - unsigned index : 4; - } reglist; - /* e.g. immediate or pc relative address offset. */ - struct - { - int64_t value; - unsigned is_fp : 1; - } imm; - /* e.g. address in STR (register offset). */ - struct - { - unsigned base_regno; - struct - { - union - { - int imm; - unsigned regno; - }; - unsigned is_reg; - } offset; - unsigned pcrel : 1; /* PC-relative. */ - unsigned writeback : 1; - unsigned preind : 1; /* Pre-indexed. */ - unsigned postind : 1; /* Post-indexed. */ - } addr; - const aarch64_cond *cond; - /* The encoding of the system register. */ - aarch64_insn sysreg; - /* The encoding of the PSTATE field. */ - aarch64_insn pstatefield; - const aarch64_sys_ins_reg *sysins_op; - const struct aarch64_name_value_pair *barrier; - const struct aarch64_name_value_pair *prfop; - }; - - /* Operand shifter; in use when the operand is a register offset address, - add/sub extended reg, etc. e.g. {, {#}}. */ - struct - { - enum aarch64_modifier_kind kind; - int amount; - unsigned operator_present: 1; /* Only valid during encoding. */ - /* Value of the 'S' field in ld/st reg offset; used only in decoding. */ - unsigned amount_present: 1; - } shifter; - - unsigned skip:1; /* Operand is not completed if there is a fixup needed - to be done on it. In some (but not all) of these - cases, we need to tell libopcodes to skip the - constraint checking and the encoding for this - operand, so that the libopcodes can pick up the - right opcode before the operand is fixed-up. This - flag should only be used during the - assembling/encoding. */ - unsigned present:1; /* Whether this operand is present in the assembly - line; not used during the disassembly. */ -}; - -typedef struct aarch64_opnd_info aarch64_opnd_info; - -/* Structure representing an instruction. - - It is used during both the assembling and disassembling. The assembler - fills an aarch64_inst after a successful parsing and then passes it to the - encoding routine to do the encoding. During the disassembling, the - disassembler calls the decoding routine to decode a binary instruction; on a - successful return, such a structure will be filled with information of the - instruction; then the disassembler uses the information to print out the - instruction. */ - -struct aarch64_inst -{ - /* The value of the binary instruction. */ - aarch64_insn value; - - /* Corresponding opcode entry. */ - const aarch64_opcode *opcode; - - /* Condition for a truly conditional-executed instrutions, e.g. b.cond. */ - const aarch64_cond *cond; - - /* Operands information. */ - aarch64_opnd_info operands[AARCH64_MAX_OPND_NUM]; -}; - -typedef struct aarch64_inst aarch64_inst; - -/* Diagnosis related declaration and interface. */ - -/* Operand error kind enumerators. - - AARCH64_OPDE_RECOVERABLE - Less severe error found during the parsing, very possibly because that - GAS has picked up a wrong instruction template for the parsing. - - AARCH64_OPDE_SYNTAX_ERROR - General syntax error; it can be either a user error, or simply because - that GAS is trying a wrong instruction template. - - AARCH64_OPDE_FATAL_SYNTAX_ERROR - Definitely a user syntax error. - - AARCH64_OPDE_INVALID_VARIANT - No syntax error, but the operands are not a valid combination, e.g. - FMOV D0,S0 - - AARCH64_OPDE_OUT_OF_RANGE - Error about some immediate value out of a valid range. - - AARCH64_OPDE_UNALIGNED - Error about some immediate value not properly aligned (i.e. not being a - multiple times of a certain value). - - AARCH64_OPDE_REG_LIST - Error about the register list operand having unexpected number of - registers. - - AARCH64_OPDE_OTHER_ERROR - Error of the highest severity and used for any severe issue that does not - fall into any of the above categories. - - The enumerators are only interesting to GAS. They are declared here (in - libopcodes) because that some errors are detected (and then notified to GAS) - by libopcodes (rather than by GAS solely). - - The first three errors are only deteced by GAS while the - AARCH64_OPDE_INVALID_VARIANT error can only be spotted by libopcodes as - only libopcodes has the information about the valid variants of each - instruction. - - The enumerators have an increasing severity. This is helpful when there are - multiple instruction templates available for a given mnemonic name (e.g. - FMOV); this mechanism will help choose the most suitable template from which - the generated diagnostics can most closely describe the issues, if any. */ - -enum aarch64_operand_error_kind -{ - AARCH64_OPDE_NIL, - AARCH64_OPDE_RECOVERABLE, - AARCH64_OPDE_SYNTAX_ERROR, - AARCH64_OPDE_FATAL_SYNTAX_ERROR, - AARCH64_OPDE_INVALID_VARIANT, - AARCH64_OPDE_OUT_OF_RANGE, - AARCH64_OPDE_UNALIGNED, - AARCH64_OPDE_REG_LIST, - AARCH64_OPDE_OTHER_ERROR -}; - -/* N.B. GAS assumes that this structure work well with shallow copy. */ -struct aarch64_operand_error -{ - enum aarch64_operand_error_kind kind; - int index; - const char *error; - int data[3]; /* Some data for extra information. */ -}; - -typedef struct aarch64_operand_error aarch64_operand_error; - -/* Encoding entrypoint. */ - -extern int -aarch64_opcode_encode (const aarch64_opcode *, const aarch64_inst *, - aarch64_insn *, aarch64_opnd_qualifier_t *, - aarch64_operand_error *); - -extern const aarch64_opcode * -aarch64_replace_opcode (struct aarch64_inst *, - const aarch64_opcode *); - -/* Given the opcode enumerator OP, return the pointer to the corresponding - opcode entry. */ - -extern const aarch64_opcode * -aarch64_get_opcode (enum aarch64_op); - -/* Generate the string representation of an operand. */ -extern void -aarch64_print_operand (char *, size_t, bfd_vma, const aarch64_opcode *, - const aarch64_opnd_info *, int, int *, bfd_vma *); - -/* Miscellaneous interface. */ - -extern int -aarch64_operand_index (const enum aarch64_opnd *, enum aarch64_opnd); - -extern aarch64_opnd_qualifier_t -aarch64_get_expected_qualifier (const aarch64_opnd_qualifier_seq_t *, int, - const aarch64_opnd_qualifier_t, int); - -extern int -aarch64_num_of_operands (const aarch64_opcode *); - -extern int -aarch64_stack_pointer_p (const aarch64_opnd_info *); - -extern -int aarch64_zero_register_p (const aarch64_opnd_info *); - -/* Given an operand qualifier, return the expected data element size - of a qualified operand. */ -extern unsigned char -aarch64_get_qualifier_esize (aarch64_opnd_qualifier_t); - -extern enum aarch64_operand_class -aarch64_get_operand_class (enum aarch64_opnd); - -extern const char * -aarch64_get_operand_name (enum aarch64_opnd); - -extern const char * -aarch64_get_operand_desc (enum aarch64_opnd); - -#ifdef DEBUG_AARCH64 -extern int debug_dump; - -extern void -aarch64_verbose (const char *, ...) __attribute__ ((format (printf, 1, 2))); - -#define DEBUG_TRACE(M, ...) \ - { \ - if (debug_dump) \ - aarch64_verbose ("%s: " M ".", __func__, ##__VA_ARGS__); \ - } - -#define DEBUG_TRACE_IF(C, M, ...) \ - { \ - if (debug_dump && (C)) \ - aarch64_verbose ("%s: " M ".", __func__, ##__VA_ARGS__); \ - } -#else /* !DEBUG_AARCH64 */ -#define DEBUG_TRACE(M, ...) ; -#define DEBUG_TRACE_IF(C, M, ...) ; -#endif /* DEBUG_AARCH64 */ - -#endif /* OPCODE_AARCH64_H */ diff --git a/include/opcode/alpha.h b/include/opcode/alpha.h deleted file mode 100644 index 2c0d4f6..0000000 --- a/include/opcode/alpha.h +++ /dev/null @@ -1,238 +0,0 @@ -/* alpha.h -- Header file for Alpha opcode table - Copyright 1996, 1999, 2001, 2003, 2010 Free Software Foundation, Inc. - Contributed by Richard Henderson , - patterned after the PPC opcode table written by Ian Lance Taylor. - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef OPCODE_ALPHA_H -#define OPCODE_ALPHA_H - -/* The opcode table is an array of struct alpha_opcode. */ - -struct alpha_opcode -{ - /* The opcode name. */ - const char *name; - - /* The opcode itself. Those bits which will be filled in with - operands are zeroes. */ - unsigned opcode; - - /* The opcode mask. This is used by the disassembler. This is a - mask containing ones indicating those bits which must match the - opcode field, and zeroes indicating those bits which need not - match (and are presumably filled in by operands). */ - unsigned mask; - - /* One bit flags for the opcode. These are primarily used to - indicate specific processors and environments support the - instructions. The defined values are listed below. */ - unsigned flags; - - /* An array of operand codes. Each code is an index into the - operand table. They appear in the order which the operands must - appear in assembly code, and are terminated by a zero. */ - unsigned char operands[4]; -}; - -/* The table itself is sorted by major opcode number, and is otherwise - in the order in which the disassembler should consider - instructions. */ -extern const struct alpha_opcode alpha_opcodes[]; -extern const unsigned alpha_num_opcodes; - -/* Values defined for the flags field of a struct alpha_opcode. */ - -/* CPU Availability */ -#define AXP_OPCODE_BASE 0x0001 /* Base architecture -- all cpus. */ -#define AXP_OPCODE_EV4 0x0002 /* EV4 specific PALcode insns. */ -#define AXP_OPCODE_EV5 0x0004 /* EV5 specific PALcode insns. */ -#define AXP_OPCODE_EV6 0x0008 /* EV6 specific PALcode insns. */ -#define AXP_OPCODE_BWX 0x0100 /* Byte/word extension (amask bit 0). */ -#define AXP_OPCODE_CIX 0x0200 /* "Count" extension (amask bit 1). */ -#define AXP_OPCODE_MAX 0x0400 /* Multimedia extension (amask bit 8). */ - -#define AXP_OPCODE_NOPAL (~(AXP_OPCODE_EV4|AXP_OPCODE_EV5|AXP_OPCODE_EV6)) - -/* A macro to extract the major opcode from an instruction. */ -#define AXP_OP(i) (((i) >> 26) & 0x3F) - -/* The total number of major opcodes. */ -#define AXP_NOPS 0x40 - - -/* The operands table is an array of struct alpha_operand. */ - -struct alpha_operand -{ - /* The number of bits in the operand. */ - unsigned int bits : 5; - - /* How far the operand is left shifted in the instruction. */ - unsigned int shift : 5; - - /* The default relocation type for this operand. */ - signed int default_reloc : 16; - - /* One bit syntax flags. */ - unsigned int flags : 16; - - /* Insertion function. This is used by the assembler. To insert an - operand value into an instruction, check this field. - - If it is NULL, execute - i |= (op & ((1 << o->bits) - 1)) << o->shift; - (i is the instruction which we are filling in, o is a pointer to - this structure, and op is the opcode value; this assumes twos - complement arithmetic). - - If this field is not NULL, then simply call it with the - instruction and the operand value. It will return the new value - of the instruction. If the ERRMSG argument is not NULL, then if - the operand value is illegal, *ERRMSG will be set to a warning - string (the operand will be inserted in any case). If the - operand value is legal, *ERRMSG will be unchanged (most operands - can accept any value). */ - unsigned (*insert) (unsigned instruction, int op, const char **errmsg); - - /* Extraction function. This is used by the disassembler. To - extract this operand type from an instruction, check this field. - - If it is NULL, compute - op = ((i) >> o->shift) & ((1 << o->bits) - 1); - if ((o->flags & AXP_OPERAND_SIGNED) != 0 - && (op & (1 << (o->bits - 1))) != 0) - op -= 1 << o->bits; - (i is the instruction, o is a pointer to this structure, and op - is the result; this assumes twos complement arithmetic). - - If this field is not NULL, then simply call it with the - instruction value. It will return the value of the operand. If - the INVALID argument is not NULL, *INVALID will be set to - non-zero if this operand type can not actually be extracted from - this operand (i.e., the instruction does not match). If the - operand is valid, *INVALID will not be changed. */ - int (*extract) (unsigned instruction, int *invalid); -}; - -/* Elements in the table are retrieved by indexing with values from - the operands field of the alpha_opcodes table. */ - -extern const struct alpha_operand alpha_operands[]; -extern const unsigned alpha_num_operands; - -/* Values defined for the flags field of a struct alpha_operand. */ - -/* Mask for selecting the type for typecheck purposes */ -#define AXP_OPERAND_TYPECHECK_MASK \ - (AXP_OPERAND_PARENS | AXP_OPERAND_COMMA | AXP_OPERAND_IR | \ - AXP_OPERAND_FPR | AXP_OPERAND_RELATIVE | AXP_OPERAND_SIGNED | \ - AXP_OPERAND_UNSIGNED) - -/* This operand does not actually exist in the assembler input. This - is used to support extended mnemonics, for which two operands fields - are identical. The assembler should call the insert function with - any op value. The disassembler should call the extract function, - ignore the return value, and check the value placed in the invalid - argument. */ -#define AXP_OPERAND_FAKE 01 - -/* The operand should be wrapped in parentheses rather than separated - from the previous by a comma. This is used for the load and store - instructions which want their operands to look like "Ra,disp(Rb)". */ -#define AXP_OPERAND_PARENS 02 - -/* Used in combination with PARENS, this supresses the supression of - the comma. This is used for "jmp Ra,(Rb),hint". */ -#define AXP_OPERAND_COMMA 04 - -/* This operand names an integer register. */ -#define AXP_OPERAND_IR 010 - -/* This operand names a floating point register. */ -#define AXP_OPERAND_FPR 020 - -/* This operand is a relative branch displacement. The disassembler - prints these symbolically if possible. */ -#define AXP_OPERAND_RELATIVE 040 - -/* This operand takes signed values. */ -#define AXP_OPERAND_SIGNED 0100 - -/* This operand takes unsigned values. This exists primarily so that - a flags value of 0 can be treated as end-of-arguments. */ -#define AXP_OPERAND_UNSIGNED 0200 - -/* Supress overflow detection on this field. This is used for hints. */ -#define AXP_OPERAND_NOOVERFLOW 0400 - -/* Mask for optional argument default value. */ -#define AXP_OPERAND_OPTIONAL_MASK 07000 - -/* This operand defaults to zero. This is used for jump hints. */ -#define AXP_OPERAND_DEFAULT_ZERO 01000 - -/* This operand should default to the first (real) operand and is used - in conjunction with AXP_OPERAND_OPTIONAL. This allows - "and $0,3,$0" to be written as "and $0,3", etc. I don't like - it, but it's what DEC does. */ -#define AXP_OPERAND_DEFAULT_FIRST 02000 - -/* Similarly, this operand should default to the second (real) operand. - This allows "negl $0" instead of "negl $0,$0". */ -#define AXP_OPERAND_DEFAULT_SECOND 04000 - - -/* Register common names */ - -#define AXP_REG_V0 0 -#define AXP_REG_T0 1 -#define AXP_REG_T1 2 -#define AXP_REG_T2 3 -#define AXP_REG_T3 4 -#define AXP_REG_T4 5 -#define AXP_REG_T5 6 -#define AXP_REG_T6 7 -#define AXP_REG_T7 8 -#define AXP_REG_S0 9 -#define AXP_REG_S1 10 -#define AXP_REG_S2 11 -#define AXP_REG_S3 12 -#define AXP_REG_S4 13 -#define AXP_REG_S5 14 -#define AXP_REG_FP 15 -#define AXP_REG_A0 16 -#define AXP_REG_A1 17 -#define AXP_REG_A2 18 -#define AXP_REG_A3 19 -#define AXP_REG_A4 20 -#define AXP_REG_A5 21 -#define AXP_REG_T8 22 -#define AXP_REG_T9 23 -#define AXP_REG_T10 24 -#define AXP_REG_T11 25 -#define AXP_REG_RA 26 -#define AXP_REG_PV 27 -#define AXP_REG_T12 27 -#define AXP_REG_AT 28 -#define AXP_REG_GP 29 -#define AXP_REG_SP 30 -#define AXP_REG_ZERO 31 - -#endif /* OPCODE_ALPHA_H */ diff --git a/include/opcode/arc.h b/include/opcode/arc.h deleted file mode 100644 index 695fec1..0000000 --- a/include/opcode/arc.h +++ /dev/null @@ -1,322 +0,0 @@ -/* Opcode table for the ARC. - Copyright 1994, 1995, 1997, 2001, 2002, 2003, 2010 - Free Software Foundation, Inc. - Contributed by Doug Evans (dje@cygnus.com). - - This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and - the GNU Binutils. - - GAS/GDB is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GAS/GDB is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GAS or GDB; see the file COPYING3. If not, write to - the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* List of the various cpu types. - The tables currently use bit masks to say whether the instruction or - whatever is supported by a particular cpu. This lets us have one entry - apply to several cpus. - - The `base' cpu must be 0. The cpu type is treated independently of - endianness. The complete `mach' number includes endianness. - These values are internal to opcodes/bfd/binutils/gas. */ -#define ARC_MACH_5 0 -#define ARC_MACH_6 1 -#define ARC_MACH_7 2 -#define ARC_MACH_8 4 - -/* Additional cpu values can be inserted here and ARC_MACH_BIG moved down. */ -#define ARC_MACH_BIG 16 - -/* Mask of number of bits necessary to record cpu type. */ -#define ARC_MACH_CPU_MASK (ARC_MACH_BIG - 1) - -/* Mask of number of bits necessary to record cpu type + endianness. */ -#define ARC_MACH_MASK ((ARC_MACH_BIG << 1) - 1) - -/* Type to denote an ARC instruction (at least a 32 bit unsigned int). */ - -typedef unsigned int arc_insn; - -struct arc_opcode { - char *syntax; /* syntax of insn */ - unsigned long mask, value; /* recognize insn if (op&mask) == value */ - int flags; /* various flag bits */ - -/* Values for `flags'. */ - -/* Return CPU number, given flag bits. */ -#define ARC_OPCODE_CPU(bits) ((bits) & ARC_MACH_CPU_MASK) - -/* Return MACH number, given flag bits. */ -#define ARC_OPCODE_MACH(bits) ((bits) & ARC_MACH_MASK) - -/* First opcode flag bit available after machine mask. */ -#define ARC_OPCODE_FLAG_START (ARC_MACH_MASK + 1) - -/* This insn is a conditional branch. */ -#define ARC_OPCODE_COND_BRANCH (ARC_OPCODE_FLAG_START) -#define SYNTAX_3OP (ARC_OPCODE_COND_BRANCH << 1) -#define SYNTAX_LENGTH (SYNTAX_3OP ) -#define SYNTAX_2OP (SYNTAX_3OP << 1) -#define OP1_MUST_BE_IMM (SYNTAX_2OP << 1) -#define OP1_IMM_IMPLIED (OP1_MUST_BE_IMM << 1) -#define SYNTAX_VALID (OP1_IMM_IMPLIED << 1) - -#define I(x) (((x) & 31) << 27) -#define A(x) (((x) & ARC_MASK_REG) << ARC_SHIFT_REGA) -#define B(x) (((x) & ARC_MASK_REG) << ARC_SHIFT_REGB) -#define C(x) (((x) & ARC_MASK_REG) << ARC_SHIFT_REGC) -#define R(x,b,m) (((x) & (m)) << (b)) /* value X, mask M, at bit B */ - -/* These values are used to optimize assembly and disassembly. Each insn - is on a list of related insns (same first letter for assembly, same - insn code for disassembly). */ - - struct arc_opcode *next_asm; /* Next instr to try during assembly. */ - struct arc_opcode *next_dis; /* Next instr to try during disassembly. */ - -/* Macros to create the hash values for the lists. */ -#define ARC_HASH_OPCODE(string) \ - ((string)[0] >= 'a' && (string)[0] <= 'z' ? (string)[0] - 'a' : 26) -#define ARC_HASH_ICODE(insn) \ - ((unsigned int) (insn) >> 27) - - /* Macros to access `next_asm', `next_dis' so users needn't care about the - underlying mechanism. */ -#define ARC_OPCODE_NEXT_ASM(op) ((op)->next_asm) -#define ARC_OPCODE_NEXT_DIS(op) ((op)->next_dis) -}; - -/* this is an "insert at front" linked list per Metaware spec - that new definitions override older ones. */ -extern struct arc_opcode *arc_ext_opcodes; - -struct arc_operand_value { - char *name; /* eg: "eq" */ - short value; /* eg: 1 */ - unsigned char type; /* index into `arc_operands' */ - unsigned char flags; /* various flag bits */ - -/* Values for `flags'. */ - -/* Return CPU number, given flag bits. */ -#define ARC_OPVAL_CPU(bits) ((bits) & ARC_MACH_CPU_MASK) -/* Return MACH number, given flag bits. */ -#define ARC_OPVAL_MACH(bits) ((bits) & ARC_MACH_MASK) -}; - -struct arc_ext_operand_value { - struct arc_ext_operand_value *next; - struct arc_operand_value operand; -}; - -extern struct arc_ext_operand_value *arc_ext_operands; - -struct arc_operand { -/* One of the insn format chars. */ - unsigned char fmt; - -/* The number of bits in the operand (may be unused for a modifier). */ - unsigned char bits; - -/* How far the operand is left shifted in the instruction, or - the modifier's flag bit (may be unused for a modifier. */ - unsigned char shift; - -/* Various flag bits. */ - int flags; - -/* Values for `flags'. */ - -/* This operand is a suffix to the opcode. */ -#define ARC_OPERAND_SUFFIX 1 - -/* This operand is a relative branch displacement. The disassembler - prints these symbolically if possible. */ -#define ARC_OPERAND_RELATIVE_BRANCH 2 - -/* This operand is an absolute branch address. The disassembler - prints these symbolically if possible. */ -#define ARC_OPERAND_ABSOLUTE_BRANCH 4 - -/* This operand is an address. The disassembler - prints these symbolically if possible. */ -#define ARC_OPERAND_ADDRESS 8 - -/* This operand is a long immediate value. */ -#define ARC_OPERAND_LIMM 0x10 - -/* This operand takes signed values. */ -#define ARC_OPERAND_SIGNED 0x20 - -/* This operand takes signed values, but also accepts a full positive - range of values. That is, if bits is 16, it takes any value from - -0x8000 to 0xffff. */ -#define ARC_OPERAND_SIGNOPT 0x40 - -/* This operand should be regarded as a negative number for the - purposes of overflow checking (i.e., the normal most negative - number is disallowed and one more than the normal most positive - number is allowed). This flag will only be set for a signed - operand. */ -#define ARC_OPERAND_NEGATIVE 0x80 - -/* This operand doesn't really exist. The program uses these operands - in special ways. */ -#define ARC_OPERAND_FAKE 0x100 - -/* separate flags operand for j and jl instructions */ -#define ARC_OPERAND_JUMPFLAGS 0x200 - -/* allow warnings and errors to be issued after call to insert_xxxxxx */ -#define ARC_OPERAND_WARN 0x400 -#define ARC_OPERAND_ERROR 0x800 - -/* this is a load operand */ -#define ARC_OPERAND_LOAD 0x8000 - -/* this is a store operand */ -#define ARC_OPERAND_STORE 0x10000 - -/* Modifier values. */ -/* A dot is required before a suffix. Eg: .le */ -#define ARC_MOD_DOT 0x1000 - -/* A normal register is allowed (not used, but here for completeness). */ -#define ARC_MOD_REG 0x2000 - -/* An auxiliary register name is expected. */ -#define ARC_MOD_AUXREG 0x4000 - -/* Sum of all ARC_MOD_XXX bits. */ -#define ARC_MOD_BITS 0x7000 - -/* Non-zero if the operand type is really a modifier. */ -#define ARC_MOD_P(X) ((X) & ARC_MOD_BITS) - -/* enforce read/write only register restrictions */ -#define ARC_REGISTER_READONLY 0x01 -#define ARC_REGISTER_WRITEONLY 0x02 -#define ARC_REGISTER_NOSHORT_CUT 0x04 - -/* Insertion function. This is used by the assembler. To insert an - operand value into an instruction, check this field. - - If it is NULL, execute - i |= (p & ((1 << o->bits) - 1)) << o->shift; - (I is the instruction which we are filling in, O is a pointer to - this structure, and OP is the opcode value; this assumes twos - complement arithmetic). - - If this field is not NULL, then simply call it with the - instruction and the operand value. It will return the new value - of the instruction. If the ERRMSG argument is not NULL, then if - the operand value is illegal, *ERRMSG will be set to a warning - string (the operand will be inserted in any case). If the - operand value is legal, *ERRMSG will be unchanged. - - REG is non-NULL when inserting a register value. */ - - arc_insn (*insert) - (arc_insn insn, const struct arc_operand *operand, int mods, - const struct arc_operand_value *reg, long value, const char **errmsg); - -/* Extraction function. This is used by the disassembler. To - extract this operand type from an instruction, check this field. - - If it is NULL, compute - op = ((i) >> o->shift) & ((1 << o->bits) - 1); - if ((o->flags & ARC_OPERAND_SIGNED) != 0 - && (op & (1 << (o->bits - 1))) != 0) - op -= 1 << o->bits; - (I is the instruction, O is a pointer to this structure, and OP - is the result; this assumes twos complement arithmetic). - - If this field is not NULL, then simply call it with the - instruction value. It will return the value of the operand. If - the INVALID argument is not NULL, *INVALID will be set to - non-zero if this operand type can not actually be extracted from - this operand (i.e., the instruction does not match). If the - operand is valid, *INVALID will not be changed. - - INSN is a pointer to an array of two `arc_insn's. The first element is - the insn, the second is the limm if present. - - Operands that have a printable form like registers and suffixes have - their struct arc_operand_value pointer stored in OPVAL. */ - - long (*extract) - (arc_insn *insn, const struct arc_operand *operand, int mods, - const struct arc_operand_value **opval, int *invalid); -}; - -/* Bits that say what version of cpu we have. These should be passed to - arc_init_opcode_tables. At present, all there is is the cpu type. */ - -/* CPU number, given value passed to `arc_init_opcode_tables'. */ -#define ARC_HAVE_CPU(bits) ((bits) & ARC_MACH_CPU_MASK) -/* MACH number, given value passed to `arc_init_opcode_tables'. */ -#define ARC_HAVE_MACH(bits) ((bits) & ARC_MACH_MASK) - -/* Special register values: */ -#define ARC_REG_SHIMM_UPDATE 61 -#define ARC_REG_SHIMM 63 -#define ARC_REG_LIMM 62 - -/* Non-zero if REG is a constant marker. */ -#define ARC_REG_CONSTANT_P(REG) ((REG) >= 61) - -/* Positions and masks of various fields: */ -#define ARC_SHIFT_REGA 21 -#define ARC_SHIFT_REGB 15 -#define ARC_SHIFT_REGC 9 -#define ARC_MASK_REG 63 - -/* Delay slot types. */ -#define ARC_DELAY_NONE 0 /* no delay slot */ -#define ARC_DELAY_NORMAL 1 /* delay slot in both cases */ -#define ARC_DELAY_JUMP 2 /* delay slot only if branch taken */ - -/* Non-zero if X will fit in a signed 9 bit field. */ -#define ARC_SHIMM_CONST_P(x) ((long) (x) >= -256 && (long) (x) <= 255) - -extern const struct arc_operand arc_operands[]; -extern const int arc_operand_count; -extern struct arc_opcode arc_opcodes[]; -extern const int arc_opcodes_count; -extern const struct arc_operand_value arc_suffixes[]; -extern const int arc_suffixes_count; -extern const struct arc_operand_value arc_reg_names[]; -extern const int arc_reg_names_count; -extern unsigned char arc_operand_map[]; - -/* Utility fns in arc-opc.c. */ -int arc_get_opcode_mach (int, int); - -/* `arc_opcode_init_tables' must be called before `arc_xxx_supported'. */ -void arc_opcode_init_tables (int); -void arc_opcode_init_insert (void); -void arc_opcode_init_extract (void); -const struct arc_opcode *arc_opcode_lookup_asm (const char *); -const struct arc_opcode *arc_opcode_lookup_dis (unsigned int); -int arc_opcode_limm_p (long *); -const struct arc_operand_value *arc_opcode_lookup_suffix - (const struct arc_operand *type, int value); -int arc_opcode_supported (const struct arc_opcode *); -int arc_opval_supported (const struct arc_operand_value *); -int arc_limm_fixup_adjust (arc_insn); -int arc_insn_is_j (arc_insn); -int arc_insn_not_jl (arc_insn); -int arc_operand_type (int); -struct arc_operand_value *get_ext_suffix (char *); -int arc_get_noshortcut_flag (void); diff --git a/include/opcode/arm.h b/include/opcode/arm.h deleted file mode 100644 index 851fd3c..0000000 --- a/include/opcode/arm.h +++ /dev/null @@ -1,289 +0,0 @@ -/* ARM assembler/disassembler support. - Copyright 2004, 2010, 2011 Free Software Foundation, Inc. - - This file is part of GDB and GAS. - - GDB and GAS are free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 3, or (at - your option) any later version. - - GDB and GAS are distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GDB or GAS; see the file COPYING3. If not, write to the - Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* The following bitmasks control CPU extensions: */ -#define ARM_EXT_V1 0x00000001 /* All processors (core set). */ -#define ARM_EXT_V2 0x00000002 /* Multiply instructions. */ -#define ARM_EXT_V2S 0x00000004 /* SWP instructions. */ -#define ARM_EXT_V3 0x00000008 /* MSR MRS. */ -#define ARM_EXT_V3M 0x00000010 /* Allow long multiplies. */ -#define ARM_EXT_V4 0x00000020 /* Allow half word loads. */ -#define ARM_EXT_V4T 0x00000040 /* Thumb. */ -#define ARM_EXT_V5 0x00000080 /* Allow CLZ, etc. */ -#define ARM_EXT_V5T 0x00000100 /* Improved interworking. */ -#define ARM_EXT_V5ExP 0x00000200 /* DSP core set. */ -#define ARM_EXT_V5E 0x00000400 /* DSP Double transfers. */ -#define ARM_EXT_V5J 0x00000800 /* Jazelle extension. */ -#define ARM_EXT_V6 0x00001000 /* ARM V6. */ -#define ARM_EXT_V6K 0x00002000 /* ARM V6K. */ -/* 0x00004000 Was ARM V6Z. */ -#define ARM_EXT_V8 0x00004000 /* is now ARMv8. */ -#define ARM_EXT_V6T2 0x00008000 /* Thumb-2. */ -#define ARM_EXT_DIV 0x00010000 /* Integer division. */ -/* The 'M' in Arm V7M stands for Microcontroller. - On earlier architecture variants it stands for Multiply. */ -#define ARM_EXT_V5E_NOTM 0x00020000 /* Arm V5E but not Arm V7M. */ -#define ARM_EXT_V6_NOTM 0x00040000 /* Arm V6 but not Arm V7M. */ -#define ARM_EXT_V7 0x00080000 /* Arm V7. */ -#define ARM_EXT_V7A 0x00100000 /* Arm V7A. */ -#define ARM_EXT_V7R 0x00200000 /* Arm V7R. */ -#define ARM_EXT_V7M 0x00400000 /* Arm V7M. */ -#define ARM_EXT_V6M 0x00800000 /* ARM V6M. */ -#define ARM_EXT_BARRIER 0x01000000 /* DSB/DMB/ISB. */ -#define ARM_EXT_THUMB_MSR 0x02000000 /* Thumb MSR/MRS. */ -#define ARM_EXT_V6_DSP 0x04000000 /* ARM v6 (DSP-related), - not in v7-M. */ -#define ARM_EXT_MP 0x08000000 /* Multiprocessing Extensions. */ -#define ARM_EXT_SEC 0x10000000 /* Security extensions. */ -#define ARM_EXT_OS 0x20000000 /* OS Extensions. */ -#define ARM_EXT_ADIV 0x40000000 /* Integer divide extensions in ARM - state. */ -#define ARM_EXT_VIRT 0x80000000 /* Virtualization extensions. */ - -/* Co-processor space extensions. */ -#define ARM_CEXT_XSCALE 0x00000001 /* Allow MIA etc. */ -#define ARM_CEXT_MAVERICK 0x00000002 /* Use Cirrus/DSP coprocessor. */ -#define ARM_CEXT_IWMMXT 0x00000004 /* Intel Wireless MMX technology coprocessor. */ -#define ARM_CEXT_IWMMXT2 0x00000008 /* Intel Wireless MMX technology coprocessor version 2. */ - -#define FPU_ENDIAN_PURE 0x80000000 /* Pure-endian doubles. */ -#define FPU_ENDIAN_BIG 0 /* Double words-big-endian. */ -#define FPU_FPA_EXT_V1 0x40000000 /* Base FPA instruction set. */ -#define FPU_FPA_EXT_V2 0x20000000 /* LFM/SFM. */ -#define FPU_MAVERICK 0x10000000 /* Cirrus Maverick. */ -#define FPU_VFP_EXT_V1xD 0x08000000 /* Base VFP instruction set. */ -#define FPU_VFP_EXT_V1 0x04000000 /* Double-precision insns. */ -#define FPU_VFP_EXT_V2 0x02000000 /* ARM10E VFPr1. */ -#define FPU_VFP_EXT_V3xD 0x01000000 /* VFPv3 single-precision. */ -#define FPU_VFP_EXT_V3 0x00800000 /* VFPv3 double-precision. */ -#define FPU_NEON_EXT_V1 0x00400000 /* Neon (SIMD) insns. */ -#define FPU_VFP_EXT_D32 0x00200000 /* Registers D16-D31. */ -#define FPU_VFP_EXT_FP16 0x00100000 /* Half-precision extensions. */ -#define FPU_NEON_EXT_FMA 0x00080000 /* Neon fused multiply-add */ -#define FPU_VFP_EXT_FMA 0x00040000 /* VFP fused multiply-add */ -#define FPU_VFP_EXT_ARMV8 0x00020000 /* FP for ARMv8. */ -#define FPU_NEON_EXT_ARMV8 0x00010000 /* Neon for ARMv8. */ -#define FPU_CRYPTO_EXT_ARMV8 0x00008000 /* Crypto for ARMv8. */ -#define CRC_EXT_ARMV8 0x00004000 /* CRC32 for ARMv8. */ - -/* Architectures are the sum of the base and extensions. The ARM ARM (rev E) - defines the following: ARMv3, ARMv3M, ARMv4xM, ARMv4, ARMv4TxM, ARMv4T, - ARMv5xM, ARMv5, ARMv5TxM, ARMv5T, ARMv5TExP, ARMv5TE. To these we add - three more to cover cores prior to ARM6. Finally, there are cores which - implement further extensions in the co-processor space. */ -#define ARM_AEXT_V1 ARM_EXT_V1 -#define ARM_AEXT_V2 (ARM_AEXT_V1 | ARM_EXT_V2) -#define ARM_AEXT_V2S (ARM_AEXT_V2 | ARM_EXT_V2S) -#define ARM_AEXT_V3 (ARM_AEXT_V2S | ARM_EXT_V3) -#define ARM_AEXT_V3M (ARM_AEXT_V3 | ARM_EXT_V3M) -#define ARM_AEXT_V4xM (ARM_AEXT_V3 | ARM_EXT_V4) -#define ARM_AEXT_V4 (ARM_AEXT_V3M | ARM_EXT_V4) -#define ARM_AEXT_V4TxM (ARM_AEXT_V4xM | ARM_EXT_V4T) -#define ARM_AEXT_V4T (ARM_AEXT_V4 | ARM_EXT_V4T) -#define ARM_AEXT_V5xM (ARM_AEXT_V4xM | ARM_EXT_V5) -#define ARM_AEXT_V5 (ARM_AEXT_V4 | ARM_EXT_V5) -#define ARM_AEXT_V5TxM (ARM_AEXT_V5xM | ARM_EXT_V4T | ARM_EXT_V5T) -#define ARM_AEXT_V5T (ARM_AEXT_V5 | ARM_EXT_V4T | ARM_EXT_V5T) -#define ARM_AEXT_V5TExP (ARM_AEXT_V5T | ARM_EXT_V5ExP) -#define ARM_AEXT_V5TE (ARM_AEXT_V5TExP | ARM_EXT_V5E) -#define ARM_AEXT_V5TEJ (ARM_AEXT_V5TE | ARM_EXT_V5J) -#define ARM_AEXT_V6 (ARM_AEXT_V5TEJ | ARM_EXT_V6) -#define ARM_AEXT_V6K (ARM_AEXT_V6 | ARM_EXT_V6K) -#define ARM_AEXT_V6Z (ARM_AEXT_V6K | ARM_EXT_SEC) -#define ARM_AEXT_V6ZK (ARM_AEXT_V6K | ARM_EXT_SEC) -#define ARM_AEXT_V6T2 (ARM_AEXT_V6 \ - | ARM_EXT_V6T2 | ARM_EXT_V6_NOTM | ARM_EXT_THUMB_MSR \ - | ARM_EXT_V6_DSP ) -#define ARM_AEXT_V6KT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K) -#define ARM_AEXT_V6ZT2 (ARM_AEXT_V6T2 | ARM_EXT_SEC) -#define ARM_AEXT_V6ZKT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K | ARM_EXT_SEC) -#define ARM_AEXT_V7_ARM (ARM_AEXT_V6KT2 | ARM_EXT_V7 | ARM_EXT_BARRIER) -#define ARM_AEXT_V7A (ARM_AEXT_V7_ARM | ARM_EXT_V7A) -#define ARM_AEXT_V7R (ARM_AEXT_V7_ARM | ARM_EXT_V7R | ARM_EXT_DIV) -#define ARM_AEXT_NOTM \ - (ARM_AEXT_V4 | ARM_EXT_V5ExP | ARM_EXT_V5J | ARM_EXT_V6_NOTM \ - | ARM_EXT_V6_DSP ) -#define ARM_AEXT_V6M_ONLY \ - ((ARM_EXT_BARRIER | ARM_EXT_V6M | ARM_EXT_THUMB_MSR) & ~(ARM_AEXT_NOTM)) -#define ARM_AEXT_V6M \ - ((ARM_AEXT_V6K | ARM_AEXT_V6M_ONLY) & ~(ARM_AEXT_NOTM)) -#define ARM_AEXT_V6SM (ARM_AEXT_V6M | ARM_EXT_OS) -#define ARM_AEXT_V7M \ - ((ARM_AEXT_V7_ARM | ARM_EXT_V6M | ARM_EXT_V7M | ARM_EXT_DIV) \ - & ~(ARM_AEXT_NOTM)) -#define ARM_AEXT_V7 (ARM_AEXT_V7A & ARM_AEXT_V7R & ARM_AEXT_V7M) -#define ARM_AEXT_V7EM \ - (ARM_AEXT_V7M | ARM_EXT_V5ExP | ARM_EXT_V6_DSP) -#define ARM_AEXT_V8A \ - (ARM_AEXT_V7A | ARM_EXT_MP | ARM_EXT_SEC | ARM_EXT_DIV | ARM_EXT_ADIV \ - | ARM_EXT_VIRT | ARM_EXT_V8) - -/* Processors with specific extensions in the co-processor space. */ -#define ARM_ARCH_XSCALE ARM_FEATURE (ARM_AEXT_V5TE, ARM_CEXT_XSCALE) -#define ARM_ARCH_IWMMXT \ - ARM_FEATURE (ARM_AEXT_V5TE, ARM_CEXT_XSCALE | ARM_CEXT_IWMMXT) -#define ARM_ARCH_IWMMXT2 \ - ARM_FEATURE (ARM_AEXT_V5TE, ARM_CEXT_XSCALE | ARM_CEXT_IWMMXT | ARM_CEXT_IWMMXT2) - -#define FPU_VFP_V1xD (FPU_VFP_EXT_V1xD | FPU_ENDIAN_PURE) -#define FPU_VFP_V1 (FPU_VFP_V1xD | FPU_VFP_EXT_V1) -#define FPU_VFP_V2 (FPU_VFP_V1 | FPU_VFP_EXT_V2) -#define FPU_VFP_V3D16 (FPU_VFP_V2 | FPU_VFP_EXT_V3xD | FPU_VFP_EXT_V3) -#define FPU_VFP_V3 (FPU_VFP_V3D16 | FPU_VFP_EXT_D32) -#define FPU_VFP_V3xD (FPU_VFP_V1xD | FPU_VFP_EXT_V2 | FPU_VFP_EXT_V3xD) -#define FPU_VFP_V4D16 (FPU_VFP_V3D16 | FPU_VFP_EXT_FP16 | FPU_VFP_EXT_FMA) -#define FPU_VFP_V4 (FPU_VFP_V3 | FPU_VFP_EXT_FP16 | FPU_VFP_EXT_FMA) -#define FPU_VFP_V4_SP_D16 (FPU_VFP_V3xD | FPU_VFP_EXT_FP16 | FPU_VFP_EXT_FMA) -#define FPU_VFP_ARMV8 (FPU_VFP_V4 | FPU_VFP_EXT_ARMV8) -#define FPU_NEON_ARMV8 (FPU_NEON_EXT_V1 | FPU_NEON_EXT_FMA | FPU_NEON_EXT_ARMV8) -#define FPU_CRYPTO_ARMV8 (FPU_CRYPTO_EXT_ARMV8) -#define FPU_VFP_HARD (FPU_VFP_EXT_V1xD | FPU_VFP_EXT_V1 | FPU_VFP_EXT_V2 \ - | FPU_VFP_EXT_V3xD | FPU_VFP_EXT_FMA | FPU_NEON_EXT_FMA \ - | FPU_VFP_EXT_V3 | FPU_NEON_EXT_V1 | FPU_VFP_EXT_D32) -#define FPU_FPA (FPU_FPA_EXT_V1 | FPU_FPA_EXT_V2) - -/* Deprecated. */ -#define FPU_ARCH_VFP ARM_FEATURE (0, FPU_ENDIAN_PURE) - -#define FPU_ARCH_FPE ARM_FEATURE (0, FPU_FPA_EXT_V1) -#define FPU_ARCH_FPA ARM_FEATURE (0, FPU_FPA) - -#define FPU_ARCH_VFP_V1xD ARM_FEATURE (0, FPU_VFP_V1xD) -#define FPU_ARCH_VFP_V1 ARM_FEATURE (0, FPU_VFP_V1) -#define FPU_ARCH_VFP_V2 ARM_FEATURE (0, FPU_VFP_V2) -#define FPU_ARCH_VFP_V3D16 ARM_FEATURE (0, FPU_VFP_V3D16) -#define FPU_ARCH_VFP_V3D16_FP16 \ - ARM_FEATURE (0, FPU_VFP_V3D16 | FPU_VFP_EXT_FP16) -#define FPU_ARCH_VFP_V3 ARM_FEATURE (0, FPU_VFP_V3) -#define FPU_ARCH_VFP_V3_FP16 ARM_FEATURE (0, FPU_VFP_V3 | FPU_VFP_EXT_FP16) -#define FPU_ARCH_VFP_V3xD ARM_FEATURE (0, FPU_VFP_V3xD) -#define FPU_ARCH_VFP_V3xD_FP16 ARM_FEATURE (0, FPU_VFP_V3xD | FPU_VFP_EXT_FP16) -#define FPU_ARCH_NEON_V1 ARM_FEATURE (0, FPU_NEON_EXT_V1) -#define FPU_ARCH_VFP_V3_PLUS_NEON_V1 \ - ARM_FEATURE (0, FPU_VFP_V3 | FPU_NEON_EXT_V1) -#define FPU_ARCH_NEON_FP16 \ - ARM_FEATURE (0, FPU_VFP_V3 | FPU_NEON_EXT_V1 | FPU_VFP_EXT_FP16) -#define FPU_ARCH_VFP_HARD ARM_FEATURE (0, FPU_VFP_HARD) -#define FPU_ARCH_VFP_V4 ARM_FEATURE(0, FPU_VFP_V4) -#define FPU_ARCH_VFP_V4D16 ARM_FEATURE(0, FPU_VFP_V4D16) -#define FPU_ARCH_VFP_V4_SP_D16 ARM_FEATURE(0, FPU_VFP_V4_SP_D16) -#define FPU_ARCH_NEON_VFP_V4 \ - ARM_FEATURE(0, FPU_VFP_V4 | FPU_NEON_EXT_V1 | FPU_NEON_EXT_FMA) -#define FPU_ARCH_VFP_ARMV8 ARM_FEATURE(0, FPU_VFP_ARMV8) -#define FPU_ARCH_NEON_VFP_ARMV8 ARM_FEATURE(0, FPU_NEON_ARMV8 | FPU_VFP_ARMV8) -#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8 \ - ARM_FEATURE(0, FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8) -#define ARCH_CRC_ARMV8 ARM_FEATURE(0, CRC_EXT_ARMV8) - -#define FPU_ARCH_ENDIAN_PURE ARM_FEATURE (0, FPU_ENDIAN_PURE) - -#define FPU_ARCH_MAVERICK ARM_FEATURE (0, FPU_MAVERICK) - -#define ARM_ARCH_V1 ARM_FEATURE (ARM_AEXT_V1, 0) -#define ARM_ARCH_V2 ARM_FEATURE (ARM_AEXT_V2, 0) -#define ARM_ARCH_V2S ARM_FEATURE (ARM_AEXT_V2S, 0) -#define ARM_ARCH_V3 ARM_FEATURE (ARM_AEXT_V3, 0) -#define ARM_ARCH_V3M ARM_FEATURE (ARM_AEXT_V3M, 0) -#define ARM_ARCH_V4xM ARM_FEATURE (ARM_AEXT_V4xM, 0) -#define ARM_ARCH_V4 ARM_FEATURE (ARM_AEXT_V4, 0) -#define ARM_ARCH_V4TxM ARM_FEATURE (ARM_AEXT_V4TxM, 0) -#define ARM_ARCH_V4T ARM_FEATURE (ARM_AEXT_V4T, 0) -#define ARM_ARCH_V5xM ARM_FEATURE (ARM_AEXT_V5xM, 0) -#define ARM_ARCH_V5 ARM_FEATURE (ARM_AEXT_V5, 0) -#define ARM_ARCH_V5TxM ARM_FEATURE (ARM_AEXT_V5TxM, 0) -#define ARM_ARCH_V5T ARM_FEATURE (ARM_AEXT_V5T, 0) -#define ARM_ARCH_V5TExP ARM_FEATURE (ARM_AEXT_V5TExP, 0) -#define ARM_ARCH_V5TE ARM_FEATURE (ARM_AEXT_V5TE, 0) -#define ARM_ARCH_V5TEJ ARM_FEATURE (ARM_AEXT_V5TEJ, 0) -#define ARM_ARCH_V6 ARM_FEATURE (ARM_AEXT_V6, 0) -#define ARM_ARCH_V6K ARM_FEATURE (ARM_AEXT_V6K, 0) -#define ARM_ARCH_V6Z ARM_FEATURE (ARM_AEXT_V6Z, 0) -#define ARM_ARCH_V6ZK ARM_FEATURE (ARM_AEXT_V6ZK, 0) -#define ARM_ARCH_V6T2 ARM_FEATURE (ARM_AEXT_V6T2, 0) -#define ARM_ARCH_V6KT2 ARM_FEATURE (ARM_AEXT_V6KT2, 0) -#define ARM_ARCH_V6ZT2 ARM_FEATURE (ARM_AEXT_V6ZT2, 0) -#define ARM_ARCH_V6ZKT2 ARM_FEATURE (ARM_AEXT_V6ZKT2, 0) -#define ARM_ARCH_V6M ARM_FEATURE (ARM_AEXT_V6M, 0) -#define ARM_ARCH_V6SM ARM_FEATURE (ARM_AEXT_V6SM, 0) -#define ARM_ARCH_V7 ARM_FEATURE (ARM_AEXT_V7, 0) -#define ARM_ARCH_V7A ARM_FEATURE (ARM_AEXT_V7A, 0) -#define ARM_ARCH_V7R ARM_FEATURE (ARM_AEXT_V7R, 0) -#define ARM_ARCH_V7M ARM_FEATURE (ARM_AEXT_V7M, 0) -#define ARM_ARCH_V7EM ARM_FEATURE (ARM_AEXT_V7EM, 0) -#define ARM_ARCH_V8A ARM_FEATURE (ARM_AEXT_V8A, 0) - -/* Some useful combinations: */ -#define ARM_ARCH_NONE ARM_FEATURE (0, 0) -#define FPU_NONE ARM_FEATURE (0, 0) -#define ARM_ANY ARM_FEATURE (-1, 0) /* Any basic core. */ -#define FPU_ANY_HARD ARM_FEATURE (0, FPU_FPA | FPU_VFP_HARD | FPU_MAVERICK) -#define ARM_ARCH_THUMB2 ARM_FEATURE (ARM_EXT_V6T2 | ARM_EXT_V7 | ARM_EXT_V7A | ARM_EXT_V7R | ARM_EXT_V7M | ARM_EXT_DIV, 0) -/* v7-a+sec. */ -#define ARM_ARCH_V7A_SEC ARM_FEATURE (ARM_AEXT_V7A | ARM_EXT_SEC, 0) -/* v7-a+mp+sec. */ -#define ARM_ARCH_V7A_MP_SEC \ - ARM_FEATURE (ARM_AEXT_V7A | ARM_EXT_MP | ARM_EXT_SEC, \ - 0) -/* v7-a+idiv+mp+sec+virt. */ -#define ARM_ARCH_V7A_IDIV_MP_SEC_VIRT \ - ARM_FEATURE (ARM_AEXT_V7A | ARM_EXT_MP | ARM_EXT_SEC \ - | ARM_EXT_DIV | ARM_EXT_ADIV \ - | ARM_EXT_VIRT, 0) -/* v7-r+idiv. */ -#define ARM_ARCH_V7R_IDIV ARM_FEATURE (ARM_AEXT_V7R | ARM_EXT_ADIV, 0) -/* Features that are present in v6M and v6S-M but not other v6 cores. */ -#define ARM_ARCH_V6M_ONLY ARM_FEATURE (ARM_AEXT_V6M_ONLY, 0) -/* v8-a+fp. */ -#define ARM_ARCH_V8A_FP ARM_FEATURE (ARM_AEXT_V8A, FPU_ARCH_VFP_ARMV8) -/* v8-a+simd (implies fp). */ -#define ARM_ARCH_V8A_SIMD ARM_FEATURE (ARM_AEXT_V8A, \ - FPU_ARCH_NEON_VFP_ARMV8) -/* v8-a+crypto (implies simd+fp). */ -#define ARM_ARCH_V8A_CRYPTOV1 ARM_FEATURE (ARM_AEXT_V8A, \ - FPU_ARCH_CRYPTO_NEON_VFP_ARMV8) - -/* There are too many feature bits to fit in a single word, so use a - structure. For simplicity we put all core features in one word and - everything else in the other. */ -typedef struct -{ - unsigned long core; - unsigned long coproc; -} arm_feature_set; - -#define ARM_CPU_HAS_FEATURE(CPU,FEAT) \ - (((CPU).core & (FEAT).core) != 0 || ((CPU).coproc & (FEAT).coproc) != 0) - -#define ARM_CPU_IS_ANY(CPU) \ - ((CPU).core == ((arm_feature_set)ARM_ANY).core) - -#define ARM_MERGE_FEATURE_SETS(TARG,F1,F2) \ - do { \ - (TARG).core = (F1).core | (F2).core; \ - (TARG).coproc = (F1).coproc | (F2).coproc; \ - } while (0) - -#define ARM_CLEAR_FEATURE(TARG,F1,F2) \ - do { \ - (TARG).core = (F1).core &~ (F2).core; \ - (TARG).coproc = (F1).coproc &~ (F2).coproc; \ - } while (0) - -#define ARM_FEATURE(core, coproc) {(core), (coproc)} diff --git a/include/opcode/avr.h b/include/opcode/avr.h deleted file mode 100644 index f1d73ad..0000000 --- a/include/opcode/avr.h +++ /dev/null @@ -1,300 +0,0 @@ -/* Opcode table for the Atmel AVR micro controllers. - - Copyright 2000, 2001, 2004, 2006, 2008, 2010, 2012 Free Software Foundation, Inc. - Contributed by Denis Chertykov - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define AVR_ISA_1200 0x0001 /* In the beginning there was ... */ -#define AVR_ISA_LPM 0x0002 /* device has LPM */ -#define AVR_ISA_LPMX 0x0004 /* device has LPM Rd,Z[+] */ -#define AVR_ISA_SRAM 0x0008 /* device has SRAM (LD, ST, PUSH, POP, ...) */ -#define AVR_ISA_MEGA 0x0020 /* device has >8K program memory (JMP and CALL - supported, no 8K wrap on RJMP and RCALL) */ -#define AVR_ISA_MUL 0x0040 /* device has new core (MUL, FMUL, ...) */ -#define AVR_ISA_ELPM 0x0080 /* device has >64K program memory (ELPM) */ -#define AVR_ISA_ELPMX 0x0100 /* device has ELPM Rd,Z[+] */ -#define AVR_ISA_SPM 0x0200 /* device can program itself */ -#define AVR_ISA_BRK 0x0400 /* device has BREAK (on-chip debug) */ -#define AVR_ISA_EIND 0x0800 /* device has >128K program memory (none yet) */ -#define AVR_ISA_MOVW 0x1000 /* device has MOVW */ -#define AVR_ISA_SPMX 0x2000 /* device has SPM Z[+] */ -#define AVR_ISA_DES 0x4000 /* device has DES */ -#define AVR_ISA_RMW 0x8000 /* device has RMW instructions XCH,LAC,LAS,LAT */ - -#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM) -#define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM) -/* For the attiny26 which is missing LPM Rd,Z+. */ -#define AVR_ISA_2xxe (AVR_ISA_2xxx | AVR_ISA_LPMX) -#define AVR_ISA_RF401 (AVR_ISA_2xxx | AVR_ISA_MOVW | AVR_ISA_LPMX) -#define AVR_ISA_TINY2 (AVR_ISA_2xxx | AVR_ISA_MOVW | AVR_ISA_LPMX | \ - AVR_ISA_SPM | AVR_ISA_BRK) -#define AVR_ISA_M603 (AVR_ISA_2xxx | AVR_ISA_MEGA) -#define AVR_ISA_M103 (AVR_ISA_M603 | AVR_ISA_ELPM) -#define AVR_ISA_M8 (AVR_ISA_2xxx | AVR_ISA_MUL | AVR_ISA_MOVW | \ - AVR_ISA_LPMX | AVR_ISA_SPM) -#define AVR_ISA_PWMx (AVR_ISA_M8 | AVR_ISA_BRK) -#define AVR_ISA_M161 (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | \ - AVR_ISA_LPMX | AVR_ISA_SPM) -#define AVR_ISA_94K (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | AVR_ISA_LPMX) -#define AVR_ISA_M323 (AVR_ISA_M161 | AVR_ISA_BRK) -#define AVR_ISA_M128 (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX) -#define AVR_ISA_M256 (AVR_ISA_M128 | AVR_ISA_EIND) -#define AVR_ISA_XMEGA (AVR_ISA_M256 | AVR_ISA_SPMX | AVR_ISA_DES) -#define AVR_ISA_XMEGAU (AVR_ISA_XMEGA | AVR_ISA_RMW) - -#define AVR_ISA_AVR1 AVR_ISA_TINY1 -#define AVR_ISA_AVR2 AVR_ISA_2xxx -#define AVR_ISA_AVR25 AVR_ISA_TINY2 -#define AVR_ISA_AVR3 AVR_ISA_M603 -#define AVR_ISA_AVR31 AVR_ISA_M103 -#define AVR_ISA_AVR35 (AVR_ISA_AVR3 | AVR_ISA_MOVW | \ - AVR_ISA_LPMX | AVR_ISA_SPM | AVR_ISA_BRK) -#define AVR_ISA_AVR3_ALL (AVR_ISA_AVR3 | AVR_ISA_AVR31 | AVR_ISA_AVR35) -#define AVR_ISA_AVR4 AVR_ISA_PWMx -#define AVR_ISA_AVR5 AVR_ISA_M323 -#define AVR_ISA_AVR51 AVR_ISA_M128 -#define AVR_ISA_AVR6 (AVR_ISA_1200 | AVR_ISA_LPM | AVR_ISA_LPMX | \ - AVR_ISA_SRAM | AVR_ISA_MEGA | AVR_ISA_MUL | \ - AVR_ISA_ELPM | AVR_ISA_ELPMX | AVR_ISA_SPM | \ - AVR_ISA_BRK | AVR_ISA_EIND | AVR_ISA_MOVW) - -#define REGISTER_P(x) ((x) == 'r' \ - || (x) == 'd' \ - || (x) == 'w' \ - || (x) == 'a' \ - || (x) == 'v') - -/* Undefined combination of operands - does the register - operand overlap with pre-decremented or post-incremented - pointer register (like ld r31,Z+)? */ -#define AVR_UNDEF_P(x) (((x) & 0xFFED) == 0x91E5 || \ - ((x) & 0xFDEF) == 0x91AD || ((x) & 0xFDEF) == 0x91AE || \ - ((x) & 0xFDEF) == 0x91C9 || ((x) & 0xFDEF) == 0x91CA || \ - ((x) & 0xFDEF) == 0x91E1 || ((x) & 0xFDEF) == 0x91E2) - -/* Is this a skip instruction {cpse,sbic,sbis,sbrc,sbrs}? */ -#define AVR_SKIP_P(x) (((x) & 0xFC00) == 0x1000 || \ - ((x) & 0xFD00) == 0x9900 || ((x) & 0xFC08) == 0xFC00) - -/* Is this `ldd r,b+0' or `std b+0,r' (b={Y,Z}, disassembled as - `ld r,b' or `st b,r' respectively - next opcode entry)? */ -#define AVR_DISP0_P(x) (((x) & 0xFC07) == 0x8000) - -/* constraint letters - r - any register - d - `ldi' register (r16-r31) - v - `movw' even register (r0, r2, ..., r28, r30) - a - `fmul' register (r16-r23) - w - `adiw' register (r24,r26,r28,r30) - e - pointer registers (X,Y,Z) - b - base pointer register and displacement ([YZ]+disp) - z - Z pointer register (for [e]lpm Rd,Z[+]) - M - immediate value from 0 to 255 - n - immediate value from 0 to 255 ( n = ~M ). Relocation impossible - s - immediate value from 0 to 7 - P - Port address value from 0 to 63. (in, out) - p - Port address value from 0 to 31. (cbi, sbi, sbic, sbis) - K - immediate value from 0 to 63 (used in `adiw', `sbiw') - i - immediate value - l - signed pc relative offset from -64 to 63 - L - signed pc relative offset from -2048 to 2047 - h - absolute code address (call, jmp) - S - immediate value from 0 to 7 (S = s << 4) - E - immediate value from 0 to 15, shifted left by 4 (des) - ? - use this opcode entry if no parameters, else use next opcode entry - - Order is important - some binary opcodes have more than one name, - the disassembler will only see the first match. - - Remaining undefined opcodes (1699 total - some of them might work - as normal instructions if not all of the bits are decoded): - - 0x0001...0x00ff (255) (known to be decoded as `nop' by the old core) - "100100xxxxxxx011" (128) 0x9[0-3][0-9a-f][3b] - "100100xxxxxx1000" (64) 0x9[0-3][0-9a-f]8 - "1001010xxxxx0100" (32) 0x9[45][0-9a-f]4 - "1001010x001x1001" (4) 0x9[45][23]9 - "1001010x01xx1001" (8) 0x9[45][4-7]9 - "1001010x1xxx1001" (16) 0x9[45][8-9a-f]9 - "1001010xxxxx1011" (32) 0x9[45][0-9a-f]b - "10010101001x1000" (2) 0x95[23]8 - "1001010101xx1000" (4) 0x95[4-7]8 - "1001010110111000" (1) 0x95b8 - "1001010111111000" (1) 0x95f8 (`espm' removed in databook update) - "11111xxxxxxx1xxx" (1024) 0xf[8-9a-f][0-9a-f][8-9a-f] - */ - -AVR_INSN (clc, "", "1001010010001000", 1, AVR_ISA_1200, 0x9488) -AVR_INSN (clh, "", "1001010011011000", 1, AVR_ISA_1200, 0x94d8) -AVR_INSN (cli, "", "1001010011111000", 1, AVR_ISA_1200, 0x94f8) -AVR_INSN (cln, "", "1001010010101000", 1, AVR_ISA_1200, 0x94a8) -AVR_INSN (cls, "", "1001010011001000", 1, AVR_ISA_1200, 0x94c8) -AVR_INSN (clt, "", "1001010011101000", 1, AVR_ISA_1200, 0x94e8) -AVR_INSN (clv, "", "1001010010111000", 1, AVR_ISA_1200, 0x94b8) -AVR_INSN (clz, "", "1001010010011000", 1, AVR_ISA_1200, 0x9498) - -AVR_INSN (sec, "", "1001010000001000", 1, AVR_ISA_1200, 0x9408) -AVR_INSN (seh, "", "1001010001011000", 1, AVR_ISA_1200, 0x9458) -AVR_INSN (sei, "", "1001010001111000", 1, AVR_ISA_1200, 0x9478) -AVR_INSN (sen, "", "1001010000101000", 1, AVR_ISA_1200, 0x9428) -AVR_INSN (ses, "", "1001010001001000", 1, AVR_ISA_1200, 0x9448) -AVR_INSN (set, "", "1001010001101000", 1, AVR_ISA_1200, 0x9468) -AVR_INSN (sev, "", "1001010000111000", 1, AVR_ISA_1200, 0x9438) -AVR_INSN (sez, "", "1001010000011000", 1, AVR_ISA_1200, 0x9418) - - /* Same as {cl,se}[chinstvz] above. */ -AVR_INSN (bclr, "S", "100101001SSS1000", 1, AVR_ISA_1200, 0x9488) -AVR_INSN (bset, "S", "100101000SSS1000", 1, AVR_ISA_1200, 0x9408) - -AVR_INSN (icall,"", "1001010100001001", 1, AVR_ISA_2xxx, 0x9509) -AVR_INSN (ijmp, "", "1001010000001001", 1, AVR_ISA_2xxx, 0x9409) - -AVR_INSN (lpm, "?", "1001010111001000", 1, AVR_ISA_TINY1,0x95c8) -AVR_INSN (lpm, "r,z", "1001000ddddd010+", 1, AVR_ISA_LPMX, 0x9004) -AVR_INSN (elpm, "?", "1001010111011000", 1, AVR_ISA_ELPM, 0x95d8) -AVR_INSN (elpm, "r,z", "1001000ddddd011+", 1, AVR_ISA_ELPMX,0x9006) - -AVR_INSN (nop, "", "0000000000000000", 1, AVR_ISA_1200, 0x0000) -AVR_INSN (ret, "", "1001010100001000", 1, AVR_ISA_1200, 0x9508) -AVR_INSN (reti, "", "1001010100011000", 1, AVR_ISA_1200, 0x9518) -AVR_INSN (sleep,"", "1001010110001000", 1, AVR_ISA_1200, 0x9588) -AVR_INSN (break,"", "1001010110011000", 1, AVR_ISA_BRK, 0x9598) -AVR_INSN (wdr, "", "1001010110101000", 1, AVR_ISA_1200, 0x95a8) -AVR_INSN (spm, "?", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8) -AVR_INSN (spm, "z", "10010101111+1000", 1, AVR_ISA_SPMX, 0x95e8) - -AVR_INSN (adc, "r,r", "000111rdddddrrrr", 1, AVR_ISA_1200, 0x1c00) -AVR_INSN (add, "r,r", "000011rdddddrrrr", 1, AVR_ISA_1200, 0x0c00) -AVR_INSN (and, "r,r", "001000rdddddrrrr", 1, AVR_ISA_1200, 0x2000) -AVR_INSN (cp, "r,r", "000101rdddddrrrr", 1, AVR_ISA_1200, 0x1400) -AVR_INSN (cpc, "r,r", "000001rdddddrrrr", 1, AVR_ISA_1200, 0x0400) -AVR_INSN (cpse, "r,r", "000100rdddddrrrr", 1, AVR_ISA_1200, 0x1000) -AVR_INSN (eor, "r,r", "001001rdddddrrrr", 1, AVR_ISA_1200, 0x2400) -AVR_INSN (mov, "r,r", "001011rdddddrrrr", 1, AVR_ISA_1200, 0x2c00) -AVR_INSN (mul, "r,r", "100111rdddddrrrr", 1, AVR_ISA_MUL, 0x9c00) -AVR_INSN (or, "r,r", "001010rdddddrrrr", 1, AVR_ISA_1200, 0x2800) -AVR_INSN (sbc, "r,r", "000010rdddddrrrr", 1, AVR_ISA_1200, 0x0800) -AVR_INSN (sub, "r,r", "000110rdddddrrrr", 1, AVR_ISA_1200, 0x1800) - - /* Shorthand for {eor,add,adc,and} r,r above. */ -AVR_INSN (clr, "r=r", "001001rdddddrrrr", 1, AVR_ISA_1200, 0x2400) -AVR_INSN (lsl, "r=r", "000011rdddddrrrr", 1, AVR_ISA_1200, 0x0c00) -AVR_INSN (rol, "r=r", "000111rdddddrrrr", 1, AVR_ISA_1200, 0x1c00) -AVR_INSN (tst, "r=r", "001000rdddddrrrr", 1, AVR_ISA_1200, 0x2000) - -AVR_INSN (andi, "d,M", "0111KKKKddddKKKK", 1, AVR_ISA_1200, 0x7000) - /*XXX special case*/ -AVR_INSN (cbr, "d,n", "0111KKKKddddKKKK", 1, AVR_ISA_1200, 0x7000) - -AVR_INSN (ldi, "d,M", "1110KKKKddddKKKK", 1, AVR_ISA_1200, 0xe000) -AVR_INSN (ser, "d", "11101111dddd1111", 1, AVR_ISA_1200, 0xef0f) - -AVR_INSN (ori, "d,M", "0110KKKKddddKKKK", 1, AVR_ISA_1200, 0x6000) -AVR_INSN (sbr, "d,M", "0110KKKKddddKKKK", 1, AVR_ISA_1200, 0x6000) - -AVR_INSN (cpi, "d,M", "0011KKKKddddKKKK", 1, AVR_ISA_1200, 0x3000) -AVR_INSN (sbci, "d,M", "0100KKKKddddKKKK", 1, AVR_ISA_1200, 0x4000) -AVR_INSN (subi, "d,M", "0101KKKKddddKKKK", 1, AVR_ISA_1200, 0x5000) - -AVR_INSN (sbrc, "r,s", "1111110rrrrr0sss", 1, AVR_ISA_1200, 0xfc00) -AVR_INSN (sbrs, "r,s", "1111111rrrrr0sss", 1, AVR_ISA_1200, 0xfe00) -AVR_INSN (bld, "r,s", "1111100ddddd0sss", 1, AVR_ISA_1200, 0xf800) -AVR_INSN (bst, "r,s", "1111101ddddd0sss", 1, AVR_ISA_1200, 0xfa00) - -AVR_INSN (in, "r,P", "10110PPdddddPPPP", 1, AVR_ISA_1200, 0xb000) -AVR_INSN (out, "P,r", "10111PPrrrrrPPPP", 1, AVR_ISA_1200, 0xb800) - -AVR_INSN (adiw, "w,K", "10010110KKddKKKK", 1, AVR_ISA_2xxx, 0x9600) -AVR_INSN (sbiw, "w,K", "10010111KKddKKKK", 1, AVR_ISA_2xxx, 0x9700) - -AVR_INSN (cbi, "p,s", "10011000pppppsss", 1, AVR_ISA_1200, 0x9800) -AVR_INSN (sbi, "p,s", "10011010pppppsss", 1, AVR_ISA_1200, 0x9a00) -AVR_INSN (sbic, "p,s", "10011001pppppsss", 1, AVR_ISA_1200, 0x9900) -AVR_INSN (sbis, "p,s", "10011011pppppsss", 1, AVR_ISA_1200, 0x9b00) - -AVR_INSN (brcc, "l", "111101lllllll000", 1, AVR_ISA_1200, 0xf400) -AVR_INSN (brcs, "l", "111100lllllll000", 1, AVR_ISA_1200, 0xf000) -AVR_INSN (breq, "l", "111100lllllll001", 1, AVR_ISA_1200, 0xf001) -AVR_INSN (brge, "l", "111101lllllll100", 1, AVR_ISA_1200, 0xf404) -AVR_INSN (brhc, "l", "111101lllllll101", 1, AVR_ISA_1200, 0xf405) -AVR_INSN (brhs, "l", "111100lllllll101", 1, AVR_ISA_1200, 0xf005) -AVR_INSN (brid, "l", "111101lllllll111", 1, AVR_ISA_1200, 0xf407) -AVR_INSN (brie, "l", "111100lllllll111", 1, AVR_ISA_1200, 0xf007) -AVR_INSN (brlo, "l", "111100lllllll000", 1, AVR_ISA_1200, 0xf000) -AVR_INSN (brlt, "l", "111100lllllll100", 1, AVR_ISA_1200, 0xf004) -AVR_INSN (brmi, "l", "111100lllllll010", 1, AVR_ISA_1200, 0xf002) -AVR_INSN (brne, "l", "111101lllllll001", 1, AVR_ISA_1200, 0xf401) -AVR_INSN (brpl, "l", "111101lllllll010", 1, AVR_ISA_1200, 0xf402) -AVR_INSN (brsh, "l", "111101lllllll000", 1, AVR_ISA_1200, 0xf400) -AVR_INSN (brtc, "l", "111101lllllll110", 1, AVR_ISA_1200, 0xf406) -AVR_INSN (brts, "l", "111100lllllll110", 1, AVR_ISA_1200, 0xf006) -AVR_INSN (brvc, "l", "111101lllllll011", 1, AVR_ISA_1200, 0xf403) -AVR_INSN (brvs, "l", "111100lllllll011", 1, AVR_ISA_1200, 0xf003) - - /* Same as br?? above. */ -AVR_INSN (brbc, "s,l", "111101lllllllsss", 1, AVR_ISA_1200, 0xf400) -AVR_INSN (brbs, "s,l", "111100lllllllsss", 1, AVR_ISA_1200, 0xf000) - -AVR_INSN (rcall, "L", "1101LLLLLLLLLLLL", 1, AVR_ISA_1200, 0xd000) -AVR_INSN (rjmp, "L", "1100LLLLLLLLLLLL", 1, AVR_ISA_1200, 0xc000) - -AVR_INSN (call, "h", "1001010hhhhh111h", 2, AVR_ISA_MEGA, 0x940e) -AVR_INSN (jmp, "h", "1001010hhhhh110h", 2, AVR_ISA_MEGA, 0x940c) - -AVR_INSN (asr, "r", "1001010rrrrr0101", 1, AVR_ISA_1200, 0x9405) -AVR_INSN (com, "r", "1001010rrrrr0000", 1, AVR_ISA_1200, 0x9400) -AVR_INSN (dec, "r", "1001010rrrrr1010", 1, AVR_ISA_1200, 0x940a) -AVR_INSN (inc, "r", "1001010rrrrr0011", 1, AVR_ISA_1200, 0x9403) -AVR_INSN (lsr, "r", "1001010rrrrr0110", 1, AVR_ISA_1200, 0x9406) -AVR_INSN (neg, "r", "1001010rrrrr0001", 1, AVR_ISA_1200, 0x9401) -AVR_INSN (pop, "r", "1001000rrrrr1111", 1, AVR_ISA_2xxx, 0x900f) -AVR_INSN (push, "r", "1001001rrrrr1111", 1, AVR_ISA_2xxx, 0x920f) -AVR_INSN (ror, "r", "1001010rrrrr0111", 1, AVR_ISA_1200, 0x9407) -AVR_INSN (swap, "r", "1001010rrrrr0010", 1, AVR_ISA_1200, 0x9402) - - /* Atomic memory operations for XMEGA. List before `sts'. */ -AVR_INSN (xch, "z,r", "1001001rrrrr0100", 1, AVR_ISA_RMW, 0x9204) -AVR_INSN (las, "z,r", "1001001rrrrr0101", 1, AVR_ISA_RMW, 0x9205) -AVR_INSN (lac, "z,r", "1001001rrrrr0110", 1, AVR_ISA_RMW, 0x9206) -AVR_INSN (lat, "z,r", "1001001rrrrr0111", 1, AVR_ISA_RMW, 0x9207) - - /* Known to be decoded as `nop' by the old core. */ -AVR_INSN (movw, "v,v", "00000001ddddrrrr", 1, AVR_ISA_MOVW, 0x0100) -AVR_INSN (muls, "d,d", "00000010ddddrrrr", 1, AVR_ISA_MUL, 0x0200) -AVR_INSN (mulsu,"a,a", "000000110ddd0rrr", 1, AVR_ISA_MUL, 0x0300) -AVR_INSN (fmul, "a,a", "000000110ddd1rrr", 1, AVR_ISA_MUL, 0x0308) -AVR_INSN (fmuls,"a,a", "000000111ddd0rrr", 1, AVR_ISA_MUL, 0x0380) -AVR_INSN (fmulsu,"a,a","000000111ddd1rrr", 1, AVR_ISA_MUL, 0x0388) - -AVR_INSN (sts, "i,r", "1001001ddddd0000", 2, AVR_ISA_2xxx, 0x9200) -AVR_INSN (lds, "r,i", "1001000ddddd0000", 2, AVR_ISA_2xxx, 0x9000) - - /* Special case for b+0, `e' must be next entry after `b', - b={Y=1,Z=0}, ee={X=11,Y=10,Z=00}, !=1 if -e or e+ or X. */ -AVR_INSN (ldd, "r,b", "10o0oo0dddddbooo", 1, AVR_ISA_2xxx, 0x8000) -AVR_INSN (ld, "r,e", "100!000dddddee-+", 1, AVR_ISA_1200, 0x8000) -AVR_INSN (std, "b,r", "10o0oo1rrrrrbooo", 1, AVR_ISA_2xxx, 0x8200) -AVR_INSN (st, "e,r", "100!001rrrrree-+", 1, AVR_ISA_1200, 0x8200) - - /* These are for devices that don't exist yet - (>128K program memory, PC = EIND:Z). */ -AVR_INSN (eicall, "", "1001010100011001", 1, AVR_ISA_EIND, 0x9519) -AVR_INSN (eijmp, "", "1001010000011001", 1, AVR_ISA_EIND, 0x9419) - -/* DES instruction for encryption and decryption */ -AVR_INSN (des, "E", "10010100EEEE1011", 1, AVR_ISA_DES, 0x940B) - diff --git a/include/opcode/bfin.h b/include/opcode/bfin.h deleted file mode 100644 index 26f0193..0000000 --- a/include/opcode/bfin.h +++ /dev/null @@ -1,1761 +0,0 @@ -/* bfin.h -- Header file for ADI Blackfin opcode table - Copyright 2005, 2010, 2011 Free Software Foundation, Inc. - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef OPCODE_BFIN_H -#define OPCODE_BFIN_H - -/* Common to all DSP32 instructions. */ -#define BIT_MULTI_INS 0x0800 - -/* This just sets the multi instruction bit of a DSP32 instruction. */ -#define SET_MULTI_INSTRUCTION_BIT(x) x->value |= BIT_MULTI_INS; - - -/* DSP instructions (32 bit) */ - -/* mmod field. */ -#define M_S2RND 1 -#define M_T 2 -#define M_W32 3 -#define M_FU 4 -#define M_TFU 6 -#define M_IS 8 -#define M_ISS2 9 -#define M_IH 11 -#define M_IU 12 - -static inline int is_macmod_pmove (int x) -{ - return (x == 0) || (x == M_IS) || (x == M_FU) || (x == M_S2RND) - || (x == M_ISS2) || (x == M_IU); -} - -static inline int is_macmod_hmove (int x) -{ - return (x == 0) || (x == M_IS) || (x == M_FU) || (x == M_IU) || (x == M_T) - || (x == M_TFU) || (x == M_S2RND) || (x == M_ISS2) || (x == M_IH); -} - -static inline int is_macmod_signed (int x) -{ - return (x == 0) || (x == M_IS) || (x == M_T) || (x == M_S2RND) - || (x == M_ISS2) || (x == M_IH) || (x == M_W32); -} - -/* dsp32mac -+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 0 | 0 |.M.| 0 | 0 |.mmod..........|.MM|.P.|.w1|.op1...| -|.h01|.h11|.w0|.op0...|.h00|.h10|.dst.......|.src0......|.src1......| -+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_src1; - int mask_src1; - int bits_src0; - int mask_src0; - int bits_dst; - int mask_dst; - int bits_h10; - int mask_h10; - int bits_h00; - int mask_h00; - int bits_op0; - int mask_op0; - int bits_w0; - int mask_w0; - int bits_h11; - int mask_h11; - int bits_h01; - int mask_h01; - int bits_op1; - int mask_op1; - int bits_w1; - int mask_w1; - int bits_P; - int mask_P; - int bits_MM; - int mask_MM; - int bits_mmod; - int mask_mmod; - int bits_code2; - int mask_code2; - int bits_M; - int mask_M; - int bits_code; - int mask_code; -} DSP32Mac; - -#define DSP32Mac_opcode 0xc0000000 -#define DSP32Mac_src1_bits 0 -#define DSP32Mac_src1_mask 0x7 -#define DSP32Mac_src0_bits 3 -#define DSP32Mac_src0_mask 0x7 -#define DSP32Mac_dst_bits 6 -#define DSP32Mac_dst_mask 0x7 -#define DSP32Mac_h10_bits 9 -#define DSP32Mac_h10_mask 0x1 -#define DSP32Mac_h00_bits 10 -#define DSP32Mac_h00_mask 0x1 -#define DSP32Mac_op0_bits 11 -#define DSP32Mac_op0_mask 0x3 -#define DSP32Mac_w0_bits 13 -#define DSP32Mac_w0_mask 0x1 -#define DSP32Mac_h11_bits 14 -#define DSP32Mac_h11_mask 0x1 -#define DSP32Mac_h01_bits 15 -#define DSP32Mac_h01_mask 0x1 -#define DSP32Mac_op1_bits 16 -#define DSP32Mac_op1_mask 0x3 -#define DSP32Mac_w1_bits 18 -#define DSP32Mac_w1_mask 0x1 -#define DSP32Mac_p_bits 19 -#define DSP32Mac_p_mask 0x1 -#define DSP32Mac_MM_bits 20 -#define DSP32Mac_MM_mask 0x1 -#define DSP32Mac_mmod_bits 21 -#define DSP32Mac_mmod_mask 0xf -#define DSP32Mac_code2_bits 25 -#define DSP32Mac_code2_mask 0x3 -#define DSP32Mac_M_bits 27 -#define DSP32Mac_M_mask 0x1 -#define DSP32Mac_code_bits 28 -#define DSP32Mac_code_mask 0xf - -#define init_DSP32Mac \ -{ \ - DSP32Mac_opcode, \ - DSP32Mac_src1_bits, DSP32Mac_src1_mask, \ - DSP32Mac_src0_bits, DSP32Mac_src0_mask, \ - DSP32Mac_dst_bits, DSP32Mac_dst_mask, \ - DSP32Mac_h10_bits, DSP32Mac_h10_mask, \ - DSP32Mac_h00_bits, DSP32Mac_h00_mask, \ - DSP32Mac_op0_bits, DSP32Mac_op0_mask, \ - DSP32Mac_w0_bits, DSP32Mac_w0_mask, \ - DSP32Mac_h11_bits, DSP32Mac_h11_mask, \ - DSP32Mac_h01_bits, DSP32Mac_h01_mask, \ - DSP32Mac_op1_bits, DSP32Mac_op1_mask, \ - DSP32Mac_w1_bits, DSP32Mac_w1_mask, \ - DSP32Mac_p_bits, DSP32Mac_p_mask, \ - DSP32Mac_MM_bits, DSP32Mac_MM_mask, \ - DSP32Mac_mmod_bits, DSP32Mac_mmod_mask, \ - DSP32Mac_code2_bits, DSP32Mac_code2_mask, \ - DSP32Mac_M_bits, DSP32Mac_M_mask, \ - DSP32Mac_code_bits, DSP32Mac_code_mask \ -}; - -/* dsp32mult -+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 0 | 0 |.M.| 0 | 1 |.mmod..........|.MM|.P.|.w1|.op1...| -|.h01|.h11|.w0|.op0...|.h00|.h10|.dst.......|.src0......|.src1......| -+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+ -*/ - -typedef DSP32Mac DSP32Mult; -#define DSP32Mult_opcode 0xc2000000 - -#define init_DSP32Mult \ -{ \ - DSP32Mult_opcode, \ - DSP32Mac_src1_bits, DSP32Mac_src1_mask, \ - DSP32Mac_src0_bits, DSP32Mac_src0_mask, \ - DSP32Mac_dst_bits, DSP32Mac_dst_mask, \ - DSP32Mac_h10_bits, DSP32Mac_h10_mask, \ - DSP32Mac_h00_bits, DSP32Mac_h00_mask, \ - DSP32Mac_op0_bits, DSP32Mac_op0_mask, \ - DSP32Mac_w0_bits, DSP32Mac_w0_mask, \ - DSP32Mac_h11_bits, DSP32Mac_h11_mask, \ - DSP32Mac_h01_bits, DSP32Mac_h01_mask, \ - DSP32Mac_op1_bits, DSP32Mac_op1_mask, \ - DSP32Mac_w1_bits, DSP32Mac_w1_mask, \ - DSP32Mac_p_bits, DSP32Mac_p_mask, \ - DSP32Mac_MM_bits, DSP32Mac_MM_mask, \ - DSP32Mac_mmod_bits, DSP32Mac_mmod_mask, \ - DSP32Mac_code2_bits, DSP32Mac_code2_mask, \ - DSP32Mac_M_bits, DSP32Mac_M_mask, \ - DSP32Mac_code_bits, DSP32Mac_code_mask \ -}; - -/* dsp32alu -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 0 | 0 |.M.| 1 | 0 | - | - | - |.HL|.aopcde............| -|.aop...|.s.|.x.|.dst0......|.dst1......|.src0......|.src1......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_src1; - int mask_src1; - int bits_src0; - int mask_src0; - int bits_dst1; - int mask_dst1; - int bits_dst0; - int mask_dst0; - int bits_x; - int mask_x; - int bits_s; - int mask_s; - int bits_aop; - int mask_aop; - int bits_aopcde; - int mask_aopcde; - int bits_HL; - int mask_HL; - int bits_dontcare; - int mask_dontcare; - int bits_code2; - int mask_code2; - int bits_M; - int mask_M; - int bits_code; - int mask_code; -} DSP32Alu; - -#define DSP32Alu_opcode 0xc4000000 -#define DSP32Alu_src1_bits 0 -#define DSP32Alu_src1_mask 0x7 -#define DSP32Alu_src0_bits 3 -#define DSP32Alu_src0_mask 0x7 -#define DSP32Alu_dst1_bits 6 -#define DSP32Alu_dst1_mask 0x7 -#define DSP32Alu_dst0_bits 9 -#define DSP32Alu_dst0_mask 0x7 -#define DSP32Alu_x_bits 12 -#define DSP32Alu_x_mask 0x1 -#define DSP32Alu_s_bits 13 -#define DSP32Alu_s_mask 0x1 -#define DSP32Alu_aop_bits 14 -#define DSP32Alu_aop_mask 0x3 -#define DSP32Alu_aopcde_bits 16 -#define DSP32Alu_aopcde_mask 0x1f -#define DSP32Alu_HL_bits 21 -#define DSP32Alu_HL_mask 0x1 -#define DSP32Alu_dontcare_bits 22 -#define DSP32Alu_dontcare_mask 0x7 -#define DSP32Alu_code2_bits 25 -#define DSP32Alu_code2_mask 0x3 -#define DSP32Alu_M_bits 27 -#define DSP32Alu_M_mask 0x1 -#define DSP32Alu_code_bits 28 -#define DSP32Alu_code_mask 0xf - -#define init_DSP32Alu \ -{ \ - DSP32Alu_opcode, \ - DSP32Alu_src1_bits, DSP32Alu_src1_mask, \ - DSP32Alu_src0_bits, DSP32Alu_src0_mask, \ - DSP32Alu_dst1_bits, DSP32Alu_dst1_mask, \ - DSP32Alu_dst0_bits, DSP32Alu_dst0_mask, \ - DSP32Alu_x_bits, DSP32Alu_x_mask, \ - DSP32Alu_s_bits, DSP32Alu_s_mask, \ - DSP32Alu_aop_bits, DSP32Alu_aop_mask, \ - DSP32Alu_aopcde_bits, DSP32Alu_aopcde_mask, \ - DSP32Alu_HL_bits, DSP32Alu_HL_mask, \ - DSP32Alu_dontcare_bits, DSP32Alu_dontcare_mask, \ - DSP32Alu_code2_bits, DSP32Alu_code2_mask, \ - DSP32Alu_M_bits, DSP32Alu_M_mask, \ - DSP32Alu_code_bits, DSP32Alu_code_mask \ -}; - -/* dsp32shift -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 0 | 0 |.M.| 1 | 1 | 0 | 0 | - | - |.sopcde............| -|.sop...|.HLs...|.dst0......| - | - | - |.src0......|.src1......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_src1; - int mask_src1; - int bits_src0; - int mask_src0; - int bits_dst1; - int mask_dst1; - int bits_dst0; - int mask_dst0; - int bits_HLs; - int mask_HLs; - int bits_sop; - int mask_sop; - int bits_sopcde; - int mask_sopcde; - int bits_dontcare; - int mask_dontcare; - int bits_code2; - int mask_code2; - int bits_M; - int mask_M; - int bits_code; - int mask_code; -} DSP32Shift; - -#define DSP32Shift_opcode 0xc6000000 -#define DSP32Shift_src1_bits 0 -#define DSP32Shift_src1_mask 0x7 -#define DSP32Shift_src0_bits 3 -#define DSP32Shift_src0_mask 0x7 -#define DSP32Shift_dst1_bits 6 -#define DSP32Shift_dst1_mask 0x7 -#define DSP32Shift_dst0_bits 9 -#define DSP32Shift_dst0_mask 0x7 -#define DSP32Shift_HLs_bits 12 -#define DSP32Shift_HLs_mask 0x3 -#define DSP32Shift_sop_bits 14 -#define DSP32Shift_sop_mask 0x3 -#define DSP32Shift_sopcde_bits 16 -#define DSP32Shift_sopcde_mask 0x1f -#define DSP32Shift_dontcare_bits 21 -#define DSP32Shift_dontcare_mask 0x3 -#define DSP32Shift_code2_bits 23 -#define DSP32Shift_code2_mask 0xf -#define DSP32Shift_M_bits 27 -#define DSP32Shift_M_mask 0x1 -#define DSP32Shift_code_bits 28 -#define DSP32Shift_code_mask 0xf - -#define init_DSP32Shift \ -{ \ - DSP32Shift_opcode, \ - DSP32Shift_src1_bits, DSP32Shift_src1_mask, \ - DSP32Shift_src0_bits, DSP32Shift_src0_mask, \ - DSP32Shift_dst1_bits, DSP32Shift_dst1_mask, \ - DSP32Shift_dst0_bits, DSP32Shift_dst0_mask, \ - DSP32Shift_HLs_bits, DSP32Shift_HLs_mask, \ - DSP32Shift_sop_bits, DSP32Shift_sop_mask, \ - DSP32Shift_sopcde_bits, DSP32Shift_sopcde_mask, \ - DSP32Shift_dontcare_bits, DSP32Shift_dontcare_mask, \ - DSP32Shift_code2_bits, DSP32Shift_code2_mask, \ - DSP32Shift_M_bits, DSP32Shift_M_mask, \ - DSP32Shift_code_bits, DSP32Shift_code_mask \ -}; - -/* dsp32shiftimm -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 0 | 0 |.M.| 1 | 1 | 0 | 1 | - | - |.sopcde............| -|.sop...|.HLs...|.dst0......|.immag.................|.src1......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_src1; - int mask_src1; - int bits_immag; - int mask_immag; - int bits_dst0; - int mask_dst0; - int bits_HLs; - int mask_HLs; - int bits_sop; - int mask_sop; - int bits_sopcde; - int mask_sopcde; - int bits_dontcare; - int mask_dontcare; - int bits_code2; - int mask_code2; - int bits_M; - int mask_M; - int bits_code; - int mask_code; -} DSP32ShiftImm; - -#define DSP32ShiftImm_opcode 0xc6800000 -#define DSP32ShiftImm_src1_bits 0 -#define DSP32ShiftImm_src1_mask 0x7 -#define DSP32ShiftImm_immag_bits 3 -#define DSP32ShiftImm_immag_mask 0x3f -#define DSP32ShiftImm_dst0_bits 9 -#define DSP32ShiftImm_dst0_mask 0x7 -#define DSP32ShiftImm_HLs_bits 12 -#define DSP32ShiftImm_HLs_mask 0x3 -#define DSP32ShiftImm_sop_bits 14 -#define DSP32ShiftImm_sop_mask 0x3 -#define DSP32ShiftImm_sopcde_bits 16 -#define DSP32ShiftImm_sopcde_mask 0x1f -#define DSP32ShiftImm_dontcare_bits 21 -#define DSP32ShiftImm_dontcare_mask 0x3 -#define DSP32ShiftImm_code2_bits 23 -#define DSP32ShiftImm_code2_mask 0xf -#define DSP32ShiftImm_M_bits 27 -#define DSP32ShiftImm_M_mask 0x1 -#define DSP32ShiftImm_code_bits 28 -#define DSP32ShiftImm_code_mask 0xf - -#define init_DSP32ShiftImm \ -{ \ - DSP32ShiftImm_opcode, \ - DSP32ShiftImm_src1_bits, DSP32ShiftImm_src1_mask, \ - DSP32ShiftImm_immag_bits, DSP32ShiftImm_immag_mask, \ - DSP32ShiftImm_dst0_bits, DSP32ShiftImm_dst0_mask, \ - DSP32ShiftImm_HLs_bits, DSP32ShiftImm_HLs_mask, \ - DSP32ShiftImm_sop_bits, DSP32ShiftImm_sop_mask, \ - DSP32ShiftImm_sopcde_bits, DSP32ShiftImm_sopcde_mask, \ - DSP32ShiftImm_dontcare_bits, DSP32ShiftImm_dontcare_mask, \ - DSP32ShiftImm_code2_bits, DSP32ShiftImm_code2_mask, \ - DSP32ShiftImm_M_bits, DSP32ShiftImm_M_mask, \ - DSP32ShiftImm_code_bits, DSP32ShiftImm_code_mask \ -}; - -/* LOAD / STORE */ - -/* LDSTidxI -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 0 | 0 | 1 |.W.|.Z.|.sz....|.ptr.......|.reg.......| -|.offset........................................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_offset; - int mask_offset; - int bits_reg; - int mask_reg; - int bits_ptr; - int mask_ptr; - int bits_sz; - int mask_sz; - int bits_Z; - int mask_Z; - int bits_W; - int mask_W; - int bits_code; - int mask_code; -} LDSTidxI; - -#define LDSTidxI_opcode 0xe4000000 -#define LDSTidxI_offset_bits 0 -#define LDSTidxI_offset_mask 0xffff -#define LDSTidxI_reg_bits 16 -#define LDSTidxI_reg_mask 0x7 -#define LDSTidxI_ptr_bits 19 -#define LDSTidxI_ptr_mask 0x7 -#define LDSTidxI_sz_bits 22 -#define LDSTidxI_sz_mask 0x3 -#define LDSTidxI_Z_bits 24 -#define LDSTidxI_Z_mask 0x1 -#define LDSTidxI_W_bits 25 -#define LDSTidxI_W_mask 0x1 -#define LDSTidxI_code_bits 26 -#define LDSTidxI_code_mask 0x3f - -#define init_LDSTidxI \ -{ \ - LDSTidxI_opcode, \ - LDSTidxI_offset_bits, LDSTidxI_offset_mask, \ - LDSTidxI_reg_bits, LDSTidxI_reg_mask, \ - LDSTidxI_ptr_bits, LDSTidxI_ptr_mask, \ - LDSTidxI_sz_bits, LDSTidxI_sz_mask, \ - LDSTidxI_Z_bits, LDSTidxI_Z_mask, \ - LDSTidxI_W_bits, LDSTidxI_W_mask, \ - LDSTidxI_code_bits, LDSTidxI_code_mask \ -}; - - -/* LDST -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 0 | 1 |.sz....|.W.|.aop...|.Z.|.ptr.......|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_ptr; - int mask_ptr; - int bits_Z; - int mask_Z; - int bits_aop; - int mask_aop; - int bits_W; - int mask_W; - int bits_sz; - int mask_sz; - int bits_code; - int mask_code; -} LDST; - -#define LDST_opcode 0x9000 -#define LDST_reg_bits 0 -#define LDST_reg_mask 0x7 -#define LDST_ptr_bits 3 -#define LDST_ptr_mask 0x7 -#define LDST_Z_bits 6 -#define LDST_Z_mask 0x1 -#define LDST_aop_bits 7 -#define LDST_aop_mask 0x3 -#define LDST_W_bits 9 -#define LDST_W_mask 0x1 -#define LDST_sz_bits 10 -#define LDST_sz_mask 0x3 -#define LDST_code_bits 12 -#define LDST_code_mask 0xf - -#define init_LDST \ -{ \ - LDST_opcode, \ - LDST_reg_bits, LDST_reg_mask, \ - LDST_ptr_bits, LDST_ptr_mask, \ - LDST_Z_bits, LDST_Z_mask, \ - LDST_aop_bits, LDST_aop_mask, \ - LDST_W_bits, LDST_W_mask, \ - LDST_sz_bits, LDST_sz_mask, \ - LDST_code_bits, LDST_code_mask \ -}; - -/* LDSTii -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 1 |.W.|.op....|.offset........|.ptr.......|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_ptr; - int mask_ptr; - int bits_offset; - int mask_offset; - int bits_op; - int mask_op; - int bits_W; - int mask_W; - int bits_code; - int mask_code; -} LDSTii; - -#define LDSTii_opcode 0xa000 -#define LDSTii_reg_bit 0 -#define LDSTii_reg_mask 0x7 -#define LDSTii_ptr_bit 3 -#define LDSTii_ptr_mask 0x7 -#define LDSTii_offset_bit 6 -#define LDSTii_offset_mask 0xf -#define LDSTii_op_bit 10 -#define LDSTii_op_mask 0x3 -#define LDSTii_W_bit 12 -#define LDSTii_W_mask 0x1 -#define LDSTii_code_bit 13 -#define LDSTii_code_mask 0x7 - -#define init_LDSTii \ -{ \ - LDSTii_opcode, \ - LDSTii_reg_bit, LDSTii_reg_mask, \ - LDSTii_ptr_bit, LDSTii_ptr_mask, \ - LDSTii_offset_bit, LDSTii_offset_mask, \ - LDSTii_op_bit, LDSTii_op_mask, \ - LDSTii_W_bit, LDSTii_W_mask, \ - LDSTii_code_bit, LDSTii_code_mask \ -}; - - -/* LDSTiiFP -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 1 | 1 | 1 | 0 |.W.|.offset............|.reg...........| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_offset; - int mask_offset; - int bits_W; - int mask_W; - int bits_code; - int mask_code; -} LDSTiiFP; - -#define LDSTiiFP_opcode 0xb800 -#define LDSTiiFP_reg_bits 0 -#define LDSTiiFP_reg_mask 0xf -#define LDSTiiFP_offset_bits 4 -#define LDSTiiFP_offset_mask 0x1f -#define LDSTiiFP_W_bits 9 -#define LDSTiiFP_W_mask 0x1 -#define LDSTiiFP_code_bits 10 -#define LDSTiiFP_code_mask 0x3f - -#define init_LDSTiiFP \ -{ \ - LDSTiiFP_opcode, \ - LDSTiiFP_reg_bits, LDSTiiFP_reg_mask, \ - LDSTiiFP_offset_bits, LDSTiiFP_offset_mask, \ - LDSTiiFP_W_bits, LDSTiiFP_W_mask, \ - LDSTiiFP_code_bits, LDSTiiFP_code_mask \ -}; - -/* dspLDST -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 0 | 1 | 1 | 1 |.W.|.aop...|.m.....|.i.....|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_i; - int mask_i; - int bits_m; - int mask_m; - int bits_aop; - int mask_aop; - int bits_W; - int mask_W; - int bits_code; - int mask_code; -} DspLDST; - -#define DspLDST_opcode 0x9c00 -#define DspLDST_reg_bits 0 -#define DspLDST_reg_mask 0x7 -#define DspLDST_i_bits 3 -#define DspLDST_i_mask 0x3 -#define DspLDST_m_bits 5 -#define DspLDST_m_mask 0x3 -#define DspLDST_aop_bits 7 -#define DspLDST_aop_mask 0x3 -#define DspLDST_W_bits 9 -#define DspLDST_W_mask 0x1 -#define DspLDST_code_bits 10 -#define DspLDST_code_mask 0x3f - -#define init_DspLDST \ -{ \ - DspLDST_opcode, \ - DspLDST_reg_bits, DspLDST_reg_mask, \ - DspLDST_i_bits, DspLDST_i_mask, \ - DspLDST_m_bits, DspLDST_m_mask, \ - DspLDST_aop_bits, DspLDST_aop_mask, \ - DspLDST_W_bits, DspLDST_W_mask, \ - DspLDST_code_bits, DspLDST_code_mask \ -}; - - -/* LDSTpmod -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 0 | 0 |.W.|.aop...|.reg.......|.idx.......|.ptr.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_ptr; - int mask_ptr; - int bits_idx; - int mask_idx; - int bits_reg; - int mask_reg; - int bits_aop; - int mask_aop; - int bits_W; - int mask_W; - int bits_code; - int mask_code; -} LDSTpmod; - -#define LDSTpmod_opcode 0x8000 -#define LDSTpmod_ptr_bits 0 -#define LDSTpmod_ptr_mask 0x7 -#define LDSTpmod_idx_bits 3 -#define LDSTpmod_idx_mask 0x7 -#define LDSTpmod_reg_bits 6 -#define LDSTpmod_reg_mask 0x7 -#define LDSTpmod_aop_bits 9 -#define LDSTpmod_aop_mask 0x3 -#define LDSTpmod_W_bits 11 -#define LDSTpmod_W_mask 0x1 -#define LDSTpmod_code_bits 12 -#define LDSTpmod_code_mask 0xf - -#define init_LDSTpmod \ -{ \ - LDSTpmod_opcode, \ - LDSTpmod_ptr_bits, LDSTpmod_ptr_mask, \ - LDSTpmod_idx_bits, LDSTpmod_idx_mask, \ - LDSTpmod_reg_bits, LDSTpmod_reg_mask, \ - LDSTpmod_aop_bits, LDSTpmod_aop_mask, \ - LDSTpmod_W_bits, LDSTpmod_W_mask, \ - LDSTpmod_code_bits, LDSTpmod_code_mask \ -}; - - -/* LOGI2op -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 1 | 0 | 0 | 1 |.opc.......|.src...............|.dst.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_dst; - int mask_dst; - int bits_src; - int mask_src; - int bits_opc; - int mask_opc; - int bits_code; - int mask_code; -} LOGI2op; - -#define LOGI2op_opcode 0x4800 -#define LOGI2op_dst_bits 0 -#define LOGI2op_dst_mask 0x7 -#define LOGI2op_src_bits 3 -#define LOGI2op_src_mask 0x1f -#define LOGI2op_opc_bits 8 -#define LOGI2op_opc_mask 0x7 -#define LOGI2op_code_bits 11 -#define LOGI2op_code_mask 0x1f - -#define init_LOGI2op \ -{ \ - LOGI2op_opcode, \ - LOGI2op_dst_bits, LOGI2op_dst_mask, \ - LOGI2op_src_bits, LOGI2op_src_mask, \ - LOGI2op_opc_bits, LOGI2op_opc_mask, \ - LOGI2op_code_bits, LOGI2op_code_mask \ -}; - - -/* ALU2op -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 1 | 0 | 0 | 0 | 0 |.opc...........|.src.......|.dst.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_dst; - int mask_dst; - int bits_src; - int mask_src; - int bits_opc; - int mask_opc; - int bits_code; - int mask_code; -} ALU2op; - -#define ALU2op_opcode 0x4000 -#define ALU2op_dst_bits 0 -#define ALU2op_dst_mask 0x7 -#define ALU2op_src_bits 3 -#define ALU2op_src_mask 0x7 -#define ALU2op_opc_bits 6 -#define ALU2op_opc_mask 0xf -#define ALU2op_code_bits 10 -#define ALU2op_code_mask 0x3f - -#define init_ALU2op \ -{ \ - ALU2op_opcode, \ - ALU2op_dst_bits, ALU2op_dst_mask, \ - ALU2op_src_bits, ALU2op_src_mask, \ - ALU2op_opc_bits, ALU2op_opc_mask, \ - ALU2op_code_bits, ALU2op_code_mask \ -}; - - -/* BRCC -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 1 |.T.|.B.|.offset................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_offset; - int mask_offset; - int bits_B; - int mask_B; - int bits_T; - int mask_T; - int bits_code; - int mask_code; -} BRCC; - -#define BRCC_opcode 0x1000 -#define BRCC_offset_bits 0 -#define BRCC_offset_mask 0x3ff -#define BRCC_B_bits 10 -#define BRCC_B_mask 0x1 -#define BRCC_T_bits 11 -#define BRCC_T_mask 0x1 -#define BRCC_code_bits 12 -#define BRCC_code_mask 0xf - -#define init_BRCC \ -{ \ - BRCC_opcode, \ - BRCC_offset_bits, BRCC_offset_mask, \ - BRCC_B_bits, BRCC_B_mask, \ - BRCC_T_bits, BRCC_T_mask, \ - BRCC_code_bits, BRCC_code_mask \ -}; - - -/* UJUMP -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 1 | 0 |.offset........................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_offset; - int mask_offset; - int bits_code; - int mask_code; -} UJump; - -#define UJump_opcode 0x2000 -#define UJump_offset_bits 0 -#define UJump_offset_mask 0xfff -#define UJump_code_bits 12 -#define UJump_code_mask 0xf - -#define init_UJump \ -{ \ - UJump_opcode, \ - UJump_offset_bits, UJump_offset_mask, \ - UJump_code_bits, UJump_code_mask \ -}; - - -/* ProgCtrl -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |.prgfunc.......|.poprnd........| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_poprnd; - int mask_poprnd; - int bits_prgfunc; - int mask_prgfunc; - int bits_code; - int mask_code; -} ProgCtrl; - -#define ProgCtrl_opcode 0x0000 -#define ProgCtrl_poprnd_bits 0 -#define ProgCtrl_poprnd_mask 0xf -#define ProgCtrl_prgfunc_bits 4 -#define ProgCtrl_prgfunc_mask 0xf -#define ProgCtrl_code_bits 8 -#define ProgCtrl_code_mask 0xff - -#define init_ProgCtrl \ -{ \ - ProgCtrl_opcode, \ - ProgCtrl_poprnd_bits, ProgCtrl_poprnd_mask, \ - ProgCtrl_prgfunc_bits, ProgCtrl_prgfunc_mask, \ - ProgCtrl_code_bits, ProgCtrl_code_mask \ -}; - -/* CALLa -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 0 | 0 | 0 | 1 |.S.|.msw...........................| -|.lsw...........................................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - - -typedef struct -{ - unsigned long opcode; - int bits_addr; - int mask_addr; - int bits_S; - int mask_S; - int bits_code; - int mask_code; -} CALLa; - -#define CALLa_opcode 0xe2000000 -#define CALLa_addr_bits 0 -#define CALLa_addr_mask 0xffffff -#define CALLa_S_bits 24 -#define CALLa_S_mask 0x1 -#define CALLa_code_bits 25 -#define CALLa_code_mask 0x7f - -#define init_CALLa \ -{ \ - CALLa_opcode, \ - CALLa_addr_bits, CALLa_addr_mask, \ - CALLa_S_bits, CALLa_S_mask, \ - CALLa_code_bits, CALLa_code_mask \ -}; - - -/* pseudoDEBUG -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |.fn....|.grp.......|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_grp; - int mask_grp; - int bits_fn; - int mask_fn; - int bits_code; - int mask_code; -} PseudoDbg; - -#define PseudoDbg_opcode 0xf800 -#define PseudoDbg_reg_bits 0 -#define PseudoDbg_reg_mask 0x7 -#define PseudoDbg_grp_bits 3 -#define PseudoDbg_grp_mask 0x7 -#define PseudoDbg_fn_bits 6 -#define PseudoDbg_fn_mask 0x3 -#define PseudoDbg_code_bits 8 -#define PseudoDbg_code_mask 0xff - -#define init_PseudoDbg \ -{ \ - PseudoDbg_opcode, \ - PseudoDbg_reg_bits, PseudoDbg_reg_mask, \ - PseudoDbg_grp_bits, PseudoDbg_grp_mask, \ - PseudoDbg_fn_bits, PseudoDbg_fn_mask, \ - PseudoDbg_code_bits, PseudoDbg_code_mask \ -}; - -/* PseudoDbg_assert -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 1 | 0 | - | - | - | dbgop |.grp.......|.regtest...| -|.expected......................................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_expected; - int mask_expected; - int bits_regtest; - int mask_regtest; - int bits_grp; - int mask_grp; - int bits_dbgop; - int mask_dbgop; - int bits_dontcare; - int mask_dontcare; - int bits_code; - int mask_code; -} PseudoDbg_Assert; - -#define PseudoDbg_Assert_opcode 0xf0000000 -#define PseudoDbg_Assert_expected_bits 0 -#define PseudoDbg_Assert_expected_mask 0xffff -#define PseudoDbg_Assert_regtest_bits 16 -#define PseudoDbg_Assert_regtest_mask 0x7 -#define PseudoDbg_Assert_grp_bits 19 -#define PseudoDbg_Assert_grp_mask 0x7 -#define PseudoDbg_Assert_dbgop_bits 22 -#define PseudoDbg_Assert_dbgop_mask 0x3 -#define PseudoDbg_Assert_dontcare_bits 24 -#define PseudoDbg_Assert_dontcare_mask 0x7 -#define PseudoDbg_Assert_code_bits 27 -#define PseudoDbg_Assert_code_mask 0x1f - -#define init_PseudoDbg_Assert \ -{ \ - PseudoDbg_Assert_opcode, \ - PseudoDbg_Assert_expected_bits, PseudoDbg_Assert_expected_mask, \ - PseudoDbg_Assert_regtest_bits, PseudoDbg_Assert_regtest_mask, \ - PseudoDbg_Assert_grp_bits, PseudoDbg_Assert_grp_mask, \ - PseudoDbg_Assert_dbgop_bits, PseudoDbg_Assert_dbgop_mask, \ - PseudoDbg_Assert_dontcare_bits, PseudoDbg_Assert_dontcare_mask, \ - PseudoDbg_Assert_code_bits, PseudoDbg_Assert_code_mask \ -}; - -/* pseudoChr -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |.ch............................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_ch; - int mask_ch; - int bits_code; - int mask_code; -} PseudoChr; - -#define PseudoChr_opcode 0xf900 -#define PseudoChr_ch_bits 0 -#define PseudoChr_ch_mask 0xff -#define PseudoChr_code_bits 8 -#define PseudoChr_code_mask 0xff - -#define init_PseudoChr \ -{ \ - PseudoChr_opcode, \ - PseudoChr_ch_bits, PseudoChr_ch_mask, \ - PseudoChr_code_bits, PseudoChr_code_mask \ -}; - -/* CaCTRL -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |.a.|.op....|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_op; - int mask_op; - int bits_a; - int mask_a; - int bits_code; - int mask_code; -} CaCTRL; - -#define CaCTRL_opcode 0x0240 -#define CaCTRL_reg_bits 0 -#define CaCTRL_reg_mask 0x7 -#define CaCTRL_op_bits 3 -#define CaCTRL_op_mask 0x3 -#define CaCTRL_a_bits 5 -#define CaCTRL_a_mask 0x1 -#define CaCTRL_code_bits 6 -#define CaCTRL_code_mask 0x3fff - -#define init_CaCTRL \ -{ \ - CaCTRL_opcode, \ - CaCTRL_reg_bits, CaCTRL_reg_mask, \ - CaCTRL_op_bits, CaCTRL_op_mask, \ - CaCTRL_a_bits, CaCTRL_a_mask, \ - CaCTRL_code_bits, CaCTRL_code_mask \ -}; - -/* PushPopMultiple -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 1 | 0 |.d.|.p.|.W.|.dr........|.pr........| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_pr; - int mask_pr; - int bits_dr; - int mask_dr; - int bits_W; - int mask_W; - int bits_p; - int mask_p; - int bits_d; - int mask_d; - int bits_code; - int mask_code; -} PushPopMultiple; - -#define PushPopMultiple_opcode 0x0400 -#define PushPopMultiple_pr_bits 0 -#define PushPopMultiple_pr_mask 0x7 -#define PushPopMultiple_dr_bits 3 -#define PushPopMultiple_dr_mask 0x7 -#define PushPopMultiple_W_bits 6 -#define PushPopMultiple_W_mask 0x1 -#define PushPopMultiple_p_bits 7 -#define PushPopMultiple_p_mask 0x1 -#define PushPopMultiple_d_bits 8 -#define PushPopMultiple_d_mask 0x1 -#define PushPopMultiple_code_bits 8 -#define PushPopMultiple_code_mask 0x1 - -#define init_PushPopMultiple \ -{ \ - PushPopMultiple_opcode, \ - PushPopMultiple_pr_bits, PushPopMultiple_pr_mask, \ - PushPopMultiple_dr_bits, PushPopMultiple_dr_mask, \ - PushPopMultiple_W_bits, PushPopMultiple_W_mask, \ - PushPopMultiple_p_bits, PushPopMultiple_p_mask, \ - PushPopMultiple_d_bits, PushPopMultiple_d_mask, \ - PushPopMultiple_code_bits, PushPopMultiple_code_mask \ -}; - -/* PushPopReg -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |.W.|.grp.......|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_grp; - int mask_grp; - int bits_W; - int mask_W; - int bits_code; - int mask_code; -} PushPopReg; - -#define PushPopReg_opcode 0x0100 -#define PushPopReg_reg_bits 0 -#define PushPopReg_reg_mask 0x7 -#define PushPopReg_grp_bits 3 -#define PushPopReg_grp_mask 0x7 -#define PushPopReg_W_bits 6 -#define PushPopReg_W_mask 0x1 -#define PushPopReg_code_bits 7 -#define PushPopReg_code_mask 0x1ff - -#define init_PushPopReg \ -{ \ - PushPopReg_opcode, \ - PushPopReg_reg_bits, PushPopReg_reg_mask, \ - PushPopReg_grp_bits, PushPopReg_grp_mask, \ - PushPopReg_W_bits, PushPopReg_W_mask, \ - PushPopReg_code_bits, PushPopReg_code_mask, \ -}; - -/* linkage -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |.R.| -|.framesize.....................................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_framesize; - int mask_framesize; - int bits_R; - int mask_R; - int bits_code; - int mask_code; -} Linkage; - -#define Linkage_opcode 0xe8000000 -#define Linkage_framesize_bits 0 -#define Linkage_framesize_mask 0xffff -#define Linkage_R_bits 16 -#define Linkage_R_mask 0x1 -#define Linkage_code_bits 17 -#define Linkage_code_mask 0x7fff - -#define init_Linkage \ -{ \ - Linkage_opcode, \ - Linkage_framesize_bits, Linkage_framesize_mask, \ - Linkage_R_bits, Linkage_R_mask, \ - Linkage_code_bits, Linkage_code_mask \ -}; - -/* LoopSetup -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |.rop...|.c.|.soffset.......| -|.reg...........| - | - |.eoffset...............................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_eoffset; - int mask_eoffset; - int bits_dontcare; - int mask_dontcare; - int bits_reg; - int mask_reg; - int bits_soffset; - int mask_soffset; - int bits_c; - int mask_c; - int bits_rop; - int mask_rop; - int bits_code; - int mask_code; -} LoopSetup; - -#define LoopSetup_opcode 0xe0800000 -#define LoopSetup_eoffset_bits 0 -#define LoopSetup_eoffset_mask 0x3ff -#define LoopSetup_dontcare_bits 10 -#define LoopSetup_dontcare_mask 0x3 -#define LoopSetup_reg_bits 12 -#define LoopSetup_reg_mask 0xf -#define LoopSetup_soffset_bits 16 -#define LoopSetup_soffset_mask 0xf -#define LoopSetup_c_bits 20 -#define LoopSetup_c_mask 0x1 -#define LoopSetup_rop_bits 21 -#define LoopSetup_rop_mask 0x3 -#define LoopSetup_code_bits 23 -#define LoopSetup_code_mask 0x1ff - -#define init_LoopSetup \ -{ \ - LoopSetup_opcode, \ - LoopSetup_eoffset_bits, LoopSetup_eoffset_mask, \ - LoopSetup_dontcare_bits, LoopSetup_dontcare_mask, \ - LoopSetup_reg_bits, LoopSetup_reg_mask, \ - LoopSetup_soffset_bits, LoopSetup_soffset_mask, \ - LoopSetup_c_bits, LoopSetup_c_mask, \ - LoopSetup_rop_bits, LoopSetup_rop_mask, \ - LoopSetup_code_bits, LoopSetup_code_mask \ -}; - -/* LDIMMhalf -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |.Z.|.H.|.S.|.grp...|.reg.......| -|.hword.........................................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_hword; - int mask_hword; - int bits_reg; - int mask_reg; - int bits_grp; - int mask_grp; - int bits_S; - int mask_S; - int bits_H; - int mask_H; - int bits_Z; - int mask_Z; - int bits_code; - int mask_code; -} LDIMMhalf; - -#define LDIMMhalf_opcode 0xe1000000 -#define LDIMMhalf_hword_bits 0 -#define LDIMMhalf_hword_mask 0xffff -#define LDIMMhalf_reg_bits 16 -#define LDIMMhalf_reg_mask 0x7 -#define LDIMMhalf_grp_bits 19 -#define LDIMMhalf_grp_mask 0x3 -#define LDIMMhalf_S_bits 21 -#define LDIMMhalf_S_mask 0x1 -#define LDIMMhalf_H_bits 22 -#define LDIMMhalf_H_mask 0x1 -#define LDIMMhalf_Z_bits 23 -#define LDIMMhalf_Z_mask 0x1 -#define LDIMMhalf_code_bits 24 -#define LDIMMhalf_code_mask 0xff - -#define init_LDIMMhalf \ -{ \ - LDIMMhalf_opcode, \ - LDIMMhalf_hword_bits, LDIMMhalf_hword_mask, \ - LDIMMhalf_reg_bits, LDIMMhalf_reg_mask, \ - LDIMMhalf_grp_bits, LDIMMhalf_grp_mask, \ - LDIMMhalf_S_bits, LDIMMhalf_S_mask, \ - LDIMMhalf_H_bits, LDIMMhalf_H_mask, \ - LDIMMhalf_Z_bits, LDIMMhalf_Z_mask, \ - LDIMMhalf_code_bits, LDIMMhalf_code_mask \ -}; - - -/* CC2dreg -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |.op....|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_op; - int mask_op; - int bits_code; - int mask_code; -} CC2dreg; - -#define CC2dreg_opcode 0x0200 -#define CC2dreg_reg_bits 0 -#define CC2dreg_reg_mask 0x7 -#define CC2dreg_op_bits 3 -#define CC2dreg_op_mask 0x3 -#define CC2dreg_code_bits 5 -#define CC2dreg_code_mask 0x7fff - -#define init_CC2dreg \ -{ \ - CC2dreg_opcode, \ - CC2dreg_reg_bits, CC2dreg_reg_mask, \ - CC2dreg_op_bits, CC2dreg_op_mask, \ - CC2dreg_code_bits, CC2dreg_code_mask \ -}; - - -/* PTR2op -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 1 | 0 | 0 | 0 | 1 | 0 |.opc.......|.src.......|.dst.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_dst; - int mask_dst; - int bits_src; - int mask_src; - int bits_opc; - int mask_opc; - int bits_code; - int mask_code; -} PTR2op; - -#define PTR2op_opcode 0x4400 -#define PTR2op_dst_bits 0 -#define PTR2op_dst_mask 0x7 -#define PTR2op_src_bits 3 -#define PTR2op_src_mask 0x7 -#define PTR2op_opc_bits 6 -#define PTR2op_opc_mask 0x7 -#define PTR2op_code_bits 9 -#define PTR2op_code_mask 0x7f - -#define init_PTR2op \ -{ \ - PTR2op_opcode, \ - PTR2op_dst_bits, PTR2op_dst_mask, \ - PTR2op_src_bits, PTR2op_src_mask, \ - PTR2op_opc_bits, PTR2op_opc_mask, \ - PTR2op_code_bits, PTR2op_code_mask \ -}; - - -/* COMP3op -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 1 | 0 | 1 |.opc.......|.dst.......|.src1......|.src0......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_src0; - int mask_src0; - int bits_src1; - int mask_src1; - int bits_dst; - int mask_dst; - int bits_opc; - int mask_opc; - int bits_code; - int mask_code; -} COMP3op; - -#define COMP3op_opcode 0x5000 -#define COMP3op_src0_bits 0 -#define COMP3op_src0_mask 0x7 -#define COMP3op_src1_bits 3 -#define COMP3op_src1_mask 0x7 -#define COMP3op_dst_bits 6 -#define COMP3op_dst_mask 0x7 -#define COMP3op_opc_bits 9 -#define COMP3op_opc_mask 0x7 -#define COMP3op_code_bits 12 -#define COMP3op_code_mask 0xf - -#define init_COMP3op \ -{ \ - COMP3op_opcode, \ - COMP3op_src0_bits, COMP3op_src0_mask, \ - COMP3op_src1_bits, COMP3op_src1_mask, \ - COMP3op_dst_bits, COMP3op_dst_mask, \ - COMP3op_opc_bits, COMP3op_opc_mask, \ - COMP3op_code_bits, COMP3op_code_mask \ -}; - -/* ccMV -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 1 | 1 |.T.|.d.|.s.|.dst.......|.src.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_src; - int mask_src; - int bits_dst; - int mask_dst; - int bits_s; - int mask_s; - int bits_d; - int mask_d; - int bits_T; - int mask_T; - int bits_code; - int mask_code; -} CCmv; - -#define CCmv_opcode 0x0600 -#define CCmv_src_bits 0 -#define CCmv_src_mask 0x7 -#define CCmv_dst_bits 3 -#define CCmv_dst_mask 0x7 -#define CCmv_s_bits 6 -#define CCmv_s_mask 0x1 -#define CCmv_d_bits 7 -#define CCmv_d_mask 0x1 -#define CCmv_T_bits 8 -#define CCmv_T_mask 0x1 -#define CCmv_code_bits 9 -#define CCmv_code_mask 0x7f - -#define init_CCmv \ -{ \ - CCmv_opcode, \ - CCmv_src_bits, CCmv_src_mask, \ - CCmv_dst_bits, CCmv_dst_mask, \ - CCmv_s_bits, CCmv_s_mask, \ - CCmv_d_bits, CCmv_d_mask, \ - CCmv_T_bits, CCmv_T_mask, \ - CCmv_code_bits, CCmv_code_mask \ -}; - - -/* CCflag -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 1 |.I.|.opc.......|.G.|.y.........|.x.........| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_x; - int mask_x; - int bits_y; - int mask_y; - int bits_G; - int mask_G; - int bits_opc; - int mask_opc; - int bits_I; - int mask_I; - int bits_code; - int mask_code; -} CCflag; - -#define CCflag_opcode 0x0800 -#define CCflag_x_bits 0 -#define CCflag_x_mask 0x7 -#define CCflag_y_bits 3 -#define CCflag_y_mask 0x7 -#define CCflag_G_bits 6 -#define CCflag_G_mask 0x1 -#define CCflag_opc_bits 7 -#define CCflag_opc_mask 0x7 -#define CCflag_I_bits 10 -#define CCflag_I_mask 0x1 -#define CCflag_code_bits 11 -#define CCflag_code_mask 0x1f - -#define init_CCflag \ -{ \ - CCflag_opcode, \ - CCflag_x_bits, CCflag_x_mask, \ - CCflag_y_bits, CCflag_y_mask, \ - CCflag_G_bits, CCflag_G_mask, \ - CCflag_opc_bits, CCflag_opc_mask, \ - CCflag_I_bits, CCflag_I_mask, \ - CCflag_code_bits, CCflag_code_mask, \ -}; - - -/* CC2stat -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |.D.|.op....|.cbit..............| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_cbit; - int mask_cbit; - int bits_op; - int mask_op; - int bits_D; - int mask_D; - int bits_code; - int mask_code; -} CC2stat; - -#define CC2stat_opcode 0x0300 -#define CC2stat_cbit_bits 0 -#define CC2stat_cbit_mask 0x1f -#define CC2stat_op_bits 5 -#define CC2stat_op_mask 0x3 -#define CC2stat_D_bits 7 -#define CC2stat_D_mask 0x1 -#define CC2stat_code_bits 8 -#define CC2stat_code_mask 0xff - -#define init_CC2stat \ -{ \ - CC2stat_opcode, \ - CC2stat_cbit_bits, CC2stat_cbit_mask, \ - CC2stat_op_bits, CC2stat_op_mask, \ - CC2stat_D_bits, CC2stat_D_mask, \ - CC2stat_code_bits, CC2stat_code_mask \ -}; - - -/* REGMV -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 1 | 1 |.gd........|.gs........|.dst.......|.src.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_src; - int mask_src; - int bits_dst; - int mask_dst; - int bits_gs; - int mask_gs; - int bits_gd; - int mask_gd; - int bits_code; - int mask_code; -} RegMv; - -#define RegMv_opcode 0x3000 -#define RegMv_src_bits 0 -#define RegMv_src_mask 0x7 -#define RegMv_dst_bits 3 -#define RegMv_dst_mask 0x7 -#define RegMv_gs_bits 6 -#define RegMv_gs_mask 0x7 -#define RegMv_gd_bits 9 -#define RegMv_gd_mask 0x7 -#define RegMv_code_bits 12 -#define RegMv_code_mask 0xf - -#define init_RegMv \ -{ \ - RegMv_opcode, \ - RegMv_src_bits, RegMv_src_mask, \ - RegMv_dst_bits, RegMv_dst_mask, \ - RegMv_gs_bits, RegMv_gs_mask, \ - RegMv_gd_bits, RegMv_gd_mask, \ - RegMv_code_bits, RegMv_code_mask \ -}; - - -/* COMPI2opD -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 1 | 1 | 0 | 0 |.op|.isrc......................|.dst.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_dst; - int mask_dst; - int bits_src; - int mask_src; - int bits_op; - int mask_op; - int bits_code; - int mask_code; -} COMPI2opD; - -#define COMPI2opD_opcode 0x6000 -#define COMPI2opD_dst_bits 0 -#define COMPI2opD_dst_mask 0x7 -#define COMPI2opD_src_bits 3 -#define COMPI2opD_src_mask 0x7f -#define COMPI2opD_op_bits 10 -#define COMPI2opD_op_mask 0x1 -#define COMPI2opD_code_bits 11 -#define COMPI2opD_code_mask 0x1f - -#define init_COMPI2opD \ -{ \ - COMPI2opD_opcode, \ - COMPI2opD_dst_bits, COMPI2opD_dst_mask, \ - COMPI2opD_src_bits, COMPI2opD_src_mask, \ - COMPI2opD_op_bits, COMPI2opD_op_mask, \ - COMPI2opD_code_bits, COMPI2opD_code_mask \ -}; - -/* COMPI2opP -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 1 | 1 | 0 | 1 |.op|.src.......................|.dst.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef COMPI2opD COMPI2opP; - -#define COMPI2opP_opcode 0x6800 -#define COMPI2opP_dst_bits 0 -#define COMPI2opP_dst_mask 0x7 -#define COMPI2opP_src_bits 3 -#define COMPI2opP_src_mask 0x7f -#define COMPI2opP_op_bits 10 -#define COMPI2opP_op_mask 0x1 -#define COMPI2opP_code_bits 11 -#define COMPI2opP_code_mask 0x1f - -#define init_COMPI2opP \ -{ \ - COMPI2opP_opcode, \ - COMPI2opP_dst_bits, COMPI2opP_dst_mask, \ - COMPI2opP_src_bits, COMPI2opP_src_mask, \ - COMPI2opP_op_bits, COMPI2opP_op_mask, \ - COMPI2opP_code_bits, COMPI2opP_code_mask \ -}; - - -/* dagMODim -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |.br| 1 | 1 |.op|.m.....|.i.....| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_i; - int mask_i; - int bits_m; - int mask_m; - int bits_op; - int mask_op; - int bits_code2; - int mask_code2; - int bits_br; - int mask_br; - int bits_code; - int mask_code; -} DagMODim; - -#define DagMODim_opcode 0x9e60 -#define DagMODim_i_bits 0 -#define DagMODim_i_mask 0x3 -#define DagMODim_m_bits 2 -#define DagMODim_m_mask 0x3 -#define DagMODim_op_bits 4 -#define DagMODim_op_mask 0x1 -#define DagMODim_code2_bits 5 -#define DagMODim_code2_mask 0x3 -#define DagMODim_br_bits 7 -#define DagMODim_br_mask 0x1 -#define DagMODim_code_bits 8 -#define DagMODim_code_mask 0xff - -#define init_DagMODim \ -{ \ - DagMODim_opcode, \ - DagMODim_i_bits, DagMODim_i_mask, \ - DagMODim_m_bits, DagMODim_m_mask, \ - DagMODim_op_bits, DagMODim_op_mask, \ - DagMODim_code2_bits, DagMODim_code2_mask, \ - DagMODim_br_bits, DagMODim_br_mask, \ - DagMODim_code_bits, DagMODim_code_mask \ -}; - -/* dagMODik -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |.op....|.i.....| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_i; - int mask_i; - int bits_op; - int mask_op; - int bits_code; - int mask_code; -} DagMODik; - -#define DagMODik_opcode 0x9f60 -#define DagMODik_i_bits 0 -#define DagMODik_i_mask 0x3 -#define DagMODik_op_bits 2 -#define DagMODik_op_mask 0x3 -#define DagMODik_code_bits 3 -#define DagMODik_code_mask 0xfff - -#define init_DagMODik \ -{ \ - DagMODik_opcode, \ - DagMODik_i_bits, DagMODik_i_mask, \ - DagMODik_op_bits, DagMODik_op_mask, \ - DagMODik_code_bits, DagMODik_code_mask \ -}; - -#endif diff --git a/include/opcode/cgen.h b/include/opcode/cgen.h deleted file mode 100644 index b7e82d4..0000000 --- a/include/opcode/cgen.h +++ /dev/null @@ -1,1480 +0,0 @@ -/* Header file for targets using CGEN: Cpu tools GENerator. - - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2009, 2010 - Free Software Foundation, Inc. - - This file is part of GDB, the GNU debugger, and the GNU Binutils. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef OPCODE_CGEN_H -#define OPCODE_CGEN_H - -#include "symcat.h" -#include "cgen/bitset.h" - -/* ??? IWBN to replace bfd in the name. */ -#include "bfd_stdint.h" - -/* ??? This file requires bfd.h but only to get bfd_vma. - Seems like an awful lot to require just to get such a fundamental type. - Perhaps the definition of bfd_vma can be moved outside of bfd.h. - Or perhaps one could duplicate its definition in another file. - Until such time, this file conditionally compiles definitions that require - bfd_vma using __BFD_H_SEEN__. */ - -/* Enums must be defined before they can be used. - Allow them to be used in struct definitions, even though the enum must - be defined elsewhere. - If CGEN_ARCH isn't defined, this file is being included by something other - than -desc.h. */ - -/* Prepend the arch name, defined in -desc.h, and _cgen_ to symbol S. - The lack of spaces in the arg list is important for non-stdc systems. - This file is included by -desc.h. - It can be included independently of -desc.h, in which case the arch - dependent portions will be declared as "unknown_cgen_foo". */ - -#ifndef CGEN_SYM -#define CGEN_SYM(s) CONCAT3 (unknown,_cgen_,s) -#endif - -/* This file contains the static (unchanging) pieces and as much other stuff - as we can reasonably put here. It's generally cleaner to put stuff here - rather than having it machine generated if possible. */ - -/* The assembler syntax is made up of expressions (duh...). - At the lowest level the values are mnemonics, register names, numbers, etc. - Above that are subexpressions, if any (an example might be the - "effective address" in m68k cpus). Subexpressions are wip. - At the second highest level are the insns themselves. Above that are - pseudo-insns, synthetic insns, and macros, if any. */ - -/* Lots of cpu's have a fixed insn size, or one which rarely changes, - and it's generally easier to handle these by treating the insn as an - integer type, rather than an array of characters. So we allow targets - to control this. When an integer type the value is in host byte order, - when an array of characters the value is in target byte order. */ - -typedef unsigned int CGEN_INSN_INT; -typedef int64_t CGEN_INSN_LGSINT; /* large/long SINT */ -typedef uint64_t CGEN_INSN_LGUINT; /* large/long UINT */ - -#if CGEN_INT_INSN_P -typedef CGEN_INSN_INT CGEN_INSN_BYTES; -typedef CGEN_INSN_INT *CGEN_INSN_BYTES_PTR; -#else -typedef unsigned char *CGEN_INSN_BYTES; -typedef unsigned char *CGEN_INSN_BYTES_PTR; -#endif - -#ifdef __GNUC__ -#define CGEN_INLINE __inline__ -#else -#define CGEN_INLINE -#endif - -enum cgen_endian -{ - CGEN_ENDIAN_UNKNOWN, - CGEN_ENDIAN_LITTLE, - CGEN_ENDIAN_BIG -}; - -/* Forward decl. */ - -typedef struct cgen_insn CGEN_INSN; - -/* Opaque pointer version for use by external world. */ - -typedef struct cgen_cpu_desc *CGEN_CPU_DESC; - -/* Attributes. - Attributes are used to describe various random things associated with - an object (ifield, hardware, operand, insn, whatever) and are specified - as name/value pairs. - Integer attributes computed at compile time are currently all that's - supported, though adding string attributes and run-time computation is - straightforward. Integer attribute values are always host int's - (signed or unsigned). For portability, this means 32 bits. - Integer attributes are further categorized as boolean, bitset, integer, - and enum types. Boolean attributes appear frequently enough that they're - recorded in one host int. This limits the maximum number of boolean - attributes to 32, though that's a *lot* of attributes. */ - -/* Type of attribute values. */ - -typedef CGEN_BITSET CGEN_ATTR_VALUE_BITSET_TYPE; -typedef int CGEN_ATTR_VALUE_ENUM_TYPE; -typedef union -{ - CGEN_ATTR_VALUE_BITSET_TYPE bitset; - CGEN_ATTR_VALUE_ENUM_TYPE nonbitset; -} CGEN_ATTR_VALUE_TYPE; - -/* Struct to record attribute information. */ - -typedef struct -{ - /* Boolean attributes. */ - unsigned int bool_; - /* Non-boolean integer attributes. */ - CGEN_ATTR_VALUE_TYPE nonbool[1]; -} CGEN_ATTR; - -/* Define a structure member for attributes with N non-boolean entries. - There is no maximum number of non-boolean attributes. - There is a maximum of 32 boolean attributes (since they are all recorded - in one host int). */ - -#define CGEN_ATTR_TYPE(n) \ -struct { unsigned int bool_; \ - CGEN_ATTR_VALUE_TYPE nonbool[(n) ? (n) : 1]; } - -/* Return the boolean attributes. */ - -#define CGEN_ATTR_BOOLS(a) ((a)->bool_) - -/* Non-boolean attribute numbers are offset by this much. */ - -#define CGEN_ATTR_NBOOL_OFFSET 32 - -/* Given a boolean attribute number, return its mask. */ - -#define CGEN_ATTR_MASK(attr) (1 << (attr)) - -/* Return the value of boolean attribute ATTR in ATTRS. */ - -#define CGEN_BOOL_ATTR(attrs, attr) ((CGEN_ATTR_MASK (attr) & (attrs)) != 0) - -/* Return value of attribute ATTR in ATTR_TABLE for OBJ. - OBJ is a pointer to the entity that has the attributes - (??? not used at present but is reserved for future purposes - eventually - the goal is to allow recording attributes in source form and computing - them lazily at runtime, not sure of the details yet). */ - -#define CGEN_ATTR_VALUE(obj, attr_table, attr) \ -((unsigned int) (attr) < CGEN_ATTR_NBOOL_OFFSET \ - ? ((CGEN_ATTR_BOOLS (attr_table) & CGEN_ATTR_MASK (attr)) != 0) \ - : ((attr_table)->nonbool[(attr) - CGEN_ATTR_NBOOL_OFFSET].nonbitset)) -#define CGEN_BITSET_ATTR_VALUE(obj, attr_table, attr) \ - ((attr_table)->nonbool[(attr) - CGEN_ATTR_NBOOL_OFFSET].bitset) - -/* Attribute name/value tables. - These are used to assist parsing of descriptions at run-time. */ - -typedef struct -{ - const char * name; - unsigned value; -} CGEN_ATTR_ENTRY; - -/* For each domain (ifld,hw,operand,insn), list of attributes. */ - -typedef struct -{ - const char * name; - const CGEN_ATTR_ENTRY * dfault; - const CGEN_ATTR_ENTRY * vals; -} CGEN_ATTR_TABLE; - -/* Instruction set variants. */ - -typedef struct { - const char *name; - - /* Default instruction size (in bits). - This is used by the assembler when it encounters an unknown insn. */ - unsigned int default_insn_bitsize; - - /* Base instruction size (in bits). - For non-LIW cpus this is generally the length of the smallest insn. - For LIW cpus its wip (work-in-progress). For the m32r its 32. */ - unsigned int base_insn_bitsize; - - /* Minimum/maximum instruction size (in bits). */ - unsigned int min_insn_bitsize; - unsigned int max_insn_bitsize; -} CGEN_ISA; - -/* Machine variants. */ - -typedef struct { - const char *name; - /* The argument to bfd_arch_info->scan. */ - const char *bfd_name; - /* one of enum mach_attr */ - int num; - /* parameter from mach->cpu */ - unsigned int insn_chunk_bitsize; -} CGEN_MACH; - -/* Parse result (also extraction result). - - The result of parsing an insn is stored here. - To generate the actual insn, this is passed to the insert handler. - When printing an insn, the result of extraction is stored here. - To print the insn, this is passed to the print handler. - - It is machine generated so we don't define it here, - but we do need a forward decl for the handler fns. - - There is one member for each possible field in the insn. - The type depends on the field. - Also recorded here is the computed length of the insn for architectures - where it varies. -*/ - -typedef struct cgen_fields CGEN_FIELDS; - -/* Total length of the insn, as recorded in the `fields' struct. */ -/* ??? The field insert handler has lots of opportunities for optimization - if it ever gets inlined. On architectures where insns all have the same - size, may wish to detect that and make this macro a constant - to allow - further optimizations. */ - -#define CGEN_FIELDS_BITSIZE(fields) ((fields)->length) - -/* Extraction support for variable length insn sets. */ - -/* When disassembling we don't know the number of bytes to read at the start. - So the first CGEN_BASE_INSN_SIZE bytes are read at the start and the rest - are read when needed. This struct controls this. It is basically the - disassemble_info stuff, except that we provide a cache for values already - read (since bytes can typically be read several times to fetch multiple - operands that may be in them), and that extraction of fields is needed - in contexts other than disassembly. */ - -typedef struct { - /* A pointer to the disassemble_info struct. - We don't require dis-asm.h so we use void * for the type here. - If NULL, BYTES is full of valid data (VALID == -1). */ - void *dis_info; - /* Points to a working buffer of sufficient size. */ - unsigned char *insn_bytes; - /* Mask of bytes that are valid in INSN_BYTES. */ - unsigned int valid; -} CGEN_EXTRACT_INFO; - -/* Associated with each insn or expression is a set of "handlers" for - performing operations like parsing, printing, etc. These require a bfd_vma - value to be passed around but we don't want all applications to need bfd.h. - So this stuff is only provided if bfd.h has been included. */ - -/* Parse handler. - CD is a cpu table descriptor. - INSN is a pointer to a struct describing the insn being parsed. - STRP is a pointer to a pointer to the text being parsed. - FIELDS is a pointer to a cgen_fields struct in which the results are placed. - If the expression is successfully parsed, *STRP is updated. - If not it is left alone. - The result is NULL if success or an error message. */ -typedef const char * (cgen_parse_fn) - (CGEN_CPU_DESC, const CGEN_INSN *insn_, - const char **strp_, CGEN_FIELDS *fields_); - -/* Insert handler. - CD is a cpu table descriptor. - INSN is a pointer to a struct describing the insn being parsed. - FIELDS is a pointer to a cgen_fields struct from which the values - are fetched. - INSNP is a pointer to a buffer in which to place the insn. - PC is the pc value of the insn. - The result is an error message or NULL if success. */ - -#ifdef __BFD_H_SEEN__ -typedef const char * (cgen_insert_fn) - (CGEN_CPU_DESC, const CGEN_INSN *insn_, - CGEN_FIELDS *fields_, CGEN_INSN_BYTES_PTR insnp_, - bfd_vma pc_); -#else -typedef const char * (cgen_insert_fn) (); -#endif - -/* Extract handler. - CD is a cpu table descriptor. - INSN is a pointer to a struct describing the insn being parsed. - The second argument is a pointer to a struct controlling extraction - (only used for variable length insns). - EX_INFO is a pointer to a struct for controlling reading of further - bytes for the insn. - BASE_INSN is the first CGEN_BASE_INSN_SIZE bytes (host order). - FIELDS is a pointer to a cgen_fields struct in which the results are placed. - PC is the pc value of the insn. - The result is the length of the insn in bits or zero if not recognized. */ - -#ifdef __BFD_H_SEEN__ -typedef int (cgen_extract_fn) - (CGEN_CPU_DESC, const CGEN_INSN *insn_, - CGEN_EXTRACT_INFO *ex_info_, CGEN_INSN_INT base_insn_, - CGEN_FIELDS *fields_, bfd_vma pc_); -#else -typedef int (cgen_extract_fn) (); -#endif - -/* Print handler. - CD is a cpu table descriptor. - INFO is a pointer to the disassembly info. - Eg: disassemble_info. It's defined as `PTR' so this file can be included - without dis-asm.h. - INSN is a pointer to a struct describing the insn being printed. - FIELDS is a pointer to a cgen_fields struct. - PC is the pc value of the insn. - LEN is the length of the insn, in bits. */ - -#ifdef __BFD_H_SEEN__ -typedef void (cgen_print_fn) - (CGEN_CPU_DESC, void * info_, const CGEN_INSN *insn_, - CGEN_FIELDS *fields_, bfd_vma pc_, int len_); -#else -typedef void (cgen_print_fn) (); -#endif - -/* Parse/insert/extract/print handlers. - - Indices into the handler tables. - We could use pointers here instead, but 90% of them are generally identical - and that's a lot of redundant data. Making these unsigned char indices - into tables of pointers saves a bit of space. - Using indices also keeps assembler code out of the disassembler and - vice versa. */ - -struct cgen_opcode_handler -{ - unsigned char parse, insert, extract, print; -}; - -/* Assembler interface. - - The interface to the assembler is intended to be clean in the sense that - libopcodes.a is a standalone entity and could be used with any assembler. - Not that one would necessarily want to do that but rather that it helps - keep a clean interface. The interface will obviously be slanted towards - GAS, but at least it's a start. - ??? Note that one possible user of the assembler besides GAS is GDB. - - Parsing is controlled by the assembler which calls - CGEN_SYM (assemble_insn). If it can parse and build the entire insn - it doesn't call back to the assembler. If it needs/wants to call back - to the assembler, cgen_parse_operand_fn is called which can either - - - return a number to be inserted in the insn - - return a "register" value to be inserted - (the register might not be a register per pe) - - queue the argument and return a marker saying the expression has been - queued (eg: a fix-up) - - return an error message indicating the expression wasn't recognizable - - The result is an error message or NULL for success. - The parsed value is stored in the bfd_vma *. */ - -/* Values for indicating what the caller wants. */ - -enum cgen_parse_operand_type -{ - CGEN_PARSE_OPERAND_INIT, - CGEN_PARSE_OPERAND_INTEGER, - CGEN_PARSE_OPERAND_ADDRESS, - CGEN_PARSE_OPERAND_SYMBOLIC -}; - -/* Values for indicating what was parsed. */ - -enum cgen_parse_operand_result -{ - CGEN_PARSE_OPERAND_RESULT_NUMBER, - CGEN_PARSE_OPERAND_RESULT_REGISTER, - CGEN_PARSE_OPERAND_RESULT_QUEUED, - CGEN_PARSE_OPERAND_RESULT_ERROR -}; - -#ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily. */ -typedef const char * (cgen_parse_operand_fn) - (CGEN_CPU_DESC, - enum cgen_parse_operand_type, const char **, int, int, - enum cgen_parse_operand_result *, bfd_vma *); -#else -typedef const char * (cgen_parse_operand_fn) (); -#endif - -/* Set the cgen_parse_operand_fn callback. */ - -extern void cgen_set_parse_operand_fn - (CGEN_CPU_DESC, cgen_parse_operand_fn); - -/* Called before trying to match a table entry with the insn. */ - -extern void cgen_init_parse_operand (CGEN_CPU_DESC); - -/* Operand values (keywords, integers, symbols, etc.) */ - -/* Types of assembler elements. */ - -enum cgen_asm_type -{ - CGEN_ASM_NONE, CGEN_ASM_KEYWORD, CGEN_ASM_MAX -}; - -#ifndef CGEN_ARCH -enum cgen_hw_type { CGEN_HW_MAX }; -#endif - -/* List of hardware elements. */ - -typedef struct -{ - char *name; - enum cgen_hw_type type; - /* There is currently no example where both index specs and value specs - are required, so for now both are clumped under "asm_data". */ - enum cgen_asm_type asm_type; - void *asm_data; -#ifndef CGEN_HW_NBOOL_ATTRS -#define CGEN_HW_NBOOL_ATTRS 1 -#endif - CGEN_ATTR_TYPE (CGEN_HW_NBOOL_ATTRS) attrs; -#define CGEN_HW_ATTRS(hw) (&(hw)->attrs) -} CGEN_HW_ENTRY; - -/* Return value of attribute ATTR in HW. */ - -#define CGEN_HW_ATTR_VALUE(hw, attr) \ -CGEN_ATTR_VALUE ((hw), CGEN_HW_ATTRS (hw), (attr)) - -/* Table of hardware elements for selected mach, computed at runtime. - enum cgen_hw_type is an index into this table (specifically `entries'). */ - -typedef struct { - /* Pointer to null terminated table of all compiled in entries. */ - const CGEN_HW_ENTRY *init_entries; - unsigned int entry_size; /* since the attribute member is variable sized */ - /* Array of all entries, initial and run-time added. */ - const CGEN_HW_ENTRY **entries; - /* Number of elements in `entries'. */ - unsigned int num_entries; - /* For now, xrealloc is called each time a new entry is added at runtime. - ??? May wish to keep track of some slop to reduce the number of calls to - xrealloc, except that there's unlikely to be many and not expected to be - in speed critical code. */ -} CGEN_HW_TABLE; - -extern const CGEN_HW_ENTRY * cgen_hw_lookup_by_name - (CGEN_CPU_DESC, const char *); -extern const CGEN_HW_ENTRY * cgen_hw_lookup_by_num - (CGEN_CPU_DESC, unsigned int); - -/* This struct is used to describe things like register names, etc. */ - -typedef struct cgen_keyword_entry -{ - /* Name (as in register name). */ - char * name; - - /* Value (as in register number). - The value cannot be -1 as that is used to indicate "not found". - IDEA: Have "FUNCTION" attribute? [function is called to fetch value]. */ - int value; - - /* Attributes. - This should, but technically needn't, appear last. It is a variable sized - array in that one architecture may have 1 nonbool attribute and another - may have more. Having this last means the non-architecture specific code - needn't care. The goal is to eventually record - attributes in their raw form, evaluate them at run-time, and cache the - values, so this worry will go away anyway. */ - /* ??? Moving this last should be done by treating keywords like insn lists - and moving the `next' fields into a CGEN_KEYWORD_LIST struct. */ - /* FIXME: Not used yet. */ -#ifndef CGEN_KEYWORD_NBOOL_ATTRS -#define CGEN_KEYWORD_NBOOL_ATTRS 1 -#endif - CGEN_ATTR_TYPE (CGEN_KEYWORD_NBOOL_ATTRS) attrs; - - /* ??? Putting these here means compiled in entries can't be const. - Not a really big deal, but something to consider. */ - /* Next name hash table entry. */ - struct cgen_keyword_entry *next_name; - /* Next value hash table entry. */ - struct cgen_keyword_entry *next_value; -} CGEN_KEYWORD_ENTRY; - -/* Top level struct for describing a set of related keywords - (e.g. register names). - - This struct supports run-time entry of new values, and hashed lookups. */ - -typedef struct cgen_keyword -{ - /* Pointer to initial [compiled in] values. */ - CGEN_KEYWORD_ENTRY *init_entries; - - /* Number of entries in `init_entries'. */ - unsigned int num_init_entries; - - /* Hash table used for name lookup. */ - CGEN_KEYWORD_ENTRY **name_hash_table; - - /* Hash table used for value lookup. */ - CGEN_KEYWORD_ENTRY **value_hash_table; - - /* Number of entries in the hash_tables. */ - unsigned int hash_table_size; - - /* Pointer to null keyword "" entry if present. */ - const CGEN_KEYWORD_ENTRY *null_entry; - - /* String containing non-alphanumeric characters used - in keywords. - At present, the highest number of entries used is 1. */ - char nonalpha_chars[8]; -} CGEN_KEYWORD; - -/* Structure used for searching. */ - -typedef struct -{ - /* Table being searched. */ - const CGEN_KEYWORD *table; - - /* Specification of what is being searched for. */ - const char *spec; - - /* Current index in hash table. */ - unsigned int current_hash; - - /* Current element in current hash chain. */ - CGEN_KEYWORD_ENTRY *current_entry; -} CGEN_KEYWORD_SEARCH; - -/* Lookup a keyword from its name. */ - -const CGEN_KEYWORD_ENTRY *cgen_keyword_lookup_name - (CGEN_KEYWORD *, const char *); - -/* Lookup a keyword from its value. */ - -const CGEN_KEYWORD_ENTRY *cgen_keyword_lookup_value - (CGEN_KEYWORD *, int); - -/* Add a keyword. */ - -void cgen_keyword_add (CGEN_KEYWORD *, CGEN_KEYWORD_ENTRY *); - -/* Keyword searching. - This can be used to retrieve every keyword, or a subset. */ - -CGEN_KEYWORD_SEARCH cgen_keyword_search_init - (CGEN_KEYWORD *, const char *); -const CGEN_KEYWORD_ENTRY *cgen_keyword_search_next - (CGEN_KEYWORD_SEARCH *); - -/* Operand value support routines. */ - -extern const char *cgen_parse_keyword - (CGEN_CPU_DESC, const char **, CGEN_KEYWORD *, long *); -#ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily. */ -extern const char *cgen_parse_signed_integer - (CGEN_CPU_DESC, const char **, int, long *); -extern const char *cgen_parse_unsigned_integer - (CGEN_CPU_DESC, const char **, int, unsigned long *); -extern const char *cgen_parse_address - (CGEN_CPU_DESC, const char **, int, int, - enum cgen_parse_operand_result *, bfd_vma *); -extern const char *cgen_validate_signed_integer - (long, long, long); -extern const char *cgen_validate_unsigned_integer - (unsigned long, unsigned long, unsigned long); -#endif - -/* Operand modes. */ - -/* ??? This duplicates the values in arch.h. Revisit. - These however need the CGEN_ prefix [as does everything in this file]. */ -/* ??? Targets may need to add their own modes so we may wish to move this - to -opc.h, or add a hook. */ - -enum cgen_mode { - CGEN_MODE_VOID, /* ??? rename simulator's VM to VOID? */ - CGEN_MODE_BI, CGEN_MODE_QI, CGEN_MODE_HI, CGEN_MODE_SI, CGEN_MODE_DI, - CGEN_MODE_UBI, CGEN_MODE_UQI, CGEN_MODE_UHI, CGEN_MODE_USI, CGEN_MODE_UDI, - CGEN_MODE_SF, CGEN_MODE_DF, CGEN_MODE_XF, CGEN_MODE_TF, - CGEN_MODE_TARGET_MAX, - CGEN_MODE_INT, CGEN_MODE_UINT, - CGEN_MODE_MAX -}; - -/* FIXME: Until simulator is updated. */ - -#define CGEN_MODE_VM CGEN_MODE_VOID - -/* Operands. */ - -#ifndef CGEN_ARCH -enum cgen_operand_type { CGEN_OPERAND_MAX }; -#endif - -/* "nil" indicator for the operand instance table */ -#define CGEN_OPERAND_NIL CGEN_OPERAND_MAX - -/* A tree of these structs represents the multi-ifield - structure of an operand's hw-index value, if it exists. */ - -struct cgen_ifld; - -typedef struct cgen_maybe_multi_ifield -{ - int count; /* 0: indexed by single cgen_ifld (possibly null: dead entry); - n: indexed by array of more cgen_maybe_multi_ifields. */ - union - { - const void *p; - const struct cgen_maybe_multi_ifield * multi; - const struct cgen_ifld * leaf; - } val; -} -CGEN_MAYBE_MULTI_IFLD; - -/* This struct defines each entry in the operand table. */ - -typedef struct -{ - /* Name as it appears in the syntax string. */ - char *name; - - /* Operand type. */ - enum cgen_operand_type type; - - /* The hardware element associated with this operand. */ - enum cgen_hw_type hw_type; - - /* FIXME: We don't yet record ifield definitions, which we should. - When we do it might make sense to delete start/length (since they will - be duplicated in the ifield's definition) and replace them with a - pointer to the ifield entry. */ - - /* Bit position. - This is just a hint, and may be unused in more complex operands. - May be unused for a modifier. */ - unsigned char start; - - /* The number of bits in the operand. - This is just a hint, and may be unused in more complex operands. - May be unused for a modifier. */ - unsigned char length; - - /* The (possibly-multi) ifield used as an index for this operand, if it - is indexed by a field at all. This substitutes / extends the start and - length fields above, but unsure at this time whether they are used - anywhere. */ - CGEN_MAYBE_MULTI_IFLD index_fields; -#if 0 /* ??? Interesting idea but relocs tend to get too complicated, - and ABI dependent, for simple table lookups to work. */ - /* Ideally this would be the internal (external?) reloc type. */ - int reloc_type; -#endif - - /* Attributes. - This should, but technically needn't, appear last. It is a variable sized - array in that one architecture may have 1 nonbool attribute and another - may have more. Having this last means the non-architecture specific code - needn't care, now or tomorrow. The goal is to eventually record - attributes in their raw form, evaluate them at run-time, and cache the - values, so this worry will go away anyway. */ -#ifndef CGEN_OPERAND_NBOOL_ATTRS -#define CGEN_OPERAND_NBOOL_ATTRS 1 -#endif - CGEN_ATTR_TYPE (CGEN_OPERAND_NBOOL_ATTRS) attrs; -#define CGEN_OPERAND_ATTRS(operand) (&(operand)->attrs) -} CGEN_OPERAND; - -/* Return value of attribute ATTR in OPERAND. */ - -#define CGEN_OPERAND_ATTR_VALUE(operand, attr) \ -CGEN_ATTR_VALUE ((operand), CGEN_OPERAND_ATTRS (operand), (attr)) - -/* Table of operands for selected mach/isa, computed at runtime. - enum cgen_operand_type is an index into this table (specifically - `entries'). */ - -typedef struct { - /* Pointer to null terminated table of all compiled in entries. */ - const CGEN_OPERAND *init_entries; - unsigned int entry_size; /* since the attribute member is variable sized */ - /* Array of all entries, initial and run-time added. */ - const CGEN_OPERAND **entries; - /* Number of elements in `entries'. */ - unsigned int num_entries; - /* For now, xrealloc is called each time a new entry is added at runtime. - ??? May wish to keep track of some slop to reduce the number of calls to - xrealloc, except that there's unlikely to be many and not expected to be - in speed critical code. */ -} CGEN_OPERAND_TABLE; - -extern const CGEN_OPERAND * cgen_operand_lookup_by_name - (CGEN_CPU_DESC, const char *); -extern const CGEN_OPERAND * cgen_operand_lookup_by_num - (CGEN_CPU_DESC, int); - -/* Instruction operand instances. - - For each instruction, a list of the hardware elements that are read and - written are recorded. */ - -/* The type of the instance. */ - -enum cgen_opinst_type { - /* End of table marker. */ - CGEN_OPINST_END = 0, - CGEN_OPINST_INPUT, CGEN_OPINST_OUTPUT -}; - -typedef struct -{ - /* Input or output indicator. */ - enum cgen_opinst_type type; - - /* Name of operand. */ - const char *name; - - /* The hardware element referenced. */ - enum cgen_hw_type hw_type; - - /* The mode in which the operand is being used. */ - enum cgen_mode mode; - - /* The operand table entry CGEN_OPERAND_NIL if there is none - (i.e. an explicit hardware reference). */ - enum cgen_operand_type op_type; - - /* If `operand' is "nil", the index (e.g. into array of registers). */ - int index; - - /* Attributes. - ??? This perhaps should be a real attribute struct but there's - no current need, so we save a bit of space and just have a set of - flags. The interface is such that this can easily be made attributes - should it prove useful. */ - unsigned int attrs; -#define CGEN_OPINST_ATTRS(opinst) ((opinst)->attrs) -/* Return value of attribute ATTR in OPINST. */ -#define CGEN_OPINST_ATTR(opinst, attr) \ -((CGEN_OPINST_ATTRS (opinst) & (attr)) != 0) -/* Operand is conditionally referenced (read/written). */ -#define CGEN_OPINST_COND_REF 1 -} CGEN_OPINST; - -/* Syntax string. - - Each insn format and subexpression has one of these. - - The syntax "string" consists of characters (n > 0 && n < 128), and operand - values (n >= 128), and is terminated by 0. Operand values are 128 + index - into the operand table. The operand table doesn't exist in C, per se, as - the data is recorded in the parse/insert/extract/print switch statements. */ - -/* This should be at least as large as necessary for any target. */ -#define CGEN_MAX_SYNTAX_ELEMENTS 48 - -/* A target may know its own precise maximum. Assert that it falls below - the above limit. */ -#ifdef CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS -#if CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS > CGEN_MAX_SYNTAX_ELEMENTS -#error "CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS too high - enlarge CGEN_MAX_SYNTAX_ELEMENTS" -#endif -#endif - -typedef unsigned short CGEN_SYNTAX_CHAR_TYPE; - -typedef struct -{ - CGEN_SYNTAX_CHAR_TYPE syntax[CGEN_MAX_SYNTAX_ELEMENTS]; -} CGEN_SYNTAX; - -#define CGEN_SYNTAX_STRING(syn) (syn->syntax) -#define CGEN_SYNTAX_CHAR_P(c) ((c) < 128) -#define CGEN_SYNTAX_CHAR(c) ((unsigned char)c) -#define CGEN_SYNTAX_FIELD(c) ((c) - 128) -#define CGEN_SYNTAX_MAKE_FIELD(c) ((c) + 128) - -/* ??? I can't currently think of any case where the mnemonic doesn't come - first [and if one ever doesn't building the hash tables will be tricky]. - However, we treat mnemonics as just another operand of the instruction. - A value of 1 means "this is where the mnemonic appears". 1 isn't - special other than it's a non-printable ASCII char. */ - -#define CGEN_SYNTAX_MNEMONIC 1 -#define CGEN_SYNTAX_MNEMONIC_P(ch) ((ch) == CGEN_SYNTAX_MNEMONIC) - -/* Instruction fields. - - ??? We currently don't allow adding fields at run-time. - Easy to fix when needed. */ - -typedef struct cgen_ifld { - /* Enum of ifield. */ - int num; -#define CGEN_IFLD_NUM(f) ((f)->num) - - /* Name of the field, distinguishes it from all other fields. */ - const char *name; -#define CGEN_IFLD_NAME(f) ((f)->name) - - /* Default offset, in bits, from the start of the insn to the word - containing the field. */ - int word_offset; -#define CGEN_IFLD_WORD_OFFSET(f) ((f)->word_offset) - - /* Default length of the word containing the field. */ - int word_size; -#define CGEN_IFLD_WORD_SIZE(f) ((f)->word_size) - - /* Default starting bit number. - Whether lsb=0 or msb=0 is determined by CGEN_INSN_LSB0_P. */ - int start; -#define CGEN_IFLD_START(f) ((f)->start) - - /* Length of the field, in bits. */ - int length; -#define CGEN_IFLD_LENGTH(f) ((f)->length) - -#ifndef CGEN_IFLD_NBOOL_ATTRS -#define CGEN_IFLD_NBOOL_ATTRS 1 -#endif - CGEN_ATTR_TYPE (CGEN_IFLD_NBOOL_ATTRS) attrs; -#define CGEN_IFLD_ATTRS(f) (&(f)->attrs) -} CGEN_IFLD; - -/* Return value of attribute ATTR in IFLD. */ -#define CGEN_IFLD_ATTR_VALUE(ifld, attr) \ -CGEN_ATTR_VALUE ((ifld), CGEN_IFLD_ATTRS (ifld), (attr)) - -/* Instruction data. */ - -/* Instruction formats. - - Instructions are grouped by format. Associated with an instruction is its - format. Each insn's opcode table entry contains a format table entry. - ??? There is usually very few formats compared with the number of insns, - so one can reduce the size of the opcode table by recording the format table - as a separate entity. Given that we currently don't, format table entries - are also distinguished by their operands. This increases the size of the - table, but reduces the number of tables. It's all minutiae anyway so it - doesn't really matter [at this point in time]. - - ??? Support for variable length ISA's is wip. */ - -/* Accompanying each iformat description is a list of its fields. */ - -typedef struct { - const CGEN_IFLD *ifld; -#define CGEN_IFMT_IFLD_IFLD(ii) ((ii)->ifld) -} CGEN_IFMT_IFLD; - -/* This should be at least as large as necessary for any target. */ -#define CGEN_MAX_IFMT_OPERANDS 16 - -/* A target may know its own precise maximum. Assert that it falls below - the above limit. */ -#ifdef CGEN_ACTUAL_MAX_IFMT_OPERANDS -#if CGEN_ACTUAL_MAX_IFMT_OPERANDS > CGEN_MAX_IFMT_OPERANDS -#error "CGEN_ACTUAL_MAX_IFMT_OPERANDS too high - enlarge CGEN_MAX_IFMT_OPERANDS" -#endif -#endif - - -typedef struct -{ - /* Length that MASK and VALUE have been calculated to - [VALUE is recorded elsewhere]. - Normally it is base_insn_bitsize. On [V]LIW architectures where the base - insn size may be larger than the size of an insn, this field is less than - base_insn_bitsize. */ - unsigned char mask_length; -#define CGEN_IFMT_MASK_LENGTH(ifmt) ((ifmt)->mask_length) - - /* Total length of instruction, in bits. */ - unsigned char length; -#define CGEN_IFMT_LENGTH(ifmt) ((ifmt)->length) - - /* Mask to apply to the first MASK_LENGTH bits. - Each insn's value is stored with the insn. - The first step in recognizing an insn for disassembly is - (opcode & mask) == value. */ - CGEN_INSN_INT mask; -#define CGEN_IFMT_MASK(ifmt) ((ifmt)->mask) - - /* Instruction fields. - +1 for trailing NULL. */ - CGEN_IFMT_IFLD iflds[CGEN_MAX_IFMT_OPERANDS + 1]; -#define CGEN_IFMT_IFLDS(ifmt) ((ifmt)->iflds) -} CGEN_IFMT; - -/* Instruction values. */ - -typedef struct -{ - /* The opcode portion of the base insn. */ - CGEN_INSN_INT base_value; - -#ifdef CGEN_MAX_EXTRA_OPCODE_OPERANDS - /* Extra opcode values beyond base_value. */ - unsigned long ifield_values[CGEN_MAX_EXTRA_OPCODE_OPERANDS]; -#endif -} CGEN_IVALUE; - -/* Instruction opcode table. - This contains the syntax and format data of an instruction. */ - -/* ??? Some ports already have an opcode table yet still need to use the rest - of what cgen_insn has. Plus keeping the opcode data with the operand - instance data can create a pretty big file. So we keep them separately. - Not sure this is a good idea in the long run. */ - -typedef struct -{ - /* Indices into parse/insert/extract/print handler tables. */ - struct cgen_opcode_handler handlers; -#define CGEN_OPCODE_HANDLERS(opc) (& (opc)->handlers) - - /* Syntax string. */ - CGEN_SYNTAX syntax; -#define CGEN_OPCODE_SYNTAX(opc) (& (opc)->syntax) - - /* Format entry. */ - const CGEN_IFMT *format; -#define CGEN_OPCODE_FORMAT(opc) ((opc)->format) -#define CGEN_OPCODE_MASK_BITSIZE(opc) CGEN_IFMT_MASK_LENGTH (CGEN_OPCODE_FORMAT (opc)) -#define CGEN_OPCODE_BITSIZE(opc) CGEN_IFMT_LENGTH (CGEN_OPCODE_FORMAT (opc)) -#define CGEN_OPCODE_IFLDS(opc) CGEN_IFMT_IFLDS (CGEN_OPCODE_FORMAT (opc)) - - /* Instruction opcode value. */ - CGEN_IVALUE value; -#define CGEN_OPCODE_VALUE(opc) (& (opc)->value) -#define CGEN_OPCODE_BASE_VALUE(opc) (CGEN_OPCODE_VALUE (opc)->base_value) -#define CGEN_OPCODE_BASE_MASK(opc) CGEN_IFMT_MASK (CGEN_OPCODE_FORMAT (opc)) -} CGEN_OPCODE; - -/* Instruction attributes. - This is made a published type as applications can cache a pointer to - the attributes for speed. */ - -#ifndef CGEN_INSN_NBOOL_ATTRS -#define CGEN_INSN_NBOOL_ATTRS 1 -#endif -typedef CGEN_ATTR_TYPE (CGEN_INSN_NBOOL_ATTRS) CGEN_INSN_ATTR_TYPE; - -/* Enum of architecture independent attributes. */ - -#ifndef CGEN_ARCH -/* ??? Numbers here are recorded in two places. */ -typedef enum cgen_insn_attr { - CGEN_INSN_ALIAS = 0 -} CGEN_INSN_ATTR; -#define CGEN_ATTR_CGEN_INSN_ALIAS_VALUE(attrs) ((attrs)->bool_ & (1 << CGEN_INSN_ALIAS)) -#endif - -/* This struct defines each entry in the instruction table. */ - -typedef struct -{ - /* Each real instruction is enumerated. */ - /* ??? This may go away in time. */ - int num; -#define CGEN_INSN_NUM(insn) ((insn)->base->num) - - /* Name of entry (that distinguishes it from all other entries). */ - /* ??? If mnemonics have operands, try to print full mnemonic. */ - const char *name; -#define CGEN_INSN_NAME(insn) ((insn)->base->name) - - /* Mnemonic. This is used when parsing and printing the insn. - In the case of insns that have operands on the mnemonics, this is - only the constant part. E.g. for conditional execution of an `add' insn, - where the full mnemonic is addeq, addne, etc., and the condition is - treated as an operand, this is only "add". */ - const char *mnemonic; -#define CGEN_INSN_MNEMONIC(insn) ((insn)->base->mnemonic) - - /* Total length of instruction, in bits. */ - int bitsize; -#define CGEN_INSN_BITSIZE(insn) ((insn)->base->bitsize) - -#if 0 /* ??? Disabled for now as there is a problem with embedded newlines - and the table is already pretty big. Should perhaps be moved - to a file of its own. */ - /* Semantics, as RTL. */ - /* ??? Plain text or bytecodes? */ - /* ??? Note that the operand instance table could be computed at run-time - if we parse this and cache the results. Something to eventually do. */ - const char *rtx; -#define CGEN_INSN_RTX(insn) ((insn)->base->rtx) -#endif - - /* Attributes. - This must appear last. It is a variable sized array in that one - architecture may have 1 nonbool attribute and another may have more. - Having this last means the non-architecture specific code needn't - care. The goal is to eventually record attributes in their raw form, - evaluate them at run-time, and cache the values, so this worry will go - away anyway. */ - CGEN_INSN_ATTR_TYPE attrs; -#define CGEN_INSN_ATTRS(insn) (&(insn)->base->attrs) -/* Return value of attribute ATTR in INSN. */ -#define CGEN_INSN_ATTR_VALUE(insn, attr) \ -CGEN_ATTR_VALUE ((insn), CGEN_INSN_ATTRS (insn), (attr)) -#define CGEN_INSN_BITSET_ATTR_VALUE(insn, attr) \ - CGEN_BITSET_ATTR_VALUE ((insn), CGEN_INSN_ATTRS (insn), (attr)) -} CGEN_IBASE; - -/* Return non-zero if INSN is the "invalid" insn marker. */ - -#define CGEN_INSN_INVALID_P(insn) (CGEN_INSN_MNEMONIC (insn) == 0) - -/* Main struct contain instruction information. - BASE is always present, the rest is present only if asked for. */ - -struct cgen_insn -{ - /* ??? May be of use to put a type indicator here. - Then this struct could different info for different classes of insns. */ - /* ??? A speedup can be had by moving `base' into this struct. - Maybe later. */ - const CGEN_IBASE *base; - const CGEN_OPCODE *opcode; - const CGEN_OPINST *opinst; - - /* Regex to disambiguate overloaded opcodes */ - void *rx; -#define CGEN_INSN_RX(insn) ((insn)->rx) -#define CGEN_MAX_RX_ELEMENTS (CGEN_MAX_SYNTAX_ELEMENTS * 5) -}; - -/* Instruction lists. - This is used for adding new entries and for creating the hash lists. */ - -typedef struct cgen_insn_list -{ - struct cgen_insn_list *next; - const CGEN_INSN *insn; -} CGEN_INSN_LIST; - -/* Table of instructions. */ - -typedef struct -{ - const CGEN_INSN *init_entries; - unsigned int entry_size; /* since the attribute member is variable sized */ - unsigned int num_init_entries; - CGEN_INSN_LIST *new_entries; -} CGEN_INSN_TABLE; - -/* Return number of instructions. This includes any added at run-time. */ - -extern int cgen_insn_count (CGEN_CPU_DESC); -extern int cgen_macro_insn_count (CGEN_CPU_DESC); - -/* Macros to access the other insn elements not recorded in CGEN_IBASE. */ - -/* Fetch INSN's operand instance table. */ -/* ??? Doesn't handle insns added at runtime. */ -#define CGEN_INSN_OPERANDS(insn) ((insn)->opinst) - -/* Return INSN's opcode table entry. */ -#define CGEN_INSN_OPCODE(insn) ((insn)->opcode) - -/* Return INSN's handler data. */ -#define CGEN_INSN_HANDLERS(insn) CGEN_OPCODE_HANDLERS (CGEN_INSN_OPCODE (insn)) - -/* Return INSN's syntax. */ -#define CGEN_INSN_SYNTAX(insn) CGEN_OPCODE_SYNTAX (CGEN_INSN_OPCODE (insn)) - -/* Return size of base mask in bits. */ -#define CGEN_INSN_MASK_BITSIZE(insn) \ - CGEN_OPCODE_MASK_BITSIZE (CGEN_INSN_OPCODE (insn)) - -/* Return mask of base part of INSN. */ -#define CGEN_INSN_BASE_MASK(insn) \ - CGEN_OPCODE_BASE_MASK (CGEN_INSN_OPCODE (insn)) - -/* Return value of base part of INSN. */ -#define CGEN_INSN_BASE_VALUE(insn) \ - CGEN_OPCODE_BASE_VALUE (CGEN_INSN_OPCODE (insn)) - -/* Standard way to test whether INSN is supported by MACH. - MACH is one of enum mach_attr. - The "|1" is because the base mach is always selected. */ -#define CGEN_INSN_MACH_HAS_P(insn, mach) \ -((CGEN_INSN_ATTR_VALUE ((insn), CGEN_INSN_MACH) & ((1 << (mach)) | 1)) != 0) - -/* Macro instructions. - Macro insns aren't real insns, they map to one or more real insns. - E.g. An architecture's "nop" insn may actually be an "mv r0,r0" or - some such. - - Macro insns can expand to nothing (e.g. a nop that is optimized away). - This is useful in multi-insn macros that build a constant in a register. - Of course this isn't the default behaviour and must be explicitly enabled. - - Assembly of macro-insns is relatively straightforward. Disassembly isn't. - However, disassembly of at least some kinds of macro insns is important - in order that the disassembled code preserve the readability of the original - insn. What is attempted here is to disassemble all "simple" macro-insns, - where "simple" is currently defined to mean "expands to one real insn". - - Simple macro-insns are handled specially. They are emitted as ALIAS's - of real insns. This simplifies their handling since there's usually more - of them than any other kind of macro-insn, and proper disassembly of them - falls out for free. */ - -/* For each macro-insn there may be multiple expansion possibilities, - depending on the arguments. This structure is accessed via the `data' - member of CGEN_INSN. */ - -typedef struct cgen_minsn_expansion { - /* Function to do the expansion. - If the expansion fails (e.g. "no match") NULL is returned. - Space for the expansion is obtained with malloc. - It is up to the caller to free it. */ - const char * (* fn) - (const struct cgen_minsn_expansion *, - const char *, const char **, int *, - CGEN_OPERAND **); -#define CGEN_MIEXPN_FN(ex) ((ex)->fn) - - /* Instruction(s) the macro expands to. - The format of STR is defined by FN. - It is typically the assembly code of the real insn, but it could also be - the original Scheme expression or a tokenized form of it (with FN being - an appropriate interpreter). */ - const char * str; -#define CGEN_MIEXPN_STR(ex) ((ex)->str) -} CGEN_MINSN_EXPANSION; - -/* Normal expander. - When supported, this function will convert the input string to another - string and the parser will be invoked recursively. The output string - may contain further macro invocations. */ - -extern const char * cgen_expand_macro_insn - (CGEN_CPU_DESC, const struct cgen_minsn_expansion *, - const char *, const char **, int *, CGEN_OPERAND **); - -/* The assembler insn table is hashed based on some function of the mnemonic - (the actually hashing done is up to the target, but we provide a few - examples like the first letter or a function of the entire mnemonic). */ - -extern CGEN_INSN_LIST * cgen_asm_lookup_insn - (CGEN_CPU_DESC, const char *); -#define CGEN_ASM_LOOKUP_INSN(cd, string) cgen_asm_lookup_insn ((cd), (string)) -#define CGEN_ASM_NEXT_INSN(insn) ((insn)->next) - -/* The disassembler insn table is hashed based on some function of machine - instruction (the actually hashing done is up to the target). */ - -extern CGEN_INSN_LIST * cgen_dis_lookup_insn - (CGEN_CPU_DESC, const char *, CGEN_INSN_INT); -/* FIXME: delete these two */ -#define CGEN_DIS_LOOKUP_INSN(cd, buf, value) cgen_dis_lookup_insn ((cd), (buf), (value)) -#define CGEN_DIS_NEXT_INSN(insn) ((insn)->next) - -/* The CPU description. - A copy of this is created when the cpu table is "opened". - All global state information is recorded here. - Access macros are provided for "public" members. */ - -typedef struct cgen_cpu_desc -{ - /* Bitmap of selected machine(s) (a la BFD machine number). */ - int machs; - - /* Bitmap of selected isa(s). */ - CGEN_BITSET *isas; -#define CGEN_CPU_ISAS(cd) ((cd)->isas) - - /* Current endian. */ - enum cgen_endian endian; -#define CGEN_CPU_ENDIAN(cd) ((cd)->endian) - - /* Current insn endian. */ - enum cgen_endian insn_endian; -#define CGEN_CPU_INSN_ENDIAN(cd) ((cd)->insn_endian) - - /* Word size (in bits). */ - /* ??? Or maybe maximum word size - might we ever need to allow a cpu table - to be opened for both sparc32/sparc64? - ??? Another alternative is to create a table of selected machs and - lazily fetch the data from there. */ - unsigned int word_bitsize; - - /* Instruction chunk size (in bits), for purposes of endianness - conversion. */ - unsigned int insn_chunk_bitsize; - - /* Indicator if sizes are unknown. - This is used by default_insn_bitsize,base_insn_bitsize if there is a - difference between the selected isa's. */ -#define CGEN_SIZE_UNKNOWN 65535 - - /* Default instruction size (in bits). - This is used by the assembler when it encounters an unknown insn. */ - unsigned int default_insn_bitsize; - - /* Base instruction size (in bits). - For non-LIW cpus this is generally the length of the smallest insn. - For LIW cpus its wip (work-in-progress). For the m32r its 32. */ - unsigned int base_insn_bitsize; - - /* Minimum/maximum instruction size (in bits). */ - unsigned int min_insn_bitsize; - unsigned int max_insn_bitsize; - - /* Instruction set variants. */ - const CGEN_ISA *isa_table; - - /* Machine variants. */ - const CGEN_MACH *mach_table; - - /* Hardware elements. */ - CGEN_HW_TABLE hw_table; - - /* Instruction fields. */ - const CGEN_IFLD *ifld_table; - - /* Operands. */ - CGEN_OPERAND_TABLE operand_table; - - /* Main instruction table. */ - CGEN_INSN_TABLE insn_table; -#define CGEN_CPU_INSN_TABLE(cd) (& (cd)->insn_table) - - /* Macro instructions are defined separately and are combined with real - insns during hash table computation. */ - CGEN_INSN_TABLE macro_insn_table; - - /* Copy of CGEN_INT_INSN_P. */ - int int_insn_p; - - /* Called to rebuild the tables after something has changed. */ - void (*rebuild_tables) (CGEN_CPU_DESC); - - /* Operand parser callback. */ - cgen_parse_operand_fn * parse_operand_fn; - - /* Parse/insert/extract/print cover fns for operands. */ - const char * (*parse_operand) - (CGEN_CPU_DESC, int opindex_, const char **, CGEN_FIELDS *fields_); -#ifdef __BFD_H_SEEN__ - const char * (*insert_operand) - (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, - CGEN_INSN_BYTES_PTR, bfd_vma pc_); - int (*extract_operand) - (CGEN_CPU_DESC, int opindex_, CGEN_EXTRACT_INFO *, CGEN_INSN_INT, - CGEN_FIELDS *fields_, bfd_vma pc_); - void (*print_operand) - (CGEN_CPU_DESC, int opindex_, void * info_, CGEN_FIELDS * fields_, - void const *attrs_, bfd_vma pc_, int length_); -#else - const char * (*insert_operand) (); - int (*extract_operand) (); - void (*print_operand) (); -#endif -#define CGEN_CPU_PARSE_OPERAND(cd) ((cd)->parse_operand) -#define CGEN_CPU_INSERT_OPERAND(cd) ((cd)->insert_operand) -#define CGEN_CPU_EXTRACT_OPERAND(cd) ((cd)->extract_operand) -#define CGEN_CPU_PRINT_OPERAND(cd) ((cd)->print_operand) - - /* Size of CGEN_FIELDS struct. */ - unsigned int sizeof_fields; -#define CGEN_CPU_SIZEOF_FIELDS(cd) ((cd)->sizeof_fields) - - /* Set the bitsize field. */ - void (*set_fields_bitsize) (CGEN_FIELDS *fields_, int size_); -#define CGEN_CPU_SET_FIELDS_BITSIZE(cd) ((cd)->set_fields_bitsize) - - /* CGEN_FIELDS accessors. */ - int (*get_int_operand) - (CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_); - void (*set_int_operand) - (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, int value_); -#ifdef __BFD_H_SEEN__ - bfd_vma (*get_vma_operand) - (CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_); - void (*set_vma_operand) - (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, bfd_vma value_); -#else - long (*get_vma_operand) (); - void (*set_vma_operand) (); -#endif -#define CGEN_CPU_GET_INT_OPERAND(cd) ((cd)->get_int_operand) -#define CGEN_CPU_SET_INT_OPERAND(cd) ((cd)->set_int_operand) -#define CGEN_CPU_GET_VMA_OPERAND(cd) ((cd)->get_vma_operand) -#define CGEN_CPU_SET_VMA_OPERAND(cd) ((cd)->set_vma_operand) - - /* Instruction parse/insert/extract/print handlers. */ - /* FIXME: make these types uppercase. */ - cgen_parse_fn * const *parse_handlers; - cgen_insert_fn * const *insert_handlers; - cgen_extract_fn * const *extract_handlers; - cgen_print_fn * const *print_handlers; -#define CGEN_PARSE_FN(cd, insn) (cd->parse_handlers[(insn)->opcode->handlers.parse]) -#define CGEN_INSERT_FN(cd, insn) (cd->insert_handlers[(insn)->opcode->handlers.insert]) -#define CGEN_EXTRACT_FN(cd, insn) (cd->extract_handlers[(insn)->opcode->handlers.extract]) -#define CGEN_PRINT_FN(cd, insn) (cd->print_handlers[(insn)->opcode->handlers.print]) - - /* Return non-zero if insn should be added to hash table. */ - int (* asm_hash_p) (const CGEN_INSN *); - - /* Assembler hash function. */ - unsigned int (* asm_hash) (const char *); - - /* Number of entries in assembler hash table. */ - unsigned int asm_hash_size; - - /* Return non-zero if insn should be added to hash table. */ - int (* dis_hash_p) (const CGEN_INSN *); - - /* Disassembler hash function. */ - unsigned int (* dis_hash) (const char *, CGEN_INSN_INT); - - /* Number of entries in disassembler hash table. */ - unsigned int dis_hash_size; - - /* Assembler instruction hash table. */ - CGEN_INSN_LIST **asm_hash_table; - CGEN_INSN_LIST *asm_hash_table_entries; - - /* Disassembler instruction hash table. */ - CGEN_INSN_LIST **dis_hash_table; - CGEN_INSN_LIST *dis_hash_table_entries; - - /* This field could be turned into a bitfield if room for other flags is needed. */ - unsigned int signed_overflow_ok_p; - -} CGEN_CPU_TABLE; - -/* wip */ -#ifndef CGEN_WORD_ENDIAN -#define CGEN_WORD_ENDIAN(cd) CGEN_CPU_ENDIAN (cd) -#endif -#ifndef CGEN_INSN_WORD_ENDIAN -#define CGEN_INSN_WORD_ENDIAN(cd) CGEN_CPU_INSN_ENDIAN (cd) -#endif - -/* Prototypes of major functions. */ -/* FIXME: Move more CGEN_SYM-defined functions into CGEN_CPU_DESC. - Not the init fns though, as that would drag in things that mightn't be - used and might not even exist. */ - -/* Argument types to cpu_open. */ - -enum cgen_cpu_open_arg { - CGEN_CPU_OPEN_END, - /* Select instruction set(s), arg is bitmap or 0 meaning "unspecified". */ - CGEN_CPU_OPEN_ISAS, - /* Select machine(s), arg is bitmap or 0 meaning "unspecified". */ - CGEN_CPU_OPEN_MACHS, - /* Select machine, arg is mach's bfd name. - Multiple machines can be specified by repeated use. */ - CGEN_CPU_OPEN_BFDMACH, - /* Select endian, arg is CGEN_ENDIAN_*. */ - CGEN_CPU_OPEN_ENDIAN -}; - -/* Open a cpu descriptor table for use. - ??? We only support ISO C stdargs here, not K&R. - Laziness, plus experiment to see if anything requires K&R - eventually - K&R will no longer be supported - e.g. GDB is currently trying this. */ - -extern CGEN_CPU_DESC CGEN_SYM (cpu_open) (enum cgen_cpu_open_arg, ...); - -/* Cover fn to handle simple case. */ - -extern CGEN_CPU_DESC CGEN_SYM (cpu_open_1) - (const char *mach_name_, enum cgen_endian endian_); - -/* Close it. */ - -extern void CGEN_SYM (cpu_close) (CGEN_CPU_DESC); - -/* Initialize the opcode table for use. - Called by init_asm/init_dis. */ - -extern void CGEN_SYM (init_opcode_table) (CGEN_CPU_DESC cd_); - -/* build the insn selection regex. - called by init_opcode_table */ - -extern char * CGEN_SYM(build_insn_regex) (CGEN_INSN *insn_); - -/* Initialize the ibld table for use. - Called by init_asm/init_dis. */ - -extern void CGEN_SYM (init_ibld_table) (CGEN_CPU_DESC cd_); - -/* Initialize an cpu table for assembler or disassembler use. - These must be called immediately after cpu_open. */ - -extern void CGEN_SYM (init_asm) (CGEN_CPU_DESC); -extern void CGEN_SYM (init_dis) (CGEN_CPU_DESC); - -/* Initialize the operand instance table for use. */ - -extern void CGEN_SYM (init_opinst_table) (CGEN_CPU_DESC cd_); - -/* Assemble an instruction. */ - -extern const CGEN_INSN * CGEN_SYM (assemble_insn) - (CGEN_CPU_DESC, const char *, CGEN_FIELDS *, - CGEN_INSN_BYTES_PTR, char **); - -extern const CGEN_KEYWORD CGEN_SYM (operand_mach); -extern int CGEN_SYM (get_mach) (const char *); - -/* Operand index computation. */ -extern const CGEN_INSN * cgen_lookup_insn - (CGEN_CPU_DESC, const CGEN_INSN * insn_, - CGEN_INSN_INT int_value_, unsigned char *bytes_value_, - int length_, CGEN_FIELDS *fields_, int alias_p_); -extern void cgen_get_insn_operands - (CGEN_CPU_DESC, const CGEN_INSN * insn_, - const CGEN_FIELDS *fields_, int *indices_); -extern const CGEN_INSN * cgen_lookup_get_insn_operands - (CGEN_CPU_DESC, const CGEN_INSN *insn_, - CGEN_INSN_INT int_value_, unsigned char *bytes_value_, - int length_, int *indices_, CGEN_FIELDS *fields_); - -/* Cover fns to bfd_get/set. */ - -extern CGEN_INSN_INT cgen_get_insn_value - (CGEN_CPU_DESC, unsigned char *, int); -extern void cgen_put_insn_value - (CGEN_CPU_DESC, unsigned char *, int, CGEN_INSN_INT); - -/* Read in a cpu description file. - ??? For future concerns, including adding instructions to the assembler/ - disassembler at run-time. */ - -extern const char * cgen_read_cpu_file (CGEN_CPU_DESC, const char * filename_); - -/* Allow signed overflow of instruction fields. */ -extern void cgen_set_signed_overflow_ok (CGEN_CPU_DESC); - -/* Generate an error message if a signed field in an instruction overflows. */ -extern void cgen_clear_signed_overflow_ok (CGEN_CPU_DESC); - -/* Will an error message be generated if a signed field in an instruction overflows ? */ -extern unsigned int cgen_signed_overflow_ok_p (CGEN_CPU_DESC); - -#endif /* OPCODE_CGEN_H */ diff --git a/include/opcode/convex.h b/include/opcode/convex.h deleted file mode 100644 index 4643f5e..0000000 --- a/include/opcode/convex.h +++ /dev/null @@ -1,1708 +0,0 @@ -/* Information for instruction disassembly on the Convex. - Copyright 1989, 1993, 2002, 2010 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define xxx 0 -#define rrr 1 -#define rr 2 -#define rxr 3 -#define r 4 -#define nops 5 -#define nr 6 -#define pcrel 7 -#define lr 8 -#define rxl 9 -#define rlr 10 -#define rrl 11 -#define iml 12 -#define imr 13 -#define a1r 14 -#define a1l 15 -#define a2r 16 -#define a2l 17 -#define a3 18 -#define a4 19 -#define a5 20 -#define V 1 -#define S 2 -#define VM 3 -#define A 4 -#define VL 5 -#define VS 6 -#define VLS 7 -#define PSW 8 -/* Prevent an error during "make depend". */ -#if !defined (PC) -#define PC 9 -#endif -#define ITR 10 -#define VV 11 -#define ITSR 12 -#define TOC 13 -#define CIR 14 -#define TTR 15 -#define VMU 16 -#define VML 17 -#define ICR 18 -#define TCPU 19 -#define CPUID 20 -#define TID 21 - -const char *op[] = { - "", - "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7", - "s0\0s1\0s2\0s3\0s4\0s5\0s6\0s7", - "vm", - "sp\0a1\0a2\0a3\0a4\0a5\0ap\0fp", - "vl", - "vs", - "vls", - "psw", - "pc", - "itr", - "vv", - "itsr", - "toc", - "cir", - "ttr", - "vmu", - "vml", - "icr", - "tcpu", - "cpuid", - "tid", -}; - -const struct formstr format0[] = { - {0,0,rrr,V,S,S}, /* mov */ - {0,0,rrr,S,S,V}, /* mov */ - {1,1,rrr,V,V,V}, /* merg.t */ - {2,1,rrr,V,V,V}, /* mask.t */ - {1,2,rrr,V,S,V}, /* merg.f */ - {2,2,rrr,V,S,V}, /* mask.f */ - {1,1,rrr,V,S,V}, /* merg.t */ - {2,1,rrr,V,S,V}, /* mask.t */ - {3,3,rrr,V,V,V}, /* mul.s */ - {3,4,rrr,V,V,V}, /* mul.d */ - {4,3,rrr,V,V,V}, /* div.s */ - {4,4,rrr,V,V,V}, /* div.d */ - {3,3,rrr,V,S,V}, /* mul.s */ - {3,4,rrr,V,S,V}, /* mul.d */ - {4,3,rrr,V,S,V}, /* div.s */ - {4,4,rrr,V,S,V}, /* div.d */ - {5,0,rrr,V,V,V}, /* and */ - {6,0,rrr,V,V,V}, /* or */ - {7,0,rrr,V,V,V}, /* xor */ - {8,0,rrr,V,V,V}, /* shf */ - {5,0,rrr,V,S,V}, /* and */ - {6,0,rrr,V,S,V}, /* or */ - {7,0,rrr,V,S,V}, /* xor */ - {8,0,rrr,V,S,V}, /* shf */ - {9,3,rrr,V,V,V}, /* add.s */ - {9,4,rrr,V,V,V}, /* add.d */ - {10,3,rrr,V,V,V}, /* sub.s */ - {10,4,rrr,V,V,V}, /* sub.d */ - {9,3,rrr,V,S,V}, /* add.s */ - {9,4,rrr,V,S,V}, /* add.d */ - {10,3,rrr,V,S,V}, /* sub.s */ - {10,4,rrr,V,S,V}, /* sub.d */ - {9,5,rrr,V,V,V}, /* add.b */ - {9,6,rrr,V,V,V}, /* add.h */ - {9,7,rrr,V,V,V}, /* add.w */ - {9,8,rrr,V,V,V}, /* add.l */ - {9,5,rrr,V,S,V}, /* add.b */ - {9,6,rrr,V,S,V}, /* add.h */ - {9,7,rrr,V,S,V}, /* add.w */ - {9,8,rrr,V,S,V}, /* add.l */ - {10,5,rrr,V,V,V}, /* sub.b */ - {10,6,rrr,V,V,V}, /* sub.h */ - {10,7,rrr,V,V,V}, /* sub.w */ - {10,8,rrr,V,V,V}, /* sub.l */ - {10,5,rrr,V,S,V}, /* sub.b */ - {10,6,rrr,V,S,V}, /* sub.h */ - {10,7,rrr,V,S,V}, /* sub.w */ - {10,8,rrr,V,S,V}, /* sub.l */ - {3,5,rrr,V,V,V}, /* mul.b */ - {3,6,rrr,V,V,V}, /* mul.h */ - {3,7,rrr,V,V,V}, /* mul.w */ - {3,8,rrr,V,V,V}, /* mul.l */ - {3,5,rrr,V,S,V}, /* mul.b */ - {3,6,rrr,V,S,V}, /* mul.h */ - {3,7,rrr,V,S,V}, /* mul.w */ - {3,8,rrr,V,S,V}, /* mul.l */ - {4,5,rrr,V,V,V}, /* div.b */ - {4,6,rrr,V,V,V}, /* div.h */ - {4,7,rrr,V,V,V}, /* div.w */ - {4,8,rrr,V,V,V}, /* div.l */ - {4,5,rrr,V,S,V}, /* div.b */ - {4,6,rrr,V,S,V}, /* div.h */ - {4,7,rrr,V,S,V}, /* div.w */ - {4,8,rrr,V,S,V}, /* div.l */ -}; - -const struct formstr format1[] = { - {11,0,xxx,0,0,0}, /* exit */ - {12,0,a3,0,0,0}, /* jmp */ - {13,2,a3,0,0,0}, /* jmpi.f */ - {13,1,a3,0,0,0}, /* jmpi.t */ - {14,2,a3,0,0,0}, /* jmpa.f */ - {14,1,a3,0,0,0}, /* jmpa.t */ - {15,2,a3,0,0,0}, /* jmps.f */ - {15,1,a3,0,0,0}, /* jmps.t */ - {16,0,a3,0,0,0}, /* tac */ - {17,0,a1r,A,0,0}, /* ldea */ - {18,8,a1l,VLS,0,0}, /* ld.l */ - {18,9,a1l,VM,0,0}, /* ld.x */ - {19,0,a3,0,0,0}, /* tas */ - {20,0,a3,0,0,0}, /* pshea */ - {21,8,a2l,VLS,0,0}, /* st.l */ - {21,9,a2l,VM,0,0}, /* st.x */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {22,0,a3,0,0,0}, /* call */ - {23,0,a3,0,0,0}, /* calls */ - {24,0,a3,0,0,0}, /* callq */ - {25,0,a1r,A,0,0}, /* pfork */ - {26,5,a2r,S,0,0}, /* ste.b */ - {26,6,a2r,S,0,0}, /* ste.h */ - {26,7,a2r,S,0,0}, /* ste.w */ - {26,8,a2r,S,0,0}, /* ste.l */ - {18,5,a1r,A,0,0}, /* ld.b */ - {18,6,a1r,A,0,0}, /* ld.h */ - {18,7,a1r,A,0,0}, /* ld.w */ - {27,7,a1r,A,0,0}, /* incr.w */ - {21,5,a2r,A,0,0}, /* st.b */ - {21,6,a2r,A,0,0}, /* st.h */ - {21,7,a2r,A,0,0}, /* st.w */ - {27,8,a1r,S,0,0}, /* incr.l */ - {18,5,a1r,S,0,0}, /* ld.b */ - {18,6,a1r,S,0,0}, /* ld.h */ - {18,7,a1r,S,0,0}, /* ld.w */ - {18,8,a1r,S,0,0}, /* ld.l */ - {21,5,a2r,S,0,0}, /* st.b */ - {21,6,a2r,S,0,0}, /* st.h */ - {21,7,a2r,S,0,0}, /* st.w */ - {21,8,a2r,S,0,0}, /* st.l */ - {18,5,a1r,V,0,0}, /* ld.b */ - {18,6,a1r,V,0,0}, /* ld.h */ - {18,7,a1r,V,0,0}, /* ld.w */ - {18,8,a1r,V,0,0}, /* ld.l */ - {21,5,a2r,V,0,0}, /* st.b */ - {21,6,a2r,V,0,0}, /* st.h */ - {21,7,a2r,V,0,0}, /* st.w */ - {21,8,a2r,V,0,0}, /* st.l */ -}; - -const struct formstr format2[] = { - {28,5,rr,A,A,0}, /* cvtw.b */ - {28,6,rr,A,A,0}, /* cvtw.h */ - {29,7,rr,A,A,0}, /* cvtb.w */ - {30,7,rr,A,A,0}, /* cvth.w */ - {28,5,rr,S,S,0}, /* cvtw.b */ - {28,6,rr,S,S,0}, /* cvtw.h */ - {29,7,rr,S,S,0}, /* cvtb.w */ - {30,7,rr,S,S,0}, /* cvth.w */ - {28,3,rr,S,S,0}, /* cvtw.s */ - {31,7,rr,S,S,0}, /* cvts.w */ - {32,3,rr,S,S,0}, /* cvtd.s */ - {31,4,rr,S,S,0}, /* cvts.d */ - {31,8,rr,S,S,0}, /* cvts.l */ - {32,8,rr,S,S,0}, /* cvtd.l */ - {33,3,rr,S,S,0}, /* cvtl.s */ - {33,4,rr,S,S,0}, /* cvtl.d */ - {34,0,rr,A,A,0}, /* ldpa */ - {8,0,nr,A,0,0}, /* shf */ - {18,6,nr,A,0,0}, /* ld.h */ - {18,7,nr,A,0,0}, /* ld.w */ - {33,7,rr,S,S,0}, /* cvtl.w */ - {28,8,rr,S,S,0}, /* cvtw.l */ - {35,1,rr,S,S,0}, /* plc.t */ - {36,0,rr,S,S,0}, /* tzc */ - {37,6,rr,A,A,0}, /* eq.h */ - {37,7,rr,A,A,0}, /* eq.w */ - {37,6,nr,A,0,0}, /* eq.h */ - {37,7,nr,A,0,0}, /* eq.w */ - {37,5,rr,S,S,0}, /* eq.b */ - {37,6,rr,S,S,0}, /* eq.h */ - {37,7,rr,S,S,0}, /* eq.w */ - {37,8,rr,S,S,0}, /* eq.l */ - {38,6,rr,A,A,0}, /* leu.h */ - {38,7,rr,A,A,0}, /* leu.w */ - {38,6,nr,A,0,0}, /* leu.h */ - {38,7,nr,A,0,0}, /* leu.w */ - {38,5,rr,S,S,0}, /* leu.b */ - {38,6,rr,S,S,0}, /* leu.h */ - {38,7,rr,S,S,0}, /* leu.w */ - {38,8,rr,S,S,0}, /* leu.l */ - {39,6,rr,A,A,0}, /* ltu.h */ - {39,7,rr,A,A,0}, /* ltu.w */ - {39,6,nr,A,0,0}, /* ltu.h */ - {39,7,nr,A,0,0}, /* ltu.w */ - {39,5,rr,S,S,0}, /* ltu.b */ - {39,6,rr,S,S,0}, /* ltu.h */ - {39,7,rr,S,S,0}, /* ltu.w */ - {39,8,rr,S,S,0}, /* ltu.l */ - {40,6,rr,A,A,0}, /* le.h */ - {40,7,rr,A,A,0}, /* le.w */ - {40,6,nr,A,0,0}, /* le.h */ - {40,7,nr,A,0,0}, /* le.w */ - {40,5,rr,S,S,0}, /* le.b */ - {40,6,rr,S,S,0}, /* le.h */ - {40,7,rr,S,S,0}, /* le.w */ - {40,8,rr,S,S,0}, /* le.l */ - {41,6,rr,A,A,0}, /* lt.h */ - {41,7,rr,A,A,0}, /* lt.w */ - {41,6,nr,A,0,0}, /* lt.h */ - {41,7,nr,A,0,0}, /* lt.w */ - {41,5,rr,S,S,0}, /* lt.b */ - {41,6,rr,S,S,0}, /* lt.h */ - {41,7,rr,S,S,0}, /* lt.w */ - {41,8,rr,S,S,0}, /* lt.l */ - {9,7,rr,S,A,0}, /* add.w */ - {8,0,rr,A,A,0}, /* shf */ - {0,0,rr,A,A,0}, /* mov */ - {0,0,rr,S,A,0}, /* mov */ - {0,7,rr,S,S,0}, /* mov.w */ - {8,0,rr,S,S,0}, /* shf */ - {0,0,rr,S,S,0}, /* mov */ - {0,0,rr,A,S,0}, /* mov */ - {5,0,rr,A,A,0}, /* and */ - {6,0,rr,A,A,0}, /* or */ - {7,0,rr,A,A,0}, /* xor */ - {42,0,rr,A,A,0}, /* not */ - {5,0,rr,S,S,0}, /* and */ - {6,0,rr,S,S,0}, /* or */ - {7,0,rr,S,S,0}, /* xor */ - {42,0,rr,S,S,0}, /* not */ - {40,3,rr,S,S,0}, /* le.s */ - {40,4,rr,S,S,0}, /* le.d */ - {41,3,rr,S,S,0}, /* lt.s */ - {41,4,rr,S,S,0}, /* lt.d */ - {9,3,rr,S,S,0}, /* add.s */ - {9,4,rr,S,S,0}, /* add.d */ - {10,3,rr,S,S,0}, /* sub.s */ - {10,4,rr,S,S,0}, /* sub.d */ - {37,3,rr,S,S,0}, /* eq.s */ - {37,4,rr,S,S,0}, /* eq.d */ - {43,6,rr,A,A,0}, /* neg.h */ - {43,7,rr,A,A,0}, /* neg.w */ - {3,3,rr,S,S,0}, /* mul.s */ - {3,4,rr,S,S,0}, /* mul.d */ - {4,3,rr,S,S,0}, /* div.s */ - {4,4,rr,S,S,0}, /* div.d */ - {9,6,rr,A,A,0}, /* add.h */ - {9,7,rr,A,A,0}, /* add.w */ - {9,6,nr,A,0,0}, /* add.h */ - {9,7,nr,A,0,0}, /* add.w */ - {9,5,rr,S,S,0}, /* add.b */ - {9,6,rr,S,S,0}, /* add.h */ - {9,7,rr,S,S,0}, /* add.w */ - {9,8,rr,S,S,0}, /* add.l */ - {10,6,rr,A,A,0}, /* sub.h */ - {10,7,rr,A,A,0}, /* sub.w */ - {10,6,nr,A,0,0}, /* sub.h */ - {10,7,nr,A,0,0}, /* sub.w */ - {10,5,rr,S,S,0}, /* sub.b */ - {10,6,rr,S,S,0}, /* sub.h */ - {10,7,rr,S,S,0}, /* sub.w */ - {10,8,rr,S,S,0}, /* sub.l */ - {3,6,rr,A,A,0}, /* mul.h */ - {3,7,rr,A,A,0}, /* mul.w */ - {3,6,nr,A,0,0}, /* mul.h */ - {3,7,nr,A,0,0}, /* mul.w */ - {3,5,rr,S,S,0}, /* mul.b */ - {3,6,rr,S,S,0}, /* mul.h */ - {3,7,rr,S,S,0}, /* mul.w */ - {3,8,rr,S,S,0}, /* mul.l */ - {4,6,rr,A,A,0}, /* div.h */ - {4,7,rr,A,A,0}, /* div.w */ - {4,6,nr,A,0,0}, /* div.h */ - {4,7,nr,A,0,0}, /* div.w */ - {4,5,rr,S,S,0}, /* div.b */ - {4,6,rr,S,S,0}, /* div.h */ - {4,7,rr,S,S,0}, /* div.w */ - {4,8,rr,S,S,0}, /* div.l */ -}; - -const struct formstr format3[] = { - {32,3,rr,V,V,0}, /* cvtd.s */ - {31,4,rr,V,V,0}, /* cvts.d */ - {33,4,rr,V,V,0}, /* cvtl.d */ - {32,8,rr,V,V,0}, /* cvtd.l */ - {0,0,rrl,S,S,VM}, /* mov */ - {0,0,rlr,S,VM,S}, /* mov */ - {0,0,0,0,0,0}, - {44,0,rr,S,S,0}, /* lop */ - {36,0,rr,V,V,0}, /* tzc */ - {44,0,rr,V,V,0}, /* lop */ - {0,0,0,0,0,0}, - {42,0,rr,V,V,0}, /* not */ - {8,0,rr,S,V,0}, /* shf */ - {35,1,rr,V,V,0}, /* plc.t */ - {45,2,rr,V,V,0}, /* cprs.f */ - {45,1,rr,V,V,0}, /* cprs.t */ - {37,3,rr,V,V,0}, /* eq.s */ - {37,4,rr,V,V,0}, /* eq.d */ - {43,3,rr,V,V,0}, /* neg.s */ - {43,4,rr,V,V,0}, /* neg.d */ - {37,3,rr,S,V,0}, /* eq.s */ - {37,4,rr,S,V,0}, /* eq.d */ - {43,3,rr,S,S,0}, /* neg.s */ - {43,4,rr,S,S,0}, /* neg.d */ - {40,3,rr,V,V,0}, /* le.s */ - {40,4,rr,V,V,0}, /* le.d */ - {41,3,rr,V,V,0}, /* lt.s */ - {41,4,rr,V,V,0}, /* lt.d */ - {40,3,rr,S,V,0}, /* le.s */ - {40,4,rr,S,V,0}, /* le.d */ - {41,3,rr,S,V,0}, /* lt.s */ - {41,4,rr,S,V,0}, /* lt.d */ - {37,5,rr,V,V,0}, /* eq.b */ - {37,6,rr,V,V,0}, /* eq.h */ - {37,7,rr,V,V,0}, /* eq.w */ - {37,8,rr,V,V,0}, /* eq.l */ - {37,5,rr,S,V,0}, /* eq.b */ - {37,6,rr,S,V,0}, /* eq.h */ - {37,7,rr,S,V,0}, /* eq.w */ - {37,8,rr,S,V,0}, /* eq.l */ - {40,5,rr,V,V,0}, /* le.b */ - {40,6,rr,V,V,0}, /* le.h */ - {40,7,rr,V,V,0}, /* le.w */ - {40,8,rr,V,V,0}, /* le.l */ - {40,5,rr,S,V,0}, /* le.b */ - {40,6,rr,S,V,0}, /* le.h */ - {40,7,rr,S,V,0}, /* le.w */ - {40,8,rr,S,V,0}, /* le.l */ - {41,5,rr,V,V,0}, /* lt.b */ - {41,6,rr,V,V,0}, /* lt.h */ - {41,7,rr,V,V,0}, /* lt.w */ - {41,8,rr,V,V,0}, /* lt.l */ - {41,5,rr,S,V,0}, /* lt.b */ - {41,6,rr,S,V,0}, /* lt.h */ - {41,7,rr,S,V,0}, /* lt.w */ - {41,8,rr,S,V,0}, /* lt.l */ - {43,5,rr,V,V,0}, /* neg.b */ - {43,6,rr,V,V,0}, /* neg.h */ - {43,7,rr,V,V,0}, /* neg.w */ - {43,8,rr,V,V,0}, /* neg.l */ - {43,5,rr,S,S,0}, /* neg.b */ - {43,6,rr,S,S,0}, /* neg.h */ - {43,7,rr,S,S,0}, /* neg.w */ - {43,8,rr,S,S,0}, /* neg.l */ -}; - -const struct formstr format4[] = { - {46,0,nops,0,0,0}, /* nop */ - {47,0,pcrel,0,0,0}, /* br */ - {48,2,pcrel,0,0,0}, /* bri.f */ - {48,1,pcrel,0,0,0}, /* bri.t */ - {49,2,pcrel,0,0,0}, /* bra.f */ - {49,1,pcrel,0,0,0}, /* bra.t */ - {50,2,pcrel,0,0,0}, /* brs.f */ - {50,1,pcrel,0,0,0}, /* brs.t */ -}; - -const struct formstr format5[] = { - {51,5,rr,V,V,0}, /* ldvi.b */ - {51,6,rr,V,V,0}, /* ldvi.h */ - {51,7,rr,V,V,0}, /* ldvi.w */ - {51,8,rr,V,V,0}, /* ldvi.l */ - {28,3,rr,V,V,0}, /* cvtw.s */ - {31,7,rr,V,V,0}, /* cvts.w */ - {28,8,rr,V,V,0}, /* cvtw.l */ - {33,7,rr,V,V,0}, /* cvtl.w */ - {52,5,rxr,V,V,0}, /* stvi.b */ - {52,6,rxr,V,V,0}, /* stvi.h */ - {52,7,rxr,V,V,0}, /* stvi.w */ - {52,8,rxr,V,V,0}, /* stvi.l */ - {52,5,rxr,S,V,0}, /* stvi.b */ - {52,6,rxr,S,V,0}, /* stvi.h */ - {52,7,rxr,S,V,0}, /* stvi.w */ - {52,8,rxr,S,V,0}, /* stvi.l */ -}; - -const struct formstr format6[] = { - {53,0,r,A,0,0}, /* ldsdr */ - {54,0,r,A,0,0}, /* ldkdr */ - {55,3,r,S,0,0}, /* ln.s */ - {55,4,r,S,0,0}, /* ln.d */ - {56,0,nops,0,0,0}, /* patu */ - {57,0,r,A,0,0}, /* pate */ - {58,0,nops,0,0,0}, /* pich */ - {59,0,nops,0,0,0}, /* plch */ - {0,0,lr,PSW,A,0}, /* mov */ - {0,0,rxl,A,PSW,0}, /* mov */ - {0,0,lr,PC,A,0}, /* mov */ - {60,0,r,S,0,0}, /* idle */ - {0,0,lr,ITR,S,0}, /* mov */ - {0,0,rxl,S,ITR,0}, /* mov */ - {0,0,0,0,0,0}, - {0,0,rxl,S,ITSR,0}, /* mov */ - {61,0,nops,0,0,0}, /* rtnq */ - {62,0,nops,0,0,0}, /* cfork */ - {63,0,nops,0,0,0}, /* rtn */ - {64,0,nops,0,0,0}, /* wfork */ - {65,0,nops,0,0,0}, /* join */ - {66,0,nops,0,0,0}, /* rtnc */ - {67,3,r,S,0,0}, /* exp.s */ - {67,4,r,S,0,0}, /* exp.d */ - {68,3,r,S,0,0}, /* sin.s */ - {68,4,r,S,0,0}, /* sin.d */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {69,3,r,S,0,0}, /* cos.s */ - {69,4,r,S,0,0}, /* cos.d */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {70,7,r,A,0,0}, /* psh.w */ - {0,0,0,0,0,0}, - {71,7,r,A,0,0}, /* pop.w */ - {0,0,0,0,0,0}, - {70,7,r,S,0,0}, /* psh.w */ - {70,8,r,S,0,0}, /* psh.l */ - {71,7,r,S,0,0}, /* pop.w */ - {71,8,r,S,0,0}, /* pop.l */ - {72,0,nops,0,0,0}, /* eni */ - {73,0,nops,0,0,0}, /* dsi */ - {74,0,nops,0,0,0}, /* bkpt */ - {75,0,nops,0,0,0}, /* msync */ - {76,0,r,S,0,0}, /* mski */ - {77,0,r,S,0,0}, /* xmti */ - {0,0,rxl,S,VV,0}, /* mov */ - {78,0,nops,0,0,0}, /* tstvv */ - {0,0,lr,VS,A,0}, /* mov */ - {0,0,rxl,A,VS,0}, /* mov */ - {0,0,lr,VL,A,0}, /* mov */ - {0,0,rxl,A,VL,0}, /* mov */ - {0,7,lr,VS,S,0}, /* mov.w */ - {0,7,rxl,S,VS,0}, /* mov.w */ - {0,7,lr,VL,S,0}, /* mov.w */ - {0,7,rxl,S,VL,0}, /* mov.w */ - {79,0,r,A,0,0}, /* diag */ - {80,0,nops,0,0,0}, /* pbkpt */ - {81,3,r,S,0,0}, /* sqrt.s */ - {81,4,r,S,0,0}, /* sqrt.d */ - {82,0,nops,0,0,0}, /* casr */ - {0,0,0,0,0,0}, - {83,3,r,S,0,0}, /* atan.s */ - {83,4,r,S,0,0}, /* atan.d */ -}; - -const struct formstr format7[] = { - {84,5,r,V,0,0}, /* sum.b */ - {84,6,r,V,0,0}, /* sum.h */ - {84,7,r,V,0,0}, /* sum.w */ - {84,8,r,V,0,0}, /* sum.l */ - {85,0,r,V,0,0}, /* all */ - {86,0,r,V,0,0}, /* any */ - {87,0,r,V,0,0}, /* parity */ - {0,0,0,0,0,0}, - {88,5,r,V,0,0}, /* max.b */ - {88,6,r,V,0,0}, /* max.h */ - {88,7,r,V,0,0}, /* max.w */ - {88,8,r,V,0,0}, /* max.l */ - {89,5,r,V,0,0}, /* min.b */ - {89,6,r,V,0,0}, /* min.h */ - {89,7,r,V,0,0}, /* min.w */ - {89,8,r,V,0,0}, /* min.l */ - {84,3,r,V,0,0}, /* sum.s */ - {84,4,r,V,0,0}, /* sum.d */ - {90,3,r,V,0,0}, /* prod.s */ - {90,4,r,V,0,0}, /* prod.d */ - {88,3,r,V,0,0}, /* max.s */ - {88,4,r,V,0,0}, /* max.d */ - {89,3,r,V,0,0}, /* min.s */ - {89,4,r,V,0,0}, /* min.d */ - {90,5,r,V,0,0}, /* prod.b */ - {90,6,r,V,0,0}, /* prod.h */ - {90,7,r,V,0,0}, /* prod.w */ - {90,8,r,V,0,0}, /* prod.l */ - {35,2,lr,VM,S,0}, /* plc.f */ - {35,1,lr,VM,S,0}, /* plc.t */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, -}; - -const struct formstr formatx[] = { - {0,0,0,0,0,0}, -}; - -const struct formstr format1a[] = { - {91,0,imr,A,0,0}, /* halt */ - {92,0,a4,0,0,0}, /* sysc */ - {18,6,imr,A,0,0}, /* ld.h */ - {18,7,imr,A,0,0}, /* ld.w */ - {5,0,imr,A,0,0}, /* and */ - {6,0,imr,A,0,0}, /* or */ - {7,0,imr,A,0,0}, /* xor */ - {8,0,imr,A,0,0}, /* shf */ - {9,6,imr,A,0,0}, /* add.h */ - {9,7,imr,A,0,0}, /* add.w */ - {10,6,imr,A,0,0}, /* sub.h */ - {10,7,imr,A,0,0}, /* sub.w */ - {3,6,imr,A,0,0}, /* mul.h */ - {3,7,imr,A,0,0}, /* mul.w */ - {4,6,imr,A,0,0}, /* div.h */ - {4,7,imr,A,0,0}, /* div.w */ - {18,7,iml,VL,0,0}, /* ld.w */ - {18,7,iml,VS,0,0}, /* ld.w */ - {0,0,0,0,0,0}, - {8,7,imr,S,0,0}, /* shf.w */ - {93,0,a5,0,0,0}, /* trap */ - {0,0,0,0,0,0}, - {37,6,imr,A,0,0}, /* eq.h */ - {37,7,imr,A,0,0}, /* eq.w */ - {38,6,imr,A,0,0}, /* leu.h */ - {38,7,imr,A,0,0}, /* leu.w */ - {39,6,imr,A,0,0}, /* ltu.h */ - {39,7,imr,A,0,0}, /* ltu.w */ - {40,6,imr,A,0,0}, /* le.h */ - {40,7,imr,A,0,0}, /* le.w */ - {41,6,imr,A,0,0}, /* lt.h */ - {41,7,imr,A,0,0}, /* lt.w */ -}; - -const struct formstr format1b[] = { - {18,4,imr,S,0,0}, /* ld.d */ - {18,10,imr,S,0,0}, /* ld.u */ - {18,8,imr,S,0,0}, /* ld.l */ - {18,7,imr,S,0,0}, /* ld.w */ - {5,0,imr,S,0,0}, /* and */ - {6,0,imr,S,0,0}, /* or */ - {7,0,imr,S,0,0}, /* xor */ - {8,0,imr,S,0,0}, /* shf */ - {9,6,imr,S,0,0}, /* add.h */ - {9,7,imr,S,0,0}, /* add.w */ - {10,6,imr,S,0,0}, /* sub.h */ - {10,7,imr,S,0,0}, /* sub.w */ - {3,6,imr,S,0,0}, /* mul.h */ - {3,7,imr,S,0,0}, /* mul.w */ - {4,6,imr,S,0,0}, /* div.h */ - {4,7,imr,S,0,0}, /* div.w */ - {9,3,imr,S,0,0}, /* add.s */ - {10,3,imr,S,0,0}, /* sub.s */ - {3,3,imr,S,0,0}, /* mul.s */ - {4,3,imr,S,0,0}, /* div.s */ - {40,3,imr,S,0,0}, /* le.s */ - {41,3,imr,S,0,0}, /* lt.s */ - {37,6,imr,S,0,0}, /* eq.h */ - {37,7,imr,S,0,0}, /* eq.w */ - {38,6,imr,S,0,0}, /* leu.h */ - {38,7,imr,S,0,0}, /* leu.w */ - {39,6,imr,S,0,0}, /* ltu.h */ - {39,7,imr,S,0,0}, /* ltu.w */ - {40,6,imr,S,0,0}, /* le.h */ - {40,7,imr,S,0,0}, /* le.w */ - {41,6,imr,S,0,0}, /* lt.h */ - {41,7,imr,S,0,0}, /* lt.w */ -}; - -const struct formstr e0_format0[] = { - {10,3,rrr,S,V,V}, /* sub.s */ - {10,4,rrr,S,V,V}, /* sub.d */ - {4,3,rrr,S,V,V}, /* div.s */ - {4,4,rrr,S,V,V}, /* div.d */ - {10,11,rrr,S,V,V}, /* sub.s.f */ - {10,12,rrr,S,V,V}, /* sub.d.f */ - {4,11,rrr,S,V,V}, /* div.s.f */ - {4,12,rrr,S,V,V}, /* div.d.f */ - {3,11,rrr,V,V,V}, /* mul.s.f */ - {3,12,rrr,V,V,V}, /* mul.d.f */ - {4,11,rrr,V,V,V}, /* div.s.f */ - {4,12,rrr,V,V,V}, /* div.d.f */ - {3,11,rrr,V,S,V}, /* mul.s.f */ - {3,12,rrr,V,S,V}, /* mul.d.f */ - {4,11,rrr,V,S,V}, /* div.s.f */ - {4,12,rrr,V,S,V}, /* div.d.f */ - {5,2,rrr,V,V,V}, /* and.f */ - {6,2,rrr,V,V,V}, /* or.f */ - {7,2,rrr,V,V,V}, /* xor.f */ - {8,2,rrr,V,V,V}, /* shf.f */ - {5,2,rrr,V,S,V}, /* and.f */ - {6,2,rrr,V,S,V}, /* or.f */ - {7,2,rrr,V,S,V}, /* xor.f */ - {8,2,rrr,V,S,V}, /* shf.f */ - {9,11,rrr,V,V,V}, /* add.s.f */ - {9,12,rrr,V,V,V}, /* add.d.f */ - {10,11,rrr,V,V,V}, /* sub.s.f */ - {10,12,rrr,V,V,V}, /* sub.d.f */ - {9,11,rrr,V,S,V}, /* add.s.f */ - {9,12,rrr,V,S,V}, /* add.d.f */ - {10,11,rrr,V,S,V}, /* sub.s.f */ - {10,12,rrr,V,S,V}, /* sub.d.f */ - {9,13,rrr,V,V,V}, /* add.b.f */ - {9,14,rrr,V,V,V}, /* add.h.f */ - {9,15,rrr,V,V,V}, /* add.w.f */ - {9,16,rrr,V,V,V}, /* add.l.f */ - {9,13,rrr,V,S,V}, /* add.b.f */ - {9,14,rrr,V,S,V}, /* add.h.f */ - {9,15,rrr,V,S,V}, /* add.w.f */ - {9,16,rrr,V,S,V}, /* add.l.f */ - {10,13,rrr,V,V,V}, /* sub.b.f */ - {10,14,rrr,V,V,V}, /* sub.h.f */ - {10,15,rrr,V,V,V}, /* sub.w.f */ - {10,16,rrr,V,V,V}, /* sub.l.f */ - {10,13,rrr,V,S,V}, /* sub.b.f */ - {10,14,rrr,V,S,V}, /* sub.h.f */ - {10,15,rrr,V,S,V}, /* sub.w.f */ - {10,16,rrr,V,S,V}, /* sub.l.f */ - {3,13,rrr,V,V,V}, /* mul.b.f */ - {3,14,rrr,V,V,V}, /* mul.h.f */ - {3,15,rrr,V,V,V}, /* mul.w.f */ - {3,16,rrr,V,V,V}, /* mul.l.f */ - {3,13,rrr,V,S,V}, /* mul.b.f */ - {3,14,rrr,V,S,V}, /* mul.h.f */ - {3,15,rrr,V,S,V}, /* mul.w.f */ - {3,16,rrr,V,S,V}, /* mul.l.f */ - {4,13,rrr,V,V,V}, /* div.b.f */ - {4,14,rrr,V,V,V}, /* div.h.f */ - {4,15,rrr,V,V,V}, /* div.w.f */ - {4,16,rrr,V,V,V}, /* div.l.f */ - {4,13,rrr,V,S,V}, /* div.b.f */ - {4,14,rrr,V,S,V}, /* div.h.f */ - {4,15,rrr,V,S,V}, /* div.w.f */ - {4,16,rrr,V,S,V}, /* div.l.f */ -}; - -const struct formstr e0_format1[] = { - {0,0,0,0,0,0}, - {94,0,a3,0,0,0}, /* tst */ - {95,0,a3,0,0,0}, /* lck */ - {96,0,a3,0,0,0}, /* ulk */ - {17,0,a1r,S,0,0}, /* ldea */ - {97,0,a1r,A,0,0}, /* spawn */ - {98,0,a1r,A,0,0}, /* ldcmr */ - {99,0,a2r,A,0,0}, /* stcmr */ - {100,0,a1r,A,0,0}, /* popr */ - {101,0,a2r,A,0,0}, /* pshr */ - {102,7,a1r,A,0,0}, /* rcvr.w */ - {103,7,a2r,A,0,0}, /* matm.w */ - {104,7,a2r,A,0,0}, /* sndr.w */ - {104,8,a2r,S,0,0}, /* sndr.l */ - {102,8,a1r,S,0,0}, /* rcvr.l */ - {103,8,a2r,S,0,0}, /* matm.l */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {105,7,a2r,A,0,0}, /* putr.w */ - {105,8,a2r,S,0,0}, /* putr.l */ - {106,7,a1r,A,0,0}, /* getr.w */ - {106,8,a1r,S,0,0}, /* getr.l */ - {26,13,a2r,S,0,0}, /* ste.b.f */ - {26,14,a2r,S,0,0}, /* ste.h.f */ - {26,15,a2r,S,0,0}, /* ste.w.f */ - {26,16,a2r,S,0,0}, /* ste.l.f */ - {107,7,a2r,A,0,0}, /* matr.w */ - {108,7,a2r,A,0,0}, /* mat.w */ - {109,7,a1r,A,0,0}, /* get.w */ - {110,7,a1r,A,0,0}, /* rcv.w */ - {0,0,0,0,0,0}, - {111,7,a1r,A,0,0}, /* inc.w */ - {112,7,a2r,A,0,0}, /* put.w */ - {113,7,a2r,A,0,0}, /* snd.w */ - {107,8,a2r,S,0,0}, /* matr.l */ - {108,8,a2r,S,0,0}, /* mat.l */ - {109,8,a1r,S,0,0}, /* get.l */ - {110,8,a1r,S,0,0}, /* rcv.l */ - {0,0,0,0,0,0}, - {111,8,a1r,S,0,0}, /* inc.l */ - {112,8,a2r,S,0,0}, /* put.l */ - {113,8,a2r,S,0,0}, /* snd.l */ - {18,13,a1r,V,0,0}, /* ld.b.f */ - {18,14,a1r,V,0,0}, /* ld.h.f */ - {18,15,a1r,V,0,0}, /* ld.w.f */ - {18,16,a1r,V,0,0}, /* ld.l.f */ - {21,13,a2r,V,0,0}, /* st.b.f */ - {21,14,a2r,V,0,0}, /* st.h.f */ - {21,15,a2r,V,0,0}, /* st.w.f */ - {21,16,a2r,V,0,0}, /* st.l.f */ -}; - -const struct formstr e0_format2[] = { - {28,5,rr,V,V,0}, /* cvtw.b */ - {28,6,rr,V,V,0}, /* cvtw.h */ - {29,7,rr,V,V,0}, /* cvtb.w */ - {30,7,rr,V,V,0}, /* cvth.w */ - {28,13,rr,V,V,0}, /* cvtw.b.f */ - {28,14,rr,V,V,0}, /* cvtw.h.f */ - {29,15,rr,V,V,0}, /* cvtb.w.f */ - {30,15,rr,V,V,0}, /* cvth.w.f */ - {31,8,rr,V,V,0}, /* cvts.l */ - {32,7,rr,V,V,0}, /* cvtd.w */ - {33,3,rr,V,V,0}, /* cvtl.s */ - {28,4,rr,V,V,0}, /* cvtw.d */ - {31,16,rr,V,V,0}, /* cvts.l.f */ - {32,15,rr,V,V,0}, /* cvtd.w.f */ - {33,11,rr,V,V,0}, /* cvtl.s.f */ - {28,12,rr,V,V,0}, /* cvtw.d.f */ - {114,0,rr,S,S,0}, /* enal */ - {8,7,rr,S,S,0}, /* shf.w */ - {115,0,rr,S,S,0}, /* enag */ - {0,0,0,0,0,0}, - {28,4,rr,S,S,0}, /* cvtw.d */ - {32,7,rr,S,S,0}, /* cvtd.w */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {116,3,rr,S,S,0}, /* frint.s */ - {116,4,rr,S,S,0}, /* frint.d */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {116,3,rr,V,V,0}, /* frint.s */ - {116,4,rr,V,V,0}, /* frint.d */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {116,11,rr,V,V,0}, /* frint.s.f */ - {116,12,rr,V,V,0}, /* frint.d.f */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {81,3,rr,V,V,0}, /* sqrt.s */ - {81,4,rr,V,V,0}, /* sqrt.d */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {81,11,rr,V,V,0}, /* sqrt.s.f */ - {81,12,rr,V,V,0}, /* sqrt.d.f */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, -}; - -const struct formstr e0_format3[] = { - {32,11,rr,V,V,0}, /* cvtd.s.f */ - {31,12,rr,V,V,0}, /* cvts.d.f */ - {33,12,rr,V,V,0}, /* cvtl.d.f */ - {32,16,rr,V,V,0}, /* cvtd.l.f */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {36,2,rr,V,V,0}, /* tzc.f */ - {44,2,rr,V,V,0}, /* lop.f */ - {117,2,rr,V,V,0}, /* xpnd.f */ - {42,2,rr,V,V,0}, /* not.f */ - {8,2,rr,S,V,0}, /* shf.f */ - {35,17,rr,V,V,0}, /* plc.t.f */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {37,11,rr,V,V,0}, /* eq.s.f */ - {37,12,rr,V,V,0}, /* eq.d.f */ - {43,11,rr,V,V,0}, /* neg.s.f */ - {43,12,rr,V,V,0}, /* neg.d.f */ - {37,11,rr,S,V,0}, /* eq.s.f */ - {37,12,rr,S,V,0}, /* eq.d.f */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {40,11,rr,V,V,0}, /* le.s.f */ - {40,12,rr,V,V,0}, /* le.d.f */ - {41,11,rr,V,V,0}, /* lt.s.f */ - {41,12,rr,V,V,0}, /* lt.d.f */ - {40,11,rr,S,V,0}, /* le.s.f */ - {40,12,rr,S,V,0}, /* le.d.f */ - {41,11,rr,S,V,0}, /* lt.s.f */ - {41,12,rr,S,V,0}, /* lt.d.f */ - {37,13,rr,V,V,0}, /* eq.b.f */ - {37,14,rr,V,V,0}, /* eq.h.f */ - {37,15,rr,V,V,0}, /* eq.w.f */ - {37,16,rr,V,V,0}, /* eq.l.f */ - {37,13,rr,S,V,0}, /* eq.b.f */ - {37,14,rr,S,V,0}, /* eq.h.f */ - {37,15,rr,S,V,0}, /* eq.w.f */ - {37,16,rr,S,V,0}, /* eq.l.f */ - {40,13,rr,V,V,0}, /* le.b.f */ - {40,14,rr,V,V,0}, /* le.h.f */ - {40,15,rr,V,V,0}, /* le.w.f */ - {40,16,rr,V,V,0}, /* le.l.f */ - {40,13,rr,S,V,0}, /* le.b.f */ - {40,14,rr,S,V,0}, /* le.h.f */ - {40,15,rr,S,V,0}, /* le.w.f */ - {40,16,rr,S,V,0}, /* le.l.f */ - {41,13,rr,V,V,0}, /* lt.b.f */ - {41,14,rr,V,V,0}, /* lt.h.f */ - {41,15,rr,V,V,0}, /* lt.w.f */ - {41,16,rr,V,V,0}, /* lt.l.f */ - {41,13,rr,S,V,0}, /* lt.b.f */ - {41,14,rr,S,V,0}, /* lt.h.f */ - {41,15,rr,S,V,0}, /* lt.w.f */ - {41,16,rr,S,V,0}, /* lt.l.f */ - {43,13,rr,V,V,0}, /* neg.b.f */ - {43,14,rr,V,V,0}, /* neg.h.f */ - {43,15,rr,V,V,0}, /* neg.w.f */ - {43,16,rr,V,V,0}, /* neg.l.f */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, -}; - -const struct formstr e0_format4[] = { - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, -}; - -const struct formstr e0_format5[] = { - {51,13,rr,V,V,0}, /* ldvi.b.f */ - {51,14,rr,V,V,0}, /* ldvi.h.f */ - {51,15,rr,V,V,0}, /* ldvi.w.f */ - {51,16,rr,V,V,0}, /* ldvi.l.f */ - {28,11,rr,V,V,0}, /* cvtw.s.f */ - {31,15,rr,V,V,0}, /* cvts.w.f */ - {28,16,rr,V,V,0}, /* cvtw.l.f */ - {33,15,rr,V,V,0}, /* cvtl.w.f */ - {52,13,rxr,V,V,0}, /* stvi.b.f */ - {52,14,rxr,V,V,0}, /* stvi.h.f */ - {52,15,rxr,V,V,0}, /* stvi.w.f */ - {52,16,rxr,V,V,0}, /* stvi.l.f */ - {52,13,rxr,S,V,0}, /* stvi.b.f */ - {52,14,rxr,S,V,0}, /* stvi.h.f */ - {52,15,rxr,S,V,0}, /* stvi.w.f */ - {52,16,rxr,S,V,0}, /* stvi.l.f */ -}; - -const struct formstr e0_format6[] = { - {0,0,rxl,S,CIR,0}, /* mov */ - {0,0,lr,CIR,S,0}, /* mov */ - {0,0,lr,TOC,S,0}, /* mov */ - {0,0,lr,CPUID,S,0}, /* mov */ - {0,0,rxl,S,TTR,0}, /* mov */ - {0,0,lr,TTR,S,0}, /* mov */ - {118,0,nops,0,0,0}, /* ctrsl */ - {119,0,nops,0,0,0}, /* ctrsg */ - {0,0,rxl,S,VMU,0}, /* mov */ - {0,0,lr,VMU,S,0}, /* mov */ - {0,0,rxl,S,VML,0}, /* mov */ - {0,0,lr,VML,S,0}, /* mov */ - {0,0,rxl,S,ICR,0}, /* mov */ - {0,0,lr,ICR,S,0}, /* mov */ - {0,0,rxl,S,TCPU,0}, /* mov */ - {0,0,lr,TCPU,S,0}, /* mov */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {120,0,nops,0,0,0}, /* stop */ - {0,0,0,0,0,0}, - {0,0,rxl,S,TID,0}, /* mov */ - {0,0,lr,TID,S,0}, /* mov */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, -}; - -const struct formstr e0_format7[] = { - {84,13,r,V,0,0}, /* sum.b.f */ - {84,14,r,V,0,0}, /* sum.h.f */ - {84,15,r,V,0,0}, /* sum.w.f */ - {84,16,r,V,0,0}, /* sum.l.f */ - {85,2,r,V,0,0}, /* all.f */ - {86,2,r,V,0,0}, /* any.f */ - {87,2,r,V,0,0}, /* parity.f */ - {0,0,0,0,0,0}, - {88,13,r,V,0,0}, /* max.b.f */ - {88,14,r,V,0,0}, /* max.h.f */ - {88,15,r,V,0,0}, /* max.w.f */ - {88,16,r,V,0,0}, /* max.l.f */ - {89,13,r,V,0,0}, /* min.b.f */ - {89,14,r,V,0,0}, /* min.h.f */ - {89,15,r,V,0,0}, /* min.w.f */ - {89,16,r,V,0,0}, /* min.l.f */ - {84,11,r,V,0,0}, /* sum.s.f */ - {84,12,r,V,0,0}, /* sum.d.f */ - {90,11,r,V,0,0}, /* prod.s.f */ - {90,12,r,V,0,0}, /* prod.d.f */ - {88,11,r,V,0,0}, /* max.s.f */ - {88,12,r,V,0,0}, /* max.d.f */ - {89,11,r,V,0,0}, /* min.s.f */ - {89,12,r,V,0,0}, /* min.d.f */ - {90,13,r,V,0,0}, /* prod.b.f */ - {90,14,r,V,0,0}, /* prod.h.f */ - {90,15,r,V,0,0}, /* prod.w.f */ - {90,16,r,V,0,0}, /* prod.l.f */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, -}; - -const struct formstr e1_format0[] = { - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {10,18,rrr,S,V,V}, /* sub.s.t */ - {10,19,rrr,S,V,V}, /* sub.d.t */ - {4,18,rrr,S,V,V}, /* div.s.t */ - {4,19,rrr,S,V,V}, /* div.d.t */ - {3,18,rrr,V,V,V}, /* mul.s.t */ - {3,19,rrr,V,V,V}, /* mul.d.t */ - {4,18,rrr,V,V,V}, /* div.s.t */ - {4,19,rrr,V,V,V}, /* div.d.t */ - {3,18,rrr,V,S,V}, /* mul.s.t */ - {3,19,rrr,V,S,V}, /* mul.d.t */ - {4,18,rrr,V,S,V}, /* div.s.t */ - {4,19,rrr,V,S,V}, /* div.d.t */ - {5,1,rrr,V,V,V}, /* and.t */ - {6,1,rrr,V,V,V}, /* or.t */ - {7,1,rrr,V,V,V}, /* xor.t */ - {8,1,rrr,V,V,V}, /* shf.t */ - {5,1,rrr,V,S,V}, /* and.t */ - {6,1,rrr,V,S,V}, /* or.t */ - {7,1,rrr,V,S,V}, /* xor.t */ - {8,1,rrr,V,S,V}, /* shf.t */ - {9,18,rrr,V,V,V}, /* add.s.t */ - {9,19,rrr,V,V,V}, /* add.d.t */ - {10,18,rrr,V,V,V}, /* sub.s.t */ - {10,19,rrr,V,V,V}, /* sub.d.t */ - {9,18,rrr,V,S,V}, /* add.s.t */ - {9,19,rrr,V,S,V}, /* add.d.t */ - {10,18,rrr,V,S,V}, /* sub.s.t */ - {10,19,rrr,V,S,V}, /* sub.d.t */ - {9,20,rrr,V,V,V}, /* add.b.t */ - {9,21,rrr,V,V,V}, /* add.h.t */ - {9,22,rrr,V,V,V}, /* add.w.t */ - {9,23,rrr,V,V,V}, /* add.l.t */ - {9,20,rrr,V,S,V}, /* add.b.t */ - {9,21,rrr,V,S,V}, /* add.h.t */ - {9,22,rrr,V,S,V}, /* add.w.t */ - {9,23,rrr,V,S,V}, /* add.l.t */ - {10,20,rrr,V,V,V}, /* sub.b.t */ - {10,21,rrr,V,V,V}, /* sub.h.t */ - {10,22,rrr,V,V,V}, /* sub.w.t */ - {10,23,rrr,V,V,V}, /* sub.l.t */ - {10,20,rrr,V,S,V}, /* sub.b.t */ - {10,21,rrr,V,S,V}, /* sub.h.t */ - {10,22,rrr,V,S,V}, /* sub.w.t */ - {10,23,rrr,V,S,V}, /* sub.l.t */ - {3,20,rrr,V,V,V}, /* mul.b.t */ - {3,21,rrr,V,V,V}, /* mul.h.t */ - {3,22,rrr,V,V,V}, /* mul.w.t */ - {3,23,rrr,V,V,V}, /* mul.l.t */ - {3,20,rrr,V,S,V}, /* mul.b.t */ - {3,21,rrr,V,S,V}, /* mul.h.t */ - {3,22,rrr,V,S,V}, /* mul.w.t */ - {3,23,rrr,V,S,V}, /* mul.l.t */ - {4,20,rrr,V,V,V}, /* div.b.t */ - {4,21,rrr,V,V,V}, /* div.h.t */ - {4,22,rrr,V,V,V}, /* div.w.t */ - {4,23,rrr,V,V,V}, /* div.l.t */ - {4,20,rrr,V,S,V}, /* div.b.t */ - {4,21,rrr,V,S,V}, /* div.h.t */ - {4,22,rrr,V,S,V}, /* div.w.t */ - {4,23,rrr,V,S,V}, /* div.l.t */ -}; - -const struct formstr e1_format1[] = { - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {26,20,a2r,S,0,0}, /* ste.b.t */ - {26,21,a2r,S,0,0}, /* ste.h.t */ - {26,22,a2r,S,0,0}, /* ste.w.t */ - {26,23,a2r,S,0,0}, /* ste.l.t */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {18,20,a1r,V,0,0}, /* ld.b.t */ - {18,21,a1r,V,0,0}, /* ld.h.t */ - {18,22,a1r,V,0,0}, /* ld.w.t */ - {18,23,a1r,V,0,0}, /* ld.l.t */ - {21,20,a2r,V,0,0}, /* st.b.t */ - {21,21,a2r,V,0,0}, /* st.h.t */ - {21,22,a2r,V,0,0}, /* st.w.t */ - {21,23,a2r,V,0,0}, /* st.l.t */ -}; - -const struct formstr e1_format2[] = { - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {28,20,rr,V,V,0}, /* cvtw.b.t */ - {28,21,rr,V,V,0}, /* cvtw.h.t */ - {29,22,rr,V,V,0}, /* cvtb.w.t */ - {30,22,rr,V,V,0}, /* cvth.w.t */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {31,23,rr,V,V,0}, /* cvts.l.t */ - {32,22,rr,V,V,0}, /* cvtd.w.t */ - {33,18,rr,V,V,0}, /* cvtl.s.t */ - {28,19,rr,V,V,0}, /* cvtw.d.t */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {116,18,rr,V,V,0}, /* frint.s.t */ - {116,19,rr,V,V,0}, /* frint.d.t */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {81,18,rr,V,V,0}, /* sqrt.s.t */ - {81,19,rr,V,V,0}, /* sqrt.d.t */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, -}; - -const struct formstr e1_format3[] = { - {32,18,rr,V,V,0}, /* cvtd.s.t */ - {31,19,rr,V,V,0}, /* cvts.d.t */ - {33,19,rr,V,V,0}, /* cvtl.d.t */ - {32,23,rr,V,V,0}, /* cvtd.l.t */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {36,1,rr,V,V,0}, /* tzc.t */ - {44,1,rr,V,V,0}, /* lop.t */ - {117,1,rr,V,V,0}, /* xpnd.t */ - {42,1,rr,V,V,0}, /* not.t */ - {8,1,rr,S,V,0}, /* shf.t */ - {35,24,rr,V,V,0}, /* plc.t.t */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {37,18,rr,V,V,0}, /* eq.s.t */ - {37,19,rr,V,V,0}, /* eq.d.t */ - {43,18,rr,V,V,0}, /* neg.s.t */ - {43,19,rr,V,V,0}, /* neg.d.t */ - {37,18,rr,S,V,0}, /* eq.s.t */ - {37,19,rr,S,V,0}, /* eq.d.t */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {40,18,rr,V,V,0}, /* le.s.t */ - {40,19,rr,V,V,0}, /* le.d.t */ - {41,18,rr,V,V,0}, /* lt.s.t */ - {41,19,rr,V,V,0}, /* lt.d.t */ - {40,18,rr,S,V,0}, /* le.s.t */ - {40,19,rr,S,V,0}, /* le.d.t */ - {41,18,rr,S,V,0}, /* lt.s.t */ - {41,19,rr,S,V,0}, /* lt.d.t */ - {37,20,rr,V,V,0}, /* eq.b.t */ - {37,21,rr,V,V,0}, /* eq.h.t */ - {37,22,rr,V,V,0}, /* eq.w.t */ - {37,23,rr,V,V,0}, /* eq.l.t */ - {37,20,rr,S,V,0}, /* eq.b.t */ - {37,21,rr,S,V,0}, /* eq.h.t */ - {37,22,rr,S,V,0}, /* eq.w.t */ - {37,23,rr,S,V,0}, /* eq.l.t */ - {40,20,rr,V,V,0}, /* le.b.t */ - {40,21,rr,V,V,0}, /* le.h.t */ - {40,22,rr,V,V,0}, /* le.w.t */ - {40,23,rr,V,V,0}, /* le.l.t */ - {40,20,rr,S,V,0}, /* le.b.t */ - {40,21,rr,S,V,0}, /* le.h.t */ - {40,22,rr,S,V,0}, /* le.w.t */ - {40,23,rr,S,V,0}, /* le.l.t */ - {41,20,rr,V,V,0}, /* lt.b.t */ - {41,21,rr,V,V,0}, /* lt.h.t */ - {41,22,rr,V,V,0}, /* lt.w.t */ - {41,23,rr,V,V,0}, /* lt.l.t */ - {41,20,rr,S,V,0}, /* lt.b.t */ - {41,21,rr,S,V,0}, /* lt.h.t */ - {41,22,rr,S,V,0}, /* lt.w.t */ - {41,23,rr,S,V,0}, /* lt.l.t */ - {43,20,rr,V,V,0}, /* neg.b.t */ - {43,21,rr,V,V,0}, /* neg.h.t */ - {43,22,rr,V,V,0}, /* neg.w.t */ - {43,23,rr,V,V,0}, /* neg.l.t */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, -}; - -const struct formstr e1_format4[] = { - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, -}; - -const struct formstr e1_format5[] = { - {51,20,rr,V,V,0}, /* ldvi.b.t */ - {51,21,rr,V,V,0}, /* ldvi.h.t */ - {51,22,rr,V,V,0}, /* ldvi.w.t */ - {51,23,rr,V,V,0}, /* ldvi.l.t */ - {28,18,rr,V,V,0}, /* cvtw.s.t */ - {31,22,rr,V,V,0}, /* cvts.w.t */ - {28,23,rr,V,V,0}, /* cvtw.l.t */ - {33,22,rr,V,V,0}, /* cvtl.w.t */ - {52,20,rxr,V,V,0}, /* stvi.b.t */ - {52,21,rxr,V,V,0}, /* stvi.h.t */ - {52,22,rxr,V,V,0}, /* stvi.w.t */ - {52,23,rxr,V,V,0}, /* stvi.l.t */ - {52,20,rxr,S,V,0}, /* stvi.b.t */ - {52,21,rxr,S,V,0}, /* stvi.h.t */ - {52,22,rxr,S,V,0}, /* stvi.w.t */ - {52,23,rxr,S,V,0}, /* stvi.l.t */ -}; - -const struct formstr e1_format6[] = { - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, -}; - -const struct formstr e1_format7[] = { - {84,20,r,V,0,0}, /* sum.b.t */ - {84,21,r,V,0,0}, /* sum.h.t */ - {84,22,r,V,0,0}, /* sum.w.t */ - {84,23,r,V,0,0}, /* sum.l.t */ - {85,1,r,V,0,0}, /* all.t */ - {86,1,r,V,0,0}, /* any.t */ - {87,1,r,V,0,0}, /* parity.t */ - {0,0,0,0,0,0}, - {88,20,r,V,0,0}, /* max.b.t */ - {88,21,r,V,0,0}, /* max.h.t */ - {88,22,r,V,0,0}, /* max.w.t */ - {88,23,r,V,0,0}, /* max.l.t */ - {89,20,r,V,0,0}, /* min.b.t */ - {89,21,r,V,0,0}, /* min.h.t */ - {89,22,r,V,0,0}, /* min.w.t */ - {89,23,r,V,0,0}, /* min.l.t */ - {84,18,r,V,0,0}, /* sum.s.t */ - {84,19,r,V,0,0}, /* sum.d.t */ - {90,18,r,V,0,0}, /* prod.s.t */ - {90,19,r,V,0,0}, /* prod.d.t */ - {88,18,r,V,0,0}, /* max.s.t */ - {88,19,r,V,0,0}, /* max.d.t */ - {89,18,r,V,0,0}, /* min.s.t */ - {89,19,r,V,0,0}, /* min.d.t */ - {90,20,r,V,0,0}, /* prod.b.t */ - {90,21,r,V,0,0}, /* prod.h.t */ - {90,22,r,V,0,0}, /* prod.w.t */ - {90,23,r,V,0,0}, /* prod.l.t */ - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, - {0,0,0,0,0,0}, -}; - -char *lop[] = { - "mov", /* 0 */ - "merg", /* 1 */ - "mask", /* 2 */ - "mul", /* 3 */ - "div", /* 4 */ - "and", /* 5 */ - "or", /* 6 */ - "xor", /* 7 */ - "shf", /* 8 */ - "add", /* 9 */ - "sub", /* 10 */ - "exit", /* 11 */ - "jmp", /* 12 */ - "jmpi", /* 13 */ - "jmpa", /* 14 */ - "jmps", /* 15 */ - "tac", /* 16 */ - "ldea", /* 17 */ - "ld", /* 18 */ - "tas", /* 19 */ - "pshea", /* 20 */ - "st", /* 21 */ - "call", /* 22 */ - "calls", /* 23 */ - "callq", /* 24 */ - "pfork", /* 25 */ - "ste", /* 26 */ - "incr", /* 27 */ - "cvtw", /* 28 */ - "cvtb", /* 29 */ - "cvth", /* 30 */ - "cvts", /* 31 */ - "cvtd", /* 32 */ - "cvtl", /* 33 */ - "ldpa", /* 34 */ - "plc", /* 35 */ - "tzc", /* 36 */ - "eq", /* 37 */ - "leu", /* 38 */ - "ltu", /* 39 */ - "le", /* 40 */ - "lt", /* 41 */ - "not", /* 42 */ - "neg", /* 43 */ - "lop", /* 44 */ - "cprs", /* 45 */ - "nop", /* 46 */ - "br", /* 47 */ - "bri", /* 48 */ - "bra", /* 49 */ - "brs", /* 50 */ - "ldvi", /* 51 */ - "stvi", /* 52 */ - "ldsdr", /* 53 */ - "ldkdr", /* 54 */ - "ln", /* 55 */ - "patu", /* 56 */ - "pate", /* 57 */ - "pich", /* 58 */ - "plch", /* 59 */ - "idle", /* 60 */ - "rtnq", /* 61 */ - "cfork", /* 62 */ - "rtn", /* 63 */ - "wfork", /* 64 */ - "join", /* 65 */ - "rtnc", /* 66 */ - "exp", /* 67 */ - "sin", /* 68 */ - "cos", /* 69 */ - "psh", /* 70 */ - "pop", /* 71 */ - "eni", /* 72 */ - "dsi", /* 73 */ - "bkpt", /* 74 */ - "msync", /* 75 */ - "mski", /* 76 */ - "xmti", /* 77 */ - "tstvv", /* 78 */ - "diag", /* 79 */ - "pbkpt", /* 80 */ - "sqrt", /* 81 */ - "casr", /* 82 */ - "atan", /* 83 */ - "sum", /* 84 */ - "all", /* 85 */ - "any", /* 86 */ - "parity", /* 87 */ - "max", /* 88 */ - "min", /* 89 */ - "prod", /* 90 */ - "halt", /* 91 */ - "sysc", /* 92 */ - "trap", /* 93 */ - "tst", /* 94 */ - "lck", /* 95 */ - "ulk", /* 96 */ - "spawn", /* 97 */ - "ldcmr", /* 98 */ - "stcmr", /* 99 */ - "popr", /* 100 */ - "pshr", /* 101 */ - "rcvr", /* 102 */ - "matm", /* 103 */ - "sndr", /* 104 */ - "putr", /* 105 */ - "getr", /* 106 */ - "matr", /* 107 */ - "mat", /* 108 */ - "get", /* 109 */ - "rcv", /* 110 */ - "inc", /* 111 */ - "put", /* 112 */ - "snd", /* 113 */ - "enal", /* 114 */ - "enag", /* 115 */ - "frint", /* 116 */ - "xpnd", /* 117 */ - "ctrsl", /* 118 */ - "ctrsg", /* 119 */ - "stop", /* 120 */ -}; - -char *rop[] = { - "", /* 0 */ - ".t", /* 1 */ - ".f", /* 2 */ - ".s", /* 3 */ - ".d", /* 4 */ - ".b", /* 5 */ - ".h", /* 6 */ - ".w", /* 7 */ - ".l", /* 8 */ - ".x", /* 9 */ - ".u", /* 10 */ - ".s.f", /* 11 */ - ".d.f", /* 12 */ - ".b.f", /* 13 */ - ".h.f", /* 14 */ - ".w.f", /* 15 */ - ".l.f", /* 16 */ - ".t.f", /* 17 */ - ".s.t", /* 18 */ - ".d.t", /* 19 */ - ".b.t", /* 20 */ - ".h.t", /* 21 */ - ".w.t", /* 22 */ - ".l.t", /* 23 */ - ".t.t", /* 24 */ -}; diff --git a/include/opcode/cr16.h b/include/opcode/cr16.h deleted file mode 100644 index 1f1191d..0000000 --- a/include/opcode/cr16.h +++ /dev/null @@ -1,451 +0,0 @@ -/* cr16.h -- Header file for CR16 opcode and register tables. - Copyright 2007, 2008, 2010, 2013 Free Software Foundation, Inc. - Contributed by M R Swami Reddy - - This file is part of GAS, GDB and the GNU binutils. - - GAS, GDB, and GNU binutils is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 3, or (at your - option) any later version. - - GAS, GDB, and GNU binutils are distributed in the hope that they will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _CR16_H_ -#define _CR16_H_ - -/* CR16 core Registers : - The enums are used as indices to CR16 registers table (cr16_regtab). - Therefore, order MUST be preserved. */ - -typedef enum -{ - /* 16-bit general purpose registers. */ - r0, r1, r2, r3, - r4, r5, r6, r7, - r8, r9, r10, r11, - r12_L = 12, r13_L = 13, ra = 14, sp_L = 15, - - /* 32-bit general purpose registers. */ - r12 = 12, r13 = 13, r14 = 14, r15 = 15, - era = 14, sp = 15, RA, - - /* Not a register. */ - nullregister, - MAX_REG -} -reg; - -/* CR16 processor registers and special registers : - The enums are used as indices to CR16 processor registers table - (cr16_pregtab). Therefore, order MUST be preserved. */ - -typedef enum -{ - /* processor registers. */ - dbs = MAX_REG, - dsr, dcrl, dcrh, - car0l, car0h, car1l, car1h, - cfg, psr, intbasel, intbaseh, - ispl, isph, uspl, usph, - dcr = dcrl, - car0 = car0l, - car1 = car1l, - intbase = intbasel, - isp = ispl, - usp = uspl, - /* Not a processor register. */ - nullpregister = usph + 1, - MAX_PREG -} -preg; - -/* CR16 Register types. */ - -typedef enum -{ - CR16_R_REGTYPE, /* r */ - CR16_RP_REGTYPE, /* reg pair */ - CR16_P_REGTYPE /* Processor register */ -} -reg_type; - -/* CR16 argument types : - The argument types correspond to instructions operands - - Argument types : - r - register - rp - register pair - c - constant - i - immediate - idxr - index with register - idxrp - index with register pair - rbase - register base - rpbase - register pair base - pr - processor register. */ - -typedef enum -{ - arg_r, - arg_c, - arg_cr, - arg_crp, - arg_ic, - arg_icr, - arg_idxr, - arg_idxrp, - arg_rbase, - arg_rpbase, - arg_rp, - arg_pr, - arg_prp, - arg_cc, - arg_ra, - /* Not an argument. */ - nullargs -} -argtype; - -/* CR16 operand types:The operand types correspond to instructions operands. */ - -typedef enum -{ - dummy, - /* N-bit signed immediate. */ - imm3, imm4, imm5, imm6, imm16, imm20, imm32, - /* N-bit unsigned immediate. */ - uimm3, uimm3_1, uimm4, uimm4_1, uimm5, uimm16, uimm20, uimm32, - /* N-bit signed displacement. */ - disps5, disps17, disps25, - /* N-bit unsigned displacement. */ - dispe9, - /* N-bit absolute address. */ - abs20, abs24, - /* Register relative. */ - rra, rbase, rbase_disps20, rbase_dispe20, - /* Register pair relative. */ - rpbase_disps0, rpbase_dispe4, rpbase_disps4, rpbase_disps16, - rpbase_disps20, rpbase_dispe20, - /* Register index. */ - rindex7_abs20, rindex8_abs20, - /* Register pair index. */ - rpindex_disps0, rpindex_disps14, rpindex_disps20, - /* register. */ - regr, - /* register pair. */ - regp, - /* processor register. */ - pregr, - /* processor register 32 bit. */ - pregrp, - /* condition code - 4 bit. */ - cc, - /* Not an operand. */ - nulloperand, - /* Maximum supported operand. */ - MAX_OPRD -} -operand_type; - -/* CR16 instruction types. */ - -#define NO_TYPE_INS 0 -#define ARITH_INS 1 -#define LD_STOR_INS 2 -#define BRANCH_INS 3 -#define ARITH_BYTE_INS 4 -#define SHIFT_INS 5 -#define BRANCH_NEQ_INS 6 -#define LD_STOR_INS_INC 7 -#define STOR_IMM_INS 8 -#define CSTBIT_INS 9 - -/* Maximum value supported for instruction types. */ -#define CR16_INS_MAX (1 << 4) -/* Mask to record an instruction type. */ -#define CR16_INS_MASK (CR16_INS_MAX - 1) -/* Return instruction type, given instruction's attributes. */ -#define CR16_INS_TYPE(attr) ((attr) & CR16_INS_MASK) - -/* Indicates whether this instruction has a register list as parameter. */ -#define REG_LIST CR16_INS_MAX - -/* The operands in binary and assembly are placed in reverse order. - load - (REVERSE_MATCH)/store - (! REVERSE_MATCH). */ -#define REVERSE_MATCH (1 << 5) - -/* Printing formats, where the instruction prefix isn't consecutive. */ -#define FMT_1 (1 << 9) /* 0xF0F00000 */ -#define FMT_2 (1 << 10) /* 0xFFF0FF00 */ -#define FMT_3 (1 << 11) /* 0xFFF00F00 */ -#define FMT_4 (1 << 12) /* 0xFFF0F000 */ -#define FMT_5 (1 << 13) /* 0xFFF0FFF0 */ -#define FMT_CR16 (FMT_1 | FMT_2 | FMT_3 | FMT_4 | FMT_5) - -/* Indicates whether this instruction can be relaxed. */ -#define RELAXABLE (1 << 14) - -/* Indicates that instruction uses user registers (and not - general-purpose registers) as operands. */ -#define USER_REG (1 << 15) - - -/* Instruction shouldn't allow 'sp' usage. */ -#define NO_SP (1 << 17) - -/* Instruction shouldn't allow to push a register which is used as a rptr. */ -#define NO_RPTR (1 << 18) - -/* Maximum operands per instruction. */ -#define MAX_OPERANDS 5 -/* Maximum register name length. */ -#define MAX_REGNAME_LEN 10 -/* Maximum instruction length. */ -#define MAX_INST_LEN 256 - - -/* Values defined for the flags field of a struct operand_entry. */ - -/* Operand must be an unsigned number. */ -#define OP_UNSIGNED (1 << 0) -/* Operand must be a signed number. */ -#define OP_SIGNED (1 << 1) -/* Operand must be a negative number. */ -#define OP_NEG (1 << 2) -/* A special load/stor 4-bit unsigned displacement operand. */ -#define OP_DEC (1 << 3) -/* Operand must be an even number. */ -#define OP_EVEN (1 << 4) -/* Operand is shifted right. */ -#define OP_SHIFT (1 << 5) -/* Operand is shifted right and decremented. */ -#define OP_SHIFT_DEC (1 << 6) -/* Operand has reserved escape sequences. */ -#define OP_ESC (1 << 7) -/* Operand must be a ABS20 number. */ -#define OP_ABS20 (1 << 8) -/* Operand must be a ABS24 number. */ -#define OP_ABS24 (1 << 9) -/* Operand has reserved escape sequences type 1. */ -#define OP_ESC1 (1 << 10) - -/* Single operand description. */ - -typedef struct -{ - /* Operand type. */ - operand_type op_type; - /* Operand location within the opcode. */ - unsigned int shift; -} -operand_desc; - -/* Instruction data structure used in instruction table. */ - -typedef struct -{ - /* Name. */ - const char *mnemonic; - /* Size (in words). */ - unsigned int size; - /* Constant prefix (matched by the disassembler). */ - unsigned long match; /* ie opcode */ - /* Match size (in bits). */ - /* MASK: if( (i & match_bits) == match ) then match */ - int match_bits; - /* Attributes. */ - unsigned int flags; - /* Operands (always last, so unreferenced operands are initialized). */ - operand_desc operands[MAX_OPERANDS]; -} -inst; - -/* Data structure for a single instruction's arguments (Operands). */ - -typedef struct -{ - /* Register or base register. */ - reg r; - /* Register pair register. */ - reg rp; - /* Index register. */ - reg i_r; - /* Processor register. */ - preg pr; - /* Processor register. 32 bit */ - preg prp; - /* Constant/immediate/absolute value. */ - long constant; - /* CC code. */ - unsigned int cc; - /* Scaled index mode. */ - unsigned int scale; - /* Argument type. */ - argtype type; - /* Size of the argument (in bits) required to represent. */ - int size; - /* The type of the expression. */ - unsigned char X_op; -} -argument; - -/* Internal structure to hold the various entities - corresponding to the current assembling instruction. */ - -typedef struct -{ - /* Number of arguments. */ - int nargs; - /* The argument data structure for storing args (operands). */ - argument arg[MAX_OPERANDS]; -/* The following fields are required only by CR16-assembler. */ -#ifdef TC_CR16 - /* Expression used for setting the fixups (if any). */ - expressionS exp; - bfd_reloc_code_real_type rtype; -#endif /* TC_CR16 */ - /* Instruction size (in bytes). */ - int size; -} -ins; - -/* Structure to hold information about predefined operands. */ - -typedef struct -{ - /* Size (in bits). */ - unsigned int bit_size; - /* Argument type. */ - argtype arg_type; - /* One bit syntax flags. */ - int flags; -} -operand_entry; - -/* Structure to hold trap handler information. */ - -typedef struct -{ - /* Trap name. */ - char *name; - /* Index in dispatch table. */ - unsigned int entry; -} -trap_entry; - -/* Structure to hold information about predefined registers. */ - -typedef struct -{ - /* Name (string representation). */ - char *name; - /* Value (enum representation). */ - union - { - /* Register. */ - reg reg_val; - /* processor register. */ - preg preg_val; - } value; - /* Register image. */ - int image; - /* Register type. */ - reg_type type; -} -reg_entry; - -/* CR16 opcode table. */ -extern const inst cr16_instruction[]; -extern const unsigned int cr16_num_opcodes; -#define NUMOPCODES cr16_num_opcodes - -/* CR16 operands table. */ -extern const operand_entry cr16_optab[]; -extern const unsigned int cr16_num_optab; - -/* CR16 registers table. */ -extern const reg_entry cr16_regtab[]; -extern const unsigned int cr16_num_regs; -#define NUMREGS cr16_num_regs - -/* CR16 register pair table. */ -extern const reg_entry cr16_regptab[]; -extern const unsigned int cr16_num_regps; -#define NUMREGPS cr16_num_regps - -/* CR16 processor registers table. */ -extern const reg_entry cr16_pregtab[]; -extern const unsigned int cr16_num_pregs; -#define NUMPREGS cr16_num_pregs - -/* CR16 processor registers - 32 bit table. */ -extern const reg_entry cr16_pregptab[]; -extern const unsigned int cr16_num_pregps; -#define NUMPREGPS cr16_num_pregps - -/* CR16 trap/interrupt table. */ -extern const trap_entry cr16_traps[]; -extern const unsigned int cr16_num_traps; -#define NUMTRAPS cr16_num_traps - -/* CR16 CC - codes bit table. */ -extern const char * cr16_b_cond_tab[]; -extern const unsigned int cr16_num_cc; -#define NUMCC cr16_num_cc; - - -/* Table of instructions with no operands. */ -extern const char * cr16_no_op_insn[]; - -/* Current instruction we're assembling. */ -extern const inst *instruction; - -/* A macro for representing the instruction "constant" opcode, that is, - the FIXED part of the instruction. The "constant" opcode is represented - as a 32-bit unsigned long, where OPC is expanded (by a left SHIFT) - over that range. */ -#define BIN(OPC,SHIFT) (OPC << SHIFT) - -/* Is the current instruction type is TYPE ? */ -#define IS_INSN_TYPE(TYPE) \ - (CR16_INS_TYPE (instruction->flags) == TYPE) - -/* Is the current instruction mnemonic is MNEMONIC ? */ -#define IS_INSN_MNEMONIC(MNEMONIC) \ - (strcmp (instruction->mnemonic, MNEMONIC) == 0) - -/* Does the current instruction has register list ? */ -#define INST_HAS_REG_LIST \ - (instruction->flags & REG_LIST) - - -/* Utility macros for string comparison. */ -#define streq(a, b) (strcmp (a, b) == 0) -#define strneq(a, b, c) (strncmp (a, b, c) == 0) - -/* Long long type handling. */ -/* Replace all appearances of 'long long int' with LONGLONG. */ -typedef long long int LONGLONG; -typedef unsigned long long ULONGLONG; - -/* Data types for opcode handling. */ -typedef unsigned long dwordU; -typedef unsigned short wordU; - -/* Globals to store opcode data and build the instruction. */ -extern wordU cr16_words[3]; -extern ULONGLONG cr16_allWords; -extern ins cr16_currInsn; - -/* Prototypes for function in cr16-dis.c. */ -extern void cr16_make_instruction (void); -extern int cr16_match_opcode (void); - -#endif /* _CR16_H_ */ diff --git a/include/opcode/cris.h b/include/opcode/cris.h deleted file mode 100644 index e57a882..0000000 --- a/include/opcode/cris.h +++ /dev/null @@ -1,367 +0,0 @@ -/* cris.h -- Header file for CRIS opcode and register tables. - Copyright (C) 2000, 2001, 2004, 2010 Free Software Foundation, Inc. - Contributed by Axis Communications AB, Lund, Sweden. - Originally written for GAS 1.38.1 by Mikael Asker. - Updated, BFDized and GNUified by Hans-Peter Nilsson. - - This file is part of GAS, GDB and the GNU binutils. - - GAS, GDB, and GNU binutils is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 3, or (at your - option) any later version. - - GAS, GDB, and GNU binutils are distributed in the hope that they will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef __CRIS_H_INCLUDED_ -#define __CRIS_H_INCLUDED_ - -#if !defined(__STDC__) && !defined(const) -#define const -#endif - - -/* Registers. */ -#define MAX_REG (15) -#define REG_SP (14) -#define REG_PC (15) - -/* CPU version control of disassembly and assembly of instructions. - May affect how the instruction is assembled, at least the size of - immediate operands. */ -enum cris_insn_version_usage -{ - /* Any version. */ - cris_ver_version_all=0, - - /* Indeterminate (intended for disassembly only, or obsolete). */ - cris_ver_warning, - - /* Only for v0..3 (Etrax 1..4). */ - cris_ver_v0_3, - - /* Only for v3 or higher (ETRAX 4 and beyond). */ - cris_ver_v3p, - - /* Only for v8 (Etrax 100). */ - cris_ver_v8, - - /* Only for v8 or higher (ETRAX 100, ETRAX 100 LX). */ - cris_ver_v8p, - - /* Only for v0..10. FIXME: Not sure what to do with this. */ - cris_ver_sim_v0_10, - - /* Only for v0..10. */ - cris_ver_v0_10, - - /* Only for v3..10. (ETRAX 4, ETRAX 100 and ETRAX 100 LX). */ - cris_ver_v3_10, - - /* Only for v8..10 (ETRAX 100 and ETRAX 100 LX). */ - cris_ver_v8_10, - - /* Only for v10 (ETRAX 100 LX) and same series. */ - cris_ver_v10, - - /* Only for v10 (ETRAX 100 LX) and same series. */ - cris_ver_v10p, - - /* Only for v32 or higher (codename GUINNESS). - Of course some or all these of may change to cris_ver_v32p if/when - there's a new revision. */ - cris_ver_v32p -}; - - -/* Special registers. */ -struct cris_spec_reg -{ - const char *const name; - unsigned int number; - - /* The size of the register. */ - unsigned int reg_size; - - /* What CPU version the special register of that name is implemented - in. If cris_ver_warning, emit an unimplemented-warning. */ - enum cris_insn_version_usage applicable_version; - - /* There might be a specific warning for using a special register - here. */ - const char *const warning; -}; -extern const struct cris_spec_reg cris_spec_regs[]; - - -/* Support registers (kind of special too, but not named as such). */ -struct cris_support_reg -{ - const char *const name; - unsigned int number; -}; -extern const struct cris_support_reg cris_support_regs[]; - -struct cris_cond15 -{ - /* The name of the condition. */ - const char *const name; - - /* What CPU version this condition name applies to. */ - enum cris_insn_version_usage applicable_version; -}; -extern const struct cris_cond15 cris_conds15[]; - -/* Opcode-dependent constants. */ -#define AUTOINCR_BIT (0x04) - -/* Prefixes. */ -#define BDAP_QUICK_OPCODE (0x0100) -#define BDAP_QUICK_Z_BITS (0x0e00) - -#define BIAP_OPCODE (0x0540) -#define BIAP_Z_BITS (0x0a80) - -#define DIP_OPCODE (0x0970) -#define DIP_Z_BITS (0xf280) - -#define BDAP_INDIR_LOW (0x40) -#define BDAP_INDIR_LOW_Z (0x80) -#define BDAP_INDIR_HIGH (0x09) -#define BDAP_INDIR_HIGH_Z (0x02) - -#define BDAP_INDIR_OPCODE (BDAP_INDIR_HIGH * 0x0100 + BDAP_INDIR_LOW) -#define BDAP_INDIR_Z_BITS (BDAP_INDIR_HIGH_Z * 0x100 + BDAP_INDIR_LOW_Z) -#define BDAP_PC_LOW (BDAP_INDIR_LOW + REG_PC) -#define BDAP_INCR_HIGH (BDAP_INDIR_HIGH + AUTOINCR_BIT) - -/* No prefix must have this code for its "match" bits in the - opcode-table. "BCC .+2" will do nicely. */ -#define NO_CRIS_PREFIX 0 - -/* Definitions for condition codes. */ -#define CC_CC 0x0 -#define CC_HS 0x0 -#define CC_CS 0x1 -#define CC_LO 0x1 -#define CC_NE 0x2 -#define CC_EQ 0x3 -#define CC_VC 0x4 -#define CC_VS 0x5 -#define CC_PL 0x6 -#define CC_MI 0x7 -#define CC_LS 0x8 -#define CC_HI 0x9 -#define CC_GE 0xA -#define CC_LT 0xB -#define CC_GT 0xC -#define CC_LE 0xD -#define CC_A 0xE -#define CC_EXT 0xF - -/* A table of strings "cc", "cs"... indexed with condition code - values as above. */ -extern const char *const cris_cc_strings[]; - -/* Bcc quick. */ -#define BRANCH_QUICK_LOW (0) -#define BRANCH_QUICK_HIGH (0) -#define BRANCH_QUICK_OPCODE (BRANCH_QUICK_HIGH * 0x0100 + BRANCH_QUICK_LOW) -#define BRANCH_QUICK_Z_BITS (0x0F00) - -/* BA quick. */ -#define BA_QUICK_HIGH (BRANCH_QUICK_HIGH + CC_A * 0x10) -#define BA_QUICK_OPCODE (BA_QUICK_HIGH * 0x100 + BRANCH_QUICK_LOW) - -/* Bcc [PC+]. */ -#define BRANCH_PC_LOW (0xFF) -#define BRANCH_INCR_HIGH (0x0D) -#define BA_PC_INCR_OPCODE \ - ((BRANCH_INCR_HIGH + CC_A * 0x10) * 0x0100 + BRANCH_PC_LOW) - -/* Jump. */ -/* Note that old versions generated special register 8 (in high bits) - and not-that-old versions recognized it as a jump-instruction. - That opcode now belongs to JUMPU. */ -#define JUMP_INDIR_OPCODE (0x0930) -#define JUMP_INDIR_Z_BITS (0xf2c0) -#define JUMP_PC_INCR_OPCODE \ - (JUMP_INDIR_OPCODE + AUTOINCR_BIT * 0x0100 + REG_PC) - -#define MOVE_M_TO_PREG_OPCODE 0x0a30 -#define MOVE_M_TO_PREG_ZBITS 0x01c0 - -/* BDAP.D N,PC. */ -#define MOVE_PC_INCR_OPCODE_PREFIX \ - (((BDAP_INCR_HIGH | (REG_PC << 4)) << 8) | BDAP_PC_LOW | (2 << 4)) -#define MOVE_PC_INCR_OPCODE_SUFFIX \ - (MOVE_M_TO_PREG_OPCODE | REG_PC | (AUTOINCR_BIT << 8)) - -#define JUMP_PC_INCR_OPCODE_V32 (0x0DBF) - -/* BA DWORD (V32). */ -#define BA_DWORD_OPCODE (0x0EBF) - -/* Nop. */ -#define NOP_OPCODE (0x050F) -#define NOP_Z_BITS (0xFFFF ^ NOP_OPCODE) - -#define NOP_OPCODE_V32 (0x05B0) -#define NOP_Z_BITS_V32 (0xFFFF ^ NOP_OPCODE_V32) - -/* For the compatibility mode, let's use "MOVE R0,P0". Doesn't affect - registers or flags. Unfortunately shuts off interrupts for one cycle - for < v32, but there doesn't seem to be any alternative without that - effect. */ -#define NOP_OPCODE_COMMON (0x630) -#define NOP_OPCODE_ZBITS_COMMON (0xffff & ~NOP_OPCODE_COMMON) - -/* LAPC.D */ -#define LAPC_DWORD_OPCODE (0x0D7F) -#define LAPC_DWORD_Z_BITS (0x0fff & ~LAPC_DWORD_OPCODE) - -/* Structure of an opcode table entry. */ -enum cris_imm_oprnd_size_type -{ - /* No size is applicable. */ - SIZE_NONE, - - /* Always 32 bits. */ - SIZE_FIX_32, - - /* Indicated by size of special register. */ - SIZE_SPEC_REG, - - /* Indicated by size field, signed. */ - SIZE_FIELD_SIGNED, - - /* Indicated by size field, unsigned. */ - SIZE_FIELD_UNSIGNED, - - /* Indicated by size field, no sign implied. */ - SIZE_FIELD -}; - -/* For GDB. FIXME: Is this the best way to handle opcode - interpretation? */ -enum cris_op_type -{ - cris_not_implemented_op = 0, - cris_abs_op, - cris_addi_op, - cris_asr_op, - cris_asrq_op, - cris_ax_ei_setf_op, - cris_bdap_prefix, - cris_biap_prefix, - cris_break_op, - cris_btst_nop_op, - cris_clearf_di_op, - cris_dip_prefix, - cris_dstep_logshift_mstep_neg_not_op, - cris_eight_bit_offset_branch_op, - cris_move_mem_to_reg_movem_op, - cris_move_reg_to_mem_movem_op, - cris_move_to_preg_op, - cris_muls_op, - cris_mulu_op, - cris_none_reg_mode_add_sub_cmp_and_or_move_op, - cris_none_reg_mode_clear_test_op, - cris_none_reg_mode_jump_op, - cris_none_reg_mode_move_from_preg_op, - cris_quick_mode_add_sub_op, - cris_quick_mode_and_cmp_move_or_op, - cris_quick_mode_bdap_prefix, - cris_reg_mode_add_sub_cmp_and_or_move_op, - cris_reg_mode_clear_op, - cris_reg_mode_jump_op, - cris_reg_mode_move_from_preg_op, - cris_reg_mode_test_op, - cris_scc_op, - cris_sixteen_bit_offset_branch_op, - cris_three_operand_add_sub_cmp_and_or_op, - cris_three_operand_bound_op, - cris_two_operand_bound_op, - cris_xor_op -}; - -struct cris_opcode -{ - /* The name of the insn. */ - const char *name; - - /* Bits that must be 1 for a match. */ - unsigned int match; - - /* Bits that must be 0 for a match. */ - unsigned int lose; - - /* See the table in "opcodes/cris-opc.c". */ - const char *args; - - /* Nonzero if this is a delayed branch instruction. */ - char delayed; - - /* Size of immediate operands. */ - enum cris_imm_oprnd_size_type imm_oprnd_size; - - /* Indicates which version this insn was first implemented in. */ - enum cris_insn_version_usage applicable_version; - - /* What kind of operation this is. */ - enum cris_op_type op; -}; -extern const struct cris_opcode cris_opcodes[]; - - -/* These macros are for the target-specific flags in disassemble_info - used at disassembly. */ - -/* This insn accesses memory. This flag is more trustworthy than - checking insn_type for "dis_dref" which does not work for - e.g. "JSR [foo]". */ -#define CRIS_DIS_FLAG_MEMREF (1 << 0) - -/* The "target" field holds a register number. */ -#define CRIS_DIS_FLAG_MEM_TARGET_IS_REG (1 << 1) - -/* The "target2" field holds a register number; add it to "target". */ -#define CRIS_DIS_FLAG_MEM_TARGET2_IS_REG (1 << 2) - -/* Yet another add-on: the register in "target2" must be multiplied - by 2 before adding to "target". */ -#define CRIS_DIS_FLAG_MEM_TARGET2_MULT2 (1 << 3) - -/* Yet another add-on: the register in "target2" must be multiplied - by 4 (mutually exclusive with .._MULT2). */ -#define CRIS_DIS_FLAG_MEM_TARGET2_MULT4 (1 << 4) - -/* The register in "target2" is an indirect memory reference (of the - register there), add to "target". Assumed size is dword (mutually - exclusive with .._MULT[24]). */ -#define CRIS_DIS_FLAG_MEM_TARGET2_MEM (1 << 5) - -/* Add-on to CRIS_DIS_FLAG_MEM_TARGET2_MEM; the memory access is "byte"; - sign-extended before adding to "target". */ -#define CRIS_DIS_FLAG_MEM_TARGET2_MEM_BYTE (1 << 6) - -/* Add-on to CRIS_DIS_FLAG_MEM_TARGET2_MEM; the memory access is "word"; - sign-extended before adding to "target". */ -#define CRIS_DIS_FLAG_MEM_TARGET2_MEM_WORD (1 << 7) - -#endif /* __CRIS_H_INCLUDED_ */ - -/* - * Local variables: - * eval: (c-set-style "gnu") - * indent-tabs-mode: t - * End: - */ diff --git a/include/opcode/crx.h b/include/opcode/crx.h deleted file mode 100644 index 6081ea3..0000000 --- a/include/opcode/crx.h +++ /dev/null @@ -1,419 +0,0 @@ -/* crx.h -- Header file for CRX opcode and register tables. - Copyright 2004, 2010, 2012 Free Software Foundation, Inc. - Contributed by Tomer Levi, NSC, Israel. - Originally written for GAS 2.12 by Tomer Levi, NSC, Israel. - Updates, BFDizing, GNUifying and ELF support by Tomer Levi. - - This file is part of GAS, GDB and the GNU binutils. - - GAS, GDB, and GNU binutils is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 3, or (at your - option) any later version. - - GAS, GDB, and GNU binutils are distributed in the hope that they will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _CRX_H_ -#define _CRX_H_ - -/* CRX core/debug Registers : - The enums are used as indices to CRX registers table (crx_regtab). - Therefore, order MUST be preserved. */ - -typedef enum - { - /* 32-bit general purpose registers. */ - r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, - r10, r11, r12, r13, r14, r15, ra, sp, - /* 32-bit user registers. */ - u0, u1, u2, u3, u4, u5, u6, u7, u8, u9, - u10, u11, u12, u13, u14, u15, ura, usp, - /* hi and lo registers. */ - hi, lo, - /* hi and lo user registers. */ - uhi, ulo, - /* Processor Status Register. */ - psr, - /* Interrupt Base Register. */ - intbase, - /* Interrupt Stack Pointer Register. */ - isp, - /* Configuration Register. */ - cfg, - /* Coprocessor Configuration Register. */ - cpcfg, - /* Coprocessor Enable Register. */ - cen, - /* Not a register. */ - nullregister, - MAX_REG - } -reg; - -/* CRX Coprocessor registers and special registers : - The enums are used as indices to CRX coprocessor registers table - (crx_copregtab). Therefore, order MUST be preserved. */ - -typedef enum - { - /* Coprocessor registers. */ - c0 = MAX_REG, c1, c2, c3, c4, c5, c6, c7, c8, - c9, c10, c11, c12, c13, c14, c15, - /* Coprocessor special registers. */ - cs0, cs1 ,cs2, cs3, cs4, cs5, cs6, cs7, cs8, - cs9, cs10, cs11, cs12, cs13, cs14, cs15, - /* Not a Coprocessor register. */ - nullcopregister, - MAX_COPREG - } -copreg; - -/* CRX Register types. */ - -typedef enum - { - CRX_R_REGTYPE, /* r */ - CRX_U_REGTYPE, /* u */ - CRX_C_REGTYPE, /* c */ - CRX_CS_REGTYPE, /* cs */ - CRX_CFG_REGTYPE /* configuration register */ - } -reg_type; - -/* CRX argument types : - The argument types correspond to instructions operands - - Argument types : - r - register - c - constant - i - immediate - idxr - index register - rbase - register base - s - star ('*') - copr - coprocessor register - copsr - coprocessor special register. */ - -typedef enum - { - arg_r, arg_c, arg_cr, arg_ic, arg_icr, arg_sc, - arg_idxr, arg_rbase, arg_copr, arg_copsr, - /* Not an argument. */ - nullargs - } -argtype; - -/* CRX operand types : - The operand types correspond to instructions operands. */ - -typedef enum - { - dummy, - /* 4-bit encoded constant. */ - cst4, - /* N-bit immediate. */ - i16, i32, - /* N-bit unsigned immediate. */ - ui3, ui4, ui5, ui16, - /* N-bit signed displacement. */ - disps9, disps17, disps25, disps32, - /* N-bit unsigned displacement. */ - dispu5, - /* N-bit escaped displacement. */ - dispe9, - /* N-bit absolute address. */ - abs16, abs32, - /* Register relative. */ - rbase, rbase_dispu4, - rbase_disps12, rbase_disps16, rbase_disps28, rbase_disps32, - /* Register index. */ - rindex_disps6, rindex_disps22, - /* 4-bit genaral-purpose register specifier. */ - regr, - /* 8-bit register address space. */ - regr8, - /* coprocessor register. */ - copregr, - /* coprocessor special register. */ - copsregr, - /* Not an operand. */ - nulloperand, - /* Maximum supported operand. */ - MAX_OPRD - } -operand_type; - -/* CRX instruction types. */ - -#define NO_TYPE_INS 0 -#define ARITH_INS 1 -#define LD_STOR_INS 2 -#define BRANCH_INS 3 -#define ARITH_BYTE_INS 4 -#define CMPBR_INS 5 -#define SHIFT_INS 6 -#define BRANCH_NEQ_INS 7 -#define LD_STOR_INS_INC 8 -#define STOR_IMM_INS 9 -#define CSTBIT_INS 10 -#define COP_BRANCH_INS 11 -#define COP_REG_INS 12 -#define COPS_REG_INS 13 -#define DCR_BRANCH_INS 14 - -/* Maximum value supported for instruction types. */ -#define CRX_INS_MAX (1 << 4) -/* Mask to record an instruction type. */ -#define CRX_INS_MASK (CRX_INS_MAX - 1) -/* Return instruction type, given instruction's attributes. */ -#define CRX_INS_TYPE(attr) ((attr) & CRX_INS_MASK) - -/* Indicates whether this instruction has a register list as parameter. */ -#define REG_LIST CRX_INS_MAX -/* The operands in binary and assembly are placed in reverse order. - load - (REVERSE_MATCH)/store - (! REVERSE_MATCH). */ -#define REVERSE_MATCH (1 << 5) - -/* Kind of displacement map used DISPU[BWD]4. */ -#define DISPUB4 (1 << 6) -#define DISPUW4 (1 << 7) -#define DISPUD4 (1 << 8) -#define DISPU4MAP (DISPUB4 | DISPUW4 | DISPUD4) - -/* Printing formats, where the instruction prefix isn't consecutive. */ -#define FMT_1 (1 << 9) /* 0xF0F00000 */ -#define FMT_2 (1 << 10) /* 0xFFF0FF00 */ -#define FMT_3 (1 << 11) /* 0xFFF00F00 */ -#define FMT_4 (1 << 12) /* 0xFFF0F000 */ -#define FMT_5 (1 << 13) /* 0xFFF0FFF0 */ -#define FMT_CRX (FMT_1 | FMT_2 | FMT_3 | FMT_4 | FMT_5) - -/* Indicates whether this instruction can be relaxed. */ -#define RELAXABLE (1 << 14) - -/* Indicates that instruction uses user registers (and not - general-purpose registers) as operands. */ -#define USER_REG (1 << 15) - -/* Indicates that instruction can perfom a cst4 mapping. */ -#define CST4MAP (1 << 16) - -/* Instruction shouldn't allow 'sp' usage. */ -#define NO_SP (1 << 17) - -/* Instruction shouldn't allow to push a register which is used as a rptr. */ -#define NO_RPTR (1 << 18) - -/* Maximum operands per instruction. */ -#define MAX_OPERANDS 5 -/* Maximum register name length. */ -#define MAX_REGNAME_LEN 10 -/* Maximum instruction length. */ -#define MAX_INST_LEN 256 - - -/* Values defined for the flags field of a struct operand_entry. */ - -/* Operand must be an unsigned number. */ -#define OP_UNSIGNED (1 << 0) -/* Operand must be a signed number. */ -#define OP_SIGNED (1 << 1) -/* A special arithmetic 4-bit constant operand. */ -#define OP_CST4 (1 << 2) -/* A special load/stor 4-bit unsigned displacement operand. */ -#define OP_DISPU4 (1 << 3) -/* Operand must be an even number. */ -#define OP_EVEN (1 << 4) -/* Operand is shifted right. */ -#define OP_SHIFT (1 << 5) -/* Operand is shifted right and decremented. */ -#define OP_SHIFT_DEC (1 << 6) -/* Operand has reserved escape sequences. */ -#define OP_ESC (1 << 7) -/* Operand is used only for the upper 64 KB (FFFF0000 to FFFFFFFF). */ -#define OP_UPPER_64KB (1 << 8) - -/* Single operand description. */ - -typedef struct - { - /* Operand type. */ - operand_type op_type; - /* Operand location within the opcode. */ - unsigned int shift; - } -operand_desc; - -/* Instruction data structure used in instruction table. */ - -typedef struct - { - /* Name. */ - const char *mnemonic; - /* Size (in words). */ - unsigned int size; - /* Constant prefix (matched by the disassembler). */ - unsigned long match; - /* Match size (in bits). */ - int match_bits; - /* Attributes. */ - unsigned int flags; - /* Operands (always last, so unreferenced operands are initialized). */ - operand_desc operands[MAX_OPERANDS]; - } -inst; - -/* Data structure for a single instruction's arguments (Operands). */ - -typedef struct - { - /* Register or base register. */ - reg r; - /* Index register. */ - reg i_r; - /* Coprocessor register. */ - copreg cr; - /* Constant/immediate/absolute value. */ - long constant; - /* Scaled index mode. */ - unsigned int scale; - /* Argument type. */ - argtype type; - /* Size of the argument (in bits) required to represent. */ - int size; - /* The type of the expression. */ - unsigned char X_op; - } -argument; - -/* Internal structure to hold the various entities - corresponding to the current assembling instruction. */ - -typedef struct - { - /* Number of arguments. */ - int nargs; - /* The argument data structure for storing args (operands). */ - argument arg[MAX_OPERANDS]; -/* The following fields are required only by CRX-assembler. */ -#ifdef TC_CRX - /* Expression used for setting the fixups (if any). */ - expressionS exp; - bfd_reloc_code_real_type rtype; -#endif /* TC_CRX */ - /* Instruction size (in bytes). */ - int size; - } -ins; - -/* Structure to hold information about predefined operands. */ - -typedef struct - { - /* Size (in bits). */ - unsigned int bit_size; - /* Argument type. */ - argtype arg_type; - /* One bit syntax flags. */ - int flags; - } -operand_entry; - -/* Structure to hold trap handler information. */ - -typedef struct - { - /* Trap name. */ - char *name; - /* Index in dispatch table. */ - unsigned int entry; - } -trap_entry; - -/* Structure to hold information about predefined registers. */ - -typedef struct - { - /* Name (string representation). */ - char *name; - /* Value (enum representation). */ - union - { - /* Register. */ - reg reg_val; - /* Coprocessor register. */ - copreg copreg_val; - } value; - /* Register image. */ - int image; - /* Register type. */ - reg_type type; - } -reg_entry; - -/* Structure to hold a cst4 operand mapping. */ - -/* CRX opcode table. */ -extern const inst crx_instruction[]; -extern const int crx_num_opcodes; -#define NUMOPCODES crx_num_opcodes - -/* CRX operands table. */ -extern const operand_entry crx_optab[]; - -/* CRX registers table. */ -extern const reg_entry crx_regtab[]; -extern const int crx_num_regs; -#define NUMREGS crx_num_regs - -/* CRX coprocessor registers table. */ -extern const reg_entry crx_copregtab[]; -extern const int crx_num_copregs; -#define NUMCOPREGS crx_num_copregs - -/* CRX trap/interrupt table. */ -extern const trap_entry crx_traps[]; -extern const int crx_num_traps; -#define NUMTRAPS crx_num_traps - -/* cst4 operand mapping. */ -extern const int cst4_map[]; -extern const int cst4_maps; - -/* Table of instructions with no operands. */ -extern const char* no_op_insn[]; - -/* Current instruction we're assembling. */ -extern const inst *instruction; - -/* A macro for representing the instruction "constant" opcode, that is, - the FIXED part of the instruction. The "constant" opcode is represented - as a 32-bit unsigned long, where OPC is expanded (by a left SHIFT) - over that range. */ -#define BIN(OPC,SHIFT) (OPC << SHIFT) - -/* Is the current instruction type is TYPE ? */ -#define IS_INSN_TYPE(TYPE) \ - (CRX_INS_TYPE(instruction->flags) == TYPE) - -/* Is the current instruction mnemonic is MNEMONIC ? */ -#define IS_INSN_MNEMONIC(MNEMONIC) \ - (strcmp(instruction->mnemonic,MNEMONIC) == 0) - -/* Does the current instruction has register list ? */ -#define INST_HAS_REG_LIST \ - (instruction->flags & REG_LIST) - -/* Long long type handling. */ -/* Replace all appearances of 'long long int' with LONGLONG. */ -typedef long long int LONGLONG; -typedef unsigned long long ULONGLONG; - -#endif /* _CRX_H_ */ diff --git a/include/opcode/d10v.h b/include/opcode/d10v.h deleted file mode 100644 index d0e115f..0000000 --- a/include/opcode/d10v.h +++ /dev/null @@ -1,209 +0,0 @@ -/* d10v.h -- Header file for D10V opcode table - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2010 - Free Software Foundation, Inc. - Written by Martin Hunt (hunt@cygnus.com), Cygnus Support - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef D10V_H -#define D10V_H - -/* Format Specifier */ -#define FM00 0 -#define FM01 0x40000000 -#define FM10 0x80000000 -#define FM11 0xC0000000 - -#define NOP 0x5e00 -#define OPCODE_DIVS 0x14002800 - -/* The opcode table is an array of struct d10v_opcode. */ - -struct d10v_opcode -{ - /* The opcode name. */ - const char *name; - - /* the opcode format */ - int format; - - /* These numbers were picked so we can do if( i & SHORT_OPCODE) */ -#define SHORT_OPCODE 1 -#define LONG_OPCODE 8 -#define SHORT_2 1 /* short with 2 operands */ -#define SHORT_B 3 /* short with 8-bit branch */ -#define LONG_B 8 /* long with 16-bit branch */ -#define LONG_L 10 /* long with 3 operands */ -#define LONG_R 12 /* reserved */ - - /* just a placeholder for variable-length instructions */ - /* for example, "bra" will be a fake for "bra.s" and bra.l" */ - /* which will immediately follow in the opcode table. */ -#define OPCODE_FAKE 32 - - /* the number of cycles */ - int cycles; - - /* the execution unit(s) used */ - int unit; -#define EITHER 0 -#define IU 1 -#define MU 2 -#define BOTH 3 - - /* execution type; parallel or sequential */ - /* this field is used to decide if two instructions */ - /* can be executed in parallel */ - int exec_type; -#define PARONLY 1 /* parallel only */ -#define SEQ 2 /* must be sequential */ -#define PAR 4 /* may be parallel */ -#define BRANCH_LINK 8 /* subroutine call. must be aligned */ -#define RMEM 16 /* reads memory */ -#define WMEM 32 /* writes memory */ -#define RF0 64 /* reads f0 */ -#define WF0 128 /* modifies f0 */ -#define WCAR 256 /* write Carry */ -#define BRANCH 512 /* branch, no link */ -#define ALONE 1024 /* short but pack with a NOP if on asm line alone */ - - /* the opcode */ - long opcode; - - /* mask. if( (i & mask) == opcode ) then match */ - long mask; - - /* An array of operand codes. Each code is an index into the - operand table. They appear in the order which the operands must - appear in assembly code, and are terminated by a zero. */ - unsigned char operands[6]; -}; - -/* The table itself is sorted by major opcode number, and is otherwise - in the order in which the disassembler should consider - instructions. */ -extern const struct d10v_opcode d10v_opcodes[]; -extern const int d10v_num_opcodes; - -/* The operands table is an array of struct d10v_operand. */ -struct d10v_operand -{ - /* The number of bits in the operand. */ - int bits; - - /* How far the operand is left shifted in the instruction. */ - int shift; - - /* One bit syntax flags. */ - int flags; -}; - -/* Elements in the table are retrieved by indexing with values from - the operands field of the d10v_opcodes table. */ - -extern const struct d10v_operand d10v_operands[]; - -/* Values defined for the flags field of a struct d10v_operand. */ - -/* the operand must be an even number */ -#define OPERAND_EVEN (1) - -/* the operand must be an odd number */ -#define OPERAND_ODD (2) - -/* this is the destination register; it will be modified */ -/* this is used by the optimizer */ -#define OPERAND_DEST (4) - -/* number or symbol */ -#define OPERAND_NUM (8) - -/* address or label */ -#define OPERAND_ADDR (0x10) - -/* register */ -#define OPERAND_REG (0x20) - -/* postincrement + */ -#define OPERAND_PLUS (0x40) - -/* postdecrement - */ -#define OPERAND_MINUS (0x80) - -/* @ */ -#define OPERAND_ATSIGN (0x100) - -/* @( */ -#define OPERAND_ATPAR (0x200) - -/* accumulator 0 */ -#define OPERAND_ACC0 (0x400) - -/* accumulator 1 */ -#define OPERAND_ACC1 (0x800) - -/* f0 / f1 flag register */ -#define OPERAND_FFLAG (0x1000) - -/* c flag register */ -#define OPERAND_CFLAG (0x2000) - -/* control register */ -#define OPERAND_CONTROL (0x4000) - -/* predecrement mode '@-sp' */ -#define OPERAND_ATMINUS (0x8000) - -/* signed number */ -#define OPERAND_SIGNED (0x10000) - -/* special accumulator shifts need a 4-bit number */ -/* 1 <= x <= 16 */ -#define OPERAND_SHIFT (0x20000) - -/* general purpose register */ -#define OPERAND_GPR (0x40000) - -/* special imm3 values with range restricted to -2 <= imm3 <= 3 */ -/* needed for rac/rachi */ -#define RESTRICTED_NUM3 (0x80000) - -/* Pre-decrement is only supported for SP. */ -#define OPERAND_SP (0x100000) - -/* Post-decrement is not supported for SP. Like OPERAND_EVEN, and - unlike OPERAND_SP, this flag doesn't prevent the instruction from - matching, it only fails validation later on. */ -#define OPERAND_NOSP (0x200000) - -/* Structure to hold information about predefined registers. */ -struct pd_reg -{ - char *name; /* name to recognize */ - char *pname; /* name to print for this register */ - int value; -}; - -extern const struct pd_reg d10v_predefined_registers[]; -int d10v_reg_name_cnt (void); - -/* an expressionS only has one register type, so we fake it */ -/* by setting high bits to indicate type */ -#define REGISTER_MASK 0xFF - -#endif /* D10V_H */ diff --git a/include/opcode/d30v.h b/include/opcode/d30v.h deleted file mode 100644 index 62c041d..0000000 --- a/include/opcode/d30v.h +++ /dev/null @@ -1,288 +0,0 @@ -/* d30v.h -- Header file for D30V opcode table - Copyright 1997, 1998, 1999, 2000, 2001, 2003, 2010 - Free Software Foundation, Inc. - Written by Martin Hunt (hunt@cygnus.com), Cygnus Solutions - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef D30V_H -#define D30V_H - -#define NOP 0x00F00000 - -/* Structure to hold information about predefined registers. */ -struct pd_reg -{ - char *name; /* name to recognize */ - char *pname; /* name to print for this register */ - int value; -}; - -extern const struct pd_reg pre_defined_registers[]; -int reg_name_cnt (void); - -/* the number of control registers */ -#define MAX_CONTROL_REG 64 - -/* define the format specifiers */ -#define FM00 0 -#define FM01 0x80000000 -#define FM10 0x8000000000000000LL -#define FM11 0x8000000080000000LL - -/* define the opcode classes */ -#define BRA 0 -#define LOGIC 1 -#define IMEM 2 -#define IALU1 4 -#define IALU2 5 - -/* define the execution condition codes */ -#define ECC_AL 0 /* ALways (default) */ -#define ECC_TX 1 /* F0=True, F1=Don't care */ -#define ECC_FX 2 /* F0=False, F1=Don't care */ -#define ECC_XT 3 /* F0=Don't care, F1=True */ -#define ECC_XF 4 /* F0=Don't care, F1=False */ -#define ECC_TT 5 /* F0=True, F1=True */ -#define ECC_TF 6 /* F0=True, F1=False */ -#define ECC_RESERVED 7 /* reserved */ -#define ECC_MAX ECC_RESERVED - -extern const char *d30v_ecc_names[]; - -/* condition code table for CMP and CMPU */ -extern const char *d30v_cc_names[]; - -/* The opcode table is an array of struct d30v_opcode. */ -struct d30v_opcode -{ - /* The opcode name. */ - const char *name; - - /* the opcode */ - int op1; /* first part, "IALU1" for example */ - int op2; /* the rest of the opcode */ - - /* opcode format(s). These numbers correspond to entries */ - /* in the d30v_format_table */ - unsigned char format[4]; - -#define SHORT_M 1 -#define SHORT_M2 5 /* for ld2w and st2w */ -#define SHORT_A 9 -#define SHORT_B1 11 -#define SHORT_B2 12 -#define SHORT_B2r 13 -#define SHORT_B3 14 -#define SHORT_B3r 16 -#define SHORT_B3b 18 -#define SHORT_B3br 20 -#define SHORT_D1r 22 -#define SHORT_D2 24 -#define SHORT_D2r 26 -#define SHORT_D2Br 28 -#define SHORT_U 30 /* unary SHORT_A. ABS for example */ -#define SHORT_F 31 /* SHORT_A with flag registers */ -#define SHORT_AF 33 /* SHORT_A with only the first register a flag register */ -#define SHORT_T 35 /* for trap instruction */ -#define SHORT_A5 36 /* SHORT_A with a 5-bit immediate instead of 6 */ -#define SHORT_CMP 38 /* special form for CMPcc */ -#define SHORT_CMPU 40 /* special form for CMPUcc */ -#define SHORT_A1 42 /* special form of SHORT_A for MACa opcodes where a=1 */ -#define SHORT_AA 44 /* SHORT_A with the first register an accumulator */ -#define SHORT_RA 46 /* SHORT_A with the second register an accumulator */ -#define SHORT_MODINC 48 -#define SHORT_MODDEC 49 -#define SHORT_C1 50 -#define SHORT_C2 51 -#define SHORT_UF 52 -#define SHORT_A2 53 -#define SHORT_NONE 55 /* no operands */ -#define SHORT_AR 56 /* like SHORT_AA but only accept register as third parameter */ -#define LONG 57 -#define LONG_U 58 /* unary LONG */ -#define LONG_Ur 59 /* LONG pc-relative */ -#define LONG_CMP 60 /* special form for CMPcc and CMPUcc */ -#define LONG_M 61 /* Memory long for ldb, stb */ -#define LONG_M2 62 /* Memory long for ld2w, st2w */ -#define LONG_2 63 /* LONG with 2 operands; jmptnz */ -#define LONG_2r 64 /* LONG with 2 operands; bratnz */ -#define LONG_2b 65 /* LONG_2 with modifier of 3 */ -#define LONG_2br 66 /* LONG_2r with modifier of 3 */ -#define LONG_D 67 /* for DJMPI */ -#define LONG_Dr 68 /* for DBRAI */ -#define LONG_Dbr 69 /* for repeati */ - - /* the execution unit(s) used */ - int unit; -#define EITHER 0 -#define IU 1 -#define MU 2 -#define EITHER_BUT_PREFER_MU 3 - - /* this field is used to decide if two instructions */ - /* can be executed in parallel */ - long flags_used; - long flags_set; -#define FLAG_0 (1L<<0) -#define FLAG_1 (1L<<1) -#define FLAG_2 (1L<<2) -#define FLAG_3 (1L<<3) -#define FLAG_4 (1L<<4) /* S (saturation) */ -#define FLAG_5 (1L<<5) /* V (overflow) */ -#define FLAG_6 (1L<<6) /* VA (accumulated overflow) */ -#define FLAG_7 (1L<<7) /* C (carry/borrow) */ -#define FLAG_SM (1L<<8) /* SM (stack mode) */ -#define FLAG_RP (1L<<9) /* RP (repeat enable) */ -#define FLAG_CONTROL (1L<<10) /* control registers */ -#define FLAG_A0 (1L<<11) /* A0 */ -#define FLAG_A1 (1L<<12) /* A1 */ -#define FLAG_JMP (1L<<13) /* instruction is a branch */ -#define FLAG_JSR (1L<<14) /* subroutine call. must be aligned */ -#define FLAG_MEM (1L<<15) /* reads/writes memory */ -#define FLAG_NOT_WITH_ADDSUBppp (1L<<16) /* Old meaning: a 2 word 4 byter operation - New meaning: operation cannot be - combined in parallel with ADD/SUBppp. */ -#define FLAG_MUL16 (1L<<17) /* 16 bit multiply */ -#define FLAG_MUL32 (1L<<18) /* 32 bit multiply */ -#define FLAG_ADDSUBppp (1L<<19) /* ADDppp or SUBppp */ -#define FLAG_DELAY (1L<<20) /* This is a delayed branch or jump */ -#define FLAG_LKR (1L<<21) /* insn in left slot kills right slot */ -#define FLAG_CVVA (FLAG_5|FLAG_6|FLAG_7) -#define FLAG_C FLAG_7 -#define FLAG_ALL (FLAG_0 | \ - FLAG_1 | \ - FLAG_2 | \ - FLAG_3 | \ - FLAG_4 | \ - FLAG_5 | \ - FLAG_6 | \ - FLAG_7 | \ - FLAG_SM | \ - FLAG_RP | \ - FLAG_CONTROL) - - int reloc_flag; -#define RELOC_PCREL 1 -#define RELOC_ABS 2 -}; - -extern const struct d30v_opcode d30v_opcode_table[]; -extern const int d30v_num_opcodes; - -/* The operands table is an array of struct d30v_operand. */ -struct d30v_operand -{ - /* the length of the field */ - int length; - - /* The number of significant bits in the operand. */ - int bits; - - /* position relative to Ra */ - int position; - - /* syntax flags. */ - long flags; -}; -extern const struct d30v_operand d30v_operand_table[]; - -/* Values defined for the flags field of a struct d30v_operand. */ - -/* this is the destination register; it will be modified */ -/* this is used by the optimizer */ -#define OPERAND_DEST (1) - -/* number or symbol */ -#define OPERAND_NUM (2) - -/* address or label */ -#define OPERAND_ADDR (4) - -/* register */ -#define OPERAND_REG (8) - -/* postincrement + */ -#define OPERAND_PLUS (0x10) - -/* postdecrement - */ -#define OPERAND_MINUS (0x20) - -/* signed number */ -#define OPERAND_SIGNED (0x40) - -/* this operand must be shifted left by 3 */ -#define OPERAND_SHIFT (0x80) - -/* flag register */ -#define OPERAND_FLAG (0x100) - -/* control register */ -#define OPERAND_CONTROL (0x200) - -/* accumulator */ -#define OPERAND_ACC (0x400) - -/* @ */ -#define OPERAND_ATSIGN (0x800) - -/* @( */ -#define OPERAND_ATPAR (0x1000) - -/* predecrement mode '@-sp' */ -#define OPERAND_ATMINUS (0x2000) - -/* this operand changes the instruction name */ -/* for example, CPMcc, CMPUcc */ -#define OPERAND_NAME (0x4000) - -/* fake operand for mvtsys and mvfsys */ -#define OPERAND_SPECIAL (0x8000) - -/* let the optimizer know that two registers are affected */ -#define OPERAND_2REG (0x10000) - -/* This operand is pc-relative. Note that repeati can have two immediate - operands, one of which is pcrel, the other (the IMM6U one) is not. */ -#define OPERAND_PCREL (0x20000) - -/* The format table is an array of struct d30v_format. */ -struct d30v_format -{ - int form; /* SHORT_A, LONG, etc */ - int modifier; /* two bit modifier following opcode */ - unsigned char operands[5]; -}; -extern const struct d30v_format d30v_format_table[]; - - -/* an instruction is defined by an opcode and a format */ -/* for example, "add" has one opcode, but three different */ -/* formats, 2 SHORT_A forms and a LONG form. */ -struct d30v_insn -{ - struct d30v_opcode *op; /* pointer to an entry in the opcode table */ - struct d30v_format *form; /* pointer to an entry in the format table */ - int ecc; /* execution condition code */ -}; - -/* an expressionS only has one register type, so we fake it */ -/* by setting high bits to indicate type */ -#define REGISTER_MASK 0xFF - -#endif /* D30V_H */ diff --git a/include/opcode/dlx.h b/include/opcode/dlx.h deleted file mode 100644 index 54dadd0..0000000 --- a/include/opcode/dlx.h +++ /dev/null @@ -1,283 +0,0 @@ -/* Table of opcodes for the DLX microprocess. - Copyright 2002, 2010 Free Software Foundation, Inc. - - This file is part of GDB and GAS. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. - - Initially created by Kuang Hwa Lin, 2002. */ - -/* Following are the function codes for the Special OP (ALU). */ -#define ALUOP 0x00000000 -#define SPECIALOP 0x00000000 - -#define NOPF 0x00000000 -#define SLLF 0x00000004 -#define SRLF 0x00000006 -#define SRAF 0x00000007 - -#define SEQUF 0x00000010 -#define SNEUF 0x00000011 -#define SLTUF 0x00000012 -#define SGTUF 0x00000013 -#define SLEUF 0x00000014 -#define SGEUF 0x00000015 - -#define ADDF 0x00000020 -#define ADDUF 0x00000021 -#define SUBF 0x00000022 -#define SUBUF 0x00000023 -#define ANDF 0x00000024 -#define ORF 0x00000025 -#define XORF 0x00000026 - -#define SEQF 0x00000028 -#define SNEF 0x00000029 -#define SLTF 0x0000002A -#define SGTF 0x0000002B -#define SLEF 0x0000002C -#define SGEF 0x0000002D - /* Following special functions was not mentioned in the - Hennessy's book but was implemented in the RTL. */ -#define MVTSF 0x00000030 -#define MVFSF 0x00000031 -#define BSWAPF 0x00000032 -#define LUTF 0x00000033 -/* Following special functions was mentioned in the - Hennessy's book but was not implemented in the RTL. */ -#define MULTF 0x00000005 -#define MULTUF 0x00000006 -#define DIVF 0x00000007 -#define DIVUF 0x00000008 - - -/* Following are the rest of the OPcodes: - JOP = (0x002 << 26), JALOP = (0x003 << 26), BEQOP = (0x004 << 26), BNEOP = (0x005 << 26) - ADDIOP = (0x008 << 26), ADDUIOP= (0x009 << 26), SUBIOP = (0x00A << 26), SUBUIOP= (0x00B << 26) - ANDIOP = (0x00C << 26), ORIOP = (0x00D << 26), XORIOP = (0x00E << 26), LHIOP = (0x00F << 26) - RFEOP = (0x010 << 26), TRAPOP = (0x011 << 26), JROP = (0x012 << 26), JALROP = (0x013 << 26) - BREAKOP= (0x014 << 26) - SEQIOP = (0x018 << 26), SNEIOP = (0x019 << 26), SLTIOP = (0x01A << 26), SGTIOP = (0x01B << 26) - SLEIOP = (0x01C << 26), SGEIOP = (0x01D << 26) - LBOP = (0x020 << 26), LHOP = (0x021 << 26), LWOP = (0x023 << 26), LBUOP = (0x024 << 26) - LHUOP = (0x025 << 26), SBOP = (0x028 << 26), SHOP = (0x029 << 26), SWOP = (0x02B << 26) - LSBUOP = (0x026 << 26), LSHU = (0x027 << 26), LSW = (0x02C << 26), - SEQUIOP= (0x030 << 26), SNEUIOP= (0x031 << 26), SLTUIOP= (0x032 << 26), SGTUIOP= (0x033 << 26) - SLEUIOP= (0x034 << 26), SGEUIOP= (0x035 << 26) - SLLIOP = (0x036 << 26), SRLIOP = (0x037 << 26), SRAIOP = (0x038 << 26). */ -#define JOP 0x08000000 -#define JALOP 0x0c000000 -#define BEQOP 0x10000000 -#define BNEOP 0x14000000 - -#define ADDIOP 0x20000000 -#define ADDUIOP 0x24000000 -#define SUBIOP 0x28000000 -#define SUBUIOP 0x2c000000 -#define ANDIOP 0x30000000 -#define ORIOP 0x34000000 -#define XORIOP 0x38000000 -#define LHIOP 0x3c000000 -#define RFEOP 0x40000000 -#define TRAPOP 0x44000000 -#define JROP 0x48000000 -#define JALROP 0x4c000000 -#define BREAKOP 0x50000000 - -#define SEQIOP 0x60000000 -#define SNEIOP 0x64000000 -#define SLTIOP 0x68000000 -#define SGTIOP 0x6c000000 -#define SLEIOP 0x70000000 -#define SGEIOP 0x74000000 - -#define LBOP 0x80000000 -#define LHOP 0x84000000 -#define LWOP 0x8c000000 -#define LBUOP 0x90000000 -#define LHUOP 0x94000000 -#define LDSTBU -#define LDSTHU -#define SBOP 0xa0000000 -#define SHOP 0xa4000000 -#define SWOP 0xac000000 -#define LDST - -#define SEQUIOP 0xc0000000 -#define SNEUIOP 0xc4000000 -#define SLTUIOP 0xc8000000 -#define SGTUIOP 0xcc000000 -#define SLEUIOP 0xd0000000 -#define SGEUIOP 0xd4000000 - -#define SLLIOP 0xd8000000 -#define SRLIOP 0xdc000000 -#define SRAIOP 0xe0000000 - -/* Following 3 ops was added to provide the MP atonmic operation. */ -#define LSBUOP 0x98000000 -#define LSHUOP 0x9c000000 -#define LSWOP 0xb0000000 - -/* Following opcode was defined in the Hennessy's book as - "normal" opcode but was implemented in the RTL as special - functions. */ -#if 0 -#define MVTSOP 0x50000000 -#define MVFSOP 0x54000000 -#endif - -struct dlx_opcode -{ - /* Name of the instruction. */ - char *name; - - /* Opcode word. */ - unsigned long opcode; - - /* A string of characters which describe the operands. - Valid characters are: - , Itself. The character appears in the assembly code. - a rs1 The register number is in bits 21-25 of the instruction. - b rs2/rd The register number is in bits 16-20 of the instruction. - c rd. The register number is in bits 11-15 of the instruction. - f FUNC bits 0-10 of the instruction. - i An immediate operand is in bits 0-16 of the instruction. 0 extended - I An immediate operand is in bits 0-16 of the instruction. sign extended - d An 16 bit PC relative displacement. - D An immediate operand is in bits 0-25 of the instruction. - N No opperands needed, for nops. - P it can be a register or a 16 bit operand. */ - char *args; -}; - -static const struct dlx_opcode dlx_opcodes[] = - { - /* Arithmetic and Logic R-TYPE instructions. */ - { "nop", (ALUOP|NOPF), "N" }, /* NOP */ - { "add", (ALUOP|ADDF), "c,a,b" }, /* Add */ - { "addu", (ALUOP|ADDUF), "c,a,b" }, /* Add Unsigned */ - { "sub", (ALUOP|SUBF), "c,a,b" }, /* SUB */ - { "subu", (ALUOP|SUBUF), "c,a,b" }, /* Sub Unsigned */ - { "mult", (ALUOP|MULTF), "c,a,b" }, /* MULTIPLY */ - { "multu", (ALUOP|MULTUF), "c,a,b" }, /* MULTIPLY Unsigned */ - { "div", (ALUOP|DIVF), "c,a,b" }, /* DIVIDE */ - { "divu", (ALUOP|DIVUF), "c,a,b" }, /* DIVIDE Unsigned */ - { "and", (ALUOP|ANDF), "c,a,b" }, /* AND */ - { "or", (ALUOP|ORF), "c,a,b" }, /* OR */ - { "xor", (ALUOP|XORF), "c,a,b" }, /* Exclusive OR */ - { "sll", (ALUOP|SLLF), "c,a,b" }, /* SHIFT LEFT LOGICAL */ - { "sra", (ALUOP|SRAF), "c,a,b" }, /* SHIFT RIGHT ARITHMETIC */ - { "srl", (ALUOP|SRLF), "c,a,b" }, /* SHIFT RIGHT LOGICAL */ - { "seq", (ALUOP|SEQF), "c,a,b" }, /* Set if equal */ - { "sne", (ALUOP|SNEF), "c,a,b" }, /* Set if not equal */ - { "slt", (ALUOP|SLTF), "c,a,b" }, /* Set if less */ - { "sgt", (ALUOP|SGTF), "c,a,b" }, /* Set if greater */ - { "sle", (ALUOP|SLEF), "c,a,b" }, /* Set if less or equal */ - { "sge", (ALUOP|SGEF), "c,a,b" }, /* Set if greater or equal */ - { "sequ", (ALUOP|SEQUF), "c,a,b" }, /* Set if equal unsigned */ - { "sneu", (ALUOP|SNEUF), "c,a,b" }, /* Set if not equal unsigned */ - { "sltu", (ALUOP|SLTUF), "c,a,b" }, /* Set if less unsigned */ - { "sgtu", (ALUOP|SGTUF), "c,a,b" }, /* Set if greater unsigned */ - { "sleu", (ALUOP|SLEUF), "c,a,b" }, /* Set if less or equal unsigned*/ - { "sgeu", (ALUOP|SGEUF), "c,a,b" }, /* Set if greater or equal */ - { "mvts", (ALUOP|MVTSF), "c,a" }, /* Move to special register */ - { "mvfs", (ALUOP|MVFSF), "c,a" }, /* Move from special register */ - { "bswap", (ALUOP|BSWAPF), "c,a,b" }, /* ??? Was not documented */ - { "lut", (ALUOP|LUTF), "c,a,b" }, /* ????? same as above */ - - /* Arithmetic and Logical Immediate I-TYPE instructions. */ - { "addi", ADDIOP, "b,a,I" }, /* Add Immediate */ - { "addui", ADDUIOP, "b,a,i" }, /* Add Usigned Immediate */ - { "subi", SUBIOP, "b,a,I" }, /* Sub Immediate */ - { "subui", SUBUIOP, "b,a,i" }, /* Sub Unsigned Immedated */ - { "andi", ANDIOP, "b,a,i" }, /* AND Immediate */ - { "ori", ORIOP, "b,a,i" }, /* OR Immediate */ - { "xori", XORIOP, "b,a,i" }, /* Exclusive OR Immediate */ - { "slli", SLLIOP, "b,a,i" }, /* SHIFT LEFT LOCICAL Immediate */ - { "srai", SRAIOP, "b,a,i" }, /* SHIFT RIGHT ARITH. Immediate */ - { "srli", SRLIOP, "b,a,i" }, /* SHIFT RIGHT LOGICAL Immediate*/ - { "seqi", SEQIOP, "b,a,i" }, /* Set if equal */ - { "snei", SNEIOP, "b,a,i" }, /* Set if not equal */ - { "slti", SLTIOP, "b,a,i" }, /* Set if less */ - { "sgti", SGTIOP, "b,a,i" }, /* Set if greater */ - { "slei", SLEIOP, "b,a,i" }, /* Set if less or equal */ - { "sgei", SGEIOP, "b,a,i" }, /* Set if greater or equal */ - { "sequi", SEQUIOP, "b,a,i" }, /* Set if equal */ - { "sneui", SNEUIOP, "b,a,i" }, /* Set if not equal */ - { "sltui", SLTUIOP, "b,a,i" }, /* Set if less */ - { "sgtui", SGTUIOP, "b,a,i" }, /* Set if greater */ - { "sleui", SLEUIOP, "b,a,i" }, /* Set if less or equal */ - { "sgeui", SGEUIOP, "b,a,i" }, /* Set if greater or equal */ - /* Macros for I type instructions. */ - { "mov", ADDIOP, "b,P" }, /* a move macro */ - { "movu", ADDUIOP, "b,P" }, /* a move macro, unsigned */ - -#if 0 - /* Move special. */ - { "mvts", MVTSOP, "b,a" }, /* Move From Integer to Special */ - { "mvfs", MVFSOP, "b,a" }, /* Move From Special to Integer */ -#endif - - /* Load high Immediate I-TYPE instruction. */ - { "lhi", LHIOP, "b,i" }, /* Load High Immediate */ - { "lui", LHIOP, "b,i" }, /* Load High Immediate */ - { "sethi", LHIOP, "b,i" }, /* Load High Immediate */ - - /* LOAD/STORE BYTE 8 bits I-TYPE. */ - { "lb", LBOP, "b,a,I" }, /* Load Byte */ - { "lbu", LBUOP, "b,a,I" }, /* Load Byte Unsigned */ - { "ldstbu", LSBUOP, "b,a,I" }, /* Load store Byte Unsigned */ - { "sb", SBOP, "b,a,I" }, /* Store Byte */ - - /* LOAD/STORE HALFWORD 16 bits. */ - { "lh", LHOP, "b,a,I" }, /* Load Halfword */ - { "lhu", LHUOP, "b,a,I" }, /* Load Halfword Unsigned */ - { "ldsthu", LSHUOP, "b,a,I" }, /* Load Store Halfword Unsigned */ - { "sh", SHOP, "b,a,I" }, /* Store Halfword */ - - /* LOAD/STORE WORD 32 bits. */ - { "lw", LWOP, "b,a,I" }, /* Load Word */ - { "sw", SWOP, "b,a,I" }, /* Store Word */ - { "ldstw", LSWOP, "b,a,I" }, /* Load Store Word */ - - /* Branch PC-relative, 16 bits offset. */ - { "beqz", BEQOP, "a,d" }, /* Branch if a == 0 */ - { "bnez", BNEOP, "a,d" }, /* Branch if a != 0 */ - { "beq", BEQOP, "a,d" }, /* Branch if a == 0 */ - { "bne", BNEOP, "a,d" }, /* Branch if a != 0 */ - - /* Jumps Trap and RFE J-TYPE. */ - { "j", JOP, "D" }, /* Jump, PC-relative 26 bits */ - { "jal", JALOP, "D" }, /* JAL, PC-relative 26 bits */ - { "break", BREAKOP, "D" }, /* break to OS */ - { "trap" , TRAPOP, "D" }, /* TRAP to OS */ - { "rfe", RFEOP, "N" }, /* Return From Exception */ - /* Macros. */ - { "call", JOP, "D" }, /* Jump, PC-relative 26 bits */ - - /* Jumps Trap and RFE I-TYPE. */ - { "jr", JROP, "a" }, /* Jump Register, Abs (32 bits) */ - { "jalr", JALROP, "a" }, /* JALR, Abs (32 bits) */ - /* Macros. */ - { "retr", JROP, "a" }, /* Jump Register, Abs (32 bits) */ - - { "", 0x0, "" } /* Dummy entry, not included in NUM_OPCODES. - This lets code examine entry i + 1 without - checking if we've run off the end of the table. */ - }; - -const unsigned int num_dlx_opcodes = (((sizeof dlx_opcodes) / (sizeof dlx_opcodes[0])) - 1); diff --git a/include/opcode/h8300.h b/include/opcode/h8300.h deleted file mode 100644 index 3296deb..0000000 --- a/include/opcode/h8300.h +++ /dev/null @@ -1,1892 +0,0 @@ -/* Opcode table for the H8/300 - Copyright 1991-2013 Free Software Foundation, Inc. - Written by Steve Chamberlain . - - This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -/* Instructions are stored as a sequence of nibbles. - If the nibble has value 15 or less than the representation is complete. - Otherwise, we record what it contains with several flags. */ - -typedef int op_type; - -enum h8_flags -{ - L_2 = 0x10, - L_3 = 0x20, - /* 3 bit constant, zero not accepted. */ - L_3NZ = 0x30, - L_4 = 0x40, - L_5 = 0x50, - L_8 = 0x60, - L_8U = 0x70, - L_16 = 0x80, - L_16U = 0x90, - L_24 = 0xA0, - L_32 = 0xB0, - L_P = 0xC0, - - /* Mask to isolate the L_x size bits. */ - SIZE = 0xF0, - - REG = 0x0100, - ABS = 0x0200, - MEMIND = 0x0300, - IMM = 0x0400, - DISP = 0x0500, - IND = 0x0600, - POSTINC = 0x0700, - POSTDEC = 0x0800, - PREINC = 0x0900, - PREDEC = 0x0A00, - PCREL = 0x0B00, - KBIT = 0x0C00, - DBIT = 0x0D00, - CONST_2 = 0x0E00, - CONST_4 = 0x0F00, - CONST_8 = 0x1000, - CONST_16 = 0x1100, - INDEXB = 0x1200, - INDEXW = 0x1300, - INDEXL = 0x1400, - PCIDXB = 0x1500, - PCIDXW = 0x1600, - PCIDXL = 0x1700, - VECIND = 0x1800, - LOWREG = 0x1900, - DATA = 0x2000, - - /* Synonyms. */ - INC = POSTINC, - DEC = PREDEC, - /* Control Registers. */ - CCR = 0x4000, - EXR = 0x4100, - MACH = 0x4200, - MACL = 0x4300, - RESERV1 = 0x4400, - RESERV2 = 0x4500, - VBR = 0x4600, - SBR = 0x4700, - MACREG = 0x4800, - CCR_EXR = 0x4900, - VBR_SBR = 0x4A00, - CC_EX_VB_SB = 0x4B00, - RESERV3 = 0x4C00, - RESERV4 = 0x4D00, - RESERV5 = 0x4E00, - RESERV6 = 0x4F00, - - /* Mask to isolate the addressing mode bits (REG .. PREDEC). */ - MODE = 0x7F00, - - CTRL = 0x4000, - - NO_SYMBOLS = 0x8000, - SRC = 0x10000, - DST = 0x20000, - OP3 = 0x40000, - MEMRELAX = 0x80000, /* Move insn which may relax. */ - - DISPREG = 0x100000, - IGNORE = 0x200000, - ABSJMP = 0x400000, - - B00 = 0x800000, /* Bit 0 must be low. */ - B01 = 0x1000000, /* Bit 0 must be high. */ - B10 = 0x2000000, /* Bit 1 must be low. */ - B11 = 0x4000000, /* Bit 1 must be high. */ - B20 = 0x8000000, /* Bit 2 must be low. */ - B21 = 0x10000000, /* Bit 2 must be high. */ - B30 = 0x20000000, /* Bit 3 must be low. */ - B31 = 0x40000000, /* Bit 3 must be high. */ - E = 0x80000000, /* End of nibble sequence. */ - - /* Immediates smaller than 8 bits are always unsigned. */ - IMM3 = IMM | L_3, - IMM4 = IMM | L_4, - IMM5 = IMM | L_5, - IMM3NZ = IMM | L_3NZ, - IMM2 = IMM | L_2, - - IMM8 = IMM | SRC | L_8, - IMM8U = IMM | SRC | L_8U, - IMM16 = IMM | SRC | L_16, - IMM16U = IMM | SRC | L_16U, - IMM32 = IMM | SRC | L_32, - - IMM3NZ_NS = IMM3NZ | NO_SYMBOLS, - IMM4_NS = IMM4 | NO_SYMBOLS, - IMM8U_NS = IMM8U | NO_SYMBOLS, - IMM16U_NS = IMM16U | NO_SYMBOLS, - - RD8 = DST | L_8 | REG, - RD16 = DST | L_16 | REG, - RD32 = DST | L_32 | REG, - R3_8 = OP3 | L_8 | REG, - R3_16 = OP3 | L_16 | REG, - R3_32 = OP3 | L_32 | REG, - RS8 = SRC | L_8 | REG, - RS16 = SRC | L_16 | REG, - RS32 = SRC | L_32 | REG, - - RSP = SRC | L_P | REG, - RDP = DST | L_P | REG, - - PCREL8 = PCREL | L_8, - PCREL16 = PCREL | L_16, - - OP3PCREL8 = OP3 | PCREL | L_8, - OP3PCREL16 = OP3 | PCREL | L_16, - - INDEXB16 = INDEXB | L_16, - INDEXW16 = INDEXW | L_16, - INDEXL16 = INDEXL | L_16, - INDEXB16D = INDEXB | L_16 | DST, - INDEXW16D = INDEXW | L_16 | DST, - INDEXL16D = INDEXL | L_16 | DST, - - INDEXB32 = INDEXB | L_32, - INDEXW32 = INDEXW | L_32, - INDEXL32 = INDEXL | L_32, - INDEXB32D = INDEXB | L_32 | DST, - INDEXW32D = INDEXW | L_32 | DST, - INDEXL32D = INDEXL | L_32 | DST, - - DISP2SRC = DISP | L_2 | SRC, - DISP16SRC = DISP | L_16 | SRC, - DISP32SRC = DISP | L_32 | SRC, - - DISP2DST = DISP | L_2 | DST, - DISP16DST = DISP | L_16 | DST, - DISP32DST = DISP | L_32 | DST, - - DSTDISPREG = DST | DISPREG, - SRCDISPREG = SRC | DISPREG, - - ABS8SRC = SRC | ABS | L_8, - ABS16SRC = SRC | ABS | L_16U, - ABS24SRC = SRC | ABS | L_24, - ABS32SRC = SRC | ABS | L_32, - - ABS8DST = DST | ABS | L_8, - ABS16DST = DST | ABS | L_16U, - ABS24DST = DST | ABS | L_24, - ABS32DST = DST | ABS | L_32, - - ABS8OP3 = OP3 | ABS | L_8, - ABS16OP3 = OP3 | ABS | L_16U, - ABS24OP3 = OP3 | ABS | L_24, - ABS32OP3 = OP3 | ABS | L_32, - - RDDEC = DST | DEC, - RSINC = SRC | INC, - RDINC = DST | INC, - - RSPOSTINC = SRC | POSTINC, - RDPOSTINC = DST | POSTINC, - RSPREINC = SRC | PREINC, - RDPREINC = DST | PREINC, - RSPOSTDEC = SRC | POSTDEC, - RDPOSTDEC = DST | POSTDEC, - RSPREDEC = SRC | PREDEC, - RDPREDEC = DST | PREDEC, - - RSIND = SRC | IND, - RDIND = DST | IND, - R3_IND = OP3 | IND, - -#define MS32 (SRC | L_32 | MACREG) -#define MD32 (DST | L_32 | MACREG) - -#if 1 - OR8 = RS8, /* ??? OR as in One Register. */ - OR16 = RS16, - OR32 = RS32, -#else - OR8 = RD8, - OR16 = RD16, - OR32 = RD32 -#endif -}; - -enum ctrlreg -{ - C_CCR = 0, - C_EXR = 1, - C_MACH = 2, - C_MACL = 3, - C_VBR = 6, - C_SBR = 7 -}; - -enum {MAX_CODE_NIBBLES = 33}; - -struct code -{ - op_type nib[MAX_CODE_NIBBLES]; -}; - -struct arg -{ - op_type nib[3]; -}; - -/* Availability of instructions on processor models. */ -enum h8_model -{ - AV_H8, - AV_H8H, - AV_H8S, - AV_H8SX -}; - -struct h8_opcode -{ - int how; - enum h8_model available; - int time; - char *name; - struct arg args; - struct code data; -}; - -#ifdef DEFINE_TABLE - -#define DATA2 DATA, DATA -#define DATA3 DATA, DATA, DATA -#define DATA5 DATA, DATA, DATA, DATA, DATA -#define DATA7 DATA, DATA, DATA, DATA, DATA, DATA, DATA - -#define IMM8LIST IMM8, DATA -#define IMM16LIST IMM16, DATA3 -#define IMM16ULIST IMM16U, DATA3 -#define IMM24LIST IMM24, DATA5 -#define IMM32LIST IMM32, DATA7 - -#define DISP16LIST DISP | L_16, DATA3 -#define DISP24LIST DISP | L_24, DATA5 -#define DISP32LIST DISP | L_32, DATA7 - -#define ABS8LIST ABS | L_8, DATA -#define ABS16LIST ABS | L_16U, DATA3 -#define ABS24LIST ABS | L_24, DATA5 -#define ABS32LIST ABS | L_32, DATA7 - -#define DSTABS8LIST DST | ABS | L_8, DATA -#define DSTABS16LIST DST | ABS | L_16U, DATA3 -#define DSTABS24LIST DST | ABS | L_24, DATA5 -#define DSTABS32LIST DST | ABS | L_32, DATA7 - -#define OP3ABS8LIST OP3 | ABS | L_8, DATA -#define OP3ABS16LIST OP3 | ABS | L_16, DATA3 -#define OP3ABS24LIST OP3 | ABS | L_24, DATA5 -#define OP3ABS32LIST OP3 | ABS | L_32, DATA7 - -#define DSTDISP16LIST DST | DISP | L_16, DATA3 -#define DSTDISP24LIST DST | DISP | L_24, DATA5 -#define DSTDISP32LIST DST | DISP | L_32, DATA7 - -#define A16LIST L_16, DATA3 -#define A24LIST L_24, DATA5 -#define A32LIST L_32, DATA7 - -/* Extended Operand Prefixes: */ - -#define PREFIX_010 0x0, 0x1, 0x0 -#define PREFIX_015 0x0, 0x1, 0x5 -#define PREFIX_017 0x0, 0x1, 0x7 - -#define PREFIX_0100 0x0, 0x1, 0x0, 0x0 -#define PREFIX_010_D2 0x0, 0x1, 0x0, B30 | B21 | DISP2SRC -#define PREFIX_0101 0x0, 0x1, 0x0, 0x1 -#define PREFIX_0102 0x0, 0x1, 0x0, 0x2 -#define PREFIX_0103 0x0, 0x1, 0x0, 0x3 -#define PREFIX_0104 0x0, 0x1, 0x0, 0x4 -#define PREFIX_0105 0x0, 0x1, 0x0, 0x5 -#define PREFIX_0106 0x0, 0x1, 0x0, 0x6 -#define PREFIX_0107 0x0, 0x1, 0x0, 0x7 -#define PREFIX_0108 0x0, 0x1, 0x0, 0x8 -#define PREFIX_0109 0x0, 0x1, 0x0, 0x9 -#define PREFIX_010A 0x0, 0x1, 0x0, 0xa -#define PREFIX_010D 0x0, 0x1, 0x0, 0xd -#define PREFIX_010E 0x0, 0x1, 0x0, 0xe - -#define PREFIX_0150 0x0, 0x1, 0x5, 0x0 -#define PREFIX_015_D2 0x0, 0x1, 0x5, B30 | B21 | DISP2SRC -#define PREFIX_0151 0x0, 0x1, 0x5, 0x1 -#define PREFIX_0152 0x0, 0x1, 0x5, 0x2 -#define PREFIX_0153 0x0, 0x1, 0x5, 0x3 -#define PREFIX_0154 0x0, 0x1, 0x5, 0x4 -#define PREFIX_0155 0x0, 0x1, 0x5, 0x5 -#define PREFIX_0156 0x0, 0x1, 0x5, 0x6 -#define PREFIX_0157 0x0, 0x1, 0x5, 0x7 -#define PREFIX_0158 0x0, 0x1, 0x5, 0x8 -#define PREFIX_0159 0x0, 0x1, 0x5, 0x9 -#define PREFIX_015A 0x0, 0x1, 0x5, 0xa -#define PREFIX_015D 0x0, 0x1, 0x5, 0xd -#define PREFIX_015E 0x0, 0x1, 0x5, 0xe -#define PREFIX_015F 0x0, 0x1, 0x5, 0xf - -#define PREFIX_0170 0x0, 0x1, 0x7, 0x0 -#define PREFIX_017_D2S 0x0, 0x1, 0x7, B30 | B21 | DISP2SRC -#define PREFIX_017_D2D 0x0, 0x1, 0x7, B30 | B21 | DISP2DST -#define PREFIX_0171 0x0, 0x1, 0x7, 0x1 -#define PREFIX_0172 0x0, 0x1, 0x7, 0x2 -#define PREFIX_0173 0x0, 0x1, 0x7, 0x3 -#define PREFIX_0174 0x0, 0x1, 0x7, 0x4 -#define PREFIX_0175 0x0, 0x1, 0x7, 0x5 -#define PREFIX_0176 0x0, 0x1, 0x7, 0x6 -#define PREFIX_0177 0x0, 0x1, 0x7, 0x7 -#define PREFIX_0178 0x0, 0x1, 0x7, 0x8 -#define PREFIX_0179 0x0, 0x1, 0x7, 0x9 -#define PREFIX_017A 0x0, 0x1, 0x7, 0xa -#define PREFIX_017D 0x0, 0x1, 0x7, 0xd -#define PREFIX_017E 0x0, 0x1, 0x7, 0xe -#define PREFIX_017F 0x0, 0x1, 0x7, 0xf - -#define PREFIX_6A15 0x6, 0xa, 0x1, 0x5 -#define PREFIX_6A35 0x6, 0xa, 0x3, 0x5 -#define PREFIX_6B15 0x6, 0xb, 0x1, 0x5 -#define PREFIX_6B35 0x6, 0xb, 0x3, 0x5 - -#define PREFIX_78R4 0x7, 0x8, B31 | DISPREG, 0x4 -#define PREFIX_78R5 0x7, 0x8, B31 | DISPREG, 0x5 -#define PREFIX_78R6 0x7, 0x8, B31 | DISPREG, 0x6 -#define PREFIX_78R7 0x7, 0x8, B31 | DISPREG, 0x7 - -#define PREFIX_78R4W 0x7, 0x8, B30 | DISPREG, 0x4 -#define PREFIX_78R5W 0x7, 0x8, B30 | DISPREG, 0x5 -#define PREFIX_78R6W 0x7, 0x8, B30 | DISPREG, 0x6 -#define PREFIX_78R7W 0x7, 0x8, B30 | DISPREG, 0x7 - -#define PREFIX_78R4WD 0x7, 0x8, B30 | DSTDISPREG, 0x4 -#define PREFIX_78R5WD 0x7, 0x8, B30 | DSTDISPREG, 0x5 -#define PREFIX_78R6WD 0x7, 0x8, B30 | DSTDISPREG, 0x6 -#define PREFIX_78R7WD 0x7, 0x8, B30 | DSTDISPREG, 0x7 - -#define PREFIX_7974 0x7, 0x9, 0x7, 0x4 -#define PREFIX_7A74 0x7, 0xa, 0x7, 0x4 -#define PREFIX_7A7C 0x7, 0xa, 0x7, 0xc - - -/* Source standard fragment: */ -#define FROM_IND 0, RSIND -#define FROM_POSTINC 8, RSPOSTINC -#define FROM_POSTDEC 10, RSPOSTDEC -#define FROM_PREINC 9, RSPREINC -#define FROM_PREDEC 11, RSPREDEC -#define FROM_DISP2 B30 | B20 | DISP2SRC, DISPREG -#define FROM_DISP16 12, B30 | DISPREG -#define FROM_DISP32 12, B31 | DISPREG -#define FROM_DISP16B 13, B30 | DISPREG -#define FROM_DISP16W 14, B30 | DISPREG -#define FROM_DISP16L 15, B30 | DISPREG -#define FROM_DISP32B 13, B31 | DISPREG -#define FROM_DISP32W 14, B31 | DISPREG -#define FROM_DISP32L 15, B31 | DISPREG -#define FROM_ABS16 4, B30 | IGNORE -#define FROM_ABS32 4, B31 | IGNORE - -/* Destination standard fragment: */ -#define TO_IND 0, RDIND -#define TO_IND_MOV 0, RDIND | B30 -#define TO_POSTINC 8, RDPOSTINC -#define TO_POSTINC_MOV 8, RDPOSTINC | B30 -#define TO_POSTDEC 10, RDPOSTDEC -#define TO_POSTDEC_MOV 10, RDPOSTDEC | B30 -#define TO_PREINC 9, RDPREINC -#define TO_PREINC_MOV 9, RDPREINC | B30 -#define TO_PREDEC 11, RDPREDEC -#define TO_PREDEC_MOV 11, RDPREDEC | B30 -#define TO_DISP2 B30 | B20 | DISP2DST, DSTDISPREG -#define TO_DISP2_MOV B30 | B20 | DISP2DST, DSTDISPREG | B30 -#define TO_DISP16 12, B30 | DSTDISPREG -#define TO_DISP32 12, B31 | DSTDISPREG -#define TO_DISP16B 13, B30 | DSTDISPREG -#define TO_DISP16W 14, B30 | DSTDISPREG -#define TO_DISP16L 15, B30 | DSTDISPREG -#define TO_DISP32B 13, B31 | DSTDISPREG -#define TO_DISP32W 14, B31 | DSTDISPREG -#define TO_DISP32L 15, B31 | DSTDISPREG -#define TO_ABS16 4, B30 | IGNORE -#define TO_ABS32 4, B31 | IGNORE - -/* Source fragment for three-word instruction: */ -#define TFROM_IND 6, 9, B30 | RSIND, 12 -#define TFROM_DISP2 6, 9, B30 | DISPREG, 12 -#define TFROM_ABS16 6, 11, B30 | B20 | B10 | IGNORE, 12, ABS16LIST -#define TFROM_ABS32 6, 11, B30 | B20 | B11 | IGNORE, 12, ABS32LIST -#define TFROM_POSTINC 6, 13, B30 | RSPOSTINC, 12 -#define TFROM_PREINC 6, 13, B30 | RSPREINC, 12 -#define TFROM_POSTDEC 6, 13, B30 | RSPOSTDEC, 12 -#define TFROM_PREDEC 6, 13, B30 | RSPREDEC, 12 -#define TFROM_DISP16 6, 15, B30 | DISPREG, 12, DISP16LIST -#define TFROM_DISP32 6, 11, 2, 12, DISP32LIST -#define TFROM_DISP16B 6, 15, B30 | DISPREG, 12, DISP16LIST -#define TFROM_DISP16W 6, 15, B30 | DISPREG, 12, DISP16LIST -#define TFROM_DISP16L 6, 15, B30 | DISPREG, 12, DISP16LIST -#define TFROM_DISP32B 6, 11, 2, 12, DISP32LIST -#define TFROM_DISP32W 6, 11, 2, 12, DISP32LIST -#define TFROM_DISP32L 6, 11, 2, 12, DISP32LIST -#define TFROM_ABS16W 6, 11, 1, 12, ABS16LIST -#define TFROM_ABS32W 6, 11, 3, 12, ABS32LIST - -/* Source fragment for three-word instruction: */ -#define TFROM_IND_B 6, 8, B30 | RSIND, 12 -#define TFROM_ABS16_B 6, 10, B30 | B20 | B10 | IGNORE, 12, ABS16LIST -#define TFROM_ABS32_B 6, 10, B30 | B20 | B11 | IGNORE, 12, ABS32LIST - -#define TFROM_DISP2_B 6, 8, B30 | DISPREG, 12 -#define TFROM_POSTINC_B 6, 12, B30 | RSPOSTINC, 12 -#define TFROM_PREINC_B 6, 12, B30 | RSPREINC, 12 -#define TFROM_POSTDEC_B 6, 12, B30 | RSPOSTDEC, 12 -#define TFROM_PREDEC_B 6, 12, B30 | RSPREDEC, 12 -#define TFROM_DISP16_B 6, 14, B30 | DISPREG, 12, DISP16LIST -#define TFROM_DISP32_B 6, 10, 2, 12, DISP32LIST -#define TFROM_DISP16B_B 6, 14, B30 | DISPREG, 12, DISP16LIST -#define TFROM_DISP16W_B 6, 14, B30 | DISPREG, 12, DISP16LIST -#define TFROM_DISP16L_B 6, 14, B30 | DISPREG, 12, DISP16LIST -#define TFROM_DISP32B_B 6, 10, 2, 12, DISP32LIST -#define TFROM_DISP32W_B 6, 10, 2, 12, DISP32LIST -#define TFROM_DISP32L_B 6, 10, 2, 12, DISP32LIST - -#define TFROM_ABS16W_B 6, 10, 1, 12, ABS16LIST -#define TFROM_ABS32W_B 6, 10, 3, 12, ABS32LIST - -/* Extended Operand Class Expanders: */ - -#define MOVFROM_STD(CODE, PREFIX, NAME, SRC, SRC_INFIX) \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, SRC_INFIX, TO_IND_MOV, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, SRC_INFIX, TO_POSTINC_MOV, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, SRC_INFIX, TO_POSTDEC_MOV, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, SRC_INFIX, TO_PREINC_MOV, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, SRC_INFIX, TO_PREDEC_MOV, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP2_MOV, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP16, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP32, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16B, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16W, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16L, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32B, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32W, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32L, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, SRC_INFIX, TO_ABS16, DSTABS16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, SRC_INFIX, TO_ABS32, DSTABS32LIST, E}}} - -#define MOVFROM_AD(CODE, PREFIX, NAME, SRC, SRC_INFIX, SRC_SUFFIX) \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, SRC_INFIX, TO_IND_MOV, SRC_SUFFIX, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, SRC_INFIX, TO_POSTINC_MOV, SRC_SUFFIX, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, SRC_INFIX, TO_POSTDEC_MOV, SRC_SUFFIX, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, SRC_INFIX, TO_PREINC_MOV, SRC_SUFFIX, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, SRC_INFIX, TO_PREDEC_MOV, SRC_SUFFIX, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP2_MOV, SRC_SUFFIX, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP16, SRC_SUFFIX, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP32, SRC_SUFFIX, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16B, SRC_SUFFIX, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16W, SRC_SUFFIX, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16L, SRC_SUFFIX, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32B, SRC_SUFFIX, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32W, SRC_SUFFIX, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32L, SRC_SUFFIX, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, SRC_INFIX, TO_ABS16, SRC_SUFFIX, DSTABS16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, SRC_INFIX, TO_ABS32, SRC_SUFFIX, DSTABS32LIST, E}}} - -#define MOVFROM_IMM8(CODE, PREFIX, NAME, SRC) \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, 0, RDIND, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, 8, RDPOSTINC, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, 10, RDPOSTDEC, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, 9, RDPREINC, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, 11, RDPREDEC, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, B30 | B20 | DISP2DST, DSTDISPREG, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, 12, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, 12, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, 13, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, 14, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, 15, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, 13, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, 14, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, 15, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, 4, B30 | IGNORE, IMM8LIST, DSTABS16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, 4, B31 | IGNORE, IMM8LIST, DSTABS32LIST, E}}} - -#define MOVFROM_IMM(CODE, PREFIX, NAME, SRC, LIST) \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, LIST, 0, RDIND, DATA2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, LIST, 8, RDPOSTINC, DATA2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, LIST, 10, RDPOSTDEC, DATA2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, LIST, 9, RDPREINC, DATA2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, LIST, 11, RDPREDEC, DATA2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, LIST, B30 | B20 | DISP2DST, DSTDISPREG, DATA2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, LIST, 12, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, LIST, 12, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, LIST, 13, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, LIST, 14, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, LIST, 15, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, LIST, 13, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, LIST, 14, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, LIST, 15, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, LIST, 4, B30 | IGNORE, DATA2, DSTABS16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, LIST, 4, B31 | IGNORE, DATA2, DSTABS32LIST, E}}} - -#define MOVFROM_REG_BW(CODE, NAME, SRC, PREFIX, OP1, OP2, OP3, OP4, RELAX16) \ - {CODE, AV_H8, 4, NAME, {{SRC, RDIND, E}}, {{ 6, OP1, B31 | RDIND, SRC, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, 3, 6, OP3, B31 | RDPOSTINC, SRC, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, 1, 6, OP3, B31 | RDPOSTDEC, SRC, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, 2, 6, OP3, B31 | RDPREINC, SRC, E}}}, \ - {CODE, AV_H8, 6, NAME, {{SRC, RDPREDEC, E}}, {{ 6, OP3, B31 | RDPREDEC, SRC, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, B30 | B20 | DISP2DST, 6, OP1, B31 | DSTDISPREG, SRC, E}}}, \ - {CODE, AV_H8, 6, NAME, {{SRC, DISP16DST, E}}, {{ 6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8, 6, NAME, {{SRC, DISP32DST, E}}, {{7, 8, B30 | DSTDISPREG, 0, 6, OP2, 10, SRC, MEMRELAX | DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, 1, 6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, 2, 6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, 3, 6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{7, 8, B30 | DSTDISPREG, 1, 6, OP2, 10, SRC, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{7, 8, B30 | DSTDISPREG, 2, 6, OP2, 10, SRC, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{7, 8, B30 | DSTDISPREG, 3, 6, OP2, 10, SRC, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8, 4, NAME, {{SRC, ABS16DST, E}}, {{ 6, OP2, 8, SRC, RELAX16 | DSTABS16LIST, E}}}, \ - {CODE, AV_H8, 6, NAME, {{SRC, ABS32DST, E}}, {{ 6, OP2, 10, SRC, MEMRELAX | DSTABS32LIST, E}}} - -#define MOVTO_REG_BW(CODE, NAME, DST, PREFIX, OP1, OP2, OP3, OP4, RELAX16) \ - {CODE, AV_H8, 4, NAME, {{RSIND, DST, E}}, {{ 6, OP1, B30 | RSIND, DST, E}}}, \ - {CODE, AV_H8, 6, NAME, {{RSPOSTINC, DST, E}}, {{ 6, OP3, B30 | RSPOSTINC, DST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, DST, E}}, {{PREFIX, 2, 6, OP3, B30 | RSPOSTDEC, DST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPREINC, DST, E}}, {{PREFIX, 1, 6, OP3, B30 | RSPREINC, DST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, DST, E}}, {{PREFIX, 3, 6, OP3, B30 | RSPREDEC, DST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, DST, E}}, {{PREFIX, B30 | B20 | DISP2SRC, 6, OP1, B30 | DISPREG, DST, E}}}, \ - {CODE, AV_H8, 6, NAME, {{DISP16SRC, DST, E}}, {{ 6, OP4, B30 | DISPREG, DST, DISP16LIST, E}}}, \ - {CODE, AV_H8, 6, NAME, {{DISP32SRC, DST, E}}, {{7, 8, B30 | DISPREG, 0, 6, OP2, 2, DST, MEMRELAX | DISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXB16, DST, E}}, {{PREFIX, 1, 6, OP4, B30 | DISPREG, DST, DISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXW16, DST, E}}, {{PREFIX, 2, 6, OP4, B30 | DISPREG, DST, DISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXL16, DST, E}}, {{PREFIX, 3, 6, OP4, B30 | DISPREG, DST, DISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXB32, DST, E}}, {{7, 8, B30 | DISPREG, 1, 6, OP2, 2, DST, DISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXW32, DST, E}}, {{7, 8, B30 | DISPREG, 2, 6, OP2, 2, DST, DISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXL32, DST, E}}, {{7, 8, B30 | DISPREG, 3, 6, OP2, 2, DST, DISP32LIST, E}}}, \ - {CODE, AV_H8, 4, NAME, {{ABS16SRC, DST, E}}, {{ 6, OP2, 0, DST, RELAX16 | ABS16LIST, E}}}, \ - {CODE, AV_H8, 6, NAME, {{ABS32SRC, DST, E}}, {{ 6, OP2, 2, DST, MEMRELAX | ABS32LIST, E}}} - -/* Expansion macros for two-word (plus data) instructions. */ - -/* Expansion from one source to "standard" destinations. */ -#define EXPAND2_STD_SRC(CODE, WEIGHT, NAME, SRC, PREFIX, NIB1, NIB2) \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, TO_POSTINC, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, TO_POSTDEC, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, TO_PREINC, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, TO_PREDEC, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, TO_DISP2, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, TO_DISP16, NIB1, NIB2, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, TO_DISP32, NIB1, NIB2, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, TO_DISP16B, NIB1, NIB2, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, TO_DISP16W, NIB1, NIB2, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, TO_DISP16L, NIB1, NIB2, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, TO_DISP32B, NIB1, NIB2, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, TO_DISP32W, NIB1, NIB2, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, TO_DISP32L, NIB1, NIB2, DSTDISP32LIST, E}}} - -/* Expansion from one destination to "standard" sources. */ -#define EXPAND2_STD_DST(CODE, WEIGHT, NAME, DST, PREFIX, NIB1, NIB2) \ - {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, DST, E}}, {{PREFIX, FROM_POSTINC, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, DST, E}}, {{PREFIX, FROM_POSTDEC, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPREINC, DST, E}}, {{PREFIX, FROM_PREINC, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, DST, E}}, {{PREFIX, FROM_PREDEC, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, DST, E}}, {{PREFIX, FROM_DISP2, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, DST, E}}, {{PREFIX, FROM_DISP16, NIB1, NIB2, DISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, DST, E}}, {{PREFIX, FROM_DISP32, NIB1, NIB2, DISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXB16, DST, E}}, {{PREFIX, FROM_DISP16B, NIB1, NIB2, DISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXW16, DST, E}}, {{PREFIX, FROM_DISP16W, NIB1, NIB2, DISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXL16, DST, E}}, {{PREFIX, FROM_DISP16L, NIB1, NIB2, DISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXB32, DST, E}}, {{PREFIX, FROM_DISP32B, NIB1, NIB2, DISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXW32, DST, E}}, {{PREFIX, FROM_DISP32W, NIB1, NIB2, DISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXL32, DST, E}}, {{PREFIX, FROM_DISP32L, NIB1, NIB2, DISP32LIST, E}}} - -/* Expansion from immediate source to "standard" destinations. */ -#define EXPAND2_STD_IMM(CODE, WEIGHT, NAME, SRC, PREFIX, OPCODE, IGN, IMMLIST) \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, TO_POSTINC, OPCODE, IGN, IMMLIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, TO_POSTDEC, OPCODE, IGN, IMMLIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, TO_PREINC, OPCODE, IGN, IMMLIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, TO_PREDEC, OPCODE, IGN, IMMLIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, TO_DISP2, OPCODE, IGN, IMMLIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, TO_DISP16, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, TO_DISP32, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, TO_DISP16B, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, TO_DISP16W, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, TO_DISP16L, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, TO_DISP32B, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, TO_DISP32W, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, TO_DISP32L, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}} - -/* Expansion from abs/disp source to "standard" destinations. */ -#define EXPAND2_STD_ABSDISP(CODE, WEIGHT, NAME, SRC, PREFIX, DSTLIST, NIB1, NIB2) \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, DSTLIST, TO_POSTINC, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, DSTLIST, TO_POSTDEC, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, DSTLIST, TO_PREINC, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, DSTLIST, TO_PREDEC, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, DSTLIST, TO_DISP2, NIB1, NIB2, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, DSTLIST, TO_DISP16, NIB1, NIB2, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, DSTLIST, TO_DISP32, NIB1, NIB2, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, DSTLIST, TO_DISP16B, NIB1, NIB2, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, DSTLIST, TO_DISP16W, NIB1, NIB2, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, DSTLIST, TO_DISP16L, NIB1, NIB2, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, DSTLIST, TO_DISP32B, NIB1, NIB2, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, DSTLIST, TO_DISP32W, NIB1, NIB2, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, DSTLIST, TO_DISP32L, NIB1, NIB2, DSTDISP32LIST, E}}} - -/* Expansion from ind source to "standard" destinations. */ -#define EXPAND2_STD_IND(CODE, WEIGHT, NAME, OPCODE, BIT) \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPOSTINC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_POSTINC, OPCODE, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPOSTDEC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_POSTDEC, OPCODE, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPREINC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_PREINC, OPCODE, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPREDEC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_PREDEC, OPCODE, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, DISP2DST, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP2, OPCODE, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, DISP16DST, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, DISP32DST, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32, OPCODE, IGNORE, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXB16D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16B, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXW16D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16W, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXL16D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16L, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXB32D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32B, OPCODE, IGNORE, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXW32D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32W, OPCODE, IGNORE, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXL32D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32L, OPCODE, IGNORE, DSTDISP32LIST, E}}} - -/* Expansion macros for three word (plus data) instructions. */ - -#define EXPAND3_STD_SRC(CODE, WEIGHT, NAME, SRC, PREFIX, INFIX, OPCODE) \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, INFIX, 8, RDPOSTINC, OPCODE, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, INFIX, 10, RDPOSTDEC, OPCODE, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, INFIX, 9, RDPREINC, OPCODE, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, INFIX, 11, RDPREDEC, OPCODE, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, INFIX, B30 | B20 | DISP2DST, DSTDISPREG, OPCODE, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, INFIX, 12, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, INFIX, 12, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, INFIX, 13, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, INFIX, 14, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, INFIX, 15, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, INFIX, 13, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, INFIX, 14, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, INFIX, 15, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}} - -#define EXPAND3_L_SRC(CODE, WEIGHT, NAME, SRC, PREFIX, INFIX, OPCODE) \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, INFIX, 0, RDIND, OPCODE, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, INFIX, 8, RDPOSTINC, OPCODE, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, INFIX, 10, RDPOSTDEC, OPCODE, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, INFIX, 9, RDPREINC, OPCODE, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, INFIX, 11, RDPREDEC, OPCODE, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, INFIX, B30 | B20 | DISP2DST, DSTDISPREG, OPCODE, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, INFIX, 12, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, INFIX, 12, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, INFIX, 13, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, INFIX, 14, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, INFIX, 15, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, INFIX, 13, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, INFIX, 14, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, INFIX, 15, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, INFIX, 4, B30 | IGNORE, OPCODE, B30 | IGNORE, DSTABS16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, INFIX, 4, B31 | IGNORE, OPCODE, B30 | IGNORE, DSTABS32LIST, E}}} - - -#define EXPAND_STD_MATRIX_L(CODE, NAME, OPCODE) \ - EXPAND3_L_SRC (CODE, 6, NAME, RSIND, PREFIX_0104, TFROM_IND, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, RSPOSTINC, PREFIX_0104, TFROM_POSTINC, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, RSPOSTDEC, PREFIX_0106, TFROM_POSTDEC, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, RSPREINC, PREFIX_0105, TFROM_PREINC, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, RSPREDEC, PREFIX_0107, TFROM_PREDEC, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, DISP2SRC, PREFIX_010_D2, TFROM_DISP2, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, DISP16SRC, PREFIX_0104, TFROM_DISP16, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, DISP32SRC, PREFIX_78R4, TFROM_DISP32, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, INDEXB16, PREFIX_0105, TFROM_DISP16B, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, INDEXW16, PREFIX_0106, TFROM_DISP16W, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, INDEXL16, PREFIX_0107, TFROM_DISP16L, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, INDEXB32, PREFIX_78R5, TFROM_DISP32B, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, INDEXW32, PREFIX_78R6, TFROM_DISP32W, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, INDEXL32, PREFIX_78R7, TFROM_DISP32L, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, ABS16SRC, PREFIX_0104, TFROM_ABS16, OPCODE), \ - EXPAND3_L_SRC (CODE, 6, NAME, ABS32SRC, PREFIX_0104, TFROM_ABS32, OPCODE) - - -#define EXPAND_STD_MATRIX_W(CODE, NAME, OPCODE) \ - EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTINC, PREFIX_0154, TFROM_POSTINC, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTDEC, PREFIX_0156, TFROM_POSTDEC, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, RSPREINC, PREFIX_0155, TFROM_PREINC, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, RSPREDEC, PREFIX_0157, TFROM_PREDEC, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, DISP2SRC, PREFIX_015_D2, TFROM_DISP2, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, DISP16SRC, PREFIX_0154, TFROM_DISP16, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, DISP32SRC, PREFIX_78R4W, TFROM_DISP32, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, INDEXB16, PREFIX_0155, TFROM_DISP16B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, INDEXW16, PREFIX_0156, TFROM_DISP16W, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, INDEXL16, PREFIX_0157, TFROM_DISP16L, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, INDEXB32, PREFIX_78R5W, TFROM_DISP32B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, INDEXW32, PREFIX_78R6W, TFROM_DISP32W, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, INDEXL32, PREFIX_78R7W, TFROM_DISP32L, OPCODE) - -#define EXPAND_STD_MATRIX_B(CODE, NAME, OPCODE) \ - EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTINC, PREFIX_0174, TFROM_POSTINC_B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTDEC, PREFIX_0176, TFROM_POSTDEC_B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, RSPREINC, PREFIX_0175, TFROM_PREINC_B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, RSPREDEC, PREFIX_0177, TFROM_PREDEC_B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, DISP2SRC, PREFIX_017_D2S, TFROM_DISP2_B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, DISP16SRC, PREFIX_0174, TFROM_DISP16_B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, DISP32SRC, PREFIX_78R4W, TFROM_DISP32_B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, INDEXB16, PREFIX_0175, TFROM_DISP16B_B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, INDEXW16, PREFIX_0176, TFROM_DISP16W_B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, INDEXL16, PREFIX_0177, TFROM_DISP16L_B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, INDEXB32, PREFIX_78R5W, TFROM_DISP32B_B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, INDEXW32, PREFIX_78R6W, TFROM_DISP32W_B, OPCODE), \ - EXPAND3_L_SRC (CODE, 4, NAME, INDEXL32, PREFIX_78R7W, TFROM_DISP32L_B, OPCODE) - - -/* Use the expansion macros to fill out the opcode table. */ - -#define EXPAND_FROM_REG8(CODE, NAME, OP1, OP2, OP3) \ - {CODE, AV_H8SX, 0, NAME, {{RS8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, OP1, OP2, RS8, IGNORE, E}}}, \ - EXPAND2_STD_SRC (CODE, 2, NAME, RS8, PREFIX_0179, OP3, RS8), \ - {CODE, AV_H8SX, 0, NAME, {{RS8, ABS8DST, E}}, {{0x7, 0xf, DSTABS8LIST, OP1, OP2, RS8, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RS8, ABS16DST, E}}, {{0x6, 0xa, 0x1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, RS8, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RS8, ABS32DST, E}}, {{0x6, 0xa, 0x3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, RS8, IGNORE, E}}} - -#define EXPAND_TO_REG8(CODE, NAME, OP1, OP2, OP3) \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, RD8, E}}, {{0x7, 0xc, B30 | RSIND, IGNORE, OP1, OP2, IGNORE, RD8, E}}}, \ - EXPAND2_STD_DST (CODE, 2, NAME, RD8, PREFIX_017A, OP3, RD8), \ - {CODE, AV_H8SX, 0, NAME, {{ABS8SRC, RD8, E}}, {{0x7, 0xe, ABS8LIST, OP1, OP2, IGNORE, RD8, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RD8, E}}, {{0x6, 0xa, 0x1, B30 | IGNORE, ABS16LIST, OP1, OP2, IGNORE, RD8, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RD8, E}}, {{0x6, 0xa, 0x3, B30 | IGNORE, ABS32LIST, OP1, OP2, IGNORE, RD8, E}}} - -#define EXPAND_FROM_IND8(CODE, NAME, OPCODE) \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, RDIND, E}}, {{0x7, 0xc, B30 | RSIND, 0x5, TO_IND, OPCODE, IGNORE, E}}}, \ - EXPAND2_STD_IND (CODE, 2, NAME, OPCODE, B30), \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS16DST, E}}, {{0x7, 0xc, B30 | RSIND, 0x5, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS32DST, E}}, {{0x7, 0xc, B30 | RSIND, 0x5, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}} - -#define EXPAND_FROM_ABS16_B(CODE, NAME, OPCODE) \ - {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RDIND, E}}, {{PREFIX_6A15, ABS16LIST, TO_IND, OPCODE, IGNORE, E}}}, \ - EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS16SRC, PREFIX_6A15, ABS16LIST, OPCODE, IGNORE), \ - {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS16DST, E}}, {{PREFIX_6A15, ABS16LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS32DST, E}}, {{PREFIX_6A15, ABS16LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}} - -#define EXPAND_FROM_ABS32_B(CODE, NAME, OPCODE) \ - {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RDIND, E}}, {{PREFIX_6A35, ABS32LIST, TO_IND, OPCODE, IGNORE, E}}}, \ - EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS32SRC, PREFIX_6A35, ABS32LIST, OPCODE, IGNORE), \ - {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS16DST, E}}, {{PREFIX_6A35, ABS32LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS32DST, E}}, {{PREFIX_6A35, ABS32LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}} - -#define EXPAND_FROM_IMM16_W(CODE, NAME, OPCODE) \ - {CODE, AV_H8SX, 0, NAME, {{IMM16, RDIND, E}}, {{PREFIX_015E, TO_IND, OPCODE, IGNORE, IMM16LIST, E}}}, \ - EXPAND2_STD_IMM (CODE, 2, NAME, IMM16, PREFIX_015E, OPCODE, IGNORE, IMM16LIST), \ - {CODE, AV_H8SX, 0, NAME, {{IMM16, ABS16DST, E}}, {{PREFIX_015E, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, IMM16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM16, ABS32DST, E}}, {{PREFIX_015E, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, IMM16LIST, E}}} - -#define EXPAND_FROM_REG16(CODE, NAME, OP1, OP2, OP3) \ - {CODE, AV_H8, 2, NAME, {{RS16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, IGNORE, OP1, OP2, RS16, IGNORE, E}}}, \ - EXPAND2_STD_SRC (CODE, 2, NAME, RS16, PREFIX_0159, OP3, RS16), \ - {CODE, AV_H8SX, 0, NAME, {{RS16, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, RS16, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RS16, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, RS16, IGNORE, E}}} - -#define EXPAND_TO_REG16(CODE, NAME, OP1, OP2, OP3) \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, RD16, E}}, {{0x7, 0xc, B31 | RSIND, IGNORE, OP1, OP2, IGNORE, RD16, E}}}, \ - EXPAND2_STD_DST (CODE, 2, NAME, RD16, PREFIX_015A, OP3, RD16), \ - {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RD16, E}}, {{0x6, 0xb, 0x1, B30 | IGNORE, ABS16LIST, OP1, OP2, IGNORE, RD16, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RD16, E}}, {{0x6, 0xb, 0x3, B30 | IGNORE, ABS32LIST, OP1, OP2, IGNORE, RD16, E}}} - -#define EXPAND_FROM_IND16(CODE, NAME, OPCODE) \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, RDIND, E}}, {{0x7, 0xc, B31 | RSIND, 0x5, TO_IND, OPCODE, IGNORE, E}}}, \ - EXPAND2_STD_IND (CODE, 2, NAME, OPCODE, B31), \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS16DST, E}}, {{0x7, 0xc, B31 | RSIND, 0x5, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS32DST, E}}, {{0x7, 0xc, B31 | RSIND, 0x5, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}} - -#define EXPAND_FROM_ABS16_W(CODE, NAME, OPCODE) \ - {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RDIND, E}}, {{PREFIX_6B15, ABS16LIST, TO_IND, OPCODE, IGNORE, E}}}, \ - EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS16SRC, PREFIX_6B15, ABS16LIST, OPCODE, IGNORE), \ - {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS16DST, E}}, {{PREFIX_6B15, ABS16LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS32DST, E}}, {{PREFIX_6B15, ABS16LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}} - -#define EXPAND_FROM_ABS32_W(CODE, NAME, OPCODE) \ - {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RDIND, E}}, {{PREFIX_6B35, ABS32LIST, TO_IND, OPCODE, IGNORE, E}}}, \ - EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS32SRC, PREFIX_6B35, ABS32LIST, OPCODE, IGNORE), \ - {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS16DST, E}}, {{PREFIX_6B35, ABS32LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS32DST, E}}, {{PREFIX_6B35, ABS32LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}} - -#define EXPAND_FROM_IMM16_L(CODE, NAME, OPCODE) \ - {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, RDIND, E}}, {{PREFIX_010E, TO_IND, OPCODE, B30 | IGNORE, IMM16ULIST, E}}}, \ - EXPAND2_STD_IMM (CODE, 2, NAME, IMM16U_NS, PREFIX_010E, OPCODE, B30 | IGNORE, IMM16ULIST), \ - {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, ABS16DST, E}}, {{PREFIX_010E, TO_ABS16, OPCODE, B30 | IGNORE, DSTABS16LIST, IMM16ULIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, ABS32DST, E}}, {{PREFIX_010E, TO_ABS32, OPCODE, B30 | IGNORE, DSTABS32LIST, IMM16ULIST, E}}} - -#define EXPAND_FROM_IMM32_L(CODE, NAME, OPCODE) \ - {CODE, AV_H8SX, 0, NAME, {{IMM32, RDIND, E}}, {{PREFIX_010E, TO_IND, OPCODE, B31 | IGNORE, IMM32LIST, E}}}, \ - EXPAND2_STD_IMM (CODE, 2, NAME, IMM32, PREFIX_010E, OPCODE, B31 | IGNORE, IMM32LIST), \ - {CODE, AV_H8SX, 0, NAME, {{IMM32, ABS16DST, E}}, {{PREFIX_010E, TO_ABS16, OPCODE, B31 | IGNORE, DSTABS16LIST, IMM32LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM32, ABS32DST, E}}, {{PREFIX_010E, TO_ABS32, OPCODE, B31 | IGNORE, DSTABS32LIST, IMM32LIST, E}}} - -#define EXPAND_FROM_REG32(CODE, NAME, OPCODE) \ - {CODE, AV_H8SX, 0, NAME, {{RS32, RDIND, E}}, {{PREFIX_0109, TO_IND, OPCODE, B30 | RS32, E}}}, \ - EXPAND2_STD_SRC (CODE, 2, NAME, RS32, PREFIX_0109, OPCODE, B30 | RS32), \ - {CODE, AV_H8SX, 0, NAME, {{RS32, ABS16DST, E}}, {{PREFIX_0109, TO_ABS16, OPCODE, B30 | RS32, DSTABS16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RS32, ABS32DST, E}}, {{PREFIX_0109, TO_ABS32, OPCODE, B30 | RS32, DSTABS32LIST, E}}} - -#define EXPAND_TO_REG32(CODE, NAME, OPCODE) \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, RD32, E}}, {{PREFIX_010A, FROM_IND, OPCODE, B30 | RD32, E}}}, \ - EXPAND2_STD_DST (CODE, 2, NAME, RD32, PREFIX_010A, OPCODE, B30 | RD32), \ - {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RD32, E}}, {{PREFIX_010A, FROM_ABS16, OPCODE, B30 | RD32, ABS16LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RD32, E}}, {{PREFIX_010A, FROM_ABS32, OPCODE, B30 | RD32, ABS32LIST, E}}} - - -#define EXPAND_TWOOP_B(CODE, NAME, OP1, OP2, OP3, OP4, BIT) \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPOSTINC, E}}, {{PREFIX_0174, 0x6, 0xc, B30 | RDPOSTINC, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPREINC, E}}, {{PREFIX_0175, 0x6, 0xc, B30 | RDPREINC, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPREDEC, E}}, {{PREFIX_0177, 0x6, 0xc, B30 | RDPREDEC, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, DISP2DST, E}}, {{PREFIX_017_D2D, 0x6, 0x8, B30 | DSTDISPREG, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, DISP16DST, E}}, {{PREFIX_0174, 0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, DISP32DST, E}}, {{PREFIX_78R4WD, 0x6, 0xa, 2, B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXB16D, E}}, {{PREFIX_0175, 0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXW16D, E}}, {{PREFIX_0176, 0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXL16D, E}}, {{PREFIX_0177, 0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXB32D, E}}, {{PREFIX_78R5WD, 0x6, 0xa, 2, B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXW32D, E}}, {{PREFIX_78R6WD, 0x6, 0xa, 2, B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXL32D, E}}, {{PREFIX_78R7WD, 0x6, 0xa, 2, B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, ABS8DST, E}}, {{0x7, 0xf, DSTABS8LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, ABS16DST, E}}, {{0x6, 0xa, 0x1, B31 | B20 | IGNORE, DSTABS16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{IMM8, ABS32DST, E}}, {{0x6, 0xa, 0x3, B31 | B20 | IGNORE, DSTABS32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ - {CODE, AV_H8, 2, NAME, {{RS8, RD8, E}}, {{OP2, OP3, RS8, RD8, E}}}, \ - EXPAND_FROM_REG8 (CODE, NAME, OP2, OP3, OP4), \ - EXPAND_TO_REG8 (CODE, NAME, OP2, OP3, OP4), \ - EXPAND_FROM_IND8 (CODE, NAME, OP4), \ - EXPAND_STD_MATRIX_B (CODE, NAME, OP4), \ - EXPAND_FROM_ABS16_B (CODE, NAME, OP4), \ - EXPAND_FROM_ABS32_B (CODE, NAME, OP4) - -#define EXPAND_TWOOP_W(CODE, NAME, OP1, OP2, OP3) \ - {CODE, AV_H8H, 6, NAME, {{IMM16, RD16, E}}, {{0x7, 0x9, OP3, RD16, IMM16LIST, E}}}, \ - EXPAND_FROM_IMM16_W (CODE, NAME, OP3), \ - EXPAND_FROM_REG16 (CODE, NAME, OP1, OP2, OP3), \ - EXPAND_TO_REG16 (CODE, NAME, OP1, OP2, OP3), \ - EXPAND_FROM_IND16 (CODE, NAME, OP3), \ - EXPAND_STD_MATRIX_W (CODE, NAME, OP3), \ - EXPAND_FROM_ABS16_W (CODE, NAME, OP3), \ - EXPAND_FROM_ABS32_W (CODE, NAME, OP3) - -#define EXPAND_TWOOP_L(CODE, NAME, OP1) \ - {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, RD32, E}}, {{0x7, 0xa, OP1, B31 | RD32, IMM16ULIST, E}}}, \ - {CODE, AV_H8H, 6, NAME, {{IMM32, RD32, E}}, {{0x7, 0xa, OP1, B30 | RD32, IMM32LIST, E}}}, \ - EXPAND_FROM_IMM16_L (CODE, NAME, OP1), \ - EXPAND_FROM_IMM32_L (CODE, NAME, OP1), \ - EXPAND_FROM_REG32 (CODE, NAME, OP1), \ - EXPAND_TO_REG32 (CODE, NAME, OP1), \ - EXPAND_STD_MATRIX_L (CODE, NAME, OP1) - - -/* Old expanders: */ - -#define BITOP(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \ - {code, AV_H8, 2, name, {{imm, RD8, E}}, {{op00, op01, imm, RD8, E}}}, \ - {code, AV_H8, 6, name, {{imm, RDIND, E}}, {{op10, op11, B30 | RDIND, 0, op00, op01, imm, 0, E}}}, \ - {code, AV_H8, 6, name, {{imm, ABS8DST, E}}, {{op20, op21, DSTABS8LIST, op00, op01, imm, 0, E}}}, \ - {code, AV_H8S, 6, name, {{imm, ABS16DST, E}}, {{0x6, 0xa, 0x1, op30, DST | MEMRELAX | ABS16LIST , op00, op01, imm, op4, E}}}, \ - {code, AV_H8S, 6, name, {{imm, ABS32DST, E}}, {{0x6, 0xa, 0x3, op30, DST | MEMRELAX | ABS32LIST , op00, op01, imm, op4, E}}} - -#define BITOP_B(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \ - {code, AV_H8SX, 0, name, {{imm, RDIND, E}}, {{op10, op11, B30 | RDIND, 0, op00, op01, imm, op4, E}}}, \ - {code, AV_H8SX, 0, name, {{imm, ABS8DST, E}}, {{op20, op21, DSTABS8LIST, op00, op01, imm, op4, E}}}, \ - {code, AV_H8SX, 0, name, {{imm, ABS16DST, E}}, {{0x6, 0xa, 0x1, op30, DST | ABS16LIST, op00, op01, imm, op4, E}}}, \ - {code, AV_H8SX, 0, name, {{imm, ABS32DST, E}}, {{0x6, 0xa, 0x3, op30, DST | ABS32LIST, op00, op01, imm, op4, E}}} - -#define EBITOP(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \ - BITOP(code, imm, name, op00+1, op01, op10, op11, op20, op21, op30, op4), \ - BITOP(code, RS8, name, op00, op01, op10, op11, op20, op21, op30, op4) - -#define EBITOP_B(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \ - BITOP_B(code, imm, name, op00+1, op01, op10, op11, op20, op21, op30, op4), \ - BITOP_B(code, RS8, name, op00, op01, op10, op11, op20, op21, op30, op4) - -#define WTWOP(code, name, op1, op2) \ - {code, AV_H8, 2, name, {{RS16, RD16, E}}, {{op1, op2, RS16, RD16, E}}} - -#define BRANCH(code, name, op) \ - {code, AV_H8H, 6, name, {{PCREL16, E}}, {{0x5, 0x8, op, 0x0, PCREL16, DATA3 | B00, E}}}, \ - {code, AV_H8, 4, name, {{PCREL8, E}}, {{0x4, op, PCREL8, DATA | B00, E}}} - - -#define UNOP(code, name, op1, op2) \ - {code, AV_H8, 2, name, {{OR8, E}}, {{op1, op2, 0, OR8, E}}} - -#define EXPAND_UNOP_STD_B(CODE, NAME, PREFIX, OP1, OP2, OP3) \ - {CODE, AV_H8, 2, NAME, {{OR8, E}}, {{ OP1, OP2, OP3, OR8, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, E}}, {{ 7, 13, B30 | RSIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, E}}, {{PREFIX, 4, 6, 12, B30 | RSPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, E}}, {{PREFIX, 6, 6, 12, B30 | RSPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPREINC, E}}, {{PREFIX, 5, 6, 12, B30 | RSPREINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, E}}, {{PREFIX, 7, 6, 12, B30 | RSPREDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, E}}, {{PREFIX, B30 | B21 | DISP2SRC, 6, 8, B30 | DISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, E}}, {{PREFIX, 4, 6, 14, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, E}}, {{7, 8, B30 | DISPREG, 4, 6, 10, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXB16, E}}, {{PREFIX, 5, 6, 14, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXW16, E}}, {{PREFIX, 6, 6, 14, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXL16, E}}, {{PREFIX, 7, 6, 14, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXB32, E}}, {{7, 8, B30 | DISPREG, 5, 6, 10, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXW32, E}}, {{7, 8, B30 | DISPREG, 6, 6, 10, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXL32, E}}, {{7, 8, B30 | DISPREG, 7, 6, 10, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS8SRC, E}}, {{ 7, 15, ABS8LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, E}}, {{ 6, 10, 1, B31 | IGNORE, ABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, E}}, {{ 6, 10, 3, B31 | IGNORE, ABS32LIST, OP1, OP2, OP3, IGNORE, E}}} - -#define EXPAND_UNOP_STD_W(CODE, NAME, PREFIX, OP1, OP2, OP3) \ - {CODE, AV_H8H, 2, NAME, {{OR16, E}}, {{ OP1, OP2, OP3, OR16, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, E}}, {{ 7, 13, B31 | RSIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RSPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RSPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPREINC, E}}, {{PREFIX, 5, 6, 13, B30 | RSPREINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, E}}, {{PREFIX, 7, 6, 13, B30 | RSPREDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, E}}, {{PREFIX, B30 | B21 | DISP2SRC, 6, 9, B30 | DISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, E}}, {{PREFIX, 4, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, E}}, {{7, 8, B30 | DISPREG, 4, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXB16, E}}, {{PREFIX, 5, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXW16, E}}, {{PREFIX, 6, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXL16, E}}, {{PREFIX, 7, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXB32, E}}, {{7, 8, B30 | DISPREG, 5, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXW32, E}}, {{7, 8, B30 | DISPREG, 6, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXL32, E}}, {{7, 8, B30 | DISPREG, 7, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, E}}, {{ 6, 11, 1, B31 | IGNORE, ABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, E}}, {{ 6, 11, 3, B31 | IGNORE, ABS32LIST, OP1, OP2, OP3, IGNORE, E}}} - -#define EXPAND_UNOP_STD_L(CODE, NAME, PREFIX, OP1, OP2, OP3) \ - {CODE, AV_H8H, 2, NAME, {{OR32, E}}, {{ OP1, OP2, OP3, B30 | OR32, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSIND, E}}, {{PREFIX, 4, 6, 9, B30 | RSIND, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RSPOSTINC, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RSPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPREINC, E}}, {{PREFIX, 5, 6, 13, B30 | RSPREINC, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, E}}, {{PREFIX, 7, 6, 13, B30 | RSPREDEC, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, E}}, {{PREFIX, B30 | B21 | DISP2SRC, 6, 9, B30 | DISPREG, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, E}}, {{PREFIX, 4, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, E}}, {{7, 8, B31 | DISPREG, 4, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXB16, E}}, {{PREFIX, 5, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXW16, E}}, {{PREFIX, 6, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXL16, E}}, {{PREFIX, 7, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXB32, E}}, {{7, 8, B31 | DISPREG, 5, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXW32, E}}, {{7, 8, B31 | DISPREG, 6, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{INDEXL32, E}}, {{7, 8, B31 | DISPREG, 7, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, E}}, {{PREFIX, 4, 6, 11, 0, B31 | IGNORE, ABS16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, E}}, {{PREFIX, 4, 6, 11, 2, B31 | IGNORE, ABS32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}} - -#define EXPAND_UNOP_EXTENDED_B(CODE, NAME, CONST, PREFIX, OP1, OP2, OP3) \ - {CODE, AV_H8, 2, NAME, {{CONST, RD8, E}}, {{ OP1, OP2, OP3, RD8, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND, E}}, {{ 7, 13, B30 | RDIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 12, B30 | RDPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 12, B30 | RDPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREINC, E}}, {{PREFIX, 5, 6, 12, B30 | RDPREINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREDEC, E}}, {{PREFIX, 7, 6, 12, B30 | RDPREDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, DISP2DST, E}}, {{PREFIX, B30 | B21 | DISP2DST, 6, 8, B30 | DSTDISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, DISP16DST, E}}, {{PREFIX, 4, 6, 14, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, DISP32DST, E}}, {{7, 8, B30 | DSTDISPREG, 4, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB16D, E}}, {{PREFIX, 5, 6, 14, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW16D, E}}, {{PREFIX, 6, 6, 14, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL16D, E}}, {{PREFIX, 7, 6, 14, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB32D, E}}, {{7, 8, B30 | DSTDISPREG, 5, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW32D, E}}, {{7, 8, B30 | DSTDISPREG, 6, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL32D, E}}, {{7, 8, B30 | DSTDISPREG, 7, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, ABS8DST, E}}, {{ 7, 15, DSTABS8LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST, E}}, {{ 6, 10, 1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST, E}}, {{ 6, 10, 3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, OP3, IGNORE, E}}} - -#define EXPAND_UNOP_EXTENDED_W(CODE, NAME, CONST, PREFIX, OP1, OP2, OP3) \ - {CODE, AV_H8, 2, NAME, {{CONST, RD16, E}}, {{ OP1, OP2, OP3, RD16, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND, E}}, {{ 7, 13, B31 | RDIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RDPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RDPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREINC, E}}, {{PREFIX, 5, 6, 13, B30 | RDPREINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREDEC, E}}, {{PREFIX, 7, 6, 13, B30 | RDPREDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, DISP2DST, E}}, {{PREFIX, B30 | B21 | DISP2DST, 6, 9, B30 | DSTDISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, DISP16DST, E}}, {{PREFIX, 4, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, DISP32DST, E}}, {{7, 8, B30 | DSTDISPREG, 4, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB16D, E}}, {{PREFIX, 5, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW16D, E}}, {{PREFIX, 6, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL16D, E}}, {{PREFIX, 7, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB32D, E}}, {{7, 8, B30 | DSTDISPREG, 5, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW32D, E}}, {{7, 8, B30 | DSTDISPREG, 6, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL32D, E}}, {{7, 8, B30 | DSTDISPREG, 7, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST, E}}, {{ 6, 11, 1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST, E}}, {{ 6, 11, 3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, OP3, IGNORE, E}}} - -#define EXPAND_UNOP_EXTENDED_L(CODE, NAME, CONST, PREFIX, OP1, OP2, OP3, BIT) \ - {CODE, AV_H8, 2, NAME, {{CONST, RD32, E}}, {{ OP1, OP2, OP3, BIT | RD32, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND, E}}, {{PREFIX, 4, 6, 9, B30 | RDIND, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RDPOSTINC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RDPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREINC, E}}, {{PREFIX, 5, 6, 13, B30 | RDPREINC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREDEC, E}}, {{PREFIX, 7, 6, 13, B30 | RDPREDEC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, DISP2DST, E}}, {{PREFIX, B30 | B21 | DISP2DST, 6, 9, B30 | DSTDISPREG, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, DISP16DST, E}}, {{PREFIX, 4, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, DISP32DST, E}}, {{7, 8, B31 | DSTDISPREG, 4, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB16D, E}}, {{PREFIX, 5, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW16D, E}}, {{PREFIX, 6, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL16D, E}}, {{PREFIX, 7, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB32D, E}}, {{7, 8, B31 | DSTDISPREG, 5, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW32D, E}}, {{7, 8, B31 | DSTDISPREG, 6, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL32D, E}}, {{7, 8, B31 | DSTDISPREG, 7, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST, E}}, {{PREFIX, 4, 6, 11, 0, B31 | IGNORE, DSTABS16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ - {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST, E}}, {{PREFIX, 4, 6, 11, 2, B31 | IGNORE, DSTABS32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}} - -#define PREFIXLDC 0x0, 0x1, 0x4, B30 | CCR_EXR | DST -#define PREFIXSTC 0x0, 0x1, 0x4, B30 | CCR_EXR | SRC - -#define O(op, size) (op * 4 + size) -#define OP_SIZE(HOW) (HOW % 4) -#define OP_KIND(HOW) (HOW / 4) - -enum h8_asm_codes -{ - O_RECOMPILE = 0, - O_ADD, - O_ADDX, - O_AND, - O_BAND, - O_BRA, - O_BRAB, - O_BRAW, - O_BRAL, - O_BRAS, - O_BRABC, - O_BRABS, - O_BSRBC, - O_BSRBS, - O_BRN, - O_BHI, - O_BLS, - O_BCC, - O_BCS, - O_BNE, - O_BVC, - O_BVS, - O_BPL, - O_BMI, - O_BGE, - O_BLT, - O_BGT, - O_BLE, - O_ANDC, - O_BEQ, - O_BCLR, - O_BCLREQ, - O_BCLRNE, - O_BSETEQ, - O_BSETNE, - O_BFLD, - O_BFST, - O_BIAND, - O_BILD, - O_BIOR, - O_BIXOR, - O_BIST, - O_BISTZ, - O_BLD, - O_BNOT, - O_BOR, - O_BSET, - O_BSR, - O_BXOR, - O_CMP, - O_DAA, - O_DAS, - O_DEC, - O_DIVU, - O_DIVS, - O_DIVXU, - O_DIVXS, - O_INC, - O_LDC, - O_MOV, - O_MOVAB, - O_MOVAW, - O_MOVAL, - O_MOVMD, - O_MOVSD, - O_OR, - O_ROTL, - O_ROTR, - O_ROTXL, - O_ROTXR, - O_BPT, - O_SHAL, - O_SHAR, - O_SHLL, - O_SHLR, - O_SUB, - O_SUBS, - O_TRAPA, - O_XOR, - O_XORC, - O_BST, - O_BSTZ, - O_BTST, - O_EEPMOV, - O_EXTS, - O_EXTU, - O_JMP, - O_JSR, - O_MULU, - O_MULUU, - O_MULS, - O_MULSU, - O_MULXU, - O_MULXS, - O_NOP, - O_NOT, - O_ORC, - O_RTE, - O_RTEL, - O_STC, - O_SUBX, - O_NEG, - O_RTS, - O_RTSL, - O_SLEEP, - O_ILL, - O_ADDS, - O_SYSCALL, - O_TAS, - O_CLRMAC, - O_LDMAC, - O_MAC, - O_LDM, - O_STM, - O_STMAC, - O_LAST, - /* Change made for System Call processing. */ - O_SYS_CREAT, - O_SYS_OPEN, - O_SYS_READ, - O_SYS_WRITE, - O_SYS_LSEEK, - O_SYS_CLOSE, - O_SYS_STAT, - O_SYS_FSTAT, -/* Space reserved for future file I/O system calls. */ - O_SYS_CMDLINE - /* End of System Call specific Changes. */ -}; - -enum h8_size -{ - SB = 0, - SW = 1, - SL = 2, - SN = 3 -}; - - -/* FIXME: Lots of insns have "E, 0, 0, 0, 0" in the nibble code sequences. - Methinks the zeroes aren't necessary. Once confirmed, nuke 'em. */ - -struct h8_opcode h8_opcodes[] = -{ - {O (O_ADD, SB), AV_H8, 2, "add.b", {{IMM8, RD8, E}}, {{0x8, RD8, IMM8LIST, E}}}, - EXPAND_TWOOP_B (O (O_ADD, SB), "add.b", 0x8, 0x0, 0x8, 0x1, 0), - - {O (O_ADD, SW), AV_H8, 6, "add.w", {{RS16, RD16, E}}, {{0x0, 0x9, RS16, RD16, E}}}, - {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, RD16, E}}, {{0x0, 0xa, B30 | IMM3NZ, RD16, E}}}, - {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, IGNORE, 0x0, 0xa, B30 | IMM3NZ, IGNORE, E}}}, - {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, 0x0, 0xa, B30 | IMM3NZ, IGNORE, E}}}, - {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, 0x0, 0xa, B30 | IMM3NZ, IGNORE, E}}}, - EXPAND_TWOOP_W (O (O_ADD, SW), "add.w", 0x0, 0x9, 0x1), - - {O (O_ADD, SL), AV_H8H, 6, "add.l", {{RS32, RD32, E}}, {{0x0, 0xa, B31 | RS32, B30 | RD32, E}}}, - {O (O_ADD, SL), AV_H8SX, 0, "add.l", {{IMM3NZ_NS, RD32, E}}, {{0x0, 0xa, B31 | IMM3NZ, B31 | RD32, E}}}, - EXPAND_TWOOP_L (O (O_ADD, SL), "add.l", 0x1), - - {O (O_ADDS, SL), AV_H8, 2, "adds", {{KBIT, RDP, E}}, {{0x0, 0xB,KBIT, RDP, E}}}, - - {O (O_ADDX, SB), AV_H8, 2, "addx", {{IMM8, RD8, E}}, {{0x9, RD8, IMM8LIST, E}}}, - {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{IMM8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, 0x9, IGNORE, IMM8LIST, E}}}, - {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{IMM8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0x9, IGNORE, IMM8LIST, E}}}, - {O (O_ADDX, SB), AV_H8, 2, "addx", {{RS8, RD8, E}}, {{0x0, 0xe, RS8, RD8, E}}}, - {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RS8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, 0x0, 0xe, RS8, IGNORE, E}}}, - {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RS8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0x0, 0xe, RS8, IGNORE, E}}}, - {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSIND, RD8, E}}, {{0x7, 0xc, B30 | RSIND, IGNORE, 0x0, 0xe, IGNORE, RD8, E}}}, - {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSPOSTDEC, RD8, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, B30 | B20 | IGNORE, 0x0, 0xe, IGNORE, RD8, E}}}, - {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSIND, RDIND, E}}, {{PREFIX_0174, 0x6, 0x8, B30 | RSIND, 0xd, 0x0, RDIND, 0x1, IGNORE, E}}}, - {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x1, IGNORE, E}}}, - - {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{IMM16, RD16, E}}, {{PREFIX_0151, 0x7, 0x9, 0x1, RD16, IMM16LIST, E}}}, - {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{IMM16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x7, 0x9, 0x1, IGNORE, IMM16LIST, E}}}, - {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{IMM16, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0x9, 0x1, IGNORE, IMM16LIST, E}}}, - {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RS16, RD16, E}}, {{PREFIX_0151, 0x0, 0x9, RS16, RD16, E}}}, - {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RS16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x0, 0x9, RS16, IGNORE, E}}}, - {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RS16, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x0, 0x9, RS16, IGNORE, E}}}, - {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSIND, RD16, E}}, {{0x7, 0xc, B31 | RSIND, B01 | IGNORE, 0x0, 0x9, IGNORE, RD16, E}}}, - {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSPOSTDEC, RD16, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x0, 0x9, IGNORE, RD16, E}}}, - {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSIND, RDIND, E}}, {{PREFIX_0154, 0x6, 0x9, B30 | RSIND, 0xd, 0x0, RDIND, 0x1, IGNORE, E}}}, - {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x1, IGNORE, E}}}, - - {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{IMM32, RD32, E}}, {{PREFIX_0101, 0x7, 0xa, 0x1, RD32, IMM32LIST, E}}}, - {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{IMM32, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x1, IGNORE, IMM32LIST, E}}}, - {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{IMM32, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x1, IGNORE, IMM32LIST, E}}}, - {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RS32, RD32, E}}, {{PREFIX_0101, 0x0, 0xa, B31 | RS32, B30 | RD32, E}}}, - {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RS32, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND, B31 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | RS32, B30 | IGNORE, E}}}, - {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RS32, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | RS32, B30 | IGNORE, E}}}, - {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSIND, RD32, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND, B30 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | IGNORE, B30 | RD32, E}}}, - {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSPOSTDEC, RD32, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | IGNORE, B30 | RD32, E}}}, - {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSIND, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND, 0xd, 0x0, RDIND, 0x1, IGNORE, E}}}, - {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x1, IGNORE, E}}}, - - {O (O_AND, SB), AV_H8, 2, "and.b", {{IMM8, RD8, E}}, {{0xe, RD8, IMM8LIST, E}}}, - EXPAND_TWOOP_B (O (O_AND, SB), "and.b", 0xe, 0x1, 0x6, 0x6, 0), - - {O (O_AND, SW), AV_H8, 2, "and.w", {{RS16, RD16, E}}, {{0x6, 0x6, RS16, RD16, E}}}, - EXPAND_TWOOP_W (O (O_AND, SW), "and.w", 0x6, 0x6, 0x6), - - {O (O_AND, SL), AV_H8H, 2, "and.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xF, 0x0, 0x6, 0x6, B30 | RS32, B30 | RD32, E}}}, - EXPAND_TWOOP_L (O (O_AND, SL), "and.l", 0x6), - - {O (O_ANDC, SB), AV_H8, 2, "andc", {{IMM8, CCR | DST, E}}, {{0x0, 0x6, IMM8LIST, E}}}, - {O (O_ANDC, SB), AV_H8S, 2, "andc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x6, IMM8LIST, E}}}, - - BRANCH (O (O_BRA, SB), "bra", 0x0), - - {O (O_BRAB, SB), AV_H8SX, 0, "bra", {{LOWREG | L_8, E}}, {{0x5, 0x9, LOWREG | L_8 | B30, 0x5, E}}}, - {O (O_BRAW, SW), AV_H8SX, 0, "bra", {{LOWREG | L_16, E}}, {{0x5, 0x9, LOWREG | L_16 | B30, 0x6, E}}}, - {O (O_BRAL, SL), AV_H8SX, 0, "bra", {{RS32, E}}, {{0x5, 0x9, RS32 | B30, 0x7, E}}}, - - {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, RDIND, OP3PCREL8}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x4, B30 | IMM3, OP3PCREL8, DATA, E}}}, - {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS8DST, OP3PCREL8}}, {{0x7, 0xE, DSTABS8LIST, 0x4, B30 | IMM3, OP3PCREL8, DATA, E}}}, - {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS16DST, OP3PCREL8}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x4, B30 | IMM3, OP3PCREL8, DATA, E}}}, - {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS32DST, OP3PCREL8}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x4, B30 | IMM3, OP3PCREL8, DATA, E}}}, - {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, RDIND, OP3PCREL8}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x4, B31 | IMM3, OP3PCREL8, DATA, E}}}, - {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS8DST, OP3PCREL8}}, {{0x7, 0xE, DSTABS8LIST, 0x4, B31 | IMM3, OP3PCREL8, DATA, E}}}, - {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS16DST, OP3PCREL8}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x4, B31 | IMM3, OP3PCREL8, DATA, E}}}, - {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS32DST, OP3PCREL8}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x4, B31 | IMM3, OP3PCREL8, DATA, E}}}, - {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, RDIND, OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS8DST, OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, RDIND, OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS8DST, OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - - {O (O_BRAS, SB), AV_H8SX, 0, "bra/s", {{PCREL8, E}}, {{0x4, 0x0, PCREL8, DATA | B01, E}}}, - - {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, RDIND, OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, ABS8DST, OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, RDIND, OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, ABS8DST, OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, - - BRANCH (O (O_BRA, SB), "bt", 0x0), - BRANCH (O (O_BRN, SB), "brn", 0x1), - BRANCH (O (O_BRN, SB), "bf", 0x1), - BRANCH (O (O_BHI, SB), "bhi", 0x2), - BRANCH (O (O_BLS, SB), "bls", 0x3), - BRANCH (O (O_BCC, SB), "bcc", 0x4), - BRANCH (O (O_BCC, SB), "bhs", 0x4), - BRANCH (O (O_BCS, SB), "bcs", 0x5), - BRANCH (O (O_BCS, SB), "blo", 0x5), - BRANCH (O (O_BNE, SB), "bne", 0x6), - BRANCH (O (O_BEQ, SB), "beq", 0x7), - BRANCH (O (O_BVC, SB), "bvc", 0x8), - BRANCH (O (O_BVS, SB), "bvs", 0x9), - BRANCH (O (O_BPL, SB), "bpl", 0xA), - BRANCH (O (O_BMI, SB), "bmi", 0xB), - BRANCH (O (O_BGE, SB), "bge", 0xC), - BRANCH (O (O_BLT, SB), "blt", 0xD), - BRANCH (O (O_BGT, SB), "bgt", 0xE), - BRANCH (O (O_BLE, SB), "ble", 0xF), - - EBITOP (O (O_BCLR, SB), IMM3 | B30, "bclr", 0x6, 0x2, 0x7, 0xD, 0x7, 0xF, 0x8, 0), - BITOP (O (O_BAND, SB), IMM3 | B30, "band", 0x7, 0x6, 0x7, 0xC, 0x7, 0xE, 0x0, 0), - BITOP (O (O_BIAND, SB), IMM3 | B31, "biand", 0x7, 0x6, 0x7, 0xC, 0x7, 0xE, 0x0, 0), - BITOP (O (O_BILD, SB), IMM3 | B31, "bild", 0x7, 0x7, 0x7, 0xC, 0x7, 0xE, 0x0, 0), - BITOP (O (O_BIOR, SB), IMM3 | B31, "bior", 0x7, 0x4, 0x7, 0xC, 0x7, 0xE, 0x0, 0), - BITOP (O (O_BIST, SB), IMM3 | B31, "bist", 0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0), - BITOP (O (O_BIXOR, SB), IMM3 | B31, "bixor", 0x7, 0x5, 0x7, 0xC, 0x7, 0xE, 0x0, 0), - BITOP (O (O_BLD, SB), IMM3 | B30, "bld", 0x7, 0x7, 0x7, 0xC, 0x7, 0xE, 0x0, 0), - EBITOP (O (O_BNOT, SB), IMM3 | B30, "bnot", 0x6, 0x1, 0x7, 0xD, 0x7, 0xF, 0x8, 0), - BITOP (O (O_BOR, SB), IMM3 | B30, "bor", 0x7, 0x4, 0x7, 0xC, 0x7, 0xE, 0x0, 0), - EBITOP (O (O_BSET, SB), IMM3 | B30, "bset", 0x6, 0x0, 0x7, 0xD, 0x7, 0xF, 0x8, 0), - BITOP (O (O_BST, SB), IMM3 | B30, "bst", 0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0), - EBITOP (O (O_BTST, SB), IMM3 | B30, "btst", 0x6, 0x3, 0x7, 0xC, 0x7, 0xE, 0x0, 0), - BITOP (O (O_BXOR, SB), IMM3 | B30, "bxor", 0x7, 0x5, 0x7, 0xC, 0x7, 0xE, 0x0, 0), - - EBITOP_B (O (O_BCLREQ, SB), IMM3 | B30, "bclr/eq", 0x6, 0x2, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7), - EBITOP_B (O (O_BCLRNE, SB), IMM3 | B30, "bclr/ne", 0x6, 0x2, 0x7, 0xD, 0x7, 0xF, 0x8, 0x6), - EBITOP_B (O (O_BSETEQ, SB), IMM3 | B30, "bset/eq", 0x6, 0x0, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7), - EBITOP_B (O (O_BSETNE, SB), IMM3 | B30, "bset/ne", 0x6, 0x0, 0x7, 0xD, 0x7, 0xF, 0x8, 0x6), - BITOP_B (O (O_BISTZ, SB), IMM3 | B31, "bistz", 0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7), - BITOP_B (O (O_BSTZ, SB), IMM3 | B30, "bstz", 0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7), - - {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, RDIND, R3_8}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0xF, R3_8, IMM8LIST, E}}}, - {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, ABS8DST, R3_8}}, {{0x7, 0xE, DSTABS8LIST, 0xF, R3_8, IMM8LIST, E}}}, - {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, ABS16DST, R3_8}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0xF, R3_8, IMM8LIST, E}}}, - {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, ABS32DST, R3_8}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0xF, R3_8, IMM8LIST, E}}}, - - /* Because the assembler treats SRC, DST and OP3 as ordinals, - I must designate the second argument, an immediate value, as DST. - May God have mercy on my soul. */ - {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, R3_IND}}, {{0x7, 0xD, B30 | R3_IND, 0x0, 0xF, RS8, DST | IMM8LIST, E}}}, - {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, ABS8OP3}}, {{0x7, 0xF, OP3ABS8LIST, 0xF, RS8, DST | IMM8LIST, E}}}, - {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, ABS16OP3}}, {{0x6, 0xA, 0x1, 0x8, OP3ABS16LIST, 0xF, RS8, DST | IMM8LIST, E}}}, - {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, ABS32OP3}}, {{0x6, 0xA, 0x3, 0x8, OP3ABS32LIST, 0xF, RS8, DST | IMM8LIST, E}}}, - - {O (O_BSR, SB), AV_H8, 6, "bsr", {{PCREL8, E}}, {{0x5, 0x5, PCREL8, DATA, E}}}, - {O (O_BSR, SB), AV_H8, 6, "bsr", {{PCREL16, E}}, {{0x5, 0xC, 0x0, 0x0, PCREL16, DATA3, E}}}, - {O (O_BSR, SB), AV_H8SX, 0, "bsr", {{LOWREG | L_8, E}}, {{0x5, 0xd, B30 | LOWREG | L_8, 0x5, E}}}, - {O (O_BSR, SW), AV_H8SX, 0, "bsr", {{LOWREG | L_16, E}}, {{0x5, 0xd, B30 | LOWREG | L_16, 0x6, E}}}, - {O (O_BSR, SL), AV_H8SX, 0, "bsr", {{OR32, E}}, {{0x5, 0xd, B30 | OR32, 0x7, E}}}, - - {O (O_CMP, SB), AV_H8, 2, "cmp.b", {{IMM8, RD8, E}}, {{0xa, RD8, IMM8LIST, E}}}, - EXPAND_TWOOP_B (O (O_CMP, SB), "cmp.b", 0xa, 0x1, 0xc, 0x2, B00), - - {O (O_CMP, SW), AV_H8, 2, "cmp.w", {{RS16, RD16, E}}, {{0x1, 0xd, RS16, RD16, E}}}, - {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, RD16, E}}, {{0x1, 0xf, B30 | IMM3NZ, RD16, E}}}, - {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, IGNORE, 0x1, 0xf, B30 | IMM3NZ, IGNORE, E}}}, - {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, 0x1, 0xf, B30 | IMM3NZ, IGNORE, E}}}, - {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, 0x1, 0xf, B30 | IMM3NZ, IGNORE, E}}}, - EXPAND_TWOOP_W (O (O_CMP, SW), "cmp.w", 0x1, 0xd, 0x2), - - {O (O_CMP, SL), AV_H8H, 6, "cmp.l", {{RS32, RD32, E}}, {{0x1, 0xf, B31 | RS32, B30 | RD32, E}}}, - {O (O_CMP, SL), AV_H8SX, 0, "cmp.l", {{IMM3NZ_NS, RD32, E}}, {{0x1, 0xf, B31 | IMM3NZ, B31 | RD32, E}}}, - EXPAND_TWOOP_L (O (O_CMP, SL), "cmp.l", 0x2), - - UNOP (O (O_DAA, SB), "daa", 0x0, 0xF), - UNOP (O (O_DAS, SB), "das", 0x1, 0xF), - UNOP (O (O_DEC, SB), "dec.b", 0x1, 0xA), - - {O (O_DEC, SW), AV_H8H, 2, "dec.w", {{DBIT, RD16, E}}, {{0x1, 0xB, 0x5 | DBIT, RD16, E}}}, - {O (O_DEC, SL), AV_H8H, 2, "dec.l", {{DBIT, RD32, E}}, {{0x1, 0xB, 0x7 | DBIT, RD32 | B30, E}}}, - - {O (O_DIVS, SW), AV_H8SX, 0, "divs.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xd, 0x6, 0x5, 0x1, IMM4, RD16, E}}}, - {O (O_DIVS, SW), AV_H8SX, 0, "divs.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xd, 0x2, 0x5, 0x1, RS16, RD16, E}}}, - {O (O_DIVS, SL), AV_H8SX, 0, "divs.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xd, 0x6, 0x5, 0x3, IMM4, B30 | RD32, E}}}, - {O (O_DIVS, SL), AV_H8SX, 0, "divs.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xd, 0x2, 0x5, 0x3, B30 | RS32, B30 | RD32, E}}}, - - {O (O_DIVU, SW), AV_H8SX, 0, "divu.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xd, 0xe, 0x5, 0x1, IMM4, RD16, E}}}, - {O (O_DIVU, SW), AV_H8SX, 0, "divu.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xd, 0xa, 0x5, 0x1, RS16, RD16, E}}}, - {O (O_DIVU, SL), AV_H8SX, 0, "divu.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xd, 0xe, 0x5, 0x3, IMM4, B30 | RD32, E}}}, - {O (O_DIVU, SL), AV_H8SX, 0, "divu.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xd, 0xa, 0x5, 0x3, B30 | RS32, B30 | RD32, E}}}, - - {O (O_DIVXS, SB), AV_H8SX, 0, "divxs.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xD, 0x4, 0x5, 0x1, IMM4, RD16, E}}}, - {O (O_DIVXS, SB), AV_H8H, 13, "divxs.b", {{RS8, RD16, E}}, {{0x0, 0x1, 0xD, 0x0, 0x5, 0x1, RS8, RD16, E}}}, - {O (O_DIVXS, SW), AV_H8SX, 0, "divxs.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xD, 0x4, 0x5, 0x3, IMM4, B30 | RD32, E}}}, - {O (O_DIVXS, SW), AV_H8H, 21, "divxs.w", {{RS16, RD32, E}}, {{0x0, 0x1, 0xD, 0x0, 0x5, 0x3, RS16, B30 | RD32, E}}}, - - {O (O_DIVXU, SB), AV_H8SX, 0, "divxu.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xD, 0xC, 0x5, 0x1, IMM4, RD16, E}}}, - {O (O_DIVXU, SB), AV_H8, 13, "divxu.b", {{RS8, RD16, E}}, {{0x5, 0x1, RS8, RD16, E}}}, - {O (O_DIVXU, SW), AV_H8SX, 0, "divxu.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xD, 0xC, 0x5, 0x3, IMM4, B30 | RD32, E}}}, - {O (O_DIVXU, SW), AV_H8H, 21, "divxu.w", {{RS16, RD32, E}}, {{0x5, 0x3, RS16, B30 | RD32, E}}}, - - {O (O_EEPMOV, SB), AV_H8, 4, "eepmov.b", {{E}}, {{0x7, 0xB, 0x5, 0xC, 0x5, 0x9, 0x8, 0xF, E}}}, - {O (O_EEPMOV, SW), AV_H8H, 4, "eepmov.w", {{E}}, {{0x7, 0xB, 0xD, 0x4, 0x5, 0x9, 0x8, 0xF, E}}}, - - EXPAND_UNOP_STD_W (O (O_EXTS, SW), "exts.w", PREFIX_015, 0x1, 0x7, 0xd), - EXPAND_UNOP_STD_L (O (O_EXTS, SL), "exts.l", PREFIX_010, 0x1, 0x7, 0xf), - EXPAND_UNOP_EXTENDED_L (O (O_EXTS, SL), "exts.l", CONST_2, PREFIX_010, 0x1, 0x7, 0xe, 0), - EXPAND_UNOP_STD_W (O (O_EXTU, SW), "extu.w", PREFIX_015, 0x1, 0x7, 0x5), - EXPAND_UNOP_STD_L (O (O_EXTU, SL), "extu.l", PREFIX_010, 0x1, 0x7, 0x7), - EXPAND_UNOP_EXTENDED_L (O (O_EXTU, SL), "extu.l", CONST_2, PREFIX_010, 0x1, 0x7, 0x6, 0), - - UNOP (O (O_INC, SB), "inc", 0x0, 0xA), - - {O (O_INC, SW), AV_H8H, 2, "inc.w", {{DBIT, RD16, E}}, {{0x0, 0xB, 0x5 | DBIT, RD16, E}}}, - {O (O_INC, SL), AV_H8H, 2, "inc.l", {{DBIT, RD32, E}}, {{0x0, 0xB, 0x7 | DBIT, RD32 | B30, E}}}, - - {O (O_JMP, SN), AV_H8, 4, "jmp", {{RSIND, E}}, {{0x5, 0x9, B30 | RSIND, 0x0, E}}}, - {O (O_JMP, SN), AV_H8, 6, "jmp", {{ABSJMP | L_24, E}}, {{0x5, 0xA, SRC | ABSJMP | L_24, DATA5, E}}}, - - {O (O_JMP, SN), AV_H8SX, 0, "jmp", {{ABSJMP | L_32, E}}, {{0x5, 0x9, 0x0, 0x8, ABSJMP | L_32, DATA7, E}}}, - - {O (O_JMP, SN), AV_H8, 8, "jmp", {{MEMIND, E}}, {{0x5, 0xB, SRC | MEMIND, DATA, E}}}, - {O (O_JMP, SN), AV_H8SX, 0, "jmp", {{VECIND, E}}, {{0x5, 0x9, B31 | SRC | VECIND, DATA, E}}}, - - {O (O_JSR, SN), AV_H8, 6, "jsr", {{RSIND, E}}, {{0x5, 0xD, B30 | RSIND, 0x0, E}}}, - {O (O_JSR, SN), AV_H8, 8, "jsr", {{ABSJMP | L_24, E}}, {{0x5, 0xE, SRC | ABSJMP | L_24, DATA5, E}}}, - - {O (O_JSR, SN), AV_H8SX, 0, "jsr", {{ABSJMP | L_32, E}}, {{0x5, 0xD, 0x0, 0x8, ABSJMP | L_32, DATA7, E}}}, - - {O (O_JSR, SN), AV_H8, 8, "jsr", {{MEMIND, E}}, {{0x5, 0xF, SRC | MEMIND, DATA, E}}}, - {O (O_JSR, SN), AV_H8SX, 8, "jsr", {{VECIND, E}}, {{0x5, 0xD, SRC | VECIND, DATA, E}}}, - - {O (O_LDC, SB), AV_H8, 2, "ldc", {{IMM8, CCR | DST, E}}, {{ 0x0, 0x7, IMM8LIST, E}}}, - {O (O_LDC, SB), AV_H8S, 2, "ldc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x7, IMM8LIST, E}}}, - {O (O_LDC, SB), AV_H8, 2, "ldc", {{RS8, CCR | DST, E}}, {{0x0, 0x3, B30 | CCR | DST, RS8, E}}}, - {O (O_LDC, SB), AV_H8S, 2, "ldc", {{RS8, EXR | DST, E}}, {{0x0, 0x3, B30 | EXR | DST, RS8, E}}}, - {O (O_LDC, SW), AV_H8H, 2, "ldc", {{RSIND, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0x9, B30 | RSIND, IGNORE, E}}}, - {O (O_LDC, SW), AV_H8S, 2, "ldc", {{RSIND, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0x9, B30 | RSIND, IGNORE, E}}}, - {O (O_LDC, SW), AV_H8H, 2, "ldc", {{RSPOSTINC, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0xD, B30 | RSPOSTINC, IGNORE, E}}}, - {O (O_LDC, SW), AV_H8S, 2, "ldc", {{RSPOSTINC, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0xD, B30 | RSPOSTINC, IGNORE, E}}}, - {O (O_LDC, SW), AV_H8H, 2, "ldc", {{DISP16SRC, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0xF, B30 | DISPREG, IGNORE, SRC | DISP16LIST, E}}}, - {O (O_LDC, SW), AV_H8S, 2, "ldc", {{DISP16SRC, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0xF, B30 | DISPREG, IGNORE, SRC | DISP16LIST, E}}}, - {O (O_LDC, SW), AV_H8H, 2, "ldc", {{DISP32SRC, CCR | DST, E}}, {{PREFIXLDC, 0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xB, 0x2, IGNORE, SRC | DISP32LIST, E}}}, - {O (O_LDC, SW), AV_H8S, 2, "ldc", {{DISP32SRC, EXR | DST, E}}, {{PREFIXLDC, 0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xB, 0x2, IGNORE, SRC | DISP32LIST, E}}}, - {O (O_LDC, SW), AV_H8H, 2, "ldc", {{ABS16SRC, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x0, IGNORE, SRC | ABS16LIST, E}}}, - {O (O_LDC, SW), AV_H8S, 2, "ldc", {{ABS16SRC, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x0, IGNORE, SRC | ABS16LIST, E}}}, - {O (O_LDC, SW), AV_H8H, 2, "ldc", {{ABS32SRC, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x2, IGNORE, SRC | MEMRELAX | ABS32LIST, E}}}, - {O (O_LDC, SW), AV_H8S, 2, "ldc", {{ABS32SRC, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x2, IGNORE, SRC | MEMRELAX | ABS32LIST, E}}}, - - {O (O_LDC, SL), AV_H8SX, 0, "ldc", {{RS32, B30 | VBR_SBR | DST, E}}, {{0x0, 0x3, B30 | VBR_SBR | DST, RS32, E}}}, - - - {O (O_MOV, SB), AV_H8, 2, "mov.b", {{IMM8, RD8, E}}, {{0xF, RD8, IMM8LIST, E}}}, - {O (O_MOV, SB), AV_H8SX, 0, "mov.b", {{IMM4_NS, ABS16DST, E}}, {{0x6, 0xa, 0xd, IMM4, DSTABS16LIST, E}}}, - {O (O_MOV, SB), AV_H8SX, 0, "mov.b", {{IMM4_NS, ABS32DST, E}}, {{0x6, 0xa, 0xf, IMM4, DSTABS32LIST, E}}}, - MOVFROM_IMM8 (O (O_MOV, SB), PREFIX_017D, "mov.b", IMM8), - - {O (O_MOV, SB), AV_H8, 2, "mov.b", {{RS8, RD8, E}}, {{0x0, 0xC, RS8, RD8, E}}}, - MOVFROM_REG_BW (O (O_MOV, SB), "mov.b", RS8, PREFIX_017, 8, 10, 12, 14, MEMRELAX), - {O (O_MOV, SB), AV_H8, 4, "mov.b", {{RS8, ABS8DST, E}}, {{0x3, RS8, DSTABS8LIST, E}}}, - MOVTO_REG_BW (O (O_MOV, SB), "mov.b", RD8, PREFIX_017, 8, 10, 12, 14, MEMRELAX), - {O (O_MOV, SB), AV_H8, 4, "mov.b", {{ABS8SRC, RD8, E}}, {{0x2, RD8, ABS8LIST, E}}}, - - MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSIND, FROM_IND), - MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPOSTINC, FROM_POSTINC), - MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPOSTDEC, FROM_POSTDEC), - MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPREINC, FROM_PREINC), - MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPREDEC, FROM_PREDEC), - MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", DISP2SRC, FROM_DISP2), - MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", DISP16SRC, FROM_DISP16, DISP16LIST), - MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", DISP32SRC, FROM_DISP32, DISP32LIST), - MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXB16, FROM_DISP16B, DISP16LIST), - MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXW16, FROM_DISP16W, DISP16LIST), - MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXL16, FROM_DISP16L, DISP16LIST), - MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXB32, FROM_DISP32B, DISP32LIST), - MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXW32, FROM_DISP32W, DISP32LIST), - MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXL32, FROM_DISP32L, DISP32LIST), - MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", ABS16SRC, FROM_ABS16, ABS16LIST), - MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", ABS32SRC, FROM_ABS32, ABS32LIST), - - {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM3NZ_NS, RD16, E}}, {{0x0, 0xf, B30 | IMM3NZ, RD16, E}}}, - {O (O_MOV, SW), AV_H8, 4, "mov.w", {{IMM16, RD16, E}}, {{0x7, 0x9, 0x0, RD16, IMM16LIST, E}}}, - {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4_NS, ABS16DST, E}}, {{0x6, 0xb, 0xd, IMM4, DSTABS16LIST, E}}}, - {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4_NS, ABS32DST, E}}, {{0x6, 0xb, 0xf, IMM4, DSTABS32LIST, E}}}, - - MOVFROM_IMM8 (O (O_MOV, SW), PREFIX_015D, "mov.w", IMM8U_NS), - MOVFROM_IMM (O (O_MOV, SW), PREFIX_7974, "mov.w", IMM16, IMM16LIST), - - {O (O_MOV, SW), AV_H8, 2, "mov.w", {{RS16, RD16, E}}, {{0x0, 0xD, RS16, RD16, E}}}, - MOVFROM_REG_BW (O (O_MOV, SW), "mov.w", RS16, PREFIX_015, 9, 11, 13, 15, 0), - MOVTO_REG_BW (O (O_MOV, SW), "mov.w", RD16, PREFIX_015, 9, 11, 13, 15, 0), - - MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSIND, FROM_IND), - MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPOSTINC, FROM_POSTINC), - MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPOSTDEC, FROM_POSTDEC), - MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPREINC, FROM_PREINC), - MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPREDEC, FROM_PREDEC), - MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", DISP2SRC, FROM_DISP2), - MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", DISP16SRC, FROM_DISP16, DISP16LIST), - MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", DISP32SRC, FROM_DISP32, DISP32LIST), - MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXB16, FROM_DISP16B, DISP16LIST), - MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXW16, FROM_DISP16W, DISP16LIST), - MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXL16, FROM_DISP16L, DISP16LIST), - MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXB32, FROM_DISP32B, DISP32LIST), - MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXW32, FROM_DISP32W, DISP32LIST), - MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXL32, FROM_DISP32L, DISP32LIST), - MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", ABS16SRC, FROM_ABS16, ABS16LIST), - MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", ABS32SRC, FROM_ABS32, ABS32LIST), - - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{IMM3NZ_NS, RD32, E}}, {{0x0, 0xf, B31 | IMM3NZ, B31 | RD32, E}}}, - - MOVFROM_IMM8 (O (O_MOV, SL), PREFIX_010D, "mov.l", IMM8U_NS), - MOVFROM_IMM (O (O_MOV, SL), PREFIX_7A7C, "mov.l", IMM16U_NS, IMM16ULIST), - - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{IMM16U_NS, RD32, E}}, {{0x7, 0xa, 0x0, B31 | RD32, IMM16ULIST, E}}}, - {O (O_MOV, SL), AV_H8H, 4, "mov.l", {{IMM32, RD32, E}}, {{0x7, 0xa, 0x0, B30 | RD32, IMM32LIST, E}}}, - - MOVFROM_IMM (O (O_MOV, SL), PREFIX_7A74, "mov.l", IMM32, IMM32LIST), - - {O (O_MOV, SL), AV_H8H, 2, "mov.l", {{RS32, RD32, E}}, {{0x0, 0xf, B31 | RS32, B30 | RD32, E}}}, - - {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, RDIND, E}}, {{PREFIX_0100, 0x6, 0x9, B31 | RDIND, B30 | RS32, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, RDPOSTINC, E}}, {{PREFIX_0103, 0x6, 0xd, B31 | RDPOSTINC, RS32, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, RDPOSTDEC, E}}, {{PREFIX_0101, 0x6, 0xd, B31 | RDPOSTDEC, RS32, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, RDPREINC, E}}, {{PREFIX_0102, 0x6, 0xd, B31 | RDPREINC, RS32, E}}}, - {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, RDPREDEC, E}}, {{PREFIX_0100, 0x6, 0xd, B31 | RDPREDEC, RS32, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, DISP2DST, E}}, {{PREFIX_010, B30 | B20 | DISP2DST, 0x6, 0x9, B31 | DSTDISPREG, RS32, E}}}, - {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, DISP16DST, E}}, {{PREFIX_0100, 0x6, 0xf, B31 | DSTDISPREG, RS32, DSTDISP16LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 6, "mov.l", {{RS32, DISP32DST, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x0, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}}, - {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, DISP32DST, E}}, {{PREFIX_0100, 0x7, 0x8, B31 | DSTDISPREG, 0x0, 0x6, 0xb, 0xa, RS32, MEMRELAX | DSTDISP32LIST, E}}}, - {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, DISP32DST, E}}, {{PREFIX_0100, 0x7, 0x8, DSTDISPREG, 0x0, 0x6, 0xb, 0xa, RS32, MEMRELAX | DSTDISP32LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXB16D, E}}, {{PREFIX_0101, 0x6, 0xf, B31 | DSTDISPREG, RS32, DSTDISP16LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXW16D, E}}, {{PREFIX_0102, 0x6, 0xf, B31 | DSTDISPREG, RS32, DSTDISP16LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXL16D, E}}, {{PREFIX_0103, 0x6, 0xf, B31 | DSTDISPREG, RS32, DSTDISP16LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXB32D, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x1, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXW32D, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x2, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXL32D, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x3, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}}, - {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, ABS16DST, E}}, {{PREFIX_0100, 0x6, 0xb, 0x8, RS32, DSTABS16LIST, E}}}, - {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, ABS32DST, E}}, {{PREFIX_0100, 0x6, 0xb, 0xa, RS32, MEMRELAX | DSTABS32LIST, E}}}, - - {O (O_MOV, SL), AV_H8H, 4, "mov.l", {{RSIND, RD32, E}}, {{PREFIX_0100, 0x6, 0x9, B30 | RSIND, RD32, E}}}, - {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RSPOSTINC, RD32, E}}, {{PREFIX_0100, 0x6, 0xd, B30 | RSPOSTINC, RD32, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RSPOSTDEC, RD32, E}}, {{PREFIX_0102, 0x6, 0xd, B30 | RSPOSTDEC, RD32, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RSPREINC, RD32, E}}, {{PREFIX_0101, 0x6, 0xd, B30 | RSPREINC, RD32, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RSPREDEC, RD32, E}}, {{PREFIX_0103, 0x6, 0xd, B30 | RSPREDEC, RD32, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{DISP2SRC, RD32, E}}, {{PREFIX_010, B30 | B20 | DISP2SRC, 0x6, 0x9, B30 | DISPREG, RD32, E}}}, - {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{DISP16SRC, RD32, E}}, {{PREFIX_0100, 0x6, 0xf, B30 | DISPREG, RD32, SRC | DISP16LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 6, "mov.l", {{DISP32SRC, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x0, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}}, - {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{DISP32SRC, RD32, E}}, {{PREFIX_0100, 0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xb, 0x2, RD32, MEMRELAX | SRC | DISP32LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXB16, RD32, E}}, {{PREFIX_0101, 0x6, 0xf, B30 | DISPREG, RD32, SRC | DISP16LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXW16, RD32, E}}, {{PREFIX_0102, 0x6, 0xf, B30 | DISPREG, RD32, SRC | DISP16LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXL16, RD32, E}}, {{PREFIX_0103, 0x6, 0xf, B30 | DISPREG, RD32, SRC | DISP16LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXB32, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x1, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXW32, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x2, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}}, - {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXL32, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x3, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}}, - {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{ABS16SRC, RD32, E}}, {{PREFIX_0100, 0x6, 0xb, 0x0, RD32, SRC | ABS16LIST, E}}}, - {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{ABS32SRC, RD32, E}}, {{PREFIX_0100, 0x6, 0xb, 0x2, RD32, SRC | MEMRELAX | ABS32LIST, E}}}, - - MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSIND, FROM_IND), - MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPOSTINC, FROM_POSTINC), - MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPOSTDEC, FROM_POSTDEC), - MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPREINC, FROM_PREINC), - MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPREDEC, FROM_PREDEC), - MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", DISP2SRC, FROM_DISP2), - MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", DISP16SRC, FROM_DISP16, DISP16LIST), - MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", DISP32SRC, FROM_DISP32, DISP32LIST), - MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXB16, FROM_DISP16B, DISP16LIST), - MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXW16, FROM_DISP16W, DISP16LIST), - MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXL16, FROM_DISP16L, DISP16LIST), - MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXB32, FROM_DISP32B, DISP32LIST), - MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXW32, FROM_DISP32W, DISP32LIST), - MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXL32, FROM_DISP32L, DISP32LIST), - MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", ABS16SRC, FROM_ABS16, ABS16LIST), - MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", ABS32SRC, FROM_ABS32, ABS32LIST), - -#define DO_MOVA1(TYPE, OP0, OP1) \ - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \ - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \ - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \ - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \ - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \ - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \ -\ - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \ - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \ - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \ - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \ - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \ - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B31 | R3_32, MEMRELAX | DISP32LIST, E}}} - -#define DO_MOVA2(TYPE, OP0, OP1, OP2) \ - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \ - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \ - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \ - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \ - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \ - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \ -\ - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \ - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \ - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \ - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \ - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \ - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}} - - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, E}}, {{0x7, 0xA, 0x8, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}}, - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, E}}, {{0x7, 0xA, 0x9, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}}, - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, E}}, {{0x7, 0xA, 0xA, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}}, - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, E}}, {{0x7, 0xA, 0xB, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}}, - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, E}}, {{0x7, 0xA, 0xC, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}}, - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, E}}, {{0x7, 0xA, 0xD, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}}, - - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, E}}, {{0x7, 0xA, 0x8, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}}, - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, E}}, {{0x7, 0xA, 0x9, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}}, - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, E}}, {{0x7, 0xA, 0xA, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}}, - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, E}}, {{0x7, 0xA, 0xB, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}}, - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, E}}, {{0x7, 0xA, 0xC, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}}, - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, E}}, {{0x7, 0xA, 0xD, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}}, - - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0x8, B31 | R3_32, MEMRELAX | DISP16LIST, E}}}, - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0x9, B31 | R3_32, MEMRELAX | DISP16LIST, E}}}, - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0xA, B31 | R3_32, MEMRELAX | DISP16LIST, E}}}, - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xB, B31 | R3_32, MEMRELAX | DISP16LIST, E}}}, - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0xC, B31 | R3_32, MEMRELAX | DISP16LIST, E}}}, - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xD, B31 | R3_32, MEMRELAX | DISP16LIST, E}}}, - - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0x8, B30 | R3_32, MEMRELAX | DISP32LIST, E}}}, - {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0x9, B30 | R3_32, MEMRELAX | DISP32LIST, E}}}, - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0xA, B30 | R3_32, MEMRELAX | DISP32LIST, E}}}, - {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xB, B30 | R3_32, MEMRELAX | DISP32LIST, E}}}, - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0xC, B30 | R3_32, MEMRELAX | DISP32LIST, E}}}, - {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xD, B30 | R3_32, MEMRELAX | DISP32LIST, E}}}, - - DO_MOVA1 (RDIND, 0x0, B30 | RDIND), - DO_MOVA1 (RDPOSTINC, 0x8, B30 | RDPOSTINC), - DO_MOVA1 (RDPOSTDEC, 0xA, B30 | RDPOSTDEC), - DO_MOVA1 (RDPREINC, 0x9, B30 | RDPREINC), - DO_MOVA1 (RDPREDEC, 0xB, B30 | RDPREDEC), - DO_MOVA1 (DISP2DST, B30 | B20 | DISP2DST, B30 | DSTDISPREG), - DO_MOVA2 (DISP16DST, 0xC, B30 | DSTDISPREG, MEMRELAX | DSTDISP16LIST), - DO_MOVA2 (DISP32DST, 0xC, B31 | DSTDISPREG, MEMRELAX | DSTDISP32LIST), - DO_MOVA2 (INDEXB16D, 0xD, B30 | DSTDISPREG, MEMRELAX | DSTDISP16LIST), - DO_MOVA2 (INDEXW16D, 0xE, B30 | DSTDISPREG, MEMRELAX | DSTDISP16LIST), - DO_MOVA2 (INDEXL16D, 0xF, B30 | DSTDISPREG, MEMRELAX | DSTDISP16LIST), - DO_MOVA2 (INDEXB32D, 0xD, B31 | DSTDISPREG, MEMRELAX | DSTDISP32LIST), - DO_MOVA2 (INDEXW32D, 0xE, B31 | DSTDISPREG, MEMRELAX | DSTDISP32LIST), - DO_MOVA2 (INDEXL32D, 0xF, B31 | DSTDISPREG, MEMRELAX | DSTDISP32LIST), - DO_MOVA2 (ABS16DST, 0x4, 0x0, MEMRELAX | DSTABS16LIST), - DO_MOVA2 (ABS32DST, 0x4, 0x8, MEMRELAX | DSTABS32LIST), - - {O (O_MOV, SB), AV_H8, 10, "movfpe", {{ABS16SRC, RD8, E}}, {{0x6, 0xA, 0x4, RD8, ABS16SRC, DATA3, E}}}, - {O (O_MOV, SB), AV_H8, 10, "movtpe", {{RS8, ABS16DST, E}}, {{0x6, 0xA, 0xC, RS8, ABS16DST, DATA3, E}}}, - - {O (O_MOVMD, SB), AV_H8SX, 0, "movmd.b", {{E}}, {{0x7, 0xb, 0x9, 0x4, E}}}, - {O (O_MOVMD, SW), AV_H8SX, 0, "movmd.w", {{E}}, {{0x7, 0xb, 0xa, 0x4, E}}}, - {O (O_MOVMD, SL), AV_H8SX, 0, "movmd.l", {{E}}, {{0x7, 0xb, 0xb, 0x4, E}}}, - {O (O_MOVSD, SB), AV_H8SX, 0, "movsd.b", {{PCREL16, E}}, {{0x7, 0xb, 0x8, 0x4, PCREL16, DATA3, E}}}, - - {O (O_MULS, SW), AV_H8SX, 0, "muls.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0x6, 0x5, 0x0, IMM4, RD16, E}}}, - {O (O_MULS, SW), AV_H8SX, 0, "muls.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xc, 0x2, 0x5, 0x0, RS16, RD16, E}}}, - {O (O_MULS, SL), AV_H8SX, 0, "muls.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0x6, 0x5, 0x2, IMM4, B30 | RD32, E}}}, - {O (O_MULS, SL), AV_H8SX, 0, "muls.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0x2, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}}, - - {O (O_MULU, SW), AV_H8SX, 0, "mulu.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0xe, 0x5, 0x0, IMM4, RD16, E}}}, - {O (O_MULU, SW), AV_H8SX, 0, "mulu.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xc, 0xa, 0x5, 0x0, RS16, RD16, E}}}, - {O (O_MULU, SL), AV_H8SX, 0, "mulu.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0xe, 0x5, 0x2, IMM4, B30 | RD32, E}}}, - {O (O_MULU, SL), AV_H8SX, 0, "mulu.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0xa, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}}, - - {O (O_MULSU, SL), AV_H8SX, 0, "muls/u.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0x7, 0x5, 0x2, IMM4, B30 | RD32, E}}}, - {O (O_MULSU, SL), AV_H8SX, 0, "muls/u.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0x3, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}}, - {O (O_MULUU, SL), AV_H8SX, 0, "mulu/u.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0xf, 0x5, 0x2, IMM4, B30 | RD32, E}}}, - {O (O_MULUU, SL), AV_H8SX, 0, "mulu/u.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0xb, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}}, - - {O (O_MULXS, SB), AV_H8SX, 0, "mulxs.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0x4, 0x5, 0x0, IMM4, RD16, E}}}, - {O (O_MULXS, SB), AV_H8H, 20, "mulxs.b", {{RS8, RD16, E}}, {{0x0, 0x1, 0xc, 0x0, 0x5, 0x0, RS8, RD16, E}}}, - {O (O_MULXS, SW), AV_H8SX, 0, "mulxs.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0x4, 0x5, 0x2, IMM4, B30 | RD32, E}}}, - {O (O_MULXS, SW), AV_H8H, 20, "mulxs.w", {{RS16, RD32, E}}, {{0x0, 0x1, 0xc, 0x0, 0x5, 0x2, RS16, B30 | RD32, E}}}, - - {O (O_MULXU, SB), AV_H8SX, 0, "mulxu.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0xc, 0x5, 0x0, IMM4, RD16, E}}}, - {O (O_MULXU, SB), AV_H8, 14, "mulxu.b", {{RS8, RD16, E}}, {{0x5, 0x0, RS8, RD16, E}}}, - {O (O_MULXU, SW), AV_H8SX, 0, "mulxu.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0xc, 0x5, 0x2, IMM4, B30 | RD32, E}}}, - {O (O_MULXU, SW), AV_H8H, 14, "mulxu.w", {{RS16, RD32, E}}, {{0x5, 0x2, RS16, B30 | RD32, E}}}, - - EXPAND_UNOP_STD_B (O (O_NEG, SB), "neg.b", PREFIX_017, 0x1, 0x7, 0x8), - EXPAND_UNOP_STD_W (O (O_NEG, SW), "neg.w", PREFIX_015, 0x1, 0x7, 0x9), - EXPAND_UNOP_STD_L (O (O_NEG, SL), "neg.l", PREFIX_010, 0x1, 0x7, 0xb), - - {O (O_NOP, SN), AV_H8, 2, "nop", {{E}}, {{0x0, 0x0, 0x0, 0x0, E}}}, - - EXPAND_UNOP_STD_B (O (O_NOT, SB), "not.b", PREFIX_017, 0x1, 0x7, 0x0), - EXPAND_UNOP_STD_W (O (O_NOT, SW), "not.w", PREFIX_015, 0x1, 0x7, 0x1), - EXPAND_UNOP_STD_L (O (O_NOT, SL), "not.l", PREFIX_010, 0x1, 0x7, 0x3), - - {O (O_OR, SB), AV_H8, 2, "or.b", {{IMM8, RD8, E}}, {{0xc, RD8, IMM8LIST, E}}}, - EXPAND_TWOOP_B (O (O_OR, SB), "or.b", 0xc, 0x1, 0x4, 0x4, 0), - - {O (O_OR, SW), AV_H8, 2, "or.w", {{RS16, RD16, E}}, {{0x6, 0x4, RS16, RD16, E}}}, - EXPAND_TWOOP_W (O (O_OR, SW), "or.w", 0x6, 0x4, 0x4), - - {O (O_OR, SL), AV_H8H, 2, "or.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xF, 0x0, 0x6, 0x4, B30 | RS32, B30 | RD32, E}}}, - EXPAND_TWOOP_L (O (O_OR, SL), "or.l", 0x4), - - {O (O_ORC, SB), AV_H8, 2, "orc", {{IMM8, CCR | DST, E}}, {{0x0, 0x4, IMM8LIST, E}}}, - {O (O_ORC, SB), AV_H8S, 2, "orc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x4, IMM8LIST, E}}}, - - {O (O_MOV, SW), AV_H8, 6, "pop.w", {{OR16, E}}, {{0x6, 0xD, 0x7, OR16, E}}}, - {O (O_MOV, SL), AV_H8H, 6, "pop.l", {{OR32, E}}, {{PREFIX_0100, 0x6, 0xD, 0x7, OR32 | B30, E}}}, - {O (O_MOV, SW), AV_H8, 6, "push.w", {{OR16, E}}, {{0x6, 0xD, 0xF, OR16, E}}}, - {O (O_MOV, SL), AV_H8H, 6, "push.l", {{OR32, E}}, {{PREFIX_0100, 0x6, 0xD, 0xF, OR32 | B30, E}}}, - - EXPAND_UNOP_STD_B (O (O_ROTL, SB), "rotl.b", PREFIX_017, 0x1, 0x2, 0x8), - EXPAND_UNOP_EXTENDED_B (O (O_ROTL, SB), "rotl.b", CONST_2, PREFIX_017, 0x1, 0x2, 0xc), - EXPAND_UNOP_STD_W (O (O_ROTL, SW), "rotl.w", PREFIX_015, 0x1, 0x2, 0x9), - EXPAND_UNOP_EXTENDED_W (O (O_ROTL, SW), "rotl.w", CONST_2, PREFIX_015, 0x1, 0x2, 0xd), - EXPAND_UNOP_STD_L (O (O_ROTL, SL), "rotl.l", PREFIX_010, 0x1, 0x2, 0xb), - EXPAND_UNOP_EXTENDED_L (O (O_ROTL, SL), "rotl.l", CONST_2, PREFIX_010, 0x1, 0x2, 0xf, B30), - EXPAND_UNOP_STD_B (O (O_ROTR, SB), "rotr.b", PREFIX_017, 0x1, 0x3, 0x8), - EXPAND_UNOP_EXTENDED_B (O (O_ROTR, SB), "rotr.b", CONST_2, PREFIX_017, 0x1, 0x3, 0xc), - EXPAND_UNOP_STD_W (O (O_ROTR, SW), "rotr.w", PREFIX_015, 0x1, 0x3, 0x9), - EXPAND_UNOP_EXTENDED_W (O (O_ROTR, SW), "rotr.w", CONST_2, PREFIX_015, 0x1, 0x3, 0xd), - EXPAND_UNOP_STD_L (O (O_ROTR, SL), "rotr.l", PREFIX_010, 0x1, 0x3, 0xb), - EXPAND_UNOP_EXTENDED_L (O (O_ROTR, SL), "rotr.l", CONST_2, PREFIX_010, 0x1, 0x3, 0xf, B30), - EXPAND_UNOP_STD_B (O (O_ROTXL, SB), "rotxl.b", PREFIX_017, 0x1, 0x2, 0x0), - EXPAND_UNOP_EXTENDED_B (O (O_ROTXL, SB), "rotxl.b", CONST_2, PREFIX_017, 0x1, 0x2, 0x4), - EXPAND_UNOP_STD_W (O (O_ROTXL, SW), "rotxl.w", PREFIX_015, 0x1, 0x2, 0x1), - EXPAND_UNOP_EXTENDED_W (O (O_ROTXL, SW), "rotxl.w", CONST_2, PREFIX_015, 0x1, 0x2, 0x5), - EXPAND_UNOP_STD_L (O (O_ROTXL, SL), "rotxl.l", PREFIX_010, 0x1, 0x2, 0x3), - EXPAND_UNOP_EXTENDED_L (O (O_ROTXL, SL), "rotxl.l", CONST_2, PREFIX_010, 0x1, 0x2, 0x7, B30), - EXPAND_UNOP_STD_B (O (O_ROTXR, SB), "rotxr.b", PREFIX_017, 0x1, 0x3, 0x0), - EXPAND_UNOP_EXTENDED_B (O (O_ROTXR, SB), "rotxr.b", CONST_2, PREFIX_017, 0x1, 0x3, 0x4), - EXPAND_UNOP_STD_W (O (O_ROTXR, SW), "rotxr.w", PREFIX_015, 0x1, 0x3, 0x1), - EXPAND_UNOP_EXTENDED_W (O (O_ROTXR, SW), "rotxr.w", CONST_2, PREFIX_015, 0x1, 0x3, 0x5), - EXPAND_UNOP_STD_L (O (O_ROTXR, SL), "rotxr.l", PREFIX_010, 0x1, 0x3, 0x3), - EXPAND_UNOP_EXTENDED_L (O (O_ROTXR, SL), "rotxr.l", CONST_2, PREFIX_010, 0x1, 0x3, 0x7, B30), - - - {O (O_BPT, SN), AV_H8, 10, "bpt", {{E}}, {{0x7, 0xA, 0xF, 0xF, E}}}, - {O (O_RTE, SN), AV_H8, 10, "rte", {{E}}, {{0x5, 0x6, 0x7, 0x0, E}}}, - {O (O_RTS, SN), AV_H8, 8, "rts", {{E}}, {{0x5, 0x4, 0x7, 0x0, E}}}, - {O (O_RTEL, SN), AV_H8SX, 0, "rte/l", {{RS32, RD32, E}}, {{0x5, 0x6, RS32 | B30, RD32 | B30, E}}}, - {O (O_RTSL, SN), AV_H8SX, 0, "rts/l", {{RS32, RD32, E}}, {{0x5, 0x4, RS32 | B30, RD32 | B30, E}}}, - - EXPAND_UNOP_STD_B (O (O_SHAL, SB), "shal.b", PREFIX_017, 0x1, 0x0, 0x8), - EXPAND_UNOP_EXTENDED_B (O (O_SHAL, SB), "shal.b", CONST_2, PREFIX_017, 0x1, 0x0, 0xc), - EXPAND_UNOP_STD_W (O (O_SHAL, SW), "shal.w", PREFIX_015, 0x1, 0x0, 0x9), - EXPAND_UNOP_EXTENDED_W (O (O_SHAL, SW), "shal.w", CONST_2, PREFIX_015, 0x1, 0x0, 0xd), - EXPAND_UNOP_STD_L (O (O_SHAL, SL), "shal.l", PREFIX_010, 0x1, 0x0, 0xb), - EXPAND_UNOP_EXTENDED_L (O (O_SHAL, SL), "shal.l", CONST_2, PREFIX_010, 0x1, 0x0, 0xf, B30), - EXPAND_UNOP_STD_B (O (O_SHAR, SB), "shar.b", PREFIX_017, 0x1, 0x1, 0x8), - EXPAND_UNOP_EXTENDED_B (O (O_SHAR, SB), "shar.b", CONST_2, PREFIX_017, 0x1, 0x1, 0xc), - EXPAND_UNOP_STD_W (O (O_SHAR, SW), "shar.w", PREFIX_015, 0x1, 0x1, 0x9), - EXPAND_UNOP_EXTENDED_W (O (O_SHAR, SW), "shar.w", CONST_2, PREFIX_015, 0x1, 0x1, 0xd), - EXPAND_UNOP_STD_L (O (O_SHAR, SL), "shar.l", PREFIX_010, 0x1, 0x1, 0xb), - EXPAND_UNOP_EXTENDED_L (O (O_SHAR, SL), "shar.l", CONST_2, PREFIX_010, 0x1, 0x1, 0xf, B30), - - EXPAND_UNOP_STD_B (O (O_SHLL, SB), "shll.b", PREFIX_017, 0x1, 0x0, 0x0), - - {O (O_SHLL, SB), AV_H8SX, 0, "shll.b", {{RS8, RD8, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x0, 0x0, RD8, E}}}, - - EXPAND_UNOP_EXTENDED_B (O (O_SHLL, SB), "shll.b", CONST_2, PREFIX_017, 0x1, 0x0, 0x4), - EXPAND_UNOP_EXTENDED_B (O (O_SHLL, SB), "shll.b", CONST_4, PREFIX_017, 0x1, 0x0, 0xa), - {O (O_SHLL, SB), AV_H8SX, 0, "shll.b", {{IMM5, RD8, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x0, RD8, E}}}, - - EXPAND_UNOP_STD_W (O (O_SHLL, SW), "shll.w", PREFIX_015, 0x1, 0x0, 0x1), - - {O (O_SHLL, SW), AV_H8SX, 0, "shll.w", {{RS8, RD16, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x0, 0x1, RD16, E}}}, - - EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), "shll.w", CONST_2, PREFIX_015, 0x1, 0x0, 0x5), - EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), "shll.w", CONST_4, PREFIX_015, 0x1, 0x0, 0x2), - EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), "shll.w", CONST_8, PREFIX_015, 0x1, 0x0, 0x6), - {O (O_SHLL, SW), AV_H8SX, 0, "shll.w", {{IMM5, RD16, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x1, RD16, E}}}, - - EXPAND_UNOP_STD_L (O (O_SHLL, SL), "shll.l", PREFIX_010, 0x1, 0x0, 0x3), - - {O (O_SHLL, SL), AV_H8SX, 0, "shll.l", {{RS8, RD32, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x0, 0x3, B30 | RD32, E}}}, - - EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_2, PREFIX_010, 0x1, 0x0, 0x7, B30), - EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_4, PREFIX_010, 0x1, 0x0, 0x3, B31), - EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_8, PREFIX_010, 0x1, 0x0, 0x7, B31), - EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_16, PREFIX_010, 0x1, 0x0, 0xf, B31), - {O (O_SHLL, SL), AV_H8SX, 0, "shll.l", {{IMM5, RD32, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x3, B30 | RD32, E}}}, - - EXPAND_UNOP_STD_B (O (O_SHLR, SB), "shlr.b", PREFIX_017, 0x1, 0x1, 0x0), - - {O (O_SHLR, SB), AV_H8SX, 0, "shlr.b", {{RS8, RD8, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x1, 0x0, RD8, E}}}, - - EXPAND_UNOP_EXTENDED_B (O (O_SHLR, SB), "shlr.b", CONST_2, PREFIX_017, 0x1, 0x1, 0x4), - EXPAND_UNOP_EXTENDED_B (O (O_SHLR, SB), "shlr.b", CONST_4, PREFIX_017, 0x1, 0x1, 0xa), - {O (O_SHLR, SB), AV_H8SX, 0, "shlr.b", {{IMM5, RD8, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x0, RD8, E}}}, - - EXPAND_UNOP_STD_W (O (O_SHLR, SW), "shlr.w", PREFIX_015, 0x1, 0x1, 0x1), - - {O (O_SHLR, SW), AV_H8SX, 0, "shlr.w", {{RS8, RD16, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x1, 0x1, RD16, E}}}, - - EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), "shlr.w", CONST_2, PREFIX_015, 0x1, 0x1, 0x5), - EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), "shlr.w", CONST_4, PREFIX_015, 0x1, 0x1, 0x2), - EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), "shlr.w", CONST_8, PREFIX_015, 0x1, 0x1, 0x6), - {O (O_SHLR, SW), AV_H8SX, 0, "shlr.w", {{IMM5, RD16, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x1, RD16, E}}}, - - EXPAND_UNOP_STD_L (O (O_SHLR, SL), "shlr.l", PREFIX_010, 0x1, 0x1, 0x3), - - {O (O_SHLR, SL), AV_H8SX, 0, "shlr.l", {{RS8, RD32, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x1, 0x3, B30 | RD32, E}}}, - - EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_2, PREFIX_010, 0x1, 0x1, 0x7, B30), - EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_4, PREFIX_010, 0x1, 0x1, 0x3, B31), - EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_8, PREFIX_010, 0x1, 0x1, 0x7, B31), - EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_16, PREFIX_010, 0x1, 0x1, 0xf, B31), - {O (O_SHLR, SL), AV_H8SX, 0, "shlr.l", {{IMM5, RD32, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x3, B30 | RD32, E}}}, - - {O (O_SLEEP, SN), AV_H8, 2, "sleep", {{E}}, {{0x0, 0x1, 0x8, 0x0, E}}}, - - {O (O_STC, SB), AV_H8, 2, "stc", {{CCR | SRC, RD8, E}}, {{0x0, 0x2, B30 | CCR | SRC, RD8, E}}}, - {O (O_STC, SB), AV_H8S, 2, "stc", {{EXR | SRC, RD8, E}}, {{0x0, 0x2, B30 | EXR | SRC, RD8, E}}}, - {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, RDIND, E}}, {{PREFIXSTC, 0x6, 0x9, B31 | RDIND, IGNORE, E}}}, - {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, RDIND, E}}, {{PREFIXSTC, 0x6, 0x9, B31 | RDIND, IGNORE, E}}}, - {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, RDPREDEC, E}}, {{PREFIXSTC, 0x6, 0xD, B31 | RDPREDEC, IGNORE, E}}}, - {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, RDPREDEC, E}}, {{PREFIXSTC, 0x6, 0xD, B31 | RDPREDEC, IGNORE, E}}}, - {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, DISP16DST, E}}, {{PREFIXSTC, 0x6, 0xF, B31 | DSTDISPREG, IGNORE, DSTDISP16LIST, E}}}, - {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, DISP16DST, E}}, {{PREFIXSTC, 0x6, 0xF, B31 | DSTDISPREG, IGNORE, DSTDISP16LIST, E}}}, - {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, DISP32DST, E}}, {{PREFIXSTC, 0x7, 0x8, B30 | DSTDISPREG, 0, 0x6, 0xB, 0xA, IGNORE, DSTDISP32LIST, E}}}, - {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, DISP32DST, E}}, {{PREFIXSTC, 0x7, 0x8, B30 | DSTDISPREG, 0, 0x6, 0xB, 0xA, IGNORE, DSTDISP32LIST, E}}}, - {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, ABS16DST, E}}, {{PREFIXSTC, 0x6, 0xB, 0x8, IGNORE, DST | ABS16LIST, E}}}, - {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, ABS16DST, E}}, {{PREFIXSTC, 0x6, 0xB, 0x8, IGNORE, DST | ABS16LIST, E}}}, - {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, ABS32DST, E}}, {{PREFIXSTC, 0x6, 0xB, 0xA, IGNORE, DST | MEMRELAX | ABS32LIST, E}}}, - {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, ABS32DST, E}}, {{PREFIXSTC, 0x6, 0xB, 0xA, IGNORE, DST | MEMRELAX | ABS32LIST, E}}}, - {O (O_STC, SL), AV_H8SX, 0, "stc", {{B30 | VBR_SBR | SRC, RD32, E}}, {{0x0, 0x2, B30 | VBR_SBR | SRC, RD32, E}}}, - - - EXPAND_TWOOP_B (O (O_SUB, SB), "sub.b", 0xa, 0x1, 0x8, 0x3, B01), - - {O (O_SUB, SW), AV_H8, 2, "sub.w", {{RS16, RD16, E}}, {{0x1, 0x9, RS16, RD16, E}}}, - {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, RD16, E}}, {{0x1, 0xa, B30 | IMM3NZ, RD16, E}}}, - {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, IGNORE, 0x1, 0xa, B30 | IMM3NZ, IGNORE, E}}}, - {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, 0x1, 0xa, B30 | IMM3NZ, IGNORE, E}}}, - {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, 0x1, 0xa, B30 | IMM3NZ, IGNORE, E}}}, - EXPAND_TWOOP_W (O (O_SUB, SW), "sub.w", 0x1, 0x9, 0x3), - - {O (O_SUB, SL), AV_H8H, 6, "sub.l", {{RS32, RD32, E}}, {{0x1, 0xa, B31 | RS32, B30 | RD32, E}}}, - {O (O_SUB, SL), AV_H8SX, 0, "sub.l", {{IMM3NZ_NS, RD32, E}}, {{0x1, 0xa, B31 | IMM3NZ, B31 | RD32, E}}}, - EXPAND_TWOOP_L (O (O_SUB, SL), "sub.l", 0x3), - - {O (O_SUBS, SL), AV_H8, 2, "subs", {{KBIT, RDP, E}}, {{0x1, 0xB,KBIT, RDP, E}}}, - - {O (O_SUBX, SB), AV_H8, 2, "subx", {{IMM8, RD8, E}}, {{0xb, RD8, IMM8LIST, E}}}, - {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{IMM8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, 0xb, IGNORE, IMM8LIST, E}}}, - {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{IMM8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0xb, IGNORE, IMM8LIST, E}}}, - {O (O_SUBX, SB), AV_H8, 2, "subx", {{RS8, RD8, E}}, {{0x1, 0xe, RS8, RD8, E}}}, - {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RS8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, 0x1, 0xe, RS8, IGNORE, E}}}, - {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RS8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0x1, 0xe, RS8, IGNORE, E}}}, - {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSIND, RD8, E}}, {{0x7, 0xc, B30 | RSIND, IGNORE, 0x1, 0xe, IGNORE, RD8, E}}}, - {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSPOSTDEC, RD8, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, B30 | B20 | IGNORE, 0x1, 0xe, IGNORE, RD8, E}}}, - {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSIND, RDIND, E}}, {{PREFIX_0174, 0x6, 0x8, B30 | RSIND, 0xd, 0x0, RDIND, 0x3, IGNORE, E}}}, - {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x3, IGNORE, E}}}, - - {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{IMM16, RD16, E}}, {{PREFIX_0151, 0x7, 0x9, 0x3, RD16, IMM16LIST, E}}}, - {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{IMM16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x7, 0x9, 0x3, IGNORE, IMM16LIST, E}}}, - {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{IMM16, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0x9, 0x3, IGNORE, IMM16LIST, E}}}, - {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RS16, RD16, E}}, {{PREFIX_0151, 0x1, 0x9, RS16, RD16, E}}}, - {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RS16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x1, 0x9, RS16, IGNORE, E}}}, - {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RS16, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x1, 0x9, RS16, IGNORE, E}}}, - {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSIND, RD16, E}}, {{0x7, 0xc, B31 | RSIND, B01 | IGNORE, 0x1, 0x9, IGNORE, RD16, E}}}, - {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSPOSTDEC, RD16, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x1, 0x9, IGNORE, RD16, E}}}, - {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSIND, RDIND, E}}, {{PREFIX_0154, 0x6, 0x9, B30 | RSIND, 0xd, 0x0, RDIND, 0x3, IGNORE, E}}}, - {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x3, IGNORE, E}}}, - - {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{IMM32, RD32, E}}, {{PREFIX_0101, 0x7, 0xa, 0x3, RD32, IMM32LIST, E}}}, - {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{IMM32, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x3, IGNORE, IMM32LIST, E}}}, - {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{IMM32, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x3, IGNORE, IMM32LIST, E}}}, - {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RS32, RD32, E}}, {{PREFIX_0101, 0x1, 0xa, B31 | RS32, B30 | RD32, E}}}, - {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RS32, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND, B31 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | RS32, B30 | IGNORE, E}}}, - {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RS32, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | RS32, B30 | IGNORE, E}}}, - {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSIND, RD32, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND, B30 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | IGNORE, B30 | RD32, E}}}, - {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSPOSTDEC, RD32, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | IGNORE, B30 | RD32, E}}}, - {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSIND, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND, 0xd, 0x0, RDIND, 0x3, IGNORE, E}}}, - {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x3, IGNORE, E}}}, - - {O (O_TRAPA, SB), AV_H8H, 2, "trapa", {{IMM2, E}}, {{0x5, 0x7, IMM2, IGNORE, E}}}, - {O (O_TAS, SB), AV_H8H, 2, "tas", {{RSIND, E}}, {{0x0, 0x1, 0xe, 0x0, 0x7, 0xb, B30 | RSIND, 0xc, E}}}, - - {O (O_XOR, SB), AV_H8, 2, "xor.b", {{IMM8, RD8, E}}, {{0xd, RD8, IMM8LIST, E}}}, - EXPAND_TWOOP_B (O (O_XOR, SB), "xor.b", 0xd, 0x1, 0x5, 0x5, 0), - - {O (O_XOR, SW), AV_H8, 2, "xor.w", {{RS16, RD16, E}}, {{0x6, 0x5, RS16, RD16, E}}}, - EXPAND_TWOOP_W (O (O_XOR, SW), "xor.w", 0x6, 0x5, 0x5), - - {O (O_XOR, SL), AV_H8H, 2, "xor.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xF, 0x0, 0x6, 0x5, B30 | RS32, B30 | RD32, E}}}, - EXPAND_TWOOP_L (O (O_XOR, SL), "xor.l", 0x5), - - {O (O_XORC, SB), AV_H8, 2, "xorc", {{IMM8, CCR | DST, E}}, {{0x0, 0x5, IMM8LIST, E}}}, - {O (O_XORC, SB), AV_H8S, 2, "xorc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x5, IMM8LIST, E}}}, - - {O (O_CLRMAC, SN), AV_H8S, 2, "clrmac", {{E}}, {{0x0, 0x1, 0xa, 0x0, E}}}, - {O (O_MAC, SW), AV_H8S, 2, "mac", {{RSPOSTINC, RDPOSTINC, E}}, {{0x0, 0x1, 0x6, 0x0, 0x6, 0xd, B30 | RSPOSTINC, B30 | RDPOSTINC, E}}}, - {O (O_LDMAC, SL), AV_H8S, 2, "ldmac", {{RS32, MD32, E}}, {{0x0, 0x3, MD32, RS32, E}}}, - {O (O_STMAC, SL), AV_H8S, 2, "stmac", {{MS32, RD32, E}}, {{0x0, 0x2, MS32, RD32, E}}}, - {O (O_LDM, SL), AV_H8H, 6, "ldm.l", {{RSPOSTINC, RD32, E}}, {{0x0, 0x1, DATA, 0x0, 0x6, 0xD, 0x7, B30 | RD32, E}}}, - {O (O_STM, SL), AV_H8H, 6, "stm.l", {{RS32, RDPREDEC, E}}, {{0x0, 0x1, DATA, 0x0, 0x6, 0xD, 0xF, B30 | RS32, E}}}, - {0, 0, 0, NULL, {{0, 0, 0}}, {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}} -}; -#else -extern const struct h8_opcode h8_opcodes[]; -#endif - diff --git a/include/opcode/hppa.h b/include/opcode/hppa.h deleted file mode 100644 index 489ca55..0000000 --- a/include/opcode/hppa.h +++ /dev/null @@ -1,1092 +0,0 @@ -/* Table of opcodes for the PA-RISC. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2009, 2010 - Free Software Foundation, Inc. - - Contributed by the Center for Software Science at the - University of Utah (pa-gdb-bugs@cs.utah.edu). - - This file is part of GAS, the GNU Assembler, and GDB, the GNU disassembler. - - GAS/GDB is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GAS/GDB is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GAS or GDB; see the file COPYING3. If not, write to - the Free Software Foundation, 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -#if !defined(__STDC__) && !defined(const) -#define const -#endif - -/* - * Structure of an opcode table entry. - */ - -/* There are two kinds of delay slot nullification: normal which is - * controled by the nullification bit, and conditional, which depends - * on the direction of the branch and its success or failure. - * - * NONE is unfortunately #defined in the hiux system include files. - * #undef it away. - */ -#undef NONE -struct pa_opcode -{ - const char *name; - unsigned long int match; /* Bits that must be set... */ - unsigned long int mask; /* ... in these bits. */ - char *args; - enum pa_arch arch; - char flags; -}; - -/* Enables strict matching. Opcodes with match errors are skipped - when this bit is set. */ -#define FLAG_STRICT 0x1 - -/* - All hppa opcodes are 32 bits. - - The match component is a mask saying which bits must match a - particular opcode in order for an instruction to be an instance - of that opcode. - - The args component is a string containing one character for each operand of - the instruction. Characters used as a prefix allow any second character to - be used without conflicting with the main operand characters. - - Bit positions in this description follow HP usage of lsb = 31, - "at" is lsb of field. - - In the args field, the following characters must match exactly: - - '+,() ' - - In the args field, the following characters are unused: - - ' " - / 34 6789:; ' - '@ C M [\] ' - '` e g } ' - - Here are all the characters: - - ' !"#$%&'()*+-,./0123456789:;<=>?' - '@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_' - '`abcdefghijklmnopqrstuvwxyz{|}~ ' - -Kinds of operands: - x integer register field at 15. - b integer register field at 10. - t integer register field at 31. - a integer register field at 10 and 15 (for PERMH) - 5 5 bit immediate at 15. - s 2 bit space specifier at 17. - S 3 bit space specifier at 18. - V 5 bit immediate value at 31 - i 11 bit immediate value at 31 - j 14 bit immediate value at 31 - k 21 bit immediate value at 31 - l 16 bit immediate value at 31 (wide mode only, unusual encoding). - n nullification for branch instructions - N nullification for spop and copr instructions - w 12 bit branch displacement - W 17 bit branch displacement (PC relative) - X 22 bit branch displacement (PC relative) - z 17 bit branch displacement (just a number, not an address) - -Also these: - - . 2 bit shift amount at 25 - * 4 bit shift amount at 25 - p 5 bit shift count at 26 (to support the SHD instruction) encoded as - 31-p - ~ 6 bit shift count at 20,22:26 encoded as 63-~. - P 5 bit bit position at 26 - q 6 bit bit position at 20,22:26 - T 5 bit field length at 31 (encoded as 32-T) - % 6 bit field length at 23,27:31 (variable extract/deposit) - | 6 bit field length at 19,27:31 (fixed extract/deposit) - A 13 bit immediate at 18 (to support the BREAK instruction) - ^ like b, but describes a control register - ! sar (cr11) register - D 26 bit immediate at 31 (to support the DIAG instruction) - $ 9 bit immediate at 28 (to support POPBTS) - - v 3 bit Special Function Unit identifier at 25 - O 20 bit Special Function Unit operation split between 15 bits at 20 - and 5 bits at 31 - o 15 bit Special Function Unit operation at 20 - 2 22 bit Special Function Unit operation split between 17 bits at 20 - and 5 bits at 31 - 1 15 bit Special Function Unit operation split between 10 bits at 20 - and 5 bits at 31 - 0 10 bit Special Function Unit operation split between 5 bits at 20 - and 5 bits at 31 - u 3 bit coprocessor unit identifier at 25 - F Source Floating Point Operand Format Completer encoded 2 bits at 20 - I Source Floating Point Operand Format Completer encoded 1 bits at 20 - (for 0xe format FP instructions) - G Destination Floating Point Operand Format Completer encoded 2 bits at 18 - H Floating Point Operand Format at 26 for 'fmpyadd' and 'fmpysub' - (very similar to 'F') - - r 5 bit immediate value at 31 (for the break instruction) - (very similar to V above, except the value is unsigned instead of - low_sign_ext) - R 5 bit immediate value at 15 (for the ssm, rsm, probei instructions) - (same as r above, except the value is in a different location) - U 10 bit immediate value at 15 (for SSM, RSM on pa2.0) - Q 5 bit immediate value at 10 (a bit position specified in - the bb instruction. It's the same as r above, except the - value is in a different location) - B 5 bit immediate value at 10 (a bit position specified in - the bb instruction. Similar to Q, but 64 bit handling is - different. - Z %r1 -- implicit target of addil instruction. - L ,%r2 completer for new syntax branch - { Source format completer for fcnv - _ Destination format completer for fcnv - h cbit for fcmp - = gfx tests for ftest - d 14 bit offset for single precision FP long load/store. - # 14 bit offset for double precision FP load long/store. - J Yet another 14 bit offset for load/store with ma,mb completers. - K Yet another 14 bit offset for load/store with ma,mb completers. - y 16 bit offset for word aligned load/store (PA2.0 wide). - & 16 bit offset for dword aligned load/store (PA2.0 wide). - < 16 bit offset for load/store with ma,mb completers (PA2.0 wide). - > 16 bit offset for load/store with ma,mb completers (PA2.0 wide). - Y %sr0,%r31 -- implicit target of be,l instruction. - @ implicit immediate value of 0 - -Completer operands all have 'c' as the prefix: - - cx indexed load and store completer. - cX indexed load and store completer. Like cx, but emits a space - after in disassembler. - cm short load and store completer. - cM short load and store completer. Like cm, but emits a space - after in disassembler. - cq long load and store completer (like cm, but inserted into a - different location in the target instruction). - cs store bytes short completer. - cA store bytes short completer. Like cs, but emits a space - after in disassembler. - ce long load/store completer for LDW/STW with a different encoding - than the others - cc load cache control hint - cd load and clear cache control hint - cC store cache control hint - co ordered access - - cp branch link and push completer - cP branch pop completer - cl branch link completer - cg branch gate completer - - cw read/write completer for PROBE - cW wide completer for MFCTL - cL local processor completer for cache control - cZ System Control Completer (to support LPA, LHA, etc.) - - ci correction completer for DCOR - ca add completer - cy 32 bit add carry completer - cY 64 bit add carry completer - cv signed overflow trap completer - ct trap on condition completer for ADDI, SUB - cT trap on condition completer for UADDCM - cb 32 bit borrow completer for SUB - cB 64 bit borrow completer for SUB - - ch left/right half completer - cH signed/unsigned saturation completer - cS signed/unsigned completer at 21 - cz zero/sign extension completer. - c* permutation completer - -Condition operands all have '?' as the prefix: - - ?f Floating point compare conditions (encoded as 5 bits at 31) - - ?a add conditions - ?A 64 bit add conditions - ?@ add branch conditions followed by nullify - ?d non-negated add branch conditions - ?D negated add branch conditions - ?w wide mode non-negated add branch conditions - ?W wide mode negated add branch conditions - - ?s compare/subtract conditions - ?S 64 bit compare/subtract conditions - ?t non-negated compare and branch conditions - ?n 32 bit compare and branch conditions followed by nullify - ?N 64 bit compare and branch conditions followed by nullify - ?Q 64 bit compare and branch conditions for CMPIB instruction - - ?l logical conditions - ?L 64 bit logical conditions - - ?b branch on bit conditions - ?B 64 bit branch on bit conditions - - ?x shift/extract/deposit conditions - ?X 64 bit shift/extract/deposit conditions - ?y shift/extract/deposit conditions followed by nullify for conditional - branches - - ?u unit conditions - ?U 64 bit unit conditions - -Floating point registers all have 'f' as a prefix: - - ft target register at 31 - fT target register with L/R halves at 31 - fa operand 1 register at 10 - fA operand 1 register with L/R halves at 10 - fX Same as fA, except prints a space before register during disasm - fb operand 2 register at 15 - fB operand 2 register with L/R halves at 15 - fC operand 3 register with L/R halves at 16:18,21:23 - fe Like fT, but encoding is different. - fE Same as fe, except prints a space before register during disasm. - fx target register at 15 (only for PA 2.0 long format FLDD/FSTD). - -Float registers for fmpyadd and fmpysub: - - fi mult operand 1 register at 10 - fj mult operand 2 register at 15 - fk mult target register at 20 - fl add/sub operand register at 25 - fm add/sub target register at 31 - -*/ - - -#if 0 -/* List of characters not to put a space after. Note that - "," is included, as the "spopN" operations use literal - commas in their completer sections. */ -static const char *const completer_chars = ",CcY<>?!@+&U~FfGHINnOoZMadu|/=0123%e$m}"; -#endif - -/* The order of the opcodes in this table is significant: - - * The assembler requires that all instances of the same mnemonic be - consecutive. If they aren't, the assembler will bomb at runtime. - - * Immediate fields use pa_get_absolute_expression to parse the - string. It will generate a "bad expression" error if passed - a register name. Thus, register index variants of an opcode - need to precede immediate variants. - - * The disassembler does not care about the order of the opcodes - except in cases where implicit addressing is used. - - Here are the rules for ordering the opcodes of a mnemonic: - - 1) Opcodes with FLAG_STRICT should precede opcodes without - FLAG_STRICT. - - 2) Opcodes with FLAG_STRICT should be ordered as follows: - register index opcodes, short immediate opcodes, and finally - long immediate opcodes. When both pa10 and pa11 variants - of the same opcode are available, the pa10 opcode should - come first for correct architectural promotion. - - 3) When implicit addressing is available for an opcode, the - implicit opcode should precede the explicit opcode. - - 4) Opcodes without FLAG_STRICT should be ordered as follows: - register index opcodes, long immediate opcodes, and finally - short immediate opcodes. */ - -static const struct pa_opcode pa_opcodes[] = -{ - -/* Pseudo-instructions. */ - -{ "ldi", 0x34000000, 0xffe00000, "l,x", pa20w, 0},/* ldo val(r0),r */ -{ "ldi", 0x34000000, 0xffe0c000, "j,x", pa10, 0},/* ldo val(r0),r */ - -{ "cmpib", 0xec000000, 0xfc000000, "?Qn5,b,w", pa20, FLAG_STRICT}, -{ "cmpib", 0x84000000, 0xf4000000, "?nn5,b,w", pa10, FLAG_STRICT}, -{ "comib", 0x84000000, 0xfc000000, "?nn5,b,w", pa10, 0}, /* comib{tf}*/ -/* This entry is for the disassembler only. It will never be used by - assembler. */ -{ "comib", 0x8c000000, 0xfc000000, "?nn5,b,w", pa10, 0}, /* comib{tf}*/ -{ "cmpb", 0x9c000000, 0xdc000000, "?Nnx,b,w", pa20, FLAG_STRICT}, -{ "cmpb", 0x80000000, 0xf4000000, "?nnx,b,w", pa10, FLAG_STRICT}, -{ "comb", 0x80000000, 0xfc000000, "?nnx,b,w", pa10, 0}, /* comb{tf} */ -/* This entry is for the disassembler only. It will never be used by - assembler. */ -{ "comb", 0x88000000, 0xfc000000, "?nnx,b,w", pa10, 0}, /* comb{tf} */ -{ "addb", 0xa0000000, 0xf4000000, "?Wnx,b,w", pa20w, FLAG_STRICT}, -{ "addb", 0xa0000000, 0xfc000000, "?@nx,b,w", pa10, 0}, /* addb{tf} */ -/* This entry is for the disassembler only. It will never be used by - assembler. */ -{ "addb", 0xa8000000, 0xfc000000, "?@nx,b,w", pa10, 0}, -{ "addib", 0xa4000000, 0xf4000000, "?Wn5,b,w", pa20w, FLAG_STRICT}, -{ "addib", 0xa4000000, 0xfc000000, "?@n5,b,w", pa10, 0}, /* addib{tf}*/ -/* This entry is for the disassembler only. It will never be used by - assembler. */ -{ "addib", 0xac000000, 0xfc000000, "?@n5,b,w", pa10, 0}, /* addib{tf}*/ -{ "nop", 0x08000240, 0xffffffff, "", pa10, 0}, /* or 0,0,0 */ -{ "copy", 0x08000240, 0xffe0ffe0, "x,t", pa10, 0}, /* or r,0,t */ -{ "mtsar", 0x01601840, 0xffe0ffff, "x", pa10, 0}, /* mtctl r,cr11 */ - -/* Loads and Stores for integer registers. */ - -{ "ldd", 0x0c0000c0, 0xfc00d3c0, "cxccx(b),t", pa20, FLAG_STRICT}, -{ "ldd", 0x0c0000c0, 0xfc0013c0, "cxccx(s,b),t", pa20, FLAG_STRICT}, -{ "ldd", 0x0c0010e0, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT}, -{ "ldd", 0x0c0010e0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT}, -{ "ldd", 0x0c0010c0, 0xfc00d3c0, "cmcc5(b),t", pa20, FLAG_STRICT}, -{ "ldd", 0x0c0010c0, 0xfc0013c0, "cmcc5(s,b),t", pa20, FLAG_STRICT}, -{ "ldd", 0x50000000, 0xfc000002, "cq&(b),x", pa20w, FLAG_STRICT}, -{ "ldd", 0x50000000, 0xfc00c002, "cq#(b),x", pa20, FLAG_STRICT}, -{ "ldd", 0x50000000, 0xfc000002, "cq#(s,b),x", pa20, FLAG_STRICT}, -{ "ldw", 0x0c000080, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT}, -{ "ldw", 0x0c000080, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT}, -{ "ldw", 0x0c000080, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT}, -{ "ldw", 0x0c000080, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT}, -{ "ldw", 0x0c0010a0, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT}, -{ "ldw", 0x0c0010a0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT}, -{ "ldw", 0x0c001080, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT}, -{ "ldw", 0x0c001080, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT}, -{ "ldw", 0x0c001080, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT}, -{ "ldw", 0x0c001080, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT}, -{ "ldw", 0x4c000000, 0xfc000000, "ce<(b),x", pa20w, FLAG_STRICT}, -{ "ldw", 0x5c000004, 0xfc000006, "ce>(b),x", pa20w, FLAG_STRICT}, -{ "ldw", 0x48000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT}, -{ "ldw", 0x5c000004, 0xfc00c006, "ceK(b),x", pa20, FLAG_STRICT}, -{ "ldw", 0x5c000004, 0xfc000006, "ceK(s,b),x", pa20, FLAG_STRICT}, -{ "ldw", 0x4c000000, 0xfc00c000, "ceJ(b),x", pa10, FLAG_STRICT}, -{ "ldw", 0x4c000000, 0xfc000000, "ceJ(s,b),x", pa10, FLAG_STRICT}, -{ "ldw", 0x48000000, 0xfc00c000, "j(b),x", pa10, 0}, -{ "ldw", 0x48000000, 0xfc000000, "j(s,b),x", pa10, 0}, -{ "ldh", 0x0c000040, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT}, -{ "ldh", 0x0c000040, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT}, -{ "ldh", 0x0c000040, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT}, -{ "ldh", 0x0c000040, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT}, -{ "ldh", 0x0c001060, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT}, -{ "ldh", 0x0c001060, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT}, -{ "ldh", 0x0c001040, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT}, -{ "ldh", 0x0c001040, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT}, -{ "ldh", 0x0c001040, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT}, -{ "ldh", 0x0c001040, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT}, -{ "ldh", 0x44000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT}, -{ "ldh", 0x44000000, 0xfc00c000, "j(b),x", pa10, 0}, -{ "ldh", 0x44000000, 0xfc000000, "j(s,b),x", pa10, 0}, -{ "ldb", 0x0c000000, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT}, -{ "ldb", 0x0c000000, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT}, -{ "ldb", 0x0c000000, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT}, -{ "ldb", 0x0c000000, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT}, -{ "ldb", 0x0c001020, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT}, -{ "ldb", 0x0c001020, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT}, -{ "ldb", 0x0c001000, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT}, -{ "ldb", 0x0c001000, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT}, -{ "ldb", 0x0c001000, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT}, -{ "ldb", 0x0c001000, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT}, -{ "ldb", 0x40000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT}, -{ "ldb", 0x40000000, 0xfc00c000, "j(b),x", pa10, 0}, -{ "ldb", 0x40000000, 0xfc000000, "j(s,b),x", pa10, 0}, -{ "std", 0x0c0012e0, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT}, -{ "std", 0x0c0012e0, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT}, -{ "std", 0x0c0012c0, 0xfc00d3c0, "cmcCx,V(b)", pa20, FLAG_STRICT}, -{ "std", 0x0c0012c0, 0xfc0013c0, "cmcCx,V(s,b)", pa20, FLAG_STRICT}, -{ "std", 0x70000000, 0xfc000002, "cqx,&(b)", pa20w, FLAG_STRICT}, -{ "std", 0x70000000, 0xfc00c002, "cqx,#(b)", pa20, FLAG_STRICT}, -{ "std", 0x70000000, 0xfc000002, "cqx,#(s,b)", pa20, FLAG_STRICT}, -{ "stw", 0x0c0012a0, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT}, -{ "stw", 0x0c0012a0, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT}, -{ "stw", 0x0c001280, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT}, -{ "stw", 0x0c001280, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT}, -{ "stw", 0x0c001280, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT}, -{ "stw", 0x0c001280, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT}, -{ "stw", 0x6c000000, 0xfc000000, "cex,<(b)", pa20w, FLAG_STRICT}, -{ "stw", 0x7c000004, 0xfc000006, "cex,>(b)", pa20w, FLAG_STRICT}, -{ "stw", 0x68000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT}, -{ "stw", 0x7c000004, 0xfc00c006, "cex,K(b)", pa20, FLAG_STRICT}, -{ "stw", 0x7c000004, 0xfc000006, "cex,K(s,b)", pa20, FLAG_STRICT}, -{ "stw", 0x6c000000, 0xfc00c000, "cex,J(b)", pa10, FLAG_STRICT}, -{ "stw", 0x6c000000, 0xfc000000, "cex,J(s,b)", pa10, FLAG_STRICT}, -{ "stw", 0x68000000, 0xfc00c000, "x,j(b)", pa10, 0}, -{ "stw", 0x68000000, 0xfc000000, "x,j(s,b)", pa10, 0}, -{ "sth", 0x0c001260, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT}, -{ "sth", 0x0c001260, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT}, -{ "sth", 0x0c001240, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT}, -{ "sth", 0x0c001240, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT}, -{ "sth", 0x0c001240, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT}, -{ "sth", 0x0c001240, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT}, -{ "sth", 0x64000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT}, -{ "sth", 0x64000000, 0xfc00c000, "x,j(b)", pa10, 0}, -{ "sth", 0x64000000, 0xfc000000, "x,j(s,b)", pa10, 0}, -{ "stb", 0x0c001220, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT}, -{ "stb", 0x0c001220, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT}, -{ "stb", 0x0c001200, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT}, -{ "stb", 0x0c001200, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT}, -{ "stb", 0x0c001200, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT}, -{ "stb", 0x0c001200, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT}, -{ "stb", 0x60000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT}, -{ "stb", 0x60000000, 0xfc00c000, "x,j(b)", pa10, 0}, -{ "stb", 0x60000000, 0xfc000000, "x,j(s,b)", pa10, 0}, -{ "ldwm", 0x4c000000, 0xfc00c000, "j(b),x", pa10, 0}, -{ "ldwm", 0x4c000000, 0xfc000000, "j(s,b),x", pa10, 0}, -{ "stwm", 0x6c000000, 0xfc00c000, "x,j(b)", pa10, 0}, -{ "stwm", 0x6c000000, 0xfc000000, "x,j(s,b)", pa10, 0}, -{ "ldwx", 0x0c000080, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT}, -{ "ldwx", 0x0c000080, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT}, -{ "ldwx", 0x0c000080, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT}, -{ "ldwx", 0x0c000080, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT}, -{ "ldwx", 0x0c000080, 0xfc00dfc0, "cXx(b),t", pa10, 0}, -{ "ldwx", 0x0c000080, 0xfc001fc0, "cXx(s,b),t", pa10, 0}, -{ "ldhx", 0x0c000040, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT}, -{ "ldhx", 0x0c000040, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT}, -{ "ldhx", 0x0c000040, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT}, -{ "ldhx", 0x0c000040, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT}, -{ "ldhx", 0x0c000040, 0xfc00dfc0, "cXx(b),t", pa10, 0}, -{ "ldhx", 0x0c000040, 0xfc001fc0, "cXx(s,b),t", pa10, 0}, -{ "ldbx", 0x0c000000, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT}, -{ "ldbx", 0x0c000000, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT}, -{ "ldbx", 0x0c000000, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT}, -{ "ldbx", 0x0c000000, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT}, -{ "ldbx", 0x0c000000, 0xfc00dfc0, "cXx(b),t", pa10, 0}, -{ "ldbx", 0x0c000000, 0xfc001fc0, "cXx(s,b),t", pa10, 0}, -{ "ldwa", 0x0c000180, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT}, -{ "ldwa", 0x0c000180, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT}, -{ "ldwa", 0x0c0011a0, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT}, -{ "ldwa", 0x0c001180, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT}, -{ "ldwa", 0x0c001180, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT}, -{ "ldcw", 0x0c0001c0, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT}, -{ "ldcw", 0x0c0001c0, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT}, -{ "ldcw", 0x0c0001c0, 0xfc00d3c0, "cxcdx(b),t", pa11, FLAG_STRICT}, -{ "ldcw", 0x0c0001c0, 0xfc0013c0, "cxcdx(s,b),t", pa11, FLAG_STRICT}, -{ "ldcw", 0x0c0011c0, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT}, -{ "ldcw", 0x0c0011c0, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT}, -{ "ldcw", 0x0c0011c0, 0xfc00d3c0, "cmcd5(b),t", pa11, FLAG_STRICT}, -{ "ldcw", 0x0c0011c0, 0xfc0013c0, "cmcd5(s,b),t", pa11, FLAG_STRICT}, -{ "stwa", 0x0c0013a0, 0xfc00d3ff, "cocCx,@(b)", pa20, FLAG_STRICT}, -{ "stwa", 0x0c001380, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT}, -{ "stwa", 0x0c001380, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT}, -{ "stby", 0x0c001300, 0xfc00dfc0, "cAx,V(b)", pa10, FLAG_STRICT}, -{ "stby", 0x0c001300, 0xfc001fc0, "cAx,V(s,b)", pa10, FLAG_STRICT}, -{ "stby", 0x0c001300, 0xfc00d3c0, "cscCx,V(b)", pa11, FLAG_STRICT}, -{ "stby", 0x0c001300, 0xfc0013c0, "cscCx,V(s,b)", pa11, FLAG_STRICT}, -{ "ldda", 0x0c000100, 0xfc00d3c0, "cxccx(b),t", pa20, FLAG_STRICT}, -{ "ldda", 0x0c001120, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT}, -{ "ldda", 0x0c001100, 0xfc00d3c0, "cmcc5(b),t", pa20, FLAG_STRICT}, -{ "ldcd", 0x0c000140, 0xfc00d3c0, "cxcdx(b),t", pa20, FLAG_STRICT}, -{ "ldcd", 0x0c000140, 0xfc0013c0, "cxcdx(s,b),t", pa20, FLAG_STRICT}, -{ "ldcd", 0x0c001140, 0xfc00d3c0, "cmcd5(b),t", pa20, FLAG_STRICT}, -{ "ldcd", 0x0c001140, 0xfc0013c0, "cmcd5(s,b),t", pa20, FLAG_STRICT}, -{ "stda", 0x0c0013e0, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT}, -{ "stda", 0x0c0013c0, 0xfc00d3c0, "cmcCx,V(b)", pa20, FLAG_STRICT}, -{ "ldwax", 0x0c000180, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT}, -{ "ldwax", 0x0c000180, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT}, -{ "ldwax", 0x0c000180, 0xfc00dfc0, "cXx(b),t", pa10, 0}, -{ "ldcwx", 0x0c0001c0, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT}, -{ "ldcwx", 0x0c0001c0, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT}, -{ "ldcwx", 0x0c0001c0, 0xfc00d3c0, "cxcdx(b),t", pa11, FLAG_STRICT}, -{ "ldcwx", 0x0c0001c0, 0xfc0013c0, "cxcdx(s,b),t", pa11, FLAG_STRICT}, -{ "ldcwx", 0x0c0001c0, 0xfc00dfc0, "cXx(b),t", pa10, 0}, -{ "ldcwx", 0x0c0001c0, 0xfc001fc0, "cXx(s,b),t", pa10, 0}, -{ "ldws", 0x0c001080, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT}, -{ "ldws", 0x0c001080, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT}, -{ "ldws", 0x0c001080, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT}, -{ "ldws", 0x0c001080, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT}, -{ "ldws", 0x0c001080, 0xfc00dfc0, "cM5(b),t", pa10, 0}, -{ "ldws", 0x0c001080, 0xfc001fc0, "cM5(s,b),t", pa10, 0}, -{ "ldhs", 0x0c001040, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT}, -{ "ldhs", 0x0c001040, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT}, -{ "ldhs", 0x0c001040, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT}, -{ "ldhs", 0x0c001040, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT}, -{ "ldhs", 0x0c001040, 0xfc00dfc0, "cM5(b),t", pa10, 0}, -{ "ldhs", 0x0c001040, 0xfc001fc0, "cM5(s,b),t", pa10, 0}, -{ "ldbs", 0x0c001000, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT}, -{ "ldbs", 0x0c001000, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT}, -{ "ldbs", 0x0c001000, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT}, -{ "ldbs", 0x0c001000, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT}, -{ "ldbs", 0x0c001000, 0xfc00dfc0, "cM5(b),t", pa10, 0}, -{ "ldbs", 0x0c001000, 0xfc001fc0, "cM5(s,b),t", pa10, 0}, -{ "ldwas", 0x0c001180, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT}, -{ "ldwas", 0x0c001180, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT}, -{ "ldwas", 0x0c001180, 0xfc00dfc0, "cM5(b),t", pa10, 0}, -{ "ldcws", 0x0c0011c0, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT}, -{ "ldcws", 0x0c0011c0, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT}, -{ "ldcws", 0x0c0011c0, 0xfc00d3c0, "cmcd5(b),t", pa11, FLAG_STRICT}, -{ "ldcws", 0x0c0011c0, 0xfc0013c0, "cmcd5(s,b),t", pa11, FLAG_STRICT}, -{ "ldcws", 0x0c0011c0, 0xfc00dfc0, "cM5(b),t", pa10, 0}, -{ "ldcws", 0x0c0011c0, 0xfc001fc0, "cM5(s,b),t", pa10, 0}, -{ "stws", 0x0c001280, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT}, -{ "stws", 0x0c001280, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT}, -{ "stws", 0x0c001280, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT}, -{ "stws", 0x0c001280, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT}, -{ "stws", 0x0c001280, 0xfc00dfc0, "cMx,V(b)", pa10, 0}, -{ "stws", 0x0c001280, 0xfc001fc0, "cMx,V(s,b)", pa10, 0}, -{ "sths", 0x0c001240, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT}, -{ "sths", 0x0c001240, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT}, -{ "sths", 0x0c001240, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT}, -{ "sths", 0x0c001240, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT}, -{ "sths", 0x0c001240, 0xfc00dfc0, "cMx,V(b)", pa10, 0}, -{ "sths", 0x0c001240, 0xfc001fc0, "cMx,V(s,b)", pa10, 0}, -{ "stbs", 0x0c001200, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT}, -{ "stbs", 0x0c001200, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT}, -{ "stbs", 0x0c001200, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT}, -{ "stbs", 0x0c001200, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT}, -{ "stbs", 0x0c001200, 0xfc00dfc0, "cMx,V(b)", pa10, 0}, -{ "stbs", 0x0c001200, 0xfc001fc0, "cMx,V(s,b)", pa10, 0}, -{ "stwas", 0x0c001380, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT}, -{ "stwas", 0x0c001380, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT}, -{ "stwas", 0x0c001380, 0xfc00dfc0, "cMx,V(b)", pa10, 0}, -{ "stdby", 0x0c001340, 0xfc00d3c0, "cscCx,V(b)", pa20, FLAG_STRICT}, -{ "stdby", 0x0c001340, 0xfc0013c0, "cscCx,V(s,b)", pa20, FLAG_STRICT}, -{ "stbys", 0x0c001300, 0xfc00dfc0, "cAx,V(b)", pa10, FLAG_STRICT}, -{ "stbys", 0x0c001300, 0xfc001fc0, "cAx,V(s,b)", pa10, FLAG_STRICT}, -{ "stbys", 0x0c001300, 0xfc00d3c0, "cscCx,V(b)", pa11, FLAG_STRICT}, -{ "stbys", 0x0c001300, 0xfc0013c0, "cscCx,V(s,b)", pa11, FLAG_STRICT}, -{ "stbys", 0x0c001300, 0xfc00dfc0, "cAx,V(b)", pa10, 0}, -{ "stbys", 0x0c001300, 0xfc001fc0, "cAx,V(s,b)", pa10, 0}, - -/* Immediate instructions. */ -{ "ldo", 0x34000000, 0xfc000000, "l(b),x", pa20w, 0}, -{ "ldo", 0x34000000, 0xfc00c000, "j(b),x", pa10, 0}, -{ "ldil", 0x20000000, 0xfc000000, "k,b", pa10, 0}, -{ "addil", 0x28000000, 0xfc000000, "k,b,Z", pa10, 0}, -{ "addil", 0x28000000, 0xfc000000, "k,b", pa10, 0}, - -/* Branching instructions. */ -{ "b", 0xe8008000, 0xfc00e000, "cpnXL", pa20, FLAG_STRICT}, -{ "b", 0xe800a000, 0xfc00e000, "clnXL", pa20, FLAG_STRICT}, -{ "b", 0xe8000000, 0xfc00e000, "clnW,b", pa10, FLAG_STRICT}, -{ "b", 0xe8002000, 0xfc00e000, "cgnW,b", pa10, FLAG_STRICT}, -{ "b", 0xe8000000, 0xffe0e000, "nW", pa10, 0}, /* b,l foo,r0 */ -{ "bl", 0xe8000000, 0xfc00e000, "nW,b", pa10, 0}, -{ "gate", 0xe8002000, 0xfc00e000, "nW,b", pa10, 0}, -{ "blr", 0xe8004000, 0xfc00e001, "nx,b", pa10, 0}, -{ "bv", 0xe800c000, 0xfc00fffd, "nx(b)", pa10, 0}, -{ "bv", 0xe800c000, 0xfc00fffd, "n(b)", pa10, 0}, -{ "bve", 0xe800f001, 0xfc1ffffd, "cpn(b)L", pa20, FLAG_STRICT}, -{ "bve", 0xe800f000, 0xfc1ffffd, "cln(b)L", pa20, FLAG_STRICT}, -{ "bve", 0xe800d001, 0xfc1ffffd, "cPn(b)", pa20, FLAG_STRICT}, -{ "bve", 0xe800d000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT}, -{ "be", 0xe4000000, 0xfc000000, "clnz(S,b),Y", pa10, FLAG_STRICT}, -{ "be", 0xe4000000, 0xfc000000, "clnz(b),Y", pa10, FLAG_STRICT}, -{ "be", 0xe0000000, 0xfc000000, "nz(S,b)", pa10, 0}, -{ "be", 0xe0000000, 0xfc000000, "nz(b)", pa10, 0}, -{ "ble", 0xe4000000, 0xfc000000, "nz(S,b)", pa10, 0}, -{ "movb", 0xc8000000, 0xfc000000, "?ynx,b,w", pa10, 0}, -{ "movib", 0xcc000000, 0xfc000000, "?yn5,b,w", pa10, 0}, -{ "combt", 0x80000000, 0xfc000000, "?tnx,b,w", pa10, 0}, -{ "combf", 0x88000000, 0xfc000000, "?tnx,b,w", pa10, 0}, -{ "comibt", 0x84000000, 0xfc000000, "?tn5,b,w", pa10, 0}, -{ "comibf", 0x8c000000, 0xfc000000, "?tn5,b,w", pa10, 0}, -{ "addbt", 0xa0000000, 0xfc000000, "?dnx,b,w", pa10, 0}, -{ "addbf", 0xa8000000, 0xfc000000, "?dnx,b,w", pa10, 0}, -{ "addibt", 0xa4000000, 0xfc000000, "?dn5,b,w", pa10, 0}, -{ "addibf", 0xac000000, 0xfc000000, "?dn5,b,w", pa10, 0}, -{ "bb", 0xc0006000, 0xffe06000, "?Bnx,!,w", pa20, FLAG_STRICT}, -{ "bb", 0xc0004000, 0xffe06000, "?bnx,!,w", pa10, FLAG_STRICT}, -{ "bb", 0xc4004000, 0xfc004000, "?Bnx,B,w", pa20, FLAG_STRICT}, -{ "bb", 0xc4004000, 0xfc006000, "?bnx,Q,w", pa10, FLAG_STRICT}, -{ "bb", 0xc4004000, 0xfc006000, "?bnx,Q,w", pa10, 0}, -{ "bvb", 0xc0004000, 0xffe04000, "?bnx,w", pa10, 0}, -{ "clrbts", 0xe8004005, 0xffffffff, "", pa20, FLAG_STRICT}, -{ "popbts", 0xe8004005, 0xfffff007, "$", pa20, FLAG_STRICT}, -{ "pushnom", 0xe8004001, 0xffffffff, "", pa20, FLAG_STRICT}, -{ "pushbts", 0xe8004001, 0xffe0ffff, "x", pa20, FLAG_STRICT}, - -/* Computation Instructions. */ - -{ "cmpclr", 0x080008a0, 0xfc000fe0, "?Sx,b,t", pa20, FLAG_STRICT}, -{ "cmpclr", 0x08000880, 0xfc000fe0, "?sx,b,t", pa10, FLAG_STRICT}, -{ "comclr", 0x08000880, 0xfc000fe0, "?sx,b,t", pa10, 0}, -{ "or", 0x08000260, 0xfc000fe0, "?Lx,b,t", pa20, FLAG_STRICT}, -{ "or", 0x08000240, 0xfc000fe0, "?lx,b,t", pa10, 0}, -{ "xor", 0x080002a0, 0xfc000fe0, "?Lx,b,t", pa20, FLAG_STRICT}, -{ "xor", 0x08000280, 0xfc000fe0, "?lx,b,t", pa10, 0}, -{ "and", 0x08000220, 0xfc000fe0, "?Lx,b,t", pa20, FLAG_STRICT}, -{ "and", 0x08000200, 0xfc000fe0, "?lx,b,t", pa10, 0}, -{ "andcm", 0x08000020, 0xfc000fe0, "?Lx,b,t", pa20, FLAG_STRICT}, -{ "andcm", 0x08000000, 0xfc000fe0, "?lx,b,t", pa10, 0}, -{ "uxor", 0x080003a0, 0xfc000fe0, "?Ux,b,t", pa20, FLAG_STRICT}, -{ "uxor", 0x08000380, 0xfc000fe0, "?ux,b,t", pa10, 0}, -{ "uaddcm", 0x080009a0, 0xfc000fa0, "cT?Ux,b,t", pa20, FLAG_STRICT}, -{ "uaddcm", 0x08000980, 0xfc000fa0, "cT?ux,b,t", pa10, FLAG_STRICT}, -{ "uaddcm", 0x08000980, 0xfc000fe0, "?ux,b,t", pa10, 0}, -{ "uaddcmt", 0x080009c0, 0xfc000fe0, "?ux,b,t", pa10, 0}, -{ "dcor", 0x08000ba0, 0xfc1f0fa0, "ci?Ub,t", pa20, FLAG_STRICT}, -{ "dcor", 0x08000b80, 0xfc1f0fa0, "ci?ub,t", pa10, FLAG_STRICT}, -{ "dcor", 0x08000b80, 0xfc1f0fe0, "?ub,t", pa10, 0}, -{ "idcor", 0x08000bc0, 0xfc1f0fe0, "?ub,t", pa10, 0}, -{ "addi", 0xb0000000, 0xfc000000, "ct?ai,b,x", pa10, FLAG_STRICT}, -{ "addi", 0xb4000000, 0xfc000000, "cv?ai,b,x", pa10, FLAG_STRICT}, -{ "addi", 0xb4000000, 0xfc000800, "?ai,b,x", pa10, 0}, -{ "addio", 0xb4000800, 0xfc000800, "?ai,b,x", pa10, 0}, -{ "addit", 0xb0000000, 0xfc000800, "?ai,b,x", pa10, 0}, -{ "addito", 0xb0000800, 0xfc000800, "?ai,b,x", pa10, 0}, -{ "add", 0x08000720, 0xfc0007e0, "cY?Ax,b,t", pa20, FLAG_STRICT}, -{ "add", 0x08000700, 0xfc0007e0, "cy?ax,b,t", pa10, FLAG_STRICT}, -{ "add", 0x08000220, 0xfc0003e0, "ca?Ax,b,t", pa20, FLAG_STRICT}, -{ "add", 0x08000200, 0xfc0003e0, "ca?ax,b,t", pa10, FLAG_STRICT}, -{ "add", 0x08000600, 0xfc000fe0, "?ax,b,t", pa10, 0}, -{ "addl", 0x08000a00, 0xfc000fe0, "?ax,b,t", pa10, 0}, -{ "addo", 0x08000e00, 0xfc000fe0, "?ax,b,t", pa10, 0}, -{ "addc", 0x08000700, 0xfc000fe0, "?ax,b,t", pa10, 0}, -{ "addco", 0x08000f00, 0xfc000fe0, "?ax,b,t", pa10, 0}, -{ "sub", 0x080004e0, 0xfc0007e0, "ct?Sx,b,t", pa20, FLAG_STRICT}, -{ "sub", 0x080004c0, 0xfc0007e0, "ct?sx,b,t", pa10, FLAG_STRICT}, -{ "sub", 0x08000520, 0xfc0007e0, "cB?Sx,b,t", pa20, FLAG_STRICT}, -{ "sub", 0x08000500, 0xfc0007e0, "cb?sx,b,t", pa10, FLAG_STRICT}, -{ "sub", 0x08000420, 0xfc0007e0, "cv?Sx,b,t", pa20, FLAG_STRICT}, -{ "sub", 0x08000400, 0xfc0007e0, "cv?sx,b,t", pa10, FLAG_STRICT}, -{ "sub", 0x08000400, 0xfc000fe0, "?sx,b,t", pa10, 0}, -{ "subo", 0x08000c00, 0xfc000fe0, "?sx,b,t", pa10, 0}, -{ "subb", 0x08000500, 0xfc000fe0, "?sx,b,t", pa10, 0}, -{ "subbo", 0x08000d00, 0xfc000fe0, "?sx,b,t", pa10, 0}, -{ "subt", 0x080004c0, 0xfc000fe0, "?sx,b,t", pa10, 0}, -{ "subto", 0x08000cc0, 0xfc000fe0, "?sx,b,t", pa10, 0}, -{ "ds", 0x08000440, 0xfc000fe0, "?sx,b,t", pa10, 0}, -{ "subi", 0x94000000, 0xfc000000, "cv?si,b,x", pa10, FLAG_STRICT}, -{ "subi", 0x94000000, 0xfc000800, "?si,b,x", pa10, 0}, -{ "subio", 0x94000800, 0xfc000800, "?si,b,x", pa10, 0}, -{ "cmpiclr", 0x90000800, 0xfc000800, "?Si,b,x", pa20, FLAG_STRICT}, -{ "cmpiclr", 0x90000000, 0xfc000800, "?si,b,x", pa10, FLAG_STRICT}, -{ "comiclr", 0x90000000, 0xfc000800, "?si,b,x", pa10, 0}, -{ "shladd", 0x08000220, 0xfc000320, "ca?Ax,.,b,t", pa20, FLAG_STRICT}, -{ "shladd", 0x08000200, 0xfc000320, "ca?ax,.,b,t", pa10, FLAG_STRICT}, -{ "sh1add", 0x08000640, 0xfc000fe0, "?ax,b,t", pa10, 0}, -{ "sh1addl", 0x08000a40, 0xfc000fe0, "?ax,b,t", pa10, 0}, -{ "sh1addo", 0x08000e40, 0xfc000fe0, "?ax,b,t", pa10, 0}, -{ "sh2add", 0x08000680, 0xfc000fe0, "?ax,b,t", pa10, 0}, -{ "sh2addl", 0x08000a80, 0xfc000fe0, "?ax,b,t", pa10, 0}, -{ "sh2addo", 0x08000e80, 0xfc000fe0, "?ax,b,t", pa10, 0}, -{ "sh3add", 0x080006c0, 0xfc000fe0, "?ax,b,t", pa10, 0}, -{ "sh3addl", 0x08000ac0, 0xfc000fe0, "?ax,b,t", pa10, 0}, -{ "sh3addo", 0x08000ec0, 0xfc000fe0, "?ax,b,t", pa10, 0}, - -/* Subword Operation Instructions. */ - -{ "hadd", 0x08000300, 0xfc00ff20, "cHx,b,t", pa20, FLAG_STRICT}, -{ "havg", 0x080002c0, 0xfc00ffe0, "x,b,t", pa20, FLAG_STRICT}, -{ "hshl", 0xf8008800, 0xffe0fc20, "x,*,t", pa20, FLAG_STRICT}, -{ "hshladd", 0x08000700, 0xfc00ff20, "x,.,b,t", pa20, FLAG_STRICT}, -{ "hshr", 0xf800c800, 0xfc1ff820, "cSb,*,t", pa20, FLAG_STRICT}, -{ "hshradd", 0x08000500, 0xfc00ff20, "x,.,b,t", pa20, FLAG_STRICT}, -{ "hsub", 0x08000100, 0xfc00ff20, "cHx,b,t", pa20, FLAG_STRICT}, -{ "mixh", 0xf8008400, 0xfc009fe0, "chx,b,t", pa20, FLAG_STRICT}, -{ "mixw", 0xf8008000, 0xfc009fe0, "chx,b,t", pa20, FLAG_STRICT}, -{ "permh", 0xf8000000, 0xfc009020, "c*a,t", pa20, FLAG_STRICT}, - - -/* Extract and Deposit Instructions. */ - -{ "shrpd", 0xd0000200, 0xfc001fe0, "?Xx,b,!,t", pa20, FLAG_STRICT}, -{ "shrpd", 0xd0000400, 0xfc001400, "?Xx,b,~,t", pa20, FLAG_STRICT}, -{ "shrpw", 0xd0000000, 0xfc001fe0, "?xx,b,!,t", pa10, FLAG_STRICT}, -{ "shrpw", 0xd0000800, 0xfc001c00, "?xx,b,p,t", pa10, FLAG_STRICT}, -{ "vshd", 0xd0000000, 0xfc001fe0, "?xx,b,t", pa10, 0}, -{ "shd", 0xd0000800, 0xfc001c00, "?xx,b,p,t", pa10, 0}, -{ "extrd", 0xd0001200, 0xfc001ae0, "cS?Xb,!,%,x", pa20, FLAG_STRICT}, -{ "extrd", 0xd8000000, 0xfc000000, "cS?Xb,q,|,x", pa20, FLAG_STRICT}, -{ "extrw", 0xd0001000, 0xfc001be0, "cS?xb,!,T,x", pa10, FLAG_STRICT}, -{ "extrw", 0xd0001800, 0xfc001800, "cS?xb,P,T,x", pa10, FLAG_STRICT}, -{ "vextru", 0xd0001000, 0xfc001fe0, "?xb,T,x", pa10, 0}, -{ "vextrs", 0xd0001400, 0xfc001fe0, "?xb,T,x", pa10, 0}, -{ "extru", 0xd0001800, 0xfc001c00, "?xb,P,T,x", pa10, 0}, -{ "extrs", 0xd0001c00, 0xfc001c00, "?xb,P,T,x", pa10, 0}, -{ "depd", 0xd4000200, 0xfc001ae0, "cz?Xx,!,%,b", pa20, FLAG_STRICT}, -{ "depd", 0xf0000000, 0xfc000000, "cz?Xx,~,|,b", pa20, FLAG_STRICT}, -{ "depdi", 0xd4001200, 0xfc001ae0, "cz?X5,!,%,b", pa20, FLAG_STRICT}, -{ "depdi", 0xf4000000, 0xfc000000, "cz?X5,~,|,b", pa20, FLAG_STRICT}, -{ "depw", 0xd4000000, 0xfc001be0, "cz?xx,!,T,b", pa10, FLAG_STRICT}, -{ "depw", 0xd4000800, 0xfc001800, "cz?xx,p,T,b", pa10, FLAG_STRICT}, -{ "depwi", 0xd4001000, 0xfc001be0, "cz?x5,!,T,b", pa10, FLAG_STRICT}, -{ "depwi", 0xd4001800, 0xfc001800, "cz?x5,p,T,b", pa10, FLAG_STRICT}, -{ "zvdep", 0xd4000000, 0xfc001fe0, "?xx,T,b", pa10, 0}, -{ "vdep", 0xd4000400, 0xfc001fe0, "?xx,T,b", pa10, 0}, -{ "zdep", 0xd4000800, 0xfc001c00, "?xx,p,T,b", pa10, 0}, -{ "dep", 0xd4000c00, 0xfc001c00, "?xx,p,T,b", pa10, 0}, -{ "zvdepi", 0xd4001000, 0xfc001fe0, "?x5,T,b", pa10, 0}, -{ "vdepi", 0xd4001400, 0xfc001fe0, "?x5,T,b", pa10, 0}, -{ "zdepi", 0xd4001800, 0xfc001c00, "?x5,p,T,b", pa10, 0}, -{ "depi", 0xd4001c00, 0xfc001c00, "?x5,p,T,b", pa10, 0}, - -/* System Control Instructions. */ - -{ "break", 0x00000000, 0xfc001fe0, "r,A", pa10, 0}, -{ "rfi", 0x00000c00, 0xffffff1f, "cr", pa10, FLAG_STRICT}, -{ "rfi", 0x00000c00, 0xffffffff, "", pa10, 0}, -{ "rfir", 0x00000ca0, 0xffffffff, "", pa11, 0}, -{ "ssm", 0x00000d60, 0xfc00ffe0, "U,t", pa20, FLAG_STRICT}, -{ "ssm", 0x00000d60, 0xffe0ffe0, "R,t", pa10, 0}, -{ "rsm", 0x00000e60, 0xfc00ffe0, "U,t", pa20, FLAG_STRICT}, -{ "rsm", 0x00000e60, 0xffe0ffe0, "R,t", pa10, 0}, -{ "mtsm", 0x00001860, 0xffe0ffff, "x", pa10, 0}, -{ "ldsid", 0x000010a0, 0xfc1fffe0, "(b),t", pa10, 0}, -{ "ldsid", 0x000010a0, 0xfc1f3fe0, "(s,b),t", pa10, 0}, -{ "mtsp", 0x00001820, 0xffe01fff, "x,S", pa10, 0}, -{ "mtctl", 0x00001840, 0xfc00ffff, "x,^", pa10, 0}, -{ "mtsarcm", 0x016018C0, 0xffe0ffff, "x", pa20, FLAG_STRICT}, -{ "mfia", 0x000014A0, 0xffffffe0, "t", pa20, FLAG_STRICT}, -{ "mfsp", 0x000004a0, 0xffff1fe0, "S,t", pa10, 0}, -{ "mfctl", 0x016048a0, 0xffffffe0, "cW!,t", pa20, FLAG_STRICT}, -{ "mfctl", 0x000008a0, 0xfc1fffe0, "^,t", pa10, 0}, -{ "sync", 0x00000400, 0xffffffff, "", pa10, 0}, -{ "syncdma", 0x00100400, 0xffffffff, "", pa10, 0}, -{ "probe", 0x04001180, 0xfc00ffa0, "cw(b),x,t", pa10, FLAG_STRICT}, -{ "probe", 0x04001180, 0xfc003fa0, "cw(s,b),x,t", pa10, FLAG_STRICT}, -{ "probei", 0x04003180, 0xfc00ffa0, "cw(b),R,t", pa10, FLAG_STRICT}, -{ "probei", 0x04003180, 0xfc003fa0, "cw(s,b),R,t", pa10, FLAG_STRICT}, -{ "prober", 0x04001180, 0xfc00ffe0, "(b),x,t", pa10, 0}, -{ "prober", 0x04001180, 0xfc003fe0, "(s,b),x,t", pa10, 0}, -{ "proberi", 0x04003180, 0xfc00ffe0, "(b),R,t", pa10, 0}, -{ "proberi", 0x04003180, 0xfc003fe0, "(s,b),R,t", pa10, 0}, -{ "probew", 0x040011c0, 0xfc00ffe0, "(b),x,t", pa10, 0}, -{ "probew", 0x040011c0, 0xfc003fe0, "(s,b),x,t", pa10, 0}, -{ "probewi", 0x040031c0, 0xfc00ffe0, "(b),R,t", pa10, 0}, -{ "probewi", 0x040031c0, 0xfc003fe0, "(s,b),R,t", pa10, 0}, -{ "lpa", 0x04001340, 0xfc00ffc0, "cZx(b),t", pa10, 0}, -{ "lpa", 0x04001340, 0xfc003fc0, "cZx(s,b),t", pa10, 0}, -{ "lci", 0x04001300, 0xfc00ffe0, "x(b),t", pa11, 0}, -{ "lci", 0x04001300, 0xfc003fe0, "x(s,b),t", pa11, 0}, -{ "pdtlb", 0x04001600, 0xfc00ffdf, "cLcZx(b)", pa20, FLAG_STRICT}, -{ "pdtlb", 0x04001600, 0xfc003fdf, "cLcZx(s,b)", pa20, FLAG_STRICT}, -{ "pdtlb", 0x04001600, 0xfc1fffdf, "cLcZ@(b)", pa20, FLAG_STRICT}, -{ "pdtlb", 0x04001600, 0xfc1f3fdf, "cLcZ@(s,b)", pa20, FLAG_STRICT}, -{ "pdtlb", 0x04001200, 0xfc00ffdf, "cZx(b)", pa10, 0}, -{ "pdtlb", 0x04001200, 0xfc003fdf, "cZx(s,b)", pa10, 0}, -{ "pitlb", 0x04000600, 0xfc001fdf, "cLcZx(S,b)", pa20, FLAG_STRICT}, -{ "pitlb", 0x04000600, 0xfc1f1fdf, "cLcZ@(S,b)", pa20, FLAG_STRICT}, -{ "pitlb", 0x04000200, 0xfc001fdf, "cZx(S,b)", pa10, 0}, -{ "pdtlbe", 0x04001240, 0xfc00ffdf, "cZx(b)", pa10, 0}, -{ "pdtlbe", 0x04001240, 0xfc003fdf, "cZx(s,b)", pa10, 0}, -{ "pitlbe", 0x04000240, 0xfc001fdf, "cZx(S,b)", pa10, 0}, -{ "idtlba", 0x04001040, 0xfc00ffff, "x,(b)", pa10, 0}, -{ "idtlba", 0x04001040, 0xfc003fff, "x,(s,b)", pa10, 0}, -{ "iitlba", 0x04000040, 0xfc001fff, "x,(S,b)", pa10, 0}, -{ "idtlbp", 0x04001000, 0xfc00ffff, "x,(b)", pa10, 0}, -{ "idtlbp", 0x04001000, 0xfc003fff, "x,(s,b)", pa10, 0}, -{ "iitlbp", 0x04000000, 0xfc001fff, "x,(S,b)", pa10, 0}, -{ "pdc", 0x04001380, 0xfc00ffdf, "cZx(b)", pa10, 0}, -{ "pdc", 0x04001380, 0xfc003fdf, "cZx(s,b)", pa10, 0}, -{ "fdc", 0x04001280, 0xfc00ffdf, "cZx(b)", pa10, FLAG_STRICT}, -{ "fdc", 0x04001280, 0xfc003fdf, "cZx(s,b)", pa10, FLAG_STRICT}, -{ "fdc", 0x04003280, 0xfc00ffff, "5(b)", pa20, FLAG_STRICT}, -{ "fdc", 0x04003280, 0xfc003fff, "5(s,b)", pa20, FLAG_STRICT}, -{ "fdc", 0x04001280, 0xfc00ffdf, "cZx(b)", pa10, 0}, -{ "fdc", 0x04001280, 0xfc003fdf, "cZx(s,b)", pa10, 0}, -{ "fic", 0x040013c0, 0xfc00dfdf, "cZx(b)", pa20, FLAG_STRICT}, -{ "fic", 0x04000280, 0xfc001fdf, "cZx(S,b)", pa10, 0}, -{ "fdce", 0x040012c0, 0xfc00ffdf, "cZx(b)", pa10, 0}, -{ "fdce", 0x040012c0, 0xfc003fdf, "cZx(s,b)", pa10, 0}, -{ "fice", 0x040002c0, 0xfc001fdf, "cZx(S,b)", pa10, 0}, -{ "diag", 0x14000000, 0xfc000000, "D", pa10, 0}, -{ "idtlbt", 0x04001800, 0xfc00ffff, "x,b", pa20, FLAG_STRICT}, -{ "iitlbt", 0x04000800, 0xfc00ffff, "x,b", pa20, FLAG_STRICT}, - -/* These may be specific to certain versions of the PA. Joel claimed - they were 72000 (7200?) specific. However, I'm almost certain the - mtcpu/mfcpu were undocumented, but available in the older 700 machines. */ -{ "mtcpu", 0x14001600, 0xfc00ffff, "x,^", pa10, 0}, -{ "mfcpu", 0x14001A00, 0xfc00ffff, "^,x", pa10, 0}, -{ "tocen", 0x14403600, 0xffffffff, "", pa10, 0}, -{ "tocdis", 0x14401620, 0xffffffff, "", pa10, 0}, -{ "shdwgr", 0x14402600, 0xffffffff, "", pa10, 0}, -{ "grshdw", 0x14400620, 0xffffffff, "", pa10, 0}, - -/* gfw and gfr are not in the HP PA 1.1 manual, but they are in either - the Timex FPU or the Mustang ERS (not sure which) manual. */ -{ "gfw", 0x04001680, 0xfc00ffdf, "cZx(b)", pa11, 0}, -{ "gfw", 0x04001680, 0xfc003fdf, "cZx(s,b)", pa11, 0}, -{ "gfr", 0x04001a80, 0xfc00ffdf, "cZx(b)", pa11, 0}, -{ "gfr", 0x04001a80, 0xfc003fdf, "cZx(s,b)", pa11, 0}, - -/* Floating Point Coprocessor Instructions. */ - -{ "fldw", 0x24000000, 0xfc00df80, "cXx(b),fT", pa10, FLAG_STRICT}, -{ "fldw", 0x24000000, 0xfc001f80, "cXx(s,b),fT", pa10, FLAG_STRICT}, -{ "fldw", 0x24000000, 0xfc00d380, "cxccx(b),fT", pa11, FLAG_STRICT}, -{ "fldw", 0x24000000, 0xfc001380, "cxccx(s,b),fT", pa11, FLAG_STRICT}, -{ "fldw", 0x24001020, 0xfc1ff3a0, "cocc@(b),fT", pa20, FLAG_STRICT}, -{ "fldw", 0x24001020, 0xfc1f33a0, "cocc@(s,b),fT", pa20, FLAG_STRICT}, -{ "fldw", 0x24001000, 0xfc00df80, "cM5(b),fT", pa10, FLAG_STRICT}, -{ "fldw", 0x24001000, 0xfc001f80, "cM5(s,b),fT", pa10, FLAG_STRICT}, -{ "fldw", 0x24001000, 0xfc00d380, "cmcc5(b),fT", pa11, FLAG_STRICT}, -{ "fldw", 0x24001000, 0xfc001380, "cmcc5(s,b),fT", pa11, FLAG_STRICT}, -{ "fldw", 0x5c000000, 0xfc000004, "y(b),fe", pa20w, FLAG_STRICT}, -{ "fldw", 0x58000000, 0xfc000000, "cJy(b),fe", pa20w, FLAG_STRICT}, -{ "fldw", 0x5c000000, 0xfc00c004, "d(b),fe", pa20, FLAG_STRICT}, -{ "fldw", 0x5c000000, 0xfc000004, "d(s,b),fe", pa20, FLAG_STRICT}, -{ "fldw", 0x58000000, 0xfc00c000, "cJd(b),fe", pa20, FLAG_STRICT}, -{ "fldw", 0x58000000, 0xfc000000, "cJd(s,b),fe", pa20, FLAG_STRICT}, -{ "fldd", 0x2c000000, 0xfc00dfc0, "cXx(b),ft", pa10, FLAG_STRICT}, -{ "fldd", 0x2c000000, 0xfc001fc0, "cXx(s,b),ft", pa10, FLAG_STRICT}, -{ "fldd", 0x2c000000, 0xfc00d3c0, "cxccx(b),ft", pa11, FLAG_STRICT}, -{ "fldd", 0x2c000000, 0xfc0013c0, "cxccx(s,b),ft", pa11, FLAG_STRICT}, -{ "fldd", 0x2c001020, 0xfc1ff3e0, "cocc@(b),ft", pa20, FLAG_STRICT}, -{ "fldd", 0x2c001020, 0xfc1f33e0, "cocc@(s,b),ft", pa20, FLAG_STRICT}, -{ "fldd", 0x2c001000, 0xfc00dfc0, "cM5(b),ft", pa10, FLAG_STRICT}, -{ "fldd", 0x2c001000, 0xfc001fc0, "cM5(s,b),ft", pa10, FLAG_STRICT}, -{ "fldd", 0x2c001000, 0xfc00d3c0, "cmcc5(b),ft", pa11, FLAG_STRICT}, -{ "fldd", 0x2c001000, 0xfc0013c0, "cmcc5(s,b),ft", pa11, FLAG_STRICT}, -{ "fldd", 0x50000002, 0xfc000002, "cq&(b),fx", pa20w, FLAG_STRICT}, -{ "fldd", 0x50000002, 0xfc00c002, "cq#(b),fx", pa20, FLAG_STRICT}, -{ "fldd", 0x50000002, 0xfc000002, "cq#(s,b),fx", pa20, FLAG_STRICT}, -{ "fstw", 0x24000200, 0xfc00df80, "cXfT,x(b)", pa10, FLAG_STRICT}, -{ "fstw", 0x24000200, 0xfc001f80, "cXfT,x(s,b)", pa10, FLAG_STRICT}, -{ "fstw", 0x24000200, 0xfc00d380, "cxcCfT,x(b)", pa11, FLAG_STRICT}, -{ "fstw", 0x24000200, 0xfc001380, "cxcCfT,x(s,b)", pa11, FLAG_STRICT}, -{ "fstw", 0x24001220, 0xfc1ff3a0, "cocCfT,@(b)", pa20, FLAG_STRICT}, -{ "fstw", 0x24001220, 0xfc1f33a0, "cocCfT,@(s,b)", pa20, FLAG_STRICT}, -{ "fstw", 0x24001200, 0xfc00df80, "cMfT,5(b)", pa10, FLAG_STRICT}, -{ "fstw", 0x24001200, 0xfc001f80, "cMfT,5(s,b)", pa10, FLAG_STRICT}, -{ "fstw", 0x24001200, 0xfc00df80, "cMfT,5(b)", pa10, FLAG_STRICT}, -{ "fstw", 0x24001200, 0xfc001f80, "cMfT,5(s,b)", pa10, FLAG_STRICT}, -{ "fstw", 0x7c000000, 0xfc000004, "fE,y(b)", pa20w, FLAG_STRICT}, -{ "fstw", 0x78000000, 0xfc000000, "cJfE,y(b)", pa20w, FLAG_STRICT}, -{ "fstw", 0x7c000000, 0xfc00c004, "fE,d(b)", pa20, FLAG_STRICT}, -{ "fstw", 0x7c000000, 0xfc000004, "fE,d(s,b)", pa20, FLAG_STRICT}, -{ "fstw", 0x78000000, 0xfc00c000, "cJfE,d(b)", pa20, FLAG_STRICT}, -{ "fstw", 0x78000000, 0xfc000000, "cJfE,d(s,b)", pa20, FLAG_STRICT}, -{ "fstd", 0x2c000200, 0xfc00dfc0, "cXft,x(b)", pa10, FLAG_STRICT}, -{ "fstd", 0x2c000200, 0xfc001fc0, "cXft,x(s,b)", pa10, FLAG_STRICT}, -{ "fstd", 0x2c000200, 0xfc00d3c0, "cxcCft,x(b)", pa11, FLAG_STRICT}, -{ "fstd", 0x2c000200, 0xfc0013c0, "cxcCft,x(s,b)", pa11, FLAG_STRICT}, -{ "fstd", 0x2c001220, 0xfc1ff3e0, "cocCft,@(b)", pa20, FLAG_STRICT}, -{ "fstd", 0x2c001220, 0xfc1f33e0, "cocCft,@(s,b)", pa20, FLAG_STRICT}, -{ "fstd", 0x2c001200, 0xfc00dfc0, "cMft,5(b)", pa10, FLAG_STRICT}, -{ "fstd", 0x2c001200, 0xfc001fc0, "cMft,5(s,b)", pa10, FLAG_STRICT}, -{ "fstd", 0x2c001200, 0xfc00d3c0, "cmcCft,5(b)", pa11, FLAG_STRICT}, -{ "fstd", 0x2c001200, 0xfc0013c0, "cmcCft,5(s,b)", pa11, FLAG_STRICT}, -{ "fstd", 0x70000002, 0xfc000002, "cqfx,&(b)", pa20w, FLAG_STRICT}, -{ "fstd", 0x70000002, 0xfc00c002, "cqfx,#(b)", pa20, FLAG_STRICT}, -{ "fstd", 0x70000002, 0xfc000002, "cqfx,#(s,b)", pa20, FLAG_STRICT}, -{ "fldwx", 0x24000000, 0xfc00df80, "cXx(b),fT", pa10, FLAG_STRICT}, -{ "fldwx", 0x24000000, 0xfc001f80, "cXx(s,b),fT", pa10, FLAG_STRICT}, -{ "fldwx", 0x24000000, 0xfc00d380, "cxccx(b),fT", pa11, FLAG_STRICT}, -{ "fldwx", 0x24000000, 0xfc001380, "cxccx(s,b),fT", pa11, FLAG_STRICT}, -{ "fldwx", 0x24000000, 0xfc00df80, "cXx(b),fT", pa10, 0}, -{ "fldwx", 0x24000000, 0xfc001f80, "cXx(s,b),fT", pa10, 0}, -{ "flddx", 0x2c000000, 0xfc00dfc0, "cXx(b),ft", pa10, FLAG_STRICT}, -{ "flddx", 0x2c000000, 0xfc001fc0, "cXx(s,b),ft", pa10, FLAG_STRICT}, -{ "flddx", 0x2c000000, 0xfc00d3c0, "cxccx(b),ft", pa11, FLAG_STRICT}, -{ "flddx", 0x2c000000, 0xfc0013c0, "cxccx(s,b),ft", pa11, FLAG_STRICT}, -{ "flddx", 0x2c000000, 0xfc00dfc0, "cXx(b),ft", pa10, 0}, -{ "flddx", 0x2c000000, 0xfc001fc0, "cXx(s,b),ft", pa10, 0}, -{ "fstwx", 0x24000200, 0xfc00df80, "cxfT,x(b)", pa10, FLAG_STRICT}, -{ "fstwx", 0x24000200, 0xfc001f80, "cxfT,x(s,b)", pa10, FLAG_STRICT}, -{ "fstwx", 0x24000200, 0xfc00d380, "cxcCfT,x(b)", pa11, FLAG_STRICT}, -{ "fstwx", 0x24000200, 0xfc001380, "cxcCfT,x(s,b)", pa11, FLAG_STRICT}, -{ "fstwx", 0x24000200, 0xfc00df80, "cxfT,x(b)", pa10, 0}, -{ "fstwx", 0x24000200, 0xfc001f80, "cxfT,x(s,b)", pa10, 0}, -{ "fstdx", 0x2c000200, 0xfc00dfc0, "cxft,x(b)", pa10, FLAG_STRICT}, -{ "fstdx", 0x2c000200, 0xfc001fc0, "cxft,x(s,b)", pa10, FLAG_STRICT}, -{ "fstdx", 0x2c000200, 0xfc00d3c0, "cxcCft,x(b)", pa11, FLAG_STRICT}, -{ "fstdx", 0x2c000200, 0xfc0013c0, "cxcCft,x(s,b)", pa11, FLAG_STRICT}, -{ "fstdx", 0x2c000200, 0xfc00dfc0, "cxft,x(b)", pa10, 0}, -{ "fstdx", 0x2c000200, 0xfc001fc0, "cxft,x(s,b)", pa10, 0}, -{ "fstqx", 0x3c000200, 0xfc00dfc0, "cXft,x(b)", pa10, 0}, -{ "fstqx", 0x3c000200, 0xfc001fc0, "cXft,x(s,b)", pa10, 0}, -{ "fldws", 0x24001000, 0xfc00df80, "cm5(b),fT", pa10, FLAG_STRICT}, -{ "fldws", 0x24001000, 0xfc001f80, "cm5(s,b),fT", pa10, FLAG_STRICT}, -{ "fldws", 0x24001000, 0xfc00d380, "cmcc5(b),fT", pa11, FLAG_STRICT}, -{ "fldws", 0x24001000, 0xfc001380, "cmcc5(s,b),fT", pa11, FLAG_STRICT}, -{ "fldws", 0x24001000, 0xfc00df80, "cm5(b),fT", pa10, 0}, -{ "fldws", 0x24001000, 0xfc001f80, "cm5(s,b),fT", pa10, 0}, -{ "fldds", 0x2c001000, 0xfc00dfc0, "cm5(b),ft", pa10, FLAG_STRICT}, -{ "fldds", 0x2c001000, 0xfc001fc0, "cm5(s,b),ft", pa10, FLAG_STRICT}, -{ "fldds", 0x2c001000, 0xfc00d3c0, "cmcc5(b),ft", pa11, FLAG_STRICT}, -{ "fldds", 0x2c001000, 0xfc0013c0, "cmcc5(s,b),ft", pa11, FLAG_STRICT}, -{ "fldds", 0x2c001000, 0xfc00dfc0, "cm5(b),ft", pa10, 0}, -{ "fldds", 0x2c001000, 0xfc001fc0, "cm5(s,b),ft", pa10, 0}, -{ "fstws", 0x24001200, 0xfc00df80, "cmfT,5(b)", pa10, FLAG_STRICT}, -{ "fstws", 0x24001200, 0xfc001f80, "cmfT,5(s,b)", pa10, FLAG_STRICT}, -{ "fstws", 0x24001200, 0xfc00d380, "cmcCfT,5(b)", pa11, FLAG_STRICT}, -{ "fstws", 0x24001200, 0xfc001380, "cmcCfT,5(s,b)", pa11, FLAG_STRICT}, -{ "fstws", 0x24001200, 0xfc00df80, "cmfT,5(b)", pa10, 0}, -{ "fstws", 0x24001200, 0xfc001f80, "cmfT,5(s,b)", pa10, 0}, -{ "fstds", 0x2c001200, 0xfc00dfc0, "cmft,5(b)", pa10, FLAG_STRICT}, -{ "fstds", 0x2c001200, 0xfc001fc0, "cmft,5(s,b)", pa10, FLAG_STRICT}, -{ "fstds", 0x2c001200, 0xfc00d3c0, "cmcCft,5(b)", pa11, FLAG_STRICT}, -{ "fstds", 0x2c001200, 0xfc0013c0, "cmcCft,5(s,b)", pa11, FLAG_STRICT}, -{ "fstds", 0x2c001200, 0xfc00dfc0, "cmft,5(b)", pa10, 0}, -{ "fstds", 0x2c001200, 0xfc001fc0, "cmft,5(s,b)", pa10, 0}, -{ "fstqs", 0x3c001200, 0xfc00dfc0, "cMft,5(b)", pa10, 0}, -{ "fstqs", 0x3c001200, 0xfc001fc0, "cMft,5(s,b)", pa10, 0}, -{ "fadd", 0x30000600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0}, -{ "fadd", 0x38000600, 0xfc00e720, "IfA,fB,fT", pa10, 0}, -{ "fsub", 0x30002600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0}, -{ "fsub", 0x38002600, 0xfc00e720, "IfA,fB,fT", pa10, 0}, -{ "fmpy", 0x30004600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0}, -{ "fmpy", 0x38004600, 0xfc00e720, "IfA,fB,fT", pa10, 0}, -{ "fdiv", 0x30006600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0}, -{ "fdiv", 0x38006600, 0xfc00e720, "IfA,fB,fT", pa10, 0}, -{ "fsqrt", 0x30008000, 0xfc1fe7e0, "Ffa,fT", pa10, 0}, -{ "fsqrt", 0x38008000, 0xfc1fe720, "FfA,fT", pa10, 0}, -{ "fabs", 0x30006000, 0xfc1fe7e0, "Ffa,fT", pa10, 0}, -{ "fabs", 0x38006000, 0xfc1fe720, "FfA,fT", pa10, 0}, -{ "frem", 0x30008600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0}, -{ "frem", 0x38008600, 0xfc00e720, "FfA,fB,fT", pa10, 0}, -{ "frnd", 0x3000a000, 0xfc1fe7e0, "Ffa,fT", pa10, 0}, -{ "frnd", 0x3800a000, 0xfc1fe720, "FfA,fT", pa10, 0}, -{ "fcpy", 0x30004000, 0xfc1fe7e0, "Ffa,fT", pa10, 0}, -{ "fcpy", 0x38004000, 0xfc1fe720, "FfA,fT", pa10, 0}, -{ "fcnvff", 0x30000200, 0xfc1f87e0, "FGfa,fT", pa10, 0}, -{ "fcnvff", 0x38000200, 0xfc1f8720, "FGfA,fT", pa10, 0}, -{ "fcnvxf", 0x30008200, 0xfc1f87e0, "FGfa,fT", pa10, 0}, -{ "fcnvxf", 0x38008200, 0xfc1f8720, "FGfA,fT", pa10, 0}, -{ "fcnvfx", 0x30010200, 0xfc1f87e0, "FGfa,fT", pa10, 0}, -{ "fcnvfx", 0x38010200, 0xfc1f8720, "FGfA,fT", pa10, 0}, -{ "fcnvfxt", 0x30018200, 0xfc1f87e0, "FGfa,fT", pa10, 0}, -{ "fcnvfxt", 0x38018200, 0xfc1f8720, "FGfA,fT", pa10, 0}, -{ "fmpyfadd", 0xb8000000, 0xfc000020, "IfA,fB,fC,fT", pa20, FLAG_STRICT}, -{ "fmpynfadd", 0xb8000020, 0xfc000020, "IfA,fB,fC,fT", pa20, FLAG_STRICT}, -{ "fneg", 0x3000c000, 0xfc1fe7e0, "Ffa,fT", pa20, FLAG_STRICT}, -{ "fneg", 0x3800c000, 0xfc1fe720, "IfA,fT", pa20, FLAG_STRICT}, -{ "fnegabs", 0x3000e000, 0xfc1fe7e0, "Ffa,fT", pa20, FLAG_STRICT}, -{ "fnegabs", 0x3800e000, 0xfc1fe720, "IfA,fT", pa20, FLAG_STRICT}, -{ "fcnv", 0x30000200, 0xfc1c0720, "{_fa,fT", pa20, FLAG_STRICT}, -{ "fcnv", 0x38000200, 0xfc1c0720, "FGfA,fT", pa20, FLAG_STRICT}, -{ "fcmp", 0x30000400, 0xfc00e7e0, "F?ffa,fb", pa10, FLAG_STRICT}, -{ "fcmp", 0x38000400, 0xfc00e720, "I?ffA,fB", pa10, FLAG_STRICT}, -{ "fcmp", 0x30000400, 0xfc0007e0, "F?ffa,fb,h", pa20, FLAG_STRICT}, -{ "fcmp", 0x38000400, 0xfc000720, "I?ffA,fB,h", pa20, FLAG_STRICT}, -{ "fcmp", 0x30000400, 0xfc00e7e0, "F?ffa,fb", pa10, 0}, -{ "fcmp", 0x38000400, 0xfc00e720, "I?ffA,fB", pa10, 0}, -{ "xmpyu", 0x38004700, 0xfc00e720, "fX,fB,fT", pa11, 0}, -{ "fmpyadd", 0x18000000, 0xfc000000, "Hfi,fj,fk,fl,fm", pa11, 0}, -{ "fmpysub", 0x98000000, 0xfc000000, "Hfi,fj,fk,fl,fm", pa11, 0}, -{ "ftest", 0x30002420, 0xffffffff, "", pa10, FLAG_STRICT}, -{ "ftest", 0x30002420, 0xffffffe0, ",=", pa20, FLAG_STRICT}, -{ "ftest", 0x30000420, 0xffff1fff, "m", pa20, FLAG_STRICT}, -{ "fid", 0x30000000, 0xffffffff, "", pa11, 0}, - -/* Performance Monitor Instructions. */ - -{ "pmdis", 0x30000280, 0xffffffdf, "N", pa20, FLAG_STRICT}, -{ "pmenb", 0x30000680, 0xffffffff, "", pa20, FLAG_STRICT}, - -/* Assist Instructions. */ - -{ "spop0", 0x10000000, 0xfc000600, "v,ON", pa10, 0}, -{ "spop1", 0x10000200, 0xfc000600, "v,oNt", pa10, 0}, -{ "spop2", 0x10000400, 0xfc000600, "v,1Nb", pa10, 0}, -{ "spop3", 0x10000600, 0xfc000600, "v,0Nx,b", pa10, 0}, -{ "copr", 0x30000000, 0xfc000000, "u,2N", pa10, 0}, -{ "cldw", 0x24000000, 0xfc00de00, "ucXx(b),t", pa10, FLAG_STRICT}, -{ "cldw", 0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT}, -{ "cldw", 0x24000000, 0xfc00d200, "ucxccx(b),t", pa11, FLAG_STRICT}, -{ "cldw", 0x24000000, 0xfc001200, "ucxccx(s,b),t", pa11, FLAG_STRICT}, -{ "cldw", 0x24001000, 0xfc00d200, "ucocc@(b),t", pa20, FLAG_STRICT}, -{ "cldw", 0x24001000, 0xfc001200, "ucocc@(s,b),t", pa20, FLAG_STRICT}, -{ "cldw", 0x24001000, 0xfc00de00, "ucM5(b),t", pa10, FLAG_STRICT}, -{ "cldw", 0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT}, -{ "cldw", 0x24001000, 0xfc00d200, "ucmcc5(b),t", pa11, FLAG_STRICT}, -{ "cldw", 0x24001000, 0xfc001200, "ucmcc5(s,b),t", pa11, FLAG_STRICT}, -{ "cldd", 0x2c000000, 0xfc00de00, "ucXx(b),t", pa10, FLAG_STRICT}, -{ "cldd", 0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT}, -{ "cldd", 0x2c000000, 0xfc00d200, "ucxccx(b),t", pa11, FLAG_STRICT}, -{ "cldd", 0x2c000000, 0xfc001200, "ucxccx(s,b),t", pa11, FLAG_STRICT}, -{ "cldd", 0x2c001000, 0xfc00d200, "ucocc@(b),t", pa20, FLAG_STRICT}, -{ "cldd", 0x2c001000, 0xfc001200, "ucocc@(s,b),t", pa20, FLAG_STRICT}, -{ "cldd", 0x2c001000, 0xfc00de00, "ucM5(b),t", pa10, FLAG_STRICT}, -{ "cldd", 0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT}, -{ "cldd", 0x2c001000, 0xfc00d200, "ucmcc5(b),t", pa11, FLAG_STRICT}, -{ "cldd", 0x2c001000, 0xfc001200, "ucmcc5(s,b),t", pa11, FLAG_STRICT}, -{ "cstw", 0x24000200, 0xfc00de00, "ucXt,x(b)", pa10, FLAG_STRICT}, -{ "cstw", 0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT}, -{ "cstw", 0x24000200, 0xfc00d200, "ucxcCt,x(b)", pa11, FLAG_STRICT}, -{ "cstw", 0x24000200, 0xfc001200, "ucxcCt,x(s,b)", pa11, FLAG_STRICT}, -{ "cstw", 0x24001200, 0xfc00d200, "ucocCt,@(b)", pa20, FLAG_STRICT}, -{ "cstw", 0x24001200, 0xfc001200, "ucocCt,@(s,b)", pa20, FLAG_STRICT}, -{ "cstw", 0x24001200, 0xfc00de00, "ucMt,5(b)", pa10, FLAG_STRICT}, -{ "cstw", 0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT}, -{ "cstw", 0x24001200, 0xfc00d200, "ucmcCt,5(b)", pa11, FLAG_STRICT}, -{ "cstw", 0x24001200, 0xfc001200, "ucmcCt,5(s,b)", pa11, FLAG_STRICT}, -{ "cstd", 0x2c000200, 0xfc00de00, "ucXt,x(b)", pa10, FLAG_STRICT}, -{ "cstd", 0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT}, -{ "cstd", 0x2c000200, 0xfc00d200, "ucxcCt,x(b)", pa11, FLAG_STRICT}, -{ "cstd", 0x2c000200, 0xfc001200, "ucxcCt,x(s,b)", pa11, FLAG_STRICT}, -{ "cstd", 0x2c001200, 0xfc00d200, "ucocCt,@(b)", pa20, FLAG_STRICT}, -{ "cstd", 0x2c001200, 0xfc001200, "ucocCt,@(s,b)", pa20, FLAG_STRICT}, -{ "cstd", 0x2c001200, 0xfc00de00, "ucMt,5(b)", pa10, FLAG_STRICT}, -{ "cstd", 0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT}, -{ "cstd", 0x2c001200, 0xfc00d200, "ucmcCt,5(b)", pa11, FLAG_STRICT}, -{ "cstd", 0x2c001200, 0xfc001200, "ucmcCt,5(s,b)", pa11, FLAG_STRICT}, -{ "cldwx", 0x24000000, 0xfc00de00, "ucXx(b),t", pa10, FLAG_STRICT}, -{ "cldwx", 0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT}, -{ "cldwx", 0x24000000, 0xfc00d200, "ucxccx(b),t", pa11, FLAG_STRICT}, -{ "cldwx", 0x24000000, 0xfc001200, "ucxccx(s,b),t", pa11, FLAG_STRICT}, -{ "cldwx", 0x24000000, 0xfc00de00, "ucXx(b),t", pa10, 0}, -{ "cldwx", 0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, 0}, -{ "clddx", 0x2c000000, 0xfc00de00, "ucXx(b),t", pa10, FLAG_STRICT}, -{ "clddx", 0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT}, -{ "clddx", 0x2c000000, 0xfc00d200, "ucxccx(b),t", pa11, FLAG_STRICT}, -{ "clddx", 0x2c000000, 0xfc001200, "ucxccx(s,b),t", pa11, FLAG_STRICT}, -{ "clddx", 0x2c000000, 0xfc00de00, "ucXx(b),t", pa10, 0}, -{ "clddx", 0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, 0}, -{ "cstwx", 0x24000200, 0xfc00de00, "ucXt,x(b)", pa10, FLAG_STRICT}, -{ "cstwx", 0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT}, -{ "cstwx", 0x24000200, 0xfc00d200, "ucxcCt,x(b)", pa11, FLAG_STRICT}, -{ "cstwx", 0x24000200, 0xfc001200, "ucxcCt,x(s,b)", pa11, FLAG_STRICT}, -{ "cstwx", 0x24000200, 0xfc00de00, "ucXt,x(b)", pa10, 0}, -{ "cstwx", 0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, 0}, -{ "cstdx", 0x2c000200, 0xfc00de00, "ucXt,x(b)", pa10, FLAG_STRICT}, -{ "cstdx", 0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT}, -{ "cstdx", 0x2c000200, 0xfc00d200, "ucxcCt,x(b)", pa11, FLAG_STRICT}, -{ "cstdx", 0x2c000200, 0xfc001200, "ucxcCt,x(s,b)", pa11, FLAG_STRICT}, -{ "cstdx", 0x2c000200, 0xfc00de00, "ucXt,x(b)", pa10, 0}, -{ "cstdx", 0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, 0}, -{ "cldws", 0x24001000, 0xfc00de00, "ucM5(b),t", pa10, FLAG_STRICT}, -{ "cldws", 0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT}, -{ "cldws", 0x24001000, 0xfc00d200, "ucmcc5(b),t", pa11, FLAG_STRICT}, -{ "cldws", 0x24001000, 0xfc001200, "ucmcc5(s,b),t", pa11, FLAG_STRICT}, -{ "cldws", 0x24001000, 0xfc00de00, "ucM5(b),t", pa10, 0}, -{ "cldws", 0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, 0}, -{ "cldds", 0x2c001000, 0xfc00de00, "ucM5(b),t", pa10, FLAG_STRICT}, -{ "cldds", 0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT}, -{ "cldds", 0x2c001000, 0xfc00d200, "ucmcc5(b),t", pa11, FLAG_STRICT}, -{ "cldds", 0x2c001000, 0xfc001200, "ucmcc5(s,b),t", pa11, FLAG_STRICT}, -{ "cldds", 0x2c001000, 0xfc00de00, "ucM5(b),t", pa10, 0}, -{ "cldds", 0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, 0}, -{ "cstws", 0x24001200, 0xfc00de00, "ucMt,5(b)", pa10, FLAG_STRICT}, -{ "cstws", 0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT}, -{ "cstws", 0x24001200, 0xfc00d200, "ucmcCt,5(b)", pa11, FLAG_STRICT}, -{ "cstws", 0x24001200, 0xfc001200, "ucmcCt,5(s,b)", pa11, FLAG_STRICT}, -{ "cstws", 0x24001200, 0xfc00de00, "ucMt,5(b)", pa10, 0}, -{ "cstws", 0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, 0}, -{ "cstds", 0x2c001200, 0xfc00de00, "ucMt,5(b)", pa10, FLAG_STRICT}, -{ "cstds", 0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT}, -{ "cstds", 0x2c001200, 0xfc00d200, "ucmcCt,5(b)", pa11, FLAG_STRICT}, -{ "cstds", 0x2c001200, 0xfc001200, "ucmcCt,5(s,b)", pa11, FLAG_STRICT}, -{ "cstds", 0x2c001200, 0xfc00de00, "ucMt,5(b)", pa10, 0}, -{ "cstds", 0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, 0}, - -/* More pseudo instructions which must follow the main table. */ -{ "call", 0xe800f000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT}, -{ "call", 0xe800a000, 0xffe0e000, "nW", pa10, FLAG_STRICT}, -{ "ret", 0xe840d000, 0xfffffffd, "n", pa20, FLAG_STRICT}, - -}; - -#define NUMOPCODES ((sizeof pa_opcodes)/(sizeof pa_opcodes[0])) - -/* SKV 12/18/92. Added some denotations for various operands. */ - -#define PA_IMM11_AT_31 'i' -#define PA_IMM14_AT_31 'j' -#define PA_IMM21_AT_31 'k' -#define PA_DISP12 'w' -#define PA_DISP17 'W' - -#define N_HPPA_OPERAND_FORMATS 5 diff --git a/include/opcode/i370.h b/include/opcode/i370.h deleted file mode 100644 index e3b7166..0000000 --- a/include/opcode/i370.h +++ /dev/null @@ -1,267 +0,0 @@ -/* i370.h -- Header file for S/390 opcode table - Copyright 1994, 1995, 1998, 1999, 2000, 2003, 2010 - Free Software Foundation, Inc. - PowerPC version written by Ian Lance Taylor, Cygnus Support - Rewritten for i370 ESA/390 support, Linas Vepstas - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef I370_H -#define I370_H - -/* The opcode table is an array of struct i370_opcode. */ -typedef union -{ - unsigned int i[2]; - unsigned short s[4]; - unsigned char b[8]; -} i370_insn_t; - -struct i370_opcode -{ - /* The opcode name. */ - const char *name; - - /* the length of the instruction */ - char len; - - /* The opcode itself. Those bits which will be filled in with - operands are zeroes. */ - i370_insn_t opcode; - - /* The opcode mask. This is used by the disassembler. This is a - mask containing ones indicating those bits which must match the - opcode field, and zeroes indicating those bits which need not - match (and are presumably filled in by operands). */ - i370_insn_t mask; - - /* One bit flags for the opcode. These are used to indicate which - specific processors support the instructions. The defined values - are listed below. */ - unsigned long flags; - - /* An array of operand codes. Each code is an index into the - operand table. They appear in the order which the operands must - appear in assembly code, and are terminated by a zero. */ - unsigned char operands[8]; -}; - -/* The table itself is sorted by major opcode number, and is otherwise - in the order in which the disassembler should consider - instructions. */ -extern const struct i370_opcode i370_opcodes[]; -extern const int i370_num_opcodes; - -/* Values defined for the flags field of a struct i370_opcode. */ - -/* Opcode is defined for the original 360 architecture. */ -#define I370_OPCODE_360 (0x01) - -/* Opcode is defined for the 370 architecture. */ -#define I370_OPCODE_370 (0x02) - -/* Opcode is defined for the 370-XA architecture. */ -#define I370_OPCODE_370_XA (0x04) - -/* Opcode is defined for the ESA/370 architecture. */ -#define I370_OPCODE_ESA370 (0x08) - -/* Opcode is defined for the ESA/390 architecture. */ -#define I370_OPCODE_ESA390 (0x10) - -/* Opcode is defined for the ESA/390 w/ BFP facility. */ -#define I370_OPCODE_ESA390_BF (0x20) - -/* Opcode is defined for the ESA/390 w/ branch & set authority facility. */ -#define I370_OPCODE_ESA390_BS (0x40) - -/* Opcode is defined for the ESA/390 w/ checksum facility. */ -#define I370_OPCODE_ESA390_CK (0x80) - -/* Opcode is defined for the ESA/390 w/ compare & move extended facility. */ -#define I370_OPCODE_ESA390_CM (0x100) - -/* Opcode is defined for the ESA/390 w/ flt.pt. support extensions facility. */ -#define I370_OPCODE_ESA390_FX (0x200) - -/* Opcode is defined for the ESA/390 w/ HFP facility. */ -#define I370_OPCODE_ESA390_HX (0x400) - -/* Opcode is defined for the ESA/390 w/ immediate & relative facility. */ -#define I370_OPCODE_ESA390_IR (0x800) - -/* Opcode is defined for the ESA/390 w/ move-inverse facility. */ -#define I370_OPCODE_ESA390_MI (0x1000) - -/* Opcode is defined for the ESA/390 w/ program-call-fast facility. */ -#define I370_OPCODE_ESA390_PC (0x2000) - -/* Opcode is defined for the ESA/390 w/ perform-locked-op facility. */ -#define I370_OPCODE_ESA390_PL (0x4000) - -/* Opcode is defined for the ESA/390 w/ square-root facility. */ -#define I370_OPCODE_ESA390_QR (0x8000) - -/* Opcode is defined for the ESA/390 w/ resume-program facility. */ -#define I370_OPCODE_ESA390_RP (0x10000) - -/* Opcode is defined for the ESA/390 w/ set-address-space-fast facility. */ -#define I370_OPCODE_ESA390_SA (0x20000) - -/* Opcode is defined for the ESA/390 w/ subspace group facility. */ -#define I370_OPCODE_ESA390_SG (0x40000) - -/* Opcode is defined for the ESA/390 w/ string facility. */ -#define I370_OPCODE_ESA390_SR (0x80000) - -/* Opcode is defined for the ESA/390 w/ trap facility. */ -#define I370_OPCODE_ESA390_TR (0x100000) - -#define I370_OPCODE_ESA390_SUPERSET (0x1fffff) - - -/* The operands table is an array of struct i370_operand. */ - -struct i370_operand -{ - /* The number of bits in the operand. */ - int bits; - - /* How far the operand is left shifted in the instruction. */ - int shift; - - /* Insertion function. This is used by the assembler. To insert an - operand value into an instruction, check this field. - - If it is NULL, execute - i |= (op & ((1 << o->bits) - 1)) << o->shift; - (i is the instruction which we are filling in, o is a pointer to - this structure, and op is the opcode value; this assumes twos - complement arithmetic). - - If this field is not NULL, then simply call it with the - instruction and the operand value. It will return the new value - of the instruction. If the ERRMSG argument is not NULL, then if - the operand value is illegal, *ERRMSG will be set to a warning - string (the operand will be inserted in any case). If the - operand value is legal, *ERRMSG will be unchanged (most operands - can accept any value). */ - i370_insn_t (*insert) - (i370_insn_t instruction, long op, const char **errmsg); - - /* Extraction function. This is used by the disassembler. To - extract this operand type from an instruction, check this field. - - If it is NULL, compute - op = ((i) >> o->shift) & ((1 << o->bits) - 1); - if ((o->flags & I370_OPERAND_SIGNED) != 0 - && (op & (1 << (o->bits - 1))) != 0) - op -= 1 << o->bits; - (i is the instruction, o is a pointer to this structure, and op - is the result; this assumes twos complement arithmetic). - - If this field is not NULL, then simply call it with the - instruction value. It will return the value of the operand. If - the INVALID argument is not NULL, *INVALID will be set to - non-zero if this operand type can not actually be extracted from - this operand (i.e., the instruction does not match). If the - operand is valid, *INVALID will not be changed. */ - long (*extract) (i370_insn_t instruction, int *invalid); - - /* One bit syntax flags. */ - unsigned long flags; - - /* name -- handy for debugging, otherwise pointless */ - char * name; -}; - -/* Elements in the table are retrieved by indexing with values from - the operands field of the i370_opcodes table. */ - -extern const struct i370_operand i370_operands[]; - -/* Values defined for the flags field of a struct i370_operand. */ - -/* This operand should be wrapped in parentheses rather than - separated from the previous by a comma. This is used for S, RS and - SS form instructions which want their operands to look like - reg,displacement(basereg) */ -#define I370_OPERAND_SBASE (0x01) - -/* This operand is a base register. It may or may not appear next - to an index register, i.e. either of the two forms - reg,displacement(basereg) - reg,displacement(index,basereg) */ -#define I370_OPERAND_BASE (0x02) - -/* This pair of operands should be wrapped in parentheses rather than - separated from the last by a comma. This is used for the RX form - instructions which want their operands to look like - reg,displacement(index,basereg) */ -#define I370_OPERAND_INDEX (0x04) - -/* This operand names a register. The disassembler uses this to print - register names with a leading 'r'. */ -#define I370_OPERAND_GPR (0x08) - -/* This operand names a floating point register. The disassembler - prints these with a leading 'f'. */ -#define I370_OPERAND_FPR (0x10) - -/* This operand is a displacement. */ -#define I370_OPERAND_RELATIVE (0x20) - -/* This operand is a length, such as that in SS form instructions. */ -#define I370_OPERAND_LENGTH (0x40) - -/* This operand is optional, and is zero if omitted. This is used for - the optional B2 field in the shift-left, shift-right instructions. The - assembler must count the number of operands remaining on the line, - and the number of operands remaining for the opcode, and decide - whether this operand is present or not. The disassembler should - print this operand out only if it is not zero. */ -#define I370_OPERAND_OPTIONAL (0x80) - - -/* Define some misc macros. We keep them with the operands table - for simplicity. The macro table is an array of struct i370_macro. */ - -struct i370_macro -{ - /* The macro name. */ - const char *name; - - /* The number of operands the macro takes. */ - unsigned int operands; - - /* One bit flags for the opcode. These are used to indicate which - specific processors support the instructions. The values are the - same as those for the struct i370_opcode flags field. */ - unsigned long flags; - - /* A format string to turn the macro into a normal instruction. - Each %N in the string is replaced with operand number N (zero - based). */ - const char *format; -}; - -extern const struct i370_macro i370_macros[]; -extern const int i370_num_macros; - - -#endif /* I370_H */ diff --git a/include/opcode/i386.h b/include/opcode/i386.h deleted file mode 100644 index 6021002..0000000 --- a/include/opcode/i386.h +++ /dev/null @@ -1,148 +0,0 @@ -/* opcode/i386.h -- Intel 80386 opcode macros - Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 - Free Software Foundation, Inc. - - This file is part of GAS, the GNU Assembler, and GDB, the GNU Debugger. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* The SystemV/386 SVR3.2 assembler, and probably all AT&T derived - ix86 Unix assemblers, generate floating point instructions with - reversed source and destination registers in certain cases. - Unfortunately, gcc and possibly many other programs use this - reversed syntax, so we're stuck with it. - - eg. `fsub %st(3),%st' results in st = st - st(3) as expected, but - `fsub %st,%st(3)' results in st(3) = st - st(3), rather than - the expected st(3) = st(3) - st - - This happens with all the non-commutative arithmetic floating point - operations with two register operands, where the source register is - %st, and destination register is %st(i). - - The affected opcode map is dceX, dcfX, deeX, defX. */ - -#ifndef OPCODE_I386_H -#define OPCODE_I386_H - -#ifndef SYSV386_COMPAT -/* Set non-zero for broken, compatible instructions. Set to zero for - non-broken opcodes at your peril. gcc generates SystemV/386 - compatible instructions. */ -#define SYSV386_COMPAT 1 -#endif -#ifndef OLDGCC_COMPAT -/* Set non-zero to cater for old (<= 2.8.1) versions of gcc that could - generate nonsense fsubp, fsubrp, fdivp and fdivrp with operands - reversed. */ -#define OLDGCC_COMPAT SYSV386_COMPAT -#endif - -#define MOV_AX_DISP32 0xa0 -#define POP_SEG_SHORT 0x07 -#define JUMP_PC_RELATIVE 0xeb -#define INT_OPCODE 0xcd -#define INT3_OPCODE 0xcc -/* The opcode for the fwait instruction, which disassembler treats as a - prefix when it can. */ -#define FWAIT_OPCODE 0x9b - -/* Instruction prefixes. - NOTE: For certain SSE* instructions, 0x66,0xf2,0xf3 are treated as - part of the opcode. Other prefixes may still appear between them - and the 0x0f part of the opcode. */ -#define ADDR_PREFIX_OPCODE 0x67 -#define DATA_PREFIX_OPCODE 0x66 -#define LOCK_PREFIX_OPCODE 0xf0 -#define CS_PREFIX_OPCODE 0x2e -#define DS_PREFIX_OPCODE 0x3e -#define ES_PREFIX_OPCODE 0x26 -#define FS_PREFIX_OPCODE 0x64 -#define GS_PREFIX_OPCODE 0x65 -#define SS_PREFIX_OPCODE 0x36 -#define REPNE_PREFIX_OPCODE 0xf2 -#define REPE_PREFIX_OPCODE 0xf3 -#define XACQUIRE_PREFIX_OPCODE 0xf2 -#define XRELEASE_PREFIX_OPCODE 0xf3 -#define BND_PREFIX_OPCODE 0xf2 - -#define TWO_BYTE_OPCODE_ESCAPE 0x0f -#define NOP_OPCODE (char) 0x90 - -/* register numbers */ -#define EAX_REG_NUM 0 -#define ECX_REG_NUM 1 -#define EDX_REG_NUM 2 -#define EBX_REG_NUM 3 -#define ESP_REG_NUM 4 -#define EBP_REG_NUM 5 -#define ESI_REG_NUM 6 -#define EDI_REG_NUM 7 - -/* modrm_byte.regmem for twobyte escape */ -#define ESCAPE_TO_TWO_BYTE_ADDRESSING ESP_REG_NUM -/* index_base_byte.index for no index register addressing */ -#define NO_INDEX_REGISTER ESP_REG_NUM -/* index_base_byte.base for no base register addressing */ -#define NO_BASE_REGISTER EBP_REG_NUM -#define NO_BASE_REGISTER_16 6 - -/* modrm.mode = REGMEM_FIELD_HAS_REG when a register is in there */ -#define REGMEM_FIELD_HAS_REG 0x3/* always = 0x3 */ -#define REGMEM_FIELD_HAS_MEM (~REGMEM_FIELD_HAS_REG) - -/* Extract fields from the mod/rm byte. */ -#define MODRM_MOD_FIELD(modrm) (((modrm) >> 6) & 3) -#define MODRM_REG_FIELD(modrm) (((modrm) >> 3) & 7) -#define MODRM_RM_FIELD(modrm) (((modrm) >> 0) & 7) - -/* Extract fields from the sib byte. */ -#define SIB_SCALE_FIELD(sib) (((sib) >> 6) & 3) -#define SIB_INDEX_FIELD(sib) (((sib) >> 3) & 7) -#define SIB_BASE_FIELD(sib) (((sib) >> 0) & 7) - -/* x86-64 extension prefix. */ -#define REX_OPCODE 0x40 - -/* Non-zero if OPCODE is the rex prefix. */ -#define REX_PREFIX_P(opcode) (((opcode) & 0xf0) == REX_OPCODE) - -/* Indicates 64 bit operand size. */ -#define REX_W 8 -/* High extension to reg field of modrm byte. */ -#define REX_R 4 -/* High extension to SIB index field. */ -#define REX_X 2 -/* High extension to base field of modrm or SIB, or reg field of opcode. */ -#define REX_B 1 - -/* max operands per insn */ -#define MAX_OPERANDS 5 - -/* max immediates per insn (lcall, ljmp, insertq, extrq) */ -#define MAX_IMMEDIATE_OPERANDS 2 - -/* max memory refs per insn (string ops) */ -#define MAX_MEMORY_OPERANDS 2 - -/* max size of insn mnemonics. */ -#define MAX_MNEM_SIZE 20 - -/* max size of register name in insn mnemonics. */ -#define MAX_REG_NAME_SIZE 8 - -#endif /* OPCODE_I386_H */ diff --git a/include/opcode/i860.h b/include/opcode/i860.h deleted file mode 100644 index 7f4aafd..0000000 --- a/include/opcode/i860.h +++ /dev/null @@ -1,507 +0,0 @@ -/* Table of opcodes for the i860. - Copyright 1989, 1991, 2000, 2002, 2003, 2010 - Free Software Foundation, Inc. - - This file is part of GAS, the GNU Assembler, and GDB, the GNU disassembler. - - GAS/GDB is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GAS/GDB is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GAS or GDB; see the file COPYING3. If not, write to - the Free Software Foundation, 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* Structure of an opcode table entry. */ -struct i860_opcode -{ - /* The opcode name. */ - const char *name; - - /* Bits that must be set. */ - unsigned long match; - - /* Bits that must not be set. */ - unsigned long lose; - - const char *args; - - /* Nonzero if this is a possible expand-instruction. */ - char expand; -}; - - -enum expand_type -{ - E_MOV = 1, E_ADDR, E_U32, E_AND, E_S32, E_DELAY, XP_ONLY -}; - - -/* All i860 opcodes are 32 bits, except for the pseudo-instructions - and the operations utilizing a 32-bit address expression, an - unsigned 32-bit constant, or a signed 32-bit constant. - These opcodes are expanded into a two-instruction sequence for - any situation where the immediate operand does not fit in 32 bits. - In the case of the add and subtract operations the expansion is - to a three-instruction sequence (ex: orh, or, adds). In cases - where the address is to be relocated, the instruction is - expanded to handle the worse case, this could be optimized at - the final link if the actual address were known. - - The pseudoinstructions are: mov, fmov, pmov, nop, and fnop. - These instructions are implemented as a one or two instruction - sequence of other operations. - - The match component is a mask saying which bits must match a - particular opcode in order for an instruction to be an instance - of that opcode. - - The args component is a string containing one character - for each operand of the instruction. - -Kinds of operands: - # Number used by optimizer. It is ignored. - 1 src1 integer register. - 2 src2 integer register. - d dest register. - c ctrlreg control register. - i 16 bit immediate. - I 16 bit immediate, aligned 2^0. (ld.b) - J 16 bit immediate, aligned 2^1. (ld.s) - K 16 bit immediate, aligned 2^2. (ld.l, {p}fld.l, fst.l) - L 16 bit immediate, aligned 2^3. ({p}fld.d, fst.d) - M 16 bit immediate, aligned 2^4. ({p}fld.q, fst.q) - 5 5 bit immediate. - l lbroff 26 bit PC relative immediate. - r sbroff 16 bit PC relative immediate. - s split 16 bit immediate. - S split 16 bit immediate, aligned 2^0. (st.b) - T split 16 bit immediate, aligned 2^1. (st.s) - U split 16 bit immediate, aligned 2^2. (st.l) - e src1 floating point register. - f src2 floating point register. - g dest floating point register. */ - - -/* The order of the opcodes in this table is significant. The assembler - requires that all instances of the same mnemonic must be consecutive. - If they aren't, the assembler will not function properly. - - The order of opcodes does not affect the disassembler. */ - -static const struct i860_opcode i860_opcodes[] = -{ -/* REG-Format Instructions. */ -{ "ld.c", 0x30000000, 0xcc000000, "c,d", 0 }, /* ld.c csrc2,idest */ -{ "ld.b", 0x00000000, 0xfc000000, "1(2),d", 0 }, /* ld.b isrc1(isrc2),idest */ -{ "ld.b", 0x04000000, 0xf8000000, "I(2),d", E_ADDR }, /* ld.b #const(isrc2),idest */ -{ "ld.s", 0x10000000, 0xec000001, "1(2),d", 0 }, /* ld.s isrc1(isrc2),idest */ -{ "ld.s", 0x14000000, 0xe8000001, "J(2),d", E_ADDR }, /* ld.s #const(isrc2),idest */ -{ "ld.l", 0x10000001, 0xec000000, "1(2),d", 0 }, /* ld.l isrc1(isrc2),idest */ -{ "ld.l", 0x14000001, 0xe8000000, "K(2),d", E_ADDR }, /* ld.l #const(isrc2),idest */ - -{ "st.c", 0x38000000, 0xc4000000, "1,c", 0 }, /* st.c isrc1ni,csrc2 */ -{ "st.b", 0x0c000000, 0xf0000000, "1,S(2)", E_ADDR }, /* st.b isrc1ni,#const(isrc2) */ -{ "st.s", 0x1c000000, 0xe0000001, "1,T(2)", E_ADDR }, /* st.s isrc1ni,#const(isrc2) */ -{ "st.l", 0x1c000001, 0xe0000000, "1,U(2)", E_ADDR }, /* st.l isrc1ni,#const(isrc2) */ - -{ "ixfr", 0x08000000, 0xf4000000, "1,g", 0 }, /* ixfr isrc1ni,fdest */ - -{ "fld.l", 0x20000002, 0xdc000001, "1(2),g", 0 }, /* fld.l isrc1(isrc2),fdest */ -{ "fld.l", 0x24000002, 0xd8000001, "K(2),g", E_ADDR }, /* fld.l #const(isrc2),fdest */ -{ "fld.l", 0x20000003, 0xdc000000, "1(2)++,g", 0 }, /* fld.l isrc1(isrc2)++,fdest */ -{ "fld.l", 0x24000003, 0xd8000000, "K(2)++,g", E_ADDR }, /* fld.l #const(isrc2)++,fdest */ -{ "fld.d", 0x20000000, 0xdc000007, "1(2),g", 0 }, /* fld.d isrc1(isrc2),fdest */ -{ "fld.d", 0x24000000, 0xd8000007, "L(2),g", E_ADDR }, /* fld.d #const(isrc2),fdest */ -{ "fld.d", 0x20000001, 0xdc000006, "1(2)++,g", 0 }, /* fld.d isrc1(isrc2)++,fdest */ -{ "fld.d", 0x24000001, 0xd8000006, "L(2)++,g", E_ADDR }, /* fld.d #const(isrc2)++,fdest */ -{ "fld.q", 0x20000004, 0xdc000003, "1(2),g", 0 }, /* fld.q isrc1(isrc2),fdest */ -{ "fld.q", 0x24000004, 0xd8000003, "M(2),g", E_ADDR }, /* fld.q #const(isrc2),fdest */ -{ "fld.q", 0x20000005, 0xdc000002, "1(2)++,g", 0 }, /* fld.q isrc1(isrc2)++,fdest */ -{ "fld.q", 0x24000005, 0xd8000002, "M(2)++,g", E_ADDR }, /* fld.q #const(isrc2)++,fdest */ - -{ "pfld.l", 0x60000002, 0x9c000001, "1(2),g", 0 }, /* pfld.l isrc1(isrc2),fdest */ -{ "pfld.l", 0x64000002, 0x98000001, "K(2),g", E_ADDR }, /* pfld.l #const(isrc2),fdest */ -{ "pfld.l", 0x60000003, 0x9c000000, "1(2)++,g", 0 }, /* pfld.l isrc1(isrc2)++,fdest */ -{ "pfld.l", 0x64000003, 0x98000000, "K(2)++,g", E_ADDR }, /* pfld.l #const(isrc2)++,fdest */ -{ "pfld.d", 0x60000000, 0x9c000007, "1(2),g", 0 }, /* pfld.d isrc1(isrc2),fdest */ -{ "pfld.d", 0x64000000, 0x98000007, "L(2),g", E_ADDR }, /* pfld.d #const(isrc2),fdest */ -{ "pfld.d", 0x60000001, 0x9c000006, "1(2)++,g", 0 }, /* pfld.d isrc1(isrc2)++,fdest */ -{ "pfld.d", 0x64000001, 0x98000006, "L(2)++,g", E_ADDR }, /* pfld.d #const(isrc2)++,fdest */ -{ "pfld.q", 0x60000004, 0x9c000003, "1(2),g", XP_ONLY }, /* pfld.q isrc1(isrc2),fdest */ -{ "pfld.q", 0x64000004, 0x98000003, "L(2),g", XP_ONLY }, /* pfld.q #const(isrc2),fdest */ -{ "pfld.q", 0x60000005, 0x9c000002, "1(2)++,g", XP_ONLY }, /* pfld.q isrc1(isrc2)++,fdest */ -{ "pfld.q", 0x64000005, 0x98000002, "L(2)++,g", XP_ONLY }, /* pfld.q #const(isrc2)++,fdest */ - -{ "fst.l", 0x28000002, 0xd4000001, "g,1(2)", 0 }, /* fst.l fdest,isrc1(isrc2) */ -{ "fst.l", 0x2c000002, 0xd0000001, "g,K(2)", E_ADDR }, /* fst.l fdest,#const(isrc2) */ -{ "fst.l", 0x28000003, 0xd4000000, "g,1(2)++", 0 }, /* fst.l fdest,isrc1(isrc2)++ */ -{ "fst.l", 0x2c000003, 0xd0000000, "g,K(2)++", E_ADDR }, /* fst.l fdest,#const(isrc2)++ */ -{ "fst.d", 0x28000000, 0xd4000007, "g,1(2)", 0 }, /* fst.d fdest,isrc1(isrc2) */ -{ "fst.d", 0x2c000000, 0xd0000007, "g,L(2)", E_ADDR }, /* fst.d fdest,#const(isrc2) */ -{ "fst.d", 0x28000001, 0xd4000006, "g,1(2)++", 0 }, /* fst.d fdest,isrc1(isrc2)++ */ -{ "fst.d", 0x2c000001, 0xd0000006, "g,L(2)++", E_ADDR }, /* fst.d fdest,#const(isrc2)++ */ -{ "fst.q", 0x28000004, 0xd4000003, "g,1(2)", 0 }, /* fst.d fdest,isrc1(isrc2) */ -{ "fst.q", 0x2c000004, 0xd0000003, "g,M(2)", E_ADDR }, /* fst.d fdest,#const(isrc2) */ -{ "fst.q", 0x28000005, 0xd4000002, "g,1(2)++", 0 }, /* fst.d fdest,isrc1(isrc2)++ */ -{ "fst.q", 0x2c000005, 0xd0000002, "g,M(2)++", E_ADDR }, /* fst.d fdest,#const(isrc2)++ */ - -{ "pst.d", 0x3c000000, 0xc0000007, "g,L(2)", E_ADDR }, /* pst.d fdest,#const(isrc2) */ -{ "pst.d", 0x3c000001, 0xc0000006, "g,L(2)++", E_ADDR }, /* pst.d fdest,#const(isrc2)++ */ - -{ "addu", 0x80000000, 0x7c000000, "1,2,d", 0 }, /* addu isrc1,isrc2,idest */ -{ "addu", 0x84000000, 0x78000000, "i,2,d", E_S32 }, /* addu #const,isrc2,idest */ -{ "adds", 0x90000000, 0x6c000000, "1,2,d", 0 }, /* adds isrc1,isrc2,idest */ -{ "adds", 0x94000000, 0x68000000, "i,2,d", E_S32 }, /* adds #const,isrc2,idest */ -{ "subu", 0x88000000, 0x74000000, "1,2,d", 0 }, /* subu isrc1,isrc2,idest */ -{ "subu", 0x8c000000, 0x70000000, "i,2,d", E_S32 }, /* subu #const,isrc2,idest */ -{ "subs", 0x98000000, 0x64000000, "1,2,d", 0 }, /* subs isrc1,isrc2,idest */ -{ "subs", 0x9c000000, 0x60000000, "i,2,d", E_S32 }, /* subs #const,isrc2,idest */ - -{ "shl", 0xa0000000, 0x5c000000, "1,2,d", 0 }, /* shl isrc1,isrc2,idest */ -{ "shl", 0xa4000000, 0x58000000, "i,2,d", 0 }, /* shl #const,isrc2,idest */ -{ "shr", 0xa8000000, 0x54000000, "1,2,d", 0 }, /* shr isrc1,isrc2,idest */ -{ "shr", 0xac000000, 0x50000000, "i,2,d", 0 }, /* shr #const,isrc2,idest */ -{ "shrd", 0xb0000000, 0x4c000000, "1,2,d", 0 }, /* shrd isrc1,isrc2,idest */ -{ "shra", 0xb8000000, 0x44000000, "1,2,d", 0 }, /* shra isrc1,isrc2,idest */ -{ "shra", 0xbc000000, 0x40000000, "i,2,d", 0 }, /* shra #const,isrc2,idest */ - -{ "mov", 0xa0000000, 0x5c00f800, "2,d", 0 }, /* shl r0,isrc2,idest */ -{ "mov", 0x94000000, 0x69e00000, "i,d", E_MOV }, /* adds #const,r0,idest */ -{ "nop", 0xa0000000, 0x5ffff800, "", 0 }, /* shl r0,r0,r0 */ -{ "fnop", 0xb0000000, 0x4ffff800, "", 0 }, /* shrd r0,r0,r0 */ - -{ "trap", 0x44000000, 0xb8000000, "1,2,d", 0 }, /* trap isrc1ni,isrc2,idest */ - -{ "flush", 0x34000004, 0xc81f0003, "L(2)", E_ADDR }, /* flush #const(isrc2) */ -{ "flush", 0x34000005, 0xc81f0002, "L(2)++", E_ADDR }, /* flush #const(isrc2)++ */ - -{ "and", 0xc0000000, 0x3c000000, "1,2,d", 0 }, /* and isrc1,isrc2,idest */ -{ "and", 0xc4000000, 0x38000000, "i,2,d", E_AND }, /* and #const,isrc2,idest */ -{ "andh", 0xcc000000, 0x30000000, "i,2,d", 0 }, /* andh #const,isrc2,idest */ -{ "andnot", 0xd0000000, 0x2c000000, "1,2,d", 0 }, /* andnot isrc1,isrc2,idest */ -{ "andnot", 0xd4000000, 0x28000000, "i,2,d", E_U32 }, /* andnot #const,isrc2,idest */ -{ "andnoth", 0xdc000000, 0x20000000, "i,2,d", 0 }, /* andnoth #const,isrc2,idest */ -{ "or", 0xe0000000, 0x1c000000, "1,2,d", 0 }, /* or isrc1,isrc2,idest */ -{ "or", 0xe4000000, 0x18000000, "i,2,d", E_U32 }, /* or #const,isrc2,idest */ -{ "orh", 0xec000000, 0x10000000, "i,2,d", 0 }, /* orh #const,isrc2,idest */ -{ "xor", 0xf0000000, 0x0c000000, "1,2,d", 0 }, /* xor isrc1,isrc2,idest */ -{ "xor", 0xf4000000, 0x08000000, "i,2,d", E_U32 }, /* xor #const,isrc2,idest */ -{ "xorh", 0xfc000000, 0x00000000, "i,2,d", 0 }, /* xorh #const,isrc2,idest */ - -{ "bte", 0x58000000, 0xa4000000, "1,2,r", 0 }, /* bte isrc1s,isrc2,sbroff */ -{ "bte", 0x5c000000, 0xa0000000, "5,2,r", 0 }, /* bte #const5,isrc2,sbroff */ -{ "btne", 0x50000000, 0xac000000, "1,2,r", 0 }, /* btne isrc1s,isrc2,sbroff */ -{ "btne", 0x54000000, 0xa8000000, "5,2,r", 0 }, /* btne #const5,isrc2,sbroff */ -{ "bla", 0xb4000000, 0x48000000, "1,2,r", E_DELAY }, /* bla isrc1s,isrc2,sbroff */ -{ "bri", 0x40000000, 0xbc000000, "1", E_DELAY }, /* bri isrc1ni */ - -/* Core Escape Instruction Format */ -{ "lock", 0x4c000001, 0xb000001e, "", 0 }, /* lock set BL in dirbase */ -{ "calli", 0x4c000002, 0xb000001d, "1", E_DELAY }, /* calli isrc1ni */ -{ "intovr", 0x4c000004, 0xb000001b, "", 0 }, /* intovr trap on integer overflow */ -{ "unlock", 0x4c000007, 0xb0000018, "", 0 }, /* unlock clear BL in dirbase */ -{ "ldio.l", 0x4c000408, 0xb00003f7, "2,d", XP_ONLY }, /* ldio.l isrc2,idest */ -{ "ldio.s", 0x4c000208, 0xb00005f7, "2,d", XP_ONLY }, /* ldio.s isrc2,idest */ -{ "ldio.b", 0x4c000008, 0xb00007f7, "2,d", XP_ONLY }, /* ldio.b isrc2,idest */ -{ "stio.l", 0x4c000409, 0xb00003f6, "1,2", XP_ONLY }, /* stio.l isrc1ni,isrc2 */ -{ "stio.s", 0x4c000209, 0xb00005f6, "1,2", XP_ONLY }, /* stio.s isrc1ni,isrc2 */ -{ "stio.b", 0x4c000009, 0xb00007f6, "1,2", XP_ONLY }, /* stio.b isrc1ni,isrc2 */ -{ "ldint.l", 0x4c00040a, 0xb00003f5, "2,d", XP_ONLY }, /* ldint.l isrc2,idest */ -{ "ldint.s", 0x4c00020a, 0xb00005f5, "2,d", XP_ONLY }, /* ldint.s isrc2,idest */ -{ "ldint.b", 0x4c00000a, 0xb00007f5, "2,d", XP_ONLY }, /* ldint.b isrc2,idest */ -{ "scyc.b", 0x4c00000b, 0xb00007f4, "2", XP_ONLY }, /* scyc.b isrc2 */ - -/* CTRL-Format Instructions */ -{ "br", 0x68000000, 0x94000000, "l", E_DELAY }, /* br lbroff */ -{ "call", 0x6c000000, 0x90000000, "l", E_DELAY }, /* call lbroff */ -{ "bc", 0x70000000, 0x8c000000, "l", 0 }, /* bc lbroff */ -{ "bc.t", 0x74000000, 0x88000000, "l", E_DELAY }, /* bc.t lbroff */ -{ "bnc", 0x78000000, 0x84000000, "l", 0 }, /* bnc lbroff */ -{ "bnc.t", 0x7c000000, 0x80000000, "l", E_DELAY }, /* bnc.t lbroff */ - -/* Floating Point Escape Instruction Format - pfam.p fsrc1,fsrc2,fdest. */ -{ "r2p1.ss", 0x48000400, 0xb40001ff, "e,f,g", 0 }, -{ "r2p1.sd", 0x48000480, 0xb400017f, "e,f,g", 0 }, -{ "r2p1.dd", 0x48000580, 0xb400007f, "e,f,g", 0 }, -{ "r2pt.ss", 0x48000401, 0xb40001fe, "e,f,g", 0 }, -{ "r2pt.sd", 0x48000481, 0xb400017e, "e,f,g", 0 }, -{ "r2pt.dd", 0x48000581, 0xb400007e, "e,f,g", 0 }, -{ "r2ap1.ss", 0x48000402, 0xb40001fd, "e,f,g", 0 }, -{ "r2ap1.sd", 0x48000482, 0xb400017d, "e,f,g", 0 }, -{ "r2ap1.dd", 0x48000582, 0xb400007d, "e,f,g", 0 }, -{ "r2apt.ss", 0x48000403, 0xb40001fc, "e,f,g", 0 }, -{ "r2apt.sd", 0x48000483, 0xb400017c, "e,f,g", 0 }, -{ "r2apt.dd", 0x48000583, 0xb400007c, "e,f,g", 0 }, -{ "i2p1.ss", 0x48000404, 0xb40001fb, "e,f,g", 0 }, -{ "i2p1.sd", 0x48000484, 0xb400017b, "e,f,g", 0 }, -{ "i2p1.dd", 0x48000584, 0xb400007b, "e,f,g", 0 }, -{ "i2pt.ss", 0x48000405, 0xb40001fa, "e,f,g", 0 }, -{ "i2pt.sd", 0x48000485, 0xb400017a, "e,f,g", 0 }, -{ "i2pt.dd", 0x48000585, 0xb400007a, "e,f,g", 0 }, -{ "i2ap1.ss", 0x48000406, 0xb40001f9, "e,f,g", 0 }, -{ "i2ap1.sd", 0x48000486, 0xb4000179, "e,f,g", 0 }, -{ "i2ap1.dd", 0x48000586, 0xb4000079, "e,f,g", 0 }, -{ "i2apt.ss", 0x48000407, 0xb40001f8, "e,f,g", 0 }, -{ "i2apt.sd", 0x48000487, 0xb4000178, "e,f,g", 0 }, -{ "i2apt.dd", 0x48000587, 0xb4000078, "e,f,g", 0 }, -{ "rat1p2.ss", 0x48000408, 0xb40001f7, "e,f,g", 0 }, -{ "rat1p2.sd", 0x48000488, 0xb4000177, "e,f,g", 0 }, -{ "rat1p2.dd", 0x48000588, 0xb4000077, "e,f,g", 0 }, -{ "m12apm.ss", 0x48000409, 0xb40001f6, "e,f,g", 0 }, -{ "m12apm.sd", 0x48000489, 0xb4000176, "e,f,g", 0 }, -{ "m12apm.dd", 0x48000589, 0xb4000076, "e,f,g", 0 }, -{ "ra1p2.ss", 0x4800040a, 0xb40001f5, "e,f,g", 0 }, -{ "ra1p2.sd", 0x4800048a, 0xb4000175, "e,f,g", 0 }, -{ "ra1p2.dd", 0x4800058a, 0xb4000075, "e,f,g", 0 }, -{ "m12ttpa.ss", 0x4800040b, 0xb40001f4, "e,f,g", 0 }, -{ "m12ttpa.sd", 0x4800048b, 0xb4000174, "e,f,g", 0 }, -{ "m12ttpa.dd", 0x4800058b, 0xb4000074, "e,f,g", 0 }, -{ "iat1p2.ss", 0x4800040c, 0xb40001f3, "e,f,g", 0 }, -{ "iat1p2.sd", 0x4800048c, 0xb4000173, "e,f,g", 0 }, -{ "iat1p2.dd", 0x4800058c, 0xb4000073, "e,f,g", 0 }, -{ "m12tpm.ss", 0x4800040d, 0xb40001f2, "e,f,g", 0 }, -{ "m12tpm.sd", 0x4800048d, 0xb4000172, "e,f,g", 0 }, -{ "m12tpm.dd", 0x4800058d, 0xb4000072, "e,f,g", 0 }, -{ "ia1p2.ss", 0x4800040e, 0xb40001f1, "e,f,g", 0 }, -{ "ia1p2.sd", 0x4800048e, 0xb4000171, "e,f,g", 0 }, -{ "ia1p2.dd", 0x4800058e, 0xb4000071, "e,f,g", 0 }, -{ "m12tpa.ss", 0x4800040f, 0xb40001f0, "e,f,g", 0 }, -{ "m12tpa.sd", 0x4800048f, 0xb4000170, "e,f,g", 0 }, -{ "m12tpa.dd", 0x4800058f, 0xb4000070, "e,f,g", 0 }, - -/* Floating Point Escape Instruction Format - pfsm.p fsrc1,fsrc2,fdest. */ -{ "r2s1.ss", 0x48000410, 0xb40001ef, "e,f,g", 0 }, -{ "r2s1.sd", 0x48000490, 0xb400016f, "e,f,g", 0 }, -{ "r2s1.dd", 0x48000590, 0xb400006f, "e,f,g", 0 }, -{ "r2st.ss", 0x48000411, 0xb40001ee, "e,f,g", 0 }, -{ "r2st.sd", 0x48000491, 0xb400016e, "e,f,g", 0 }, -{ "r2st.dd", 0x48000591, 0xb400006e, "e,f,g", 0 }, -{ "r2as1.ss", 0x48000412, 0xb40001ed, "e,f,g", 0 }, -{ "r2as1.sd", 0x48000492, 0xb400016d, "e,f,g", 0 }, -{ "r2as1.dd", 0x48000592, 0xb400006d, "e,f,g", 0 }, -{ "r2ast.ss", 0x48000413, 0xb40001ec, "e,f,g", 0 }, -{ "r2ast.sd", 0x48000493, 0xb400016c, "e,f,g", 0 }, -{ "r2ast.dd", 0x48000593, 0xb400006c, "e,f,g", 0 }, -{ "i2s1.ss", 0x48000414, 0xb40001eb, "e,f,g", 0 }, -{ "i2s1.sd", 0x48000494, 0xb400016b, "e,f,g", 0 }, -{ "i2s1.dd", 0x48000594, 0xb400006b, "e,f,g", 0 }, -{ "i2st.ss", 0x48000415, 0xb40001ea, "e,f,g", 0 }, -{ "i2st.sd", 0x48000495, 0xb400016a, "e,f,g", 0 }, -{ "i2st.dd", 0x48000595, 0xb400006a, "e,f,g", 0 }, -{ "i2as1.ss", 0x48000416, 0xb40001e9, "e,f,g", 0 }, -{ "i2as1.sd", 0x48000496, 0xb4000169, "e,f,g", 0 }, -{ "i2as1.dd", 0x48000596, 0xb4000069, "e,f,g", 0 }, -{ "i2ast.ss", 0x48000417, 0xb40001e8, "e,f,g", 0 }, -{ "i2ast.sd", 0x48000497, 0xb4000168, "e,f,g", 0 }, -{ "i2ast.dd", 0x48000597, 0xb4000068, "e,f,g", 0 }, -{ "rat1s2.ss", 0x48000418, 0xb40001e7, "e,f,g", 0 }, -{ "rat1s2.sd", 0x48000498, 0xb4000167, "e,f,g", 0 }, -{ "rat1s2.dd", 0x48000598, 0xb4000067, "e,f,g", 0 }, -{ "m12asm.ss", 0x48000419, 0xb40001e6, "e,f,g", 0 }, -{ "m12asm.sd", 0x48000499, 0xb4000166, "e,f,g", 0 }, -{ "m12asm.dd", 0x48000599, 0xb4000066, "e,f,g", 0 }, -{ "ra1s2.ss", 0x4800041a, 0xb40001e5, "e,f,g", 0 }, -{ "ra1s2.sd", 0x4800049a, 0xb4000165, "e,f,g", 0 }, -{ "ra1s2.dd", 0x4800059a, 0xb4000065, "e,f,g", 0 }, -{ "m12ttsa.ss", 0x4800041b, 0xb40001e4, "e,f,g", 0 }, -{ "m12ttsa.sd", 0x4800049b, 0xb4000164, "e,f,g", 0 }, -{ "m12ttsa.dd", 0x4800059b, 0xb4000064, "e,f,g", 0 }, -{ "iat1s2.ss", 0x4800041c, 0xb40001e3, "e,f,g", 0 }, -{ "iat1s2.sd", 0x4800049c, 0xb4000163, "e,f,g", 0 }, -{ "iat1s2.dd", 0x4800059c, 0xb4000063, "e,f,g", 0 }, -{ "m12tsm.ss", 0x4800041d, 0xb40001e2, "e,f,g", 0 }, -{ "m12tsm.sd", 0x4800049d, 0xb4000162, "e,f,g", 0 }, -{ "m12tsm.dd", 0x4800059d, 0xb4000062, "e,f,g", 0 }, -{ "ia1s2.ss", 0x4800041e, 0xb40001e1, "e,f,g", 0 }, -{ "ia1s2.sd", 0x4800049e, 0xb4000161, "e,f,g", 0 }, -{ "ia1s2.dd", 0x4800059e, 0xb4000061, "e,f,g", 0 }, -{ "m12tsa.ss", 0x4800041f, 0xb40001e0, "e,f,g", 0 }, -{ "m12tsa.sd", 0x4800049f, 0xb4000160, "e,f,g", 0 }, -{ "m12tsa.dd", 0x4800059f, 0xb4000060, "e,f,g", 0 }, - -/* Floating Point Escape Instruction Format - pfmam.p fsrc1,fsrc2,fdest. */ -{ "mr2p1.ss", 0x48000000, 0xb40005ff, "e,f,g", 0 }, -{ "mr2p1.sd", 0x48000080, 0xb400057f, "e,f,g", 0 }, -{ "mr2p1.dd", 0x48000180, 0xb400047f, "e,f,g", 0 }, -{ "mr2pt.ss", 0x48000001, 0xb40005fe, "e,f,g", 0 }, -{ "mr2pt.sd", 0x48000081, 0xb400057e, "e,f,g", 0 }, -{ "mr2pt.dd", 0x48000181, 0xb400047e, "e,f,g", 0 }, -{ "mr2mp1.ss", 0x48000002, 0xb40005fd, "e,f,g", 0 }, -{ "mr2mp1.sd", 0x48000082, 0xb400057d, "e,f,g", 0 }, -{ "mr2mp1.dd", 0x48000182, 0xb400047d, "e,f,g", 0 }, -{ "mr2mpt.ss", 0x48000003, 0xb40005fc, "e,f,g", 0 }, -{ "mr2mpt.sd", 0x48000083, 0xb400057c, "e,f,g", 0 }, -{ "mr2mpt.dd", 0x48000183, 0xb400047c, "e,f,g", 0 }, -{ "mi2p1.ss", 0x48000004, 0xb40005fb, "e,f,g", 0 }, -{ "mi2p1.sd", 0x48000084, 0xb400057b, "e,f,g", 0 }, -{ "mi2p1.dd", 0x48000184, 0xb400047b, "e,f,g", 0 }, -{ "mi2pt.ss", 0x48000005, 0xb40005fa, "e,f,g", 0 }, -{ "mi2pt.sd", 0x48000085, 0xb400057a, "e,f,g", 0 }, -{ "mi2pt.dd", 0x48000185, 0xb400047a, "e,f,g", 0 }, -{ "mi2mp1.ss", 0x48000006, 0xb40005f9, "e,f,g", 0 }, -{ "mi2mp1.sd", 0x48000086, 0xb4000579, "e,f,g", 0 }, -{ "mi2mp1.dd", 0x48000186, 0xb4000479, "e,f,g", 0 }, -{ "mi2mpt.ss", 0x48000007, 0xb40005f8, "e,f,g", 0 }, -{ "mi2mpt.sd", 0x48000087, 0xb4000578, "e,f,g", 0 }, -{ "mi2mpt.dd", 0x48000187, 0xb4000478, "e,f,g", 0 }, -{ "mrmt1p2.ss", 0x48000008, 0xb40005f7, "e,f,g", 0 }, -{ "mrmt1p2.sd", 0x48000088, 0xb4000577, "e,f,g", 0 }, -{ "mrmt1p2.dd", 0x48000188, 0xb4000477, "e,f,g", 0 }, -{ "mm12mpm.ss", 0x48000009, 0xb40005f6, "e,f,g", 0 }, -{ "mm12mpm.sd", 0x48000089, 0xb4000576, "e,f,g", 0 }, -{ "mm12mpm.dd", 0x48000189, 0xb4000476, "e,f,g", 0 }, -{ "mrm1p2.ss", 0x4800000a, 0xb40005f5, "e,f,g", 0 }, -{ "mrm1p2.sd", 0x4800008a, 0xb4000575, "e,f,g", 0 }, -{ "mrm1p2.dd", 0x4800018a, 0xb4000475, "e,f,g", 0 }, -{ "mm12ttpm.ss",0x4800000b, 0xb40005f4, "e,f,g", 0 }, -{ "mm12ttpm.sd",0x4800008b, 0xb4000574, "e,f,g", 0 }, -{ "mm12ttpm.dd",0x4800018b, 0xb4000474, "e,f,g", 0 }, -{ "mimt1p2.ss", 0x4800000c, 0xb40005f3, "e,f,g", 0 }, -{ "mimt1p2.sd", 0x4800008c, 0xb4000573, "e,f,g", 0 }, -{ "mimt1p2.dd", 0x4800018c, 0xb4000473, "e,f,g", 0 }, -{ "mm12tpm.ss", 0x4800000d, 0xb40005f2, "e,f,g", 0 }, -{ "mm12tpm.sd", 0x4800008d, 0xb4000572, "e,f,g", 0 }, -{ "mm12tpm.dd", 0x4800018d, 0xb4000472, "e,f,g", 0 }, -{ "mim1p2.ss", 0x4800000e, 0xb40005f1, "e,f,g", 0 }, -{ "mim1p2.sd", 0x4800008e, 0xb4000571, "e,f,g", 0 }, -{ "mim1p2.dd", 0x4800018e, 0xb4000471, "e,f,g", 0 }, - -/* Floating Point Escape Instruction Format - pfmsm.p fsrc1,fsrc2,fdest. */ -{ "mr2s1.ss", 0x48000010, 0xb40005ef, "e,f,g", 0 }, -{ "mr2s1.sd", 0x48000090, 0xb400056f, "e,f,g", 0 }, -{ "mr2s1.dd", 0x48000190, 0xb400046f, "e,f,g", 0 }, -{ "mr2st.ss", 0x48000011, 0xb40005ee, "e,f,g", 0 }, -{ "mr2st.sd", 0x48000091, 0xb400056e, "e,f,g", 0 }, -{ "mr2st.dd", 0x48000191, 0xb400046e, "e,f,g", 0 }, -{ "mr2ms1.ss", 0x48000012, 0xb40005ed, "e,f,g", 0 }, -{ "mr2ms1.sd", 0x48000092, 0xb400056d, "e,f,g", 0 }, -{ "mr2ms1.dd", 0x48000192, 0xb400046d, "e,f,g", 0 }, -{ "mr2mst.ss", 0x48000013, 0xb40005ec, "e,f,g", 0 }, -{ "mr2mst.sd", 0x48000093, 0xb400056c, "e,f,g", 0 }, -{ "mr2mst.dd", 0x48000193, 0xb400046c, "e,f,g", 0 }, -{ "mi2s1.ss", 0x48000014, 0xb40005eb, "e,f,g", 0 }, -{ "mi2s1.sd", 0x48000094, 0xb400056b, "e,f,g", 0 }, -{ "mi2s1.dd", 0x48000194, 0xb400046b, "e,f,g", 0 }, -{ "mi2st.ss", 0x48000015, 0xb40005ea, "e,f,g", 0 }, -{ "mi2st.sd", 0x48000095, 0xb400056a, "e,f,g", 0 }, -{ "mi2st.dd", 0x48000195, 0xb400046a, "e,f,g", 0 }, -{ "mi2ms1.ss", 0x48000016, 0xb40005e9, "e,f,g", 0 }, -{ "mi2ms1.sd", 0x48000096, 0xb4000569, "e,f,g", 0 }, -{ "mi2ms1.dd", 0x48000196, 0xb4000469, "e,f,g", 0 }, -{ "mi2mst.ss", 0x48000017, 0xb40005e8, "e,f,g", 0 }, -{ "mi2mst.sd", 0x48000097, 0xb4000568, "e,f,g", 0 }, -{ "mi2mst.dd", 0x48000197, 0xb4000468, "e,f,g", 0 }, -{ "mrmt1s2.ss", 0x48000018, 0xb40005e7, "e,f,g", 0 }, -{ "mrmt1s2.sd", 0x48000098, 0xb4000567, "e,f,g", 0 }, -{ "mrmt1s2.dd", 0x48000198, 0xb4000467, "e,f,g", 0 }, -{ "mm12msm.ss", 0x48000019, 0xb40005e6, "e,f,g", 0 }, -{ "mm12msm.sd", 0x48000099, 0xb4000566, "e,f,g", 0 }, -{ "mm12msm.dd", 0x48000199, 0xb4000466, "e,f,g", 0 }, -{ "mrm1s2.ss", 0x4800001a, 0xb40005e5, "e,f,g", 0 }, -{ "mrm1s2.sd", 0x4800009a, 0xb4000565, "e,f,g", 0 }, -{ "mrm1s2.dd", 0x4800019a, 0xb4000465, "e,f,g", 0 }, -{ "mm12ttsm.ss",0x4800001b, 0xb40005e4, "e,f,g", 0 }, -{ "mm12ttsm.sd",0x4800009b, 0xb4000564, "e,f,g", 0 }, -{ "mm12ttsm.dd",0x4800019b, 0xb4000464, "e,f,g", 0 }, -{ "mimt1s2.ss", 0x4800001c, 0xb40005e3, "e,f,g", 0 }, -{ "mimt1s2.sd", 0x4800009c, 0xb4000563, "e,f,g", 0 }, -{ "mimt1s2.dd", 0x4800019c, 0xb4000463, "e,f,g", 0 }, -{ "mm12tsm.ss", 0x4800001d, 0xb40005e2, "e,f,g", 0 }, -{ "mm12tsm.sd", 0x4800009d, 0xb4000562, "e,f,g", 0 }, -{ "mm12tsm.dd", 0x4800019d, 0xb4000462, "e,f,g", 0 }, -{ "mim1s2.ss", 0x4800001e, 0xb40005e1, "e,f,g", 0 }, -{ "mim1s2.sd", 0x4800009e, 0xb4000561, "e,f,g", 0 }, -{ "mim1s2.dd", 0x4800019e, 0xb4000461, "e,f,g", 0 }, - -{ "fmul.ss", 0x48000020, 0xb40005df, "e,f,g", 0 }, /* fmul.p fsrc1,fsrc2,fdest */ -{ "fmul.sd", 0x480000a0, 0xb400055f, "e,f,g", 0 }, /* fmul.p fsrc1,fsrc2,fdest */ -{ "fmul.dd", 0x480001a0, 0xb400045f, "e,f,g", 0 }, /* fmul.p fsrc1,fsrc2,fdest */ -{ "pfmul.ss", 0x48000420, 0xb40001df, "e,f,g", 0 }, /* pfmul.p fsrc1,fsrc2,fdest */ -{ "pfmul.sd", 0x480004a0, 0xb400015f, "e,f,g", 0 }, /* pfmul.p fsrc1,fsrc2,fdest */ -{ "pfmul.dd", 0x480005a0, 0xb400005f, "e,f,g", 0 }, /* pfmul.p fsrc1,fsrc2,fdest */ -{ "pfmul3.dd", 0x480005a4, 0xb400005b, "e,f,g", 0 }, /* pfmul3.p fsrc1,fsrc2,fdest */ -{ "fmlow.dd", 0x480001a1, 0xb400045e, "e,f,g", 0 }, /* fmlow.dd fsrc1,fsrc2,fdest */ -{ "frcp.ss", 0x48000022, 0xb40005dd, "f,g", 0 }, /* frcp.p fsrc2,fdest */ -{ "frcp.sd", 0x480000a2, 0xb400055d, "f,g", 0 }, /* frcp.p fsrc2,fdest */ -{ "frcp.dd", 0x480001a2, 0xb400045d, "f,g", 0 }, /* frcp.p fsrc2,fdest */ -{ "frsqr.ss", 0x48000023, 0xb40005dc, "f,g", 0 }, /* frsqr.p fsrc2,fdest */ -{ "frsqr.sd", 0x480000a3, 0xb400055c, "f,g", 0 }, /* frsqr.p fsrc2,fdest */ -{ "frsqr.dd", 0x480001a3, 0xb400045c, "f,g", 0 }, /* frsqr.p fsrc2,fdest */ -{ "fadd.ss", 0x48000030, 0xb40005cf, "e,f,g", 0 }, /* fadd.p fsrc1,fsrc2,fdest */ -{ "fadd.sd", 0x480000b0, 0xb400054f, "e,f,g", 0 }, /* fadd.p fsrc1,fsrc2,fdest */ -{ "fadd.dd", 0x480001b0, 0xb400044f, "e,f,g", 0 }, /* fadd.p fsrc1,fsrc2,fdest */ -{ "pfadd.ss", 0x48000430, 0xb40001cf, "e,f,g", 0 }, /* pfadd.p fsrc1,fsrc2,fdest */ -{ "pfadd.sd", 0x480004b0, 0xb400014f, "e,f,g", 0 }, /* pfadd.p fsrc1,fsrc2,fdest */ -{ "pfadd.dd", 0x480005b0, 0xb400004f, "e,f,g", 0 }, /* pfadd.p fsrc1,fsrc2,fdest */ -{ "fsub.ss", 0x48000031, 0xb40005ce, "e,f,g", 0 }, /* fsub.p fsrc1,fsrc2,fdest */ -{ "fsub.sd", 0x480000b1, 0xb400054e, "e,f,g", 0 }, /* fsub.p fsrc1,fsrc2,fdest */ -{ "fsub.dd", 0x480001b1, 0xb400044e, "e,f,g", 0 }, /* fsub.p fsrc1,fsrc2,fdest */ -{ "pfsub.ss", 0x48000431, 0xb40001ce, "e,f,g", 0 }, /* pfsub.p fsrc1,fsrc2,fdest */ -{ "pfsub.sd", 0x480004b1, 0xb400014e, "e,f,g", 0 }, /* pfsub.p fsrc1,fsrc2,fdest */ -{ "pfsub.dd", 0x480005b1, 0xb400004e, "e,f,g", 0 }, /* pfsub.p fsrc1,fsrc2,fdest */ -{ "fix.sd", 0x480000b2, 0xb400054d, "e,g", 0 }, /* fix.p fsrc1,fdest */ -{ "fix.dd", 0x480001b2, 0xb400044d, "e,g", 0 }, /* fix.p fsrc1,fdest */ -{ "pfix.sd", 0x480004b2, 0xb400014d, "e,g", 0 }, /* pfix.p fsrc1,fdest */ -{ "pfix.dd", 0x480005b2, 0xb400004d, "e,g", 0 }, /* pfix.p fsrc1,fdest */ -{ "famov.ss", 0x48000033, 0xb40005cc, "e,g", 0 }, /* famov.p fsrc1,fdest */ -{ "famov.ds", 0x48000133, 0xb40004cc, "e,g", 0 }, /* famov.p fsrc1,fdest */ -{ "famov.sd", 0x480000b3, 0xb400054c, "e,g", 0 }, /* famov.p fsrc1,fdest */ -{ "famov.dd", 0x480001b3, 0xb400044c, "e,g", 0 }, /* famov.p fsrc1,fdest */ -{ "pfamov.ss", 0x48000433, 0xb40001cc, "e,g", 0 }, /* pfamov.p fsrc1,fdest */ -{ "pfamov.ds", 0x48000533, 0xb40000cc, "e,g", 0 }, /* pfamov.p fsrc1,fdest */ -{ "pfamov.sd", 0x480004b3, 0xb400014c, "e,g", 0 }, /* pfamov.p fsrc1,fdest */ -{ "pfamov.dd", 0x480005b3, 0xb400004c, "e,g", 0 }, /* pfamov.p fsrc1,fdest */ -/* Opcode pfgt has R bit cleared; pfle has R bit set. */ -{ "pfgt.ss", 0x48000434, 0xb40001cb, "e,f,g", 0 }, /* pfgt.p fsrc1,fsrc2,fdest */ -{ "pfgt.dd", 0x48000534, 0xb40000cb, "e,f,g", 0 }, /* pfgt.p fsrc1,fsrc2,fdest */ -/* Opcode pfgt has R bit cleared; pfle has R bit set. */ -{ "pfle.ss", 0x480004b4, 0xb400014b, "e,f,g", 0 }, /* pfle.p fsrc1,fsrc2,fdest */ -{ "pfle.dd", 0x480005b4, 0xb400004b, "e,f,g", 0 }, /* pfle.p fsrc1,fsrc2,fdest */ -{ "pfeq.ss", 0x48000435, 0xb40001ca, "e,f,g", 0 }, /* pfeq.p fsrc1,fsrc2,fdest */ -{ "pfeq.dd", 0x48000535, 0xb40000ca, "e,f,g", 0 }, /* pfeq.p fsrc1,fsrc2,fdest */ -{ "ftrunc.sd", 0x480000ba, 0xb4000545, "e,g", 0 }, /* ftrunc.p fsrc1,fdest */ -{ "ftrunc.dd", 0x480001ba, 0xb4000445, "e,g", 0 }, /* ftrunc.p fsrc1,fdest */ -{ "pftrunc.sd", 0x480004ba, 0xb4000145, "e,g", 0 }, /* pftrunc.p fsrc1,fdest */ -{ "pftrunc.dd", 0x480005ba, 0xb4000045, "e,g", 0 }, /* pftrunc.p fsrc1,fdest */ -{ "fxfr", 0x48000040, 0xb40005bf, "e,d", 0 }, /* fxfr fsrc1,idest */ -{ "fiadd.ss", 0x48000049, 0xb40005b6, "e,f,g", 0 }, /* fiadd.w fsrc1,fsrc2,fdest */ -{ "fiadd.dd", 0x480001c9, 0xb4000436, "e,f,g", 0 }, /* fiadd.w fsrc1,fsrc2,fdest */ -{ "pfiadd.ss", 0x48000449, 0xb40001b6, "e,f,g", 0 }, /* pfiadd.w fsrc1,fsrc2,fdest */ -{ "pfiadd.dd", 0x480005c9, 0xb4000036, "e,f,g", 0 }, /* pfiadd.w fsrc1,fsrc2,fdest */ -{ "fisub.ss", 0x4800004d, 0xb40005b2, "e,f,g", 0 }, /* fisub.w fsrc1,fsrc2,fdest */ -{ "fisub.dd", 0x480001cd, 0xb4000432, "e,f,g", 0 }, /* fisub.w fsrc1,fsrc2,fdest */ -{ "pfisub.ss", 0x4800044d, 0xb40001b2, "e,f,g", 0 }, /* pfisub.w fsrc1,fsrc2,fdest */ -{ "pfisub.dd", 0x480005cd, 0xb4000032, "e,f,g", 0 }, /* pfisub.w fsrc1,fsrc2,fdest */ -{ "fzchkl", 0x480001d7, 0xb4000428, "e,f,g", 0 }, /* fzchkl fsrc1,fsrc2,fdest */ -{ "pfzchkl", 0x480005d7, 0xb4000028, "e,f,g", 0 }, /* pfzchkl fsrc1,fsrc2,fdest */ -{ "fzchks", 0x480001df, 0xb4000420, "e,f,g", 0 }, /* fzchks fsrc1,fsrc2,fdest */ -{ "pfzchks", 0x480005df, 0xb4000020, "e,f,g", 0 }, /* pfzchks fsrc1,fsrc2,fdest */ -{ "faddp", 0x480001d0, 0xb400042f, "e,f,g", 0 }, /* faddp fsrc1,fsrc2,fdest */ -{ "pfaddp", 0x480005d0, 0xb400002f, "e,f,g", 0 }, /* pfaddp fsrc1,fsrc2,fdest */ -{ "faddz", 0x480001d1, 0xb400042e, "e,f,g", 0 }, /* faddz fsrc1,fsrc2,fdest */ -{ "pfaddz", 0x480005d1, 0xb400002e, "e,f,g", 0 }, /* pfaddz fsrc1,fsrc2,fdest */ -{ "form", 0x480001da, 0xb4000425, "e,g", 0 }, /* form fsrc1,fdest */ -{ "pform", 0x480005da, 0xb4000025, "e,g", 0 }, /* pform fsrc1,fdest */ - -/* Floating point pseudo-instructions. */ -{ "fmov.ss", 0x48000049, 0xb7e005b6, "e,g", 0 }, /* fiadd.ss fsrc1,f0,fdest */ -{ "fmov.dd", 0x480001c9, 0xb7e00436, "e,g", 0 }, /* fiadd.dd fsrc1,f0,fdest */ -{ "fmov.sd", 0x480000b3, 0xb400054c, "e,g", 0 }, /* famov.sd fsrc1,fdest */ -{ "fmov.ds", 0x48000133, 0xb40004cc, "e,g", 0 }, /* famov.ds fsrc1,fdest */ -{ "pfmov.ds", 0x48000533, 0xb40000cc, "e,g", 0 }, /* pfamov.ds fsrc1,fdest */ -{ "pfmov.dd", 0x480005c9, 0xb7e00036, "e,g", 0 }, /* pfiadd.dd fsrc1,f0,fdest */ -{ 0, 0, 0, 0, 0 }, - -}; - -#define NUMOPCODES ((sizeof i860_opcodes)/(sizeof i860_opcodes[0])) - - diff --git a/include/opcode/i960.h b/include/opcode/i960.h deleted file mode 100644 index 7b8e1f5..0000000 --- a/include/opcode/i960.h +++ /dev/null @@ -1,525 +0,0 @@ -/* Basic 80960 instruction formats. - - Copyright 2001-2013 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* The 'COJ' instructions are actually COBR instructions with the 'b' in - the mnemonic replaced by a 'j'; they are ALWAYS "de-optimized" if - necessary: if the displacement will not fit in 13 bits, the assembler will - replace them with the corresponding compare and branch instructions. - - All of the 'MEMn' instructions are the same format; the 'n' in the name - indicates the default index scale factor (the size of the datum operated on). - - The FBRA formats are not actually an instruction format. They are the - "convenience directives" for branching on floating-point comparisons, - each of which generates 2 instructions (a 'bno' and one other branch). - - The CALLJ format is not actually an instruction format. It indicates that - the instruction generated (a CTRL-format 'call') should have its relocation - specially flagged for link-time replacement with a 'bal' or 'calls' if - appropriate. */ - -#define CTRL 0 -#define COBR 1 -#define COJ 2 -#define REG 3 -#define MEM1 4 -#define MEM2 5 -#define MEM4 6 -#define MEM8 7 -#define MEM12 8 -#define MEM16 9 -#define FBRA 10 -#define CALLJ 11 - -/* Masks for the mode bits in REG format instructions */ -#define M1 0x0800 -#define M2 0x1000 -#define M3 0x2000 - -/* Generate the 12-bit opcode for a REG format instruction by placing the - * high 8 bits in instruction bits 24-31, the low 4 bits in instruction bits - * 7-10. - */ - -#define REG_OPC(opc) ((opc & 0xff0) << 20) | ((opc & 0xf) << 7) - -/* Generate a template for a REG format instruction: place the opcode bits - * in the appropriate fields and OR in mode bits for the operands that will not - * be used. I.e., - * set m1=1, if src1 will not be used - * set m2=1, if src2 will not be used - * set m3=1, if dst will not be used - * - * Setting the "unused" mode bits to 1 speeds up instruction execution(!). - * The information is also useful to us because some 1-operand REG instructions - * use the src1 field, others the dst field; and some 2-operand REG instructions - * use src1/src2, others src1/dst. The set mode bits enable us to distinguish. - */ -#define R_0(opc) ( REG_OPC(opc) | M1 | M2 | M3 ) /* No operands */ -#define R_1(opc) ( REG_OPC(opc) | M2 | M3 ) /* 1 operand: src1 */ -#define R_1D(opc) ( REG_OPC(opc) | M1 | M2 ) /* 1 operand: dst */ -#define R_2(opc) ( REG_OPC(opc) | M3 ) /* 2 ops: src1/src2 */ -#define R_2D(opc) ( REG_OPC(opc) | M2 ) /* 2 ops: src1/dst */ -#define R_3(opc) ( REG_OPC(opc) ) /* 3 operands */ - -/* DESCRIPTOR BYTES FOR REGISTER OPERANDS - * - * Interpret names as follows: - * R: global or local register only - * RS: global, local, or (if target allows) special-function register only - * RL: global or local register, or integer literal - * RSL: global, local, or (if target allows) special-function register; - * or integer literal - * F: global, local, or floating-point register - * FL: global, local, or floating-point register; or literal (including - * floating point) - * - * A number appended to a name indicates that registers must be aligned, - * as follows: - * 2: register number must be multiple of 2 - * 4: register number must be multiple of 4 - */ - -#define SFR 0x10 /* Mask for the "sfr-OK" bit */ -#define LIT 0x08 /* Mask for the "literal-OK" bit */ -#define FP 0x04 /* Mask for "floating-point-OK" bit */ - -/* This macro ors the bits together. Note that 'align' is a mask - * for the low 0, 1, or 2 bits of the register number, as appropriate. - */ -#define OP(align,lit,fp,sfr) ( align | lit | fp | sfr ) - -#define R OP( 0, 0, 0, 0 ) -#define RS OP( 0, 0, 0, SFR ) -#define RL OP( 0, LIT, 0, 0 ) -#define RSL OP( 0, LIT, 0, SFR ) -#define F OP( 0, 0, FP, 0 ) -#define FL OP( 0, LIT, FP, 0 ) -#define R2 OP( 1, 0, 0, 0 ) -#define RL2 OP( 1, LIT, 0, 0 ) -#define F2 OP( 1, 0, FP, 0 ) -#define FL2 OP( 1, LIT, FP, 0 ) -#define R4 OP( 3, 0, 0, 0 ) -#define RL4 OP( 3, LIT, 0, 0 ) -#define F4 OP( 3, 0, FP, 0 ) -#define FL4 OP( 3, LIT, FP, 0 ) - -#define M 0x7f /* Memory operand (MEMA & MEMB format instructions) */ - -/* Macros to extract info from the register operand descriptor byte 'od'. - */ -#define SFR_OK(od) (od & SFR) /* TRUE if sfr operand allowed */ -#define LIT_OK(od) (od & LIT) /* TRUE if literal operand allowed */ -#define FP_OK(od) (od & FP) /* TRUE if floating-point op allowed */ -#define REG_ALIGN(od,n) ((od & 0x3 & n) == 0) - /* TRUE if reg #n is properly aligned */ -#define MEMOP(od) (od == M) /* TRUE if operand is a memory operand*/ - -/* Description of a single i80960 instruction */ -struct i960_opcode { - long opcode; /* 32 bits, constant fields filled in, rest zeroed */ - char *name; /* Assembler mnemonic */ - short iclass; /* Class: see #defines below */ - char format; /* REG, COBR, CTRL, MEMn, COJ, FBRA, or CALLJ */ - char num_ops; /* Number of operands */ - char operand[3];/* Operand descriptors; same order as assembler instr */ -}; - -/* Classes of 960 instructions: - * - each instruction falls into one class. - * - each target architecture supports one or more classes. - * - * EACH CONSTANT MUST CONTAIN 1 AND ONLY 1 SET BIT!: see targ_has_iclass(). - */ -#define I_BASE 0x01 /* 80960 base instruction set */ -#define I_CX 0x02 /* 80960Cx instruction */ -#define I_DEC 0x04 /* Decimal instruction */ -#define I_FP 0x08 /* Floating point instruction */ -#define I_KX 0x10 /* 80960Kx instruction */ -#define I_MIL 0x20 /* Military instruction */ -#define I_CASIM 0x40 /* CA simulator instruction */ -#define I_CX2 0x80 /* Cx/Jx/Hx instructions */ -#define I_JX 0x100 /* Jx/Hx instruction */ -#define I_HX 0x200 /* Hx instructions */ - -/****************************************************************************** - * - * TABLE OF i960 INSTRUCTION DESCRIPTIONS - * - ******************************************************************************/ - -const struct i960_opcode i960_opcodes[] = { - - /* if a CTRL instruction has an operand, it's always a displacement */ - - /* callj default=='call' */ - { 0x09000000, "callj", I_BASE, CALLJ, 1, { 0, 0, 0 } }, - { 0x08000000, "b", I_BASE, CTRL, 1, { 0, 0, 0 } }, - { 0x09000000, "call", I_BASE, CTRL, 1, { 0, 0, 0 } }, - { 0x0a000000, "ret", I_BASE, CTRL, 0, { 0, 0, 0 } }, - { 0x0b000000, "bal", I_BASE, CTRL, 1, { 0, 0, 0 } }, - { 0x10000000, "bno", I_BASE, CTRL, 1, { 0, 0, 0 } }, - /* bf same as bno */ - { 0x10000000, "bf", I_BASE, CTRL, 1, { 0, 0, 0 } }, - /* bru same as bno */ - { 0x10000000, "bru", I_BASE, CTRL, 1, { 0, 0, 0 } }, - { 0x11000000, "bg", I_BASE, CTRL, 1, { 0, 0, 0 } }, - /* brg same as bg */ - { 0x11000000, "brg", I_BASE, CTRL, 1, { 0, 0, 0 } }, - { 0x12000000, "be", I_BASE, CTRL, 1, { 0, 0, 0 } }, - /* bre same as be */ - { 0x12000000, "bre", I_BASE, CTRL, 1, { 0, 0, 0 } }, - { 0x13000000, "bge", I_BASE, CTRL, 1, { 0, 0, 0 } }, - /* brge same as bge */ - { 0x13000000, "brge", I_BASE, CTRL, 1, { 0, 0, 0 } }, - { 0x14000000, "bl", I_BASE, CTRL, 1, { 0, 0, 0 } }, - /* brl same as bl */ - { 0x14000000, "brl", I_BASE, CTRL, 1, { 0, 0, 0 } }, - { 0x15000000, "bne", I_BASE, CTRL, 1, { 0, 0, 0 } }, - /* brlg same as bne */ - { 0x15000000, "brlg", I_BASE, CTRL, 1, { 0, 0, 0 } }, - { 0x16000000, "ble", I_BASE, CTRL, 1, { 0, 0, 0 } }, - /* brle same as ble */ - { 0x16000000, "brle", I_BASE, CTRL, 1, { 0, 0, 0 } }, - { 0x17000000, "bo", I_BASE, CTRL, 1, { 0, 0, 0 } }, - /* bt same as bo */ - { 0x17000000, "bt", I_BASE, CTRL, 1, { 0, 0, 0 } }, - /* bro same as bo */ - { 0x17000000, "bro", I_BASE, CTRL, 1, { 0, 0, 0 } }, - { 0x18000000, "faultno", I_BASE, CTRL, 0, { 0, 0, 0 } }, - /* faultf same as faultno */ - { 0x18000000, "faultf", I_BASE, CTRL, 0, { 0, 0, 0 } }, - { 0x19000000, "faultg", I_BASE, CTRL, 0, { 0, 0, 0 } }, - { 0x1a000000, "faulte", I_BASE, CTRL, 0, { 0, 0, 0 } }, - { 0x1b000000, "faultge", I_BASE, CTRL, 0, { 0, 0, 0 } }, - { 0x1c000000, "faultl", I_BASE, CTRL, 0, { 0, 0, 0 } }, - { 0x1d000000, "faultne", I_BASE, CTRL, 0, { 0, 0, 0 } }, - { 0x1e000000, "faultle", I_BASE, CTRL, 0, { 0, 0, 0 } }, - { 0x1f000000, "faulto", I_BASE, CTRL, 0, { 0, 0, 0 } }, - /* faultt syn for faulto */ - { 0x1f000000, "faultt", I_BASE, CTRL, 0, { 0, 0, 0 } }, - - { 0x01000000, "syscall", I_CASIM,CTRL, 0, { 0, 0, 0 } }, - - /* If a COBR (or COJ) has 3 operands, the last one is always a - * displacement and does not appear explicitly in the table. - */ - - { 0x20000000, "testno", I_BASE, COBR, 1, { R, 0, 0 } }, - { 0x21000000, "testg", I_BASE, COBR, 1, { R, 0, 0 } }, - { 0x22000000, "teste", I_BASE, COBR, 1, { R, 0, 0 } }, - { 0x23000000, "testge", I_BASE, COBR, 1, { R, 0, 0 } }, - { 0x24000000, "testl", I_BASE, COBR, 1, { R, 0, 0 } }, - { 0x25000000, "testne", I_BASE, COBR, 1, { R, 0, 0 } }, - { 0x26000000, "testle", I_BASE, COBR, 1, { R, 0, 0 } }, - { 0x27000000, "testo", I_BASE, COBR, 1, { R, 0, 0 } }, - { 0x30000000, "bbc", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x31000000, "cmpobg", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x32000000, "cmpobe", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x33000000, "cmpobge", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x34000000, "cmpobl", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x35000000, "cmpobne", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x36000000, "cmpoble", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x37000000, "bbs", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x38000000, "cmpibno", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x39000000, "cmpibg", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x3a000000, "cmpibe", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x3b000000, "cmpibge", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x3c000000, "cmpibl", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x3d000000, "cmpibne", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x3e000000, "cmpible", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x3f000000, "cmpibo", I_BASE, COBR, 3, { RL, RS, 0 } }, - { 0x31000000, "cmpojg", I_BASE, COJ, 3, { RL, RS, 0 } }, - { 0x32000000, "cmpoje", I_BASE, COJ, 3, { RL, RS, 0 } }, - { 0x33000000, "cmpojge", I_BASE, COJ, 3, { RL, RS, 0 } }, - { 0x34000000, "cmpojl", I_BASE, COJ, 3, { RL, RS, 0 } }, - { 0x35000000, "cmpojne", I_BASE, COJ, 3, { RL, RS, 0 } }, - { 0x36000000, "cmpojle", I_BASE, COJ, 3, { RL, RS, 0 } }, - { 0x38000000, "cmpijno", I_BASE, COJ, 3, { RL, RS, 0 } }, - { 0x39000000, "cmpijg", I_BASE, COJ, 3, { RL, RS, 0 } }, - { 0x3a000000, "cmpije", I_BASE, COJ, 3, { RL, RS, 0 } }, - { 0x3b000000, "cmpijge", I_BASE, COJ, 3, { RL, RS, 0 } }, - { 0x3c000000, "cmpijl", I_BASE, COJ, 3, { RL, RS, 0 } }, - { 0x3d000000, "cmpijne", I_BASE, COJ, 3, { RL, RS, 0 } }, - { 0x3e000000, "cmpijle", I_BASE, COJ, 3, { RL, RS, 0 } }, - { 0x3f000000, "cmpijo", I_BASE, COJ, 3, { RL, RS, 0 } }, - - { 0x80000000, "ldob", I_BASE, MEM1, 2, { M, R, 0 } }, - { 0x82000000, "stob", I_BASE, MEM1, 2, { R, M, 0 } }, - { 0x84000000, "bx", I_BASE, MEM1, 1, { M, 0, 0 } }, - { 0x85000000, "balx", I_BASE, MEM1, 2, { M, R, 0 } }, - { 0x86000000, "callx", I_BASE, MEM1, 1, { M, 0, 0 } }, - { 0x88000000, "ldos", I_BASE, MEM2, 2, { M, R, 0 } }, - { 0x8a000000, "stos", I_BASE, MEM2, 2, { R, M, 0 } }, - { 0x8c000000, "lda", I_BASE, MEM1, 2, { M, R, 0 } }, - { 0x90000000, "ld", I_BASE, MEM4, 2, { M, R, 0 } }, - { 0x92000000, "st", I_BASE, MEM4, 2, { R, M, 0 } }, - { 0x98000000, "ldl", I_BASE, MEM8, 2, { M, R2, 0 } }, - { 0x9a000000, "stl", I_BASE, MEM8, 2, { R2, M, 0 } }, - { 0xa0000000, "ldt", I_BASE, MEM12, 2, { M, R4, 0 } }, - { 0xa2000000, "stt", I_BASE, MEM12, 2, { R4, M, 0 } }, - { 0xb0000000, "ldq", I_BASE, MEM16, 2, { M, R4, 0 } }, - { 0xb2000000, "stq", I_BASE, MEM16, 2, { R4, M, 0 } }, - { 0xc0000000, "ldib", I_BASE, MEM1, 2, { M, R, 0 } }, - { 0xc2000000, "stib", I_BASE, MEM1, 2, { R, M, 0 } }, - { 0xc8000000, "ldis", I_BASE, MEM2, 2, { M, R, 0 } }, - { 0xca000000, "stis", I_BASE, MEM2, 2, { R, M, 0 } }, - - { R_3(0x580), "notbit", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x581), "and", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x582), "andnot", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x583), "setbit", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x584), "notand", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x586), "xor", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x587), "or", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x588), "nor", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x589), "xnor", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_2D(0x58a), "not", I_BASE, REG, 2, { RSL,RS, 0 } }, - { R_3(0x58b), "ornot", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x58c), "clrbit", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x58d), "notor", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x58e), "nand", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x58f), "alterbit", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x590), "addo", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x591), "addi", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x592), "subo", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x593), "subi", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x598), "shro", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x59a), "shrdi", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x59b), "shri", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x59c), "shlo", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x59d), "rotate", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x59e), "shli", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_2(0x5a0), "cmpo", I_BASE, REG, 2, { RSL,RSL, 0 } }, - { R_2(0x5a1), "cmpi", I_BASE, REG, 2, { RSL,RSL, 0 } }, - { R_2(0x5a2), "concmpo", I_BASE, REG, 2, { RSL,RSL, 0 } }, - { R_2(0x5a3), "concmpi", I_BASE, REG, 2, { RSL,RSL, 0 } }, - { R_3(0x5a4), "cmpinco", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x5a5), "cmpinci", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x5a6), "cmpdeco", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x5a7), "cmpdeci", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_2(0x5ac), "scanbyte", I_BASE, REG, 2, { RSL,RSL, 0 } }, - { R_2(0x5ae), "chkbit", I_BASE, REG, 2, { RSL,RSL, 0 } }, - { R_3(0x5b0), "addc", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x5b2), "subc", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_2D(0x5cc), "mov", I_BASE, REG, 2, { RSL,RS, 0 } }, - { R_2D(0x5dc), "movl", I_BASE, REG, 2, { RL2,R2, 0 } }, - { R_2D(0x5ec), "movt", I_BASE, REG, 2, { RL4,R4, 0 } }, - { R_2D(0x5fc), "movq", I_BASE, REG, 2, { RL4,R4, 0 } }, - { R_3(0x610), "atmod", I_BASE, REG, 3, { RS, RSL,R } }, - { R_3(0x612), "atadd", I_BASE, REG, 3, { RS, RSL,RS } }, - { R_2D(0x640), "spanbit", I_BASE, REG, 2, { RSL,RS, 0 } }, - { R_2D(0x641), "scanbit", I_BASE, REG, 2, { RSL,RS, 0 } }, - { R_3(0x645), "modac", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x650), "modify", I_BASE, REG, 3, { RSL,RSL,R } }, - { R_3(0x651), "extract", I_BASE, REG, 3, { RSL,RSL,R } }, - { R_3(0x654), "modtc", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x655), "modpc", I_BASE, REG, 3, { RSL,RSL,R } }, - { R_1(0x660), "calls", I_BASE, REG, 1, { RSL, 0, 0 } }, - { R_0(0x66b), "mark", I_BASE, REG, 0, { 0, 0, 0 } }, - { R_0(0x66c), "fmark", I_BASE, REG, 0, { 0, 0, 0 } }, - { R_0(0x66d), "flushreg", I_BASE, REG, 0, { 0, 0, 0 } }, - { R_0(0x66f), "syncf", I_BASE, REG, 0, { 0, 0, 0 } }, - { R_3(0x670), "emul", I_BASE, REG, 3, { RSL,RSL,R2 } }, - { R_3(0x671), "ediv", I_BASE, REG, 3, { RSL,RL2,RS } }, - { R_2D(0x672), "cvtadr", I_CASIM,REG, 2, { RL, R2, 0 } }, - { R_3(0x701), "mulo", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x708), "remo", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x70b), "divo", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x741), "muli", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x748), "remi", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x749), "modi", I_BASE, REG, 3, { RSL,RSL,RS } }, - { R_3(0x74b), "divi", I_BASE, REG, 3, { RSL,RSL,RS } }, - - /* Floating-point instructions */ - - { R_2D(0x674), "cvtir", I_FP, REG, 2, { RL, F, 0 } }, - { R_2D(0x675), "cvtilr", I_FP, REG, 2, { RL, F, 0 } }, - { R_3(0x676), "scalerl", I_FP, REG, 3, { RL, FL2,F2 } }, - { R_3(0x677), "scaler", I_FP, REG, 3, { RL, FL, F } }, - { R_3(0x680), "atanr", I_FP, REG, 3, { FL, FL, F } }, - { R_3(0x681), "logepr", I_FP, REG, 3, { FL, FL, F } }, - { R_3(0x682), "logr", I_FP, REG, 3, { FL, FL, F } }, - { R_3(0x683), "remr", I_FP, REG, 3, { FL, FL, F } }, - { R_2(0x684), "cmpor", I_FP, REG, 2, { FL, FL, 0 } }, - { R_2(0x685), "cmpr", I_FP, REG, 2, { FL, FL, 0 } }, - { R_2D(0x688), "sqrtr", I_FP, REG, 2, { FL, F, 0 } }, - { R_2D(0x689), "expr", I_FP, REG, 2, { FL, F, 0 } }, - { R_2D(0x68a), "logbnr", I_FP, REG, 2, { FL, F, 0 } }, - { R_2D(0x68b), "roundr", I_FP, REG, 2, { FL, F, 0 } }, - { R_2D(0x68c), "sinr", I_FP, REG, 2, { FL, F, 0 } }, - { R_2D(0x68d), "cosr", I_FP, REG, 2, { FL, F, 0 } }, - { R_2D(0x68e), "tanr", I_FP, REG, 2, { FL, F, 0 } }, - { R_1(0x68f), "classr", I_FP, REG, 1, { FL, 0, 0 } }, - { R_3(0x690), "atanrl", I_FP, REG, 3, { FL2,FL2,F2 } }, - { R_3(0x691), "logeprl", I_FP, REG, 3, { FL2,FL2,F2 } }, - { R_3(0x692), "logrl", I_FP, REG, 3, { FL2,FL2,F2 } }, - { R_3(0x693), "remrl", I_FP, REG, 3, { FL2,FL2,F2 } }, - { R_2(0x694), "cmporl", I_FP, REG, 2, { FL2,FL2, 0 } }, - { R_2(0x695), "cmprl", I_FP, REG, 2, { FL2,FL2, 0 } }, - { R_2D(0x698), "sqrtrl", I_FP, REG, 2, { FL2,F2, 0 } }, - { R_2D(0x699), "exprl", I_FP, REG, 2, { FL2,F2, 0 } }, - { R_2D(0x69a), "logbnrl", I_FP, REG, 2, { FL2,F2, 0 } }, - { R_2D(0x69b), "roundrl", I_FP, REG, 2, { FL2,F2, 0 } }, - { R_2D(0x69c), "sinrl", I_FP, REG, 2, { FL2,F2, 0 } }, - { R_2D(0x69d), "cosrl", I_FP, REG, 2, { FL2,F2, 0 } }, - { R_2D(0x69e), "tanrl", I_FP, REG, 2, { FL2,F2, 0 } }, - { R_1(0x69f), "classrl", I_FP, REG, 1, { FL2, 0, 0 } }, - { R_2D(0x6c0), "cvtri", I_FP, REG, 2, { FL, R, 0 } }, - { R_2D(0x6c1), "cvtril", I_FP, REG, 2, { FL, R2, 0 } }, - { R_2D(0x6c2), "cvtzri", I_FP, REG, 2, { FL, R, 0 } }, - { R_2D(0x6c3), "cvtzril", I_FP, REG, 2, { FL, R2, 0 } }, - { R_2D(0x6c9), "movr", I_FP, REG, 2, { FL, F, 0 } }, - { R_2D(0x6d9), "movrl", I_FP, REG, 2, { FL2,F2, 0 } }, - { R_2D(0x6e1), "movre", I_FP, REG, 2, { FL4,F4, 0 } }, - { R_3(0x6e2), "cpysre", I_FP, REG, 3, { FL4,FL4,F4 } }, - { R_3(0x6e3), "cpyrsre", I_FP, REG, 3, { FL4,FL4,F4 } }, - { R_3(0x78b), "divr", I_FP, REG, 3, { FL, FL, F } }, - { R_3(0x78c), "mulr", I_FP, REG, 3, { FL, FL, F } }, - { R_3(0x78d), "subr", I_FP, REG, 3, { FL, FL, F } }, - { R_3(0x78f), "addr", I_FP, REG, 3, { FL, FL, F } }, - { R_3(0x79b), "divrl", I_FP, REG, 3, { FL2,FL2,F2 } }, - { R_3(0x79c), "mulrl", I_FP, REG, 3, { FL2,FL2,F2 } }, - { R_3(0x79d), "subrl", I_FP, REG, 3, { FL2,FL2,F2 } }, - { R_3(0x79f), "addrl", I_FP, REG, 3, { FL2,FL2,F2 } }, - - /* These are the floating point branch instructions. Each actually - * generates 2 branch instructions: the first a CTRL instruction with - * the indicated opcode, and the second a 'bno'. - */ - - { 0x12000000, "brue", I_FP, FBRA, 1, { 0, 0, 0 } }, - { 0x11000000, "brug", I_FP, FBRA, 1, { 0, 0, 0 } }, - { 0x13000000, "bruge", I_FP, FBRA, 1, { 0, 0, 0 } }, - { 0x14000000, "brul", I_FP, FBRA, 1, { 0, 0, 0 } }, - { 0x16000000, "brule", I_FP, FBRA, 1, { 0, 0, 0 } }, - { 0x15000000, "brulg", I_FP, FBRA, 1, { 0, 0, 0 } }, - - - /* Decimal instructions */ - - { R_3(0x642), "daddc", I_DEC, REG, 3, { RSL,RSL,RS } }, - { R_3(0x643), "dsubc", I_DEC, REG, 3, { RSL,RSL,RS } }, - { R_2D(0x644), "dmovt", I_DEC, REG, 2, { RSL,RS, 0 } }, - - - /* KX extensions */ - - { R_2(0x600), "synmov", I_KX, REG, 2, { R, R, 0 } }, - { R_2(0x601), "synmovl", I_KX, REG, 2, { R, R, 0 } }, - { R_2(0x602), "synmovq", I_KX, REG, 2, { R, R, 0 } }, - { R_2D(0x615), "synld", I_KX, REG, 2, { R, R, 0 } }, - - - /* MC extensions */ - - { R_3(0x603), "cmpstr", I_MIL, REG, 3, { R, R, RL } }, - { R_3(0x604), "movqstr", I_MIL, REG, 3, { R, R, RL } }, - { R_3(0x605), "movstr", I_MIL, REG, 3, { R, R, RL } }, - { R_2D(0x613), "inspacc", I_MIL, REG, 2, { R, R, 0 } }, - { R_2D(0x614), "ldphy", I_MIL, REG, 2, { R, R, 0 } }, - { R_3(0x617), "fill", I_MIL, REG, 3, { R, RL, RL } }, - { R_2D(0x646), "condrec", I_MIL, REG, 2, { R, R, 0 } }, - { R_2D(0x656), "receive", I_MIL, REG, 2, { R, R, 0 } }, - { R_3(0x662), "send", I_MIL, REG, 3, { R, RL, R } }, - { R_1(0x663), "sendserv", I_MIL, REG, 1, { R, 0, 0 } }, - { R_1(0x664), "resumprcs", I_MIL, REG, 1, { R, 0, 0 } }, - { R_1(0x665), "schedprcs", I_MIL, REG, 1, { R, 0, 0 } }, - { R_0(0x666), "saveprcs", I_MIL, REG, 0, { 0, 0, 0 } }, - { R_1(0x668), "condwait", I_MIL, REG, 1, { R, 0, 0 } }, - { R_1(0x669), "wait", I_MIL, REG, 1, { R, 0, 0 } }, - { R_1(0x66a), "signal", I_MIL, REG, 1, { R, 0, 0 } }, - { R_1D(0x673), "ldtime", I_MIL, REG, 1, { R2, 0, 0 } }, - - - /* CX extensions */ - - { R_3(0x5d8), "eshro", I_CX2, REG, 3, { RSL,RSL,RS } }, - { R_3(0x630), "sdma", I_CX, REG, 3, { RSL,RSL,RL } }, - { R_3(0x631), "udma", I_CX, REG, 0, { 0, 0, 0 } }, - { R_3(0x659), "sysctl", I_CX2, REG, 3, { RSL,RSL,RL } }, - - - /* Jx extensions. */ - { R_3(0x780), "addono", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x790), "addog", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7a0), "addoe", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7b0), "addoge", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7c0), "addol", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7d0), "addone", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7e0), "addole", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7f0), "addoo", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x781), "addino", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x791), "addig", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7a1), "addie", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7b1), "addige", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7c1), "addil", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7d1), "addine", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7e1), "addile", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7f1), "addio", I_JX, REG, 3, { RSL,RSL,RS } }, - - { R_2D(0x5ad), "bswap", I_JX, REG, 2, { RSL, RS, 0 } }, - - { R_2(0x594), "cmpob", I_JX, REG, 2, { RSL,RSL, 0 } }, - { R_2(0x595), "cmpib", I_JX, REG, 2, { RSL,RSL, 0 } }, - { R_2(0x596), "cmpos", I_JX, REG, 2, { RSL,RSL, 0 } }, - { R_2(0x597), "cmpis", I_JX, REG, 2, { RSL,RSL, 0 } }, - - { R_3(0x784), "selno", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x794), "selg", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7a4), "sele", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7b4), "selge", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7c4), "sell", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7d4), "selne", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7e4), "selle", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7f4), "selo", I_JX, REG, 3, { RSL,RSL,RS } }, - - { R_3(0x782), "subono", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x792), "subog", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7a2), "suboe", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7b2), "suboge", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7c2), "subol", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7d2), "subone", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7e2), "subole", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7f2), "suboo", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x783), "subino", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x793), "subig", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7a3), "subie", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7b3), "subige", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7c3), "subil", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7d3), "subine", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7e3), "subile", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_3(0x7f3), "subio", I_JX, REG, 3, { RSL,RSL,RS } }, - - { R_3(0x65c), "dcctl", I_JX, REG, 3, { RSL,RSL,RL } }, - { R_3(0x65b), "icctl", I_JX, REG, 3, { RSL,RSL,RS } }, - { R_2D(0x658), "intctl", I_JX, REG, 2, { RSL, RS, 0 } }, - { R_0(0x5b4), "intdis", I_JX, REG, 0, { 0, 0, 0 } }, - { R_0(0x5b5), "inten", I_JX, REG, 0, { 0, 0, 0 } }, - { R_0(0x65d), "halt", I_JX, REG, 1, { RSL, 0, 0 } }, - - /* Hx extensions. */ - { 0xac000000, "dcinva", I_HX, MEM1, 1, { M, 0, 0 } }, - - /* END OF TABLE */ - - { 0, NULL, 0, 0, 0, { 0, 0, 0 } } -}; - - /* end of i960-opcode.h */ diff --git a/include/opcode/ia64.h b/include/opcode/ia64.h deleted file mode 100644 index 433c505..0000000 --- a/include/opcode/ia64.h +++ /dev/null @@ -1,422 +0,0 @@ -/* ia64.h -- Header file for ia64 opcode table - Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006, 2010 - Free Software Foundation, Inc. - Contributed by David Mosberger-Tang - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef opcode_ia64_h -#define opcode_ia64_h - -#include - -#include "bfd.h" - - -typedef BFD_HOST_U_64_BIT ia64_insn; - -enum ia64_insn_type - { - IA64_TYPE_NIL = 0, /* illegal type */ - IA64_TYPE_A, /* integer alu (I- or M-unit) */ - IA64_TYPE_I, /* non-alu integer (I-unit) */ - IA64_TYPE_M, /* memory (M-unit) */ - IA64_TYPE_B, /* branch (B-unit) */ - IA64_TYPE_F, /* floating-point (F-unit) */ - IA64_TYPE_X, /* long encoding (X-unit) */ - IA64_TYPE_DYN, /* Dynamic opcode */ - IA64_NUM_TYPES - }; - -enum ia64_unit - { - IA64_UNIT_NIL = 0, /* illegal unit */ - IA64_UNIT_I, /* integer unit */ - IA64_UNIT_M, /* memory unit */ - IA64_UNIT_B, /* branching unit */ - IA64_UNIT_F, /* floating-point unit */ - IA64_UNIT_L, /* long "unit" */ - IA64_UNIT_X, /* may be integer or branch unit */ - IA64_NUM_UNITS - }; - -/* Changes to this enumeration must be propagated to the operand table in - bfd/cpu-ia64-opc.c - */ -enum ia64_opnd - { - IA64_OPND_NIL, /* no operand---MUST BE FIRST!*/ - - /* constants */ - IA64_OPND_AR_CSD, /* application register csd (ar.csd) */ - IA64_OPND_AR_CCV, /* application register ccv (ar.ccv) */ - IA64_OPND_AR_PFS, /* application register pfs (ar.pfs) */ - IA64_OPND_C1, /* the constant 1 */ - IA64_OPND_C8, /* the constant 8 */ - IA64_OPND_C16, /* the constant 16 */ - IA64_OPND_GR0, /* gr0 */ - IA64_OPND_IP, /* instruction pointer (ip) */ - IA64_OPND_PR, /* predicate register (pr) */ - IA64_OPND_PR_ROT, /* rotating predicate register (pr.rot) */ - IA64_OPND_PSR, /* processor status register (psr) */ - IA64_OPND_PSR_L, /* processor status register L (psr.l) */ - IA64_OPND_PSR_UM, /* processor status register UM (psr.um) */ - - /* register operands: */ - IA64_OPND_AR3, /* third application register # (bits 20-26) */ - IA64_OPND_B1, /* branch register # (bits 6-8) */ - IA64_OPND_B2, /* branch register # (bits 13-15) */ - IA64_OPND_CR3, /* third control register # (bits 20-26) */ - IA64_OPND_F1, /* first floating-point register # */ - IA64_OPND_F2, /* second floating-point register # */ - IA64_OPND_F3, /* third floating-point register # */ - IA64_OPND_F4, /* fourth floating-point register # */ - IA64_OPND_P1, /* first predicate # */ - IA64_OPND_P2, /* second predicate # */ - IA64_OPND_R1, /* first register # */ - IA64_OPND_R2, /* second register # */ - IA64_OPND_R3, /* third register # */ - IA64_OPND_R3_2, /* third register # (limited to gr0-gr3) */ - IA64_OPND_DAHR3, /* dahr reg # ( bits 23-25) */ - - /* memory operands: */ - IA64_OPND_MR3, /* memory at addr of third register # */ - - /* indirect operands: */ - IA64_OPND_CPUID_R3, /* cpuid[reg] */ - IA64_OPND_DBR_R3, /* dbr[reg] */ - IA64_OPND_DTR_R3, /* dtr[reg] */ - IA64_OPND_ITR_R3, /* itr[reg] */ - IA64_OPND_IBR_R3, /* ibr[reg] */ - IA64_OPND_MSR_R3, /* msr[reg] */ - IA64_OPND_PKR_R3, /* pkr[reg] */ - IA64_OPND_PMC_R3, /* pmc[reg] */ - IA64_OPND_PMD_R3, /* pmd[reg] */ - IA64_OPND_DAHR_R3, /* dahr[reg] */ - IA64_OPND_RR_R3, /* rr[reg] */ - - /* immediate operands: */ - IA64_OPND_CCNT5, /* 5-bit count (31 - bits 20-24) */ - IA64_OPND_CNT2a, /* 2-bit count (1 + bits 27-28) */ - IA64_OPND_CNT2b, /* 2-bit count (bits 27-28): 1, 2, 3 */ - IA64_OPND_CNT2c, /* 2-bit count (bits 30-31): 0, 7, 15, or 16 */ - IA64_OPND_CNT5, /* 5-bit count (bits 14-18) */ - IA64_OPND_CNT6, /* 6-bit count (bits 27-32) */ - IA64_OPND_CPOS6a, /* 6-bit count (63 - bits 20-25) */ - IA64_OPND_CPOS6b, /* 6-bit count (63 - bits 14-19) */ - IA64_OPND_CPOS6c, /* 6-bit count (63 - bits 31-36) */ - IA64_OPND_IMM1, /* signed 1-bit immediate (bit 36) */ - IA64_OPND_IMMU2, /* unsigned 2-bit immediate (bits 13-14) */ - IA64_OPND_IMMU5b, /* unsigned 5-bit immediate (32 + bits 14-18) */ - IA64_OPND_IMMU7a, /* unsigned 7-bit immediate (bits 13-19) */ - IA64_OPND_IMMU7b, /* unsigned 7-bit immediate (bits 20-26) */ - IA64_OPND_SOF, /* 8-bit stack frame size */ - IA64_OPND_SOL, /* 8-bit size of locals */ - IA64_OPND_SOR, /* 6-bit number of rotating registers (scaled by 8) */ - IA64_OPND_IMM8, /* signed 8-bit immediate (bits 13-19 & 36) */ - IA64_OPND_IMM8U4, /* cmp4*u signed 8-bit immediate (bits 13-19 & 36) */ - IA64_OPND_IMM8M1, /* signed 8-bit immediate -1 (bits 13-19 & 36) */ - IA64_OPND_IMM8M1U4, /* cmp4*u signed 8-bit immediate -1 (bits 13-19 & 36)*/ - IA64_OPND_IMM8M1U8, /* cmp*u signed 8-bit immediate -1 (bits 13-19 & 36) */ - IA64_OPND_IMMU9, /* unsigned 9-bit immediate (bits 33-34, 20-26) */ - IA64_OPND_IMM9a, /* signed 9-bit immediate (bits 6-12, 27, 36) */ - IA64_OPND_IMM9b, /* signed 9-bit immediate (bits 13-19, 27, 36) */ - IA64_OPND_IMM14, /* signed 14-bit immediate (bits 13-19, 27-32, 36) */ - IA64_OPND_IMMU16, /* unsigned 16-bit immediate (bits 6-9, 12-22, 36) */ - IA64_OPND_IMM17, /* signed 17-bit immediate (2*bits 6-12, 24-31, 36) */ - IA64_OPND_IMMU19, /* unsigned 19-bit immediate (bits 6-9, 12-25, 36) */ - IA64_OPND_IMMU21, /* unsigned 21-bit immediate (bits 6-25, 36) */ - IA64_OPND_IMM22, /* signed 22-bit immediate (bits 13-19, 22-36) */ - IA64_OPND_IMMU24, /* unsigned 24-bit immediate (bits 6-26, 31-32, 36) */ - IA64_OPND_IMM44, /* signed 44-bit immediate (2^16*bits 6-32, 36) */ - IA64_OPND_IMMU62, /* unsigned 62-bit immediate */ - IA64_OPND_IMMU64, /* unsigned 64-bit immediate (lotsa bits...) */ - IA64_OPND_INC3, /* signed 3-bit (bits 13-15): +/-1, 4, 8, 16 */ - IA64_OPND_LEN4, /* 4-bit count (bits 27-30 + 1) */ - IA64_OPND_LEN6, /* 6-bit count (bits 27-32 + 1) */ - IA64_OPND_MBTYPE4, /* 4-bit mux type (bits 20-23) */ - IA64_OPND_MHTYPE8, /* 8-bit mux type (bits 20-27) */ - IA64_OPND_POS6, /* 6-bit count (bits 14-19) */ - IA64_OPND_TAG13, /* signed 13-bit tag (ip + 16*bits 6-12, 33-34) */ - IA64_OPND_TAG13b, /* signed 13-bit tag (ip + 16*bits 24-32) */ - IA64_OPND_TGT25, /* signed 25-bit (ip + 16*bits 6-25, 36) */ - IA64_OPND_TGT25b, /* signed 25-bit (ip + 16*bits 6-12, 20-32, 36) */ - IA64_OPND_TGT25c, /* signed 25-bit (ip + 16*bits 13-32, 36) */ - IA64_OPND_TGT64, /* 64-bit (ip + 16*bits 13-32, 36, 2-40(L)) */ - IA64_OPND_LDXMOV, /* any symbol, generates R_IA64_LDXMOV. */ - - IA64_OPND_CNT6a, /* 6-bit count (bits 6-11) */ - IA64_OPND_STRD5b, /* 5-bit stride (bits 13-17) */ - - IA64_OPND_COUNT /* # of operand types (MUST BE LAST!) */ - }; - -enum ia64_dependency_mode -{ - IA64_DV_RAW, - IA64_DV_WAW, - IA64_DV_WAR, -}; - -enum ia64_dependency_semantics -{ - IA64_DVS_NONE, - IA64_DVS_IMPLIED, - IA64_DVS_IMPLIEDF, - IA64_DVS_DATA, - IA64_DVS_INSTR, - IA64_DVS_SPECIFIC, - IA64_DVS_STOP, - IA64_DVS_OTHER, -}; - -enum ia64_resource_specifier -{ - IA64_RS_ANY, - IA64_RS_AR_K, - IA64_RS_AR_UNAT, - IA64_RS_AR, /* 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111 */ - IA64_RS_ARb, /* 48-63, 112-127 */ - IA64_RS_BR, - IA64_RS_CFM, - IA64_RS_CPUID, - IA64_RS_CR_IIB, - IA64_RS_CR_IRR, - IA64_RS_CR_LRR, - IA64_RS_CR, /* 3-7,10-15,18,28-63,75-79,82-127 */ - IA64_RS_DAHR, - IA64_RS_DBR, - IA64_RS_FR, - IA64_RS_FRb, - IA64_RS_GR0, - IA64_RS_GR, - IA64_RS_IBR, - IA64_RS_INSERVICE, /* CR[EOI] or CR[IVR] */ - IA64_RS_MSR, - IA64_RS_PKR, - IA64_RS_PMC, - IA64_RS_PMD, - IA64_RS_PR, /* non-rotating, 1-15 */ - IA64_RS_PRr, /* rotating, 16-62 */ - IA64_RS_PR63, - IA64_RS_RR, - - IA64_RS_ARX, /* ARs not in RS_AR or RS_ARb */ - IA64_RS_CRX, /* CRs not in RS_CR */ - IA64_RS_PSR, /* PSR bits */ - IA64_RS_RSE, /* implementation-specific RSE resources */ - IA64_RS_AR_FPSR, - -}; - -enum ia64_rse_resource -{ - IA64_RSE_N_STACKED_PHYS, - IA64_RSE_BOF, - IA64_RSE_STORE_REG, - IA64_RSE_LOAD_REG, - IA64_RSE_BSPLOAD, - IA64_RSE_RNATBITINDEX, - IA64_RSE_CFLE, - IA64_RSE_NDIRTY, -}; - -/* Information about a given resource dependency */ -struct ia64_dependency -{ - /* Name of the resource */ - const char *name; - /* Does this dependency need further specification? */ - enum ia64_resource_specifier specifier; - /* Mode of dependency */ - enum ia64_dependency_mode mode; - /* Dependency semantics */ - enum ia64_dependency_semantics semantics; - /* Register index, if applicable (distinguishes AR, CR, and PSR deps) */ -#define REG_NONE (-1) - int regindex; - /* Special info on semantics */ - const char *info; -}; - -/* Two arrays of indexes into the ia64_dependency table. - chks are dependencies to check for conflicts when an opcode is - encountered; regs are dependencies to register (mark as used) when an - opcode is used. chks correspond to readers (RAW) or writers (WAW or - WAR) of a resource, while regs correspond to writers (RAW or WAW) and - readers (WAR) of a resource. */ -struct ia64_opcode_dependency -{ - int nchks; - const unsigned short *chks; - int nregs; - const unsigned short *regs; -}; - -/* encode/extract the note/index for a dependency */ -#define RDEP(N,X) (((N)<<11)|(X)) -#define NOTE(X) (((X)>>11)&0x1F) -#define DEP(X) ((X)&0x7FF) - -/* A template descriptor describes the execution units that are active - for each of the three slots. It also specifies the location of - instruction group boundaries that may be present between two slots. */ -struct ia64_templ_desc - { - int group_boundary; /* 0=no boundary, 1=between slot 0 & 1, etc. */ - enum ia64_unit exec_unit[3]; - const char *name; - }; - -/* The opcode table is an array of struct ia64_opcode. */ - -struct ia64_opcode - { - /* The opcode name. */ - const char *name; - - /* The type of the instruction: */ - enum ia64_insn_type type; - - /* Number of output operands: */ - int num_outputs; - - /* The opcode itself. Those bits which will be filled in with - operands are zeroes. */ - ia64_insn opcode; - - /* The opcode mask. This is used by the disassembler. This is a - mask containing ones indicating those bits which must match the - opcode field, and zeroes indicating those bits which need not - match (and are presumably filled in by operands). */ - ia64_insn mask; - - /* An array of operand codes. Each code is an index into the - operand table. They appear in the order which the operands must - appear in assembly code, and are terminated by a zero. */ - enum ia64_opnd operands[5]; - - /* One bit flags for the opcode. These are primarily used to - indicate specific processors and environments support the - instructions. The defined values are listed below. */ - unsigned int flags; - - /* Used by ia64_find_next_opcode (). */ - short ent_index; - - /* Opcode dependencies. */ - const struct ia64_opcode_dependency *dependencies; - }; - -/* Values defined for the flags field of a struct ia64_opcode. */ - -#define IA64_OPCODE_FIRST (1<<0) /* must be first in an insn group */ -#define IA64_OPCODE_X_IN_MLX (1<<1) /* insn is allowed in X slot of MLX */ -#define IA64_OPCODE_LAST (1<<2) /* must be last in an insn group */ -#define IA64_OPCODE_PRIV (1<<3) /* privileged instruct */ -#define IA64_OPCODE_SLOT2 (1<<4) /* insn allowed in slot 2 only */ -#define IA64_OPCODE_NO_PRED (1<<5) /* insn cannot be predicated */ -#define IA64_OPCODE_PSEUDO (1<<6) /* insn is a pseudo-op */ -#define IA64_OPCODE_F2_EQ_F3 (1<<7) /* constraint: F2 == F3 */ -#define IA64_OPCODE_LEN_EQ_64MCNT (1<<8) /* constraint: LEN == 64-CNT */ -#define IA64_OPCODE_MOD_RRBS (1<<9) /* modifies all rrbs in CFM */ -#define IA64_OPCODE_POSTINC (1<<10) /* postincrement MR3 operand */ - -/* A macro to extract the major opcode from an instruction. */ -#define IA64_OP(i) (((i) >> 37) & 0xf) - -enum ia64_operand_class - { - IA64_OPND_CLASS_CST, /* constant */ - IA64_OPND_CLASS_REG, /* register */ - IA64_OPND_CLASS_IND, /* indirect register */ - IA64_OPND_CLASS_ABS, /* absolute value */ - IA64_OPND_CLASS_REL, /* IP-relative value */ - }; - -/* The operands table is an array of struct ia64_operand. */ - -struct ia64_operand -{ - enum ia64_operand_class op_class; - - /* Set VALUE as the operand bits for the operand of type SELF in the - instruction pointed to by CODE. If an error occurs, *CODE is not - modified and the returned string describes the cause of the - error. If no error occurs, NULL is returned. */ - const char *(*insert) (const struct ia64_operand *self, ia64_insn value, - ia64_insn *code); - - /* Extract the operand bits for an operand of type SELF from - instruction CODE store them in *VALUE. If an error occurs, the - cause of the error is described by the string returned. If no - error occurs, NULL is returned. */ - const char *(*extract) (const struct ia64_operand *self, ia64_insn code, - ia64_insn *value); - - /* A string whose meaning depends on the operand class. */ - - const char *str; - - struct bit_field - { - /* The number of bits in the operand. */ - int bits; - - /* How far the operand is left shifted in the instruction. */ - int shift; - } - field[4]; /* no operand has more than this many bit-fields */ - - unsigned int flags; - - const char *desc; /* brief description */ -}; - -/* Values defined for the flags field of a struct ia64_operand. */ - -/* Disassemble as signed decimal (instead of hex): */ -#define IA64_OPND_FLAG_DECIMAL_SIGNED (1<<0) -/* Disassemble as unsigned decimal (instead of hex): */ -#define IA64_OPND_FLAG_DECIMAL_UNSIGNED (1<<1) - -extern const struct ia64_templ_desc ia64_templ_desc[16]; - -/* The tables are sorted by major opcode number and are otherwise in - the order in which the disassembler should consider instructions. */ -extern struct ia64_opcode ia64_opcodes_a[]; -extern struct ia64_opcode ia64_opcodes_i[]; -extern struct ia64_opcode ia64_opcodes_m[]; -extern struct ia64_opcode ia64_opcodes_b[]; -extern struct ia64_opcode ia64_opcodes_f[]; -extern struct ia64_opcode ia64_opcodes_d[]; - - -extern struct ia64_opcode *ia64_find_opcode (const char *); -extern struct ia64_opcode *ia64_find_next_opcode (struct ia64_opcode *); - -extern struct ia64_opcode *ia64_dis_opcode (ia64_insn, - enum ia64_insn_type); - -extern void ia64_free_opcode (struct ia64_opcode *); -extern const struct ia64_dependency *ia64_find_dependency (int); - -/* To avoid circular library dependencies, this array is implemented - in bfd/cpu-ia64-opc.c: */ -extern const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT]; - -#endif /* opcode_ia64_h */ diff --git a/include/opcode/m68hc11.h b/include/opcode/m68hc11.h deleted file mode 100644 index 1a00200..0000000 --- a/include/opcode/m68hc11.h +++ /dev/null @@ -1,456 +0,0 @@ -/* m68hc11.h -- Header file for Motorola 68HC11 & 68HC12 opcode table - Copyright 1999, 2000, 2002, 2003, 2010, 2012 - Free Software Foundation, Inc. - Written by Stephane Carrez (stcarrez@nerim.fr) - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _OPCODE_M68HC11_H -#define _OPCODE_M68HC11_H - -/* Flags for the definition of the 68HC11 & 68HC12 CCR. */ -#define M6811_S_BIT 0x80 /* Stop disable */ -#define M6811_X_BIT 0x40 /* X-interrupt mask */ -#define M6811_H_BIT 0x20 /* Half carry flag */ -#define M6811_I_BIT 0x10 /* I-interrupt mask */ -#define M6811_N_BIT 0x08 /* Negative */ -#define M6811_Z_BIT 0x04 /* Zero */ -#define M6811_V_BIT 0x02 /* Overflow */ -#define M6811_C_BIT 0x01 /* Carry */ - -/* 68HC11 register address offsets (range 0..0x3F or 0..64). - The absolute address of the I/O register depends on the setting - of the M6811_INIT register. At init time, the I/O registers are - mapped at 0x1000. Address of registers is then: - - 0x1000 + M6811_xxx. */ -#define M6811_PORTA 0x00 /* Port A register */ -#define M6811__RES1 0x01 /* Unused/Reserved */ -#define M6811_PIOC 0x02 /* Parallel I/O Control register */ -#define M6811_PORTC 0x03 /* Port C register */ -#define M6811_PORTB 0x04 /* Port B register */ -#define M6811_PORTCL 0x05 /* Alternate latched port C */ -#define M6811__RES6 0x06 /* Unused/Reserved */ -#define M6811_DDRC 0x07 /* Data direction register for port C */ -#define M6811_PORTD 0x08 /* Port D register */ -#define M6811_DDRD 0x09 /* Data direction register for port D */ -#define M6811_PORTE 0x0A /* Port E input register */ -#define M6811_CFORC 0x0B /* Compare Force Register */ -#define M6811_OC1M 0x0C /* OC1 Action Mask register */ -#define M6811_OC1D 0x0D /* OC1 Action Data register */ -#define M6811_TCTN 0x0E /* Timer Counter Register */ -#define M6811_TCTN_H 0x0E /* " " " High part */ -#define M6811_TCTN_L 0x0F /* " " " Low part */ -#define M6811_TIC1 0x10 /* Input capture 1 register */ -#define M6811_TIC1_H 0x10 /* " " " High part */ -#define M6811_TIC1_L 0x11 /* " " " Low part */ -#define M6811_TIC2 0x12 /* Input capture 2 register */ -#define M6811_TIC2_H 0x12 /* " " " High part */ -#define M6811_TIC2_L 0x13 /* " " " Low part */ -#define M6811_TIC3 0x14 /* Input capture 3 register */ -#define M6811_TIC3_H 0x14 /* " " " High part */ -#define M6811_TIC3_L 0x15 /* " " " Low part */ -#define M6811_TOC1 0x16 /* Output Compare 1 register */ -#define M6811_TOC1_H 0x16 /* " " " High part */ -#define M6811_TOC1_L 0x17 /* " " " Low part */ -#define M6811_TOC2 0x18 /* Output Compare 2 register */ -#define M6811_TOC2_H 0x18 /* " " " High part */ -#define M6811_TOC2_L 0x19 /* " " " Low part */ -#define M6811_TOC3 0x1A /* Output Compare 3 register */ -#define M6811_TOC3_H 0x1A /* " " " High part */ -#define M6811_TOC3_L 0x1B /* " " " Low part */ -#define M6811_TOC4 0x1C /* Output Compare 4 register */ -#define M6811_TOC4_H 0x1C /* " " " High part */ -#define M6811_TOC4_L 0x1D /* " " " Low part */ -#define M6811_TOC5 0x1E /* Output Compare 5 register */ -#define M6811_TOC5_H 0x1E /* " " " High part */ -#define M6811_TOC5_L 0x1F /* " " " Low part */ -#define M6811_TCTL1 0x20 /* Timer Control register 1 */ -#define M6811_TCTL2 0x21 /* Timer Control register 2 */ -#define M6811_TMSK1 0x22 /* Timer Interrupt Mask Register 1 */ -#define M6811_TFLG1 0x23 /* Timer Interrupt Flag Register 1 */ -#define M6811_TMSK2 0x24 /* Timer Interrupt Mask Register 2 */ -#define M6811_TFLG2 0x25 /* Timer Interrupt Flag Register 2 */ -#define M6811_PACTL 0x26 /* Pulse Accumulator Control Register */ -#define M6811_PACNT 0x27 /* Pulse Accumulator Count Register */ -#define M6811_SPCR 0x28 /* SPI Control register */ -#define M6811_SPSR 0x29 /* SPI Status register */ -#define M6811_SPDR 0x2A /* SPI Data register */ -#define M6811_BAUD 0x2B /* SCI Baud register */ -#define M6811_SCCR1 0x2C /* SCI Control register 1 */ -#define M6811_SCCR2 0x2D /* SCI Control register 2 */ -#define M6811_SCSR 0x2E /* SCI Status register */ -#define M6811_SCDR 0x2F /* SCI Data (Read => RDR, Write => TDR) */ -#define M6811_ADCTL 0x30 /* A/D Control register */ -#define M6811_ADR1 0x31 /* A/D, Analog Result register 1 */ -#define M6811_ADR2 0x32 /* A/D, Analog Result register 2 */ -#define M6811_ADR3 0x33 /* A/D, Analog Result register 3 */ -#define M6811_ADR4 0x34 /* A/D, Analog Result register 4 */ -#define M6811__RES35 0x35 -#define M6811__RES36 0x36 -#define M6811__RES37 0x37 -#define M6811__RES38 0x38 -#define M6811_OPTION 0x39 /* System Configuration Options */ -#define M6811_COPRST 0x3A /* Arm/Reset COP Timer Circuitry */ -#define M6811_PPROG 0x3B /* EEPROM Programming Control Register */ -#define M6811_HPRIO 0x3C /* Highest priority I-Bit int and misc */ -#define M6811_INIT 0x3D /* Ram and I/O mapping register */ -#define M6811_TEST1 0x3E /* Factory test control register */ -#define M6811_CONFIG 0x3F /* COP, ROM and EEPROM enables */ - - -/* Flags of the CONFIG register (in EEPROM). */ -#define M6811_NOSEC 0x08 /* Security mode disable */ -#define M6811_NOCOP 0x04 /* COP system disable */ -#define M6811_ROMON 0x02 /* Enable on-chip rom */ -#define M6811_EEON 0x01 /* Enable on-chip eeprom */ - -/* Flags of the PPROG register. */ -#define M6811_BYTE 0x10 /* Byte mode */ -#define M6811_ROW 0x08 /* Row mode */ -#define M6811_ERASE 0x04 /* Erase mode select (1 = erase, 0 = read) */ -#define M6811_EELAT 0x02 /* EEPROM Latch Control */ -#define M6811_EEPGM 0x01 /* EEPROM Programming Voltage Enable */ - -/* Flags of the PIOC register. */ -#define M6811_STAF 0x80 /* Strobe A Interrupt Status Flag */ -#define M6811_STAI 0x40 /* Strobe A Interrupt Enable Mask */ -#define M6811_CWOM 0x20 /* Port C Wire OR mode */ -#define M6811_HNDS 0x10 /* Handshake mode */ -#define M6811_OIN 0x08 /* Output or Input handshaking */ -#define M6811_PLS 0x04 /* Pulse/Interlocked Handshake Operation */ -#define M6811_EGA 0x02 /* Active Edge for Strobe A */ -#define M6811_INVB 0x01 /* Invert Strobe B */ - -/* Flags of the SCCR1 register. */ -#define M6811_R8 0x80 /* Receive Data bit 8 */ -#define M6811_T8 0x40 /* Transmit data bit 8 */ -#define M6811__SCCR1_5 0x20 /* Unused */ -#define M6811_M 0x10 /* SCI Character length */ -#define M6811_WAKE 0x08 /* Wake up method select (0=idle, 1=addr mark) */ - -/* Flags of the SCCR2 register. */ -#define M6811_TIE 0x80 /* Transmit Interrupt enable */ -#define M6811_TCIE 0x40 /* Transmit Complete Interrupt Enable */ -#define M6811_RIE 0x20 /* Receive Interrupt Enable */ -#define M6811_ILIE 0x10 /* Idle Line Interrupt Enable */ -#define M6811_TE 0x08 /* Transmit Enable */ -#define M6811_RE 0x04 /* Receive Enable */ -#define M6811_RWU 0x02 /* Receiver Wake Up */ -#define M6811_SBK 0x01 /* Send Break */ - -/* Flags of the SCSR register. */ -#define M6811_TDRE 0x80 /* Transmit Data Register Empty */ -#define M6811_TC 0x40 /* Transmit Complete */ -#define M6811_RDRF 0x20 /* Receive Data Register Full */ -#define M6811_IDLE 0x10 /* Idle Line Detect */ -#define M6811_OR 0x08 /* Overrun Error */ -#define M6811_NF 0x04 /* Noise Flag */ -#define M6811_FE 0x02 /* Framing Error */ -#define M6811__SCSR_0 0x01 /* Unused */ - -/* Flags of the BAUD register. */ -#define M6811_TCLR 0x80 /* Clear Baud Rate (TEST mode) */ -#define M6811__BAUD_6 0x40 /* Not used */ -#define M6811_SCP1 0x20 /* SCI Baud rate prescaler select */ -#define M6811_SCP0 0x10 -#define M6811_RCKB 0x08 /* Baud Rate Clock Check (TEST mode) */ -#define M6811_SCR2 0x04 /* SCI Baud rate select */ -#define M6811_SCR1 0x02 -#define M6811_SCR0 0x01 - -#define M6811_BAUD_DIV_1 (0) -#define M6811_BAUD_DIV_3 (M6811_SCP0) -#define M6811_BAUD_DIV_4 (M6811_SCP1) -#define M6811_BAUD_DIV_13 (M6811_SCP1|M6811_SCP0) - -/* Flags of the SPCR register. */ -#define M6811_SPIE 0x80 /* Serial Peripheral Interrupt Enable */ -#define M6811_SPE 0x40 /* Serial Peripheral System Enable */ -#define M6811_DWOM 0x20 /* Port D Wire-OR mode option */ -#define M6811_MSTR 0x10 /* Master Mode Select */ -#define M6811_CPOL 0x08 /* Clock Polarity */ -#define M6811_CPHA 0x04 /* Clock Phase */ -#define M6811_SPR1 0x02 /* SPI Clock Rate Select */ -#define M6811_SPR0 0x01 - -/* Flags of the SPSR register. */ -#define M6811_SPIF 0x80 /* SPI Transfer Complete flag */ -#define M6811_WCOL 0x40 /* Write Collision */ -#define M6811_MODF 0x10 /* Mode Fault */ - -/* Flags of the ADCTL register. */ -#define M6811_CCF 0x80 /* Conversions Complete Flag */ -#define M6811_SCAN 0x20 /* Continuous Scan Control */ -#define M6811_MULT 0x10 /* Multiple Channel/Single Channel Control */ -#define M6811_CD 0x08 /* Channel Select D */ -#define M6811_CC 0x04 /* C */ -#define M6811_CB 0x02 /* B */ -#define M6811_CA 0x01 /* A */ - -/* Flags of the CFORC register. */ -#define M6811_FOC1 0x80 /* Force Output Compare 1 */ -#define M6811_FOC2 0x40 /* 2 */ -#define M6811_FOC3 0x20 /* 3 */ -#define M6811_FOC4 0x10 /* 4 */ -#define M6811_FOC5 0x08 /* 5 */ - -/* Flags of the OC1M register. */ -#define M6811_OC1M7 0x80 /* Output Compare 7 */ -#define M6811_OC1M6 0x40 /* 6 */ -#define M6811_OC1M5 0x20 /* 5 */ -#define M6811_OC1M4 0x10 /* 4 */ -#define M6811_OC1M3 0x08 /* 3 */ - -/* Flags of the OC1D register. */ -#define M6811_OC1D7 0x80 -#define M6811_OC1D6 0x40 -#define M6811_OC1D5 0x20 -#define M6811_OC1D4 0x10 -#define M6811_OC1D3 0x08 - -/* Flags of the TCTL1 register. */ -#define M6811_OM2 0x80 /* Output Mode 2 */ -#define M6811_OL2 0x40 /* Output Level 2 */ -#define M6811_OM3 0x20 -#define M6811_OL3 0x10 -#define M6811_OM4 0x08 -#define M6811_OL4 0x04 -#define M6811_OM5 0x02 -#define M6811_OL5 0x01 - -/* Flags of the TCTL2 register. */ -#define M6811_EDG1B 0x20 /* Input Edge Capture Control 1 */ -#define M6811_EDG1A 0x10 -#define M6811_EDG2B 0x08 /* Input 2 */ -#define M6811_EDG2A 0x04 -#define M6811_EDG3B 0x02 /* Input 3 */ -#define M6811_EDG3A 0x01 - -/* Flags of the TMSK1 register. */ -#define M6811_OC1I 0x80 /* Output Compare 1 Interrupt */ -#define M6811_OC2I 0x40 /* 2 */ -#define M6811_OC3I 0x20 /* 3 */ -#define M6811_OC4I 0x10 /* 4 */ -#define M6811_OC5I 0x08 /* 5 */ -#define M6811_IC1I 0x04 /* Input Capture 1 Interrupt */ -#define M6811_IC2I 0x02 /* 2 */ -#define M6811_IC3I 0x01 /* 3 */ - -/* Flags of the TFLG1 register. */ -#define M6811_OC1F 0x80 /* Output Compare 1 Flag */ -#define M6811_OC2F 0x40 /* 2 */ -#define M6811_OC3F 0x20 /* 3 */ -#define M6811_OC4F 0x10 /* 4 */ -#define M6811_OC5F 0x08 /* 5 */ -#define M6811_IC1F 0x04 /* Input Capture 1 Flag */ -#define M6811_IC2F 0x02 /* 2 */ -#define M6811_IC3F 0x01 /* 3 */ - -/* Flags of Timer Interrupt Mask Register 2 (TMSK2). */ -#define M6811_TOI 0x80 /* Timer Overflow Interrupt Enable */ -#define M6811_RTII 0x40 /* RTI Interrupt Enable */ -#define M6811_PAOVI 0x20 /* Pulse Accumulator Overflow Interrupt En. */ -#define M6811_PAII 0x10 /* Pulse Accumulator Interrupt Enable */ -#define M6811_PR1 0x02 /* Timer prescaler */ -#define M6811_PR0 0x01 /* Timer prescaler */ -#define M6811_TPR_1 0x00 /* " " prescale div 1 */ -#define M6811_TPR_4 0x01 /* " " prescale div 4 */ -#define M6811_TPR_8 0x02 /* " " prescale div 8 */ -#define M6811_TPR_16 0x03 /* " " prescale div 16 */ - -/* Flags of Timer Interrupt Flag Register 2 (M6811_TFLG2). */ -#define M6811_TOF 0x80 /* Timer overflow bit */ -#define M6811_RTIF 0x40 /* Read time interrupt flag */ -#define M6811_PAOVF 0x20 /* Pulse accumulator overflow Interrupt flag */ -#define M6811_PAIF 0x10 /* Pulse accumulator Input Edge " " " */ - -/* Flags of Pulse Accumulator Control Register (PACTL). */ -#define M6811_DDRA7 0x80 /* Data direction for port A bit 7 */ -#define M6811_PAEN 0x40 /* Pulse accumulator system enable */ -#define M6811_PAMOD 0x20 /* Pulse accumulator mode */ -#define M6811_PEDGE 0x10 /* Pulse accumulator edge control */ -#define M6811_RTR1 0x02 /* RTI Interrupt rates select */ -#define M6811_RTR0 0x01 /* " " " " */ - -/* Flags of the Options register. */ -#define M6811_ADPU 0x80 /* A/D Powerup */ -#define M6811_CSEL 0x40 /* A/D/EE Charge pump clock source select */ -#define M6811_IRQE 0x20 /* IRQ Edge/Level sensitive */ -#define M6811_DLY 0x10 /* Stop exit turn on delay */ -#define M6811_CME 0x08 /* Clock Monitor enable */ -#define M6811_CR1 0x02 /* COP timer rate select */ -#define M6811_CR0 0x01 /* COP timer rate select */ - -/* Flags of the HPRIO register. */ -#define M6811_RBOOT 0x80 /* Read Bootstrap ROM */ -#define M6811_SMOD 0x40 /* Special Mode */ -#define M6811_MDA 0x20 /* Mode Select A */ -#define M6811_IRV 0x10 /* Internal Read Visibility */ -#define M6811_PSEL3 0x08 /* Priority Select */ -#define M6811_PSEL2 0x04 -#define M6811_PSEL1 0x02 -#define M6811_PSEL0 0x01 - -/* Some insns used by gas to turn relative branches into absolute ones. */ -#define M6811_BRA 0x20 -#define M6811_JMP 0x7e -#define M6811_BSR 0x8d -#define M6811_JSR 0xbd -#define M6812_JMP 0x06 -#define M6812_BSR 0x07 -#define M6812_JSR 0x16 - -/* Instruction code pages. Code page 1 is the default. */ -/*#define M6811_OPCODE_PAGE1 0x00*/ -#define M6811_OPCODE_PAGE2 0x18 -#define M6811_OPCODE_PAGE3 0x1A -#define M6811_OPCODE_PAGE4 0xCD - - -/* 68HC11 operands formats as stored in the m6811_opcode table. These - flags do not correspond to anything in the 68HC11 or 68HC12. - They are only used by GAS to recognize operands. */ -#define M6811_OP_NONE 0 /* No operand */ -#define M6811_OP_DIRECT 0x0001 /* Page 0 addressing: * */ -#define M6811_OP_IMM8 0x0002 /* 8 bits immediat: # */ -#define M6811_OP_IMM16 0x0004 /* 16 bits immediat: # */ -#define M6811_OP_IND16 0x0008 /* Indirect abs: */ -#define M6812_OP_IND16_P2 0x0010 /* Second parameter indirect abs. */ -#define M6812_OP_REG 0x0020 /* Register operand 1 */ -#define M6812_OP_REG_2 0x0040 /* Register operand 2 */ - -#define M6811_OP_IX 0x0080 /* Indirect IX: ,x */ -#define M6811_OP_IY 0x0100 /* Indirect IY: ,y */ -#define M6812_OP_IDX 0x0200 /* Indirect: N,r N,[+-]r[+-] N:5-bits */ -#define M6812_OP_IDX_1 0x0400 /* N,r N:9-bits */ -#define M6812_OP_IDX_2 0x0800 /* N,r N:16-bits */ -#define M6812_OP_D_IDX 0x1000 /* Indirect indexed: [D,r] */ -#define M6812_OP_D_IDX_2 0x2000 /* [N,r] N:16-bits */ -#define M6812_OP_PAGE 0x4000 /* Page number */ -#define M6811_OP_MASK 0x07FFF -#define M6811_OP_BRANCH 0x00008000 /* Branch, jsr, call */ -#define M6811_OP_BITMASK 0x00010000 /* Bitmask: # */ -#define M6811_OP_JUMP_REL 0x00020000 /* Pc-Relative: */ -#define M6812_OP_JUMP_REL16 0x00040000 /* Pc-relative: */ -#define M6811_OP_PAGE1 0x0000 -#define M6811_OP_PAGE2 0x00080000 /* Need a page2 opcode before */ -#define M6811_OP_PAGE3 0x00100000 /* Need a page3 opcode before */ -#define M6811_OP_PAGE4 0x00200000 /* Need a page4 opcode before */ -#define M6811_MAX_OPERANDS 3 /* Max operands: brset */ - -#define M6812_ACC_OFFSET 0x00400000 /* A,r B,r D,r */ -#define M6812_ACC_IND 0x00800000 /* [D,r] */ -#define M6812_PRE_INC 0x01000000 /* n,+r n = -8..8 */ -#define M6812_PRE_DEC 0x02000000 /* n,-r */ -#define M6812_POST_INC 0x04000000 /* n,r+ */ -#define M6812_POST_DEC 0x08000000 /* n,r- */ -#define M6812_INDEXED_IND 0x10000000 /* [n,r] n = 16-bits */ -#define M6812_INDEXED 0x20000000 /* n,r n = 5, 9 or 16-bits */ -#define M6812_OP_IDX_P2 0x40000000 - -/* XGATE defines. - These overlap with HC11/12 as above but not used at the same time. */ -#define M68XG_OP_NONE 0x0001 -#define M68XG_OP_IMM3 0x0002 -#define M68XG_OP_R 0x0004 -#define M68XG_OP_R_R 0x0008 -#define M68XG_OP_R_IMM4 0x0010 -#define M68XG_OP_R_R_R 0x0020 -#define M68XG_OP_REL9 0x0040 -#define M68XG_OP_REL10 0x0080 -#define M68XG_OP_R_R_OFFS5 0x0100 -#define M68XG_OP_RD_RB_RI 0x0200 -#define M68XG_OP_RD_RB_RIp 0x0400 -#define M68XG_OP_RD_RB_mRI 0x0800 -#define M68XG_OP_R_IMM8 0x1000 -#define M68XG_OP_R_IMM16 0x2000 -#define M68XG_OP_REG 0x4000 /* Register operand 1. */ -#define M68XG_OP_REG_2 0x8000 /* Register operand 2. */ -#define M68XG_MAX_OPERANDS 3 /* Max operands of triadic r1, r2, r3. */ - -/* Markers to identify some instructions. */ -#define M6812_OP_EXG_MARKER 0x01000000 /* exg r1,r2 */ -#define M6812_OP_TFR_MARKER 0x02000000 /* tfr r1,r2 */ -#define M6812_OP_SEX_MARKER 0x04000000 /* sex r1,r2 */ - -#define M6812_OP_EQ_MARKER 0x80000000 /* dbeq/ibeq/tbeq */ -#define M6812_OP_DBCC_MARKER 0x04000000 /* dbeq/dbne */ -#define M6812_OP_IBCC_MARKER 0x02000000 /* ibeq/ibne */ -#define M6812_OP_TBCC_MARKER 0x01000000 - -/* XGATE markers. */ -#define M68XG_OP_B_MARKER 0x04000000 /* bXX rel9 */ -#define M68XG_OP_BRA_MARKER 0x02000000 /* bra rel10 */ - -#define M6812_OP_TRAP_ID 0x80000000 /* trap #N */ - -#define M6811_OP_HIGH_ADDR 0x01000000 /* Used internally by gas. */ -#define M6811_OP_LOW_ADDR 0x02000000 - -#define M68HC12_BANK_VIRT 0x010000 -#define M68HC12_BANK_MASK 0x00003fff -#define M68HC12_BANK_BASE 0x00008000 -#define M68HC12_BANK_SHIFT 14 -#define M68HC12_BANK_PAGE_MASK 0x0ff - - -/* CPU identification. */ -#define cpu6811 0x01 -#define cpu6812 0x02 -#define cpu6812s 0x04 -#define cpu9s12x 0x08 /* 9S12X main cpu. */ -#define cpuxgate 0x10 /* The XGATE module itself. */ - -/* The opcode table is an array of struct m68hc11_opcode. */ -struct m68hc11_opcode -{ - const char * name; /* Op-code name. */ - long format; - unsigned char size; - unsigned int opcode; - unsigned char cycles_low; - unsigned char cycles_high; - unsigned char set_flags_mask; - unsigned char clr_flags_mask; - unsigned char chg_flags_mask; - unsigned char arch; - unsigned int xg_mask; /* Mask with zero in register place for xgate. */ -}; - -/* Alias definition for 68HC12. */ -struct m68hc12_opcode_alias -{ - const char* name; - const char* translation; - unsigned char size; - unsigned char code1; - unsigned char code2; -}; - -/* The opcode table. The table contains all the opcodes (all pages). - You can't rely on the order. */ -extern const struct m68hc11_opcode m68hc11_opcodes[]; -extern const int m68hc11_num_opcodes; - -/* Alias table for 68HC12. It translates some 68HC11 insn which are not - implemented in 68HC12 but have equivalent translations. */ -extern const struct m68hc12_opcode_alias m68hc12_alias[]; -extern const int m68hc12_num_alias; - -#endif /* _OPCODE_M68HC11_H */ diff --git a/include/opcode/m68k.h b/include/opcode/m68k.h deleted file mode 100644 index f7bd8b4..0000000 --- a/include/opcode/m68k.h +++ /dev/null @@ -1,378 +0,0 @@ -/* Opcode table header for m680[01234]0/m6888[12]/m68851. - Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2001, - 2003, 2004, 2006, 2010 Free Software Foundation, Inc. - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -/* These are used as bit flags for the arch field in the m68k_opcode - structure. */ -#define _m68k_undef 0 -#define m68000 0x001 -#define m68010 0x002 -#define m68020 0x004 -#define m68030 0x008 -#define m68040 0x010 -#define m68060 0x020 -#define m68881 0x040 -#define m68851 0x080 -#define cpu32 0x100 /* e.g., 68332 */ -#define fido_a 0x200 -#define m68k_mask 0x3ff - -#define mcfmac 0x400 /* ColdFire MAC. */ -#define mcfemac 0x800 /* ColdFire EMAC. */ -#define cfloat 0x1000 /* ColdFire FPU. */ -#define mcfhwdiv 0x2000 /* ColdFire hardware divide. */ - -#define mcfisa_a 0x4000 /* ColdFire ISA_A. */ -#define mcfisa_aa 0x8000 /* ColdFire ISA_A+. */ -#define mcfisa_b 0x10000 /* ColdFire ISA_B. */ -#define mcfisa_c 0x20000 /* ColdFire ISA_C. */ -#define mcfusp 0x40000 /* ColdFire USP instructions. */ -#define mcf_mask 0x7e400 - -/* Handy aliases. */ -#define m68040up (m68040 | m68060) -#define m68030up (m68030 | m68040up) -#define m68020up (m68020 | m68030up) -#define m68010up (m68010 | cpu32 | fido_a | m68020up) -#define m68000up (m68000 | m68010up) - -#define mfloat (m68881 | m68040 | m68060) -#define mmmu (m68851 | m68030 | m68040 | m68060) - -/* The structure used to hold information for an opcode. */ - -struct m68k_opcode -{ - /* The opcode name. */ - const char *name; - /* The pseudo-size of the instruction(in bytes). Used to determine - number of bytes necessary to disassemble the instruction. */ - unsigned int size; - /* The opcode itself. */ - unsigned long opcode; - /* The mask used by the disassembler. */ - unsigned long match; - /* The arguments. */ - const char *args; - /* The architectures which support this opcode. */ - unsigned int arch; -}; - -/* The structure used to hold information for an opcode alias. */ - -struct m68k_opcode_alias -{ - /* The alias name. */ - const char *alias; - /* The instruction for which this is an alias. */ - const char *primary; -}; - -/* We store four bytes of opcode for all opcodes because that is the - most any of them need. The actual length of an instruction is - always at least 2 bytes, and is as much longer as necessary to hold - the operands it has. - - The match field is a mask saying which bits must match particular - opcode in order for an instruction to be an instance of that - opcode. - - The args field is a string containing two characters for each - operand of the instruction. The first specifies the kind of - operand; the second, the place it is stored. - - If the first char of args is '.', it indicates that the opcode is - two words. This is only necessary when the match field does not - have any bits set in the second opcode word. Such a '.' is skipped - for operand processing. */ - -/* Kinds of operands: - Characters used: AaBbCcDdEeFfGgHIiJjKkLlMmnOopQqRrSsTtUuVvWwXxYyZz01234|*~%;@!&$?/<>#^+- - - D data register only. Stored as 3 bits. - A address register only. Stored as 3 bits. - a address register indirect only. Stored as 3 bits. - R either kind of register. Stored as 4 bits. - r either kind of register indirect only. Stored as 4 bits. - At the moment, used only for cas2 instruction. - F floating point coprocessor register only. Stored as 3 bits. - O an offset (or width): immediate data 0-31 or data register. - Stored as 6 bits in special format for BF... insns. - + autoincrement only. Stored as 3 bits (number of the address register). - - autodecrement only. Stored as 3 bits (number of the address register). - Q quick immediate data. Stored as 3 bits. - This matches an immediate operand only when value is in range 1 .. 8. - M moveq immediate data. Stored as 8 bits. - This matches an immediate operand only when value is in range -128..127 - T trap vector immediate data. Stored as 4 bits. - - k K-factor for fmove.p instruction. Stored as a 7-bit constant or - a three bit register offset, depending on the field type. - - # immediate data. Stored in special places (b, w or l) - which say how many bits to store. - ^ immediate data for floating point instructions. Special places - are offset by 2 bytes from '#'... - B pc-relative address, converted to an offset - that is treated as immediate data. - d displacement and register. Stores the register as 3 bits - and stores the displacement in the entire second word. - - C the CCR. No need to store it; this is just for filtering validity. - S the SR. No need to store, just as with CCR. - U the USP. No need to store, just as with CCR. - E the MAC ACC. No need to store, just as with CCR. - e the EMAC ACC[0123]. - G the MAC/EMAC MACSR. No need to store, just as with CCR. - g the EMAC ACCEXT{01,23}. - H the MASK. No need to store, just as with CCR. - i the MAC/EMAC scale factor. - - I Coprocessor ID. Not printed if 1. The Coprocessor ID is always - extracted from the 'd' field of word one, which means that an extended - coprocessor opcode can be skipped using the 'i' place, if needed. - - s System Control register for the floating point coprocessor. - - J Misc register for movec instruction, stored in 'j' format. - Possible values: - 0x000 SFC Source Function Code reg [60, 40, 30, 20, 10] - 0x001 DFC Data Function Code reg [60, 40, 30, 20, 10] - 0x002 CACR Cache Control Register [60, 40, 30, 20, mcf] - 0x003 TC MMU Translation Control [60, 40] - 0x004 ITT0 Instruction Transparent - Translation reg 0 [60, 40] - 0x005 ITT1 Instruction Transparent - Translation reg 1 [60, 40] - 0x006 DTT0 Data Transparent - Translation reg 0 [60, 40] - 0x007 DTT1 Data Transparent - Translation reg 1 [60, 40] - 0x008 BUSCR Bus Control Register [60] - 0x800 USP User Stack Pointer [60, 40, 30, 20, 10] - 0x801 VBR Vector Base reg [60, 40, 30, 20, 10, mcf] - 0x802 CAAR Cache Address Register [ 30, 20] - 0x803 MSP Master Stack Pointer [ 40, 30, 20] - 0x804 ISP Interrupt Stack Pointer [ 40, 30, 20] - 0x805 MMUSR MMU Status reg [ 40] - 0x806 URP User Root Pointer [60, 40] - 0x807 SRP Supervisor Root Pointer [60, 40] - 0x808 PCR Processor Configuration reg [60] - 0xC00 ROMBAR ROM Base Address Register [520X] - 0xC04 RAMBAR0 RAM Base Address Register 0 [520X] - 0xC05 RAMBAR1 RAM Base Address Register 0 [520X] - 0xC0F MBAR0 RAM Base Address Register 0 [520X] - 0xC04 FLASHBAR FLASH Base Address Register [mcf528x] - 0xC05 RAMBAR Static RAM Base Address Register [mcf528x] - - L Register list of the type d0-d7/a0-a7 etc. - (New! Improved! Can also hold fp0-fp7, as well!) - The assembler tries to see if the registers match the insn by - looking at where the insn wants them stored. - - l Register list like L, but with all the bits reversed. - Used for going the other way. . . - - c cache identifier which may be "nc" for no cache, "ic" - for instruction cache, "dc" for data cache, or "bc" - for both caches. Used in cinv and cpush. Always - stored in position "d". - - u Any register, with ``upper'' or ``lower'' specification. Used - in the mac instructions with size word. - - The remainder are all stored as 6 bits using an address mode and a - register number; they differ in which addressing modes they match. - - * all (modes 0-6,7.0-4) - ~ alterable memory (modes 2-6,7.0,7.1) - (not 0,1,7.2-4) - % alterable (modes 0-6,7.0,7.1) - (not 7.2-4) - ; data (modes 0,2-6,7.0-4) - (not 1) - @ data, but not immediate (modes 0,2-6,7.0-3) - (not 1,7.4) - ! control (modes 2,5,6,7.0-3) - (not 0,1,3,4,7.4) - & alterable control (modes 2,5,6,7.0,7.1) - (not 0,1,3,4,7.2-4) - $ alterable data (modes 0,2-6,7.0,7.1) - (not 1,7.2-4) - ? alterable control, or data register (modes 0,2,5,6,7.0,7.1) - (not 1,3,4,7.2-4) - / control, or data register (modes 0,2,5,6,7.0-3) - (not 1,3,4,7.4) - > *save operands (modes 2,4,5,6,7.0,7.1) - (not 0,1,3,7.2-4) - < *restore operands (modes 2,3,5,6,7.0-3) - (not 0,1,4,7.4) - - coldfire move operands: - m (modes 0-4) - n (modes 5,7.2) - o (modes 6,7.0,7.1,7.3,7.4) - p (modes 0-5) - - coldfire bset/bclr/btst/mulsl/mulul operands: - q (modes 0,2-5) - v (modes 0,2-5,7.0,7.1) - b (modes 0,2-5,7.2) - w (modes 2-5,7.2) - y (modes 2,5) - z (modes 2,5,7.2) - x mov3q immediate operand. - j coprocessor ET operand. - K coprocessor command number. - 4 (modes 2,3,4,5) - */ - -/* For the 68851: */ -/* I didn't use much imagination in choosing the - following codes, so many of them aren't very - mnemonic. -rab - - 0 32 bit pmmu register - Possible values: - 000 TC Translation Control Register (68030, 68851) - - 1 16 bit pmmu register - 111 AC Access Control (68851) - - 2 8 bit pmmu register - 100 CAL Current Access Level (68851) - 101 VAL Validate Access Level (68851) - 110 SCC Stack Change Control (68851) - - 3 68030-only pmmu registers (32 bit) - 010 TT0 Transparent Translation reg 0 - (aka Access Control reg 0 -- AC0 -- on 68ec030) - 011 TT1 Transparent Translation reg 1 - (aka Access Control reg 1 -- AC1 -- on 68ec030) - - W wide pmmu registers - Possible values: - 001 DRP Dma Root Pointer (68851) - 010 SRP Supervisor Root Pointer (68030, 68851) - 011 CRP Cpu Root Pointer (68030, 68851) - - f function code register (68030, 68851) - 0 SFC - 1 DFC - - V VAL register only (68851) - - X BADx, BACx (16 bit) - 100 BAD Breakpoint Acknowledge Data (68851) - 101 BAC Breakpoint Acknowledge Control (68851) - - Y PSR (68851) (MMUSR on 68030) (ACUSR on 68ec030) - Z PCSR (68851) - - | memory (modes 2-6, 7.*) - - t address test level (68030 only) - Stored as 3 bits, range 0-7. - Also used for breakpoint instruction now. - -*/ - -/* Places to put an operand, for non-general operands: - Characters used: BbCcDdFfGgHhIijkLlMmNnostWw123456789/ - - s source, low bits of first word. - d dest, shifted 9 in first word - 1 second word, shifted 12 - 2 second word, shifted 6 - 3 second word, shifted 0 - 4 third word, shifted 12 - 5 third word, shifted 6 - 6 third word, shifted 0 - 7 second word, shifted 7 - 8 second word, shifted 10 - 9 second word, shifted 5 - E second word, shifted 9 - D store in both place 1 and place 3; for divul and divsl. - B first word, low byte, for branch displacements - W second word (entire), for branch displacements - L second and third words (entire), for branch displacements - (also overloaded for move16) - b second word, low byte - w second word (entire) [variable word/long branch offset for dbra] - W second word (entire) (must be signed 16 bit value) - l second and third word (entire) - g variable branch offset for bra and similar instructions. - The place to store depends on the magnitude of offset. - t store in both place 7 and place 8; for floating point operations - c branch offset for cpBcc operations. - The place to store is word two if bit six of word one is zero, - and words two and three if bit six of word one is one. - i Increment by two, to skip over coprocessor extended operands. Only - works with the 'I' format. - k Dynamic K-factor field. Bits 6-4 of word 2, used as a register number. - Also used for dynamic fmovem instruction. - C floating point coprocessor constant - 7 bits. Also used for static - K-factors... - j Movec register #, stored in 12 low bits of second word. - m For M[S]ACx; 4 bits split with MSB shifted 6 bits in first word - and remaining 3 bits of register shifted 9 bits in first word. - Indicate upper/lower in 1 bit shifted 7 bits in second word. - Use with `R' or `u' format. - n `m' withouth upper/lower indication. (For M[S]ACx; 4 bits split - with MSB shifted 6 bits in first word and remaining 3 bits of - register shifted 9 bits in first word. No upper/lower - indication is done.) Use with `R' or `u' format. - o For M[S]ACw; 4 bits shifted 12 in second word (like `1'). - Indicate upper/lower in 1 bit shifted 7 bits in second word. - Use with `R' or `u' format. - M For M[S]ACw; 4 bits in low bits of first word. Indicate - upper/lower in 1 bit shifted 6 bits in second word. Use with - `R' or `u' format. - N For M[S]ACw; 4 bits in low bits of second word. Indicate - upper/lower in 1 bit shifted 6 bits in second word. Use with - `R' or `u' format. - h shift indicator (scale factor), 1 bit shifted 10 in second word - - Places to put operand, for general operands: - d destination, shifted 6 bits in first word - b source, at low bit of first word, and immediate uses one byte - w source, at low bit of first word, and immediate uses two bytes - l source, at low bit of first word, and immediate uses four bytes - s source, at low bit of first word. - Used sometimes in contexts where immediate is not allowed anyway. - f single precision float, low bit of 1st word, immediate uses 4 bytes - F double precision float, low bit of 1st word, immediate uses 8 bytes - x extended precision float, low bit of 1st word, immediate uses 12 bytes - p packed float, low bit of 1st word, immediate uses 12 bytes - G EMAC accumulator, load (bit 4 2nd word, !bit8 first word) - H EMAC accumulator, non load (bit 4 2nd word, bit 8 first word) - F EMAC ACCx - f EMAC ACCy - I MAC/EMAC scale factor - / Like 's', but set 2nd word, bit 5 if trailing_ampersand set - ] first word, bit 10 -*/ - -extern const struct m68k_opcode m68k_opcodes[]; -extern const struct m68k_opcode_alias m68k_opcode_aliases[]; - -extern const int m68k_numopcodes, m68k_numaliases; - -/* end of m68k-opcode.h */ diff --git a/include/opcode/m88k.h b/include/opcode/m88k.h deleted file mode 100644 index 739c0e9..0000000 --- a/include/opcode/m88k.h +++ /dev/null @@ -1,455 +0,0 @@ -/* Table of opcodes for the Motorola M88k family. - Copyright 1989, 1990, 1991, 1993, 2001, 2002, 2010 - Free Software Foundation, Inc. - - This file is part of GDB and GAS. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* - * Disassembler Instruction Table - * - * The first field of the table is the opcode field. If an opcode - * is specified which has any non-opcode bits on, a system error - * will occur when the system attempts the install it into the - * instruction table. The second parameter is a pointer to the - * instruction mnemonic. Each operand is specified by offset, width, - * and type. The offset is the bit number of the least significant - * bit of the operand with bit 0 being the least significant bit of - * the instruction. The width is the number of bits used to specify - * the operand. The type specifies the output format to be used for - * the operand. The valid formats are: register, register indirect, - * hex constant, and bit field specification. The last field is a - * pointer to the next instruction in the linked list. These pointers - * are initialized by init_disasm(). - * - * Revision History - * - * Revision 1.0 11/08/85 Creation date - * 1.1 02/05/86 Updated instruction mnemonic table MD - * 1.2 06/16/86 Updated SIM_FLAGS for floating point - * 1.3 09/20/86 Updated for new encoding - * 05/11/89 R. Trawick adapted from Motorola disassembler - */ - -#include - -/* Define the number of bits in the primary opcode field of the instruction, - the destination field, the source 1 and source 2 fields. */ - -/* Size of opcode field. */ -#define OP 8 - -/* Size of destination. */ -#define DEST 6 - -/* Size of source1. */ -#define SOURCE1 6 - -/* Size of source2. */ -#define SOURCE2 6 - -/* Number of registers. */ -#define REGs 32 - -/* Type definitions. */ - -typedef unsigned int UINT; -#define WORD long -#define FLAG unsigned -#define STATE short - -/* The next four equates define the priorities that the various classes - * of instructions have regarding writing results back into registers and - * signalling exceptions. */ - -/* PMEM is also defined in on Delta 88's. Sigh! */ -#undef PMEM - -/* Integer priority. */ -#define PINT 0 - -/* Floating point priority. */ -#define PFLT 1 - -/* Memory priority. */ -#define PMEM 2 - -/* Not applicable, instruction doesn't write to regs. */ -#define NA 3 - -/* Highest of these priorities. */ -#define HIPRI 3 - -/* The instruction registers are an artificial mechanism to speed up - * simulator execution. In the real processor, an instruction register - * is 32 bits wide. In the simulator, the 32 bit instruction is kept in - * a structure field called rawop, and the instruction is partially decoded, - * and split into various fields and flags which make up the other fields - * of the structure. - * The partial decode is done when the instructions are initially loaded - * into simulator memory. The simulator code memory is not an array of - * 32 bit words, but is an array of instruction register structures. - * Yes this wastes memory, but it executes much quicker. - */ - -struct IR_FIELDS -{ - unsigned op:OP, - dest: DEST, - src1: SOURCE1, - src2: SOURCE2; - int ltncy, - extime, - /* Writeback priority. */ - wb_pri; - /* Immediate size. */ - unsigned imm_flags:2, - /* Register source 1 used. */ - rs1_used:1, - /* Register source 2 used. */ - rs2_used:1, - /* Register source/dest. used. */ - rsd_used:1, - /* Complement. */ - c_flag:1, - /* Upper half word. */ - u_flag:1, - /* Execute next. */ - n_flag:1, - /* Uses writeback slot. */ - wb_flag:1, - /* Dest size. */ - dest_64:1, - /* Source 1 size. */ - s1_64:1, - /* Source 2 size. */ - s2_64:1, - scale_flag:1, - /* Scaled register. */ - brk_flg:1; -}; - -struct mem_segs -{ - /* Pointer (returned by calloc) to segment. */ - struct mem_wrd *seg; - - /* Base load address from file headers. */ - unsigned long baseaddr; - - /* Ending address of segment. */ - unsigned long endaddr; - - /* Segment control flags (none defined). */ - int flags; -}; - -#define MAXSEGS (10) /* max number of segment allowed */ -#define MEMSEGSIZE (sizeof(struct mem_segs))/* size of mem_segs structure */ - -#if 0 -#define BRK_RD (0x01) /* break on memory read */ -#define BRK_WR (0x02) /* break on memory write */ -#define BRK_EXEC (0x04) /* break on execution */ -#define BRK_CNT (0x08) /* break on terminal count */ -#endif - -struct mem_wrd -{ - /* Simulator instruction break down. */ - struct IR_FIELDS opcode; - union { - /* Memory element break down. */ - unsigned long l; - unsigned short s[2]; - unsigned char c[4]; - } mem; -}; - -/* Size of each 32 bit memory model. */ -#define MEMWRDSIZE (sizeof (struct mem_wrd)) - -extern struct mem_segs memory[]; -extern struct PROCESSOR m78000; - -struct PROCESSOR -{ - unsigned WORD - /* Execute instruction pointer. */ - ip, - /* Vector base register. */ - vbr, - /* Processor status register. */ - psr; - - /* Source 1. */ - WORD S1bus, - /* Source 2. */ - S2bus, - /* Destination. */ - Dbus, - /* Data address bus. */ - DAbus, - ALU, - /* Data registers. */ - Regs[REGs], - /* Max clocks before reg is available. */ - time_left[REGs], - /* Writeback priority of reg. */ - wb_pri[REGs], - /* Integer unit control regs. */ - SFU0_regs[REGs], - /* Floating point control regs. */ - SFU1_regs[REGs], - Scoreboard[REGs], - Vbr; - unsigned WORD scoreboard, - Psw, - Tpsw; - /* Waiting for a jump instruction. */ - FLAG jump_pending:1; -}; - -/* Size of immediate field. */ - -#define i26bit 1 -#define i16bit 2 -#define i10bit 3 - -/* Definitions for fields in psr. */ - -#define psr_mode 31 -#define psr_rbo 30 -#define psr_ser 29 -#define psr_carry 28 -#define psr_sf7m 11 -#define psr_sf6m 10 -#define psr_sf5m 9 -#define psr_sf4m 8 -#define psr_sf3m 7 -#define psr_sf2m 6 -#define psr_sf1m 5 -#define psr_mam 4 -#define psr_inm 3 -#define psr_exm 2 -#define psr_trm 1 -#define psr_ovfm 0 - -/* The 1 clock operations. */ - -#define ADDU 1 -#define ADDC 2 -#define ADDUC 3 -#define ADD 4 - -#define SUBU ADD+1 -#define SUBB ADD+2 -#define SUBUB ADD+3 -#define SUB ADD+4 - -#define AND_ ADD+5 -#define OR ADD+6 -#define XOR ADD+7 -#define CMP ADD+8 - -/* Loads. */ - -#define LDAB CMP+1 -#define LDAH CMP+2 -#define LDA CMP+3 -#define LDAD CMP+4 - -#define LDB LDAD+1 -#define LDH LDAD+2 -#define LD LDAD+3 -#define LDD LDAD+4 -#define LDBU LDAD+5 -#define LDHU LDAD+6 - -/* Stores. */ - -#define STB LDHU+1 -#define STH LDHU+2 -#define ST LDHU+3 -#define STD LDHU+4 - -/* Exchange. */ - -#define XMEMBU LDHU+5 -#define XMEM LDHU+6 - -/* Branches. */ - -#define JSR STD+1 -#define BSR STD+2 -#define BR STD+3 -#define JMP STD+4 -#define BB1 STD+5 -#define BB0 STD+6 -#define RTN STD+7 -#define BCND STD+8 - -/* Traps. */ - -#define TB1 BCND+1 -#define TB0 BCND+2 -#define TCND BCND+3 -#define RTE BCND+4 -#define TBND BCND+5 - -/* Misc. */ - -#define MUL TBND + 1 -#define DIV MUL +2 -#define DIVU MUL +3 -#define MASK MUL +4 -#define FF0 MUL +5 -#define FF1 MUL +6 -#define CLR MUL +7 -#define SET MUL +8 -#define EXT MUL +9 -#define EXTU MUL +10 -#define MAK MUL +11 -#define ROT MUL +12 - -/* Control register manipulations. */ - -#define LDCR ROT +1 -#define STCR ROT +2 -#define XCR ROT +3 - -#define FLDCR ROT +4 -#define FSTCR ROT +5 -#define FXCR ROT +6 - -#define NOP XCR +1 - -/* Floating point instructions. */ - -#define FADD NOP +1 -#define FSUB NOP +2 -#define FMUL NOP +3 -#define FDIV NOP +4 -#define FSQRT NOP +5 -#define FCMP NOP +6 -#define FIP NOP +7 -#define FLT NOP +8 -#define INT NOP +9 -#define NINT NOP +10 -#define TRNC NOP +11 -#define FLDC NOP +12 -#define FSTC NOP +13 -#define FXC NOP +14 - -#define UEXT(src,off,wid) \ - ((((unsigned int)(src)) >> (off)) & ((1 << (wid)) - 1)) - -#define SEXT(src,off,wid) \ - (((((int)(src))<<(32 - ((off) + (wid)))) >>(32 - (wid))) ) - -#define MAKE(src,off,wid) \ - ((((unsigned int)(src)) & ((1 << (wid)) - 1)) << (off)) - -#define opword(n) (unsigned long) (memaddr->mem.l) - -/* Constants and masks. */ - -#define SFU0 0x80000000 -#define SFU1 0x84000000 -#define SFU7 0x9c000000 -#define RRI10 0xf0000000 -#define RRR 0xf4000000 -#define SFUMASK 0xfc00ffe0 -#define RRRMASK 0xfc00ffe0 -#define RRI10MASK 0xfc00fc00 -#define DEFMASK 0xfc000000 -#define CTRL 0x0000f000 -#define CTRLMASK 0xfc00f800 - -/* Operands types. */ - -enum operand_type -{ - HEX = 1, - REG = 2, - CONT = 3, - IND = 3, - BF = 4, - /* Scaled register. */ - REGSC = 5, - /* Control register. */ - CRREG = 6, - /* Floating point control register. */ - FCRREG = 7, - PCREL = 8, - CONDMASK = 9, - /* Extended register. */ - XREG = 10, - /* Decimal. */ - DEC = 11 -}; - -/* Hashing specification. */ - -#define HASHVAL 79 - -/* Structure templates. */ - -typedef struct -{ - unsigned int offset; - unsigned int width; - enum operand_type type; -} OPSPEC; - -struct SIM_FLAGS -{ - int ltncy, /* latency (max number of clocks needed to execute). */ - extime, /* execution time (min number of clocks needed to execute). */ - wb_pri; /* writeback slot priority. */ - unsigned op:OP, /* simulator version of opcode. */ - imm_flags:2, /* 10,16 or 26 bit immediate flags. */ - rs1_used:1, /* register source 1 used. */ - rs2_used:1, /* register source 2 used. */ - rsd_used:1, /* register source/dest used. */ - c_flag:1, /* complement. */ - u_flag:1, /* upper half word. */ - n_flag:1, /* execute next. */ - wb_flag:1, /* uses writeback slot. */ - dest_64:1, /* double precision dest. */ - s1_64:1, /* double precision source 1. */ - s2_64:1, /* double precision source 2. */ - scale_flag:1; /* register is scaled. */ -}; - -typedef struct INSTRUCTAB { - unsigned int opcode; - char *mnemonic; - OPSPEC op1,op2,op3; - struct SIM_FLAGS flgs; -} INSTAB; - - -#define NO_OPERAND {0,0,0} - -extern const INSTAB instructions[]; - -/* - * Local Variables: - * fill-column: 131 - * End: - */ diff --git a/include/opcode/metag.h b/include/opcode/metag.h deleted file mode 100644 index c9bb668..0000000 --- a/include/opcode/metag.h +++ /dev/null @@ -1,2079 +0,0 @@ -/* Imagination Technologies Meta opcode table. - Copyright (C) 2013 Free Software Foundation, Inc. - Contributed by Imagination Technologies Ltd. - - This file is part of GDB and GAS. - - GDB and GAS are free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 3, or (at - your option) any later version. - - GDB and GAS are distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GDB or GAS; see the file COPYING3. If not, write to the - Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -enum metag_unit -{ - UNIT_CT, - UNIT_D0, - UNIT_D1, - UNIT_A0, - UNIT_A1, - UNIT_PC, - UNIT_RD, - UNIT_TR, - UNIT_TT, - UNIT_FX, - UNIT_DT, /* DSP Template Table */ - UNIT_ACC_D0, - UNIT_ACC_D1, - UNIT_RAM_D0, - UNIT_RAM_D1, -}; - -typedef struct -{ - const char * name; - enum metag_unit unit; - unsigned int no; -} metag_reg; - -static const metag_reg metag_regtab[] = - { - { "TXENABLE", UNIT_CT, 0 }, - { "CT.0", UNIT_CT, 0 }, - { "TXMODE", UNIT_CT, 1 }, - { "CT.1", UNIT_CT, 1 }, - { "TXSTATUS", UNIT_CT, 2 }, - { "CT.2", UNIT_CT, 2 }, - { "TXRPT", UNIT_CT, 3 }, - { "CT.3", UNIT_CT, 3 }, - { "TXTIMER", UNIT_CT, 4 }, - { "CT.4", UNIT_CT, 4 }, - { "TXL1START", UNIT_CT, 5 }, - { "CT.5", UNIT_CT, 5 }, - { "TXL1END", UNIT_CT, 6 }, - { "CT.6", UNIT_CT, 6 }, - { "TXL1COUNT", UNIT_CT, 7 }, - { "CT.7", UNIT_CT, 7 }, - { "TXL2START", UNIT_CT, 8 }, - { "CT.8", UNIT_CT, 8 }, - { "TXL2END", UNIT_CT, 9 }, - { "CT.9", UNIT_CT, 9 }, - { "TXL2COUNT", UNIT_CT, 10 }, - { "CT.10", UNIT_CT, 10 }, - { "TXBPOBITS", UNIT_CT, 11 }, - { "CT.11", UNIT_CT, 11 }, - { "TXMRSIZE", UNIT_CT, 12 }, - { "CT.12", UNIT_CT, 12 }, - { "TXTIMERI", UNIT_CT, 13 }, - { "CT.13", UNIT_CT, 13 }, - { "TXDRCTRL", UNIT_CT, 14 }, - { "CT.14", UNIT_CT, 14 }, - { "TXDRSIZE", UNIT_CT, 15 }, - { "CT.15", UNIT_CT, 15 }, - { "TXCATCH0", UNIT_CT, 16 }, - { "CT.16", UNIT_CT, 16 }, - { "TXCATCH1", UNIT_CT, 17 }, - { "CT.17", UNIT_CT, 17 }, - { "TXCATCH2", UNIT_CT, 18 }, - { "CT.18", UNIT_CT, 18 }, - { "TXCATCH3", UNIT_CT, 19 }, - { "CT.19", UNIT_CT, 19 }, - { "TXDEFR", UNIT_CT, 20 }, - { "CT.20", UNIT_CT, 20 }, - { "TXCPRS", UNIT_CT, 21 }, - { "CT.21", UNIT_CT, 21 }, - { "TXCLKCTRL", UNIT_CT, 22 }, - { "CT.22", UNIT_CT, 22 }, - { "TXINTERN0", UNIT_CT, 23 }, - { "TXSTATE", UNIT_CT, 23 }, - { "CT.23", UNIT_CT, 23 }, - { "TXAMAREG0", UNIT_CT, 24 }, - { "CT.24", UNIT_CT, 24 }, - { "TXAMAREG1", UNIT_CT, 25 }, - { "CT.25", UNIT_CT, 25 }, - { "TXAMAREG2", UNIT_CT, 26 }, - { "CT.26", UNIT_CT, 26 }, - { "TXAMAREG3", UNIT_CT, 27 }, - { "CT.27", UNIT_CT, 27 }, - { "TXDIVTIME", UNIT_CT, 28 }, - { "CT.28", UNIT_CT, 28 }, - { "TXPRIVEXT", UNIT_CT, 29 }, - { "CT.29", UNIT_CT, 29 }, - { "TXTACTCYC", UNIT_CT, 30 }, - { "TXACTCYC", UNIT_CT, 30 }, - { "CT.30", UNIT_CT, 30 }, - { "TXIDLECYC", UNIT_CT, 31 }, - { "CT.31", UNIT_CT, 31 }, - - { "D0Re0", UNIT_D0, 0 }, - { "D0.0", UNIT_D0, 0 }, - { "D0Ar6", UNIT_D0, 1 }, - { "D0.1", UNIT_D0, 1 }, - { "D0Ar4", UNIT_D0, 2 }, - { "D0.2", UNIT_D0, 2 }, - { "D0Ar2", UNIT_D0, 3 }, - { "D0.3", UNIT_D0, 3 }, - { "D0FrT", UNIT_D0, 4 }, - { "D0.4", UNIT_D0, 4 }, - { "D0.5", UNIT_D0, 5 }, - { "D0.6", UNIT_D0, 6 }, - { "D0.7", UNIT_D0, 7 }, - { "D0.8", UNIT_D0, 8 }, - { "D0.9", UNIT_D0, 9 }, - { "D0.10", UNIT_D0, 10 }, - { "D0.11", UNIT_D0, 11 }, - { "D0.12", UNIT_D0, 12 }, - { "D0.13", UNIT_D0, 13 }, - { "D0.14", UNIT_D0, 14 }, - { "D0.15", UNIT_D0, 15 }, - { "D0.16", UNIT_D0, 16 }, - { "D0.17", UNIT_D0, 17 }, - { "D0.18", UNIT_D0, 18 }, - { "D0.19", UNIT_D0, 19 }, - { "D0.20", UNIT_D0, 20 }, - { "D0.21", UNIT_D0, 21 }, - { "D0.22", UNIT_D0, 22 }, - { "D0.23", UNIT_D0, 23 }, - { "D0.24", UNIT_D0, 24 }, - { "D0.25", UNIT_D0, 25 }, - { "D0.26", UNIT_D0, 26 }, - { "D0.27", UNIT_D0, 27 }, - { "D0.28", UNIT_D0, 28 }, - { "D0.29", UNIT_D0, 29 }, - { "D0.30", UNIT_D0, 30 }, - { "D0.31", UNIT_D0, 31 }, - - { "D1Re0", UNIT_D1, 0 }, - { "D1.0", UNIT_D1, 0 }, - { "D1Ar5", UNIT_D1, 1 }, - { "D1.1", UNIT_D1, 1 }, - { "D1Ar3", UNIT_D1, 2 }, - { "D1.2", UNIT_D1, 2 }, - { "D1Ar1", UNIT_D1, 3 }, - { "D1.3", UNIT_D1, 3 }, - { "D1RtP", UNIT_D1, 4 }, - { "D1.4", UNIT_D1, 4 }, - { "D1.5", UNIT_D1, 5 }, - { "D1.6", UNIT_D1, 6 }, - { "D1.7", UNIT_D1, 7 }, - { "D1.8", UNIT_D1, 8 }, - { "D1.9", UNIT_D1, 9 }, - { "D1.10", UNIT_D1, 10 }, - { "D1.11", UNIT_D1, 11 }, - { "D1.12", UNIT_D1, 12 }, - { "D1.13", UNIT_D1, 13 }, - { "D1.14", UNIT_D1, 14 }, - { "D1.15", UNIT_D1, 15 }, - { "D1.16", UNIT_D1, 16 }, - { "D1.17", UNIT_D1, 17 }, - { "D1.18", UNIT_D1, 18 }, - { "D1.19", UNIT_D1, 19 }, - { "D1.20", UNIT_D1, 20 }, - { "D1.21", UNIT_D1, 21 }, - { "D1.22", UNIT_D1, 22 }, - { "D1.23", UNIT_D1, 23 }, - { "D1.24", UNIT_D1, 24 }, - { "D1.25", UNIT_D1, 25 }, - { "D1.26", UNIT_D1, 26 }, - { "D1.27", UNIT_D1, 27 }, - { "D1.28", UNIT_D1, 28 }, - { "D1.29", UNIT_D1, 29 }, - { "D1.30", UNIT_D1, 30 }, - { "D1.31", UNIT_D1, 31 }, - - { "A0StP", UNIT_A0, 0 }, - { "A0.0", UNIT_A0, 0 }, - { "A0FrP", UNIT_A0, 1 }, - { "A0.1", UNIT_A0, 1 }, - { "A0.2", UNIT_A0, 2 }, - { "A0.3", UNIT_A0, 3 }, - { "A0.4", UNIT_A0, 4 }, - { "A0.5", UNIT_A0, 5 }, - { "A0.6", UNIT_A0, 6 }, - { "A0.7", UNIT_A0, 7 }, - { "A0.8", UNIT_A0, 8 }, - { "A0.9", UNIT_A0, 9 }, - { "A0.10", UNIT_A0, 10 }, - { "A0.11", UNIT_A0, 11 }, - { "A0.12", UNIT_A0, 12 }, - { "A0.13", UNIT_A0, 13 }, - { "A0.14", UNIT_A0, 14 }, - { "A0.15", UNIT_A0, 15 }, - { "CPC0", UNIT_A0, 16 }, - - { "A1GbP", UNIT_A1, 0 }, - { "A1.0", UNIT_A1, 0 }, - { "A1LbP", UNIT_A1, 1 }, - { "A1.1", UNIT_A1, 1 }, - { "A1.2", UNIT_A1, 2 }, - { "A1.3", UNIT_A1, 3 }, - { "A1.4", UNIT_A1, 4 }, - { "A1.5", UNIT_A1, 5 }, - { "A1.6", UNIT_A1, 6 }, - { "A1.7", UNIT_A1, 7 }, - { "A1.8", UNIT_A1, 8 }, - { "A1.9", UNIT_A1, 9 }, - { "A1.10", UNIT_A1, 10 }, - { "A1.11", UNIT_A1, 11 }, - { "A1.12", UNIT_A1, 12 }, - { "A1.13", UNIT_A1, 13 }, - { "A1.14", UNIT_A1, 14 }, - { "A1.15", UNIT_A1, 15 }, - { "CPC1", UNIT_A1, 16 }, - - { "PC", UNIT_PC, 0 }, - { "PCX", UNIT_PC, 1 }, - - { "RD", UNIT_RD, 0 }, - { "RA", UNIT_RD, 16 }, - { "RD", UNIT_RD, 16 }, - { "RAPF", UNIT_RD, 17 }, - { "RAM8X32", UNIT_RD, 22 }, - { "RAM8X", UNIT_RD, 23 }, - { "RABZ", UNIT_RD, 24 }, - { "RAWZ", UNIT_RD, 25 }, - { "RADZ", UNIT_RD, 26 }, - { "RABX", UNIT_RD, 28 }, - { "RAWX", UNIT_RD, 29 }, - { "RADX", UNIT_RD, 30 }, - { "RAMX", UNIT_RD, 31 }, - { "RAM16X", UNIT_RD, 31 }, - - { "TXSTAT", UNIT_TR, 0 }, - { "TR.0", UNIT_TR, 0 }, - { "TXMASK", UNIT_TR, 1 }, - { "TR.1", UNIT_TR, 1 }, - { "TXSTATI", UNIT_TR, 2 }, - { "TR.2", UNIT_TR, 2 }, - { "TXMASKI", UNIT_TR, 3 }, - { "TR.3", UNIT_TR, 3 }, - { "TXPOLL", UNIT_TR, 4 }, - { "TR.4", UNIT_TR, 4 }, - { "TXGPIOI", UNIT_TR, 5 }, - { "TR.5", UNIT_TR, 5 }, - { "TXPOLLI", UNIT_TR, 6 }, - { "TR.6", UNIT_TR, 6 }, - { "TXGPIOO", UNIT_TR, 7 }, - { "TR.7", UNIT_TR, 7 }, - - { "TTEXEC", UNIT_TT, 0 }, - { "TT.0", UNIT_TT, 0 }, - { "TTCTRL", UNIT_TT, 1 }, - { "TT.1", UNIT_TT, 1 }, - { "TTMARK", UNIT_TT, 2 }, - { "TT.2", UNIT_TT, 2 }, - { "TTREC", UNIT_TT, 3 }, - { "TT.3", UNIT_TT, 3 }, - { "GTEXEC", UNIT_TT, 4 }, - { "TT.4", UNIT_TT, 4 }, - - { "FX.0", UNIT_FX, 0 }, - { "FX.1", UNIT_FX, 1 }, - { "FX.2", UNIT_FX, 2 }, - { "FX.3", UNIT_FX, 3 }, - { "FX.4", UNIT_FX, 4 }, - { "FX.5", UNIT_FX, 5 }, - { "FX.6", UNIT_FX, 6 }, - { "FX.7", UNIT_FX, 7 }, - { "FX.8", UNIT_FX, 8 }, - { "FX.9", UNIT_FX, 9 }, - { "FX.10", UNIT_FX, 10 }, - { "FX.11", UNIT_FX, 11 }, - { "FX.12", UNIT_FX, 12 }, - { "FX.13", UNIT_FX, 13 }, - { "FX.14", UNIT_FX, 14 }, - { "FX.15", UNIT_FX, 15 }, - }; - -static const metag_reg metag_dsp_regtab[] = - { - { "D0AR.0", UNIT_RAM_D0, 0 }, - { "D0AR.1", UNIT_RAM_D0, 1 }, - { "D0AW.0", UNIT_RAM_D0, 2 }, - { "D0AW.1", UNIT_RAM_D0, 3 }, - { "D0BR.0", UNIT_RAM_D0, 4 }, - { "D0BR.1", UNIT_RAM_D0, 5 }, - { "D0BW.0", UNIT_RAM_D0, 6 }, - { "D0BW.1", UNIT_RAM_D0, 7 }, - { "D0ARI.0", UNIT_RAM_D0, 8 }, - { "D0ARI.1", UNIT_RAM_D0, 9 }, - { "D0AWI.0", UNIT_RAM_D0, 10 }, - { "D0AWI.1", UNIT_RAM_D0, 11 }, - { "D0BRI.0", UNIT_RAM_D0, 12 }, - { "D0BRI.1", UNIT_RAM_D0, 13 }, - { "D0BWI.0", UNIT_RAM_D0, 14 }, - { "D0BWI.1", UNIT_RAM_D0, 15 }, - - { "AC0.0", UNIT_ACC_D0, 16 }, - { "AC0.1", UNIT_ACC_D0, 17 }, - { "AC0.2", UNIT_ACC_D0, 18 }, - { "AC0.3", UNIT_ACC_D0, 19 }, - - { "D1AR.0", UNIT_RAM_D1, 0 }, - { "D1AR.1", UNIT_RAM_D1, 1 }, - { "D1AW.0", UNIT_RAM_D1, 2 }, - { "D1AW.1", UNIT_RAM_D1, 3 }, - { "D1BR.0", UNIT_RAM_D1, 4 }, - { "D1BR.1", UNIT_RAM_D1, 5 }, - { "D1BW.0", UNIT_RAM_D1, 6 }, - { "D1BW.1", UNIT_RAM_D1, 7 }, - { "D1ARI.0", UNIT_RAM_D1, 8 }, - { "D1ARI.1", UNIT_RAM_D1, 9 }, - { "D1AWI.0", UNIT_RAM_D1, 10 }, - { "D1AWI.1", UNIT_RAM_D1, 11 }, - { "D1BRI.0", UNIT_RAM_D1, 12 }, - { "D1BRI.1", UNIT_RAM_D1, 13 }, - { "D1BWI.0", UNIT_RAM_D1, 14 }, - { "D1BWI.1", UNIT_RAM_D1, 15 }, - - { "AC1.0", UNIT_ACC_D1, 16 }, - { "AC1.1", UNIT_ACC_D1, 17 }, - { "AC1.2", UNIT_ACC_D1, 18 }, - { "AC1.3", UNIT_ACC_D1, 19 }, - - { "T0", UNIT_DT, 0 }, - { "T1", UNIT_DT, 1 }, - { "T2", UNIT_DT, 2 }, - { "T3", UNIT_DT, 3 }, - { "T4", UNIT_DT, 4 }, - { "T5", UNIT_DT, 5 }, - { "T6", UNIT_DT, 6 }, - { "T7", UNIT_DT, 7 }, - { "T8", UNIT_DT, 8 }, - { "T9", UNIT_DT, 9 }, - { "TA", UNIT_DT, 10 }, - { "TB", UNIT_DT, 11 }, - { "TC", UNIT_DT, 12 }, - { "TD", UNIT_DT, 13 }, - { "TE", UNIT_DT, 14 }, - { "TF", UNIT_DT, 15 }, - }; - -/* This table differs from 'metag_dsp_regtab' in that the number - fields in this table are suitable for insertion into DSPRAM - template definition instruction encodings. - - The table is indexed by "load". The main benefit of this is that we - can implicitly check that the correct DSPRAM register has been used - when parsing, e.g. the read pointer only appears in the load table - and the write pointer only exists in the store table. - - The ordering of the table entries might look a bit weird but it is - based on matching the longest register string. */ -static const metag_reg metag_dsp_tmpl_regtab[2][56] = - { - { - { "D0AW.0+D0AWI.0++", UNIT_RAM_D0, 18 }, - { "D0AW.0+D0AWI.0", UNIT_RAM_D0, 18 }, - { "D0AW.0+D0AWI.1++", UNIT_RAM_D0, 19 }, - { "D0AW.0+D0AWI.1", UNIT_RAM_D0, 19 }, - { "D0AW.0++", UNIT_RAM_D0, 17 }, - { "D0AW.0", UNIT_RAM_D0, 16 }, - { "D0AWI.0", UNIT_RAM_D0, 18 }, - { "D0AWI.1", UNIT_RAM_D0, 19 }, - { "D0AW.1+D0AWI.0++", UNIT_RAM_D0, 22 }, - { "D0AW.1+D0AWI.0", UNIT_RAM_D0, 22 }, - { "D0AW.1+D0AWI.1++", UNIT_RAM_D0, 23 }, - { "D0AW.1+D0AWI.1", UNIT_RAM_D0, 23 }, - { "D0AW.1++", UNIT_RAM_D0, 21 }, - { "D0AW.1", UNIT_RAM_D0, 20 }, - { "D0BW.0+D0BWI.0++", UNIT_RAM_D0, 26 }, - { "D0BW.0+D0BWI.0", UNIT_RAM_D0, 26 }, - { "D0BW.0+D0BWI.1++", UNIT_RAM_D0, 27 }, - { "D0BW.0+D0BWI.1", UNIT_RAM_D0, 27 }, - { "D0BW.0++", UNIT_RAM_D0, 25 }, - { "D0BW.0", UNIT_RAM_D0, 24 }, - { "D0BWI.0", UNIT_RAM_D0, 18 }, - { "D0BWI.1", UNIT_RAM_D0, 19 }, - { "D0BW.1+D0BWI.0++", UNIT_RAM_D0, 30 }, - { "D0BW.1+D0BWI.0", UNIT_RAM_D0, 30 }, - { "D0BW.1+D0BWI.1++", UNIT_RAM_D0, 31 }, - { "D0BW.1+D0BWI.1", UNIT_RAM_D0, 31 }, - { "D0BW.1++", UNIT_RAM_D0, 29 }, - { "D0BW.1", UNIT_RAM_D0, 28 }, - - { "D1AW.0+D1AWI.0++", UNIT_RAM_D1, 18 }, - { "D1AW.0+D1AWI.0", UNIT_RAM_D1, 18 }, - { "D1AW.0+D1AWI.1++", UNIT_RAM_D1, 19 }, - { "D1AW.0+D1AWI.1", UNIT_RAM_D1, 19 }, - { "D1AW.0++", UNIT_RAM_D1, 17 }, - { "D1AW.0", UNIT_RAM_D1, 16 }, - { "D1AWI.0", UNIT_RAM_D1, 18 }, - { "D1AWI.1", UNIT_RAM_D1, 19 }, - { "D1AW.1+D1AWI.0++", UNIT_RAM_D1, 22 }, - { "D1AW.1+D1AWI.0", UNIT_RAM_D1, 22 }, - { "D1AW.1+D1AWI.1++", UNIT_RAM_D1, 23 }, - { "D1AW.1+D1AWI.1", UNIT_RAM_D1, 23 }, - { "D1AW.1++", UNIT_RAM_D1, 21 }, - { "D1AW.1", UNIT_RAM_D1, 20 }, - { "D1BW.0+D1BWI.0++", UNIT_RAM_D1, 26 }, - { "D1BW.0+D1BWI.0", UNIT_RAM_D1, 26 }, - { "D1BW.0+D1BWI.1++", UNIT_RAM_D1, 27 }, - { "D1BW.0+D1BWI.1", UNIT_RAM_D1, 27 }, - { "D1BW.0++", UNIT_RAM_D1, 25 }, - { "D1BW.0", UNIT_RAM_D1, 24 }, - { "D1BWI.0", UNIT_RAM_D1, 18 }, - { "D1BWI.1", UNIT_RAM_D1, 19 }, - { "D1BW.1+D1BWI.0++", UNIT_RAM_D1, 30 }, - { "D1BW.1+D1BWI.0", UNIT_RAM_D1, 30 }, - { "D1BW.1+D1BWI.1++", UNIT_RAM_D1, 31 }, - { "D1BW.1+D1BWI.1", UNIT_RAM_D1, 31 }, - { "D1BW.1++", UNIT_RAM_D1, 29 }, - { "D1BW.1", UNIT_RAM_D1, 28 }, - }, - - { - { "D0AR.0+D0ARI.0++", UNIT_RAM_D0, 18 }, - { "D0AR.0+D0ARI.0", UNIT_RAM_D0, 18 }, - { "D0AR.0+D0ARI.1++", UNIT_RAM_D0, 19 }, - { "D0AR.0+D0ARI.1", UNIT_RAM_D0, 19 }, - { "D0AR.0++", UNIT_RAM_D0, 17 }, - { "D0AR.0", UNIT_RAM_D0, 16 }, - { "D0ARI.0", UNIT_RAM_D0, 18 }, - { "D0ARI.1", UNIT_RAM_D0, 19 }, - { "D0AR.1+D0ARI.0++", UNIT_RAM_D0, 22 }, - { "D0AR.1+D0ARI.0", UNIT_RAM_D0, 22 }, - { "D0AR.1+D0ARI.1++", UNIT_RAM_D0, 23 }, - { "D0AR.1+D0ARI.1", UNIT_RAM_D0, 23 }, - { "D0AR.1++", UNIT_RAM_D0, 21 }, - { "D0AR.1", UNIT_RAM_D0, 20 }, - { "D0BR.0+D0BRI.0++", UNIT_RAM_D0, 26 }, - { "D0BR.0+D0BRI.0", UNIT_RAM_D0, 26 }, - { "D0BR.0+D0BRI.1++", UNIT_RAM_D0, 27 }, - { "D0BR.0+D0BRI.1", UNIT_RAM_D0, 27 }, - { "D0BR.0++", UNIT_RAM_D0, 25 }, - { "D0BR.0", UNIT_RAM_D0, 24 }, - { "D0BRI.0", UNIT_RAM_D0, 18 }, - { "D0BRI.1", UNIT_RAM_D0, 19 }, - { "D0BR.1+D0BRI.0++", UNIT_RAM_D0, 30 }, - { "D0BR.1+D0BRI.0", UNIT_RAM_D0, 30 }, - { "D0BR.1+D0BRI.1++", UNIT_RAM_D0, 31 }, - { "D0BR.1+D0BRI.1", UNIT_RAM_D0, 31 }, - { "D0BR.1++", UNIT_RAM_D0, 29 }, - { "D0BR.1", UNIT_RAM_D0, 28 }, - - { "D1AR.0+D1ARI.0++", UNIT_RAM_D1, 18 }, - { "D1AR.0+D1ARI.0", UNIT_RAM_D1, 18 }, - { "D1AR.0+D1ARI.1++", UNIT_RAM_D1, 19 }, - { "D1AR.0+D1ARI.1", UNIT_RAM_D1, 19 }, - { "D1AR.0++", UNIT_RAM_D1, 17 }, - { "D1AR.0", UNIT_RAM_D1, 16 }, - { "D1ARI.0", UNIT_RAM_D1, 18 }, - { "D1ARI.1", UNIT_RAM_D1, 19 }, - { "D1AR.1+D1ARI.0++", UNIT_RAM_D1, 22 }, - { "D1AR.1+D1ARI.0", UNIT_RAM_D1, 22 }, - { "D1AR.1+D1ARI.1++", UNIT_RAM_D1, 23 }, - { "D1AR.1+D1ARI.1", UNIT_RAM_D1, 23 }, - { "D1AR.1++", UNIT_RAM_D1, 21 }, - { "D1AR.1", UNIT_RAM_D1, 20 }, - { "D1BR.0+D1BRI.0++", UNIT_RAM_D1, 26 }, - { "D1BR.0+D1BRI.0", UNIT_RAM_D1, 26 }, - { "D1BR.0+D1BRI.1++", UNIT_RAM_D1, 27 }, - { "D1BR.0+D1BRI.1", UNIT_RAM_D1, 27 }, - { "D1BR.0++", UNIT_RAM_D1, 25 }, - { "D1BR.0", UNIT_RAM_D1, 24 }, - { "D1BR.1+D1BRI.0++", UNIT_RAM_D1, 30 }, - { "D1BR.1+D1BRI.0", UNIT_RAM_D1, 30 }, - { "D1BR.1+D1BRI.1++", UNIT_RAM_D1, 31 }, - { "D1BR.1+D1BRI.1", UNIT_RAM_D1, 31 }, - { "D1BR.1++", UNIT_RAM_D1, 29 }, - { "D1BR.1", UNIT_RAM_D1, 28 }, - { "D1BRI.0", UNIT_RAM_D1, 18 }, - { "D1BRI.1", UNIT_RAM_D1, 19 }, - }, - }; - -typedef struct -{ - const char * name; - unsigned int part; -} metag_acf; - -static const metag_acf metag_acftab[] = - { - { "ACF.0", 0}, - { "ACF.1", 1}, - { "ACF.2", 2}, - { "ACF.3", 3}, - }; - -enum insn_encoding -{ - ENC_NONE, - ENC_MOV_U2U, - ENC_MOV_PORT, - ENC_MMOV, - ENC_MDRD, - ENC_MOVL_TTREC, - ENC_GET_SET, - ENC_GET_SET_EXT, - ENC_MGET_MSET, - ENC_COND_SET, - ENC_XFR, - ENC_MOV_CT, - ENC_SWAP, - ENC_JUMP, - ENC_CALLR, - ENC_ALU, - ENC_SHIFT, - ENC_MIN_MAX, - ENC_BITOP, - ENC_CMP, - ENC_BRANCH, - ENC_KICK, - ENC_SWITCH, - ENC_CACHER, - ENC_CACHEW, - ENC_ICACHE, - ENC_LNKGET, - ENC_FMOV, - ENC_FMMOV, - ENC_FMOV_DATA, - ENC_FMOV_I, - ENC_FPACK, - ENC_FSWAP, - ENC_FCMP, - ENC_FMINMAX, - ENC_FCONV, - ENC_FCONVX, - ENC_FBARITH, - ENC_FEARITH, - ENC_FREC, - ENC_FSIMD, - ENC_FGET_SET_ACF, - ENC_DGET_SET, - ENC_DTEMPLATE, - ENC_DALU, - ENC_MAX, -}; - -enum insn_type -{ - INSN_GP, - INSN_FPU, - INSN_DSP, - INSN_DSP_FPU, -}; - -typedef struct -{ - const char *name; - - unsigned int core_flags; -#define CoreMeta11 0x1 /* The earliest Meta core we support */ -#define CoreMeta12 0x2 -#define CoreMeta21 0x4 - -#define FpuMeta21 0x21 - -#define DspMeta21 0x100 - - unsigned int meta_opcode; - unsigned int meta_mask; - - enum insn_type insn_type; - - enum insn_encoding encoding; - -#define DSP_ARGS_1 0x0000001 /* De.r,Dx.r,De.r (3 register operands) */ -#define DSP_ARGS_ACC2 0x0000002 /* Accumulator source operand 2 */ -#define DSP_ARGS_QR 0x0000004 /* QUICKRoT */ -#define DSP_ARGS_XACC 0x0000008 /* Cross-unit accumulator op */ -#define DSP_ARGS_DACC 0x0000010 /* Target accumulator as destination */ -#define DSP_ARGS_SRD 0x0000020 /* Source the RD port */ -#define DSP_ARGS_2 0x0000040 /* De.r,Dx.r (2 register operands) */ -#define DSP_ARGS_DSP_SRC1 0x0000080 /* Source a DSP register */ -#define DSP_ARGS_DSP_SRC2 0x0000100 /* Source a DSP register */ -#define DSP_ARGS_IMM 0x0000200 /* Immediate value for src 2 */ -#define DSP_ARGS_SPLIT8 0x0000400 /* Data unit split 8 operations */ -#define DSP_ARGS_12 0x0000800 /* De.r,Dx.r */ -#define DSP_ARGS_13 0x0001000 /* Dx.r,Rx.r */ -#define DSP_ARGS_14 0x0002000 /* DSPe.r,Dx.r */ -#define DSP_ARGS_15 0x0004000 /* DSPx.r,#I16 */ -#define DSP_ARGS_16 0x0008000 /* De.r,DSPx.r */ -#define DSP_ARGS_17 0x0010000 /* De.r|ACe.r,Dx.r,Rx.r|RD */ -#define DSP_ARGS_18 0x0020000 /* De.r,Dx.r|ACx.r */ -#define DSP_ARGS_20 0x0080000 /* De.r,Dx.r|ACx.r,De.r */ -#define DSP_ARGS_21 0x0100000 /* De.r,Dx.r|ACx.r,#I5 */ -#define DSP_ARGS_22 0x0200000 /* De.r,Dx.r|ACx.r,De.r|#I5 */ -#define DSP_ARGS_23 0x0400000 /* Ux.r,Dx.r|ACx.r,De.r|#I5 */ -#define GP_ARGS_QR 0x0000001 /* QUICKRoT */ - unsigned int arg_type; -} insn_template; - -enum major_opcode -{ - OPC_ADD, - OPC_SUB, - OPC_AND, - OPC_OR, - OPC_XOR, - OPC_SHIFT, - OPC_MUL, - OPC_CMP, - OPC_ADDR, - OPC_9, - OPC_MISC, - OPC_SET, - OPC_GET, - OPC_XFR, - OPC_CPR, - OPC_FPU, -}; - -#define GET_EXT_MINOR 0x7 -#define MOV_EXT_MINOR 0x6 -#define MOVL_MINOR 0x2 - -#define MAJOR_OPCODE(opcode) (((opcode) >> 28) & 0xf) -#define MINOR_OPCODE(opcode) (((opcode) >> 24) & 0xf) - -enum cond_code -{ - COND_A, - COND_EQ, - COND_NE, - COND_CS, - COND_CC, - COND_MI, - COND_PL, - COND_VS, - COND_VC, - COND_HI, - COND_LS, - COND_GE, - COND_LT, - COND_GT, - COND_LE, - COND_NV, -}; - -enum scond_code -{ - SCOND_A, - SCOND_LEQ, - SCOND_LNE, - SCOND_LLO, - SCOND_LHS, - SCOND_HEQ, - SCOND_HNE, - SCOND_HLO, - SCOND_HHS, - SCOND_LGR, - SCOND_LLE, - SCOND_HGR, - SCOND_HLE, - SCOND_EEQ, - SCOND_ELO, - SCOND_NV, -}; - -typedef struct -{ - const char *name; - enum scond_code code; -} split_condition; - -static const split_condition metag_scondtab[] = - { - { "LEQ", SCOND_LEQ }, - { "LEZ", SCOND_LEQ }, - { "LNE", SCOND_LNE }, - { "LNZ", SCOND_LNE }, - { "LLO", SCOND_LLO }, - { "LCS", SCOND_LLO }, - { "LHS", SCOND_LHS }, - { "LCC", SCOND_LHS }, - { "HEQ", SCOND_HEQ }, - { "HEZ", SCOND_HEQ }, - { "HNE", SCOND_HNE }, - { "HNZ", SCOND_HNE }, - { "HLO", SCOND_HLO }, - { "HCS", SCOND_HLO }, - { "HHS", SCOND_HHS }, - { "HCC", SCOND_HHS }, - { "LGR", SCOND_LGR }, - { "LHI", SCOND_LGR }, - { "LLE", SCOND_LLE }, - { "LLS", SCOND_LLE }, - { "HGR", SCOND_HGR }, - { "HHI", SCOND_HGR }, - { "HLE", SCOND_HLE }, - { "HLS", SCOND_HLE }, - { "EEQ", SCOND_EEQ }, - { "EEZ", SCOND_EEQ }, - { "ELO", SCOND_ELO }, - { "ECS", SCOND_ELO }, - }; - -static const split_condition metag_dsp_scondtab[] = - { - { "LEQ", SCOND_LEQ }, - { "LEZ", SCOND_LEQ }, - { "LNE", SCOND_LNE }, - { "LNZ", SCOND_LNE }, - { "LCS", SCOND_LLO }, - { "LLO", SCOND_LLO }, - { "LCC", SCOND_LHS }, - { "LHS", SCOND_LHS }, - { "HEQ", SCOND_HEQ }, - { "HEZ", SCOND_HEQ }, - { "HNE", SCOND_HNE }, - { "HNZ", SCOND_HNE }, - { "HCS", SCOND_HLO }, - { "HLO", SCOND_HLO }, - { "HCC", SCOND_HHS }, - { "HHS", SCOND_HHS }, - { "LHI", SCOND_LGR }, - { "LGR", SCOND_LGR }, - { "LLS", SCOND_LLE }, - { "LLE", SCOND_LLE }, - { "HHI", SCOND_HGR }, - { "HGR", SCOND_HGR }, - { "HLS", SCOND_HLE }, - { "HLE", SCOND_HLE }, - { "EEQ", SCOND_EEQ }, - { "EEZ", SCOND_EEQ }, - { "ECS", SCOND_ELO }, - { "ELO", SCOND_ELO }, - }; - -static const split_condition metag_fpu_scondtab[] = - { - { "LEQ", SCOND_LEQ }, - { "LEZ", SCOND_LEQ }, - { "LNE", SCOND_LNE }, - { "LNZ", SCOND_LNE }, - { "LLO", SCOND_LLO }, - { "LCS", SCOND_LLO }, - { "LHS", SCOND_LHS }, - { "LCC", SCOND_LHS }, - { "HEQ", SCOND_HEQ }, - { "HEZ", SCOND_HEQ }, - { "HNE", SCOND_HNE }, - { "HNZ", SCOND_HNE }, - { "HLO", SCOND_HLO }, - { "HCS", SCOND_HLO }, - { "HHS", SCOND_HHS }, - { "HCC", SCOND_HHS }, - { "LGR", SCOND_LGR }, - { "LHI", SCOND_LGR }, - { "LLE", SCOND_LLE }, - { "LLS", SCOND_LLE }, - { "HGR", SCOND_HGR }, - { "HHI", SCOND_HGR }, - { "HLE", SCOND_HLE }, - { "HLS", SCOND_HLE }, - { "EEQ", SCOND_EEQ }, - { "EEZ", SCOND_EEQ }, - { "ELO", SCOND_ELO }, - { "ECS", SCOND_ELO }, - }; - -enum fcond_code -{ - FCOND_A, - FCOND_FEQ, - FCOND_UNE, - FCOND_FLT, - FCOND_UGE, - - FCOND_UVS = 7, - FCOND_FVC, - FCOND_UGT, - FCOND_FLE, - FCOND_FGE, - FCOND_ULT, - FCOND_FGT, - FCOND_ULE, - FCOND_NV, -}; - -#define COND_INSN(mnemonic, suffix, field_shift, flags, meta_opcode, \ - meta_mask, insn_type, encoding, args) \ - { mnemonic suffix, flags, meta_opcode, meta_mask, \ - insn_type, encoding, args }, \ - { mnemonic "A" suffix, flags, meta_opcode, meta_mask, \ - insn_type, encoding, args }, \ - { mnemonic "EQ" suffix, flags, meta_opcode | (COND_EQ << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "Z" suffix, flags, meta_opcode | (COND_EQ << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "NE" suffix, flags, meta_opcode | (COND_NE << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "NZ" suffix, flags, meta_opcode | (COND_NE << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "CS" suffix, flags, meta_opcode | (COND_CS << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "LO" suffix, flags, meta_opcode | (COND_CS << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "CC" suffix, flags, meta_opcode | (COND_CC << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "HS" suffix, flags, meta_opcode | (COND_CC << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "MI" suffix, flags, meta_opcode | (COND_MI << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "N" suffix, flags, meta_opcode | (COND_MI << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "PL" suffix, flags, meta_opcode | (COND_PL << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "NC" suffix, flags, meta_opcode | (COND_PL << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "VS" suffix, flags, meta_opcode | (COND_VS << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "VC" suffix, flags, meta_opcode | (COND_VC << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "HI" suffix, flags, meta_opcode | (COND_HI << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "LS" suffix, flags, meta_opcode | (COND_LS << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "GE" suffix, flags, meta_opcode | (COND_GE << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "LT" suffix, flags, meta_opcode | (COND_LT << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "GT" suffix, flags, meta_opcode | (COND_GT << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "LE" suffix, flags, meta_opcode | (COND_LE << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "NV" suffix, flags, meta_opcode | (COND_NV << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "FEQ" suffix, flags, meta_opcode | \ - (FCOND_FEQ << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FZ" suffix, flags, meta_opcode | \ - (FCOND_FEQ << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UNE" suffix, flags, meta_opcode | \ - (FCOND_UNE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UNZ" suffix, flags, meta_opcode | \ - (FCOND_UNE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FLT" suffix, flags, meta_opcode | \ - (FCOND_FLT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FLO" suffix, flags, meta_opcode | \ - (FCOND_FLT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UGE" suffix, flags, meta_opcode | \ - (FCOND_UGE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UHS" suffix, flags, meta_opcode | \ - (FCOND_UGE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UVS" suffix, flags, meta_opcode | \ - (FCOND_UVS << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FVC" suffix, flags, meta_opcode | \ - (FCOND_FVC << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UGT" suffix, flags, meta_opcode | \ - (FCOND_UGT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UHI" suffix, flags, meta_opcode | \ - (FCOND_UGT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FLE" suffix, flags, meta_opcode | \ - (FCOND_FLE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FGE" suffix, flags, meta_opcode | \ - (FCOND_FGE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FHS" suffix, flags, meta_opcode | \ - (FCOND_FGE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "ULT" suffix, flags, meta_opcode | \ - (FCOND_ULT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "ULO" suffix, flags, meta_opcode | \ - (FCOND_ULT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FGT" suffix, flags, meta_opcode | \ - (FCOND_FGT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FHI" suffix, flags, meta_opcode | \ - (FCOND_FGT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "ULE" suffix, flags, meta_opcode | \ - (FCOND_ULE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "NV" suffix, flags, meta_opcode | \ - (FCOND_NV << field_shift), meta_mask, INSN_FPU, encoding, args } - -#define FCOND_INSN(mnemonic, suffix, field_shift, flags, meta_opcode, \ - meta_mask, insn_type, encoding, args) \ - { mnemonic suffix, flags, meta_opcode, meta_mask, \ - insn_type, encoding, args }, \ - { mnemonic "A" suffix, flags, meta_opcode, meta_mask, \ - insn_type, encoding, args }, \ - { mnemonic "FEQ" suffix, flags, meta_opcode | \ - (FCOND_FEQ << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FZ" suffix, flags, meta_opcode | \ - (FCOND_FEQ << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UNE" suffix, flags, meta_opcode | \ - (FCOND_UNE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UNZ" suffix, flags, meta_opcode | \ - (FCOND_UNE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FLO" suffix, flags, meta_opcode | \ - (FCOND_FLT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FLT" suffix, flags, meta_opcode | \ - (FCOND_FLT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UHS" suffix, flags, meta_opcode | \ - (FCOND_UGE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UGE" suffix, flags, meta_opcode | \ - (FCOND_UGE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UVS" suffix, flags, meta_opcode | \ - (FCOND_UVS << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FVC" suffix, flags, meta_opcode | \ - (FCOND_FVC << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UHI" suffix, flags, meta_opcode | \ - (FCOND_UGT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "UGT" suffix, flags, meta_opcode | \ - (FCOND_UGT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FLE" suffix, flags, meta_opcode | \ - (FCOND_FLE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FGE" suffix, flags, meta_opcode | \ - (FCOND_FGE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FHS" suffix, flags, meta_opcode | \ - (FCOND_FGE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "ULT" suffix, flags, meta_opcode | \ - (FCOND_ULT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "ULO" suffix, flags, meta_opcode | \ - (FCOND_ULT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FGT" suffix, flags, meta_opcode | \ - (FCOND_FGT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "FHI" suffix, flags, meta_opcode | \ - (FCOND_FGT << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "ULE" suffix, flags, meta_opcode | \ - (FCOND_ULE << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "NV" suffix, flags, meta_opcode | \ - (FCOND_NV << field_shift), meta_mask, INSN_FPU, encoding, args }, \ - { mnemonic "EQ" suffix, flags, meta_opcode | (COND_EQ << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "Z" suffix, flags, meta_opcode | (COND_EQ << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "NE" suffix, flags, meta_opcode | (COND_NE << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "NZ" suffix, flags, meta_opcode | (COND_NE << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "CS" suffix, flags, meta_opcode | (COND_CS << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "LO" suffix, flags, meta_opcode | (COND_CS << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "CC" suffix, flags, meta_opcode | (COND_CC << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "HS" suffix, flags, meta_opcode | (COND_CC << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "MI" suffix, flags, meta_opcode | (COND_MI << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "N" suffix, flags, meta_opcode | (COND_MI << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "PL" suffix, flags, meta_opcode | (COND_PL << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "NC" suffix, flags, meta_opcode | (COND_PL << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "VS" suffix, flags, meta_opcode | (COND_VS << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "VC" suffix, flags, meta_opcode | (COND_VC << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "HI" suffix, flags, meta_opcode | (COND_HI << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "LS" suffix, flags, meta_opcode | (COND_LS << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "GE" suffix, flags, meta_opcode | (COND_GE << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "LT" suffix, flags, meta_opcode | (COND_LT << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "GT" suffix, flags, meta_opcode | (COND_GT << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "LE" suffix, flags, meta_opcode | (COND_LE << field_shift), \ - meta_mask, insn_type, encoding, args }, \ - { mnemonic "NV" suffix, flags, meta_opcode | (COND_NV << field_shift), \ - meta_mask, insn_type, encoding, args } - -#define TEMPLATE_INSN(flags, meta_opcode, meta_mask, insn_type) \ - { "T0", flags, meta_opcode | 0x0, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "T1", flags, meta_opcode | 0x1, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "T2", flags, meta_opcode | 0x2, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "T3", flags, meta_opcode | 0x3, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "T4", flags, meta_opcode | 0x4, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "T5", flags, meta_opcode | 0x5, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "T6", flags, meta_opcode | 0x6, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "T7", flags, meta_opcode | 0x7, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "T8", flags, meta_opcode | 0x8, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "T9", flags, meta_opcode | 0x9, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "TA", flags, meta_opcode | 0xa, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "TB", flags, meta_opcode | 0xb, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "TC", flags, meta_opcode | 0xc, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "TD", flags, meta_opcode | 0xd, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "TE", flags, meta_opcode | 0xe, meta_mask, insn_type, ENC_DTEMPLATE, 0 }, \ - { "TF", flags, meta_opcode | 0xf, meta_mask, insn_type, ENC_DTEMPLATE, 0 } - - -/* Unimplemented GP instructions: - CPR - coprocessor read - CPW - coprocessor write - MORT - morton order operation - VPACK, VADD, VSUB - vector instructions - - The order of the entries in this table is extremely important. DO - NOT modify it unless you know what you're doing. If you do modify - it, be sure to run the entire testsuite to make sure you haven't - caused a regression. */ - -static const insn_template metag_optab[] = - { - /* Port-to-unit MOV */ - COND_INSN ("MOVB", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0xa1800000, 0xfff83e1f, INSN_GP, ENC_MOV_PORT, 0), - COND_INSN ("MOVW", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0xa1800001, 0xfff83e1f, INSN_GP, ENC_MOV_PORT, 0), - COND_INSN ("MOVD", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0xa1800200, 0xfff83e1f, INSN_GP, ENC_MOV_PORT, 0), - COND_INSN ("MOVL", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0xa2800000, 0xfff8019f, INSN_GP, ENC_MOV_PORT, 0), - - /* Read pipeline prime/drain */ - { "MMOVD", CoreMeta11|CoreMeta12|CoreMeta21, - 0xca000000, 0xff00001f, INSN_GP, ENC_MMOV, 0 }, - { "MMOVL", CoreMeta11|CoreMeta12|CoreMeta21, - 0xcb000000, 0xff00001f, INSN_GP, ENC_MMOV, 0 }, - { "MMOVD", CoreMeta11|CoreMeta12|CoreMeta21, - 0xcc000000, 0xff07c067, INSN_GP, ENC_MMOV, 0 }, - { "MMOVL", CoreMeta11|CoreMeta12|CoreMeta21, - 0xcd000000, 0xff07c067, INSN_GP, ENC_MMOV, 0 }, - - /* Read pipeline flush */ - { "MDRD", CoreMeta11|CoreMeta12|CoreMeta21, - 0xcc000002, 0xffffc07f, INSN_GP, ENC_MDRD, 0 }, - - /* Unit-to-TTREC MOVL */ - COND_INSN ("MOVL", "", 1, CoreMeta12|CoreMeta21, - 0xa2002001, 0xff003e7f, INSN_GP, ENC_MOVL_TTREC, 0), - - /* MOV to RA (extended) */ - { "MOVB", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa6000000, 0xff00001e, INSN_GP, ENC_GET_SET_EXT, 0 }, - { "MOVW", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa6000002, 0xff00001e, INSN_GP, ENC_GET_SET_EXT, 0 }, - { "MOVD", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa6000004, 0xff00001e, INSN_GP, ENC_GET_SET_EXT, 0 }, - { "MOVL", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa6000006, 0xff00001e, INSN_GP, ENC_GET_SET_EXT, 0 }, - - /* Extended GET */ - { "GETB", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa7000000, 0xff000006, INSN_GP, ENC_GET_SET_EXT, 0 }, - { "GETW", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa7000002, 0xff000006, INSN_GP, ENC_GET_SET_EXT, 0 }, - { "GETD", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa7000004, 0xff000006, INSN_GP, ENC_GET_SET_EXT, 0 }, - { "GETL", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa7000006, 0xff000006, INSN_GP, ENC_GET_SET_EXT, 0 }, - - /* Extended SET */ - { "SETB", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa5000000, 0xff000006, INSN_GP, ENC_GET_SET_EXT, 0 }, - { "SETW", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa5000002, 0xff000006, INSN_GP, ENC_GET_SET_EXT, 0 }, - { "SETD", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa5000004, 0xff000006, INSN_GP, ENC_GET_SET_EXT, 0 }, - { "SETL", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa5000006, 0xff000006, INSN_GP, ENC_GET_SET_EXT, 0 }, - - /* MOV to RA */ - { "MOVB", CoreMeta11|CoreMeta12|CoreMeta21, - 0xc000000c, 0xfd00001e, INSN_GP, ENC_GET_SET, 0 }, - { "MOVW", CoreMeta11|CoreMeta12|CoreMeta21, - 0xc100000c, 0xfd00001e, INSN_GP, ENC_GET_SET, 0 }, - { "MOVD", CoreMeta11|CoreMeta12|CoreMeta21, - 0xc400000c, 0xfd00001e, INSN_GP, ENC_GET_SET, 0 }, - { "MOVL", CoreMeta11|CoreMeta12|CoreMeta21, - 0xc500000c, 0xfd00001e, INSN_GP, ENC_GET_SET, 0 }, - - /* Standard GET */ - { "GETB", CoreMeta11|CoreMeta12|CoreMeta21, - 0xc0000000, 0xfd000000, INSN_GP, ENC_GET_SET, 0 }, - { "GETW", CoreMeta11|CoreMeta12|CoreMeta21, - 0xc1000000, 0xfd000000, INSN_GP, ENC_GET_SET, 0 }, - { "GETD", CoreMeta11|CoreMeta12|CoreMeta21, - 0xc4000000, 0xfd000000, INSN_GP, ENC_GET_SET, 0 }, - /* GET is a synonym for GETD. */ - { "GET", CoreMeta11|CoreMeta12|CoreMeta21, - 0xc4000000, 0xfd000000, INSN_GP, ENC_GET_SET, 0 }, - { "GETL", CoreMeta11|CoreMeta12|CoreMeta21, - 0xc5000000, 0xfd000000, INSN_GP, ENC_GET_SET, 0 }, - - /* Standard SET */ - { "SETB", CoreMeta11|CoreMeta12|CoreMeta21, - 0xb0000000, 0xfd000000, INSN_GP, ENC_GET_SET, 0 }, - { "SETW", CoreMeta11|CoreMeta12|CoreMeta21, - 0xb1000000, 0xfd000000, INSN_GP, ENC_GET_SET, 0 }, - { "SETD", CoreMeta11|CoreMeta12|CoreMeta21, - 0xb4000000, 0xfd000000, INSN_GP, ENC_GET_SET, 0 }, - /* SET is a synonym for SETD. */ - { "SET", CoreMeta11|CoreMeta12|CoreMeta21, - 0xb4000000, 0xfd000000, INSN_GP, ENC_GET_SET, 0 }, - { "SETL", CoreMeta11|CoreMeta12|CoreMeta21, - 0xb5000000, 0xfd000000, INSN_GP, ENC_GET_SET, 0 }, - - /* Multiple GET */ - { "MGETD", CoreMeta11|CoreMeta12|CoreMeta21, - 0xc8000000, 0xff000007, INSN_GP, ENC_MGET_MSET, 0 }, - { "MGETL", CoreMeta11|CoreMeta12|CoreMeta21, - 0xc9000000, 0xff000007, INSN_GP, ENC_MGET_MSET, 0 }, - - /* Multiple SET */ - { "MSETD", CoreMeta11|CoreMeta12|CoreMeta21, - 0xb8000000, 0xff000007, INSN_GP, ENC_MGET_MSET, 0 }, - { "MSETL", CoreMeta11|CoreMeta12|CoreMeta21, - 0xb9000000, 0xff000007, INSN_GP, ENC_MGET_MSET, 0 }, - - /* Conditional SET */ - COND_INSN ("SETB", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0xa4000000, 0xff00039f, INSN_GP, ENC_COND_SET, 0), - COND_INSN ("SETW", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0xa4000001, 0xff00039f, INSN_GP, ENC_COND_SET, 0), - COND_INSN ("SETD", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0xa4000200, 0xff00039f, INSN_GP, ENC_COND_SET, 0), - COND_INSN ("SETL", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0xa4000201, 0xff00039f, INSN_GP, ENC_COND_SET, 0), - { "XFRD", CoreMeta11|CoreMeta12|CoreMeta21, - 0xd0000000, 0xf2000000, INSN_GP, ENC_XFR, 0 }, - { "XFRL", CoreMeta11|CoreMeta12|CoreMeta21, - 0xd2000000, 0xf2000000, INSN_GP, ENC_XFR, 0 }, - - /* Fast control register setup */ - { "MOV", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa9000000, 0xff000005, INSN_GP, ENC_MOV_CT, 0 }, - { "MOVT", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa9000001, 0xff000005, INSN_GP, ENC_MOV_CT, 0 }, - { "MOV", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa9000004, 0xff000005, INSN_GP, ENC_MOV_CT, 0 }, - { "MOVT", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa9000005, 0xff000005, INSN_GP, ENC_MOV_CT, 0 }, - - /* Internal transfer operations */ - { "JUMP", CoreMeta11|CoreMeta12|CoreMeta21, - 0xac000000, 0xff000004, INSN_GP, ENC_JUMP, 0 }, - { "CALL", CoreMeta11|CoreMeta12|CoreMeta21, - 0xac000004, 0xff000004, INSN_GP, ENC_JUMP, 0 }, - { "CALLR", CoreMeta11|CoreMeta12|CoreMeta21, - 0xab000000, 0xff000000, INSN_GP, ENC_CALLR, 0 }, - - /* Address unit ALU operations */ - { "MOV", CoreMeta11|CoreMeta12|CoreMeta21, - 0x80000004, 0xfe0001fc, INSN_GP, ENC_ALU, 0 }, - { "MOV", CoreMeta11|CoreMeta12|CoreMeta21, - 0x82000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "MOVT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x82000005, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ADD", CoreMeta11|CoreMeta12|CoreMeta21, - 0x80000000, 0xfe0001fc, INSN_GP, ENC_ALU, 0 }, - { "ADD", CoreMeta11|CoreMeta12|CoreMeta21, - 0x82000000, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ADDT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x82000001, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ADD", CoreMeta11|CoreMeta12|CoreMeta21, - 0x86000020, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - COND_INSN ("ADD", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x84000000, 0xfe00001e, INSN_GP, ENC_ALU, 0), - COND_INSN ("ADD", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x86000000, 0xfe00003f, INSN_GP, ENC_ALU, 0), - { "NEG", CoreMeta11|CoreMeta12|CoreMeta21, - 0x88000004, 0xfe0001fc, INSN_GP, ENC_ALU, 0 }, - { "NEG", CoreMeta11|CoreMeta12|CoreMeta21, - 0x8a000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "NEGT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x8a000005, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "SUB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x88000000, 0xfe0001fc, INSN_GP, ENC_ALU, 0 }, - { "SUB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x8a000000, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "SUBT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x8a000001, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "SUB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x8e000020, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - COND_INSN ("SUB", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x8c000000, 0xfe00001e, INSN_GP, ENC_ALU, 0), - COND_INSN ("SUB", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x8e000000, 0xfe00003f, INSN_GP, ENC_ALU, 0), - - /* Data unit ALU operations */ - { "MOV", CoreMeta11|CoreMeta12|CoreMeta21, - 0x00000004, 0xfe0001fc, INSN_GP, ENC_ALU, 0 }, - { "MOVS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x08000004, 0xfe0001fc, INSN_GP, ENC_ALU, 0 }, - { "MOV", CoreMeta11|CoreMeta12|CoreMeta21, - 0x02000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "MOVS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x0a000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "MOVT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x02000005, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "MOVST", CoreMeta11|CoreMeta12|CoreMeta21, - 0x0a000005, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "ADD", DspMeta21, - 0x00000100, 0xfe000104, INSN_DSP, ENC_DALU, - DSP_ARGS_1|DSP_ARGS_ACC2|DSP_ARGS_XACC|DSP_ARGS_IMM }, - { "ADD", DspMeta21, - 0x02000003, 0xfe000003, INSN_DSP, ENC_DALU, - DSP_ARGS_1|DSP_ARGS_IMM }, - COND_INSN ("ADD", "", 1, DspMeta21, - 0x040001e0, 0xfe0001fe, INSN_DSP, ENC_DALU, DSP_ARGS_1), - { "ADD", CoreMeta11|CoreMeta12|CoreMeta21, - 0x00000000, 0xfe0001fc, INSN_GP, ENC_ALU, 0 }, - { "ADDS", DspMeta21, - 0x08000100, 0xfe000104, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_ACC2 }, - { "ADDS", DspMeta21, - 0x0a000003, 0xfe000003, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_IMM }, - { "ADDS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x08000000, 0xfe0001fc, INSN_GP, ENC_ALU, 0 }, - { "ADD", CoreMeta11|CoreMeta12|CoreMeta21, - 0x02000000, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ADDS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x0a000000, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ADDT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x02000001, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ADDST", CoreMeta11|CoreMeta12|CoreMeta21, - 0x0a000001, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ADD", CoreMeta11|CoreMeta12|CoreMeta21, - 0x06000020, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - COND_INSN ("ADDS", "", 1, DspMeta21, - 0x0c0001e0, 0xfe0001fe, INSN_DSP, ENC_DALU, DSP_ARGS_1), - { "ADDS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x0e000020, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - COND_INSN ("ADD", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x04000000, 0xfe00001e, INSN_GP, ENC_ALU, 0), - COND_INSN ("ADDS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x0c000000, 0xfe00001e, INSN_GP, ENC_ALU, 0), - COND_INSN ("ADD", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x06000000, 0xfe00003f, INSN_GP, ENC_ALU, 0), - COND_INSN ("ADDS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x0e000000, 0xfe00003f, INSN_GP, ENC_ALU, 0), - { "NEG", CoreMeta11|CoreMeta12|CoreMeta21, - 0x10000004, 0xfe0001fc, INSN_GP, ENC_ALU, 0 }, - { "NEGS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x18000004, 0xfe0001fc, INSN_GP, ENC_ALU, 0 }, - { "NEG", CoreMeta11|CoreMeta12|CoreMeta21, - 0x12000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "NEGS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x1a000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "NEGT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x12000005, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "NEGST", CoreMeta11|CoreMeta12|CoreMeta21, - 0x1a000005, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "SUB", DspMeta21, - 0x10000100, 0xfe000104, INSN_DSP, ENC_DALU, - DSP_ARGS_1|DSP_ARGS_ACC2|DSP_ARGS_XACC }, - { "SUB", DspMeta21, - 0x12000003, 0xfe000003, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_IMM }, - { "SUB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x10000000, 0xfe0001fc, INSN_GP, ENC_ALU, 0 }, - { "SUBS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x18000000, 0xfe0001fc, INSN_GP, ENC_ALU, 0 }, - { "SUB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x12000000, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "SUBS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x1a000000, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "SUBT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x12000001, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "SUBS", DspMeta21, - 0x18000100, 0xfe000104, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_ACC2 }, - { "SUBS", DspMeta21, - 0x1a000003, 0xfe000003, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_IMM }, - { "SUBST", CoreMeta11|CoreMeta12|CoreMeta21, - 0x1a000001, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "SUB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x16000020, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - { "SUBS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x1e000020, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - COND_INSN ("SUBS", "", 1, DspMeta21, - 0x1c0001e0, 0xfe0001fe, INSN_DSP, ENC_DALU, DSP_ARGS_1), - COND_INSN ("SUB", "", 1, DspMeta21, - 0x140001e0, 0xfe0001fe, INSN_DSP, ENC_DALU, DSP_ARGS_1), - COND_INSN ("SUB", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x14000000, 0xfe00001e, INSN_GP, ENC_ALU, 0), - COND_INSN ("SUBS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x1c000000, 0xfe00001e, INSN_GP, ENC_ALU, 0), - COND_INSN ("SUB", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x16000000, 0xfe00003f, INSN_GP, ENC_ALU, 0), - COND_INSN ("SUBS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x1e000000, 0xfe00003f, INSN_GP, ENC_ALU, 0), - { "AND", CoreMeta11|CoreMeta12|CoreMeta21, - 0x20000000, 0xfe0001fe, INSN_GP, ENC_ALU, 0 }, - { "ANDS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x28000000, 0xfe0001fe, INSN_GP, ENC_ALU, 0 }, - { "ANDQ", CoreMeta11|CoreMeta12|CoreMeta21, - 0x20000040, 0xfe00017e, INSN_GP, ENC_ALU, GP_ARGS_QR }, - { "ANDSQ", CoreMeta11|CoreMeta12|CoreMeta21, - 0x28000040, 0xfe00017e, INSN_GP, ENC_ALU, GP_ARGS_QR }, - { "AND", CoreMeta11|CoreMeta12|CoreMeta21, - 0x22000000, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ANDMB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x22000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ANDS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x2a000000, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ANDSMB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x2a000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ANDT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x22000001, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "ANDMT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x22000005, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "ANDST", CoreMeta11|CoreMeta12|CoreMeta21, - 0x2a000001, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "ANDSMT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x2a000005, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "AND", DspMeta21, - 0x20000100, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1 }, - { "AND", CoreMeta11|CoreMeta12|CoreMeta21, - 0x26000020, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - { "ANDS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x2e000020, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - { "ANDQ", CoreMeta11|CoreMeta12|CoreMeta21, - 0x26000021, 0xfe000021, INSN_GP, ENC_ALU, GP_ARGS_QR }, - { "ANDSQ", CoreMeta11|CoreMeta12|CoreMeta21, - 0x2e000021, 0xfe000021, INSN_GP, ENC_ALU, GP_ARGS_QR }, - { "ANDQ", DspMeta21, - 0x20000140, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_QR }, - COND_INSN ("ANDQ", "", 1, DspMeta21, - 0x240001c0, 0xfe0001de, INSN_DSP, ENC_DALU, - DSP_ARGS_1|DSP_ARGS_QR), - COND_INSN ("AND", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x24000000, 0xfe00001e, INSN_GP, ENC_ALU, 0), - { "ANDSQ", DspMeta21, - 0x28000140, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_QR }, - COND_INSN ("ANDSQ", "", 1, DspMeta21, - 0x2c0001c0, 0xfe0001de, INSN_DSP, ENC_DALU, - DSP_ARGS_1|DSP_ARGS_QR), - COND_INSN ("ANDS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x2c000000, 0xfe00001e, INSN_GP, ENC_ALU, 0), - COND_INSN ("AND", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x26000000, 0xfe00003f, INSN_GP, ENC_ALU, 0), - COND_INSN ("ANDS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x2e000000, 0xfe00003f, INSN_GP, ENC_ALU, 0), - COND_INSN ("ANDQ", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x26000001, 0xfe00003f, INSN_GP, ENC_ALU, GP_ARGS_QR), - COND_INSN ("ANDSQ", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x2e000001, 0xfe00003f, INSN_GP, ENC_ALU, GP_ARGS_QR), - { "OR", CoreMeta11|CoreMeta12|CoreMeta21, - 0x30000000, 0xfe0001fe, INSN_GP, ENC_ALU, 0 }, - { "ORS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x38000000, 0xfe0001fe, INSN_GP, ENC_ALU, 0 }, - { "ORQ", CoreMeta11|CoreMeta12|CoreMeta21, - 0x30000040, 0xfe00017e, INSN_GP, ENC_ALU, GP_ARGS_QR }, - { "ORSQ", CoreMeta11|CoreMeta12|CoreMeta21, - 0x38000040, 0xfe00017e, INSN_GP, ENC_ALU, GP_ARGS_QR }, - { "OR", CoreMeta11|CoreMeta12|CoreMeta21, - 0x32000000, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ORMB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x32000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ORS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x3a000000, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ORSMB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x3a000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "ORT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x32000001, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "ORMT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x32000005, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "ORST", CoreMeta11|CoreMeta12|CoreMeta21, - 0x3a000001, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "ORSMT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x3a000005, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "OR", CoreMeta11|CoreMeta12|CoreMeta21, - 0x36000020, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - { "ORS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x3e000020, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - { "ORQ", CoreMeta11|CoreMeta12|CoreMeta21, - 0x36000021, 0xfe000021, INSN_GP, ENC_ALU, GP_ARGS_QR }, - { "ORSQ", CoreMeta11|CoreMeta12|CoreMeta21, - 0x3e000021, 0xfe000021, INSN_GP, ENC_ALU, GP_ARGS_QR }, - { "ORQ", DspMeta21, - 0x30000140, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_QR }, - COND_INSN ("ORQ", "", 1, DspMeta21, - 0x340001c0, 0xfe0001de, INSN_DSP, ENC_DALU, - DSP_ARGS_1|DSP_ARGS_QR), - COND_INSN ("OR", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x34000000, 0xfe00001e, INSN_GP, ENC_ALU, 0), - { "ORSQ", DspMeta21, - 0x38000140, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_QR }, - COND_INSN ("ORSQ", "", 1, DspMeta21, - 0x3c0001c0, 0xfe0001de, INSN_DSP, ENC_DALU, - DSP_ARGS_1|DSP_ARGS_QR), - COND_INSN ("ORS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x3c000000, 0xfe00001e, INSN_GP, ENC_ALU, 0), - COND_INSN ("OR", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x36000000, 0xfe00003f, INSN_GP, ENC_ALU, 0), - COND_INSN ("ORS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x3e000000, 0xfe00003f, INSN_GP, ENC_ALU, 0), - COND_INSN ("ORQ", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x36000001, 0xfe00003f, INSN_GP, ENC_ALU, GP_ARGS_QR), - COND_INSN ("ORSQ", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x3e000001, 0xfe00003f, INSN_GP, ENC_ALU, GP_ARGS_QR), - { "XOR", CoreMeta11|CoreMeta12|CoreMeta21, - 0x40000000, 0xfe0001fe, INSN_GP, ENC_ALU, 0 }, - { "XORS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x48000000, 0xfe0001fe, INSN_GP, ENC_ALU, 0 }, - { "XORQ", CoreMeta11|CoreMeta12|CoreMeta21, - 0x40000040, 0xfe00017e, INSN_GP, ENC_ALU, GP_ARGS_QR }, - { "XORSQ", CoreMeta11|CoreMeta12|CoreMeta21, - 0x48000040, 0xfe00017e, INSN_GP, ENC_ALU, GP_ARGS_QR }, - { "XOR", CoreMeta11|CoreMeta12|CoreMeta21, - 0x42000000, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "XORMB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x42000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "XORS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x4a000000, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "XORSMB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x4a000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "XORT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x42000001, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "XORMT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x42000005, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "XORST", CoreMeta11|CoreMeta12|CoreMeta21, - 0x4a000001, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "XORSMT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x4a000005, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "XOR", CoreMeta11|CoreMeta12|CoreMeta21, - 0x46000020, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - { "XORS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x4e000020, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - { "XORQ", CoreMeta11|CoreMeta12|CoreMeta21, - 0x46000021, 0xfe000021, INSN_GP, ENC_ALU, GP_ARGS_QR }, - { "XORSQ", CoreMeta11|CoreMeta12|CoreMeta21, - 0x4e000021, 0xfe000021, INSN_GP, ENC_ALU, GP_ARGS_QR }, - { "XORQ", DspMeta21, - 0x40000140, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_QR }, - COND_INSN ("XORQ", "", 1, DspMeta21, - 0x440001c0, 0xfe0001de, INSN_DSP, ENC_DALU, - DSP_ARGS_1|DSP_ARGS_QR), - COND_INSN ("XOR", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x44000000, 0xfe00001e, INSN_GP, ENC_ALU, 0), - { "XORSQ", DspMeta21, - 0x48000140, 0xfe000140, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_QR }, - COND_INSN ("XORSQ", "", 1, DspMeta21, - 0x4c0001c0, 0xfe0001de, INSN_DSP, ENC_DALU, - DSP_ARGS_1|DSP_ARGS_QR), - COND_INSN ("XORS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x4c000000, 0xfe00001e, INSN_GP, ENC_ALU, 0), - COND_INSN ("XOR", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x46000000, 0xfe00003f, INSN_GP, ENC_ALU, 0), - COND_INSN ("XORS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x4e000000, 0xfe00003f, INSN_GP, ENC_ALU, 0), - COND_INSN ("XORQ", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x46000001, 0xfe00003f, INSN_GP, ENC_ALU, GP_ARGS_QR), - COND_INSN ("XORSQ", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x4e000001, 0xfe00003f, INSN_GP, ENC_ALU, GP_ARGS_QR), - { "LSL", CoreMeta11|CoreMeta12|CoreMeta21, - 0x50000000, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0 }, - { "LSL", CoreMeta11|CoreMeta12|CoreMeta21, - 0x54000020, 0xfc0001e0, INSN_GP, ENC_SHIFT, 0 }, - COND_INSN ("LSL", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x54000000, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0), - { "LSLS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x58000000, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0 }, - { "LSLS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x5c000020, 0xfc0001e0, INSN_GP, ENC_SHIFT, 0 }, - COND_INSN ("LSLS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x5c000000, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0), - { "LSR", CoreMeta11|CoreMeta12|CoreMeta21, - 0x50000040, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0 }, - { "LSR", CoreMeta11|CoreMeta12|CoreMeta21, - 0x54000060, 0xfc0001e0, INSN_GP, ENC_SHIFT, 0 }, - COND_INSN ("LSR", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x54000040, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0), - { "LSRS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x58000040, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0 }, - { "LSRS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x5c000060, 0xfc0001e0, INSN_GP, ENC_SHIFT, 0 }, - COND_INSN ("LSRS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x5c000040, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0), - { "ASL", CoreMeta11|CoreMeta12|CoreMeta21, - 0x50000080, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0 }, - { "ASL", CoreMeta11|CoreMeta12|CoreMeta21, - 0x540000a0, 0xfc0001e0, INSN_GP, ENC_SHIFT, 0 }, - COND_INSN ("ASL", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x54000080, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0), - { "ASLS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x58000080, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0 }, - { "ASLS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x5c0000a0, 0xfc0001e0, INSN_GP, ENC_SHIFT, 0 }, - COND_INSN ("ASLS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x5c000080, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0), - { "ASR", CoreMeta11|CoreMeta12|CoreMeta21, - 0x500000c0, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0 }, - { "ASR", CoreMeta11|CoreMeta12|CoreMeta21, - 0x540000e0, 0xfc0001e0, INSN_GP, ENC_SHIFT, 0 }, - COND_INSN ("ASR", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x540000c0, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0), - { "ASRS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x580000c0, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0 }, - { "ASRS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x5c0000e0, 0xfc0001e0, INSN_GP, ENC_SHIFT, 0 }, - COND_INSN ("ASRS", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x5c0000c0, 0xfc0001ff, INSN_GP, ENC_SHIFT, 0), - { "MULW", CoreMeta11|CoreMeta12|CoreMeta21, - 0x60000000, 0xfe0001fe, INSN_GP, ENC_ALU, 0 }, - { "MULD", CoreMeta11|CoreMeta12|CoreMeta21, - 0x60000040, 0xfe0001fe, INSN_GP, ENC_ALU, 0 }, - /* MUL is a synonym from MULD. */ - { "MUL", CoreMeta11|CoreMeta12|CoreMeta21, - 0x60000040, 0xfe0001fe, INSN_GP, ENC_ALU, 0 }, - { "MULW", CoreMeta11|CoreMeta12|CoreMeta21, - 0x62000000, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "MULD", CoreMeta11|CoreMeta12|CoreMeta21, - 0x62000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "MUL", CoreMeta11|CoreMeta12|CoreMeta21, - 0x62000004, 0xfe000005, INSN_GP, ENC_ALU, 0 }, - { "MULWT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x62000001, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "MULDT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x62000005, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "MULT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x62000005, 0xfe000007, INSN_GP, ENC_ALU, 0 }, - { "MULW", CoreMeta11|CoreMeta12|CoreMeta21, - 0x64000020, 0xfe0001e0, INSN_GP, ENC_ALU, 0 }, - { "MULD", CoreMeta11|CoreMeta12|CoreMeta21, - 0x64000060, 0xfe0001e0, INSN_GP, ENC_ALU, 0 }, - { "MUL", CoreMeta11|CoreMeta12|CoreMeta21, - 0x64000060, 0xfe0001e0, INSN_GP, ENC_ALU, 0 }, - { "MULW", CoreMeta11|CoreMeta12|CoreMeta21, - 0x66000020, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - { "MULD", CoreMeta11|CoreMeta12|CoreMeta21, - 0x66000021, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - { "MUL", CoreMeta11|CoreMeta12|CoreMeta21, - 0x66000021, 0xfe000021, INSN_GP, ENC_ALU, 0 }, - COND_INSN ("MULW", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x64000000, 0xfe0001fe, INSN_GP, ENC_ALU, 0), - COND_INSN ("MULD", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x64000040, 0xfe0001fe, INSN_GP, ENC_ALU, 0), - COND_INSN ("MUL", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x64000040, 0xfe0001fe, INSN_GP, ENC_ALU, 0), - COND_INSN ("MULW", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x66000000, 0xfe00003f, INSN_GP, ENC_ALU, 0), - COND_INSN ("MULD", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x66000001, 0xfe00003f, INSN_GP, ENC_ALU, 0), - COND_INSN ("MUL", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x66000001, 0xfe00003f, INSN_GP, ENC_ALU, 0), - { "MIN", CoreMeta11|CoreMeta12|CoreMeta21, - 0x70000020, 0xfe0001ff, INSN_GP, ENC_MIN_MAX, 0 }, - { "MAX", CoreMeta11|CoreMeta12|CoreMeta21, - 0x70000024, 0xfe0001ff, INSN_GP, ENC_MIN_MAX, 0 }, - { "FFB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x70000004, 0xfe003fff, INSN_GP, ENC_BITOP, 0 }, - { "NORM", CoreMeta11|CoreMeta12|CoreMeta21, - 0x70000008, 0xfe003fff, INSN_GP, ENC_BITOP, 0 }, - { "ABS", CoreMeta11|CoreMeta12|CoreMeta21, - 0x70000028, 0xfe003fff, INSN_GP, ENC_BITOP, 0 }, - { "XSDB", CoreMeta11|CoreMeta12|CoreMeta21, - 0xaa000000, 0xff003ffe, INSN_GP, ENC_BITOP, 0 }, - { "XSDSB", CoreMeta11|CoreMeta12|CoreMeta21, - 0xaa000008, 0xff003ffe, INSN_GP, ENC_BITOP, 0 }, - { "XSDW", CoreMeta11|CoreMeta12|CoreMeta21, - 0xaa000002, 0xff003ffe, INSN_GP, ENC_BITOP, 0 }, - { "XSDSW", CoreMeta11|CoreMeta12|CoreMeta21, - 0xaa00000a, 0xff003ffe, INSN_GP, ENC_BITOP, 0 }, - { "RTDW", CoreMeta11|CoreMeta12|CoreMeta21, - 0xaa000006, 0xff003ffe, INSN_GP, ENC_BITOP, 0 }, - { "RTDSW", CoreMeta11|CoreMeta12|CoreMeta21, - 0xaa00000e, 0xff003ffe, INSN_GP, ENC_BITOP, 0 }, - { "NMIN", CoreMeta11|CoreMeta12|CoreMeta21, - 0x7000002c, 0xfe0001ff, INSN_GP, ENC_MIN_MAX, 0 }, - - /* Condition setting operations */ - { "CMP", CoreMeta11|CoreMeta12|CoreMeta21, - 0x70000000, 0xfef801fe, INSN_GP, ENC_CMP, 0 }, - { "TST", CoreMeta11|CoreMeta12|CoreMeta21, - 0x78000000, 0xfef801fe, INSN_GP, ENC_CMP, 0 }, - { "CMP", CoreMeta11|CoreMeta12|CoreMeta21, - 0x72000000, 0xfe000005, INSN_GP, ENC_CMP, 0 }, - { "CMPMB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x72000004, 0xfe000005, INSN_GP, ENC_CMP, 0 }, - { "TST", CoreMeta11|CoreMeta12|CoreMeta21, - 0x7a000000, 0xfe000005, INSN_GP, ENC_CMP, 0 }, - { "TSTMB", CoreMeta11|CoreMeta12|CoreMeta21, - 0x7a000004, 0xfe000005, INSN_GP, ENC_CMP, 0 }, - { "CMPT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x72000001, 0xfe000007, INSN_GP, ENC_CMP, 0 }, - { "CMPMT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x72000005, 0xfe000007, INSN_GP, ENC_CMP, 0 }, - { "TSTT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x7a000001, 0xfe000007, INSN_GP, ENC_CMP, 0 }, - { "TSTMT", CoreMeta11|CoreMeta12|CoreMeta21, - 0x7a000005, 0xfe000007, INSN_GP, ENC_CMP, 0 }, - COND_INSN ("CMP", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x74000000, 0xfef801fe, INSN_GP, ENC_CMP, 0), - COND_INSN ("TST", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x7c000000, 0xfef801fe, INSN_GP, ENC_CMP, 0), - COND_INSN ("CMP", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x76000000, 0xfef8003e, INSN_GP, ENC_CMP, 0), - COND_INSN ("TST", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0x7e000000, 0xfef8003e, INSN_GP, ENC_CMP, 0), - - /* No-op (BNV) */ - { "NOP", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa0fffffe, 0xffffffff, INSN_GP, ENC_NONE, 0 }, - - /* Branch */ - COND_INSN ("B", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0xa0000000, 0xff00001f, INSN_GP, ENC_BRANCH, 0), - COND_INSN ("B", "R", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0xa0000001, 0xff00001f, INSN_GP, ENC_BRANCH, 0), - - /* System operations */ - { "LOCK0", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa8000000, 0xffffffff, INSN_GP, ENC_NONE, 0 }, - { "LOCK1", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa8000001, 0xffffffff, INSN_GP, ENC_NONE, 0 }, - { "LOCK2", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa8000003, 0xffffffff, INSN_GP, ENC_NONE, 0 }, - { "RTI", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa3ffffff, 0xffffffff, INSN_GP, ENC_NONE, 0 }, - { "RTH", CoreMeta11|CoreMeta12|CoreMeta21, - 0xa37fffff, 0xffffffff, INSN_GP, ENC_NONE, 0 }, - COND_INSN ("KICK", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0xa3000001, 0xff003e1f, INSN_GP, ENC_KICK, 0), - { "SWITCH", CoreMeta11|CoreMeta12|CoreMeta21, - 0xaf000000, 0xff000000, INSN_GP, ENC_SWITCH, 0 }, - { "DCACHE", CoreMeta11|CoreMeta12|CoreMeta21, - 0xad000000, 0xff000087, INSN_GP, ENC_CACHEW, 0 }, - { "ICACHEEXIT", CoreMeta12|CoreMeta21, - 0xae000000, 0xffffffff, INSN_GP, ENC_NONE, 0 }, - { "ICACHEEXITR", CoreMeta12|CoreMeta21, - 0xae000001, 0xffffffff, INSN_GP, ENC_NONE, 0 }, - { "ICACHE", CoreMeta12|CoreMeta21, - 0xae000000, 0xff0001e1, INSN_GP, ENC_ICACHE, 0 }, - { "ICACHER", CoreMeta12|CoreMeta21, - 0xae000001, 0xff0001e1, INSN_GP, ENC_ICACHE, 0 }, - - /* Meta 2 instructions */ - { "CACHERD", CoreMeta21, - 0xad000081, 0xff000087, INSN_GP, ENC_CACHER, 0 }, - { "CACHERL", CoreMeta21, - 0xad000083, 0xff000087, INSN_GP, ENC_CACHER, 0 }, - { "CACHEWD", CoreMeta21, - 0xad000001, 0xff000087, INSN_GP, ENC_CACHEW, 0 }, - { "CACHEWL", CoreMeta21, - 0xad000003, 0xff000087, INSN_GP, ENC_CACHEW, 0 }, - COND_INSN ("DEFR", "", 1, CoreMeta21, - 0xa3002001, 0xff003e1f, INSN_GP, ENC_KICK, 0), - { "BEXD", CoreMeta21, - 0xaa000004, 0xff003ffe, INSN_GP, ENC_BITOP, 0 }, - { "BEXSD", CoreMeta21, - 0xaa00000c, 0xff003ffe, INSN_GP, ENC_BITOP, 0 }, - { "BEXL", CoreMeta21, - 0xaa000014, 0xff003ffe, INSN_GP, ENC_BITOP, 0 }, - { "BEXSL", CoreMeta21, - 0xaa00001c, 0xff003ffe, INSN_GP, ENC_BITOP, 0 }, - { "LNKGETB", CoreMeta21, - 0xad000080, 0xff000087, INSN_GP, ENC_LNKGET, 0 }, - { "LNKGETW", CoreMeta21, - 0xad000082, 0xff000087, INSN_GP, ENC_LNKGET, 0 }, - { "LNKGETD", CoreMeta21, - 0xad000084, 0xff000087, INSN_GP, ENC_LNKGET, 0 }, - { "LNKGETL", CoreMeta21, - 0xad000086, 0xff000087, INSN_GP, ENC_LNKGET, 0 }, - COND_INSN ("LNKSETB", "", 1, CoreMeta21, - 0xa4000080, 0xff00039f, INSN_GP, ENC_COND_SET, 0), - COND_INSN ("LNKSETW", "", 1, CoreMeta21, - 0xa4000081, 0xff00039f, INSN_GP, ENC_COND_SET, 0), - COND_INSN ("LNKSETD", "", 1, CoreMeta21, - 0xa4000280, 0xff00039f, INSN_GP, ENC_COND_SET, 0), - COND_INSN ("LNKSETL", "", 1, CoreMeta21, - 0xa4000281, 0xff00039f, INSN_GP, ENC_COND_SET, 0), - - /* Meta 2 FPU instructions */ - - /* Port-to-unit MOV */ - COND_INSN ("MOVL", "", 1, FpuMeta21, - 0xa1800201, 0xfff83e1f, INSN_FPU, ENC_MOV_PORT, 0), - - /* Read pipeline drain */ - { "MMOVD", FpuMeta21, - 0xce000006, 0xfffc007f, INSN_FPU, ENC_MMOV, 0 }, - { "MMOVL", FpuMeta21, - 0xcf000006, 0xfffc007f, INSN_FPU, ENC_MMOV, 0 }, - - /* FP data movement instructions */ - FCOND_INSN ("ABS", "", 1, FpuMeta21, - 0xf0000080, 0xff843f9f, INSN_FPU, ENC_FMOV, 0), - { "MMOVD", FpuMeta21, - 0xbe000002, 0xff84007e, INSN_FPU, ENC_FMMOV, 0 }, - { "MMOVL", FpuMeta21, - 0xbf000002, 0xff84007e, INSN_FPU, ENC_FMMOV, 0 }, - { "MMOVD", FpuMeta21, - 0xce000002, 0xff84007e, INSN_FPU, ENC_FMMOV, 0 }, - { "MMOVL", FpuMeta21, - 0xcf000002, 0xff84007e, INSN_FPU, ENC_FMMOV, 0 }, - { "MOVD", FpuMeta21, - 0x08000144, 0xfe03e1ff, INSN_FPU, ENC_FMOV_DATA, 0 }, - { "MOVD", FpuMeta21, - 0x080001c4, 0xfe83c1ff, INSN_FPU, ENC_FMOV_DATA, 0 }, - { "MOVL", FpuMeta21, - 0x08000154, 0xfe03e1ff, INSN_FPU, ENC_FMOV_DATA, 0 }, - { "MOVL", FpuMeta21, - 0x080001d4, 0xfe83c1ff, INSN_FPU, ENC_FMOV_DATA, 0 }, - FCOND_INSN ("MOV", "", 1, FpuMeta21, - 0xf0000000, 0xff843f9f, INSN_FPU, ENC_FMOV, 0), - { "MOV", FpuMeta21, - 0xf0000001, 0xff800001, INSN_FPU, ENC_FMOV_I, 0 }, - FCOND_INSN ("NEG", "", 1, FpuMeta21, - 0xf0000100, 0xff843f9f, INSN_FPU, ENC_FMOV, 0), - { "PACK", FpuMeta21, - 0xf0000180, 0xff8c21ff, INSN_FPU, ENC_FPACK, 0 }, - { "SWAP", FpuMeta21, - 0xf00001c0, 0xff8c7fff, INSN_FPU, ENC_FSWAP, 0 }, - - /* FP comparison instructions */ - FCOND_INSN ("CMP", "", 1, FpuMeta21, - 0xf3000000, 0xfff4201f, INSN_FPU, ENC_FCMP, 0), - FCOND_INSN ("MAX", "", 1, FpuMeta21, - 0xf3000081, 0xff84219f, INSN_FPU, ENC_FMINMAX, 0), - FCOND_INSN ("MIN", "", 1, FpuMeta21, - 0xf3000001, 0xff84219f, INSN_FPU, ENC_FMINMAX, 0), - - /* FP data conversion instructions */ - FCOND_INSN ("DTOF", "", 1, FpuMeta21, - 0xf2000121, 0xff843fff, INSN_FPU, ENC_FCONV, 0), - FCOND_INSN ("FTOD", "", 1, FpuMeta21, - 0xf2000101, 0xff843fff, INSN_FPU, ENC_FCONV, 0), - FCOND_INSN ("DTOH", "", 1, FpuMeta21, - 0xf2000320, 0xff843fff, INSN_FPU, ENC_FCONV, 0), - FCOND_INSN ("FTOH", "", 1, FpuMeta21, - 0xf2000300, 0xff843fbf, INSN_FPU, ENC_FCONV, 0), - FCOND_INSN ("DTOI", "", 1, FpuMeta21, - 0xf2002120, 0xff842fff, INSN_FPU, ENC_FCONV, 0), - FCOND_INSN ("FTOI", "", 1, FpuMeta21, - 0xf2002100, 0xff842fbf, INSN_FPU, ENC_FCONV, 0), - FCOND_INSN ("DTOL", "", 1, FpuMeta21, - 0xf2002320, 0xff8c6fff, INSN_FPU, ENC_FCONV, 0), - - FCOND_INSN ("DTOX", "", 1, FpuMeta21, - 0xf2000020, 0xff8401bf, INSN_FPU, ENC_FCONVX, 0), - FCOND_INSN ("FTOX", "", 1, FpuMeta21, - 0xf2000000, 0xff8401bf, INSN_FPU, ENC_FCONVX, 0), - FCOND_INSN ("DTOXL", "", 1, FpuMeta21, - 0xf20000a0, 0xff8c40ff, INSN_FPU, ENC_FCONVX, 0), - - FCOND_INSN ("HTOD", "", 1, FpuMeta21, - 0xf2000321, 0xff843fff, INSN_FPU, ENC_FCONV, 0), - FCOND_INSN ("HTOF", "", 1, FpuMeta21, - 0xf2000301, 0xff843fbf, INSN_FPU, ENC_FCONV, 0), - FCOND_INSN ("ITOD", "", 1, FpuMeta21, - 0xf2002121, 0xff843fff, INSN_FPU, ENC_FCONV, 0), - FCOND_INSN ("ITOF", "", 1, FpuMeta21, - 0xf2002101, 0xff843fbf, INSN_FPU, ENC_FCONV, 0), - FCOND_INSN ("LTOD", "", 1, FpuMeta21, - 0xf2002321, 0xff8c7fff, INSN_FPU, ENC_FCONV, 0), - - FCOND_INSN ("XTOD", "", 1, FpuMeta21, - 0xf2000021, 0xff8401bf, INSN_FPU, ENC_FCONVX, 0), - FCOND_INSN ("XTOF", "", 1, FpuMeta21, - 0xf2000001, 0xff8401bf, INSN_FPU, ENC_FCONVX, 0), - FCOND_INSN ("XLTOD", "", 1, FpuMeta21, - 0xf20000a1, 0xff8c40ff, INSN_FPU, ENC_FCONVX, 0), - - /* FP basic arithmetic instructions */ - FCOND_INSN ("ADD", "", 1, FpuMeta21, - 0xf1000001, 0xff84211f, INSN_FPU, ENC_FBARITH, 0), - FCOND_INSN ("MUL", "", 1, FpuMeta21, - 0xf1000100, 0xff84211f, INSN_FPU, ENC_FBARITH, 0), - FCOND_INSN ("SUB", "", 1, FpuMeta21, - 0xf1000101, 0xff84211f, INSN_FPU, ENC_FBARITH, 0), - - /* FP extended arithmetic instructions */ - { "MAC", FpuMeta21, - 0xf6000000, 0xfffc219f, INSN_FPU, ENC_FEARITH, 0 }, - { "MACS", FpuMeta21, - 0xf6000100, 0xfffc219f, INSN_FPU, ENC_FEARITH, 0 }, - - { "MAR", FpuMeta21, - 0xf6000004, 0xff84211f, INSN_FPU, ENC_FEARITH, 0 }, - { "MARS", FpuMeta21, - 0xf6000104, 0xff84211f, INSN_FPU, ENC_FEARITH, 0 }, - - { "MAW", FpuMeta21, - 0xf6000008, 0xff84219f, INSN_FPU, ENC_FEARITH, 0 }, - { "MAWS", FpuMeta21, - 0xf6000108, 0xff84219f, INSN_FPU, ENC_FEARITH, 0 }, - { "MAW1", FpuMeta21, - 0xf6000009, 0xff84219f, INSN_FPU, ENC_FEARITH, 0 }, - { "MAWS1", FpuMeta21, - 0xf6000109, 0xff84219f, INSN_FPU, ENC_FEARITH, 0 }, - - FCOND_INSN ("MXA", "", 1, FpuMeta21, - 0xf5000000, 0xff84211f, INSN_FPU, ENC_FEARITH, 0), - FCOND_INSN ("MXAS", "", 1, FpuMeta21, - 0xf5000100, 0xff84211f, INSN_FPU, ENC_FEARITH, 0), - FCOND_INSN ("MXA1", "", 1, FpuMeta21, - 0xf5000001, 0xff84211f, INSN_FPU, ENC_FEARITH, 0), - FCOND_INSN ("MXAS1", "", 1, FpuMeta21, - 0xf5000101, 0xff84211f, INSN_FPU, ENC_FEARITH, 0), - - { "MUZ", FpuMeta21, - 0xf6000010, 0xff84211d, INSN_FPU, ENC_FEARITH, 0 }, - { "MUZS", FpuMeta21, - 0xf6000110, 0xff84211d, INSN_FPU, ENC_FEARITH, 0 }, - { "MUZ1", FpuMeta21, - 0xf6000011, 0xff84211d, INSN_FPU, ENC_FEARITH, 0 }, - { "MUZS1", FpuMeta21, - 0xf6000111, 0xff84211d, INSN_FPU, ENC_FEARITH, 0 }, - - { "RCP", FpuMeta21, - 0xf7000000, 0xff84391f, INSN_FPU, ENC_FREC, 0 }, - { "RSQ", FpuMeta21, - 0xf7000100, 0xff84391f, INSN_FPU, ENC_FREC, 0 }, - - /* FP SIMD arithmetic instructions */ - { "ADDRE", FpuMeta21, - 0xf4000000, 0xff8c637f, INSN_FPU, ENC_FSIMD, 0 }, - { "MULRE", FpuMeta21, - 0xf4000001, 0xff8c637f, INSN_FPU, ENC_FSIMD, 0 }, - { "SUBRE", FpuMeta21, - 0xf4000100, 0xff8c637f, INSN_FPU, ENC_FSIMD, 0 }, - - /* FP memory instructions */ - { "MGETD", FpuMeta21, - 0xce000000, 0xff00001f, INSN_FPU, ENC_MGET_MSET, 0 }, - { "MGET", FpuMeta21, - 0xce000000, 0xff00001f, INSN_FPU, ENC_MGET_MSET, 0 }, - { "MGETL", FpuMeta21, - 0xcf000000, 0xff00001f, INSN_FPU, ENC_MGET_MSET, 0 }, - - { "MSETD", FpuMeta21, - 0xbe000000, 0xff00001f, INSN_FPU, ENC_MGET_MSET, 0 }, - { "MSET", FpuMeta21, - 0xbe000000, 0xff00001f, INSN_FPU, ENC_MGET_MSET, 0 }, - { "MSETL", FpuMeta21, - 0xbf000000, 0xff00001f, INSN_FPU, ENC_MGET_MSET, 0 }, - - /* FP accumulator memory instructions */ - { "GETL", FpuMeta21, - 0xcf000004, 0xffe03f9f, INSN_FPU, ENC_FGET_SET_ACF, 0 }, - { "SETL", FpuMeta21, - 0xbf000004, 0xffe03f9f, INSN_FPU, ENC_FGET_SET_ACF, 0 }, - - /* DSP FPU data movement */ - { "MOV", DspMeta21|FpuMeta21, - 0x08000146, 0xfe0001ee, INSN_DSP_FPU, ENC_DALU, - DSP_ARGS_2|DSP_ARGS_DSP_SRC1 }, - { "MOV", DspMeta21|FpuMeta21, - 0x080001c6, 0xfe0001ee, INSN_DSP_FPU, ENC_DALU, - DSP_ARGS_2|DSP_ARGS_DSP_SRC2 }, - - /* Unit-to-unit MOV */ - COND_INSN ("MOV", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0xa3000000, 0xff00021f, INSN_GP, ENC_MOV_U2U, 0), - COND_INSN ("TTMOV", "", 1, CoreMeta12|CoreMeta21, - 0xa3000201, 0xff00021f, INSN_GP, ENC_MOV_U2U, 0), - COND_INSN ("SWAP", "", 1, CoreMeta11|CoreMeta12|CoreMeta21, - 0xa3000200, 0xff00021f, INSN_GP, ENC_SWAP, 0), - - /* DSP memory instructions */ - { "GETD", DspMeta21, - 0x94000100, 0xff0001fc, INSN_DSP, ENC_DGET_SET, 0 }, - { "SETD", DspMeta21, - 0x94000000, 0xff0001fc, INSN_DSP, ENC_DGET_SET, 0 }, - { "GETL", DspMeta21, - 0x94000104, 0xff0001fc, INSN_DSP, ENC_DGET_SET, 0 }, - { "SETL", DspMeta21, - 0x94000004, 0xff0001fc, INSN_DSP, ENC_DGET_SET, 0 }, - - /* DSP read pipeline prime/drain */ - { "MMOVD", DspMeta21, - 0xca000001, 0xff00001f, INSN_DSP, ENC_MMOV, 0 }, - { "MMOVL", DspMeta21, - 0xcb000001, 0xff00001f, INSN_DSP, ENC_MMOV, 0 }, - { "MMOVD", DspMeta21, - 0xcc000001, 0xff07c067, INSN_DSP, ENC_MMOV, 0 }, - { "MMOVL", DspMeta21, - 0xcd000001, 0xff07c067, INSN_DSP, ENC_MMOV, 0 }, - - /* DSP Template instantiation */ - TEMPLATE_INSN (DspMeta21, 0x90000000, 0xff00000f, INSN_DSP), - TEMPLATE_INSN (DspMeta21, 0x93000000, 0xff0001ff, INSN_DSP), - TEMPLATE_INSN (DspMeta21, 0x95000000, 0xff00000f, INSN_DSP), - - { "AND", DspMeta21, - 0x22000003, 0xfe000003, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_IMM }, - { "ANDS", DspMeta21, - 0x28000100, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1 }, - { "ANDS", DspMeta21, - 0x2a000003, 0xfe000003, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_IMM }, - { "MAX", DspMeta21, - 0x70000124, 0xfe0001ec, INSN_DSP, ENC_DALU, DSP_ARGS_1 }, - { "MIN", DspMeta21, - 0x70000120, 0xfe0001ec, INSN_DSP, ENC_DALU, DSP_ARGS_1 }, - { "NMIN", DspMeta21, - 0x7000012c, 0xfe0001ec, INSN_DSP, ENC_DALU, DSP_ARGS_1 }, - { "OR", DspMeta21, - 0x30000100, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1 }, - { "OR", DspMeta21, - 0x32000003, 0xfe000003, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_IMM }, - { "ORS", DspMeta21, - 0x38000100, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1 }, - { "ORS", DspMeta21, - 0x3a000003, 0xfe000003, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_IMM }, - { "XOR", DspMeta21, - 0x40000100, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1 }, - { "XOR", DspMeta21, - 0x42000003, 0xfe000003, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_IMM }, - { "XORS", DspMeta21, - 0x48000100, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1 }, - { "XORS", DspMeta21, - 0x4a000003, 0xfe000003, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_IMM }, - { "ADDB8", DspMeta21, - 0x20000108, 0xfe00010c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_SPLIT8 }, - { "ADDT8", DspMeta21, - 0x2000010c, 0xfe00010c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_SPLIT8 }, - { "ADDSB8", DspMeta21, - 0x28000108, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_SPLIT8 }, - { "ADDST8", DspMeta21, - 0x2800010c, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_SPLIT8 }, - { "MULB8", DspMeta21, - 0x40000108, 0xfe00012c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_SPLIT8 }, - { "MULT8", DspMeta21, - 0x4000010c, 0xfe00012c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_SPLIT8 }, - { "MULSB8", DspMeta21, - 0x48000108, 0xfe00012c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_SPLIT8 }, - { "MULST8", DspMeta21, - 0x4800010c, 0xfe00012c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_SPLIT8 }, - { "SUBB8", DspMeta21, - 0x30000108, 0xfe00010c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_SPLIT8 }, - { "SUBT8", DspMeta21, - 0x3000010c, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_SPLIT8 }, - { "SUBSB8", DspMeta21, - 0x38000108, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_SPLIT8 }, - { "SUBST8", DspMeta21, - 0x3800010c, 0xfe00014c, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_SPLIT8 }, - { "MUL", DspMeta21, - 0x60000100, 0xfe000100, INSN_DSP, ENC_DALU, - DSP_ARGS_1|DSP_ARGS_DACC }, - { "MUL", DspMeta21, - 0x62000003, 0xfe000003, INSN_DSP, ENC_DALU, DSP_ARGS_1|DSP_ARGS_IMM }, - { "ABS", DspMeta21, - 0x70000128, 0xfe0001ec, INSN_DSP, ENC_DALU, DSP_ARGS_2 }, - { "FFB", DspMeta21, - 0x70000104, 0xfe0001ec, INSN_DSP, ENC_DALU, DSP_ARGS_2 }, - { "NORM", DspMeta21, - 0x70000108, 0xfe0001ec, INSN_DSP, ENC_DALU, DSP_ARGS_2 }, - { "CMP", DspMeta21, - 0x70000000, 0xfe0000ec, INSN_DSP, ENC_DALU, DSP_ARGS_2|DSP_ARGS_IMM }, - { "CMP", DspMeta21, - 0x72000003, 0xfe000003, INSN_DSP, ENC_DALU, DSP_ARGS_2|DSP_ARGS_IMM }, - { "TST", DspMeta21, - 0x78000100, 0xfe0001ec, INSN_DSP, ENC_DALU, DSP_ARGS_2|DSP_ARGS_IMM }, - { "TST", DspMeta21, - 0x7a000003, 0xfe000003, INSN_DSP, ENC_DALU, DSP_ARGS_2|DSP_ARGS_IMM }, - { "MOV", DspMeta21, - 0x00000104, 0xfe078146, INSN_DSP, ENC_DALU, - DSP_ARGS_2|DSP_ARGS_DSP_SRC1|DSP_ARGS_DSP_SRC2|DSP_ARGS_IMM }, - { "MOVS", DspMeta21, - 0x08000104, 0xfe000146, INSN_DSP, ENC_DALU, DSP_ARGS_2|DSP_ARGS_DSP_SRC2 }, - { "MOV", DspMeta21, - 0x91000000, 0xff000000, INSN_DSP, ENC_DALU, - DSP_ARGS_2|DSP_ARGS_DSP_SRC1|DSP_ARGS_IMM }, - { "MOV", DspMeta21, - 0x92000000, 0xff000000, INSN_DSP, ENC_DALU, DSP_ARGS_2|DSP_ARGS_DSP_SRC2 }, - { "NEG", DspMeta21, - 0x10000104, 0xfe000146, INSN_DSP, ENC_DALU, DSP_ARGS_2|DSP_ARGS_DSP_SRC2 }, - { "NEGS", DspMeta21, - 0x18000104, 0xfe000146, INSN_DSP, ENC_DALU, DSP_ARGS_2|DSP_ARGS_DSP_SRC2 }, - { "XSDB", DspMeta21, - 0xaa000100, 0xff0001ee, INSN_DSP, ENC_DALU, DSP_ARGS_2 }, - { "XSD", DspMeta21, - 0xaa000100, 0xff0001ee, INSN_DSP, ENC_DALU, DSP_ARGS_2 }, - { "XSDW", DspMeta21, - 0xaa000102, 0xff0001ee, INSN_DSP, ENC_DALU, DSP_ARGS_2 }, - { "XSDSB", DspMeta21, - 0xaa000108, 0xff0001ee, INSN_DSP, ENC_DALU, DSP_ARGS_2 }, - { "XSDS", DspMeta21, - 0xaa000108, 0xff0001ee, INSN_DSP, ENC_DALU, DSP_ARGS_2 }, - { "XSDSW", DspMeta21, - 0xaa00010a, 0xff0001ee, INSN_DSP, ENC_DALU, DSP_ARGS_2 }, - { "LSL", DspMeta21, - 0x50000100, 0xfc0001c0, INSN_DSP, ENC_DALU, 0 }, - { "LSR", DspMeta21, - 0x50000140, 0xfc0001c0, INSN_DSP, ENC_DALU, 0 }, - { "ASL", DspMeta21, - 0x50000180, 0xfc0001c0, INSN_DSP, ENC_DALU, 0 }, - { "ASR", DspMeta21, - 0x500001c0, 0xfc0001c0, INSN_DSP, ENC_DALU, 0 }, - { "LSL", DspMeta21, - 0x54000120, 0xfc0001e0, INSN_DSP, ENC_DALU, DSP_ARGS_IMM }, - { "LSR", DspMeta21, - 0x54000160, 0xfc0001e0, INSN_DSP, ENC_DALU, DSP_ARGS_IMM }, - { "ASL", DspMeta21, - 0x540001a0, 0xfc0001e0, INSN_DSP, ENC_DALU, DSP_ARGS_IMM }, - { "ASR", DspMeta21, - 0x540001e0, 0xfc0001e0, INSN_DSP, ENC_DALU, DSP_ARGS_IMM }, - COND_INSN ("LSL", "", 1, DspMeta21, - 0x54000100, 0xfc0001fe, INSN_DSP, ENC_DALU, 0), - COND_INSN ("LSR", "", 1, DspMeta21, - 0x54000140, 0xfc0001fe, INSN_DSP, ENC_DALU, 0), - COND_INSN ("ASL", "", 1, DspMeta21, - 0x54000180, 0xfc0001fe, INSN_DSP, ENC_DALU, 0), - COND_INSN ("ASR", "", 1, DspMeta21, - 0x540001c0, 0xfc0001fe, INSN_DSP, ENC_DALU, 0), - { "LSLS", DspMeta21, - 0x58000100, 0xfc0001c0, INSN_DSP, ENC_DALU, 0 }, - { "LSRS", DspMeta21, - 0x58000140, 0xfc0001c0, INSN_DSP, ENC_DALU, 0 }, - { "ASLS", DspMeta21, - 0x58000180, 0xfc0001c0, INSN_DSP, ENC_DALU, 0 }, - { "ASRS", DspMeta21, - 0x580001c0, 0xfc0001c0, INSN_DSP, ENC_DALU, 0 }, - COND_INSN ("LSLS", "", 1, DspMeta21, - 0x5c000100, 0xfc0001fe, INSN_DSP, ENC_DALU, 0), - COND_INSN ("LSRS", "", 1, DspMeta21, - 0x5c000140, 0xfc0001fe, INSN_DSP, ENC_DALU, 0), - COND_INSN ("ASLS", "", 1, DspMeta21, - 0x5c000180, 0xfc0001fe, INSN_DSP, ENC_DALU, 0), - COND_INSN ("ASRS", "", 1, DspMeta21, - 0x5c0001c0, 0xfc0001fe, INSN_DSP, ENC_DALU, 0), - { "LSLS", DspMeta21, - 0x5c000120, 0xfc0001e0, INSN_DSP, ENC_DALU, 0 }, - { "LSRS", DspMeta21, - 0x5c000160, 0xfc0001e0, INSN_DSP, ENC_DALU, 0 }, - { "ASLS", DspMeta21, - 0x5c0001a0, 0xfc0001e0, INSN_DSP, ENC_DALU, 0 }, - { "ASRS", DspMeta21, - 0x5c0001e0, 0xfc0001e0, INSN_DSP, ENC_DALU, 0 }, - { "RTDW", DspMeta21, - 0xaa000106, 0xff00010e, INSN_DSP, ENC_DALU, DSP_ARGS_2 }, - { "RTDSW", DspMeta21, - 0xaa00010e, 0xff00010e, INSN_DSP, ENC_DALU, DSP_ARGS_2 }, - }; - -#define UNIT_MASK 0xf -#define SHORT_UNIT_MASK 0x3 -#define EXT_BASE_REG_MASK 0x1 -#define REG_MASK 0x1f -#define CC_MASK 0xf -#define RMASK_MASK 0x7f -#define GET_SET_IMM_MASK 0x3f -#define GET_SET_IMM_BITS 6 -#define GET_SET_EXT_IMM_MASK 0xfff -#define GET_SET_EXT_IMM_BITS 12 -#define DGET_SET_IMM_MASK 0x3 -#define DGET_SET_IMM_BITS 2 -#define MGET_MSET_MAX_REGS 8 -#define MMOV_MAX_REGS 8 -#define IMM16_MASK 0xffff -#define IMM16_BITS 16 -#define IMM19_MASK 0x7ffff -#define IMM19_BITS 19 -#define IMM8_MASK 0xff -#define IMM8_BITS 8 -#define IMM24_MASK 0xffffff -#define IMM24_BITS 24 -#define IMM5_MASK 0x1f -#define IMM5_BITS 5 -#define IMM6_MASK 0x3f -#define IMM6_BITS 6 -#define IMM15_MASK 0x7fff -#define IMM15_BITS 15 -#define IMM4_MASK 0x1f -#define IMM4_BITS 4 -#define CALLR_REG_MASK 0x7 -#define CPC_REG_MASK 0xf -#define O2R_REG_MASK 0x7 -#define ACF_PART_MASK 0x3 -#define DSP_REG_MASK 0xf -#define DSP_PART_MASK 0x17 -#define TEMPLATE_NUM_REGS 4 -#define TEMPLATE_REGS_MASK 0xf - -#define IS_TEMPLATE_DEF(insn) (insn->dsp_daoppame_flags & DSP_DAOPPAME_TEMP) - -unsigned int metag_get_set_size_bytes (unsigned int opcode); -unsigned int metag_get_set_ext_size_bytes (unsigned int opcode); -unsigned int metag_cond_set_size_bytes (unsigned int opcode); diff --git a/include/opcode/mips.h b/include/opcode/mips.h deleted file mode 100644 index cb16d2a..0000000 --- a/include/opcode/mips.h +++ /dev/null @@ -1,2151 +0,0 @@ -/* mips.h. Mips opcode list for GDB, the GNU debugger. - Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, - 2003, 2004, 2005, 2008, 2009, 2010, 2013 - Free Software Foundation, Inc. - Contributed by Ralph Campbell and OSF - Commented and modified by Ian Lance Taylor, Cygnus Support - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _MIPS_H_ -#define _MIPS_H_ - -#include "bfd.h" - -/* These are bit masks and shift counts to use to access the various - fields of an instruction. To retrieve the X field of an - instruction, use the expression - (i >> OP_SH_X) & OP_MASK_X - To set the same field (to j), use - i = (i &~ (OP_MASK_X << OP_SH_X)) | (j << OP_SH_X) - - Make sure you use fields that are appropriate for the instruction, - of course. - - The 'i' format uses OP, RS, RT and IMMEDIATE. - - The 'j' format uses OP and TARGET. - - The 'r' format uses OP, RS, RT, RD, SHAMT and FUNCT. - - The 'b' format uses OP, RS, RT and DELTA. - - The floating point 'i' format uses OP, RS, RT and IMMEDIATE. - - The floating point 'r' format uses OP, FMT, FT, FS, FD and FUNCT. - - A breakpoint instruction uses OP, CODE and SPEC (10 bits of the - breakpoint instruction are not defined; Kane says the breakpoint - code field in BREAK is 20 bits; yet MIPS assemblers and debuggers - only use ten bits). An optional two-operand form of break/sdbbp - allows the lower ten bits to be set too, and MIPS32 and later - architectures allow 20 bits to be set with a signal operand - (using CODE20). - - The syscall instruction uses CODE20. - - The general coprocessor instructions use COPZ. */ - -#define OP_MASK_OP 0x3f -#define OP_SH_OP 26 -#define OP_MASK_RS 0x1f -#define OP_SH_RS 21 -#define OP_MASK_FR 0x1f -#define OP_SH_FR 21 -#define OP_MASK_FMT 0x1f -#define OP_SH_FMT 21 -#define OP_MASK_BCC 0x7 -#define OP_SH_BCC 18 -#define OP_MASK_CODE 0x3ff -#define OP_SH_CODE 16 -#define OP_MASK_CODE2 0x3ff -#define OP_SH_CODE2 6 -#define OP_MASK_RT 0x1f -#define OP_SH_RT 16 -#define OP_MASK_FT 0x1f -#define OP_SH_FT 16 -#define OP_MASK_CACHE 0x1f -#define OP_SH_CACHE 16 -#define OP_MASK_RD 0x1f -#define OP_SH_RD 11 -#define OP_MASK_FS 0x1f -#define OP_SH_FS 11 -#define OP_MASK_PREFX 0x1f -#define OP_SH_PREFX 11 -#define OP_MASK_CCC 0x7 -#define OP_SH_CCC 8 -#define OP_MASK_CODE20 0xfffff /* 20 bit syscall/breakpoint code. */ -#define OP_SH_CODE20 6 -#define OP_MASK_SHAMT 0x1f -#define OP_SH_SHAMT 6 -#define OP_MASK_EXTLSB OP_MASK_SHAMT -#define OP_SH_EXTLSB OP_SH_SHAMT -#define OP_MASK_STYPE OP_MASK_SHAMT -#define OP_SH_STYPE OP_SH_SHAMT -#define OP_MASK_FD 0x1f -#define OP_SH_FD 6 -#define OP_MASK_TARGET 0x3ffffff -#define OP_SH_TARGET 0 -#define OP_MASK_COPZ 0x1ffffff -#define OP_SH_COPZ 0 -#define OP_MASK_IMMEDIATE 0xffff -#define OP_SH_IMMEDIATE 0 -#define OP_MASK_DELTA 0xffff -#define OP_SH_DELTA 0 -#define OP_MASK_FUNCT 0x3f -#define OP_SH_FUNCT 0 -#define OP_MASK_SPEC 0x3f -#define OP_SH_SPEC 0 -#define OP_SH_LOCC 8 /* FP condition code. */ -#define OP_SH_HICC 18 /* FP condition code. */ -#define OP_MASK_CC 0x7 -#define OP_SH_COP1NORM 25 /* Normal COP1 encoding. */ -#define OP_MASK_COP1NORM 0x1 /* a single bit. */ -#define OP_SH_COP1SPEC 21 /* COP1 encodings. */ -#define OP_MASK_COP1SPEC 0xf -#define OP_MASK_COP1SCLR 0x4 -#define OP_MASK_COP1CMP 0x3 -#define OP_SH_COP1CMP 4 -#define OP_SH_FORMAT 21 /* FP short format field. */ -#define OP_MASK_FORMAT 0x7 -#define OP_SH_TRUE 16 -#define OP_MASK_TRUE 0x1 -#define OP_SH_GE 17 -#define OP_MASK_GE 0x01 -#define OP_SH_UNSIGNED 16 -#define OP_MASK_UNSIGNED 0x1 -#define OP_SH_HINT 16 -#define OP_MASK_HINT 0x1f -#define OP_SH_MMI 0 /* Multimedia (parallel) op. */ -#define OP_MASK_MMI 0x3f -#define OP_SH_MMISUB 6 -#define OP_MASK_MMISUB 0x1f -#define OP_MASK_PERFREG 0x1f /* Performance monitoring. */ -#define OP_SH_PERFREG 1 -#define OP_SH_SEL 0 /* Coprocessor select field. */ -#define OP_MASK_SEL 0x7 /* The sel field of mfcZ and mtcZ. */ -#define OP_SH_CODE19 6 /* 19 bit wait code. */ -#define OP_MASK_CODE19 0x7ffff -#define OP_SH_ALN 21 -#define OP_MASK_ALN 0x7 -#define OP_SH_VSEL 21 -#define OP_MASK_VSEL 0x1f -#define OP_MASK_VECBYTE 0x7 /* Selector field is really 4 bits, - but 0x8-0xf don't select bytes. */ -#define OP_SH_VECBYTE 22 -#define OP_MASK_VECALIGN 0x7 /* Vector byte-align (alni.ob) op. */ -#define OP_SH_VECALIGN 21 -#define OP_MASK_INSMSB 0x1f /* "ins" MSB. */ -#define OP_SH_INSMSB 11 -#define OP_MASK_EXTMSBD 0x1f /* "ext" MSBD. */ -#define OP_SH_EXTMSBD 11 - -/* MIPS DSP ASE */ -#define OP_SH_DSPACC 11 -#define OP_MASK_DSPACC 0x3 -#define OP_SH_DSPACC_S 21 -#define OP_MASK_DSPACC_S 0x3 -#define OP_SH_DSPSFT 20 -#define OP_MASK_DSPSFT 0x3f -#define OP_SH_DSPSFT_7 19 -#define OP_MASK_DSPSFT_7 0x7f -#define OP_SH_SA3 21 -#define OP_MASK_SA3 0x7 -#define OP_SH_SA4 21 -#define OP_MASK_SA4 0xf -#define OP_SH_IMM8 16 -#define OP_MASK_IMM8 0xff -#define OP_SH_IMM10 16 -#define OP_MASK_IMM10 0x3ff -#define OP_SH_WRDSP 11 -#define OP_MASK_WRDSP 0x3f -#define OP_SH_RDDSP 16 -#define OP_MASK_RDDSP 0x3f -#define OP_SH_BP 11 -#define OP_MASK_BP 0x3 - -/* MIPS MT ASE */ -#define OP_SH_MT_U 5 -#define OP_MASK_MT_U 0x1 -#define OP_SH_MT_H 4 -#define OP_MASK_MT_H 0x1 -#define OP_SH_MTACC_T 18 -#define OP_MASK_MTACC_T 0x3 -#define OP_SH_MTACC_D 13 -#define OP_MASK_MTACC_D 0x3 - -/* MIPS MCU ASE */ -#define OP_MASK_3BITPOS 0x7 -#define OP_SH_3BITPOS 12 -#define OP_MASK_OFFSET12 0xfff -#define OP_SH_OFFSET12 0 - -#define OP_OP_COP0 0x10 -#define OP_OP_COP1 0x11 -#define OP_OP_COP2 0x12 -#define OP_OP_COP3 0x13 -#define OP_OP_LWC1 0x31 -#define OP_OP_LWC2 0x32 -#define OP_OP_LWC3 0x33 /* a.k.a. pref */ -#define OP_OP_LDC1 0x35 -#define OP_OP_LDC2 0x36 -#define OP_OP_LDC3 0x37 /* a.k.a. ld */ -#define OP_OP_SWC1 0x39 -#define OP_OP_SWC2 0x3a -#define OP_OP_SWC3 0x3b -#define OP_OP_SDC1 0x3d -#define OP_OP_SDC2 0x3e -#define OP_OP_SDC3 0x3f /* a.k.a. sd */ - -/* MIPS VIRT ASE */ -#define OP_MASK_CODE10 0x3ff -#define OP_SH_CODE10 11 - -/* Values in the 'VSEL' field. */ -#define MDMX_FMTSEL_IMM_QH 0x1d -#define MDMX_FMTSEL_IMM_OB 0x1e -#define MDMX_FMTSEL_VEC_QH 0x15 -#define MDMX_FMTSEL_VEC_OB 0x16 - -/* UDI */ -#define OP_SH_UDI1 6 -#define OP_MASK_UDI1 0x1f -#define OP_SH_UDI2 6 -#define OP_MASK_UDI2 0x3ff -#define OP_SH_UDI3 6 -#define OP_MASK_UDI3 0x7fff -#define OP_SH_UDI4 6 -#define OP_MASK_UDI4 0xfffff - -/* Octeon */ -#define OP_SH_BBITIND 16 -#define OP_MASK_BBITIND 0x1f -#define OP_SH_CINSPOS 6 -#define OP_MASK_CINSPOS 0x1f -#define OP_SH_CINSLM1 11 -#define OP_MASK_CINSLM1 0x1f -#define OP_SH_SEQI 6 -#define OP_MASK_SEQI 0x3ff - -/* Loongson */ -#define OP_SH_OFFSET_A 6 -#define OP_MASK_OFFSET_A 0xff -#define OP_SH_OFFSET_B 3 -#define OP_MASK_OFFSET_B 0xff -#define OP_SH_OFFSET_C 6 -#define OP_MASK_OFFSET_C 0x1ff -#define OP_SH_RZ 0 -#define OP_MASK_RZ 0x1f -#define OP_SH_FZ 0 -#define OP_MASK_FZ 0x1f - -/* Every MICROMIPSOP_X definition requires a corresponding OP_X - definition, and vice versa. This simplifies various parts - of the operand handling in GAS. The fields below only exist - in the microMIPS encoding, so define each one to have an empty - range. */ -#define OP_MASK_TRAP 0 -#define OP_SH_TRAP 0 -#define OP_MASK_OFFSET10 0 -#define OP_SH_OFFSET10 0 -#define OP_MASK_RS3 0 -#define OP_SH_RS3 0 -#define OP_MASK_MB 0 -#define OP_SH_MB 0 -#define OP_MASK_MC 0 -#define OP_SH_MC 0 -#define OP_MASK_MD 0 -#define OP_SH_MD 0 -#define OP_MASK_ME 0 -#define OP_SH_ME 0 -#define OP_MASK_MF 0 -#define OP_SH_MF 0 -#define OP_MASK_MG 0 -#define OP_SH_MG 0 -#define OP_MASK_MH 0 -#define OP_SH_MH 0 -#define OP_MASK_MJ 0 -#define OP_SH_MJ 0 -#define OP_MASK_ML 0 -#define OP_SH_ML 0 -#define OP_MASK_MM 0 -#define OP_SH_MM 0 -#define OP_MASK_MN 0 -#define OP_SH_MN 0 -#define OP_MASK_MP 0 -#define OP_SH_MP 0 -#define OP_MASK_MQ 0 -#define OP_SH_MQ 0 -#define OP_MASK_IMMA 0 -#define OP_SH_IMMA 0 -#define OP_MASK_IMMB 0 -#define OP_SH_IMMB 0 -#define OP_MASK_IMMC 0 -#define OP_SH_IMMC 0 -#define OP_MASK_IMMF 0 -#define OP_SH_IMMF 0 -#define OP_MASK_IMMG 0 -#define OP_SH_IMMG 0 -#define OP_MASK_IMMH 0 -#define OP_SH_IMMH 0 -#define OP_MASK_IMMI 0 -#define OP_SH_IMMI 0 -#define OP_MASK_IMMJ 0 -#define OP_SH_IMMJ 0 -#define OP_MASK_IMML 0 -#define OP_SH_IMML 0 -#define OP_MASK_IMMM 0 -#define OP_SH_IMMM 0 -#define OP_MASK_IMMN 0 -#define OP_SH_IMMN 0 -#define OP_MASK_IMMO 0 -#define OP_SH_IMMO 0 -#define OP_MASK_IMMP 0 -#define OP_SH_IMMP 0 -#define OP_MASK_IMMQ 0 -#define OP_SH_IMMQ 0 -#define OP_MASK_IMMU 0 -#define OP_SH_IMMU 0 -#define OP_MASK_IMMW 0 -#define OP_SH_IMMW 0 -#define OP_MASK_IMMX 0 -#define OP_SH_IMMX 0 -#define OP_MASK_IMMY 0 -#define OP_SH_IMMY 0 - -/* Enhanced VA Scheme */ -#define OP_SH_EVAOFFSET 7 -#define OP_MASK_EVAOFFSET 0x1ff - -/* Enumerates the various types of MIPS operand. */ -enum mips_operand_type { - /* Described by mips_int_operand. */ - OP_INT, - - /* Described by mips_mapped_int_operand. */ - OP_MAPPED_INT, - - /* Described by mips_msb_operand. */ - OP_MSB, - - /* Described by mips_reg_operand. */ - OP_REG, - - /* Like OP_REG, but can be omitted if the register is the same as the - previous operand. */ - OP_OPTIONAL_REG, - - /* Described by mips_reg_pair_operand. */ - OP_REG_PAIR, - - /* Described by mips_pcrel_operand. */ - OP_PCREL, - - /* A performance register. The field is 5 bits in size, but the supported - values are much more restricted. */ - OP_PERF_REG, - - /* The final operand in a microMIPS ADDIUSP instruction. It mostly acts - as a normal 9-bit signed offset that is multiplied by four, but there - are four special cases: - - -2 * 4 => -258 * 4 - -1 * 4 => -257 * 4 - 0 * 4 => 256 * 4 - 1 * 4 => 257 * 4. */ - OP_ADDIUSP_INT, - - /* The target of a (D)CLO or (D)CLZ instruction. The operand spans two - 5-bit register fields, both of which must be set to the destination - register. */ - OP_CLO_CLZ_DEST, - - /* A register list for a microMIPS LWM or SWM instruction. The operand - size determines whether the 16-bit or 32-bit encoding is required. */ - OP_LWM_SWM_LIST, - - /* The register list for an emulated MIPS16 ENTRY or EXIT instruction. */ - OP_ENTRY_EXIT_LIST, - - /* The register list and frame size for a MIPS16 SAVE or RESTORE - instruction. */ - OP_SAVE_RESTORE_LIST, - - /* A 10-bit field VVVVVNNNNN used for octobyte and quadhalf instructions: - - V Meaning - ----- ------- - 0EEE0 8 copies of $vN[E], OB format - 0EE01 4 copies of $vN[E], QH format - 10110 all 8 elements of $vN, OB format - 10101 all 4 elements of $vN, QH format - 11110 8 copies of immediate N, OB format - 11101 4 copies of immediate N, QH format. */ - OP_MDMX_IMM_REG, - - /* A register operand that must match the destination register. */ - OP_REPEAT_DEST_REG, - - /* A register operand that must match the previous register. */ - OP_REPEAT_PREV_REG, - - /* $pc, which has no encoding in the architectural instruction. */ - OP_PC, - - /* A 4-bit XYZW channel mask or 2-bit XYZW index; the size determines - which. */ - OP_VU0_SUFFIX, - - /* Like OP_VU0_SUFFIX, but used when the operand's value has already - been set. Any suffix used here must match the previous value. */ - OP_VU0_MATCH_SUFFIX, - - /* An index selected by an integer, e.g. [1]. */ - OP_IMM_INDEX, - - /* An index selected by a register, e.g. [$2]. */ - OP_REG_INDEX -}; - -/* Enumerates the types of MIPS register. */ -enum mips_reg_operand_type { - /* General registers $0-$31. Software names like $at can also be used. */ - OP_REG_GP, - - /* Floating-point registers $f0-$f31. */ - OP_REG_FP, - - /* Coprocessor condition code registers $cc0-$cc7. FPU condition codes - can also be written $fcc0-$fcc7. */ - OP_REG_CCC, - - /* FPRs used in a vector capacity. They can be written $f0-$f31 - or $v0-$v31, although the latter form is not used for the VR5400 - vector instructions. */ - OP_REG_VEC, - - /* DSP accumulator registers $ac0-$ac3. */ - OP_REG_ACC, - - /* Coprocessor registers $0-$31. Mnemonic names like c0_cause can - also be used in some contexts. */ - OP_REG_COPRO, - - /* Hardware registers $0-$31. Mnemonic names like hwr_cpunum can - also be used in some contexts. */ - OP_REG_HW, - - /* Floating-point registers $vf0-$vf31. */ - OP_REG_VF, - - /* Integer registers $vi0-$vi31. */ - OP_REG_VI, - - /* R5900 VU0 registers $I, $Q, $R and $ACC. */ - OP_REG_R5900_I, - OP_REG_R5900_Q, - OP_REG_R5900_R, - OP_REG_R5900_ACC, - - /* MSA registers $w0-$w31. */ - OP_REG_MSA, - - /* MSA control registers $0-$31. */ - OP_REG_MSA_CTRL -}; - -/* Base class for all operands. */ -struct mips_operand -{ - /* The type of the operand. */ - enum mips_operand_type type; - - /* The operand occupies SIZE bits of the instruction, starting at LSB. */ - unsigned short size; - unsigned short lsb; -}; - -/* Describes an integer operand with a regular encoding pattern. */ -struct mips_int_operand -{ - struct mips_operand root; - - /* The low ROOT.SIZE bits of MAX_VAL encodes (MAX_VAL + BIAS) << SHIFT. - The cyclically previous field value encodes 1 << SHIFT less than that, - and so on. E.g. - - - for { { T, 4, L }, 14, 0, 0 }, field values 0...14 encode themselves, - but 15 encodes -1. - - - { { T, 8, L }, 127, 0, 2 } is a normal signed 8-bit operand that is - shifted left two places. - - - { { T, 3, L }, 8, 0, 0 } is a normal unsigned 3-bit operand except - that 0 encodes 8. - - - { { ... }, 0, 1, 3 } means that N encodes (N + 1) << 3. */ - unsigned int max_val; - int bias; - unsigned int shift; - - /* True if the operand should be printed as hex rather than decimal. */ - bfd_boolean print_hex; -}; - -/* Uses a lookup table to describe a small integer operand. */ -struct mips_mapped_int_operand -{ - struct mips_operand root; - - /* Maps each encoding value to the integer that it represents. */ - const int *int_map; - - /* True if the operand should be printed as hex rather than decimal. */ - bfd_boolean print_hex; -}; - -/* An operand that encodes the most significant bit position of a bitfield. - Given a bitfield that spans bits [MSB, LSB], some operands of this type - encode MSB directly while others encode MSB - LSB. Each operand of this - type is preceded by an integer operand that specifies LSB. - - The assembly form varies between instructions. For some instructions, - such as EXT, the operand is written as the bitfield size. For others, - such as EXTS, it is written in raw MSB - LSB form. */ -struct mips_msb_operand -{ - struct mips_operand root; - - /* The assembly-level operand encoded by a field value of 0. */ - int bias; - - /* True if the operand encodes MSB directly, false if it encodes - MSB - LSB. */ - bfd_boolean add_lsb; - - /* The maximum value of MSB + 1. */ - unsigned int opsize; -}; - -/* Describes a single register operand. */ -struct mips_reg_operand -{ - struct mips_operand root; - - /* The type of register. */ - enum mips_reg_operand_type reg_type; - - /* If nonnull, REG_MAP[N] gives the register associated with encoding N, - otherwise the encoding is the same as the register number. */ - const unsigned char *reg_map; -}; - -/* Describes an operand that encodes a pair of registers. */ -struct mips_reg_pair_operand -{ - struct mips_operand root; - - /* The type of register. */ - enum mips_reg_operand_type reg_type; - - /* Encoding N represents REG1_MAP[N], REG2_MAP[N]. */ - unsigned char *reg1_map; - unsigned char *reg2_map; -}; - -/* Describes an operand that is calculated relative to a base PC. - The base PC is usually the address of the following instruction, - but the rules for MIPS16 instructions like ADDIUPC are more complicated. */ -struct mips_pcrel_operand -{ - /* Encodes the offset. */ - struct mips_int_operand root; - - /* The low ALIGN_LOG2 bits of the base PC are cleared to give PC', - which is then added to the offset encoded by ROOT. */ - unsigned int align_log2 : 8; - - /* If INCLUDE_ISA_BIT, the ISA bit of the original base PC is then - reinstated. This is true for jumps and branches and false for - PC-relative data instructions. */ - unsigned int include_isa_bit : 1; - - /* If FLIP_ISA_BIT, the ISA bit of the result is inverted. - This is true for JALX and false otherwise. */ - unsigned int flip_isa_bit : 1; -}; - -/* Return true if the assembly syntax allows OPERAND to be omitted. */ - -static inline bfd_boolean -mips_optional_operand_p (const struct mips_operand *operand) -{ - return (operand->type == OP_OPTIONAL_REG - || operand->type == OP_REPEAT_PREV_REG); -} - -/* Return a version of INSN in which the field specified by OPERAND - has value UVAL. */ - -static inline unsigned int -mips_insert_operand (const struct mips_operand *operand, unsigned int insn, - unsigned int uval) -{ - unsigned int mask; - - mask = (1 << operand->size) - 1; - insn &= ~(mask << operand->lsb); - insn |= (uval & mask) << operand->lsb; - return insn; -} - -/* Extract OPERAND from instruction INSN. */ - -static inline unsigned int -mips_extract_operand (const struct mips_operand *operand, unsigned int insn) -{ - return (insn >> operand->lsb) & ((1 << operand->size) - 1); -} - -/* UVAL is the value encoded by OPERAND. Return it in signed form. */ - -static inline int -mips_signed_operand (const struct mips_operand *operand, unsigned int uval) -{ - unsigned int sign_bit, mask; - - mask = (1 << operand->size) - 1; - sign_bit = 1 << (operand->size - 1); - return ((uval + sign_bit) & mask) - sign_bit; -} - -/* Return the integer that OPERAND encodes as UVAL. */ - -static inline int -mips_decode_int_operand (const struct mips_int_operand *operand, - unsigned int uval) -{ - uval |= (operand->max_val - uval) & -(1 << operand->root.size); - uval += operand->bias; - uval <<= operand->shift; - return uval; -} - -/* Return the maximum value that can be encoded by OPERAND. */ - -static inline int -mips_int_operand_max (const struct mips_int_operand *operand) -{ - return (operand->max_val + operand->bias) << operand->shift; -} - -/* Return the minimum value that can be encoded by OPERAND. */ - -static inline int -mips_int_operand_min (const struct mips_int_operand *operand) -{ - unsigned int mask; - - mask = (1 << operand->root.size) - 1; - return mips_int_operand_max (operand) - (mask << operand->shift); -} - -/* Return the register that OPERAND encodes as UVAL. */ - -static inline int -mips_decode_reg_operand (const struct mips_reg_operand *operand, - unsigned int uval) -{ - if (operand->reg_map) - uval = operand->reg_map[uval]; - return uval; -} - -/* PC-relative operand OPERAND has value UVAL and is relative to BASE_PC. - Return the address that it encodes. */ - -static inline bfd_vma -mips_decode_pcrel_operand (const struct mips_pcrel_operand *operand, - bfd_vma base_pc, unsigned int uval) -{ - bfd_vma addr; - - addr = base_pc & -(1 << operand->align_log2); - addr += mips_decode_int_operand (&operand->root, uval); - if (operand->include_isa_bit) - addr |= base_pc & 1; - if (operand->flip_isa_bit) - addr ^= 1; - return addr; -} - -/* This structure holds information for a particular instruction. */ - -struct mips_opcode -{ - /* The name of the instruction. */ - const char *name; - /* A string describing the arguments for this instruction. */ - const char *args; - /* The basic opcode for the instruction. When assembling, this - opcode is modified by the arguments to produce the actual opcode - that is used. If pinfo is INSN_MACRO, then this is 0. */ - unsigned long match; - /* If pinfo is not INSN_MACRO, then this is a bit mask for the - relevant portions of the opcode when disassembling. If the - actual opcode anded with the match field equals the opcode field, - then we have found the correct instruction. If pinfo is - INSN_MACRO, then this field is the macro identifier. */ - unsigned long mask; - /* For a macro, this is INSN_MACRO. Otherwise, it is a collection - of bits describing the instruction, notably any relevant hazard - information. */ - unsigned long pinfo; - /* A collection of additional bits describing the instruction. */ - unsigned long pinfo2; - /* A collection of bits describing the instruction sets of which this - instruction or macro is a member. */ - unsigned long membership; - /* A collection of bits describing the ASE of which this instruction - or macro is a member. */ - unsigned long ase; - /* A collection of bits describing the instruction sets of which this - instruction or macro is not a member. */ - unsigned long exclusions; -}; - -/* These are the characters which may appear in the args field of an - instruction. They appear in the order in which the fields appear - when the instruction is used. Commas and parentheses in the args - string are ignored when assembling, and written into the output - when disassembling. - - Each of these characters corresponds to a mask field defined above. - - "1" 5 bit sync type (OP_*_STYPE) - "<" 5 bit shift amount (OP_*_SHAMT) - ">" shift amount between 32 and 63, stored after subtracting 32 (OP_*_SHAMT) - "a" 26 bit target address (OP_*_TARGET) - "+i" likewise, but flips bit 0 - "b" 5 bit base register (OP_*_RS) - "c" 10 bit breakpoint code (OP_*_CODE) - "d" 5 bit destination register specifier (OP_*_RD) - "h" 5 bit prefx hint (OP_*_PREFX) - "i" 16 bit unsigned immediate (OP_*_IMMEDIATE) - "j" 16 bit signed immediate (OP_*_DELTA) - "k" 5 bit cache opcode in target register position (OP_*_CACHE) - "o" 16 bit signed offset (OP_*_DELTA) - "p" 16 bit PC relative branch target address (OP_*_DELTA) - "q" 10 bit extra breakpoint code (OP_*_CODE2) - "r" 5 bit same register used as both source and target (OP_*_RS) - "s" 5 bit source register specifier (OP_*_RS) - "t" 5 bit target register (OP_*_RT) - "u" 16 bit upper 16 bits of address (OP_*_IMMEDIATE) - "v" 5 bit same register used as both source and destination (OP_*_RS) - "w" 5 bit same register used as both target and destination (OP_*_RT) - "U" 5 bit same destination register in both OP_*_RD and OP_*_RT - (used by clo and clz) - "C" 25 bit coprocessor function code (OP_*_COPZ) - "B" 20 bit syscall/breakpoint function code (OP_*_CODE20) - "J" 19 bit wait function code (OP_*_CODE19) - "x" accept and ignore register name - "z" must be zero register - "K" 5 bit Hardware Register (rdhwr instruction) (OP_*_RD) - "+A" 5 bit ins/ext/dins/dext/dinsm/dextm position, which becomes - LSB (OP_*_SHAMT; OP_*_EXTLSB or OP_*_STYPE may be used for - microMIPS compatibility). - Enforces: 0 <= pos < 32. - "+B" 5 bit ins/dins size, which becomes MSB (OP_*_INSMSB). - Requires that "+A" or "+E" occur first to set position. - Enforces: 0 < (pos+size) <= 32. - "+C" 5 bit ext/dext size, which becomes MSBD (OP_*_EXTMSBD). - Requires that "+A" or "+E" occur first to set position. - Enforces: 0 < (pos+size) <= 32. - (Also used by "dext" w/ different limits, but limits for - that are checked by the M_DEXT macro.) - "+E" 5 bit dinsu/dextu position, which becomes LSB-32 (OP_*_SHAMT). - Enforces: 32 <= pos < 64. - "+F" 5 bit "dinsm/dinsu" size, which becomes MSB-32 (OP_*_INSMSB). - Requires that "+A" or "+E" occur first to set position. - Enforces: 32 < (pos+size) <= 64. - "+G" 5 bit "dextm" size, which becomes MSBD-32 (OP_*_EXTMSBD). - Requires that "+A" or "+E" occur first to set position. - Enforces: 32 < (pos+size) <= 64. - "+H" 5 bit "dextu" size, which becomes MSBD (OP_*_EXTMSBD). - Requires that "+A" or "+E" occur first to set position. - Enforces: 32 < (pos+size) <= 64. - - Floating point instructions: - "D" 5 bit destination register (OP_*_FD) - "M" 3 bit compare condition code (OP_*_CCC) (only used for mips4 and up) - "N" 3 bit branch condition code (OP_*_BCC) (only used for mips4 and up) - "S" 5 bit fs source 1 register (OP_*_FS) - "T" 5 bit ft source 2 register (OP_*_FT) - "R" 5 bit fr source 3 register (OP_*_FR) - "V" 5 bit same register used as floating source and destination (OP_*_FS) - "W" 5 bit same register used as floating target and destination (OP_*_FT) - - Coprocessor instructions: - "E" 5 bit target register (OP_*_RT) - "G" 5 bit destination register (OP_*_RD) - "H" 3 bit sel field for (d)mtc* and (d)mfc* (OP_*_SEL) - "P" 5 bit performance-monitor register (OP_*_PERFREG) - "e" 5 bit vector register byte specifier (OP_*_VECBYTE) - "%" 3 bit immediate vr5400 vector alignment operand (OP_*_VECALIGN) - - Macro instructions: - "A" General 32 bit expression - "I" 32 bit immediate (value placed in imm_expr). - "F" 64 bit floating point constant in .rdata - "L" 64 bit floating point constant in .lit8 - "f" 32 bit floating point constant - "l" 32 bit floating point constant in .lit4 - - MDMX and VR5400 instruction operands (note that while these use the - FP register fields, the MDMX instructions accept both $fN and $vN names - for the registers): - "O" alignment offset (OP_*_ALN) - "Q" vector/scalar/immediate source (OP_*_VSEL and OP_*_FT) - "X" destination register (OP_*_FD) - "Y" source register (OP_*_FS) - "Z" source register (OP_*_FT) - - R5900 VU0 Macromode instructions: - "+5" 5 bit floating point register (FD) - "+6" 5 bit floating point register (FS) - "+7" 5 bit floating point register (FT) - "+8" 5 bit integer register (FD) - "+9" 5 bit integer register (FS) - "+0" 5 bit integer register (FT) - "+K" match an existing 4-bit channel mask starting at bit 21 - "+L" 2-bit channel index starting at bit 21 - "+M" 2-bit channel index starting at bit 23 - "+N" match an existing 2-bit channel index starting at bit 0 - "+f" 15 bit immediate for VCALLMS - "+g" 5 bit signed immediate for VIADDI - "+m" $ACC register (syntax only) - "+q" $Q register (syntax only) - "+r" $R register (syntax only) - "+y" $I register (syntax only) - "#+" "++" decorator in ($reg++) sequence - "#-" "--" decorator in (--$reg) sequence - - DSP ASE usage: - "2" 2 bit unsigned immediate for byte align (OP_*_BP) - "3" 3 bit unsigned immediate (OP_*_SA3) - "4" 4 bit unsigned immediate (OP_*_SA4) - "5" 8 bit unsigned immediate (OP_*_IMM8) - "6" 5 bit unsigned immediate (OP_*_RS) - "7" 2 bit dsp accumulator register (OP_*_DSPACC) - "8" 6 bit unsigned immediate (OP_*_WRDSP) - "9" 2 bit dsp accumulator register (OP_*_DSPACC_S) - "0" 6 bit signed immediate (OP_*_DSPSFT) - ":" 7 bit signed immediate (OP_*_DSPSFT_7) - "'" 6 bit unsigned immediate (OP_*_RDDSP) - "@" 10 bit signed immediate (OP_*_IMM10) - - MT ASE usage: - "!" 1 bit usermode flag (OP_*_MT_U) - "$" 1 bit load high flag (OP_*_MT_H) - "*" 2 bit dsp/smartmips accumulator register (OP_*_MTACC_T) - "&" 2 bit dsp/smartmips accumulator register (OP_*_MTACC_D) - "g" 5 bit coprocessor 1 and 2 destination register (OP_*_RD) - "+t" 5 bit coprocessor 0 destination register (OP_*_RT) - - MCU ASE usage: - "~" 12 bit offset (OP_*_OFFSET12) - "\" 3 bit position for aset and aclr (OP_*_3BITPOS) - - VIRT ASE usage: - "+J" 10-bit hypcall code (OP_*CODE10) - - UDI immediates: - "+1" UDI immediate bits 6-10 - "+2" UDI immediate bits 6-15 - "+3" UDI immediate bits 6-20 - "+4" UDI immediate bits 6-25 - - Octeon: - "+x" Bit index field of bbit. Enforces: 0 <= index < 32. - "+X" Bit index field of bbit aliasing bbit32. Matches if 32 <= index < 64, - otherwise skips to next candidate. - "+p" Position field of cins/cins32/exts/exts32. Enforces 0 <= pos < 32. - "+P" Position field of cins/exts aliasing cins32/exts32. Matches if - 32 <= pos < 64, otherwise skips to next candidate. - "+Q" Immediate field of seqi/snei. Enforces -512 <= imm < 512. - "+s" Length-minus-one field of cins32/exts32. Requires msb position - of the field to be <= 31. - "+S" Length-minus-one field of cins/exts. Requires msb position - of the field to be <= 63. - - Loongson-3A: - "+a" 8-bit signed offset in bit 6 (OP_*_OFFSET_A) - "+b" 8-bit signed offset in bit 3 (OP_*_OFFSET_B) - "+c" 9-bit signed offset in bit 6 (OP_*_OFFSET_C) - "+z" 5-bit rz register (OP_*_RZ) - "+Z" 5-bit fz register (OP_*_FZ) - - Enhanced VA Scheme: - "+j" 9-bit signed offset in bit 7 (OP_*_EVAOFFSET) - - MSA Extension: - "+d" 5-bit MSA register (FD) - "+e" 5-bit MSA register (FS) - "+h" 5-bit MSA register (FT) - "+k" 5-bit GPR at bit 6 - "+l" 5-bit MSA control register at bit 6 - "+n" 5-bit MSA control register at bit 11 - "+o" 5-bit vector element index at bit 16 - "+u" 4-bit vector element index at bit 16 - "+v" 3-bit vector element index at bit 16 - "+w" 2-bit vector element index at bit 16 - "+T" (-512 .. 511) << 0 at bit 16 - "+U" (-512 .. 511) << 1 at bit 16 - "+V" (-512 .. 511) << 2 at bit 16 - "+W" (-512 .. 511) << 3 at bit 16 - "+~" 2 bit LSA/DLSA shift amount from 1 to 4 at bit 6 - "+!" 3 bit unsigned bit position at bit 16 - "+@" 4 bit unsigned bit position at bit 16 - "+#" 6 bit unsigned bit position at bit 16 - "+$" 5 bit unsigned immediate at bit 16 - "+%" 5 bit signed immediate at bit 16 - "+^" 10 bit signed immediate at bit 11 - "+&" 0 vector element index - "+*" 5-bit register vector element index at bit 16 - "+|" 8-bit mask at bit 16 - - Other: - "()" parens surrounding optional value - "," separates operands - "+" Start of extension sequence. - - Characters used so far, for quick reference when adding more: - "1234567890" - "%[]<>(),+:'@!#$*&\~" - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklopqrstuvwxz" - - Extension character sequences used so far ("+" followed by the - following), for quick reference when adding more: - "1234567890" - "~!@#$%^&*|" - "ABCEFGHJKLMNPQSTUVWXZ" - "abcdefghijklmnopqrstuvwxyz" -*/ - -/* These are the bits which may be set in the pinfo field of an - instructions, if it is not equal to INSN_MACRO. */ - -/* Writes to operand number N. */ -#define INSN_WRITE_SHIFT 0 -#define INSN_WRITE_1 0x00000001 -#define INSN_WRITE_2 0x00000002 -#define INSN_WRITE_ALL 0x00000003 -/* Reads from operand number N. */ -#define INSN_READ_SHIFT 2 -#define INSN_READ_1 0x00000004 -#define INSN_READ_2 0x00000008 -#define INSN_READ_3 0x00000010 -#define INSN_READ_4 0x00000020 -#define INSN_READ_ALL 0x0000003c -/* Modifies general purpose register 31. */ -#define INSN_WRITE_GPR_31 0x00000040 -/* Modifies coprocessor condition code. */ -#define INSN_WRITE_COND_CODE 0x00000080 -/* Reads coprocessor condition code. */ -#define INSN_READ_COND_CODE 0x00000100 -/* TLB operation. */ -#define INSN_TLB 0x00000200 -/* Reads coprocessor register other than floating point register. */ -#define INSN_COP 0x00000400 -/* Instruction loads value from memory, requiring delay. */ -#define INSN_LOAD_MEMORY_DELAY 0x00000800 -/* Instruction loads value from coprocessor, requiring delay. */ -#define INSN_LOAD_COPROC_DELAY 0x00001000 -/* Instruction has unconditional branch delay slot. */ -#define INSN_UNCOND_BRANCH_DELAY 0x00002000 -/* Instruction has conditional branch delay slot. */ -#define INSN_COND_BRANCH_DELAY 0x00004000 -/* Conditional branch likely: if branch not taken, insn nullified. */ -#define INSN_COND_BRANCH_LIKELY 0x00008000 -/* Moves to coprocessor register, requiring delay. */ -#define INSN_COPROC_MOVE_DELAY 0x00010000 -/* Loads coprocessor register from memory, requiring delay. */ -#define INSN_COPROC_MEMORY_DELAY 0x00020000 -/* Reads the HI register. */ -#define INSN_READ_HI 0x00040000 -/* Reads the LO register. */ -#define INSN_READ_LO 0x00080000 -/* Modifies the HI register. */ -#define INSN_WRITE_HI 0x00100000 -/* Modifies the LO register. */ -#define INSN_WRITE_LO 0x00200000 -/* Not to be placed in a branch delay slot, either architecturally - or for ease of handling (such as with instructions that take a trap). */ -#define INSN_NO_DELAY_SLOT 0x00400000 -/* Instruction stores value into memory. */ -#define INSN_STORE_MEMORY 0x00800000 -/* Instruction uses single precision floating point. */ -#define FP_S 0x01000000 -/* Instruction uses double precision floating point. */ -#define FP_D 0x02000000 -/* Instruction is part of the tx39's integer multiply family. */ -#define INSN_MULT 0x04000000 -/* Reads general purpose register 24. */ -#define INSN_READ_GPR_24 0x08000000 -/* Writes to general purpose register 24. */ -#define INSN_WRITE_GPR_24 0x10000000 -/* A user-defined instruction. */ -#define INSN_UDI 0x20000000 -/* Instruction is actually a macro. It should be ignored by the - disassembler, and requires special treatment by the assembler. */ -#define INSN_MACRO 0xffffffff - -/* These are the bits which may be set in the pinfo2 field of an - instruction. */ - -/* Instruction is a simple alias (I.E. "move" for daddu/addu/or) */ -#define INSN2_ALIAS 0x00000001 -/* Instruction reads MDMX accumulator. */ -#define INSN2_READ_MDMX_ACC 0x00000002 -/* Instruction writes MDMX accumulator. */ -#define INSN2_WRITE_MDMX_ACC 0x00000004 -/* Macro uses single-precision floating-point instructions. This should - only be set for macros. For instructions, FP_S in pinfo carries the - same information. */ -#define INSN2_M_FP_S 0x00000008 -/* Macro uses double-precision floating-point instructions. This should - only be set for macros. For instructions, FP_D in pinfo carries the - same information. */ -#define INSN2_M_FP_D 0x00000010 -/* Instruction has a branch delay slot that requires a 16-bit instruction. */ -#define INSN2_BRANCH_DELAY_16BIT 0x00000020 -/* Instruction has a branch delay slot that requires a 32-bit instruction. */ -#define INSN2_BRANCH_DELAY_32BIT 0x00000040 -/* Writes to the stack pointer ($29). */ -#define INSN2_WRITE_SP 0x00000080 -/* Reads from the stack pointer ($29). */ -#define INSN2_READ_SP 0x00000100 -/* Reads the RA ($31) register. */ -#define INSN2_READ_GPR_31 0x00000200 -/* Reads the program counter ($pc). */ -#define INSN2_READ_PC 0x00000400 -/* Is an unconditional branch insn. */ -#define INSN2_UNCOND_BRANCH 0x00000800 -/* Is a conditional branch insn. */ -#define INSN2_COND_BRANCH 0x00001000 -/* Reads from $16. This is true of the MIPS16 0x6500 nop. */ -#define INSN2_READ_GPR_16 0x00002000 -/* Has an "\.x?y?z?w?" suffix based on mips_vu0_channel_mask. */ -#define INSN2_VU0_CHANNEL_SUFFIX 0x00004000 - -/* Masks used to mark instructions to indicate which MIPS ISA level - they were introduced in. INSN_ISA_MASK masks an enumeration that - specifies the base ISA level(s). The remainder of a 32-bit - word constructed using these macros is a bitmask of the remaining - INSN_* values below. */ - -#define INSN_ISA_MASK 0x0000000ful - -/* We cannot start at zero due to ISA_UNKNOWN below. */ -#define INSN_ISA1 1 -#define INSN_ISA2 2 -#define INSN_ISA3 3 -#define INSN_ISA4 4 -#define INSN_ISA5 5 -#define INSN_ISA32 6 -#define INSN_ISA32R2 7 -#define INSN_ISA64 8 -#define INSN_ISA64R2 9 -/* Below this point the INSN_* values correspond to combinations of ISAs. - They are only for use in the opcodes table to indicate membership of - a combination of ISAs that cannot be expressed using the usual inclusion - ordering on the above INSN_* values. */ -#define INSN_ISA3_32 10 -#define INSN_ISA3_32R2 11 -#define INSN_ISA4_32 12 -#define INSN_ISA4_32R2 13 -#define INSN_ISA5_32R2 14 - -/* Given INSN_ISA* values X and Y, where X ranges over INSN_ISA1 through - INSN_ISA5_32R2 and Y ranges over INSN_ISA1 through INSN_ISA64R2, - this table describes whether at least one of the ISAs described by X - is/are implemented by ISA Y. (Think of Y as the ISA level supported by - a particular core and X as the ISA level(s) at which a certain instruction - is defined.) The ISA(s) described by X is/are implemented by Y iff - (mips_isa_table[(Y & INSN_ISA_MASK) - 1] >> ((X & INSN_ISA_MASK) - 1)) & 1 - is non-zero. */ -static const unsigned int mips_isa_table[] = - { 0x0001, 0x0003, 0x0607, 0x1e0f, 0x3e1f, 0x0a23, 0x3e63, 0x3ebf, 0x3fff }; - -/* Masks used for Chip specific instructions. */ -#define INSN_CHIP_MASK 0xc3ff0f20 - -/* Cavium Networks Octeon instructions. */ -#define INSN_OCTEON 0x00000800 -#define INSN_OCTEONP 0x00000200 -#define INSN_OCTEON2 0x00000100 - -/* MIPS R5900 instruction */ -#define INSN_5900 0x00004000 - -/* MIPS R4650 instruction. */ -#define INSN_4650 0x00010000 -/* LSI R4010 instruction. */ -#define INSN_4010 0x00020000 -/* NEC VR4100 instruction. */ -#define INSN_4100 0x00040000 -/* Toshiba R3900 instruction. */ -#define INSN_3900 0x00080000 -/* MIPS R10000 instruction. */ -#define INSN_10000 0x00100000 -/* Broadcom SB-1 instruction. */ -#define INSN_SB1 0x00200000 -/* NEC VR4111/VR4181 instruction. */ -#define INSN_4111 0x00400000 -/* NEC VR4120 instruction. */ -#define INSN_4120 0x00800000 -/* NEC VR5400 instruction. */ -#define INSN_5400 0x01000000 -/* NEC VR5500 instruction. */ -#define INSN_5500 0x02000000 - -/* ST Microelectronics Loongson 2E. */ -#define INSN_LOONGSON_2E 0x40000000 -/* ST Microelectronics Loongson 2F. */ -#define INSN_LOONGSON_2F 0x80000000 -/* Loongson 3A. */ -#define INSN_LOONGSON_3A 0x00000400 -/* RMI Xlr instruction */ -#define INSN_XLR 0x00000020 - -/* DSP ASE */ -#define ASE_DSP 0x00000001 -#define ASE_DSP64 0x00000002 -/* DSP R2 ASE */ -#define ASE_DSPR2 0x00000004 -/* Enhanced VA Scheme */ -#define ASE_EVA 0x00000008 -/* MCU (MicroController) ASE */ -#define ASE_MCU 0x00000010 -/* MDMX ASE */ -#define ASE_MDMX 0x00000020 -/* MIPS-3D ASE */ -#define ASE_MIPS3D 0x00000040 -/* MT ASE */ -#define ASE_MT 0x00000080 -/* SmartMIPS ASE */ -#define ASE_SMARTMIPS 0x00000100 -/* Virtualization ASE */ -#define ASE_VIRT 0x00000200 -#define ASE_VIRT64 0x00000400 -/* MSA Extension */ -#define ASE_MSA 0x00000800 -#define ASE_MSA64 0x00001000 - -/* MIPS ISA defines, use instead of hardcoding ISA level. */ - -#define ISA_UNKNOWN 0 /* Gas internal use. */ -#define ISA_MIPS1 INSN_ISA1 -#define ISA_MIPS2 INSN_ISA2 -#define ISA_MIPS3 INSN_ISA3 -#define ISA_MIPS4 INSN_ISA4 -#define ISA_MIPS5 INSN_ISA5 - -#define ISA_MIPS32 INSN_ISA32 -#define ISA_MIPS64 INSN_ISA64 - -#define ISA_MIPS32R2 INSN_ISA32R2 -#define ISA_MIPS64R2 INSN_ISA64R2 - - -/* CPU defines, use instead of hardcoding processor number. Keep this - in sync with bfd/archures.c in order for machine selection to work. */ -#define CPU_UNKNOWN 0 /* Gas internal use. */ -#define CPU_R3000 3000 -#define CPU_R3900 3900 -#define CPU_R4000 4000 -#define CPU_R4010 4010 -#define CPU_VR4100 4100 -#define CPU_R4111 4111 -#define CPU_VR4120 4120 -#define CPU_R4300 4300 -#define CPU_R4400 4400 -#define CPU_R4600 4600 -#define CPU_R4650 4650 -#define CPU_R5000 5000 -#define CPU_VR5400 5400 -#define CPU_VR5500 5500 -#define CPU_R5900 5900 -#define CPU_R6000 6000 -#define CPU_RM7000 7000 -#define CPU_R8000 8000 -#define CPU_RM9000 9000 -#define CPU_R10000 10000 -#define CPU_R12000 12000 -#define CPU_R14000 14000 -#define CPU_R16000 16000 -#define CPU_MIPS16 16 -#define CPU_MIPS32 32 -#define CPU_MIPS32R2 33 -#define CPU_MIPS5 5 -#define CPU_MIPS64 64 -#define CPU_MIPS64R2 65 -#define CPU_SB1 12310201 /* octal 'SB', 01. */ -#define CPU_LOONGSON_2E 3001 -#define CPU_LOONGSON_2F 3002 -#define CPU_LOONGSON_3A 3003 -#define CPU_OCTEON 6501 -#define CPU_OCTEONP 6601 -#define CPU_OCTEON2 6502 -#define CPU_XLR 887682 /* decimal 'XLR' */ - -/* Return true if the given CPU is included in INSN_* mask MASK. */ - -static inline bfd_boolean -cpu_is_member (int cpu, unsigned int mask) -{ - switch (cpu) - { - case CPU_R4650: - case CPU_RM7000: - case CPU_RM9000: - return (mask & INSN_4650) != 0; - - case CPU_R4010: - return (mask & INSN_4010) != 0; - - case CPU_VR4100: - return (mask & INSN_4100) != 0; - - case CPU_R3900: - return (mask & INSN_3900) != 0; - - case CPU_R10000: - case CPU_R12000: - case CPU_R14000: - case CPU_R16000: - return (mask & INSN_10000) != 0; - - case CPU_SB1: - return (mask & INSN_SB1) != 0; - - case CPU_R4111: - return (mask & INSN_4111) != 0; - - case CPU_VR4120: - return (mask & INSN_4120) != 0; - - case CPU_VR5400: - return (mask & INSN_5400) != 0; - - case CPU_VR5500: - return (mask & INSN_5500) != 0; - - case CPU_R5900: - return (mask & INSN_5900) != 0; - - case CPU_LOONGSON_2E: - return (mask & INSN_LOONGSON_2E) != 0; - - case CPU_LOONGSON_2F: - return (mask & INSN_LOONGSON_2F) != 0; - - case CPU_LOONGSON_3A: - return (mask & INSN_LOONGSON_3A) != 0; - - case CPU_OCTEON: - return (mask & INSN_OCTEON) != 0; - - case CPU_OCTEONP: - return (mask & INSN_OCTEONP) != 0; - - case CPU_OCTEON2: - return (mask & INSN_OCTEON2) != 0; - - case CPU_XLR: - return (mask & INSN_XLR) != 0; - - default: - return FALSE; - } -} - -/* Test for membership in an ISA including chip specific ISAs. INSN - is pointer to an element of the opcode table; ISA is the specified - ISA/ASE bitmask to test against; and CPU is the CPU specific ISA to - test, or zero if no CPU specific ISA test is desired. Return true - if instruction INSN is available to the given ISA and CPU. */ - -static inline bfd_boolean -opcode_is_member (const struct mips_opcode *insn, int isa, int ase, int cpu) -{ - if (!cpu_is_member (cpu, insn->exclusions)) - { - /* Test for ISA level compatibility. */ - if ((isa & INSN_ISA_MASK) != 0 - && (insn->membership & INSN_ISA_MASK) != 0 - && ((mips_isa_table[(isa & INSN_ISA_MASK) - 1] - >> ((insn->membership & INSN_ISA_MASK) - 1)) & 1) != 0) - return TRUE; - - /* Test for ASE compatibility. */ - if ((ase & insn->ase) != 0) - return TRUE; - - /* Test for processor-specific extensions. */ - if (cpu_is_member (cpu, insn->membership)) - return TRUE; - } - return FALSE; -} - -/* This is a list of macro expanded instructions. - - _I appended means immediate - _A appended means target address of a jump - _AB appended means address with (possibly zero) base register - _D appended means 64 bit floating point constant - _S appended means 32 bit floating point constant. */ - -enum -{ - M_ABS, - M_ACLR_AB, - M_ADD_I, - M_ADDU_I, - M_AND_I, - M_ASET_AB, - M_BALIGN, - M_BC1FL, - M_BC1TL, - M_BC2FL, - M_BC2TL, - M_BEQ, - M_BEQ_I, - M_BEQL, - M_BEQL_I, - M_BGE, - M_BGEL, - M_BGE_I, - M_BGEL_I, - M_BGEU, - M_BGEUL, - M_BGEU_I, - M_BGEUL_I, - M_BGEZ, - M_BGEZL, - M_BGEZALL, - M_BGT, - M_BGTL, - M_BGT_I, - M_BGTL_I, - M_BGTU, - M_BGTUL, - M_BGTU_I, - M_BGTUL_I, - M_BGTZ, - M_BGTZL, - M_BLE, - M_BLEL, - M_BLE_I, - M_BLEL_I, - M_BLEU, - M_BLEUL, - M_BLEU_I, - M_BLEUL_I, - M_BLEZ, - M_BLEZL, - M_BLT, - M_BLTL, - M_BLT_I, - M_BLTL_I, - M_BLTU, - M_BLTUL, - M_BLTU_I, - M_BLTUL_I, - M_BLTZ, - M_BLTZL, - M_BLTZALL, - M_BNE, - M_BNEL, - M_BNE_I, - M_BNEL_I, - M_CACHE_AB, - M_CACHEE_AB, - M_DABS, - M_DADD_I, - M_DADDU_I, - M_DDIV_3, - M_DDIV_3I, - M_DDIVU_3, - M_DDIVU_3I, - M_DIV_3, - M_DIV_3I, - M_DIVU_3, - M_DIVU_3I, - M_DLA_AB, - M_DLCA_AB, - M_DLI, - M_DMUL, - M_DMUL_I, - M_DMULO, - M_DMULO_I, - M_DMULOU, - M_DMULOU_I, - M_DREM_3, - M_DREM_3I, - M_DREMU_3, - M_DREMU_3I, - M_DSUB_I, - M_DSUBU_I, - M_DSUBU_I_2, - M_J_A, - M_JAL_1, - M_JAL_2, - M_JAL_A, - M_JALS_1, - M_JALS_2, - M_JALS_A, - M_JRADDIUSP, - M_JRC, - M_L_DAB, - M_LA_AB, - M_LB_AB, - M_LBE_AB, - M_LBU_AB, - M_LBUE_AB, - M_LCA_AB, - M_LD_AB, - M_LDC1_AB, - M_LDC2_AB, - M_LQC2_AB, - M_LDC3_AB, - M_LDL_AB, - M_LDM_AB, - M_LDP_AB, - M_LDR_AB, - M_LH_AB, - M_LHE_AB, - M_LHU_AB, - M_LHUE_AB, - M_LI, - M_LI_D, - M_LI_DD, - M_LI_S, - M_LI_SS, - M_LL_AB, - M_LLD_AB, - M_LLE_AB, - M_LQ_AB, - M_LW_AB, - M_LWE_AB, - M_LWC0_AB, - M_LWC1_AB, - M_LWC2_AB, - M_LWC3_AB, - M_LWL_AB, - M_LWLE_AB, - M_LWM_AB, - M_LWP_AB, - M_LWR_AB, - M_LWRE_AB, - M_LWU_AB, - M_MSGSND, - M_MSGLD, - M_MSGLD_T, - M_MSGWAIT, - M_MSGWAIT_T, - M_MOVE, - M_MOVEP, - M_MUL, - M_MUL_I, - M_MULO, - M_MULO_I, - M_MULOU, - M_MULOU_I, - M_NOR_I, - M_OR_I, - M_PREF_AB, - M_PREFE_AB, - M_REM_3, - M_REM_3I, - M_REMU_3, - M_REMU_3I, - M_DROL, - M_ROL, - M_DROL_I, - M_ROL_I, - M_DROR, - M_ROR, - M_DROR_I, - M_ROR_I, - M_S_DA, - M_S_DAB, - M_S_S, - M_SAA_AB, - M_SAAD_AB, - M_SC_AB, - M_SCD_AB, - M_SCE_AB, - M_SD_AB, - M_SDC1_AB, - M_SDC2_AB, - M_SQC2_AB, - M_SDC3_AB, - M_SDL_AB, - M_SDM_AB, - M_SDP_AB, - M_SDR_AB, - M_SEQ, - M_SEQ_I, - M_SGE, - M_SGE_I, - M_SGEU, - M_SGEU_I, - M_SGT, - M_SGT_I, - M_SGTU, - M_SGTU_I, - M_SLE, - M_SLE_I, - M_SLEU, - M_SLEU_I, - M_SLT_I, - M_SLTU_I, - M_SNE, - M_SNE_I, - M_SB_AB, - M_SBE_AB, - M_SH_AB, - M_SHE_AB, - M_SQ_AB, - M_SW_AB, - M_SWE_AB, - M_SWC0_AB, - M_SWC1_AB, - M_SWC2_AB, - M_SWC3_AB, - M_SWL_AB, - M_SWLE_AB, - M_SWM_AB, - M_SWP_AB, - M_SWR_AB, - M_SWRE_AB, - M_SUB_I, - M_SUBU_I, - M_SUBU_I_2, - M_TEQ_I, - M_TGE_I, - M_TGEU_I, - M_TLT_I, - M_TLTU_I, - M_TNE_I, - M_TRUNCWD, - M_TRUNCWS, - M_ULD_AB, - M_ULH_AB, - M_ULHU_AB, - M_ULW_AB, - M_USH_AB, - M_USW_AB, - M_USD_AB, - M_XOR_I, - M_COP0, - M_COP1, - M_COP2, - M_COP3, - M_NUM_MACROS -}; - - -/* The order of overloaded instructions matters. Label arguments and - register arguments look the same. Instructions that can have either - for arguments must apear in the correct order in this table for the - assembler to pick the right one. In other words, entries with - immediate operands must apear after the same instruction with - registers. - - Many instructions are short hand for other instructions (i.e., The - jal instruction is short for jalr ). */ - -extern const struct mips_operand mips_vu0_channel_mask; -extern const struct mips_operand *decode_mips_operand (const char *); -extern const struct mips_opcode mips_builtin_opcodes[]; -extern const int bfd_mips_num_builtin_opcodes; -extern struct mips_opcode *mips_opcodes; -extern int bfd_mips_num_opcodes; -#define NUMOPCODES bfd_mips_num_opcodes - - -/* The rest of this file adds definitions for the mips16 TinyRISC - processor. */ - -/* These are the bitmasks and shift counts used for the different - fields in the instruction formats. Other than OP, no masks are - provided for the fixed portions of an instruction, since they are - not needed. - - The I format uses IMM11. - - The RI format uses RX and IMM8. - - The RR format uses RX, and RY. - - The RRI format uses RX, RY, and IMM5. - - The RRR format uses RX, RY, and RZ. - - The RRI_A format uses RX, RY, and IMM4. - - The SHIFT format uses RX, RY, and SHAMT. - - The I8 format uses IMM8. - - The I8_MOVR32 format uses RY and REGR32. - - The IR_MOV32R format uses REG32R and MOV32Z. - - The I64 format uses IMM8. - - The RI64 format uses RY and IMM5. - */ - -#define MIPS16OP_MASK_OP 0x1f -#define MIPS16OP_SH_OP 11 -#define MIPS16OP_MASK_IMM11 0x7ff -#define MIPS16OP_SH_IMM11 0 -#define MIPS16OP_MASK_RX 0x7 -#define MIPS16OP_SH_RX 8 -#define MIPS16OP_MASK_IMM8 0xff -#define MIPS16OP_SH_IMM8 0 -#define MIPS16OP_MASK_RY 0x7 -#define MIPS16OP_SH_RY 5 -#define MIPS16OP_MASK_IMM5 0x1f -#define MIPS16OP_SH_IMM5 0 -#define MIPS16OP_MASK_RZ 0x7 -#define MIPS16OP_SH_RZ 2 -#define MIPS16OP_MASK_IMM4 0xf -#define MIPS16OP_SH_IMM4 0 -#define MIPS16OP_MASK_REGR32 0x1f -#define MIPS16OP_SH_REGR32 0 -#define MIPS16OP_MASK_REG32R 0x1f -#define MIPS16OP_SH_REG32R 3 -#define MIPS16OP_EXTRACT_REG32R(i) ((((i) >> 5) & 7) | ((i) & 0x18)) -#define MIPS16OP_MASK_MOVE32Z 0x7 -#define MIPS16OP_SH_MOVE32Z 0 -#define MIPS16OP_MASK_IMM6 0x3f -#define MIPS16OP_SH_IMM6 5 - -/* These are the characters which may appears in the args field of a MIPS16 - instruction. They appear in the order in which the fields appear when the - instruction is used. Commas and parentheses in the args string are ignored - when assembling, and written into the output when disassembling. - - "y" 3 bit register (MIPS16OP_*_RY) - "x" 3 bit register (MIPS16OP_*_RX) - "z" 3 bit register (MIPS16OP_*_RZ) - "Z" 3 bit register (MIPS16OP_*_MOVE32Z) - "v" 3 bit same register as source and destination (MIPS16OP_*_RX) - "w" 3 bit same register as source and destination (MIPS16OP_*_RY) - "0" zero register ($0) - "S" stack pointer ($sp or $29) - "P" program counter - "R" return address register ($ra or $31) - "X" 5 bit MIPS register (MIPS16OP_*_REGR32) - "Y" 5 bit MIPS register (MIPS16OP_*_REG32R) - "6" 6 bit unsigned break code (MIPS16OP_*_IMM6) - "a" 26 bit jump address - "i" likewise, but flips bit 0 - "e" 11 bit extension value - "l" register list for entry instruction - "L" register list for exit instruction - - "I" an immediate value used for macros - - The remaining codes may be extended. Except as otherwise noted, - the full extended operand is a 16 bit signed value. - "<" 3 bit unsigned shift count * 0 (MIPS16OP_*_RZ) (full 5 bit unsigned) - ">" 3 bit unsigned shift count * 0 (MIPS16OP_*_RX) (full 5 bit unsigned) - "[" 3 bit unsigned shift count * 0 (MIPS16OP_*_RZ) (full 6 bit unsigned) - "]" 3 bit unsigned shift count * 0 (MIPS16OP_*_RX) (full 6 bit unsigned) - "4" 4 bit signed immediate * 0 (MIPS16OP_*_IMM4) (full 15 bit signed) - "5" 5 bit unsigned immediate * 0 (MIPS16OP_*_IMM5) - "H" 5 bit unsigned immediate * 2 (MIPS16OP_*_IMM5) - "W" 5 bit unsigned immediate * 4 (MIPS16OP_*_IMM5) - "D" 5 bit unsigned immediate * 8 (MIPS16OP_*_IMM5) - "j" 5 bit signed immediate * 0 (MIPS16OP_*_IMM5) - "8" 8 bit unsigned immediate * 0 (MIPS16OP_*_IMM8) - "V" 8 bit unsigned immediate * 4 (MIPS16OP_*_IMM8) - "C" 8 bit unsigned immediate * 8 (MIPS16OP_*_IMM8) - "U" 8 bit unsigned immediate * 0 (MIPS16OP_*_IMM8) (full 16 bit unsigned) - "k" 8 bit signed immediate * 0 (MIPS16OP_*_IMM8) - "K" 8 bit signed immediate * 8 (MIPS16OP_*_IMM8) - "p" 8 bit conditional branch address (MIPS16OP_*_IMM8) - "q" 11 bit branch address (MIPS16OP_*_IMM11) - "A" 8 bit PC relative address * 4 (MIPS16OP_*_IMM8) - "B" 5 bit PC relative address * 8 (MIPS16OP_*_IMM5) - "E" 5 bit PC relative address * 4 (MIPS16OP_*_IMM5) - "m" 7 bit register list for save instruction (18 bit extended) - "M" 7 bit register list for restore instruction (18 bit extended) - */ - -/* Save/restore encoding for the args field when all 4 registers are - either saved as arguments or saved/restored as statics. */ -#define MIPS16_ALL_ARGS 0xe -#define MIPS16_ALL_STATICS 0xb - -/* The following flags have the same value for the mips16 opcode - table: - - INSN_ISA3 - - INSN_UNCOND_BRANCH_DELAY - INSN_COND_BRANCH_DELAY - INSN_COND_BRANCH_LIKELY (never used) - INSN_READ_HI - INSN_READ_LO - INSN_WRITE_HI - INSN_WRITE_LO - INSN_TRAP - FP_D (never used) - */ - -extern const struct mips_operand *decode_mips16_operand (char, bfd_boolean); -extern const struct mips_opcode mips16_opcodes[]; -extern const int bfd_mips16_num_opcodes; - -/* These are the bit masks and shift counts used for the different fields - in the microMIPS instruction formats. No masks are provided for the - fixed portions of an instruction, since they are not needed. */ - -#define MICROMIPSOP_MASK_IMMEDIATE 0xffff -#define MICROMIPSOP_SH_IMMEDIATE 0 -#define MICROMIPSOP_MASK_DELTA 0xffff -#define MICROMIPSOP_SH_DELTA 0 -#define MICROMIPSOP_MASK_CODE10 0x3ff -#define MICROMIPSOP_SH_CODE10 16 /* 10-bit wait code. */ -#define MICROMIPSOP_MASK_TRAP 0xf -#define MICROMIPSOP_SH_TRAP 12 /* 4-bit trap code. */ -#define MICROMIPSOP_MASK_SHAMT 0x1f -#define MICROMIPSOP_SH_SHAMT 11 -#define MICROMIPSOP_MASK_TARGET 0x3ffffff -#define MICROMIPSOP_SH_TARGET 0 -#define MICROMIPSOP_MASK_EXTLSB 0x1f /* "ext" LSB. */ -#define MICROMIPSOP_SH_EXTLSB 6 -#define MICROMIPSOP_MASK_EXTMSBD 0x1f /* "ext" MSBD. */ -#define MICROMIPSOP_SH_EXTMSBD 11 -#define MICROMIPSOP_MASK_INSMSB 0x1f /* "ins" MSB. */ -#define MICROMIPSOP_SH_INSMSB 11 -#define MICROMIPSOP_MASK_CODE 0x3ff -#define MICROMIPSOP_SH_CODE 16 /* 10-bit higher break code. */ -#define MICROMIPSOP_MASK_CODE2 0x3ff -#define MICROMIPSOP_SH_CODE2 6 /* 10-bit lower break code. */ -#define MICROMIPSOP_MASK_CACHE 0x1f -#define MICROMIPSOP_SH_CACHE 21 /* 5-bit cache op. */ -#define MICROMIPSOP_MASK_SEL 0x7 -#define MICROMIPSOP_SH_SEL 11 -#define MICROMIPSOP_MASK_OFFSET12 0xfff -#define MICROMIPSOP_SH_OFFSET12 0 -#define MICROMIPSOP_MASK_3BITPOS 0x7 -#define MICROMIPSOP_SH_3BITPOS 21 -#define MICROMIPSOP_MASK_STYPE 0x1f -#define MICROMIPSOP_SH_STYPE 16 -#define MICROMIPSOP_MASK_OFFSET10 0x3ff -#define MICROMIPSOP_SH_OFFSET10 6 -#define MICROMIPSOP_MASK_RS 0x1f -#define MICROMIPSOP_SH_RS 16 -#define MICROMIPSOP_MASK_RT 0x1f -#define MICROMIPSOP_SH_RT 21 -#define MICROMIPSOP_MASK_RD 0x1f -#define MICROMIPSOP_SH_RD 11 -#define MICROMIPSOP_MASK_FS 0x1f -#define MICROMIPSOP_SH_FS 16 -#define MICROMIPSOP_MASK_FT 0x1f -#define MICROMIPSOP_SH_FT 21 -#define MICROMIPSOP_MASK_FD 0x1f -#define MICROMIPSOP_SH_FD 11 -#define MICROMIPSOP_MASK_FR 0x1f -#define MICROMIPSOP_SH_FR 6 -#define MICROMIPSOP_MASK_RS3 0x1f -#define MICROMIPSOP_SH_RS3 6 -#define MICROMIPSOP_MASK_PREFX 0x1f -#define MICROMIPSOP_SH_PREFX 11 -#define MICROMIPSOP_MASK_BCC 0x7 -#define MICROMIPSOP_SH_BCC 18 -#define MICROMIPSOP_MASK_CCC 0x7 -#define MICROMIPSOP_SH_CCC 13 -#define MICROMIPSOP_MASK_COPZ 0x7fffff -#define MICROMIPSOP_SH_COPZ 3 - -#define MICROMIPSOP_MASK_MB 0x7 -#define MICROMIPSOP_SH_MB 23 -#define MICROMIPSOP_MASK_MC 0x7 -#define MICROMIPSOP_SH_MC 4 -#define MICROMIPSOP_MASK_MD 0x7 -#define MICROMIPSOP_SH_MD 7 -#define MICROMIPSOP_MASK_ME 0x7 -#define MICROMIPSOP_SH_ME 1 -#define MICROMIPSOP_MASK_MF 0x7 -#define MICROMIPSOP_SH_MF 3 -#define MICROMIPSOP_MASK_MG 0x7 -#define MICROMIPSOP_SH_MG 0 -#define MICROMIPSOP_MASK_MH 0x7 -#define MICROMIPSOP_SH_MH 7 -#define MICROMIPSOP_MASK_MJ 0x1f -#define MICROMIPSOP_SH_MJ 0 -#define MICROMIPSOP_MASK_ML 0x7 -#define MICROMIPSOP_SH_ML 4 -#define MICROMIPSOP_MASK_MM 0x7 -#define MICROMIPSOP_SH_MM 1 -#define MICROMIPSOP_MASK_MN 0x7 -#define MICROMIPSOP_SH_MN 4 -#define MICROMIPSOP_MASK_MP 0x1f -#define MICROMIPSOP_SH_MP 5 -#define MICROMIPSOP_MASK_MQ 0x7 -#define MICROMIPSOP_SH_MQ 7 - -#define MICROMIPSOP_MASK_IMMA 0x7f -#define MICROMIPSOP_SH_IMMA 0 -#define MICROMIPSOP_MASK_IMMB 0x7 -#define MICROMIPSOP_SH_IMMB 1 -#define MICROMIPSOP_MASK_IMMC 0xf -#define MICROMIPSOP_SH_IMMC 0 -#define MICROMIPSOP_MASK_IMMD 0x3ff -#define MICROMIPSOP_SH_IMMD 0 -#define MICROMIPSOP_MASK_IMME 0x7f -#define MICROMIPSOP_SH_IMME 0 -#define MICROMIPSOP_MASK_IMMF 0xf -#define MICROMIPSOP_SH_IMMF 0 -#define MICROMIPSOP_MASK_IMMG 0xf -#define MICROMIPSOP_SH_IMMG 0 -#define MICROMIPSOP_MASK_IMMH 0xf -#define MICROMIPSOP_SH_IMMH 0 -#define MICROMIPSOP_MASK_IMMI 0x7f -#define MICROMIPSOP_SH_IMMI 0 -#define MICROMIPSOP_MASK_IMMJ 0xf -#define MICROMIPSOP_SH_IMMJ 0 -#define MICROMIPSOP_MASK_IMML 0xf -#define MICROMIPSOP_SH_IMML 0 -#define MICROMIPSOP_MASK_IMMM 0x7 -#define MICROMIPSOP_SH_IMMM 1 -#define MICROMIPSOP_MASK_IMMN 0x3 -#define MICROMIPSOP_SH_IMMN 4 -#define MICROMIPSOP_MASK_IMMO 0xf -#define MICROMIPSOP_SH_IMMO 0 -#define MICROMIPSOP_MASK_IMMP 0x1f -#define MICROMIPSOP_SH_IMMP 0 -#define MICROMIPSOP_MASK_IMMQ 0x7fffff -#define MICROMIPSOP_SH_IMMQ 0 -#define MICROMIPSOP_MASK_IMMU 0x1f -#define MICROMIPSOP_SH_IMMU 0 -#define MICROMIPSOP_MASK_IMMW 0x3f -#define MICROMIPSOP_SH_IMMW 1 -#define MICROMIPSOP_MASK_IMMX 0xf -#define MICROMIPSOP_SH_IMMX 1 -#define MICROMIPSOP_MASK_IMMY 0x1ff -#define MICROMIPSOP_SH_IMMY 1 - -/* MIPS DSP ASE */ -#define MICROMIPSOP_MASK_DSPACC 0x3 -#define MICROMIPSOP_SH_DSPACC 14 -#define MICROMIPSOP_MASK_DSPSFT 0x3f -#define MICROMIPSOP_SH_DSPSFT 16 -#define MICROMIPSOP_MASK_SA3 0x7 -#define MICROMIPSOP_SH_SA3 13 -#define MICROMIPSOP_MASK_SA4 0xf -#define MICROMIPSOP_SH_SA4 12 -#define MICROMIPSOP_MASK_IMM8 0xff -#define MICROMIPSOP_SH_IMM8 13 -#define MICROMIPSOP_MASK_IMM10 0x3ff -#define MICROMIPSOP_SH_IMM10 16 -#define MICROMIPSOP_MASK_WRDSP 0x3f -#define MICROMIPSOP_SH_WRDSP 14 -#define MICROMIPSOP_MASK_BP 0x3 -#define MICROMIPSOP_SH_BP 14 - -/* Placeholders for fields that only exist in the traditional 32-bit - instruction encoding; see the comment above for details. */ -#define MICROMIPSOP_MASK_CODE20 0 -#define MICROMIPSOP_SH_CODE20 0 -#define MICROMIPSOP_MASK_PERFREG 0 -#define MICROMIPSOP_SH_PERFREG 0 -#define MICROMIPSOP_MASK_CODE19 0 -#define MICROMIPSOP_SH_CODE19 0 -#define MICROMIPSOP_MASK_ALN 0 -#define MICROMIPSOP_SH_ALN 0 -#define MICROMIPSOP_MASK_VECBYTE 0 -#define MICROMIPSOP_SH_VECBYTE 0 -#define MICROMIPSOP_MASK_VECALIGN 0 -#define MICROMIPSOP_SH_VECALIGN 0 -#define MICROMIPSOP_MASK_DSPACC_S 0 -#define MICROMIPSOP_SH_DSPACC_S 0 -#define MICROMIPSOP_MASK_DSPSFT_7 0 -#define MICROMIPSOP_SH_DSPSFT_7 0 -#define MICROMIPSOP_MASK_RDDSP 0 -#define MICROMIPSOP_SH_RDDSP 0 -#define MICROMIPSOP_MASK_MT_U 0 -#define MICROMIPSOP_SH_MT_U 0 -#define MICROMIPSOP_MASK_MT_H 0 -#define MICROMIPSOP_SH_MT_H 0 -#define MICROMIPSOP_MASK_MTACC_T 0 -#define MICROMIPSOP_SH_MTACC_T 0 -#define MICROMIPSOP_MASK_MTACC_D 0 -#define MICROMIPSOP_SH_MTACC_D 0 -#define MICROMIPSOP_MASK_BBITIND 0 -#define MICROMIPSOP_SH_BBITIND 0 -#define MICROMIPSOP_MASK_CINSPOS 0 -#define MICROMIPSOP_SH_CINSPOS 0 -#define MICROMIPSOP_MASK_CINSLM1 0 -#define MICROMIPSOP_SH_CINSLM1 0 -#define MICROMIPSOP_MASK_SEQI 0 -#define MICROMIPSOP_SH_SEQI 0 -#define MICROMIPSOP_SH_OFFSET_A 0 -#define MICROMIPSOP_MASK_OFFSET_A 0 -#define MICROMIPSOP_SH_OFFSET_B 0 -#define MICROMIPSOP_MASK_OFFSET_B 0 -#define MICROMIPSOP_SH_OFFSET_C 0 -#define MICROMIPSOP_MASK_OFFSET_C 0 -#define MICROMIPSOP_SH_RZ 0 -#define MICROMIPSOP_MASK_RZ 0 -#define MICROMIPSOP_SH_FZ 0 -#define MICROMIPSOP_MASK_FZ 0 - -/* microMIPS Enhanced VA Scheme */ -#define MICROMIPSOP_SH_EVAOFFSET 0 -#define MICROMIPSOP_MASK_EVAOFFSET 0x1ff - -/* These are the characters which may appears in the args field of a microMIPS - instruction. They appear in the order in which the fields appear - when the instruction is used. Commas and parentheses in the args - string are ignored when assembling, and written into the output - when disassembling. - - The followings are for 16-bit microMIPS instructions. - - "ma" must be $28 - "mc" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_MC) at bit 4 - The same register used as both source and target. - "md" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_MD) at bit 7 - "me" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_ME) at bit 1 - The same register used as both source and target. - "mf" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_MF) at bit 3 - "mg" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_MG) at bit 0 - "mh" 3-bit MIPS register pair (MICROMIPSOP_*_MH) at bit 7 - "mj" 5-bit MIPS registers (MICROMIPSOP_*_MJ) at bit 0 - "ml" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_ML) at bit 4 - "mm" 3-bit MIPS registers 0, 2, 3, 16-20 (MICROMIPSOP_*_MM) at bit 1 - "mn" 3-bit MIPS registers 0, 2, 3, 16-20 (MICROMIPSOP_*_MN) at bit 4 - "mp" 5-bit MIPS registers (MICROMIPSOP_*_MP) at bit 5 - "mq" 3-bit MIPS registers 0, 2-7, 17 (MICROMIPSOP_*_MQ) at bit 7 - "mr" must be program counter - "ms" must be $29 - "mt" must be the same as the previous register - "mx" must be the same as the destination register - "my" must be $31 - "mz" must be $0 - - "mA" 7-bit immediate (-64 .. 63) << 2 (MICROMIPSOP_*_IMMA) - "mB" 3-bit immediate (-1, 1, 4, 8, 12, 16, 20, 24) (MICROMIPSOP_*_IMMB) - "mC" 4-bit immediate (1, 2, 3, 4, 7, 8, 15, 16, 31, 32, 63, 64, 128, 255, - 32768, 65535) (MICROMIPSOP_*_IMMC) - "mD" 10-bit branch address (-512 .. 511) << 1 (MICROMIPSOP_*_IMMD) - "mE" 7-bit branch address (-64 .. 63) << 1 (MICROMIPSOP_*_IMME) - "mF" 4-bit immediate (0 .. 15) (MICROMIPSOP_*_IMMF) - "mG" 4-bit immediate (-1 .. 14) (MICROMIPSOP_*_IMMG) - "mH" 4-bit immediate (0 .. 15) << 1 (MICROMIPSOP_*_IMMH) - "mI" 7-bit immediate (-1 .. 126) (MICROMIPSOP_*_IMMI) - "mJ" 4-bit immediate (0 .. 15) << 2 (MICROMIPSOP_*_IMMJ) - "mL" 4-bit immediate (0 .. 15) (MICROMIPSOP_*_IMML) - "mM" 3-bit immediate (1 .. 8) (MICROMIPSOP_*_IMMM) - "mN" 2-bit immediate (0 .. 3) for register list (MICROMIPSOP_*_IMMN) - "mO" 4-bit immediate (0 .. 15) (MICROMIPSOP_*_IMML) - "mP" 5-bit immediate (0 .. 31) << 2 (MICROMIPSOP_*_IMMP) - "mU" 5-bit immediate (0 .. 31) << 2 (MICROMIPSOP_*_IMMU) - "mW" 6-bit immediate (0 .. 63) << 2 (MICROMIPSOP_*_IMMW) - "mX" 4-bit immediate (-8 .. 7) (MICROMIPSOP_*_IMMX) - "mY" 9-bit immediate (-258 .. -3, 2 .. 257) << 2 (MICROMIPSOP_*_IMMY) - "mZ" must be zero - - In most cases 32-bit microMIPS instructions use the same characters - as MIPS (with ADDIUPC being a notable exception, but there are some - others too). - - "." 10-bit signed offset/number (MICROMIPSOP_*_OFFSET10) - "1" 5-bit sync type (MICROMIPSOP_*_STYPE) - "<" 5-bit shift amount (MICROMIPSOP_*_SHAMT) - ">" shift amount between 32 and 63, stored after subtracting 32 - (MICROMIPSOP_*_SHAMT) - "\" 3-bit position for ASET and ACLR (MICROMIPSOP_*_3BITPOS) - "|" 4-bit trap code (MICROMIPSOP_*_TRAP) - "~" 12-bit signed offset (MICROMIPSOP_*_OFFSET12) - "a" 26-bit target address (MICROMIPSOP_*_TARGET) - "+i" likewise, but flips bit 0 - "b" 5-bit base register (MICROMIPSOP_*_RS) - "c" 10-bit higher breakpoint code (MICROMIPSOP_*_CODE) - "d" 5-bit destination register specifier (MICROMIPSOP_*_RD) - "h" 5-bit PREFX hint (MICROMIPSOP_*_PREFX) - "i" 16-bit unsigned immediate (MICROMIPSOP_*_IMMEDIATE) - "j" 16-bit signed immediate (MICROMIPSOP_*_DELTA) - "k" 5-bit cache opcode in target register position (MICROMIPSOP_*_CACHE) - "n" register list for 32-bit LWM/SWM instruction (MICROMIPSOP_*_RT) - "o" 16-bit signed offset (MICROMIPSOP_*_DELTA) - "p" 16-bit PC-relative branch target address (MICROMIPSOP_*_DELTA) - "q" 10-bit lower breakpoint code (MICROMIPSOP_*_CODE2) - "r" 5-bit same register used as both source and target (MICROMIPSOP_*_RS) - "s" 5-bit source register specifier (MICROMIPSOP_*_RS) - "t" 5-bit target register (MICROMIPSOP_*_RT) - "u" 16-bit upper 16 bits of address (MICROMIPSOP_*_IMMEDIATE) - "v" 5-bit same register used as both source and destination - (MICROMIPSOP_*_RS) - "w" 5-bit same register used as both target and destination - (MICROMIPSOP_*_RT) - "y" 5-bit source 3 register for ALNV.PS (MICROMIPSOP_*_RS3) - "z" must be zero register - "C" 23-bit coprocessor function code (MICROMIPSOP_*_COPZ) - "B" 10-bit syscall/wait function code (MICROMIPSOP_*_CODE10) - "K" 5-bit Hardware Register (RDHWR instruction) (MICROMIPSOP_*_RS) - - "+A" 5-bit INS/EXT/DINS/DEXT/DINSM/DEXTM position, which becomes - LSB (MICROMIPSOP_*_EXTLSB). - Enforces: 0 <= pos < 32. - "+B" 5-bit INS/DINS size, which becomes MSB (MICROMIPSOP_*_INSMSB). - Requires that "+A" or "+E" occur first to set position. - Enforces: 0 < (pos+size) <= 32. - "+C" 5-bit EXT/DEXT size, which becomes MSBD (MICROMIPSOP_*_EXTMSBD). - Requires that "+A" or "+E" occur first to set position. - Enforces: 0 < (pos+size) <= 32. - (Also used by DEXT w/ different limits, but limits for - that are checked by the M_DEXT macro.) - "+E" 5-bit DINSU/DEXTU position, which becomes LSB-32 (MICROMIPSOP_*_EXTLSB). - Enforces: 32 <= pos < 64. - "+F" 5-bit DINSM/DINSU size, which becomes MSB-32 (MICROMIPSOP_*_INSMSB). - Requires that "+A" or "+E" occur first to set position. - Enforces: 32 < (pos+size) <= 64. - "+G" 5-bit DEXTM size, which becomes MSBD-32 (MICROMIPSOP_*_EXTMSBD). - Requires that "+A" or "+E" occur first to set position. - Enforces: 32 < (pos+size) <= 64. - "+H" 5-bit DEXTU size, which becomes MSBD (MICROMIPSOP_*_EXTMSBD). - Requires that "+A" or "+E" occur first to set position. - Enforces: 32 < (pos+size) <= 64. - - PC-relative addition (ADDIUPC) instruction: - "mQ" 23-bit offset (-4194304 .. 4194303) << 2 (MICROMIPSOP_*_IMMQ) - "mb" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_MB) at bit 23 - - Floating point instructions: - "D" 5-bit destination register (MICROMIPSOP_*_FD) - "M" 3-bit compare condition code (MICROMIPSOP_*_CCC) - "N" 3-bit branch condition code (MICROMIPSOP_*_BCC) - "R" 5-bit fr source 3 register (MICROMIPSOP_*_FR) - "S" 5-bit fs source 1 register (MICROMIPSOP_*_FS) - "T" 5-bit ft source 2 register (MICROMIPSOP_*_FT) - "V" 5-bit same register used as floating source and destination or target - (MICROMIPSOP_*_FS) - - Coprocessor instructions: - "E" 5-bit target register (MICROMIPSOP_*_RT) - "G" 5-bit source register (MICROMIPSOP_*_RS) - "H" 3-bit sel field for (D)MTC* and (D)MFC* (MICROMIPSOP_*_SEL) - - Macro instructions: - "A" general 32 bit expression - "I" 32-bit immediate (value placed in imm_expr). - "F" 64-bit floating point constant in .rdata - "L" 64-bit floating point constant in .lit8 - "f" 32-bit floating point constant - "l" 32-bit floating point constant in .lit4 - - DSP ASE usage: - "2" 2-bit unsigned immediate for byte align (MICROMIPSOP_*_BP) - "3" 3-bit unsigned immediate (MICROMIPSOP_*_SA3) - "4" 4-bit unsigned immediate (MICROMIPSOP_*_SA4) - "5" 8-bit unsigned immediate (MICROMIPSOP_*_IMM8) - "6" 5-bit unsigned immediate (MICROMIPSOP_*_RS) - "7" 2-bit DSP accumulator register (MICROMIPSOP_*_DSPACC) - "8" 6-bit unsigned immediate (MICROMIPSOP_*_WRDSP) - "0" 6-bit signed immediate (MICROMIPSOP_*_DSPSFT) - "@" 10-bit signed immediate (MICROMIPSOP_*_IMM10) - "^" 5-bit unsigned immediate (MICROMIPSOP_*_RD) - - microMIPS Enhanced VA Scheme: - "+j" 9-bit signed offset in bit 0 (OP_*_EVAOFFSET) - - MSA Extension: - "+d" 5-bit MSA register (FD) - "+e" 5-bit MSA register (FS) - "+h" 5-bit MSA register (FT) - "+k" 5-bit GPR at bit 6 - "+l" 5-bit MSA control register at bit 6 - "+n" 5-bit MSA control register at bit 11 - "+o" 5-bit vector element index at bit 16 - "+u" 4-bit vector element index at bit 16 - "+v" 3-bit vector element index at bit 16 - "+w" 2-bit vector element index at bit 16 - "+x" 5-bit shift amount at bit 16 - "+T" (-512 .. 511) << 0 at bit 16 - "+U" (-512 .. 511) << 1 at bit 16 - "+V" (-512 .. 511) << 2 at bit 16 - "+W" (-512 .. 511) << 3 at bit 16 - "+~" 2 bit LSA/DLSA shift amount from 1 to 4 at bit 6 - "+!" 3 bit unsigned bit position at bit 16 - "+@" 4 bit unsigned bit position at bit 16 - "+#" 6 bit unsigned bit position at bit 16 - "+$" 5 bit unsigned immediate at bit 16 - "+%" 5 bit signed immediate at bit 16 - "+^" 10 bit signed immediate at bit 11 - "+&" 0 vector element index - "+*" 5-bit register vector element index at bit 16 - "+|" 8-bit mask at bit 16 - - Other: - "()" parens surrounding optional value - "," separates operands - "+" start of extension sequence - "m" start of microMIPS extension sequence - - Characters used so far, for quick reference when adding more: - "12345678 0" - "<>(),+.@\^|~" - "ABCDEFGHI KLMN RST V " - "abcd f hijklmnopqrstuvw yz" - - Extension character sequences used so far ("+" followed by the - following), for quick reference when adding more: - "" - "~!@#$%^&*|" - "ABCEFGHTUVW" - "dehijklnouvwx" - - Extension character sequences used so far ("m" followed by the - following), for quick reference when adding more: - "" - "" - " BCDEFGHIJ LMNOPQ U WXYZ" - " bcdefghij lmn pq st xyz" -*/ - -extern const struct mips_operand *decode_micromips_operand (const char *); -extern const struct mips_opcode micromips_opcodes[]; -extern const int bfd_micromips_num_opcodes; - -/* A NOP insn impemented as "or at,at,zero". - Used to implement -mfix-loongson2f. */ -#define LOONGSON2F_NOP_INSN 0x00200825 - -#endif /* _MIPS_H_ */ diff --git a/include/opcode/mmix.h b/include/opcode/mmix.h deleted file mode 100644 index f931545..0000000 --- a/include/opcode/mmix.h +++ /dev/null @@ -1,187 +0,0 @@ -/* mmix.h -- Header file for MMIX opcode table - Copyright (C) 2001, 2003, 2010 Free Software Foundation, Inc. - Written by Hans-Peter Nilsson (hp@bitrange.com) - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* We could have just a char*[] table indexed by the register number, but - that would not allow for synonyms. The table is terminated with an - entry with a NULL name. */ -struct mmix_spec_reg -{ - const char *name; - unsigned int number; -}; - -/* General indication of the type of instruction. */ -enum mmix_insn_type - { - mmix_type_pseudo, - mmix_type_normal, - mmix_type_branch, - mmix_type_condbranch, - mmix_type_memaccess_octa, - mmix_type_memaccess_tetra, - mmix_type_memaccess_wyde, - mmix_type_memaccess_byte, - mmix_type_memaccess_block, - mmix_type_jsr - }; - -/* Type of operands an instruction takes. Use when parsing assembly code - and disassembling. */ -enum mmix_operands_type - { - mmix_operands_none = 0, - - /* All operands are registers: "$X,$Y,$Z". */ - mmix_operands_regs, - - /* "$X,YZ", like SETH. */ - mmix_operands_reg_yz, - - /* The regular "$X,$Y,$Z|Z". - The Z is optional; if only "$X,$Y" is given, then "$X,$Y,0" is - assumed. */ - mmix_operands_regs_z_opt, - - /* The regular "$X,$Y,$Z|Z". */ - mmix_operands_regs_z, - - /* "Address"; only JMP. Zero operands allowed unless GNU syntax. */ - mmix_operands_jmp, - - /* "$X|X,$Y,$Z|Z": PUSHGO; like "3", but X can be expressed as an - integer. */ - mmix_operands_pushgo, - - /* Two registers or a register and a byte, like FLOT, possibly with - rounding: "$X,$Z|Z" or "$X,ROUND_MODE,$Z|Z". */ - mmix_operands_roundregs_z, - - /* "X,YZ", POP. Unless GNU syntax, zero or one operand is allowed. */ - mmix_operands_pop, - - /* Two registers, possibly with rounding: "$X,$Z" or - "$X,ROUND_MODE,$Z". */ - mmix_operands_roundregs, - - /* "XYZ", like SYNC. */ - mmix_operands_sync, - - /* "X,$Y,$Z|Z", like SYNCD. */ - mmix_operands_x_regs_z, - - /* "$X,Y,$Z|Z", like NEG and NEGU. The Y field is optional, default 0. */ - mmix_operands_neg, - - /* "$X,Address, like GETA or branches. */ - mmix_operands_regaddr, - - /* "$X|X,Address, like PUSHJ. */ - mmix_operands_pushj, - - /* "$X,spec_reg"; GET. */ - mmix_operands_get, - - /* "spec_reg,$Z|Z"; PUT. */ - mmix_operands_put, - - /* Two registers, "$X,$Y". */ - mmix_operands_set, - - /* "$X,0"; SAVE. */ - mmix_operands_save, - - /* "0,$Z"; UNSAVE. */ - mmix_operands_unsave, - - /* "X,Y,Z"; like SWYM or TRAP. Zero (or 1 if GNU syntax) to three - operands, interpreted as 0; XYZ; X, YZ and X, Y, Z. */ - mmix_operands_xyz_opt, - - /* Just "Z", like RESUME. Unless GNU syntax, the operand can be omitted - and will then be assumed zero. */ - mmix_operands_resume, - - /* These are specials to handle that pseudo-directives are specified - like ordinary insns when being mmixal-compatible. They signify the - specific pseudo-directive rather than the operands type. */ - - /* LOC. */ - mmix_operands_loc, - - /* PREFIX. */ - mmix_operands_prefix, - - /* BYTE. */ - mmix_operands_byte, - - /* WYDE. */ - mmix_operands_wyde, - - /* TETRA. */ - mmix_operands_tetra, - - /* OCTA. */ - mmix_operands_octa, - - /* LOCAL. */ - mmix_operands_local, - - /* BSPEC. */ - mmix_operands_bspec, - - /* ESPEC. */ - mmix_operands_espec, - }; - -struct mmix_opcode - { - const char *name; - unsigned long match; - unsigned long lose; - enum mmix_operands_type operands; - - /* This is used by the disassembly function. */ - enum mmix_insn_type type; - }; - -/* Declare the actual tables. */ -extern const struct mmix_opcode mmix_opcodes[]; - -/* This one is terminated with an entry with a NULL name. */ -extern const struct mmix_spec_reg mmix_spec_regs[]; - -/* Some insn values we use when padding and synthesizing address loads. */ -#define IMM_OFFSET_BIT 1 -#define COND_INV_BIT 0x8 -#define PRED_INV_BIT 0x10 - -#define PUSHGO_INSN_BYTE 0xbe -#define GO_INSN_BYTE 0x9e -#define SETL_INSN_BYTE 0xe3 -#define INCML_INSN_BYTE 0xe6 -#define INCMH_INSN_BYTE 0xe5 -#define INCH_INSN_BYTE 0xe4 -#define SWYM_INSN_BYTE 0xfd -#define JMP_INSN_BYTE 0xf0 - -/* We can have 256 - 32 (local registers) - 1 ($255 is not allocatable) - global registers. */ -#define MAX_GREGS 223 diff --git a/include/opcode/mn10200.h b/include/opcode/mn10200.h deleted file mode 100644 index b597d7b..0000000 --- a/include/opcode/mn10200.h +++ /dev/null @@ -1,111 +0,0 @@ -/* mn10200.h -- Header file for Matsushita 10200 opcode table - Copyright 1996, 1997, 2010 Free Software Foundation, Inc. - Written by Jeff Law, Cygnus Support - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef MN10200_H -#define MN10200_H - -/* The opcode table is an array of struct mn10200_opcode. */ - -struct mn10200_opcode -{ - /* The opcode name. */ - const char *name; - - /* The opcode itself. Those bits which will be filled in with - operands are zeroes. */ - unsigned long opcode; - - /* The opcode mask. This is used by the disassembler. This is a - mask containing ones indicating those bits which must match the - opcode field, and zeroes indicating those bits which need not - match (and are presumably filled in by operands). */ - unsigned long mask; - - /* The format of this opcode. */ - unsigned char format; - - /* An array of operand codes. Each code is an index into the - operand table. They appear in the order which the operands must - appear in assembly code, and are terminated by a zero. */ - unsigned char operands[8]; -}; - -/* The table itself is sorted by major opcode number, and is otherwise - in the order in which the disassembler should consider - instructions. */ -extern const struct mn10200_opcode mn10200_opcodes[]; -extern const int mn10200_num_opcodes; - - -/* The operands table is an array of struct mn10200_operand. */ - -struct mn10200_operand -{ - /* The number of bits in the operand. */ - int bits; - - /* How far the operand is left shifted in the instruction. */ - int shift; - - /* One bit syntax flags. */ - int flags; -}; - -/* Elements in the table are retrieved by indexing with values from - the operands field of the mn10200_opcodes table. */ - -extern const struct mn10200_operand mn10200_operands[]; - -/* Values defined for the flags field of a struct mn10200_operand. */ -#define MN10200_OPERAND_DREG 0x1 - -#define MN10200_OPERAND_AREG 0x2 - -#define MN10200_OPERAND_PSW 0x4 - -#define MN10200_OPERAND_MDR 0x8 - -#define MN10200_OPERAND_SIGNED 0x10 - -#define MN10200_OPERAND_PROMOTE 0x20 - -#define MN10200_OPERAND_PAREN 0x40 - -#define MN10200_OPERAND_REPEATED 0x80 - -#define MN10200_OPERAND_EXTENDED 0x100 - -#define MN10200_OPERAND_NOCHECK 0x200 - -#define MN10200_OPERAND_PCREL 0x400 - -#define MN10200_OPERAND_MEMADDR 0x800 - -#define MN10200_OPERAND_RELAX 0x1000 - -#define FMT_1 1 -#define FMT_2 2 -#define FMT_3 3 -#define FMT_4 4 -#define FMT_5 5 -#define FMT_6 6 -#define FMT_7 7 -#endif /* MN10200_H */ diff --git a/include/opcode/mn10300.h b/include/opcode/mn10300.h deleted file mode 100644 index 16a139b..0000000 --- a/include/opcode/mn10300.h +++ /dev/null @@ -1,170 +0,0 @@ -/* mn10300.h -- Header file for Matsushita 10300 opcode table - Copyright 1996, 1997, 1998, 1999, 2003, 2010 Free Software Foundation, Inc. - Written by Jeff Law, Cygnus Support - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef MN10300_H -#define MN10300_H - -/* The opcode table is an array of struct mn10300_opcode. */ - -#define MN10300_MAX_OPERANDS 8 -struct mn10300_opcode -{ - /* The opcode name. */ - const char *name; - - /* The opcode itself. Those bits which will be filled in with - operands are zeroes. */ - unsigned long opcode; - - /* The opcode mask. This is used by the disassembler. This is a - mask containing ones indicating those bits which must match the - opcode field, and zeroes indicating those bits which need not - match (and are presumably filled in by operands). */ - unsigned long mask; - - /* A bitmask. For each operand, nonzero if it must not have the same - register specification as all other operands with a nonzero bit in - this flag. ie 0x81 would indicate that operands 7 and 0 must not - match. Note that we count operands from left to right as they appear - in the operands specification below. */ - unsigned int no_match_operands; - - /* The format of this opcode. */ - unsigned char format; - - /* Bitmask indicating what cpu variants this opcode is available on. - We assume mn10300 base opcodes are available everywhere, so we only - have to note opcodes which are available on other variants. */ - unsigned int machine; - - /* An array of operand codes. Each code is an index into the - operand table. They appear in the order which the operands must - appear in assembly code, and are terminated by a zero. */ - unsigned char operands[MN10300_MAX_OPERANDS]; -}; - -/* The table itself is sorted by major opcode number, and is otherwise - in the order in which the disassembler should consider - instructions. */ -extern const struct mn10300_opcode mn10300_opcodes[]; -extern const int mn10300_num_opcodes; - - -/* The operands table is an array of struct mn10300_operand. */ - -struct mn10300_operand -{ - /* The number of bits in the operand. */ - int bits; - - /* How far the operand is left shifted in the instruction. */ - int shift; - - /* One bit syntax flags. */ - int flags; -}; - -/* Elements in the table are retrieved by indexing with values from - the operands field of the mn10300_opcodes table. */ - -extern const struct mn10300_operand mn10300_operands[]; - -/* Values defined for the flags field of a struct mn10300_operand. */ -#define MN10300_OPERAND_DREG 0x1 - -#define MN10300_OPERAND_AREG 0x2 - -#define MN10300_OPERAND_SP 0x4 - -#define MN10300_OPERAND_PSW 0x8 - -#define MN10300_OPERAND_MDR 0x10 - -#define MN10300_OPERAND_SIGNED 0x20 - -#define MN10300_OPERAND_PROMOTE 0x40 - -#define MN10300_OPERAND_PAREN 0x80 - -#define MN10300_OPERAND_REPEATED 0x100 - -#define MN10300_OPERAND_EXTENDED 0x200 - -#define MN10300_OPERAND_SPLIT 0x400 - -#define MN10300_OPERAND_REG_LIST 0x800 - -#define MN10300_OPERAND_PCREL 0x1000 - -#define MN10300_OPERAND_MEMADDR 0x2000 - -#define MN10300_OPERAND_RELAX 0x4000 - -#define MN10300_OPERAND_USP 0x8000 - -#define MN10300_OPERAND_SSP 0x10000 - -#define MN10300_OPERAND_MSP 0x20000 - -#define MN10300_OPERAND_PC 0x40000 - -#define MN10300_OPERAND_EPSW 0x80000 - -#define MN10300_OPERAND_RREG 0x100000 - -#define MN10300_OPERAND_XRREG 0x200000 - -#define MN10300_OPERAND_PLUS 0x400000 - -#define MN10300_OPERAND_24BIT 0x800000 - -#define MN10300_OPERAND_FSREG 0x1000000 - -#define MN10300_OPERAND_FDREG 0x2000000 - -#define MN10300_OPERAND_FPCR 0x4000000 - -/* Opcode Formats. */ -#define FMT_S0 1 -#define FMT_S1 2 -#define FMT_S2 3 -#define FMT_S4 4 -#define FMT_S6 5 -#define FMT_D0 6 -#define FMT_D1 7 -#define FMT_D2 8 -#define FMT_D4 9 -#define FMT_D5 10 -#define FMT_D6 11 -#define FMT_D7 12 -#define FMT_D8 13 -#define FMT_D9 14 -#define FMT_D10 15 -#define FMT_D3 16 - -/* Variants of the mn10300 which have additional opcodes. */ -#define MN103 300 -#define AM30 300 - -#define AM33 330 -#define AM33_2 332 - -#endif /* MN10300_H */ diff --git a/include/opcode/moxie.h b/include/opcode/moxie.h deleted file mode 100644 index dae40c8..0000000 --- a/include/opcode/moxie.h +++ /dev/null @@ -1,74 +0,0 @@ -/* Definitions for decoding the moxie opcode table. - Copyright 2009 Free Software Foundation, Inc. - Contributed by Anthony Green (green@moxielogic.com). - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -/* Form 1 instructions come in different flavors: - - Some have no arguments (MOXIE_F1_NARG) - Some only use the A operand (MOXIE_F1_A) - Some use A and B registers (MOXIE_F1_AB) - Some use A and consume a 4 byte immediate value (MOXIE_F1_A4) - Some use just a 4 byte immediate value (MOXIE_F1_4) - Some use just a 4 byte memory address (MOXIE_F1_M) - Some use B and an indirect A (MOXIE_F1_AiB) - Some use A and an indirect B (MOXIE_F1_ABi) - Some consume a 4 byte immediate value and use X (MOXIE_F1_4A) - Some use B and an indirect A plus 4 bytes (MOXIE_F1_AiB4) - Some use A and an indirect B plus 4 bytes (MOXIE_F1_ABi4) - - Form 2 instructions also come in different flavors: - - Some have no arguments (MOXIE_F2_NARG) - Some use the A register and an 8-bit value (MOXIE_F2_A8V) - - Form 3 instructions also come in different flavors: - - Some have no arguments (MOXIE_F3_NARG) - Some have a 10-bit PC relative operand (MOXIE_F3_PCREL). */ - -#define MOXIE_F1_NARG 0x100 -#define MOXIE_F1_A 0x101 -#define MOXIE_F1_AB 0x102 -/* #define MOXIE_F1_ABC 0x103 */ -#define MOXIE_F1_A4 0x104 -#define MOXIE_F1_4 0x105 -#define MOXIE_F1_AiB 0x106 -#define MOXIE_F1_ABi 0x107 -#define MOXIE_F1_4A 0x108 -#define MOXIE_F1_AiB4 0x109 -#define MOXIE_F1_ABi4 0x10a -#define MOXIE_F1_M 0x10b - -#define MOXIE_F2_NARG 0x200 -#define MOXIE_F2_A8V 0x201 - -#define MOXIE_F3_NARG 0x300 -#define MOXIE_F3_PCREL 0x301 - -#define MOXIE_BAD 0x400 - -typedef struct moxie_opc_info_t -{ - short opcode; - unsigned itype; - const char * name; -} moxie_opc_info_t; - -extern const moxie_opc_info_t moxie_form1_opc_info[128]; -extern const moxie_opc_info_t moxie_form2_opc_info[4]; -extern const moxie_opc_info_t moxie_form3_opc_info[16]; diff --git a/include/opcode/msp430-decode.h b/include/opcode/msp430-decode.h deleted file mode 100644 index 0653ade..0000000 --- a/include/opcode/msp430-decode.h +++ /dev/null @@ -1,130 +0,0 @@ -/* Opcode decoder for the TI MSP430 - Copyright 2012-2013 Free Software Foundation, Inc. - Written by DJ Delorie - - This file is part of GDB, the GNU Debugger. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -typedef enum -{ - MSO_unknown, - /* Double-operand instructions - all repeat .REPEATS times. */ - MSO_mov, /* dest = src */ - MSO_add, /* dest += src */ - MSO_addc, /* dest += src + carry */ - MSO_subc, /* dest -= (src-1) + carry */ - MSO_sub, /* dest -= src */ - MSO_cmp, /* dest - src -> status */ - MSO_dadd, /* dest += src (as BCD) */ - MSO_bit, /* dest & src -> status */ - MSO_bic, /* dest &= ~src (bit clear) */ - MSO_bis, /* dest |= src (bit set, OR) */ - MSO_xor, /* dest ^= src */ - MSO_and, /* dest &= src */ - - /* Single-operand instructions. */ - MSO_rrc, /* Rotate through carry, dest >>= .REPEATS. */ - MSO_swpb, /* Swap lower bytes of operand. */ - MSO_rra, /* Signed shift dest >>= .REPEATS. */ - MSO_sxt, /* Sign extend lower byte. */ - MSO_push, /* Push .REPEATS registers (or other op) starting at SRC going towards R0. */ - MSO_pop, /* Pop .REPEATS registers starting at DEST going towards R15. */ - MSO_call, - MSO_reti, - - /* Jumps. */ - MSO_jmp, /* PC = SRC if .COND true. */ - - /* Extended single-operand instructions. */ - MSO_rru, /* Unsigned shift right, dest >>= .REPEATS. */ - -} MSP430_Opcode_ID; - -typedef enum -{ - MSP430_Operand_None, - MSP430_Operand_Immediate, - MSP430_Operand_Register, - MSP430_Operand_Indirect, - MSP430_Operand_Indirect_Postinc -} MSP430_Operand_Type; - -typedef enum -{ - MSR_0 = 0, - MSR_PC = 0, - MSR_SP = 1, - MSR_SR = 2, - MSR_CG = 3, - MSR_None = 16, -} MSP430_Register; - -typedef struct -{ - MSP430_Operand_Type type; - int addend; - MSP430_Register reg : 8; - MSP430_Register reg2 : 8; - unsigned char bit_number : 4; - unsigned char condition : 3; -} MSP430_Opcode_Operand; - -typedef enum -{ - MSP430_Byte = 0, - MSP430_Word, - MSP430_Addr -} MSP430_Size; - -/* These numerically match the bit encoding. */ -typedef enum -{ - MSC_nz = 0, - MSC_z, - MSC_nc, - MSC_c, - MSC_n, - MSC_ge, - MSC_l, - MSC_true, -} MSP430_Condition; - -#define MSP430_FLAG_C 0x01 -#define MSP430_FLAG_Z 0x02 -#define MSP430_FLAG_N 0x04 -#define MSP430_FLAG_V 0x80 - -typedef struct -{ - int lineno; - MSP430_Opcode_ID id; - unsigned flags_1:8; /* These flags are set to '1' by the insn. */ - unsigned flags_0:8; /* These flags are set to '0' by the insn. */ - unsigned flags_set:8; /* These flags are set appropriately by the insn. */ - unsigned zc:1; /* If set, pretend the carry bit is zero. */ - unsigned repeat_reg:1; /* If set, count is in REG[repeats]. */ - unsigned ofs_430x:1; /* If set, the offset in any operand is 430x (else use 430 compatibility mode). */ - unsigned repeats:5; /* Contains COUNT-1, or register number. */ - int n_bytes; /* Opcode size in BYTES. */ - char * syntax; - MSP430_Size size; /* Operand size in BITS. */ - MSP430_Condition cond; - /* By convention, these are [0]destination, [1]source. */ - MSP430_Opcode_Operand op[2]; -} MSP430_Opcode_Decoded; - -int msp430_decode_opcode (unsigned long, MSP430_Opcode_Decoded *, int (*)(void *), void *); diff --git a/include/opcode/msp430.h b/include/opcode/msp430.h deleted file mode 100644 index caddc42..0000000 --- a/include/opcode/msp430.h +++ /dev/null @@ -1,194 +0,0 @@ -/* Opcode table for the TI MSP430 microcontrollers - - Copyright 2002-2013 Free Software Foundation, Inc. - Contributed by Dmitry Diky - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef __MSP430_H_ -#define __MSP430_H_ - -struct msp430_operand_s -{ - int ol; /* Operand length words. */ - int am; /* Addr mode. */ - int reg; /* Register. */ - int mode; /* Pperand mode. */ -#define OP_REG 0 -#define OP_EXP 1 -#ifndef DASM_SECTION - expressionS exp; -#endif -}; - -#define BYTE_OPERATION (1 << 6) /* Byte operation flag for all instructions. */ - -struct msp430_opcode_s -{ - char *name; - int fmt; - int insn_opnumb; - int bin_opcode; - int bin_mask; -}; - -#define MSP_INSN(name, size, numb, bin, mask) { #name, size, numb, bin, mask } - -static struct msp430_opcode_s msp430_opcodes[] = -{ - MSP_INSN (and, 1, 2, 0xf000, 0xf000), - MSP_INSN (inv, 0, 1, 0xe330, 0xfff0), - MSP_INSN (xor, 1, 2, 0xe000, 0xf000), - MSP_INSN (setz, 0, 0, 0xd322, 0xffff), - MSP_INSN (setc, 0, 0, 0xd312, 0xffff), - MSP_INSN (eint, 0, 0, 0xd232, 0xffff), - MSP_INSN (setn, 0, 0, 0xd222, 0xffff), - MSP_INSN (bis, 1, 2, 0xd000, 0xf000), - MSP_INSN (clrz, 0, 0, 0xc322, 0xffff), - MSP_INSN (clrc, 0, 0, 0xc312, 0xffff), - MSP_INSN (dint, 0, 0, 0xc232, 0xffff), - MSP_INSN (clrn, 0, 0, 0xc222, 0xffff), - MSP_INSN (bic, 1, 2, 0xc000, 0xf000), - MSP_INSN (bit, 1, 2, 0xb000, 0xf000), - MSP_INSN (dadc, 0, 1, 0xa300, 0xff30), - MSP_INSN (dadd, 1, 2, 0xa000, 0xf000), - MSP_INSN (tst, 0, 1, 0x9300, 0xff30), - MSP_INSN (cmp, 1, 2, 0x9000, 0xf000), - MSP_INSN (decd, 0, 1, 0x8320, 0xff30), - MSP_INSN (dec, 0, 1, 0x8310, 0xff30), - MSP_INSN (sub, 1, 2, 0x8000, 0xf000), - MSP_INSN (sbc, 0, 1, 0x7300, 0xff30), - MSP_INSN (subc, 1, 2, 0x7000, 0xf000), - MSP_INSN (adc, 0, 1, 0x6300, 0xff30), - MSP_INSN (rlc, 0, 2, 0x6000, 0xf000), - MSP_INSN (addc, 1, 2, 0x6000, 0xf000), - MSP_INSN (incd, 0, 1, 0x5320, 0xff30), - MSP_INSN (inc, 0, 1, 0x5310, 0xff30), - MSP_INSN (rla, 0, 2, 0x5000, 0xf000), - MSP_INSN (add, 1, 2, 0x5000, 0xf000), - MSP_INSN (nop, 0, 0, 0x4303, 0xffff), - MSP_INSN (clr, 0, 1, 0x4300, 0xff30), - MSP_INSN (ret, 0, 0, 0x4130, 0xff30), - MSP_INSN (pop, 0, 1, 0x4130, 0xff30), - MSP_INSN (br, 0, 3, 0x4000, 0xf000), - MSP_INSN (mov, 1, 2, 0x4000, 0xf000), - MSP_INSN (jmp, 3, 1, 0x3c00, 0xfc00), - MSP_INSN (jl, 3, 1, 0x3800, 0xfc00), - MSP_INSN (jge, 3, 1, 0x3400, 0xfc00), - MSP_INSN (jn, 3, 1, 0x3000, 0xfc00), - MSP_INSN (jc, 3, 1, 0x2c00, 0xfc00), - MSP_INSN (jhs, 3, 1, 0x2c00, 0xfc00), - MSP_INSN (jnc, 3, 1, 0x2800, 0xfc00), - MSP_INSN (jlo, 3, 1, 0x2800, 0xfc00), - MSP_INSN (jz, 3, 1, 0x2400, 0xfc00), - MSP_INSN (jeq, 3, 1, 0x2400, 0xfc00), - MSP_INSN (jnz, 3, 1, 0x2000, 0xfc00), - MSP_INSN (jne, 3, 1, 0x2000, 0xfc00), - MSP_INSN (reti, 2, 0, 0x1300, 0xffc0), - MSP_INSN (call, 2, 1, 0x1280, 0xffc0), - MSP_INSN (push, 2, 1, 0x1200, 0xff80), - MSP_INSN (sxt, 2, 1, 0x1180, 0xffc0), - MSP_INSN (rra, 2, 1, 0x1100, 0xff80), - MSP_INSN (swpb, 2, 1, 0x1080, 0xffc0), - MSP_INSN (rrc, 2, 1, 0x1000, 0xff80), - /* Simple polymorphs. */ - MSP_INSN (beq, 4, 0, 0, 0xffff), - MSP_INSN (bne, 4, 1, 0, 0xffff), - MSP_INSN (blt, 4, 2, 0, 0xffff), - MSP_INSN (bltu, 4, 3, 0, 0xffff), - MSP_INSN (bge, 4, 4, 0, 0xffff), - MSP_INSN (bgeu, 4, 5, 0, 0xffff), - MSP_INSN (bltn, 4, 6, 0, 0xffff), - MSP_INSN (jump, 4, 7, 0, 0xffff), - /* Long polymorphs. */ - MSP_INSN (bgt, 5, 0, 0, 0xffff), - MSP_INSN (bgtu, 5, 1, 0, 0xffff), - MSP_INSN (bleu, 5, 2, 0, 0xffff), - MSP_INSN (ble, 5, 3, 0, 0xffff), - - /* MSP430X instructions - these ones use an extension word. - A negative format indicates an MSP430X instruction. */ - MSP_INSN (addcx, -2, 2, 0x6000, 0xf000), - MSP_INSN (addx, -2, 2, 0x5000, 0xf000), - MSP_INSN (andx, -2, 2, 0xf000, 0xf000), - MSP_INSN (bicx, -2, 2, 0xc000, 0xf000), - MSP_INSN (bisx, -2, 2, 0xd000, 0xf000), - MSP_INSN (bitx, -2, 2, 0xb000, 0xf000), - MSP_INSN (cmpx, -2, 2, 0x9000, 0xf000), - MSP_INSN (daddx, -2, 2, 0xa000, 0xf000), - MSP_INSN (movx, -2, 2, 0x4000, 0xf000), - MSP_INSN (subcx, -2, 2, 0x7000, 0xf000), - MSP_INSN (subx, -2, 2, 0x8000, 0xf000), - MSP_INSN (xorx, -2, 2, 0xe000, 0xf000), - - /* MSP430X Synthetic instructions. */ - MSP_INSN (adcx, -1, 1, 0x6300, 0xff30), - MSP_INSN (clra, -1, 1, 0x4300, 0xff30), - MSP_INSN (clrx, -1, 1, 0x4300, 0xff30), - MSP_INSN (dadcx, -1, 1, 0xa300, 0xff30), - MSP_INSN (decx, -1, 1, 0x8310, 0xff30), - MSP_INSN (decda, -1, 1, 0x8320, 0xff30), - MSP_INSN (decdx, -1, 1, 0x8320, 0xff30), - MSP_INSN (incx, -1, 1, 0x5310, 0xff30), - MSP_INSN (incda, -1, 1, 0x5320, 0xff30), - MSP_INSN (incdx, -1, 1, 0x5320, 0xff30), - MSP_INSN (invx, -1, 1, 0xe330, 0xfff0), - MSP_INSN (popx, -1, 1, 0x4130, 0xff30), - MSP_INSN (rlax, -1, 2, 0x5000, 0xf000), - MSP_INSN (rlcx, -1, 2, 0x6000, 0xf000), - MSP_INSN (sbcx, -1, 1, 0x7300, 0xff30), - MSP_INSN (tsta, -1, 1, 0x9300, 0xff30), - MSP_INSN (tstx, -1, 1, 0x9300, 0xff30), - - MSP_INSN (pushx, -3, 1, 0x1200, 0xff80), - MSP_INSN (rrax, -3, 1, 0x1100, 0xff80), - MSP_INSN (rrcx, -3, 1, 0x1000, 0xff80), - MSP_INSN (swpbx, -3, 1, 0x1080, 0xffc0), - MSP_INSN (sxtx, -3, 1, 0x1180, 0xffc0), - - /* MSP430X Address instructions - no extension word needed. - The insn_opnumb field is used to encode the nature of the - instruction for assembly and disassembly purposes. */ - MSP_INSN (calla, -1, 4, 0x1300, 0xff00), - - MSP_INSN (popm, -1, 5, 0x1600, 0xfe00), - MSP_INSN (pushm, -1, 5, 0x1400, 0xfe00), - - MSP_INSN (rrcm, -1, 6, 0x0040, 0xf3e0), - MSP_INSN (rram, -1, 6, 0x0140, 0xf3e0), - MSP_INSN (rlam, -1, 6, 0x0240, 0xf3e0), - MSP_INSN (rrum, -1, 6, 0x0340, 0xf3e0), - - MSP_INSN (rrux, -1, 7, 0x0340, 0xffe0), /* Synthesized in terms of RRUM. */ - - MSP_INSN (adda, -1, 8, 0x00a0, 0xf0b0), - MSP_INSN (cmpa, -1, 8, 0x0090, 0xf0b0), - MSP_INSN (suba, -1, 8, 0x00b0, 0xf0b0), - - MSP_INSN (reta, -1, 9, 0x0110, 0xffff), - MSP_INSN (bra, -1, 9, 0x0000, 0xf0cf), - MSP_INSN (mova, -1, 9, 0x0000, 0xf080), - MSP_INSN (mova, -1, 9, 0x0080, 0xf0b0), - MSP_INSN (mova, -1, 9, 0x00c0, 0xf0f0), - - /* Pseudo instruction to set the repeat field in the extension word. */ - MSP_INSN (rpt, -1, 10, 0x0000, 0x0000), - - /* End of instruction set. */ - { NULL, 0, 0, 0, 0 } -}; - -#endif diff --git a/include/opcode/nios2.h b/include/opcode/nios2.h deleted file mode 100644 index aa67098..0000000 --- a/include/opcode/nios2.h +++ /dev/null @@ -1,522 +0,0 @@ -/* Nios II opcode list for GAS, the GNU assembler. - Copyright (C) 2012, 2013 Free Software Foundation, Inc. - Contributed by Nigel Gray (ngray@altera.com). - Contributed by Mentor Graphics, Inc. - - This file is part of GAS, the GNU Assembler, and GDB, the GNU disassembler. - - GAS/GDB is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GAS/GDB is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GAS or GDB; see the file COPYING3. If not, write to - the Free Software Foundation, 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -#ifndef _NIOS2_H_ -#define _NIOS2_H_ - -#include "bfd.h" - -/**************************************************************************** - * This file contains structures, bit masks and shift counts used - * by the GNU toolchain to define the Nios II instruction set and - * access various opcode fields. - ****************************************************************************/ - -/* Identify different overflow situations for error messages. */ -enum overflow_type -{ - call_target_overflow = 0, - branch_target_overflow, - address_offset_overflow, - signed_immed16_overflow, - unsigned_immed16_overflow, - unsigned_immed5_overflow, - custom_opcode_overflow, - no_overflow -}; - -/* This structure holds information for a particular instruction. - - The args field is a string describing the operands. The following - letters can appear in the args: - c - a 5-bit control register index - d - a 5-bit destination register index - s - a 5-bit left source register index - t - a 5-bit right source register index - i - a 16-bit signed immediate - u - a 16-bit unsigned immediate - o - a 16-bit signed program counter relative offset - j - a 5-bit unsigned immediate - b - a 5-bit break instruction constant - l - a 8-bit custom instruction constant - m - a 26-bit unsigned immediate - Literal ',', '(', and ')' characters may also appear in the args as - delimiters. - - The pinfo field is INSN_MACRO for a macro. Otherwise, it is a collection - of bits describing the instruction, notably any relevant hazard - information. - - When assembling, the match field contains the opcode template, which - is modified by the arguments to produce the actual opcode - that is emitted. If pinfo is INSN_MACRO, then this is 0. - - If pinfo is INSN_MACRO, the mask field stores the macro identifier. - Otherwise this is a bit mask for the relevant portions of the opcode - when disassembling. If the actual opcode anded with the match field - equals the opcode field, then we have found the correct instruction. */ - -struct nios2_opcode -{ - const char *name; /* The name of the instruction. */ - const char *args; /* A string describing the arguments for this - instruction. */ - const char *args_test; /* Like args, but with an extra argument for - the expected opcode. */ - unsigned long num_args; /* The number of arguments the instruction - takes. */ - unsigned long match; /* The basic opcode for the instruction. */ - unsigned long mask; /* Mask for the opcode field of the - instruction. */ - unsigned long pinfo; /* Is this a real instruction or instruction - macro? */ - enum overflow_type overflow_msg; /* Used to generate informative - message when fixup overflows. */ -}; - -/* This value is used in the nios2_opcode.pinfo field to indicate that the - instruction is a macro or pseudo-op. This requires special treatment by - the assembler, and is used by the disassembler to determine whether to - check for a nop. */ -#define NIOS2_INSN_MACRO 0x80000000 -#define NIOS2_INSN_MACRO_MOV 0x80000001 -#define NIOS2_INSN_MACRO_MOVI 0x80000002 -#define NIOS2_INSN_MACRO_MOVIA 0x80000004 - -#define NIOS2_INSN_RELAXABLE 0x40000000 -#define NIOS2_INSN_UBRANCH 0x00000010 -#define NIOS2_INSN_CBRANCH 0x00000020 -#define NIOS2_INSN_CALL 0x00000040 - -#define NIOS2_INSN_ADDI 0x00000080 -#define NIOS2_INSN_ANDI 0x00000100 -#define NIOS2_INSN_ORI 0x00000200 -#define NIOS2_INSN_XORI 0x00000400 - - -/* Associates a register name ($6) with a 5-bit index (eg 6). */ -struct nios2_reg -{ - const char *name; - const int index; -}; - - -/* These are bit masks and shift counts for accessing the various - fields of a Nios II instruction. */ - -/* Macros for getting and setting an instruction field. */ -#define GET_INSN_FIELD(X, i) \ - (((i) & OP_MASK_##X) >> OP_SH_##X) -#define SET_INSN_FIELD(X, i, j) \ - ((i) = (((i) & ~OP_MASK_##X) | (((j) << OP_SH_##X) & OP_MASK_##X))) - -/* Instruction field definitions. */ -#define IW_A_LSB 27 -#define IW_A_MSB 31 -#define IW_A_SZ 5 -#define IW_A_MASK 0x1f - -#define IW_B_LSB 22 -#define IW_B_MSB 26 -#define IW_B_SZ 5 -#define IW_B_MASK 0x1f - -#define IW_C_LSB 17 -#define IW_C_MSB 21 -#define IW_C_SZ 5 -#define IW_C_MASK 0x1f - -#define IW_IMM16_LSB 6 -#define IW_IMM16_MSB 21 -#define IW_IMM16_SZ 16 -#define IW_IMM16_MASK 0xffff - -#define IW_IMM26_LSB 6 -#define IW_IMM26_MSB 31 -#define IW_IMM26_SZ 26 -#define IW_IMM26_MASK 0x3ffffff - -#define IW_OP_LSB 0 -#define IW_OP_MSB 5 -#define IW_OP_SZ 6 -#define IW_OP_MASK 0x3f - -#define IW_OPX_LSB 11 -#define IW_OPX_MSB 16 -#define IW_OPX_SZ 6 -#define IW_OPX_MASK 0x3f - -#define IW_SHIFT_IMM5_LSB 6 -#define IW_SHIFT_IMM5_MSB 10 -#define IW_SHIFT_IMM5_SZ 5 -#define IW_SHIFT_IMM5_MASK 0x1f - -#define IW_CONTROL_REGNUM_LSB 6 -#define IW_CONTROL_REGNUM_MSB 9 -#define IW_CONTROL_REGNUM_SZ 4 -#define IW_CONTROL_REGNUM_MASK 0xf - -/* Operator mask and shift. */ -#define OP_MASK_OP (IW_OP_MASK << IW_OP_LSB) -#define OP_SH_OP IW_OP_LSB - -/* Masks and shifts for I-type instructions. */ -#define OP_MASK_IOP (IW_OP_MASK << IW_OP_LSB) -#define OP_SH_IOP IW_OP_LSB - -#define OP_MASK_IMM16 (IW_IMM16_MASK << IW_IMM16_LSB) -#define OP_SH_IMM16 IW_IMM16_LSB - -#define OP_MASK_IRD (IW_B_MASK << IW_B_LSB) -#define OP_SH_IRD IW_B_LSB /* The same as T for I-type. */ - -#define OP_MASK_IRT (IW_B_MASK << IW_B_LSB) -#define OP_SH_IRT IW_B_LSB - -#define OP_MASK_IRS (IW_A_MASK << IW_A_LSB) -#define OP_SH_IRS IW_A_LSB - -/* Masks and shifts for R-type instructions. */ -#define OP_MASK_ROP (IW_OP_MASK << IW_OP_LSB) -#define OP_SH_ROP IW_OP_LSB - -#define OP_MASK_ROPX (IW_OPX_MASK << IW_OPX_LSB) -#define OP_SH_ROPX IW_OPX_LSB - -#define OP_MASK_RRD (IW_C_MASK << IW_C_LSB) -#define OP_SH_RRD IW_C_LSB - -#define OP_MASK_RRT (IW_B_MASK << IW_B_LSB) -#define OP_SH_RRT IW_B_LSB - -#define OP_MASK_RRS (IW_A_MASK << IW_A_LSB) -#define OP_SH_RRS IW_A_LSB - -/* Masks and shifts for J-type instructions. */ -#define OP_MASK_JOP (IW_OP_MASK << IW_OP_LSB) -#define OP_SH_JOP IW_OP_LSB - -#define OP_MASK_IMM26 (IW_IMM26_MASK << IW_IMM26_LSB) -#define OP_SH_IMM26 IW_IMM26_LSB - -/* Masks and shifts for CTL instructions. */ -#define OP_MASK_RCTL 0x000007c0 -#define OP_SH_RCTL 6 - -/* Break instruction imm5 field. */ -#define OP_MASK_TRAP_IMM5 0x000007c0 -#define OP_SH_TRAP_IMM5 6 - -/* Instruction imm5 field. */ -#define OP_MASK_IMM5 (IW_SHIFT_IMM5_MASK << IW_SHIFT_IMM5_LSB) -#define OP_SH_IMM5 IW_SHIFT_IMM5_LSB - -/* Cache operation fields (type j,i(s)). */ -#define OP_MASK_CACHE_OPX (IW_B_MASK << IW_B_LSB) -#define OP_SH_CACHE_OPX IW_B_LSB -#define OP_MASK_CACHE_RRS (IW_A_MASK << IW_A_LSB) -#define OP_SH_CACHE_RRS IW_A_LSB - -/* Custom instruction masks. */ -#define OP_MASK_CUSTOM_A 0x00010000 -#define OP_SH_CUSTOM_A 16 - -#define OP_MASK_CUSTOM_B 0x00008000 -#define OP_SH_CUSTOM_B 15 - -#define OP_MASK_CUSTOM_C 0x00004000 -#define OP_SH_CUSTOM_C 14 - -#define OP_MASK_CUSTOM_N 0x00003fc0 -#define OP_SH_CUSTOM_N 6 -#define OP_MAX_CUSTOM_N 255 - -/* OP instruction values. */ -#define OP_ADDI 4 -#define OP_ANDHI 44 -#define OP_ANDI 12 -#define OP_BEQ 38 -#define OP_BGE 14 -#define OP_BGEU 46 -#define OP_BLT 22 -#define OP_BLTU 54 -#define OP_BNE 30 -#define OP_BR 6 -#define OP_CALL 0 -#define OP_CMPEQI 32 -#define OP_CMPGEI 8 -#define OP_CMPGEUI 40 -#define OP_CMPLTI 16 -#define OP_CMPLTUI 48 -#define OP_CMPNEI 24 -#define OP_CUSTOM 50 -#define OP_FLUSHD 59 -#define OP_FLUSHDA 27 -#define OP_INITD 51 -#define OP_INITDA 19 -#define OP_JMPI 1 -#define OP_LDB 7 -#define OP_LDBIO 39 -#define OP_LDBU 3 -#define OP_LDBUIO 35 -#define OP_LDH 15 -#define OP_LDHIO 47 -#define OP_LDHU 11 -#define OP_LDHUIO 43 -#define OP_LDL 31 -#define OP_LDW 23 -#define OP_LDWIO 55 -#define OP_MULI 36 -#define OP_OPX 58 -#define OP_ORHI 52 -#define OP_ORI 20 -#define OP_RDPRS 56 -#define OP_STB 5 -#define OP_STBIO 37 -#define OP_STC 29 -#define OP_STH 13 -#define OP_STHIO 45 -#define OP_STW 21 -#define OP_STWIO 53 -#define OP_XORHI 60 -#define OP_XORI 28 - -/* OPX instruction values. */ -#define OPX_ADD 49 -#define OPX_AND 14 -#define OPX_BREAK 52 -#define OPX_BRET 9 -#define OPX_CALLR 29 -#define OPX_CMPEQ 32 -#define OPX_CMPGE 8 -#define OPX_CMPGEU 40 -#define OPX_CMPLT 16 -#define OPX_CMPLTU 48 -#define OPX_CMPNE 24 -#define OPX_CRST 62 -#define OPX_DIV 37 -#define OPX_DIVU 36 -#define OPX_ERET 1 -#define OPX_FLUSHI 12 -#define OPX_FLUSHP 4 -#define OPX_HBREAK 53 -#define OPX_INITI 41 -#define OPX_INTR 61 -#define OPX_JMP 13 -#define OPX_MUL 39 -#define OPX_MULXSS 31 -#define OPX_MULXSU 23 -#define OPX_MULXUU 7 -#define OPX_NEXTPC 28 -#define OPX_NOR 6 -#define OPX_OR 22 -#define OPX_RDCTL 38 -#define OPX_RET 5 -#define OPX_ROL 3 -#define OPX_ROLI 2 -#define OPX_ROR 11 -#define OPX_SLL 19 -#define OPX_SLLI 18 -#define OPX_SRA 59 -#define OPX_SRAI 58 -#define OPX_SRL 27 -#define OPX_SRLI 26 -#define OPX_SUB 57 -#define OPX_SYNC 54 -#define OPX_TRAP 45 -#define OPX_WRCTL 46 -#define OPX_WRPRS 20 -#define OPX_XOR 30 - -/* The following macros define the opcode matches for each - instruction code & OP_MASK_INST == OP_MATCH_INST. */ - -/* OP instruction matches. */ -#define OP_MATCH_ADDI OP_ADDI -#define OP_MATCH_ANDHI OP_ANDHI -#define OP_MATCH_ANDI OP_ANDI -#define OP_MATCH_BEQ OP_BEQ -#define OP_MATCH_BGE OP_BGE -#define OP_MATCH_BGEU OP_BGEU -#define OP_MATCH_BLT OP_BLT -#define OP_MATCH_BLTU OP_BLTU -#define OP_MATCH_BNE OP_BNE -#define OP_MATCH_BR OP_BR -#define OP_MATCH_FLUSHD OP_FLUSHD -#define OP_MATCH_FLUSHDA OP_FLUSHDA -#define OP_MATCH_INITD OP_INITD -#define OP_MATCH_INITDA OP_INITDA -#define OP_MATCH_CALL OP_CALL -#define OP_MATCH_CMPEQI OP_CMPEQI -#define OP_MATCH_CMPGEI OP_CMPGEI -#define OP_MATCH_CMPGEUI OP_CMPGEUI -#define OP_MATCH_CMPLTI OP_CMPLTI -#define OP_MATCH_CMPLTUI OP_CMPLTUI -#define OP_MATCH_CMPNEI OP_CMPNEI -#define OP_MATCH_JMPI OP_JMPI -#define OP_MATCH_LDB OP_LDB -#define OP_MATCH_LDBIO OP_LDBIO -#define OP_MATCH_LDBU OP_LDBU -#define OP_MATCH_LDBUIO OP_LDBUIO -#define OP_MATCH_LDH OP_LDH -#define OP_MATCH_LDHIO OP_LDHIO -#define OP_MATCH_LDHU OP_LDHU -#define OP_MATCH_LDHUIO OP_LDHUIO -#define OP_MATCH_LDL OP_LDL -#define OP_MATCH_LDW OP_LDW -#define OP_MATCH_LDWIO OP_LDWIO -#define OP_MATCH_MULI OP_MULI -#define OP_MATCH_OPX OP_OPX -#define OP_MATCH_ORHI OP_ORHI -#define OP_MATCH_ORI OP_ORI -#define OP_MATCH_RDPRS OP_RDPRS -#define OP_MATCH_STB OP_STB -#define OP_MATCH_STBIO OP_STBIO -#define OP_MATCH_STC OP_STC -#define OP_MATCH_STH OP_STH -#define OP_MATCH_STHIO OP_STHIO -#define OP_MATCH_STW OP_STW -#define OP_MATCH_STWIO OP_STWIO -#define OP_MATCH_CUSTOM OP_CUSTOM -#define OP_MATCH_XORHI OP_XORHI -#define OP_MATCH_XORI OP_XORI -#define OP_MATCH_OPX OP_OPX - -/* OPX instruction values. */ -#define OPX_MATCH(code) ((code << IW_OPX_LSB) | OP_OPX) - -#define OP_MATCH_ADD OPX_MATCH (OPX_ADD) -#define OP_MATCH_AND OPX_MATCH (OPX_AND) -#define OP_MATCH_BREAK ((0x1e << 17) | OPX_MATCH (OPX_BREAK)) -#define OP_MATCH_BRET (0xf0000000 | OPX_MATCH (OPX_BRET)) -#define OP_MATCH_CALLR ((0x1f << 17) | OPX_MATCH (OPX_CALLR)) -#define OP_MATCH_CMPEQ OPX_MATCH (OPX_CMPEQ) -#define OP_MATCH_CMPGE OPX_MATCH (OPX_CMPGE) -#define OP_MATCH_CMPGEU OPX_MATCH (OPX_CMPGEU) -#define OP_MATCH_CMPLT OPX_MATCH (OPX_CMPLT) -#define OP_MATCH_CMPLTU OPX_MATCH (OPX_CMPLTU) -#define OP_MATCH_CMPNE OPX_MATCH (OPX_CMPNE) -#define OP_MATCH_DIV OPX_MATCH (OPX_DIV) -#define OP_MATCH_DIVU OPX_MATCH (OPX_DIVU) -#define OP_MATCH_JMP OPX_MATCH (OPX_JMP) -#define OP_MATCH_MUL OPX_MATCH (OPX_MUL) -#define OP_MATCH_MULXSS OPX_MATCH (OPX_MULXSS) -#define OP_MATCH_MULXSU OPX_MATCH (OPX_MULXSU) -#define OP_MATCH_MULXUU OPX_MATCH (OPX_MULXUU) -#define OP_MATCH_NEXTPC OPX_MATCH (OPX_NEXTPC) -#define OP_MATCH_NOR OPX_MATCH (OPX_NOR) -#define OP_MATCH_OR OPX_MATCH (OPX_OR) -#define OP_MATCH_RDCTL OPX_MATCH (OPX_RDCTL) -#define OP_MATCH_RET (0xf8000000 | OPX_MATCH (OPX_RET)) -#define OP_MATCH_ROL OPX_MATCH (OPX_ROL) -#define OP_MATCH_ROLI OPX_MATCH (OPX_ROLI) -#define OP_MATCH_ROR OPX_MATCH (OPX_ROR) -#define OP_MATCH_SLL OPX_MATCH (OPX_SLL) -#define OP_MATCH_SLLI OPX_MATCH (OPX_SLLI) -#define OP_MATCH_SRA OPX_MATCH (OPX_SRA) -#define OP_MATCH_SRAI OPX_MATCH (OPX_SRAI) -#define OP_MATCH_SRL OPX_MATCH (OPX_SRL) -#define OP_MATCH_SRLI OPX_MATCH (OPX_SRLI) -#define OP_MATCH_SUB OPX_MATCH (OPX_SUB) -#define OP_MATCH_SYNC OPX_MATCH (OPX_SYNC) -#define OP_MATCH_TRAP ((0x1d << 17) | OPX_MATCH (OPX_TRAP)) -#define OP_MATCH_ERET (0xef800000 | OPX_MATCH (OPX_ERET)) -#define OP_MATCH_WRCTL OPX_MATCH (OPX_WRCTL) -#define OP_MATCH_WRPRS OPX_MATCH (OPX_WRPRS) -#define OP_MATCH_XOR OPX_MATCH (OPX_XOR) -#define OP_MATCH_FLUSHI OPX_MATCH (OPX_FLUSHI) -#define OP_MATCH_FLUSHP OPX_MATCH (OPX_FLUSHP) -#define OP_MATCH_INITI OPX_MATCH (OPX_INITI) - -/* Some unusual op masks. */ -#define OP_MASK_BREAK ((OP_MASK_RRS | OP_MASK_RRT | OP_MASK_RRD \ - | OP_MASK_ROPX | OP_MASK_OP) \ - & 0xfffff03f) -#define OP_MASK_CALLR ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX \ - | OP_MASK_OP)) -#define OP_MASK_JMP ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX \ - | OP_MASK_OP)) -#define OP_MASK_SYNC ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX \ - | OP_MASK_OP)) -#define OP_MASK_TRAP ((OP_MASK_RRS | OP_MASK_RRT | OP_MASK_RRD \ - | OP_MASK_ROPX | OP_MASK_OP) \ - & 0xfffff83f) -#define OP_MASK_WRCTL ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX \ - | OP_MASK_OP)) /*& 0xfffff83f */ -#define OP_MASK_NEXTPC ((OP_MASK_RRS | OP_MASK_RRT | OP_MASK_ROPX \ - | OP_MASK_OP)) -#define OP_MASK_FLUSHI ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX \ - | OP_MASK_OP)) -#define OP_MASK_INITI ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX \ - | OP_MASK_OP)) - -#define OP_MASK_ROLI ((OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP)) -#define OP_MASK_SLLI ((OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP)) -#define OP_MASK_SRAI ((OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP)) -#define OP_MASK_SRLI ((OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP)) -#define OP_MASK_RDCTL ((OP_MASK_RRS | OP_MASK_RRT | OP_MASK_ROPX \ - | OP_MASK_OP)) /*& 0xfffff83f */ - -#ifndef OP_MASK -#define OP_MASK 0xffffffff -#endif - -/* These convenience macros to extract instruction fields are used by GDB. */ -#define GET_IW_A(Iw) \ - (((Iw) >> IW_A_LSB) & IW_A_MASK) -#define GET_IW_B(Iw) \ - (((Iw) >> IW_B_LSB) & IW_B_MASK) -#define GET_IW_C(Iw) \ - (((Iw) >> IW_C_LSB) & IW_C_MASK) -#define GET_IW_CONTROL_REGNUM(Iw) \ - (((Iw) >> IW_CONTROL_REGNUM_LSB) & IW_CONTROL_REGNUM_MASK) -#define GET_IW_IMM16(Iw) \ - (((Iw) >> IW_IMM16_LSB) & IW_IMM16_MASK) -#define GET_IW_IMM26(Iw) \ - (((Iw) >> IW_IMM26_LSB) & IW_IMM26_MASK) -#define GET_IW_OP(Iw) \ - (((Iw) >> IW_OP_LSB) & IW_OP_MASK) -#define GET_IW_OPX(Iw) \ - (((Iw) >> IW_OPX_LSB) & IW_OPX_MASK) - -/* These are the data structures we use to hold the instruction information. */ -extern const struct nios2_opcode nios2_builtin_opcodes[]; -extern const int bfd_nios2_num_builtin_opcodes; -extern struct nios2_opcode *nios2_opcodes; -extern int bfd_nios2_num_opcodes; - -/* These are the data structures used to hold the register information. */ -extern const struct nios2_reg nios2_builtin_regs[]; -extern struct nios2_reg *nios2_regs; -extern const int nios2_num_builtin_regs; -extern int nios2_num_regs; - -/* Machine-independent macro for number of opcodes. */ -#define NUMOPCODES bfd_nios2_num_opcodes -#define NUMREGISTERS nios2_num_regs; - -/* This is made extern so that the assembler can use it to find out - what instruction caused an error. */ -extern const struct nios2_opcode *nios2_find_opcode_hash (unsigned long); - -#endif /* _NIOS2_H */ diff --git a/include/opcode/np1.h b/include/opcode/np1.h deleted file mode 100644 index 6dadafd..0000000 --- a/include/opcode/np1.h +++ /dev/null @@ -1,421 +0,0 @@ -/* Print GOULD NPL instructions for GDB, the GNU debugger. - Copyright 1986, 1987, 1989, 1991, 2010 Free Software Foundation, Inc. - - This file is part of GDB. - - GDB is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GDB is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GDB; see the file COPYING3. If not, write to - the Free Software Foundation, 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -struct gld_opcode -{ - char *name; - unsigned long opcode; - unsigned long mask; - char *args; - int length; -}; - -/* We store four bytes of opcode for all opcodes because that - is the most any of them need. The actual length of an instruction - is always at least 2 bytes, and at most four. The length of the - instruction is based on the opcode. - - The mask component is a mask saying which bits must match - particular opcode in order for an instruction to be an instance - of that opcode. - - The args component is a string containing characters - that are used to format the arguments to the instruction. */ - -/* Kinds of operands: - r Register in first field - R Register in second field - b Base register in first field - B Base register in second field - v Vector register in first field - V Vector register in first field - A Optional address register (base register) - X Optional index register - I Immediate data (16bits signed) - O Offset field (16bits signed) - h Offset field (15bits signed) - d Offset field (14bits signed) - S Shift count field - - any other characters are printed as is... */ - -/* The assembler requires that this array be sorted as follows: - all instances of the same mnemonic must be consecutive. - All instances of the same mnemonic with the same number of operands - must be consecutive. */ -struct gld_opcode gld_opcodes[] = -{ -{ "lb", 0xb4080000, 0xfc080000, "r,xOA,X", 4 }, -{ "lnb", 0xb8080000, 0xfc080000, "r,xOA,X", 4 }, -{ "lbs", 0xec080000, 0xfc080000, "r,xOA,X", 4 }, -{ "lh", 0xb4000001, 0xfc080001, "r,xOA,X", 4 }, -{ "lnh", 0xb8000001, 0xfc080001, "r,xOA,X", 4 }, -{ "lw", 0xb4000000, 0xfc080000, "r,xOA,X", 4 }, -{ "lnw", 0xb8000000, 0xfc080000, "r,xOA,X", 4 }, -{ "ld", 0xb4000002, 0xfc080002, "r,xOA,X", 4 }, -{ "lnd", 0xb8000002, 0xfc080002, "r,xOA,X", 4 }, -{ "li", 0xf8000000, 0xfc7f0000, "r,I", 4 }, -{ "lpa", 0x50080000, 0xfc080000, "r,xOA,X", 4 }, -{ "la", 0x50000000, 0xfc080000, "r,xOA,X", 4 }, -{ "labr", 0x58080000, 0xfc080000, "b,xOA,X", 4 }, -{ "lbp", 0x90080000, 0xfc080000, "r,xOA,X", 4 }, -{ "lhp", 0x90000001, 0xfc080001, "r,xOA,X", 4 }, -{ "lwp", 0x90000000, 0xfc080000, "r,xOA,X", 4 }, -{ "ldp", 0x90000002, 0xfc080002, "r,xOA,X", 4 }, -{ "suabr", 0x58000000, 0xfc080000, "b,xOA,X", 4 }, -{ "lf", 0xbc000000, 0xfc080000, "r,xOA,X", 4 }, -{ "lfbr", 0xbc080000, 0xfc080000, "b,xOA,X", 4 }, -{ "lwbr", 0x5c000000, 0xfc080000, "b,xOA,X", 4 }, -{ "stb", 0xd4080000, 0xfc080000, "r,xOA,X", 4 }, -{ "sth", 0xd4000001, 0xfc080001, "r,xOA,X", 4 }, -{ "stw", 0xd4000000, 0xfc080000, "r,xOA,X", 4 }, -{ "std", 0xd4000002, 0xfc080002, "r,xOA,X", 4 }, -{ "stf", 0xdc000000, 0xfc080000, "r,xOA,X", 4 }, -{ "stfbr", 0xdc080000, 0xfc080000, "b,xOA,X", 4 }, -{ "stwbr", 0x54000000, 0xfc080000, "b,xOA,X", 4 }, -{ "zmb", 0xd8080000, 0xfc080000, "r,xOA,X", 4 }, -{ "zmh", 0xd8000001, 0xfc080001, "r,xOA,X", 4 }, -{ "zmw", 0xd8000000, 0xfc080000, "r,xOA,X", 4 }, -{ "zmd", 0xd8000002, 0xfc080002, "r,xOA,X", 4 }, -{ "stbp", 0x94080000, 0xfc080000, "r,xOA,X", 4 }, -{ "sthp", 0x94000001, 0xfc080001, "r,xOA,X", 4 }, -{ "stwp", 0x94000000, 0xfc080000, "r,xOA,X", 4 }, -{ "stdp", 0x94000002, 0xfc080002, "r,xOA,X", 4 }, -{ "lil", 0xf80b0000, 0xfc7f0000, "r,D", 4 }, -{ "lwsl1", 0xec000000, 0xfc080000, "r,xOA,X", 4 }, -{ "lwsl2", 0xfc000000, 0xfc080000, "r,xOA,X", 4 }, -{ "lwsl3", 0xfc080000, 0xfc080000, "r,xOA,X", 4 }, - -{ "lvb", 0xb0080000, 0xfc080000, "v,xOA,X", 4 }, -{ "lvh", 0xb0000001, 0xfc080001, "v,xOA,X", 4 }, -{ "lvw", 0xb0000000, 0xfc080000, "v,xOA,X", 4 }, -{ "lvd", 0xb0000002, 0xfc080002, "v,xOA,X", 4 }, -{ "liv", 0x3c040000, 0xfc0f0000, "v,R", 2 }, -{ "livf", 0x3c080000, 0xfc0f0000, "v,R", 2 }, -{ "stvb", 0xd0080000, 0xfc080000, "v,xOA,X", 4 }, -{ "stvh", 0xd0000001, 0xfc080001, "v,xOA,X", 4 }, -{ "stvw", 0xd0000000, 0xfc080000, "v,xOA,X", 4 }, -{ "stvd", 0xd0000002, 0xfc080002, "v,xOA,X", 4 }, - -{ "trr", 0x2c000000, 0xfc0f0000, "r,R", 2 }, -{ "trn", 0x2c040000, 0xfc0f0000, "r,R", 2 }, -{ "trnd", 0x2c0c0000, 0xfc0f0000, "r,R", 2 }, -{ "trabs", 0x2c010000, 0xfc0f0000, "r,R", 2 }, -{ "trabsd", 0x2c090000, 0xfc0f0000, "r,R", 2 }, -{ "trc", 0x2c030000, 0xfc0f0000, "r,R", 2 }, -{ "xcr", 0x28040000, 0xfc0f0000, "r,R", 2 }, -{ "cxcr", 0x2c060000, 0xfc0f0000, "r,R", 2 }, -{ "cxcrd", 0x2c0e0000, 0xfc0f0000, "r,R", 2 }, -{ "tbrr", 0x2c020000, 0xfc0f0000, "r,B", 2 }, -{ "trbr", 0x28030000, 0xfc0f0000, "b,R", 2 }, -{ "xcbr", 0x28020000, 0xfc0f0000, "b,B", 2 }, -{ "tbrbr", 0x28010000, 0xfc0f0000, "b,B", 2 }, - -{ "trvv", 0x28050000, 0xfc0f0000, "v,V", 2 }, -{ "trvvn", 0x2c050000, 0xfc0f0000, "v,V", 2 }, -{ "trvvnd", 0x2c0d0000, 0xfc0f0000, "v,V", 2 }, -{ "trvab", 0x2c070000, 0xfc0f0000, "v,V", 2 }, -{ "trvabd", 0x2c0f0000, 0xfc0f0000, "v,V", 2 }, -{ "cmpv", 0x14060000, 0xfc0f0000, "v,V", 2 }, -{ "expv", 0x14070000, 0xfc0f0000, "v,V", 2 }, -{ "mrvvlt", 0x10030000, 0xfc0f0000, "v,V", 2 }, -{ "mrvvle", 0x10040000, 0xfc0f0000, "v,V", 2 }, -{ "mrvvgt", 0x14030000, 0xfc0f0000, "v,V", 2 }, -{ "mrvvge", 0x14040000, 0xfc0f0000, "v,V", 2 }, -{ "mrvveq", 0x10050000, 0xfc0f0000, "v,V", 2 }, -{ "mrvvne", 0x10050000, 0xfc0f0000, "v,V", 2 }, -{ "mrvrlt", 0x100d0000, 0xfc0f0000, "v,R", 2 }, -{ "mrvrle", 0x100e0000, 0xfc0f0000, "v,R", 2 }, -{ "mrvrgt", 0x140d0000, 0xfc0f0000, "v,R", 2 }, -{ "mrvrge", 0x140e0000, 0xfc0f0000, "v,R", 2 }, -{ "mrvreq", 0x100f0000, 0xfc0f0000, "v,R", 2 }, -{ "mrvrne", 0x140f0000, 0xfc0f0000, "v,R", 2 }, -{ "trvr", 0x140b0000, 0xfc0f0000, "r,V", 2 }, -{ "trrv", 0x140c0000, 0xfc0f0000, "v,R", 2 }, - -{ "bu", 0x40000000, 0xff880000, "xOA,X", 4 }, -{ "bns", 0x70080000, 0xff880000, "xOA,X", 4 }, -{ "bnco", 0x70880000, 0xff880000, "xOA,X", 4 }, -{ "bge", 0x71080000, 0xff880000, "xOA,X", 4 }, -{ "bne", 0x71880000, 0xff880000, "xOA,X", 4 }, -{ "bunge", 0x72080000, 0xff880000, "xOA,X", 4 }, -{ "bunle", 0x72880000, 0xff880000, "xOA,X", 4 }, -{ "bgt", 0x73080000, 0xff880000, "xOA,X", 4 }, -{ "bnany", 0x73880000, 0xff880000, "xOA,X", 4 }, -{ "bs" , 0x70000000, 0xff880000, "xOA,X", 4 }, -{ "bco", 0x70800000, 0xff880000, "xOA,X", 4 }, -{ "blt", 0x71000000, 0xff880000, "xOA,X", 4 }, -{ "beq", 0x71800000, 0xff880000, "xOA,X", 4 }, -{ "buge", 0x72000000, 0xff880000, "xOA,X", 4 }, -{ "bult", 0x72800000, 0xff880000, "xOA,X", 4 }, -{ "ble", 0x73000000, 0xff880000, "xOA,X", 4 }, -{ "bany", 0x73800000, 0xff880000, "xOA,X", 4 }, -{ "brlnk", 0x44000000, 0xfc080000, "r,xOA,X", 4 }, -{ "bib", 0x48000000, 0xfc080000, "r,xOA,X", 4 }, -{ "bih", 0x48080000, 0xfc080000, "r,xOA,X", 4 }, -{ "biw", 0x4c000000, 0xfc080000, "r,xOA,X", 4 }, -{ "bid", 0x4c080000, 0xfc080000, "r,xOA,X", 4 }, -{ "bivb", 0x60000000, 0xfc080000, "r,xOA,X", 4 }, -{ "bivh", 0x60080000, 0xfc080000, "r,xOA,X", 4 }, -{ "bivw", 0x64000000, 0xfc080000, "r,xOA,X", 4 }, -{ "bivd", 0x64080000, 0xfc080000, "r,xOA,X", 4 }, -{ "bvsb", 0x68000000, 0xfc080000, "r,xOA,X", 4 }, -{ "bvsh", 0x68080000, 0xfc080000, "r,xOA,X", 4 }, -{ "bvsw", 0x6c000000, 0xfc080000, "r,xOA,X", 4 }, -{ "bvsd", 0x6c080000, 0xfc080000, "r,xOA,X", 4 }, - -{ "camb", 0x80080000, 0xfc080000, "r,xOA,X", 4 }, -{ "camh", 0x80000001, 0xfc080001, "r,xOA,X", 4 }, -{ "camw", 0x80000000, 0xfc080000, "r,xOA,X", 4 }, -{ "camd", 0x80000002, 0xfc080002, "r,xOA,X", 4 }, -{ "car", 0x10000000, 0xfc0f0000, "r,R", 2 }, -{ "card", 0x14000000, 0xfc0f0000, "r,R", 2 }, -{ "ci", 0xf8050000, 0xfc7f0000, "r,I", 4 }, -{ "chkbnd", 0x5c080000, 0xfc080000, "r,xOA,X", 4 }, - -{ "cavv", 0x10010000, 0xfc0f0000, "v,V", 2 }, -{ "cavr", 0x10020000, 0xfc0f0000, "v,R", 2 }, -{ "cavvd", 0x10090000, 0xfc0f0000, "v,V", 2 }, -{ "cavrd", 0x100b0000, 0xfc0f0000, "v,R", 2 }, - -{ "anmb", 0x84080000, 0xfc080000, "r,xOA,X", 4 }, -{ "anmh", 0x84000001, 0xfc080001, "r,xOA,X", 4 }, -{ "anmw", 0x84000000, 0xfc080000, "r,xOA,X", 4 }, -{ "anmd", 0x84000002, 0xfc080002, "r,xOA,X", 4 }, -{ "anr", 0x04000000, 0xfc0f0000, "r,R", 2 }, -{ "ani", 0xf8080000, 0xfc7f0000, "r,I", 4 }, -{ "ormb", 0xb8080000, 0xfc080000, "r,xOA,X", 4 }, -{ "ormh", 0xb8000001, 0xfc080001, "r,xOA,X", 4 }, -{ "ormw", 0xb8000000, 0xfc080000, "r,xOA,X", 4 }, -{ "ormd", 0xb8000002, 0xfc080002, "r,xOA,X", 4 }, -{ "orr", 0x08000000, 0xfc0f0000, "r,R", 2 }, -{ "oi", 0xf8090000, 0xfc7f0000, "r,I", 4 }, -{ "eomb", 0x8c080000, 0xfc080000, "r,xOA,X", 4 }, -{ "eomh", 0x8c000001, 0xfc080001, "r,xOA,X", 4 }, -{ "eomw", 0x8c000000, 0xfc080000, "r,xOA,X", 4 }, -{ "eomd", 0x8c000002, 0xfc080002, "r,xOA,X", 4 }, -{ "eor", 0x0c000000, 0xfc0f0000, "r,R", 2 }, -{ "eoi", 0xf80a0000, 0xfc7f0000, "r,I", 4 }, - -{ "anvv", 0x04010000, 0xfc0f0000, "v,V", 2 }, -{ "anvr", 0x04020000, 0xfc0f0000, "v,R", 2 }, -{ "orvv", 0x08010000, 0xfc0f0000, "v,V", 2 }, -{ "orvr", 0x08020000, 0xfc0f0000, "v,R", 2 }, -{ "eovv", 0x0c010000, 0xfc0f0000, "v,V", 2 }, -{ "eovr", 0x0c020000, 0xfc0f0000, "v,R", 2 }, - -{ "sacz", 0x100c0000, 0xfc0f0000, "r,R", 2 }, -{ "sla", 0x1c400000, 0xfc600000, "r,S", 2 }, -{ "sll", 0x1c600000, 0xfc600000, "r,S", 2 }, -{ "slc", 0x24400000, 0xfc600000, "r,S", 2 }, -{ "slad", 0x20400000, 0xfc600000, "r,S", 2 }, -{ "slld", 0x20600000, 0xfc600000, "r,S", 2 }, -{ "sra", 0x1c000000, 0xfc600000, "r,S", 2 }, -{ "srl", 0x1c200000, 0xfc600000, "r,S", 2 }, -{ "src", 0x24000000, 0xfc600000, "r,S", 2 }, -{ "srad", 0x20000000, 0xfc600000, "r,S", 2 }, -{ "srld", 0x20200000, 0xfc600000, "r,S", 2 }, -{ "sda", 0x3c030000, 0xfc0f0000, "r,R", 2 }, -{ "sdl", 0x3c020000, 0xfc0f0000, "r,R", 2 }, -{ "sdc", 0x3c010000, 0xfc0f0000, "r,R", 2 }, -{ "sdad", 0x3c0b0000, 0xfc0f0000, "r,R", 2 }, -{ "sdld", 0x3c0a0000, 0xfc0f0000, "r,R", 2 }, - -{ "svda", 0x3c070000, 0xfc0f0000, "v,R", 2 }, -{ "svdl", 0x3c060000, 0xfc0f0000, "v,R", 2 }, -{ "svdc", 0x3c050000, 0xfc0f0000, "v,R", 2 }, -{ "svdad", 0x3c0e0000, 0xfc0f0000, "v,R", 2 }, -{ "svdld", 0x3c0d0000, 0xfc0f0000, "v,R", 2 }, - -{ "sbm", 0xac080000, 0xfc080000, "f,xOA,X", 4 }, -{ "zbm", 0xac000000, 0xfc080000, "f,xOA,X", 4 }, -{ "tbm", 0xa8080000, 0xfc080000, "f,xOA,X", 4 }, -{ "incmb", 0xa0000000, 0xfc080000, "xOA,X", 4 }, -{ "incmh", 0xa0080000, 0xfc080000, "xOA,X", 4 }, -{ "incmw", 0xa4000000, 0xfc080000, "xOA,X", 4 }, -{ "incmd", 0xa4080000, 0xfc080000, "xOA,X", 4 }, -{ "sbmd", 0x7c080000, 0xfc080000, "r,xOA,X", 4 }, -{ "zbmd", 0x7c000000, 0xfc080000, "r,xOA,X", 4 }, -{ "tbmd", 0x78080000, 0xfc080000, "r,xOA,X", 4 }, - -{ "ssm", 0x9c080000, 0xfc080000, "f,xOA,X", 4 }, -{ "zsm", 0x9c000000, 0xfc080000, "f,xOA,X", 4 }, -{ "tsm", 0x98080000, 0xfc080000, "f,xOA,X", 4 }, - -{ "admb", 0xc8080000, 0xfc080000, "r,xOA,X", 4 }, -{ "admh", 0xc8000001, 0xfc080001, "r,xOA,X", 4 }, -{ "admw", 0xc8000000, 0xfc080000, "r,xOA,X", 4 }, -{ "admd", 0xc8000002, 0xfc080002, "r,xOA,X", 4 }, -{ "adr", 0x38000000, 0xfc0f0000, "r,R", 2 }, -{ "armb", 0xe8080000, 0xfc080000, "r,xOA,X", 4 }, -{ "armh", 0xe8000001, 0xfc080001, "r,xOA,X", 4 }, -{ "armw", 0xe8000000, 0xfc080000, "r,xOA,X", 4 }, -{ "armd", 0xe8000002, 0xfc080002, "r,xOA,X", 4 }, -{ "adi", 0xf8010000, 0xfc0f0000, "r,I", 4 }, -{ "sumb", 0xcc080000, 0xfc080000, "r,xOA,X", 4 }, -{ "sumh", 0xcc000001, 0xfc080001, "r,xOA,X", 4 }, -{ "sumw", 0xcc000000, 0xfc080000, "r,xOA,X", 4 }, -{ "sumd", 0xcc000002, 0xfc080002, "r,xOA,X", 4 }, -{ "sur", 0x3c000000, 0xfc0f0000, "r,R", 2 }, -{ "sui", 0xf8020000, 0xfc0f0000, "r,I", 4 }, -{ "mpmb", 0xc0080000, 0xfc080000, "r,xOA,X", 4 }, -{ "mpmh", 0xc0000001, 0xfc080001, "r,xOA,X", 4 }, -{ "mpmw", 0xc0000000, 0xfc080000, "r,xOA,X", 4 }, -{ "mpr", 0x38020000, 0xfc0f0000, "r,R", 2 }, -{ "mprd", 0x3c0f0000, 0xfc0f0000, "r,R", 2 }, -{ "mpi", 0xf8030000, 0xfc0f0000, "r,I", 4 }, -{ "dvmb", 0xc4080000, 0xfc080000, "r,xOA,X", 4 }, -{ "dvmh", 0xc4000001, 0xfc080001, "r,xOA,X", 4 }, -{ "dvmw", 0xc4000000, 0xfc080000, "r,xOA,X", 4 }, -{ "dvr", 0x380a0000, 0xfc0f0000, "r,R", 2 }, -{ "dvi", 0xf8040000, 0xfc0f0000, "r,I", 4 }, -{ "exs", 0x38080000, 0xfc0f0000, "r,R", 2 }, - -{ "advv", 0x30000000, 0xfc0f0000, "v,V", 2 }, -{ "advvd", 0x30080000, 0xfc0f0000, "v,V", 2 }, -{ "adrv", 0x34000000, 0xfc0f0000, "v,R", 2 }, -{ "adrvd", 0x34080000, 0xfc0f0000, "v,R", 2 }, -{ "suvv", 0x30010000, 0xfc0f0000, "v,V", 2 }, -{ "suvvd", 0x30090000, 0xfc0f0000, "v,V", 2 }, -{ "surv", 0x34010000, 0xfc0f0000, "v,R", 2 }, -{ "survd", 0x34090000, 0xfc0f0000, "v,R", 2 }, -{ "mpvv", 0x30020000, 0xfc0f0000, "v,V", 2 }, -{ "mprv", 0x34020000, 0xfc0f0000, "v,R", 2 }, - -{ "adfw", 0xe0080000, 0xfc080000, "r,xOA,X", 4 }, -{ "adfd", 0xe0080002, 0xfc080002, "r,xOA,X", 4 }, -{ "adrfw", 0x38010000, 0xfc0f0000, "r,R", 2 }, -{ "adrfd", 0x38090000, 0xfc0f0000, "r,R", 2 }, -{ "surfw", 0xe0000000, 0xfc080000, "r,xOA,X", 4 }, -{ "surfd", 0xe0000002, 0xfc080002, "r,xOA,X", 4 }, -{ "surfw", 0x38030000, 0xfc0f0000, "r,R", 2 }, -{ "surfd", 0x380b0000, 0xfc0f0000, "r,R", 2 }, -{ "mpfw", 0xe4080000, 0xfc080000, "r,xOA,X", 4 }, -{ "mpfd", 0xe4080002, 0xfc080002, "r,xOA,X", 4 }, -{ "mprfw", 0x38060000, 0xfc0f0000, "r,R", 2 }, -{ "mprfd", 0x380e0000, 0xfc0f0000, "r,R", 2 }, -{ "rfw", 0xe4000000, 0xfc080000, "r,xOA,X", 4 }, -{ "rfd", 0xe4000002, 0xfc080002, "r,xOA,X", 4 }, -{ "rrfw", 0x0c0e0000, 0xfc0f0000, "r", 2 }, -{ "rrfd", 0x0c0f0000, 0xfc0f0000, "r", 2 }, - -{ "advvfw", 0x30040000, 0xfc0f0000, "v,V", 2 }, -{ "advvfd", 0x300c0000, 0xfc0f0000, "v,V", 2 }, -{ "adrvfw", 0x34040000, 0xfc0f0000, "v,R", 2 }, -{ "adrvfd", 0x340c0000, 0xfc0f0000, "v,R", 2 }, -{ "suvvfw", 0x30050000, 0xfc0f0000, "v,V", 2 }, -{ "suvvfd", 0x300d0000, 0xfc0f0000, "v,V", 2 }, -{ "survfw", 0x34050000, 0xfc0f0000, "v,R", 2 }, -{ "survfd", 0x340d0000, 0xfc0f0000, "v,R", 2 }, -{ "mpvvfw", 0x30060000, 0xfc0f0000, "v,V", 2 }, -{ "mpvvfd", 0x300e0000, 0xfc0f0000, "v,V", 2 }, -{ "mprvfw", 0x34060000, 0xfc0f0000, "v,R", 2 }, -{ "mprvfd", 0x340e0000, 0xfc0f0000, "v,R", 2 }, -{ "rvfw", 0x30070000, 0xfc0f0000, "v", 2 }, -{ "rvfd", 0x300f0000, 0xfc0f0000, "v", 2 }, - -{ "fltw", 0x38070000, 0xfc0f0000, "r,R", 2 }, -{ "fltd", 0x380f0000, 0xfc0f0000, "r,R", 2 }, -{ "fixw", 0x38050000, 0xfc0f0000, "r,R", 2 }, -{ "fixd", 0x380d0000, 0xfc0f0000, "r,R", 2 }, -{ "cfpds", 0x3c090000, 0xfc0f0000, "r,R", 2 }, - -{ "fltvw", 0x080d0000, 0xfc0f0000, "v,V", 2 }, -{ "fltvd", 0x080f0000, 0xfc0f0000, "v,V", 2 }, -{ "fixvw", 0x080c0000, 0xfc0f0000, "v,V", 2 }, -{ "fixvd", 0x080e0000, 0xfc0f0000, "v,V", 2 }, -{ "cfpvds", 0x0c0d0000, 0xfc0f0000, "v,V", 2 }, - -{ "orvrn", 0x000a0000, 0xfc0f0000, "r,V", 2 }, -{ "andvrn", 0x00080000, 0xfc0f0000, "r,V", 2 }, -{ "frsteq", 0x04090000, 0xfc0f0000, "r,V", 2 }, -{ "sigma", 0x0c080000, 0xfc0f0000, "r,V", 2 }, -{ "sigmad", 0x0c0a0000, 0xfc0f0000, "r,V", 2 }, -{ "sigmf", 0x08080000, 0xfc0f0000, "r,V", 2 }, -{ "sigmfd", 0x080a0000, 0xfc0f0000, "r,V", 2 }, -{ "prodf", 0x04080000, 0xfc0f0000, "r,V", 2 }, -{ "prodfd", 0x040a0000, 0xfc0f0000, "r,V", 2 }, -{ "maxv", 0x10080000, 0xfc0f0000, "r,V", 2 }, -{ "maxvd", 0x100a0000, 0xfc0f0000, "r,V", 2 }, -{ "minv", 0x14080000, 0xfc0f0000, "r,V", 2 }, -{ "minvd", 0x140a0000, 0xfc0f0000, "r,V", 2 }, - -{ "lpsd", 0xf0000000, 0xfc080000, "xOA,X", 4 }, -{ "ldc", 0xf0080000, 0xfc080000, "xOA,X", 4 }, -{ "spm", 0x040c0000, 0xfc0f0000, "r", 2 }, -{ "rpm", 0x040d0000, 0xfc0f0000, "r", 2 }, -{ "tritr", 0x00070000, 0xfc0f0000, "r", 2 }, -{ "trrit", 0x00060000, 0xfc0f0000, "r", 2 }, -{ "rpswt", 0x04080000, 0xfc0f0000, "r", 2 }, -{ "exr", 0xf8070000, 0xfc0f0000, "", 4 }, -{ "halt", 0x00000000, 0xfc0f0000, "", 2 }, -{ "wait", 0x00010000, 0xfc0f0000, "", 2 }, -{ "nop", 0x00020000, 0xfc0f0000, "", 2 }, -{ "eiae", 0x00030000, 0xfc0f0000, "", 2 }, -{ "efae", 0x000d0000, 0xfc0f0000, "", 2 }, -{ "diae", 0x000e0000, 0xfc0f0000, "", 2 }, -{ "dfae", 0x000f0000, 0xfc0f0000, "", 2 }, -{ "spvc", 0xf8060000, 0xfc0f0000, "r,T,N", 4 }, -{ "rdsts", 0x00090000, 0xfc0f0000, "r", 2 }, -{ "setcpu", 0x000c0000, 0xfc0f0000, "r", 2 }, -{ "cmc", 0x000b0000, 0xfc0f0000, "r", 2 }, -{ "trrcu", 0x00040000, 0xfc0f0000, "r", 2 }, -{ "attnio", 0x00050000, 0xfc0f0000, "", 2 }, -{ "fudit", 0x28080000, 0xfc0f0000, "", 2 }, -{ "break", 0x28090000, 0xfc0f0000, "", 2 }, -{ "frzss", 0x280a0000, 0xfc0f0000, "", 2 }, -{ "ripi", 0x04040000, 0xfc0f0000, "r,R", 2 }, -{ "xcp", 0x04050000, 0xfc0f0000, "r", 2 }, -{ "block", 0x04060000, 0xfc0f0000, "", 2 }, -{ "unblock", 0x04070000, 0xfc0f0000, "", 2 }, -{ "trsc", 0x08060000, 0xfc0f0000, "r,R", 2 }, -{ "tscr", 0x08070000, 0xfc0f0000, "r,R", 2 }, -{ "fq", 0x04080000, 0xfc0f0000, "r", 2 }, -{ "flupte", 0x2c080000, 0xfc0f0000, "r", 2 }, -{ "rviu", 0x040f0000, 0xfc0f0000, "", 2 }, -{ "ldel", 0x280c0000, 0xfc0f0000, "r,R", 2 }, -{ "ldu", 0x280d0000, 0xfc0f0000, "r,R", 2 }, -{ "stdecc", 0x280b0000, 0xfc0f0000, "r,R", 2 }, -{ "trpc", 0x08040000, 0xfc0f0000, "r", 2 }, -{ "tpcr", 0x08050000, 0xfc0f0000, "r", 2 }, -{ "ghalt", 0x0c050000, 0xfc0f0000, "r", 2 }, -{ "grun", 0x0c040000, 0xfc0f0000, "", 2 }, -{ "tmpr", 0x2c0a0000, 0xfc0f0000, "r,R", 2 }, -{ "trmp", 0x2c0b0000, 0xfc0f0000, "r,R", 2 }, - -{ "trrve", 0x28060000, 0xfc0f0000, "r", 2 }, -{ "trver", 0x28070000, 0xfc0f0000, "r", 2 }, -{ "trvlr", 0x280f0000, 0xfc0f0000, "r", 2 }, - -{ "linkfl", 0x18000000, 0xfc0f0000, "r,R", 2 }, -{ "linkbl", 0x18020000, 0xfc0f0000, "r,R", 2 }, -{ "linkfp", 0x18010000, 0xfc0f0000, "r,R", 2 }, -{ "linkbp", 0x18030000, 0xfc0f0000, "r,R", 2 }, -{ "linkpl", 0x18040000, 0xfc0f0000, "r,R", 2 }, -{ "ulinkl", 0x18080000, 0xfc0f0000, "r,R", 2 }, -{ "ulinkp", 0x18090000, 0xfc0f0000, "r,R", 2 }, -{ "ulinktl", 0x180a0000, 0xfc0f0000, "r,R", 2 }, -{ "ulinktp", 0x180b0000, 0xfc0f0000, "r,R", 2 }, -}; - -int numopcodes = sizeof(gld_opcodes) / sizeof(gld_opcodes[0]); - -struct gld_opcode *endop = gld_opcodes + sizeof(gld_opcodes) / - sizeof(gld_opcodes[0]); diff --git a/include/opcode/ns32k.h b/include/opcode/ns32k.h deleted file mode 100644 index 34c42f8..0000000 --- a/include/opcode/ns32k.h +++ /dev/null @@ -1,487 +0,0 @@ -/* ns32k-opcode.h -- Opcode table for National Semi 32k processor - Copyright 1987, 1991, 1994, 2002, 2010 Free Software Foundation, Inc. - - This file is part of GAS, the GNU Assembler. - - GAS is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GAS is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GAS; see the file COPYING3. If not, write to - the Free Software Foundation, 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -#ifdef SEQUENT_COMPATABILITY -#define DEF_MODEC 20 -#define DEF_MODEL 21 -#endif - -#ifndef DEF_MODEC -#define DEF_MODEC 20 -#endif - -#ifndef DEF_MODEL -#define DEF_MODEL 20 -#endif -/* - After deciding the instruction entry (via hash.c) the instruction parser - will try to match the operands after the instruction to the required set - given in the entry operandfield. Every operand will result in a change in - the opcode or the addition of data to the opcode. - The operands in the source instruction are checked for inconsistent - semantics. - - F : 32 bit float general form - L : 64 bit float " - B : byte " - W : word " - D : double-word " - A : double-word gen-address-form ie no regs, no immediate - I : integer writeable gen int except immediate (A + reg) - Z : floating writeable gen float except immediate (Z + freg) - d : displacement - b : displacement - pc relative addressing acb - p : displacement - pc relative addressing br bcond bsr cxp - q : quick - i : immediate (8 bits) - This is not a standard ns32k operandtype, it is used to build - instructions like svc arg1,arg2 - Svc is the instruction SuperVisorCall and is sometimes used to - call OS-routines from usermode. Some args might be handy! - r : register number (3 bits) - O : setcfg instruction optionslist - C : cinv instruction optionslist - S : stringinstruction optionslist - U : registerlist save,enter - u : registerlist restore,exit - M : mmu register - P : cpu register - g : 3:rd operand of inss or exts instruction - G : 4:th operand of inss or exts instruction - Those operands are encoded in the same byte. - This byte is placed last in the instruction. - f : operand of sfsr - H : sequent-hack for bsr (Warning) - -column 1 instructions - 2 number of bits in opcode. - 3 number of bits in opcode explicitly - determined by the instruction type. - 4 opcodeseed, the number we build our opcode - from. - 5 operandtypes, used by operandparser. - 6 size in bytes of immediate -*/ -struct ns32k_opcode { - const char *name; - unsigned char opcode_id_size; /* not used by the assembler */ - unsigned char opcode_size; - unsigned long opcode_seed; - const char *operands; - unsigned char im_size; /* not used by dissassembler */ - const char *default_args; /* default to those args when none given */ - char default_modec; /* default to this addr-mode when ambigous - ie when the argument of a general addr-mode - is a plain constant */ - char default_model; /* is a plain label */ -}; - -#ifdef comment -/* This section was from the gdb version of this file. */ - -#ifndef ns32k_opcodeT -#define ns32k_opcodeT int -#endif /* no ns32k_opcodeT */ - -struct not_wot /* ns32k opcode table: wot to do with this */ - /* particular opcode */ -{ - int obits; /* number of opcode bits */ - int ibits; /* number of instruction bits */ - ns32k_opcodeT code; /* op-code (may be > 8 bits!) */ - const char *args; /* how to compile said opcode */ -}; - -struct not /* ns32k opcode text */ -{ - const char *name; /* opcode name: lowercase string [key] */ - struct not_wot detail; /* rest of opcode table [datum] */ -}; - -/* Instructions look like this: - - basic instruction--1, 2, or 3 bytes - index byte for operand A, if operand A is indexed--1 byte - index byte for operand B, if operand B is indexed--1 byte - addressing extension for operand A - addressing extension for operand B - implied operands - - Operand A is the operand listed first in the following opcode table. - Operand B is the operand listed second in the following opcode table. - All instructions have at most 2 general operands, so this is enough. - The implied operands are associated with operands other than A and B. - - Each operand has a digit and a letter. - - The digit gives the position in the assembly language. The letter, - one of the following, tells us what kind of operand it is. */ - -/* F : 32 bit float - * L : 64 bit float - * B : byte - * W : word - * D : double-word - * I : integer not immediate - * Z : floating not immediate - * d : displacement - * q : quick - * i : immediate (8 bits) - * r : register number (3 bits) - * p : displacement - pc relative addressing -*/ - - -#endif /* comment */ - -static const struct ns32k_opcode ns32k_opcodes[]= -{ - { "absf", 14,24, 0x35be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL }, - { "absl", 14,24, 0x34be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL }, - { "absb", 14,24, 0x304e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "absw", 14,24, 0x314e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "absd", 14,24, 0x334e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "acbb", 7,16, 0x4c, "2I1q3p", 1, "", DEF_MODEC,DEF_MODEL }, - { "acbw", 7,16, 0x4d, "2I1q3p", 2, "", DEF_MODEC,DEF_MODEL }, - { "acbd", 7,16, 0x4f, "2I1q3p", 4, "", DEF_MODEC,DEF_MODEL }, - { "addf", 14,24, 0x01be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL }, - { "addl", 14,24, 0x00be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL }, - { "addb", 6,16, 0x00, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "addw", 6,16, 0x01, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "addd", 6,16, 0x03, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "addcb", 6,16, 0x10, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "addcw", 6,16, 0x11, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "addcd", 6,16, 0x13, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "addpb", 14,24, 0x3c4e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "addpw", 14,24, 0x3d4e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "addpd", 14,24, 0x3f4e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "addqb", 7,16, 0x0c, "2I1q", 1, "", DEF_MODEC,DEF_MODEL }, - { "addqw", 7,16, 0x0d, "2I1q", 2, "", DEF_MODEC,DEF_MODEL }, - { "addqd", 7,16, 0x0f, "2I1q", 4, "", DEF_MODEC,DEF_MODEL }, - { "addr", 6,16, 0x27, "1A2I", 4, "", 21,21 }, - { "adjspb", 11,16, 0x057c, "1B", 1, "", DEF_MODEC,DEF_MODEL }, - { "adjspw", 11,16, 0x057d, "1W", 2, "", DEF_MODEC,DEF_MODEL }, - { "adjspd", 11,16, 0x057f, "1D", 4, "", DEF_MODEC,DEF_MODEL }, - { "andb", 6,16, 0x28, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "andw", 6,16, 0x29, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "andd", 6,16, 0x2b, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "ashb", 14,24, 0x044e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "ashw", 14,24, 0x054e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "ashd", 14,24, 0x074e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "beq", 8,8, 0x0a, "1p", 0, "", 21,21 }, - { "bne", 8,8, 0x1a, "1p", 0, "", 21,21 }, - { "bcs", 8,8, 0x2a, "1p", 0, "", 21,21 }, - { "bcc", 8,8, 0x3a, "1p", 0, "", 21,21 }, - { "bhi", 8,8, 0x4a, "1p", 0, "", 21,21 }, - { "bls", 8,8, 0x5a, "1p", 0, "", 21,21 }, - { "bgt", 8,8, 0x6a, "1p", 0, "", 21,21 }, - { "ble", 8,8, 0x7a, "1p", 0, "", 21,21 }, - { "bfs", 8,8, 0x8a, "1p", 0, "", 21,21 }, - { "bfc", 8,8, 0x9a, "1p", 0, "", 21,21 }, - { "blo", 8,8, 0xaa, "1p", 0, "", 21,21 }, - { "bhs", 8,8, 0xba, "1p", 0, "", 21,21 }, - { "blt", 8,8, 0xca, "1p", 0, "", 21,21 }, - { "bge", 8,8, 0xda, "1p", 0, "", 21,21 }, - { "but", 8,8, 0xea, "1p", 0, "", 21,21 }, - { "buf", 8,8, 0xfa, "1p", 0, "", 21,21 }, - { "bicb", 6,16, 0x08, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "bicw", 6,16, 0x09, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "bicd", 6,16, 0x0b, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "bicpsrb", 11,16, 0x17c, "1B", 1, "", DEF_MODEC,DEF_MODEL }, - { "bicpsrw", 11,16, 0x17d, "1W", 2, "", DEF_MODEC,DEF_MODEL }, - { "bispsrb", 11,16, 0x37c, "1B", 1, "", DEF_MODEC,DEF_MODEL }, - { "bispsrw", 11,16, 0x37d, "1W", 2, "", DEF_MODEC,DEF_MODEL }, - { "bpt", 8,8, 0xf2, "", 0, "", DEF_MODEC,DEF_MODEL }, - { "br", 8,8, 0xea, "1p", 0, "", 21,21 }, -#ifdef SEQUENT_COMPATABILITY - { "bsr", 8,8, 0x02, "1H", 0, "", 21,21 }, -#else - { "bsr", 8,8, 0x02, "1p", 0, "", 21,21 }, -#endif - { "caseb", 11,16, 0x77c, "1B", 1, "", DEF_MODEC,DEF_MODEL }, - { "casew", 11,16, 0x77d, "1W", 2, "", DEF_MODEC,DEF_MODEL }, - { "cased", 11,16, 0x77f, "1D", 4, "", DEF_MODEC,DEF_MODEL }, - { "cbitb", 14,24, 0x084e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "cbitw", 14,24, 0x094e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "cbitd", 14,24, 0x0b4e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "cbitib", 14,24, 0x0c4e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "cbitiw", 14,24, 0x0d4e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "cbitid", 14,24, 0x0f4e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "checkb", 11,24, 0x0ee, "2A3B1r", 1, "", DEF_MODEC,DEF_MODEL }, - { "checkw", 11,24, 0x1ee, "2A3W1r", 2, "", DEF_MODEC,DEF_MODEL }, - { "checkd", 11,24, 0x3ee, "2A3D1r", 4, "", DEF_MODEC,DEF_MODEL }, - { "cinv", 14,24, 0x271e, "2D1C", 4, "", DEF_MODEC,DEF_MODEL }, - { "cmpf", 14,24, 0x09be, "1F2F", 4, "", DEF_MODEC,DEF_MODEL }, - { "cmpl", 14,24, 0x08be, "1L2L", 8, "", DEF_MODEC,DEF_MODEL }, - { "cmpb", 6,16, 0x04, "1B2B", 1, "", DEF_MODEC,DEF_MODEL }, - { "cmpw", 6,16, 0x05, "1W2W", 2, "", DEF_MODEC,DEF_MODEL }, - { "cmpd", 6,16, 0x07, "1D2D", 4, "", DEF_MODEC,DEF_MODEL }, - { "cmpmb", 14,24, 0x04ce, "1A2A3b", 1, "", DEF_MODEC,DEF_MODEL }, - { "cmpmw", 14,24, 0x05ce, "1A2A3b", 2, "", DEF_MODEC,DEF_MODEL }, - { "cmpmd", 14,24, 0x07ce, "1A2A3b", 4, "", DEF_MODEC,DEF_MODEL }, - { "cmpqb", 7,16, 0x1c, "2B1q", 1, "", DEF_MODEC,DEF_MODEL }, - { "cmpqw", 7,16, 0x1d, "2W1q", 2, "", DEF_MODEC,DEF_MODEL }, - { "cmpqd", 7,16, 0x1f, "2D1q", 4, "", DEF_MODEC,DEF_MODEL }, - { "cmpsb", 16,24, 0x040e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL }, - { "cmpsw", 16,24, 0x050e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL }, - { "cmpsd", 16,24, 0x070e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL }, - { "cmpst", 16,24, 0x840e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL }, - { "comb", 14,24, 0x344e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "comw", 14,24, 0x354e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "comd", 14,24, 0x374e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "cvtp", 11,24, 0x036e, "2A3D1r", 4, "", DEF_MODEC,DEF_MODEL }, - { "cxp", 8,8, 0x22, "1p", 0, "", 21,21 }, - { "cxpd", 11,16, 0x07f, "1A", 4, "", DEF_MODEC,DEF_MODEL }, - { "deib", 14,24, 0x2cce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "deiw", 14,24, 0x2dce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "deid", 14,24, 0x2fce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "dia", 8,8, 0xc2, "", 1, "", DEF_MODEC,DEF_MODEL }, - { "divf", 14,24, 0x21be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL }, - { "divl", 14,24, 0x20be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL }, - { "divb", 14,24, 0x3cce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "divw", 14,24, 0x3dce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "divd", 14,24, 0x3fce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "enter", 8,8, 0x82, "1U2d", 0, "", DEF_MODEC,DEF_MODEL }, - { "exit", 8,8, 0x92, "1u", 0, "", DEF_MODEC,DEF_MODEL }, - { "extb", 11,24, 0x02e, "2I3B1r4d", 1, "", DEF_MODEC,DEF_MODEL }, - { "extw", 11,24, 0x12e, "2I3W1r4d", 2, "", DEF_MODEC,DEF_MODEL }, - { "extd", 11,24, 0x32e, "2I3D1r4d", 4, "", DEF_MODEC,DEF_MODEL }, - { "extsb", 14,24, 0x0cce, "1I2I4G3g", 1, "", DEF_MODEC,DEF_MODEL }, - { "extsw", 14,24, 0x0dce, "1I2I4G3g", 2, "", DEF_MODEC,DEF_MODEL }, - { "extsd", 14,24, 0x0fce, "1I2I4G3g", 4, "", DEF_MODEC,DEF_MODEL }, - { "ffsb", 14,24, 0x046e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "ffsw", 14,24, 0x056e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "ffsd", 14,24, 0x076e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "flag", 8,8, 0xd2, "", 0, "", DEF_MODEC,DEF_MODEL }, - { "floorfb", 14,24, 0x3c3e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "floorfw", 14,24, 0x3d3e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "floorfd", 14,24, 0x3f3e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "floorlb", 14,24, 0x383e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL }, - { "floorlw", 14,24, 0x393e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL }, - { "floorld", 14,24, 0x3b3e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL }, - { "ibitb", 14,24, 0x384e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "ibitw", 14,24, 0x394e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "ibitd", 14,24, 0x3b4e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "indexb", 11,24, 0x42e, "2B3B1r", 1, "", DEF_MODEC,DEF_MODEL }, - { "indexw", 11,24, 0x52e, "2W3W1r", 2, "", DEF_MODEC,DEF_MODEL }, - { "indexd", 11,24, 0x72e, "2D3D1r", 4, "", DEF_MODEC,DEF_MODEL }, - { "insb", 11,24, 0x0ae, "2B3I1r4d", 1, "", DEF_MODEC,DEF_MODEL }, - { "insw", 11,24, 0x1ae, "2W3I1r4d", 2, "", DEF_MODEC,DEF_MODEL }, - { "insd", 11,24, 0x3ae, "2D3I1r4d", 4, "", DEF_MODEC,DEF_MODEL }, - { "inssb", 14,24, 0x08ce, "1B2I4G3g", 1, "", DEF_MODEC,DEF_MODEL }, - { "inssw", 14,24, 0x09ce, "1W2I4G3g", 2, "", DEF_MODEC,DEF_MODEL }, - { "inssd", 14,24, 0x0bce, "1D2I4G3g", 4, "", DEF_MODEC,DEF_MODEL }, - { "jsr", 11,16, 0x67f, "1A", 4, "", 21,21 }, - { "jump", 11,16, 0x27f, "1A", 4, "", 21,21 }, - { "lfsr", 19,24, 0x00f3e,"1D", 4, "", DEF_MODEC,DEF_MODEL }, - { "lmr", 15,24, 0x0b1e, "2D1M", 4, "", DEF_MODEC,DEF_MODEL }, - { "lprb", 7,16, 0x6c, "2B1P", 1, "", DEF_MODEC,DEF_MODEL }, - { "lprw", 7,16, 0x6d, "2W1P", 2, "", DEF_MODEC,DEF_MODEL }, - { "lprd", 7,16, 0x6f, "2D1P", 4, "", DEF_MODEC,DEF_MODEL }, - { "lshb", 14,24, 0x144e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "lshw", 14,24, 0x154e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "lshd", 14,24, 0x174e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "meib", 14,24, 0x24ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "meiw", 14,24, 0x25ce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "meid", 14,24, 0x27ce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "modb", 14,24, 0x38ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "modw", 14,24, 0x39ce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "modd", 14,24, 0x3bce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "movf", 14,24, 0x05be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL }, - { "movl", 14,24, 0x04be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL }, - { "movb", 6,16, 0x14, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "movw", 6,16, 0x15, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "movd", 6,16, 0x17, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "movbf", 14,24, 0x043e, "1B2Z", 1, "", DEF_MODEC,DEF_MODEL }, - { "movwf", 14,24, 0x053e, "1W2Z", 2, "", DEF_MODEC,DEF_MODEL }, - { "movdf", 14,24, 0x073e, "1D2Z", 4, "", DEF_MODEC,DEF_MODEL }, - { "movbl", 14,24, 0x003e, "1B2Z", 1, "", DEF_MODEC,DEF_MODEL }, - { "movwl", 14,24, 0x013e, "1W2Z", 2, "", DEF_MODEC,DEF_MODEL }, - { "movdl", 14,24, 0x033e, "1D2Z", 4, "", DEF_MODEC,DEF_MODEL }, - { "movfl", 14,24, 0x1b3e, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL }, - { "movlf", 14,24, 0x163e, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL }, - { "movmb", 14,24, 0x00ce, "1A2A3b", 1, "", DEF_MODEC,DEF_MODEL }, - { "movmw", 14,24, 0x01ce, "1A2A3b", 2, "", DEF_MODEC,DEF_MODEL }, - { "movmd", 14,24, 0x03ce, "1A2A3b", 4, "", DEF_MODEC,DEF_MODEL }, - { "movqb", 7,16, 0x5c, "2I1q", 1, "", DEF_MODEC,DEF_MODEL }, - { "movqw", 7,16, 0x5d, "2I1q", 2, "", DEF_MODEC,DEF_MODEL }, - { "movqd", 7,16, 0x5f, "2I1q", 4, "", DEF_MODEC,DEF_MODEL }, - { "movsb", 16,24, 0x000e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL }, - { "movsw", 16,24, 0x010e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL }, - { "movsd", 16,24, 0x030e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL }, - { "movst", 16,24, 0x800e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL }, - { "movsub", 14,24, 0x0cae, "1A2A", 1, "", DEF_MODEC,DEF_MODEL }, - { "movsuw", 14,24, 0x0dae, "1A2A", 2, "", DEF_MODEC,DEF_MODEL }, - { "movsud", 14,24, 0x0fae, "1A2A", 4, "", DEF_MODEC,DEF_MODEL }, - { "movusb", 14,24, 0x1cae, "1A2A", 1, "", DEF_MODEC,DEF_MODEL }, - { "movusw", 14,24, 0x1dae, "1A2A", 2, "", DEF_MODEC,DEF_MODEL }, - { "movusd", 14,24, 0x1fae, "1A2A", 4, "", DEF_MODEC,DEF_MODEL }, - { "movxbd", 14,24, 0x1cce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "movxwd", 14,24, 0x1dce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "movxbw", 14,24, 0x10ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "movzbd", 14,24, 0x18ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "movzwd", 14,24, 0x19ce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "movzbw", 14,24, 0x14ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "mulf", 14,24, 0x31be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL }, - { "mull", 14,24, 0x30be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL }, - { "mulb", 14,24, 0x20ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "mulw", 14,24, 0x21ce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "muld", 14,24, 0x23ce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "negf", 14,24, 0x15be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL }, - { "negl", 14,24, 0x14be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL }, - { "negb", 14,24, 0x204e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "negw", 14,24, 0x214e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "negd", 14,24, 0x234e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "nop", 8,8, 0xa2, "", 0, "", DEF_MODEC,DEF_MODEL }, - { "notb", 14,24, 0x244e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "notw", 14,24, 0x254e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "notd", 14,24, 0x274e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "orb", 6,16, 0x18, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "orw", 6,16, 0x19, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "ord", 6,16, 0x1b, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "quob", 14,24, 0x30ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "quow", 14,24, 0x31ce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "quod", 14,24, 0x33ce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "rdval", 19,24, 0x0031e,"1A", 4, "", DEF_MODEC,DEF_MODEL }, - { "remb", 14,24, 0x34ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "remw", 14,24, 0x35ce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "remd", 14,24, 0x37ce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "restore", 8,8, 0x72, "1u", 0, "", DEF_MODEC,DEF_MODEL }, - { "ret", 8,8, 0x12, "1d", 0, "", DEF_MODEC,DEF_MODEL }, - { "reti", 8,8, 0x52, "", 0, "", DEF_MODEC,DEF_MODEL }, - { "rett", 8,8, 0x42, "1d", 0, "", DEF_MODEC,DEF_MODEL }, - { "rotb", 14,24, 0x004e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "rotw", 14,24, 0x014e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "rotd", 14,24, 0x034e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "roundfb", 14,24, 0x243e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "roundfw", 14,24, 0x253e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "roundfd", 14,24, 0x273e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "roundlb", 14,24, 0x203e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL }, - { "roundlw", 14,24, 0x213e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL }, - { "roundld", 14,24, 0x233e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL }, - { "rxp", 8,8, 0x32, "1d", 0, "", DEF_MODEC,DEF_MODEL }, - { "seqb", 11,16, 0x3c, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "seqw", 11,16, 0x3d, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "seqd", 11,16, 0x3f, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "sneb", 11,16, 0xbc, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "snew", 11,16, 0xbd, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "sned", 11,16, 0xbf, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "scsb", 11,16, 0x13c, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "scsw", 11,16, 0x13d, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "scsd", 11,16, 0x13f, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "sccb", 11,16, 0x1bc, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "sccw", 11,16, 0x1bd, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "sccd", 11,16, 0x1bf, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "shib", 11,16, 0x23c, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "shiw", 11,16, 0x23d, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "shid", 11,16, 0x23f, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "slsb", 11,16, 0x2bc, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "slsw", 11,16, 0x2bd, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "slsd", 11,16, 0x2bf, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "sgtb", 11,16, 0x33c, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "sgtw", 11,16, 0x33d, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "sgtd", 11,16, 0x33f, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "sleb", 11,16, 0x3bc, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "slew", 11,16, 0x3bd, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "sled", 11,16, 0x3bf, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "sfsb", 11,16, 0x43c, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "sfsw", 11,16, 0x43d, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "sfsd", 11,16, 0x43f, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "sfcb", 11,16, 0x4bc, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "sfcw", 11,16, 0x4bd, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "sfcd", 11,16, 0x4bf, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "slob", 11,16, 0x53c, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "slow", 11,16, 0x53d, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "slod", 11,16, 0x53f, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "shsb", 11,16, 0x5bc, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "shsw", 11,16, 0x5bd, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "shsd", 11,16, 0x5bf, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "sltb", 11,16, 0x63c, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "sltw", 11,16, 0x63d, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "sltd", 11,16, 0x63f, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "sgeb", 11,16, 0x6bc, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "sgew", 11,16, 0x6bd, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "sged", 11,16, 0x6bf, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "sutb", 11,16, 0x73c, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "sutw", 11,16, 0x73d, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "sutd", 11,16, 0x73f, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "sufb", 11,16, 0x7bc, "1B", 0, "", DEF_MODEC,DEF_MODEL }, - { "sufw", 11,16, 0x7bd, "1W", 0, "", DEF_MODEC,DEF_MODEL }, - { "sufd", 11,16, 0x7bf, "1D", 0, "", DEF_MODEC,DEF_MODEL }, - { "save", 8,8, 0x62, "1U", 0, "", DEF_MODEC,DEF_MODEL }, - { "sbitb", 14,24, 0x184e, "1B2A", 1, "", DEF_MODEC,DEF_MODEL }, - { "sbitw", 14,24, 0x194e, "1W2A", 2, "", DEF_MODEC,DEF_MODEL }, - { "sbitd", 14,24, 0x1b4e, "1D2A", 4, "", DEF_MODEC,DEF_MODEL }, - { "sbitib", 14,24, 0x1c4e, "1B2A", 1, "", DEF_MODEC,DEF_MODEL }, - { "sbitiw", 14,24, 0x1d4e, "1W2A", 2, "", DEF_MODEC,DEF_MODEL }, - { "sbitid", 14,24, 0x1f4e, "1D2A", 4, "", DEF_MODEC,DEF_MODEL }, - { "setcfg", 15,24, 0x0b0e, "1O", 0, "", DEF_MODEC,DEF_MODEL }, - { "sfsr", 14,24, 0x373e, "1f", 0, "", DEF_MODEC,DEF_MODEL }, - { "skpsb", 16,24, 0x0c0e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL }, - { "skpsw", 16,24, 0x0d0e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL }, - { "skpsd", 16,24, 0x0f0e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL }, - { "skpst", 16,24, 0x8c0e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL }, - { "smr", 15,24, 0x0f1e, "2I1M", 4, "", DEF_MODEC,DEF_MODEL }, - { "sprb", 7,16, 0x2c, "2I1P", 1, "", DEF_MODEC,DEF_MODEL }, - { "sprw", 7,16, 0x2d, "2I1P", 2, "", DEF_MODEC,DEF_MODEL }, - { "sprd", 7,16, 0x2f, "2I1P", 4, "", DEF_MODEC,DEF_MODEL }, - { "subf", 14,24, 0x11be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL }, - { "subl", 14,24, 0x10be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL }, - { "subb", 6,16, 0x20, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "subw", 6,16, 0x21, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "subd", 6,16, 0x23, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "subcb", 6,16, 0x30, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "subcw", 6,16, 0x31, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "subcd", 6,16, 0x33, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "subpb", 14,24, 0x2c4e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "subpw", 14,24, 0x2d4e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "subpd", 14,24, 0x2f4e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, -#ifdef NS32K_SVC_IMMED_OPERANDS - { "svc", 8,8, 0xe2, "2i1i", 1, "", DEF_MODEC,DEF_MODEL }, /* not really, but some unix uses it */ -#else - { "svc", 8,8, 0xe2, "", 0, "", DEF_MODEC,DEF_MODEL }, -#endif - { "tbitb", 6,16, 0x34, "1B2A", 1, "", DEF_MODEC,DEF_MODEL }, - { "tbitw", 6,16, 0x35, "1W2A", 2, "", DEF_MODEC,DEF_MODEL }, - { "tbitd", 6,16, 0x37, "1D2A", 4, "", DEF_MODEC,DEF_MODEL }, - { "truncfb", 14,24, 0x2c3e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "truncfw", 14,24, 0x2d3e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "truncfd", 14,24, 0x2f3e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "trunclb", 14,24, 0x283e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL }, - { "trunclw", 14,24, 0x293e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL }, - { "truncld", 14,24, 0x2b3e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL }, - { "wait", 8,8, 0xb2, "", 0, "", DEF_MODEC,DEF_MODEL }, - { "wrval", 19,24, 0x0071e,"1A", 0, "", DEF_MODEC,DEF_MODEL }, - { "xorb", 6,16, 0x38, "1B2I", 1, "", DEF_MODEC,DEF_MODEL }, - { "xorw", 6,16, 0x39, "1W2I", 2, "", DEF_MODEC,DEF_MODEL }, - { "xord", 6,16, 0x3b, "1D2I", 4, "", DEF_MODEC,DEF_MODEL }, - { "dotf", 14,24, 0x0dfe, "1F2F", 4, "", DEF_MODEC,DEF_MODEL }, - { "dotl", 14,24, 0x0cfe, "1L2L", 8, "", DEF_MODEC,DEF_MODEL }, - { "logbf", 14,24, 0x15fe, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL }, - { "logbl", 14,24, 0x14fe, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL }, - { "polyf", 14,24, 0x09fe, "1F2F", 4, "", DEF_MODEC,DEF_MODEL }, - { "polyl", 14,24, 0x08fe, "1L2L", 8, "", DEF_MODEC,DEF_MODEL }, - { "scalbf", 14,24, 0x11fe, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL }, - { "scalbl", 14,24, 0x10fe, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL }, -}; - -#define MAX_ARGS 4 -#define ARG_LEN 50 - diff --git a/include/opcode/or32.h b/include/opcode/or32.h deleted file mode 100644 index 153d91e..0000000 --- a/include/opcode/or32.h +++ /dev/null @@ -1,181 +0,0 @@ -/* Table of opcodes for the OpenRISC 1000 ISA. - Copyright 2002, 2003, 2010 Free Software Foundation, Inc. - Contributed by Damjan Lampret (lampret@opencores.org). - - This file is part of or1k_gen_isa, or1ksim, GDB and GAS. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* We treat all letters the same in encode/decode routines so - we need to assign some characteristics to them like signess etc. */ - -#ifndef OR32_H_ISA -#define OR32_H_ISA - -#define NUM_UNSIGNED (0) -#define NUM_SIGNED (1) - -#define MAX_GPRS 32 -#define PAGE_SIZE 4096 -#undef __HALF_WORD_INSN__ - -#define OPERAND_DELIM (',') - -#define OR32_IF_DELAY (1) -#define OR32_W_FLAG (2) -#define OR32_R_FLAG (4) - -struct or32_letter -{ - char letter; - int sign; - /* int reloc; relocation per letter ?? */ -}; - -/* Main instruction specification array. */ -struct or32_opcode -{ - /* Name of the instruction. */ - char *name; - - /* A string of characters which describe the operands. - Valid characters are: - ,() Itself. Characters appears in the assembly code. - rA Register operand. - rB Register operand. - rD Register operand. - I An immediate operand, range -32768 to 32767. - J An immediate operand, range . (unused) - K An immediate operand, range 0 to 65535. - L An immediate operand, range 0 to 63. - M An immediate operand, range . (unused) - N An immediate operand, range -33554432 to 33554431. - O An immediate operand, range . (unused). */ - char *args; - - /* Opcode and operand encoding. */ - char *encoding; - void (*exec) (void); - unsigned int flags; -}; - -#define OPTYPE_LAST (0x80000000) -#define OPTYPE_OP (0x40000000) -#define OPTYPE_REG (0x20000000) -#define OPTYPE_SIG (0x10000000) -#define OPTYPE_DIS (0x08000000) -#define OPTYPE_DST (0x04000000) -#define OPTYPE_SBIT (0x00001F00) -#define OPTYPE_SHR (0x0000001F) -#define OPTYPE_SBIT_SHR (8) - -/* MM: Data how to decode operands. */ -extern struct insn_op_struct -{ - unsigned long type; - unsigned long data; -} **op_start; - -#ifdef HAS_EXECUTION -extern void l_invalid (void); -extern void l_sfne (void); -extern void l_bf (void); -extern void l_add (void); -extern void l_sw (void); -extern void l_sb (void); -extern void l_sh (void); -extern void l_lwz (void); -extern void l_lbs (void); -extern void l_lbz (void); -extern void l_lhs (void); -extern void l_lhz (void); -extern void l_movhi (void); -extern void l_and (void); -extern void l_or (void); -extern void l_xor (void); -extern void l_sub (void); -extern void l_mul (void); -extern void l_div (void); -extern void l_divu (void); -extern void l_sll (void); -extern void l_sra (void); -extern void l_srl (void); -extern void l_j (void); -extern void l_jal (void); -extern void l_jalr (void); -extern void l_jr (void); -extern void l_rfe (void); -extern void l_nop (void); -extern void l_bnf (void); -extern void l_sfeq (void); -extern void l_sfgts (void); -extern void l_sfges (void); -extern void l_sflts (void); -extern void l_sfles (void); -extern void l_sfgtu (void); -extern void l_sfgeu (void); -extern void l_sfltu (void); -extern void l_sfleu (void); -extern void l_mtspr (void); -extern void l_mfspr (void); -extern void l_sys (void); -extern void l_trap (void); /* CZ 21/06/01. */ -extern void l_macrc (void); -extern void l_mac (void); -extern void l_msb (void); -extern void l_invalid (void); -extern void l_cust1 (void); -extern void l_cust2 (void); -extern void l_cust3 (void); -extern void l_cust4 (void); -#endif -extern void l_none (void); - -extern const struct or32_letter or32_letters[]; - -extern const struct or32_opcode or32_opcodes[]; - -extern const unsigned int or32_num_opcodes; - -/* Calculates instruction length in bytes. Always 4 for OR32. */ -extern int insn_len (int); - -/* Is individual insn's operand signed or unsigned? */ -extern int letter_signed (char); - -/* Number of letters in the individual lettered operand. */ -extern int letter_range (char); - -/* MM: Returns index of given instruction name. */ -extern int insn_index (char *); - -/* MM: Returns instruction name from index. */ -extern const char *insn_name (int); - -/* MM: Constructs new FSM, based on or32_opcodes. */ -extern void build_automata (void); - -/* MM: Destructs FSM. */ -extern void destruct_automata (void); - -/* MM: Decodes instruction using FSM. Call build_automata first. */ -extern int insn_decode (unsigned int); - -/* Disassemble one instruction from insn to disassemble. - Return the size of the instruction. */ -int disassemble_insn (unsigned long); - -#endif diff --git a/include/opcode/pdp11.h b/include/opcode/pdp11.h deleted file mode 100644 index 24e13b2..0000000 --- a/include/opcode/pdp11.h +++ /dev/null @@ -1,84 +0,0 @@ -/* PDP-11 opcde list. - Copyright 2001, 2002, 2010 Free Software Foundation, Inc. - - This file is part of GDB and GAS. - - GDB and GAS are free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GDB and GAS are distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GDB or GAS; see the file COPYING3. If not, write to - the Free Software Foundation, 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* PDP-11 opcode types. */ - -#define PDP11_OPCODE_NO_OPS 0 -#define PDP11_OPCODE_REG 1 /* register */ -#define PDP11_OPCODE_OP 2 /* generic operand */ -#define PDP11_OPCODE_REG_OP 3 /* register and generic operand */ -#define PDP11_OPCODE_REG_OP_REV 4 /* register and generic operand, - reversed syntax */ -#define PDP11_OPCODE_AC_FOP 5 /* fpu accumulator and generic float - operand */ -#define PDP11_OPCODE_OP_OP 6 /* two generic operands */ -#define PDP11_OPCODE_DISPL 7 /* pc-relative displacement */ -#define PDP11_OPCODE_REG_DISPL 8 /* redister and pc-relative - displacement */ -#define PDP11_OPCODE_IMM8 9 /* 8-bit immediate */ -#define PDP11_OPCODE_IMM6 10 /* 6-bit immediate */ -#define PDP11_OPCODE_IMM3 11 /* 3-bit immediate */ -#define PDP11_OPCODE_ILLEGAL 12 /* illegal instruction */ -#define PDP11_OPCODE_FOP_AC 13 /* generic float argument, then fpu - accumulator */ -#define PDP11_OPCODE_FOP 14 /* generic float operand */ -#define PDP11_OPCODE_AC_OP 15 /* fpu accumulator and generic int - operand */ -#define PDP11_OPCODE_OP_AC 16 /* generic int argument, then fpu - accumulator */ - -/* - * PDP-11 instruction set extensions. - * - * Please keep the numbers low, as they are used as indices into - * an array. - */ - -#define PDP11_NONE 0 /* not in instruction set */ -#define PDP11_BASIC 1 /* basic instruction set (11/20 etc) */ -#define PDP11_CSM 2 /* commercial instruction set */ -#define PDP11_CIS 3 /* commercial instruction set */ -#define PDP11_EIS 4 /* extended instruction set (11/45 etc) */ -#define PDP11_FIS 5 /* KEV11 floating-point instructions */ -#define PDP11_FPP 6 /* FP-11 floating-point instructions */ -#define PDP11_LEIS 7 /* limited extended instruction set - (11/40 etc) */ -#define PDP11_MFPT 8 /* move from processor type */ -#define PDP11_MPROC 9 /* multiprocessor instructions: tstset, - wrtlck */ -#define PDP11_MXPS 10 /* move from/to processor status */ -#define PDP11_SPL 11 /* set priority level */ -#define PDP11_UCODE 12 /* microcode instructions: ldub, med, xfc */ -#define PDP11_EXT_NUM 13 /* total number of extension types */ - -struct pdp11_opcode -{ - const char *name; - int opcode; - int mask; - int type; - int extension; -}; - -extern const struct pdp11_opcode pdp11_opcodes[]; -extern const struct pdp11_opcode pdp11_aliases[]; -extern const int pdp11_num_opcodes, pdp11_num_aliases; - -/* end of pdp11.h */ diff --git a/include/opcode/pj.h b/include/opcode/pj.h deleted file mode 100644 index e6ffacc..0000000 --- a/include/opcode/pj.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Definitions for decoding the picoJava opcode table. - Copyright 1999, 2002, 2003, 2010 Free Software Foundation, Inc. - Contributed by Steve Chamberlain of Transmeta (sac@pobox.com). - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* Names used to describe the type of instruction arguments, used by - the assembler and disassembler. Attributes are encoded in various fields. */ - -/* reloc size pcrel uns */ -#define O_N 0 -#define O_16 (1<<4 | 2 | (0<<6) | (0<<3)) -#define O_U16 (1<<4 | 2 | (0<<6) | (1<<3)) -#define O_R16 (2<<4 | 2 | (1<<6) | (0<<3)) -#define O_8 (3<<4 | 1 | (0<<6) | (0<<3)) -#define O_U8 (3<<4 | 1 | (0<<6) | (1<<3)) -#define O_R8 (4<<4 | 1 | (0<<6) | (0<<3)) -#define O_R32 (5<<4 | 4 | (1<<6) | (0<<3)) -#define O_32 (6<<4 | 4 | (0<<6) | (0<<3)) - -#define ASIZE(x) ((x) & 0x7) -#define PCREL(x) (!!((x) & (1<<6))) -#define UNS(x) (!!((x) & (1<<3))) - - -typedef struct pj_opc_info_t -{ - short opcode; - short opcode_next; - char len; - unsigned char arg[2]; - union { - const char *name; - void (*func) (struct pj_opc_info_t *, char *); - } u; -} pj_opc_info_t; diff --git a/include/opcode/pn.h b/include/opcode/pn.h deleted file mode 100644 index 6674030..0000000 --- a/include/opcode/pn.h +++ /dev/null @@ -1,283 +0,0 @@ -/* Print GOULD PN (PowerNode) instructions for GDB, the GNU debugger. - Copyright 1986, 1987, 1989, 1991, 2010 Free Software Foundation, Inc. - - This file is part of GDB. - - GDB is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GDB is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GDB; see the file COPYING3. If not, write to - the Free Software Foundation, 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -struct gld_opcode -{ - char *name; - unsigned long opcode; - unsigned long mask; - char *args; - int length; -}; - -/* We store four bytes of opcode for all opcodes because that - is the most any of them need. The actual length of an instruction - is always at least 2 bytes, and at most four. The length of the - instruction is based on the opcode. - - The mask component is a mask saying which bits must match - particular opcode in order for an instruction to be an instance - of that opcode. - - The args component is a string containing characters - that are used to format the arguments to the instruction. */ - -/* Kinds of operands: - r Register in first field - R Register in second field - b Base register in first field - B Base register in second field - v Vector register in first field - V Vector register in first field - A Optional address register (base register) - X Optional index register - I Immediate data (16bits signed) - O Offset field (16bits signed) - h Offset field (15bits signed) - d Offset field (14bits signed) - S Shift count field - - any other characters are printed as is... -*/ - -/* The assembler requires that this array be sorted as follows: - all instances of the same mnemonic must be consecutive. - All instances of the same mnemonic with the same number of operands - must be consecutive. - */ -struct gld_opcode gld_opcodes[] = -{ -{ "abm", 0xa0080000, 0xfc080000, "f,xOA,X", 4 }, -{ "abr", 0x18080000, 0xfc0c0000, "r,f", 2 }, -{ "aci", 0xfc770000, 0xfc7f8000, "r,I", 4 }, -{ "adfd", 0xe0080002, 0xfc080002, "r,xOA,X", 4 }, -{ "adfw", 0xe0080000, 0xfc080000, "r,xOA,X", 4 }, -{ "adi", 0xc8010000, 0xfc7f0000, "r,I", 4 }, -{ "admb", 0xb8080000, 0xfc080000, "r,xOA,X", 4 }, -{ "admd", 0xb8000002, 0xfc080002, "r,xOA,X", 4 }, -{ "admh", 0xb8000001, 0xfc080001, "r,xOA,X", 4 }, -{ "admw", 0xb8000000, 0xfc080000, "r,xOA,X", 4 }, -{ "adr", 0x38000000, 0xfc0f0000, "r,R", 2 }, -{ "adrfd", 0x38090000, 0xfc0f0000, "r,R", 2 }, -{ "adrfw", 0x38010000, 0xfc0f0000, "r,R", 2 }, -{ "adrm", 0x38080000, 0xfc0f0000, "r,R", 2 }, -{ "ai", 0xfc030000, 0xfc07ffff, "I", 4 }, -{ "anmb", 0x84080000, 0xfc080000, "r,xOA,X", 4 }, -{ "anmd", 0x84000002, 0xfc080002, "r,xOA,X", 4 }, -{ "anmh", 0x84000001, 0xfc080001, "r,xOA,X", 4 }, -{ "anmw", 0x84000000, 0xfc080000, "r,xOA,X", 4 }, -{ "anr", 0x04000000, 0xfc0f0000, "r,R", 2 }, -{ "armb", 0xe8080000, 0xfc080000, "r,xOA,X", 4 }, -{ "armd", 0xe8000002, 0xfc080002, "r,xOA,X", 4 }, -{ "armh", 0xe8000001, 0xfc080001, "r,xOA,X", 4 }, -{ "armw", 0xe8000000, 0xfc080000, "r,xOA,X", 4 }, -{ "bcf", 0xf0000000, 0xfc080000, "I,xOA,X", 4 }, -{ "bct", 0xec000000, 0xfc080000, "I,xOA,X", 4 }, -{ "bei", 0x00060000, 0xffff0000, "", 2 }, -{ "bft", 0xf0000000, 0xff880000, "xOA,X", 4 }, -{ "bib", 0xf4000000, 0xfc780000, "r,xOA", 4 }, -{ "bid", 0xf4600000, 0xfc780000, "r,xOA", 4 }, -{ "bih", 0xf4200000, 0xfc780000, "r,xOA", 4 }, -{ "biw", 0xf4400000, 0xfc780000, "r,xOA", 4 }, -{ "bl", 0xf8800000, 0xff880000, "xOA,X", 4 }, -{ "bsub", 0x5c080000, 0xff8f0000, "", 2 }, -{ "bsubm", 0x28080000, 0xfc080000, "", 4 }, -{ "bu", 0xec000000, 0xff880000, "xOA,X", 4 }, -{ "call", 0x28080000, 0xfc0f0000, "", 2 }, -{ "callm", 0x5c080000, 0xff880000, "", 4 }, -{ "camb", 0x90080000, 0xfc080000, "r,xOA,X", 4 }, -{ "camd", 0x90000002, 0xfc080002, "r,xOA,X", 4 }, -{ "camh", 0x90000001, 0xfc080001, "r,xOA,X", 4 }, -{ "camw", 0x90000000, 0xfc080000, "r.xOA,X", 4 }, -{ "car", 0x10000000, 0xfc0f0000, "r,R", 2 }, -{ "cd", 0xfc060000, 0xfc070000, "r,f", 4 }, -{ "cea", 0x000f0000, 0xffff0000, "", 2 }, -{ "ci", 0xc8050000, 0xfc7f0000, "r,I", 4 }, -{ "cmc", 0x040a0000, 0xfc7f0000, "r", 2 }, -{ "cmmb", 0x94080000, 0xfc080000, "r,xOA,X", 4 }, -{ "cmmd", 0x94000002, 0xfc080002, "r,xOA,X", 4 }, -{ "cmmh", 0x94000001, 0xfc080001, "r,xOA,X", 4 }, -{ "cmmw", 0x94000000, 0xfc080000, "r,xOA,X", 4 }, -{ "cmr", 0x14000000, 0xfc0f0000, "r,R", 2 }, -{ "daci", 0xfc7f0000, 0xfc7f8000, "r,I", 4 }, -{ "dae", 0x000e0000, 0xffff0000, "", 2 }, -{ "dai", 0xfc040000, 0xfc07ffff, "I", 4 }, -{ "dci", 0xfc6f0000, 0xfc7f8000, "r,I", 4 }, -{ "di", 0xfc010000, 0xfc07ffff, "I", 4 }, -{ "dvfd", 0xe4000002, 0xfc080002, "r,xOA,X", 4 }, -{ "dvfw", 0xe4000000, 0xfc080000, "r,xOA,X", 4 }, -{ "dvi", 0xc8040000, 0xfc7f0000, "r,I", 4 }, -{ "dvmb", 0xc4080000, 0xfc080000, "r,xOA,X", 4 }, -{ "dvmh", 0xc4000001, 0xfc080001, "r,xOA,X", 4 }, -{ "dvmw", 0xc4000000, 0xfc080000, "r,xOA,X", 4 }, -{ "dvr", 0x380a0000, 0xfc0f0000, "r,R", 2 }, -{ "dvrfd", 0x380c0000, 0xfc0f0000, "r,R", 4 }, -{ "dvrfw", 0x38040000, 0xfc0f0000, "r,xOA,X", 4 }, -{ "eae", 0x00080000, 0xffff0000, "", 2 }, -{ "eci", 0xfc670000, 0xfc7f8080, "r,I", 4 }, -{ "ecwcs", 0xfc4f0000, 0xfc7f8000, "", 4 }, -{ "ei", 0xfc000000, 0xfc07ffff, "I", 4 }, -{ "eomb", 0x8c080000, 0xfc080000, "r,xOA,X", 4 }, -{ "eomd", 0x8c000002, 0xfc080002, "r,xOA,X", 4 }, -{ "eomh", 0x8c000001, 0xfc080001, "r,xOA,X", 4 }, -{ "eomw", 0x8c000000, 0xfc080000, "r,xOA,X", 4 }, -{ "eor", 0x0c000000, 0xfc0f0000, "r,R", 2 }, -{ "eorm", 0x0c080000, 0xfc0f0000, "r,R", 2 }, -{ "es", 0x00040000, 0xfc7f0000, "r", 2 }, -{ "exm", 0xa8000000, 0xff880000, "xOA,X", 4 }, -{ "exr", 0xc8070000, 0xfc7f0000, "r", 2 }, -{ "exrr", 0xc8070002, 0xfc7f0002, "r", 2 }, -{ "fixd", 0x380d0000, 0xfc0f0000, "r,R", 2 }, -{ "fixw", 0x38050000, 0xfc0f0000, "r,R", 2 }, -{ "fltd", 0x380f0000, 0xfc0f0000, "r,R", 2 }, -{ "fltw", 0x38070000, 0xfc0f0000, "r,R", 2 }, -{ "grio", 0xfc3f0000, 0xfc7f8000, "r,I", 4 }, -{ "halt", 0x00000000, 0xffff0000, "", 2 }, -{ "hio", 0xfc370000, 0xfc7f8000, "r,I", 4 }, -{ "jwcs", 0xfa080000, 0xff880000, "xOA,X", 4 }, -{ "la", 0x50000000, 0xfc000000, "r,xOA,X", 4 }, -{ "labr", 0x58080000, 0xfc080000, "b,xOA,X", 4 }, -{ "lb", 0xac080000, 0xfc080000, "r,xOA,X", 4 }, -{ "lcs", 0x00030000, 0xfc7f0000, "r", 2 }, -{ "ld", 0xac000002, 0xfc080002, "r,xOA,X", 4 }, -{ "lear", 0x80000000, 0xfc080000, "r,xOA,X", 4 }, -{ "lf", 0xcc000000, 0xfc080000, "r,xOA,X", 4 }, -{ "lfbr", 0xcc080000, 0xfc080000, "b,xOA,X", 4 }, -{ "lh", 0xac000001, 0xfc080001, "r,xOA,X", 4 }, -{ "li", 0xc8000000, 0xfc7f0000, "r,I", 4 }, -{ "lmap", 0x2c070000, 0xfc7f0000, "r", 2 }, -{ "lmb", 0xb0080000, 0xfc080000, "r,xOA,X", 4 }, -{ "lmd", 0xb0000002, 0xfc080002, "r,xOA,X", 4 }, -{ "lmh", 0xb0000001, 0xfc080001, "r,xOA,X", 4 }, -{ "lmw", 0xb0000000, 0xfc080000, "r,xOA,X", 4 }, -{ "lnb", 0xb4080000, 0xfc080000, "r,xOA,X", 4 }, -{ "lnd", 0xb4000002, 0xfc080002, "r,xOA,X", 4 }, -{ "lnh", 0xb4000001, 0xfc080001, "r,xOA,X", 4 }, -{ "lnw", 0xb4000000, 0xfc080000, "r,xOA,X", 4 }, -{ "lpsd", 0xf9800000, 0xff880000, "r,xOA,X", 4 }, -{ "lpsdcm", 0xfa800000, 0xff880000, "r,xOA,X", 4 }, -{ "lw", 0xac000000, 0xfc080000, "r,xOA,X", 4 }, -{ "lwbr", 0x5c000000, 0xfc080000, "b,xOA,X", 4 }, -{ "mpfd", 0xe4080002, 0xfc080002, "r,xOA,X", 4 }, -{ "mpfw", 0xe4080000, 0xfc080000, "r,xOA,X", 4 }, -{ "mpi", 0xc8030000, 0xfc7f0000, "r,I", 4 }, -{ "mpmb", 0xc0080000, 0xfc080000, "r,xOA,X", 4 }, -{ "mpmh", 0xc0000001, 0xfc080001, "r,xOA,X", 4 }, -{ "mpmw", 0xc0000000, 0xfc080000, "r,xOA,X", 4 }, -{ "mpr", 0x38020000, 0xfc0f0000, "r,R", 2 }, -{ "mprfd", 0x380e0000, 0xfc0f0000, "r,R", 2 }, -{ "mprfw", 0x38060000, 0xfc0f0000, "r,R", 2 }, -{ "nop", 0x00020000, 0xffff0000, "", 2 }, -{ "ormb", 0x88080000, 0xfc080000, "r,xOA,X", 4 }, -{ "ormd", 0x88000002, 0xfc080002, "r,xOA,X", 4 }, -{ "ormh", 0x88000001, 0xfc080001, "r,xOA,X", 4 }, -{ "ormw", 0x88000000, 0xfc080000, "r,xOA,X", 4 }, -{ "orr", 0x08000000, 0xfc0f0000, "r,R", 2 }, -{ "orrm", 0x08080000, 0xfc0f0000, "r,R", 2 }, -{ "rdsts", 0x00090000, 0xfc7f0000, "r", 2 }, -{ "return", 0x280e0000, 0xfc7f0000, "", 2 }, -{ "ri", 0xfc020000, 0xfc07ffff, "I", 4 }, -{ "rnd", 0x00050000, 0xfc7f0000, "r", 2 }, -{ "rpswt", 0x040b0000, 0xfc7f0000, "r", 2 }, -{ "rschnl", 0xfc2f0000, 0xfc7f8000, "r,I", 4 }, -{ "rsctl", 0xfc470000, 0xfc7f8000, "r,I", 4 }, -{ "rwcs", 0x000b0000, 0xfc0f0000, "r,R", 2 }, -{ "sacz", 0x10080000, 0xfc0f0000, "r,R", 2 }, -{ "sbm", 0x98080000, 0xfc080000, "f,xOA,X", 4 }, -{ "sbr", 0x18000000, 0xfc0c0000, "r,f", 4 }, -{ "sea", 0x000d0000, 0xffff0000, "", 2 }, -{ "setcpu", 0x2c090000, 0xfc7f0000, "r", 2 }, -{ "sio", 0xfc170000, 0xfc7f8000, "r,I", 4 }, -{ "sipu", 0x000a0000, 0xffff0000, "", 2 }, -{ "sla", 0x1c400000, 0xfc600000, "r,S", 2 }, -{ "slad", 0x20400000, 0xfc600000, "r,S", 2 }, -{ "slc", 0x24400000, 0xfc600000, "r,S", 2 }, -{ "sll", 0x1c600000, 0xfc600000, "r,S", 2 }, -{ "slld", 0x20600000, 0xfc600000, "r,S", 2 }, -{ "smc", 0x04070000, 0xfc070000, "", 2 }, -{ "sra", 0x1c000000, 0xfc600000, "r,S", 2 }, -{ "srad", 0x20000000, 0xfc600000, "r,S", 2 }, -{ "src", 0x24000000, 0xfc600000, "r,S", 2 }, -{ "srl", 0x1c200000, 0xfc600000, "r,S", 2 }, -{ "srld", 0x20200000, 0xfc600000, "r,S", 2 }, -{ "stb", 0xd4080000, 0xfc080000, "r,xOA,X", 4 }, -{ "std", 0xd4000002, 0xfc080002, "r,xOA,X", 4 }, -{ "stf", 0xdc000000, 0xfc080000, "r,xOA,X", 4 }, -{ "stfbr", 0x54000000, 0xfc080000, "b,xOA,X", 4 }, -{ "sth", 0xd4000001, 0xfc080001, "r,xOA,X", 4 }, -{ "stmb", 0xd8080000, 0xfc080000, "r,xOA,X", 4 }, -{ "stmd", 0xd8000002, 0xfc080002, "r,xOA,X", 4 }, -{ "stmh", 0xd8000001, 0xfc080001, "r,xOA,X", 4 }, -{ "stmw", 0xd8000000, 0xfc080000, "r,xOA,X", 4 }, -{ "stpio", 0xfc270000, 0xfc7f8000, "r,I", 4 }, -{ "stw", 0xd4000000, 0xfc080000, "r,xOA,X", 4 }, -{ "stwbr", 0x54000000, 0xfc080000, "b,xOA,X", 4 }, -{ "suabr", 0x58000000, 0xfc080000, "b,xOA,X", 4 }, -{ "sufd", 0xe0000002, 0xfc080002, "r,xOA,X", 4 }, -{ "sufw", 0xe0000000, 0xfc080000, "r,xOA,X", 4 }, -{ "sui", 0xc8020000, 0xfc7f0000, "r,I", 4 }, -{ "sumb", 0xbc080000, 0xfc080000, "r,xOA,X", 4 }, -{ "sumd", 0xbc000002, 0xfc080002, "r,xOA,X", 4 }, -{ "sumh", 0xbc000001, 0xfc080001, "r,xOA,X", 4 }, -{ "sumw", 0xbc000000, 0xfc080000, "r,xOA,X", 4 }, -{ "sur", 0x3c000000, 0xfc0f0000, "r,R", 2 }, -{ "surfd", 0x380b0000, 0xfc0f0000, "r,xOA,X", 4 }, -{ "surfw", 0x38030000, 0xfc0f0000, "r,R", 2 }, -{ "surm", 0x3c080000, 0xfc0f0000, "r,R", 2 }, -{ "svc", 0xc8060000, 0xffff0000, "", 4 }, -{ "tbm", 0xa4080000, 0xfc080000, "f,xOA,X", 4 }, -{ "tbr", 0x180c0000, 0xfc0c0000, "r,f", 2 }, -{ "tbrr", 0x2c020000, 0xfc0f0000, "r,B", 2 }, -{ "tccr", 0x28040000, 0xfc7f0000, "", 2 }, -{ "td", 0xfc050000, 0xfc070000, "r,f", 4 }, -{ "tio", 0xfc1f0000, 0xfc7f8000, "r,I", 4 }, -{ "tmapr", 0x2c0a0000, 0xfc0f0000, "r,R", 2 }, -{ "tpcbr", 0x280c0000, 0xfc7f0000, "r", 2 }, -{ "trbr", 0x2c010000, 0xfc0f0000, "b,R", 2 }, -{ "trc", 0x2c030000, 0xfc0f0000, "r,R", 2 }, -{ "trcc", 0x28050000, 0xfc7f0000, "", 2 }, -{ "trcm", 0x2c0b0000, 0xfc0f0000, "r,R", 2 }, -{ "trn", 0x2c040000, 0xfc0f0000, "r,R", 2 }, -{ "trnm", 0x2c0c0000, 0xfc0f0000, "r,R", 2 }, -{ "trr", 0x2c000000, 0xfc0f0000, "r,R", 2 }, -{ "trrm", 0x2c080000, 0xfc0f0000, "r,R", 2 }, -{ "trsc", 0x2c0e0000, 0xfc0f0000, "r,R", 2 }, -{ "trsw", 0x28000000, 0xfc7f0000, "r", 2 }, -{ "tscr", 0x2c0f0000, 0xfc0f0000, "r,R", 2 }, -{ "uei", 0x00070000, 0xffff0000, "", 2 }, -{ "wait", 0x00010000, 0xffff0000, "", 2 }, -{ "wcwcs", 0xfc5f0000, 0xfc7f8000, "", 4 }, -{ "wwcs", 0x000c0000, 0xfc0f0000, "r,R", 2 }, -{ "xcbr", 0x28020000, 0xfc0f0000, "b,B", 2 }, -{ "xcr", 0x2c050000, 0xfc0f0000, "r,R", 2 }, -{ "xcrm", 0x2c0d0000, 0xfc0f0000, "r,R", 2 }, -{ "zbm", 0x9c080000, 0xfc080000, "f,xOA,X", 4 }, -{ "zbr", 0x18040000, 0xfc0c0000, "r,f", 2 }, -{ "zmb", 0xf8080000, 0xfc080000, "r,xOA,X", 4 }, -{ "zmd", 0xf8000002, 0xfc080002, "r,xOA,X", 4 }, -{ "zmh", 0xf8000001, 0xfc080001, "r,xOA,X", 4 }, -{ "zmw", 0xf8000000, 0xfc080000, "r,xOA,X", 4 }, -{ "zr", 0x0c000000, 0xfc0f0000, "r", 2 }, -}; - -int numopcodes = sizeof(gld_opcodes) / sizeof(gld_opcodes[0]); - -struct gld_opcode *endop = gld_opcodes + sizeof(gld_opcodes) / - sizeof(gld_opcodes[0]); diff --git a/include/opcode/ppc.h b/include/opcode/ppc.h deleted file mode 100644 index df97130..0000000 --- a/include/opcode/ppc.h +++ /dev/null @@ -1,413 +0,0 @@ -/* ppc.h -- Header file for PowerPC opcode table - Copyright 1994, 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009, 2010, 2012 Free Software Foundation, Inc. - Written by Ian Lance Taylor, Cygnus Support - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef PPC_H -#define PPC_H - -#include "bfd_stdint.h" - -typedef uint64_t ppc_cpu_t; - -/* The opcode table is an array of struct powerpc_opcode. */ - -struct powerpc_opcode -{ - /* The opcode name. */ - const char *name; - - /* The opcode itself. Those bits which will be filled in with - operands are zeroes. */ - unsigned long opcode; - - /* The opcode mask. This is used by the disassembler. This is a - mask containing ones indicating those bits which must match the - opcode field, and zeroes indicating those bits which need not - match (and are presumably filled in by operands). */ - unsigned long mask; - - /* One bit flags for the opcode. These are used to indicate which - specific processors support the instructions. The defined values - are listed below. */ - ppc_cpu_t flags; - - /* One bit flags for the opcode. These are used to indicate which - specific processors no longer support the instructions. The defined - values are listed below. */ - ppc_cpu_t deprecated; - - /* An array of operand codes. Each code is an index into the - operand table. They appear in the order which the operands must - appear in assembly code, and are terminated by a zero. */ - unsigned char operands[8]; -}; - -/* The table itself is sorted by major opcode number, and is otherwise - in the order in which the disassembler should consider - instructions. */ -extern const struct powerpc_opcode powerpc_opcodes[]; -extern const int powerpc_num_opcodes; -extern const struct powerpc_opcode vle_opcodes[]; -extern const int vle_num_opcodes; - -/* Values defined for the flags field of a struct powerpc_opcode. */ - -/* Opcode is defined for the PowerPC architecture. */ -#define PPC_OPCODE_PPC 1 - -/* Opcode is defined for the POWER (RS/6000) architecture. */ -#define PPC_OPCODE_POWER 2 - -/* Opcode is defined for the POWER2 (Rios 2) architecture. */ -#define PPC_OPCODE_POWER2 4 - -/* Opcode is supported by the Motorola PowerPC 601 processor. The 601 - is assumed to support all PowerPC (PPC_OPCODE_PPC) instructions, - but it also supports many additional POWER instructions. */ -#define PPC_OPCODE_601 8 - -/* Opcode is supported in both the Power and PowerPC architectures - (ie, compiler's -mcpu=common or assembler's -mcom). More than just - the intersection of PPC_OPCODE_PPC with the union of PPC_OPCODE_POWER - and PPC_OPCODE_POWER2 because many instructions changed mnemonics - between POWER and POWERPC. */ -#define PPC_OPCODE_COMMON 0x10 - -/* Opcode is supported for any Power or PowerPC platform (this is - for the assembler's -many option, and it eliminates duplicates). */ -#define PPC_OPCODE_ANY 0x20 - -/* Opcode is only defined on 64 bit architectures. */ -#define PPC_OPCODE_64 0x40 - -/* Opcode is supported as part of the 64-bit bridge. */ -#define PPC_OPCODE_64_BRIDGE 0x80 - -/* Opcode is supported by Altivec Vector Unit */ -#define PPC_OPCODE_ALTIVEC 0x100 - -/* Opcode is supported by PowerPC 403 processor. */ -#define PPC_OPCODE_403 0x200 - -/* Opcode is supported by PowerPC BookE processor. */ -#define PPC_OPCODE_BOOKE 0x400 - -/* Opcode is supported by PowerPC 440 processor. */ -#define PPC_OPCODE_440 0x800 - -/* Opcode is only supported by Power4 architecture. */ -#define PPC_OPCODE_POWER4 0x1000 - -/* Opcode is only supported by Power7 architecture. */ -#define PPC_OPCODE_POWER7 0x2000 - -/* Opcode is only supported by e500x2 Core. */ -#define PPC_OPCODE_SPE 0x4000 - -/* Opcode is supported by e500x2 Integer select APU. */ -#define PPC_OPCODE_ISEL 0x8000 - -/* Opcode is an e500 SPE floating point instruction. */ -#define PPC_OPCODE_EFS 0x10000 - -/* Opcode is supported by branch locking APU. */ -#define PPC_OPCODE_BRLOCK 0x20000 - -/* Opcode is supported by performance monitor APU. */ -#define PPC_OPCODE_PMR 0x40000 - -/* Opcode is supported by cache locking APU. */ -#define PPC_OPCODE_CACHELCK 0x80000 - -/* Opcode is supported by machine check APU. */ -#define PPC_OPCODE_RFMCI 0x100000 - -/* Opcode is only supported by Power5 architecture. */ -#define PPC_OPCODE_POWER5 0x200000 - -/* Opcode is supported by PowerPC e300 family. */ -#define PPC_OPCODE_E300 0x400000 - -/* Opcode is only supported by Power6 architecture. */ -#define PPC_OPCODE_POWER6 0x800000 - -/* Opcode is only supported by PowerPC Cell family. */ -#define PPC_OPCODE_CELL 0x1000000 - -/* Opcode is supported by CPUs with paired singles support. */ -#define PPC_OPCODE_PPCPS 0x2000000 - -/* Opcode is supported by Power E500MC */ -#define PPC_OPCODE_E500MC 0x4000000 - -/* Opcode is supported by PowerPC 405 processor. */ -#define PPC_OPCODE_405 0x8000000 - -/* Opcode is supported by Vector-Scalar (VSX) Unit */ -#define PPC_OPCODE_VSX 0x10000000 - -/* Opcode is supported by A2. */ -#define PPC_OPCODE_A2 0x20000000 - -/* Opcode is supported by PowerPC 476 processor. */ -#define PPC_OPCODE_476 0x40000000 - -/* Opcode is supported by AppliedMicro Titan core */ -#define PPC_OPCODE_TITAN 0x80000000 - -/* Opcode which is supported by the e500 family */ -#define PPC_OPCODE_E500 0x100000000ull - -/* Opcode is supported by Extended Altivec Vector Unit */ -#define PPC_OPCODE_ALTIVEC2 0x200000000ull - -/* Opcode is supported by Power E6500 */ -#define PPC_OPCODE_E6500 0x400000000ull - -/* Opcode is supported by Thread management APU */ -#define PPC_OPCODE_TMR 0x800000000ull - -/* Opcode which is supported by the VLE extension. */ -#define PPC_OPCODE_VLE 0x1000000000ull - -/* Opcode is only supported by Power8 architecture. */ -#define PPC_OPCODE_POWER8 0x2000000000ull - -/* Opcode which is supported by the Hardware Transactional Memory extension. */ -/* Currently, this is the same as the POWER8 mask. If another cpu comes out - that isn't a superset of POWER8, we can define this to its own mask. */ -#define PPC_OPCODE_HTM PPC_OPCODE_POWER8 - -/* A macro to extract the major opcode from an instruction. */ -#define PPC_OP(i) (((i) >> 26) & 0x3f) - -/* A macro to determine if the instruction is a 2-byte VLE insn. */ -#define PPC_OP_SE_VLE(m) ((m) <= 0xffff) - -/* A macro to extract the major opcode from a VLE instruction. */ -#define VLE_OP(i,m) (((i) >> ((m) <= 0xffff ? 10 : 26)) & 0x3f) - -/* A macro to convert a VLE opcode to a VLE opcode segment. */ -#define VLE_OP_TO_SEG(i) ((i) >> 1) - -/* The operands table is an array of struct powerpc_operand. */ - -struct powerpc_operand -{ - /* A bitmask of bits in the operand. */ - unsigned int bitm; - - /* The shift operation to be applied to the operand. No shift - is made if this is zero. For positive values, the operand - is shifted left by SHIFT. For negative values, the operand - is shifted right by -SHIFT. Use PPC_OPSHIFT_INV to indicate - that BITM and SHIFT cannot be used to determine where the - operand goes in the insn. */ - int shift; - - /* Insertion function. This is used by the assembler. To insert an - operand value into an instruction, check this field. - - If it is NULL, execute - if (o->shift >= 0) - i |= (op & o->bitm) << o->shift; - else - i |= (op & o->bitm) >> -o->shift; - (i is the instruction which we are filling in, o is a pointer to - this structure, and op is the operand value). - - If this field is not NULL, then simply call it with the - instruction and the operand value. It will return the new value - of the instruction. If the ERRMSG argument is not NULL, then if - the operand value is illegal, *ERRMSG will be set to a warning - string (the operand will be inserted in any case). If the - operand value is legal, *ERRMSG will be unchanged (most operands - can accept any value). */ - unsigned long (*insert) - (unsigned long instruction, long op, ppc_cpu_t dialect, const char **errmsg); - - /* Extraction function. This is used by the disassembler. To - extract this operand type from an instruction, check this field. - - If it is NULL, compute - if (o->shift >= 0) - op = (i >> o->shift) & o->bitm; - else - op = (i << -o->shift) & o->bitm; - if ((o->flags & PPC_OPERAND_SIGNED) != 0) - sign_extend (op); - (i is the instruction, o is a pointer to this structure, and op - is the result). - - If this field is not NULL, then simply call it with the - instruction value. It will return the value of the operand. If - the INVALID argument is not NULL, *INVALID will be set to - non-zero if this operand type can not actually be extracted from - this operand (i.e., the instruction does not match). If the - operand is valid, *INVALID will not be changed. */ - long (*extract) (unsigned long instruction, ppc_cpu_t dialect, int *invalid); - - /* One bit syntax flags. */ - unsigned long flags; -}; - -/* Elements in the table are retrieved by indexing with values from - the operands field of the powerpc_opcodes table. */ - -extern const struct powerpc_operand powerpc_operands[]; -extern const unsigned int num_powerpc_operands; - -/* Use with the shift field of a struct powerpc_operand to indicate - that BITM and SHIFT cannot be used to determine where the operand - goes in the insn. */ -#define PPC_OPSHIFT_INV (-1 << 31) - -/* Values defined for the flags field of a struct powerpc_operand. */ - -/* This operand takes signed values. */ -#define PPC_OPERAND_SIGNED (0x1) - -/* This operand takes signed values, but also accepts a full positive - range of values when running in 32 bit mode. That is, if bits is - 16, it takes any value from -0x8000 to 0xffff. In 64 bit mode, - this flag is ignored. */ -#define PPC_OPERAND_SIGNOPT (0x2) - -/* This operand does not actually exist in the assembler input. This - is used to support extended mnemonics such as mr, for which two - operands fields are identical. The assembler should call the - insert function with any op value. The disassembler should call - the extract function, ignore the return value, and check the value - placed in the valid argument. */ -#define PPC_OPERAND_FAKE (0x4) - -/* The next operand should be wrapped in parentheses rather than - separated from this one by a comma. This is used for the load and - store instructions which want their operands to look like - reg,displacement(reg) - */ -#define PPC_OPERAND_PARENS (0x8) - -/* This operand may use the symbolic names for the CR fields, which - are - lt 0 gt 1 eq 2 so 3 un 3 - cr0 0 cr1 1 cr2 2 cr3 3 - cr4 4 cr5 5 cr6 6 cr7 7 - These may be combined arithmetically, as in cr2*4+gt. These are - only supported on the PowerPC, not the POWER. */ -#define PPC_OPERAND_CR_BIT (0x10) - -/* This operand names a register. The disassembler uses this to print - register names with a leading 'r'. */ -#define PPC_OPERAND_GPR (0x20) - -/* Like PPC_OPERAND_GPR, but don't print a leading 'r' for r0. */ -#define PPC_OPERAND_GPR_0 (0x40) - -/* This operand names a floating point register. The disassembler - prints these with a leading 'f'. */ -#define PPC_OPERAND_FPR (0x80) - -/* This operand is a relative branch displacement. The disassembler - prints these symbolically if possible. */ -#define PPC_OPERAND_RELATIVE (0x100) - -/* This operand is an absolute branch address. The disassembler - prints these symbolically if possible. */ -#define PPC_OPERAND_ABSOLUTE (0x200) - -/* This operand is optional, and is zero if omitted. This is used for - example, in the optional BF field in the comparison instructions. The - assembler must count the number of operands remaining on the line, - and the number of operands remaining for the opcode, and decide - whether this operand is present or not. The disassembler should - print this operand out only if it is not zero. */ -#define PPC_OPERAND_OPTIONAL (0x400) - -/* This flag is only used with PPC_OPERAND_OPTIONAL. If this operand - is omitted, then for the next operand use this operand value plus - 1, ignoring the next operand field for the opcode. This wretched - hack is needed because the Power rotate instructions can take - either 4 or 5 operands. The disassembler should print this operand - out regardless of the PPC_OPERAND_OPTIONAL field. */ -#define PPC_OPERAND_NEXT (0x800) - -/* This operand should be regarded as a negative number for the - purposes of overflow checking (i.e., the normal most negative - number is disallowed and one more than the normal most positive - number is allowed). This flag will only be set for a signed - operand. */ -#define PPC_OPERAND_NEGATIVE (0x1000) - -/* This operand names a vector unit register. The disassembler - prints these with a leading 'v'. */ -#define PPC_OPERAND_VR (0x2000) - -/* This operand is for the DS field in a DS form instruction. */ -#define PPC_OPERAND_DS (0x4000) - -/* This operand is for the DQ field in a DQ form instruction. */ -#define PPC_OPERAND_DQ (0x8000) - -/* Valid range of operand is 0..n rather than 0..n-1. */ -#define PPC_OPERAND_PLUS1 (0x10000) - -/* Xilinx APU and FSL related operands */ -#define PPC_OPERAND_FSL (0x20000) -#define PPC_OPERAND_FCR (0x40000) -#define PPC_OPERAND_UDI (0x80000) - -/* This operand names a vector-scalar unit register. The disassembler - prints these with a leading 'vs'. */ -#define PPC_OPERAND_VSR (0x100000) - -/* This is a CR FIELD that does not use symbolic names. */ -#define PPC_OPERAND_CR_REG (0x200000) - -/* The POWER and PowerPC assemblers use a few macros. We keep them - with the operands table for simplicity. The macro table is an - array of struct powerpc_macro. */ - -struct powerpc_macro -{ - /* The macro name. */ - const char *name; - - /* The number of operands the macro takes. */ - unsigned int operands; - - /* One bit flags for the opcode. These are used to indicate which - specific processors support the instructions. The values are the - same as those for the struct powerpc_opcode flags field. */ - ppc_cpu_t flags; - - /* A format string to turn the macro into a normal instruction. - Each %N in the string is replaced with operand number N (zero - based). */ - const char *format; -}; - -extern const struct powerpc_macro powerpc_macros[]; -extern const int powerpc_num_macros; - -extern ppc_cpu_t ppc_parse_cpu (ppc_cpu_t, ppc_cpu_t *, const char *); - -#endif /* PPC_H */ diff --git a/include/opcode/pyr.h b/include/opcode/pyr.h deleted file mode 100644 index 2fffd94..0000000 --- a/include/opcode/pyr.h +++ /dev/null @@ -1,305 +0,0 @@ -/* pyramid.opcode.h -- gdb initial attempt. - - Copyright 2001, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* pyramid opcode table: wot to do with this - particular opcode */ - -struct pyr_datum -{ - char nargs; - char * args; /* how to compile said opcode */ - unsigned long mask; /* Bit vector: which operand modes are valid - for this opcode */ - unsigned char code; /* op-code (always 6(?) bits */ -}; - -typedef struct pyr_insn_format -{ - unsigned int mode :4; - unsigned int operator :8; - unsigned int index_scale :2; - unsigned int index_reg :6; - unsigned int operand_1 :6; - unsigned int operand_2:6; -} pyr_insn_format; - - -/* We store four bytes of opcode for all opcodes. - Pyramid is sufficiently RISCy that: - - insns are always an integral number of words; - - the length of any insn can be told from the first word of - the insn. (ie, if there are zero, one, or two words of - immediate operand/offset). - - - The args component is a string containing two characters for each - operand of the instruction. The first specifies the kind of operand; - the second, the place it is stored. */ - -/* Kinds of operands: - mask assembler syntax description - 0x0001: movw Rn,Rn register to register - 0x0002: movw K,Rn quick immediate to register - 0x0004: movw I,Rn long immediate to register - 0x0008: movw (Rn),Rn register indirect to register - movw (Rn)[x],Rn register indirect to register - 0x0010: movw I(Rn),Rn offset register indirect to register - movw I(Rn)[x],Rn offset register indirect, indexed, to register - - 0x0020: movw Rn,(Rn) register to register indirect - 0x0040: movw K,(Rn) quick immediate to register indirect - 0x0080: movw I,(Rn) long immediate to register indirect - 0x0100: movw (Rn),(Rn) register indirect to-register indirect - 0x0100: movw (Rn),(Rn) register indirect to-register indirect - 0x0200: movw I(Rn),(Rn) register indirect+offset to register indirect - 0x0200: movw I(Rn),(Rn) register indirect+offset to register indirect - - 0x0400: movw Rn,I(Rn) register to register indirect+offset - 0x0800: movw K,I(Rn) quick immediate to register indirect+offset - 0x1000: movw I,I(Rn) long immediate to register indirect+offset - 0x1000: movw (Rn),I(Rn) register indirect to-register indirect+offset - 0x1000: movw I(Rn),I(Rn) register indirect+offset to register indirect - +offset - 0x0000: (irregular) ??? - - - Each insn has a four-bit field encoding the type(s) of its operands. -*/ - -/* Some common combinations - */ - -/* the first 5,(0x1|0x2|0x4|0x8|0x10) ie (1|2|4|8|16), ie ( 32 -1)*/ -#define GEN_TO_REG (31) - -#define UNKNOWN ((unsigned long)-1) -#define ANY (GEN_TO_REG | (GEN_TO_REG << 5) | (GEN_TO_REG << 15)) - -#define CONVERT (1|8|0x10|0x20|0x200) - -#define K_TO_REG (2) -#define I_TO_REG (4) -#define NOTK_TO_REG (GEN_TO_REG & ~K_TO_REG) -#define NOTI_TO_REG (GEN_TO_REG & ~I_TO_REG) - -/* The assembler requires that this array be sorted as follows: - all instances of the same mnemonic must be consecutive. - All instances of the same mnemonic with the same number of operands - must be consecutive. - */ - -struct pyr_opcode /* pyr opcode text */ -{ - char * name; /* opcode name: lowercase string [key] */ - struct pyr_datum datum; /* rest of opcode table [datum] */ -}; - -#define pyr_how args -#define pyr_nargs nargs -#define pyr_mask mask -#define pyr_name name - -struct pyr_opcode pyr_opcodes[] = -{ - {"movb", { 2, "", UNKNOWN, 0x11}, }, - {"movh", { 2, "", UNKNOWN, 0x12} }, - {"movw", { 2, "", ANY, 0x10} }, - {"movl", { 2, "", ANY, 0x13} }, - {"mnegw", { 2, "", (0x1|0x8|0x10), 0x14} }, - {"mnegf", { 2, "", 0x1, 0x15} }, - {"mnegd", { 2, "", 0x1, 0x16} }, - {"mcomw", { 2, "", (0x1|0x8|0x10), 0x17} }, - {"mabsw", { 2, "", (0x1|0x8|0x10), 0x18} }, - {"mabsf", { 2, "", 0x1, 0x19} }, - {"mabsd", { 2, "", 0x1, 0x1a} }, - {"mtstw", { 2, "", (0x1|0x8|0x10), 0x1c} }, - {"mtstf", { 2, "", 0x1, 0x1d} }, - {"mtstd", { 2, "", 0x1, 0x1e} }, - {"mova", { 2, "", 0x8|0x10, 0x1f} }, - {"movzbw", { 2, "", (0x1|0x8|0x10), 0x20} }, - {"movzhw", { 2, "", (0x1|0x8|0x10), 0x21} }, - /* 2 insns out of order here */ - {"movbl", { 2, "", 1, 0x4f} }, - {"filbl", { 2, "", 1, 0x4e} }, - - {"cvtbw", { 2, "", CONVERT, 0x22} }, - {"cvthw", { 2, "", CONVERT, 0x23} }, - {"cvtwb", { 2, "", CONVERT, 0x24} }, - {"cvtwh", { 2, "", CONVERT, 0x25} }, - {"cvtwf", { 2, "", CONVERT, 0x26} }, - {"cvtwd", { 2, "", CONVERT, 0x27} }, - {"cvtfw", { 2, "", CONVERT, 0x28} }, - {"cvtfd", { 2, "", CONVERT, 0x29} }, - {"cvtdw", { 2, "", CONVERT, 0x2a} }, - {"cvtdf", { 2, "", CONVERT, 0x2b} }, - - {"addw", { 2, "", GEN_TO_REG, 0x40} }, - {"addwc", { 2, "", GEN_TO_REG, 0x41} }, - {"subw", { 2, "", GEN_TO_REG, 0x42} }, - {"subwb", { 2, "", GEN_TO_REG, 0x43} }, - {"rsubw", { 2, "", GEN_TO_REG, 0x44} }, - {"mulw", { 2, "", GEN_TO_REG, 0x45} }, - {"emul", { 2, "", GEN_TO_REG, 0x47} }, - {"umulw", { 2, "", GEN_TO_REG, 0x46} }, - {"divw", { 2, "", GEN_TO_REG, 0x48} }, - {"ediv", { 2, "", GEN_TO_REG, 0x4a} }, - {"rdivw", { 2, "", GEN_TO_REG, 0x4b} }, - {"udivw", { 2, "", GEN_TO_REG, 0x49} }, - {"modw", { 2, "", GEN_TO_REG, 0x4c} }, - {"umodw", { 2, "", GEN_TO_REG, 0x4d} }, - - - {"addf", { 2, "", 1, 0x50} }, - {"addd", { 2, "", 1, 0x51} }, - {"subf", { 2, "", 1, 0x52} }, - {"subd", { 2, "", 1, 0x53} }, - {"mulf", { 2, "", 1, 0x56} }, - {"muld", { 2, "", 1, 0x57} }, - {"divf", { 2, "", 1, 0x58} }, - {"divd", { 2, "", 1, 0x59} }, - - - {"cmpb", { 2, "", UNKNOWN, 0x61} }, - {"cmph", { 2, "", UNKNOWN, 0x62} }, - {"cmpw", { 2, "", UNKNOWN, 0x60} }, - {"ucmpb", { 2, "", UNKNOWN, 0x66} }, - /* WHY no "ucmph"??? */ - {"ucmpw", { 2, "", UNKNOWN, 0x65} }, - {"xchw", { 2, "", UNKNOWN, 0x0f} }, - - - {"andw", { 2, "", GEN_TO_REG, 0x30} }, - {"orw", { 2, "", GEN_TO_REG, 0x31} }, - {"xorw", { 2, "", GEN_TO_REG, 0x32} }, - {"bicw", { 2, "", GEN_TO_REG, 0x33} }, - {"lshlw", { 2, "", GEN_TO_REG, 0x38} }, - {"ashlw", { 2, "", GEN_TO_REG, 0x3a} }, - {"ashll", { 2, "", GEN_TO_REG, 0x3c} }, - {"ashrw", { 2, "", GEN_TO_REG, 0x3b} }, - {"ashrl", { 2, "", GEN_TO_REG, 0x3d} }, - {"rotlw", { 2, "", GEN_TO_REG, 0x3e} }, - {"rotrw", { 2, "", GEN_TO_REG, 0x3f} }, - - /* push and pop insns are "going away next release". */ - {"pushw", { 2, "", GEN_TO_REG, 0x0c} }, - {"popw", { 2, "", (0x1|0x8|0x10), 0x0d} }, - {"pusha", { 2, "", (0x8|0x10), 0x0e} }, - - {"bitsw", { 2, "", UNKNOWN, 0x35} }, - {"bitcw", { 2, "", UNKNOWN, 0x36} }, - /* some kind of ibra/dbra insns??*/ - {"icmpw", { 2, "", UNKNOWN, 0x67} }, - {"dcmpw", { 2, "", (1|4|0x20|0x80|0x400|0x1000), 0x69} },/*FIXME*/ - {"acmpw", { 2, "", 1, 0x6b} }, - - /* Call is written as a 1-op insn, but is always (dis)assembled as a 2-op - insn with a 2nd op of tr14. The assembler will have to grok this. */ - {"call", { 2, "", GEN_TO_REG, 0x04} }, - {"call", { 1, "", GEN_TO_REG, 0x04} }, - - {"callk", { 1, "", UNKNOWN, 0x06} },/* system call?*/ - /* Ret is usually written as a 0-op insn, but gets disassembled as a - 1-op insn. The operand is always tr15. */ - {"ret", { 0, "", UNKNOWN, 0x09} }, - {"ret", { 1, "", UNKNOWN, 0x09} }, - {"adsf", { 2, "", (1|2|4), 0x08} }, - {"retd", { 2, "", UNKNOWN, 0x0a} }, - {"btc", { 2, "", UNKNOWN, 0x01} }, - {"bfc", { 2, "", UNKNOWN, 0x02} }, - /* Careful: halt is 0x00000000. Jump must have some other (mode?)bit set?? */ - {"jump", { 1, "", UNKNOWN, 0x00} }, - {"btp", { 2, "", UNKNOWN, 0xf00} }, - /* read control-stack pointer is another 1-or-2 operand insn. */ - {"rcsp", { 2, "", UNKNOWN, 0x01f} }, - {"rcsp", { 1, "", UNKNOWN, 0x01f} } -}; - -/* end: pyramid.opcode.h */ -/* One day I will have to take the time to find out what operands - are valid for these insns, and guess at what they mean. - - I can't imagine what the "I???" insns (iglob, etc) do. - - the arithmetic-sounding insns ending in "p" sound awfully like BCD - arithmetic insns: - dshlp -> Decimal SHift Left Packed - dshrp -> Decimal SHift Right Packed - and cvtlp would be convert long to packed. - I have no idea how the operands are interpreted; but having them be - a long register with (address, length) of an in-memory packed BCD operand - would not be surprising. - They are unlikely to be a packed bcd string: 64 bits of long give - is only 15 digits+sign, which isn't enough for COBOL. - */ -#if 0 - {"wcsp", { 2, "", UNKNOWN, 0x00} }, /*write csp?*/ - /* The OSx Operating System Porting Guide claims SSL does things - with tr12 (a register reserved to it) to do with static block-structure - references. SSL=Set Static Link? It's "Going away next release". */ - {"ssl", { 2, "", UNKNOWN, 0x00} }, - {"ccmps", { 2, "", UNKNOWN, 0x00} }, - {"lcd", { 2, "", UNKNOWN, 0x00} }, - {"uemul", { 2, "", UNKNOWN, 0x00} }, /*unsigned emul*/ - {"srf", { 2, "", UNKNOWN, 0x00} }, /*Gidget time???*/ - {"mnegp", { 2, "", UNKNOWN, 0x00} }, /move-neg phys?*/ - {"ldp", { 2, "", UNKNOWN, 0x00} }, /*load phys?*/ - {"ldti", { 2, "", UNKNOWN, 0x00} }, - {"ldb", { 2, "", UNKNOWN, 0x00} }, - {"stp", { 2, "", UNKNOWN, 0x00} }, - {"stti", { 2, "", UNKNOWN, 0x00} }, - {"stb", { 2, "", UNKNOWN, 0x00} }, - {"stu", { 2, "", UNKNOWN, 0x00} }, - {"addp", { 2, "", UNKNOWN, 0x00} }, - {"subp", { 2, "", UNKNOWN, 0x00} }, - {"mulp", { 2, "", UNKNOWN, 0x00} }, - {"divp", { 2, "", UNKNOWN, 0x00} }, - {"dshlp", { 2, "", UNKNOWN, 0x00} }, /* dec shl packed? */ - {"dshrp", { 2, "", UNKNOWN, 0x00} }, /* dec shr packed? */ - {"movs", { 2, "", UNKNOWN, 0x00} }, /*move (string?)?*/ - {"cmpp", { 2, "", UNKNOWN, 0x00} }, /* cmp phys?*/ - {"cmps", { 2, "", UNKNOWN, 0x00} }, /* cmp (string?)?*/ - {"cvtlp", { 2, "", UNKNOWN, 0x00} }, /* cvt long to p??*/ - {"cvtpl", { 2, "", UNKNOWN, 0x00} }, /* cvt p to l??*/ - {"dintr", { 2, "", UNKNOWN, 0x00} }, /* ?? intr ?*/ - {"rphysw", { 2, "", UNKNOWN, 0x00} }, /* read phys word?*/ - {"wphysw", { 2, "", UNKNOWN, 0x00} }, /* write phys word?*/ - {"cmovs", { 2, "", UNKNOWN, 0x00} }, - {"rsubw", { 2, "", UNKNOWN, 0x00} }, - {"bicpsw", { 2, "", UNKNOWN, 0x00} }, /* clr bit in psw? */ - {"bispsw", { 2, "", UNKNOWN, 0x00} }, /* set bit in psw? */ - {"eio", { 2, "", UNKNOWN, 0x00} }, /* ?? ?io ? */ - {"callp", { 2, "", UNKNOWN, 0x00} }, /* call phys?*/ - {"callr", { 2, "", UNKNOWN, 0x00} }, - {"lpcxt", { 2, "", UNKNOWN, 0x00} }, /*load proc context*/ - {"rei", { 2, "", UNKNOWN, 0x00} }, /*ret from intrpt*/ - {"rport", { 2, "", UNKNOWN, 0x00} }, /*read-port?*/ - {"rtod", { 2, "", UNKNOWN, 0x00} }, /*read-time-of-day?*/ - {"ssi", { 2, "", UNKNOWN, 0x00} }, - {"vtpa", { 2, "", UNKNOWN, 0x00} }, /*virt-to-phys-addr?*/ - {"wicl", { 2, "", UNKNOWN, 0x00} }, /* write icl ? */ - {"wport", { 2, "", UNKNOWN, 0x00} }, /*write-port?*/ - {"wtod", { 2, "", UNKNOWN, 0x00} }, /*write-time-of-day?*/ - {"flic", { 2, "", UNKNOWN, 0x00} }, - {"iglob", { 2, "", UNKNOWN, 0x00} }, /* I global? */ - {"iphys", { 2, "", UNKNOWN, 0x00} }, /* I physical? */ - {"ipid", { 2, "", UNKNOWN, 0x00} }, /* I pid? */ - {"ivect", { 2, "", UNKNOWN, 0x00} }, /* I vector? */ - {"lamst", { 2, "", UNKNOWN, 0x00} }, - {"tio", { 2, "", UNKNOWN, 0x00} }, -#endif diff --git a/include/opcode/rl78.h b/include/opcode/rl78.h deleted file mode 100644 index 0f3c64d..0000000 --- a/include/opcode/rl78.h +++ /dev/null @@ -1,168 +0,0 @@ -/* Opcode decoder for the Renesas RL78 - Copyright 2011 - Free Software Foundation, Inc. - Written by DJ Delorie - - This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -/* The RL78 decoder in libopcodes is used by the simulator, gdb's - analyzer, and the disassembler. Given an opcode data source, it - decodes the next opcode into the following structures. */ - -#ifndef RL78_OPCODES_H_INCLUDED -#define RL78_OPCODES_H_INCLUDED - -/* For the purposes of these structures, the RL78 registers are as - follows, despite most of these being memory-mapped and - bank-switched: */ -typedef enum { - RL78_Reg_None, - /* The order of these matches the encodings. */ - RL78_Reg_X, - RL78_Reg_A, - RL78_Reg_C, - RL78_Reg_B, - RL78_Reg_E, - RL78_Reg_D, - RL78_Reg_L, - RL78_Reg_H, - /* The order of these matches the encodings. */ - RL78_Reg_AX, - RL78_Reg_BC, - RL78_Reg_DE, - RL78_Reg_HL, - /* Unordered. */ - RL78_Reg_SP, - RL78_Reg_PSW, - RL78_Reg_CS, - RL78_Reg_ES, - RL78_Reg_PMC, - RL78_Reg_MEM -} RL78_Register; - -typedef enum -{ - RL78_Byte = 0, - RL78_Word -} RL78_Size; - -typedef enum { - RL78_Condition_T, - RL78_Condition_F, - RL78_Condition_C, - RL78_Condition_NC, - RL78_Condition_H, - RL78_Condition_NH, - RL78_Condition_Z, - RL78_Condition_NZ -} RL78_Condition; - -typedef enum { - RL78_Operand_None = 0, - RL78_Operand_Immediate, /* #addend */ - RL78_Operand_Register, /* reg */ - RL78_Operand_Indirect, /* [reg + reg2 + addend] */ - RL78_Operand_Bit, /* reg.bit */ - RL78_Operand_BitIndirect, /* [reg+reg2+addend].bit */ - RL78_Operand_PreDec, /* [--reg] = push */ - RL78_Operand_PostInc /* [reg++] = pop */ -} RL78_Operand_Type; - -typedef enum -{ - RLO_unknown, - RLO_add, /* d += s */ - RLO_addc, /* d += s + CY */ - RLO_and, /* d &= s (byte, word, bit) */ - RLO_branch, /* pc = d */ - RLO_branch_cond, /* pc = d if cond(src) */ - RLO_branch_cond_clear, /* pc = d if cond(src), and clear(src) */ - RLO_break, /* BRK */ - RLO_call, /* call */ - RLO_cmp, /* cmp d, s */ - RLO_divhu, /* DIVHU */ - RLO_divwu, /* DIVWU */ - RLO_halt, /* HALT */ - RLO_mov, /* d = s */ - RLO_mach, /* MACH */ - RLO_machu, /* MACHU */ - RLO_mulu, /* MULU */ - RLO_mulh, /* MULH */ - RLO_mulhu, /* MULHU */ - RLO_nop, /* NOP */ - RLO_or, /* d |= s */ - RLO_ret, /* RET */ - RLO_reti, /* RETI */ - RLO_rol, /* d <<= s, MSB to LSB and CY */ - RLO_rolc, /* d <<= s, MSB to CY, CY, to LSB */ - RLO_ror, /* d >>= s, LSB to MSB and CY */ - RLO_rorc, /* d >>= s, LSB to CY, CY, to MSB */ - RLO_sar, /* d >>= s, signed */ - RLO_sel, /* rb = s */ - RLO_shr, /* d >>= s, unsigned */ - RLO_shl, /* d <<= s */ - RLO_skip, /* skip next insn is cond(s) */ - RLO_stop, /* STOP */ - RLO_sub, /* d -= s */ - RLO_subc, /* d -= s - CY */ - RLO_xch, /* swap d, s */ - RLO_xor, /* d ^= s */ -} RL78_Opcode_ID; - -typedef struct { - RL78_Operand_Type type; - int addend; - RL78_Register reg : 8; - RL78_Register reg2 : 8; - unsigned char bit_number : 4; - unsigned char condition : 3; - unsigned char use_es : 1; -} RL78_Opcode_Operand; - -/* PSW flag bits */ -#define RL78_PSW_IE 0x80 -#define RL78_PSW_Z 0x40 -#define RL78_PSW_RBS1 0x20 -#define RL78_PSW_AC 0x10 -#define RL78_PSW_RBS0 0x08 -#define RL78_PSW_ISP1 0x04 -#define RL78_PSW_ISP0 0x02 -#define RL78_PSW_CY 0x01 - -#define RL78_SFR_SP 0xffff8 -#define RL78_SFR_PSW 0xffffa -#define RL78_SFR_CS 0xffffc -#define RL78_SFR_ES 0xffffd -#define RL78_SFR_PMC 0xffffe -#define RL78_SFR_MEM 0xfffff - -typedef struct -{ - int lineno; - RL78_Opcode_ID id:24; - unsigned flags:8; /* PSW mask, for side effects only */ - int n_bytes; - char * syntax; - RL78_Size size; - /* By convention, these are destination, source. */ - RL78_Opcode_Operand op[2]; -} RL78_Opcode_Decoded; - -int rl78_decode_opcode (unsigned long, RL78_Opcode_Decoded *, int (*)(void *), void *); - -#endif diff --git a/include/opcode/rx.h b/include/opcode/rx.h deleted file mode 100644 index aa85fe4..0000000 --- a/include/opcode/rx.h +++ /dev/null @@ -1,215 +0,0 @@ -/* Opcode decoder for the Renesas RX - Copyright 2008, 2009, 2010 - Free Software Foundation, Inc. - Written by DJ Delorie - - This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -/* The RX decoder in libopcodes is used by the simulator, gdb's - analyzer, and the disassembler. Given an opcode data source, - it decodes the next opcode into the following structures. */ - -typedef enum -{ - RX_AnySize = 0, - RX_Byte, /* undefined extension */ - RX_UByte, - RX_SByte, - RX_Word, /* undefined extension */ - RX_UWord, - RX_SWord, - RX_3Byte, - RX_Long, -} RX_Size; - -typedef enum -{ - RX_Operand_None, - RX_Operand_Immediate, /* #addend */ - RX_Operand_Register, /* Rn */ - RX_Operand_Indirect, /* [Rn + addend] */ - RX_Operand_Postinc, /* [Rn+] */ - RX_Operand_Predec, /* [-Rn] */ - RX_Operand_Condition, /* eq, gtu, etc */ - RX_Operand_Flag, /* [UIOSZC] */ - RX_Operand_TwoReg, /* [Rn + scale*R2] */ -} RX_Operand_Type; - -typedef enum -{ - RXO_unknown, - RXO_mov, /* d = s (signed) */ - RXO_movbi, /* d = [s,s2] (signed) */ - RXO_movbir, /* [s,s2] = d (signed) */ - RXO_pushm, /* s..s2 */ - RXO_popm, /* s..s2 */ - RXO_xchg, /* s <-> d */ - RXO_stcc, /* d = s if cond(s2) */ - RXO_rtsd, /* rtsd, 1=imm, 2-0 = reg if reg type */ - - /* These are all either d OP= s or, if s2 is set, d = s OP s2. Note - that d may be "None". */ - RXO_and, - RXO_or, - RXO_xor, - RXO_add, - RXO_sub, - RXO_mul, - RXO_div, - RXO_divu, - RXO_shll, - RXO_shar, - RXO_shlr, - - RXO_adc, /* d = d + s + carry */ - RXO_sbb, /* d = d - s - ~carry */ - RXO_abs, /* d = |s| */ - RXO_max, /* d = max(d,s) */ - RXO_min, /* d = min(d,s) */ - RXO_emul, /* d:64 = d:32 * s */ - RXO_emulu, /* d:64 = d:32 * s (unsigned) */ - - RXO_rolc, /* d <<= 1 through carry */ - RXO_rorc, /* d >>= 1 through carry*/ - RXO_rotl, /* d <<= #s without carry */ - RXO_rotr, /* d >>= #s without carry*/ - RXO_revw, /* d = revw(s) */ - RXO_revl, /* d = revl(s) */ - RXO_branch, /* pc = d if cond(s) */ - RXO_branchrel,/* pc += d if cond(s) */ - RXO_jsr, /* pc = d */ - RXO_jsrrel, /* pc += d */ - RXO_rts, - RXO_nop, - RXO_nop2, - RXO_nop3, - - RXO_scmpu, - RXO_smovu, - RXO_smovb, - RXO_suntil, - RXO_swhile, - RXO_smovf, - RXO_sstr, - - RXO_rmpa, - RXO_mulhi, - RXO_mullo, - RXO_machi, - RXO_maclo, - RXO_mvtachi, - RXO_mvtaclo, - RXO_mvfachi, - RXO_mvfacmi, - RXO_mvfaclo, - RXO_racw, - - RXO_sat, /* sat(d) */ - RXO_satr, - - RXO_fadd, /* d op= s */ - RXO_fcmp, - RXO_fsub, - RXO_ftoi, - RXO_fmul, - RXO_fdiv, - RXO_round, - RXO_itof, - - RXO_bset, /* d |= (1< = cond(s2) */ - - RXO_clrpsw, /* flag index in d */ - RXO_setpsw, /* flag index in d */ - RXO_mvtipl, /* new IPL in s */ - - RXO_rtfi, - RXO_rte, - RXO_rtd, /* undocumented */ - RXO_brk, - RXO_dbt, /* undocumented */ - RXO_int, /* vector id in s */ - RXO_stop, - RXO_wait, - - RXO_sccnd, /* d = cond(s) ? 1 : 0 */ -} RX_Opcode_ID; - -/* Condition bitpatterns, as registers. */ -#define RXC_eq 0 -#define RXC_z 0 -#define RXC_ne 1 -#define RXC_nz 1 -#define RXC_c 2 -#define RXC_nc 3 -#define RXC_gtu 4 -#define RXC_leu 5 -#define RXC_pz 6 -#define RXC_n 7 -#define RXC_ge 8 -#define RXC_lt 9 -#define RXC_gt 10 -#define RXC_le 11 -#define RXC_o 12 -#define RXC_no 13 -#define RXC_always 14 -#define RXC_never 15 - -typedef struct -{ - RX_Operand_Type type; - int reg; - int addend; - RX_Size size; -} RX_Opcode_Operand; - -typedef struct -{ - RX_Opcode_ID id; - int n_bytes; - int prefix; - char * syntax; - RX_Size size; - /* By convention, these are destination, source1, source2. */ - RX_Opcode_Operand op[3]; - - /* The logic here is: - newflags = (oldflags & ~(int)flags_0) | flags_1 | (op_flags & flags_s) - Only the O, S, Z, and C flags are affected. */ - char flags_0; /* This also clears out flags-to-be-set. */ - char flags_1; - char flags_s; -} RX_Opcode_Decoded; - -/* Within the syntax, %c-style format specifiers are as follows: - - %% = '%' character - %0 = operand[0] (destination) - %1 = operand[1] (source) - %2 = operand[2] (2nd source) - %s = operation size (b/w/l) - %SN = operand size [N] (N=0,1,2) - %aN = op[N] as an address (N=0,1,2) - - Register numbers 0..15 are general registers. 16..31 are control - registers. 32..47 are condition codes. */ - -int rx_decode_opcode (unsigned long, RX_Opcode_Decoded *, int (*)(void *), void *); diff --git a/include/opcode/s390.h b/include/opcode/s390.h deleted file mode 100644 index 531011e..0000000 --- a/include/opcode/s390.h +++ /dev/null @@ -1,154 +0,0 @@ -/* s390.h -- Header file for S390 opcode table - Copyright 2000, 2001, 2003, 2010 Free Software Foundation, Inc. - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -#ifndef S390_H -#define S390_H - -/* List of instruction sets variations. */ - -enum s390_opcode_mode_val - { - S390_OPCODE_ESA = 0, - S390_OPCODE_ZARCH - }; - -enum s390_opcode_cpu_val - { - S390_OPCODE_G5 = 0, - S390_OPCODE_G6, - S390_OPCODE_Z900, - S390_OPCODE_Z990, - S390_OPCODE_Z9_109, - S390_OPCODE_Z9_EC, - S390_OPCODE_Z10, - S390_OPCODE_Z196, - S390_OPCODE_ZEC12, - S390_OPCODE_MAXCPU - }; - -/* The opcode table is an array of struct s390_opcode. */ - -struct s390_opcode - { - /* The opcode name. */ - const char * name; - - /* The opcode itself. Those bits which will be filled in with - operands are zeroes. */ - unsigned char opcode[6]; - - /* The opcode mask. This is used by the disassembler. This is a - mask containing ones indicating those bits which must match the - opcode field, and zeroes indicating those bits which need not - match (and are presumably filled in by operands). */ - unsigned char mask[6]; - - /* The opcode length in bytes. */ - int oplen; - - /* An array of operand codes. Each code is an index into the - operand table. They appear in the order which the operands must - appear in assembly code, and are terminated by a zero. */ - unsigned char operands[6]; - - /* Bitmask of execution modes this opcode is available for. */ - unsigned int modes; - - /* First cpu this opcode is available for. */ - enum s390_opcode_cpu_val min_cpu; - }; - -/* The table itself is sorted by major opcode number, and is otherwise - in the order in which the disassembler should consider - instructions. */ -extern const struct s390_opcode s390_opcodes[]; -extern const int s390_num_opcodes; - -/* A opcode format table for the .insn pseudo mnemonic. */ -extern const struct s390_opcode s390_opformats[]; -extern const int s390_num_opformats; - -/* Values defined for the flags field of a struct powerpc_opcode. */ - -/* The operands table is an array of struct s390_operand. */ - -struct s390_operand - { - /* The number of bits in the operand. */ - int bits; - - /* How far the operand is left shifted in the instruction. */ - int shift; - - /* One bit syntax flags. */ - unsigned long flags; - }; - -/* Elements in the table are retrieved by indexing with values from - the operands field of the powerpc_opcodes table. */ - -extern const struct s390_operand s390_operands[]; - -/* Values defined for the flags field of a struct s390_operand. */ - -/* This operand names a register. The disassembler uses this to print - register names with a leading 'r'. */ -#define S390_OPERAND_GPR 0x1 - -/* This operand names a floating point register. The disassembler - prints these with a leading 'f'. */ -#define S390_OPERAND_FPR 0x2 - -/* This operand names an access register. The disassembler - prints these with a leading 'a'. */ -#define S390_OPERAND_AR 0x4 - -/* This operand names a control register. The disassembler - prints these with a leading 'c'. */ -#define S390_OPERAND_CR 0x8 - -/* This operand is a displacement. */ -#define S390_OPERAND_DISP 0x10 - -/* This operand names a base register. */ -#define S390_OPERAND_BASE 0x20 - -/* This operand names an index register, it can be skipped. */ -#define S390_OPERAND_INDEX 0x40 - -/* This operand is a relative branch displacement. The disassembler - prints these symbolically if possible. */ -#define S390_OPERAND_PCREL 0x80 - -/* This operand takes signed values. */ -#define S390_OPERAND_SIGNED 0x100 - -/* This operand is a length. */ -#define S390_OPERAND_LENGTH 0x200 - -/* This operand is optional. Only a single operand at the end of - the instruction may be optional. */ -#define S390_OPERAND_OPTIONAL 0x400 - -/* The operand needs to be a valid GP or FP register pair. */ -#define S390_OPERAND_REG_PAIR 0x800 - - #endif /* S390_H */ diff --git a/include/opcode/score-datadep.h b/include/opcode/score-datadep.h deleted file mode 100644 index 10ddf32..0000000 --- a/include/opcode/score-datadep.h +++ /dev/null @@ -1,65 +0,0 @@ -/* score-datadep.h -- Score Instructions data dependency table - Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. - Contributed by: - Brain.lin (brain.lin@sunplusct.com) - Mei Ligang (ligang@sunnorth.com.cn) - Pei-Lin Tsai (pltsai@sunplus.com) - - This file is part of GAS, the GNU Assembler. - - GAS is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GAS is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GAS; see the file COPYING3. If not, write to the Free - Software Foundation, Inc., 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -#ifndef SCORE_DATA_DEPENDENCY_H -#define SCORE_DATA_DEPENDENCY_H - -#define INSN_NAME_LEN 16 - -enum insn_type_for_dependency -{ - D_mtcr, - D_all_insn -}; - -struct insn_to_dependency -{ - char *insn_name; - enum insn_type_for_dependency type; -}; - -struct data_dependency -{ - enum insn_type_for_dependency pre_insn_type; - char pre_reg[6]; - enum insn_type_for_dependency cur_insn_type; - char cur_reg[6]; - int bubblenum_7; - int bubblenum_3; - int warn_or_error; /* warning - 0; error - 1 */ -}; - -static const struct insn_to_dependency insn_to_dependency_table[] = -{ - /* move spectial instruction. */ - {"mtcr", D_mtcr}, -}; - -static const struct data_dependency data_dependency_table[] = -{ - /* Status regiser. */ - {D_mtcr, "cr0", D_all_insn, "", 5, 1, 0}, -}; - -#endif diff --git a/include/opcode/score-inst.h b/include/opcode/score-inst.h deleted file mode 100644 index ecb18da..0000000 --- a/include/opcode/score-inst.h +++ /dev/null @@ -1,236 +0,0 @@ -/* score-inst.h -- Score Instructions Table - Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. - Contributed by: - Brain.lin (brain.lin@sunplusct.com) - Mei Ligang (ligang@sunnorth.com.cn) - Pei-Lin Tsai (pltsai@sunplus.com) - - This file is part of GAS, the GNU Assembler. - - GAS is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GAS is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GAS; see the file COPYING3. If not, write to the Free - Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -#ifndef SCORE_INST_H -#define SCORE_INST_H - -#define LDST_UNALIGN_MASK 0x0000007f -#define UA_LCB 0x00000060 -#define UA_LCW 0x00000062 -#define UA_LCE 0x00000066 -#define UA_SCB 0x00000068 -#define UA_SCW 0x0000006a -#define UA_SCE 0x0000006e -#define UA_LL 0x0000000c -#define UA_SC 0x0000000e -#define LDST16_RR_MASK 0x0000000f -#define N16_LW 8 -#define N16_LH 9 -#define N16_POP 10 -#define N16_LBU 11 -#define N16_SW 12 -#define N16_SH 13 -#define N16_PUSH 14 -#define N16_SB 15 -#define LDST16_RI_MASK 0x7007 -#define N16_LWP 0x7000 -#define N16_LHP 0x7001 -#define N16_LBUP 0x7003 -#define N16_SWP 0x7004 -#define N16_SHP 0x7005 -#define N16_SBP 0x7007 -#define N16_LIU 0x5000 - -#define OPC_PSEUDOLDST_MASK 0x00000007 - -enum -{ - INSN_LW = 0, - INSN_LH = 1, - INSN_LHU = 2, - INSN_LB = 3, - INSN_SW = 4, - INSN_SH = 5, - INSN_LBU = 6, - INSN_SB = 7, -}; - -/* Sub opcdoe opcode. */ -enum -{ - INSN16_LBU = 11, - INSN16_LH = 9, - INSN16_LW = 8, - INSN16_SB = 15, - INSN16_SH = 13, - INSN16_SW = 12, -}; - -enum -{ - LDST_NOUPDATE = 0, - LDST_PRE = 1, - LDST_POST = 2, -}; - -enum score_insn_type -{ - Rd_I4, - Rd_I5, - Rd_rvalueBP_I5, - Rd_lvalueBP_I5, - Rd_Rs_I5, - x_Rs_I5, - x_I5_x, - Rd_I8, - Rd_Rs_I14, - I15, - Rd_I16, - Rd_I30, - Rd_I32, - Rd_rvalueRs_SI10, - Rd_lvalueRs_SI10, - Rd_rvalueRs_preSI12, - Rd_rvalueRs_postSI12, - Rd_lvalueRs_preSI12, - Rd_lvalueRs_postSI12, - Rd_Rs_SI14, - Rd_rvalueRs_SI15, - Rd_lvalueRs_SI15, - Rd_SI5, - Rd_SI6, - Rd_SI16, - PC_DISP8div2, - PC_DISP11div2, - PC_DISP19div2, - PC_DISP24div2, - Rd_Rs_Rs, - x_Rs_x, - x_Rs_Rs, - Rd_Rs_x, - Rd_x_Rs, - Rd_x_x, - Rd_Rs, - Rd_HighRs, - Rd_lvalueRs, - Rd_rvalueRs, - Rd_lvalue32Rs, - Rd_rvalue32Rs, - x_Rs, - NO_OPD, - NO16_OPD, - OP5_rvalueRs_SI15, - I5_Rs_Rs_I5_OP5, - x_rvalueRs_post4, - Rd_rvalueRs_post4, - Rd_x_I5, - Rd_lvalueRs_post4, - x_lvalueRs_post4, - Rd_LowRs, - Rd_Rs_Rs_imm, - Insn_Type_PCE, - Insn_Type_SYN, - Insn_GP, - Insn_PIC, - Insn_internal, - Insn_BCMP, - Ra_I9_I5, -}; - -enum score_data_type -{ - _IMM4 = 0, - _IMM5, - _IMM8, - _IMM14, - _IMM15, - _IMM16, - _SIMM10 = 6, - _SIMM12, - _SIMM14, - _SIMM15, - _SIMM16, - _SIMM14_NEG = 11, - _IMM16_NEG, - _SIMM16_NEG, - _IMM20, - _IMM25, - _DISP8div2 = 16, - _DISP11div2, - _DISP19div2, - _DISP24div2, - _VALUE, - _VALUE_HI16, - _VALUE_LO16, - _VALUE_LDST_LO16 = 23, - _SIMM16_LA, - _IMM5_RSHIFT_1, - _IMM5_RSHIFT_2, - _SIMM16_LA_POS, - _IMM5_RANGE_8_31, - _IMM10_RSHIFT_2, - _GP_IMM15 = 30, - _GP_IMM14 = 31, - _SIMM16_pic = 42, /* Index in score_df_range. */ - _IMM16_LO16_pic = 43, - _IMM16_pic = 44, - - _SIMM5 = 45, - _SIMM6 = 46, - _IMM32 = 47, - _SIMM32 = 48, - _IMM11 = 49, - _IMM5_MULTI_LOAD = 50, -}; - -#define REG_TMP 1 - -#define OP_REG_TYPE (1 << 6) -#define OP_IMM_TYPE (1 << 7) -#define OP_SH_REGD (OP_REG_TYPE |20) -#define OP_SH_REGS1 (OP_REG_TYPE |15) -#define OP_SH_REGS2 (OP_REG_TYPE |10) -#define OP_SH_I (OP_IMM_TYPE | 1) -#define OP_SH_RI15 (OP_IMM_TYPE | 0) -#define OP_SH_I12 (OP_IMM_TYPE | 3) -#define OP_SH_DISP24 (OP_IMM_TYPE | 1) -#define OP_SH_DISP19_p1 (OP_IMM_TYPE |15) -#define OP_SH_DISP19_p2 (OP_IMM_TYPE | 1) -#define OP_SH_I5 (OP_IMM_TYPE |10) -#define OP_SH_I10 (OP_IMM_TYPE | 5) -#define OP_SH_COPID (OP_IMM_TYPE | 5) -#define OP_SH_TRAPI5 (OP_IMM_TYPE |15) -#define OP_SH_I15 (OP_IMM_TYPE |10) - -#define OP16_SH_REGD (OP_REG_TYPE | 8) -#define OP16_SH_REGS1 (OP_REG_TYPE | 4) -#define OP16_SH_I45 (OP_IMM_TYPE | 3) -#define OP16_SH_I8 (OP_IMM_TYPE | 0) -#define OP16_SH_DISP8 (OP_IMM_TYPE | 0) -#define OP16_SH_DISP11 (OP_IMM_TYPE | 1) - -enum insn_class -{ - INSN_CLASS_16, - INSN_CLASS_32, - INSN_CLASS_48, - INSN_CLASS_PCE, - INSN_CLASS_SYN -}; - -/* s3_s7: Globals for both tc-score.c and elf32-score.c. */ -extern int score3; -extern int score7; - -#endif diff --git a/include/opcode/sparc.h b/include/opcode/sparc.h deleted file mode 100644 index f05909f..0000000 --- a/include/opcode/sparc.h +++ /dev/null @@ -1,280 +0,0 @@ -/* Definitions for opcode table for the sparc. - Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2002, - 2003, 2005, 2010, 2011 Free Software Foundation, Inc. - - This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and - the GNU Binutils. - - GAS/GDB is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GAS/GDB is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GAS or GDB; see the file COPYING3. If not, write to - the Free Software Foundation, 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -#include "ansidecl.h" - -/* The SPARC opcode table (and other related data) is defined in - the opcodes library in sparc-opc.c. If you change anything here, make - sure you fix up that file, and vice versa. */ - - /* FIXME-someday: perhaps the ,a's and such should be embedded in the - instruction's name rather than the args. This would make gas faster, pinsn - slower, but would mess up some macros a bit. xoxorich. */ - -/* List of instruction sets variations. - These values are such that each element is either a superset of a - preceding each one or they conflict in which case SPARC_OPCODE_CONFLICT_P - returns non-zero. - The values are indices into `sparc_opcode_archs' defined in sparc-opc.c. - Don't change this without updating sparc-opc.c. */ - -enum sparc_opcode_arch_val -{ - SPARC_OPCODE_ARCH_V6 = 0, - SPARC_OPCODE_ARCH_V7, - SPARC_OPCODE_ARCH_V8, - SPARC_OPCODE_ARCH_LEON, - SPARC_OPCODE_ARCH_SPARCLET, - SPARC_OPCODE_ARCH_SPARCLITE, - /* V9 variants must appear last. */ - SPARC_OPCODE_ARCH_V9, - SPARC_OPCODE_ARCH_V9A, /* V9 with ultrasparc additions. */ - SPARC_OPCODE_ARCH_V9B, /* V9 with ultrasparc and cheetah additions. */ - SPARC_OPCODE_ARCH_BAD /* Error return from sparc_opcode_lookup_arch. */ -}; - -/* The highest architecture in the table. */ -#define SPARC_OPCODE_ARCH_MAX (SPARC_OPCODE_ARCH_BAD - 1) - -/* Given an enum sparc_opcode_arch_val, return the bitmask to use in - insn encoding/decoding. */ -#define SPARC_OPCODE_ARCH_MASK(arch) (1 << (arch)) - -/* Given a valid sparc_opcode_arch_val, return non-zero if it's v9. */ -#define SPARC_OPCODE_ARCH_V9_P(arch) ((arch) >= SPARC_OPCODE_ARCH_V9) - -/* Table of cpu variants. */ - -typedef struct sparc_opcode_arch -{ - const char *name; - /* Mask of sparc_opcode_arch_val's supported. - EG: For v7 this would be - (SPARC_OPCODE_ARCH_MASK (..._V6) | SPARC_OPCODE_ARCH_MASK (..._V7)). - These are short's because sparc_opcode.architecture is. */ - short supported; -} sparc_opcode_arch; - -extern const struct sparc_opcode_arch sparc_opcode_archs[]; - -/* Given architecture name, look up it's sparc_opcode_arch_val value. */ -extern enum sparc_opcode_arch_val sparc_opcode_lookup_arch (const char *); - -/* Return the bitmask of supported architectures for ARCH. */ -#define SPARC_OPCODE_SUPPORTED(ARCH) (sparc_opcode_archs[ARCH].supported) - -/* Non-zero if ARCH1 conflicts with ARCH2. - IE: ARCH1 as a supported bit set that ARCH2 doesn't, and vice versa. */ -#define SPARC_OPCODE_CONFLICT_P(ARCH1, ARCH2) \ - (((SPARC_OPCODE_SUPPORTED (ARCH1) & SPARC_OPCODE_SUPPORTED (ARCH2)) \ - != SPARC_OPCODE_SUPPORTED (ARCH1)) \ - && ((SPARC_OPCODE_SUPPORTED (ARCH1) & SPARC_OPCODE_SUPPORTED (ARCH2)) \ - != SPARC_OPCODE_SUPPORTED (ARCH2))) - -/* Structure of an opcode table entry. */ - -typedef struct sparc_opcode -{ - const char *name; - unsigned long match; /* Bits that must be set. */ - unsigned long lose; /* Bits that must not be set. */ - const char *args; - /* This was called "delayed" in versions before the flags. */ - unsigned int flags; - unsigned int hwcaps; - short architecture; /* Bitmask of sparc_opcode_arch_val's. */ -} sparc_opcode; - -/* FIXME: Add F_ANACHRONISTIC flag for v9. */ -#define F_DELAYED 0x00000001 /* Delayed branch. */ -#define F_ALIAS 0x00000002 /* Alias for a "real" instruction. */ -#define F_UNBR 0x00000004 /* Unconditional branch. */ -#define F_CONDBR 0x00000008 /* Conditional branch. */ -#define F_JSR 0x00000010 /* Subroutine call. */ -#define F_FLOAT 0x00000020 /* Floating point instruction (not a branch). */ -#define F_FBR 0x00000040 /* Floating point branch. */ -#define F_PREFERRED 0x00000080 /* A preferred alias. */ - -#define F_PREF_ALIAS (F_ALIAS|F_PREFERRED) - -/* These must match the HWCAP_* values precisely. */ -#define HWCAP_MUL32 0x00000001 /* umul/umulcc/smul/smulcc insns */ -#define HWCAP_DIV32 0x00000002 /* udiv/udivcc/sdiv/sdivcc insns */ -#define HWCAP_FSMULD 0x00000004 /* 'fsmuld' insn */ -#define HWCAP_V8PLUS 0x00000008 /* v9 insns available to 32bit */ -#define HWCAP_POPC 0x00000010 /* 'popc' insn */ -#define HWCAP_VIS 0x00000020 /* VIS insns */ -#define HWCAP_VIS2 0x00000040 /* VIS2 insns */ -#define HWCAP_ASI_BLK_INIT \ - 0x00000080 /* block init ASIs */ -#define HWCAP_FMAF 0x00000100 /* fused multiply-add */ -#define HWCAP_VIS3 0x00000400 /* VIS3 insns */ -#define HWCAP_HPC 0x00000800 /* HPC insns */ -#define HWCAP_RANDOM 0x00001000 /* 'random' insn */ -#define HWCAP_TRANS 0x00002000 /* transaction insns */ -#define HWCAP_FJFMAU 0x00004000 /* unfused multiply-add */ -#define HWCAP_IMA 0x00008000 /* integer multiply-add */ -#define HWCAP_ASI_CACHE_SPARING \ - 0x00010000 /* cache sparing ASIs */ -#define HWCAP_AES 0x00020000 /* AES crypto insns */ -#define HWCAP_DES 0x00040000 /* DES crypto insns */ -#define HWCAP_KASUMI 0x00080000 /* KASUMI crypto insns */ -#define HWCAP_CAMELLIA 0x00100000 /* CAMELLIA crypto insns */ -#define HWCAP_MD5 0x00200000 /* MD5 hashing insns */ -#define HWCAP_SHA1 0x00400000 /* SHA1 hashing insns */ -#define HWCAP_SHA256 0x00800000 /* SHA256 hashing insns */ -#define HWCAP_SHA512 0x01000000 /* SHA512 hashing insns */ -#define HWCAP_MPMUL 0x02000000 /* Multiple Precision Multiply */ -#define HWCAP_MONT 0x04000000 /* Montgomery Mult/Sqrt */ -#define HWCAP_PAUSE 0x08000000 /* Pause insn */ -#define HWCAP_CBCOND 0x10000000 /* Compare and Branch insns */ -#define HWCAP_CRC32C 0x20000000 /* CRC32C insn */ - -/* All sparc opcodes are 32 bits, except for the `set' instruction (really a - macro), which is 64 bits. It is handled as a special case. - - The match component is a mask saying which bits must match a particular - opcode in order for an instruction to be an instance of that opcode. - - The args component is a string containing one character for each operand of the - instruction. - - Kinds of operands: - # Number used by optimizer. It is ignored. - 1 rs1 register. - 2 rs2 register. - d rd register. - e frs1 floating point register. - v frs1 floating point register (double/even). - V frs1 floating point register (quad/multiple of 4). - f frs2 floating point register. - B frs2 floating point register (double/even). - R frs2 floating point register (quad/multiple of 4). - 4 frs3 floating point register. - 5 frs3 floating point register (doube/even). - g frsd floating point register. - H frsd floating point register (double/even). - J frsd floating point register (quad/multiple of 4). - b crs1 coprocessor register - c crs2 coprocessor register - D crsd coprocessor register - m alternate space register (asr) in rd - M alternate space register (asr) in rs1 - h 22 high bits. - X 5 bit unsigned immediate - Y 6 bit unsigned immediate - 3 SIAM mode (3 bits). (v9b) - K MEMBAR mask (7 bits). (v9) - j 10 bit Immediate. (v9) - I 11 bit Immediate. (v9) - i 13 bit Immediate. - n 22 bit immediate. - k 2+14 bit PC relative immediate. (v9) - G 19 bit PC relative immediate. (v9) - l 22 bit PC relative immediate. - L 30 bit PC relative immediate. - a Annul. The annul bit is set. - A Alternate address space. Stored as 8 bits. - C Coprocessor state register. - F floating point state register. - p Processor state register. - N Branch predict clear ",pn" (v9) - T Branch predict set ",pt" (v9) - z %icc. (v9) - Z %xcc. (v9) - q Floating point queue. - r Single register that is both rs1 and rd. - O Single register that is both rs2 and rd. - Q Coprocessor queue. - S Special case. - t Trap base register. - w Window invalid mask register. - y Y register. - u sparclet coprocessor registers in rd position - U sparclet coprocessor registers in rs1 position - E %ccr. (v9) - s %fprs. (v9) - P %pc. (v9) - W %tick. (v9) - o %asi. (v9) - 6 %fcc0. (v9) - 7 %fcc1. (v9) - 8 %fcc2. (v9) - 9 %fcc3. (v9) - ! Privileged Register in rd (v9) - ? Privileged Register in rs1 (v9) - * Prefetch function constant. (v9) - x OPF field (v9 impdep). - 0 32/64 bit immediate for set or setx (v9) insns - _ Ancillary state register in rd (v9a) - / Ancillary state register in rs1 (v9a) - ( entire floating point state register (%efsr) - ) 5 bit immediate placed in RS3 field - = 2+8 bit PC relative immediate. (v9) */ - -#define OP2(x) (((x) & 0x7) << 22) /* Op2 field of format2 insns. */ -#define OP3(x) (((x) & 0x3f) << 19) /* Op3 field of format3 insns. */ -#define OP(x) ((unsigned) ((x) & 0x3) << 30) /* Op field of all insns. */ -#define OPF(x) (((x) & 0x1ff) << 5) /* Opf field of float insns. */ -#define OPF_LOW5(x) OPF ((x) & 0x1f) /* V9. */ -#define OPF_LOW4(x) OPF ((x) & 0xf) /* V9. */ -#define F3F(x, y, z) (OP (x) | OP3 (y) | OPF (z)) /* Format3 float insns. */ -#define F3F4(x, y, z) (OP (x) | OP3 (y) | OPF_LOW4 (z)) -#define F3I(x) (((x) & 0x1) << 13) /* Immediate field of format 3 insns. */ -#define F2(x, y) (OP (x) | OP2(y)) /* Format 2 insns. */ -#define F3(x, y, z) (OP (x) | OP3(y) | F3I(z)) /* Format3 insns. */ -#define F1(x) (OP (x)) -#define DISP30(x) ((x) & 0x3fffffff) -#define ASI(x) (((x) & 0xff) << 5) /* Asi field of format3 insns. */ -#define RS2(x) ((x) & 0x1f) /* Rs2 field. */ -#define SIMM13(x) ((x) & 0x1fff) /* Simm13 field. */ -#define RD(x) (((x) & 0x1f) << 25) /* Destination register field. */ -#define RS1(x) (((x) & 0x1f) << 14) /* Rs1 field. */ -#define RS3(x) (((x) & 0x1f) << 9) /* Rs3 field. */ -#define ASI_RS2(x) (SIMM13 (x)) -#define MEMBAR(x) ((x) & 0x7f) -#define SLCPOP(x) (((x) & 0x7f) << 6) /* Sparclet cpop. */ - -#define ANNUL (1 << 29) -#define BPRED (1 << 19) /* V9. */ -#define IMMED F3I (1) -#define RD_G0 RD (~0) -#define RS1_G0 RS1 (~0) -#define RS2_G0 RS2 (~0) - -extern const struct sparc_opcode sparc_opcodes[]; -extern const int sparc_num_opcodes; - -extern int sparc_encode_asi (const char *); -extern const char *sparc_decode_asi (int); -extern int sparc_encode_membar (const char *); -extern const char *sparc_decode_membar (int); -extern int sparc_encode_prefetch (const char *); -extern const char *sparc_decode_prefetch (int); -extern int sparc_encode_sparclet_cpreg (const char *); -extern const char *sparc_decode_sparclet_cpreg (int); - -/* Local Variables: - fill-column: 131 - comment-column: 0 - End: */ - diff --git a/include/opcode/spu-insns.h b/include/opcode/spu-insns.h deleted file mode 100644 index d6c260a..0000000 --- a/include/opcode/spu-insns.h +++ /dev/null @@ -1,417 +0,0 @@ -/* SPU ELF support for BFD. - - Copyright 2006, 2007, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* SPU Opcode Table - --=-=-= FORMAT =-=-=- - - +----+-------+-------+-------+-------+ +------------+-------+-------+-------+ -RRR | op | RC | RB | RA | RT | RI7 | op | I7 | RA | RT | - +----+-------+-------+-------+-------+ +------------+-------+-------+-------+ - 0 3 1 1 2 3 0 1 1 2 3 - 0 7 4 1 0 7 4 1 - - +-----------+--------+-------+-------+ +---------+----------+-------+-------+ -RI8 | op | I8 | RA | RT | RI10 | op | I10 | RA | RT | - +-----------+--------+-------+-------+ +---------+----------+-------+-------+ - 0 9 1 2 3 0 7 1 2 3 - 7 4 1 7 4 1 - - +----------+-----------------+-------+ +--------+-------------------+-------+ -RI16 | op | I16 | RT | RI18 | op | I18 | RT | - +----------+-----------------+-------+ +--------+-------------------+-------+ - 0 8 2 3 0 6 2 3 - 4 1 4 1 - - +------------+-------+-------+-------+ +-------+--+-----------------+-------+ -RR | op | RB | RA | RT | LBT | op |RO| I16 | RO | - +------------+-------+-------+-------+ +-------+--+-----------------+-------+ - 0 1 1 2 3 0 6 8 2 3 - 0 7 4 1 4 1 - - +------------+----+--+-------+-------+ - LBTI | op | // |RO| RA | RO | - +------------+----+--+-------+-------+ - 0 1 1 1 2 3 - 0 5 7 4 1 - --=-=-= OPCODE =-=-=- - -OPCODE field specifies the most significant 11bit of the instruction. Some formats don't have 11bits for opcode field, and in this -case, bit field other than op are defined as 0s. For example, opcode of fma instruction which is RRR format is defined as 0x700, -since 0x700 -> 11'b11100000000, this means opcode is 4'b1110, and other 7bits are defined as 7'b0000000. - --=-=-= ASM_FORMAT =-=-=- - -RRR category RI7 category - ASM_RRR mnemonic RC, RA, RB, RT ASM_RI4 mnemonic RT, RA, I4 - ASM_RI7 mnemonic RT, RA, I7 - -RI8 category RI10 category - ASM_RUI8 mnemonic RT, RA, UI8 ASM_AI10 mnemonic RA, I10 - ASM_RI10 mnemonic RT, RA, R10 - ASM_RI10IDX mnemonic RT, I10(RA) - -RI16 category RI18 category - ASM_I16W mnemonic I16W ASM_RI18 mnemonic RT, I18 - ASM_RI16 mnemonic RT, I16 - ASM_RI16W mnemonic RT, I16W - -RR category LBT category - ASM_MFSPR mnemonic RT, SA ASM_LBT mnemonic brinst, brtarg - ASM_MTSPR mnemonic SA, RT - ASM_NOOP mnemonic LBTI category - ASM_RA mnemonic RA ASM_LBTI mnemonic brinst, RA - ASM_RAB mnemonic RA, RB - ASM_RDCH mnemonic RT, CA - ASM_RR mnemonic RT, RA, RB - ASM_RT mnemonic RT - ASM_RTA mnemonic RT, RA - ASM_WRCH mnemonic CA, RT - -Note that RRR instructions have the names for RC and RT reversed from -what's in the ISA, in order to put RT in the same position it appears -for other formats. - --=-=-= DEPENDENCY =-=-=- - -DEPENDENCY filed consists of 5 digits. This represents which register is used as source and which register is used as target. -The first(most significant) digit is always 0. Then it is followd by RC, RB, RA and RT digits. -If the digit is 0, this means the corresponding register is not used in the instruction. -If the digit is 1, this means the corresponding register is used as a source in the instruction. -If the digit is 2, this means the corresponding register is used as a target in the instruction. -If the digit is 3, this means the corresponding register is used as both source and target in the instruction. -For example, fms instruction has 00113 as the DEPENDENCY field. This means RC is not used in this operation, RB and RA are -used as sources and RT is the target. - --=-=-= PIPE =-=-=- - -This field shows which execution pipe is used for the instruction - -pipe0 execution pipelines: - FP6 SP floating pipeline - FP7 integer operations executed in SP floating pipeline - FPD DP floating pipeline - FX2 FXU pipeline - FX3 Rotate/Shift pipeline - FXB Byte pipeline - NOP No pipeline - -pipe1 execution pipelines: - BR Branch pipeline - LNOP No pipeline - LS Load/Store pipeline - SHUF Shuffle pipeline - SPR SPR/CH pipeline - -*/ - -#define _A0() {0} -#define _A1(a) {1,a} -#define _A2(a,b) {2,a,b} -#define _A3(a,b,c) {3,a,b,c} -#define _A4(a,b,c,d) {4,a,b,c,d} - -/* TAG FORMAT OPCODE MNEMONIC ASM_FORMAT DEPENDENCY PIPE COMMENT */ -/* 0[RC][RB][RA][RT] */ -/* 1:src, 2:target */ - -APUOP(M_BR, RI16, 0x190, "br", _A1(A_R18), 00000, BR) /* BRel IP<-IP+I16 */ -APUOP(M_BRSL, RI16, 0x198, "brsl", _A2(A_T,A_R18), 00002, BR) /* BRelSetLink RT,IP<-IP,IP+I16 */ -APUOP(M_BRA, RI16, 0x180, "bra", _A1(A_S18), 00000, BR) /* BRAbs IP<-I16 */ -APUOP(M_BRASL, RI16, 0x188, "brasl", _A2(A_T,A_S18), 00002, BR) /* BRAbsSetLink RT,IP<-IP,I16 */ -APUOP(M_FSMBI, RI16, 0x194, "fsmbi", _A2(A_T,A_X16), 00002, SHUF) /* FormSelMask%I RT<-fsm(I16) */ -APUOP(M_LQA, RI16, 0x184, "lqa", _A2(A_T,A_S18), 00002, LS) /* LoadQAbs RT<-M[I16] */ -APUOP(M_LQR, RI16, 0x19C, "lqr", _A2(A_T,A_R18), 00002, LS) /* LoadQRel RT<-M[IP+I16] */ -APUOP(M_STOP, RR, 0x000, "stop", _A0(), 00000, BR) /* STOP stop */ -APUOP(M_STOP2, RR, 0x000, "stop", _A1(A_U14), 00000, BR) /* STOP stop */ -APUOP(M_STOPD, RR, 0x140, "stopd", _A3(A_T,A_A,A_B), 00111, BR) /* STOPD stop (with register dependencies) */ -APUOP(M_LNOP, RR, 0x001, "lnop", _A0(), 00000, LNOP) /* LNOP no_operation */ -APUOP(M_SYNC, RR, 0x002, "sync", _A0(), 00000, BR) /* SYNC flush_pipe */ -APUOP(M_DSYNC, RR, 0x003, "dsync", _A0(), 00000, BR) /* DSYNC flush_store_queue */ -APUOP(M_MFSPR, RR, 0x00c, "mfspr", _A2(A_T,A_S), 00002, SPR) /* MFSPR RT<-SA */ -APUOP(M_RDCH, RR, 0x00d, "rdch", _A2(A_T,A_H), 00002, SPR) /* ReaDCHannel RT<-CA:data */ -APUOP(M_RCHCNT, RR, 0x00f, "rchcnt", _A2(A_T,A_H), 00002, SPR) /* ReaDCHanCouNT RT<-CA:count */ -APUOP(M_HBRA, LBT, 0x080, "hbra", _A2(A_S11,A_S18), 00000, LS) /* HBRA BTB[B9]<-M[I16] */ -APUOP(M_HBRR, LBT, 0x090, "hbrr", _A2(A_S11,A_R18), 00000, LS) /* HBRR BTB[B9]<-M[IP+I16] */ -APUOP(M_BRZ, RI16, 0x100, "brz", _A2(A_T,A_R18), 00001, BR) /* BRZ IP<-IP+I16_if(RT) */ -APUOP(M_BRNZ, RI16, 0x108, "brnz", _A2(A_T,A_R18), 00001, BR) /* BRNZ IP<-IP+I16_if(RT) */ -APUOP(M_BRHZ, RI16, 0x110, "brhz", _A2(A_T,A_R18), 00001, BR) /* BRHZ IP<-IP+I16_if(RT) */ -APUOP(M_BRHNZ, RI16, 0x118, "brhnz", _A2(A_T,A_R18), 00001, BR) /* BRHNZ IP<-IP+I16_if(RT) */ -APUOP(M_STQA, RI16, 0x104, "stqa", _A2(A_T,A_S18), 00001, LS) /* SToreQAbs M[I16]<-RT */ -APUOP(M_STQR, RI16, 0x11C, "stqr", _A2(A_T,A_R18), 00001, LS) /* SToreQRel M[IP+I16]<-RT */ -APUOP(M_MTSPR, RR, 0x10c, "mtspr", _A2(A_S,A_T), 00001, SPR) /* MTSPR SA<-RT */ -APUOP(M_WRCH, RR, 0x10d, "wrch", _A2(A_H,A_T), 00001, SPR) /* ChanWRite CA<-RT */ -APUOP(M_LQD, RI10, 0x1a0, "lqd", _A4(A_T,A_S14,A_P,A_A), 00012, LS) /* LoadQDisp RT<-M[Ra+I10] */ -APUOP(M_BI, RR, 0x1a8, "bi", _A1(A_A), 00010, BR) /* BI IP<-RA */ -APUOP(M_BISL, RR, 0x1a9, "bisl", _A2(A_T,A_A), 00012, BR) /* BISL RT,IP<-IP,RA */ -APUOP(M_IRET, RR, 0x1aa, "iret", _A1(A_A), 00010, BR) /* IRET IP<-SRR0 */ -APUOP(M_IRET2, RR, 0x1aa, "iret", _A0(), 00010, BR) /* IRET IP<-SRR0 */ -APUOP(M_BISLED, RR, 0x1ab, "bisled", _A2(A_T,A_A), 00012, BR) /* BISLED RT,IP<-IP,RA_if(ext) */ -APUOP(M_HBR, LBTI, 0x1ac, "hbr", _A2(A_S11I,A_A), 00010, LS) /* HBR BTB[B9]<-M[Ra] */ -APUOP(M_FREST, RR, 0x1b8, "frest", _A2(A_T,A_A), 00012, SHUF) /* FREST RT<-recip(RA) */ -APUOP(M_FRSQEST, RR, 0x1b9, "frsqest", _A2(A_T,A_A), 00012, SHUF) /* FRSQEST RT<-rsqrt(RA) */ -APUOP(M_FSM, RR, 0x1b4, "fsm", _A2(A_T,A_A), 00012, SHUF) /* FormSelMask% RT<-expand(Ra) */ -APUOP(M_FSMH, RR, 0x1b5, "fsmh", _A2(A_T,A_A), 00012, SHUF) /* FormSelMask% RT<-expand(Ra) */ -APUOP(M_FSMB, RR, 0x1b6, "fsmb", _A2(A_T,A_A), 00012, SHUF) /* FormSelMask% RT<-expand(Ra) */ -APUOP(M_GB, RR, 0x1b0, "gb", _A2(A_T,A_A), 00012, SHUF) /* GatherBits% RT<-gather(RA) */ -APUOP(M_GBH, RR, 0x1b1, "gbh", _A2(A_T,A_A), 00012, SHUF) /* GatherBits% RT<-gather(RA) */ -APUOP(M_GBB, RR, 0x1b2, "gbb", _A2(A_T,A_A), 00012, SHUF) /* GatherBits% RT<-gather(RA) */ -APUOP(M_CBD, RI7, 0x1f4, "cbd", _A4(A_T,A_U7,A_P,A_A), 00012, SHUF) /* genCtl%%insD RT<-sta(Ra+I4,siz) */ -APUOP(M_CHD, RI7, 0x1f5, "chd", _A4(A_T,A_U7,A_P,A_A), 00012, SHUF) /* genCtl%%insD RT<-sta(Ra+I4,siz) */ -APUOP(M_CWD, RI7, 0x1f6, "cwd", _A4(A_T,A_U7,A_P,A_A), 00012, SHUF) /* genCtl%%insD RT<-sta(Ra+I4,siz) */ -APUOP(M_CDD, RI7, 0x1f7, "cdd", _A4(A_T,A_U7,A_P,A_A), 00012, SHUF) /* genCtl%%insD RT<-sta(Ra+I4,siz) */ -APUOP(M_ROTQBII, RI7, 0x1f8, "rotqbii", _A3(A_T,A_A,A_U3), 00012, SHUF) /* ROTQBII RT<-RA<<I10) */ -APUOP(M_CGTHI, RI10, 0x268, "cgthi", _A3(A_T,A_A,A_S10), 00012, FX2) /* CGT%I RT<-(RA>I10) */ -APUOP(M_CGTI, RI10, 0x260, "cgti", _A3(A_T,A_A,A_S10), 00012, FX2) /* CGT%I RT<-(RA>I10) */ -APUOP(M_CLGTBI, RI10, 0x2f0, "clgtbi", _A3(A_T,A_A,A_S10B), 00012, FX2) /* CLGT%I RT<-(RA>I10) */ -APUOP(M_CLGTHI, RI10, 0x2e8, "clgthi", _A3(A_T,A_A,A_S10), 00012, FX2) /* CLGT%I RT<-(RA>I10) */ -APUOP(M_CLGTI, RI10, 0x2e0, "clgti", _A3(A_T,A_A,A_S10), 00012, FX2) /* CLGT%I RT<-(RA>I10) */ -APUOP(M_CEQBI, RI10, 0x3f0, "ceqbi", _A3(A_T,A_A,A_S10B), 00012, FX2) /* CEQ%I RT<-(RA=I10) */ -APUOP(M_CEQHI, RI10, 0x3e8, "ceqhi", _A3(A_T,A_A,A_S10), 00012, FX2) /* CEQ%I RT<-(RA=I10) */ -APUOP(M_CEQI, RI10, 0x3e0, "ceqi", _A3(A_T,A_A,A_S10), 00012, FX2) /* CEQ%I RT<-(RA=I10) */ -APUOP(M_HGTI, RI10, 0x278, "hgti", _A3(A_T,A_A,A_S10), 00010, FX2) /* HaltGTI halt_if(RA>I10) */ -APUOP(M_HGTI2, RI10, 0x278, "hgti", _A2(A_A,A_S10), 00010, FX2) /* HaltGTI halt_if(RA>I10) */ -APUOP(M_HLGTI, RI10, 0x2f8, "hlgti", _A3(A_T,A_A,A_S10), 00010, FX2) /* HaltLGTI halt_if(RA>I10) */ -APUOP(M_HLGTI2, RI10, 0x2f8, "hlgti", _A2(A_A,A_S10), 00010, FX2) /* HaltLGTI halt_if(RA>I10) */ -APUOP(M_HEQI, RI10, 0x3f8, "heqi", _A3(A_T,A_A,A_S10), 00010, FX2) /* HaltEQImm halt_if(RA=I10) */ -APUOP(M_HEQI2, RI10, 0x3f8, "heqi", _A2(A_A,A_S10), 00010, FX2) /* HaltEQImm halt_if(RA=I10) */ -APUOP(M_MPYI, RI10, 0x3a0, "mpyi", _A3(A_T,A_A,A_S10), 00012, FP7) /* MPYI RT<-RA*I10 */ -APUOP(M_MPYUI, RI10, 0x3a8, "mpyui", _A3(A_T,A_A,A_S10), 00012, FP7) /* MPYUI RT<-RA*I10 */ -APUOP(M_CFLTS, RI8, 0x3b0, "cflts", _A3(A_T,A_A,A_U7A), 00012, FP7) /* CFLTS RT<-int(RA,I8) */ -APUOP(M_CFLTU, RI8, 0x3b2, "cfltu", _A3(A_T,A_A,A_U7A), 00012, FP7) /* CFLTU RT<-int(RA,I8) */ -APUOP(M_CSFLT, RI8, 0x3b4, "csflt", _A3(A_T,A_A,A_U7B), 00012, FP7) /* CSFLT RT<-flt(RA,I8) */ -APUOP(M_CUFLT, RI8, 0x3b6, "cuflt", _A3(A_T,A_A,A_U7B), 00012, FP7) /* CUFLT RT<-flt(RA,I8) */ -APUOP(M_FESD, RR, 0x3b8, "fesd", _A2(A_T,A_A), 00012, FPD) /* FESD RT<-double(RA) */ -APUOP(M_FRDS, RR, 0x3b9, "frds", _A2(A_T,A_A), 00012, FPD) /* FRDS RT<-single(RA) */ -APUOP(M_FSCRRD, RR, 0x398, "fscrrd", _A1(A_T), 00002, FPD) /* FSCRRD RT<-FP_status */ -APUOP(M_FSCRWR, RR, 0x3ba, "fscrwr", _A2(A_T,A_A), 00010, FP7) /* FSCRWR FP_status<-RA */ -APUOP(M_FSCRWR2, RR, 0x3ba, "fscrwr", _A1(A_A), 00010, FP7) /* FSCRWR FP_status<-RA */ -APUOP(M_CLZ, RR, 0x2a5, "clz", _A2(A_T,A_A), 00012, FX2) /* CLZ RT<-clz(RA) */ -APUOP(M_CNTB, RR, 0x2b4, "cntb", _A2(A_T,A_A), 00012, FXB) /* CNT RT<-pop(RA) */ -APUOP(M_XSBH, RR, 0x2b6, "xsbh", _A2(A_T,A_A), 00012, FX2) /* eXtSignBtoH RT<-sign_ext(RA) */ -APUOP(M_XSHW, RR, 0x2ae, "xshw", _A2(A_T,A_A), 00012, FX2) /* eXtSignHtoW RT<-sign_ext(RA) */ -APUOP(M_XSWD, RR, 0x2a6, "xswd", _A2(A_T,A_A), 00012, FX2) /* eXtSignWtoD RT<-sign_ext(RA) */ -APUOP(M_ROTI, RI7, 0x078, "roti", _A3(A_T,A_A,A_S7N), 00012, FX3) /* ROT%I RT<-RA<<RB) */ -APUOP(M_CGTB, RR, 0x250, "cgtb", _A3(A_T,A_A,A_B), 00112, FX2) /* CGT% RT<-(RA>RB) */ -APUOP(M_CGTH, RR, 0x248, "cgth", _A3(A_T,A_A,A_B), 00112, FX2) /* CGT% RT<-(RA>RB) */ -APUOP(M_CLGT, RR, 0x2c0, "clgt", _A3(A_T,A_A,A_B), 00112, FX2) /* CLGT% RT<-(RA>RB) */ -APUOP(M_CLGTB, RR, 0x2d0, "clgtb", _A3(A_T,A_A,A_B), 00112, FX2) /* CLGT% RT<-(RA>RB) */ -APUOP(M_CLGTH, RR, 0x2c8, "clgth", _A3(A_T,A_A,A_B), 00112, FX2) /* CLGT% RT<-(RA>RB) */ -APUOP(M_CEQ, RR, 0x3c0, "ceq", _A3(A_T,A_A,A_B), 00112, FX2) /* CEQ% RT<-(RA=RB) */ -APUOP(M_CEQB, RR, 0x3d0, "ceqb", _A3(A_T,A_A,A_B), 00112, FX2) /* CEQ% RT<-(RA=RB) */ -APUOP(M_CEQH, RR, 0x3c8, "ceqh", _A3(A_T,A_A,A_B), 00112, FX2) /* CEQ% RT<-(RA=RB) */ -APUOP(M_HGT, RR, 0x258, "hgt", _A3(A_T,A_A,A_B), 00110, FX2) /* HaltGT halt_if(RA>RB) */ -APUOP(M_HGT2, RR, 0x258, "hgt", _A2(A_A,A_B), 00110, FX2) /* HaltGT halt_if(RA>RB) */ -APUOP(M_HLGT, RR, 0x2d8, "hlgt", _A3(A_T,A_A,A_B), 00110, FX2) /* HaltLGT halt_if(RA>RB) */ -APUOP(M_HLGT2, RR, 0x2d8, "hlgt", _A2(A_A,A_B), 00110, FX2) /* HaltLGT halt_if(RA>RB) */ -APUOP(M_HEQ, RR, 0x3d8, "heq", _A3(A_T,A_A,A_B), 00110, FX2) /* HaltEQ halt_if(RA=RB) */ -APUOP(M_HEQ2, RR, 0x3d8, "heq", _A2(A_A,A_B), 00110, FX2) /* HaltEQ halt_if(RA=RB) */ -APUOP(M_FCEQ, RR, 0x3c2, "fceq", _A3(A_T,A_A,A_B), 00112, FX2) /* FCEQ RT<-(RA=RB) */ -APUOP(M_FCMEQ, RR, 0x3ca, "fcmeq", _A3(A_T,A_A,A_B), 00112, FX2) /* FCMEQ RT<-(|RA|=|RB|) */ -APUOP(M_FCGT, RR, 0x2c2, "fcgt", _A3(A_T,A_A,A_B), 00112, FX2) /* FCGT RT<-(RA>16 */ -APUOP(M_MPYU, RR, 0x3cc, "mpyu", _A3(A_T,A_A,A_B), 00112, FP7) /* MPYU RT<-RA*RB */ -APUOP(M_FI, RR, 0x3d4, "fi", _A3(A_T,A_A,A_B), 00112, FP7) /* FInterpolate RT<-f(RA,RB) */ -APUOP(M_ROT, RR, 0x058, "rot", _A3(A_T,A_A,A_B), 00112, FX3) /* ROT% RT<-RA<<RB) */ -APUOP(M_DFCMGT, RR, 0x2cb, "dfcmgt", _A3(A_T,A_A,A_B), 00112, FX2) /* DFCMGT RT<-(|RA|>|RB|) */ -APUOP(M_DFTSV, RI7, 0x3bf, "dftsv", _A3(A_T,A_A,A_U7), 00012, FX2) /* DFTSV RT<-testspecial(RA,I7) */ - -#undef _A0 -#undef _A1 -#undef _A2 -#undef _A3 -#undef _A4 diff --git a/include/opcode/spu.h b/include/opcode/spu.h deleted file mode 100644 index c646830..0000000 --- a/include/opcode/spu.h +++ /dev/null @@ -1,125 +0,0 @@ -/* SPU ELF support for BFD. - - Copyright 2006, 2010 Free Software Foundation, Inc. - - This file is part of GDB, GAS, and the GNU binutils. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* These two enums are from rel_apu/common/spu_asm_format.h */ -/* definition of instruction format */ -typedef enum { - RRR, - RI18, - RI16, - RI10, - RI8, - RI7, - RR, - LBT, - LBTI, - IDATA, - UNKNOWN_IFORMAT -} spu_iformat; - -/* These values describe assembly instruction arguments. They indicate - * how to encode, range checking and which relocation to use. */ -typedef enum { - A_T, /* register at pos 0 */ - A_A, /* register at pos 7 */ - A_B, /* register at pos 14 */ - A_C, /* register at pos 21 */ - A_S, /* special purpose register at pos 7 */ - A_H, /* channel register at pos 7 */ - A_P, /* parenthesis, this has to separate regs from immediates */ - A_S3, - A_S6, - A_S7N, - A_S7, - A_U7A, - A_U7B, - A_S10B, - A_S10, - A_S11, - A_S11I, - A_S14, - A_S16, - A_S18, - A_R18, - A_U3, - A_U5, - A_U6, - A_U7, - A_U14, - A_X16, - A_U18, - A_MAX -} spu_aformat; - -enum spu_insns { -#define APUOP(TAG,MACFORMAT,OPCODE,MNEMONIC,ASMFORMAT,DEP,PIPE) \ - TAG, -#define APUOPFB(TAG,MACFORMAT,OPCODE,FB,MNEMONIC,ASMFORMAT,DEP,PIPE) \ - TAG, -#include "opcode/spu-insns.h" -#undef APUOP -#undef APUOPFB - M_SPU_MAX -}; - -struct spu_opcode -{ - spu_iformat insn_type; - unsigned int opcode; - char *mnemonic; - int arg[5]; -}; - -#define SIGNED_EXTRACT(insn,size,pos) (((int)((insn) << (32-size-pos))) >> (32-size)) -#define UNSIGNED_EXTRACT(insn,size,pos) (((insn) >> pos) & ((1 << size)-1)) - -#define DECODE_INSN_RT(insn) (insn & 0x7f) -#define DECODE_INSN_RA(insn) ((insn >> 7) & 0x7f) -#define DECODE_INSN_RB(insn) ((insn >> 14) & 0x7f) -#define DECODE_INSN_RC(insn) ((insn >> 21) & 0x7f) - -#define DECODE_INSN_I10(insn) SIGNED_EXTRACT(insn,10,14) -#define DECODE_INSN_U10(insn) UNSIGNED_EXTRACT(insn,10,14) - -/* For branching, immediate loads, hbr and lqa/stqa. */ -#define DECODE_INSN_I16(insn) SIGNED_EXTRACT(insn,16,7) -#define DECODE_INSN_U16(insn) UNSIGNED_EXTRACT(insn,16,7) - -/* for stop */ -#define DECODE_INSN_U14(insn) UNSIGNED_EXTRACT(insn,14,0) - -/* For ila */ -#define DECODE_INSN_I18(insn) SIGNED_EXTRACT(insn,18,7) -#define DECODE_INSN_U18(insn) UNSIGNED_EXTRACT(insn,18,7) - -/* For rotate and shift and generate control mask */ -#define DECODE_INSN_I7(insn) SIGNED_EXTRACT(insn,7,14) -#define DECODE_INSN_U7(insn) UNSIGNED_EXTRACT(insn,7,14) - -/* For float <-> int conversion */ -#define DECODE_INSN_I8(insn) SIGNED_EXTRACT(insn,8,14) -#define DECODE_INSN_U8(insn) UNSIGNED_EXTRACT(insn,8,14) - -/* For hbr */ -#define DECODE_INSN_I9a(insn) ((SIGNED_EXTRACT(insn,2,23) << 7) | UNSIGNED_EXTRACT(insn,7,0)) -#define DECODE_INSN_I9b(insn) ((SIGNED_EXTRACT(insn,2,14) << 7) | UNSIGNED_EXTRACT(insn,7,0)) -#define DECODE_INSN_U9a(insn) ((UNSIGNED_EXTRACT(insn,2,23) << 7) | UNSIGNED_EXTRACT(insn,7,0)) -#define DECODE_INSN_U9b(insn) ((UNSIGNED_EXTRACT(insn,2,14) << 7) | UNSIGNED_EXTRACT(insn,7,0)) - diff --git a/include/opcode/tahoe.h b/include/opcode/tahoe.h deleted file mode 100644 index 70fcf62..0000000 --- a/include/opcode/tahoe.h +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Ported by the State University of New York at Buffalo by the Distributed - * Computer Systems Lab, Department of Computer Science, 1991. - */ -/* Copyright 2012 Free Software Foundation, Inc. - - This file is part of GDB and BINUTILS. - - GDB and BINUTILS are free software; you can redistribute them and/or - modify them under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 3, or (at - your option) any later version. - - GDB and BINUTILS are distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GDB or BINUTILS; see the file COPYING3. If not, write - to the Free Software Foundation, 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - - -#ifndef tahoe_opcodeT -#define tahoe_opcodeT int -#endif /* no tahoe_opcodeT */ - -struct vot_wot /* tahoe opcode table: wot to do with this */ - /* particular opcode */ -{ - char * args; /* how to compile said opcode */ - tahoe_opcodeT code; /* op-code (may be > 8 bits!) */ -}; - -struct vot /* tahoe opcode text */ -{ - char * name; /* opcode name: lowercase string [key] */ - struct vot_wot detail; /* rest of opcode table [datum] */ -}; - -#define vot_how args -#define vot_code code -#define vot_detail detail -#define vot_name name - -static struct vot -votstrs[] = -{ -{ "halt", {"", 0x00 } }, -{ "sinf", {"", 0x05 } }, -{ "ldf", {"rl", 0x06 } }, -{ "ldd", {"rq", 0x07 } }, -{ "addb2", {"rbmb", 0x08 } }, -{ "movb", {"rbwb", 0x09 } }, -{ "addw2", {"rwmw", 0x0a } }, -{ "movw", {"rwww", 0x0b } }, -{ "addl2", {"rlml", 0x0c } }, -{ "movl", {"rlwl", 0x0d } }, -{ "bbs", {"rlvlbw", 0x0e } }, -{ "nop", {"", 0x10 } }, -{ "brb", {"bb", 0x11 } }, -{ "brw", {"bw", 0x13 } }, -{ "cosf", {"", 0x15 } }, -{ "lnf", {"rl", 0x16 } }, -{ "lnd", {"rq", 0x17 } }, -{ "addb3", {"rbrbwb", 0x18 } }, -{ "cmpb", {"rbwb", 0x19 } }, -{ "addw3", {"rwrwww", 0x1a } }, -{ "cmpw", {"rwww", 0x1b } }, -{ "addl3", {"rlrlwl", 0x1c } }, -{ "cmpl", {"rlwl", 0x1d } }, -{ "bbc", {"rlvlbw", 0x1e } }, -{ "rei", {"", 0x20 } }, -{ "bneq", {"bb", 0x21 } }, -{ "bnequ", {"bb", 0x21 } }, -{ "cvtwl", {"rwwl", 0x23 } }, -{ "stf", {"wl", 0x26 } }, -{ "std", {"wq", 0x27 } }, -{ "subb2", {"rbmb", 0x28 } }, -{ "mcomb", {"rbwb", 0x29 } }, -{ "subw2", {"rwmw", 0x2a } }, -{ "mcomw", {"rwww", 0x2b } }, -{ "subl2", {"rlml", 0x2c } }, -{ "mcoml", {"rlwl", 0x2d } }, -{ "emul", {"rlrlrlwq", 0x2e } }, -{ "aoblss", {"rlmlbw", 0x2f } }, -{ "bpt", {"", 0x30 } }, -{ "beql", {"bb", 0x31 } }, -{ "beqlu", {"bb", 0x31 } }, -{ "cvtwb", {"rwwb", 0x33 } }, -{ "logf", {"", 0x35 } }, -{ "cmpf", {"rl", 0x36 } }, -{ "cmpd", {"rq", 0x37 } }, -{ "subb3", {"rbrbwb", 0x38 } }, -{ "bitb", {"rbrb", 0x39 } }, -{ "subw3", {"rwrwww", 0x3a } }, -{ "bitw", {"rwrw", 0x3b } }, -{ "subl3", {"rlrlwl", 0x3c } }, -{ "bitl", {"rlrl", 0x3d } }, -{ "ediv", {"rlrqwlwl", 0x3e } }, -{ "aobleq", {"rlmlbw", 0x3f } }, -{ "ret", {"", 0x40 } }, -{ "bgtr", {"bb", 0x41 } }, -{ "sqrtf", {"", 0x45 } }, -{ "cmpf2", {"rl", 0x46 } }, -{ "cmpd2", {"rqrq", 0x47 } }, -{ "shll", {"rbrlwl", 0x48 } }, -{ "clrb", {"wb", 0x49 } }, -{ "shlq", {"rbrqwq", 0x4a } }, -{ "clrw", {"ww", 0x4b } }, -{ "mull2", {"rlml", 0x4c } }, -{ "clrl", {"wl", 0x4d } }, -{ "shal", {"rbrlwl", 0x4e } }, -{ "bleq", {"bb", 0x51 } }, -{ "expf", {"", 0x55 } }, -{ "tstf", {"", 0x56 } }, -{ "tstd", {"", 0x57 } }, -{ "shrl", {"rbrlwl", 0x58 } }, -{ "tstb", {"rb", 0x59 } }, -{ "shrq", {"rbrqwq", 0x5a } }, -{ "tstw", {"rw", 0x5b } }, -{ "mull3", {"rlrlwl", 0x5c } }, -{ "tstl", {"rl", 0x5d } }, -{ "shar", {"rbrlwl", 0x5e } }, -{ "bbssi", {"rlmlbw", 0x5f } }, -{ "ldpctx", {"", 0x60 } }, -{ "pushd", {"", 0x67 } }, -{ "incb", {"mb", 0x69 } }, -{ "incw", {"mw", 0x6b } }, -{ "divl2", {"rlml", 0x6c } }, -{ "incl", {"ml", 0x6d } }, -{ "cvtlb", {"rlwb", 0x6f } }, -{ "svpctx", {"", 0x70 } }, -{ "jmp", {"ab", 0x71 } }, -{ "cvlf", {"rl", 0x76 } }, -{ "cvld", {"rl", 0x77 } }, -{ "decb", {"mb", 0x79 } }, -{ "decw", {"mw", 0x7b } }, -{ "divl3", {"rlrlwl", 0x7c } }, -{ "decl", {"ml", 0x7d } }, -{ "cvtlw", {"rlww", 0x7f } }, -{ "bgeq", {"bb", 0x81 } }, -{ "movs2", {"abab", 0x82 } }, -{ "cvfl", {"wl", 0x86 } }, -{ "cvdl", {"wl", 0x87 } }, -{ "orb2", {"rbmb", 0x88 } }, -{ "cvtbl", {"rbwl", 0x89 } }, -{ "orw2", {"rwmw", 0x8a } }, -{ "bispsw", {"rw", 0x8b } }, -{ "orl2", {"rlml", 0x8c } }, -{ "adwc", {"rlml", 0x8d } }, -{ "adda", {"rlml", 0x8e } }, -{ "blss", {"bb", 0x91 } }, -{ "cmps2", {"abab", 0x92 } }, -{ "ldfd", {"rl", 0x97 } }, -{ "orb3", {"rbrbwb", 0x98 } }, -{ "cvtbw", {"rbww", 0x99 } }, -{ "orw3", {"rwrwww", 0x9a } }, -{ "bicpsw", {"rw", 0x9b } }, -{ "orl3", {"rlrlwl", 0x9c } }, -{ "sbwc", {"rlml", 0x9d } }, -{ "suba", {"rlml", 0x9e } }, -{ "bgtru", {"bb", 0xa1 } }, -{ "cvdf", {"", 0xa6 } }, -{ "andb2", {"rbmb", 0xa8 } }, -{ "movzbl", {"rbwl", 0xa9 } }, -{ "andw2", {"rwmw", 0xaa } }, -{ "loadr", {"rwal", 0xab } }, -{ "andl2", {"rlml", 0xac } }, -{ "mtpr", {"rlrl", 0xad } }, -{ "ffs", {"rlwl", 0xae } }, -{ "blequ", {"bb", 0xb1 } }, -{ "negf", {"", 0xb6 } }, -{ "negd", {"", 0xb7 } }, -{ "andb3", {"rbrbwb", 0xb8 } }, -{ "movzbw", {"rbww", 0xb9 } }, -{ "andw3", {"rwrwww", 0xba } }, -{ "storer", {"rwal", 0xbb } }, -{ "andl3", {"rlrlwl", 0xbc } }, -{ "mfpr", {"rlwl", 0xbd } }, -{ "ffc", {"rlwl", 0xbe } }, -{ "calls", {"rbab", 0xbf } }, -{ "prober", {"rbabrl", 0xc0 } }, -{ "bvc", {"bb", 0xc1 } }, -{ "movs3", {"ababrw", 0xc2 } }, -{ "movzwl", {"rwwl", 0xc3 } }, -{ "addf", {"rl", 0xc6 } }, -{ "addd", {"rq", 0xc7 } }, -{ "xorb2", {"rbmb", 0xc8 } }, -{ "movob", {"rbwb", 0xc9 } }, -{ "xorw2", {"rwmw", 0xca } }, -{ "movow", {"rwww", 0xcb } }, -{ "xorl2", {"rlml", 0xcc } }, -{ "movpsl", {"wl", 0xcd } }, -{ "kcall", {"rw", 0xcf } }, -{ "probew", {"rbabrl", 0xd0 } }, -{ "bvs", {"bb", 0xd1 } }, -{ "cmps3", {"ababrw", 0xd2 } }, -{ "subf", {"rq", 0xd6 } }, -{ "subd", {"rq", 0xd7 } }, -{ "xorb3", {"rbrbwb", 0xd8 } }, -{ "pushb", {"rb", 0xd9 } }, -{ "xorw3", {"rwrwww", 0xda } }, -{ "pushw", {"rw", 0xdb } }, -{ "xorl3", {"rlrlwl", 0xdc } }, -{ "pushl", {"rl", 0xdd } }, -{ "insque", {"abab", 0xe0 } }, -{ "bcs", {"bb", 0xe1 } }, -{ "bgequ", {"bb", 0xe1 } }, -{ "mulf", {"rq", 0xe6 } }, -{ "muld", {"rq", 0xe7 } }, -{ "mnegb", {"rbwb", 0xe8 } }, -{ "movab", {"abwl", 0xe9 } }, -{ "mnegw", {"rwww", 0xea } }, -{ "movaw", {"awwl", 0xeb } }, -{ "mnegl", {"rlwl", 0xec } }, -{ "moval", {"alwl", 0xed } }, -{ "remque", {"ab", 0xf0 } }, -{ "bcc", {"bb", 0xf1 } }, -{ "blssu", {"bb", 0xf1 } }, -{ "divf", {"rq", 0xf6 } }, -{ "divd", {"rq", 0xf7 } }, -{ "movblk", {"alalrw", 0xf8 } }, -{ "pushab", {"ab", 0xf9 } }, -{ "pushaw", {"aw", 0xfb } }, -{ "casel", {"rlrlrl", 0xfc } }, -{ "pushal", {"al", 0xfd } }, -{ "callf", {"rbab", 0xfe } }, -{ "" , "" } /* empty is end sentinel */ - -}; diff --git a/include/opcode/tic30.h b/include/opcode/tic30.h deleted file mode 100644 index 3f4d307..0000000 --- a/include/opcode/tic30.h +++ /dev/null @@ -1,691 +0,0 @@ -/* tic30.h -- Header file for TI TMS320C30 opcode table - Copyright 1998, 2005, 2009, 2010 Free Software Foundation, Inc. - Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au) - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -/* FIXME: The opcode table should be in opcodes/tic30-opc.c, not in a - header file. */ - -#ifndef _TMS320_H_ -#define _TMS320_H_ - -struct _register -{ - char *name; - unsigned char opcode; - unsigned char regtype; -}; - -typedef struct _register reg; - -#define REG_Rn 0x01 -#define REG_ARn 0x02 -#define REG_DP 0x03 -#define REG_OTHER 0x04 - -static const reg tic30_regtab[] = { - { "r0", 0x00, REG_Rn }, - { "r1", 0x01, REG_Rn }, - { "r2", 0x02, REG_Rn }, - { "r3", 0x03, REG_Rn }, - { "r4", 0x04, REG_Rn }, - { "r5", 0x05, REG_Rn }, - { "r6", 0x06, REG_Rn }, - { "r7", 0x07, REG_Rn }, - { "ar0",0x08, REG_ARn }, - { "ar1",0x09, REG_ARn }, - { "ar2",0x0A, REG_ARn }, - { "ar3",0x0B, REG_ARn }, - { "ar4",0x0C, REG_ARn }, - { "ar5",0x0D, REG_ARn }, - { "ar6",0x0E, REG_ARn }, - { "ar7",0x0F, REG_ARn }, - { "dp", 0x10, REG_DP }, - { "ir0",0x11, REG_OTHER }, - { "ir1",0x12, REG_OTHER }, - { "bk", 0x13, REG_OTHER }, - { "sp", 0x14, REG_OTHER }, - { "st", 0x15, REG_OTHER }, - { "ie", 0x16, REG_OTHER }, - { "if", 0x17, REG_OTHER }, - { "iof",0x18, REG_OTHER }, - { "rs", 0x19, REG_OTHER }, - { "re", 0x1A, REG_OTHER }, - { "rc", 0x1B, REG_OTHER }, - { "R0", 0x00, REG_Rn }, - { "R1", 0x01, REG_Rn }, - { "R2", 0x02, REG_Rn }, - { "R3", 0x03, REG_Rn }, - { "R4", 0x04, REG_Rn }, - { "R5", 0x05, REG_Rn }, - { "R6", 0x06, REG_Rn }, - { "R7", 0x07, REG_Rn }, - { "AR0",0x08, REG_ARn }, - { "AR1",0x09, REG_ARn }, - { "AR2",0x0A, REG_ARn }, - { "AR3",0x0B, REG_ARn }, - { "AR4",0x0C, REG_ARn }, - { "AR5",0x0D, REG_ARn }, - { "AR6",0x0E, REG_ARn }, - { "AR7",0x0F, REG_ARn }, - { "DP", 0x10, REG_DP }, - { "IR0",0x11, REG_OTHER }, - { "IR1",0x12, REG_OTHER }, - { "BK", 0x13, REG_OTHER }, - { "SP", 0x14, REG_OTHER }, - { "ST", 0x15, REG_OTHER }, - { "IE", 0x16, REG_OTHER }, - { "IF", 0x17, REG_OTHER }, - { "IOF",0x18, REG_OTHER }, - { "RS", 0x19, REG_OTHER }, - { "RE", 0x1A, REG_OTHER }, - { "RC", 0x1B, REG_OTHER }, - { "", 0, 0 } -}; - -static const reg *const tic30_regtab_end - = tic30_regtab + sizeof(tic30_regtab)/sizeof(tic30_regtab[0]); - -/* Indirect Addressing Modes Modification Fields */ -/* Indirect Addressing with Displacement */ -#define PreDisp_Add 0x00 -#define PreDisp_Sub 0x01 -#define PreDisp_Add_Mod 0x02 -#define PreDisp_Sub_Mod 0x03 -#define PostDisp_Add_Mod 0x04 -#define PostDisp_Sub_Mod 0x05 -#define PostDisp_Add_Circ 0x06 -#define PostDisp_Sub_Circ 0x07 -/* Indirect Addressing with Index Register IR0 */ -#define PreIR0_Add 0x08 -#define PreIR0_Sub 0x09 -#define PreIR0_Add_Mod 0x0A -#define PreIR0_Sub_Mod 0x0B -#define PostIR0_Add_Mod 0x0C -#define PostIR0_Sub_Mod 0x0D -#define PostIR0_Add_Circ 0x0E -#define PostIR0_Sub_Circ 0x0F -/* Indirect Addressing with Index Register IR1 */ -#define PreIR1_Add 0x10 -#define PreIR1_Sub 0x11 -#define PreIR1_Add_Mod 0x12 -#define PreIR1_Sub_Mod 0x13 -#define PostIR1_Add_Mod 0x14 -#define PostIR1_Sub_Mod 0x15 -#define PostIR1_Add_Circ 0x16 -#define PostIR1_Sub_Circ 0x17 -/* Indirect Addressing (Special Cases) */ -#define IndirectOnly 0x18 -#define PostIR0_Add_BitRev 0x19 - -typedef struct { - char *syntax; - unsigned char modfield; - unsigned char displacement; -} ind_addr_type; - -#define IMPLIED_DISP 0x01 -#define DISP_REQUIRED 0x02 -#define NO_DISP 0x03 - -static const ind_addr_type tic30_indaddr_tab[] = { - { "*+ar", PreDisp_Add, IMPLIED_DISP }, - { "*-ar", PreDisp_Sub, IMPLIED_DISP }, - { "*++ar", PreDisp_Add_Mod, IMPLIED_DISP }, - { "*--ar", PreDisp_Sub_Mod, IMPLIED_DISP }, - { "*ar++", PostDisp_Add_Mod, IMPLIED_DISP }, - { "*ar--", PostDisp_Sub_Mod, IMPLIED_DISP }, - { "*ar++%", PostDisp_Add_Circ, IMPLIED_DISP }, - { "*ar--%", PostDisp_Sub_Circ, IMPLIED_DISP }, - { "*+ar()", PreDisp_Add, DISP_REQUIRED }, - { "*-ar()", PreDisp_Sub, DISP_REQUIRED }, - { "*++ar()", PreDisp_Add_Mod, DISP_REQUIRED }, - { "*--ar()", PreDisp_Sub_Mod, DISP_REQUIRED }, - { "*ar++()", PostDisp_Add_Mod, DISP_REQUIRED }, - { "*ar--()", PostDisp_Sub_Mod, DISP_REQUIRED }, - { "*ar++()%", PostDisp_Add_Circ, DISP_REQUIRED }, - { "*ar--()%", PostDisp_Sub_Circ, DISP_REQUIRED }, - { "*+ar(ir0)", PreIR0_Add, NO_DISP }, - { "*-ar(ir0)", PreIR0_Sub, NO_DISP }, - { "*++ar(ir0)", PreIR0_Add_Mod, NO_DISP }, - { "*--ar(ir0)", PreIR0_Sub_Mod, NO_DISP }, - { "*ar++(ir0)", PostIR0_Add_Mod, NO_DISP }, - { "*ar--(ir0)", PostIR0_Sub_Mod, NO_DISP }, - { "*ar++(ir0)%",PostIR0_Add_Circ, NO_DISP }, - { "*ar--(ir0)%",PostIR0_Sub_Circ, NO_DISP }, - { "*+ar(ir1)", PreIR1_Add, NO_DISP }, - { "*-ar(ir1)", PreIR1_Sub, NO_DISP }, - { "*++ar(ir1)", PreIR1_Add_Mod, NO_DISP }, - { "*--ar(ir1)", PreIR1_Sub_Mod, NO_DISP }, - { "*ar++(ir1)", PostIR1_Add_Mod, NO_DISP }, - { "*ar--(ir1)", PostIR1_Sub_Mod, NO_DISP }, - { "*ar++(ir1)%",PostIR1_Add_Circ, NO_DISP }, - { "*ar--(ir1)%",PostIR1_Sub_Circ, NO_DISP }, - { "*ar", IndirectOnly, NO_DISP }, - { "*ar++(ir0)b",PostIR0_Add_BitRev, NO_DISP }, - { "", 0,0 } -}; - -static const ind_addr_type *const tic30_indaddrtab_end - = tic30_indaddr_tab + sizeof(tic30_indaddr_tab)/sizeof(tic30_indaddr_tab[0]); - -/* Possible operand types */ -/* Register types */ -#define Rn 0x0001 -#define ARn 0x0002 -#define DPReg 0x0004 -#define OtherReg 0x0008 -/* Addressing mode types */ -#define Direct 0x0010 -#define Indirect 0x0020 -#define Imm16 0x0040 -#define Disp 0x0080 -#define Imm24 0x0100 -#define Abs24 0x0200 -/* 3 operand addressing mode types */ -#define op3T1 0x0400 -#define op3T2 0x0800 -/* Interrupt vector */ -#define IVector 0x1000 -/* Not required */ -#define NotReq 0x2000 - -#define GAddr1 Rn | Direct | Indirect | Imm16 -#define GAddr2 GAddr1 | AllReg -#define TAddr1 op3T1 | Rn | Indirect -#define TAddr2 op3T2 | Rn | Indirect -#define Reg Rn | ARn -#define AllReg Reg | DPReg | OtherReg - -typedef struct _template -{ - char *name; - unsigned int operands; /* how many operands */ - unsigned int base_opcode; /* base_opcode is the fundamental opcode byte */ - /* the bits in opcode_modifier are used to generate the final opcode from - the base_opcode. These bits also are used to detect alternate forms of - the same instruction */ - unsigned int opcode_modifier; - - /* opcode_modifier bits: */ -#define AddressMode 0x00600000 -#define PCRel 0x02000000 -#define StackOp 0x001F0000 -#define Rotate StackOp - - /* operand_types[i] describes the type of operand i. This is made - by OR'ing together all of the possible type masks. (e.g. - 'operand_types[i] = Reg|Imm' specifies that operand i can be - either a register or an immediate operand */ - unsigned int operand_types[3]; - /* This defines the number type of an immediate argument to an instruction. */ - int imm_arg_type; -#define Imm_None 0 -#define Imm_Float 1 -#define Imm_SInt 2 -#define Imm_UInt 3 -} -insn_template; - -static const insn_template tic30_optab[] = { - { "absf" ,2,0x00000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "absi" ,2,0x00800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "addc" ,2,0x01000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "addc3" ,3,0x20000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None }, - { "addf" ,2,0x01800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "addf3" ,3,0x20800000,AddressMode, { TAddr1, TAddr2, Rn }, Imm_None }, - { "addi" ,2,0x02000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "addi3" ,3,0x21000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None }, - { "and" ,2,0x02800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt }, - { "and3" ,3,0x21800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None }, - { "andn" ,2,0x03000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt }, - { "andn3" ,3,0x22000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None }, - { "ash" ,2,0x03800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ash3" ,3,0x22800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None }, - { "b" ,1,0x68000000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bu" ,1,0x68000000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "blo" ,1,0x68010000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bls" ,1,0x68020000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bhi" ,1,0x68030000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bhs" ,1,0x68040000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "beq" ,1,0x68050000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bne" ,1,0x68060000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "blt" ,1,0x68070000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "ble" ,1,0x68080000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bgt" ,1,0x68090000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bge" ,1,0x680A0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bz" ,1,0x68050000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnz" ,1,0x68060000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bp" ,1,0x68090000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bn" ,1,0x68070000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnn" ,1,0x680A0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnv" ,1,0x680C0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bv" ,1,0x680D0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnuf" ,1,0x680E0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "buf" ,1,0x680F0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnc" ,1,0x68040000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bc" ,1,0x68010000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnlv" ,1,0x68100000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "blv" ,1,0x68110000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnluf" ,1,0x68120000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bluf" ,1,0x68130000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bzuf" ,1,0x68140000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bd" ,1,0x68200000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bud" ,1,0x68200000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "blod" ,1,0x68210000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "blsd" ,1,0x68220000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bhid" ,1,0x68230000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bhsd" ,1,0x68240000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "beqd" ,1,0x68250000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bned" ,1,0x68260000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bltd" ,1,0x68270000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bled" ,1,0x68280000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bgtd" ,1,0x68290000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bged" ,1,0x682A0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bzd" ,1,0x68250000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnzd" ,1,0x68260000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bpd" ,1,0x68290000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnd" ,1,0x68270000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnnd" ,1,0x682A0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnvd" ,1,0x682C0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bvd" ,1,0x682D0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnufd" ,1,0x682E0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bufd" ,1,0x682F0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bncd" ,1,0x68240000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bcd" ,1,0x68210000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnlvd" ,1,0x68300000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "blvd" ,1,0x68310000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bnlufd" ,1,0x68320000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "blufd" ,1,0x68330000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "bzufd" ,1,0x68340000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None }, - { "br" ,1,0x60000000,0, { Imm24, 0, 0 }, Imm_UInt }, - { "brd" ,1,0x61000000,0, { Imm24, 0, 0 }, Imm_UInt }, - { "call" ,1,0x62000000,0, { Imm24, 0, 0 }, Imm_UInt }, - { "callu" ,1,0x70000000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "calllo" ,1,0x70010000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callls" ,1,0x70020000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callhi" ,1,0x70030000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callhs" ,1,0x70040000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "calleq" ,1,0x70050000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callne" ,1,0x70060000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "calllt" ,1,0x70070000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callle" ,1,0x70080000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callgt" ,1,0x70090000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callge" ,1,0x700A0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callz" ,1,0x70050000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callnz" ,1,0x70060000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callp" ,1,0x70090000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "calln" ,1,0x70070000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callnn" ,1,0x700A0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callnv" ,1,0x700C0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callv" ,1,0x700D0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callnuf",1,0x700E0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "calluf" ,1,0x700F0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callnc" ,1,0x70040000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callc" ,1,0x70010000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callnlv",1,0x70100000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "calllv" ,1,0x70110000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callnluf",1,0x70120000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callluf",1,0x70130000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "callzuf",1,0x70140000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt }, - { "cmpf" ,2,0x04000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "cmpf3" ,2,0x23000000,AddressMode, { TAddr1, TAddr2, 0 }, Imm_None }, - { "cmpi" ,2,0x04800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "cmpi3" ,2,0x23800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, 0 }, Imm_None }, - { "db" ,2,0x6C000000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbu" ,2,0x6C000000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dblo" ,2,0x6C010000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbls" ,2,0x6C020000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbhi" ,2,0x6C030000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbhs" ,2,0x6C040000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbeq" ,2,0x6C050000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbne" ,2,0x6C060000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dblt" ,2,0x6C070000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dble" ,2,0x6C080000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbgt" ,2,0x6C090000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbge" ,2,0x6C0A0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbz" ,2,0x6C050000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnz" ,2,0x6C060000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbp" ,2,0x6C090000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbn" ,2,0x6C070000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnn" ,2,0x6C0A0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnv" ,2,0x6C0C0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbv" ,2,0x6C0D0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnuf" ,2,0x6C0E0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbuf" ,2,0x6C0F0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnc" ,2,0x6C040000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbc" ,2,0x6C010000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnlv" ,2,0x6C100000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dblv" ,2,0x6C110000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnluf" ,2,0x6C120000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbluf" ,2,0x6C130000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbzuf" ,2,0x6C140000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbd" ,2,0x6C200000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbud" ,2,0x6C200000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dblod" ,2,0x6C210000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dblsd" ,2,0x6C220000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbhid" ,2,0x6C230000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbhsd" ,2,0x6C240000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbeqd" ,2,0x6C250000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbned" ,2,0x6C260000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbltd" ,2,0x6C270000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbled" ,2,0x6C280000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbgtd" ,2,0x6C290000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbged" ,2,0x6C2A0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbzd" ,2,0x6C250000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnzd" ,2,0x6C260000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbpd" ,2,0x6C290000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnd" ,2,0x6C270000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnnd" ,2,0x6C2A0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnvd" ,2,0x6C2C0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbvd" ,2,0x6C2D0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnufd" ,2,0x6C2E0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbufd" ,2,0x6C2F0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbncd" ,2,0x6C240000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbcd" ,2,0x6C210000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnlvd" ,2,0x6C300000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dblvd" ,2,0x6C310000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbnlufd",2,0x6C320000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dblufd" ,2,0x6C330000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "dbzufd" ,2,0x6C340000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None }, - { "fix" ,2,0x05000000,AddressMode, { GAddr1, AllReg, 0 }, Imm_Float }, - { "float" ,2,0x05800000,AddressMode, { GAddr2, Rn, 0 }, Imm_SInt }, - { "iack" ,1,0x1B000000,AddressMode, { Direct|Indirect, 0, 0 }, Imm_None }, - { "idle" ,0,0x06000000,0, { 0, 0, 0 }, Imm_None }, - { "idle2" ,0,0x06000001,0, { 0, 0, 0 }, Imm_None }, /* LC31 Only */ - { "lde" ,2,0x06800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldf" ,2,0x07000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfu" ,2,0x40000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldflo" ,2,0x40800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfls" ,2,0x41000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfhi" ,2,0x41800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfhs" ,2,0x42000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfeq" ,2,0x42800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfne" ,2,0x43000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldflt" ,2,0x43800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfle" ,2,0x44000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfgt" ,2,0x44800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfge" ,2,0x45000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfz" ,2,0x42800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfnz" ,2,0x43000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfp" ,2,0x44800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfn" ,2,0x43800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfnn" ,2,0x45000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfnv" ,2,0x46000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfv" ,2,0x46800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfnuf" ,2,0x47000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfuf" ,2,0x47800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfnc" ,2,0x42000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfc" ,2,0x40800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfnlv" ,2,0x48000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldflv" ,2,0x48800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfnluf",2,0x49000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfluf" ,2,0x49800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfzuf" ,2,0x4A000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldfi" ,2,0x07800000,AddressMode, { Direct|Indirect, Rn, 0 }, Imm_None }, - { "ldi" ,2,0x08000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldiu" ,2,0x50000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldilo" ,2,0x50800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldils" ,2,0x51000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldihi" ,2,0x51800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldihs" ,2,0x52000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldieq" ,2,0x52800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldine" ,2,0x53000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldilt" ,2,0x53800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldile" ,2,0x54000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldigt" ,2,0x54800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldige" ,2,0x55000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldiz" ,2,0x52800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldinz" ,2,0x53000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldip" ,2,0x54800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldin" ,2,0x53800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldinn" ,2,0x55000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldinv" ,2,0x56000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldiv" ,2,0x56800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldinuf" ,2,0x57000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldiuf" ,2,0x57800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldinc" ,2,0x52000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldic" ,2,0x50800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldinlv" ,2,0x58000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldilv" ,2,0x58800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldinluf",2,0x59000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldiluf" ,2,0x59800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldizuf" ,2,0x5A000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "ldii" ,2,0x08800000,AddressMode, { Direct|Indirect, AllReg, 0 }, Imm_None }, - { "ldm" ,2,0x09000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "ldp" ,2,0x08700000,0, { Abs24|Direct, DPReg|NotReq, 0 }, Imm_UInt }, - { "lopower",0,0x10800001,0, { 0, 0, 0 }, Imm_None }, /* LC31 Only */ - { "lsh" ,2,0x09800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt }, - { "lsh3" ,3,0x24000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None }, - { "maxspeed",0,0x10800000,0, { 0, 0, 0 }, Imm_None }, /* LC31 Only */ - { "mpyf" ,2,0x0A000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "mpyf3" ,3,0x24800000,AddressMode, { TAddr1, TAddr2, Rn }, Imm_None }, - { "mpyi" ,2,0x0A800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "mpyi3" ,3,0x25000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None }, - { "negb" ,2,0x0B000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "negf" ,2,0x0B800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "negi" ,2,0x0C000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "nop" ,1,0x0C800000,AddressMode, { AllReg|Indirect|NotReq, 0, 0 }, Imm_None }, - { "norm" ,2,0x0D000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, /*Check another source*/ - { "not" ,2,0x0D800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt }, - { "or" ,2,0x10000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt }, - { "or3" ,3,0x25800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None }, - { "pop" ,1,0x0E200000,StackOp, { AllReg, 0, 0 }, Imm_None }, - { "popf" ,1,0x0EA00000,StackOp, { Rn, 0, 0 }, Imm_None }, - { "push" ,1,0x0F200000,StackOp, { AllReg, 0, 0 }, Imm_None }, - { "pushf" ,1,0x0FA00000,StackOp, { Rn, 0, 0 }, Imm_None }, - { "reti" ,0,0x78000000,0, { 0, 0, 0 }, Imm_None }, - { "retiu" ,0,0x78000000,0, { 0, 0, 0 }, Imm_None }, - { "retilo" ,0,0x78010000,0, { 0, 0, 0 }, Imm_None }, - { "retils" ,0,0x78020000,0, { 0, 0, 0 }, Imm_None }, - { "retihi" ,0,0x78030000,0, { 0, 0, 0 }, Imm_None }, - { "retihs" ,0,0x78040000,0, { 0, 0, 0 }, Imm_None }, - { "retieq" ,0,0x78050000,0, { 0, 0, 0 }, Imm_None }, - { "retine" ,0,0x78060000,0, { 0, 0, 0 }, Imm_None }, - { "retilt" ,0,0x78070000,0, { 0, 0, 0 }, Imm_None }, - { "retile" ,0,0x78080000,0, { 0, 0, 0 }, Imm_None }, - { "retigt" ,0,0x78090000,0, { 0, 0, 0 }, Imm_None }, - { "retige" ,0,0x780A0000,0, { 0, 0, 0 }, Imm_None }, - { "retiz" ,0,0x78050000,0, { 0, 0, 0 }, Imm_None }, - { "retinz" ,0,0x78060000,0, { 0, 0, 0 }, Imm_None }, - { "retip" ,0,0x78090000,0, { 0, 0, 0 }, Imm_None }, - { "retin" ,0,0x78070000,0, { 0, 0, 0 }, Imm_None }, - { "retinn" ,0,0x780A0000,0, { 0, 0, 0 }, Imm_None }, - { "retinv" ,0,0x780C0000,0, { 0, 0, 0 }, Imm_None }, - { "retiv" ,0,0x780D0000,0, { 0, 0, 0 }, Imm_None }, - { "retinuf",0,0x780E0000,0, { 0, 0, 0 }, Imm_None }, - { "retiuf" ,0,0x780F0000,0, { 0, 0, 0 }, Imm_None }, - { "retinc" ,0,0x78040000,0, { 0, 0, 0 }, Imm_None }, - { "retic" ,0,0x78010000,0, { 0, 0, 0 }, Imm_None }, - { "retinlv",0,0x78100000,0, { 0, 0, 0 }, Imm_None }, - { "retilv" ,0,0x78110000,0, { 0, 0, 0 }, Imm_None }, - { "retinluf",0,0x78120000,0, { 0, 0, 0 }, Imm_None }, - { "retiluf",0,0x78130000,0, { 0, 0, 0 }, Imm_None }, - { "retizuf",0,0x78140000,0, { 0, 0, 0 }, Imm_None }, - { "rets" ,0,0x78800000,0, { 0, 0, 0 }, Imm_None }, - { "retsu" ,0,0x78800000,0, { 0, 0, 0 }, Imm_None }, - { "retslo" ,0,0x78810000,0, { 0, 0, 0 }, Imm_None }, - { "retsls" ,0,0x78820000,0, { 0, 0, 0 }, Imm_None }, - { "retshi" ,0,0x78830000,0, { 0, 0, 0 }, Imm_None }, - { "retshs" ,0,0x78840000,0, { 0, 0, 0 }, Imm_None }, - { "retseq" ,0,0x78850000,0, { 0, 0, 0 }, Imm_None }, - { "retsne" ,0,0x78860000,0, { 0, 0, 0 }, Imm_None }, - { "retslt" ,0,0x78870000,0, { 0, 0, 0 }, Imm_None }, - { "retsle" ,0,0x78880000,0, { 0, 0, 0 }, Imm_None }, - { "retsgt" ,0,0x78890000,0, { 0, 0, 0 }, Imm_None }, - { "retsge" ,0,0x788A0000,0, { 0, 0, 0 }, Imm_None }, - { "retsz" ,0,0x78850000,0, { 0, 0, 0 }, Imm_None }, - { "retsnz" ,0,0x78860000,0, { 0, 0, 0 }, Imm_None }, - { "retsp" ,0,0x78890000,0, { 0, 0, 0 }, Imm_None }, - { "retsn" ,0,0x78870000,0, { 0, 0, 0 }, Imm_None }, - { "retsnn" ,0,0x788A0000,0, { 0, 0, 0 }, Imm_None }, - { "retsnv" ,0,0x788C0000,0, { 0, 0, 0 }, Imm_None }, - { "retsv" ,0,0x788D0000,0, { 0, 0, 0 }, Imm_None }, - { "retsnuf",0,0x788E0000,0, { 0, 0, 0 }, Imm_None }, - { "retsuf" ,0,0x788F0000,0, { 0, 0, 0 }, Imm_None }, - { "retsnc" ,0,0x78840000,0, { 0, 0, 0 }, Imm_None }, - { "retsc" ,0,0x78810000,0, { 0, 0, 0 }, Imm_None }, - { "retsnlv",0,0x78900000,0, { 0, 0, 0 }, Imm_None }, - { "retslv" ,0,0x78910000,0, { 0, 0, 0 }, Imm_None }, - { "retsnluf",0,0x78920000,0, { 0, 0, 0 }, Imm_None }, - { "retsluf",0,0x78930000,0, { 0, 0, 0 }, Imm_None }, - { "retszuf",0,0x78940000,0, { 0, 0, 0 }, Imm_None }, - { "rnd" ,2,0x11000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "rol" ,1,0x11E00001,Rotate, { AllReg, 0, 0 }, Imm_None }, - { "rolc" ,1,0x12600001,Rotate, { AllReg, 0, 0 }, Imm_None }, - { "ror" ,1,0x12E0FFFF,Rotate, { AllReg, 0, 0 }, Imm_None }, - { "rorc" ,1,0x1360FFFF,Rotate, { AllReg, 0, 0 }, Imm_None }, - { "rptb" ,1,0x64000000,0, { Imm24, 0, 0 }, Imm_UInt }, - { "rpts" ,1,0x139B0000,AddressMode, { GAddr2, 0, 0 }, Imm_UInt }, - { "sigi" ,0,0x16000000,0, { 0, 0, 0 }, Imm_None }, - { "stf" ,2,0x14000000,AddressMode, { Rn, Direct|Indirect, 0 }, Imm_Float }, - { "stfi" ,2,0x14800000,AddressMode, { Rn, Direct|Indirect, 0 }, Imm_Float }, - { "sti" ,2,0x15000000,AddressMode, { AllReg, Direct|Indirect, 0 }, Imm_SInt }, - { "stii" ,2,0x15800000,AddressMode, { AllReg, Direct|Indirect, 0 }, Imm_SInt }, - { "subb" ,2,0x16800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "subb3" ,3,0x26000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None }, - { "subc" ,2,0x17000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt }, - { "subf" ,2,0x17800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "subf3" ,3,0x26800000,AddressMode, { TAddr1, TAddr2, Rn }, Imm_None }, - { "subi" ,2,0x18000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "subi3" ,3,0x27000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None }, - { "subrb" ,2,0x18800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "subrf" ,2,0x19000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, - { "subri" ,2,0x19800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt }, - { "swi" ,0,0x66000000,0, { 0, 0, 0 }, Imm_None }, - { "trap" ,1,0x74800020,0, { IVector, 0, 0 }, Imm_None }, - { "trapu" ,1,0x74800020,0, { IVector, 0, 0 }, Imm_None }, - { "traplo" ,1,0x74810020,0, { IVector, 0, 0 }, Imm_None }, - { "trapls" ,1,0x74820020,0, { IVector, 0, 0 }, Imm_None }, - { "traphi" ,1,0x74830020,0, { IVector, 0, 0 }, Imm_None }, - { "traphs" ,1,0x74840020,0, { IVector, 0, 0 }, Imm_None }, - { "trapeq" ,1,0x74850020,0, { IVector, 0, 0 }, Imm_None }, - { "trapne" ,1,0x74860020,0, { IVector, 0, 0 }, Imm_None }, - { "traplt" ,1,0x74870020,0, { IVector, 0, 0 }, Imm_None }, - { "traple" ,1,0x74880020,0, { IVector, 0, 0 }, Imm_None }, - { "trapgt" ,1,0x74890020,0, { IVector, 0, 0 }, Imm_None }, - { "trapge" ,1,0x748A0020,0, { IVector, 0, 0 }, Imm_None }, - { "trapz" ,1,0x74850020,0, { IVector, 0, 0 }, Imm_None }, - { "trapnz" ,1,0x74860020,0, { IVector, 0, 0 }, Imm_None }, - { "trapp" ,1,0x74890020,0, { IVector, 0, 0 }, Imm_None }, - { "trapn" ,1,0x74870020,0, { IVector, 0, 0 }, Imm_None }, - { "trapnn" ,1,0x748A0020,0, { IVector, 0, 0 }, Imm_None }, - { "trapnv" ,1,0x748C0020,0, { IVector, 0, 0 }, Imm_None }, - { "trapv" ,1,0x748D0020,0, { IVector, 0, 0 }, Imm_None }, - { "trapnuf",1,0x748E0020,0, { IVector, 0, 0 }, Imm_None }, - { "trapuf" ,1,0x748F0020,0, { IVector, 0, 0 }, Imm_None }, - { "trapnc" ,1,0x74840020,0, { IVector, 0, 0 }, Imm_None }, - { "trapc" ,1,0x74810020,0, { IVector, 0, 0 }, Imm_None }, - { "trapnlv",1,0x74900020,0, { IVector, 0, 0 }, Imm_None }, - { "traplv" ,1,0x74910020,0, { IVector, 0, 0 }, Imm_None }, - { "trapnluf",1,0x74920020,0, { IVector, 0, 0 }, Imm_None }, - { "trapluf",1,0x74930020,0, { IVector, 0, 0 }, Imm_None }, - { "trapzuf",1,0x74940020,0, { IVector, 0, 0 }, Imm_None }, - { "tstb" ,2,0x1A000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt }, - { "tstb3" ,2,0x27800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, 0 }, Imm_None }, - { "xor" ,2,0x1A800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt }, - { "xor3" ,3,0x28000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None }, - { "" ,0,0x00000000,0, { 0, 0, 0 }, 0 } -}; - -static const insn_template *const tic30_optab_end = - tic30_optab + sizeof(tic30_optab)/sizeof(tic30_optab[0]); - -typedef struct { - char *name; - unsigned int operands_1; - unsigned int operands_2; - unsigned int base_opcode; - unsigned int operand_types[2][3]; - /* Which operand fits into which part of the final opcode word. */ - int oporder; -} partemplate; - -/* oporder defines - not very descriptive. */ -#define OO_4op1 0 -#define OO_4op2 1 -#define OO_4op3 2 -#define OO_5op1 3 -#define OO_5op2 4 -#define OO_PField 5 - -static const partemplate tic30_paroptab[] = { - { "q_absf_stf", 2,2,0xC8000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } }, - OO_4op1 }, - { "q_absi_sti", 2,2,0xCA000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } }, - OO_4op1 }, - { "q_addf3_stf", 3,2,0xCC000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } }, - OO_5op1 }, - { "q_addi3_sti", 3,2,0xCE000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } }, - OO_5op1 }, - { "q_and3_sti", 3,2,0xD0000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } }, - OO_5op1 }, - { "q_ash3_sti", 3,2,0xD2000000, { { Rn, Indirect, Rn }, { Rn, Indirect, 0 } }, - OO_5op2 }, - { "q_fix_sti", 2,2,0xD4000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } }, - OO_4op1 }, - { "q_float_stf", 2,2,0xD6000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } }, - OO_4op1 }, - { "q_ldf_ldf", 2,2,0xC4000000, { { Indirect, Rn, 0 }, { Indirect, Rn, 0 } }, - OO_4op2 }, - { "q_ldf_stf", 2,2,0xD8000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } }, - OO_4op1 }, - { "q_ldi_ldi", 2,2,0xC6000000, { { Indirect, Rn, 0 }, { Indirect, Rn, 0 } }, - OO_4op2 }, - { "q_ldi_sti", 2,2,0xDA000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } }, - OO_4op1 }, - { "q_lsh3_sti", 3,2,0xDC000000, { { Rn, Indirect, Rn }, { Rn, Indirect, 0 } }, - OO_5op2 }, - { "q_mpyf3_addf3",3,3,0x80000000, { { Rn | Indirect, Rn | Indirect, Rn }, - { Rn | Indirect, Rn | Indirect, Rn } }, OO_PField }, - { "q_mpyf3_stf", 3,2,0xDE000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } }, - OO_5op1 }, - { "q_mpyf3_subf3",3,3,0x84000000, { { Rn | Indirect, Rn | Indirect, Rn }, - { Rn | Indirect, Rn | Indirect, Rn } }, OO_PField }, - { "q_mpyi3_addi3",3,3,0x88000000, { { Rn | Indirect, Rn | Indirect, Rn }, - { Rn | Indirect, Rn | Indirect, Rn } }, OO_PField }, - { "q_mpyi3_sti", 3,2,0xE0000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } }, - OO_5op1 }, - { "q_mpyi3_subi3",3,3,0x8C000000, { { Rn | Indirect, Rn | Indirect, Rn }, - { Rn | Indirect, Rn | Indirect, Rn } }, OO_PField }, - { "q_negf_stf", 2,2,0xE2000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } }, - OO_4op1 }, - { "q_negi_sti", 2,2,0xE4000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } }, - OO_4op1 }, - { "q_not_sti", 2,2,0xE6000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } }, - OO_4op1 }, - { "q_or3_sti", 3,2,0xE8000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } }, - OO_5op1 }, - { "q_stf_stf", 2,2,0xC0000000, { { Rn, Indirect, 0 }, { Rn, Indirect, 0 } }, - OO_4op3 }, - { "q_sti_sti", 2,2,0xC2000000, { { Rn, Indirect, 0 }, { Rn, Indirect, 0 } }, - OO_4op3 }, - { "q_subf3_stf", 3,2,0xEA000000, { { Rn, Indirect, Rn }, { Rn, Indirect, 0 } }, - OO_5op2 }, - { "q_subi3_sti", 3,2,0xEC000000, { { Rn, Indirect, Rn }, { Rn, Indirect, 0 } }, - OO_5op2 }, - { "q_xor3_sti", 3,2,0xEE000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } }, - OO_5op1 }, - { "", 0,0,0x00000000, { { 0, 0, 0 }, { 0, 0, 0 } }, 0 } -}; - -static const partemplate *const tic30_paroptab_end = - tic30_paroptab + sizeof(tic30_paroptab)/sizeof(tic30_paroptab[0]); - -#endif diff --git a/include/opcode/tic4x.h b/include/opcode/tic4x.h deleted file mode 100644 index 6f16fcb..0000000 --- a/include/opcode/tic4x.h +++ /dev/null @@ -1,1079 +0,0 @@ -/* Table of opcodes for the Texas Instruments TMS320C[34]X family. - - Copyright (C) 2002, 2003, 2010 Free Software Foundation. - - Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define IS_CPU_TIC3X(v) ((v) == 30 || (v) == 31 || (v) == 32 || (v) == 33) -#define IS_CPU_TIC4X(v) ((v) == 0 || (v) == 40 || (v) == 44) - -/* Define some bitfield extraction/insertion macros. */ -#define EXTR(inst, m, l) ((inst) << (31 - (m)) >> (31 - ((m) - (l)))) -#define EXTRU(inst, m, l) EXTR ((unsigned long)(inst), (m), (l)) -#define EXTRS(inst, m, l) EXTR ((long)(inst), (m), (l)) -#define INSERTU(inst, val, m, l) (inst |= ((val) << (l))) -#define INSERTS(inst, val, m, l) INSERTU (inst, ((val) & ((1 << ((m) - (l) + 1)) - 1)), m, l) - -/* Define register numbers. */ -typedef enum - { - REG_R0, REG_R1, REG_R2, REG_R3, - REG_R4, REG_R5, REG_R6, REG_R7, - REG_AR0, REG_AR1, REG_AR2, REG_AR3, - REG_AR4, REG_AR5, REG_AR6, REG_AR7, - REG_DP, REG_IR0, REG_IR1, REG_BK, - REG_SP, REG_ST, REG_DIE, REG_IIE, - REG_IIF, REG_RS, REG_RE, REG_RC, - REG_R8, REG_R9, REG_R10, REG_R11, - REG_IVTP, REG_TVTP - } -c4x_reg_t; - -/* Note that the actual register numbers for IVTP is 0 and TVTP is 1. */ - -#define REG_IE REG_DIE /* C3x only */ -#define REG_IF REG_IIE /* C3x only */ -#define REG_IOF REG_IIF /* C3x only */ - -#define TIC3X_REG_MAX REG_RC -#define TIC4X_REG_MAX REG_TVTP - -/* Register table size including C4x expansion regs. */ -#define REG_TABLE_SIZE (TIC4X_REG_MAX + 1) - -struct tic4x_register -{ - char * name; - unsigned long regno; -}; - -typedef struct tic4x_register tic4x_register_t; - -/* We could store register synonyms here. */ -static const tic4x_register_t tic3x_registers[] = -{ - {"f0", REG_R0}, - {"r0", REG_R0}, - {"f1", REG_R1}, - {"r1", REG_R1}, - {"f2", REG_R2}, - {"r2", REG_R2}, - {"f3", REG_R3}, - {"r3", REG_R3}, - {"f4", REG_R4}, - {"r4", REG_R4}, - {"f5", REG_R5}, - {"r5", REG_R5}, - {"f6", REG_R6}, - {"r6", REG_R6}, - {"f7", REG_R7}, - {"r7", REG_R7}, - {"ar0", REG_AR0}, - {"ar1", REG_AR1}, - {"ar2", REG_AR2}, - {"ar3", REG_AR3}, - {"ar4", REG_AR4}, - {"ar5", REG_AR5}, - {"ar6", REG_AR6}, - {"ar7", REG_AR7}, - {"dp", REG_DP}, - {"ir0", REG_IR0}, - {"ir1", REG_IR1}, - {"bk", REG_BK}, - {"sp", REG_SP}, - {"st", REG_ST}, - {"ie", REG_IE}, - {"if", REG_IF}, - {"iof", REG_IOF}, - {"rs", REG_RS}, - {"re", REG_RE}, - {"rc", REG_RC}, - {"", 0} -}; - -const unsigned int tic3x_num_registers = (((sizeof tic3x_registers) / (sizeof tic3x_registers[0])) - 1); - -/* Define C4x registers in addition to C3x registers. */ -static const tic4x_register_t tic4x_registers[] = -{ - {"die", REG_DIE}, /* Clobbers C3x REG_IE */ - {"iie", REG_IIE}, /* Clobbers C3x REG_IF */ - {"iif", REG_IIF}, /* Clobbers C3x REG_IOF */ - {"f8", REG_R8}, - {"r8", REG_R8}, - {"f9", REG_R9}, - {"r9", REG_R9}, - {"f10", REG_R10}, - {"r10", REG_R10}, - {"f11", REG_R11}, - {"r11", REG_R11}, - {"ivtp", REG_IVTP}, - {"tvtp", REG_TVTP}, - {"", 0} -}; - -const unsigned int tic4x_num_registers = (((sizeof tic4x_registers) / (sizeof tic4x_registers[0])) - 1); - -struct tic4x_cond -{ - char * name; - unsigned long cond; -}; - -typedef struct tic4x_cond tic4x_cond_t; - -/* Define conditional branch/load suffixes. Put desired form for - disassembler last. */ -static const tic4x_cond_t tic4x_conds[] = -{ - { "u", 0x00 }, - { "c", 0x01 }, { "lo", 0x01 }, - { "ls", 0x02 }, - { "hi", 0x03 }, - { "nc", 0x04 }, { "hs", 0x04 }, - { "z", 0x05 }, { "eq", 0x05 }, - { "nz", 0x06 }, { "ne", 0x06 }, - { "n", 0x07 }, { "l", 0x07 }, { "lt", 0x07 }, - { "le", 0x08 }, - { "p", 0x09 }, { "gt", 0x09 }, - { "nn", 0x0a }, { "ge", 0x0a }, - { "nv", 0x0c }, - { "v", 0x0d }, - { "nuf", 0x0e }, - { "uf", 0x0f }, - { "nlv", 0x10 }, - { "lv", 0x11 }, - { "nluf", 0x12 }, - { "luf", 0x13 }, - { "zuf", 0x14 }, - /* Dummy entry, not included in num_conds. This - lets code examine entry i+1 without checking - if we've run off the end of the table. */ - { "", 0x0} -}; - -const unsigned int tic4x_num_conds = (((sizeof tic4x_conds) / (sizeof tic4x_conds[0])) - 1); - -struct tic4x_indirect -{ - char * name; - unsigned long modn; -}; - -typedef struct tic4x_indirect tic4x_indirect_t; - -/* Define indirect addressing modes where: - d displacement (signed) - y ir0 - z ir1 */ - -static const tic4x_indirect_t tic4x_indirects[] = -{ - { "*+a(d)", 0x00 }, - { "*-a(d)", 0x01 }, - { "*++a(d)", 0x02 }, - { "*--a(d)", 0x03 }, - { "*a++(d)", 0x04 }, - { "*a--(d)", 0x05 }, - { "*a++(d)%", 0x06 }, - { "*a--(d)%", 0x07 }, - { "*+a(y)", 0x08 }, - { "*-a(y)", 0x09 }, - { "*++a(y)", 0x0a }, - { "*--a(y)", 0x0b }, - { "*a++(y)", 0x0c }, - { "*a--(y)", 0x0d }, - { "*a++(y)%", 0x0e }, - { "*a--(y)%", 0x0f }, - { "*+a(z)", 0x10 }, - { "*-a(z)", 0x11 }, - { "*++a(z)", 0x12 }, - { "*--a(z)", 0x13 }, - { "*a++(z)", 0x14 }, - { "*a--(z)", 0x15 }, - { "*a++(z)%", 0x16 }, - { "*a--(z)%", 0x17 }, - { "*a", 0x18 }, - { "*a++(y)b", 0x19 }, - /* Dummy entry, not included in num_indirects. This - lets code examine entry i+1 without checking - if we've run off the end of the table. */ - { "", 0x0} -}; - -#define TIC3X_MODN_MAX 0x19 - -const unsigned int tic4x_num_indirects = (((sizeof tic4x_indirects) / (sizeof tic4x_indirects[0])) - 1); - -/* Instruction template. */ -struct tic4x_inst -{ - char * name; - unsigned long opcode; - unsigned long opmask; - char * args; - unsigned long oplevel; -}; - -typedef struct tic4x_inst tic4x_inst_t; - -/* Opcode infix - B condition 16--20 U,C,Z,LO,HI, etc. - C condition 23--27 U,C,Z,LO,HI, etc. - - Arguments - , required arg follows - ; optional arg follows - - Argument types bits [classes] - example - ----------------------------------------------------------- - * indirect (all) 0--15 [A,AB,AU,AF,A2,A3,A6,A7,AY,B,BA,BB,BI,B6,B7] - *+AR0(5), *++AR0(IR0) - # direct (for LDP) 0--15 [Z] - @start, start - @ direct 0--15 [A,AB,AU,AF,A3,A6,A7,AY,B,BA,BB,BI,B6,B7] - @start, start - A address register 22--24 [D] - AR0, AR7 - B unsigned integer 0--23 [I,I2] - @start, start (absolute on C3x, relative on C4x) - C indirect (disp - C4x) 0--7 [S,SC,S2,T,TC,T2,T2C] - *+AR0(5) - E register (all) 0--7 [T,TC,T2,T2C] - R0, R7, R11, AR0, DP - e register (0-11) 0--7 [S,SC,S2] - R0, R7, R11 - F short float immediate 0--15 [AF,B,BA,BB] - 3.5, 0e-3.5e-1 - G register (all) 8--15 [T,TC,T2,T2C] - R0, R7, R11, AR0, DP - g register (0-11) 0--7 [S,SC,S2] - R0, R7, R11 - H register (0-7) 18--16 [LS,M,P,Q] - R0, R7 - I indirect (no disp) 0--7 [S,SC,S2,T,TC,T2,T2C] - *+AR0(1), *+AR0(IR0) - i indirect (enhanced) 0--7 [LL,LS,M,P,Q,QC] - *+AR0(1), R5 - J indirect (no disp) 8--15 [LL,LS,P,Q,QC,S,SC,S2,T,TC,T2,T2C] - *+AR0(1), *+AR0(IR0) - j indirect (enhanced) 8--15 [M] - *+AR0(1), R5 - K register 19--21 [LL,M,Q,QC] - R0, R7 - L register 22--24 [LL,LS,P,Q,QC] - R0, R7 - M register (R2,R3) 22--22 [M] R2, R3 - N register (R0,R1) 23--23 [M] R0, R1 - O indirect(disp - C4x) 8--15 [S,SC,S2,T,TC,T2] - *+AR0(5) - P displacement (PC Rel) 0--15 [D,J,JS] - @start, start - Q register (all) 0--15 [A,AB,AU,A2,A3,AY,BA,BI,D,I2,J,JS] - R0, AR0, DP, SP - q register (0-11) 0--15 [AF,B,BB] - R0, R7, R11 - R register (all) 16--20 [A,AB,AU,AF,A6,A7,R,T,TC] - R0, AR0, DP, SP - r register (0-11) 16--20 [B,BA,BB,BI,B6,B7,RF,S,SC] - R0, R1, R11 - S short int immediate 0--15 [A,AB,AY,BI] - -5, 5 - T integer (C4x) 16--20 [Z] - -5, 12 - U unsigned integer 0--15 [AU,A3] - 0, 65535 - V vector (C4x: 0--8) 0--4 [Z] - 25, 7 - W short int (C4x) 0--7 [T,TC,T2,T2C] - -3, 5 - X expansion reg (C4x) 0--4 [Z] - IVTP, TVTP - Y address reg (C4x) 16--20 [Z] - AR0, DP, SP, IR0 - Z expansion reg (C4x) 16--20 [Z] - IVTP, TVTP -*/ - -#define TIC4X_OPERANDS_MAX 7 /* Max number of operands for an inst. */ -#define TIC4X_NAME_MAX 16 /* Max number of chars in parallel name. */ - -/* Define the instruction level */ -#define OP_C3X 0x1 /* C30 support - supported by all */ -#define OP_C4X 0x2 /* C40 support - C40, C44 */ -#define OP_ENH 0x4 /* Class LL,LS,M,P,Q,QC enhancements. Argument type - I and J is enhanced in these classes - C31>=6.0, - C32>=2.0, C33 */ -#define OP_LPWR 0x8 /* Low power support (LOPOWER, MAXSPEED) - C30>=7.0, - LC31, C31>=5.0, C32 */ -#define OP_IDLE2 0x10 /* Idle2 support (IDLE2) - C30>=7.0, LC31, C31>=5.0, - C32, C33, C40>=5.0, C44 */ - -/* The following class definition is a classification scheme for - putting instructions with similar type of arguments together. It - simplifies the op-code definitions significantly, as we then only - need to use the class macroes for 95% of the DSP's opcodes. -*/ - -/* A: General 2-operand integer operations - Syntax: src, dst - src = Register (Q), Direct (@), Indirect (*), Signed immediate (S) - dst = Register (R) - Instr: 15/8 - ABSI, ADDC, ADDI, ASH, CMPI, LDI, LSH, MPYI, NEGB, NEGI, - SUBB, SUBC, SUBI, SUBRB, SUBRI, C4x: LBn, LHn, LWLn, LWRn, - MBn, MHn, MPYSHI, MPYUHI -*/ -#define A_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x00000000, 0xffe00000, "Q;R", level }, \ - { name, opcode|0x00200000, 0xffe00000, "@,R", level }, \ - { name, opcode|0x00400000, 0xffe00000, "*,R", level }, \ - { name, opcode|0x00600000, 0xffe00000, "S,R", level } - -/* AB: General 2-operand integer operation with condition - Syntax: c src, dst - c = Condition - src = Register (Q), Direct (@), Indirect (*), Signed immediate (S) - dst = Register (R) - Instr: 1/0 - LDIc -*/ -#define AB_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x40000000, 0xf0600000, "Q;R", level }, \ - { name, opcode|0x40200000, 0xf0600000, "@,R", level }, \ - { name, opcode|0x40400000, 0xf0600000, "*,R", level }, \ - { name, opcode|0x40600000, 0xf0600000, "S,R", level } - -/* AU: General 2-operand unsigned integer operation - Syntax: src, dst - src = Register (Q), Direct (@), Indirect (*), Unsigned immediate (U) - dst = Register (R) - Instr: 6/2 - AND, ANDN, NOT, OR, TSTB, XOR, C4x: LBUn, LHUn -*/ -#define AU_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x00000000, 0xffe00000, "Q;R", level }, \ - { name, opcode|0x00200000, 0xffe00000, "@,R", level }, \ - { name, opcode|0x00400000, 0xffe00000, "*,R", level }, \ - { name, opcode|0x00600000, 0xffe00000, "U,R", level } - -/* AF: General 2-operand float to integer operation - Syntax: src, dst - src = Register 0-11 (q), Direct (@), Indirect (*), Float immediate (F) - dst = Register (R) - Instr: 1/0 - FIX -*/ -#define AF_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x00000000, 0xffe00000, "q;R", level }, \ - { name, opcode|0x00200000, 0xffe00000, "@,R", level }, \ - { name, opcode|0x00400000, 0xffe00000, "*,R", level }, \ - { name, opcode|0x00600000, 0xffe00000, "F,R", level } - -/* A2: Limited 1-operand (integer) operation - Syntax: src - src = Register (Q), Indirect (*), None - Instr: 1/0 - NOP -*/ -#define A2_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x00000000, 0xffe00000, "Q", level }, \ - { name, opcode|0x00400000, 0xffe00000, "*", level }, \ - { name, opcode|0x00000000, 0xffe00000, "" , level } - -/* A3: General 1-operand unsigned integer operation - Syntax: src - src = Register (Q), Direct (@), Indirect (*), Unsigned immediate (U) - Instr: 1/0 - RPTS -*/ -#define A3_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x00000000, 0xffff0000, "Q", level }, \ - { name, opcode|0x00200000, 0xffff0000, "@", level }, \ - { name, opcode|0x00400000, 0xffff0000, "*", level }, \ - { name, opcode|0x00600000, 0xffff0000, "U", level } - -/* A6: Limited 2-operand integer operation - Syntax: src, dst - src = Direct (@), Indirect (*) - dst = Register (R) - Instr: 1/1 - LDII, C4x: SIGI -*/ -#define A6_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x00200000, 0xffe00000, "@,R", level }, \ - { name, opcode|0x00400000, 0xffe00000, "*,R", level } - -/* A7: Limited 2-operand integer store operation - Syntax: src, dst - src = Register (R) - dst = Direct (@), Indirect (*) - Instr: 2/0 - STI, STII -*/ -#define A7_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x00200000, 0xffe00000, "R,@", level }, \ - { name, opcode|0x00400000, 0xffe00000, "R,*", level } - -/* AY: General 2-operand signed address load operation - Syntax: src, dst - src = Register (Q), Direct (@), Indirect (*), Signed immediate (S) - dst = Address register - ARx, IRx, DP, BK, SP (Y) - Instr: 0/1 - C4x: LDA - Note: Q and Y should *never* be the same register -*/ -#define AY_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x00000000, 0xffe00000, "Q,Y", level }, \ - { name, opcode|0x00200000, 0xffe00000, "@,Y", level }, \ - { name, opcode|0x00400000, 0xffe00000, "*,Y", level }, \ - { name, opcode|0x00600000, 0xffe00000, "S,Y", level } - -/* B: General 2-operand float operation - Syntax: src, dst - src = Register 0-11 (q), Direct (@), Indirect (*), Float immediate (F) - dst = Register 0-11 (r) - Instr: 12/2 - ABSF, ADDF, CMPF, LDE, LDF, LDM, MPYF, NEGF, NORM, RND, - SUBF, SUBRF, C4x: RSQRF, TOIEEE -*/ -#define B_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x00000000, 0xffe00000, "q;r", level }, \ - { name, opcode|0x00200000, 0xffe00000, "@,r", level }, \ - { name, opcode|0x00400000, 0xffe00000, "*,r", level }, \ - { name, opcode|0x00600000, 0xffe00000, "F,r", level } - -/* BA: General 2-operand integer to float operation - Syntax: src, dst - src = Register (Q), Direct (@), Indirect (*), Float immediate (F) - dst = Register 0-11 (r) - Instr: 0/1 - C4x: CRCPF -*/ -#define BA_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x00000000, 0xffe00000, "Q;r", level }, \ - { name, opcode|0x00200000, 0xffe00000, "@,r", level }, \ - { name, opcode|0x00400000, 0xffe00000, "*,r", level }, \ - { name, opcode|0x00600000, 0xffe00000, "F,r", level } - -/* BB: General 2-operand conditional float operation - Syntax: c src, dst - c = Condition - src = Register 0-11 (q), Direct (@), Indirect (*), Float immediate (F) - dst = Register 0-11 (r) - Instr: 1/0 - LDFc -*/ -#define BB_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x40000000, 0xf0600000, "q;r", level }, \ - { name, opcode|0x40200000, 0xf0600000, "@,r", level }, \ - { name, opcode|0x40400000, 0xf0600000, "*,r", level }, \ - { name, opcode|0x40600000, 0xf0600000, "F,r", level } - -/* BI: General 2-operand integer to float operation (yet different to BA) - Syntax: src, dst - src = Register (Q), Direct (@), Indirect (*), Signed immediate (S) - dst = Register 0-11 (r) - Instr: 1/0 - FLOAT -*/ -#define BI_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x00000000, 0xffe00000, "Q;r", level }, \ - { name, opcode|0x00200000, 0xffe00000, "@,r", level }, \ - { name, opcode|0x00400000, 0xffe00000, "*,r", level }, \ - { name, opcode|0x00600000, 0xffe00000, "S,r", level } - -/* B6: Limited 2-operand float operation - Syntax: src, dst - src = Direct (@), Indirect (*) - dst = Register 0-11 (r) - Instr: 1/1 - LDFI, C4x: FRIEEE -*/ -#define B6_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x00200000, 0xffe00000, "@,r", level }, \ - { name, opcode|0x00400000, 0xffe00000, "*,r", level } - -/* B7: Limited 2-operand float store operation - Syntax: src, dst - src = Register 0-11 (r) - dst = Direct (@), Indirect (*) - Instr: 2/0 - STF, STFI -*/ -#define B7_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x00200000, 0xffe00000, "r,@", level }, \ - { name, opcode|0x00400000, 0xffe00000, "r,*", level } - -/* D: Decrement and brach operations - Syntax: c ARn, dst - c = condition - ARn = AR register 0-7 (A) - dst = Register (Q), PC-relative (P) - Instr: 2/0 - DBc, DBcD - Alias: -*/ -#define D_CLASS_INSN(name1, name2, opcode, level) \ - { name1, opcode|0x00000000, 0xfe200000, "A,Q", level }, \ - { name1, opcode|0x02000000, 0xfe200000, "A,P", level }, \ - { name2, opcode|0x00000000, 0xfe200000, "A,Q", level }, \ - { name2, opcode|0x02000000, 0xfe200000, "A,P", level } - -/* I: General branch operations - Syntax: dst - dst = Address (B) - Instr: 3/1 - BR, BRD, CALL, C4x: LAJ -*/ - -/* I2: General branch operations (C4x addition) - Syntax: dst - dst = Address (B), C4x: Register (Q) - Instr: 2/0 - RPTB, RPTBD -*/ - -/* J: General conditional branch operations - Syntax: c dst - c = Condition - dst = Register (Q), PC-relative (P) - Instr: 2/3 - Bc, BcD, C4x: BcAF, BcAT, LAJc - Alias: -*/ -#define J_CLASS_INSN(name1, name2, opcode, level) \ - { name1, opcode|0x00000000, 0xffe00000, "Q", level }, \ - { name1, opcode|0x02000000, 0xffe00000, "P", level }, \ - { name2, opcode|0x00000000, 0xffe00000, "Q", level }, \ - { name2, opcode|0x02000000, 0xffe00000, "P", level } - -/* JS: General conditional branch operations - Syntax: c dst - c = Condition - dst = Register (Q), PC-relative (P) - Instr: 1/1 - CALLc, C4X: LAJc -*/ - -/* LL: Load-load parallell operation - Syntax: src2, dst2 || src1, dst1 - src1 = Indirect 0,1,IR0,IR1 (J) - dst1 = Register 0-7 (K) - src2 = Indirect 0,1,IR0,IR1, ENH: Register (i) - dst2 = Register 0-7 (L) - Instr: 2/0 - LDF||LDF, LDI||LDI - Alias: i||i, i1||i2, i2||i1 -*/ -#define LL_CLASS_INSN(name, opcode, level) \ - { name "_" name , opcode, 0xfe000000, "i;L|J,K", level }, \ - { name "2_" name "1", opcode, 0xfe000000, "i;L|J,K", level }, \ - { name "1_" name "2", opcode, 0xfe000000, "J,K|i;L", level } - -/* LS: Store-store parallell operation - Syntax: src2, dst2 || src1, dst1 - src1 = Register 0-7 (H) - dst1 = Indirect 0,1,IR0,IR1 (J) - src2 = Register 0-7 (L) - dst2 = Indirect 0,1,IR0,IR1, ENH: register (i) - Instr: 2/0 - STF||STF, STI||STI - Alias: i||i, i1||i2, i2||i1. -*/ -#define LS_CLASS_INSN(name, opcode, level) \ - { name "_" name , opcode, 0xfe000000, "L;i|H,J", level }, \ - { name "2_" name "1", opcode, 0xfe000000, "L;i|H,J", level }, \ - { name "1_" name "2", opcode, 0xfe000000, "H,J|L;i", level } - -/* M: General multiply and add/sub operations - Syntax: src3,src4,dst1 || src2,src1,dst2 [00] - Manual - src3,src1,dst1 || src2,src4,dst2 [01] - Manual - src1,src3,dst1 || src2,src4,dst2 [01] - src1,src2,dst1 || src4,src3,dst2 [02] - Manual - src3,src1,dst1 || src4,src2,dst2 [03] - Manual - src1,src3,dst1 || src4,src2,dst2 [03] - src1 = Register 0-7 (K) - src2 = Register 0-7 (H) - src3 = Indirect 0,1,IR0,IR1, ENH: register (j) - src4 = Indirect 0,1,IR0,IR1, ENH: register (i) - dst1 = Register 0-1 (N) - dst2 = Register 2-3 (M) - Instr: 4/0 - MPYF3||ADDF3, MPYF3||SUBF3, MPYI3||ADDI3, MPYI3||SUBI3 - Alias: a||b, a3||n, a||b3, a3||b3, b||a, b3||a, b||a3, b3||a3 -*/ -#define M_CLASS_INSN(namea, nameb, opcode, level) \ - { namea "_" nameb, opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \ - { namea "_" nameb, opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \ - { namea "_" nameb, opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \ - { namea "_" nameb, opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \ - { namea "_" nameb, opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \ - { namea "_" nameb, opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \ - { namea "3_" nameb, opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \ - { namea "3_" nameb, opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \ - { namea "3_" nameb, opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \ - { namea "3_" nameb, opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \ - { namea "3_" nameb, opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \ - { namea "3_" nameb, opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \ - { namea "_" nameb "3", opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \ - { namea "_" nameb "3", opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \ - { namea "_" nameb "3", opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \ - { namea "_" nameb "3", opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \ - { namea "_" nameb "3", opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \ - { namea "_" nameb "3", opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \ - { namea "3_" nameb "3", opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \ - { namea "3_" nameb "3", opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \ - { namea "3_" nameb "3", opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \ - { namea "3_" nameb "3", opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \ - { namea "3_" nameb "3", opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \ - { namea "3_" nameb "3", opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \ - { nameb "_" namea, opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \ - { nameb "_" namea, opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \ - { nameb "_" namea, opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \ - { nameb "_" namea, opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \ - { nameb "_" namea, opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \ - { nameb "_" namea, opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }, \ - { nameb "3_" namea, opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \ - { nameb "3_" namea, opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \ - { nameb "3_" namea, opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \ - { nameb "3_" namea, opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \ - { nameb "3_" namea, opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \ - { nameb "3_" namea, opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }, \ - { nameb "_" namea "3", opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \ - { nameb "_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \ - { nameb "_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \ - { nameb "_" namea "3", opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \ - { nameb "_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \ - { nameb "_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }, \ - { nameb "3_" namea "3", opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \ - { nameb "3_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \ - { nameb "3_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \ - { nameb "3_" namea "3", opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \ - { nameb "3_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \ - { nameb "3_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level } - -/* P: General 2-operand operation with parallell store - Syntax: src2, dst1 || src3, dst2 - src2 = Indirect 0,1,IR0,IR1, ENH: register (i) - dst1 = Register 0-7 (L) - src3 = Register 0-7 (H) - dst2 = Indirect 0,1,IR0,IR1 (J) - Instr: 9/2 - ABSF||STF, ABSI||STI, FIX||STI, FLOAT||STF, LDF||STF, - LDI||STI, NEGF||STF, NEGI||STI, NOT||STI, C4x: FRIEEE||STF, - TOIEEE||STF - Alias: a||b, b||a -*/ -#define P_CLASS_INSN(namea, nameb, opcode, level) \ - { namea "_" nameb, opcode, 0xfe000000, "i;L|H,J", level }, \ - { nameb "_" namea, opcode, 0xfe000000, "H,J|i;L", level } - -/* Q: General 3-operand operation with parallell store - Syntax: src1, src2, dst1 || src3, dst2 - src1 = Register 0-7 (K) - src2 = Indirect 0,1,IR0,IR1, ENH: register (i) - dst1 = Register 0-7 (L) - src3 = Register 0-7 (H) - dst2 = Indirect 0,1,IR0,IR1 (J) - Instr: 4/0 - ASH3||STI, LSH3||STI, SUBF3||STF, SUBI3||STI - Alias: a||b, b||a, a3||b, b||a3 -*/ -#define Q_CLASS_INSN(namea, nameb, opcode, level) \ - { namea "_" nameb , opcode, 0xfe000000, "K,i;L|H,J", level }, \ - { nameb "_" namea , opcode, 0xfe000000, "H,J|K,i;L", level }, \ - { namea "3_" nameb , opcode, 0xfe000000, "K,i;L|H,J", level }, \ - { nameb "_" namea "3", opcode, 0xfe000000, "H,J|K,i;L", level } - -/* QC: General commutative 3-operand operation with parallell store - Syntax: src2, src1, dst1 || src3, dst2 - src1, src2, dst1 || src3, dst2 - Manual - src1 = Register 0-7 (K) - src2 = Indirect 0,1,IR0,IR1, ENH: register (i) - dst1 = Register 0-7 (L) - src3 = Register 0-7 (H) - dst2 = Indirect 0,1,IR0,IR1 (J) - Instr: 7/0 - ADDF3||STF, ADDI3||STI, AND3||STI, MPYF3||STF, MPYI3||STI, - OR3||STI, XOR3||STI - Alias: a||b, b||a, a3||b, b||a3 -*/ -#define QC_CLASS_INSN(namea, nameb, opcode, level) \ - { namea "_" nameb , opcode, 0xfe000000, "i;K;L|H,J", level }, \ - { namea "_" nameb , opcode, 0xfe000000, "K;i;L|H,J", level }, \ - { nameb "_" namea , opcode, 0xfe000000, "H,J|i;K;L", level }, \ - { nameb "_" namea , opcode, 0xfe000000, "H,J|K;i;L", level }, \ - { namea "3_" nameb , opcode, 0xfe000000, "i;K;L|H,J", level }, \ - { namea "3_" nameb , opcode, 0xfe000000, "K;i;L|H,J", level }, \ - { nameb "_" namea "3", opcode, 0xfe000000, "H,J|i;K;L", level }, \ - { nameb "_" namea "3", opcode, 0xfe000000, "H,J|K;i;L", level } - -/* R: General register integer operation - Syntax: dst - dst = Register (R) - Instr: 6/0 - POP, PUSH, ROL, ROLC, ROR, RORC -*/ -#define R_CLASS_INSN(name, opcode, level) \ - { name, opcode, 0xffe0ffff, "R", level } - -/* RF: General register float operation - Syntax: dst - dst = Register 0-11 (r) - Instr: 2/0 - POPF, PUSHF -*/ -#define RF_CLASS_INSN(name, opcode, level) \ - { name, opcode, 0xffe0ffff, "r", level } - -/* S: General 3-operand float operation - Syntax: src2, src1, dst - src2 = Register 0-11 (e), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C) - src1 = Register 0-11 (g), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O) - dst = Register 0-11 (r) - Instr: 1/0 - SUBF3 - Alias: i, i3 -*/ -#define S_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x20000000, 0xffe00000, "e,g;r", level }, \ - { name, opcode|0x20200000, 0xffe00000, "e,J,r", level }, \ - { name, opcode|0x20400000, 0xffe00000, "I,g;r", level }, \ - { name, opcode|0x20600000, 0xffe00000, "I,J,r", level }, \ - { name, opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \ - { name, opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }, \ - { name "3", opcode|0x20000000, 0xffe00000, "e,g;r", level }, \ - { name "3", opcode|0x20200000, 0xffe00000, "e,J,r", level }, \ - { name "3", opcode|0x20400000, 0xffe00000, "I,g;r", level }, \ - { name "3", opcode|0x20600000, 0xffe00000, "I,J,r", level }, \ - { name "3", opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \ - { name "3", opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X } - -/* SC: General commutative 3-operand float operation - Syntax: src2, src1, dst - Manual - src1, src2, dst - src2 = Register 0-11 (e), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C) - src1 = Register 0-11 (g), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O) - dst = Register 0-11 (r) - Instr: 2/0 - ADDF3, MPYF3 - Alias: i, i3 -*/ -#define SC_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x20000000, 0xffe00000, "e,g;r", level }, \ - { name, opcode|0x20200000, 0xffe00000, "e,J,r", level }, \ - { name, opcode|0x20400000, 0xffe00000, "I,g;r", level }, \ - { name, opcode|0x20600000, 0xffe00000, "I,J,r", level }, \ - { name, opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \ - { name, opcode|0x30200000, 0xffe00000, "g,C,r", OP_C4X }, \ - { name, opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }, \ - { name "3", opcode|0x20000000, 0xffe00000, "e,g;r", level }, \ - { name "3", opcode|0x20200000, 0xffe00000, "e,J,r", level }, \ - { name "3", opcode|0x20400000, 0xffe00000, "I,g;r", level }, \ - { name "3", opcode|0x20600000, 0xffe00000, "I,J,r", level }, \ - { name "3", opcode|0x30200000, 0xffe00000, "g,C,r", OP_C4X }, \ - { name "3", opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \ - { name "3", opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X } - -/* S2: General 3-operand float operation with 2 args - Syntax: src2, src1 - src2 = Register 0-11 (e), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C) - src1 = Register 0-11 (g), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O) - Instr: 1/0 - CMPF3 - Alias: i, i3 -*/ -#define S2_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x20000000, 0xffe00000, "e,g", level }, \ - { name, opcode|0x20200000, 0xffe00000, "e,J", level }, \ - { name, opcode|0x20400000, 0xffe00000, "I,g", level }, \ - { name, opcode|0x20600000, 0xffe00000, "I,J", level }, \ - { name, opcode|0x30200000, 0xffe00000, "C,g", OP_C4X }, \ - { name, opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }, \ - { name "3", opcode|0x20000000, 0xffe00000, "e,g", level }, \ - { name "3", opcode|0x20200000, 0xffe00000, "e,J", level }, \ - { name "3", opcode|0x20400000, 0xffe00000, "I,g", level }, \ - { name "3", opcode|0x20600000, 0xffe00000, "I,J", level }, \ - { name "3", opcode|0x30200000, 0xffe00000, "C,g", OP_C4X }, \ - { name "3", opcode|0x30600000, 0xffe00000, "C,O", OP_C4X } - -/* T: General 3-operand integer operand - Syntax: src2, src1, dst - src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W) - src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O) - dst = Register (R) - Instr: 5/0 - ANDN3, ASH3, LSH3, SUBB3, SUBI3 - Alias: i, i3 -*/ -#define T_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x20000000, 0xffe00000, "E,G;R", level }, \ - { name, opcode|0x20200000, 0xffe00000, "E,J,R", level }, \ - { name, opcode|0x20400000, 0xffe00000, "I,G;R", level }, \ - { name, opcode|0x20600000, 0xffe00000, "I,J,R", level }, \ - { name, opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \ - { name, opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \ - { name, opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \ - { name, opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }, \ - { name "3", opcode|0x20000000, 0xffe00000, "E,G;R", level }, \ - { name "3", opcode|0x20200000, 0xffe00000, "E,J,R", level }, \ - { name "3", opcode|0x20400000, 0xffe00000, "I,G;R", level }, \ - { name "3", opcode|0x20600000, 0xffe00000, "I,J,R", level }, \ - { name "3", opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \ - { name "3", opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \ - { name "3", opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \ - { name "3", opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X } - -/* TC: General commutative 3-operand integer operation - Syntax: src2, src1, dst - src1, src2, dst - src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W) - src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O) - dst = Register (R) - Instr: 6/2 - ADDC3, ADDI3, AND3, MPYI3, OR3, XOR3, C4x: MPYSHI, MPYUHI - Alias: i, i3 -*/ -#define TC_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x20000000, 0xffe00000, "E,G;R", level }, \ - { name, opcode|0x20200000, 0xffe00000, "E,J,R", level }, \ - { name, opcode|0x20400000, 0xffe00000, "I,G;R", level }, \ - { name, opcode|0x20600000, 0xffe00000, "I,J,R", level }, \ - { name, opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \ - { name, opcode|0x30000000, 0xffe00000, "G,W,R", OP_C4X }, \ - { name, opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \ - { name, opcode|0x30200000, 0xffe00000, "G,C,R", OP_C4X }, \ - { name, opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \ - { name, opcode|0x30400000, 0xffe00000, "O,W,R", OP_C4X }, \ - { name, opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }, \ - { name "3", opcode|0x20000000, 0xffe00000, "E,G;R", level }, \ - { name "3", opcode|0x20200000, 0xffe00000, "E,J,R", level }, \ - { name "3", opcode|0x20400000, 0xffe00000, "I,G;R", level }, \ - { name "3", opcode|0x20600000, 0xffe00000, "I,J,R", level }, \ - { name "3", opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \ - { name "3", opcode|0x30000000, 0xffe00000, "G,W,R", OP_C4X }, \ - { name "3", opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \ - { name "3", opcode|0x30200000, 0xffe00000, "G,C,R", OP_C4X }, \ - { name "3", opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \ - { name "3", opcode|0x30400000, 0xffe00000, "O,W,R", OP_C4X }, \ - { name "3", opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X } - -/* T2: General 3-operand integer operation with 2 args - Syntax: src2, src1 - src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W) - src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O) - Instr: 1/0 - CMPI3 - Alias: i, i3 -*/ -#define T2_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x20000000, 0xffe00000, "E,G", level }, \ - { name, opcode|0x20200000, 0xffe00000, "E,J", level }, \ - { name, opcode|0x20400000, 0xffe00000, "I,G", level }, \ - { name, opcode|0x20600000, 0xffe00000, "I,J", level }, \ - { name, opcode|0x30000000, 0xffe00000, "W,G", OP_C4X }, \ - { name, opcode|0x30200000, 0xffe00000, "C,G", OP_C4X }, \ - { name, opcode|0x30400000, 0xffe00000, "W,O", OP_C4X }, \ - { name, opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }, \ - { name "3", opcode|0x20000000, 0xffe00000, "E,G", level }, \ - { name "3", opcode|0x20200000, 0xffe00000, "E,J", level }, \ - { name "3", opcode|0x20400000, 0xffe00000, "I,G", level }, \ - { name "3", opcode|0x20600000, 0xffe00000, "I,J", level }, \ - { name "3", opcode|0x30000000, 0xffe00000, "W,G", OP_C4X }, \ - { name "3", opcode|0x30200000, 0xffe00000, "C,G", OP_C4X }, \ - { name "3", opcode|0x30400000, 0xffe00000, "W,O", OP_C4X }, \ - { name "3", opcode|0x30600000, 0xffe00000, "C,O", OP_C4X } - -/* T2C: General commutative 3-operand integer operation with 2 args - Syntax: src2, src1 - Manual - src1, src2 - src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W) - src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (0) - Instr: 1/0 - TSTB3 - Alias: i, i3 -*/ -#define T2C_CLASS_INSN(name, opcode, level) \ - { name, opcode|0x20000000, 0xffe00000, "E,G", level }, \ - { name, opcode|0x20200000, 0xffe00000, "E,J", level }, \ - { name, opcode|0x20400000, 0xffe00000, "I,G", level }, \ - { name, opcode|0x20600000, 0xffe00000, "I,J", level }, \ - { name, opcode|0x30000000, 0xffe00000, "W,G", OP_C4X }, \ - { name, opcode|0x30000000, 0xffe00000, "G,W", OP_C4X }, \ - { name, opcode|0x30200000, 0xffe00000, "C,G", OP_C4X }, \ - { name, opcode|0x30200000, 0xffe00000, "G,C", OP_C4X }, \ - { name, opcode|0x30400000, 0xffe00000, "W,O", OP_C4X }, \ - { name, opcode|0x30400000, 0xffe00000, "O,W", OP_C4X }, \ - { name, opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }, \ - { name "3", opcode|0x20000000, 0xffe00000, "E,G", level }, \ - { name "3", opcode|0x20200000, 0xffe00000, "E,J", level }, \ - { name "3", opcode|0x20400000, 0xffe00000, "I,G", level }, \ - { name "3", opcode|0x20600000, 0xffe00000, "I,J", level }, \ - { name "3", opcode|0x30000000, 0xffe00000, "W,G", OP_C4X }, \ - { name "3", opcode|0x30000000, 0xffe00000, "G,W", OP_C4X }, \ - { name "3", opcode|0x30200000, 0xffe00000, "C,G", OP_C4X }, \ - { name "3", opcode|0x30200000, 0xffe00000, "G,C", OP_C4X }, \ - { name "3", opcode|0x30400000, 0xffe00000, "W,O", OP_C4X }, \ - { name "3", opcode|0x30400000, 0xffe00000, "O,W", OP_C4X }, \ - { name "3", opcode|0x30600000, 0xffe00000, "C,O", OP_C4X } - -/* Z: Misc operations with or without arguments - Syntax: ,... - Instr: 16 - RETIc, RETSc, SIGI(c3X), SWI, IDLE, IDLE2, RETIcD, - TRAPc, LATc, LDEP, LDEHI, LDEPE, LDPK, STIK, LDP, IACK -*/ - - -/* Define tic4x opcodes for assembler and disassembler. */ -static const tic4x_inst_t tic4x_insts[] = -{ - /* Put synonyms after the desired forms in table so that they get - overwritten in the lookup table. The disassembler will thus - print the `proper' mnemonics. Note that the disassembler - only decodes the 11 MSBs, so instructions like ldp @0x500 will - be printed as ldiu 5, dp. Note that with parallel instructions, - the second part is executed before the first part, unless - the sti1||sti2 form is used. We also allow sti2||sti1 - which is equivalent to the default sti||sti form. - */ - B_CLASS_INSN( "absf", 0x00000000, OP_C3X ), - P_CLASS_INSN( "absf", "stf", 0xc8000000, OP_C3X ), - A_CLASS_INSN( "absi", 0x00800000, OP_C3X ), - P_CLASS_INSN( "absi", "sti", 0xca000000, OP_C3X ), - A_CLASS_INSN( "addc", 0x01000000, OP_C3X ), - TC_CLASS_INSN( "addc", 0x00000000, OP_C3X ), - B_CLASS_INSN( "addf", 0x01800000, OP_C3X ), - SC_CLASS_INSN( "addf", 0x00800000, OP_C3X ), - QC_CLASS_INSN( "addf", "stf", 0xcc000000, OP_C3X ), - A_CLASS_INSN( "addi", 0x02000000, OP_C3X ), - TC_CLASS_INSN( "addi", 0x01000000, OP_C3X ), - QC_CLASS_INSN( "addi", "sti", 0xce000000, OP_C3X ), - AU_CLASS_INSN( "and", 0x02800000, OP_C3X ), - TC_CLASS_INSN( "and", 0x01800000, OP_C3X ), - QC_CLASS_INSN( "and", "sti", 0xd0000000, OP_C3X ), - AU_CLASS_INSN( "andn", 0x03000000, OP_C3X ), - T_CLASS_INSN( "andn", 0x02000000, OP_C3X ), - A_CLASS_INSN( "ash", 0x03800000, OP_C3X ), - T_CLASS_INSN( "ash", 0x02800000, OP_C3X ), - Q_CLASS_INSN( "ash", "sti", 0xd2000000, OP_C3X ), - J_CLASS_INSN( "bB", "b", 0x68000000, OP_C3X ), - J_CLASS_INSN( "bBd", "bd", 0x68200000, OP_C3X ), - J_CLASS_INSN( "bBaf", "baf", 0x68a00000, OP_C4X ), - J_CLASS_INSN( "bBat", "bat", 0x68600000, OP_C4X ), - { "br", 0x60000000, 0xff000000, "B" , OP_C3X }, /* I_CLASS */ - { "brd", 0x61000000, 0xff000000, "B" , OP_C3X }, /* I_CLASS */ - { "call", 0x62000000, 0xff000000, "B" , OP_C3X }, /* I_CLASS */ - { "callB", 0x70000000, 0xffe00000, "Q" , OP_C3X }, /* JS_CLASS */ - { "callB", 0x72000000, 0xffe00000, "P" , OP_C3X }, /* JS_CLASS */ - B_CLASS_INSN( "cmpf", 0x04000000, OP_C3X ), - S2_CLASS_INSN( "cmpf", 0x03000000, OP_C3X ), - A_CLASS_INSN( "cmpi", 0x04800000, OP_C3X ), - T2_CLASS_INSN( "cmpi", 0x03800000, OP_C3X ), - D_CLASS_INSN( "dbB", "db", 0x6c000000, OP_C3X ), - D_CLASS_INSN( "dbBd", "dbd", 0x6c200000, OP_C3X ), - AF_CLASS_INSN( "fix", 0x05000000, OP_C3X ), - P_CLASS_INSN( "fix", "sti", 0xd4000000, OP_C3X ), - BI_CLASS_INSN( "float", 0x05800000, OP_C3X ), - P_CLASS_INSN( "float", "stf", 0xd6000000, OP_C3X ), - B6_CLASS_INSN( "frieee", 0x1c000000, OP_C4X ), - P_CLASS_INSN( "frieee","stf", 0xf2000000, OP_C4X ), - { "iack", 0x1b200000, 0xffe00000, "@" , OP_C3X }, /* Z_CLASS */ - { "iack", 0x1b400000, 0xffe00000, "*" , OP_C3X }, /* Z_CLASS */ - { "idle", 0x06000000, 0xffffffff, "" , OP_C3X }, /* Z_CLASS */ - { "idlez", 0x06000000, 0xffffffff, "" , OP_C3X }, /* Z_CLASS */ - { "idle2", 0x06000001, 0xffffffff, "" , OP_IDLE2 }, /* Z_CLASS */ - { "laj", 0x63000000, 0xff000000, "B" , OP_C4X }, /* I_CLASS */ - { "lajB", 0x70200000, 0xffe00000, "Q" , OP_C4X }, /* JS_CLASS */ - { "lajB", 0x72200000, 0xffe00000, "P" , OP_C4X }, /* JS_CLASS */ - { "latB", 0x74800000, 0xffe00000, "V" , OP_C4X }, /* Z_CLASS */ - A_CLASS_INSN( "lb0", 0xb0000000, OP_C4X ), - A_CLASS_INSN( "lb1", 0xb0800000, OP_C4X ), - A_CLASS_INSN( "lb2", 0xb1000000, OP_C4X ), - A_CLASS_INSN( "lb3", 0xb1800000, OP_C4X ), - AU_CLASS_INSN( "lbu0", 0xb2000000, OP_C4X ), - AU_CLASS_INSN( "lbu1", 0xb2800000, OP_C4X ), - AU_CLASS_INSN( "lbu2", 0xb3000000, OP_C4X ), - AU_CLASS_INSN( "lbu3", 0xb3800000, OP_C4X ), - AY_CLASS_INSN( "lda", 0x1e800000, OP_C4X ), - B_CLASS_INSN( "lde", 0x06800000, OP_C3X ), - { "ldep", 0x76000000, 0xffe00000, "X,R" , OP_C4X }, /* Z_CLASS */ - B_CLASS_INSN( "ldf", 0x07000000, OP_C3X ), - LL_CLASS_INSN( "ldf", 0xc4000000, OP_C3X ), - P_CLASS_INSN( "ldf", "stf", 0xd8000000, OP_C3X ), - BB_CLASS_INSN( "ldfC", 0x00000000, OP_C3X ), - B6_CLASS_INSN( "ldfi", 0x07800000, OP_C3X ), - { "ldhi", 0x1fe00000, 0xffe00000, "U,R" , OP_C4X }, /* Z_CLASS */ - { "ldhi", 0x1fe00000, 0xffe00000, "#,R" , OP_C4X }, /* Z_CLASS */ - A_CLASS_INSN( "ldi", 0x08000000, OP_C3X ), - LL_CLASS_INSN( "ldi", 0xc6000000, OP_C3X ), - P_CLASS_INSN( "ldi", "sti", 0xda000000, OP_C3X ), - AB_CLASS_INSN( "ldiC", 0x10000000, OP_C3X ), - A6_CLASS_INSN( "ldii", 0x08800000, OP_C3X ), - { "ldp", 0x50700000, 0xffff0000, "#" , OP_C3X }, /* Z_CLASS - synonym for ldiu #,dp */ - B_CLASS_INSN( "ldm", 0x09000000, OP_C3X ), - { "ldpe", 0x76800000, 0xffe00000, "Q,Z" , OP_C4X }, /* Z_CLASS */ - { "ldpk", 0x1F700000, 0xffff0000, "#" , OP_C4X }, /* Z_CLASS */ - A_CLASS_INSN( "lh0", 0xba000000, OP_C4X ), - A_CLASS_INSN( "lh1", 0xba800000, OP_C4X ), - AU_CLASS_INSN( "lhu0", 0xbb000000, OP_C4X ), - AU_CLASS_INSN( "lhu1", 0xbb800000, OP_C4X ), - { "lopower", 0x10800001,0xffffffff, "" , OP_LPWR }, /* Z_CLASS */ - A_CLASS_INSN( "lsh", 0x09800000, OP_C3X ), - T_CLASS_INSN( "lsh", 0x04000000, OP_C3X ), - Q_CLASS_INSN( "lsh", "sti", 0xdc000000, OP_C3X ), - A_CLASS_INSN( "lwl0", 0xb4000000, OP_C4X ), - A_CLASS_INSN( "lwl1", 0xb4800000, OP_C4X ), - A_CLASS_INSN( "lwl2", 0xb5000000, OP_C4X ), - A_CLASS_INSN( "lwl3", 0xb5800000, OP_C4X ), - A_CLASS_INSN( "lwr0", 0xb6000000, OP_C4X ), - A_CLASS_INSN( "lwr1", 0xb6800000, OP_C4X ), - A_CLASS_INSN( "lwr2", 0xb7000000, OP_C4X ), - A_CLASS_INSN( "lwr3", 0xb7800000, OP_C4X ), - { "maxspeed",0x10800000,0xffffffff, "" , OP_LPWR }, /* Z_CLASS */ - A_CLASS_INSN( "mb0", 0xb8000000, OP_C4X ), - A_CLASS_INSN( "mb1", 0xb8800000, OP_C4X ), - A_CLASS_INSN( "mb2", 0xb9000000, OP_C4X ), - A_CLASS_INSN( "mb3", 0xb9800000, OP_C4X ), - A_CLASS_INSN( "mh0", 0xbc000000, OP_C4X ), - A_CLASS_INSN( "mh1", 0xbc800000, OP_C4X ), - A_CLASS_INSN( "mh2", 0xbd000000, OP_C4X ), - A_CLASS_INSN( "mh3", 0xbd800000, OP_C4X ), - B_CLASS_INSN( "mpyf", 0x0a000000, OP_C3X ), - SC_CLASS_INSN( "mpyf", 0x04800000, OP_C3X ), - M_CLASS_INSN( "mpyf", "addf", 0x80000000, OP_C3X ), - QC_CLASS_INSN( "mpyf", "stf", 0xde000000, OP_C3X ), - M_CLASS_INSN( "mpyf", "subf", 0x84000000, OP_C3X ), - A_CLASS_INSN( "mpyi", 0x0a800000, OP_C3X ), - TC_CLASS_INSN( "mpyi", 0x05000000, OP_C3X ), - M_CLASS_INSN( "mpyi", "addi", 0x88000000, OP_C3X ), - QC_CLASS_INSN( "mpyi", "sti", 0xe0000000, OP_C3X ), - M_CLASS_INSN( "mpyi", "subi", 0x8c000000, OP_C3X ), - A_CLASS_INSN( "mpyshi", 0x1d800000, OP_C4X ), - TC_CLASS_INSN( "mpyshi", 0x28800000, OP_C4X ), - A_CLASS_INSN( "mpyuhi", 0x1e000000, OP_C4X ), - TC_CLASS_INSN( "mpyuhi", 0x29000000, OP_C4X ), - A_CLASS_INSN( "negb", 0x0b000000, OP_C3X ), - B_CLASS_INSN( "negf", 0x0b800000, OP_C3X ), - P_CLASS_INSN( "negf", "stf", 0xe2000000, OP_C3X ), - A_CLASS_INSN( "negi", 0x0c000000, OP_C3X ), - P_CLASS_INSN( "negi", "sti", 0xe4000000, OP_C3X ), - A2_CLASS_INSN( "nop", 0x0c800000, OP_C3X ), - B_CLASS_INSN( "norm", 0x0d000000, OP_C3X ), - AU_CLASS_INSN( "not", 0x0d800000, OP_C3X ), - P_CLASS_INSN( "not", "sti", 0xe6000000, OP_C3X ), - AU_CLASS_INSN( "or", 0x10000000, OP_C3X ), - TC_CLASS_INSN( "or", 0x05800000, OP_C3X ), - QC_CLASS_INSN( "or", "sti", 0xe8000000, OP_C3X ), - R_CLASS_INSN( "pop", 0x0e200000, OP_C3X ), - RF_CLASS_INSN( "popf", 0x0ea00000, OP_C3X ), - R_CLASS_INSN( "push", 0x0f200000, OP_C3X ), - RF_CLASS_INSN( "pushf", 0x0fa00000, OP_C3X ), - BA_CLASS_INSN( "rcpf", 0x1d000000, OP_C4X ), - { "retiB", 0x78000000, 0xffe00000, "" , OP_C3X }, /* Z_CLASS */ - { "reti", 0x78000000, 0xffe00000, "" , OP_C3X }, /* Z_CLASS - Alias for retiu */ - { "retiBd", 0x78200000, 0xffe00000, "" , OP_C4X }, /* Z_CLASS */ - { "retid", 0x78200000, 0xffe00000, "" , OP_C4X }, /* Z_CLASS - Alias for retiud */ - { "retsB", 0x78800000, 0xffe00000, "" , OP_C3X }, /* Z_CLASS */ - { "rets", 0x78800000, 0xffe00000, "" , OP_C3X }, /* Z_CLASS - Alias for retsu */ - B_CLASS_INSN( "rnd", 0x11000000, OP_C3X ), - R_CLASS_INSN( "rol", 0x11e00001, OP_C3X ), - R_CLASS_INSN( "rolc", 0x12600001, OP_C3X ), - R_CLASS_INSN( "ror", 0x12e0ffff, OP_C3X ), - R_CLASS_INSN( "rorc", 0x1360ffff, OP_C3X ), - { "rptb", 0x64000000, 0xff000000, "B" , OP_C3X }, /* I2_CLASS */ - { "rptb", 0x79000000, 0xff000000, "Q" , OP_C4X }, /* I2_CLASS */ - { "rptbd", 0x65000000, 0xff000000, "B" , OP_C4X }, /* I2_CLASS */ - { "rptbd", 0x79800000, 0xff000000, "Q" , OP_C4X }, /* I2_CLASS */ - A3_CLASS_INSN( "rpts", 0x139b0000, OP_C3X ), - B_CLASS_INSN( "rsqrf", 0x1c800000, OP_C4X ), - { "sigi", 0x16000000, 0xffe00000, "" , OP_C3X }, /* Z_CLASS */ - A6_CLASS_INSN( "sigi", 0x16000000, OP_C4X ), - B7_CLASS_INSN( "stf", 0x14000000, OP_C3X ), - LS_CLASS_INSN( "stf", 0xc0000000, OP_C3X ), - B7_CLASS_INSN( "stfi", 0x14800000, OP_C3X ), - A7_CLASS_INSN( "sti", 0x15000000, OP_C3X ), - { "sti", 0x15000000, 0xffe00000, "T,@" , OP_C4X }, /* Class A7 - Alias for stik */ - { "sti", 0x15600000, 0xffe00000, "T,*" , OP_C4X }, /* Class A7 */ - LS_CLASS_INSN( "sti", 0xc2000000, OP_C3X ), - A7_CLASS_INSN( "stii", 0x15800000, OP_C3X ), - { "stik", 0x15000000, 0xffe00000, "T,@" , OP_C4X }, /* Z_CLASS */ - { "stik", 0x15600000, 0xffe00000, "T,*" , OP_C4X }, /* Z_CLASS */ - A_CLASS_INSN( "subb", 0x16800000, OP_C3X ), - T_CLASS_INSN( "subb", 0x06000000, OP_C3X ), - A_CLASS_INSN( "subc", 0x17000000, OP_C3X ), - B_CLASS_INSN( "subf", 0x17800000, OP_C3X ), - S_CLASS_INSN( "subf", 0x06800000, OP_C3X ), - Q_CLASS_INSN( "subf", "stf", 0xea000000, OP_C3X ), - A_CLASS_INSN( "subi", 0x18000000, OP_C3X ), - T_CLASS_INSN( "subi", 0x07000000, OP_C3X ), - Q_CLASS_INSN( "subi", "sti", 0xec000000, OP_C3X ), - A_CLASS_INSN( "subrb", 0x18800000, OP_C3X ), - B_CLASS_INSN( "subrf", 0x19000000, OP_C3X ), - A_CLASS_INSN( "subri", 0x19800000, OP_C3X ), - { "swi", 0x66000000, 0xffffffff, "" , OP_C3X }, /* Z_CLASS */ - B_CLASS_INSN( "toieee", 0x1b800000, OP_C4X ), - P_CLASS_INSN( "toieee","stf", 0xf0000000, OP_C4X ), - { "trapB", 0x74000000, 0xffe00000, "V" , OP_C3X }, /* Z_CLASS */ - { "trap", 0x74000000, 0xffe00000, "V" , OP_C3X }, /* Z_CLASS - Alias for trapu */ - AU_CLASS_INSN( "tstb", 0x1a000000, OP_C3X ), - T2C_CLASS_INSN("tstb", 0x07800000, OP_C3X ), - AU_CLASS_INSN( "xor", 0x1a800000, OP_C3X ), - TC_CLASS_INSN( "xor", 0x08000000, OP_C3X ), - QC_CLASS_INSN( "xor", "sti", 0xee000000, OP_C3X ), - - /* Dummy entry, not included in tic4x_num_insts. This - lets code examine entry i + 1 without checking - if we've run off the end of the table. */ - { "", 0x0, 0x00, "", 0 } -}; - -const unsigned int tic4x_num_insts = (((sizeof tic4x_insts) / (sizeof tic4x_insts[0])) - 1); diff --git a/include/opcode/tic54x.h b/include/opcode/tic54x.h deleted file mode 100644 index f468714..0000000 --- a/include/opcode/tic54x.h +++ /dev/null @@ -1,163 +0,0 @@ -/* tic54x.h -- Header file for TI TMS320C54X opcode table - Copyright 1999, 2000, 2001, 2005, 2009, 2010 Free Software Foundation, Inc. - Written by Timothy Wall (twall@cygnus.com) - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -#ifndef _opcode_tic54x_h_ -#define _opcode_tic54x_h_ - -typedef struct _symbol -{ - const char *name; - unsigned short value; -} symbol; - -enum optype { - OPT = 0x8000, - OP_None = 0x0, - - OP_Xmem, /* AR3 or AR4, indirect */ - OP_Ymem, /* AR3 or AR4, indirect */ - OP_pmad, /* PROG mem, direct */ - OP_dmad, /* DATA mem, direct */ - OP_Smem, - OP_Lmem, /* 32-bit single-addressed (direct/indirect) */ - OP_MMR, - OP_PA, - OP_Sind, - OP_xpmad, - OP_xpmad_ms7, - OP_MMRX, - OP_MMRY, - - OP_SRC1, /* src accumulator in bit 8 */ - OP_SRC, /* src accumulator in bit 9 */ - OP_RND, /* rounded result dst accumulator, opposite of bit 8 */ - OP_DST, /* dst accumulator in bit 8 */ - OP_ARX, /* arX in bits 0-3 */ - OP_SHIFT, /* -16 to 15 (SHIFT), bits 0-4 */ - OP_SHFT, /* 0 to 15 (SHIFT1 in summary), bits 0-3 */ - OP_B, /* ACC B only */ - OP_A, /* ACC A only */ - - OP_lk, /* 16-bit immediate, '#' optional */ - OP_TS, - OP_k8, /* -128 <= k <= 128 */ - OP_16, /* literal "16" */ - OP_BITC, /* 0 to 16 */ - OP_CC, /* condition code */ - OP_CC2, /* 4-bit condition code */ - OP_CC3, /* 2-bit condition code */ - OP_123, /* 1, 2, or 3 */ - OP_031, /* 0-31, numeric */ - OP_k5, /* 0 to 31 */ - OP_k8u, /* 0 to 255 */ - OP_ASM, /* "ASM" */ - OP_T, /* "T" */ - OP_DP, /* "DP" */ - OP_ARP, /* "ARP" */ - OP_k3, /* 0-7 */ - OP_lku, /* 0 to 65535 */ - OP_N, /* 0/1 or ST0/ST1 */ - OP_SBIT, /* status bit or 0-15 */ - OP_12, /* one or two */ - OP_k9, /* 9 bits of data page (DP) address */ - OP_TRN, /* "TRN" */ - -}; - -typedef struct _template -{ - /* The opcode mnemonic */ - const char *name; - unsigned int words; /* insn size in words */ - int minops, maxops; /* min/max operand count */ - /* The significant bits in the opcode. Other bits are zero. - Instructions with more than 16 bits of opcode store the rest in the upper - 16 bits. - */ - unsigned short opcode; -#define INDIRECT(OP) ((OP)&0x80) -#define MOD(OP) (((OP)>>3)&0xF) -#define ARF(OP) ((OP)&0x7) -#define IS_LKADDR(OP) (INDIRECT(OP) && MOD(OP)>=12) -#define SRC(OP) ((OP)&0x200) -#define DST(OP) ((OP)&0x100) -#define SRC1(OP) ((OP)&0x100) -#define SHIFT(OP) (((OP)&0x10)?(((OP)&0x1F)-32):((OP)&0x1F)) -#define SHFT(OP) ((OP)&0xF) -#define ARX(OP) ((OP)&0x7) -#define XMEM(OP) (((OP)&0x00F0)>>4) -#define YMEM(OP) ((OP)&0x000F) -#define XMOD(C) (((C)&0xC)>>2) -#define XARX(C) (((C)&0x3)+2) -#define CC3(OP) (((OP)>>8)&0x3) -#define SBIT(OP) ((OP)&0xF) -#define MMR(OP) ((OP)&0x7F) -#define MMRX(OP) ((((OP)>>4)&0xF)+16) -#define MMRY(OP) (((OP)&0xF)+16) - -#define OPTYPE(X) ((X)&~OPT) - - /* Ones in this mask indicate which bits must match the opcode field. - Zeroes indicate don't care bits (operands and/or opcode options) */ - unsigned short mask; - - /* An array of operand codes (at most 4 operands) */ -#define MAX_OPERANDS 4 - enum optype operand_types[MAX_OPERANDS]; - - /* Special purpose flags (e.g. branch type, parallel, delay, etc) - */ - unsigned short flags; -#define B_NEXT 0 /* normal execution, next insn is next address */ -#define B_BRANCH 1 /* next insn is in opcode */ -#define B_RET 2 /* next insn is on stack */ -#define B_BACC 3 /* next insn is in acc */ -#define B_REPEAT 4 /* next insn repeats */ -#define FL_BMASK 0x07 - -#define FL_DELAY 0x10 /* instruction uses delay slots */ -#define FL_EXT 0x20 /* instruction takes two words */ -#define FL_FAR 0x40 /* far mode addressing */ -#define FL_LP 0x80 /* LP-only instruction */ -#define FL_NR 0x100 /* no repeat allowed */ -#define FL_SMR 0x200 /* Smem read (for flagging write-only *+ARx */ - -#define FL_PAR 0x400 /* Parallel instruction. */ - - unsigned short opcode2, mask2; /* some insns have an extended opcode */ - - const char* parname; - enum optype paroperand_types[MAX_OPERANDS]; - -} insn_template; - -extern const insn_template tic54x_unknown_opcode; -extern const insn_template tic54x_optab[]; -extern const insn_template tic54x_paroptab[]; -extern const symbol mmregs[], regs[]; -extern const symbol condition_codes[], cc2_codes[], status_bits[]; -extern const symbol cc3_codes[]; -extern const char *misc_symbols[]; -struct disassemble_info; -extern const insn_template* tic54x_get_insn (struct disassemble_info *, - bfd_vma, unsigned short, int *); - -#endif /* _opcode_tic54x_h_ */ diff --git a/include/opcode/tic6x-control-registers.h b/include/opcode/tic6x-control-registers.h deleted file mode 100644 index b438777..0000000 --- a/include/opcode/tic6x-control-registers.h +++ /dev/null @@ -1,56 +0,0 @@ -/* TI C6X control register information. - Copyright 2010 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* Define the CTRL macro before including this file; it takes as - arguments the fields from tic6x_ctrl (defined in tic6x.h). The - control register name is given as an identifier; the isa_variants - field without the leading TIC6X_INSN_; the rw field without the - leading tic6x_rw_. */ - -CTRL(amr, C62X, read_write, 0x0, 0x10) -CTRL(csr, C62X, read_write, 0x1, 0x10) -CTRL(dnum, C64XP, read, 0x11, 0x1f) -CTRL(ecr, C64XP, write, 0x1d, 0x1f) -CTRL(efr, C64XP, read, 0x1d, 0x1f) -CTRL(fadcr, C67X, read_write, 0x12, 0x1f) -CTRL(faucr, C67X, read_write, 0x13, 0x1f) -CTRL(fmcr, C67X, read_write, 0x14, 0x1f) -CTRL(gfpgfr, C64X, read_write, 0x18, 0x1f) -CTRL(gplya, C64XP, read_write, 0x16, 0x1f) -CTRL(gplyb, C64XP, read_write, 0x17, 0x1f) -CTRL(icr, C62X, write, 0x3, 0x10) -CTRL(ier, C62X, read_write, 0x4, 0x10) -CTRL(ierr, C64XP, read_write, 0x1f, 0x1f) -CTRL(ifr, C62X, read, 0x2, 0x1d) -CTRL(ilc, C64XP, read_write, 0xd, 0x1f) -CTRL(irp, C62X, read_write, 0x6, 0x10) -CTRL(isr, C62X, write, 0x2, 0x10) -CTRL(istp, C62X, read_write, 0x5, 0x10) -CTRL(itsr, C64XP, read_write, 0x1b, 0x1f) -CTRL(nrp, C62X, read_write, 0x7, 0x10) -CTRL(ntsr, C64XP, read_write, 0x1c, 0x1f) -CTRL(pce1, C62X, read, 0x10, 0xf) -CTRL(rep, C64XP, read_write, 0xf, 0x1f) -CTRL(rilc, C64XP, read_write, 0xe, 0x1f) -CTRL(ssr, C64XP, read_write, 0x15, 0x1f) -CTRL(tsch, C64XP, read, 0xb, 0x1f) -/* Contrary to Table 3-26 in SPRUFE8, this register is read-write, as - documented in section 2.9.13. */ -CTRL(tscl, C64XP, read_write, 0xa, 0x1f) -CTRL(tsr, C64XP, read_write, 0x1a, 0x1f) diff --git a/include/opcode/tic6x-insn-formats.h b/include/opcode/tic6x-insn-formats.h deleted file mode 100644 index 80bc9fa..0000000 --- a/include/opcode/tic6x-insn-formats.h +++ /dev/null @@ -1,616 +0,0 @@ -/* TI C6X instruction format information. - Copyright 2010-2013 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* Define the FMT macro before including this file; it takes a name - and the fields from tic6x_insn_format (defined in tic6x.h). */ - -/* Expansion fields values for 16 bits insn. */ -#define SAT(a) (((a) & 1) << TIC6X_COMPACT_SAT_POS) -#define BR(a) (((a) & 1) << TIC6X_COMPACT_BR_POS) -#define DSZ(a) (((a) & 7) << TIC6X_COMPACT_DSZ_POS) -/* Composite fields for 16 bits insn. */ -#define BFLD(low_pos, width, pos) { (low_pos), (width), (pos) } -#define BFLD1(a) 1, { a } -#define BFLD2(a, b) 2, { a, b } -#define BFLD3(a, b, c) 3, { a, b, c } -#define BFLD4(a, b, c, d) 4, { a, b, c, d } -#define COMPFLD(name, bitfields) { CONCAT2(tic6x_field_,name), bitfields } -/**/ -#define FLD(name, pos, width) { CONCAT2(tic6x_field_,name), BFLD1(BFLD(pos, width, 0)) } -#define CFLDS FLD(p, 0, 1), FLD(creg, 29, 3), FLD(z, 28, 1) -#define CFLDS2(a, b) 5, { CFLDS, a, b } -#define CFLDS3(a, b, c) 6, { CFLDS, a, b, c } -#define CFLDS4(a, b, c, d) 7, { CFLDS, a, b, c, d } -#define CFLDS5(a, b, c, d, e) 8, { CFLDS, a, b, c, d, e } -#define CFLDS6(a, b, c, d, e, f) 9, { CFLDS, a, b, c, d, e, f } -#define CFLDS7(a, b, c, d, e, f, g) 10, { CFLDS, a, b, c, d, e, f, g } -#define CFLDS8(a, b, c, d, e, f, g, h) 11, { CFLDS, a, b, c, d, e, f, g, h } -#define NFLDS FLD(p, 0, 1) -#define NFLDS1(a) 2, { NFLDS, a } -#define NFLDS2(a, b) 3, { NFLDS, a, b } -#define NFLDS3(a, b, c) 4, { NFLDS, a, b, c } -#define NFLDS5(a, b, c, d, e) 6, { NFLDS, a, b, c, d, e } -#define NFLDS6(a, b, c, d, e, f) 7, { NFLDS, a, b, c, d, e, f } -#define NFLDS7(a, b, c, d, e, f, g) 8, { NFLDS, a, b, c, d, e, f, g } -/* 16 bits insn */ -#define FLDS1(a) 1, { a } -#define FLDS2(a, b) 2, { a, b } -#define FLDS3(a, b, c) 3, { a, b, c } -#define FLDS4(a, b, c, d) 4, { a, b, c, d } -#define FLDS5(a, b, c, d, e) 5, { a, b, c, d, e } -#define SFLDS FLD(s, 0, 1) -#define SFLDS1(a) 2, { SFLDS, a } -#define SFLDS2(a, b) 3, { SFLDS, a, b } -#define SFLDS3(a, b, c) 4, { SFLDS, a, b, c } -#define SFLDS4(a, b, c, d) 5, { SFLDS, a, b, c, d } -#define SFLDS5(a, b, c, d, e) 6, { SFLDS, a, b, c, d, e } -#define SFLDS6(a, b, c, d, e, f) 7, { SFLDS, a, b, c, d, e, f } -#define SFLDS7(a, b, c, d, e, f, g) 8, { SFLDS, a, b, c, d, e, f, g } -/**/ - -/* These are in the order from SPRUFE8, appendices C-H. */ - -/* Appendix C 32-bit formats. */ - -FMT(d_1_or_2_src, 32, 0x40, 0x7c, - CFLDS5(FLD(s, 1, 1), FLD(op, 7, 6), FLD(src1, 13, 5), FLD(src2, 18, 5), - FLD(dst, 23, 5))) -FMT(d_ext_1_or_2_src, 32, 0x830, 0xc3c, - CFLDS6(FLD(s, 1, 1), FLD(op, 6, 4), FLD(x, 12, 1), FLD(src1, 13, 5), - FLD(src2, 18, 5), FLD(dst, 23, 5))) -FMT(d_load_store, 32, 0x4, 0xc, - CFLDS8(FLD(s, 1, 1), FLD(op, 4, 3), FLD(y, 7, 1), FLD(r, 8, 1), - FLD(mode, 9, 4), FLD(offsetR, 13, 5), FLD(baseR, 18, 5), - FLD(srcdst, 23, 5))) -/* The nonaligned loads and stores have the formats shown in the - individual instruction descriptions; the appendix is incorrect. */ -FMT(d_load_nonaligned, 32, 0x124, 0x17c, - CFLDS7(FLD(s, 1, 1), FLD(y, 7, 1), FLD(mode, 9, 4), FLD(offsetR, 13, 5), - FLD(baseR, 18, 5), FLD(sc, 23, 1), FLD(dst, 24, 4))) -FMT(d_store_nonaligned, 32, 0x174, 0x17c, - CFLDS7(FLD(s, 1, 1), FLD(y, 7, 1), FLD(mode, 9, 4), FLD(offsetR, 13, 5), - FLD(baseR, 18, 5), FLD(sc, 23, 1), FLD(src, 24, 4))) -FMT(d_load_store_long, 32, 0xc, 0xc, - CFLDS5(FLD(s, 1, 1), FLD(op, 4, 3), FLD(y, 7, 1), FLD(offsetR, 8, 15), - FLD(dst, 23, 5))) -FMT(d_adda_long, 32, 0x1000000c, 0xf000000c, - NFLDS5(FLD(s, 1, 1), FLD(op, 4, 3), FLD(y, 7, 1), FLD(offsetR, 8, 15), - FLD(dst, 23, 5))) - -/* Appendix C 16-bit formats will go here. */ - -/* C-8 */ -FMT(d_doff4_dsz_0xx, 16, DSZ(0) | 0x0004, DSZ(0x4) | 0x0406, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), FLD(t, 12, 1), - COMPFLD(cst, BFLD2(BFLD(13, 3, 0), BFLD(11, 1, 3))))) -FMT(d_doff4_dsz_100, 16, DSZ(4) | 0x0004, DSZ(0x7) | 0x0406, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), FLD(t, 12, 1), - COMPFLD(cst, BFLD2(BFLD(13, 3, 0), BFLD(11, 1, 3))))) -FMT(d_doff4_dsz_000, 16, DSZ(0) | 0x0004, DSZ(0x7) | 0x0406, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), FLD(t, 12, 1), - COMPFLD(cst, BFLD2(BFLD(13, 3, 0), BFLD(11, 1, 3))))) -FMT(d_doff4_dsz_x01, 16, DSZ(1) | 0x0004, DSZ(0x3) | 0x0406, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), FLD(t, 12, 1), - COMPFLD(cst, BFLD2(BFLD(13, 3, 0), BFLD(11, 1, 3))))) -FMT(d_doff4_dsz_01x, 16, DSZ(2) | 0x0004, DSZ(0x6) | 0x0406, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), FLD(t, 12, 1), - COMPFLD(cst, BFLD2(BFLD(13, 3, 0), BFLD(11, 1, 3))))) -FMT(d_doff4_dsz_111, 16, DSZ(7) | 0x0004, DSZ(0x7) | 0x0406, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), FLD(t, 12, 1), - COMPFLD(cst, BFLD2(BFLD(13, 3, 0), BFLD(11, 1, 3))))) -FMT(d_doff4_dsz_x11, 16, DSZ(3) | 0x0004, DSZ(0x3) | 0x0406, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), FLD(t, 12, 1), - COMPFLD(cst, BFLD2(BFLD(13, 3, 0), BFLD(11, 1, 3))))) -FMT(d_doff4_dsz_010, 16, DSZ(2) | 0x0004, DSZ(0x7) | 0x0406, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), FLD(t, 12, 1), - COMPFLD(cst, BFLD2(BFLD(13, 3, 0), BFLD(11, 1, 3))))) -FMT(d_doff4_dsz_110, 16, DSZ(6) | 0x0004, DSZ(0x7) | 0x0406, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), FLD(t, 12, 1), - COMPFLD(cst, BFLD2(BFLD(13, 3, 0), BFLD(11, 1, 3))))) - -/* C-9 */ -FMT(d_doff4dw, 16, DSZ(4) | 0x0004, DSZ(0x4) | 0x0406, - SFLDS7(FLD(op, 3, 1), FLD(na, 4, 1), FLD(srcdst, 5, 2), FLD(ptr, 7, 2), FLD(sz, 9, 1), FLD(t, 12, 1), - COMPFLD(cst, BFLD2(BFLD(13, 3, 0), BFLD(11, 1, 3))))) - -/* C-10 */ -FMT(d_dind_dsz_0xx, 16, DSZ(0) | 0x0404, DSZ(0x4) | 0x0c06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(src1, 13, 3))) - -FMT(d_dind_dsz_x01, 16, DSZ(1) | 0x0404, DSZ(0x3) | 0x0c06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(src1, 13, 3))) - -FMT(d_dind_dsz_x11, 16, DSZ(3) | 0x0404, DSZ(0x3) | 0x0c06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(src1, 13, 3))) - -FMT(d_dind_dsz_01x, 16, DSZ(2) | 0x0404, DSZ(0x6) | 0x0c06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(src1, 13, 3))) - -FMT(d_dind_dsz_000, 16, DSZ(0) | 0x0404, DSZ(0x7) | 0x0c06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(src1, 13, 3))) - -FMT(d_dind_dsz_010, 16, DSZ(2) | 0x0404, DSZ(0x7) | 0x0c06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(src1, 13, 3))) - -FMT(d_dind_dsz_100, 16, DSZ(4) | 0x0404, DSZ(0x7) | 0x0c06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(src1, 13, 3))) - -FMT(d_dind_dsz_110, 16, DSZ(6) | 0x0404, DSZ(0x7) | 0x0c06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(src1, 13, 3))) - -FMT(d_dind_dsz_111, 16, DSZ(7) | 0x0404, DSZ(0x7) | 0x0c06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(src1, 13, 3))) - -/* C-11 */ -FMT(d_dinddw, 16, DSZ(4) | 0x0404, DSZ(0x4) | 0x0c06, - SFLDS7(FLD(op, 3, 1), FLD(na, 4, 1), FLD(srcdst, 5, 2), FLD(ptr, 7, 2), - FLD(sz, 9, 1), FLD(t, 12, 1), FLD(src1, 13, 3))) - -/* C-12 */ -FMT(d_dinc_dsz_x01, 16, DSZ(1) | 0x0c04, DSZ(0x3) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_dinc_dsz_0xx, 16, DSZ(0) | 0x0c04, DSZ(0x4) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_dinc_dsz_01x, 16, DSZ(2) | 0x0c04, DSZ(0x6) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_dinc_dsz_x11,16, DSZ(3) | 0x0c04, DSZ(0x3) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_dinc_dsz_000, 16, DSZ(0) | 0x0c04, DSZ(0x7) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_dinc_dsz_010, 16, DSZ(2) | 0x0c04, DSZ(0x7) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_dinc_dsz_100, 16, DSZ(4) | 0x0c04, DSZ(0x7) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_dinc_dsz_110, 16, DSZ(6) | 0x0c04, DSZ(0x7) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_dinc_dsz_111, 16, DSZ(7) | 0x0c04, DSZ(0x7) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -/* C-13*/ -FMT(d_dincdw, 16, DSZ(4) | 0x0c04, DSZ(0x4) | 0xcc06, - SFLDS7(FLD(op, 3, 1), FLD(na, 4, 1), FLD(srcdst, 5, 2), FLD(ptr, 7, 2), - FLD(sz, 9, 1), FLD(t, 12, 1), FLD(cst, 13, 1))) - -/* C-14 */ -FMT(d_ddec_dsz_01x, 16, DSZ(2) | 0x4c04, DSZ(0x6) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_ddec_dsz_0xx, 16, DSZ(0) | 0x4c04, DSZ(0x4) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_ddec_dsz_x01, 16, DSZ(1) | 0x4c04, DSZ(0x3) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_ddec_dsz_x11, 16, DSZ(3) | 0x4c04, DSZ(0x3) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_ddec_dsz_000, 16, DSZ(0) | 0x4c04, DSZ(0x7) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_ddec_dsz_010, 16, DSZ(2) | 0x4c04, DSZ(0x7) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_ddec_dsz_100, 16, DSZ(4) | 0x4c04, DSZ(0x7) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_ddec_dsz_110, 16, DSZ(6) | 0x4c04, DSZ(0x7) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -FMT(d_ddec_dsz_111, 16, DSZ(7) | 0x4c04, DSZ(0x7) | 0xcc06, - SFLDS6(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(ptr, 7, 2), FLD(sz, 9, 1), - FLD(t, 12, 1), FLD(cst, 13, 1))) - -/* C-15 */ -FMT(d_ddecdw, 16, DSZ(4) | 0x4c04, DSZ(0x4) | 0xcc06, - SFLDS7(FLD(op, 3, 1), FLD(na, 4, 1), FLD(srcdst, 5, 2), FLD(ptr, 7, 2), - FLD(sz, 9, 1), FLD(t, 12, 1), FLD(cst, 13, 1))) - -/* C-16 */ -FMT(d_dstk, 16, 0x8c04, 0x8c06, - SFLDS4(FLD(op, 3, 1), FLD(srcdst, 4, 3), FLD(t, 12, 1), - COMPFLD(cst, BFLD2(BFLD(7, 3, 2), BFLD(13, 2, 0))))) - -/* C-17 */ -FMT(d_dx2op, 16, 0x0036, 0x047e, - SFLDS4(FLD(src2, 7, 3), FLD(op, 11, 1), FLD(x, 12, 1), FLD(srcdst, 13, 3))) - -/* C-18 */ -FMT(d_dx5, 16, 0x0436, 0x047e, - SFLDS2(FLD(dst, 7, 3), - COMPFLD(cst, BFLD2(BFLD(11, 2, 3), BFLD(13, 3, 0))))) - -/* C-19 */ -FMT(d_dx5p, 16, 0x0c76, 0x1c7e, - SFLDS2(FLD(op, 7, 1), - COMPFLD(cst, BFLD2(BFLD(8, 2, 3), BFLD(13, 3, 0))))) - -/* C-20 */ -FMT(d_dx1, 16, 0x1876, 0x1c7e, - SFLDS2(FLD(srcdst, 7, 3), FLD(op, 13, 3))) - -/* C-21 */ -FMT(d_dpp, 16, 0x0077, 0x087f, - SFLDS5(FLD(srcdst, 7, 4), FLD(t, 12, 1), FLD(cst, 13, 1), FLD(op, 14, 1), - FLD(dw, 15, 1))) - -/* Appendix D 32-bit formats. */ - -FMT(l_1_or_2_src, 32, 0x18, 0x1c, - CFLDS6(FLD(s, 1, 1), FLD(op, 5, 7), FLD(x, 12, 1), FLD(src1, 13, 5), - FLD(src2, 18, 5), FLD(dst, 23, 5))) -FMT(l_1_or_2_src_noncond, 32, 0x10000018, 0xf000001c, - NFLDS6(FLD(s, 1, 1), FLD(op, 5, 7), FLD(x, 12, 1), FLD(src1, 13, 5), - FLD(src2, 18, 5), FLD(dst, 23, 5))) -FMT(l_unary, 32, 0x358, 0xffc, - CFLDS5(FLD(s, 1, 1), FLD(x, 12, 1), FLD(op, 13, 5), FLD(src2, 18, 5), - FLD(dst, 23, 5))) - -/* Appendix D 16-bit formats will go here. */ - -/* D-4 */ -FMT(l_l3_sat_0, 16, SAT(0) | 0x0000, SAT(1) | 0x040e, - SFLDS5(FLD(dst, 4, 3), FLD(src2, 7, 3), FLD(op, 11, 1), FLD(x, 12, 1), - FLD(src1, 13, 3))) - -FMT(l_l3_sat_1, 16, SAT(1) | 0x0000, SAT(1) | 0x040e, - SFLDS5(FLD(dst, 4, 3), FLD(src2, 7, 3), FLD(op, 11, 1), FLD(x, 12, 1), - FLD(src1, 13, 3))) - -/* D-5 - combine cst3 and n fields into a single field cst */ -FMT(l_l3i, 16, 0x0400, 0x040e, - SFLDS5(FLD(dst, 4, 3), FLD(src2, 7, 3), FLD(sn, 11, 1), FLD(x, 12, 1), - COMPFLD(cst, BFLD2(BFLD(13, 3, 0), BFLD(11, 1, 3))))) - -/* D-6 Mtbd ? */ - -/* D-7 */ -FMT(l_l2c, 16, 0x0408, 0x040e, - SFLDS5(FLD(dst, 4, 1), FLD(src2, 7, 3), FLD(x, 12, 1), FLD(src1, 13, 3), - COMPFLD(op, BFLD2(BFLD(5, 2, 0), BFLD(11, 1, 2))))) - -/* D-8 */ -FMT(l_lx5, 16, 0x0426, 0x047e, - SFLDS2(FLD(dst, 7, 3), - COMPFLD(cst, BFLD2(BFLD(11, 2, 3), BFLD(13, 3, 0))))) - -/* D-9 */ -FMT(l_lx3c, 16, 0x0026, 0x147e, - SFLDS3(FLD(src2, 7, 3), FLD(dst, 11, 1), FLD(cst, 13, 3))) - -/* D-10 */ -FMT(l_lx1c, 16, 0x1026, 0x147e, - SFLDS4(FLD(src2, 7, 3), FLD(dst, 11, 1), FLD(cst, 13, 1), FLD(op, 14, 2))) - -/* D-11 */ -FMT(l_lx1, 16, 0x1866, 0x1c7e, - SFLDS2(FLD(srcdst, 7, 3), FLD(op, 13, 3))) - -/* Appendix E 32-bit formats. */ - -FMT(m_compound, 32, 0x30, 0x83c, - CFLDS6(FLD(s, 1, 1), FLD(op, 6, 5), FLD(x, 12, 1), FLD(src1, 13, 5), - FLD(src2, 18, 5), FLD(dst, 23, 5))) -FMT(m_1_or_2_src, 32, 0x10000030, 0xf000083c, - NFLDS6(FLD(s, 1, 1), FLD(op, 6, 5), FLD(x, 12, 1), FLD(src1, 13, 5), - FLD(src2, 18, 5), FLD(dst, 23, 5))) -/* Contrary to SPRUFE8, this does have predicate fields. */ -FMT(m_unary, 32, 0xf0, 0xffc, - CFLDS5(FLD(s, 1, 1), FLD(x, 12, 1), FLD(op, 13, 5), FLD(src2, 18, 5), - FLD(dst, 23, 5))) - -/* M-unit formats missing from Appendix E. */ -FMT(m_mpy, 32, 0x0, 0x7c, - CFLDS6(FLD(s, 1, 1), FLD(op, 7, 5), FLD(x, 12, 1), FLD(src1, 13, 5), - FLD(src2, 18, 5), FLD(dst, 23, 5))) - -/* Appendix E 16-bit formats will go here. */ -FMT(m_m3_sat_0, 16, SAT(0) | 0x001e, SAT(1) | 0x001e, - SFLDS5(FLD(op, 5, 2), FLD(src2, 7, 3), FLD(dst, 10, 2), - FLD(x, 12, 1), FLD(src1, 13, 3))) -FMT(m_m3_sat_1, 16, SAT(1) | 0x001e, SAT(1) | 0x001e, - SFLDS5(FLD(op, 5, 2), FLD(src2, 7, 3), FLD(dst, 10, 2), - FLD(x, 12, 1), FLD(src1, 13, 3))) - -/* Appendix F 32-bit formats. */ - -FMT(s_1_or_2_src, 32, 0x20, 0x3c, - CFLDS6(FLD(s, 1, 1), FLD(op, 6, 6), FLD(x, 12, 1), FLD(src1, 13, 5), - FLD(src2, 18, 5), FLD(dst, 23 ,5))) -FMT(s_ext_1_or_2_src, 32, 0xc30, 0xc3c, - CFLDS6(FLD(s, 1, 1), FLD(op, 6, 4), FLD(x, 12, 1), FLD(src1, 13, 5), - FLD(src2, 18, 5), FLD(dst, 23, 5))) -FMT(s_ext_1_or_2_src_noncond, 32, 0xc30, 0xe0000c3c, - NFLDS7(FLD(s, 1, 1), FLD(op, 6, 4), FLD(x, 12, 1), FLD(src1, 13, 5), - FLD(src2, 18, 5), FLD(dst, 23, 5), FLD(z, 28, 1))) -FMT(s_unary, 32, 0xf20, 0xffc, - CFLDS5(FLD(s, 1, 1), FLD(x, 12, 1), FLD(op, 13, 5), FLD(src2, 18, 5), - FLD(dst, 23, 5))) -FMT(s_ext_branch_cond_imm, 32, 0x10, 0x7c, - CFLDS2(FLD(s, 1, 1), FLD(cst, 7, 21))) -FMT(s_call_imm_nop, 32, 0x10, 0xe000007c, - NFLDS3(FLD(s, 1, 1), FLD(cst, 7, 21), FLD(z, 28, 1))) -FMT(s_branch_nop_cst, 32, 0x120, 0x1ffc, - CFLDS3(FLD(s, 1, 1), FLD(src1, 13, 3), FLD(src2, 16, 12))) -FMT(s_branch_nop_reg, 32, 0x800360, 0xf830ffc, - CFLDS4(FLD(s, 1, 1), FLD(x, 12, 1), FLD(src1, 13, 3), FLD(src2, 18, 5))) -FMT(s_branch, 32, 0x360, 0xf83effc, - CFLDS3(FLD(s, 1, 1), FLD(x, 12, 1), FLD(src2, 18, 5))) -FMT(s_mvk, 32, 0x28, 0x3c, - CFLDS4(FLD(s, 1, 1), FLD(h, 6, 1), FLD(cst, 7, 16), FLD(dst, 23, 5))) -FMT(s_field, 32, 0x8, 0x3c, - CFLDS6(FLD(s, 1, 1), FLD(op, 6, 2), FLD(cstb, 8, 5), FLD(csta, 13, 5), - FLD(src2, 18, 5), FLD(dst, 23, 5))) - -/* S-unit formats missing from Appendix F. */ -FMT(s_addk, 32, 0x50, 0x7c, - CFLDS3(FLD(s, 1, 1), FLD(cst, 7, 16), FLD(dst, 23, 5))) -FMT(s_addkpc, 32, 0x160, 0x1ffc, - CFLDS4(FLD(s, 1, 1), FLD(src2, 13, 3), FLD(src1, 16, 7), FLD(dst, 23, 5))) -FMT(s_b_irp, 32, 0x1800e0, 0x7feffc, - CFLDS3(FLD(s, 1, 1), FLD(x, 12, 1), FLD(dst, 23, 5))) -FMT(s_b_nrp, 32, 0x1c00e0, 0x7feffc, - CFLDS3(FLD(s, 1, 1), FLD(x, 12, 1), FLD(dst, 23, 5))) -FMT(s_bdec, 32, 0x1020, 0x1ffc, - CFLDS3(FLD(s, 1, 1), FLD(src, 13, 10), FLD(dst, 23, 5))) -FMT(s_bpos, 32, 0x20, 0x1ffc, - CFLDS3(FLD(s, 1, 1), FLD(src, 13, 10), FLD(dst, 23, 5))) - -/* Appendix F 16-bit formats will go here. */ - -/* F-17 Sbs7 Instruction Format */ -FMT(s_sbs7, 16, BR(1) | 0x000a, BR(1) | 0x003e, - SFLDS2(FLD(cst, 6, 7), FLD(n, 13, 3))) - -/* F-18 Sbu8 Instruction Format */ -FMT(s_sbu8, 16, BR(1) | 0xc00a, BR(1) | 0xc03e, - SFLDS1(FLD(cst, 6, 8))) - -/* F-19 Scs10 Instruction Format */ -FMT(s_scs10, 16, BR(1) | 0x001a, BR(1) | 0x003e, - SFLDS1(FLD(cst, 6, 10))) - -/* F-20 Sbs7c Instruction Format */ -FMT(s_sbs7c, 16, BR(1) | 0x002a, BR(1) | 0x002e, - SFLDS3(FLD(z, 4, 1), FLD(cst, 6, 7), FLD(n, 13, 3))) - -/* F-21 Sbu8c Instruction Format */ -FMT(s_sbu8c, 16, BR(1) | 0xc02a, BR(1) | 0xc02e, - SFLDS2(FLD(z, 4, 1), FLD(cst, 6, 8))) - -/* F-22 S3 Instruction Format */ -FMT(s_s3, 16, BR(0) | 0x000a, BR(1) | 0x040e, - SFLDS5(FLD(dst, 4, 3), FLD(src2, 7, 3), FLD(op, 11, 1), FLD(x, 12, 1), - FLD(src1, 13, 3))) - -FMT(s_s3_sat_x, 16, BR(0) | SAT(0) | 0x000a, BR(1) | SAT(0) | 0x040e, - SFLDS5(FLD(dst, 4, 3), FLD(src2, 7, 3), FLD(op, 11, 1), FLD(x, 12, 1), - FLD(src1, 13, 3))) - -FMT(s_s3_sat_0, 16, BR(0) | SAT(0) | 0x000a, BR(1) | SAT(1) | 0x040e, - SFLDS5(FLD(dst, 4, 3), FLD(src2, 7, 3), FLD(op, 11, 1), FLD(x, 12, 1), - FLD(src1, 13, 3))) - -FMT(s_s3_sat_1, 16, BR(0) | SAT(1) | 0x000a, BR(1) | SAT(1) | 0x040e, - SFLDS5(FLD(dst, 4, 3), FLD(src2, 7, 3), FLD(op, 11, 1), FLD(x, 12, 1), - FLD(src1, 13, 3))) - -/* F-23 S3i Instruction Format */ -FMT(s_s3i, 16, BR(0) | 0x040a, BR(1) | 0x040e, - SFLDS5(FLD(dst, 4, 3), FLD(src2, 7, 3), FLD(op, 11, 1), FLD(x, 12, 1), - FLD(cst, 13, 3))) - -/* F-24 Smvk8 Instruction Format */ -FMT(s_smvk8, 16, 0x0012, 0x001e, - SFLDS2(FLD(dst, 7, 3), - COMPFLD(cst, BFLD4(BFLD(10, 1, 7), BFLD(5, 2, 5), BFLD(11, 2, 3), BFLD(13, 3, 0))))) - -/* F-25 Ssh5 Instruction Format */ -FMT(s_ssh5_sat_x, 16, SAT(0) | 0x0402, SAT(0) | 0x041e, - SFLDS3(FLD(op, 5, 2), FLD(srcdst, 7, 3), - COMPFLD(cst, BFLD2(BFLD(11, 2, 3), BFLD(13, 3, 0))))) -FMT(s_ssh5_sat_0, 16, SAT(0) | 0x0402, SAT(1) | 0x041e, - SFLDS3(FLD(op, 5, 2), FLD(srcdst, 7, 3), - COMPFLD(cst, BFLD2(BFLD(11, 2, 3), BFLD(13, 3, 0))))) -FMT(s_ssh5_sat_1, 16, SAT(1) | 0x0402, SAT(1) | 0x041e, - SFLDS3(FLD(op, 5, 2), FLD(srcdst, 7, 3), - COMPFLD(cst, BFLD2(BFLD(11, 2, 3), BFLD(13, 3, 0))))) - -/* F-26 S2sh Instruction Format */ -FMT(s_s2sh, 16, 0x0462, 0x047e, - SFLDS3(FLD(srcdst, 7, 3), FLD(op, 11, 2), FLD(src1, 13, 3))) - -/* F-27 Sc5 Instruction Format */ -FMT(s_sc5, 16, 0x0002, 0x041e, - SFLDS3(FLD(op, 5, 2), FLD(srcdst, 7, 3), - COMPFLD(cst, BFLD2(BFLD(11, 2, 3), BFLD(13, 3, 0))))) - -/* F-28 S2ext Instruction Format */ -FMT(s_s2ext, 16, 0x0062, 0x047e, - SFLDS3(FLD(src, 7, 3), FLD(op, 11, 2), FLD(dst, 13, 3))) - -/* F-29 Sx2op Instruction Format */ -FMT(s_sx2op, 16, 0x002e, 0x047e, - SFLDS4(FLD(src2, 7, 3), FLD(op, 11, 1), FLD(x, 12, 1), - FLD(srcdst, 13, 3))) - -/* F-30 Sx5 Instruction Format */ -FMT(s_sx5, 16, 0x042e, 0x047e, - SFLDS2(FLD(dst, 7, 3), - COMPFLD(cst, BFLD2(BFLD(11, 2, 3), BFLD(13, 3, 0))))) - -/* F-31 Sx1 Instruction Format */ -FMT(s_sx1, 16, 0x186e, 0x1c7e, - SFLDS2(FLD(srcdst, 7, 3), FLD(op, 13, 3))) - -/* F-32 Sx1b Instruction Format */ -FMT(s_sx1b, 16, 0x006e, 0x187e, - SFLDS2(FLD(src2, 7, 4), FLD(n, 13, 3))) - -/* Appendix G 16-bit formats will go here. */ -FMT(lsdmvto, 16, 0x0006, 0x0066, - SFLDS4(FLD(unit, 3, 2), - FLD(x, 12, 1), FLD(dst, 13, 3), - COMPFLD(src2, BFLD2(BFLD(10, 2, 3), BFLD(7, 3, 0))))) - -FMT(lsdmvfr, 16, 0x0046, 0x0066, - SFLDS4(FLD(unit, 3, 2), FLD(src2, 7, 3), FLD(x, 12, 1), - COMPFLD(dst, BFLD2(BFLD(10, 2, 3), BFLD(13, 3, 0))))) - -/* G-3 */ -FMT(lsdx1c, 16, 0x0866, 0x1c66, - SFLDS4(FLD(unit, 3, 2), FLD(dst, 7, 3), FLD(cst, 13, 1), - FLD(cc, 14, 2))) - -/* G-4 */ -FMT(lsdx1, 16, 0x1866, 0x1c66, - SFLDS3(FLD(unit, 3, 2), FLD(srcdst, 7, 3), FLD(op, 13, 3))) - -/* Appendix H 32-bit formats. */ - -FMT(nfu_loop_buffer, 32, 0x00020000, 0x00021ffc, - CFLDS4(FLD(s, 1, 1), FLD(op, 13, 4), FLD(csta, 18, 5), FLD(cstb, 23, 5))) -/* Corrected relative to Appendix H. */ -FMT(nfu_nop_idle, 32, 0x00000000, 0xfffe1ffc, - NFLDS2(FLD(s, 1, 1), FLD(op, 13, 4))) - -/* No-unit formats missing from Appendix H (given the NOP and IDLE - correction). */ -FMT(nfu_dint, 32, 0x10004000, 0xfffffffc, - NFLDS1(FLD(s, 1, 1))) -FMT(nfu_rint, 32, 0x10006000, 0xfffffffc, - NFLDS1(FLD(s, 1, 1))) -FMT(nfu_swe, 32, 0x10000000, 0xfffffffc, - NFLDS1(FLD(s, 1, 1))) -FMT(nfu_swenr, 32, 0x10002000, 0xfffffffc, - NFLDS1(FLD(s, 1, 1))) -/* Although formally covered by the loop buffer format, the fields in - that format are not useful for all such instructions and not all - instructions can be predicated. */ -FMT(nfu_spkernel, 32, 0x00034000, 0xf03ffffc, - NFLDS2(FLD(s, 1, 1), FLD(fstgfcyc, 22, 6))) -FMT(nfu_spkernelr, 32, 0x00036000, 0xfffffffc, - NFLDS1(FLD(s, 1, 1))) -FMT(nfu_spmask, 32, 0x00020000, 0xfc021ffc, - NFLDS3(FLD(s, 1, 1), FLD(op, 13, 4), FLD(mask, 18, 8))) - -/* Appendix H 16-bit formats will go here. */ - -/* H-5 */ -FMT(nfu_uspl, 16, 0x0c66, 0xbc7e, - FLDS2(FLD(op, 0, 1), COMPFLD(ii, BFLD2(BFLD(7, 3, 0), BFLD(14, 1, 3))))) - -/* H-6 */ -/* make up some fields to pretend to have s and z fields s for this format - so as to fit in other predicated compact instruction to avoid special- - casing this instruction in tic6x-dis.c - use op field as a predicate adress register selector (s field) - use the first zeroed bit as a z value as this insn only supports [a0] - and [b0] predicate forms. -*/ -FMT(nfu_uspldr, 16, 0x8c66, 0xbc7e, - FLDS4(FLD(op, 0, 1), FLD(s, 0, 1), FLD(z, 3, 1), - COMPFLD(ii, BFLD2(BFLD(7, 3, 0), BFLD(14, 1, 3))))) - -/* H-7 */ -FMT(nfu_uspk, 16, 0x1c66, 0x3c7e, - FLDS1(COMPFLD(fstgfcyc, BFLD3(BFLD(0, 1, 0), BFLD(7, 3, 1), BFLD(14, 2, 4))))) - -/* H-8a */ -FMT(nfu_uspma, 16, 0x2c66, 0x3c7e, - FLDS1(COMPFLD(mask, BFLD3(BFLD(0, 1, 0), BFLD(7, 3, 1), BFLD(14, 2, 4))))) - -/* H-8b */ -FMT(nfu_uspmb, 16, 0x3c66, 0x3c7e, - FLDS1(COMPFLD(mask, BFLD3(BFLD(0, 1, 0), BFLD(7, 3, 1), BFLD(14, 2, 4))))) - -/* H-9 */ -FMT(nfu_unop, 16, 0x0c6e, 0x1fff, - FLDS1(FLD(n, 13, 3))) - -#undef FLD -#undef CFLDS -#undef CFLDS2 -#undef CFLDS3 -#undef CFLDS4 -#undef CFLDS5 -#undef CFLDS6 -#undef CFLDS7 -#undef CFLDS8 -#undef NFLDS -#undef NFLDS1 -#undef NFLDS2 -#undef NFLDS3 -#undef NFLDS5 -#undef NFLDS6 -#undef NFLDS7 -#undef SFLDS -#undef SFLDS1 -#undef SFLDS2 -#undef SFLDS3 -#undef SFLDS4 -#undef SFLDS5 -#undef SFLDS6 -#undef SFLDS7 -#undef BFLD -#undef BFLD1 -#undef BFLD2 -#undef BFLD3 -#undef BFLD4 -#undef FLDS1 -#undef FLDS2 -#undef FLDS3 -#undef FLDS4 -#undef FLDS5 -#undef COMPFLD -#undef DSZ -#undef BR -#undef SAT diff --git a/include/opcode/tic6x-opcode-table.h b/include/opcode/tic6x-opcode-table.h deleted file mode 100644 index d876c56..0000000 --- a/include/opcode/tic6x-opcode-table.h +++ /dev/null @@ -1,3677 +0,0 @@ -/* TI C6X opcode table. - Copyright 2010-2013 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* Define the INSN macro before including this file; it takes as - arguments the fields from tic6x_opcode (defined in tic6x.h). The - name is given as an identifier; the subsequent four operands should - have "tic6x_func_unit_", "tic6x_insn_format_", "tic6x_pipeline_" - and "TIC6X_INSN_", respectively, prepended to them by the macro - definition. Also define INSNE, which has a second argument that - goes after tic6x_opcode_NAME_ to form the enumeration value for - this instruction, where the value otherwise formed from the name, - functional unit and format is ambiguous, but otherwise has the same - arguments as INSN. */ - -#define TIC6X_INSN_C64X_AND_C67X TIC6X_INSN_C64X|TIC6X_INSN_C67X -#define tic6x_insn_format_nfu_s_branch_nop_cst \ - tic6x_insn_format_s_branch_nop_cst -#define tic6x_insn_format_s_l_1_or_2_src tic6x_insn_format_l_1_or_2_src -#define RAN(id, min, max) { CONCAT2(tic6x_field_,id), (min), (max) } -#define FIX(id, val) RAN(id, val, val) -#define FIX0() 0, { { 0, 0, 0 } } -#define FIX1(a) 1, { a } -#define FIX2(a, b) 2, { a, b } -#define FIX3(a, b, c) 3, { a, b, c } -#define FIX4(a, b, c, d) 4, { a, b, c, d } -#define OP0() 0, { { 0, 0, FALSE, 0, 0, 0, 0 } } -#define OP1(a) 1, { a } -#define OP2(a, b) 2, { a, b } -#define OP3(a, b, c) 3, { a, b, c } -#define OP4(a, b, c, d) 4, { a, b, c, d } -#define OACST { tic6x_operand_asm_const, 0, tic6x_rw_none, 0, 0, 0, 0 } -#define OLCST { tic6x_operand_link_const, 0, tic6x_rw_none, 0, 0, 0, 0 } -#define OHWCSTM1 { tic6x_operand_hw_const_minus_1, 0, tic6x_rw_none, 0, 0, 0, 0 } -#define OHWCST0 { tic6x_operand_hw_const_0, 0, tic6x_rw_none, 0, 0, 0, 0 } -#define OHWCST1 { tic6x_operand_hw_const_1, 0, tic6x_rw_none, 0, 0, 0, 0 } -#define OHWCST5 { tic6x_operand_hw_const_5, 0, tic6x_rw_none, 0, 0, 0, 0 } -#define OHWCST16 { tic6x_operand_hw_const_16, 0, tic6x_rw_none, 0, 0, 0, 0 } -#define OHWCST24 { tic6x_operand_hw_const_24, 0, tic6x_rw_none, 0, 0, 0, 0 } -#define OHWCST31 { tic6x_operand_hw_const_31, 0, tic6x_rw_none, 0, 0, 0, 0 } -#define OFULIST { tic6x_operand_func_unit, 0, tic6x_rw_none, 0, 0, 0, 0 } -#define ORIRP1 { tic6x_operand_irp, 4, tic6x_rw_read, 1, 1, 0, 0 } -#define ORNRP1 { tic6x_operand_nrp, 4, tic6x_rw_read, 1, 1, 0, 0 } -#define OWREG1 { tic6x_operand_reg, 4, tic6x_rw_write, 1, 1, 0, 0 } -#define OWREG1Z { tic6x_operand_zreg, 4, tic6x_rw_write, 1, 1, 0, 0 } -#define OWREG1NORS { tic6x_operand_reg_nors, 4, tic6x_rw_write, 1, 1, 0, 0 } -#define ORREG1B { tic6x_operand_reg_bside, 4, tic6x_rw_write, 1, 1, 0, 0 } -#define ORREG1BNORS { tic6x_operand_reg_bside_nors, 4, tic6x_rw_write, 1, 1, 0, 0 } -#define OWRETREG1 { tic6x_operand_retreg, 4, tic6x_rw_write, 1, 1, 0, 0 } -#define ORREG1 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 1, 0, 0 } -#define ORDREG1 { tic6x_operand_dreg, 4, tic6x_rw_read, 1, 1, 0, 0 } -#define ORTREG1 { tic6x_operand_treg, 4, tic6x_rw_read, 1, 1, 0, 0 } -#define ORWREG1 { tic6x_operand_reg, 4, tic6x_rw_read_write, 1, 1, 0, 0 } -#define ORB15REG1 { tic6x_operand_b15reg, 4, tic6x_rw_read, 1, 1, 0, 0 } -#define OWB15REG1 { tic6x_operand_b15reg, 4, tic6x_rw_write, 1, 1, 0, 0 } -#define ORAREG1 { tic6x_operand_areg, 4, tic6x_rw_read, 1, 1, 0, 0 } -#define ORXREG1 { tic6x_operand_xreg, 4, tic6x_rw_read, 1, 1, 0, 0 } -#define ORREG12 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 2, 0, 0 } -#define ORREG14 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 4, 0, 0 } -#define ORXREG14 { tic6x_operand_xreg, 4, tic6x_rw_read, 1, 4, 0, 0 } -#define OWREG2 { tic6x_operand_reg, 4, tic6x_rw_write, 2, 2, 0, 0 } -#define OWREG4 { tic6x_operand_reg, 4, tic6x_rw_write, 4, 4, 0, 0 } -#define OWREG9 { tic6x_operand_reg, 4, tic6x_rw_write, 9, 9, 0, 0 } -#define OWDREG5 { tic6x_operand_dreg, 4, tic6x_rw_write, 5, 5, 0, 0 } -#define OWTREG5 { tic6x_operand_treg, 4, tic6x_rw_write, 5, 5, 0, 0 } -#define OWREGL1 { tic6x_operand_regpair, 5, tic6x_rw_write, 1, 1, 1, 1 } -#define ORREGL1 { tic6x_operand_regpair, 5, tic6x_rw_read, 1, 1, 1, 1 } -#define OWREGD1 { tic6x_operand_regpair, 8, tic6x_rw_write, 1, 1, 1, 1 } -#define OWREGD12 { tic6x_operand_regpair, 8, tic6x_rw_write, 1, 1, 2, 2 } -#define OWREGD4 { tic6x_operand_regpair, 8, tic6x_rw_write, 4, 4, 4, 4 } -#define ORREGD1 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 1, 1, 1 } -#define OWREGD45 { tic6x_operand_regpair, 8, tic6x_rw_write, 4, 4, 5, 5 } -#define OWREGD67 { tic6x_operand_regpair, 8, tic6x_rw_write, 6, 6, 7, 7 } -#define ORDREGD1 { tic6x_operand_dregpair, 8, tic6x_rw_read, 1, 1, 1, 1 } -#define ORTREGD1 { tic6x_operand_tregpair, 8, tic6x_rw_read, 1, 1, 1, 1 } -#define OWDREGD5 { tic6x_operand_dregpair, 8, tic6x_rw_write, 5, 5, 5, 5 } -#define OWTREGD5 { tic6x_operand_tregpair, 8, tic6x_rw_write, 5, 5, 5, 5 } -#define ORREGD12 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 1, 2, 2 } -#define ORXREGD12 { tic6x_operand_xregpair, 8, tic6x_rw_read, 1, 1, 2, 2 } -#define ORREGD1234 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 2, 3, 4 } -#define ORXREGD1324 { tic6x_operand_xregpair, 8, tic6x_rw_read, 1, 3, 2, 4 } -#define OWREGD910 { tic6x_operand_regpair, 8, tic6x_rw_write, 9, 9, 10, 10 } -#define ORCREG1 { tic6x_operand_ctrl, 4, tic6x_rw_read, 1, 1, 0, 0 } -#define OWCREG1 { tic6x_operand_ctrl, 4, tic6x_rw_write, 1, 1, 0, 0 } -#define OWILC1 { tic6x_operand_ilc, 4, tic6x_rw_write, 1, 1, 0, 0 } -#define ORMEMDW { tic6x_operand_mem_deref, 4, tic6x_rw_read, 3, 3, 0, 0 } -#define OWMEMDW { tic6x_operand_mem_deref, 4, tic6x_rw_write, 3, 3, 0, 0 } -#define ORMEMSB { tic6x_operand_mem_short, 1, tic6x_rw_read, 3, 3, 0, 0 } -#define OWMEMSB { tic6x_operand_mem_short, 1, tic6x_rw_write, 3, 3, 0, 0 } -#define ORMEMLB { tic6x_operand_mem_long, 1, tic6x_rw_read, 3, 3, 0, 0 } -#define OWMEMLB { tic6x_operand_mem_long, 1, tic6x_rw_write, 3, 3, 0, 0 } -#define ORMEMSH { tic6x_operand_mem_short, 2, tic6x_rw_read, 3, 3, 0, 0 } -#define OWMEMSH { tic6x_operand_mem_short, 2, tic6x_rw_write, 3, 3, 0, 0 } -#define ORMEMLH { tic6x_operand_mem_long, 2, tic6x_rw_read, 3, 3, 0, 0 } -#define OWMEMLH { tic6x_operand_mem_long, 2, tic6x_rw_write, 3, 3, 0, 0 } -#define ORMEMSW { tic6x_operand_mem_short, 4, tic6x_rw_read, 3, 3, 0, 0 } -#define OWMEMSW { tic6x_operand_mem_short, 4, tic6x_rw_write, 3, 3, 0, 0 } -#define ORMEMLW { tic6x_operand_mem_long, 4, tic6x_rw_read, 3, 3, 0, 0 } -#define OWMEMLW { tic6x_operand_mem_long, 4, tic6x_rw_write, 3, 3, 0, 0 } -#define ORMEMSD { tic6x_operand_mem_short, 8, tic6x_rw_read, 3, 3, 0, 0 } -#define OWMEMSD { tic6x_operand_mem_short, 8, tic6x_rw_write, 3, 3, 0, 0 } -#define ORMEMND { tic6x_operand_mem_ndw, 8, tic6x_rw_read, 3, 3, 0, 0 } -#define OWMEMND { tic6x_operand_mem_ndw, 8, tic6x_rw_write, 3, 3, 0, 0 } -#define ENC(id, meth, op) { \ - CONCAT2(tic6x_field_,id), \ - CONCAT2(tic6x_coding_,meth), \ - op \ - } -#define ENC0() 0, { { 0, 0, 0 } } -#define ENC1(a) 1, { a } -#define ENC2(a, b) 2, { a, b } -#define ENC3(a, b, c) 3, { a, b, c } -#define ENC4(a, b, c, d) 4, { a, b, c, d } -#define ENC5(a, b, c, d, e) 5, { a, b, c, d, e } -#define ENC6(a, b, c, d, e, f) 6, { a, b, c, d, e, f } -#define ENC7(a, b, c, d, e, f, g) 7, { a, b, c, d, e, f, g } - -INSN(abs, l, unary, 1cycle, C62X, 0, - FIX1(FIX(op, 0)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) -INSN(abs, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX3(FIX(op, 0x38), FIX(x, 0), FIX(src1, 0)), - OP2(ORREGL1, OWREGL1), - ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1))) - -INSN(abs2, l, unary, 1cycle, C64X, 0, - FIX1(FIX(op, 0x4)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(absdp, s, 1_or_2_src, 2cycle_dp, C67X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x2c), FIX(x, 0)), - OP2(ORREGD1, OWREGD12), - ENC4(ENC(s, fu, 0), ENC(src2, regpair_msb, 0), ENC(src1, regpair_lsb, 0), - ENC(dst, reg, 1))) - -INSN(abssp, s, unary, 1cycle, C67X, 0, - FIX1(FIX(op, 0)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSNE(add, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x3)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(add, l_si_xsi_sl, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x23)), - OP3(ORREG1, ORXREG1, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(add, l_xsi_sl_sl, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x21)), - OP3(ORXREG1, ORREGL1, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(add, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x2)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(add, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x20), FIX(x, 0)), - OP3(OACST, ORREGL1, OWREGL1), - ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) -INSNE(add, s_si_xsi_si, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x7)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(add, s_s5_xsi_si, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x6)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(add, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x10)), - OP3(ORREG1, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), - ENC(dst, reg, 2))) -INSNE(add, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x12)), - OP3(ORREG1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), - ENC(dst, reg, 2))) -INSNE(add, d_si_xsi_si, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0xa)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(add, d_xsi_s5_si, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0xb)), - OP3(ORXREG1, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, scst, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(add, l, l3_sat_0, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x0)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(add, l, l3i, 1cycle, C64XP, 0, - FIX0(), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(cst, scst_l3i, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(add, l, lx1, 1cycle, C64XP, - TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x3)), - OP3(OHWCSTM1, ORREG1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 1), ENC(srcdst, reg, 2))) -INSN(add, s, s3_sat_0, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x0)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(add, s, sx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x3)), - OP3(OHWCSTM1, ORREG1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 1), ENC(srcdst, reg, 2))) -INSN(add, s, sx2op, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x0)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2), - ENC(src2, reg, 1), ENC(x, xpath, 1))) -INSN(add, d, dx2op, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x0)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 1), ENC(srcdst, reg, 0), - ENC(src2, reg, 1), ENC(srcdst, reg, 2))) -INSNU(add, l, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x5), FIX(unit, 0x0)), - OP3(ORREG1, OHWCST1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) -INSNU(add, s, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x5), FIX(unit, 0x1)), - OP3(ORREG1, OHWCST1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) -INSNU(add, d, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x5), FIX(unit, 0x2)), - OP3(ORREG1, OHWCST1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) -/**/ - -INSNE(addab, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x30)), - OP3(ORREG1, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), - ENC(dst, reg, 2))) -INSNE(addab, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x32)), - OP3(ORREG1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), - ENC(dst, reg, 2))) -INSN(addab, d, adda_long, 1cycle, C64XP, TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 3)), - OP3(ORAREG1, OLCST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_byte, 1), - ENC(dst, reg, 2))) - -INSNE(addad, d_si_si_si, d, 1_or_2_src, 1cycle, C64X_AND_C67X, - TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x3c)), - OP3(ORREG1, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), - ENC(dst, reg, 2))) -INSNE(addad, d_si_u5_si, d, 1_or_2_src, 1cycle, C64X_AND_C67X, - TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x3d)), - OP3(ORREG1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), - ENC(dst, reg, 2))) - -INSNE(addah, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x34)), - OP3(ORREG1, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), - ENC(dst, reg, 2))) -INSNE(addah, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x36)), - OP3(ORREG1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), - ENC(dst, reg, 2))) -INSN(addah, d, adda_long, 1cycle, C64XP, TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 5)), - OP3(ORAREG1, OLCST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_half, 1), - ENC(dst, reg, 2))) - -INSNE(addaw, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x38)), - OP3(ORREG1, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), - ENC(dst, reg, 2))) -INSNE(addaw, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x3a)), - OP3(ORREG1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), - ENC(dst, reg, 2))) -INSN(addaw, d, adda_long, 1cycle, C64XP, TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 7)), - OP3(ORAREG1, OLCST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_word, 1), - ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(addaw, d, dx5, 1cycle, C64XP, TIC6X_FLAG_INSN16_BSIDE, - FIX0(), - OP3(ORB15REG1, OACST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(cst, ucst, 1), ENC(dst, reg, 2))) -INSN(addaw, d, dx5p, 1cycle, C64XP, TIC6X_FLAG_INSN16_BSIDE, - FIX1(FIX(op, 0)), - OP3(ORB15REG1, OACST, OWB15REG1), - ENC2(ENC(s, fu, 0), ENC(cst, ucst, 1))) -/**/ - -INSN(adddp, l, 1_or_2_src, addsubdp, C67X, 0, - FIX1(FIX(op, 0x18)), - OP3(ORREGD12, ORXREGD12, OWREGD67), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(adddp, s, l_1_or_2_src, addsubdp, C67XP, 0, - FIX1(FIX(op, 0x72)), - OP3(ORREGD12, ORXREGD12, OWREGD67), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(addk, s, addk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX0(), - OP2(OLCST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(cst, scst, 0), ENC(dst, reg, 1))) - -/* 16 bits insn */ -INSN(addk, s, sx5, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX0(), - OP2(OACST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(dst, reg, 1))) -/**/ - -INSN(addkpc, s, addkpc, 1cycle, C64X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP|TIC6X_FLAG_SIDE_B_ONLY, - FIX1(FIX(s, 1)), - OP3(OLCST, OWREG1, OACST), - ENC3(ENC(src1, pcrel, 0), ENC(dst, reg, 1), ENC(src2, ucst, 2))) - -INSN(addsp, l, 1_or_2_src, 4cycle, C67X, 0, - FIX1(FIX(op, 0x10)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(addsp, s, l_1_or_2_src, 4cycle, C67XP, 0, - FIX1(FIX(op, 0x70)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(addsub, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, - FIX1(FIX(op, 0xc)), - OP3(ORREG1, ORXREG1, OWREGD1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(addsub2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, - FIX1(FIX(op, 0xd)), - OP3(ORREG1, ORXREG1, OWREGD1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(addu, l_ui_xui_ul, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x2b)), - OP3(ORREG1, ORXREG1, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(addu, l_xui_ul_ul, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x29)), - OP3(ORXREG1, ORREGL1, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(add2, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x1)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(add2, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x5)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(add2, d, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x4)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(add4, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x65)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(and, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x7b)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(and, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x7a)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(and, s_ui_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x1f)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(and, s_s5_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x1e)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(and, d_ui_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x6)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(and, d_s5_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x7)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(and, l, l2c, 1cycle, C64XP, 0, - FIX1(FIX(op, 0)), - OP3(ORREG1, ORXREG1, OWREG1NORS), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -/**/ - -INSN(andn, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x7c)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(andn, s, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x6)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(andn, d, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x0)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(avg2, m, compound, 1616_m, C64X, 0, - FIX1(FIX(op, 0x13)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(avgu4, m, compound, 1616_m, C64X, 0, - FIX1(FIX(op, 0x12)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(b, s, ext_branch_cond_imm, branch, C62X, TIC6X_FLAG_NO_CROSS, - FIX0(), - OP1(OLCST), - ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) -INSN(b, s, branch, branch, C62X, TIC6X_FLAG_SIDE_B_ONLY, - FIX1(FIX(s, 1)), - OP1(ORXREG1), - ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0))) -INSN(b, s, b_irp, branch, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY, - FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), - OP1(ORIRP1), - ENC0()) -INSN(b, s, b_nrp, branch, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY, - FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), - OP1(ORNRP1), - ENC0()) - -INSN(bdec, s, bdec, branch, C64X, TIC6X_FLAG_NO_CROSS, - FIX0(), - OP2(OLCST, ORWREG1), - ENC3(ENC(s, fu, 0), ENC(src, pcrel, 0), ENC(dst, reg, 1))) - -INSN(bitc4, m, unary, 1616_m, C64X, 0, - FIX1(FIX(op, 0x1e)), - OP2(ORXREG1, OWREG2), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(bitr, m, unary, 1616_m, C64X, 0, - FIX1(FIX(op, 0x1f)), - OP2(ORXREG1, OWREG2), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(bnop, s, branch_nop_cst, branch, C64X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP, - FIX0(), - OP2(OLCST, OACST), - ENC3(ENC(s, fu, 0), ENC(src2, pcrel_half, 0), ENC(src1, ucst, 1))) -INSN(bnop, nfu, s_branch_nop_cst, branch, C64XP, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_MCNOP, - FIX1(FIX(s, 0)), - OP2(OLCST, OACST), - ENC2(ENC(src2, pcrel, 0), ENC(src1, ucst, 1))) -INSN(bnop, s, branch_nop_reg, branch, C64X, - TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MCNOP, - FIX1(FIX(s, 1)), - OP2(ORXREG1, OACST), - ENC3(ENC(x, xpath, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1))) - -/* 16 bits insn format */ -INSN(bnop, s, sbu8, branch, C64XP, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP, - FIX0(), - OP2(OLCST, OHWCST5), - ENC2(ENC(s, fu, 0), ENC(cst, pcrel_half_unsigned, 0))) -INSN(bnop, s, sbs7, branch, C64XP, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP, - FIX0(), - OP2(OLCST, OACST), - ENC3(ENC(s, fu, 0), ENC(cst, pcrel_half, 0), ENC(n, ucst, 1))) -INSN(bnop, s, sbu8c, branch, C64XP, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP|TIC6X_FLAG_INSN16_SPRED, - FIX0(), - OP2(OLCST, OHWCST5), - ENC2(ENC(s, fu, 0), ENC(cst, pcrel_half_unsigned, 0))) -INSN(bnop, s, sbs7c, branch, C64XP, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP|TIC6X_FLAG_INSN16_SPRED, - FIX0(), - OP2(OLCST, OACST), - ENC3(ENC(s, fu, 0), ENC(cst, pcrel_half, 0), ENC(n, ucst, 1))) -INSN(bnop, s, sx1b, branch, C64XP, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP, - FIX0(), - OP2(ORREG1BNORS, OACST), - ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(n, ucst, 1))) -/**/ - -INSN(bpos, s, bpos, branch, C64X, TIC6X_FLAG_NO_CROSS, - FIX0(), - OP2(OLCST, ORREG1), - ENC3(ENC(s, fu, 0), ENC(src, pcrel, 0), ENC(dst, reg, 1))) - -INSN(call, s, ext_branch_cond_imm, branch, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL, - FIX0(), - OP1(OLCST), - ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) -INSN(call, s, branch, branch, C62X, - TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL, - FIX1(FIX(s, 1)), - OP1(ORXREG1), - ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0))) -INSN(call, s, b_irp, branch, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL, - FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), - OP1(ORIRP1), - ENC0()) -INSN(call, s, b_nrp, branch, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL, - FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), - OP1(ORNRP1), - ENC0()) - -INSN(callnop, s, branch_nop_cst, branch, C64X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_MCNOP|TIC6X_FLAG_CALL, - FIX0(), - OP2(OLCST, OACST), - ENC3(ENC(s, fu, 0), ENC(src2, pcrel, 0), ENC(src1, ucst, 1))) -INSN(callnop, nfu, s_branch_nop_cst, branch, C64XP, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_MCNOP|TIC6X_FLAG_CALL, - FIX1(FIX(s, 0)), - OP2(OLCST, OACST), - ENC2(ENC(src2, pcrel, 0), ENC(src1, ucst, 1))) -INSN(callnop, s, branch_nop_reg, branch, C64X, - TIC6X_FLAG_MACRO|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MCNOP|TIC6X_FLAG_CALL, - FIX1(FIX(s, 1)), - OP2(ORXREG1, OACST), - ENC3(ENC(x, xpath, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1))) - - -INSN(callp, s, call_imm_nop, branch, C64XP, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP, - FIX1(FIX(z, 1)), - OP2(OLCST, OWRETREG1), - ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) - -/* 16 bits insn format */ -INSN(callp, s, scs10, branch, C64XP, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP, - FIX0(), - OP2(OLCST, OWRETREG1), - ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) -/**/ - -INSN(callret, s, ext_branch_cond_imm, branch, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN, - FIX0(), - OP1(OLCST), - ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) -INSN(callret, s, branch, branch, C62X, - TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN, - FIX1(FIX(s, 1)), - OP1(ORXREG1), - ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0))) -INSN(callret, s, b_irp, branch, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN, - FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), - OP1(ORIRP1), - ENC0()) -INSN(callret, s, b_nrp, branch, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN, - FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), - OP1(ORNRP1), - ENC0()) - -INSN(clr, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x3)), - OP4(ORREG1, OACST, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1), - ENC(cstb, ucst, 2), ENC(dst, reg, 3))) -INSN(clr, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x3f)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(clr, s, sc5, 1cycle, C64XP, 0, - FIX1(FIX(op, 2)), - OP4(ORREG1, OACST, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(cst, ucst, 1), - ENC(cst, ucst, 2), ENC(srcdst, reg, 3))) -/**/ - -INSNE(cmpeq, l_si_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x53)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmpeq, l_s5_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x52)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmpeq, l_xsi_sl_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x51)), - OP3(ORXREG1, ORREGL1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmpeq, l_s5_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x50), FIX(x, 0)), - OP3(OACST, ORREGL1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(cmpeq, l, lx3c, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX0(), - OP3(OACST, ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) - -INSN(cmpeq, l, l2c, 1cycle, C64XP, 0, - FIX1(FIX(op, 3)), - OP3(ORREG1, ORXREG1, OWREG1NORS), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -/**/ - -INSN(cmpeq2, s, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x1d)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(cmpeq4, s, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x1c)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(cmpeqdp, s, 1_or_2_src, dpcmp, C67X, 0, - FIX1(FIX(op, 0x28)), - OP3(ORREGD12, ORXREGD12, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(cmpeqsp, s, 1_or_2_src, 1cycle, C67X, 0, - FIX1(FIX(op, 0x38)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(cmpgt, l_si_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x47)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmpgt, l_s5_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x46)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmpgt, l_xsi_sl_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x45)), - OP3(ORXREG1, ORREGL1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmpgt, l_s5_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x44), FIX(x, 0)), - OP3(OACST, ORREGL1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) -INSNE(cmpgt, l_xsi_si_ui, l, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0x57)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1), - ENC(src2, reg, 0), ENC(dst, reg, 2))) -INSNE(cmpgt, l_xsi_s5_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x56)), - OP3(ORXREG1, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 1), - ENC(src2, reg, 0), ENC(dst, reg, 2))) -INSNE(cmpgt, l_sl_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x55)), - OP3(ORREGL1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1), - ENC(src2, reg, 0), ENC(dst, reg, 2))) -INSNE(cmpgt, l_sl_s5_ui, l, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x54), FIX(x, 0)), - OP3(ORREGL1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src1, scst, 1), ENC(src2, reg, 0), - ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(cmpgt, l, lx1c, 1cycle, C64XP, 0, - FIX1(FIX(op, 1)), - OP3(OACST, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) -INSN(cmpgt, l, l2c, 1cycle, C64XP, 0, - FIX1(FIX(op, 5)), - OP3(ORREG1, ORXREG1, OWREG1NORS), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -/**/ - -INSN(cmpgt2, s, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x14)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(cmpgtdp, s, 1_or_2_src, dpcmp, C67X, 0, - FIX1(FIX(op, 0x29)), - OP3(ORREGD12, ORXREGD12, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(cmpgtsp, s, 1_or_2_src, 1cycle, C67X, 0, - FIX1(FIX(op, 0x39)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(cmpgtu, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x4f)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmpgtu, l_u4_xui_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), - FIX2(FIX(op, 0x4e), RAN(src1, 0, 15)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -/* Although not mentioned in SPRUFE8, CMPGTU and CMPLTU support a - 5-bit unsigned constant operand on C64X and above. */ -INSNE(cmpgtu, l_u5_xui_ui, l, 1_or_2_src, 1cycle, C64X, 0, - FIX2(FIX(op, 0x4e), RAN(src1, 16, 31)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmpgtu, l_xui_ul_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x4d)), - OP3(ORXREG1, ORREGL1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmpgtu, l_u4_ul_ui, l, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX3(FIX(op, 0x4c), FIX(x, 0), RAN(src1, 0, 15)), - OP3(OACST, ORREGL1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) -INSNE(cmpgtu, l_u5_ul_ui, l, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_NO_CROSS, - FIX3(FIX(op, 0x4c), FIX(x, 0), RAN(src1, 16, 31)), - OP3(OACST, ORREGL1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(cmpgtu, l, lx1c, 1cycle, C64XP, 0, - FIX1(FIX(op, 3)), - OP3(OACST, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) -INSN(cmpgtu, l, l2c, 1cycle, C64XP, 0, - FIX1(FIX(op, 7)), - OP3(ORREG1, ORXREG1, OWREG1NORS), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -/**/ - -INSN(cmpgtu4, s, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x15)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(cmplt, l_si_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x57)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmplt, l_s5_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x56)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmplt, l_xsi_sl_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x55)), - OP3(ORXREG1, ORREGL1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmplt, l_s5_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x54), FIX(x, 0)), - OP3(OACST, ORREGL1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) -INSNE(cmplt, l_xsi_si_ui, l, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0x47)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1), - ENC(src2, reg, 0), ENC(dst, reg, 2))) -INSNE(cmplt, l_xsi_s5_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x46)), - OP3(ORXREG1, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 1), - ENC(src2, reg, 0), ENC(dst, reg, 2))) -INSNE(cmplt, l_sl_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x45)), - OP3(ORREGL1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1), - ENC(src2, reg, 0), ENC(dst, reg, 2))) -INSNE(cmplt, l_sl_s5_ui, l, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x44), FIX(x, 0)), - OP3(ORREGL1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src1, scst, 1), ENC(src2, reg, 0), - ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(cmplt, l, lx1c, 1cycle, C64XP, 0, - FIX1(FIX(op, 0)), - OP3(OACST, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) -INSN(cmplt, l, l2c, 1cycle, C64XP, 0, - FIX1(FIX(op, 4)), - OP3(ORREG1, ORXREG1, OWREG1NORS), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -/**/ - -INSN(cmplt2, s, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x14)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSN(cmpltdp, s, 1_or_2_src, dpcmp, C67X, 0, - FIX1(FIX(op, 0x2a)), - OP3(ORREGD12, ORXREGD12, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(cmpltsp, s, 1_or_2_src, 1cycle, C67X, 0, - FIX1(FIX(op, 0x3a)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(cmpltu, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x5f)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmpltu, l_u4_xui_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), - FIX2(FIX(op, 0x5e), RAN(src1, 0, 15)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmpltu, l_u5_xui_ui, l, 1_or_2_src, 1cycle, C64X, 0, - FIX2(FIX(op, 0x5e), RAN(src1, 16, 31)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmpltu, l_xui_ul_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x5d)), - OP3(ORXREG1, ORREGL1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(cmpltu, l_u4_ul_ui, l, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX3(FIX(op, 0x5c), FIX(x, 0), RAN(src1, 0, 15)), - OP3(OACST, ORREGL1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) -INSNE(cmpltu, l_u5_ul_ui, l, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_NO_CROSS, - FIX3(FIX(op, 0x5c), FIX(x, 0), RAN(src1, 16, 31)), - OP3(OACST, ORREGL1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(cmpltu, l, lx1c, 1cycle, C64XP, 0, - FIX1(FIX(op, 2)), - OP3(OACST, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) -INSN(cmpltu, l, l2c, 1cycle, C64XP, 0, - FIX1(FIX(op, 6)), - OP3(ORREG1, ORXREG1, OWREG1NORS), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -/**/ - -INSN(cmpltu4, s, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x15)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSN(cmpy, m, 1_or_2_src, 4cycle, C64XP, 0, - FIX1(FIX(op, 0xa)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(cmpyr, m, 1_or_2_src, 4cycle, C64XP, 0, - FIX1(FIX(op, 0xb)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(cmpyr1, m, 1_or_2_src, 4cycle, C64XP, 0, - FIX1(FIX(op, 0xc)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(cmtl, d, 1_or_2_src, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_SIDE_T2_ONLY|TIC6X_FLAG_NO_CROSS, - FIX3(FIX(s, 1), FIX(op, 0xe), FIX(src1, 0)), - OP2(ORMEMDW, OWDREG5), - ENC2(ENC(src2, reg, 0), ENC(dst, reg, 1))) - -INSN(ddotp4, m, 1_or_2_src, 4cycle, C64XP, 0, - FIX1(FIX(op, 0x18)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(ddotph2, m, 1_or_2_src, 4cycle, C64XP, 0, - FIX1(FIX(op, 0x17)), - OP3(ORREGD1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(ddotph2r, m, 1_or_2_src, 4cycle, C64XP, 0, - FIX1(FIX(op, 0x15)), - OP3(ORREGD1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(ddotpl2, m, 1_or_2_src, 4cycle, C64XP, 0, - FIX1(FIX(op, 0x16)), - OP3(ORREGD1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(ddotpl2r, m, 1_or_2_src, 4cycle, C64XP, 0, - FIX1(FIX(op, 0x14)), - OP3(ORREGD1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(deal, m, unary, 1616_m, C64X, 0, - FIX1(FIX(op, 0x1d)), - OP2(ORXREG1, OWREG2), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(dint, nfu, dint, 1cycle, C64XP, 0, - FIX1(FIX(s, 0)), - OP0(), - ENC0()) - -INSN(dmv, s, ext_1_or_2_src, 1cycle, C64XP, 0, - FIX1(FIX(op, 0xb)), - OP3(ORREG1, ORXREG1, OWREGD1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(dotp2, m_s2_xs2_si, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0xc)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(dotp2, m_s2_xs2_sll, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0xb)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(dotpn2, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0x9)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(dotpnrsu2, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0x7)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(dotpnrus2, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x7)), - OP3(ORXREG1, ORREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSN(dotprsu2, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0xd)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(dotprus2, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0xd)), - OP3(ORXREG1, ORREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSN(dotpsu4, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0x2)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(dotpus4, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x2)), - OP3(ORXREG1, ORREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSN(dotpu4, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0x6)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(dpack2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x34)), - OP3(ORREG1, ORXREG1, OWREGD1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(dpackx2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x33)), - OP3(ORREG1, ORXREG1, OWREGD1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(dpint, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x8), FIX(x, 0)), - OP2(ORREGD1, OWREG4), - ENC4(ENC(s, fu, 0), ENC(src2, regpair_msb, 0), ENC(src1, regpair_lsb, 0), - ENC(dst, reg, 1))) - -INSN(dpsp, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x9), FIX(x, 0)), - OP2(ORREGD1, OWREG4), - ENC4(ENC(s, fu, 0), ENC(src2, regpair_msb, 0), ENC(src1, regpair_lsb, 0), - ENC(dst, reg, 1))) - -INSN(dptrunc, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x1), FIX(x, 0)), - OP2(ORREGD1, OWREG4), - ENC4(ENC(s, fu, 0), ENC(src2, regpair_msb, 0), ENC(src1, regpair_lsb, 0), - ENC(dst, reg, 1))) - -INSN(ext, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x1)), - OP4(ORREG1, OACST, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1), - ENC(cstb, ucst, 2), ENC(dst, reg, 3))) -INSN(ext, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x2f)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSNE(ext, hwcst16, s, s2ext, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x0)), - OP4(ORREG1, OHWCST16, OHWCST16, OWREG1), - ENC3(ENC(s, fu, 0), ENC(src, reg, 0), ENC(dst, reg, 3))) -INSNE(ext, hwcst24, s, s2ext, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x1)), - OP4(ORREG1, OHWCST24, OHWCST24, OWREG1), - ENC3(ENC(s, fu, 0), ENC(src, reg, 0), ENC(dst, reg, 3))) -/**/ - -INSN(extu, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x0)), - OP4(ORREG1, OACST, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1), - ENC(cstb, ucst, 2), ENC(dst, reg, 3))) -INSN(extu, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x2b)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSNE(extu, hwcst16, s, s2ext, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x2)), - OP4(ORREG1, OHWCST16, OHWCST16, OWREG1), - ENC3(ENC(s, fu, 0), ENC(src, reg, 0), ENC(dst, reg, 3))) -INSNE(extu, hwcst24, s, s2ext, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x3)), - OP4(ORREG1, OHWCST24, OHWCST24, OWREG1), - ENC3(ENC(s, fu, 0), ENC(src, reg, 0), ENC(dst, reg, 3))) -INSN(extu, s, sc5, 1cycle, C64XP, 0, - FIX1(FIX(op, 0)), - OP4(ORREG1, OACST, OHWCST31, OWREG1Z), - ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(cst, ucst, 1))) -/**/ - -INSN(gmpy, m, 1_or_2_src, 4cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x1f), FIX(x, 0)), - OP3(ORREG1, ORREG1, OWREG4), - ENC4(ENC(s, fu, 0), ENC(src1, reg, 0), ENC(src2, reg, 1), - ENC(dst, reg, 2))) - -/* This instruction can be predicated as usual; SPRUFE8 is incorrect - where it shows the "z" field as fixed to 1. */ -INSN(gmpy4, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0x11)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(idle, nfu, nop_idle, nop, C62X, TIC6X_FLAG_MCNOP, - FIX2(FIX(s, 0), FIX(op, 0xf)), - OP0(), - ENC0()) - -INSN(intdp, l, 1_or_2_src, intdp, C67X, 0, - FIX2(FIX(op, 0x39), FIX(src1, 0)), - OP2(ORXREG1, OWREGD45), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(intdpu, l, 1_or_2_src, intdp, C67X, 0, - FIX2(FIX(op, 0x3b), FIX(src1, 0)), - OP2(ORXREG1, OWREGD45), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(intsp, l, 1_or_2_src, 4cycle, C67X, 0, - FIX2(FIX(op, 0x4a), FIX(src1, 0)), - OP2(ORXREG1, OWREG4), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(intspu, l, 1_or_2_src, 4cycle, C67X, 0, - FIX2(FIX(op, 0x49), FIX(src1, 0)), - OP2(ORXREG1, OWREG4), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(ldb, d, load_store, load, C62X, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX2(FIX(op, 2), FIX(r, 0)), - OP2(ORMEMSB, OWDREG5), - ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), - ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), - ENC(srcdst, reg, 1))) -INSN(ldb, d, load_store_long, load, C62X, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 2)), - OP2(ORMEMLB, OWDREG5), - ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_byte, 0), - ENC(dst, reg, 1))) - -/* 16 bits insn */ -INSN(ldb, d, doff4_dsz_x01, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSB, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset, 0))) -INSN(ldb, d, dind_dsz_x01, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSB, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(src1, mem_offset, 0))) -INSN(ldb, d, dinc_dsz_x01, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSB, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -INSN(ldb, d, ddec_dsz_x01, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSB, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -/**/ - -INSN(ldbu, d, load_store, load, C62X, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX2(FIX(op, 1), FIX(r, 0)), - OP2(ORMEMSB, OWDREG5), - ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), - ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), - ENC(srcdst, reg, 1))) -INSN(ldbu, d, load_store_long, load, C62X, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 1)), - OP2(ORMEMLB, OWDREG5), - ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_byte, 0), - ENC(dst, reg, 1))) - -/* 16 bits insn */ -INSN(ldbu, d, dinc_dsz_000, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSB, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset_minus_one, 0), - ENC(ptr, reg_ptr, 0), ENC(srcdst, reg, 1))) -INSN(ldbu, d, dind_dsz_000, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSB, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset, 0), - ENC(ptr, reg_ptr, 0), ENC(srcdst, reg, 1))) -INSN(ldbu, d, doff4_dsz_000, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSB, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset, 0), - ENC(ptr, reg_ptr, 0), ENC(srcdst, reg, 1))) -INSN(ldbu, d, ddec_dsz_000, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSB, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset_minus_one, 0), - ENC(ptr, reg_ptr, 0), ENC(srcdst, reg, 1))) -/**/ - -INSN(lddw, d, load_store, load, C64X_AND_C67X, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 6), FIX(r, 1)), - OP2(ORMEMSD, OWDREGD5), - ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), - ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), - ENC(srcdst, reg, 1))) - -/* 16 bits insn */ -INSN(lddw, d, dpp, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREINCR)|TIC6X_FLAG_INSN16_B15PTR|TIC6X_FLAG_INSN16_NORS, - FIX2(FIX(op, 1), FIX(dw, 1)), - OP2(ORMEMSD, OWDREGD5), - ENC4(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(cst, mem_offset_minus_one, 0))) -INSN(lddw, d, ddecdw, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX3(FIX(op, 1), FIX(na, 0), FIX(sz, 0)), - OP2(ORMEMSD, OWTREGD5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -INSN(lddw, d, dincdw, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX3(FIX(op, 1), FIX(na, 0), FIX(sz, 0)), - OP2(ORMEMSD, OWTREGD5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -INSN(lddw, d, dinddw, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX3(FIX(op, 1), FIX(na, 0), FIX(sz, 0)), - OP2(ORMEMSD, OWTREGD5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset, 0), - ENC(ptr, reg_ptr, 0), ENC(srcdst, reg_shift, 1))) -INSN(lddw, d, doff4dw, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX3(FIX(op, 1), FIX(na, 0), FIX(sz, 0)), - OP2(ORMEMSD, OWTREGD5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset, 0), - ENC(ptr, reg_ptr, 0), ENC(srcdst, reg_shift, 1))) -/**/ - -INSN(ldh, d, load_store, load, C62X, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX2(FIX(op, 4), FIX(r, 0)), - OP2(ORMEMSH, OWDREG5), - ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), - ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), - ENC(srcdst, reg, 1))) -INSN(ldh, d, load_store_long, load, C62X, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 4)), - OP2(ORMEMLH, OWDREG5), - ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_half, 0), - ENC(dst, reg, 1))) - -/* 16 bits insn */ -INSN(ldh, d, doff4_dsz_x11, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSH, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset, 0), - ENC(ptr, reg_ptr, 0), ENC(srcdst, reg, 1))) -INSN(ldh, d, dind_dsz_x11, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSH, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(src1, mem_offset, 0))) -INSN(ldh, d, dinc_dsz_x11, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSH, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -INSN(ldh, d, ddec_dsz_x11, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSH, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -/**/ - -INSN(ldhu, d, load_store, load, C62X, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX2(FIX(op, 0), FIX(r, 0)), - OP2(ORMEMSH, OWDREG5), - ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), - ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), - ENC(srcdst, reg, 1))) -INSN(ldhu, d, load_store_long, load, C62X, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0)), - OP2(ORMEMLH, OWDREG5), - ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_half, 0), - ENC(dst, reg, 1))) - -/* 16 bits insn */ -INSN(ldhu, d, doff4_dsz_010, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSH, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset, 0), - ENC(ptr, reg_ptr, 0), ENC(srcdst, reg, 1))) -INSN(ldhu, d, dind_dsz_010, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSH, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(src1, mem_offset, 0))) -INSN(ldhu, d, dinc_dsz_010, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSH, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -INSN(ldhu, d, ddec_dsz_010, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSH, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -/**/ - -INSN(ldndw, d, load_nonaligned, load, C64X, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED, - FIX0(), - OP2(ORMEMND, OWDREGD5), - ENC7(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), - ENC(offsetR, mem_offset_noscale, 0), ENC(baseR, reg, 0), - ENC(sc, scaled, 0), ENC(dst, reg_shift, 1))) - -/* 16 bits insn */ -INSN(ldndw, d, ddecdw, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX3(FIX(op, 1), FIX(na, 1), FIX(sz, 0)), - OP2(ORMEMND, OWTREGD5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one_noscale, 0))) -INSN(ldndw, d, dincdw, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX3(FIX(op, 1), FIX(na, 1), FIX(sz, 0)), - OP2(ORMEMND, OWTREGD5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one_noscale, 0))) -INSN(ldndw, d, dinddw, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX3(FIX(op, 1), FIX(na, 1), FIX(sz, 0)), - OP2(ORMEMND, OWTREGD5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset_noscale, 0), - ENC(ptr, reg_ptr, 0), ENC(srcdst, reg_shift, 1))) -INSN(ldndw, d, doff4dw, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX3(FIX(op, 1), FIX(na, 1), FIX(sz, 0)), - OP2(ORMEMND, OWTREGD5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset_noscale, 0), - ENC(ptr, reg_ptr, 0), ENC(srcdst, reg_shift, 1))) -/**/ - -INSN(ldnw, d, load_store, load, C64X, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED, - FIX2(FIX(op, 3), FIX(r, 1)), - OP2(ORMEMSW, OWDREG5), - ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), - ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), - ENC(srcdst, reg, 1))) - -/* 16 bits insn */ -INSN(ldnw, d, doff4_dsz_110, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSW, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset, 0))) -INSN(ldnw, d, dind_dsz_110, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSW, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(src1, mem_offset, 0))) -INSN(ldnw, d, dinc_dsz_110, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSW, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -INSN(ldnw, d, ddec_dsz_110, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSW, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -/**/ - -INSN(ldw, d, load_store, load, C62X, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX2(FIX(op, 6), FIX(r, 0)), - OP2(ORMEMSW, OWDREG5), - ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), - ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), - ENC(srcdst, reg, 1))) -INSN(ldw, d, load_store_long, load, C62X, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 6)), - OP2(ORMEMLW, OWDREG5), - ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_word, 0), - ENC(dst, reg, 1))) - -/* 16 bits insn */ -INSN(ldw, d, doff4_dsz_0xx, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 0)), - OP2(ORMEMSW, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset, 0))) -INSN(ldw, d, doff4_dsz_100, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSW, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset, 0))) -INSN(ldw, d, dind_dsz_0xx, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 0)), - OP2(ORMEMSW, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(src1, mem_offset, 0))) -INSN(ldw, d, dind_dsz_100, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSW, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(src1, mem_offset, 0))) -INSN(ldw, d, dinc_dsz_0xx, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 1), FIX(sz, 0)), - OP2(ORMEMSW, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -INSN(ldw, d, dinc_dsz_100, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSW, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -INSN(ldw, d, ddec_dsz_0xx, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 1), FIX(sz, 0)), - OP2(ORMEMSW, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -INSN(ldw, d, ddec_dsz_100, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 1), FIX(sz, 1)), - OP2(ORMEMSW, OWTREG5), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) -INSN(ldw, d, dpp, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREINCR)|TIC6X_FLAG_INSN16_B15PTR|TIC6X_FLAG_INSN16_NORS, - FIX2(FIX(op, 1), FIX(dw, 0)), - OP2(ORMEMSW, OWTREG5), - ENC4(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(cst, mem_offset_minus_one, 0))) -INSN(ldw, d, dstk, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE)|TIC6X_FLAG_INSN16_B15PTR, - FIX2(FIX(op, 0x1), FIX(s, 1)), - OP2(ORMEMSW, OWTREG5), - ENC4(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), - ENC(cst, mem_offset, 0))) -/**/ - -INSN(ll, d, 1_or_2_src, load, C64XP, - TIC6X_FLAG_LOAD|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_SIDE_T2_ONLY|TIC6X_FLAG_NO_CROSS, - FIX3(FIX(s, 1), FIX(op, 0xc), FIX(src1, 0)), - OP2(ORMEMDW, OWDREG5), - ENC2(ENC(src2, reg, 0), ENC(dst, reg, 1))) - -INSNE(lmbd, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x6b)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(lmbd, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x6a)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(max2, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x42)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(max2, s, ext_1_or_2_src, 1cycle, C64XP, 0, - FIX1(FIX(op, 0xd)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(maxu4, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x43)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(min2, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x41)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(min2, s, ext_1_or_2_src, 1cycle, C64XP, 0, - FIX1(FIX(op, 0xc)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(minu4, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x48)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(mpy, m_sl16_xsl16_si, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x19)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(mpy, m_s5_xsl16_si, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x18)), - OP3(OACST, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16-bit insn. */ -INSN(mpy, m, m3_sat_0, 1616_m, C67X, 0, - FIX1(FIX(op, 0x0)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) - -INSN(mpydp, m, mpy, mpydp, C67X, 0, - FIX1(FIX(op, 0x0e)), - OP3(ORREGD1234, ORXREGD1324, OWREGD910), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyh, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x01)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(mpyh, m, m3_sat_0, 1616_m, C67X, 0, - FIX1(FIX(op, 0x1)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) -/**/ - -INSN(mpyhi, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0x14)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyhir, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0x10)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyhl, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x09)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(mpyhl, m, m3_sat_0, 1616_m, C67X, 0, - FIX1(FIX(op, 0x3)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) -/**/ - -INSN(mpyhlu, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x0f)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyhslu, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x0b)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyhsu, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x03)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyhu, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x07)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyhuls, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x0d)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyhus, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x05)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(mpyi, m_si_xsi_si, m, mpy, mpyi, C67X, 0, - FIX1(FIX(op, 0x04)), - OP3(ORREG14, ORXREG14, OWREG9), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(mpyi, m_s5_xsi_si, m, mpy, mpyi, C67X, 0, - FIX1(FIX(op, 0x06)), - OP3(OACST, ORXREG14, OWREG9), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(mpyid, m_si_xsi_sll, m, mpy, mpyid, C67X, 0, - FIX1(FIX(op, 0x08)), - OP3(ORREG14, ORXREG14, OWREGD910), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(mpyid, m_s5_xsi_sll, m, mpy, mpyid, C67X, 0, - FIX1(FIX(op, 0x0c)), - OP3(OACST, ORXREG14, OWREGD910), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyih, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x14)), - OP3(ORXREG1, ORREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyihr, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x10)), - OP3(ORXREG1, ORREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyil, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x15)), - OP3(ORXREG1, ORREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyilr, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x0e)), - OP3(ORXREG1, ORREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSN(mpylh, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x11)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(mpylh, m, m3_sat_0, 1616_m, C67X, 0, - FIX1(FIX(op, 0x2)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) -/**/ - -INSN(mpylhu, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x17)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyli, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0x15)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpylir, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0x0e)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpylshu, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x13)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyluhs, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x15)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpysp, m, mpy, 4cycle, C67X, 0, - FIX1(FIX(op, 0x1c)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* Contrary to SPRU733A, MPYSPDP and MPYSP2DP are on both C67X and - C67X+. */ -INSN(mpyspdp, m, compound, mpyspdp, C67X, 0, - FIX1(FIX(op, 0x16)), - OP3(ORREG12, ORXREGD12, OWREGD67), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpysp2dp, m, compound, mpyspdp, C67X, 0, - FIX1(FIX(op, 0x17)), - OP3(ORREG1, ORXREG1, OWREGD45), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(mpysu, m_sl16_xul16_si, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x1b)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(mpysu, m_s5_xul16_si, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x1e)), - OP3(OACST, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpysu4, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0x05)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyu, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x1f)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyu4, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0x04)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyus, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x1d)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpyus4, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x05)), - OP3(ORXREG1, ORREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSN(mpy2, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0x00)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpy2ir, m, 1_or_2_src, 4cycle, C64XP, 0, - FIX1(FIX(op, 0x0f)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(mpy32, 32_32_32, m, mpy, 4cycle, C64XP, 0, - FIX1(FIX(op, 0x10)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(mpy32, 32_32_64, m, mpy, 4cycle, C64XP, 0, - FIX1(FIX(op, 0x14)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpy32su, m, mpy, 4cycle, C64XP, 0, - FIX1(FIX(op, 0x16)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpy32u, m, compound, 4cycle, C64XP, 0, - FIX1(FIX(op, 0x18)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(mpy32us, m, compound, 4cycle, C64XP, 0, - FIX1(FIX(op, 0x19)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* "or" forms of "mv" are preferred over "add" forms when available - because "or" uses less power. However, 40-bit moves are only - available through "add", and before C64X D-unit moves are only - available through "add" (without cross paths being available). */ -INSNE(mv, l_xui_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, - FIX2(FIX(op, 0x7e), FIX(src1, 0)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) -INSNE(mv, l_sl_sl, l, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO, - FIX3(FIX(op, 0x20), FIX(x, 0), FIX(src1, 0)), - OP2(ORREGL1, OWREGL1), - ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1))) -INSNE(mv, s_xui_ui, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, - FIX2(FIX(op, 0x1a), FIX(src1, 0)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) -INSNE(mv, d_si_si, d, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(0), - FIX2(FIX(op, 0x12), FIX(src1, 0)), - OP2(ORREG1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1))) -INSNE(mv, d_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, - TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(1), - FIX2(FIX(op, 0x3), FIX(src1, 0)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -/* 16 bits insn */ -INSNU(mv, l, lsdmvto, 1cycle, C64X, 0, - FIX1(FIX(unit, 0x0)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(x, xpath, 0), ENC(dst, reg, 1))) - -INSNU(mv, s, lsdmvto, 1cycle, C64X, 0, - FIX1(FIX(unit, 0x1)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(x, xpath, 0), ENC(dst, reg, 1))) - -INSNU(mv, d, lsdmvto, 1cycle, C64X, 0, - FIX1(FIX(unit, 0x2)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(x, xpath, 0), ENC(dst, reg, 1))) - -INSNU(mv, l, lsdmvfr, 1cycle, C64X, 0, - FIX1(FIX(unit, 0x0)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(x, xpath, 0), ENC(dst, reg, 1))) - -INSNU(mv, s, lsdmvfr, 1cycle, C64X, 0, - FIX1(FIX(unit, 0x1)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(x, xpath, 0), ENC(dst, reg, 1))) - -INSNU(mv, d, lsdmvfr, 1cycle, C64X, 0, - FIX1(FIX(unit, 0x2)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(x, xpath, 0), ENC(dst, reg, 1))) -/**/ - -INSNE(mvc, from_cr, s, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_NO_CROSS, - FIX3(FIX(s, 1), FIX(op, 0x0f), FIX(x, 0)), - OP2(ORCREG1, OWREG1), - ENC3(ENC(src1, crhi, 0), ENC(src2, crlo, 0), ENC(dst, reg, 1))) -INSNE(mvc, to_cr, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_SIDE_B_ONLY, - FIX2(FIX(s, 1), FIX(op, 0x0e)), - OP2(ORXREG1, OWCREG1), - ENC4(ENC(x, xpath, 0), ENC(src2, reg, 0), ENC(src1, crhi, 1), - ENC(dst, crlo, 1))) - -/* 16 bits insn */ -INSN(mvc, s, sx1, 1cycle, C64XP, - TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x6)), - OP2(ORREG1B, OWILC1), - ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 0))) -/**/ - -INSN(mvd, m, unary, 4cycle, C64X, 0, - FIX1(FIX(op, 0x1a)), - OP2(ORXREG1, OWREG4), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(mvk, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(h, 0)), - OP2(OLCST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(cst, scst, 0), ENC(dst, reg, 1))) -INSN(mvk, l, unary, 1cycle, C64X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(x, 0), FIX(op, 0x05)), - OP2(OACST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(src2, scst, 0), ENC(dst, reg, 1))) -INSN(mvk, d, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x00), FIX(src2, 0)), - OP2(OACST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(dst, reg, 1))) - -/* 16 bits insn */ -INSN(mvk, l, lx5, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX0(), - OP2(OLCST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(cst, scst, 0), ENC(dst, reg, 1))) -INSN(mvk, s, smvk8, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX0(), - OP2(OLCST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(dst, reg, 1))) -INSNU(mvk, l, lsdx1c, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_SPRED, - FIX1(FIX(unit, 0x0)), - OP2(OACST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(dst, reg, 1))) -INSNU(mvk, s, lsdx1c, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_SPRED, - FIX1(FIX(unit, 0x1)), - OP2(OACST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(dst, reg, 1))) -INSNU(mvk, d, lsdx1c, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_SPRED, - FIX1(FIX(unit, 0x2)), - OP2(OACST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(dst, reg, 1))) -INSNUE(mvk, zero, l, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0), FIX(unit, 0x0)), - OP2(OHWCST0, OWREG1), - ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 1))) -INSNUE(mvk, zero, s, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0), FIX(unit, 0x1)), - OP2(OHWCST0, OWREG1), - ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 1))) -INSNUE(mvk, zero, d, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0), FIX(unit, 0x2)), - OP2(OHWCST0, OWREG1), - ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 1))) -INSNUE(mvk, one, l, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 1), FIX(unit, 0x0)), - OP2(OHWCST1, OWREG1), - ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 1))) -INSNUE(mvk, one, s, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 1), FIX(unit, 0x1)), - OP2(OHWCST1, OWREG1), - ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 1))) -INSNUE(mvk, one, d, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 1), FIX(unit, 0x2)), - OP2(OHWCST1, OWREG1), - ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 1))) -/**/ - -INSN(mvkh, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(h, 1)), - OP2(OLCST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(cst, lcst_high16, 0), ENC(dst, reg, 1))) - -INSN(mvklh, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO, - FIX1(FIX(h, 1)), - OP2(OLCST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(cst, lcst_low16, 0), ENC(dst, reg, 1))) - -INSN(mvkl, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO, - FIX1(FIX(h, 0)), - OP2(OLCST, OWREG1), - ENC3(ENC(s, fu, 0), ENC(cst, lcst_low16, 0), ENC(dst, reg, 1))) - -INSNE(neg, s_xsi_si, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, - FIX2(FIX(op, 0x16), FIX(src1, 0)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) -INSNE(neg, l_xsi_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, - FIX2(FIX(op, 0x06), FIX(src1, 0)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) -INSNE(neg, l_sl_sl, l, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO, - FIX2(FIX(op, 0x24), FIX(src1, 0)), - OP2(ORREGL1, OWREGL1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(nop, nfu, nop_idle, nop, C62X, 0, - FIX2(FIX(s, 0), RAN(op, 0, 8)), - OP1(OACST), - ENC1(ENC(op, ucst_minus_one, 0))) -INSNE(nop, 1, nfu, nop_idle, nop, C62X, TIC6X_FLAG_MACRO, - FIX2(FIX(s, 0), FIX(op, 0)), - OP0(), - ENC0()) - -/* 16 bits insn */ -/* contrary to sprufe8b.pdf p767, and accordingly to - * dis6x.exe output, unop3 opcode is decoded as NOP N3 + 1 */ -INSN(nop, nfu, unop, nop, C64XP, 0, - FIX0(), - OP1(OACST), - ENC1(ENC(n, ucst_minus_one, 0))) -/**/ - -INSNE(norm, l_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX2(FIX(op, 0x63), FIX(src1, 0)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) -INSNE(norm, l_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX3(FIX(op, 0x60), FIX(x, 0), FIX(src1, 0)), - OP2(ORREGL1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1))) - -INSN(not, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, - FIX2(FIX(op, 0x6e), FIX(src1, 0x1f)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) -INSN(not, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, - FIX2(FIX(op, 0x0a), FIX(src1, 0x1f)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) -INSN(not, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO, - FIX2(FIX(op, 0xf), FIX(src1, 0x1f)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSNE(or, d_ui_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x2)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(or, d_s5_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x3)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(or, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x7f)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(or, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x7e)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(or, s_ui_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x1b)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(or, s_s5_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x1a)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(or, l, l2c, 1cycle, C64XP, 0, - FIX1(FIX(op, 1)), - OP3(ORREG1, ORXREG1, OWREG1NORS), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -/**/ - -INSN(pack2, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x0)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(pack2, s, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0xf)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(packh2, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x1e)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(packh2, s, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x9)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(packh4, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x69)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(packhl2, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x1c)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(packhl2, s, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x8)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(packlh2, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x1b)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(packlh2, s, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x10)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(packl4, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x68)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(rcpdp, s, 1_or_2_src, 2cycle_dp, C67X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x2d), FIX(x, 0)), - OP2(ORREGD1, OWREGD12), - ENC4(ENC(s, fu, 0), ENC(src2, regpair_msb, 0), ENC(src1, regpair_lsb, 0), - ENC(dst, reg, 1))) - -INSN(rcpsp, s, 1_or_2_src, 1cycle, C67X, 0, - FIX2(FIX(op, 0x3d), FIX(src1, 0)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(ret, s, ext_branch_cond_imm, branch, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN, - FIX0(), - OP1(OLCST), - ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) -INSN(ret, s, branch, branch, C62X, - TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN, - FIX1(FIX(s, 1)), - OP1(ORXREG1), - ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0))) -INSN(ret, s, b_irp, branch, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN, - FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), - OP1(ORIRP1), - ENC0()) -INSN(ret, s, b_nrp, branch, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN, - FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), - OP1(ORNRP1), - ENC0()) - -INSN(retp, s, call_imm_nop, branch, C64XP, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN, - FIX1(FIX(z, 1)), - OP2(OLCST, OWRETREG1), - ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) - -INSN(rint, nfu, rint, 1cycle, C64XP, 0, - FIX1(FIX(s, 0)), - OP0(), - ENC0()) - -INSNE(rotl, m_ui_xui_ui, m, compound, 1616_m, C64X, 0, - FIX1(FIX(op, 0x1d)), - OP3(ORXREG1, ORREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) -INSNE(rotl, m_u5_xui_ui, m, compound, 1616_m, C64X, 0, - FIX1(FIX(op, 0x1e)), - OP3(ORXREG1, OACST, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, ucst, 1), ENC(dst, reg, 2))) - -INSN(rpack2, s, ext_1_or_2_src_noncond, 1cycle, C64XP, 0, - FIX2(FIX(op, 0xb), FIX(z, 1)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(rsqrdp, s, 1_or_2_src, 2cycle_dp, C67X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x2e), FIX(x, 0)), - OP2(ORREGD1, OWREGD12), - ENC4(ENC(s, fu, 0), ENC(src2, regpair_msb, 0), ENC(src1, regpair_lsb, 0), - ENC(dst, reg, 1))) - -INSN(rsqrsp, s, 1_or_2_src, 1cycle, C67X, 0, - FIX2(FIX(op, 0x3e), FIX(src1, 0)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSNE(sadd, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x13)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(sadd, l_xsi_sl_sl, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x31)), - OP3(ORXREG1, ORREGL1, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(sadd, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x12)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(sadd, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x30)), - OP3(OACST, ORREGL1, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(sadd, s_si_xsi_si, s, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x20)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(sadd, l, l3_sat_1, 1cycle, C64XP, 0, - FIX1(FIX(op, 0)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(sadd, s, s3_sat_1, 1cycle, C64XP,0, - FIX1(FIX(op, 0x0)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -/**/ - -INSN(sadd2, s, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x0)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(saddsub, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x0e)), - OP3(ORREG1, ORXREG1, OWREGD1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(saddsub2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x0f)), - OP3(ORREG1, ORXREG1, OWREGD1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(saddsu2, s, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x1)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSN(saddus2, s, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x1)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(saddu4, s, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x3)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(sat, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX3(FIX(op, 0x40), FIX(x, 0), FIX(src1, 0)), - OP2(ORREGL1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1))) - -INSN(set, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x2)), - OP4(ORREG1, OACST, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1), - ENC(cstb, ucst, 2), ENC(dst, reg, 3))) -INSN(set, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x3b)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(set, s, sc5, 1cycle, C64XP, 0, - FIX1(FIX(op, 1)), - OP4(ORREG1, OACST, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(cst, ucst, 1), - ENC(cst, ucst, 2), ENC(srcdst, reg, 3))) -/**/ - -INSN(shfl, m, unary, 1616_m, C64X, 0, - FIX1(FIX(op, 0x1c)), - OP2(ORXREG1, OWREG2), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(shfl3, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x36)), - OP3(ORREG1, ORXREG1, OWREGD1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(shl, s_xsi_ui_si, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x33)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) -INSNE(shl, s_sl_ui_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x31), FIX(x, 0)), - OP3(ORREGL1, ORREG1, OWREGL1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), - ENC(dst, reg, 2))) -INSNE(shl, s_xui_ui_ul, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x13)), - OP3(ORXREG1, ORREG1, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) -INSNE(shl, s_xsi_u5_si, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x32)), - OP3(ORXREG1, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, ucst, 1), ENC(dst, reg, 2))) -INSNE(shl, s_sl_u5_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x30), FIX(x, 0)), - OP3(ORREGL1, OACST, OWREGL1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), - ENC(dst, reg, 2))) -INSNE(shl, s_xui_u5_ul, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x12)), - OP3(ORXREG1, OACST, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, ucst, 1), ENC(dst, reg, 2))) - -/* 16bit insn */ -INSN(shl, s, s3i, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x0)), - OP3(ORXREG1, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(cst, cst_s3i, 1), ENC(dst, reg, 2))) -INSN(shl, s, ssh5_sat_x, 1cycle, C64XP, - TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x0)), - OP3(ORREG1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), - ENC(cst, ucst, 1), ENC(srcdst, reg, 2))) -INSN(shl, s, s2sh, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x0)), - OP3(ORREG1, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(src1, reg, 1), - ENC(srcdst, reg, 2))) -/**/ - -INSN(shlmb, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x61)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(shlmb, s, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x9)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(shr, s_xsi_ui_si, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x37)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) -INSNE(shr, s_sl_ui_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x35), FIX(x, 0)), - OP3(ORREGL1, ORREG1, OWREGL1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), - ENC(dst, reg, 2))) -INSNE(shr, s_xsi_u5_si, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x36)), - OP3(ORXREG1, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, ucst, 1), ENC(dst, reg, 2))) -INSNE(shr, s_sl_u5_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x34), FIX(x, 0)), - OP3(ORREGL1, OACST, OWREGL1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), - ENC(dst, reg, 2))) - -/* 16bit insn */ -INSN(shr, s, s3i, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x1)), - OP3(ORXREG1, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(cst, cst_s3i, 1), ENC(dst, reg, 2))) -INSN(shr, s, ssh5_sat_x, 1cycle, C64XP, - TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x1)), - OP3(ORREG1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), - ENC(cst, ucst, 1), ENC(srcdst, reg, 2))) -INSN(shr, s, s2sh, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x1)), - OP3(ORREG1, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(src1, reg, 1), - ENC(srcdst, reg, 2))) -/**/ - -INSNE(shr2, s_xs2_ui_s2, s, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x7)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) -INSNE(shr2, s_xs2_u5_s2, s, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x18)), - OP3(ORXREG1, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, ucst, 1), ENC(dst, reg, 2))) - -INSN(shrmb, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x62)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(shrmb, s, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0xa)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(shru, s_xui_ui_ui, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x27)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) -INSNE(shru, s_ul_ui_ul, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x25), FIX(x, 0)), - OP3(ORREGL1, ORREG1, OWREGL1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), - ENC(dst, reg, 2))) -INSNE(shru, s_xui_u5_ui, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x26)), - OP3(ORXREG1, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, ucst, 1), ENC(dst, reg, 2))) -INSNE(shru, s_ul_u5_ul, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x24), FIX(x, 0)), - OP3(ORREGL1, OACST, OWREGL1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), - ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(shru, s, ssh5_sat_0, 1cycle, C64XP, - TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x2)), - OP3(ORREG1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), - ENC(cst, ucst, 1), ENC(srcdst, reg, 2))) -INSN(shru, s, s2sh, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x2)), - OP3(ORREG1, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(src1, reg, 1), - ENC(srcdst, reg, 2))) -/**/ - -INSNE(shru2, s_xu2_ui_u2, s, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x8)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) -INSNE(shru2, s_xu2_u5_u2, s, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x19)), - OP3(ORXREG1, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, ucst, 1), ENC(dst, reg, 2))) - -INSN(sl, d, 1_or_2_src, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_SIDE_T2_ONLY|TIC6X_FLAG_NO_CROSS, - FIX3(FIX(s, 1), FIX(op, 0xd), FIX(src1, 0)), - OP2(ORDREG1, OWMEMDW), - ENC2(ENC(dst, reg, 0), ENC(src2, reg, 1))) - -INSN(smpy, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x1a)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(smpy, m, m3_sat_1, 1616_m, C67X, 0, - FIX1(FIX(op, 0x0)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) -/**/ - -INSN(smpyh, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x02)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(smpyh, m, m3_sat_1, 1616_m, C67X, 0, - FIX1(FIX(op, 0x1)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) -/**/ - -INSN(smpyhl, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x0a)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(smpyhl, m, m3_sat_1, 1616_m, C67X, 0, - FIX1(FIX(op, 0x3)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) -/**/ - -INSN(smpylh, m, mpy, 1616_m, C62X, 0, - FIX1(FIX(op, 0x12)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(smpylh, m, m3_sat_1, 1616_m, C67X, 0, - FIX1(FIX(op, 0x2)), - OP3(ORREG1, ORXREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) -/**/ - -INSN(smpy2, m, compound, 4cycle, C64X, 0, - FIX1(FIX(op, 0x01)), - OP3(ORREG1, ORXREG1, OWREGD4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* Contrary to SPRUFE8, this is the correct operand order for this - instruction. */ -INSN(smpy32, m, 1_or_2_src, 4cycle, C64XP, 0, - FIX1(FIX(op, 0x19)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(spack2, s, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x2)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(spacku4, s, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x4)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(spdp, s, 1_or_2_src, 2cycle_dp, C67X, 0, - FIX2(FIX(op, 0x02), FIX(src1, 0)), - OP2(ORXREG1, OWREGD12), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(spint, l, 1_or_2_src, 4cycle, C67X, 0, - FIX2(FIX(op, 0x0a), FIX(src1, 0)), - OP2(ORXREG1, OWREG4), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSNE(spkernel, nfu_2, nfu, spkernel, 1cycle, C64XP, - TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL, - FIX1(FIX(s, 0)), - OP2(OACST, OACST), - ENC2(ENC(fstgfcyc, fstg, 0), ENC(fstgfcyc, fcyc, 1))) -INSNE(spkernel, nfu_0, nfu, spkernel, 1cycle, C64XP, - TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL|TIC6X_FLAG_MACRO, - FIX2(FIX(s, 0), FIX(fstgfcyc, 0)), - OP0(), - ENC0()) - -/* 16 bits insn */ -INSN(spkernel, nfu, uspk, 1cycle, C64XP, - TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL, - FIX0(), - OP2(OACST, OACST), - ENC2(ENC(fstgfcyc, fstg, 0), ENC(fstgfcyc, fcyc, 1))) -/**/ - -INSN(spkernelr, nfu, spkernelr, 1cycle, C64XP, - TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL, - FIX1(FIX(s, 0)), - OP0(), - ENC0()) - -INSN(sploop, nfu, loop_buffer, 1cycle, C64XP, - TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP, - FIX4(FIX(s, 0), FIX(op, 0xc), FIX(csta, 0), RAN(cstb, 0, 13)), - OP1(OACST), - ENC1(ENC(cstb, ucst_minus_one, 0))) - -INSN(sploopd, nfu, loop_buffer, 1cycle, C64XP, - TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP, - FIX4(FIX(s, 0), FIX(op, 0xd), FIX(csta, 0), RAN(cstb, 0, 13)), - OP1(OACST), - ENC1(ENC(cstb, ucst_minus_one, 0))) - -INSN(sploopw, nfu, loop_buffer, 1cycle, C64XP, - TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP, - FIX4(FIX(s, 0), FIX(op, 0xf), FIX(csta, 0), RAN(cstb, 0, 13)), - OP1(OACST), - ENC1(ENC(cstb, ucst_minus_one, 0))) - -/* 16 bits insn */ -INSN(sploop, nfu, uspl, 1cycle, C64XP, - TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP, - FIX1(FIX(op, 0)), - OP1(OACST), - ENC1(ENC(ii, ucst_minus_one, 0))) - -INSN(sploopd, nfu, uspl, 1cycle, C64XP, - TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP, - FIX1(FIX(op, 1)), - OP1(OACST), - ENC1(ENC(ii, ucst_minus_one, 0))) - -INSN(sploopd, nfu, uspldr, 1cycle, C64XP, - TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP|TIC6X_FLAG_INSN16_SPRED, - FIX0(), - OP1(OACST), - ENC1(ENC(ii, ucst_minus_one, 0))) -/**/ - - -/* Contrary to SPRUFE8, this is the correct encoding for this - instruction. */ -INSN(spmask, nfu, spmask, 1cycle, C64XP, TIC6X_FLAG_FIRST|TIC6X_FLAG_SPMASK, - FIX2(FIX(s, 0), FIX(op, 0x8)), - OP1(OFULIST), - ENC1(ENC(mask, spmask, 0))) - -/* 16 bits insn */ -INSN(spmask, nfu, uspma, 1cycle, C64XP, TIC6X_FLAG_FIRST|TIC6X_FLAG_SPMASK, - FIX0(), - OP1(OFULIST), - ENC1(ENC(mask, spmask, 0))) -/**/ - -INSN(spmaskr, nfu, spmask, 1cycle, C64XP, TIC6X_FLAG_FIRST|TIC6X_FLAG_SPMASK, - FIX2(FIX(s, 0), FIX(op, 0x9)), - OP1(OFULIST), - ENC1(ENC(mask, spmask, 0))) - -/* 16 bits insn */ -INSN(spmaskr, nfu, uspmb, 1cycle, C64XP, TIC6X_FLAG_FIRST|TIC6X_FLAG_SPMASK, - FIX0(), - OP1(OFULIST), - ENC1(ENC(mask, spmask, 0))) -/**/ - -INSN(sptrunc, l, 1_or_2_src, 4cycle, C67X, 0, - FIX2(FIX(op, 0x0b), FIX(src1, 0)), - OP2(ORXREG1, OWREG4), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSNE(sshl, s_xsi_ui_si, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x23)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) -INSNE(sshl, s_xsi_u5_si, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x22)), - OP3(ORXREG1, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, ucst, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(sshl, s, ssh5_sat_1, 1cycle, C64XP, - TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x2)), - OP3(ORREG1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), - ENC(cst, ucst, 1), ENC(srcdst, reg, 2))) -INSN(sshl, s, s2sh, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x3)), - OP3(ORREG1, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(src1, reg, 1), - ENC(srcdst, reg, 2))) -/**/ - -INSN(sshvl, m, compound, 1616_m, C64X, 0, - FIX1(FIX(op, 0x1c)), - OP3(ORXREG1, ORREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -/* Contrary to SPRUFE8, this is the correct encoding for this - instruction. */ -INSN(sshvr, m, compound, 1616_m, C64X, 0, - FIX1(FIX(op, 0x1a)), - OP3(ORXREG1, ORREG1, OWREG2), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSNE(ssub, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x0f)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(ssub, l_xsi_si_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0x1f)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(ssub, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x0e)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(ssub, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x2c)), - OP3(OACST, ORREGL1, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(ssub, l, l3_sat_1, 1cycle, C64XP, 0, - FIX1(FIX(op, 1)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -/**/ - -INSN(ssub2, l, 1_or_2_src, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x64)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(stb, d, load_store, store, C62X, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX2(FIX(op, 3), FIX(r, 0)), - OP2(ORDREG1, OWMEMSB), - ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1), - ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1), - ENC(srcdst, reg, 0))) -INSN(stb, d, load_store_long, store, C62X, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 3)), - OP2(ORDREG1, OWMEMLB), - ENC4(ENC(s, data_fu, 0), ENC(y, areg, 1), ENC(offsetR, ulcst_dpr_byte, 1), - ENC(dst, reg, 0))) - -/* 16 bits insn */ -INSN(stb, d, doff4_dsz_000, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSB), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) -INSN(stb, d, doff4_dsz_x01, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSB), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) -INSN(stb, d, dind_dsz_000, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSB), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset, 1), - ENC(ptr, reg_ptr, 1), ENC(srcdst, reg, 0))) -INSN(stb, d, dind_dsz_x01, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSB), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset, 1), - ENC(ptr, reg_ptr, 1), ENC(srcdst, reg, 0))) -INSN(stb, d, dinc_dsz_000, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSB), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -INSN(stb, d, dinc_dsz_x01, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSB), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -INSN(stb, d, ddec_dsz_000, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSB), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -INSN(stb, d, ddec_dsz_x01, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSB), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -/**/ - -INSN(stdw, d, load_store, store, C64X, TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 4), FIX(r, 1)), - OP2(ORDREGD1, OWMEMSD), - ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1), - ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1), - ENC(srcdst, reg, 0))) - -/* 16 bits insn */ -INSN(stdw, d, dpp, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTDECR)|TIC6X_FLAG_INSN16_B15PTR|TIC6X_FLAG_INSN16_NORS, - FIX3(FIX(op, 0), FIX(dw, 1), FIX(s, 1)), - OP2(ORTREGD1, OWMEMSD), - ENC4(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(cst, mem_offset_minus_one, 1))) -INSN(stdw, d, ddecdw, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX3(FIX(op, 0), FIX(na, 0), FIX(sz, 0)), - OP2(ORTREGD1, OWMEMSD), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -INSN(stdw, d, dincdw, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX3(FIX(op, 0), FIX(na, 0), FIX(sz, 0)), - OP2(ORTREGD1, OWMEMSD), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -INSN(stdw, d, dinddw, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX3(FIX(op, 0), FIX(na, 0), FIX(sz, 0)), - OP2(ORTREGD1, OWMEMSD), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset, 1), - ENC(ptr, reg_ptr, 1), ENC(srcdst, reg_shift, 0))) -INSN(stdw, d, doff4dw, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX3(FIX(op, 0), FIX(na, 0), FIX(sz, 0)), - OP2(ORTREGD1, OWMEMSD), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset, 1), - ENC(ptr, reg_ptr, 1), ENC(srcdst, reg_shift, 0))) -/**/ - -INSN(sth, d, load_store, store, C62X, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX2(FIX(op, 5), FIX(r, 0)), - OP2(ORDREG1, OWMEMSH), - ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1), - ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1), - ENC(srcdst, reg, 0))) -INSN(sth, d, load_store_long, store, C62X, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 5)), - OP2(ORDREG1, OWMEMLH), - ENC4(ENC(s, data_fu, 0), ENC(y, areg, 1), ENC(offsetR, ulcst_dpr_half, 1), - ENC(dst, reg, 0))) - -/* 16 bits insn */ -INSN(sth, d, doff4_dsz_01x, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSH), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) -INSN(sth, d, doff4_dsz_111, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSH), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) -INSN(sth, d, dind_dsz_01x, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSH), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(src1, mem_offset, 1))) -INSN(sth, d, dind_dsz_111, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSH), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(src1, mem_offset, 1))) -INSN(sth, d, dinc_dsz_01x, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSH), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -INSN(sth, d, dinc_dsz_111, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSH), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -INSN(sth, d, ddec_dsz_01x, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSH), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -INSN(sth, d, ddec_dsz_111, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSH), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -/**/ - -INSN(stndw, d, store_nonaligned, store, C64X, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED, - FIX0(), - OP2(ORDREGD1, OWMEMND), - ENC7(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1), - ENC(offsetR, mem_offset_noscale, 1), ENC(baseR, reg, 1), - ENC(sc, scaled, 1), ENC(src, reg_shift, 0))) - -/* 16 bits insn */ -INSN(stndw, d, ddecdw, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX3(FIX(op, 0), FIX(na, 1), FIX(sz, 0)), - OP2(ORTREGD1, OWMEMND), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one_noscale, 1))) -INSN(stndw, d, dincdw, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX3(FIX(op, 0), FIX(na, 1), FIX(sz, 0)), - OP2(ORTREGD1, OWMEMND), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one_noscale, 1))) -INSN(stndw, d, dinddw, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX3(FIX(op, 0), FIX(na, 1), FIX(sz, 0)), - OP2(ORTREGD1, OWMEMND), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset_noscale, 1), - ENC(ptr, reg_ptr, 1), ENC(srcdst, reg_shift, 0))) -INSN(stndw, d, doff4dw, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX3(FIX(op, 0), FIX(na, 1), FIX(sz, 0)), - OP2(ORTREGD1, OWMEMND), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset_noscale, 1), - ENC(ptr, reg_ptr, 1), ENC(srcdst, reg_shift, 0))) -/**/ - -INSN(stnw, d, load_store, store, C64X, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED, - FIX2(FIX(op, 5), FIX(r, 1)), - OP2(ORDREG1, OWMEMSW), - ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1), - ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1), - ENC(srcdst, reg, 0))) - -/* 16 bits insn */ -INSN(stnw, d, doff4_dsz_110, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSW), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) -INSN(stnw, d, dind_dsz_110, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSW), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(src1, mem_offset, 1))) -INSN(stnw, d, dinc_dsz_110, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSW), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -INSN(stnw, d, ddec_dsz_110, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSW), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -/**/ - -INSN(stw, d, load_store, store, C62X, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX2(FIX(op, 7), FIX(r, 0)), - OP2(ORDREG1, OWMEMSW), - ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1), - ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1), - ENC(srcdst, reg, 0))) -INSN(stw, d, load_store_long, store, C62X, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 7)), - OP2(ORDREG1, OWMEMLW), - ENC4(ENC(s, data_fu, 0), ENC(y, areg, 1), ENC(offsetR, ulcst_dpr_word, 1), - ENC(dst, reg, 0))) - -/* 16 bits insn */ -INSN(stw, d, doff4_dsz_0xx, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 0)), - OP2(ORTREG1, OWMEMSW), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) -INSN(stw, d, doff4_dsz_100, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSW), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) -INSN(stw, d, dind_dsz_0xx, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 0)), - OP2(ORTREG1, OWMEMSW), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(src1, mem_offset, 1))) -INSN(stw, d, dind_dsz_100, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSW), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(src1, mem_offset, 1))) -INSN(stw, d, dinc_dsz_0xx, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 0), FIX(sz, 0)), - OP2(ORTREG1, OWMEMSW), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -INSN(stw, d, dinc_dsz_100, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSW), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -INSN(stw, d, ddec_dsz_0xx, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 0), FIX(sz, 0)), - OP2(ORTREG1, OWMEMSW), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -INSN(stw, d, ddec_dsz_100, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), - FIX2(FIX(op, 0), FIX(sz, 1)), - OP2(ORTREG1, OWMEMSW), - ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) -INSN(stw, d, dpp, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTDECR)|TIC6X_FLAG_INSN16_B15PTR|TIC6X_FLAG_INSN16_NORS, - FIX2(FIX(op, 0), FIX(dw, 0)), - OP2(ORTREG1, OWMEMSW), - ENC4(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(cst, mem_offset_minus_one, 1))) -INSN(stw, d, dstk, store, C64XP, - TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE)|TIC6X_FLAG_INSN16_B15PTR, - FIX2(FIX(op, 0x0), FIX(s, 1)), - OP2(ORTREG1, OWMEMSW), - ENC4(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), - ENC(cst, mem_offset, 1))) -/**/ - -INSNE(sub, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x07)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(sub, l_xsi_si_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0x17)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(sub, l_si_xsi_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x27)), - OP3(ORREG1, ORXREG1, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(sub, l_xsi_si_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0x37)), - OP3(ORXREG1, ORREG1, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(sub, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x06)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(sub, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x24)), - OP3(OACST, ORREGL1, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(sub, l_xsi_s5_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x2)), - OP3(ORXREG1, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst_negate, 1), - ENC(src2, reg, 0), ENC(dst, reg, 2))) -INSNE(sub, l_sl_s5_sl, l, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x20), FIX(x, 0)), - OP3(ORREGL1, OACST, OWREGL1), - ENC4(ENC(s, fu, 0), ENC(src1, scst_negate, 1), ENC(src2, reg, 0), - ENC(dst, reg, 2))) -INSNE(sub, s_si_xsi_si, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x17)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(sub, s_s5_xsi_si, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x16)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -/* Contrary to SPRUFE8, this is the correct encoding for this - instruction; this instruction can be predicated. */ -INSNE(sub, s_xsi_si_si, s, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0x5)), - OP3(ORXREG1, ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) -INSNE(sub, s_xsi_s5_si, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, - FIX1(FIX(op, 0x6)), - OP3(ORXREG1, OACST, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst_negate, 1), - ENC(src2, reg, 0), ENC(dst, reg, 2))) -INSNE(sub, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x11)), - OP3(ORREG1, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), - ENC(dst, reg, 2))) -INSNE(sub, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x13)), - OP3(ORREG1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), - ENC(dst, reg, 2))) -INSNE(sub, d_si_xsi_si, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0xc)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(sub, l, l3_sat_0, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x1)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(sub, l, lx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x2)), - OP3(OHWCST0, ORREG1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 1), ENC(srcdst, reg, 2))) -INSN(sub, s, sx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x2)), - OP3(OHWCST0, ORREG1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 1), ENC(srcdst, reg, 2))) -INSN(sub, s, sx2op, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x1)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2), - ENC(src2, reg, 1), ENC(x, xpath, 1))) -INSN(sub, s, s3_sat_x, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x1)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(sub, d, dx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x3)), - OP3(ORREG1, OHWCST1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) -INSN(sub, d, dx2op, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x1)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(srcdst, reg, 0), - ENC(src2, reg, 1), ENC(srcdst, reg, 2))) -/**/ - -INSNE(subab, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x31)), - OP3(ORREG1, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), - ENC(dst, reg, 2))) -INSNE(subab, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x33)), - OP3(ORREG1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), - ENC(dst, reg, 2))) - -INSN(subabs4, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x5a)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(subah, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x35)), - OP3(ORREG1, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), - ENC(dst, reg, 2))) -INSNE(subah, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x37)), - OP3(ORREG1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), - ENC(dst, reg, 2))) - -INSNE(subaw, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x39)), - OP3(ORREG1, ORREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), - ENC(dst, reg, 2))) -INSNE(subaw, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, - FIX1(FIX(op, 0x3b)), - OP3(ORREG1, OACST, OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), - ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(subaw, d, dx5p, 1cycle, C64XP, 0, - FIX1(FIX(op, 1)), - OP3(ORB15REG1, OACST, OWB15REG1), - ENC2(ENC(s, fu, 0), ENC(cst, ucst, 1))) -/**/ - -INSN(subc, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x4b)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSNE(subdp, l_dp_xdp_dp, l, 1_or_2_src, addsubdp, C67X, TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x19)), - OP3(ORREGD12, ORXREGD12, OWREGD67), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(subdp, l_xdp_dp_dp, l, 1_or_2_src, addsubdp, C67X, TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0x1d)), - OP3(ORXREGD12, ORREGD12, OWREGD67), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(subdp, s_dp_xdp_dp, s, l_1_or_2_src, addsubdp, C67XP, - TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x73)), - OP3(ORREGD12, ORXREGD12, OWREGD67), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(subdp, s_xdp_dp_dp, s, l_1_or_2_src, addsubdp, C67XP, - TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0x77)), - OP3(ORXREGD12, ORREGD12, OWREGD67), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSNE(subsp, l_sp_xsp_sp, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x11)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(subsp, l_xsp_sp_sp, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0x15)), - OP3(ORXREG1, ORREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(subsp, s_sp_xsp_sp, s, l_1_or_2_src, 4cycle, C67XP, - TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x71)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(subsp, s_xsp_sp_sp, s, l_1_or_2_src, 4cycle, C67XP, - TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0x75)), - OP3(ORXREG1, ORREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(src1, reg, 1), ENC(dst, reg, 2))) - -INSNE(subu, l_ui_xui_ul, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), - FIX1(FIX(op, 0x2f)), - OP3(ORREG1, ORXREG1, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(subu, l_xui_ui_ul, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0x3f)), - OP3(ORXREG1, ORREG1, OWREGL1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(sub2, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x04)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(sub2, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x11)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSN(sub2, d, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x5)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(sub4, l, 1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0x66)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(swap2, l, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x1b), FIX(x, 0)), - OP2(ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 0), ENC(dst, reg, 1))) -INSN(swap2, s, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x10), FIX(x, 0)), - OP2(ORREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 0), ENC(dst, reg, 1))) - -/* Contrary to SPRUFE8, this is the correct encoding for this - instruction. */ -INSN(swap4, l, unary, 1cycle, C64X, 0, - FIX1(FIX(op, 0x1)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(swe, nfu, swe, 1cycle, C64XP, 0, - FIX1(FIX(s, 0)), - OP0(), - ENC0()) - -INSN(swenr, nfu, swenr, 1cycle, C64XP, 0, - FIX1(FIX(s, 0)), - OP0(), - ENC0()) - -INSN(unpkhu4, l, unary, 1cycle, C64X, 0, - FIX1(FIX(op, 0x03)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) -INSN(unpkhu4, s, unary, 1cycle, C64X, 0, - FIX1(FIX(op, 0x03)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(unpklu4, l, unary, 1cycle, C64X, 0, - FIX1(FIX(op, 0x02)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) -INSN(unpklu4, s, unary, 1cycle, C64X, 0, - FIX1(FIX(op, 0x02)), - OP2(ORXREG1, OWREG1), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSNE(xor, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x6f)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(xor, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x6e)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(xor, s_ui_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x0b)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(xor, s_s5_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0, - FIX1(FIX(op, 0x0a)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(xor, d_ui_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0xe)), - OP3(ORREG1, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNE(xor, d_s5_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0, - FIX1(FIX(op, 0xf)), - OP3(OACST, ORXREG1, OWREG1), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -/* 16 bits insn */ -INSN(xor, l, l2c, 1cycle, C64XP, 0, - FIX1(FIX(op, 0x2)), - OP3(ORREG1, ORXREG1, OWREG1NORS), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) -INSNU(xor, l, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x7), FIX(unit, 0x0)), - OP3(ORREG1, OHWCST1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) -INSNU(xor, s, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x7), FIX(unit, 0x1)), - OP3(ORREG1, OHWCST1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) -INSNU(xor, d, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, - FIX2(FIX(op, 0x7), FIX(unit, 0x2)), - OP3(ORREG1, OHWCST1, OWREG1), - ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) -/**/ - -INSN(xormpy, m, 1_or_2_src, 4cycle, C64XP, 0, - FIX1(FIX(op, 0x1b)), - OP3(ORREG1, ORXREG1, OWREG4), - ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), - ENC(src2, reg, 1), ENC(dst, reg, 2))) - -INSN(xpnd2, m, unary, 1616_m, C64X, 0, - FIX1(FIX(op, 0x19)), - OP2(ORXREG1, OWREG2), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(xpnd4, m, unary, 1616_m, C64X, 0, - FIX1(FIX(op, 0x18)), - OP2(ORXREG1, OWREG2), - ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), - ENC(dst, reg, 1))) - -INSN(zero, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO, - FIX2(FIX(h, 0), FIX(cst, 0)), - OP1(OWREG1), - ENC2(ENC(s, fu, 0), ENC(dst, reg, 0))) -INSN(zero, l, unary, 1cycle, C64X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(1), - FIX3(FIX(x, 0), FIX(op, 0x05), FIX(src2, 0)), - OP1(OWREG1), - ENC2(ENC(s, fu, 0), ENC(dst, reg, 0))) -INSNE(zero, l_sub, l, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0), - FIX2(FIX(op, 0x07), FIX(x, 0)), - OP1(OWREG1), - ENC4(ENC(s, fu, 0), ENC(src1, reg_unused, 0), ENC(src2, reg_unused, 0), - ENC(dst, reg, 0))) -INSNE(zero, l_sub_sl, l, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO, - FIX2(FIX(op, 0x27), FIX(x, 0)), - OP1(OWREGL1), - ENC4(ENC(s, fu, 0), ENC(src1, reg_unused, 0), ENC(src2, reg_unused, 0), - ENC(dst, reg, 0))) -INSNE(zero, d_mvk, d, 1_or_2_src, 1cycle, C64X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(1), - FIX3(FIX(op, 0x00), FIX(src1, 0), FIX(src2, 0)), - OP1(OWREG1), - ENC2(ENC(s, fu, 0), ENC(dst, reg, 0))) -INSNE(zero, d_sub, d, 1_or_2_src, 1cycle, C62X, - TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0), - FIX1(FIX(op, 0x11)), - OP1(OWREG1), - ENC4(ENC(s, fu, 0), ENC(src2, reg_unused, 0), ENC(src1, reg_unused, 0), - ENC(dst, reg, 0))) - -#undef TIC6X_INSN_C64X_AND_C67X -#undef tic6x_insn_format_nfu_s_branch_nop_cst -#undef tic6x_insn_format_s_l_1_or_2_src -#undef RAN -#undef FIX -#undef FIX0 -#undef FIX1 -#undef FIX2 -#undef FIX3 -#undef FIX4 -#undef OP0 -#undef OP1 -#undef OP2 -#undef OP3 -#undef OP4 -#undef OACST -#undef OLCST -#undef OHWCSTM1 -#undef OHWCST0 -#undef OHWCST1 -#undef OHWCST5 -#undef OHWCST16 -#undef OHWCST24 -#undef OHWCST31 -#undef OFULIST -#undef ORIRP1 -#undef ORNRP1 -#undef OWREG1 -#undef OWRETREG1 -#undef ORREG1 -#undef ORDREG1 -#undef ORWREG1 -#undef ORAREG1 -#undef ORXREG1 -#undef ORREG12 -#undef ORREG14 -#undef ORXREG14 -#undef OWREG2 -#undef OWREG4 -#undef OWREG9 -#undef OWDREG5 -#undef OWREGL1 -#undef ORREGL1 -#undef OWREGD1 -#undef ORTREG1 -#undef ORTREGD1 -#undef OWTREG5 -#undef OWTREGD5 -#undef OWREGD12 -#undef OWREGD4 -#undef ORREGD1 -#undef OWREGD45 -#undef OWREGD67 -#undef ORDREGD1 -#undef OWDREGD5 -#undef ORREGD12 -#undef ORXREGD12 -#undef ORXREGD1234 -#undef ORREGD1324 -#undef OWREGD910 -#undef OWILC1 -#undef ORCREG1 -#undef OWCREG1 -#undef OWREG1Z -#undef ORB15REG1 -#undef OWB15REG1 -#undef ORMEMDW -#undef OWMEMDW -#undef ORMEMSB -#undef OWMEMSB -#undef ORMEMLB -#undef OWMEMLB -#undef ORMEMSH -#undef OWMEMSH -#undef ORMEMLH -#undef OWMEMLH -#undef ORMEMSW -#undef OWMEMSW -#undef ORMEMLW -#undef OWMEMLW -#undef ORMEMSD -#undef OWMEMSD -#undef ORMEMND -#undef OWMEMND -#undef ENC -#undef ENC0 -#undef ENC1 -#undef ENC2 -#undef ENC3 -#undef ENC4 -#undef ENC5 -#undef ENC6 -#undef ENC7 diff --git a/include/opcode/tic6x.h b/include/opcode/tic6x.h deleted file mode 100644 index d76c5e1..0000000 --- a/include/opcode/tic6x.h +++ /dev/null @@ -1,718 +0,0 @@ -/* TI C6X opcode information. - Copyright 2010-2013 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef OPCODE_TIC6X_H -#define OPCODE_TIC6X_H - -#include "bfd.h" -#include "symcat.h" - -/* A field in an instruction format. The names are based on those - used in the architecture manuals. */ -typedef enum - { - tic6x_field_baseR, - tic6x_field_cc, - tic6x_field_creg, - tic6x_field_cst, - tic6x_field_csta, - tic6x_field_cstb, - tic6x_field_dst, - tic6x_field_dstms, - tic6x_field_dw, - tic6x_field_fstgfcyc, - tic6x_field_h, - tic6x_field_ii, - tic6x_field_mask, - tic6x_field_mode, - tic6x_field_n, - tic6x_field_na, - tic6x_field_offsetR, - tic6x_field_op, - tic6x_field_p, - tic6x_field_ptr, - tic6x_field_r, - tic6x_field_s, - tic6x_field_sc, - tic6x_field_src, - tic6x_field_src1, - tic6x_field_src2, - tic6x_field_srcdst, - tic6x_field_srcms, - tic6x_field_sn, - tic6x_field_sz, - tic6x_field_unit, - tic6x_field_t, - tic6x_field_x, - tic6x_field_y, - tic6x_field_z - } tic6x_insn_field_id; - -typedef struct -{ - /* The least-significant bit position in the field. */ - unsigned short low_pos; - - /* The number of bits in the field. */ - unsigned short width; - /* The position of the bitfield in the field. */ - unsigned short pos; -} tic6x_bitfield; - -/* Maximum number of subfields in composite field. */ -#define TIC6X_MAX_BITFIELDS 4 - -typedef struct -{ - /* The name used to reference the field. */ - tic6x_insn_field_id field_id; - unsigned int num_bitfields; - tic6x_bitfield bitfields[TIC6X_MAX_BITFIELDS]; -} tic6x_insn_field; - -/* Maximum number of variable fields in an instruction format. */ -#define TIC6X_MAX_INSN_FIELDS 11 - -/* A particular instruction format. */ -typedef struct -{ - /* How many bits in the instruction. */ - unsigned int num_bits; - - /* Constant bits in the instruction. */ - unsigned int cst_bits; - - /* Mask matching those bits. */ - unsigned int mask; - - /* The number of instruction fields. */ - unsigned int num_fields; - - /* Descriptions of instruction fields. */ - tic6x_insn_field fields[TIC6X_MAX_INSN_FIELDS]; -} tic6x_insn_format; - -/* An index into the table of instruction formats. */ -typedef enum - { -#define FMT(name, num_bits, cst_bits, mask, fields) \ - CONCAT2(tic6x_insn_format_, name), -#include "tic6x-insn-formats.h" -#undef FMT - tic6x_insn_format_max - } tic6x_insn_format_id; - -/* The table itself. */ -extern const tic6x_insn_format tic6x_insn_format_table[tic6x_insn_format_max]; - -/* If instruction format FMT has a field FIELD, return a pointer to - the description of that field; otherwise return NULL. */ - -const tic6x_insn_field *tic6x_field_from_fmt (const tic6x_insn_format *fmt, - tic6x_insn_field_id field); - -/* Description of a field (in an instruction format) whose value is - fixed, or constrained to be in a particular range, in a particular - opcode. */ -typedef struct -{ - /* The name of the field. */ - tic6x_insn_field_id field_id; - - /* The least value of the field in this instruction. */ - unsigned int min_val; - - /* The greatest value of the field in this instruction. */ - unsigned int max_val; -} tic6x_fixed_field; - -/* Pseudo opcode fields position for compact instructions - If 16 bits instruction detected, the opcode is enriched - [DSZ/3][BR][SAT][opcode] */ -#define TIC6X_COMPACT_SAT_POS 16 -#define TIC6X_COMPACT_BR_POS 17 -#define TIC6X_COMPACT_DSZ_POS 18 - -/* Bit-masks for defining instructions present on some subset of - processors; each indicates an instruction present on that processor - and those that are supersets of it. The options passed to the - assembler determine a bit-mask ANDed with the bit-mask indicating - when the instruction was added to determine whether the instruction - is enabled. */ -#define TIC6X_INSN_C62X 0x0001 -#define TIC6X_INSN_C64X 0x0002 -#define TIC6X_INSN_C64XP 0x0004 -#define TIC6X_INSN_C67X 0x0008 -#define TIC6X_INSN_C67XP 0x0010 -#define TIC6X_INSN_C674X 0x0020 - -/* Flags with further information about an opcode table entry. */ - -/* Only used by the assembler, not the disassembler. */ -#define TIC6X_FLAG_MACRO 0x0001 - -/* Must be first in its execute packet. */ -#define TIC6X_FLAG_FIRST 0x0002 - -/* Multi-cycle NOP (not used for the NOP n instruction itself, which - is only a multicycle NOP if n > 1). */ -#define TIC6X_FLAG_MCNOP 0x0004 - -/* Cannot be in parallel with a multi-cycle NOP. */ -#define TIC6X_FLAG_NO_MCNOP 0x0008 - -/* Load instruction. */ -#define TIC6X_FLAG_LOAD 0x0010 - -/* Store instruction. */ -#define TIC6X_FLAG_STORE 0x0020 - -/* Unaligned memory operation. */ -#define TIC6X_FLAG_UNALIGNED 0x0040 - -/* Only on side B. */ -#define TIC6X_FLAG_SIDE_B_ONLY 0x0080 - -/* Only on data path T2. */ -#define TIC6X_FLAG_SIDE_T2_ONLY 0x0100 - -/* Does not support cross paths. */ -#define TIC6X_FLAG_NO_CROSS 0x0200 - -/* Annotate this branch instruction as a call. */ -#define TIC6X_FLAG_CALL 0x0400 - -/* Annotate this branch instruction as a return. */ -#define TIC6X_FLAG_RETURN 0x0800 - -/* This instruction starts a software pipelined loop. */ -#define TIC6X_FLAG_SPLOOP 0x1000 - -/* This instruction ends a software pipelined loop. */ -#define TIC6X_FLAG_SPKERNEL 0x2000 - -/* This instruction takes a list of functional units as parameters; - although described as having one parameter, the number may be 0 to - 8. */ -#define TIC6X_FLAG_SPMASK 0x4000 - -/* When more than one opcode matches the assembly source, prefer the - one with the highest value for this bit-field. If two opcode table - entries can match the same syntactic form, they must have different - values here. */ -#define TIC6X_PREFER_VAL(n) (((n) & 0x8000) >> 15) -#define TIC6X_FLAG_PREFER(n) ((n) << 15) - -/* 16 bits opcode is predicated by register a0 (s = 0) or b0 (s = 1) */ -#define TIC6X_FLAG_INSN16_SPRED 0x00100000 -/* 16 bits opcode ignores RS bit of fetch packet header */ -#define TIC6X_FLAG_INSN16_NORS 0x00200000 -/* 16 bits opcode only on side B */ -#define TIC6X_FLAG_INSN16_BSIDE 0x00400000 -/* 16 bits opcode ptr reg is b15 */ -#define TIC6X_FLAG_INSN16_B15PTR 0x00800000 -/* 16 bits opcode memory access modes */ -#define TIC6X_INSN16_MEM_MODE(n) ((n) << 16) -#define TIC6X_INSN16_MEM_MODE_VAL(n) (((n) & 0x000F0000) >> 16) -#define TIC6X_MEM_MODE_NEGATIVE 0 -#define TIC6X_MEM_MODE_POSITIVE 1 -#define TIC6X_MEM_MODE_REG_NEGATIVE 4 -#define TIC6X_MEM_MODE_REG_POSITIVE 5 -#define TIC6X_MEM_MODE_PREDECR 8 -#define TIC6X_MEM_MODE_PREINCR 9 -#define TIC6X_MEM_MODE_POSTDECR 10 -#define TIC6X_MEM_MODE_POSTINCR 11 - -#define TIC6X_FLAG_INSN16_MEM_MODE(mode) TIC6X_INSN16_MEM_MODE(TIC6X_MEM_MODE_##mode) - -#define TIC6X_NUM_PREFER 2 - -/* Maximum number of fixed fields for a particular opcode. */ -#define TIC6X_MAX_FIXED_FIELDS 4 - -/* Maximum number of operands in the opcode table for a particular - opcode. */ -#define TIC6X_MAX_OPERANDS 4 - -/* Maximum number of operands in the source code for a particular - opcode (different from the number in the opcode table for SPMASK - and SPMASKR). */ -#define TIC6X_MAX_SOURCE_OPERANDS 8 - -/* Maximum number of variable fields for a particular opcode. */ -#define TIC6X_MAX_VAR_FIELDS 7 - -/* Which functional units an opcode uses. This only describes the - basic choice of D, L, M, S or no functional unit; other fields are - used to describe further restrictions (instructions only operating - on one side), use of cross paths and load/store instructions using - one side for the address and the other side for the source or - destination register. */ -typedef enum - { - tic6x_func_unit_d, - tic6x_func_unit_l, - tic6x_func_unit_m, - tic6x_func_unit_s, - tic6x_func_unit_nfu - } tic6x_func_unit_base; - -/* Possible forms of source operand. */ -typedef enum - { - /* An assembly-time constant. */ - tic6x_operand_asm_const, - /* A link-time constant. */ - tic6x_operand_link_const, - /* A register, from the same side as the functional unit - selected. */ - tic6x_operand_reg, - /* A register, from the same side as the functional unit - selected that ignore RS header bit */ - tic6x_operand_reg_nors, - /* A register, from the b side */ - tic6x_operand_reg_bside, - /* A register, from the b side and from the low register set */ - tic6x_operand_reg_bside_nors, - /* A register, that is from the other side if a cross path is - used. */ - tic6x_operand_xreg, - /* A register, that is from the side of the data path - selected. */ - tic6x_operand_dreg, - /* An address register usable with 15-bit offsets (B14 or B15). - This is from the same side as the functional unit if a cross - path is not used, and the other side if a cross path is - used. */ - tic6x_operand_areg, - /* The B15 register */ - tic6x_operand_b15reg, - /* A register coded as an offset from either A16 or B16 depending - on the value of the t bit. */ - tic6x_operand_treg, - /* A register (A0 or B0), from the same side as the - functional unit selected. */ - tic6x_operand_zreg, - /* A return address register (A3 or B3), from the same side as the - functional unit selected. */ - tic6x_operand_retreg, - /* A register pair, from the same side as the functional unit - selected. */ - tic6x_operand_regpair, - /* A register pair, that is from the other side if a cross path is - used. */ - tic6x_operand_xregpair, - /* A register pair, from the side of the data path selected. */ - tic6x_operand_dregpair, - /* A register pair coded as an offset from either A16 or B16 depending - on the value of the t bit. */ - tic6x_operand_tregpair, - /* The literal string "irp" (case-insensitive). */ - tic6x_operand_irp, - /* The literal string "nrp" (case-insensitive). */ - tic6x_operand_nrp, - /* The literal string "ilc" (case-insensitive). */ - tic6x_operand_ilc, - /* A control register. */ - tic6x_operand_ctrl, - /* A memory reference (base and offset registers from the side of - the functional unit selected), using either unsigned 5-bit - constant or register offset, if any offset; register offsets - cannot use unscaled () syntax. */ - tic6x_operand_mem_short, - /* A memory reference (base and offset registers from the side of - the functional unit selected), using either unsigned 5-bit - constant or register offset, if any offset; register offsets - can use unscaled () syntax (for LDNDW and STNDW). */ - tic6x_operand_mem_ndw, - /* A memory reference using 15-bit link-time constant offset - relative to B14 or B15. */ - tic6x_operand_mem_long, - /* A memory reference that only dereferences a register with no - further adjustments (*REG), that register being from the side - of the functional unit selected. */ - tic6x_operand_mem_deref, - /* A functional unit name or a list thereof (for SPMASK and - SPMASKR). */ - tic6x_operand_func_unit, - /* Hardwired constant '5' in Sbu8 Scs10 and Sbu8c 16 bits - instruction formats - spru732j.pdf Appendix F.4 */ - tic6x_operand_hw_const_minus_1, - tic6x_operand_hw_const_0, - tic6x_operand_hw_const_1, - tic6x_operand_hw_const_5, - tic6x_operand_hw_const_16, - tic6x_operand_hw_const_24, - tic6x_operand_hw_const_31 - } tic6x_operand_form; - -/* Whether something is, or can be, read or written. */ -typedef enum - { - tic6x_rw_none, - tic6x_rw_read, - tic6x_rw_write, - tic6x_rw_read_write - } tic6x_rw; - -/* Description of a source operand and how it is used. */ -typedef struct -{ - /* The syntactic form of the operand. */ - tic6x_operand_form form; - - /* For non-constant operands, the size in bytes (1, 2, 4, 5 or - 8). Ignored for constant operands. */ - unsigned int size; - - /* Whether the operand is read, written or both. In addition to the - operations described here, address registers are read on cycle 1 - regardless of when the memory operand is read or written, and may - be modified as described by the addressing mode, and control - registers may be implicitly read by some instructions. There are - also some special cases not fully described by this - structure. - - - For mpydp, the low part of src2 is read on cycles 1 and 3 but - not 2, and the high part on cycles 2 and 4 but not 3. - - - The swap2 pseudo-operation maps to packlh2, reading the first - operand of swap2 twice. */ - tic6x_rw rw; - - /* The first and last cycles (1 for E1, etc.) at which the operand, - or the low part for two-register operands, is read or - written. */ - unsigned short low_first; - unsigned short low_last; - - /* Likewise, for the high part. */ - unsigned short high_first; - unsigned short high_last; -} tic6x_operand_info; - -/* Ways of converting an operand or functional unit specifier to a - field value. */ -typedef enum - { - /* Store an unsigned assembly-time constant (which must fit) in - the field. */ - tic6x_coding_ucst, - /* Store a signed constant (which must fit) in the field. This - may be used both for assembly-time constants and for link-time - constants. */ - tic6x_coding_scst, - /* Subtract one from an unsigned assembly-time constant (which - must be strictly positive before the subtraction) and store the - value (which must fit) in the field. */ - tic6x_coding_ucst_minus_one, - /* Negate a signed assembly-time constant, and store the result of - negation (which must fit) in the field. Used only for - pseudo-operations. */ - tic6x_coding_scst_negate, - /* Store an unsigned link-time constant, implicitly DP-relative - and counting in bytes, in the field. For expression operands, - assembly-time constants are encoded as-is. For memory - reference operands, the offset is encoded as-is if [] syntax is - used and shifted if () is used. */ - tic6x_coding_ulcst_dpr_byte, - /* Store an unsigned link-time constant, implicitly DP-relative - and counting in half-words, in the field. For expression - operands, assembly-time constants are encoded as-is. For - memory reference operands, the offset is encoded as-is if [] - syntax is used and shifted if () is used. */ - tic6x_coding_ulcst_dpr_half, - /* Store an unsigned link-time constant, implicitly DP-relative - and counting in words, in the field. For expression operands, - assembly-time constants are encoded as-is. For memory - reference operands, the offset is encoded as-is if [] syntax is - used and shifted if () is used. */ - tic6x_coding_ulcst_dpr_word, - /* Store the low 16 bits of a link-time constant in the field; - considered unsigned for disassembly. */ - tic6x_coding_lcst_low16, - /* Store the high 16 bits of a link-time constant in the field; - considered unsigned for disassembly. */ - tic6x_coding_lcst_high16, - /* Store a signed PC-relative value (address of label minus - address of fetch packet containing the current instruction, - counted in words) in the field. */ - tic6x_coding_pcrel, - /* Likewise, but counting in half-words if in a header-based fetch - packet. */ - tic6x_coding_pcrel_half, - /* Store an unsigned PC-relative value used in compact insn */ - tic6x_coding_pcrel_half_unsigned, - /* Encode the register number (even number for a register pair) in - the field. When applied to a memory reference, encode the base - register. */ - tic6x_coding_reg, - /* Encode the register-pair's lsb (even register) for instructions - that use src1 as port for loading lsb of double-precision - operand value (absdp, dpint, dpsp, dptrunc, rcpdp, rsqrdp). */ - tic6x_coding_regpair_lsb, - /* Encode the register-pair's msb (odd register), see above. */ - tic6x_coding_regpair_msb, - /* Store 0 for register B14, 1 for register B15. When applied to - a memory reference, encode the base register. */ - tic6x_coding_areg, - /* Compact instruction offset base register */ - tic6x_coding_reg_ptr, - /* Store the low part of a control register address. */ - tic6x_coding_crlo, - /* Store the high part of a control register address. */ - tic6x_coding_crhi, - /* Encode the even register number for a register pair, shifted - right by one bit. */ - tic6x_coding_reg_shift, - /* Store either the offset register or the 5-bit unsigned offset - for a memory reference. If an offset uses the unscaled () - form, which is only permitted with constants, it is scaled - according to the access size of the operand before being - stored. */ - tic6x_coding_mem_offset, - /* Store either the offset register or the 5-bit unsigned offset - for a memory reference, but with no scaling applied to the - offset (for nonaligned doubleword operations). */ - tic6x_coding_mem_offset_noscale, - /* Store the addressing mode for a memory reference. */ - tic6x_coding_mem_mode, - /* Store whether a memory reference is scaled. */ - tic6x_coding_scaled, - /* Store the stage in an SPKERNEL instruction in the upper part of - the field. */ - tic6x_coding_fstg, - /* Store the cycle in an SPKERNEL instruction in the lower part of - the field. */ - tic6x_coding_fcyc, - /* Store the mask bits for functional units in the field in an - SPMASK or SPMASKR instruction. */ - tic6x_coding_spmask, - /* Store the number of a register that is unused, or minimally - used, in this execute packet. The number must be the same for - all uses of this coding in a single instruction, but may be - different for different instructions in the execute packet. - This is for the "zero" pseudo-operation. This is not safe when - reads may occur from instructions in previous execute packets; - in such cases the programmer or compiler should use explicit - "sub" instructions for those cases of "zero" that cannot be - implemented as "mvk" for the processor specified. */ - tic6x_coding_reg_unused, - /* Store 1 if the functional unit used is on side B, 0 for side - A. */ - tic6x_coding_fu, - /* Store 1 if the data path used (source register for store, - destination for load) is on side B, 0 for side A. */ - tic6x_coding_data_fu, - /* Store 1 if the cross path is being used, 0 otherwise. */ - tic6x_coding_xpath, - /* L3i constant coding */ - tic6x_coding_scst_l3i, - /* S3i constant coding */ - tic6x_coding_cst_s3i, - /* mem offset minus 1 */ - tic6x_coding_mem_offset_minus_one, - /* non aligned mem offset minus 1 */ - tic6x_coding_mem_offset_minus_one_noscale, - tic6x_coding_rside - } tic6x_coding_method; - -/* How to generate the value of a particular field. */ -typedef struct -{ - /* The name of the field. */ - tic6x_insn_field_id field_id; - - /* How it is encoded. */ - tic6x_coding_method coding_method; - - /* Source operand number, if any. */ - unsigned int operand_num; -} tic6x_coding_field; - -/* Types of instruction for pipeline purposes. The type determines - functional unit and cross path latency (when the same functional - unit can be used by other instructions, when the same cross path - can be used by other instructions). */ -typedef enum - { - tic6x_pipeline_nop, - tic6x_pipeline_1cycle, - tic6x_pipeline_1616_m, - tic6x_pipeline_store, - tic6x_pipeline_mul_ext, - tic6x_pipeline_load, - tic6x_pipeline_branch, - tic6x_pipeline_2cycle_dp, - tic6x_pipeline_4cycle, - tic6x_pipeline_intdp, - tic6x_pipeline_dpcmp, - tic6x_pipeline_addsubdp, - tic6x_pipeline_mpyi, - tic6x_pipeline_mpyid, - tic6x_pipeline_mpydp, - tic6x_pipeline_mpyspdp, - tic6x_pipeline_mpysp2dp - } tic6x_pipeline_type; - -/* Description of a control register. */ -typedef struct -{ - /* The name of the register. */ - const char *name; - - /* Which ISA variants include this control register. */ - unsigned short isa_variants; - - /* Whether it can be read, written or both (in supervisor mode). - Some registers use the same address, but different names, for - reading and writing. */ - tic6x_rw rw; - - /* crlo value for this register. */ - unsigned int crlo; - - /* Mask that, ANDed with the crhi value in the instruction, must be - 0. 0 is always generated when generating code. */ - unsigned int crhi_mask; -} tic6x_ctrl; - -/* An index into the table of control registers. */ -typedef enum - { -#define CTRL(name, isa, rw, crlo, crhi_mask) \ - CONCAT2(tic6x_ctrl_,name), -#include "tic6x-control-registers.h" -#undef CTRL - tic6x_ctrl_max - } tic6x_ctrl_id; - -/* The table itself. */ -extern const tic6x_ctrl tic6x_ctrl_table[tic6x_ctrl_max]; - -/* An entry in the opcode table. */ -typedef struct -{ - /* The name of the instruction. */ - const char *name; - - /* Functional unit used by this instruction (basic information). */ - tic6x_func_unit_base func_unit; - - /* The format of this instruction. */ - tic6x_insn_format_id format; - - /* The pipeline type of this instruction. */ - tic6x_pipeline_type type; - - /* Which ISA variants include this instruction. */ - unsigned short isa_variants; - - /* Flags for this instruction. */ - unsigned int flags; - - /* Number of fixed fields, or fields with restricted value ranges, - for this instruction. */ - unsigned int num_fixed_fields; - - /* Values of fields fixed for this instruction. */ - tic6x_fixed_field fixed_fields[TIC6X_MAX_FIXED_FIELDS]; - - /* The number of operands in the source form of this - instruction. */ - unsigned int num_operands; - - /* Information about individual operands. */ - tic6x_operand_info operand_info[TIC6X_MAX_OPERANDS]; - - /* The number of variable fields for this instruction with encoding - instructions explicitly given. */ - unsigned int num_variable_fields; - - /* How fields (other than ones with fixed value) are computed from - the source operands and functional unit specifiers. In addition - to fields specified here: - - - creg, if present, is set from the predicate, along with z which - must be present if creg is present. - - - p, if present (on all non-compact instructions), is set from - the parallel bars. - */ - tic6x_coding_field variable_fields[TIC6X_MAX_VAR_FIELDS]; -} tic6x_opcode; - -/* An index into the table of opcodes. */ -typedef enum - { -#define INSN(name, func_unit, format, type, isa, flags, fixed, ops, var) \ - CONCAT6(tic6x_opcode_,name,_,func_unit,_,format), -#define INSNE(name, e, func_unit, format, type, isa, flags, fixed, ops, var) \ - CONCAT4(tic6x_opcode_,name,_,e), -#define INSNU(name, func_unit, format, type, isa, flags, fixed, ops, var) \ - CONCAT6(tic6x_opcode_,name,_,func_unit,_,format), -#define INSNUE(name, e, func_unit, format, type, isa, flags, fixed, ops, var) \ - CONCAT6(tic6x_opcode_,name,_,func_unit,_,e), -#include "tic6x-opcode-table.h" -#undef INSN -#undef INSNE -#undef INSNU -#undef INSNUE - tic6x_opcode_max - } tic6x_opcode_id; - -/* The table itself. */ -extern const tic6x_opcode tic6x_opcode_table[tic6x_opcode_max]; - -/* A linked list of opcodes. */ -typedef struct tic6x_opcode_list_tag -{ - tic6x_opcode_id id; - struct tic6x_opcode_list_tag *next; -} tic6x_opcode_list; - -/* The information from a fetch packet header. */ -typedef struct -{ - /* The header itself. */ - unsigned int header; - - /* Whether each word uses compact instructions. */ - bfd_boolean word_compact[7]; - - /* Whether loads are protected. */ - bfd_boolean prot; - - /* Whether instructions use the high register set. */ - bfd_boolean rs; - - /* Data size. */ - unsigned int dsz; - - /* Whether compact instructions in the S unit are decoded as - branches. */ - bfd_boolean br; - - /* Whether compact instructions saturate. */ - bfd_boolean sat; - - /* P-bits. */ - bfd_boolean p_bits[14]; -} tic6x_fetch_packet_header; - -#endif /* OPCODE_TIC6X_H */ diff --git a/include/opcode/tic80.h b/include/opcode/tic80.h deleted file mode 100644 index 43c84be..0000000 --- a/include/opcode/tic80.h +++ /dev/null @@ -1,283 +0,0 @@ -/* tic80.h -- Header file for TI TMS320C80 (MV) opcode table - Copyright 1996, 1997, 2003, 2010 Free Software Foundation, Inc. - Written by Fred Fish (fnf@cygnus.com), Cygnus Support - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef TIC80_H -#define TIC80_H - -/* The opcode table is an array of struct tic80_opcode. */ - -struct tic80_opcode -{ - /* The opcode name. */ - - const char *name; - - /* The opcode itself. Those bits which will be filled in with operands - are zeroes. */ - - unsigned long opcode; - - /* The opcode mask. This is used by the disassembler. This is a mask - containing ones indicating those bits which must match the opcode - field, and zeroes indicating those bits which need not match (and are - presumably filled in by operands). */ - - unsigned long mask; - - /* Special purpose flags for this opcode. */ - - unsigned char flags; - - /* An array of operand codes. Each code is an index into the operand - table. They appear in the order which the operands must appear in - assembly code, and are terminated by a zero. FIXME: Adjust size to - match actual requirements when TIc80 support is complete */ - - unsigned char operands[8]; -}; - -/* The table itself is sorted by major opcode number, and is otherwise in - the order in which the disassembler should consider instructions. - FIXME: This isn't currently true. */ - -extern const struct tic80_opcode tic80_opcodes[]; -extern const int tic80_num_opcodes; - - -/* The operands table is an array of struct tic80_operand. */ - -struct tic80_operand -{ - /* The number of bits in the operand. */ - - int bits; - - /* How far the operand is left shifted in the instruction. */ - - int shift; - - /* Insertion function. This is used by the assembler. To insert an - operand value into an instruction, check this field. - - If it is NULL, execute - i |= (op & ((1 << o->bits) - 1)) << o->shift; - (i is the instruction which we are filling in, o is a pointer to - this structure, and op is the opcode value; this assumes twos - complement arithmetic). - - If this field is not NULL, then simply call it with the - instruction and the operand value. It will return the new value - of the instruction. If the ERRMSG argument is not NULL, then if - the operand value is illegal, *ERRMSG will be set to a warning - string (the operand will be inserted in any case). If the - operand value is legal, *ERRMSG will be unchanged (most operands - can accept any value). */ - - unsigned long (*insert) - (unsigned long instruction, long op, const char **errmsg); - - /* Extraction function. This is used by the disassembler. To - extract this operand type from an instruction, check this field. - - If it is NULL, compute - op = ((i) >> o->shift) & ((1 << o->bits) - 1); - if ((o->flags & TIC80_OPERAND_SIGNED) != 0 - && (op & (1 << (o->bits - 1))) != 0) - op -= 1 << o->bits; - (i is the instruction, o is a pointer to this structure, and op - is the result; this assumes twos complement arithmetic). - - If this field is not NULL, then simply call it with the - instruction value. It will return the value of the operand. If - the INVALID argument is not NULL, *INVALID will be set to - non-zero if this operand type can not actually be extracted from - this operand (i.e., the instruction does not match). If the - operand is valid, *INVALID will not be changed. */ - - long (*extract) (unsigned long instruction, int *invalid); - - /* One bit syntax flags. */ - - unsigned long flags; -}; - -/* Elements in the table are retrieved by indexing with values from - the operands field of the tic80_opcodes table. */ - -extern const struct tic80_operand tic80_operands[]; - - -/* Values defined for the flags field of a struct tic80_operand. - - Note that flags for all predefined symbols, such as the general purpose - registers (ex: r10), control registers (ex: FPST), condition codes (ex: - eq0.b), bit numbers (ex: gt.b), etc are large enough that they can be - or'd into an int where the lower bits contain the actual numeric value - that correponds to this predefined symbol. This way a single int can - contain both the value of the symbol and it's type. - */ - -/* This operand must be an even register number. Floating point numbers - for example are stored in even/odd register pairs. */ - -#define TIC80_OPERAND_EVEN (1 << 0) - -/* This operand must be an odd register number and must be one greater than - the register number of the previous operand. I.E. the second register in - an even/odd register pair. */ - -#define TIC80_OPERAND_ODD (1 << 1) - -/* This operand takes signed values. */ - -#define TIC80_OPERAND_SIGNED (1 << 2) - -/* This operand may be either a predefined constant name or a numeric value. - An example would be a condition code like "eq0.b" which has the numeric - value 0x2. */ - -#define TIC80_OPERAND_NUM (1 << 3) - -/* This operand should be wrapped in parentheses rather than separated - from the previous one by a comma. This is used for various - instructions, like the load and store instructions, which want - their operands to look like "displacement(reg)" */ - -#define TIC80_OPERAND_PARENS (1 << 4) - -/* This operand is a PC relative branch offset. The disassembler prints - these symbolically if possible. Note that the offsets are taken as word - offsets. */ - -#define TIC80_OPERAND_PCREL (1 << 5) - -/* This flag is a hint to the disassembler for using hex as the prefered - printing format, even for small positive or negative immediate values. - Normally values in the range -999 to 999 are printed as signed decimal - values and other values are printed in hex. */ - -#define TIC80_OPERAND_BITFIELD (1 << 6) - -/* This operand may have a ":m" modifier specified by bit 17 in a short - immediate form instruction. */ - -#define TIC80_OPERAND_M_SI (1 << 7) - -/* This operand may have a ":m" modifier specified by bit 15 in a long - immediate or register form instruction. */ - -#define TIC80_OPERAND_M_LI (1 << 8) - -/* This operand may have a ":s" modifier specified in bit 11 in a long - immediate or register form instruction. */ - -#define TIC80_OPERAND_SCALED (1 << 9) - -/* This operand is a floating point value */ - -#define TIC80_OPERAND_FLOAT (1 << 10) - -/* This operand is an byte offset from a base relocation. The lower - two bits of the final relocated address are ignored when the value is - written to the program counter. */ - -#define TIC80_OPERAND_BASEREL (1 << 11) - -/* This operand is an "endmask" field for a shift instruction. - It is treated special in that it can have values of 0-32, - where 0 and 32 result in the same instruction. The assembler - must be able to accept both endmask values. This disassembler - has no way of knowing from the instruction which value was - given at assembly time, so it just uses '0'. */ - -#define TIC80_OPERAND_ENDMASK (1 << 12) - -/* This operand is one of the 32 general purpose registers. - The disassembler prints these with a leading 'r'. */ - -#define TIC80_OPERAND_GPR (1 << 27) - -/* This operand is a floating point accumulator register. - The disassembler prints these with a leading 'a'. */ - -#define TIC80_OPERAND_FPA ( 1 << 28) - -/* This operand is a control register number, either numeric or - symbolic (like "EIF", "EPC", etc). - The disassembler prints these symbolically. */ - -#define TIC80_OPERAND_CR (1 << 29) - -/* This operand is a condition code, either numeric or - symbolic (like "eq0.b", "ne0.w", etc). - The disassembler prints these symbolically. */ - -#define TIC80_OPERAND_CC (1 << 30) - -/* This operand is a bit number, either numeric or - symbolic (like "eq.b", "or.f", etc). - The disassembler prints these symbolically. - Note that they appear in the instruction in 1's complement relative - to the values given in the manual. */ - -#define TIC80_OPERAND_BITNUM (1 << 31) - -/* This mask is used to strip operand bits from an int that contains - both operand bits and a numeric value in the lsbs. */ - -#define TIC80_OPERAND_MASK (TIC80_OPERAND_GPR | TIC80_OPERAND_FPA | TIC80_OPERAND_CR | TIC80_OPERAND_CC | TIC80_OPERAND_BITNUM) - - -/* Flag bits for the struct tic80_opcode flags field. */ - -#define TIC80_VECTOR 01 /* Is a vector instruction */ -#define TIC80_NO_R0_DEST 02 /* Register r0 cannot be a destination register */ - - -/* The opcodes library contains a table that allows translation from predefined - symbol names to numeric values, and vice versa. */ - -/* Structure to hold information about predefined symbols. */ - -struct predefined_symbol -{ - char *name; /* name to recognize */ - int value; -}; - -#define PDS_NAME(pdsp) ((pdsp) -> name) -#define PDS_VALUE(pdsp) ((pdsp) -> value) - -/* Translation array. */ -extern const struct predefined_symbol tic80_predefined_symbols[]; -/* How many members in the array. */ -extern const int tic80_num_predefined_symbols; - -/* Translate value to symbolic name. */ -const char *tic80_value_to_symbol (int val, int class); - -/* Translate symbolic name to value. */ -int tic80_symbol_to_value (char *name, int class); - -const struct predefined_symbol *tic80_next_predefined_symbol - (const struct predefined_symbol *); - -#endif /* TIC80_H */ diff --git a/include/opcode/tilegx.h b/include/opcode/tilegx.h deleted file mode 100644 index c11fc16..0000000 --- a/include/opcode/tilegx.h +++ /dev/null @@ -1,1304 +0,0 @@ -/* TILE-Gx opcode information. - * - * Copyright 2011 Free Software Foundation, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - * MA 02110-1301, USA. - */ - -#ifndef opcode_tile_h -#define opcode_tile_h - -typedef unsigned long long tilegx_bundle_bits; - - -enum -{ - TILEGX_MAX_OPERANDS = 4 /* bfexts */ -}; - -typedef enum -{ - TILEGX_OPC_BPT, - TILEGX_OPC_INFO, - TILEGX_OPC_INFOL, - TILEGX_OPC_LD4S_TLS, - TILEGX_OPC_LD_TLS, - TILEGX_OPC_MOVE, - TILEGX_OPC_MOVEI, - TILEGX_OPC_MOVELI, - TILEGX_OPC_PREFETCH, - TILEGX_OPC_PREFETCH_ADD_L1, - TILEGX_OPC_PREFETCH_ADD_L1_FAULT, - TILEGX_OPC_PREFETCH_ADD_L2, - TILEGX_OPC_PREFETCH_ADD_L2_FAULT, - TILEGX_OPC_PREFETCH_ADD_L3, - TILEGX_OPC_PREFETCH_ADD_L3_FAULT, - TILEGX_OPC_PREFETCH_L1, - TILEGX_OPC_PREFETCH_L1_FAULT, - TILEGX_OPC_PREFETCH_L2, - TILEGX_OPC_PREFETCH_L2_FAULT, - TILEGX_OPC_PREFETCH_L3, - TILEGX_OPC_PREFETCH_L3_FAULT, - TILEGX_OPC_RAISE, - TILEGX_OPC_ADD, - TILEGX_OPC_ADDI, - TILEGX_OPC_ADDLI, - TILEGX_OPC_ADDX, - TILEGX_OPC_ADDXI, - TILEGX_OPC_ADDXLI, - TILEGX_OPC_ADDXSC, - TILEGX_OPC_AND, - TILEGX_OPC_ANDI, - TILEGX_OPC_BEQZ, - TILEGX_OPC_BEQZT, - TILEGX_OPC_BFEXTS, - TILEGX_OPC_BFEXTU, - TILEGX_OPC_BFINS, - TILEGX_OPC_BGEZ, - TILEGX_OPC_BGEZT, - TILEGX_OPC_BGTZ, - TILEGX_OPC_BGTZT, - TILEGX_OPC_BLBC, - TILEGX_OPC_BLBCT, - TILEGX_OPC_BLBS, - TILEGX_OPC_BLBST, - TILEGX_OPC_BLEZ, - TILEGX_OPC_BLEZT, - TILEGX_OPC_BLTZ, - TILEGX_OPC_BLTZT, - TILEGX_OPC_BNEZ, - TILEGX_OPC_BNEZT, - TILEGX_OPC_CLZ, - TILEGX_OPC_CMOVEQZ, - TILEGX_OPC_CMOVNEZ, - TILEGX_OPC_CMPEQ, - TILEGX_OPC_CMPEQI, - TILEGX_OPC_CMPEXCH, - TILEGX_OPC_CMPEXCH4, - TILEGX_OPC_CMPLES, - TILEGX_OPC_CMPLEU, - TILEGX_OPC_CMPLTS, - TILEGX_OPC_CMPLTSI, - TILEGX_OPC_CMPLTU, - TILEGX_OPC_CMPLTUI, - TILEGX_OPC_CMPNE, - TILEGX_OPC_CMUL, - TILEGX_OPC_CMULA, - TILEGX_OPC_CMULAF, - TILEGX_OPC_CMULF, - TILEGX_OPC_CMULFR, - TILEGX_OPC_CMULH, - TILEGX_OPC_CMULHR, - TILEGX_OPC_CRC32_32, - TILEGX_OPC_CRC32_8, - TILEGX_OPC_CTZ, - TILEGX_OPC_DBLALIGN, - TILEGX_OPC_DBLALIGN2, - TILEGX_OPC_DBLALIGN4, - TILEGX_OPC_DBLALIGN6, - TILEGX_OPC_DRAIN, - TILEGX_OPC_DTLBPR, - TILEGX_OPC_EXCH, - TILEGX_OPC_EXCH4, - TILEGX_OPC_FDOUBLE_ADD_FLAGS, - TILEGX_OPC_FDOUBLE_ADDSUB, - TILEGX_OPC_FDOUBLE_MUL_FLAGS, - TILEGX_OPC_FDOUBLE_PACK1, - TILEGX_OPC_FDOUBLE_PACK2, - TILEGX_OPC_FDOUBLE_SUB_FLAGS, - TILEGX_OPC_FDOUBLE_UNPACK_MAX, - TILEGX_OPC_FDOUBLE_UNPACK_MIN, - TILEGX_OPC_FETCHADD, - TILEGX_OPC_FETCHADD4, - TILEGX_OPC_FETCHADDGEZ, - TILEGX_OPC_FETCHADDGEZ4, - TILEGX_OPC_FETCHAND, - TILEGX_OPC_FETCHAND4, - TILEGX_OPC_FETCHOR, - TILEGX_OPC_FETCHOR4, - TILEGX_OPC_FINV, - TILEGX_OPC_FLUSH, - TILEGX_OPC_FLUSHWB, - TILEGX_OPC_FNOP, - TILEGX_OPC_FSINGLE_ADD1, - TILEGX_OPC_FSINGLE_ADDSUB2, - TILEGX_OPC_FSINGLE_MUL1, - TILEGX_OPC_FSINGLE_MUL2, - TILEGX_OPC_FSINGLE_PACK1, - TILEGX_OPC_FSINGLE_PACK2, - TILEGX_OPC_FSINGLE_SUB1, - TILEGX_OPC_ICOH, - TILEGX_OPC_ILL, - TILEGX_OPC_INV, - TILEGX_OPC_IRET, - TILEGX_OPC_J, - TILEGX_OPC_JAL, - TILEGX_OPC_JALR, - TILEGX_OPC_JALRP, - TILEGX_OPC_JR, - TILEGX_OPC_JRP, - TILEGX_OPC_LD, - TILEGX_OPC_LD1S, - TILEGX_OPC_LD1S_ADD, - TILEGX_OPC_LD1U, - TILEGX_OPC_LD1U_ADD, - TILEGX_OPC_LD2S, - TILEGX_OPC_LD2S_ADD, - TILEGX_OPC_LD2U, - TILEGX_OPC_LD2U_ADD, - TILEGX_OPC_LD4S, - TILEGX_OPC_LD4S_ADD, - TILEGX_OPC_LD4U, - TILEGX_OPC_LD4U_ADD, - TILEGX_OPC_LD_ADD, - TILEGX_OPC_LDNA, - TILEGX_OPC_LDNA_ADD, - TILEGX_OPC_LDNT, - TILEGX_OPC_LDNT1S, - TILEGX_OPC_LDNT1S_ADD, - TILEGX_OPC_LDNT1U, - TILEGX_OPC_LDNT1U_ADD, - TILEGX_OPC_LDNT2S, - TILEGX_OPC_LDNT2S_ADD, - TILEGX_OPC_LDNT2U, - TILEGX_OPC_LDNT2U_ADD, - TILEGX_OPC_LDNT4S, - TILEGX_OPC_LDNT4S_ADD, - TILEGX_OPC_LDNT4U, - TILEGX_OPC_LDNT4U_ADD, - TILEGX_OPC_LDNT_ADD, - TILEGX_OPC_LNK, - TILEGX_OPC_MF, - TILEGX_OPC_MFSPR, - TILEGX_OPC_MM, - TILEGX_OPC_MNZ, - TILEGX_OPC_MTSPR, - TILEGX_OPC_MUL_HS_HS, - TILEGX_OPC_MUL_HS_HU, - TILEGX_OPC_MUL_HS_LS, - TILEGX_OPC_MUL_HS_LU, - TILEGX_OPC_MUL_HU_HU, - TILEGX_OPC_MUL_HU_LS, - TILEGX_OPC_MUL_HU_LU, - TILEGX_OPC_MUL_LS_LS, - TILEGX_OPC_MUL_LS_LU, - TILEGX_OPC_MUL_LU_LU, - TILEGX_OPC_MULA_HS_HS, - TILEGX_OPC_MULA_HS_HU, - TILEGX_OPC_MULA_HS_LS, - TILEGX_OPC_MULA_HS_LU, - TILEGX_OPC_MULA_HU_HU, - TILEGX_OPC_MULA_HU_LS, - TILEGX_OPC_MULA_HU_LU, - TILEGX_OPC_MULA_LS_LS, - TILEGX_OPC_MULA_LS_LU, - TILEGX_OPC_MULA_LU_LU, - TILEGX_OPC_MULAX, - TILEGX_OPC_MULX, - TILEGX_OPC_MZ, - TILEGX_OPC_NAP, - TILEGX_OPC_NOP, - TILEGX_OPC_NOR, - TILEGX_OPC_OR, - TILEGX_OPC_ORI, - TILEGX_OPC_PCNT, - TILEGX_OPC_REVBITS, - TILEGX_OPC_REVBYTES, - TILEGX_OPC_ROTL, - TILEGX_OPC_ROTLI, - TILEGX_OPC_SHL, - TILEGX_OPC_SHL16INSLI, - TILEGX_OPC_SHL1ADD, - TILEGX_OPC_SHL1ADDX, - TILEGX_OPC_SHL2ADD, - TILEGX_OPC_SHL2ADDX, - TILEGX_OPC_SHL3ADD, - TILEGX_OPC_SHL3ADDX, - TILEGX_OPC_SHLI, - TILEGX_OPC_SHLX, - TILEGX_OPC_SHLXI, - TILEGX_OPC_SHRS, - TILEGX_OPC_SHRSI, - TILEGX_OPC_SHRU, - TILEGX_OPC_SHRUI, - TILEGX_OPC_SHRUX, - TILEGX_OPC_SHRUXI, - TILEGX_OPC_SHUFFLEBYTES, - TILEGX_OPC_ST, - TILEGX_OPC_ST1, - TILEGX_OPC_ST1_ADD, - TILEGX_OPC_ST2, - TILEGX_OPC_ST2_ADD, - TILEGX_OPC_ST4, - TILEGX_OPC_ST4_ADD, - TILEGX_OPC_ST_ADD, - TILEGX_OPC_STNT, - TILEGX_OPC_STNT1, - TILEGX_OPC_STNT1_ADD, - TILEGX_OPC_STNT2, - TILEGX_OPC_STNT2_ADD, - TILEGX_OPC_STNT4, - TILEGX_OPC_STNT4_ADD, - TILEGX_OPC_STNT_ADD, - TILEGX_OPC_SUB, - TILEGX_OPC_SUBX, - TILEGX_OPC_SUBXSC, - TILEGX_OPC_SWINT0, - TILEGX_OPC_SWINT1, - TILEGX_OPC_SWINT2, - TILEGX_OPC_SWINT3, - TILEGX_OPC_TBLIDXB0, - TILEGX_OPC_TBLIDXB1, - TILEGX_OPC_TBLIDXB2, - TILEGX_OPC_TBLIDXB3, - TILEGX_OPC_V1ADD, - TILEGX_OPC_V1ADDI, - TILEGX_OPC_V1ADDUC, - TILEGX_OPC_V1ADIFFU, - TILEGX_OPC_V1AVGU, - TILEGX_OPC_V1CMPEQ, - TILEGX_OPC_V1CMPEQI, - TILEGX_OPC_V1CMPLES, - TILEGX_OPC_V1CMPLEU, - TILEGX_OPC_V1CMPLTS, - TILEGX_OPC_V1CMPLTSI, - TILEGX_OPC_V1CMPLTU, - TILEGX_OPC_V1CMPLTUI, - TILEGX_OPC_V1CMPNE, - TILEGX_OPC_V1DDOTPU, - TILEGX_OPC_V1DDOTPUA, - TILEGX_OPC_V1DDOTPUS, - TILEGX_OPC_V1DDOTPUSA, - TILEGX_OPC_V1DOTP, - TILEGX_OPC_V1DOTPA, - TILEGX_OPC_V1DOTPU, - TILEGX_OPC_V1DOTPUA, - TILEGX_OPC_V1DOTPUS, - TILEGX_OPC_V1DOTPUSA, - TILEGX_OPC_V1INT_H, - TILEGX_OPC_V1INT_L, - TILEGX_OPC_V1MAXU, - TILEGX_OPC_V1MAXUI, - TILEGX_OPC_V1MINU, - TILEGX_OPC_V1MINUI, - TILEGX_OPC_V1MNZ, - TILEGX_OPC_V1MULTU, - TILEGX_OPC_V1MULU, - TILEGX_OPC_V1MULUS, - TILEGX_OPC_V1MZ, - TILEGX_OPC_V1SADAU, - TILEGX_OPC_V1SADU, - TILEGX_OPC_V1SHL, - TILEGX_OPC_V1SHLI, - TILEGX_OPC_V1SHRS, - TILEGX_OPC_V1SHRSI, - TILEGX_OPC_V1SHRU, - TILEGX_OPC_V1SHRUI, - TILEGX_OPC_V1SUB, - TILEGX_OPC_V1SUBUC, - TILEGX_OPC_V2ADD, - TILEGX_OPC_V2ADDI, - TILEGX_OPC_V2ADDSC, - TILEGX_OPC_V2ADIFFS, - TILEGX_OPC_V2AVGS, - TILEGX_OPC_V2CMPEQ, - TILEGX_OPC_V2CMPEQI, - TILEGX_OPC_V2CMPLES, - TILEGX_OPC_V2CMPLEU, - TILEGX_OPC_V2CMPLTS, - TILEGX_OPC_V2CMPLTSI, - TILEGX_OPC_V2CMPLTU, - TILEGX_OPC_V2CMPLTUI, - TILEGX_OPC_V2CMPNE, - TILEGX_OPC_V2DOTP, - TILEGX_OPC_V2DOTPA, - TILEGX_OPC_V2INT_H, - TILEGX_OPC_V2INT_L, - TILEGX_OPC_V2MAXS, - TILEGX_OPC_V2MAXSI, - TILEGX_OPC_V2MINS, - TILEGX_OPC_V2MINSI, - TILEGX_OPC_V2MNZ, - TILEGX_OPC_V2MULFSC, - TILEGX_OPC_V2MULS, - TILEGX_OPC_V2MULTS, - TILEGX_OPC_V2MZ, - TILEGX_OPC_V2PACKH, - TILEGX_OPC_V2PACKL, - TILEGX_OPC_V2PACKUC, - TILEGX_OPC_V2SADAS, - TILEGX_OPC_V2SADAU, - TILEGX_OPC_V2SADS, - TILEGX_OPC_V2SADU, - TILEGX_OPC_V2SHL, - TILEGX_OPC_V2SHLI, - TILEGX_OPC_V2SHLSC, - TILEGX_OPC_V2SHRS, - TILEGX_OPC_V2SHRSI, - TILEGX_OPC_V2SHRU, - TILEGX_OPC_V2SHRUI, - TILEGX_OPC_V2SUB, - TILEGX_OPC_V2SUBSC, - TILEGX_OPC_V4ADD, - TILEGX_OPC_V4ADDSC, - TILEGX_OPC_V4INT_H, - TILEGX_OPC_V4INT_L, - TILEGX_OPC_V4PACKSC, - TILEGX_OPC_V4SHL, - TILEGX_OPC_V4SHLSC, - TILEGX_OPC_V4SHRS, - TILEGX_OPC_V4SHRU, - TILEGX_OPC_V4SUB, - TILEGX_OPC_V4SUBSC, - TILEGX_OPC_WH64, - TILEGX_OPC_XOR, - TILEGX_OPC_XORI, - TILEGX_OPC_NONE -} tilegx_mnemonic; - -/* 64-bit pattern for a { bpt ; nop } bundle. */ -#define TILEGX_BPT_BUNDLE 0x286a44ae51485000ULL - - - -static __inline unsigned int -get_BFEnd_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0x3f); -} - -static __inline unsigned int -get_BFOpcodeExtension_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 24)) & 0xf); -} - -static __inline unsigned int -get_BFStart_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 18)) & 0x3f); -} - -static __inline unsigned int -get_BrOff_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 31)) & 0x0000003f) | - (((unsigned int)(n >> 37)) & 0x0001ffc0); -} - -static __inline unsigned int -get_BrType_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 54)) & 0x1f); -} - -static __inline unsigned int -get_Dest_Imm8_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 31)) & 0x0000003f) | - (((unsigned int)(n >> 43)) & 0x000000c0); -} - -static __inline unsigned int -get_Dest_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 0)) & 0x3f); -} - -static __inline unsigned int -get_Dest_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 31)) & 0x3f); -} - -static __inline unsigned int -get_Dest_Y0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 0)) & 0x3f); -} - -static __inline unsigned int -get_Dest_Y1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 31)) & 0x3f); -} - -static __inline unsigned int -get_Imm16_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0xffff); -} - -static __inline unsigned int -get_Imm16_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0xffff); -} - -static __inline unsigned int -get_Imm8OpcodeExtension_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 20)) & 0xff); -} - -static __inline unsigned int -get_Imm8OpcodeExtension_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 51)) & 0xff); -} - -static __inline unsigned int -get_Imm8_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0xff); -} - -static __inline unsigned int -get_Imm8_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0xff); -} - -static __inline unsigned int -get_Imm8_Y0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0xff); -} - -static __inline unsigned int -get_Imm8_Y1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0xff); -} - -static __inline unsigned int -get_JumpOff_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 31)) & 0x7ffffff); -} - -static __inline unsigned int -get_JumpOpcodeExtension_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 58)) & 0x1); -} - -static __inline unsigned int -get_MF_Imm14_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 37)) & 0x3fff); -} - -static __inline unsigned int -get_MT_Imm14_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 31)) & 0x0000003f) | - (((unsigned int)(n >> 37)) & 0x00003fc0); -} - -static __inline unsigned int -get_Mode(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 62)) & 0x3); -} - -static __inline unsigned int -get_Opcode_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 28)) & 0x7); -} - -static __inline unsigned int -get_Opcode_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 59)) & 0x7); -} - -static __inline unsigned int -get_Opcode_Y0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 27)) & 0xf); -} - -static __inline unsigned int -get_Opcode_Y1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 58)) & 0xf); -} - -static __inline unsigned int -get_Opcode_Y2(tilegx_bundle_bits n) -{ - return (((n >> 26)) & 0x00000001) | - (((unsigned int)(n >> 56)) & 0x00000002); -} - -static __inline unsigned int -get_RRROpcodeExtension_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 18)) & 0x3ff); -} - -static __inline unsigned int -get_RRROpcodeExtension_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 49)) & 0x3ff); -} - -static __inline unsigned int -get_RRROpcodeExtension_Y0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 18)) & 0x3); -} - -static __inline unsigned int -get_RRROpcodeExtension_Y1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 49)) & 0x3); -} - -static __inline unsigned int -get_ShAmt_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0x3f); -} - -static __inline unsigned int -get_ShAmt_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x3f); -} - -static __inline unsigned int -get_ShAmt_Y0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0x3f); -} - -static __inline unsigned int -get_ShAmt_Y1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x3f); -} - -static __inline unsigned int -get_ShiftOpcodeExtension_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 18)) & 0x3ff); -} - -static __inline unsigned int -get_ShiftOpcodeExtension_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 49)) & 0x3ff); -} - -static __inline unsigned int -get_ShiftOpcodeExtension_Y0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 18)) & 0x3); -} - -static __inline unsigned int -get_ShiftOpcodeExtension_Y1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 49)) & 0x3); -} - -static __inline unsigned int -get_SrcA_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 6)) & 0x3f); -} - -static __inline unsigned int -get_SrcA_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 37)) & 0x3f); -} - -static __inline unsigned int -get_SrcA_Y0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 6)) & 0x3f); -} - -static __inline unsigned int -get_SrcA_Y1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 37)) & 0x3f); -} - -static __inline unsigned int -get_SrcA_Y2(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 20)) & 0x3f); -} - -static __inline unsigned int -get_SrcBDest_Y2(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 51)) & 0x3f); -} - -static __inline unsigned int -get_SrcB_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0x3f); -} - -static __inline unsigned int -get_SrcB_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x3f); -} - -static __inline unsigned int -get_SrcB_Y0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0x3f); -} - -static __inline unsigned int -get_SrcB_Y1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x3f); -} - -static __inline unsigned int -get_UnaryOpcodeExtension_X0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0x3f); -} - -static __inline unsigned int -get_UnaryOpcodeExtension_X1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x3f); -} - -static __inline unsigned int -get_UnaryOpcodeExtension_Y0(tilegx_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0x3f); -} - -static __inline unsigned int -get_UnaryOpcodeExtension_Y1(tilegx_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x3f); -} - - -static __inline int -sign_extend(int n, int num_bits) -{ - int shift = (int)(sizeof(int) * 8 - num_bits); - return (n << shift) >> shift; -} - - - -static __inline tilegx_bundle_bits -create_BFEnd_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 12); -} - -static __inline tilegx_bundle_bits -create_BFOpcodeExtension_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0xf) << 24); -} - -static __inline tilegx_bundle_bits -create_BFStart_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 18); -} - -static __inline tilegx_bundle_bits -create_BrOff_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x0000003f)) << 31) | - (((tilegx_bundle_bits)(n & 0x0001ffc0)) << 37); -} - -static __inline tilegx_bundle_bits -create_BrType_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x1f)) << 54); -} - -static __inline tilegx_bundle_bits -create_Dest_Imm8_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x0000003f)) << 31) | - (((tilegx_bundle_bits)(n & 0x000000c0)) << 43); -} - -static __inline tilegx_bundle_bits -create_Dest_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 0); -} - -static __inline tilegx_bundle_bits -create_Dest_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3f)) << 31); -} - -static __inline tilegx_bundle_bits -create_Dest_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 0); -} - -static __inline tilegx_bundle_bits -create_Dest_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3f)) << 31); -} - -static __inline tilegx_bundle_bits -create_Imm16_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0xffff) << 12); -} - -static __inline tilegx_bundle_bits -create_Imm16_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0xffff)) << 43); -} - -static __inline tilegx_bundle_bits -create_Imm8OpcodeExtension_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0xff) << 20); -} - -static __inline tilegx_bundle_bits -create_Imm8OpcodeExtension_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0xff)) << 51); -} - -static __inline tilegx_bundle_bits -create_Imm8_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0xff) << 12); -} - -static __inline tilegx_bundle_bits -create_Imm8_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0xff)) << 43); -} - -static __inline tilegx_bundle_bits -create_Imm8_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0xff) << 12); -} - -static __inline tilegx_bundle_bits -create_Imm8_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0xff)) << 43); -} - -static __inline tilegx_bundle_bits -create_JumpOff_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x7ffffff)) << 31); -} - -static __inline tilegx_bundle_bits -create_JumpOpcodeExtension_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x1)) << 58); -} - -static __inline tilegx_bundle_bits -create_MF_Imm14_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3fff)) << 37); -} - -static __inline tilegx_bundle_bits -create_MT_Imm14_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x0000003f)) << 31) | - (((tilegx_bundle_bits)(n & 0x00003fc0)) << 37); -} - -static __inline tilegx_bundle_bits -create_Mode(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3)) << 62); -} - -static __inline tilegx_bundle_bits -create_Opcode_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x7) << 28); -} - -static __inline tilegx_bundle_bits -create_Opcode_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x7)) << 59); -} - -static __inline tilegx_bundle_bits -create_Opcode_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0xf) << 27); -} - -static __inline tilegx_bundle_bits -create_Opcode_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0xf)) << 58); -} - -static __inline tilegx_bundle_bits -create_Opcode_Y2(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x00000001) << 26) | - (((tilegx_bundle_bits)(n & 0x00000002)) << 56); -} - -static __inline tilegx_bundle_bits -create_RRROpcodeExtension_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3ff) << 18); -} - -static __inline tilegx_bundle_bits -create_RRROpcodeExtension_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3ff)) << 49); -} - -static __inline tilegx_bundle_bits -create_RRROpcodeExtension_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3) << 18); -} - -static __inline tilegx_bundle_bits -create_RRROpcodeExtension_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3)) << 49); -} - -static __inline tilegx_bundle_bits -create_ShAmt_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 12); -} - -static __inline tilegx_bundle_bits -create_ShAmt_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3f)) << 43); -} - -static __inline tilegx_bundle_bits -create_ShAmt_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 12); -} - -static __inline tilegx_bundle_bits -create_ShAmt_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3f)) << 43); -} - -static __inline tilegx_bundle_bits -create_ShiftOpcodeExtension_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3ff) << 18); -} - -static __inline tilegx_bundle_bits -create_ShiftOpcodeExtension_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3ff)) << 49); -} - -static __inline tilegx_bundle_bits -create_ShiftOpcodeExtension_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3) << 18); -} - -static __inline tilegx_bundle_bits -create_ShiftOpcodeExtension_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3)) << 49); -} - -static __inline tilegx_bundle_bits -create_SrcA_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 6); -} - -static __inline tilegx_bundle_bits -create_SrcA_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3f)) << 37); -} - -static __inline tilegx_bundle_bits -create_SrcA_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 6); -} - -static __inline tilegx_bundle_bits -create_SrcA_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3f)) << 37); -} - -static __inline tilegx_bundle_bits -create_SrcA_Y2(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 20); -} - -static __inline tilegx_bundle_bits -create_SrcBDest_Y2(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3f)) << 51); -} - -static __inline tilegx_bundle_bits -create_SrcB_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 12); -} - -static __inline tilegx_bundle_bits -create_SrcB_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3f)) << 43); -} - -static __inline tilegx_bundle_bits -create_SrcB_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 12); -} - -static __inline tilegx_bundle_bits -create_SrcB_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3f)) << 43); -} - -static __inline tilegx_bundle_bits -create_UnaryOpcodeExtension_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 12); -} - -static __inline tilegx_bundle_bits -create_UnaryOpcodeExtension_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3f)) << 43); -} - -static __inline tilegx_bundle_bits -create_UnaryOpcodeExtension_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 12); -} - -static __inline tilegx_bundle_bits -create_UnaryOpcodeExtension_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilegx_bundle_bits)(n & 0x3f)) << 43); -} - - -typedef enum -{ - TILEGX_PIPELINE_X0, - TILEGX_PIPELINE_X1, - TILEGX_PIPELINE_Y0, - TILEGX_PIPELINE_Y1, - TILEGX_PIPELINE_Y2, -} tilegx_pipeline; - -#define tilegx_is_x_pipeline(p) ((int)(p) <= (int)TILEGX_PIPELINE_X1) - -typedef enum -{ - TILEGX_OP_TYPE_REGISTER, - TILEGX_OP_TYPE_IMMEDIATE, - TILEGX_OP_TYPE_ADDRESS, - TILEGX_OP_TYPE_SPR -} tilegx_operand_type; - -/* These are the bits that determine if a bundle is in the X encoding. */ -#define TILEGX_BUNDLE_MODE_MASK ((tilegx_bundle_bits)3 << 62) - -enum -{ - /* Maximum number of instructions in a bundle (2 for X, 3 for Y). */ - TILEGX_MAX_INSTRUCTIONS_PER_BUNDLE = 3, - - /* How many different pipeline encodings are there? X0, X1, Y0, Y1, Y2. */ - TILEGX_NUM_PIPELINE_ENCODINGS = 5, - - /* Log base 2 of TILEGX_BUNDLE_SIZE_IN_BYTES. */ - TILEGX_LOG2_BUNDLE_SIZE_IN_BYTES = 3, - - /* Instructions take this many bytes. */ - TILEGX_BUNDLE_SIZE_IN_BYTES = 1 << TILEGX_LOG2_BUNDLE_SIZE_IN_BYTES, - - /* Log base 2 of TILEGX_BUNDLE_ALIGNMENT_IN_BYTES. */ - TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES = 3, - - /* Bundles should be aligned modulo this number of bytes. */ - TILEGX_BUNDLE_ALIGNMENT_IN_BYTES = - (1 << TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES), - - /* Number of registers (some are magic, such as network I/O). */ - TILEGX_NUM_REGISTERS = 64, -}; - - -struct tilegx_operand -{ - /* Is this operand a register, immediate or address? */ - tilegx_operand_type type; - - /* The default relocation type for this operand. */ - signed int default_reloc : 16; - - /* How many bits is this value? (used for range checking) */ - unsigned int num_bits : 5; - - /* Is the value signed? (used for range checking) */ - unsigned int is_signed : 1; - - /* Is this operand a source register? */ - unsigned int is_src_reg : 1; - - /* Is this operand written? (i.e. is it a destination register) */ - unsigned int is_dest_reg : 1; - - /* Is this operand PC-relative? */ - unsigned int is_pc_relative : 1; - - /* By how many bits do we right shift the value before inserting? */ - unsigned int rightshift : 2; - - /* Return the bits for this operand to be ORed into an existing bundle. */ - tilegx_bundle_bits (*insert) (int op); - - /* Extract this operand and return it. */ - unsigned int (*extract) (tilegx_bundle_bits bundle); -}; - - -extern const struct tilegx_operand tilegx_operands[]; - -/* One finite-state machine per pipe for rapid instruction decoding. */ -extern const unsigned short * const -tilegx_bundle_decoder_fsms[TILEGX_NUM_PIPELINE_ENCODINGS]; - - -struct tilegx_opcode -{ - /* The opcode mnemonic, e.g. "add" */ - const char *name; - - /* The enum value for this mnemonic. */ - tilegx_mnemonic mnemonic; - - /* A bit mask of which of the five pipes this instruction - is compatible with: - X0 0x01 - X1 0x02 - Y0 0x04 - Y1 0x08 - Y2 0x10 */ - unsigned char pipes; - - /* How many operands are there? */ - unsigned char num_operands; - - /* Which register does this write implicitly, or TREG_ZERO if none? */ - unsigned char implicitly_written_register; - - /* Can this be bundled with other instructions (almost always true). */ - unsigned char can_bundle; - - /* The description of the operands. Each of these is an - * index into the tilegx_operands[] table. */ - unsigned char operands[TILEGX_NUM_PIPELINE_ENCODINGS][TILEGX_MAX_OPERANDS]; - -#if !defined(__KERNEL__) && !defined(_LIBC) - /* A mask of which bits have predefined values for each pipeline. - * This is useful for disassembly. */ - tilegx_bundle_bits fixed_bit_masks[TILEGX_NUM_PIPELINE_ENCODINGS]; - - /* For each bit set in fixed_bit_masks, what the value is for this - * instruction. */ - tilegx_bundle_bits fixed_bit_values[TILEGX_NUM_PIPELINE_ENCODINGS]; -#endif -}; - -extern const struct tilegx_opcode tilegx_opcodes[]; - -/* Used for non-textual disassembly into structs. */ -struct tilegx_decoded_instruction -{ - const struct tilegx_opcode *opcode; - const struct tilegx_operand *operands[TILEGX_MAX_OPERANDS]; - long long operand_values[TILEGX_MAX_OPERANDS]; -}; - - -/* Disassemble a bundle into a struct for machine processing. */ -extern int parse_insn_tilegx(tilegx_bundle_bits bits, - unsigned long long pc, - struct tilegx_decoded_instruction - decoded[TILEGX_MAX_INSTRUCTIONS_PER_BUNDLE]); - - -#if !defined(__KERNEL__) && !defined(_LIBC) -/* Canonical names of all the registers. */ -/* ISSUE: This table lives in "tile-dis.c" */ -extern const char * const tilegx_register_names[]; - -/* Descriptor for a special-purpose register. */ -struct tilegx_spr -{ - /* The number */ - int number; - - /* The name */ - const char *name; -}; - -/* List of all the SPRs; ordered by increasing number. */ -extern const struct tilegx_spr tilegx_sprs[]; - -/* Number of special-purpose registers. */ -extern const int tilegx_num_sprs; - -extern const char * -get_tilegx_spr_name (int num); -#endif /* !__KERNEL__ && !_LIBC */ - -/* Make a few "tile_" variables to simply common code between - architectures. */ - -typedef tilegx_bundle_bits tile_bundle_bits; -#define TILE_BUNDLE_SIZE_IN_BYTES TILEGX_BUNDLE_SIZE_IN_BYTES -#define TILE_BUNDLE_ALIGNMENT_IN_BYTES TILEGX_BUNDLE_ALIGNMENT_IN_BYTES -#define TILE_LOG2_BUNDLE_ALIGNMENT_IN_BYTES \ - TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES - -#endif /* opcode_tilegx_h */ diff --git a/include/opcode/tilepro.h b/include/opcode/tilepro.h deleted file mode 100644 index 767926b..0000000 --- a/include/opcode/tilepro.h +++ /dev/null @@ -1,1638 +0,0 @@ -/* TILEPro opcode information. - * - * Copyright 2011 Free Software Foundation, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - * MA 02110-1301, USA. - */ - -#ifndef opcode_tilepro_h -#define opcode_tilepro_h - -typedef unsigned long long tilepro_bundle_bits; - - -enum -{ - TILEPRO_MAX_OPERANDS = 5 /* mm */ -}; - -typedef enum -{ - TILEPRO_OPC_BPT, - TILEPRO_OPC_INFO, - TILEPRO_OPC_INFOL, - TILEPRO_OPC_J, - TILEPRO_OPC_JAL, - TILEPRO_OPC_LW_TLS, - TILEPRO_OPC_LW_TLS_SN, - TILEPRO_OPC_MOVE, - TILEPRO_OPC_MOVE_SN, - TILEPRO_OPC_MOVEI, - TILEPRO_OPC_MOVEI_SN, - TILEPRO_OPC_MOVELI, - TILEPRO_OPC_MOVELI_SN, - TILEPRO_OPC_MOVELIS, - TILEPRO_OPC_PREFETCH, - TILEPRO_OPC_RAISE, - TILEPRO_OPC_ADD, - TILEPRO_OPC_ADD_SN, - TILEPRO_OPC_ADDB, - TILEPRO_OPC_ADDB_SN, - TILEPRO_OPC_ADDBS_U, - TILEPRO_OPC_ADDBS_U_SN, - TILEPRO_OPC_ADDH, - TILEPRO_OPC_ADDH_SN, - TILEPRO_OPC_ADDHS, - TILEPRO_OPC_ADDHS_SN, - TILEPRO_OPC_ADDI, - TILEPRO_OPC_ADDI_SN, - TILEPRO_OPC_ADDIB, - TILEPRO_OPC_ADDIB_SN, - TILEPRO_OPC_ADDIH, - TILEPRO_OPC_ADDIH_SN, - TILEPRO_OPC_ADDLI, - TILEPRO_OPC_ADDLI_SN, - TILEPRO_OPC_ADDLIS, - TILEPRO_OPC_ADDS, - TILEPRO_OPC_ADDS_SN, - TILEPRO_OPC_ADIFFB_U, - TILEPRO_OPC_ADIFFB_U_SN, - TILEPRO_OPC_ADIFFH, - TILEPRO_OPC_ADIFFH_SN, - TILEPRO_OPC_AND, - TILEPRO_OPC_AND_SN, - TILEPRO_OPC_ANDI, - TILEPRO_OPC_ANDI_SN, - TILEPRO_OPC_AULI, - TILEPRO_OPC_AVGB_U, - TILEPRO_OPC_AVGB_U_SN, - TILEPRO_OPC_AVGH, - TILEPRO_OPC_AVGH_SN, - TILEPRO_OPC_BBNS, - TILEPRO_OPC_BBNS_SN, - TILEPRO_OPC_BBNST, - TILEPRO_OPC_BBNST_SN, - TILEPRO_OPC_BBS, - TILEPRO_OPC_BBS_SN, - TILEPRO_OPC_BBST, - TILEPRO_OPC_BBST_SN, - TILEPRO_OPC_BGEZ, - TILEPRO_OPC_BGEZ_SN, - TILEPRO_OPC_BGEZT, - TILEPRO_OPC_BGEZT_SN, - TILEPRO_OPC_BGZ, - TILEPRO_OPC_BGZ_SN, - TILEPRO_OPC_BGZT, - TILEPRO_OPC_BGZT_SN, - TILEPRO_OPC_BITX, - TILEPRO_OPC_BITX_SN, - TILEPRO_OPC_BLEZ, - TILEPRO_OPC_BLEZ_SN, - TILEPRO_OPC_BLEZT, - TILEPRO_OPC_BLEZT_SN, - TILEPRO_OPC_BLZ, - TILEPRO_OPC_BLZ_SN, - TILEPRO_OPC_BLZT, - TILEPRO_OPC_BLZT_SN, - TILEPRO_OPC_BNZ, - TILEPRO_OPC_BNZ_SN, - TILEPRO_OPC_BNZT, - TILEPRO_OPC_BNZT_SN, - TILEPRO_OPC_BYTEX, - TILEPRO_OPC_BYTEX_SN, - TILEPRO_OPC_BZ, - TILEPRO_OPC_BZ_SN, - TILEPRO_OPC_BZT, - TILEPRO_OPC_BZT_SN, - TILEPRO_OPC_CLZ, - TILEPRO_OPC_CLZ_SN, - TILEPRO_OPC_CRC32_32, - TILEPRO_OPC_CRC32_32_SN, - TILEPRO_OPC_CRC32_8, - TILEPRO_OPC_CRC32_8_SN, - TILEPRO_OPC_CTZ, - TILEPRO_OPC_CTZ_SN, - TILEPRO_OPC_DRAIN, - TILEPRO_OPC_DTLBPR, - TILEPRO_OPC_DWORD_ALIGN, - TILEPRO_OPC_DWORD_ALIGN_SN, - TILEPRO_OPC_FINV, - TILEPRO_OPC_FLUSH, - TILEPRO_OPC_FNOP, - TILEPRO_OPC_ICOH, - TILEPRO_OPC_ILL, - TILEPRO_OPC_INTHB, - TILEPRO_OPC_INTHB_SN, - TILEPRO_OPC_INTHH, - TILEPRO_OPC_INTHH_SN, - TILEPRO_OPC_INTLB, - TILEPRO_OPC_INTLB_SN, - TILEPRO_OPC_INTLH, - TILEPRO_OPC_INTLH_SN, - TILEPRO_OPC_INV, - TILEPRO_OPC_IRET, - TILEPRO_OPC_JALB, - TILEPRO_OPC_JALF, - TILEPRO_OPC_JALR, - TILEPRO_OPC_JALRP, - TILEPRO_OPC_JB, - TILEPRO_OPC_JF, - TILEPRO_OPC_JR, - TILEPRO_OPC_JRP, - TILEPRO_OPC_LB, - TILEPRO_OPC_LB_SN, - TILEPRO_OPC_LB_U, - TILEPRO_OPC_LB_U_SN, - TILEPRO_OPC_LBADD, - TILEPRO_OPC_LBADD_SN, - TILEPRO_OPC_LBADD_U, - TILEPRO_OPC_LBADD_U_SN, - TILEPRO_OPC_LH, - TILEPRO_OPC_LH_SN, - TILEPRO_OPC_LH_U, - TILEPRO_OPC_LH_U_SN, - TILEPRO_OPC_LHADD, - TILEPRO_OPC_LHADD_SN, - TILEPRO_OPC_LHADD_U, - TILEPRO_OPC_LHADD_U_SN, - TILEPRO_OPC_LNK, - TILEPRO_OPC_LNK_SN, - TILEPRO_OPC_LW, - TILEPRO_OPC_LW_SN, - TILEPRO_OPC_LW_NA, - TILEPRO_OPC_LW_NA_SN, - TILEPRO_OPC_LWADD, - TILEPRO_OPC_LWADD_SN, - TILEPRO_OPC_LWADD_NA, - TILEPRO_OPC_LWADD_NA_SN, - TILEPRO_OPC_MAXB_U, - TILEPRO_OPC_MAXB_U_SN, - TILEPRO_OPC_MAXH, - TILEPRO_OPC_MAXH_SN, - TILEPRO_OPC_MAXIB_U, - TILEPRO_OPC_MAXIB_U_SN, - TILEPRO_OPC_MAXIH, - TILEPRO_OPC_MAXIH_SN, - TILEPRO_OPC_MF, - TILEPRO_OPC_MFSPR, - TILEPRO_OPC_MINB_U, - TILEPRO_OPC_MINB_U_SN, - TILEPRO_OPC_MINH, - TILEPRO_OPC_MINH_SN, - TILEPRO_OPC_MINIB_U, - TILEPRO_OPC_MINIB_U_SN, - TILEPRO_OPC_MINIH, - TILEPRO_OPC_MINIH_SN, - TILEPRO_OPC_MM, - TILEPRO_OPC_MNZ, - TILEPRO_OPC_MNZ_SN, - TILEPRO_OPC_MNZB, - TILEPRO_OPC_MNZB_SN, - TILEPRO_OPC_MNZH, - TILEPRO_OPC_MNZH_SN, - TILEPRO_OPC_MTSPR, - TILEPRO_OPC_MULHH_SS, - TILEPRO_OPC_MULHH_SS_SN, - TILEPRO_OPC_MULHH_SU, - TILEPRO_OPC_MULHH_SU_SN, - TILEPRO_OPC_MULHH_UU, - TILEPRO_OPC_MULHH_UU_SN, - TILEPRO_OPC_MULHHA_SS, - TILEPRO_OPC_MULHHA_SS_SN, - TILEPRO_OPC_MULHHA_SU, - TILEPRO_OPC_MULHHA_SU_SN, - TILEPRO_OPC_MULHHA_UU, - TILEPRO_OPC_MULHHA_UU_SN, - TILEPRO_OPC_MULHHSA_UU, - TILEPRO_OPC_MULHHSA_UU_SN, - TILEPRO_OPC_MULHL_SS, - TILEPRO_OPC_MULHL_SS_SN, - TILEPRO_OPC_MULHL_SU, - TILEPRO_OPC_MULHL_SU_SN, - TILEPRO_OPC_MULHL_US, - TILEPRO_OPC_MULHL_US_SN, - TILEPRO_OPC_MULHL_UU, - TILEPRO_OPC_MULHL_UU_SN, - TILEPRO_OPC_MULHLA_SS, - TILEPRO_OPC_MULHLA_SS_SN, - TILEPRO_OPC_MULHLA_SU, - TILEPRO_OPC_MULHLA_SU_SN, - TILEPRO_OPC_MULHLA_US, - TILEPRO_OPC_MULHLA_US_SN, - TILEPRO_OPC_MULHLA_UU, - TILEPRO_OPC_MULHLA_UU_SN, - TILEPRO_OPC_MULHLSA_UU, - TILEPRO_OPC_MULHLSA_UU_SN, - TILEPRO_OPC_MULLL_SS, - TILEPRO_OPC_MULLL_SS_SN, - TILEPRO_OPC_MULLL_SU, - TILEPRO_OPC_MULLL_SU_SN, - TILEPRO_OPC_MULLL_UU, - TILEPRO_OPC_MULLL_UU_SN, - TILEPRO_OPC_MULLLA_SS, - TILEPRO_OPC_MULLLA_SS_SN, - TILEPRO_OPC_MULLLA_SU, - TILEPRO_OPC_MULLLA_SU_SN, - TILEPRO_OPC_MULLLA_UU, - TILEPRO_OPC_MULLLA_UU_SN, - TILEPRO_OPC_MULLLSA_UU, - TILEPRO_OPC_MULLLSA_UU_SN, - TILEPRO_OPC_MVNZ, - TILEPRO_OPC_MVNZ_SN, - TILEPRO_OPC_MVZ, - TILEPRO_OPC_MVZ_SN, - TILEPRO_OPC_MZ, - TILEPRO_OPC_MZ_SN, - TILEPRO_OPC_MZB, - TILEPRO_OPC_MZB_SN, - TILEPRO_OPC_MZH, - TILEPRO_OPC_MZH_SN, - TILEPRO_OPC_NAP, - TILEPRO_OPC_NOP, - TILEPRO_OPC_NOR, - TILEPRO_OPC_NOR_SN, - TILEPRO_OPC_OR, - TILEPRO_OPC_OR_SN, - TILEPRO_OPC_ORI, - TILEPRO_OPC_ORI_SN, - TILEPRO_OPC_PACKBS_U, - TILEPRO_OPC_PACKBS_U_SN, - TILEPRO_OPC_PACKHB, - TILEPRO_OPC_PACKHB_SN, - TILEPRO_OPC_PACKHS, - TILEPRO_OPC_PACKHS_SN, - TILEPRO_OPC_PACKLB, - TILEPRO_OPC_PACKLB_SN, - TILEPRO_OPC_PCNT, - TILEPRO_OPC_PCNT_SN, - TILEPRO_OPC_RL, - TILEPRO_OPC_RL_SN, - TILEPRO_OPC_RLI, - TILEPRO_OPC_RLI_SN, - TILEPRO_OPC_S1A, - TILEPRO_OPC_S1A_SN, - TILEPRO_OPC_S2A, - TILEPRO_OPC_S2A_SN, - TILEPRO_OPC_S3A, - TILEPRO_OPC_S3A_SN, - TILEPRO_OPC_SADAB_U, - TILEPRO_OPC_SADAB_U_SN, - TILEPRO_OPC_SADAH, - TILEPRO_OPC_SADAH_SN, - TILEPRO_OPC_SADAH_U, - TILEPRO_OPC_SADAH_U_SN, - TILEPRO_OPC_SADB_U, - TILEPRO_OPC_SADB_U_SN, - TILEPRO_OPC_SADH, - TILEPRO_OPC_SADH_SN, - TILEPRO_OPC_SADH_U, - TILEPRO_OPC_SADH_U_SN, - TILEPRO_OPC_SB, - TILEPRO_OPC_SBADD, - TILEPRO_OPC_SEQ, - TILEPRO_OPC_SEQ_SN, - TILEPRO_OPC_SEQB, - TILEPRO_OPC_SEQB_SN, - TILEPRO_OPC_SEQH, - TILEPRO_OPC_SEQH_SN, - TILEPRO_OPC_SEQI, - TILEPRO_OPC_SEQI_SN, - TILEPRO_OPC_SEQIB, - TILEPRO_OPC_SEQIB_SN, - TILEPRO_OPC_SEQIH, - TILEPRO_OPC_SEQIH_SN, - TILEPRO_OPC_SH, - TILEPRO_OPC_SHADD, - TILEPRO_OPC_SHL, - TILEPRO_OPC_SHL_SN, - TILEPRO_OPC_SHLB, - TILEPRO_OPC_SHLB_SN, - TILEPRO_OPC_SHLH, - TILEPRO_OPC_SHLH_SN, - TILEPRO_OPC_SHLI, - TILEPRO_OPC_SHLI_SN, - TILEPRO_OPC_SHLIB, - TILEPRO_OPC_SHLIB_SN, - TILEPRO_OPC_SHLIH, - TILEPRO_OPC_SHLIH_SN, - TILEPRO_OPC_SHR, - TILEPRO_OPC_SHR_SN, - TILEPRO_OPC_SHRB, - TILEPRO_OPC_SHRB_SN, - TILEPRO_OPC_SHRH, - TILEPRO_OPC_SHRH_SN, - TILEPRO_OPC_SHRI, - TILEPRO_OPC_SHRI_SN, - TILEPRO_OPC_SHRIB, - TILEPRO_OPC_SHRIB_SN, - TILEPRO_OPC_SHRIH, - TILEPRO_OPC_SHRIH_SN, - TILEPRO_OPC_SLT, - TILEPRO_OPC_SLT_SN, - TILEPRO_OPC_SLT_U, - TILEPRO_OPC_SLT_U_SN, - TILEPRO_OPC_SLTB, - TILEPRO_OPC_SLTB_SN, - TILEPRO_OPC_SLTB_U, - TILEPRO_OPC_SLTB_U_SN, - TILEPRO_OPC_SLTE, - TILEPRO_OPC_SLTE_SN, - TILEPRO_OPC_SLTE_U, - TILEPRO_OPC_SLTE_U_SN, - TILEPRO_OPC_SLTEB, - TILEPRO_OPC_SLTEB_SN, - TILEPRO_OPC_SLTEB_U, - TILEPRO_OPC_SLTEB_U_SN, - TILEPRO_OPC_SLTEH, - TILEPRO_OPC_SLTEH_SN, - TILEPRO_OPC_SLTEH_U, - TILEPRO_OPC_SLTEH_U_SN, - TILEPRO_OPC_SLTH, - TILEPRO_OPC_SLTH_SN, - TILEPRO_OPC_SLTH_U, - TILEPRO_OPC_SLTH_U_SN, - TILEPRO_OPC_SLTI, - TILEPRO_OPC_SLTI_SN, - TILEPRO_OPC_SLTI_U, - TILEPRO_OPC_SLTI_U_SN, - TILEPRO_OPC_SLTIB, - TILEPRO_OPC_SLTIB_SN, - TILEPRO_OPC_SLTIB_U, - TILEPRO_OPC_SLTIB_U_SN, - TILEPRO_OPC_SLTIH, - TILEPRO_OPC_SLTIH_SN, - TILEPRO_OPC_SLTIH_U, - TILEPRO_OPC_SLTIH_U_SN, - TILEPRO_OPC_SNE, - TILEPRO_OPC_SNE_SN, - TILEPRO_OPC_SNEB, - TILEPRO_OPC_SNEB_SN, - TILEPRO_OPC_SNEH, - TILEPRO_OPC_SNEH_SN, - TILEPRO_OPC_SRA, - TILEPRO_OPC_SRA_SN, - TILEPRO_OPC_SRAB, - TILEPRO_OPC_SRAB_SN, - TILEPRO_OPC_SRAH, - TILEPRO_OPC_SRAH_SN, - TILEPRO_OPC_SRAI, - TILEPRO_OPC_SRAI_SN, - TILEPRO_OPC_SRAIB, - TILEPRO_OPC_SRAIB_SN, - TILEPRO_OPC_SRAIH, - TILEPRO_OPC_SRAIH_SN, - TILEPRO_OPC_SUB, - TILEPRO_OPC_SUB_SN, - TILEPRO_OPC_SUBB, - TILEPRO_OPC_SUBB_SN, - TILEPRO_OPC_SUBBS_U, - TILEPRO_OPC_SUBBS_U_SN, - TILEPRO_OPC_SUBH, - TILEPRO_OPC_SUBH_SN, - TILEPRO_OPC_SUBHS, - TILEPRO_OPC_SUBHS_SN, - TILEPRO_OPC_SUBS, - TILEPRO_OPC_SUBS_SN, - TILEPRO_OPC_SW, - TILEPRO_OPC_SWADD, - TILEPRO_OPC_SWINT0, - TILEPRO_OPC_SWINT1, - TILEPRO_OPC_SWINT2, - TILEPRO_OPC_SWINT3, - TILEPRO_OPC_TBLIDXB0, - TILEPRO_OPC_TBLIDXB0_SN, - TILEPRO_OPC_TBLIDXB1, - TILEPRO_OPC_TBLIDXB1_SN, - TILEPRO_OPC_TBLIDXB2, - TILEPRO_OPC_TBLIDXB2_SN, - TILEPRO_OPC_TBLIDXB3, - TILEPRO_OPC_TBLIDXB3_SN, - TILEPRO_OPC_TNS, - TILEPRO_OPC_TNS_SN, - TILEPRO_OPC_WH64, - TILEPRO_OPC_XOR, - TILEPRO_OPC_XOR_SN, - TILEPRO_OPC_XORI, - TILEPRO_OPC_XORI_SN, - TILEPRO_OPC_NONE -} tilepro_mnemonic; - -/* 64-bit pattern for a { bpt ; nop } bundle. */ -#define TILEPRO_BPT_BUNDLE 0x400b3cae70166000ULL - -#ifndef DISASM_ONLY - -enum -{ - TILEPRO_SN_MAX_OPERANDS = 6 /* route */ -}; - -typedef enum -{ - TILEPRO_SN_OPC_BZ, - TILEPRO_SN_OPC_BNZ, - TILEPRO_SN_OPC_JRR, - TILEPRO_SN_OPC_FNOP, - TILEPRO_SN_OPC_BLZ, - TILEPRO_SN_OPC_NOP, - TILEPRO_SN_OPC_MOVEI, - TILEPRO_SN_OPC_MOVE, - TILEPRO_SN_OPC_BGEZ, - TILEPRO_SN_OPC_JR, - TILEPRO_SN_OPC_BLEZ, - TILEPRO_SN_OPC_BBNS, - TILEPRO_SN_OPC_JALRR, - TILEPRO_SN_OPC_BPT, - TILEPRO_SN_OPC_JALR, - TILEPRO_SN_OPC_SHR1, - TILEPRO_SN_OPC_BGZ, - TILEPRO_SN_OPC_BBS, - TILEPRO_SN_OPC_SHL8II, - TILEPRO_SN_OPC_ADDI, - TILEPRO_SN_OPC_HALT, - TILEPRO_SN_OPC_ROUTE, - TILEPRO_SN_OPC_NONE -} tilepro_sn_mnemonic; - -extern const unsigned char tilepro_sn_route_encode[6 * 6 * 6]; -extern const signed char tilepro_sn_route_decode[256][3]; -extern const char tilepro_sn_direction_names[6][5]; -extern const signed char tilepro_sn_dest_map[6][6]; -#endif /* DISASM_ONLY */ - - -static __inline unsigned int -get_BrOff_SN(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 0)) & 0x3ff); -} - -static __inline unsigned int -get_BrOff_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x00007fff) | - (((unsigned int)(n >> 20)) & 0x00018000); -} - -static __inline unsigned int -get_BrType_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 31)) & 0xf); -} - -static __inline unsigned int -get_Dest_Imm8_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 31)) & 0x0000003f) | - (((unsigned int)(n >> 43)) & 0x000000c0); -} - -static __inline unsigned int -get_Dest_SN(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 2)) & 0x3); -} - -static __inline unsigned int -get_Dest_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 0)) & 0x3f); -} - -static __inline unsigned int -get_Dest_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 31)) & 0x3f); -} - -static __inline unsigned int -get_Dest_Y0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 0)) & 0x3f); -} - -static __inline unsigned int -get_Dest_Y1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 31)) & 0x3f); -} - -static __inline unsigned int -get_Imm16_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0xffff); -} - -static __inline unsigned int -get_Imm16_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0xffff); -} - -static __inline unsigned int -get_Imm8_SN(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 0)) & 0xff); -} - -static __inline unsigned int -get_Imm8_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0xff); -} - -static __inline unsigned int -get_Imm8_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0xff); -} - -static __inline unsigned int -get_Imm8_Y0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0xff); -} - -static __inline unsigned int -get_Imm8_Y1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0xff); -} - -static __inline unsigned int -get_ImmOpcodeExtension_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 20)) & 0x7f); -} - -static __inline unsigned int -get_ImmOpcodeExtension_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 51)) & 0x7f); -} - -static __inline unsigned int -get_ImmRROpcodeExtension_SN(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 8)) & 0x3); -} - -static __inline unsigned int -get_JOffLong_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x00007fff) | - (((unsigned int)(n >> 20)) & 0x00018000) | - (((unsigned int)(n >> 14)) & 0x001e0000) | - (((unsigned int)(n >> 16)) & 0x07e00000) | - (((unsigned int)(n >> 31)) & 0x18000000); -} - -static __inline unsigned int -get_JOff_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x00007fff) | - (((unsigned int)(n >> 20)) & 0x00018000) | - (((unsigned int)(n >> 14)) & 0x001e0000) | - (((unsigned int)(n >> 16)) & 0x07e00000) | - (((unsigned int)(n >> 31)) & 0x08000000); -} - -static __inline unsigned int -get_MF_Imm15_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 37)) & 0x00003fff) | - (((unsigned int)(n >> 44)) & 0x00004000); -} - -static __inline unsigned int -get_MMEnd_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 18)) & 0x1f); -} - -static __inline unsigned int -get_MMEnd_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 49)) & 0x1f); -} - -static __inline unsigned int -get_MMStart_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 23)) & 0x1f); -} - -static __inline unsigned int -get_MMStart_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 54)) & 0x1f); -} - -static __inline unsigned int -get_MT_Imm15_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 31)) & 0x0000003f) | - (((unsigned int)(n >> 37)) & 0x00003fc0) | - (((unsigned int)(n >> 44)) & 0x00004000); -} - -static __inline unsigned int -get_Mode(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 63)) & 0x1); -} - -static __inline unsigned int -get_NoRegOpcodeExtension_SN(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 0)) & 0xf); -} - -static __inline unsigned int -get_Opcode_SN(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 10)) & 0x3f); -} - -static __inline unsigned int -get_Opcode_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 28)) & 0x7); -} - -static __inline unsigned int -get_Opcode_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 59)) & 0xf); -} - -static __inline unsigned int -get_Opcode_Y0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 27)) & 0xf); -} - -static __inline unsigned int -get_Opcode_Y1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 59)) & 0xf); -} - -static __inline unsigned int -get_Opcode_Y2(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 56)) & 0x7); -} - -static __inline unsigned int -get_RROpcodeExtension_SN(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 4)) & 0xf); -} - -static __inline unsigned int -get_RRROpcodeExtension_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 18)) & 0x1ff); -} - -static __inline unsigned int -get_RRROpcodeExtension_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 49)) & 0x1ff); -} - -static __inline unsigned int -get_RRROpcodeExtension_Y0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 18)) & 0x3); -} - -static __inline unsigned int -get_RRROpcodeExtension_Y1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 49)) & 0x3); -} - -static __inline unsigned int -get_RouteOpcodeExtension_SN(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 0)) & 0x3ff); -} - -static __inline unsigned int -get_S_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 27)) & 0x1); -} - -static __inline unsigned int -get_S_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 58)) & 0x1); -} - -static __inline unsigned int -get_ShAmt_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0x1f); -} - -static __inline unsigned int -get_ShAmt_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x1f); -} - -static __inline unsigned int -get_ShAmt_Y0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0x1f); -} - -static __inline unsigned int -get_ShAmt_Y1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x1f); -} - -static __inline unsigned int -get_SrcA_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 6)) & 0x3f); -} - -static __inline unsigned int -get_SrcA_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 37)) & 0x3f); -} - -static __inline unsigned int -get_SrcA_Y0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 6)) & 0x3f); -} - -static __inline unsigned int -get_SrcA_Y1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 37)) & 0x3f); -} - -static __inline unsigned int -get_SrcA_Y2(tilepro_bundle_bits n) -{ - return (((n >> 26)) & 0x00000001) | - (((unsigned int)(n >> 50)) & 0x0000003e); -} - -static __inline unsigned int -get_SrcBDest_Y2(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 20)) & 0x3f); -} - -static __inline unsigned int -get_SrcB_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0x3f); -} - -static __inline unsigned int -get_SrcB_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x3f); -} - -static __inline unsigned int -get_SrcB_Y0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0x3f); -} - -static __inline unsigned int -get_SrcB_Y1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x3f); -} - -static __inline unsigned int -get_Src_SN(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 0)) & 0x3); -} - -static __inline unsigned int -get_UnOpcodeExtension_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0x1f); -} - -static __inline unsigned int -get_UnOpcodeExtension_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x1f); -} - -static __inline unsigned int -get_UnOpcodeExtension_Y0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 12)) & 0x1f); -} - -static __inline unsigned int -get_UnOpcodeExtension_Y1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 43)) & 0x1f); -} - -static __inline unsigned int -get_UnShOpcodeExtension_X0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 17)) & 0x3ff); -} - -static __inline unsigned int -get_UnShOpcodeExtension_X1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 48)) & 0x3ff); -} - -static __inline unsigned int -get_UnShOpcodeExtension_Y0(tilepro_bundle_bits num) -{ - const unsigned int n = (unsigned int)num; - return (((n >> 17)) & 0x7); -} - -static __inline unsigned int -get_UnShOpcodeExtension_Y1(tilepro_bundle_bits n) -{ - return (((unsigned int)(n >> 48)) & 0x7); -} - - -static __inline int -sign_extend(int n, int num_bits) -{ - int shift = (int)(sizeof(int) * 8 - num_bits); - return (n << shift) >> shift; -} - - - -static __inline tilepro_bundle_bits -create_BrOff_SN(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3ff) << 0); -} - -static __inline tilepro_bundle_bits -create_BrOff_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x00007fff)) << 43) | - (((tilepro_bundle_bits)(n & 0x00018000)) << 20); -} - -static __inline tilepro_bundle_bits -create_BrType_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0xf)) << 31); -} - -static __inline tilepro_bundle_bits -create_Dest_Imm8_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x0000003f)) << 31) | - (((tilepro_bundle_bits)(n & 0x000000c0)) << 43); -} - -static __inline tilepro_bundle_bits -create_Dest_SN(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3) << 2); -} - -static __inline tilepro_bundle_bits -create_Dest_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 0); -} - -static __inline tilepro_bundle_bits -create_Dest_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x3f)) << 31); -} - -static __inline tilepro_bundle_bits -create_Dest_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 0); -} - -static __inline tilepro_bundle_bits -create_Dest_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x3f)) << 31); -} - -static __inline tilepro_bundle_bits -create_Imm16_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0xffff) << 12); -} - -static __inline tilepro_bundle_bits -create_Imm16_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0xffff)) << 43); -} - -static __inline tilepro_bundle_bits -create_Imm8_SN(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0xff) << 0); -} - -static __inline tilepro_bundle_bits -create_Imm8_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0xff) << 12); -} - -static __inline tilepro_bundle_bits -create_Imm8_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0xff)) << 43); -} - -static __inline tilepro_bundle_bits -create_Imm8_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0xff) << 12); -} - -static __inline tilepro_bundle_bits -create_Imm8_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0xff)) << 43); -} - -static __inline tilepro_bundle_bits -create_ImmOpcodeExtension_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x7f) << 20); -} - -static __inline tilepro_bundle_bits -create_ImmOpcodeExtension_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x7f)) << 51); -} - -static __inline tilepro_bundle_bits -create_ImmRROpcodeExtension_SN(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3) << 8); -} - -static __inline tilepro_bundle_bits -create_JOffLong_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x00007fff)) << 43) | - (((tilepro_bundle_bits)(n & 0x00018000)) << 20) | - (((tilepro_bundle_bits)(n & 0x001e0000)) << 14) | - (((tilepro_bundle_bits)(n & 0x07e00000)) << 16) | - (((tilepro_bundle_bits)(n & 0x18000000)) << 31); -} - -static __inline tilepro_bundle_bits -create_JOff_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x00007fff)) << 43) | - (((tilepro_bundle_bits)(n & 0x00018000)) << 20) | - (((tilepro_bundle_bits)(n & 0x001e0000)) << 14) | - (((tilepro_bundle_bits)(n & 0x07e00000)) << 16) | - (((tilepro_bundle_bits)(n & 0x08000000)) << 31); -} - -static __inline tilepro_bundle_bits -create_MF_Imm15_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x00003fff)) << 37) | - (((tilepro_bundle_bits)(n & 0x00004000)) << 44); -} - -static __inline tilepro_bundle_bits -create_MMEnd_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x1f) << 18); -} - -static __inline tilepro_bundle_bits -create_MMEnd_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x1f)) << 49); -} - -static __inline tilepro_bundle_bits -create_MMStart_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x1f) << 23); -} - -static __inline tilepro_bundle_bits -create_MMStart_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x1f)) << 54); -} - -static __inline tilepro_bundle_bits -create_MT_Imm15_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x0000003f)) << 31) | - (((tilepro_bundle_bits)(n & 0x00003fc0)) << 37) | - (((tilepro_bundle_bits)(n & 0x00004000)) << 44); -} - -static __inline tilepro_bundle_bits -create_Mode(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x1)) << 63); -} - -static __inline tilepro_bundle_bits -create_NoRegOpcodeExtension_SN(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0xf) << 0); -} - -static __inline tilepro_bundle_bits -create_Opcode_SN(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 10); -} - -static __inline tilepro_bundle_bits -create_Opcode_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x7) << 28); -} - -static __inline tilepro_bundle_bits -create_Opcode_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0xf)) << 59); -} - -static __inline tilepro_bundle_bits -create_Opcode_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0xf) << 27); -} - -static __inline tilepro_bundle_bits -create_Opcode_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0xf)) << 59); -} - -static __inline tilepro_bundle_bits -create_Opcode_Y2(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x7)) << 56); -} - -static __inline tilepro_bundle_bits -create_RROpcodeExtension_SN(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0xf) << 4); -} - -static __inline tilepro_bundle_bits -create_RRROpcodeExtension_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x1ff) << 18); -} - -static __inline tilepro_bundle_bits -create_RRROpcodeExtension_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x1ff)) << 49); -} - -static __inline tilepro_bundle_bits -create_RRROpcodeExtension_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3) << 18); -} - -static __inline tilepro_bundle_bits -create_RRROpcodeExtension_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x3)) << 49); -} - -static __inline tilepro_bundle_bits -create_RouteOpcodeExtension_SN(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3ff) << 0); -} - -static __inline tilepro_bundle_bits -create_S_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x1) << 27); -} - -static __inline tilepro_bundle_bits -create_S_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x1)) << 58); -} - -static __inline tilepro_bundle_bits -create_ShAmt_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x1f) << 12); -} - -static __inline tilepro_bundle_bits -create_ShAmt_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x1f)) << 43); -} - -static __inline tilepro_bundle_bits -create_ShAmt_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x1f) << 12); -} - -static __inline tilepro_bundle_bits -create_ShAmt_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x1f)) << 43); -} - -static __inline tilepro_bundle_bits -create_SrcA_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 6); -} - -static __inline tilepro_bundle_bits -create_SrcA_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x3f)) << 37); -} - -static __inline tilepro_bundle_bits -create_SrcA_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 6); -} - -static __inline tilepro_bundle_bits -create_SrcA_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x3f)) << 37); -} - -static __inline tilepro_bundle_bits -create_SrcA_Y2(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x00000001) << 26) | - (((tilepro_bundle_bits)(n & 0x0000003e)) << 50); -} - -static __inline tilepro_bundle_bits -create_SrcBDest_Y2(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 20); -} - -static __inline tilepro_bundle_bits -create_SrcB_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 12); -} - -static __inline tilepro_bundle_bits -create_SrcB_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x3f)) << 43); -} - -static __inline tilepro_bundle_bits -create_SrcB_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3f) << 12); -} - -static __inline tilepro_bundle_bits -create_SrcB_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x3f)) << 43); -} - -static __inline tilepro_bundle_bits -create_Src_SN(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3) << 0); -} - -static __inline tilepro_bundle_bits -create_UnOpcodeExtension_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x1f) << 12); -} - -static __inline tilepro_bundle_bits -create_UnOpcodeExtension_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x1f)) << 43); -} - -static __inline tilepro_bundle_bits -create_UnOpcodeExtension_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x1f) << 12); -} - -static __inline tilepro_bundle_bits -create_UnOpcodeExtension_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x1f)) << 43); -} - -static __inline tilepro_bundle_bits -create_UnShOpcodeExtension_X0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x3ff) << 17); -} - -static __inline tilepro_bundle_bits -create_UnShOpcodeExtension_X1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x3ff)) << 48); -} - -static __inline tilepro_bundle_bits -create_UnShOpcodeExtension_Y0(int num) -{ - const unsigned int n = (unsigned int)num; - return ((n & 0x7) << 17); -} - -static __inline tilepro_bundle_bits -create_UnShOpcodeExtension_Y1(int num) -{ - const unsigned int n = (unsigned int)num; - return (((tilepro_bundle_bits)(n & 0x7)) << 48); -} - - - -typedef enum -{ - TILEPRO_PIPELINE_X0, - TILEPRO_PIPELINE_X1, - TILEPRO_PIPELINE_Y0, - TILEPRO_PIPELINE_Y1, - TILEPRO_PIPELINE_Y2, -} tilepro_pipeline; - -#define tilepro_is_x_pipeline(p) ((int)(p) <= (int)TILEPRO_PIPELINE_X1) - -typedef enum -{ - TILEPRO_OP_TYPE_REGISTER, - TILEPRO_OP_TYPE_IMMEDIATE, - TILEPRO_OP_TYPE_ADDRESS, - TILEPRO_OP_TYPE_SPR -} tilepro_operand_type; - -/* This is the bit that determines if a bundle is in the Y encoding. */ -#define TILEPRO_BUNDLE_Y_ENCODING_MASK ((tilepro_bundle_bits)1 << 63) - -enum -{ - /* Maximum number of instructions in a bundle (2 for X, 3 for Y). */ - TILEPRO_MAX_INSTRUCTIONS_PER_BUNDLE = 3, - - /* How many different pipeline encodings are there? X0, X1, Y0, Y1, Y2. */ - TILEPRO_NUM_PIPELINE_ENCODINGS = 5, - - /* Log base 2 of TILEPRO_BUNDLE_SIZE_IN_BYTES. */ - TILEPRO_LOG2_BUNDLE_SIZE_IN_BYTES = 3, - - /* Instructions take this many bytes. */ - TILEPRO_BUNDLE_SIZE_IN_BYTES = 1 << TILEPRO_LOG2_BUNDLE_SIZE_IN_BYTES, - - /* Log base 2 of TILEPRO_BUNDLE_ALIGNMENT_IN_BYTES. */ - TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES = 3, - - /* Bundles should be aligned modulo this number of bytes. */ - TILEPRO_BUNDLE_ALIGNMENT_IN_BYTES = - (1 << TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES), - - /* Log base 2 of TILEPRO_SN_INSTRUCTION_SIZE_IN_BYTES. */ - TILEPRO_LOG2_SN_INSTRUCTION_SIZE_IN_BYTES = 1, - - /* Static network instructions take this many bytes. */ - TILEPRO_SN_INSTRUCTION_SIZE_IN_BYTES = - (1 << TILEPRO_LOG2_SN_INSTRUCTION_SIZE_IN_BYTES), - - /* Number of registers (some are magic, such as network I/O). */ - TILEPRO_NUM_REGISTERS = 64, - - /* Number of static network registers. */ - TILEPRO_NUM_SN_REGISTERS = 4 -}; - - -struct tilepro_operand -{ - /* Is this operand a register, immediate or address? */ - tilepro_operand_type type; - - /* The default relocation type for this operand. */ - signed int default_reloc : 16; - - /* How many bits is this value? (used for range checking) */ - unsigned int num_bits : 5; - - /* Is the value signed? (used for range checking) */ - unsigned int is_signed : 1; - - /* Is this operand a source register? */ - unsigned int is_src_reg : 1; - - /* Is this operand written? (i.e. is it a destination register) */ - unsigned int is_dest_reg : 1; - - /* Is this operand PC-relative? */ - unsigned int is_pc_relative : 1; - - /* By how many bits do we right shift the value before inserting? */ - unsigned int rightshift : 2; - - /* Return the bits for this operand to be ORed into an existing bundle. */ - tilepro_bundle_bits (*insert) (int op); - - /* Extract this operand and return it. */ - unsigned int (*extract) (tilepro_bundle_bits bundle); -}; - - -extern const struct tilepro_operand tilepro_operands[]; - -/* One finite-state machine per pipe for rapid instruction decoding. */ -extern const unsigned short * const -tilepro_bundle_decoder_fsms[TILEPRO_NUM_PIPELINE_ENCODINGS]; - - -struct tilepro_opcode -{ - /* The opcode mnemonic, e.g. "add" */ - const char *name; - - /* The enum value for this mnemonic. */ - tilepro_mnemonic mnemonic; - - /* A bit mask of which of the five pipes this instruction - is compatible with: - X0 0x01 - X1 0x02 - Y0 0x04 - Y1 0x08 - Y2 0x10 */ - unsigned char pipes; - - /* How many operands are there? */ - unsigned char num_operands; - - /* Which register does this write implicitly, or TREG_ZERO if none? */ - unsigned char implicitly_written_register; - - /* Can this be bundled with other instructions (almost always true). */ - unsigned char can_bundle; - - /* The description of the operands. Each of these is an - * index into the tilepro_operands[] table. */ - unsigned char operands[TILEPRO_NUM_PIPELINE_ENCODINGS][TILEPRO_MAX_OPERANDS]; - -#if !defined(__KERNEL__) && !defined(_LIBC) - /* A mask of which bits have predefined values for each pipeline. - * This is useful for disassembly. */ - tilepro_bundle_bits fixed_bit_masks[TILEPRO_NUM_PIPELINE_ENCODINGS]; - - /* For each bit set in fixed_bit_masks, what the value is for this - * instruction. */ - tilepro_bundle_bits fixed_bit_values[TILEPRO_NUM_PIPELINE_ENCODINGS]; -#endif -}; - -extern const struct tilepro_opcode tilepro_opcodes[]; - -#if !defined(__KERNEL__) && !defined(_LIBC) - -typedef unsigned short tilepro_sn_instruction_bits; - -struct tilepro_sn_opcode -{ - /* The opcode mnemonic, e.g. "add" */ - const char *name; - - /* The enum value for this mnemonic. */ - tilepro_sn_mnemonic mnemonic; - - /* How many operands are there? */ - unsigned char num_operands; - - /* The description of the operands. Each of these is an - * index into the tilepro_operands[] table. */ - unsigned char operands[TILEPRO_SN_MAX_OPERANDS]; - - /* A mask of which bits have predefined values. - * This is useful for disassembly. */ - tilepro_sn_instruction_bits fixed_bit_mask; - - /* For each bit set in fixed_bit_masks, what its value is. */ - tilepro_sn_instruction_bits fixed_bit_values; -}; - -extern const struct tilepro_sn_opcode tilepro_sn_opcodes[]; - -#endif /* !__KERNEL__ && !_LIBC */ - -/* Used for non-textual disassembly into structs. */ -struct tilepro_decoded_instruction -{ - const struct tilepro_opcode *opcode; - const struct tilepro_operand *operands[TILEPRO_MAX_OPERANDS]; - int operand_values[TILEPRO_MAX_OPERANDS]; -}; - - -/* Disassemble a bundle into a struct for machine processing. */ -extern int parse_insn_tilepro(tilepro_bundle_bits bits, - unsigned int pc, - struct tilepro_decoded_instruction - decoded[TILEPRO_MAX_INSTRUCTIONS_PER_BUNDLE]); - - -/* Given a set of bundle bits and a specific pipe, returns which - * instruction the bundle contains in that pipe. - */ -extern const struct tilepro_opcode * -find_opcode(tilepro_bundle_bits bits, tilepro_pipeline pipe); - - -#if !defined(__KERNEL__) && !defined(_LIBC) -/* Canonical names of all the registers. */ -/* ISSUE: This table lives in "tilepro-dis.c" */ -extern const char * const tilepro_register_names[]; - -/* Descriptor for a special-purpose register. */ -struct tilepro_spr -{ - /* The number */ - int number; - - /* The name */ - const char *name; -}; - -/* List of all the SPRs; ordered by increasing number. */ -extern const struct tilepro_spr tilepro_sprs[]; - -/* Number of special-purpose registers. */ -extern const int tilepro_num_sprs; - -extern const char * -get_tilepro_spr_name (int num); -#endif /* !__KERNEL__ && !_LIBC */ - -/* Make a few "tile_" variables to simply common code between - architectures. */ - -typedef tilepro_bundle_bits tile_bundle_bits; -#define TILE_BUNDLE_SIZE_IN_BYTES TILEPRO_BUNDLE_SIZE_IN_BYTES -#define TILE_BUNDLE_ALIGNMENT_IN_BYTES TILEPRO_BUNDLE_ALIGNMENT_IN_BYTES -#define TILE_LOG2_BUNDLE_ALIGNMENT_IN_BYTES \ - TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES - -#endif /* opcode_tilepro_h */ diff --git a/include/opcode/v850.h b/include/opcode/v850.h deleted file mode 100644 index 02ef3d4..0000000 --- a/include/opcode/v850.h +++ /dev/null @@ -1,240 +0,0 @@ -/* v850.h -- Header file for NEC V850 opcode table - Copyright 1996-2013 Free Software Foundation, Inc. - Written by J.T. Conklin, Cygnus Support - - This file is part of GDB, GAS, and the GNU binutils. - - GDB, GAS, and the GNU binutils are free software; you can redistribute - them and/or modify them under the terms of the GNU General Public - License as published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GDB, GAS, and the GNU binutils are distributed in the hope that they - will be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef V850_H -#define V850_H - -/* The opcode table is an array of struct v850_opcode. */ - -struct v850_opcode -{ - /* The opcode name. */ - const char *name; - - /* The opcode itself. Those bits which will be filled in with - operands are zeroes. */ - unsigned long opcode; - - /* The opcode mask. This is used by the disassembler. This is a - mask containing ones indicating those bits which must match the - opcode field, and zeroes indicating those bits which need not - match (and are presumably filled in by operands). */ - unsigned long mask; - - /* An array of operand codes. Each code is an index into the - operand table. They appear in the order which the operands must - appear in assembly code, and are terminated by a zero. */ - unsigned char operands[8]; - - /* Which (if any) operand is a memory operand. */ - unsigned int memop; - - /* Target processor(s). A bit field of processors which support - this instruction. Note a bit field is used as some instructions - are available on multiple, different processor types, whereas - other instructions are only available on one specific type. */ - unsigned int processors; -}; - -/* Values for architecture number. */ -#define arch_V850 0 -#define arch_V850E (arch_V850 + 1) -#define arch_V850E1 (arch_V850E + 1) -#define arch_V850E2 (arch_V850E1 + 1) -#define arch_V850E2V3 (arch_V850E2 + 1) -#define arch_V850E3V5 (arch_V850E2V3 + 1) -#define arch_separator (arch_V850E3V5 + 1) - -#define opt_EXTENSION (arch_separator) -#define opt_ALIAS (opt_EXTENSION + 1) - -/* Values for the processors field in the v850_opcode structure. */ -#define PROCESSOR_V850 (1 << (arch_V850)) /* Just the V850. */ -#define PROCESSOR_V850E (1 << (arch_V850E)) /* Just the V850E. */ -#define PROCESSOR_V850E1 (1 << (arch_V850E1)) /* Just the V850E1. */ -#define PROCESSOR_V850E2 (1 << (arch_V850E2)) /* Just the V850E2. */ -#define PROCESSOR_V850E2V3 (1 << (arch_V850E2V3)) /* Just the V850E2V3. */ -#define PROCESSOR_V850E3V5 (1 << (arch_V850E3V5)) /* Just the V850E3V5. */ - -/* UPPERS */ -#define PROCESSOR_V850E3V5_UP (PROCESSOR_V850E3V5) -#define PROCESSOR_V850E2V3_UP (PROCESSOR_V850E2V3 | PROCESSOR_V850E3V5_UP) -#define PROCESSOR_V850E2_UP (PROCESSOR_V850E2 | PROCESSOR_V850E2V3_UP) -#define PROCESSOR_V850E_UP (PROCESSOR_V850E | PROCESSOR_V850E1 | PROCESSOR_V850E2_UP) -#define PROCESSOR_ALL (PROCESSOR_V850 | PROCESSOR_V850E_UP) - -#define PROCESSOR_MASK (PROCESSOR_ALL) -#define PROCESSOR_NOT_V850 (PROCESSOR_ALL & (~ PROCESSOR_V850)) /* Any processor except the V850. */ - -#define PROCESSOR_UNKNOWN ~(PROCESSOR_MASK) - -/* OPTIONS */ -#define PROCESSOR_OPTION_EXTENSION (1 << (opt_EXTENSION)) /* Enable extension opcodes. */ -#define PROCESSOR_OPTION_ALIAS (1 << (opt_ALIAS)) /* Enable alias opcodes. */ - -#define SET_PROCESSOR_MASK(mask,set) ((mask) = ((mask) & ~PROCESSOR_MASK) | (set)) - -/* The table itself is sorted by major opcode number, and is otherwise - in the order in which the disassembler should consider - instructions. */ -extern const struct v850_opcode v850_opcodes[]; -extern const int v850_num_opcodes; - - -/* The operands table is an array of struct v850_operand. */ - -struct v850_operand -{ - /* The number of bits in the operand. */ - /* If this value is -1 then the operand's bits are in a discontinous - distribution in the instruction. */ - int bits; - - /* (bits >= 0): How far the operand is left shifted in the instruction. */ - /* (bits == -1): Bit mask of the bits in the operand. */ - int shift; - - /* Insertion function. This is used by the assembler. To insert an - operand value into an instruction, check this field. - - If it is NULL, execute - i |= (op & ((1 << o->bits) - 1)) << o->shift; - (i is the instruction which we are filling in, o is a pointer to - this structure, and op is the opcode value; this assumes twos - complement arithmetic). - - If this field is not NULL, then simply call it with the - instruction and the operand value. It will return the new value - of the instruction. If the ERRMSG argument is not NULL, then if - the operand value is illegal, *ERRMSG will be set to a warning - string (the operand will be inserted in any case). If the - operand value is legal, *ERRMSG will be unchanged (most operands - can accept any value). */ - unsigned long (* insert) - (unsigned long instruction, long op, const char ** errmsg); - - /* Extraction function. This is used by the disassembler. To - extract this operand type from an instruction, check this field. - - If it is NULL, compute - op = o->bits == -1 ? ((i) & o->shift) : ((i) >> o->shift) & ((1 << o->bits) - 1); - if (o->flags & V850_OPERAND_SIGNED) - op = (op << (32 - o->bits)) >> (32 - o->bits); - (i is the instruction, o is a pointer to this structure, and op - is the result; this assumes twos complement arithmetic). - - If this field is not NULL, then simply call it with the - instruction value. It will return the value of the operand. If - the INVALID argument is not NULL, *INVALID will be set to - non-zero if this operand type can not actually be extracted from - this operand (i.e., the instruction does not match). If the - operand is valid, *INVALID will not be changed. */ - unsigned long (* extract) (unsigned long instruction, int * invalid); - - /* One bit syntax flags. */ - int flags; - - int default_reloc; -}; - -/* Elements in the table are retrieved by indexing with values from - the operands field of the v850_opcodes table. */ - -extern const struct v850_operand v850_operands[]; - -/* Values defined for the flags field of a struct v850_operand. */ - -/* This operand names a general purpose register. */ -#define V850_OPERAND_REG 0x01 - -/* This operand is the ep register. */ -#define V850_OPERAND_EP 0x02 - -/* This operand names a system register. */ -#define V850_OPERAND_SRG 0x04 - -/* Prologue eilogue type instruction, V850E specific. */ -#define V850E_OPERAND_REG_LIST 0x08 - -/* This operand names a condition code used in the setf instruction. */ -#define V850_OPERAND_CC 0x10 - -#define V850_OPERAND_FLOAT_CC 0x20 - -/* This operand names a vector purpose register. */ -#define V850_OPERAND_VREG 0x40 - -/* 16 bit immediate follows instruction, V850E specific. */ -#define V850E_IMMEDIATE16 0x80 - -/* hi16 bit immediate follows instruction, V850E specific. */ -#define V850E_IMMEDIATE16HI 0x100 - -/* 23 bit immediate follows instruction, V850E specific. */ -#define V850E_IMMEDIATE23 0x200 - -/* 32 bit immediate follows instruction, V850E specific. */ -#define V850E_IMMEDIATE32 0x400 - -/* This is a relaxable operand. Only used for D9->D22 branch relaxing - right now. We may need others in the future (or maybe handle them like - promoted operands on the mn10300?). */ -#define V850_OPERAND_RELAX 0x800 - -/* This operand takes signed values. */ -#define V850_OPERAND_SIGNED 0x1000 - -/* This operand is a displacement. */ -#define V850_OPERAND_DISP 0x2000 - -/* This operand is a PC displacement. */ -#define V850_PCREL 0x4000 - -/* The register specified must be even number. */ -#define V850_REG_EVEN 0x8000 - -/* The register specified must not be r0. */ -#define V850_NOT_R0 0x20000 - -/* The register specified must not be 0. */ -#define V850_NOT_IMM0 0x40000 - -/* The condition code must not be SA CONDITION. */ -#define V850_NOT_SA 0x80000 - -/* The operand has '!' prefix. */ -#define V850_OPERAND_BANG 0x100000 - -/* The operand has '%' prefix. */ -#define V850_OPERAND_PERCENT 0x200000 - -/* This operand is a cache oparation. */ -#define V850_OPERAND_CACHEOP 0x400000 - -/* This operand is a prefetch oparation. */ -#define V850_OPERAND_PREFOP 0x800000 - -/* A PC-relative displacement where a positive value indicates a backwards displacement. */ -#define V850_INVERSE_PCREL 0x1000000 - -extern int v850_msg_is_out_of_range (const char *); - -#endif /* V850_H */ diff --git a/include/opcode/vax.h b/include/opcode/vax.h deleted file mode 100644 index f5cdd24..0000000 --- a/include/opcode/vax.h +++ /dev/null @@ -1,383 +0,0 @@ -/* Vax opcde list. - Copyright 1989, 1991, 1992, 1995, 2010 Free Software Foundation, Inc. - - This file is part of GDB and GAS. - - GDB and GAS are free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GDB and GAS are distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GDB or GAS; see the file COPYING3. If not, write to - the Free Software Foundation, 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -#ifndef vax_opcodeT -#define vax_opcodeT int -#endif /* no vax_opcodeT */ - -struct vot_wot /* vax opcode table: wot to do with this */ - /* particular opcode */ -{ - const char *args; /* how to compile said opcode */ - vax_opcodeT code; /* op-code (may be > 8 bits!) */ -}; - -struct vot /* vax opcode text */ -{ - const char *name; /* opcode name: lowercase string [key] */ - struct vot_wot detail; /* rest of opcode table [datum] */ -}; - -#define vot_how args -#define vot_code code -#define vot_detail detail -#define vot_name name - -static const struct vot -votstrs[] = -{ -{ "halt", {"", 0x00 } }, -{ "nop", {"", 0x01 } }, -{ "rei", {"", 0x02 } }, -{ "bpt", {"", 0x03 } }, -{ "ret", {"", 0x04 } }, -{ "rsb", {"", 0x05 } }, -{ "ldpctx", {"", 0x06 } }, -{ "svpctx", {"", 0x07 } }, -{ "cvtps", {"rwabrwab", 0x08 } }, -{ "cvtsp", {"rwabrwab", 0x09 } }, -{ "index", {"rlrlrlrlrlwl", 0x0a } }, -{ "crc", {"abrlrwab", 0x0b } }, -{ "prober", {"rbrwab", 0x0c } }, -{ "probew", {"rbrwab", 0x0d } }, -{ "insque", {"abab", 0x0e } }, -{ "remque", {"abwl", 0x0f } }, -{ "bsbb", {"bb", 0x10 } }, -{ "brb", {"bb", 0x11 } }, -{ "bneq", {"bb", 0x12 } }, -{ "bnequ", {"bb", 0x12 } }, -{ "beql", {"bb", 0x13 } }, -{ "beqlu", {"bb", 0x13 } }, -{ "bgtr", {"bb", 0x14 } }, -{ "bleq", {"bb", 0x15 } }, -{ "jsb", {"ab", 0x16 } }, -{ "jmp", {"ab", 0x17 } }, -{ "bgeq", {"bb", 0x18 } }, -{ "blss", {"bb", 0x19 } }, -{ "bgtru", {"bb", 0x1a } }, -{ "blequ", {"bb", 0x1b } }, -{ "bvc", {"bb", 0x1c } }, -{ "bvs", {"bb", 0x1d } }, -{ "bcc", {"bb", 0x1e } }, -{ "bgequ", {"bb", 0x1e } }, -{ "blssu", {"bb", 0x1f } }, -{ "bcs", {"bb", 0x1f } }, -{ "addp4", {"rwabrwab", 0x20 } }, -{ "addp6", {"rwabrwabrwab", 0x21 } }, -{ "subp4", {"rwabrwab", 0x22 } }, -{ "subp6", {"rwabrwabrwab", 0x23 } }, -{ "cvtpt", {"rwababrwab", 0x24 } }, -{ "mulp", {"rwabrwabrwab", 0x25 } }, -{ "cvttp", {"rwababrwab", 0x26 } }, -{ "divp", {"rwabrwabrwab", 0x27 } }, -{ "movc3", {"rwabab", 0x28 } }, -{ "cmpc3", {"rwabab", 0x29 } }, -{ "scanc", {"rwababrb", 0x2a } }, -{ "spanc", {"rwababrb", 0x2b } }, -{ "movc5", {"rwabrbrwab", 0x2c } }, -{ "cmpc5", {"rwabrbrwab", 0x2d } }, -{ "movtc", {"rwabrbabrwab", 0x2e } }, -{ "movtuc", {"rwabrbabrwab", 0x2f } }, -{ "bsbw", {"bw", 0x30 } }, -{ "brw", {"bw", 0x31 } }, -{ "cvtwl", {"rwwl", 0x32 } }, -{ "cvtwb", {"rwwb", 0x33 } }, -{ "movp", {"rwabab", 0x34 } }, -{ "cmpp3", {"rwabab", 0x35 } }, -{ "cvtpl", {"rwabwl", 0x36 } }, -{ "cmpp4", {"rwabrwab", 0x37 } }, -{ "editpc", {"rwababab", 0x38 } }, -{ "matchc", {"rwabrwab", 0x39 } }, -{ "locc", {"rbrwab", 0x3a } }, -{ "skpc", {"rbrwab", 0x3b } }, -{ "movzwl", {"rwwl", 0x3c } }, -{ "acbw", {"rwrwmwbw", 0x3d } }, -{ "movaw", {"awwl", 0x3e } }, -{ "pushaw", {"aw", 0x3f } }, -{ "addf2", {"rfmf", 0x40 } }, -{ "addf3", {"rfrfwf", 0x41 } }, -{ "subf2", {"rfmf", 0x42 } }, -{ "subf3", {"rfrfwf", 0x43 } }, -{ "mulf2", {"rfmf", 0x44 } }, -{ "mulf3", {"rfrfwf", 0x45 } }, -{ "divf2", {"rfmf", 0x46 } }, -{ "divf3", {"rfrfwf", 0x47 } }, -{ "cvtfb", {"rfwb", 0x48 } }, -{ "cvtfw", {"rfww", 0x49 } }, -{ "cvtfl", {"rfwl", 0x4a } }, -{ "cvtrfl", {"rfwl", 0x4b } }, -{ "cvtbf", {"rbwf", 0x4c } }, -{ "cvtwf", {"rwwf", 0x4d } }, -{ "cvtlf", {"rlwf", 0x4e } }, -{ "acbf", {"rfrfmfbw", 0x4f } }, -{ "movf", {"rfwf", 0x50 } }, -{ "cmpf", {"rfrf", 0x51 } }, -{ "mnegf", {"rfwf", 0x52 } }, -{ "tstf", {"rf", 0x53 } }, -{ "emodf", {"rfrbrfwlwf", 0x54 } }, -{ "polyf", {"rfrwab", 0x55 } }, -{ "cvtfd", {"rfwd", 0x56 } }, - /* opcode 57 is not defined yet */ -{ "adawi", {"rwmw", 0x58 } }, - /* opcode 59 is not defined yet */ - /* opcode 5a is not defined yet */ - /* opcode 5b is not defined yet */ -{ "insqhi", {"abaq", 0x5c } }, -{ "insqti", {"abaq", 0x5d } }, -{ "remqhi", {"aqwl", 0x5e } }, -{ "remqti", {"aqwl", 0x5f } }, -{ "addd2", {"rdmd", 0x60 } }, -{ "addd3", {"rdrdwd", 0x61 } }, -{ "subd2", {"rdmd", 0x62 } }, -{ "subd3", {"rdrdwd", 0x63 } }, -{ "muld2", {"rdmd", 0x64 } }, -{ "muld3", {"rdrdwd", 0x65 } }, -{ "divd2", {"rdmd", 0x66 } }, -{ "divd3", {"rdrdwd", 0x67 } }, -{ "cvtdb", {"rdwb", 0x68 } }, -{ "cvtdw", {"rdww", 0x69 } }, -{ "cvtdl", {"rdwl", 0x6a } }, -{ "cvtrdl", {"rdwl", 0x6b } }, -{ "cvtbd", {"rbwd", 0x6c } }, -{ "cvtwd", {"rwwd", 0x6d } }, -{ "cvtld", {"rlwd", 0x6e } }, -{ "acbd", {"rdrdmdbw", 0x6f } }, -{ "movd", {"rdwd", 0x70 } }, -{ "cmpd", {"rdrd", 0x71 } }, -{ "mnegd", {"rdwd", 0x72 } }, -{ "tstd", {"rd", 0x73 } }, -{ "emodd", {"rdrbrdwlwd", 0x74 } }, -{ "polyd", {"rdrwab", 0x75 } }, -{ "cvtdf", {"rdwf", 0x76 } }, - /* opcode 77 is not defined yet */ -{ "ashl", {"rbrlwl", 0x78 } }, -{ "ashq", {"rbrqwq", 0x79 } }, -{ "emul", {"rlrlrlwq", 0x7a } }, -{ "ediv", {"rlrqwlwl", 0x7b } }, -{ "clrd", {"wd", 0x7c } }, -{ "clrg", {"wg", 0x7c } }, -{ "clrq", {"wd", 0x7c } }, -{ "movq", {"rqwq", 0x7d } }, -{ "movaq", {"aqwl", 0x7e } }, -{ "movad", {"adwl", 0x7e } }, -{ "pushaq", {"aq", 0x7f } }, -{ "pushad", {"ad", 0x7f } }, -{ "addb2", {"rbmb", 0x80 } }, -{ "addb3", {"rbrbwb", 0x81 } }, -{ "subb2", {"rbmb", 0x82 } }, -{ "subb3", {"rbrbwb", 0x83 } }, -{ "mulb2", {"rbmb", 0x84 } }, -{ "mulb3", {"rbrbwb", 0x85 } }, -{ "divb2", {"rbmb", 0x86 } }, -{ "divb3", {"rbrbwb", 0x87 } }, -{ "bisb2", {"rbmb", 0x88 } }, -{ "bisb3", {"rbrbwb", 0x89 } }, -{ "bicb2", {"rbmb", 0x8a } }, -{ "bicb3", {"rbrbwb", 0x8b } }, -{ "xorb2", {"rbmb", 0x8c } }, -{ "xorb3", {"rbrbwb", 0x8d } }, -{ "mnegb", {"rbwb", 0x8e } }, -{ "caseb", {"rbrbrb", 0x8f } }, -{ "movb", {"rbwb", 0x90 } }, -{ "cmpb", {"rbrb", 0x91 } }, -{ "mcomb", {"rbwb", 0x92 } }, -{ "bitb", {"rbrb", 0x93 } }, -{ "clrb", {"wb", 0x94 } }, -{ "tstb", {"rb", 0x95 } }, -{ "incb", {"mb", 0x96 } }, -{ "decb", {"mb", 0x97 } }, -{ "cvtbl", {"rbwl", 0x98 } }, -{ "cvtbw", {"rbww", 0x99 } }, -{ "movzbl", {"rbwl", 0x9a } }, -{ "movzbw", {"rbww", 0x9b } }, -{ "rotl", {"rbrlwl", 0x9c } }, -{ "acbb", {"rbrbmbbw", 0x9d } }, -{ "movab", {"abwl", 0x9e } }, -{ "pushab", {"ab", 0x9f } }, -{ "addw2", {"rwmw", 0xa0 } }, -{ "addw3", {"rwrwww", 0xa1 } }, -{ "subw2", {"rwmw", 0xa2 } }, -{ "subw3", {"rwrwww", 0xa3 } }, -{ "mulw2", {"rwmw", 0xa4 } }, -{ "mulw3", {"rwrwww", 0xa5 } }, -{ "divw2", {"rwmw", 0xa6 } }, -{ "divw3", {"rwrwww", 0xa7 } }, -{ "bisw2", {"rwmw", 0xa8 } }, -{ "bisw3", {"rwrwww", 0xa9 } }, -{ "bicw2", {"rwmw", 0xaa } }, -{ "bicw3", {"rwrwww", 0xab } }, -{ "xorw2", {"rwmw", 0xac } }, -{ "xorw3", {"rwrwww", 0xad } }, -{ "mnegw", {"rwww", 0xae } }, -{ "casew", {"rwrwrw", 0xaf } }, -{ "movw", {"rwww", 0xb0 } }, -{ "cmpw", {"rwrw", 0xb1 } }, -{ "mcomw", {"rwww", 0xb2 } }, -{ "bitw", {"rwrw", 0xb3 } }, -{ "clrw", {"ww", 0xb4 } }, -{ "tstw", {"rw", 0xb5 } }, -{ "incw", {"mw", 0xb6 } }, -{ "decw", {"mw", 0xb7 } }, -{ "bispsw", {"rw", 0xb8 } }, -{ "bicpsw", {"rw", 0xb9 } }, -{ "popr", {"rw", 0xba } }, -{ "pushr", {"rw", 0xbb } }, -{ "chmk", {"rw", 0xbc } }, -{ "chme", {"rw", 0xbd } }, -{ "chms", {"rw", 0xbe } }, -{ "chmu", {"rw", 0xbf } }, -{ "addl2", {"rlml", 0xc0 } }, -{ "addl3", {"rlrlwl", 0xc1 } }, -{ "subl2", {"rlml", 0xc2 } }, -{ "subl3", {"rlrlwl", 0xc3 } }, -{ "mull2", {"rlml", 0xc4 } }, -{ "mull3", {"rlrlwl", 0xc5 } }, -{ "divl2", {"rlml", 0xc6 } }, -{ "divl3", {"rlrlwl", 0xc7 } }, -{ "bisl2", {"rlml", 0xc8 } }, -{ "bisl3", {"rlrlwl", 0xc9 } }, -{ "bicl2", {"rlml", 0xca } }, -{ "bicl3", {"rlrlwl", 0xcb } }, -{ "xorl2", {"rlml", 0xcc } }, -{ "xorl3", {"rlrlwl", 0xcd } }, -{ "mnegl", {"rlwl", 0xce } }, -{ "casel", {"rlrlrl", 0xcf } }, -{ "movl", {"rlwl", 0xd0 } }, -{ "cmpl", {"rlrl", 0xd1 } }, -{ "mcoml", {"rlwl", 0xd2 } }, -{ "bitl", {"rlrl", 0xd3 } }, -{ "clrf", {"wf", 0xd4 } }, -{ "clrl", {"wl", 0xd4 } }, -{ "tstl", {"rl", 0xd5 } }, -{ "incl", {"ml", 0xd6 } }, -{ "decl", {"ml", 0xd7 } }, -{ "adwc", {"rlml", 0xd8 } }, -{ "sbwc", {"rlml", 0xd9 } }, -{ "mtpr", {"rlrl", 0xda } }, -{ "mfpr", {"rlwl", 0xdb } }, -{ "movpsl", {"wl", 0xdc } }, -{ "pushl", {"rl", 0xdd } }, -{ "moval", {"alwl", 0xde } }, -{ "movaf", {"afwl", 0xde } }, -{ "pushal", {"al", 0xdf } }, -{ "pushaf", {"af", 0xdf } }, -{ "bbs", {"rlvbbb", 0xe0 } }, -{ "bbc", {"rlvbbb", 0xe1 } }, -{ "bbss", {"rlvbbb", 0xe2 } }, -{ "bbcs", {"rlvbbb", 0xe3 } }, -{ "bbsc", {"rlvbbb", 0xe4 } }, -{ "bbcc", {"rlvbbb", 0xe5 } }, -{ "bbssi", {"rlvbbb", 0xe6 } }, -{ "bbcci", {"rlvbbb", 0xe7 } }, -{ "blbs", {"rlbb", 0xe8 } }, -{ "blbc", {"rlbb", 0xe9 } }, -{ "ffs", {"rlrbvbwl", 0xea } }, -{ "ffc", {"rlrbvbwl", 0xeb } }, -{ "cmpv", {"rlrbvbrl", 0xec } }, -{ "cmpzv", {"rlrbvbrl", 0xed } }, -{ "extv", {"rlrbvbwl", 0xee } }, -{ "extzv", {"rlrbvbwl", 0xef } }, -{ "insv", {"rlrlrbvb", 0xf0 } }, -{ "acbl", {"rlrlmlbw", 0xf1 } }, -{ "aoblss", {"rlmlbb", 0xf2 } }, -{ "aobleq", {"rlmlbb", 0xf3 } }, -{ "sobgeq", {"mlbb", 0xf4 } }, -{ "sobgtr", {"mlbb", 0xf5 } }, -{ "cvtlb", {"rlwb", 0xf6 } }, -{ "cvtlw", {"rlww", 0xf7 } }, -{ "ashp", {"rbrwabrbrwab", 0xf8 } }, -{ "cvtlp", {"rlrwab", 0xf9 } }, -{ "callg", {"abab", 0xfa } }, -{ "calls", {"rlab", 0xfb } }, -{ "xfc", {"", 0xfc } }, - /* undefined opcodes here */ -{ "cvtdh", {"rdwh", 0x32fd } }, -{ "cvtgf", {"rgwh", 0x33fd } }, -{ "addg2", {"rgmg", 0x40fd } }, -{ "addg3", {"rgrgwg", 0x41fd } }, -{ "subg2", {"rgmg", 0x42fd } }, -{ "subg3", {"rgrgwg", 0x43fd } }, -{ "mulg2", {"rgmg", 0x44fd } }, -{ "mulg3", {"rgrgwg", 0x45fd } }, -{ "divg2", {"rgmg", 0x46fd } }, -{ "divg3", {"rgrgwg", 0x47fd } }, -{ "cvtgb", {"rgwb", 0x48fd } }, -{ "cvtgw", {"rgww", 0x49fd } }, -{ "cvtgl", {"rgwl", 0x4afd } }, -{ "cvtrgl", {"rgwl", 0x4bfd } }, -{ "cvtbg", {"rbwg", 0x4cfd } }, -{ "cvtwg", {"rwwg", 0x4dfd } }, -{ "cvtlg", {"rlwg", 0x4efd } }, -{ "acbg", {"rgrgmgbw", 0x4ffd } }, -{ "movg", {"rgwg", 0x50fd } }, -{ "cmpg", {"rgrg", 0x51fd } }, -{ "mnegg", {"rgwg", 0x52fd } }, -{ "tstg", {"rg", 0x53fd } }, -{ "emodg", {"rgrwrgwlwg", 0x54fd } }, -{ "polyg", {"rgrwab", 0x55fd } }, -{ "cvtgh", {"rgwh", 0x56fd } }, - /* undefined opcodes here */ -{ "addh2", {"rhmh", 0x60fd } }, -{ "addh3", {"rhrhwh", 0x61fd } }, -{ "subh2", {"rhmh", 0x62fd } }, -{ "subh3", {"rhrhwh", 0x63fd } }, -{ "mulh2", {"rhmh", 0x64fd } }, -{ "mulh3", {"rhrhwh", 0x65fd } }, -{ "divh2", {"rhmh", 0x66fd } }, -{ "divh3", {"rhrhwh", 0x67fd } }, -{ "cvthb", {"rhwb", 0x68fd } }, -{ "cvthw", {"rhww", 0x69fd } }, -{ "cvthl", {"rhwl", 0x6afd } }, -{ "cvtrhl", {"rhwl", 0x6bfd } }, -{ "cvtbh", {"rbwh", 0x6cfd } }, -{ "cvtwh", {"rwwh", 0x6dfd } }, -{ "cvtlh", {"rlwh", 0x6efd } }, -{ "acbh", {"rhrhmhbw", 0x6ffd } }, -{ "movh", {"rhwh", 0x70fd } }, -{ "cmph", {"rhrh", 0x71fd } }, -{ "mnegh", {"rhwh", 0x72fd } }, -{ "tsth", {"rh", 0x73fd } }, -{ "emodh", {"rhrwrhwlwh", 0x74fd } }, -{ "polyh", {"rhrwab", 0x75fd } }, -{ "cvthg", {"rhwg", 0x76fd } }, - /* undefined opcodes here */ -{ "clrh", {"wh", 0x7cfd } }, -{ "clro", {"wo", 0x7cfd } }, -{ "movo", {"rowo", 0x7dfd } }, -{ "movah", {"ahwl", 0x7efd } }, -{ "movao", {"aowl", 0x7efd } }, -{ "pushah", {"ah", 0x7ffd } }, -{ "pushao", {"ao", 0x7ffd } }, - /* undefined opcodes here */ -{ "cvtfh", {"rfwh", 0x98fd } }, -{ "cvtfg", {"rfwg", 0x99fd } }, - /* undefined opcodes here */ -{ "cvthf", {"rhwf", 0xf6fd } }, -{ "cvthd", {"rhwd", 0xf7fd } }, - /* undefined opcodes here */ -{ "bugl", {"rl", 0xfdff } }, -{ "bugw", {"rw", 0xfeff } }, - /* undefined opcodes here */ - -{ "", {"", 0} } /* empty is end sentinel */ - -}; /* votstrs */ - -/* end: vax.opcode.h */ diff --git a/include/opcode/xgate.h b/include/opcode/xgate.h deleted file mode 100644 index 8451e66..0000000 --- a/include/opcode/xgate.h +++ /dev/null @@ -1,100 +0,0 @@ -/* xgate.h -- Freescale XGATE opcode list - Copyright 2010, 2011, 2012 Free Software Foundation, Inc. - Written by Sean Keys (skeys@ipdatasys.com) - - This file is part of the GNU opcodes library. - - This library is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - It is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. - - You should have received a copy of the GNU General Public License - along with this file; see the file COPYING. If not, write to the - Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _OPCODE_XGATE_H -#define _OPCODE_XGATE_H - -/* XGATE CCR flag definitions. */ -#define XGATE_N_BIT 0x08 /* XGN - Sign Flag */ -#define XGATE_Z_BIT 0x04 /* XGZ - Zero Flag */ -#define XGATE_V_BIT 0x02 /* XGV - Overflow Flag */ -#define XGATE_C_BIT 0x01 /* XGC - Carry Flag */ - -/* Access Detail Notation - V — Vector fetch: always an aligned word read, lasts for at least one RISC core cycle - P — Program word fetch: always an aligned word read, lasts for at least one RISC core cycle - r — 8-bit data read: lasts for at least one RISC core cycle - R — 16-bit data read: lasts for at least one RISC core cycle - w — 8-bit data write: lasts for at least one RISC core cycle - W — 16-bit data write: lasts for at least one RISC core cycle - A — Alignment cycle: no read or write, lasts for zero or one RISC core cycles - f — Free cycle: no read or write, lasts for one RISC core cycles. */ -#define XGATE_CYCLE_V 0x01 -#define XGATE_CYCLE_P 0x02 -#define XGATE_CYCLE_r 0x04 -#define XGATE_CYCLE_R 0x08 -#define XGATE_CYCLE_w 0x10 -#define XGATE_CYCLE_W 0x20 -#define XGATE_CYCLE_A 0x40 -#define XGATE_CYCLE_f 0x80 - -/* XGATE operand formats as stored in the XGATE_opcode table. - They are only used by GAS to recognize operands. */ -#define XGATE_OP_INH "" /* Inherent. */ -#define XGATE_OP_TRI "r,r,r" /* Register followed by two registers. */ -#define XGATE_OP_DYA "r,r" /* Register followed by a register. */ -#define XGATE_OP_IMM16 "r,if" /* Register followed by 16-bit value. */ -#define XGATE_OP_IMM8 "r,i8" /* Register followed by 8-bit value. */ -#define XGATE_OP_IMM4 "r,i4" /* Register followed by 4-bit value. */ -#define XGATE_OP_IMM3 "i3" /* Register followed by 3-bit value. */ -#define XGATE_OP_MON "r" /* Single register. */ -#define XGATE_OP_MON_R_C "r,c" /* General register followed by ccr register. */ -#define XGATE_OP_MON_C_R "c,r" /* CCR register followed by a general register. */ -#define XGATE_OP_MON_R_P "r,p" /* General register followed by pc register. */ -#define XGATE_OP_IDR "r,r,+" /* Three registers with the third having a -/+ directive. */ -#define XGATE_OP_IDO5 "r,r,i5" /* Two general registers followed by an immediate value. */ -#define XGATE_OP_REL9 "b9" /* 9-bit value that is relative to the current pc. */ -#define XGATE_OP_REL10 "ba" /* 10-bit value that is relative to the current pc. */ -#define XGATE_OP_DYA_MON "=r" -/* Macro definitions. */ -#define XGATE_OP_IMM16mADD "r,if; addl addh" -#define XGATE_OP_IMM16mAND "r,if; andl andh" -#define XGATE_OP_IMM16mCPC "r,if; cmpl cpch" -#define XGATE_OP_IMM16mSUB "r,if; subl subh" -#define XGATE_OP_IMM16mLDW "r,if; ldl ldh" - -/* CPU variant identification. */ -#define XGATE_V1 0x1 -#define XGATE_V2 0x2 -#define XGATE_V3 0x4 - -/* The opcode table definitions. */ -struct xgate_opcode -{ - char * name; /* Op-code name. */ - char * constraints; /* Constraint chars. */ - char * format; /* Bit definitions. */ - unsigned int size; /* Opcode size in bytes. */ - unsigned int bin_opcode; /* Binary opcode with operands masked off. */ - unsigned char cycles_min; /* Minimum cpu cycles needed. */ - unsigned char cycles_max; /* Maximum cpu cycles needed. */ - unsigned char set_flags_mask; /* CCR flags set. */ - unsigned char clr_flags_mask; /* CCR flags cleared. */ - unsigned char chg_flags_mask; /* CCR flags changed. */ - unsigned char arch; /* CPU variant. */ -}; - -/* The opcode table. The table contains all the opcodes (all pages). - You can't rely on the order. */ -extern const struct xgate_opcode xgate_opcodes[]; -extern const int xgate_num_opcodes; - -#endif /* _OPCODE_XGATE_H */ diff --git a/include/os9k.h b/include/os9k.h deleted file mode 100644 index e8baee1..0000000 --- a/include/os9k.h +++ /dev/null @@ -1,181 +0,0 @@ -/* os9k.h - OS-9000 i386 module header definitions - Copyright 2000 Free Software Foundation, Inc. - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street - Fifth Floor, -Boston, MA 02110-1301, USA. */ - -#if !defined(_MODULE_H) -#define _MODULE_H - -#define _MPF386 - -/* Size of common header less parity field. */ -#define N_M_PARITY (sizeof(mh_com)-sizeof(unisgned short)) -#define OLD_M_PARITY 46 -#define M_PARITY N_M_PARITY - -#ifdef _MPF68K -#define MODSYNC 0x4afc /* Module header sync code for 680x0 processors. */ -#endif - -#ifdef _MPF386 -#define MODSYNC 0x4afc /* Module header sync code for 80386 processors. */ -#endif - -#define MODREV 1 /* Module format revision 1. */ -#define CRCCON 0x800063 /* CRC polynomial constant. */ - -/* Module access permission values. */ -#define MP_OWNER_READ 0x0001 -#define MP_OWNER_WRITE 0x0002 -#define MP_OWNER_EXEC 0x0004 -#define MP_GROUP_READ 0x0010 -#define MP_GROUP_WRITE 0x0020 -#define MP_GROUP_EXEC 0x0040 -#define MP_WORLD_READ 0x0100 -#define MP_WORLD_WRITE 0x0200 -#define MP_WORLD_EXEC 0x0400 -#define MP_WORLD_ACCESS 0x0777 -#define MP_OWNER_MASK 0x000f -#define MP_GROUP_MASK 0x00f0 -#define MP_WORLD_MASK 0x0f00 -#define MP_SYSTM_MASK 0xf000 - -/* Module Type/Language values. */ -#define MT_ANY 0 -#define MT_PROGRAM 0x0001 -#define MT_SUBROUT 0x0002 -#define MT_MULTI 0x0003 -#define MT_DATA 0x0004 -#define MT_TRAPLIB 0x000b -#define MT_SYSTEM 0x000c -#define MT_FILEMAN 0x000d -#define MT_DEVDRVR 0x000e -#define MT_DEVDESC 0x000f -#define MT_MASK 0xff00 - -#define ML_ANY 0 -#define ML_OBJECT 1 -#define ML_ICODE 2 -#define ML_PCODE 3 -#define ML_CCODE 4 -#define ML_CBLCODE 5 -#define ML_FRTNCODE 6 -#define ML_MASK 0x00ff - -#define mktypelang(type, lang) (((type) << 8) | (lang)) - -/* Module Attribute values. */ -#define MA_REENT 0x80 -#define MA_GHOST 0x40 -#define MA_SUPER 0x20 -#define MA_MASK 0xff00 -#define MR_MASK 0x00ff - -#define mkattrevs(attr, revs) (((attr) << 8) | (revs)) - -#define m_user m_owner.grp_usr.usr -#define m_group m_owner.grp_usr.grp -#define m_group_user m_owner.group_user - -/* Macro definitions for accessing module header fields. */ -#define MODNAME(mod) ((u_char*)((u_char*)mod + ((Mh_com)mod)->m_name)) -#if 0 -/* Appears not to be used, and the u_int32 typedef is gone (because it - conflicted with a Mach header. */ -#define MODSIZE(mod) ((u_int32)((Mh_com)mod)->m_size) -#endif /* 0 */ -#define MHCOM_BYTES_SIZE 80 -#define N_BADMAG(a) (((a).a_info) != MODSYNC) - -typedef struct mh_com -{ - /* Sync bytes ($4afc). */ - unsigned char m_sync[2]; - unsigned char m_sysrev[2]; /* System revision check value. */ - unsigned char m_size[4]; /* Module size. */ - unsigned char m_owner[4]; /* Group/user id. */ - unsigned char m_name[4]; /* Offset to module name. */ - unsigned char m_access[2]; /* Access permissions. */ - unsigned char m_tylan[2]; /* Type/lang. */ - unsigned char m_attrev[2]; /* Rev/attr. */ - unsigned char m_edit[2]; /* Edition. */ - unsigned char m_needs[4]; /* Module hardware requirements flags. (reserved). */ - unsigned char m_usage[4]; /* Comment string offset. */ - unsigned char m_symbol[4]; /* Symbol table offset. */ - unsigned char m_exec[4]; /* Offset to execution entry point. */ - unsigned char m_excpt[4]; /* Offset to exception entry point. */ - unsigned char m_data[4]; /* Data storage requirement. */ - unsigned char m_stack[4]; /* Stack size. */ - unsigned char m_idata[4]; /* Offset to initialized data. */ - unsigned char m_idref[4]; /* Offset to data reference lists. */ - unsigned char m_init[4]; /* Initialization routine offset. */ - unsigned char m_term[4]; /* Termination routine offset. */ - unsigned char m_ident[2]; /* Ident code for ident program. */ - char m_spare[8]; /* Reserved bytes. */ - unsigned char m_parity[2]; /* Header parity. */ -} mh_com,*Mh_com; - -/* Executable memory module. */ -typedef mh_com *Mh_exec,mh_exec; - -/* Data memory module. */ -typedef mh_com *Mh_data,mh_data; - -/* File manager memory module. */ -typedef mh_com *Mh_fman,mh_fman; - -/* Device driver module. */ -typedef mh_com *Mh_drvr,mh_drvr; - -/* Trap handler module. */ -typedef mh_com mh_trap, *Mh_trap; - -/* Device descriptor module. */ -typedef mh_com *Mh_dev,mh_dev; - -/* Configuration module. */ -typedef mh_com *Mh_config, mh_config; - -#if 0 - -#if !defined(_MODDIR_H) -/* Go get _os_fmod (and others). */ -#include -#endif - -error_code _os_crc (void *, u_int32, int *); -error_code _os_datmod (char *, u_int32, u_int16 *, u_int16 *, u_int32, void **, mh_data **); -error_code _os_get_moddir (void *, u_int32 *); -error_code _os_initdata (mh_com *, void *); -error_code _os_link (char **, mh_com **, void **, u_int16 *, u_int16 *); -error_code _os_linkm (mh_com *, void **, u_int16 *, u_int16 *); -error_code _os_load (char *, mh_com **, void **, u_int32, u_int16 *, u_int16 *, u_int32); -error_code _os_mkmodule (char *, u_int32, u_int16 *, u_int16 *, u_int32, void **, mh_com **, u_int32); -error_code _os_modaddr (void *, mh_com **); -error_code _os_setcrc (mh_com *); -error_code _os_slink (u_int32, char *, void **, void **, mh_com **); -error_code _os_slinkm (u_int32, mh_com *, void **, void **); -error_code _os_unlink (mh_com *); -error_code _os_unload (char *, u_int32); -error_code _os_tlink (u_int32, char *, void **, mh_trap **, void *, u_int32); -error_code _os_tlinkm (u_int32, mh_com *, void **, void *, u_int32); -error_code _os_iodel (mh_com *); -error_code _os_vmodul (mh_com *, mh_com *, u_int32); -#endif /* 0 */ - -#endif diff --git a/include/partition.h b/include/partition.h deleted file mode 100644 index c39873b..0000000 --- a/include/partition.h +++ /dev/null @@ -1,82 +0,0 @@ -/* List implementation of a partition of consecutive integers. - Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. - Contributed by CodeSourcery, LLC. - - This file is part of GCC. - - GCC is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GCC is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to - the Free Software Foundation, 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* This package implements a partition of consecutive integers. The - elements are partitioned into classes. Each class is represented - by one of its elements, the canonical element, which is chosen - arbitrarily from elements in the class. The principal operations - on a partition are FIND, which takes an element, determines its - class, and returns the canonical element for that class, and UNION, - which unites the two classes that contain two given elements into a - single class. - - The list implementation used here provides constant-time finds. By - storing the size of each class with the class's canonical element, - it is able to perform unions over all the classes in the partition - in O (N log N) time. */ - -#ifndef _PARTITION_H -#define _PARTITION_H - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#include "ansidecl.h" -#include - -struct partition_elem -{ - /* The next element in this class. Elements in each class form a - circular list. */ - struct partition_elem* next; - /* The canonical element that represents the class containing this - element. */ - int class_element; - /* The number of elements in this class. Valid only if this is the - canonical element for its class. */ - unsigned class_count; -}; - -typedef struct partition_def -{ - /* The number of elements in this partition. */ - int num_elements; - /* The elements in the partition. */ - struct partition_elem elements[1]; -} *partition; - -extern partition partition_new (int); -extern void partition_delete (partition); -extern int partition_union (partition, int, int); -extern void partition_print (partition, FILE*); - -/* Returns the canonical element corresponding to the class containing - ELEMENT__ in PARTITION__. */ - -#define partition_find(partition__, element__) \ - ((partition__)->elements[(element__)].class_element) - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _PARTITION_H */ diff --git a/include/paths.h b/include/paths.h deleted file mode 100644 index b1c70f5..0000000 --- a/include/paths.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _PATHS_H_ -#define _PATHS_H_ - -#define _PATH_DEV "/dev/" -#define _PATH_DEVNULL "/dev/null" -#define _PATH_DEVZERO "/dev/zero" -#define _PATH_BSHELL "/bin/sh" - -#endif /* _PATHS_H_ */ diff --git a/include/plugin-api.h b/include/plugin-api.h deleted file mode 100644 index a794a37..0000000 --- a/include/plugin-api.h +++ /dev/null @@ -1,457 +0,0 @@ -/* plugin-api.h -- External linker plugin API. */ - -/* Copyright (C) 2009-2016 Free Software Foundation, Inc. - Written by Cary Coutant . - - This file is part of binutils. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file defines the interface for writing a linker plugin, which is - described at < http://gcc.gnu.org/wiki/whopr/driver >. */ - -#ifndef PLUGIN_API_H -#define PLUGIN_API_H - -#ifdef HAVE_STDINT_H -#include -#elif defined(HAVE_INTTYPES_H) -#include -#endif -#include -#if !defined(HAVE_STDINT_H) && !defined(HAVE_INTTYPES_H) && \ - !defined(UINT64_MAX) && !defined(uint64_t) -#error can not find uint64_t type -#endif - -#ifdef __cplusplus -extern "C" -{ -#endif - -/* Status code returned by most API routines. */ - -enum ld_plugin_status -{ - LDPS_OK = 0, - LDPS_NO_SYMS, /* Attempt to get symbols that haven't been added. */ - LDPS_BAD_HANDLE, /* No claimed object associated with given handle. */ - LDPS_ERR - /* Additional Error codes TBD. */ -}; - -/* The version of the API specification. */ - -enum ld_plugin_api_version -{ - LD_PLUGIN_API_VERSION = 1 -}; - -/* The type of output file being generated by the linker. */ - -enum ld_plugin_output_file_type -{ - LDPO_REL, - LDPO_EXEC, - LDPO_DYN, - LDPO_PIE -}; - -/* An input file managed by the plugin library. */ - -struct ld_plugin_input_file -{ - const char *name; - int fd; - off_t offset; - off_t filesize; - void *handle; -}; - -/* A symbol belonging to an input file managed by the plugin library. */ - -struct ld_plugin_symbol -{ - char *name; - char *version; - int def; - int visibility; - uint64_t size; - char *comdat_key; - int resolution; -}; - -/* An object's section. */ - -struct ld_plugin_section -{ - const void* handle; - unsigned int shndx; -}; - -/* Whether the symbol is a definition, reference, or common, weak or not. */ - -enum ld_plugin_symbol_kind -{ - LDPK_DEF, - LDPK_WEAKDEF, - LDPK_UNDEF, - LDPK_WEAKUNDEF, - LDPK_COMMON -}; - -/* The visibility of the symbol. */ - -enum ld_plugin_symbol_visibility -{ - LDPV_DEFAULT, - LDPV_PROTECTED, - LDPV_INTERNAL, - LDPV_HIDDEN -}; - -/* How a symbol is resolved. */ - -enum ld_plugin_symbol_resolution -{ - LDPR_UNKNOWN = 0, - - /* Symbol is still undefined at this point. */ - LDPR_UNDEF, - - /* This is the prevailing definition of the symbol, with references from - regular object code. */ - LDPR_PREVAILING_DEF, - - /* This is the prevailing definition of the symbol, with no - references from regular objects. It is only referenced from IR - code. */ - LDPR_PREVAILING_DEF_IRONLY, - - /* This definition was pre-empted by a definition in a regular - object file. */ - LDPR_PREEMPTED_REG, - - /* This definition was pre-empted by a definition in another IR file. */ - LDPR_PREEMPTED_IR, - - /* This symbol was resolved by a definition in another IR file. */ - LDPR_RESOLVED_IR, - - /* This symbol was resolved by a definition in a regular object - linked into the main executable. */ - LDPR_RESOLVED_EXEC, - - /* This symbol was resolved by a definition in a shared object. */ - LDPR_RESOLVED_DYN, - - /* This is the prevailing definition of the symbol, with no - references from regular objects. It is only referenced from IR - code, but the symbol is exported and may be referenced from - a dynamic object (not seen at link time). */ - LDPR_PREVAILING_DEF_IRONLY_EXP -}; - -/* The plugin library's "claim file" handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_claim_file_handler) ( - const struct ld_plugin_input_file *file, int *claimed); - -/* The plugin library's "all symbols read" handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_all_symbols_read_handler) (void); - -/* The plugin library's cleanup handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_cleanup_handler) (void); - -/* The linker's interface for registering the "claim file" handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_register_claim_file) (ld_plugin_claim_file_handler handler); - -/* The linker's interface for registering the "all symbols read" handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_register_all_symbols_read) ( - ld_plugin_all_symbols_read_handler handler); - -/* The linker's interface for registering the cleanup handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_register_cleanup) (ld_plugin_cleanup_handler handler); - -/* The linker's interface for adding symbols from a claimed input file. */ - -typedef -enum ld_plugin_status -(*ld_plugin_add_symbols) (void *handle, int nsyms, - const struct ld_plugin_symbol *syms); - -/* The linker's interface for getting the input file information with - an open (possibly re-opened) file descriptor. */ - -typedef -enum ld_plugin_status -(*ld_plugin_get_input_file) (const void *handle, - struct ld_plugin_input_file *file); - -typedef -enum ld_plugin_status -(*ld_plugin_get_view) (const void *handle, const void **viewp); - -/* The linker's interface for releasing the input file. */ - -typedef -enum ld_plugin_status -(*ld_plugin_release_input_file) (const void *handle); - -/* The linker's interface for retrieving symbol resolution information. */ - -typedef -enum ld_plugin_status -(*ld_plugin_get_symbols) (const void *handle, int nsyms, - struct ld_plugin_symbol *syms); - -/* The linker's interface for adding a compiled input file. */ - -typedef -enum ld_plugin_status -(*ld_plugin_add_input_file) (const char *pathname); - -/* The linker's interface for adding a library that should be searched. */ - -typedef -enum ld_plugin_status -(*ld_plugin_add_input_library) (const char *libname); - -/* The linker's interface for adding a library path that should be searched. */ - -typedef -enum ld_plugin_status -(*ld_plugin_set_extra_library_path) (const char *path); - -/* The linker's interface for issuing a warning or error message. */ - -typedef -enum ld_plugin_status -(*ld_plugin_message) (int level, const char *format, ...); - -/* The linker's interface for retrieving the number of sections in an object. - The handle is obtained in the claim_file handler. This interface should - only be invoked in the claim_file handler. This function sets *COUNT to - the number of sections in the object. */ - -typedef -enum ld_plugin_status -(*ld_plugin_get_input_section_count) (const void* handle, unsigned int *count); - -/* The linker's interface for retrieving the section type of a specific - section in an object. This interface should only be invoked in the - claim_file handler. This function sets *TYPE to an ELF SHT_xxx value. */ - -typedef -enum ld_plugin_status -(*ld_plugin_get_input_section_type) (const struct ld_plugin_section section, - unsigned int *type); - -/* The linker's interface for retrieving the name of a specific section in - an object. This interface should only be invoked in the claim_file handler. - This function sets *SECTION_NAME_PTR to a null-terminated buffer allocated - by malloc. The plugin must free *SECTION_NAME_PTR. */ - -typedef -enum ld_plugin_status -(*ld_plugin_get_input_section_name) (const struct ld_plugin_section section, - char **section_name_ptr); - -/* The linker's interface for retrieving the contents of a specific section - in an object. This interface should only be invoked in the claim_file - handler. This function sets *SECTION_CONTENTS to point to a buffer that is - valid until clam_file handler returns. It sets *LEN to the size of the - buffer. */ - -typedef -enum ld_plugin_status -(*ld_plugin_get_input_section_contents) (const struct ld_plugin_section section, - const unsigned char **section_contents, - size_t* len); - -/* The linker's interface for specifying the desired order of sections. - The sections should be specifed using the array SECTION_LIST in the - order in which they should appear in the final layout. NUM_SECTIONS - specifies the number of entries in each array. This should be invoked - in the all_symbols_read handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_update_section_order) (const struct ld_plugin_section *section_list, - unsigned int num_sections); - -/* The linker's interface for specifying that reordering of sections is - desired so that the linker can prepare for it. This should be invoked - before update_section_order, preferably in the claim_file handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_allow_section_ordering) (void); - -/* The linker's interface for specifying that a subset of sections is - to be mapped to a unique segment. If the plugin wants to call - unique_segment_for_sections, it must call this function from a - claim_file_handler or when it is first loaded. */ - -typedef -enum ld_plugin_status -(*ld_plugin_allow_unique_segment_for_sections) (void); - -/* The linker's interface for specifying that a specific set of sections - must be mapped to a unique segment. ELF segments do not have names - and the NAME is used as the name of the newly created output section - that is then placed in the unique PT_LOAD segment. FLAGS is used to - specify if any additional segment flags need to be set. For instance, - a specific segment flag can be set to identify this segment. Unsetting - segment flags that would be set by default is not possible. The - parameter SEGMENT_ALIGNMENT when non-zero will override the default. */ - -typedef -enum ld_plugin_status -(*ld_plugin_unique_segment_for_sections) ( - const char* segment_name, - uint64_t segment_flags, - uint64_t segment_alignment, - const struct ld_plugin_section * section_list, - unsigned int num_sections); - -/* The linker's interface for retrieving the section alignment requirement - of a specific section in an object. This interface should only be invoked in the - claim_file handler. This function sets *ADDRALIGN to the ELF sh_addralign - value of the input section. */ - -typedef -enum ld_plugin_status -(*ld_plugin_get_input_section_alignment) (const struct ld_plugin_section section, - unsigned int *addralign); - -/* The linker's interface for retrieving the section size of a specific section - in an object. This interface should only be invoked in the claim_file handler. - This function sets *SECSIZE to the ELF sh_size - value of the input section. */ - -typedef -enum ld_plugin_status -(*ld_plugin_get_input_section_size) (const struct ld_plugin_section section, - uint64_t *secsize); - -enum ld_plugin_level -{ - LDPL_INFO, - LDPL_WARNING, - LDPL_ERROR, - LDPL_FATAL -}; - -/* Values for the tv_tag field of the transfer vector. */ - -enum ld_plugin_tag -{ - LDPT_NULL = 0, - LDPT_API_VERSION = 1, - LDPT_GOLD_VERSION = 2, - LDPT_LINKER_OUTPUT = 3, - LDPT_OPTION = 4, - LDPT_REGISTER_CLAIM_FILE_HOOK = 5, - LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK = 6, - LDPT_REGISTER_CLEANUP_HOOK = 7, - LDPT_ADD_SYMBOLS = 8, - LDPT_GET_SYMBOLS = 9, - LDPT_ADD_INPUT_FILE = 10, - LDPT_MESSAGE = 11, - LDPT_GET_INPUT_FILE = 12, - LDPT_RELEASE_INPUT_FILE = 13, - LDPT_ADD_INPUT_LIBRARY = 14, - LDPT_OUTPUT_NAME = 15, - LDPT_SET_EXTRA_LIBRARY_PATH = 16, - LDPT_GNU_LD_VERSION = 17, - LDPT_GET_VIEW = 18, - LDPT_GET_INPUT_SECTION_COUNT = 19, - LDPT_GET_INPUT_SECTION_TYPE = 20, - LDPT_GET_INPUT_SECTION_NAME = 21, - LDPT_GET_INPUT_SECTION_CONTENTS = 22, - LDPT_UPDATE_SECTION_ORDER = 23, - LDPT_ALLOW_SECTION_ORDERING = 24, - LDPT_GET_SYMBOLS_V2 = 25, - LDPT_ALLOW_UNIQUE_SEGMENT_FOR_SECTIONS = 26, - LDPT_UNIQUE_SEGMENT_FOR_SECTIONS = 27, - LDPT_GET_SYMBOLS_V3 = 28, - LDPT_GET_INPUT_SECTION_ALIGNMENT = 29, - LDPT_GET_INPUT_SECTION_SIZE = 30 -}; - -/* The plugin transfer vector. */ - -struct ld_plugin_tv -{ - enum ld_plugin_tag tv_tag; - union - { - int tv_val; - const char *tv_string; - ld_plugin_register_claim_file tv_register_claim_file; - ld_plugin_register_all_symbols_read tv_register_all_symbols_read; - ld_plugin_register_cleanup tv_register_cleanup; - ld_plugin_add_symbols tv_add_symbols; - ld_plugin_get_symbols tv_get_symbols; - ld_plugin_add_input_file tv_add_input_file; - ld_plugin_message tv_message; - ld_plugin_get_input_file tv_get_input_file; - ld_plugin_get_view tv_get_view; - ld_plugin_release_input_file tv_release_input_file; - ld_plugin_add_input_library tv_add_input_library; - ld_plugin_set_extra_library_path tv_set_extra_library_path; - ld_plugin_get_input_section_count tv_get_input_section_count; - ld_plugin_get_input_section_type tv_get_input_section_type; - ld_plugin_get_input_section_name tv_get_input_section_name; - ld_plugin_get_input_section_contents tv_get_input_section_contents; - ld_plugin_update_section_order tv_update_section_order; - ld_plugin_allow_section_ordering tv_allow_section_ordering; - ld_plugin_allow_unique_segment_for_sections tv_allow_unique_segment_for_sections; - ld_plugin_unique_segment_for_sections tv_unique_segment_for_sections; - ld_plugin_get_input_section_alignment tv_get_input_section_alignment; - ld_plugin_get_input_section_size tv_get_input_section_size; - } tv_u; -}; - -/* The plugin library's "onload" entry point. */ - -typedef -enum ld_plugin_status -(*ld_plugin_onload) (struct ld_plugin_tv *tv); - -#ifdef __cplusplus -} -#endif - -#endif /* !defined(PLUGIN_API_H) */ diff --git a/include/progress.h b/include/progress.h deleted file mode 100644 index 80ffbe2..0000000 --- a/include/progress.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Default definitions for progress macros. - Copyright 1994, 2010 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* The default definitions below are intended to be replaced by real - definitions, if building the tools for an interactive programming - environment. */ - -#ifndef _PROGRESS_H -#define _PROGRESS_H - -#ifndef START_PROGRESS -#define START_PROGRESS(STR,N) -#endif - -#ifndef PROGRESS -#define PROGRESS(X) -#endif - -#ifndef END_PROGRESS -#define END_PROGRESS(STR) -#endif - -#endif /* _PROGRESS_H */ diff --git a/include/pthread.h b/include/pthread.h deleted file mode 100644 index c99ad39..0000000 --- a/include/pthread.h +++ /dev/null @@ -1,456 +0,0 @@ -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2013, 2015. - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - */ - -#ifndef __PTHREAD_h -#define __PTHREAD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#if defined(_POSIX_THREADS) - -#include -#include -#include -#include - -struct _pthread_cleanup_context { - void (*_routine)(void *); - void *_arg; - int _canceltype; - struct _pthread_cleanup_context *_previous; -}; - -/* Register Fork Handlers */ -int pthread_atfork (void (*prepare)(void), void (*parent)(void), - void (*child)(void)); - -/* Mutex Initialization Attributes, P1003.1c/Draft 10, p. 81 */ - -int pthread_mutexattr_init (pthread_mutexattr_t *__attr); -int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr); -int pthread_mutexattr_getpshared (const pthread_mutexattr_t *__attr, - int *__pshared); -int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, - int __pshared); - -#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) - -/* Single UNIX Specification 2 Mutex Attributes types */ - -int pthread_mutexattr_gettype (const pthread_mutexattr_t *__attr, int *__kind); -int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind); - -#endif - -/* Initializing and Destroying a Mutex, P1003.1c/Draft 10, p. 87 */ - -int pthread_mutex_init (pthread_mutex_t *__mutex, - const pthread_mutexattr_t *__attr); -int pthread_mutex_destroy (pthread_mutex_t *__mutex); - -/* This is used to statically initialize a pthread_mutex_t. Example: - - pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - */ - -#define PTHREAD_MUTEX_INITIALIZER _PTHREAD_MUTEX_INITIALIZER - -/* Locking and Unlocking a Mutex, P1003.1c/Draft 10, p. 93 - NOTE: P1003.4b/D8 adds pthread_mutex_timedlock(), p. 29 */ - -int pthread_mutex_lock (pthread_mutex_t *__mutex); -int pthread_mutex_trylock (pthread_mutex_t *__mutex); -int pthread_mutex_unlock (pthread_mutex_t *__mutex); - -#if defined(_POSIX_TIMEOUTS) - -int pthread_mutex_timedlock (pthread_mutex_t *__mutex, - const struct timespec *__timeout); - -#endif /* _POSIX_TIMEOUTS */ - -#if __GNU_VISIBLE -/* The Issue 8 standard adds pthread_mutex_clocklock() */ -int pthread_mutex_clocklock(pthread_mutex_t *__restrict, clockid_t, - const struct timespec *__restrict); -#endif /* __GNU_VISIBLE */ - -/* Condition Variable Initialization Attributes, P1003.1c/Draft 10, p. 96 */ - -int pthread_condattr_init (pthread_condattr_t *__attr); -int pthread_condattr_destroy (pthread_condattr_t *__attr); - -int pthread_condattr_getclock (const pthread_condattr_t *__restrict __attr, - clockid_t *__restrict __clock_id); -int pthread_condattr_setclock (pthread_condattr_t *__attr, - clockid_t __clock_id); - -int pthread_condattr_getpshared (const pthread_condattr_t *__attr, - int *__pshared); -int pthread_condattr_setpshared (pthread_condattr_t *__attr, int __pshared); - -/* Initializing and Destroying a Condition Variable, P1003.1c/Draft 10, p. 87 */ - -int pthread_cond_init (pthread_cond_t *__cond, - const pthread_condattr_t *__attr); -int pthread_cond_destroy (pthread_cond_t *__mutex); - -/* This is used to statically initialize a pthread_cond_t. Example: - - pthread_cond_t cond = PTHREAD_COND_INITIALIZER; - */ - -#define PTHREAD_COND_INITIALIZER _PTHREAD_COND_INITIALIZER - -/* Broadcasting and Signaling a Condition, P1003.1c/Draft 10, p. 101 */ - -int pthread_cond_signal (pthread_cond_t *__cond); -int pthread_cond_broadcast (pthread_cond_t *__cond); - -/* Waiting on a Condition, P1003.1c/Draft 10, p. 105 */ - -int pthread_cond_wait (pthread_cond_t *__cond, pthread_mutex_t *__mutex); - -int pthread_cond_timedwait (pthread_cond_t *__cond, - pthread_mutex_t *__mutex, - const struct timespec *__abstime); - -#if __GNU_VISIBLE -/* The Issue 8 standard adds pthread_cond_clockwait() */ -int pthread_cond_clockwait(pthread_cond_t *__restrict, - pthread_mutex_t *__restrict, clockid_t, - const struct timespec *__restrict); -#endif /* __GNU_VISIBLE */ - -#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) - -/* Thread Creation Scheduling Attributes, P1003.1c/Draft 10, p. 120 */ - -int pthread_attr_setscope (pthread_attr_t *__attr, int __contentionscope); -int pthread_attr_getscope (const pthread_attr_t *__attr, - int *__contentionscope); -int pthread_attr_setinheritsched (pthread_attr_t *__attr, - int __inheritsched); -int pthread_attr_getinheritsched (const pthread_attr_t *__attr, - int *__inheritsched); -int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy); -int pthread_attr_getschedpolicy (const pthread_attr_t *__attr, - int *__policy); - -#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ - -int pthread_attr_setschedparam (pthread_attr_t *__attr, - const struct sched_param *__param); -int pthread_attr_getschedparam (const pthread_attr_t *__attr, - struct sched_param *__param); - -#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) - -/* Dynamic Thread Scheduling Parameters Access, P1003.1c/Draft 10, p. 124 */ - -int pthread_getschedparam (pthread_t __pthread, int *__policy, - struct sched_param *__param); -int pthread_setschedparam (pthread_t __pthread, int __policy, - const struct sched_param *__param); - -/* Set Scheduling Priority of a Thread */ -int pthread_setschedprio (pthread_t thread, int prio); - -#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ - -#if __GNU_VISIBLE -int pthread_getname_np(pthread_t, char *, size_t) __nonnull((2)); - -int pthread_setname_np(pthread_t, const char *) __nonnull((2)); -#endif - -#if defined(_POSIX_THREAD_PRIO_INHERIT) || defined(_POSIX_THREAD_PRIO_PROTECT) - -/* Mutex Initialization Scheduling Attributes, P1003.1c/Draft 10, p. 128 */ - -int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, - int __protocol); -int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *__attr, - int *__protocol); -int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, - int __prioceiling); -int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *__attr, - int *__prioceiling); - -#endif /* _POSIX_THREAD_PRIO_INHERIT || _POSIX_THREAD_PRIO_PROTECT */ - -#if defined(_POSIX_THREAD_PRIO_PROTECT) - -/* Change the Priority Ceiling of a Mutex, P1003.1c/Draft 10, p. 131 */ - -int pthread_mutex_setprioceiling (pthread_mutex_t *__mutex, - int __prioceiling, int *__old_ceiling); -int pthread_mutex_getprioceiling (const pthread_mutex_t *__restrict __mutex, - int *__prioceiling); - -#endif /* _POSIX_THREAD_PRIO_PROTECT */ - -/* Thread Creation Attributes, P1003.1c/Draft 10, p, 140 */ - -int pthread_attr_init (pthread_attr_t *__attr); -int pthread_attr_destroy (pthread_attr_t *__attr); -int pthread_attr_setstack (pthread_attr_t *attr, - void *__stackaddr, size_t __stacksize); -int pthread_attr_getstack (const pthread_attr_t *attr, - void **__stackaddr, size_t *__stacksize); -int pthread_attr_getstacksize (const pthread_attr_t *__attr, - size_t *__stacksize); -int pthread_attr_setstacksize (pthread_attr_t *__attr, size_t __stacksize); -int pthread_attr_getstackaddr (const pthread_attr_t *__attr, - void **__stackaddr); -int pthread_attr_setstackaddr (pthread_attr_t *__attr, void *__stackaddr); -int pthread_attr_getdetachstate (const pthread_attr_t *__attr, - int *__detachstate); -int pthread_attr_setdetachstate (pthread_attr_t *__attr, int __detachstate); -int pthread_attr_getguardsize (const pthread_attr_t *__attr, - size_t *__guardsize); -int pthread_attr_setguardsize (pthread_attr_t *__attr, size_t __guardsize); - -/* POSIX thread APIs beyond the POSIX standard but provided - * in GNU/Linux. They may be provided by other OSes for - * compatibility. - */ -#if __GNU_VISIBLE -#if defined(__rtems__) -int pthread_attr_setaffinity_np (pthread_attr_t *__attr, - size_t __cpusetsize, - const cpu_set_t *__cpuset); -int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, - size_t __cpusetsize, cpu_set_t *__cpuset); - -int pthread_setaffinity_np (pthread_t __id, size_t __cpusetsize, - const cpu_set_t *__cpuset); -int pthread_getaffinity_np (const pthread_t __id, size_t __cpusetsize, - cpu_set_t *__cpuset); - -int pthread_getattr_np (pthread_t __id, pthread_attr_t *__attr); -#endif /* defined(__rtems__) */ -#endif /* __GNU_VISIBLE */ - -/* Thread Creation, P1003.1c/Draft 10, p. 144 */ - -int pthread_create (pthread_t *__pthread, const pthread_attr_t *__attr, - void *(*__start_routine)(void *), void *__arg); - -/* Wait for Thread Termination, P1003.1c/Draft 10, p. 147 */ - -int pthread_join (pthread_t __pthread, void **__value_ptr); - -/* Detaching a Thread, P1003.1c/Draft 10, p. 149 */ - -int pthread_detach (pthread_t __pthread); - -/* Thread Termination, p1003.1c/Draft 10, p. 150 */ - -void pthread_exit (void *__value_ptr) __dead2; - -/* Get Calling Thread's ID, p1003.1c/Draft 10, p. XXX */ - -pthread_t pthread_self (void); - -/* Compare Thread IDs, p1003.1c/Draft 10, p. 153 */ - -int pthread_equal (pthread_t __t1, pthread_t __t2); - -/* Retrieve ID of a Thread's CPU Time Clock */ -int pthread_getcpuclockid (pthread_t thread, clockid_t *clock_id); - -/* Get/Set Current Thread's Concurrency Level */ -int pthread_setconcurrency (int new_level); -int pthread_getconcurrency (void); - -#if __BSD_VISIBLE || __GNU_VISIBLE -void pthread_yield (void); -#endif - -/* Dynamic Package Initialization */ - -/* This is used to statically initialize a pthread_once_t. Example: - - pthread_once_t once = PTHREAD_ONCE_INIT; - - NOTE: This is named inconsistently -- it should be INITIALIZER. */ - -#define PTHREAD_ONCE_INIT _PTHREAD_ONCE_INIT - -int pthread_once (pthread_once_t *__once_control, - void (*__init_routine)(void)); - -/* Thread-Specific Data Key Create, P1003.1c/Draft 10, p. 163 */ - -int pthread_key_create (pthread_key_t *__key, - void (*__destructor)(void *)); - -/* Thread-Specific Data Management, P1003.1c/Draft 10, p. 165 */ - -int pthread_setspecific (pthread_key_t __key, const void *__value); -void * pthread_getspecific (pthread_key_t __key); - -/* Thread-Specific Data Key Deletion, P1003.1c/Draft 10, p. 167 */ - -int pthread_key_delete (pthread_key_t __key); - -/* Execution of a Thread, P1003.1c/Draft 10, p. 181 */ - -#define PTHREAD_CANCEL_ENABLE 0 -#define PTHREAD_CANCEL_DISABLE 1 - -#define PTHREAD_CANCEL_DEFERRED 0 -#define PTHREAD_CANCEL_ASYNCHRONOUS 1 - -#define PTHREAD_CANCELED ((void *) -1) - -int pthread_cancel (pthread_t __pthread); - -/* Setting Cancelability State, P1003.1c/Draft 10, p. 183 */ - -int pthread_setcancelstate (int __state, int *__oldstate); -int pthread_setcanceltype (int __type, int *__oldtype); -void pthread_testcancel (void); - -/* Establishing Cancellation Handlers, P1003.1c/Draft 10, p. 184 */ - -void _pthread_cleanup_push (struct _pthread_cleanup_context *_context, - void (*_routine)(void *), void *_arg); - -void _pthread_cleanup_pop (struct _pthread_cleanup_context *_context, - int _execute); - -/* It is intentional to open and close the scope in two different macros */ -#define pthread_cleanup_push(_routine, _arg) \ - do { \ - struct _pthread_cleanup_context _pthread_clup_ctx; \ - _pthread_cleanup_push(&_pthread_clup_ctx, (_routine), (_arg)) - -#define pthread_cleanup_pop(_execute) \ - _pthread_cleanup_pop(&_pthread_clup_ctx, (_execute)); \ - } while (0) - -#if __GNU_VISIBLE -void _pthread_cleanup_push_defer (struct _pthread_cleanup_context *_context, - void (*_routine)(void *), void *_arg); - -void _pthread_cleanup_pop_restore (struct _pthread_cleanup_context *_context, - int _execute); - -/* It is intentional to open and close the scope in two different macros */ -#define pthread_cleanup_push_defer_np(_routine, _arg) \ - do { \ - struct _pthread_cleanup_context _pthread_clup_ctx; \ - _pthread_cleanup_push_defer(&_pthread_clup_ctx, (_routine), (_arg)) - -#define pthread_cleanup_pop_restore_np(_execute) \ - _pthread_cleanup_pop_restore(&_pthread_clup_ctx, (_execute)); \ - } while (0) -#endif /* __GNU_VISIBLE */ - -#if defined(_POSIX_THREAD_CPUTIME) - -/* Accessing a Thread CPU-time Clock, P1003.4b/D8, p. 58 */ - -int pthread_getcpuclockid (pthread_t __pthread_id, clockid_t *__clock_id); - -#endif /* defined(_POSIX_THREAD_CPUTIME) */ - - -#endif /* defined(_POSIX_THREADS) */ - -#if defined(_POSIX_BARRIERS) - -int pthread_barrierattr_init (pthread_barrierattr_t *__attr); -int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr); -int pthread_barrierattr_getpshared (const pthread_barrierattr_t *__attr, - int *__pshared); -int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, - int __pshared); - -#define PTHREAD_BARRIER_SERIAL_THREAD -1 - -int pthread_barrier_init (pthread_barrier_t *__barrier, - const pthread_barrierattr_t *__attr, - unsigned __count); -int pthread_barrier_destroy (pthread_barrier_t *__barrier); -int pthread_barrier_wait (pthread_barrier_t *__barrier); - -#endif /* defined(_POSIX_BARRIERS) */ - -#if defined(_POSIX_SPIN_LOCKS) - -int pthread_spin_init (pthread_spinlock_t *__spinlock, int __pshared); -int pthread_spin_destroy (pthread_spinlock_t *__spinlock); -int pthread_spin_lock (pthread_spinlock_t *__spinlock); -int pthread_spin_trylock (pthread_spinlock_t *__spinlock); -int pthread_spin_unlock (pthread_spinlock_t *__spinlock); - -#endif /* defined(_POSIX_SPIN_LOCKS) */ - -#if defined(_POSIX_READER_WRITER_LOCKS) - -/* This is used to statically initialize a pthread_rwlock_t. Example: - - pthread_mutex_t mutex = PTHREAD_RWLOCK_INITIALIZER; - */ - -#define PTHREAD_RWLOCK_INITIALIZER _PTHREAD_RWLOCK_INITIALIZER - -int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr); -int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr); -int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *__attr, - int *__pshared); -int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, - int __pshared); - -int pthread_rwlock_init (pthread_rwlock_t *__rwlock, - const pthread_rwlockattr_t *__attr); -int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock); -int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock); -int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock); -int pthread_rwlock_timedrdlock (pthread_rwlock_t *__rwlock, - const struct timespec *__abstime); -int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock); -int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock); -int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock); -int pthread_rwlock_timedwrlock (pthread_rwlock_t *__rwlock, - const struct timespec *__abstime); - -#if __GNU_VISIBLE -/* The Issue 8 standard adds pthread_rwlock_clockrdlock() -* and pthread_rwlock_clockwrlock()*/ -int pthread_rwlock_clockrdlock(pthread_rwlock_t *__restrict, clockid_t, - const struct timespec *__restrict); -int pthread_rwlock_clockwrlock(pthread_rwlock_t *__restrict, clockid_t, - const struct timespec *__restrict); -#endif /* __GNU_VISIBLE */ - -#endif /* defined(_POSIX_READER_WRITER_LOCKS) */ - - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/include/pwd.h b/include/pwd.h deleted file mode 100644 index 45d1594..0000000 --- a/include/pwd.h +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * Copyright (c) 1989 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)pwd.h 5.13 (Berkeley) 5/28/91 - */ - -#ifndef _PWD_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _PWD_H_ - -#include -#include - -#if __BSD_VISIBLE -#define _PATH_PASSWD "/etc/passwd" - -#define _PASSWORD_LEN 128 /* max length, not counting NULL */ -#endif - -struct passwd { - char *pw_name; /* user name */ - char *pw_passwd; /* encrypted password */ - uid_t pw_uid; /* user uid */ - gid_t pw_gid; /* user gid */ - char *pw_comment; /* comment */ - char *pw_gecos; /* Honeywell login info */ - char *pw_dir; /* home directory */ - char *pw_shell; /* default shell */ -}; - -struct passwd *getpwuid (uid_t); -struct passwd *getpwnam (const char *); - -#ifndef __INSIDE_CYGWIN__ -#if __MISC_VISIBLE || __POSIX_VISIBLE -int getpwnam_r (const char *, struct passwd *, - char *, size_t , struct passwd **); -int getpwuid_r (uid_t, struct passwd *, char *, - size_t, struct passwd **); -#endif - -#if __MISC_VISIBLE || __XSI_VISIBLE >= 4 -struct passwd *getpwent (void); -void setpwent (void); -void endpwent (void); -#endif - -#if __BSD_VISIBLE -int setpassent (int); -#endif -#endif /*!__INSIDE_CYGWIN__*/ - -#ifdef __cplusplus -} -#endif -#endif /* _PWD_H_ */ diff --git a/include/reent.h b/include/reent.h deleted file mode 100644 index 23d572c..0000000 --- a/include/reent.h +++ /dev/null @@ -1,188 +0,0 @@ -/* This header file provides the reentrancy. */ - -/* The reentrant system calls here serve two purposes: - - 1) Provide reentrant versions of the system calls the ANSI C library - requires. - 2) Provide these system calls in a namespace clean way. - - It is intended that *all* system calls that the ANSI C library needs - be declared here. It documents them all in one place. All library access - to the system is via some form of these functions. - - The target may provide the needed syscalls by any of the following: - - 1) Define the reentrant versions of the syscalls directly. - (eg: _open_r, _close_r, etc.). Please keep the namespace clean. - When you do this, set "syscall_dir" to "syscalls" and add - -DREENTRANT_SYSCALLS_PROVIDED to newlib_cflags in configure.host. - - 2) Define namespace clean versions of the system calls by prefixing - them with '_' (eg: _open, _close, etc.). Technically, there won't be - true reentrancy at the syscall level, but the library will be namespace - clean. - When you do this, set "syscall_dir" to "syscalls" in configure.host. - - 3) Define or otherwise provide the regular versions of the syscalls - (eg: open, close, etc.). The library won't be reentrant nor namespace - clean, but at least it will work. - When you do this, add -DMISSING_SYSCALL_NAMES to newlib_cflags in - configure.host. - - 4) Define or otherwise provide the regular versions of the syscalls, - and do not supply functional interfaces for any of the reentrant - calls. With this method, the reentrant syscalls are redefined to - directly call the regular system call without the reentrancy argument. - When you do this, specify both -DREENTRANT_SYSCALLS_PROVIDED and - -DMISSING_SYSCALL_NAMES via newlib_cflags in configure.host and do - not specify "syscall_dir". - - Stubs of the reentrant versions of the syscalls exist in the libc/reent - source directory and are provided if REENTRANT_SYSCALLS_PROVIDED isn't - defined. These stubs call the native system calls: _open, _close, etc. - if MISSING_SYSCALL_NAMES is *not* defined, otherwise they call the - non-underscored versions: open, close, etc. when MISSING_SYSCALL_NAMES - *is* defined. - - By default, newlib functions call the reentrant syscalls internally, - passing a reentrancy structure as an argument. This reentrancy structure - contains data that is thread-specific. For example, the errno value is - kept in the reentrancy structure. If multiple threads exist, each will - keep a separate errno value which is intuitive since the application flow - cannot check for failure reliably otherwise. - - The reentrant syscalls are either provided by the platform, by the - libc/reent stubs, or in the case of both MISSING_SYSCALL_NAMES and - REENTRANT_SYSCALLS_PROVIDED being defined, the calls are redefined to - simply call the regular syscalls with no reentrancy struct argument. - - A single-threaded application does not need to worry about the reentrancy - structure. It is used internally. - - A multi-threaded application needs either to manually manage reentrancy - structures or use dynamic reentrancy. - - Manually managing reentrancy structures entails calling special reentrant - versions of newlib functions that have an additional reentrancy argument. - For example, _printf_r. By convention, the first argument is the - reentrancy structure. By default, the normal version of the function - uses the default reentrancy structure: _REENT. The reentrancy structure - is passed internally, eventually to the reentrant syscalls themselves. - How the structures are stored and accessed in this model is up to the - application. - - Dynamic reentrancy is specified by the __DYNAMIC_REENT__ flag. This - flag denotes setting up a macro to replace _REENT with a function call - to __getreent(). This function needs to be implemented by the platform - and it is meant to return the reentrancy structure for the current - thread. When the regular C functions (e.g. printf) go to call internal - routines with the default _REENT structure, they end up calling with - the reentrancy structure for the thread. Thus, application code does not - need to call the _r routines nor worry about reentrancy structures. */ - -/* WARNING: All identifiers here must begin with an underscore. This file is - included by stdio.h and others and we therefore must only use identifiers - in the namespace allotted to us. */ - -#ifndef _REENT_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _REENT_H_ - -#include -#include - -#define __need_size_t -#define __need_ptrdiff_t -#include - -/* FIXME: not namespace clean */ -struct stat; -struct tms; -struct timeval; -struct timezone; - -#if defined(REENTRANT_SYSCALLS_PROVIDED) && defined(MISSING_SYSCALL_NAMES) - -#define _close_r(__reent, __fd) close(__fd) -#define _execve_r(__reent, __f, __arg, __env) execve(__f, __arg, __env) -#define _fcntl_r(__reent, __fd, __cmd, __arg) fcntl(__fd, __cmd, __arg) -#define _fork_r(__reent) fork() -#define _fstat_r(__reent, __fdes, __stat) fstat(__fdes, __stat) -#define _getpid_r(__reent) getpid() -#define _isatty_r(__reent, __desc) isatty(__desc) -#define _kill_r(__reent, __pid, __signal) kill(__pid, __signal) -#define _link_r(__reent, __oldpath, __newpath) link(__oldpath, __newpath) -#define _lseek_r(__reent, __fdes, __off, __w) lseek(__fdes, __off, __w) -#define _mkdir_r(__reent, __path, __m) mkdir(__path, __m) -#define _open_r(__reent, __path, __flag, __m) open(__path, __flag, __m) -#define _read_r(__reent, __fd, __buff, __cnt) read(__fd, __buff, __cnt) -#define _rename_r(__reent, __old, __new) rename(__old, __new) -#define _sbrk_r(__reent, __incr) sbrk(__incr) -#define _stat_r(__reent, __path, __buff) stat(__path, __buff) -#define _times_r(__reent, __time) times(__time) -#define _unlink_r(__reent, __path) unlink(__path) -#define _wait_r(__reent, __status) wait(__status) -#define _write_r(__reent, __fd, __buff, __cnt) write(__fd, __buff, __cnt) -#define _gettimeofday_r(__reent, __tp, __tzp) gettimeofday(__tp, __tzp) - -#ifdef __LARGE64_FILES -#define _lseek64_r(__reent, __fd, __off, __w) lseek64(__fd, __off, __w) -#define _fstat64_r(__reent, __fd, __buff) fstat64(__fd, __buff) -#define _open64_r(__reent, __path, __flag, __m) open64(__path, __flag, __m) -#endif - -#else -/* Reentrant versions of system calls. */ - -extern int _close_r (struct _reent *, int); -extern int _execve_r (struct _reent *, const char *, char *const *, char *const *); -extern int _fcntl_r (struct _reent *, int, int, int); -extern int _fork_r (struct _reent *); -extern int _fstat_r (struct _reent *, int, struct stat *); -extern int _getpid_r (struct _reent *); -extern int _isatty_r (struct _reent *, int); -extern int _kill_r (struct _reent *, int, int); -extern int _link_r (struct _reent *, const char *, const char *); -extern _off_t _lseek_r (struct _reent *, int, _off_t, int); -extern int _mkdir_r (struct _reent *, const char *, int); -extern int _open_r (struct _reent *, const char *, int, int); -extern _ssize_t _read_r (struct _reent *, int, void *, size_t); -extern int _rename_r (struct _reent *, const char *, const char *); -extern void *_sbrk_r (struct _reent *, ptrdiff_t); -extern int _stat_r (struct _reent *, const char *, struct stat *); -extern _CLOCK_T_ _times_r (struct _reent *, struct tms *); -extern int _unlink_r (struct _reent *, const char *); -extern int _wait_r (struct _reent *, int *); -extern _ssize_t _write_r (struct _reent *, int, const void *, size_t); - -/* This one is not guaranteed to be available on all targets. */ -extern int _gettimeofday_r (struct _reent *, struct timeval *__tp, void *__tzp); - -#ifdef __LARGE64_FILES - - -#if defined(__CYGWIN__) -#define stat64 stat -#endif -struct stat64; - -extern _off64_t _lseek64_r (struct _reent *, int, _off64_t, int); -extern int _fstat64_r (struct _reent *, int, struct stat64 *); -extern int _open64_r (struct _reent *, const char *, int, int); -extern int _stat64_r (struct _reent *, const char *, struct stat64 *); - -/* Don't pollute namespace if not building newlib. */ -#if defined (__CYGWIN__) && !defined (_LIBC) -#undef stat64 -#endif - -#endif - -#endif - -#ifdef __cplusplus -} -#endif -#endif /* _REENT_H_ */ diff --git a/include/regdef.h b/include/regdef.h deleted file mode 100644 index 8cf144b..0000000 --- a/include/regdef.h +++ /dev/null @@ -1,7 +0,0 @@ -/* regdef.h -- define register names. */ - -/* This is a standard include file for MIPS targets. Other target - probably don't define it, and attempts to include this file will - fail. */ - -#include diff --git a/include/regex.h b/include/regex.h deleted file mode 100644 index fa3e268..0000000 --- a/include/regex.h +++ /dev/null @@ -1,103 +0,0 @@ -/*- - * Copyright (c) 1992 Henry Spencer. - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Henry Spencer of the University of Toronto. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)regex.h 8.2 (Berkeley) 1/3/94 - * $FreeBSD: src/include/regex.h,v 1.4 2002/03/23 17:24:53 imp Exp $ - */ - -#ifndef _REGEX_H_ -#define _REGEX_H_ - -#include - -/* types */ -typedef off_t regoff_t; - -typedef struct { - int re_magic; - size_t re_nsub; /* number of parenthesized subexpressions */ - __const char *re_endp; /* end pointer for REG_PEND */ - struct re_guts *re_g; /* none of your business :-) */ -} regex_t; - -typedef struct { - regoff_t rm_so; /* start of match */ - regoff_t rm_eo; /* end of match */ -} regmatch_t; - -/* regcomp() flags */ -#define REG_BASIC 0000 -#define REG_EXTENDED 0001 -#define REG_ICASE 0002 -#define REG_NOSUB 0004 -#define REG_NEWLINE 0010 -#define REG_NOSPEC 0020 -#define REG_PEND 0040 -#define REG_DUMP 0200 - -/* regerror() flags */ -#define REG_NOMATCH 1 -#define REG_BADPAT 2 -#define REG_ECOLLATE 3 -#define REG_ECTYPE 4 -#define REG_EESCAPE 5 -#define REG_ESUBREG 6 -#define REG_EBRACK 7 -#define REG_EPAREN 8 -#define REG_EBRACE 9 -#define REG_BADBR 10 -#define REG_ERANGE 11 -#define REG_ESPACE 12 -#define REG_BADRPT 13 -#define REG_EMPTY 14 -#define REG_ASSERT 15 -#define REG_INVARG 16 -#define REG_ATOI 255 /* convert name to number (!) */ -#define REG_ITOA 0400 /* convert number to name (!) */ - -/* regexec() flags */ -#define REG_NOTBOL 00001 -#define REG_NOTEOL 00002 -#define REG_STARTEND 00004 -#define REG_TRACE 00400 /* tracing of execution */ -#define REG_LARGE 01000 /* force large representation */ -#define REG_BACKR 02000 /* force use of backref code */ - -__BEGIN_DECLS -int regcomp(regex_t *__restrict, const char *__restrict, int); -size_t regerror(int, const regex_t *__restrict, char *__restrict, size_t); -int regexec(const regex_t *__restrict, const char *__restrict, - size_t, regmatch_t [__restrict], int); -void regfree(regex_t *); -__END_DECLS - -#endif /* !_REGEX_H_ */ diff --git a/include/rpc/types.h b/include/rpc/types.h deleted file mode 100644 index df77a93..0000000 --- a/include/rpc/types.h +++ /dev/null @@ -1,85 +0,0 @@ - -/* - * Copyright (c) 2009, Sun Microsystems, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Sun Microsystems, Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * from: @(#)types.h 1.18 87/07/24 SMI - * from: @(#)types.h 2.3 88/08/15 4.0 RPCSRC - * $FreeBSD: src/include/rpc/types.h,v 1.10.6.1 2003/12/18 00:59:50 peter Exp $ - * $NetBSD: types.h,v 1.13 2000/06/13 01:02:44 thorpej Exp $ - */ - -/* - * Rpc additions to - */ -#ifndef _RPC_TYPES_H -#define _RPC_TYPES_H - -#include -#include - -#define __need_NULL -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(___int64_t_defined) -typedef u_int64_t u_quad_t; -typedef int64_t quad_t; -#endif /* ___int64_t_defined */ -typedef int32_t bool_t; -typedef int32_t enum_t; - -typedef u_int32_t rpcprog_t; -typedef u_int32_t rpcvers_t; -typedef u_int32_t rpcproc_t; -typedef u_int32_t rpcprot_t; -typedef u_int32_t rpcport_t; -typedef int32_t rpc_inline_t; - -#define __dontcare__ -1 - -#ifndef FALSE -# define FALSE 0 -#endif -#ifndef TRUE -# define TRUE 1 -#endif - -#ifndef mem_alloc -#define mem_alloc(bsize) calloc(1, bsize) -#endif -#ifndef mem_free -#define mem_free(ptr, bsize) free(ptr) -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* !_RPC_TYPES_H */ diff --git a/include/rpc/xdr.h b/include/rpc/xdr.h deleted file mode 100644 index 139e0c7..0000000 --- a/include/rpc/xdr.h +++ /dev/null @@ -1,389 +0,0 @@ - -/* - * Copyright (c) 2009, Sun Microsystems, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Sun Microsystems, Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * from: @(#)xdr.h 1.19 87/04/22 SMI - * from: @(#)xdr.h 2.2 88/07/29 4.0 RPCSRC - * $FreeBSD: src/include/rpc/xdr.h,v 1.23 2003/03/07 13:19:40 nectar Exp $ - * $NetBSD: xdr.h,v 1.19 2000/07/17 05:00:45 matt Exp $ - */ - -/* - * xdr.h, External Data Representation Serialization Routines. - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ - -#ifndef _RPC_XDR_H -#define _RPC_XDR_H -#include <_ansi.h> -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * XDR provides a conventional way for converting between C data - * types and an external bit-string representation. Library supplied - * routines provide for the conversion on built-in C data types. These - * routines and utility routines defined here are used to help implement - * a type encode/decode routine for each user-defined type. - * - * Each data type provides a single procedure which takes two arguments: - * - * bool_t - * xdrproc(XDR *xdrs, *argresp) - * - * xdrs is an instance of a XDR handle, to which or from which the data - * type is to be converted. argresp is a pointer to the structure to be - * converted. The XDR handle contains an operation field which indicates - * which of the operations (ENCODE, DECODE * or FREE) is to be performed. - * - * XDR_DECODE may allocate space if the pointer argresp is null. This - * data can be freed with the XDR_FREE operation. - * - * We write only one procedure per data type to make it easy - * to keep the encode and decode procedures for a data type consistent. - * In many cases the same code performs all operations on a user defined type, - * because all the hard work is done in the component type routines. - * decode as a series of calls on the nested data types. - */ - -/* - * Xdr operations. XDR_ENCODE causes the type to be encoded into the - * stream. XDR_DECODE causes the type to be extracted from the stream. - * XDR_FREE can be used to release the space allocated by an XDR_DECODE - * request. - */ -enum xdr_op -{ - XDR_ENCODE = 0, - XDR_DECODE = 1, - XDR_FREE = 2 -}; - -/* - * This is the number of bytes per unit of external data. - */ -#define BYTES_PER_XDR_UNIT (4) -#if 1 -/* faster version when BYTES_PER_XDR_UNIT is a power of two */ -# define RNDUP(x) (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1)) -#else /* old version */ -#define RNDUP(x) ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \ - * BYTES_PER_XDR_UNIT) -#endif - -/* - * The XDR handle. - * Contains operation which is being applied to the stream, - * an operations vector for the particular implementation (e.g. see xdr_mem.c), - * and two private fields for the use of the particular implementation. - */ -typedef struct __rpc_xdr -{ - enum xdr_op x_op; /* operation; fast additional param */ - const struct xdr_ops - { - /* get a long from underlying stream */ - bool_t (*x_getlong) (struct __rpc_xdr *, long *); - - /* put a long to " */ - bool_t (*x_putlong) (struct __rpc_xdr *, const long *); - - /* get some bytes from " */ - bool_t (*x_getbytes) (struct __rpc_xdr *, char *, u_int); - - /* put some bytes to " */ - bool_t (*x_putbytes) (struct __rpc_xdr *, const char *, u_int); - - /* returns bytes off from beginning */ - u_int (*x_getpostn) (struct __rpc_xdr *); - - /* lets you reposition the stream */ - bool_t (*x_setpostn) (struct __rpc_xdr *, u_int); - - /* buf quick ptr to buffered data */ - int32_t * (*x_inline) (struct __rpc_xdr *, u_int); - - /* free privates of this xdr_stream */ - void (*x_destroy) (struct __rpc_xdr *); - - /* get an int32 from this xdr_stream */ - bool_t (*x_getint32) (struct __rpc_xdr *, int32_t *); - - /* put an int32 to the underlying stream */ - bool_t (*x_putint32) (struct __rpc_xdr *, const int32_t *); - - } *x_ops; - char *x_public; /* users' data */ - void *x_private; /* pointer to private data */ - char *x_base; /* private used for position info */ - u_int x_handy; /* extra private word */ -} XDR; - -/* - * A xdrproc_t exists for each data type which is to be encoded or decoded. - * - * The second argument to the xdrproc_t is a pointer to an opaque pointer. - * The opaque pointer generally points to a structure of the data type - * to be decoded. If this pointer is 0, then the type routines should - * allocate dynamic storage of the appropriate size and return it. - * bool_t (*xdrproc_t)(XDR *, some_type *) - */ -typedef bool_t (*xdrproc_t) (XDR *, ...); - -/* - * Operations defined on a XDR handle - * - * XDR *xdrs; - * long *longp; - * char *addr; - * u_int len; - * u_int pos; - */ -#define XDR_GETINT32(xdrs, int32p) \ - (*(xdrs)->x_ops->x_getint32)(xdrs, int32p) -#define xdr_getint32(xdrs, int32p) \ - (*(xdrs)->x_ops->x_getint32)(xdrs, int32p) - -#define XDR_PUTINT32(xdrs, int32p) \ - (*(xdrs)->x_ops->x_putint32)(xdrs, int32p) -#define xdr_putint32(xdrs, int32p) \ - (*(xdrs)->x_ops->x_putint32)(xdrs, int32p) - -#define XDR_GETLONG(xdrs, longp) \ - (*(xdrs)->x_ops->x_getlong)(xdrs, longp) -#define xdr_getlong(xdrs, longp) \ - (*(xdrs)->x_ops->x_getlong)(xdrs, longp) - -#define XDR_PUTLONG(xdrs, longp) \ - (*(xdrs)->x_ops->x_putlong)(xdrs, longp) -#define xdr_putlong(xdrs, longp) \ - (*(xdrs)->x_ops->x_putlong)(xdrs, longp) - -#define XDR_GETBYTES(xdrs, addr, len) \ - (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len) -#define xdr_getbytes(xdrs, addr, len) \ - (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len) - -#define XDR_PUTBYTES(xdrs, addr, len) \ - (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len) -#define xdr_putbytes(xdrs, addr, len) \ - (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len) - -#define XDR_GETPOS(xdrs) \ - (*(xdrs)->x_ops->x_getpostn)(xdrs) -#define xdr_getpos(xdrs) \ - (*(xdrs)->x_ops->x_getpostn)(xdrs) - -#define XDR_SETPOS(xdrs, pos) \ - (*(xdrs)->x_ops->x_setpostn)(xdrs, pos) -#define xdr_setpos(xdrs, pos) \ - (*(xdrs)->x_ops->x_setpostn)(xdrs, pos) - -#define XDR_INLINE(xdrs, len) \ - (*(xdrs)->x_ops->x_inline)(xdrs, len) -#define xdr_inline(xdrs, len) \ - (*(xdrs)->x_ops->x_inline)(xdrs, len) - -#define XDR_DESTROY(xdrs) \ - do { \ - if ((xdrs)->x_ops->x_destroy) \ - (*(xdrs)->x_ops->x_destroy)(xdrs); \ - } while (0) -#define xdr_destroy(xdrs) \ - do { \ - if ((xdrs)->x_ops->x_destroy) \ - (*(xdrs)->x_ops->x_destroy)(xdrs); \ - } while (0) - -/* - * Solaris strips the '_t' from these types -- not sure why. - * But, let's be compatible. - */ -#define xdr_rpcvers(xdrs, versp) xdr_u_int32(xdrs, versp) -#define xdr_rpcprog(xdrs, progp) xdr_u_int32(xdrs, progp) -#define xdr_rpcproc(xdrs, procp) xdr_u_int32(xdrs, procp) -#define xdr_rpcprot(xdrs, protp) xdr_u_int32(xdrs, protp) -#define xdr_rpcport(xdrs, portp) xdr_u_int32(xdrs, portp) - -/* - * Support struct for discriminated unions. - * You create an array of xdrdiscrim structures, terminated with - * an entry with a null procedure pointer. The xdr_union routine gets - * the discriminant value and then searches the array of structures - * for a matching value. If a match is found the associated xdr routine - * is called to handle that part of the union. If there is - * no match, then a default routine may be called. - * If there is no match and no default routine it is an error. - */ -#define NULL_xdrproc_t ((xdrproc_t)0) -struct xdr_discrim -{ - int value; - xdrproc_t proc; -}; - -/* - * In-line routines for fast encode/decode of primitive data types. - * Caveat emptor: these use single memory cycles to get the - * data from the underlying buffer, and will fail to operate - * properly if the data is not aligned. The standard way to use these - * is to say: - * if ((buf = XDR_INLINE(xdrs, count)) == NULL) - * return (FALSE); - * <<< macro calls >>> - * where ``count'' is the number of bytes of data occupied - * by the primitive data types. - * - * N.B. and frozen for all time: each data type here uses 4 bytes - * of external representation. - */ -#define IXDR_GET_INT32(buf) ((int32_t)ntohl((u_int32_t)*(buf)++)) -#define IXDR_PUT_INT32(buf, v) (*(buf)++ =(int32_t)htonl((u_int32_t)v)) -#define IXDR_GET_U_INT32(buf) ((uint32_t)IXDR_GET_INT32(buf)) -#define IXDR_PUT_U_INT32(buf, v) IXDR_PUT_INT32((buf), ((int32_t)(v))) - -/* Warning: inline long routines are broken for 64 bit platforms. - * Because the other inline routines below are implemented in terms - * of them, they are all also broken for 64 bit platforms. - */ -#define IXDR_GET_LONG(buf) ((long)ntohl((u_int32_t)*(buf)++)) -#define IXDR_PUT_LONG(buf, v) (*(buf)++ =(int32_t)htonl((u_int32_t)v)) -#define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf)) -#define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG((buf), (v)) - -#define IXDR_GET_BOOL(buf) ((bool_t)IXDR_GET_LONG(buf)) -#define IXDR_GET_ENUM(buf, t) ((t)IXDR_GET_LONG(buf)) -#define IXDR_GET_SHORT(buf) ((short)IXDR_GET_LONG(buf)) -#define IXDR_GET_U_SHORT(buf) ((u_short)IXDR_GET_LONG(buf)) - -#define IXDR_PUT_BOOL(buf, v) IXDR_PUT_LONG((buf), (v)) -#define IXDR_PUT_ENUM(buf, v) IXDR_PUT_LONG((buf), (v)) -#define IXDR_PUT_SHORT(buf, v) IXDR_PUT_LONG((buf), (v)) -#define IXDR_PUT_U_SHORT(buf, v) IXDR_PUT_LONG((buf), (v)) - -/* - * These are the "generic" xdr routines. - */ -extern bool_t xdr_void (void); -extern bool_t xdr_short (XDR *, short *); -extern bool_t xdr_u_short (XDR *, u_short *); -extern bool_t xdr_int (XDR *, int *); -extern bool_t xdr_u_int (XDR *, u_int *); -extern bool_t xdr_long (XDR *, long *); -extern bool_t xdr_u_long (XDR *, u_long *); -extern bool_t xdr_int8_t (XDR *, int8_t *); -extern bool_t xdr_uint8_t (XDR *, uint8_t *); -extern bool_t xdr_u_int8_t (XDR *, u_int8_t *); -extern bool_t xdr_int16_t (XDR *, int16_t *); -extern bool_t xdr_uint16_t (XDR *, uint16_t *); -extern bool_t xdr_u_int16_t (XDR *, u_int16_t *); -extern bool_t xdr_int32_t (XDR *, int32_t *); -extern bool_t xdr_uint32_t (XDR *, uint32_t *); -extern bool_t xdr_u_int32_t (XDR *, u_int32_t *); -#if defined(___int64_t_defined) -extern bool_t xdr_int64_t (XDR *, int64_t *); -extern bool_t xdr_uint64_t (XDR *, uint64_t *); -extern bool_t xdr_u_int64_t (XDR *, u_int64_t *); -#endif /* ___int64_t_defined */ -extern bool_t xdr_bool (XDR *, bool_t *); -extern bool_t xdr_enum (XDR *, enum_t *); -extern bool_t xdr_array (XDR *, char **, u_int *, u_int, u_int, xdrproc_t); -extern bool_t xdr_bytes (XDR *, char **, u_int *, u_int); -extern bool_t xdr_opaque (XDR *, char *, u_int); -extern bool_t xdr_string (XDR *, char **, u_int); -extern bool_t xdr_union (XDR *, enum_t *, char *, - const struct xdr_discrim *, xdrproc_t); -extern bool_t xdr_char (XDR *, char *); -extern bool_t xdr_u_char (XDR *, u_char *); -extern bool_t xdr_vector (XDR *, char *, u_int, u_int, xdrproc_t); -extern bool_t xdr_float (XDR *, float *); -extern bool_t xdr_double (XDR *, double *); -/* extern bool_t xdr_quadruple (XDR *, long double *); */ -extern bool_t xdr_reference (XDR *, char **, u_int, xdrproc_t); -extern bool_t xdr_pointer (XDR *, char **, u_int, xdrproc_t); -extern bool_t xdr_wrapstring (XDR *, char **); -#if defined(___int64_t_defined) -extern bool_t xdr_hyper (XDR *, quad_t *); -extern bool_t xdr_u_hyper (XDR *, u_quad_t *); -extern bool_t xdr_longlong_t (XDR *, quad_t *); -extern bool_t xdr_u_longlong_t (XDR *, u_quad_t *); -#endif /* ___int64_t_defined */ -extern u_long xdr_sizeof (xdrproc_t, void *); - -/* - * Common opaque bytes objects used by many rpc protocols; - * declared here due to commonality. - */ -#define MAX_NETOBJ_SZ 1024 -struct netobj -{ - u_int n_len; - char *n_bytes; -}; -typedef struct netobj netobj; -extern bool_t xdr_netobj (XDR *, struct netobj *); - -/* - * These are the public routines for the various implementations of - * xdr streams. - */ - -/* XDR using memory buffers */ -extern void xdrmem_create (XDR *, char *, u_int, enum xdr_op); - -/* XDR using stdio library */ -#if defined(_STDIO_H_) -extern void xdrstdio_create (XDR *, FILE *, enum xdr_op); -#endif - -/* XDR pseudo records for tcp */ -extern void xdrrec_create (XDR *, u_int, u_int, void *, - int (*) (void *, void *, int), - int (*) (void *, void *, int)); - -/* make end of xdr record */ -extern bool_t xdrrec_endofrecord (XDR *, bool_t); - -/* move to beginning of next record */ -extern bool_t xdrrec_skiprecord (XDR *); - -/* true if no more input */ -extern bool_t xdrrec_eof (XDR *); -extern u_int xdrrec_readbytes (XDR *, caddr_t, u_int); - -/* free memory buffers for xdr */ -extern void xdr_free (xdrproc_t, void *); - -#ifdef __cplusplus -} -#endif - -#endif /* !_RPC_XDR_H */ diff --git a/include/safe-ctype.h b/include/safe-ctype.h deleted file mode 100644 index a6d163e..0000000 --- a/include/safe-ctype.h +++ /dev/null @@ -1,150 +0,0 @@ -/* replacement macros. - - Copyright (C) 2000-2015 Free Software Foundation, Inc. - Contributed by Zack Weinberg . - -This file is part of the libiberty library. -Libiberty is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -Libiberty is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with libiberty; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, -Boston, MA 02110-1301, USA. */ - -/* This is a compatible replacement of the standard C library's - with the following properties: - - - Implements all isxxx() macros required by C99. - - Also implements some character classes useful when - parsing C-like languages. - - Does not change behavior depending on the current locale. - - Behaves properly for all values in the range of a signed or - unsigned char. - - To avoid conflicts, this header defines the isxxx functions in upper - case, e.g. ISALPHA not isalpha. */ - -#ifndef SAFE_CTYPE_H -#define SAFE_CTYPE_H - -/* Determine host character set. */ -#define HOST_CHARSET_UNKNOWN 0 -#define HOST_CHARSET_ASCII 1 -#define HOST_CHARSET_EBCDIC 2 - -#if '\n' == 0x0A && ' ' == 0x20 && '0' == 0x30 \ - && 'A' == 0x41 && 'a' == 0x61 && '!' == 0x21 -# define HOST_CHARSET HOST_CHARSET_ASCII -#else -# if '\n' == 0x15 && ' ' == 0x40 && '0' == 0xF0 \ - && 'A' == 0xC1 && 'a' == 0x81 && '!' == 0x5A -# define HOST_CHARSET HOST_CHARSET_EBCDIC -# else -# define HOST_CHARSET HOST_CHARSET_UNKNOWN -# endif -#endif - -/* Categories. */ - -enum { - /* In C99 */ - _sch_isblank = 0x0001, /* space \t */ - _sch_iscntrl = 0x0002, /* nonprinting characters */ - _sch_isdigit = 0x0004, /* 0-9 */ - _sch_islower = 0x0008, /* a-z */ - _sch_isprint = 0x0010, /* any printing character including ' ' */ - _sch_ispunct = 0x0020, /* all punctuation */ - _sch_isspace = 0x0040, /* space \t \n \r \f \v */ - _sch_isupper = 0x0080, /* A-Z */ - _sch_isxdigit = 0x0100, /* 0-9A-Fa-f */ - - /* Extra categories useful to cpplib. */ - _sch_isidst = 0x0200, /* A-Za-z_ */ - _sch_isvsp = 0x0400, /* \n \r */ - _sch_isnvsp = 0x0800, /* space \t \f \v \0 */ - - /* Combinations of the above. */ - _sch_isalpha = _sch_isupper|_sch_islower, /* A-Za-z */ - _sch_isalnum = _sch_isalpha|_sch_isdigit, /* A-Za-z0-9 */ - _sch_isidnum = _sch_isidst|_sch_isdigit, /* A-Za-z0-9_ */ - _sch_isgraph = _sch_isalnum|_sch_ispunct, /* isprint and not space */ - _sch_iscppsp = _sch_isvsp|_sch_isnvsp, /* isspace + \0 */ - _sch_isbasic = _sch_isprint|_sch_iscppsp /* basic charset of ISO C - (plus ` and @) */ -}; - -/* Character classification. */ -extern const unsigned short _sch_istable[256]; - -#define _sch_test(c, bit) (_sch_istable[(c) & 0xff] & (unsigned short)(bit)) - -#define ISALPHA(c) _sch_test(c, _sch_isalpha) -#define ISALNUM(c) _sch_test(c, _sch_isalnum) -#define ISBLANK(c) _sch_test(c, _sch_isblank) -#define ISCNTRL(c) _sch_test(c, _sch_iscntrl) -#define ISDIGIT(c) _sch_test(c, _sch_isdigit) -#define ISGRAPH(c) _sch_test(c, _sch_isgraph) -#define ISLOWER(c) _sch_test(c, _sch_islower) -#define ISPRINT(c) _sch_test(c, _sch_isprint) -#define ISPUNCT(c) _sch_test(c, _sch_ispunct) -#define ISSPACE(c) _sch_test(c, _sch_isspace) -#define ISUPPER(c) _sch_test(c, _sch_isupper) -#define ISXDIGIT(c) _sch_test(c, _sch_isxdigit) - -#define ISIDNUM(c) _sch_test(c, _sch_isidnum) -#define ISIDST(c) _sch_test(c, _sch_isidst) -#define IS_ISOBASIC(c) _sch_test(c, _sch_isbasic) -#define IS_VSPACE(c) _sch_test(c, _sch_isvsp) -#define IS_NVSPACE(c) _sch_test(c, _sch_isnvsp) -#define IS_SPACE_OR_NUL(c) _sch_test(c, _sch_iscppsp) - -/* Character transformation. */ -extern const unsigned char _sch_toupper[256]; -extern const unsigned char _sch_tolower[256]; -#define TOUPPER(c) _sch_toupper[(c) & 0xff] -#define TOLOWER(c) _sch_tolower[(c) & 0xff] - -/* Prevent the users of safe-ctype.h from accidently using the routines - from ctype.h. Initially, the approach was to produce an error when - detecting that ctype.h has been included. But this was causing - trouble as ctype.h might get indirectly included as a result of - including another system header (for instance gnulib's stdint.h). - So we include ctype.h here and then immediately redefine its macros. */ - -#include -#undef isalpha -#define isalpha(c) do_not_use_isalpha_with_safe_ctype -#undef isalnum -#define isalnum(c) do_not_use_isalnum_with_safe_ctype -#undef iscntrl -#define iscntrl(c) do_not_use_iscntrl_with_safe_ctype -#undef isdigit -#define isdigit(c) do_not_use_isdigit_with_safe_ctype -#undef isgraph -#define isgraph(c) do_not_use_isgraph_with_safe_ctype -#undef islower -#define islower(c) do_not_use_islower_with_safe_ctype -#undef isprint -#define isprint(c) do_not_use_isprint_with_safe_ctype -#undef ispunct -#define ispunct(c) do_not_use_ispunct_with_safe_ctype -#undef isspace -#define isspace(c) do_not_use_isspace_with_safe_ctype -#undef isupper -#define isupper(c) do_not_use_isupper_with_safe_ctype -#undef isxdigit -#define isxdigit(c) do_not_use_isxdigit_with_safe_ctype -#undef toupper -#define toupper(c) do_not_use_toupper_with_safe_ctype -#undef tolower -#define tolower(c) do_not_use_tolower_with_safe_ctype - -#endif /* SAFE_CTYPE_H */ diff --git a/include/sched.h b/include/sched.h deleted file mode 100644 index 31599aa..0000000 --- a/include/sched.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2010. - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - * $Id$ - */ - -#ifndef _SCHED_H_ -#define _SCHED_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(_POSIX_PRIORITY_SCHEDULING) -/* - * XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1803 - */ -int sched_setparam( - pid_t __pid, - const struct sched_param *__param -); - -/* - * XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1800 - */ -int sched_getparam( - pid_t __pid, - struct sched_param *__param -); - -/* - * XBD 13 - Set Scheduling Policy and Scheduling Parameters, - * P1003.1b-2008, p. 1805 - */ -int sched_setscheduler( - pid_t __pid, - int __policy, - const struct sched_param *__param -); - -/* - * XBD 13 - Get Scheduling Policy, P1003.1b-2008, p. 1801 - */ -int sched_getscheduler( - pid_t __pid -); - -/* - * XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1799 - */ -int sched_get_priority_max( - int __policy -); - -int sched_get_priority_min( - int __policy -); - -/* - * XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1802 - */ -int sched_rr_get_interval( - pid_t __pid, - struct timespec *__interval -); -#endif /* _POSIX_PRIORITY_SCHEDULING */ - -#if defined(_POSIX_THREADS) || defined(_POSIX_PRIORITY_SCHEDULING) - -/* - * XBD 13 - Yield Processor, P1003.1b-2008, p. 1807 - */ -int sched_yield( void ); - -#endif /* _POSIX_THREADS or _POSIX_PRIORITY_SCHEDULING */ - -#if __GNU_VISIBLE -int sched_getcpu(void); - -/* The following functions should only be declared if the type - cpu_set_t is defined through indirect inclusion of sys/cpuset.h, - only available on some targets. */ -#ifdef _SYS_CPUSET_H_ -int sched_getaffinity (pid_t, size_t, cpu_set_t *); -int sched_get_thread_affinity (void *, size_t, cpu_set_t *); -int sched_setaffinity (pid_t, size_t, const cpu_set_t *); -int sched_set_thread_affinity (void *, size_t, const cpu_set_t *); -#endif /* _SYS_CPUSET_H_ */ - -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _SCHED_H_ */ diff --git a/include/search.h b/include/search.h deleted file mode 100644 index ed321b0..0000000 --- a/include/search.h +++ /dev/null @@ -1,64 +0,0 @@ -/* $NetBSD: search.h,v 1.12 1999/02/22 10:34:28 christos Exp $ */ -/* $FreeBSD: src/include/search.h,v 1.4 2002/03/23 17:24:53 imp Exp $ */ - -/* - * Written by J.T. Conklin - * Public domain. - */ - -#ifndef _SEARCH_H_ -#define _SEARCH_H_ - -#include -#include -#include - -typedef struct entry { - char *key; - void *data; -} ENTRY; - -typedef enum { - FIND, ENTER -} ACTION; - -typedef enum { - preorder, - postorder, - endorder, - leaf -} VISIT; - -#ifdef _SEARCH_PRIVATE -typedef struct node { - char *key; - struct node *llink, *rlink; -} node_t; -#endif - -struct hsearch_data -{ - struct internal_head *htable; - size_t htablesize; -}; - -#ifndef __compar_fn_t_defined -#define __compar_fn_t_defined -typedef int (*__compar_fn_t) (const void *, const void *); -#endif - -__BEGIN_DECLS -int hcreate(size_t); -void hdestroy(void); -ENTRY *hsearch(ENTRY, ACTION); -int hcreate_r(size_t, struct hsearch_data *); -void hdestroy_r(struct hsearch_data *); -int hsearch_r(ENTRY, ACTION, ENTRY **, struct hsearch_data *); -void *tdelete(const void *__restrict, void **__restrict, __compar_fn_t); -void tdestroy (void *, void (*)(void *)); -void *tfind(const void *, void **, __compar_fn_t); -void *tsearch(const void *, void **, __compar_fn_t); -void twalk(const void *, void (*)(const void *, VISIT, int)); -__END_DECLS - -#endif /* !_SEARCH_H_ */ diff --git a/include/setjmp.h b/include/setjmp.h deleted file mode 100644 index a2830b2..0000000 --- a/include/setjmp.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - setjmp.h - stubs for future use. -*/ - -#ifndef _SETJMP_H_ -#define _SETJMP_H_ - -#include "_ansi.h" -#include - -_BEGIN_STD_C - -#ifdef __GNUC__ -void longjmp (jmp_buf __jmpb, int __retval) - __attribute__ ((__noreturn__)); -#else -void longjmp (jmp_buf __jmpb, int __retval); -#endif -int setjmp (jmp_buf __jmpb); - -_END_STD_C - -#endif /* _SETJMP_H_ */ - diff --git a/include/sha1.h b/include/sha1.h deleted file mode 100644 index 24f3ab7..0000000 --- a/include/sha1.h +++ /dev/null @@ -1,145 +0,0 @@ -/* Declarations of functions and data types used for SHA1 sum - library functions. - Copyright (C) 2000-2015 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 3, or (at your option) any - later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef SHA1_H -# define SHA1_H 1 - -#include - -#if defined HAVE_LIMITS_H || _LIBC -# include -#endif - -#include "ansidecl.h" - -/* The following contortions are an attempt to use the C preprocessor - to determine an unsigned integral type that is 32 bits wide. An - alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but - doing that would require that the configure script compile and *run* - the resulting executable. Locally running cross-compiled executables - is usually not possible. */ - -#ifdef _LIBC -# include -typedef u_int32_t sha1_uint32; -typedef uintptr_t sha1_uintptr; -#elif defined (HAVE_SYS_TYPES_H) && defined (HAVE_STDINT_H) -#include -#include -typedef uint32_t sha1_uint32; -typedef uintptr_t sha1_uintptr; -#else -# define INT_MAX_32_BITS 2147483647 - -/* If UINT_MAX isn't defined, assume it's a 32-bit type. - This should be valid for all systems GNU cares about because - that doesn't include 16-bit systems, and only modern systems - (that certainly have ) have 64+-bit integral types. */ - -# ifndef INT_MAX -# define INT_MAX INT_MAX_32_BITS -# endif - -# if INT_MAX == INT_MAX_32_BITS - typedef unsigned int sha1_uint32; -# else -# if SHRT_MAX == INT_MAX_32_BITS - typedef unsigned short sha1_uint32; -# else -# if LONG_MAX == INT_MAX_32_BITS - typedef unsigned long sha1_uint32; -# else - /* The following line is intended to evoke an error. - Using #error is not portable enough. */ - "Cannot determine unsigned 32-bit data type." -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Structure to save state of computation between the single steps. */ -struct sha1_ctx -{ - sha1_uint32 A; - sha1_uint32 B; - sha1_uint32 C; - sha1_uint32 D; - sha1_uint32 E; - - sha1_uint32 total[2]; - sha1_uint32 buflen; - sha1_uint32 buffer[32]; -}; - - -/* Initialize structure containing state of computation. */ -extern void sha1_init_ctx (struct sha1_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is necessary that LEN is a multiple of 64!!! */ -extern void sha1_process_block (const void *buffer, size_t len, - struct sha1_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is NOT required that LEN is a multiple of 64. */ -extern void sha1_process_bytes (const void *buffer, size_t len, - struct sha1_ctx *ctx); - -/* Process the remaining bytes in the buffer and put result from CTX - in first 20 bytes following RESBUF. The result is always in little - endian byte order, so that a byte-wise output yields to the wanted - ASCII representation of the message digest. - - IMPORTANT: On some systems it is required that RESBUF be correctly - aligned for a 32 bits value. */ -extern void *sha1_finish_ctx (struct sha1_ctx *ctx, void *resbuf); - - -/* Put result from CTX in first 20 bytes following RESBUF. The result is - always in little endian byte order, so that a byte-wise output yields - to the wanted ASCII representation of the message digest. - - IMPORTANT: On some systems it is required that RESBUF is correctly - aligned for a 32 bits value. */ -extern void *sha1_read_ctx (const struct sha1_ctx *ctx, void *resbuf); - - -/* Compute SHA1 message digest for bytes read from STREAM. The - resulting message digest number will be written into the 20 bytes - beginning at RESBLOCK. */ -extern int sha1_stream (FILE *stream, void *resblock); - -/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The - result is always in little endian byte order, so that a byte-wise - output yields to the wanted ASCII representation of the message - digest. */ -extern void *sha1_buffer (const char *buffer, size_t len, void *resblock); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/signal.h b/include/signal.h deleted file mode 100644 index 23a9863..0000000 --- a/include/signal.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef _SIGNAL_H_ -#define _SIGNAL_H_ - -#include "_ansi.h" -#include -#include - -_BEGIN_STD_C - -typedef int sig_atomic_t; /* Atomic entity type (ANSI) */ -#if __BSD_VISIBLE -typedef _sig_func_ptr sig_t; /* BSD naming */ -#endif -#if __GNU_VISIBLE -typedef _sig_func_ptr sighandler_t; /* glibc naming */ -#endif - -#define SIG_DFL ((_sig_func_ptr)0) /* Default action */ -#define SIG_IGN ((_sig_func_ptr)1) /* Ignore action */ -#define SIG_ERR ((_sig_func_ptr)-1) /* Error return */ - -struct _reent; - -_sig_func_ptr _signal_r (struct _reent *, int, _sig_func_ptr); -int _raise_r (struct _reent *, int); - -#ifndef _REENT_ONLY -_sig_func_ptr signal (int, _sig_func_ptr); -int raise (int); -void psignal (int, const char *); -#endif - -_END_STD_C - -#endif /* _SIGNAL_H_ */ diff --git a/include/simple-object.h b/include/simple-object.h deleted file mode 100644 index 5bd3d06..0000000 --- a/include/simple-object.h +++ /dev/null @@ -1,204 +0,0 @@ -/* simple-object.h -- simple routines to read and write object files - Copyright (C) 2010-2015 Free Software Foundation, Inc. - Written by Ian Lance Taylor, Google. - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2, or (at your option) any -later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, 51 Franklin Street - Fifth Floor, -Boston, MA 02110-1301, USA. */ - -#ifndef SIMPLE_OBJECT_H -#define SIMPLE_OBJECT_H - -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* This header file provides four types with associated functions. - They are used to read and write object files. This is a minimal - interface, intended to support the needs of gcc without bringing in - all the power and complexity of BFD. */ - -/* The type simple_object_read * is used to read an existing object - file. */ - -typedef struct simple_object_read_struct simple_object_read; - -/* Create an simple_object_read given DESCRIPTOR, an open file - descriptor, and OFFSET, an offset within the file. The offset is - for use with archives, and should be 0 for an ordinary object file. - The descriptor must remain open until done with the returned - simple_object_read. SEGMENT_NAME is used on Mach-O and is required - on that platform: it means to only look at sections within the - segment with that name. It is ignored for other object file - formats. On error, this function returns NULL, and sets *ERRMSG to - an error string and sets *ERR to an errno value or 0 if there is no - relevant errno. */ - -extern simple_object_read * -simple_object_start_read (int descriptor, off_t offset, - const char *segment_name, const char **errmsg, - int *err); - -/* Call PFN for each section in SIMPLE_OBJECT, passing it the section - name, offset within the file of the section contents, and length of - the section contents. The offset within the file is relative to - the offset passed to simple_object_start_read. The DATA argument - to simple_object_find_sections is passed on to PFN. If PFN returns - 0, the loop is stopped and simple_object_find_sections returns. If - PFN returns non-zero, the loop continues. On success this returns - NULL. On error it returns an error string, and sets *ERR to an - errno value or 0 if there is no relevant errno. */ - -extern const char * -simple_object_find_sections (simple_object_read *simple_object, - int (*pfn) (void *data, const char *, - off_t offset, off_t length), - void *data, - int *err); - -/* Look for the section NAME in SIMPLE_OBJECT. This returns - information for the first section NAME in SIMPLE_OBJECT. Note that - calling this multiple times is inefficient; use - simple_object_find_sections instead. - - If found, return 1 and set *OFFSET to the offset in the file of the - section contents and set *LENGTH to the length of the section - contents. *OFFSET will be relative to the offset passed to - simple_object_start_read. - - If the section is not found, and no error occurs, return 0 and set - *ERRMSG to NULL. - - If an error occurs, return 0, set *ERRMSG to an error message, and - set *ERR to an errno value or 0 if there is no relevant errno. */ - -extern int -simple_object_find_section (simple_object_read *simple_object, - const char *name, off_t *offset, off_t *length, - const char **errmsg, int *err); - -/* Release all resources associated with SIMPLE_OBJECT. This does not - close the file descriptor. */ - -extern void -simple_object_release_read (simple_object_read *); - -/* The type simple_object_attributes holds the attributes of an object - file that matter for creating a file or ensuring that two files are - compatible. This is a set of magic numbers. */ - -typedef struct simple_object_attributes_struct simple_object_attributes; - -/* Fetch the attributes of SIMPLE_OBJECT. This information will - persist until simple_object_attributes_release is called, even if - SIMPLE_OBJECT is closed. On error this returns NULL, sets *ERRMSG - to an error message, and sets *ERR to an errno value or 0 if there - isn't one. */ - -extern simple_object_attributes * -simple_object_fetch_attributes (simple_object_read *simple_object, - const char **errmsg, int *err); - -/* Merge the FROM attributes into TO. If two objects with these - attributes could be linked together without error, returns NULL. - Otherwise, returns an error message, and sets *ERR to an errno - value or 0 if there isn't one. */ - -extern const char * -simple_object_attributes_merge (simple_object_attributes *to, - simple_object_attributes *from, - int *err); - -/* Release all resources associated with ATTRS. */ - -extern void -simple_object_release_attributes (simple_object_attributes *attrs); - -/* The type simple_object_write is used to create a new object file. */ - -typedef struct simple_object_write_struct simple_object_write; - -/* Start creating a new object file which is like ATTRS. You must - fetch attribute information from an existing object file before you - can create a new one. There is currently no support for creating - an object file de novo. The segment name is only used on Mach-O, - where it is required. It means that all sections are created - within that segment. It is ignored for other object file formats. - On error this function returns NULL, sets *ERRMSG to an error - message, and sets *ERR to an errno value or 0 if there isn't - one. */ - -extern simple_object_write * -simple_object_start_write (simple_object_attributes *attrs, - const char *segment_name, - const char **errmsg, int *err); - -/* The type simple_object_write_section is a handle for a section - which is being written. */ - -typedef struct simple_object_write_section_struct simple_object_write_section; - -/* Add a section to SIMPLE_OBJECT. NAME is the name of the new - section. ALIGN is the required alignment expressed as the number - of required low-order 0 bits (e.g., 2 for alignment to a 32-bit - boundary). The section is created as containing data, readable, - not writable, not executable, not loaded at runtime. On error this - returns NULL, sets *ERRMSG to an error message, and sets *ERR to an - errno value or 0 if there isn't one. */ - -extern simple_object_write_section * -simple_object_write_create_section (simple_object_write *simple_object, - const char *name, unsigned int align, - const char **errmsg, int *err); - -/* Add data BUFFER/SIZE to SECTION in SIMPLE_OBJECT. If COPY is - non-zero, the data will be copied into memory if necessary. If - COPY is zero, BUFFER must persist until SIMPLE_OBJECT is released. - On success this returns NULL. On error this returns an error - message, and sets *ERR to an errno value or 0 if there isn't - one. */ - -extern const char * -simple_object_write_add_data (simple_object_write *simple_object, - simple_object_write_section *section, - const void *buffer, size_t size, - int copy, int *err); - -/* Write the complete object file to DESCRIPTOR, an open file - descriptor. This returns NULL on success. On error this returns - an error message, and sets *ERR to an errno value or 0 if there - isn't one. */ - -extern const char * -simple_object_write_to_file (simple_object_write *simple_object, - int descriptor, int *err); - -/* Release all resources associated with SIMPLE_OBJECT, including any - simple_object_write_section's that may have been created. */ - -extern void -simple_object_release_write (simple_object_write *); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/som/ChangeLog b/include/som/ChangeLog deleted file mode 100644 index e1f1ec5..0000000 --- a/include/som/ChangeLog +++ /dev/null @@ -1,20 +0,0 @@ -2010-06-10 Tristan Gingold - - * aout.h: New file. - * clock.h: Likewise. - * lst.h: Likewise. - * reloc.h: Likewise. - * internal.h: Likewise. - -Copyright (C) 2010-2012 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - -Local Variables: -mode: change-log -left-margin: 8 -fill-column: 74 -version-control: never -End: diff --git a/include/som/aout.h b/include/som/aout.h deleted file mode 100644 index c3845ed..0000000 --- a/include/som/aout.h +++ /dev/null @@ -1,249 +0,0 @@ -/* SOM a.out definitions for BFD. - Copyright 2010 Free Software Foundation, Inc. - Contributed by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _SOM_AOUT_H -#define _SOM_AOUT_H - -#include "clock.h" - -/* Note: SOM uses bit-field in its structure. All you need to know is: - - CPUs supported by SOM (hppa) are big-endian, - - the MSB is numbered 0. */ - -struct som_external_header -{ - unsigned char system_id[2]; - unsigned char a_magic[2]; - unsigned char version_id[4]; - struct som_external_clock file_time; - unsigned char entry_space[4]; - unsigned char entry_subspace[4]; - unsigned char entry_offset[4]; - unsigned char aux_header_location[4]; - unsigned char aux_header_size[4]; - unsigned char som_length[4]; - unsigned char presumed_dp[4]; - unsigned char space_location[4]; - unsigned char space_total[4]; - unsigned char subspace_location[4]; - unsigned char subspace_total[4]; - unsigned char loader_fixup_location[4]; - unsigned char loader_fixup_total[4]; - unsigned char space_strings_location[4]; - unsigned char space_strings_size[4]; - unsigned char init_array_location[4]; - unsigned char init_array_total[4]; - unsigned char compiler_location[4]; - unsigned char compiler_total[4]; - unsigned char symbol_location[4]; - unsigned char symbol_total[4]; - unsigned char fixup_request_location[4]; - unsigned char fixup_request_total[4]; - unsigned char symbol_strings_location[4]; - unsigned char symbol_strings_size[4]; - unsigned char unloadable_sp_location[4]; - unsigned char unloadable_sp_size[4]; - unsigned char checksum[4]; -}; - -#define OLD_VERSION_ID 85082112 -#define NEW_VERSION_ID 87102412 - -#define EXECLIBMAGIC 0x0104 -#define RELOC_MAGIC 0x0106 -#define EXEC_MAGIC 0x0107 -#define SHARE_MAGIC 0x0108 -#define SHMEM_MAGIC 0x0109 -#define DEMAND_MAGIC 0x010b -#define DL_MAGIC 0x010d -#define SHL_MAGIC 0x010e - -struct som_external_aux_id -{ - unsigned char flags[4]; - unsigned char length[4]; -}; - -/* Aux id types. */ -#define VERSION_AUX_ID 6 -#define COPYRIGHT_AUX_ID 9 - -/* Aux id flags. */ -#define SOM_AUX_ID_MANDATORY (1 << 31) -#define SOM_AUX_ID_COPY (1 << 30) -#define SOM_AUX_ID_APPEND (1 << 29) -#define SOM_AUX_ID_IGNORE (1 << 28) -#define SOM_AUX_ID_TYPE_SH 0 -#define SOM_AUX_ID_TYPE_MASK 0xffff - -struct som_external_string_auxhdr -{ - struct som_external_aux_id header_id; - - /* Length of the string, without the NUL. */ - unsigned char string_length[4]; - - /* The string. */ -}; - -struct som_external_exec_auxhdr -{ - struct som_external_aux_id som_auxhdr; - - unsigned char exec_tsize[4]; - unsigned char exec_tmem[4]; - unsigned char exec_tfile[4]; - unsigned char exec_dsize[4]; - unsigned char exec_dmem[4]; - unsigned char exec_dfile[4]; - unsigned char exec_bsize[4]; - unsigned char exec_entry[4]; - unsigned char exec_flags[4]; - unsigned char exec_bfill[4]; -}; - -#define AUX_HDR_SIZE sizeof (struct som_external_exec_auxhdr) - -struct som_external_space_dictionary_record -{ - unsigned char name[4]; - unsigned char flags[4]; - unsigned char space_number[4]; - unsigned char subspace_index[4]; - unsigned char subspace_quantity[4]; - unsigned char loader_fix_index[4]; - unsigned char loader_fix_quantity[4]; - unsigned char init_pointer_index[4]; - unsigned char init_pointer_quantity[4]; -}; - -#define SOM_SPACE_IS_LOADABLE (1 << 31) -#define SOM_SPACE_IS_DEFINED (1 << 30) -#define SOM_SPACE_IS_PRIVATE (1 << 29) -#define SOM_SPACE_HAS_INTERMEDIATE_CODE (1 << 28) -#define SOM_SPACE_IS_TSPECIFIC (1 << 27) -#define SOM_SPACE_SORT_KEY_SH 8 -#define SOM_SPACE_SORT_KEY_MASK 0xff - -struct som_external_subspace_dictionary_record -{ - unsigned char space_index[4]; - unsigned char flags[4]; - unsigned char file_loc_init_value[4]; - unsigned char initialization_length[4]; - unsigned char subspace_start[4]; - unsigned char subspace_length[4]; - unsigned char alignment[4]; - unsigned char name[4]; - unsigned char fixup_request_index[4]; - unsigned char fixup_request_quantity[4]; -}; - -#define SOM_SUBSPACE_ACCESS_CONTROL_BITS_SH 25 -#define SOM_SUBSPACE_ACCESS_CONTROL_BITS_MASK 0x7f -#define SOM_SUBSPACE_MEMORY_RESIDENT (1 << 24) -#define SOM_SUBSPACE_DUP_COMMON (1 << 23) -#define SOM_SUBSPACE_IS_COMMON (1 << 22) -#define SOM_SUBSPACE_IS_LOADABLE (1 << 21) -#define SOM_SUBSPACE_QUADRANT_SH 19 -#define SOM_SUBSPACE_QUADRANT_MASK 0x3 -#define SOM_SUBSPACE_INITIALLY_FROZEN (1 << 18) -#define SOM_SUBSPACE_IS_FIRST (1 << 17) -#define SOM_SUBSPACE_CODE_ONLY (1 << 16) -#define SOM_SUBSPACE_SORT_KEY_SH 8 -#define SOM_SUBSPACE_SORT_KEY_MASK 0xff -#define SOM_SUBSPACE_REPLICATE_INIT (1 << 7) -#define SOM_SUBSPACE_CONTINUATION (1 << 6) -#define SOM_SUBSPACE_IS_TSPECIFIC (1 << 5) -#define SOM_SUBSPACE_IS_COMDAT (1 << 4) - -struct som_external_compilation_unit -{ - unsigned char name[4]; - unsigned char language_name[4]; - unsigned char product_id[4]; - unsigned char version_id[4]; - unsigned char flags[4]; - struct som_external_clock compile_time; - struct som_external_clock source_time; -}; - -struct som_external_symbol_dictionary_record -{ - unsigned char flags[4]; - unsigned char name[4]; - unsigned char qualifier_name[4]; - unsigned char info[4]; - unsigned char symbol_value[4]; -}; - -/* Flags fields. */ -#define SOM_SYMBOL_HIDDEN (1 << 31) -#define SOM_SYMBOL_SECONDARY_DEF (1 << 30) -#define SOM_SYMBOL_TYPE_SH 24 -#define SOM_SYMBOL_TYPE_MASK 0x3f -#define SOM_SYMBOL_SCOPE_SH 20 -#define SOM_SYMBOL_SCOPE_MASK 0xf -#define SOM_SYMBOL_CHECK_LEVEL_SH 17 -#define SOM_SYMBOL_CHECK_LEVEL_MASK 0x7 -#define SOM_SYMBOL_MUST_QUALIFY (1 << 16) -#define SOM_SYMBOL_INITIALLY_FROZEN (1 << 15) -#define SOM_SYMBOL_MEMORY_RESIDENT (1 << 14) -#define SOM_SYMBOL_IS_COMMON (1 << 13) -#define SOM_SYMBOL_DUP_COMMON (1 << 12) -#define SOM_SYMBOL_XLEAST_SH 10 -#define SOM_SYMBOL_XLEAT_MASK 0x3 -#define SOM_SYMBOL_ARG_RELOC_SH 0 -#define SOM_SYMBOL_ARG_RELOC_MASK 0x3ff - -/* Info fields. */ -#define SOM_SYMBOL_HAS_LONG_RETURN (1 << 31) -#define SOM_SYMBOL_NO_RELOCATION (1 << 30) -#define SOM_SYMBOL_IS_COMDAT (1 << 29) -#define SOM_SYMBOL_SYMBOL_INFO_SH 0 -#define SOM_SYMBOL_SYMBOL_INFO_MASK 0xffffff - -/* Symbol type definition. */ -#define ST_NULL 0 -#define ST_ABSOLUTE 1 -#define ST_DATA 2 -#define ST_CODE 3 -#define ST_PRI_PROG 4 -#define ST_SEC_PROG 5 -#define ST_ENTRY 6 -#define ST_STORAGE 7 -#define ST_STUB 8 -#define ST_MODULE 9 -#define ST_SYM_EXT 10 -#define ST_ARG_EXT 11 -#define ST_MILLICODE 12 -#define ST_PLABEL 13 -#define ST_OCT_DIS 14 -#define ST_MILLI_EXT 15 -#define ST_TSTORAGE 16 -#define ST_COMDAT 17 - -/* Symbol scope. */ -#define SS_UNSAT 0 -#define SS_EXTERNAL 1 -#define SS_LOCAL 2 -#define SS_UNIVERSAL 3 - -#endif /* _SOM_AOUT_H */ diff --git a/include/som/clock.h b/include/som/clock.h deleted file mode 100644 index e2a7ba6..0000000 --- a/include/som/clock.h +++ /dev/null @@ -1,30 +0,0 @@ -/* SOM clock definition for BFD. - Copyright 2010 Free Software Foundation, Inc. - Contributed by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _SOM_CLOCK_H -#define _SOM_CLOCK_H - -struct som_external_clock -{ - unsigned char secs[4]; - unsigned char nanosecs[4]; -}; - -#endif /* _SOM_CLOCK_H */ diff --git a/include/som/internal.h b/include/som/internal.h deleted file mode 100644 index e3889fb..0000000 --- a/include/som/internal.h +++ /dev/null @@ -1,206 +0,0 @@ -/* SOM internal definitions for BFD. - Copyright 2010 Free Software Foundation, Inc. - Contributed by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _SOM_INTERNAL_H -#define _SOM_INTERNAL_H - -struct som_clock -{ - unsigned int secs; - unsigned int nanosecs; -}; - -struct som_header -{ - unsigned short system_id; - unsigned short a_magic; - unsigned int version_id; - struct som_clock file_time; - unsigned int entry_space; - unsigned int entry_subspace; - unsigned int entry_offset; - unsigned int aux_header_location; - unsigned int aux_header_size; - unsigned int som_length; - unsigned int presumed_dp; - unsigned int space_location; - unsigned int space_total; - unsigned int subspace_location; - unsigned int subspace_total; - unsigned int loader_fixup_location; - unsigned int loader_fixup_total; - unsigned int space_strings_location; - unsigned int space_strings_size; - unsigned int init_array_location; - unsigned int init_array_total; - unsigned int compiler_location; - unsigned int compiler_total; - unsigned int symbol_location; - unsigned int symbol_total; - unsigned int fixup_request_location; - unsigned int fixup_request_total; - unsigned int symbol_strings_location; - unsigned int symbol_strings_size; - unsigned int unloadable_sp_location; - unsigned int unloadable_sp_size; - unsigned int checksum; -}; - -struct som_aux_id -{ - unsigned int mandatory : 1; - unsigned int copy : 1; - unsigned int append : 1; - unsigned int ignore : 1; - unsigned int reserved : 12; - - /* Header type. */ - unsigned int type : 16; - - /* Length of the header in bytes, without the two word identifier. */ - unsigned int length; -}; - -/* Generic auxiliary string header. */ -struct som_string_auxhdr -{ - struct som_aux_id header_id; - - /* Length of the string, without the NUL. */ - unsigned int string_length; - - /* The string. */ - char string[1]; -}; - -struct som_name_pt -{ - char *name; - unsigned int strx; -}; - -struct som_compilation_unit -{ - /* Source file that produced the SOM. */ - struct som_name_pt name; - - /* Name of the language used when creating this SOM. */ - struct som_name_pt language_name; - - /* Identificaton of the compiler. */ - struct som_name_pt product_id; - - /* Version id of the compiler. */ - struct som_name_pt version_id; - - unsigned int flags; - struct som_clock compile_time; - struct som_clock source_time; -}; - -struct som_exec_auxhdr -{ - struct som_aux_id som_auxhdr; - - long exec_tsize; - long exec_tmem; - long exec_tfile; - long exec_dsize; - long exec_dmem; - long exec_dfile; - long exec_bsize; - long exec_entry; - long exec_flags; - long exec_bfill; -}; - -struct som_space_dictionary_record -{ - unsigned int name; - unsigned int is_loadable : 1; - unsigned int is_defined : 1; - unsigned int is_private : 1; - unsigned int has_intermediate_code : 1; - unsigned int is_tspecific : 1; - unsigned int reserved : 11; - unsigned int sort_key : 8; - unsigned int reserved2 : 8; - int space_number; - int subspace_index; - unsigned int subspace_quantity; - int loader_fix_index; - unsigned int loader_fix_quantity; - int init_pointer_index; - unsigned int init_pointer_quantity; -}; - -struct som_subspace_dictionary_record -{ - int space_index; - unsigned int access_control_bits : 7; - unsigned int memory_resident : 1; - unsigned int dup_common : 1; - unsigned int is_common : 1; - unsigned int is_loadable : 1; - unsigned int quadrant : 2; - unsigned int initially_frozen : 1; - unsigned int is_first : 1; - unsigned int code_only : 1; - unsigned int sort_key : 8; - unsigned int replicate_init : 1; - unsigned int continuation : 1; - unsigned int is_tspecific : 1; - unsigned int is_comdat : 1; - unsigned int reserved : 4; - int file_loc_init_value; - unsigned int initialization_length; - unsigned int subspace_start; - unsigned int subspace_length; - unsigned int reserved2 : 5; - unsigned int alignment : 27; - unsigned int name; - int fixup_request_index; - unsigned int fixup_request_quantity; -}; - -struct som_lst_header -{ - unsigned short system_id; - unsigned short a_magic; - unsigned int version_id; - struct som_clock file_time; - unsigned int hash_loc; - unsigned int hash_size; - unsigned int module_count; - unsigned int module_limit; - unsigned int dir_loc; - unsigned int export_loc; - unsigned int export_count; - unsigned int import_loc; - unsigned int aux_loc; - unsigned int aux_size; - unsigned int string_loc; - unsigned int string_size; - unsigned int free_list; - unsigned int file_end; - unsigned int checksum; -}; - -#endif /* _SOM_INTERNAL_H */ diff --git a/include/som/lst.h b/include/som/lst.h deleted file mode 100644 index 6088b47..0000000 --- a/include/som/lst.h +++ /dev/null @@ -1,93 +0,0 @@ -/* SOM lst definitions for BFD. - Copyright 2010 Free Software Foundation, Inc. - Contributed by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _SOM_LST_H -#define _SOM_LST_H - -#include "clock.h" - -/* See 4.2 Libraray Symbol Table Header Record. */ -struct som_external_lst_header -{ - unsigned char system_id[2]; - unsigned char a_magic[2]; - unsigned char version_id[4]; - struct som_external_clock file_time; - unsigned char hash_loc[4]; - unsigned char hash_size[4]; - unsigned char module_count[4]; - unsigned char module_limit[4]; - unsigned char dir_loc[4]; - unsigned char export_loc[4]; - unsigned char export_count[4]; - unsigned char import_loc[4]; - unsigned char aux_loc[4]; - unsigned char aux_size[4]; - unsigned char string_loc[4]; - unsigned char string_size[4]; - unsigned char free_list[4]; - unsigned char file_end[4]; - unsigned char checksum[4]; -}; - -#define VERSION_ID 85082112 -#define LIBMAGIC 0x0619 -#define LIBMAGIC_EXEC 0x0104 - -struct som_external_lst_symbol_record -{ - unsigned char flags[4]; - unsigned char name[4]; - unsigned char qualifier_name[4]; - unsigned char symbol_info[4]; - unsigned char symbol_value[4]; - unsigned char symbol_descriptor[4]; - unsigned char reserved; - unsigned char max_num_args; - unsigned char min_num_args; - unsigned char num_args; - unsigned char som_index[4]; - unsigned char symbol_key[4]; - unsigned char next_entry[4]; -}; - -/* Fields of flags. */ -#define LST_SYMBOL_HIDDEN (1 << 31) -#define LST_SYMBOL_SECONDARY_DEF (1 << 30) -#define LST_SYMBOL_SYMBOL_TYPE_SH 24 -#define LST_SYMBOL_SYMBOL_SCOPE_SH 20 -#define LST_SYMBOL_CHECK_LEVEL_SH 17 -#define LST_SYMBOL_MUST_QUALIFY (1 << 16) -#define LST_SYMBOL_INITIALY_FROZEN (1 << 15) -#define LST_SYMBOL_MEMORY_RESIDENT (1 << 14) -#define LST_SYMBOL_IS_COMMON (1 << 13) -#define LST_SYMBOL_DUP_COMMON (1 << 12) -#define LST_SYMBOL_XLEAST_SH 10 -#define LST_SYMBOL_ARG_RELOC_SH 0 - -/* According to 4.3.2 SOM Directory. */ - -struct som_external_som_entry -{ - unsigned char location[4]; - unsigned char length[4]; -}; - -#endif /* _SOM_LST_H */ diff --git a/include/som/reloc.h b/include/som/reloc.h deleted file mode 100644 index 417b5ee..0000000 --- a/include/som/reloc.h +++ /dev/null @@ -1,79 +0,0 @@ -/* SOM relocation definitions for BFD. - Copyright 2010 Free Software Foundation, Inc. - Contributed by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _SOM_RELOC_H -#define _SOM_RELOC_H - -#define R_NO_RELOCATION 0 -#define R_ZEROES 0x20 -#define R_UNINIT 0x22 -#define R_RELOCATION 0x24 -#define R_DATA_ONE_SYMBOL 0x25 -#define R_DATA_PLABEL 0x27 -#define R_SPACE_REF 0x29 -#define R_REPEATED_INIT 0x2a -#define R_PCREL_CALL 0x30 -#define R_SHORT_PCREL_MODE 0x3e -#define R_LONG_PCREL_MODE 0x3f -#define R_ABS_CALL 0x40 -#define R_DP_RELATIVE 0x50 -#define R_DATA_GPREL 0x72 -#define R_INDIRECT_CALL 0x76 -#define R_PLT_REL 0x77 -#define R_DLT_REL 0x78 -#define R_CODE_ONE_SYMBOL 0x80 -#define R_MILLI_REL 0xae -#define R_CODE_PLABEL 0xb0 -#define R_BREAKPOINT 0xb2 -#define R_ENTRY 0xb3 -#define R_ALT_ENTRY 0xb5 -#define R_EXIT 0xb6 -#define R_BEGIN_TRY 0xb7 -#define R_END_TRY 0xb8 -#define R_BEGIN_BRTAB 0xbb -#define R_END_BRTAB 0xbc -#define R_STATEMENT 0xbd -#define R_DATA_EXPR 0xc0 -#define R_CODE_EXPR 0xc1 -#define R_FSEL 0xc2 -#define R_LSEL 0xc3 -#define R_RSEL 0xc4 -#define R_N_MODE 0xc5 -#define R_S_MODE 0xc6 -#define R_D_MODE 0xc7 -#define R_R_MODE 0xc8 -#define R_DATA_OVERRIDE 0xc9 -#define R_TRANSLATED 0xce -#define R_AUX_UNWIND 0xcf -#define R_COMP1 0xd0 -#define R_COMP2 0xd1 -#define R_COMP3 0xd2 -#define R_PREV_FIXUP 0xd3 -#define R_SEC_STMT 0xd7 -#define R_N0SEL 0xd8 -#define R_N1SEL 0xd9 -#define R_LINETAB 0xda -#define R_LINETAB_ESC 0xdb -#define R_LTP_OVERRIDE 0xdc -#define R_COMMENT 0xdd -#define R_TP_OVERRIDE 0xde -#define R_RESERVED 0xdf - -#endif /* _SOM_RELOC_H */ diff --git a/include/sort.h b/include/sort.h deleted file mode 100644 index 23025d4..0000000 --- a/include/sort.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Sorting algorithms. - Copyright (C) 2000-2015 Free Software Foundation, Inc. - Contributed by Mark Mitchell . - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GCC is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street - Fifth Floor, -Boston, MA 02110-1301, USA. */ - -#ifndef SORT_H -#define SORT_H - -#include /* For size_t */ -#ifdef __STDC__ -#include -#endif /* __STDC__ */ - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#include "ansidecl.h" - -/* Sort an array of pointers. */ - -extern void sort_pointers (size_t, void **, void **); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* SORT_H */ - - - - diff --git a/include/spawn.h b/include/spawn.h deleted file mode 100644 index d6ae992..0000000 --- a/include/spawn.h +++ /dev/null @@ -1,111 +0,0 @@ -/*- - * Copyright (c) 2008 Ed Schouten - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _SPAWN_H_ -#define _SPAWN_H_ - -#include <_ansi.h> -#include -#include -#include -#define __need_sigset_t -#include - -struct sched_param; - -typedef struct __posix_spawnattr *posix_spawnattr_t; -typedef struct __posix_spawn_file_actions *posix_spawn_file_actions_t; - -#define POSIX_SPAWN_RESETIDS 0x01 -#define POSIX_SPAWN_SETPGROUP 0x02 -#define POSIX_SPAWN_SETSCHEDPARAM 0x04 -#define POSIX_SPAWN_SETSCHEDULER 0x08 -#define POSIX_SPAWN_SETSIGDEF 0x10 -#define POSIX_SPAWN_SETSIGMASK 0x20 - -_BEGIN_STD_C -/* - * Spawn routines - * - * XXX both arrays should be __restrict, but this does not work when GCC - * is invoked with -std=c99. - */ -int posix_spawn (pid_t * __restrict, const char * __restrict, - const posix_spawn_file_actions_t *, const posix_spawnattr_t * __restrict, - char * const [], char * const []); -int posix_spawnp (pid_t * __restrict, const char * __restrict, - const posix_spawn_file_actions_t *, const posix_spawnattr_t * __restrict, - char * const [], char * const []); - -/* - * File descriptor actions - */ -int posix_spawn_file_actions_init (posix_spawn_file_actions_t *); -int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *); - -int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t * __restrict, - int, const char * __restrict, int, mode_t); -int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *, int, int); -int posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *, int); -#if __MISC_VISIBLE || __GNU_VISIBLE -int posix_spawn_file_actions_addchdir_np (posix_spawn_file_actions_t *__restrict -, - const char *__restrict); -int posix_spawn_file_actions_addfchdir_np (posix_spawn_file_actions_t *__restrict, - int); -#endif - -/* - * Spawn attributes - */ -int posix_spawnattr_init (posix_spawnattr_t *); -int posix_spawnattr_destroy (posix_spawnattr_t *); - -int posix_spawnattr_getflags (const posix_spawnattr_t * __restrict, - short * __restrict); -int posix_spawnattr_getpgroup (const posix_spawnattr_t * __restrict, - pid_t * __restrict); -int posix_spawnattr_getschedparam (const posix_spawnattr_t * __restrict, - struct sched_param * __restrict); -int posix_spawnattr_getschedpolicy (const posix_spawnattr_t * __restrict, - int * __restrict); -int posix_spawnattr_getsigdefault (const posix_spawnattr_t * __restrict, - sigset_t * __restrict); -int posix_spawnattr_getsigmask (const posix_spawnattr_t * __restrict, - sigset_t * __restrict); - -int posix_spawnattr_setflags (posix_spawnattr_t *, short); -int posix_spawnattr_setpgroup (posix_spawnattr_t *, pid_t); -int posix_spawnattr_setschedparam (posix_spawnattr_t * __restrict, - const struct sched_param * __restrict); -int posix_spawnattr_setschedpolicy (posix_spawnattr_t *, int); -int posix_spawnattr_setsigdefault (posix_spawnattr_t * __restrict, - const sigset_t * __restrict); -int posix_spawnattr_setsigmask (posix_spawnattr_t * __restrict, - const sigset_t * __restrict); -_END_STD_C - -#endif /* !_SPAWN_H_ */ diff --git a/include/splay-tree.h b/include/splay-tree.h deleted file mode 100644 index f71d7d7..0000000 --- a/include/splay-tree.h +++ /dev/null @@ -1,156 +0,0 @@ -/* A splay-tree datatype. - Copyright (C) 1998-2015 Free Software Foundation, Inc. - Contributed by Mark Mitchell (mark@markmitchell.com). - - This file is part of GCC. - - GCC is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GCC is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to - the Free Software Foundation, 51 Franklin Street - Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* For an easily readable description of splay-trees, see: - - Lewis, Harry R. and Denenberg, Larry. Data Structures and Their - Algorithms. Harper-Collins, Inc. 1991. - - The major feature of splay trees is that all basic tree operations - are amortized O(log n) time for a tree with n nodes. */ - -#ifndef _SPLAY_TREE_H -#define _SPLAY_TREE_H - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#include "ansidecl.h" - -#ifdef HAVE_STDINT_H -#include -#endif -#ifdef HAVE_INTTYPES_H -#include -#endif - -/* Use typedefs for the key and data types to facilitate changing - these types, if necessary. These types should be sufficiently wide - that any pointer or scalar can be cast to these types, and then - cast back, without loss of precision. */ -typedef uintptr_t splay_tree_key; -typedef uintptr_t splay_tree_value; - -/* Forward declaration for a node in the tree. */ -typedef struct splay_tree_node_s *splay_tree_node; - -/* The type of a function which compares two splay-tree keys. The - function should return values as for qsort. */ -typedef int (*splay_tree_compare_fn) (splay_tree_key, splay_tree_key); - -/* The type of a function used to deallocate any resources associated - with the key. */ -typedef void (*splay_tree_delete_key_fn) (splay_tree_key); - -/* The type of a function used to deallocate any resources associated - with the value. */ -typedef void (*splay_tree_delete_value_fn) (splay_tree_value); - -/* The type of a function used to iterate over the tree. */ -typedef int (*splay_tree_foreach_fn) (splay_tree_node, void*); - -/* The type of a function used to allocate memory for tree root and - node structures. The first argument is the number of bytes needed; - the second is a data pointer the splay tree functions pass through - to the allocator. This function must never return zero. */ -typedef void *(*splay_tree_allocate_fn) (int, void *); - -/* The type of a function used to free memory allocated using the - corresponding splay_tree_allocate_fn. The first argument is the - memory to be freed; the latter is a data pointer the splay tree - functions pass through to the freer. */ -typedef void (*splay_tree_deallocate_fn) (void *, void *); - -/* The nodes in the splay tree. */ -struct splay_tree_node_s { - /* The key. */ - splay_tree_key key; - - /* The value. */ - splay_tree_value value; - - /* The left and right children, respectively. */ - splay_tree_node left; - splay_tree_node right; -}; - -/* The splay tree itself. */ -struct splay_tree_s { - /* The root of the tree. */ - splay_tree_node root; - - /* The comparision function. */ - splay_tree_compare_fn comp; - - /* The deallocate-key function. NULL if no cleanup is necessary. */ - splay_tree_delete_key_fn delete_key; - - /* The deallocate-value function. NULL if no cleanup is necessary. */ - splay_tree_delete_value_fn delete_value; - - /* Node allocate function. Takes allocate_data as a parameter. */ - splay_tree_allocate_fn allocate; - - /* Free function for nodes and trees. Takes allocate_data as a parameter. */ - splay_tree_deallocate_fn deallocate; - - /* Parameter for allocate/free functions. */ - void *allocate_data; -}; - -typedef struct splay_tree_s *splay_tree; - -extern splay_tree splay_tree_new (splay_tree_compare_fn, - splay_tree_delete_key_fn, - splay_tree_delete_value_fn); -extern splay_tree splay_tree_new_with_allocator (splay_tree_compare_fn, - splay_tree_delete_key_fn, - splay_tree_delete_value_fn, - splay_tree_allocate_fn, - splay_tree_deallocate_fn, - void *); -extern splay_tree splay_tree_new_typed_alloc (splay_tree_compare_fn, - splay_tree_delete_key_fn, - splay_tree_delete_value_fn, - splay_tree_allocate_fn, - splay_tree_allocate_fn, - splay_tree_deallocate_fn, - void *); -extern void splay_tree_delete (splay_tree); -extern splay_tree_node splay_tree_insert (splay_tree, - splay_tree_key, - splay_tree_value); -extern void splay_tree_remove (splay_tree, splay_tree_key); -extern splay_tree_node splay_tree_lookup (splay_tree, splay_tree_key); -extern splay_tree_node splay_tree_predecessor (splay_tree, splay_tree_key); -extern splay_tree_node splay_tree_successor (splay_tree, splay_tree_key); -extern splay_tree_node splay_tree_max (splay_tree); -extern splay_tree_node splay_tree_min (splay_tree); -extern int splay_tree_foreach (splay_tree, splay_tree_foreach_fn, void*); -extern int splay_tree_compare_ints (splay_tree_key, splay_tree_key); -extern int splay_tree_compare_pointers (splay_tree_key, splay_tree_key); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _SPLAY_TREE_H */ diff --git a/include/ssp/ssp.h b/include/ssp/ssp.h deleted file mode 100644 index 9229086..0000000 --- a/include/ssp/ssp.h +++ /dev/null @@ -1,76 +0,0 @@ -/* $NetBSD: ssp.h,v 1.13 2015/09/03 20:43:47 plunky Exp $ */ - -/*- - * Copyright (c) 2006, 2011 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef _SSP_SSP_H_ -#define _SSP_SSP_H_ - -#include - -/* __ssp_real is used by the implementation in libc */ -#if __SSP_FORTIFY_LEVEL == 0 -#define __ssp_real_(fun) fun -#else -#define __ssp_real_(fun) __ssp_real_ ## fun -#endif -#define __ssp_real(fun) __ssp_real_(fun) - -#define __ssp_inline extern __inline__ __attribute__((__always_inline__, __gnu_inline__)) - -#define __ssp_bos(ptr) __builtin_object_size(ptr, __SSP_FORTIFY_LEVEL > 1) -#define __ssp_bos0(ptr) __builtin_object_size(ptr, 0) - -#define __ssp_check(buf, len, bos) \ - if (bos(buf) != (size_t)-1 && len > bos(buf)) \ - __chk_fail() -#define __ssp_decl(rtype, fun, args) \ -rtype __ssp_real_(fun) args __asm__(__ASMNAME(#fun)); \ -__ssp_inline rtype fun args -#define __ssp_redirect_raw(rtype, fun, args, call, cond, bos) \ -__ssp_decl(rtype, fun, args) \ -{ \ - if (cond) \ - __ssp_check(__buf, __len, bos); \ - return __ssp_real_(fun) call; \ -} - -#define __ssp_redirect(rtype, fun, args, call) \ - __ssp_redirect_raw(rtype, fun, args, call, 1, __ssp_bos) -#define __ssp_redirect0(rtype, fun, args, call) \ - __ssp_redirect_raw(rtype, fun, args, call, 1, __ssp_bos0) - -#define __ssp_overlap(a, b, l) \ - (((a) <= (b) && (b) < (a) + (l)) || ((b) <= (a) && (a) < (b) + (l))) - -__BEGIN_DECLS -void __stack_chk_fail(void) __dead2; -void __chk_fail(void) __dead2; -__END_DECLS - -#endif /* _SSP_SSP_H_ */ diff --git a/include/ssp/stdio.h b/include/ssp/stdio.h deleted file mode 100644 index df2cd18..0000000 --- a/include/ssp/stdio.h +++ /dev/null @@ -1,101 +0,0 @@ -/* $NetBSD: stdio.h,v 1.5 2011/07/17 20:54:34 joerg Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef _SSP_STDIO_H_ -#define _SSP_STDIO_H_ - -#include - -__BEGIN_DECLS -int __sprintf_chk(char *__restrict, int, size_t, const char *__restrict, ...) - __printflike(4, 5); -int __vsprintf_chk(char *__restrict, int, size_t, const char *__restrict, - __va_list) - __printflike(4, 0); -int __snprintf_chk(char *__restrict, size_t, int, size_t, - const char *__restrict, ...) - __printflike(5, 6); -int __vsnprintf_chk(char *__restrict, size_t, int, size_t, - const char *__restrict, __va_list) - __printflike(5, 0); -char *__gets_chk(char *, size_t); -__END_DECLS - -#if __SSP_FORTIFY_LEVEL > 0 - - -#define sprintf(str, ...) \ - __builtin___sprintf_chk(str, 0, __ssp_bos(str), __VA_ARGS__) - -#define vsprintf(str, fmt, ap) \ - __builtin___vsprintf_chk(str, 0, __ssp_bos(str), fmt, ap) - -#define snprintf(str, len, ...) \ - __builtin___snprintf_chk(str, len, 0, __ssp_bos(str), __VA_ARGS__) - -#define vsnprintf(str, len, fmt, ap) \ - __builtin___vsnprintf_chk(str, len, 0, __ssp_bos(str), fmt, ap) - -#define gets(str) \ - __gets_chk(str, __ssp_bos(str)) - -__ssp_decl(char *, fgets, (char *__restrict __buf, int __len, FILE *__fp)) -{ - if (__len > 0) - __ssp_check(__buf, (size_t)__len, __ssp_bos); - return __ssp_real_fgets(__buf, __len, __fp); -} - -#if __GNU_VISIBLE -__ssp_decl(char *, fgets_unlocked, (char *__restrict __buf, int __len, FILE *__fp)) -{ - if (__len > 0) - __ssp_check(__buf, (size_t)__len, __ssp_bos); - return __ssp_real_fgets_unlocked(__buf, __len, __fp); -} -#endif /* __GNU_VISIBLE */ - -__ssp_decl(size_t, fread, (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __fp)) -{ - __ssp_check(__ptr, __size * __n, __ssp_bos0); - return __ssp_real_fread(__ptr, __size, __n, __fp); -} - -#if __MISC_VISIBLE -__ssp_decl(size_t, fread_unlocked, (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __fp)) -{ - __ssp_check(__ptr, __size * __n, __ssp_bos0); - return __ssp_real_fread_unlocked(__ptr, __size, __n, __fp); -} -#endif /* __MISC_VISIBLE */ - -#endif /* __SSP_FORTIFY_LEVEL > 0 */ - -#endif /* _SSP_STDIO_H_ */ diff --git a/include/ssp/stdlib.h b/include/ssp/stdlib.h deleted file mode 100644 index d5edb6d..0000000 --- a/include/ssp/stdlib.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef _SSP_STDLIB_H_ -#define _SSP_STDLIB_H_ - -#include - -#if __SSP_FORTIFY_LEVEL > 0 -__BEGIN_DECLS - -__ssp_decl(size_t, mbstowcs, (wchar_t *__buf, const char *__src, size_t __n)) -{ - if (__buf != NULL) - __ssp_check(__buf, __n * sizeof(wchar_t), __ssp_bos); - return __ssp_real_mbstowcs (__buf, __src, __n); -} - -__ssp_redirect_raw(size_t, wcstombs, \ - (char *__buf, const wchar_t *__src, size_t __len), \ - (__buf, __src, __len), __buf != NULL, __ssp_bos); - -__ssp_decl(int, wctomb, (char *__buf, wchar_t __wc)) -{ - if (__buf != NULL) - __ssp_check(__buf, MB_CUR_MAX, __ssp_bos); - return __ssp_real_wctomb (__buf, __wc); -} - -__END_DECLS - -#endif /* __SSP_FORTIFY_LEVEL > 0 */ -#endif /* _SSP_STDLIB_H_ */ diff --git a/include/ssp/string.h b/include/ssp/string.h deleted file mode 100644 index 85c4512..0000000 --- a/include/ssp/string.h +++ /dev/null @@ -1,115 +0,0 @@ -/* $NetBSD: string.h,v 1.13 2014/11/29 13:23:48 pooka Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef _SSP_STRING_H_ -#define _SSP_STRING_H_ - -#include -#include - -__BEGIN_DECLS -void *__memcpy_chk(void *, const void *, size_t, size_t); -void *__memmove_chk(void *, void *, size_t, size_t); -void *__mempcpy_chk(void *, const void *, size_t, size_t); -void *__memset_chk(void *, int, size_t, size_t); -char *__stpcpy_chk(char *, const char *, size_t); -char *__strcat_chk(char *, const char *, size_t); -char *__strcpy_chk(char *, const char *, size_t); -char *__strncat_chk(char *, const char *, size_t, size_t); -char *__strncpy_chk(char *, const char *, size_t, size_t); -__END_DECLS - -#if __SSP_FORTIFY_LEVEL > 0 - -#define __ssp_bos_check3(fun, dst, src, len) \ - ((__ssp_bos0(dst) != (size_t)-1) ? \ - __builtin___ ## fun ## _chk(dst, src, len, __ssp_bos0(dst)) : \ - __ ## fun ## _ichk(dst, src, len)) - -#define __ssp_bos_check2(fun, dst, src) \ - ((__ssp_bos0(dst) != (size_t)-1) ? \ - __builtin___ ## fun ## _chk(dst, src, __ssp_bos0(dst)) : \ - __ ## fun ## _ichk(dst, src)) - -#define __ssp_bos_icheck3_restrict(fun, type1, type2) \ -__ssp_inline type1 __ ## fun ## _ichk(type1 __restrict, type2 __restrict, size_t); \ -__ssp_inline type1 \ -__ ## fun ## _ichk(type1 __restrict dst, type2 __restrict src, size_t len) { \ - return __builtin___ ## fun ## _chk(dst, src, len, __ssp_bos0(dst)); \ -} - -#define __ssp_bos_icheck3(fun, type1, type2) \ -__ssp_inline type1 __ ## fun ## _ichk(type1, type2, size_t); \ -__ssp_inline type1 \ -__ ## fun ## _ichk(type1 dst, type2 src, size_t len) { \ - return __builtin___ ## fun ## _chk(dst, src, len, __ssp_bos0(dst)); \ -} - -#define __ssp_bos_icheck2_restrict(fun, type1, type2) \ -__ssp_inline type1 __ ## fun ## _ichk(type1, type2); \ -__ssp_inline type1 \ -__ ## fun ## _ichk(type1 __restrict dst, type2 __restrict src) { \ - return __builtin___ ## fun ## _chk(dst, src, __ssp_bos0(dst)); \ -} - -__BEGIN_DECLS -__ssp_bos_icheck3_restrict(memcpy, void *, const void *) -__ssp_bos_icheck3(memmove, void *, const void *) -__ssp_bos_icheck3_restrict(mempcpy, void *, const void *) -__ssp_bos_icheck3(memset, void *, int) -__ssp_bos_icheck2_restrict(stpcpy, char *, const char *) -#if __GNUC_PREREQ__(4,8) || defined(__clang__) -__ssp_bos_icheck3_restrict(stpncpy, char *, const char *) -#endif -__ssp_bos_icheck2_restrict(strcpy, char *, const char *) -__ssp_bos_icheck2_restrict(strcat, char *, const char *) -__ssp_bos_icheck3_restrict(strncpy, char *, const char *) -__ssp_bos_icheck3_restrict(strncat, char *, const char *) -__END_DECLS - -#define memcpy(dst, src, len) __ssp_bos_check3(memcpy, dst, src, len) -#define memmove(dst, src, len) __ssp_bos_check3(memmove, dst, src, len) -#if __GNU_VISIBLE -#define mempcpy(dst, src, len) __ssp_bos_check3(mempcpy, dst, src, len) -#endif -#define memset(dst, val, len) __ssp_bos_check3(memset, dst, val, len) -#if __POSIX_VISIBLE >= 200809 -#define stpcpy(dst, src) __ssp_bos_check2(stpcpy, dst, src) -#if __GNUC_PREREQ__(4,8) || defined(__clang__) -#define stpncpy(dst, src, len) __ssp_bos_check3(stpncpy, dst, src, len) -#endif -#endif -#define strcpy(dst, src) __ssp_bos_check2(strcpy, dst, src) -#define strcat(dst, src) __ssp_bos_check2(strcat, dst, src) -#define strncpy(dst, src, len) __ssp_bos_check3(strncpy, dst, src, len) -#define strncat(dst, src, len) __ssp_bos_check3(strncat, dst, src, len) - -#endif /* __SSP_FORTIFY_LEVEL > 0 */ -#endif /* _SSP_STRING_H_ */ diff --git a/include/ssp/strings.h b/include/ssp/strings.h deleted file mode 100644 index 13adba1..0000000 --- a/include/ssp/strings.h +++ /dev/null @@ -1,55 +0,0 @@ -/* $NetBSD: strings.h,v 1.3 2008/04/28 20:22:54 martin Exp $ */ - -/*- - * Copyright (c) 2007 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef _SSP_STRINGS_H_ -#define _SSP_STRINGS_H_ - -#include - -#if __SSP_FORTIFY_LEVEL > 0 - -#if __BSD_VISIBLE || __POSIX_VISIBLE <= 200112 -#define bcopy(src, dst, len) \ - ((__ssp_bos0(dst) != (size_t)-1) ? \ - __builtin___memmove_chk(dst, src, len, __ssp_bos0(dst)) : \ - __memmove_ichk(dst, src, len)) -#define bzero(dst, len) \ - ((__ssp_bos0(dst) != (size_t)-1) ? \ - __builtin___memset_chk(dst, 0, len, __ssp_bos0(dst)) : \ - __memset_ichk(dst, 0, len)) -#endif - -#if __BSD_VISIBLE -__ssp_redirect0(void, explicit_bzero, (void *__buf, size_t __len), \ - (__buf, __len)); -#endif - -#endif /* __SSP_FORTIFY_LEVEL > 0 */ -#endif /* _SSP_STRINGS_H_ */ diff --git a/include/ssp/unistd.h b/include/ssp/unistd.h deleted file mode 100644 index 5ca6ace..0000000 --- a/include/ssp/unistd.h +++ /dev/null @@ -1,93 +0,0 @@ -/* $NetBSD: unistd.h,v 1.7 2015/06/25 18:41:03 joerg Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef _SSP_UNISTD_H_ -#define _SSP_UNISTD_H_ - -#include - -#if __SSP_FORTIFY_LEVEL > 0 -__BEGIN_DECLS - -#if __POSIX_VISIBLE >= 199209 -__ssp_redirect(size_t, confstr, (int __name, char *__buf, size_t __len), \ - (__name, __buf, __len)); -#endif - -__ssp_redirect_raw(char *, getcwd, (char *__buf, size_t __len), - (__buf, __len), __buf != 0, __ssp_bos); - -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -__ssp_redirect(int, getdomainname, (char *__buf, size_t __len), \ - (__buf, __len)); -#endif - -__ssp_decl(int, getgroups, (int __n, gid_t __buf[])) -{ - __ssp_check(__buf, __n * sizeof(gid_t), __ssp_bos); - return __ssp_real_getgroups (__n, __buf); -} - -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500 -#if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) -__ssp_redirect(int, gethostname, (char *__buf, size_t __len), \ - (__buf, __len)); -#endif -#endif - -__ssp_redirect(int, getlogin_r, (char *__buf, size_t __len), \ - (__buf, __len)); - -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500 -__ssp_redirect0(ssize_t, pread, (int __fd, void *__buf, size_t __len, off_t __off), \ - (__fd, __buf, __len, __off)); -#endif - -__ssp_redirect0(_READ_WRITE_RETURN_TYPE, read, \ - (int __fd, void *__buf, size_t __len), (__fd, __buf, __len)); - -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 4 -__ssp_redirect(ssize_t, readlink, (const char *__restrict __path, \ - char *__restrict __buf, size_t __len), (__path, __buf, __len)); -#endif - -#if __ATFILE_VISIBLE -__ssp_redirect(ssize_t, readlinkat, \ - (int __dirfd1, const char *__restrict __path, char *__restrict __buf, size_t __len), \ - (__dirfd1, __path, __buf, __len)); -#endif - -__ssp_redirect(int, ttyname_r, (int __fd, char *__buf, size_t __len), \ - (__fd, __buf, __len)); - -__END_DECLS - -#endif /* __SSP_FORTIFY_LEVEL > 0 */ -#endif /* _SSP_UNISTD_H_ */ diff --git a/include/ssp/wchar.h b/include/ssp/wchar.h deleted file mode 100644 index d748fa2..0000000 --- a/include/ssp/wchar.h +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef _SSP_WCHAR_H_ -#define _SSP_WCHAR_H_ - -#include -#include - -#if __SSP_FORTIFY_LEVEL > 0 - -/* wide character variant, __wlen is number of wchar_t */ -#define __ssp_redirect_wc(rtype, fun, args, call, cond, bos) \ -__ssp_decl(rtype, fun, args) \ -{ \ - if (cond) \ - __ssp_check(__buf, __wlen * sizeof(wchar_t), bos); \ - return __ssp_real_(fun) call; \ -} - -#define __ssp_bos_wicheck3(fun) \ -__ssp_redirect_wc(wchar_t *, fun, \ - (wchar_t *__buf, const wchar_t *__src, size_t __wlen), \ - (__buf, __src, __wlen), 1, __ssp_bos0) - -#define __ssp_bos_wicheck3_restrict(fun) \ -__ssp_redirect_wc(wchar_t *, fun, \ - (wchar_t *__restrict __buf, const wchar_t *__restrict __src, size_t __wlen), \ - (__buf, __src, __wlen), 1, __ssp_bos0) - -#define __ssp_bos_wicheck2_restrict(fun) \ -__ssp_decl(wchar_t *, fun, (wchar_t *__restrict __buf, const wchar_t *__restrict __src)) \ -{ \ - __ssp_check(__buf, (wcslen(__src) + 1) * sizeof(wchar_t), __ssp_bos0); \ - return __ssp_real_(fun) (__buf, __src); \ -} - -__BEGIN_DECLS -#if __POSIX_VISIBLE >= 200809 -__ssp_bos_wicheck2_restrict(wcpcpy) -__ssp_bos_wicheck3_restrict(wcpncpy) -#endif -__ssp_bos_wicheck2_restrict(wcscpy) -__ssp_bos_wicheck2_restrict(wcscat) -__ssp_bos_wicheck3_restrict(wcsncpy) -__ssp_bos_wicheck3_restrict(wcsncat) -__ssp_bos_wicheck3_restrict(wmemcpy) -__ssp_bos_wicheck3(wmemmove) -#if __GNU_VISIBLE -__ssp_bos_wicheck3_restrict(wmempcpy) -#endif -__ssp_redirect_wc(wchar_t *, wmemset, \ - (wchar_t *__buf, wchar_t __src, size_t __wlen), \ - (__buf, __src, __wlen), 1, __ssp_bos0) - -__ssp_decl(size_t, wcrtomb, (char *__buf, wchar_t __src, mbstate_t *__ps)) -{ - if (__buf != NULL && __src != L'\0') - __ssp_check(__buf, sizeof(wchar_t), __ssp_bos); - return __ssp_real_wcrtomb (__buf, __src, __ps); -} - -__ssp_redirect_wc(size_t, mbsrtowcs, \ - (wchar_t *__buf, const char **__src, size_t __wlen, mbstate_t *__ps), \ - (__buf, __src, __wlen, __ps), __buf != NULL, __ssp_bos) - -__ssp_redirect_raw(size_t, wcsrtombs, \ - (char *__buf, const wchar_t **__src, size_t __len, mbstate_t *__ps), \ - (__buf, __src, __len, __ps), __buf != NULL, __ssp_bos) - -#if __POSIX_VISIBLE >= 200809 -__ssp_redirect_wc(size_t, mbsnrtowcs, \ - (wchar_t *__buf, const char **__src, size_t __nms, size_t __wlen, mbstate_t *__ps), \ - (__buf, __src, __nms, __wlen, __ps), __buf != NULL, __ssp_bos) - -__ssp_redirect_raw(size_t, wcsnrtombs, \ - (char *__buf, const wchar_t **__src, size_t __nwc, size_t __len, mbstate_t *__ps), \ - (__buf, __src, __nwc, __len, __ps), __buf != NULL, __ssp_bos) -#endif - -__ssp_decl(wchar_t *, fgetws, (wchar_t *__restrict __buf, int __wlen, __FILE *__restrict __fp)) -{ - if (__wlen > 0) - __ssp_check(__buf, (size_t)__wlen * sizeof(wchar_t) , __ssp_bos); - return __ssp_real_fgetws(__buf, __wlen, __fp); -} - -#if __GNU_VISIBLE -__ssp_decl(wchar_t *, fgetws_unlocked, (wchar_t *__buf, int __wlen, __FILE *__fp)) -{ - if (__wlen > 0) - __ssp_check(__buf, (size_t)__wlen * sizeof(wchar_t) , __ssp_bos); - return __ssp_real_fgetws_unlocked(__buf, __wlen, __fp); -} -#endif /* __GNU_VISIBLE */ - -__END_DECLS - -#endif /* __SSP_FORTIFY_LEVEL > 0 */ -#endif /* _SSP_WCHAR_H_ */ diff --git a/include/stdatomic.h b/include/stdatomic.h deleted file mode 100644 index d58e795..0000000 --- a/include/stdatomic.h +++ /dev/null @@ -1,409 +0,0 @@ -/*- - * Copyright (c) 2011 Ed Schouten - * David Chisnall - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _STDATOMIC_H_ -#define _STDATOMIC_H_ - -#include -#include - -#if __has_extension(c_atomic) || __has_extension(cxx_atomic) -#define __CLANG_ATOMICS -#elif __GNUC_PREREQ__(4, 7) -#define __GNUC_ATOMICS -#elif defined(__GNUC__) -#define __SYNC_ATOMICS -#else -#error "stdatomic.h does not support your compiler" -#endif - -/* - * 7.17.1 Atomic lock-free macros. - */ - -#ifdef __GCC_ATOMIC_BOOL_LOCK_FREE -#define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_CHAR_LOCK_FREE -#define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_CHAR16_T_LOCK_FREE -#define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_CHAR32_T_LOCK_FREE -#define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_WCHAR_T_LOCK_FREE -#define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_SHORT_LOCK_FREE -#define ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_INT_LOCK_FREE -#define ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_LONG_LOCK_FREE -#define ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_LLONG_LOCK_FREE -#define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_POINTER_LOCK_FREE -#define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE -#endif - -/* - * 7.17.2 Initialization. - */ - -#if defined(__CLANG_ATOMICS) -#define ATOMIC_VAR_INIT(value) (value) -#define atomic_init(obj, value) __c11_atomic_init(obj, value) -#else -#define ATOMIC_VAR_INIT(value) { .__val = (value) } -#define atomic_init(obj, value) ((void)((obj)->__val = (value))) -#endif - -/* - * Clang and recent GCC both provide predefined macros for the memory - * orderings. If we are using a compiler that doesn't define them, use the - * clang values - these will be ignored in the fallback path. - */ - -#ifndef __ATOMIC_RELAXED -#define __ATOMIC_RELAXED 0 -#endif -#ifndef __ATOMIC_CONSUME -#define __ATOMIC_CONSUME 1 -#endif -#ifndef __ATOMIC_ACQUIRE -#define __ATOMIC_ACQUIRE 2 -#endif -#ifndef __ATOMIC_RELEASE -#define __ATOMIC_RELEASE 3 -#endif -#ifndef __ATOMIC_ACQ_REL -#define __ATOMIC_ACQ_REL 4 -#endif -#ifndef __ATOMIC_SEQ_CST -#define __ATOMIC_SEQ_CST 5 -#endif - -/* - * 7.17.3 Order and consistency. - * - * The memory_order_* constants that denote the barrier behaviour of the - * atomic operations. - */ - -typedef enum { - memory_order_relaxed = __ATOMIC_RELAXED, - memory_order_consume = __ATOMIC_CONSUME, - memory_order_acquire = __ATOMIC_ACQUIRE, - memory_order_release = __ATOMIC_RELEASE, - memory_order_acq_rel = __ATOMIC_ACQ_REL, - memory_order_seq_cst = __ATOMIC_SEQ_CST -} memory_order; - -/* - * 7.17.4 Fences. - */ - -static __inline void -atomic_thread_fence(memory_order __order __unused) -{ - -#ifdef __CLANG_ATOMICS - __c11_atomic_thread_fence(__order); -#elif defined(__GNUC_ATOMICS) - __atomic_thread_fence(__order); -#else - __sync_synchronize(); -#endif -} - -static __inline void -atomic_signal_fence(memory_order __order __unused) -{ - -#ifdef __CLANG_ATOMICS - __c11_atomic_signal_fence(__order); -#elif defined(__GNUC_ATOMICS) - __atomic_signal_fence(__order); -#else - __asm volatile ("" ::: "memory"); -#endif -} - -/* - * 7.17.5 Lock-free property. - */ - -#if defined(_KERNEL) -/* Atomics in kernelspace are always lock-free. */ -#define atomic_is_lock_free(obj) \ - ((void)(obj), (_Bool)1) -#elif defined(__CLANG_ATOMICS) || defined(__GNUC_ATOMICS) -#define atomic_is_lock_free(obj) \ - __atomic_is_lock_free(sizeof(*(obj)), obj) -#else -#define atomic_is_lock_free(obj) \ - ((void)(obj), sizeof((obj)->__val) <= sizeof(void *)) -#endif - -/* - * 7.17.6 Atomic integer types. - */ - -typedef _Atomic(_Bool) atomic_bool; -typedef _Atomic(char) atomic_char; -typedef _Atomic(signed char) atomic_schar; -typedef _Atomic(unsigned char) atomic_uchar; -typedef _Atomic(short) atomic_short; -typedef _Atomic(unsigned short) atomic_ushort; -typedef _Atomic(int) atomic_int; -typedef _Atomic(unsigned int) atomic_uint; -typedef _Atomic(long) atomic_long; -typedef _Atomic(unsigned long) atomic_ulong; -typedef _Atomic(long long) atomic_llong; -typedef _Atomic(unsigned long long) atomic_ullong; -#if 0 -typedef _Atomic(__char16_t) atomic_char16_t; -typedef _Atomic(__char32_t) atomic_char32_t; -#endif -typedef _Atomic(wchar_t) atomic_wchar_t; -typedef _Atomic(int_least8_t) atomic_int_least8_t; -typedef _Atomic(uint_least8_t) atomic_uint_least8_t; -typedef _Atomic(int_least16_t) atomic_int_least16_t; -typedef _Atomic(uint_least16_t) atomic_uint_least16_t; -typedef _Atomic(int_least32_t) atomic_int_least32_t; -typedef _Atomic(uint_least32_t) atomic_uint_least32_t; -typedef _Atomic(int_least64_t) atomic_int_least64_t; -typedef _Atomic(uint_least64_t) atomic_uint_least64_t; -typedef _Atomic(int_fast8_t) atomic_int_fast8_t; -typedef _Atomic(uint_fast8_t) atomic_uint_fast8_t; -typedef _Atomic(int_fast16_t) atomic_int_fast16_t; -typedef _Atomic(uint_fast16_t) atomic_uint_fast16_t; -typedef _Atomic(int_fast32_t) atomic_int_fast32_t; -typedef _Atomic(uint_fast32_t) atomic_uint_fast32_t; -typedef _Atomic(int_fast64_t) atomic_int_fast64_t; -typedef _Atomic(uint_fast64_t) atomic_uint_fast64_t; -typedef _Atomic(intptr_t) atomic_intptr_t; -typedef _Atomic(uintptr_t) atomic_uintptr_t; -typedef _Atomic(size_t) atomic_size_t; -typedef _Atomic(ptrdiff_t) atomic_ptrdiff_t; -typedef _Atomic(intmax_t) atomic_intmax_t; -typedef _Atomic(uintmax_t) atomic_uintmax_t; - -/* - * 7.17.7 Operations on atomic types. - */ - -/* - * Compiler-specific operations. - */ - -#if defined(__CLANG_ATOMICS) -#define atomic_compare_exchange_strong_explicit(object, expected, \ - desired, success, failure) \ - __c11_atomic_compare_exchange_strong(object, expected, desired, \ - success, failure) -#define atomic_compare_exchange_weak_explicit(object, expected, \ - desired, success, failure) \ - __c11_atomic_compare_exchange_weak(object, expected, desired, \ - success, failure) -#define atomic_exchange_explicit(object, desired, order) \ - __c11_atomic_exchange(object, desired, order) -#define atomic_fetch_add_explicit(object, operand, order) \ - __c11_atomic_fetch_add(object, operand, order) -#define atomic_fetch_and_explicit(object, operand, order) \ - __c11_atomic_fetch_and(object, operand, order) -#define atomic_fetch_or_explicit(object, operand, order) \ - __c11_atomic_fetch_or(object, operand, order) -#define atomic_fetch_sub_explicit(object, operand, order) \ - __c11_atomic_fetch_sub(object, operand, order) -#define atomic_fetch_xor_explicit(object, operand, order) \ - __c11_atomic_fetch_xor(object, operand, order) -#define atomic_load_explicit(object, order) \ - __c11_atomic_load(object, order) -#define atomic_store_explicit(object, desired, order) \ - __c11_atomic_store(object, desired, order) -#elif defined(__GNUC_ATOMICS) -#define atomic_compare_exchange_strong_explicit(object, expected, \ - desired, success, failure) \ - __atomic_compare_exchange_n(object, expected, \ - desired, 0, success, failure) -#define atomic_compare_exchange_weak_explicit(object, expected, \ - desired, success, failure) \ - __atomic_compare_exchange_n(object, expected, \ - desired, 1, success, failure) -#define atomic_exchange_explicit(object, desired, order) \ - __atomic_exchange_n(object, desired, order) -#define atomic_fetch_add_explicit(object, operand, order) \ - __atomic_fetch_add(object, operand, order) -#define atomic_fetch_and_explicit(object, operand, order) \ - __atomic_fetch_and(object, operand, order) -#define atomic_fetch_or_explicit(object, operand, order) \ - __atomic_fetch_or(object, operand, order) -#define atomic_fetch_sub_explicit(object, operand, order) \ - __atomic_fetch_sub(object, operand, order) -#define atomic_fetch_xor_explicit(object, operand, order) \ - __atomic_fetch_xor(object, operand, order) -#define atomic_load_explicit(object, order) \ - __atomic_load_n(object, order) -#define atomic_store_explicit(object, desired, order) \ - __atomic_store_n(object, desired, order) -#else -#define __atomic_apply_stride(object, operand) \ - (((__typeof__((object)->__val))0) + (operand)) -#define atomic_compare_exchange_strong_explicit(object, expected, \ - desired, success, failure) __extension__ ({ \ - __typeof__(expected) __ep = (expected); \ - __typeof__(*__ep) __e = *__ep; \ - (void)(success); (void)(failure); \ - (_Bool)((*__ep = __sync_val_compare_and_swap(&(object)->__val, \ - __e, desired)) == __e); \ -}) -#define atomic_compare_exchange_weak_explicit(object, expected, \ - desired, success, failure) \ - atomic_compare_exchange_strong_explicit(object, expected, \ - desired, success, failure) -#if __has_builtin(__sync_swap) -/* Clang provides a full-barrier atomic exchange - use it if available. */ -#define atomic_exchange_explicit(object, desired, order) \ - ((void)(order), __sync_swap(&(object)->__val, desired)) -#else -/* - * __sync_lock_test_and_set() is only an acquire barrier in theory (although in - * practice it is usually a full barrier) so we need an explicit barrier before - * it. - */ -#define atomic_exchange_explicit(object, desired, order) \ -__extension__ ({ \ - __typeof__(object) __o = (object); \ - __typeof__(desired) __d = (desired); \ - (void)(order); \ - __sync_synchronize(); \ - __sync_lock_test_and_set(&(__o)->__val, __d); \ -}) -#endif -#define atomic_fetch_add_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_add(&(object)->__val, \ - __atomic_apply_stride(object, operand))) -#define atomic_fetch_and_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_and(&(object)->__val, operand)) -#define atomic_fetch_or_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_or(&(object)->__val, operand)) -#define atomic_fetch_sub_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_sub(&(object)->__val, \ - __atomic_apply_stride(object, operand))) -#define atomic_fetch_xor_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_xor(&(object)->__val, operand)) -#define atomic_load_explicit(object, order) \ - ((void)(order), __sync_fetch_and_add(&(object)->__val, 0)) -#define atomic_store_explicit(object, desired, order) \ - ((void)atomic_exchange_explicit(object, desired, order)) -#endif - -/* - * Convenience functions. - * - * Don't provide these in kernel space. In kernel space, we should be - * disciplined enough to always provide explicit barriers. - */ - -#ifndef _KERNEL -#define atomic_compare_exchange_strong(object, expected, desired) \ - atomic_compare_exchange_strong_explicit(object, expected, \ - desired, memory_order_seq_cst, memory_order_seq_cst) -#define atomic_compare_exchange_weak(object, expected, desired) \ - atomic_compare_exchange_weak_explicit(object, expected, \ - desired, memory_order_seq_cst, memory_order_seq_cst) -#define atomic_exchange(object, desired) \ - atomic_exchange_explicit(object, desired, memory_order_seq_cst) -#define atomic_fetch_add(object, operand) \ - atomic_fetch_add_explicit(object, operand, memory_order_seq_cst) -#define atomic_fetch_and(object, operand) \ - atomic_fetch_and_explicit(object, operand, memory_order_seq_cst) -#define atomic_fetch_or(object, operand) \ - atomic_fetch_or_explicit(object, operand, memory_order_seq_cst) -#define atomic_fetch_sub(object, operand) \ - atomic_fetch_sub_explicit(object, operand, memory_order_seq_cst) -#define atomic_fetch_xor(object, operand) \ - atomic_fetch_xor_explicit(object, operand, memory_order_seq_cst) -#define atomic_load(object) \ - atomic_load_explicit(object, memory_order_seq_cst) -#define atomic_store(object, desired) \ - atomic_store_explicit(object, desired, memory_order_seq_cst) -#endif /* !_KERNEL */ - -/* - * 7.17.8 Atomic flag type and operations. - * - * XXX: Assume atomic_bool can be used as an atomic_flag. Is there some - * kind of compiler built-in type we could use? - */ - -typedef struct { - atomic_bool __flag; -} atomic_flag; -#define ATOMIC_FLAG_INIT { ATOMIC_VAR_INIT(0) } - -static __inline _Bool -atomic_flag_test_and_set_explicit(volatile atomic_flag *__object, - memory_order __order) -{ - return (atomic_exchange_explicit(&__object->__flag, 1, __order)); -} - -static __inline void -atomic_flag_clear_explicit(volatile atomic_flag *__object, memory_order __order) -{ - - atomic_store_explicit(&__object->__flag, 0, __order); -} - -#ifndef _KERNEL -static __inline _Bool -atomic_flag_test_and_set(volatile atomic_flag *__object) -{ - - return (atomic_flag_test_and_set_explicit(__object, - memory_order_seq_cst)); -} - -static __inline void -atomic_flag_clear(volatile atomic_flag *__object) -{ - - atomic_flag_clear_explicit(__object, memory_order_seq_cst); -} -#endif /* !_KERNEL */ - -#endif /* !_STDATOMIC_H_ */ diff --git a/include/stdint.h b/include/stdint.h deleted file mode 100644 index 4abdacb..0000000 --- a/include/stdint.h +++ /dev/null @@ -1,466 +0,0 @@ -/* - * Copyright (c) 2004, 2005 by - * Ralf Corsepius, Ulm/Germany. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _STDINT_H -#define _STDINT_H - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef ___int_least8_t_defined -typedef __int_least8_t int_least8_t; -typedef __uint_least8_t uint_least8_t; -#define __int_least8_t_defined 1 -#endif - -#ifdef ___int_least16_t_defined -typedef __int_least16_t int_least16_t; -typedef __uint_least16_t uint_least16_t; -#define __int_least16_t_defined 1 -#endif - -#ifdef ___int_least32_t_defined -typedef __int_least32_t int_least32_t; -typedef __uint_least32_t uint_least32_t; -#define __int_least32_t_defined 1 -#endif - -#ifdef ___int_least64_t_defined -typedef __int_least64_t int_least64_t; -typedef __uint_least64_t uint_least64_t; -#define __int_least64_t_defined 1 -#endif - -/* - * Fastest minimum-width integer types - * - * Assume int to be the fastest type for all types with a width - * less than __INT_MAX__ rsp. INT_MAX - */ -#ifdef __INT_FAST8_TYPE__ - typedef __INT_FAST8_TYPE__ int_fast8_t; - typedef __UINT_FAST8_TYPE__ uint_fast8_t; -#define __int_fast8_t_defined 1 -#elif __STDINT_EXP(INT_MAX) >= 0x7f - typedef signed int int_fast8_t; - typedef unsigned int uint_fast8_t; -#define __int_fast8_t_defined 1 -#endif - -#ifdef __INT_FAST16_TYPE__ - typedef __INT_FAST16_TYPE__ int_fast16_t; - typedef __UINT_FAST16_TYPE__ uint_fast16_t; -#define __int_fast16_t_defined 1 -#elif __STDINT_EXP(INT_MAX) >= 0x7fff - typedef signed int int_fast16_t; - typedef unsigned int uint_fast16_t; -#define __int_fast16_t_defined 1 -#endif - -#ifdef __INT_FAST32_TYPE__ - typedef __INT_FAST32_TYPE__ int_fast32_t; - typedef __UINT_FAST32_TYPE__ uint_fast32_t; -#define __int_fast32_t_defined 1 -#elif __STDINT_EXP(INT_MAX) >= 0x7fffffff - typedef signed int int_fast32_t; - typedef unsigned int uint_fast32_t; -#define __int_fast32_t_defined 1 -#endif - -#ifdef __INT_FAST64_TYPE__ - typedef __INT_FAST64_TYPE__ int_fast64_t; - typedef __UINT_FAST64_TYPE__ uint_fast64_t; -#define __int_fast64_t_defined 1 -#elif __STDINT_EXP(INT_MAX) > 0x7fffffff - typedef signed int int_fast64_t; - typedef unsigned int uint_fast64_t; -#define __int_fast64_t_defined 1 -#endif - -/* - * Fall back to [u]int_least_t for [u]int_fast_t types - * not having been defined, yet. - * Leave undefined, if [u]int_least_t should not be available. - */ -#if !__int_fast8_t_defined -#if __int_least8_t_defined - typedef int_least8_t int_fast8_t; - typedef uint_least8_t uint_fast8_t; -#define __int_fast8_t_defined 1 -#endif -#endif - -#if !__int_fast16_t_defined -#if __int_least16_t_defined - typedef int_least16_t int_fast16_t; - typedef uint_least16_t uint_fast16_t; -#define __int_fast16_t_defined 1 -#endif -#endif - -#if !__int_fast32_t_defined -#if __int_least32_t_defined - typedef int_least32_t int_fast32_t; - typedef uint_least32_t uint_fast32_t; -#define __int_fast32_t_defined 1 -#endif -#endif - -#if !__int_fast64_t_defined -#if __int_least64_t_defined - typedef int_least64_t int_fast64_t; - typedef uint_least64_t uint_fast64_t; -#define __int_fast64_t_defined 1 -#endif -#endif - -#ifdef __INTPTR_TYPE__ -#define INTPTR_MIN (-__INTPTR_MAX__ - 1) -#define INTPTR_MAX (__INTPTR_MAX__) -#define UINTPTR_MAX (__UINTPTR_MAX__) -#elif defined(__PTRDIFF_TYPE__) -#define INTPTR_MAX PTRDIFF_MAX -#define INTPTR_MIN PTRDIFF_MIN -#ifdef __UINTPTR_MAX__ -#define UINTPTR_MAX (__UINTPTR_MAX__) -#else -#define UINTPTR_MAX (2UL * PTRDIFF_MAX + 1) -#endif -#else -/* - * Fallback to hardcoded values, - * should be valid on cpu's with 32bit int/32bit void* - */ -#define INTPTR_MAX (__STDINT_EXP(LONG_MAX)) -#define INTPTR_MIN (-__STDINT_EXP(LONG_MAX) - 1) -#define UINTPTR_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1) -#endif - -/* Limits of Specified-Width Integer Types */ - -#ifdef __INT8_MAX__ -#define INT8_MIN (-__INT8_MAX__ - 1) -#define INT8_MAX (__INT8_MAX__) -#define UINT8_MAX (__UINT8_MAX__) -#elif defined(__int8_t_defined) -#define INT8_MIN (-128) -#define INT8_MAX (127) -#define UINT8_MAX (255) -#endif - -#ifdef __INT_LEAST8_MAX__ -#define INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1) -#define INT_LEAST8_MAX (__INT_LEAST8_MAX__) -#define UINT_LEAST8_MAX (__UINT_LEAST8_MAX__) -#elif defined(__int_least8_t_defined) -#define INT_LEAST8_MIN (-128) -#define INT_LEAST8_MAX (127) -#define UINT_LEAST8_MAX (255) -#else -#error required type int_least8_t missing -#endif - -#ifdef __INT16_MAX__ -#define INT16_MIN (-__INT16_MAX__ - 1) -#define INT16_MAX (__INT16_MAX__) -#define UINT16_MAX (__UINT16_MAX__) -#elif defined(__int16_t_defined) -#define INT16_MIN (-32768) -#define INT16_MAX (32767) -#define UINT16_MAX (65535) -#endif - -#ifdef __INT_LEAST16_MAX__ -#define INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1) -#define INT_LEAST16_MAX (__INT_LEAST16_MAX__) -#define UINT_LEAST16_MAX (__UINT_LEAST16_MAX__) -#elif defined(__int_least16_t_defined) -#define INT_LEAST16_MIN (-32768) -#define INT_LEAST16_MAX (32767) -#define UINT_LEAST16_MAX (65535) -#else -#error required type int_least16_t missing -#endif - -#ifdef __INT32_MAX__ -#define INT32_MIN (-__INT32_MAX__ - 1) -#define INT32_MAX (__INT32_MAX__) -#define UINT32_MAX (__UINT32_MAX__) -#elif defined(__int32_t_defined) -#if defined (_INT32_EQ_LONG) -#define INT32_MIN (-2147483647L-1) -#define INT32_MAX (2147483647L) -#define UINT32_MAX (4294967295UL) -#else -#define INT32_MIN (-2147483647-1) -#define INT32_MAX (2147483647) -#define UINT32_MAX (4294967295U) -#endif -#endif - -#ifdef __INT_LEAST32_MAX__ -#define INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1) -#define INT_LEAST32_MAX (__INT_LEAST32_MAX__) -#define UINT_LEAST32_MAX (__UINT_LEAST32_MAX__) -#elif defined(__int_least32_t_defined) -#if defined (_INT32_EQ_LONG) -#define INT_LEAST32_MIN (-2147483647L-1) -#define INT_LEAST32_MAX (2147483647L) -#define UINT_LEAST32_MAX (4294967295UL) -#else -#define INT_LEAST32_MIN (-2147483647-1) -#define INT_LEAST32_MAX (2147483647) -#define UINT_LEAST32_MAX (4294967295U) -#endif -#else -#error required type int_least32_t missing -#endif - -#ifdef __INT64_MAX__ -#define INT64_MIN (-__INT64_MAX__ - 1) -#define INT64_MAX (__INT64_MAX__) -#define UINT64_MAX (__UINT64_MAX__) -#elif defined(__int64_t_defined) -#if __have_long64 -#define INT64_MIN (-9223372036854775807L-1L) -#define INT64_MAX (9223372036854775807L) -#define UINT64_MAX (18446744073709551615U) -#elif __have_longlong64 -#define INT64_MIN (-9223372036854775807LL-1LL) -#define INT64_MAX (9223372036854775807LL) -#define UINT64_MAX (18446744073709551615ULL) -#endif -#endif - -#ifdef __INT_LEAST64_MAX__ -#define INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1) -#define INT_LEAST64_MAX (__INT_LEAST64_MAX__) -#define UINT_LEAST64_MAX (__UINT_LEAST64_MAX__) -#elif defined(__int_least64_t_defined) -#if __have_long64 -#define INT_LEAST64_MIN (-9223372036854775807L-1L) -#define INT_LEAST64_MAX (9223372036854775807L) -#define UINT_LEAST64_MAX (18446744073709551615U) -#elif __have_longlong64 -#define INT_LEAST64_MIN (-9223372036854775807LL-1LL) -#define INT_LEAST64_MAX (9223372036854775807LL) -#define UINT_LEAST64_MAX (18446744073709551615ULL) -#endif -#endif - -#ifdef __INT_FAST8_MAX__ -#define INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1) -#define INT_FAST8_MAX (__INT_FAST8_MAX__) -#define UINT_FAST8_MAX (__UINT_FAST8_MAX__) -#elif defined(__int_fast8_t_defined) -#if __STDINT_EXP(INT_MAX) >= 0x7f -#define INT_FAST8_MIN (-__STDINT_EXP(INT_MAX)-1) -#define INT_FAST8_MAX (__STDINT_EXP(INT_MAX)) -#define UINT_FAST8_MAX (__STDINT_EXP(INT_MAX)*2U+1U) -#else -#define INT_FAST8_MIN INT_LEAST8_MIN -#define INT_FAST8_MAX INT_LEAST8_MAX -#define UINT_FAST8_MAX UINT_LEAST8_MAX -#endif -#endif - -#ifdef __INT_FAST16_MAX__ -#define INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1) -#define INT_FAST16_MAX (__INT_FAST16_MAX__) -#define UINT_FAST16_MAX (__UINT_FAST16_MAX__) -#elif defined(__int_fast16_t_defined) -#if __STDINT_EXP(INT_MAX) >= 0x7fff -#define INT_FAST16_MIN (-__STDINT_EXP(INT_MAX)-1) -#define INT_FAST16_MAX (__STDINT_EXP(INT_MAX)) -#define UINT_FAST16_MAX (__STDINT_EXP(INT_MAX)*2U+1U) -#else -#define INT_FAST16_MIN INT_LEAST16_MIN -#define INT_FAST16_MAX INT_LEAST16_MAX -#define UINT_FAST16_MAX UINT_LEAST16_MAX -#endif -#endif - -#ifdef __INT_FAST32_MAX__ -#define INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1) -#define INT_FAST32_MAX (__INT_FAST32_MAX__) -#define UINT_FAST32_MAX (__UINT_FAST32_MAX__) -#elif defined(__int_fast32_t_defined) -#if __STDINT_EXP(INT_MAX) >= 0x7fffffff -#define INT_FAST32_MIN (-__STDINT_EXP(INT_MAX)-1) -#define INT_FAST32_MAX (__STDINT_EXP(INT_MAX)) -#define UINT_FAST32_MAX (__STDINT_EXP(INT_MAX)*2U+1U) -#else -#define INT_FAST32_MIN INT_LEAST32_MIN -#define INT_FAST32_MAX INT_LEAST32_MAX -#define UINT_FAST32_MAX UINT_LEAST32_MAX -#endif -#endif - -#ifdef __INT_FAST64_MAX__ -#define INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1) -#define INT_FAST64_MAX (__INT_FAST64_MAX__) -#define UINT_FAST64_MAX (__UINT_FAST64_MAX__) -#elif defined(__int_fast64_t_defined) -#if __STDINT_EXP(INT_MAX) > 0x7fffffff -#define INT_FAST64_MIN (-__STDINT_EXP(INT_MAX)-1) -#define INT_FAST64_MAX (__STDINT_EXP(INT_MAX)) -#define UINT_FAST64_MAX (__STDINT_EXP(INT_MAX)*2U+1U) -#else -#define INT_FAST64_MIN INT_LEAST64_MIN -#define INT_FAST64_MAX INT_LEAST64_MAX -#define UINT_FAST64_MAX UINT_LEAST64_MAX -#endif -#endif - -#ifdef __INTMAX_MAX__ -#define INTMAX_MAX (__INTMAX_MAX__) -#define INTMAX_MIN (-INTMAX_MAX - 1) -#elif defined(__INTMAX_TYPE__) -/* All relevant GCC versions prefer long to long long for intmax_t. */ -#define INTMAX_MAX INT64_MAX -#define INTMAX_MIN INT64_MIN -#endif - -#ifdef __UINTMAX_MAX__ -#define UINTMAX_MAX (__UINTMAX_MAX__) -#elif defined(__UINTMAX_TYPE__) -/* All relevant GCC versions prefer long to long long for intmax_t. */ -#define UINTMAX_MAX UINT64_MAX -#endif - -/* This must match size_t in stddef.h, currently long unsigned int */ -#ifdef __SIZE_MAX__ -#define SIZE_MAX (__SIZE_MAX__) -#else -#define SIZE_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1) -#endif - -/* This must match sig_atomic_t in (currently int) */ -#define SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1) -#define SIG_ATOMIC_MAX (__STDINT_EXP(INT_MAX)) - -/* This must match ptrdiff_t in (currently long int) */ -#ifdef __PTRDIFF_MAX__ -#define PTRDIFF_MAX (__PTRDIFF_MAX__) -#else -#define PTRDIFF_MAX (__STDINT_EXP(LONG_MAX)) -#endif -#define PTRDIFF_MIN (-PTRDIFF_MAX - 1) - -/* This must match definition in */ -#ifndef WCHAR_MIN -#ifdef __WCHAR_MIN__ -#define WCHAR_MIN (__WCHAR_MIN__) -#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0) -#define WCHAR_MIN (0 + L'\0') -#else -#define WCHAR_MIN (-0x7fffffff - 1 + L'\0') -#endif -#endif - -/* This must match definition in */ -#ifndef WCHAR_MAX -#ifdef __WCHAR_MAX__ -#define WCHAR_MAX (__WCHAR_MAX__) -#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0) -#define WCHAR_MAX (0xffffffffu + L'\0') -#else -#define WCHAR_MAX (0x7fffffff + L'\0') -#endif -#endif - -/* wint_t is unsigned int on almost all GCC targets. */ -#ifdef __WINT_MAX__ -#define WINT_MAX (__WINT_MAX__) -#else -#define WINT_MAX (__STDINT_EXP(INT_MAX) * 2U + 1U) -#endif -#ifdef __WINT_MIN__ -#define WINT_MIN (__WINT_MIN__) -#else -#define WINT_MIN (0U) -#endif - -/** Macros for minimum-width integer constant expressions */ -#ifdef __INT8_C -#define INT8_C(x) __INT8_C(x) -#define UINT8_C(x) __UINT8_C(x) -#else -#define INT8_C(x) x -#if __STDINT_EXP(INT_MAX) > 0x7f -#define UINT8_C(x) x -#else -#define UINT8_C(x) x##U -#endif -#endif - -#ifdef __INT16_C -#define INT16_C(x) __INT16_C(x) -#define UINT16_C(x) __UINT16_C(x) -#else -#define INT16_C(x) x -#if __STDINT_EXP(INT_MAX) > 0x7fff -#define UINT16_C(x) x -#else -#define UINT16_C(x) x##U -#endif -#endif - -#ifdef __INT32_C -#define INT32_C(x) __INT32_C(x) -#define UINT32_C(x) __UINT32_C(x) -#else -#if defined (_INT32_EQ_LONG) -#define INT32_C(x) x##L -#define UINT32_C(x) x##UL -#else -#define INT32_C(x) x -#define UINT32_C(x) x##U -#endif -#endif - -#ifdef __INT64_C -#define INT64_C(x) __INT64_C(x) -#define UINT64_C(x) __UINT64_C(x) -#else -#if __int64_t_defined -#if __have_long64 -#define INT64_C(x) x##L -#define UINT64_C(x) x##UL -#else -#define INT64_C(x) x##LL -#define UINT64_C(x) x##ULL -#endif -#endif -#endif - -/** Macros for greatest-width integer constant expression */ -#ifdef __INTMAX_C -#define INTMAX_C(x) __INTMAX_C(x) -#define UINTMAX_C(x) __UINTMAX_C(x) -#else -#if __have_long64 -#define INTMAX_C(x) x##L -#define UINTMAX_C(x) x##UL -#else -#define INTMAX_C(x) x##LL -#define UINTMAX_C(x) x##ULL -#endif -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _STDINT_H */ diff --git a/include/stdio.h b/include/stdio.h deleted file mode 100644 index 7796657..0000000 --- a/include/stdio.h +++ /dev/null @@ -1,807 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - * - * @(#)stdio.h 5.3 (Berkeley) 3/15/86 - */ - -/* - * NB: to fit things in six character monocase externals, the - * stdio code uses the prefix `__s' for stdio objects, typically - * followed by a three-character attempt at a mnemonic. - */ - -#ifndef _STDIO_H_ -#define _STDIO_H_ - -#include "_ansi.h" - -#define _FSTDIO /* ``function stdio'' */ - -#define __need_size_t -#define __need_NULL -#include -#include - -/* typedef only __gnuc_va_list, used throughout the header */ -#define __need___va_list -#include - -/* typedef va_list only when required */ -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE -#ifdef __GNUC__ -#ifndef _VA_LIST_DEFINED -typedef __gnuc_va_list va_list; -#define _VA_LIST_DEFINED -#endif -#else /* !__GNUC__ */ -#include -#endif -#endif /* __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE */ - -/* - * defines __FILE, _fpos_t. - * They must be defined there because struct _reent needs them (and we don't - * want reent.h to include this file. - */ - -#include -#include - -_BEGIN_STD_C - -#if !defined(__FILE_defined) -typedef __FILE FILE; -# define __FILE_defined -#endif - -typedef _fpos_t fpos_t; -#ifdef __LARGE64_FILES -typedef _fpos64_t fpos64_t; -#endif - -#ifndef _OFF_T_DECLARED -typedef __off_t off_t; -#define _OFF_T_DECLARED -#endif - -#ifndef _SSIZE_T_DECLARED -typedef _ssize_t ssize_t; -#define _SSIZE_T_DECLARED -#endif - -#include - -#define __SLBF 0x0001 /* line buffered */ -#define __SNBF 0x0002 /* unbuffered */ -#define __SRD 0x0004 /* OK to read */ -#define __SWR 0x0008 /* OK to write */ - /* RD and WR are never simultaneously asserted */ -#define __SRW 0x0010 /* open for reading & writing */ -#define __SEOF 0x0020 /* found EOF */ -#define __SERR 0x0040 /* found error */ -#define __SMBF 0x0080 /* _buf is from malloc */ -#define __SAPP 0x0100 /* fdopen()ed in append mode - so must write to end */ -#define __SSTR 0x0200 /* this is an sprintf/snprintf string */ -#define __SOPT 0x0400 /* do fseek() optimisation */ -#define __SNPT 0x0800 /* do not do fseek() optimisation */ -#define __SOFF 0x1000 /* set iff _offset is in fact correct */ -#define __SORD 0x2000 /* true => stream orientation (byte/wide) decided */ -#if defined(__CYGWIN__) -# define __SCLE 0x4000 /* convert line endings CR/LF <-> NL */ -#endif -#define __SL64 0x8000 /* is 64-bit offset large file */ - -/* _flags2 flags */ -#define __SNLK 0x0001 /* stdio functions do not lock streams themselves */ -#define __SWID 0x2000 /* true => stream orientation wide, false => byte, only valid if __SORD in _flags is true */ - -/* - * The following three definitions are for ANSI C, which took them - * from System V, which stupidly took internal interface macros and - * made them official arguments to setvbuf(), without renaming them. - * Hence, these ugly _IOxxx names are *supposed* to appear in user code. - * - * Although these happen to match their counterparts above, the - * implementation does not rely on that (so these could be renumbered). - */ -#define _IOFBF 0 /* setvbuf should set fully buffered */ -#define _IOLBF 1 /* setvbuf should set line buffered */ -#define _IONBF 2 /* setvbuf should set unbuffered */ - -#define EOF (-1) - -#ifdef __BUFSIZ__ -#define BUFSIZ __BUFSIZ__ -#else -#define BUFSIZ 1024 -#endif - -#ifdef __FOPEN_MAX__ -#define FOPEN_MAX __FOPEN_MAX__ -#else -#define FOPEN_MAX 20 -#endif - -#ifdef __FILENAME_MAX__ -#define FILENAME_MAX __FILENAME_MAX__ -#else -#define FILENAME_MAX 1024 -#endif - -#ifdef __L_tmpnam__ -#define L_tmpnam __L_tmpnam__ -#else -#define L_tmpnam FILENAME_MAX -#endif - -#if __BSD_VISIBLE || __XSI_VISIBLE -#define P_tmpdir "/tmp" -#endif - -#ifndef SEEK_SET -#define SEEK_SET 0 /* set file offset to offset */ -#endif -#ifndef SEEK_CUR -#define SEEK_CUR 1 /* set file offset to current plus offset */ -#endif -#ifndef SEEK_END -#define SEEK_END 2 /* set file offset to EOF plus offset */ -#endif - -#define TMP_MAX 26 - -#define stdin _REENT_STDIN(_REENT) -#define stdout _REENT_STDOUT(_REENT) -#define stderr _REENT_STDERR(_REENT) - -#define _stdin_r(x) _REENT_STDIN(x) -#define _stdout_r(x) _REENT_STDOUT(x) -#define _stderr_r(x) _REENT_STDERR(x) - -/* - * Functions defined in ANSI C standard. - */ - -#ifndef __VALIST -#ifdef __GNUC__ -#define __VALIST __gnuc_va_list -#else -#define __VALIST char* -#endif -#endif - -#if __POSIX_VISIBLE -char * ctermid (char *); -#endif -#if __GNU_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 600) -char * cuserid (char *); -#endif -FILE * tmpfile (void); -char * tmpnam (char *); -#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 -char * tempnam (const char *, const char *) __malloc_like __result_use_check; -#endif -int fclose (FILE *); -int fflush (FILE *); -FILE * freopen (const char *__restrict, const char *__restrict, FILE *__restrict); -void setbuf (FILE *__restrict, char *__restrict); -int setvbuf (FILE *__restrict, char *__restrict, int, size_t); -int fprintf (FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int fscanf (FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); -int printf (const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 1, 2))); -int scanf (const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 1, 2))); -int sscanf (const char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); -int vfprintf (FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int vprintf (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 1, 0))); -int vsprintf (char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int fgetc (FILE *); -char * fgets (char *__restrict, int, FILE *__restrict); -int fputc (int, FILE *); -int fputs (const char *__restrict, FILE *__restrict); -int getc (FILE *); -int getchar (void); -char * gets (char *); -int putc (int, FILE *); -int putchar (int); -int puts (const char *); -int ungetc (int, FILE *); -size_t fread (void *__restrict, size_t _size, size_t _n, FILE *__restrict); -size_t fwrite (const void *__restrict , size_t _size, size_t _n, FILE *); -#ifdef _LIBC -int fgetpos (FILE *, _fpos_t *); -#else -int fgetpos (FILE *__restrict, fpos_t *__restrict); -#endif -int fseek (FILE *, long, int); -#ifdef _LIBC -int fsetpos (FILE *, const _fpos_t *); -#else -int fsetpos (FILE *, const fpos_t *); -#endif -long ftell ( FILE *); -void rewind (FILE *); -void clearerr (FILE *); -int feof (FILE *); -int ferror (FILE *); -void perror (const char *); -#ifndef _REENT_ONLY -FILE * fopen (const char *__restrict _name, const char *__restrict _type); -int sprintf (char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int remove (const char *); -int rename (const char *, const char *); -#ifdef _LIBC -int _rename (const char *, const char *); -#endif -#endif -#if __LARGEFILE_VISIBLE || __POSIX_VISIBLE >= 200112 -#ifdef _LIBC -int fseeko (FILE *, _off_t, int); -_off_t ftello (FILE *); -#else -int fseeko (FILE *, off_t, int); -off_t ftello (FILE *); -#endif -#endif -#if __GNU_VISIBLE -int fcloseall (void); -#endif -#ifndef _REENT_ONLY -#if __ISO_C_VISIBLE >= 1999 -int snprintf (char *__restrict, size_t, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int vsnprintf (char *__restrict, size_t, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int vfscanf (FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); -int vscanf (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 1, 0))); -int vsscanf (const char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); -#endif -#if __GNU_VISIBLE -int asprintf (char **__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int vasprintf (char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -#endif -#if __MISC_VISIBLE /* Newlib-specific */ -int asiprintf (char **, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -char * asniprintf (char *, size_t *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -char * asnprintf (char *__restrict, size_t *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -#ifndef diprintf -int diprintf (int, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -#endif -int fiprintf (FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int fiscanf (FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); -int iprintf (const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 1, 2))); -int iscanf (const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 1, 2))); -int siprintf (char *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int siscanf (const char *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); -int sniprintf (char *, size_t, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int vasiprintf (char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -char * vasniprintf (char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -char * vasnprintf (char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int vdiprintf (int, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int vfiprintf (FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int vfiscanf (FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); -int viprintf (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 1, 0))); -int viscanf (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 1, 0))); -int vsiprintf (char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int vsiscanf (const char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); -int vsniprintf (char *, size_t, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -#endif /* __MISC_VISIBLE */ -#endif /* !_REENT_ONLY */ - -/* - * Routines in POSIX 1003.1:2001. - */ - -#if __POSIX_VISIBLE -#ifndef _REENT_ONLY -FILE * fdopen (int, const char *); -#endif -int fileno (FILE *); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE >= 199209 -int pclose (FILE *); -FILE * popen (const char *, const char *); -#endif - -#if __BSD_VISIBLE -void setbuffer (FILE *, char *, int); -int setlinebuf (FILE *); -#endif - -#if __MISC_VISIBLE || (__XSI_VISIBLE && __POSIX_VISIBLE < 200112) -int getw (FILE *); -int putw (int, FILE *); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE -int getc_unlocked (FILE *); -int getchar_unlocked (void); -void flockfile (FILE *); -int ftrylockfile (FILE *); -void funlockfile (FILE *); -int putc_unlocked (int, FILE *); -int putchar_unlocked (int); -#endif - -/* - * Routines in POSIX 1003.1:200x. - */ - -#if __POSIX_VISIBLE >= 200809 -# ifndef _REENT_ONLY -# ifndef dprintf -int dprintf (int, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -# endif -FILE * fmemopen (void *__restrict, size_t, const char *__restrict); -/* getdelim - see __getdelim for now */ -/* getline - see __getline for now */ -FILE * open_memstream (char **, size_t *); -int vdprintf (int, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -# endif -#endif -#if __ATFILE_VISIBLE -int renameat (int, const char *, int, const char *); -# ifdef __CYGWIN__ -int renameat2 (int, const char *, int, const char *, unsigned int); -# endif -#endif - -/* - * Recursive versions of the above. - */ - -int _asiprintf_r (struct _reent *, char **, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -char * _asniprintf_r (struct _reent *, char *, size_t *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5))); -char * _asnprintf_r (struct _reent *, char *__restrict, size_t *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5))); -int _asprintf_r (struct _reent *, char **__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _diprintf_r (struct _reent *, int, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _dprintf_r (struct _reent *, int, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _fclose_r (struct _reent *, FILE *); -int _fcloseall_r (struct _reent *); -FILE * _fdopen_r (struct _reent *, int, const char *); -int _fflush_r (struct _reent *, FILE *); -int _fgetc_r (struct _reent *, FILE *); -int _fgetc_unlocked_r (struct _reent *, FILE *); -char * _fgets_r (struct _reent *, char *__restrict, int, FILE *__restrict); -char * _fgets_unlocked_r (struct _reent *, char *__restrict, int, FILE *__restrict); -#ifdef _LIBC -int _fgetpos_r (struct _reent *, FILE *__restrict, _fpos_t *__restrict); -int _fsetpos_r (struct _reent *, FILE *, const _fpos_t *); -#else -int _fgetpos_r (struct _reent *, FILE *, fpos_t *); -int _fsetpos_r (struct _reent *, FILE *, const fpos_t *); -#endif -int _fiprintf_r (struct _reent *, FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _fiscanf_r (struct _reent *, FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4))); -FILE * _fmemopen_r (struct _reent *, void *__restrict, size_t, const char *__restrict); -FILE * _fopen_r (struct _reent *, const char *__restrict, const char *__restrict); -FILE * _freopen_r (struct _reent *, const char *__restrict, const char *__restrict, FILE *__restrict); -int _fprintf_r (struct _reent *, FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _fpurge_r (struct _reent *, FILE *); -int _fputc_r (struct _reent *, int, FILE *); -int _fputc_unlocked_r (struct _reent *, int, FILE *); -int _fputs_r (struct _reent *, const char *__restrict, FILE *__restrict); -int _fputs_unlocked_r (struct _reent *, const char *__restrict, FILE *__restrict); -size_t _fread_r (struct _reent *, void *__restrict, size_t _size, size_t _n, FILE *__restrict); -size_t _fread_unlocked_r (struct _reent *, void *__restrict, size_t _size, size_t _n, FILE *__restrict); -int _fscanf_r (struct _reent *, FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4))); -int _fseek_r (struct _reent *, FILE *, long, int); -int _fseeko_r (struct _reent *, FILE *, _off_t, int); -long _ftell_r (struct _reent *, FILE *); -_off_t _ftello_r (struct _reent *, FILE *); -void _rewind_r (struct _reent *, FILE *); -size_t _fwrite_r (struct _reent *, const void *__restrict, size_t _size, size_t _n, FILE *__restrict); -size_t _fwrite_unlocked_r (struct _reent *, const void *__restrict, size_t _size, size_t _n, FILE *__restrict); -int _getc_r (struct _reent *, FILE *); -int _getc_unlocked_r (struct _reent *, FILE *); -int _getchar_r (struct _reent *); -int _getchar_unlocked_r (struct _reent *); -char * _gets_r (struct _reent *, char *); -int _iprintf_r (struct _reent *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int _iscanf_r (struct _reent *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); -FILE * _open_memstream_r (struct _reent *, char **, size_t *); -void _perror_r (struct _reent *, const char *); -int _printf_r (struct _reent *, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int _putc_r (struct _reent *, int, FILE *); -int _putc_unlocked_r (struct _reent *, int, FILE *); -int _putchar_unlocked_r (struct _reent *, int); -int _putchar_r (struct _reent *, int); -int _puts_r (struct _reent *, const char *); -int _remove_r (struct _reent *, const char *); -int _rename_r (struct _reent *, - const char *_old, const char *_new); -int _scanf_r (struct _reent *, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); -int _siprintf_r (struct _reent *, char *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _siscanf_r (struct _reent *, const char *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4))); -int _sniprintf_r (struct _reent *, char *, size_t, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5))); -int _snprintf_r (struct _reent *, char *__restrict, size_t, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5))); -int _sprintf_r (struct _reent *, char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _sscanf_r (struct _reent *, const char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4))); -char * _tempnam_r (struct _reent *, const char *, const char *); -FILE * _tmpfile_r (struct _reent *); -char * _tmpnam_r (struct _reent *, char *); -int _ungetc_r (struct _reent *, int, FILE *); -int _vasiprintf_r (struct _reent *, char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -char * _vasniprintf_r (struct _reent*, char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0))); -char * _vasnprintf_r (struct _reent*, char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0))); -int _vasprintf_r (struct _reent *, char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vdiprintf_r (struct _reent *, int, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vdprintf_r (struct _reent *, int, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vfiprintf_r (struct _reent *, FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vfiscanf_r (struct _reent *, FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0))); -int _vfprintf_r (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vfscanf_r (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0))); -int _viprintf_r (struct _reent *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int _viscanf_r (struct _reent *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); -int _vprintf_r (struct _reent *, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int _vscanf_r (struct _reent *, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); -int _vsiprintf_r (struct _reent *, char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vsiscanf_r (struct _reent *, const char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0))); -int _vsniprintf_r (struct _reent *, char *, size_t, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0))); -int _vsnprintf_r (struct _reent *, char *__restrict, size_t, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0))); -int _vsprintf_r (struct _reent *, char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vsscanf_r (struct _reent *, const char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0))); - -/* Other extensions. */ - -int fpurge (FILE *); -ssize_t __getdelim (char **, size_t *, int, FILE *); -ssize_t __getline (char **, size_t *, FILE *); - -#if __MISC_VISIBLE -void clearerr_unlocked (FILE *); -int feof_unlocked (FILE *); -int ferror_unlocked (FILE *); -int fileno_unlocked (FILE *); -int fflush_unlocked (FILE *); -int fgetc_unlocked (FILE *); -int fputc_unlocked (int, FILE *); -size_t fread_unlocked (void *__restrict, size_t _size, size_t _n, FILE *__restrict); -size_t fwrite_unlocked (const void *__restrict , size_t _size, size_t _n, FILE *); -#endif - -#if __GNU_VISIBLE -char * fgets_unlocked (char *__restrict, int, FILE *__restrict); -int fputs_unlocked (const char *__restrict, FILE *__restrict); -#endif - -#ifdef __LARGE64_FILES -#if !defined(__CYGWIN__) || defined(_LIBC) -FILE * fdopen64 (int, const char *); -FILE * fopen64 (const char *, const char *); -FILE * freopen64 (const char *, const char *, FILE *); -_off64_t ftello64 (FILE *); -_off64_t fseeko64 (FILE *, _off64_t, int); -int fgetpos64 (FILE *, _fpos64_t *); -int fsetpos64 (FILE *, const _fpos64_t *); -FILE * tmpfile64 (void); - -FILE * _fdopen64_r (struct _reent *, int, const char *); -FILE * _fopen64_r (struct _reent *,const char *, const char *); -FILE * _freopen64_r (struct _reent *, const char *, const char *, FILE *); -_off64_t _ftello64_r (struct _reent *, FILE *); -_off64_t _fseeko64_r (struct _reent *, FILE *, _off64_t, int); -int _fgetpos64_r (struct _reent *, FILE *, _fpos64_t *); -int _fsetpos64_r (struct _reent *, FILE *, const _fpos64_t *); -FILE * _tmpfile64_r (struct _reent *); -#endif /* !__CYGWIN__ */ -#endif /* __LARGE64_FILES */ - -/* - * Routines internal to the implementation. - */ - -int __srget_r (struct _reent *, FILE *); -int __swbuf_r (struct _reent *, int, FILE *); - -/* - * Stdio function-access interface. - */ - -#if __BSD_VISIBLE -# ifdef __LARGE64_FILES -FILE *funopen (const void *__cookie, - int (*__readfn)(void *__c, char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(void *__c, const char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - _fpos64_t (*__seekfn)(void *__c, _fpos64_t __off, int __whence), - int (*__closefn)(void *__c)); -FILE *_funopen_r (struct _reent *, const void *__cookie, - int (*__readfn)(void *__c, char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(void *__c, const char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - _fpos64_t (*__seekfn)(void *__c, _fpos64_t __off, int __whence), - int (*__closefn)(void *__c)); -# else -FILE *funopen (const void *__cookie, - int (*__readfn)(void *__cookie, char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(void *__cookie, const char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - fpos_t (*__seekfn)(void *__cookie, fpos_t __off, int __whence), - int (*__closefn)(void *__cookie)); -FILE *_funopen_r (struct _reent *, const void *__cookie, - int (*__readfn)(void *__cookie, char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(void *__cookie, const char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - fpos_t (*__seekfn)(void *__cookie, fpos_t __off, int __whence), - int (*__closefn)(void *__cookie)); -# endif /* !__LARGE64_FILES */ - -# define fropen(__cookie, __fn) funopen(__cookie, __fn, NULL, NULL, NULL) -# define fwopen(__cookie, __fn) funopen(__cookie, NULL, __fn, NULL, NULL) -#endif /* __BSD_VISIBLE */ - -#if __GNU_VISIBLE -typedef ssize_t cookie_read_function_t(void *__cookie, char *__buf, size_t __n); -typedef ssize_t cookie_write_function_t(void *__cookie, const char *__buf, - size_t __n); -# ifdef __LARGE64_FILES -typedef int cookie_seek_function_t(void *__cookie, _off64_t *__off, - int __whence); -# else -typedef int cookie_seek_function_t(void *__cookie, off_t *__off, int __whence); -# endif /* !__LARGE64_FILES */ -typedef int cookie_close_function_t(void *__cookie); -typedef struct -{ - /* These four struct member names are dictated by Linux; hopefully, - they don't conflict with any macros. */ - cookie_read_function_t *read; - cookie_write_function_t *write; - cookie_seek_function_t *seek; - cookie_close_function_t *close; -} cookie_io_functions_t; -FILE *fopencookie (void *__cookie, - const char *__mode, cookie_io_functions_t __functions); -FILE *_fopencookie_r (struct _reent *, void *__cookie, - const char *__mode, cookie_io_functions_t __functions); -#endif /* __GNU_VISIBLE */ - -#ifndef __CUSTOM_FILE_IO__ -/* - * The __sfoo macros are here so that we can - * define function versions in the C library. - */ -#define __sgetc_raw_r(__ptr, __f) (--(__f)->_r < 0 ? __srget_r(__ptr, __f) : (int)(*(__f)->_p++)) - -#ifdef __SCLE -/* For a platform with CR/LF, additional logic is required by - __sgetc_r which would otherwise simply be a macro; therefore we - use an inlined function. The function is only meant to be inlined - in place as used and the function body should never be emitted. - - There are two possible means to this end when compiling with GCC, - one when compiling with a standard C99 compiler, and for other - compilers we're just stuck. At the moment, this issue only - affects the Cygwin target, so we'll most likely be using GCC. */ - -_ELIDABLE_INLINE int __sgetc_r(struct _reent *__ptr, FILE *__p); - -_ELIDABLE_INLINE int __sgetc_r(struct _reent *__ptr, FILE *__p) - { - int __c = __sgetc_raw_r(__ptr, __p); - if ((__p->_flags & __SCLE) && (__c == '\r')) - { - int __c2 = __sgetc_raw_r(__ptr, __p); - if (__c2 == '\n') - __c = __c2; - else - ungetc(__c2, __p); - } - return __c; - } -#else -#define __sgetc_r(__ptr, __p) __sgetc_raw_r(__ptr, __p) -#endif - -#ifdef __GNUC__ -_ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { -#ifdef __SCLE - if ((_p->_flags & __SCLE) && _c == '\n') - __sputc_r (_ptr, '\r', _p); -#endif - if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n')) - return (*_p->_p++ = _c); - else - return (__swbuf_r(_ptr, _c, _p)); -} -#else -/* - * This has been tuned to generate reasonable code on the vax using pcc - */ -#define __sputc_raw_r(__ptr, __c, __p) \ - (--(__p)->_w < 0 ? \ - (__p)->_w >= (__p)->_lbfsize ? \ - (*(__p)->_p = (__c)), *(__p)->_p != '\n' ? \ - (int)*(__p)->_p++ : \ - __swbuf_r(__ptr, '\n', __p) : \ - __swbuf_r(__ptr, (int)(__c), __p) : \ - (*(__p)->_p = (__c), (int)*(__p)->_p++)) -#ifdef __SCLE -#define __sputc_r(__ptr, __c, __p) \ - ((((__p)->_flags & __SCLE) && ((__c) == '\n')) \ - ? __sputc_raw_r(__ptr, '\r', (__p)) : 0 , \ - __sputc_raw_r((__ptr), (__c), (__p))) -#else -#define __sputc_r(__ptr, __c, __p) __sputc_raw_r(__ptr, __c, __p) -#endif -#endif - -#define __sfeof(p) ((int)(((p)->_flags & __SEOF) != 0)) -#define __sferror(p) ((int)(((p)->_flags & __SERR) != 0)) -#define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF))) -#define __sfileno(p) ((p)->_file) - -#ifndef __cplusplus -#ifndef _REENT_SMALL -#define feof(p) __sfeof(p) -#define ferror(p) __sferror(p) -#define clearerr(p) __sclearerr(p) - -#if __MISC_VISIBLE -#define feof_unlocked(p) __sfeof(p) -#define ferror_unlocked(p) __sferror(p) -#define clearerr_unlocked(p) __sclearerr(p) -#endif /* __MISC_VISIBLE */ -#endif /* _REENT_SMALL */ - -#if 0 /* __POSIX_VISIBLE - FIXME: must initialize stdio first, use fn */ -#define fileno(p) __sfileno(p) -#endif - -static __inline int -_getchar_unlocked(void) -{ - struct _reent *_ptr; - - _ptr = _REENT; - return (__sgetc_r(_ptr, _stdin_r(_ptr))); -} - -static __inline int -_putchar_unlocked(int _c) -{ - struct _reent *_ptr; - - _ptr = _REENT; - return (__sputc_r(_ptr, _c, _stdout_r(_ptr))); -} - -#ifdef __SINGLE_THREAD__ -#define getc(_p) __sgetc_r(_REENT, _p) -#define putc(_c, _p) __sputc_r(_REENT, _c, _p) -#define getchar() _getchar_unlocked() -#define putchar(_c) _putchar_unlocked(_c) -#endif /* __SINGLE_THREAD__ */ - -#if __MISC_VISIBLE || __POSIX_VISIBLE -#define getchar_unlocked() _getchar_unlocked() -#define putchar_unlocked(_c) _putchar_unlocked(_c) -#endif -#endif /* __cplusplus */ - -#if __MISC_VISIBLE -/* fast always-buffered version, true iff error */ -#define fast_putc(x,p) (--(p)->_w < 0 ? \ - __swbuf_r(_REENT, (int)(x), p) == EOF : (*(p)->_p = (x), (p)->_p++, 0)) -#endif - -#if __GNU_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 600) -#define L_cuserid 9 /* posix says it goes in stdio.h :( */ -#endif -#if __POSIX_VISIBLE -#define L_ctermid 16 -#endif - -#else /* __CUSTOM_FILE_IO__ */ - -#define getchar() getc(stdin) -#define putchar(x) putc(x, stdout) - -#if __MISC_VISIBLE || __POSIX_VISIBLE -#define getchar_unlocked() getc_unlocked(stdin) -#define putchar_unlocked(x) putc_unlocked(x, stdout) -#endif - -#endif /* !__CUSTOM_FILE_IO__ */ - -_END_STD_C - -#if __SSP_FORTIFY_LEVEL > 0 -#include -#endif - -#endif /* _STDIO_H_ */ diff --git a/include/stdio_ext.h b/include/stdio_ext.h deleted file mode 100644 index 231262d..0000000 --- a/include/stdio_ext.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * stdio_ext.h - * - * Definitions for I/O internal operations, originally from Solaris. - */ - -#ifndef _STDIO_EXT_H_ -#define _STDIO_EXT_H_ - -#ifdef __rtems__ -#error " not supported" -#endif - -#include - -#define FSETLOCKING_QUERY 0 -#define FSETLOCKING_INTERNAL 1 -#define FSETLOCKING_BYCALLER 2 - -_BEGIN_STD_C - -void __fpurge (FILE *); -int __fsetlocking (FILE *, int); - -/* TODO: - - void _flushlbf (void); -*/ - -#ifdef __GNUC__ - -_ELIDABLE_INLINE size_t -__fbufsize (FILE *__fp) { return (size_t) __fp->_bf._size; } - -_ELIDABLE_INLINE int -__freading (FILE *__fp) { return (__fp->_flags & __SRD) != 0; } - -_ELIDABLE_INLINE int -__fwriting (FILE *__fp) { return (__fp->_flags & __SWR) != 0; } - -_ELIDABLE_INLINE int -__freadable (FILE *__fp) { return (__fp->_flags & (__SRD | __SRW)) != 0; } - -_ELIDABLE_INLINE int -__fwritable (FILE *__fp) { return (__fp->_flags & (__SWR | __SRW)) != 0; } - -_ELIDABLE_INLINE int -__flbf (FILE *__fp) { return (__fp->_flags & __SLBF) != 0; } - -_ELIDABLE_INLINE size_t -__fpending (FILE *__fp) { return __fp->_p - __fp->_bf._base; } - -#else - -size_t __fbufsize (FILE *); -int __freading (FILE *); -int __fwriting (FILE *); -int __freadable (FILE *); -int __fwritable (FILE *); -int __flbf (FILE *); -size_t __fpending (FILE *); - -#ifndef __cplusplus - -#define __fbufsize(__fp) ((size_t) (__fp)->_bf._size) -#define __freading(__fp) (((__fp)->_flags & __SRD) != 0) -#define __fwriting(__fp) (((__fp)->_flags & __SWR) != 0) -#define __freadable(__fp) (((__fp)->_flags & (__SRD | __SRW)) != 0) -#define __fwritable(__fp) (((__fp)->_flags & (__SWR | __SRW)) != 0) -#define __flbf(__fp) (((__fp)->_flags & __SLBF) != 0) -#define __fpending(__fp) ((size_t) ((__fp)->_p - (__fp)->_bf._base)) - -#endif /* __cplusplus */ - -#endif /* __GNUC__ */ - -_END_STD_C - -#endif /* _STDIO_EXT_H_ */ diff --git a/include/stdlib.h b/include/stdlib.h deleted file mode 100644 index 15b3494..0000000 --- a/include/stdlib.h +++ /dev/null @@ -1,345 +0,0 @@ -/* - * stdlib.h - * - * Definitions for common types, variables, and functions. - */ - -#ifndef _STDLIB_H_ -#define _STDLIB_H_ - -#include -#include "_ansi.h" - -#define __need_size_t -#define __need_wchar_t -#define __need_NULL -#include - -#include -#include -#include -#ifndef __STRICT_ANSI__ -#include -#endif - -#ifdef __CYGWIN__ -#include -#endif - -#if __GNU_VISIBLE -#include -#endif - -_BEGIN_STD_C - -typedef struct -{ - int quot; /* quotient */ - int rem; /* remainder */ -} div_t; - -typedef struct -{ - long quot; /* quotient */ - long rem; /* remainder */ -} ldiv_t; - -#if __ISO_C_VISIBLE >= 1999 -typedef struct -{ - long long int quot; /* quotient */ - long long int rem; /* remainder */ -} lldiv_t; -#endif - -#ifndef __compar_fn_t_defined -#define __compar_fn_t_defined -typedef int (*__compar_fn_t) (const void *, const void *); -#endif - -#define EXIT_FAILURE 1 -#define EXIT_SUCCESS 0 - -#define RAND_MAX __RAND_MAX - -int __locale_mb_cur_max (void); - -#define MB_CUR_MAX __locale_mb_cur_max() - -void abort (void) _ATTRIBUTE ((__noreturn__)); -int abs (int); -#if __BSD_VISIBLE -__uint32_t arc4random (void); -__uint32_t arc4random_uniform (__uint32_t); -void arc4random_buf (void *, size_t); -#endif -int atexit (void (*__func)(void)); -double atof (const char *__nptr); -#if __MISC_VISIBLE -float atoff (const char *__nptr); -#endif -int atoi (const char *__nptr); -int _atoi_r (struct _reent *, const char *__nptr); -long atol (const char *__nptr); -long _atol_r (struct _reent *, const char *__nptr); -void * bsearch (const void *__key, - const void *__base, - size_t __nmemb, - size_t __size, - __compar_fn_t _compar); -void *calloc(size_t, size_t) __malloc_like __result_use_check - __alloc_size2(1, 2) _NOTHROW; -div_t div (int __numer, int __denom); -void exit (int __status) _ATTRIBUTE ((__noreturn__)); -void free (void *) _NOTHROW; -char * getenv (const char *__string); -char * _getenv_r (struct _reent *, const char *__string); -#if __GNU_VISIBLE -char * secure_getenv (const char *__string); -#endif -char * _findenv (const char *, int *); -char * _findenv_r (struct _reent *, const char *, int *); -#if __POSIX_VISIBLE >= 200809 -extern char *suboptarg; /* getsubopt(3) external variable */ -int getsubopt (char **, char * const *, char **); -#endif -long labs (long); -ldiv_t ldiv (long __numer, long __denom); -void *malloc(size_t) __malloc_like __result_use_check __alloc_size(1) _NOTHROW; -int mblen (const char *, size_t); -int _mblen_r (struct _reent *, const char *, size_t, _mbstate_t *); -int mbtowc (wchar_t *__restrict, const char *__restrict, size_t); -int _mbtowc_r (struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *); -int wctomb (char *, wchar_t); -int _wctomb_r (struct _reent *, char *, wchar_t, _mbstate_t *); -size_t mbstowcs (wchar_t *__restrict, const char *__restrict, size_t); -size_t _mbstowcs_r (struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *); -size_t wcstombs (char *__restrict, const wchar_t *__restrict, size_t); -size_t _wcstombs_r (struct _reent *, char *__restrict, const wchar_t *__restrict, size_t, _mbstate_t *); -#ifndef _REENT_ONLY -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 -char * mkdtemp (char *); -#endif -#if __GNU_VISIBLE -int mkostemp (char *, int); -int mkostemps (char *, int, int); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 4 -int mkstemp (char *); -#endif -#if __MISC_VISIBLE -int mkstemps (char *, int); -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112) -char * mktemp (char *) _ATTRIBUTE ((__deprecated__("the use of `mktemp' is dangerous; use `mkstemp' instead"))); -#endif -#endif /* !_REENT_ONLY */ -char * _mkdtemp_r (struct _reent *, char *); -int _mkostemp_r (struct _reent *, char *, int); -int _mkostemps_r (struct _reent *, char *, int, int); -int _mkstemp_r (struct _reent *, char *); -int _mkstemps_r (struct _reent *, char *, int); -char * _mktemp_r (struct _reent *, char *) _ATTRIBUTE ((__deprecated__("the use of `mktemp' is dangerous; use `mkstemp' instead"))); -void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t _compar); -int rand (void); -void *realloc(void *, size_t) __result_use_check __alloc_size(2) _NOTHROW; -#if __BSD_VISIBLE -void *reallocarray(void *, size_t, size_t) __result_use_check __alloc_size2(2, 3); -void *reallocf(void *, size_t) __result_use_check __alloc_size(2); -#endif -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 -char * realpath (const char *__restrict path, char *__restrict resolved_path); -#endif -#if __BSD_VISIBLE -int rpmatch (const char *response); -#endif -#if __XSI_VISIBLE -void setkey (const char *__key); -#endif -void srand (unsigned __seed); -double strtod (const char *__restrict __n, char **__restrict __end_PTR); -double _strtod_r (struct _reent *,const char *__restrict __n, char **__restrict __end_PTR); -#if __ISO_C_VISIBLE >= 1999 -float strtof (const char *__restrict __n, char **__restrict __end_PTR); -#endif -#if __MISC_VISIBLE -/* the following strtodf interface is deprecated...use strtof instead */ -# ifndef strtodf -# define strtodf strtof -# endif -#endif -long strtol (const char *__restrict __n, char **__restrict __end_PTR, int __base); -long _strtol_r (struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base); -unsigned long strtoul (const char *__restrict __n, char **__restrict __end_PTR, int __base); -unsigned long _strtoul_r (struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base); - -#if __GNU_VISIBLE -double strtod_l (const char *__restrict, char **__restrict, locale_t); -float strtof_l (const char *__restrict, char **__restrict, locale_t); -#ifdef _HAVE_LONG_DOUBLE -extern long double strtold_l (const char *__restrict, char **__restrict, - locale_t); -#endif /* _HAVE_LONG_DOUBLE */ -long strtol_l (const char *__restrict, char **__restrict, int, locale_t); -unsigned long strtoul_l (const char *__restrict, char **__restrict, int, - locale_t __loc); -long long strtoll_l (const char *__restrict, char **__restrict, int, locale_t); -unsigned long long strtoull_l (const char *__restrict, char **__restrict, int, - locale_t __loc); -#endif - -int system (const char *__string); - -#if __SVID_VISIBLE || __XSI_VISIBLE >= 4 -long a64l (const char *__input); -char * l64a (long __input); -char * _l64a_r (struct _reent *,long __input); -#endif -#if __MISC_VISIBLE -int on_exit (void (*__func)(int, void *),void *__arg); -#endif -#if __ISO_C_VISIBLE >= 1999 -void _Exit (int __status) _ATTRIBUTE ((__noreturn__)); -#endif -#if __SVID_VISIBLE || __XSI_VISIBLE -int putenv (char *__string); -#endif -int _putenv_r (struct _reent *, char *__string); -void * _reallocf_r (struct _reent *, void *, size_t); -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 -int setenv (const char *__string, const char *__value, int __overwrite); -#endif -int _setenv_r (struct _reent *, const char *__string, const char *__value, int __overwrite); - -#if __XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112 -char * gcvt (double,int,char *); -char * gcvtf (float,int,char *); -char * fcvt (double,int,int *,int *); -char * fcvtf (float,int,int *,int *); -char * ecvt (double,int,int *,int *); -char * ecvtbuf (double, int, int*, int*, char *); -char * fcvtbuf (double, int, int*, int*, char *); -char * ecvtf (float,int,int *,int *); -#endif -char * __itoa (int, char *, int); -char * __utoa (unsigned, char *, int); -#if __MISC_VISIBLE -char * itoa (int, char *, int); -char * utoa (unsigned, char *, int); -#endif -#if __POSIX_VISIBLE -int rand_r (unsigned *__seed); -#endif - -#if __SVID_VISIBLE || __XSI_VISIBLE -double drand48 (void); -double _drand48_r (struct _reent *); -double erand48 (unsigned short [3]); -double _erand48_r (struct _reent *, unsigned short [3]); -long jrand48 (unsigned short [3]); -long _jrand48_r (struct _reent *, unsigned short [3]); -void lcong48 (unsigned short [7]); -void _lcong48_r (struct _reent *, unsigned short [7]); -long lrand48 (void); -long _lrand48_r (struct _reent *); -long mrand48 (void); -long _mrand48_r (struct _reent *); -long nrand48 (unsigned short [3]); -long _nrand48_r (struct _reent *, unsigned short [3]); -unsigned short * - seed48 (unsigned short [3]); -unsigned short * - _seed48_r (struct _reent *, unsigned short [3]); -void srand48 (long); -void _srand48_r (struct _reent *, long); -#endif /* __SVID_VISIBLE || __XSI_VISIBLE */ -#if __SVID_VISIBLE || __XSI_VISIBLE >= 4 || __BSD_VISIBLE -char * initstate (unsigned, char *, size_t); -long random (void); -char * setstate (char *); -void srandom (unsigned); -#endif -#if __ISO_C_VISIBLE >= 1999 -long long atoll (const char *__nptr); -#endif -long long _atoll_r (struct _reent *, const char *__nptr); -#if __ISO_C_VISIBLE >= 1999 -long long llabs (long long); -lldiv_t lldiv (long long __numer, long long __denom); -long long strtoll (const char *__restrict __n, char **__restrict __end_PTR, int __base); -#endif -long long _strtoll_r (struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base); -#if __ISO_C_VISIBLE >= 1999 -unsigned long long strtoull (const char *__restrict __n, char **__restrict __end_PTR, int __base); -#endif -unsigned long long _strtoull_r (struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base); - -#ifndef __CYGWIN__ -#if __MISC_VISIBLE -void cfree (void *); -#endif -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 -int unsetenv (const char *__string); -#endif -int _unsetenv_r (struct _reent *, const char *__string); -#endif /* !__CYGWIN__ */ - -#if __POSIX_VISIBLE >= 200112 -int posix_memalign (void **, size_t, size_t) __nonnull((1)) - __result_use_check; -#endif - -char * _dtoa_r (struct _reent *, double, int, int, int *, int*, char**); -#ifndef __CYGWIN__ -void * _malloc_r (struct _reent *, size_t) _NOTHROW; -void * _calloc_r (struct _reent *, size_t, size_t) _NOTHROW; -void _free_r (struct _reent *, void *) _NOTHROW; -void * _realloc_r (struct _reent *, void *, size_t) _NOTHROW; -void _mstats_r (struct _reent *, char *); -#endif -int _system_r (struct _reent *, const char *); - -void __eprintf (const char *, const char *, unsigned int, const char *); - -/* There are two common qsort_r variants. If you request - _BSD_SOURCE, you get the BSD version; otherwise you get the GNU - version. We want that #undef qsort_r will still let you - invoke the underlying function, but that requires gcc support. */ -#if __GNU_VISIBLE -void qsort_r (void *__base, size_t __nmemb, size_t __size, int (*_compar)(const void *, const void *, void *), void *__thunk); -#elif __BSD_VISIBLE -# ifdef __GNUC__ -void qsort_r (void *__base, size_t __nmemb, size_t __size, void *__thunk, int (*_compar)(void *, const void *, const void *)) - __asm__ (__ASMNAME ("__bsd_qsort_r")); -# else -void __bsd_qsort_r (void *__base, size_t __nmemb, size_t __size, void *__thunk, int (*_compar)(void *, const void *, const void *)); -# define qsort_r __bsd_qsort_r -# endif -#endif - -/* On platforms where long double equals double. */ -#ifdef _HAVE_LONG_DOUBLE -extern long double _strtold_r (struct _reent *, const char *__restrict, char **__restrict); -#if __ISO_C_VISIBLE >= 1999 -extern long double strtold (const char *__restrict, char **__restrict); -#endif -#endif /* _HAVE_LONG_DOUBLE */ - -/* - * If we're in a mode greater than C99, expose C11 functions. - */ -#if __ISO_C_VISIBLE >= 2011 -void * aligned_alloc(size_t, size_t) __malloc_like __alloc_align(1) - __alloc_size(2) __result_use_check; -int at_quick_exit(void (*)(void)); -_Noreturn void - quick_exit(int); -#endif /* __ISO_C_VISIBLE >= 2011 */ - -_END_STD_C - -#if __SSP_FORTIFY_LEVEL > 0 -#include -#endif - -#endif /* _STDLIB_H_ */ diff --git a/include/string.h b/include/string.h deleted file mode 100644 index 32199c0..0000000 --- a/include/string.h +++ /dev/null @@ -1,183 +0,0 @@ -/* - * string.h - * - * Definitions for memory and string functions. - */ - -#ifndef _STRING_H_ -#define _STRING_H_ - -#include "_ansi.h" -#include -#include -#include - -#define __need_size_t -#define __need_NULL -#include - -#if __POSIX_VISIBLE >= 200809 -#include -#endif - -#if __BSD_VISIBLE -#include -#endif - -_BEGIN_STD_C - -void * memchr (const void *, int, size_t); -int memcmp (const void *, const void *, size_t); -void * memcpy (void *__restrict, const void *__restrict, size_t); -void * memmove (void *, const void *, size_t); -void * memset (void *, int, size_t); -char *strcat (char *__restrict, const char *__restrict); -char *strchr (const char *, int); -int strcmp (const char *, const char *); -int strcoll (const char *, const char *); -char *strcpy (char *__restrict, const char *__restrict); -size_t strcspn (const char *, const char *); -char *strerror (int); -size_t strlen (const char *); -char *strncat (char *__restrict, const char *__restrict, size_t); -int strncmp (const char *, const char *, size_t); -char *strncpy (char *__restrict, const char *__restrict, size_t); -char *strpbrk (const char *, const char *); -char *strrchr (const char *, int); -size_t strspn (const char *, const char *); -char *strstr (const char *, const char *); -#ifndef _REENT_ONLY -char *strtok (char *__restrict, const char *__restrict); -#endif -size_t strxfrm (char *__restrict, const char *__restrict, size_t); - -#if __POSIX_VISIBLE >= 200809 -int strcoll_l (const char *, const char *, locale_t); -char *strerror_l (int, locale_t); -size_t strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE -char *strtok_r (char *__restrict, const char *__restrict, char **__restrict); -#endif -#if __BSD_VISIBLE -int timingsafe_bcmp (const void *, const void *, size_t); -int timingsafe_memcmp (const void *, const void *, size_t); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE -void * memccpy (void *__restrict, const void *__restrict, int, size_t); -#endif -#if __GNU_VISIBLE -void * mempcpy (void *, const void *, size_t); -void * memmem (const void *, size_t, const void *, size_t); -void * memrchr (const void *, int, size_t); -void * rawmemchr (const void *, int); -#endif -#if __POSIX_VISIBLE >= 200809 -char *stpcpy (char *__restrict, const char *__restrict); -char *stpncpy (char *__restrict, const char *__restrict, size_t); -#endif -#if __GNU_VISIBLE -char *strcasestr (const char *, const char *); -char *strchrnul (const char *, int); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4 -char *strdup (const char *) __malloc_like __result_use_check; -#endif -char *_strdup_r (struct _reent *, const char *); -#if __POSIX_VISIBLE >= 200809 -char *strndup (const char *, size_t) __malloc_like __result_use_check; -#endif -char *_strndup_r (struct _reent *, const char *, size_t); - -/* There are two common strerror_r variants. If you request - _GNU_SOURCE, you get the GNU version; otherwise you get the POSIX - version. POSIX requires that #undef strerror_r will still let you - invoke the underlying function, but that requires gcc support. */ -#if __GNU_VISIBLE -char *strerror_r (int, char *, size_t); -#elif __POSIX_VISIBLE >= 200112 -# ifdef __GNUC__ -int strerror_r (int, char *, size_t) -#ifdef __ASMNAME - __asm__ (__ASMNAME ("__xpg_strerror_r")) -#endif - ; -# else -int __xpg_strerror_r (int, char *, size_t); -# define strerror_r __xpg_strerror_r -# endif -#endif - -/* Reentrant version of strerror. */ -char * _strerror_r (struct _reent *, int, int, int *); - -#if __BSD_VISIBLE -size_t strlcat (char *, const char *, size_t); -size_t strlcpy (char *, const char *, size_t); -#endif -#if __POSIX_VISIBLE >= 200809 -size_t strnlen (const char *, size_t); -#endif -#if __BSD_VISIBLE -char *strsep (char **, const char *); -#endif -#if __BSD_VISIBLE -char *strnstr(const char *, const char *, size_t) __pure; -#endif - -#if __MISC_VISIBLE -char *strlwr (char *); -char *strupr (char *); -#endif - -#if __POSIX_VISIBLE >= 200809 -char *strsignal (int __signo); -#endif - -#ifdef __CYGWIN__ -int strtosigno (const char *__name); -#endif - -#if __GNU_VISIBLE -int strverscmp (const char *, const char *); -#endif - -#if __GNU_VISIBLE && defined(__GNUC__) -#define strdupa(__s) \ - (__extension__ ({const char *__sin = (__s); \ - size_t __len = strlen (__sin) + 1; \ - char * __sout = (char *) __builtin_alloca (__len); \ - (char *) memcpy (__sout, __sin, __len);})) -#define strndupa(__s, __n) \ - (__extension__ ({const char *__sin = (__s); \ - size_t __len = strnlen (__sin, (__n)) + 1; \ - char *__sout = (char *) __builtin_alloca (__len); \ - __sout[__len-1] = '\0'; \ - (char *) memcpy (__sout, __sin, __len-1);})) -#endif /* __GNU_VISIBLE && __GNUC__ */ - -/* There are two common basename variants. If you do NOT #include - and you do - - #define _GNU_SOURCE - #include - - you get the GNU version. Otherwise you get the POSIX versionfor which you - should #include i for the function prototype. POSIX requires that - #undef basename will still let you invoke the underlying function. However, - this also implies that the POSIX version is used in this case. That's made - sure here. */ -#if __GNU_VISIBLE && !defined(basename) -# define basename basename -char *__nonnull ((1)) basename (const char *) __asm__(__ASMNAME("__gnu_basename")); -#endif - -#include - -_END_STD_C - -#if __SSP_FORTIFY_LEVEL > 0 -#include -#endif - -#endif /* _STRING_H_ */ diff --git a/include/strings.h b/include/strings.h deleted file mode 100644 index f0f7ee1..0000000 --- a/include/strings.h +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * Copyright (c) 2002 Mike Barcroft - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: head/include/strings.h 272673 2014-10-07 04:54:11Z delphij $ - */ - -#ifndef _STRINGS_H_ -#define _STRINGS_H_ - -#include -#include - -#if __POSIX_VISIBLE >= 200809 -#include -#endif - -#ifndef _SIZE_T_DECLARED -typedef __size_t size_t; -#define _SIZE_T_DECLARED -#endif - -__BEGIN_DECLS -#if __BSD_VISIBLE || __POSIX_VISIBLE <= 200112 -int bcmp(const void *, const void *, size_t) __pure; /* LEGACY */ -void bcopy(const void *, void *, size_t); /* LEGACY */ -void bzero(void *, size_t); /* LEGACY */ -#endif -#if __BSD_VISIBLE -void explicit_bzero(void *, size_t); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE < 200809 || __XSI_VISIBLE >= 700 -int ffs(int) __pure2; -#endif -#if __BSD_VISIBLE -int ffsl(long) __pure2; -int ffsll(long long) __pure2; -int fls(int) __pure2; -int flsl(long) __pure2; -int flsll(long long) __pure2; -#endif -#if __BSD_VISIBLE || __POSIX_VISIBLE <= 200112 -char *index(const char *, int) __pure; /* LEGACY */ -char *rindex(const char *, int) __pure; /* LEGACY */ -#endif -int strcasecmp(const char *, const char *) __pure; -int strncasecmp(const char *, const char *, size_t) __pure; - -#if __POSIX_VISIBLE >= 200809 -int strcasecmp_l (const char *, const char *, locale_t); -int strncasecmp_l (const char *, const char *, size_t, locale_t); -#endif -__END_DECLS - -#if __SSP_FORTIFY_LEVEL > 0 -#include -#endif - -#endif /* _STRINGS_H_ */ diff --git a/include/symcat.h b/include/symcat.h deleted file mode 100644 index 95fc9b2..0000000 --- a/include/symcat.h +++ /dev/null @@ -1,55 +0,0 @@ -/* Symbol concatenation utilities. - - Copyright (C) 1998-2015 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef SYM_CAT_H -#define SYM_CAT_H - -#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) -#define CONCAT2(a,b) a##b -#define CONCAT3(a,b,c) a##b##c -#define CONCAT4(a,b,c,d) a##b##c##d -#define CONCAT5(a,b,c,d,e) a##b##c##d##e -#define CONCAT6(a,b,c,d,e,f) a##b##c##d##e##f -#define STRINGX(s) #s -#else -/* Note one should never pass extra whitespace to the CONCATn macros, - e.g. CONCAT2(foo, bar) because traditonal C will keep the space between - the two labels instead of concatenating them. Instead, make sure to - write CONCAT2(foo,bar). */ -#define CONCAT2(a,b) a/**/b -#define CONCAT3(a,b,c) a/**/b/**/c -#define CONCAT4(a,b,c,d) a/**/b/**/c/**/d -#define CONCAT5(a,b,c,d,e) a/**/b/**/c/**/d/**/e -#define CONCAT6(a,b,c,d,e,f) a/**/b/**/c/**/d/**/e/**/f -#define STRINGX(s) "s" -#endif - -#define XCONCAT2(a,b) CONCAT2(a,b) -#define XCONCAT3(a,b,c) CONCAT3(a,b,c) -#define XCONCAT4(a,b,c,d) CONCAT4(a,b,c,d) -#define XCONCAT5(a,b,c,d,e) CONCAT5(a,b,c,d,e) -#define XCONCAT6(a,b,c,d,e,f) CONCAT6(a,b,c,d,e,f) - -/* Note the layer of indirection here is typically used to allow - stringification of the expansion of macros. I.e. "#define foo - bar", "XSTRING(foo)", to yield "bar". Be aware that this only - works for __STDC__, not for traditional C which will still resolve - to "foo". */ -#define XSTRING(s) STRINGX(s) - -#endif /* SYM_CAT_H */ diff --git a/include/sys/_default_fcntl.h b/include/sys/_default_fcntl.h deleted file mode 100644 index 48914c9..0000000 --- a/include/sys/_default_fcntl.h +++ /dev/null @@ -1,240 +0,0 @@ - -#ifndef _SYS__DEFAULT_FCNTL_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS__DEFAULT_FCNTL_H_ -#include <_ansi.h> -#include -#define _FOPEN (-1) /* from sys/file.h, kernel use only */ -#define _FREAD 0x0001 /* read enabled */ -#define _FWRITE 0x0002 /* write enabled */ -#define _FAPPEND 0x0008 /* append (writes guaranteed at the end) */ -#define _FMARK 0x0010 /* internal; mark during gc() */ -#define _FDEFER 0x0020 /* internal; defer for next gc pass */ -#define _FASYNC 0x0040 /* signal pgrp when data ready */ -#define _FSHLOCK 0x0080 /* BSD flock() shared lock present */ -#define _FEXLOCK 0x0100 /* BSD flock() exclusive lock present */ -#define _FCREAT 0x0200 /* open with file create */ -#define _FTRUNC 0x0400 /* open with truncation */ -#define _FEXCL 0x0800 /* error on open if file exists */ -#define _FNBIO 0x1000 /* non blocking I/O (sys5 style) */ -#define _FSYNC 0x2000 /* do all writes synchronously */ -#define _FNONBLOCK 0x4000 /* non blocking I/O (POSIX style) */ -#define _FNDELAY _FNONBLOCK /* non blocking I/O (4.2 style) */ -#define _FNOCTTY 0x8000 /* don't assign a ctty on this open */ -#if defined (__CYGWIN__) -#define _FBINARY 0x10000 -#define _FTEXT 0x20000 -#endif -#define _FNOINHERIT 0x40000 -#define _FDIRECT 0x80000 -#define _FNOFOLLOW 0x100000 -#define _FDIRECTORY 0x200000 -#define _FEXECSRCH 0x400000 -#if defined (__CYGWIN__) -#define _FTMPFILE 0x800000 -#define _FNOATIME 0x1000000 -#define _FPATH 0x2000000 -#endif - -#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) - -/* - * Flag values for open(2) and fcntl(2) - * The kernel adds 1 to the open modes to turn it into some - * combination of FREAD and FWRITE. - */ -#define O_RDONLY 0 /* +1 == FREAD */ -#define O_WRONLY 1 /* +1 == FWRITE */ -#define O_RDWR 2 /* +1 == FREAD|FWRITE */ -#define O_APPEND _FAPPEND -#define O_CREAT _FCREAT -#define O_TRUNC _FTRUNC -#define O_EXCL _FEXCL -#define O_SYNC _FSYNC -/* O_NDELAY _FNDELAY set in include/fcntl.h */ -/* O_NDELAY _FNBIO set in include/fcntl.h */ -#define O_NONBLOCK _FNONBLOCK -#define O_NOCTTY _FNOCTTY - -/* POSIX-1.2008 specific flags */ -#if __POSIX_VISIBLE >= 200809 -#define O_CLOEXEC _FNOINHERIT -#define O_NOFOLLOW _FNOFOLLOW -#define O_DIRECTORY _FDIRECTORY -#define O_EXEC _FEXECSRCH -#define O_SEARCH _FEXECSRCH -#endif - -#if __BSD_VISIBLE -#define O_DIRECT _FDIRECT -#endif - -#if defined (__CYGWIN__) -#define O_BINARY _FBINARY -#define O_TEXT _FTEXT -#define O_DSYNC _FSYNC -#define O_RSYNC _FSYNC - -/* Linux-specific flags */ -#if __GNU_VISIBLE -#define O_TMPFILE _FTMPFILE -#define O_NOATIME _FNOATIME -#define O_PATH _FPATH -#endif -#endif - -#if __MISC_VISIBLE - -/* - * Flags that work for fcntl(fd, F_SETFL, FXXXX) - */ -#define FAPPEND _FAPPEND -#define FSYNC _FSYNC -#define FASYNC _FASYNC -#define FNBIO _FNBIO -#define FNONBIO _FNONBLOCK /* XXX fix to be NONBLOCK everywhere */ -#define FNDELAY _FNDELAY - -/* - * Flags that are disallowed for fcntl's (FCNTLCANT); - * used for opens, internal state, or locking. - */ -#define FREAD _FREAD -#define FWRITE _FWRITE -#define FMARK _FMARK -#define FDEFER _FDEFER -#define FSHLOCK _FSHLOCK -#define FEXLOCK _FEXLOCK - -/* - * The rest of the flags, used only for opens - */ -#define FOPEN _FOPEN -#define FCREAT _FCREAT -#define FTRUNC _FTRUNC -#define FEXCL _FEXCL -#define FNOCTTY _FNOCTTY - -#endif /* __MISC_VISIBLE */ - -#if __BSD_VISIBLE -#define FNONBLOCK _FNONBLOCK -#endif /* __BSD_VISIBLE */ - -/* XXX close on exec request; must match UF_EXCLOSE in user.h */ -#define FD_CLOEXEC 1 /* posix */ - -/* fcntl(2) requests */ -#define F_DUPFD 0 /* Duplicate fildes */ -#define F_GETFD 1 /* Get fildes flags (close on exec) */ -#define F_SETFD 2 /* Set fildes flags (close on exec) */ -#define F_GETFL 3 /* Get file flags */ -#define F_SETFL 4 /* Set file flags */ -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 -#define F_GETOWN 5 /* Get owner - for ASYNC */ -#define F_SETOWN 6 /* Set owner - for ASYNC */ -#endif /* __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 */ -#define F_GETLK 7 /* Get record-locking information */ -#define F_SETLK 8 /* Set or Clear a record-lock (Non-Blocking) */ -#define F_SETLKW 9 /* Set or Clear a record-lock (Blocking) */ -#if __MISC_VISIBLE -#define F_RGETLK 10 /* Test a remote lock to see if it is blocked */ -#define F_RSETLK 11 /* Set or unlock a remote lock */ -#define F_CNVT 12 /* Convert a fhandle to an open fd */ -#define F_RSETLKW 13 /* Set or Clear remote record-lock(Blocking) */ -#endif /* __MISC_VISIBLE */ -#if __POSIX_VISIBLE >= 200809 -#define F_DUPFD_CLOEXEC 14 /* As F_DUPFD, but set close-on-exec flag */ -#endif - -/* fcntl(2) flags (l_type field of flock structure) */ -#define F_RDLCK 1 /* read lock */ -#define F_WRLCK 2 /* write lock */ -#define F_UNLCK 3 /* remove lock(s) */ -#if __MISC_VISIBLE -#define F_UNLKSYS 4 /* remove remote locks for a given system */ -#endif /* __MISC_VISIBLE */ - -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 -/* Special descriptor value to denote the cwd in calls to openat(2) etc. */ -#define AT_FDCWD -2 - -/* Flag values for faccessat2) et al. */ -#define AT_EACCESS 1 -#define AT_SYMLINK_NOFOLLOW 2 -#define AT_SYMLINK_FOLLOW 4 -#define AT_REMOVEDIR 8 -#if __GNU_VISIBLE -#define AT_EMPTY_PATH 16 -#endif -#endif - -#if __BSD_VISIBLE -/* lock operations for flock(2) */ -#define LOCK_SH 0x01 /* shared file lock */ -#define LOCK_EX 0x02 /* exclusive file lock */ -#define LOCK_NB 0x04 /* don't block when locking */ -#define LOCK_UN 0x08 /* unlock file */ -#endif - -/*#include */ - -#ifndef __CYGWIN__ -/* file segment locking set data type - information passed to system by user */ -struct flock { - short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ - short l_whence; /* flag to choose starting offset */ - long l_start; /* relative offset, in bytes */ - long l_len; /* length, in bytes; 0 means lock to EOF */ - short l_pid; /* returned with F_GETLK */ - short l_xxx; /* reserved for future use */ -}; -#endif /* __CYGWIN__ */ - -#if __MISC_VISIBLE -/* extended file segment locking set data type */ -struct eflock { - short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ - short l_whence; /* flag to choose starting offset */ - long l_start; /* relative offset, in bytes */ - long l_len; /* length, in bytes; 0 means lock to EOF */ - short l_pid; /* returned with F_GETLK */ - short l_xxx; /* reserved for future use */ - long l_rpid; /* Remote process id wanting this lock */ - long l_rsys; /* Remote system id wanting this lock */ -}; -#endif /* __MISC_VISIBLE */ - -#include -#include /* sigh. for the mode bits for open/creat */ - -extern int open (const char *, int, ...); -#if __ATFILE_VISIBLE -extern int openat (int, const char *, int, ...); -#endif -extern int creat (const char *, mode_t); -extern int fcntl (int, int, ...); -#if __BSD_VISIBLE -extern int flock (int, int); -#endif -#if __GNU_VISIBLE -#include -extern int futimesat (int, const char *, const struct timeval [2]); -#endif - -/* Provide _ prototypes for functions provided by some versions - of newlib. */ -#ifdef _LIBC -extern int _open (const char *, int, ...); -extern int _fcntl (int, int, ...); -#ifdef __LARGE64_FILES -extern int _open64 (const char *, int, ...); -#endif -#endif - -#ifdef __cplusplus -} -#endif -#endif /* !_SYS__DEFAULT_FCNTL_H_ */ diff --git a/include/sys/_intsup.h b/include/sys/_intsup.h deleted file mode 100644 index 993121b..0000000 --- a/include/sys/_intsup.h +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright (c) 2004, 2005 by - * Ralf Corsepius, Ulm/Germany. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _SYS__INTSUP_H -#define _SYS__INTSUP_H - -#include - -#if __GNUC_PREREQ (3, 2) -/* gcc > 3.2 implicitly defines the values we are interested */ -#define __STDINT_EXP(x) __##x##__ -#else -#define __STDINT_EXP(x) x -#include -#endif - -/* Determine how intptr_t and intN_t fastN_t and leastN_t are defined by gcc - for this target. This is used to determine the correct printf() constant in - inttypes.h and other constants in stdint.h. - So we end up with - ?(signed|unsigned) char == 0 - ?(signed|unsigned) short == 1 - ?(signed|unsigned) int == 2 - ?(signed|unsigned) short int == 3 - ?(signed|unsigned) long == 4 - ?(signed|unsigned) long int == 6 - ?(signed|unsigned) long long == 8 - ?(signed|unsigned) long long int == 10 - */ -#pragma push_macro("signed") -#pragma push_macro("unsigned") -#pragma push_macro("char") -#pragma push_macro("short") -#pragma push_macro("__int20") -#pragma push_macro("__int20__") -#pragma push_macro("int") -#pragma push_macro("long") -#undef signed -#undef unsigned -#undef char -#undef short -#undef int -#undef __int20 -#undef __int20__ -#undef long -#define signed +0 -#define unsigned +0 -#define char +0 -#define short +1 -#define __int20 +2 -#define __int20__ +2 -#define int +2 -#define long +4 -#if (__INTPTR_TYPE__ == 8 || __INTPTR_TYPE__ == 10) -#define _INTPTR_EQ_LONGLONG -#elif (__INTPTR_TYPE__ == 4 || __INTPTR_TYPE__ == 6) -#define _INTPTR_EQ_LONG -/* Note - the tests for _INTPTR_EQ_INT and _INTPTR_EQ_SHORT are currently - redundant as the values are not used. But one day they may be needed - and so the tests remain. */ -#elif __INTPTR_TYPE__ == 2 -#define _INTPTR_EQ_INT -#elif (__INTPTR_TYPE__ == 1 || __INTPTR_TYPE__ == 3) -#define _INTPTR_EQ_SHORT -#else -#error "Unable to determine type definition of intptr_t" -#endif -#if (__INT32_TYPE__ == 4 || __INT32_TYPE__ == 6) -#define _INT32_EQ_LONG -#elif __INT32_TYPE__ == 2 -/* Nothing to define because int32_t is safe to print as an int. */ -#else -#error "Unable to determine type definition of int32_t" -#endif - -#if (__INT8_TYPE__ == 0) -#define __INT8 "hh" -#elif (__INT8_TYPE__ == 1 || __INT8_TYPE__ == 3) -#define __INT8 "h" -#elif (__INT8_TYPE__ == 2) -#define __INT8 -#elif (__INT8_TYPE__ == 4 || __INT8_TYPE__ == 6) -#define __INT8 "l" -#elif (__INT8_TYPE__ == 8 || __INT8_TYPE__ == 10) -#define __INT8 "ll" -#endif -#if (__INT16_TYPE__ == 1 || __INT16_TYPE__ == 3) -#define __INT16 "h" -#elif (__INT16_TYPE__ == 2) -#define __INT16 -#elif (__INT16_TYPE__ == 4 || __INT16_TYPE__ == 6) -#define __INT16 "l" -#elif (__INT16_TYPE__ == 8 || __INT16_TYPE__ == 10) -#define __INT16 "ll" -#endif -#if (__INT32_TYPE__ == 2) -#define __INT32 -#elif (__INT32_TYPE__ == 4 || __INT32_TYPE__ == 6) -#define __INT32 "l" -#elif (__INT32_TYPE__ == 8 || __INT32_TYPE__ == 10) -#define __INT32 "ll" -#endif -#if (__INT64_TYPE__ == 2) -#define __INT64 -#elif (__INT64_TYPE__ == 4 || __INT64_TYPE__ == 6) -#define __INT64 "l" -#elif (__INT64_TYPE__ == 8 || __INT64_TYPE__ == 10) -#define __INT64 "ll" -#endif -#if (__INT_FAST8_TYPE__ == 0) -#define __FAST8 "hh" -#elif (__INT_FAST8_TYPE__ == 1 || __INT_FAST8_TYPE__ == 3) -#define __FAST8 "h" -#elif (__INT_FAST8_TYPE__ == 2) -#define __FAST8 -#elif (__INT_FAST8_TYPE__ == 4 || __INT_FAST8_TYPE__ == 6) -#define __FAST8 "l" -#elif (__INT_FAST8_TYPE__ == 8 || __INT_FAST8_TYPE__ == 10) -#define __FAST8 "ll" -#endif -#if (__INT_FAST16_TYPE__ == 1 || __INT_FAST16_TYPE__ == 3) -#define __FAST16 "h" -#elif (__INT_FAST16_TYPE__ == 2) -#define __FAST16 -#elif (__INT_FAST16_TYPE__ == 4 || __INT_FAST16_TYPE__ == 6) -#define __FAST16 "l" -#elif (__INT_FAST16_TYPE__ == 8 || __INT_FAST16_TYPE__ == 10) -#define __FAST16 "ll" -#endif -#if (__INT_FAST32_TYPE__ == 2) -#define __FAST32 -#elif (__INT_FAST32_TYPE__ == 4 || __INT_FAST32_TYPE__ == 6) -#define __FAST32 "l" -#elif (__INT_FAST32_TYPE__ == 8 || __INT_FAST32_TYPE__ == 10) -#define __FAST32 "ll" -#endif -#if (__INT_FAST64_TYPE__ == 2) -#define __FAST64 -#elif (__INT_FAST64_TYPE__ == 4 || __INT_FAST64_TYPE__ == 6) -#define __FAST64 "l" -#elif (__INT_FAST64_TYPE__ == 8 || __INT_FAST64_TYPE__ == 10) -#define __FAST64 "ll" -#endif - -#if (__INT_LEAST8_TYPE__ == 0) -#define __LEAST8 "hh" -#elif (__INT_LEAST8_TYPE__ == 1 || __INT_LEAST8_TYPE__ == 3) -#define __LEAST8 "h" -#elif (__INT_LEAST8_TYPE__ == 2) -#define __LEAST8 -#elif (__INT_LEAST8_TYPE__ == 4 || __INT_LEAST8_TYPE__ == 6) -#define __LEAST8 "l" -#elif (__INT_LEAST8_TYPE__ == 8 || __INT_LEAST8_TYPE__ == 10) -#define __LEAST8 "ll" -#endif -#if (__INT_LEAST16_TYPE__ == 1 || __INT_LEAST16_TYPE__ == 3) -#define __LEAST16 "h" -#elif (__INT_LEAST16_TYPE__ == 2) -#define __LEAST16 -#elif (__INT_LEAST16_TYPE__ == 4 || __INT_LEAST16_TYPE__ == 6) -#define __LEAST16 "l" -#elif (__INT_LEAST16_TYPE__ == 8 || __INT_LEAST16_TYPE__ == 10) -#define __LEAST16 "ll" -#endif -#if (__INT_LEAST32_TYPE__ == 2) -#define __LEAST32 -#elif (__INT_LEAST32_TYPE__ == 4 || __INT_LEAST32_TYPE__ == 6) -#define __LEAST32 "l" -#elif (__INT_LEAST32_TYPE__ == 8 || __INT_LEAST32_TYPE__ == 10) -#define __LEAST32 "ll" -#endif -#if (__INT_LEAST64_TYPE__ == 2) -#define __LEAST64 -#elif (__INT_LEAST64_TYPE__ == 4 || __INT_LEAST64_TYPE__ == 6) -#define __LEAST64 "l" -#elif (__INT_LEAST64_TYPE__ == 8 || __INT_LEAST64_TYPE__ == 10) -#define __LEAST64 "ll" -#endif -#undef signed -#undef unsigned -#undef char -#undef short -#undef int -#undef long -#pragma pop_macro("signed") -#pragma pop_macro("unsigned") -#pragma pop_macro("char") -#pragma pop_macro("short") -#pragma pop_macro("__int20") -#pragma pop_macro("__int20__") -#pragma pop_macro("int") -#pragma pop_macro("long") - -#endif /* _SYS__INTSUP_H */ diff --git a/include/sys/_locale.h b/include/sys/_locale.h deleted file mode 100644 index ce6f995..0000000 --- a/include/sys/_locale.h +++ /dev/null @@ -1,12 +0,0 @@ -/* Definition of opaque POSIX-1.2008 type locale_t for userspace. */ - -#ifndef _SYS__LOCALE_H -#define _SYS__LOCALE_H - -#include -#include - -struct __locale_t; -typedef struct __locale_t *locale_t; - -#endif /* _SYS__LOCALE_H */ diff --git a/include/sys/_pthreadtypes.h b/include/sys/_pthreadtypes.h deleted file mode 100644 index 75e9e1c..0000000 --- a/include/sys/_pthreadtypes.h +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2013, 2015. - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - */ - -#ifndef _SYS__PTHREADTYPES_H_ -#define _SYS__PTHREADTYPES_H_ - -#if defined(_POSIX_THREADS) || __POSIX_VISIBLE >= 199506 - -#include - -/* - * 2.5 Primitive System Data Types, P1003.1c/D10, p. 19. - */ - -#if defined(__XMK__) -typedef unsigned int pthread_t; /* identify a thread */ -#else -typedef __uint32_t pthread_t; /* identify a thread */ -#endif - -/* P1003.1c/D10, p. 118-119 */ -#define PTHREAD_SCOPE_PROCESS 0 -#define PTHREAD_SCOPE_SYSTEM 1 - -/* P1003.1c/D10, p. 111 */ -#define PTHREAD_INHERIT_SCHED 1 /* scheduling policy and associated */ - /* attributes are inherited from */ - /* the calling thread. */ -#define PTHREAD_EXPLICIT_SCHED 2 /* set from provided attribute object */ - -/* P1003.1c/D10, p. 141 */ -#define PTHREAD_CREATE_DETACHED 0 -#define PTHREAD_CREATE_JOINABLE 1 - -#if defined(__XMK__) -typedef struct pthread_attr_s { - int contentionscope; - struct sched_param schedparam; - int detachstate; - void *stackaddr; - size_t stacksize; -} pthread_attr_t; - -#define PTHREAD_STACK_MIN 200 - -#else /* !defined(__XMK__) */ -typedef struct { - int is_initialized; - void *stackaddr; - int stacksize; - int contentionscope; - int inheritsched; - int schedpolicy; - struct sched_param schedparam; - - /* P1003.4b/D8, p. 54 adds cputime_clock_allowed attribute. */ -#if defined(_POSIX_THREAD_CPUTIME) - int cputime_clock_allowed; /* see time.h */ -#endif - int detachstate; -} pthread_attr_t; - -#endif /* !defined(__XMK__) */ - -#if defined(_POSIX_THREAD_PROCESS_SHARED) -/* NOTE: P1003.1c/D10, p. 81 defines following values for process_shared. */ - -#define PTHREAD_PROCESS_PRIVATE 0 /* visible within only the creating process */ -#define PTHREAD_PROCESS_SHARED 1 /* visible too all processes with access to */ - /* the memory where the resource is */ - /* located */ -#endif - -#if defined(_POSIX_THREAD_PRIO_PROTECT) -/* Mutexes */ - -/* Values for blocking protocol. */ - -#define PTHREAD_PRIO_NONE 0 -#define PTHREAD_PRIO_INHERIT 1 -#define PTHREAD_PRIO_PROTECT 2 -#endif - -#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) - -/* Values for mutex type */ - -/* The following defines are part of the X/Open System Interface (XSI). */ - -/* - * This type of mutex does not detect deadlock. A thread attempting to - * relock this mutex without first unlocking it shall deadlock. Attempting - * to unlock a mutex locked by a different thread results in undefined - * behavior. Attempting to unlock an unlocked mutex results in undefined - * behavior. - */ -#define PTHREAD_MUTEX_NORMAL 0 - -/* - * A thread attempting to relock this mutex without first unlocking - * it shall succeed in locking the mutex. The relocking deadlock which - * can occur with mutexes of type PTHREAD_MUTEX_NORMAL cannot occur with - * this type of mutex. Multiple locks of this mutex shall require the - * same number of unlocks to release the mutex before another thread can - * acquire the mutex. A thread attempting to unlock a mutex which another - * thread has locked shall return with an error. A thread attempting to - * unlock an unlocked mutex shall return with an error. - */ -#define PTHREAD_MUTEX_RECURSIVE 1 - -/* - * This type of mutex provides error checking. A thread attempting - * to relock this mutex without first unlocking it shall return with an - * error. A thread attempting to unlock a mutex which another thread has - * locked shall return with an error. A thread attempting to unlock an - * unlocked mutex shall return with an error. - */ -#define PTHREAD_MUTEX_ERRORCHECK 2 - -/* - * Attempting to recursively lock a mutex of this type results - * in undefined behavior. Attempting to unlock a mutex of this type - * which was not locked by the calling thread results in undefined - * behavior. Attempting to unlock a mutex of this type which is not locked - * results in undefined behavior. An implementation may map this mutex to - * one of the other mutex types. - */ -#define PTHREAD_MUTEX_DEFAULT 3 - -#endif /* !defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) */ - -#if defined(__XMK__) -typedef unsigned int pthread_mutex_t; /* identify a mutex */ - -typedef struct { - int type; -} pthread_mutexattr_t; - -#else /* !defined(__XMK__) */ -typedef __uint32_t pthread_mutex_t; /* identify a mutex */ - -typedef struct { - int is_initialized; -#if defined(_POSIX_THREAD_PROCESS_SHARED) - int process_shared; /* allow mutex to be shared amongst processes */ -#endif -#if defined(_POSIX_THREAD_PRIO_PROTECT) - int prio_ceiling; - int protocol; -#endif -#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) - int type; -#endif - int recursive; -} pthread_mutexattr_t; -#endif /* !defined(__XMK__) */ - -#define _PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) 0xFFFFFFFF) - -/* Condition Variables */ - -typedef __uint32_t pthread_cond_t; /* identify a condition variable */ - -#define _PTHREAD_COND_INITIALIZER ((pthread_cond_t) 0xFFFFFFFF) - -typedef struct { - int is_initialized; - clock_t clock; /* specifiy clock for timeouts */ -#if defined(_POSIX_THREAD_PROCESS_SHARED) - int process_shared; /* allow this to be shared amongst processes */ -#endif -} pthread_condattr_t; /* a condition attribute object */ - -/* Keys */ - -typedef __uint32_t pthread_key_t; /* thread-specific data keys */ - -typedef struct { - int is_initialized; /* is this structure initialized? */ - int init_executed; /* has the initialization routine been run? */ -} pthread_once_t; /* dynamic package initialization */ - -#define _PTHREAD_ONCE_INIT { 1, 0 } /* is initialized and not run */ -#endif /* defined(_POSIX_THREADS) || __POSIX_VISIBLE >= 199506 */ - -/* POSIX Barrier Types */ - -#if defined(_POSIX_BARRIERS) -typedef __uint32_t pthread_barrier_t; /* POSIX Barrier Object */ -typedef struct { - int is_initialized; /* is this structure initialized? */ -#if defined(_POSIX_THREAD_PROCESS_SHARED) - int process_shared; /* allow this to be shared amongst processes */ -#endif -} pthread_barrierattr_t; -#endif /* defined(_POSIX_BARRIERS) */ - -/* POSIX Spin Lock Types */ - -#if defined(_POSIX_SPIN_LOCKS) -typedef __uint32_t pthread_spinlock_t; /* POSIX Spin Lock Object */ -#endif /* defined(_POSIX_SPIN_LOCKS) */ - -/* POSIX Reader/Writer Lock Types */ - -#if defined(_POSIX_READER_WRITER_LOCKS) -typedef __uint32_t pthread_rwlock_t; /* POSIX RWLock Object */ - -#define _PTHREAD_RWLOCK_INITIALIZER ((pthread_rwlock_t) 0xFFFFFFFF) - -typedef struct { - int is_initialized; /* is this structure initialized? */ -#if defined(_POSIX_THREAD_PROCESS_SHARED) - int process_shared; /* allow this to be shared amongst processes */ -#endif -} pthread_rwlockattr_t; -#endif /* defined(_POSIX_READER_WRITER_LOCKS) */ - -#endif /* ! _SYS__PTHREADTYPES_H_ */ diff --git a/include/sys/_sigset.h b/include/sys/_sigset.h deleted file mode 100644 index a9c0d2d..0000000 --- a/include/sys/_sigset.h +++ /dev/null @@ -1,43 +0,0 @@ -/*- - * Copyright (c) 1982, 1986, 1989, 1991, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)signal.h 8.4 (Berkeley) 5/4/95 - * $FreeBSD$ - */ - -#ifndef _SYS__SIGSET_H_ -#define _SYS__SIGSET_H_ - -typedef unsigned long __sigset_t; - -#endif /* !_SYS__SIGSET_H_ */ diff --git a/include/sys/_stdint.h b/include/sys/_stdint.h deleted file mode 100644 index 21a14d3..0000000 --- a/include/sys/_stdint.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2004, 2005 by - * Ralf Corsepius, Ulm/Germany. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _SYS__STDINT_H -#define _SYS__STDINT_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef ___int8_t_defined -#ifndef _INT8_T_DECLARED -typedef __int8_t int8_t ; -#define _INT8_T_DECLARED -#endif -#ifndef _UINT8_T_DECLARED -typedef __uint8_t uint8_t ; -#define _UINT8_T_DECLARED -#endif -#define __int8_t_defined 1 -#endif /* ___int8_t_defined */ - -#ifdef ___int16_t_defined -#ifndef _INT16_T_DECLARED -typedef __int16_t int16_t ; -#define _INT16_T_DECLARED -#endif -#ifndef _UINT16_T_DECLARED -typedef __uint16_t uint16_t ; -#define _UINT16_T_DECLARED -#endif -#define __int16_t_defined 1 -#endif /* ___int16_t_defined */ - -#ifdef ___int32_t_defined -#ifndef _INT32_T_DECLARED -typedef __int32_t int32_t ; -#define _INT32_T_DECLARED -#endif -#ifndef _UINT32_T_DECLARED -typedef __uint32_t uint32_t ; -#define _UINT32_T_DECLARED -#endif -#define __int32_t_defined 1 -#endif /* ___int32_t_defined */ - -#ifdef ___int64_t_defined -#ifndef _INT64_T_DECLARED -typedef __int64_t int64_t ; -#define _INT64_T_DECLARED -#endif -#ifndef _UINT64_T_DECLARED -typedef __uint64_t uint64_t ; -#define _UINT64_T_DECLARED -#endif -#define __int64_t_defined 1 -#endif /* ___int64_t_defined */ - -#ifndef _INTMAX_T_DECLARED -typedef __intmax_t intmax_t; -#define _INTMAX_T_DECLARED -#endif - -#ifndef _UINTMAX_T_DECLARED -typedef __uintmax_t uintmax_t; -#define _UINTMAX_T_DECLARED -#endif - -#ifndef _INTPTR_T_DECLARED -typedef __intptr_t intptr_t; -#define _INTPTR_T_DECLARED -#endif - -#ifndef _UINTPTR_T_DECLARED -typedef __uintptr_t uintptr_t; -#define _UINTPTR_T_DECLARED -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS__STDINT_H */ diff --git a/include/sys/_timespec.h b/include/sys/_timespec.h deleted file mode 100644 index f810b00..0000000 --- a/include/sys/_timespec.h +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)time.h 8.5 (Berkeley) 5/4/95 - * from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp - * $FreeBSD: head/sys/sys/_timespec.h 326023 2017-11-20 19:43:44Z pfg $ - */ - -#ifndef _SYS__TIMESPEC_H_ -#define _SYS__TIMESPEC_H_ - -#include - -#if !defined(__time_t_defined) && !defined(_TIME_T_DECLARED) -typedef _TIME_T_ time_t; -#define __time_t_defined -#define _TIME_T_DECLARED -#endif - -struct timespec { - time_t tv_sec; /* seconds */ - long tv_nsec; /* and nanoseconds */ -}; - -#endif /* !_SYS__TIMESPEC_H_ */ diff --git a/include/sys/_timeval.h b/include/sys/_timeval.h deleted file mode 100644 index 6b250c0..0000000 --- a/include/sys/_timeval.h +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002 Mike Barcroft - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: head/sys/sys/_timeval.h 326256 2017-11-27 15:01:59Z pfg $ - */ - -#ifndef _SYS__TIMEVAL_H_ -#define _SYS__TIMEVAL_H_ - -#include - -#ifndef _SUSECONDS_T_DECLARED -typedef __suseconds_t suseconds_t; -#define _SUSECONDS_T_DECLARED -#endif - -#if !defined(__time_t_defined) && !defined(_TIME_T_DECLARED) -typedef _TIME_T_ time_t; -#define __time_t_defined -#define _TIME_T_DECLARED -#endif - -/* This define is also used outside of Newlib, e.g. in MinGW-w64 */ -#ifndef _TIMEVAL_DEFINED -#define _TIMEVAL_DEFINED - -/* - * Structure returned by gettimeofday(2) system call, and used in other calls. - */ -struct timeval { - time_t tv_sec; /* seconds */ - suseconds_t tv_usec; /* and microseconds */ -}; -#endif /* _TIMEVAL_DEFINED */ - -#endif /* !_SYS__TIMEVAL_H_ */ diff --git a/include/sys/_types.h b/include/sys/_types.h deleted file mode 100644 index d1112d5..0000000 --- a/include/sys/_types.h +++ /dev/null @@ -1,228 +0,0 @@ -/* ANSI C namespace clean utility typedefs */ - -/* This file defines various typedefs needed by the system calls that support - the C library. Basically, they're just the POSIX versions with an '_' - prepended. Targets shall use to define their own - internal types if desired. - - There are three define patterns used for type definitions. Lets assume - xyz_t is a user type. - - The internal type definition uses __machine_xyz_t_defined. It is defined by - to disable a default definition in . It - must not be used in other files. - - User type definitions are guarded by __xyz_t_defined in glibc and - _XYZ_T_DECLARED in BSD compatible systems. -*/ - -#ifndef _SYS__TYPES_H -#define _SYS__TYPES_H - -#define __need_size_t -#define __need_wint_t -#include -#include -#include -#include - -#ifndef __machine_blkcnt_t_defined -typedef long __blkcnt_t; -#endif - -#ifndef __machine_blksize_t_defined -typedef long __blksize_t; -#endif - -#ifndef __machine_fsblkcnt_t_defined -typedef __uint64_t __fsblkcnt_t; -#endif - -#ifndef __machine_fsfilcnt_t_defined -typedef __uint32_t __fsfilcnt_t; -#endif - -#ifndef __machine_off_t_defined -typedef long _off_t; -#endif - -#if defined(__XMK__) -typedef signed char __pid_t; -#else -typedef int __pid_t; -#endif - -#ifndef __machine_dev_t_defined -typedef short __dev_t; -#endif - -#ifndef __machine_uid_t_defined -typedef unsigned short __uid_t; -#endif -#ifndef __machine_gid_t_defined -typedef unsigned short __gid_t; -#endif - -#ifndef __machine_id_t_defined -typedef __uint32_t __id_t; -#endif - -#ifndef __machine_ino_t_defined -#if (defined(__i386__) && (defined(GO32) || defined(__MSDOS__))) || \ - defined(__sparc__) || defined(__SPU__) -typedef unsigned long __ino_t; -#else -typedef unsigned short __ino_t; -#endif -#endif - -#ifndef __machine_mode_t_defined -#if defined(__i386__) && (defined(GO32) || defined(__MSDOS__)) -typedef int __mode_t; -#else -#if defined(__sparc__) && !defined(__sparc_v9__) -#ifdef __svr4__ -typedef unsigned long __mode_t; -#else -typedef unsigned short __mode_t; -#endif -#else -typedef __uint32_t __mode_t; -#endif -#endif -#endif - -#ifndef __machine_off64_t_defined -__extension__ typedef long long _off64_t; -#endif - -#if defined(__CYGWIN__) && !defined(__LP64__) -typedef _off64_t __off_t; -#else -typedef _off_t __off_t; -#endif - -typedef _off64_t __loff_t; - -#ifndef __machine_key_t_defined -typedef long __key_t; -#endif - -/* - * We need fpos_t for the following, but it doesn't have a leading "_", - * so we use _fpos_t instead. - */ -#ifndef __machine_fpos_t_defined -typedef long _fpos_t; /* XXX must match off_t in */ - /* (and must be `long' for now) */ -#endif - -#ifdef __LARGE64_FILES -#ifndef __machine_fpos64_t_defined -typedef _off64_t _fpos64_t; -#endif -#endif - -/* Defined by GCC provided */ -#undef __size_t - -#ifndef __machine_size_t_defined -#ifdef __SIZE_TYPE__ -typedef __SIZE_TYPE__ __size_t; -#else -#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647 -typedef unsigned int __size_t; -#else -typedef unsigned long __size_t; -#endif -#endif -#endif - -#ifndef __machine_ssize_t_defined -#ifdef __SIZE_TYPE__ -/* If __SIZE_TYPE__ is defined (gcc) we define ssize_t based on size_t. - We simply change "unsigned" to "signed" for this single definition - to make sure ssize_t and size_t only differ by their signedness. */ -#define unsigned signed -typedef __SIZE_TYPE__ _ssize_t; -#undef unsigned -#else -#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647 -typedef int _ssize_t; -#else -typedef long _ssize_t; -#endif -#endif -#endif - -typedef _ssize_t __ssize_t; - -#ifndef __machine_mbstate_t_defined -/* Conversion state information. */ -typedef struct -{ - int __count; - union - { - wint_t __wch; - unsigned char __wchb[4]; - } __value; /* Value so far. */ -} _mbstate_t; -#endif - -#ifndef __machine_iconv_t_defined -/* Iconv descriptor type */ -typedef void *_iconv_t; -#endif - -#ifndef __machine_clock_t_defined -#define _CLOCK_T_ unsigned long /* clock() */ -#endif - -typedef _CLOCK_T_ __clock_t; - -#if defined(_USE_LONG_TIME_T) || __LONG_MAX__ > 0x7fffffffL -#define _TIME_T_ long -#else -#define _TIME_T_ __int_least64_t -#endif -typedef _TIME_T_ __time_t; - -#ifndef __machine_clockid_t_defined -#define _CLOCKID_T_ unsigned long -#endif - -typedef _CLOCKID_T_ __clockid_t; - -#ifndef __machine_daddr_t_defined -typedef long __daddr_t; -#endif - -#define _TIMER_T_ unsigned long -typedef _TIMER_T_ __timer_t; - -#ifndef __machine_sa_family_t_defined -typedef __uint8_t __sa_family_t; -#endif - -#ifndef __machine_socklen_t_defined -typedef __uint32_t __socklen_t; -#endif - -typedef int __nl_item; -typedef unsigned short __nlink_t; -typedef long __suseconds_t; /* microseconds (signed) */ -typedef unsigned long __useconds_t; /* microseconds (unsigned) */ - -/* - * Must be identical to the __GNUCLIKE_BUILTIN_VAALIST definition in - * . The must not be included here to avoid cyclic - * header dependencies. - */ -#if __GNUC_MINOR__ > 95 || __GNUC__ >= 3 -typedef __builtin_va_list __va_list; -#else -typedef char * __va_list; -#endif - -#endif /* _SYS__TYPES_H */ diff --git a/include/sys/_tz_structs.h b/include/sys/_tz_structs.h deleted file mode 100644 index 9610b06..0000000 --- a/include/sys/_tz_structs.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _SYS__TZ_STRUCTS_H_ -#define _SYS__TZ_STRUCTS_H_ - -typedef struct __tzrule_struct -{ - char ch; - int m; /* Month of year if ch=M */ - int n; /* Week of month if ch=M */ - int d; /* Day of week if ch=M, day of year if ch=J or ch=D */ - int s; /* Time of day in seconds */ - time_t change; - long offset; /* Match type of _timezone. */ -} __tzrule_type; - -typedef struct __tzinfo_struct -{ - int __tznorth; - int __tzyear; - __tzrule_type __tzrule[2]; -} __tzinfo_type; - -__tzinfo_type *__gettzinfo (void); - -#endif /* _SYS__TZ_STRUCTS_H_ */ diff --git a/include/sys/cdefs.h b/include/sys/cdefs.h deleted file mode 100644 index 720e700..0000000 --- a/include/sys/cdefs.h +++ /dev/null @@ -1,740 +0,0 @@ -/* libc/sys/linux/sys/cdefs.h - Helper macros for K&R vs. ANSI C compat. */ - -/* Written 2000 by Werner Almesberger */ - -/*- - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Berkeley Software Design, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)cdefs.h 8.8 (Berkeley) 1/9/95 - * $FreeBSD$ - */ - -#ifndef _SYS_CDEFS_H_ -#define _SYS_CDEFS_H_ - -#include -#include -#include - -#define __PMT(args) args -#define __DOTS , ... -#define __THROW - -#ifdef __GNUC__ -# define __ASMNAME(cname) __XSTRING (__USER_LABEL_PREFIX__) cname -#endif - -#define __ptr_t void * -#define __long_double_t long double - -#define __attribute_malloc__ -#define __attribute_pure__ -#define __attribute_format_strfmon__(a,b) -#define __flexarr [0] - -#ifndef __BOUNDED_POINTERS__ -# define __bounded /* nothing */ -# define __unbounded /* nothing */ -# define __ptrvalue /* nothing */ -#endif - -/* - * Testing against Clang-specific extensions. - */ -#ifndef __has_attribute -#define __has_attribute(x) 0 -#endif -#ifndef __has_extension -#define __has_extension __has_feature -#endif -#ifndef __has_feature -#define __has_feature(x) 0 -#endif -#ifndef __has_include -#define __has_include(x) 0 -#endif -#ifndef __has_builtin -#define __has_builtin(x) 0 -#endif - -#if defined(__cplusplus) -#define __BEGIN_DECLS extern "C" { -#define __END_DECLS } -#else -#define __BEGIN_DECLS -#define __END_DECLS -#endif - -/* - * This code has been put in place to help reduce the addition of - * compiler specific defines in FreeBSD code. It helps to aid in - * having a compiler-agnostic source tree. - */ - -#if defined(__GNUC__) - -#if __GNUC__ >= 3 -#define __GNUCLIKE_ASM 3 -#define __GNUCLIKE_MATH_BUILTIN_CONSTANTS -#else -#define __GNUCLIKE_ASM 2 -#endif -#define __GNUCLIKE___TYPEOF 1 -#define __GNUCLIKE___SECTION 1 - -#define __GNUCLIKE_CTOR_SECTION_HANDLING 1 - -#define __GNUCLIKE_BUILTIN_CONSTANT_P 1 - -#if (__GNUC_MINOR__ > 95 || __GNUC__ >= 3) -#define __GNUCLIKE_BUILTIN_VARARGS 1 -#define __GNUCLIKE_BUILTIN_STDARG 1 -#define __GNUCLIKE_BUILTIN_VAALIST 1 -#endif - -#define __GNUC_VA_LIST_COMPATIBILITY 1 - -/* - * Compiler memory barriers, specific to gcc and clang. - */ -#define __compiler_membar() __asm __volatile(" " : : : "memory") - -#define __GNUCLIKE_BUILTIN_NEXT_ARG 1 -#define __GNUCLIKE_MATH_BUILTIN_RELOPS - -#define __GNUCLIKE_BUILTIN_MEMCPY 1 - -/* XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced */ -#define __CC_SUPPORTS_INLINE 1 -#define __CC_SUPPORTS___INLINE 1 -#define __CC_SUPPORTS___INLINE__ 1 - -#define __CC_SUPPORTS___FUNC__ 1 -#define __CC_SUPPORTS_WARNING 1 - -#define __CC_SUPPORTS_VARADIC_XXX 1 /* see varargs.h */ - -#define __CC_SUPPORTS_DYNAMIC_ARRAY_INIT 1 - -#endif /* __GNUC__ */ - -/* - * The __CONCAT macro is used to concatenate parts of symbol names, e.g. - * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. - * The __CONCAT macro is a bit tricky to use if it must work in non-ANSI - * mode -- there must be no spaces between its arguments, and for nested - * __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also - * concatenate double-quoted strings produced by the __STRING macro, but - * this only works with ANSI C. - * - * __XSTRING is like __STRING, but it expands any macros in its argument - * first. It is only available with ANSI C. - */ -#if defined(__STDC__) || defined(__cplusplus) -#define __P(protos) protos /* full-blown ANSI C */ -#define __CONCAT1(x,y) x ## y -#define __CONCAT(x,y) __CONCAT1(x,y) -#define __STRING(x) #x /* stringify without expanding x */ -#define __XSTRING(x) __STRING(x) /* expand x, then stringify */ - -#define __const const /* define reserved names to standard */ -#define __signed signed -#define __volatile volatile -#if defined(__cplusplus) -#define __inline inline /* convert to C++ keyword */ -#else -#if !(defined(__CC_SUPPORTS___INLINE)) -#define __inline /* delete GCC keyword */ -#endif /* ! __CC_SUPPORTS___INLINE */ -#endif /* !__cplusplus */ - -#else /* !(__STDC__ || __cplusplus) */ -#define __P(protos) () /* traditional C preprocessor */ -#define __CONCAT(x,y) x/**/y -#define __STRING(x) "x" - -#if !defined(__CC_SUPPORTS___INLINE) -#define __const /* delete pseudo-ANSI C keywords */ -#define __inline -#define __signed -#define __volatile -/* - * In non-ANSI C environments, new programs will want ANSI-only C keywords - * deleted from the program and old programs will want them left alone. - * When using a compiler other than gcc, programs using the ANSI C keywords - * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. - * When using "gcc -traditional", we assume that this is the intent; if - * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. - */ -#ifndef NO_ANSI_KEYWORDS -#define const /* delete ANSI C keywords */ -#define inline -#define signed -#define volatile -#endif /* !NO_ANSI_KEYWORDS */ -#endif /* !__CC_SUPPORTS___INLINE */ -#endif /* !(__STDC__ || __cplusplus) */ - -/* - * Compiler-dependent macros to help declare dead (non-returning) and - * pure (no side effects) functions, and unused variables. They are - * null except for versions of gcc that are known to support the features - * properly (old versions of gcc-2 supported the dead and pure features - * in a different (wrong) way). If we do not provide an implementation - * for a given compiler, let the compile fail if it is told to use - * a feature that we cannot live without. - */ -#define __weak_symbol __attribute__((__weak__)) -#if !__GNUC_PREREQ__(2, 5) -#define __dead2 -#define __pure2 -#define __unused -#endif -#if __GNUC__ == 2 && __GNUC_MINOR__ >= 5 && __GNUC_MINOR__ < 7 -#define __dead2 __attribute__((__noreturn__)) -#define __pure2 __attribute__((__const__)) -#define __unused -/* XXX Find out what to do for __packed, __aligned and __section */ -#endif -#if __GNUC_PREREQ__(2, 7) -#define __dead2 __attribute__((__noreturn__)) -#define __pure2 __attribute__((__const__)) -#define __unused __attribute__((__unused__)) -#define __used __attribute__((__used__)) -#define __packed __attribute__((__packed__)) -#define __aligned(x) __attribute__((__aligned__(x))) -#define __section(x) __attribute__((__section__(x))) -#endif -#if __GNUC_PREREQ__(4, 3) || __has_attribute(__alloc_size__) -#define __alloc_size(x) __attribute__((__alloc_size__(x))) -#define __alloc_size2(n, x) __attribute__((__alloc_size__(n, x))) -#else -#define __alloc_size(x) -#define __alloc_size2(n, x) -#endif -#if __GNUC_PREREQ__(4, 9) || __has_attribute(__alloc_align__) -#define __alloc_align(x) __attribute__((__alloc_align__(x))) -#else -#define __alloc_align(x) -#endif - -#if !__GNUC_PREREQ__(2, 95) -#define __alignof(x) __offsetof(struct { char __a; x __b; }, __b) -#endif - -/* - * Keywords added in C11. - */ - -#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L - -#if !__has_extension(c_alignas) -#if (defined(__cplusplus) && __cplusplus >= 201103L) || \ - __has_extension(cxx_alignas) -#define _Alignas(x) alignas(x) -#else -/* XXX: Only emulates _Alignas(constant-expression); not _Alignas(type-name). */ -#define _Alignas(x) __aligned(x) -#endif -#endif - -#if defined(__cplusplus) && __cplusplus >= 201103L -#define _Alignof(x) alignof(x) -#else -#define _Alignof(x) __alignof(x) -#endif - -#if !defined(__cplusplus) && !__has_extension(c_atomic) && \ - !__has_extension(cxx_atomic) && !__GNUC_PREREQ__(4, 7) -/* - * No native support for _Atomic(). Place object in structure to prevent - * most forms of direct non-atomic access. - */ -#define _Atomic(T) struct { T volatile __val; } -#endif - -#if defined(__cplusplus) && __cplusplus >= 201103L -#define _Noreturn [[noreturn]] -#else -#define _Noreturn __dead2 -#endif - -#if !__has_extension(c_static_assert) -#if (defined(__cplusplus) && __cplusplus >= 201103L) || \ - __has_extension(cxx_static_assert) -#define _Static_assert(x, y) static_assert(x, y) -#elif __GNUC_PREREQ__(4,6) && !defined(__cplusplus) -/* Nothing, gcc 4.6 and higher has _Static_assert built-in */ -#elif defined(__COUNTER__) -#define _Static_assert(x, y) __Static_assert(x, __COUNTER__) -#define __Static_assert(x, y) ___Static_assert(x, y) -#define ___Static_assert(x, y) typedef char __assert_ ## y[(x) ? 1 : -1] \ - __unused -#else -#define _Static_assert(x, y) struct __hack -#endif -#endif - -#if !__has_extension(c_thread_local) -/* - * XXX: Some compilers (Clang 3.3, GCC 4.7) falsely announce C++11 mode - * without actually supporting the thread_local keyword. Don't check for - * the presence of C++11 when defining _Thread_local. - */ -#if /* (defined(__cplusplus) && __cplusplus >= 201103L) || */ \ - __has_extension(cxx_thread_local) -#define _Thread_local thread_local -#else -#define _Thread_local __thread -#endif -#endif - -#endif /* __STDC_VERSION__ || __STDC_VERSION__ < 201112L */ - -/* - * Emulation of C11 _Generic(). Unlike the previously defined C11 - * keywords, it is not possible to implement this using exactly the same - * syntax. Therefore implement something similar under the name - * __generic(). Unlike _Generic(), this macro can only distinguish - * between a single type, so it requires nested invocations to - * distinguish multiple cases. - */ - -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ - __has_extension(c_generic_selections) -#define __generic(expr, t, yes, no) \ - _Generic(expr, t: yes, default: no) -#elif __GNUC_PREREQ__(3, 1) && !defined(__cplusplus) -#define __generic(expr, t, yes, no) \ - __builtin_choose_expr( \ - __builtin_types_compatible_p(__typeof(expr), t), yes, no) -#endif - -/* - * C99 Static array indices in function parameter declarations. Syntax such as: - * void bar(int myArray[static 10]); - * is allowed in C99 but not in C++. Define __min_size appropriately so - * headers using it can be compiled in either language. Use like this: - * void bar(int myArray[__min_size(10)]); - */ -#if !defined(__cplusplus) && \ - (defined(__clang__) || __GNUC_PREREQ__(4, 6)) && \ - (!defined(__STDC_VERSION__) || (__STDC_VERSION__ >= 199901)) -#define __min_size(x) static (x) -#else -#define __min_size(x) (x) -#endif - -#if __GNUC_PREREQ__(2, 96) -#define __malloc_like __attribute__((__malloc__)) -#define __pure __attribute__((__pure__)) -#else -#define __malloc_like -#define __pure -#endif - -#if __GNUC_PREREQ__(3, 1) -#define __always_inline __inline__ __attribute__((__always_inline__)) -#else -#define __always_inline -#endif - -#if __GNUC_PREREQ__(3, 1) -#define __noinline __attribute__ ((__noinline__)) -#else -#define __noinline -#endif - -#if __GNUC_PREREQ__(3, 3) -#define __nonnull(x) __attribute__((__nonnull__ x)) -#define __nonnull_all __attribute__((__nonnull__)) -#else -#define __nonnull(x) -#define __nonnull_all -#endif - -#if __GNUC_PREREQ__(3, 4) -#define __fastcall __attribute__((__fastcall__)) -#define __result_use_check __attribute__((__warn_unused_result__)) -#else -#define __fastcall -#define __result_use_check -#endif - -#if __GNUC_PREREQ__(4, 1) -#define __returns_twice __attribute__((__returns_twice__)) -#else -#define __returns_twice -#endif - -#if __GNUC_PREREQ__(4, 6) || __has_builtin(__builtin_unreachable) -#define __unreachable() __builtin_unreachable() -#else -#define __unreachable() ((void)0) -#endif - -/* XXX: should use `#if __STDC_VERSION__ < 199901'. */ -#if !__GNUC_PREREQ__(2, 7) -#define __func__ NULL -#endif - -/* - * GCC 2.95 provides `__restrict' as an extension to C90 to support the - * C99-specific `restrict' type qualifier. We happen to use `__restrict' as - * a way to define the `restrict' type qualifier without disturbing older - * software that is unaware of C99 keywords. - */ -#if !(__GNUC__ == 2 && __GNUC_MINOR__ == 95) -#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901 -#define __restrict -#else -#define __restrict restrict -#endif -#endif - -/* - * GNU C version 2.96 adds explicit branch prediction so that - * the CPU back-end can hint the processor and also so that - * code blocks can be reordered such that the predicted path - * sees a more linear flow, thus improving cache behavior, etc. - * - * The following two macros provide us with a way to utilize this - * compiler feature. Use __predict_true() if you expect the expression - * to evaluate to true, and __predict_false() if you expect the - * expression to evaluate to false. - * - * A few notes about usage: - * - * * Generally, __predict_false() error condition checks (unless - * you have some _strong_ reason to do otherwise, in which case - * document it), and/or __predict_true() `no-error' condition - * checks, assuming you want to optimize for the no-error case. - * - * * Other than that, if you don't know the likelihood of a test - * succeeding from empirical or other `hard' evidence, don't - * make predictions. - * - * * These are meant to be used in places that are run `a lot'. - * It is wasteful to make predictions in code that is run - * seldomly (e.g. at subsystem initialization time) as the - * basic block reordering that this affects can often generate - * larger code. - */ -#if __GNUC_PREREQ__(2, 96) -#define __predict_true(exp) __builtin_expect((exp), 1) -#define __predict_false(exp) __builtin_expect((exp), 0) -#else -#define __predict_true(exp) (exp) -#define __predict_false(exp) (exp) -#endif - -#if __GNUC_PREREQ__(4, 0) -#define __null_sentinel __attribute__((__sentinel__)) -#define __exported __attribute__((__visibility__("default"))) -/* Only default visibility is supported on PE/COFF targets. */ -#ifndef __CYGWIN__ -#define __hidden __attribute__((__visibility__("hidden"))) -#else -#define __hidden -#endif -#else -#define __null_sentinel -#define __exported -#define __hidden -#endif - -#define __offsetof(type, field) offsetof(type, field) -#define __rangeof(type, start, end) \ - (__offsetof(type, end) - __offsetof(type, start)) - -/* - * Given the pointer x to the member m of the struct s, return - * a pointer to the containing structure. When using GCC, we first - * assign pointer x to a local variable, to check that its type is - * compatible with member m. - */ -#if __GNUC_PREREQ__(3, 1) -#define __containerof(x, s, m) ({ \ - const volatile __typeof(((s *)0)->m) *__x = (x); \ - __DEQUALIFY(s *, (const volatile char *)__x - __offsetof(s, m));\ -}) -#else -#define __containerof(x, s, m) \ - __DEQUALIFY(s *, (const volatile char *)(x) - __offsetof(s, m)) -#endif - -/* - * Compiler-dependent macros to declare that functions take printf-like - * or scanf-like arguments. They are null except for versions of gcc - * that are known to support the features properly (old versions of gcc-2 - * didn't permit keeping the keywords out of the application namespace). - */ -#if !__GNUC_PREREQ__(2, 7) -#define __printflike(fmtarg, firstvararg) -#define __scanflike(fmtarg, firstvararg) -#define __format_arg(fmtarg) -#define __strfmonlike(fmtarg, firstvararg) -#define __strftimelike(fmtarg, firstvararg) -#else -#define __printflike(fmtarg, firstvararg) \ - __attribute__((__format__ (__printf__, fmtarg, firstvararg))) -#define __scanflike(fmtarg, firstvararg) \ - __attribute__((__format__ (__scanf__, fmtarg, firstvararg))) -#define __format_arg(fmtarg) __attribute__((__format_arg__ (fmtarg))) -#define __strfmonlike(fmtarg, firstvararg) \ - __attribute__((__format__ (__strfmon__, fmtarg, firstvararg))) -#define __strftimelike(fmtarg, firstvararg) \ - __attribute__((__format__ (__strftime__, fmtarg, firstvararg))) -#endif - -/* Compiler-dependent macros that rely on FreeBSD-specific extensions. */ -#if defined(__FreeBSD_cc_version) && __FreeBSD_cc_version >= 300001 && \ - defined(__GNUC__) -#define __printf0like(fmtarg, firstvararg) \ - __attribute__((__format__ (__printf0__, fmtarg, firstvararg))) -#else -#define __printf0like(fmtarg, firstvararg) -#endif - -#if defined(__GNUC__) -#define __strong_reference(sym,aliassym) \ - extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym))) -#ifdef __ELF__ -#ifdef __STDC__ -#define __weak_reference(sym,alias) \ - __asm__(".weak " #alias); \ - __asm__(".equ " #alias ", " #sym) -#define __warn_references(sym,msg) \ - __asm__(".section .gnu.warning." #sym); \ - __asm__(".asciz \"" msg "\""); \ - __asm__(".previous") -#define __sym_compat(sym,impl,verid) \ - __asm__(".symver " #impl ", " #sym "@" #verid) -#define __sym_default(sym,impl,verid) \ - __asm__(".symver " #impl ", " #sym "@@" #verid) -#else -#define __weak_reference(sym,alias) \ - __asm__(".weak alias"); \ - __asm__(".equ alias, sym") -#define __warn_references(sym,msg) \ - __asm__(".section .gnu.warning.sym"); \ - __asm__(".asciz \"msg\""); \ - __asm__(".previous") -#define __sym_compat(sym,impl,verid) \ - __asm__(".symver impl, sym@verid") -#define __sym_default(impl,sym,verid) \ - __asm__(".symver impl, sym@@verid") -#endif /* __STDC__ */ -#else /* !__ELF__ */ -#ifdef __STDC__ -#define __weak_reference(sym,alias) \ - __asm__(".stabs \"_" #alias "\",11,0,0,0"); \ - __asm__(".stabs \"_" #sym "\",1,0,0,0") -#define __warn_references(sym,msg) \ - __asm__(".stabs \"" msg "\",30,0,0,0"); \ - __asm__(".stabs \"_" #sym "\",1,0,0,0") -#else -#define __weak_reference(sym,alias) \ - __asm__(".stabs \"_/**/alias\",11,0,0,0"); \ - __asm__(".stabs \"_/**/sym\",1,0,0,0") -#define __warn_references(sym,msg) \ - __asm__(".stabs msg,30,0,0,0"); \ - __asm__(".stabs \"_/**/sym\",1,0,0,0") -#endif /* __STDC__ */ -#endif /* __ELF__ */ -#endif /* __GNUC__ */ - -#ifndef __FBSDID -#define __FBSDID(s) struct __hack -#endif - -#ifndef __RCSID -#define __RCSID(s) struct __hack -#endif - -#ifndef __RCSID_SOURCE -#define __RCSID_SOURCE(s) struct __hack -#endif - -#ifndef __SCCSID -#define __SCCSID(s) struct __hack -#endif - -#ifndef __COPYRIGHT -#define __COPYRIGHT(s) struct __hack -#endif - -#ifndef __DECONST -#define __DECONST(type, var) ((type)(__uintptr_t)(const void *)(var)) -#endif - -#ifndef __DEVOLATILE -#define __DEVOLATILE(type, var) ((type)(__uintptr_t)(volatile void *)(var)) -#endif - -#ifndef __DEQUALIFY -#define __DEQUALIFY(type, var) ((type)(__uintptr_t)(const volatile void *)(var)) -#endif - -/* - * Nullability qualifiers: currently only supported by Clang. - */ -#if !(defined(__clang__) && __has_feature(nullability)) -#define _Nonnull -#define _Nullable -#define _Null_unspecified -#define __NULLABILITY_PRAGMA_PUSH -#define __NULLABILITY_PRAGMA_POP -#else -#define __NULLABILITY_PRAGMA_PUSH _Pragma("clang diagnostic push") \ - _Pragma("clang diagnostic ignored \"-Wnullability-completeness\"") -#define __NULLABILITY_PRAGMA_POP _Pragma("clang diagnostic pop") -#endif - -/* - * Type Safety Checking - * - * Clang provides additional attributes to enable checking type safety - * properties that cannot be enforced by the C type system. - */ - -#if __has_attribute(__argument_with_type_tag__) && \ - __has_attribute(__type_tag_for_datatype__) -#define __arg_type_tag(arg_kind, arg_idx, type_tag_idx) \ - __attribute__((__argument_with_type_tag__(arg_kind, arg_idx, type_tag_idx))) -#define __datatype_type_tag(kind, type) \ - __attribute__((__type_tag_for_datatype__(kind, type))) -#else -#define __arg_type_tag(arg_kind, arg_idx, type_tag_idx) -#define __datatype_type_tag(kind, type) -#endif - -/* - * Lock annotations. - * - * Clang provides support for doing basic thread-safety tests at - * compile-time, by marking which locks will/should be held when - * entering/leaving a functions. - * - * Furthermore, it is also possible to annotate variables and structure - * members to enforce that they are only accessed when certain locks are - * held. - */ - -#if __has_extension(c_thread_safety_attributes) -#define __lock_annotate(x) __attribute__((x)) -#else -#define __lock_annotate(x) -#endif - -/* Structure implements a lock. */ -/* FIXME: Use __lockable__, etc. to avoid colliding with user namespace macros, - * once clang is fixed: https://bugs.llvm.org/show_bug.cgi?id=34319 */ -#define __lockable __lock_annotate(lockable) - -/* Function acquires an exclusive or shared lock. */ -#define __locks_exclusive(...) \ - __lock_annotate(exclusive_lock_function(__VA_ARGS__)) -#define __locks_shared(...) \ - __lock_annotate(shared_lock_function(__VA_ARGS__)) - -/* Function attempts to acquire an exclusive or shared lock. */ -#define __trylocks_exclusive(...) \ - __lock_annotate(exclusive_trylock_function(__VA_ARGS__)) -#define __trylocks_shared(...) \ - __lock_annotate(shared_trylock_function(__VA_ARGS__)) - -/* Function releases a lock. */ -#define __unlocks(...) __lock_annotate(unlock_function(__VA_ARGS__)) - -/* Function asserts that an exclusive or shared lock is held. */ -#define __asserts_exclusive(...) \ - __lock_annotate(assert_exclusive_lock(__VA_ARGS__)) -#define __asserts_shared(...) \ - __lock_annotate(assert_shared_lock(__VA_ARGS__)) - -/* Function requires that an exclusive or shared lock is or is not held. */ -#define __requires_exclusive(...) \ - __lock_annotate(exclusive_locks_required(__VA_ARGS__)) -#define __requires_shared(...) \ - __lock_annotate(shared_locks_required(__VA_ARGS__)) -#define __requires_unlocked(...) \ - __lock_annotate(locks_excluded(__VA_ARGS__)) - -/* Function should not be analyzed. */ -#define __no_lock_analysis __lock_annotate(no_thread_safety_analysis) - -/* - * Function or variable should not be sanitized, e.g., by AddressSanitizer. - * GCC has the nosanitize attribute, but as a function attribute only, and - * warns on use as a variable attribute. - */ -#if __has_attribute(no_sanitize) && defined(__clang__) -#ifdef _KERNEL -#define __nosanitizeaddress __attribute__((no_sanitize("kernel-address"))) -#define __nosanitizememory __attribute__((no_sanitize("kernel-memory"))) -#else -#define __nosanitizeaddress __attribute__((no_sanitize("address"))) -#define __nosanitizememory __attribute__((no_sanitize("memory"))) -#endif -#define __nosanitizethread __attribute__((no_sanitize("thread"))) -#else -#define __nosanitizeaddress -#define __nosanitizememory -#define __nosanitizethread -#endif - -/* Guard variables and structure members by lock. */ -#define __guarded_by(x) __lock_annotate(guarded_by(x)) -#define __pt_guarded_by(x) __lock_annotate(pt_guarded_by(x)) - -/* Alignment builtins for better type checking and improved code generation. */ -/* Provide fallback versions for other compilers (GCC/Clang < 10): */ -#if !__has_builtin(__builtin_is_aligned) -#define __builtin_is_aligned(x, align) \ - (((__uintptr_t)x & ((align) - 1)) == 0) -#endif -#if !__has_builtin(__builtin_align_up) -#define __builtin_align_up(x, align) \ - ((__typeof__(x))(((__uintptr_t)(x)+((align)-1))&(~((align)-1)))) -#endif -#if !__has_builtin(__builtin_align_down) -#define __builtin_align_down(x, align) \ - ((__typeof__(x))((x)&(~((align)-1)))) -#endif - -#define __align_up(x, y) __builtin_align_up(x, y) -#define __align_down(x, y) __builtin_align_down(x, y) -#define __is_aligned(x, y) __builtin_is_aligned(x, y) - -#endif /* !_SYS_CDEFS_H_ */ diff --git a/include/sys/config.h b/include/sys/config.h deleted file mode 100644 index 5dcc77a..0000000 --- a/include/sys/config.h +++ /dev/null @@ -1,314 +0,0 @@ -#ifndef __SYS_CONFIG_H__ -#define __SYS_CONFIG_H__ - -#include /* floating point macros */ -#include /* POSIX defs */ - -#ifdef __aarch64__ -#define MALLOC_ALIGNMENT 16 -#endif - -#ifdef __AMDGCN__ -#define __DYNAMIC_REENT__ -#endif - -/* exceptions first */ -#if defined(__H8500__) || defined(__W65__) -#define __SMALL_BITFIELDS -/* ??? This conditional is true for the h8500 and the w65, defining H8300 - in those cases probably isn't the right thing to do. */ -#define H8300 1 -#endif - -/* 16 bit integer machines */ -#if defined(__Z8001__) || defined(__Z8002__) || defined(__H8500__) || defined(__W65__) || defined (__mn10200__) || defined (__AVR__) || defined (__MSP430__) - -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX 32767 -#define UINT_MAX 65535 -#endif - -#if defined (__H8300__) || defined (__H8300H__) || defined(__H8300S__) || defined (__H8300SX__) -#define __SMALL_BITFIELDS -#define H8300 1 -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#endif - -#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__)) -#ifndef __INT32__ -#define __SMALL_BITFIELDS -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX 32767 -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#else /* INT32 */ -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX 2147483647 -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#endif /* INT32 */ - -#endif /* CR16C */ - -#if defined (__xc16x__) || defined (__xc16xL__) || defined (__xc16xS__) -#define __SMALL_BITFIELDS -#endif - -#ifdef __W65__ -#define __SMALL_BITFIELDS -#endif - -#if defined(__D10V__) -#define __SMALL_BITFIELDS -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#define _POINTER_INT short -#endif - -#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__) -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#define _POINTER_INT short -#endif - -#if defined(__m68k__) || defined(__mc68000__) || defined(__riscv) -#define _READ_WRITE_RETURN_TYPE _ssize_t -#endif - -#ifdef ___AM29K__ -#define _FLOAT_RET double -#endif - -#ifdef __i386__ -#ifndef __unix__ -/* in other words, go32 */ -#define _FLOAT_RET double -#endif -#if defined(__linux__) || defined(__RDOS__) -/* we want the reentrancy structure to be returned by a function */ -#define __DYNAMIC_REENT__ -#define HAVE_GETDATE -#define _READ_WRITE_RETURN_TYPE _ssize_t -#define __LARGE64_FILES 1 -/* we use some glibc header files so turn on glibc large file feature */ -#define _LARGEFILE64_SOURCE 1 -#endif -#endif - -#ifdef __mn10200__ -#define __SMALL_BITFIELDS -#endif - -#ifdef __AVR__ -#define __SMALL_BITFIELDS -#define _POINTER_INT short -#endif - -#if defined(__v850) && !defined(__rtems__) -#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__)) -#endif - -/* For the PowerPC eabi, force the _impure_ptr to be in .sdata */ -#if defined(__PPC__) -#if defined(_CALL_SYSV) -#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata"))) -#endif -#ifdef __SPE__ -#define _LONG_DOUBLE double -#endif -#endif - -/* Configure small REENT structure for Xilinx MicroBlaze platforms */ -#if defined (__MICROBLAZE__) && !defined(__rtems__) -#ifndef _REENT_SMALL -#define _REENT_SMALL -#endif -/* Xilinx XMK uses Unix98 mutex */ -#ifdef __XMK__ -#define _UNIX98_THREAD_MUTEX_ATTRIBUTES -#endif -#endif - -#if defined(__mips__) && !defined(__rtems__) -#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata"))) -#endif - -#ifdef __xstormy16__ -#define __SMALL_BITFIELDS -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#define MALLOC_ALIGNMENT 8 -#define _POINTER_INT short -#define __BUFSIZ__ 16 -#define _REENT_SMALL -#endif - -#if defined __MSP430__ -#ifndef _REENT_SMALL -#define _REENT_SMALL -#endif - -#define __BUFSIZ__ 256 -#define __SMALL_BITFIELDS - -#ifdef __MSP430X_LARGE__ -#define _POINTER_INT __int20 -#else -#define _POINTER_INT int -#endif -#endif - -#ifdef __m32c__ -#define __SMALL_BITFIELDS -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#define MALLOC_ALIGNMENT 8 -#if defined(__r8c_cpu__) || defined(__m16c_cpu__) -#define _POINTER_INT short -#else -#define _POINTER_INT long -#endif -#define __BUFSIZ__ 16 -#define _REENT_SMALL -#endif /* __m32c__ */ - -#ifdef __SPU__ -#define MALLOC_ALIGNMENT 16 -#define __CUSTOM_FILE_IO__ -#endif - -#if defined(__or1k__) || defined(__or1knd__) -#define __DYNAMIC_REENT__ -#endif - -/* This block should be kept in sync with GCC's limits.h. The point - of having these definitions here is to not include limits.h, which - would pollute the user namespace, while still using types of the - the correct widths when deciding how to define __int32_t and - __int64_t. */ -#ifndef __INT_MAX__ -# ifdef INT_MAX -# define __INT_MAX__ INT_MAX -# else -# define __INT_MAX__ 2147483647 -# endif -#endif - -#ifndef __LONG_MAX__ -# ifdef LONG_MAX -# define __LONG_MAX__ LONG_MAX -# else -# if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) \ - || defined (__sparcv9) -# define __LONG_MAX__ 9223372036854775807L -# else -# define __LONG_MAX__ 2147483647L -# endif /* __alpha__ || sparc64 */ -# endif -#endif -/* End of block that should be kept in sync with GCC's limits.h. */ - -#ifndef _POINTER_INT -#define _POINTER_INT long -#endif - -#ifdef __frv__ -#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata"))) -#endif -#undef __RAND_MAX -#if __INT_MAX__ == 32767 -#define __RAND_MAX 32767 -#else -#define __RAND_MAX 0x7fffffff -#endif - -#if defined(__CYGWIN__) -#include -#endif - -#if defined(__rtems__) -#define __FILENAME_MAX__ 255 -#define _READ_WRITE_RETURN_TYPE _ssize_t -#define __DYNAMIC_REENT__ -#endif - -#ifndef __EXPORT -#define __EXPORT -#endif - -#ifndef __IMPORT -#define __IMPORT -#endif - -/* Define return type of read/write routines. In POSIX, the return type - for read()/write() is "ssize_t" but legacy newlib code has been using - "int" for some time. If not specified, "int" is defaulted. */ -#ifndef _READ_WRITE_RETURN_TYPE -#define _READ_WRITE_RETURN_TYPE int -#endif -/* Define `count' parameter of read/write routines. In POSIX, the `count' - parameter is "size_t" but legacy newlib code has been using "int" for some - time. If not specified, "int" is defaulted. */ -#ifndef _READ_WRITE_BUFSIZE_TYPE -#define _READ_WRITE_BUFSIZE_TYPE int -#endif - -#ifndef __WCHAR_MAX__ -#if __INT_MAX__ == 32767 || defined (_WIN32) -#define __WCHAR_MAX__ 0xffffu -#endif -#endif - -/* See if small reent asked for at configuration time and - is not chosen by the platform by default. */ -#ifdef _WANT_REENT_SMALL -#ifndef _REENT_SMALL -#define _REENT_SMALL -#endif -#endif - -#ifdef _WANT_USE_LONG_TIME_T -#ifndef _USE_LONG_TIME_T -#define _USE_LONG_TIME_T -#endif -#endif - -#ifdef _WANT_USE_GDTOA -#ifndef _USE_GDTOA -#define _USE_GDTOA -#endif -#endif - -#ifdef _WANT_REENT_BACKWARD_BINARY_COMPAT -#ifndef _REENT_BACKWARD_BINARY_COMPAT -#define _REENT_BACKWARD_BINARY_COMPAT -#endif -#endif - -#ifdef _WANT_REENT_THREAD_LOCAL -#ifndef _REENT_THREAD_LOCAL -#define _REENT_THREAD_LOCAL -#endif -#endif - -/* If _MB_EXTENDED_CHARSETS_ALL is set, we want all of the extended - charsets. The extended charsets add a few functions and a couple - of tables of a few K each. */ -#ifdef _MB_EXTENDED_CHARSETS_ALL -#define _MB_EXTENDED_CHARSETS_ISO 1 -#define _MB_EXTENDED_CHARSETS_WINDOWS 1 -#endif - -#endif /* __SYS_CONFIG_H__ */ diff --git a/include/sys/custom_file.h b/include/sys/custom_file.h deleted file mode 100644 index 96314fb..0000000 --- a/include/sys/custom_file.h +++ /dev/null @@ -1,2 +0,0 @@ -#error System-specific custom_file.h is missing. - diff --git a/include/sys/dir.h b/include/sys/dir.h deleted file mode 100644 index 220150d..0000000 --- a/include/sys/dir.h +++ /dev/null @@ -1,10 +0,0 @@ -/* BSD predecessor of POSIX.1 and struct dirent */ - -#ifndef _SYS_DIR_H_ -#define _SYS_DIR_H_ - -#include - -#define direct dirent - -#endif /*_SYS_DIR_H_*/ diff --git a/include/sys/dirent.h b/include/sys/dirent.h deleted file mode 100644 index a3fb5c0..0000000 --- a/include/sys/dirent.h +++ /dev/null @@ -1,13 +0,0 @@ -/* includes , which is this file. On a - system which supports , this file is overridden by - dirent.h in the libc/sys/.../sys directory. On a system which does - not support , we will get this file which uses #error to force - an error. */ - -#ifdef __cplusplus -extern "C" { -#endif -#error " not supported" -#ifdef __cplusplus -} -#endif diff --git a/include/sys/endian.h b/include/sys/endian.h deleted file mode 100644 index 3685322..0000000 --- a/include/sys/endian.h +++ /dev/null @@ -1,207 +0,0 @@ -/*- - * Copyright (c) 2002 Thomas Moestl - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: head/sys/sys/endian.h 208331 2010-05-20 06:16:13Z phk $ - */ - -#ifndef _SYS_ENDIAN_H_ -#define _SYS_ENDIAN_H_ - -#include -#include -#include - -#ifndef _UINT8_T_DECLARED -typedef __uint8_t uint8_t; -#define _UINT8_T_DECLARED -#endif - -#ifndef _UINT16_T_DECLARED -typedef __uint16_t uint16_t; -#define _UINT16_T_DECLARED -#endif - -#ifndef _UINT32_T_DECLARED -typedef __uint32_t uint32_t; -#define _UINT32_T_DECLARED -#endif - -#ifndef _UINT64_T_DECLARED -typedef __uint64_t uint64_t; -#define _UINT64_T_DECLARED -#endif - -/* - * General byte order swapping functions. - */ -#define bswap16(x) __bswap16(x) -#define bswap32(x) __bswap32(x) -#define bswap64(x) __bswap64(x) - -/* - * Host to big endian, host to little endian, big endian to host, and little - * endian to host byte order functions as detailed in byteorder(9). - */ -#if _BYTE_ORDER == _LITTLE_ENDIAN -#define htobe16(x) bswap16((x)) -#define htobe32(x) bswap32((x)) -#define htobe64(x) bswap64((x)) -#define htole16(x) ((uint16_t)(x)) -#define htole32(x) ((uint32_t)(x)) -#define htole64(x) ((uint64_t)(x)) - -#define be16toh(x) bswap16((x)) -#define be32toh(x) bswap32((x)) -#define be64toh(x) bswap64((x)) -#define le16toh(x) ((uint16_t)(x)) -#define le32toh(x) ((uint32_t)(x)) -#define le64toh(x) ((uint64_t)(x)) -#else /* _BYTE_ORDER != _LITTLE_ENDIAN */ -#define htobe16(x) ((uint16_t)(x)) -#define htobe32(x) ((uint32_t)(x)) -#define htobe64(x) ((uint64_t)(x)) -#define htole16(x) bswap16((x)) -#define htole32(x) bswap32((x)) -#define htole64(x) bswap64((x)) - -#define be16toh(x) ((uint16_t)(x)) -#define be32toh(x) ((uint32_t)(x)) -#define be64toh(x) ((uint64_t)(x)) -#define le16toh(x) bswap16((x)) -#define le32toh(x) bswap32((x)) -#define le64toh(x) bswap64((x)) -#endif /* _BYTE_ORDER == _LITTLE_ENDIAN */ - -/* Alignment-agnostic encode/decode bytestream to/from little/big endian. */ - -static __inline uint16_t -be16dec(const void *pp) -{ - uint8_t const *p = (uint8_t const *)pp; - - return (((unsigned)p[0] << 8) | p[1]); -} - -static __inline uint32_t -be32dec(const void *pp) -{ - uint8_t const *p = (uint8_t const *)pp; - - return (((uint32_t)p[0] << 24) | ((uint32_t)p[1] << 16) | - ((uint32_t)p[2] << 8) | p[3]); -} - -static __inline uint64_t -be64dec(const void *pp) -{ - uint8_t const *p = (uint8_t const *)pp; - - return (((uint64_t)be32dec(p) << 32) | be32dec(p + 4)); -} - -static __inline uint16_t -le16dec(const void *pp) -{ - uint8_t const *p = (uint8_t const *)pp; - - return (((unsigned)p[1] << 8) | p[0]); -} - -static __inline uint32_t -le32dec(const void *pp) -{ - uint8_t const *p = (uint8_t const *)pp; - - return (((uint32_t)p[3] << 24) | ((uint32_t)p[2] << 16) | - ((uint32_t)p[1] << 8) | p[0]); -} - -static __inline uint64_t -le64dec(const void *pp) -{ - uint8_t const *p = (uint8_t const *)pp; - - return (((uint64_t)le32dec(p + 4) << 32) | le32dec(p)); -} - -static __inline void -be16enc(void *pp, uint16_t u) -{ - uint8_t *p = (uint8_t *)pp; - - p[0] = (u >> 8) & 0xff; - p[1] = u & 0xff; -} - -static __inline void -be32enc(void *pp, uint32_t u) -{ - uint8_t *p = (uint8_t *)pp; - - p[0] = (u >> 24) & 0xff; - p[1] = (u >> 16) & 0xff; - p[2] = (u >> 8) & 0xff; - p[3] = u & 0xff; -} - -static __inline void -be64enc(void *pp, uint64_t u) -{ - uint8_t *p = (uint8_t *)pp; - - be32enc(p, (uint32_t)(u >> 32)); - be32enc(p + 4, (uint32_t)(u & 0xffffffffU)); -} - -static __inline void -le16enc(void *pp, uint16_t u) -{ - uint8_t *p = (uint8_t *)pp; - - p[0] = u & 0xff; - p[1] = (u >> 8) & 0xff; -} - -static __inline void -le32enc(void *pp, uint32_t u) -{ - uint8_t *p = (uint8_t *)pp; - - p[0] = u & 0xff; - p[1] = (u >> 8) & 0xff; - p[2] = (u >> 16) & 0xff; - p[3] = (u >> 24) & 0xff; -} - -static __inline void -le64enc(void *pp, uint64_t u) -{ - uint8_t *p = (uint8_t *)pp; - - le32enc(p, (uint32_t)(u & 0xffffffffU)); - le32enc(p + 4, (uint32_t)(u >> 32)); -} - -#endif /* _SYS_ENDIAN_H_ */ diff --git a/include/sys/errno.h b/include/sys/errno.h deleted file mode 100644 index f150971..0000000 --- a/include/sys/errno.h +++ /dev/null @@ -1,198 +0,0 @@ -/* errno is not a global variable, because that would make using it - non-reentrant. Instead, its address is returned by the function - __errno. */ - -#ifndef _SYS_ERRNO_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS_ERRNO_H_ - -#include - -#ifdef _REENT_THREAD_LOCAL -#define errno (_tls_errno) -#else /* _REENT_THREAD_LOCAL */ - -#ifndef _REENT_ONLY -#define errno (*__errno()) -extern int *__errno (void); -#endif - -#endif /* _REENT_THREAD_LOCAL */ - -/* Please don't use these variables directly. - Use strerror instead. */ -extern __IMPORT const char * const _sys_errlist[]; -extern __IMPORT int _sys_nerr; -#ifdef __CYGWIN__ -extern __IMPORT const char * const sys_errlist[]; -extern __IMPORT int sys_nerr; -extern __IMPORT char *program_invocation_name; -extern __IMPORT char *program_invocation_short_name; -#endif - -#define __errno_r(ptr) _REENT_ERRNO(ptr) - -#define EPERM 1 /* Not owner */ -#define ENOENT 2 /* No such file or directory */ -#define ESRCH 3 /* No such process */ -#define EINTR 4 /* Interrupted system call */ -#define EIO 5 /* I/O error */ -#define ENXIO 6 /* No such device or address */ -#define E2BIG 7 /* Arg list too long */ -#define ENOEXEC 8 /* Exec format error */ -#define EBADF 9 /* Bad file number */ -#define ECHILD 10 /* No children */ -#define EAGAIN 11 /* No more processes */ -#define ENOMEM 12 /* Not enough space */ -#define EACCES 13 /* Permission denied */ -#define EFAULT 14 /* Bad address */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ENOTBLK 15 /* Block device required */ -#endif -#define EBUSY 16 /* Device or resource busy */ -#define EEXIST 17 /* File exists */ -#define EXDEV 18 /* Cross-device link */ -#define ENODEV 19 /* No such device */ -#define ENOTDIR 20 /* Not a directory */ -#define EISDIR 21 /* Is a directory */ -#define EINVAL 22 /* Invalid argument */ -#define ENFILE 23 /* Too many open files in system */ -#define EMFILE 24 /* File descriptor value too large */ -#define ENOTTY 25 /* Not a character device */ -#define ETXTBSY 26 /* Text file busy */ -#define EFBIG 27 /* File too large */ -#define ENOSPC 28 /* No space left on device */ -#define ESPIPE 29 /* Illegal seek */ -#define EROFS 30 /* Read-only file system */ -#define EMLINK 31 /* Too many links */ -#define EPIPE 32 /* Broken pipe */ -#define EDOM 33 /* Mathematics argument out of domain of function */ -#define ERANGE 34 /* Result too large */ -#define ENOMSG 35 /* No message of desired type */ -#define EIDRM 36 /* Identifier removed */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ECHRNG 37 /* Channel number out of range */ -#define EL2NSYNC 38 /* Level 2 not synchronized */ -#define EL3HLT 39 /* Level 3 halted */ -#define EL3RST 40 /* Level 3 reset */ -#define ELNRNG 41 /* Link number out of range */ -#define EUNATCH 42 /* Protocol driver not attached */ -#define ENOCSI 43 /* No CSI structure available */ -#define EL2HLT 44 /* Level 2 halted */ -#endif -#define EDEADLK 45 /* Deadlock */ -#define ENOLCK 46 /* No lock */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define EBADE 50 /* Invalid exchange */ -#define EBADR 51 /* Invalid request descriptor */ -#define EXFULL 52 /* Exchange full */ -#define ENOANO 53 /* No anode */ -#define EBADRQC 54 /* Invalid request code */ -#define EBADSLT 55 /* Invalid slot */ -#define EDEADLOCK 56 /* File locking deadlock error */ -#define EBFONT 57 /* Bad font file fmt */ -#endif -#define ENOSTR 60 /* Not a stream */ -#define ENODATA 61 /* No data (for no delay io) */ -#define ETIME 62 /* Stream ioctl timeout */ -#define ENOSR 63 /* No stream resources */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ENONET 64 /* Machine is not on the network */ -#define ENOPKG 65 /* Package not installed */ -#define EREMOTE 66 /* The object is remote */ -#endif -#define ENOLINK 67 /* Virtual circuit is gone */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define EADV 68 /* Advertise error */ -#define ESRMNT 69 /* Srmount error */ -#define ECOMM 70 /* Communication error on send */ -#endif -#define EPROTO 71 /* Protocol error */ -#define EMULTIHOP 74 /* Multihop attempted */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ELBIN 75 /* Inode is remote (not really error) */ -#define EDOTDOT 76 /* Cross mount point (not really error) */ -#endif -#define EBADMSG 77 /* Bad message */ -#define EFTYPE 79 /* Inappropriate file type or format */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ENOTUNIQ 80 /* Given log. name not unique */ -#define EBADFD 81 /* f.d. invalid for this operation */ -#define EREMCHG 82 /* Remote address changed */ -#define ELIBACC 83 /* Can't access a needed shared lib */ -#define ELIBBAD 84 /* Accessing a corrupted shared lib */ -#define ELIBSCN 85 /* .lib section in a.out corrupted */ -#define ELIBMAX 86 /* Attempting to link in too many libs */ -#define ELIBEXEC 87 /* Attempting to exec a shared library */ -#endif -#define ENOSYS 88 /* Function not implemented */ -#ifdef __CYGWIN__ -#define ENMFILE 89 /* No more files */ -#endif -#define ENOTEMPTY 90 /* Directory not empty */ -#define ENAMETOOLONG 91 /* File or path name too long */ -#define ELOOP 92 /* Too many symbolic links */ -#define EOPNOTSUPP 95 /* Operation not supported on socket */ -#define EPFNOSUPPORT 96 /* Protocol family not supported */ -#define ECONNRESET 104 /* Connection reset by peer */ -#define ENOBUFS 105 /* No buffer space available */ -#define EAFNOSUPPORT 106 /* Address family not supported by protocol family */ -#define EPROTOTYPE 107 /* Protocol wrong type for socket */ -#define ENOTSOCK 108 /* Socket operation on non-socket */ -#define ENOPROTOOPT 109 /* Protocol not available */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ESHUTDOWN 110 /* Can't send after socket shutdown */ -#endif -#define ECONNREFUSED 111 /* Connection refused */ -#define EADDRINUSE 112 /* Address already in use */ -#define ECONNABORTED 113 /* Software caused connection abort */ -#define ENETUNREACH 114 /* Network is unreachable */ -#define ENETDOWN 115 /* Network interface is not configured */ -#define ETIMEDOUT 116 /* Connection timed out */ -#define EHOSTDOWN 117 /* Host is down */ -#define EHOSTUNREACH 118 /* Host is unreachable */ -#define EINPROGRESS 119 /* Connection already in progress */ -#define EALREADY 120 /* Socket already connected */ -#define EDESTADDRREQ 121 /* Destination address required */ -#define EMSGSIZE 122 /* Message too long */ -#define EPROTONOSUPPORT 123 /* Unknown protocol */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ESOCKTNOSUPPORT 124 /* Socket type not supported */ -#endif -#define EADDRNOTAVAIL 125 /* Address not available */ -#define ENETRESET 126 /* Connection aborted by network */ -#define EISCONN 127 /* Socket is already connected */ -#define ENOTCONN 128 /* Socket is not connected */ -#define ETOOMANYREFS 129 -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define EPROCLIM 130 -#define EUSERS 131 -#endif -#define EDQUOT 132 -#define ESTALE 133 -#define ENOTSUP 134 /* Not supported */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ENOMEDIUM 135 /* No medium (in tape drive) */ -#endif -#ifdef __CYGWIN__ -#define ENOSHARE 136 /* No such host or network path */ -#define ECASECLASH 137 /* Filename exists with different case */ -#endif -#define EILSEQ 138 /* Illegal byte sequence */ -#define EOVERFLOW 139 /* Value too large for defined data type */ -#define ECANCELED 140 /* Operation canceled */ -#define ENOTRECOVERABLE 141 /* State not recoverable */ -#define EOWNERDEAD 142 /* Previous owner died */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ESTRPIPE 143 /* Streams pipe error */ -#endif -#define EWOULDBLOCK EAGAIN /* Operation would block */ - -#define __ELASTERROR 2000 /* Users can add values starting here */ - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_ERRNO_H */ diff --git a/include/sys/fcntl.h b/include/sys/fcntl.h deleted file mode 100644 index be85f40..0000000 --- a/include/sys/fcntl.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef _SYS_FCNTL_H_ -#define _SYS_FCNTL_H_ -#include -#endif diff --git a/include/sys/features.h b/include/sys/features.h deleted file mode 100644 index 45476ce..0000000 --- a/include/sys/features.h +++ /dev/null @@ -1,538 +0,0 @@ -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2014. - * - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - * $Id$ - */ - -#ifndef _SYS_FEATURES_H -#define _SYS_FEATURES_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <_newlib_version.h> - -/* Macro to test version of GCC. Returns 0 for non-GCC or too old GCC. */ -#ifndef __GNUC_PREREQ -# if defined __GNUC__ && defined __GNUC_MINOR__ -# define __GNUC_PREREQ(maj, min) \ - ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) -# else -# define __GNUC_PREREQ(maj, min) 0 -# endif -#endif /* __GNUC_PREREQ */ -/* Version with trailing underscores for BSD compatibility. */ -#define __GNUC_PREREQ__(ma, mi) __GNUC_PREREQ(ma, mi) - - -/* - * Feature test macros control which symbols are exposed by the system - * headers. Any of these must be defined before including any headers. - * - * __STRICT_ANSI__ (defined by gcc -ansi, -std=c90, -std=c99, or -std=c11) - * ISO C - * - * _POSIX_SOURCE (deprecated by _POSIX_C_SOURCE=1) - * _POSIX_C_SOURCE >= 1 - * POSIX.1-1990 - * - * _POSIX_C_SOURCE >= 2 - * POSIX.2-1992 - * - * _POSIX_C_SOURCE >= 199309L - * POSIX.1b-1993 Real-time extensions - * - * _POSIX_C_SOURCE >= 199506L - * POSIX.1c-1995 Threads extensions - * - * _POSIX_C_SOURCE >= 200112L - * POSIX.1-2001 and C99 - * - * _POSIX_C_SOURCE >= 200809L - * POSIX.1-2008 - * - * _XOPEN_SOURCE - * POSIX.1-1990 and XPG4 - * - * _XOPEN_SOURCE_EXTENDED - * SUSv1 (POSIX.2-1992 plus XPG4v2) - * - * _XOPEN_SOURCE >= 500 - * SUSv2 (POSIX.1c-1995 plus XSI) - * - * _XOPEN_SOURCE >= 600 - * SUSv3 (POSIX.1-2001 plus XSI) and C99 - * - * _XOPEN_SOURCE >= 700 - * SUSv4 (POSIX.1-2008 plus XSI) - * - * _ISOC99_SOURCE or gcc -std=c99 or g++ - * ISO C99 - * - * _ISOC11_SOURCE or gcc -std=c11 or g++ -std=c++11 - * ISO C11 - * - * _ATFILE_SOURCE (implied by _POSIX_C_SOURCE >= 200809L) - * "at" functions - * - * _LARGEFILE_SOURCE (deprecated by _XOPEN_SOURCE >= 500) - * fseeko, ftello - * - * _GNU_SOURCE - * All of the above plus GNU extensions - * - * _BSD_SOURCE (deprecated by _DEFAULT_SOURCE) - * _SVID_SOURCE (deprecated by _DEFAULT_SOURCE) - * _DEFAULT_SOURCE (or none of the above) - * POSIX-1.2008 with BSD and SVr4 extensions - * - * _FORTIFY_SOURCE = 1 or 2 - * Object Size Checking function wrappers - */ - -#ifdef _GNU_SOURCE -#undef _ATFILE_SOURCE -#define _ATFILE_SOURCE 1 -#undef _DEFAULT_SOURCE -#define _DEFAULT_SOURCE 1 -#undef _ISOC99_SOURCE -#define _ISOC99_SOURCE 1 -#undef _ISOC11_SOURCE -#define _ISOC11_SOURCE 1 -#undef _POSIX_SOURCE -#define _POSIX_SOURCE 1 -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 200809L -#undef _XOPEN_SOURCE -#define _XOPEN_SOURCE 700 -#undef _XOPEN_SOURCE_EXTENDED -#define _XOPEN_SOURCE_EXTENDED 1 -#endif /* _GNU_SOURCE */ - -#if defined(_BSD_SOURCE) || defined(_SVID_SOURCE) || \ - (!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE) && \ - !defined(_ISOC99_SOURCE) && !defined(_POSIX_SOURCE) && \ - !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) -#undef _DEFAULT_SOURCE -#define _DEFAULT_SOURCE 1 -#endif - -#if defined(_DEFAULT_SOURCE) -#undef _POSIX_SOURCE -#define _POSIX_SOURCE 1 -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 200809L -#endif - -#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) && \ - ((!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE)) || \ - (_XOPEN_SOURCE - 0) >= 500) -#define _POSIX_SOURCE 1 -#if !defined(_XOPEN_SOURCE) || (_XOPEN_SOURCE - 0) >= 700 -#define _POSIX_C_SOURCE 200809L -#elif (_XOPEN_SOURCE - 0) >= 600 -#define _POSIX_C_SOURCE 200112L -#elif (_XOPEN_SOURCE - 0) >= 500 -#define _POSIX_C_SOURCE 199506L -#elif (_XOPEN_SOURCE - 0) < 500 -#define _POSIX_C_SOURCE 2 -#endif -#endif - -#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200809 -#undef _ATFILE_SOURCE -#define _ATFILE_SOURCE 1 -#endif - -/* - * The following private macros are used throughout the headers to control - * which symbols should be exposed. They are for internal use only, as - * indicated by the leading double underscore, and must never be used outside - * of these headers. - * - * __POSIX_VISIBLE - * any version of POSIX.1; enabled by default, or with _POSIX_SOURCE, - * any value of _POSIX_C_SOURCE, or _XOPEN_SOURCE >= 500. - * - * __POSIX_VISIBLE >= 2 - * POSIX.2-1992; enabled by default, with _POSIX_C_SOURCE >= 2, - * or _XOPEN_SOURCE >= 500. - * - * __POSIX_VISIBLE >= 199309 - * POSIX.1b-1993; enabled by default, with _POSIX_C_SOURCE >= 199309L, - * or _XOPEN_SOURCE >= 500. - * - * __POSIX_VISIBLE >= 199506 - * POSIX.1c-1995; enabled by default, with _POSIX_C_SOURCE >= 199506L, - * or _XOPEN_SOURCE >= 500. - * - * __POSIX_VISIBLE >= 200112 - * POSIX.1-2001; enabled by default, with _POSIX_C_SOURCE >= 200112L, - * or _XOPEN_SOURCE >= 600. - * - * __POSIX_VISIBLE >= 200809 - * POSIX.1-2008; enabled by default, with _POSIX_C_SOURCE >= 200809L, - * or _XOPEN_SOURCE >= 700. - * - * __XSI_VISIBLE - * XPG4 XSI extensions; enabled with any version of _XOPEN_SOURCE. - * - * __XSI_VISIBLE >= 4 - * SUSv1 XSI extensions; enabled with both _XOPEN_SOURCE and - * _XOPEN_SOURCE_EXTENDED together. - * - * __XSI_VISIBLE >= 500 - * SUSv2 XSI extensions; enabled with _XOPEN_SOURCE >= 500. - * - * __XSI_VISIBLE >= 600 - * SUSv3 XSI extensions; enabled with _XOPEN_SOURCE >= 600. - * - * __XSI_VISIBLE >= 700 - * SUSv4 XSI extensions; enabled with _XOPEN_SOURCE >= 700. - * - * __ISO_C_VISIBLE >= 1999 - * ISO C99; enabled with gcc -std=c99 or newer (on by default since GCC 5), - * any version of C++, or with _ISOC99_SOURCE, _POSIX_C_SOURCE >= 200112L, - * or _XOPEN_SOURCE >= 600. - * - * __ISO_C_VISIBLE >= 2011 - * ISO C11; enabled with gcc -std=c11 or newer (on by default since GCC 5), - * g++ -std=c++11 or newer (on by default since GCC 6), or with - * _ISOC11_SOURCE. - * - * __ATFILE_VISIBLE - * "at" functions; enabled by default, with _ATFILE_SOURCE, - * _POSIX_C_SOURCE >= 200809L, or _XOPEN_SOURCE >= 700. - * - * __LARGEFILE_VISIBLE - * fseeko, ftello; enabled with _LARGEFILE_SOURCE or _XOPEN_SOURCE >= 500. - * - * __BSD_VISIBLE - * BSD extensions; enabled by default, or with _BSD_SOURCE. - * - * __SVID_VISIBLE - * SVr4 extensions; enabled by default, or with _SVID_SOURCE. - * - * __MISC_VISIBLE - * Extensions found in both BSD and SVr4 (shorthand for - * (__BSD_VISIBLE || __SVID_VISIBLE)), or newlib-specific - * extensions; enabled by default. - * - * __GNU_VISIBLE - * GNU extensions; enabled with _GNU_SOURCE. - * - * __SSP_FORTIFY_LEVEL - * Object Size Checking; defined to 0 (off), 1, or 2. - * - * In all cases above, "enabled by default" means either by defining - * _DEFAULT_SOURCE, or by not defining any of the public feature test macros. - */ - -#ifdef _ATFILE_SOURCE -#define __ATFILE_VISIBLE 1 -#else -#define __ATFILE_VISIBLE 0 -#endif - -#ifdef _DEFAULT_SOURCE -#define __BSD_VISIBLE 1 -#else -#define __BSD_VISIBLE 0 -#endif - -#ifdef _GNU_SOURCE -#define __GNU_VISIBLE 1 -#else -#define __GNU_VISIBLE 0 -#endif - -#if defined(_ISOC11_SOURCE) || \ - (__STDC_VERSION__ - 0) >= 201112L || (__cplusplus - 0) >= 201103L -#define __ISO_C_VISIBLE 2011 -#elif defined(_ISOC99_SOURCE) || (_POSIX_C_SOURCE - 0) >= 200112L || \ - (__STDC_VERSION__ - 0) >= 199901L || defined(__cplusplus) -#define __ISO_C_VISIBLE 1999 -#else -#define __ISO_C_VISIBLE 1990 -#endif - -#if defined(_LARGEFILE_SOURCE) || (_XOPEN_SOURCE - 0) >= 500 -#define __LARGEFILE_VISIBLE 1 -#else -#define __LARGEFILE_VISIBLE 0 -#endif - -#ifdef _DEFAULT_SOURCE -#define __MISC_VISIBLE 1 -#else -#define __MISC_VISIBLE 0 -#endif - -#if (_POSIX_C_SOURCE - 0) >= 200809L -#define __POSIX_VISIBLE 200809 -#elif (_POSIX_C_SOURCE - 0) >= 200112L -#define __POSIX_VISIBLE 200112 -#elif (_POSIX_C_SOURCE - 0) >= 199506L -#define __POSIX_VISIBLE 199506 -#elif (_POSIX_C_SOURCE - 0) >= 199309L -#define __POSIX_VISIBLE 199309 -#elif (_POSIX_C_SOURCE - 0) >= 2 || defined(_XOPEN_SOURCE) -#define __POSIX_VISIBLE 199209 -#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) -#define __POSIX_VISIBLE 199009 -#else -#define __POSIX_VISIBLE 0 -#endif - -#ifdef _DEFAULT_SOURCE -#define __SVID_VISIBLE 1 -#else -#define __SVID_VISIBLE 0 -#endif - -#if (_XOPEN_SOURCE - 0) >= 700 -#define __XSI_VISIBLE 700 -#elif (_XOPEN_SOURCE - 0) >= 600 -#define __XSI_VISIBLE 600 -#elif (_XOPEN_SOURCE - 0) >= 500 -#define __XSI_VISIBLE 500 -#elif defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED) -#define __XSI_VISIBLE 4 -#elif defined(_XOPEN_SOURCE) -#define __XSI_VISIBLE 1 -#else -#define __XSI_VISIBLE 0 -#endif - -#if _FORTIFY_SOURCE > 0 && !defined(__cplusplus) && !defined(__lint__) && \ - (__OPTIMIZE__ > 0 || defined(__clang__)) && __GNUC_PREREQ__(4, 1) && \ - !defined(_LIBC) -# if _FORTIFY_SOURCE > 1 -# define __SSP_FORTIFY_LEVEL 2 -# else -# define __SSP_FORTIFY_LEVEL 1 -# endif -#else -# define __SSP_FORTIFY_LEVEL 0 -#endif - -/* RTEMS adheres to POSIX -- 1003.1b with some features from annexes. */ - -#ifdef __rtems__ -#define _POSIX_JOB_CONTROL 1 -#define _POSIX_SAVED_IDS 1 -#define _POSIX_VERSION 199309L -#define _POSIX_ASYNCHRONOUS_IO 1 -#define _POSIX_FSYNC 1 -#define _POSIX_MAPPED_FILES 1 -#define _POSIX_MEMLOCK 1 -#define _POSIX_MEMLOCK_RANGE 1 -#define _POSIX_MEMORY_PROTECTION 1 -#define _POSIX_MESSAGE_PASSING 1 -#define _POSIX_MONOTONIC_CLOCK 200112L -#define _POSIX_CLOCK_SELECTION 200112L -#define _POSIX_PRIORITIZED_IO 1 -#define _POSIX_PRIORITY_SCHEDULING 1 -#define _POSIX_REALTIME_SIGNALS 1 -#define _POSIX_SEMAPHORES 1 -#define _POSIX_SHARED_MEMORY_OBJECTS 1 -#define _POSIX_SYNCHRONIZED_IO 1 -#define _POSIX_TIMERS 1 -#define _POSIX_BARRIERS 200112L -#define _POSIX_READER_WRITER_LOCKS 200112L -#define _POSIX_SPIN_LOCKS 200112L - - -/* In P1003.1b but defined by drafts at least as early as P1003.1c/D10 */ -#define _POSIX_THREADS 1 -#define _POSIX_THREAD_ATTR_STACKADDR 1 -#define _POSIX_THREAD_ATTR_STACKSIZE 1 -#define _POSIX_THREAD_PRIORITY_SCHEDULING 1 -#define _POSIX_THREAD_PRIO_INHERIT 1 -#define _POSIX_THREAD_PRIO_PROTECT 1 -#define _POSIX_THREAD_PROCESS_SHARED 1 -#define _POSIX_THREAD_SAFE_FUNCTIONS 1 - -/* P1003.4b/D8 defines the constants below this comment. */ -#define _POSIX_SPAWN 1 -#define _POSIX_TIMEOUTS 1 -#define _POSIX_CPUTIME 1 -#define _POSIX_THREAD_CPUTIME 1 -#define _POSIX_SPORADIC_SERVER 1 -#define _POSIX_THREAD_SPORADIC_SERVER 1 -#define _POSIX_DEVICE_CONTROL 1 -#define _POSIX_DEVCTL_DIRECTION 1 -#define _POSIX_INTERRUPT_CONTROL 1 -#define _POSIX_ADVISORY_INFO 1 - -/* UNIX98 added some new pthread mutex attributes */ -#define _UNIX98_THREAD_MUTEX_ATTRIBUTES 1 - -/* POSIX 1003.26-2003 defined device control method */ -#define _POSIX_26_VERSION 200312L - -#endif - -/* XMK loosely adheres to POSIX -- 1003.1 */ -#ifdef __XMK__ -#define _POSIX_THREADS 1 -#define _POSIX_THREAD_PRIORITY_SCHEDULING 1 -#endif - - -#ifdef __svr4__ -# define _POSIX_JOB_CONTROL 1 -# define _POSIX_SAVED_IDS 1 -# define _POSIX_VERSION 199009L -#endif - -#ifdef __CYGWIN__ - -#if __POSIX_VISIBLE >= 200809 -#define _POSIX_VERSION 200809L -#define _POSIX2_VERSION 200809L -#elif __POSIX_VISIBLE >= 200112 -#define _POSIX_VERSION 200112L -#define _POSIX2_VERSION 200112L -#elif __POSIX_VISIBLE >= 199506 -#define _POSIX_VERSION 199506L -#define _POSIX2_VERSION 199506L -#elif __POSIX_VISIBLE >= 199309 -#define _POSIX_VERSION 199309L -#define _POSIX2_VERSION 199209L -#elif __POSIX_VISIBLE >= 199209 -#define _POSIX_VERSION 199009L -#define _POSIX2_VERSION 199209L -#elif __POSIX_VISIBLE -#define _POSIX_VERSION 199009L -#endif -#if __XSI_VISIBLE >= 4 -#define _XOPEN_VERSION __XSI_VISIBLE -#endif - -#define _POSIX_ADVISORY_INFO 200809L -#define _POSIX_ASYNCHRONOUS_IO 200809L -#define _POSIX_BARRIERS 200809L -#define _POSIX_CHOWN_RESTRICTED 1 -#define _POSIX_CLOCK_SELECTION 200809L -#define _POSIX_CPUTIME 200809L -#define _POSIX_FSYNC 200809L -#define _POSIX_IPV6 200809L -#define _POSIX_JOB_CONTROL 1 -#define _POSIX_MAPPED_FILES 200809L -/* #define _POSIX_MEMLOCK -1 */ -#define _POSIX_MEMLOCK_RANGE 200809L -#define _POSIX_MEMORY_PROTECTION 200809L -#define _POSIX_MESSAGE_PASSING 200809L -#define _POSIX_MONOTONIC_CLOCK 200809L -#define _POSIX_NO_TRUNC 1 -/* #define _POSIX_PRIORITIZED_IO -1 */ -#define _POSIX_PRIORITY_SCHEDULING 200809L -#define _POSIX_RAW_SOCKETS 200809L -#define _POSIX_READER_WRITER_LOCKS 200809L -#define _POSIX_REALTIME_SIGNALS 200809L -#define _POSIX_REGEXP 1 -#define _POSIX_SAVED_IDS 1 -#define _POSIX_SEMAPHORES 200809L -#define _POSIX_SHARED_MEMORY_OBJECTS 200809L -#define _POSIX_SHELL 1 -#define _POSIX_SPAWN 200809L -#define _POSIX_SPIN_LOCKS 200809L -/* #define _POSIX_SPORADIC_SERVER -1 */ -#define _POSIX_SYNCHRONIZED_IO 200809L -#define _POSIX_THREAD_ATTR_STACKADDR 200809L -#define _POSIX_THREAD_ATTR_STACKSIZE 200809L -#define _POSIX_THREAD_CPUTIME 200809L -/* #define _POSIX_THREAD_PRIO_INHERIT -1 */ -/* #define _POSIX_THREAD_PRIO_PROTECT -1 */ -#define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L -#define _POSIX_THREAD_PROCESS_SHARED 200809L -#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L -/* #define _POSIX_THREAD_SPORADIC_SERVER -1 */ -#define _POSIX_THREADS 200809L -#define _POSIX_TIMEOUTS 200809L -#define _POSIX_TIMERS 200809L -/* #define _POSIX_TRACE -1 */ -/* #define _POSIX_TRACE_EVENT_FILTER -1 */ -/* #define _POSIX_TRACE_INHERIT -1 */ -/* #define _POSIX_TRACE_LOG -1 */ -/* #define _POSIX_TYPED_MEMORY_OBJECTS -1 */ -#define _POSIX_VDISABLE '\0' - -#if __POSIX_VISIBLE >= 2 -#define _POSIX2_C_VERSION _POSIX2_VERSION -#define _POSIX2_C_BIND _POSIX2_VERSION -#define _POSIX2_C_DEV _POSIX2_VERSION -#define _POSIX2_CHAR_TERM _POSIX2_VERSION -/* #define _POSIX2_FORT_DEV -1 */ -/* #define _POSIX2_FORT_RUN -1 */ -/* #define _POSIX2_LOCALEDEF -1 */ -/* #define _POSIX2_PBS -1 */ -/* #define _POSIX2_PBS_ACCOUNTING -1 */ -/* #define _POSIX2_PBS_CHECKPOINT -1 */ -/* #define _POSIX2_PBS_LOCATE -1 */ -/* #define _POSIX2_PBS_MESSAGE -1 */ -/* #define _POSIX2_PBS_TRACK -1 */ -#define _POSIX2_SW_DEV _POSIX2_VERSION -#define _POSIX2_UPE _POSIX2_VERSION -#endif /* __POSIX_VISIBLE >= 2 */ - -#define _POSIX_V6_ILP32_OFF32 -1 -#ifdef __LP64__ -#define _POSIX_V6_ILP32_OFFBIG -1 -#define _POSIX_V6_LP64_OFF64 1 -#define _POSIX_V6_LPBIG_OFFBIG 1 -#else -#define _POSIX_V6_ILP32_OFFBIG 1 -#define _POSIX_V6_LP64_OFF64 -1 -#define _POSIX_V6_LPBIG_OFFBIG -1 -#endif -#define _POSIX_V7_ILP32_OFF32 _POSIX_V6_ILP32_OFF32 -#define _POSIX_V7_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG -#define _POSIX_V7_LP64_OFF64 _POSIX_V6_LP64_OFF64 -#define _POSIX_V7_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG -#define _XBS5_ILP32_OFF32 _POSIX_V6_ILP32_OFF32 -#define _XBS5_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG -#define _XBS5_LP64_OFF64 _POSIX_V6_LP64_OFF64 -#define _XBS5_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG - -#if __XSI_VISIBLE -#define _XOPEN_CRYPT 1 -#define _XOPEN_ENH_I18N 1 -/* #define _XOPEN_LEGACY -1 */ -/* #define _XOPEN_REALTIME -1 */ -/* #define _XOPEN_REALTIME_THREADS -1 */ -#define _XOPEN_SHM 1 -/* #define _XOPEN_STREAMS -1 */ -/* #define _XOPEN_UNIX -1 */ -#endif /* __XSI_VISIBLE */ - -/* - * newlib's wide char conversion functions were updated on - * 2019-01-12 - * to UNICODE version: - * 11.0.0 released 2018-06-05 - */ -#define __STDC_ISO_10646__ 201806L - -#endif /* __CYGWIN__ */ - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_FEATURES_H */ diff --git a/include/sys/fenv.h b/include/sys/fenv.h deleted file mode 100644 index e0983fa..0000000 --- a/include/sys/fenv.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - (c) Copyright 2019 Joel Sherrill - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _SYS_FENV_H_ -#define _SYS_FENV_H_ - -/******************************************************************************* - * THIS FILE IS A TEMPLATE, INTENDED TO BE USED AS A STARTING POINT FOR - * TARGET-SPECIFIC FLOATING-POINT IMPLEMENTATIONS. NOTES BELOW HIGHLIGHT THE - * BASICS OF WHAT NEEDS TO BE DEFINED. THE DEFAULT IMPLEMTATION IS - * DEGENERATE, WITH ALL FUNCTIONS RETURNING ERROR AND NO EXCEPTIONS AND NO - * ROUNDING MODES DEFINED (SINCE NONE ARE SUPPORTED). - * THE MACRO VALUES ARE EXAMPLES ONLY, ALTHOUGH TAKEN FROM A WORKING - * IMPLEMENTATION. - * REMOVE THIS NOTICE WHEN COPYING TO A REAL IMPLEMENTATION, REPLACING IT WITH - * ANY TARGET-SPECIFIC NOTES OF INTEREST. THE FENV FUNCTION MAN PAGES POINT TO - * THIS FILE AS A MEANS OF DETERMINING A FUNCTIONAL VS. NON-FUNCTIONAL - * IMPLEMENTATION. - ******************************************************************************/ -/* - * The following macros are to be defined if the respective exception is - * supported by the implementation, each with a unique bit mask: - * - * FE_DIVBYZERO - * FE_INEXACT - * FE_INVALID - * FE_OVERFLOW - * FE_UNDERFLOW - * - * Other implementation-specific exceptions may be defined, and must start - * with FE_ followed by a capital letter. - * - * FE_ALL_EXCEPT must be defined as the logical OR of all exceptions. - */ -//#define FE_DIVBYZERO 0x00000001 -//#define FE_INEXACT 0x00000002 -//#define FE_INVALID 0x00000004 -//#define FE_OVERFLOW 0x00000008 -//#define FE_UNDERFLOW 0x00000010 - -//#define FE_ALL_EXCEPT \ - //(FE_DIVBYZERO|FE_INEXACT|FE_INVALID|FE_OVERFLOW|FE_UNDERFLOW) -#define FE_ALL_EXCEPT 0 /* NONE SUPPORTED IN PLACEHOLDER TEMPLATE */ - -/* - * The following macros are to be defined if the respective rounding - * direction is supported by the implementation via the fegetround() and - * fesetround() functions, each with a unique positive value. - * - * FE_DOWNWARD - * FE_TONEAREST - * FE_TOWARDZERO - * FE_UPWARD - * - * Other implementation-specific rounding modes may be defined, and must start - * with FE_ followed by a capital letter. - */ -//#define FE_DOWNWARD 1 -//#define FE_TONEAREST 2 -//#define FE_TOWARDZERO 3 -//#define FE_UPWARD 4 - -/* - * The following typedefs are required. These should be defined properly - * to support the architecture specific implementation. See the C and - * POSIX standards for details: - * - * fenv_t - * fexcept_t - */ -typedef int fenv_t; -typedef int fexcept_t; - -/* - * Lastly, a FE_DFL_ENV macro must be defined, representing a pointer - * to const fenv_t that contains the value of the default floating point - * environment. - * - * NOTE: The extern'ed variable fe_default_env_p is an implementation - * detail of this stub. FE_DFL_ENV must point to an instance of - * fenv_t with the default fenv_t. The format of fenv_t and where - * FE_DFL_ENV is are implementation specific. - */ -extern const fenv_t *_fe_dfl_env; -#define FE_DFL_ENV _fe_dfl_env - -#endif /* _SYS_FENV_H_ */ diff --git a/include/sys/file.h b/include/sys/file.h deleted file mode 100644 index 58d4fac..0000000 --- a/include/sys/file.h +++ /dev/null @@ -1,2 +0,0 @@ - -#include diff --git a/include/sys/iconvnls.h b/include/sys/iconvnls.h deleted file mode 100644 index d4ee0b7..0000000 --- a/include/sys/iconvnls.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy. - * Rights transferred to Franklin Electronic Publishers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * Funtions, macros, etc implimented in iconv library but used by other - * NLS-related subsystems too. - */ -#ifndef __SYS_ICONVNLS_H__ -#define __SYS_ICONVNLS_H__ - -#include <_ansi.h> -#include -#include -#include - -/* Iconv data path environment variable name */ -#define NLS_ENVVAR_NAME "NLSPATH" -/* Default NLSPATH value */ -#define ICONV_DEFAULT_NLSPATH "/usr/locale" -/* Direction markers */ -#define ICONV_NLS_FROM 0 -#define ICONV_NLS_TO 1 - -void -_iconv_nls_get_state (iconv_t cd, mbstate_t *ps, int direction); - -int -_iconv_nls_set_state (iconv_t cd, mbstate_t *ps, int direction); - -int -_iconv_nls_is_stateful (iconv_t cd, int direction); - -int -_iconv_nls_get_mb_cur_max (iconv_t cd, int direction); - -size_t -_iconv_nls_conv (struct _reent *rptr, iconv_t cd, - const char **inbuf, size_t *inbytesleft, - char **outbuf, size_t *outbytesleft); - -const char * -_iconv_nls_construct_filename (struct _reent *rptr, const char *file, - const char *dir, const char *ext); - - -int -_iconv_nls_open (struct _reent *rptr, const char *encoding, - iconv_t *towc, iconv_t *fromwc, int flag); - -char * -_iconv_resolve_encoding_name (struct _reent *rptr, const char *ca); - -#endif /* __SYS_ICONVNLS_H__ */ - diff --git a/include/sys/lock.h b/include/sys/lock.h deleted file mode 100644 index 5289049..0000000 --- a/include/sys/lock.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef __SYS_LOCK_H__ -#define __SYS_LOCK_H__ - -/* dummy lock routines for single-threaded aps */ - -#include -#include <_ansi.h> - -#if !defined(_RETARGETABLE_LOCKING) - -typedef int _LOCK_T; -typedef int _LOCK_RECURSIVE_T; - -#define __LOCK_INIT(class,lock) static int lock = 0; -#define __LOCK_INIT_RECURSIVE(class,lock) static int lock = 0; -#define __lock_init(lock) ((void) 0) -#define __lock_init_recursive(lock) ((void) 0) -#define __lock_close(lock) ((void) 0) -#define __lock_close_recursive(lock) ((void) 0) -#define __lock_acquire(lock) ((void) 0) -#define __lock_acquire_recursive(lock) ((void) 0) -#define __lock_try_acquire(lock) ((void) 0) -#define __lock_try_acquire_recursive(lock) ((void) 0) -#define __lock_release(lock) ((void) 0) -#define __lock_release_recursive(lock) ((void) 0) - -#else - -#ifdef __cplusplus -extern "C" { -#endif - -struct __lock; -typedef struct __lock * _LOCK_T; -#define _LOCK_RECURSIVE_T _LOCK_T - -#define __LOCK_INIT(class,lock) extern struct __lock __lock_ ## lock; \ - class _LOCK_T lock = &__lock_ ## lock -#define __LOCK_INIT_RECURSIVE(class,lock) __LOCK_INIT(class,lock) - -extern void __retarget_lock_init(_LOCK_T *lock); -#define __lock_init(lock) __retarget_lock_init(&lock) -extern void __retarget_lock_init_recursive(_LOCK_T *lock); -#define __lock_init_recursive(lock) __retarget_lock_init_recursive(&lock) -extern void __retarget_lock_close(_LOCK_T lock); -#define __lock_close(lock) __retarget_lock_close(lock) -extern void __retarget_lock_close_recursive(_LOCK_T lock); -#define __lock_close_recursive(lock) __retarget_lock_close_recursive(lock) -extern void __retarget_lock_acquire(_LOCK_T lock); -#define __lock_acquire(lock) __retarget_lock_acquire(lock) -extern void __retarget_lock_acquire_recursive(_LOCK_T lock); -#define __lock_acquire_recursive(lock) __retarget_lock_acquire_recursive(lock) -extern int __retarget_lock_try_acquire(_LOCK_T lock); -#define __lock_try_acquire(lock) __retarget_lock_try_acquire(lock) -extern int __retarget_lock_try_acquire_recursive(_LOCK_T lock); -#define __lock_try_acquire_recursive(lock) \ - __retarget_lock_try_acquire_recursive(lock) -extern void __retarget_lock_release(_LOCK_T lock); -#define __lock_release(lock) __retarget_lock_release(lock) -extern void __retarget_lock_release_recursive(_LOCK_T lock); -#define __lock_release_recursive(lock) __retarget_lock_release_recursive(lock) - -#ifdef __cplusplus -} -#endif - -#endif /* !defined(_RETARGETABLE_LOCKING) */ - -#endif /* __SYS_LOCK_H__ */ diff --git a/include/sys/mman.h b/include/sys/mman.h deleted file mode 100644 index c36687f..0000000 --- a/include/sys/mman.h +++ /dev/null @@ -1,166 +0,0 @@ -/* $OpenBSD: mman.h,v 1.35 2022/10/07 14:59:39 deraadt Exp $ */ -/* $NetBSD: mman.h,v 1.11 1995/03/26 20:24:23 jtc Exp $ */ - -/*- - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)mman.h 8.1 (Berkeley) 6/2/93 - */ - -#ifndef _KERNEL -#include -#endif - -/* - * Protections are chosen from these bits, or-ed together - */ -#define PROT_NONE 0x00 /* no permissions */ -#define PROT_READ 0x01 /* pages can be read */ -#define PROT_WRITE 0x02 /* pages can be written */ -#define PROT_EXEC 0x04 /* pages can be executed */ - -/* - * Flags contain sharing type and options. - * Sharing types; choose one. - */ -#define MAP_SHARED 0x0001 /* share changes */ -#define MAP_PRIVATE 0x0002 /* changes are private */ - -/* - * Other flags - */ -#define MAP_FIXED 0x0010 /* map addr must be exactly as requested */ -#define __MAP_NOREPLACE 0x0800 /* fail if address not available */ -#define MAP_ANON 0x1000 /* allocated from memory, swap space */ -#define MAP_ANONYMOUS MAP_ANON /* alternate POSIX spelling */ -#define __MAP_NOFAULT 0x2000 -#define MAP_STACK 0x4000 /* mapping is used for a stack */ -#define MAP_CONCEAL 0x8000 /* omit from dumps */ - -#define MAP_FLAGMASK 0xfff7 - -#ifndef _KERNEL -/* - * Legacy defines for userland source compatibility. - * Can be removed once no longer needed in base and ports. - */ -#define MAP_COPY MAP_PRIVATE /* "copy" region at mmap time */ -#define MAP_FILE 0 /* map from file (default) */ -#define MAP_HASSEMAPHORE 0 /* region may contain semaphores */ -#define MAP_INHERIT 0 /* region is retained after exec */ -#define MAP_NOEXTEND 0 /* for MAP_FILE, don't change file size */ -#define MAP_NORESERVE 0 /* Sun: don't reserve needed swap area */ -#define MAP_RENAME 0 /* Sun: rename private pages to file */ -#define MAP_TRYFIXED 0 /* attempt hint address, even within heap */ -#endif - -/* - * Error return from mmap() - */ -#define MAP_FAILED ((void *)-1) - -/* - * POSIX memory advisory values. - * Note: keep consistent with the original definitions below. - */ -#define POSIX_MADV_NORMAL 0 /* no further special treatment */ -#define POSIX_MADV_RANDOM 1 /* expect random page references */ -#define POSIX_MADV_SEQUENTIAL 2 /* expect sequential page references */ -#define POSIX_MADV_WILLNEED 3 /* will need these pages */ -#define POSIX_MADV_DONTNEED 4 /* don't need these pages */ - -#if __BSD_VISIBLE -/* - * Original advice values, equivalent to POSIX definitions, - * and few implementation-specific ones. For in-kernel and historic use. - */ -#define MADV_NORMAL POSIX_MADV_NORMAL -#define MADV_RANDOM POSIX_MADV_RANDOM -#define MADV_SEQUENTIAL POSIX_MADV_SEQUENTIAL -#define MADV_WILLNEED POSIX_MADV_WILLNEED -#define MADV_DONTNEED POSIX_MADV_DONTNEED -#define MADV_SPACEAVAIL 5 /* insure that resources are reserved */ -#define MADV_FREE 6 /* pages are empty, free them */ -#endif - -/* - * Flags to minherit - */ -#define MAP_INHERIT_SHARE 0 /* share with child */ -#define MAP_INHERIT_COPY 1 /* copy into child */ -#define MAP_INHERIT_NONE 2 /* absent from child */ -#define MAP_INHERIT_ZERO 3 /* zero in child */ - -/* - * Flags to msync - */ -#define MS_ASYNC 0x01 /* perform asynchronous writes */ -#define MS_SYNC 0x02 /* perform synchronous writes */ -#define MS_INVALIDATE 0x04 /* invalidate cached data */ - -/* - * Flags to mlockall - */ -#define MCL_CURRENT 0x01 /* lock all pages currently mapped */ -#define MCL_FUTURE 0x02 /* lock all pages mapped in the future */ - -#ifndef _KERNEL -#include - -#ifndef _SIZE_T_DEFINED_ -#define _SIZE_T_DEFINED_ -typedef __size_t size_t; -#endif - -#ifndef _OFF_T_DEFINED_ -#define _OFF_T_DEFINED_ -typedef __off_t off_t; -#endif - -__BEGIN_DECLS -void * mmap(void *, size_t, int, int, int, off_t); -int mprotect(void *, size_t, int); -int munmap(void *, size_t); -int msync(void *, size_t, int); -int mlock(const void *, size_t); -int munlock(const void *, size_t); -int mlockall(int); -int munlockall(void); -#if __BSD_VISIBLE -int madvise(void *, size_t, int); -int minherit(void *, size_t, int); -int mimmutable(void *, size_t); -void * mquery(void *, size_t, int, int, int, off_t); -#endif -int posix_madvise(void *, size_t, int); -int shm_open(const char *, int, __mode_t); -int shm_unlink(const char *); -int shm_mkstemp(char *); -__END_DECLS - -#endif /* !_KERNEL */ diff --git a/include/sys/param.h b/include/sys/param.h deleted file mode 100644 index 9a6f115..0000000 --- a/include/sys/param.h +++ /dev/null @@ -1,35 +0,0 @@ -/* This is a dummy file, not customized for any - particular system. If there is a param.h in libc/sys/SYSDIR/sys, - it will override this one. */ - -#ifndef _SYS_PARAM_H -# define _SYS_PARAM_H - -#include -#include -#include -#include - -#ifndef NBBY -# define NBBY 8 /* number of bits in a byte */ -#endif -#ifndef HZ -# define HZ (60) -#endif -#ifndef NOFILE -# define NOFILE (60) -#endif -#ifndef PATHSIZE -# define PATHSIZE (1024) -#endif - -#define MAXPATHLEN PATH_MAX - -#define MAX(a,b) ((a) > (b) ? (a) : (b)) -#define MIN(a,b) ((a) < (b) ? (a) : (b)) - -#ifndef howmany -#define howmany(x, y) (((x)+((y)-1))/(y)) -#endif - -#endif diff --git a/include/sys/queue.h b/include/sys/queue.h deleted file mode 100644 index 6392b62..0000000 --- a/include/sys/queue.h +++ /dev/null @@ -1,919 +0,0 @@ -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)queue.h 8.5 (Berkeley) 8/20/94 - * $FreeBSD$ - */ - -#ifndef _SYS_QUEUE_H_ -#define _SYS_QUEUE_H_ - -#include - -/* - * This file defines four types of data structures: singly-linked lists, - * singly-linked tail queues, lists and tail queues. - * - * A singly-linked list is headed by a single forward pointer. The elements - * are singly linked for minimum space and pointer manipulation overhead at - * the expense of O(n) removal for arbitrary elements. New elements can be - * added to the list after an existing element or at the head of the list. - * Elements being removed from the head of the list should use the explicit - * macro for this purpose for optimum efficiency. A singly-linked list may - * only be traversed in the forward direction. Singly-linked lists are ideal - * for applications with large datasets and few or no removals or for - * implementing a LIFO queue. - * - * A singly-linked tail queue is headed by a pair of pointers, one to the - * head of the list and the other to the tail of the list. The elements are - * singly linked for minimum space and pointer manipulation overhead at the - * expense of O(n) removal for arbitrary elements. New elements can be added - * to the list after an existing element, at the head of the list, or at the - * end of the list. Elements being removed from the head of the tail queue - * should use the explicit macro for this purpose for optimum efficiency. - * A singly-linked tail queue may only be traversed in the forward direction. - * Singly-linked tail queues are ideal for applications with large datasets - * and few or no removals or for implementing a FIFO queue. - * - * A list is headed by a single forward pointer (or an array of forward - * pointers for a hash table header). The elements are doubly linked - * so that an arbitrary element can be removed without a need to - * traverse the list. New elements can be added to the list before - * or after an existing element or at the head of the list. A list - * may be traversed in either direction. - * - * A tail queue is headed by a pair of pointers, one to the head of the - * list and the other to the tail of the list. The elements are doubly - * linked so that an arbitrary element can be removed without a need to - * traverse the list. New elements can be added to the list before or - * after an existing element, at the head of the list, or at the end of - * the list. A tail queue may be traversed in either direction. - * - * For details on the use of these macros, see the queue(3) manual page. - * - * Below is a summary of implemented functions where: - * + means the macro is available - * - means the macro is not available - * s means the macro is available but is slow (runs in O(n) time) - * - * SLIST LIST STAILQ TAILQ - * _HEAD + + + + - * _CLASS_HEAD + + + + - * _HEAD_INITIALIZER + + + + - * _ENTRY + + + + - * _CLASS_ENTRY + + + + - * _INIT + + + + - * _EMPTY + + + + - * _FIRST + + + + - * _NEXT + + + + - * _PREV - + - + - * _LAST - - + + - * _LAST_FAST - - - + - * _FOREACH + + + + - * _FOREACH_FROM + + + + - * _FOREACH_SAFE + + + + - * _FOREACH_FROM_SAFE + + + + - * _FOREACH_REVERSE - - - + - * _FOREACH_REVERSE_FROM - - - + - * _FOREACH_REVERSE_SAFE - - - + - * _FOREACH_REVERSE_FROM_SAFE - - - + - * _INSERT_HEAD + + + + - * _INSERT_BEFORE - + - + - * _INSERT_AFTER + + + + - * _INSERT_TAIL - - + + - * _CONCAT s s + + - * _REMOVE_AFTER + - + - - * _REMOVE_HEAD + - + - - * _REMOVE s + s + - * _SWAP + + + + - * - */ -#ifdef QUEUE_MACRO_DEBUG -#warn Use QUEUE_MACRO_DEBUG_TRACE and/or QUEUE_MACRO_DEBUG_TRASH -#define QUEUE_MACRO_DEBUG_TRACE -#define QUEUE_MACRO_DEBUG_TRASH -#endif - -#ifdef QUEUE_MACRO_DEBUG_TRACE -/* Store the last 2 places the queue element or head was altered */ -struct qm_trace { - unsigned long lastline; - unsigned long prevline; - const char *lastfile; - const char *prevfile; -}; - -#define TRACEBUF struct qm_trace trace; -#define TRACEBUF_INITIALIZER { __LINE__, 0, __FILE__, NULL } , - -#define QMD_TRACE_HEAD(head) do { \ - (head)->trace.prevline = (head)->trace.lastline; \ - (head)->trace.prevfile = (head)->trace.lastfile; \ - (head)->trace.lastline = __LINE__; \ - (head)->trace.lastfile = __FILE__; \ -} while (0) - -#define QMD_TRACE_ELEM(elem) do { \ - (elem)->trace.prevline = (elem)->trace.lastline; \ - (elem)->trace.prevfile = (elem)->trace.lastfile; \ - (elem)->trace.lastline = __LINE__; \ - (elem)->trace.lastfile = __FILE__; \ -} while (0) - -#else /* !QUEUE_MACRO_DEBUG_TRACE */ -#define QMD_TRACE_ELEM(elem) -#define QMD_TRACE_HEAD(head) -#define TRACEBUF -#define TRACEBUF_INITIALIZER -#endif /* QUEUE_MACRO_DEBUG_TRACE */ - -#ifdef QUEUE_MACRO_DEBUG_TRASH -#define TRASHIT(x) do {(x) = (void *)-1;} while (0) -#define QMD_IS_TRASHED(x) ((x) == (void *)(intptr_t)-1) -#else /* !QUEUE_MACRO_DEBUG_TRASH */ -#define TRASHIT(x) -#define QMD_IS_TRASHED(x) 0 -#endif /* QUEUE_MACRO_DEBUG_TRASH */ - -#if defined(QUEUE_MACRO_DEBUG_TRACE) || defined(QUEUE_MACRO_DEBUG_TRASH) -#define QMD_SAVELINK(name, link) void **name = (void *)&(link) -#else /* !QUEUE_MACRO_DEBUG_TRACE && !QUEUE_MACRO_DEBUG_TRASH */ -#define QMD_SAVELINK(name, link) -#endif /* QUEUE_MACRO_DEBUG_TRACE || QUEUE_MACRO_DEBUG_TRASH */ - -#ifdef __cplusplus -/* - * In C++ there can be structure lists and class lists: - */ -#define QUEUE_TYPEOF(type) type -#else -#define QUEUE_TYPEOF(type) struct type -#endif - -/* - * Singly-linked List declarations. - */ -#define SLIST_HEAD(name, type) \ -struct name { \ - struct type *slh_first; /* first element */ \ -} - -#define SLIST_CLASS_HEAD(name, type) \ -struct name { \ - class type *slh_first; /* first element */ \ -} - -#define SLIST_HEAD_INITIALIZER(head) \ - { NULL } - -#define SLIST_ENTRY(type) \ -struct { \ - struct type *sle_next; /* next element */ \ -} - -#define SLIST_CLASS_ENTRY(type) \ -struct { \ - class type *sle_next; /* next element */ \ -} - -/* - * Singly-linked List functions. - */ -#if (defined(_KERNEL) && defined(INVARIANTS)) -#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) do { \ - if (*(prevp) != (elm)) \ - panic("Bad prevptr *(%p) == %p != %p", \ - (prevp), *(prevp), (elm)); \ -} while (0) -#else -#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) -#endif - -#define SLIST_CONCAT(head1, head2, type, field) do { \ - QUEUE_TYPEOF(type) *curelm = SLIST_FIRST(head1); \ - if (curelm == NULL) { \ - if ((SLIST_FIRST(head1) = SLIST_FIRST(head2)) != NULL) \ - SLIST_INIT(head2); \ - } else if (SLIST_FIRST(head2) != NULL) { \ - while (SLIST_NEXT(curelm, field) != NULL) \ - curelm = SLIST_NEXT(curelm, field); \ - SLIST_NEXT(curelm, field) = SLIST_FIRST(head2); \ - SLIST_INIT(head2); \ - } \ -} while (0) - -#define SLIST_EMPTY(head) ((head)->slh_first == NULL) - -#define SLIST_FIRST(head) ((head)->slh_first) - -#define SLIST_FOREACH(var, head, field) \ - for ((var) = SLIST_FIRST((head)); \ - (var); \ - (var) = SLIST_NEXT((var), field)) - -#define SLIST_FOREACH_FROM(var, head, field) \ - for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \ - (var); \ - (var) = SLIST_NEXT((var), field)) - -#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = SLIST_FIRST((head)); \ - (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define SLIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ - for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \ - (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ - for ((varp) = &SLIST_FIRST((head)); \ - ((var) = *(varp)) != NULL; \ - (varp) = &SLIST_NEXT((var), field)) - -#define SLIST_INIT(head) do { \ - SLIST_FIRST((head)) = NULL; \ -} while (0) - -#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ - SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \ - SLIST_NEXT((slistelm), field) = (elm); \ -} while (0) - -#define SLIST_INSERT_HEAD(head, elm, field) do { \ - SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \ - SLIST_FIRST((head)) = (elm); \ -} while (0) - -#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) - -#define SLIST_REMOVE(head, elm, type, field) do { \ - QMD_SAVELINK(oldnext, (elm)->field.sle_next); \ - if (SLIST_FIRST((head)) == (elm)) { \ - SLIST_REMOVE_HEAD((head), field); \ - } \ - else { \ - QUEUE_TYPEOF(type) *curelm = SLIST_FIRST(head); \ - while (SLIST_NEXT(curelm, field) != (elm)) \ - curelm = SLIST_NEXT(curelm, field); \ - SLIST_REMOVE_AFTER(curelm, field); \ - } \ - TRASHIT(*oldnext); \ -} while (0) - -#define SLIST_REMOVE_AFTER(elm, field) do { \ - SLIST_NEXT(elm, field) = \ - SLIST_NEXT(SLIST_NEXT(elm, field), field); \ -} while (0) - -#define SLIST_REMOVE_HEAD(head, field) do { \ - SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \ -} while (0) - -#define SLIST_REMOVE_PREVPTR(prevp, elm, field) do { \ - QMD_SLIST_CHECK_PREVPTR(prevp, elm); \ - *(prevp) = SLIST_NEXT(elm, field); \ - TRASHIT((elm)->field.sle_next); \ -} while (0) - -#define SLIST_SWAP(head1, head2, type) do { \ - QUEUE_TYPEOF(type) *swap_first = SLIST_FIRST(head1); \ - SLIST_FIRST(head1) = SLIST_FIRST(head2); \ - SLIST_FIRST(head2) = swap_first; \ -} while (0) - -/* - * Singly-linked Tail queue declarations. - */ -#define STAILQ_HEAD(name, type) \ -struct name { \ - struct type *stqh_first;/* first element */ \ - struct type **stqh_last;/* addr of last next element */ \ -} - -#define STAILQ_CLASS_HEAD(name, type) \ -struct name { \ - class type *stqh_first; /* first element */ \ - class type **stqh_last; /* addr of last next element */ \ -} - -#define STAILQ_HEAD_INITIALIZER(head) \ - { NULL, &(head).stqh_first } - -#define STAILQ_ENTRY(type) \ -struct { \ - struct type *stqe_next; /* next element */ \ -} - -#define STAILQ_CLASS_ENTRY(type) \ -struct { \ - class type *stqe_next; /* next element */ \ -} - -/* - * Singly-linked Tail queue functions. - */ -#define STAILQ_CONCAT(head1, head2) do { \ - if (!STAILQ_EMPTY((head2))) { \ - *(head1)->stqh_last = (head2)->stqh_first; \ - (head1)->stqh_last = (head2)->stqh_last; \ - STAILQ_INIT((head2)); \ - } \ -} while (0) - -#define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) - -#define STAILQ_FIRST(head) ((head)->stqh_first) - -#define STAILQ_FOREACH(var, head, field) \ - for((var) = STAILQ_FIRST((head)); \ - (var); \ - (var) = STAILQ_NEXT((var), field)) - -#define STAILQ_FOREACH_FROM(var, head, field) \ - for ((var) = ((var) ? (var) : STAILQ_FIRST((head))); \ - (var); \ - (var) = STAILQ_NEXT((var), field)) - -#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = STAILQ_FIRST((head)); \ - (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define STAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ - for ((var) = ((var) ? (var) : STAILQ_FIRST((head))); \ - (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define STAILQ_INIT(head) do { \ - STAILQ_FIRST((head)) = NULL; \ - (head)->stqh_last = &STAILQ_FIRST((head)); \ -} while (0) - -#define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ - if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\ - (head)->stqh_last = &STAILQ_NEXT((elm), field); \ - STAILQ_NEXT((tqelm), field) = (elm); \ -} while (0) - -#define STAILQ_INSERT_HEAD(head, elm, field) do { \ - if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \ - (head)->stqh_last = &STAILQ_NEXT((elm), field); \ - STAILQ_FIRST((head)) = (elm); \ -} while (0) - -#define STAILQ_INSERT_TAIL(head, elm, field) do { \ - STAILQ_NEXT((elm), field) = NULL; \ - *(head)->stqh_last = (elm); \ - (head)->stqh_last = &STAILQ_NEXT((elm), field); \ -} while (0) - -#define STAILQ_LAST(head, type, field) \ - (STAILQ_EMPTY((head)) ? NULL : \ - __containerof((head)->stqh_last, \ - QUEUE_TYPEOF(type), field.stqe_next)) - -#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) - -#define STAILQ_REMOVE(head, elm, type, field) do { \ - QMD_SAVELINK(oldnext, (elm)->field.stqe_next); \ - if (STAILQ_FIRST((head)) == (elm)) { \ - STAILQ_REMOVE_HEAD((head), field); \ - } \ - else { \ - QUEUE_TYPEOF(type) *curelm = STAILQ_FIRST(head); \ - while (STAILQ_NEXT(curelm, field) != (elm)) \ - curelm = STAILQ_NEXT(curelm, field); \ - STAILQ_REMOVE_AFTER(head, curelm, field); \ - } \ - TRASHIT(*oldnext); \ -} while (0) - -#define STAILQ_REMOVE_AFTER(head, elm, field) do { \ - if ((STAILQ_NEXT(elm, field) = \ - STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL) \ - (head)->stqh_last = &STAILQ_NEXT((elm), field); \ -} while (0) - -#define STAILQ_REMOVE_HEAD(head, field) do { \ - if ((STAILQ_FIRST((head)) = \ - STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \ - (head)->stqh_last = &STAILQ_FIRST((head)); \ -} while (0) - -#define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do { \ - if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL) \ - (head)->stqh_last = &STAILQ_FIRST((head)); \ -} while (0) - -#define STAILQ_SWAP(head1, head2, type) do { \ - QUEUE_TYPEOF(type) *swap_first = STAILQ_FIRST(head1); \ - QUEUE_TYPEOF(type) **swap_last = (head1)->stqh_last; \ - STAILQ_FIRST(head1) = STAILQ_FIRST(head2); \ - (head1)->stqh_last = (head2)->stqh_last; \ - STAILQ_FIRST(head2) = swap_first; \ - (head2)->stqh_last = swap_last; \ - if (STAILQ_EMPTY(head1)) \ - (head1)->stqh_last = &STAILQ_FIRST(head1); \ - if (STAILQ_EMPTY(head2)) \ - (head2)->stqh_last = &STAILQ_FIRST(head2); \ -} while (0) - - -/* - * List declarations. - */ -#define LIST_HEAD(name, type) \ -struct name { \ - struct type *lh_first; /* first element */ \ -} - -#define LIST_CLASS_HEAD(name, type) \ -struct name { \ - class type *lh_first; /* first element */ \ -} - -#define LIST_HEAD_INITIALIZER(head) \ - { NULL } - -#define LIST_ENTRY(type) \ -struct { \ - struct type *le_next; /* next element */ \ - struct type **le_prev; /* address of previous next element */ \ -} - -#define LIST_CLASS_ENTRY(type) \ -struct { \ - class type *le_next; /* next element */ \ - class type **le_prev; /* address of previous next element */ \ -} - -/* - * List functions. - */ - -#if (defined(_KERNEL) && defined(INVARIANTS)) -/* - * QMD_LIST_CHECK_HEAD(LIST_HEAD *head, LIST_ENTRY NAME) - * - * If the list is non-empty, validates that the first element of the list - * points back at 'head.' - */ -#define QMD_LIST_CHECK_HEAD(head, field) do { \ - if (LIST_FIRST((head)) != NULL && \ - LIST_FIRST((head))->field.le_prev != \ - &LIST_FIRST((head))) \ - panic("Bad list head %p first->prev != head", (head)); \ -} while (0) - -/* - * QMD_LIST_CHECK_NEXT(TYPE *elm, LIST_ENTRY NAME) - * - * If an element follows 'elm' in the list, validates that the next element - * points back at 'elm.' - */ -#define QMD_LIST_CHECK_NEXT(elm, field) do { \ - if (LIST_NEXT((elm), field) != NULL && \ - LIST_NEXT((elm), field)->field.le_prev != \ - &((elm)->field.le_next)) \ - panic("Bad link elm %p next->prev != elm", (elm)); \ -} while (0) - -/* - * QMD_LIST_CHECK_PREV(TYPE *elm, LIST_ENTRY NAME) - * - * Validates that the previous element (or head of the list) points to 'elm.' - */ -#define QMD_LIST_CHECK_PREV(elm, field) do { \ - if (*(elm)->field.le_prev != (elm)) \ - panic("Bad link elm %p prev->next != elm", (elm)); \ -} while (0) -#else -#define QMD_LIST_CHECK_HEAD(head, field) -#define QMD_LIST_CHECK_NEXT(elm, field) -#define QMD_LIST_CHECK_PREV(elm, field) -#endif /* (_KERNEL && INVARIANTS) */ - -#define LIST_CONCAT(head1, head2, type, field) do { \ - QUEUE_TYPEOF(type) *curelm = LIST_FIRST(head1); \ - if (curelm == NULL) { \ - if ((LIST_FIRST(head1) = LIST_FIRST(head2)) != NULL) { \ - LIST_FIRST(head2)->field.le_prev = \ - &LIST_FIRST((head1)); \ - LIST_INIT(head2); \ - } \ - } else if (LIST_FIRST(head2) != NULL) { \ - while (LIST_NEXT(curelm, field) != NULL) \ - curelm = LIST_NEXT(curelm, field); \ - LIST_NEXT(curelm, field) = LIST_FIRST(head2); \ - LIST_FIRST(head2)->field.le_prev = &LIST_NEXT(curelm, field); \ - LIST_INIT(head2); \ - } \ -} while (0) - -#define LIST_EMPTY(head) ((head)->lh_first == NULL) - -#define LIST_FIRST(head) ((head)->lh_first) - -#define LIST_FOREACH(var, head, field) \ - for ((var) = LIST_FIRST((head)); \ - (var); \ - (var) = LIST_NEXT((var), field)) - -#define LIST_FOREACH_FROM(var, head, field) \ - for ((var) = ((var) ? (var) : LIST_FIRST((head))); \ - (var); \ - (var) = LIST_NEXT((var), field)) - -#define LIST_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = LIST_FIRST((head)); \ - (var) && ((tvar) = LIST_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define LIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ - for ((var) = ((var) ? (var) : LIST_FIRST((head))); \ - (var) && ((tvar) = LIST_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define LIST_INIT(head) do { \ - LIST_FIRST((head)) = NULL; \ -} while (0) - -#define LIST_INSERT_AFTER(listelm, elm, field) do { \ - QMD_LIST_CHECK_NEXT(listelm, field); \ - if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\ - LIST_NEXT((listelm), field)->field.le_prev = \ - &LIST_NEXT((elm), field); \ - LIST_NEXT((listelm), field) = (elm); \ - (elm)->field.le_prev = &LIST_NEXT((listelm), field); \ -} while (0) - -#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ - QMD_LIST_CHECK_PREV(listelm, field); \ - (elm)->field.le_prev = (listelm)->field.le_prev; \ - LIST_NEXT((elm), field) = (listelm); \ - *(listelm)->field.le_prev = (elm); \ - (listelm)->field.le_prev = &LIST_NEXT((elm), field); \ -} while (0) - -#define LIST_INSERT_HEAD(head, elm, field) do { \ - QMD_LIST_CHECK_HEAD((head), field); \ - if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \ - LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\ - LIST_FIRST((head)) = (elm); \ - (elm)->field.le_prev = &LIST_FIRST((head)); \ -} while (0) - -#define LIST_NEXT(elm, field) ((elm)->field.le_next) - -#define LIST_PREV(elm, head, type, field) \ - ((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL : \ - __containerof((elm)->field.le_prev, \ - QUEUE_TYPEOF(type), field.le_next)) - -#define LIST_REMOVE(elm, field) do { \ - QMD_SAVELINK(oldnext, (elm)->field.le_next); \ - QMD_SAVELINK(oldprev, (elm)->field.le_prev); \ - QMD_LIST_CHECK_NEXT(elm, field); \ - QMD_LIST_CHECK_PREV(elm, field); \ - if (LIST_NEXT((elm), field) != NULL) \ - LIST_NEXT((elm), field)->field.le_prev = \ - (elm)->field.le_prev; \ - *(elm)->field.le_prev = LIST_NEXT((elm), field); \ - TRASHIT(*oldnext); \ - TRASHIT(*oldprev); \ -} while (0) - -#define LIST_SWAP(head1, head2, type, field) do { \ - QUEUE_TYPEOF(type) *swap_tmp = LIST_FIRST(head1); \ - LIST_FIRST((head1)) = LIST_FIRST((head2)); \ - LIST_FIRST((head2)) = swap_tmp; \ - if ((swap_tmp = LIST_FIRST((head1))) != NULL) \ - swap_tmp->field.le_prev = &LIST_FIRST((head1)); \ - if ((swap_tmp = LIST_FIRST((head2))) != NULL) \ - swap_tmp->field.le_prev = &LIST_FIRST((head2)); \ -} while (0) - -/* - * Tail queue declarations. - */ -#define TAILQ_HEAD(name, type) \ -struct name { \ - struct type *tqh_first; /* first element */ \ - struct type **tqh_last; /* addr of last next element */ \ - TRACEBUF \ -} - -#define TAILQ_CLASS_HEAD(name, type) \ -struct name { \ - class type *tqh_first; /* first element */ \ - class type **tqh_last; /* addr of last next element */ \ - TRACEBUF \ -} - -#define TAILQ_HEAD_INITIALIZER(head) \ - { NULL, &(head).tqh_first, TRACEBUF_INITIALIZER } - -#define TAILQ_ENTRY(type) \ -struct { \ - struct type *tqe_next; /* next element */ \ - struct type **tqe_prev; /* address of previous next element */ \ - TRACEBUF \ -} - -#define TAILQ_CLASS_ENTRY(type) \ -struct { \ - class type *tqe_next; /* next element */ \ - class type **tqe_prev; /* address of previous next element */ \ - TRACEBUF \ -} - -/* - * Tail queue functions. - */ -#if (defined(_KERNEL) && defined(INVARIANTS)) -/* - * QMD_TAILQ_CHECK_HEAD(TAILQ_HEAD *head, TAILQ_ENTRY NAME) - * - * If the tailq is non-empty, validates that the first element of the tailq - * points back at 'head.' - */ -#define QMD_TAILQ_CHECK_HEAD(head, field) do { \ - if (!TAILQ_EMPTY(head) && \ - TAILQ_FIRST((head))->field.tqe_prev != \ - &TAILQ_FIRST((head))) \ - panic("Bad tailq head %p first->prev != head", (head)); \ -} while (0) - -/* - * QMD_TAILQ_CHECK_TAIL(TAILQ_HEAD *head, TAILQ_ENTRY NAME) - * - * Validates that the tail of the tailq is a pointer to pointer to NULL. - */ -#define QMD_TAILQ_CHECK_TAIL(head, field) do { \ - if (*(head)->tqh_last != NULL) \ - panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); \ -} while (0) - -/* - * QMD_TAILQ_CHECK_NEXT(TYPE *elm, TAILQ_ENTRY NAME) - * - * If an element follows 'elm' in the tailq, validates that the next element - * points back at 'elm.' - */ -#define QMD_TAILQ_CHECK_NEXT(elm, field) do { \ - if (TAILQ_NEXT((elm), field) != NULL && \ - TAILQ_NEXT((elm), field)->field.tqe_prev != \ - &((elm)->field.tqe_next)) \ - panic("Bad link elm %p next->prev != elm", (elm)); \ -} while (0) - -/* - * QMD_TAILQ_CHECK_PREV(TYPE *elm, TAILQ_ENTRY NAME) - * - * Validates that the previous element (or head of the tailq) points to 'elm.' - */ -#define QMD_TAILQ_CHECK_PREV(elm, field) do { \ - if (*(elm)->field.tqe_prev != (elm)) \ - panic("Bad link elm %p prev->next != elm", (elm)); \ -} while (0) -#else -#define QMD_TAILQ_CHECK_HEAD(head, field) -#define QMD_TAILQ_CHECK_TAIL(head, headname) -#define QMD_TAILQ_CHECK_NEXT(elm, field) -#define QMD_TAILQ_CHECK_PREV(elm, field) -#endif /* (_KERNEL && INVARIANTS) */ - -#define TAILQ_CONCAT(head1, head2, field) do { \ - if (!TAILQ_EMPTY(head2)) { \ - *(head1)->tqh_last = (head2)->tqh_first; \ - (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \ - (head1)->tqh_last = (head2)->tqh_last; \ - TAILQ_INIT((head2)); \ - QMD_TRACE_HEAD(head1); \ - QMD_TRACE_HEAD(head2); \ - } \ -} while (0) - -#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) - -#define TAILQ_FIRST(head) ((head)->tqh_first) - -#define TAILQ_FOREACH(var, head, field) \ - for ((var) = TAILQ_FIRST((head)); \ - (var); \ - (var) = TAILQ_NEXT((var), field)) - -#define TAILQ_FOREACH_FROM(var, head, field) \ - for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \ - (var); \ - (var) = TAILQ_NEXT((var), field)) - -#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = TAILQ_FIRST((head)); \ - (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define TAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ - for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \ - (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ - for ((var) = TAILQ_LAST((head), headname); \ - (var); \ - (var) = TAILQ_PREV((var), headname, field)) - -#define TAILQ_FOREACH_REVERSE_FROM(var, head, headname, field) \ - for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \ - (var); \ - (var) = TAILQ_PREV((var), headname, field)) - -#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ - for ((var) = TAILQ_LAST((head), headname); \ - (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ - (var) = (tvar)) - -#define TAILQ_FOREACH_REVERSE_FROM_SAFE(var, head, headname, field, tvar) \ - for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \ - (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ - (var) = (tvar)) - -#define TAILQ_INIT(head) do { \ - TAILQ_FIRST((head)) = NULL; \ - (head)->tqh_last = &TAILQ_FIRST((head)); \ - QMD_TRACE_HEAD(head); \ -} while (0) - -#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ - QMD_TAILQ_CHECK_NEXT(listelm, field); \ - if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\ - TAILQ_NEXT((elm), field)->field.tqe_prev = \ - &TAILQ_NEXT((elm), field); \ - else { \ - (head)->tqh_last = &TAILQ_NEXT((elm), field); \ - QMD_TRACE_HEAD(head); \ - } \ - TAILQ_NEXT((listelm), field) = (elm); \ - (elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field); \ - QMD_TRACE_ELEM(&(elm)->field); \ - QMD_TRACE_ELEM(&(listelm)->field); \ -} while (0) - -#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ - QMD_TAILQ_CHECK_PREV(listelm, field); \ - (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ - TAILQ_NEXT((elm), field) = (listelm); \ - *(listelm)->field.tqe_prev = (elm); \ - (listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field); \ - QMD_TRACE_ELEM(&(elm)->field); \ - QMD_TRACE_ELEM(&(listelm)->field); \ -} while (0) - -#define TAILQ_INSERT_HEAD(head, elm, field) do { \ - QMD_TAILQ_CHECK_HEAD(head, field); \ - if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \ - TAILQ_FIRST((head))->field.tqe_prev = \ - &TAILQ_NEXT((elm), field); \ - else \ - (head)->tqh_last = &TAILQ_NEXT((elm), field); \ - TAILQ_FIRST((head)) = (elm); \ - (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \ - QMD_TRACE_HEAD(head); \ - QMD_TRACE_ELEM(&(elm)->field); \ -} while (0) - -#define TAILQ_INSERT_TAIL(head, elm, field) do { \ - QMD_TAILQ_CHECK_TAIL(head, field); \ - TAILQ_NEXT((elm), field) = NULL; \ - (elm)->field.tqe_prev = (head)->tqh_last; \ - *(head)->tqh_last = (elm); \ - (head)->tqh_last = &TAILQ_NEXT((elm), field); \ - QMD_TRACE_HEAD(head); \ - QMD_TRACE_ELEM(&(elm)->field); \ -} while (0) - -#define TAILQ_LAST(head, headname) \ - (*(((struct headname *)((head)->tqh_last))->tqh_last)) - -/* - * The FAST function is fast in that it causes no data access other - * then the access to the head. The standard LAST function above - * will cause a data access of both the element you want and - * the previous element. FAST is very useful for instances when - * you may want to prefetch the last data element. - */ -#define TAILQ_LAST_FAST(head, type, field) \ - (TAILQ_EMPTY(head) ? NULL : __containerof((head)->tqh_last, QUEUE_TYPEOF(type), field.tqe_next)) - -#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) - -#define TAILQ_PREV(elm, headname, field) \ - (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) - -#define TAILQ_REMOVE(head, elm, field) do { \ - QMD_SAVELINK(oldnext, (elm)->field.tqe_next); \ - QMD_SAVELINK(oldprev, (elm)->field.tqe_prev); \ - QMD_TAILQ_CHECK_NEXT(elm, field); \ - QMD_TAILQ_CHECK_PREV(elm, field); \ - if ((TAILQ_NEXT((elm), field)) != NULL) \ - TAILQ_NEXT((elm), field)->field.tqe_prev = \ - (elm)->field.tqe_prev; \ - else { \ - (head)->tqh_last = (elm)->field.tqe_prev; \ - QMD_TRACE_HEAD(head); \ - } \ - *(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \ - TRASHIT(*oldnext); \ - TRASHIT(*oldprev); \ - QMD_TRACE_ELEM(&(elm)->field); \ -} while (0) - -#define TAILQ_SWAP(head1, head2, type, field) do { \ - QUEUE_TYPEOF(type) *swap_first = (head1)->tqh_first; \ - QUEUE_TYPEOF(type) **swap_last = (head1)->tqh_last; \ - (head1)->tqh_first = (head2)->tqh_first; \ - (head1)->tqh_last = (head2)->tqh_last; \ - (head2)->tqh_first = swap_first; \ - (head2)->tqh_last = swap_last; \ - if ((swap_first = (head1)->tqh_first) != NULL) \ - swap_first->field.tqe_prev = &(head1)->tqh_first; \ - else \ - (head1)->tqh_last = &(head1)->tqh_first; \ - if ((swap_first = (head2)->tqh_first) != NULL) \ - swap_first->field.tqe_prev = &(head2)->tqh_first; \ - else \ - (head2)->tqh_last = &(head2)->tqh_first; \ -} while (0) - -#ifdef _KERNEL - -/* - * XXX insque() and remque() are an old way of handling certain queues. - * They bogusly assumes that all queue heads look alike. - */ - -struct quehead { - struct quehead *qh_link; - struct quehead *qh_rlink; -}; - -#ifdef __GNUC__ - -static __inline void -insque(void *a, void *b) -{ - struct quehead *element = (struct quehead *)a, - *head = (struct quehead *)b; - - element->qh_link = head->qh_link; - element->qh_rlink = head; - head->qh_link = element; - element->qh_link->qh_rlink = element; -} - -static __inline void -remque(void *a) -{ - struct quehead *element = (struct quehead *)a; - - element->qh_link->qh_rlink = element->qh_rlink; - element->qh_rlink->qh_link = element->qh_link; - element->qh_rlink = 0; -} - -#else /* !__GNUC__ */ - -void insque(void *a, void *b); -void remque(void *a); - -#endif /* __GNUC__ */ - -#endif /* _KERNEL */ - -#endif /* !_SYS_QUEUE_H_ */ diff --git a/include/sys/reent.h b/include/sys/reent.h deleted file mode 100644 index c71f75d..0000000 --- a/include/sys/reent.h +++ /dev/null @@ -1,896 +0,0 @@ -/* This header file provides the reentrancy. */ - -/* WARNING: All identifiers here must begin with an underscore. This file is - included by stdio.h and others and we therefore must only use identifiers - in the namespace allotted to us. */ - -#ifndef _SYS_REENT_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS_REENT_H_ - -#include <_ansi.h> -#include -#include - -#define _NULL 0 - -#ifndef __Long -#if __LONG_MAX__ == 2147483647L -#define __Long long -typedef unsigned __Long __ULong; -#elif __INT_MAX__ == 2147483647 -#define __Long int -typedef unsigned __Long __ULong; -#endif -#endif - -#if !defined( __Long) -#include -#endif - -#ifndef __machine_flock_t_defined -#include -typedef _LOCK_RECURSIVE_T _flock_t; -#endif - -#ifndef __Long -#define __Long __int32_t -typedef __uint32_t __ULong; -#endif - -struct _reent; - -struct __locale_t; - -/* - * If _REENT_SMALL is defined, we make struct _reent as small as possible, - * by having nearly everything possible allocated at first use. - */ - -struct _Bigint -{ - struct _Bigint *_next; - int _k, _maxwds, _sign, _wds; - __ULong _x[1]; -}; - -/* needed by reentrant structure */ -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; -}; - -/* - * atexit() support. - */ - -#define _ATEXIT_SIZE 32 /* must be at least 32 to guarantee ANSI conformance */ - -struct _on_exit_args { - void * _fnargs[_ATEXIT_SIZE]; /* user fn args */ - void * _dso_handle[_ATEXIT_SIZE]; - /* Bitmask is set if user function takes arguments. */ - __ULong _fntypes; /* type of exit routine - - Must have at least _ATEXIT_SIZE bits */ - /* Bitmask is set if function was registered via __cxa_atexit. */ - __ULong _is_cxa; -}; - -#ifdef _REENT_SMALL -struct _atexit { - struct _atexit *_next; /* next in list */ - int _ind; /* next index in this table */ - void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */ - struct _on_exit_args * _on_exit_args_ptr; -}; -# define _ATEXIT_INIT {_NULL, 0, {_NULL}, _NULL} -#else -struct _atexit { - struct _atexit *_next; /* next in list */ - int _ind; /* next index in this table */ - /* Some entries may already have been called, and will be NULL. */ - void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */ - struct _on_exit_args _on_exit_args; -}; -# define _ATEXIT_INIT {_NULL, 0, {_NULL}, {{_NULL}, {_NULL}, 0, 0}} -#endif - -/* - * Stdio buffers. - * - * This and __FILE are defined here because we need them for struct _reent, - * but we don't want stdio.h included when stdlib.h is. - */ - -struct __sbuf { - unsigned char *_base; - int _size; -}; - -/* - * Stdio state variables. - * - * The following always hold: - * - * if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR), - * _lbfsize is -_bf._size, else _lbfsize is 0 - * if _flags&__SRD, _w is 0 - * if _flags&__SWR, _r is 0 - * - * This ensures that the getc and putc macros (or inline functions) never - * try to write or read from a file that is in `read' or `write' mode. - * (Moreover, they can, and do, automatically switch from read mode to - * write mode, and back, on "r+" and "w+" files.) - * - * _lbfsize is used only to make the inline line-buffered output stream - * code as compact as possible. - * - * _ub, _up, and _ur are used when ungetc() pushes back more characters - * than fit in the current _bf, or when ungetc() pushes back a character - * that does not match the previous one in _bf. When this happens, - * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff - * _ub._base!=NULL) and _up and _ur save the current values of _p and _r. - */ - -#define _REENT_SMALL_CHECK_INIT(ptr) /* nothing */ - -/* Cygwin must use __sFILE64 for backward compatibility, even though - it's not defining __LARGE64_FILES anymore. To make sure that __sFILE - is never defined, disable it here explicitely. */ -#ifndef __CYGWIN__ - -struct __sFILE { - unsigned char *_p; /* current position in (some) buffer */ - int _r; /* read space left for getc() */ - int _w; /* write space left for putc() */ - short _flags; /* flags, below; this FILE is free if 0 */ - short _file; /* fileno, if Unix descriptor, else -1 */ - struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */ - int _lbfsize; /* 0 or -_bf._size, for inline putc */ - -#ifdef _REENT_SMALL - struct _reent *_data; -#endif - - /* operations */ - void * _cookie; /* cookie passed to io functions */ - - _READ_WRITE_RETURN_TYPE (*_read) (struct _reent *, void *, - char *, _READ_WRITE_BUFSIZE_TYPE); - _READ_WRITE_RETURN_TYPE (*_write) (struct _reent *, void *, - const char *, - _READ_WRITE_BUFSIZE_TYPE); - _fpos_t (*_seek) (struct _reent *, void *, _fpos_t, int); - int (*_close) (struct _reent *, void *); - - /* separate buffer for long sequences of ungetc() */ - struct __sbuf _ub; /* ungetc buffer */ - unsigned char *_up; /* saved _p when _p is doing ungetc data */ - int _ur; /* saved _r when _r is counting ungetc data */ - - /* tricks to meet minimum requirements even when malloc() fails */ - unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */ - unsigned char _nbuf[1]; /* guarantee a getc() buffer */ - - /* separate buffer for fgetline() when line crosses buffer boundary */ - struct __sbuf _lb; /* buffer for fgetline() */ - - /* Unix stdio files get aligned to block boundaries on fseek() */ - int _blksize; /* stat.st_blksize (may be != _bf._size) */ - _off_t _offset; /* current lseek offset */ - -#ifndef _REENT_SMALL - struct _reent *_data; /* Here for binary compatibility? Remove? */ -#endif - -#ifndef __SINGLE_THREAD__ - _flock_t _lock; /* for thread-safety locking */ -#endif - _mbstate_t _mbstate; /* for wide char stdio functions. */ - int _flags2; /* for future use */ -}; - -#endif /* !__CYGWIN__ */ - -#ifdef __CUSTOM_FILE_IO__ - -/* Get custom _FILE definition. */ -#include - -#else /* !__CUSTOM_FILE_IO__ */ -/* Cygwin must use __sFILE64 for backward compatibility, even though - it's not defining __LARGE64_FILES anymore. It also has to make - sure the name is the same to satisfy C++ name mangling. Overloading - _fpos64_t just fixes a build problem. The _seek64 function is - actually never used without __LARGE64_FILES being defined. */ -#if defined (__LARGE64_FILES) || defined (__CYGWIN__) -#ifdef __CYGWIN__ -#define _fpos64_t _fpos_t -#endif - -struct __sFILE64 { - unsigned char *_p; /* current position in (some) buffer */ - int _r; /* read space left for getc() */ - int _w; /* write space left for putc() */ - short _flags; /* flags, below; this FILE is free if 0 */ - short _file; /* fileno, if Unix descriptor, else -1 */ - struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */ - int _lbfsize; /* 0 or -_bf._size, for inline putc */ - - struct _reent *_data; - - /* operations */ - void * _cookie; /* cookie passed to io functions */ - - _READ_WRITE_RETURN_TYPE (*_read) (struct _reent *, void *, - char *, _READ_WRITE_BUFSIZE_TYPE); - _READ_WRITE_RETURN_TYPE (*_write) (struct _reent *, void *, - const char *, - _READ_WRITE_BUFSIZE_TYPE); - _fpos_t (*_seek) (struct _reent *, void *, _fpos_t, int); - int (*_close) (struct _reent *, void *); - - /* separate buffer for long sequences of ungetc() */ - struct __sbuf _ub; /* ungetc buffer */ - unsigned char *_up; /* saved _p when _p is doing ungetc data */ - int _ur; /* saved _r when _r is counting ungetc data */ - - /* tricks to meet minimum requirements even when malloc() fails */ - unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */ - unsigned char _nbuf[1]; /* guarantee a getc() buffer */ - - /* separate buffer for fgetline() when line crosses buffer boundary */ - struct __sbuf _lb; /* buffer for fgetline() */ - - /* Unix stdio files get aligned to block boundaries on fseek() */ - int _blksize; /* stat.st_blksize (may be != _bf._size) */ - int _flags2; /* for future use */ - - _off64_t _offset; /* current lseek offset */ - _fpos64_t (*_seek64) (struct _reent *, void *, _fpos64_t, int); - -#ifndef __SINGLE_THREAD__ - _flock_t _lock; /* for thread-safety locking */ -#endif - _mbstate_t _mbstate; /* for wide char stdio functions. */ -}; -typedef struct __sFILE64 __FILE; -#else -typedef struct __sFILE __FILE; -#endif /* __LARGE64_FILES */ -#endif /* !__CUSTOM_FILE_IO__ */ - -extern __FILE __sf[3]; - -struct _glue -{ - struct _glue *_next; - int _niobs; - __FILE *_iobs; -}; - -extern struct _glue __sglue; - -/* - * rand48 family support - * - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ -#define _RAND48_SEED_0 (0x330e) -#define _RAND48_SEED_1 (0xabcd) -#define _RAND48_SEED_2 (0x1234) -#define _RAND48_MULT_0 (0xe66d) -#define _RAND48_MULT_1 (0xdeec) -#define _RAND48_MULT_2 (0x0005) -#define _RAND48_ADD (0x000b) -struct _rand48 { - unsigned short _seed[3]; - unsigned short _mult[3]; - unsigned short _add; -#ifdef _REENT_SMALL - /* Put this in here as well, for good luck. */ - __extension__ unsigned long long _rand_next; -#endif -}; - -/* How big the some arrays are. */ -#define _REENT_EMERGENCY_SIZE 25 -#define _REENT_ASCTIME_SIZE 26 -#define _REENT_SIGNAL_SIZE 24 - -#ifndef _REENT_THREAD_LOCAL - -#ifdef _REENT_BACKWARD_BINARY_COMPAT -#define _REENT_INIT_RESERVED_0 0, -#define _REENT_INIT_RESERVED_1 0, -#define _REENT_INIT_RESERVED_2 0, -#define _REENT_INIT_RESERVED_6_7 _NULL, _ATEXIT_INIT, -#define _REENT_INIT_RESERVED_8 {_NULL, 0, _NULL}, -#else -#define _REENT_INIT_RESERVED_0 /* Nothing to initialize */ -#define _REENT_INIT_RESERVED_1 /* Nothing to initialize */ -#define _REENT_INIT_RESERVED_2 /* Nothing to initialize */ -#define _REENT_INIT_RESERVED_6_7 /* Nothing to initialize */ -#define _REENT_INIT_RESERVED_8 /* Nothing to initialize */ -#endif - -/* - * struct _reent - * - * This structure contains the thread-local objects needed by the library. - * It's raison d'etre is to facilitate threads by making all library routines - * reentrant. The exit handler support and FILE maintenance use dedicated - * global objects which are not included in this structure. - */ - -#ifdef _REENT_SMALL - -struct _mprec -{ - /* used by mprec routines */ - struct _Bigint *_result; - int _result_k; - struct _Bigint *_p5s; - struct _Bigint **_freelist; -}; - - -struct _misc_reent -{ - /* miscellaneous reentrant data */ - char *_strtok_last; - _mbstate_t _mblen_state; - _mbstate_t _wctomb_state; - _mbstate_t _mbtowc_state; - char _l64a_buf[8]; - int _getdate_err; - _mbstate_t _mbrlen_state; - _mbstate_t _mbrtowc_state; - _mbstate_t _mbsrtowcs_state; - _mbstate_t _wcrtomb_state; - _mbstate_t _wcsrtombs_state; -}; - -/* This version of _reent is laid out with "int"s in pairs, to help - * ports with 16-bit int's but 32-bit pointers, align nicely. */ -struct _reent -{ - /* As an exception to the above put _errno first for binary - compatibility with non _REENT_SMALL targets. */ - int _errno; /* local copy of errno */ - - /* FILE is a big struct and may change over time. To try to achieve binary - compatibility with future versions, put stdin,stdout,stderr here. - These are pointers into member __sf defined below. */ - __FILE *_stdin, *_stdout, *_stderr; /* XXX */ - - int _inc; /* used by tmpnam */ - - char *_emergency; - -#ifdef _REENT_BACKWARD_BINARY_COMPAT - int _reserved_0; - int _reserved_1; -#endif - struct __locale_t *_locale;/* per-thread locale */ - - struct _mprec *_mp; - - void (*__cleanup) (struct _reent *); - - int _gamma_signgam; - - /* used by some fp conversion routines */ - int _cvtlen; /* should be size_t */ - char *_cvtbuf; - - struct _rand48 *_r48; - struct __tm *_localtime_buf; - char *_asctime_buf; - - /* signal info */ - void (** _sig_func)(int); - -#ifdef _REENT_BACKWARD_BINARY_COMPAT - struct _atexit *_reserved_6; - struct _atexit _reserved_7; - struct _glue _reserved_8; -#endif - - __FILE *__sf; /* file descriptors */ - struct _misc_reent *_misc; /* strtok, multibyte states */ - char *_signal_buf; /* strsignal */ -}; - -# define _REENT_INIT(var) \ - { 0, \ - &__sf[0], \ - &__sf[1], \ - &__sf[2], \ - 0, \ - _NULL, \ - _REENT_INIT_RESERVED_0 \ - _REENT_INIT_RESERVED_1 \ - _NULL, \ - _NULL, \ - _NULL, \ - 0, \ - 0, \ - _NULL, \ - _NULL, \ - _NULL, \ - _NULL, \ - _NULL, \ - _REENT_INIT_RESERVED_6_7 \ - _REENT_INIT_RESERVED_8 \ - _NULL, \ - _NULL, \ - _NULL \ - } - -#define _REENT_INIT_PTR_ZEROED(var) \ - { (var)->_stdin = &__sf[0]; \ - (var)->_stdout = &__sf[1]; \ - (var)->_stderr = &__sf[2]; \ - } - -/* Specify how to handle reent_check malloc failures. */ -#ifdef _REENT_CHECK_VERIFY -#include -#define __reent_assert(x) ((x) ? (void)0 : __assert_func(__FILE__, __LINE__, (char *)0, "REENT malloc succeeded")) -#else -#define __reent_assert(x) ((void)0) -#endif - -#ifdef __CUSTOM_FILE_IO__ -#error Custom FILE I/O and _REENT_SMALL not currently supported. -#endif - -/* Generic _REENT check macro. */ -#define _REENT_CHECK(var, what, type, size, init) do { \ - struct _reent *_r = (var); \ - if (_r->what == NULL) { \ - _r->what = (type)malloc(size); \ - __reent_assert(_r->what); \ - init; \ - } \ -} while (0) - -#define _REENT_CHECK_TM(var) \ - _REENT_CHECK(var, _localtime_buf, struct __tm *, sizeof *((var)->_localtime_buf), \ - /* nothing */) - -#define _REENT_CHECK_ASCTIME_BUF(var) \ - _REENT_CHECK(var, _asctime_buf, char *, _REENT_ASCTIME_SIZE, \ - memset((var)->_asctime_buf, 0, _REENT_ASCTIME_SIZE)) - -/* Handle the dynamically allocated rand48 structure. */ -#define _REENT_INIT_RAND48(var) do { \ - struct _reent *_r = (var); \ - _r->_r48->_seed[0] = _RAND48_SEED_0; \ - _r->_r48->_seed[1] = _RAND48_SEED_1; \ - _r->_r48->_seed[2] = _RAND48_SEED_2; \ - _r->_r48->_mult[0] = _RAND48_MULT_0; \ - _r->_r48->_mult[1] = _RAND48_MULT_1; \ - _r->_r48->_mult[2] = _RAND48_MULT_2; \ - _r->_r48->_add = _RAND48_ADD; \ - _r->_r48->_rand_next = 1; \ -} while (0) -#define _REENT_CHECK_RAND48(var) \ - _REENT_CHECK(var, _r48, struct _rand48 *, sizeof *((var)->_r48), _REENT_INIT_RAND48((var))) - -#define _REENT_INIT_MP(var) do { \ - struct _reent *_r = (var); \ - _r->_mp->_result_k = 0; \ - _r->_mp->_result = _r->_mp->_p5s = _NULL; \ - _r->_mp->_freelist = _NULL; \ -} while (0) -#define _REENT_CHECK_MP(var) \ - _REENT_CHECK(var, _mp, struct _mprec *, sizeof *((var)->_mp), _REENT_INIT_MP(var)) - -#define _REENT_CHECK_EMERGENCY(var) \ - _REENT_CHECK(var, _emergency, char *, _REENT_EMERGENCY_SIZE, /* nothing */) - -#define _REENT_INIT_MISC(var) do { \ - struct _reent *_r = (var); \ - _r->_misc->_strtok_last = _NULL; \ - _r->_misc->_mblen_state.__count = 0; \ - _r->_misc->_mblen_state.__value.__wch = 0; \ - _r->_misc->_wctomb_state.__count = 0; \ - _r->_misc->_wctomb_state.__value.__wch = 0; \ - _r->_misc->_mbtowc_state.__count = 0; \ - _r->_misc->_mbtowc_state.__value.__wch = 0; \ - _r->_misc->_mbrlen_state.__count = 0; \ - _r->_misc->_mbrlen_state.__value.__wch = 0; \ - _r->_misc->_mbrtowc_state.__count = 0; \ - _r->_misc->_mbrtowc_state.__value.__wch = 0; \ - _r->_misc->_mbsrtowcs_state.__count = 0; \ - _r->_misc->_mbsrtowcs_state.__value.__wch = 0; \ - _r->_misc->_wcrtomb_state.__count = 0; \ - _r->_misc->_wcrtomb_state.__value.__wch = 0; \ - _r->_misc->_wcsrtombs_state.__count = 0; \ - _r->_misc->_wcsrtombs_state.__value.__wch = 0; \ - _r->_misc->_l64a_buf[0] = '\0'; \ - _r->_misc->_getdate_err = 0; \ -} while (0) -#define _REENT_CHECK_MISC(var) \ - _REENT_CHECK(var, _misc, struct _misc_reent *, sizeof *((var)->_misc), _REENT_INIT_MISC(var)) - -#define _REENT_CHECK_SIGNAL_BUF(var) \ - _REENT_CHECK(var, _signal_buf, char *, _REENT_SIGNAL_SIZE, /* nothing */) - -#define _REENT_SIGNGAM(ptr) ((ptr)->_gamma_signgam) -#define _REENT_RAND_NEXT(ptr) ((ptr)->_r48->_rand_next) -#define _REENT_RAND48_SEED(ptr) ((ptr)->_r48->_seed) -#define _REENT_RAND48_MULT(ptr) ((ptr)->_r48->_mult) -#define _REENT_RAND48_ADD(ptr) ((ptr)->_r48->_add) -#define _REENT_MP_RESULT(ptr) ((ptr)->_mp->_result) -#define _REENT_MP_RESULT_K(ptr) ((ptr)->_mp->_result_k) -#define _REENT_MP_P5S(ptr) ((ptr)->_mp->_p5s) -#define _REENT_MP_FREELIST(ptr) ((ptr)->_mp->_freelist) -#define _REENT_ASCTIME_BUF(ptr) ((ptr)->_asctime_buf) -#define _REENT_TM(ptr) ((ptr)->_localtime_buf) -#define _REENT_STRTOK_LAST(ptr) ((ptr)->_misc->_strtok_last) -#define _REENT_MBLEN_STATE(ptr) ((ptr)->_misc->_mblen_state) -#define _REENT_MBTOWC_STATE(ptr)((ptr)->_misc->_mbtowc_state) -#define _REENT_WCTOMB_STATE(ptr)((ptr)->_misc->_wctomb_state) -#define _REENT_MBRLEN_STATE(ptr) ((ptr)->_misc->_mbrlen_state) -#define _REENT_MBRTOWC_STATE(ptr) ((ptr)->_misc->_mbrtowc_state) -#define _REENT_MBSRTOWCS_STATE(ptr) ((ptr)->_misc->_mbsrtowcs_state) -#define _REENT_WCRTOMB_STATE(ptr) ((ptr)->_misc->_wcrtomb_state) -#define _REENT_WCSRTOMBS_STATE(ptr) ((ptr)->_misc->_wcsrtombs_state) -#define _REENT_L64A_BUF(ptr) ((ptr)->_misc->_l64a_buf) -#define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_misc->_getdate_err)) -#define _REENT_SIGNAL_BUF(ptr) ((ptr)->_signal_buf) - -#else /* !_REENT_SMALL */ - -struct _reent -{ - int _errno; /* local copy of errno */ - - /* FILE is a big struct and may change over time. To try to achieve binary - compatibility with future versions, put stdin,stdout,stderr here. - These are pointers into member __sf defined below. */ - __FILE *_stdin, *_stdout, *_stderr; - - int _inc; /* used by tmpnam */ - char _emergency[_REENT_EMERGENCY_SIZE]; - -#ifdef _REENT_BACKWARD_BINARY_COMPAT - int _reserved_1; -#endif - struct __locale_t *_locale;/* per-thread locale */ - -#ifdef _REENT_BACKWARD_BINARY_COMPAT - int _reserved_0; -#endif - - void (*__cleanup) (struct _reent *); - - /* used by mprec routines */ - struct _Bigint *_result; - int _result_k; - struct _Bigint *_p5s; - struct _Bigint **_freelist; - - /* used by some fp conversion routines */ - int _cvtlen; /* should be size_t */ - char *_cvtbuf; - - union - { - struct - { -#ifdef _REENT_BACKWARD_BINARY_COMPAT - unsigned int _reserved_2; -#endif - char * _strtok_last; - char _asctime_buf[_REENT_ASCTIME_SIZE]; - struct __tm _localtime_buf; - int _gamma_signgam; - __extension__ unsigned long long _rand_next; - struct _rand48 _r48; - _mbstate_t _mblen_state; - _mbstate_t _mbtowc_state; - _mbstate_t _wctomb_state; - char _l64a_buf[8]; - char _signal_buf[_REENT_SIGNAL_SIZE]; - int _getdate_err; - _mbstate_t _mbrlen_state; - _mbstate_t _mbrtowc_state; - _mbstate_t _mbsrtowcs_state; - _mbstate_t _wcrtomb_state; - _mbstate_t _wcsrtombs_state; - int _h_errno; - } _reent; -#ifdef _REENT_BACKWARD_BINARY_COMPAT - struct - { - unsigned char * _reserved_3[30]; - unsigned int _reserved_4[30]; - } _reserved_5; -#endif - } _new; - -#ifdef _REENT_BACKWARD_BINARY_COMPAT - struct _atexit *_reserved_6; - struct _atexit _reserved_7; -#endif - - /* signal info */ - void (**_sig_func)(int); -}; - -#define _REENT_INIT(var) \ - { 0, \ - &__sf[0], \ - &__sf[1], \ - &__sf[2], \ - 0, \ - "", \ - _REENT_INIT_RESERVED_1 \ - _NULL, \ - _REENT_INIT_RESERVED_0 \ - _NULL, \ - _NULL, \ - 0, \ - _NULL, \ - _NULL, \ - 0, \ - _NULL, \ - { \ - { \ - _REENT_INIT_RESERVED_2 \ - _NULL, \ - "", \ - {0, 0, 0, 0, 0, 0, 0, 0, 0}, \ - 0, \ - 1, \ - { \ - {_RAND48_SEED_0, _RAND48_SEED_1, _RAND48_SEED_2}, \ - {_RAND48_MULT_0, _RAND48_MULT_1, _RAND48_MULT_2}, \ - _RAND48_ADD \ - }, \ - {0, {0}}, \ - {0, {0}}, \ - {0, {0}}, \ - "", \ - "", \ - 0, \ - {0, {0}}, \ - {0, {0}}, \ - {0, {0}}, \ - {0, {0}}, \ - {0, {0}} \ - } \ - }, \ - _REENT_INIT_RESERVED_6_7 \ - _NULL \ - } - -#define _REENT_INIT_PTR_ZEROED(var) \ - { (var)->_stdin = &__sf[0]; \ - (var)->_stdout = &__sf[1]; \ - (var)->_stderr = &__sf[2]; \ - (var)->_new._reent._rand_next = 1; \ - (var)->_new._reent._r48._seed[0] = _RAND48_SEED_0; \ - (var)->_new._reent._r48._seed[1] = _RAND48_SEED_1; \ - (var)->_new._reent._r48._seed[2] = _RAND48_SEED_2; \ - (var)->_new._reent._r48._mult[0] = _RAND48_MULT_0; \ - (var)->_new._reent._r48._mult[1] = _RAND48_MULT_1; \ - (var)->_new._reent._r48._mult[2] = _RAND48_MULT_2; \ - (var)->_new._reent._r48._add = _RAND48_ADD; \ - } - -#define _REENT_CHECK_RAND48(ptr) /* nothing */ -#define _REENT_CHECK_MP(ptr) /* nothing */ -#define _REENT_CHECK_TM(ptr) /* nothing */ -#define _REENT_CHECK_ASCTIME_BUF(ptr) /* nothing */ -#define _REENT_CHECK_EMERGENCY(ptr) /* nothing */ -#define _REENT_CHECK_MISC(ptr) /* nothing */ -#define _REENT_CHECK_SIGNAL_BUF(ptr) /* nothing */ - -#define _REENT_SIGNGAM(ptr) ((ptr)->_new._reent._gamma_signgam) -#define _REENT_RAND_NEXT(ptr) ((ptr)->_new._reent._rand_next) -#define _REENT_RAND48_SEED(ptr) ((ptr)->_new._reent._r48._seed) -#define _REENT_RAND48_MULT(ptr) ((ptr)->_new._reent._r48._mult) -#define _REENT_RAND48_ADD(ptr) ((ptr)->_new._reent._r48._add) -#define _REENT_MP_RESULT(ptr) ((ptr)->_result) -#define _REENT_MP_RESULT_K(ptr) ((ptr)->_result_k) -#define _REENT_MP_P5S(ptr) ((ptr)->_p5s) -#define _REENT_MP_FREELIST(ptr) ((ptr)->_freelist) -#define _REENT_ASCTIME_BUF(ptr) ((ptr)->_new._reent._asctime_buf) -#define _REENT_TM(ptr) (&(ptr)->_new._reent._localtime_buf) -#define _REENT_STRTOK_LAST(ptr) ((ptr)->_new._reent._strtok_last) -#define _REENT_MBLEN_STATE(ptr) ((ptr)->_new._reent._mblen_state) -#define _REENT_MBTOWC_STATE(ptr)((ptr)->_new._reent._mbtowc_state) -#define _REENT_WCTOMB_STATE(ptr)((ptr)->_new._reent._wctomb_state) -#define _REENT_MBRLEN_STATE(ptr)((ptr)->_new._reent._mbrlen_state) -#define _REENT_MBRTOWC_STATE(ptr)((ptr)->_new._reent._mbrtowc_state) -#define _REENT_MBSRTOWCS_STATE(ptr)((ptr)->_new._reent._mbsrtowcs_state) -#define _REENT_WCRTOMB_STATE(ptr)((ptr)->_new._reent._wcrtomb_state) -#define _REENT_WCSRTOMBS_STATE(ptr)((ptr)->_new._reent._wcsrtombs_state) -#define _REENT_L64A_BUF(ptr) ((ptr)->_new._reent._l64a_buf) -#define _REENT_SIGNAL_BUF(ptr) ((ptr)->_new._reent._signal_buf) -#define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_new._reent._getdate_err)) - -#endif /* !_REENT_SMALL */ - -#define _REENT_CLEANUP(_ptr) ((_ptr)->__cleanup) -#define _REENT_CVTBUF(_ptr) ((_ptr)->_cvtbuf) -#define _REENT_CVTLEN(_ptr) ((_ptr)->_cvtlen) -#define _REENT_EMERGENCY(_ptr) ((_ptr)->_emergency) -#define _REENT_ERRNO(_ptr) ((_ptr)->_errno) -#define _REENT_INC(_ptr) ((_ptr)->_inc) -#define _REENT_LOCALE(_ptr) ((_ptr)->_locale) -#define _REENT_SIG_FUNC(_ptr) ((_ptr)->_sig_func) -#define _REENT_STDIN(_ptr) ((_ptr)->_stdin) -#define _REENT_STDOUT(_ptr) ((_ptr)->_stdout) -#define _REENT_STDERR(_ptr) ((_ptr)->_stderr) - -#define _REENT_INIT_PTR(var) \ - { memset((var), 0, sizeof(*(var))); \ - _REENT_INIT_PTR_ZEROED(var); \ - } - -/* - * All references to struct _reent are via this pointer. - * Internally, newlib routines that need to reference it should use _REENT. - */ - -#ifndef __ATTRIBUTE_IMPURE_PTR__ -#define __ATTRIBUTE_IMPURE_PTR__ -#endif - -extern struct _reent *_impure_ptr __ATTRIBUTE_IMPURE_PTR__; - -#ifndef __ATTRIBUTE_IMPURE_DATA__ -#define __ATTRIBUTE_IMPURE_DATA__ -#endif - -extern struct _reent _impure_data __ATTRIBUTE_IMPURE_DATA__; - -/* #define _REENT_ONLY define this to get only reentrant routines */ - -#if defined(__DYNAMIC_REENT__) && !defined(__SINGLE_THREAD__) -#ifndef __getreent - struct _reent * __getreent (void); -#endif -# define _REENT (__getreent()) -#else /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */ -# define _REENT _impure_ptr -#endif /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */ - -#define _REENT_IS_NULL(_ptr) ((_ptr) == NULL) - -#define _GLOBAL_REENT (&_impure_data) - -#else /* _REENT_THREAD_LOCAL */ - -#define _REENT NULL -#define _GLOBAL_REENT NULL - -/* - * Since _REENT is defined as NULL, this macro ensures that calls to - * CHECK_INIT() do not automatically fail. - */ -#define _REENT_IS_NULL(_ptr) 0 - -#define _REENT_CHECK_RAND48(ptr) /* nothing */ -#define _REENT_CHECK_MP(ptr) /* nothing */ -#define _REENT_CHECK_TM(ptr) /* nothing */ -#define _REENT_CHECK_ASCTIME_BUF(ptr) /* nothing */ -#define _REENT_CHECK_EMERGENCY(ptr) /* nothing */ -#define _REENT_CHECK_MISC(ptr) /* nothing */ -#define _REENT_CHECK_SIGNAL_BUF(ptr) /* nothing */ - -extern _Thread_local char _tls_asctime_buf[_REENT_ASCTIME_SIZE]; -#define _REENT_ASCTIME_BUF(_ptr) (_tls_asctime_buf) -extern _Thread_local char *_tls_cvtbuf; -#define _REENT_CVTBUF(_ptr) (_tls_cvtbuf) -extern _Thread_local int _tls_cvtlen; -#define _REENT_CVTLEN(_ptr) (_tls_cvtlen) -extern _Thread_local void (*_tls_cleanup)(struct _reent *); -#define _REENT_CLEANUP(_ptr) (_tls_cleanup) -extern _Thread_local char _tls_emergency[_REENT_EMERGENCY_SIZE]; -#define _REENT_EMERGENCY(_ptr) (_tls_emergency) -extern _Thread_local int _tls_errno; -#define _REENT_ERRNO(_ptr) (_tls_errno) -extern _Thread_local int _tls_getdate_err; -#define _REENT_GETDATE_ERR_P(_ptr) (&_tls_getdate_err) -extern _Thread_local int _tls_inc; -#define _REENT_INC(_ptr) (_tls_inc) -extern _Thread_local char _tls_l64a_buf[8]; -#define _REENT_L64A_BUF(_ptr) (_tls_l64a_buf) -extern _Thread_local struct __locale_t *_tls_locale; -#define _REENT_LOCALE(_ptr) (_tls_locale) -extern _Thread_local _mbstate_t _tls_mblen_state; -#define _REENT_MBLEN_STATE(_ptr) (_tls_mblen_state) -extern _Thread_local _mbstate_t _tls_mbrlen_state; -#define _REENT_MBRLEN_STATE(_ptr) (_tls_mbrlen_state) -extern _Thread_local _mbstate_t _tls_mbrtowc_state; -#define _REENT_MBRTOWC_STATE(_ptr) (_tls_mbrtowc_state) -extern _Thread_local _mbstate_t _tls_mbsrtowcs_state; -#define _REENT_MBSRTOWCS_STATE(_ptr) (_tls_mbsrtowcs_state) -extern _Thread_local _mbstate_t _tls_mbtowc_state; -#define _REENT_MBTOWC_STATE(_ptr) (_tls_mbtowc_state) -extern _Thread_local struct _Bigint **_tls_mp_freelist; -#define _REENT_MP_FREELIST(_ptr) (_tls_mp_freelist) -extern _Thread_local struct _Bigint *_tls_mp_p5s; -#define _REENT_MP_P5S(_ptr) (_tls_mp_p5s) -extern _Thread_local struct _Bigint *_tls_mp_result; -#define _REENT_MP_RESULT(_ptr) (_tls_mp_result) -extern _Thread_local int _tls_mp_result_k; -#define _REENT_MP_RESULT_K(_ptr) (_tls_mp_result_k) -extern _Thread_local unsigned short _tls_rand48_add; -#define _REENT_RAND48_ADD(_ptr) (_tls_rand48_add) -extern _Thread_local unsigned short _tls_rand48_mult[3]; -#define _REENT_RAND48_MULT(_ptr) (_tls_rand48_mult) -extern _Thread_local unsigned short _tls_rand48_seed[3]; -#define _REENT_RAND48_SEED(_ptr) (_tls_rand48_seed) -extern _Thread_local unsigned long long _tls_rand_next; -#define _REENT_RAND_NEXT(_ptr) (_tls_rand_next) -extern _Thread_local void (**_tls_sig_func)(int); -#define _REENT_SIG_FUNC(_ptr) (_tls_sig_func) -extern _Thread_local char _tls_signal_buf[_REENT_SIGNAL_SIZE]; -#define _REENT_SIGNAL_BUF(_ptr) (_tls_signal_buf) -extern _Thread_local int _tls_gamma_signgam; -#define _REENT_SIGNGAM(_ptr) (_tls_gamma_signgam) -extern _Thread_local __FILE *_tls_stdin; -#define _REENT_STDIN(_ptr) (_tls_stdin) -extern _Thread_local __FILE *_tls_stdout; -#define _REENT_STDOUT(_ptr) (_tls_stdout) -extern _Thread_local __FILE *_tls_stderr; -#define _REENT_STDERR(_ptr) (_tls_stderr) -extern _Thread_local char *_tls_strtok_last; -#define _REENT_STRTOK_LAST(_ptr) (_tls_strtok_last) -extern _Thread_local struct __tm _tls_localtime_buf; -#define _REENT_TM(_ptr) (&_tls_localtime_buf) -extern _Thread_local _mbstate_t _tls_wctomb_state; -#define _REENT_WCTOMB_STATE(_ptr) (_tls_wctomb_state) -extern _Thread_local _mbstate_t _tls_wcrtomb_state; -#define _REENT_WCRTOMB_STATE(_ptr) (_tls_wcrtomb_state) -extern _Thread_local _mbstate_t _tls_wcsrtombs_state; -#define _REENT_WCSRTOMBS_STATE(_ptr) (_tls_wcsrtombs_state) - -#endif /* !_REENT_THREAD_LOCAL */ - -/* This value is used in stdlib/misc.c. reent/reent.c has to know it - as well to make sure the freelist is correctly free'd. Therefore - we define it here, rather than in stdlib/misc.c, as before. */ -#define _Kmax (sizeof (size_t) << 3) - -extern struct _atexit *__atexit; /* points to head of LIFO stack */ -extern struct _atexit __atexit0; /* one guaranteed table, required by ANSI */ - -extern void (*__stdio_exit_handler) (void); - -void _reclaim_reent (struct _reent *); - -extern int _fwalk_sglue (struct _reent *, int (*)(struct _reent *, __FILE *), - struct _glue *); - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_REENT_H_ */ diff --git a/include/sys/resource.h b/include/sys/resource.h deleted file mode 100644 index c0a0d20..0000000 --- a/include/sys/resource.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _SYS_RESOURCE_H_ -#define _SYS_RESOURCE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#define RUSAGE_SELF 0 /* calling process */ -#define RUSAGE_CHILDREN -1 /* terminated child processes */ - -struct rusage { - struct timeval ru_utime; /* user time used */ - struct timeval ru_stime; /* system time used */ -}; - -int getrusage (int, struct rusage*); - -#ifdef __cplusplus -} -#endif -#endif /* !_SYS_RESOURCE_H_ */ - diff --git a/include/sys/sched.h b/include/sys/sched.h deleted file mode 100644 index 4adb6e2..0000000 --- a/include/sys/sched.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2010. - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - * $Id$ - */ - - -#ifndef _SYS_SCHED_H_ -#define _SYS_SCHED_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Scheduling Policies */ -/* Open Group Specifications Issue 6 */ -#if defined(__CYGWIN__) -#define SCHED_OTHER 3 -#else -#define SCHED_OTHER 0 -#endif - -#define SCHED_FIFO 1 -#define SCHED_RR 2 - -#if defined(_POSIX_SPORADIC_SERVER) -#define SCHED_SPORADIC 4 -#endif - -/* Scheduling Parameters */ -/* Open Group Specifications Issue 6 */ - -struct sched_param { - int sched_priority; /* Process execution scheduling priority */ - -#if defined(_POSIX_SPORADIC_SERVER) || defined(_POSIX_THREAD_SPORADIC_SERVER) - int sched_ss_low_priority; /* Low scheduling priority for sporadic */ - /* server */ - struct timespec sched_ss_repl_period; - /* Replenishment period for sporadic server */ - struct timespec sched_ss_init_budget; - /* Initial budget for sporadic server */ - int sched_ss_max_repl; /* Maximum pending replenishments for */ - /* sporadic server */ -#endif -}; - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ - diff --git a/include/sys/select.h b/include/sys/select.h deleted file mode 100644 index 93d0b79..0000000 --- a/include/sys/select.h +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef _SYS_SELECT_H -#define _SYS_SELECT_H - -/* We don't define fd_set and friends if we are compiling POSIX - source, or if we have included (or may include as indicated - by __USE_W32_SOCKETS) the W32api winsock[2].h header which - defines Windows versions of them. Note that a program which - includes the W32api winsock[2].h header must know what it is doing; - it must not call the Cygwin select function. -*/ -# if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) - -#include -#include -#include -#include - -#if !defined(_SIGSET_T_DECLARED) -#define _SIGSET_T_DECLARED -typedef __sigset_t sigset_t; -#endif - -# define _SYS_TYPES_FD_SET -/* - * Select uses bit masks of file descriptors in longs. - * These macros manipulate such bit fields (the filesystem macros use chars). - * FD_SETSIZE may be defined by the user, but the default here - * should be enough for most uses. - */ -#ifndef FD_SETSIZE -# ifdef __CYGWIN__ -# define FD_SETSIZE 1024 -# else -# define FD_SETSIZE 64 -# endif -#endif - -typedef unsigned long __fd_mask; -#if __BSD_VISIBLE -typedef __fd_mask fd_mask; -#endif - -#define _NFDBITS ((int)sizeof(__fd_mask) * 8) /* bits per mask */ -#if __BSD_VISIBLE -#define NFDBITS _NFDBITS -#endif - -#ifndef _howmany -#define _howmany(x,y) (((x) + ((y) - 1)) / (y)) -#endif - -typedef struct fd_set { - __fd_mask __fds_bits[_howmany(FD_SETSIZE, _NFDBITS)]; -} fd_set; -#if __BSD_VISIBLE -#define fds_bits __fds_bits -#endif - -#define __fdset_mask(n) ((__fd_mask)1 << ((n) % _NFDBITS)) -#define FD_CLR(n, p) ((p)->__fds_bits[(n)/_NFDBITS] &= ~__fdset_mask(n)) -#if __BSD_VISIBLE -#define FD_COPY(f, t) (void)(*(t) = *(f)) -#endif -#define FD_ISSET(n, p) (((p)->__fds_bits[(n)/_NFDBITS] & __fdset_mask(n)) != 0) -#define FD_SET(n, p) ((p)->__fds_bits[(n)/_NFDBITS] |= __fdset_mask(n)) -#define FD_ZERO(p) do { \ - fd_set *_p; \ - __size_t _n; \ - \ - _p = (p); \ - _n = _howmany(FD_SETSIZE, _NFDBITS); \ - while (_n > 0) \ - _p->__fds_bits[--_n] = 0; \ -} while (0) - -#if !defined (__INSIDE_CYGWIN_NET__) - -__BEGIN_DECLS - -int select __P ((int __n, fd_set *__readfds, fd_set *__writefds, - fd_set *__exceptfds, struct timeval *__timeout)); -#if __POSIX_VISIBLE >= 200112 -int pselect __P ((int __n, fd_set *__readfds, fd_set *__writefds, - fd_set *__exceptfds, const struct timespec *__timeout, - const sigset_t *__set)); -#endif - -__END_DECLS - -#endif /* !__INSIDE_CYGWIN_NET__ */ - -#endif /* !(_WINSOCK_H || _WINSOCKAPI_ || __USE_W32_SOCKETS) */ - -#endif /* sys/select.h */ diff --git a/include/sys/signal.h b/include/sys/signal.h deleted file mode 100644 index 8dc5fb9..0000000 --- a/include/sys/signal.h +++ /dev/null @@ -1,388 +0,0 @@ -/* sys/signal.h */ - -#ifndef _SYS_SIGNAL_H -#define _SYS_SIGNAL_H -#ifdef __cplusplus -extern "C" { -#endif - -#include "_ansi.h" -#include -#include -#include -#include -#include -#include - -#if !defined(_SIGSET_T_DECLARED) -#define _SIGSET_T_DECLARED -typedef __sigset_t sigset_t; -#endif - -#if defined(__CYGWIN__) -#include -#else - -#if defined(_POSIX_REALTIME_SIGNALS) || __POSIX_VISIBLE >= 199309 - -/* sigev_notify values - NOTE: P1003.1c/D10, p. 34 adds SIGEV_THREAD. */ - -#define SIGEV_NONE 1 /* No asynchronous notification shall be delivered */ - /* when the event of interest occurs. */ -#define SIGEV_SIGNAL 2 /* A queued signal, with an application defined */ - /* value, shall be delivered when the event of */ - /* interest occurs. */ -#define SIGEV_THREAD 3 /* A notification function shall be called to */ - /* perform notification. */ - -/* Signal Generation and Delivery, P1003.1b-1993, p. 63 - NOTE: P1003.1c/D10, p. 34 adds sigev_notify_function and - sigev_notify_attributes to the sigevent structure. */ - -union sigval { - int sival_int; /* Integer signal value */ - void *sival_ptr; /* Pointer signal value */ -}; - -struct sigevent { - int sigev_notify; /* Notification type */ - int sigev_signo; /* Signal number */ - union sigval sigev_value; /* Signal value */ - -#if defined(_POSIX_THREADS) - void (*sigev_notify_function)( union sigval ); - /* Notification function */ - pthread_attr_t *sigev_notify_attributes; /* Notification Attributes */ -#endif -}; - -/* Signal Actions, P1003.1b-1993, p. 64 */ -/* si_code values, p. 66 */ - -#define SI_USER 1 /* Sent by a user. kill(), abort(), etc */ -#define SI_QUEUE 2 /* Sent by sigqueue() */ -#define SI_TIMER 3 /* Sent by expiration of a timer_settime() timer */ -#define SI_ASYNCIO 4 /* Indicates completion of asycnhronous IO */ -#define SI_MESGQ 5 /* Indicates arrival of a message at an empty queue */ - -typedef struct { - int si_signo; /* Signal number */ - int si_code; /* Cause of the signal */ - union sigval si_value; /* Signal value */ -} siginfo_t; -#endif /* defined(_POSIX_REALTIME_SIGNALS) || __POSIX_VISIBLE >= 199309 */ - -#if defined(__rtems__) - -/* 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 */ - -#define SA_NOCLDSTOP 0x1 /* Do not generate SIGCHLD when children stop */ -#define SA_SIGINFO 0x2 /* Invoke the signal catching function with */ - /* three arguments instead of one. */ -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -#define SA_ONSTACK 0x4 /* Signal delivery will be on a separate stack. */ -#endif - -/* struct sigaction notes from POSIX: - * - * (1) Routines stored in sa_handler should take a single int as - * their argument although the POSIX standard does not require this. - * This is not longer true since at least POSIX.1-2008 - * (2) The fields sa_handler and sa_sigaction may overlap, and a conforming - * application should not use both simultaneously. - */ - -typedef void (*_sig_func_ptr)(int); - -struct sigaction { - int sa_flags; /* Special flags to affect behavior of signal */ - sigset_t sa_mask; /* Additional set of signals to be blocked */ - /* during execution of signal-catching */ - /* function. */ - union { - _sig_func_ptr _handler; /* SIG_DFL, SIG_IGN, or pointer to a function */ -#if defined(_POSIX_REALTIME_SIGNALS) - void (*_sigaction)( int, siginfo_t *, void * ); -#endif - } _signal_handlers; -}; - -#define sa_handler _signal_handlers._handler -#if defined(_POSIX_REALTIME_SIGNALS) -#define sa_sigaction _signal_handlers._sigaction -#endif - -#else /* defined(__rtems__) */ - -#define SA_NOCLDSTOP 1 /* only value supported now for sa_flags */ - -typedef void (*_sig_func_ptr)(int); - -struct sigaction -{ - _sig_func_ptr sa_handler; - sigset_t sa_mask; - int sa_flags; -}; -#endif /* defined(__rtems__) */ -#endif /* defined(__CYGWIN__) */ - -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -/* - * Minimum and default signal stack constants. Allow for target overrides - * from . - */ -#ifndef MINSIGSTKSZ -#define MINSIGSTKSZ 2048 -#endif -#ifndef SIGSTKSZ -#define SIGSTKSZ 8192 -#endif - -/* - * Possible values for ss_flags in stack_t below. - */ -#define SS_ONSTACK 0x1 -#define SS_DISABLE 0x2 - -#endif - -/* - * Structure used in sigaltstack call. - */ -typedef struct sigaltstack { - void *ss_sp; /* Stack base or pointer. */ - int ss_flags; /* Flags. */ - size_t ss_size; /* Stack size. */ -} stack_t; - -#if __POSIX_VISIBLE -#define SIG_SETMASK 0 /* set mask with sigprocmask() */ -#define SIG_BLOCK 1 /* set of signals to block */ -#define SIG_UNBLOCK 2 /* set of signals to, well, unblock */ - -int sigprocmask (int, const sigset_t *, sigset_t *); -#endif - -#if __POSIX_VISIBLE >= 199506 -int pthread_sigmask (int, const sigset_t *, sigset_t *); -#endif - -#ifdef _LIBC -int _kill (pid_t, int); -#endif /* _LIBC */ - -#if __POSIX_VISIBLE -int kill (pid_t, int); -#endif - -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 -int killpg (pid_t, int); -#endif -#if __POSIX_VISIBLE -int sigaction (int, const struct sigaction *, struct sigaction *); -int sigaddset (sigset_t *, const int); -int sigdelset (sigset_t *, const int); -int sigismember (const sigset_t *, int); -int sigfillset (sigset_t *); -int sigemptyset (sigset_t *); -int sigpending (sigset_t *); -int sigsuspend (const sigset_t *); -int sigwait (const sigset_t *, int *); - -#if !defined(__CYGWIN__) && !defined(__rtems__) -/* These depend upon the type of sigset_t, which right now - is always a long.. They're in the POSIX namespace, but - are not ANSI. */ -#define sigaddset(what,sig) (*(what) |= (1<<(sig)), 0) -#define sigdelset(what,sig) (*(what) &= ~(1<<(sig)), 0) -#define sigemptyset(what) (*(what) = 0, 0) -#define sigfillset(what) (*(what) = ~(0), 0) -#define sigismember(what,sig) (((*(what)) & (1<<(sig))) != 0) -#endif /* !__CYGWIN__ && !__rtems__ */ -#endif /* __POSIX_VISIBLE */ - -/* There are two common sigpause variants, both of which take an int argument. - If you request _XOPEN_SOURCE or _GNU_SOURCE, you get the System V version, - which removes the given signal from the process's signal mask; otherwise - you get the BSD version, which sets the process's signal mask to the given - value. */ -#if __XSI_VISIBLE && !defined(__INSIDE_CYGWIN__) -# ifdef __GNUC__ -int sigpause (int) __asm__ (__ASMNAME ("__xpg_sigpause")); -# else -int __xpg_sigpause (int); -# define sigpause __xpg_sigpause -# endif -#elif __BSD_VISIBLE -int sigpause (int); -#endif - -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -int sigaltstack (const stack_t *__restrict, stack_t *__restrict); -#endif - -#if __POSIX_VISIBLE >= 199506 -int pthread_kill (pthread_t, int); -#endif - -#if __POSIX_VISIBLE >= 199309 - -/* 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 - NOTE: P1003.1c/D10, p. 39 adds sigwait(). */ - -int sigwaitinfo (const sigset_t *, siginfo_t *); -int sigtimedwait (const sigset_t *, siginfo_t *, const struct timespec *); -/* 3.3.9 Queue a Signal to a Process, P1003.1b-1993, p. 78 */ -int sigqueue (pid_t, int, const union sigval); - -#endif /* __POSIX_VISIBLE >= 199309 */ - -/* Using __MISC_VISIBLE until POSIX Issue 8 is officially released */ -#if __MISC_VISIBLE - -/* POSIX Issue 8 adds sig2str() and str2sig() */ - -#if __SIZEOF_INT__ >= 4 -#define SIG2STR_MAX (sizeof("RTMAX+") + sizeof("4294967295") - 1) -#else -#define SIG2STR_MAX (sizeof("RTMAX+") + sizeof("65535") - 1) -#endif - -int sig2str(int, char *); -int str2sig(const char *__restrict, int *__restrict); - -#endif /* __MISC_VISIBLE */ - -#if defined(___AM29K__) -/* These all need to be defined for ANSI C, but I don't think they are - meaningful. */ -#define SIGABRT 1 -#define SIGFPE 1 -#define SIGILL 1 -#define SIGINT 1 -#define SIGSEGV 1 -#define SIGTERM 1 -/* These need to be defined for POSIX, and some others do too. */ -#define SIGHUP 1 -#define SIGQUIT 1 -#define NSIG 2 -#elif defined(__GO32__) -#define SIGINT 1 -#define SIGKILL 2 -#define SIGPIPE 3 -#define SIGFPE 4 -#define SIGHUP 5 -#define SIGTERM 6 -#define SIGSEGV 7 -#define SIGTSTP 8 -#define SIGQUIT 9 -#define SIGTRAP 10 -#define SIGILL 11 -#define SIGEMT 12 -#define SIGALRM 13 -#define SIGBUS 14 -#define SIGLOST 15 -#define SIGSTOP 16 -#define SIGABRT 17 -#define SIGUSR1 18 -#define SIGUSR2 19 -#define NSIG 20 -#elif !defined(SIGTRAP) -#define SIGHUP 1 /* hangup */ -#define SIGINT 2 /* interrupt */ -#define SIGQUIT 3 /* quit */ -#define SIGILL 4 /* illegal instruction (not reset when caught) */ -#define SIGTRAP 5 /* trace trap (not reset when caught) */ -#define SIGIOT 6 /* IOT instruction */ -#define SIGABRT 6 /* used by abort, replace SIGIOT in the future */ -#define SIGEMT 7 /* EMT instruction */ -#define SIGFPE 8 /* floating point exception */ -#define SIGKILL 9 /* kill (cannot be caught or ignored) */ -#define SIGBUS 10 /* bus error */ -#define SIGSEGV 11 /* segmentation violation */ -#define SIGSYS 12 /* bad argument to system call */ -#define SIGPIPE 13 /* write on a pipe with no one to read it */ -#define SIGALRM 14 /* alarm clock */ -#define SIGTERM 15 /* software termination signal from kill */ - -#if defined(__rtems__) -#define SIGURG 16 /* urgent condition on IO channel */ -#define SIGSTOP 17 /* sendable stop signal not from tty */ -#define SIGTSTP 18 /* stop signal from tty */ -#define SIGCONT 19 /* continue a stopped process */ -#define SIGCHLD 20 /* to parent on child stop or exit */ -#define SIGCLD 20 /* System V name for SIGCHLD */ -#define SIGTTIN 21 /* to readers pgrp upon background tty read */ -#define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */ -#define SIGIO 23 /* input/output possible signal */ -#define SIGPOLL SIGIO /* System V name for SIGIO */ -#define SIGWINCH 24 /* window changed */ -#define SIGUSR1 25 /* user defined signal 1 */ -#define SIGUSR2 26 /* user defined signal 2 */ - -/* Real-Time Signals Range, P1003.1b-1993, p. 61 - NOTE: By P1003.1b-1993, this should be at least RTSIG_MAX - (which is a minimum of 8) signals. - */ -#define SIGRTMIN 27 -#define SIGRTMAX 31 -#define __SIGFIRSTNOTRT SIGHUP -#define __SIGLASTNOTRT SIGUSR2 - -#define NSIG 32 /* signal 0 implied */ - -#elif defined(__svr4__) -/* svr4 specifics. different signals above 15, and sigaction. */ -#define SIGUSR1 16 -#define SIGUSR2 17 -#define SIGCLD 18 -#define SIGPWR 19 -#define SIGWINCH 20 -#define SIGPOLL 22 /* 20 for x.out binaries!!!! */ -#define SIGSTOP 23 /* sendable stop signal not from tty */ -#define SIGTSTP 24 /* stop signal from tty */ -#define SIGCONT 25 /* continue a stopped process */ -#define SIGTTIN 26 /* to readers pgrp upon background tty read */ -#define SIGTTOU 27 /* like TTIN for output if (tp->t_local<OSTOP) */ -#define NSIG 28 -#else -#define SIGURG 16 /* urgent condition on IO channel */ -#define SIGSTOP 17 /* sendable stop signal not from tty */ -#define SIGTSTP 18 /* stop signal from tty */ -#define SIGCONT 19 /* continue a stopped process */ -#define SIGCHLD 20 /* to parent on child stop or exit */ -#define SIGCLD 20 /* System V name for SIGCHLD */ -#define SIGTTIN 21 /* to readers pgrp upon background tty read */ -#define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */ -#define SIGIO 23 /* input/output possible signal */ -#define SIGPOLL SIGIO /* System V name for SIGIO */ -#define SIGXCPU 24 /* exceeded CPU time limit */ -#define SIGXFSZ 25 /* exceeded file size limit */ -#define SIGVTALRM 26 /* virtual time alarm */ -#define SIGPROF 27 /* profiling time alarm */ -#define SIGWINCH 28 /* window changed */ -#define SIGLOST 29 /* resource lost (eg, record-lock lost) */ -#define SIGUSR1 30 /* user defined signal 1 */ -#define SIGUSR2 31 /* user defined signal 2 */ -#define NSIG 32 /* signal 0 implied */ -#endif -#endif - -#ifdef __cplusplus -} -#endif - -#if defined(__CYGWIN__) -#if __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -#include -#endif -#endif - -#ifndef _SIGNAL_H_ -/* Some applications take advantage of the fact that - * and are equivalent in glibc. Allow for that here. */ -#include -#endif -#endif /* _SYS_SIGNAL_H */ diff --git a/include/sys/stat.h b/include/sys/stat.h deleted file mode 100644 index 98f5add..0000000 --- a/include/sys/stat.h +++ /dev/null @@ -1,179 +0,0 @@ -#ifndef _SYS_STAT_H -#define _SYS_STAT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <_ansi.h> -#include -#include -#include -#include - -/* dj's stat defines _STAT_H_ */ -#ifndef _STAT_H_ - -/* It is intended that the layout of this structure not change when the - sizes of any of the basic types change (short, int, long) [via a compile - time option]. */ - -#ifdef __CYGWIN__ -#include -#ifdef _LIBC -#define stat64 stat -#endif -#else -struct stat -{ - dev_t st_dev; - ino_t st_ino; - mode_t st_mode; - nlink_t st_nlink; - uid_t st_uid; - gid_t st_gid; - dev_t st_rdev; - off_t st_size; -#if defined(__svr4__) && !defined(__PPC__) && !defined(__sun__) - time_t st_atime; - time_t st_mtime; - time_t st_ctime; -#else - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; - blksize_t st_blksize; - blkcnt_t st_blocks; -#if !defined(__rtems__) - long st_spare4[2]; -#endif -#endif -}; - -#if !(defined(__svr4__) && !defined(__PPC__) && !defined(__sun__)) -#define st_atime st_atim.tv_sec -#define st_ctime st_ctim.tv_sec -#define st_mtime st_mtim.tv_sec -#endif - -#endif - -#define _IFMT 0170000 /* type of file */ -#define _IFDIR 0040000 /* directory */ -#define _IFCHR 0020000 /* character special */ -#define _IFBLK 0060000 /* block special */ -#define _IFREG 0100000 /* regular */ -#define _IFLNK 0120000 /* symbolic link */ -#define _IFSOCK 0140000 /* socket */ -#define _IFIFO 0010000 /* fifo */ - -#define S_BLKSIZE 1024 /* size of a block */ - -#define S_ISUID 0004000 /* set user id on execution */ -#define S_ISGID 0002000 /* set group id on execution */ -#define S_ISVTX 0001000 /* save swapped text even after use */ -#if __BSD_VISIBLE -#define S_IREAD 0000400 /* read permission, owner */ -#define S_IWRITE 0000200 /* write permission, owner */ -#define S_IEXEC 0000100 /* execute/search permission, owner */ -#define S_ENFMT 0002000 /* enforcement-mode locking */ -#endif /* !_BSD_VISIBLE */ - -#define S_IFMT _IFMT -#define S_IFDIR _IFDIR -#define S_IFCHR _IFCHR -#define S_IFBLK _IFBLK -#define S_IFREG _IFREG -#define S_IFLNK _IFLNK -#define S_IFSOCK _IFSOCK -#define S_IFIFO _IFIFO - -#ifdef _WIN32 -/* The Windows header files define _S_ forms of these, so we do too - for easier portability. */ -#define _S_IFMT _IFMT -#define _S_IFDIR _IFDIR -#define _S_IFCHR _IFCHR -#define _S_IFIFO _IFIFO -#define _S_IFREG _IFREG -#define _S_IREAD 0000400 -#define _S_IWRITE 0000200 -#define _S_IEXEC 0000100 -#endif - -#define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) -#define S_IRUSR 0000400 /* read permission, owner */ -#define S_IWUSR 0000200 /* write permission, owner */ -#define S_IXUSR 0000100/* execute/search permission, owner */ -#define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) -#define S_IRGRP 0000040 /* read permission, group */ -#define S_IWGRP 0000020 /* write permission, grougroup */ -#define S_IXGRP 0000010/* execute/search permission, group */ -#define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) -#define S_IROTH 0000004 /* read permission, other */ -#define S_IWOTH 0000002 /* write permission, other */ -#define S_IXOTH 0000001/* execute/search permission, other */ - -#if __BSD_VISIBLE -#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) /* 0777 */ -#define ALLPERMS (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO) /* 07777 */ -#define DEFFILEMODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) /* 0666 */ -#endif - -#define S_ISBLK(m) (((m)&_IFMT) == _IFBLK) -#define S_ISCHR(m) (((m)&_IFMT) == _IFCHR) -#define S_ISDIR(m) (((m)&_IFMT) == _IFDIR) -#define S_ISFIFO(m) (((m)&_IFMT) == _IFIFO) -#define S_ISREG(m) (((m)&_IFMT) == _IFREG) -#define S_ISLNK(m) (((m)&_IFMT) == _IFLNK) -#define S_ISSOCK(m) (((m)&_IFMT) == _IFSOCK) - -#if defined(__CYGWIN__) || defined(__rtems__) -/* Special tv_nsec values for futimens(2) and utimensat(2). */ -#define UTIME_NOW -2L -#define UTIME_OMIT -1L -#endif - -int chmod (const char *__path, mode_t __mode ); -int fchmod (int __fd, mode_t __mode); -int fstat (int __fd, struct stat *__sbuf ); -int mkdir (const char *_path, mode_t __mode ); -int mkfifo (const char *__path, mode_t __mode ); -int stat (const char *__restrict __path, struct stat *__restrict __sbuf ); -mode_t umask (mode_t __mask ); - -#if defined (__SPU__) || defined(__rtems__) || defined(__CYGWIN__) -int lstat (const char *__restrict __path, struct stat *__restrict __buf ); -int mknod (const char *__path, mode_t __mode, dev_t __dev ); -#endif - -#if __ATFILE_VISIBLE && !defined(__INSIDE_CYGWIN__) -int fchmodat (int, const char *, mode_t, int); -int fstatat (int, const char *__restrict , struct stat *__restrict, int); -int mkdirat (int, const char *, mode_t); -int mkfifoat (int, const char *, mode_t); -int mknodat (int, const char *, mode_t, dev_t); -int utimensat (int, const char *, const struct timespec [2], int); -#endif -#if __POSIX_VISIBLE >= 200809 && !defined(__INSIDE_CYGWIN__) -int futimens (int, const struct timespec [2]); -#endif - -/* Provide prototypes for most of the _ names that are - provided in newlib for some compilers. */ -#ifdef _LIBC -int _fstat (int __fd, struct stat *__sbuf ); -int _stat (const char *__restrict __path, struct stat *__restrict __sbuf ); -int _mkdir (const char *_path, mode_t __mode ); -#ifdef __LARGE64_FILES -struct stat64; -int _stat64 (const char *__restrict __path, struct stat64 *__restrict __sbuf ); -int _fstat64 (int __fd, struct stat64 *__sbuf ); -#endif -#endif - -#endif /* !_STAT_H_ */ -#ifdef __cplusplus -} -#endif -#endif /* _SYS_STAT_H */ diff --git a/include/sys/stdio.h b/include/sys/stdio.h deleted file mode 100644 index 91a2745..0000000 --- a/include/sys/stdio.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef _NEWLIB_STDIO_H -#define _NEWLIB_STDIO_H - -#include -#include - -/* Internal locking macros, used to protect stdio functions. In the - general case, expand to nothing. Use __SSTR flag in FILE _flags to - detect if FILE is private to sprintf/sscanf class of functions; if - set then do nothing as lock is not initialised. */ -#if !defined(_flockfile) -#ifndef __SINGLE_THREAD__ -# define _flockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_acquire_recursive((fp)->_lock)) -#else -# define _flockfile(fp) ((void) 0) -#endif -#endif - -#if !defined(_funlockfile) -#ifndef __SINGLE_THREAD__ -# define _funlockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_release_recursive((fp)->_lock)) -#else -# define _funlockfile(fp) ((void) 0) -#endif -#endif - -#endif /* _NEWLIB_STDIO_H */ diff --git a/include/sys/string.h b/include/sys/string.h deleted file mode 100644 index ceedf4b..0000000 --- a/include/sys/string.h +++ /dev/null @@ -1,2 +0,0 @@ -/* This is a dummy used as a placeholder for - systems that need to have a special header file. */ diff --git a/include/sys/syslimits.h b/include/sys/syslimits.h deleted file mode 100644 index c872d20..0000000 --- a/include/sys/syslimits.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 1988, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)syslimits.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/sys/sys/syslimits.h,v 1.10 2001/06/18 20:24:54 wollman Exp $ - */ - -#ifndef _SYS_SYSLIMITS_H_ -#define _SYS_SYSLIMITS_H_ - -#define ARG_MAX 65536 /* max bytes for an exec function */ -#ifndef CHILD_MAX -#define CHILD_MAX 40 /* max simultaneous processes */ -#endif -#define LINK_MAX 32767 /* max file link count */ -#define MAX_CANON 255 /* max bytes in term canon input line */ -#define MAX_INPUT 255 /* max bytes in terminal input */ -#define NAME_MAX 255 /* max bytes in a file name */ -#define NGROUPS_MAX 16 /* max supplemental group id's */ -#ifndef OPEN_MAX -#define OPEN_MAX 64 /* max open files per process */ -#endif -#define PATH_MAX 1024 /* max bytes in pathname */ -#define PIPE_BUF 512 /* max bytes for atomic pipe writes */ -#define IOV_MAX 1024 /* max elements in i/o vector */ - -#define BC_BASE_MAX 99 /* max ibase/obase values in bc(1) */ -#define BC_DIM_MAX 2048 /* max array elements in bc(1) */ -#define BC_SCALE_MAX 99 /* max scale value in bc(1) */ -#define BC_STRING_MAX 1000 /* max const string length in bc(1) */ -#define COLL_WEIGHTS_MAX 0 /* max weights for order keyword */ -#define EXPR_NEST_MAX 32 /* max expressions nested in expr(1) */ -#define LINE_MAX 2048 /* max bytes in an input line */ -#define RE_DUP_MAX 255 /* max RE's in interval notation */ - -#endif diff --git a/include/sys/time.h b/include/sys/time.h deleted file mode 100644 index 5a3dec7..0000000 --- a/include/sys/time.h +++ /dev/null @@ -1,448 +0,0 @@ -/* time.h -- An implementation of the standard Unix file. - Written by Geoffrey Noer - Public domain; no rights reserved. */ - -/*- - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)time.h 8.5 (Berkeley) 5/4/95 - * $FreeBSD: head/sys/sys/time.h 346176 2019-04-13 04:46:35Z imp $ - */ - -#ifndef _SYS_TIME_H_ -#define _SYS_TIME_H_ - -#include <_ansi.h> -#include -#include -#include -#include - -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE -#include -#endif - -struct timezone { - int tz_minuteswest; /* minutes west of Greenwich */ - int tz_dsttime; /* type of dst correction */ -}; -#define DST_NONE 0 /* not on dst */ -#define DST_USA 1 /* USA style dst */ -#define DST_AUST 2 /* Australian style dst */ -#define DST_WET 3 /* Western European dst */ -#define DST_MET 4 /* Middle European dst */ -#define DST_EET 5 /* Eastern European dst */ -#define DST_CAN 6 /* Canada */ - -#if __BSD_VISIBLE -struct bintime { - time_t sec; - uint64_t frac; -}; - -static __inline void -bintime_addx(struct bintime *_bt, uint64_t _x) -{ - uint64_t _u; - - _u = _bt->frac; - _bt->frac += _x; - if (_u > _bt->frac) - _bt->sec++; -} - -static __inline void -bintime_add(struct bintime *_bt, const struct bintime *_bt2) -{ - uint64_t _u; - - _u = _bt->frac; - _bt->frac += _bt2->frac; - if (_u > _bt->frac) - _bt->sec++; - _bt->sec += _bt2->sec; -} - -static __inline void -bintime_sub(struct bintime *_bt, const struct bintime *_bt2) -{ - uint64_t _u; - - _u = _bt->frac; - _bt->frac -= _bt2->frac; - if (_u < _bt->frac) - _bt->sec--; - _bt->sec -= _bt2->sec; -} - -static __inline void -bintime_mul(struct bintime *_bt, u_int _x) -{ - uint64_t _p1, _p2; - - _p1 = (_bt->frac & 0xffffffffull) * _x; - _p2 = (_bt->frac >> 32) * _x + (_p1 >> 32); - _bt->sec *= _x; - _bt->sec += (_p2 >> 32); - _bt->frac = (_p2 << 32) | (_p1 & 0xffffffffull); -} - -static __inline void -bintime_shift(struct bintime *_bt, int _exp) -{ - - if (_exp > 0) { - _bt->sec <<= _exp; - _bt->sec |= _bt->frac >> (64 - _exp); - _bt->frac <<= _exp; - } else if (_exp < 0) { - _bt->frac >>= -_exp; - _bt->frac |= (uint64_t)_bt->sec << (64 + _exp); - _bt->sec >>= -_exp; - } -} - -#define bintime_clear(a) ((a)->sec = (a)->frac = 0) -#define bintime_isset(a) ((a)->sec || (a)->frac) -#define bintime_cmp(a, b, cmp) \ - (((a)->sec == (b)->sec) ? \ - ((a)->frac cmp (b)->frac) : \ - ((a)->sec cmp (b)->sec)) - -#define SBT_1S ((sbintime_t)1 << 32) -#define SBT_1M (SBT_1S * 60) -#define SBT_1MS (SBT_1S / 1000) -#define SBT_1US (SBT_1S / 1000000) -#define SBT_1NS (SBT_1S / 1000000000) /* beware rounding, see nstosbt() */ -#define SBT_MAX 0x7fffffffffffffffLL - -static __inline int -sbintime_getsec(sbintime_t _sbt) -{ - - return (_sbt >> 32); -} - -static __inline sbintime_t -bttosbt(const struct bintime _bt) -{ - - return (((sbintime_t)_bt.sec << 32) + (_bt.frac >> 32)); -} - -static __inline struct bintime -sbttobt(sbintime_t _sbt) -{ - struct bintime _bt; - - _bt.sec = _sbt >> 32; - _bt.frac = _sbt << 32; - return (_bt); -} - -/* - * Decimal<->sbt conversions. Multiplying or dividing by SBT_1NS results in - * large roundoff errors which sbttons() and nstosbt() avoid. Millisecond and - * microsecond functions are also provided for completeness. - * - * These functions return the smallest sbt larger or equal to the - * number of seconds requested so that sbttoX(Xtosbt(y)) == y. Unlike - * top of second computations below, which require that we tick at the - * top of second, these need to be rounded up so we do whatever for at - * least as long as requested. - * - * The naive computation we'd do is this - * ((unit * 2^64 / SIFACTOR) + 2^32-1) >> 32 - * However, that overflows. Instead, we compute - * ((unit * 2^63 / SIFACTOR) + 2^31-1) >> 32 - * and use pre-computed constants that are the ceil of the 2^63 / SIFACTOR - * term to ensure we are using exactly the right constant. We use the lesser - * evil of ull rather than a uint64_t cast to ensure we have well defined - * right shift semantics. With these changes, we get all the ns, us and ms - * conversions back and forth right. - */ -static __inline int64_t -sbttons(sbintime_t _sbt) -{ - uint64_t ns; - - ns = _sbt; - if (ns >= SBT_1S) - ns = (ns >> 32) * 1000000000; - else - ns = 0; - - return (ns + (1000000000 * (_sbt & 0xffffffffu) >> 32)); -} - -static __inline sbintime_t -nstosbt(int64_t _ns) -{ - sbintime_t sb = 0; - - if (_ns >= SBT_1S) { - sb = (_ns / 1000000000) * SBT_1S; - _ns = _ns % 1000000000; - } - /* 9223372037 = ceil(2^63 / 1000000000) */ - sb += ((_ns * 9223372037ull) + 0x7fffffff) >> 31; - return (sb); -} - -static __inline int64_t -sbttous(sbintime_t _sbt) -{ - - return ((1000000 * _sbt) >> 32); -} - -static __inline sbintime_t -ustosbt(int64_t _us) -{ - sbintime_t sb = 0; - - if (_us >= SBT_1S) { - sb = (_us / 1000000) * SBT_1S; - _us = _us % 1000000; - } - /* 9223372036855 = ceil(2^63 / 1000000) */ - sb += ((_us * 9223372036855ull) + 0x7fffffff) >> 31; - return (sb); -} - -static __inline int64_t -sbttoms(sbintime_t _sbt) -{ - - return ((1000 * _sbt) >> 32); -} - -static __inline sbintime_t -mstosbt(int64_t _ms) -{ - sbintime_t sb = 0; - - if (_ms >= SBT_1S) { - sb = (_ms / 1000) * SBT_1S; - _ms = _ms % 1000; - } - /* 9223372036854776 = ceil(2^63 / 1000) */ - sb += ((_ms * 9223372036854776ull) + 0x7fffffff) >> 31; - return (sb); -} - -/*- - * Background information: - * - * When converting between timestamps on parallel timescales of differing - * resolutions it is historical and scientific practice to round down rather - * than doing 4/5 rounding. - * - * The date changes at midnight, not at noon. - * - * Even at 15:59:59.999999999 it's not four'o'clock. - * - * time_second ticks after N.999999999 not after N.4999999999 - */ - -static __inline void -bintime2timespec(const struct bintime *_bt, struct timespec *_ts) -{ - - _ts->tv_sec = _bt->sec; - _ts->tv_nsec = ((uint64_t)1000000000 * - (uint32_t)(_bt->frac >> 32)) >> 32; -} - -static __inline void -timespec2bintime(const struct timespec *_ts, struct bintime *_bt) -{ - - _bt->sec = _ts->tv_sec; - /* 18446744073 = int(2^64 / 1000000000) */ - _bt->frac = _ts->tv_nsec * (uint64_t)18446744073LL; -} - -static __inline void -bintime2timeval(const struct bintime *_bt, struct timeval *_tv) -{ - - _tv->tv_sec = _bt->sec; - _tv->tv_usec = ((uint64_t)1000000 * (uint32_t)(_bt->frac >> 32)) >> 32; -} - -static __inline void -timeval2bintime(const struct timeval *_tv, struct bintime *_bt) -{ - - _bt->sec = _tv->tv_sec; - /* 18446744073709 = int(2^64 / 1000000) */ - _bt->frac = _tv->tv_usec * (uint64_t)18446744073709LL; -} - -static __inline struct timespec -sbttots(sbintime_t _sbt) -{ - struct timespec _ts; - - _ts.tv_sec = _sbt >> 32; - _ts.tv_nsec = sbttons((uint32_t)_sbt); - return (_ts); -} - -static __inline sbintime_t -tstosbt(struct timespec _ts) -{ - - return (((sbintime_t)_ts.tv_sec << 32) + nstosbt(_ts.tv_nsec)); -} - -static __inline struct timeval -sbttotv(sbintime_t _sbt) -{ - struct timeval _tv; - - _tv.tv_sec = _sbt >> 32; - _tv.tv_usec = sbttous((uint32_t)_sbt); - return (_tv); -} - -static __inline sbintime_t -tvtosbt(struct timeval _tv) -{ - - return (((sbintime_t)_tv.tv_sec << 32) + ustosbt(_tv.tv_usec)); -} - -/* Operations on timespecs */ -#define timespecclear(tvp) ((tvp)->tv_sec = (tvp)->tv_nsec = 0) -#define timespecisset(tvp) ((tvp)->tv_sec || (tvp)->tv_nsec) -#define timespeccmp(tvp, uvp, cmp) \ - (((tvp)->tv_sec == (uvp)->tv_sec) ? \ - ((tvp)->tv_nsec cmp (uvp)->tv_nsec) : \ - ((tvp)->tv_sec cmp (uvp)->tv_sec)) - -#define timespecadd(tsp, usp, vsp) \ - do { \ - (vsp)->tv_sec = (tsp)->tv_sec + (usp)->tv_sec; \ - (vsp)->tv_nsec = (tsp)->tv_nsec + (usp)->tv_nsec; \ - if ((vsp)->tv_nsec >= 1000000000L) { \ - (vsp)->tv_sec++; \ - (vsp)->tv_nsec -= 1000000000L; \ - } \ - } while (0) -#define timespecsub(tsp, usp, vsp) \ - do { \ - (vsp)->tv_sec = (tsp)->tv_sec - (usp)->tv_sec; \ - (vsp)->tv_nsec = (tsp)->tv_nsec - (usp)->tv_nsec; \ - if ((vsp)->tv_nsec < 0) { \ - (vsp)->tv_sec--; \ - (vsp)->tv_nsec += 1000000000L; \ - } \ - } while (0) - -#ifndef _KERNEL /* NetBSD/OpenBSD compatible interfaces */ - -#define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) -#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) -#define timercmp(tvp, uvp, cmp) \ - (((tvp)->tv_sec == (uvp)->tv_sec) ? \ - ((tvp)->tv_usec cmp (uvp)->tv_usec) : \ - ((tvp)->tv_sec cmp (uvp)->tv_sec)) -#define timeradd(tvp, uvp, vvp) \ - do { \ - (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \ - (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \ - if ((vvp)->tv_usec >= 1000000) { \ - (vvp)->tv_sec++; \ - (vvp)->tv_usec -= 1000000; \ - } \ - } while (0) -#define timersub(tvp, uvp, vvp) \ - do { \ - (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ - (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ - if ((vvp)->tv_usec < 0) { \ - (vvp)->tv_sec--; \ - (vvp)->tv_usec += 1000000; \ - } \ - } while (0) -#endif -#endif /* __BSD_VISIBLE */ - -/* - * Names of the interval timers, and structure - * defining a timer setting. - */ -#define ITIMER_REAL 0 -#define ITIMER_VIRTUAL 1 -#define ITIMER_PROF 2 - -struct itimerval { - struct timeval it_interval; /* timer interval */ - struct timeval it_value; /* current value */ -}; - -#ifndef _KERNEL -#include - -__BEGIN_DECLS -int utimes (const char *, const struct timeval [2]); - -#if __BSD_VISIBLE -int adjtime (const struct timeval *, struct timeval *); -int futimes (int, const struct timeval [2]); -int lutimes (const char *, const struct timeval [2]); -int settimeofday (const struct timeval *, const struct timezone *); -#endif - -#if __MISC_VISIBLE || __XSI_VISIBLE -int getitimer (int __which, struct itimerval *__value); -int setitimer (int __which, const struct itimerval *__restrict __value, - struct itimerval *__restrict __ovalue); -#endif - -int gettimeofday (struct timeval *__restrict __p, - void *__restrict __tz); - -#if __GNU_VISIBLE -int futimesat (int, const char *, const struct timeval [2]); -#endif - -#ifdef _LIBC -int _gettimeofday (struct timeval *__p, void *__tz); -#endif - -__END_DECLS - -#endif /* !_KERNEL */ -#include - -#endif /* !_SYS_TIME_H_ */ diff --git a/include/sys/timeb.h b/include/sys/timeb.h deleted file mode 100644 index ccf6649..0000000 --- a/include/sys/timeb.h +++ /dev/null @@ -1,40 +0,0 @@ -/* timeb.h -- An implementation of the standard Unix file. - Written by Ian Lance Taylor - Public domain; no rights reserved. - - declares the structure used by the ftime function, as - well as the ftime function itself. Newlib does not provide an - implementation of ftime. */ - -#ifndef _SYS_TIMEB_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define _SYS_TIMEB_H - -#include <_ansi.h> -#include - -#if !defined(__time_t_defined) && !defined(_TIME_T_DECLARED) -typedef _TIME_T_ time_t; -#define __time_t_defined -#define _TIME_T_DECLARED -#endif - -struct timeb -{ - time_t time; - unsigned short millitm; - short timezone; - short dstflag; -}; - -extern int ftime (struct timeb *); - -#ifdef __cplusplus -} -#endif - -#endif /* ! defined (_SYS_TIMEB_H) */ diff --git a/include/sys/times.h b/include/sys/times.h deleted file mode 100644 index 25dc8bd..0000000 --- a/include/sys/times.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _SYS_TIMES_H -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS_TIMES_H - -#include <_ansi.h> -#include - -#if !defined(__clock_t_defined) && !defined(_CLOCK_T_DECLARED) -typedef _CLOCK_T_ clock_t; -#define __clock_t_defined -#define _CLOCK_T_DECLARED -#endif - -/* Get Process Times, P1003.1b-1993, p. 92 */ -struct tms { - clock_t tms_utime; /* user time */ - clock_t tms_stime; /* system time */ - clock_t tms_cutime; /* user time, children */ - clock_t tms_cstime; /* system time, children */ -}; - -clock_t times (struct tms *); -#ifdef _LIBC -clock_t _times (struct tms *); -#endif - -#ifdef __cplusplus -} -#endif -#endif /* !_SYS_TIMES_H */ diff --git a/include/sys/timespec.h b/include/sys/timespec.h deleted file mode 100644 index 2505cef..0000000 --- a/include/sys/timespec.h +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)time.h 8.5 (Berkeley) 5/4/95 - * from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp - * $FreeBSD$ - */ - -#ifndef _SYS_TIMESPEC_H_ -#define _SYS_TIMESPEC_H_ - -#include -#include - -#if __BSD_VISIBLE -#define TIMEVAL_TO_TIMESPEC(tv, ts) \ - do { \ - (ts)->tv_sec = (tv)->tv_sec; \ - (ts)->tv_nsec = (tv)->tv_usec * 1000; \ - } while (0) -#define TIMESPEC_TO_TIMEVAL(tv, ts) \ - do { \ - (tv)->tv_sec = (ts)->tv_sec; \ - (tv)->tv_usec = (ts)->tv_nsec / 1000; \ - } while (0) - -#endif /* __BSD_VISIBLE */ - -/* - * Structure defined by POSIX.1b to be like a itimerval, but with - * timespecs. Used in the timer_*() system calls. - */ -struct itimerspec { - struct timespec it_interval; - struct timespec it_value; -}; - -#endif /* _SYS_TIMESPEC_H_ */ diff --git a/include/sys/tree.h b/include/sys/tree.h deleted file mode 100644 index 2d3cec0..0000000 --- a/include/sys/tree.h +++ /dev/null @@ -1,864 +0,0 @@ -/* $NetBSD: tree.h,v 1.8 2004/03/28 19:38:30 provos Exp $ */ -/* $OpenBSD: tree.h,v 1.7 2002/10/17 21:51:54 art Exp $ */ -/* $FreeBSD: head/sys/sys/tree.h 347360 2019-05-08 18:47:00Z trasz $ */ - -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright 2002 Niels Provos - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _SYS_TREE_H_ -#define _SYS_TREE_H_ - -#include - -/* - * This file defines data structures for different types of trees: - * splay trees and red-black trees. - * - * A splay tree is a self-organizing data structure. Every operation - * on the tree causes a splay to happen. The splay moves the requested - * node to the root of the tree and partly rebalances it. - * - * This has the benefit that request locality causes faster lookups as - * the requested nodes move to the top of the tree. On the other hand, - * every lookup causes memory writes. - * - * The Balance Theorem bounds the total access time for m operations - * and n inserts on an initially empty tree as O((m + n)lg n). The - * amortized cost for a sequence of m accesses to a splay tree is O(lg n); - * - * A red-black tree is a binary search tree with the node color as an - * extra attribute. It fulfills a set of conditions: - * - every search path from the root to a leaf consists of the - * same number of black nodes, - * - each red node (except for the root) has a black parent, - * - each leaf node is black. - * - * Every operation on a red-black tree is bounded as O(lg n). - * The maximum height of a red-black tree is 2lg (n+1). - */ - -#define SPLAY_HEAD(name, type) \ -struct name { \ - struct type *sph_root; /* root of the tree */ \ -} - -#define SPLAY_INITIALIZER(root) \ - { NULL } - -#define SPLAY_INIT(root) do { \ - (root)->sph_root = NULL; \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_ENTRY(type) \ -struct { \ - struct type *spe_left; /* left element */ \ - struct type *spe_right; /* right element */ \ -} - -#define SPLAY_LEFT(elm, field) (elm)->field.spe_left -#define SPLAY_RIGHT(elm, field) (elm)->field.spe_right -#define SPLAY_ROOT(head) (head)->sph_root -#define SPLAY_EMPTY(head) (SPLAY_ROOT(head) == NULL) - -/* SPLAY_ROTATE_{LEFT,RIGHT} expect that tmp hold SPLAY_{RIGHT,LEFT} */ -#define SPLAY_ROTATE_RIGHT(head, tmp, field) do { \ - SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(tmp, field); \ - SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ - (head)->sph_root = tmp; \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_ROTATE_LEFT(head, tmp, field) do { \ - SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(tmp, field); \ - SPLAY_LEFT(tmp, field) = (head)->sph_root; \ - (head)->sph_root = tmp; \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_LINKLEFT(head, tmp, field) do { \ - SPLAY_LEFT(tmp, field) = (head)->sph_root; \ - tmp = (head)->sph_root; \ - (head)->sph_root = SPLAY_LEFT((head)->sph_root, field); \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_LINKRIGHT(head, tmp, field) do { \ - SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ - tmp = (head)->sph_root; \ - (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_ASSEMBLE(head, node, left, right, field) do { \ - SPLAY_RIGHT(left, field) = SPLAY_LEFT((head)->sph_root, field); \ - SPLAY_LEFT(right, field) = SPLAY_RIGHT((head)->sph_root, field);\ - SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(node, field); \ - SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(node, field); \ -} while (/*CONSTCOND*/ 0) - -/* Generates prototypes and inline functions */ - -#define SPLAY_PROTOTYPE(name, type, field, cmp) \ -void name##_SPLAY(struct name *, struct type *); \ -void name##_SPLAY_MINMAX(struct name *, int); \ -struct type *name##_SPLAY_INSERT(struct name *, struct type *); \ -struct type *name##_SPLAY_REMOVE(struct name *, struct type *); \ - \ -/* Finds the node with the same key as elm */ \ -static __unused __inline struct type * \ -name##_SPLAY_FIND(struct name *head, struct type *elm) \ -{ \ - if (SPLAY_EMPTY(head)) \ - return(NULL); \ - name##_SPLAY(head, elm); \ - if ((cmp)(elm, (head)->sph_root) == 0) \ - return (head->sph_root); \ - return (NULL); \ -} \ - \ -static __unused __inline struct type * \ -name##_SPLAY_NEXT(struct name *head, struct type *elm) \ -{ \ - name##_SPLAY(head, elm); \ - if (SPLAY_RIGHT(elm, field) != NULL) { \ - elm = SPLAY_RIGHT(elm, field); \ - while (SPLAY_LEFT(elm, field) != NULL) { \ - elm = SPLAY_LEFT(elm, field); \ - } \ - } else \ - elm = NULL; \ - return (elm); \ -} \ - \ -static __unused __inline struct type * \ -name##_SPLAY_MIN_MAX(struct name *head, int val) \ -{ \ - name##_SPLAY_MINMAX(head, val); \ - return (SPLAY_ROOT(head)); \ -} - -/* Main splay operation. - * Moves node close to the key of elm to top - */ -#define SPLAY_GENERATE(name, type, field, cmp) \ -struct type * \ -name##_SPLAY_INSERT(struct name *head, struct type *elm) \ -{ \ - if (SPLAY_EMPTY(head)) { \ - SPLAY_LEFT(elm, field) = SPLAY_RIGHT(elm, field) = NULL; \ - } else { \ - int __comp; \ - name##_SPLAY(head, elm); \ - __comp = (cmp)(elm, (head)->sph_root); \ - if(__comp < 0) { \ - SPLAY_LEFT(elm, field) = SPLAY_LEFT((head)->sph_root, field);\ - SPLAY_RIGHT(elm, field) = (head)->sph_root; \ - SPLAY_LEFT((head)->sph_root, field) = NULL; \ - } else if (__comp > 0) { \ - SPLAY_RIGHT(elm, field) = SPLAY_RIGHT((head)->sph_root, field);\ - SPLAY_LEFT(elm, field) = (head)->sph_root; \ - SPLAY_RIGHT((head)->sph_root, field) = NULL; \ - } else \ - return ((head)->sph_root); \ - } \ - (head)->sph_root = (elm); \ - return (NULL); \ -} \ - \ -struct type * \ -name##_SPLAY_REMOVE(struct name *head, struct type *elm) \ -{ \ - struct type *__tmp; \ - if (SPLAY_EMPTY(head)) \ - return (NULL); \ - name##_SPLAY(head, elm); \ - if ((cmp)(elm, (head)->sph_root) == 0) { \ - if (SPLAY_LEFT((head)->sph_root, field) == NULL) { \ - (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field);\ - } else { \ - __tmp = SPLAY_RIGHT((head)->sph_root, field); \ - (head)->sph_root = SPLAY_LEFT((head)->sph_root, field);\ - name##_SPLAY(head, elm); \ - SPLAY_RIGHT((head)->sph_root, field) = __tmp; \ - } \ - return (elm); \ - } \ - return (NULL); \ -} \ - \ -void \ -name##_SPLAY(struct name *head, struct type *elm) \ -{ \ - struct type __node, *__left, *__right, *__tmp; \ - int __comp; \ -\ - SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\ - __left = __right = &__node; \ -\ - while ((__comp = (cmp)(elm, (head)->sph_root)) != 0) { \ - if (__comp < 0) { \ - __tmp = SPLAY_LEFT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if ((cmp)(elm, __tmp) < 0){ \ - SPLAY_ROTATE_RIGHT(head, __tmp, field); \ - if (SPLAY_LEFT((head)->sph_root, field) == NULL)\ - break; \ - } \ - SPLAY_LINKLEFT(head, __right, field); \ - } else if (__comp > 0) { \ - __tmp = SPLAY_RIGHT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if ((cmp)(elm, __tmp) > 0){ \ - SPLAY_ROTATE_LEFT(head, __tmp, field); \ - if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\ - break; \ - } \ - SPLAY_LINKRIGHT(head, __left, field); \ - } \ - } \ - SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ -} \ - \ -/* Splay with either the minimum or the maximum element \ - * Used to find minimum or maximum element in tree. \ - */ \ -void name##_SPLAY_MINMAX(struct name *head, int __comp) \ -{ \ - struct type __node, *__left, *__right, *__tmp; \ -\ - SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\ - __left = __right = &__node; \ -\ - while (1) { \ - if (__comp < 0) { \ - __tmp = SPLAY_LEFT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if (__comp < 0){ \ - SPLAY_ROTATE_RIGHT(head, __tmp, field); \ - if (SPLAY_LEFT((head)->sph_root, field) == NULL)\ - break; \ - } \ - SPLAY_LINKLEFT(head, __right, field); \ - } else if (__comp > 0) { \ - __tmp = SPLAY_RIGHT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if (__comp > 0) { \ - SPLAY_ROTATE_LEFT(head, __tmp, field); \ - if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\ - break; \ - } \ - SPLAY_LINKRIGHT(head, __left, field); \ - } \ - } \ - SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ -} - -#define SPLAY_NEGINF -1 -#define SPLAY_INF 1 - -#define SPLAY_INSERT(name, x, y) name##_SPLAY_INSERT(x, y) -#define SPLAY_REMOVE(name, x, y) name##_SPLAY_REMOVE(x, y) -#define SPLAY_FIND(name, x, y) name##_SPLAY_FIND(x, y) -#define SPLAY_NEXT(name, x, y) name##_SPLAY_NEXT(x, y) -#define SPLAY_MIN(name, x) (SPLAY_EMPTY(x) ? NULL \ - : name##_SPLAY_MIN_MAX(x, SPLAY_NEGINF)) -#define SPLAY_MAX(name, x) (SPLAY_EMPTY(x) ? NULL \ - : name##_SPLAY_MIN_MAX(x, SPLAY_INF)) - -#define SPLAY_FOREACH(x, name, head) \ - for ((x) = SPLAY_MIN(name, head); \ - (x) != NULL; \ - (x) = SPLAY_NEXT(name, head, x)) - -/* Macros that define a red-black tree */ -#define RB_HEAD(name, type) \ -struct name { \ - struct type *rbh_root; /* root of the tree */ \ -} - -#define RB_INITIALIZER(root) \ - { NULL } - -#define RB_INIT(root) do { \ - (root)->rbh_root = NULL; \ -} while (/*CONSTCOND*/ 0) - -#define RB_BLACK 0 -#define RB_RED 1 -#define RB_ENTRY(type) \ -struct { \ - struct type *rbe_left; /* left element */ \ - struct type *rbe_right; /* right element */ \ - struct type *rbe_parent; /* parent element */ \ - int rbe_color; /* node color */ \ -} - -#define RB_LEFT(elm, field) (elm)->field.rbe_left -#define RB_RIGHT(elm, field) (elm)->field.rbe_right -#define RB_PARENT(elm, field) (elm)->field.rbe_parent -#define RB_COLOR(elm, field) (elm)->field.rbe_color -#define RB_ISRED(elm, field) ((elm) != NULL && RB_COLOR(elm, field) == RB_RED) -#define RB_ROOT(head) (head)->rbh_root -#define RB_EMPTY(head) (RB_ROOT(head) == NULL) - -#define RB_SET_PARENT(dst, src, field) do { \ - RB_PARENT(dst, field) = src; \ -} while (/*CONSTCOND*/ 0) - -#define RB_SET(elm, parent, field) do { \ - RB_SET_PARENT(elm, parent, field); \ - RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL; \ - RB_COLOR(elm, field) = RB_RED; \ -} while (/*CONSTCOND*/ 0) - -#define RB_SET_BLACKRED(black, red, field) do { \ - RB_COLOR(black, field) = RB_BLACK; \ - RB_COLOR(red, field) = RB_RED; \ -} while (/*CONSTCOND*/ 0) - -/* - * Something to be invoked in a loop at the root of every modified subtree, - * from the bottom up to the root, to update augmented node data. - */ -#ifndef RB_AUGMENT -#define RB_AUGMENT(x) break -#endif - -#define RB_SWAP_CHILD(head, out, in, field) do { \ - if (RB_PARENT(out, field) == NULL) \ - RB_ROOT(head) = (in); \ - else if ((out) == RB_LEFT(RB_PARENT(out, field), field)) \ - RB_LEFT(RB_PARENT(out, field), field) = (in); \ - else \ - RB_RIGHT(RB_PARENT(out, field), field) = (in); \ -} while (/*CONSTCOND*/ 0) - -#define RB_ROTATE_LEFT(head, elm, tmp, field) do { \ - (tmp) = RB_RIGHT(elm, field); \ - if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field)) != NULL) { \ - RB_SET_PARENT(RB_RIGHT(elm, field), elm, field); \ - } \ - RB_SET_PARENT(tmp, RB_PARENT(elm, field), field); \ - RB_SWAP_CHILD(head, elm, tmp, field); \ - RB_LEFT(tmp, field) = (elm); \ - RB_SET_PARENT(elm, tmp, field); \ - RB_AUGMENT(elm); \ -} while (/*CONSTCOND*/ 0) - -#define RB_ROTATE_RIGHT(head, elm, tmp, field) do { \ - (tmp) = RB_LEFT(elm, field); \ - if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field)) != NULL) { \ - RB_SET_PARENT(RB_LEFT(elm, field), elm, field); \ - } \ - RB_SET_PARENT(tmp, RB_PARENT(elm, field), field); \ - RB_SWAP_CHILD(head, elm, tmp, field); \ - RB_RIGHT(tmp, field) = (elm); \ - RB_SET_PARENT(elm, tmp, field); \ - RB_AUGMENT(elm); \ -} while (/*CONSTCOND*/ 0) - -/* - * The RB_PARENT_ROTATE_LEFT() and RB_PARENT_ROTATE_RIGHT() rotations are - * specialized versions of RB_ROTATE_LEFT() and RB_ROTATE_RIGHT() which may be - * used if the parent node exists and the direction of the child element is - * known. - */ - -#define RB_PARENT_ROTATE_LEFT(parent, left, tmp, field) do { \ - (tmp) = RB_RIGHT(left, field); \ - if ((RB_RIGHT(left, field) = RB_LEFT(tmp, field)) != NULL) { \ - RB_SET_PARENT(RB_RIGHT(left, field), left, field); \ - } \ - RB_SET_PARENT(tmp, parent, field); \ - RB_LEFT(parent, field) = (tmp); \ - RB_LEFT(tmp, field) = (left); \ - RB_SET_PARENT(left, tmp, field); \ - RB_AUGMENT(left); \ -} while (/*CONSTCOND*/ 0) - -#define RB_PARENT_ROTATE_RIGHT(parent, right, tmp, field) do { \ - (tmp) = RB_LEFT(right, field); \ - if ((RB_LEFT(right, field) = RB_RIGHT(tmp, field)) != NULL) { \ - RB_SET_PARENT(RB_LEFT(right, field), right, field); \ - } \ - RB_SET_PARENT(tmp, parent, field); \ - RB_RIGHT(parent, field) = (tmp); \ - RB_RIGHT(tmp, field) = (right); \ - RB_SET_PARENT(right, tmp, field); \ - RB_AUGMENT(right); \ -} while (/*CONSTCOND*/ 0) - -/* - * The RB_RED_ROTATE_LEFT() and RB_RED_ROTATE_RIGHT() rotations are specialized - * versions of RB_ROTATE_LEFT() and RB_ROTATE_RIGHT() which may be used if we - * rotate an element with a red child which has a black sibling. Such a red - * node must have at least two child nodes so that the following red-black tree - * invariant is fulfilled: - * - * Every path from a given node to any of its descendant NULL nodes goes - * through the same number of black nodes. - * - * elm (could be the root) - * / \ - * BLACK RED (left or right child) - * / \ - * BLACK BLACK - */ - -#define RB_RED_ROTATE_LEFT(head, elm, tmp, field) do { \ - (tmp) = RB_RIGHT(elm, field); \ - RB_RIGHT(elm, field) = RB_LEFT(tmp, field); \ - RB_SET_PARENT(RB_RIGHT(elm, field), elm, field); \ - RB_SET_PARENT(tmp, RB_PARENT(elm, field), field); \ - RB_SWAP_CHILD(head, elm, tmp, field); \ - RB_LEFT(tmp, field) = (elm); \ - RB_SET_PARENT(elm, tmp, field); \ - RB_AUGMENT(elm); \ -} while (/*CONSTCOND*/ 0) - -#define RB_RED_ROTATE_RIGHT(head, elm, tmp, field) do { \ - (tmp) = RB_LEFT(elm, field); \ - RB_LEFT(elm, field) = RB_RIGHT(tmp, field); \ - RB_SET_PARENT(RB_LEFT(elm, field), elm, field); \ - RB_SET_PARENT(tmp, RB_PARENT(elm, field), field); \ - RB_SWAP_CHILD(head, elm, tmp, field); \ - RB_RIGHT(tmp, field) = (elm); \ - RB_SET_PARENT(elm, tmp, field); \ - RB_AUGMENT(elm); \ -} while (/*CONSTCOND*/ 0) - -/* Generates prototypes and inline functions */ -#define RB_PROTOTYPE(name, type, field, cmp) \ - RB_PROTOTYPE_INTERNAL(name, type, field, cmp,) -#define RB_PROTOTYPE_STATIC(name, type, field, cmp) \ - RB_PROTOTYPE_INTERNAL(name, type, field, cmp, __unused static) -#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr) \ - RB_PROTOTYPE_INSERT_COLOR(name, type, attr); \ - RB_PROTOTYPE_REMOVE_COLOR(name, type, attr); \ - RB_PROTOTYPE_INSERT(name, type, attr); \ - RB_PROTOTYPE_REMOVE(name, type, attr); \ - RB_PROTOTYPE_FIND(name, type, attr); \ - RB_PROTOTYPE_NFIND(name, type, attr); \ - RB_PROTOTYPE_NEXT(name, type, attr); \ - RB_PROTOTYPE_PREV(name, type, attr); \ - RB_PROTOTYPE_MINMAX(name, type, attr); \ - RB_PROTOTYPE_REINSERT(name, type, attr); -#define RB_PROTOTYPE_INSERT_COLOR(name, type, attr) \ - attr void name##_RB_INSERT_COLOR(struct name *, struct type *) -#define RB_PROTOTYPE_REMOVE_COLOR(name, type, attr) \ - attr void name##_RB_REMOVE_COLOR(struct name *, struct type *) -#define RB_PROTOTYPE_REMOVE(name, type, attr) \ - attr struct type *name##_RB_REMOVE(struct name *, struct type *) -#define RB_PROTOTYPE_INSERT(name, type, attr) \ - attr struct type *name##_RB_INSERT(struct name *, struct type *) -#define RB_PROTOTYPE_FIND(name, type, attr) \ - attr struct type *name##_RB_FIND(struct name *, struct type *) -#define RB_PROTOTYPE_NFIND(name, type, attr) \ - attr struct type *name##_RB_NFIND(struct name *, struct type *) -#define RB_PROTOTYPE_NEXT(name, type, attr) \ - attr struct type *name##_RB_NEXT(struct type *) -#define RB_PROTOTYPE_PREV(name, type, attr) \ - attr struct type *name##_RB_PREV(struct type *) -#define RB_PROTOTYPE_MINMAX(name, type, attr) \ - attr struct type *name##_RB_MINMAX(struct name *, int) -#define RB_PROTOTYPE_REINSERT(name, type, attr) \ - attr struct type *name##_RB_REINSERT(struct name *, struct type *) - -/* Main rb operation. - * Moves node close to the key of elm to top - */ -#define RB_GENERATE(name, type, field, cmp) \ - RB_GENERATE_INTERNAL(name, type, field, cmp,) -#define RB_GENERATE_STATIC(name, type, field, cmp) \ - RB_GENERATE_INTERNAL(name, type, field, cmp, __unused static) -#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr) \ - RB_GENERATE_INSERT_COLOR(name, type, field, attr) \ - RB_GENERATE_REMOVE_COLOR(name, type, field, attr) \ - RB_GENERATE_INSERT(name, type, field, cmp, attr) \ - RB_GENERATE_REMOVE(name, type, field, attr) \ - RB_GENERATE_FIND(name, type, field, cmp, attr) \ - RB_GENERATE_NFIND(name, type, field, cmp, attr) \ - RB_GENERATE_NEXT(name, type, field, attr) \ - RB_GENERATE_PREV(name, type, field, attr) \ - RB_GENERATE_MINMAX(name, type, field, attr) \ - RB_GENERATE_REINSERT(name, type, field, cmp, attr) - - -#define RB_GENERATE_INSERT_COLOR(name, type, field, attr) \ -attr void \ -name##_RB_INSERT_COLOR(struct name *head, struct type *elm) \ -{ \ - struct type *parent, *gparent, *tmp; \ - while (RB_ISRED((parent = RB_PARENT(elm, field)), field)) { \ - gparent = RB_PARENT(parent, field); \ - if (parent == RB_LEFT(gparent, field)) { \ - tmp = RB_RIGHT(gparent, field); \ - if (RB_ISRED(tmp, field)) { \ - RB_COLOR(tmp, field) = RB_BLACK; \ - RB_SET_BLACKRED(parent, gparent, field);\ - elm = gparent; \ - continue; \ - } \ - if (RB_RIGHT(parent, field) == elm) { \ - RB_PARENT_ROTATE_LEFT(gparent, parent, \ - tmp, field); \ - tmp = parent; \ - parent = elm; \ - elm = tmp; \ - } \ - RB_SET_BLACKRED(parent, gparent, field); \ - RB_ROTATE_RIGHT(head, gparent, tmp, field); \ - } else { \ - tmp = RB_LEFT(gparent, field); \ - if (RB_ISRED(tmp, field)) { \ - RB_COLOR(tmp, field) = RB_BLACK; \ - RB_SET_BLACKRED(parent, gparent, field);\ - elm = gparent; \ - continue; \ - } \ - if (RB_LEFT(parent, field) == elm) { \ - RB_PARENT_ROTATE_RIGHT(gparent, parent, \ - tmp, field); \ - tmp = parent; \ - parent = elm; \ - elm = tmp; \ - } \ - RB_SET_BLACKRED(parent, gparent, field); \ - RB_ROTATE_LEFT(head, gparent, tmp, field); \ - } \ - } \ - RB_COLOR(head->rbh_root, field) = RB_BLACK; \ -} - -#define RB_GENERATE_REMOVE_COLOR(name, type, field, attr) \ -attr void \ -name##_RB_REMOVE_COLOR(struct name *head, struct type *parent) \ -{ \ - struct type *elm, *tmp; \ - elm = NULL; \ - do { \ - if (RB_LEFT(parent, field) == elm) { \ - tmp = RB_RIGHT(parent, field); \ - if (RB_COLOR(tmp, field) == RB_RED) { \ - RB_SET_BLACKRED(tmp, parent, field); \ - RB_RED_ROTATE_LEFT(head, parent, tmp, field); \ - tmp = RB_RIGHT(parent, field); \ - } \ - if (RB_ISRED(RB_RIGHT(tmp, field), field)) \ - RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK; \ - else if (RB_ISRED(RB_LEFT(tmp, field), field)) { \ - struct type *oleft; \ - RB_PARENT_ROTATE_RIGHT(parent, tmp, \ - oleft, field); \ - RB_COLOR(oleft, field) = RB_BLACK; \ - tmp = oleft; \ - } else { \ - RB_COLOR(tmp, field) = RB_RED; \ - elm = parent; \ - parent = RB_PARENT(elm, field); \ - continue; \ - } \ - RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ - RB_COLOR(parent, field) = RB_BLACK; \ - RB_ROTATE_LEFT(head, parent, tmp, field); \ - elm = RB_ROOT(head); \ - break; \ - } else { \ - tmp = RB_LEFT(parent, field); \ - if (RB_COLOR(tmp, field) == RB_RED) { \ - RB_SET_BLACKRED(tmp, parent, field); \ - RB_RED_ROTATE_RIGHT(head, parent, tmp, field); \ - tmp = RB_LEFT(parent, field); \ - } \ - if (RB_ISRED(RB_LEFT(tmp, field), field)) \ - RB_COLOR(RB_LEFT(tmp, field), field) = RB_BLACK; \ - else if (RB_ISRED(RB_RIGHT(tmp, field), field)) { \ - struct type *oright; \ - RB_PARENT_ROTATE_LEFT(parent, tmp, \ - oright, field); \ - RB_COLOR(oright, field) = RB_BLACK; \ - tmp = oright; \ - } else { \ - RB_COLOR(tmp, field) = RB_RED; \ - elm = parent; \ - parent = RB_PARENT(elm, field); \ - continue; \ - } \ - RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ - RB_COLOR(parent, field) = RB_BLACK; \ - RB_ROTATE_RIGHT(head, parent, tmp, field); \ - elm = RB_ROOT(head); \ - break; \ - } \ - } while (RB_COLOR(elm, field) == RB_BLACK && parent != NULL); \ - RB_COLOR(elm, field) = RB_BLACK; \ -} - -#define RB_GENERATE_REMOVE(name, type, field, attr) \ -attr struct type * \ -name##_RB_REMOVE(struct name *head, struct type *elm) \ -{ \ - struct type *child, *old, *parent, *right; \ - int color; \ - \ - old = elm; \ - parent = RB_PARENT(elm, field); \ - right = RB_RIGHT(elm, field); \ - color = RB_COLOR(elm, field); \ - if (RB_LEFT(elm, field) == NULL) \ - elm = child = right; \ - else if (right == NULL) \ - elm = child = RB_LEFT(elm, field); \ - else { \ - if ((child = RB_LEFT(right, field)) == NULL) { \ - child = RB_RIGHT(right, field); \ - RB_RIGHT(old, field) = child; \ - parent = elm = right; \ - } else { \ - do \ - elm = child; \ - while ((child = RB_LEFT(elm, field)) != NULL); \ - child = RB_RIGHT(elm, field); \ - parent = RB_PARENT(elm, field); \ - RB_LEFT(parent, field) = child; \ - RB_SET_PARENT(RB_RIGHT(old, field), elm, field); \ - } \ - RB_SET_PARENT(RB_LEFT(old, field), elm, field); \ - color = RB_COLOR(elm, field); \ - elm->field = old->field; \ - } \ - RB_SWAP_CHILD(head, old, elm, field); \ - if (child != NULL) { \ - RB_SET_PARENT(child, parent, field); \ - RB_COLOR(child, field) = RB_BLACK; \ - } else if (color != RB_RED && parent != NULL) \ - name##_RB_REMOVE_COLOR(head, parent); \ - while (parent != NULL) { \ - RB_AUGMENT(parent); \ - parent = RB_PARENT(parent, field); \ - } \ - return (old); \ -} - -#define RB_GENERATE_INSERT(name, type, field, cmp, attr) \ -/* Inserts a node into the RB tree */ \ -attr struct type * \ -name##_RB_INSERT(struct name *head, struct type *elm) \ -{ \ - struct type *tmp; \ - struct type *parent = NULL; \ - int comp = 0; \ - tmp = RB_ROOT(head); \ - while (tmp) { \ - parent = tmp; \ - comp = (cmp)(elm, parent); \ - if (comp < 0) \ - tmp = RB_LEFT(tmp, field); \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - RB_SET(elm, parent, field); \ - if (parent != NULL) { \ - if (comp < 0) \ - RB_LEFT(parent, field) = elm; \ - else \ - RB_RIGHT(parent, field) = elm; \ - } else \ - RB_ROOT(head) = elm; \ - name##_RB_INSERT_COLOR(head, elm); \ - while (elm != NULL) { \ - RB_AUGMENT(elm); \ - elm = RB_PARENT(elm, field); \ - } \ - return (NULL); \ -} - -#define RB_GENERATE_FIND(name, type, field, cmp, attr) \ -/* Finds the node with the same key as elm */ \ -attr struct type * \ -name##_RB_FIND(struct name *head, struct type *elm) \ -{ \ - struct type *tmp = RB_ROOT(head); \ - int comp; \ - while (tmp) { \ - comp = cmp(elm, tmp); \ - if (comp < 0) \ - tmp = RB_LEFT(tmp, field); \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - return (NULL); \ -} - -#define RB_GENERATE_NFIND(name, type, field, cmp, attr) \ -/* Finds the first node greater than or equal to the search key */ \ -attr struct type * \ -name##_RB_NFIND(struct name *head, struct type *elm) \ -{ \ - struct type *tmp = RB_ROOT(head); \ - struct type *res = NULL; \ - int comp; \ - while (tmp) { \ - comp = cmp(elm, tmp); \ - if (comp < 0) { \ - res = tmp; \ - tmp = RB_LEFT(tmp, field); \ - } \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - return (res); \ -} - -#define RB_GENERATE_NEXT(name, type, field, attr) \ -/* ARGSUSED */ \ -attr struct type * \ -name##_RB_NEXT(struct type *elm) \ -{ \ - if (RB_RIGHT(elm, field)) { \ - elm = RB_RIGHT(elm, field); \ - while (RB_LEFT(elm, field)) \ - elm = RB_LEFT(elm, field); \ - } else { \ - if (RB_PARENT(elm, field) && \ - (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - else { \ - while (RB_PARENT(elm, field) && \ - (elm == RB_RIGHT(RB_PARENT(elm, field), field)))\ - elm = RB_PARENT(elm, field); \ - elm = RB_PARENT(elm, field); \ - } \ - } \ - return (elm); \ -} - -#define RB_GENERATE_PREV(name, type, field, attr) \ -/* ARGSUSED */ \ -attr struct type * \ -name##_RB_PREV(struct type *elm) \ -{ \ - if (RB_LEFT(elm, field)) { \ - elm = RB_LEFT(elm, field); \ - while (RB_RIGHT(elm, field)) \ - elm = RB_RIGHT(elm, field); \ - } else { \ - if (RB_PARENT(elm, field) && \ - (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - else { \ - while (RB_PARENT(elm, field) && \ - (elm == RB_LEFT(RB_PARENT(elm, field), field)))\ - elm = RB_PARENT(elm, field); \ - elm = RB_PARENT(elm, field); \ - } \ - } \ - return (elm); \ -} - -#define RB_GENERATE_MINMAX(name, type, field, attr) \ -attr struct type * \ -name##_RB_MINMAX(struct name *head, int val) \ -{ \ - struct type *tmp = RB_ROOT(head); \ - struct type *parent = NULL; \ - while (tmp) { \ - parent = tmp; \ - if (val < 0) \ - tmp = RB_LEFT(tmp, field); \ - else \ - tmp = RB_RIGHT(tmp, field); \ - } \ - return (parent); \ -} - -#define RB_GENERATE_REINSERT(name, type, field, cmp, attr) \ -attr struct type * \ -name##_RB_REINSERT(struct name *head, struct type *elm) \ -{ \ - struct type *cmpelm; \ - if (((cmpelm = RB_PREV(name, head, elm)) != NULL && \ - cmp(cmpelm, elm) >= 0) || \ - ((cmpelm = RB_NEXT(name, head, elm)) != NULL && \ - cmp(elm, cmpelm) >= 0)) { \ - /* XXXLAS: Remove/insert is heavy handed. */ \ - RB_REMOVE(name, head, elm); \ - return (RB_INSERT(name, head, elm)); \ - } \ - return (NULL); \ -} \ - -#define RB_NEGINF -1 -#define RB_INF 1 - -#define RB_INSERT(name, x, y) name##_RB_INSERT(x, y) -#define RB_REMOVE(name, x, y) name##_RB_REMOVE(x, y) -#define RB_FIND(name, x, y) name##_RB_FIND(x, y) -#define RB_NFIND(name, x, y) name##_RB_NFIND(x, y) -#define RB_NEXT(name, x, y) name##_RB_NEXT(y) -#define RB_PREV(name, x, y) name##_RB_PREV(y) -#define RB_MIN(name, x) name##_RB_MINMAX(x, RB_NEGINF) -#define RB_MAX(name, x) name##_RB_MINMAX(x, RB_INF) -#define RB_REINSERT(name, x, y) name##_RB_REINSERT(x, y) - -#define RB_FOREACH(x, name, head) \ - for ((x) = RB_MIN(name, head); \ - (x) != NULL; \ - (x) = name##_RB_NEXT(x)) - -#define RB_FOREACH_FROM(x, name, y) \ - for ((x) = (y); \ - ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ - (x) = (y)) - -#define RB_FOREACH_SAFE(x, name, head, y) \ - for ((x) = RB_MIN(name, head); \ - ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ - (x) = (y)) - -#define RB_FOREACH_REVERSE(x, name, head) \ - for ((x) = RB_MAX(name, head); \ - (x) != NULL; \ - (x) = name##_RB_PREV(x)) - -#define RB_FOREACH_REVERSE_FROM(x, name, y) \ - for ((x) = (y); \ - ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ - (x) = (y)) - -#define RB_FOREACH_REVERSE_SAFE(x, name, head, y) \ - for ((x) = RB_MAX(name, head); \ - ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ - (x) = (y)) - -#endif /* _SYS_TREE_H_ */ diff --git a/include/sys/types.h b/include/sys/types.h deleted file mode 100644 index 5035d54..0000000 --- a/include/sys/types.h +++ /dev/null @@ -1,228 +0,0 @@ -/* unified sys/types.h: - start with sef's sysvi386 version. - merge go32 version -- a few ifdefs. - h8300hms, h8300xray, and sysvnecv70 disagree on the following types: - - typedef int gid_t; - typedef int uid_t; - typedef int dev_t; - typedef int ino_t; - typedef int mode_t; - typedef int caddr_t; - - however, these aren't "reasonable" values, the sysvi386 ones make far - more sense, and should work sufficiently well (in particular, h8300 - doesn't have a stat, and the necv70 doesn't matter.) -- eichin - */ - -#ifndef _SYS_TYPES_H - -#include <_ansi.h> -#include -#include - -/* BSD types permitted by POSIX and always exposed as in Glibc. Only provided - for backward compatibility with BSD code. The uintN_t standard types should - be preferred in new code. */ -#if ___int8_t_defined -typedef __uint8_t u_int8_t; -#endif -#if ___int16_t_defined -typedef __uint16_t u_int16_t; -#endif -#if ___int32_t_defined -typedef __uint32_t u_int32_t; -#endif -#if ___int64_t_defined -typedef __uint64_t u_int64_t; -#endif -typedef __intptr_t register_t; -#define __BIT_TYPES_DEFINED__ 1 - -#ifndef __need_inttypes - -#define _SYS_TYPES_H -#include -#include - -#if __BSD_VISIBLE -#include -#include -# define physadr physadr_t -# define quad quad_t - -#ifndef _IN_ADDR_T_DECLARED -typedef __uint32_t in_addr_t; /* base type for internet address */ -#define _IN_ADDR_T_DECLARED -#endif - -#ifndef _IN_PORT_T_DECLARED -typedef __uint16_t in_port_t; -#define _IN_PORT_T_DECLARED -#endif - -typedef __uintptr_t u_register_t; -#endif /* __BSD_VISIBLE */ - -#if __MISC_VISIBLE -#ifndef _BSDTYPES_DEFINED -/* also defined in mingw/gmon.h and in w32api/winsock[2].h */ -#ifndef __u_char_defined -typedef unsigned char u_char; -#define __u_char_defined -#endif -#ifndef __u_short_defined -typedef unsigned short u_short; -#define __u_short_defined -#endif -#ifndef __u_int_defined -typedef unsigned int u_int; -#define __u_int_defined -#endif -#ifndef __u_long_defined -typedef unsigned long u_long; -#define __u_long_defined -#endif -#define _BSDTYPES_DEFINED -#endif -#endif /* __MISC_VISIBLE */ - -#if __MISC_VISIBLE -typedef unsigned short ushort; /* System V compatibility */ -typedef unsigned int uint; /* System V compatibility */ -typedef unsigned long ulong; /* System V compatibility */ -#endif - -#ifndef _BLKCNT_T_DECLARED -typedef __blkcnt_t blkcnt_t; -#define _BLKCNT_T_DECLARED -#endif - -#ifndef _BLKSIZE_T_DECLARED -typedef __blksize_t blksize_t; -#define _BLKSIZE_T_DECLARED -#endif - -#if !defined(__clock_t_defined) && !defined(_CLOCK_T_DECLARED) -typedef _CLOCK_T_ clock_t; -#define __clock_t_defined -#define _CLOCK_T_DECLARED -#endif - -#if !defined(__time_t_defined) && !defined(_TIME_T_DECLARED) -typedef _TIME_T_ time_t; -#define __time_t_defined -#define _TIME_T_DECLARED -#endif - -typedef __daddr_t daddr_t; - -#ifndef __caddr_t_defined -typedef char * caddr_t; -#define __caddr_t_defined -#endif - -#ifndef _FSBLKCNT_T_DECLARED /* for statvfs() */ -typedef __fsblkcnt_t fsblkcnt_t; -typedef __fsfilcnt_t fsfilcnt_t; -#define _FSBLKCNT_T_DECLARED -#endif - -#ifndef _ID_T_DECLARED -typedef __id_t id_t; /* can hold a uid_t or pid_t */ -#define _ID_T_DECLARED -#endif - -#ifndef _INO_T_DECLARED -typedef __ino_t ino_t; /* inode number */ -#define _INO_T_DECLARED -#endif - -#if defined(__i386__) && (defined(GO32) || defined(__MSDOS__)) -typedef char * addr_t; -typedef unsigned long vm_offset_t; -typedef unsigned long vm_size_t; -#endif /* __i386__ && (GO32 || __MSDOS__) */ - -/* - * All these should be machine specific - right now they are all broken. - * However, for all of Cygnus' embedded targets, we want them to all be - * the same. Otherwise things like sizeof (struct stat) might depend on - * how the file was compiled (e.g. -mint16 vs -mint32, etc.). - */ - -#ifndef _OFF_T_DECLARED -typedef __off_t off_t; /* file offset */ -#define _OFF_T_DECLARED -#endif -#ifndef _DEV_T_DECLARED -typedef __dev_t dev_t; /* device number or struct cdev */ -#define _DEV_T_DECLARED -#endif -#ifndef _UID_T_DECLARED -typedef __uid_t uid_t; /* user id */ -#define _UID_T_DECLARED -#endif -#ifndef _GID_T_DECLARED -typedef __gid_t gid_t; /* group id */ -#define _GID_T_DECLARED -#endif - -#ifndef _PID_T_DECLARED -typedef __pid_t pid_t; /* process id */ -#define _PID_T_DECLARED -#endif - -#ifndef _KEY_T_DECLARED -typedef __key_t key_t; /* IPC key */ -#define _KEY_T_DECLARED -#endif - -#ifndef _SSIZE_T_DECLARED -typedef _ssize_t ssize_t; -#define _SSIZE_T_DECLARED -#endif - -#ifndef _MODE_T_DECLARED -typedef __mode_t mode_t; /* permissions */ -#define _MODE_T_DECLARED -#endif - -#ifndef _NLINK_T_DECLARED -typedef __nlink_t nlink_t; /* link count */ -#define _NLINK_T_DECLARED -#endif - -#if !defined(__clockid_t_defined) && !defined(_CLOCKID_T_DECLARED) -typedef __clockid_t clockid_t; -#define __clockid_t_defined -#define _CLOCKID_T_DECLARED -#endif - -#if !defined(__timer_t_defined) && !defined(_TIMER_T_DECLARED) -typedef __timer_t timer_t; -#define __timer_t_defined -#define _TIMER_T_DECLARED -#endif - -#ifndef _USECONDS_T_DECLARED -typedef __useconds_t useconds_t; /* microseconds (unsigned) */ -#define _USECONDS_T_DECLARED -#endif - -#ifndef _SUSECONDS_T_DECLARED -typedef __suseconds_t suseconds_t; -#define _SUSECONDS_T_DECLARED -#endif - -typedef __int64_t sbintime_t; - -#include -#include -#include - -#endif /* !__need_inttypes */ - -#undef __need_inttypes - -#endif /* _SYS_TYPES_H */ diff --git a/include/sys/unistd.h b/include/sys/unistd.h deleted file mode 100644 index 216d779..0000000 --- a/include/sys/unistd.h +++ /dev/null @@ -1,586 +0,0 @@ -#ifndef _SYS_UNISTD_H -#define _SYS_UNISTD_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <_ansi.h> -#define __need_size_t -#define __need_ptrdiff_t -#include -#include -#include -#include - -extern char **environ; - -void _exit (int __status) _ATTRIBUTE ((__noreturn__)); - -int access (const char *__path, int __amode); -unsigned alarm (unsigned __secs); -int chdir (const char *__path); -int chmod (const char *__path, mode_t __mode); -int chown (const char *__path, uid_t __owner, gid_t __group); -#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112) -int chroot (const char *__path); -#endif -int close (int __fildes); -#if __POSIX_VISIBLE >= 199209 -size_t confstr (int __name, char *__buf, size_t __len); -#endif -#if __XSI_VISIBLE -char * crypt (const char *__key, const char *__salt); -#endif -#if __XSI_VISIBLE && __XSI_VISIBLE < 700 -char * ctermid (char *__s); -#endif -#if __XSI_VISIBLE && __XSI_VISIBLE < 600 -char * cuserid (char *__s); -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -int daemon (int nochdir, int noclose); -#endif -int dup (int __fildes); -int dup2 (int __fildes, int __fildes2); -#if __GNU_VISIBLE -int dup3 (int __fildes, int __fildes2, int flags); -int eaccess (const char *__path, int __mode); -#endif -#if __XSI_VISIBLE -void encrypt (char *__block, int __edflag); -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -void endusershell (void); -#endif -#if __GNU_VISIBLE -int euidaccess (const char *__path, int __mode); -#endif -int execl (const char *__path, const char *, ...); -int execle (const char *__path, const char *, ...); -int execlp (const char *__file, const char *, ...); -#if __MISC_VISIBLE -int execlpe (const char *__file, const char *, ...); -#endif -int execv (const char *__path, char * const __argv[]); -int execve (const char *__path, char * const __argv[], char * const __envp[]); -int execvp (const char *__file, char * const __argv[]); -#if __GNU_VISIBLE -int execvpe (const char *__file, char * const __argv[], char * const __envp[]); -#endif -#if __ATFILE_VISIBLE -int faccessat (int __dirfd, const char *__path, int __mode, int __flags); -#endif -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -int fchdir (int __fildes); -#endif -#if __POSIX_VISIBLE >= 199309 -int fchmod (int __fildes, mode_t __mode); -#endif -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -int fchown (int __fildes, uid_t __owner, gid_t __group); -#endif -#if __ATFILE_VISIBLE -int fchownat (int __dirfd, const char *__path, uid_t __owner, gid_t __group, int __flags); -#endif -#if __POSIX_VISIBLE >= 200809 -int fexecve (int __fd, char * const __argv[], char * const __envp[]); -#endif -pid_t fork (void); -long fpathconf (int __fd, int __name); -int fsync (int __fd); -#if __POSIX_VISIBLE >= 199309 -int fdatasync (int __fd); -#endif -#if __GNU_VISIBLE -char * get_current_dir_name (void); -#endif -char * getcwd (char *__buf, size_t __size); -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -int getdomainname (char *__name, size_t __len); -#endif -#if __BSD_VISIBLE -int getentropy (void *, size_t); -#endif -gid_t getegid (void); -uid_t geteuid (void); -gid_t getgid (void); -int getgroups (int __gidsetsize, gid_t __grouplist[]); -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 -long gethostid (void); -#endif -char * getlogin (void); -#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) -int getlogin_r (char *name, size_t namesize) ; -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE && __POSIX_VISIBLE < 200112) -char * getpass (const char *__prompt); -int getpagesize (void); -#endif -#if __BSD_VISIBLE -int getpeereid (int, uid_t *, gid_t *); -#endif -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4 -pid_t getpgid (pid_t); -#endif -pid_t getpgrp (void); -pid_t getpid (void); -pid_t getppid (void); -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4 -pid_t getsid (pid_t); -#endif -uid_t getuid (void); -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -char * getusershell (void); -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200809) -char * getwd (char *__buf); -#endif -#if __BSD_VISIBLE -int iruserok (unsigned long raddr, int superuser, const char *ruser, const char *luser); -#endif -int isatty (int __fildes); -#if __BSD_VISIBLE -int issetugid (void); -#endif -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -int lchown (const char *__path, uid_t __owner, gid_t __group); -#endif -int link (const char *__path1, const char *__path2); -#if __ATFILE_VISIBLE -int linkat (int __dirfd1, const char *__path1, int __dirfd2, const char *__path2, int __flags); -#endif -#if __MISC_VISIBLE || __XSI_VISIBLE -int nice (int __nice_value); -#endif -#if !defined(__INSIDE_CYGWIN__) -off_t lseek (int __fildes, off_t __offset, int __whence); -#endif -#if __MISC_VISIBLE || __XSI_VISIBLE >= 4 -#define F_ULOCK 0 -#define F_LOCK 1 -#define F_TLOCK 2 -#define F_TEST 3 -int lockf (int __fd, int __cmd, off_t __len); -#endif -long pathconf (const char *__path, int __name); -int pause (void); -#if __POSIX_VISIBLE >= 199506 -int pthread_atfork (void (*)(void), void (*)(void), void (*)(void)); -#endif -int pipe (int __fildes[2]); -#if __GNU_VISIBLE -int pipe2 (int __fildes[2], int flags); -#endif -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500 -ssize_t pread (int __fd, void *__buf, size_t __nbytes, off_t __offset); -ssize_t pwrite (int __fd, const void *__buf, size_t __nbytes, off_t __offset); -#endif -_READ_WRITE_RETURN_TYPE read (int __fd, void *__buf, size_t __nbyte); -#if __BSD_VISIBLE -int rresvport (int *__alport); -int revoke (char *__path); -#endif -int rmdir (const char *__path); -#if __BSD_VISIBLE -int ruserok (const char *rhost, int superuser, const char *ruser, const char *luser); -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112) -void * sbrk (ptrdiff_t __incr); -#endif -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 -int setegid (gid_t __gid); -int seteuid (uid_t __uid); -#endif -int setgid (gid_t __gid); -#if __BSD_VISIBLE -int setgroups (int ngroups, const gid_t *grouplist); -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -int sethostname (const char *, size_t); -#endif -int setpgid (pid_t __pid, pid_t __pgid); -#if __SVID_VISIBLE || __XSI_VISIBLE >= 500 -int setpgrp (void); -#endif -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 -int setregid (gid_t __rgid, gid_t __egid); -int setreuid (uid_t __ruid, uid_t __euid); -#endif -pid_t setsid (void); -int setuid (uid_t __uid); -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -void setusershell (void); -#endif -unsigned sleep (unsigned int __seconds); -#if __XSI_VISIBLE -void swab (const void *__restrict, void *__restrict, ssize_t); -#endif -long sysconf (int __name); -pid_t tcgetpgrp (int __fildes); -int tcsetpgrp (int __fildes, pid_t __pgrp_id); -char * ttyname (int __fildes); -int ttyname_r (int, char *, size_t); -int unlink (const char *__path); -#if __XSI_VISIBLE >= 500 && __POSIX_VISIBLE < 200809 || __BSD_VISIBLE -int usleep (useconds_t __useconds); -#endif -#if __BSD_VISIBLE -int vhangup (void); -#endif -_READ_WRITE_RETURN_TYPE write (int __fd, const void *__buf, size_t __nbyte); - -#ifdef __CYGWIN__ -# define __UNISTD_GETOPT__ -# include -# undef __UNISTD_GETOPT__ -#else -extern char *optarg; /* getopt(3) external variables */ -extern int optind, opterr, optopt; -int getopt(int, char * const [], const char *); -extern int optreset; /* getopt(3) external variable */ -#endif - -#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200809) -pid_t vfork (void); -#endif - -#ifdef _LIBC -/* Provide prototypes for most of the _ names that are - provided in newlib for some compilers. */ -int _close (int __fildes); -pid_t _fork (void); -pid_t _getpid (void); -int _isatty (int __fildes); -int _link (const char *__path1, const char *__path2); -_off_t _lseek (int __fildes, _off_t __offset, int __whence); -#ifdef __LARGE64_FILES -_off64_t _lseek64 (int __filedes, _off64_t __offset, int __whence); -#endif -_READ_WRITE_RETURN_TYPE _read (int __fd, void *__buf, size_t __nbyte); -void * _sbrk (ptrdiff_t __incr); -int _unlink (const char *__path); -_READ_WRITE_RETURN_TYPE _write (int __fd, const void *__buf, size_t __nbyte); -int _execve (const char *__path, char * const __argv[], char * const __envp[]); -#endif - -#if !defined(__INSIDE_CYGWIN__) -#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500 -int ftruncate (int __fd, off_t __length); -#endif -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500 -int truncate (const char *, off_t __length); -#endif -#endif - -#if __BSD_VISIBLE || __POSIX_VISIBLE < 200112 -int getdtablesize (void); -#endif -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500 -useconds_t ualarm (useconds_t __useconds, useconds_t __interval); -#endif - -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500 -#if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) -/* winsock[2].h defines as __stdcall, and with int as 2nd arg */ - int gethostname (char *__name, size_t __len); -#endif -#endif - -#if __MISC_VISIBLE -int setdtablesize (int); -#endif - -#if __BSD_VISIBLE || __XSI_VISIBLE >= 500 -void sync (void); -#endif - -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 4 -ssize_t readlink (const char *__restrict __path, - char *__restrict __buf, size_t __buflen); -int symlink (const char *__name1, const char *__name2); -#endif -#if __ATFILE_VISIBLE -ssize_t readlinkat (int __dirfd1, const char *__restrict __path, - char *__restrict __buf, size_t __buflen); -int symlinkat (const char *, int, const char *); -int unlinkat (int, const char *, int); -#endif - -#define F_OK 0 -#define R_OK 4 -#define W_OK 2 -#define X_OK 1 - -# define SEEK_SET 0 -# define SEEK_CUR 1 -# define SEEK_END 2 - -#include - -#define STDIN_FILENO 0 /* standard input file descriptor */ -#define STDOUT_FILENO 1 /* standard output file descriptor */ -#define STDERR_FILENO 2 /* standard error file descriptor */ - -/* - * sysconf values per IEEE Std 1003.1, 2008 Edition - */ - -#define _SC_ARG_MAX 0 -#define _SC_CHILD_MAX 1 -#define _SC_CLK_TCK 2 -#define _SC_NGROUPS_MAX 3 -#define _SC_OPEN_MAX 4 -#define _SC_JOB_CONTROL 5 -#define _SC_SAVED_IDS 6 -#define _SC_VERSION 7 -#define _SC_PAGESIZE 8 -#define _SC_PAGE_SIZE _SC_PAGESIZE -/* These are non-POSIX values we accidentally introduced in 2000 without - guarding them. Keeping them unguarded for backward compatibility. */ -#define _SC_NPROCESSORS_CONF 9 -#define _SC_NPROCESSORS_ONLN 10 -#define _SC_PHYS_PAGES 11 -#define _SC_AVPHYS_PAGES 12 -/* End of non-POSIX values. */ -#define _SC_MQ_OPEN_MAX 13 -#define _SC_MQ_PRIO_MAX 14 -#define _SC_RTSIG_MAX 15 -#define _SC_SEM_NSEMS_MAX 16 -#define _SC_SEM_VALUE_MAX 17 -#define _SC_SIGQUEUE_MAX 18 -#define _SC_TIMER_MAX 19 -#define _SC_TZNAME_MAX 20 -#define _SC_ASYNCHRONOUS_IO 21 -#define _SC_FSYNC 22 -#define _SC_MAPPED_FILES 23 -#define _SC_MEMLOCK 24 -#define _SC_MEMLOCK_RANGE 25 -#define _SC_MEMORY_PROTECTION 26 -#define _SC_MESSAGE_PASSING 27 -#define _SC_PRIORITIZED_IO 28 -#define _SC_REALTIME_SIGNALS 29 -#define _SC_SEMAPHORES 30 -#define _SC_SHARED_MEMORY_OBJECTS 31 -#define _SC_SYNCHRONIZED_IO 32 -#define _SC_TIMERS 33 -#define _SC_AIO_LISTIO_MAX 34 -#define _SC_AIO_MAX 35 -#define _SC_AIO_PRIO_DELTA_MAX 36 -#define _SC_DELAYTIMER_MAX 37 -#define _SC_THREAD_KEYS_MAX 38 -#define _SC_THREAD_STACK_MIN 39 -#define _SC_THREAD_THREADS_MAX 40 -#define _SC_TTY_NAME_MAX 41 -#define _SC_THREADS 42 -#define _SC_THREAD_ATTR_STACKADDR 43 -#define _SC_THREAD_ATTR_STACKSIZE 44 -#define _SC_THREAD_PRIORITY_SCHEDULING 45 -#define _SC_THREAD_PRIO_INHERIT 46 -/* _SC_THREAD_PRIO_PROTECT was _SC_THREAD_PRIO_CEILING in early drafts */ -#define _SC_THREAD_PRIO_PROTECT 47 -#define _SC_THREAD_PRIO_CEILING _SC_THREAD_PRIO_PROTECT -#define _SC_THREAD_PROCESS_SHARED 48 -#define _SC_THREAD_SAFE_FUNCTIONS 49 -#define _SC_GETGR_R_SIZE_MAX 50 -#define _SC_GETPW_R_SIZE_MAX 51 -#define _SC_LOGIN_NAME_MAX 52 -#define _SC_THREAD_DESTRUCTOR_ITERATIONS 53 -#define _SC_ADVISORY_INFO 54 -#define _SC_ATEXIT_MAX 55 -#define _SC_BARRIERS 56 -#define _SC_BC_BASE_MAX 57 -#define _SC_BC_DIM_MAX 58 -#define _SC_BC_SCALE_MAX 59 -#define _SC_BC_STRING_MAX 60 -#define _SC_CLOCK_SELECTION 61 -#define _SC_COLL_WEIGHTS_MAX 62 -#define _SC_CPUTIME 63 -#define _SC_EXPR_NEST_MAX 64 -#define _SC_HOST_NAME_MAX 65 -#define _SC_IOV_MAX 66 -#define _SC_IPV6 67 -#define _SC_LINE_MAX 68 -#define _SC_MONOTONIC_CLOCK 69 -#define _SC_RAW_SOCKETS 70 -#define _SC_READER_WRITER_LOCKS 71 -#define _SC_REGEXP 72 -#define _SC_RE_DUP_MAX 73 -#define _SC_SHELL 74 -#define _SC_SPAWN 75 -#define _SC_SPIN_LOCKS 76 -#define _SC_SPORADIC_SERVER 77 -#define _SC_SS_REPL_MAX 78 -#define _SC_SYMLOOP_MAX 79 -#define _SC_THREAD_CPUTIME 80 -#define _SC_THREAD_SPORADIC_SERVER 81 -#define _SC_TIMEOUTS 82 -#define _SC_TRACE 83 -#define _SC_TRACE_EVENT_FILTER 84 -#define _SC_TRACE_EVENT_NAME_MAX 85 -#define _SC_TRACE_INHERIT 86 -#define _SC_TRACE_LOG 87 -#define _SC_TRACE_NAME_MAX 88 -#define _SC_TRACE_SYS_MAX 89 -#define _SC_TRACE_USER_EVENT_MAX 90 -#define _SC_TYPED_MEMORY_OBJECTS 91 -#define _SC_V7_ILP32_OFF32 92 -#define _SC_V6_ILP32_OFF32 _SC_V7_ILP32_OFF32 -#define _SC_XBS5_ILP32_OFF32 _SC_V7_ILP32_OFF32 -#define _SC_V7_ILP32_OFFBIG 93 -#define _SC_V6_ILP32_OFFBIG _SC_V7_ILP32_OFFBIG -#define _SC_XBS5_ILP32_OFFBIG _SC_V7_ILP32_OFFBIG -#define _SC_V7_LP64_OFF64 94 -#define _SC_V6_LP64_OFF64 _SC_V7_LP64_OFF64 -#define _SC_XBS5_LP64_OFF64 _SC_V7_LP64_OFF64 -#define _SC_V7_LPBIG_OFFBIG 95 -#define _SC_V6_LPBIG_OFFBIG _SC_V7_LPBIG_OFFBIG -#define _SC_XBS5_LPBIG_OFFBIG _SC_V7_LPBIG_OFFBIG -#define _SC_XOPEN_CRYPT 96 -#define _SC_XOPEN_ENH_I18N 97 -#define _SC_XOPEN_LEGACY 98 -#define _SC_XOPEN_REALTIME 99 -#define _SC_STREAM_MAX 100 -#define _SC_PRIORITY_SCHEDULING 101 -#define _SC_XOPEN_REALTIME_THREADS 102 -#define _SC_XOPEN_SHM 103 -#define _SC_XOPEN_STREAMS 104 -#define _SC_XOPEN_UNIX 105 -#define _SC_XOPEN_VERSION 106 -#define _SC_2_CHAR_TERM 107 -#define _SC_2_C_BIND 108 -#define _SC_2_C_DEV 109 -#define _SC_2_FORT_DEV 110 -#define _SC_2_FORT_RUN 111 -#define _SC_2_LOCALEDEF 112 -#define _SC_2_PBS 113 -#define _SC_2_PBS_ACCOUNTING 114 -#define _SC_2_PBS_CHECKPOINT 115 -#define _SC_2_PBS_LOCATE 116 -#define _SC_2_PBS_MESSAGE 117 -#define _SC_2_PBS_TRACK 118 -#define _SC_2_SW_DEV 119 -#define _SC_2_UPE 120 -#define _SC_2_VERSION 121 -#define _SC_THREAD_ROBUST_PRIO_INHERIT 122 -#define _SC_THREAD_ROBUST_PRIO_PROTECT 123 -#define _SC_XOPEN_UUCP 124 -#define _SC_LEVEL1_ICACHE_SIZE 125 -#define _SC_LEVEL1_ICACHE_ASSOC 126 -#define _SC_LEVEL1_ICACHE_LINESIZE 127 -#define _SC_LEVEL1_DCACHE_SIZE 128 -#define _SC_LEVEL1_DCACHE_ASSOC 129 -#define _SC_LEVEL1_DCACHE_LINESIZE 130 -#define _SC_LEVEL2_CACHE_SIZE 131 -#define _SC_LEVEL2_CACHE_ASSOC 132 -#define _SC_LEVEL2_CACHE_LINESIZE 133 -#define _SC_LEVEL3_CACHE_SIZE 134 -#define _SC_LEVEL3_CACHE_ASSOC 135 -#define _SC_LEVEL3_CACHE_LINESIZE 136 -#define _SC_LEVEL4_CACHE_SIZE 137 -#define _SC_LEVEL4_CACHE_ASSOC 138 -#define _SC_LEVEL4_CACHE_LINESIZE 139 -#define _SC_POSIX_26_VERSION 140 - -/* - * pathconf values per IEEE Std 1003.1, 2008 Edition - */ - -#define _PC_LINK_MAX 0 -#define _PC_MAX_CANON 1 -#define _PC_MAX_INPUT 2 -#define _PC_NAME_MAX 3 -#define _PC_PATH_MAX 4 -#define _PC_PIPE_BUF 5 -#define _PC_CHOWN_RESTRICTED 6 -#define _PC_NO_TRUNC 7 -#define _PC_VDISABLE 8 -#define _PC_ASYNC_IO 9 -#define _PC_PRIO_IO 10 -#define _PC_SYNC_IO 11 -#define _PC_FILESIZEBITS 12 -#define _PC_2_SYMLINKS 13 -#define _PC_SYMLINK_MAX 14 -#define _PC_ALLOC_SIZE_MIN 15 -#define _PC_REC_INCR_XFER_SIZE 16 -#define _PC_REC_MAX_XFER_SIZE 17 -#define _PC_REC_MIN_XFER_SIZE 18 -#define _PC_REC_XFER_ALIGN 19 -#define _PC_TIMESTAMP_RESOLUTION 20 -#ifdef __CYGWIN__ -/* Ask for POSIX permission bits support. */ -#define _PC_POSIX_PERMISSIONS 90 -/* Ask for full POSIX permission support including uid/gid settings. */ -#define _PC_POSIX_SECURITY 91 -#define _PC_CASE_INSENSITIVE 92 -#endif - -/* - * confstr values per IEEE Std 1003.1, 2004 Edition - */ - -/* Only defined on Cygwin and RTEMS for now. */ -#if defined (__CYGWIN__) || defined(__rtems__) -#define _CS_PATH 0 -#define _CS_POSIX_V7_ILP32_OFF32_CFLAGS 1 -#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V7_ILP32_OFF32_CFLAGS -#define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_POSIX_V7_ILP32_OFF32_CFLAGS -#define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS 2 -#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V7_ILP32_OFF32_LDFLAGS -#define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_POSIX_V7_ILP32_OFF32_LDFLAGS -#define _CS_POSIX_V7_ILP32_OFF32_LIBS 3 -#define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V7_ILP32_OFF32_LIBS -#define _CS_XBS5_ILP32_OFF32_LIBS _CS_POSIX_V7_ILP32_OFF32_LIBS -#define _CS_XBS5_ILP32_OFF32_LINTFLAGS 4 -#define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS 5 -#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS -#define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS -#define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS 6 -#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS -#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS -#define _CS_POSIX_V7_ILP32_OFFBIG_LIBS 7 -#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V7_ILP32_OFFBIG_LIBS -#define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_POSIX_V7_ILP32_OFFBIG_LIBS -#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS 8 -#define _CS_POSIX_V7_LP64_OFF64_CFLAGS 9 -#define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V7_LP64_OFF64_CFLAGS -#define _CS_XBS5_LP64_OFF64_CFLAGS _CS_POSIX_V7_LP64_OFF64_CFLAGS -#define _CS_POSIX_V7_LP64_OFF64_LDFLAGS 10 -#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V7_LP64_OFF64_LDFLAGS -#define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_POSIX_V7_LP64_OFF64_LDFLAGS -#define _CS_POSIX_V7_LP64_OFF64_LIBS 11 -#define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V7_LP64_OFF64_LIBS -#define _CS_XBS5_LP64_OFF64_LIBS _CS_POSIX_V7_LP64_OFF64_LIBS -#define _CS_XBS5_LP64_OFF64_LINTFLAGS 12 -#define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS 13 -#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS -#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS -#define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS 14 -#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS -#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS -#define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS 15 -#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS -#define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS -#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS 16 -#define _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS 17 -#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS -#define _CS_XBS5_WIDTH_RESTRICTED_ENVS _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS -#define _CS_POSIX_V7_THREADS_CFLAGS 18 -#define _CS_POSIX_V7_THREADS_LDFLAGS 19 -#define _CS_V7_ENV 20 -#define _CS_V6_ENV _CS_V7_ENV -#define _CS_LFS_CFLAGS 21 -#define _CS_LFS_LDFLAGS 22 -#define _CS_LFS_LIBS 23 -#define _CS_LFS_LINTFLAGS 24 -#endif - -#ifdef __cplusplus -} -#endif - -#if __SSP_FORTIFY_LEVEL > 0 -#include -#endif - -#endif /* _SYS_UNISTD_H */ diff --git a/include/sys/utime.h b/include/sys/utime.h deleted file mode 100644 index 5e937f1..0000000 --- a/include/sys/utime.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef _SYS_UTIME_H -#define _SYS_UTIME_H - -/* This is a dummy file, not customized for any - particular system. If there is a utime.h in libc/sys/SYSDIR/sys, - it will override this one. */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct utimbuf -{ - time_t actime; - time_t modtime; -}; - -#ifdef __cplusplus -}; -#endif - -#endif /* _SYS_UTIME_H */ diff --git a/include/sys/wait.h b/include/sys/wait.h deleted file mode 100644 index d15eec9..0000000 --- a/include/sys/wait.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef _SYS_WAIT_H -#define _SYS_WAIT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#define WNOHANG 1 -#define WUNTRACED 2 - -/* A status looks like: - <1 byte info> <1 byte code> - - == 0, child has exited, info is the exit value - == 1..7e, child has exited, info is the signal number. - == 7f, child has stopped, info was the signal number. - == 80, there was a core dump. -*/ - -#define WIFEXITED(w) (((w) & 0xff) == 0) -#define WIFSIGNALED(w) (((w) & 0x7f) > 0 && (((w) & 0x7f) < 0x7f)) -#define WIFSTOPPED(w) (((w) & 0xff) == 0x7f) -#define WEXITSTATUS(w) (((w) >> 8) & 0xff) -#define WTERMSIG(w) ((w) & 0x7f) -#define WSTOPSIG WEXITSTATUS - -pid_t wait (int *); -pid_t waitpid (pid_t, int *, int); - -#ifdef _LIBC -pid_t _wait (int *); -#endif - -/* Provide prototypes for most of the _ names that are - provided in newlib for some compilers. */ -pid_t _wait (int *); - -#ifdef __cplusplus -}; -#endif - -#endif diff --git a/include/tar.h b/include/tar.h deleted file mode 100644 index 36437fc..0000000 --- a/include/tar.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * tar.h - */ - -#ifndef _TAR_H -#define _TAR_H - -#include - -/* General definitions */ -#define TMAGIC "ustar" /* ustar plus null byte. */ -#define TMAGLEN 6 /* Length of the above. */ -#define TVERSION "00" /* 00 without a null byte. */ -#define TVERSLEN 2 /* Length of the above. */ - -/* Typeflag field definitions */ -#define REGTYPE '0' /* Regular file. */ -#define AREGTYPE '\0' /* Regular file. */ -#define LNKTYPE '1' /* Link. */ -#define SYMTYPE '2' /* Symbolic link. */ -#define CHRTYPE '3' /* Character special. */ -#define BLKTYPE '4' /* Block special. */ -#define DIRTYPE '5' /* Directory. */ -#define FIFOTYPE '6' /* FIFO special. */ -#define CONTTYPE '7' /* Reserved. */ - -/* Mode field bit definitions (octal) */ -#define TSUID 04000 /* Set UID on execution. */ -#define TSGID 02000 /* Set GID on execution. */ -#if __XSI_VISIBLE || __POSIX_VISIBLE < 200112 -#define TSVTX 01000 /* On directories, restricted deletion flag. */ -#endif -#define TUREAD 00400 /* Read by owner. */ -#define TUWRITE 00200 /* Write by owner. */ -#define TUEXEC 00100 /* Execute/search by owner. */ -#define TGREAD 00040 /* Read by group. */ -#define TGWRITE 00020 /* Write by group. */ -#define TGEXEC 00010 /* Execute/search by group. */ -#define TOREAD 00004 /* Read by other. */ -#define TOWRITE 00002 /* Write by other. */ -#define TOEXEC 00001 /* Execute/search by other. */ - -#endif diff --git a/include/termios.h b/include/termios.h deleted file mode 100644 index ee1820c..0000000 --- a/include/termios.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif -#include -#ifdef __cplusplus -} -#endif diff --git a/include/tgmath.h b/include/tgmath.h deleted file mode 100644 index 97dc50e..0000000 --- a/include/tgmath.h +++ /dev/null @@ -1,185 +0,0 @@ -/* http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/tgmath.h.html */ -/*- - * Copyright (c) 2004 Stefan Farfeleder. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _TGMATH_H_ -#define _TGMATH_H_ - -#include -#include - -#ifdef log2 -#undef log2 -#endif - -/* - * This implementation of requires two implementation-dependent - * macros to be defined: - * __tg_impl_simple(x, y, z, fn, fnf, fnl, ...) - * Invokes fnl() if the corresponding real type of x, y or z is long - * double, fn() if it is double or any has an integer type, and fnf() - * otherwise. - * __tg_impl_full(x, y, z, fn, fnf, fnl, cfn, cfnf, cfnl, ...) - * Invokes [c]fnl() if the corresponding real type of x, y or z is long - * double, [c]fn() if it is double or any has an integer type, and - * [c]fnf() otherwise. The function with the 'c' prefix is called if - * any of x, y or z is a complex number. - * Both macros call the chosen function with all additional arguments passed - * to them, as given by __VA_ARGS__. - * - * Note that these macros cannot be implemented with C's ?: operator, - * because the return type of the whole expression would incorrectly be long - * double complex regardless of the argument types. - */ - -/* requires GCC >= 3.1 */ -#if !__GNUC_PREREQ (3, 1) -#error " not implemented for this compiler" -#endif - -#define __tg_type(__e, __t) \ - __builtin_types_compatible_p(__typeof__(__e), __t) -#define __tg_type3(__e1, __e2, __e3, __t) \ - (__tg_type(__e1, __t) || __tg_type(__e2, __t) || \ - __tg_type(__e3, __t)) -#define __tg_type_corr(__e1, __e2, __e3, __t) \ - (__tg_type3(__e1, __e2, __e3, __t) || \ - __tg_type3(__e1, __e2, __e3, __t _Complex)) -#define __tg_integer(__e1, __e2, __e3) \ - (((__typeof__(__e1))1.5 == 1) || ((__typeof__(__e2))1.5 == 1) || \ - ((__typeof__(__e3))1.5 == 1)) -#define __tg_is_complex(__e1, __e2, __e3) \ - (__tg_type3(__e1, __e2, __e3, float _Complex) || \ - __tg_type3(__e1, __e2, __e3, double _Complex) || \ - __tg_type3(__e1, __e2, __e3, long double _Complex) || \ - __tg_type3(__e1, __e2, __e3, __typeof__(_Complex_I))) - -#if defined (_LDBL_EQ_DBL) || defined (__CYGWIN__) -#define __tg_impl_simple(x, y, z, fn, fnf, fnl, ...) \ - __builtin_choose_expr(__tg_type_corr(x, y, z, long double), \ - fnl(__VA_ARGS__), __builtin_choose_expr( \ - __tg_type_corr(x, y, z, double) || __tg_integer(x, y, z),\ - fn(__VA_ARGS__), fnf(__VA_ARGS__))) -#else -#define __tg_impl_simple(__x, __y, __z, __fn, __fnf, __fnl, ...) \ - (__tg_type_corr(__x, __y, __z, double) || __tg_integer(__x, __y, __z)) \ - ? __fn(__VA_ARGS__) : __fnf(__VA_ARGS__) -#endif - -#define __tg_impl_full(__x, __y, __z, __fn, __fnf, __fnl, __cfn, __cfnf, __cfnl, ...) \ - __builtin_choose_expr(__tg_is_complex(__x, __y, __z), \ - __tg_impl_simple(__x, __y, __z, __cfn, __cfnf, __cfnl, __VA_ARGS__), \ - __tg_impl_simple(__x, __y, __z, __fn, __fnf, __fnl, __VA_ARGS__)) - -/* Macros to save lots of repetition below */ -#define __tg_simple(__x, __fn) \ - __tg_impl_simple(__x, __x, __x, __fn, __fn##f, __fn##l, __x) -#define __tg_simple2(__x, __y, __fn) \ - __tg_impl_simple(__x, __x, __y, __fn, __fn##f, __fn##l, __x, __y) -#define __tg_simplev(__x, __fn, ...) \ - __tg_impl_simple(__x, __x, __x, __fn, __fn##f, __fn##l, __VA_ARGS__) -#define __tg_full(__x, __fn) \ - __tg_impl_full(__x, __x, __x, __fn, __fn##f, __fn##l, c##__fn, c##__fn##f, c##__fn##l, __x) - -/* 7.22#4 -- These macros expand to real or complex functions, depending on - * the type of their arguments. */ -#define acos(__x) __tg_full(__x, acos) -#define asin(__x) __tg_full(__x, asin) -#define atan(__x) __tg_full(__x, atan) -#define acosh(__x) __tg_full(__x, acosh) -#define asinh(__x) __tg_full(__x, asinh) -#define atanh(__x) __tg_full(__x, atanh) -#define cos(__x) __tg_full(__x, cos) -#define sin(__x) __tg_full(__x, sin) -#define tan(__x) __tg_full(__x, tan) -#define cosh(__x) __tg_full(__x, cosh) -#define sinh(__x) __tg_full(__x, sinh) -#define tanh(__x) __tg_full(__x, tanh) -#define exp(__x) __tg_full(__x, exp) -#define log(__x) __tg_full(__x, log) -#define pow(__x, __y) __tg_impl_full(__x, __x, __y, pow, powf, powl, \ - cpow, cpowf, cpowl, __x, __y) -#define sqrt(__x) __tg_full(__x, sqrt) - -/* "The corresponding type-generic macro for fabs and cabs is fabs." */ -#define fabs(__x) __tg_impl_full(__x, __x, __x, fabs, fabsf, fabsl, \ - cabs, cabsf, cabsl, __x) - -/* 7.22#5 -- These macros are only defined for arguments with real type. */ -#define atan2(__x, __y) __tg_simple2(__x, __y, atan2) -#define cbrt(__x) __tg_simple(__x, cbrt) -#define ceil(__x) __tg_simple(__x, ceil) -#define copysign(__x, __y) __tg_simple2(__x, __y, copysign) -#define erf(__x) __tg_simple(__x, erf) -#define erfc(__x) __tg_simple(__x, erfc) -#define exp2(__x) __tg_simple(__x, exp2) -#define expm1(__x) __tg_simple(__x, expm1) -#define fdim(__x, __y) __tg_simple2(__x, __y, fdim) -#define floor(__x) __tg_simple(__x, floor) -#define fma(__x, __y, __z) __tg_impl_simple(__x, __y, __z, fma, fmaf, fmal, \ - __x, __y, __z) -#define fmax(__x, __y) __tg_simple2(__x, __y, fmax) -#define fmin(__x, __y) __tg_simple2(__x, __y, fmin) -#define fmod(__x, __y) __tg_simple2(__x, __y, fmod) -#define frexp(__x, __y) __tg_simplev(__x, frexp, __x, __y) -#define hypot(__x, __y) __tg_simple2(__x, __y, hypot) -#define ilogb(__x) __tg_simple(__x, ilogb) -#define ldexp(__x, __y) __tg_simplev(__x, ldexp, __x, __y) -#define lgamma(__x) __tg_simple(__x, lgamma) -#define llrint(__x) __tg_simple(__x, llrint) -#define llround(__x) __tg_simple(__x, llround) -#define log10(__x) __tg_simple(__x, log10) -#define log1p(__x) __tg_simple(__x, log1p) -#define log2(__x) __tg_simple(__x, log2) -#define logb(__x) __tg_simple(__x, logb) -#define lrint(__x) __tg_simple(__x, lrint) -#define lround(__x) __tg_simple(__x, lround) -#define nearbyint(__x) __tg_simple(__x, nearbyint) -#define nextafter(__x, __y) __tg_simple2(__x, __y, nextafter) -/* not yet implemented even for _LDBL_EQ_DBL platforms */ -#ifdef __CYGWIN__ -#define nexttoward(__x, __y) __tg_simplev(__x, nexttoward, __x, __y) -#endif -#define remainder(__x, __y) __tg_simple2(__x, __y, remainder) -#define remquo(__x, __y, __z) __tg_impl_simple(__x, __x, __y, remquo, remquof, \ - remquol, __x, __y, __z) -#define rint(__x) __tg_simple(__x, rint) -#define round(__x) __tg_simple(__x, round) -#define scalbn(__x, __y) __tg_simplev(__x, scalbn, __x, __y) -#define scalbln(__x, __y) __tg_simplev(__x, scalbln, __x, __y) -#define tgamma(__x) __tg_simple(__x, tgamma) -#define trunc(__x) __tg_simple(__x, trunc) - -/* 7.22#6 -- These macros always expand to complex functions. */ -#define carg(__x) __tg_simple(__x, carg) -#define cimag(__x) __tg_simple(__x, cimag) -#define conj(__x) __tg_simple(__x, conj) -#define cproj(__x) __tg_simple(__x, cproj) -#define creal(__x) __tg_simple(__x, creal) - -#endif /* !_TGMATH_H_ */ diff --git a/include/threads.h b/include/threads.h deleted file mode 100644 index 9fb08b0..0000000 --- a/include/threads.h +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * Copyright (c) 2011 Ed Schouten - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _THREADS_H_ -#define _THREADS_H_ - -#include -#include - -typedef void (*tss_dtor_t)(void *); -typedef int (*thrd_start_t)(void *); - -enum { - mtx_plain = 0x1, - mtx_recursive = 0x2, - mtx_timed = 0x4 -}; - -enum { - thrd_busy = 1, - thrd_error = 2, - thrd_nomem = 3, - thrd_success = 4, - thrd_timedout = 5 -}; - -#if !defined(__cplusplus) || __cplusplus < 201103L -#define thread_local _Thread_local -#endif - -__BEGIN_DECLS -void call_once(once_flag *, void (*)(void)); -int cnd_broadcast(cnd_t *); -void cnd_destroy(cnd_t *); -int cnd_init(cnd_t *); -int cnd_signal(cnd_t *); -int cnd_timedwait(cnd_t *__restrict, mtx_t *__restrict __mtx, - const struct timespec *__restrict) - __requires_exclusive(*__mtx); -int cnd_wait(cnd_t *, mtx_t *__mtx) - __requires_exclusive(*__mtx); -void mtx_destroy(mtx_t *__mtx) - __requires_unlocked(*__mtx); -int mtx_init(mtx_t *__mtx, int) - __requires_unlocked(*__mtx); -int mtx_lock(mtx_t *__mtx) - __locks_exclusive(*__mtx); -int mtx_timedlock(mtx_t *__restrict __mtx, - const struct timespec *__restrict) - __trylocks_exclusive(thrd_success, *__mtx); -int mtx_trylock(mtx_t *__mtx) - __trylocks_exclusive(thrd_success, *__mtx); -int mtx_unlock(mtx_t *__mtx) - __unlocks(*__mtx); -int thrd_create(thrd_t *, thrd_start_t, void *); -thrd_t thrd_current(void); -int thrd_detach(thrd_t); -int thrd_equal(thrd_t, thrd_t); -_Noreturn void - thrd_exit(int); -int thrd_join(thrd_t, int *); -int thrd_sleep(const struct timespec *, struct timespec *); -void thrd_yield(void); -int tss_create(tss_t *, tss_dtor_t); -void tss_delete(tss_t); -void * tss_get(tss_t); -int tss_set(tss_t, void *); -__END_DECLS - -#endif /* !_THREADS_H_ */ diff --git a/include/time.h b/include/time.h deleted file mode 100644 index ed6cc70..0000000 --- a/include/time.h +++ /dev/null @@ -1,313 +0,0 @@ -/* - * time.h - * - * Struct and function declarations for dealing with time. - */ - -#ifndef _TIME_H_ -#define _TIME_H_ - -#include "_ansi.h" -#include -#include - -#define __need_size_t -#define __need_NULL -#include - -/* Get _CLOCKS_PER_SEC_ */ -#include - -#ifndef _CLOCKS_PER_SEC_ -#define _CLOCKS_PER_SEC_ 1000 -#endif - -#define CLOCKS_PER_SEC _CLOCKS_PER_SEC_ -#define CLK_TCK CLOCKS_PER_SEC - -#include -#include - -#if __POSIX_VISIBLE >= 200809 -#include -#endif - -_BEGIN_STD_C - -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; -#ifdef __TM_GMTOFF - long __TM_GMTOFF; -#endif -#ifdef __TM_ZONE - const char *__TM_ZONE; -#endif -}; - -clock_t clock (void); -double difftime (time_t _time2, time_t _time1); -time_t mktime (struct tm *_timeptr); -time_t time (time_t *_timer); -#ifndef _REENT_ONLY -char *asctime (const struct tm *_tblock); -char *ctime (const time_t *_time); -struct tm *gmtime (const time_t *_timer); -struct tm *localtime (const time_t *_timer); -#endif -size_t strftime (char *__restrict _s, - size_t _maxsize, const char *__restrict _fmt, - const struct tm *__restrict _t); - -#if __POSIX_VISIBLE >= 200809 -extern size_t strftime_l (char *__restrict _s, size_t _maxsize, - const char *__restrict _fmt, - const struct tm *__restrict _t, locale_t _l); -#endif - -char *asctime_r (const struct tm *__restrict, - char *__restrict); -char *ctime_r (const time_t *, char *); -struct tm *gmtime_r (const time_t *__restrict, - struct tm *__restrict); -struct tm *localtime_r (const time_t *__restrict, - struct tm *__restrict); - -_END_STD_C - -#ifdef __cplusplus -extern "C" { -#endif - -#if __XSI_VISIBLE -char *strptime (const char *__restrict, - const char *__restrict, - struct tm *__restrict); -#endif -#if __GNU_VISIBLE -char *strptime_l (const char *__restrict, const char *__restrict, - struct tm *__restrict, locale_t); -#endif - -#if __POSIX_VISIBLE -void tzset (void); -#endif -void _tzset_r (struct _reent *); - -/* getdate functions */ - -#ifdef HAVE_GETDATE -#if __XSI_VISIBLE >= 4 -#ifndef _REENT_ONLY -#define getdate_err (*__getdate_err()) -int *__getdate_err (void); - -struct tm * getdate (const char *); -/* getdate_err is set to one of the following values to indicate the error. - 1 the DATEMSK environment variable is null or undefined, - 2 the template file cannot be opened for reading, - 3 failed to get file status information, - 4 the template file is not a regular file, - 5 an error is encountered while reading the template file, - 6 memory allication failed (not enough memory available), - 7 there is no line in the template that matches the input, - 8 invalid input specification */ -#endif /* !_REENT_ONLY */ -#endif /* __XSI_VISIBLE >= 4 */ - -#if __GNU_VISIBLE -/* getdate_r returns the error code as above */ -int getdate_r (const char *, struct tm *); -#endif /* __GNU_VISIBLE */ -#endif /* HAVE_GETDATE */ - -/* defines for the opengroup specifications Derived from Issue 1 of the SVID. */ -#if __SVID_VISIBLE || __XSI_VISIBLE -extern __IMPORT long _timezone; -extern __IMPORT int _daylight; -#endif -#if __POSIX_VISIBLE -extern __IMPORT char *_tzname[2]; - -/* POSIX defines the external tzname being defined in time.h */ -#ifndef tzname -#define tzname _tzname -#endif -#endif /* __POSIX_VISIBLE */ - -#ifdef __cplusplus -} -#endif - -#include - -#ifdef __CYGWIN__ -#include -#endif /*__CYGWIN__*/ - -#if defined(_POSIX_TIMERS) - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Clocks, P1003.1b-1993, p. 263 */ - -int clock_settime (clockid_t clock_id, const struct timespec *tp); -int clock_gettime (clockid_t clock_id, struct timespec *tp); -int clock_getres (clockid_t clock_id, struct timespec *res); - -/* Create a Per-Process Timer, P1003.1b-1993, p. 264 */ - -int timer_create (clockid_t clock_id, - struct sigevent *__restrict evp, - timer_t *__restrict timerid); - -/* Delete a Per_process Timer, P1003.1b-1993, p. 266 */ - -int timer_delete (timer_t timerid); - -/* Per-Process Timers, P1003.1b-1993, p. 267 */ - -int timer_settime (timer_t timerid, int flags, - const struct itimerspec *__restrict value, - struct itimerspec *__restrict ovalue); -int timer_gettime (timer_t timerid, struct itimerspec *value); -int timer_getoverrun (timer_t timerid); - -/* High Resolution Sleep, P1003.1b-1993, p. 269 */ - -int nanosleep (const struct timespec *rqtp, struct timespec *rmtp); - -#ifdef __cplusplus -} -#endif -#endif /* _POSIX_TIMERS */ - -#if defined(_POSIX_CLOCK_SELECTION) - -#ifdef __cplusplus -extern "C" { -#endif - -int clock_nanosleep (clockid_t clock_id, int flags, - const struct timespec *rqtp, struct timespec *rmtp); - -#ifdef __cplusplus -} -#endif - -#endif /* _POSIX_CLOCK_SELECTION */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* CPU-time Clock Attributes, P1003.4b/D8, p. 54 */ - -/* values for the clock enable attribute */ - -#define CLOCK_ENABLED 1 /* clock is enabled, i.e. counting execution time */ -#define CLOCK_DISABLED 0 /* clock is disabled */ - -/* values for the pthread cputime_clock_allowed attribute */ - -#define CLOCK_ALLOWED 1 /* If a thread is created with this value a */ - /* CPU-time clock attached to that thread */ - /* shall be accessible. */ -#define CLOCK_DISALLOWED 0 /* If a thread is created with this value, the */ - /* thread shall not have a CPU-time clock */ - /* accessible. */ - -/* Flag indicating time is "absolute" with respect to the clock - associated with a time. Value 4 is historic. */ - -#define TIMER_ABSTIME 4 - -/* Manifest Constants, P1003.1b-1993, p. 262 */ - -#if __GNU_VISIBLE -#define CLOCK_REALTIME_COARSE ((clockid_t) 0) -#endif - -#define CLOCK_REALTIME ((clockid_t) 1) - -/* Manifest Constants, P1003.4b/D8, p. 55 */ - -#if defined(_POSIX_CPUTIME) - -/* When used in a clock or timer function call, this is interpreted as - the identifier of the CPU_time clock associated with the PROCESS - making the function call. */ - -#define CLOCK_PROCESS_CPUTIME_ID ((clockid_t) 2) - -#endif - -#if defined(_POSIX_THREAD_CPUTIME) - -/* When used in a clock or timer function call, this is interpreted as - the identifier of the CPU_time clock associated with the THREAD - making the function call. */ - -#define CLOCK_THREAD_CPUTIME_ID ((clockid_t) 3) - -#endif - -#if defined(_POSIX_MONOTONIC_CLOCK) - -/* The identifier for the system-wide monotonic clock, which is defined - * as a clock whose value cannot be set via clock_settime() and which - * cannot have backward clock jumps. */ - -#define CLOCK_MONOTONIC ((clockid_t) 4) - -#endif - -#if __GNU_VISIBLE - -#define CLOCK_MONOTONIC_RAW ((clockid_t) 5) - -#define CLOCK_MONOTONIC_COARSE ((clockid_t) 6) - -#define CLOCK_BOOTTIME ((clockid_t) 7) - -#define CLOCK_REALTIME_ALARM ((clockid_t) 8) - -#define CLOCK_BOOTTIME_ALARM ((clockid_t) 9) - -#endif - -#if defined(_POSIX_CPUTIME) - -/* Accessing a Process CPU-time CLock, P1003.4b/D8, p. 55 */ - -int clock_getcpuclockid (pid_t pid, clockid_t *clock_id); - -#endif /* _POSIX_CPUTIME */ - -#if defined(_POSIX_CPUTIME) || defined(_POSIX_THREAD_CPUTIME) - -/* CPU-time Clock Attribute Access, P1003.4b/D8, p. 56 */ - -int clock_setenable_attr (clockid_t clock_id, int attr); -int clock_getenable_attr (clockid_t clock_id, int *attr); - -#endif /* _POSIX_CPUTIME or _POSIX_THREAD_CPUTIME */ - -#ifdef __cplusplus -} -#endif - -#endif /* _TIME_H_ */ - diff --git a/include/timeval-utils.h b/include/timeval-utils.h deleted file mode 100644 index adbe818..0000000 --- a/include/timeval-utils.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Basic struct timeval utilities. - Copyright (C) 2011-2015 Free Software Foundation, Inc. - -This file is part of the libiberty library. -Libiberty is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -Libiberty is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with libiberty; see the file COPYING.LIB. If not, -write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, -Boston, MA 02110-1301, USA. */ - -#ifndef TIMEVAL_UTILS_H -#define TIMEVAL_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* forward decl */ -struct timeval; - -extern void timeval_add (struct timeval *result, - const struct timeval *a, const struct timeval *b); - -extern void timeval_sub (struct timeval *result, - const struct timeval *a, const struct timeval *b); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* TIMEVAL_UTILS_H */ diff --git a/include/unctrl.h b/include/unctrl.h deleted file mode 100644 index 3363328..0000000 --- a/include/unctrl.h +++ /dev/null @@ -1,42 +0,0 @@ -/* From curses.h. */ -/* - * Copyright (c) 1981, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _UNCTRL_H_ -#define _UNCTRL_H_ - -#include <_ansi.h> - -#define unctrl(c) __unctrl[(c) & 0xff] -#define unctrllen(ch) __unctrllen[(ch) & 0xff] - -extern __IMPORT const char * const __unctrl[256]; /* Control strings. */ -extern __IMPORT const char __unctrllen[256]; /* Control strings length. */ - -#endif /* _UNCTRL_H_ */ diff --git a/include/unistd.h b/include/unistd.h deleted file mode 100644 index f9fca84..0000000 --- a/include/unistd.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _UNISTD_H_ -#define _UNISTD_H_ - -# include - -#endif /* _UNISTD_H_ */ diff --git a/include/utime.h b/include/utime.h deleted file mode 100644 index 652891a..0000000 --- a/include/utime.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif - -#include <_ansi.h> - -/* The utime function is defined in libc/sys//sys if it exists. */ -#include - -#ifdef __cplusplus -} -#endif diff --git a/include/utmp.h b/include/utmp.h deleted file mode 100644 index 88cf6f8..0000000 --- a/include/utmp.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif -#include -#ifdef __cplusplus -} -#endif - diff --git a/include/vms/ChangeLog b/include/vms/ChangeLog deleted file mode 100644 index 8d5e91d..0000000 --- a/include/vms/ChangeLog +++ /dev/null @@ -1,87 +0,0 @@ -2012-03-08 Tristan Gingold - - * lbr.h (struct vms_lhd): Add comments. - -2010-05-27 Tristan Gingold - - * lbr.h: Improve comments. - -2010-05-17 Tristan Gingold - - * eidc.h: New file. - * esgps.h: New file. - -2010-05-03 Tristan Gingold - - * dmt.h: Improve comments. - -2010-04-30 Tristan Gingold - - * lbr.h (struct vms_kbn): New structure. - -2010-04-30 Tristan Gingold - - * lbr.h (LBR__C_TYP_ISHSTB): Added. - (LHD_SANEID4): Renamed to ... - (LHD_SANEID6): ... this. - (LBR_MAJORID, LBR_ELFMAJORID): New macros. - (struct vms_rfa): New structure. - (struct vms_idxdef): Renamed to ... - (struct vms_idx): ... this. - (struct vms_idxdef2): Renamed to ... - (struct vms_elfidx): ... this. - (ELFIDX__WEAK, ELFIDX__GROUP, ELFIDX__LISTRFA, ELFIDX__SYMESC): New - macros. - (struct vms_lhs, struct vms_lns): New structures. - (struct vms_mhd): Add missing fields. - (MHD__C_MHDLEN): New macro. - -2010-03-31 Tristan Gingold - - * dcx.h: New file. - * dsc.h: New file. - * esdfm.h: New file. - * esdfv.h: New file. - * internal.h: New file. - * lbr.h: New file. - * prt.h: New file. - * shl.h (struct vms_shl): Add comments. - * esrf.h (ESRF__B_NAMLNG): New macro. - * esdf.h (ESDF__B_NAMLNG): New macro. - * emh.h: Add macros for fields maximum value. - * eisd.h (EISD__M_PROTECT): Fix typo in comment. - Add macros for offsets, version, section type and match control. - Merge vms_eisd_ext into vms_eisd. - * eihvn.h (EIHVN__MULTI_PROCESSING_BIT, EIHVN__GALAXY_BIT): Added. - * eihs.h: Remove blank line. - * eihd.h (struct vms_eihd): Add comments, add image subtype names. - * eiha.h (struct vms_eiha): Add inishr and inishr_h fields. - * eiaf.h (struct vms_eiaf): Fix base_va size. - * egsy.h: Add comments. - * egsd.h: Remove blank line. - * egps.h: Add flag names. - * eeom.h (EEOM__M_WKTFR): Added. - * dst.h (DST__K_CXX): Added, and reident languages. - (DST__K_SRC_INCRLNUM_B): Added. - Indent and order pcline commands. - Add record begin/end, enumerations, type specification, value - specification, label, discontinue range definitions. - -2010-02-17 Tristan Gingold - - * dmt.h, dst.h, eeom.h, egps.h, egsd.h, egst.h, egsy.h: New Files. - * eiaf.h, eicp.h, eiha.h, eihd.h, eihi.h, eihs.h, eihvn.h: Ditto. - * eisd.h, emh.h, eobjrec.h, esdf.h, esrf.h, etir.h, shl.h: Ditto. - -Copyright (C) 2010-2012 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - -Local Variables: -mode: change-log -left-margin: 8 -fill-column: 74 -version-control: never -End: diff --git a/include/vms/dcx.h b/include/vms/dcx.h deleted file mode 100644 index b6f373a..0000000 --- a/include/vms/dcx.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Alpha VMS external format for DeCompression. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_DCX_H -#define _VMS_DCX_H - -struct vms_dcxmap -{ - unsigned char size[4]; - unsigned char version[2]; - - unsigned char pad[2]; - unsigned char sanity[4]; - unsigned char flags[4]; - unsigned char nsubs[2]; - unsigned char sub0[2]; -}; - -struct vms_dcxsbm -{ - unsigned char size[2]; - unsigned char min_char; - unsigned char max_char; - unsigned char escape; - unsigned char flags_bits; - unsigned char flags[2]; - unsigned char nodes[2]; - unsigned char next[2]; -}; - -#endif /* _VMS_DCX_H */ diff --git a/include/vms/dmt.h b/include/vms/dmt.h deleted file mode 100644 index f2aad6e..0000000 --- a/include/vms/dmt.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Alpha VMS external format of Debug Module Table. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_DMT_H -#define _VMS_DMT_H - -struct vms_dmt_header -{ - /* Offset in the DST of the module. */ - unsigned char modbeg[4]; - - /* Size of the DST chunk for this module. */ - unsigned char size[4]; - - /* Number of psect for this module. */ - unsigned char psect_count[2]; - - unsigned char mbz[2]; -}; - -struct vms_dmt_psect -{ - /* Address of the psect. */ - unsigned char start[4]; - - /* Length of the psect. */ - unsigned char length[4]; -}; -#endif /* _VMS_DMT_H */ diff --git a/include/vms/dsc.h b/include/vms/dsc.h deleted file mode 100644 index 5a1b0e2..0000000 --- a/include/vms/dsc.h +++ /dev/null @@ -1,129 +0,0 @@ -/* Alpha VMS external format of Descriptors. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_DSC_H -#define _VMS_DSC_H - -/* Descriptors. */ -#define DSC__K_DTYPE_Z 0 /* Unspecified. */ -#define DSC__K_DTYPE_V 1 /* Bit. */ -#define DSC__K_DTYPE_BU 2 /* Byte logical. */ -#define DSC__K_DTYPE_WU 3 /* Word logical. */ -#define DSC__K_DTYPE_LU 4 /* Longword logical. */ -#define DSC__K_DTYPE_QU 5 /* Quadword logical. */ -#define DSC__K_DTYPE_B 6 /* Byte integer. */ -#define DSC__K_DTYPE_W 7 /* Word integer. */ -#define DSC__K_DTYPE_L 8 /* Longword integer. */ -#define DSC__K_DTYPE_Q 9 /* Quadword integer. */ -#define DSC__K_DTYPE_F 10 /* Single-precision floating. */ -#define DSC__K_DTYPE_D 11 /* Double-precision floating. */ -#define DSC__K_DTYPE_FC 12 /* Complex. */ -#define DSC__K_DTYPE_DC 13 /* Double-precision Complex. */ -#define DSC__K_DTYPE_T 14 /* ASCII text string. */ -#define DSC__K_DTYPE_NU 15 /* Numeric string, unsigned. */ -#define DSC__K_DTYPE_NL 16 /* Numeric string, left separate sign. */ -#define DSC__K_DTYPE_NLO 17 /* Numeric string, left overpunched sign. */ -#define DSC__K_DTYPE_NR 18 /* Numeric string, right separate sign. */ -#define DSC__K_DTYPE_NRO 19 /* Numeric string, right overpunched sign. */ -#define DSC__K_DTYPE_NZ 20 /* Numeric string, zoned sign. */ -#define DSC__K_DTYPE_P 21 /* Packed decimal string. */ -#define DSC__K_DTYPE_ZI 22 /* Sequence of instructions. */ -#define DSC__K_DTYPE_ZEM 23 /* Procedure entry mask. */ -#define DSC__K_DTYPE_DSC 24 /* Descriptor, used for arrays of dyn strings. */ -#define DSC__K_DTYPE_OU 25 /* Octaword logical. */ -#define DSC__K_DTYPE_O 26 /* Octaword integer. */ -#define DSC__K_DTYPE_G 27 /* Double precision G floating, 64 bit. */ -#define DSC__K_DTYPE_H 28 /* Quadruple precision floating, 128 bit. */ -#define DSC__K_DTYPE_GC 29 /* Double precision complex, G floating. */ -#define DSC__K_DTYPE_HC 30 /* Quadruple precision complex, H floating. */ -#define DSC__K_DTYPE_CIT 31 /* COBOL intermediate temporary. */ -#define DSC__K_DTYPE_BPV 32 /* Bound Procedure Value. */ -#define DSC__K_DTYPE_BLV 33 /* Bound Label Value. */ -#define DSC__K_DTYPE_VU 34 /* Bit Unaligned. */ -#define DSC__K_DTYPE_ADT 35 /* Absolute Date-Time. */ -#define DSC__K_DTYPE_VT 37 /* Varying Text. */ -#define DSC__K_DTYPE_T2 38 /* 16-bit char. */ -#define DSC__K_DTYPE_VT2 39 /* 16-bit varying char. */ - -#define DSC__K_CLASS_S 1 /* Fixed-length scalar/string. */ -#define DSC__K_CLASS_D 2 /* Dynamic string. */ -#define DSC__K_CLASS_V 3 /* Reserved. */ -#define DSC__K_CLASS_A 4 /* Contiguous array. */ -#define DSC__K_CLASS_P 5 /* Procedure argument descriptor. */ -#define DSC__K_CLASS_PI 6 /* Procedure incarnation descriptor. */ -#define DSC__K_CLASS_J 7 /* Reserved. */ -#define DSC__K_CLASS_JI 8 /* Obsolete. */ -#define DSC__K_CLASS_SD 9 /* Decimal (scalar) string. */ -#define DSC__K_CLASS_NCA 10 /* Non-contiguous array. */ -#define DSC__K_CLASS_VS 11 /* Varying string. */ -#define DSC__K_CLASS_VSA 12 /* Varying string array. */ -#define DSC__K_CLASS_UBS 13 /* Unaligned bit string. */ -#define DSC__K_CLASS_UBA 14 /* Unaligned bit array. */ -#define DSC__K_CLASS_SB 15 /* String with bounds. */ -#define DSC__K_CLASS_UBSB 16 /* Unaligned bit string with bounds. */ - -/* Common part. */ - -struct vms_dsc -{ - unsigned char length[2]; - unsigned char dtype; - unsigned char bclass; - unsigned char pointer[4]; -}; - -struct vms_dsc64 -{ - unsigned char mbo[2]; - unsigned char dtype; - unsigned char bclass; - unsigned char mbmo[4]; - unsigned char length[8]; - unsigned char pointer[8]; -}; - -struct vms_dsc_nca -{ - unsigned char length[2]; - unsigned char dtype; - unsigned char bclass; - unsigned char pointer[4]; - - unsigned char scale; - unsigned char digits; - unsigned char aflags; - unsigned char dimct; - - unsigned char arsize[4]; - unsigned char a0[4]; -}; - -struct vms_dsc_ubs -{ - unsigned char length[2]; - unsigned char dtype; - unsigned char bclass; - unsigned char base[4]; - unsigned char pos[4]; -}; - -#endif /* _VMS_DSC_H */ diff --git a/include/vms/dst.h b/include/vms/dst.h deleted file mode 100644 index 231d397..0000000 --- a/include/vms/dst.h +++ /dev/null @@ -1,274 +0,0 @@ -/* Alpha VMS external format of Debug Symbol Table. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_DST_H -#define _VMS_DST_H - -/* Also available in vms freeware v5.0 debug/alpha_dstrecrds.sdl. */ - -struct vms_dst_header -{ - /* Length. */ - unsigned char length[2]; - - /* Type. */ - unsigned char type[2]; -}; - -/* Beginning of module. */ -#define DST__K_MODBEG 188 - -/* Some well known languages. */ -#define DST__K_MACRO 0 -#define DST__K_BLISS 2 -#define DST__K_C 7 -#define DST__K_ADA 9 -#define DST__K_CXX 15 - -struct vms_dst_modbeg -{ - unsigned char flags; - unsigned char unused; - unsigned char language[4]; - unsigned char major[2]; - unsigned char minor[2]; - /* Module name ASCIC. */ - /* Ident name ASCIC. */ -}; - -/* Routine begin. */ -#define DST__K_RTNBEG 190 - -struct vms_dst_rtnbeg -{ - unsigned char flags; - - /* Address of the code. */ - unsigned char address[4]; - - /* Procedure descriptor address. */ - unsigned char pd_address[4]; - - /* Name: ASCIC */ -}; - -/* Line number. */ -#define DST__K_LINE_NUM 185 - -struct vms_dst_pcline -{ - unsigned char pcline_command; - unsigned char field[4]; -}; - -#define DST__K_DELTA_PC_W 1 -#define DST__K_INCR_LINUM 2 -#define DST__K_INCR_LINUM_W 3 -#define DST__K_SET_LINUM_INCR 4 -#define DST__K_SET_LINUM_INCR_W 5 -#define DST__K_RESET_LINUM_INCR 6 -#define DST__K_BEG_STMT_MODE 7 -#define DST__K_END_STMT_MODE 8 -#define DST__K_SET_LINUM 9 -#define DST__K_SET_PC 10 -#define DST__K_SET_PC_W 11 -#define DST__K_SET_PC_L 12 -#define DST__K_SET_STMTNUM 13 -#define DST__K_TERM 14 -#define DST__K_TERM_W 15 -#define DST__K_SET_ABS_PC 16 -#define DST__K_DELTA_PC_L 17 -#define DST__K_INCR_LINUM_L 18 -#define DST__K_SET_LINUM_B 19 -#define DST__K_SET_LINUM_L 20 -#define DST__K_TERM_L 21 - -/* Routine end. */ -#define DST__K_RTNEND 191 - -struct vms_dst_rtnend -{ - unsigned char unused; - unsigned char size[4]; -}; - -/* Prologue. */ -#define DST__K_PROLOG 162 - -struct vms_dst_prolog -{ - unsigned char bkpt_addr[4]; -}; - -/* Epilog. */ -#define DST__K_EPILOG 127 - -struct vms_dst_epilog -{ - unsigned char flags; - unsigned char count[4]; -}; - -/* Module end. */ -#define DST__K_MODEND 189 - -/* Block begin. */ -#define DST__K_BLKBEG 176 - -struct vms_dst_blkbeg -{ - unsigned char unused; - unsigned char address[4]; - /* Name ASCIC. */ -}; - -/* Block end. */ -#define DST__K_BLKEND 177 - -struct vms_dst_blkend -{ - unsigned char unused; - unsigned char size[4]; -}; - -/* Source correlation. */ -#define DST__K_SOURCE 155 - -#define DST__K_SRC_DECLFILE 1 -#define DST__K_SRC_SETFILE 2 -#define DST__K_SRC_SETREC_L 3 -#define DST__K_SRC_SETREC_W 4 -#define DST__K_SRC_SETLNUM_L 5 -#define DST__K_SRC_SETLNUM_W 6 -#define DST__K_SRC_INCRLNUM_B 7 -#define DST__K_SRC_DEFLINES_W 10 -#define DST__K_SRC_DEFLINES_B 11 -#define DST__K_SRC_FORMFEED 16 - -struct vms_dst_src_decl_src -{ - unsigned char length; - unsigned char flags; - unsigned char fileid[2]; - unsigned char rms_cdt[8]; - unsigned char rms_ebk[4]; - unsigned char rms_ffb[2]; - unsigned char rms_rfo; - /* Filename ASCIC. */ -}; - -/* Record begin. */ -#define DST__K_RECBEG 171 - -struct vms_dst_recbeg -{ - unsigned char vflags; - unsigned char value[4]; - /* Filename ASCIC. */ -}; - -/* Record end. */ -#define DST__K_RECEND 172 - -/* Enumeration begin. */ -#define DST__K_ENUMBEG 165 - -/* Enumeration element. */ -#define DST__K_ENUMELT 164 - -/* Enumeration end. */ -#define DST__K_ENUMEND 166 - -/* Separate type specification. */ -#define DST__K_SEPTYP 163 - -/* Type specification. */ -#define DST__K_TYPSPEC 175 - -#define DST__K_TS_ATOM 1 /* Atomic. */ -#define DST__K_TS_DSC 2 /* VMS Standard descriptor. */ -#define DST__K_TS_IND 3 /* Indirect. */ -#define DST__K_TS_TPTR 4 /* Typed pointer. */ -#define DST__K_TS_PTR 5 /* Pointer. */ -#define DST__K_TS_PIC 6 /* Pictured. */ -#define DST__K_TS_ARRAY 7 -#define DST__K_TS_SET 8 -#define DST__K_TS_SUBRANGE 9 /* Subrange. */ -#define DST__K_TS_ADA_DSC 10 /* Ada descriptor. */ -#define DST__K_TS_FILE 11 -#define DST__K_TS_AREA 12 /* Area (PL/I). */ -#define DST__K_TS_OFFSET 13 /* Offset (PL/I). */ -#define DST__K_TS_NOV_LENG 14 /* Novel Length. */ -#define DST__K_TS_IND_TSPEC 15 /* Internal to debugger. */ -#define DST__K_TS_SELF_REL_LABEL 16 /* Self-relative label (PL/I). */ -#define DST__K_TS_RFA 17 /* (Basic). */ -#define DST__K_TS_TASK 18 /* (Ada). */ -#define DST__K_TS_ADA_ARRAY 19 -#define DST__K_TS_XMOD_IND 20 /* Cross-module indirect type spec. */ -#define DST__K_TS_CONSTRAINED 21 /* (Ada). */ -#define DST__K_TS_MAYBE_CONSTR 22 /* Might-be-constrained (Ada). */ -#define DST__K_TS_DYN_LOV_LENG 23 -#define DST__K_TS_TPTR_D 24 /* Typed pointer to descriptor. */ -#define DST__K_TS_SCAN_TREE 25 -#define DST__K_TS_SCAN_TREEPTR 26 -#define DST__K_TS_INCOMPLETE 27 -#define DST__K_TS_BLISS_BLOCK 28 -#define DST__K_TS_TPTR_64 29 -#define DST__K_TS_PTR_64 30 -#define DST__K_TS_REF 31 /* C++ referenced type. */ -#define DST__K_TS_REF_64 32 - -/* Value Specification. */ -#define DST__K_VFLAGS_NOVAL 128 /* No value. */ -#define DST__K_VFLAGS_NOTACTIVE 248 /* Not active at current PC. */ -#define DST__K_VFLAGS_UNALLOC 249 /* Not allocated. */ -#define DST__K_VFLAGS_DSC 250 /* Descriptor format. */ -#define DST__K_VFLAGS_TVS 251 /* Trailing value spec. */ -#define DST__K_VS_FOLLOWS 253 /* Value specification follow. */ -#define DST__K_VFLAGS_BITOFFS 255 /* Value is a bit offset. */ - -/* Vflags fields. */ -#define DST__K_VALKIND_MASK 0x03 -#define DST__K_INDIR 0x04 -#define DST__K_DISP 0x08 -#define DST__K_REGNUM_MASK 0xf0 -#define DST__K_REGNUM_SHIFT 4 - -#define DST__K_VALKIND_LITERAL 0 -#define DST__K_VALKIND_ADDR 1 -#define DST__K_VALKIND_DESC 2 -#define DST__K_VALKIND_REG 3 - -/* Label. */ -#define DST__K_LABEL 187 - -struct vms_dst_label -{ - unsigned char unused; - - unsigned char value[4]; - unsigned char name[1]; -}; - -/* Discontiguous range. */ -#define DST__K_DIS_RANGE 118 -#endif /* _VMS_DST_H */ diff --git a/include/vms/eeom.h b/include/vms/eeom.h deleted file mode 100644 index 807e448..0000000 --- a/include/vms/eeom.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Alpha VMS external format of Extended End Of Module. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EEOM_H -#define _VMS_EEOM_H - -/* Completion flags. */ -#define EEOM__C_SUCCESS 0 -#define EEOM__C_WARNING 1 -#define EEOM__C_ERROR 2 -#define EEOM__C_ABORT 3 - -struct vms_eeom -{ - /* Record type. */ - unsigned char rectyp[2]; - - /* Record size. */ - unsigned char size[2]; - - /* Number of conditional linkage pairs. */ - unsigned char total_lps[4]; - - /* Completion code. */ - unsigned char comcod[2]; - - - /* Transfer address flags. */ - unsigned char tfrflg; - - /* Pad for alignment. */ - unsigned char temp; - - /* Psect of transfer address. */ - unsigned char psindx[4]; - - /* Transfer address. */ - unsigned char tfradr[8]; -}; - -#define EEOM__M_WKTFR (1 << 0) /* Transfer address is weak. */ - -#endif /* _VMS_EEOM_H */ diff --git a/include/vms/egps.h b/include/vms/egps.h deleted file mode 100644 index e92df81..0000000 --- a/include/vms/egps.h +++ /dev/null @@ -1,64 +0,0 @@ -/* Alpha VMS external format of Extended Program Section Definition. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EGPS_H -#define _VMS_EGPS_H - -struct vms_egps -{ - /* Entry type. */ - unsigned char gsdtyp[2]; - - /* Length of the entry. */ - unsigned char gsdsiz[2]; - - /* Psect alignment. */ - unsigned char align; - - /* Pad for alignment. */ - unsigned char temp; - - unsigned char flags[2]; - - /* Length of this contribution. */ - unsigned char alloc[4]; - - /* Name. */ - unsigned char namlng; - unsigned char name[31]; -}; - -#define EGPS__V_PIC (1 << 0) /* Not meaningful. */ -#define EGPS__V_LIB (1 << 1) /* Defined in a shareable image. */ -#define EGPS__V_OVR (1 << 2) /* Overlaid contribution. */ -#define EGPS__V_REL (1 << 3) /* Relocatable. */ -#define EGPS__V_GBL (1 << 4) /* Global. */ -#define EGPS__V_SHR (1 << 5) /* Shareable. */ -#define EGPS__V_EXE (1 << 6) /* Executable. */ -#define EGPS__V_RD (1 << 7) /* Readable. */ -#define EGPS__V_WRT (1 << 8) /* Writable. */ -#define EGPS__V_VEC (1 << 9) /* Change mode dispatch or message vectors. */ -#define EGPS__V_NOMOD (1 << 10) /* Demand-zero. */ -#define EGPS__V_COM (1 << 11) /* Conditional storage. */ -#define EGPS__V_ALLOC_64BIT (1 << 12) /* Allocated in 64-bit space. */ - -#endif /* _VMS_EGPS_H */ diff --git a/include/vms/egsd.h b/include/vms/egsd.h deleted file mode 100644 index f9be398..0000000 --- a/include/vms/egsd.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Alpha VMS external format of Extended Global Symbol Directory. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EGSD_H -#define _VMS_EGSD_H - -#define EGSD__K_ENTRIES 2 /* Offset to first entry in record. */ -#define EGSD__C_ENTRIES 2 /* Offset to first entry in record. */ -#define EGSD__C_PSC 0 /* Psect definition. */ -#define EGSD__C_SYM 1 /* Symbol specification. */ -#define EGSD__C_IDC 2 /* Random entity check. */ -#define EGSD__C_SPSC 5 /* Shareable image psect definition. */ -#define EGSD__C_SYMV 6 /* Vectored (dual-valued) versions of SYM. */ -#define EGSD__C_SYMM 7 /* Masked versions of SYM. */ -#define EGSD__C_SYMG 8 /* EGST - gst version of SYM. */ -#define EGSD__C_MAXRECTYP 8 /* Maximum entry type defined. */ - -struct vms_egsd -{ - /* Record type. */ - unsigned char rectyp[2]; - - /* Record size. */ - unsigned char recsiz[2]; - - /* Padding for alignment. */ - unsigned char alignlw[4]; - - /* Followed by egsd entries. */ -}; - -struct vms_egsd_entry -{ - /* Entry type. */ - unsigned char gsdtyp[2]; - - /* Length of the entry. */ - unsigned char gsdsiz[2]; -}; - -#endif /* _VMS_EGSD_H */ diff --git a/include/vms/egst.h b/include/vms/egst.h deleted file mode 100644 index d424484..0000000 --- a/include/vms/egst.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Alpha VMS external format of Extended Global Symbol Definition. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EGST_H -#define _VMS_EGST_H - -struct vms_egst -{ - struct vms_egsy header; - - unsigned char value[8]; - unsigned char lp_1[8]; - unsigned char lp_2[8]; - - unsigned char psindx[4]; - unsigned char namlng; - unsigned char name[31]; -}; - -#endif /* _VMS_EGST_H */ diff --git a/include/vms/egsy.h b/include/vms/egsy.h deleted file mode 100644 index dd36ab2..0000000 --- a/include/vms/egsy.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Alpha VMS external format of Extended Global Symbol. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EGSY_H -#define _VMS_EGSY_H - -#define EGSY__W_FLAGS 6 - -#define EGSY__V_WEAK 0x0001 /* Weak symbol definition. */ -#define EGSY__V_DEF 0x0002 /* Symbol definition. */ -#define EGSY__V_UNI 0x0004 /* Reserved. */ -#define EGSY__V_REL 0x0008 /* Relocatable (vs absolute). */ -#define EGSY__V_COMM 0x0010 /* Conditional symbol def. */ -#define EGSY__V_VECEP 0x0020 /* Reserved. */ -#define EGSY__V_NORM 0x0040 /* Normal procedure definition. */ -#define EGSY__V_QUAD_VAL 0x0080 /* Value exceed 32 bits. */ - -struct vms_egsy -{ - /* Entry type. */ - unsigned char gsdtyp[2]; - - /* Length of the entry. */ - unsigned char gsdsiz[2]; - - /* Data type. */ - unsigned char datyp; - - /* Pad for alignment. */ - unsigned char temp; - - unsigned char flags[2]; -}; - -#endif /* _VMS_EGSY_H */ diff --git a/include/vms/eiaf.h b/include/vms/eiaf.h deleted file mode 100644 index c3c3988..0000000 --- a/include/vms/eiaf.h +++ /dev/null @@ -1,80 +0,0 @@ -/* Alpha VMS external format of Extended Image Activator Fixup section. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EIAF_H -#define _VMS_EIAF_H - -struct vms_eiaf -{ - /* Version. */ - unsigned char majorid[4]; - unsigned char minorid[4]; - - /* Link for image activator use. */ - unsigned char iaflink[8]; - - /* Link for sharable image fixups. */ - unsigned char fixuplnk[8]; - - /* Size of EIAF fixed part. */ - unsigned char size[4]; - - /* Flags. */ - unsigned char flags[4]; - - /* Offsets to quadword and longword relocation fixup data. */ - unsigned char qrelfixoff[4]; - unsigned char lrelfixoff[4]; - - /* Offsets to quardword and longword .address fixup data. */ - unsigned char qdotadroff[4]; - unsigned char ldotadroff[4]; - - /* Offset to code address fixup data. */ - unsigned char codeadroff[4]; - - /* Offset to linkage part fixup data. */ - unsigned char lpfixoff[4]; - - /* Offset to isect change protection data. */ - unsigned char chgprtoff[4]; - - /* Offset to shareable image list. */ - unsigned char shlstoff[4]; - - /* Number of shareable images. */ - unsigned char shrimgcnt[4]; - - /* Number of extra shareable images allowed. */ - unsigned char shlextra[4]; - - /* Permanent shareable image context. */ - unsigned char permctx[4]; - - /* Base address of the image itself. */ - unsigned char base_va[4]; - - /* Offset to linkage pair with procedure signature fixups. */ - unsigned char lppsbfixoff[4]; -}; - -#endif /* _VMS_EIAF_H */ diff --git a/include/vms/eicp.h b/include/vms/eicp.h deleted file mode 100644 index 9c769f7..0000000 --- a/include/vms/eicp.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Alpha VMS external format of Extended Image section Change Protection. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EICP_H -#define _VMS_EICP_H - -struct vms_eicp -{ - /* Start of section. */ - unsigned char baseva[8]; - - /* Size in bytes of the image section. */ - unsigned char size[4]; - - /* New protections. */ - unsigned char newprt[4]; -}; - -#endif /* _VMS_EICP_H */ diff --git a/include/vms/eidc.h b/include/vms/eidc.h deleted file mode 100644 index 987e8c2..0000000 --- a/include/vms/eidc.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Alpha VMS external format of Ident Consistency check. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EIDC_H -#define _VMS_EIDC_H - -struct vms_eidc -{ - /* Record type. */ - unsigned char rectyp[2]; - - /* Record size. */ - unsigned char recsiz[2]; - - unsigned char flags[4]; - - /* Entity name (ASCIC). */ - /* Object name (ASCIC). */ - /* Ident string (ASCIC or binary BINIDENT set). */ - unsigned char name[1]; -}; - -/* Fields of flags. */ -#define EIDC__V_BINIDENT (1 << 0) /* Ident is a longword. */ -#define EIDC__V_IDMATCH_SH 1 /* Ident match control. */ -#define EIDC__V_IDMATCH_MASK 3 -#define EIDC__V_ERRSEV_SH 3 /* Error severity. */ -#define EIDC__V_ERRSEV_MASK 7 - -#endif /* _VMS_EIDC_H */ diff --git a/include/vms/eiha.h b/include/vms/eiha.h deleted file mode 100644 index 5965ef9..0000000 --- a/include/vms/eiha.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Alpha VMS external format of Extended Image Activation. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EIHA_H -#define _VMS_EIHA_H - -struct vms_eiha -{ - /* Size of the struct. */ - unsigned char size[4]; - - unsigned char spare[4]; - - /* First transfer address. */ - unsigned char tfradr1[4]; - unsigned char tfradr1_h[4]; - - /* Second. */ - unsigned char tfradr2[4]; - unsigned char tfradr2_h[4]; - - /* Third. */ - unsigned char tfradr3[4]; - unsigned char tfradr3_h[4]; - - /* Fourth (must be 0). */ - unsigned char tfradr4[4]; - unsigned char tfradr4_h[4]; - - /* Shared image initialization (only if EIHD__V_INISHR is set). */ - unsigned char inishr[4]; - unsigned char inishr_h[4]; -}; - -#endif /* _VMS_EIHA_H */ diff --git a/include/vms/eihd.h b/include/vms/eihd.h deleted file mode 100644 index fdb3a6e..0000000 --- a/include/vms/eihd.h +++ /dev/null @@ -1,145 +0,0 @@ -/* Alpha VMS external format of Extended Image Header. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EIHD_H -#define _VMS_EIHD_H - -/* Extended Image Header (eihd) structure. */ -struct vms_eihd -{ - /* Version of this EIHD. */ - unsigned char majorid[4]; - unsigned char minorid[4]; - - /* Size in bytes of the header. */ - unsigned char size[4]; - - /* Byte offset to ISD (Image Section Descriptors) list. */ - unsigned char isdoff[4]; - - /* Byte offset to activation data (off=16). */ - unsigned char activoff[4]; - - /* Byte offset to symbol table and debugging data. */ - unsigned char symdbgoff[4]; - - /* Byte offset to image ident. */ - unsigned char imgidoff[4]; - - /* Byte offset to patch data. */ - unsigned char patchoff[4]; - - /* RVA of fixup info (off=32). */ - unsigned char iafva[8]; - - /* RVA of symbol vector. */ - unsigned char symvva[8]; - - /* Byte offset to version number array (off=48). */ - unsigned char version_array_off[4]; - - /* Image type. */ - unsigned char imgtype[4]; - - /* Image subtype. */ - unsigned char subtype[4]; - - /* Size in bytes of image I/O section requested. */ - unsigned char imgiocnt[4]; - - /* Nbr of channels requested (off=64). */ - unsigned char iochancnt[4]; - - /* Requested privilege mask. */ - unsigned char privreqs[8]; - - /* Number of header diskblocks. */ - unsigned char hdrblkcnt[4]; - - /* Linker produced image flags. */ - unsigned char lnkflags[4]; - - /* GBL SEC ident value for linkable image. */ - unsigned char ident[4]; - - /* SYS$K_VERSION or 0 if not linked with exec. */ - unsigned char sysver[4]; - - /* Linker match control. */ - unsigned char matchctl; - unsigned char fill_1[3]; - - /* Size of the symbol vector in bytes. */ - unsigned char symvect_size[4]; - - /* Value of /BPAGE. */ - unsigned char virt_mem_block_size[4]; - - /* Byte offset to extended fixup data. */ - unsigned char ext_fixup_off[4]; - - /* Byte offset to no_optimize psect table. */ - unsigned char noopt_psect_off[4]; - - unsigned char fill_2[398]; - - /* CODE identifies image type to MOM. */ - unsigned char alias[2]; -}; - -#define EIHD__K_MAJORID 3 /* Major id constant */ -#define EIHD__K_MINORID 0 /* Minor id constant */ - -/* Image type. */ -#define EIHD__K_EXE 1 /* Executable image */ -#define EIHD__K_LIM 2 /* Linkable image. */ - -/* Image subtype. */ -#define EIHD__C_NATIVE 0 /* Alpha native image. */ -#define EIHD__C_CLI 1 /* Image is a CLI, run LOGINOUT. */ - -/* Linker image flags. */ -#define EIHD__M_LNKDEBUG 0x0001 /* Full debugging requested. */ -#define EIHD__M_LNKNOTFR 0x0002 /* No first transfer address. */ -#define EIHD__M_NOP0BUFS 0x0004 /* No RMS use of P0 for image I/O. */ -#define EIHD__M_PICIMG 0x0008 /* PIC image. */ -#define EIHD__M_P0IMAGE 0x0010 /* P0 only image. */ -#define EIHD__M_DBGDMT 0x0020 /* Image header has dmt fields. */ -#define EIHD__M_INISHR 0x0040 /* Transfer array contains LNISHR. */ -#define EIHD__M_XLATED 0x0080 /* Translated image. */ -#define EIHD__M_BIND_CODE_SEC 0x0100 /* EXE sect can be put into S0. */ -#define EIHD__M_BIND_DATA_SEC 0x0200 /* DATA sect can be put into S0. */ -#define EIHD__M_MKTHREADS 0x0400 /* Multiple kernel threads. */ -#define EIHD__M_UPCALLS 0x0800 /* Upcalls enabled. */ -#define EIHD__M_OMV_READY 0x1000 /* Can be processed by OMV. */ -#define EIHD__M_EXT_BIND_SECT 0x2000 /* May be moved, using ext fixups. */ - -/* Offsets of some fields. */ -#define EIHD__L_SIZE 8 -#define EIHD__L_ISDOFF 12 -#define EIHD__L_SYMDBGOFF 20 -#define EIHD__Q_SYMVVA 40 -#define EIHD__L_IMGTYPE 52 - -#define EIHD__C_LENGTH 104 - -#endif /* _VMS_EIHD_H */ diff --git a/include/vms/eihi.h b/include/vms/eihi.h deleted file mode 100644 index 97d3d89..0000000 --- a/include/vms/eihi.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Alpha VMS external format of Extended Image Identification. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EIHI_H -#define _VMS_EIHI_H - -#define EIHI__K_MAJORID 1 -#define EIHI__K_MINORID 2 - -struct vms_eihi -{ - unsigned char majorid[4]; - unsigned char minorid[4]; - - /* Time when this image was linked. */ - unsigned char linktime[8]; - - /* Image name. */ - unsigned char imgnam[40]; - - /* Image ident. */ - unsigned char imgid[16]; - - /* Linker ident. */ - unsigned char linkid[16]; - - /* Image build ident. */ - unsigned char imgbid[16]; -}; - -#endif /* _VMS_EIHI_H */ diff --git a/include/vms/eihs.h b/include/vms/eihs.h deleted file mode 100644 index cf048b1..0000000 --- a/include/vms/eihs.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Alpha VMS external format of Extended Image Symbols and debug table. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EIHS_H -#define _VMS_EIHS_H - -#define EIHS__K_MAJORID 1 -#define EIHS__K_MINORID 1 - -struct vms_eihs -{ - unsigned char majorid[4]; - unsigned char minorid[4]; - - /* Debug symbol table virtual block number (vbn). */ - unsigned char dstvbn[4]; - - /* Debug symbol table size. */ - unsigned char dstsize[4]; - - /* Global symbol table vbn. */ - unsigned char gstvbn[4]; - - /* Global symtol table size. */ - unsigned char gstsize[4]; - - /* Debug module table vbn. */ - unsigned char dmtvbn[4]; - - /* Debug module table size. */ - unsigned char dmtsize[4]; -}; - -/* Various offsets. */ - -#define EIHS__L_DSTVBN 8 -#define EIHS__L_DSTSIZE 12 -#define EIHS__L_GSTVBN 16 -#define EIHS__L_GSTSIZE 20 -#define EIHS__L_DMTVBN 24 -#define EIHS__L_DMTBYTES 28 - -#endif /* _VMS_EIHS_H */ diff --git a/include/vms/eihvn.h b/include/vms/eihvn.h deleted file mode 100644 index 07f9eee..0000000 --- a/include/vms/eihvn.h +++ /dev/null @@ -1,58 +0,0 @@ -/* Alpha VMS external format of Extended Image Header Version. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EIHVN_H -#define _VMS_EIHVN_H - -struct vms_eihvn -{ - unsigned char subsystem_mask[4]; -}; - -struct vms_eihvn_subversion -{ - unsigned char minor[2]; - unsigned char major[2]; -}; - -#define EIHVN__BASE_IMAGE_BIT 0 -#define EIHVN__MEMORY_MANAGEMENT_BIT 1 -#define EIHVN__IO_BIT 2 -#define EIHVN__FILES_VOLUMES_BIT 3 -#define EIHVN__PROCESS_SCHED_BIT 4 -#define EIHVN__SYSGEN_BIT 5 -#define EIHVN__CLUSTERS_LOCKMGR_BIT 6 -#define EIHVN__LOGICAL_NAMES_BIT 7 -#define EIHVN__SECURITY_BIT 8 -#define EIHVN__IMAGE_ACTIVATOR_BIT 9 -#define EIHVN__NETWORKS_BIT 10 -#define EIHVN__COUNTERS_BIT 11 -#define EIHVN__STABLE_BIT 12 -#define EIHVN__MISC_BIT 13 -#define EIHVN__CPU_BIT 14 -#define EIHVN__VOLATILE_BIT 15 -#define EIHVN__SHELL_BIT 16 -#define EIHVN__POSIX_BIT 17 -#define EIHVN__MULTI_PROCESSING_BIT 18 -#define EIHVN__GALAXY_BIT 19 - -#endif /* _VMS_EIHVN_H */ diff --git a/include/vms/eisd.h b/include/vms/eisd.h deleted file mode 100644 index 7579e72..0000000 --- a/include/vms/eisd.h +++ /dev/null @@ -1,118 +0,0 @@ -/* Alpha VMS external format of Extended Image Section Descriptor. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EISD_H -#define _VMS_EISD_H - -/* Flags. */ -#define EISD__M_GBL 0x0001 /* Global. */ -#define EISD__M_CRF 0x0002 /* Copy on reference. */ -#define EISD__M_DZRO 0x0004 /* Demand zero page. */ -#define EISD__M_WRT 0x0008 /* Writable. */ -#define EISD__M_INITALCODE 0x0010 /* Part of initialization code. */ -#define EISD__M_BASED 0x0020 /* Isect is based. */ -#define EISD__M_FIXUPVEC 0x0040 /* Isect is fixup section. */ -#define EISD__M_RESIDENT 0x0080 /* Isect is memory resident. */ -#define EISD__M_VECTOR 0x0100 /* Vector contained in isect. */ -#define EISD__M_PROTECT 0x0200 /* Isect is protected. */ -#define EISD__M_LASTCLU 0x0400 /* Last cluster. */ -#define EISD__M_EXE 0x0800 /* Code isect. */ -#define EISD__M_NONSHRADR 0x1000 /* Contains non-shareable data. */ -#define EISD__M_QUAD_LENGTH 0x2000 /* Quad length field valid. */ -#define EISD__M_ALLOC_64BIT 0x4000 /* Allocate 64-bit space. */ - -#define EISD__K_LEN 36 -#define EISD__K_LENEND 12 /* For end marker or next block. */ -#define EISD__K_MAXLENGLBL 84 - -#define EISD__K_GBLNAMLEN 44 /* Size of the field. */ - -struct vms_eisd -{ - unsigned char majorid[4]; - unsigned char minorid[4]; - - /* Size (in bytes) of this eisd. */ - unsigned char eisdsize[4]; - - /* Size (in bytes) of the section. */ - unsigned char secsize[4]; - - /* Virtual address of the section. */ - unsigned char virt_addr[8]; - - /* Flags. */ - unsigned char flags[4]; - - /* Base virtual block number. */ - unsigned char vbn[4]; - - /* Page fault cluster. */ - unsigned char pfc; - - /* Linker match control. */ - unsigned char matchctl; - - /* Section type. */ - unsigned char type; - - unsigned char fill_1; - - /* End of structure for normal records. */ - - /* Ident for global section. */ - unsigned char ident[4]; - - /* Global name ascic. First 8 bytes are quad length field. */ - unsigned char gblnam[EISD__K_GBLNAMLEN]; -}; - -/* Versions. */ -#define EISD__K_MAJORID 1 -#define EISD__K_MINORID 1 - -/* Match control. */ -#define EISD__K_MATALL 0 /* Match always. */ -#define EISD__K_MATEQU 1 /* Match if equal. */ -#define EISD__K_MATLEQ 2 /* Match if less or equal. */ -#define EISD__K_MATNEV 3 /* Match never. */ - -/* Section type. */ -#define EISD__K_NORMAL 0 /* Normal program image section. */ -#define EISD__K_SHRFXD 1 /* Shareable fixed section. */ -#define EISD__K_PRVFXD 2 /* Private fixed section. */ -#define EISD__K_SHRPIC 3 /* Shareable pic section. */ -#define EISD__K_PRVPIC 4 /* Private PIC section. */ -#define EISD__K_USRSTACK 253 /* User stack section. */ - -/* EISD offsets. */ - -#define EISD__L_EISDSIZE 8 -#define EISD__L_SECSIZE 12 -#define EISD__Q_VIR_ADDR 16 -#define EISD__L_FLAGS 24 -#define EISD__L_VBN 28 -#define EISD__R_CONTROL 32 -#define EISD__L_IDENT 36 -#define EISD__T_GBLNAM 40 - -#endif /* _VMS_EISD_H */ diff --git a/include/vms/emh.h b/include/vms/emh.h deleted file mode 100644 index 973d71e..0000000 --- a/include/vms/emh.h +++ /dev/null @@ -1,79 +0,0 @@ -/* Alpha VMS external format of Extended Module Header. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EMH_H -#define _VMS_EMH_H - -#define EMH__C_MHD 0 /* Main header record. */ -#define EMH__C_LNM 1 /* Language name and version. */ -#define EMH__C_SRC 2 /* Source file specification. */ -#define EMH__C_TTL 3 /* Title text of module. */ -#define EMH__C_CPR 4 /* Copyright notice. */ -#define EMH__C_MTC 5 /* Maintenance status. */ -#define EMH__C_GTX 6 /* General text. */ -#define EMH__C_MAXHDRTYP 6 /* Maximum allowable type. */ - -struct vms_emh_common -{ - /* Record type. */ - unsigned char rectyp[2]; - - /* Record size. */ - unsigned char size[2]; - - /* Subtype. */ - unsigned char subtyp[2]; -}; - -struct vms_emh_mhd -{ - struct vms_emh_common common; - - unsigned char strlvl; - - unsigned char temp; - - unsigned char arch1[4]; - unsigned char arch2[4]; - - unsigned char recsiz[4]; - - /* Module name: ASCIC. */ - /* Module version: ASCIC. */ - /* Compile data: ASCIC. */ -}; - -#define EOBJ__C_MAXRECSIZ 8192 /* Maximum legal record size. */ -#define EOBJ__C_STRLVL 2 /* Structure level. */ -#define EOBJ__C_SYMSIZ 64 /* Maximum symbol length. */ -#define EOBJ__C_SECSIZ 31 /* Maximum section name length. */ -#define EOBJ__C_STOREPLIM -1 /* Maximum repeat count on store commands. */ -#define EOBJ__C_PSCALILIM 16 /* Maximum p-sect alignment. */ - -struct vms_emh_lnm -{ - struct vms_emh_common common; - - /* Language processor name: ASCII. */ -}; - -#endif /* _VMS_EMH_H */ diff --git a/include/vms/eobjrec.h b/include/vms/eobjrec.h deleted file mode 100644 index 985fda7..0000000 --- a/include/vms/eobjrec.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Alpha VMS external format of Extended Object Records. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_EOBJREC_H -#define _VMS_EOBJREC_H - -#define EOBJ__C_EMH 8 /* EVAX mdule header record. */ -#define EOBJ__C_EEOM 9 /* EVAX ed of module record. */ -#define EOBJ__C_EGSD 10 /* EVAX gobal symbol definition record. */ -#define EOBJ__C_ETIR 11 /* EVAX txt information record. */ -#define EOBJ__C_EDBG 12 /* EVAX Dbugger information record. */ -#define EOBJ__C_ETBT 13 /* EVAX Taceback information record. */ -#define EOBJ__C_MAXRECTYP 13 /* EVAX Lst assigned record type. */ - -struct vms_eobjrec -{ - /* Record type. */ - unsigned char rectyp[2]; - - /* Record size. */ - unsigned char size[2]; - -#if 0 - /* Record subtype. */ - unsigned char subtyp[2]; -#endif -}; - -#endif /* _VMS_EOBJREC_H */ diff --git a/include/vms/esdf.h b/include/vms/esdf.h deleted file mode 100644 index 79ee3d6..0000000 --- a/include/vms/esdf.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Alpha VMS external format of Extended GSD Global Symbol Definition. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_ESDF_H -#define _VMS_ESDF_H - -struct vms_esdf -{ - struct vms_egsy header; - - unsigned char value[8]; - unsigned char code_address[8]; - unsigned char ca_psindx[4]; - - unsigned char psindx[4]; - unsigned char namlng; - unsigned char name[31]; -}; - -#define ESDF__B_NAMLNG 32 - -#endif /* _VMS_ESDF_H */ diff --git a/include/vms/esdfm.h b/include/vms/esdfm.h deleted file mode 100644 index e00e44a..0000000 --- a/include/vms/esdfm.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Alpha VMS external format of Extended Symbol Definition for version Mask. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_ESDFM_H -#define _VMS_ESDFM_H - -struct vms_esdfm -{ - /* Entry type. */ - unsigned char gsdtyp[2]; - - /* Length of the entry. */ - unsigned char size[2]; - - /* Data type. */ - unsigned char datyp; - - /* Pad for alignment. */ - unsigned char temp; - - unsigned char flags[2]; - - unsigned char value[8]; - unsigned char psindx[4]; - unsigned char version_mask[4]; - unsigned char namlng; - unsigned char name[31]; -}; - -#endif /* _VMS_ESDFM_H */ diff --git a/include/vms/esdfv.h b/include/vms/esdfv.h deleted file mode 100644 index fae0dbc..0000000 --- a/include/vms/esdfv.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Alpha VMS external format of Extended Symbol Def for Vectored symbols. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_ESDFV_H -#define _VMS_ESDFV_H - -struct vms_esdfv -{ - /* Entry type. */ - unsigned char gsdtyp[2]; - - /* Length of the entry. */ - unsigned char size[2]; - - /* Data type. */ - unsigned char datyp; - - /* Pad for alignment. */ - unsigned char temp; - - unsigned char flags[2]; - - unsigned char value[8]; - unsigned char psindx[4]; - unsigned char vector[4]; - unsigned char namlng; - unsigned char name[31]; -}; - -#endif /* _VMS_ESDFV_H */ diff --git a/include/vms/esgps.h b/include/vms/esgps.h deleted file mode 100644 index e668a87..0000000 --- a/include/vms/esgps.h +++ /dev/null @@ -1,72 +0,0 @@ -/* Alpha VMS external format of Extended Shared Program Section Definition. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_ESGPS_H -#define _VMS_ESGPS_H - -struct vms_esgps -{ - /* Entry type. */ - unsigned char gsdtyp[2]; - - /* Length of the entry. */ - unsigned char gsdsiz[2]; - - /* Psect alignment. */ - unsigned char align; - - /* Pad for alignment. */ - unsigned char temp; - - unsigned char flags[2]; - - /* Length of this contribution. */ - unsigned char alloc[4]; - - /* Image offset of the psect. */ - unsigned char base[4]; - - /* Symbol vector offset. */ - unsigned char value[8]; - - /* Name. */ - unsigned char namlng; - unsigned char name[31]; -}; - -/* These are the same as EGPS flags. */ - -#define ESGPS__V_PIC (1 << 0) /* Not meaningful. */ -#define ESGPS__V_LIB (1 << 1) /* Defined in a shareable image. */ -#define ESGPS__V_OVR (1 << 2) /* Overlaid contribution. */ -#define ESGPS__V_REL (1 << 3) /* Relocatable. */ -#define ESGPS__V_GBL (1 << 4) /* Global. */ -#define ESGPS__V_SHR (1 << 5) /* Shareable. */ -#define ESGPS__V_EXE (1 << 6) /* Executable. */ -#define ESGPS__V_RD (1 << 7) /* Readable. */ -#define ESGPS__V_WRT (1 << 8) /* Writable. */ -#define ESGPS__V_VEC (1 << 9) /* Change mode dispatch or message vectors. */ -#define ESGPS__V_NOMOD (1 << 10) /* Demand-zero. */ -#define ESGPS__V_COM (1 << 11) /* Conditional storage. */ -#define ESGPS__V_ALLOC_64BIT (1 << 12) /* Allocated in 64-bit space. */ - -#endif /* _VMS_ESGPS_H */ diff --git a/include/vms/esrf.h b/include/vms/esrf.h deleted file mode 100644 index 291250c..0000000 --- a/include/vms/esrf.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Alpha VMS external format of Extended GSD Global Symbol Reference. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_ESRF_H -#define _VMS_ESRF_H - -struct vms_esrf -{ - struct vms_egsy header; - - unsigned char namlng; - unsigned char name[31]; -}; - -#define ESRF__B_NAMLNG 8 - -#endif /* _VMS_ESRF_H */ diff --git a/include/vms/etir.h b/include/vms/etir.h deleted file mode 100644 index 4d922dc..0000000 --- a/include/vms/etir.h +++ /dev/null @@ -1,114 +0,0 @@ -/* Alpha VMS external format of Extended Text Information and Relocation. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_ETIR_H -#define _VMS_ETIR_H - -#define ETIR__C_MINSTACOD 0 /* Minimum stack code. */ -#define ETIR__C_STA_GBL 0 /* Stack global symbol value. */ -#define ETIR__C_STA_LW 1 /* Stack longword. */ -#define ETIR__C_STA_QW 2 /* Stack quadword. */ -#define ETIR__C_STA_PQ 3 /* Stack psect base + quadword off. */ -#define ETIR__C_STA_LI 4 /* Stack literal. */ -#define ETIR__C_STA_MOD 5 /* Stack module. */ -#define ETIR__C_STA_CKARG 6 /* Check Arguments. */ -#define ETIR__C_MAXSTACOD 6 /* Maximum stack code. */ - -#define ETIR__C_MINSTOCOD 50 /* Minimum store code. */ -#define ETIR__C_STO_B 50 /* Store byte. */ -#define ETIR__C_STO_W 51 /* Store word. */ -#define ETIR__C_STO_LW 52 /* Store longword. */ -#define ETIR__C_STO_QW 53 /* Store quadword. */ -#define ETIR__C_STO_IMMR 54 /* Store immediate Repeated. */ -#define ETIR__C_STO_GBL 55 /* Store global. */ -#define ETIR__C_STO_CA 56 /* Store code address. */ -#define ETIR__C_STO_RB 57 /* Store relative branch. */ -#define ETIR__C_STO_AB 58 /* Store absolute branch. */ -#define ETIR__C_STO_OFF 59 /* Store offset within psect. */ -#define ETIR__C_STO_IMM 61 /* Store immediate. */ -#define ETIR__C_STO_GBL_LW 62 /* Store global Longword. */ -#define ETIR__C_STO_LP_PSB 63 /* STO_LP_PSB not valid in level 2 use STC_LP_PSB. */ -#define ETIR__C_STO_HINT_GBL 64 /* Store 14 bit HINT at global address. */ -#define ETIR__C_STO_HINT_PS 65 /* Store 14 bit HINT at psect + offset */ -#define ETIR__C_MAXSTOCOD 65 /* Maximum store code. */ - -/* Operate codes. */ -#define ETIR__C_MINOPRCOD 100 /* Minimum operate code. */ -#define ETIR__C_OPR_NOP 100 /* No-op. */ -#define ETIR__C_OPR_ADD 101 /* Add. */ -#define ETIR__C_OPR_SUB 102 /* Subtract. */ -#define ETIR__C_OPR_MUL 103 /* Multiply. */ -#define ETIR__C_OPR_DIV 104 /* Divide. */ -#define ETIR__C_OPR_AND 105 /* Logical AND. */ -#define ETIR__C_OPR_IOR 106 /* Logical inclusive OR. */ -#define ETIR__C_OPR_EOR 107 /* Logical exclusive OR. */ -#define ETIR__C_OPR_NEG 108 /* Negate. */ -#define ETIR__C_OPR_COM 109 /* Complement. */ -#define ETIR__C_OPR_INSV 110 /* Insert bit field. */ -#define ETIR__C_OPR_ASH 111 /* Arithmetic shift. */ -#define ETIR__C_OPR_USH 112 /* Unsigned shift. */ -#define ETIR__C_OPR_ROT 113 /* Rotate. */ -#define ETIR__C_OPR_SEL 114 /* Select one of 3 long on top of stack. */ -#define ETIR__C_OPR_REDEF 115 /* Redefine this symbol after pass 2. */ -#define ETIR__C_OPR_DFLIT 116 /* Define a literal. */ -#define ETIR__C_MAXOPRCOD 116 /* Maximum operate code. */ - -/* Control codes. */ -#define ETIR__C_MINCTLCOD 150 /* Minimum control code. */ -#define ETIR__C_CTL_SETRB 150 /* Set relocation base. */ -#define ETIR__C_CTL_AUGRB 151 /* Augment relocation base. */ -#define ETIR__C_CTL_DFLOC 152 /* Define debug location. */ -#define ETIR__C_CTL_STLOC 153 /* Set debug location. */ -#define ETIR__C_CTL_STKDL 154 /* Stack debug location. */ -#define ETIR__C_MAXCTLCOD 154 /* Maximum control code. */ - -/* Store-conditional (STC) codes. */ -#define ETIR__C_MINSTCCOD 200 /* Minimum store-conditional code. */ -#define ETIR__C_STC_LP 200 /* STC Linkage Pair. */ -#define ETIR__C_STC_LP_PSB 201 /* STC Linkage Pair with Proc Signature. */ -#define ETIR__C_STC_GBL 202 /* STC Address at global address. */ -#define ETIR__C_STC_GCA 203 /* STC Code Address at global address. */ -#define ETIR__C_STC_PS 204 /* STC Address at psect + offset. */ -#define ETIR__C_STC_NOP_GBL 205 /* STC NOP at address of global. */ -#define ETIR__C_STC_NOP_PS 206 /* STC NOP at pect + offset. */ -#define ETIR__C_STC_BSR_GBL 207 /* STC BSR at global address. */ -#define ETIR__C_STC_BSR_PS 208 /* STC BSR at pect + offset. */ -#define ETIR__C_STC_LDA_GBL 209 /* STC LDA at global address. */ -#define ETIR__C_STC_LDA_PS 210 /* STC LDA at psect + offset. */ -#define ETIR__C_STC_BOH_GBL 211 /* STC BSR or Hint at global address. */ -#define ETIR__C_STC_BOH_PS 212 /* STC BSR or Hint at pect + offset. */ -#define ETIR__C_STC_NBH_GBL 213 /* STC NOP,BSR or HINT at global address. */ -#define ETIR__C_STC_NBH_PS 214 /* STC NOP,BSR or HINT at psect + offset. */ -#define ETIR__C_MAXSTCCOD 214 /* Maximum store-conditional code. */ - -#define ETIR__C_HEADER_SIZE 4 /* Size of the header of a command */ - -struct vms_etir -{ - /* Commands. See above. */ - unsigned char rectyp[2]; - - /* Size (including this header). */ - unsigned char size[2]; -}; - -#endif /* _VMS_ETIR_H */ diff --git a/include/vms/internal.h b/include/vms/internal.h deleted file mode 100644 index 1c8c472..0000000 --- a/include/vms/internal.h +++ /dev/null @@ -1,63 +0,0 @@ -/* Alpha VMS internal format. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_INTERNAL_H -#define _VMS_INTERNAL_H - -struct vms_internal_eisd -{ - unsigned int majorid; /* Version. */ - unsigned int minorid; - unsigned int eisdsize; /* Size (in bytes) of this eisd. */ - unsigned int secsize; /* Size (in bytes) of the section. */ - bfd_vma virt_addr; /* Virtual address of the section. */ - unsigned int flags; /* Flags. */ - unsigned int vbn; /* Base virtual block number. */ - unsigned char pfc; /* Page fault cluster. */ - unsigned char matchctl; /* Linker match control. */ - unsigned char type; /* Section type. */ -}; - -struct vms_internal_gbl_eisd -{ - struct vms_internal_eisd common; - - unsigned int ident; /* Ident for global section. */ - unsigned char gblnam[44]; /* Global name ascic. */ -}; - -struct vms_internal_eisd_map -{ - /* Next eisd in the list. */ - struct vms_internal_eisd_map *next; - - /* Offset in output file. */ - file_ptr file_pos; - - union - { - struct vms_internal_eisd eisd; - struct vms_internal_gbl_eisd gbl_eisd; - } u; -}; - -#endif /* _VMS_INTERNAL_H */ diff --git a/include/vms/lbr.h b/include/vms/lbr.h deleted file mode 100644 index fd3c256..0000000 --- a/include/vms/lbr.h +++ /dev/null @@ -1,332 +0,0 @@ -/* Alpha VMS external format of Libraries. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_LBR_H -#define _VMS_LBR_H - -/* Libray HeaDer. */ - -/* Magic numbers. Should match the major version. */ - -#define LHD_SANEID_DCX 319232342 -#define LHD_SANEID3 233579905 -#define LHD_SANEID6 233579911 - -/* Library type. */ -#define LBR__C_TYP_UNK 0 /* Unknown / unspecified. */ -#define LBR__C_TYP_OBJ 1 /* Vax object. */ -#define LBR__C_TYP_MLB 2 /* Macro. */ -#define LBR__C_TYP_HLP 3 /* Help. */ -#define LBR__C_TYP_TXT 4 /* Text. */ -#define LBR__C_TYP_SHSTB 5 /* Vax shareable image. */ -#define LBR__C_TYP_NCS 6 /* NCS. */ -#define LBR__C_TYP_EOBJ 7 /* Alpha object. */ -#define LBR__C_TYP_ESHSTB 8 /* Alpha shareable image. */ -#define LBR__C_TYP_IOBJ 9 /* IA-64 object. */ -#define LBR__C_TYP_ISHSTB 10 /* IA-64 shareable image. */ - -struct vms_lhd -{ - /* Type of the library. See above. */ - unsigned char type; - - /* Number of indexes. Generally 1, 2 for object libraries. */ - unsigned char nindex; - - unsigned char fill_1[2]; - - /* Sanity Id. */ - unsigned char sanity[4]; - - /* Version. */ - unsigned char majorid[2]; - unsigned char minorid[2]; - - /* Tool name. */ - unsigned char lbrver[32]; - - /* Create time. */ - unsigned char credat[8]; - - /* Update time. */ - unsigned char updtim[8]; - - /* Size of the MHD. */ - unsigned char mhdusz; - - unsigned char idxblkf[2]; /* Unused. */ - unsigned char fill_2; - unsigned char closerror[2]; - - unsigned char spareword[2]; - - /* First free block, and number of free blocks. */ - unsigned char freevbn[4]; - unsigned char freeblk[4]; - - unsigned char nextrfa[6]; - unsigned char nextvbn[4]; - - /* Free pre-allocated index block. */ - /* Number of free blocks. */ - unsigned char freidxblk[4]; - /* VBN of a simply linked list of free blocks. The list is terminated by a - nul VBN. */ - unsigned char freeidx[4]; - - /* Highest pre-allocated index block and in use. */ - unsigned char hipreal[4]; - unsigned char hiprusd[4]; - - /* Number of index blocks in use. */ - unsigned char idxblks[4]; - - /* Number of index entries. */ - unsigned char idxcnt[4]; - - /* Number of modules entries. */ - unsigned char modcnt[4]; - - unsigned char fill_3[2]; - - /* Number of module headers. */ - unsigned char modhdrs[4]; - - /* Overhead index pointers. */ - unsigned char idxovh[4]; - - /* Update history records. */ - unsigned char maxluhrec[2]; - unsigned char numluhrec[2]; - unsigned char begluhrfa[6]; - unsigned char endluhrfa[6]; - - /* DCX map. */ - unsigned char dcxmapvbn[4]; - - unsigned char fill_4[4 * 13]; -}; - -/* Known major ids. */ -#define LBR_MAJORID 3 /* Alpha libraries. */ -#define LBR_ELFMAJORID 6 /* Elf libraries (new index, new data). */ - -/* Offset of the first IDD. */ -#define LHD_IDXDESC 196 - -/* InDex Description. */ -struct vms_idd -{ - unsigned char flags[2]; - - /* Max length of the key. */ - unsigned char keylen[2]; - - /* First index block. */ - unsigned char vbn[4]; -}; - -/* IDD flags. */ -#define IDD__FLAGS_ASCII 1 -#define IDD__FLAGS_LOCKED 2 -#define IDD__FLAGS_VARLENIDX 4 -#define IDD__FLAGS_NOCASECMP 8 -#define IDD__FLAGS_NOCASENTR 16 -#define IDD__FLAGS_UPCASNTRY 32 - -#define IDD_LENGTH 8 - -/* Index block. */ -#define INDEXDEF__LENGTH 512 -#define INDEXDEF__BLKSIZ 500 - -struct vms_indexdef -{ - /* Number of bytes used. */ - unsigned char used[2]; - - /* VBN of the parent. */ - unsigned char parent[4]; - - unsigned char fill_1[6]; - - /* The key field contains vms_idx/vms_elfidx structures, which are - simply a key (= a string) and a rfa. */ - unsigned char keys[INDEXDEF__BLKSIZ]; -}; - -/* An offset in a file. */ - -struct vms_rfa -{ - /* Logical block number, 1 based. - 0 means that the field is absent. Block size is 512. */ - unsigned char vbn[4]; - - /* Offset within the block. */ - unsigned char offset[2]; -}; - -/* Index keys. For version 3. */ - -struct vms_idx -{ - /* Offset from the start of the vbn, so minimum should be - DATA__DATA (ie 6). */ - struct vms_rfa rfa; - - unsigned char keylen; - /* The length of this field is in fact keylen. */ - unsigned char keyname[256]; -}; - -/* Index keys, for version 4 and later. */ - -struct vms_elfidx -{ - struct vms_rfa rfa; - - unsigned char keylen[2]; - unsigned char flags; - unsigned char keyname[256]; -}; - -/* Flags of elfidx. */ - -#define ELFIDX__WEAK 0x01 /* Weak symbol. */ -#define ELFIDX__GROUP 0x02 /* Group symbol. */ -#define ELFIDX__LISTRFA 0x04 /* RFA field points to an LHS. */ -#define ELFIDX__SYMESC 0x08 /* Long symbol. */ - -#define RFADEF__C_INDEX 0xffff - -/* List head structure. That's what is pointed by rfa when LISTRFA flag - is set in elfidx. */ - -struct vms_lhs -{ - struct vms_rfa ng_g_rfa; /* Non-group global. */ - struct vms_rfa ng_wk_rfa; /* Non-group weak. */ - struct vms_rfa g_g_rfa; /* Group global. */ - struct vms_rfa g_wk_rfa; /* Group weak. */ - unsigned char flags; -}; - -/* List node structure. Fields of LHS point to this structure. */ - -struct vms_lns -{ - /* Next node in the list. */ - struct vms_rfa nxtrfa; - - /* Module associated with the key. */ - struct vms_rfa modrfa; -}; - -struct vms_datadef -{ - /* Number of records in this block. */ - unsigned char recs; - unsigned char fill_1; - - /* Next vbn. */ - unsigned char link[4]; - - /* Data. The first word is the record length, followed by record - data and a possible pad byte so that record length is always aligned. */ - unsigned char data[506]; -}; -#define DATA__LENGTH 512 -#define DATA__DATA 6 - -/* Key name block. This is used for keys longer than 128 bytes. */ - -struct vms_kbn -{ - /* Length of the key chunk. */ - unsigned char keylen[2]; - - /* RFA of the next chunk. */ - struct vms_rfa rfa; - - /* Followed by the key chunk. */ -}; - -/* Module header. */ -struct vms_mhd -{ - /* Fixed part. */ - unsigned char lbrflag; - unsigned char id; - unsigned char fill_1[2]; - unsigned char refcnt[4]; - unsigned char datim[8]; - - unsigned char objstat; - /* Ident or GSMATCH. */ - unsigned char objidlng; - unsigned char objid[31]; - - unsigned char pad1[3]; - unsigned char otherefcnt[4]; - unsigned char modsize[4]; - unsigned char pad2[4]; -}; - -#define MHD__C_MHDID 0xad /* Value for id. */ -#define MHD__C_MHDLEN 16 /* Fixed part length. */ -#define MHD__C_USRDAT 16 - -/* Flags for objstat. */ -#define MHD__M_SELSRC 0x1 /* Selective search. */ -#define MHD__M_OBJTIR 0x2 -#define MHD__M_WKSYM 0x4 - -struct vms_luh -{ - unsigned char nxtluhblk[4]; - unsigned char spare[2]; - unsigned char data[506]; -}; - -struct vms_luhdef -{ - unsigned char rechdr[2]; - unsigned char reclen[2]; -}; -#define LUH__RECHDRLEN 4 -#define LUH__RECHDRMRK 0xabba -#define LUH__DATAFLDLEN 506 - -/* Entry in the history. */ - -struct vms_leh -{ - unsigned char date[8]; - unsigned char nbr_units[2]; - unsigned char action[2]; /* 1: delete, 2: insert, 3: replaced. */ - unsigned char idlen; - /* username - modules... */ -}; - -#endif /* _VMS_LBR_H */ diff --git a/include/vms/prt.h b/include/vms/prt.h deleted file mode 100644 index 8b8d27b..0000000 --- a/include/vms/prt.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Alpha VMS external format of Protection values. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_PRT_H -#define _VMS_PRT_H - -#define PRT__C_NA 0 /* No access. */ -#define PRT__C_RESERVED 1 -#define PRT__C_KW 2 /* Kernel RW. */ -#define PRT__C_KR 3 /* Kernel RO. */ -#define PRT__C_UW 4 /* User RW. */ -#define PRT__C_EW 5 /* Executive RW. */ -#define PRT__C_ERKW 6 /* Executive RO, Kernel RW. */ -#define PRT__C_ER 7 /* Executive RO. */ -#define PRT__C_SW 8 /* Supervisor RW. */ -#define PRT__C_SREW 9 /* Supervisor RO, Executive RW. */ -#define PRT__C_SRKW 10 /* Supervisor RO, Kernel RW. */ -#define PRT__C_SR 11 /* Supervisor RO. */ -#define PRT__C_URSW 12 /* User RO, Supervisor RW. */ -#define PRT__C_UREW 13 /* User RO, Executive RW. */ -#define PRT__C_URKW 14 /* User RO, Kernel RW. */ -#define PRT__C_UR 15 /* User RO. */ - -#endif /* _VMS_PRT_H */ diff --git a/include/vms/shl.h b/include/vms/shl.h deleted file mode 100644 index d1d9fae..0000000 --- a/include/vms/shl.h +++ /dev/null @@ -1,55 +0,0 @@ -/* Alpha VMS external format of Shareable image List. - - Copyright 2010 Free Software Foundation, Inc. - Written by Tristan Gingold , AdaCore. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _VMS_SHL_H -#define _VMS_SHL_H - -struct vms_shl -{ - /* Base address of this shareable image. */ - unsigned char baseva[4]; - - /* Point in SHL shareable image to SHL in executable image. */ - unsigned char shlptr[4]; - - /* GSMATCH. */ - unsigned char ident[4]; - - /* Permanent shareable image context. */ - unsigned char permctx[4]; - - /* Size of this structure. */ - unsigned char size; - - unsigned char fill_1[2]; - - /* Flags. */ - unsigned char flags; - - /* Address of the image control block (in memory). */ - unsigned char icb[4]; - - /* Image name. ASCIC. */ - unsigned char imgnam[40]; -}; - -#endif /* _VMS_SHL_H */ diff --git a/include/vtv-change-permission.h b/include/vtv-change-permission.h deleted file mode 100644 index 04ad8c3..0000000 --- a/include/vtv-change-permission.h +++ /dev/null @@ -1,58 +0,0 @@ -/* Copyright (C) 2013-2015 Free Software Foundation, Inc. - - This file is part of GCC. - - modify it under the terms of the GNU Library General Public License - as published by the Free Software Foundation; either version 2, or - (at your option) any later version. - - In addition to the permissions in the GNU Library General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file into - combinations with other programs, and to distribute those - combinations without any restriction coming from the use of this - file. (The Library Public License restrictions do apply in other - respects; for example, they cover modification of the file, and - distribution when not linked into a combined executable.) - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - - -#ifndef __VTV_H__ -#define __VTV_H__ - -/* We could have used an enumeration here but it just makes it more - difficult for the compiler to generate a call to this. These are - used as arguments to the function __VLTChangePermission, declared - below. */ -#define __VLTP_READ_ONLY 0 -#define __VLTP_READ_WRITE 1 - -#ifdef __cplusplus -extern "C" void __VLTChangePermission (int); -#else -extern void __VLTChangePermission (int); -#endif - -#ifdef BIG_PAGE_SIZE -/* TODO - Replace '4096' below with correct big page size. */ -#define VTV_PAGE_SIZE 4096 -#else -#if defined(__sun__) && defined(__svr4__) && defined(__sparc__) -#define VTV_PAGE_SIZE 8192 -#else -#define VTV_PAGE_SIZE 4096 -#endif -#endif - - - -#endif /* __VTV_H__ */ diff --git a/include/wchar.h b/include/wchar.h deleted file mode 100644 index 7c37427..0000000 --- a/include/wchar.h +++ /dev/null @@ -1,339 +0,0 @@ -#ifndef _WCHAR_H_ -#define _WCHAR_H_ - -#include <_ansi.h> - -#include - -#define __need_size_t -#define __need_wchar_t -#define __need_wint_t -#define __need_NULL -#include - -/* For _mbstate_t definition. */ -#include -#include -/* For __STDC_ISO_10646__ */ -#include - -/* typedef only __gnuc_va_list, used throughout the header */ -#define __need___va_list -#include - -/* typedef va_list only when required */ -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE -#ifdef __GNUC__ -#ifndef _VA_LIST_DEFINED -typedef __gnuc_va_list va_list; -#define _VA_LIST_DEFINED -#endif -#else /* !__GNUC__ */ -#include -#endif -#endif /* __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE */ - -#if __XSI_VISIBLE /* && __XSI_VISIBLE < 800 */ && !__GNU_VISIBLE -#include -#endif - -#ifndef WEOF -# define WEOF ((wint_t)-1) -#endif - -/* This must match definition in */ -#ifndef WCHAR_MIN -#ifdef __WCHAR_MIN__ -#define WCHAR_MIN __WCHAR_MIN__ -#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0) -#define WCHAR_MIN (0 + L'\0') -#else -#define WCHAR_MIN (-0x7fffffff - 1 + L'\0') -#endif -#endif - -/* This must match definition in */ -#ifndef WCHAR_MAX -#ifdef __WCHAR_MAX__ -#define WCHAR_MAX __WCHAR_MAX__ -#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0) -#define WCHAR_MAX (0xffffffffu + L'\0') -#else -#define WCHAR_MAX (0x7fffffff + L'\0') -#endif -#endif - -#if __POSIX_VISIBLE >= 200809 -#include -#endif - -_BEGIN_STD_C - -#if __POSIX_VISIBLE >= 200809 || _XSI_VISIBLE -/* As in stdio.h, defines __FILE. */ -#if !defined(__FILE_defined) -typedef __FILE FILE; -# define __FILE_defined -#endif -#endif - -/* As required by POSIX.1-2008, declare tm as incomplete type. - The actual definition is in time.h. */ -struct tm; - -#ifndef _MBSTATE_T -#define _MBSTATE_T -typedef _mbstate_t mbstate_t; -#endif /* _MBSTATE_T */ - -wint_t btowc (int); -int wctob (wint_t); -size_t mbrlen (const char *__restrict, size_t, mbstate_t *__restrict); -size_t mbrtowc (wchar_t *__restrict, const char *__restrict, size_t, - mbstate_t *__restrict); -size_t _mbrtowc_r (struct _reent *, wchar_t * , const char * , - size_t, mbstate_t *); -int mbsinit (const mbstate_t *); -#if __POSIX_VISIBLE >= 200809 -size_t mbsnrtowcs (wchar_t *__restrict, const char **__restrict, - size_t, size_t, mbstate_t *__restrict); -#endif -size_t _mbsnrtowcs_r (struct _reent *, wchar_t * , const char ** , - size_t, size_t, mbstate_t *); -size_t mbsrtowcs (wchar_t *__restrict, const char **__restrict, size_t, - mbstate_t *__restrict); -size_t _mbsrtowcs_r (struct _reent *, wchar_t * , const char ** , size_t, mbstate_t *); -size_t wcrtomb (char *__restrict, wchar_t, mbstate_t *__restrict); -size_t _wcrtomb_r (struct _reent *, char * , wchar_t, mbstate_t *); -#if __POSIX_VISIBLE >= 200809 -size_t wcsnrtombs (char *__restrict, const wchar_t **__restrict, - size_t, size_t, mbstate_t *__restrict); -#endif -size_t _wcsnrtombs_r (struct _reent *, char * , const wchar_t ** , - size_t, size_t, mbstate_t *); -size_t wcsrtombs (char *__restrict, const wchar_t **__restrict, - size_t, mbstate_t *__restrict); -size_t _wcsrtombs_r (struct _reent *, char * , const wchar_t ** , - size_t, mbstate_t *); -#if __POSIX_VISIBLE >= 200809 -int wcscasecmp (const wchar_t *, const wchar_t *); -#endif -wchar_t *wcscat (wchar_t *__restrict, const wchar_t *__restrict); -wchar_t *wcschr (const wchar_t *, wchar_t); -int wcscmp (const wchar_t *, const wchar_t *); -int wcscoll (const wchar_t *, const wchar_t *); -wchar_t *wcscpy (wchar_t *__restrict, const wchar_t *__restrict); -#if __POSIX_VISIBLE >= 200809 -wchar_t *wcpcpy (wchar_t *__restrict, - const wchar_t *__restrict); -wchar_t *wcsdup (const wchar_t *) __malloc_like __result_use_check; -#endif -wchar_t *_wcsdup_r (struct _reent *, const wchar_t * ); -size_t wcscspn (const wchar_t *, const wchar_t *); -size_t wcsftime (wchar_t *__restrict, size_t, - const wchar_t *__restrict, const struct tm *__restrict); -#if __GNU_VISIBLE -size_t wcsftime_l (wchar_t *__restrict, size_t, const wchar_t *__restrict, - const struct tm *__restrict, locale_t); -#endif -size_t wcslcat (wchar_t *, const wchar_t *, size_t); -size_t wcslcpy (wchar_t *, const wchar_t *, size_t); -size_t wcslen (const wchar_t *); -#if __POSIX_VISIBLE >= 200809 -int wcsncasecmp (const wchar_t *, const wchar_t *, size_t); -#endif -wchar_t *wcsncat (wchar_t *__restrict, - const wchar_t *__restrict, size_t); -int wcsncmp (const wchar_t *, const wchar_t *, size_t); -wchar_t *wcsncpy (wchar_t *__restrict, - const wchar_t *__restrict, size_t); -#if __POSIX_VISIBLE >= 200809 -wchar_t *wcpncpy (wchar_t *__restrict, - const wchar_t *__restrict, size_t); -size_t wcsnlen (const wchar_t *, size_t); -#endif -wchar_t *wcspbrk (const wchar_t *, const wchar_t *); -wchar_t *wcsrchr (const wchar_t *, wchar_t); -size_t wcsspn (const wchar_t *, const wchar_t *); -wchar_t *wcsstr (const wchar_t *__restrict, - const wchar_t *__restrict); -wchar_t *wcstok (wchar_t *__restrict, const wchar_t *__restrict, - wchar_t **__restrict); -double wcstod (const wchar_t *__restrict, wchar_t **__restrict); -double _wcstod_r (struct _reent *, const wchar_t *, wchar_t **); -#if __ISO_C_VISIBLE >= 1999 -float wcstof (const wchar_t *__restrict, wchar_t **__restrict); -#endif -float _wcstof_r (struct _reent *, const wchar_t *, wchar_t **); -#if __XSI_VISIBLE -int wcswidth (const wchar_t *, size_t); -#endif -size_t wcsxfrm (wchar_t *__restrict, const wchar_t *__restrict, - size_t); -#if __POSIX_VISIBLE >= 200809 -extern int wcscasecmp_l (const wchar_t *, const wchar_t *, locale_t); -extern int wcsncasecmp_l (const wchar_t *, const wchar_t *, size_t, locale_t); -extern int wcscoll_l (const wchar_t *, const wchar_t *, locale_t); -extern size_t wcsxfrm_l (wchar_t *__restrict, const wchar_t *__restrict, size_t, - locale_t); -#endif - -#if __XSI_VISIBLE -int wcwidth (const wchar_t); -#endif -wchar_t *wmemchr (const wchar_t *, wchar_t, size_t); -int wmemcmp (const wchar_t *, const wchar_t *, size_t); -wchar_t *wmemcpy (wchar_t *__restrict, const wchar_t *__restrict, - size_t); -wchar_t *wmemmove (wchar_t *, const wchar_t *, size_t); -#if __GNU_VISIBLE -wchar_t *wmempcpy (wchar_t *__restrict, const wchar_t *__restrict, - size_t); -#endif -wchar_t *wmemset (wchar_t *, wchar_t, size_t); - -long wcstol (const wchar_t *__restrict, wchar_t **__restrict, int); -#if __ISO_C_VISIBLE >= 1999 -long long wcstoll (const wchar_t *__restrict, wchar_t **__restrict, - int); -#endif -unsigned long wcstoul (const wchar_t *__restrict, wchar_t **__restrict, - int); -#if __ISO_C_VISIBLE >= 1999 -unsigned long long wcstoull (const wchar_t *__restrict, - wchar_t **__restrict, int); -#endif -long _wcstol_r (struct _reent *, const wchar_t *, wchar_t **, int); -long long _wcstoll_r (struct _reent *, const wchar_t *, wchar_t **, int); -unsigned long _wcstoul_r (struct _reent *, const wchar_t *, wchar_t **, int); -unsigned long long _wcstoull_r (struct _reent *, const wchar_t *, wchar_t **, int); -#if __ISO_C_VISIBLE >= 1999 -long double wcstold (const wchar_t *, wchar_t **); -#endif - -#if __GNU_VISIBLE -long wcstol_l (const wchar_t *__restrict, wchar_t **__restrict, int, locale_t); -long long wcstoll_l (const wchar_t *__restrict, wchar_t **__restrict, int, - locale_t); -unsigned long wcstoul_l (const wchar_t *__restrict, wchar_t **__restrict, int, - locale_t); -unsigned long long wcstoull_l (const wchar_t *__restrict, wchar_t **__restrict, - int, locale_t); -double wcstod_l (const wchar_t *, wchar_t **, locale_t); -float wcstof_l (const wchar_t *, wchar_t **, locale_t); -long double wcstold_l (const wchar_t *, wchar_t **, locale_t); -#endif - -wint_t fgetwc (__FILE *); -wchar_t *fgetws (wchar_t *__restrict, int, __FILE *__restrict); -wint_t fputwc (wchar_t, __FILE *); -int fputws (const wchar_t *__restrict, __FILE *__restrict); -#if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500 -int fwide (__FILE *, int); -#endif -wint_t getwc (__FILE *); -wint_t getwchar (void); -wint_t putwc (wchar_t, __FILE *); -wint_t putwchar (wchar_t); -wint_t ungetwc (wint_t wc, __FILE *); - -wint_t _fgetwc_r (struct _reent *, __FILE *); -wint_t _fgetwc_unlocked_r (struct _reent *, __FILE *); -wchar_t *_fgetws_r (struct _reent *, wchar_t *, int, __FILE *); -wchar_t *_fgetws_unlocked_r (struct _reent *, wchar_t *, int, __FILE *); -wint_t _fputwc_r (struct _reent *, wchar_t, __FILE *); -wint_t _fputwc_unlocked_r (struct _reent *, wchar_t, __FILE *); -int _fputws_r (struct _reent *, const wchar_t *, __FILE *); -int _fputws_unlocked_r (struct _reent *, const wchar_t *, __FILE *); -int _fwide_r (struct _reent *, __FILE *, int); -wint_t _getwc_r (struct _reent *, __FILE *); -wint_t _getwc_unlocked_r (struct _reent *, __FILE *); -wint_t _getwchar_r (struct _reent *); -wint_t _getwchar_unlocked_r (struct _reent *); -wint_t _putwc_r (struct _reent *, wchar_t, __FILE *); -wint_t _putwc_unlocked_r (struct _reent *, wchar_t, __FILE *); -wint_t _putwchar_r (struct _reent *, wchar_t); -wint_t _putwchar_unlocked_r (struct _reent *, wchar_t); -wint_t _ungetwc_r (struct _reent *, wint_t wc, __FILE *); - -#if __GNU_VISIBLE -wint_t fgetwc_unlocked (__FILE *); -wchar_t *fgetws_unlocked (wchar_t *__restrict, int, __FILE *__restrict); -wint_t fputwc_unlocked (wchar_t, __FILE *); -int fputws_unlocked (const wchar_t *__restrict, __FILE *__restrict); -wint_t getwc_unlocked (__FILE *); -wint_t getwchar_unlocked (void); -wint_t putwc_unlocked (wchar_t, __FILE *); -wint_t putwchar_unlocked (wchar_t); -#endif - -#if __POSIX_VISIBLE >= 200809 -__FILE *open_wmemstream (wchar_t **, size_t *); -#endif -__FILE *_open_wmemstream_r (struct _reent *, wchar_t **, size_t *); - -#ifndef __VALIST -#ifdef __GNUC__ -#define __VALIST __gnuc_va_list -#else -#define __VALIST char* -#endif -#endif - -#if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500 -int fwprintf (__FILE *__restrict, const wchar_t *__restrict, ...); -int swprintf (wchar_t *__restrict, size_t, - const wchar_t *__restrict, ...); -int vfwprintf (__FILE *__restrict, const wchar_t *__restrict, - __VALIST); -int vswprintf (wchar_t *__restrict, size_t, - const wchar_t *__restrict, __VALIST); -int vwprintf (const wchar_t *__restrict, __VALIST); -int wprintf (const wchar_t *__restrict, ...); -#endif - -int _fwprintf_r (struct _reent *, __FILE *, const wchar_t *, ...); -int _swprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, ...); -int _vfwprintf_r (struct _reent *, __FILE *, const wchar_t *, __VALIST); -int _vswprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, __VALIST); -int _vwprintf_r (struct _reent *, const wchar_t *, __VALIST); -int _wprintf_r (struct _reent *, const wchar_t *, ...); - -#if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500 -int fwscanf (__FILE *__restrict, const wchar_t *__restrict, ...); -int swscanf (const wchar_t *__restrict, - const wchar_t *__restrict, ...); -int vfwscanf (__FILE *__restrict, const wchar_t *__restrict, - __VALIST); -int vswscanf (const wchar_t *__restrict, const wchar_t *__restrict, - __VALIST); -int vwscanf (const wchar_t *__restrict, __VALIST); -int wscanf (const wchar_t *__restrict, ...); -#endif - -int _fwscanf_r (struct _reent *, __FILE *, const wchar_t *, ...); -int _swscanf_r (struct _reent *, const wchar_t *, const wchar_t *, ...); -int _vfwscanf_r (struct _reent *, __FILE *, const wchar_t *, __VALIST); -int _vswscanf_r (struct _reent *, const wchar_t *, const wchar_t *, __VALIST); -int _vwscanf_r (struct _reent *, const wchar_t *, __VALIST); -int _wscanf_r (struct _reent *, const wchar_t *, ...); - -#define getwc(fp) fgetwc(fp) -#define putwc(wc,fp) fputwc((wc), (fp)) -#define getwchar() fgetwc(_REENT_STDIN(_REENT)) -#define putwchar(wc) fputwc((wc), _REENT_STDOUT(_REENT)) - -#if __GNU_VISIBLE -#define getwc_unlocked(fp) fgetwc_unlocked(fp) -#define putwc_unlocked(wc,fp) fputwc_unlocked((wc), (fp)) -#define getwchar_unlocked() fgetwc_unlocked(_REENT_STDIN(_REENT)) -#define putwchar_unlocked(wc) fputwc_unlocked((wc), _REENT_STDOUT(_REENT)) -#endif - -_END_STD_C - -#if __SSP_FORTIFY_LEVEL > 0 -#include -#endif - -#endif /* _WCHAR_H_ */ diff --git a/include/wctype.h b/include/wctype.h deleted file mode 100644 index e5452bf..0000000 --- a/include/wctype.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef _WCTYPE_H_ -#define _WCTYPE_H_ - -#include <_ansi.h> -#include - -#define __need_wint_t -#include - -#if __POSIX_VISIBLE >= 200809 -#include -#endif - -#ifndef WEOF -# define WEOF ((wint_t)-1) -#endif - -_BEGIN_STD_C - -#ifndef _WCTYPE_T -#define _WCTYPE_T -typedef int wctype_t; -#endif - -#ifndef _WCTRANS_T -#define _WCTRANS_T -typedef int wctrans_t; -#endif - -int iswalpha (wint_t); -int iswalnum (wint_t); -#if __ISO_C_VISIBLE >= 1999 -int iswblank (wint_t); -#endif -int iswcntrl (wint_t); -int iswctype (wint_t, wctype_t); -int iswdigit (wint_t); -int iswgraph (wint_t); -int iswlower (wint_t); -int iswprint (wint_t); -int iswpunct (wint_t); -int iswspace (wint_t); -int iswupper (wint_t); -int iswxdigit (wint_t); -wint_t towctrans (wint_t, wctrans_t); -wint_t towupper (wint_t); -wint_t towlower (wint_t); -wctrans_t wctrans (const char *); -wctype_t wctype (const char *); - -#if __POSIX_VISIBLE >= 200809 -extern int iswalpha_l (wint_t, locale_t); -extern int iswalnum_l (wint_t, locale_t); -extern int iswblank_l (wint_t, locale_t); -extern int iswcntrl_l (wint_t, locale_t); -extern int iswctype_l (wint_t, wctype_t, locale_t); -extern int iswdigit_l (wint_t, locale_t); -extern int iswgraph_l (wint_t, locale_t); -extern int iswlower_l (wint_t, locale_t); -extern int iswprint_l (wint_t, locale_t); -extern int iswpunct_l (wint_t, locale_t); -extern int iswspace_l (wint_t, locale_t); -extern int iswupper_l (wint_t, locale_t); -extern int iswxdigit_l (wint_t, locale_t); -extern wint_t towctrans_l (wint_t, wctrans_t, locale_t); -extern wint_t towupper_l (wint_t, locale_t); -extern wint_t towlower_l (wint_t, locale_t); -extern wctrans_t wctrans_l (const char *, locale_t); -extern wctype_t wctype_l (const char *, locale_t); -#endif - -_END_STD_C - -#endif /* _WCTYPE_H_ */ diff --git a/include/wordexp.h b/include/wordexp.h deleted file mode 100644 index 1f09a64..0000000 --- a/include/wordexp.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (C) 2002, 2010 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _WORDEXP_H_ -#define _WORDEXP_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct _wordexp_t -{ - size_t we_wordc; /* Count of words matched by words. */ - char **we_wordv; /* Pointer to list of expanded words. */ - size_t we_offs; /* Slots to reserve at the beginning of we_wordv. */ -}; - -typedef struct _wordexp_t wordexp_t; - -#define WRDE_DOOFFS 0x0001 /* Use we_offs. */ -#define WRDE_APPEND 0x0002 /* Append to output from previous call. */ -#define WRDE_NOCMD 0x0004 /* Don't perform command substitution. */ -#define WRDE_REUSE 0x0008 /* pwordexp points to a wordexp_t struct returned from - a previous successful call to wordexp. */ -#define WRDE_SHOWERR 0x0010 /* Print error messages to stderr. */ -#define WRDE_UNDEF 0x0020 /* Report attempt to expand undefined shell variable. */ - -enum { - WRDE_SUCCESS, - WRDE_NOSPACE, - WRDE_BADCHAR, - WRDE_BADVAL, - WRDE_CMDSUB, - WRDE_SYNTAX, - WRDE_NOSYS -}; - -/* Note: This implementation of wordexp requires a version of bash - that supports the --wordexp and --protected arguments to be present - on the system. It does not support the WRDE_UNDEF flag. */ -int wordexp(const char *__restrict, wordexp_t *__restrict, int); -void wordfree(wordexp_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* _WORDEXP_H_ */ diff --git a/include/xregex.h b/include/xregex.h deleted file mode 100644 index 4c5ef93..0000000 --- a/include/xregex.h +++ /dev/null @@ -1,29 +0,0 @@ -/* This file redefines all regex external names before including - a renamed copy of glibc's regex.h. */ - -#ifndef _XREGEX_H -#define _XREGEX_H 1 - -# define regfree xregfree -# define regexec xregexec -# define regcomp xregcomp -# define regerror xregerror -# define regoff_t xregoff_t -# define re_set_registers xre_set_registers -# define re_match_2 xre_match_2 -# define re_match xre_match -# define re_search xre_search -# define re_compile_pattern xre_compile_pattern -# define re_set_syntax xre_set_syntax -# define re_search_2 xre_search_2 -# define re_compile_fastmap xre_compile_fastmap -# define re_syntax_options xre_syntax_options -# define re_max_failures xre_max_failures - -# define _REGEX_RE_COMP -# define re_comp xre_comp -# define re_exec xre_exec - -#include "xregex2.h" - -#endif /* xregex.h */ diff --git a/include/xregex2.h b/include/xregex2.h deleted file mode 100644 index 05066d4..0000000 --- a/include/xregex2.h +++ /dev/null @@ -1,564 +0,0 @@ -/* Definitions for data structures and routines for the regular - expression library, version 0.12. - - Copyright (C) 1985-2015 Free Software Foundation, Inc. - - This file is part of the GNU C Library. Its master source is NOT part of - the C library, however. The master source lives in /gd/gnu/lib. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. */ - -#ifndef _REGEX_H -#define _REGEX_H 1 - -/* Allow the use in C++ code. */ -#ifdef __cplusplus -extern "C" { -#endif - -/* POSIX says that must be included (by the caller) before - . */ - -#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS -/* VMS doesn't have `size_t' in , even though POSIX says it - should be there. */ -# include -#endif - -/* The following two types have to be signed and unsigned integer type - wide enough to hold a value of a pointer. For most ANSI compilers - ptrdiff_t and size_t should be likely OK. Still size of these two - types is 2 for Microsoft C. Ugh... */ -typedef long int s_reg_t; -typedef unsigned long int active_reg_t; - -/* The following bits are used to determine the regexp syntax we - recognize. The set/not-set meanings are chosen so that Emacs syntax - remains the value 0. The bits are given in alphabetical order, and - the definitions shifted by one from the previous bit; thus, when we - add or remove a bit, only one other definition need change. */ -typedef unsigned long int reg_syntax_t; - -/* If this bit is not set, then \ inside a bracket expression is literal. - If set, then such a \ quotes the following character. */ -#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) - -/* If this bit is not set, then + and ? are operators, and \+ and \? are - literals. - If set, then \+ and \? are operators and + and ? are literals. */ -#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) - -/* If this bit is set, then character classes are supported. They are: - [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:], - [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:]. - If not set, then character classes are not supported. */ -#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) - -/* If this bit is set, then ^ and $ are always anchors (outside bracket - expressions, of course). - If this bit is not set, then it depends: - ^ is an anchor if it is at the beginning of a regular - expression or after an open-group or an alternation operator; - $ is an anchor if it is at the end of a regular expression, or - before a close-group or an alternation operator. - - This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because - POSIX draft 11.2 says that * etc. in leading positions is undefined. - We already implemented a previous draft which made those constructs - invalid, though, so we haven't changed the code back. */ -#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) - -/* If this bit is set, then special characters are always special - regardless of where they are in the pattern. - If this bit is not set, then special characters are special only in - some contexts; otherwise they are ordinary. Specifically, - * + ? and intervals are only special when not after the beginning, - open-group, or alternation operator. */ -#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) - -/* If this bit is set, then *, +, ?, and { cannot be first in an re or - immediately after an alternation or begin-group operator. */ -#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) - -/* If this bit is set, then . matches newline. - If not set, then it doesn't. */ -#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) - -/* If this bit is set, then . doesn't match NUL. - If not set, then it does. */ -#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) - -/* If this bit is set, nonmatching lists [^...] do not match newline. - If not set, they do. */ -#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) - -/* If this bit is set, either \{...\} or {...} defines an - interval, depending on RE_NO_BK_BRACES. - If not set, \{, \}, {, and } are literals. */ -#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) - -/* If this bit is set, +, ? and | aren't recognized as operators. - If not set, they are. */ -#define RE_LIMITED_OPS (RE_INTERVALS << 1) - -/* If this bit is set, newline is an alternation operator. - If not set, newline is literal. */ -#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) - -/* If this bit is set, then `{...}' defines an interval, and \{ and \} - are literals. - If not set, then `\{...\}' defines an interval. */ -#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) - -/* If this bit is set, (...) defines a group, and \( and \) are literals. - If not set, \(...\) defines a group, and ( and ) are literals. */ -#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) - -/* If this bit is set, then \ matches . - If not set, then \ is a back-reference. */ -#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) - -/* If this bit is set, then | is an alternation operator, and \| is literal. - If not set, then \| is an alternation operator, and | is literal. */ -#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) - -/* If this bit is set, then an ending range point collating higher - than the starting range point, as in [z-a], is invalid. - If not set, then when ending range point collates higher than the - starting range point, the range is ignored. */ -#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) - -/* If this bit is set, then an unmatched ) is ordinary. - If not set, then an unmatched ) is invalid. */ -#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) - -/* If this bit is set, succeed as soon as we match the whole pattern, - without further backtracking. */ -#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) - -/* If this bit is set, do not process the GNU regex operators. - If not set, then the GNU regex operators are recognized. */ -#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) - -/* If this bit is set, turn on internal regex debugging. - If not set, and debugging was on, turn it off. - This only works if regex.c is compiled -DDEBUG. - We define this bit always, so that all that's needed to turn on - debugging is to recompile regex.c; the calling code can always have - this bit set, and it won't affect anything in the normal case. */ -#define RE_DEBUG (RE_NO_GNU_OPS << 1) - -/* If this bit is set, a syntactically invalid interval is treated as - a string of ordinary characters. For example, the ERE 'a{1' is - treated as 'a\{1'. */ -#define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) - -/* This global variable defines the particular regexp syntax to use (for - some interfaces). When a regexp is compiled, the syntax used is - stored in the pattern buffer, so changing this does not affect - already-compiled regexps. */ -extern reg_syntax_t re_syntax_options; - -/* Define combinations of the above bits for the standard possibilities. - (The [[[ comments delimit what gets put into the Texinfo file, so - don't delete them!) */ -/* [[[begin syntaxes]]] */ -#define RE_SYNTAX_EMACS 0 - -#define RE_SYNTAX_AWK \ - (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ - | RE_NO_BK_PARENS | RE_NO_BK_REFS \ - | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ - | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \ - | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS) - -#define RE_SYNTAX_GNU_AWK \ - ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG) \ - & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS)) - -#define RE_SYNTAX_POSIX_AWK \ - (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ - | RE_INTERVALS | RE_NO_GNU_OPS) - -#define RE_SYNTAX_GREP \ - (RE_BK_PLUS_QM | RE_CHAR_CLASSES \ - | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \ - | RE_NEWLINE_ALT) - -#define RE_SYNTAX_EGREP \ - (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \ - | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \ - | RE_NEWLINE_ALT | RE_NO_BK_PARENS \ - | RE_NO_BK_VBAR) - -#define RE_SYNTAX_POSIX_EGREP \ - (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES \ - | RE_INVALID_INTERVAL_ORD) - -/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ -#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC - -#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC - -/* Syntax bits common to both basic and extended POSIX regex syntax. */ -#define _RE_SYNTAX_POSIX_COMMON \ - (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ - | RE_INTERVALS | RE_NO_EMPTY_RANGES) - -#define RE_SYNTAX_POSIX_BASIC \ - (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM) - -/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes - RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this - isn't minimal, since other operators, such as \`, aren't disabled. */ -#define RE_SYNTAX_POSIX_MINIMAL_BASIC \ - (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS) - -#define RE_SYNTAX_POSIX_EXTENDED \ - (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ - | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \ - | RE_NO_BK_PARENS | RE_NO_BK_VBAR \ - | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD) - -/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is - removed and RE_NO_BK_REFS is added. */ -#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \ - (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ - | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \ - | RE_NO_BK_PARENS | RE_NO_BK_REFS \ - | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD) -/* [[[end syntaxes]]] */ - -/* Maximum number of duplicates an interval can allow. Some systems - (erroneously) define this in other header files, but we want our - value, so remove any previous define. */ -#ifdef RE_DUP_MAX -# undef RE_DUP_MAX -#endif -/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */ -#define RE_DUP_MAX (0x7fff) - - -/* POSIX `cflags' bits (i.e., information for `regcomp'). */ - -/* If this bit is set, then use extended regular expression syntax. - If not set, then use basic regular expression syntax. */ -#define REG_EXTENDED 1 - -/* If this bit is set, then ignore case when matching. - If not set, then case is significant. */ -#define REG_ICASE (REG_EXTENDED << 1) - -/* If this bit is set, then anchors do not match at newline - characters in the string. - If not set, then anchors do match at newlines. */ -#define REG_NEWLINE (REG_ICASE << 1) - -/* If this bit is set, then report only success or fail in regexec. - If not set, then returns differ between not matching and errors. */ -#define REG_NOSUB (REG_NEWLINE << 1) - - -/* POSIX `eflags' bits (i.e., information for regexec). */ - -/* If this bit is set, then the beginning-of-line operator doesn't match - the beginning of the string (presumably because it's not the - beginning of a line). - If not set, then the beginning-of-line operator does match the - beginning of the string. */ -#define REG_NOTBOL 1 - -/* Like REG_NOTBOL, except for the end-of-line. */ -#define REG_NOTEOL (1 << 1) - - -/* If any error codes are removed, changed, or added, update the - `re_error_msg' table in regex.c. */ -typedef enum -{ -#ifdef _XOPEN_SOURCE - REG_ENOSYS = -1, /* This will never happen for this implementation. */ -#endif - - REG_NOERROR = 0, /* Success. */ - REG_NOMATCH, /* Didn't find a match (for regexec). */ - - /* POSIX regcomp return error codes. (In the order listed in the - standard.) */ - REG_BADPAT, /* Invalid pattern. */ - REG_ECOLLATE, /* Not implemented. */ - REG_ECTYPE, /* Invalid character class name. */ - REG_EESCAPE, /* Trailing backslash. */ - REG_ESUBREG, /* Invalid back reference. */ - REG_EBRACK, /* Unmatched left bracket. */ - REG_EPAREN, /* Parenthesis imbalance. */ - REG_EBRACE, /* Unmatched \{. */ - REG_BADBR, /* Invalid contents of \{\}. */ - REG_ERANGE, /* Invalid range end. */ - REG_ESPACE, /* Ran out of memory. */ - REG_BADRPT, /* No preceding re for repetition op. */ - - /* Error codes we've added. */ - REG_EEND, /* Premature end. */ - REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */ - REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */ -} reg_errcode_t; - -/* This data structure represents a compiled pattern. Before calling - the pattern compiler, the fields `buffer', `allocated', `fastmap', - `translate', and `no_sub' can be set. After the pattern has been - compiled, the `re_nsub' field is available. All other fields are - private to the regex routines. */ - -#ifndef RE_TRANSLATE_TYPE -# define RE_TRANSLATE_TYPE char * -#endif - -struct re_pattern_buffer -{ -/* [[[begin pattern_buffer]]] */ - /* Space that holds the compiled pattern. It is declared as - `unsigned char *' because its elements are - sometimes used as array indexes. */ - unsigned char *buffer; - - /* Number of bytes to which `buffer' points. */ - unsigned long int allocated; - - /* Number of bytes actually used in `buffer'. */ - unsigned long int used; - - /* Syntax setting with which the pattern was compiled. */ - reg_syntax_t syntax; - - /* Pointer to a fastmap, if any, otherwise zero. re_search uses - the fastmap, if there is one, to skip over impossible - starting points for matches. */ - char *fastmap; - - /* Either a translate table to apply to all characters before - comparing them, or zero for no translation. The translation - is applied to a pattern when it is compiled and to a string - when it is matched. */ - RE_TRANSLATE_TYPE translate; - - /* Number of subexpressions found by the compiler. */ - size_t re_nsub; - - /* Zero if this pattern cannot match the empty string, one else. - Well, in truth it's used only in `re_search_2', to see - whether or not we should use the fastmap, so we don't set - this absolutely perfectly; see `re_compile_fastmap' (the - `duplicate' case). */ - unsigned can_be_null : 1; - - /* If REGS_UNALLOCATED, allocate space in the `regs' structure - for `max (RE_NREGS, re_nsub + 1)' groups. - If REGS_REALLOCATE, reallocate space if necessary. - If REGS_FIXED, use what's there. */ -#define REGS_UNALLOCATED 0 -#define REGS_REALLOCATE 1 -#define REGS_FIXED 2 - unsigned regs_allocated : 2; - - /* Set to zero when `regex_compile' compiles a pattern; set to one - by `re_compile_fastmap' if it updates the fastmap. */ - unsigned fastmap_accurate : 1; - - /* If set, `re_match_2' does not return information about - subexpressions. */ - unsigned no_sub : 1; - - /* If set, a beginning-of-line anchor doesn't match at the - beginning of the string. */ - unsigned not_bol : 1; - - /* Similarly for an end-of-line anchor. */ - unsigned not_eol : 1; - - /* If true, an anchor at a newline matches. */ - unsigned newline_anchor : 1; - -/* [[[end pattern_buffer]]] */ -}; - -typedef struct re_pattern_buffer regex_t; - -/* Type for byte offsets within the string. POSIX mandates this. */ -typedef int regoff_t; - - -/* This is the structure we store register match data in. See - regex.texinfo for a full description of what registers match. */ -struct re_registers -{ - unsigned num_regs; - regoff_t *start; - regoff_t *end; -}; - - -/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer, - `re_match_2' returns information about at least this many registers - the first time a `regs' structure is passed. */ -#ifndef RE_NREGS -# define RE_NREGS 30 -#endif - - -/* POSIX specification for registers. Aside from the different names than - `re_registers', POSIX uses an array of structures, instead of a - structure of arrays. */ -typedef struct -{ - regoff_t rm_so; /* Byte offset from string's start to substring's start. */ - regoff_t rm_eo; /* Byte offset from string's start to substring's end. */ -} regmatch_t; - -/* Declarations for routines. */ - -/* To avoid duplicating every routine declaration -- once with a - prototype (if we are ANSI), and once without (if we aren't) -- we - use the following macro to declare argument types. This - unfortunately clutters up the declarations a bit, but I think it's - worth it. */ - -/* Sets the current default syntax to SYNTAX, and return the old syntax. - You can also simply assign to the `re_syntax_options' variable. */ -extern reg_syntax_t re_set_syntax (reg_syntax_t syntax); - -/* Compile the regular expression PATTERN, with length LENGTH - and syntax given by the global `re_syntax_options', into the buffer - BUFFER. Return NULL if successful, and an error string if not. */ -extern const char *re_compile_pattern (const char *pattern, size_t length, - struct re_pattern_buffer *buffer); - - -/* Compile a fastmap for the compiled pattern in BUFFER; used to - accelerate searches. Return 0 if successful and -2 if was an - internal error. */ -extern int re_compile_fastmap (struct re_pattern_buffer *buffer); - - -/* Search in the string STRING (with length LENGTH) for the pattern - compiled into BUFFER. Start searching at position START, for RANGE - characters. Return the starting position of the match, -1 for no - match, or -2 for an internal error. Also return register - information in REGS (if REGS and BUFFER->no_sub are nonzero). */ -extern int re_search (struct re_pattern_buffer *buffer, const char *string, - int length, int start, int range, - struct re_registers *regs); - - -/* Like `re_search', but search in the concatenation of STRING1 and - STRING2. Also, stop searching at index START + STOP. */ -extern int re_search_2 (struct re_pattern_buffer *buffer, const char *string1, - int length1, const char *string2, int length2, - int start, int range, struct re_registers *regs, - int stop); - - -/* Like `re_search', but return how many characters in STRING the regexp - in BUFFER matched, starting at position START. */ -extern int re_match (struct re_pattern_buffer *buffer, const char *string, - int length, int start, struct re_registers *regs); - - -/* Relates to `re_match' as `re_search_2' relates to `re_search'. */ -extern int re_match_2 (struct re_pattern_buffer *buffer, const char *string1, - int length1, const char *string2, int length2, - int start, struct re_registers *regs, int stop); - - -/* Set REGS to hold NUM_REGS registers, storing them in STARTS and - ENDS. Subsequent matches using BUFFER and REGS will use this memory - for recording register information. STARTS and ENDS must be - allocated with malloc, and must each be at least `NUM_REGS * sizeof - (regoff_t)' bytes long. - - If NUM_REGS == 0, then subsequent matches should allocate their own - register data. - - Unless this function is called, the first search or match using - PATTERN_BUFFER will allocate its own register data, without - freeing the old data. */ -extern void re_set_registers (struct re_pattern_buffer *buffer, - struct re_registers *regs, - unsigned num_regs, regoff_t *starts, - regoff_t *ends); - -#if defined _REGEX_RE_COMP || defined _LIBC -# ifndef _CRAY -/* 4.2 bsd compatibility. */ -extern char *re_comp (const char *); -extern int re_exec (const char *); -# endif -#endif - -/* GCC 2.95 and later have "__restrict"; C99 compilers have - "restrict", and "configure" may have defined "restrict". */ -#ifndef __restrict -# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__)) -# if defined restrict || 199901L <= __STDC_VERSION__ -# define __restrict restrict -# else -# define __restrict -# endif -# endif -#endif - -/* GCC 3.1 and later support declaring arrays as non-overlapping - using the syntax array_name[restrict] */ -#ifndef __restrict_arr -# if ! (3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) || defined (__GNUG__) -# define __restrict_arr -# else -# define __restrict_arr __restrict -# endif -#endif - -/* POSIX compatibility. */ -extern int regcomp (regex_t *__restrict __preg, - const char *__restrict __pattern, - int __cflags); - -#if (__GNUC__) -__extension__ -#endif -extern int regexec (const regex_t *__restrict __preg, - const char *__restrict __string, size_t __nmatch, - regmatch_t __pmatch[__restrict_arr], - int __eflags); - -extern size_t regerror (int __errcode, const regex_t *__preg, - char *__errbuf, size_t __errbuf_size); - -extern void regfree (regex_t *__preg); - - -#ifdef __cplusplus -} -#endif /* C++ */ - -#endif /* regex.h */ - -/* -Local variables: -make-backup-files: t -version-control: t -trim-versions-without-asking: nil -End: -*/ diff --git a/include/xtensa-config.h b/include/xtensa-config.h deleted file mode 100644 index 5ae4c80..0000000 --- a/include/xtensa-config.h +++ /dev/null @@ -1,176 +0,0 @@ -/* Xtensa configuration settings. - Copyright (C) 2001-2015 Free Software Foundation, Inc. - Contributed by Bob Wilson (bob.wilson@acm.org) at Tensilica. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef XTENSA_CONFIG_H -#define XTENSA_CONFIG_H - -/* The macros defined here match those with the same names in the Xtensa - compile-time HAL (Hardware Abstraction Layer). Please refer to the - Xtensa System Software Reference Manual for documentation of these - macros. */ - -#undef XCHAL_HAVE_BE -#define XCHAL_HAVE_BE 1 - -#undef XCHAL_HAVE_DENSITY -#define XCHAL_HAVE_DENSITY 1 - -#undef XCHAL_HAVE_CONST16 -#define XCHAL_HAVE_CONST16 0 - -#undef XCHAL_HAVE_ABS -#define XCHAL_HAVE_ABS 1 - -#undef XCHAL_HAVE_ADDX -#define XCHAL_HAVE_ADDX 1 - -#undef XCHAL_HAVE_L32R -#define XCHAL_HAVE_L32R 1 - -#undef XSHAL_USE_ABSOLUTE_LITERALS -#define XSHAL_USE_ABSOLUTE_LITERALS 0 - -#undef XSHAL_HAVE_TEXT_SECTION_LITERALS -#define XSHAL_HAVE_TEXT_SECTION_LITERALS 1 /* Set if there is some memory that allows both code and literals. */ - -#undef XCHAL_HAVE_MAC16 -#define XCHAL_HAVE_MAC16 0 - -#undef XCHAL_HAVE_MUL16 -#define XCHAL_HAVE_MUL16 1 - -#undef XCHAL_HAVE_MUL32 -#define XCHAL_HAVE_MUL32 1 - -#undef XCHAL_HAVE_MUL32_HIGH -#define XCHAL_HAVE_MUL32_HIGH 0 - -#undef XCHAL_HAVE_DIV32 -#define XCHAL_HAVE_DIV32 1 - -#undef XCHAL_HAVE_NSA -#define XCHAL_HAVE_NSA 1 - -#undef XCHAL_HAVE_MINMAX -#define XCHAL_HAVE_MINMAX 1 - -#undef XCHAL_HAVE_SEXT -#define XCHAL_HAVE_SEXT 1 - -#undef XCHAL_HAVE_LOOPS -#define XCHAL_HAVE_LOOPS 1 - -#undef XCHAL_HAVE_THREADPTR -#define XCHAL_HAVE_THREADPTR 1 - -#undef XCHAL_HAVE_RELEASE_SYNC -#define XCHAL_HAVE_RELEASE_SYNC 1 - -#undef XCHAL_HAVE_S32C1I -#define XCHAL_HAVE_S32C1I 1 - -#undef XCHAL_HAVE_BOOLEANS -#define XCHAL_HAVE_BOOLEANS 0 - -#undef XCHAL_HAVE_FP -#define XCHAL_HAVE_FP 0 - -#undef XCHAL_HAVE_FP_DIV -#define XCHAL_HAVE_FP_DIV 0 - -#undef XCHAL_HAVE_FP_RECIP -#define XCHAL_HAVE_FP_RECIP 0 - -#undef XCHAL_HAVE_FP_SQRT -#define XCHAL_HAVE_FP_SQRT 0 - -#undef XCHAL_HAVE_FP_RSQRT -#define XCHAL_HAVE_FP_RSQRT 0 - -#undef XCHAL_HAVE_DFP_accel -#define XCHAL_HAVE_DFP_accel 0 -#undef XCHAL_HAVE_WINDOWED -#define XCHAL_HAVE_WINDOWED 1 - -#undef XCHAL_NUM_AREGS -#define XCHAL_NUM_AREGS 32 - -#undef XCHAL_HAVE_WIDE_BRANCHES -#define XCHAL_HAVE_WIDE_BRANCHES 0 - -#undef XCHAL_HAVE_PREDICTED_BRANCHES -#define XCHAL_HAVE_PREDICTED_BRANCHES 0 - - -#undef XCHAL_ICACHE_SIZE -#define XCHAL_ICACHE_SIZE 16384 - -#undef XCHAL_DCACHE_SIZE -#define XCHAL_DCACHE_SIZE 16384 - -#undef XCHAL_ICACHE_LINESIZE -#define XCHAL_ICACHE_LINESIZE 32 - -#undef XCHAL_DCACHE_LINESIZE -#define XCHAL_DCACHE_LINESIZE 32 - -#undef XCHAL_ICACHE_LINEWIDTH -#define XCHAL_ICACHE_LINEWIDTH 5 - -#undef XCHAL_DCACHE_LINEWIDTH -#define XCHAL_DCACHE_LINEWIDTH 5 - -#undef XCHAL_DCACHE_IS_WRITEBACK -#define XCHAL_DCACHE_IS_WRITEBACK 1 - - -#undef XCHAL_HAVE_MMU -#define XCHAL_HAVE_MMU 1 - -#undef XCHAL_MMU_MIN_PTE_PAGE_SIZE -#define XCHAL_MMU_MIN_PTE_PAGE_SIZE 12 - - -#undef XCHAL_HAVE_DEBUG -#define XCHAL_HAVE_DEBUG 1 - -#undef XCHAL_NUM_IBREAK -#define XCHAL_NUM_IBREAK 2 - -#undef XCHAL_NUM_DBREAK -#define XCHAL_NUM_DBREAK 2 - -#undef XCHAL_DEBUGLEVEL -#define XCHAL_DEBUGLEVEL 6 - - -#undef XCHAL_MAX_INSTRUCTION_SIZE -#define XCHAL_MAX_INSTRUCTION_SIZE 3 - -#undef XCHAL_INST_FETCH_WIDTH -#define XCHAL_INST_FETCH_WIDTH 4 - - -#undef XSHAL_ABI -#undef XTHAL_ABI_WINDOWED -#undef XTHAL_ABI_CALL0 -#define XSHAL_ABI XTHAL_ABI_WINDOWED -#define XTHAL_ABI_WINDOWED 0 -#define XTHAL_ABI_CALL0 1 - -#endif /* !XTENSA_CONFIG_H */ diff --git a/include/xtensa-isa-internal.h b/include/xtensa-isa-internal.h deleted file mode 100644 index 6c72736..0000000 --- a/include/xtensa-isa-internal.h +++ /dev/null @@ -1,234 +0,0 @@ -/* Internal definitions for configurable Xtensa ISA support. - Copyright 2003, 2004, 2005, 2008, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, - USA. */ - -#ifndef XTENSA_ISA_INTERNAL_H -#define XTENSA_ISA_INTERNAL_H - -/* Flags. */ - -#define XTENSA_OPERAND_IS_REGISTER 0x00000001 -#define XTENSA_OPERAND_IS_PCRELATIVE 0x00000002 -#define XTENSA_OPERAND_IS_INVISIBLE 0x00000004 -#define XTENSA_OPERAND_IS_UNKNOWN 0x00000008 - -#define XTENSA_OPCODE_IS_BRANCH 0x00000001 -#define XTENSA_OPCODE_IS_JUMP 0x00000002 -#define XTENSA_OPCODE_IS_LOOP 0x00000004 -#define XTENSA_OPCODE_IS_CALL 0x00000008 - -#define XTENSA_STATE_IS_EXPORTED 0x00000001 -#define XTENSA_STATE_IS_SHARED_OR 0x00000002 - -#define XTENSA_INTERFACE_HAS_SIDE_EFFECT 0x00000001 - -/* Function pointer typedefs */ -typedef void (*xtensa_format_encode_fn) (xtensa_insnbuf); -typedef void (*xtensa_get_slot_fn) (const xtensa_insnbuf, xtensa_insnbuf); -typedef void (*xtensa_set_slot_fn) (xtensa_insnbuf, const xtensa_insnbuf); -typedef int (*xtensa_opcode_decode_fn) (const xtensa_insnbuf); -typedef uint32 (*xtensa_get_field_fn) (const xtensa_insnbuf); -typedef void (*xtensa_set_field_fn) (xtensa_insnbuf, uint32); -typedef int (*xtensa_immed_decode_fn) (uint32 *); -typedef int (*xtensa_immed_encode_fn) (uint32 *); -typedef int (*xtensa_do_reloc_fn) (uint32 *, uint32); -typedef int (*xtensa_undo_reloc_fn) (uint32 *, uint32); -typedef void (*xtensa_opcode_encode_fn) (xtensa_insnbuf); -typedef int (*xtensa_format_decode_fn) (const xtensa_insnbuf); -typedef int (*xtensa_length_decode_fn) (const unsigned char *); - -typedef struct xtensa_format_internal_struct -{ - const char *name; /* Instruction format name. */ - int length; /* Instruction length in bytes. */ - xtensa_format_encode_fn encode_fn; - int num_slots; - int *slot_id; /* Array[num_slots] of slot IDs. */ -} xtensa_format_internal; - -typedef struct xtensa_slot_internal_struct -{ - const char *name; /* Not necessarily unique. */ - const char *format; - int position; - xtensa_get_slot_fn get_fn; - xtensa_set_slot_fn set_fn; - xtensa_get_field_fn *get_field_fns; /* Array[field_id]. */ - xtensa_set_field_fn *set_field_fns; /* Array[field_id]. */ - xtensa_opcode_decode_fn opcode_decode_fn; - const char *nop_name; -} xtensa_slot_internal; - -typedef struct xtensa_operand_internal_struct -{ - const char *name; - int field_id; - xtensa_regfile regfile; /* Register file. */ - int num_regs; /* Usually 1; 2 for reg pairs, etc. */ - uint32 flags; /* See XTENSA_OPERAND_* flags. */ - xtensa_immed_encode_fn encode; /* Encode the operand value. */ - xtensa_immed_decode_fn decode; /* Decode the value from the field. */ - xtensa_do_reloc_fn do_reloc; /* Perform a PC-relative reloc. */ - xtensa_undo_reloc_fn undo_reloc; /* Undo a PC-relative relocation. */ -} xtensa_operand_internal; - -typedef struct xtensa_arg_internal_struct -{ - union { - int operand_id; /* For normal operands. */ - xtensa_state state; /* For stateOperands. */ - } u; - char inout; /* Direction: 'i', 'o', or 'm'. */ -} xtensa_arg_internal; - -typedef struct xtensa_iclass_internal_struct -{ - int num_operands; /* Size of "operands" array. */ - xtensa_arg_internal *operands; /* Array[num_operands]. */ - - int num_stateOperands; /* Size of "stateOperands" array. */ - xtensa_arg_internal *stateOperands; /* Array[num_stateOperands]. */ - - int num_interfaceOperands; /* Size of "interfaceOperands". */ - xtensa_interface *interfaceOperands; /* Array[num_interfaceOperands]. */ -} xtensa_iclass_internal; - -typedef struct xtensa_opcode_internal_struct -{ - const char *name; /* Opcode mnemonic. */ - int iclass_id; /* Iclass for this opcode. */ - uint32 flags; /* See XTENSA_OPCODE_* flags. */ - xtensa_opcode_encode_fn *encode_fns; /* Array[slot_id]. */ - int num_funcUnit_uses; /* Number of funcUnit_use entries. */ - xtensa_funcUnit_use *funcUnit_uses; /* Array[num_funcUnit_uses]. */ -} xtensa_opcode_internal; - -typedef struct xtensa_regfile_internal_struct -{ - const char *name; /* Full name of the regfile. */ - const char *shortname; /* Abbreviated name. */ - xtensa_regfile parent; /* View parent (or identity). */ - int num_bits; /* Width of the registers. */ - int num_entries; /* Number of registers. */ -} xtensa_regfile_internal; - -typedef struct xtensa_interface_internal_struct -{ - const char *name; /* Interface name. */ - int num_bits; /* Width of the interface. */ - uint32 flags; /* See XTENSA_INTERFACE_* flags. */ - int class_id; /* Class of related interfaces. */ - char inout; /* "i" or "o". */ -} xtensa_interface_internal; - -typedef struct xtensa_funcUnit_internal_struct -{ - const char *name; /* Functional unit name. */ - int num_copies; /* Number of instances. */ -} xtensa_funcUnit_internal; - -typedef struct xtensa_state_internal_struct -{ - const char *name; /* State name. */ - int num_bits; /* Number of state bits. */ - uint32 flags; /* See XTENSA_STATE_* flags. */ -} xtensa_state_internal; - -typedef struct xtensa_sysreg_internal_struct -{ - const char *name; /* Register name. */ - int number; /* Register number. */ - int is_user; /* Non-zero if a "user register". */ -} xtensa_sysreg_internal; - -typedef struct xtensa_lookup_entry_struct -{ - const char *key; - union - { - xtensa_opcode opcode; /* Internal opcode number. */ - xtensa_sysreg sysreg; /* Internal sysreg number. */ - xtensa_state state; /* Internal state number. */ - xtensa_interface intf; /* Internal interface number. */ - xtensa_funcUnit fun; /* Internal funcUnit number. */ - } u; -} xtensa_lookup_entry; - -typedef struct xtensa_isa_internal_struct -{ - int is_big_endian; /* Endianness. */ - int insn_size; /* Maximum length in bytes. */ - int insnbuf_size; /* Number of insnbuf_words. */ - - int num_formats; - xtensa_format_internal *formats; - xtensa_format_decode_fn format_decode_fn; - xtensa_length_decode_fn length_decode_fn; - - int num_slots; - xtensa_slot_internal *slots; - - int num_fields; - - int num_operands; - xtensa_operand_internal *operands; - - int num_iclasses; - xtensa_iclass_internal *iclasses; - - int num_opcodes; - xtensa_opcode_internal *opcodes; - xtensa_lookup_entry *opname_lookup_table; - - int num_regfiles; - xtensa_regfile_internal *regfiles; - - int num_states; - xtensa_state_internal *states; - xtensa_lookup_entry *state_lookup_table; - - int num_sysregs; - xtensa_sysreg_internal *sysregs; - xtensa_lookup_entry *sysreg_lookup_table; - - /* The current Xtensa ISA only supports 256 of each kind of sysreg so - we can get away with implementing lookups with tables indexed by - the register numbers. If we ever allow larger sysreg numbers, this - may have to be reimplemented. The first entry in the following - arrays corresponds to "special" registers and the second to "user" - registers. */ - int max_sysreg_num[2]; - xtensa_sysreg *sysreg_table[2]; - - int num_interfaces; - xtensa_interface_internal *interfaces; - xtensa_lookup_entry *interface_lookup_table; - - int num_funcUnits; - xtensa_funcUnit_internal *funcUnits; - xtensa_lookup_entry *funcUnit_lookup_table; - -} xtensa_isa_internal; - -extern int xtensa_isa_name_compare (const void *, const void *); - -extern xtensa_isa_status xtisa_errno; -extern char xtisa_error_msg[]; - -#endif /* !XTENSA_ISA_INTERNAL_H */ diff --git a/include/xtensa-isa.h b/include/xtensa-isa.h deleted file mode 100644 index c3c740d..0000000 --- a/include/xtensa-isa.h +++ /dev/null @@ -1,813 +0,0 @@ -/* Interface definition for configurable Xtensa ISA support. - Copyright 2003, 2004, 2005, 2006, 2008, 2010 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, - USA. */ - -#ifndef XTENSA_LIBISA_H -#define XTENSA_LIBISA_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Version number: This is intended to help support code that works with - versions of this library from multiple Xtensa releases. */ - -#define XTENSA_ISA_VERSION 7000 - -#ifndef uint32 -#define uint32 unsigned int -#endif - -/* This file defines the interface to the Xtensa ISA library. This - library contains most of the ISA-specific information for a - particular Xtensa processor. For example, the set of valid - instructions, their opcode encodings and operand fields are all - included here. - - This interface basically defines a number of abstract data types. - - . an instruction buffer - for holding the raw instruction bits - . ISA info - information about the ISA as a whole - . instruction formats - instruction size and slot structure - . opcodes - information about individual instructions - . operands - information about register and immediate instruction operands - . stateOperands - information about processor state instruction operands - . interfaceOperands - information about interface instruction operands - . register files - register file information - . processor states - internal processor state information - . system registers - "special registers" and "user registers" - . interfaces - TIE interfaces that are external to the processor - . functional units - TIE shared functions - - The interface defines a set of functions to access each data type. - With the exception of the instruction buffer, the internal - representations of the data structures are hidden. All accesses must - be made through the functions defined here. */ - -typedef struct xtensa_isa_opaque { int unused; } *xtensa_isa; - - -/* Most of the Xtensa ISA entities (e.g., opcodes, regfiles, etc.) are - represented here using sequential integers beginning with 0. The - specific values are only fixed for a particular instantiation of an - xtensa_isa structure, so these values should only be used - internally. */ - -typedef int xtensa_opcode; -typedef int xtensa_format; -typedef int xtensa_regfile; -typedef int xtensa_state; -typedef int xtensa_sysreg; -typedef int xtensa_interface; -typedef int xtensa_funcUnit; - - -/* Define a unique value for undefined items. */ - -#define XTENSA_UNDEFINED -1 - - -/* Overview of using this interface to decode/encode instructions: - - Each Xtensa instruction is associated with a particular instruction - format, where the format defines a fixed number of slots for - operations. The formats for the core Xtensa ISA have only one slot, - but FLIX instructions may have multiple slots. Within each slot, - there is a single opcode and some number of associated operands. - - The encoding and decoding functions operate on instruction buffers, - not on the raw bytes of the instructions. The same instruction - buffer data structure is used for both entire instructions and - individual slots in those instructions -- the contents of a slot need - to be extracted from or inserted into the buffer for the instruction - as a whole. - - Decoding an instruction involves first finding the format, which - identifies the number of slots, and then decoding each slot - separately. A slot is decoded by finding the opcode and then using - the opcode to determine how many operands there are. For example: - - xtensa_insnbuf_from_chars - xtensa_format_decode - for each slot { - xtensa_format_get_slot - xtensa_opcode_decode - for each operand { - xtensa_operand_get_field - xtensa_operand_decode - } - } - - Encoding an instruction is roughly the same procedure in reverse: - - xtensa_format_encode - for each slot { - xtensa_opcode_encode - for each operand { - xtensa_operand_encode - xtensa_operand_set_field - } - xtensa_format_set_slot - } - xtensa_insnbuf_to_chars -*/ - - -/* Error handling. */ - -/* Error codes. The code for the most recent error condition can be - retrieved with the "errno" function. For any result other than - xtensa_isa_ok, an error message containing additional information - about the problem can be retrieved using the "error_msg" function. - The error messages are stored in an internal buffer, which should - not be freed and may be overwritten by subsequent operations. */ - -typedef enum xtensa_isa_status_enum -{ - xtensa_isa_ok = 0, - xtensa_isa_bad_format, - xtensa_isa_bad_slot, - xtensa_isa_bad_opcode, - xtensa_isa_bad_operand, - xtensa_isa_bad_field, - xtensa_isa_bad_iclass, - xtensa_isa_bad_regfile, - xtensa_isa_bad_sysreg, - xtensa_isa_bad_state, - xtensa_isa_bad_interface, - xtensa_isa_bad_funcUnit, - xtensa_isa_wrong_slot, - xtensa_isa_no_field, - xtensa_isa_out_of_memory, - xtensa_isa_buffer_overflow, - xtensa_isa_internal_error, - xtensa_isa_bad_value -} xtensa_isa_status; - -extern xtensa_isa_status -xtensa_isa_errno (xtensa_isa isa); - -extern char * -xtensa_isa_error_msg (xtensa_isa isa); - - - -/* Instruction buffers. */ - -typedef uint32 xtensa_insnbuf_word; -typedef xtensa_insnbuf_word *xtensa_insnbuf; - - -/* Get the size in "insnbuf_words" of the xtensa_insnbuf array. */ - -extern int -xtensa_insnbuf_size (xtensa_isa isa); - - -/* Allocate an xtensa_insnbuf of the right size. */ - -extern xtensa_insnbuf -xtensa_insnbuf_alloc (xtensa_isa isa); - - -/* Release an xtensa_insnbuf. */ - -extern void -xtensa_insnbuf_free (xtensa_isa isa, xtensa_insnbuf buf); - - -/* Conversion between raw memory (char arrays) and our internal - instruction representation. This is complicated by the Xtensa ISA's - variable instruction lengths. When converting to chars, the buffer - must contain a valid instruction so we know how many bytes to copy; - thus, the "to_chars" function returns the number of bytes copied or - XTENSA_UNDEFINED on error. The "from_chars" function first reads the - minimal number of bytes required to decode the instruction length and - then proceeds to copy the entire instruction into the buffer; if the - memory does not contain a valid instruction, it copies the maximum - number of bytes required for the longest Xtensa instruction. The - "num_chars" argument may be used to limit the number of bytes that - can be read or written. Otherwise, if "num_chars" is zero, the - functions may read or write past the end of the code. */ - -extern int -xtensa_insnbuf_to_chars (xtensa_isa isa, const xtensa_insnbuf insn, - unsigned char *cp, int num_chars); - -extern void -xtensa_insnbuf_from_chars (xtensa_isa isa, xtensa_insnbuf insn, - const unsigned char *cp, int num_chars); - - - -/* ISA information. */ - -/* Initialize the ISA information. */ - -extern xtensa_isa -xtensa_isa_init (xtensa_isa_status *errno_p, char **error_msg_p); - - -/* Deallocate an xtensa_isa structure. */ - -extern void -xtensa_isa_free (xtensa_isa isa); - - -/* Get the maximum instruction size in bytes. */ - -extern int -xtensa_isa_maxlength (xtensa_isa isa); - - -/* Decode the length in bytes of an instruction in raw memory (not an - insnbuf). This function reads only the minimal number of bytes - required to decode the instruction length. Returns - XTENSA_UNDEFINED on error. */ - -extern int -xtensa_isa_length_from_chars (xtensa_isa isa, const unsigned char *cp); - - -/* Get the number of stages in the processor's pipeline. The pipeline - stage values returned by other functions in this library will range - from 0 to N-1, where N is the value returned by this function. - Note that the stage numbers used here may not correspond to the - actual processor hardware, e.g., the hardware may have additional - stages before stage 0. Returns XTENSA_UNDEFINED on error. */ - -extern int -xtensa_isa_num_pipe_stages (xtensa_isa isa); - - -/* Get the number of various entities that are defined for this processor. */ - -extern int -xtensa_isa_num_formats (xtensa_isa isa); - -extern int -xtensa_isa_num_opcodes (xtensa_isa isa); - -extern int -xtensa_isa_num_regfiles (xtensa_isa isa); - -extern int -xtensa_isa_num_states (xtensa_isa isa); - -extern int -xtensa_isa_num_sysregs (xtensa_isa isa); - -extern int -xtensa_isa_num_interfaces (xtensa_isa isa); - -extern int -xtensa_isa_num_funcUnits (xtensa_isa isa); - - - -/* Instruction formats. */ - -/* Get the name of a format. Returns null on error. */ - -extern const char * -xtensa_format_name (xtensa_isa isa, xtensa_format fmt); - - -/* Given a format name, return the format number. Returns - XTENSA_UNDEFINED if the name is not a valid format. */ - -extern xtensa_format -xtensa_format_lookup (xtensa_isa isa, const char *fmtname); - - -/* Decode the instruction format from a binary instruction buffer. - Returns XTENSA_UNDEFINED if the format is not recognized. */ - -extern xtensa_format -xtensa_format_decode (xtensa_isa isa, const xtensa_insnbuf insn); - - -/* Set the instruction format field(s) in a binary instruction buffer. - All the other fields are set to zero. Returns non-zero on error. */ - -extern int -xtensa_format_encode (xtensa_isa isa, xtensa_format fmt, xtensa_insnbuf insn); - - -/* Find the length (in bytes) of an instruction. Returns - XTENSA_UNDEFINED on error. */ - -extern int -xtensa_format_length (xtensa_isa isa, xtensa_format fmt); - - -/* Get the number of slots in an instruction. Returns XTENSA_UNDEFINED - on error. */ - -extern int -xtensa_format_num_slots (xtensa_isa isa, xtensa_format fmt); - - -/* Get the opcode for a no-op in a particular slot. - Returns XTENSA_UNDEFINED on error. */ - -extern xtensa_opcode -xtensa_format_slot_nop_opcode (xtensa_isa isa, xtensa_format fmt, int slot); - - -/* Get the bits for a specified slot out of an insnbuf for the - instruction as a whole and put them into an insnbuf for that one - slot, and do the opposite to set a slot. Return non-zero on error. */ - -extern int -xtensa_format_get_slot (xtensa_isa isa, xtensa_format fmt, int slot, - const xtensa_insnbuf insn, xtensa_insnbuf slotbuf); - -extern int -xtensa_format_set_slot (xtensa_isa isa, xtensa_format fmt, int slot, - xtensa_insnbuf insn, const xtensa_insnbuf slotbuf); - - - -/* Opcode information. */ - -/* Translate a mnemonic name to an opcode. Returns XTENSA_UNDEFINED if - the name is not a valid opcode mnemonic. */ - -extern xtensa_opcode -xtensa_opcode_lookup (xtensa_isa isa, const char *opname); - - -/* Decode the opcode for one instruction slot from a binary instruction - buffer. Returns the opcode or XTENSA_UNDEFINED if the opcode is - illegal. */ - -extern xtensa_opcode -xtensa_opcode_decode (xtensa_isa isa, xtensa_format fmt, int slot, - const xtensa_insnbuf slotbuf); - - -/* Set the opcode field(s) for an instruction slot. All other fields - in the slot are set to zero. Returns non-zero if the opcode cannot - be encoded. */ - -extern int -xtensa_opcode_encode (xtensa_isa isa, xtensa_format fmt, int slot, - xtensa_insnbuf slotbuf, xtensa_opcode opc); - - -/* Get the mnemonic name for an opcode. Returns null on error. */ - -extern const char * -xtensa_opcode_name (xtensa_isa isa, xtensa_opcode opc); - - -/* Check various properties of opcodes. These functions return 0 if - the condition is false, 1 if the condition is true, and - XTENSA_UNDEFINED on error. The instructions are classified as - follows: - - branch: conditional branch; may fall through to next instruction (B*) - jump: unconditional branch (J, JX, RET*, RF*) - loop: zero-overhead loop (LOOP*) - call: unconditional call; control returns to next instruction (CALL*) - - For the opcodes that affect control flow in some way, the branch - target may be specified by an immediate operand or it may be an - address stored in a register. You can distinguish these by - checking if the instruction has a PC-relative immediate - operand. */ - -extern int -xtensa_opcode_is_branch (xtensa_isa isa, xtensa_opcode opc); - -extern int -xtensa_opcode_is_jump (xtensa_isa isa, xtensa_opcode opc); - -extern int -xtensa_opcode_is_loop (xtensa_isa isa, xtensa_opcode opc); - -extern int -xtensa_opcode_is_call (xtensa_isa isa, xtensa_opcode opc); - - -/* Find the number of ordinary operands, state operands, and interface - operands for an instruction. These return XTENSA_UNDEFINED on - error. */ - -extern int -xtensa_opcode_num_operands (xtensa_isa isa, xtensa_opcode opc); - -extern int -xtensa_opcode_num_stateOperands (xtensa_isa isa, xtensa_opcode opc); - -extern int -xtensa_opcode_num_interfaceOperands (xtensa_isa isa, xtensa_opcode opc); - - -/* Get functional unit usage requirements for an opcode. Each "use" - is identified by a pair. The - "num_funcUnit_uses" function returns the number of these "uses" or - XTENSA_UNDEFINED on error. The "funcUnit_use" function returns - a pointer to a "use" pair or null on error. */ - -typedef struct xtensa_funcUnit_use_struct -{ - xtensa_funcUnit unit; - int stage; -} xtensa_funcUnit_use; - -extern int -xtensa_opcode_num_funcUnit_uses (xtensa_isa isa, xtensa_opcode opc); - -extern xtensa_funcUnit_use * -xtensa_opcode_funcUnit_use (xtensa_isa isa, xtensa_opcode opc, int u); - - - -/* Operand information. */ - -/* Get the name of an operand. Returns null on error. */ - -extern const char * -xtensa_operand_name (xtensa_isa isa, xtensa_opcode opc, int opnd); - - -/* Some operands are "invisible", i.e., not explicitly specified in - assembly language. When assembling an instruction, you need not set - the values of invisible operands, since they are either hardwired or - derived from other field values. The values of invisible operands - can be examined in the same way as other operands, but remember that - an invisible operand may get its value from another visible one, so - the entire instruction must be available before examining the - invisible operand values. This function returns 1 if an operand is - visible, 0 if it is invisible, or XTENSA_UNDEFINED on error. Note - that whether an operand is visible is orthogonal to whether it is - "implicit", i.e., whether it is encoded in a field in the - instruction. */ - -extern int -xtensa_operand_is_visible (xtensa_isa isa, xtensa_opcode opc, int opnd); - - -/* Check if an operand is an input ('i'), output ('o'), or inout ('m') - operand. Note: The output operand of a conditional assignment - (e.g., movnez) appears here as an inout ('m') even if it is declared - in the TIE code as an output ('o'); this allows the compiler to - properly handle register allocation for conditional assignments. - Returns 0 on error. */ - -extern char -xtensa_operand_inout (xtensa_isa isa, xtensa_opcode opc, int opnd); - - -/* Get and set the raw (encoded) value of the field for the specified - operand. The "set" function does not check if the value fits in the - field; that is done by the "encode" function below. Both of these - functions return non-zero on error, e.g., if the field is not defined - for the specified slot. */ - -extern int -xtensa_operand_get_field (xtensa_isa isa, xtensa_opcode opc, int opnd, - xtensa_format fmt, int slot, - const xtensa_insnbuf slotbuf, uint32 *valp); - -extern int -xtensa_operand_set_field (xtensa_isa isa, xtensa_opcode opc, int opnd, - xtensa_format fmt, int slot, - xtensa_insnbuf slotbuf, uint32 val); - - -/* Encode and decode operands. The raw bits in the operand field may - be encoded in a variety of different ways. These functions hide - the details of that encoding. The result values are returned through - the argument pointer. The return value is non-zero on error. */ - -extern int -xtensa_operand_encode (xtensa_isa isa, xtensa_opcode opc, int opnd, - uint32 *valp); - -extern int -xtensa_operand_decode (xtensa_isa isa, xtensa_opcode opc, int opnd, - uint32 *valp); - - -/* An operand may be either a register operand or an immediate of some - sort (e.g., PC-relative or not). The "is_register" function returns - 0 if the operand is an immediate, 1 if it is a register, and - XTENSA_UNDEFINED on error. The "regfile" function returns the - regfile for a register operand, or XTENSA_UNDEFINED on error. */ - -extern int -xtensa_operand_is_register (xtensa_isa isa, xtensa_opcode opc, int opnd); - -extern xtensa_regfile -xtensa_operand_regfile (xtensa_isa isa, xtensa_opcode opc, int opnd); - - -/* Register operands may span multiple consecutive registers, e.g., a - 64-bit data type may occupy two 32-bit registers. Only the first - register is encoded in the operand field. This function specifies - the number of consecutive registers occupied by this operand. For - non-register operands, the return value is undefined. Returns - XTENSA_UNDEFINED on error. */ - -extern int -xtensa_operand_num_regs (xtensa_isa isa, xtensa_opcode opc, int opnd); - - -/* Some register operands do not completely identify the register being - accessed. For example, the operand value may be added to an internal - state value. By definition, this implies that the corresponding - regfile is not allocatable. Unknown registers should generally be - treated with worst-case assumptions. The function returns 0 if the - register value is unknown, 1 if known, and XTENSA_UNDEFINED on - error. */ - -extern int -xtensa_operand_is_known_reg (xtensa_isa isa, xtensa_opcode opc, int opnd); - - -/* Check if an immediate operand is PC-relative. Returns 0 for register - operands and non-PC-relative immediates, 1 for PC-relative - immediates, and XTENSA_UNDEFINED on error. */ - -extern int -xtensa_operand_is_PCrelative (xtensa_isa isa, xtensa_opcode opc, int opnd); - - -/* For PC-relative offset operands, the interpretation of the offset may - vary between opcodes, e.g., is it relative to the current PC or that - of the next instruction? The following functions are defined to - perform PC-relative relocations and to undo them (as in the - disassembler). The "do_reloc" function takes the desired address - value and the PC of the current instruction and sets the value to the - corresponding PC-relative offset (which can then be encoded and - stored into the operand field). The "undo_reloc" function takes the - unencoded offset value and the current PC and sets the value to the - appropriate address. The return values are non-zero on error. Note - that these functions do not replace the encode/decode functions; the - operands must be encoded/decoded separately and the encode functions - are responsible for detecting invalid operand values. */ - -extern int -xtensa_operand_do_reloc (xtensa_isa isa, xtensa_opcode opc, int opnd, - uint32 *valp, uint32 pc); - -extern int -xtensa_operand_undo_reloc (xtensa_isa isa, xtensa_opcode opc, int opnd, - uint32 *valp, uint32 pc); - - - -/* State Operands. */ - -/* Get the state accessed by a state operand. Returns XTENSA_UNDEFINED - on error. */ - -extern xtensa_state -xtensa_stateOperand_state (xtensa_isa isa, xtensa_opcode opc, int stOp); - - -/* Check if a state operand is an input ('i'), output ('o'), or inout - ('m') operand. Returns 0 on error. */ - -extern char -xtensa_stateOperand_inout (xtensa_isa isa, xtensa_opcode opc, int stOp); - - - -/* Interface Operands. */ - -/* Get the external interface accessed by an interface operand. - Returns XTENSA_UNDEFINED on error. */ - -extern xtensa_interface -xtensa_interfaceOperand_interface (xtensa_isa isa, xtensa_opcode opc, - int ifOp); - - - -/* Register Files. */ - -/* Regfiles include both "real" regfiles and "views", where a view - allows a group of adjacent registers in a real "parent" regfile to be - viewed as a single register. A regfile view has all the same - properties as its parent except for its (long) name, bit width, number - of entries, and default ctype. You can use the parent function to - distinguish these two classes. */ - -/* Look up a regfile by either its name or its abbreviated "short name". - Returns XTENSA_UNDEFINED on error. The "lookup_shortname" function - ignores "view" regfiles since they always have the same shortname as - their parents. */ - -extern xtensa_regfile -xtensa_regfile_lookup (xtensa_isa isa, const char *name); - -extern xtensa_regfile -xtensa_regfile_lookup_shortname (xtensa_isa isa, const char *shortname); - - -/* Get the name or abbreviated "short name" of a regfile. - Returns null on error. */ - -extern const char * -xtensa_regfile_name (xtensa_isa isa, xtensa_regfile rf); - -extern const char * -xtensa_regfile_shortname (xtensa_isa isa, xtensa_regfile rf); - - -/* Get the parent regfile of a "view" regfile. If the regfile is not a - view, the result is the same as the input parameter. Returns - XTENSA_UNDEFINED on error. */ - -extern xtensa_regfile -xtensa_regfile_view_parent (xtensa_isa isa, xtensa_regfile rf); - - -/* Get the bit width of a regfile or regfile view. - Returns XTENSA_UNDEFINED on error. */ - -extern int -xtensa_regfile_num_bits (xtensa_isa isa, xtensa_regfile rf); - - -/* Get the number of regfile entries. Returns XTENSA_UNDEFINED on - error. */ - -extern int -xtensa_regfile_num_entries (xtensa_isa isa, xtensa_regfile rf); - - - -/* Processor States. */ - -/* Look up a state by name. Returns XTENSA_UNDEFINED on error. */ - -extern xtensa_state -xtensa_state_lookup (xtensa_isa isa, const char *name); - - -/* Get the name for a processor state. Returns null on error. */ - -extern const char * -xtensa_state_name (xtensa_isa isa, xtensa_state st); - - -/* Get the bit width for a processor state. - Returns XTENSA_UNDEFINED on error. */ - -extern int -xtensa_state_num_bits (xtensa_isa isa, xtensa_state st); - - -/* Check if a state is exported from the processor core. Returns 0 if - the condition is false, 1 if the condition is true, and - XTENSA_UNDEFINED on error. */ - -extern int -xtensa_state_is_exported (xtensa_isa isa, xtensa_state st); - - -/* Check for a "shared_or" state. Returns 0 if the condition is false, - 1 if the condition is true, and XTENSA_UNDEFINED on error. */ - -extern int -xtensa_state_is_shared_or (xtensa_isa isa, xtensa_state st); - - - -/* Sysregs ("special registers" and "user registers"). */ - -/* Look up a register by its number and whether it is a "user register" - or a "special register". Returns XTENSA_UNDEFINED if the sysreg does - not exist. */ - -extern xtensa_sysreg -xtensa_sysreg_lookup (xtensa_isa isa, int num, int is_user); - - -/* Check if there exists a sysreg with a given name. - If not, this function returns XTENSA_UNDEFINED. */ - -extern xtensa_sysreg -xtensa_sysreg_lookup_name (xtensa_isa isa, const char *name); - - -/* Get the name of a sysreg. Returns null on error. */ - -extern const char * -xtensa_sysreg_name (xtensa_isa isa, xtensa_sysreg sysreg); - - -/* Get the register number. Returns XTENSA_UNDEFINED on error. */ - -extern int -xtensa_sysreg_number (xtensa_isa isa, xtensa_sysreg sysreg); - - -/* Check if a sysreg is a "special register" or a "user register". - Returns 0 for special registers, 1 for user registers and - XTENSA_UNDEFINED on error. */ - -extern int -xtensa_sysreg_is_user (xtensa_isa isa, xtensa_sysreg sysreg); - - - -/* Interfaces. */ - -/* Find an interface by name. The return value is XTENSA_UNDEFINED if - the specified interface is not found. */ - -extern xtensa_interface -xtensa_interface_lookup (xtensa_isa isa, const char *ifname); - - -/* Get the name of an interface. Returns null on error. */ - -extern const char * -xtensa_interface_name (xtensa_isa isa, xtensa_interface intf); - - -/* Get the bit width for an interface. - Returns XTENSA_UNDEFINED on error. */ - -extern int -xtensa_interface_num_bits (xtensa_isa isa, xtensa_interface intf); - - -/* Check if an interface is an input ('i') or output ('o') with respect - to the Xtensa processor core. Returns 0 on error. */ - -extern char -xtensa_interface_inout (xtensa_isa isa, xtensa_interface intf); - - -/* Check if accessing an interface has potential side effects. - Currently "data" interfaces have side effects and "control" - interfaces do not. Returns 1 if there are side effects, 0 if not, - and XTENSA_UNDEFINED on error. */ - -extern int -xtensa_interface_has_side_effect (xtensa_isa isa, xtensa_interface intf); - - -/* Some interfaces may be related such that accessing one interface - has side effects on a set of related interfaces. The interfaces - are partitioned into equivalence classes of related interfaces, and - each class is assigned a unique identifier number. This function - returns the class identifier for an interface, or XTENSA_UNDEFINED - on error. These identifiers can be compared to determine if two - interfaces are related; the specific values of the identifiers have - no particular meaning otherwise. */ - -extern int -xtensa_interface_class_id (xtensa_isa isa, xtensa_interface intf); - - - -/* Functional Units. */ - -/* Find a functional unit by name. The return value is XTENSA_UNDEFINED if - the specified unit is not found. */ - -extern xtensa_funcUnit -xtensa_funcUnit_lookup (xtensa_isa isa, const char *fname); - - -/* Get the name of a functional unit. Returns null on error. */ - -extern const char * -xtensa_funcUnit_name (xtensa_isa isa, xtensa_funcUnit fun); - - -/* Functional units may be replicated. See how many instances of a - particular function unit exist. Returns XTENSA_UNDEFINED on error. */ - -extern int -xtensa_funcUnit_num_copies (xtensa_isa isa, xtensa_funcUnit fun); - - -#ifdef __cplusplus -} -#endif -#endif /* XTENSA_LIBISA_H */ diff --git a/lib/Makefile b/lib/Makefile index d730f30..b4dc7fa 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -4,343 +4,34 @@ lib-$(CONFIG_SIMPLE_FB) += simplefb/simplefb.o # DEBUG lib-y += debug/debug.o -# argz -lib-y += \ - argz/argz_add.o \ - argz/argz_add_sep.o \ - argz/argz_append.o \ - argz/argz_count.o \ - argz/argz_create.o \ - argz/argz_create_sep.o \ - argz/argz_delete.o \ - argz/argz_extract.o \ - argz/argz_insert.o \ - argz/argz_next.o \ - argz/argz_replace.o \ - argz/argz_stringify.o \ - argz/buf_findstr.o \ - argz/envz_entry.o \ - argz/envz_get.o \ - argz/envz_add.o \ - argz/envz_remove.o \ - argz/envz_merge.o \ - argz/envz_strip.o - -# stdlib -lib-y += \ - stdlib/__adjust.o \ - stdlib/__atexit.o \ - stdlib/__call_atexit.o \ - stdlib/__exp10.o \ - stdlib/__ten_mu.o \ - stdlib/_Exit.o \ - stdlib/abort.o \ - stdlib/abs.o \ - stdlib/aligned_alloc.o \ - stdlib/assert.o \ - stdlib/atexit.o \ - stdlib/atof.o \ - stdlib/atoff.o \ - stdlib/atoi.o \ - stdlib/atol.o \ - stdlib/calloc.o \ - stdlib/callocr.o \ - stdlib/cfreer.o \ - stdlib/div.o \ - stdlib/dtoa.o \ - stdlib/dtoastub.o \ - stdlib/environ.o \ - stdlib/envlock.o \ - stdlib/eprintf.o \ - stdlib/exit.o \ - stdlib/freer.o \ - stdlib/gdtoa-gethex.o \ - stdlib/gdtoa-hexnan.o \ - stdlib/getenv.o \ - stdlib/getenv_r.o \ - stdlib/imaxabs.o \ - stdlib/imaxdiv.o \ - stdlib/itoa.o \ - stdlib/labs.o \ - stdlib/ldiv.o \ - stdlib/ldtoa.o \ - stdlib/gdtoa-ldtoa.o \ - stdlib/gdtoa-gdtoa.o \ - stdlib/gdtoa-dmisc.o \ - stdlib/gdtoa-gmisc.o \ - stdlib/mallinfor.o \ - stdlib/malloc.o \ - stdlib/mallocr.o \ - stdlib/mallstatsr.o \ - stdlib/mblen.o \ - stdlib/mblen_r.o \ - stdlib/mbstowcs.o \ - stdlib/mbstowcs_r.o \ - stdlib/mbtowc.o \ - stdlib/mbtowc_r.o \ - stdlib/mlock.o \ - stdlib/mprec.o \ - stdlib/msizer.o \ - stdlib/mstats.o \ - stdlib/on_exit_args.o \ - stdlib/quick_exit.o \ - stdlib/rand.o \ - stdlib/rand_r.o \ - stdlib/random.o \ - stdlib/realloc.o \ - stdlib/reallocarray.o \ - stdlib/reallocf.o \ - stdlib/reallocr.o \ - stdlib/sb_charsets.o \ - stdlib/strtod.o \ - stdlib/strtoimax.o \ - stdlib/strtol.o \ - stdlib/strtoul.o \ - stdlib/strtoumax.o \ - stdlib/utoa.o \ - stdlib/wcstod.o \ - stdlib/wcstoimax.o \ - stdlib/wcstol.o \ - stdlib/wcstoul.o \ - stdlib/wcstoumax.o \ - stdlib/wcstombs.o \ - stdlib/wcstombs_r.o \ - stdlib/wctomb.o \ - stdlib/wctomb_r.o - -# ctype -lib-y += \ - ctype/ctype_.o \ - ctype/isalnum.o \ - ctype/isalpha.o \ - ctype/iscntrl.o \ - ctype/isdigit.o \ - ctype/islower.o \ - ctype/isupper.o \ - ctype/isprint.o \ - ctype/ispunct.o \ - ctype/isspace.o \ - ctype/isxdigit.o \ - ctype/tolower.o \ - ctype/toupper.o - -# search -lib-y += \ - search/bsearch.o \ - search/db_local.h \ - search/extern.h \ - search/hash.h \ - search/ndbm.o \ - search/page.h \ - search/qsort.o - - -# string -lib-y += \ - string/bcopy.o \ - string/bzero.o \ - string/explicit_bzero.o \ - string/ffsl.o \ - string/ffsll.o \ - string/fls.o \ - string/flsl.o \ - string/flsll.o \ - string/index.o \ - string/memchr.o \ - string/memcmp.o \ - string/memcpy.o \ - string/memmove.o \ - string/memset.o \ - string/rindex.o \ - string/strcasecmp.o \ - string/strcat.o \ - string/strchr.o \ - string/strcmp.o \ - string/strcoll.o \ - string/strcpy.o \ - string/strcspn.o \ - string/strdup.o \ - string/strdup_r.o \ - string/strerror.o \ - string/strerror_r.o \ - string/strlcat.o \ - string/strlcpy.o \ - string/strlen.o \ - string/strlwr.o \ - string/strncasecmp.o \ - string/strncat.o \ - string/strncmp.o \ - string/strncpy.o \ - string/strnlen.o \ - string/strnstr.o \ - string/strpbrk.o \ - string/strrchr.o \ - string/strsep.o \ - string/strsignal.o \ - string/strspn.o \ - string/strtok.o \ - string/strtok_r.o \ - string/strupr.o \ - string/strxfrm.o \ - string/strstr.o \ - string/swab.o \ - string/timingsafe_bcmp.o \ - string/timingsafe_memcmp.o \ - string/u_strerr.o \ - string/wcscat.o \ - string/wcschr.o \ - string/wcscmp.o \ - string/wcscoll.o \ - string/wcscpy.o \ - string/wcscspn.o \ - string/wcslcat.o \ - string/wcslcpy.o \ - string/wcslen.o \ - string/wcsncat.o \ - string/wcsncmp.o \ - string/wcsncpy.o \ - string/wcsnlen.o \ - string/wcspbrk.o \ - string/wcsrchr.o \ - string/wcsspn.o \ - string/wcsstr.o \ - string/wcstok.o \ - string/wcswidth.o \ - string/wcsxfrm.o \ - string/wcwidth.o \ - string/wmemchr.o \ - string/wmemcmp.o \ - string/wmemcpy.o \ - string/wmemmove.o \ - string/wmemset.o \ - string/xpg_strerror_r.o - -# stdio -# TODO - -#lib-y += \ -# stdio/nano-vfprintf_float.o \ -# stdio/nano-svfprintf.o \ -# stdio/nano-svfscanf.o \ -# stdio/nano-vfprintf.o \ -# stdio/nano-vfprintf_i.o \ -# stdio/nano-vfscanf.o \ -# stdio/nano-vfscanf_i.o \ -# stdio/nano-vfscanf_float.o - -# signal -lib-y += \ - signal/psignal.o signal/raise.o signal/signal.o signal/sig2str.o - -# time -lib-y += \ - time/asctime.o \ - time/asctime_r.o \ - time/clock.o \ - time/ctime.o \ - time/ctime_r.o \ - time/difftime.o \ - time/gettzinfo.o \ - time/gmtime.o \ - time/gmtime_r.o \ - time/lcltime.o \ - time/lcltime_r.o \ - time/mktime.o \ - time/month_lengths.o \ - time/strftime.o \ - time/strptime.o \ - time/time.o \ - time/tzcalc_limits.o \ - time/tzlock.o \ - time/tzset.o \ - time/tzset_r.o \ - time/tzvars.o \ - time/wcsftime.o - -# locale -lib-y += \ - locale/setlocale.h \ - locale/locale.o \ - locale/localeconv.o - -# reent -# TODO - -# errno -lib-y += errno/errno.o - -# misc -lib-y += \ - misc/__dprintf.o \ - misc/unctrl.o \ - misc/ffs.o \ - misc/init.o \ - misc/fini.o - -# syscalls -lib-y += \ - syscalls/sysclose.o \ - syscalls/sysfcntl.o \ - syscalls/sysfstat.o \ - syscalls/sysgetpid.o \ - syscalls/sysgettod.o \ - #syscalls/sysisatty.o \ - syscalls/syskill.o \ - syscalls/syslink.o \ - syscalls/syslseek.o \ - syscalls/sysopen.o \ - syscalls/sysread.o \ - syscalls/syssbrk.o \ - syscalls/sysstat.o \ - syscalls/systimes.o \ - syscalls/sysunlink.o \ - syscalls/syswrite.o - +# Neatlibc (excluding signal and syscalls) ifeq ($(ARCH), arm) -# machine -lib-y += \ - machine/arm/setjmp.o machine/arm/strcmp.o machine/arm/strcpy.o \ - machine/arm/aeabi_memcpy.o machine/arm/aeabi_memcpy-armv7a.o \ - machine/arm/aeabi_memmove.o machine/arm/aeabi_memmove-soft.o \ - machine/arm/aeabi_memset.o machine/arm/aeabi_memset-soft.o machine/arm/aeabi_memclr.o \ - machine/arm/memchr-stub.o \ - machine/arm/memchr.o \ - machine/arm/memcpy-stub.o \ - machine/arm/memcpy.o \ - machine/arm/strlen-stub.o \ - machine/arm/strlen.o +lib-y += neatlibcarm/arm/bits.o \ + neatlibcarm/arm/lmem.o \ + neatlibcarm/arm/string.o else -# machine -lib-y += \ - machine/aarch64/memchr-stub.o \ - machine/aarch64/memchr.o \ - machine/aarch64/memcmp-stub.o \ - machine/aarch64/memcmp.o \ - machine/aarch64/memcpy-stub.o \ - machine/aarch64/memcpy.o \ - machine/aarch64/memmove-stub.o \ - machine/aarch64/memmove.o \ - machine/aarch64/memset-stub.o \ - machine/aarch64/memset.o \ - machine/aarch64/rawmemchr.o \ - machine/aarch64/rawmemchr-stub.o \ - machine/aarch64/setjmp.o \ - machine/aarch64/stpcpy-stub.o \ - machine/aarch64/stpcpy.o \ - machine/aarch64/strchr-stub.o \ - machine/aarch64/strchr.o \ - machine/aarch64/strchrnul-stub.o \ - machine/aarch64/strchrnul.o \ - machine/aarch64/strcmp-stub.o \ - machine/aarch64/strcmp.o \ - machine/aarch64/strcpy-stub.o \ - machine/aarch64/strcpy.o \ - machine/aarch64/strlen-stub.o \ - machine/aarch64/strlen.o \ - machine/aarch64/strncmp-stub.o \ - machine/aarch64/strncmp.o \ - machine/aarch64/strnlen-stub.o \ - machine/aarch64/strnlen.o \ - machine/aarch64/strrchr-stub.o \ - machine/aarch64/strrchr.o +lib-y += neatlibcaarch64/$(ARCH)/bits.o \ + neatlibcaarch64/$(ARCH)/lmem.o \ + neatlibcaarch64/$(ARCH)/string.o endif + +lib-y += neatlibc/ctype.o \ + neatlibc/strftime.o \ + neatlibc/mkstemp.o \ + neatlibc/regex.o \ + neatlibc/rand.o \ + neatlibc/stdarg.o \ + neatlibc/memtst.o \ + neatlibc/dirent.o \ + neatlibc/localtime.o \ + neatlibc/malloc.o \ + neatlibc/termios.o \ + neatlibc/atoi.o \ + neatlibc/errno.o \ + neatlibc/stdio.o \ + neatlibc/stdlib.o \ + neatlibc/qsort.o \ + neatlibc/stringc.o \ + neatlibc/isatty.o \ + neatlibc/scanf.o \ + neatlibc/string.o diff --git a/lib/acinclude.m4 b/lib/acinclude.m4 deleted file mode 100644 index 4266266..0000000 --- a/lib/acinclude.m4 +++ /dev/null @@ -1,68 +0,0 @@ -dnl For each directory which we may or may not want, we define a name -dnl for the library and an automake conditional for whether we should -dnl build the library. - -AM_CONDITIONAL(HAVE_SIGNAL_DIR, test x${signal_dir} != x) -AM_CONDITIONAL(HAVE_STDIO_DIR, test x${stdio_dir} != x) -AM_CONDITIONAL(HAVE_STDIO64_DIR, test x${stdio64_dir} != x) -AM_CONDITIONAL(HAVE_POSIX_DIR, test x${posix_dir} != x) -AM_CONDITIONAL(HAVE_XDR_DIR, test x${xdr_dir} != x) -AM_CONDITIONAL(HAVE_SYSCALL_DIR, test x${syscall_dir} != x) -AM_CONDITIONAL(HAVE_UNIX_DIR, test x${unix_dir} != x) - -dnl We always recur into sys and machine, and let them decide what to do. -m4_foreach_w([SYS_DIR], [ - a29khif amdgcn arm - d10v - epiphany - h8300hms h8500hms - m88kbug mmixware - netware - or1k - rdos rtems - sh sysmec sysnec810 sysnecv850 sysvi386 sysvnecv70 - tic80 tirtos - w65 - z8ksim -], [AM_CONDITIONAL([HAVE_LIBC_SYS_]m4_toupper(SYS_DIR)[_DIR], test "${sys_dir}" = SYS_DIR)]) - -AC_TYPE_LONG_DOUBLE -AM_CONDITIONAL(HAVE_LONG_DOUBLE, test x"$ac_cv_type_long_double" = x"yes") - -dnl iconv library will be compiled if --enable-newlib-iconv option is enabled -AM_CONDITIONAL(ENABLE_NEWLIB_ICONV, test x${newlib_iconv} != x) - -dnl We have to include these unconditionally since machines might want to use -dnl AM_CONDITIONAL in their subdirs. -m4_include([libc/machine/nds32/acinclude.m4]) -m4_include([libc/machine/powerpc/acinclude.m4]) -m4_include([libc/machine/sh/acinclude.m4]) -m4_include([libc/machine/spu/acinclude.m4]) - -m4_foreach_w([MACHINE], [ - aarch64 amdgcn arc arm - bfin - cr16 cris crx csky - d10v d30v - epiphany - fr30 frv ft32 - h8300 h8500 hppa - i386 i960 iq2000 - lm32 - m32c m32r m68hc11 m68k m88k mep microblaze mips mn10200 mn10300 moxie msp430 mt - nds32 necv70 nios2 nvptx - or1k - powerpc pru - riscv rl78 rx - sh sparc spu - tic4x tic6x tic80 - v850 visium - w65 - x86_64 xc16x xstormy16 - z8k -], [AM_CONDITIONAL([HAVE_LIBC_MACHINE_]m4_toupper(MACHINE), test "${machine_dir}" = MACHINE)]) - -AM_CONDITIONAL(HAVE_FPMATH_H, test -r "${srcdir}/libc/machine/${machine_dir}/machine/_fpmath.h") - - -AM_CONDITIONAL(MACH_ADD_SETJMP, test "x$mach_add_setjmp" = "xtrue") diff --git a/lib/argz/Makefile.inc b/lib/argz/Makefile.inc deleted file mode 100644 index 98da255..0000000 --- a/lib/argz/Makefile.inc +++ /dev/null @@ -1,23 +0,0 @@ -## All functions in this directory are EL/IX level 2 and above -if !ELIX_LEVEL_1 -libc_a_SOURCES += \ - %D%/argz_add.c \ - %D%/argz_add_sep.c \ - %D%/argz_append.c \ - %D%/argz_count.c \ - %D%/argz_create.c \ - %D%/argz_create_sep.c \ - %D%/argz_delete.c \ - %D%/argz_extract.c \ - %D%/argz_insert.c \ - %D%/argz_next.c \ - %D%/argz_replace.c \ - %D%/argz_stringify.c \ - %D%/buf_findstr.c \ - %D%/envz_entry.c \ - %D%/envz_get.c \ - %D%/envz_add.c \ - %D%/envz_remove.c \ - %D%/envz_merge.c \ - %D%/envz_strip.c -endif diff --git a/lib/argz/argz_add.c b/lib/argz/argz_add.c deleted file mode 100644 index a1a8d3d..0000000 --- a/lib/argz/argz_add.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include - -error_t -argz_add (char **argz, - size_t *argz_len, - const char *str) -{ - int len_to_add = 0; - size_t last = *argz_len; - - if (str == NULL) - return 0; - - len_to_add = strlen(str) + 1; - *argz_len += len_to_add; - - if(!(*argz = (char *)realloc(*argz, *argz_len))) - return ENOMEM; - - memcpy(*argz + last, str, len_to_add); - return 0; -} diff --git a/lib/argz/argz_add_sep.c b/lib/argz/argz_add_sep.c deleted file mode 100644 index f2964e6..0000000 --- a/lib/argz/argz_add_sep.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include - -error_t -argz_add_sep (char **argz, - size_t *argz_len, - const char *str, - int sep) -{ - char *str_argz = 0; - size_t str_argz_len = 0; - size_t last = *argz_len; - - argz_create_sep (str, sep, &str_argz, &str_argz_len); - - if (str_argz_len) - { - *argz_len += str_argz_len; - - if(!(*argz = (char *)realloc(*argz, *argz_len))) - return ENOMEM; - - memcpy(*argz + last, str_argz, str_argz_len); - } - return 0; -} diff --git a/lib/argz/argz_append.c b/lib/argz/argz_append.c deleted file mode 100644 index de0cc82..0000000 --- a/lib/argz/argz_append.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include - -error_t -argz_append (char **argz, - size_t *argz_len, - const char *buf, - size_t buf_len) -{ - if (buf_len) - { - size_t last = *argz_len; - - *argz_len += buf_len; - - if(!(*argz = (char *)realloc(*argz, *argz_len))) - return ENOMEM; - - memcpy(*argz + last, buf, buf_len); - } - return 0; -} diff --git a/lib/argz/argz_count.c b/lib/argz/argz_count.c deleted file mode 100644 index 4c0007c..0000000 --- a/lib/argz/argz_count.c +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include <_ansi.h> -#include -#include -#include - -size_t -argz_count (const char *argz, - size_t argz_len) -{ - int i; - size_t count = 0; - - for (i = 0; i < argz_len; i++) - { - if (argz[i] == '\0') - count++; - } - return count; -} diff --git a/lib/argz/argz_create.c b/lib/argz/argz_create.c deleted file mode 100644 index 4ab622d..0000000 --- a/lib/argz/argz_create.c +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include - -error_t -argz_create (char *const argv[], - char **argz, - size_t *argz_len) -{ - int argc = 0; - int i = 0; - int len = 0; - char *iter; - - *argz_len = 0; - - if (*argv == NULL) - { - *argz = NULL; - return 0; - } - - while (argv[argc]) - { - *argz_len += (strlen(argv[argc]) + 1); - argc++; - } - - /* There are argc strings to copy into argz. */ - if(!(*argz = (char *)malloc(*argz_len))) - return ENOMEM; - - iter = *argz; - for(i = 0; i < argc; i++) - { - len = strlen(argv[i]) + 1; - memcpy(iter, argv[i], len); - iter += len; - } - return 0; -} diff --git a/lib/argz/argz_create_sep.c b/lib/argz/argz_create_sep.c deleted file mode 100644 index bf578e6..0000000 --- a/lib/argz/argz_create_sep.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include - -error_t -argz_create_sep (const char *string, - int sep, - char **argz, - size_t *argz_len) -{ - int len = 0; - int i = 0; - int num_strings = 0; - char delim[2]; - char *running = 0; - char *old_running = 0; - char *token = 0; - char *iter = 0; - - *argz_len = 0; - - if (!string || string[0] == '\0') - { - *argz= NULL; - return 0; - } - - delim[0] = sep; - delim[1] = '\0'; - - running = strdup(string); - old_running = running; - - while ((token = strsep(&running, delim))) - { - len = strlen(token); - *argz_len += (len + 1); - num_strings++; - } - - if(!(*argz = (char *)malloc(*argz_len))) - return ENOMEM; - - free(old_running); - - running = strdup(string); - old_running = running; - - iter = *argz; - for (i = 0; i < num_strings; i++) - { - token = strsep(&running, delim); - len = strlen(token) + 1; - memcpy(iter, token, len); - iter += len; - } - - free(old_running); - return 0; -} diff --git a/lib/argz/argz_delete.c b/lib/argz/argz_delete.c deleted file mode 100644 index aa1fe4c..0000000 --- a/lib/argz/argz_delete.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include - -error_t -argz_delete (char **argz, - size_t *argz_len, - char *entry) -{ - int len = 0; - char *moveto = entry; - - if (entry) - { - len = strlen(entry) + 1; - entry += len; - - memmove(moveto, entry, *argz + *argz_len - entry); - - *argz_len -= len; - - if(!(*argz = (char *)realloc(*argz, *argz_len))) - return ENOMEM; - - if (*argz_len <= 0) - { - free(*argz); - *argz = NULL; - } - } - return 0; -} diff --git a/lib/argz/argz_extract.c b/lib/argz/argz_extract.c deleted file mode 100644 index e97b769..0000000 --- a/lib/argz/argz_extract.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include - -void -argz_extract (char *argz, - size_t argz_len, - char **argv) -{ - size_t i = 0; - int j = 0; - const size_t count = argz_count(argz, argz_len); - - if (argz_len > 1) - for (i = argz_len - 2; i > 0; i--) - { - if (argz[i] == '\0') - { - j++; - argv[count - j] = &argz[i + 1]; - } - } - argv[0] = &argz[0]; - argv[count] = NULL; -} diff --git a/lib/argz/argz_insert.c b/lib/argz/argz_insert.c deleted file mode 100644 index abdfeb0..0000000 --- a/lib/argz/argz_insert.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright (C) 2002, 2005 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include -#define __need_ptrdiff_t -#include - -error_t -argz_insert (char **argz, - size_t *argz_len, - char *before, - const char *entry) -{ - int len = 0; - ptrdiff_t delta; - - if (before == NULL) - return argz_add(argz, argz_len, entry); - - if (before < *argz || before >= *argz + *argz_len) - return EINVAL; - - while (before != *argz && before[-1]) - before--; - - /* delta will always be non-negative, and < *argz_len */ - delta = before - *argz; - - len = strlen(entry) + 1; - - if(!(*argz = (char *)realloc(*argz, *argz_len + len))) - return ENOMEM; - - memmove(*argz + delta + len, *argz + delta, *argz_len - delta); - memcpy(*argz + delta, entry, len); - - *argz_len += len; - - return 0; -} diff --git a/lib/argz/argz_next.c b/lib/argz/argz_next.c deleted file mode 100644 index 0d6f21d..0000000 --- a/lib/argz/argz_next.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include - -char * -argz_next (char *argz, - size_t argz_len, - const char *entry) -{ - if (entry) - { - while(*entry != '\0') - entry++; - entry++; - - if (entry >= argz + argz_len) - return NULL; - else - return (char *) entry; - } - else - { - if (argz_len > 0) - return (char *) argz; - else - return NULL; - } -} diff --git a/lib/argz/argz_replace.c b/lib/argz/argz_replace.c deleted file mode 100644 index f2e0d52..0000000 --- a/lib/argz/argz_replace.c +++ /dev/null @@ -1,93 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include - -#include "buf_findstr.h" - -error_t -argz_replace (char **argz, - size_t *argz_len, - const char *str, - const char *with, - unsigned *replace_count) -{ - const int str_len = strlen(str); - const int with_len = strlen(with); - const int len_diff = with_len - str_len; - - char *buf_iter = *argz; - size_t buf_len = *argz_len; - char *last_iter = NULL; - char *new_argz = NULL; - size_t new_argz_len = 0; - char *new_argz_iter = NULL; - char *argz_realloc = NULL; - - *replace_count = 0; - new_argz_len = *argz_len; - - while(buf_len) - { - if(_buf_findstr(str, &buf_iter, &buf_len)) - { - *replace_count += 1; - new_argz_len += len_diff; - } - } - - if (*replace_count) - { - if (!(new_argz = (char *)malloc(new_argz_len))) - return ENOMEM; - - buf_iter = *argz; - buf_len = *argz_len; - last_iter = buf_iter; - new_argz_iter = new_argz; - - while(buf_len) - { - if (_buf_findstr(str, &buf_iter, &buf_len)) - { - /* copy everything up to, but not including str, from old argz to - new argz. */ - memcpy(new_argz_iter, last_iter, buf_iter - last_iter - str_len); - new_argz_iter += (buf_iter - last_iter - str_len); - /* copy replacement string. */ - memcpy(new_argz_iter, with, with_len); - new_argz_iter += with_len; - last_iter = buf_iter; - } - } - /* copy everything after last occurrence of str. */ - memcpy(new_argz_iter, last_iter, *argz + *argz_len - last_iter); - - /* reallocate argz, and copy over the new value. */ - if(!(argz_realloc = (char *)realloc(*argz, new_argz_len))) - { - free(new_argz); - return ENOMEM; - } - *argz = argz_realloc; - - memcpy(*argz, new_argz, new_argz_len); - *argz_len = new_argz_len; - - if (*argz_len == 0) - { - free(*argz); - *argz = NULL; - } - free(new_argz); - } - - return 0; -} diff --git a/lib/argz/argz_stringify.c b/lib/argz/argz_stringify.c deleted file mode 100644 index 98f6c9b..0000000 --- a/lib/argz/argz_stringify.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include <_ansi.h> -#include -#include -#include - -void -argz_stringify (char *argz, - size_t argz_len, - int sep) -{ - size_t i; - - /* len includes trailing \0, which we don't want to replace. */ - if (argz_len > 1) - for (i = 0; i < argz_len - 1; i++) - { - if (argz[i] == '\0') - argz[i] = sep; - } -} diff --git a/lib/argz/buf_findstr.c b/lib/argz/buf_findstr.c deleted file mode 100644 index aeb32a9..0000000 --- a/lib/argz/buf_findstr.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include - -#include "buf_findstr.h" - -/* Find string str in buffer buf of length buf_len. Point buf to character after string, - or set it to NULL if end of buffer is reached. Return 1 if found, 0 if not. */ -int -_buf_findstr(const char *str, char **buf, size_t *buf_len) -{ - int i = 0; - int j = 0; - - for (i = 0; i < *buf_len; i++) - { - if (str[0] == (*buf)[i]) - { - j = i; - while (str[j - i] && (str[j - i] == (*buf)[j])) j++; - if(str[j - i] == '\0') - { - *buf += j; - *buf_len -= j; - return 1; - } - } - } - - if (i == *buf_len) - { - *buf += *buf_len; - *buf_len = 0; - } - - return 0; -} diff --git a/lib/argz/buf_findstr.h b/lib/argz/buf_findstr.h deleted file mode 100644 index d6cef7c..0000000 --- a/lib/argz/buf_findstr.h +++ /dev/null @@ -1,12 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include - -/* Find string str in buffer buf of length buf_len. Point buf to - character after string, or set it to NULL if end of buffer is - reached. Return 1 if found, 0 if not. */ -int _buf_findstr(const char *str, char **buf, size_t *buf_len); diff --git a/lib/argz/envz_add.c b/lib/argz/envz_add.c deleted file mode 100644 index 60ecf17..0000000 --- a/lib/argz/envz_add.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include -#include - -error_t -envz_add (char **envz, - size_t *envz_len, - const char *name, - const char *value) -{ - char *concat = NULL; - int name_len = 0; - int val_len = 0; - int retval = 0; - - envz_remove(envz, envz_len, name); - - if (value) - { - name_len = strlen(name); - val_len = strlen(value); - if(!(concat = (char *) malloc(name_len + val_len + 2))) - return ENOMEM; - - memcpy(concat, name, name_len); - concat[name_len] = '='; - memcpy(concat + name_len + 1, value, val_len + 1); - - retval = argz_add(envz, envz_len, concat); - free(concat); - } - else - { - retval = argz_add(envz, envz_len, name); - } - return retval; -} diff --git a/lib/argz/envz_entry.c b/lib/argz/envz_entry.c deleted file mode 100644 index 869c332..0000000 --- a/lib/argz/envz_entry.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include - -#include "buf_findstr.h" - -char * -envz_entry (const char *envz, - size_t envz_len, - const char *name) -{ - char *buf_ptr = (char *)envz; - size_t buf_len = envz_len; - - while(buf_len) - { - if (_buf_findstr(name, &buf_ptr, &buf_len)) - { - if (buf_ptr) - { - if (*buf_ptr == '=' || *buf_ptr == '\0') - { - buf_ptr--; - - /* Move buf_ptr back to start of entry. */ - while(*buf_ptr != '\0' && buf_ptr != envz) buf_ptr--; - - if(*buf_ptr == '\0') - buf_ptr++; - - return (char *)buf_ptr; - } - } - } - } - return 0; -} diff --git a/lib/argz/envz_get.c b/lib/argz/envz_get.c deleted file mode 100644 index 9863642..0000000 --- a/lib/argz/envz_get.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include - -#include "buf_findstr.h" - -char * -envz_get (const char *envz, - size_t envz_len, - const char *name) -{ - char *buf_ptr = (char *)envz; - size_t buf_len = envz_len; - - while(buf_len) - { - if (_buf_findstr(name, &buf_ptr, &buf_len)) - { - if (*buf_ptr == '=') - { - buf_ptr++; - return (char *)buf_ptr; - } - else - { - if (*buf_ptr == '\0') - /* NULL entry. */ - return NULL; - } - } - } - /* No matching entries found. */ - return NULL; -} diff --git a/lib/argz/envz_merge.c b/lib/argz/envz_merge.c deleted file mode 100644 index 3be7c1f..0000000 --- a/lib/argz/envz_merge.c +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include -#include - -error_t -envz_merge (char **envz, - size_t *envz_len, - const char *envz2, - size_t envz2_len, - int override) -{ - char *entry = NULL; - char *name_str = NULL; - char *val_str = NULL; - char *name_iter = NULL; - int retval = 0; - - while((entry = argz_next((char *)envz2, envz2_len, entry)) && !retval) - { - if (!override) - { - name_str = strdup (entry); - name_iter = strchr(name_str, '='); - if(name_iter) - *name_iter = '\0'; - - if(!envz_entry(*envz, *envz_len, name_str)) - { - retval = argz_add(envz, envz_len, entry); - } - free(name_str); - } - else - { - name_str = strdup (entry); - name_iter = strchr(name_str, '='); - if(name_iter) - { - *name_iter = '\0'; - val_str = name_iter + 1; - } - else - { - val_str = NULL; - } - - retval = envz_add(envz, envz_len, name_str, val_str); - free(name_str); - } - } - return retval; -} diff --git a/lib/argz/envz_remove.c b/lib/argz/envz_remove.c deleted file mode 100644 index 8fc9e8f..0000000 --- a/lib/argz/envz_remove.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include -#include - -void -envz_remove (char **envz, - size_t *envz_len, - const char *name) -{ - char *entry = NULL; - int len = 0; - entry = envz_entry (*envz, *envz_len, name); - - if (entry) - { - len = strlen(entry) + 1; - - /* Not the last entry. */ - if (*envz + *envz_len != entry + len - 1) - { - memmove(entry, entry + len, *envz + *envz_len - entry - len); - } - - *envz = (char *)realloc(*envz, *envz_len - len); - *envz_len -= len; - } -} diff --git a/lib/argz/envz_strip.c b/lib/argz/envz_strip.c deleted file mode 100644 index 8efa5cb..0000000 --- a/lib/argz/envz_strip.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include -#include -#include -#include -#include - -void -envz_strip (char **envz, - size_t *envz_len) -{ - char *entry = 0; - int len = 0; - int null_found = 0; - - while((entry = argz_next(*envz, *envz_len, entry))) - { - if(!strchr(entry, '=')) - { - null_found = 1; - len = strlen(entry) + 1; - /* Make sure this is not the last entry in envz. If it is, it - will be chopped off by the realloc anyway.*/ - if(*envz + *envz_len != entry + len - 1) - { - memmove(entry, entry + len, *envz + *envz_len - entry - len); - } - *envz_len -= len; - } - } - if(null_found) - { - *envz = (char *)realloc(*envz, *envz_len); - } -} diff --git a/lib/ctype/Makefile.inc b/lib/ctype/Makefile.inc deleted file mode 100644 index 0affa29..0000000 --- a/lib/ctype/Makefile.inc +++ /dev/null @@ -1,112 +0,0 @@ -libc_a_SOURCES += \ - %D%/ctype_.c \ - %D%/isalnum.c \ - %D%/isalpha.c \ - %D%/iscntrl.c \ - %D%/isdigit.c \ - %D%/islower.c \ - %D%/isupper.c \ - %D%/isprint.c \ - %D%/ispunct.c \ - %D%/isspace.c \ - %D%/isxdigit.c \ - %D%/tolower.c \ - %D%/toupper.c - -## The following handles EL/IX level 2 functions -if !ELIX_LEVEL_1 -libc_a_SOURCES += \ - %D%/categories.c \ - %D%/isalnum_l.c \ - %D%/isalpha_l.c \ - %D%/isascii.c \ - %D%/isascii_l.c \ - %D%/isblank.c \ - %D%/isblank_l.c \ - %D%/iscntrl_l.c \ - %D%/isdigit_l.c \ - %D%/islower_l.c \ - %D%/isupper_l.c \ - %D%/isprint_l.c \ - %D%/ispunct_l.c \ - %D%/isspace_l.c \ - %D%/iswalnum.c \ - %D%/iswalnum_l.c \ - %D%/iswalpha.c \ - %D%/iswalpha_l.c \ - %D%/iswblank.c \ - %D%/iswblank_l.c \ - %D%/iswcntrl.c \ - %D%/iswcntrl_l.c \ - %D%/iswctype.c \ - %D%/iswctype_l.c \ - %D%/iswdigit.c \ - %D%/iswdigit_l.c \ - %D%/iswgraph.c \ - %D%/iswgraph_l.c \ - %D%/iswlower.c \ - %D%/iswlower_l.c \ - %D%/iswprint.c \ - %D%/iswprint_l.c \ - %D%/iswpunct.c \ - %D%/iswpunct_l.c \ - %D%/iswspace.c \ - %D%/iswspace_l.c \ - %D%/iswupper.c \ - %D%/iswupper_l.c \ - %D%/iswxdigit.c \ - %D%/iswxdigit_l.c \ - %D%/isxdigit_l.c \ - %D%/jp2uc.c \ - %D%/toascii.c \ - %D%/toascii_l.c \ - %D%/tolower_l.c \ - %D%/toupper_l.c \ - %D%/towctrans.c \ - %D%/towctrans_l.c \ - %D%/towlower.c \ - %D%/towlower_l.c \ - %D%/towupper.c \ - %D%/towupper_l.c \ - %D%/wctrans.c \ - %D%/wctrans_l.c \ - %D%/wctype.c \ - %D%/wctype_l.c -endif - -LIBC_CHEWOUT_FILES += \ - %D%/isalnum.def \ - %D%/isalpha.def \ - %D%/isascii.def \ - %D%/isblank.def \ - %D%/iscntrl.def \ - %D%/isdigit.def \ - %D%/islower.def \ - %D%/isprint.def \ - %D%/ispunct.def \ - %D%/isspace.def \ - %D%/isupper.def \ - %D%/iswalnum.def \ - %D%/iswalpha.def \ - %D%/iswblank.def \ - %D%/iswcntrl.def \ - %D%/iswctype.def \ - %D%/iswdigit.def \ - %D%/iswgraph.def \ - %D%/iswlower.def \ - %D%/iswprint.def \ - %D%/iswpunct.def \ - %D%/iswspace.def \ - %D%/iswupper.def \ - %D%/iswxdigit.def \ - %D%/isxdigit.def \ - %D%/toascii.def \ - %D%/tolower.def \ - %D%/toupper.def \ - %D%/towctrans.def \ - %D%/towlower.def \ - %D%/towupper.def \ - %D%/wctrans.def \ - %D%/wctype.def - -LIBC_CHAPTERS += %D%/ctype.tex diff --git a/lib/ctype/caseconv.t b/lib/ctype/caseconv.t deleted file mode 100644 index 0620f14..0000000 --- a/lib/ctype/caseconv.t +++ /dev/null @@ -1,328 +0,0 @@ - {0x0041, 25, TOLO, 32}, - {0x0061, 25, TOUP, -32}, - {0x00B5, 0, TOUP, 743}, - {0x00C0, 22, TOLO, 32}, - {0x00D8, 6, TOLO, 32}, - {0x00E0, 22, TOUP, -32}, - {0x00F8, 6, TOUP, -32}, - {0x00FF, 0, TOUP, 121}, - {0x0100, 47, TO1, EVENCAP}, - {0x0130, 0, TOLO, -199}, - {0x0131, 0, TOUP, -232}, - {0x0132, 5, TO1, EVENCAP}, - {0x0139, 15, TO1, ODDCAP}, - {0x014A, 45, TO1, EVENCAP}, - {0x0178, 0, TOLO, -121}, - {0x0179, 5, TO1, ODDCAP}, - {0x017F, 0, TOUP, -300}, - {0x0180, 0, TOUP, 195}, - {0x0181, 0, TOLO, 210}, - {0x0182, 3, TO1, EVENCAP}, - {0x0186, 0, TOLO, 206}, - {0x0187, 1, TO1, ODDCAP}, - {0x0189, 1, TOLO, 205}, - {0x018B, 1, TO1, ODDCAP}, - {0x018E, 0, TOLO, 79}, - {0x018F, 0, TOLO, 202}, - {0x0190, 0, TOLO, 203}, - {0x0191, 1, TO1, ODDCAP}, - {0x0193, 0, TOLO, 205}, - {0x0194, 0, TOLO, 207}, - {0x0195, 0, TOUP, 97}, - {0x0196, 0, TOLO, 211}, - {0x0197, 0, TOLO, 209}, - {0x0198, 1, TO1, EVENCAP}, - {0x019A, 0, TOUP, 163}, - {0x019C, 0, TOLO, 211}, - {0x019D, 0, TOLO, 213}, - {0x019E, 0, TOUP, 130}, - {0x019F, 0, TOLO, 214}, - {0x01A0, 5, TO1, EVENCAP}, - {0x01A6, 0, TOLO, 218}, - {0x01A7, 1, TO1, ODDCAP}, - {0x01A9, 0, TOLO, 218}, - {0x01AC, 1, TO1, EVENCAP}, - {0x01AE, 0, TOLO, 218}, - {0x01AF, 1, TO1, ODDCAP}, - {0x01B1, 1, TOLO, 217}, - {0x01B3, 3, TO1, ODDCAP}, - {0x01B7, 0, TOLO, 219}, - {0x01B8, 1, TO1, EVENCAP}, - {0x01BC, 1, TO1, EVENCAP}, - {0x01BF, 0, TOUP, 56}, - {0x01C4, 0, TOLO, 2}, - {0x01C5, 0, TOBOTH, 0}, - {0x01C6, 0, TOUP, -2}, - {0x01C7, 0, TOLO, 2}, - {0x01C8, 0, TOBOTH, 0}, - {0x01C9, 0, TOUP, -2}, - {0x01CA, 0, TOLO, 2}, - {0x01CB, 0, TOBOTH, 0}, - {0x01CC, 0, TOUP, -2}, - {0x01CD, 15, TO1, ODDCAP}, - {0x01DD, 0, TOUP, -79}, - {0x01DE, 17, TO1, EVENCAP}, - {0x01F1, 0, TOLO, 2}, - {0x01F2, 0, TOBOTH, 0}, - {0x01F3, 0, TOUP, -2}, - {0x01F4, 1, TO1, EVENCAP}, - {0x01F6, 0, TOLO, -97}, - {0x01F7, 0, TOLO, -56}, - {0x01F8, 39, TO1, EVENCAP}, - {0x0220, 0, TOLO, -130}, - {0x0222, 17, TO1, EVENCAP}, - {0x023A, 0, TOLO, 10795}, - {0x023B, 1, TO1, ODDCAP}, - {0x023D, 0, TOLO, -163}, - {0x023E, 0, TOLO, 10792}, - {0x023F, 1, TOUP, 10815}, - {0x0241, 1, TO1, ODDCAP}, - {0x0243, 0, TOLO, -195}, - {0x0244, 0, TOLO, 69}, - {0x0245, 0, TOLO, 71}, - {0x0246, 9, TO1, EVENCAP}, - {0x0250, 0, TOUP, 10783}, - {0x0251, 0, TOUP, 10780}, - {0x0252, 0, TOUP, 10782}, - {0x0253, 0, TOUP, -210}, - {0x0254, 0, TOUP, -206}, - {0x0256, 1, TOUP, -205}, - {0x0259, 0, TOUP, -202}, - {0x025B, 0, TOUP, -203}, - {0x025C, 0, TOUP, 42319}, - {0x0260, 0, TOUP, -205}, - {0x0261, 0, TOUP, 42315}, - {0x0263, 0, TOUP, -207}, - {0x0265, 0, TOUP, 42280}, - {0x0266, 0, TOUP, 42308}, - {0x0268, 0, TOUP, -209}, - {0x0269, 0, TOUP, -211}, - {0x026A, 0, TOUP, 42308}, - {0x026B, 0, TOUP, 10743}, - {0x026C, 0, TOUP, 42305}, - {0x026F, 0, TOUP, -211}, - {0x0271, 0, TOUP, 10749}, - {0x0272, 0, TOUP, -213}, - {0x0275, 0, TOUP, -214}, - {0x027D, 0, TOUP, 10727}, - {0x0280, 0, TOUP, -218}, - {0x0282, 0, TOUP, 42307}, - {0x0283, 0, TOUP, -218}, - {0x0287, 0, TOUP, 42282}, - {0x0288, 0, TOUP, -218}, - {0x0289, 0, TOUP, -69}, - {0x028A, 1, TOUP, -217}, - {0x028C, 0, TOUP, -71}, - {0x0292, 0, TOUP, -219}, - {0x029D, 0, TOUP, 42261}, - {0x029E, 0, TOUP, 42258}, - {0x0345, 0, TOUP, 84}, - {0x0370, 3, TO1, EVENCAP}, - {0x0376, 1, TO1, EVENCAP}, - {0x037B, 2, TOUP, 130}, - {0x037F, 0, TOLO, 116}, - {0x0386, 0, TOLO, 38}, - {0x0388, 2, TOLO, 37}, - {0x038C, 0, TOLO, 64}, - {0x038E, 1, TOLO, 63}, - {0x0391, 16, TOLO, 32}, - {0x03A3, 8, TOLO, 32}, - {0x03AC, 0, TOUP, -38}, - {0x03AD, 2, TOUP, -37}, - {0x03B1, 16, TOUP, -32}, - {0x03C2, 0, TOUP, -31}, - {0x03C3, 8, TOUP, -32}, - {0x03CC, 0, TOUP, -64}, - {0x03CD, 1, TOUP, -63}, - {0x03CF, 0, TOLO, 8}, - {0x03D0, 0, TOUP, -62}, - {0x03D1, 0, TOUP, -57}, - {0x03D5, 0, TOUP, -47}, - {0x03D6, 0, TOUP, -54}, - {0x03D7, 0, TOUP, -8}, - {0x03D8, 23, TO1, EVENCAP}, - {0x03F0, 0, TOUP, -86}, - {0x03F1, 0, TOUP, -80}, - {0x03F2, 0, TOUP, 7}, - {0x03F3, 0, TOUP, -116}, - {0x03F4, 0, TOLO, -60}, - {0x03F5, 0, TOUP, -96}, - {0x03F7, 1, TO1, ODDCAP}, - {0x03F9, 0, TOLO, -7}, - {0x03FA, 1, TO1, EVENCAP}, - {0x03FD, 2, TOLO, -130}, - {0x0400, 15, TOLO, 80}, - {0x0410, 31, TOLO, 32}, - {0x0430, 31, TOUP, -32}, - {0x0450, 15, TOUP, -80}, - {0x0460, 33, TO1, EVENCAP}, - {0x048A, 53, TO1, EVENCAP}, - {0x04C0, 0, TOLO, 15}, - {0x04C1, 13, TO1, ODDCAP}, - {0x04CF, 0, TOUP, -15}, - {0x04D0, 95, TO1, EVENCAP}, - {0x0531, 37, TOLO, 48}, - {0x0561, 37, TOUP, -48}, - {0x10A0, 37, TOLO, 7264}, - {0x10C7, 0, TOLO, 7264}, - {0x10CD, 0, TOLO, 7264}, - {0x10D0, 42, TOUP, 3008}, - {0x10FD, 2, TOUP, 3008}, - {0x13A0, 79, TOLO, 38864}, - {0x13F0, 5, TOLO, 8}, - {0x13F8, 5, TOUP, -8}, - {0x1C80, 0, TOUP, -6254}, - {0x1C81, 0, TOUP, -6253}, - {0x1C82, 0, TOUP, -6244}, - {0x1C83, 1, TOUP, -6242}, - {0x1C85, 0, TOUP, -6243}, - {0x1C86, 0, TOUP, -6236}, - {0x1C87, 0, TOUP, -6181}, - {0x1C88, 0, TOUP, 35266}, - {0x1C90, 42, TOLO, -3008}, - {0x1CBD, 2, TOLO, -3008}, - {0x1D79, 0, TOUP, 35332}, - {0x1D7D, 0, TOUP, 3814}, - {0x1D8E, 0, TOUP, 35384}, - {0x1E00, 149, TO1, EVENCAP}, - {0x1E9B, 0, TOUP, -59}, - {0x1E9E, 0, TOLO, -7615}, - {0x1EA0, 95, TO1, EVENCAP}, - {0x1F00, 7, TOUP, 8}, - {0x1F08, 7, TOLO, -8}, - {0x1F10, 5, TOUP, 8}, - {0x1F18, 5, TOLO, -8}, - {0x1F20, 7, TOUP, 8}, - {0x1F28, 7, TOLO, -8}, - {0x1F30, 7, TOUP, 8}, - {0x1F38, 7, TOLO, -8}, - {0x1F40, 5, TOUP, 8}, - {0x1F48, 5, TOLO, -8}, - {0x1F51, 0, TOUP, 8}, - {0x1F53, 0, TOUP, 8}, - {0x1F55, 0, TOUP, 8}, - {0x1F57, 0, TOUP, 8}, - {0x1F59, 0, TOLO, -8}, - {0x1F5B, 0, TOLO, -8}, - {0x1F5D, 0, TOLO, -8}, - {0x1F5F, 0, TOLO, -8}, - {0x1F60, 7, TOUP, 8}, - {0x1F68, 7, TOLO, -8}, - {0x1F70, 1, TOUP, 74}, - {0x1F72, 3, TOUP, 86}, - {0x1F76, 1, TOUP, 100}, - {0x1F78, 1, TOUP, 128}, - {0x1F7A, 1, TOUP, 112}, - {0x1F7C, 1, TOUP, 126}, - {0x1F80, 7, TOUP, 8}, - {0x1F88, 7, TOLO, -8}, - {0x1F90, 7, TOUP, 8}, - {0x1F98, 7, TOLO, -8}, - {0x1FA0, 7, TOUP, 8}, - {0x1FA8, 7, TOLO, -8}, - {0x1FB0, 1, TOUP, 8}, - {0x1FB3, 0, TOUP, 9}, - {0x1FB8, 1, TOLO, -8}, - {0x1FBA, 1, TOLO, -74}, - {0x1FBC, 0, TOLO, -9}, - {0x1FBE, 0, TOUP, -7205}, - {0x1FC3, 0, TOUP, 9}, - {0x1FC8, 3, TOLO, -86}, - {0x1FCC, 0, TOLO, -9}, - {0x1FD0, 1, TOUP, 8}, - {0x1FD8, 1, TOLO, -8}, - {0x1FDA, 1, TOLO, -100}, - {0x1FE0, 1, TOUP, 8}, - {0x1FE5, 0, TOUP, 7}, - {0x1FE8, 1, TOLO, -8}, - {0x1FEA, 1, TOLO, -112}, - {0x1FEC, 0, TOLO, -7}, - {0x1FF3, 0, TOUP, 9}, - {0x1FF8, 1, TOLO, -128}, - {0x1FFA, 1, TOLO, -126}, - {0x1FFC, 0, TOLO, -9}, - {0x2126, 0, TOLO, -7517}, - {0x212A, 0, TOLO, -8383}, - {0x212B, 0, TOLO, -8262}, - {0x2132, 0, TOLO, 28}, - {0x214E, 0, TOUP, -28}, - {0x2160, 15, TOLO, 16}, - {0x2170, 15, TOUP, -16}, - {0x2183, 1, TO1, ODDCAP}, - {0x24B6, 25, TOLO, 26}, - {0x24D0, 25, TOUP, -26}, - {0x2C00, 47, TOLO, 48}, - {0x2C30, 47, TOUP, -48}, - {0x2C60, 1, TO1, EVENCAP}, - {0x2C62, 0, TOLO, -10743}, - {0x2C63, 0, TOLO, -3814}, - {0x2C64, 0, TOLO, -10727}, - {0x2C65, 0, TOUP, -10795}, - {0x2C66, 0, TOUP, -10792}, - {0x2C67, 5, TO1, ODDCAP}, - {0x2C6D, 0, TOLO, -10780}, - {0x2C6E, 0, TOLO, -10749}, - {0x2C6F, 0, TOLO, -10783}, - {0x2C70, 0, TOLO, -10782}, - {0x2C72, 1, TO1, EVENCAP}, - {0x2C75, 1, TO1, ODDCAP}, - {0x2C7E, 1, TOLO, -10815}, - {0x2C80, 99, TO1, EVENCAP}, - {0x2CEB, 3, TO1, ODDCAP}, - {0x2CF2, 1, TO1, EVENCAP}, - {0x2D00, 37, TOUP, -7264}, - {0x2D27, 0, TOUP, -7264}, - {0x2D2D, 0, TOUP, -7264}, - {0xA640, 45, TO1, EVENCAP}, - {0xA680, 27, TO1, EVENCAP}, - {0xA722, 13, TO1, EVENCAP}, - {0xA732, 61, TO1, EVENCAP}, - {0xA779, 3, TO1, ODDCAP}, - {0xA77D, 0, TOLO, -35332}, - {0xA77E, 9, TO1, EVENCAP}, - {0xA78B, 1, TO1, ODDCAP}, - {0xA78D, 0, TOLO, -42280}, - {0xA790, 3, TO1, EVENCAP}, - {0xA794, 0, TOUP, 48}, - {0xA796, 19, TO1, EVENCAP}, - {0xA7AA, 0, TOLO, -42308}, - {0xA7AB, 0, TOLO, -42319}, - {0xA7AC, 0, TOLO, -42315}, - {0xA7AD, 0, TOLO, -42305}, - {0xA7AE, 0, TOLO, -42308}, - {0xA7B0, 0, TOLO, -42258}, - {0xA7B1, 0, TOLO, -42282}, - {0xA7B2, 0, TOLO, -42261}, - {0xA7B3, 0, TOLO, 928}, - {0xA7B4, 15, TO1, EVENCAP}, - {0xA7C4, 0, TOLO, -48}, - {0xA7C5, 0, TOLO, -42307}, - {0xA7C6, 0, TOLO, -35384}, - {0xA7C7, 3, TO1, ODDCAP}, - {0xA7D0, 1, TO1, EVENCAP}, - {0xA7D6, 3, TO1, EVENCAP}, - {0xA7F5, 1, TO1, ODDCAP}, - {0xAB53, 0, TOUP, -928}, - {0xAB70, 79, TOUP, -38864}, - {0xFF21, 25, TOLO, 32}, - {0xFF41, 25, TOUP, -32}, - {0x10400, 39, TOLO, 40}, - {0x10428, 39, TOUP, -40}, - {0x104B0, 35, TOLO, 40}, - {0x104D8, 35, TOUP, -40}, - {0x10570, 10, TOLO, 39}, - {0x1057C, 14, TOLO, 39}, - {0x1058C, 6, TOLO, 39}, - {0x10594, 1, TOLO, 39}, - {0x10597, 10, TOUP, -39}, - {0x105A3, 14, TOUP, -39}, - {0x105B3, 6, TOUP, -39}, - {0x105BB, 1, TOUP, -39}, - {0x10C80, 50, TOLO, 64}, - {0x10CC0, 50, TOUP, -64}, - {0x118A0, 31, TOLO, 32}, - {0x118C0, 31, TOUP, -32}, - {0x16E40, 31, TOLO, 32}, - {0x16E60, 31, TOUP, -32}, - {0x1E900, 33, TOLO, 34}, - {0x1E922, 33, TOUP, -34}, diff --git a/lib/ctype/categories.c b/lib/ctype/categories.c deleted file mode 100644 index a8de1f1..0000000 --- a/lib/ctype/categories.c +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include -#include "categories.h" - -struct _category { - enum category cat: 8; - uint_least32_t first: 24; - uint_least16_t delta; -} __attribute__((packed)); - -static const struct _category categories[] = { -#include "categories.t" -}; - -static enum category -bisearch_cat(wint_t ucs, const struct _category *table, int max) -{ - int min = 0; - int mid; - - if (ucs < table[0].first || ucs > table[max].first + table[max].delta) - return -1; - while (max >= min) - { - mid = (min + max) / 2; - if (ucs > table[mid].first + table[mid].delta) - min = mid + 1; - else if (ucs < table[mid].first) - max = mid - 1; - else - return table[mid].cat; - } - return -1; -} - -enum category category(wint_t ucs) -{ - return bisearch_cat(ucs, categories, - sizeof(categories) / sizeof(*categories) - 1); -} diff --git a/lib/ctype/categories.cat b/lib/ctype/categories.cat deleted file mode 100644 index cade60a..0000000 --- a/lib/ctype/categories.cat +++ /dev/null @@ -1,29 +0,0 @@ - CAT_Cc, - CAT_Cf, - CAT_Cs, - CAT_LC, - CAT_Ll, - CAT_Lm, - CAT_Lo, - CAT_Lt, - CAT_Lu, - CAT_Mc, - CAT_Me, - CAT_Mn, - CAT_Nd, - CAT_Nl, - CAT_No, - CAT_Pc, - CAT_Pd, - CAT_Pe, - CAT_Pf, - CAT_Pi, - CAT_Po, - CAT_Ps, - CAT_Sc, - CAT_Sk, - CAT_Sm, - CAT_So, - CAT_Zl, - CAT_Zp, - CAT_Zs, diff --git a/lib/ctype/categories.h b/lib/ctype/categories.h deleted file mode 100644 index 271038e..0000000 --- a/lib/ctype/categories.h +++ /dev/null @@ -1,7 +0,0 @@ -/* category data */ - -enum category { -#include "categories.cat" -}; - -extern enum category category(wint_t ucs); diff --git a/lib/ctype/categories.t b/lib/ctype/categories.t deleted file mode 100644 index 4fec4af..0000000 --- a/lib/ctype/categories.t +++ /dev/null @@ -1,2298 +0,0 @@ - {CAT_Cc, 0x0000, 31}, - {CAT_Zs, 0x0020, 0}, - {CAT_Po, 0x0021, 2}, - {CAT_Sc, 0x0024, 0}, - {CAT_Po, 0x0025, 2}, - {CAT_Ps, 0x0028, 0}, - {CAT_Pe, 0x0029, 0}, - {CAT_Po, 0x002A, 0}, - {CAT_Sm, 0x002B, 0}, - {CAT_Po, 0x002C, 0}, - {CAT_Pd, 0x002D, 0}, - {CAT_Po, 0x002E, 1}, - {CAT_Nd, 0x0030, 9}, - {CAT_Po, 0x003A, 1}, - {CAT_Sm, 0x003C, 2}, - {CAT_Po, 0x003F, 1}, - {CAT_LC, 0x0041, 25}, - {CAT_Ps, 0x005B, 0}, - {CAT_Po, 0x005C, 0}, - {CAT_Pe, 0x005D, 0}, - {CAT_Sk, 0x005E, 0}, - {CAT_Pc, 0x005F, 0}, - {CAT_Sk, 0x0060, 0}, - {CAT_LC, 0x0061, 25}, - {CAT_Ps, 0x007B, 0}, - {CAT_Sm, 0x007C, 0}, - {CAT_Pe, 0x007D, 0}, - {CAT_Sm, 0x007E, 0}, - {CAT_Cc, 0x007F, 32}, - {CAT_Zs, 0x00A0, 0}, - {CAT_Po, 0x00A1, 0}, - {CAT_Sc, 0x00A2, 3}, - {CAT_So, 0x00A6, 0}, - {CAT_Po, 0x00A7, 0}, - {CAT_Sk, 0x00A8, 0}, - {CAT_So, 0x00A9, 0}, - {CAT_Lo, 0x00AA, 0}, - {CAT_Pi, 0x00AB, 0}, - {CAT_Sm, 0x00AC, 0}, - {CAT_Cf, 0x00AD, 0}, - {CAT_So, 0x00AE, 0}, - {CAT_Sk, 0x00AF, 0}, - {CAT_So, 0x00B0, 0}, - {CAT_Sm, 0x00B1, 0}, - {CAT_No, 0x00B2, 1}, - {CAT_Sk, 0x00B4, 0}, - {CAT_LC, 0x00B5, 0}, - {CAT_Po, 0x00B6, 1}, - {CAT_Sk, 0x00B8, 0}, - {CAT_No, 0x00B9, 0}, - {CAT_Lo, 0x00BA, 0}, - {CAT_Pf, 0x00BB, 0}, - {CAT_No, 0x00BC, 2}, - {CAT_Po, 0x00BF, 0}, - {CAT_LC, 0x00C0, 22}, - {CAT_Sm, 0x00D7, 0}, - {CAT_LC, 0x00D8, 6}, - {CAT_Ll, 0x00DF, 0}, - {CAT_LC, 0x00E0, 22}, - {CAT_Sm, 0x00F7, 0}, - {CAT_LC, 0x00F8, 63}, - {CAT_Ll, 0x0138, 0}, - {CAT_LC, 0x0139, 15}, - {CAT_Ll, 0x0149, 0}, - {CAT_LC, 0x014A, 66}, - {CAT_Ll, 0x018D, 0}, - {CAT_LC, 0x018E, 12}, - {CAT_Ll, 0x019B, 0}, - {CAT_LC, 0x019C, 13}, - {CAT_Ll, 0x01AA, 1}, - {CAT_LC, 0x01AC, 13}, - {CAT_Ll, 0x01BA, 0}, - {CAT_Lo, 0x01BB, 0}, - {CAT_LC, 0x01BC, 1}, - {CAT_Ll, 0x01BE, 0}, - {CAT_LC, 0x01BF, 0}, - {CAT_Lo, 0x01C0, 3}, - {CAT_LC, 0x01C4, 0}, - {CAT_Lt, 0x01C5, 0}, - {CAT_LC, 0x01C6, 1}, - {CAT_Lt, 0x01C8, 0}, - {CAT_LC, 0x01C9, 1}, - {CAT_Lt, 0x01CB, 0}, - {CAT_LC, 0x01CC, 35}, - {CAT_Ll, 0x01F0, 0}, - {CAT_LC, 0x01F1, 0}, - {CAT_Lt, 0x01F2, 0}, - {CAT_LC, 0x01F3, 45}, - {CAT_Ll, 0x0221, 0}, - {CAT_LC, 0x0222, 17}, - {CAT_Ll, 0x0234, 5}, - {CAT_LC, 0x023A, 26}, - {CAT_Ll, 0x0255, 0}, - {CAT_LC, 0x0256, 1}, - {CAT_Ll, 0x0258, 0}, - {CAT_LC, 0x0259, 0}, - {CAT_Ll, 0x025A, 0}, - {CAT_LC, 0x025B, 1}, - {CAT_Ll, 0x025D, 2}, - {CAT_LC, 0x0260, 1}, - {CAT_Ll, 0x0262, 0}, - {CAT_LC, 0x0263, 0}, - {CAT_Ll, 0x0264, 0}, - {CAT_LC, 0x0265, 1}, - {CAT_Ll, 0x0267, 0}, - {CAT_LC, 0x0268, 4}, - {CAT_Ll, 0x026D, 1}, - {CAT_LC, 0x026F, 0}, - {CAT_Ll, 0x0270, 0}, - {CAT_LC, 0x0271, 1}, - {CAT_Ll, 0x0273, 1}, - {CAT_LC, 0x0275, 0}, - {CAT_Ll, 0x0276, 6}, - {CAT_LC, 0x027D, 0}, - {CAT_Ll, 0x027E, 1}, - {CAT_LC, 0x0280, 0}, - {CAT_Ll, 0x0281, 0}, - {CAT_LC, 0x0282, 1}, - {CAT_Ll, 0x0284, 2}, - {CAT_LC, 0x0287, 5}, - {CAT_Ll, 0x028D, 4}, - {CAT_LC, 0x0292, 0}, - {CAT_Ll, 0x0293, 0}, - {CAT_Lo, 0x0294, 0}, - {CAT_Ll, 0x0295, 7}, - {CAT_LC, 0x029D, 1}, - {CAT_Ll, 0x029F, 16}, - {CAT_Lm, 0x02B0, 17}, - {CAT_Sk, 0x02C2, 3}, - {CAT_Lm, 0x02C6, 11}, - {CAT_Sk, 0x02D2, 13}, - {CAT_Lm, 0x02E0, 4}, - {CAT_Sk, 0x02E5, 6}, - {CAT_Lm, 0x02EC, 0}, - {CAT_Sk, 0x02ED, 0}, - {CAT_Lm, 0x02EE, 0}, - {CAT_Sk, 0x02EF, 16}, - {CAT_Mn, 0x0300, 111}, - {CAT_LC, 0x0370, 3}, - {CAT_Lm, 0x0374, 0}, - {CAT_Sk, 0x0375, 0}, - {CAT_LC, 0x0376, 1}, - {CAT_Lm, 0x037A, 0}, - {CAT_LC, 0x037B, 2}, - {CAT_Po, 0x037E, 0}, - {CAT_LC, 0x037F, 0}, - {CAT_Sk, 0x0384, 1}, - {CAT_LC, 0x0386, 0}, - {CAT_Po, 0x0387, 0}, - {CAT_LC, 0x0388, 2}, - {CAT_LC, 0x038C, 0}, - {CAT_LC, 0x038E, 1}, - {CAT_Ll, 0x0390, 0}, - {CAT_LC, 0x0391, 16}, - {CAT_LC, 0x03A3, 12}, - {CAT_Ll, 0x03B0, 0}, - {CAT_LC, 0x03B1, 32}, - {CAT_Lu, 0x03D2, 2}, - {CAT_LC, 0x03D5, 32}, - {CAT_Sm, 0x03F6, 0}, - {CAT_LC, 0x03F7, 4}, - {CAT_Ll, 0x03FC, 0}, - {CAT_LC, 0x03FD, 132}, - {CAT_So, 0x0482, 0}, - {CAT_Mn, 0x0483, 4}, - {CAT_Me, 0x0488, 1}, - {CAT_LC, 0x048A, 165}, - {CAT_LC, 0x0531, 37}, - {CAT_Lm, 0x0559, 0}, - {CAT_Po, 0x055A, 5}, - {CAT_Ll, 0x0560, 0}, - {CAT_LC, 0x0561, 37}, - {CAT_Ll, 0x0587, 1}, - {CAT_Po, 0x0589, 0}, - {CAT_Pd, 0x058A, 0}, - {CAT_So, 0x058D, 1}, - {CAT_Sc, 0x058F, 0}, - {CAT_Mn, 0x0591, 44}, - {CAT_Pd, 0x05BE, 0}, - {CAT_Mn, 0x05BF, 0}, - {CAT_Po, 0x05C0, 0}, - {CAT_Mn, 0x05C1, 1}, - {CAT_Po, 0x05C3, 0}, - {CAT_Mn, 0x05C4, 1}, - {CAT_Po, 0x05C6, 0}, - {CAT_Mn, 0x05C7, 0}, - {CAT_Lo, 0x05D0, 26}, - {CAT_Lo, 0x05EF, 3}, - {CAT_Po, 0x05F3, 1}, - {CAT_Cf, 0x0600, 5}, - {CAT_Sm, 0x0606, 2}, - {CAT_Po, 0x0609, 1}, - {CAT_Sc, 0x060B, 0}, - {CAT_Po, 0x060C, 1}, - {CAT_So, 0x060E, 1}, - {CAT_Mn, 0x0610, 10}, - {CAT_Po, 0x061B, 0}, - {CAT_Cf, 0x061C, 0}, - {CAT_Po, 0x061D, 2}, - {CAT_Lo, 0x0620, 31}, - {CAT_Lm, 0x0640, 0}, - {CAT_Lo, 0x0641, 9}, - {CAT_Mn, 0x064B, 20}, - {CAT_Nd, 0x0660, 9}, - {CAT_Po, 0x066A, 3}, - {CAT_Lo, 0x066E, 1}, - {CAT_Mn, 0x0670, 0}, - {CAT_Lo, 0x0671, 98}, - {CAT_Po, 0x06D4, 0}, - {CAT_Lo, 0x06D5, 0}, - {CAT_Mn, 0x06D6, 6}, - {CAT_Cf, 0x06DD, 0}, - {CAT_So, 0x06DE, 0}, - {CAT_Mn, 0x06DF, 5}, - {CAT_Lm, 0x06E5, 1}, - {CAT_Mn, 0x06E7, 1}, - {CAT_So, 0x06E9, 0}, - {CAT_Mn, 0x06EA, 3}, - {CAT_Lo, 0x06EE, 1}, - {CAT_Nd, 0x06F0, 9}, - {CAT_Lo, 0x06FA, 2}, - {CAT_So, 0x06FD, 1}, - {CAT_Lo, 0x06FF, 0}, - {CAT_Po, 0x0700, 13}, - {CAT_Cf, 0x070F, 0}, - {CAT_Lo, 0x0710, 0}, - {CAT_Mn, 0x0711, 0}, - {CAT_Lo, 0x0712, 29}, - {CAT_Mn, 0x0730, 26}, - {CAT_Lo, 0x074D, 88}, - {CAT_Mn, 0x07A6, 10}, - {CAT_Lo, 0x07B1, 0}, - {CAT_Nd, 0x07C0, 9}, - {CAT_Lo, 0x07CA, 32}, - {CAT_Mn, 0x07EB, 8}, - {CAT_Lm, 0x07F4, 1}, - {CAT_So, 0x07F6, 0}, - {CAT_Po, 0x07F7, 2}, - {CAT_Lm, 0x07FA, 0}, - {CAT_Mn, 0x07FD, 0}, - {CAT_Sc, 0x07FE, 1}, - {CAT_Lo, 0x0800, 21}, - {CAT_Mn, 0x0816, 3}, - {CAT_Lm, 0x081A, 0}, - {CAT_Mn, 0x081B, 8}, - {CAT_Lm, 0x0824, 0}, - {CAT_Mn, 0x0825, 2}, - {CAT_Lm, 0x0828, 0}, - {CAT_Mn, 0x0829, 4}, - {CAT_Po, 0x0830, 14}, - {CAT_Lo, 0x0840, 24}, - {CAT_Mn, 0x0859, 2}, - {CAT_Po, 0x085E, 0}, - {CAT_Lo, 0x0860, 10}, - {CAT_Lo, 0x0870, 23}, - {CAT_Sk, 0x0888, 0}, - {CAT_Lo, 0x0889, 5}, - {CAT_Cf, 0x0890, 1}, - {CAT_Mn, 0x0898, 7}, - {CAT_Lo, 0x08A0, 40}, - {CAT_Lm, 0x08C9, 0}, - {CAT_Mn, 0x08CA, 23}, - {CAT_Cf, 0x08E2, 0}, - {CAT_Mn, 0x08E3, 31}, - {CAT_Mc, 0x0903, 0}, - {CAT_Lo, 0x0904, 53}, - {CAT_Mn, 0x093A, 0}, - {CAT_Mc, 0x093B, 0}, - {CAT_Mn, 0x093C, 0}, - {CAT_Lo, 0x093D, 0}, - {CAT_Mc, 0x093E, 2}, - {CAT_Mn, 0x0941, 7}, - {CAT_Mc, 0x0949, 3}, - {CAT_Mn, 0x094D, 0}, - {CAT_Mc, 0x094E, 1}, - {CAT_Lo, 0x0950, 0}, - {CAT_Mn, 0x0951, 6}, - {CAT_Lo, 0x0958, 9}, - {CAT_Mn, 0x0962, 1}, - {CAT_Po, 0x0964, 1}, - {CAT_Nd, 0x0966, 9}, - {CAT_Po, 0x0970, 0}, - {CAT_Lm, 0x0971, 0}, - {CAT_Lo, 0x0972, 14}, - {CAT_Mn, 0x0981, 0}, - {CAT_Mc, 0x0982, 1}, - {CAT_Lo, 0x0985, 7}, - {CAT_Lo, 0x098F, 1}, - {CAT_Lo, 0x0993, 21}, - {CAT_Lo, 0x09AA, 6}, - {CAT_Lo, 0x09B2, 0}, - {CAT_Lo, 0x09B6, 3}, - {CAT_Mn, 0x09BC, 0}, - {CAT_Lo, 0x09BD, 0}, - {CAT_Mc, 0x09BE, 2}, - {CAT_Mn, 0x09C1, 3}, - {CAT_Mc, 0x09C7, 1}, - {CAT_Mc, 0x09CB, 1}, - {CAT_Mn, 0x09CD, 0}, - {CAT_Lo, 0x09CE, 0}, - {CAT_Mc, 0x09D7, 0}, - {CAT_Lo, 0x09DC, 1}, - {CAT_Lo, 0x09DF, 2}, - {CAT_Mn, 0x09E2, 1}, - {CAT_Nd, 0x09E6, 9}, - {CAT_Lo, 0x09F0, 1}, - {CAT_Sc, 0x09F2, 1}, - {CAT_No, 0x09F4, 5}, - {CAT_So, 0x09FA, 0}, - {CAT_Sc, 0x09FB, 0}, - {CAT_Lo, 0x09FC, 0}, - {CAT_Po, 0x09FD, 0}, - {CAT_Mn, 0x09FE, 0}, - {CAT_Mn, 0x0A01, 1}, - {CAT_Mc, 0x0A03, 0}, - {CAT_Lo, 0x0A05, 5}, - {CAT_Lo, 0x0A0F, 1}, - {CAT_Lo, 0x0A13, 21}, - {CAT_Lo, 0x0A2A, 6}, - {CAT_Lo, 0x0A32, 1}, - {CAT_Lo, 0x0A35, 1}, - {CAT_Lo, 0x0A38, 1}, - {CAT_Mn, 0x0A3C, 0}, - {CAT_Mc, 0x0A3E, 2}, - {CAT_Mn, 0x0A41, 1}, - {CAT_Mn, 0x0A47, 1}, - {CAT_Mn, 0x0A4B, 2}, - {CAT_Mn, 0x0A51, 0}, - {CAT_Lo, 0x0A59, 3}, - {CAT_Lo, 0x0A5E, 0}, - {CAT_Nd, 0x0A66, 9}, - {CAT_Mn, 0x0A70, 1}, - {CAT_Lo, 0x0A72, 2}, - {CAT_Mn, 0x0A75, 0}, - {CAT_Po, 0x0A76, 0}, - {CAT_Mn, 0x0A81, 1}, - {CAT_Mc, 0x0A83, 0}, - {CAT_Lo, 0x0A85, 8}, - {CAT_Lo, 0x0A8F, 2}, - {CAT_Lo, 0x0A93, 21}, - {CAT_Lo, 0x0AAA, 6}, - {CAT_Lo, 0x0AB2, 1}, - {CAT_Lo, 0x0AB5, 4}, - {CAT_Mn, 0x0ABC, 0}, - {CAT_Lo, 0x0ABD, 0}, - {CAT_Mc, 0x0ABE, 2}, - {CAT_Mn, 0x0AC1, 4}, - {CAT_Mn, 0x0AC7, 1}, - {CAT_Mc, 0x0AC9, 0}, - {CAT_Mc, 0x0ACB, 1}, - {CAT_Mn, 0x0ACD, 0}, - {CAT_Lo, 0x0AD0, 0}, - {CAT_Lo, 0x0AE0, 1}, - {CAT_Mn, 0x0AE2, 1}, - {CAT_Nd, 0x0AE6, 9}, - {CAT_Po, 0x0AF0, 0}, - {CAT_Sc, 0x0AF1, 0}, - {CAT_Lo, 0x0AF9, 0}, - {CAT_Mn, 0x0AFA, 5}, - {CAT_Mn, 0x0B01, 0}, - {CAT_Mc, 0x0B02, 1}, - {CAT_Lo, 0x0B05, 7}, - {CAT_Lo, 0x0B0F, 1}, - {CAT_Lo, 0x0B13, 21}, - {CAT_Lo, 0x0B2A, 6}, - {CAT_Lo, 0x0B32, 1}, - {CAT_Lo, 0x0B35, 4}, - {CAT_Mn, 0x0B3C, 0}, - {CAT_Lo, 0x0B3D, 0}, - {CAT_Mc, 0x0B3E, 0}, - {CAT_Mn, 0x0B3F, 0}, - {CAT_Mc, 0x0B40, 0}, - {CAT_Mn, 0x0B41, 3}, - {CAT_Mc, 0x0B47, 1}, - {CAT_Mc, 0x0B4B, 1}, - {CAT_Mn, 0x0B4D, 0}, - {CAT_Mn, 0x0B55, 1}, - {CAT_Mc, 0x0B57, 0}, - {CAT_Lo, 0x0B5C, 1}, - {CAT_Lo, 0x0B5F, 2}, - {CAT_Mn, 0x0B62, 1}, - {CAT_Nd, 0x0B66, 9}, - {CAT_So, 0x0B70, 0}, - {CAT_Lo, 0x0B71, 0}, - {CAT_No, 0x0B72, 5}, - {CAT_Mn, 0x0B82, 0}, - {CAT_Lo, 0x0B83, 0}, - {CAT_Lo, 0x0B85, 5}, - {CAT_Lo, 0x0B8E, 2}, - {CAT_Lo, 0x0B92, 3}, - {CAT_Lo, 0x0B99, 1}, - {CAT_Lo, 0x0B9C, 0}, - {CAT_Lo, 0x0B9E, 1}, - {CAT_Lo, 0x0BA3, 1}, - {CAT_Lo, 0x0BA8, 2}, - {CAT_Lo, 0x0BAE, 11}, - {CAT_Mc, 0x0BBE, 1}, - {CAT_Mn, 0x0BC0, 0}, - {CAT_Mc, 0x0BC1, 1}, - {CAT_Mc, 0x0BC6, 2}, - {CAT_Mc, 0x0BCA, 2}, - {CAT_Mn, 0x0BCD, 0}, - {CAT_Lo, 0x0BD0, 0}, - {CAT_Mc, 0x0BD7, 0}, - {CAT_Nd, 0x0BE6, 9}, - {CAT_No, 0x0BF0, 2}, - {CAT_So, 0x0BF3, 5}, - {CAT_Sc, 0x0BF9, 0}, - {CAT_So, 0x0BFA, 0}, - {CAT_Mn, 0x0C00, 0}, - {CAT_Mc, 0x0C01, 2}, - {CAT_Mn, 0x0C04, 0}, - {CAT_Lo, 0x0C05, 7}, - {CAT_Lo, 0x0C0E, 2}, - {CAT_Lo, 0x0C12, 22}, - {CAT_Lo, 0x0C2A, 15}, - {CAT_Mn, 0x0C3C, 0}, - {CAT_Lo, 0x0C3D, 0}, - {CAT_Mn, 0x0C3E, 2}, - {CAT_Mc, 0x0C41, 3}, - {CAT_Mn, 0x0C46, 2}, - {CAT_Mn, 0x0C4A, 3}, - {CAT_Mn, 0x0C55, 1}, - {CAT_Lo, 0x0C58, 2}, - {CAT_Lo, 0x0C5D, 0}, - {CAT_Lo, 0x0C60, 1}, - {CAT_Mn, 0x0C62, 1}, - {CAT_Nd, 0x0C66, 9}, - {CAT_Po, 0x0C77, 0}, - {CAT_No, 0x0C78, 6}, - {CAT_So, 0x0C7F, 0}, - {CAT_Lo, 0x0C80, 0}, - {CAT_Mn, 0x0C81, 0}, - {CAT_Mc, 0x0C82, 1}, - {CAT_Po, 0x0C84, 0}, - {CAT_Lo, 0x0C85, 7}, - {CAT_Lo, 0x0C8E, 2}, - {CAT_Lo, 0x0C92, 22}, - {CAT_Lo, 0x0CAA, 9}, - {CAT_Lo, 0x0CB5, 4}, - {CAT_Mn, 0x0CBC, 0}, - {CAT_Lo, 0x0CBD, 0}, - {CAT_Mc, 0x0CBE, 0}, - {CAT_Mn, 0x0CBF, 0}, - {CAT_Mc, 0x0CC0, 4}, - {CAT_Mn, 0x0CC6, 0}, - {CAT_Mc, 0x0CC7, 1}, - {CAT_Mc, 0x0CCA, 1}, - {CAT_Mn, 0x0CCC, 1}, - {CAT_Mc, 0x0CD5, 1}, - {CAT_Lo, 0x0CDD, 1}, - {CAT_Lo, 0x0CE0, 1}, - {CAT_Mn, 0x0CE2, 1}, - {CAT_Nd, 0x0CE6, 9}, - {CAT_Lo, 0x0CF1, 1}, - {CAT_Mc, 0x0CF3, 0}, - {CAT_Mn, 0x0D00, 1}, - {CAT_Mc, 0x0D02, 1}, - {CAT_Lo, 0x0D04, 8}, - {CAT_Lo, 0x0D0E, 2}, - {CAT_Lo, 0x0D12, 40}, - {CAT_Mn, 0x0D3B, 1}, - {CAT_Lo, 0x0D3D, 0}, - {CAT_Mc, 0x0D3E, 2}, - {CAT_Mn, 0x0D41, 3}, - {CAT_Mc, 0x0D46, 2}, - {CAT_Mc, 0x0D4A, 2}, - {CAT_Mn, 0x0D4D, 0}, - {CAT_Lo, 0x0D4E, 0}, - {CAT_So, 0x0D4F, 0}, - {CAT_Lo, 0x0D54, 2}, - {CAT_Mc, 0x0D57, 0}, - {CAT_No, 0x0D58, 6}, - {CAT_Lo, 0x0D5F, 2}, - {CAT_Mn, 0x0D62, 1}, - {CAT_Nd, 0x0D66, 9}, - {CAT_No, 0x0D70, 8}, - {CAT_So, 0x0D79, 0}, - {CAT_Lo, 0x0D7A, 5}, - {CAT_Mn, 0x0D81, 0}, - {CAT_Mc, 0x0D82, 1}, - {CAT_Lo, 0x0D85, 17}, - {CAT_Lo, 0x0D9A, 23}, - {CAT_Lo, 0x0DB3, 8}, - {CAT_Lo, 0x0DBD, 0}, - {CAT_Lo, 0x0DC0, 6}, - {CAT_Mn, 0x0DCA, 0}, - {CAT_Mc, 0x0DCF, 2}, - {CAT_Mn, 0x0DD2, 2}, - {CAT_Mn, 0x0DD6, 0}, - {CAT_Mc, 0x0DD8, 7}, - {CAT_Nd, 0x0DE6, 9}, - {CAT_Mc, 0x0DF2, 1}, - {CAT_Po, 0x0DF4, 0}, - {CAT_Lo, 0x0E01, 47}, - {CAT_Mn, 0x0E31, 0}, - {CAT_Lo, 0x0E32, 1}, - {CAT_Mn, 0x0E34, 6}, - {CAT_Sc, 0x0E3F, 0}, - {CAT_Lo, 0x0E40, 5}, - {CAT_Lm, 0x0E46, 0}, - {CAT_Mn, 0x0E47, 7}, - {CAT_Po, 0x0E4F, 0}, - {CAT_Nd, 0x0E50, 9}, - {CAT_Po, 0x0E5A, 1}, - {CAT_Lo, 0x0E81, 1}, - {CAT_Lo, 0x0E84, 0}, - {CAT_Lo, 0x0E86, 4}, - {CAT_Lo, 0x0E8C, 23}, - {CAT_Lo, 0x0EA5, 0}, - {CAT_Lo, 0x0EA7, 9}, - {CAT_Mn, 0x0EB1, 0}, - {CAT_Lo, 0x0EB2, 1}, - {CAT_Mn, 0x0EB4, 8}, - {CAT_Lo, 0x0EBD, 0}, - {CAT_Lo, 0x0EC0, 4}, - {CAT_Lm, 0x0EC6, 0}, - {CAT_Mn, 0x0EC8, 6}, - {CAT_Nd, 0x0ED0, 9}, - {CAT_Lo, 0x0EDC, 3}, - {CAT_Lo, 0x0F00, 0}, - {CAT_So, 0x0F01, 2}, - {CAT_Po, 0x0F04, 14}, - {CAT_So, 0x0F13, 0}, - {CAT_Po, 0x0F14, 0}, - {CAT_So, 0x0F15, 2}, - {CAT_Mn, 0x0F18, 1}, - {CAT_So, 0x0F1A, 5}, - {CAT_Nd, 0x0F20, 9}, - {CAT_No, 0x0F2A, 9}, - {CAT_So, 0x0F34, 0}, - {CAT_Mn, 0x0F35, 0}, - {CAT_So, 0x0F36, 0}, - {CAT_Mn, 0x0F37, 0}, - {CAT_So, 0x0F38, 0}, - {CAT_Mn, 0x0F39, 0}, - {CAT_Ps, 0x0F3A, 0}, - {CAT_Pe, 0x0F3B, 0}, - {CAT_Ps, 0x0F3C, 0}, - {CAT_Pe, 0x0F3D, 0}, - {CAT_Mc, 0x0F3E, 1}, - {CAT_Lo, 0x0F40, 7}, - {CAT_Lo, 0x0F49, 35}, - {CAT_Mn, 0x0F71, 13}, - {CAT_Mc, 0x0F7F, 0}, - {CAT_Mn, 0x0F80, 4}, - {CAT_Po, 0x0F85, 0}, - {CAT_Mn, 0x0F86, 1}, - {CAT_Lo, 0x0F88, 4}, - {CAT_Mn, 0x0F8D, 10}, - {CAT_Mn, 0x0F99, 35}, - {CAT_So, 0x0FBE, 7}, - {CAT_Mn, 0x0FC6, 0}, - {CAT_So, 0x0FC7, 5}, - {CAT_So, 0x0FCE, 1}, - {CAT_Po, 0x0FD0, 4}, - {CAT_So, 0x0FD5, 3}, - {CAT_Po, 0x0FD9, 1}, - {CAT_Lo, 0x1000, 42}, - {CAT_Mc, 0x102B, 1}, - {CAT_Mn, 0x102D, 3}, - {CAT_Mc, 0x1031, 0}, - {CAT_Mn, 0x1032, 5}, - {CAT_Mc, 0x1038, 0}, - {CAT_Mn, 0x1039, 1}, - {CAT_Mc, 0x103B, 1}, - {CAT_Mn, 0x103D, 1}, - {CAT_Lo, 0x103F, 0}, - {CAT_Nd, 0x1040, 9}, - {CAT_Po, 0x104A, 5}, - {CAT_Lo, 0x1050, 5}, - {CAT_Mc, 0x1056, 1}, - {CAT_Mn, 0x1058, 1}, - {CAT_Lo, 0x105A, 3}, - {CAT_Mn, 0x105E, 2}, - {CAT_Lo, 0x1061, 0}, - {CAT_Mc, 0x1062, 2}, - {CAT_Lo, 0x1065, 1}, - {CAT_Mc, 0x1067, 6}, - {CAT_Lo, 0x106E, 2}, - {CAT_Mn, 0x1071, 3}, - {CAT_Lo, 0x1075, 12}, - {CAT_Mn, 0x1082, 0}, - {CAT_Mc, 0x1083, 1}, - {CAT_Mn, 0x1085, 1}, - {CAT_Mc, 0x1087, 5}, - {CAT_Mn, 0x108D, 0}, - {CAT_Lo, 0x108E, 0}, - {CAT_Mc, 0x108F, 0}, - {CAT_Nd, 0x1090, 9}, - {CAT_Mc, 0x109A, 2}, - {CAT_Mn, 0x109D, 0}, - {CAT_So, 0x109E, 1}, - {CAT_LC, 0x10A0, 37}, - {CAT_LC, 0x10C7, 0}, - {CAT_LC, 0x10CD, 0}, - {CAT_LC, 0x10D0, 42}, - {CAT_Po, 0x10FB, 0}, - {CAT_Lm, 0x10FC, 0}, - {CAT_LC, 0x10FD, 2}, - {CAT_Lo, 0x1100, 328}, - {CAT_Lo, 0x124A, 3}, - {CAT_Lo, 0x1250, 6}, - {CAT_Lo, 0x1258, 0}, - {CAT_Lo, 0x125A, 3}, - {CAT_Lo, 0x1260, 40}, - {CAT_Lo, 0x128A, 3}, - {CAT_Lo, 0x1290, 32}, - {CAT_Lo, 0x12B2, 3}, - {CAT_Lo, 0x12B8, 6}, - {CAT_Lo, 0x12C0, 0}, - {CAT_Lo, 0x12C2, 3}, - {CAT_Lo, 0x12C8, 14}, - {CAT_Lo, 0x12D8, 56}, - {CAT_Lo, 0x1312, 3}, - {CAT_Lo, 0x1318, 66}, - {CAT_Mn, 0x135D, 2}, - {CAT_Po, 0x1360, 8}, - {CAT_No, 0x1369, 19}, - {CAT_Lo, 0x1380, 15}, - {CAT_So, 0x1390, 9}, - {CAT_LC, 0x13A0, 85}, - {CAT_LC, 0x13F8, 5}, - {CAT_Pd, 0x1400, 0}, - {CAT_Lo, 0x1401, 619}, - {CAT_So, 0x166D, 0}, - {CAT_Po, 0x166E, 0}, - {CAT_Lo, 0x166F, 16}, - {CAT_Zs, 0x1680, 0}, - {CAT_Lo, 0x1681, 25}, - {CAT_Ps, 0x169B, 0}, - {CAT_Pe, 0x169C, 0}, - {CAT_Lo, 0x16A0, 74}, - {CAT_Po, 0x16EB, 2}, - {CAT_Nl, 0x16EE, 2}, - {CAT_Lo, 0x16F1, 7}, - {CAT_Lo, 0x1700, 17}, - {CAT_Mn, 0x1712, 2}, - {CAT_Mc, 0x1715, 0}, - {CAT_Lo, 0x171F, 18}, - {CAT_Mn, 0x1732, 1}, - {CAT_Mc, 0x1734, 0}, - {CAT_Po, 0x1735, 1}, - {CAT_Lo, 0x1740, 17}, - {CAT_Mn, 0x1752, 1}, - {CAT_Lo, 0x1760, 12}, - {CAT_Lo, 0x176E, 2}, - {CAT_Mn, 0x1772, 1}, - {CAT_Lo, 0x1780, 51}, - {CAT_Mn, 0x17B4, 1}, - {CAT_Mc, 0x17B6, 0}, - {CAT_Mn, 0x17B7, 6}, - {CAT_Mc, 0x17BE, 7}, - {CAT_Mn, 0x17C6, 0}, - {CAT_Mc, 0x17C7, 1}, - {CAT_Mn, 0x17C9, 10}, - {CAT_Po, 0x17D4, 2}, - {CAT_Lm, 0x17D7, 0}, - {CAT_Po, 0x17D8, 2}, - {CAT_Sc, 0x17DB, 0}, - {CAT_Lo, 0x17DC, 0}, - {CAT_Mn, 0x17DD, 0}, - {CAT_Nd, 0x17E0, 9}, - {CAT_No, 0x17F0, 9}, - {CAT_Po, 0x1800, 5}, - {CAT_Pd, 0x1806, 0}, - {CAT_Po, 0x1807, 3}, - {CAT_Mn, 0x180B, 2}, - {CAT_Cf, 0x180E, 0}, - {CAT_Mn, 0x180F, 0}, - {CAT_Nd, 0x1810, 9}, - {CAT_Lo, 0x1820, 34}, - {CAT_Lm, 0x1843, 0}, - {CAT_Lo, 0x1844, 52}, - {CAT_Lo, 0x1880, 4}, - {CAT_Mn, 0x1885, 1}, - {CAT_Lo, 0x1887, 33}, - {CAT_Mn, 0x18A9, 0}, - {CAT_Lo, 0x18AA, 0}, - {CAT_Lo, 0x18B0, 69}, - {CAT_Lo, 0x1900, 30}, - {CAT_Mn, 0x1920, 2}, - {CAT_Mc, 0x1923, 3}, - {CAT_Mn, 0x1927, 1}, - {CAT_Mc, 0x1929, 2}, - {CAT_Mc, 0x1930, 1}, - {CAT_Mn, 0x1932, 0}, - {CAT_Mc, 0x1933, 5}, - {CAT_Mn, 0x1939, 2}, - {CAT_So, 0x1940, 0}, - {CAT_Po, 0x1944, 1}, - {CAT_Nd, 0x1946, 9}, - {CAT_Lo, 0x1950, 29}, - {CAT_Lo, 0x1970, 4}, - {CAT_Lo, 0x1980, 43}, - {CAT_Lo, 0x19B0, 25}, - {CAT_Nd, 0x19D0, 9}, - {CAT_No, 0x19DA, 0}, - {CAT_So, 0x19DE, 33}, - {CAT_Lo, 0x1A00, 22}, - {CAT_Mn, 0x1A17, 1}, - {CAT_Mc, 0x1A19, 1}, - {CAT_Mn, 0x1A1B, 0}, - {CAT_Po, 0x1A1E, 1}, - {CAT_Lo, 0x1A20, 52}, - {CAT_Mc, 0x1A55, 0}, - {CAT_Mn, 0x1A56, 0}, - {CAT_Mc, 0x1A57, 0}, - {CAT_Mn, 0x1A58, 6}, - {CAT_Mn, 0x1A60, 0}, - {CAT_Mc, 0x1A61, 0}, - {CAT_Mn, 0x1A62, 0}, - {CAT_Mc, 0x1A63, 1}, - {CAT_Mn, 0x1A65, 7}, - {CAT_Mc, 0x1A6D, 5}, - {CAT_Mn, 0x1A73, 9}, - {CAT_Mn, 0x1A7F, 0}, - {CAT_Nd, 0x1A80, 9}, - {CAT_Nd, 0x1A90, 9}, - {CAT_Po, 0x1AA0, 6}, - {CAT_Lm, 0x1AA7, 0}, - {CAT_Po, 0x1AA8, 5}, - {CAT_Mn, 0x1AB0, 13}, - {CAT_Me, 0x1ABE, 0}, - {CAT_Mn, 0x1ABF, 15}, - {CAT_Mn, 0x1B00, 3}, - {CAT_Mc, 0x1B04, 0}, - {CAT_Lo, 0x1B05, 46}, - {CAT_Mn, 0x1B34, 0}, - {CAT_Mc, 0x1B35, 0}, - {CAT_Mn, 0x1B36, 4}, - {CAT_Mc, 0x1B3B, 0}, - {CAT_Mn, 0x1B3C, 0}, - {CAT_Mc, 0x1B3D, 4}, - {CAT_Mn, 0x1B42, 0}, - {CAT_Mc, 0x1B43, 1}, - {CAT_Lo, 0x1B45, 7}, - {CAT_Nd, 0x1B50, 9}, - {CAT_Po, 0x1B5A, 6}, - {CAT_So, 0x1B61, 9}, - {CAT_Mn, 0x1B6B, 8}, - {CAT_So, 0x1B74, 8}, - {CAT_Po, 0x1B7D, 1}, - {CAT_Mn, 0x1B80, 1}, - {CAT_Mc, 0x1B82, 0}, - {CAT_Lo, 0x1B83, 29}, - {CAT_Mc, 0x1BA1, 0}, - {CAT_Mn, 0x1BA2, 3}, - {CAT_Mc, 0x1BA6, 1}, - {CAT_Mn, 0x1BA8, 1}, - {CAT_Mc, 0x1BAA, 0}, - {CAT_Mn, 0x1BAB, 2}, - {CAT_Lo, 0x1BAE, 1}, - {CAT_Nd, 0x1BB0, 9}, - {CAT_Lo, 0x1BBA, 43}, - {CAT_Mn, 0x1BE6, 0}, - {CAT_Mc, 0x1BE7, 0}, - {CAT_Mn, 0x1BE8, 1}, - {CAT_Mc, 0x1BEA, 2}, - {CAT_Mn, 0x1BED, 0}, - {CAT_Mc, 0x1BEE, 0}, - {CAT_Mn, 0x1BEF, 2}, - {CAT_Mc, 0x1BF2, 1}, - {CAT_Po, 0x1BFC, 3}, - {CAT_Lo, 0x1C00, 35}, - {CAT_Mc, 0x1C24, 7}, - {CAT_Mn, 0x1C2C, 7}, - {CAT_Mc, 0x1C34, 1}, - {CAT_Mn, 0x1C36, 1}, - {CAT_Po, 0x1C3B, 4}, - {CAT_Nd, 0x1C40, 9}, - {CAT_Lo, 0x1C4D, 2}, - {CAT_Nd, 0x1C50, 9}, - {CAT_Lo, 0x1C5A, 29}, - {CAT_Lm, 0x1C78, 5}, - {CAT_Po, 0x1C7E, 1}, - {CAT_LC, 0x1C80, 8}, - {CAT_LC, 0x1C90, 42}, - {CAT_LC, 0x1CBD, 2}, - {CAT_Po, 0x1CC0, 7}, - {CAT_Mn, 0x1CD0, 2}, - {CAT_Po, 0x1CD3, 0}, - {CAT_Mn, 0x1CD4, 12}, - {CAT_Mc, 0x1CE1, 0}, - {CAT_Mn, 0x1CE2, 6}, - {CAT_Lo, 0x1CE9, 3}, - {CAT_Mn, 0x1CED, 0}, - {CAT_Lo, 0x1CEE, 5}, - {CAT_Mn, 0x1CF4, 0}, - {CAT_Lo, 0x1CF5, 1}, - {CAT_Mc, 0x1CF7, 0}, - {CAT_Mn, 0x1CF8, 1}, - {CAT_Lo, 0x1CFA, 0}, - {CAT_Ll, 0x1D00, 43}, - {CAT_Lm, 0x1D2C, 62}, - {CAT_Ll, 0x1D6B, 12}, - {CAT_Lm, 0x1D78, 0}, - {CAT_LC, 0x1D79, 0}, - {CAT_Ll, 0x1D7A, 2}, - {CAT_LC, 0x1D7D, 0}, - {CAT_Ll, 0x1D7E, 15}, - {CAT_LC, 0x1D8E, 0}, - {CAT_Ll, 0x1D8F, 11}, - {CAT_Lm, 0x1D9B, 36}, - {CAT_Mn, 0x1DC0, 63}, - {CAT_LC, 0x1E00, 149}, - {CAT_Ll, 0x1E96, 4}, - {CAT_LC, 0x1E9B, 0}, - {CAT_Ll, 0x1E9C, 1}, - {CAT_LC, 0x1E9E, 0}, - {CAT_Ll, 0x1E9F, 0}, - {CAT_LC, 0x1EA0, 117}, - {CAT_LC, 0x1F18, 5}, - {CAT_LC, 0x1F20, 37}, - {CAT_LC, 0x1F48, 5}, - {CAT_Ll, 0x1F50, 0}, - {CAT_LC, 0x1F51, 0}, - {CAT_Ll, 0x1F52, 0}, - {CAT_LC, 0x1F53, 0}, - {CAT_Ll, 0x1F54, 0}, - {CAT_LC, 0x1F55, 0}, - {CAT_Ll, 0x1F56, 0}, - {CAT_LC, 0x1F57, 0}, - {CAT_LC, 0x1F59, 0}, - {CAT_LC, 0x1F5B, 0}, - {CAT_LC, 0x1F5D, 0}, - {CAT_LC, 0x1F5F, 30}, - {CAT_LC, 0x1F80, 7}, - {CAT_Lt, 0x1F88, 7}, - {CAT_LC, 0x1F90, 7}, - {CAT_Lt, 0x1F98, 7}, - {CAT_LC, 0x1FA0, 7}, - {CAT_Lt, 0x1FA8, 7}, - {CAT_LC, 0x1FB0, 1}, - {CAT_Ll, 0x1FB2, 0}, - {CAT_LC, 0x1FB3, 0}, - {CAT_Ll, 0x1FB4, 0}, - {CAT_Ll, 0x1FB6, 1}, - {CAT_LC, 0x1FB8, 3}, - {CAT_Lt, 0x1FBC, 0}, - {CAT_Sk, 0x1FBD, 0}, - {CAT_LC, 0x1FBE, 0}, - {CAT_Sk, 0x1FBF, 2}, - {CAT_Ll, 0x1FC2, 0}, - {CAT_LC, 0x1FC3, 0}, - {CAT_Ll, 0x1FC4, 0}, - {CAT_Ll, 0x1FC6, 1}, - {CAT_LC, 0x1FC8, 3}, - {CAT_Lt, 0x1FCC, 0}, - {CAT_Sk, 0x1FCD, 2}, - {CAT_LC, 0x1FD0, 1}, - {CAT_Ll, 0x1FD2, 1}, - {CAT_Ll, 0x1FD6, 1}, - {CAT_LC, 0x1FD8, 3}, - {CAT_Sk, 0x1FDD, 2}, - {CAT_LC, 0x1FE0, 1}, - {CAT_Ll, 0x1FE2, 2}, - {CAT_LC, 0x1FE5, 0}, - {CAT_Ll, 0x1FE6, 1}, - {CAT_LC, 0x1FE8, 4}, - {CAT_Sk, 0x1FED, 2}, - {CAT_Ll, 0x1FF2, 0}, - {CAT_LC, 0x1FF3, 0}, - {CAT_Ll, 0x1FF4, 0}, - {CAT_Ll, 0x1FF6, 1}, - {CAT_LC, 0x1FF8, 3}, - {CAT_Lt, 0x1FFC, 0}, - {CAT_Sk, 0x1FFD, 1}, - {CAT_Zs, 0x2000, 10}, - {CAT_Cf, 0x200B, 4}, - {CAT_Pd, 0x2010, 5}, - {CAT_Po, 0x2016, 1}, - {CAT_Pi, 0x2018, 0}, - {CAT_Pf, 0x2019, 0}, - {CAT_Ps, 0x201A, 0}, - {CAT_Pi, 0x201B, 1}, - {CAT_Pf, 0x201D, 0}, - {CAT_Ps, 0x201E, 0}, - {CAT_Pi, 0x201F, 0}, - {CAT_Po, 0x2020, 7}, - {CAT_Zl, 0x2028, 0}, - {CAT_Zp, 0x2029, 0}, - {CAT_Cf, 0x202A, 4}, - {CAT_Zs, 0x202F, 0}, - {CAT_Po, 0x2030, 8}, - {CAT_Pi, 0x2039, 0}, - {CAT_Pf, 0x203A, 0}, - {CAT_Po, 0x203B, 3}, - {CAT_Pc, 0x203F, 1}, - {CAT_Po, 0x2041, 2}, - {CAT_Sm, 0x2044, 0}, - {CAT_Ps, 0x2045, 0}, - {CAT_Pe, 0x2046, 0}, - {CAT_Po, 0x2047, 10}, - {CAT_Sm, 0x2052, 0}, - {CAT_Po, 0x2053, 0}, - {CAT_Pc, 0x2054, 0}, - {CAT_Po, 0x2055, 9}, - {CAT_Zs, 0x205F, 0}, - {CAT_Cf, 0x2060, 4}, - {CAT_Cf, 0x2066, 9}, - {CAT_No, 0x2070, 0}, - {CAT_Lm, 0x2071, 0}, - {CAT_No, 0x2074, 5}, - {CAT_Sm, 0x207A, 2}, - {CAT_Ps, 0x207D, 0}, - {CAT_Pe, 0x207E, 0}, - {CAT_Lm, 0x207F, 0}, - {CAT_No, 0x2080, 9}, - {CAT_Sm, 0x208A, 2}, - {CAT_Ps, 0x208D, 0}, - {CAT_Pe, 0x208E, 0}, - {CAT_Lm, 0x2090, 12}, - {CAT_Sc, 0x20A0, 32}, - {CAT_Mn, 0x20D0, 12}, - {CAT_Me, 0x20DD, 3}, - {CAT_Mn, 0x20E1, 0}, - {CAT_Me, 0x20E2, 2}, - {CAT_Mn, 0x20E5, 11}, - {CAT_So, 0x2100, 1}, - {CAT_Lu, 0x2102, 0}, - {CAT_So, 0x2103, 3}, - {CAT_Lu, 0x2107, 0}, - {CAT_So, 0x2108, 1}, - {CAT_Ll, 0x210A, 0}, - {CAT_Lu, 0x210B, 2}, - {CAT_Ll, 0x210E, 1}, - {CAT_Lu, 0x2110, 2}, - {CAT_Ll, 0x2113, 0}, - {CAT_So, 0x2114, 0}, - {CAT_Lu, 0x2115, 0}, - {CAT_So, 0x2116, 1}, - {CAT_Sm, 0x2118, 0}, - {CAT_Lu, 0x2119, 4}, - {CAT_So, 0x211E, 5}, - {CAT_Lu, 0x2124, 0}, - {CAT_So, 0x2125, 0}, - {CAT_LC, 0x2126, 0}, - {CAT_So, 0x2127, 0}, - {CAT_Lu, 0x2128, 0}, - {CAT_So, 0x2129, 0}, - {CAT_LC, 0x212A, 1}, - {CAT_Lu, 0x212C, 1}, - {CAT_So, 0x212E, 0}, - {CAT_Ll, 0x212F, 0}, - {CAT_Lu, 0x2130, 1}, - {CAT_LC, 0x2132, 0}, - {CAT_Lu, 0x2133, 0}, - {CAT_Ll, 0x2134, 0}, - {CAT_Lo, 0x2135, 3}, - {CAT_Ll, 0x2139, 0}, - {CAT_So, 0x213A, 1}, - {CAT_Ll, 0x213C, 1}, - {CAT_Lu, 0x213E, 1}, - {CAT_Sm, 0x2140, 4}, - {CAT_Lu, 0x2145, 0}, - {CAT_Ll, 0x2146, 3}, - {CAT_So, 0x214A, 0}, - {CAT_Sm, 0x214B, 0}, - {CAT_So, 0x214C, 1}, - {CAT_LC, 0x214E, 0}, - {CAT_So, 0x214F, 0}, - {CAT_No, 0x2150, 15}, - {CAT_Nl, 0x2160, 34}, - {CAT_LC, 0x2183, 1}, - {CAT_Nl, 0x2185, 3}, - {CAT_No, 0x2189, 0}, - {CAT_So, 0x218A, 1}, - {CAT_Sm, 0x2190, 4}, - {CAT_So, 0x2195, 4}, - {CAT_Sm, 0x219A, 1}, - {CAT_So, 0x219C, 3}, - {CAT_Sm, 0x21A0, 0}, - {CAT_So, 0x21A1, 1}, - {CAT_Sm, 0x21A3, 0}, - {CAT_So, 0x21A4, 1}, - {CAT_Sm, 0x21A6, 0}, - {CAT_So, 0x21A7, 6}, - {CAT_Sm, 0x21AE, 0}, - {CAT_So, 0x21AF, 30}, - {CAT_Sm, 0x21CE, 1}, - {CAT_So, 0x21D0, 1}, - {CAT_Sm, 0x21D2, 0}, - {CAT_So, 0x21D3, 0}, - {CAT_Sm, 0x21D4, 0}, - {CAT_So, 0x21D5, 30}, - {CAT_Sm, 0x21F4, 267}, - {CAT_So, 0x2300, 7}, - {CAT_Ps, 0x2308, 0}, - {CAT_Pe, 0x2309, 0}, - {CAT_Ps, 0x230A, 0}, - {CAT_Pe, 0x230B, 0}, - {CAT_So, 0x230C, 19}, - {CAT_Sm, 0x2320, 1}, - {CAT_So, 0x2322, 6}, - {CAT_Ps, 0x2329, 0}, - {CAT_Pe, 0x232A, 0}, - {CAT_So, 0x232B, 80}, - {CAT_Sm, 0x237C, 0}, - {CAT_So, 0x237D, 29}, - {CAT_Sm, 0x239B, 24}, - {CAT_So, 0x23B4, 39}, - {CAT_Sm, 0x23DC, 5}, - {CAT_So, 0x23E2, 68}, - {CAT_So, 0x2440, 10}, - {CAT_No, 0x2460, 59}, - {CAT_So, 0x249C, 77}, - {CAT_No, 0x24EA, 21}, - {CAT_So, 0x2500, 182}, - {CAT_Sm, 0x25B7, 0}, - {CAT_So, 0x25B8, 8}, - {CAT_Sm, 0x25C1, 0}, - {CAT_So, 0x25C2, 53}, - {CAT_Sm, 0x25F8, 7}, - {CAT_So, 0x2600, 110}, - {CAT_Sm, 0x266F, 0}, - {CAT_So, 0x2670, 247}, - {CAT_Ps, 0x2768, 0}, - {CAT_Pe, 0x2769, 0}, - {CAT_Ps, 0x276A, 0}, - {CAT_Pe, 0x276B, 0}, - {CAT_Ps, 0x276C, 0}, - {CAT_Pe, 0x276D, 0}, - {CAT_Ps, 0x276E, 0}, - {CAT_Pe, 0x276F, 0}, - {CAT_Ps, 0x2770, 0}, - {CAT_Pe, 0x2771, 0}, - {CAT_Ps, 0x2772, 0}, - {CAT_Pe, 0x2773, 0}, - {CAT_Ps, 0x2774, 0}, - {CAT_Pe, 0x2775, 0}, - {CAT_No, 0x2776, 29}, - {CAT_So, 0x2794, 43}, - {CAT_Sm, 0x27C0, 4}, - {CAT_Ps, 0x27C5, 0}, - {CAT_Pe, 0x27C6, 0}, - {CAT_Sm, 0x27C7, 30}, - {CAT_Ps, 0x27E6, 0}, - {CAT_Pe, 0x27E7, 0}, - {CAT_Ps, 0x27E8, 0}, - {CAT_Pe, 0x27E9, 0}, - {CAT_Ps, 0x27EA, 0}, - {CAT_Pe, 0x27EB, 0}, - {CAT_Ps, 0x27EC, 0}, - {CAT_Pe, 0x27ED, 0}, - {CAT_Ps, 0x27EE, 0}, - {CAT_Pe, 0x27EF, 0}, - {CAT_Sm, 0x27F0, 15}, - {CAT_So, 0x2800, 255}, - {CAT_Sm, 0x2900, 130}, - {CAT_Ps, 0x2983, 0}, - {CAT_Pe, 0x2984, 0}, - {CAT_Ps, 0x2985, 0}, - {CAT_Pe, 0x2986, 0}, - {CAT_Ps, 0x2987, 0}, - {CAT_Pe, 0x2988, 0}, - {CAT_Ps, 0x2989, 0}, - {CAT_Pe, 0x298A, 0}, - {CAT_Ps, 0x298B, 0}, - {CAT_Pe, 0x298C, 0}, - {CAT_Ps, 0x298D, 0}, - {CAT_Pe, 0x298E, 0}, - {CAT_Ps, 0x298F, 0}, - {CAT_Pe, 0x2990, 0}, - {CAT_Ps, 0x2991, 0}, - {CAT_Pe, 0x2992, 0}, - {CAT_Ps, 0x2993, 0}, - {CAT_Pe, 0x2994, 0}, - {CAT_Ps, 0x2995, 0}, - {CAT_Pe, 0x2996, 0}, - {CAT_Ps, 0x2997, 0}, - {CAT_Pe, 0x2998, 0}, - {CAT_Sm, 0x2999, 62}, - {CAT_Ps, 0x29D8, 0}, - {CAT_Pe, 0x29D9, 0}, - {CAT_Ps, 0x29DA, 0}, - {CAT_Pe, 0x29DB, 0}, - {CAT_Sm, 0x29DC, 31}, - {CAT_Ps, 0x29FC, 0}, - {CAT_Pe, 0x29FD, 0}, - {CAT_Sm, 0x29FE, 257}, - {CAT_So, 0x2B00, 47}, - {CAT_Sm, 0x2B30, 20}, - {CAT_So, 0x2B45, 1}, - {CAT_Sm, 0x2B47, 5}, - {CAT_So, 0x2B4D, 38}, - {CAT_So, 0x2B76, 31}, - {CAT_So, 0x2B97, 104}, - {CAT_LC, 0x2C00, 112}, - {CAT_Ll, 0x2C71, 0}, - {CAT_LC, 0x2C72, 1}, - {CAT_Ll, 0x2C74, 0}, - {CAT_LC, 0x2C75, 1}, - {CAT_Ll, 0x2C77, 4}, - {CAT_Lm, 0x2C7C, 1}, - {CAT_LC, 0x2C7E, 101}, - {CAT_Ll, 0x2CE4, 0}, - {CAT_So, 0x2CE5, 5}, - {CAT_LC, 0x2CEB, 3}, - {CAT_Mn, 0x2CEF, 2}, - {CAT_LC, 0x2CF2, 1}, - {CAT_Po, 0x2CF9, 3}, - {CAT_No, 0x2CFD, 0}, - {CAT_Po, 0x2CFE, 1}, - {CAT_LC, 0x2D00, 37}, - {CAT_LC, 0x2D27, 0}, - {CAT_LC, 0x2D2D, 0}, - {CAT_Lo, 0x2D30, 55}, - {CAT_Lm, 0x2D6F, 0}, - {CAT_Po, 0x2D70, 0}, - {CAT_Mn, 0x2D7F, 0}, - {CAT_Lo, 0x2D80, 22}, - {CAT_Lo, 0x2DA0, 6}, - {CAT_Lo, 0x2DA8, 6}, - {CAT_Lo, 0x2DB0, 6}, - {CAT_Lo, 0x2DB8, 6}, - {CAT_Lo, 0x2DC0, 6}, - {CAT_Lo, 0x2DC8, 6}, - {CAT_Lo, 0x2DD0, 6}, - {CAT_Lo, 0x2DD8, 6}, - {CAT_Mn, 0x2DE0, 31}, - {CAT_Po, 0x2E00, 1}, - {CAT_Pi, 0x2E02, 0}, - {CAT_Pf, 0x2E03, 0}, - {CAT_Pi, 0x2E04, 0}, - {CAT_Pf, 0x2E05, 0}, - {CAT_Po, 0x2E06, 2}, - {CAT_Pi, 0x2E09, 0}, - {CAT_Pf, 0x2E0A, 0}, - {CAT_Po, 0x2E0B, 0}, - {CAT_Pi, 0x2E0C, 0}, - {CAT_Pf, 0x2E0D, 0}, - {CAT_Po, 0x2E0E, 8}, - {CAT_Pd, 0x2E17, 0}, - {CAT_Po, 0x2E18, 1}, - {CAT_Pd, 0x2E1A, 0}, - {CAT_Po, 0x2E1B, 0}, - {CAT_Pi, 0x2E1C, 0}, - {CAT_Pf, 0x2E1D, 0}, - {CAT_Po, 0x2E1E, 1}, - {CAT_Pi, 0x2E20, 0}, - {CAT_Pf, 0x2E21, 0}, - {CAT_Ps, 0x2E22, 0}, - {CAT_Pe, 0x2E23, 0}, - {CAT_Ps, 0x2E24, 0}, - {CAT_Pe, 0x2E25, 0}, - {CAT_Ps, 0x2E26, 0}, - {CAT_Pe, 0x2E27, 0}, - {CAT_Ps, 0x2E28, 0}, - {CAT_Pe, 0x2E29, 0}, - {CAT_Po, 0x2E2A, 4}, - {CAT_Lm, 0x2E2F, 0}, - {CAT_Po, 0x2E30, 9}, - {CAT_Pd, 0x2E3A, 1}, - {CAT_Po, 0x2E3C, 3}, - {CAT_Pd, 0x2E40, 0}, - {CAT_Po, 0x2E41, 0}, - {CAT_Ps, 0x2E42, 0}, - {CAT_Po, 0x2E43, 12}, - {CAT_So, 0x2E50, 1}, - {CAT_Po, 0x2E52, 2}, - {CAT_Ps, 0x2E55, 0}, - {CAT_Pe, 0x2E56, 0}, - {CAT_Ps, 0x2E57, 0}, - {CAT_Pe, 0x2E58, 0}, - {CAT_Ps, 0x2E59, 0}, - {CAT_Pe, 0x2E5A, 0}, - {CAT_Ps, 0x2E5B, 0}, - {CAT_Pe, 0x2E5C, 0}, - {CAT_Pd, 0x2E5D, 0}, - {CAT_So, 0x2E80, 25}, - {CAT_So, 0x2E9B, 88}, - {CAT_So, 0x2F00, 213}, - {CAT_So, 0x2FF0, 11}, - {CAT_Zs, 0x3000, 0}, - {CAT_Po, 0x3001, 2}, - {CAT_So, 0x3004, 0}, - {CAT_Lm, 0x3005, 0}, - {CAT_Lo, 0x3006, 0}, - {CAT_Nl, 0x3007, 0}, - {CAT_Ps, 0x3008, 0}, - {CAT_Pe, 0x3009, 0}, - {CAT_Ps, 0x300A, 0}, - {CAT_Pe, 0x300B, 0}, - {CAT_Ps, 0x300C, 0}, - {CAT_Pe, 0x300D, 0}, - {CAT_Ps, 0x300E, 0}, - {CAT_Pe, 0x300F, 0}, - {CAT_Ps, 0x3010, 0}, - {CAT_Pe, 0x3011, 0}, - {CAT_So, 0x3012, 1}, - {CAT_Ps, 0x3014, 0}, - {CAT_Pe, 0x3015, 0}, - {CAT_Ps, 0x3016, 0}, - {CAT_Pe, 0x3017, 0}, - {CAT_Ps, 0x3018, 0}, - {CAT_Pe, 0x3019, 0}, - {CAT_Ps, 0x301A, 0}, - {CAT_Pe, 0x301B, 0}, - {CAT_Pd, 0x301C, 0}, - {CAT_Ps, 0x301D, 0}, - {CAT_Pe, 0x301E, 1}, - {CAT_So, 0x3020, 0}, - {CAT_Nl, 0x3021, 8}, - {CAT_Mn, 0x302A, 3}, - {CAT_Mc, 0x302E, 1}, - {CAT_Pd, 0x3030, 0}, - {CAT_Lm, 0x3031, 4}, - {CAT_So, 0x3036, 1}, - {CAT_Nl, 0x3038, 2}, - {CAT_Lm, 0x303B, 0}, - {CAT_Lo, 0x303C, 0}, - {CAT_Po, 0x303D, 0}, - {CAT_So, 0x303E, 1}, - {CAT_Lo, 0x3041, 85}, - {CAT_Mn, 0x3099, 1}, - {CAT_Sk, 0x309B, 1}, - {CAT_Lm, 0x309D, 1}, - {CAT_Lo, 0x309F, 0}, - {CAT_Pd, 0x30A0, 0}, - {CAT_Lo, 0x30A1, 89}, - {CAT_Po, 0x30FB, 0}, - {CAT_Lm, 0x30FC, 2}, - {CAT_Lo, 0x30FF, 0}, - {CAT_Lo, 0x3105, 42}, - {CAT_Lo, 0x3131, 93}, - {CAT_So, 0x3190, 1}, - {CAT_No, 0x3192, 3}, - {CAT_So, 0x3196, 9}, - {CAT_Lo, 0x31A0, 31}, - {CAT_So, 0x31C0, 35}, - {CAT_Lo, 0x31F0, 15}, - {CAT_So, 0x3200, 30}, - {CAT_No, 0x3220, 9}, - {CAT_So, 0x322A, 29}, - {CAT_No, 0x3248, 7}, - {CAT_So, 0x3250, 0}, - {CAT_No, 0x3251, 14}, - {CAT_So, 0x3260, 31}, - {CAT_No, 0x3280, 9}, - {CAT_So, 0x328A, 38}, - {CAT_No, 0x32B1, 14}, - {CAT_So, 0x32C0, 319}, - {CAT_Lo, 0x3400, 6591}, - {CAT_So, 0x4DC0, 63}, - {CAT_Lo, 0x4E00, 21012}, - {CAT_Lm, 0xA015, 0}, - {CAT_Lo, 0xA016, 1142}, - {CAT_So, 0xA490, 54}, - {CAT_Lo, 0xA4D0, 39}, - {CAT_Lm, 0xA4F8, 5}, - {CAT_Po, 0xA4FE, 1}, - {CAT_Lo, 0xA500, 267}, - {CAT_Lm, 0xA60C, 0}, - {CAT_Po, 0xA60D, 2}, - {CAT_Lo, 0xA610, 15}, - {CAT_Nd, 0xA620, 9}, - {CAT_Lo, 0xA62A, 1}, - {CAT_LC, 0xA640, 45}, - {CAT_Lo, 0xA66E, 0}, - {CAT_Mn, 0xA66F, 0}, - {CAT_Me, 0xA670, 2}, - {CAT_Po, 0xA673, 0}, - {CAT_Mn, 0xA674, 9}, - {CAT_Po, 0xA67E, 0}, - {CAT_Lm, 0xA67F, 0}, - {CAT_LC, 0xA680, 27}, - {CAT_Lm, 0xA69C, 1}, - {CAT_Mn, 0xA69E, 1}, - {CAT_Lo, 0xA6A0, 69}, - {CAT_Nl, 0xA6E6, 9}, - {CAT_Mn, 0xA6F0, 1}, - {CAT_Po, 0xA6F2, 5}, - {CAT_Sk, 0xA700, 22}, - {CAT_Lm, 0xA717, 8}, - {CAT_Sk, 0xA720, 1}, - {CAT_LC, 0xA722, 13}, - {CAT_Ll, 0xA730, 1}, - {CAT_LC, 0xA732, 61}, - {CAT_Lm, 0xA770, 0}, - {CAT_Ll, 0xA771, 7}, - {CAT_LC, 0xA779, 14}, - {CAT_Lm, 0xA788, 0}, - {CAT_Sk, 0xA789, 1}, - {CAT_LC, 0xA78B, 2}, - {CAT_Ll, 0xA78E, 0}, - {CAT_Lo, 0xA78F, 0}, - {CAT_LC, 0xA790, 4}, - {CAT_Ll, 0xA795, 0}, - {CAT_LC, 0xA796, 24}, - {CAT_Ll, 0xA7AF, 0}, - {CAT_LC, 0xA7B0, 26}, - {CAT_LC, 0xA7D0, 1}, - {CAT_Ll, 0xA7D3, 0}, - {CAT_Ll, 0xA7D5, 0}, - {CAT_LC, 0xA7D6, 3}, - {CAT_Lm, 0xA7F2, 2}, - {CAT_LC, 0xA7F5, 1}, - {CAT_Lo, 0xA7F7, 0}, - {CAT_Lm, 0xA7F8, 1}, - {CAT_Ll, 0xA7FA, 0}, - {CAT_Lo, 0xA7FB, 6}, - {CAT_Mn, 0xA802, 0}, - {CAT_Lo, 0xA803, 2}, - {CAT_Mn, 0xA806, 0}, - {CAT_Lo, 0xA807, 3}, - {CAT_Mn, 0xA80B, 0}, - {CAT_Lo, 0xA80C, 22}, - {CAT_Mc, 0xA823, 1}, - {CAT_Mn, 0xA825, 1}, - {CAT_Mc, 0xA827, 0}, - {CAT_So, 0xA828, 3}, - {CAT_Mn, 0xA82C, 0}, - {CAT_No, 0xA830, 5}, - {CAT_So, 0xA836, 1}, - {CAT_Sc, 0xA838, 0}, - {CAT_So, 0xA839, 0}, - {CAT_Lo, 0xA840, 51}, - {CAT_Po, 0xA874, 3}, - {CAT_Mc, 0xA880, 1}, - {CAT_Lo, 0xA882, 49}, - {CAT_Mc, 0xA8B4, 15}, - {CAT_Mn, 0xA8C4, 1}, - {CAT_Po, 0xA8CE, 1}, - {CAT_Nd, 0xA8D0, 9}, - {CAT_Mn, 0xA8E0, 17}, - {CAT_Lo, 0xA8F2, 5}, - {CAT_Po, 0xA8F8, 2}, - {CAT_Lo, 0xA8FB, 0}, - {CAT_Po, 0xA8FC, 0}, - {CAT_Lo, 0xA8FD, 1}, - {CAT_Mn, 0xA8FF, 0}, - {CAT_Nd, 0xA900, 9}, - {CAT_Lo, 0xA90A, 27}, - {CAT_Mn, 0xA926, 7}, - {CAT_Po, 0xA92E, 1}, - {CAT_Lo, 0xA930, 22}, - {CAT_Mn, 0xA947, 10}, - {CAT_Mc, 0xA952, 1}, - {CAT_Po, 0xA95F, 0}, - {CAT_Lo, 0xA960, 28}, - {CAT_Mn, 0xA980, 2}, - {CAT_Mc, 0xA983, 0}, - {CAT_Lo, 0xA984, 46}, - {CAT_Mn, 0xA9B3, 0}, - {CAT_Mc, 0xA9B4, 1}, - {CAT_Mn, 0xA9B6, 3}, - {CAT_Mc, 0xA9BA, 1}, - {CAT_Mn, 0xA9BC, 1}, - {CAT_Mc, 0xA9BE, 2}, - {CAT_Po, 0xA9C1, 12}, - {CAT_Lm, 0xA9CF, 0}, - {CAT_Nd, 0xA9D0, 9}, - {CAT_Po, 0xA9DE, 1}, - {CAT_Lo, 0xA9E0, 4}, - {CAT_Mn, 0xA9E5, 0}, - {CAT_Lm, 0xA9E6, 0}, - {CAT_Lo, 0xA9E7, 8}, - {CAT_Nd, 0xA9F0, 9}, - {CAT_Lo, 0xA9FA, 4}, - {CAT_Lo, 0xAA00, 40}, - {CAT_Mn, 0xAA29, 5}, - {CAT_Mc, 0xAA2F, 1}, - {CAT_Mn, 0xAA31, 1}, - {CAT_Mc, 0xAA33, 1}, - {CAT_Mn, 0xAA35, 1}, - {CAT_Lo, 0xAA40, 2}, - {CAT_Mn, 0xAA43, 0}, - {CAT_Lo, 0xAA44, 7}, - {CAT_Mn, 0xAA4C, 0}, - {CAT_Mc, 0xAA4D, 0}, - {CAT_Nd, 0xAA50, 9}, - {CAT_Po, 0xAA5C, 3}, - {CAT_Lo, 0xAA60, 15}, - {CAT_Lm, 0xAA70, 0}, - {CAT_Lo, 0xAA71, 5}, - {CAT_So, 0xAA77, 2}, - {CAT_Lo, 0xAA7A, 0}, - {CAT_Mc, 0xAA7B, 0}, - {CAT_Mn, 0xAA7C, 0}, - {CAT_Mc, 0xAA7D, 0}, - {CAT_Lo, 0xAA7E, 49}, - {CAT_Mn, 0xAAB0, 0}, - {CAT_Lo, 0xAAB1, 0}, - {CAT_Mn, 0xAAB2, 2}, - {CAT_Lo, 0xAAB5, 1}, - {CAT_Mn, 0xAAB7, 1}, - {CAT_Lo, 0xAAB9, 4}, - {CAT_Mn, 0xAABE, 1}, - {CAT_Lo, 0xAAC0, 0}, - {CAT_Mn, 0xAAC1, 0}, - {CAT_Lo, 0xAAC2, 0}, - {CAT_Lo, 0xAADB, 1}, - {CAT_Lm, 0xAADD, 0}, - {CAT_Po, 0xAADE, 1}, - {CAT_Lo, 0xAAE0, 10}, - {CAT_Mc, 0xAAEB, 0}, - {CAT_Mn, 0xAAEC, 1}, - {CAT_Mc, 0xAAEE, 1}, - {CAT_Po, 0xAAF0, 1}, - {CAT_Lo, 0xAAF2, 0}, - {CAT_Lm, 0xAAF3, 1}, - {CAT_Mc, 0xAAF5, 0}, - {CAT_Mn, 0xAAF6, 0}, - {CAT_Lo, 0xAB01, 5}, - {CAT_Lo, 0xAB09, 5}, - {CAT_Lo, 0xAB11, 5}, - {CAT_Lo, 0xAB20, 6}, - {CAT_Lo, 0xAB28, 6}, - {CAT_Ll, 0xAB30, 34}, - {CAT_LC, 0xAB53, 0}, - {CAT_Ll, 0xAB54, 6}, - {CAT_Sk, 0xAB5B, 0}, - {CAT_Lm, 0xAB5C, 3}, - {CAT_Ll, 0xAB60, 8}, - {CAT_Lm, 0xAB69, 0}, - {CAT_Sk, 0xAB6A, 1}, - {CAT_LC, 0xAB70, 79}, - {CAT_Lo, 0xABC0, 34}, - {CAT_Mc, 0xABE3, 1}, - {CAT_Mn, 0xABE5, 0}, - {CAT_Mc, 0xABE6, 1}, - {CAT_Mn, 0xABE8, 0}, - {CAT_Mc, 0xABE9, 1}, - {CAT_Po, 0xABEB, 0}, - {CAT_Mc, 0xABEC, 0}, - {CAT_Mn, 0xABED, 0}, - {CAT_Nd, 0xABF0, 9}, - {CAT_Lo, 0xAC00, 11171}, - {CAT_Lo, 0xD7B0, 22}, - {CAT_Lo, 0xD7CB, 48}, - {CAT_Cs, 0xD800, 2047}, - {CAT_Lo, 0xF900, 365}, - {CAT_Lo, 0xFA70, 105}, - {CAT_Ll, 0xFB00, 6}, - {CAT_Ll, 0xFB13, 4}, - {CAT_Lo, 0xFB1D, 0}, - {CAT_Mn, 0xFB1E, 0}, - {CAT_Lo, 0xFB1F, 9}, - {CAT_Sm, 0xFB29, 0}, - {CAT_Lo, 0xFB2A, 12}, - {CAT_Lo, 0xFB38, 4}, - {CAT_Lo, 0xFB3E, 0}, - {CAT_Lo, 0xFB40, 1}, - {CAT_Lo, 0xFB43, 1}, - {CAT_Lo, 0xFB46, 107}, - {CAT_Sk, 0xFBB2, 16}, - {CAT_Lo, 0xFBD3, 362}, - {CAT_Pe, 0xFD3E, 0}, - {CAT_Ps, 0xFD3F, 0}, - {CAT_So, 0xFD40, 15}, - {CAT_Lo, 0xFD50, 63}, - {CAT_Lo, 0xFD92, 53}, - {CAT_So, 0xFDCF, 0}, - {CAT_Lo, 0xFDF0, 11}, - {CAT_Sc, 0xFDFC, 0}, - {CAT_So, 0xFDFD, 2}, - {CAT_Mn, 0xFE00, 15}, - {CAT_Po, 0xFE10, 6}, - {CAT_Ps, 0xFE17, 0}, - {CAT_Pe, 0xFE18, 0}, - {CAT_Po, 0xFE19, 0}, - {CAT_Mn, 0xFE20, 15}, - {CAT_Po, 0xFE30, 0}, - {CAT_Pd, 0xFE31, 1}, - {CAT_Pc, 0xFE33, 1}, - {CAT_Ps, 0xFE35, 0}, - {CAT_Pe, 0xFE36, 0}, - {CAT_Ps, 0xFE37, 0}, - {CAT_Pe, 0xFE38, 0}, - {CAT_Ps, 0xFE39, 0}, - {CAT_Pe, 0xFE3A, 0}, - {CAT_Ps, 0xFE3B, 0}, - {CAT_Pe, 0xFE3C, 0}, - {CAT_Ps, 0xFE3D, 0}, - {CAT_Pe, 0xFE3E, 0}, - {CAT_Ps, 0xFE3F, 0}, - {CAT_Pe, 0xFE40, 0}, - {CAT_Ps, 0xFE41, 0}, - {CAT_Pe, 0xFE42, 0}, - {CAT_Ps, 0xFE43, 0}, - {CAT_Pe, 0xFE44, 0}, - {CAT_Po, 0xFE45, 1}, - {CAT_Ps, 0xFE47, 0}, - {CAT_Pe, 0xFE48, 0}, - {CAT_Po, 0xFE49, 3}, - {CAT_Pc, 0xFE4D, 2}, - {CAT_Po, 0xFE50, 2}, - {CAT_Po, 0xFE54, 3}, - {CAT_Pd, 0xFE58, 0}, - {CAT_Ps, 0xFE59, 0}, - {CAT_Pe, 0xFE5A, 0}, - {CAT_Ps, 0xFE5B, 0}, - {CAT_Pe, 0xFE5C, 0}, - {CAT_Ps, 0xFE5D, 0}, - {CAT_Pe, 0xFE5E, 0}, - {CAT_Po, 0xFE5F, 2}, - {CAT_Sm, 0xFE62, 0}, - {CAT_Pd, 0xFE63, 0}, - {CAT_Sm, 0xFE64, 2}, - {CAT_Po, 0xFE68, 0}, - {CAT_Sc, 0xFE69, 0}, - {CAT_Po, 0xFE6A, 1}, - {CAT_Lo, 0xFE70, 4}, - {CAT_Lo, 0xFE76, 134}, - {CAT_Cf, 0xFEFF, 0}, - {CAT_Po, 0xFF01, 2}, - {CAT_Sc, 0xFF04, 0}, - {CAT_Po, 0xFF05, 2}, - {CAT_Ps, 0xFF08, 0}, - {CAT_Pe, 0xFF09, 0}, - {CAT_Po, 0xFF0A, 0}, - {CAT_Sm, 0xFF0B, 0}, - {CAT_Po, 0xFF0C, 0}, - {CAT_Pd, 0xFF0D, 0}, - {CAT_Po, 0xFF0E, 1}, - {CAT_Nd, 0xFF10, 9}, - {CAT_Po, 0xFF1A, 1}, - {CAT_Sm, 0xFF1C, 2}, - {CAT_Po, 0xFF1F, 1}, - {CAT_LC, 0xFF21, 25}, - {CAT_Ps, 0xFF3B, 0}, - {CAT_Po, 0xFF3C, 0}, - {CAT_Pe, 0xFF3D, 0}, - {CAT_Sk, 0xFF3E, 0}, - {CAT_Pc, 0xFF3F, 0}, - {CAT_Sk, 0xFF40, 0}, - {CAT_LC, 0xFF41, 25}, - {CAT_Ps, 0xFF5B, 0}, - {CAT_Sm, 0xFF5C, 0}, - {CAT_Pe, 0xFF5D, 0}, - {CAT_Sm, 0xFF5E, 0}, - {CAT_Ps, 0xFF5F, 0}, - {CAT_Pe, 0xFF60, 0}, - {CAT_Po, 0xFF61, 0}, - {CAT_Ps, 0xFF62, 0}, - {CAT_Pe, 0xFF63, 0}, - {CAT_Po, 0xFF64, 1}, - {CAT_Lo, 0xFF66, 9}, - {CAT_Lm, 0xFF70, 0}, - {CAT_Lo, 0xFF71, 44}, - {CAT_Lm, 0xFF9E, 1}, - {CAT_Lo, 0xFFA0, 30}, - {CAT_Lo, 0xFFC2, 5}, - {CAT_Lo, 0xFFCA, 5}, - {CAT_Lo, 0xFFD2, 5}, - {CAT_Lo, 0xFFDA, 2}, - {CAT_Sc, 0xFFE0, 1}, - {CAT_Sm, 0xFFE2, 0}, - {CAT_Sk, 0xFFE3, 0}, - {CAT_So, 0xFFE4, 0}, - {CAT_Sc, 0xFFE5, 1}, - {CAT_So, 0xFFE8, 0}, - {CAT_Sm, 0xFFE9, 3}, - {CAT_So, 0xFFED, 1}, - {CAT_Cf, 0xFFF9, 2}, - {CAT_So, 0xFFFC, 1}, - {CAT_Lo, 0x10000, 11}, - {CAT_Lo, 0x1000D, 25}, - {CAT_Lo, 0x10028, 18}, - {CAT_Lo, 0x1003C, 1}, - {CAT_Lo, 0x1003F, 14}, - {CAT_Lo, 0x10050, 13}, - {CAT_Lo, 0x10080, 122}, - {CAT_Po, 0x10100, 2}, - {CAT_No, 0x10107, 44}, - {CAT_So, 0x10137, 8}, - {CAT_Nl, 0x10140, 52}, - {CAT_No, 0x10175, 3}, - {CAT_So, 0x10179, 16}, - {CAT_No, 0x1018A, 1}, - {CAT_So, 0x1018C, 2}, - {CAT_So, 0x10190, 12}, - {CAT_So, 0x101A0, 0}, - {CAT_So, 0x101D0, 44}, - {CAT_Mn, 0x101FD, 0}, - {CAT_Lo, 0x10280, 28}, - {CAT_Lo, 0x102A0, 48}, - {CAT_Mn, 0x102E0, 0}, - {CAT_No, 0x102E1, 26}, - {CAT_Lo, 0x10300, 31}, - {CAT_No, 0x10320, 3}, - {CAT_Lo, 0x1032D, 19}, - {CAT_Nl, 0x10341, 0}, - {CAT_Lo, 0x10342, 7}, - {CAT_Nl, 0x1034A, 0}, - {CAT_Lo, 0x10350, 37}, - {CAT_Mn, 0x10376, 4}, - {CAT_Lo, 0x10380, 29}, - {CAT_Po, 0x1039F, 0}, - {CAT_Lo, 0x103A0, 35}, - {CAT_Lo, 0x103C8, 7}, - {CAT_Po, 0x103D0, 0}, - {CAT_Nl, 0x103D1, 4}, - {CAT_LC, 0x10400, 79}, - {CAT_Lo, 0x10450, 77}, - {CAT_Nd, 0x104A0, 9}, - {CAT_LC, 0x104B0, 35}, - {CAT_LC, 0x104D8, 35}, - {CAT_Lo, 0x10500, 39}, - {CAT_Lo, 0x10530, 51}, - {CAT_Po, 0x1056F, 0}, - {CAT_LC, 0x10570, 10}, - {CAT_LC, 0x1057C, 14}, - {CAT_LC, 0x1058C, 6}, - {CAT_LC, 0x10594, 1}, - {CAT_LC, 0x10597, 10}, - {CAT_LC, 0x105A3, 14}, - {CAT_LC, 0x105B3, 6}, - {CAT_LC, 0x105BB, 1}, - {CAT_Lo, 0x10600, 310}, - {CAT_Lo, 0x10740, 21}, - {CAT_Lo, 0x10760, 7}, - {CAT_Lm, 0x10780, 5}, - {CAT_Lm, 0x10787, 41}, - {CAT_Lm, 0x107B2, 8}, - {CAT_Lo, 0x10800, 5}, - {CAT_Lo, 0x10808, 0}, - {CAT_Lo, 0x1080A, 43}, - {CAT_Lo, 0x10837, 1}, - {CAT_Lo, 0x1083C, 0}, - {CAT_Lo, 0x1083F, 22}, - {CAT_Po, 0x10857, 0}, - {CAT_No, 0x10858, 7}, - {CAT_Lo, 0x10860, 22}, - {CAT_So, 0x10877, 1}, - {CAT_No, 0x10879, 6}, - {CAT_Lo, 0x10880, 30}, - {CAT_No, 0x108A7, 8}, - {CAT_Lo, 0x108E0, 18}, - {CAT_Lo, 0x108F4, 1}, - {CAT_No, 0x108FB, 4}, - {CAT_Lo, 0x10900, 21}, - {CAT_No, 0x10916, 5}, - {CAT_Po, 0x1091F, 0}, - {CAT_Lo, 0x10920, 25}, - {CAT_Po, 0x1093F, 0}, - {CAT_Lo, 0x10980, 55}, - {CAT_No, 0x109BC, 1}, - {CAT_Lo, 0x109BE, 1}, - {CAT_No, 0x109C0, 15}, - {CAT_No, 0x109D2, 45}, - {CAT_Lo, 0x10A00, 0}, - {CAT_Mn, 0x10A01, 2}, - {CAT_Mn, 0x10A05, 1}, - {CAT_Mn, 0x10A0C, 3}, - {CAT_Lo, 0x10A10, 3}, - {CAT_Lo, 0x10A15, 2}, - {CAT_Lo, 0x10A19, 28}, - {CAT_Mn, 0x10A38, 2}, - {CAT_Mn, 0x10A3F, 0}, - {CAT_No, 0x10A40, 8}, - {CAT_Po, 0x10A50, 8}, - {CAT_Lo, 0x10A60, 28}, - {CAT_No, 0x10A7D, 1}, - {CAT_Po, 0x10A7F, 0}, - {CAT_Lo, 0x10A80, 28}, - {CAT_No, 0x10A9D, 2}, - {CAT_Lo, 0x10AC0, 7}, - {CAT_So, 0x10AC8, 0}, - {CAT_Lo, 0x10AC9, 27}, - {CAT_Mn, 0x10AE5, 1}, - {CAT_No, 0x10AEB, 4}, - {CAT_Po, 0x10AF0, 6}, - {CAT_Lo, 0x10B00, 53}, - {CAT_Po, 0x10B39, 6}, - {CAT_Lo, 0x10B40, 21}, - {CAT_No, 0x10B58, 7}, - {CAT_Lo, 0x10B60, 18}, - {CAT_No, 0x10B78, 7}, - {CAT_Lo, 0x10B80, 17}, - {CAT_Po, 0x10B99, 3}, - {CAT_No, 0x10BA9, 6}, - {CAT_Lo, 0x10C00, 72}, - {CAT_LC, 0x10C80, 50}, - {CAT_LC, 0x10CC0, 50}, - {CAT_No, 0x10CFA, 5}, - {CAT_Lo, 0x10D00, 35}, - {CAT_Mn, 0x10D24, 3}, - {CAT_Nd, 0x10D30, 9}, - {CAT_No, 0x10E60, 30}, - {CAT_Lo, 0x10E80, 41}, - {CAT_Mn, 0x10EAB, 1}, - {CAT_Pd, 0x10EAD, 0}, - {CAT_Lo, 0x10EB0, 1}, - {CAT_Mn, 0x10EFD, 2}, - {CAT_Lo, 0x10F00, 28}, - {CAT_No, 0x10F1D, 9}, - {CAT_Lo, 0x10F27, 0}, - {CAT_Lo, 0x10F30, 21}, - {CAT_Mn, 0x10F46, 10}, - {CAT_No, 0x10F51, 3}, - {CAT_Po, 0x10F55, 4}, - {CAT_Lo, 0x10F70, 17}, - {CAT_Mn, 0x10F82, 3}, - {CAT_Po, 0x10F86, 3}, - {CAT_Lo, 0x10FB0, 20}, - {CAT_No, 0x10FC5, 6}, - {CAT_Lo, 0x10FE0, 22}, - {CAT_Mc, 0x11000, 0}, - {CAT_Mn, 0x11001, 0}, - {CAT_Mc, 0x11002, 0}, - {CAT_Lo, 0x11003, 52}, - {CAT_Mn, 0x11038, 14}, - {CAT_Po, 0x11047, 6}, - {CAT_No, 0x11052, 19}, - {CAT_Nd, 0x11066, 9}, - {CAT_Mn, 0x11070, 0}, - {CAT_Lo, 0x11071, 1}, - {CAT_Mn, 0x11073, 1}, - {CAT_Lo, 0x11075, 0}, - {CAT_Mn, 0x1107F, 2}, - {CAT_Mc, 0x11082, 0}, - {CAT_Lo, 0x11083, 44}, - {CAT_Mc, 0x110B0, 2}, - {CAT_Mn, 0x110B3, 3}, - {CAT_Mc, 0x110B7, 1}, - {CAT_Mn, 0x110B9, 1}, - {CAT_Po, 0x110BB, 1}, - {CAT_Cf, 0x110BD, 0}, - {CAT_Po, 0x110BE, 3}, - {CAT_Mn, 0x110C2, 0}, - {CAT_Cf, 0x110CD, 0}, - {CAT_Lo, 0x110D0, 24}, - {CAT_Nd, 0x110F0, 9}, - {CAT_Mn, 0x11100, 2}, - {CAT_Lo, 0x11103, 35}, - {CAT_Mn, 0x11127, 4}, - {CAT_Mc, 0x1112C, 0}, - {CAT_Mn, 0x1112D, 7}, - {CAT_Nd, 0x11136, 9}, - {CAT_Po, 0x11140, 3}, - {CAT_Lo, 0x11144, 0}, - {CAT_Mc, 0x11145, 1}, - {CAT_Lo, 0x11147, 0}, - {CAT_Lo, 0x11150, 34}, - {CAT_Mn, 0x11173, 0}, - {CAT_Po, 0x11174, 1}, - {CAT_Lo, 0x11176, 0}, - {CAT_Mn, 0x11180, 1}, - {CAT_Mc, 0x11182, 0}, - {CAT_Lo, 0x11183, 47}, - {CAT_Mc, 0x111B3, 2}, - {CAT_Mn, 0x111B6, 8}, - {CAT_Mc, 0x111BF, 1}, - {CAT_Lo, 0x111C1, 3}, - {CAT_Po, 0x111C5, 3}, - {CAT_Mn, 0x111C9, 3}, - {CAT_Po, 0x111CD, 0}, - {CAT_Mc, 0x111CE, 0}, - {CAT_Mn, 0x111CF, 0}, - {CAT_Nd, 0x111D0, 9}, - {CAT_Lo, 0x111DA, 0}, - {CAT_Po, 0x111DB, 0}, - {CAT_Lo, 0x111DC, 0}, - {CAT_Po, 0x111DD, 2}, - {CAT_No, 0x111E1, 19}, - {CAT_Lo, 0x11200, 17}, - {CAT_Lo, 0x11213, 24}, - {CAT_Mc, 0x1122C, 2}, - {CAT_Mn, 0x1122F, 2}, - {CAT_Mc, 0x11232, 1}, - {CAT_Mn, 0x11234, 0}, - {CAT_Mc, 0x11235, 0}, - {CAT_Mn, 0x11236, 1}, - {CAT_Po, 0x11238, 5}, - {CAT_Mn, 0x1123E, 0}, - {CAT_Lo, 0x1123F, 1}, - {CAT_Mn, 0x11241, 0}, - {CAT_Lo, 0x11280, 6}, - {CAT_Lo, 0x11288, 0}, - {CAT_Lo, 0x1128A, 3}, - {CAT_Lo, 0x1128F, 14}, - {CAT_Lo, 0x1129F, 9}, - {CAT_Po, 0x112A9, 0}, - {CAT_Lo, 0x112B0, 46}, - {CAT_Mn, 0x112DF, 0}, - {CAT_Mc, 0x112E0, 2}, - {CAT_Mn, 0x112E3, 7}, - {CAT_Nd, 0x112F0, 9}, - {CAT_Mn, 0x11300, 1}, - {CAT_Mc, 0x11302, 1}, - {CAT_Lo, 0x11305, 7}, - {CAT_Lo, 0x1130F, 1}, - {CAT_Lo, 0x11313, 21}, - {CAT_Lo, 0x1132A, 6}, - {CAT_Lo, 0x11332, 1}, - {CAT_Lo, 0x11335, 4}, - {CAT_Mn, 0x1133B, 1}, - {CAT_Lo, 0x1133D, 0}, - {CAT_Mc, 0x1133E, 1}, - {CAT_Mn, 0x11340, 0}, - {CAT_Mc, 0x11341, 3}, - {CAT_Mc, 0x11347, 1}, - {CAT_Mc, 0x1134B, 2}, - {CAT_Lo, 0x11350, 0}, - {CAT_Mc, 0x11357, 0}, - {CAT_Lo, 0x1135D, 4}, - {CAT_Mc, 0x11362, 1}, - {CAT_Mn, 0x11366, 6}, - {CAT_Mn, 0x11370, 4}, - {CAT_Lo, 0x11400, 52}, - {CAT_Mc, 0x11435, 2}, - {CAT_Mn, 0x11438, 7}, - {CAT_Mc, 0x11440, 1}, - {CAT_Mn, 0x11442, 2}, - {CAT_Mc, 0x11445, 0}, - {CAT_Mn, 0x11446, 0}, - {CAT_Lo, 0x11447, 3}, - {CAT_Po, 0x1144B, 4}, - {CAT_Nd, 0x11450, 9}, - {CAT_Po, 0x1145A, 1}, - {CAT_Po, 0x1145D, 0}, - {CAT_Mn, 0x1145E, 0}, - {CAT_Lo, 0x1145F, 2}, - {CAT_Lo, 0x11480, 47}, - {CAT_Mc, 0x114B0, 2}, - {CAT_Mn, 0x114B3, 5}, - {CAT_Mc, 0x114B9, 0}, - {CAT_Mn, 0x114BA, 0}, - {CAT_Mc, 0x114BB, 3}, - {CAT_Mn, 0x114BF, 1}, - {CAT_Mc, 0x114C1, 0}, - {CAT_Mn, 0x114C2, 1}, - {CAT_Lo, 0x114C4, 1}, - {CAT_Po, 0x114C6, 0}, - {CAT_Lo, 0x114C7, 0}, - {CAT_Nd, 0x114D0, 9}, - {CAT_Lo, 0x11580, 46}, - {CAT_Mc, 0x115AF, 2}, - {CAT_Mn, 0x115B2, 3}, - {CAT_Mc, 0x115B8, 3}, - {CAT_Mn, 0x115BC, 1}, - {CAT_Mc, 0x115BE, 0}, - {CAT_Mn, 0x115BF, 1}, - {CAT_Po, 0x115C1, 22}, - {CAT_Lo, 0x115D8, 3}, - {CAT_Mn, 0x115DC, 1}, - {CAT_Lo, 0x11600, 47}, - {CAT_Mc, 0x11630, 2}, - {CAT_Mn, 0x11633, 7}, - {CAT_Mc, 0x1163B, 1}, - {CAT_Mn, 0x1163D, 0}, - {CAT_Mc, 0x1163E, 0}, - {CAT_Mn, 0x1163F, 1}, - {CAT_Po, 0x11641, 2}, - {CAT_Lo, 0x11644, 0}, - {CAT_Nd, 0x11650, 9}, - {CAT_Po, 0x11660, 12}, - {CAT_Lo, 0x11680, 42}, - {CAT_Mn, 0x116AB, 0}, - {CAT_Mc, 0x116AC, 0}, - {CAT_Mn, 0x116AD, 0}, - {CAT_Mc, 0x116AE, 1}, - {CAT_Mn, 0x116B0, 5}, - {CAT_Mc, 0x116B6, 0}, - {CAT_Mn, 0x116B7, 0}, - {CAT_Lo, 0x116B8, 0}, - {CAT_Po, 0x116B9, 0}, - {CAT_Nd, 0x116C0, 9}, - {CAT_Lo, 0x11700, 26}, - {CAT_Mn, 0x1171D, 2}, - {CAT_Mc, 0x11720, 1}, - {CAT_Mn, 0x11722, 3}, - {CAT_Mc, 0x11726, 0}, - {CAT_Mn, 0x11727, 4}, - {CAT_Nd, 0x11730, 9}, - {CAT_No, 0x1173A, 1}, - {CAT_Po, 0x1173C, 2}, - {CAT_So, 0x1173F, 0}, - {CAT_Lo, 0x11740, 6}, - {CAT_Lo, 0x11800, 43}, - {CAT_Mc, 0x1182C, 2}, - {CAT_Mn, 0x1182F, 8}, - {CAT_Mc, 0x11838, 0}, - {CAT_Mn, 0x11839, 1}, - {CAT_Po, 0x1183B, 0}, - {CAT_LC, 0x118A0, 63}, - {CAT_Nd, 0x118E0, 9}, - {CAT_No, 0x118EA, 8}, - {CAT_Lo, 0x118FF, 7}, - {CAT_Lo, 0x11909, 0}, - {CAT_Lo, 0x1190C, 7}, - {CAT_Lo, 0x11915, 1}, - {CAT_Lo, 0x11918, 23}, - {CAT_Mc, 0x11930, 5}, - {CAT_Mc, 0x11937, 1}, - {CAT_Mn, 0x1193B, 1}, - {CAT_Mc, 0x1193D, 0}, - {CAT_Mn, 0x1193E, 0}, - {CAT_Lo, 0x1193F, 0}, - {CAT_Mc, 0x11940, 0}, - {CAT_Lo, 0x11941, 0}, - {CAT_Mc, 0x11942, 0}, - {CAT_Mn, 0x11943, 0}, - {CAT_Po, 0x11944, 2}, - {CAT_Nd, 0x11950, 9}, - {CAT_Lo, 0x119A0, 7}, - {CAT_Lo, 0x119AA, 38}, - {CAT_Mc, 0x119D1, 2}, - {CAT_Mn, 0x119D4, 3}, - {CAT_Mn, 0x119DA, 1}, - {CAT_Mc, 0x119DC, 3}, - {CAT_Mn, 0x119E0, 0}, - {CAT_Lo, 0x119E1, 0}, - {CAT_Po, 0x119E2, 0}, - {CAT_Lo, 0x119E3, 0}, - {CAT_Mc, 0x119E4, 0}, - {CAT_Lo, 0x11A00, 0}, - {CAT_Mn, 0x11A01, 9}, - {CAT_Lo, 0x11A0B, 39}, - {CAT_Mn, 0x11A33, 5}, - {CAT_Mc, 0x11A39, 0}, - {CAT_Lo, 0x11A3A, 0}, - {CAT_Mn, 0x11A3B, 3}, - {CAT_Po, 0x11A3F, 7}, - {CAT_Mn, 0x11A47, 0}, - {CAT_Lo, 0x11A50, 0}, - {CAT_Mn, 0x11A51, 5}, - {CAT_Mc, 0x11A57, 1}, - {CAT_Mn, 0x11A59, 2}, - {CAT_Lo, 0x11A5C, 45}, - {CAT_Mn, 0x11A8A, 12}, - {CAT_Mc, 0x11A97, 0}, - {CAT_Mn, 0x11A98, 1}, - {CAT_Po, 0x11A9A, 2}, - {CAT_Lo, 0x11A9D, 0}, - {CAT_Po, 0x11A9E, 4}, - {CAT_Lo, 0x11AB0, 72}, - {CAT_Po, 0x11B00, 9}, - {CAT_Lo, 0x11C00, 8}, - {CAT_Lo, 0x11C0A, 36}, - {CAT_Mc, 0x11C2F, 0}, - {CAT_Mn, 0x11C30, 6}, - {CAT_Mn, 0x11C38, 5}, - {CAT_Mc, 0x11C3E, 0}, - {CAT_Mn, 0x11C3F, 0}, - {CAT_Lo, 0x11C40, 0}, - {CAT_Po, 0x11C41, 4}, - {CAT_Nd, 0x11C50, 9}, - {CAT_No, 0x11C5A, 18}, - {CAT_Po, 0x11C70, 1}, - {CAT_Lo, 0x11C72, 29}, - {CAT_Mn, 0x11C92, 21}, - {CAT_Mc, 0x11CA9, 0}, - {CAT_Mn, 0x11CAA, 6}, - {CAT_Mc, 0x11CB1, 0}, - {CAT_Mn, 0x11CB2, 1}, - {CAT_Mc, 0x11CB4, 0}, - {CAT_Mn, 0x11CB5, 1}, - {CAT_Lo, 0x11D00, 6}, - {CAT_Lo, 0x11D08, 1}, - {CAT_Lo, 0x11D0B, 37}, - {CAT_Mn, 0x11D31, 5}, - {CAT_Mn, 0x11D3A, 0}, - {CAT_Mn, 0x11D3C, 1}, - {CAT_Mn, 0x11D3F, 6}, - {CAT_Lo, 0x11D46, 0}, - {CAT_Mn, 0x11D47, 0}, - {CAT_Nd, 0x11D50, 9}, - {CAT_Lo, 0x11D60, 5}, - {CAT_Lo, 0x11D67, 1}, - {CAT_Lo, 0x11D6A, 31}, - {CAT_Mc, 0x11D8A, 4}, - {CAT_Mn, 0x11D90, 1}, - {CAT_Mc, 0x11D93, 1}, - {CAT_Mn, 0x11D95, 0}, - {CAT_Mc, 0x11D96, 0}, - {CAT_Mn, 0x11D97, 0}, - {CAT_Lo, 0x11D98, 0}, - {CAT_Nd, 0x11DA0, 9}, - {CAT_Lo, 0x11EE0, 18}, - {CAT_Mn, 0x11EF3, 1}, - {CAT_Mc, 0x11EF5, 1}, - {CAT_Po, 0x11EF7, 1}, - {CAT_Mn, 0x11F00, 1}, - {CAT_Lo, 0x11F02, 0}, - {CAT_Mc, 0x11F03, 0}, - {CAT_Lo, 0x11F04, 12}, - {CAT_Lo, 0x11F12, 33}, - {CAT_Mc, 0x11F34, 1}, - {CAT_Mn, 0x11F36, 4}, - {CAT_Mc, 0x11F3E, 1}, - {CAT_Mn, 0x11F40, 0}, - {CAT_Mc, 0x11F41, 0}, - {CAT_Mn, 0x11F42, 0}, - {CAT_Po, 0x11F43, 12}, - {CAT_Nd, 0x11F50, 9}, - {CAT_Lo, 0x11FB0, 0}, - {CAT_No, 0x11FC0, 20}, - {CAT_So, 0x11FD5, 7}, - {CAT_Sc, 0x11FDD, 3}, - {CAT_So, 0x11FE1, 16}, - {CAT_Po, 0x11FFF, 0}, - {CAT_Lo, 0x12000, 921}, - {CAT_Nl, 0x12400, 110}, - {CAT_Po, 0x12470, 4}, - {CAT_Lo, 0x12480, 195}, - {CAT_Lo, 0x12F90, 96}, - {CAT_Po, 0x12FF1, 1}, - {CAT_Lo, 0x13000, 1071}, - {CAT_Cf, 0x13430, 15}, - {CAT_Mn, 0x13440, 0}, - {CAT_Lo, 0x13441, 5}, - {CAT_Mn, 0x13447, 14}, - {CAT_Lo, 0x14400, 582}, - {CAT_Lo, 0x16800, 568}, - {CAT_Lo, 0x16A40, 30}, - {CAT_Nd, 0x16A60, 9}, - {CAT_Po, 0x16A6E, 1}, - {CAT_Lo, 0x16A70, 78}, - {CAT_Nd, 0x16AC0, 9}, - {CAT_Lo, 0x16AD0, 29}, - {CAT_Mn, 0x16AF0, 4}, - {CAT_Po, 0x16AF5, 0}, - {CAT_Lo, 0x16B00, 47}, - {CAT_Mn, 0x16B30, 6}, - {CAT_Po, 0x16B37, 4}, - {CAT_So, 0x16B3C, 3}, - {CAT_Lm, 0x16B40, 3}, - {CAT_Po, 0x16B44, 0}, - {CAT_So, 0x16B45, 0}, - {CAT_Nd, 0x16B50, 9}, - {CAT_No, 0x16B5B, 6}, - {CAT_Lo, 0x16B63, 20}, - {CAT_Lo, 0x16B7D, 18}, - {CAT_LC, 0x16E40, 63}, - {CAT_No, 0x16E80, 22}, - {CAT_Po, 0x16E97, 3}, - {CAT_Lo, 0x16F00, 74}, - {CAT_Mn, 0x16F4F, 0}, - {CAT_Lo, 0x16F50, 0}, - {CAT_Mc, 0x16F51, 54}, - {CAT_Mn, 0x16F8F, 3}, - {CAT_Lm, 0x16F93, 12}, - {CAT_Lm, 0x16FE0, 1}, - {CAT_Po, 0x16FE2, 0}, - {CAT_Lm, 0x16FE3, 0}, - {CAT_Mn, 0x16FE4, 0}, - {CAT_Mc, 0x16FF0, 1}, - {CAT_Lo, 0x17000, 6135}, - {CAT_Lo, 0x18800, 1237}, - {CAT_Lo, 0x18D00, 8}, - {CAT_Lm, 0x1AFF0, 3}, - {CAT_Lm, 0x1AFF5, 6}, - {CAT_Lm, 0x1AFFD, 1}, - {CAT_Lo, 0x1B000, 290}, - {CAT_Lo, 0x1B132, 0}, - {CAT_Lo, 0x1B150, 2}, - {CAT_Lo, 0x1B155, 0}, - {CAT_Lo, 0x1B164, 3}, - {CAT_Lo, 0x1B170, 395}, - {CAT_Lo, 0x1BC00, 106}, - {CAT_Lo, 0x1BC70, 12}, - {CAT_Lo, 0x1BC80, 8}, - {CAT_Lo, 0x1BC90, 9}, - {CAT_So, 0x1BC9C, 0}, - {CAT_Mn, 0x1BC9D, 1}, - {CAT_Po, 0x1BC9F, 0}, - {CAT_Cf, 0x1BCA0, 3}, - {CAT_Mn, 0x1CF00, 45}, - {CAT_Mn, 0x1CF30, 22}, - {CAT_So, 0x1CF50, 115}, - {CAT_So, 0x1D000, 245}, - {CAT_So, 0x1D100, 38}, - {CAT_So, 0x1D129, 59}, - {CAT_Mc, 0x1D165, 1}, - {CAT_Mn, 0x1D167, 2}, - {CAT_So, 0x1D16A, 2}, - {CAT_Mc, 0x1D16D, 5}, - {CAT_Cf, 0x1D173, 7}, - {CAT_Mn, 0x1D17B, 7}, - {CAT_So, 0x1D183, 1}, - {CAT_Mn, 0x1D185, 6}, - {CAT_So, 0x1D18C, 29}, - {CAT_Mn, 0x1D1AA, 3}, - {CAT_So, 0x1D1AE, 60}, - {CAT_So, 0x1D200, 65}, - {CAT_Mn, 0x1D242, 2}, - {CAT_So, 0x1D245, 0}, - {CAT_No, 0x1D2C0, 19}, - {CAT_No, 0x1D2E0, 19}, - {CAT_So, 0x1D300, 86}, - {CAT_No, 0x1D360, 24}, - {CAT_Lu, 0x1D400, 25}, - {CAT_Ll, 0x1D41A, 25}, - {CAT_Lu, 0x1D434, 25}, - {CAT_Ll, 0x1D44E, 6}, - {CAT_Ll, 0x1D456, 17}, - {CAT_Lu, 0x1D468, 25}, - {CAT_Ll, 0x1D482, 25}, - {CAT_Lu, 0x1D49C, 0}, - {CAT_Lu, 0x1D49E, 1}, - {CAT_Lu, 0x1D4A2, 0}, - {CAT_Lu, 0x1D4A5, 1}, - {CAT_Lu, 0x1D4A9, 3}, - {CAT_Lu, 0x1D4AE, 7}, - {CAT_Ll, 0x1D4B6, 3}, - {CAT_Ll, 0x1D4BB, 0}, - {CAT_Ll, 0x1D4BD, 6}, - {CAT_Ll, 0x1D4C5, 10}, - {CAT_Lu, 0x1D4D0, 25}, - {CAT_Ll, 0x1D4EA, 25}, - {CAT_Lu, 0x1D504, 1}, - {CAT_Lu, 0x1D507, 3}, - {CAT_Lu, 0x1D50D, 7}, - {CAT_Lu, 0x1D516, 6}, - {CAT_Ll, 0x1D51E, 25}, - {CAT_Lu, 0x1D538, 1}, - {CAT_Lu, 0x1D53B, 3}, - {CAT_Lu, 0x1D540, 4}, - {CAT_Lu, 0x1D546, 0}, - {CAT_Lu, 0x1D54A, 6}, - {CAT_Ll, 0x1D552, 25}, - {CAT_Lu, 0x1D56C, 25}, - {CAT_Ll, 0x1D586, 25}, - {CAT_Lu, 0x1D5A0, 25}, - {CAT_Ll, 0x1D5BA, 25}, - {CAT_Lu, 0x1D5D4, 25}, - {CAT_Ll, 0x1D5EE, 25}, - {CAT_Lu, 0x1D608, 25}, - {CAT_Ll, 0x1D622, 25}, - {CAT_Lu, 0x1D63C, 25}, - {CAT_Ll, 0x1D656, 25}, - {CAT_Lu, 0x1D670, 25}, - {CAT_Ll, 0x1D68A, 27}, - {CAT_Lu, 0x1D6A8, 24}, - {CAT_Sm, 0x1D6C1, 0}, - {CAT_Ll, 0x1D6C2, 24}, - {CAT_Sm, 0x1D6DB, 0}, - {CAT_Ll, 0x1D6DC, 5}, - {CAT_Lu, 0x1D6E2, 24}, - {CAT_Sm, 0x1D6FB, 0}, - {CAT_Ll, 0x1D6FC, 24}, - {CAT_Sm, 0x1D715, 0}, - {CAT_Ll, 0x1D716, 5}, - {CAT_Lu, 0x1D71C, 24}, - {CAT_Sm, 0x1D735, 0}, - {CAT_Ll, 0x1D736, 24}, - {CAT_Sm, 0x1D74F, 0}, - {CAT_Ll, 0x1D750, 5}, - {CAT_Lu, 0x1D756, 24}, - {CAT_Sm, 0x1D76F, 0}, - {CAT_Ll, 0x1D770, 24}, - {CAT_Sm, 0x1D789, 0}, - {CAT_Ll, 0x1D78A, 5}, - {CAT_Lu, 0x1D790, 24}, - {CAT_Sm, 0x1D7A9, 0}, - {CAT_Ll, 0x1D7AA, 24}, - {CAT_Sm, 0x1D7C3, 0}, - {CAT_Ll, 0x1D7C4, 5}, - {CAT_Lu, 0x1D7CA, 0}, - {CAT_Ll, 0x1D7CB, 0}, - {CAT_Nd, 0x1D7CE, 49}, - {CAT_So, 0x1D800, 511}, - {CAT_Mn, 0x1DA00, 54}, - {CAT_So, 0x1DA37, 3}, - {CAT_Mn, 0x1DA3B, 49}, - {CAT_So, 0x1DA6D, 7}, - {CAT_Mn, 0x1DA75, 0}, - {CAT_So, 0x1DA76, 13}, - {CAT_Mn, 0x1DA84, 0}, - {CAT_So, 0x1DA85, 1}, - {CAT_Po, 0x1DA87, 4}, - {CAT_Mn, 0x1DA9B, 4}, - {CAT_Mn, 0x1DAA1, 14}, - {CAT_Ll, 0x1DF00, 9}, - {CAT_Lo, 0x1DF0A, 0}, - {CAT_Ll, 0x1DF0B, 19}, - {CAT_Ll, 0x1DF25, 5}, - {CAT_Mn, 0x1E000, 6}, - {CAT_Mn, 0x1E008, 16}, - {CAT_Mn, 0x1E01B, 6}, - {CAT_Mn, 0x1E023, 1}, - {CAT_Mn, 0x1E026, 4}, - {CAT_Lm, 0x1E030, 61}, - {CAT_Mn, 0x1E08F, 0}, - {CAT_Lo, 0x1E100, 44}, - {CAT_Mn, 0x1E130, 6}, - {CAT_Lm, 0x1E137, 6}, - {CAT_Nd, 0x1E140, 9}, - {CAT_Lo, 0x1E14E, 0}, - {CAT_So, 0x1E14F, 0}, - {CAT_Lo, 0x1E290, 29}, - {CAT_Mn, 0x1E2AE, 0}, - {CAT_Lo, 0x1E2C0, 43}, - {CAT_Mn, 0x1E2EC, 3}, - {CAT_Nd, 0x1E2F0, 9}, - {CAT_Sc, 0x1E2FF, 0}, - {CAT_Lo, 0x1E4D0, 26}, - {CAT_Lm, 0x1E4EB, 0}, - {CAT_Mn, 0x1E4EC, 3}, - {CAT_Nd, 0x1E4F0, 9}, - {CAT_Lo, 0x1E7E0, 6}, - {CAT_Lo, 0x1E7E8, 3}, - {CAT_Lo, 0x1E7ED, 1}, - {CAT_Lo, 0x1E7F0, 14}, - {CAT_Lo, 0x1E800, 196}, - {CAT_No, 0x1E8C7, 8}, - {CAT_Mn, 0x1E8D0, 6}, - {CAT_LC, 0x1E900, 67}, - {CAT_Mn, 0x1E944, 6}, - {CAT_Lm, 0x1E94B, 0}, - {CAT_Nd, 0x1E950, 9}, - {CAT_Po, 0x1E95E, 1}, - {CAT_No, 0x1EC71, 58}, - {CAT_So, 0x1ECAC, 0}, - {CAT_No, 0x1ECAD, 2}, - {CAT_Sc, 0x1ECB0, 0}, - {CAT_No, 0x1ECB1, 3}, - {CAT_No, 0x1ED01, 44}, - {CAT_So, 0x1ED2E, 0}, - {CAT_No, 0x1ED2F, 14}, - {CAT_Lo, 0x1EE00, 3}, - {CAT_Lo, 0x1EE05, 26}, - {CAT_Lo, 0x1EE21, 1}, - {CAT_Lo, 0x1EE24, 0}, - {CAT_Lo, 0x1EE27, 0}, - {CAT_Lo, 0x1EE29, 9}, - {CAT_Lo, 0x1EE34, 3}, - {CAT_Lo, 0x1EE39, 0}, - {CAT_Lo, 0x1EE3B, 0}, - {CAT_Lo, 0x1EE42, 0}, - {CAT_Lo, 0x1EE47, 0}, - {CAT_Lo, 0x1EE49, 0}, - {CAT_Lo, 0x1EE4B, 0}, - {CAT_Lo, 0x1EE4D, 2}, - {CAT_Lo, 0x1EE51, 1}, - {CAT_Lo, 0x1EE54, 0}, - {CAT_Lo, 0x1EE57, 0}, - {CAT_Lo, 0x1EE59, 0}, - {CAT_Lo, 0x1EE5B, 0}, - {CAT_Lo, 0x1EE5D, 0}, - {CAT_Lo, 0x1EE5F, 0}, - {CAT_Lo, 0x1EE61, 1}, - {CAT_Lo, 0x1EE64, 0}, - {CAT_Lo, 0x1EE67, 3}, - {CAT_Lo, 0x1EE6C, 6}, - {CAT_Lo, 0x1EE74, 3}, - {CAT_Lo, 0x1EE79, 3}, - {CAT_Lo, 0x1EE7E, 0}, - {CAT_Lo, 0x1EE80, 9}, - {CAT_Lo, 0x1EE8B, 16}, - {CAT_Lo, 0x1EEA1, 2}, - {CAT_Lo, 0x1EEA5, 4}, - {CAT_Lo, 0x1EEAB, 16}, - {CAT_Sm, 0x1EEF0, 1}, - {CAT_So, 0x1F000, 43}, - {CAT_So, 0x1F030, 99}, - {CAT_So, 0x1F0A0, 14}, - {CAT_So, 0x1F0B1, 14}, - {CAT_So, 0x1F0C1, 14}, - {CAT_So, 0x1F0D1, 36}, - {CAT_No, 0x1F100, 12}, - {CAT_So, 0x1F10D, 160}, - {CAT_So, 0x1F1E6, 28}, - {CAT_So, 0x1F210, 43}, - {CAT_So, 0x1F240, 8}, - {CAT_So, 0x1F250, 1}, - {CAT_So, 0x1F260, 5}, - {CAT_So, 0x1F300, 250}, - {CAT_Sk, 0x1F3FB, 4}, - {CAT_So, 0x1F400, 727}, - {CAT_So, 0x1F6DC, 16}, - {CAT_So, 0x1F6F0, 12}, - {CAT_So, 0x1F700, 118}, - {CAT_So, 0x1F77B, 94}, - {CAT_So, 0x1F7E0, 11}, - {CAT_So, 0x1F7F0, 0}, - {CAT_So, 0x1F800, 11}, - {CAT_So, 0x1F810, 55}, - {CAT_So, 0x1F850, 9}, - {CAT_So, 0x1F860, 39}, - {CAT_So, 0x1F890, 29}, - {CAT_So, 0x1F8B0, 1}, - {CAT_So, 0x1F900, 339}, - {CAT_So, 0x1FA60, 13}, - {CAT_So, 0x1FA70, 12}, - {CAT_So, 0x1FA80, 8}, - {CAT_So, 0x1FA90, 45}, - {CAT_So, 0x1FABF, 6}, - {CAT_So, 0x1FACE, 13}, - {CAT_So, 0x1FAE0, 8}, - {CAT_So, 0x1FAF0, 8}, - {CAT_So, 0x1FB00, 146}, - {CAT_So, 0x1FB94, 54}, - {CAT_Nd, 0x1FBF0, 9}, - {CAT_Lo, 0x20000, 42719}, - {CAT_Lo, 0x2A700, 4153}, - {CAT_Lo, 0x2B740, 221}, - {CAT_Lo, 0x2B820, 5761}, - {CAT_Lo, 0x2CEB0, 7472}, - {CAT_Lo, 0x2F800, 541}, - {CAT_Lo, 0x30000, 4938}, - {CAT_Lo, 0x31350, 4191}, - {CAT_Cf, 0xE0001, 0}, - {CAT_Cf, 0xE0020, 95}, - {CAT_Mn, 0xE0100, 239}, diff --git a/lib/ctype/ctype.tex b/lib/ctype/ctype.tex deleted file mode 100644 index 1cd223e..0000000 --- a/lib/ctype/ctype.tex +++ /dev/null @@ -1,143 +0,0 @@ -@node Ctype -@chapter Character Type Macros and Functions (@file{ctype.h}) -This chapter groups macros (which are also available as subroutines) -to classify characters into several categories (alphabetic, -numeric, control characters, whitespace, and so on), or to perform -simple character mappings. - -The header file @file{ctype.h} defines the macros. -@menu -* isalnum:: Alphanumeric character predicate (isalnum, isalnum_l) -* isalpha:: Alphabetic character predicate (isalpha, isalpha_l) -* isascii:: ASCII character predicate (isascii, isascii_l) -* isblank:: Blank character predicate (isblank, isblank_l) -* iscntrl:: Control character predicate (iscntrl, iscntrl_l) -* isdigit:: Decimal digit predicate (isdigit, isdigit_l) -* islower:: Lowercase character predicate (islower, islower_l) -* isprint:: Printable character predicates (isprint, isprint_l. isgraph, isgraph_l) -* ispunct:: Punctuation character predicate (ispunct, ispunct_l) -* isspace:: Whitespace character predicate (isspace, isspace_l) -* isupper:: Uppercase character predicate (isupper, isupper_l) -* isxdigit:: Hexadecimal digit predicate (isxdigit, isxdigit_l) -* toascii:: Force integers to ASCII range (toascii, toascii_l) -* tolower:: Translate characters to lowercase (tolower, tolower_l) -* toupper:: Translate characters to uppercase (toupper, toupper_l) -* iswalnum:: Alphanumeric wide character predicate (iswalnum, iswalnum_l) -* iswalpha:: Alphabetic wide character predicate (iswalpha, iswalpha_l) -* iswblank:: Blank wide character predicate (iswblank, iswblank_l) -* iswcntrl:: Control wide character predicate (iswcntrl, iswcntrl_l) -* iswdigit:: Decimal digit wide character predicate (iswdigit, iswdigit_l) -* iswgraph:: Graphic wide character predicate (iswgraph, iswgraph_l) -* iswlower:: Lowercase wide character predicate (iswlower, iswlower_l) -* iswprint:: Printable wide character predicate (iswprint, iswprint_l) -* iswpunct:: Punctuation wide character predicate (iswpunct, iswpunct_l) -* iswspace:: Whitespace wide character predicate (iswspace, iswspace_l) -* iswupper:: Uppercase wide character predicate (iswupper, iswupper_l) -* iswxdigit:: Hexadecimal digit wide character predicate (iswxdigit, iswxdigit_l) -* iswctype:: Extensible wide-character test (iswctype, iswctype_l) -* wctype:: Compute wide-character test type (wctype, wctype_l) -* towlower:: Translate wide characters to lowercase (towlower, towlower_l) -* towupper:: Translate wide characters to uppercase (towupper, towupper_l) -* towctrans:: Extensible wide-character translation (towctrans, towctrans_l) -* wctrans:: Compute wide-character translation type (wctrans, wctrans_l) -@end menu - -@page -@include ctype/isalnum.def - -@page -@include ctype/isalpha.def - -@page -@include ctype/isascii.def - -@page -@include ctype/isblank.def - -@page -@include ctype/iscntrl.def - -@page -@include ctype/isdigit.def - -@page -@include ctype/islower.def - -@page -@include ctype/isprint.def - -@page -@include ctype/ispunct.def - -@page -@include ctype/isspace.def - -@page -@include ctype/isupper.def - -@page -@include ctype/isxdigit.def - -@page -@include ctype/toascii.def - -@page -@include ctype/tolower.def - -@page -@include ctype/toupper.def - -@page -@include ctype/iswalnum.def - -@page -@include ctype/iswalpha.def - -@page -@include ctype/iswcntrl.def - -@page -@include ctype/iswblank.def - -@page -@include ctype/iswdigit.def - -@page -@include ctype/iswgraph.def - -@page -@include ctype/iswlower.def - -@page -@include ctype/iswprint.def - -@page -@include ctype/iswpunct.def - -@page -@include ctype/iswspace.def - -@page -@include ctype/iswupper.def - -@page -@include ctype/iswxdigit.def - -@page -@include ctype/iswctype.def - -@page -@include ctype/wctype.def - -@page -@include ctype/towlower.def - -@page -@include ctype/towupper.def - -@page -@include ctype/towctrans.def - -@page -@include ctype/wctrans.def - diff --git a/lib/ctype/ctype_.c b/lib/ctype/ctype_.c deleted file mode 100644 index 32ce4f3..0000000 --- a/lib/ctype/ctype_.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (c) 1989 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)ctype_.c 5.6 (Berkeley) 6/1/90"; -#endif /* LIBC_SCCS and not lint */ - -#include "ctype_.h" -#include "../locale/setlocale.h" - -#define _CTYPE_DATA_0_127 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C|_S, _C|_S, _C|_S, _C|_S, _C|_S, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _N, _N, _N, _N, _N, _N, _N, _N, \ - _N, _N, _P, _P, _P, _P, _P, _P, \ - _P, _U|_X, _U|_X, _U|_X, _U|_X, _U|_X, _U|_X, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _P, _P, _P, _P, _P, \ - _P, _L|_X, _L|_X, _L|_X, _L|_X, _L|_X, _L|_X, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _P, _P, _P, _P, _C - -#define _CTYPE_DATA_128_255 \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0 - -#if defined(_MB_CAPABLE) -#if defined(_MB_EXTENDED_CHARSETS_ISO) -#include "ctype_iso.h" -#endif -#if defined(_MB_EXTENDED_CHARSETS_WINDOWS) -#include "ctype_cp.h" -#endif -#endif - -#if defined(ALLOW_NEGATIVE_CTYPE_INDEX) -/* No static const on Cygwin since it's referenced and potentially overwritten - for compatibility with older applications. */ -#ifndef __CYGWIN__ -const -#endif -char _ctype_b[128 + 256] = { - _CTYPE_DATA_128_255, - _CTYPE_DATA_0_127, - _CTYPE_DATA_128_255 -}; - -# ifdef __CYGWIN__ -/* For backward compatibility */ -char __EXPORT *__ctype_ptr__ = DEFAULT_CTYPE_PTR; - -# ifdef __x86_64__ -__asm__ (" \n\ - .data \n\ - .globl _ctype_ \n\ - .set _ctype_,_ctype_b+127 \n\ - .text \n\ -"); -# else -__asm__ (" \n\ - .data \n\ - .globl __ctype_ \n\ - .set __ctype_,__ctype_b+127 \n\ - .text \n\ -"); -# endif -# else /* !__CYGWIN__ */ - -const char _ctype_[1 + 256] = { - 0, - _CTYPE_DATA_0_127, - _CTYPE_DATA_128_255 -}; -# endif /* !__CYGWIN__ */ - -#else /* !ALLOW_NEGATIVE_CTYPE_INDEX */ - -const char _ctype_[1 + 256] = { - 0, - _CTYPE_DATA_0_127, - _CTYPE_DATA_128_255 -}; - -#endif /* !ALLOW_NEGATIVE_CTYPE_INDEX */ - -#if defined(_MB_CAPABLE) -/* Cygwin has its own implementation which additionally maintains backward - compatibility with applications built under older Cygwin releases. */ -#ifndef __CYGWIN__ -void -__set_ctype (struct __locale_t *loc, const char *charset) -{ -#if defined(_MB_EXTENDED_CHARSETS_ISO) || defined(_MB_EXTENDED_CHARSETS_WINDOWS) - int idx; -#endif - char *ctype_ptr = NULL; - - switch (*charset) - { -#if defined(_MB_EXTENDED_CHARSETS_ISO) - case 'I': - idx = __iso_8859_index (charset + 9); - /* The ctype table has a leading ISO-8859-1 element so we have to add - 1 to the index returned by __iso_8859_index. If __iso_8859_index - returns < 0, it's ISO-8859-1. */ - if (idx < 0) - idx = 0; - else - ++idx; - ctype_ptr = __ctype_iso[idx]; - break; -#endif -#if defined(_MB_EXTENDED_CHARSETS_WINDOWS) - case 'C': - idx = __cp_index (charset + 2); - if (idx < 0) - break; - ctype_ptr = __ctype_cp[idx]; - break; -#endif - default: - break; - } - if (!ctype_ptr) - { -# if defined(ALLOW_NEGATIVE_CTYPE_INDEX) - ctype_ptr = _ctype_b; -# else - ctype_ptr = _ctype_; -# endif - } -# if defined(ALLOW_NEGATIVE_CTYPE_INDEX) - loc->ctype_ptr = ctype_ptr + 127; -# else - loc->ctype_ptr = ctype_ptr; -# endif -} -#endif /* !__CYGWIN__ */ -#endif /* _MB_CAPABLE */ diff --git a/lib/ctype/ctype_.h b/lib/ctype/ctype_.h deleted file mode 100644 index a73870b..0000000 --- a/lib/ctype/ctype_.h +++ /dev/null @@ -1,22 +0,0 @@ -#include - -#if (defined(__GNUC__) && !defined(__CHAR_UNSIGNED__) && !defined(COMPACT_CTYPE)) || defined (__CYGWIN__) -#define ALLOW_NEGATIVE_CTYPE_INDEX -#endif - -#ifdef ALLOW_NEGATIVE_CTYPE_INDEX - -#ifndef __CYGWIN__ - extern const char _ctype_b[]; -#else - extern char _ctype_b[]; -#endif -# define DEFAULT_CTYPE_PTR ((char *) _ctype_b + 127) - -#else /* !ALLOW_NEGATIVE_CTYPE_INDEX */ - - /* _ctype_ is declared in . */ -# define DEFAULT_CTYPE_PTR ((char *) _ctype_) - -#endif /* !ALLOW_NEGATIVE_CTYPE_INDEX */ - diff --git a/lib/ctype/ctype_cp.h b/lib/ctype/ctype_cp.h deleted file mode 100644 index f6aa2e5..0000000 --- a/lib/ctype/ctype_cp.h +++ /dev/null @@ -1,801 +0,0 @@ -/* ctype table definitions for Windows codepage charsets. - Included by ctype_.c. */ - -#define _CTYPE_CP437_128_254 \ - _U, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _U, _U, \ - _U, _L, _U, _L, _L, _L, _L, _L, \ - _L, _U, _U, _P, _P, _P, _P, _P, \ - _L, _L, _L, _L, _L, _L, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _L, _U, _L, _U, _L, _P, _L, \ - _U, _U, _U, _L, _P, _L, _L, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P -#define _CTYPE_CP437_255 _S|_B -#define _CTYPE_CP720_128_254 \ - 0, 0, _L, _L, 0, _L, 0, _L, \ - _L, _L, _L, _L, _L, 0, 0, 0, \ - 0, _P, _P, _L, _P, _P, _L, _L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _P, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _P, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P -#define _CTYPE_CP720_255 _S|_B -#define _CTYPE_CP737_128_254 \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _U, _U, _U, _U, _U, _U, \ - _U, _P, _P, _P, _U, _U, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P -#define _CTYPE_CP737_255 _S|_B -#define _CTYPE_CP775_128_254 \ - _U, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _U, _L, _L, _U, _U, _U, \ - _U, _L, _U, _L, _L, _U, _P, _U, \ - _L, _U, _U, _L, _P, _U, _P, _P, \ - _U, _U, _L, _U, _L, _L, _P, _P, \ - _P, _P, _P, _P, _P, _U, _P, _P, \ - _P, _P, _P, _P, _P, _U, _U, _U, \ - _U, _P, _P, _P, _P, _U, _U, _P, \ - _P, _P, _P, _P, _P, _P, _U, _U, \ - _P, _P, _P, _P, _P, _P, _P, _U, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _P, _P, _P, _P, _P, _P, _P, \ - _U, _L, _U, _U, _L, _U, _P, _L, \ - _U, _L, _U, _L, _L, _U, _U, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P -#define _CTYPE_CP775_255 _S|_B -#define _CTYPE_CP850_128_254 \ - _U, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _U, _U, \ - _U, _L, _U, _L, _L, _L, _L, _L, \ - _L, _U, _U, _L, _P, _U, _P, _L, \ - _L, _L, _L, _L, _L, _U, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _U, _U, _U, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _L, _U, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _U, _U, _U, _U, _L, _U, _U, \ - _U, _P, _P, _P, _P, _P, _U, _P, \ - _U, _L, _U, _U, _L, _U, _P, _L, \ - _U, _U, _U, _U, _L, _U, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P -#define _CTYPE_CP850_255 _S|_B -#define _CTYPE_CP852_128_254 \ - _U, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _U, _L, _L, _U, _U, _U, \ - _U, _U, _L, _L, _L, _U, _L, _U, \ - _L, _U, _U, _U, _L, _U, _P, _L, \ - _L, _L, _L, _L, _U, _L, _U, _L, \ - _U, _L, _P, _L, _U, _L, _P, _P, \ - _P, _P, _P, _P, _P, _U, _U, _U, \ - _U, _P, _P, _P, _P, _U, _L, _P, \ - _P, _P, _P, _P, _P, _P, _U, _L, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _U, _U, _U, _L, _U, _U, _U, \ - _L, _P, _P, _P, _P, _U, _U, _P, \ - _U, _L, _U, _U, _L, _L, _U, _L, \ - _U, _U, _L, _U, _L, _U, _L, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _L, _U, _L, _P -#define _CTYPE_CP852_255 _S|_B -#define _CTYPE_CP855_128_254 \ - _L, _U, _L, _U, _L, _U, _L, _U, \ - _L, _U, _L, _U, _L, _U, _L, _U, \ - _L, _U, _L, _U, _L, _U, _L, _U, \ - _L, _U, _L, _U, _L, _U, _L, _U, \ - _L, _U, _L, _U, _L, _U, _L, _U, \ - _L, _U, _L, _U, _L, _U, _P, _P, \ - _P, _P, _P, _P, _P, _L, _U, _L, \ - _U, _P, _P, _P, _P, _L, _U, _P, \ - _P, _P, _P, _P, _P, _P, _L, _U, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _U, _L, _U, _L, _U, _L, _U, \ - _L, _P, _P, _P, _P, _U, _L, _P, \ - _U, _L, _U, _L, _U, _L, _U, _L, \ - _U, _L, _U, _L, _U, _L, _U, _P, \ - _P, _L, _U, _L, _U, _L, _U, _L, \ - _U, _L, _U, _L, _U, _P, _P -#define _CTYPE_CP855_255 _S|_B -#define _CTYPE_CP857_128_254 \ - _U, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _U, _U, \ - _U, _L, _U, _L, _L, _L, _L, _L, \ - _U, _U, _U, _L, _P, _U, _U, _L, \ - _L, _L, _L, _L, _L, _U, _U, _L, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _U, _U, _U, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _L, _U, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _U, _U, _U, 0, _U, _U, \ - _U, _P, _P, _P, _P, _P, _U, _P, \ - _U, _L, _U, _U, _L, _U, _P, 0, \ - _P, _U, _U, _U, _L, _L, _P, _P, \ - _P, _P, 0, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P -#define _CTYPE_CP857_255 _S|_B -#define _CTYPE_CP858_128_254 \ - _U, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _U, _U, \ - _U, _L, _U, _L, _L, _L, _L, _L, \ - _L, _U, _U, _L, _P, _U, _P, _L, \ - _L, _L, _L, _L, _L, _U, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _U, _U, _U, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _L, _U, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _U, _U, _U, _U, _P, _U, _U, \ - _U, _P, _P, _P, _P, _P, _U, _P, \ - _U, _L, _U, _U, _L, _U, _P, _L, \ - _U, _U, _U, _U, _L, _U, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P -#define _CTYPE_CP858_255 _S|_B -#define _CTYPE_CP862_128_254 \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _P, _P, _P, _P, _L, \ - _L, _L, _L, _L, _L, _U, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _L, _U, _L, _U, _L, _P, _L, \ - _U, _U, _U, _L, _P, _L, _L, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P -#define _CTYPE_CP862_255 _S|_B -#define _CTYPE_CP866_128_254 \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _U, _L, _U, _L, _U, _L, _U, _L, \ - _P, _P, _P, _P, _P, _P, _P -#define _CTYPE_CP866_255 _S|_B -#define _CTYPE_CP874_128_254 \ - _P, 0, 0, 0, 0, _P, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, _P, _P, _P, _P, _P, _P, _P, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - _S|_B, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, 0, 0, 0, 0, _P, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _U|_L, _U|_L, 0, 0, 0 -#define _CTYPE_CP874_255 0 -#define _CTYPE_CP1125_128_254 \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _U, _L, _U, _L, _U, _L, _U, _L, \ - _U, _L, _P, _P, _P, _P, _P -#define _CTYPE_CP1125_255 _S|_B -#define _CTYPE_CP1250_128_254 \ - _P, 0, _P, 0, _P, _P, _P, _P, \ - 0, _P, _U, _P, _U, _U, _U, _U, \ - 0, _P, _P, _P, _P, _P, _P, _P, \ - 0, _P, _L, _P, _L, _L, _L, _L, \ - _S|_B, _P, _P, _U, _P, _U, _P, _P, \ - _P, _P, _U, _P, _P, _P, _P, _U, \ - _P, _P, _P, _L, _P, _P, _P, _P, \ - _P, _L, _L, _P, _U, _P, _L, _L, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _P, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_CP1250_255 _P -#define _CTYPE_CP1251_128_254 \ - _U, _U, _P, _L, _P, _P, _P, _P, \ - _P, _P, _U, _P, _U, _U, _U, _U, \ - _L, _P, _P, _P, _P, _P, _P, _P, \ - 0, _P, _L, _P, _L, _L, _L, _L, \ - _S|_B, _U, _L, _U, _P, _U, _P, _P, \ - _U, _P, _U, _P, _P, _P, _P, _U, \ - _P, _P, _U, _L, _L, _P, _P, _P, \ - _L, _P, _L, _P, _L, _U, _L, _L, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_CP1251_255 _L -#define _CTYPE_CP1252_128_254 \ - _P, 0, _P, _L, _P, _P, _P, _P, \ - _P, _P, _U, _P, _U, _U, 0, 0, \ - 0, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _L, _P, _L, 0, _L, _U, \ - _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _P, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_CP1252_255 _L -#define _CTYPE_CP1253_128_254 \ - _P, 0, _P, _L, _P, _P, _P, _P, \ - 0, _P, 0, _P, 0, 0, 0, 0, \ - 0, _P, _P, _P, _P, _P, _P, _P, \ - 0, _P, 0, _P, 0, 0, 0, 0, \ - _S|_B, _P, _U, _P, _P, _P, _P, _P, \ - _P, _P, 0, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _U, _U, _U, _P, _U, _P, _U, _U, \ - _L, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_CP1253_255 _L -#define _CTYPE_CP1254_128_254 \ - _P, 0, _P, _L, _P, _P, _P, _P, \ - _P, _P, _U, _P, _U, 0, 0, 0, \ - 0, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _L, _P, _L, 0, 0, _U, \ - _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _P, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_CP1254_255 _L -#define _CTYPE_CP1255_128_254 \ - _P, 0, _P, _L, _P, _P, _P, _P, \ - _P, _P, 0, _P, 0, 0, 0, 0, \ - 0, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, 0, _P, 0, 0, 0, 0, \ - _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _U|_L, _U|_L, _U|_L, _P, \ - _P, 0, 0, 0, 0, 0, 0, 0, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, 0, 0, _P, _P -#define _CTYPE_CP1255_255 0 -#define _CTYPE_CP1256_128_254 \ - _P, _U|_L, _P, _L, _P, _P, _P, _P, \ - _P, _P, _U|_L, _P, _U, _U|_L, _U|_L, _U|_L, \ - _U|_L, _P, _P, _P, _P, _P, _P, _P, \ - _U|_L, _P, _U|_L, _P, _L, _P, _P, _U|_L, \ - _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _U|_L, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _P, \ - _U|_L, _U|_L, _U|_L, _U|_L, _P, _U|_L, _U|_L, _U|_L, \ - _L, _U|_L, _L, _U|_L, _U|_L, _U|_L, _U|_L, _L, \ - _L, _L, _L, _L, _U|_L, _U|_L, _L, _L, \ - _P, _P, _P, _P, _L, _P, _P, _P, \ - _P, _L, _P, _L, _L, _P, _P -#define _CTYPE_CP1256_255 _U|_L -#define _CTYPE_CP1257_128_254 \ - _P, 0, _P, 0, _P, _P, _P, _P, \ - 0, _P, 0, _P, 0, _P, _P, _P, \ - 0, _P, _P, _P, _P, _P, _P, _P, \ - 0, _P, 0, _P, 0, _P, _P, 0, \ - _S|_B, 0, _P, _P, _P, 0, _P, _P, \ - _U, _P, _U, _P, _P, _P, _P, _U, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _P, _L, _P, _P, _P, _P, _L, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _P, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_CP1257_255 _P -#define _CTYPE_CP1258_128_254 \ - _P, 0, _P, _L, _P, _P, _P, _P, \ - _P, _P, 0, _P, _U, 0, 0, 0, \ - 0, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, 0, _P, _L, 0, 0, _U, \ - _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _P, _U, _U, _U, \ - _U, _U, _P, _U, _U, _U, _U, _P, \ - _U, _U, _U, _U, _U, _U, _P, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _P, _L, _L, _L, \ - _L, _L, _P, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _P -#define _CTYPE_CP1258_255 _L -#define _CTYPE_CP20866_128_254 \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _S|_B, _P, _P, _P, _P, _P, \ - _P, _P, _P, _L, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _U, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U -#define _CTYPE_CP20866_255 _U -#define _CTYPE_CP21866_128_254 \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _S|_B, _P, _P, _P, _P, _P, \ - _P, _P, _P, _L, _L, _P, _L, _L, \ - _P, _P, _P, _P, _P, _L, _P, _P, \ - _P, _P, _P, _U, _U, _P, _U, _U, \ - _P, _P, _P, _P, _P, _U, _P, _P, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U -#define _CTYPE_CP21866_255 _U -#define _CTYPE_GEORGIAN_PS_128_254 \ - _P, 0, _P, _L, _P, _P, _P, _P, \ - _P, _P, _U, _P, _U, _U, 0, 0, \ - 0, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _L, _P, _L, 0, _L, _U, \ - _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_GEORGIAN_PS_255 _L -#define _CTYPE_PT154_128_254 \ - _U, _U, _U, _L, _P, _P, _U, _U, \ - _U, _L, _U, _U, _U, _U, _U, _U, \ - _L, _P, _P, _P, _P, _P, _P, _P, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _S|_B, _U, _L, _U, _U, _U, _U, _P, \ - _U, _P, _U, _P, _P, _L, _P, _U, \ - _P, _L, _U, _L, _L, _L, _P, _P, \ - _L, _P, _L, _P, _L, _U, _L, _L, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_PT154_255 _L -#define _CTYPE_CP103_128_254 \ - _L, _L, _P, _U, _P, _P, _P, _P, \ - 0, _P, _L, _P, _U, _L, _U, 0, \ - _U, _P, _P, _P, _P, _P, _P, _P, \ - 0, _P, 0, _P, 0, 0, 0, 0, \ - 0, _L, _U, _L, _P, _L, _P, _P, \ - 0, 0, 0, _P, _P, _P, _P, 0, \ - _P, _P, _P, _U, 0, _U, _P, _P, \ - 0, _P, 0, _P, 0, 0, 0, _P, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U -#define _CTYPE_CP103_255 _U - -#if defined(ALLOW_NEGATIVE_CTYPE_INDEX) - -#ifndef __CYGWIN__ -static const -#endif -char __ctype_cp[27][128 + 256] = { - { _CTYPE_CP437_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP437_128_254, - _CTYPE_CP437_255 - }, - { _CTYPE_CP720_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP720_128_254, - _CTYPE_CP720_255 - }, - { _CTYPE_CP737_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP737_128_254, - _CTYPE_CP737_255 - }, - { _CTYPE_CP775_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP775_128_254, - _CTYPE_CP775_255 - }, - { _CTYPE_CP850_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP850_128_254, - _CTYPE_CP850_255 - }, - { _CTYPE_CP852_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP852_128_254, - _CTYPE_CP852_255 - }, - { _CTYPE_CP855_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP855_128_254, - _CTYPE_CP855_255 - }, - { _CTYPE_CP857_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP857_128_254, - _CTYPE_CP857_255 - }, - { _CTYPE_CP858_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP858_128_254, - _CTYPE_CP858_255 - }, - { _CTYPE_CP862_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP862_128_254, - _CTYPE_CP862_255 - }, - { _CTYPE_CP866_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP866_128_254, - _CTYPE_CP866_255 - }, - { _CTYPE_CP874_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP874_128_254, - _CTYPE_CP874_255 - }, - { _CTYPE_CP1125_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1125_128_254, - _CTYPE_CP1125_255 - }, - { _CTYPE_CP1250_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1250_128_254, - _CTYPE_CP1250_255 - }, - { _CTYPE_CP1251_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1251_128_254, - _CTYPE_CP1251_255 - }, - { _CTYPE_CP1252_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1252_128_254, - _CTYPE_CP1252_255 - }, - { _CTYPE_CP1253_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1253_128_254, - _CTYPE_CP1253_255 - }, - { _CTYPE_CP1254_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1254_128_254, - _CTYPE_CP1254_255 - }, - { _CTYPE_CP1255_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1255_128_254, - _CTYPE_CP1255_255 - }, - { _CTYPE_CP1256_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1256_128_254, - _CTYPE_CP1256_255 - }, - { _CTYPE_CP1257_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1257_128_254, - _CTYPE_CP1257_255 - }, - { _CTYPE_CP1258_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1258_128_254, - _CTYPE_CP1258_255 - }, - { _CTYPE_CP20866_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP20866_128_254, - _CTYPE_CP20866_255 - }, - { _CTYPE_CP21866_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP21866_128_254, - _CTYPE_CP21866_255 - }, - { _CTYPE_GEORGIAN_PS_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_GEORGIAN_PS_128_254, - _CTYPE_GEORGIAN_PS_255 - }, - { _CTYPE_PT154_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_PT154_128_254, - _CTYPE_PT154_255 - }, - { _CTYPE_CP103_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_CP103_128_254, - _CTYPE_CP103_255 - }, -}; - -#else /* !defined(ALLOW_NEGATIVE_CTYPE_INDEX) */ - -static const char __ctype_cp[27][1 + 256] = { - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP437_128_254, - _CTYPE_CP437_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP720_128_254, - _CTYPE_CP720_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP737_128_254, - _CTYPE_CP737_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP775_128_254, - _CTYPE_CP775_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP850_128_254, - _CTYPE_CP850_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP852_128_254, - _CTYPE_CP852_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP855_128_254, - _CTYPE_CP855_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP857_128_254, - _CTYPE_CP857_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP858_128_254, - _CTYPE_CP858_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP862_128_254, - _CTYPE_CP862_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP866_128_254, - _CTYPE_CP866_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP874_128_254, - _CTYPE_CP874_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1125_128_254, - _CTYPE_CP1125_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1250_128_254, - _CTYPE_CP1250_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1251_128_254, - _CTYPE_CP1251_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1252_128_254, - _CTYPE_CP1252_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1253_128_254, - _CTYPE_CP1253_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1254_128_254, - _CTYPE_CP1254_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1255_128_254, - _CTYPE_CP1255_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1256_128_254, - _CTYPE_CP1256_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1257_128_254, - _CTYPE_CP1257_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP1258_128_254, - _CTYPE_CP1258_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP20866_128_254, - _CTYPE_CP20866_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP21866_128_254, - _CTYPE_CP21866_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_GEORGIAN_PS_128_254, - _CTYPE_GEORGIAN_PS_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_PT154_128_254, - _CTYPE_PT154_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_CP103_128_254, - _CTYPE_CP103_255 - }, -}; - -#endif /* ALLOW_NEGATIVE_CTYPE_INDEX */ diff --git a/lib/ctype/ctype_iso.h b/lib/ctype/ctype_iso.h deleted file mode 100644 index 616e4cc..0000000 --- a/lib/ctype/ctype_iso.h +++ /dev/null @@ -1,455 +0,0 @@ -/* ctype table definitions for ISO-8859-x charsets. - Included by ctype_.c. */ - -#define _CTYPE_ISO_8859_1_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _P, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_ISO_8859_1_255 _L -#define _CTYPE_ISO_8859_2_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _U, _P, _U, _P, _U, _U, _P, \ - _P, _U, _U, _U, _U, _P, _U, _U, \ - _P, _L, _P, _L, _P, _L, _L, _P, \ - _P, _L, _L, _L, _L, _P, _L, _L, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _P, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_ISO_8859_2_255 _P -#define _CTYPE_ISO_8859_3_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _U, _P, _P, _P, 0, _U, _P, \ - _P, _U, _U, _U, _U, _P, 0, _U, \ - _P, _L, _P, _P, _P, _P, _L, _P, \ - _P, _L, _L, _L, _L, _P, 0, _L, \ - _U, _U, _U, 0, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - 0, _U, _U, _U, _U, _U, _U, _P, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, 0, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - 0, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_ISO_8859_3_255 _P -#define _CTYPE_ISO_8859_4_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _U, _L, _U, _P, _U, _U, _P, \ - _P, _U, _U, _U, _U, _P, _U, _P, \ - _P, _L, _P, _L, _P, _L, _L, _P, \ - _P, _L, _L, _L, _L, _P, _L, _L, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _P, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_ISO_8859_4_255 _L -#define _CTYPE_ISO_8859_5_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _P, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _P, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _P, _L -#define _CTYPE_ISO_8859_5_255 _L -#define _CTYPE_ISO_8859_6_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, 0, 0, 0, _P, 0, 0, 0, \ - 0, 0, 0, 0, _P, _P, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, _P, 0, 0, 0, _P, \ - 0, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, 0, 0, 0, 0, 0, \ - _P, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _P, _P, _P, _P, _P, \ - _P, _P, _P, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0 -#define _CTYPE_ISO_8859_6_255 0 -#define _CTYPE_ISO_8859_7_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, 0, _P, \ - _P, _P, _P, _P, _P, _P, _U, _P, \ - _U, _U, _U, _P, _U, _P, _U, _U, \ - _L, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_ISO_8859_7_255 0 -#define _CTYPE_ISO_8859_8_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, 0, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, _P, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, 0, 0, _P, _P -#define _CTYPE_ISO_8859_8_255 0 -#define _CTYPE_ISO_8859_9_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _P, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_ISO_8859_9_255 _L -#define _CTYPE_ISO_8859_10_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _U, _U, _U, _U, _U, _U, _P, \ - _U, _U, _U, _U, _U, _P, _U, _U, \ - _P, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _P, _L, _L, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_ISO_8859_10_255 _L -#define _CTYPE_ISO_8859_11_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _P, _U|_L, _U|_L, _P, _P, _P, _P, \ - _P, _P, _P, 0, 0, 0, 0, _P, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _P, \ - _P, _P, _P, _P, _P, _P, _P, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ - _U|_L, _U|_L, _U|_L, _U|_L, 0, 0, 0 -#define _CTYPE_ISO_8859_11_255 0 -#define _CTYPE_ISO_8859_13_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _U, _P, _U, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _P, _L, _P, _P, _P, _P, _P, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _P, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_ISO_8859_13_255 _P -#define _CTYPE_ISO_8859_14_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _U, _L, _P, _U, _L, _U, _P, \ - _U, _P, _U, _L, _U, _P, _P, _U, \ - _U, _L, _U, _L, _U, _L, _P, _U, \ - _L, _L, _L, _U, _L, _U, _L, _L, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_ISO_8859_14_255 _L -#define _CTYPE_ISO_8859_15_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _P, _P, _P, _P, _P, _U, _P, \ - _L, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _U, _P, _P, _P, \ - _L, _P, _P, _P, _U, _L, _U, _P, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _P, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_ISO_8859_15_255 _L -#define _CTYPE_ISO_8859_16_128_254 \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _U, _L, _U, _P, _P, _U, _P, \ - _L, _P, _U, _P, _U, _P, _L, _U, \ - _P, _P, _U, _U, _U, _P, _P, _P, \ - _L, _L, _L, _P, _U, _L, _U, _L, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _U, \ - _U, _U, _U, _U, _U, _U, _U, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L -#define _CTYPE_ISO_8859_16_255 _L - -extern int __iso_8859_index (const char *charset_ext); - -#if defined(ALLOW_NEGATIVE_CTYPE_INDEX) - -#ifndef __CYGWIN__ -static const -#endif -char __ctype_iso[15][128 + 256] = { - { _CTYPE_ISO_8859_1_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_1_128_254, - _CTYPE_ISO_8859_1_255 - }, - { _CTYPE_ISO_8859_2_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_2_128_254, - _CTYPE_ISO_8859_2_255 - }, - { _CTYPE_ISO_8859_3_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_3_128_254, - _CTYPE_ISO_8859_3_255 - }, - { _CTYPE_ISO_8859_4_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_4_128_254, - _CTYPE_ISO_8859_4_255 - }, - { _CTYPE_ISO_8859_5_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_5_128_254, - _CTYPE_ISO_8859_5_255 - }, - { _CTYPE_ISO_8859_6_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_6_128_254, - _CTYPE_ISO_8859_6_255 - }, - { _CTYPE_ISO_8859_7_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_7_128_254, - _CTYPE_ISO_8859_7_255 - }, - { _CTYPE_ISO_8859_8_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_8_128_254, - _CTYPE_ISO_8859_8_255 - }, - { _CTYPE_ISO_8859_9_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_9_128_254, - _CTYPE_ISO_8859_9_255 - }, - { _CTYPE_ISO_8859_10_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_10_128_254, - _CTYPE_ISO_8859_10_255 - }, - { _CTYPE_ISO_8859_11_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_11_128_254, - _CTYPE_ISO_8859_11_255 - }, - { _CTYPE_ISO_8859_13_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_13_128_254, - _CTYPE_ISO_8859_13_255 - }, - { _CTYPE_ISO_8859_14_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_14_128_254, - _CTYPE_ISO_8859_14_255 - }, - { _CTYPE_ISO_8859_15_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_15_128_254, - _CTYPE_ISO_8859_15_255 - }, - { _CTYPE_ISO_8859_16_128_254, - 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_16_128_254, - _CTYPE_ISO_8859_16_255 - }, -}; - -#else /* !defined(ALLOW_NEGATIVE_CTYPE_INDEX) */ - -static const char __ctype_iso[15][1 + 256] = { - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_1_128_254, - _CTYPE_ISO_8859_1_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_2_128_254, - _CTYPE_ISO_8859_2_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_3_128_254, - _CTYPE_ISO_8859_3_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_4_128_254, - _CTYPE_ISO_8859_4_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_5_128_254, - _CTYPE_ISO_8859_5_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_6_128_254, - _CTYPE_ISO_8859_6_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_7_128_254, - _CTYPE_ISO_8859_7_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_8_128_254, - _CTYPE_ISO_8859_8_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_9_128_254, - _CTYPE_ISO_8859_9_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_10_128_254, - _CTYPE_ISO_8859_10_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_11_128_254, - _CTYPE_ISO_8859_11_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_13_128_254, - _CTYPE_ISO_8859_13_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_14_128_254, - _CTYPE_ISO_8859_14_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_15_128_254, - _CTYPE_ISO_8859_15_255 - }, - { 0, - _CTYPE_DATA_0_127, - _CTYPE_ISO_8859_16_128_254, - _CTYPE_ISO_8859_16_255 - }, -}; - -#endif /* ALLOW_NEGATIVE_CTYPE_INDEX */ diff --git a/lib/ctype/isalnum.c b/lib/ctype/isalnum.c deleted file mode 100644 index d926f97..0000000 --- a/lib/ctype/isalnum.c +++ /dev/null @@ -1,50 +0,0 @@ -/* -FUNCTION - <>, <>---alphanumeric character predicate - -INDEX - isalnum -INDEX - isalnum_l - -SYNOPSIS - #include - int isalnum(int <[c]>); - - #include - int isalnum_l(int <[c]>, locale_t <[locale]>); - - -DESCRIPTION -<> is a macro which classifies singlebyte charset values by table -lookup. It is a predicate returning non-zero for alphabetic or -numeric ASCII characters, and <<0>> for other arguments. It is defined -only if <[c]> is representable as an unsigned char or if <[c]> is EOF. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining the macro using `<<#undef isalnum>>' or `<<#undef isalnum_l>>'. - -RETURNS -<>,<> return non-zero if <[c]> is a letter or a digit. - -PORTABILITY -<> is ANSI C. -<> is POSIX-1.2008. - -No OS subroutines are required. -*/ - -#include <_ansi.h> -#include - -#undef isalnum - -int -isalnum (int c) -{ - return(__CTYPE_PTR[c+1] & (_U|_L|_N)); -} diff --git a/lib/ctype/isalnum_l.c b/lib/ctype/isalnum_l.c deleted file mode 100644 index dcb7e36..0000000 --- a/lib/ctype/isalnum_l.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <_ansi.h> -#include - -#undef isalnum_l - -int -isalnum_l (int c, struct __locale_t *locale) -{ - return __locale_ctype_ptr_l (locale)[c+1] & (_U|_L|_N); -} diff --git a/lib/ctype/isalpha.c b/lib/ctype/isalpha.c deleted file mode 100644 index 8b8e78a..0000000 --- a/lib/ctype/isalpha.c +++ /dev/null @@ -1,49 +0,0 @@ -/* -FUNCTION - <>, <>---alphabetic character predicate - -INDEX - isalpha - -INDEX - isalpha_l - -SYNOPSIS - #include - int isalpha(int <[c]>); - - #include - int isalpha_l(int <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a macro which classifies singlebyte charset values by table -lookup. It is a predicate returning non-zero when <[c]> represents an -alphabetic ASCII character, and 0 otherwise. It is defined only if -<[c]> is representable as an unsigned char or if <[c]> is EOF. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining the macro using `<<#undef isalpha>>' or `<<#undef isalpha_l>>'. - -RETURNS -<>, <> return non-zero if <[c]> is a letter. - -PORTABILITY -<> is ANSI C. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include - -#undef isalpha -int -isalpha (int c) -{ - return(__CTYPE_PTR[c+1] & (_U|_L)); -} diff --git a/lib/ctype/isalpha_l.c b/lib/ctype/isalpha_l.c deleted file mode 100644 index dcae3cc..0000000 --- a/lib/ctype/isalpha_l.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <_ansi.h> -#include - -#undef isalpha_l - -int -isalpha_l (int c, struct __locale_t *locale) -{ - return __locale_ctype_ptr_l (locale)[c+1] & (_U|_L); -} diff --git a/lib/ctype/isascii.c b/lib/ctype/isascii.c deleted file mode 100644 index 5adb812..0000000 --- a/lib/ctype/isascii.c +++ /dev/null @@ -1,50 +0,0 @@ -/* -FUNCTION - <>, <>---ASCII character predicate - -INDEX - isascii - -INDEX - isascii_l - -SYNOPSIS - #include - int isascii(int <[c]>); - - #include - int isascii_l(int <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a macro which returns non-zero when <[c]> is an ASCII -character, and 0 otherwise. It is defined for all integer values. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining the macro using `<<#undef isascii>>' or `<<#undef isascii_l>>'. - -RETURNS -<>, <> return non-zero if the low order byte of <[c]> -is in the range 0 to 127 (<<0x00>>--<<0x7F>>). - -PORTABILITY -<> is ANSI C. -<> is a GNU extension. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - - - -#undef isascii - -int -isascii (int c) -{ - return c >= 0 && c< 128; -} diff --git a/lib/ctype/isascii_l.c b/lib/ctype/isascii_l.c deleted file mode 100644 index 59b5f95..0000000 --- a/lib/ctype/isascii_l.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <_ansi.h> -#include - -#undef isascii_l - -int -isascii_l (int c, struct __locale_t *locale) -{ - return c >= 0 && c < 128; -} diff --git a/lib/ctype/isblank.c b/lib/ctype/isblank.c deleted file mode 100644 index 0ebc219..0000000 --- a/lib/ctype/isblank.c +++ /dev/null @@ -1,48 +0,0 @@ -/* -FUNCTION - <>, <>---blank character predicate - -INDEX - isblank - -INDEX - isblank_l - -SYNOPSIS - #include - int isblank(int <[c]>); - - #include - int isblank_l(int <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies singlebyte charset values by table -lookup. It is a predicate returning non-zero for blank characters, and 0 -for other characters. It is defined only if <[c]> is representable as an -unsigned char or if <[c]> is EOF. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if <[c]> is a blank character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include - - - -#undef isblank -int -isblank (int c) -{ - return ((__CTYPE_PTR[c+1] & _B) || (c == '\t')); -} diff --git a/lib/ctype/isblank_l.c b/lib/ctype/isblank_l.c deleted file mode 100644 index 8bbb84e..0000000 --- a/lib/ctype/isblank_l.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <_ansi.h> -#include - -#undef isblank_l - -int -isblank_l (int c, struct __locale_t *locale) -{ - return (__locale_ctype_ptr_l (locale)[c+1] & _B) || (c == '\t'); -} diff --git a/lib/ctype/iscntrl.c b/lib/ctype/iscntrl.c deleted file mode 100644 index ebbdd73..0000000 --- a/lib/ctype/iscntrl.c +++ /dev/null @@ -1,52 +0,0 @@ -/* -FUNCTION - <>, <>---control character predicate - -INDEX - iscntrl - -INDEX - iscntrl_l - -SYNOPSIS - #include - int iscntrl(int <[c]>); - - #include - int iscntrl_l(int <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a macro which classifies singlebyte charset values by table -lookup. It is a predicate returning non-zero for control characters, and 0 -for other characters. It is defined only if <[c]> is representable as an -unsigned char or if <[c]> is EOF. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining the macro using `<<#undef iscntrl>>' or `<<#undef iscntrl_l>>'. - -RETURNS -<>, <> return non-zero if <[c]> is a delete character -or ordinary control character. - -PORTABILITY -<> is ANSI C. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include - - - -#undef iscntrl -int -iscntrl (int c) -{ - return(__CTYPE_PTR[c+1] & _C); -} diff --git a/lib/ctype/iscntrl_l.c b/lib/ctype/iscntrl_l.c deleted file mode 100644 index 0ae17c7..0000000 --- a/lib/ctype/iscntrl_l.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <_ansi.h> -#include - -#undef iscntrl_l - -int -iscntrl_l (int c, struct __locale_t *locale) -{ - return __locale_ctype_ptr_l (locale)[c+1] & _C; -} diff --git a/lib/ctype/isdigit.c b/lib/ctype/isdigit.c deleted file mode 100644 index a5c5119..0000000 --- a/lib/ctype/isdigit.c +++ /dev/null @@ -1,51 +0,0 @@ -/* -FUNCTION - <>, <>---decimal digit predicate - -INDEX - isdigit - -INDEX - isdigit_l - -SYNOPSIS - #include - int isdigit(int <[c]>); - - #include - int isdigit_l(int <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a macro which classifies singlebyte charset values by table -lookup. It is a predicate returning non-zero for decimal digits, and 0 for -other characters. It is defined only if <[c]> is representable as an -unsigned char or if <[c]> is EOF. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining the macro using `<<#undef isdigit>>' or `<<#undef isdigit_l>>'. - -RETURNS -<>, <> return non-zero if <[c]> is a decimal digit -(<<0>>--<<9>>). - -PORTABILITY -<> is ANSI C. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include - - -#undef isdigit -int -isdigit (int c) -{ - return(__CTYPE_PTR[c+1] & _N); -} diff --git a/lib/ctype/isdigit_l.c b/lib/ctype/isdigit_l.c deleted file mode 100644 index 1fb79e0..0000000 --- a/lib/ctype/isdigit_l.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <_ansi.h> -#include - -#undef isdigit_l - -int -isdigit_l (int c, struct __locale_t *locale) -{ - return __locale_ctype_ptr_l (locale)[c+1] & _N; -} diff --git a/lib/ctype/islower.c b/lib/ctype/islower.c deleted file mode 100644 index 2b34404..0000000 --- a/lib/ctype/islower.c +++ /dev/null @@ -1,49 +0,0 @@ -/* -FUNCTION - <>, <>---lowercase character predicate - -INDEX - islower - -INDEX - islower_l - -SYNOPSIS - #include - int islower(int <[c]>); - - #include - int islower_l(int <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a macro which classifies singlebyte charset values by table -lookup. It is a predicate returning non-zero for minuscules -(lowercase alphabetic characters), and 0 for other characters. -It is defined only if <[c]> is representable as an unsigned char or if -<[c]> is EOF. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining the macro using `<<#undef islower>>' or `<<#undef islower_l>>'. - -RETURNS -<>, <> return non-zero if <[c]> is a lowercase letter. - -PORTABILITY -<> is ANSI C. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -#undef islower -int -islower (int c) -{ - return ((__CTYPE_PTR[c+1] & (_U|_L)) == _L); -} diff --git a/lib/ctype/islower_l.c b/lib/ctype/islower_l.c deleted file mode 100644 index d1f3a82..0000000 --- a/lib/ctype/islower_l.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <_ansi.h> -#include - -#undef islower_l - -int -islower_l (int c, struct __locale_t *locale) -{ - return (__locale_ctype_ptr_l (locale)[c+1] & (_U|_L)) == _L; -} diff --git a/lib/ctype/isprint.c b/lib/ctype/isprint.c deleted file mode 100644 index e34fbe2..0000000 --- a/lib/ctype/isprint.c +++ /dev/null @@ -1,71 +0,0 @@ -/* -FUNCTION - <>, <>, <>, <>---printable character predicates - -INDEX - isprint - -INDEX - isgraph - -INDEX - isprint_l - -INDEX - isgraph_l - -SYNOPSIS - #include - int isprint(int <[c]>); - int isgraph(int <[c]>); - - #include - int isprint_l(int <[c]>, locale_t <[locale]>); - int isgraph_l(int <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a macro which classifies singlebyte charset values by table -lookup. It is a predicate returning non-zero for printable characters, -and 0 for other character arguments. It is defined only if <[c]> is -representable as an unsigned char or if <[c]> is EOF. - -<> behaves identically to <>, except that space characters -are excluded. - -<>, <> are like <>, <> but perform -the check based on the locale specified by the locale object locale. If -<[locale]> is LC_GLOBAL_LOCALE or not a valid locale object, the behaviour -is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining either macro using `<<#undef isprint>>' or `<<#undef isgraph>>', -or `<<#undef isprint_l>>' or `<<#undef isgraph_l>>'. - -RETURNS -<>, <> return non-zero if <[c]> is a printing character. -<>, <> return non-zero if <[c]> is a printing character -except spaces. - -PORTABILITY -<> and <> are ANSI C. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include - -#undef isgraph -int -isgraph (int c) -{ - return(__CTYPE_PTR[c+1] & (_P|_U|_L|_N)); -} - - -#undef isprint -int -isprint (int c) -{ - return(__CTYPE_PTR[c+1] & (_P|_U|_L|_N|_B)); -} diff --git a/lib/ctype/isprint_l.c b/lib/ctype/isprint_l.c deleted file mode 100644 index 535504f..0000000 --- a/lib/ctype/isprint_l.c +++ /dev/null @@ -1,18 +0,0 @@ -#include <_ansi.h> -#include - -#undef isgraph_l - -int -isgraph_l (int c, struct __locale_t *locale) -{ - return __locale_ctype_ptr_l (locale)[c+1] & (_P|_U|_L|_N); -} - -#undef isprint_l - -int -isprint_l (int c, struct __locale_t *locale) -{ - return __locale_ctype_ptr_l (locale)[c+1] & (_P|_U|_L|_N|_B); -} diff --git a/lib/ctype/ispunct.c b/lib/ctype/ispunct.c deleted file mode 100644 index 9c5a3fc..0000000 --- a/lib/ctype/ispunct.c +++ /dev/null @@ -1,51 +0,0 @@ -/* -FUNCTION - <>, <>---punctuation character predicate - -INDEX - ispunct - -INDEX - ispunct_l - -SYNOPSIS - #include - int ispunct(int <[c]>); - - #include - int ispunct_l(int <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a macro which classifies singlebyte charset values by table -lookup. It is a predicate returning non-zero for printable -punctuation characters, and 0 for other characters. It is defined only -if <[c]> is representable as an unsigned char or if <[c]> is EOF. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining the macro using `<<#undef ispunct>>' or `<<#undef ispunct_l>>'. - -RETURNS -<>, <> return non-zero if <[c]> is a printable -punctuation character. - -PORTABILITY -<> is ANSI C. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include - - -#undef ispunct -int -ispunct (int c) -{ - return(__CTYPE_PTR[c+1] & _P); -} diff --git a/lib/ctype/ispunct_l.c b/lib/ctype/ispunct_l.c deleted file mode 100644 index eeba1f5..0000000 --- a/lib/ctype/ispunct_l.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <_ansi.h> -#include - -#undef ispunct_l - -int -ispunct_l (int c, struct __locale_t *locale) -{ - return __locale_ctype_ptr_l (locale)[c+1] & _P; -} - diff --git a/lib/ctype/isspace.c b/lib/ctype/isspace.c deleted file mode 100644 index 0def2c0..0000000 --- a/lib/ctype/isspace.c +++ /dev/null @@ -1,50 +0,0 @@ -/* -FUNCTION - <>, <>---whitespace character predicate - -INDEX - isspace - -INDEX - isspace_l - -SYNOPSIS - #include - int isspace(int <[c]>); - - #include - int isspace_l(int <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a macro which classifies singlebyte charset values by table -lookup. It is a predicate returning non-zero for whitespace -characters, and 0 for other characters. It is defined only when <>(<[c]>) is true or <[c]> is EOF. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining the macro using `<<#undef isspace>>' or `<<#undef isspace_l>>'. - -RETURNS -<>, <> return non-zero if <[c]> is a space, tab, -carriage return, new line, vertical tab, or formfeed (<<0x09>>--<<0x0D>>, -<<0x20>>), or one of the other space characters in non-ASCII charsets. - -PORTABILITY -<> is ANSI C. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - - -#undef isspace -int -isspace (int c) -{ - return(__CTYPE_PTR[c+1] & _S); -} diff --git a/lib/ctype/isspace_l.c b/lib/ctype/isspace_l.c deleted file mode 100644 index bf4a36c..0000000 --- a/lib/ctype/isspace_l.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <_ansi.h> -#include - -#undef isspace_l - -int -isspace_l (int c, struct __locale_t *locale) -{ - return __locale_ctype_ptr_l (locale)[c+1] & _S; -} - diff --git a/lib/ctype/isupper.c b/lib/ctype/isupper.c deleted file mode 100644 index aeed383..0000000 --- a/lib/ctype/isupper.c +++ /dev/null @@ -1,47 +0,0 @@ -/* -FUNCTION - <>, <>---uppercase character predicate - -INDEX - isupper - -INDEX - isupper_l - -SYNOPSIS - #include - int isupper(int <[c]>); - - #include - int isupper_l(int <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a macro which classifies singlebyte charset values by table -lookup. It is a predicate returning non-zero for uppercase letters -(<>--<>), and 0 for other characters. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining the macro using `<<#undef isupper>>' or `<<#undef isupper_l>>'. - -RETURNS -<>, <> return non-zero if <[c]> is an uppercase letter. - -PORTABILITY -<> is ANSI C. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -#undef isupper -int -isupper (int c) -{ - return ((__CTYPE_PTR[c+1] & (_U|_L)) == _U); -} diff --git a/lib/ctype/isupper_l.c b/lib/ctype/isupper_l.c deleted file mode 100644 index eb473a7..0000000 --- a/lib/ctype/isupper_l.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <_ansi.h> -#include - -#undef isupper_l - -int -isupper_l (int c, struct __locale_t *locale) -{ - return (__locale_ctype_ptr_l (locale)[c+1] & (_U|_L)) == _U; -} - diff --git a/lib/ctype/iswalnum.c b/lib/ctype/iswalnum.c deleted file mode 100644 index 7b2cac7..0000000 --- a/lib/ctype/iswalnum.c +++ /dev/null @@ -1,43 +0,0 @@ -/* -FUNCTION - <>, <>---alphanumeric wide character test - -INDEX - iswalnum - -INDEX - iswalnum_l - -SYNOPSIS - #include - int iswalnum(wint_t <[c]>); - - #include - int iswalnum_l(wint_t <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies wide-character values that -are alphanumeric. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if <[c]> is a alphanumeric -wide character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -int -iswalnum (wint_t c) -{ - return iswalnum_l (c, 0); -} diff --git a/lib/ctype/iswalnum_l.c b/lib/ctype/iswalnum_l.c deleted file mode 100644 index 8802273..0000000 --- a/lib/ctype/iswalnum_l.c +++ /dev/null @@ -1,23 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include -#include "local.h" -#include "categories.h" - -int -iswalnum_l (wint_t c, struct __locale_t *locale) -{ -#ifdef _MB_CAPABLE - //return iswalpha (c) || iswdigit (c); - c = _jp2uc_l (c, locale); - enum category cat = category (c); - return cat == CAT_LC || cat == CAT_Lu || cat == CAT_Ll || cat == CAT_Lt - || cat == CAT_Lm || cat == CAT_Lo - || cat == CAT_Nl // Letter_Number - || cat == CAT_Nd // Decimal_Number - ; -#else - return c < (wint_t)0x100 ? isalnum (c) : 0; -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/iswalpha.c b/lib/ctype/iswalpha.c deleted file mode 100644 index 3928772..0000000 --- a/lib/ctype/iswalpha.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - Modified (m) 2017 Thomas Wolff to refer to generated Unicode data tables. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -FUNCTION - <>, <>---alphabetic wide character test - -INDEX - iswalpha - -INDEX - iswalpha_l - -SYNOPSIS - #include - int iswalpha(wint_t <[c]>); - - #include - int iswalpha_l(wint_t <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies wide-character values that -are alphabetic. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if <[c]> is an alphabetic -wide character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -int -iswalpha (wint_t c) -{ - return iswalpha_l (c, 0); -} diff --git a/lib/ctype/iswalpha_l.c b/lib/ctype/iswalpha_l.c deleted file mode 100644 index 922983e..0000000 --- a/lib/ctype/iswalpha_l.c +++ /dev/null @@ -1,21 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include -#include "local.h" -#include "categories.h" - -int -iswalpha_l (wint_t c, struct __locale_t *locale) -{ -#ifdef _MB_CAPABLE - c = _jp2uc_l (c, locale); - enum category cat = category (c); - return cat == CAT_LC || cat == CAT_Lu || cat == CAT_Ll || cat == CAT_Lt - || cat == CAT_Lm || cat == CAT_Lo - || cat == CAT_Nl // Letter_Number - ; -#else - return c < (wint_t)0x100 ? isalpha (c) : 0; -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/iswblank.c b/lib/ctype/iswblank.c deleted file mode 100644 index 31779d2..0000000 --- a/lib/ctype/iswblank.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - Modified (m) 2017 Thomas Wolff to refer to generated Unicode data tables. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -FUNCTION - <>, <>---blank wide character test - -INDEX - iswblank - -INDEX - iswblank_l - -SYNOPSIS - #include - int iswblank(wint_t <[c]>); - - #include - int iswblank_l(wint_t <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies wide-character values that -are categorized as blank. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if <[c]> is a blank wide character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -int -iswblank (wint_t c) -{ - return iswblank_l (c, 0); -} diff --git a/lib/ctype/iswblank_l.c b/lib/ctype/iswblank_l.c deleted file mode 100644 index b27ed82..0000000 --- a/lib/ctype/iswblank_l.c +++ /dev/null @@ -1,20 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include -#include "local.h" -#include "categories.h" - -int -iswblank_l (wint_t c, struct __locale_t *locale) -{ -#ifdef _MB_CAPABLE - c = _jp2uc_l (c, locale); - enum category cat = category (c); - // exclude ""? - return cat == CAT_Zs - || c == '\t'; -#else - return c < 0x100 ? isblank (c) : 0; -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/iswcntrl.c b/lib/ctype/iswcntrl.c deleted file mode 100644 index d4b0147..0000000 --- a/lib/ctype/iswcntrl.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - Modified (m) 2017 Thomas Wolff to refer to generated Unicode data tables. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -FUNCTION - <>, <>---control wide character test - -INDEX - iswcntrl - -INDEX - iswcntrl_l - -SYNOPSIS - #include - int iswcntrl(wint_t <[c]>); - - #include - int iswcntrl_l(wint_t <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies wide-character values that -are categorized as control characters. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if <[c]> is a control wide character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -int -iswcntrl (wint_t c) -{ - return iswcntrl_l (c, 0); -} diff --git a/lib/ctype/iswcntrl_l.c b/lib/ctype/iswcntrl_l.c deleted file mode 100644 index 6a900a7..0000000 --- a/lib/ctype/iswcntrl_l.c +++ /dev/null @@ -1,20 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include -#include "local.h" -#include "categories.h" - -int -iswcntrl_l (wint_t c, struct __locale_t *locale) -{ -#ifdef _MB_CAPABLE - c = _jp2uc_l (c, locale); - enum category cat = category (c); - return cat == CAT_Cc - || cat == CAT_Zl || cat == CAT_Zp // Line/Paragraph Separator - ; -#else - return c < 0x100 ? iscntrl (c) : 0; -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/iswctype.c b/lib/ctype/iswctype.c deleted file mode 100644 index 027cb8a..0000000 --- a/lib/ctype/iswctype.c +++ /dev/null @@ -1,75 +0,0 @@ -/* -FUNCTION - <>, <>---extensible wide-character test - -INDEX - iswctype - -INDEX - iswctype_l - -SYNOPSIS - #include - int iswctype(wint_t <[c]>, wctype_t <[desc]>); - - #include - int iswctype_l(wint_t <[c]>, wctype_t <[desc]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies wide-character values using the -wide-character test specified by <[desc]>. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if and only if <[c]> matches -the test specified by <[desc]>. If <[desc]> is unknown, zero is returned. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include -#include "local.h" - -int -iswctype (wint_t c, wctype_t desc) -{ - switch (desc) - { - case WC_ALNUM: - return iswalnum (c); - case WC_ALPHA: - return iswalpha (c); - case WC_BLANK: - return iswblank (c); - case WC_CNTRL: - return iswcntrl (c); - case WC_DIGIT: - return iswdigit (c); - case WC_GRAPH: - return iswgraph (c); - case WC_LOWER: - return iswlower (c); - case WC_PRINT: - return iswprint (c); - case WC_PUNCT: - return iswpunct (c); - case WC_SPACE: - return iswspace (c); - case WC_UPPER: - return iswupper (c); - case WC_XDIGIT: - return iswxdigit (c); - default: - return 0; /* eliminate warning */ - } - - /* otherwise unknown */ - return 0; -} diff --git a/lib/ctype/iswctype_l.c b/lib/ctype/iswctype_l.c deleted file mode 100644 index 506972d..0000000 --- a/lib/ctype/iswctype_l.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include "local.h" - -int -iswctype_l (wint_t c, wctype_t desc, struct __locale_t *locale) -{ - switch (desc) - { - case WC_ALNUM: - return iswalnum_l (c, locale); - case WC_ALPHA: - return iswalpha_l (c, locale); - case WC_BLANK: - return iswblank_l (c, locale); - case WC_CNTRL: - return iswcntrl_l (c, locale); - case WC_DIGIT: - return iswdigit_l (c, locale); - case WC_GRAPH: - return iswgraph_l (c, locale); - case WC_LOWER: - return iswlower_l (c, locale); - case WC_PRINT: - return iswprint_l (c, locale); - case WC_PUNCT: - return iswpunct_l (c, locale); - case WC_SPACE: - return iswspace_l (c, locale); - case WC_UPPER: - return iswupper_l (c, locale); - case WC_XDIGIT: - return iswxdigit_l (c, locale); - default: - return 0; /* eliminate warning */ - } - - /* otherwise unknown */ - return 0; -} diff --git a/lib/ctype/iswdigit.c b/lib/ctype/iswdigit.c deleted file mode 100644 index d3562f8..0000000 --- a/lib/ctype/iswdigit.c +++ /dev/null @@ -1,43 +0,0 @@ -/* -FUNCTION - <>, <>---decimal digit wide character test - -INDEX - iswdigit - -INDEX - iswdigit_l - -SYNOPSIS - #include - int iswdigit(wint_t <[c]>); - - #include - int iswdigit_l(wint_t <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies wide-character values that -are decimal digits. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if <[c]> is a decimal digit wide character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -int -iswdigit (wint_t c) -{ - return c >= (wint_t)'0' && c <= (wint_t)'9'; - // category (c) == CAT_Nd not to be included as of C-99 -} diff --git a/lib/ctype/iswdigit_l.c b/lib/ctype/iswdigit_l.c deleted file mode 100644 index 29de9d3..0000000 --- a/lib/ctype/iswdigit_l.c +++ /dev/null @@ -1,8 +0,0 @@ -#include <_ansi.h> -#include - -int -iswdigit_l (wint_t c, struct __locale_t *locale) -{ - return c >= (wint_t)'0' && c <= (wint_t)'9'; -} diff --git a/lib/ctype/iswgraph.c b/lib/ctype/iswgraph.c deleted file mode 100644 index bb21c21..0000000 --- a/lib/ctype/iswgraph.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - Modified (m) 2017 Thomas Wolff to refer to generated Unicode data tables. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -FUNCTION - <>, <>---graphic wide character test - -INDEX - iswgraph - -INDEX - iswgraph_l - -SYNOPSIS - #include - int iswgraph(wint_t <[c]>); - - #include - int iswgraph_l(wint_t <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies wide-character values that -are graphic. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if <[c]> is a graphic wide character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -int -iswgraph (wint_t c) -{ - return iswgraph_l (c, 0); -} diff --git a/lib/ctype/iswgraph_l.c b/lib/ctype/iswgraph_l.c deleted file mode 100644 index b8a5866..0000000 --- a/lib/ctype/iswgraph_l.c +++ /dev/null @@ -1,23 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include "local.h" -#include "categories.h" - -int -iswgraph_l (wint_t c, struct __locale_t *locale) -{ -#ifdef _MB_CAPABLE - //return iswprint (c, locale) && !iswspace (c, locale); - c = _jp2uc_l (c, locale); - enum category cat = category (c); - return cat != -1 - && cat != CAT_Cc && cat != CAT_Cf - && cat != CAT_Cs // Surrogate - && cat != CAT_Zs - && cat != CAT_Zl && cat != CAT_Zp // Line/Paragraph Separator - ; -#else - return iswprint_l (c, locale) && !iswspace_l (c, locale); -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/iswlower.c b/lib/ctype/iswlower.c deleted file mode 100644 index e1d926b..0000000 --- a/lib/ctype/iswlower.c +++ /dev/null @@ -1,42 +0,0 @@ -/* -FUNCTION - <>, <>---lowercase wide character test - -INDEX - iswlower - -INDEX - iswlower_l - -SYNOPSIS - #include - int iswlower(wint_t <[c]>); - - #include - int iswlower_l(wint_t <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies wide-character values that -are categorized as lowercase. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if <[c]> is a lowercase wide character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -int -iswlower (wint_t c) -{ - return iswlower_l (c, 0); -} diff --git a/lib/ctype/iswlower_l.c b/lib/ctype/iswlower_l.c deleted file mode 100644 index 6446133..0000000 --- a/lib/ctype/iswlower_l.c +++ /dev/null @@ -1,20 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include -#include "local.h" -#include "categories.h" - -int -iswlower_l (wint_t c, struct __locale_t *locale) -{ -#ifdef _MB_CAPABLE - c = _jp2uc_l (c, locale); - // The wide-character class "lower" contains at least those characters wc - // which are equal to towlower(wc) and different from towupper(wc). - enum category cat = category (c); - return cat == CAT_Ll || (cat == CAT_LC && towlower (c) == c); -#else - return c < 0x100 ? islower (c) : 0; -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/iswprint.c b/lib/ctype/iswprint.c deleted file mode 100644 index 5e468fe..0000000 --- a/lib/ctype/iswprint.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - Modified (m) 2017 Thomas Wolff to refer to generated Unicode data tables. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -FUNCTION - <>, <>---printable wide character test - -INDEX - iswprint - -INDEX - iswprint_l - -SYNOPSIS - #include - int iswprint(wint_t <[c]>); - - #include - int iswprint_l(wint_t <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies wide-character values that -are printable. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if <[c]> is a printable wide character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -int -iswprint (wint_t c) -{ - return iswprint_l (c, 0); -} diff --git a/lib/ctype/iswprint_l.c b/lib/ctype/iswprint_l.c deleted file mode 100644 index cdf027b..0000000 --- a/lib/ctype/iswprint_l.c +++ /dev/null @@ -1,21 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include -#include "local.h" -#include "categories.h" - -int -iswprint_l (wint_t c, struct __locale_t *locale) -{ -#ifdef _MB_CAPABLE - c = _jp2uc_l (c, locale); - enum category cat = category (c); - return cat != -1 - && cat != CAT_Cc && cat != CAT_Cf - && cat != CAT_Cs // Surrogate - ; -#else - return c < (wint_t)0x100 ? isprint (c) : 0; -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/iswpunct.c b/lib/ctype/iswpunct.c deleted file mode 100644 index 27a6d65..0000000 --- a/lib/ctype/iswpunct.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - Modified (m) 2017 Thomas Wolff to refer to generated Unicode data tables. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -FUNCTION - <>, <>---punctuation wide character test - -INDEX - iswpunct - -INDEX - iswpunct_l - -SYNOPSIS - #include - int iswpunct(wint_t <[c]>); - - #include - int iswpunct_l(wint_t <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies wide-character values that -are punctuation. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if <[c]> is a punctuation wide character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -int -iswpunct (wint_t c) -{ - return iswpunct_l (c, 0); -} diff --git a/lib/ctype/iswpunct_l.c b/lib/ctype/iswpunct_l.c deleted file mode 100644 index 4adc1ed..0000000 --- a/lib/ctype/iswpunct_l.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include -#include "local.h" -#include "categories.h" - -int -iswpunct_l (wint_t c, struct __locale_t *locale) -{ -#ifdef _MB_CAPABLE - //return !iswalnum (c) && iswgraph (c); - c = _jp2uc_l (c, locale); - enum category cat = category (c); - return cat == CAT_Pc || cat == CAT_Pd || cat == CAT_Pe || cat == CAT_Pf || cat == CAT_Pi || cat == CAT_Po || cat == CAT_Ps - || cat == CAT_Sm // Math Symbols - // the following are included for backwards consistency: - || cat == CAT_Sc // Currency Symbols - || cat == CAT_Sk // Modifier_Symbol - || cat == CAT_So // Other_Symbol - || cat == CAT_No // Other_Number - ; -#else - return c < (wint_t)0x100 ? ispunct (c) : 0; -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/iswspace.c b/lib/ctype/iswspace.c deleted file mode 100644 index ca6a887..0000000 --- a/lib/ctype/iswspace.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - Modified (m) 2017 Thomas Wolff to refer to generated Unicode data tables. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -FUNCTION - <>, <>---whitespace wide character test - -INDEX - iswspace - -INDEX - iswspace_l - -SYNOPSIS - #include - int iswspace(wint_t <[c]>); - - #include - int iswspace_l(wint_t <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies wide-character values that -are categorized as whitespace. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if <[c]> is a whitespace wide character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -int -iswspace (wint_t c) -{ - return iswspace_l (c, 0); -} diff --git a/lib/ctype/iswspace_l.c b/lib/ctype/iswspace_l.c deleted file mode 100644 index e7f47ee..0000000 --- a/lib/ctype/iswspace_l.c +++ /dev/null @@ -1,21 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include -#include "local.h" -#include "categories.h" - -int -iswspace_l (wint_t c, struct __locale_t *locale) -{ -#ifdef _MB_CAPABLE - c = _jp2uc_l (c, locale); - enum category cat = category (c); - // exclude ""? - return cat == CAT_Zs - || cat == CAT_Zl || cat == CAT_Zp // Line/Paragraph Separator - || (c >= 0x9 && c <= 0xD); -#else - return c < 0x100 ? isspace (c) : 0; -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/iswupper.c b/lib/ctype/iswupper.c deleted file mode 100644 index 96b5a0c..0000000 --- a/lib/ctype/iswupper.c +++ /dev/null @@ -1,42 +0,0 @@ -/* -FUNCTION - <>, <>---uppercase wide character test - -INDEX - iswupper - -INDEX - iswupper_l - -SYNOPSIS - #include - int iswupper(wint_t <[c]>); - - #include - int iswupper_l(wint_t <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies wide-character values that -are categorized as uppercase. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if <[c]> is an uppercase wide character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -int -iswupper (wint_t c) -{ - return iswupper_l (c, 0); -} diff --git a/lib/ctype/iswupper_l.c b/lib/ctype/iswupper_l.c deleted file mode 100644 index e772f92..0000000 --- a/lib/ctype/iswupper_l.c +++ /dev/null @@ -1,20 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include -#include "local.h" -#include "categories.h" - -int -iswupper_l (wint_t c, struct __locale_t *locale) -{ -#ifdef _MB_CAPABLE - c = _jp2uc_l (c, locale); - // The wide-character class "upper" contains at least those characters wc - // which are equal to towupper(wc) and different from towlower(wc). - enum category cat = category (c); - return cat == CAT_Lu || (cat == CAT_LC && towupper (c) == c); -#else - return c < 0x100 ? isupper (c) : 0; -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/iswxdigit.c b/lib/ctype/iswxdigit.c deleted file mode 100644 index fce2a4d..0000000 --- a/lib/ctype/iswxdigit.c +++ /dev/null @@ -1,44 +0,0 @@ -/* -FUNCTION - <>, <>---hexadecimal digit wide character test - -INDEX - iswxdigit - -INDEX - iswxdigit_l - -SYNOPSIS - #include - int iswxdigit(wint_t <[c]>); - - #include - int iswxdigit_l(wint_t <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a function which classifies wide character values that -are hexadecimal digits. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return non-zero if <[c]> is a hexadecimal digit wide character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - -int -iswxdigit (wint_t c) -{ - return (c >= (wint_t)'0' && c <= (wint_t)'9') - || (c >= (wint_t)'a' && c <= (wint_t)'f') - || (c >= (wint_t)'A' && c <= (wint_t)'F'); -} diff --git a/lib/ctype/iswxdigit_l.c b/lib/ctype/iswxdigit_l.c deleted file mode 100644 index 5a4c339..0000000 --- a/lib/ctype/iswxdigit_l.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <_ansi.h> -#include - -int -iswxdigit_l (wint_t c, struct __locale_t *locale) -{ - return ((c >= (wint_t)'0' && c <= (wint_t)'9') || - (c >= (wint_t)'a' && c <= (wint_t)'f') || - (c >= (wint_t)'A' && c <= (wint_t)'F')); -} - diff --git a/lib/ctype/isxdigit.c b/lib/ctype/isxdigit.c deleted file mode 100644 index 2bfe18d..0000000 --- a/lib/ctype/isxdigit.c +++ /dev/null @@ -1,50 +0,0 @@ -/* -FUNCTION - <>, <>---hexadecimal digit predicate - -INDEX - isxdigit - -INDEX - isxdigit_l - -SYNOPSIS - #include - int isxdigit(int <[c]>); - - #include - int isxdigit_l(int <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a macro which classifies singlebyte charset values by table -lookup. It is a predicate returning non-zero for hexadecimal digits, -and <<0>> for other characters. It is defined only if <[c]> is -representable as an unsigned char or if <[c]> is EOF. - -<> is like <> but performs the check based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining the macro using `<<#undef isxdigit>>' or `<<#undef isxdigit_l>>'. - -RETURNS -<>, <> return non-zero if <[c]> is a hexadecimal digit -(<<0>>--<<9>>, <>--<>, or <>--<>). - -PORTABILITY -<> is ANSI C. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ -#include <_ansi.h> -#include - - -#undef isxdigit -int -isxdigit (int c) -{ - return(__CTYPE_PTR[c+1] & ((_X)|(_N))); -} diff --git a/lib/ctype/isxdigit_l.c b/lib/ctype/isxdigit_l.c deleted file mode 100644 index 726db31..0000000 --- a/lib/ctype/isxdigit_l.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <_ansi.h> -#include - - -#undef isxdigit_l -int -isxdigit_l (int c, struct __locale_t *locale) -{ - return __locale_ctype_ptr_l (locale)[c+1] & ((_X)|(_N)); -} - diff --git a/lib/ctype/jp2uc.c b/lib/ctype/jp2uc.c deleted file mode 100644 index 5e30f09..0000000 --- a/lib/ctype/jp2uc.c +++ /dev/null @@ -1,200 +0,0 @@ -/* Routine to translate between Japanese characters and Unicode */ - -/* Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - Modified (m) 2017 Thomas Wolff: consider locale, add dummy uc2jp - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include - -#ifdef _MB_CAPABLE -/* Under Cygwin, the incoming wide character is already given in UTF due - to the requirements of the underlying OS. */ -#ifndef __CYGWIN__ - -#include <_ansi.h> -#include -#include -#include "local.h" - -/* Japanese encoding types supported */ -#define JP_JIS 1 -#define JP_SJIS 2 -#define JP_EUCJP 3 - -/* Japanese to Unicode conversion routine */ -#include "jp2uc.h" - -static wint_t -__jp2uc (wint_t c, int type) -{ - int index, adj; - unsigned char byte1, byte2; - wint_t ret; - - /* we actually use tables of EUCJP to Unicode. For JIS, we simply - note that EUCJP is essentially JIS with the top bits on in each - byte and translate to EUCJP. For SJIS, we do a translation to EUCJP before - accessing the tables. */ - switch (type) - { - case JP_JIS: - byte1 = (c >> 8) + 0x80; - byte2 = (c & 0xff) + 0x80; - break; - case JP_EUCJP: - byte1 = (c >> 8); - byte2 = (c & 0xff); - break; - case JP_SJIS: - byte1 = c >> 8; - byte2 = c & 0xff; - if (byte2 <= 0x9e) - { - adj = 0xa1 - 0x22; - byte2 = (byte2 - 31) + 0xa1; - } - else - { - adj = 0xa1 - 0x21; - byte2 = (byte2 - 126) + 0xa1; - } - if (byte1 <= 0x9f) - byte1 = ((byte1 - 112) << 1) + adj; - else - byte1 = ((byte1 - 176) << 1) + adj; - break; - default: - return WEOF; - } - - /* find conversion in jp2uc arrays */ - - /* handle larger ranges first */ - if (byte1 >= 0xb0 && byte1 <= 0xcf && c <= 0xcfd3) - { - index = (byte1 - 0xb0) * 0xfe + (byte2 - 0xa1); - return b02cf[index]; - } - else if (byte1 >= 0xd0 && byte1 <= 0xf4 && c <= 0xf4a6) - { - index = (byte1 - 0xd0) * 0xfe + (byte2 - 0xa1); - return d02f4[index]; - } - - /* handle smaller ranges here */ - switch (byte1) - { - case 0xA1: - return (wint_t)a1[byte2 - 0xa1]; - case 0xA2: - ret = a2[byte2 - 0xa1]; - if (ret != 0) - return (wint_t)ret; - break; - case 0xA3: - if (a3[byte2 - 0xa1]) - return (wint_t)(0xff00 + (byte2 - 0xa0)); - break; - case 0xA4: - if (byte2 <= 0xf3) - return (wint_t)(0x3000 + (byte2 - 0x60)); - break; - case 0xA5: - if (byte2 <= 0xf6) - return (wint_t)(0x3000 + byte2); - break; - case 0xA6: - ret = 0; - if (byte2 <= 0xd8) - ret = (wint_t)a6[byte2 - 0xa1]; - if (ret != 0) - return ret; - break; - case 0xA7: - ret = 0; - if (byte2 <= 0xf1) - ret = (wint_t)a7[byte2 - 0xa1]; - if (ret != 0) - return ret; - break; - case 0xA8: - if (byte2 <= 0xc0) - return (wint_t)a8[byte2 - 0xa1]; - break; - default: - return WEOF; - } - - return WEOF; -} - -/* Unicode to Japanese conversion routine */ -static wint_t -__uc2jp (wint_t c, int type) -{ -#warning back-conversion Unicode to Japanese not implemented; needed for towupper/towlower - return c; -} - -/* Japanese to Unicode conversion interface */ -wint_t -_jp2uc_l (wint_t c, struct __locale_t * l) -{ - const char * cs = l ? __locale_charset(l) : __current_locale_charset(); - if (0 == strcmp (cs, "JIS")) - c = __jp2uc (c, JP_JIS); - else if (0 == strcmp (cs, "SJIS")) - c = __jp2uc (c, JP_SJIS); - else if (0 == strcmp (cs, "EUCJP")) - c = __jp2uc (c, JP_EUCJP); - return c; -} - -wint_t -_jp2uc (wint_t c) -{ - return _jp2uc_l (c, 0); -} - -/* Unicode to Japanese conversion interface */ -wint_t -_uc2jp_l (wint_t c, struct __locale_t * l) -{ - const char * cs = l ? __locale_charset(l) : __current_locale_charset(); - if (0 == strcmp (cs, "JIS")) - c = __uc2jp (c, JP_JIS); - else if (0 == strcmp (cs, "SJIS")) - c = __uc2jp (c, JP_SJIS); - else if (0 == strcmp (cs, "EUCJP")) - c = __uc2jp (c, JP_EUCJP); - return c; -} - -#endif /* !__CYGWIN__ */ -#endif /* _MB_CAPABLE */ diff --git a/lib/ctype/jp2uc.h b/lib/ctype/jp2uc.h deleted file mode 100644 index 04eb67d..0000000 --- a/lib/ctype/jp2uc.h +++ /dev/null @@ -1,6849 +0,0 @@ -/* based on eucjp-208A.txt */ - -/* a1 is contiguous from a1a1 to a1fe */ -static unsigned short a1[] = { - 0x3000, - 0x3001, - 0x3002, - 0xFF0C, - 0xFF0E, - 0x30FB, - 0xFF1A, - 0xFF1B, - 0xFF1F, - 0xFF01, - 0x309B, - 0x309C, - 0x00B4, - 0xFF40, - 0x00A8, - 0xFF3E, - 0x203E, - 0xFF3F, - 0x30FD, - 0x30FE, - 0x309D, - 0x309E, - 0x3003, - 0x4EDD, - 0x3005, - 0x3006, - 0x3007, - 0x30FC, - 0x2014, - 0x2010, - 0xFF0F, - 0xFF3C, - 0x301C, - 0x2016, - 0xFF5C, - 0x2026, - 0x2025, - 0x2018, - 0x2019, - 0x201C, - 0x201D, - 0xFF08, - 0xFF09, - 0x3014, - 0x3015, - 0xFF3B, - 0xFF3D, - 0xFF5B, - 0xFF5D, - 0x3008, - 0x3009, - 0x300A, - 0x300B, - 0x300C, - 0x300D, - 0x300E, - 0x300F, - 0x3010, - 0x3011, - 0xFF0B, - 0x2212, - 0x00B1, - 0x00D7, - 0x00F7, - 0xFF1D, - 0x2260, - 0xFF1C, - 0xFF1E, - 0x2266, - 0x2267, - 0x221E, - 0x2234, - 0x2642, - 0x2640, - 0x00B0, - 0x2032, - 0x2033, - 0x2103, - 0x00A5, - 0xFF04, - 0x00A2, - 0x00A3, - 0xFF05, - 0xFF03, - 0xFF06, - 0xFF0A, - 0xFF20, - 0x00A7, - 0x2606, - 0x2605, - 0x25CB, - 0x25CF, - 0x25CE, - 0x25C7 -}; - -/* a2 has a number of holes between a2a1 and a2fe which we fill with 0x0000 */ -static unsigned short a2[] = { - 0x25C6, - 0x25A1, - 0x25A0, - 0x25B3, - 0x25B2, - 0x25BD, - 0x25BC, - 0x203B, - 0x3012, - 0x2192, - 0x2190, - 0x2191, - 0x2193, - 0x3013, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x2208, - 0x220B, - 0x2286, - 0x2287, - 0x2282, - 0x2283, - 0x222A, - 0x2229, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x2227, - 0x2228, - 0x00AC, - 0x21D2, - 0x21D4, - 0x2200, - 0x2203, - 0x2229, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x2220, - 0x22A5, - 0x2312, - 0x2202, - 0x2207, - 0x2261, - 0x2252, - 0x226A, - 0x226B, - 0x221A, - 0x223D, - 0x221D, - 0x2235, - 0x222B, - 0x222C, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x212B, - 0x2030, - 0x266F, - 0x266D, - 0x266A, - 0x2020, - 0x2021, - 0x00B6, - 0x222C, - 0x0000, - 0x0000, - 0x0000, - 0x25EF -}; - - -/* a3a1 to a3fe is mostly contiguous. Conversion output values are - of the form 0xFFxx where xx is (yy - 0xA0) where the input is 0xA3yy */ -static unsigned char a3[] = { - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 -}; - -/* a4 is contiguous from a4a1 to a4f3 */ -/* transform = 0x30xx where xx = last byte - 0x60 */ - -/* a5 is contiguous from a5a1 to a5f6 */ -/* transform = 0x30xx where xx = last byte */ - -/* a6 is mostly contiguous from a6a1 to a6d8 */ -static unsigned short a6[] = { - 0x0391, - 0x0392, - 0x0393, - 0x0394, - 0x0395, - 0x0396, - 0x0397, - 0x0398, - 0x0399, - 0x039A, - 0x039B, - 0x039C, - 0x039D, - 0x039E, - 0x039F, - 0x03A0, - 0x03A1, - 0x03A3, - 0x03A4, - 0x03A5, - 0x03A6, - 0x03A7, - 0x03A8, - 0x03A9, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x03B1, - 0x03B2, - 0x03B3, - 0x03B4, - 0x03B5, - 0x03B6, - 0x03B7, - 0x03B8, - 0x03B9, - 0x03BA, - 0x03BB, - 0x03BC, - 0x03BD, - 0x03BE, - 0x03BF, - 0x03C0, - 0x03C1, - 0x03C3, - 0x03C4, - 0x03C5, - 0x03C6, - 0x03C7, - 0x03C8, - 0x03C9 -}; - -/* a7 is mostly contiguous from a7a1 to a7f1 */ -static unsigned short a7[] = { - 0x0410, - 0x0411, - 0x0412, - 0x0413, - 0x0414, - 0x0415, - 0x0401, - 0x0416, - 0x0417, - 0x0418, - 0x0419, - 0x041A, - 0x041B, - 0x041C, - 0x041D, - 0x041E, - 0x041F, - 0x0420, - 0x0421, - 0x0422, - 0x0423, - 0x0424, - 0x0425, - 0x0426, - 0x0427, - 0x0428, - 0x0429, - 0x042A, - 0x042B, - 0x042C, - 0x042D, - 0x042E, - 0x042F, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0430, - 0x0431, - 0x0432, - 0x0433, - 0x0434, - 0x0435, - 0x0451, - 0x0436, - 0x0437, - 0x0438, - 0x0439, - 0x043A, - 0x043B, - 0x043C, - 0x043D, - 0x043E, - 0x043F, - 0x0440, - 0x0441, - 0x0442, - 0x0443, - 0x0444, - 0x0445, - 0x0446, - 0x0447, - 0x0448, - 0x0449, - 0x044A, - 0x044B, - 0x044C, - 0x044D, - 0x044E, - 0x044F -}; - -/* a8 is contiguous from a8a1 to a8c0 */ -static unsigned short a8[] = { - 0x2500, - 0x2502, - 0x250C, - 0x2510, - 0x2518, - 0x2514, - 0x251C, - 0x252C, - 0x2524, - 0x2534, - 0x253C, - 0x2501, - 0x2503, - 0x250F, - 0x2513, - 0x251B, - 0x2517, - 0x2523, - 0x2533, - 0x252B, - 0x253B, - 0x254B, - 0x2520, - 0x252F, - 0x2528, - 0x2537, - 0x253F, - 0x251D, - 0x2530, - 0x2525, - 0x2538, - 0x2542 -}; - -/* no conversion a9 to af */ - -/* b0a1 to cfd3 is contiguous except for illegal sequences with 0xfe */ -static unsigned short b02cf[] = { - 0x4E9C, - 0x5516, - 0x5A03, - 0x963F, - 0x54C0, - 0x611B, - 0x6328, - 0x59F6, - 0x9022, - 0x8475, - 0x831C, - 0x7A50, - 0x60AA, - 0x63E1, - 0x6E25, - 0x65ED, - 0x8466, - 0x82A6, - 0x9BF5, - 0x6893, - 0x5727, - 0x65A1, - 0x6271, - 0x5B9B, - 0x59D0, - 0x867B, - 0x98F4, - 0x7D62, - 0x7DBE, - 0x9B8E, - 0x6216, - 0x7C9F, - 0x88B7, - 0x5B89, - 0x5EB5, - 0x6309, - 0x6697, - 0x6848, - 0x95C7, - 0x978D, - 0x674F, - 0x4EE5, - 0x4F0A, - 0x4F4D, - 0x4F9D, - 0x5049, - 0x56F2, - 0x5937, - 0x59D4, - 0x5A01, - 0x5C09, - 0x60DF, - 0x610F, - 0x6170, - 0x6613, - 0x6905, - 0x70BA, - 0x754F, - 0x7570, - 0x79FB, - 0x7DAD, - 0x7DEF, - 0x80C3, - 0x840E, - 0x8863, - 0x8B02, - 0x9055, - 0x907A, - 0x533B, - 0x4E95, - 0x4EA5, - 0x57DF, - 0x80B2, - 0x90C1, - 0x78EF, - 0x4E00, - 0x58F1, - 0x6EA2, - 0x9038, - 0x7A32, - 0x8328, - 0x828B, - 0x9C2F, - 0x5141, - 0x5370, - 0x54BD, - 0x54E1, - 0x56E0, - 0x59FB, - 0x5F15, - 0x98F2, - 0x6DEB, - 0x80E4, - 0x852D, - 0x9662, - 0x9670, - 0x96A0, - 0x97FB, - 0x540B, - 0x53F3, - 0x5B87, - 0x70CF, - 0x7FBD, - 0x8FC2, - 0x96E8, - 0x536F, - 0x9D5C, - 0x7ABA, - 0x4E11, - 0x7893, - 0x81FC, - 0x6E26, - 0x5618, - 0x5504, - 0x6B1D, - 0x851A, - 0x9C3B, - 0x59E5, - 0x53A9, - 0x6D66, - 0x74DC, - 0x958F, - 0x5642, - 0x4E91, - 0x904B, - 0x96F2, - 0x834F, - 0x990C, - 0x53E1, - 0x55B6, - 0x5B30, - 0x5F71, - 0x6620, - 0x66F3, - 0x6804, - 0x6C38, - 0x6CF3, - 0x6D29, - 0x745B, - 0x76C8, - 0x7A4E, - 0x9834, - 0x82F1, - 0x885B, - 0x8A60, - 0x92ED, - 0x6DB2, - 0x75AB, - 0x76CA, - 0x99C5, - 0x60A6, - 0x8B01, - 0x8D8A, - 0x95B2, - 0x698E, - 0x53AD, - 0x5186, - 0x5712, - 0x5830, - 0x5944, - 0x5BB4, - 0x5EF6, - 0x6028, - 0x63A9, - 0x63F4, - 0x6CBF, - 0x6F14, - 0x708E, - 0x7114, - 0x7159, - 0x71D5, - 0x733F, - 0x7E01, - 0x8276, - 0x82D1, - 0x8597, - 0x9060, - 0x925B, - 0x9D1B, - 0x5869, - 0x65BC, - 0x6C5A, - 0x7525, - 0x51F9, - 0x592E, - 0x5965, - 0x5F80, - 0x5FDC, - 0x62BC, - 0x65FA, - 0x6A2A, - 0x6B27, - 0x6BB4, - 0x738B, - 0x7FC1, - 0x8956, - 0x9D2C, - 0x9D0E, - 0x9EC4, - 0x5CA1, - 0x6C96, - 0x837B, - 0x5104, - 0x5C4B, - 0x61B6, - 0x81C6, - 0x6876, - 0x7261, - 0x4E59, - 0x4FFA, - 0x5378, - 0x6069, - 0x6E29, - 0x7A4F, - 0x97F3, - 0x4E0B, - 0x5316, - 0x4EEE, - 0x4F55, - 0x4F3D, - 0x4FA1, - 0x4F73, - 0x52A0, - 0x53EF, - 0x5609, - 0x590F, - 0x5AC1, - 0x5BB6, - 0x5BE1, - 0x79D1, - 0x6687, - 0x679C, - 0x67B6, - 0x6B4C, - 0x6CB3, - 0x706B, - 0x73C2, - 0x798D, - 0x79BE, - 0x7A3C, - 0x7B87, - 0x82B1, - 0x82DB, - 0x8304, - 0x8377, - 0x83EF, - 0x83D3, - 0x8766, - 0x8AB2, - 0x5629, - 0x8CA8, - 0x8FE6, - 0x904E, - 0x971E, - 0x868A, - 0x4FC4, - 0x5CE8, - 0x6211, - 0x7259, - 0x753B, - 0x81E5, - 0x82BD, - 0x86FE, - 0x8CC0, - 0x96C5, - 0x9913, - 0x99D5, - 0x4ECB, - 0x4F1A, - 0x89E3, - 0x56DE, - 0x584A, - 0x58CA, - 0x5EFB, - 0x5FEB, - 0x602A, - 0x6094, - 0x6062, - 0x61D0, - 0x6212, - 0x62D0, - 0x6539, - 0x9B41, - 0x6666, - 0x68B0, - 0x6D77, - 0x7070, - 0x754C, - 0x7686, - 0x7D75, - 0x82A5, - 0x87F9, - 0x958B, - 0x968E, - 0x8C9D, - 0x51F1, - 0x52BE, - 0x5916, - 0x54B3, - 0x5BB3, - 0x5D16, - 0x6168, - 0x6982, - 0x6DAF, - 0x788D, - 0x84CB, - 0x8857, - 0x8A72, - 0x93A7, - 0x9AB8, - 0x6D6C, - 0x99A8, - 0x86D9, - 0x57A3, - 0x67FF, - 0x86CE, - 0x920E, - 0x5283, - 0x5687, - 0x5404, - 0x5ED3, - 0x62E1, - 0x64B9, - 0x683C, - 0x6838, - 0x6BBB, - 0x7372, - 0x78BA, - 0x7A6B, - 0x899A, - 0x89D2, - 0x8D6B, - 0x8F03, - 0x90ED, - 0x95A3, - 0x9694, - 0x9769, - 0x5B66, - 0x5CB3, - 0x697D, - 0x984D, - 0x984E, - 0x639B, - 0x7B20, - 0x6A2B, - 0x6A7F, - 0x68B6, - 0x9C0D, - 0x6F5F, - 0x5272, - 0x559D, - 0x6070, - 0x62EC, - 0x6D3B, - 0x6E07, - 0x6ED1, - 0x845B, - 0x8910, - 0x8F44, - 0x4E14, - 0x9C39, - 0x53F6, - 0x691B, - 0x6A3A, - 0x9784, - 0x682A, - 0x515C, - 0x7AC3, - 0x84B2, - 0x91DC, - 0x938C, - 0x565B, - 0x9D28, - 0x6822, - 0x8305, - 0x8431, - 0x7CA5, - 0x5208, - 0x82C5, - 0x74E6, - 0x4E7E, - 0x4F83, - 0x51A0, - 0x5BD2, - 0x520A, - 0x52D8, - 0x52E7, - 0x5DFB, - 0x559A, - 0x582A, - 0x59E6, - 0x5B8C, - 0x5B98, - 0x5BDB, - 0x5E72, - 0x5E79, - 0x60A3, - 0x611F, - 0x6163, - 0x61BE, - 0x63DB, - 0x6562, - 0x67D1, - 0x6853, - 0x68FA, - 0x6B3E, - 0x6B53, - 0x6C57, - 0x6F22, - 0x6F97, - 0x6F45, - 0x74B0, - 0x7518, - 0x76E3, - 0x770B, - 0x7AFF, - 0x7BA1, - 0x7C21, - 0x7DE9, - 0x7F36, - 0x7FF0, - 0x809D, - 0x8266, - 0x839E, - 0x89B3, - 0x8ACC, - 0x8CAB, - 0x9084, - 0x9451, - 0x9593, - 0x9591, - 0x95A2, - 0x9665, - 0x97D3, - 0x9928, - 0x8218, - 0x4E38, - 0x542B, - 0x5CB8, - 0x5DCC, - 0x73A9, - 0x764C, - 0x773C, - 0x5CA9, - 0x7FEB, - 0x8D0B, - 0x96C1, - 0x9811, - 0x9854, - 0x9858, - 0x4F01, - 0x4F0E, - 0x5371, - 0x559C, - 0x5668, - 0x57FA, - 0x5947, - 0x5B09, - 0x5BC4, - 0x5C90, - 0x5E0C, - 0x5E7E, - 0x5FCC, - 0x63EE, - 0x673A, - 0x65D7, - 0x65E2, - 0x671F, - 0x68CB, - 0x68C4, - 0x6A5F, - 0x5E30, - 0x6BC5, - 0x6C17, - 0x6C7D, - 0x757F, - 0x7948, - 0x5B63, - 0x7A00, - 0x7D00, - 0x5FBD, - 0x898F, - 0x8A18, - 0x8CB4, - 0x8D77, - 0x8ECC, - 0x8F1D, - 0x98E2, - 0x9A0E, - 0x9B3C, - 0x4E80, - 0x507D, - 0x5100, - 0x5993, - 0x5B9C, - 0x622F, - 0x6280, - 0x64EC, - 0x6B3A, - 0x72A0, - 0x7591, - 0x7947, - 0x7FA9, - 0x87FB, - 0x8ABC, - 0x8B70, - 0x63AC, - 0x83CA, - 0x97A0, - 0x5409, - 0x5403, - 0x55AB, - 0x6854, - 0x6A58, - 0x8A70, - 0x7827, - 0x6775, - 0x9ECD, - 0x5374, - 0x5BA2, - 0x811A, - 0x8650, - 0x9006, - 0x4E18, - 0x4E45, - 0x4EC7, - 0x4F11, - 0x53CA, - 0x5438, - 0x5BAE, - 0x5F13, - 0x6025, - 0x6551, - 0x673D, - 0x6C42, - 0x6C72, - 0x6CE3, - 0x7078, - 0x7403, - 0x7A76, - 0x7AAE, - 0x7B08, - 0x7D1A, - 0x7CFE, - 0x7D66, - 0x65E7, - 0x725B, - 0x53BB, - 0x5C45, - 0x5DE8, - 0x62D2, - 0x62E0, - 0x6319, - 0x6E20, - 0x865A, - 0x8A31, - 0x8DDD, - 0x92F8, - 0x6F01, - 0x79A6, - 0x9B5A, - 0x4EA8, - 0x4EAB, - 0x4EAC, - 0x4F9B, - 0x4FA0, - 0x50D1, - 0x5147, - 0x7AF6, - 0x5171, - 0x51F6, - 0x5354, - 0x5321, - 0x537F, - 0x53EB, - 0x55AC, - 0x5883, - 0x5CE1, - 0x5F37, - 0x5F4A, - 0x602F, - 0x6050, - 0x606D, - 0x631F, - 0x6559, - 0x6A4B, - 0x6CC1, - 0x72C2, - 0x72ED, - 0x77EF, - 0x80F8, - 0x8105, - 0x8208, - 0x854E, - 0x90F7, - 0x93E1, - 0x97FF, - 0x9957, - 0x9A5A, - 0x4EF0, - 0x51DD, - 0x5C2D, - 0x6681, - 0x696D, - 0x5C40, - 0x66F2, - 0x6975, - 0x7389, - 0x6850, - 0x7C81, - 0x50C5, - 0x52E4, - 0x5747, - 0x5DFE, - 0x9326, - 0x65A4, - 0x6B23, - 0x6B3D, - 0x7434, - 0x7981, - 0x79BD, - 0x7B4B, - 0x7DCA, - 0x82B9, - 0x83CC, - 0x887F, - 0x895F, - 0x8B39, - 0x8FD1, - 0x91D1, - 0x541F, - 0x9280, - 0x4E5D, - 0x5036, - 0x53E5, - 0x533A, - 0x72D7, - 0x7396, - 0x77E9, - 0x82E6, - 0x8EAF, - 0x99C6, - 0x99C8, - 0x99D2, - 0x5177, - 0x611A, - 0x865E, - 0x55B0, - 0x7A7A, - 0x5076, - 0x5BD3, - 0x9047, - 0x9685, - 0x4E32, - 0x6ADB, - 0x91E7, - 0x5C51, - 0x5C48, - 0x6398, - 0x7A9F, - 0x6C93, - 0x9774, - 0x8F61, - 0x7AAA, - 0x718A, - 0x9688, - 0x7C82, - 0x6817, - 0x7E70, - 0x6851, - 0x936C, - 0x52F2, - 0x541B, - 0x85AB, - 0x8A13, - 0x7FA4, - 0x8ECD, - 0x90E1, - 0x5366, - 0x8888, - 0x7941, - 0x4FC2, - 0x50BE, - 0x5211, - 0x5144, - 0x5553, - 0x572D, - 0x73EA, - 0x578B, - 0x5951, - 0x5F62, - 0x5F84, - 0x6075, - 0x6176, - 0x6167, - 0x61A9, - 0x63B2, - 0x643A, - 0x656C, - 0x666F, - 0x6842, - 0x6E13, - 0x7566, - 0x7A3D, - 0x7CFB, - 0x7D4C, - 0x7D99, - 0x7E4B, - 0x7F6B, - 0x830E, - 0x834A, - 0x86CD, - 0x8A08, - 0x8A63, - 0x8B66, - 0x8EFD, - 0x981A, - 0x9D8F, - 0x82B8, - 0x8FCE, - 0x9BE8, - 0x5287, - 0x621F, - 0x6483, - 0x6FC0, - 0x9699, - 0x6841, - 0x5091, - 0x6B20, - 0x6C7A, - 0x6F54, - 0x7A74, - 0x7D50, - 0x8840, - 0x8A23, - 0x6708, - 0x4EF6, - 0x5039, - 0x5026, - 0x5065, - 0x517C, - 0x5238, - 0x5263, - 0x55A7, - 0x570F, - 0x5805, - 0x5ACC, - 0x5EFA, - 0x61B2, - 0x61F8, - 0x62F3, - 0x6372, - 0x691C, - 0x6A29, - 0x727D, - 0x72AC, - 0x732E, - 0x7814, - 0x786F, - 0x7D79, - 0x770C, - 0x80A9, - 0x898B, - 0x8B19, - 0x8CE2, - 0x8ED2, - 0x9063, - 0x9375, - 0x967A, - 0x9855, - 0x9A13, - 0x9E78, - 0x5143, - 0x539F, - 0x53B3, - 0x5E7B, - 0x5F26, - 0x6E1B, - 0x6E90, - 0x7384, - 0x73FE, - 0x7D43, - 0x8237, - 0x8A00, - 0x8AFA, - 0x9650, - 0x4E4E, - 0x500B, - 0x53E4, - 0x547C, - 0x56FA, - 0x59D1, - 0x5B64, - 0x5DF1, - 0x5EAB, - 0x5F27, - 0x6238, - 0x6545, - 0x67AF, - 0x6E56, - 0x72D0, - 0x7CCA, - 0x88B4, - 0x80A1, - 0x80E1, - 0x83F0, - 0x864E, - 0x8A87, - 0x8DE8, - 0x9237, - 0x96C7, - 0x9867, - 0x9F13, - 0x4E94, - 0x4E92, - 0x4F0D, - 0x5348, - 0x5449, - 0x543E, - 0x5A2F, - 0x5F8C, - 0x5FA1, - 0x609F, - 0x68A7, - 0x6A8E, - 0x745A, - 0x7881, - 0x8A9E, - 0x8AA4, - 0x8B77, - 0x9190, - 0x4E5E, - 0x9BC9, - 0x4EA4, - 0x4F7C, - 0x4FAF, - 0x5019, - 0x5016, - 0x5149, - 0x516C, - 0x529F, - 0x52B9, - 0x52FE, - 0x539A, - 0x53E3, - 0x5411, - 0x540E, - 0x5589, - 0x5751, - 0x57A2, - 0x597D, - 0x5B54, - 0x5B5D, - 0x5B8F, - 0x5DE5, - 0x5DE7, - 0x5DF7, - 0x5E78, - 0x5E83, - 0x5E9A, - 0x5EB7, - 0x5F18, - 0x6052, - 0x614C, - 0x6297, - 0x62D8, - 0x63A7, - 0x653B, - 0x6602, - 0x6643, - 0x66F4, - 0x676D, - 0x6821, - 0x6897, - 0x69CB, - 0x6C5F, - 0x6D2A, - 0x6D69, - 0x6E2F, - 0x6E9D, - 0x7532, - 0x7687, - 0x786C, - 0x7A3F, - 0x7CE0, - 0x7D05, - 0x7D18, - 0x7D5E, - 0x7DB1, - 0x8015, - 0x8003, - 0x80AF, - 0x80B1, - 0x8154, - 0x818F, - 0x822A, - 0x8352, - 0x884C, - 0x8861, - 0x8B1B, - 0x8CA2, - 0x8CFC, - 0x90CA, - 0x9175, - 0x9271, - 0x783F, - 0x92FC, - 0x95A4, - 0x964D, - 0x9805, - 0x9999, - 0x9AD8, - 0x9D3B, - 0x525B, - 0x52AB, - 0x53F7, - 0x5408, - 0x58D5, - 0x62F7, - 0x6FE0, - 0x8C6A, - 0x8F5F, - 0x9EB9, - 0x514B, - 0x523B, - 0x544A, - 0x56FD, - 0x7A40, - 0x9177, - 0x9D60, - 0x9ED2, - 0x7344, - 0x6F09, - 0x8170, - 0x7511, - 0x5FFD, - 0x60DA, - 0x9AA8, - 0x72DB, - 0x8FBC, - 0x6B64, - 0x9803, - 0x4ECA, - 0x56F0, - 0x5764, - 0x58BE, - 0x5A5A, - 0x6068, - 0x61C7, - 0x660F, - 0x6606, - 0x6839, - 0x68B1, - 0x6DF7, - 0x75D5, - 0x7D3A, - 0x826E, - 0x9B42, - 0x4E9B, - 0x4F50, - 0x53C9, - 0x5506, - 0x5D6F, - 0x5DE6, - 0x5DEE, - 0x67FB, - 0x6C99, - 0x7473, - 0x7802, - 0x8A50, - 0x9396, - 0x88DF, - 0x5750, - 0x5EA7, - 0x632B, - 0x50B5, - 0x50AC, - 0x518D, - 0x6700, - 0x54C9, - 0x585E, - 0x59BB, - 0x5BB0, - 0x5F69, - 0x624D, - 0x63A1, - 0x683D, - 0x6B73, - 0x6E08, - 0x707D, - 0x91C7, - 0x7280, - 0x7815, - 0x7826, - 0x796D, - 0x658E, - 0x7D30, - 0x83DC, - 0x88C1, - 0x8F09, - 0x969B, - 0x5264, - 0x5728, - 0x6750, - 0x7F6A, - 0x8CA1, - 0x51B4, - 0x5742, - 0x962A, - 0x583A, - 0x698A, - 0x80B4, - 0x54B2, - 0x5D0E, - 0x57FC, - 0x7895, - 0x9DFA, - 0x4F5C, - 0x524A, - 0x548B, - 0x643E, - 0x6628, - 0x6714, - 0x67F5, - 0x7A84, - 0x7B56, - 0x7D22, - 0x932F, - 0x685C, - 0x9BAD, - 0x7B39, - 0x5319, - 0x518A, - 0x5237, - 0x5BDF, - 0x62F6, - 0x64AE, - 0x64E6, - 0x672D, - 0x6BBA, - 0x85A9, - 0x96D1, - 0x7690, - 0x9BD6, - 0x634C, - 0x9306, - 0x9BAB, - 0x76BF, - 0x6652, - 0x4E09, - 0x5098, - 0x53C2, - 0x5C71, - 0x60E8, - 0x6492, - 0x6563, - 0x685F, - 0x71E6, - 0x73CA, - 0x7523, - 0x7B97, - 0x7E82, - 0x8695, - 0x8B83, - 0x8CDB, - 0x9178, - 0x9910, - 0x65AC, - 0x66AB, - 0x6B8B, - 0x4ED5, - 0x4ED4, - 0x4F3A, - 0x4F7F, - 0x523A, - 0x53F8, - 0x53F2, - 0x55E3, - 0x56DB, - 0x58EB, - 0x59CB, - 0x59C9, - 0x59FF, - 0x5B50, - 0x5C4D, - 0x5E02, - 0x5E2B, - 0x5FD7, - 0x601D, - 0x6307, - 0x652F, - 0x5B5C, - 0x65AF, - 0x65BD, - 0x65E8, - 0x679D, - 0x6B62, - 0x6B7B, - 0x6C0F, - 0x7345, - 0x7949, - 0x79C1, - 0x7CF8, - 0x7D19, - 0x7D2B, - 0x80A2, - 0x8102, - 0x81F3, - 0x8996, - 0x8A5E, - 0x8A69, - 0x8A66, - 0x8A8C, - 0x8AEE, - 0x8CC7, - 0x8CDC, - 0x96CC, - 0x98FC, - 0x6B6F, - 0x4E8B, - 0x4F3C, - 0x4F8D, - 0x5150, - 0x5B57, - 0x5BFA, - 0x6148, - 0x6301, - 0x6642, - 0x6B21, - 0x6ECB, - 0x6CBB, - 0x723E, - 0x74BD, - 0x75D4, - 0x78C1, - 0x793A, - 0x800C, - 0x8033, - 0x81EA, - 0x8494, - 0x8F9E, - 0x6C50, - 0x9E7F, - 0x5F0F, - 0x8B58, - 0x9D2B, - 0x7AFA, - 0x8EF8, - 0x5B8D, - 0x96EB, - 0x4E03, - 0x53F1, - 0x57F7, - 0x5931, - 0x5AC9, - 0x5BA4, - 0x6089, - 0x6E7F, - 0x6F06, - 0x75BE, - 0x8CEA, - 0x5B9F, - 0x8500, - 0x7BE0, - 0x5072, - 0x67F4, - 0x829D, - 0x5C61, - 0x854A, - 0x7E1E, - 0x820E, - 0x5199, - 0x5C04, - 0x6368, - 0x8D66, - 0x659C, - 0x716E, - 0x793E, - 0x7D17, - 0x8005, - 0x8B1D, - 0x8ECA, - 0x906E, - 0x86C7, - 0x90AA, - 0x501F, - 0x52FA, - 0x5C3A, - 0x6753, - 0x707C, - 0x7235, - 0x914C, - 0x91C8, - 0x932B, - 0x82E5, - 0x5BC2, - 0x5F31, - 0x60F9, - 0x4E3B, - 0x53D6, - 0x5B88, - 0x624B, - 0x6731, - 0x6B8A, - 0x72E9, - 0x73E0, - 0x7A2E, - 0x816B, - 0x8DA3, - 0x9152, - 0x9996, - 0x5112, - 0x53D7, - 0x546A, - 0x5BFF, - 0x6388, - 0x6A39, - 0x7DAC, - 0x9700, - 0x56DA, - 0x53CE, - 0x5468, - 0x5B97, - 0x5C31, - 0x5DDE, - 0x4FEE, - 0x6101, - 0x62FE, - 0x6D32, - 0x79C0, - 0x79CB, - 0x7D42, - 0x7E4D, - 0x7FD2, - 0x81ED, - 0x821F, - 0x8490, - 0x8846, - 0x8972, - 0x8B90, - 0x8E74, - 0x8F2F, - 0x9031, - 0x914B, - 0x916C, - 0x96C6, - 0x919C, - 0x4EC0, - 0x4F4F, - 0x5145, - 0x5341, - 0x5F93, - 0x620E, - 0x67D4, - 0x6C41, - 0x6E0B, - 0x7363, - 0x7E26, - 0x91CD, - 0x9283, - 0x53D4, - 0x5919, - 0x5BBF, - 0x6DD1, - 0x795D, - 0x7E2E, - 0x7C9B, - 0x587E, - 0x719F, - 0x51FA, - 0x8853, - 0x8FF0, - 0x4FCA, - 0x5CFB, - 0x6625, - 0x77AC, - 0x7AE3, - 0x821C, - 0x99FF, - 0x51C6, - 0x5FAA, - 0x65EC, - 0x696F, - 0x6B89, - 0x6DF3, - 0x6E96, - 0x6F64, - 0x76FE, - 0x7D14, - 0x5DE1, - 0x9075, - 0x9187, - 0x9806, - 0x51E6, - 0x521D, - 0x6240, - 0x6691, - 0x66D9, - 0x6E1A, - 0x5EB6, - 0x7DD2, - 0x7F72, - 0x66F8, - 0x85AF, - 0x85F7, - 0x8AF8, - 0x52A9, - 0x53D9, - 0x5973, - 0x5E8F, - 0x5F90, - 0x6055, - 0x92E4, - 0x9664, - 0x50B7, - 0x511F, - 0x52DD, - 0x5320, - 0x5347, - 0x53EC, - 0x54E8, - 0x5546, - 0x5531, - 0x5617, - 0x5968, - 0x59BE, - 0x5A3C, - 0x5BB5, - 0x5C06, - 0x5C0F, - 0x5C11, - 0x5C1A, - 0x5E84, - 0x5E8A, - 0x5EE0, - 0x5F70, - 0x627F, - 0x6284, - 0x62DB, - 0x638C, - 0x6377, - 0x6607, - 0x660C, - 0x662D, - 0x6676, - 0x677E, - 0x68A2, - 0x6A1F, - 0x6A35, - 0x6CBC, - 0x6D88, - 0x6E09, - 0x6E58, - 0x713C, - 0x7126, - 0x7167, - 0x75C7, - 0x7701, - 0x785D, - 0x7901, - 0x7965, - 0x79F0, - 0x7AE0, - 0x7B11, - 0x7CA7, - 0x7D39, - 0x8096, - 0x83D6, - 0x848B, - 0x8549, - 0x885D, - 0x88F3, - 0x8A1F, - 0x8A3C, - 0x8A54, - 0x8A73, - 0x8C61, - 0x8CDE, - 0x91A4, - 0x9266, - 0x937E, - 0x9418, - 0x969C, - 0x9798, - 0x4E0A, - 0x4E08, - 0x4E1E, - 0x4E57, - 0x5197, - 0x5270, - 0x57CE, - 0x5834, - 0x58CC, - 0x5B22, - 0x5E38, - 0x60C5, - 0x64FE, - 0x6761, - 0x6756, - 0x6D44, - 0x72B6, - 0x7573, - 0x7A63, - 0x84B8, - 0x8B72, - 0x91B8, - 0x9320, - 0x5631, - 0x57F4, - 0x98FE, - 0x62ED, - 0x690D, - 0x6B96, - 0x71ED, - 0x7E54, - 0x8077, - 0x8272, - 0x89E6, - 0x98DF, - 0x8755, - 0x8FB1, - 0x5C3B, - 0x4F38, - 0x4FE1, - 0x4FB5, - 0x5507, - 0x5A20, - 0x5BDD, - 0x5BE9, - 0x5FC3, - 0x614E, - 0x632F, - 0x65B0, - 0x664B, - 0x68EE, - 0x699B, - 0x6D78, - 0x6DF1, - 0x7533, - 0x75B9, - 0x771F, - 0x795E, - 0x79E6, - 0x7D33, - 0x81E3, - 0x82AF, - 0x85AA, - 0x89AA, - 0x8A3A, - 0x8EAB, - 0x8F9B, - 0x9032, - 0x91DD, - 0x9707, - 0x4EBA, - 0x4EC1, - 0x5203, - 0x5875, - 0x58EC, - 0x5C0B, - 0x751A, - 0x5C3D, - 0x814E, - 0x8A0A, - 0x8FC5, - 0x9663, - 0x976D, - 0x7B25, - 0x8ACF, - 0x9808, - 0x9162, - 0x56F3, - 0x53A8, - 0x9017, - 0x5439, - 0x5782, - 0x5E25, - 0x63A8, - 0x6C34, - 0x708A, - 0x7761, - 0x7C8B, - 0x7FE0, - 0x8870, - 0x9042, - 0x9154, - 0x9310, - 0x9318, - 0x968F, - 0x745E, - 0x9AC4, - 0x5D07, - 0x5D69, - 0x6570, - 0x67A2, - 0x8DA8, - 0x96DB, - 0x636E, - 0x6749, - 0x6919, - 0x83C5, - 0x9817, - 0x96C0, - 0x88FE, - 0x6F84, - 0x647A, - 0x5BF8, - 0x4E16, - 0x702C, - 0x755D, - 0x662F, - 0x51C4, - 0x5236, - 0x52E2, - 0x59D3, - 0x5F81, - 0x6027, - 0x6210, - 0x653F, - 0x6574, - 0x661F, - 0x6674, - 0x68F2, - 0x6816, - 0x6B63, - 0x6E05, - 0x7272, - 0x751F, - 0x76DB, - 0x7CBE, - 0x8056, - 0x58F0, - 0x88FD, - 0x897F, - 0x8AA0, - 0x8A93, - 0x8ACB, - 0x901D, - 0x9192, - 0x9752, - 0x9759, - 0x6589, - 0x7A0E, - 0x8106, - 0x96BB, - 0x5E2D, - 0x60DC, - 0x621A, - 0x65A5, - 0x6614, - 0x6790, - 0x77F3, - 0x7A4D, - 0x7C4D, - 0x7E3E, - 0x810A, - 0x8CAC, - 0x8D64, - 0x8DE1, - 0x8E5F, - 0x78A9, - 0x5207, - 0x62D9, - 0x63A5, - 0x6442, - 0x6298, - 0x8A2D, - 0x7A83, - 0x7BC0, - 0x8AAC, - 0x96EA, - 0x7D76, - 0x820C, - 0x8749, - 0x4ED9, - 0x5148, - 0x5343, - 0x5360, - 0x5BA3, - 0x5C02, - 0x5C16, - 0x5DDD, - 0x6226, - 0x6247, - 0x64B0, - 0x6813, - 0x6834, - 0x6CC9, - 0x6D45, - 0x6D17, - 0x67D3, - 0x6F5C, - 0x714E, - 0x717D, - 0x65CB, - 0x7A7F, - 0x7BAD, - 0x7DDA, - 0x7E4A, - 0x7FA8, - 0x817A, - 0x821B, - 0x8239, - 0x85A6, - 0x8A6E, - 0x8CCE, - 0x8DF5, - 0x9078, - 0x9077, - 0x92AD, - 0x9291, - 0x9583, - 0x9BAE, - 0x524D, - 0x5584, - 0x6F38, - 0x7136, - 0x5168, - 0x7985, - 0x7E55, - 0x81B3, - 0x7CCE, - 0x564C, - 0x5851, - 0x5CA8, - 0x63AA, - 0x66FE, - 0x66FD, - 0x695A, - 0x72D9, - 0x758F, - 0x758E, - 0x790E, - 0x7956, - 0x79DF, - 0x7C97, - 0x7D20, - 0x7D44, - 0x8607, - 0x8A34, - 0x963B, - 0x9061, - 0x9F20, - 0x50E7, - 0x5275, - 0x53CC, - 0x53E2, - 0x5009, - 0x55AA, - 0x58EE, - 0x594F, - 0x723D, - 0x5B8B, - 0x5C64, - 0x531D, - 0x60E3, - 0x60F3, - 0x635C, - 0x6383, - 0x633F, - 0x63BB, - 0x64CD, - 0x65E9, - 0x66F9, - 0x5DE3, - 0x69CD, - 0x69FD, - 0x6F15, - 0x71E5, - 0x4E89, - 0x75E9, - 0x76F8, - 0x7A93, - 0x7CDF, - 0x7DCF, - 0x7D9C, - 0x8061, - 0x8349, - 0x8358, - 0x846C, - 0x84BC, - 0x85FB, - 0x88C5, - 0x8D70, - 0x9001, - 0x906D, - 0x9397, - 0x971C, - 0x9A12, - 0x50CF, - 0x5897, - 0x618E, - 0x81D3, - 0x8535, - 0x8D08, - 0x9020, - 0x4FC3, - 0x5074, - 0x5247, - 0x5373, - 0x606F, - 0x6349, - 0x675F, - 0x6E2C, - 0x8DB3, - 0x901F, - 0x4FD7, - 0x5C5E, - 0x8CCA, - 0x65CF, - 0x7D9A, - 0x5352, - 0x8896, - 0x5176, - 0x63C3, - 0x5B58, - 0x5B6B, - 0x5C0A, - 0x640D, - 0x6751, - 0x905C, - 0x4ED6, - 0x591A, - 0x592A, - 0x6C70, - 0x8A51, - 0x553E, - 0x5815, - 0x59A5, - 0x60F0, - 0x6253, - 0x67C1, - 0x8235, - 0x6955, - 0x9640, - 0x99C4, - 0x9A28, - 0x4F53, - 0x5806, - 0x5BFE, - 0x8010, - 0x5CB1, - 0x5E2F, - 0x5F85, - 0x6020, - 0x614B, - 0x6234, - 0x66FF, - 0x6CF0, - 0x6EDE, - 0x80CE, - 0x817F, - 0x82D4, - 0x888B, - 0x8CB8, - 0x9000, - 0x902E, - 0x968A, - 0x9EDB, - 0x9BDB, - 0x4EE3, - 0x53F0, - 0x5927, - 0x7B2C, - 0x918D, - 0x984C, - 0x9DF9, - 0x6EDD, - 0x7027, - 0x5353, - 0x5544, - 0x5B85, - 0x6258, - 0x629E, - 0x62D3, - 0x6CA2, - 0x6FEF, - 0x7422, - 0x8A17, - 0x9438, - 0x6FC1, - 0x8AFE, - 0x8338, - 0x51E7, - 0x86F8, - 0x53EA, - 0x53E9, - 0x4F46, - 0x9054, - 0x8FB0, - 0x596A, - 0x8131, - 0x5DFD, - 0x7AEA, - 0x8FBF, - 0x68DA, - 0x8C37, - 0x72F8, - 0x9C48, - 0x6A3D, - 0x8AB0, - 0x4E39, - 0x5358, - 0x5606, - 0x5766, - 0x62C5, - 0x63A2, - 0x65E6, - 0x6B4E, - 0x6DE1, - 0x6E5B, - 0x70AD, - 0x77ED, - 0x7AEF, - 0x7BAA, - 0x7DBB, - 0x803D, - 0x80C6, - 0x86CB, - 0x8A95, - 0x935B, - 0x56E3, - 0x58C7, - 0x5F3E, - 0x65AD, - 0x6696, - 0x6A80, - 0x6BB5, - 0x7537, - 0x8AC7, - 0x5024, - 0x77E5, - 0x5730, - 0x5F1B, - 0x6065, - 0x667A, - 0x6C60, - 0x75F4, - 0x7A1A, - 0x7F6E, - 0x81F4, - 0x8718, - 0x9045, - 0x99B3, - 0x7BC9, - 0x755C, - 0x7AF9, - 0x7B51, - 0x84C4, - 0x9010, - 0x79E9, - 0x7A92, - 0x8336, - 0x5AE1, - 0x7740, - 0x4E2D, - 0x4EF2, - 0x5B99, - 0x5FE0, - 0x62BD, - 0x663C, - 0x67F1, - 0x6CE8, - 0x866B, - 0x8877, - 0x8A3B, - 0x914E, - 0x92F3, - 0x99D0, - 0x6A17, - 0x7026, - 0x732A, - 0x82E7, - 0x8457, - 0x8CAF, - 0x4E01, - 0x5146, - 0x51CB, - 0x558B, - 0x5BF5, - 0x5E16, - 0x5E33, - 0x5E81, - 0x5F14, - 0x5F35, - 0x5F6B, - 0x5FB4, - 0x61F2, - 0x6311, - 0x66A2, - 0x671D, - 0x6F6E, - 0x7252, - 0x753A, - 0x773A, - 0x8074, - 0x8139, - 0x8178, - 0x8776, - 0x8ABF, - 0x8ADC, - 0x8D85, - 0x8DF3, - 0x929A, - 0x9577, - 0x9802, - 0x9CE5, - 0x52C5, - 0x6357, - 0x76F4, - 0x6715, - 0x6C88, - 0x73CD, - 0x8CC3, - 0x93AE, - 0x9673, - 0x6D25, - 0x589C, - 0x690E, - 0x69CC, - 0x8FFD, - 0x939A, - 0x75DB, - 0x901A, - 0x585A, - 0x6802, - 0x63B4, - 0x69FB, - 0x4F43, - 0x6F2C, - 0x67D8, - 0x8FBB, - 0x8526, - 0x7DB4, - 0x9354, - 0x693F, - 0x6F70, - 0x576A, - 0x58F7, - 0x5B2C, - 0x7D2C, - 0x722A, - 0x540A, - 0x91E3, - 0x9DB4, - 0x4EAD, - 0x4F4E, - 0x505C, - 0x5075, - 0x5243, - 0x8C9E, - 0x5448, - 0x5824, - 0x5B9A, - 0x5E1D, - 0x5E95, - 0x5EAD, - 0x5EF7, - 0x5F1F, - 0x608C, - 0x62B5, - 0x633A, - 0x63D0, - 0x68AF, - 0x6C40, - 0x7887, - 0x798E, - 0x7A0B, - 0x7DE0, - 0x8247, - 0x8A02, - 0x8AE6, - 0x8E44, - 0x9013, - 0x90B8, - 0x912D, - 0x91D8, - 0x9F0E, - 0x6CE5, - 0x6458, - 0x64E2, - 0x6575, - 0x6EF4, - 0x7684, - 0x7B1B, - 0x9069, - 0x93D1, - 0x6EBA, - 0x54F2, - 0x5FB9, - 0x64A4, - 0x8F4D, - 0x8FED, - 0x9244, - 0x5178, - 0x586B, - 0x5929, - 0x5C55, - 0x5E97, - 0x6DFB, - 0x7E8F, - 0x751C, - 0x8CBC, - 0x8EE2, - 0x985B, - 0x70B9, - 0x4F1D, - 0x6BBF, - 0x6FB1, - 0x7530, - 0x96FB, - 0x514E, - 0x5410, - 0x5835, - 0x5857, - 0x59AC, - 0x5C60, - 0x5F92, - 0x6597, - 0x675C, - 0x6E21, - 0x767B, - 0x83DF, - 0x8CED, - 0x9014, - 0x90FD, - 0x934D, - 0x7825, - 0x783A, - 0x52AA, - 0x5EA6, - 0x571F, - 0x5974, - 0x6012, - 0x5012, - 0x515A, - 0x51AC, - 0x51CD, - 0x5200, - 0x5510, - 0x5854, - 0x5858, - 0x5957, - 0x5B95, - 0x5CF6, - 0x5D8B, - 0x60BC, - 0x6295, - 0x642D, - 0x6771, - 0x6843, - 0x68BC, - 0x68DF, - 0x76D7, - 0x6DD8, - 0x6E6F, - 0x6D9B, - 0x706F, - 0x71C8, - 0x5F53, - 0x75D8, - 0x7977, - 0x7B49, - 0x7B54, - 0x7B52, - 0x7CD6, - 0x7D71, - 0x5230, - 0x8463, - 0x8569, - 0x85E4, - 0x8A0E, - 0x8B04, - 0x8C46, - 0x8E0F, - 0x9003, - 0x900F, - 0x9419, - 0x9676, - 0x982D, - 0x9A30, - 0x95D8, - 0x50CD, - 0x52D5, - 0x540C, - 0x5802, - 0x5C0E, - 0x61A7, - 0x649E, - 0x6D1E, - 0x77B3, - 0x7AE5, - 0x80F4, - 0x8404, - 0x9053, - 0x9285, - 0x5CE0, - 0x9D07, - 0x533F, - 0x5F97, - 0x5FB3, - 0x6D9C, - 0x7279, - 0x7763, - 0x79BF, - 0x7BE4, - 0x6BD2, - 0x72EC, - 0x8AAD, - 0x6803, - 0x6A61, - 0x51F8, - 0x7A81, - 0x6934, - 0x5C4A, - 0x9CF6, - 0x82EB, - 0x5BC5, - 0x9149, - 0x701E, - 0x5678, - 0x5C6F, - 0x60C7, - 0x6566, - 0x6C8C, - 0x8C5A, - 0x9041, - 0x9813, - 0x5451, - 0x66C7, - 0x920D, - 0x5948, - 0x90A3, - 0x5185, - 0x4E4D, - 0x51EA, - 0x8599, - 0x8B0E, - 0x7058, - 0x637A, - 0x934B, - 0x6962, - 0x99B4, - 0x7E04, - 0x7577, - 0x5357, - 0x6960, - 0x8EDF, - 0x96E3, - 0x6C5D, - 0x4E8C, - 0x5C3C, - 0x5F10, - 0x8FE9, - 0x5302, - 0x8CD1, - 0x8089, - 0x8679, - 0x5EFF, - 0x65E5, - 0x4E73, - 0x5165, - 0x5982, - 0x5C3F, - 0x97EE, - 0x4EFB, - 0x598A, - 0x5FCD, - 0x8A8D, - 0x6FE1, - 0x79B0, - 0x7962, - 0x5BE7, - 0x8471, - 0x732B, - 0x71B1, - 0x5E74, - 0x5FF5, - 0x637B, - 0x649A, - 0x71C3, - 0x7C98, - 0x4E43, - 0x5EFC, - 0x4E4B, - 0x57DC, - 0x56A2, - 0x60A9, - 0x6FC3, - 0x7D0D, - 0x80FD, - 0x8133, - 0x81BF, - 0x8FB2, - 0x8997, - 0x86A4, - 0x5DF4, - 0x628A, - 0x64AD, - 0x8987, - 0x6777, - 0x6CE2, - 0x6D3E, - 0x7436, - 0x7834, - 0x5A46, - 0x7F75, - 0x82AD, - 0x99AC, - 0x4FF3, - 0x5EC3, - 0x62DD, - 0x6392, - 0x6557, - 0x676F, - 0x76C3, - 0x724C, - 0x80CC, - 0x80BA, - 0x8F29, - 0x914D, - 0x500D, - 0x57F9, - 0x5A92, - 0x6885, - 0x6973, - 0x7164, - 0x72FD, - 0x8CB7, - 0x58F2, - 0x8CE0, - 0x966A, - 0x9019, - 0x877F, - 0x79E4, - 0x77E7, - 0x8429, - 0x4F2F, - 0x5265, - 0x535A, - 0x62CD, - 0x67CF, - 0x6CCA, - 0x767D, - 0x7B94, - 0x7C95, - 0x8236, - 0x8584, - 0x8FEB, - 0x66DD, - 0x6F20, - 0x7206, - 0x7E1B, - 0x83AB, - 0x99C1, - 0x9EA6, - 0x51FD, - 0x7BB1, - 0x7872, - 0x7BB8, - 0x8087, - 0x7B48, - 0x6AE8, - 0x5E61, - 0x808C, - 0x7551, - 0x7560, - 0x516B, - 0x9262, - 0x6E8C, - 0x767A, - 0x9197, - 0x9AEA, - 0x4F10, - 0x7F70, - 0x629C, - 0x7B4F, - 0x95A5, - 0x9CE9, - 0x567A, - 0x5859, - 0x86E4, - 0x96BC, - 0x4F34, - 0x5224, - 0x534A, - 0x53CD, - 0x53DB, - 0x5E06, - 0x642C, - 0x6591, - 0x677F, - 0x6C3E, - 0x6C4E, - 0x7248, - 0x72AF, - 0x73ED, - 0x7554, - 0x7E41, - 0x822C, - 0x85E9, - 0x8CA9, - 0x7BC4, - 0x91C6, - 0x7169, - 0x9812, - 0x98EF, - 0x633D, - 0x6669, - 0x756A, - 0x76E4, - 0x78D0, - 0x8543, - 0x86EE, - 0x532A, - 0x5351, - 0x5426, - 0x5983, - 0x5E87, - 0x5F7C, - 0x60B2, - 0x6249, - 0x6279, - 0x62AB, - 0x6590, - 0x6BD4, - 0x6CCC, - 0x75B2, - 0x76AE, - 0x7891, - 0x79D8, - 0x7DCB, - 0x7F77, - 0x80A5, - 0x88AB, - 0x8AB9, - 0x8CBB, - 0x907F, - 0x975E, - 0x98DB, - 0x6A0B, - 0x7C38, - 0x5099, - 0x5C3E, - 0x5FAE, - 0x6787, - 0x6BD8, - 0x7435, - 0x7709, - 0x7F8E, - 0x9F3B, - 0x67CA, - 0x7A17, - 0x5339, - 0x758B, - 0x9AED, - 0x5F66, - 0x819D, - 0x83F1, - 0x8098, - 0x5F3C, - 0x5FC5, - 0x7562, - 0x7B46, - 0x903C, - 0x6867, - 0x59EB, - 0x5A9B, - 0x7D10, - 0x767E, - 0x8B2C, - 0x4FF5, - 0x5F6A, - 0x6A19, - 0x6C37, - 0x6F02, - 0x74E2, - 0x7968, - 0x8868, - 0x8A55, - 0x8C79, - 0x5EDF, - 0x63CF, - 0x75C5, - 0x79D2, - 0x82D7, - 0x9328, - 0x92F2, - 0x849C, - 0x86ED, - 0x9C2D, - 0x54C1, - 0x5F6C, - 0x658C, - 0x6D5C, - 0x7015, - 0x8CA7, - 0x8CD3, - 0x983B, - 0x654F, - 0x74F6, - 0x4E0D, - 0x4ED8, - 0x57E0, - 0x592B, - 0x5A66, - 0x5BCC, - 0x51A8, - 0x5E03, - 0x5E9C, - 0x6016, - 0x6276, - 0x6577, - 0x65A7, - 0x666E, - 0x6D6E, - 0x7236, - 0x7B26, - 0x8150, - 0x819A, - 0x8299, - 0x8B5C, - 0x8CA0, - 0x8CE6, - 0x8D74, - 0x961C, - 0x9644, - 0x4FAE, - 0x64AB, - 0x6B66, - 0x821E, - 0x8461, - 0x856A, - 0x90E8, - 0x5C01, - 0x6953, - 0x98A8, - 0x847A, - 0x8557, - 0x4F0F, - 0x526F, - 0x5FA9, - 0x5E45, - 0x670D, - 0x798F, - 0x8179, - 0x8907, - 0x8986, - 0x6DF5, - 0x5F17, - 0x6255, - 0x6CB8, - 0x4ECF, - 0x7269, - 0x9B92, - 0x5206, - 0x543B, - 0x5674, - 0x58B3, - 0x61A4, - 0x626E, - 0x711A, - 0x596E, - 0x7C89, - 0x7CDE, - 0x7D1B, - 0x96F0, - 0x6587, - 0x805E, - 0x4E19, - 0x4F75, - 0x5175, - 0x5840, - 0x5E63, - 0x5E73, - 0x5F0A, - 0x67C4, - 0x4E26, - 0x853D, - 0x9589, - 0x965B, - 0x7C73, - 0x9801, - 0x50FB, - 0x58C1, - 0x7656, - 0x78A7, - 0x5225, - 0x77A5, - 0x8511, - 0x7B86, - 0x504F, - 0x5909, - 0x7247, - 0x7BC7, - 0x7DE8, - 0x8FBA, - 0x8FD4, - 0x904D, - 0x4FBF, - 0x52C9, - 0x5A29, - 0x5F01, - 0x97AD, - 0x4FDD, - 0x8217, - 0x92EA, - 0x5703, - 0x6355, - 0x6B69, - 0x752B, - 0x88DC, - 0x8F14, - 0x7A42, - 0x52DF, - 0x5893, - 0x6155, - 0x620A, - 0x66AE, - 0x6BCD, - 0x7C3F, - 0x83E9, - 0x5023, - 0x4FF8, - 0x5305, - 0x5446, - 0x5831, - 0x5949, - 0x5B9D, - 0x5CF0, - 0x5CEF, - 0x5D29, - 0x5E96, - 0x62B1, - 0x6367, - 0x653E, - 0x65B9, - 0x670B, - 0x6CD5, - 0x6CE1, - 0x70F9, - 0x7832, - 0x7E2B, - 0x80DE, - 0x82B3, - 0x840C, - 0x84EC, - 0x8702, - 0x8912, - 0x8A2A, - 0x8C4A, - 0x90A6, - 0x92D2, - 0x98FD, - 0x9CF3, - 0x9D6C, - 0x4E4F, - 0x4EA1, - 0x508D, - 0x5256, - 0x574A, - 0x59A8, - 0x5E3D, - 0x5FD8, - 0x5FD9, - 0x623F, - 0x66B4, - 0x671B, - 0x67D0, - 0x68D2, - 0x5192, - 0x7D21, - 0x80AA, - 0x81A8, - 0x8B00, - 0x8C8C, - 0x8CBF, - 0x927E, - 0x9632, - 0x5420, - 0x982C, - 0x5317, - 0x50D5, - 0x535C, - 0x58A8, - 0x64B2, - 0x6734, - 0x7267, - 0x7766, - 0x7A46, - 0x91E6, - 0x52C3, - 0x6CA1, - 0x6B86, - 0x5800, - 0x5E4C, - 0x5954, - 0x672C, - 0x7FFB, - 0x51E1, - 0x76C6, - 0x6469, - 0x78E8, - 0x9B54, - 0x9EBB, - 0x57CB, - 0x59B9, - 0x6627, - 0x679A, - 0x6BCE, - 0x54E9, - 0x69D9, - 0x5E55, - 0x819C, - 0x6795, - 0x9BAA, - 0x67FE, - 0x9C52, - 0x685D, - 0x4EA6, - 0x4FE3, - 0x53C8, - 0x62B9, - 0x672B, - 0x6CAB, - 0x8FC4, - 0x4FAD, - 0x7E6D, - 0x9EBF, - 0x4E07, - 0x6162, - 0x6E80, - 0x6F2B, - 0x8513, - 0x5473, - 0x672A, - 0x9B45, - 0x5DF3, - 0x7B95, - 0x5CAC, - 0x5BC6, - 0x871C, - 0x6E4A, - 0x84D1, - 0x7A14, - 0x8108, - 0x5999, - 0x7C8D, - 0x6C11, - 0x7720, - 0x52D9, - 0x5922, - 0x7121, - 0x725F, - 0x77DB, - 0x9727, - 0x9D61, - 0x690B, - 0x5A7F, - 0x5A18, - 0x51A5, - 0x540D, - 0x547D, - 0x660E, - 0x76DF, - 0x8FF7, - 0x9298, - 0x9CF4, - 0x59EA, - 0x725D, - 0x6EC5, - 0x514D, - 0x68C9, - 0x7DBF, - 0x7DEC, - 0x9762, - 0x9EBA, - 0x6478, - 0x6A21, - 0x8302, - 0x5984, - 0x5B5F, - 0x6BDB, - 0x731B, - 0x76F2, - 0x7DB2, - 0x8017, - 0x8499, - 0x5132, - 0x6728, - 0x9ED9, - 0x76EE, - 0x6762, - 0x52FF, - 0x9905, - 0x5C24, - 0x623B, - 0x7C7E, - 0x8CB0, - 0x554F, - 0x60B6, - 0x7D0B, - 0x9580, - 0x5301, - 0x4E5F, - 0x51B6, - 0x591C, - 0x723A, - 0x8036, - 0x91CE, - 0x5F25, - 0x77E2, - 0x5384, - 0x5F79, - 0x7D04, - 0x85AC, - 0x8A33, - 0x8E8D, - 0x9756, - 0x67F3, - 0x85AE, - 0x9453, - 0x6109, - 0x6108, - 0x6CB9, - 0x7652, - 0x8AED, - 0x8F38, - 0x552F, - 0x4F51, - 0x512A, - 0x52C7, - 0x53CB, - 0x5BA5, - 0x5E7D, - 0x60A0, - 0x6182, - 0x63D6, - 0x6709, - 0x67DA, - 0x6E67, - 0x6D8C, - 0x7336, - 0x7337, - 0x7531, - 0x7950, - 0x88D5, - 0x8A98, - 0x904A, - 0x9091, - 0x90F5, - 0x96C4, - 0x878D, - 0x5915, - 0x4E88, - 0x4F59, - 0x4E0E, - 0x8A89, - 0x8F3F, - 0x9810, - 0x50AD, - 0x5E7C, - 0x5996, - 0x5BB9, - 0x5EB8, - 0x63DA, - 0x63FA, - 0x64C1, - 0x66DC, - 0x694A, - 0x69D8, - 0x6D0B, - 0x6EB6, - 0x7194, - 0x7528, - 0x7AAF, - 0x7F8A, - 0x8000, - 0x8449, - 0x84C9, - 0x8981, - 0x8B21, - 0x8E0A, - 0x9065, - 0x967D, - 0x990A, - 0x617E, - 0x6291, - 0x6B32, - 0x6C83, - 0x6D74, - 0x7FCC, - 0x7FFC, - 0x6DC0, - 0x7F85, - 0x87BA, - 0x88F8, - 0x6765, - 0x83B1, - 0x983C, - 0x96F7, - 0x6D1B, - 0x7D61, - 0x843D, - 0x916A, - 0x4E71, - 0x5375, - 0x5D50, - 0x6B04, - 0x6FEB, - 0x85CD, - 0x862D, - 0x89A7, - 0x5229, - 0x540F, - 0x5C65, - 0x674E, - 0x68A8, - 0x7406, - 0x7483, - 0x75E2, - 0x88CF, - 0x88E1, - 0x91CC, - 0x96E2, - 0x9678, - 0x5F8B, - 0x7387, - 0x7ACB, - 0x844E, - 0x63A0, - 0x7565, - 0x5289, - 0x6D41, - 0x6E9C, - 0x7409, - 0x7559, - 0x786B, - 0x7C92, - 0x9686, - 0x7ADC, - 0x9F8D, - 0x4FB6, - 0x616E, - 0x65C5, - 0x865C, - 0x4E86, - 0x4EAE, - 0x50DA, - 0x4E21, - 0x51CC, - 0x5BEE, - 0x6599, - 0x6881, - 0x6DBC, - 0x731F, - 0x7642, - 0x77AD, - 0x7A1C, - 0x7CE7, - 0x826F, - 0x8AD2, - 0x907C, - 0x91CF, - 0x9675, - 0x9818, - 0x529B, - 0x7DD1, - 0x502B, - 0x5398, - 0x6797, - 0x6DCB, - 0x71D0, - 0x7433, - 0x81E8, - 0x8F2A, - 0x96A3, - 0x9C57, - 0x9E9F, - 0x7460, - 0x5841, - 0x6D99, - 0x7D2F, - 0x985E, - 0x4EE4, - 0x4F36, - 0x4F8B, - 0x51B7, - 0x52B1, - 0x5DBA, - 0x601C, - 0x73B2, - 0x793C, - 0x82D3, - 0x9234, - 0x96B7, - 0x96F6, - 0x970A, - 0x9E97, - 0x9F62, - 0x66A6, - 0x6B74, - 0x5217, - 0x52A3, - 0x70C8, - 0x88C2, - 0x5EC9, - 0x604B, - 0x6190, - 0x6F23, - 0x7149, - 0x7C3E, - 0x7DF4, - 0x806F, - 0x84EE, - 0x9023, - 0x932C, - 0x5442, - 0x9B6F, - 0x6AD3, - 0x7089, - 0x8CC2, - 0x8DEF, - 0x9732, - 0x52B4, - 0x5A41, - 0x5ECA, - 0x5F04, - 0x6717, - 0x697C, - 0x6994, - 0x6D6A, - 0x6F0F, - 0x7262, - 0x72FC, - 0x7BED, - 0x8001, - 0x807E, - 0x874B, - 0x90CE, - 0x516D, - 0x9E93, - 0x7984, - 0x808B, - 0x9332, - 0x8AD6, - 0x502D, - 0x548C, - 0x8A71, - 0x6B6A, - 0x8CC4, - 0x8107, - 0x60D1, - 0x67A0, - 0x9DF2, - 0x4E99, - 0x4E98, - 0x9C10, - 0x8A6B, - 0x85C1, - 0x8568, - 0x6900, - 0x6E7E, - 0x7897, - 0x8155 -}; - -/* d0a1 to f4a6 is contiguous */ - -static unsigned short d02f4[] = { - 0x5F0C, - 0x4E10, - 0x4E15, - 0x4E2A, - 0x4E31, - 0x4E36, - 0x4E3C, - 0x4E3F, - 0x4E42, - 0x4E56, - 0x4E58, - 0x4E82, - 0x4E85, - 0x8C6B, - 0x4E8A, - 0x8212, - 0x5F0D, - 0x4E8E, - 0x4E9E, - 0x4E9F, - 0x4EA0, - 0x4EA2, - 0x4EB0, - 0x4EB3, - 0x4EB6, - 0x4ECE, - 0x4ECD, - 0x4EC4, - 0x4EC6, - 0x4EC2, - 0x4ED7, - 0x4EDE, - 0x4EED, - 0x4EDF, - 0x4EF7, - 0x4F09, - 0x4F5A, - 0x4F30, - 0x4F5B, - 0x4F5D, - 0x4F57, - 0x4F47, - 0x4F76, - 0x4F88, - 0x4F8F, - 0x4F98, - 0x4F7B, - 0x4F69, - 0x4F70, - 0x4F91, - 0x4F6F, - 0x4F86, - 0x4F96, - 0x5118, - 0x4FD4, - 0x4FDF, - 0x4FCE, - 0x4FD8, - 0x4FDB, - 0x4FD1, - 0x4FDA, - 0x4FD0, - 0x4FE4, - 0x4FE5, - 0x501A, - 0x5028, - 0x5014, - 0x502A, - 0x5025, - 0x5005, - 0x4F1C, - 0x4FF6, - 0x5021, - 0x5029, - 0x502C, - 0x4FFE, - 0x4FEF, - 0x5011, - 0x5006, - 0x5043, - 0x5047, - 0x6703, - 0x5055, - 0x5050, - 0x5048, - 0x505A, - 0x5056, - 0x506C, - 0x5078, - 0x5080, - 0x509A, - 0x5085, - 0x50B4, - 0x50B2, - 0x50C9, - 0x50CA, - 0x50B3, - 0x50C2, - 0x50D6, - 0x50DE, - 0x50E5, - 0x50ED, - 0x50E3, - 0x50EE, - 0x50F9, - 0x50F5, - 0x5109, - 0x5101, - 0x5102, - 0x5116, - 0x5115, - 0x5114, - 0x511A, - 0x5121, - 0x513A, - 0x5137, - 0x513C, - 0x513B, - 0x513F, - 0x5140, - 0x5152, - 0x514C, - 0x5154, - 0x5162, - 0x7AF8, - 0x5169, - 0x516A, - 0x516E, - 0x5180, - 0x5182, - 0x56D8, - 0x518C, - 0x5189, - 0x518F, - 0x5191, - 0x5193, - 0x5195, - 0x5196, - 0x51A4, - 0x51A6, - 0x51A2, - 0x51A9, - 0x51AA, - 0x51AB, - 0x51B3, - 0x51B1, - 0x51B2, - 0x51B0, - 0x51B5, - 0x51BD, - 0x51C5, - 0x51C9, - 0x51DB, - 0x51E0, - 0x8655, - 0x51E9, - 0x51ED, - 0x51F0, - 0x51F5, - 0x51FE, - 0x5204, - 0x520B, - 0x5214, - 0x520E, - 0x5227, - 0x522A, - 0x522E, - 0x5233, - 0x5239, - 0x524F, - 0x5244, - 0x524B, - 0x524C, - 0x525E, - 0x5254, - 0x526A, - 0x5274, - 0x5269, - 0x5273, - 0x527F, - 0x527D, - 0x528D, - 0x5294, - 0x5292, - 0x5271, - 0x5288, - 0x5291, - 0x8FA8, - 0x8FA7, - 0x52AC, - 0x52AD, - 0x52BC, - 0x52B5, - 0x52C1, - 0x52CD, - 0x52D7, - 0x52DE, - 0x52E3, - 0x52E6, - 0x98ED, - 0x52E0, - 0x52F3, - 0x52F5, - 0x52F8, - 0x52F9, - 0x5306, - 0x5308, - 0x7538, - 0x530D, - 0x5310, - 0x530F, - 0x5315, - 0x531A, - 0x5323, - 0x532F, - 0x5331, - 0x5333, - 0x5338, - 0x5340, - 0x5346, - 0x5345, - 0x4E17, - 0x5349, - 0x534D, - 0x51D6, - 0x535E, - 0x5369, - 0x536E, - 0x5918, - 0x537B, - 0x5377, - 0x5382, - 0x5396, - 0x53A0, - 0x53A6, - 0x53A5, - 0x53AE, - 0x53B0, - 0x53B6, - 0x53C3, - 0x7C12, - 0x96D9, - 0x53DF, - 0x66FC, - 0x71EE, - 0x53EE, - 0x53E8, - 0x53ED, - 0x53FA, - 0x5401, - 0x543D, - 0x5440, - 0x542C, - 0x542D, - 0x543C, - 0x542E, - 0x5436, - 0x5429, - 0x541D, - 0x544E, - 0x548F, - 0x5475, - 0x548E, - 0x545F, - 0x5471, - 0x5477, - 0x5470, - 0x5492, - 0x547B, - 0x5480, - 0x5476, - 0x5484, - 0x5490, - 0x5486, - 0x54C7, - 0x54A2, - 0x54B8, - 0x54A5, - 0x54AC, - 0x54C4, - 0x54C8, - 0x54A8, - 0x54AB, - 0x54C2, - 0x54A4, - 0x54BE, - 0x54BC, - 0x54D8, - 0x54E5, - 0x54E6, - 0x550F, - 0x5514, - 0x54FD, - 0x54EE, - 0x54ED, - 0x54FA, - 0x54E2, - 0x5539, - 0x5540, - 0x5563, - 0x554C, - 0x552E, - 0x555C, - 0x5545, - 0x5556, - 0x5557, - 0x5538, - 0x5533, - 0x555D, - 0x5599, - 0x5580, - 0x54AF, - 0x558A, - 0x559F, - 0x557B, - 0x557E, - 0x5598, - 0x559E, - 0x55AE, - 0x557C, - 0x5583, - 0x55A9, - 0x5587, - 0x55A8, - 0x55DA, - 0x55C5, - 0x55DF, - 0x55C4, - 0x55DC, - 0x55E4, - 0x55D4, - 0x5614, - 0x55F7, - 0x5616, - 0x55FE, - 0x55FD, - 0x561B, - 0x55F9, - 0x564E, - 0x5650, - 0x71DF, - 0x5634, - 0x5636, - 0x5632, - 0x5638, - 0x566B, - 0x5664, - 0x562F, - 0x566C, - 0x566A, - 0x5686, - 0x5680, - 0x568A, - 0x56A0, - 0x5694, - 0x568F, - 0x56A5, - 0x56AE, - 0x56B6, - 0x56B4, - 0x56C2, - 0x56BC, - 0x56C1, - 0x56C3, - 0x56C0, - 0x56C8, - 0x56CE, - 0x56D1, - 0x56D3, - 0x56D7, - 0x56EE, - 0x56F9, - 0x5700, - 0x56FF, - 0x5704, - 0x5709, - 0x5708, - 0x570B, - 0x570D, - 0x5713, - 0x5718, - 0x5716, - 0x55C7, - 0x571C, - 0x5726, - 0x5737, - 0x5738, - 0x574E, - 0x573B, - 0x5740, - 0x574F, - 0x5769, - 0x57C0, - 0x5788, - 0x5761, - 0x577F, - 0x5789, - 0x5793, - 0x57A0, - 0x57B3, - 0x57A4, - 0x57AA, - 0x57B0, - 0x57C3, - 0x57C6, - 0x57D4, - 0x57D2, - 0x57D3, - 0x580A, - 0x57D6, - 0x57E3, - 0x580B, - 0x5819, - 0x581D, - 0x5872, - 0x5821, - 0x5862, - 0x584B, - 0x5870, - 0x6BC0, - 0x5852, - 0x583D, - 0x5879, - 0x5885, - 0x58B9, - 0x589F, - 0x58AB, - 0x58BA, - 0x58DE, - 0x58BB, - 0x58B8, - 0x58AE, - 0x58C5, - 0x58D3, - 0x58D1, - 0x58D7, - 0x58D9, - 0x58D8, - 0x58E5, - 0x58DC, - 0x58E4, - 0x58DF, - 0x58EF, - 0x58FA, - 0x58F9, - 0x58FB, - 0x58FC, - 0x58FD, - 0x5902, - 0x590A, - 0x5910, - 0x591B, - 0x68A6, - 0x5925, - 0x592C, - 0x592D, - 0x5932, - 0x5938, - 0x593E, - 0x7AD2, - 0x5955, - 0x5950, - 0x594E, - 0x595A, - 0x5958, - 0x5962, - 0x5960, - 0x5967, - 0x596C, - 0x5969, - 0x5978, - 0x5981, - 0x599D, - 0x4F5E, - 0x4FAB, - 0x59A3, - 0x59B2, - 0x59C6, - 0x59E8, - 0x59DC, - 0x598D, - 0x59D9, - 0x59DA, - 0x5A25, - 0x5A1F, - 0x5A11, - 0x5A1C, - 0x5A09, - 0x5A1A, - 0x5A40, - 0x5A6C, - 0x5A49, - 0x5A35, - 0x5A36, - 0x5A62, - 0x5A6A, - 0x5A9A, - 0x5ABC, - 0x5ABE, - 0x5ACB, - 0x5AC2, - 0x5ABD, - 0x5AE3, - 0x5AD7, - 0x5AE6, - 0x5AE9, - 0x5AD6, - 0x5AFA, - 0x5AFB, - 0x5B0C, - 0x5B0B, - 0x5B16, - 0x5B32, - 0x5AD0, - 0x5B2A, - 0x5B36, - 0x5B3E, - 0x5B43, - 0x5B45, - 0x5B40, - 0x5B51, - 0x5B55, - 0x5B5A, - 0x5B5B, - 0x5B65, - 0x5B69, - 0x5B70, - 0x5B73, - 0x5B75, - 0x5B78, - 0x6588, - 0x5B7A, - 0x5B80, - 0x5B83, - 0x5BA6, - 0x5BB8, - 0x5BC3, - 0x5BC7, - 0x5BC9, - 0x5BD4, - 0x5BD0, - 0x5BE4, - 0x5BE6, - 0x5BE2, - 0x5BDE, - 0x5BE5, - 0x5BEB, - 0x5BF0, - 0x5BF6, - 0x5BF3, - 0x5C05, - 0x5C07, - 0x5C08, - 0x5C0D, - 0x5C13, - 0x5C20, - 0x5C22, - 0x5C28, - 0x5C38, - 0x5C39, - 0x5C41, - 0x5C46, - 0x5C4E, - 0x5C53, - 0x5C50, - 0x5C4F, - 0x5B71, - 0x5C6C, - 0x5C6E, - 0x4E62, - 0x5C76, - 0x5C79, - 0x5C8C, - 0x5C91, - 0x5C94, - 0x599B, - 0x5CAB, - 0x5CBB, - 0x5CB6, - 0x5CBC, - 0x5CB7, - 0x5CC5, - 0x5CBE, - 0x5CC7, - 0x5CD9, - 0x5CE9, - 0x5CFD, - 0x5CFA, - 0x5CED, - 0x5D8C, - 0x5CEA, - 0x5D0B, - 0x5D15, - 0x5D17, - 0x5D5C, - 0x5D1F, - 0x5D1B, - 0x5D11, - 0x5D14, - 0x5D22, - 0x5D1A, - 0x5D19, - 0x5D18, - 0x5D4C, - 0x5D52, - 0x5D4E, - 0x5D4B, - 0x5D6C, - 0x5D73, - 0x5D76, - 0x5D87, - 0x5D84, - 0x5D82, - 0x5DA2, - 0x5D9D, - 0x5DAC, - 0x5DAE, - 0x5DBD, - 0x5D90, - 0x5DB7, - 0x5DBC, - 0x5DC9, - 0x5DCD, - 0x5DD3, - 0x5DD2, - 0x5DD6, - 0x5DDB, - 0x5DEB, - 0x5DF2, - 0x5DF5, - 0x5E0B, - 0x5E1A, - 0x5E19, - 0x5E11, - 0x5E1B, - 0x5E36, - 0x5E37, - 0x5E44, - 0x5E43, - 0x5E40, - 0x5E4E, - 0x5E57, - 0x5E54, - 0x5E5F, - 0x5E62, - 0x5E64, - 0x5E47, - 0x5E75, - 0x5E76, - 0x5E7A, - 0x9EBC, - 0x5E7F, - 0x5EA0, - 0x5EC1, - 0x5EC2, - 0x5EC8, - 0x5ED0, - 0x5ECF, - 0x5ED6, - 0x5EE3, - 0x5EDD, - 0x5EDA, - 0x5EDB, - 0x5EE2, - 0x5EE1, - 0x5EE8, - 0x5EE9, - 0x5EEC, - 0x5EF1, - 0x5EF3, - 0x5EF0, - 0x5EF4, - 0x5EF8, - 0x5EFE, - 0x5F03, - 0x5F09, - 0x5F5D, - 0x5F5C, - 0x5F0B, - 0x5F11, - 0x5F16, - 0x5F29, - 0x5F2D, - 0x5F38, - 0x5F41, - 0x5F48, - 0x5F4C, - 0x5F4E, - 0x5F2F, - 0x5F51, - 0x5F56, - 0x5F57, - 0x5F59, - 0x5F61, - 0x5F6D, - 0x5F73, - 0x5F77, - 0x5F83, - 0x5F82, - 0x5F7F, - 0x5F8A, - 0x5F88, - 0x5F91, - 0x5F87, - 0x5F9E, - 0x5F99, - 0x5F98, - 0x5FA0, - 0x5FA8, - 0x5FAD, - 0x5FBC, - 0x5FD6, - 0x5FFB, - 0x5FE4, - 0x5FF8, - 0x5FF1, - 0x5FDD, - 0x60B3, - 0x5FFF, - 0x6021, - 0x6060, - 0x6019, - 0x6010, - 0x6029, - 0x600E, - 0x6031, - 0x601B, - 0x6015, - 0x602B, - 0x6026, - 0x600F, - 0x603A, - 0x605A, - 0x6041, - 0x606A, - 0x6077, - 0x605F, - 0x604A, - 0x6046, - 0x604D, - 0x6063, - 0x6043, - 0x6064, - 0x6042, - 0x606C, - 0x606B, - 0x6059, - 0x6081, - 0x608D, - 0x60E7, - 0x6083, - 0x609A, - 0x6084, - 0x609B, - 0x6096, - 0x6097, - 0x6092, - 0x60A7, - 0x608B, - 0x60E1, - 0x60B8, - 0x60E0, - 0x60D3, - 0x60B4, - 0x5FF0, - 0x60BD, - 0x60C6, - 0x60B5, - 0x60D8, - 0x614D, - 0x6115, - 0x6106, - 0x60F6, - 0x60F7, - 0x6100, - 0x60F4, - 0x60FA, - 0x6103, - 0x6121, - 0x60FB, - 0x60F1, - 0x610D, - 0x610E, - 0x6147, - 0x613E, - 0x6128, - 0x6127, - 0x614A, - 0x613F, - 0x613C, - 0x612C, - 0x6134, - 0x613D, - 0x6142, - 0x6144, - 0x6173, - 0x6177, - 0x6158, - 0x6159, - 0x615A, - 0x616B, - 0x6174, - 0x616F, - 0x6165, - 0x6171, - 0x615F, - 0x615D, - 0x6153, - 0x6175, - 0x6199, - 0x6196, - 0x6187, - 0x61AC, - 0x6194, - 0x619A, - 0x618A, - 0x6191, - 0x61AB, - 0x61AE, - 0x61CC, - 0x61CA, - 0x61C9, - 0x61F7, - 0x61C8, - 0x61C3, - 0x61C6, - 0x61BA, - 0x61CB, - 0x7F79, - 0x61CD, - 0x61E6, - 0x61E3, - 0x61F6, - 0x61FA, - 0x61F4, - 0x61FF, - 0x61FD, - 0x61FC, - 0x61FE, - 0x6200, - 0x6208, - 0x6209, - 0x620D, - 0x620C, - 0x6214, - 0x621B, - 0x621E, - 0x6221, - 0x622A, - 0x622E, - 0x6230, - 0x6232, - 0x6233, - 0x6241, - 0x624E, - 0x625E, - 0x6263, - 0x625B, - 0x6260, - 0x6268, - 0x627C, - 0x6282, - 0x6289, - 0x627E, - 0x6292, - 0x6293, - 0x6296, - 0x62D4, - 0x6283, - 0x6294, - 0x62D7, - 0x62D1, - 0x62BB, - 0x62CF, - 0x62FF, - 0x62C6, - 0x64D4, - 0x62C8, - 0x62DC, - 0x62CC, - 0x62CA, - 0x62C2, - 0x62C7, - 0x629B, - 0x62C9, - 0x630C, - 0x62EE, - 0x62F1, - 0x6327, - 0x6302, - 0x6308, - 0x62EF, - 0x62F5, - 0x6350, - 0x633E, - 0x634D, - 0x641C, - 0x634F, - 0x6396, - 0x638E, - 0x6380, - 0x63AB, - 0x6376, - 0x63A3, - 0x638F, - 0x6389, - 0x639F, - 0x63B5, - 0x636B, - 0x6369, - 0x63BE, - 0x63E9, - 0x63C0, - 0x63C6, - 0x63E3, - 0x63C9, - 0x63D2, - 0x63F6, - 0x63C4, - 0x6416, - 0x6434, - 0x6406, - 0x6413, - 0x6426, - 0x6436, - 0x651D, - 0x6417, - 0x6428, - 0x640F, - 0x6467, - 0x646F, - 0x6476, - 0x644E, - 0x652A, - 0x6495, - 0x6493, - 0x64A5, - 0x64A9, - 0x6488, - 0x64BC, - 0x64DA, - 0x64D2, - 0x64C5, - 0x64C7, - 0x64BB, - 0x64D8, - 0x64C2, - 0x64F1, - 0x64E7, - 0x8209, - 0x64E0, - 0x64E1, - 0x62AC, - 0x64E3, - 0x64EF, - 0x652C, - 0x64F6, - 0x64F4, - 0x64F2, - 0x64FA, - 0x6500, - 0x64FD, - 0x6518, - 0x651C, - 0x6505, - 0x6524, - 0x6523, - 0x652B, - 0x6534, - 0x6535, - 0x6537, - 0x6536, - 0x6538, - 0x754B, - 0x6548, - 0x6556, - 0x6555, - 0x654D, - 0x6558, - 0x655E, - 0x655D, - 0x6572, - 0x6578, - 0x6582, - 0x6583, - 0x8B8A, - 0x659B, - 0x659F, - 0x65AB, - 0x65B7, - 0x65C3, - 0x65C6, - 0x65C1, - 0x65C4, - 0x65CC, - 0x65D2, - 0x65DB, - 0x65D9, - 0x65E0, - 0x65E1, - 0x65F1, - 0x6772, - 0x660A, - 0x6603, - 0x65FB, - 0x6773, - 0x6635, - 0x6636, - 0x6634, - 0x661C, - 0x664F, - 0x6644, - 0x6649, - 0x6641, - 0x665E, - 0x665D, - 0x6664, - 0x6667, - 0x6668, - 0x665F, - 0x6662, - 0x6670, - 0x6683, - 0x6688, - 0x668E, - 0x6689, - 0x6684, - 0x6698, - 0x669D, - 0x66C1, - 0x66B9, - 0x66C9, - 0x66BE, - 0x66BC, - 0x66C4, - 0x66B8, - 0x66D6, - 0x66DA, - 0x66E0, - 0x663F, - 0x66E6, - 0x66E9, - 0x66F0, - 0x66F5, - 0x66F7, - 0x670F, - 0x6716, - 0x671E, - 0x6726, - 0x6727, - 0x9738, - 0x672E, - 0x673F, - 0x6736, - 0x6741, - 0x6738, - 0x6737, - 0x6746, - 0x675E, - 0x6760, - 0x6759, - 0x6763, - 0x6764, - 0x6789, - 0x6770, - 0x67A9, - 0x677C, - 0x676A, - 0x678C, - 0x678B, - 0x67A6, - 0x67A1, - 0x6785, - 0x67B7, - 0x67EF, - 0x67B4, - 0x67EC, - 0x67B3, - 0x67E9, - 0x67B8, - 0x67E4, - 0x67DE, - 0x67DD, - 0x67E2, - 0x67EE, - 0x67B9, - 0x67CE, - 0x67C6, - 0x67E7, - 0x6A9C, - 0x681E, - 0x6846, - 0x6829, - 0x6840, - 0x684D, - 0x6832, - 0x684E, - 0x68B3, - 0x682B, - 0x6859, - 0x6863, - 0x6877, - 0x687F, - 0x689F, - 0x688F, - 0x68AD, - 0x6894, - 0x689D, - 0x689B, - 0x6883, - 0x6AAE, - 0x68B9, - 0x6874, - 0x68B5, - 0x68A0, - 0x68BA, - 0x690F, - 0x688D, - 0x687E, - 0x6901, - 0x68CA, - 0x6908, - 0x68D8, - 0x6922, - 0x6926, - 0x68E1, - 0x690C, - 0x68CD, - 0x68D4, - 0x68E7, - 0x68D5, - 0x6936, - 0x6912, - 0x6904, - 0x68D7, - 0x68E3, - 0x6925, - 0x68F9, - 0x68E0, - 0x68EF, - 0x6928, - 0x692A, - 0x691A, - 0x6923, - 0x6921, - 0x68C6, - 0x6979, - 0x6977, - 0x695C, - 0x6978, - 0x696B, - 0x6954, - 0x697E, - 0x696E, - 0x6939, - 0x6974, - 0x693D, - 0x6959, - 0x6930, - 0x6961, - 0x695E, - 0x695D, - 0x6981, - 0x696A, - 0x69B2, - 0x69AE, - 0x69D0, - 0x69BF, - 0x69C1, - 0x69D3, - 0x69BE, - 0x69CE, - 0x5BE8, - 0x69CA, - 0x69DD, - 0x69BB, - 0x69C3, - 0x69A7, - 0x6A2E, - 0x6991, - 0x69A0, - 0x699C, - 0x6995, - 0x69B4, - 0x69DE, - 0x69E8, - 0x6A02, - 0x6A1B, - 0x69FF, - 0x6B0A, - 0x69F9, - 0x69F2, - 0x69E7, - 0x6A05, - 0x69B1, - 0x6A1E, - 0x69ED, - 0x6A14, - 0x69EB, - 0x6A0A, - 0x6A12, - 0x6AC1, - 0x6A23, - 0x6A13, - 0x6A44, - 0x6A0C, - 0x6A72, - 0x6A36, - 0x6A78, - 0x6A47, - 0x6A62, - 0x6A59, - 0x6A66, - 0x6A48, - 0x6A38, - 0x6A22, - 0x6A90, - 0x6A8D, - 0x6AA0, - 0x6A84, - 0x6AA2, - 0x6AA3, - 0x6A97, - 0x8617, - 0x6ABB, - 0x6AC3, - 0x6AC2, - 0x6AB8, - 0x6AB3, - 0x6AAC, - 0x6ADE, - 0x6AD1, - 0x6ADF, - 0x6AAA, - 0x6ADA, - 0x6AEA, - 0x6AFB, - 0x6B05, - 0x8616, - 0x6AFA, - 0x6B12, - 0x6B16, - 0x9B31, - 0x6B1F, - 0x6B38, - 0x6B37, - 0x76DC, - 0x6B39, - 0x98EE, - 0x6B47, - 0x6B43, - 0x6B49, - 0x6B50, - 0x6B59, - 0x6B54, - 0x6B5B, - 0x6B5F, - 0x6B61, - 0x6B78, - 0x6B79, - 0x6B7F, - 0x6B80, - 0x6B84, - 0x6B83, - 0x6B8D, - 0x6B98, - 0x6B95, - 0x6B9E, - 0x6BA4, - 0x6BAA, - 0x6BAB, - 0x6BAF, - 0x6BB2, - 0x6BB1, - 0x6BB3, - 0x6BB7, - 0x6BBC, - 0x6BC6, - 0x6BCB, - 0x6BD3, - 0x6BDF, - 0x6BEC, - 0x6BEB, - 0x6BF3, - 0x6BEF, - 0x9EBE, - 0x6C08, - 0x6C13, - 0x6C14, - 0x6C1B, - 0x6C24, - 0x6C23, - 0x6C5E, - 0x6C55, - 0x6C62, - 0x6C6A, - 0x6C82, - 0x6C8D, - 0x6C9A, - 0x6C81, - 0x6C9B, - 0x6C7E, - 0x6C68, - 0x6C73, - 0x6C92, - 0x6C90, - 0x6CC4, - 0x6CF1, - 0x6CD3, - 0x6CBD, - 0x6CD7, - 0x6CC5, - 0x6CDD, - 0x6CAE, - 0x6CB1, - 0x6CBE, - 0x6CBA, - 0x6CDB, - 0x6CEF, - 0x6CD9, - 0x6CEA, - 0x6D1F, - 0x884D, - 0x6D36, - 0x6D2B, - 0x6D3D, - 0x6D38, - 0x6D19, - 0x6D35, - 0x6D33, - 0x6D12, - 0x6D0C, - 0x6D63, - 0x6D93, - 0x6D64, - 0x6D5A, - 0x6D79, - 0x6D59, - 0x6D8E, - 0x6D95, - 0x6FE4, - 0x6D85, - 0x6DF9, - 0x6E15, - 0x6E0A, - 0x6DB5, - 0x6DC7, - 0x6DE6, - 0x6DB8, - 0x6DC6, - 0x6DEC, - 0x6DDE, - 0x6DCC, - 0x6DE8, - 0x6DD2, - 0x6DC5, - 0x6DFA, - 0x6DD9, - 0x6DE4, - 0x6DD5, - 0x6DEA, - 0x6DEE, - 0x6E2D, - 0x6E6E, - 0x6E2E, - 0x6E19, - 0x6E72, - 0x6E5F, - 0x6E3E, - 0x6E23, - 0x6E6B, - 0x6E2B, - 0x6E76, - 0x6E4D, - 0x6E1F, - 0x6E43, - 0x6E3A, - 0x6E4E, - 0x6E24, - 0x6EFF, - 0x6E1D, - 0x6E38, - 0x6E82, - 0x6EAA, - 0x6E98, - 0x6EC9, - 0x6EB7, - 0x6ED3, - 0x6EBD, - 0x6EAF, - 0x6EC4, - 0x6EB2, - 0x6ED4, - 0x6ED5, - 0x6E8F, - 0x6EA5, - 0x6EC2, - 0x6E9F, - 0x6F41, - 0x6F11, - 0x704C, - 0x6EEC, - 0x6EF8, - 0x6EFE, - 0x6F3F, - 0x6EF2, - 0x6F31, - 0x6EEF, - 0x6F32, - 0x6ECC, - 0x6F3E, - 0x6F13, - 0x6EF7, - 0x6F86, - 0x6F7A, - 0x6F78, - 0x6F81, - 0x6F80, - 0x6F6F, - 0x6F5B, - 0x6FF3, - 0x6F6D, - 0x6F82, - 0x6F7C, - 0x6F58, - 0x6F8E, - 0x6F91, - 0x6FC2, - 0x6F66, - 0x6FB3, - 0x6FA3, - 0x6FA1, - 0x6FA4, - 0x6FB9, - 0x6FC6, - 0x6FAA, - 0x6FDF, - 0x6FD5, - 0x6FEC, - 0x6FD4, - 0x6FD8, - 0x6FF1, - 0x6FEE, - 0x6FDB, - 0x7009, - 0x700B, - 0x6FFA, - 0x7011, - 0x7001, - 0x700F, - 0x6FFE, - 0x701B, - 0x701A, - 0x6F74, - 0x701D, - 0x7018, - 0x701F, - 0x7030, - 0x703E, - 0x7032, - 0x7051, - 0x7063, - 0x7099, - 0x7092, - 0x70AF, - 0x70F1, - 0x70AC, - 0x70B8, - 0x70B3, - 0x70AE, - 0x70DF, - 0x70CB, - 0x70DD, - 0x70D9, - 0x7109, - 0x70FD, - 0x711C, - 0x7119, - 0x7165, - 0x7155, - 0x7188, - 0x7166, - 0x7162, - 0x714C, - 0x7156, - 0x716C, - 0x718F, - 0x71FB, - 0x7184, - 0x7195, - 0x71A8, - 0x71AC, - 0x71D7, - 0x71B9, - 0x71BE, - 0x71D2, - 0x71C9, - 0x71D4, - 0x71CE, - 0x71E0, - 0x71EC, - 0x71E7, - 0x71F5, - 0x71FC, - 0x71F9, - 0x71FF, - 0x720D, - 0x7210, - 0x721B, - 0x7228, - 0x722D, - 0x722C, - 0x7230, - 0x7232, - 0x723B, - 0x723C, - 0x723F, - 0x7240, - 0x7246, - 0x724B, - 0x7258, - 0x7274, - 0x727E, - 0x7282, - 0x7281, - 0x7287, - 0x7292, - 0x7296, - 0x72A2, - 0x72A7, - 0x72B9, - 0x72B2, - 0x72C3, - 0x72C6, - 0x72C4, - 0x72CE, - 0x72D2, - 0x72E2, - 0x72E0, - 0x72E1, - 0x72F9, - 0x72F7, - 0x500F, - 0x7317, - 0x730A, - 0x731C, - 0x7316, - 0x731D, - 0x7334, - 0x732F, - 0x7329, - 0x7325, - 0x733E, - 0x734E, - 0x734F, - 0x9ED8, - 0x7357, - 0x736A, - 0x7368, - 0x7370, - 0x7378, - 0x7375, - 0x737B, - 0x737A, - 0x73C8, - 0x73B3, - 0x73CE, - 0x73BB, - 0x73C0, - 0x73E5, - 0x73EE, - 0x73DE, - 0x74A2, - 0x7405, - 0x746F, - 0x7425, - 0x73F8, - 0x7432, - 0x743A, - 0x7455, - 0x743F, - 0x745F, - 0x7459, - 0x7441, - 0x745C, - 0x7469, - 0x7470, - 0x7463, - 0x746A, - 0x7476, - 0x747E, - 0x748B, - 0x749E, - 0x74A7, - 0x74CA, - 0x74CF, - 0x74D4, - 0x73F1, - 0x74E0, - 0x74E3, - 0x74E7, - 0x74E9, - 0x74EE, - 0x74F2, - 0x74F0, - 0x74F1, - 0x74F8, - 0x74F7, - 0x7504, - 0x7503, - 0x7505, - 0x750C, - 0x750E, - 0x750D, - 0x7515, - 0x7513, - 0x751E, - 0x7526, - 0x752C, - 0x753C, - 0x7544, - 0x754D, - 0x754A, - 0x7549, - 0x755B, - 0x7546, - 0x755A, - 0x7569, - 0x7564, - 0x7567, - 0x756B, - 0x756D, - 0x7578, - 0x7576, - 0x7586, - 0x7587, - 0x7574, - 0x758A, - 0x7589, - 0x7582, - 0x7594, - 0x759A, - 0x759D, - 0x75A5, - 0x75A3, - 0x75C2, - 0x75B3, - 0x75C3, - 0x75B5, - 0x75BD, - 0x75B8, - 0x75BC, - 0x75B1, - 0x75CD, - 0x75CA, - 0x75D2, - 0x75D9, - 0x75E3, - 0x75DE, - 0x75FE, - 0x75FF, - 0x75FC, - 0x7601, - 0x75F0, - 0x75FA, - 0x75F2, - 0x75F3, - 0x760B, - 0x760D, - 0x7609, - 0x761F, - 0x7627, - 0x7620, - 0x7621, - 0x7622, - 0x7624, - 0x7634, - 0x7630, - 0x763B, - 0x7647, - 0x7648, - 0x7646, - 0x765C, - 0x7658, - 0x7661, - 0x7662, - 0x7668, - 0x7669, - 0x766A, - 0x7667, - 0x766C, - 0x7670, - 0x7672, - 0x7676, - 0x7678, - 0x767C, - 0x7680, - 0x7683, - 0x7688, - 0x768B, - 0x768E, - 0x7696, - 0x7693, - 0x7699, - 0x769A, - 0x76B0, - 0x76B4, - 0x76B8, - 0x76B9, - 0x76BA, - 0x76C2, - 0x76CD, - 0x76D6, - 0x76D2, - 0x76DE, - 0x76E1, - 0x76E5, - 0x76E7, - 0x76EA, - 0x862F, - 0x76FB, - 0x7708, - 0x7707, - 0x7704, - 0x7729, - 0x7724, - 0x771E, - 0x7725, - 0x7726, - 0x771B, - 0x7737, - 0x7738, - 0x7747, - 0x775A, - 0x7768, - 0x776B, - 0x775B, - 0x7765, - 0x777F, - 0x777E, - 0x7779, - 0x778E, - 0x778B, - 0x7791, - 0x77A0, - 0x779E, - 0x77B0, - 0x77B6, - 0x77B9, - 0x77BF, - 0x77BC, - 0x77BD, - 0x77BB, - 0x77C7, - 0x77CD, - 0x77D7, - 0x77DA, - 0x77DC, - 0x77E3, - 0x77EE, - 0x77FC, - 0x780C, - 0x7812, - 0x7926, - 0x7820, - 0x792A, - 0x7845, - 0x788E, - 0x7874, - 0x7886, - 0x787C, - 0x789A, - 0x788C, - 0x78A3, - 0x78B5, - 0x78AA, - 0x78AF, - 0x78D1, - 0x78C6, - 0x78CB, - 0x78D4, - 0x78BE, - 0x78BC, - 0x78C5, - 0x78CA, - 0x78EC, - 0x78E7, - 0x78DA, - 0x78FD, - 0x78F4, - 0x7907, - 0x7912, - 0x7911, - 0x7919, - 0x792C, - 0x792B, - 0x7940, - 0x7960, - 0x7957, - 0x795F, - 0x795A, - 0x7955, - 0x7953, - 0x797A, - 0x797F, - 0x798A, - 0x799D, - 0x79A7, - 0x9F4B, - 0x79AA, - 0x79AE, - 0x79B3, - 0x79B9, - 0x79BA, - 0x79C9, - 0x79D5, - 0x79E7, - 0x79EC, - 0x79E1, - 0x79E3, - 0x7A08, - 0x7A0D, - 0x7A18, - 0x7A19, - 0x7A20, - 0x7A1F, - 0x7980, - 0x7A31, - 0x7A3B, - 0x7A3E, - 0x7A37, - 0x7A43, - 0x7A57, - 0x7A49, - 0x7A61, - 0x7A62, - 0x7A69, - 0x9F9D, - 0x7A70, - 0x7A79, - 0x7A7D, - 0x7A88, - 0x7A97, - 0x7A95, - 0x7A98, - 0x7A96, - 0x7AA9, - 0x7AC8, - 0x7AB0, - 0x7AB6, - 0x7AC5, - 0x7AC4, - 0x7ABF, - 0x9083, - 0x7AC7, - 0x7ACA, - 0x7ACD, - 0x7ACF, - 0x7AD5, - 0x7AD3, - 0x7AD9, - 0x7ADA, - 0x7ADD, - 0x7AE1, - 0x7AE2, - 0x7AE6, - 0x7AED, - 0x7AF0, - 0x7B02, - 0x7B0F, - 0x7B0A, - 0x7B06, - 0x7B33, - 0x7B18, - 0x7B19, - 0x7B1E, - 0x7B35, - 0x7B28, - 0x7B36, - 0x7B50, - 0x7B7A, - 0x7B04, - 0x7B4D, - 0x7B0B, - 0x7B4C, - 0x7B45, - 0x7B75, - 0x7B65, - 0x7B74, - 0x7B67, - 0x7B70, - 0x7B71, - 0x7B6C, - 0x7B6E, - 0x7B9D, - 0x7B98, - 0x7B9F, - 0x7B8D, - 0x7B9C, - 0x7B9A, - 0x7B8B, - 0x7B92, - 0x7B8F, - 0x7B5D, - 0x7B99, - 0x7BCB, - 0x7BC1, - 0x7BCC, - 0x7BCF, - 0x7BB4, - 0x7BC6, - 0x7BDD, - 0x7BE9, - 0x7C11, - 0x7C14, - 0x7BE6, - 0x7BE5, - 0x7C60, - 0x7C00, - 0x7C07, - 0x7C13, - 0x7BF3, - 0x7BF7, - 0x7C17, - 0x7C0D, - 0x7BF6, - 0x7C23, - 0x7C27, - 0x7C2A, - 0x7C1F, - 0x7C37, - 0x7C2B, - 0x7C3D, - 0x7C4C, - 0x7C43, - 0x7C54, - 0x7C4F, - 0x7C40, - 0x7C50, - 0x7C58, - 0x7C5F, - 0x7C64, - 0x7C56, - 0x7C65, - 0x7C6C, - 0x7C75, - 0x7C83, - 0x7C90, - 0x7CA4, - 0x7CAD, - 0x7CA2, - 0x7CAB, - 0x7CA1, - 0x7CA8, - 0x7CB3, - 0x7CB2, - 0x7CB1, - 0x7CAE, - 0x7CB9, - 0x7CBD, - 0x7CC0, - 0x7CC5, - 0x7CC2, - 0x7CD8, - 0x7CD2, - 0x7CDC, - 0x7CE2, - 0x9B3B, - 0x7CEF, - 0x7CF2, - 0x7CF4, - 0x7CF6, - 0x7CFA, - 0x7D06, - 0x7D02, - 0x7D1C, - 0x7D15, - 0x7D0A, - 0x7D45, - 0x7D4B, - 0x7D2E, - 0x7D32, - 0x7D3F, - 0x7D35, - 0x7D46, - 0x7D73, - 0x7D56, - 0x7D4E, - 0x7D72, - 0x7D68, - 0x7D6E, - 0x7D4F, - 0x7D63, - 0x7D93, - 0x7D89, - 0x7D5B, - 0x7D8F, - 0x7D7D, - 0x7D9B, - 0x7DBA, - 0x7DAE, - 0x7DA3, - 0x7DB5, - 0x7DC7, - 0x7DBD, - 0x7DAB, - 0x7E3D, - 0x7DA2, - 0x7DAF, - 0x7DDC, - 0x7DB8, - 0x7D9F, - 0x7DB0, - 0x7DD8, - 0x7DDD, - 0x7DE4, - 0x7DDE, - 0x7DFB, - 0x7DF2, - 0x7DE1, - 0x7E05, - 0x7E0A, - 0x7E23, - 0x7E21, - 0x7E12, - 0x7E31, - 0x7E1F, - 0x7E09, - 0x7E0B, - 0x7E22, - 0x7E46, - 0x7E66, - 0x7E3B, - 0x7E35, - 0x7E39, - 0x7E43, - 0x7E37, - 0x7E32, - 0x7E3A, - 0x7E67, - 0x7E5D, - 0x7E56, - 0x7E5E, - 0x7E59, - 0x7E5A, - 0x7E79, - 0x7E6A, - 0x7E69, - 0x7E7C, - 0x7E7B, - 0x7E83, - 0x7DD5, - 0x7E7D, - 0x8FAE, - 0x7E7F, - 0x7E88, - 0x7E89, - 0x7E8C, - 0x7E92, - 0x7E90, - 0x7E93, - 0x7E94, - 0x7E96, - 0x7E8E, - 0x7E9B, - 0x7E9C, - 0x7F38, - 0x7F3A, - 0x7F45, - 0x7F4C, - 0x7F4D, - 0x7F4E, - 0x7F50, - 0x7F51, - 0x7F55, - 0x7F54, - 0x7F58, - 0x7F5F, - 0x7F60, - 0x7F68, - 0x7F69, - 0x7F67, - 0x7F78, - 0x7F82, - 0x7F86, - 0x7F83, - 0x7F88, - 0x7F87, - 0x7F8C, - 0x7F94, - 0x7F9E, - 0x7F9D, - 0x7F9A, - 0x7FA3, - 0x7FAF, - 0x7FB2, - 0x7FB9, - 0x7FAE, - 0x7FB6, - 0x7FB8, - 0x8B71, - 0x7FC5, - 0x7FC6, - 0x7FCA, - 0x7FD5, - 0x7FD4, - 0x7FE1, - 0x7FE6, - 0x7FE9, - 0x7FF3, - 0x7FF9, - 0x98DC, - 0x8006, - 0x8004, - 0x800B, - 0x8012, - 0x8018, - 0x8019, - 0x801C, - 0x8021, - 0x8028, - 0x803F, - 0x803B, - 0x804A, - 0x8046, - 0x8052, - 0x8058, - 0x805A, - 0x805F, - 0x8062, - 0x8068, - 0x8073, - 0x8072, - 0x8070, - 0x8076, - 0x8079, - 0x807D, - 0x807F, - 0x8084, - 0x8086, - 0x8085, - 0x809B, - 0x8093, - 0x809A, - 0x80AD, - 0x5190, - 0x80AC, - 0x80DB, - 0x80E5, - 0x80D9, - 0x80DD, - 0x80C4, - 0x80DA, - 0x80D6, - 0x8109, - 0x80EF, - 0x80F1, - 0x811B, - 0x8129, - 0x8123, - 0x812F, - 0x814B, - 0x968B, - 0x8146, - 0x813E, - 0x8153, - 0x8151, - 0x80FC, - 0x8171, - 0x816E, - 0x8165, - 0x8166, - 0x8174, - 0x8183, - 0x8188, - 0x818A, - 0x8180, - 0x8182, - 0x81A0, - 0x8195, - 0x81A4, - 0x81A3, - 0x815F, - 0x8193, - 0x81A9, - 0x81B0, - 0x81B5, - 0x81BE, - 0x81B8, - 0x81BD, - 0x81C0, - 0x81C2, - 0x81BA, - 0x81C9, - 0x81CD, - 0x81D1, - 0x81D9, - 0x81D8, - 0x81C8, - 0x81DA, - 0x81DF, - 0x81E0, - 0x81E7, - 0x81FA, - 0x81FB, - 0x81FE, - 0x8201, - 0x8202, - 0x8205, - 0x8207, - 0x820A, - 0x820D, - 0x8210, - 0x8216, - 0x8229, - 0x822B, - 0x8238, - 0x8233, - 0x8240, - 0x8259, - 0x8258, - 0x825D, - 0x825A, - 0x825F, - 0x8264, - 0x8262, - 0x8268, - 0x826A, - 0x826B, - 0x822E, - 0x8271, - 0x8277, - 0x8278, - 0x827E, - 0x828D, - 0x8292, - 0x82AB, - 0x829F, - 0x82BB, - 0x82AC, - 0x82E1, - 0x82E3, - 0x82DF, - 0x82D2, - 0x82F4, - 0x82F3, - 0x82FA, - 0x8393, - 0x8303, - 0x82FB, - 0x82F9, - 0x82DE, - 0x8306, - 0x82DC, - 0x8309, - 0x82D9, - 0x8335, - 0x8334, - 0x8316, - 0x8332, - 0x8331, - 0x8340, - 0x8339, - 0x8350, - 0x8345, - 0x832F, - 0x832B, - 0x8317, - 0x8318, - 0x8385, - 0x839A, - 0x83AA, - 0x839F, - 0x83A2, - 0x8396, - 0x8323, - 0x838E, - 0x8387, - 0x838A, - 0x837C, - 0x83B5, - 0x8373, - 0x8375, - 0x83A0, - 0x8389, - 0x83A8, - 0x83F4, - 0x8413, - 0x83EB, - 0x83CE, - 0x83FD, - 0x8403, - 0x83D8, - 0x840B, - 0x83C1, - 0x83F7, - 0x8407, - 0x83E0, - 0x83F2, - 0x840D, - 0x8422, - 0x8420, - 0x83BD, - 0x8438, - 0x8506, - 0x83FB, - 0x846D, - 0x842A, - 0x843C, - 0x855A, - 0x8484, - 0x8477, - 0x846B, - 0x84AD, - 0x846E, - 0x8482, - 0x8469, - 0x8446, - 0x842C, - 0x846F, - 0x8479, - 0x8435, - 0x84CA, - 0x8462, - 0x84B9, - 0x84BF, - 0x849F, - 0x84D9, - 0x84CD, - 0x84BB, - 0x84DA, - 0x84D0, - 0x84C1, - 0x84C6, - 0x84D6, - 0x84A1, - 0x8521, - 0x84FF, - 0x84F4, - 0x8517, - 0x8518, - 0x852C, - 0x851F, - 0x8515, - 0x8514, - 0x84FC, - 0x8540, - 0x8563, - 0x8558, - 0x8548, - 0x8541, - 0x8602, - 0x854B, - 0x8555, - 0x8580, - 0x85A4, - 0x8588, - 0x8591, - 0x858A, - 0x85A8, - 0x856D, - 0x8594, - 0x859B, - 0x85EA, - 0x8587, - 0x859C, - 0x8577, - 0x857E, - 0x8590, - 0x85C9, - 0x85BA, - 0x85CF, - 0x85B9, - 0x85D0, - 0x85D5, - 0x85DD, - 0x85E5, - 0x85DC, - 0x85F9, - 0x860A, - 0x8613, - 0x860B, - 0x85FE, - 0x85FA, - 0x8606, - 0x8622, - 0x861A, - 0x8630, - 0x863F, - 0x864D, - 0x4E55, - 0x8654, - 0x865F, - 0x8667, - 0x8671, - 0x8693, - 0x86A3, - 0x86A9, - 0x86AA, - 0x868B, - 0x868C, - 0x86B6, - 0x86AF, - 0x86C4, - 0x86C6, - 0x86B0, - 0x86C9, - 0x8823, - 0x86AB, - 0x86D4, - 0x86DE, - 0x86E9, - 0x86EC, - 0x86DF, - 0x86DB, - 0x86EF, - 0x8712, - 0x8706, - 0x8708, - 0x8700, - 0x8703, - 0x86FB, - 0x8711, - 0x8709, - 0x870D, - 0x86F9, - 0x870A, - 0x8734, - 0x873F, - 0x8737, - 0x873B, - 0x8725, - 0x8729, - 0x871A, - 0x8760, - 0x875F, - 0x8778, - 0x874C, - 0x874E, - 0x8774, - 0x8757, - 0x8768, - 0x876E, - 0x8759, - 0x8753, - 0x8763, - 0x876A, - 0x8805, - 0x87A2, - 0x879F, - 0x8782, - 0x87AF, - 0x87CB, - 0x87BD, - 0x87C0, - 0x87D0, - 0x96D6, - 0x87AB, - 0x87C4, - 0x87B3, - 0x87C7, - 0x87C6, - 0x87BB, - 0x87EF, - 0x87F2, - 0x87E0, - 0x880F, - 0x880D, - 0x87FE, - 0x87F6, - 0x87F7, - 0x880E, - 0x87D2, - 0x8811, - 0x8816, - 0x8815, - 0x8822, - 0x8821, - 0x8831, - 0x8836, - 0x8839, - 0x8827, - 0x883B, - 0x8844, - 0x8842, - 0x8852, - 0x8859, - 0x885E, - 0x8862, - 0x886B, - 0x8881, - 0x887E, - 0x889E, - 0x8875, - 0x887D, - 0x88B5, - 0x8872, - 0x8882, - 0x8897, - 0x8892, - 0x88AE, - 0x8899, - 0x88A2, - 0x888D, - 0x88A4, - 0x88B0, - 0x88BF, - 0x88B1, - 0x88C3, - 0x88C4, - 0x88D4, - 0x88D8, - 0x88D9, - 0x88DD, - 0x88F9, - 0x8902, - 0x88FC, - 0x88F4, - 0x88E8, - 0x88F2, - 0x8904, - 0x890C, - 0x890A, - 0x8913, - 0x8943, - 0x891E, - 0x8925, - 0x892A, - 0x892B, - 0x8941, - 0x8944, - 0x893B, - 0x8936, - 0x8938, - 0x894C, - 0x891D, - 0x8960, - 0x895E, - 0x8966, - 0x8964, - 0x896D, - 0x896A, - 0x896F, - 0x8974, - 0x8977, - 0x897E, - 0x8983, - 0x8988, - 0x898A, - 0x8993, - 0x8998, - 0x89A1, - 0x89A9, - 0x89A6, - 0x89AC, - 0x89AF, - 0x89B2, - 0x89BA, - 0x89BD, - 0x89BF, - 0x89C0, - 0x89DA, - 0x89DC, - 0x89DD, - 0x89E7, - 0x89F4, - 0x89F8, - 0x8A03, - 0x8A16, - 0x8A10, - 0x8A0C, - 0x8A1B, - 0x8A1D, - 0x8A25, - 0x8A36, - 0x8A41, - 0x8A5B, - 0x8A52, - 0x8A46, - 0x8A48, - 0x8A7C, - 0x8A6D, - 0x8A6C, - 0x8A62, - 0x8A85, - 0x8A82, - 0x8A84, - 0x8AA8, - 0x8AA1, - 0x8A91, - 0x8AA5, - 0x8AA6, - 0x8A9A, - 0x8AA3, - 0x8AC4, - 0x8ACD, - 0x8AC2, - 0x8ADA, - 0x8AEB, - 0x8AF3, - 0x8AE7, - 0x8AE4, - 0x8AF1, - 0x8B14, - 0x8AE0, - 0x8AE2, - 0x8AF7, - 0x8ADE, - 0x8ADB, - 0x8B0C, - 0x8B07, - 0x8B1A, - 0x8AE1, - 0x8B16, - 0x8B10, - 0x8B17, - 0x8B20, - 0x8B33, - 0x97AB, - 0x8B26, - 0x8B2B, - 0x8B3E, - 0x8B28, - 0x8B41, - 0x8B4C, - 0x8B4F, - 0x8B4E, - 0x8B49, - 0x8B56, - 0x8B5B, - 0x8B5A, - 0x8B6B, - 0x8B5F, - 0x8B6C, - 0x8B6F, - 0x8B74, - 0x8B7D, - 0x8B80, - 0x8B8C, - 0x8B8E, - 0x8B92, - 0x8B93, - 0x8B96, - 0x8B99, - 0x8B9A, - 0x8C3A, - 0x8C41, - 0x8C3F, - 0x8C48, - 0x8C4C, - 0x8C4E, - 0x8C50, - 0x8C55, - 0x8C62, - 0x8C6C, - 0x8C78, - 0x8C7A, - 0x8C82, - 0x8C89, - 0x8C85, - 0x8C8A, - 0x8C8D, - 0x8C8E, - 0x8C94, - 0x8C7C, - 0x8C98, - 0x621D, - 0x8CAD, - 0x8CAA, - 0x8CBD, - 0x8CB2, - 0x8CB3, - 0x8CAE, - 0x8CB6, - 0x8CC8, - 0x8CC1, - 0x8CE4, - 0x8CE3, - 0x8CDA, - 0x8CFD, - 0x8CFA, - 0x8CFB, - 0x8D04, - 0x8D05, - 0x8D0A, - 0x8D07, - 0x8D0F, - 0x8D0D, - 0x8D10, - 0x9F4E, - 0x8D13, - 0x8CCD, - 0x8D14, - 0x8D16, - 0x8D67, - 0x8D6D, - 0x8D71, - 0x8D73, - 0x8D81, - 0x8D99, - 0x8DC2, - 0x8DBE, - 0x8DBA, - 0x8DCF, - 0x8DDA, - 0x8DD6, - 0x8DCC, - 0x8DDB, - 0x8DCB, - 0x8DEA, - 0x8DEB, - 0x8DDF, - 0x8DE3, - 0x8DFC, - 0x8E08, - 0x8E09, - 0x8DFF, - 0x8E1D, - 0x8E1E, - 0x8E10, - 0x8E1F, - 0x8E42, - 0x8E35, - 0x8E30, - 0x8E34, - 0x8E4A, - 0x8E47, - 0x8E49, - 0x8E4C, - 0x8E50, - 0x8E48, - 0x8E59, - 0x8E64, - 0x8E60, - 0x8E2A, - 0x8E63, - 0x8E55, - 0x8E76, - 0x8E72, - 0x8E7C, - 0x8E81, - 0x8E87, - 0x8E85, - 0x8E84, - 0x8E8B, - 0x8E8A, - 0x8E93, - 0x8E91, - 0x8E94, - 0x8E99, - 0x8EAA, - 0x8EA1, - 0x8EAC, - 0x8EB0, - 0x8EC6, - 0x8EB1, - 0x8EBE, - 0x8EC5, - 0x8EC8, - 0x8ECB, - 0x8EDB, - 0x8EE3, - 0x8EFC, - 0x8EFB, - 0x8EEB, - 0x8EFE, - 0x8F0A, - 0x8F05, - 0x8F15, - 0x8F12, - 0x8F19, - 0x8F13, - 0x8F1C, - 0x8F1F, - 0x8F1B, - 0x8F0C, - 0x8F26, - 0x8F33, - 0x8F3B, - 0x8F39, - 0x8F45, - 0x8F42, - 0x8F3E, - 0x8F4C, - 0x8F49, - 0x8F46, - 0x8F4E, - 0x8F57, - 0x8F5C, - 0x8F62, - 0x8F63, - 0x8F64, - 0x8F9C, - 0x8F9F, - 0x8FA3, - 0x8FAD, - 0x8FAF, - 0x8FB7, - 0x8FDA, - 0x8FE5, - 0x8FE2, - 0x8FEA, - 0x8FEF, - 0x9087, - 0x8FF4, - 0x9005, - 0x8FF9, - 0x8FFA, - 0x9011, - 0x9015, - 0x9021, - 0x900D, - 0x901E, - 0x9016, - 0x900B, - 0x9027, - 0x9036, - 0x9035, - 0x9039, - 0x8FF8, - 0x904F, - 0x9050, - 0x9051, - 0x9052, - 0x900E, - 0x9049, - 0x903E, - 0x9056, - 0x9058, - 0x905E, - 0x9068, - 0x906F, - 0x9076, - 0x96A8, - 0x9072, - 0x9082, - 0x907D, - 0x9081, - 0x9080, - 0x908A, - 0x9089, - 0x908F, - 0x90A8, - 0x90AF, - 0x90B1, - 0x90B5, - 0x90E2, - 0x90E4, - 0x6248, - 0x90DB, - 0x9102, - 0x9112, - 0x9119, - 0x9132, - 0x9130, - 0x914A, - 0x9156, - 0x9158, - 0x9163, - 0x9165, - 0x9169, - 0x9173, - 0x9172, - 0x918B, - 0x9189, - 0x9182, - 0x91A2, - 0x91AB, - 0x91AF, - 0x91AA, - 0x91B5, - 0x91B4, - 0x91BA, - 0x91C0, - 0x91C1, - 0x91C9, - 0x91CB, - 0x91D0, - 0x91D6, - 0x91DF, - 0x91E1, - 0x91DB, - 0x91FC, - 0x91F5, - 0x91F6, - 0x921E, - 0x91FF, - 0x9214, - 0x922C, - 0x9215, - 0x9211, - 0x925E, - 0x9257, - 0x9245, - 0x9249, - 0x9264, - 0x9248, - 0x9295, - 0x923F, - 0x924B, - 0x9250, - 0x929C, - 0x9296, - 0x9293, - 0x929B, - 0x925A, - 0x92CF, - 0x92B9, - 0x92B7, - 0x92E9, - 0x930F, - 0x92FA, - 0x9344, - 0x932E, - 0x9319, - 0x9322, - 0x931A, - 0x9323, - 0x933A, - 0x9335, - 0x933B, - 0x935C, - 0x9360, - 0x937C, - 0x936E, - 0x9356, - 0x93B0, - 0x93AC, - 0x93AD, - 0x9394, - 0x93B9, - 0x93D6, - 0x93D7, - 0x93E8, - 0x93E5, - 0x93D8, - 0x93C3, - 0x93DD, - 0x93D0, - 0x93C8, - 0x93E4, - 0x941A, - 0x9414, - 0x9413, - 0x9403, - 0x9407, - 0x9410, - 0x9436, - 0x942B, - 0x9435, - 0x9421, - 0x943A, - 0x9441, - 0x9452, - 0x9444, - 0x945B, - 0x9460, - 0x9462, - 0x945E, - 0x946A, - 0x9229, - 0x9470, - 0x9475, - 0x9477, - 0x947D, - 0x945A, - 0x947C, - 0x947E, - 0x9481, - 0x947F, - 0x9582, - 0x9587, - 0x958A, - 0x9594, - 0x9596, - 0x9598, - 0x9599, - 0x95A0, - 0x95A8, - 0x95A7, - 0x95AD, - 0x95BC, - 0x95BB, - 0x95B9, - 0x95BE, - 0x95CA, - 0x6FF6, - 0x95C3, - 0x95CD, - 0x95CC, - 0x95D5, - 0x95D4, - 0x95D6, - 0x95DC, - 0x95E1, - 0x95E5, - 0x95E2, - 0x9621, - 0x9628, - 0x962E, - 0x962F, - 0x9642, - 0x964C, - 0x964F, - 0x964B, - 0x9677, - 0x965C, - 0x965E, - 0x965D, - 0x965F, - 0x9666, - 0x9672, - 0x966C, - 0x968D, - 0x9698, - 0x9695, - 0x9697, - 0x96AA, - 0x96A7, - 0x96B1, - 0x96B2, - 0x96B0, - 0x96B4, - 0x96B6, - 0x96B8, - 0x96B9, - 0x96CE, - 0x96CB, - 0x96C9, - 0x96CD, - 0x894D, - 0x96DC, - 0x970D, - 0x96D5, - 0x96F9, - 0x9704, - 0x9706, - 0x9708, - 0x9713, - 0x970E, - 0x9711, - 0x970F, - 0x9716, - 0x9719, - 0x9724, - 0x972A, - 0x9730, - 0x9739, - 0x973D, - 0x973E, - 0x9744, - 0x9746, - 0x9748, - 0x9742, - 0x9749, - 0x975C, - 0x9760, - 0x9764, - 0x9766, - 0x9768, - 0x52D2, - 0x976B, - 0x9771, - 0x9779, - 0x9785, - 0x977C, - 0x9781, - 0x977A, - 0x9786, - 0x978B, - 0x978F, - 0x9790, - 0x979C, - 0x97A8, - 0x97A6, - 0x97A3, - 0x97B3, - 0x97B4, - 0x97C3, - 0x97C6, - 0x97C8, - 0x97CB, - 0x97DC, - 0x97ED, - 0x9F4F, - 0x97F2, - 0x7ADF, - 0x97F6, - 0x97F5, - 0x980F, - 0x980C, - 0x9838, - 0x9824, - 0x9821, - 0x9837, - 0x983D, - 0x9846, - 0x984F, - 0x984B, - 0x986B, - 0x986F, - 0x9870, - 0x9871, - 0x9874, - 0x9873, - 0x98AA, - 0x98AF, - 0x98B1, - 0x98B6, - 0x98C4, - 0x98C3, - 0x98C6, - 0x98E9, - 0x98EB, - 0x9903, - 0x9909, - 0x9912, - 0x9914, - 0x9918, - 0x9921, - 0x991D, - 0x991E, - 0x9924, - 0x9920, - 0x992C, - 0x992E, - 0x993D, - 0x993E, - 0x9942, - 0x9949, - 0x9945, - 0x9950, - 0x994B, - 0x9951, - 0x9952, - 0x994C, - 0x9955, - 0x9997, - 0x9998, - 0x99A5, - 0x99AD, - 0x99AE, - 0x99BC, - 0x99DF, - 0x99DB, - 0x99DD, - 0x99D8, - 0x99D1, - 0x99ED, - 0x99EE, - 0x99F1, - 0x99F2, - 0x99FB, - 0x99F8, - 0x9A01, - 0x9A0F, - 0x9A05, - 0x99E2, - 0x9A19, - 0x9A2B, - 0x9A37, - 0x9A45, - 0x9A42, - 0x9A40, - 0x9A43, - 0x9A3E, - 0x9A55, - 0x9A4D, - 0x9A5B, - 0x9A57, - 0x9A5F, - 0x9A62, - 0x9A65, - 0x9A64, - 0x9A69, - 0x9A6B, - 0x9A6A, - 0x9AAD, - 0x9AB0, - 0x9ABC, - 0x9AC0, - 0x9ACF, - 0x9AD1, - 0x9AD3, - 0x9AD4, - 0x9ADE, - 0x9ADF, - 0x9AE2, - 0x9AE3, - 0x9AE6, - 0x9AEF, - 0x9AEB, - 0x9AEE, - 0x9AF4, - 0x9AF1, - 0x9AF7, - 0x9AFB, - 0x9B06, - 0x9B18, - 0x9B1A, - 0x9B1F, - 0x9B22, - 0x9B23, - 0x9B25, - 0x9B27, - 0x9B28, - 0x9B29, - 0x9B2A, - 0x9B2E, - 0x9B2F, - 0x9B32, - 0x9B44, - 0x9B43, - 0x9B4F, - 0x9B4D, - 0x9B4E, - 0x9B51, - 0x9B58, - 0x9B74, - 0x9B93, - 0x9B83, - 0x9B91, - 0x9B96, - 0x9B97, - 0x9B9F, - 0x9BA0, - 0x9BA8, - 0x9BB4, - 0x9BC0, - 0x9BCA, - 0x9BB9, - 0x9BC6, - 0x9BCF, - 0x9BD1, - 0x9BD2, - 0x9BE3, - 0x9BE2, - 0x9BE4, - 0x9BD4, - 0x9BE1, - 0x9C3A, - 0x9BF2, - 0x9BF1, - 0x9BF0, - 0x9C15, - 0x9C14, - 0x9C09, - 0x9C13, - 0x9C0C, - 0x9C06, - 0x9C08, - 0x9C12, - 0x9C0A, - 0x9C04, - 0x9C2E, - 0x9C1B, - 0x9C25, - 0x9C24, - 0x9C21, - 0x9C30, - 0x9C47, - 0x9C32, - 0x9C46, - 0x9C3E, - 0x9C5A, - 0x9C60, - 0x9C67, - 0x9C76, - 0x9C78, - 0x9CE7, - 0x9CEC, - 0x9CF0, - 0x9D09, - 0x9D08, - 0x9CEB, - 0x9D03, - 0x9D06, - 0x9D2A, - 0x9D26, - 0x9DAF, - 0x9D23, - 0x9D1F, - 0x9D44, - 0x9D15, - 0x9D12, - 0x9D41, - 0x9D3F, - 0x9D3E, - 0x9D46, - 0x9D48, - 0x9D5D, - 0x9D5E, - 0x9D64, - 0x9D51, - 0x9D50, - 0x9D59, - 0x9D72, - 0x9D89, - 0x9D87, - 0x9DAB, - 0x9D6F, - 0x9D7A, - 0x9D9A, - 0x9DA4, - 0x9DA9, - 0x9DB2, - 0x9DC4, - 0x9DC1, - 0x9DBB, - 0x9DB8, - 0x9DBA, - 0x9DC6, - 0x9DCF, - 0x9DC2, - 0x9DD9, - 0x9DD3, - 0x9DF8, - 0x9DE6, - 0x9DED, - 0x9DEF, - 0x9DFD, - 0x9E1A, - 0x9E1B, - 0x9E1E, - 0x9E75, - 0x9E79, - 0x9E7D, - 0x9E81, - 0x9E88, - 0x9E8B, - 0x9E8C, - 0x9E92, - 0x9E95, - 0x9E91, - 0x9E9D, - 0x9EA5, - 0x9EA9, - 0x9EB8, - 0x9EAA, - 0x9EAD, - 0x9761, - 0x9ECC, - 0x9ECE, - 0x9ECF, - 0x9ED0, - 0x9ED4, - 0x9EDC, - 0x9EDE, - 0x9EDD, - 0x9EE0, - 0x9EE5, - 0x9EE8, - 0x9EEF, - 0x9EF4, - 0x9EF6, - 0x9EF7, - 0x9EF9, - 0x9EFB, - 0x9EFC, - 0x9EFD, - 0x9F07, - 0x9F08, - 0x76B7, - 0x9F15, - 0x9F21, - 0x9F2C, - 0x9F3E, - 0x9F4A, - 0x9F52, - 0x9F54, - 0x9F63, - 0x9F5F, - 0x9F60, - 0x9F61, - 0x9F66, - 0x9F67, - 0x9F6C, - 0x9F6A, - 0x9F77, - 0x9F72, - 0x9F76, - 0x9F95, - 0x9F9C, - 0x9FA0, - 0x582F, - 0x69C7, - 0x9059, - 0x7464, - 0x51DC, - 0x7199 -}; - -/* f5 to fe is non-existent */ diff --git a/lib/ctype/local.h b/lib/ctype/local.h deleted file mode 100644 index 5c293c8..0000000 --- a/lib/ctype/local.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: fixed locale/wchar handling */ - -/* wctrans constants */ - -#include <_ansi.h> -#include "../locale/setlocale.h" - -/* valid values for wctrans_t */ -#define WCT_TOLOWER 1 -#define WCT_TOUPPER 2 - -/* valid values for wctype_t */ -#define WC_ALNUM 1 -#define WC_ALPHA 2 -#define WC_BLANK 3 -#define WC_CNTRL 4 -#define WC_DIGIT 5 -#define WC_GRAPH 6 -#define WC_LOWER 7 -#define WC_PRINT 8 -#define WC_PUNCT 9 -#define WC_SPACE 10 -#define WC_UPPER 11 -#define WC_XDIGIT 12 - -/* internal functions to translate between JP and Unicode */ -/* note this is not applicable to Cygwin, where wchar_t is always Unicode, - and should not be applicable to most other platforms either; - * platforms for which wchar_t is not Unicode should be explicitly listed - * the transformation should be applied to all non-Unicode locales - (also Chinese, Korean, and even 8-bit locales such as *.CP1252) - * for towupper and towlower, the result must be back-transformed - into the respective locale encoding; currently NOT IMPLEMENTED -*/ -#ifdef __CYGWIN__ -/* Under Cygwin, wchar_t (or its extension wint_t) is Unicode */ -#define _jp2uc(c) (c) -#define _jp2uc_l(c, l) (c) -#define _uc2jp_l(c, l) (c) -#else -wint_t _jp2uc (wint_t); -wint_t _jp2uc_l (wint_t, struct __locale_t *); -wint_t _uc2jp_l (wint_t, struct __locale_t *); -#endif diff --git a/lib/ctype/mkcaseconv b/lib/ctype/mkcaseconv deleted file mode 100644 index a455aed..0000000 --- a/lib/ctype/mkcaseconv +++ /dev/null @@ -1,128 +0,0 @@ -#! /bin/sh -f - -# generate a table for Unicode case conversion; entries: -# struct caseconv_entry defined in towctrans_l.c - -if [ -r UnicodeData.txt ] -then UnicodeData=UnicodeData.txt -elif [ -r /usr/share/unicode/ucd/UnicodeData.txt ] -then UnicodeData=/usr/share/unicode/ucd/UnicodeData.txt -else echo UnicodeData.txt not found >&2 - exit 1 -fi - -LC_ALL=C -export LC_ALL - -compact=true - -#0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061; -#0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041 -#0130;LATIN CAPITAL LETTER I WITH DOT ABOVE;Lu;0;L;0049 0307;;;;N;LATIN CAPITAL LETTER I DOT;;;0069; -#01C4;LATIN CAPITAL LETTER DZ WITH CARON;Lu;0;L; 0044 017D;;;;N;LATIN CAPITAL LETTER D Z HACEK;;;01C6;01C5 -#01C5;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON;Lt;0;L; 0044 017E;;;;N;LATIN LETTER CAPITAL D SMALL Z HACEK;;01C4;01C6;01C5 -#01C6;LATIN SMALL LETTER DZ WITH CARON;Ll;0;L; 0064 017E;;;;N;LATIN SMALL LETTER D Z HACEK;;01C4;;01C5 - -tr -d '\015' < $UnicodeData | -sed \ --e 's,^\([^;]*\);[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;\([^;][^;]*\);\([^;]*\);\([^;]*\)$,src \1 upper "\2" lower "\3" title "\4",' \ --e t \ --e 's,^\([^;]*\);[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;\([^;]*\);\([^;][^;]*\);\([^;]*\)$,src \1 upper "\2" lower "\3" title "\4",' \ --e t \ --e 's,^\([^;]*\);[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;\([^;]*\);\([^;]*\);\([^;][^;]*\)$,src \1 upper "\2" lower "\3" title "\4",' \ --e t \ --e d | -(#src 01C5 upper "01C4" lower "01C6" title "01C5" -if $compact -then - ( - cat <<\/EOS - src () { - if [ -n "$3" ] - then tohi=$(( 0x0$3 - 0x0$1 )) - else tohi=0 - fi - if [ -n "$5" ] - then tolo=$(( 0x0$5 - 0x0$1 )) - else tolo=0 - fi - case "$tolo.$tohi" in - 0.0) true;; - 0.*) - case "$1.$tohi" in - *[02468ACE].1) echo "'#error' U+$1 ODDSML";; - *[02468ACE].-1) echo " 0x$1 TO1 ODDCAP";; - *[13579BDF].1) echo "'#error' U+$1 EVENSML";; - *[13579BDF].-1) echo " 0x$1 TO1 EVENCAP";; - *) echo " 0x$1 TOUP $tohi";; - esac;; - *.0) - case "$1.$tolo" in - *[02468ACE].1) echo " 0x$1 TO1 EVENCAP";; - *[02468ACE].-1) echo "'#error' U+$1 EVENSML";; - *[13579BDF].1) echo " 0x$1 TO1 ODDCAP";; - *[13579BDF].-1) echo "'#error' U+$1 ODDSML";; - *) echo " 0x$1 TOLO $tolo";; - esac;; - *) case "$tolo.$tohi" in - 1.-1) echo " 0x$1 TOBOTH 0";; - *) echo "'#error' U+$1";; - esac;; - esac - } -/EOS - cat - ) | sh | - uniq -f1 --group=append | sed -e "s,^$,range," -e t -e "s,^,item ," | - ( - cat <<\/EOS - first= - diff=-1 - max=255 - range () { - # $diff == $(($last - $first)) - if [ "$diff" -ge 0 ] - then # we have items at all - echo " {$first, $diff, $v2, $v3}," - fi - first= - diff=-1 - } - item () { - if [ "$1" = "#error" ] - then echo "$*" - return - fi - - if [ $diff -eq $max ] - then range - elif [ -n "$first" ] - then if [ $(( $1 )) -ne $(( ${last-0} + 1 )) ] - then range - fi - fi - - if [ -z "$first" ] - then first=$1 - v2=$2 - v3=$3 - fi - - last=$1 - diff=$(( $diff + 1 )) - } -/EOS - cat - ) | sh -elif false -then - sed -e 's/src \([^ ]*\) upper "\([^ ]*\)" lower "\([^ ]*\)" title "\([^ ]*\)"/ {0x\1, 0x\2 - 0x\1, 0x\3 - 0x\1},/' \ - -e 's/0x - 0x[^ ,}]*/0/g' -e 's/0x}/0}/' \ - -e 's/\(0x[0-9A-F][0-9A-F]*\) - \(0x[0-9A-F][0-9A-F]*\)/$((`printf %d \1` - `printf %d \2`))/g' \ - -e 's/^/echo "/' -e 's/$/"/' | - sh -else - sed -e 's/src \([^ ]*\) upper "\([^ ]*\)" lower "\([^ ]*\)" title "\([^ ]*\)"/ {0x\1, 0x\2 - 0x\1, 0x\3 - 0x\1},/' \ - -e 's/0x - 0x[^ ,}]*/0/g' -e 's/0x}/0}/' -fi -) > caseconv.t diff --git a/lib/ctype/mkcategories b/lib/ctype/mkcategories deleted file mode 100644 index 22c7d4d..0000000 --- a/lib/ctype/mkcategories +++ /dev/null @@ -1,71 +0,0 @@ -#! /bin/sh - -# generate table of Unicode character category ranges; -# note: undefined characters between two characters of the same category -# are associated to the same category, e.g. -#0A0A;GURMUKHI LETTER UU;Lo -#0A0B..0A0E -> Lo -#0A0F;GURMUKHI LETTER EE;Lo - -if [ -r UnicodeData.txt ] -then UnicodeData=UnicodeData.txt -elif [ -r /usr/share/unicode/ucd/UnicodeData.txt ] -then UnicodeData=/usr/share/unicode/ucd/UnicodeData.txt -else echo UnicodeData.txt not found >&2 - exit 1 -fi - -# the code assumes foldall=false, foldcase=true -foldall=false -foldcase=true - -( -cat <<\/EOS -first= -item () { - if [ -n "$first" ] - then if [ "$2" != "isRangeLast" \ - -a $(( 0x$1 )) -ne $(( 0x${last-0} + 1 )) ] - then range - fi - fi - - if [ -z "$first" ] - then first=$1 - val=$3 - fi - - last=$1 -} -range () { -# echo " {0x$first, 0x$last, CAT_$val}," -# echo " {0x$first, $((0x$last - 0x$first)), CAT_$val}," -# echo " {0x$first | (CAT_$val << 24), $((0x$last - 0x$first))}," - echo " {CAT_$val, 0x$first, $((0x$last - 0x$first))}," - first= -} -/EOS - -cat "$UnicodeData" | -if $foldall -then sed -e "s,;L[lu];,;LC;," -e "s,;C[fs];,;Cfs;," \ - -e "s,;L[mo];,;Lmo;," -e "s,;Nl;,;Lmo;," \ - -e "s,;P.;,;P;," -e "s,;No;,;P;," \ - -e "s,;S.;,;S;," -e "s,;Z[lp];,;Zlp;," \ - -e "s,;C[no];,;X;," -e "s,;M[cen];,;M;," -elif $foldcase -then -# fold Lu/Ll to LC only if lower/upper conversion is available - sed -e '/^\([^;]*\);[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;\([^;]*\);\([^;][^;]*\);.*/ s/;Lu;/;LC;/' \ - -e '/^\([^;]*\);[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;\([^;][^;]*\);\([^;]*\);.*/ s/;Ll;/;LC;/' \ - -e '/;Co;/ d' -else cat -fi | -sed -e "s,^\([^;]*\);<[^;]*\, Last>;\([^;]*\);.*,\1 isRangeLast \2," \ - -e "s,^\([^;]*\);[^;]*;\([^;]*\);.*,\1 isNormalOrRangeFirst \2," | -uniq -f2 --group=append | sed -e "s,^$,range," -e t -e "s,^,item ," -) | sh > categories.t - -sed -e "s/.*\(CAT_[A-Za-z]*\).*/ \1,/" categories.t | -sort | uniq > categories.cat - diff --git a/lib/ctype/mkunidata b/lib/ctype/mkunidata deleted file mode 100644 index 4adf667..0000000 --- a/lib/ctype/mkunidata +++ /dev/null @@ -1,60 +0,0 @@ -#! /bin/sh - -echo Generating Unicode character properties data for newlib/libc/ctype - -cd `dirname $0` - -############################################################################# -# checks and (with option -u) download - -case "$1" in --h) echo "Usage: $0 [-h|-u|-i]" - echo "Generate case conversion table caseconv.t and character category table categories.t" - echo "from local Unicode file UnicodeData.txt." - echo "" - echo "Options:" - echo " -u download file from unicode.org first" - echo " -i copy file from /usr/share/unicode/ucd first" - echo " -h show this" - exit - ;; --u) - wget () { - ref=`basename $1` - ref=`ls "$ref" 2> /dev/null || echo 01-Jan-1970` - curl -R -O --connect-timeout 55 -z "$ref" "$1" - } - - echo downloading data from unicode.org - for data in UnicodeData.txt - do wget http://unicode.org/Public/UNIDATA/$data - done - ;; --i) - echo copying data from /usr/share/unicode/ucd - for data in UnicodeData.txt - do cp /usr/share/unicode/ucd/$data . - done - ;; -esac - -echo checking Unicode data file -for data in UnicodeData.txt -do if [ -r $data ] - then true - else echo $data not available, skipping table generation - exit - fi -done - -############################################################################# -# table generation - -echo generating character category table for "isw*.c" - sh ./mkcategories - -echo generating case conversion table for "tow*.c" - sh ./mkcaseconv - -############################################################################# -# end diff --git a/lib/ctype/toascii.c b/lib/ctype/toascii.c deleted file mode 100644 index de5b8e1..0000000 --- a/lib/ctype/toascii.c +++ /dev/null @@ -1,48 +0,0 @@ -/* -FUNCTION - <>, <>---force integers to ASCII range - -INDEX - toascii - -INDEX - toascii_l - -SYNOPSIS - #include - int toascii(int <[c]>); - - #include - int toascii_l(int <[c]>, locale_t <[locale]>); - -DESCRIPTION -<> is a macro which coerces integers to the ASCII range (0--127) by zeroing any higher-order bits. - -<> is like <> but performs the function based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining this macro using `<<#undef toascii>>' or `<<#undef toascii_l>>'. - -RETURNS -<>, <> return integers between 0 and 127. - -PORTABILITY -<> is X/Open, BSD and POSIX-1.2001, but marked obsolete in -POSIX-1.2008. -<> is a GNU extension. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include -#undef toascii - -int -toascii (int c) -{ - return (c)&0177; -} - diff --git a/lib/ctype/toascii_l.c b/lib/ctype/toascii_l.c deleted file mode 100644 index 8781261..0000000 --- a/lib/ctype/toascii_l.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <_ansi.h> -#include - -#undef toascii_l - -int -toascii_l (int c, struct __locale_t *locale) -{ - return c & 0177; -} diff --git a/lib/ctype/tolower.c b/lib/ctype/tolower.c deleted file mode 100644 index aae2ce0..0000000 --- a/lib/ctype/tolower.c +++ /dev/null @@ -1,82 +0,0 @@ -/* -FUNCTION - <>, <>---translate characters to lowercase - -INDEX - tolower - -INDEX - tolower_l - -INDEX - _tolower - -SYNOPSIS - #include - int tolower(int <[c]>); - int _tolower(int <[c]>); - - #include - int tolower_l(int <[c]>, locale_t <[locale]>); - - -DESCRIPTION -<> is a macro which converts uppercase characters to lowercase, -leaving all other characters unchanged. It is only defined when -<[c]> is an integer in the range <> to <<255>>. - -<> is like <> but performs the function based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining this macro using `<<#undef tolower>>' or `<<#undef tolower_l>>'. - -<<_tolower>> performs the same conversion as <>, but should -only be used when <[c]> is known to be an uppercase character (<>--<>). - -RETURNS -<>, <> return the lowercase equivalent of <[c]> when -<[c]> is an uppercase character, and <[c]> otherwise. - -<<_tolower>> returns the lowercase equivalent of <[c]> when it is a -character between <> and <>. If <[c]> is not one of these -characters, the behaviour of <<_tolower>> is undefined. - -PORTABILITY -<> is ANSI C. <<_tolower>> is not recommended for portable programs. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include -#if defined (_MB_EXTENDED_CHARSETS_ISO) || defined (_MB_EXTENDED_CHARSETS_WINDOWS) -#include -#include -#include -#include -#include -#endif - -#undef tolower -int -tolower (int c) -{ -#if defined (_MB_EXTENDED_CHARSETS_ISO) || defined (_MB_EXTENDED_CHARSETS_WINDOWS) - if ((unsigned char) c <= 0x7f) - return isupper (c) ? c - 'A' + 'a' : c; - else if (c != EOF && MB_CUR_MAX == 1 && isupper (c)) - { - char s[MB_LEN_MAX] = { c, '\0' }; - wchar_t wc; - if (mbtowc (&wc, s, 1) >= 0 - && wctomb (s, (wchar_t) towlower ((wint_t) wc)) == 1) - c = (unsigned char) s[0]; - } - return c; -#else - return isupper(c) ? (c) - 'A' + 'a' : c; -#endif -} diff --git a/lib/ctype/tolower_l.c b/lib/ctype/tolower_l.c deleted file mode 100644 index 3b196c8..0000000 --- a/lib/ctype/tolower_l.c +++ /dev/null @@ -1,36 +0,0 @@ -#include <_ansi.h> -#include -#if defined (_MB_EXTENDED_CHARSETS_ISO) || defined (_MB_EXTENDED_CHARSETS_WINDOWS) -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" -#endif - -int -tolower_l (int c, struct __locale_t *locale) -{ -#if defined (_MB_EXTENDED_CHARSETS_ISO) || defined (_MB_EXTENDED_CHARSETS_WINDOWS) - if ((unsigned char) c <= 0x7f) - return isupper_l (c, locale) ? c - 'A' + 'a' : c; - else if (c != EOF && __locale_mb_cur_max_l (locale) == 1 - && isupper_l (c, locale)) - { - char s[MB_LEN_MAX] = { c, '\0' }; - wchar_t wc; - mbstate_t state; - - memset (&state, 0, sizeof state); - if (locale->mbtowc (_REENT, &wc, s, 1, &state) >= 0 - && locale->wctomb (_REENT, s, - (wchar_t) towlower_l ((wint_t) wc, locale), - &state) == 1) - c = (unsigned char) s[0]; - } - return c; -#else - return isupper_l (c, locale) ? (c) - 'A' + 'a' : c; -#endif -} diff --git a/lib/ctype/toupper.c b/lib/ctype/toupper.c deleted file mode 100644 index 61951b0..0000000 --- a/lib/ctype/toupper.c +++ /dev/null @@ -1,82 +0,0 @@ -/* -FUNCTION - <>, <>---translate characters to uppercase - -INDEX - toupper - -INDEX - toupper_l - -INDEX - _toupper - -SYNOPSIS - #include - int toupper(int <[c]>); - int _toupper(int <[c]>); - - #include - int toupper_l(int <[c]>, locale_t <[locale]>); - - -DESCRIPTION -<> is a macro which converts lowercase characters to uppercase, -leaving all other characters unchanged. It is only defined when -<[c]> is an integer in the range <> to <<255>>. - -<> is like <> but performs the function based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -You can use a compiled subroutine instead of the macro definition by -undefining this macro using `<<#undef toupper>>' or `<<#undef toupper_l>>'. - -<<_toupper>> performs the same conversion as <>, but should -only be used when <[c]> is known to be a lowercase character (<>--<>). - -RETURNS -<>, <> return the uppercase equivalent of <[c]> when -<[c]> is a lowercase character, and <[c]> otherwise. - -<<_toupper>> returns the uppercase equivalent of <[c]> when it is a -character between <> and <>. If <[c]> is not one of these -characters, the behaviour of <<_toupper>> is undefined. - -PORTABILITY -<> is ANSI C. <<_toupper>> is not recommended for portable programs. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include -#if defined (_MB_EXTENDED_CHARSETS_ISO) || defined (_MB_EXTENDED_CHARSETS_WINDOWS) -#include -#include -#include -#include -#include -#endif - -#undef toupper -int -toupper (int c) -{ -#if defined (_MB_EXTENDED_CHARSETS_ISO) || defined (_MB_EXTENDED_CHARSETS_WINDOWS) - if ((unsigned char) c <= 0x7f) - return islower (c) ? c - 'a' + 'A' : c; - else if (c != EOF && MB_CUR_MAX == 1 && islower (c)) - { - char s[MB_LEN_MAX] = { c, '\0' }; - wchar_t wc; - if (mbtowc (&wc, s, 1) >= 0 - && wctomb (s, (wchar_t) towupper ((wint_t) wc)) == 1) - c = (unsigned char) s[0]; - } - return c; -#else - return islower (c) ? c - 'a' + 'A' : c; -#endif -} diff --git a/lib/ctype/toupper_l.c b/lib/ctype/toupper_l.c deleted file mode 100644 index b126c1e..0000000 --- a/lib/ctype/toupper_l.c +++ /dev/null @@ -1,38 +0,0 @@ -#include <_ansi.h> -#include -#if defined (_MB_EXTENDED_CHARSETS_ISO) \ - || defined (_MB_EXTENDED_CHARSETS_WINDOWS) -#include -#include -#include -#include -#include -#include <../locale/setlocale.h> -#endif - -int -toupper_l (int c, struct __locale_t *locale) -{ -#if defined (_MB_EXTENDED_CHARSETS_ISO) \ - || defined (_MB_EXTENDED_CHARSETS_WINDOWS) - if ((unsigned char) c <= 0x7f) - return islower_l (c, locale) ? c - 'a' + 'A' : c; - else if (c != EOF && __locale_mb_cur_max_l (locale) == 1 - && islower_l (c, locale)) - { - char s[MB_LEN_MAX] = { c, '\0' }; - wchar_t wc; - mbstate_t state; - - memset (&state, 0, sizeof state); - if (locale->mbtowc (_REENT, &wc, s, 1, &state) >= 0 - && locale->wctomb (_REENT, s, - (wchar_t) towupper_l ((wint_t) wc, locale), - &state) == 1) - c = (unsigned char) s[0]; - } - return c; -#else - return islower_l (c, locale) ? c - 'a' + 'A' : c; -#endif -} diff --git a/lib/ctype/towctrans.c b/lib/ctype/towctrans.c deleted file mode 100644 index 176aa3d..0000000 --- a/lib/ctype/towctrans.c +++ /dev/null @@ -1,101 +0,0 @@ -/* Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - Modified (m) 2017 Thomas Wolff to refer to generated Unicode data tables. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -FUNCTION - <>, <>---extensible wide-character translation - -INDEX - towctrans - -INDEX - towctrans_l - -SYNOPSIS - #include - wint_t towctrans(wint_t <[c]>, wctrans_t <[w]>); - - #include - wint_t towctrans_l(wint_t <[c]>, wctrans_t <[w]>, locale_t <[locale]>); - - -DESCRIPTION -<> is a function which converts wide characters based on -a specified translation type <[w]>. If the translation type is -invalid or cannot be applied to the current character, no change -to the character is made. - -<> is like <> but performs the function based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return the translated equivalent of <[c]> -when it is a valid for the given translation, otherwise, it returns the -input character. When the translation type is invalid, <> is -set to <>. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include -#include -//#include -#include "local.h" - -wint_t -_towctrans_r (struct _reent *r, - wint_t c, - wctrans_t w) -{ - if (w == WCT_TOLOWER || w == WCT_TOUPPER) - return towctrans_l (c, w, 0); - else - { - // skipping this because it was causing trouble (cygwin crash) - // and there is no errno specified for towctrans - //r->_errno = EINVAL; - return c; - } -} - -#ifndef _REENT_ONLY -wint_t -towctrans (wint_t c, - wctrans_t w) -{ - return _towctrans_r (_REENT, c, w); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/ctype/towctrans_l.c b/lib/ctype/towctrans_l.c deleted file mode 100644 index b829266..0000000 --- a/lib/ctype/towctrans_l.c +++ /dev/null @@ -1,162 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include -//#include -#include "local.h" - -/* - struct caseconv_entry describes the case conversion behaviour - of a range of Unicode characters. - It was designed to be compact for a minimal table size. - The range is first...first + diff. - Conversion behaviour for a character c in the respective range: - mode == TOLO towlower (c) = c + delta - mode == TOUP towupper (c) = c + delta - mode == TOBOTH (titling case characters) - towlower (c) = c + 1 - towupper (c) = c - 1 - mode == TO1 capital/small letters are alternating - delta == EVENCAP even codes are capital - delta == ODDCAP odd codes are capital - (this correlates with an even/odd first range value - as of Unicode 10.0 but we do not rely on this) - As of Unicode 10.0, the following field lengths are sufficient - first: 17 bits - diff: 8 bits - delta: 17 bits - mode: 2 bits - The reserve of 4 bits (to limit the struct to 6 bytes) - is currently added to the 'first' field; - should a future Unicode version make it necessary to expand the others, - the 'first' field could be reduced as needed, or larger ranges could - be split up (reduce limit max=255 e.g. to max=127 or max=63 in - script mkcaseconv, check increasing table size). - */ -enum {TO1, TOLO, TOUP, TOBOTH}; -enum {EVENCAP, ODDCAP}; -static struct caseconv_entry { - uint_least32_t first: 21; - uint_least32_t diff: 8; - uint_least32_t mode: 2; - int_least32_t delta: 17; -} __attribute__ ((packed)) -caseconv_table [] = { -#include "caseconv.t" -}; -#define first(ce) ce.first -#define last(ce) (ce.first + ce.diff) - -/* auxiliary function for binary search in interval properties table */ -static const struct caseconv_entry * -bisearch (wint_t ucs, const struct caseconv_entry *table, int max) -{ - int min = 0; - int mid; - - if (ucs < first(table[0]) || ucs > last(table[max])) - return 0; - while (max >= min) - { - mid = (min + max) / 2; - if (ucs > last(table[mid])) - min = mid + 1; - else if (ucs < first(table[mid])) - max = mid - 1; - else - return &table[mid]; - } - return 0; -} - -static wint_t -toulower (wint_t c) -{ - const struct caseconv_entry * cce = - bisearch(c, caseconv_table, - sizeof(caseconv_table) / sizeof(*caseconv_table) - 1); - - if (cce) - switch (cce->mode) - { - case TOLO: - return c + cce->delta; - case TOBOTH: - return c + 1; - case TO1: - switch (cce->delta) - { - case EVENCAP: - if (!(c & 1)) - return c + 1; - break; - case ODDCAP: - if (c & 1) - return c + 1; - break; - default: - break; - } - default: - break; - } - - return c; -} - -static wint_t -touupper (wint_t c) -{ - const struct caseconv_entry * cce = - bisearch(c, caseconv_table, - sizeof(caseconv_table) / sizeof(*caseconv_table) - 1); - - if (cce) - switch (cce->mode) - { - case TOUP: - return c + cce->delta; - case TOBOTH: - return c - 1; - case TO1: - switch (cce->delta) - { - case EVENCAP: - if (c & 1) - return c - 1; - break; - case ODDCAP: - if (!(c & 1)) - return c - 1; - break; - default: - break; - } - default: - break; - } - - return c; -} - -wint_t -towctrans_l (wint_t c, wctrans_t w, struct __locale_t *locale) -{ - wint_t u = _jp2uc_l (c, locale); - wint_t res; - if (w == WCT_TOLOWER) - res = toulower (u); - else if (w == WCT_TOUPPER) - res = touupper (u); - else - { - // skipping the errno setting that was previously involved - // by delegating to towctrans; it was causing trouble (cygwin crash) - // and there is no errno specified for towctrans - return c; - } - if (res != u) - return _uc2jp_l (res, locale); - else - return c; -} diff --git a/lib/ctype/towlower.c b/lib/ctype/towlower.c deleted file mode 100644 index 01de1bd..0000000 --- a/lib/ctype/towlower.c +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - Modified (m) 2017 Thomas Wolff to refer to generated Unicode data tables. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -FUNCTION - <>, <>---translate wide characters to lowercase - -INDEX - towlower - -INDEX - towlower_l - -SYNOPSIS - #include - wint_t towlower(wint_t <[c]>); - - #include - wint_t towlower_l(wint_t <[c]>, locale_t <[locale]>); - - -DESCRIPTION -<> is a function which converts uppercase wide characters to -lowercase, leaving all other characters unchanged. - -<> is like <> but performs the function based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return the lowercase equivalent of <[c]> when it is a -uppercase wide character; otherwise, it returns the input character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include -#include -#include "local.h" - -wint_t -towlower (wint_t c) -{ -#ifdef _MB_CAPABLE - return towctrans (c, WCT_TOLOWER); -#else - return c < 0x00ff ? (wint_t)(tolower ((int)c)) : c; -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/towlower_l.c b/lib/ctype/towlower_l.c deleted file mode 100644 index 46e024d..0000000 --- a/lib/ctype/towlower_l.c +++ /dev/null @@ -1,15 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include -#include "local.h" - -wint_t -towlower_l (wint_t c, struct __locale_t *locale) -{ -#ifdef _MB_CAPABLE - return towctrans_l (c, WCT_TOLOWER, locale); -#else - return towlower (c); -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/towupper.c b/lib/ctype/towupper.c deleted file mode 100644 index a60e62b..0000000 --- a/lib/ctype/towupper.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - Modified (m) 2017 Thomas Wolff to refer to generated Unicode data tables. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -FUNCTION - <>, <>---translate wide characters to uppercase - -INDEX - towupper - -INDEX - towupper_l - -SYNOPSIS - #include - wint_t towupper(wint_t <[c]>); - - #include - wint_t towupper_l(wint_t <[c]>, locale_t <[locale]>); - - -DESCRIPTION -<> is a function which converts lowercase wide characters to -uppercase, leaving all other characters unchanged. - -<> is like <> but performs the function based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return the uppercase equivalent of <[c]> when it is a -lowercase wide character, otherwise, it returns the input character. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -wint_t -towupper (wint_t c) -{ -#ifdef _MB_CAPABLE - return towctrans (c, WCT_TOUPPER); -#else - return c < 0x00ff ? (wint_t)(toupper ((int)c)) : c; -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/towupper_l.c b/lib/ctype/towupper_l.c deleted file mode 100644 index d7c1adb..0000000 --- a/lib/ctype/towupper_l.c +++ /dev/null @@ -1,14 +0,0 @@ -/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ -#include <_ansi.h> -#include -#include "local.h" - -wint_t -towupper_l (wint_t c, struct __locale_t *locale) -{ -#ifdef _MB_CAPABLE - return towctrans_l (c, WCT_TOUPPER, locale); -#else - return towupper (c); -#endif /* _MB_CAPABLE */ -} diff --git a/lib/ctype/wctrans.c b/lib/ctype/wctrans.c deleted file mode 100644 index dbb103d..0000000 --- a/lib/ctype/wctrans.c +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -FUNCTION - <>, <>---get wide-character translation type - -INDEX - wctrans - -INDEX - wctrans_l - -SYNOPSIS - #include - wctrans_t wctrans(const char *<[c]>); - - #include - wctrans_t wctrans_l(const char *<[c]>, locale_t <[locale]>); - - -DESCRIPTION -<> is a function which takes a string <[c]> and gives back -the appropriate wctrans_t type value associated with the string, -if one exists. The following values are guaranteed to be recognized: -"tolower" and "toupper". - -<> is like <> but performs the function based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return 0 and sets <> to <> if the -given name is invalid. Otherwise, it returns a valid non-zero wctrans_t -value. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -wctrans_t -_wctrans_r (struct _reent *r, - const char *c) -{ - if (!strcmp (c, "tolower")) - return WCT_TOLOWER; - else if (!strcmp (c, "toupper")) - return WCT_TOUPPER; - else - { - _REENT_ERRNO(r) = EINVAL; - return 0; - } -} - -#ifndef _REENT_ONLY -wctrans_t -wctrans (const char *c) -{ - return _wctrans_r (_REENT, c); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/ctype/wctrans_l.c b/lib/ctype/wctrans_l.c deleted file mode 100644 index 30e61a4..0000000 --- a/lib/ctype/wctrans_l.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <_ansi.h> -#include - -wctrans_t -wctrans_l (const char *c, struct __locale_t *locale) -{ - /* We're using a locale-independent representation of upper/lower case - based on Unicode data. Thus, the locale doesn't matter. */ - return wctrans (c); -} diff --git a/lib/ctype/wctype.c b/lib/ctype/wctype.c deleted file mode 100644 index 8c7afc7..0000000 --- a/lib/ctype/wctype.c +++ /dev/null @@ -1,141 +0,0 @@ -/* Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -FUNCTION - <>, <>---get wide-character classification type - -INDEX - wctype - -INDEX - wctype_l - -SYNOPSIS - #include - wctype_t wctype(const char *<[c]>); - - #include - wctype_t wctype_l(const char *<[c]>, locale_t <[locale]>); - - -DESCRIPTION -<> is a function which takes a string <[c]> and gives back -the appropriate wctype_t type value associated with the string, -if one exists. The following values are guaranteed to be recognized: -"alnum", "alpha", "blank", "cntrl", "digit", "graph", "lower", "print", -"punct", "space", "upper", and "xdigit". - -<> is like <> but performs the function based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return 0 and sets <> to <> if the -given name is invalid. Otherwise, it returns a valid non-zero wctype_t -value. - -PORTABILITY -<> is C99. -<> is POSIX-1.2008. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -wctype_t -_wctype_r (struct _reent *r, - const char *c) -{ - switch (*c) - { - case 'a': - if (!strcmp (c, "alnum")) - return WC_ALNUM; - else if (!strcmp (c, "alpha")) - return WC_ALPHA; - break; - case 'b': - if (!strcmp (c, "blank")) - return WC_BLANK; - break; - case 'c': - if (!strcmp (c, "cntrl")) - return WC_CNTRL; - break; - case 'd': - if (!strcmp (c, "digit")) - return WC_DIGIT; - break; - case 'g': - if (!strcmp (c, "graph")) - return WC_GRAPH; - break; - case 'l': - if (!strcmp (c, "lower")) - return WC_LOWER; - break; - case 'p': - if (!strcmp (c, "print")) - return WC_PRINT; - else if (!strcmp (c, "punct")) - return WC_PUNCT; - break; - case 's': - if (!strcmp (c, "space")) - return WC_SPACE; - break; - case 'u': - if (!strcmp (c, "upper")) - return WC_UPPER; - break; - case 'x': - if (!strcmp (c, "xdigit")) - return WC_XDIGIT; - break; - } - - /* otherwise invalid */ - _REENT_ERRNO(r) = EINVAL; - return 0; -} - -#ifndef _REENT_ONLY -wctype_t -wctype (const char *c) -{ - return _wctype_r (_REENT, c); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/ctype/wctype_l.c b/lib/ctype/wctype_l.c deleted file mode 100644 index c2793dd..0000000 --- a/lib/ctype/wctype_l.c +++ /dev/null @@ -1,8 +0,0 @@ -#include <_ansi.h> -#include - -wctype_t -wctype_l (const char *c, struct __locale_t *locale) -{ - return wctype (c); -} diff --git a/lib/errno/Makefile.inc b/lib/errno/Makefile.inc deleted file mode 100644 index f06b8c5..0000000 --- a/lib/errno/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/errno.c diff --git a/lib/errno/errno.c b/lib/errno/errno.c deleted file mode 100644 index 384b07f..0000000 --- a/lib/errno/errno.c +++ /dev/null @@ -1,22 +0,0 @@ -/* The errno variable is stored in the reentrancy structure. This - function returns its address for use by the macro errno defined in - errno.h. */ - -#include -#include - -#ifdef _REENT_THREAD_LOCAL -_Thread_local int _tls_errno; -#else /* !_REENT_THREAD_LOCAL */ - -#ifndef _REENT_ONLY - -int * -__errno () -{ - return &_REENT_ERRNO(_REENT); -} - -#endif - -#endif /* _REENT_THREAD_LOCAL */ diff --git a/lib/iconv/Makefile.inc b/lib/iconv/Makefile.inc deleted file mode 100644 index 49585c7..0000000 --- a/lib/iconv/Makefile.inc +++ /dev/null @@ -1,28 +0,0 @@ -if ENABLE_NEWLIB_ICONV -cctdir = $(datadir)/iconv_data -cct_DATA = %D%/encoding.aliases -endif - -LIBC_CHAPTERS += %D%/iconv.tex - -## If mkdeps.pl or encodings.deps changes, make sure to regenerate outputs. -%C%_mkdeps_outputs = \ - $(top_srcdir)/iconv.m4 \ - $(srcdir)/%D%/ccs/ccsbi.c \ - $(srcdir)/%D%/ccs/ccsbi.h \ - $(srcdir)/%D%/ccs/ccsnames.h \ - $(srcdir)/%D%/ces/cesbi.c \ - $(srcdir)/%D%/ces/cesbi.h \ - $(srcdir)/%D%/ces/cesdeps.h \ - $(srcdir)/%D%/encoding.aliases \ - $(srcdir)/%D%/lib/aliasesbi.c \ - $(srcdir)/%D%/lib/encnames.h - -$(%C%_mkdeps_outputs): @MAINTAINER_MODE_TRUE@ $(srcdir)/%D%/ces/mkdeps.pl $(srcdir)/%D%/lib/encoding.deps - $(AM_V_GEN)cd $(srcdir)/%D%/ces && ./mkdeps.pl - -noinst_DATA += $(%C%_mkdeps_outputs) - -include %D%/ces/Makefile.inc -include %D%/ccs/Makefile.inc -include %D%/lib/Makefile.inc diff --git a/lib/iconv/ccs/Makefile.inc b/lib/iconv/ccs/Makefile.inc deleted file mode 100644 index 76da3c7..0000000 --- a/lib/iconv/ccs/Makefile.inc +++ /dev/null @@ -1,24 +0,0 @@ -if ENABLE_NEWLIB_ICONV - -## The following interfaces are EL/IX level 2 -if !ELIX_LEVEL_1 -libc_a_SOURCES += \ - %D%/ccsbi.c \ - %D%/iso_8859_10.c %D%/iso_8859_13.c %D%/iso_8859_14.c %D%/iso_8859_15.c \ - %D%/iso_8859_1.c %D%/iso_8859_2.c %D%/iso_8859_3.c %D%/iso_8859_4.c \ - %D%/iso_8859_5.c %D%/iso_8859_6.c %D%/iso_8859_7.c %D%/iso_8859_8.c \ - %D%/iso_8859_9.c %D%/iso_8859_11.c \ - %D%/win_1250.c %D%/win_1252.c %D%/win_1254.c \ - %D%/win_1256.c %D%/win_1258.c %D%/win_1251.c \ - %D%/win_1253.c %D%/win_1255.c %D%/win_1257.c \ - %D%/koi8_r.c %D%/koi8_u.c %D%/koi8_ru.c %D%/koi8_uni.c \ - %D%/iso_ir_111.c \ - %D%/big5.c \ - %D%/cp775.c %D%/cp850.c %D%/cp852.c %D%/cp855.c %D%/cp866.c \ - %D%/jis_x0212_1990.c %D%/jis_x0201_1976.c %D%/jis_x0208_1990.c %D%/ksx1001.c \ - %D%/cns11643_plane1.c %D%/cns11643_plane2.c %D%/cns11643_plane14.c -endif - -include %D%/binary/Makefile.inc - -endif diff --git a/lib/iconv/ccs/big5.c b/lib/iconv/ccs/big5.c deleted file mode 100644 index 02b20a1..0000000 --- a/lib/iconv/ccs/big5.c +++ /dev/null @@ -1,12615 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for big5 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_BIG5) \ - || defined (ICONV_FROM_UCS_CCS_BIG5) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -/* - * 16-bit big5 -> UCS speed-optimized table (45568 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_BIG5) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_speed_big5[] = -{ - /* Heading Block */ - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,0x0100,0x0200,0x0300,0x0400,0x0500,0x0600,0x0700, - 0x0800,0x0900,0x0A00,0x0B00,0x0C00,0x0D00,0x0E00,0x0F00, - 0x1000,0x1100,0x1200,0x1300,0x1400,0x1500,0x1600,0x1700, - 0x1800,0x1900,0x1A00,0x1B00,0x1C00,0x1D00,0x1E00,0x1F00, - 0x2000,0x2100,0x2200,0x2300,0x2400,0x2500,0x2600,0x2700, - INVBLK,0x2800,0x2900,0x2A00,0x2B00,0x2C00,0x2D00,0x2E00, - 0x2F00,0x3000,0x3100,0x3200,0x3300,0x3400,0x3500,0x3600, - 0x3700,0x3800,0x3900,0x3A00,0x3B00,0x3C00,0x3D00,0x3E00, - 0x3F00,0x4000,0x4100,0x4200,0x4300,0x4400,0x4500,0x4600, - 0x4700,0x4800,0x4900,0x4A00,0x4B00,0x4C00,0x4D00,0x4E00, - 0x4F00,0x5000,0x5100,0x5200,0x5300,0x5400,0x5500,0x5600, - 0x5700,0x5800,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - /* Block 162, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3000,0xFF0C,0x3001,0x3002,0xFF0E,0x2022,0xFF1B,0xFF1A, - 0xFF1F,0xFF01,0xFE30,0x2026,0x2025,0xFE50,0xFF64,0xFE52, - 0x00B7,0xFE54,0xFE55,0xFE56,0xFE57,0xFF5C,0x2013,0xFE31, - 0x2014,0xFE33,0xFFFD,0xFE34,0xFE4F,0xFF08,0xFF09,0xFE35, - 0xFE36,0xFF5B,0xFF5D,0xFE37,0xFE38,0x3014,0x3015,0xFE39, - 0xFE3A,0x3010,0x3011,0xFE3B,0xFE3C,0x300A,0x300B,0xFE3D, - 0xFE3E,0x3008,0x3009,0xFE3F,0xFE40,0x300C,0x300D,0xFE41, - 0xFE42,0x300E,0x300F,0xFE43,0xFE44,0xFE59,0xFE5A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xFE5B,0xFE5C,0xFE5D,0xFE5E,0x2018,0x2019,0x201C, - 0x201D,0x301D,0x301E,0x2035,0x2032,0xFF03,0xFF06,0xFF0A, - 0x203B,0x00A7,0x3003,0x25CB,0x25CF,0x25B3,0x25B2,0x25CE, - 0x2606,0x2605,0x25C7,0x25C6,0x25A1,0x25A0,0x25BD,0x25BC, - 0x32A3,0x2105,0x203E,0xFFFD,0xFF3F,0xFFFD,0xFE49,0xFE4A, - 0xFE4D,0xFE4E,0xFE4B,0xFE4C,0xFE5F,0xFE60,0xFE61,0xFF0B, - 0xFF0D,0x00D7,0x00F7,0x00B1,0x221A,0xFF1C,0xFF1E,0xFF1D, - 0x2266,0x2267,0x2260,0x221E,0x2252,0x2261,0xFE62,0xFE63, - 0xFE64,0xFE65,0xFE66,0x223C,0x2229,0x222A,0x22A5,0x2220, - 0x221F,0x22BF,0x33D2,0x33D1,0x222B,0x222E,0x2235,0x2234, - 0x2640,0x2642,0x2641,0x2609,0x2191,0x2193,0x2190,0x2192, - 0x2196,0x2197,0x2199,0x2198,0x2225,0x2223,0xFFFD,INVALC, - /* Block 163, Array index 0x0200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xFFFD,0xFF0F,0xFF3C,0xFF04,0x00A5,0x3012,0x00A2,0x00A3, - 0xFF05,0xFF20,0x2103,0x2109,0xFE69,0xFE6A,0xFE6B,0x33D5, - 0x339C,0x339D,0x339E,0x33CE,0x33A1,0x338E,0x338F,0x33C4, - 0x00B0,0x5159,0x515B,0x515E,0x515D,0x5161,0x5163,0x55E7, - 0x74E9,0x7CCE,0x2581,0x2582,0x2583,0x2584,0x2585,0x2586, - 0x2587,0x2588,0x258F,0x258E,0x258D,0x258C,0x258B,0x258A, - 0x2589,0x253C,0x2534,0x252C,0x2524,0x251C,0x2594,0x2500, - 0x2502,0x2595,0x250C,0x2510,0x2514,0x2518,0x256D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x256E,0x2570,0x256F,0x2550,0x255E,0x256A,0x2561, - 0x25E2,0x25E3,0x25E5,0x25E4,0x2571,0x2572,0x2573,0xFF10, - 0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,0xFF18, - 0xFF19,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166, - 0x2167,0x2168,0x2169,0x3021,0x3022,0x3023,0x3024,0x3025, - 0x3026,0x3027,0x3028,0x3029,0xFFFD,0x5344,0xFFFD,0xFF21, - 0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28,0xFF29, - 0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30,0xFF31, - 0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38,0xFF39, - 0xFF3A,0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47, - 0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F, - 0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,INVALC, - /* Block 164, Array index 0x0300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xFF57,0xFF58,0xFF59,0xFF5A,0x0391,0x0392,0x0393,0x0394, - 0x0395,0x0396,0x0397,0x0398,0x0399,0x039A,0x039B,0x039C, - 0x039D,0x039E,0x039F,0x03A0,0x03A1,0x03A3,0x03A4,0x03A5, - 0x03A6,0x03A7,0x03A8,0x03A9,0x03B1,0x03B2,0x03B3,0x03B4, - 0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,0x03BB,0x03BC, - 0x03BD,0x03BE,0x03BF,0x03C0,0x03C1,0x03C3,0x03C4,0x03C5, - 0x03C6,0x03C7,0x03C8,0x03C9,0x3105,0x3106,0x3107,0x3108, - 0x3109,0x310A,0x310B,0x310C,0x310D,0x310E,0x310F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116, - 0x3117,0x3118,0x3119,0x311A,0x311B,0x311C,0x311D,0x311E, - 0x311F,0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126, - 0x3127,0x3128,0x3129,0x02D9,0x02C9,0x02CA,0x02C7,0x02CB, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 165, Array index 0x0400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4E00,0x4E59,0x4E01,0x4E03,0x4E43,0x4E5D,0x4E86,0x4E8C, - 0x4EBA,0x513F,0x5165,0x516B,0x51E0,0x5200,0x5201,0x529B, - 0x5315,0x5341,0x535C,0x53C8,0x4E09,0x4E0B,0x4E08,0x4E0A, - 0x4E2B,0x4E38,0x51E1,0x4E45,0x4E48,0x4E5F,0x4E5E,0x4E8E, - 0x4EA1,0x5140,0x5203,0x52FA,0x5343,0x53C9,0x53E3,0x571F, - 0x58EB,0x5915,0x5927,0x5973,0x5B50,0x5B51,0x5B53,0x5BF8, - 0x5C0F,0x5C22,0x5C38,0x5C71,0x5DDD,0x5DE5,0x5DF1,0x5DF2, - 0x5DF3,0x5DFE,0x5E72,0x5EFE,0x5F0B,0x5F13,0x624D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E11,0x4E10,0x4E0D,0x4E2D,0x4E30,0x4E39,0x4E4B, - 0x5C39,0x4E88,0x4E91,0x4E95,0x4E92,0x4E94,0x4EA2,0x4EC1, - 0x4EC0,0x4EC3,0x4EC6,0x4EC7,0x4ECD,0x4ECA,0x4ECB,0x4EC4, - 0x5143,0x5141,0x5167,0x516D,0x516E,0x516C,0x5197,0x51F6, - 0x5206,0x5207,0x5208,0x52FB,0x52FE,0x52FF,0x5316,0x5339, - 0x5348,0x5347,0x5345,0x535E,0x5384,0x53CB,0x53CA,0x53CD, - 0x58EC,0x5929,0x592B,0x592A,0x592D,0x5B54,0x5C11,0x5C24, - 0x5C3A,0x5C6F,0x5DF4,0x5E7B,0x5EFF,0x5F14,0x5F15,0x5FC3, - 0x6208,0x6236,0x624B,0x624E,0x652F,0x6587,0x6597,0x65A4, - 0x65B9,0x65E5,0x66F0,0x6708,0x6728,0x6B20,0x6B62,0x6B79, - 0x6BCB,0x6BD4,0x6BDB,0x6C0F,0x6C34,0x706B,0x722A,0x7236, - 0x723B,0x7247,0x7259,0x725B,0x72AC,0x738B,0x4E19,INVALC, - /* Block 166, Array index 0x0500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4E16,0x4E15,0x4E14,0x4E18,0x4E3B,0x4E4D,0x4E4F,0x4E4E, - 0x4EE5,0x4ED8,0x4ED4,0x4ED5,0x4ED6,0x4ED7,0x4EE3,0x4EE4, - 0x4ED9,0x4EDE,0x5145,0x5144,0x5189,0x518A,0x51AC,0x51F9, - 0x51FA,0x51F8,0x520A,0x52A0,0x529F,0x5305,0x5306,0x5317, - 0x531D,0x4EDF,0x534A,0x5349,0x5361,0x5360,0x536F,0x536E, - 0x53BB,0x53EF,0x53E4,0x53F3,0x53EC,0x53EE,0x53E9,0x53E8, - 0x53FC,0x53F8,0x53F5,0x53EB,0x53E6,0x53EA,0x53F2,0x53F1, - 0x53F0,0x53E5,0x53ED,0x53FB,0x56DB,0x56DA,0x5916,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x592E,0x5931,0x5974,0x5976,0x5B55,0x5B83,0x5C3C, - 0x5DE8,0x5DE7,0x5DE6,0x5E02,0x5E03,0x5E73,0x5E7C,0x5F01, - 0x5F18,0x5F17,0x5FC5,0x620A,0x6253,0x6254,0x6252,0x6251, - 0x65A5,0x65E6,0x672E,0x672C,0x672A,0x672B,0x672D,0x6B63, - 0x6BCD,0x6C11,0x6C10,0x6C38,0x6C41,0x6C40,0x6C3E,0x72AF, - 0x7384,0x7389,0x74DC,0x74E6,0x7518,0x751F,0x7528,0x7529, - 0x7530,0x7531,0x7532,0x7533,0x758B,0x767D,0x76AE,0x76BF, - 0x76EE,0x77DB,0x77E2,0x77F3,0x793A,0x79BE,0x7A74,0x7ACB, - 0x4E1E,0x4E1F,0x4E52,0x4E53,0x4E69,0x4E99,0x4EA4,0x4EA6, - 0x4EA5,0x4EFF,0x4F09,0x4F19,0x4F0A,0x4F15,0x4F0D,0x4F10, - 0x4F11,0x4F0F,0x4EF2,0x4EF6,0x4EFB,0x4EF0,0x4EF3,0x4EFD, - 0x4F01,0x4F0B,0x5149,0x5147,0x5146,0x5148,0x5168,INVALC, - /* Block 167, Array index 0x0600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5171,0x518D,0x51B0,0x5217,0x5211,0x5212,0x520E,0x5216, - 0x52A3,0x5308,0x5321,0x5320,0x5370,0x5371,0x5409,0x540F, - 0x540C,0x540A,0x5410,0x5401,0x540B,0x5404,0x5411,0x540D, - 0x5408,0x5403,0x540E,0x5406,0x5412,0x56E0,0x56DE,0x56DD, - 0x5733,0x5730,0x5728,0x572D,0x572C,0x572F,0x5729,0x5919, - 0x591A,0x5937,0x5938,0x5984,0x5978,0x5983,0x597D,0x5979, - 0x5982,0x5981,0x5B57,0x5B58,0x5B87,0x5B88,0x5B85,0x5B89, - 0x5BFA,0x5C16,0x5C79,0x5DDE,0x5E06,0x5E76,0x5E74,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F0F,0x5F1B,0x5FD9,0x5FD6,0x620E,0x620C,0x620D, - 0x6210,0x6263,0x625B,0x6258,0x6536,0x65E9,0x65E8,0x65EC, - 0x65ED,0x66F2,0x66F3,0x6709,0x673D,0x6734,0x6731,0x6735, - 0x6B21,0x6B64,0x6B7B,0x6C16,0x6C5D,0x6C57,0x6C59,0x6C5F, - 0x6C60,0x6C50,0x6C55,0x6C61,0x6C5B,0x6C4D,0x6C4E,0x7070, - 0x725F,0x725D,0x767E,0x7AF9,0x7C73,0x7CF8,0x7F36,0x7F8A, - 0x7FBD,0x8001,0x8003,0x800C,0x8012,0x8033,0x807F,0x8089, - 0x808B,0x808C,0x81E3,0x81EA,0x81F3,0x81FC,0x820C,0x821B, - 0x821F,0x826E,0x8272,0x827E,0x866B,0x8840,0x884C,0x8863, - 0x897F,0x9621,0x4E32,0x4EA8,0x4F4D,0x4F4F,0x4F47,0x4F57, - 0x4F5E,0x4F34,0x4F5B,0x4F55,0x4F30,0x4F50,0x4F51,0x4F3D, - 0x4F3A,0x4F38,0x4F43,0x4F54,0x4F3C,0x4F46,0x4F63,INVALC, - /* Block 168, Array index 0x0700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4F5C,0x4F60,0x4F2F,0x4F4E,0x4F36,0x4F59,0x4F5D,0x4F48, - 0x4F5A,0x514C,0x514B,0x514D,0x5175,0x51B6,0x51B7,0x5225, - 0x5224,0x5229,0x522A,0x5228,0x52AB,0x52A9,0x52AA,0x52AC, - 0x5323,0x5373,0x5375,0x541D,0x542D,0x541E,0x543E,0x5426, - 0x544E,0x5427,0x5446,0x5443,0x5433,0x5448,0x5442,0x541B, - 0x5429,0x544A,0x5439,0x543B,0x5438,0x542E,0x5435,0x5436, - 0x5420,0x543C,0x5440,0x5431,0x542B,0x541F,0x542C,0x56EA, - 0x56F0,0x56E4,0x56EB,0x574A,0x5751,0x5740,0x574D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5747,0x574E,0x573E,0x5750,0x574F,0x573B,0x58EF, - 0x593E,0x599D,0x5992,0x59A8,0x599E,0x59A3,0x5999,0x5996, - 0x598D,0x59A4,0x5993,0x598A,0x59A5,0x5B5D,0x5B5C,0x5B5A, - 0x5B5B,0x5B8C,0x5B8B,0x5B8F,0x5C2C,0x5C40,0x5C41,0x5C3F, - 0x5C3E,0x5C90,0x5C91,0x5C94,0x5C8C,0x5DEB,0x5E0C,0x5E8F, - 0x5E87,0x5E8A,0x5EF7,0x5F04,0x5F1F,0x5F64,0x5F62,0x5F77, - 0x5F79,0x5FD8,0x5FCC,0x5FD7,0x5FCD,0x5FF1,0x5FEB,0x5FF8, - 0x5FEA,0x6212,0x6211,0x6284,0x6297,0x6296,0x6280,0x6276, - 0x6289,0x626D,0x628A,0x627C,0x627E,0x6279,0x6273,0x6292, - 0x626F,0x6298,0x626E,0x6295,0x6293,0x6291,0x6286,0x6539, - 0x653B,0x6538,0x65F1,0x66F4,0x675F,0x674E,0x674F,0x6750, - 0x6751,0x675C,0x6756,0x675E,0x6749,0x6746,0x6760,INVALC, - /* Block 169, Array index 0x0800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6753,0x6757,0x6B65,0x6BCF,0x6C42,0x6C5E,0x6C99,0x6C81, - 0x6C88,0x6C89,0x6C85,0x6C9B,0x6C6A,0x6C7A,0x6C90,0x6C70, - 0x6C8C,0x6C68,0x6C96,0x6C92,0x6C7D,0x6C83,0x6C72,0x6C7E, - 0x6C74,0x6C86,0x6C76,0x6C8D,0x6C94,0x6C98,0x6C82,0x7076, - 0x707C,0x707D,0x7078,0x7262,0x7261,0x7260,0x72C4,0x72C2, - 0x7396,0x752C,0x752B,0x7537,0x7538,0x7682,0x76EF,0x77E3, - 0x79C1,0x79C0,0x79BF,0x7A76,0x7CFB,0x7F55,0x8096,0x8093, - 0x809D,0x8098,0x809B,0x809A,0x80B2,0x826F,0x8292,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x828B,0x828D,0x898B,0x89D2,0x8A00,0x8C37,0x8C46, - 0x8C55,0x8C9D,0x8D64,0x8D70,0x8DB3,0x8EAB,0x8ECA,0x8F9B, - 0x8FB0,0x8FC2,0x8FC6,0x8FC5,0x8FC4,0x5DE1,0x9091,0x90A2, - 0x90AA,0x90A6,0x90A3,0x9149,0x91C6,0x91CC,0x9632,0x962E, - 0x9631,0x962A,0x962C,0x4E26,0x4E56,0x4E73,0x4E8B,0x4E9B, - 0x4E9E,0x4EAB,0x4EAC,0x4F6F,0x4F9D,0x4F8D,0x4F73,0x4F7F, - 0x4F6C,0x4F9B,0x4F8B,0x4F86,0x4F83,0x4F70,0x4F75,0x4F88, - 0x4F69,0x4F7B,0x4F96,0x4F7E,0x4F8F,0x4F91,0x4F7A,0x5154, - 0x5152,0x5155,0x5169,0x5177,0x5176,0x5178,0x51BD,0x51FD, - 0x523B,0x5238,0x5237,0x523A,0x5230,0x522E,0x5236,0x5241, - 0x52BE,0x52BB,0x5352,0x5354,0x5353,0x5351,0x5366,0x5377, - 0x5378,0x5379,0x53D6,0x53D4,0x53D7,0x5473,0x5475,INVALC, - /* Block 170, Array index 0x0900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5496,0x5478,0x5495,0x5480,0x547B,0x5477,0x5484,0x5492, - 0x5486,0x547C,0x5490,0x5471,0x5476,0x548C,0x549A,0x5462, - 0x5468,0x548B,0x547D,0x548E,0x56FA,0x5783,0x5777,0x576A, - 0x5769,0x5761,0x5766,0x5764,0x577C,0x591C,0x5949,0x5947, - 0x5948,0x5944,0x5954,0x59BE,0x59BB,0x59D4,0x59B9,0x59AE, - 0x59D1,0x59C6,0x59D0,0x59CD,0x59CB,0x59D3,0x59CA,0x59AF, - 0x59B3,0x59D2,0x59C5,0x5B5F,0x5B64,0x5B63,0x5B97,0x5B9A, - 0x5B98,0x5B9C,0x5B99,0x5B9B,0x5C1A,0x5C48,0x5C45,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C46,0x5CB7,0x5CA1,0x5CB8,0x5CA9,0x5CAB,0x5CB1, - 0x5CB3,0x5E18,0x5E1A,0x5E16,0x5E15,0x5E1B,0x5E11,0x5E78, - 0x5E9A,0x5E97,0x5E9C,0x5E95,0x5E96,0x5EF6,0x5F26,0x5F27, - 0x5F29,0x5F80,0x5F81,0x5F7F,0x5F7C,0x5FDD,0x5FE0,0x5FFD, - 0x5FF5,0x5FFF,0x600F,0x6014,0x602F,0x6035,0x6016,0x602A, - 0x6015,0x6021,0x6027,0x6029,0x602B,0x601B,0x6216,0x6215, - 0x623F,0x623E,0x6240,0x627F,0x62C9,0x62CC,0x62C4,0x62BF, - 0x62C2,0x62B9,0x62D2,0x62DB,0x62AB,0x62D3,0x62D4,0x62CB, - 0x62C8,0x62A8,0x62BD,0x62BC,0x62D0,0x62D9,0x62C7,0x62CD, - 0x62B5,0x62DA,0x62B1,0x62D8,0x62D6,0x62D7,0x62C6,0x62AC, - 0x62CE,0x653E,0x65A7,0x65BC,0x65FA,0x6614,0x6613,0x660C, - 0x6606,0x6602,0x660E,0x6600,0x660F,0x6615,0x660A,INVALC, - /* Block 171, Array index 0x0A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6607,0x670D,0x670B,0x676D,0x678B,0x6795,0x6771,0x679C, - 0x6773,0x6777,0x6787,0x679D,0x6797,0x676F,0x6770,0x677F, - 0x6789,0x677E,0x6790,0x6775,0x679A,0x6793,0x677C,0x676A, - 0x6772,0x6B23,0x6B66,0x6B67,0x6B7F,0x6C13,0x6C1B,0x6CE3, - 0x6CE8,0x6CF3,0x6CB1,0x6CCC,0x6CE5,0x6CB3,0x6CBD,0x6CBE, - 0x6CBC,0x6CE2,0x6CAB,0x6CD5,0x6CD3,0x6CB8,0x6CC4,0x6CB9, - 0x6CC1,0x6CAE,0x6CD7,0x6CC5,0x6CF1,0x6CBF,0x6CBB,0x6CE1, - 0x6CDB,0x6CCA,0x6CAC,0x6CEF,0x6CDC,0x6CD6,0x6CE0,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7095,0x708E,0x7092,0x708A,0x7099,0x722C,0x722D, - 0x7238,0x7248,0x7267,0x7269,0x72C0,0x72CE,0x72D9,0x72D7, - 0x72D0,0x73A9,0x73A8,0x739F,0x73AB,0x73A5,0x753D,0x759D, - 0x7599,0x759A,0x7684,0x76C2,0x76F2,0x76F4,0x77E5,0x77FD, - 0x793E,0x7940,0x7941,0x79C9,0x79C8,0x7A7A,0x7A79,0x7AFA, - 0x7CFE,0x7F54,0x7F8C,0x7F8B,0x8005,0x80BA,0x80A5,0x80A2, - 0x80B1,0x80A1,0x80AB,0x80A9,0x80B4,0x80AA,0x80AF,0x81E5, - 0x81FE,0x820D,0x82B3,0x829D,0x8299,0x82AD,0x82BD,0x829F, - 0x82B9,0x82B1,0x82AC,0x82A5,0x82AF,0x82B8,0x82A3,0x82B0, - 0x82BE,0x82B7,0x864E,0x8671,0x521D,0x8868,0x8ECB,0x8FCE, - 0x8FD4,0x8FD1,0x90B5,0x90B8,0x90B1,0x90B6,0x91C7,0x91D1, - 0x9577,0x9580,0x961C,0x9640,0x963F,0x963B,0x9644,INVALC, - /* Block 172, Array index 0x0B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x9642,0x96B9,0x96E8,0x9752,0x975E,0x4E9F,0x4EAD,0x4EAE, - 0x4FE1,0x4FB5,0x4FAF,0x4FBF,0x4FE0,0x4FD1,0x4FCF,0x4FDD, - 0x4FC3,0x4FB6,0x4FD8,0x4FDF,0x4FCA,0x4FD7,0x4FAE,0x4FD0, - 0x4FC4,0x4FC2,0x4FDA,0x4FCE,0x4FDE,0x4FB7,0x5157,0x5192, - 0x5191,0x51A0,0x524E,0x5243,0x524A,0x524D,0x524C,0x524B, - 0x5247,0x52C7,0x52C9,0x52C3,0x52C1,0x530D,0x5357,0x537B, - 0x539A,0x53DB,0x54AC,0x54C0,0x54A8,0x54CE,0x54C9,0x54B8, - 0x54A6,0x54B3,0x54C7,0x54C2,0x54BD,0x54AA,0x54C1,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x54C4,0x54C8,0x54AF,0x54AB,0x54B1,0x54BB,0x54A9, - 0x54A7,0x54BF,0x56FF,0x5782,0x578B,0x57A0,0x57A3,0x57A2, - 0x57CE,0x57AE,0x5793,0x5955,0x5951,0x594F,0x594E,0x5950, - 0x59DC,0x59D8,0x59FF,0x59E3,0x59E8,0x5A03,0x59E5,0x59EA, - 0x59DA,0x59E6,0x5A01,0x59FB,0x5B69,0x5BA3,0x5BA6,0x5BA4, - 0x5BA2,0x5BA5,0x5C01,0x5C4E,0x5C4F,0x5C4D,0x5C4B,0x5CD9, - 0x5CD2,0x5DF7,0x5E1D,0x5E25,0x5E1F,0x5E7D,0x5EA0,0x5EA6, - 0x5EFA,0x5F08,0x5F2D,0x5F65,0x5F88,0x5F85,0x5F8A,0x5F8B, - 0x5F87,0x5F8C,0x5F89,0x6012,0x601D,0x6020,0x6025,0x600E, - 0x6028,0x604D,0x6070,0x6068,0x6062,0x6046,0x6043,0x606C, - 0x606B,0x606A,0x6064,0x6241,0x62DC,0x6316,0x6309,0x62FC, - 0x62ED,0x6301,0x62EE,0x62FD,0x6307,0x62F1,0x62F7,INVALC, - /* Block 173, Array index 0x0C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x62EF,0x62EC,0x62FE,0x62F4,0x6311,0x6302,0x653F,0x6545, - 0x65AB,0x65BD,0x65E2,0x6625,0x662D,0x6620,0x6627,0x662F, - 0x661F,0x6628,0x6631,0x6624,0x66F7,0x67FF,0x67D3,0x67F1, - 0x67D4,0x67D0,0x67EC,0x67B6,0x67AF,0x67F5,0x67E9,0x67EF, - 0x67C4,0x67D1,0x67B4,0x67DA,0x67E5,0x67B8,0x67CF,0x67DE, - 0x67F3,0x67B0,0x67D9,0x67E2,0x67DD,0x67D2,0x6B6A,0x6B83, - 0x6B86,0x6BB5,0x6BD2,0x6BD7,0x6C1F,0x6CC9,0x6D0B,0x6D32, - 0x6D2A,0x6D41,0x6D25,0x6D0C,0x6D31,0x6D1E,0x6D17,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6D3B,0x6D3D,0x6D3E,0x6D36,0x6D1B,0x6CF5,0x6D39, - 0x6D27,0x6D38,0x6D29,0x6D2E,0x6D35,0x6D0E,0x6D2B,0x70AB, - 0x70BA,0x70B3,0x70AC,0x70AF,0x70AD,0x70B8,0x70AE,0x70A4, - 0x7230,0x7272,0x726F,0x7274,0x72E9,0x72E0,0x72E1,0x73B7, - 0x73CA,0x73BB,0x73B2,0x73CD,0x73C0,0x73B3,0x751A,0x752D, - 0x754F,0x754C,0x754E,0x754B,0x75AB,0x75A4,0x75A5,0x75A2, - 0x75A3,0x7678,0x7686,0x7687,0x7688,0x76C8,0x76C6,0x76C3, - 0x76C5,0x7701,0x76F9,0x76F8,0x7709,0x770B,0x76FE,0x76FC, - 0x7707,0x77DC,0x7802,0x7814,0x780C,0x780D,0x7946,0x7949, - 0x7948,0x7947,0x79B9,0x79BA,0x79D1,0x79D2,0x79CB,0x7A7F, - 0x7A81,0x7AFF,0x7AFD,0x7C7D,0x7D02,0x7D05,0x7D00,0x7D09, - 0x7D07,0x7D04,0x7D06,0x7F38,0x7F8E,0x7FBF,0x8004,INVALC, - /* Block 174, Array index 0x0D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8010,0x800D,0x8011,0x8036,0x80D6,0x80E5,0x80DA,0x80C3, - 0x80C4,0x80CC,0x80E1,0x80DB,0x80CE,0x80DE,0x80E4,0x80DD, - 0x81F4,0x8222,0x82E7,0x8303,0x8305,0x82E3,0x82DB,0x82E6, - 0x8304,0x82E5,0x8302,0x8309,0x82D2,0x82D7,0x82F1,0x8301, - 0x82DC,0x82D4,0x82D1,0x82DE,0x82D3,0x82DF,0x82EF,0x8306, - 0x8650,0x8679,0x867B,0x867A,0x884D,0x886B,0x8981,0x89D4, - 0x8A08,0x8A02,0x8A03,0x8C9E,0x8CA0,0x8D74,0x8D73,0x8DB4, - 0x8ECD,0x8ECC,0x8FF0,0x8FE6,0x8FE2,0x8FEA,0x8FE5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8FED,0x8FEB,0x8FE4,0x8FE8,0x90CA,0x90CE,0x90C1, - 0x90C3,0x914B,0x914A,0x91CD,0x9582,0x9650,0x964B,0x964C, - 0x964D,0x9762,0x9769,0x97CB,0x97ED,0x97F3,0x9801,0x98A8, - 0x98DB,0x98DF,0x9996,0x9999,0x4E58,0x4EB3,0x500C,0x500D, - 0x5023,0x4FEF,0x5026,0x5025,0x4FF8,0x5029,0x5016,0x5006, - 0x503C,0x501F,0x501A,0x5012,0x5011,0x4FFA,0x5000,0x5014, - 0x5028,0x4FF1,0x5021,0x500B,0x5019,0x5018,0x4FF3,0x4FEE, - 0x502D,0x502A,0x4FFE,0x502B,0x5009,0x517C,0x51A4,0x51A5, - 0x51A2,0x51CD,0x51CC,0x51C6,0x51CB,0x5256,0x525C,0x5254, - 0x525B,0x525D,0x532A,0x537F,0x539F,0x539D,0x53DF,0x54E8, - 0x5510,0x5501,0x5537,0x54FC,0x54E5,0x54F2,0x5506,0x54FA, - 0x5514,0x54E9,0x54ED,0x54E1,0x5509,0x54EE,0x54EA,INVALC, - /* Block 175, Array index 0x0E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x54E6,0x5527,0x5507,0x54FD,0x550F,0x5703,0x5704,0x57C2, - 0x57D4,0x57CB,0x57C3,0x5809,0x590F,0x5957,0x5958,0x595A, - 0x5A11,0x5A18,0x5A1C,0x5A1F,0x5A1B,0x5A13,0x59EC,0x5A20, - 0x5A23,0x5A29,0x5A25,0x5A0C,0x5A09,0x5B6B,0x5C58,0x5BB0, - 0x5BB3,0x5BB6,0x5BB4,0x5BAE,0x5BB5,0x5BB9,0x5BB8,0x5C04, - 0x5C51,0x5C55,0x5C50,0x5CED,0x5CFD,0x5CFB,0x5CEA,0x5CE8, - 0x5CF0,0x5CF6,0x5D01,0x5CF4,0x5DEE,0x5E2D,0x5E2B,0x5EAB, - 0x5EAD,0x5EA7,0x5F31,0x5F92,0x5F91,0x5F90,0x6059,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6063,0x6065,0x6050,0x6055,0x606D,0x6069,0x606F, - 0x6084,0x609F,0x609A,0x608D,0x6094,0x608C,0x6085,0x6096, - 0x6247,0x62F3,0x6308,0x62FF,0x634E,0x633E,0x632F,0x6355, - 0x6342,0x6346,0x634F,0x6349,0x633A,0x6350,0x633D,0x632A, - 0x632B,0x6328,0x634D,0x634C,0x6548,0x6549,0x6599,0x65C1, - 0x65C5,0x6642,0x6649,0x664F,0x6643,0x6652,0x664C,0x6645, - 0x6641,0x66F8,0x6714,0x6715,0x6717,0x6821,0x6838,0x6848, - 0x6846,0x6853,0x6839,0x6842,0x6854,0x6829,0x68B3,0x6817, - 0x684C,0x6851,0x683D,0x67F4,0x6850,0x6840,0x683C,0x6843, - 0x682A,0x6845,0x6813,0x6818,0x6841,0x6B8A,0x6B89,0x6BB7, - 0x6C23,0x6C27,0x6C28,0x6C26,0x6C24,0x6CF0,0x6D6A,0x6D95, - 0x6D88,0x6D87,0x6D66,0x6D78,0x6D77,0x6D59,0x6D93,INVALC, - /* Block 176, Array index 0x0F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6D6C,0x6D89,0x6D6E,0x6D5A,0x6D74,0x6D69,0x6D8C,0x6D8A, - 0x6D79,0x6D85,0x6D65,0x6D94,0x70CA,0x70D8,0x70E4,0x70D9, - 0x70C8,0x70CF,0x7239,0x7279,0x72FC,0x72F9,0x72FD,0x72F8, - 0x72F7,0x7386,0x73ED,0x7409,0x73EE,0x73E0,0x73EA,0x73DE, - 0x7554,0x755D,0x755C,0x755A,0x7559,0x75BE,0x75C5,0x75C7, - 0x75B2,0x75B3,0x75BD,0x75BC,0x75B9,0x75C2,0x75B8,0x768B, - 0x76B0,0x76CA,0x76CD,0x76CE,0x7729,0x771F,0x7720,0x7728, - 0x77E9,0x7830,0x7827,0x7838,0x781D,0x7834,0x7837,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7825,0x782D,0x7820,0x781F,0x7832,0x7955,0x7950, - 0x7960,0x795F,0x7956,0x795E,0x795D,0x7957,0x795A,0x79E4, - 0x79E3,0x79E7,0x79DF,0x79E6,0x79E9,0x79D8,0x7A84,0x7A88, - 0x7AD9,0x7B06,0x7B11,0x7C89,0x7D21,0x7D17,0x7D0B,0x7D0A, - 0x7D20,0x7D22,0x7D14,0x7D10,0x7D15,0x7D1A,0x7D1C,0x7D0D, - 0x7D19,0x7D1B,0x7F3A,0x7F5F,0x7F94,0x7FC5,0x7FC1,0x8006, - 0x8018,0x8015,0x8019,0x8017,0x803D,0x803F,0x80F1,0x8102, - 0x80F0,0x8105,0x80ED,0x80F4,0x8106,0x80F8,0x80F3,0x8108, - 0x80FD,0x810A,0x80FC,0x80EF,0x81ED,0x81EC,0x8200,0x8210, - 0x822A,0x822B,0x8228,0x822C,0x82BB,0x832B,0x8352,0x8354, - 0x834A,0x8338,0x8350,0x8349,0x8335,0x8334,0x834F,0x8332, - 0x8339,0x8336,0x8317,0x8340,0x8331,0x8328,0x8343,INVALC, - /* Block 177, Array index 0x1000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8654,0x868A,0x86AA,0x8693,0x86A4,0x86A9,0x868C,0x86A3, - 0x869C,0x8870,0x8877,0x8881,0x8882,0x887D,0x8879,0x8A18, - 0x8A10,0x8A0E,0x8A0C,0x8A15,0x8A0A,0x8A17,0x8A13,0x8A16, - 0x8A0F,0x8A11,0x8C48,0x8C7A,0x8C79,0x8CA1,0x8CA2,0x8D77, - 0x8EAC,0x8ED2,0x8ED4,0x8ECF,0x8FB1,0x9001,0x9006,0x8FF7, - 0x9000,0x8FFA,0x8FF4,0x9003,0x8FFD,0x9005,0x8FF8,0x9095, - 0x90E1,0x90DD,0x90E2,0x9152,0x914D,0x914C,0x91D8,0x91DD, - 0x91D7,0x91DC,0x91D9,0x9583,0x9662,0x9663,0x9661,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x965B,0x965D,0x9664,0x9658,0x965E,0x96BB,0x98E2, - 0x99AC,0x9AA8,0x9AD8,0x9B25,0x9B32,0x9B3C,0x4E7E,0x507A, - 0x507D,0x505C,0x5047,0x5043,0x504C,0x505A,0x5049,0x5065, - 0x5076,0x504E,0x5055,0x5075,0x5074,0x5077,0x504F,0x500F, - 0x506F,0x506D,0x515C,0x5195,0x51F0,0x526A,0x526F,0x52D2, - 0x52D9,0x52D8,0x52D5,0x5310,0x530F,0x5319,0x533F,0x5340, - 0x533E,0x53C3,0x66FC,0x5546,0x556A,0x5566,0x5544,0x555E, - 0x5561,0x5543,0x554A,0x5531,0x5556,0x554F,0x5555,0x552F, - 0x5564,0x5538,0x552E,0x555C,0x552C,0x5563,0x5533,0x5541, - 0x5557,0x5708,0x570B,0x5709,0x57DF,0x5805,0x580A,0x5806, - 0x57E0,0x57E4,0x57FA,0x5802,0x5835,0x57F7,0x57F9,0x5920, - 0x5962,0x5A36,0x5A41,0x5A49,0x5A66,0x5A6A,0x5A40,INVALC, - /* Block 178, Array index 0x1100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5A3C,0x5A62,0x5A5A,0x5A46,0x5A4A,0x5B70,0x5BC7,0x5BC5, - 0x5BC4,0x5BC2,0x5BBF,0x5BC6,0x5C09,0x5C08,0x5C07,0x5C60, - 0x5C5C,0x5C5D,0x5D07,0x5D06,0x5D0E,0x5D1B,0x5D16,0x5D22, - 0x5D11,0x5D29,0x5D14,0x5D19,0x5D24,0x5D27,0x5D17,0x5DE2, - 0x5E38,0x5E36,0x5E33,0x5E37,0x5EB7,0x5EB8,0x5EB6,0x5EB5, - 0x5EBE,0x5F35,0x5F37,0x5F57,0x5F6C,0x5F69,0x5F6B,0x5F97, - 0x5F99,0x5F9E,0x5F98,0x5FA1,0x5FA0,0x5F9C,0x607F,0x60A3, - 0x6089,0x60A0,0x60A8,0x60CB,0x60B4,0x60E6,0x60BD,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x60C5,0x60BB,0x60B5,0x60DC,0x60BC,0x60D8,0x60D5, - 0x60C6,0x60DF,0x60B8,0x60DA,0x60C7,0x621A,0x621B,0x6248, - 0x63A0,0x63A7,0x6372,0x6396,0x63A2,0x63A5,0x6377,0x6367, - 0x6398,0x63AA,0x6371,0x63A9,0x6389,0x6383,0x639B,0x636B, - 0x63A8,0x6384,0x6388,0x6399,0x63A1,0x63AC,0x6392,0x638F, - 0x6380,0x637B,0x6369,0x6368,0x637A,0x655D,0x6556,0x6551, - 0x6559,0x6557,0x555F,0x654F,0x6558,0x6555,0x6554,0x659C, - 0x659B,0x65AC,0x65CF,0x65CB,0x65CC,0x65CE,0x665D,0x665A, - 0x6664,0x6668,0x6666,0x665E,0x66F9,0x52D7,0x671B,0x6881, - 0x68AF,0x68A2,0x6893,0x68B5,0x687F,0x6876,0x68B1,0x68A7, - 0x6897,0x68B0,0x6883,0x68C4,0x68AD,0x6886,0x6885,0x6894, - 0x689D,0x68A8,0x689F,0x68A1,0x6882,0x6B32,0x6BBA,INVALC, - /* Block 179, Array index 0x1200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6BEB,0x6BEC,0x6C2B,0x6D8E,0x6DBC,0x6DF3,0x6DD9,0x6DB2, - 0x6DE1,0x6DCC,0x6DE4,0x6DFB,0x6DFA,0x6E05,0x6DC7,0x6DCB, - 0x6DAF,0x6DD1,0x6DAE,0x6DDE,0x6DF9,0x6DB8,0x6DF7,0x6DF5, - 0x6DC5,0x6DD2,0x6E1A,0x6DB5,0x6DDA,0x6DEB,0x6DD8,0x6DEA, - 0x6DF1,0x6DEE,0x6DE8,0x6DC6,0x6DC4,0x6DAA,0x6DEC,0x6DBF, - 0x6DE6,0x70F9,0x7109,0x710A,0x70FD,0x70EF,0x723D,0x727D, - 0x7281,0x731C,0x731B,0x7316,0x7313,0x7319,0x7387,0x7405, - 0x740A,0x7403,0x7406,0x73FE,0x740D,0x74E0,0x74F6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x74F7,0x751C,0x7522,0x7565,0x7566,0x7562,0x7570, - 0x758F,0x75D4,0x75D5,0x75B5,0x75CA,0x75CD,0x768E,0x76D4, - 0x76D2,0x76DB,0x7737,0x773E,0x773C,0x7736,0x7738,0x773A, - 0x786B,0x7843,0x784E,0x7965,0x7968,0x796D,0x79FB,0x7A92, - 0x7A95,0x7B20,0x7B28,0x7B1B,0x7B2C,0x7B26,0x7B19,0x7B1E, - 0x7B2E,0x7C92,0x7C97,0x7C95,0x7D46,0x7D43,0x7D71,0x7D2E, - 0x7D39,0x7D3C,0x7D40,0x7D30,0x7D33,0x7D44,0x7D2F,0x7D42, - 0x7D32,0x7D31,0x7F3D,0x7F9E,0x7F9A,0x7FCC,0x7FCE,0x7FD2, - 0x801C,0x804A,0x8046,0x812F,0x8116,0x8123,0x812B,0x8129, - 0x8130,0x8124,0x8202,0x8235,0x8237,0x8236,0x8239,0x838E, - 0x839E,0x8398,0x8378,0x83A2,0x8396,0x83BD,0x83AB,0x8392, - 0x838A,0x8393,0x8389,0x83A0,0x8377,0x837B,0x837C,INVALC, - /* Block 180, Array index 0x1300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8386,0x83A7,0x8655,0x5F6A,0x86C7,0x86C0,0x86B6,0x86C4, - 0x86B5,0x86C6,0x86CB,0x86B1,0x86AF,0x86C9,0x8853,0x889E, - 0x8888,0x88AB,0x8892,0x8896,0x888D,0x888B,0x8993,0x898F, - 0x8A2A,0x8A1D,0x8A23,0x8A25,0x8A31,0x8A2D,0x8A1F,0x8A1B, - 0x8A22,0x8C49,0x8C5A,0x8CA9,0x8CAC,0x8CAB,0x8CA8,0x8CAA, - 0x8CA7,0x8D67,0x8D66,0x8DBE,0x8DBA,0x8EDB,0x8EDF,0x9019, - 0x900D,0x901A,0x9017,0x9023,0x901F,0x901D,0x9010,0x9015, - 0x901E,0x9020,0x900F,0x9022,0x9016,0x901B,0x9014,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x90E8,0x90ED,0x90FD,0x9157,0x91CE,0x91F5,0x91E6, - 0x91E3,0x91E7,0x91ED,0x91E9,0x9589,0x966A,0x9675,0x9673, - 0x9678,0x9670,0x9674,0x9676,0x9677,0x966C,0x96C0,0x96EA, - 0x96E9,0x7AE0,0x7ADF,0x9802,0x9803,0x9B5A,0x9CE5,0x9E75, - 0x9E7F,0x9EA5,0x9EBB,0x50A2,0x508D,0x5085,0x5099,0x5091, - 0x5080,0x5096,0x5098,0x509A,0x6700,0x51F1,0x5272,0x5274, - 0x5275,0x5269,0x52DE,0x52DD,0x52DB,0x535A,0x53A5,0x557B, - 0x5580,0x55A7,0x557C,0x558A,0x559D,0x5598,0x5582,0x559C, - 0x55AA,0x5594,0x5587,0x558B,0x5583,0x55B3,0x55AE,0x559F, - 0x553E,0x55B2,0x559A,0x55BB,0x55AC,0x55B1,0x557E,0x5589, - 0x55AB,0x5599,0x570D,0x582F,0x582A,0x5834,0x5824,0x5830, - 0x5831,0x5821,0x581D,0x5820,0x58F9,0x58FA,0x5960,INVALC, - /* Block 181, Array index 0x1400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5A77,0x5A9A,0x5A7F,0x5A92,0x5A9B,0x5AA7,0x5B73,0x5B71, - 0x5BD2,0x5BCC,0x5BD3,0x5BD0,0x5C0A,0x5C0B,0x5C31,0x5D4C, - 0x5D50,0x5D34,0x5D47,0x5DFD,0x5E45,0x5E3D,0x5E40,0x5E43, - 0x5E7E,0x5ECA,0x5EC1,0x5EC2,0x5EC4,0x5F3C,0x5F6D,0x5FA9, - 0x5FAA,0x5FA8,0x60D1,0x60E1,0x60B2,0x60B6,0x60E0,0x611C, - 0x6123,0x60FA,0x6115,0x60F0,0x60FB,0x60F4,0x6168,0x60F1, - 0x610E,0x60F6,0x6109,0x6100,0x6112,0x621F,0x6249,0x63A3, - 0x638C,0x63CF,0x63C0,0x63E9,0x63C9,0x63C6,0x63CD,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x63D2,0x63E3,0x63D0,0x63E1,0x63D6,0x63ED,0x63EE, - 0x6376,0x63F4,0x63EA,0x63DB,0x6452,0x63DA,0x63F9,0x655E, - 0x6566,0x6562,0x6563,0x6591,0x6590,0x65AF,0x666E,0x6670, - 0x6674,0x6676,0x666F,0x6691,0x667A,0x667E,0x6677,0x66FE, - 0x66FF,0x671F,0x671D,0x68FA,0x68D5,0x68E0,0x68D8,0x68D7, - 0x6905,0x68DF,0x68F5,0x68EE,0x68E7,0x68F9,0x68D2,0x68F2, - 0x68E3,0x68CB,0x68CD,0x690D,0x6912,0x690E,0x68C9,0x68DA, - 0x696E,0x68FB,0x6B3E,0x6B3A,0x6B3D,0x6B98,0x6B96,0x6BBC, - 0x6BEF,0x6C2E,0x6C2F,0x6C2C,0x6E2F,0x6E38,0x6E54,0x6E21, - 0x6E32,0x6E67,0x6E4A,0x6E20,0x6E25,0x6E23,0x6E1B,0x6E5B, - 0x6E58,0x6E24,0x6E56,0x6E6E,0x6E2D,0x6E26,0x6E6F,0x6E34, - 0x6E4D,0x6E3A,0x6E2C,0x6E43,0x6E1D,0x6E3E,0x6ECB,INVALC, - /* Block 182, Array index 0x1500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6E89,0x6E19,0x6E4E,0x6E63,0x6E44,0x6E72,0x6E69,0x6E5F, - 0x7119,0x711A,0x7126,0x7130,0x7121,0x7136,0x716E,0x711C, - 0x724C,0x7284,0x7280,0x7336,0x7325,0x7334,0x7329,0x743A, - 0x742A,0x7433,0x7422,0x7425,0x7435,0x7436,0x7434,0x742F, - 0x741B,0x7426,0x7428,0x7525,0x7526,0x756B,0x756A,0x75E2, - 0x75DB,0x75E3,0x75D9,0x75D8,0x75DE,0x75E0,0x767B,0x767C, - 0x7696,0x7693,0x76B4,0x76DC,0x774F,0x77ED,0x785D,0x786C, - 0x786F,0x7A0D,0x7A08,0x7A0B,0x7A05,0x7A00,0x7A98,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7A97,0x7A96,0x7AE5,0x7AE3,0x7B49,0x7B56,0x7B46, - 0x7B50,0x7B52,0x7B54,0x7B4D,0x7B4B,0x7B4F,0x7B51,0x7C9F, - 0x7CA5,0x7D5E,0x7D50,0x7D68,0x7D55,0x7D2B,0x7D6E,0x7D72, - 0x7D61,0x7D66,0x7D62,0x7D70,0x7D73,0x5584,0x7FD4,0x7FD5, - 0x800B,0x8052,0x8085,0x8155,0x8154,0x814B,0x8151,0x814E, - 0x8139,0x8146,0x813E,0x814C,0x8153,0x8174,0x8212,0x821C, - 0x83E9,0x8403,0x83F8,0x840D,0x83E0,0x83C5,0x840B,0x83C1, - 0x83EF,0x83F1,0x83F4,0x8457,0x840A,0x83F0,0x840C,0x83CC, - 0x83FD,0x83F2,0x83CA,0x8438,0x840E,0x8404,0x83DC,0x8407, - 0x83D4,0x83DF,0x865B,0x86DF,0x86D9,0x86ED,0x86D4,0x86DB, - 0x86E4,0x86D0,0x86DE,0x8857,0x88C1,0x88C2,0x88B1,0x8983, - 0x8996,0x8A3B,0x8A60,0x8A55,0x8A5E,0x8A3C,0x8A41,INVALC, - /* Block 183, Array index 0x1600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8A54,0x8A5B,0x8A50,0x8A46,0x8A34,0x8A3A,0x8A36,0x8A56, - 0x8C61,0x8C82,0x8CAF,0x8CBC,0x8CB3,0x8CBD,0x8CC1,0x8CBB, - 0x8CC0,0x8CB4,0x8CB7,0x8CB6,0x8CBF,0x8CB8,0x8D8A,0x8D85, - 0x8D81,0x8DCE,0x8DDD,0x8DCB,0x8DDA,0x8DD1,0x8DCC,0x8DDB, - 0x8DC6,0x8EFB,0x8EF8,0x8EFC,0x8F9C,0x902E,0x9035,0x9031, - 0x9038,0x9032,0x9036,0x9102,0x90F5,0x9109,0x90FE,0x9163, - 0x9165,0x91CF,0x9214,0x9215,0x9223,0x9209,0x921E,0x920D, - 0x9210,0x9207,0x9211,0x9594,0x958F,0x958B,0x9591,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9593,0x9592,0x958E,0x968A,0x968E,0x968B,0x967D, - 0x9685,0x9686,0x968D,0x9672,0x9684,0x96C1,0x96C5,0x96C4, - 0x96C6,0x96C7,0x96EF,0x96F2,0x97CC,0x9805,0x9806,0x9808, - 0x98E7,0x98EA,0x98EF,0x98E9,0x98F2,0x98ED,0x99AE,0x99AD, - 0x9EC3,0x9ECD,0x9ED1,0x4E82,0x50AD,0x50B5,0x50B2,0x50B3, - 0x50C5,0x50BE,0x50AC,0x50B7,0x50BB,0x50AF,0x50C7,0x527F, - 0x5277,0x527D,0x52DF,0x52E6,0x52E4,0x52E2,0x52E3,0x532F, - 0x55DF,0x55E8,0x55D3,0x55E6,0x55CE,0x55DC,0x55C7,0x55D1, - 0x55E3,0x55E4,0x55EF,0x55DA,0x55E1,0x55C5,0x55C6,0x55E5, - 0x55C9,0x5712,0x5713,0x585E,0x5851,0x5858,0x5857,0x585A, - 0x5854,0x586B,0x584C,0x586D,0x584A,0x5862,0x5852,0x584B, - 0x5967,0x5AC1,0x5AC9,0x5ACC,0x5ABE,0x5ABD,0x5ABC,INVALC, - /* Block 184, Array index 0x1700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5AB3,0x5AC2,0x5AB2,0x5D69,0x5D6F,0x5E4C,0x5E79,0x5EC9, - 0x5EC8,0x5F12,0x5F59,0x5FAC,0x5FAE,0x611A,0x610F,0x6148, - 0x611F,0x60F3,0x611B,0x60F9,0x6101,0x6108,0x614E,0x614C, - 0x6144,0x614D,0x613E,0x6134,0x6127,0x610D,0x6106,0x6137, - 0x6221,0x6222,0x6413,0x643E,0x641E,0x642A,0x642D,0x643D, - 0x642C,0x640F,0x641C,0x6414,0x640D,0x6436,0x6416,0x6417, - 0x6406,0x656C,0x659F,0x65B0,0x6697,0x6689,0x6687,0x6688, - 0x6696,0x6684,0x6698,0x668D,0x6703,0x6994,0x696D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x695A,0x6977,0x6960,0x6954,0x6975,0x6930,0x6982, - 0x694A,0x6968,0x696B,0x695E,0x6953,0x6979,0x6986,0x695D, - 0x6963,0x695B,0x6B47,0x6B72,0x6BC0,0x6BBF,0x6BD3,0x6BFD, - 0x6EA2,0x6EAF,0x6ED3,0x6EB6,0x6EC2,0x6E90,0x6E9D,0x6EC7, - 0x6EC5,0x6EA5,0x6E98,0x6EBC,0x6EBA,0x6EAB,0x6ED1,0x6E96, - 0x6E9C,0x6EC4,0x6ED4,0x6EAA,0x6EA7,0x6EB4,0x714E,0x7159, - 0x7169,0x7164,0x7149,0x7167,0x715C,0x716C,0x7166,0x714C, - 0x7165,0x715E,0x7146,0x7168,0x7156,0x723A,0x7252,0x7337, - 0x7345,0x733F,0x733E,0x746F,0x745A,0x7455,0x745F,0x745E, - 0x7441,0x743F,0x7459,0x745B,0x745C,0x7576,0x7578,0x7600, - 0x75F0,0x7601,0x75F2,0x75F1,0x75FA,0x75FF,0x75F4,0x75F3, - 0x76DE,0x76DF,0x775B,0x776B,0x7766,0x775E,0x7763,INVALC, - /* Block 185, Array index 0x1800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7779,0x776A,0x776C,0x775C,0x7765,0x7768,0x7762,0x77EE, - 0x788E,0x78B0,0x7897,0x7898,0x788C,0x7889,0x787C,0x7891, - 0x7893,0x787F,0x797A,0x797F,0x7981,0x842C,0x79BD,0x7A1C, - 0x7A1A,0x7A20,0x7A14,0x7A1F,0x7A1E,0x7A9F,0x7AA0,0x7B77, - 0x7BC0,0x7B60,0x7B6E,0x7B67,0x7CB1,0x7CB3,0x7CB5,0x7D93, - 0x7D79,0x7D91,0x7D81,0x7D8F,0x7D5B,0x7F6E,0x7F69,0x7F6A, - 0x7F72,0x7FA9,0x7FA8,0x7FA4,0x8056,0x8058,0x8086,0x8084, - 0x8171,0x8170,0x8178,0x8165,0x816E,0x8173,0x816B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8179,0x817A,0x8166,0x8205,0x8247,0x8482,0x8477, - 0x843D,0x8431,0x8475,0x8466,0x846B,0x8449,0x846C,0x845B, - 0x843C,0x8435,0x8461,0x8463,0x8469,0x846D,0x8446,0x865E, - 0x865C,0x865F,0x86F9,0x8713,0x8708,0x8707,0x8700,0x86FE, - 0x86FB,0x8702,0x8703,0x8706,0x870A,0x8859,0x88DF,0x88D4, - 0x88D9,0x88DC,0x88D8,0x88DD,0x88E1,0x88CA,0x88D5,0x88D2, - 0x899C,0x89E3,0x8A6B,0x8A72,0x8A73,0x8A66,0x8A69,0x8A70, - 0x8A87,0x8A7C,0x8A63,0x8AA0,0x8A71,0x8A85,0x8A6D,0x8A62, - 0x8A6E,0x8A6C,0x8A79,0x8A7B,0x8A3E,0x8A68,0x8C62,0x8C8A, - 0x8C89,0x8CCA,0x8CC7,0x8CC8,0x8CC4,0x8CB2,0x8CC3,0x8CC2, - 0x8CC5,0x8DE1,0x8DDF,0x8DE8,0x8DEF,0x8DF3,0x8DFA,0x8DEA, - 0x8DE4,0x8DE6,0x8EB2,0x8F03,0x8F09,0x8EFE,0x8F0A,INVALC, - /* Block 186, Array index 0x1900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8F9F,0x8FB2,0x904B,0x904A,0x9053,0x9042,0x9054,0x903C, - 0x9055,0x9050,0x9047,0x904F,0x904E,0x904D,0x9051,0x903E, - 0x9041,0x9112,0x9117,0x916C,0x916A,0x9169,0x91C9,0x9237, - 0x9257,0x9238,0x923D,0x9240,0x923E,0x925B,0x924B,0x9264, - 0x9251,0x9234,0x9249,0x924D,0x9245,0x9239,0x923F,0x925A, - 0x9598,0x9698,0x9694,0x9695,0x96CD,0x96CB,0x96C9,0x96CA, - 0x96F7,0x96FB,0x96F9,0x96F6,0x9756,0x9774,0x9776,0x9810, - 0x9811,0x9813,0x980A,0x9812,0x980C,0x98FC,0x98F4,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x98FD,0x98FE,0x99B3,0x99B1,0x99B4,0x9AE1,0x9CE9, - 0x9E82,0x9F0E,0x9F13,0x9F20,0x50E7,0x50EE,0x50E5,0x50D6, - 0x50ED,0x50DA,0x50D5,0x50CF,0x50D1,0x50F1,0x50CE,0x50E9, - 0x5162,0x51F3,0x5283,0x5282,0x5331,0x53AD,0x55FE,0x5600, - 0x561B,0x5617,0x55FD,0x5614,0x5606,0x5609,0x560D,0x560E, - 0x55F7,0x5616,0x561F,0x5608,0x5610,0x55F6,0x5718,0x5716, - 0x5875,0x587E,0x5883,0x5893,0x588A,0x5879,0x5885,0x587D, - 0x58FD,0x5925,0x5922,0x5924,0x596A,0x5969,0x5AE1,0x5AE6, - 0x5AE9,0x5AD7,0x5AD6,0x5AD8,0x5AE3,0x5B75,0x5BDE,0x5BE7, - 0x5BE1,0x5BE5,0x5BE6,0x5BE8,0x5BE2,0x5BE4,0x5BDF,0x5C0D, - 0x5C62,0x5D84,0x5D87,0x5E5B,0x5E63,0x5E55,0x5E57,0x5E54, - 0x5ED3,0x5ED6,0x5F0A,0x5F46,0x5F70,0x5FB9,0x6147,INVALC, - /* Block 187, Array index 0x1A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x613F,0x614B,0x6177,0x6162,0x6163,0x615F,0x615A,0x6158, - 0x6175,0x622A,0x6487,0x6458,0x6454,0x64A4,0x6478,0x645F, - 0x647A,0x6451,0x6467,0x6434,0x646D,0x647B,0x6572,0x65A1, - 0x65D7,0x65D6,0x66A2,0x66A8,0x669D,0x699C,0x69A8,0x6995, - 0x69C1,0x69AE,0x69D3,0x69CB,0x699B,0x69B7,0x69BB,0x69AB, - 0x69B4,0x69D0,0x69CD,0x69AD,0x69CC,0x69A6,0x69C3,0x69A3, - 0x6B49,0x6B4C,0x6C33,0x6F33,0x6F14,0x6EFE,0x6F13,0x6EF4, - 0x6F29,0x6F3E,0x6F20,0x6F2C,0x6F0F,0x6F02,0x6F22,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6EFF,0x6EEF,0x6F06,0x6F31,0x6F38,0x6F32,0x6F23, - 0x6F15,0x6F2B,0x6F2F,0x6F88,0x6F2A,0x6EEC,0x6F01,0x6EF2, - 0x6ECC,0x6EF7,0x7194,0x7199,0x717D,0x718A,0x7184,0x7192, - 0x723E,0x7292,0x7296,0x7344,0x7350,0x7464,0x7463,0x746A, - 0x7470,0x746D,0x7504,0x7591,0x7627,0x760D,0x760B,0x7609, - 0x7613,0x76E1,0x76E3,0x7784,0x777D,0x777F,0x7761,0x78C1, - 0x789F,0x78A7,0x78B3,0x78A9,0x78A3,0x798E,0x798F,0x798D, - 0x7A2E,0x7A31,0x7AAA,0x7AA9,0x7AED,0x7AEF,0x7BA1,0x7B95, - 0x7B8B,0x7B75,0x7B97,0x7B9D,0x7B94,0x7B8F,0x7BB8,0x7B87, - 0x7B84,0x7CB9,0x7CBD,0x7CBE,0x7DBB,0x7DB0,0x7D9C,0x7DBD, - 0x7DBE,0x7DA0,0x7DCA,0x7DB4,0x7DB2,0x7DB1,0x7DBA,0x7DA2, - 0x7DBF,0x7DB5,0x7DB8,0x7DAD,0x7DD2,0x7DC7,0x7DAC,INVALC, - /* Block 188, Array index 0x1B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7F70,0x7FE0,0x7FE1,0x7FDF,0x805E,0x805A,0x8087,0x8150, - 0x8180,0x818F,0x8188,0x818A,0x817F,0x8182,0x81E7,0x81FA, - 0x8207,0x8214,0x821E,0x824B,0x84C9,0x84BF,0x84C6,0x84C4, - 0x8499,0x849E,0x84B2,0x849C,0x84CB,0x84B8,0x84C0,0x84D3, - 0x8490,0x84BC,0x84D1,0x84CA,0x873F,0x871C,0x873B,0x8722, - 0x8725,0x8734,0x8718,0x8755,0x8737,0x8729,0x88F3,0x8902, - 0x88F4,0x88F9,0x88F8,0x88FD,0x88E8,0x891A,0x88EF,0x8AA6, - 0x8A8C,0x8A9E,0x8AA3,0x8A8D,0x8AA1,0x8A93,0x8AA4,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8AAA,0x8AA5,0x8AA8,0x8A98,0x8A91,0x8A9A,0x8AA7, - 0x8C6A,0x8C8D,0x8C8C,0x8CD3,0x8CD1,0x8CD2,0x8D6B,0x8D99, - 0x8D95,0x8DFC,0x8F14,0x8F12,0x8F15,0x8F13,0x8FA3,0x9060, - 0x9058,0x905C,0x9063,0x9059,0x905E,0x9062,0x905D,0x905B, - 0x9119,0x9118,0x911E,0x9175,0x9178,0x9177,0x9174,0x9278, - 0x9280,0x9285,0x9298,0x9296,0x927B,0x9293,0x929C,0x92A8, - 0x927C,0x9291,0x95A1,0x95A8,0x95A9,0x95A3,0x95A5,0x95A4, - 0x9699,0x969C,0x969B,0x96CC,0x96D2,0x9700,0x977C,0x9785, - 0x97F6,0x9817,0x9818,0x98AF,0x98B1,0x9903,0x9905,0x990C, - 0x9909,0x99C1,0x9AAF,0x9AB0,0x9AE6,0x9B41,0x9B42,0x9CF4, - 0x9CF6,0x9CF3,0x9EBC,0x9F3B,0x9F4A,0x5104,0x5100,0x50FB, - 0x50F5,0x50F9,0x5102,0x5108,0x5109,0x5105,0x51DC,INVALC, - /* Block 189, Array index 0x1C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5287,0x5288,0x5289,0x528D,0x528A,0x52F0,0x53B2,0x562E, - 0x563B,0x5639,0x5632,0x563F,0x5634,0x5629,0x5653,0x564E, - 0x5657,0x5674,0x5636,0x562F,0x5630,0x5880,0x589F,0x589E, - 0x58B3,0x589C,0x58AE,0x58A9,0x58A6,0x596D,0x5B09,0x5AFB, - 0x5B0B,0x5AF5,0x5B0C,0x5B08,0x5BEE,0x5BEC,0x5BE9,0x5BEB, - 0x5C64,0x5C65,0x5D9D,0x5D94,0x5E62,0x5E5F,0x5E61,0x5EE2, - 0x5EDA,0x5EDF,0x5EDD,0x5EE3,0x5EE0,0x5F48,0x5F71,0x5FB7, - 0x5FB5,0x6176,0x6167,0x616E,0x615D,0x6155,0x6182,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x617C,0x6170,0x616B,0x617E,0x61A7,0x6190,0x61AB, - 0x618E,0x61AC,0x619A,0x61A4,0x6194,0x61AE,0x622E,0x6469, - 0x646F,0x6479,0x649E,0x64B2,0x6488,0x6490,0x64B0,0x64A5, - 0x6493,0x6495,0x64A9,0x6492,0x64AE,0x64AD,0x64AB,0x649A, - 0x64AC,0x6499,0x64A2,0x64B3,0x6575,0x6577,0x6578,0x66AE, - 0x66AB,0x66B4,0x66B1,0x6A23,0x6A1F,0x69E8,0x6A01,0x6A1E, - 0x6A19,0x69FD,0x6A21,0x6A13,0x6A0A,0x69F3,0x6A02,0x6A05, - 0x69ED,0x6A11,0x6B50,0x6B4E,0x6BA4,0x6BC5,0x6BC6,0x6F3F, - 0x6F7C,0x6F84,0x6F51,0x6F66,0x6F54,0x6F86,0x6F6D,0x6F5B, - 0x6F78,0x6F6E,0x6F8E,0x6F7A,0x6F70,0x6F64,0x6F97,0x6F58, - 0x6ED5,0x6F6F,0x6F60,0x6F5F,0x719F,0x71AC,0x71B1,0x71A8, - 0x7256,0x729B,0x734E,0x7357,0x7469,0x748B,0x7483,INVALC, - /* Block 190, Array index 0x1D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x747E,0x7480,0x757F,0x7620,0x7629,0x761F,0x7624,0x7626, - 0x7621,0x7622,0x769A,0x76BA,0x76E4,0x778E,0x7787,0x778C, - 0x7791,0x778B,0x78CB,0x78C5,0x78BA,0x78CA,0x78BE,0x78D5, - 0x78BC,0x78D0,0x7A3F,0x7A3C,0x7A40,0x7A3D,0x7A37,0x7A3B, - 0x7AAF,0x7AAE,0x7BAD,0x7BB1,0x7BC4,0x7BB4,0x7BC6,0x7BC7, - 0x7BC1,0x7BA0,0x7BCC,0x7CCA,0x7DE0,0x7DF4,0x7DEF,0x7DFB, - 0x7DD8,0x7DEC,0x7DDD,0x7DE8,0x7DE3,0x7DDA,0x7DDE,0x7DE9, - 0x7D9E,0x7DD9,0x7DF2,0x7DF9,0x7F75,0x7F77,0x7FAF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7FE9,0x8026,0x819B,0x819C,0x819D,0x81A0,0x819A, - 0x8198,0x8517,0x853D,0x851A,0x84EE,0x852C,0x852D,0x8513, - 0x8511,0x8523,0x8521,0x8514,0x84EC,0x8525,0x84FF,0x8506, - 0x8782,0x8774,0x8776,0x8760,0x8766,0x8778,0x8768,0x8759, - 0x8757,0x874C,0x8753,0x885B,0x885D,0x8910,0x8907,0x8912, - 0x8913,0x8915,0x890A,0x8ABC,0x8AD2,0x8AC7,0x8AC4,0x8A95, - 0x8ACB,0x8AF8,0x8AB2,0x8AC9,0x8AC2,0x8ABF,0x8AB0,0x8AD6, - 0x8ACD,0x8AB6,0x8AB9,0x8ADB,0x8C4C,0x8C4E,0x8C6C,0x8CE0, - 0x8CDE,0x8CE6,0x8CE4,0x8CEC,0x8CED,0x8CE2,0x8CE3,0x8CDC, - 0x8CEA,0x8CE1,0x8D6D,0x8D9F,0x8DA3,0x8E2B,0x8E10,0x8E1D, - 0x8E22,0x8E0F,0x8E29,0x8E1F,0x8E21,0x8E1E,0x8EBA,0x8F1D, - 0x8F1B,0x8F1F,0x8F29,0x8F26,0x8F2A,0x8F1C,0x8F1E,INVALC, - /* Block 191, Array index 0x1E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8F25,0x9069,0x906E,0x9068,0x906D,0x9077,0x9130,0x912D, - 0x9127,0x9131,0x9187,0x9189,0x918B,0x9183,0x92C5,0x92BB, - 0x92B7,0x92EA,0x92AC,0x92E4,0x92C1,0x92B3,0x92BC,0x92D2, - 0x92C7,0x92F0,0x92B2,0x95AD,0x95B1,0x9704,0x9706,0x9707, - 0x9709,0x9760,0x978D,0x978B,0x978F,0x9821,0x982B,0x981C, - 0x98B3,0x990A,0x9913,0x9912,0x9918,0x99DD,0x99D0,0x99DF, - 0x99DB,0x99D1,0x99D5,0x99D2,0x99D9,0x9AB7,0x9AEE,0x9AEF, - 0x9B27,0x9B45,0x9B44,0x9B77,0x9B6F,0x9D06,0x9D09,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9D03,0x9EA9,0x9EBE,0x9ECE,0x58A8,0x9F52,0x5112, - 0x5118,0x5114,0x5110,0x5115,0x5180,0x51AA,0x51DD,0x5291, - 0x5293,0x52F3,0x5659,0x566B,0x5679,0x5669,0x5664,0x5678, - 0x566A,0x5668,0x5665,0x5671,0x566F,0x566C,0x5662,0x5676, - 0x58C1,0x58BE,0x58C7,0x58C5,0x596E,0x5B1D,0x5B34,0x5B78, - 0x5BF0,0x5C0E,0x5F4A,0x61B2,0x6191,0x61A9,0x618A,0x61CD, - 0x61B6,0x61BE,0x61CA,0x61C8,0x6230,0x64C5,0x64C1,0x64CB, - 0x64BB,0x64BC,0x64DA,0x64C4,0x64C7,0x64C2,0x64CD,0x64BF, - 0x64D2,0x64D4,0x64BE,0x6574,0x66C6,0x66C9,0x66B9,0x66C4, - 0x66C7,0x66B8,0x6A3D,0x6A38,0x6A3A,0x6A59,0x6A6B,0x6A58, - 0x6A39,0x6A44,0x6A62,0x6A61,0x6A4B,0x6A47,0x6A35,0x6A5F, - 0x6A48,0x6B59,0x6B77,0x6C05,0x6FC2,0x6FB1,0x6FA1,INVALC, - /* Block 192, Array index 0x1F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6FC3,0x6FA4,0x6FC1,0x6FA7,0x6FB3,0x6FC0,0x6FB9,0x6FB6, - 0x6FA6,0x6FA0,0x6FB4,0x71BE,0x71C9,0x71D0,0x71D2,0x71C8, - 0x71D5,0x71B9,0x71CE,0x71D9,0x71DC,0x71C3,0x71C4,0x7368, - 0x749C,0x74A3,0x7498,0x749F,0x749E,0x74E2,0x750C,0x750D, - 0x7634,0x7638,0x763A,0x76E7,0x76E5,0x77A0,0x779E,0x779F, - 0x77A5,0x78E8,0x78DA,0x78EC,0x78E7,0x79A6,0x7A4D,0x7A4E, - 0x7A46,0x7A4C,0x7A4B,0x7ABA,0x7BD9,0x7C11,0x7BC9,0x7BE4, - 0x7BDB,0x7BE1,0x7BE9,0x7BE6,0x7CD5,0x7CD6,0x7E0A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7E11,0x7E08,0x7E1B,0x7E23,0x7E1E,0x7E1D,0x7E09, - 0x7E10,0x7F79,0x7FB2,0x7FF0,0x7FF1,0x7FEE,0x8028,0x81B3, - 0x81A9,0x81A8,0x81FB,0x8208,0x8258,0x8259,0x854A,0x8559, - 0x8548,0x8568,0x8569,0x8543,0x8549,0x856D,0x856A,0x855E, - 0x8783,0x879F,0x879E,0x87A2,0x878D,0x8861,0x892A,0x8932, - 0x8925,0x892B,0x8921,0x89AA,0x89A6,0x8AE6,0x8AFA,0x8AEB, - 0x8AF1,0x8B00,0x8ADC,0x8AE7,0x8AEE,0x8AFE,0x8B01,0x8B02, - 0x8AF7,0x8AED,0x8AF3,0x8AF6,0x8AFC,0x8C6B,0x8C6D,0x8C93, - 0x8CF4,0x8E44,0x8E31,0x8E34,0x8E42,0x8E39,0x8E35,0x8F3B, - 0x8F2F,0x8F38,0x8F33,0x8FA8,0x8FA6,0x9075,0x9074,0x9078, - 0x9072,0x907C,0x907A,0x9134,0x9192,0x9320,0x9336,0x92F8, - 0x9333,0x932F,0x9322,0x92FC,0x932B,0x9304,0x931A,INVALC, - /* Block 193, Array index 0x2000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x9310,0x9326,0x9321,0x9315,0x932E,0x9319,0x95BB,0x96A7, - 0x96A8,0x96AA,0x96D5,0x970E,0x9711,0x9716,0x970D,0x9713, - 0x970F,0x975B,0x975C,0x9766,0x9798,0x9830,0x9838,0x983B, - 0x9837,0x982D,0x9839,0x9824,0x9910,0x9928,0x991E,0x991B, - 0x9921,0x991A,0x99ED,0x99E2,0x99F1,0x9AB8,0x9ABC,0x9AFB, - 0x9AED,0x9B28,0x9B91,0x9D15,0x9D23,0x9D26,0x9D28,0x9D12, - 0x9D1B,0x9ED8,0x9ED4,0x9F8D,0x9F9C,0x512A,0x511F,0x5121, - 0x5132,0x52F5,0x568E,0x5680,0x5690,0x5685,0x5687,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x568F,0x58D5,0x58D3,0x58D1,0x58CE,0x5B30,0x5B2A, - 0x5B24,0x5B7A,0x5C37,0x5C68,0x5DBC,0x5DBA,0x5DBD,0x5DB8, - 0x5E6B,0x5F4C,0x5FBD,0x61C9,0x61C2,0x61C7,0x61E6,0x61CB, - 0x6232,0x6234,0x64CE,0x64CA,0x64D8,0x64E0,0x64F0,0x64E6, - 0x64EC,0x64F1,0x64E2,0x64ED,0x6582,0x6583,0x66D9,0x66D6, - 0x6A80,0x6A94,0x6A84,0x6AA2,0x6A9C,0x6ADB,0x6AA3,0x6A7E, - 0x6A97,0x6A90,0x6AA0,0x6B5C,0x6BAE,0x6BDA,0x6C08,0x6FD8, - 0x6FF1,0x6FDF,0x6FE0,0x6FDB,0x6FE4,0x6FEB,0x6FEF,0x6F80, - 0x6FEC,0x6FE1,0x6FE9,0x6FD5,0x6FEE,0x6FF0,0x71E7,0x71DF, - 0x71EE,0x71E6,0x71E5,0x71ED,0x71EC,0x71F4,0x71E0,0x7235, - 0x7246,0x7370,0x7372,0x74A9,0x74B0,0x74A6,0x74A8,0x7646, - 0x7642,0x764C,0x76EA,0x77B3,0x77AA,0x77B0,0x77AC,INVALC, - /* Block 194, Array index 0x2100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x77A7,0x77AD,0x77EF,0x78F7,0x78FA,0x78F4,0x78EF,0x7901, - 0x79A7,0x79AA,0x7A57,0x7ABF,0x7C07,0x7C0D,0x7BFE,0x7BF7, - 0x7C0C,0x7BE0,0x7CE0,0x7CDC,0x7CDE,0x7CE2,0x7CDF,0x7CD9, - 0x7CDD,0x7E2E,0x7E3E,0x7E46,0x7E37,0x7E32,0x7E43,0x7E2B, - 0x7E3D,0x7E31,0x7E45,0x7E41,0x7E34,0x7E39,0x7E48,0x7E35, - 0x7E3F,0x7E2F,0x7F44,0x7FF3,0x7FFC,0x8071,0x8072,0x8070, - 0x806F,0x8073,0x81C6,0x81C3,0x81BA,0x81C2,0x81C0,0x81BF, - 0x81BD,0x81C9,0x81BE,0x81E8,0x8209,0x8271,0x85AA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8584,0x857E,0x859C,0x8591,0x8594,0x85AF,0x859B, - 0x8587,0x85A8,0x858A,0x8667,0x87C0,0x87D1,0x87B3,0x87D2, - 0x87C6,0x87AB,0x87BB,0x87BA,0x87C8,0x87CB,0x893B,0x8936, - 0x8944,0x8938,0x893D,0x89AC,0x8B0E,0x8B17,0x8B19,0x8B1B, - 0x8B0A,0x8B20,0x8B1D,0x8B04,0x8B10,0x8C41,0x8C3F,0x8C73, - 0x8CFA,0x8CFD,0x8CFC,0x8CF8,0x8CFB,0x8DA8,0x8E49,0x8E4B, - 0x8E48,0x8E4A,0x8F44,0x8F3E,0x8F42,0x8F45,0x8F3F,0x907F, - 0x907D,0x9084,0x9081,0x9082,0x9080,0x9139,0x91A3,0x919E, - 0x919C,0x934D,0x9382,0x9328,0x9375,0x934A,0x9365,0x934B, - 0x9318,0x937E,0x936C,0x935B,0x9370,0x935A,0x9354,0x95CA, - 0x95CB,0x95CC,0x95C8,0x95C6,0x96B1,0x96B8,0x96D6,0x971C, - 0x971E,0x97A0,0x97D3,0x9846,0x98B6,0x9935,0x9A01,INVALC, - /* Block 195, Array index 0x2200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x99FF,0x9BAE,0x9BAB,0x9BAA,0x9BAD,0x9D3B,0x9D3F,0x9E8B, - 0x9ECF,0x9EDE,0x9EDC,0x9EDD,0x9EDB,0x9F3E,0x9F4B,0x53E2, - 0x5695,0x56AE,0x58D9,0x58D8,0x5B38,0x5F5D,0x61E3,0x6233, - 0x64F4,0x64F2,0x64FE,0x6506,0x64FA,0x64FB,0x64F7,0x65B7, - 0x66DC,0x6726,0x6AB3,0x6AAC,0x6AC3,0x6ABB,0x6AB8,0x6AC2, - 0x6AAE,0x6AAF,0x6B5F,0x6B78,0x6BAF,0x7009,0x700B,0x6FFE, - 0x7006,0x6FFA,0x7011,0x700F,0x71FB,0x71FC,0x71FE,0x71F8, - 0x7377,0x7375,0x74A7,0x74BF,0x7515,0x7656,0x7658,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7652,0x77BD,0x77BF,0x77BB,0x77BC,0x790E,0x79AE, - 0x7A61,0x7A62,0x7A60,0x7AC4,0x7AC5,0x7C2B,0x7C27,0x7C2A, - 0x7C1E,0x7C23,0x7C21,0x7CE7,0x7E54,0x7E55,0x7E5E,0x7E5A, - 0x7E61,0x7E52,0x7E59,0x7F48,0x7FF9,0x7FFB,0x8077,0x8076, - 0x81CD,0x81CF,0x820A,0x85CF,0x85A9,0x85CD,0x85D0,0x85C9, - 0x85B0,0x85BA,0x85B9,0x85A6,0x87EF,0x87EC,0x87F2,0x87E0, - 0x8986,0x89B2,0x89F4,0x8B28,0x8B39,0x8B2C,0x8B2B,0x8C50, - 0x8D05,0x8E59,0x8E63,0x8E66,0x8E64,0x8E5F,0x8E55,0x8EC0, - 0x8F49,0x8F4D,0x9087,0x9083,0x9088,0x91AB,0x91AC,0x91D0, - 0x9394,0x938A,0x9396,0x93A2,0x93B3,0x93AE,0x93AC,0x93B0, - 0x9398,0x939A,0x9397,0x95D4,0x95D6,0x95D0,0x95D5,0x96E2, - 0x96DC,0x96D9,0x96DB,0x96DE,0x9724,0x97A3,0x97A6,INVALC, - /* Block 196, Array index 0x2300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x97AD,0x97F9,0x984D,0x984F,0x984C,0x984E,0x9853,0x98BA, - 0x993E,0x993F,0x993D,0x992E,0x99A5,0x9A0E,0x9AC1,0x9B03, - 0x9B06,0x9B4F,0x9B4E,0x9B4D,0x9BCA,0x9BC9,0x9BFD,0x9BC8, - 0x9BC0,0x9D51,0x9D5D,0x9D60,0x9EE0,0x9F15,0x9F2C,0x5133, - 0x56A5,0x58DE,0x58DF,0x58E2,0x5BF5,0x9F90,0x5EEC,0x61F2, - 0x61F7,0x61F6,0x61F5,0x6500,0x650F,0x66E0,0x66DD,0x6AE5, - 0x6ADD,0x6ADA,0x6AD3,0x701B,0x701F,0x7028,0x701A,0x701D, - 0x7015,0x7018,0x7206,0x720D,0x7258,0x72A2,0x7378,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x737A,0x74BD,0x74CA,0x74E3,0x7587,0x7586,0x765F, - 0x7661,0x77C7,0x7919,0x79B1,0x7A6B,0x7A69,0x7C3E,0x7C3F, - 0x7C38,0x7C3D,0x7C37,0x7C40,0x7E6B,0x7E6D,0x7E79,0x7E69, - 0x7E6A,0x7F85,0x7E73,0x7FB6,0x7FB9,0x7FB8,0x81D8,0x85E9, - 0x85DD,0x85EA,0x85D5,0x85E4,0x85E5,0x85F7,0x87FB,0x8805, - 0x880D,0x87F9,0x87FE,0x8960,0x895F,0x8956,0x895E,0x8B41, - 0x8B5C,0x8B58,0x8B49,0x8B5A,0x8B4E,0x8B4F,0x8B46,0x8B59, - 0x8D08,0x8D0A,0x8E7C,0x8E72,0x8E87,0x8E76,0x8E6C,0x8E7A, - 0x8E74,0x8F54,0x8F4E,0x8FAD,0x908A,0x908B,0x91B1,0x91AE, - 0x93E1,0x93D1,0x93DF,0x93C3,0x93C8,0x93DC,0x93DD,0x93D6, - 0x93E2,0x93CD,0x93D8,0x93E4,0x93D7,0x93E8,0x95DC,0x96B4, - 0x96E3,0x972A,0x9727,0x9761,0x97DC,0x97FB,0x985E,INVALC, - /* Block 197, Array index 0x2400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x9858,0x985B,0x98BC,0x9945,0x9949,0x9A16,0x9A19,0x9B0D, - 0x9BE8,0x9BE7,0x9BD6,0x9BDB,0x9D89,0x9D61,0x9D72,0x9D6A, - 0x9D6C,0x9E92,0x9E97,0x9E93,0x9EB4,0x52F8,0x56A8,0x56B7, - 0x56B6,0x56B4,0x56BC,0x58E4,0x5B40,0x5B43,0x5B7D,0x5BF6, - 0x5DC9,0x61F8,0x61FA,0x6518,0x6514,0x6519,0x66E6,0x6727, - 0x6AEC,0x703E,0x7030,0x7032,0x7210,0x737B,0x74CF,0x7662, - 0x7665,0x7926,0x792A,0x792C,0x792B,0x7AC7,0x7AF6,0x7C4C, - 0x7C43,0x7C4D,0x7CEF,0x7CF0,0x8FAE,0x7E7D,0x7E7C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7E82,0x7F4C,0x8000,0x81DA,0x8266,0x85FB,0x85F9, - 0x8611,0x85FA,0x8606,0x860B,0x8607,0x860A,0x8814,0x8815, - 0x8964,0x89BA,0x89F8,0x8B70,0x8B6C,0x8B66,0x8B6F,0x8B5F, - 0x8B6B,0x8D0F,0x8D0D,0x8E89,0x8E81,0x8E85,0x8E82,0x91B4, - 0x91CB,0x9418,0x9403,0x93FD,0x95E1,0x9730,0x98C4,0x9952, - 0x9951,0x99A8,0x9A2B,0x9A30,0x9A37,0x9A35,0x9C13,0x9C0D, - 0x9E79,0x9EB5,0x9EE8,0x9F2F,0x9F5F,0x9F63,0x9F61,0x5137, - 0x5138,0x56C1,0x56C0,0x56C2,0x5914,0x5C6C,0x5DCD,0x61FC, - 0x61FE,0x651D,0x651C,0x6595,0x66E9,0x6AFB,0x6B04,0x6AFA, - 0x6BB2,0x704C,0x721B,0x72A7,0x74D6,0x74D4,0x7669,0x77D3, - 0x7C50,0x7E8F,0x7E8C,0x7FBC,0x8617,0x862D,0x861A,0x8823, - 0x8822,0x8821,0x881F,0x896A,0x896C,0x89BD,0x8B74,INVALC, - /* Block 198, Array index 0x2500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8B77,0x8B7D,0x8D13,0x8E8A,0x8E8D,0x8E8B,0x8F5F,0x8FAF, - 0x91BA,0x942E,0x9433,0x9435,0x943A,0x9438,0x9432,0x942B, - 0x95E2,0x9738,0x9739,0x9732,0x97FF,0x9867,0x9865,0x9957, - 0x9A45,0x9A43,0x9A40,0x9A3E,0x9ACF,0x9B54,0x9B51,0x9C2D, - 0x9C25,0x9DAF,0x9DB4,0x9DC2,0x9DB8,0x9E9D,0x9EEF,0x9F19, - 0x9F5C,0x9F66,0x9F67,0x513C,0x513B,0x56C8,0x56CA,0x56C9, - 0x5B7F,0x5DD4,0x5DD2,0x5F4E,0x61FF,0x6524,0x6B0A,0x6B61, - 0x7051,0x7058,0x7380,0x74E4,0x758A,0x766E,0x766C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x79B3,0x7C60,0x7C5F,0x807E,0x807D,0x81DF,0x8972, - 0x896F,0x89FC,0x8B80,0x8D16,0x8D17,0x8E91,0x8E93,0x8F61, - 0x9148,0x9444,0x9451,0x9452,0x973D,0x973E,0x97C3,0x97C1, - 0x986B,0x9955,0x9A55,0x9A4D,0x9AD2,0x9B1A,0x9C49,0x9C31, - 0x9C3E,0x9C3B,0x9DD3,0x9DD7,0x9F34,0x9F6C,0x9F6A,0x9F94, - 0x56CC,0x5DD6,0x6200,0x6523,0x652B,0x652A,0x66EC,0x6B10, - 0x74DA,0x7ACA,0x7C64,0x7C63,0x7C65,0x7E93,0x7E96,0x7E94, - 0x81E2,0x8638,0x863F,0x8831,0x8B8A,0x9090,0x908F,0x9463, - 0x9460,0x9464,0x9768,0x986F,0x995C,0x9A5A,0x9A5B,0x9A57, - 0x9AD3,0x9AD4,0x9AD1,0x9C54,0x9C57,0x9C56,0x9DE5,0x9E9F, - 0x9EF4,0x56D1,0x58E9,0x652C,0x705E,0x7671,0x7672,0x77D7, - 0x7F50,0x7F88,0x8836,0x8839,0x8862,0x8B93,0x8B92,INVALC, - /* Block 199, Array index 0x2600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8B96,0x8277,0x8D1B,0x91C0,0x946A,0x9742,0x9748,0x9744, - 0x97C6,0x9870,0x9A5F,0x9B22,0x9B58,0x9C5F,0x9DF9,0x9DFA, - 0x9E7C,0x9E7D,0x9F07,0x9F77,0x9F72,0x5EF3,0x6B16,0x7063, - 0x7C6C,0x7C6E,0x883B,0x89C0,0x8EA1,0x91C1,0x9472,0x9470, - 0x9871,0x995E,0x9AD6,0x9B23,0x9ECC,0x7064,0x77DA,0x8B9A, - 0x9477,0x97C9,0x9A62,0x9A65,0x7E9C,0x8B9C,0x8EAA,0x91C5, - 0x947D,0x947E,0x947C,0x9C77,0x9C78,0x9EF7,0x8C54,0x947F, - 0x9E1A,0x7228,0x9A6A,0x9B31,0x9E1B,0x9E1E,0x7C72,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x30FE,0x309D,0x309E,0x3005,0x3041,0x3042,0x3043, - 0x3044,0x3045,0x3046,0x3047,0x3048,0x3049,0x304A,0x304B, - 0x304C,0x304D,0x304E,0x304F,0x3050,0x3051,0x3052,0x3053, - 0x3054,0x3055,0x3056,0x3057,0x3058,0x3059,0x305A,0x305B, - 0x305C,0x305D,0x305E,0x305F,0x3060,0x3061,0x3062,0x3063, - 0x3064,0x3065,0x3066,0x3067,0x3068,0x3069,0x306A,0x306B, - 0x306C,0x306D,0x306E,0x306F,0x3070,0x3071,0x3072,0x3073, - 0x3074,0x3075,0x3076,0x3077,0x3078,0x3079,0x307A,0x307B, - 0x307C,0x307D,0x307E,0x307F,0x3080,0x3081,0x3082,0x3083, - 0x3084,0x3085,0x3086,0x3087,0x3088,0x3089,0x308A,0x308B, - 0x308C,0x308D,0x308E,0x308F,0x3090,0x3091,0x3092,0x3093, - 0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7,INVALC, - /* Block 200, Array index 0x2700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x30A8,0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF, - 0x30B0,0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7, - 0x30B8,0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF, - 0x30C0,0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7, - 0x30C8,0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF, - 0x30D0,0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7, - 0x30D8,0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF, - 0x30E0,0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x30E7,0x30E8,0x30E9,0x30EA,0x30EB,0x30EC,0x30ED, - 0x30EE,0x30EF,0x30F0,0x30F1,0x30F2,0x30F3,0x30F4,0x30F5, - 0x30F6,0x0414,0x0415,0x0401,0x0416,0x0417,0x0418,0x0419, - 0x041A,0x041B,0x041C,0x0423,0x0424,0x0425,0x0426,0x0427, - 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, - 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,0x0436, - 0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, - 0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446, - 0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E, - 0x044F,0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466, - 0x2467,0x2468,0x2469,0x2474,0x2475,0x2476,0x2477,0x2478, - 0x2479,0x247A,0x247B,0x247C,0x247D,INVALC,INVALC,INVALC, - /* Block 202, Array index 0x2800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4E42,0x4E5C,0x51F5,0x531A,0x5382,0x4E07,0x4E0C,0x4E47, - 0x4E8D,0x56D7,0xFA0C,0x5C6E,0x5F73,0x4E0F,0x5187,0x4E0E, - 0x4E2E,0x4E93,0x4EC2,0x4EC9,0x4EC8,0x5198,0x52FC,0x536C, - 0x53B9,0x5720,0x5903,0x592C,0x5C10,0x5DFF,0x65E1,0x6BB3, - 0x6BCC,0x6C14,0x723F,0x4E31,0x4E3C,0x4EE8,0x4EDC,0x4EE9, - 0x4EE1,0x4EDD,0x4EDA,0x520C,0x531C,0x534C,0x5722,0x5723, - 0x5917,0x592F,0x5B81,0x5B84,0x5C12,0x5C3B,0x5C74,0x5C73, - 0x5E04,0x5E80,0x5E82,0x5FC9,0x6209,0x6250,0x6C15,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6C36,0x6C43,0x6C3F,0x6C3B,0x72AE,0x72B0,0x738A, - 0x79B8,0x808A,0x961E,0x4F0E,0x4F18,0x4F2C,0x4EF5,0x4F14, - 0x4EF1,0x4F00,0x4EF7,0x4F08,0x4F1D,0x4F02,0x4F05,0x4F22, - 0x4F13,0x4F04,0x4EF4,0x4F12,0x51B1,0x5213,0x5209,0x5210, - 0x52A6,0x5322,0x531F,0x534D,0x538A,0x5407,0x56E1,0x56DF, - 0x572E,0x572A,0x5734,0x593C,0x5980,0x597C,0x5985,0x597B, - 0x597E,0x5977,0x597F,0x5B56,0x5C15,0x5C25,0x5C7C,0x5C7A, - 0x5C7B,0x5C7E,0x5DDF,0x5E75,0x5E84,0x5F02,0x5F1A,0x5F74, - 0x5FD5,0x5FD4,0x5FCF,0x625C,0x625E,0x6264,0x6261,0x6266, - 0x6262,0x6259,0x6260,0x625A,0x6265,0x65EF,0x65EE,0x673E, - 0x6739,0x6738,0x673B,0x673A,0x673F,0x673C,0x6733,0x6C18, - 0x6C46,0x6C52,0x6C5C,0x6C4F,0x6C4A,0x6C54,0x6C4B,INVALC, - /* Block 203, Array index 0x2900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6C4C,0x7071,0x725E,0x72B4,0x72B5,0x738E,0x752A,0x767F, - 0x7A75,0x7F51,0x8278,0x827C,0x8280,0x827D,0x827F,0x864D, - 0x897E,0x9099,0x9097,0x9098,0x909B,0x9094,0x9622,0x9624, - 0x9620,0x9623,0x4F56,0x4F3B,0x4F62,0x4F49,0x4F53,0x4F64, - 0x4F3E,0x4F67,0x4F52,0x4F5F,0x4F41,0x4F58,0x4F2D,0x4F33, - 0x4F3F,0x4F61,0x518F,0x51B9,0x521C,0x521E,0x5221,0x52AD, - 0x52AE,0x5309,0x5363,0x5372,0x538E,0x538F,0x5430,0x5437, - 0x542A,0x5454,0x5445,0x5419,0x541C,0x5425,0x5418,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x543D,0x544F,0x5441,0x5428,0x5424,0x5447,0x56EE, - 0x56E7,0x56E5,0x5741,0x5745,0x574C,0x5749,0x574B,0x5752, - 0x5906,0x5940,0x59A6,0x5998,0x59A0,0x5997,0x598E,0x59A2, - 0x5990,0x598F,0x59A7,0x59A1,0x5B8E,0x5B92,0x5C28,0x5C2A, - 0x5C8D,0x5C8F,0x5C88,0x5C8B,0x5C89,0x5C92,0x5C8A,0x5C86, - 0x5C93,0x5C95,0x5DE0,0x5E0A,0x5E0E,0x5E8B,0x5E89,0x5E8C, - 0x5E88,0x5E8D,0x5F05,0x5F1D,0x5F78,0x5F76,0x5FD2,0x5FD1, - 0x5FD0,0x5FED,0x5FE8,0x5FEE,0x5FF3,0x5FE1,0x5FE4,0x5FE3, - 0x5FFA,0x5FEF,0x5FF7,0x5FFB,0x6000,0x5FF4,0x623A,0x6283, - 0x628C,0x628E,0x628F,0x6294,0x6287,0x6271,0x627B,0x627A, - 0x6270,0x6281,0x6288,0x6277,0x627D,0x6272,0x6274,0x6537, - 0x65F0,0x65F4,0x65F3,0x65F2,0x65F5,0x6745,0x6747,INVALC, - /* Block 204, Array index 0x2A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6759,0x6755,0x674C,0x6748,0x675D,0x674D,0x675A,0x674B, - 0x6BD0,0x6C19,0x6C1A,0x6C78,0x6C67,0x6C6B,0x6C84,0x6C8B, - 0x6C8F,0x6C71,0x6C6F,0x6C69,0x6C9A,0x6C6D,0x6C87,0x6C95, - 0x6C9C,0x6C66,0x6C73,0x6C65,0x6C7B,0x6C8E,0x7074,0x707A, - 0x7263,0x72BF,0x72BD,0x72C3,0x72C6,0x72C1,0x72BA,0x72C5, - 0x7395,0x7397,0x7393,0x7394,0x7392,0x753A,0x7539,0x7594, - 0x7595,0x7681,0x793D,0x8034,0x8095,0x8099,0x8090,0x8092, - 0x809C,0x8290,0x828F,0x8285,0x828E,0x8291,0x8293,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x828A,0x8283,0x8284,0x8C78,0x8FC9,0x8FBF,0x909F, - 0x90A1,0x90A5,0x909E,0x90A7,0x90A0,0x9630,0x9628,0x962F, - 0x962D,0x4E33,0x4F98,0x4F7C,0x4F85,0x4F7D,0x4F80,0x4F87, - 0x4F76,0x4F74,0x4F89,0x4F84,0x4F77,0x4F4C,0x4F97,0x4F6A, - 0x4F9A,0x4F79,0x4F81,0x4F78,0x4F90,0x4F9C,0x4F94,0x4F9E, - 0x4F92,0x4F82,0x4F95,0x4F6B,0x4F6E,0x519E,0x51BC,0x51BE, - 0x5235,0x5232,0x5233,0x5246,0x5231,0x52BC,0x530A,0x530B, - 0x533C,0x5392,0x5394,0x5487,0x547F,0x5481,0x5491,0x5482, - 0x5488,0x546B,0x547A,0x547E,0x5465,0x546C,0x5474,0x5466, - 0x548D,0x546F,0x5461,0x5460,0x5498,0x5463,0x5467,0x5464, - 0x56F7,0x56F9,0x576F,0x5772,0x576D,0x576B,0x5771,0x5770, - 0x5776,0x5780,0x5775,0x577B,0x5773,0x5774,0x5762,INVALC, - /* Block 205, Array index 0x2B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5768,0x577D,0x590C,0x5945,0x59B5,0x59BA,0x59CF,0x59CE, - 0x59B2,0x59CC,0x59C1,0x59B6,0x59BC,0x59C3,0x59D6,0x59B1, - 0x59BD,0x59C0,0x59C8,0x59B4,0x59C7,0x5B62,0x5B65,0x5B93, - 0x5B95,0x5C44,0x5C47,0x5CAE,0x5CA4,0x5CA0,0x5CB5,0x5CAF, - 0x5CA8,0x5CAC,0x5C9F,0x5CA3,0x5CAD,0x5CA2,0x5CAA,0x5CA7, - 0x5C9D,0x5CA5,0x5CB6,0x5CB0,0x5CA6,0x5E17,0x5E14,0x5E19, - 0x5F28,0x5F22,0x5F23,0x5F24,0x5F54,0x5F82,0x5F7E,0x5F7D, - 0x5FDE,0x5FE5,0x602D,0x6026,0x6019,0x6032,0x600B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6034,0x600A,0x6017,0x6033,0x601A,0x601E,0x602C, - 0x6022,0x600D,0x6010,0x602E,0x6013,0x6011,0x600C,0x6009, - 0x601C,0x6214,0x623D,0x62AD,0x62B4,0x62D1,0x62BE,0x62AA, - 0x62B6,0x62CA,0x62AE,0x62B3,0x62AF,0x62BB,0x62A9,0x62B0, - 0x62B8,0x653D,0x65A8,0x65BB,0x6609,0x65FC,0x6604,0x6612, - 0x6608,0x65FB,0x6603,0x660B,0x660D,0x6605,0x65FD,0x6611, - 0x6610,0x66F6,0x670A,0x6785,0x676C,0x678E,0x6792,0x6776, - 0x677B,0x6798,0x6786,0x6784,0x6774,0x678D,0x678C,0x677A, - 0x679F,0x6791,0x6799,0x6783,0x677D,0x6781,0x6778,0x6779, - 0x6794,0x6B25,0x6B80,0x6B7E,0x6BDE,0x6C1D,0x6C93,0x6CEC, - 0x6CEB,0x6CEE,0x6CD9,0x6CB6,0x6CD4,0x6CAD,0x6CE7,0x6CB7, - 0x6CD0,0x6CC2,0x6CBA,0x6CC3,0x6CC6,0x6CED,0x6CF2,INVALC, - /* Block 206, Array index 0x2C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6CD2,0x6CDD,0x6CB4,0x6C8A,0x6C9D,0x6C80,0x6CDE,0x6CC0, - 0x6D30,0x6CCD,0x6CC7,0x6CB0,0x6CF9,0x6CCF,0x6CE9,0x6CD1, - 0x7094,0x7098,0x7085,0x7093,0x7086,0x7084,0x7091,0x7096, - 0x7082,0x709A,0x7083,0x726A,0x72D6,0x72CB,0x72D8,0x72C9, - 0x72DC,0x72D2,0x72D4,0x72DA,0x72CC,0x72D1,0x73A4,0x73A1, - 0x73AD,0x73A6,0x73A2,0x73A0,0x73AC,0x739D,0x74DD,0x74E8, - 0x753F,0x7540,0x753E,0x758C,0x7598,0x76AF,0x76F3,0x76F1, - 0x76F0,0x76F5,0x77F8,0x77FC,0x77F9,0x77FB,0x77FA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x77F7,0x7942,0x793F,0x79C5,0x7A78,0x7A7B,0x7AFB, - 0x7C75,0x7CFD,0x8035,0x808F,0x80AE,0x80A3,0x80B8,0x80B5, - 0x80AD,0x8220,0x82A0,0x82C0,0x82AB,0x829A,0x8298,0x829B, - 0x82B5,0x82A7,0x82AE,0x82BC,0x829E,0x82BA,0x82B4,0x82A8, - 0x82A1,0x82A9,0x82C2,0x82A4,0x82C3,0x82B6,0x82A2,0x8670, - 0x866F,0x866D,0x866E,0x8C56,0x8FD2,0x8FCB,0x8FD3,0x8FCD, - 0x8FD6,0x8FD5,0x8FD7,0x90B2,0x90B4,0x90AF,0x90B3,0x90B0, - 0x9639,0x963D,0x963C,0x963A,0x9643,0x4FCD,0x4FC5,0x4FD3, - 0x4FB2,0x4FC9,0x4FCB,0x4FC1,0x4FD4,0x4FDC,0x4FD9,0x4FBB, - 0x4FB3,0x4FDB,0x4FC7,0x4FD6,0x4FBA,0x4FC0,0x4FB9,0x4FEC, - 0x5244,0x5249,0x52C0,0x52C2,0x533D,0x537C,0x5397,0x5396, - 0x5399,0x5398,0x54BA,0x54A1,0x54AD,0x54A5,0x54CF,INVALC, - /* Block 207, Array index 0x2D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x54C3,0x830D,0x54B7,0x54AE,0x54D6,0x54B6,0x54C5,0x54C6, - 0x54A0,0x5470,0x54BC,0x54A2,0x54BE,0x5472,0x54DE,0x54B0, - 0x57B5,0x579E,0x579F,0x57A4,0x578C,0x5797,0x579D,0x579B, - 0x5794,0x5798,0x578F,0x5799,0x57A5,0x579A,0x5795,0x58F4, - 0x590D,0x5953,0x59E1,0x59DE,0x59EE,0x5A00,0x59F1,0x59DD, - 0x59FA,0x59FD,0x59FC,0x59F6,0x59E4,0x59F2,0x59F7,0x59DB, - 0x59E9,0x59F3,0x59F5,0x59E0,0x59FE,0x59F4,0x59ED,0x5BA8, - 0x5C4C,0x5CD0,0x5CD8,0x5CCC,0x5CD7,0x5CCB,0x5CDB,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5CDE,0x5CDA,0x5CC9,0x5CC7,0x5CCA,0x5CD6,0x5CD3, - 0x5CD4,0x5CCF,0x5CC8,0x5CC6,0x5CCE,0x5CDF,0x5CF8,0x5DF9, - 0x5E21,0x5E22,0x5E23,0x5E20,0x5E24,0x5EB0,0x5EA4,0x5EA2, - 0x5E9B,0x5EA3,0x5EA5,0x5F07,0x5F2E,0x5F56,0x5F86,0x6037, - 0x6039,0x6054,0x6072,0x605E,0x6045,0x6053,0x6047,0x6049, - 0x605B,0x604C,0x6040,0x6042,0x605F,0x6024,0x6044,0x6058, - 0x6066,0x606E,0x6242,0x6243,0x62CF,0x630D,0x630B,0x62F5, - 0x630E,0x6303,0x62EB,0x62F9,0x630F,0x630C,0x62F8,0x62F6, - 0x6300,0x6313,0x6314,0x62FA,0x6315,0x62FB,0x62F0,0x6541, - 0x6543,0x65AA,0x65BF,0x6636,0x6621,0x6632,0x6635,0x661C, - 0x6626,0x6622,0x6633,0x662B,0x663A,0x661D,0x6634,0x6639, - 0x662E,0x670F,0x6710,0x67C1,0x67F2,0x67C8,0x67BA,INVALC, - /* Block 208, Array index 0x2E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x67DC,0x67BB,0x67F8,0x67D8,0x67C0,0x67B7,0x67C5,0x67EB, - 0x67E4,0x67DF,0x67B5,0x67CD,0x67B3,0x67F7,0x67F6,0x67EE, - 0x67E3,0x67C2,0x67B9,0x67CE,0x67E7,0x67F0,0x67B2,0x67FC, - 0x67C6,0x67ED,0x67CC,0x67AE,0x67E6,0x67DB,0x67FA,0x67C9, - 0x67CA,0x67C3,0x67EA,0x67CB,0x6B28,0x6B82,0x6B84,0x6BB6, - 0x6BD6,0x6BD8,0x6BE0,0x6C20,0x6C21,0x6D28,0x6D34,0x6D2D, - 0x6D1F,0x6D3C,0x6D3F,0x6D12,0x6D0A,0x6CDA,0x6D33,0x6D04, - 0x6D19,0x6D3A,0x6D1A,0x6D11,0x6D00,0x6D1D,0x6D42,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6D01,0x6D18,0x6D37,0x6D03,0x6D0F,0x6D40,0x6D07, - 0x6D20,0x6D2C,0x6D08,0x6D22,0x6D09,0x6D10,0x70B7,0x709F, - 0x70BE,0x70B1,0x70B0,0x70A1,0x70B4,0x70B5,0x70A9,0x7241, - 0x7249,0x724A,0x726C,0x7270,0x7273,0x726E,0x72CA,0x72E4, - 0x72E8,0x72EB,0x72DF,0x72EA,0x72E6,0x72E3,0x7385,0x73CC, - 0x73C2,0x73C8,0x73C5,0x73B9,0x73B6,0x73B5,0x73B4,0x73EB, - 0x73BF,0x73C7,0x73BE,0x73C3,0x73C6,0x73B8,0x73CB,0x74EC, - 0x74EE,0x752E,0x7547,0x7548,0x75A7,0x75AA,0x7679,0x76C4, - 0x7708,0x7703,0x7704,0x7705,0x770A,0x76F7,0x76FB,0x76FA, - 0x77E7,0x77E8,0x7806,0x7811,0x7812,0x7805,0x7810,0x780F, - 0x780E,0x7809,0x7803,0x7813,0x794A,0x794C,0x794B,0x7945, - 0x7944,0x79D5,0x79CD,0x79CF,0x79D6,0x79CE,0x7A80,INVALC, - /* Block 209, Array index 0x2F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7A7E,0x7AD1,0x7B00,0x7B01,0x7C7A,0x7C78,0x7C79,0x7C7F, - 0x7C80,0x7C81,0x7D03,0x7D08,0x7D01,0x7F58,0x7F91,0x7F8D, - 0x7FBE,0x8007,0x800E,0x800F,0x8014,0x8037,0x80D8,0x80C7, - 0x80E0,0x80D1,0x80C8,0x80C2,0x80D0,0x80C5,0x80E3,0x80D9, - 0x80DC,0x80CA,0x80D5,0x80C9,0x80CF,0x80D7,0x80E6,0x80CD, - 0x81FF,0x8221,0x8294,0x82D9,0x82FE,0x82F9,0x8307,0x82E8, - 0x8300,0x82D5,0x833A,0x82EB,0x82D6,0x82F4,0x82EC,0x82E1, - 0x82F2,0x82F5,0x830C,0x82FB,0x82F6,0x82F0,0x82EA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x82E4,0x82E0,0x82FA,0x82F3,0x82ED,0x8677,0x8674, - 0x867C,0x8673,0x8841,0x884E,0x8867,0x886A,0x8869,0x89D3, - 0x8A04,0x8A07,0x8D72,0x8FE3,0x8FE1,0x8FEE,0x8FE0,0x90F1, - 0x90BD,0x90BF,0x90D5,0x90C5,0x90BE,0x90C7,0x90CB,0x90C8, - 0x91D4,0x91D3,0x9654,0x964F,0x9651,0x9653,0x964A,0x964E, - 0x501E,0x5005,0x5007,0x5013,0x5022,0x5030,0x501B,0x4FF5, - 0x4FF4,0x5033,0x5037,0x502C,0x4FF6,0x4FF7,0x5017,0x501C, - 0x5020,0x5027,0x5035,0x502F,0x5031,0x500E,0x515A,0x5194, - 0x5193,0x51CA,0x51C4,0x51C5,0x51C8,0x51CE,0x5261,0x525A, - 0x5252,0x525E,0x525F,0x5255,0x5262,0x52CD,0x530E,0x539E, - 0x5526,0x54E2,0x5517,0x5512,0x54E7,0x54F3,0x54E4,0x551A, - 0x54FF,0x5504,0x5508,0x54EB,0x5511,0x5505,0x54F1,INVALC, - /* Block 210, Array index 0x3000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x550A,0x54FB,0x54F7,0x54F8,0x54E0,0x550E,0x5503,0x550B, - 0x5701,0x5702,0x57CC,0x5832,0x57D5,0x57D2,0x57BA,0x57C6, - 0x57BD,0x57BC,0x57B8,0x57B6,0x57BF,0x57C7,0x57D0,0x57B9, - 0x57C1,0x590E,0x594A,0x5A19,0x5A16,0x5A2D,0x5A2E,0x5A15, - 0x5A0F,0x5A17,0x5A0A,0x5A1E,0x5A33,0x5B6C,0x5BA7,0x5BAD, - 0x5BAC,0x5C03,0x5C56,0x5C54,0x5CEC,0x5CFF,0x5CEE,0x5CF1, - 0x5CF7,0x5D00,0x5CF9,0x5E29,0x5E28,0x5EA8,0x5EAE,0x5EAA, - 0x5EAC,0x5F33,0x5F30,0x5F67,0x605D,0x605A,0x6067,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6041,0x60A2,0x6088,0x6080,0x6092,0x6081,0x609D, - 0x6083,0x6095,0x609B,0x6097,0x6087,0x609C,0x608E,0x6219, - 0x6246,0x62F2,0x6310,0x6356,0x632C,0x6344,0x6345,0x6336, - 0x6343,0x63E4,0x6339,0x634B,0x634A,0x633C,0x6329,0x6341, - 0x6334,0x6358,0x6354,0x6359,0x632D,0x6347,0x6333,0x635A, - 0x6351,0x6338,0x6357,0x6340,0x6348,0x654A,0x6546,0x65C6, - 0x65C3,0x65C4,0x65C2,0x664A,0x665F,0x6647,0x6651,0x6712, - 0x6713,0x681F,0x681A,0x6849,0x6832,0x6833,0x683B,0x684B, - 0x684F,0x6816,0x6831,0x681C,0x6835,0x682B,0x682D,0x682F, - 0x684E,0x6844,0x6834,0x681D,0x6812,0x6814,0x6826,0x6828, - 0x682E,0x684D,0x683A,0x6825,0x6820,0x6B2C,0x6B2F,0x6B2D, - 0x6B31,0x6B34,0x6B6D,0x8082,0x6B88,0x6BE6,0x6BE4,INVALC, - /* Block 211, Array index 0x3100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6BE8,0x6BE3,0x6BE2,0x6BE7,0x6C25,0x6D7A,0x6D63,0x6D64, - 0x6D76,0x6D0D,0x6D61,0x6D92,0x6D58,0x6D62,0x6D6D,0x6D6F, - 0x6D91,0x6D8D,0x6DEF,0x6D7F,0x6D86,0x6D5E,0x6D67,0x6D60, - 0x6D97,0x6D70,0x6D7C,0x6D5F,0x6D82,0x6D98,0x6D2F,0x6D68, - 0x6D8B,0x6D7E,0x6D80,0x6D84,0x6D16,0x6D83,0x6D7B,0x6D7D, - 0x6D75,0x6D90,0x70DC,0x70D3,0x70D1,0x70DD,0x70CB,0x7F39, - 0x70E2,0x70D7,0x70D2,0x70DE,0x70E0,0x70D4,0x70CD,0x70C5, - 0x70C6,0x70C7,0x70DA,0x70CE,0x70E1,0x7242,0x7278,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7277,0x7276,0x7300,0x72FA,0x72F4,0x72FE,0x72F6, - 0x72F3,0x72FB,0x7301,0x73D3,0x73D9,0x73E5,0x73D6,0x73BC, - 0x73E7,0x73E3,0x73E9,0x73DC,0x73D2,0x73DB,0x73D4,0x73DD, - 0x73DA,0x73D7,0x73D8,0x73E8,0x74DE,0x74DF,0x74F4,0x74F5, - 0x7521,0x755B,0x755F,0x75B0,0x75C1,0x75BB,0x75C4,0x75C0, - 0x75BF,0x75B6,0x75BA,0x768A,0x76C9,0x771D,0x771B,0x7710, - 0x7713,0x7712,0x7723,0x7711,0x7715,0x7719,0x771A,0x7722, - 0x7727,0x7823,0x782C,0x7822,0x7835,0x782F,0x7828,0x782E, - 0x782B,0x7821,0x7829,0x7833,0x782A,0x7831,0x7954,0x795B, - 0x794F,0x795C,0x7953,0x7952,0x7951,0x79EB,0x79EC,0x79E0, - 0x79EE,0x79ED,0x79EA,0x79DC,0x79DE,0x79DD,0x7A86,0x7A89, - 0x7A85,0x7A8B,0x7A8C,0x7A8A,0x7A87,0x7AD8,0x7B10,INVALC, - /* Block 212, Array index 0x3200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7B04,0x7B13,0x7B05,0x7B0F,0x7B08,0x7B0A,0x7B0E,0x7B09, - 0x7B12,0x7C84,0x7C91,0x7C8A,0x7C8C,0x7C88,0x7C8D,0x7C85, - 0x7D1E,0x7D1D,0x7D11,0x7D0E,0x7D18,0x7D16,0x7D13,0x7D1F, - 0x7D12,0x7D0F,0x7D0C,0x7F5C,0x7F61,0x7F5E,0x7F60,0x7F5D, - 0x7F5B,0x7F96,0x7F92,0x7FC3,0x7FC2,0x7FC0,0x8016,0x803E, - 0x8039,0x80FA,0x80F2,0x80F9,0x80F5,0x8101,0x80FB,0x8100, - 0x8201,0x822F,0x8225,0x8333,0x832D,0x8344,0x8319,0x8351, - 0x8325,0x8356,0x833F,0x8341,0x8326,0x831C,0x8322,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8342,0x834E,0x831B,0x832A,0x8308,0x833C,0x834D, - 0x8316,0x8324,0x8320,0x8337,0x832F,0x8329,0x8347,0x8345, - 0x834C,0x8353,0x831E,0x832C,0x834B,0x8327,0x8348,0x8653, - 0x8652,0x86A2,0x86A8,0x8696,0x868D,0x8691,0x869E,0x8687, - 0x8697,0x8686,0x868B,0x869A,0x8685,0x86A5,0x8699,0x86A1, - 0x86A7,0x8695,0x8698,0x868E,0x869D,0x8690,0x8694,0x8843, - 0x8844,0x886D,0x8875,0x8876,0x8872,0x8880,0x8871,0x887F, - 0x886F,0x8883,0x887E,0x8874,0x887C,0x8A12,0x8C47,0x8C57, - 0x8C7B,0x8CA4,0x8CA3,0x8D76,0x8D78,0x8DB5,0x8DB7,0x8DB6, - 0x8ED1,0x8ED3,0x8FFE,0x8FF5,0x9002,0x8FFF,0x8FFB,0x9004, - 0x8FFC,0x8FF6,0x90D6,0x90E0,0x90D9,0x90DA,0x90E3,0x90DF, - 0x90E5,0x90D8,0x90DB,0x90D7,0x90DC,0x90E4,0x9150,INVALC, - /* Block 213, Array index 0x3300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x914E,0x914F,0x91D5,0x91E2,0x91DA,0x965C,0x965F,0x96BC, - 0x98E3,0x9ADF,0x9B2F,0x4E7F,0x5070,0x506A,0x5061,0x505E, - 0x5060,0x5053,0x504B,0x505D,0x5072,0x5048,0x504D,0x5041, - 0x505B,0x504A,0x5062,0x5015,0x5045,0x505F,0x5069,0x506B, - 0x5063,0x5064,0x5046,0x5040,0x506E,0x5073,0x5057,0x5051, - 0x51D0,0x526B,0x526D,0x526C,0x526E,0x52D6,0x52D3,0x532D, - 0x539C,0x5575,0x5576,0x553C,0x554D,0x5550,0x5534,0x552A, - 0x5551,0x5562,0x5536,0x5535,0x5530,0x5552,0x5545,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x550C,0x5532,0x5565,0x554E,0x5539,0x5548,0x552D, - 0x553B,0x5540,0x554B,0x570A,0x5707,0x57FB,0x5814,0x57E2, - 0x57F6,0x57DC,0x57F4,0x5800,0x57ED,0x57FD,0x5808,0x57F8, - 0x580B,0x57F3,0x57CF,0x5807,0x57EE,0x57E3,0x57F2,0x57E5, - 0x57EC,0x57E1,0x580E,0x57FC,0x5810,0x57E7,0x5801,0x580C, - 0x57F1,0x57E9,0x57F0,0x580D,0x5804,0x595C,0x5A60,0x5A58, - 0x5A55,0x5A67,0x5A5E,0x5A38,0x5A35,0x5A6D,0x5A50,0x5A5F, - 0x5A65,0x5A6C,0x5A53,0x5A64,0x5A57,0x5A43,0x5A5D,0x5A52, - 0x5A44,0x5A5B,0x5A48,0x5A8E,0x5A3E,0x5A4D,0x5A39,0x5A4C, - 0x5A70,0x5A69,0x5A47,0x5A51,0x5A56,0x5A42,0x5A5C,0x5B72, - 0x5B6E,0x5BC1,0x5BC0,0x5C59,0x5D1E,0x5D0B,0x5D1D,0x5D1A, - 0x5D20,0x5D0C,0x5D28,0x5D0D,0x5D26,0x5D25,0x5D0F,INVALC, - /* Block 214, Array index 0x3400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5D30,0x5D12,0x5D23,0x5D1F,0x5D2E,0x5E3E,0x5E34,0x5EB1, - 0x5EB4,0x5EB9,0x5EB2,0x5EB3,0x5F36,0x5F38,0x5F9B,0x5F96, - 0x5F9F,0x608A,0x6090,0x6086,0x60BE,0x60B0,0x60BA,0x60D3, - 0x60D4,0x60CF,0x60E4,0x60D9,0x60DD,0x60C8,0x60B1,0x60DB, - 0x60B7,0x60CA,0x60BF,0x60C3,0x60CD,0x60C0,0x6332,0x6365, - 0x638A,0x6382,0x637D,0x63BD,0x639E,0x63AD,0x639D,0x6397, - 0x63AB,0x638E,0x636F,0x6387,0x6390,0x636E,0x63AF,0x6375, - 0x639C,0x636D,0x63AE,0x637C,0x63A4,0x633B,0x639F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6378,0x6385,0x6381,0x6391,0x638D,0x6370,0x6553, - 0x65CD,0x6665,0x6661,0x665B,0x6659,0x665C,0x6662,0x6718, - 0x6879,0x6887,0x6890,0x689C,0x686D,0x686E,0x68AE,0x68AB, - 0x6956,0x686F,0x68A3,0x68AC,0x68A9,0x6875,0x6874,0x68B2, - 0x688F,0x6877,0x6892,0x687C,0x686B,0x6872,0x68AA,0x6880, - 0x6871,0x687E,0x689B,0x6896,0x688B,0x68A0,0x6889,0x68A4, - 0x6878,0x687B,0x6891,0x688C,0x688A,0x687D,0x6B36,0x6B33, - 0x6B37,0x6B38,0x6B91,0x6B8F,0x6B8D,0x6B8E,0x6B8C,0x6C2A, - 0x6DC0,0x6DAB,0x6DB4,0x6DB3,0x6E74,0x6DAC,0x6DE9,0x6DE2, - 0x6DB7,0x6DF6,0x6DD4,0x6E00,0x6DC8,0x6DE0,0x6DDF,0x6DD6, - 0x6DBE,0x6DE5,0x6DDC,0x6DDD,0x6DDB,0x6DF4,0x6DCA,0x6DBD, - 0x6DED,0x6DF0,0x6DBA,0x6DD5,0x6DC2,0x6DCF,0x6DC9,INVALC, - /* Block 215, Array index 0x3500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6DD0,0x6DF2,0x6DD3,0x6DFD,0x6DD7,0x6DCD,0x6DE3,0x6DBB, - 0x70FA,0x710D,0x70F7,0x7117,0x70F4,0x710C,0x70F0,0x7104, - 0x70F3,0x7110,0x70FC,0x70FF,0x7106,0x7113,0x7100,0x70F8, - 0x70F6,0x710B,0x7102,0x710E,0x727E,0x727B,0x727C,0x727F, - 0x731D,0x7317,0x7307,0x7311,0x7318,0x730A,0x7308,0x72FF, - 0x730F,0x731E,0x7388,0x73F6,0x73F8,0x73F5,0x7404,0x7401, - 0x73FD,0x7407,0x7400,0x73FA,0x73FC,0x73FF,0x740C,0x740B, - 0x73F4,0x7408,0x7564,0x7563,0x75CE,0x75D2,0x75CF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x75CB,0x75CC,0x75D1,0x75D0,0x768F,0x7689,0x76D3, - 0x7739,0x772F,0x772D,0x7731,0x7732,0x7734,0x7733,0x773D, - 0x7725,0x773B,0x7735,0x7848,0x7852,0x7849,0x784D,0x784A, - 0x784C,0x7826,0x7845,0x7850,0x7964,0x7967,0x7969,0x796A, - 0x7963,0x796B,0x7961,0x79BB,0x79FA,0x79F8,0x79F6,0x79F7, - 0x7A8F,0x7A94,0x7A90,0x7B35,0x7B47,0x7B34,0x7B25,0x7B30, - 0x7B22,0x7B24,0x7B33,0x7B18,0x7B2A,0x7B1D,0x7B31,0x7B2B, - 0x7B2D,0x7B2F,0x7B32,0x7B38,0x7B1A,0x7B23,0x7C94,0x7C98, - 0x7C96,0x7CA3,0x7D35,0x7D3D,0x7D38,0x7D36,0x7D3A,0x7D45, - 0x7D2C,0x7D29,0x7D41,0x7D47,0x7D3E,0x7D3F,0x7D4A,0x7D3B, - 0x7D28,0x7F63,0x7F95,0x7F9C,0x7F9D,0x7F9B,0x7FCA,0x7FCB, - 0x7FCD,0x7FD0,0x7FD1,0x7FC7,0x7FCF,0x7FC9,0x801F,INVALC, - /* Block 216, Array index 0x3600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x801E,0x801B,0x8047,0x8043,0x8048,0x8118,0x8125,0x8119, - 0x811B,0x812D,0x811F,0x812C,0x811E,0x8121,0x8115,0x8127, - 0x811D,0x8122,0x8211,0x8238,0x8233,0x823A,0x8234,0x8232, - 0x8274,0x8390,0x83A3,0x83A8,0x838D,0x837A,0x8373,0x83A4, - 0x8374,0x838F,0x8381,0x8395,0x8399,0x8375,0x8394,0x83A9, - 0x837D,0x8383,0x838C,0x839D,0x839B,0x83AA,0x838B,0x837E, - 0x83A5,0x83AF,0x8388,0x8397,0x83B0,0x837F,0x83A6,0x8387, - 0x83AE,0x8376,0x839A,0x8659,0x8656,0x86BF,0x86B7,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x86C2,0x86C1,0x86C5,0x86BA,0x86B0,0x86C8,0x86B9, - 0x86B3,0x86B8,0x86CC,0x86B4,0x86BB,0x86BC,0x86C3,0x86BD, - 0x86BE,0x8852,0x8889,0x8895,0x88A8,0x88A2,0x88AA,0x889A, - 0x8891,0x88A1,0x889F,0x8898,0x88A7,0x8899,0x889B,0x8897, - 0x88A4,0x88AC,0x888C,0x8893,0x888E,0x8982,0x89D6,0x89D9, - 0x89D5,0x8A30,0x8A27,0x8A2C,0x8A1E,0x8C39,0x8C3B,0x8C5C, - 0x8C5D,0x8C7D,0x8CA5,0x8D7D,0x8D7B,0x8D79,0x8DBC,0x8DC2, - 0x8DB9,0x8DBF,0x8DC1,0x8ED8,0x8EDE,0x8EDD,0x8EDC,0x8ED7, - 0x8EE0,0x8EE1,0x9024,0x900B,0x9011,0x901C,0x900C,0x9021, - 0x90EF,0x90EA,0x90F0,0x90F4,0x90F2,0x90F3,0x90D4,0x90EB, - 0x90EC,0x90E9,0x9156,0x9158,0x915A,0x9153,0x9155,0x91EC, - 0x91F4,0x91F1,0x91F3,0x91F8,0x91E4,0x91F9,0x91EA,INVALC, - /* Block 217, Array index 0x3700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x91EB,0x91F7,0x91E8,0x91EE,0x957A,0x9586,0x9588,0x967C, - 0x966D,0x966B,0x9671,0x966F,0x96BF,0x976A,0x9804,0x98E5, - 0x9997,0x509B,0x5095,0x5094,0x509E,0x508B,0x50A3,0x5083, - 0x508C,0x508E,0x509D,0x5068,0x509C,0x5092,0x5082,0x5087, - 0x515F,0x51D4,0x5312,0x5311,0x53A4,0x53A7,0x5591,0x55A8, - 0x55A5,0x55AD,0x5577,0x5645,0x55A2,0x5593,0x5588,0x558F, - 0x55B5,0x5581,0x55A3,0x5592,0x55A4,0x557D,0x558C,0x55A6, - 0x557F,0x5595,0x55A1,0x558E,0x570C,0x5829,0x5837,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5819,0x581E,0x5827,0x5823,0x5828,0x57F5,0x5848, - 0x5825,0x581C,0x581B,0x5833,0x583F,0x5836,0x582E,0x5839, - 0x5838,0x582D,0x582C,0x583B,0x5961,0x5AAF,0x5A94,0x5A9F, - 0x5A7A,0x5AA2,0x5A9E,0x5A78,0x5AA6,0x5A7C,0x5AA5,0x5AAC, - 0x5A95,0x5AAE,0x5A37,0x5A84,0x5A8A,0x5A97,0x5A83,0x5A8B, - 0x5AA9,0x5A7B,0x5A7D,0x5A8C,0x5A9C,0x5A8F,0x5A93,0x5A9D, - 0x5BEA,0x5BCD,0x5BCB,0x5BD4,0x5BD1,0x5BCA,0x5BCE,0x5C0C, - 0x5C30,0x5D37,0x5D43,0x5D6B,0x5D41,0x5D4B,0x5D3F,0x5D35, - 0x5D51,0x5D4E,0x5D55,0x5D33,0x5D3A,0x5D52,0x5D3D,0x5D31, - 0x5D59,0x5D42,0x5D39,0x5D49,0x5D38,0x5D3C,0x5D32,0x5D36, - 0x5D40,0x5D45,0x5E44,0x5E41,0x5F58,0x5FA6,0x5FA5,0x5FAB, - 0x60C9,0x60B9,0x60CC,0x60E2,0x60CE,0x60C4,0x6114,INVALC, - /* Block 218, Array index 0x3800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x60F2,0x610A,0x6116,0x6105,0x60F5,0x6113,0x60F8,0x60FC, - 0x60FE,0x60C1,0x6103,0x6118,0x611D,0x6110,0x60FF,0x6104, - 0x610B,0x624A,0x6394,0x63B1,0x63B0,0x63CE,0x63E5,0x63E8, - 0x63EF,0x63C3,0x649D,0x63F3,0x63CA,0x63E0,0x63F6,0x63D5, - 0x63F2,0x63F5,0x6461,0x63DF,0x63BE,0x63DD,0x63DC,0x63C4, - 0x63D8,0x63D3,0x63C2,0x63C7,0x63CC,0x63CB,0x63C8,0x63F0, - 0x63D7,0x63D9,0x6532,0x6567,0x656A,0x6564,0x655C,0x6568, - 0x6565,0x658C,0x659D,0x659E,0x65AE,0x65D0,0x65D2,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x667C,0x666C,0x667B,0x6680,0x6671,0x6679,0x666A, - 0x6672,0x6701,0x690C,0x68D3,0x6904,0x68DC,0x692A,0x68EC, - 0x68EA,0x68F1,0x690F,0x68D6,0x68F7,0x68EB,0x68E4,0x68F6, - 0x6913,0x6910,0x68F3,0x68E1,0x6907,0x68CC,0x6908,0x6970, - 0x68B4,0x6911,0x68EF,0x68C6,0x6914,0x68F8,0x68D0,0x68FD, - 0x68FC,0x68E8,0x690B,0x690A,0x6917,0x68CE,0x68C8,0x68DD, - 0x68DE,0x68E6,0x68F4,0x68D1,0x6906,0x68D4,0x68E9,0x6915, - 0x6925,0x68C7,0x6B39,0x6B3B,0x6B3F,0x6B3C,0x6B94,0x6B97, - 0x6B99,0x6B95,0x6BBD,0x6BF0,0x6BF2,0x6BF3,0x6C30,0x6DFC, - 0x6E46,0x6E47,0x6E1F,0x6E49,0x6E88,0x6E3C,0x6E3D,0x6E45, - 0x6E62,0x6E2B,0x6E3F,0x6E41,0x6E5D,0x6E73,0x6E1C,0x6E33, - 0x6E4B,0x6E40,0x6E51,0x6E3B,0x6E03,0x6E2E,0x6E5E,INVALC, - /* Block 219, Array index 0x3900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6E68,0x6E5C,0x6E61,0x6E31,0x6E28,0x6E60,0x6E71,0x6E6B, - 0x6E39,0x6E22,0x6E30,0x6E53,0x6E65,0x6E27,0x6E78,0x6E64, - 0x6E77,0x6E55,0x6E79,0x6E52,0x6E66,0x6E35,0x6E36,0x6E5A, - 0x7120,0x711E,0x712F,0x70FB,0x712E,0x7131,0x7123,0x7125, - 0x7122,0x7132,0x711F,0x7128,0x713A,0x711B,0x724B,0x725A, - 0x7288,0x7289,0x7286,0x7285,0x728B,0x7312,0x730B,0x7330, - 0x7322,0x7331,0x7333,0x7327,0x7332,0x732D,0x7326,0x7323, - 0x7335,0x730C,0x742E,0x742C,0x7430,0x742B,0x7416,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x741A,0x7421,0x742D,0x7431,0x7424,0x7423,0x741D, - 0x7429,0x7420,0x7432,0x74FB,0x752F,0x756F,0x756C,0x75E7, - 0x75DA,0x75E1,0x75E6,0x75DD,0x75DF,0x75E4,0x75D7,0x7695, - 0x7692,0x76DA,0x7746,0x7747,0x7744,0x774D,0x7745,0x774A, - 0x774E,0x774B,0x774C,0x77DE,0x77EC,0x7860,0x7864,0x7865, - 0x785C,0x786D,0x7871,0x786A,0x786E,0x7870,0x7869,0x7868, - 0x785E,0x7862,0x7974,0x7973,0x7972,0x7970,0x7A02,0x7A0A, - 0x7A03,0x7A0C,0x7A04,0x7A99,0x7AE6,0x7AE4,0x7B4A,0x7B3B, - 0x7B44,0x7B48,0x7B4C,0x7B4E,0x7B40,0x7B58,0x7B45,0x7CA2, - 0x7C9E,0x7CA8,0x7CA1,0x7D58,0x7D6F,0x7D63,0x7D53,0x7D56, - 0x7D67,0x7D6A,0x7D4F,0x7D6D,0x7D5C,0x7D6B,0x7D52,0x7D54, - 0x7D69,0x7D51,0x7D5F,0x7D4E,0x7F3E,0x7F3F,0x7F65,INVALC, - /* Block 220, Array index 0x3A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7F66,0x7FA2,0x7FA0,0x7FA1,0x7FD7,0x8051,0x804F,0x8050, - 0x80FE,0x80D4,0x8143,0x814A,0x8152,0x814F,0x8147,0x813D, - 0x814D,0x813A,0x81E6,0x81EE,0x81F7,0x81F8,0x81F9,0x8204, - 0x823C,0x823D,0x823F,0x8275,0x833B,0x83CF,0x83F9,0x8423, - 0x83C0,0x83E8,0x8412,0x83E7,0x83E4,0x83FC,0x83F6,0x8410, - 0x83C6,0x83C8,0x83EB,0x83E3,0x83BF,0x8401,0x83DD,0x83E5, - 0x83D8,0x83FF,0x83E1,0x83CB,0x83CE,0x83D6,0x83F5,0x83C9, - 0x8409,0x840F,0x83DE,0x8411,0x8406,0x83C2,0x83F3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x83D5,0x83FA,0x83C7,0x83D1,0x83EA,0x8413,0x83C3, - 0x83EC,0x83EE,0x83C4,0x83FB,0x83D7,0x83E2,0x841B,0x83DB, - 0x83FE,0x86D8,0x86E2,0x86E6,0x86D3,0x86E3,0x86DA,0x86EA, - 0x86DD,0x86EB,0x86DC,0x86EC,0x86E9,0x86D7,0x86E8,0x86D1, - 0x8848,0x8856,0x8855,0x88BA,0x88D7,0x88B9,0x88B8,0x88C0, - 0x88BE,0x88B6,0x88BC,0x88B7,0x88BD,0x88B2,0x8901,0x88C9, - 0x8995,0x8998,0x8997,0x89DD,0x89DA,0x89DB,0x8A4E,0x8A4D, - 0x8A39,0x8A59,0x8A40,0x8A57,0x8A58,0x8A44,0x8A45,0x8A52, - 0x8A48,0x8A51,0x8A4A,0x8A4C,0x8A4F,0x8C5F,0x8C81,0x8C80, - 0x8CBA,0x8CBE,0x8CB0,0x8CB9,0x8CB5,0x8D84,0x8D80,0x8D89, - 0x8DD8,0x8DD3,0x8DCD,0x8DC7,0x8DD6,0x8DDC,0x8DCF,0x8DD5, - 0x8DD9,0x8DC8,0x8DD7,0x8DC5,0x8EEF,0x8EF7,0x8EFA,INVALC, - /* Block 221, Array index 0x3B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8EF9,0x8EE6,0x8EEE,0x8EE5,0x8EF5,0x8EE7,0x8EE8,0x8EF6, - 0x8EEB,0x8EF1,0x8EEC,0x8EF4,0x8EE9,0x902D,0x9034,0x902F, - 0x9106,0x912C,0x9104,0x90FF,0x90FC,0x9108,0x90F9,0x90FB, - 0x9101,0x9100,0x9107,0x9105,0x9103,0x9161,0x9164,0x915F, - 0x9162,0x9160,0x9201,0x920A,0x9225,0x9203,0x921A,0x9226, - 0x920F,0x920C,0x9200,0x9212,0x91FF,0x91FD,0x9206,0x9204, - 0x9227,0x9202,0x921C,0x9224,0x9219,0x9217,0x9205,0x9216, - 0x957B,0x958D,0x958C,0x9590,0x9687,0x967E,0x9688,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9689,0x9683,0x9680,0x96C2,0x96C8,0x96C3,0x96F1, - 0x96F0,0x976C,0x9770,0x976E,0x9807,0x98A9,0x98EB,0x9CE6, - 0x9EF9,0x4E83,0x4E84,0x4EB6,0x50BD,0x50BF,0x50C6,0x50AE, - 0x50C4,0x50CA,0x50B4,0x50C8,0x50C2,0x50B0,0x50C1,0x50BA, - 0x50B1,0x50CB,0x50C9,0x50B6,0x50B8,0x51D7,0x527A,0x5278, - 0x527B,0x527C,0x55C3,0x55DB,0x55CC,0x55D0,0x55CB,0x55CA, - 0x55DD,0x55C0,0x55D4,0x55C4,0x55E9,0x55BF,0x55D2,0x558D, - 0x55CF,0x55D5,0x55E2,0x55D6,0x55C8,0x55F2,0x55CD,0x55D9, - 0x55C2,0x5714,0x5853,0x5868,0x5864,0x584F,0x584D,0x5849, - 0x586F,0x5855,0x584E,0x585D,0x5859,0x5865,0x585B,0x583D, - 0x5863,0x5871,0x58FC,0x5AC7,0x5AC4,0x5ACB,0x5ABA,0x5AB8, - 0x5AB1,0x5AB5,0x5AB0,0x5ABF,0x5AC8,0x5ABB,0x5AC6,INVALC, - /* Block 222, Array index 0x3C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5AB7,0x5AC0,0x5ACA,0x5AB4,0x5AB6,0x5ACD,0x5AB9,0x5A90, - 0x5BD6,0x5BD8,0x5BD9,0x5C1F,0x5C33,0x5D71,0x5D63,0x5D4A, - 0x5D65,0x5D72,0x5D6C,0x5D5E,0x5D68,0x5D67,0x5D62,0x5DF0, - 0x5E4F,0x5E4E,0x5E4A,0x5E4D,0x5E4B,0x5EC5,0x5ECC,0x5EC6, - 0x5ECB,0x5EC7,0x5F40,0x5FAF,0x5FAD,0x60F7,0x6149,0x614A, - 0x612B,0x6145,0x6136,0x6132,0x612E,0x6146,0x612F,0x614F, - 0x6129,0x6140,0x6220,0x9168,0x6223,0x6225,0x6224,0x63C5, - 0x63F1,0x63EB,0x6410,0x6412,0x6409,0x6420,0x6424,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6433,0x6443,0x641F,0x6415,0x6418,0x6439,0x6437, - 0x6422,0x6423,0x640C,0x6426,0x6430,0x6428,0x6441,0x6435, - 0x642F,0x640A,0x641A,0x6440,0x6425,0x6427,0x640B,0x63E7, - 0x641B,0x642E,0x6421,0x640E,0x656F,0x6592,0x65D3,0x6686, - 0x668C,0x6695,0x6690,0x668B,0x668A,0x6699,0x6694,0x6678, - 0x6720,0x6966,0x695F,0x6938,0x694E,0x6962,0x6971,0x693F, - 0x6945,0x696A,0x6939,0x6942,0x6957,0x6959,0x697A,0x6948, - 0x6949,0x6935,0x696C,0x6933,0x693D,0x6965,0x68F0,0x6978, - 0x6934,0x6969,0x6940,0x696F,0x6944,0x6976,0x6958,0x6941, - 0x6974,0x694C,0x693B,0x694B,0x6937,0x695C,0x694F,0x6951, - 0x6932,0x6952,0x692F,0x697B,0x693C,0x6B46,0x6B45,0x6B43, - 0x6B42,0x6B48,0x6B41,0x6B9B,0xFA0D,0x6BFB,0x6BFC,INVALC, - /* Block 223, Array index 0x3D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6BF9,0x6BF7,0x6BF8,0x6E9B,0x6ED6,0x6EC8,0x6E8F,0x6EC0, - 0x6E9F,0x6E93,0x6E94,0x6EA0,0x6EB1,0x6EB9,0x6EC6,0x6ED2, - 0x6EBD,0x6EC1,0x6E9E,0x6EC9,0x6EB7,0x6EB0,0x6ECD,0x6EA6, - 0x6ECF,0x6EB2,0x6EBE,0x6EC3,0x6EDC,0x6ED8,0x6E99,0x6E92, - 0x6E8E,0x6E8D,0x6EA4,0x6EA1,0x6EBF,0x6EB3,0x6ED0,0x6ECA, - 0x6E97,0x6EAE,0x6EA3,0x7147,0x7154,0x7152,0x7163,0x7160, - 0x7141,0x715D,0x7162,0x7172,0x7178,0x716A,0x7161,0x7142, - 0x7158,0x7143,0x714B,0x7170,0x715F,0x7150,0x7153,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7144,0x714D,0x715A,0x724F,0x728D,0x728C,0x7291, - 0x7290,0x728E,0x733C,0x7342,0x733B,0x733A,0x7340,0x734A, - 0x7349,0x7444,0x744A,0x744B,0x7452,0x7451,0x7457,0x7440, - 0x744F,0x7450,0x744E,0x7442,0x7446,0x744D,0x7454,0x74E1, - 0x74FF,0x74FE,0x74FD,0x751D,0x7579,0x7577,0x6983,0x75EF, - 0x760F,0x7603,0x75F7,0x75FE,0x75FC,0x75F9,0x75F8,0x7610, - 0x75FB,0x75F6,0x75ED,0x75F5,0x75FD,0x7699,0x76B5,0x76DD, - 0x7755,0x775F,0x7760,0x7752,0x7756,0x775A,0x7769,0x7767, - 0x7754,0x7759,0x776D,0x77E0,0x7887,0x789A,0x7894,0x788F, - 0x7884,0x7895,0x7885,0x7886,0x78A1,0x7883,0x7879,0x7899, - 0x7880,0x7896,0x787B,0x797C,0x7982,0x797D,0x7979,0x7A11, - 0x7A18,0x7A19,0x7A12,0x7A17,0x7A15,0x7A22,0x7A13,INVALC, - /* Block 224, Array index 0x3E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7A1B,0x7A10,0x7AA3,0x7AA2,0x7A9E,0x7AEB,0x7B66,0x7B64, - 0x7B6D,0x7B74,0x7B69,0x7B72,0x7B65,0x7B73,0x7B71,0x7B70, - 0x7B61,0x7B78,0x7B76,0x7B63,0x7CB2,0x7CB4,0x7CAF,0x7D88, - 0x7D86,0x7D80,0x7D8D,0x7D7F,0x7D85,0x7D7A,0x7D8E,0x7D7B, - 0x7D83,0x7D7C,0x7D8C,0x7D94,0x7D84,0x7D7D,0x7D92,0x7F6D, - 0x7F6B,0x7F67,0x7F68,0x7F6C,0x7FA6,0x7FA5,0x7FA7,0x7FDB, - 0x7FDC,0x8021,0x8164,0x8160,0x8177,0x815C,0x8169,0x815B, - 0x8162,0x8172,0x6721,0x815E,0x8176,0x8167,0x816F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8144,0x8161,0x821D,0x8249,0x8244,0x8240,0x8242, - 0x8245,0x84F1,0x843F,0x8456,0x8476,0x8479,0x848F,0x848D, - 0x8465,0x8451,0x8440,0x8486,0x8467,0x8430,0x844D,0x847D, - 0x845A,0x8459,0x8474,0x8473,0x845D,0x8507,0x845E,0x8437, - 0x843A,0x8434,0x847A,0x8443,0x8478,0x8432,0x8445,0x8429, - 0x83D9,0x844B,0x842F,0x8442,0x842D,0x845F,0x8470,0x8439, - 0x844E,0x844C,0x8452,0x846F,0x84C5,0x848E,0x843B,0x8447, - 0x8436,0x8433,0x8468,0x847E,0x8444,0x842B,0x8460,0x8454, - 0x846E,0x8450,0x870B,0x8704,0x86F7,0x870C,0x86FA,0x86D6, - 0x86F5,0x874D,0x86F8,0x870E,0x8709,0x8701,0x86F6,0x870D, - 0x8705,0x88D6,0x88CB,0x88CD,0x88CE,0x88DE,0x88DB,0x88DA, - 0x88CC,0x88D0,0x8985,0x899B,0x89DF,0x89E5,0x89E4,INVALC, - /* Block 225, Array index 0x3F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x89E1,0x89E0,0x89E2,0x89DC,0x89E6,0x8A76,0x8A86,0x8A7F, - 0x8A61,0x8A3F,0x8A77,0x8A82,0x8A84,0x8A75,0x8A83,0x8A81, - 0x8A74,0x8A7A,0x8C3C,0x8C4B,0x8C4A,0x8C65,0x8C64,0x8C66, - 0x8C86,0x8C84,0x8C85,0x8CCC,0x8D68,0x8D69,0x8D91,0x8D8C, - 0x8D8E,0x8D8F,0x8D8D,0x8D93,0x8D94,0x8D90,0x8D92,0x8DF0, - 0x8DE0,0x8DEC,0x8DF1,0x8DEE,0x8DD0,0x8DE9,0x8DE3,0x8DE2, - 0x8DE7,0x8DF2,0x8DEB,0x8DF4,0x8F06,0x8EFF,0x8F01,0x8F00, - 0x8F05,0x8F07,0x8F08,0x8F02,0x8F0B,0x9052,0x903F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9044,0x9049,0x903D,0x9110,0x910D,0x910F,0x9111, - 0x9116,0x9114,0x910B,0x910E,0x916E,0x916F,0x9248,0x9252, - 0x9230,0x923A,0x9266,0x9233,0x9265,0x925E,0x9283,0x922E, - 0x924A,0x9246,0x926D,0x926C,0x924F,0x9260,0x9267,0x926F, - 0x9236,0x9261,0x9270,0x9231,0x9254,0x9263,0x9250,0x9272, - 0x924E,0x9253,0x924C,0x9256,0x9232,0x959F,0x959C,0x959E, - 0x959B,0x9692,0x9693,0x9691,0x9697,0x96CE,0x96FA,0x96FD, - 0x96F8,0x96F5,0x9773,0x9777,0x9778,0x9772,0x980F,0x980D, - 0x980E,0x98AC,0x98F6,0x98F9,0x99AF,0x99B2,0x99B0,0x99B5, - 0x9AAD,0x9AAB,0x9B5B,0x9CEA,0x9CED,0x9CE7,0x9E80,0x9EFD, - 0x50E6,0x50D4,0x50D7,0x50E8,0x50F3,0x50DB,0x50EA,0x50DD, - 0x50E4,0x50D3,0x50EC,0x50F0,0x50EF,0x50E3,0x50E0,INVALC, - /* Block 226, Array index 0x4000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x51D8,0x5280,0x5281,0x52E9,0x52EB,0x5330,0x53AC,0x5627, - 0x5615,0x560C,0x5612,0x55FC,0x560F,0x561C,0x5601,0x5613, - 0x5602,0x55FA,0x561D,0x5604,0x55FF,0x55F9,0x5889,0x587C, - 0x5890,0x5898,0x5886,0x5881,0x587F,0x5874,0x588B,0x587A, - 0x5887,0x5891,0x588E,0x5876,0x5882,0x5888,0x587B,0x5894, - 0x588F,0x58FE,0x596B,0x5ADC,0x5AEE,0x5AE5,0x5AD5,0x5AEA, - 0x5ADA,0x5AED,0x5AEB,0x5AF3,0x5AE2,0x5AE0,0x5ADB,0x5AEC, - 0x5ADE,0x5ADD,0x5AD9,0x5AE8,0x5ADF,0x5B77,0x5BE0,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5BE3,0x5C63,0x5D82,0x5D80,0x5D7D,0x5D86,0x5D7A, - 0x5D81,0x5D77,0x5D8A,0x5D89,0x5D88,0x5D7E,0x5D7C,0x5D8D, - 0x5D79,0x5D7F,0x5E58,0x5E59,0x5E53,0x5ED8,0x5ED1,0x5ED7, - 0x5ECE,0x5EDC,0x5ED5,0x5ED9,0x5ED2,0x5ED4,0x5F44,0x5F43, - 0x5F6F,0x5FB6,0x612C,0x6128,0x6141,0x615E,0x6171,0x6173, - 0x6152,0x6153,0x6172,0x616C,0x6180,0x6174,0x6154,0x617A, - 0x615B,0x6165,0x613B,0x616A,0x6161,0x6156,0x6229,0x6227, - 0x622B,0x642B,0x644D,0x645B,0x645D,0x6474,0x6476,0x6472, - 0x6473,0x647D,0x6475,0x6466,0x64A6,0x644E,0x6482,0x645E, - 0x645C,0x644B,0x6453,0x6460,0x6450,0x647F,0x643F,0x646C, - 0x646B,0x6459,0x6465,0x6477,0x6573,0x65A0,0x66A1,0x66A0, - 0x669F,0x6705,0x6704,0x6722,0x69B1,0x69B6,0x69C9,INVALC, - /* Block 227, Array index 0x4100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x69A0,0x69CE,0x6996,0x69B0,0x69AC,0x69BC,0x6991,0x6999, - 0x698E,0x69A7,0x698D,0x69A9,0x69BE,0x69AF,0x69BF,0x69C4, - 0x69BD,0x69A4,0x69D4,0x69B9,0x69CA,0x699A,0x69CF,0x69B3, - 0x6993,0x69AA,0x69A1,0x699E,0x69D9,0x6997,0x6990,0x69C2, - 0x69B5,0x69A5,0x69C6,0x6B4A,0x6B4D,0x6B4B,0x6B9E,0x6B9F, - 0x6BA0,0x6BC3,0x6BC4,0x6BFE,0x6ECE,0x6EF5,0x6EF1,0x6F03, - 0x6F25,0x6EF8,0x6F37,0x6EFB,0x6F2E,0x6F09,0x6F4E,0x6F19, - 0x6F1A,0x6F27,0x6F18,0x6F3B,0x6F12,0x6EED,0x6F0A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6F36,0x6F73,0x6EF9,0x6EEE,0x6F2D,0x6F40,0x6F30, - 0x6F3C,0x6F35,0x6EEB,0x6F07,0x6F0E,0x6F43,0x6F05,0x6EFD, - 0x6EF6,0x6F39,0x6F1C,0x6EFC,0x6F3A,0x6F1F,0x6F0D,0x6F1E, - 0x6F08,0x6F21,0x7187,0x7190,0x7189,0x7180,0x7185,0x7182, - 0x718F,0x717B,0x7186,0x7181,0x7197,0x7244,0x7253,0x7297, - 0x7295,0x7293,0x7343,0x734D,0x7351,0x734C,0x7462,0x7473, - 0x7471,0x7475,0x7472,0x7467,0x746E,0x7500,0x7502,0x7503, - 0x757D,0x7590,0x7616,0x7608,0x760C,0x7615,0x7611,0x760A, - 0x7614,0x76B8,0x7781,0x777C,0x7785,0x7782,0x776E,0x7780, - 0x776F,0x777E,0x7783,0x78B2,0x78AA,0x78B4,0x78AD,0x78A8, - 0x787E,0x78AB,0x789E,0x78A5,0x78A0,0x78AC,0x78A2,0x78A4, - 0x7998,0x798A,0x798B,0x7996,0x7995,0x7994,0x7993,INVALC, - /* Block 228, Array index 0x4200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7997,0x7988,0x7992,0x7990,0x7A2B,0x7A4A,0x7A30,0x7A2F, - 0x7A28,0x7A26,0x7AA8,0x7AAB,0x7AAC,0x7AEE,0x7B88,0x7B9C, - 0x7B8A,0x7B91,0x7B90,0x7B96,0x7B8D,0x7B8C,0x7B9B,0x7B8E, - 0x7B85,0x7B98,0x5284,0x7B99,0x7BA4,0x7B82,0x7CBB,0x7CBF, - 0x7CBC,0x7CBA,0x7DA7,0x7DB7,0x7DC2,0x7DA3,0x7DAA,0x7DC1, - 0x7DC0,0x7DC5,0x7D9D,0x7DCE,0x7DC4,0x7DC6,0x7DCB,0x7DCC, - 0x7DAF,0x7DB9,0x7D96,0x7DBC,0x7D9F,0x7DA6,0x7DAE,0x7DA9, - 0x7DA1,0x7DC9,0x7F73,0x7FE2,0x7FE3,0x7FE5,0x7FDE,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8024,0x805D,0x805C,0x8189,0x8186,0x8183,0x8187, - 0x818D,0x818C,0x818B,0x8215,0x8497,0x84A4,0x84A1,0x849F, - 0x84BA,0x84CE,0x84C2,0x84AC,0x84AE,0x84AB,0x84B9,0x84B4, - 0x84C1,0x84CD,0x84AA,0x849A,0x84B1,0x84D0,0x849D,0x84A7, - 0x84BB,0x84A2,0x8494,0x84C7,0x84CC,0x849B,0x84A9,0x84AF, - 0x84A8,0x84D6,0x8498,0x84B6,0x84CF,0x84A0,0x84D7,0x84D4, - 0x84D2,0x84DB,0x84B0,0x8491,0x8661,0x8733,0x8723,0x8728, - 0x876B,0x8740,0x872E,0x871E,0x8721,0x8719,0x871B,0x8743, - 0x872C,0x8741,0x873E,0x8746,0x8720,0x8732,0x872A,0x872D, - 0x873C,0x8712,0x873A,0x8731,0x8735,0x8742,0x8726,0x8727, - 0x8738,0x8724,0x871A,0x8730,0x8711,0x88F7,0x88E7,0x88F1, - 0x88F2,0x88FA,0x88FE,0x88EE,0x88FC,0x88F6,0x88FB,INVALC, - /* Block 229, Array index 0x4300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x88F0,0x88EC,0x88EB,0x899D,0x89A1,0x899F,0x899E,0x89E9, - 0x89EB,0x89E8,0x8AAB,0x8A99,0x8A8B,0x8A92,0x8A8F,0x8A96, - 0x8C3D,0x8C68,0x8C69,0x8CD5,0x8CCF,0x8CD7,0x8D96,0x8E09, - 0x8E02,0x8DFF,0x8E0D,0x8DFD,0x8E0A,0x8E03,0x8E07,0x8E06, - 0x8E05,0x8DFE,0x8E00,0x8E04,0x8F10,0x8F11,0x8F0E,0x8F0D, - 0x9123,0x911C,0x9120,0x9122,0x911F,0x911D,0x911A,0x9124, - 0x9121,0x911B,0x917A,0x9172,0x9179,0x9173,0x92A5,0x92A4, - 0x9276,0x929B,0x927A,0x92A0,0x9294,0x92AA,0x928D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x92A6,0x929A,0x92AB,0x9279,0x9297,0x927F,0x92A3, - 0x92EE,0x928E,0x9282,0x9295,0x92A2,0x927D,0x9288,0x92A1, - 0x928A,0x9286,0x928C,0x9299,0x92A7,0x927E,0x9287,0x92A9, - 0x929D,0x928B,0x922D,0x969E,0x96A1,0x96FF,0x9758,0x977D, - 0x977A,0x977E,0x9783,0x9780,0x9782,0x977B,0x9784,0x9781, - 0x977F,0x97CE,0x97CD,0x9816,0x98AD,0x98AE,0x9902,0x9900, - 0x9907,0x999D,0x999C,0x99C3,0x99B9,0x99BB,0x99BA,0x99C2, - 0x99BD,0x99C7,0x9AB1,0x9AE3,0x9AE7,0x9B3E,0x9B3F,0x9B60, - 0x9B61,0x9B5F,0x9CF1,0x9CF2,0x9CF5,0x9EA7,0x50FF,0x5103, - 0x5130,0x50F8,0x5106,0x5107,0x50F6,0x50FE,0x510B,0x510C, - 0x50FD,0x510A,0x528B,0x528C,0x52F1,0x52EF,0x5648,0x5642, - 0x564C,0x5635,0x5641,0x564A,0x5649,0x5646,0x5658,INVALC, - /* Block 230, Array index 0x4400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x565A,0x5640,0x5633,0x563D,0x562C,0x563E,0x5638,0x562A, - 0x563A,0x571A,0x58AB,0x589D,0x58B1,0x58A0,0x58A3,0x58AF, - 0x58AC,0x58A5,0x58A1,0x58FF,0x5AFF,0x5AF4,0x5AFD,0x5AF7, - 0x5AF6,0x5B03,0x5AF8,0x5B02,0x5AF9,0x5B01,0x5B07,0x5B05, - 0x5B0F,0x5C67,0x5D99,0x5D97,0x5D9F,0x5D92,0x5DA2,0x5D93, - 0x5D95,0x5DA0,0x5D9C,0x5DA1,0x5D9A,0x5D9E,0x5E69,0x5E5D, - 0x5E60,0x5E5C,0x7DF3,0x5EDB,0x5EDE,0x5EE1,0x5F49,0x5FB2, - 0x618B,0x6183,0x6179,0x61B1,0x61B0,0x61A2,0x6189,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x619B,0x6193,0x61AF,0x61AD,0x619F,0x6192,0x61AA, - 0x61A1,0x618D,0x6166,0x61B3,0x622D,0x646E,0x6470,0x6496, - 0x64A0,0x6485,0x6497,0x649C,0x648F,0x648B,0x648A,0x648C, - 0x64A3,0x649F,0x6468,0x64B1,0x6498,0x6576,0x657A,0x6579, - 0x657B,0x65B2,0x65B3,0x66B5,0x66B0,0x66A9,0x66B2,0x66B7, - 0x66AA,0x66AF,0x6A00,0x6A06,0x6A17,0x69E5,0x69F8,0x6A15, - 0x69F1,0x69E4,0x6A20,0x69FF,0x69EC,0x69E2,0x6A1B,0x6A1D, - 0x69FE,0x6A27,0x69F2,0x69EE,0x6A14,0x69F7,0x69E7,0x6A40, - 0x6A08,0x69E6,0x69FB,0x6A0D,0x69FC,0x69EB,0x6A09,0x6A04, - 0x6A18,0x6A25,0x6A0F,0x69F6,0x6A26,0x6A07,0x69F4,0x6A16, - 0x6B51,0x6BA5,0x6BA3,0x6BA2,0x6BA6,0x6C01,0x6C00,0x6BFF, - 0x6C02,0x6F41,0x6F26,0x6F7E,0x6F87,0x6FC6,0x6F92,INVALC, - /* Block 231, Array index 0x4500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F8D,0x6F89,0x6F8C,0x6F62,0x6F4F,0x6F85,0x6F5A,0x6F96, - 0x6F76,0x6F6C,0x6F82,0x6F55,0x6F72,0x6F52,0x6F50,0x6F57, - 0x6F94,0x6F93,0x6F5D,0x6F00,0x6F61,0x6F6B,0x6F7D,0x6F67, - 0x6F90,0x6F53,0x6F8B,0x6F69,0x6F7F,0x6F95,0x6F63,0x6F77, - 0x6F6A,0x6F7B,0x71B2,0x71AF,0x719B,0x71B0,0x71A0,0x719A, - 0x71A9,0x71B5,0x719D,0x71A5,0x719E,0x71A4,0x71A1,0x71AA, - 0x719C,0x71A7,0x71B3,0x7298,0x729A,0x7358,0x7352,0x735E, - 0x735F,0x7360,0x735D,0x735B,0x7361,0x735A,0x7359,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7362,0x7487,0x7489,0x748A,0x7486,0x7481,0x747D, - 0x7485,0x7488,0x747C,0x7479,0x7508,0x7507,0x757E,0x7625, - 0x761E,0x7619,0x761D,0x761C,0x7623,0x761A,0x7628,0x761B, - 0x769C,0x769D,0x769E,0x769B,0x778D,0x778F,0x7789,0x7788, - 0x78CD,0x78BB,0x78CF,0x78CC,0x78D1,0x78CE,0x78D4,0x78C8, - 0x78C3,0x78C4,0x78C9,0x799A,0x79A1,0x79A0,0x799C,0x79A2, - 0x799B,0x6B76,0x7A39,0x7AB2,0x7AB4,0x7AB3,0x7BB7,0x7BCB, - 0x7BBE,0x7BAC,0x7BCE,0x7BAF,0x7BB9,0x7BCA,0x7BB5,0x7CC5, - 0x7CC8,0x7CCC,0x7CCB,0x7DF7,0x7DDB,0x7DEA,0x7DE7,0x7DD7, - 0x7DE1,0x7E03,0x7DFA,0x7DE6,0x7DF6,0x7DF1,0x7DF0,0x7DEE, - 0x7DDF,0x7F76,0x7FAC,0x7FB0,0x7FAD,0x7FED,0x7FEB,0x7FEA, - 0x7FEC,0x7FE6,0x7FE8,0x8064,0x8067,0x81A3,0x819F,INVALC, - /* Block 232, Array index 0x4600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x819E,0x8195,0x81A2,0x8199,0x8197,0x8216,0x824F,0x8253, - 0x8252,0x8250,0x824E,0x8251,0x8524,0x853B,0x850F,0x8500, - 0x8529,0x850E,0x8509,0x850D,0x851F,0x850A,0x8527,0x851C, - 0x84FB,0x852B,0x84FA,0x8508,0x850C,0x84F4,0x852A,0x84F2, - 0x8515,0x84F7,0x84EB,0x84F3,0x84FC,0x8512,0x84EA,0x84E9, - 0x8516,0x84FE,0x8528,0x851D,0x852E,0x8502,0x84FD,0x851E, - 0x84F6,0x8531,0x8526,0x84E7,0x84E8,0x84F0,0x84EF,0x84F9, - 0x8518,0x8520,0x8530,0x850B,0x8519,0x852F,0x8662,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8756,0x8763,0x8764,0x8777,0x87E1,0x8773,0x8758, - 0x8754,0x875B,0x8752,0x8761,0x875A,0x8751,0x875E,0x876D, - 0x876A,0x8750,0x874E,0x875F,0x875D,0x876F,0x876C,0x877A, - 0x876E,0x875C,0x8765,0x874F,0x877B,0x8775,0x8762,0x8767, - 0x8769,0x885A,0x8905,0x890C,0x8914,0x890B,0x8917,0x8918, - 0x8919,0x8906,0x8916,0x8911,0x890E,0x8909,0x89A2,0x89A4, - 0x89A3,0x89ED,0x89F0,0x89EC,0x8ACF,0x8AC6,0x8AB8,0x8AD3, - 0x8AD1,0x8AD4,0x8AD5,0x8ABB,0x8AD7,0x8ABE,0x8AC0,0x8AC5, - 0x8AD8,0x8AC3,0x8ABA,0x8ABD,0x8AD9,0x8C3E,0x8C4D,0x8C8F, - 0x8CE5,0x8CDF,0x8CD9,0x8CE8,0x8CDA,0x8CDD,0x8CE7,0x8DA0, - 0x8D9C,0x8DA1,0x8D9B,0x8E20,0x8E23,0x8E25,0x8E24,0x8E2E, - 0x8E15,0x8E1B,0x8E16,0x8E11,0x8E19,0x8E26,0x8E27,INVALC, - /* Block 233, Array index 0x4700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8E14,0x8E12,0x8E18,0x8E13,0x8E1C,0x8E17,0x8E1A,0x8F2C, - 0x8F24,0x8F18,0x8F1A,0x8F20,0x8F23,0x8F16,0x8F17,0x9073, - 0x9070,0x906F,0x9067,0x906B,0x912F,0x912B,0x9129,0x912A, - 0x9132,0x9126,0x912E,0x9185,0x9186,0x918A,0x9181,0x9182, - 0x9184,0x9180,0x92D0,0x92C3,0x92C4,0x92C0,0x92D9,0x92B6, - 0x92CF,0x92F1,0x92DF,0x92D8,0x92E9,0x92D7,0x92DD,0x92CC, - 0x92EF,0x92C2,0x92E8,0x92CA,0x92C8,0x92CE,0x92E6,0x92CD, - 0x92D5,0x92C9,0x92E0,0x92DE,0x92E7,0x92D1,0x92D3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x92B5,0x92E1,0x92C6,0x92B4,0x957C,0x95AC,0x95AB, - 0x95AE,0x95B0,0x96A4,0x96A2,0x96D3,0x9705,0x9708,0x9702, - 0x975A,0x978A,0x978E,0x9788,0x97D0,0x97CF,0x981E,0x981D, - 0x9826,0x9829,0x9828,0x9820,0x981B,0x9827,0x98B2,0x9908, - 0x98FA,0x9911,0x9914,0x9916,0x9917,0x9915,0x99DC,0x99CD, - 0x99CF,0x99D3,0x99D4,0x99CE,0x99C9,0x99D6,0x99D8,0x99CB, - 0x99D7,0x99CC,0x9AB3,0x9AEC,0x9AEB,0x9AF3,0x9AF2,0x9AF1, - 0x9B46,0x9B43,0x9B67,0x9B74,0x9B71,0x9B66,0x9B76,0x9B75, - 0x9B70,0x9B68,0x9B64,0x9B6C,0x9CFC,0x9CFA,0x9CFD,0x9CFF, - 0x9CF7,0x9D07,0x9D00,0x9CF9,0x9CFB,0x9D08,0x9D05,0x9D04, - 0x9E83,0x9ED3,0x9F0F,0x9F10,0x511C,0x5113,0x5117,0x511A, - 0x5111,0x51DE,0x5334,0x53E1,0x5670,0x5660,0x566E,INVALC, - /* Block 234, Array index 0x4800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5673,0x5666,0x5663,0x566D,0x5672,0x565E,0x5677,0x571C, - 0x571B,0x58C8,0x58BD,0x58C9,0x58BF,0x58BA,0x58C2,0x58BC, - 0x58C6,0x5B17,0x5B19,0x5B1B,0x5B21,0x5B14,0x5B13,0x5B10, - 0x5B16,0x5B28,0x5B1A,0x5B20,0x5B1E,0x5BEF,0x5DAC,0x5DB1, - 0x5DA9,0x5DA7,0x5DB5,0x5DB0,0x5DAE,0x5DAA,0x5DA8,0x5DB2, - 0x5DAD,0x5DAF,0x5DB4,0x5E67,0x5E68,0x5E66,0x5E6F,0x5EE9, - 0x5EE7,0x5EE6,0x5EE8,0x5EE5,0x5F4B,0x5FBC,0x619D,0x61A8, - 0x6196,0x61C5,0x61B4,0x61C6,0x61C1,0x61CC,0x61BA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x61BF,0x61B8,0x618C,0x64D7,0x64D6,0x64D0,0x64CF, - 0x64C9,0x64BD,0x6489,0x64C3,0x64DB,0x64F3,0x64D9,0x6533, - 0x657F,0x657C,0x65A2,0x66C8,0x66BE,0x66C0,0x66CA,0x66CB, - 0x66CF,0x66BD,0x66BB,0x66BA,0x66CC,0x6723,0x6A34,0x6A66, - 0x6A49,0x6A67,0x6A32,0x6A68,0x6A3E,0x6A5D,0x6A6D,0x6A76, - 0x6A5B,0x6A51,0x6A28,0x6A5A,0x6A3B,0x6A3F,0x6A41,0x6A6A, - 0x6A64,0x6A50,0x6A4F,0x6A54,0x6A6F,0x6A69,0x6A60,0x6A3C, - 0x6A5E,0x6A56,0x6A55,0x6A4D,0x6A4E,0x6A46,0x6B55,0x6B54, - 0x6B56,0x6BA7,0x6BAA,0x6BAB,0x6BC8,0x6BC7,0x6C04,0x6C03, - 0x6C06,0x6FAD,0x6FCB,0x6FA3,0x6FC7,0x6FBC,0x6FCE,0x6FC8, - 0x6F5E,0x6FC4,0x6FBD,0x6F9E,0x6FCA,0x6FA8,0x7004,0x6FA5, - 0x6FAE,0x6FBA,0x6FAC,0x6FAA,0x6FCF,0x6FBF,0x6FB8,INVALC, - /* Block 235, Array index 0x4900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6FA2,0x6FC9,0x6FAB,0x6FCD,0x6FAF,0x6FB2,0x6FB0,0x71C5, - 0x71C2,0x71BF,0x71B8,0x71D6,0x71C0,0x71C1,0x71CB,0x71D4, - 0x71CA,0x71C7,0x71CF,0x71BD,0x71D8,0x71BC,0x71C6,0x71DA, - 0x71DB,0x729D,0x729E,0x7369,0x7366,0x7367,0x736C,0x7365, - 0x736B,0x736A,0x747F,0x749A,0x74A0,0x7494,0x7492,0x7495, - 0x74A1,0x750B,0x7580,0x762F,0x762D,0x7631,0x763D,0x7633, - 0x763C,0x7635,0x7632,0x7630,0x76BB,0x76E6,0x779A,0x779D, - 0x77A1,0x779C,0x779B,0x77A2,0x77A3,0x7795,0x7799,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7797,0x78DD,0x78E9,0x78E5,0x78EA,0x78DE,0x78E3, - 0x78DB,0x78E1,0x78E2,0x78ED,0x78DF,0x78E0,0x79A4,0x7A44, - 0x7A48,0x7A47,0x7AB6,0x7AB8,0x7AB5,0x7AB1,0x7AB7,0x7BDE, - 0x7BE3,0x7BE7,0x7BDD,0x7BD5,0x7BE5,0x7BDA,0x7BE8,0x7BF9, - 0x7BD4,0x7BEA,0x7BE2,0x7BDC,0x7BEB,0x7BD8,0x7BDF,0x7CD2, - 0x7CD4,0x7CD7,0x7CD0,0x7CD1,0x7E12,0x7E21,0x7E17,0x7E0C, - 0x7E1F,0x7E20,0x7E13,0x7E0E,0x7E1C,0x7E15,0x7E1A,0x7E22, - 0x7E0B,0x7E0F,0x7E16,0x7E0D,0x7E14,0x7E25,0x7E24,0x7F43, - 0x7F7B,0x7F7C,0x7F7A,0x7FB1,0x7FEF,0x802A,0x8029,0x806C, - 0x81B1,0x81A6,0x81AE,0x81B9,0x81B5,0x81AB,0x81B0,0x81AC, - 0x81B4,0x81B2,0x81B7,0x81A7,0x81F2,0x8255,0x8256,0x8257, - 0x8556,0x8545,0x856B,0x854D,0x8553,0x8561,0x8558,INVALC, - /* Block 236, Array index 0x4A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8540,0x8546,0x8564,0x8541,0x8562,0x8544,0x8551,0x8547, - 0x8563,0x853E,0x855B,0x8571,0x854E,0x856E,0x8575,0x8555, - 0x8567,0x8560,0x858C,0x8566,0x855D,0x8554,0x8565,0x856C, - 0x8663,0x8665,0x8664,0x879B,0x878F,0x8797,0x8793,0x8792, - 0x8788,0x8781,0x8796,0x8798,0x8779,0x8787,0x87A3,0x8785, - 0x8790,0x8791,0x879D,0x8784,0x8794,0x879C,0x879A,0x8789, - 0x891E,0x8926,0x8930,0x892D,0x892E,0x8927,0x8931,0x8922, - 0x8929,0x8923,0x892F,0x892C,0x891F,0x89F1,0x8AE0,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8AE2,0x8AF2,0x8AF4,0x8AF5,0x8ADD,0x8B14,0x8AE4, - 0x8ADF,0x8AF0,0x8AC8,0x8ADE,0x8AE1,0x8AE8,0x8AFF,0x8AEF, - 0x8AFB,0x8C91,0x8C92,0x8C90,0x8CF5,0x8CEE,0x8CF1,0x8CF0, - 0x8CF3,0x8D6C,0x8D6E,0x8DA5,0x8DA7,0x8E33,0x8E3E,0x8E38, - 0x8E40,0x8E45,0x8E36,0x8E3C,0x8E3D,0x8E41,0x8E30,0x8E3F, - 0x8EBD,0x8F36,0x8F2E,0x8F35,0x8F32,0x8F39,0x8F37,0x8F34, - 0x9076,0x9079,0x907B,0x9086,0x90FA,0x9133,0x9135,0x9136, - 0x9193,0x9190,0x9191,0x918D,0x918F,0x9327,0x931E,0x9308, - 0x931F,0x9306,0x930F,0x937A,0x9338,0x933C,0x931B,0x9323, - 0x9312,0x9301,0x9346,0x932D,0x930E,0x930D,0x92CB,0x931D, - 0x92FA,0x9325,0x9313,0x92F9,0x92F7,0x9334,0x9302,0x9324, - 0x92FF,0x9329,0x9339,0x9335,0x932A,0x9314,0x930C,INVALC, - /* Block 237, Array index 0x4B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x930B,0x92FE,0x9309,0x9300,0x92FB,0x9316,0x95BC,0x95CD, - 0x95BE,0x95B9,0x95BA,0x95B6,0x95BF,0x95B5,0x95BD,0x96A9, - 0x96D4,0x970B,0x9712,0x9710,0x9799,0x9797,0x9794,0x97F0, - 0x97F8,0x9835,0x982F,0x9832,0x9924,0x991F,0x9927,0x9929, - 0x999E,0x99EE,0x99EC,0x99E5,0x99E4,0x99F0,0x99E3,0x99EA, - 0x99E9,0x99E7,0x9AB9,0x9ABF,0x9AB4,0x9ABB,0x9AF6,0x9AFA, - 0x9AF9,0x9AF7,0x9B33,0x9B80,0x9B85,0x9B87,0x9B7C,0x9B7E, - 0x9B7B,0x9B82,0x9B93,0x9B92,0x9B90,0x9B7A,0x9B95,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9B7D,0x9B88,0x9D25,0x9D17,0x9D20,0x9D1E,0x9D14, - 0x9D29,0x9D1D,0x9D18,0x9D22,0x9D10,0x9D19,0x9D1F,0x9E88, - 0x9E86,0x9E87,0x9EAE,0x9EAD,0x9ED5,0x9ED6,0x9EFA,0x9F12, - 0x9F3D,0x5126,0x5125,0x5122,0x5124,0x5120,0x5129,0x52F4, - 0x5693,0x568C,0x568D,0x5686,0x5684,0x5683,0x567E,0x5682, - 0x567F,0x5681,0x58D6,0x58D4,0x58CF,0x58D2,0x5B2D,0x5B25, - 0x5B32,0x5B23,0x5B2C,0x5B27,0x5B26,0x5B2F,0x5B2E,0x5B7B, - 0x5BF1,0x5BF2,0x5DB7,0x5E6C,0x5E6A,0x5FBE,0x5FBB,0x61C3, - 0x61B5,0x61BC,0x61E7,0x61E0,0x61E5,0x61E4,0x61E8,0x61DE, - 0x64EF,0x64E9,0x64E3,0x64EB,0x64E4,0x64E8,0x6581,0x6580, - 0x65B6,0x65DA,0x66D2,0x6A8D,0x6A96,0x6A81,0x6AA5,0x6A89, - 0x6A9F,0x6A9B,0x6AA1,0x6A9E,0x6A87,0x6A93,0x6A8E,INVALC, - /* Block 238, Array index 0x4C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6A95,0x6A83,0x6AA8,0x6AA4,0x6A91,0x6A7F,0x6AA6,0x6A9A, - 0x6A85,0x6A8C,0x6A92,0x6B5B,0x6BAD,0x6C09,0x6FCC,0x6FA9, - 0x6FF4,0x6FD4,0x6FE3,0x6FDC,0x6FED,0x6FE7,0x6FE6,0x6FDE, - 0x6FF2,0x6FDD,0x6FE2,0x6FE8,0x71E1,0x71F1,0x71E8,0x71F2, - 0x71E4,0x71F0,0x71E2,0x7373,0x736E,0x736F,0x7497,0x74B2, - 0x74AB,0x7490,0x74AA,0x74AD,0x74B1,0x74A5,0x74AF,0x7510, - 0x7511,0x7512,0x750F,0x7584,0x7643,0x7648,0x7649,0x7647, - 0x76A4,0x76E9,0x77B5,0x77AB,0x77B2,0x77B7,0x77B6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x77B4,0x77B1,0x77A8,0x77F0,0x78F3,0x78FD,0x7902, - 0x78FB,0x78FC,0x78F2,0x7905,0x78F9,0x78FE,0x7904,0x79AB, - 0x79A8,0x7A5C,0x7A5B,0x7A56,0x7A58,0x7A54,0x7A5A,0x7ABE, - 0x7AC0,0x7AC1,0x7C05,0x7C0F,0x7BF2,0x7C00,0x7BFF,0x7BFB, - 0x7C0E,0x7BF4,0x7C0B,0x7BF3,0x7C02,0x7C09,0x7C03,0x7C01, - 0x7BF8,0x7BFD,0x7C06,0x7BF0,0x7BF1,0x7C10,0x7C0A,0x7CE8, - 0x7E2D,0x7E3C,0x7E42,0x7E33,0x9848,0x7E38,0x7E2A,0x7E49, - 0x7E40,0x7E47,0x7E29,0x7E4C,0x7E30,0x7E3B,0x7E36,0x7E44, - 0x7E3A,0x7F45,0x7F7F,0x7F7E,0x7F7D,0x7FF4,0x7FF2,0x802C, - 0x81BB,0x81C4,0x81CC,0x81CA,0x81C5,0x81C7,0x81BC,0x81E9, - 0x825B,0x825A,0x825C,0x8583,0x8580,0x858F,0x85A7,0x8595, - 0x85A0,0x858B,0x85A3,0x857B,0x85A4,0x859A,0x859E,INVALC, - /* Block 239, Array index 0x4D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8577,0x857C,0x8589,0x85A1,0x857A,0x8578,0x8557,0x858E, - 0x8596,0x8586,0x858D,0x8599,0x859D,0x8581,0x85A2,0x8582, - 0x8588,0x8585,0x8579,0x8576,0x8598,0x8590,0x859F,0x8668, - 0x87BE,0x87AA,0x87AD,0x87C5,0x87B0,0x87AC,0x87B9,0x87B5, - 0x87BC,0x87AE,0x87C9,0x87C3,0x87C2,0x87CC,0x87B7,0x87AF, - 0x87C4,0x87CA,0x87B4,0x87B6,0x87BF,0x87B8,0x87BD,0x87DE, - 0x87B2,0x8935,0x8933,0x893C,0x893E,0x8941,0x8952,0x8937, - 0x8942,0x89AD,0x89AF,0x89AE,0x89F2,0x89F3,0x8B1E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8B18,0x8B16,0x8B11,0x8B05,0x8B0B,0x8B22,0x8B0F, - 0x8B12,0x8B15,0x8B07,0x8B0D,0x8B08,0x8B06,0x8B1C,0x8B13, - 0x8B1A,0x8C4F,0x8C70,0x8C72,0x8C71,0x8C6F,0x8C95,0x8C94, - 0x8CF9,0x8D6F,0x8E4E,0x8E4D,0x8E53,0x8E50,0x8E4C,0x8E47, - 0x8F43,0x8F40,0x9085,0x907E,0x9138,0x919A,0x91A2,0x919B, - 0x9199,0x919F,0x91A1,0x919D,0x91A0,0x93A1,0x9383,0x93AF, - 0x9364,0x9356,0x9347,0x937C,0x9358,0x935C,0x9376,0x9349, - 0x9350,0x9351,0x9360,0x936D,0x938F,0x934C,0x936A,0x9379, - 0x9357,0x9355,0x9352,0x934F,0x9371,0x9377,0x937B,0x9361, - 0x935E,0x9363,0x9367,0x9380,0x934E,0x9359,0x95C7,0x95C0, - 0x95C9,0x95C3,0x95C5,0x95B7,0x96AE,0x96B0,0x96AC,0x9720, - 0x971F,0x9718,0x971D,0x9719,0x979A,0x97A1,0x979C,INVALC, - /* Block 240, Array index 0x4E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x979E,0x979D,0x97D5,0x97D4,0x97F1,0x9841,0x9844,0x984A, - 0x9849,0x9845,0x9843,0x9925,0x992B,0x992C,0x992A,0x9933, - 0x9932,0x992F,0x992D,0x9931,0x9930,0x9998,0x99A3,0x99A1, - 0x9A02,0x99FA,0x99F4,0x99F7,0x99F9,0x99F8,0x99F6,0x99FB, - 0x99FD,0x99FE,0x99FC,0x9A03,0x9ABE,0x9AFE,0x9AFD,0x9B01, - 0x9AFC,0x9B48,0x9B9A,0x9BA8,0x9B9E,0x9B9B,0x9BA6,0x9BA1, - 0x9BA5,0x9BA4,0x9B86,0x9BA2,0x9BA0,0x9BAF,0x9D33,0x9D41, - 0x9D67,0x9D36,0x9D2E,0x9D2F,0x9D31,0x9D38,0x9D30,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9D45,0x9D42,0x9D43,0x9D3E,0x9D37,0x9D40,0x9D3D, - 0x7FF5,0x9D2D,0x9E8A,0x9E89,0x9E8D,0x9EB0,0x9EC8,0x9EDA, - 0x9EFB,0x9EFF,0x9F24,0x9F23,0x9F22,0x9F54,0x9FA0,0x5131, - 0x512D,0x512E,0x5698,0x569C,0x5697,0x569A,0x569D,0x5699, - 0x5970,0x5B3C,0x5C69,0x5C6A,0x5DC0,0x5E6D,0x5E6E,0x61D8, - 0x61DF,0x61ED,0x61EE,0x61F1,0x61EA,0x61F0,0x61EB,0x61D6, - 0x61E9,0x64FF,0x6504,0x64FD,0x64F8,0x6501,0x6503,0x64FC, - 0x6594,0x65DB,0x66DA,0x66DB,0x66D8,0x6AC5,0x6AB9,0x6ABD, - 0x6AE1,0x6AC6,0x6ABA,0x6AB6,0x6AB7,0x6AC7,0x6AB4,0x6AAD, - 0x6B5E,0x6BC9,0x6C0B,0x7007,0x700C,0x700D,0x7001,0x7005, - 0x7014,0x700E,0x6FFF,0x7000,0x6FFB,0x7026,0x6FFC,0x6FF7, - 0x700A,0x7201,0x71FF,0x71F9,0x7203,0x71FD,0x7376,INVALC, - /* Block 241, Array index 0x4F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x74B8,0x74C0,0x74B5,0x74C1,0x74BE,0x74B6,0x74BB,0x74C2, - 0x7514,0x7513,0x765C,0x7664,0x7659,0x7650,0x7653,0x7657, - 0x765A,0x76A6,0x76BD,0x76EC,0x77C2,0x77BA,0x78FF,0x790C, - 0x7913,0x7914,0x7909,0x7910,0x7912,0x7911,0x79AD,0x79AC, - 0x7A5F,0x7C1C,0x7C29,0x7C19,0x7C20,0x7C1F,0x7C2D,0x7C1D, - 0x7C26,0x7C28,0x7C22,0x7C25,0x7C30,0x7E5C,0x7E50,0x7E56, - 0x7E63,0x7E58,0x7E62,0x7E5F,0x7E51,0x7E60,0x7E57,0x7E53, - 0x7FB5,0x7FB3,0x7FF7,0x7FF8,0x8075,0x81D1,0x81D2,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x81D0,0x825F,0x825E,0x85B4,0x85C6,0x85C0,0x85C3, - 0x85C2,0x85B3,0x85B5,0x85BD,0x85C7,0x85C4,0x85BF,0x85CB, - 0x85CE,0x85C8,0x85C5,0x85B1,0x85B6,0x85D2,0x8624,0x85B8, - 0x85B7,0x85BE,0x8669,0x87E7,0x87E6,0x87E2,0x87DB,0x87EB, - 0x87EA,0x87E5,0x87DF,0x87F3,0x87E4,0x87D4,0x87DC,0x87D3, - 0x87ED,0x87D8,0x87E3,0x87A4,0x87D7,0x87D9,0x8801,0x87F4, - 0x87E8,0x87DD,0x8953,0x894B,0x894F,0x894C,0x8946,0x8950, - 0x8951,0x8949,0x8B2A,0x8B27,0x8B23,0x8B33,0x8B30,0x8B35, - 0x8B47,0x8B2F,0x8B3C,0x8B3E,0x8B31,0x8B25,0x8B37,0x8B26, - 0x8B36,0x8B2E,0x8B24,0x8B3B,0x8B3D,0x8B3A,0x8C42,0x8C75, - 0x8C99,0x8C98,0x8C97,0x8CFE,0x8D04,0x8D02,0x8D00,0x8E5C, - 0x8E62,0x8E60,0x8E57,0x8E56,0x8E5E,0x8E65,0x8E67,INVALC, - /* Block 242, Array index 0x5000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8E5B,0x8E5A,0x8E61,0x8E5D,0x8E69,0x8E54,0x8F46,0x8F47, - 0x8F48,0x8F4B,0x9128,0x913A,0x913B,0x913E,0x91A8,0x91A5, - 0x91A7,0x91AF,0x91AA,0x93B5,0x938C,0x9392,0x93B7,0x939B, - 0x939D,0x9389,0x93A7,0x938E,0x93AA,0x939E,0x93A6,0x9395, - 0x9388,0x9399,0x939F,0x938D,0x93B1,0x9391,0x93B2,0x93A4, - 0x93A8,0x93B4,0x93A3,0x93A5,0x95D2,0x95D3,0x95D1,0x96B3, - 0x96D7,0x96DA,0x5DC2,0x96DF,0x96D8,0x96DD,0x9723,0x9722, - 0x9725,0x97AC,0x97AE,0x97A8,0x97AB,0x97A4,0x97AA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x97A2,0x97A5,0x97D7,0x97D9,0x97D6,0x97D8,0x97FA, - 0x9850,0x9851,0x9852,0x98B8,0x9941,0x993C,0x993A,0x9A0F, - 0x9A0B,0x9A09,0x9A0D,0x9A04,0x9A11,0x9A0A,0x9A05,0x9A07, - 0x9A06,0x9AC0,0x9ADC,0x9B08,0x9B04,0x9B05,0x9B29,0x9B35, - 0x9B4A,0x9B4C,0x9B4B,0x9BC7,0x9BC6,0x9BC3,0x9BBF,0x9BC1, - 0x9BB5,0x9BB8,0x9BD3,0x9BB6,0x9BC4,0x9BB9,0x9BBD,0x9D5C, - 0x9D53,0x9D4F,0x9D4A,0x9D5B,0x9D4B,0x9D59,0x9D56,0x9D4C, - 0x9D57,0x9D52,0x9D54,0x9D5F,0x9D58,0x9D5A,0x9E8E,0x9E8C, - 0x9EDF,0x9F01,0x9F00,0x9F16,0x9F25,0x9F2B,0x9F2A,0x9F29, - 0x9F28,0x9F4C,0x9F55,0x5134,0x5135,0x5296,0x52F7,0x53B4, - 0x56AB,0x56AD,0x56A6,0x56A7,0x56AA,0x56AC,0x58DA,0x58DD, - 0x58DB,0x5912,0x5B3D,0x5B3E,0x5B3F,0x5DC3,0x5E70,INVALC, - /* Block 243, Array index 0x5100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5FBF,0x61FB,0x6507,0x6510,0x650D,0x6509,0x650C,0x650E, - 0x6584,0x65DE,0x65DD,0x66DE,0x6AE7,0x6AE0,0x6ACC,0x6AD1, - 0x6AD9,0x6ACB,0x6ADF,0x6ADC,0x6AD0,0x6AEB,0x6ACF,0x6ACD, - 0x6ADE,0x6B60,0x6BB0,0x6C0C,0x7019,0x7027,0x7020,0x7016, - 0x702B,0x7021,0x7022,0x7023,0x7029,0x7017,0x7024,0x701C, - 0x702A,0x720C,0x720A,0x7207,0x7202,0x7205,0x72A5,0x72A6, - 0x72A4,0x72A3,0x72A1,0x74CB,0x74C5,0x74B7,0x74C3,0x7516, - 0x7660,0x77C9,0x77CA,0x77C4,0x77F1,0x791D,0x791B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7921,0x791C,0x7917,0x791E,0x79B0,0x7A67,0x7A68, - 0x7C33,0x7C3C,0x7C39,0x7C2C,0x7C3B,0x7CEC,0x7CEA,0x7E76, - 0x7E75,0x7E78,0x7E70,0x7E77,0x7E6F,0x7E7A,0x7E72,0x7E74, - 0x7E68,0x7F4B,0x7F4A,0x7F83,0x7F86,0x7FB7,0x7FFD,0x7FFE, - 0x8078,0x81D7,0x81D5,0x8264,0x8261,0x8263,0x85EB,0x85F1, - 0x85ED,0x85D9,0x85E1,0x85E8,0x85DA,0x85D7,0x85EC,0x85F2, - 0x85F8,0x85D8,0x85DF,0x85E3,0x85DC,0x85D1,0x85F0,0x85E6, - 0x85EF,0x85DE,0x85E2,0x8800,0x87FA,0x8803,0x87F6,0x87F7, - 0x8809,0x880C,0x880B,0x8806,0x87FC,0x8808,0x87FF,0x880A, - 0x8802,0x8962,0x895A,0x895B,0x8957,0x8961,0x895C,0x8958, - 0x895D,0x8959,0x8988,0x89B7,0x89B6,0x89F6,0x8B50,0x8B48, - 0x8B4A,0x8B40,0x8B53,0x8B56,0x8B54,0x8B4B,0x8B55,INVALC, - /* Block 244, Array index 0x5200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8B51,0x8B42,0x8B52,0x8B57,0x8C43,0x8C77,0x8C76,0x8C9A, - 0x8D06,0x8D07,0x8D09,0x8DAC,0x8DAA,0x8DAD,0x8DAB,0x8E6D, - 0x8E78,0x8E73,0x8E6A,0x8E6F,0x8E7B,0x8EC2,0x8F52,0x8F51, - 0x8F4F,0x8F50,0x8F53,0x8FB4,0x9140,0x913F,0x91B0,0x91AD, - 0x93DE,0x93C7,0x93CF,0x93C2,0x93DA,0x93D0,0x93F9,0x93EC, - 0x93CC,0x93D9,0x93A9,0x93E6,0x93CA,0x93D4,0x93EE,0x93E3, - 0x93D5,0x93C4,0x93CE,0x93C0,0x93D2,0x93E7,0x957D,0x95DA, - 0x95DB,0x96E1,0x9729,0x972B,0x972C,0x9728,0x9726,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x97B3,0x97B7,0x97B6,0x97DD,0x97DE,0x97DF,0x985C, - 0x9859,0x985D,0x9857,0x98BF,0x98BD,0x98BB,0x98BE,0x9948, - 0x9947,0x9943,0x99A6,0x99A7,0x9A1A,0x9A15,0x9A25,0x9A1D, - 0x9A24,0x9A1B,0x9A22,0x9A20,0x9A27,0x9A23,0x9A1E,0x9A1C, - 0x9A14,0x9AC2,0x9B0B,0x9B0A,0x9B0E,0x9B0C,0x9B37,0x9BEA, - 0x9BEB,0x9BE0,0x9BDE,0x9BE4,0x9BE6,0x9BE2,0x9BF0,0x9BD4, - 0x9BD7,0x9BEC,0x9BDC,0x9BD9,0x9BE5,0x9BD5,0x9BE1,0x9BDA, - 0x9D77,0x9D81,0x9D8A,0x9D84,0x9D88,0x9D71,0x9D80,0x9D78, - 0x9D86,0x9D8B,0x9D8C,0x9D7D,0x9D6B,0x9D74,0x9D75,0x9D70, - 0x9D69,0x9D85,0x9D73,0x9D7B,0x9D82,0x9D6F,0x9D79,0x9D7F, - 0x9D87,0x9D68,0x9E94,0x9E91,0x9EC0,0x9EFC,0x9F2D,0x9F40, - 0x9F41,0x9F4D,0x9F56,0x9F57,0x9F58,0x5337,0x56B2,INVALC, - /* Block 245, Array index 0x5300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x56B5,0x56B3,0x58E3,0x5B45,0x5DC6,0x5DC7,0x5EEE,0x5EEF, - 0x5FC0,0x5FC1,0x61F9,0x6517,0x6516,0x6515,0x6513,0x65DF, - 0x66E8,0x66E3,0x66E4,0x6AF3,0x6AF0,0x6AEA,0x6AE8,0x6AF9, - 0x6AF1,0x6AEE,0x6AEF,0x703C,0x7035,0x702F,0x7037,0x7034, - 0x7031,0x7042,0x7038,0x703F,0x703A,0x7039,0x7040,0x703B, - 0x7033,0x7041,0x7213,0x7214,0x72A8,0x737D,0x737C,0x74BA, - 0x76AB,0x76AA,0x76BE,0x76ED,0x77CC,0x77CE,0x77CF,0x77CD, - 0x77F2,0x7925,0x7923,0x7927,0x7928,0x7924,0x7929,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x79B2,0x7A6E,0x7A6C,0x7A6D,0x7AF7,0x7C49,0x7C48, - 0x7C4A,0x7C47,0x7C45,0x7CEE,0x7E7B,0x7E7E,0x7E81,0x7E80, - 0x7FBA,0x7FFF,0x8079,0x81DB,0x81D9,0x820B,0x8268,0x8269, - 0x8622,0x85FF,0x8601,0x85FE,0x861B,0x8600,0x85F6,0x8604, - 0x8609,0x8605,0x860C,0x85FD,0x8819,0x8810,0x8811,0x8817, - 0x8813,0x8816,0x8963,0x8966,0x89B9,0x89F7,0x8B60,0x8B6A, - 0x8B5D,0x8B68,0x8B63,0x8B65,0x8B67,0x8B6D,0x8DAE,0x8E86, - 0x8E88,0x8E84,0x8F59,0x8F56,0x8F57,0x8F55,0x8F58,0x8F5A, - 0x908D,0x9143,0x9141,0x91B7,0x91B5,0x91B2,0x91B3,0x940B, - 0x9413,0x93FB,0x9420,0x940F,0x9414,0x93FE,0x9415,0x9410, - 0x9428,0x9419,0x940D,0x93F5,0x9400,0x93F7,0x9407,0x940E, - 0x9416,0x9412,0x93FA,0x9409,0x93F8,0x940A,0x93FF,INVALC, - /* Block 246, Array index 0x5400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x93FC,0x940C,0x93F6,0x9411,0x9406,0x95DE,0x95E0,0x95DF, - 0x972E,0x972F,0x97B9,0x97BB,0x97FD,0x97FE,0x9860,0x9862, - 0x9863,0x985F,0x98C1,0x98C2,0x9950,0x994E,0x9959,0x994C, - 0x994B,0x9953,0x9A32,0x9A34,0x9A31,0x9A2C,0x9A2A,0x9A36, - 0x9A29,0x9A2E,0x9A38,0x9A2D,0x9AC7,0x9ACA,0x9AC6,0x9B10, - 0x9B12,0x9B11,0x9C0B,0x9C08,0x9BF7,0x9C05,0x9C12,0x9BF8, - 0x9C40,0x9C07,0x9C0E,0x9C06,0x9C17,0x9C14,0x9C09,0x9D9F, - 0x9D99,0x9DA4,0x9D9D,0x9D92,0x9D98,0x9D90,0x9D9B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9DA0,0x9D94,0x9D9C,0x9DAA,0x9D97,0x9DA1,0x9D9A, - 0x9DA2,0x9DA8,0x9D9E,0x9DA3,0x9DBF,0x9DA9,0x9D96,0x9DA6, - 0x9DA7,0x9E99,0x9E9B,0x9E9A,0x9EE5,0x9EE4,0x9EE7,0x9EE6, - 0x9F30,0x9F2E,0x9F5B,0x9F60,0x9F5E,0x9F5D,0x9F59,0x9F91, - 0x513A,0x5139,0x5298,0x5297,0x56C3,0x56BD,0x56BE,0x5B48, - 0x5B47,0x5DCB,0x5DCF,0x5EF1,0x61FD,0x651B,0x6B02,0x6AFC, - 0x6B03,0x6AF8,0x6B00,0x7043,0x7044,0x704A,0x7048,0x7049, - 0x7045,0x7046,0x721D,0x721A,0x7219,0x737E,0x7517,0x766A, - 0x77D0,0x792D,0x7931,0x792F,0x7C54,0x7C53,0x7CF2,0x7E8A, - 0x7E87,0x7E88,0x7E8B,0x7E86,0x7E8D,0x7F4D,0x7FBB,0x8030, - 0x81DD,0x8618,0x862A,0x8626,0x861F,0x8623,0x861C,0x8619, - 0x8627,0x862E,0x8621,0x8620,0x8629,0x861E,0x8625,INVALC, - /* Block 247, Array index 0x5500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8829,0x881D,0x881B,0x8820,0x8824,0x881C,0x882B,0x884A, - 0x896D,0x8969,0x896E,0x896B,0x89FA,0x8B79,0x8B78,0x8B45, - 0x8B7A,0x8B7B,0x8D10,0x8D14,0x8DAF,0x8E8E,0x8E8C,0x8F5E, - 0x8F5B,0x8F5D,0x9146,0x9144,0x9145,0x91B9,0x943F,0x943B, - 0x9436,0x9429,0x943D,0x943C,0x9430,0x9439,0x942A,0x9437, - 0x942C,0x9440,0x9431,0x95E5,0x95E4,0x95E3,0x9735,0x973A, - 0x97BF,0x97E1,0x9864,0x98C9,0x98C6,0x98C0,0x9958,0x9956, - 0x9A39,0x9A3D,0x9A46,0x9A44,0x9A42,0x9A41,0x9A3A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9A3F,0x9ACD,0x9B15,0x9B17,0x9B18,0x9B16,0x9B3A, - 0x9B52,0x9C2B,0x9C1D,0x9C1C,0x9C2C,0x9C23,0x9C28,0x9C29, - 0x9C24,0x9C21,0x9DB7,0x9DB6,0x9DBC,0x9DC1,0x9DC7,0x9DCA, - 0x9DCF,0x9DBE,0x9DC5,0x9DC3,0x9DBB,0x9DB5,0x9DCE,0x9DB9, - 0x9DBA,0x9DAC,0x9DC8,0x9DB1,0x9DAD,0x9DCC,0x9DB3,0x9DCD, - 0x9DB2,0x9E7A,0x9E9C,0x9EEB,0x9EEE,0x9EED,0x9F1B,0x9F18, - 0x9F1A,0x9F31,0x9F4E,0x9F65,0x9F64,0x9F92,0x4EB9,0x56C6, - 0x56C5,0x56CB,0x5971,0x5B4B,0x5B4C,0x5DD5,0x5DD1,0x5EF2, - 0x6521,0x6520,0x6526,0x6522,0x6B0B,0x6B08,0x6B09,0x6C0D, - 0x7055,0x7056,0x7057,0x7052,0x721E,0x721F,0x72A9,0x737F, - 0x74D8,0x74D5,0x74D9,0x74D7,0x766D,0x76AD,0x7935,0x79B4, - 0x7A70,0x7A71,0x7C57,0x7C5C,0x7C59,0x7C5B,0x7C5A,INVALC, - /* Block 248, Array index 0x5600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7CF4,0x7CF1,0x7E91,0x7F4F,0x7F87,0x81DE,0x826B,0x8634, - 0x8635,0x8633,0x862C,0x8632,0x8636,0x882C,0x8828,0x8826, - 0x882A,0x8825,0x8971,0x89BF,0x89BE,0x89FB,0x8B7E,0x8B84, - 0x8B82,0x8B86,0x8B85,0x8B7F,0x8D15,0x8E95,0x8E94,0x8E9A, - 0x8E92,0x8E90,0x8E96,0x8E97,0x8F60,0x8F62,0x9147,0x944C, - 0x9450,0x944A,0x944B,0x944F,0x9447,0x9445,0x9448,0x9449, - 0x9446,0x973F,0x97E3,0x986A,0x9869,0x98CB,0x9954,0x995B, - 0x9A4E,0x9A53,0x9A54,0x9A4C,0x9A4F,0x9A48,0x9A4A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9A49,0x9A52,0x9A50,0x9AD0,0x9B19,0x9B2B,0x9B3B, - 0x9B56,0x9B55,0x9C46,0x9C48,0x9C3F,0x9C44,0x9C39,0x9C33, - 0x9C41,0x9C3C,0x9C37,0x9C34,0x9C32,0x9C3D,0x9C36,0x9DDB, - 0x9DD2,0x9DDE,0x9DDA,0x9DCB,0x9DD0,0x9DDC,0x9DD1,0x9DDF, - 0x9DE9,0x9DD9,0x9DD8,0x9DD6,0x9DF5,0x9DD5,0x9DDD,0x9EB6, - 0x9EF0,0x9F35,0x9F33,0x9F32,0x9F42,0x9F6B,0x9F95,0x9FA2, - 0x513D,0x5299,0x58E8,0x58E7,0x5972,0x5B4D,0x5DD8,0x882F, - 0x5F4F,0x6201,0x6203,0x6204,0x6529,0x6525,0x6596,0x66EB, - 0x6B11,0x6B12,0x6B0F,0x6BCA,0x705B,0x705A,0x7222,0x7382, - 0x7381,0x7383,0x7670,0x77D4,0x7C67,0x7C66,0x7E95,0x826C, - 0x863A,0x8640,0x8639,0x863C,0x8631,0x863B,0x863E,0x8830, - 0x8832,0x882E,0x8833,0x8976,0x8974,0x8973,0x89FE,INVALC, - /* Block 249, Array index 0x5700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8B8C,0x8B8E,0x8B8B,0x8B88,0x8C45,0x8D19,0x8E98,0x8F64, - 0x8F63,0x91BC,0x9462,0x9455,0x945D,0x9457,0x945E,0x97C4, - 0x97C5,0x9800,0x9A56,0x9A59,0x9B1E,0x9B1F,0x9B20,0x9C52, - 0x9C58,0x9C50,0x9C4A,0x9C4D,0x9C4B,0x9C55,0x9C59,0x9C4C, - 0x9C4E,0x9DFB,0x9DF7,0x9DEF,0x9DE3,0x9DEB,0x9DF8,0x9DE4, - 0x9DF6,0x9DE1,0x9DEE,0x9DE6,0x9DF2,0x9DF0,0x9DE2,0x9DEC, - 0x9DF4,0x9DF3,0x9DE8,0x9DED,0x9EC2,0x9ED0,0x9EF2,0x9EF3, - 0x9F06,0x9F1C,0x9F38,0x9F37,0x9F36,0x9F43,0x9F4F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9F71,0x9F70,0x9F6E,0x9F6F,0x56D3,0x56CD,0x5B4E, - 0x5C6D,0x652D,0x66ED,0x66EE,0x6B13,0x705F,0x7061,0x705D, - 0x7060,0x7223,0x74DB,0x74E5,0x77D5,0x7938,0x79B7,0x79B6, - 0x7C6A,0x7E97,0x7F89,0x826D,0x8643,0x8838,0x8837,0x8835, - 0x884B,0x8B94,0x8B95,0x8E9E,0x8E9F,0x8EA0,0x8E9D,0x91BE, - 0x91BD,0x91C2,0x946B,0x9468,0x9469,0x96E5,0x9746,0x9743, - 0x9747,0x97C7,0x97E5,0x9A5E,0x9AD5,0x9B59,0x9C63,0x9C67, - 0x9C66,0x9C62,0x9C5E,0x9C60,0x9E02,0x9DFE,0x9E07,0x9E03, - 0x9E06,0x9E05,0x9E00,0x9E01,0x9E09,0x9DFF,0x9DFD,0x9E04, - 0x9EA0,0x9F1E,0x9F46,0x9F74,0x9F75,0x9F76,0x56D4,0x652E, - 0x65B8,0x6B18,0x6B19,0x6B17,0x6B1A,0x7062,0x7226,0x72AA, - 0x77D8,0x77D9,0x7939,0x7C69,0x7C6B,0x7CF6,0x7E9A,INVALC, - /* Block 250, Array index 0x5800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7E98,0x7E9B,0x7E99,0x81E0,0x81E1,0x8646,0x8647,0x8648, - 0x8979,0x897A,0x897C,0x897B,0x89FF,0x8B98,0x8B99,0x8EA5, - 0x8EA4,0x8EA3,0x946E,0x946D,0x946F,0x9471,0x9473,0x9749, - 0x9872,0x995F,0x9C68,0x9C6E,0x9C6D,0x9E0B,0x9E0D,0x9E10, - 0x9E0F,0x9E12,0x9E11,0x9EA1,0x9EF5,0x9F09,0x9F47,0x9F78, - 0x9F7B,0x9F7A,0x9F79,0x571E,0x7066,0x7C6F,0x883C,0x8DB2, - 0x8EA6,0x91C3,0x9474,0x9478,0x9476,0x9475,0x9A60,0x9C74, - 0x9C73,0x9C71,0x9C75,0x9E14,0x9E13,0x9EF6,0x9F0A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9FA4,0x7068,0x7065,0x7CF7,0x866A,0x883E,0x883D, - 0x883F,0x8B9E,0x8C9C,0x8EA9,0x8EC9,0x974B,0x9873,0x9874, - 0x98CC,0x9961,0x99AB,0x9A64,0x9A66,0x9A67,0x9B24,0x9E15, - 0x9E17,0x9F48,0x6207,0x6B1E,0x7227,0x864C,0x8EA8,0x9482, - 0x9480,0x9481,0x9A69,0x9A68,0x9B2E,0x9E19,0x7229,0x864B, - 0x8B9F,0x9483,0x9C79,0x9EB7,0x7675,0x9A6B,0x9C7A,0x9E1D, - 0x7069,0x706A,0x9EA4,0x9F7E,0x9F49,0x9F98,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, -}; - -#endif /* ICONV_TO_UCS_CCS_BIG5 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit big5 -> UCS size-optimized table (28482 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_BIG5) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_size_big5[] = -{ - 0x00B0, /* Ranges number */ - 0x0000, /* Unranged codes number */ - 0x37A1, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0xA140, 0xA17E, 0x0213, - /* Array index: 0x0006 */ 0xA1A1, 0xA1FE, 0x0252, - /* Array index: 0x0009 */ 0xA240, 0xA27E, 0x02B0, - /* Array index: 0x000C */ 0xA2A1, 0xA2FE, 0x02EF, - /* Array index: 0x000F */ 0xA340, 0xA37E, 0x034D, - /* Array index: 0x0012 */ 0xA3A1, 0xA3BF, 0x038C, - /* Array index: 0x0015 */ 0xA440, 0xA47E, 0x03AB, - /* Array index: 0x0018 */ 0xA4A1, 0xA4FE, 0x03EA, - /* Array index: 0x001B */ 0xA540, 0xA57E, 0x0448, - /* Array index: 0x001E */ 0xA5A1, 0xA5FE, 0x0487, - /* Array index: 0x0021 */ 0xA640, 0xA67E, 0x04E5, - /* Array index: 0x0024 */ 0xA6A1, 0xA6FE, 0x0524, - /* Array index: 0x0027 */ 0xA740, 0xA77E, 0x0582, - /* Array index: 0x002A */ 0xA7A1, 0xA7FE, 0x05C1, - /* Array index: 0x002D */ 0xA840, 0xA87E, 0x061F, - /* Array index: 0x0030 */ 0xA8A1, 0xA8FE, 0x065E, - /* Array index: 0x0033 */ 0xA940, 0xA97E, 0x06BC, - /* Array index: 0x0036 */ 0xA9A1, 0xA9FE, 0x06FB, - /* Array index: 0x0039 */ 0xAA40, 0xAA7E, 0x0759, - /* Array index: 0x003C */ 0xAAA1, 0xAAFE, 0x0798, - /* Array index: 0x003F */ 0xAB40, 0xAB7E, 0x07F6, - /* Array index: 0x0042 */ 0xABA1, 0xABFE, 0x0835, - /* Array index: 0x0045 */ 0xAC40, 0xAC7E, 0x0893, - /* Array index: 0x0048 */ 0xACA1, 0xACFE, 0x08D2, - /* Array index: 0x004B */ 0xAD40, 0xAD7E, 0x0930, - /* Array index: 0x004E */ 0xADA1, 0xADFE, 0x096F, - /* Array index: 0x0051 */ 0xAE40, 0xAE7E, 0x09CD, - /* Array index: 0x0054 */ 0xAEA1, 0xAEFE, 0x0A0C, - /* Array index: 0x0057 */ 0xAF40, 0xAF7E, 0x0A6A, - /* Array index: 0x005A */ 0xAFA1, 0xAFFE, 0x0AA9, - /* Array index: 0x005D */ 0xB040, 0xB07E, 0x0B07, - /* Array index: 0x0060 */ 0xB0A1, 0xB0FE, 0x0B46, - /* Array index: 0x0063 */ 0xB140, 0xB17E, 0x0BA4, - /* Array index: 0x0066 */ 0xB1A1, 0xB1FE, 0x0BE3, - /* Array index: 0x0069 */ 0xB240, 0xB27E, 0x0C41, - /* Array index: 0x006C */ 0xB2A1, 0xB2FE, 0x0C80, - /* Array index: 0x006F */ 0xB340, 0xB37E, 0x0CDE, - /* Array index: 0x0072 */ 0xB3A1, 0xB3FE, 0x0D1D, - /* Array index: 0x0075 */ 0xB440, 0xB47E, 0x0D7B, - /* Array index: 0x0078 */ 0xB4A1, 0xB4FE, 0x0DBA, - /* Array index: 0x007B */ 0xB540, 0xB57E, 0x0E18, - /* Array index: 0x007E */ 0xB5A1, 0xB5FE, 0x0E57, - /* Array index: 0x0081 */ 0xB640, 0xB67E, 0x0EB5, - /* Array index: 0x0084 */ 0xB6A1, 0xB6FE, 0x0EF4, - /* Array index: 0x0087 */ 0xB740, 0xB77E, 0x0F52, - /* Array index: 0x008A */ 0xB7A1, 0xB7FE, 0x0F91, - /* Array index: 0x008D */ 0xB840, 0xB87E, 0x0FEF, - /* Array index: 0x0090 */ 0xB8A1, 0xB8FE, 0x102E, - /* Array index: 0x0093 */ 0xB940, 0xB97E, 0x108C, - /* Array index: 0x0096 */ 0xB9A1, 0xB9FE, 0x10CB, - /* Array index: 0x0099 */ 0xBA40, 0xBA7E, 0x1129, - /* Array index: 0x009C */ 0xBAA1, 0xBAFE, 0x1168, - /* Array index: 0x009F */ 0xBB40, 0xBB7E, 0x11C6, - /* Array index: 0x00A2 */ 0xBBA1, 0xBBFE, 0x1205, - /* Array index: 0x00A5 */ 0xBC40, 0xBC7E, 0x1263, - /* Array index: 0x00A8 */ 0xBCA1, 0xBCFE, 0x12A2, - /* Array index: 0x00AB */ 0xBD40, 0xBD7E, 0x1300, - /* Array index: 0x00AE */ 0xBDA1, 0xBDFE, 0x133F, - /* Array index: 0x00B1 */ 0xBE40, 0xBE7E, 0x139D, - /* Array index: 0x00B4 */ 0xBEA1, 0xBEFE, 0x13DC, - /* Array index: 0x00B7 */ 0xBF40, 0xBF7E, 0x143A, - /* Array index: 0x00BA */ 0xBFA1, 0xBFFE, 0x1479, - /* Array index: 0x00BD */ 0xC040, 0xC07E, 0x14D7, - /* Array index: 0x00C0 */ 0xC0A1, 0xC0FE, 0x1516, - /* Array index: 0x00C3 */ 0xC140, 0xC17E, 0x1574, - /* Array index: 0x00C6 */ 0xC1A1, 0xC1FE, 0x15B3, - /* Array index: 0x00C9 */ 0xC240, 0xC27E, 0x1611, - /* Array index: 0x00CC */ 0xC2A1, 0xC2FE, 0x1650, - /* Array index: 0x00CF */ 0xC340, 0xC37E, 0x16AE, - /* Array index: 0x00D2 */ 0xC3A1, 0xC3FE, 0x16ED, - /* Array index: 0x00D5 */ 0xC440, 0xC47E, 0x174B, - /* Array index: 0x00D8 */ 0xC4A1, 0xC4FE, 0x178A, - /* Array index: 0x00DB */ 0xC540, 0xC57E, 0x17E8, - /* Array index: 0x00DE */ 0xC5A1, 0xC5FE, 0x1827, - /* Array index: 0x00E1 */ 0xC640, 0xC67E, 0x1885, - /* Array index: 0x00E4 */ 0xC6A1, 0xC6FE, 0x18C4, - /* Array index: 0x00E7 */ 0xC740, 0xC77E, 0x1922, - /* Array index: 0x00EA */ 0xC7A1, 0xC7FC, 0x1961, - /* Array index: 0x00ED */ 0xC940, 0xC97E, 0x19BD, - /* Array index: 0x00F0 */ 0xC9A1, 0xC9FE, 0x19FC, - /* Array index: 0x00F3 */ 0xCA40, 0xCA7E, 0x1A5A, - /* Array index: 0x00F6 */ 0xCAA1, 0xCAFE, 0x1A99, - /* Array index: 0x00F9 */ 0xCB40, 0xCB7E, 0x1AF7, - /* Array index: 0x00FC */ 0xCBA1, 0xCBFE, 0x1B36, - /* Array index: 0x00FF */ 0xCC40, 0xCC7E, 0x1B94, - /* Array index: 0x0102 */ 0xCCA1, 0xCCFE, 0x1BD3, - /* Array index: 0x0105 */ 0xCD40, 0xCD7E, 0x1C31, - /* Array index: 0x0108 */ 0xCDA1, 0xCDFE, 0x1C70, - /* Array index: 0x010B */ 0xCE40, 0xCE7E, 0x1CCE, - /* Array index: 0x010E */ 0xCEA1, 0xCEFE, 0x1D0D, - /* Array index: 0x0111 */ 0xCF40, 0xCF7E, 0x1D6B, - /* Array index: 0x0114 */ 0xCFA1, 0xCFFE, 0x1DAA, - /* Array index: 0x0117 */ 0xD040, 0xD07E, 0x1E08, - /* Array index: 0x011A */ 0xD0A1, 0xD0FE, 0x1E47, - /* Array index: 0x011D */ 0xD140, 0xD17E, 0x1EA5, - /* Array index: 0x0120 */ 0xD1A1, 0xD1FE, 0x1EE4, - /* Array index: 0x0123 */ 0xD240, 0xD27E, 0x1F42, - /* Array index: 0x0126 */ 0xD2A1, 0xD2FE, 0x1F81, - /* Array index: 0x0129 */ 0xD340, 0xD37E, 0x1FDF, - /* Array index: 0x012C */ 0xD3A1, 0xD3FE, 0x201E, - /* Array index: 0x012F */ 0xD440, 0xD47E, 0x207C, - /* Array index: 0x0132 */ 0xD4A1, 0xD4FE, 0x20BB, - /* Array index: 0x0135 */ 0xD540, 0xD57E, 0x2119, - /* Array index: 0x0138 */ 0xD5A1, 0xD5FE, 0x2158, - /* Array index: 0x013B */ 0xD640, 0xD67E, 0x21B6, - /* Array index: 0x013E */ 0xD6A1, 0xD6FE, 0x21F5, - /* Array index: 0x0141 */ 0xD740, 0xD77E, 0x2253, - /* Array index: 0x0144 */ 0xD7A1, 0xD7FE, 0x2292, - /* Array index: 0x0147 */ 0xD840, 0xD87E, 0x22F0, - /* Array index: 0x014A */ 0xD8A1, 0xD8FE, 0x232F, - /* Array index: 0x014D */ 0xD940, 0xD97E, 0x238D, - /* Array index: 0x0150 */ 0xD9A1, 0xD9FE, 0x23CC, - /* Array index: 0x0153 */ 0xDA40, 0xDA7E, 0x242A, - /* Array index: 0x0156 */ 0xDAA1, 0xDAFE, 0x2469, - /* Array index: 0x0159 */ 0xDB40, 0xDB7E, 0x24C7, - /* Array index: 0x015C */ 0xDBA1, 0xDBFE, 0x2506, - /* Array index: 0x015F */ 0xDC40, 0xDC7E, 0x2564, - /* Array index: 0x0162 */ 0xDCA1, 0xDCFE, 0x25A3, - /* Array index: 0x0165 */ 0xDD40, 0xDD7E, 0x2601, - /* Array index: 0x0168 */ 0xDDA1, 0xDDFE, 0x2640, - /* Array index: 0x016B */ 0xDE40, 0xDE7E, 0x269E, - /* Array index: 0x016E */ 0xDEA1, 0xDEFE, 0x26DD, - /* Array index: 0x0171 */ 0xDF40, 0xDF7E, 0x273B, - /* Array index: 0x0174 */ 0xDFA1, 0xDFFE, 0x277A, - /* Array index: 0x0177 */ 0xE040, 0xE07E, 0x27D8, - /* Array index: 0x017A */ 0xE0A1, 0xE0FE, 0x2817, - /* Array index: 0x017D */ 0xE140, 0xE17E, 0x2875, - /* Array index: 0x0180 */ 0xE1A1, 0xE1FE, 0x28B4, - /* Array index: 0x0183 */ 0xE240, 0xE27E, 0x2912, - /* Array index: 0x0186 */ 0xE2A1, 0xE2FE, 0x2951, - /* Array index: 0x0189 */ 0xE340, 0xE37E, 0x29AF, - /* Array index: 0x018C */ 0xE3A1, 0xE3FE, 0x29EE, - /* Array index: 0x018F */ 0xE440, 0xE47E, 0x2A4C, - /* Array index: 0x0192 */ 0xE4A1, 0xE4FE, 0x2A8B, - /* Array index: 0x0195 */ 0xE540, 0xE57E, 0x2AE9, - /* Array index: 0x0198 */ 0xE5A1, 0xE5FE, 0x2B28, - /* Array index: 0x019B */ 0xE640, 0xE67E, 0x2B86, - /* Array index: 0x019E */ 0xE6A1, 0xE6FE, 0x2BC5, - /* Array index: 0x01A1 */ 0xE740, 0xE77E, 0x2C23, - /* Array index: 0x01A4 */ 0xE7A1, 0xE7FE, 0x2C62, - /* Array index: 0x01A7 */ 0xE840, 0xE87E, 0x2CC0, - /* Array index: 0x01AA */ 0xE8A1, 0xE8FE, 0x2CFF, - /* Array index: 0x01AD */ 0xE940, 0xE97E, 0x2D5D, - /* Array index: 0x01B0 */ 0xE9A1, 0xE9FE, 0x2D9C, - /* Array index: 0x01B3 */ 0xEA40, 0xEA7E, 0x2DFA, - /* Array index: 0x01B6 */ 0xEAA1, 0xEAFE, 0x2E39, - /* Array index: 0x01B9 */ 0xEB40, 0xEB7E, 0x2E97, - /* Array index: 0x01BC */ 0xEBA1, 0xEBFE, 0x2ED6, - /* Array index: 0x01BF */ 0xEC40, 0xEC7E, 0x2F34, - /* Array index: 0x01C2 */ 0xECA1, 0xECFE, 0x2F73, - /* Array index: 0x01C5 */ 0xED40, 0xED7E, 0x2FD1, - /* Array index: 0x01C8 */ 0xEDA1, 0xEDFE, 0x3010, - /* Array index: 0x01CB */ 0xEE40, 0xEE7E, 0x306E, - /* Array index: 0x01CE */ 0xEEA1, 0xEEFE, 0x30AD, - /* Array index: 0x01D1 */ 0xEF40, 0xEF7E, 0x310B, - /* Array index: 0x01D4 */ 0xEFA1, 0xEFFE, 0x314A, - /* Array index: 0x01D7 */ 0xF040, 0xF07E, 0x31A8, - /* Array index: 0x01DA */ 0xF0A1, 0xF0FE, 0x31E7, - /* Array index: 0x01DD */ 0xF140, 0xF17E, 0x3245, - /* Array index: 0x01E0 */ 0xF1A1, 0xF1FE, 0x3284, - /* Array index: 0x01E3 */ 0xF240, 0xF27E, 0x32E2, - /* Array index: 0x01E6 */ 0xF2A1, 0xF2FE, 0x3321, - /* Array index: 0x01E9 */ 0xF340, 0xF37E, 0x337F, - /* Array index: 0x01EC */ 0xF3A1, 0xF3FE, 0x33BE, - /* Array index: 0x01EF */ 0xF440, 0xF47E, 0x341C, - /* Array index: 0x01F2 */ 0xF4A1, 0xF4FE, 0x345B, - /* Array index: 0x01F5 */ 0xF540, 0xF57E, 0x34B9, - /* Array index: 0x01F8 */ 0xF5A1, 0xF5FE, 0x34F8, - /* Array index: 0x01FB */ 0xF640, 0xF67E, 0x3556, - /* Array index: 0x01FE */ 0xF6A1, 0xF6FE, 0x3595, - /* Array index: 0x0201 */ 0xF740, 0xF77E, 0x35F3, - /* Array index: 0x0204 */ 0xF7A1, 0xF7FE, 0x3632, - /* Array index: 0x0207 */ 0xF840, 0xF87E, 0x3690, - /* Array index: 0x020A */ 0xF8A1, 0xF8FE, 0x36CF, - /* Array index: 0x020D */ 0xF940, 0xF97E, 0x372D, - /* Array index: 0x0210 */ 0xF9A1, 0xF9D5, 0x376C, - /* Ranges content */ - /* Range 0xA140 - 0xA17E, array index: 0x0213 */ - 0x3000,0xFF0C,0x3001,0x3002,0xFF0E,0x2022,0xFF1B,0xFF1A, - 0xFF1F,0xFF01,0xFE30,0x2026,0x2025,0xFE50,0xFF64,0xFE52, - 0x00B7,0xFE54,0xFE55,0xFE56,0xFE57,0xFF5C,0x2013,0xFE31, - 0x2014,0xFE33,0xFFFD,0xFE34,0xFE4F,0xFF08,0xFF09,0xFE35, - 0xFE36,0xFF5B,0xFF5D,0xFE37,0xFE38,0x3014,0x3015,0xFE39, - 0xFE3A,0x3010,0x3011,0xFE3B,0xFE3C,0x300A,0x300B,0xFE3D, - 0xFE3E,0x3008,0x3009,0xFE3F,0xFE40,0x300C,0x300D,0xFE41, - 0xFE42,0x300E,0x300F,0xFE43,0xFE44,0xFE59,0xFE5A, - /* Range 0xA1A1 - 0xA1FE, array index: 0x0252 */ - 0xFE5B,0xFE5C,0xFE5D,0xFE5E,0x2018,0x2019,0x201C,0x201D, - 0x301D,0x301E,0x2035,0x2032,0xFF03,0xFF06,0xFF0A,0x203B, - 0x00A7,0x3003,0x25CB,0x25CF,0x25B3,0x25B2,0x25CE,0x2606, - 0x2605,0x25C7,0x25C6,0x25A1,0x25A0,0x25BD,0x25BC,0x32A3, - 0x2105,0x203E,0xFFFD,0xFF3F,0xFFFD,0xFE49,0xFE4A,0xFE4D, - 0xFE4E,0xFE4B,0xFE4C,0xFE5F,0xFE60,0xFE61,0xFF0B,0xFF0D, - 0x00D7,0x00F7,0x00B1,0x221A,0xFF1C,0xFF1E,0xFF1D,0x2266, - 0x2267,0x2260,0x221E,0x2252,0x2261,0xFE62,0xFE63,0xFE64, - 0xFE65,0xFE66,0x223C,0x2229,0x222A,0x22A5,0x2220,0x221F, - 0x22BF,0x33D2,0x33D1,0x222B,0x222E,0x2235,0x2234,0x2640, - 0x2642,0x2641,0x2609,0x2191,0x2193,0x2190,0x2192,0x2196, - 0x2197,0x2199,0x2198,0x2225,0x2223,0xFFFD, - /* Range 0xA240 - 0xA27E, array index: 0x02B0 */ - 0xFFFD,0xFF0F,0xFF3C,0xFF04,0x00A5,0x3012,0x00A2,0x00A3, - 0xFF05,0xFF20,0x2103,0x2109,0xFE69,0xFE6A,0xFE6B,0x33D5, - 0x339C,0x339D,0x339E,0x33CE,0x33A1,0x338E,0x338F,0x33C4, - 0x00B0,0x5159,0x515B,0x515E,0x515D,0x5161,0x5163,0x55E7, - 0x74E9,0x7CCE,0x2581,0x2582,0x2583,0x2584,0x2585,0x2586, - 0x2587,0x2588,0x258F,0x258E,0x258D,0x258C,0x258B,0x258A, - 0x2589,0x253C,0x2534,0x252C,0x2524,0x251C,0x2594,0x2500, - 0x2502,0x2595,0x250C,0x2510,0x2514,0x2518,0x256D, - /* Range 0xA2A1 - 0xA2FE, array index: 0x02EF */ - 0x256E,0x2570,0x256F,0x2550,0x255E,0x256A,0x2561,0x25E2, - 0x25E3,0x25E5,0x25E4,0x2571,0x2572,0x2573,0xFF10,0xFF11, - 0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,0xFF18,0xFF19, - 0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167, - 0x2168,0x2169,0x3021,0x3022,0x3023,0x3024,0x3025,0x3026, - 0x3027,0x3028,0x3029,0xFFFD,0x5344,0xFFFD,0xFF21,0xFF22, - 0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28,0xFF29,0xFF2A, - 0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30,0xFF31,0xFF32, - 0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38,0xFF39,0xFF3A, - 0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,0xFF48, - 0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F,0xFF50, - 0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56, - /* Range 0xA340 - 0xA37E, array index: 0x034D */ - 0xFF57,0xFF58,0xFF59,0xFF5A,0x0391,0x0392,0x0393,0x0394, - 0x0395,0x0396,0x0397,0x0398,0x0399,0x039A,0x039B,0x039C, - 0x039D,0x039E,0x039F,0x03A0,0x03A1,0x03A3,0x03A4,0x03A5, - 0x03A6,0x03A7,0x03A8,0x03A9,0x03B1,0x03B2,0x03B3,0x03B4, - 0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,0x03BB,0x03BC, - 0x03BD,0x03BE,0x03BF,0x03C0,0x03C1,0x03C3,0x03C4,0x03C5, - 0x03C6,0x03C7,0x03C8,0x03C9,0x3105,0x3106,0x3107,0x3108, - 0x3109,0x310A,0x310B,0x310C,0x310D,0x310E,0x310F, - /* Range 0xA3A1 - 0xA3BF, array index: 0x038C */ - 0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116,0x3117, - 0x3118,0x3119,0x311A,0x311B,0x311C,0x311D,0x311E,0x311F, - 0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126,0x3127, - 0x3128,0x3129,0x02D9,0x02C9,0x02CA,0x02C7,0x02CB, - /* Range 0xA440 - 0xA47E, array index: 0x03AB */ - 0x4E00,0x4E59,0x4E01,0x4E03,0x4E43,0x4E5D,0x4E86,0x4E8C, - 0x4EBA,0x513F,0x5165,0x516B,0x51E0,0x5200,0x5201,0x529B, - 0x5315,0x5341,0x535C,0x53C8,0x4E09,0x4E0B,0x4E08,0x4E0A, - 0x4E2B,0x4E38,0x51E1,0x4E45,0x4E48,0x4E5F,0x4E5E,0x4E8E, - 0x4EA1,0x5140,0x5203,0x52FA,0x5343,0x53C9,0x53E3,0x571F, - 0x58EB,0x5915,0x5927,0x5973,0x5B50,0x5B51,0x5B53,0x5BF8, - 0x5C0F,0x5C22,0x5C38,0x5C71,0x5DDD,0x5DE5,0x5DF1,0x5DF2, - 0x5DF3,0x5DFE,0x5E72,0x5EFE,0x5F0B,0x5F13,0x624D, - /* Range 0xA4A1 - 0xA4FE, array index: 0x03EA */ - 0x4E11,0x4E10,0x4E0D,0x4E2D,0x4E30,0x4E39,0x4E4B,0x5C39, - 0x4E88,0x4E91,0x4E95,0x4E92,0x4E94,0x4EA2,0x4EC1,0x4EC0, - 0x4EC3,0x4EC6,0x4EC7,0x4ECD,0x4ECA,0x4ECB,0x4EC4,0x5143, - 0x5141,0x5167,0x516D,0x516E,0x516C,0x5197,0x51F6,0x5206, - 0x5207,0x5208,0x52FB,0x52FE,0x52FF,0x5316,0x5339,0x5348, - 0x5347,0x5345,0x535E,0x5384,0x53CB,0x53CA,0x53CD,0x58EC, - 0x5929,0x592B,0x592A,0x592D,0x5B54,0x5C11,0x5C24,0x5C3A, - 0x5C6F,0x5DF4,0x5E7B,0x5EFF,0x5F14,0x5F15,0x5FC3,0x6208, - 0x6236,0x624B,0x624E,0x652F,0x6587,0x6597,0x65A4,0x65B9, - 0x65E5,0x66F0,0x6708,0x6728,0x6B20,0x6B62,0x6B79,0x6BCB, - 0x6BD4,0x6BDB,0x6C0F,0x6C34,0x706B,0x722A,0x7236,0x723B, - 0x7247,0x7259,0x725B,0x72AC,0x738B,0x4E19, - /* Range 0xA540 - 0xA57E, array index: 0x0448 */ - 0x4E16,0x4E15,0x4E14,0x4E18,0x4E3B,0x4E4D,0x4E4F,0x4E4E, - 0x4EE5,0x4ED8,0x4ED4,0x4ED5,0x4ED6,0x4ED7,0x4EE3,0x4EE4, - 0x4ED9,0x4EDE,0x5145,0x5144,0x5189,0x518A,0x51AC,0x51F9, - 0x51FA,0x51F8,0x520A,0x52A0,0x529F,0x5305,0x5306,0x5317, - 0x531D,0x4EDF,0x534A,0x5349,0x5361,0x5360,0x536F,0x536E, - 0x53BB,0x53EF,0x53E4,0x53F3,0x53EC,0x53EE,0x53E9,0x53E8, - 0x53FC,0x53F8,0x53F5,0x53EB,0x53E6,0x53EA,0x53F2,0x53F1, - 0x53F0,0x53E5,0x53ED,0x53FB,0x56DB,0x56DA,0x5916, - /* Range 0xA5A1 - 0xA5FE, array index: 0x0487 */ - 0x592E,0x5931,0x5974,0x5976,0x5B55,0x5B83,0x5C3C,0x5DE8, - 0x5DE7,0x5DE6,0x5E02,0x5E03,0x5E73,0x5E7C,0x5F01,0x5F18, - 0x5F17,0x5FC5,0x620A,0x6253,0x6254,0x6252,0x6251,0x65A5, - 0x65E6,0x672E,0x672C,0x672A,0x672B,0x672D,0x6B63,0x6BCD, - 0x6C11,0x6C10,0x6C38,0x6C41,0x6C40,0x6C3E,0x72AF,0x7384, - 0x7389,0x74DC,0x74E6,0x7518,0x751F,0x7528,0x7529,0x7530, - 0x7531,0x7532,0x7533,0x758B,0x767D,0x76AE,0x76BF,0x76EE, - 0x77DB,0x77E2,0x77F3,0x793A,0x79BE,0x7A74,0x7ACB,0x4E1E, - 0x4E1F,0x4E52,0x4E53,0x4E69,0x4E99,0x4EA4,0x4EA6,0x4EA5, - 0x4EFF,0x4F09,0x4F19,0x4F0A,0x4F15,0x4F0D,0x4F10,0x4F11, - 0x4F0F,0x4EF2,0x4EF6,0x4EFB,0x4EF0,0x4EF3,0x4EFD,0x4F01, - 0x4F0B,0x5149,0x5147,0x5146,0x5148,0x5168, - /* Range 0xA640 - 0xA67E, array index: 0x04E5 */ - 0x5171,0x518D,0x51B0,0x5217,0x5211,0x5212,0x520E,0x5216, - 0x52A3,0x5308,0x5321,0x5320,0x5370,0x5371,0x5409,0x540F, - 0x540C,0x540A,0x5410,0x5401,0x540B,0x5404,0x5411,0x540D, - 0x5408,0x5403,0x540E,0x5406,0x5412,0x56E0,0x56DE,0x56DD, - 0x5733,0x5730,0x5728,0x572D,0x572C,0x572F,0x5729,0x5919, - 0x591A,0x5937,0x5938,0x5984,0x5978,0x5983,0x597D,0x5979, - 0x5982,0x5981,0x5B57,0x5B58,0x5B87,0x5B88,0x5B85,0x5B89, - 0x5BFA,0x5C16,0x5C79,0x5DDE,0x5E06,0x5E76,0x5E74, - /* Range 0xA6A1 - 0xA6FE, array index: 0x0524 */ - 0x5F0F,0x5F1B,0x5FD9,0x5FD6,0x620E,0x620C,0x620D,0x6210, - 0x6263,0x625B,0x6258,0x6536,0x65E9,0x65E8,0x65EC,0x65ED, - 0x66F2,0x66F3,0x6709,0x673D,0x6734,0x6731,0x6735,0x6B21, - 0x6B64,0x6B7B,0x6C16,0x6C5D,0x6C57,0x6C59,0x6C5F,0x6C60, - 0x6C50,0x6C55,0x6C61,0x6C5B,0x6C4D,0x6C4E,0x7070,0x725F, - 0x725D,0x767E,0x7AF9,0x7C73,0x7CF8,0x7F36,0x7F8A,0x7FBD, - 0x8001,0x8003,0x800C,0x8012,0x8033,0x807F,0x8089,0x808B, - 0x808C,0x81E3,0x81EA,0x81F3,0x81FC,0x820C,0x821B,0x821F, - 0x826E,0x8272,0x827E,0x866B,0x8840,0x884C,0x8863,0x897F, - 0x9621,0x4E32,0x4EA8,0x4F4D,0x4F4F,0x4F47,0x4F57,0x4F5E, - 0x4F34,0x4F5B,0x4F55,0x4F30,0x4F50,0x4F51,0x4F3D,0x4F3A, - 0x4F38,0x4F43,0x4F54,0x4F3C,0x4F46,0x4F63, - /* Range 0xA740 - 0xA77E, array index: 0x0582 */ - 0x4F5C,0x4F60,0x4F2F,0x4F4E,0x4F36,0x4F59,0x4F5D,0x4F48, - 0x4F5A,0x514C,0x514B,0x514D,0x5175,0x51B6,0x51B7,0x5225, - 0x5224,0x5229,0x522A,0x5228,0x52AB,0x52A9,0x52AA,0x52AC, - 0x5323,0x5373,0x5375,0x541D,0x542D,0x541E,0x543E,0x5426, - 0x544E,0x5427,0x5446,0x5443,0x5433,0x5448,0x5442,0x541B, - 0x5429,0x544A,0x5439,0x543B,0x5438,0x542E,0x5435,0x5436, - 0x5420,0x543C,0x5440,0x5431,0x542B,0x541F,0x542C,0x56EA, - 0x56F0,0x56E4,0x56EB,0x574A,0x5751,0x5740,0x574D, - /* Range 0xA7A1 - 0xA7FE, array index: 0x05C1 */ - 0x5747,0x574E,0x573E,0x5750,0x574F,0x573B,0x58EF,0x593E, - 0x599D,0x5992,0x59A8,0x599E,0x59A3,0x5999,0x5996,0x598D, - 0x59A4,0x5993,0x598A,0x59A5,0x5B5D,0x5B5C,0x5B5A,0x5B5B, - 0x5B8C,0x5B8B,0x5B8F,0x5C2C,0x5C40,0x5C41,0x5C3F,0x5C3E, - 0x5C90,0x5C91,0x5C94,0x5C8C,0x5DEB,0x5E0C,0x5E8F,0x5E87, - 0x5E8A,0x5EF7,0x5F04,0x5F1F,0x5F64,0x5F62,0x5F77,0x5F79, - 0x5FD8,0x5FCC,0x5FD7,0x5FCD,0x5FF1,0x5FEB,0x5FF8,0x5FEA, - 0x6212,0x6211,0x6284,0x6297,0x6296,0x6280,0x6276,0x6289, - 0x626D,0x628A,0x627C,0x627E,0x6279,0x6273,0x6292,0x626F, - 0x6298,0x626E,0x6295,0x6293,0x6291,0x6286,0x6539,0x653B, - 0x6538,0x65F1,0x66F4,0x675F,0x674E,0x674F,0x6750,0x6751, - 0x675C,0x6756,0x675E,0x6749,0x6746,0x6760, - /* Range 0xA840 - 0xA87E, array index: 0x061F */ - 0x6753,0x6757,0x6B65,0x6BCF,0x6C42,0x6C5E,0x6C99,0x6C81, - 0x6C88,0x6C89,0x6C85,0x6C9B,0x6C6A,0x6C7A,0x6C90,0x6C70, - 0x6C8C,0x6C68,0x6C96,0x6C92,0x6C7D,0x6C83,0x6C72,0x6C7E, - 0x6C74,0x6C86,0x6C76,0x6C8D,0x6C94,0x6C98,0x6C82,0x7076, - 0x707C,0x707D,0x7078,0x7262,0x7261,0x7260,0x72C4,0x72C2, - 0x7396,0x752C,0x752B,0x7537,0x7538,0x7682,0x76EF,0x77E3, - 0x79C1,0x79C0,0x79BF,0x7A76,0x7CFB,0x7F55,0x8096,0x8093, - 0x809D,0x8098,0x809B,0x809A,0x80B2,0x826F,0x8292, - /* Range 0xA8A1 - 0xA8FE, array index: 0x065E */ - 0x828B,0x828D,0x898B,0x89D2,0x8A00,0x8C37,0x8C46,0x8C55, - 0x8C9D,0x8D64,0x8D70,0x8DB3,0x8EAB,0x8ECA,0x8F9B,0x8FB0, - 0x8FC2,0x8FC6,0x8FC5,0x8FC4,0x5DE1,0x9091,0x90A2,0x90AA, - 0x90A6,0x90A3,0x9149,0x91C6,0x91CC,0x9632,0x962E,0x9631, - 0x962A,0x962C,0x4E26,0x4E56,0x4E73,0x4E8B,0x4E9B,0x4E9E, - 0x4EAB,0x4EAC,0x4F6F,0x4F9D,0x4F8D,0x4F73,0x4F7F,0x4F6C, - 0x4F9B,0x4F8B,0x4F86,0x4F83,0x4F70,0x4F75,0x4F88,0x4F69, - 0x4F7B,0x4F96,0x4F7E,0x4F8F,0x4F91,0x4F7A,0x5154,0x5152, - 0x5155,0x5169,0x5177,0x5176,0x5178,0x51BD,0x51FD,0x523B, - 0x5238,0x5237,0x523A,0x5230,0x522E,0x5236,0x5241,0x52BE, - 0x52BB,0x5352,0x5354,0x5353,0x5351,0x5366,0x5377,0x5378, - 0x5379,0x53D6,0x53D4,0x53D7,0x5473,0x5475, - /* Range 0xA940 - 0xA97E, array index: 0x06BC */ - 0x5496,0x5478,0x5495,0x5480,0x547B,0x5477,0x5484,0x5492, - 0x5486,0x547C,0x5490,0x5471,0x5476,0x548C,0x549A,0x5462, - 0x5468,0x548B,0x547D,0x548E,0x56FA,0x5783,0x5777,0x576A, - 0x5769,0x5761,0x5766,0x5764,0x577C,0x591C,0x5949,0x5947, - 0x5948,0x5944,0x5954,0x59BE,0x59BB,0x59D4,0x59B9,0x59AE, - 0x59D1,0x59C6,0x59D0,0x59CD,0x59CB,0x59D3,0x59CA,0x59AF, - 0x59B3,0x59D2,0x59C5,0x5B5F,0x5B64,0x5B63,0x5B97,0x5B9A, - 0x5B98,0x5B9C,0x5B99,0x5B9B,0x5C1A,0x5C48,0x5C45, - /* Range 0xA9A1 - 0xA9FE, array index: 0x06FB */ - 0x5C46,0x5CB7,0x5CA1,0x5CB8,0x5CA9,0x5CAB,0x5CB1,0x5CB3, - 0x5E18,0x5E1A,0x5E16,0x5E15,0x5E1B,0x5E11,0x5E78,0x5E9A, - 0x5E97,0x5E9C,0x5E95,0x5E96,0x5EF6,0x5F26,0x5F27,0x5F29, - 0x5F80,0x5F81,0x5F7F,0x5F7C,0x5FDD,0x5FE0,0x5FFD,0x5FF5, - 0x5FFF,0x600F,0x6014,0x602F,0x6035,0x6016,0x602A,0x6015, - 0x6021,0x6027,0x6029,0x602B,0x601B,0x6216,0x6215,0x623F, - 0x623E,0x6240,0x627F,0x62C9,0x62CC,0x62C4,0x62BF,0x62C2, - 0x62B9,0x62D2,0x62DB,0x62AB,0x62D3,0x62D4,0x62CB,0x62C8, - 0x62A8,0x62BD,0x62BC,0x62D0,0x62D9,0x62C7,0x62CD,0x62B5, - 0x62DA,0x62B1,0x62D8,0x62D6,0x62D7,0x62C6,0x62AC,0x62CE, - 0x653E,0x65A7,0x65BC,0x65FA,0x6614,0x6613,0x660C,0x6606, - 0x6602,0x660E,0x6600,0x660F,0x6615,0x660A, - /* Range 0xAA40 - 0xAA7E, array index: 0x0759 */ - 0x6607,0x670D,0x670B,0x676D,0x678B,0x6795,0x6771,0x679C, - 0x6773,0x6777,0x6787,0x679D,0x6797,0x676F,0x6770,0x677F, - 0x6789,0x677E,0x6790,0x6775,0x679A,0x6793,0x677C,0x676A, - 0x6772,0x6B23,0x6B66,0x6B67,0x6B7F,0x6C13,0x6C1B,0x6CE3, - 0x6CE8,0x6CF3,0x6CB1,0x6CCC,0x6CE5,0x6CB3,0x6CBD,0x6CBE, - 0x6CBC,0x6CE2,0x6CAB,0x6CD5,0x6CD3,0x6CB8,0x6CC4,0x6CB9, - 0x6CC1,0x6CAE,0x6CD7,0x6CC5,0x6CF1,0x6CBF,0x6CBB,0x6CE1, - 0x6CDB,0x6CCA,0x6CAC,0x6CEF,0x6CDC,0x6CD6,0x6CE0, - /* Range 0xAAA1 - 0xAAFE, array index: 0x0798 */ - 0x7095,0x708E,0x7092,0x708A,0x7099,0x722C,0x722D,0x7238, - 0x7248,0x7267,0x7269,0x72C0,0x72CE,0x72D9,0x72D7,0x72D0, - 0x73A9,0x73A8,0x739F,0x73AB,0x73A5,0x753D,0x759D,0x7599, - 0x759A,0x7684,0x76C2,0x76F2,0x76F4,0x77E5,0x77FD,0x793E, - 0x7940,0x7941,0x79C9,0x79C8,0x7A7A,0x7A79,0x7AFA,0x7CFE, - 0x7F54,0x7F8C,0x7F8B,0x8005,0x80BA,0x80A5,0x80A2,0x80B1, - 0x80A1,0x80AB,0x80A9,0x80B4,0x80AA,0x80AF,0x81E5,0x81FE, - 0x820D,0x82B3,0x829D,0x8299,0x82AD,0x82BD,0x829F,0x82B9, - 0x82B1,0x82AC,0x82A5,0x82AF,0x82B8,0x82A3,0x82B0,0x82BE, - 0x82B7,0x864E,0x8671,0x521D,0x8868,0x8ECB,0x8FCE,0x8FD4, - 0x8FD1,0x90B5,0x90B8,0x90B1,0x90B6,0x91C7,0x91D1,0x9577, - 0x9580,0x961C,0x9640,0x963F,0x963B,0x9644, - /* Range 0xAB40 - 0xAB7E, array index: 0x07F6 */ - 0x9642,0x96B9,0x96E8,0x9752,0x975E,0x4E9F,0x4EAD,0x4EAE, - 0x4FE1,0x4FB5,0x4FAF,0x4FBF,0x4FE0,0x4FD1,0x4FCF,0x4FDD, - 0x4FC3,0x4FB6,0x4FD8,0x4FDF,0x4FCA,0x4FD7,0x4FAE,0x4FD0, - 0x4FC4,0x4FC2,0x4FDA,0x4FCE,0x4FDE,0x4FB7,0x5157,0x5192, - 0x5191,0x51A0,0x524E,0x5243,0x524A,0x524D,0x524C,0x524B, - 0x5247,0x52C7,0x52C9,0x52C3,0x52C1,0x530D,0x5357,0x537B, - 0x539A,0x53DB,0x54AC,0x54C0,0x54A8,0x54CE,0x54C9,0x54B8, - 0x54A6,0x54B3,0x54C7,0x54C2,0x54BD,0x54AA,0x54C1, - /* Range 0xABA1 - 0xABFE, array index: 0x0835 */ - 0x54C4,0x54C8,0x54AF,0x54AB,0x54B1,0x54BB,0x54A9,0x54A7, - 0x54BF,0x56FF,0x5782,0x578B,0x57A0,0x57A3,0x57A2,0x57CE, - 0x57AE,0x5793,0x5955,0x5951,0x594F,0x594E,0x5950,0x59DC, - 0x59D8,0x59FF,0x59E3,0x59E8,0x5A03,0x59E5,0x59EA,0x59DA, - 0x59E6,0x5A01,0x59FB,0x5B69,0x5BA3,0x5BA6,0x5BA4,0x5BA2, - 0x5BA5,0x5C01,0x5C4E,0x5C4F,0x5C4D,0x5C4B,0x5CD9,0x5CD2, - 0x5DF7,0x5E1D,0x5E25,0x5E1F,0x5E7D,0x5EA0,0x5EA6,0x5EFA, - 0x5F08,0x5F2D,0x5F65,0x5F88,0x5F85,0x5F8A,0x5F8B,0x5F87, - 0x5F8C,0x5F89,0x6012,0x601D,0x6020,0x6025,0x600E,0x6028, - 0x604D,0x6070,0x6068,0x6062,0x6046,0x6043,0x606C,0x606B, - 0x606A,0x6064,0x6241,0x62DC,0x6316,0x6309,0x62FC,0x62ED, - 0x6301,0x62EE,0x62FD,0x6307,0x62F1,0x62F7, - /* Range 0xAC40 - 0xAC7E, array index: 0x0893 */ - 0x62EF,0x62EC,0x62FE,0x62F4,0x6311,0x6302,0x653F,0x6545, - 0x65AB,0x65BD,0x65E2,0x6625,0x662D,0x6620,0x6627,0x662F, - 0x661F,0x6628,0x6631,0x6624,0x66F7,0x67FF,0x67D3,0x67F1, - 0x67D4,0x67D0,0x67EC,0x67B6,0x67AF,0x67F5,0x67E9,0x67EF, - 0x67C4,0x67D1,0x67B4,0x67DA,0x67E5,0x67B8,0x67CF,0x67DE, - 0x67F3,0x67B0,0x67D9,0x67E2,0x67DD,0x67D2,0x6B6A,0x6B83, - 0x6B86,0x6BB5,0x6BD2,0x6BD7,0x6C1F,0x6CC9,0x6D0B,0x6D32, - 0x6D2A,0x6D41,0x6D25,0x6D0C,0x6D31,0x6D1E,0x6D17, - /* Range 0xACA1 - 0xACFE, array index: 0x08D2 */ - 0x6D3B,0x6D3D,0x6D3E,0x6D36,0x6D1B,0x6CF5,0x6D39,0x6D27, - 0x6D38,0x6D29,0x6D2E,0x6D35,0x6D0E,0x6D2B,0x70AB,0x70BA, - 0x70B3,0x70AC,0x70AF,0x70AD,0x70B8,0x70AE,0x70A4,0x7230, - 0x7272,0x726F,0x7274,0x72E9,0x72E0,0x72E1,0x73B7,0x73CA, - 0x73BB,0x73B2,0x73CD,0x73C0,0x73B3,0x751A,0x752D,0x754F, - 0x754C,0x754E,0x754B,0x75AB,0x75A4,0x75A5,0x75A2,0x75A3, - 0x7678,0x7686,0x7687,0x7688,0x76C8,0x76C6,0x76C3,0x76C5, - 0x7701,0x76F9,0x76F8,0x7709,0x770B,0x76FE,0x76FC,0x7707, - 0x77DC,0x7802,0x7814,0x780C,0x780D,0x7946,0x7949,0x7948, - 0x7947,0x79B9,0x79BA,0x79D1,0x79D2,0x79CB,0x7A7F,0x7A81, - 0x7AFF,0x7AFD,0x7C7D,0x7D02,0x7D05,0x7D00,0x7D09,0x7D07, - 0x7D04,0x7D06,0x7F38,0x7F8E,0x7FBF,0x8004, - /* Range 0xAD40 - 0xAD7E, array index: 0x0930 */ - 0x8010,0x800D,0x8011,0x8036,0x80D6,0x80E5,0x80DA,0x80C3, - 0x80C4,0x80CC,0x80E1,0x80DB,0x80CE,0x80DE,0x80E4,0x80DD, - 0x81F4,0x8222,0x82E7,0x8303,0x8305,0x82E3,0x82DB,0x82E6, - 0x8304,0x82E5,0x8302,0x8309,0x82D2,0x82D7,0x82F1,0x8301, - 0x82DC,0x82D4,0x82D1,0x82DE,0x82D3,0x82DF,0x82EF,0x8306, - 0x8650,0x8679,0x867B,0x867A,0x884D,0x886B,0x8981,0x89D4, - 0x8A08,0x8A02,0x8A03,0x8C9E,0x8CA0,0x8D74,0x8D73,0x8DB4, - 0x8ECD,0x8ECC,0x8FF0,0x8FE6,0x8FE2,0x8FEA,0x8FE5, - /* Range 0xADA1 - 0xADFE, array index: 0x096F */ - 0x8FED,0x8FEB,0x8FE4,0x8FE8,0x90CA,0x90CE,0x90C1,0x90C3, - 0x914B,0x914A,0x91CD,0x9582,0x9650,0x964B,0x964C,0x964D, - 0x9762,0x9769,0x97CB,0x97ED,0x97F3,0x9801,0x98A8,0x98DB, - 0x98DF,0x9996,0x9999,0x4E58,0x4EB3,0x500C,0x500D,0x5023, - 0x4FEF,0x5026,0x5025,0x4FF8,0x5029,0x5016,0x5006,0x503C, - 0x501F,0x501A,0x5012,0x5011,0x4FFA,0x5000,0x5014,0x5028, - 0x4FF1,0x5021,0x500B,0x5019,0x5018,0x4FF3,0x4FEE,0x502D, - 0x502A,0x4FFE,0x502B,0x5009,0x517C,0x51A4,0x51A5,0x51A2, - 0x51CD,0x51CC,0x51C6,0x51CB,0x5256,0x525C,0x5254,0x525B, - 0x525D,0x532A,0x537F,0x539F,0x539D,0x53DF,0x54E8,0x5510, - 0x5501,0x5537,0x54FC,0x54E5,0x54F2,0x5506,0x54FA,0x5514, - 0x54E9,0x54ED,0x54E1,0x5509,0x54EE,0x54EA, - /* Range 0xAE40 - 0xAE7E, array index: 0x09CD */ - 0x54E6,0x5527,0x5507,0x54FD,0x550F,0x5703,0x5704,0x57C2, - 0x57D4,0x57CB,0x57C3,0x5809,0x590F,0x5957,0x5958,0x595A, - 0x5A11,0x5A18,0x5A1C,0x5A1F,0x5A1B,0x5A13,0x59EC,0x5A20, - 0x5A23,0x5A29,0x5A25,0x5A0C,0x5A09,0x5B6B,0x5C58,0x5BB0, - 0x5BB3,0x5BB6,0x5BB4,0x5BAE,0x5BB5,0x5BB9,0x5BB8,0x5C04, - 0x5C51,0x5C55,0x5C50,0x5CED,0x5CFD,0x5CFB,0x5CEA,0x5CE8, - 0x5CF0,0x5CF6,0x5D01,0x5CF4,0x5DEE,0x5E2D,0x5E2B,0x5EAB, - 0x5EAD,0x5EA7,0x5F31,0x5F92,0x5F91,0x5F90,0x6059, - /* Range 0xAEA1 - 0xAEFE, array index: 0x0A0C */ - 0x6063,0x6065,0x6050,0x6055,0x606D,0x6069,0x606F,0x6084, - 0x609F,0x609A,0x608D,0x6094,0x608C,0x6085,0x6096,0x6247, - 0x62F3,0x6308,0x62FF,0x634E,0x633E,0x632F,0x6355,0x6342, - 0x6346,0x634F,0x6349,0x633A,0x6350,0x633D,0x632A,0x632B, - 0x6328,0x634D,0x634C,0x6548,0x6549,0x6599,0x65C1,0x65C5, - 0x6642,0x6649,0x664F,0x6643,0x6652,0x664C,0x6645,0x6641, - 0x66F8,0x6714,0x6715,0x6717,0x6821,0x6838,0x6848,0x6846, - 0x6853,0x6839,0x6842,0x6854,0x6829,0x68B3,0x6817,0x684C, - 0x6851,0x683D,0x67F4,0x6850,0x6840,0x683C,0x6843,0x682A, - 0x6845,0x6813,0x6818,0x6841,0x6B8A,0x6B89,0x6BB7,0x6C23, - 0x6C27,0x6C28,0x6C26,0x6C24,0x6CF0,0x6D6A,0x6D95,0x6D88, - 0x6D87,0x6D66,0x6D78,0x6D77,0x6D59,0x6D93, - /* Range 0xAF40 - 0xAF7E, array index: 0x0A6A */ - 0x6D6C,0x6D89,0x6D6E,0x6D5A,0x6D74,0x6D69,0x6D8C,0x6D8A, - 0x6D79,0x6D85,0x6D65,0x6D94,0x70CA,0x70D8,0x70E4,0x70D9, - 0x70C8,0x70CF,0x7239,0x7279,0x72FC,0x72F9,0x72FD,0x72F8, - 0x72F7,0x7386,0x73ED,0x7409,0x73EE,0x73E0,0x73EA,0x73DE, - 0x7554,0x755D,0x755C,0x755A,0x7559,0x75BE,0x75C5,0x75C7, - 0x75B2,0x75B3,0x75BD,0x75BC,0x75B9,0x75C2,0x75B8,0x768B, - 0x76B0,0x76CA,0x76CD,0x76CE,0x7729,0x771F,0x7720,0x7728, - 0x77E9,0x7830,0x7827,0x7838,0x781D,0x7834,0x7837, - /* Range 0xAFA1 - 0xAFFE, array index: 0x0AA9 */ - 0x7825,0x782D,0x7820,0x781F,0x7832,0x7955,0x7950,0x7960, - 0x795F,0x7956,0x795E,0x795D,0x7957,0x795A,0x79E4,0x79E3, - 0x79E7,0x79DF,0x79E6,0x79E9,0x79D8,0x7A84,0x7A88,0x7AD9, - 0x7B06,0x7B11,0x7C89,0x7D21,0x7D17,0x7D0B,0x7D0A,0x7D20, - 0x7D22,0x7D14,0x7D10,0x7D15,0x7D1A,0x7D1C,0x7D0D,0x7D19, - 0x7D1B,0x7F3A,0x7F5F,0x7F94,0x7FC5,0x7FC1,0x8006,0x8018, - 0x8015,0x8019,0x8017,0x803D,0x803F,0x80F1,0x8102,0x80F0, - 0x8105,0x80ED,0x80F4,0x8106,0x80F8,0x80F3,0x8108,0x80FD, - 0x810A,0x80FC,0x80EF,0x81ED,0x81EC,0x8200,0x8210,0x822A, - 0x822B,0x8228,0x822C,0x82BB,0x832B,0x8352,0x8354,0x834A, - 0x8338,0x8350,0x8349,0x8335,0x8334,0x834F,0x8332,0x8339, - 0x8336,0x8317,0x8340,0x8331,0x8328,0x8343, - /* Range 0xB040 - 0xB07E, array index: 0x0B07 */ - 0x8654,0x868A,0x86AA,0x8693,0x86A4,0x86A9,0x868C,0x86A3, - 0x869C,0x8870,0x8877,0x8881,0x8882,0x887D,0x8879,0x8A18, - 0x8A10,0x8A0E,0x8A0C,0x8A15,0x8A0A,0x8A17,0x8A13,0x8A16, - 0x8A0F,0x8A11,0x8C48,0x8C7A,0x8C79,0x8CA1,0x8CA2,0x8D77, - 0x8EAC,0x8ED2,0x8ED4,0x8ECF,0x8FB1,0x9001,0x9006,0x8FF7, - 0x9000,0x8FFA,0x8FF4,0x9003,0x8FFD,0x9005,0x8FF8,0x9095, - 0x90E1,0x90DD,0x90E2,0x9152,0x914D,0x914C,0x91D8,0x91DD, - 0x91D7,0x91DC,0x91D9,0x9583,0x9662,0x9663,0x9661, - /* Range 0xB0A1 - 0xB0FE, array index: 0x0B46 */ - 0x965B,0x965D,0x9664,0x9658,0x965E,0x96BB,0x98E2,0x99AC, - 0x9AA8,0x9AD8,0x9B25,0x9B32,0x9B3C,0x4E7E,0x507A,0x507D, - 0x505C,0x5047,0x5043,0x504C,0x505A,0x5049,0x5065,0x5076, - 0x504E,0x5055,0x5075,0x5074,0x5077,0x504F,0x500F,0x506F, - 0x506D,0x515C,0x5195,0x51F0,0x526A,0x526F,0x52D2,0x52D9, - 0x52D8,0x52D5,0x5310,0x530F,0x5319,0x533F,0x5340,0x533E, - 0x53C3,0x66FC,0x5546,0x556A,0x5566,0x5544,0x555E,0x5561, - 0x5543,0x554A,0x5531,0x5556,0x554F,0x5555,0x552F,0x5564, - 0x5538,0x552E,0x555C,0x552C,0x5563,0x5533,0x5541,0x5557, - 0x5708,0x570B,0x5709,0x57DF,0x5805,0x580A,0x5806,0x57E0, - 0x57E4,0x57FA,0x5802,0x5835,0x57F7,0x57F9,0x5920,0x5962, - 0x5A36,0x5A41,0x5A49,0x5A66,0x5A6A,0x5A40, - /* Range 0xB140 - 0xB17E, array index: 0x0BA4 */ - 0x5A3C,0x5A62,0x5A5A,0x5A46,0x5A4A,0x5B70,0x5BC7,0x5BC5, - 0x5BC4,0x5BC2,0x5BBF,0x5BC6,0x5C09,0x5C08,0x5C07,0x5C60, - 0x5C5C,0x5C5D,0x5D07,0x5D06,0x5D0E,0x5D1B,0x5D16,0x5D22, - 0x5D11,0x5D29,0x5D14,0x5D19,0x5D24,0x5D27,0x5D17,0x5DE2, - 0x5E38,0x5E36,0x5E33,0x5E37,0x5EB7,0x5EB8,0x5EB6,0x5EB5, - 0x5EBE,0x5F35,0x5F37,0x5F57,0x5F6C,0x5F69,0x5F6B,0x5F97, - 0x5F99,0x5F9E,0x5F98,0x5FA1,0x5FA0,0x5F9C,0x607F,0x60A3, - 0x6089,0x60A0,0x60A8,0x60CB,0x60B4,0x60E6,0x60BD, - /* Range 0xB1A1 - 0xB1FE, array index: 0x0BE3 */ - 0x60C5,0x60BB,0x60B5,0x60DC,0x60BC,0x60D8,0x60D5,0x60C6, - 0x60DF,0x60B8,0x60DA,0x60C7,0x621A,0x621B,0x6248,0x63A0, - 0x63A7,0x6372,0x6396,0x63A2,0x63A5,0x6377,0x6367,0x6398, - 0x63AA,0x6371,0x63A9,0x6389,0x6383,0x639B,0x636B,0x63A8, - 0x6384,0x6388,0x6399,0x63A1,0x63AC,0x6392,0x638F,0x6380, - 0x637B,0x6369,0x6368,0x637A,0x655D,0x6556,0x6551,0x6559, - 0x6557,0x555F,0x654F,0x6558,0x6555,0x6554,0x659C,0x659B, - 0x65AC,0x65CF,0x65CB,0x65CC,0x65CE,0x665D,0x665A,0x6664, - 0x6668,0x6666,0x665E,0x66F9,0x52D7,0x671B,0x6881,0x68AF, - 0x68A2,0x6893,0x68B5,0x687F,0x6876,0x68B1,0x68A7,0x6897, - 0x68B0,0x6883,0x68C4,0x68AD,0x6886,0x6885,0x6894,0x689D, - 0x68A8,0x689F,0x68A1,0x6882,0x6B32,0x6BBA, - /* Range 0xB240 - 0xB27E, array index: 0x0C41 */ - 0x6BEB,0x6BEC,0x6C2B,0x6D8E,0x6DBC,0x6DF3,0x6DD9,0x6DB2, - 0x6DE1,0x6DCC,0x6DE4,0x6DFB,0x6DFA,0x6E05,0x6DC7,0x6DCB, - 0x6DAF,0x6DD1,0x6DAE,0x6DDE,0x6DF9,0x6DB8,0x6DF7,0x6DF5, - 0x6DC5,0x6DD2,0x6E1A,0x6DB5,0x6DDA,0x6DEB,0x6DD8,0x6DEA, - 0x6DF1,0x6DEE,0x6DE8,0x6DC6,0x6DC4,0x6DAA,0x6DEC,0x6DBF, - 0x6DE6,0x70F9,0x7109,0x710A,0x70FD,0x70EF,0x723D,0x727D, - 0x7281,0x731C,0x731B,0x7316,0x7313,0x7319,0x7387,0x7405, - 0x740A,0x7403,0x7406,0x73FE,0x740D,0x74E0,0x74F6, - /* Range 0xB2A1 - 0xB2FE, array index: 0x0C80 */ - 0x74F7,0x751C,0x7522,0x7565,0x7566,0x7562,0x7570,0x758F, - 0x75D4,0x75D5,0x75B5,0x75CA,0x75CD,0x768E,0x76D4,0x76D2, - 0x76DB,0x7737,0x773E,0x773C,0x7736,0x7738,0x773A,0x786B, - 0x7843,0x784E,0x7965,0x7968,0x796D,0x79FB,0x7A92,0x7A95, - 0x7B20,0x7B28,0x7B1B,0x7B2C,0x7B26,0x7B19,0x7B1E,0x7B2E, - 0x7C92,0x7C97,0x7C95,0x7D46,0x7D43,0x7D71,0x7D2E,0x7D39, - 0x7D3C,0x7D40,0x7D30,0x7D33,0x7D44,0x7D2F,0x7D42,0x7D32, - 0x7D31,0x7F3D,0x7F9E,0x7F9A,0x7FCC,0x7FCE,0x7FD2,0x801C, - 0x804A,0x8046,0x812F,0x8116,0x8123,0x812B,0x8129,0x8130, - 0x8124,0x8202,0x8235,0x8237,0x8236,0x8239,0x838E,0x839E, - 0x8398,0x8378,0x83A2,0x8396,0x83BD,0x83AB,0x8392,0x838A, - 0x8393,0x8389,0x83A0,0x8377,0x837B,0x837C, - /* Range 0xB340 - 0xB37E, array index: 0x0CDE */ - 0x8386,0x83A7,0x8655,0x5F6A,0x86C7,0x86C0,0x86B6,0x86C4, - 0x86B5,0x86C6,0x86CB,0x86B1,0x86AF,0x86C9,0x8853,0x889E, - 0x8888,0x88AB,0x8892,0x8896,0x888D,0x888B,0x8993,0x898F, - 0x8A2A,0x8A1D,0x8A23,0x8A25,0x8A31,0x8A2D,0x8A1F,0x8A1B, - 0x8A22,0x8C49,0x8C5A,0x8CA9,0x8CAC,0x8CAB,0x8CA8,0x8CAA, - 0x8CA7,0x8D67,0x8D66,0x8DBE,0x8DBA,0x8EDB,0x8EDF,0x9019, - 0x900D,0x901A,0x9017,0x9023,0x901F,0x901D,0x9010,0x9015, - 0x901E,0x9020,0x900F,0x9022,0x9016,0x901B,0x9014, - /* Range 0xB3A1 - 0xB3FE, array index: 0x0D1D */ - 0x90E8,0x90ED,0x90FD,0x9157,0x91CE,0x91F5,0x91E6,0x91E3, - 0x91E7,0x91ED,0x91E9,0x9589,0x966A,0x9675,0x9673,0x9678, - 0x9670,0x9674,0x9676,0x9677,0x966C,0x96C0,0x96EA,0x96E9, - 0x7AE0,0x7ADF,0x9802,0x9803,0x9B5A,0x9CE5,0x9E75,0x9E7F, - 0x9EA5,0x9EBB,0x50A2,0x508D,0x5085,0x5099,0x5091,0x5080, - 0x5096,0x5098,0x509A,0x6700,0x51F1,0x5272,0x5274,0x5275, - 0x5269,0x52DE,0x52DD,0x52DB,0x535A,0x53A5,0x557B,0x5580, - 0x55A7,0x557C,0x558A,0x559D,0x5598,0x5582,0x559C,0x55AA, - 0x5594,0x5587,0x558B,0x5583,0x55B3,0x55AE,0x559F,0x553E, - 0x55B2,0x559A,0x55BB,0x55AC,0x55B1,0x557E,0x5589,0x55AB, - 0x5599,0x570D,0x582F,0x582A,0x5834,0x5824,0x5830,0x5831, - 0x5821,0x581D,0x5820,0x58F9,0x58FA,0x5960, - /* Range 0xB440 - 0xB47E, array index: 0x0D7B */ - 0x5A77,0x5A9A,0x5A7F,0x5A92,0x5A9B,0x5AA7,0x5B73,0x5B71, - 0x5BD2,0x5BCC,0x5BD3,0x5BD0,0x5C0A,0x5C0B,0x5C31,0x5D4C, - 0x5D50,0x5D34,0x5D47,0x5DFD,0x5E45,0x5E3D,0x5E40,0x5E43, - 0x5E7E,0x5ECA,0x5EC1,0x5EC2,0x5EC4,0x5F3C,0x5F6D,0x5FA9, - 0x5FAA,0x5FA8,0x60D1,0x60E1,0x60B2,0x60B6,0x60E0,0x611C, - 0x6123,0x60FA,0x6115,0x60F0,0x60FB,0x60F4,0x6168,0x60F1, - 0x610E,0x60F6,0x6109,0x6100,0x6112,0x621F,0x6249,0x63A3, - 0x638C,0x63CF,0x63C0,0x63E9,0x63C9,0x63C6,0x63CD, - /* Range 0xB4A1 - 0xB4FE, array index: 0x0DBA */ - 0x63D2,0x63E3,0x63D0,0x63E1,0x63D6,0x63ED,0x63EE,0x6376, - 0x63F4,0x63EA,0x63DB,0x6452,0x63DA,0x63F9,0x655E,0x6566, - 0x6562,0x6563,0x6591,0x6590,0x65AF,0x666E,0x6670,0x6674, - 0x6676,0x666F,0x6691,0x667A,0x667E,0x6677,0x66FE,0x66FF, - 0x671F,0x671D,0x68FA,0x68D5,0x68E0,0x68D8,0x68D7,0x6905, - 0x68DF,0x68F5,0x68EE,0x68E7,0x68F9,0x68D2,0x68F2,0x68E3, - 0x68CB,0x68CD,0x690D,0x6912,0x690E,0x68C9,0x68DA,0x696E, - 0x68FB,0x6B3E,0x6B3A,0x6B3D,0x6B98,0x6B96,0x6BBC,0x6BEF, - 0x6C2E,0x6C2F,0x6C2C,0x6E2F,0x6E38,0x6E54,0x6E21,0x6E32, - 0x6E67,0x6E4A,0x6E20,0x6E25,0x6E23,0x6E1B,0x6E5B,0x6E58, - 0x6E24,0x6E56,0x6E6E,0x6E2D,0x6E26,0x6E6F,0x6E34,0x6E4D, - 0x6E3A,0x6E2C,0x6E43,0x6E1D,0x6E3E,0x6ECB, - /* Range 0xB540 - 0xB57E, array index: 0x0E18 */ - 0x6E89,0x6E19,0x6E4E,0x6E63,0x6E44,0x6E72,0x6E69,0x6E5F, - 0x7119,0x711A,0x7126,0x7130,0x7121,0x7136,0x716E,0x711C, - 0x724C,0x7284,0x7280,0x7336,0x7325,0x7334,0x7329,0x743A, - 0x742A,0x7433,0x7422,0x7425,0x7435,0x7436,0x7434,0x742F, - 0x741B,0x7426,0x7428,0x7525,0x7526,0x756B,0x756A,0x75E2, - 0x75DB,0x75E3,0x75D9,0x75D8,0x75DE,0x75E0,0x767B,0x767C, - 0x7696,0x7693,0x76B4,0x76DC,0x774F,0x77ED,0x785D,0x786C, - 0x786F,0x7A0D,0x7A08,0x7A0B,0x7A05,0x7A00,0x7A98, - /* Range 0xB5A1 - 0xB5FE, array index: 0x0E57 */ - 0x7A97,0x7A96,0x7AE5,0x7AE3,0x7B49,0x7B56,0x7B46,0x7B50, - 0x7B52,0x7B54,0x7B4D,0x7B4B,0x7B4F,0x7B51,0x7C9F,0x7CA5, - 0x7D5E,0x7D50,0x7D68,0x7D55,0x7D2B,0x7D6E,0x7D72,0x7D61, - 0x7D66,0x7D62,0x7D70,0x7D73,0x5584,0x7FD4,0x7FD5,0x800B, - 0x8052,0x8085,0x8155,0x8154,0x814B,0x8151,0x814E,0x8139, - 0x8146,0x813E,0x814C,0x8153,0x8174,0x8212,0x821C,0x83E9, - 0x8403,0x83F8,0x840D,0x83E0,0x83C5,0x840B,0x83C1,0x83EF, - 0x83F1,0x83F4,0x8457,0x840A,0x83F0,0x840C,0x83CC,0x83FD, - 0x83F2,0x83CA,0x8438,0x840E,0x8404,0x83DC,0x8407,0x83D4, - 0x83DF,0x865B,0x86DF,0x86D9,0x86ED,0x86D4,0x86DB,0x86E4, - 0x86D0,0x86DE,0x8857,0x88C1,0x88C2,0x88B1,0x8983,0x8996, - 0x8A3B,0x8A60,0x8A55,0x8A5E,0x8A3C,0x8A41, - /* Range 0xB640 - 0xB67E, array index: 0x0EB5 */ - 0x8A54,0x8A5B,0x8A50,0x8A46,0x8A34,0x8A3A,0x8A36,0x8A56, - 0x8C61,0x8C82,0x8CAF,0x8CBC,0x8CB3,0x8CBD,0x8CC1,0x8CBB, - 0x8CC0,0x8CB4,0x8CB7,0x8CB6,0x8CBF,0x8CB8,0x8D8A,0x8D85, - 0x8D81,0x8DCE,0x8DDD,0x8DCB,0x8DDA,0x8DD1,0x8DCC,0x8DDB, - 0x8DC6,0x8EFB,0x8EF8,0x8EFC,0x8F9C,0x902E,0x9035,0x9031, - 0x9038,0x9032,0x9036,0x9102,0x90F5,0x9109,0x90FE,0x9163, - 0x9165,0x91CF,0x9214,0x9215,0x9223,0x9209,0x921E,0x920D, - 0x9210,0x9207,0x9211,0x9594,0x958F,0x958B,0x9591, - /* Range 0xB6A1 - 0xB6FE, array index: 0x0EF4 */ - 0x9593,0x9592,0x958E,0x968A,0x968E,0x968B,0x967D,0x9685, - 0x9686,0x968D,0x9672,0x9684,0x96C1,0x96C5,0x96C4,0x96C6, - 0x96C7,0x96EF,0x96F2,0x97CC,0x9805,0x9806,0x9808,0x98E7, - 0x98EA,0x98EF,0x98E9,0x98F2,0x98ED,0x99AE,0x99AD,0x9EC3, - 0x9ECD,0x9ED1,0x4E82,0x50AD,0x50B5,0x50B2,0x50B3,0x50C5, - 0x50BE,0x50AC,0x50B7,0x50BB,0x50AF,0x50C7,0x527F,0x5277, - 0x527D,0x52DF,0x52E6,0x52E4,0x52E2,0x52E3,0x532F,0x55DF, - 0x55E8,0x55D3,0x55E6,0x55CE,0x55DC,0x55C7,0x55D1,0x55E3, - 0x55E4,0x55EF,0x55DA,0x55E1,0x55C5,0x55C6,0x55E5,0x55C9, - 0x5712,0x5713,0x585E,0x5851,0x5858,0x5857,0x585A,0x5854, - 0x586B,0x584C,0x586D,0x584A,0x5862,0x5852,0x584B,0x5967, - 0x5AC1,0x5AC9,0x5ACC,0x5ABE,0x5ABD,0x5ABC, - /* Range 0xB740 - 0xB77E, array index: 0x0F52 */ - 0x5AB3,0x5AC2,0x5AB2,0x5D69,0x5D6F,0x5E4C,0x5E79,0x5EC9, - 0x5EC8,0x5F12,0x5F59,0x5FAC,0x5FAE,0x611A,0x610F,0x6148, - 0x611F,0x60F3,0x611B,0x60F9,0x6101,0x6108,0x614E,0x614C, - 0x6144,0x614D,0x613E,0x6134,0x6127,0x610D,0x6106,0x6137, - 0x6221,0x6222,0x6413,0x643E,0x641E,0x642A,0x642D,0x643D, - 0x642C,0x640F,0x641C,0x6414,0x640D,0x6436,0x6416,0x6417, - 0x6406,0x656C,0x659F,0x65B0,0x6697,0x6689,0x6687,0x6688, - 0x6696,0x6684,0x6698,0x668D,0x6703,0x6994,0x696D, - /* Range 0xB7A1 - 0xB7FE, array index: 0x0F91 */ - 0x695A,0x6977,0x6960,0x6954,0x6975,0x6930,0x6982,0x694A, - 0x6968,0x696B,0x695E,0x6953,0x6979,0x6986,0x695D,0x6963, - 0x695B,0x6B47,0x6B72,0x6BC0,0x6BBF,0x6BD3,0x6BFD,0x6EA2, - 0x6EAF,0x6ED3,0x6EB6,0x6EC2,0x6E90,0x6E9D,0x6EC7,0x6EC5, - 0x6EA5,0x6E98,0x6EBC,0x6EBA,0x6EAB,0x6ED1,0x6E96,0x6E9C, - 0x6EC4,0x6ED4,0x6EAA,0x6EA7,0x6EB4,0x714E,0x7159,0x7169, - 0x7164,0x7149,0x7167,0x715C,0x716C,0x7166,0x714C,0x7165, - 0x715E,0x7146,0x7168,0x7156,0x723A,0x7252,0x7337,0x7345, - 0x733F,0x733E,0x746F,0x745A,0x7455,0x745F,0x745E,0x7441, - 0x743F,0x7459,0x745B,0x745C,0x7576,0x7578,0x7600,0x75F0, - 0x7601,0x75F2,0x75F1,0x75FA,0x75FF,0x75F4,0x75F3,0x76DE, - 0x76DF,0x775B,0x776B,0x7766,0x775E,0x7763, - /* Range 0xB840 - 0xB87E, array index: 0x0FEF */ - 0x7779,0x776A,0x776C,0x775C,0x7765,0x7768,0x7762,0x77EE, - 0x788E,0x78B0,0x7897,0x7898,0x788C,0x7889,0x787C,0x7891, - 0x7893,0x787F,0x797A,0x797F,0x7981,0x842C,0x79BD,0x7A1C, - 0x7A1A,0x7A20,0x7A14,0x7A1F,0x7A1E,0x7A9F,0x7AA0,0x7B77, - 0x7BC0,0x7B60,0x7B6E,0x7B67,0x7CB1,0x7CB3,0x7CB5,0x7D93, - 0x7D79,0x7D91,0x7D81,0x7D8F,0x7D5B,0x7F6E,0x7F69,0x7F6A, - 0x7F72,0x7FA9,0x7FA8,0x7FA4,0x8056,0x8058,0x8086,0x8084, - 0x8171,0x8170,0x8178,0x8165,0x816E,0x8173,0x816B, - /* Range 0xB8A1 - 0xB8FE, array index: 0x102E */ - 0x8179,0x817A,0x8166,0x8205,0x8247,0x8482,0x8477,0x843D, - 0x8431,0x8475,0x8466,0x846B,0x8449,0x846C,0x845B,0x843C, - 0x8435,0x8461,0x8463,0x8469,0x846D,0x8446,0x865E,0x865C, - 0x865F,0x86F9,0x8713,0x8708,0x8707,0x8700,0x86FE,0x86FB, - 0x8702,0x8703,0x8706,0x870A,0x8859,0x88DF,0x88D4,0x88D9, - 0x88DC,0x88D8,0x88DD,0x88E1,0x88CA,0x88D5,0x88D2,0x899C, - 0x89E3,0x8A6B,0x8A72,0x8A73,0x8A66,0x8A69,0x8A70,0x8A87, - 0x8A7C,0x8A63,0x8AA0,0x8A71,0x8A85,0x8A6D,0x8A62,0x8A6E, - 0x8A6C,0x8A79,0x8A7B,0x8A3E,0x8A68,0x8C62,0x8C8A,0x8C89, - 0x8CCA,0x8CC7,0x8CC8,0x8CC4,0x8CB2,0x8CC3,0x8CC2,0x8CC5, - 0x8DE1,0x8DDF,0x8DE8,0x8DEF,0x8DF3,0x8DFA,0x8DEA,0x8DE4, - 0x8DE6,0x8EB2,0x8F03,0x8F09,0x8EFE,0x8F0A, - /* Range 0xB940 - 0xB97E, array index: 0x108C */ - 0x8F9F,0x8FB2,0x904B,0x904A,0x9053,0x9042,0x9054,0x903C, - 0x9055,0x9050,0x9047,0x904F,0x904E,0x904D,0x9051,0x903E, - 0x9041,0x9112,0x9117,0x916C,0x916A,0x9169,0x91C9,0x9237, - 0x9257,0x9238,0x923D,0x9240,0x923E,0x925B,0x924B,0x9264, - 0x9251,0x9234,0x9249,0x924D,0x9245,0x9239,0x923F,0x925A, - 0x9598,0x9698,0x9694,0x9695,0x96CD,0x96CB,0x96C9,0x96CA, - 0x96F7,0x96FB,0x96F9,0x96F6,0x9756,0x9774,0x9776,0x9810, - 0x9811,0x9813,0x980A,0x9812,0x980C,0x98FC,0x98F4, - /* Range 0xB9A1 - 0xB9FE, array index: 0x10CB */ - 0x98FD,0x98FE,0x99B3,0x99B1,0x99B4,0x9AE1,0x9CE9,0x9E82, - 0x9F0E,0x9F13,0x9F20,0x50E7,0x50EE,0x50E5,0x50D6,0x50ED, - 0x50DA,0x50D5,0x50CF,0x50D1,0x50F1,0x50CE,0x50E9,0x5162, - 0x51F3,0x5283,0x5282,0x5331,0x53AD,0x55FE,0x5600,0x561B, - 0x5617,0x55FD,0x5614,0x5606,0x5609,0x560D,0x560E,0x55F7, - 0x5616,0x561F,0x5608,0x5610,0x55F6,0x5718,0x5716,0x5875, - 0x587E,0x5883,0x5893,0x588A,0x5879,0x5885,0x587D,0x58FD, - 0x5925,0x5922,0x5924,0x596A,0x5969,0x5AE1,0x5AE6,0x5AE9, - 0x5AD7,0x5AD6,0x5AD8,0x5AE3,0x5B75,0x5BDE,0x5BE7,0x5BE1, - 0x5BE5,0x5BE6,0x5BE8,0x5BE2,0x5BE4,0x5BDF,0x5C0D,0x5C62, - 0x5D84,0x5D87,0x5E5B,0x5E63,0x5E55,0x5E57,0x5E54,0x5ED3, - 0x5ED6,0x5F0A,0x5F46,0x5F70,0x5FB9,0x6147, - /* Range 0xBA40 - 0xBA7E, array index: 0x1129 */ - 0x613F,0x614B,0x6177,0x6162,0x6163,0x615F,0x615A,0x6158, - 0x6175,0x622A,0x6487,0x6458,0x6454,0x64A4,0x6478,0x645F, - 0x647A,0x6451,0x6467,0x6434,0x646D,0x647B,0x6572,0x65A1, - 0x65D7,0x65D6,0x66A2,0x66A8,0x669D,0x699C,0x69A8,0x6995, - 0x69C1,0x69AE,0x69D3,0x69CB,0x699B,0x69B7,0x69BB,0x69AB, - 0x69B4,0x69D0,0x69CD,0x69AD,0x69CC,0x69A6,0x69C3,0x69A3, - 0x6B49,0x6B4C,0x6C33,0x6F33,0x6F14,0x6EFE,0x6F13,0x6EF4, - 0x6F29,0x6F3E,0x6F20,0x6F2C,0x6F0F,0x6F02,0x6F22, - /* Range 0xBAA1 - 0xBAFE, array index: 0x1168 */ - 0x6EFF,0x6EEF,0x6F06,0x6F31,0x6F38,0x6F32,0x6F23,0x6F15, - 0x6F2B,0x6F2F,0x6F88,0x6F2A,0x6EEC,0x6F01,0x6EF2,0x6ECC, - 0x6EF7,0x7194,0x7199,0x717D,0x718A,0x7184,0x7192,0x723E, - 0x7292,0x7296,0x7344,0x7350,0x7464,0x7463,0x746A,0x7470, - 0x746D,0x7504,0x7591,0x7627,0x760D,0x760B,0x7609,0x7613, - 0x76E1,0x76E3,0x7784,0x777D,0x777F,0x7761,0x78C1,0x789F, - 0x78A7,0x78B3,0x78A9,0x78A3,0x798E,0x798F,0x798D,0x7A2E, - 0x7A31,0x7AAA,0x7AA9,0x7AED,0x7AEF,0x7BA1,0x7B95,0x7B8B, - 0x7B75,0x7B97,0x7B9D,0x7B94,0x7B8F,0x7BB8,0x7B87,0x7B84, - 0x7CB9,0x7CBD,0x7CBE,0x7DBB,0x7DB0,0x7D9C,0x7DBD,0x7DBE, - 0x7DA0,0x7DCA,0x7DB4,0x7DB2,0x7DB1,0x7DBA,0x7DA2,0x7DBF, - 0x7DB5,0x7DB8,0x7DAD,0x7DD2,0x7DC7,0x7DAC, - /* Range 0xBB40 - 0xBB7E, array index: 0x11C6 */ - 0x7F70,0x7FE0,0x7FE1,0x7FDF,0x805E,0x805A,0x8087,0x8150, - 0x8180,0x818F,0x8188,0x818A,0x817F,0x8182,0x81E7,0x81FA, - 0x8207,0x8214,0x821E,0x824B,0x84C9,0x84BF,0x84C6,0x84C4, - 0x8499,0x849E,0x84B2,0x849C,0x84CB,0x84B8,0x84C0,0x84D3, - 0x8490,0x84BC,0x84D1,0x84CA,0x873F,0x871C,0x873B,0x8722, - 0x8725,0x8734,0x8718,0x8755,0x8737,0x8729,0x88F3,0x8902, - 0x88F4,0x88F9,0x88F8,0x88FD,0x88E8,0x891A,0x88EF,0x8AA6, - 0x8A8C,0x8A9E,0x8AA3,0x8A8D,0x8AA1,0x8A93,0x8AA4, - /* Range 0xBBA1 - 0xBBFE, array index: 0x1205 */ - 0x8AAA,0x8AA5,0x8AA8,0x8A98,0x8A91,0x8A9A,0x8AA7,0x8C6A, - 0x8C8D,0x8C8C,0x8CD3,0x8CD1,0x8CD2,0x8D6B,0x8D99,0x8D95, - 0x8DFC,0x8F14,0x8F12,0x8F15,0x8F13,0x8FA3,0x9060,0x9058, - 0x905C,0x9063,0x9059,0x905E,0x9062,0x905D,0x905B,0x9119, - 0x9118,0x911E,0x9175,0x9178,0x9177,0x9174,0x9278,0x9280, - 0x9285,0x9298,0x9296,0x927B,0x9293,0x929C,0x92A8,0x927C, - 0x9291,0x95A1,0x95A8,0x95A9,0x95A3,0x95A5,0x95A4,0x9699, - 0x969C,0x969B,0x96CC,0x96D2,0x9700,0x977C,0x9785,0x97F6, - 0x9817,0x9818,0x98AF,0x98B1,0x9903,0x9905,0x990C,0x9909, - 0x99C1,0x9AAF,0x9AB0,0x9AE6,0x9B41,0x9B42,0x9CF4,0x9CF6, - 0x9CF3,0x9EBC,0x9F3B,0x9F4A,0x5104,0x5100,0x50FB,0x50F5, - 0x50F9,0x5102,0x5108,0x5109,0x5105,0x51DC, - /* Range 0xBC40 - 0xBC7E, array index: 0x1263 */ - 0x5287,0x5288,0x5289,0x528D,0x528A,0x52F0,0x53B2,0x562E, - 0x563B,0x5639,0x5632,0x563F,0x5634,0x5629,0x5653,0x564E, - 0x5657,0x5674,0x5636,0x562F,0x5630,0x5880,0x589F,0x589E, - 0x58B3,0x589C,0x58AE,0x58A9,0x58A6,0x596D,0x5B09,0x5AFB, - 0x5B0B,0x5AF5,0x5B0C,0x5B08,0x5BEE,0x5BEC,0x5BE9,0x5BEB, - 0x5C64,0x5C65,0x5D9D,0x5D94,0x5E62,0x5E5F,0x5E61,0x5EE2, - 0x5EDA,0x5EDF,0x5EDD,0x5EE3,0x5EE0,0x5F48,0x5F71,0x5FB7, - 0x5FB5,0x6176,0x6167,0x616E,0x615D,0x6155,0x6182, - /* Range 0xBCA1 - 0xBCFE, array index: 0x12A2 */ - 0x617C,0x6170,0x616B,0x617E,0x61A7,0x6190,0x61AB,0x618E, - 0x61AC,0x619A,0x61A4,0x6194,0x61AE,0x622E,0x6469,0x646F, - 0x6479,0x649E,0x64B2,0x6488,0x6490,0x64B0,0x64A5,0x6493, - 0x6495,0x64A9,0x6492,0x64AE,0x64AD,0x64AB,0x649A,0x64AC, - 0x6499,0x64A2,0x64B3,0x6575,0x6577,0x6578,0x66AE,0x66AB, - 0x66B4,0x66B1,0x6A23,0x6A1F,0x69E8,0x6A01,0x6A1E,0x6A19, - 0x69FD,0x6A21,0x6A13,0x6A0A,0x69F3,0x6A02,0x6A05,0x69ED, - 0x6A11,0x6B50,0x6B4E,0x6BA4,0x6BC5,0x6BC6,0x6F3F,0x6F7C, - 0x6F84,0x6F51,0x6F66,0x6F54,0x6F86,0x6F6D,0x6F5B,0x6F78, - 0x6F6E,0x6F8E,0x6F7A,0x6F70,0x6F64,0x6F97,0x6F58,0x6ED5, - 0x6F6F,0x6F60,0x6F5F,0x719F,0x71AC,0x71B1,0x71A8,0x7256, - 0x729B,0x734E,0x7357,0x7469,0x748B,0x7483, - /* Range 0xBD40 - 0xBD7E, array index: 0x1300 */ - 0x747E,0x7480,0x757F,0x7620,0x7629,0x761F,0x7624,0x7626, - 0x7621,0x7622,0x769A,0x76BA,0x76E4,0x778E,0x7787,0x778C, - 0x7791,0x778B,0x78CB,0x78C5,0x78BA,0x78CA,0x78BE,0x78D5, - 0x78BC,0x78D0,0x7A3F,0x7A3C,0x7A40,0x7A3D,0x7A37,0x7A3B, - 0x7AAF,0x7AAE,0x7BAD,0x7BB1,0x7BC4,0x7BB4,0x7BC6,0x7BC7, - 0x7BC1,0x7BA0,0x7BCC,0x7CCA,0x7DE0,0x7DF4,0x7DEF,0x7DFB, - 0x7DD8,0x7DEC,0x7DDD,0x7DE8,0x7DE3,0x7DDA,0x7DDE,0x7DE9, - 0x7D9E,0x7DD9,0x7DF2,0x7DF9,0x7F75,0x7F77,0x7FAF, - /* Range 0xBDA1 - 0xBDFE, array index: 0x133F */ - 0x7FE9,0x8026,0x819B,0x819C,0x819D,0x81A0,0x819A,0x8198, - 0x8517,0x853D,0x851A,0x84EE,0x852C,0x852D,0x8513,0x8511, - 0x8523,0x8521,0x8514,0x84EC,0x8525,0x84FF,0x8506,0x8782, - 0x8774,0x8776,0x8760,0x8766,0x8778,0x8768,0x8759,0x8757, - 0x874C,0x8753,0x885B,0x885D,0x8910,0x8907,0x8912,0x8913, - 0x8915,0x890A,0x8ABC,0x8AD2,0x8AC7,0x8AC4,0x8A95,0x8ACB, - 0x8AF8,0x8AB2,0x8AC9,0x8AC2,0x8ABF,0x8AB0,0x8AD6,0x8ACD, - 0x8AB6,0x8AB9,0x8ADB,0x8C4C,0x8C4E,0x8C6C,0x8CE0,0x8CDE, - 0x8CE6,0x8CE4,0x8CEC,0x8CED,0x8CE2,0x8CE3,0x8CDC,0x8CEA, - 0x8CE1,0x8D6D,0x8D9F,0x8DA3,0x8E2B,0x8E10,0x8E1D,0x8E22, - 0x8E0F,0x8E29,0x8E1F,0x8E21,0x8E1E,0x8EBA,0x8F1D,0x8F1B, - 0x8F1F,0x8F29,0x8F26,0x8F2A,0x8F1C,0x8F1E, - /* Range 0xBE40 - 0xBE7E, array index: 0x139D */ - 0x8F25,0x9069,0x906E,0x9068,0x906D,0x9077,0x9130,0x912D, - 0x9127,0x9131,0x9187,0x9189,0x918B,0x9183,0x92C5,0x92BB, - 0x92B7,0x92EA,0x92AC,0x92E4,0x92C1,0x92B3,0x92BC,0x92D2, - 0x92C7,0x92F0,0x92B2,0x95AD,0x95B1,0x9704,0x9706,0x9707, - 0x9709,0x9760,0x978D,0x978B,0x978F,0x9821,0x982B,0x981C, - 0x98B3,0x990A,0x9913,0x9912,0x9918,0x99DD,0x99D0,0x99DF, - 0x99DB,0x99D1,0x99D5,0x99D2,0x99D9,0x9AB7,0x9AEE,0x9AEF, - 0x9B27,0x9B45,0x9B44,0x9B77,0x9B6F,0x9D06,0x9D09, - /* Range 0xBEA1 - 0xBEFE, array index: 0x13DC */ - 0x9D03,0x9EA9,0x9EBE,0x9ECE,0x58A8,0x9F52,0x5112,0x5118, - 0x5114,0x5110,0x5115,0x5180,0x51AA,0x51DD,0x5291,0x5293, - 0x52F3,0x5659,0x566B,0x5679,0x5669,0x5664,0x5678,0x566A, - 0x5668,0x5665,0x5671,0x566F,0x566C,0x5662,0x5676,0x58C1, - 0x58BE,0x58C7,0x58C5,0x596E,0x5B1D,0x5B34,0x5B78,0x5BF0, - 0x5C0E,0x5F4A,0x61B2,0x6191,0x61A9,0x618A,0x61CD,0x61B6, - 0x61BE,0x61CA,0x61C8,0x6230,0x64C5,0x64C1,0x64CB,0x64BB, - 0x64BC,0x64DA,0x64C4,0x64C7,0x64C2,0x64CD,0x64BF,0x64D2, - 0x64D4,0x64BE,0x6574,0x66C6,0x66C9,0x66B9,0x66C4,0x66C7, - 0x66B8,0x6A3D,0x6A38,0x6A3A,0x6A59,0x6A6B,0x6A58,0x6A39, - 0x6A44,0x6A62,0x6A61,0x6A4B,0x6A47,0x6A35,0x6A5F,0x6A48, - 0x6B59,0x6B77,0x6C05,0x6FC2,0x6FB1,0x6FA1, - /* Range 0xBF40 - 0xBF7E, array index: 0x143A */ - 0x6FC3,0x6FA4,0x6FC1,0x6FA7,0x6FB3,0x6FC0,0x6FB9,0x6FB6, - 0x6FA6,0x6FA0,0x6FB4,0x71BE,0x71C9,0x71D0,0x71D2,0x71C8, - 0x71D5,0x71B9,0x71CE,0x71D9,0x71DC,0x71C3,0x71C4,0x7368, - 0x749C,0x74A3,0x7498,0x749F,0x749E,0x74E2,0x750C,0x750D, - 0x7634,0x7638,0x763A,0x76E7,0x76E5,0x77A0,0x779E,0x779F, - 0x77A5,0x78E8,0x78DA,0x78EC,0x78E7,0x79A6,0x7A4D,0x7A4E, - 0x7A46,0x7A4C,0x7A4B,0x7ABA,0x7BD9,0x7C11,0x7BC9,0x7BE4, - 0x7BDB,0x7BE1,0x7BE9,0x7BE6,0x7CD5,0x7CD6,0x7E0A, - /* Range 0xBFA1 - 0xBFFE, array index: 0x1479 */ - 0x7E11,0x7E08,0x7E1B,0x7E23,0x7E1E,0x7E1D,0x7E09,0x7E10, - 0x7F79,0x7FB2,0x7FF0,0x7FF1,0x7FEE,0x8028,0x81B3,0x81A9, - 0x81A8,0x81FB,0x8208,0x8258,0x8259,0x854A,0x8559,0x8548, - 0x8568,0x8569,0x8543,0x8549,0x856D,0x856A,0x855E,0x8783, - 0x879F,0x879E,0x87A2,0x878D,0x8861,0x892A,0x8932,0x8925, - 0x892B,0x8921,0x89AA,0x89A6,0x8AE6,0x8AFA,0x8AEB,0x8AF1, - 0x8B00,0x8ADC,0x8AE7,0x8AEE,0x8AFE,0x8B01,0x8B02,0x8AF7, - 0x8AED,0x8AF3,0x8AF6,0x8AFC,0x8C6B,0x8C6D,0x8C93,0x8CF4, - 0x8E44,0x8E31,0x8E34,0x8E42,0x8E39,0x8E35,0x8F3B,0x8F2F, - 0x8F38,0x8F33,0x8FA8,0x8FA6,0x9075,0x9074,0x9078,0x9072, - 0x907C,0x907A,0x9134,0x9192,0x9320,0x9336,0x92F8,0x9333, - 0x932F,0x9322,0x92FC,0x932B,0x9304,0x931A, - /* Range 0xC040 - 0xC07E, array index: 0x14D7 */ - 0x9310,0x9326,0x9321,0x9315,0x932E,0x9319,0x95BB,0x96A7, - 0x96A8,0x96AA,0x96D5,0x970E,0x9711,0x9716,0x970D,0x9713, - 0x970F,0x975B,0x975C,0x9766,0x9798,0x9830,0x9838,0x983B, - 0x9837,0x982D,0x9839,0x9824,0x9910,0x9928,0x991E,0x991B, - 0x9921,0x991A,0x99ED,0x99E2,0x99F1,0x9AB8,0x9ABC,0x9AFB, - 0x9AED,0x9B28,0x9B91,0x9D15,0x9D23,0x9D26,0x9D28,0x9D12, - 0x9D1B,0x9ED8,0x9ED4,0x9F8D,0x9F9C,0x512A,0x511F,0x5121, - 0x5132,0x52F5,0x568E,0x5680,0x5690,0x5685,0x5687, - /* Range 0xC0A1 - 0xC0FE, array index: 0x1516 */ - 0x568F,0x58D5,0x58D3,0x58D1,0x58CE,0x5B30,0x5B2A,0x5B24, - 0x5B7A,0x5C37,0x5C68,0x5DBC,0x5DBA,0x5DBD,0x5DB8,0x5E6B, - 0x5F4C,0x5FBD,0x61C9,0x61C2,0x61C7,0x61E6,0x61CB,0x6232, - 0x6234,0x64CE,0x64CA,0x64D8,0x64E0,0x64F0,0x64E6,0x64EC, - 0x64F1,0x64E2,0x64ED,0x6582,0x6583,0x66D9,0x66D6,0x6A80, - 0x6A94,0x6A84,0x6AA2,0x6A9C,0x6ADB,0x6AA3,0x6A7E,0x6A97, - 0x6A90,0x6AA0,0x6B5C,0x6BAE,0x6BDA,0x6C08,0x6FD8,0x6FF1, - 0x6FDF,0x6FE0,0x6FDB,0x6FE4,0x6FEB,0x6FEF,0x6F80,0x6FEC, - 0x6FE1,0x6FE9,0x6FD5,0x6FEE,0x6FF0,0x71E7,0x71DF,0x71EE, - 0x71E6,0x71E5,0x71ED,0x71EC,0x71F4,0x71E0,0x7235,0x7246, - 0x7370,0x7372,0x74A9,0x74B0,0x74A6,0x74A8,0x7646,0x7642, - 0x764C,0x76EA,0x77B3,0x77AA,0x77B0,0x77AC, - /* Range 0xC140 - 0xC17E, array index: 0x1574 */ - 0x77A7,0x77AD,0x77EF,0x78F7,0x78FA,0x78F4,0x78EF,0x7901, - 0x79A7,0x79AA,0x7A57,0x7ABF,0x7C07,0x7C0D,0x7BFE,0x7BF7, - 0x7C0C,0x7BE0,0x7CE0,0x7CDC,0x7CDE,0x7CE2,0x7CDF,0x7CD9, - 0x7CDD,0x7E2E,0x7E3E,0x7E46,0x7E37,0x7E32,0x7E43,0x7E2B, - 0x7E3D,0x7E31,0x7E45,0x7E41,0x7E34,0x7E39,0x7E48,0x7E35, - 0x7E3F,0x7E2F,0x7F44,0x7FF3,0x7FFC,0x8071,0x8072,0x8070, - 0x806F,0x8073,0x81C6,0x81C3,0x81BA,0x81C2,0x81C0,0x81BF, - 0x81BD,0x81C9,0x81BE,0x81E8,0x8209,0x8271,0x85AA, - /* Range 0xC1A1 - 0xC1FE, array index: 0x15B3 */ - 0x8584,0x857E,0x859C,0x8591,0x8594,0x85AF,0x859B,0x8587, - 0x85A8,0x858A,0x8667,0x87C0,0x87D1,0x87B3,0x87D2,0x87C6, - 0x87AB,0x87BB,0x87BA,0x87C8,0x87CB,0x893B,0x8936,0x8944, - 0x8938,0x893D,0x89AC,0x8B0E,0x8B17,0x8B19,0x8B1B,0x8B0A, - 0x8B20,0x8B1D,0x8B04,0x8B10,0x8C41,0x8C3F,0x8C73,0x8CFA, - 0x8CFD,0x8CFC,0x8CF8,0x8CFB,0x8DA8,0x8E49,0x8E4B,0x8E48, - 0x8E4A,0x8F44,0x8F3E,0x8F42,0x8F45,0x8F3F,0x907F,0x907D, - 0x9084,0x9081,0x9082,0x9080,0x9139,0x91A3,0x919E,0x919C, - 0x934D,0x9382,0x9328,0x9375,0x934A,0x9365,0x934B,0x9318, - 0x937E,0x936C,0x935B,0x9370,0x935A,0x9354,0x95CA,0x95CB, - 0x95CC,0x95C8,0x95C6,0x96B1,0x96B8,0x96D6,0x971C,0x971E, - 0x97A0,0x97D3,0x9846,0x98B6,0x9935,0x9A01, - /* Range 0xC240 - 0xC27E, array index: 0x1611 */ - 0x99FF,0x9BAE,0x9BAB,0x9BAA,0x9BAD,0x9D3B,0x9D3F,0x9E8B, - 0x9ECF,0x9EDE,0x9EDC,0x9EDD,0x9EDB,0x9F3E,0x9F4B,0x53E2, - 0x5695,0x56AE,0x58D9,0x58D8,0x5B38,0x5F5D,0x61E3,0x6233, - 0x64F4,0x64F2,0x64FE,0x6506,0x64FA,0x64FB,0x64F7,0x65B7, - 0x66DC,0x6726,0x6AB3,0x6AAC,0x6AC3,0x6ABB,0x6AB8,0x6AC2, - 0x6AAE,0x6AAF,0x6B5F,0x6B78,0x6BAF,0x7009,0x700B,0x6FFE, - 0x7006,0x6FFA,0x7011,0x700F,0x71FB,0x71FC,0x71FE,0x71F8, - 0x7377,0x7375,0x74A7,0x74BF,0x7515,0x7656,0x7658, - /* Range 0xC2A1 - 0xC2FE, array index: 0x1650 */ - 0x7652,0x77BD,0x77BF,0x77BB,0x77BC,0x790E,0x79AE,0x7A61, - 0x7A62,0x7A60,0x7AC4,0x7AC5,0x7C2B,0x7C27,0x7C2A,0x7C1E, - 0x7C23,0x7C21,0x7CE7,0x7E54,0x7E55,0x7E5E,0x7E5A,0x7E61, - 0x7E52,0x7E59,0x7F48,0x7FF9,0x7FFB,0x8077,0x8076,0x81CD, - 0x81CF,0x820A,0x85CF,0x85A9,0x85CD,0x85D0,0x85C9,0x85B0, - 0x85BA,0x85B9,0x85A6,0x87EF,0x87EC,0x87F2,0x87E0,0x8986, - 0x89B2,0x89F4,0x8B28,0x8B39,0x8B2C,0x8B2B,0x8C50,0x8D05, - 0x8E59,0x8E63,0x8E66,0x8E64,0x8E5F,0x8E55,0x8EC0,0x8F49, - 0x8F4D,0x9087,0x9083,0x9088,0x91AB,0x91AC,0x91D0,0x9394, - 0x938A,0x9396,0x93A2,0x93B3,0x93AE,0x93AC,0x93B0,0x9398, - 0x939A,0x9397,0x95D4,0x95D6,0x95D0,0x95D5,0x96E2,0x96DC, - 0x96D9,0x96DB,0x96DE,0x9724,0x97A3,0x97A6, - /* Range 0xC340 - 0xC37E, array index: 0x16AE */ - 0x97AD,0x97F9,0x984D,0x984F,0x984C,0x984E,0x9853,0x98BA, - 0x993E,0x993F,0x993D,0x992E,0x99A5,0x9A0E,0x9AC1,0x9B03, - 0x9B06,0x9B4F,0x9B4E,0x9B4D,0x9BCA,0x9BC9,0x9BFD,0x9BC8, - 0x9BC0,0x9D51,0x9D5D,0x9D60,0x9EE0,0x9F15,0x9F2C,0x5133, - 0x56A5,0x58DE,0x58DF,0x58E2,0x5BF5,0x9F90,0x5EEC,0x61F2, - 0x61F7,0x61F6,0x61F5,0x6500,0x650F,0x66E0,0x66DD,0x6AE5, - 0x6ADD,0x6ADA,0x6AD3,0x701B,0x701F,0x7028,0x701A,0x701D, - 0x7015,0x7018,0x7206,0x720D,0x7258,0x72A2,0x7378, - /* Range 0xC3A1 - 0xC3FE, array index: 0x16ED */ - 0x737A,0x74BD,0x74CA,0x74E3,0x7587,0x7586,0x765F,0x7661, - 0x77C7,0x7919,0x79B1,0x7A6B,0x7A69,0x7C3E,0x7C3F,0x7C38, - 0x7C3D,0x7C37,0x7C40,0x7E6B,0x7E6D,0x7E79,0x7E69,0x7E6A, - 0x7F85,0x7E73,0x7FB6,0x7FB9,0x7FB8,0x81D8,0x85E9,0x85DD, - 0x85EA,0x85D5,0x85E4,0x85E5,0x85F7,0x87FB,0x8805,0x880D, - 0x87F9,0x87FE,0x8960,0x895F,0x8956,0x895E,0x8B41,0x8B5C, - 0x8B58,0x8B49,0x8B5A,0x8B4E,0x8B4F,0x8B46,0x8B59,0x8D08, - 0x8D0A,0x8E7C,0x8E72,0x8E87,0x8E76,0x8E6C,0x8E7A,0x8E74, - 0x8F54,0x8F4E,0x8FAD,0x908A,0x908B,0x91B1,0x91AE,0x93E1, - 0x93D1,0x93DF,0x93C3,0x93C8,0x93DC,0x93DD,0x93D6,0x93E2, - 0x93CD,0x93D8,0x93E4,0x93D7,0x93E8,0x95DC,0x96B4,0x96E3, - 0x972A,0x9727,0x9761,0x97DC,0x97FB,0x985E, - /* Range 0xC440 - 0xC47E, array index: 0x174B */ - 0x9858,0x985B,0x98BC,0x9945,0x9949,0x9A16,0x9A19,0x9B0D, - 0x9BE8,0x9BE7,0x9BD6,0x9BDB,0x9D89,0x9D61,0x9D72,0x9D6A, - 0x9D6C,0x9E92,0x9E97,0x9E93,0x9EB4,0x52F8,0x56A8,0x56B7, - 0x56B6,0x56B4,0x56BC,0x58E4,0x5B40,0x5B43,0x5B7D,0x5BF6, - 0x5DC9,0x61F8,0x61FA,0x6518,0x6514,0x6519,0x66E6,0x6727, - 0x6AEC,0x703E,0x7030,0x7032,0x7210,0x737B,0x74CF,0x7662, - 0x7665,0x7926,0x792A,0x792C,0x792B,0x7AC7,0x7AF6,0x7C4C, - 0x7C43,0x7C4D,0x7CEF,0x7CF0,0x8FAE,0x7E7D,0x7E7C, - /* Range 0xC4A1 - 0xC4FE, array index: 0x178A */ - 0x7E82,0x7F4C,0x8000,0x81DA,0x8266,0x85FB,0x85F9,0x8611, - 0x85FA,0x8606,0x860B,0x8607,0x860A,0x8814,0x8815,0x8964, - 0x89BA,0x89F8,0x8B70,0x8B6C,0x8B66,0x8B6F,0x8B5F,0x8B6B, - 0x8D0F,0x8D0D,0x8E89,0x8E81,0x8E85,0x8E82,0x91B4,0x91CB, - 0x9418,0x9403,0x93FD,0x95E1,0x9730,0x98C4,0x9952,0x9951, - 0x99A8,0x9A2B,0x9A30,0x9A37,0x9A35,0x9C13,0x9C0D,0x9E79, - 0x9EB5,0x9EE8,0x9F2F,0x9F5F,0x9F63,0x9F61,0x5137,0x5138, - 0x56C1,0x56C0,0x56C2,0x5914,0x5C6C,0x5DCD,0x61FC,0x61FE, - 0x651D,0x651C,0x6595,0x66E9,0x6AFB,0x6B04,0x6AFA,0x6BB2, - 0x704C,0x721B,0x72A7,0x74D6,0x74D4,0x7669,0x77D3,0x7C50, - 0x7E8F,0x7E8C,0x7FBC,0x8617,0x862D,0x861A,0x8823,0x8822, - 0x8821,0x881F,0x896A,0x896C,0x89BD,0x8B74, - /* Range 0xC540 - 0xC57E, array index: 0x17E8 */ - 0x8B77,0x8B7D,0x8D13,0x8E8A,0x8E8D,0x8E8B,0x8F5F,0x8FAF, - 0x91BA,0x942E,0x9433,0x9435,0x943A,0x9438,0x9432,0x942B, - 0x95E2,0x9738,0x9739,0x9732,0x97FF,0x9867,0x9865,0x9957, - 0x9A45,0x9A43,0x9A40,0x9A3E,0x9ACF,0x9B54,0x9B51,0x9C2D, - 0x9C25,0x9DAF,0x9DB4,0x9DC2,0x9DB8,0x9E9D,0x9EEF,0x9F19, - 0x9F5C,0x9F66,0x9F67,0x513C,0x513B,0x56C8,0x56CA,0x56C9, - 0x5B7F,0x5DD4,0x5DD2,0x5F4E,0x61FF,0x6524,0x6B0A,0x6B61, - 0x7051,0x7058,0x7380,0x74E4,0x758A,0x766E,0x766C, - /* Range 0xC5A1 - 0xC5FE, array index: 0x1827 */ - 0x79B3,0x7C60,0x7C5F,0x807E,0x807D,0x81DF,0x8972,0x896F, - 0x89FC,0x8B80,0x8D16,0x8D17,0x8E91,0x8E93,0x8F61,0x9148, - 0x9444,0x9451,0x9452,0x973D,0x973E,0x97C3,0x97C1,0x986B, - 0x9955,0x9A55,0x9A4D,0x9AD2,0x9B1A,0x9C49,0x9C31,0x9C3E, - 0x9C3B,0x9DD3,0x9DD7,0x9F34,0x9F6C,0x9F6A,0x9F94,0x56CC, - 0x5DD6,0x6200,0x6523,0x652B,0x652A,0x66EC,0x6B10,0x74DA, - 0x7ACA,0x7C64,0x7C63,0x7C65,0x7E93,0x7E96,0x7E94,0x81E2, - 0x8638,0x863F,0x8831,0x8B8A,0x9090,0x908F,0x9463,0x9460, - 0x9464,0x9768,0x986F,0x995C,0x9A5A,0x9A5B,0x9A57,0x9AD3, - 0x9AD4,0x9AD1,0x9C54,0x9C57,0x9C56,0x9DE5,0x9E9F,0x9EF4, - 0x56D1,0x58E9,0x652C,0x705E,0x7671,0x7672,0x77D7,0x7F50, - 0x7F88,0x8836,0x8839,0x8862,0x8B93,0x8B92, - /* Range 0xC640 - 0xC67E, array index: 0x1885 */ - 0x8B96,0x8277,0x8D1B,0x91C0,0x946A,0x9742,0x9748,0x9744, - 0x97C6,0x9870,0x9A5F,0x9B22,0x9B58,0x9C5F,0x9DF9,0x9DFA, - 0x9E7C,0x9E7D,0x9F07,0x9F77,0x9F72,0x5EF3,0x6B16,0x7063, - 0x7C6C,0x7C6E,0x883B,0x89C0,0x8EA1,0x91C1,0x9472,0x9470, - 0x9871,0x995E,0x9AD6,0x9B23,0x9ECC,0x7064,0x77DA,0x8B9A, - 0x9477,0x97C9,0x9A62,0x9A65,0x7E9C,0x8B9C,0x8EAA,0x91C5, - 0x947D,0x947E,0x947C,0x9C77,0x9C78,0x9EF7,0x8C54,0x947F, - 0x9E1A,0x7228,0x9A6A,0x9B31,0x9E1B,0x9E1E,0x7C72, - /* Range 0xC6A1 - 0xC6FE, array index: 0x18C4 */ - 0x30FE,0x309D,0x309E,0x3005,0x3041,0x3042,0x3043,0x3044, - 0x3045,0x3046,0x3047,0x3048,0x3049,0x304A,0x304B,0x304C, - 0x304D,0x304E,0x304F,0x3050,0x3051,0x3052,0x3053,0x3054, - 0x3055,0x3056,0x3057,0x3058,0x3059,0x305A,0x305B,0x305C, - 0x305D,0x305E,0x305F,0x3060,0x3061,0x3062,0x3063,0x3064, - 0x3065,0x3066,0x3067,0x3068,0x3069,0x306A,0x306B,0x306C, - 0x306D,0x306E,0x306F,0x3070,0x3071,0x3072,0x3073,0x3074, - 0x3075,0x3076,0x3077,0x3078,0x3079,0x307A,0x307B,0x307C, - 0x307D,0x307E,0x307F,0x3080,0x3081,0x3082,0x3083,0x3084, - 0x3085,0x3086,0x3087,0x3088,0x3089,0x308A,0x308B,0x308C, - 0x308D,0x308E,0x308F,0x3090,0x3091,0x3092,0x3093,0x30A1, - 0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7, - /* Range 0xC740 - 0xC77E, array index: 0x1922 */ - 0x30A8,0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF, - 0x30B0,0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7, - 0x30B8,0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF, - 0x30C0,0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7, - 0x30C8,0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF, - 0x30D0,0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7, - 0x30D8,0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF, - 0x30E0,0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6, - /* Range 0xC7A1 - 0xC7FC, array index: 0x1961 */ - 0x30E7,0x30E8,0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE, - 0x30EF,0x30F0,0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6, - 0x0414,0x0415,0x0401,0x0416,0x0417,0x0418,0x0419,0x041A, - 0x041B,0x041C,0x0423,0x0424,0x0425,0x0426,0x0427,0x0428, - 0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,0x0430, - 0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,0x0436,0x0437, - 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, - 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, - 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F, - 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467, - 0x2468,0x2469,0x2474,0x2475,0x2476,0x2477,0x2478,0x2479, - 0x247A,0x247B,0x247C,0x247D, - /* Range 0xC940 - 0xC97E, array index: 0x19BD */ - 0x4E42,0x4E5C,0x51F5,0x531A,0x5382,0x4E07,0x4E0C,0x4E47, - 0x4E8D,0x56D7,0xFA0C,0x5C6E,0x5F73,0x4E0F,0x5187,0x4E0E, - 0x4E2E,0x4E93,0x4EC2,0x4EC9,0x4EC8,0x5198,0x52FC,0x536C, - 0x53B9,0x5720,0x5903,0x592C,0x5C10,0x5DFF,0x65E1,0x6BB3, - 0x6BCC,0x6C14,0x723F,0x4E31,0x4E3C,0x4EE8,0x4EDC,0x4EE9, - 0x4EE1,0x4EDD,0x4EDA,0x520C,0x531C,0x534C,0x5722,0x5723, - 0x5917,0x592F,0x5B81,0x5B84,0x5C12,0x5C3B,0x5C74,0x5C73, - 0x5E04,0x5E80,0x5E82,0x5FC9,0x6209,0x6250,0x6C15, - /* Range 0xC9A1 - 0xC9FE, array index: 0x19FC */ - 0x6C36,0x6C43,0x6C3F,0x6C3B,0x72AE,0x72B0,0x738A,0x79B8, - 0x808A,0x961E,0x4F0E,0x4F18,0x4F2C,0x4EF5,0x4F14,0x4EF1, - 0x4F00,0x4EF7,0x4F08,0x4F1D,0x4F02,0x4F05,0x4F22,0x4F13, - 0x4F04,0x4EF4,0x4F12,0x51B1,0x5213,0x5209,0x5210,0x52A6, - 0x5322,0x531F,0x534D,0x538A,0x5407,0x56E1,0x56DF,0x572E, - 0x572A,0x5734,0x593C,0x5980,0x597C,0x5985,0x597B,0x597E, - 0x5977,0x597F,0x5B56,0x5C15,0x5C25,0x5C7C,0x5C7A,0x5C7B, - 0x5C7E,0x5DDF,0x5E75,0x5E84,0x5F02,0x5F1A,0x5F74,0x5FD5, - 0x5FD4,0x5FCF,0x625C,0x625E,0x6264,0x6261,0x6266,0x6262, - 0x6259,0x6260,0x625A,0x6265,0x65EF,0x65EE,0x673E,0x6739, - 0x6738,0x673B,0x673A,0x673F,0x673C,0x6733,0x6C18,0x6C46, - 0x6C52,0x6C5C,0x6C4F,0x6C4A,0x6C54,0x6C4B, - /* Range 0xCA40 - 0xCA7E, array index: 0x1A5A */ - 0x6C4C,0x7071,0x725E,0x72B4,0x72B5,0x738E,0x752A,0x767F, - 0x7A75,0x7F51,0x8278,0x827C,0x8280,0x827D,0x827F,0x864D, - 0x897E,0x9099,0x9097,0x9098,0x909B,0x9094,0x9622,0x9624, - 0x9620,0x9623,0x4F56,0x4F3B,0x4F62,0x4F49,0x4F53,0x4F64, - 0x4F3E,0x4F67,0x4F52,0x4F5F,0x4F41,0x4F58,0x4F2D,0x4F33, - 0x4F3F,0x4F61,0x518F,0x51B9,0x521C,0x521E,0x5221,0x52AD, - 0x52AE,0x5309,0x5363,0x5372,0x538E,0x538F,0x5430,0x5437, - 0x542A,0x5454,0x5445,0x5419,0x541C,0x5425,0x5418, - /* Range 0xCAA1 - 0xCAFE, array index: 0x1A99 */ - 0x543D,0x544F,0x5441,0x5428,0x5424,0x5447,0x56EE,0x56E7, - 0x56E5,0x5741,0x5745,0x574C,0x5749,0x574B,0x5752,0x5906, - 0x5940,0x59A6,0x5998,0x59A0,0x5997,0x598E,0x59A2,0x5990, - 0x598F,0x59A7,0x59A1,0x5B8E,0x5B92,0x5C28,0x5C2A,0x5C8D, - 0x5C8F,0x5C88,0x5C8B,0x5C89,0x5C92,0x5C8A,0x5C86,0x5C93, - 0x5C95,0x5DE0,0x5E0A,0x5E0E,0x5E8B,0x5E89,0x5E8C,0x5E88, - 0x5E8D,0x5F05,0x5F1D,0x5F78,0x5F76,0x5FD2,0x5FD1,0x5FD0, - 0x5FED,0x5FE8,0x5FEE,0x5FF3,0x5FE1,0x5FE4,0x5FE3,0x5FFA, - 0x5FEF,0x5FF7,0x5FFB,0x6000,0x5FF4,0x623A,0x6283,0x628C, - 0x628E,0x628F,0x6294,0x6287,0x6271,0x627B,0x627A,0x6270, - 0x6281,0x6288,0x6277,0x627D,0x6272,0x6274,0x6537,0x65F0, - 0x65F4,0x65F3,0x65F2,0x65F5,0x6745,0x6747, - /* Range 0xCB40 - 0xCB7E, array index: 0x1AF7 */ - 0x6759,0x6755,0x674C,0x6748,0x675D,0x674D,0x675A,0x674B, - 0x6BD0,0x6C19,0x6C1A,0x6C78,0x6C67,0x6C6B,0x6C84,0x6C8B, - 0x6C8F,0x6C71,0x6C6F,0x6C69,0x6C9A,0x6C6D,0x6C87,0x6C95, - 0x6C9C,0x6C66,0x6C73,0x6C65,0x6C7B,0x6C8E,0x7074,0x707A, - 0x7263,0x72BF,0x72BD,0x72C3,0x72C6,0x72C1,0x72BA,0x72C5, - 0x7395,0x7397,0x7393,0x7394,0x7392,0x753A,0x7539,0x7594, - 0x7595,0x7681,0x793D,0x8034,0x8095,0x8099,0x8090,0x8092, - 0x809C,0x8290,0x828F,0x8285,0x828E,0x8291,0x8293, - /* Range 0xCBA1 - 0xCBFE, array index: 0x1B36 */ - 0x828A,0x8283,0x8284,0x8C78,0x8FC9,0x8FBF,0x909F,0x90A1, - 0x90A5,0x909E,0x90A7,0x90A0,0x9630,0x9628,0x962F,0x962D, - 0x4E33,0x4F98,0x4F7C,0x4F85,0x4F7D,0x4F80,0x4F87,0x4F76, - 0x4F74,0x4F89,0x4F84,0x4F77,0x4F4C,0x4F97,0x4F6A,0x4F9A, - 0x4F79,0x4F81,0x4F78,0x4F90,0x4F9C,0x4F94,0x4F9E,0x4F92, - 0x4F82,0x4F95,0x4F6B,0x4F6E,0x519E,0x51BC,0x51BE,0x5235, - 0x5232,0x5233,0x5246,0x5231,0x52BC,0x530A,0x530B,0x533C, - 0x5392,0x5394,0x5487,0x547F,0x5481,0x5491,0x5482,0x5488, - 0x546B,0x547A,0x547E,0x5465,0x546C,0x5474,0x5466,0x548D, - 0x546F,0x5461,0x5460,0x5498,0x5463,0x5467,0x5464,0x56F7, - 0x56F9,0x576F,0x5772,0x576D,0x576B,0x5771,0x5770,0x5776, - 0x5780,0x5775,0x577B,0x5773,0x5774,0x5762, - /* Range 0xCC40 - 0xCC7E, array index: 0x1B94 */ - 0x5768,0x577D,0x590C,0x5945,0x59B5,0x59BA,0x59CF,0x59CE, - 0x59B2,0x59CC,0x59C1,0x59B6,0x59BC,0x59C3,0x59D6,0x59B1, - 0x59BD,0x59C0,0x59C8,0x59B4,0x59C7,0x5B62,0x5B65,0x5B93, - 0x5B95,0x5C44,0x5C47,0x5CAE,0x5CA4,0x5CA0,0x5CB5,0x5CAF, - 0x5CA8,0x5CAC,0x5C9F,0x5CA3,0x5CAD,0x5CA2,0x5CAA,0x5CA7, - 0x5C9D,0x5CA5,0x5CB6,0x5CB0,0x5CA6,0x5E17,0x5E14,0x5E19, - 0x5F28,0x5F22,0x5F23,0x5F24,0x5F54,0x5F82,0x5F7E,0x5F7D, - 0x5FDE,0x5FE5,0x602D,0x6026,0x6019,0x6032,0x600B, - /* Range 0xCCA1 - 0xCCFE, array index: 0x1BD3 */ - 0x6034,0x600A,0x6017,0x6033,0x601A,0x601E,0x602C,0x6022, - 0x600D,0x6010,0x602E,0x6013,0x6011,0x600C,0x6009,0x601C, - 0x6214,0x623D,0x62AD,0x62B4,0x62D1,0x62BE,0x62AA,0x62B6, - 0x62CA,0x62AE,0x62B3,0x62AF,0x62BB,0x62A9,0x62B0,0x62B8, - 0x653D,0x65A8,0x65BB,0x6609,0x65FC,0x6604,0x6612,0x6608, - 0x65FB,0x6603,0x660B,0x660D,0x6605,0x65FD,0x6611,0x6610, - 0x66F6,0x670A,0x6785,0x676C,0x678E,0x6792,0x6776,0x677B, - 0x6798,0x6786,0x6784,0x6774,0x678D,0x678C,0x677A,0x679F, - 0x6791,0x6799,0x6783,0x677D,0x6781,0x6778,0x6779,0x6794, - 0x6B25,0x6B80,0x6B7E,0x6BDE,0x6C1D,0x6C93,0x6CEC,0x6CEB, - 0x6CEE,0x6CD9,0x6CB6,0x6CD4,0x6CAD,0x6CE7,0x6CB7,0x6CD0, - 0x6CC2,0x6CBA,0x6CC3,0x6CC6,0x6CED,0x6CF2, - /* Range 0xCD40 - 0xCD7E, array index: 0x1C31 */ - 0x6CD2,0x6CDD,0x6CB4,0x6C8A,0x6C9D,0x6C80,0x6CDE,0x6CC0, - 0x6D30,0x6CCD,0x6CC7,0x6CB0,0x6CF9,0x6CCF,0x6CE9,0x6CD1, - 0x7094,0x7098,0x7085,0x7093,0x7086,0x7084,0x7091,0x7096, - 0x7082,0x709A,0x7083,0x726A,0x72D6,0x72CB,0x72D8,0x72C9, - 0x72DC,0x72D2,0x72D4,0x72DA,0x72CC,0x72D1,0x73A4,0x73A1, - 0x73AD,0x73A6,0x73A2,0x73A0,0x73AC,0x739D,0x74DD,0x74E8, - 0x753F,0x7540,0x753E,0x758C,0x7598,0x76AF,0x76F3,0x76F1, - 0x76F0,0x76F5,0x77F8,0x77FC,0x77F9,0x77FB,0x77FA, - /* Range 0xCDA1 - 0xCDFE, array index: 0x1C70 */ - 0x77F7,0x7942,0x793F,0x79C5,0x7A78,0x7A7B,0x7AFB,0x7C75, - 0x7CFD,0x8035,0x808F,0x80AE,0x80A3,0x80B8,0x80B5,0x80AD, - 0x8220,0x82A0,0x82C0,0x82AB,0x829A,0x8298,0x829B,0x82B5, - 0x82A7,0x82AE,0x82BC,0x829E,0x82BA,0x82B4,0x82A8,0x82A1, - 0x82A9,0x82C2,0x82A4,0x82C3,0x82B6,0x82A2,0x8670,0x866F, - 0x866D,0x866E,0x8C56,0x8FD2,0x8FCB,0x8FD3,0x8FCD,0x8FD6, - 0x8FD5,0x8FD7,0x90B2,0x90B4,0x90AF,0x90B3,0x90B0,0x9639, - 0x963D,0x963C,0x963A,0x9643,0x4FCD,0x4FC5,0x4FD3,0x4FB2, - 0x4FC9,0x4FCB,0x4FC1,0x4FD4,0x4FDC,0x4FD9,0x4FBB,0x4FB3, - 0x4FDB,0x4FC7,0x4FD6,0x4FBA,0x4FC0,0x4FB9,0x4FEC,0x5244, - 0x5249,0x52C0,0x52C2,0x533D,0x537C,0x5397,0x5396,0x5399, - 0x5398,0x54BA,0x54A1,0x54AD,0x54A5,0x54CF, - /* Range 0xCE40 - 0xCE7E, array index: 0x1CCE */ - 0x54C3,0x830D,0x54B7,0x54AE,0x54D6,0x54B6,0x54C5,0x54C6, - 0x54A0,0x5470,0x54BC,0x54A2,0x54BE,0x5472,0x54DE,0x54B0, - 0x57B5,0x579E,0x579F,0x57A4,0x578C,0x5797,0x579D,0x579B, - 0x5794,0x5798,0x578F,0x5799,0x57A5,0x579A,0x5795,0x58F4, - 0x590D,0x5953,0x59E1,0x59DE,0x59EE,0x5A00,0x59F1,0x59DD, - 0x59FA,0x59FD,0x59FC,0x59F6,0x59E4,0x59F2,0x59F7,0x59DB, - 0x59E9,0x59F3,0x59F5,0x59E0,0x59FE,0x59F4,0x59ED,0x5BA8, - 0x5C4C,0x5CD0,0x5CD8,0x5CCC,0x5CD7,0x5CCB,0x5CDB, - /* Range 0xCEA1 - 0xCEFE, array index: 0x1D0D */ - 0x5CDE,0x5CDA,0x5CC9,0x5CC7,0x5CCA,0x5CD6,0x5CD3,0x5CD4, - 0x5CCF,0x5CC8,0x5CC6,0x5CCE,0x5CDF,0x5CF8,0x5DF9,0x5E21, - 0x5E22,0x5E23,0x5E20,0x5E24,0x5EB0,0x5EA4,0x5EA2,0x5E9B, - 0x5EA3,0x5EA5,0x5F07,0x5F2E,0x5F56,0x5F86,0x6037,0x6039, - 0x6054,0x6072,0x605E,0x6045,0x6053,0x6047,0x6049,0x605B, - 0x604C,0x6040,0x6042,0x605F,0x6024,0x6044,0x6058,0x6066, - 0x606E,0x6242,0x6243,0x62CF,0x630D,0x630B,0x62F5,0x630E, - 0x6303,0x62EB,0x62F9,0x630F,0x630C,0x62F8,0x62F6,0x6300, - 0x6313,0x6314,0x62FA,0x6315,0x62FB,0x62F0,0x6541,0x6543, - 0x65AA,0x65BF,0x6636,0x6621,0x6632,0x6635,0x661C,0x6626, - 0x6622,0x6633,0x662B,0x663A,0x661D,0x6634,0x6639,0x662E, - 0x670F,0x6710,0x67C1,0x67F2,0x67C8,0x67BA, - /* Range 0xCF40 - 0xCF7E, array index: 0x1D6B */ - 0x67DC,0x67BB,0x67F8,0x67D8,0x67C0,0x67B7,0x67C5,0x67EB, - 0x67E4,0x67DF,0x67B5,0x67CD,0x67B3,0x67F7,0x67F6,0x67EE, - 0x67E3,0x67C2,0x67B9,0x67CE,0x67E7,0x67F0,0x67B2,0x67FC, - 0x67C6,0x67ED,0x67CC,0x67AE,0x67E6,0x67DB,0x67FA,0x67C9, - 0x67CA,0x67C3,0x67EA,0x67CB,0x6B28,0x6B82,0x6B84,0x6BB6, - 0x6BD6,0x6BD8,0x6BE0,0x6C20,0x6C21,0x6D28,0x6D34,0x6D2D, - 0x6D1F,0x6D3C,0x6D3F,0x6D12,0x6D0A,0x6CDA,0x6D33,0x6D04, - 0x6D19,0x6D3A,0x6D1A,0x6D11,0x6D00,0x6D1D,0x6D42, - /* Range 0xCFA1 - 0xCFFE, array index: 0x1DAA */ - 0x6D01,0x6D18,0x6D37,0x6D03,0x6D0F,0x6D40,0x6D07,0x6D20, - 0x6D2C,0x6D08,0x6D22,0x6D09,0x6D10,0x70B7,0x709F,0x70BE, - 0x70B1,0x70B0,0x70A1,0x70B4,0x70B5,0x70A9,0x7241,0x7249, - 0x724A,0x726C,0x7270,0x7273,0x726E,0x72CA,0x72E4,0x72E8, - 0x72EB,0x72DF,0x72EA,0x72E6,0x72E3,0x7385,0x73CC,0x73C2, - 0x73C8,0x73C5,0x73B9,0x73B6,0x73B5,0x73B4,0x73EB,0x73BF, - 0x73C7,0x73BE,0x73C3,0x73C6,0x73B8,0x73CB,0x74EC,0x74EE, - 0x752E,0x7547,0x7548,0x75A7,0x75AA,0x7679,0x76C4,0x7708, - 0x7703,0x7704,0x7705,0x770A,0x76F7,0x76FB,0x76FA,0x77E7, - 0x77E8,0x7806,0x7811,0x7812,0x7805,0x7810,0x780F,0x780E, - 0x7809,0x7803,0x7813,0x794A,0x794C,0x794B,0x7945,0x7944, - 0x79D5,0x79CD,0x79CF,0x79D6,0x79CE,0x7A80, - /* Range 0xD040 - 0xD07E, array index: 0x1E08 */ - 0x7A7E,0x7AD1,0x7B00,0x7B01,0x7C7A,0x7C78,0x7C79,0x7C7F, - 0x7C80,0x7C81,0x7D03,0x7D08,0x7D01,0x7F58,0x7F91,0x7F8D, - 0x7FBE,0x8007,0x800E,0x800F,0x8014,0x8037,0x80D8,0x80C7, - 0x80E0,0x80D1,0x80C8,0x80C2,0x80D0,0x80C5,0x80E3,0x80D9, - 0x80DC,0x80CA,0x80D5,0x80C9,0x80CF,0x80D7,0x80E6,0x80CD, - 0x81FF,0x8221,0x8294,0x82D9,0x82FE,0x82F9,0x8307,0x82E8, - 0x8300,0x82D5,0x833A,0x82EB,0x82D6,0x82F4,0x82EC,0x82E1, - 0x82F2,0x82F5,0x830C,0x82FB,0x82F6,0x82F0,0x82EA, - /* Range 0xD0A1 - 0xD0FE, array index: 0x1E47 */ - 0x82E4,0x82E0,0x82FA,0x82F3,0x82ED,0x8677,0x8674,0x867C, - 0x8673,0x8841,0x884E,0x8867,0x886A,0x8869,0x89D3,0x8A04, - 0x8A07,0x8D72,0x8FE3,0x8FE1,0x8FEE,0x8FE0,0x90F1,0x90BD, - 0x90BF,0x90D5,0x90C5,0x90BE,0x90C7,0x90CB,0x90C8,0x91D4, - 0x91D3,0x9654,0x964F,0x9651,0x9653,0x964A,0x964E,0x501E, - 0x5005,0x5007,0x5013,0x5022,0x5030,0x501B,0x4FF5,0x4FF4, - 0x5033,0x5037,0x502C,0x4FF6,0x4FF7,0x5017,0x501C,0x5020, - 0x5027,0x5035,0x502F,0x5031,0x500E,0x515A,0x5194,0x5193, - 0x51CA,0x51C4,0x51C5,0x51C8,0x51CE,0x5261,0x525A,0x5252, - 0x525E,0x525F,0x5255,0x5262,0x52CD,0x530E,0x539E,0x5526, - 0x54E2,0x5517,0x5512,0x54E7,0x54F3,0x54E4,0x551A,0x54FF, - 0x5504,0x5508,0x54EB,0x5511,0x5505,0x54F1, - /* Range 0xD140 - 0xD17E, array index: 0x1EA5 */ - 0x550A,0x54FB,0x54F7,0x54F8,0x54E0,0x550E,0x5503,0x550B, - 0x5701,0x5702,0x57CC,0x5832,0x57D5,0x57D2,0x57BA,0x57C6, - 0x57BD,0x57BC,0x57B8,0x57B6,0x57BF,0x57C7,0x57D0,0x57B9, - 0x57C1,0x590E,0x594A,0x5A19,0x5A16,0x5A2D,0x5A2E,0x5A15, - 0x5A0F,0x5A17,0x5A0A,0x5A1E,0x5A33,0x5B6C,0x5BA7,0x5BAD, - 0x5BAC,0x5C03,0x5C56,0x5C54,0x5CEC,0x5CFF,0x5CEE,0x5CF1, - 0x5CF7,0x5D00,0x5CF9,0x5E29,0x5E28,0x5EA8,0x5EAE,0x5EAA, - 0x5EAC,0x5F33,0x5F30,0x5F67,0x605D,0x605A,0x6067, - /* Range 0xD1A1 - 0xD1FE, array index: 0x1EE4 */ - 0x6041,0x60A2,0x6088,0x6080,0x6092,0x6081,0x609D,0x6083, - 0x6095,0x609B,0x6097,0x6087,0x609C,0x608E,0x6219,0x6246, - 0x62F2,0x6310,0x6356,0x632C,0x6344,0x6345,0x6336,0x6343, - 0x63E4,0x6339,0x634B,0x634A,0x633C,0x6329,0x6341,0x6334, - 0x6358,0x6354,0x6359,0x632D,0x6347,0x6333,0x635A,0x6351, - 0x6338,0x6357,0x6340,0x6348,0x654A,0x6546,0x65C6,0x65C3, - 0x65C4,0x65C2,0x664A,0x665F,0x6647,0x6651,0x6712,0x6713, - 0x681F,0x681A,0x6849,0x6832,0x6833,0x683B,0x684B,0x684F, - 0x6816,0x6831,0x681C,0x6835,0x682B,0x682D,0x682F,0x684E, - 0x6844,0x6834,0x681D,0x6812,0x6814,0x6826,0x6828,0x682E, - 0x684D,0x683A,0x6825,0x6820,0x6B2C,0x6B2F,0x6B2D,0x6B31, - 0x6B34,0x6B6D,0x8082,0x6B88,0x6BE6,0x6BE4, - /* Range 0xD240 - 0xD27E, array index: 0x1F42 */ - 0x6BE8,0x6BE3,0x6BE2,0x6BE7,0x6C25,0x6D7A,0x6D63,0x6D64, - 0x6D76,0x6D0D,0x6D61,0x6D92,0x6D58,0x6D62,0x6D6D,0x6D6F, - 0x6D91,0x6D8D,0x6DEF,0x6D7F,0x6D86,0x6D5E,0x6D67,0x6D60, - 0x6D97,0x6D70,0x6D7C,0x6D5F,0x6D82,0x6D98,0x6D2F,0x6D68, - 0x6D8B,0x6D7E,0x6D80,0x6D84,0x6D16,0x6D83,0x6D7B,0x6D7D, - 0x6D75,0x6D90,0x70DC,0x70D3,0x70D1,0x70DD,0x70CB,0x7F39, - 0x70E2,0x70D7,0x70D2,0x70DE,0x70E0,0x70D4,0x70CD,0x70C5, - 0x70C6,0x70C7,0x70DA,0x70CE,0x70E1,0x7242,0x7278, - /* Range 0xD2A1 - 0xD2FE, array index: 0x1F81 */ - 0x7277,0x7276,0x7300,0x72FA,0x72F4,0x72FE,0x72F6,0x72F3, - 0x72FB,0x7301,0x73D3,0x73D9,0x73E5,0x73D6,0x73BC,0x73E7, - 0x73E3,0x73E9,0x73DC,0x73D2,0x73DB,0x73D4,0x73DD,0x73DA, - 0x73D7,0x73D8,0x73E8,0x74DE,0x74DF,0x74F4,0x74F5,0x7521, - 0x755B,0x755F,0x75B0,0x75C1,0x75BB,0x75C4,0x75C0,0x75BF, - 0x75B6,0x75BA,0x768A,0x76C9,0x771D,0x771B,0x7710,0x7713, - 0x7712,0x7723,0x7711,0x7715,0x7719,0x771A,0x7722,0x7727, - 0x7823,0x782C,0x7822,0x7835,0x782F,0x7828,0x782E,0x782B, - 0x7821,0x7829,0x7833,0x782A,0x7831,0x7954,0x795B,0x794F, - 0x795C,0x7953,0x7952,0x7951,0x79EB,0x79EC,0x79E0,0x79EE, - 0x79ED,0x79EA,0x79DC,0x79DE,0x79DD,0x7A86,0x7A89,0x7A85, - 0x7A8B,0x7A8C,0x7A8A,0x7A87,0x7AD8,0x7B10, - /* Range 0xD340 - 0xD37E, array index: 0x1FDF */ - 0x7B04,0x7B13,0x7B05,0x7B0F,0x7B08,0x7B0A,0x7B0E,0x7B09, - 0x7B12,0x7C84,0x7C91,0x7C8A,0x7C8C,0x7C88,0x7C8D,0x7C85, - 0x7D1E,0x7D1D,0x7D11,0x7D0E,0x7D18,0x7D16,0x7D13,0x7D1F, - 0x7D12,0x7D0F,0x7D0C,0x7F5C,0x7F61,0x7F5E,0x7F60,0x7F5D, - 0x7F5B,0x7F96,0x7F92,0x7FC3,0x7FC2,0x7FC0,0x8016,0x803E, - 0x8039,0x80FA,0x80F2,0x80F9,0x80F5,0x8101,0x80FB,0x8100, - 0x8201,0x822F,0x8225,0x8333,0x832D,0x8344,0x8319,0x8351, - 0x8325,0x8356,0x833F,0x8341,0x8326,0x831C,0x8322, - /* Range 0xD3A1 - 0xD3FE, array index: 0x201E */ - 0x8342,0x834E,0x831B,0x832A,0x8308,0x833C,0x834D,0x8316, - 0x8324,0x8320,0x8337,0x832F,0x8329,0x8347,0x8345,0x834C, - 0x8353,0x831E,0x832C,0x834B,0x8327,0x8348,0x8653,0x8652, - 0x86A2,0x86A8,0x8696,0x868D,0x8691,0x869E,0x8687,0x8697, - 0x8686,0x868B,0x869A,0x8685,0x86A5,0x8699,0x86A1,0x86A7, - 0x8695,0x8698,0x868E,0x869D,0x8690,0x8694,0x8843,0x8844, - 0x886D,0x8875,0x8876,0x8872,0x8880,0x8871,0x887F,0x886F, - 0x8883,0x887E,0x8874,0x887C,0x8A12,0x8C47,0x8C57,0x8C7B, - 0x8CA4,0x8CA3,0x8D76,0x8D78,0x8DB5,0x8DB7,0x8DB6,0x8ED1, - 0x8ED3,0x8FFE,0x8FF5,0x9002,0x8FFF,0x8FFB,0x9004,0x8FFC, - 0x8FF6,0x90D6,0x90E0,0x90D9,0x90DA,0x90E3,0x90DF,0x90E5, - 0x90D8,0x90DB,0x90D7,0x90DC,0x90E4,0x9150, - /* Range 0xD440 - 0xD47E, array index: 0x207C */ - 0x914E,0x914F,0x91D5,0x91E2,0x91DA,0x965C,0x965F,0x96BC, - 0x98E3,0x9ADF,0x9B2F,0x4E7F,0x5070,0x506A,0x5061,0x505E, - 0x5060,0x5053,0x504B,0x505D,0x5072,0x5048,0x504D,0x5041, - 0x505B,0x504A,0x5062,0x5015,0x5045,0x505F,0x5069,0x506B, - 0x5063,0x5064,0x5046,0x5040,0x506E,0x5073,0x5057,0x5051, - 0x51D0,0x526B,0x526D,0x526C,0x526E,0x52D6,0x52D3,0x532D, - 0x539C,0x5575,0x5576,0x553C,0x554D,0x5550,0x5534,0x552A, - 0x5551,0x5562,0x5536,0x5535,0x5530,0x5552,0x5545, - /* Range 0xD4A1 - 0xD4FE, array index: 0x20BB */ - 0x550C,0x5532,0x5565,0x554E,0x5539,0x5548,0x552D,0x553B, - 0x5540,0x554B,0x570A,0x5707,0x57FB,0x5814,0x57E2,0x57F6, - 0x57DC,0x57F4,0x5800,0x57ED,0x57FD,0x5808,0x57F8,0x580B, - 0x57F3,0x57CF,0x5807,0x57EE,0x57E3,0x57F2,0x57E5,0x57EC, - 0x57E1,0x580E,0x57FC,0x5810,0x57E7,0x5801,0x580C,0x57F1, - 0x57E9,0x57F0,0x580D,0x5804,0x595C,0x5A60,0x5A58,0x5A55, - 0x5A67,0x5A5E,0x5A38,0x5A35,0x5A6D,0x5A50,0x5A5F,0x5A65, - 0x5A6C,0x5A53,0x5A64,0x5A57,0x5A43,0x5A5D,0x5A52,0x5A44, - 0x5A5B,0x5A48,0x5A8E,0x5A3E,0x5A4D,0x5A39,0x5A4C,0x5A70, - 0x5A69,0x5A47,0x5A51,0x5A56,0x5A42,0x5A5C,0x5B72,0x5B6E, - 0x5BC1,0x5BC0,0x5C59,0x5D1E,0x5D0B,0x5D1D,0x5D1A,0x5D20, - 0x5D0C,0x5D28,0x5D0D,0x5D26,0x5D25,0x5D0F, - /* Range 0xD540 - 0xD57E, array index: 0x2119 */ - 0x5D30,0x5D12,0x5D23,0x5D1F,0x5D2E,0x5E3E,0x5E34,0x5EB1, - 0x5EB4,0x5EB9,0x5EB2,0x5EB3,0x5F36,0x5F38,0x5F9B,0x5F96, - 0x5F9F,0x608A,0x6090,0x6086,0x60BE,0x60B0,0x60BA,0x60D3, - 0x60D4,0x60CF,0x60E4,0x60D9,0x60DD,0x60C8,0x60B1,0x60DB, - 0x60B7,0x60CA,0x60BF,0x60C3,0x60CD,0x60C0,0x6332,0x6365, - 0x638A,0x6382,0x637D,0x63BD,0x639E,0x63AD,0x639D,0x6397, - 0x63AB,0x638E,0x636F,0x6387,0x6390,0x636E,0x63AF,0x6375, - 0x639C,0x636D,0x63AE,0x637C,0x63A4,0x633B,0x639F, - /* Range 0xD5A1 - 0xD5FE, array index: 0x2158 */ - 0x6378,0x6385,0x6381,0x6391,0x638D,0x6370,0x6553,0x65CD, - 0x6665,0x6661,0x665B,0x6659,0x665C,0x6662,0x6718,0x6879, - 0x6887,0x6890,0x689C,0x686D,0x686E,0x68AE,0x68AB,0x6956, - 0x686F,0x68A3,0x68AC,0x68A9,0x6875,0x6874,0x68B2,0x688F, - 0x6877,0x6892,0x687C,0x686B,0x6872,0x68AA,0x6880,0x6871, - 0x687E,0x689B,0x6896,0x688B,0x68A0,0x6889,0x68A4,0x6878, - 0x687B,0x6891,0x688C,0x688A,0x687D,0x6B36,0x6B33,0x6B37, - 0x6B38,0x6B91,0x6B8F,0x6B8D,0x6B8E,0x6B8C,0x6C2A,0x6DC0, - 0x6DAB,0x6DB4,0x6DB3,0x6E74,0x6DAC,0x6DE9,0x6DE2,0x6DB7, - 0x6DF6,0x6DD4,0x6E00,0x6DC8,0x6DE0,0x6DDF,0x6DD6,0x6DBE, - 0x6DE5,0x6DDC,0x6DDD,0x6DDB,0x6DF4,0x6DCA,0x6DBD,0x6DED, - 0x6DF0,0x6DBA,0x6DD5,0x6DC2,0x6DCF,0x6DC9, - /* Range 0xD640 - 0xD67E, array index: 0x21B6 */ - 0x6DD0,0x6DF2,0x6DD3,0x6DFD,0x6DD7,0x6DCD,0x6DE3,0x6DBB, - 0x70FA,0x710D,0x70F7,0x7117,0x70F4,0x710C,0x70F0,0x7104, - 0x70F3,0x7110,0x70FC,0x70FF,0x7106,0x7113,0x7100,0x70F8, - 0x70F6,0x710B,0x7102,0x710E,0x727E,0x727B,0x727C,0x727F, - 0x731D,0x7317,0x7307,0x7311,0x7318,0x730A,0x7308,0x72FF, - 0x730F,0x731E,0x7388,0x73F6,0x73F8,0x73F5,0x7404,0x7401, - 0x73FD,0x7407,0x7400,0x73FA,0x73FC,0x73FF,0x740C,0x740B, - 0x73F4,0x7408,0x7564,0x7563,0x75CE,0x75D2,0x75CF, - /* Range 0xD6A1 - 0xD6FE, array index: 0x21F5 */ - 0x75CB,0x75CC,0x75D1,0x75D0,0x768F,0x7689,0x76D3,0x7739, - 0x772F,0x772D,0x7731,0x7732,0x7734,0x7733,0x773D,0x7725, - 0x773B,0x7735,0x7848,0x7852,0x7849,0x784D,0x784A,0x784C, - 0x7826,0x7845,0x7850,0x7964,0x7967,0x7969,0x796A,0x7963, - 0x796B,0x7961,0x79BB,0x79FA,0x79F8,0x79F6,0x79F7,0x7A8F, - 0x7A94,0x7A90,0x7B35,0x7B47,0x7B34,0x7B25,0x7B30,0x7B22, - 0x7B24,0x7B33,0x7B18,0x7B2A,0x7B1D,0x7B31,0x7B2B,0x7B2D, - 0x7B2F,0x7B32,0x7B38,0x7B1A,0x7B23,0x7C94,0x7C98,0x7C96, - 0x7CA3,0x7D35,0x7D3D,0x7D38,0x7D36,0x7D3A,0x7D45,0x7D2C, - 0x7D29,0x7D41,0x7D47,0x7D3E,0x7D3F,0x7D4A,0x7D3B,0x7D28, - 0x7F63,0x7F95,0x7F9C,0x7F9D,0x7F9B,0x7FCA,0x7FCB,0x7FCD, - 0x7FD0,0x7FD1,0x7FC7,0x7FCF,0x7FC9,0x801F, - /* Range 0xD740 - 0xD77E, array index: 0x2253 */ - 0x801E,0x801B,0x8047,0x8043,0x8048,0x8118,0x8125,0x8119, - 0x811B,0x812D,0x811F,0x812C,0x811E,0x8121,0x8115,0x8127, - 0x811D,0x8122,0x8211,0x8238,0x8233,0x823A,0x8234,0x8232, - 0x8274,0x8390,0x83A3,0x83A8,0x838D,0x837A,0x8373,0x83A4, - 0x8374,0x838F,0x8381,0x8395,0x8399,0x8375,0x8394,0x83A9, - 0x837D,0x8383,0x838C,0x839D,0x839B,0x83AA,0x838B,0x837E, - 0x83A5,0x83AF,0x8388,0x8397,0x83B0,0x837F,0x83A6,0x8387, - 0x83AE,0x8376,0x839A,0x8659,0x8656,0x86BF,0x86B7, - /* Range 0xD7A1 - 0xD7FE, array index: 0x2292 */ - 0x86C2,0x86C1,0x86C5,0x86BA,0x86B0,0x86C8,0x86B9,0x86B3, - 0x86B8,0x86CC,0x86B4,0x86BB,0x86BC,0x86C3,0x86BD,0x86BE, - 0x8852,0x8889,0x8895,0x88A8,0x88A2,0x88AA,0x889A,0x8891, - 0x88A1,0x889F,0x8898,0x88A7,0x8899,0x889B,0x8897,0x88A4, - 0x88AC,0x888C,0x8893,0x888E,0x8982,0x89D6,0x89D9,0x89D5, - 0x8A30,0x8A27,0x8A2C,0x8A1E,0x8C39,0x8C3B,0x8C5C,0x8C5D, - 0x8C7D,0x8CA5,0x8D7D,0x8D7B,0x8D79,0x8DBC,0x8DC2,0x8DB9, - 0x8DBF,0x8DC1,0x8ED8,0x8EDE,0x8EDD,0x8EDC,0x8ED7,0x8EE0, - 0x8EE1,0x9024,0x900B,0x9011,0x901C,0x900C,0x9021,0x90EF, - 0x90EA,0x90F0,0x90F4,0x90F2,0x90F3,0x90D4,0x90EB,0x90EC, - 0x90E9,0x9156,0x9158,0x915A,0x9153,0x9155,0x91EC,0x91F4, - 0x91F1,0x91F3,0x91F8,0x91E4,0x91F9,0x91EA, - /* Range 0xD840 - 0xD87E, array index: 0x22F0 */ - 0x91EB,0x91F7,0x91E8,0x91EE,0x957A,0x9586,0x9588,0x967C, - 0x966D,0x966B,0x9671,0x966F,0x96BF,0x976A,0x9804,0x98E5, - 0x9997,0x509B,0x5095,0x5094,0x509E,0x508B,0x50A3,0x5083, - 0x508C,0x508E,0x509D,0x5068,0x509C,0x5092,0x5082,0x5087, - 0x515F,0x51D4,0x5312,0x5311,0x53A4,0x53A7,0x5591,0x55A8, - 0x55A5,0x55AD,0x5577,0x5645,0x55A2,0x5593,0x5588,0x558F, - 0x55B5,0x5581,0x55A3,0x5592,0x55A4,0x557D,0x558C,0x55A6, - 0x557F,0x5595,0x55A1,0x558E,0x570C,0x5829,0x5837, - /* Range 0xD8A1 - 0xD8FE, array index: 0x232F */ - 0x5819,0x581E,0x5827,0x5823,0x5828,0x57F5,0x5848,0x5825, - 0x581C,0x581B,0x5833,0x583F,0x5836,0x582E,0x5839,0x5838, - 0x582D,0x582C,0x583B,0x5961,0x5AAF,0x5A94,0x5A9F,0x5A7A, - 0x5AA2,0x5A9E,0x5A78,0x5AA6,0x5A7C,0x5AA5,0x5AAC,0x5A95, - 0x5AAE,0x5A37,0x5A84,0x5A8A,0x5A97,0x5A83,0x5A8B,0x5AA9, - 0x5A7B,0x5A7D,0x5A8C,0x5A9C,0x5A8F,0x5A93,0x5A9D,0x5BEA, - 0x5BCD,0x5BCB,0x5BD4,0x5BD1,0x5BCA,0x5BCE,0x5C0C,0x5C30, - 0x5D37,0x5D43,0x5D6B,0x5D41,0x5D4B,0x5D3F,0x5D35,0x5D51, - 0x5D4E,0x5D55,0x5D33,0x5D3A,0x5D52,0x5D3D,0x5D31,0x5D59, - 0x5D42,0x5D39,0x5D49,0x5D38,0x5D3C,0x5D32,0x5D36,0x5D40, - 0x5D45,0x5E44,0x5E41,0x5F58,0x5FA6,0x5FA5,0x5FAB,0x60C9, - 0x60B9,0x60CC,0x60E2,0x60CE,0x60C4,0x6114, - /* Range 0xD940 - 0xD97E, array index: 0x238D */ - 0x60F2,0x610A,0x6116,0x6105,0x60F5,0x6113,0x60F8,0x60FC, - 0x60FE,0x60C1,0x6103,0x6118,0x611D,0x6110,0x60FF,0x6104, - 0x610B,0x624A,0x6394,0x63B1,0x63B0,0x63CE,0x63E5,0x63E8, - 0x63EF,0x63C3,0x649D,0x63F3,0x63CA,0x63E0,0x63F6,0x63D5, - 0x63F2,0x63F5,0x6461,0x63DF,0x63BE,0x63DD,0x63DC,0x63C4, - 0x63D8,0x63D3,0x63C2,0x63C7,0x63CC,0x63CB,0x63C8,0x63F0, - 0x63D7,0x63D9,0x6532,0x6567,0x656A,0x6564,0x655C,0x6568, - 0x6565,0x658C,0x659D,0x659E,0x65AE,0x65D0,0x65D2, - /* Range 0xD9A1 - 0xD9FE, array index: 0x23CC */ - 0x667C,0x666C,0x667B,0x6680,0x6671,0x6679,0x666A,0x6672, - 0x6701,0x690C,0x68D3,0x6904,0x68DC,0x692A,0x68EC,0x68EA, - 0x68F1,0x690F,0x68D6,0x68F7,0x68EB,0x68E4,0x68F6,0x6913, - 0x6910,0x68F3,0x68E1,0x6907,0x68CC,0x6908,0x6970,0x68B4, - 0x6911,0x68EF,0x68C6,0x6914,0x68F8,0x68D0,0x68FD,0x68FC, - 0x68E8,0x690B,0x690A,0x6917,0x68CE,0x68C8,0x68DD,0x68DE, - 0x68E6,0x68F4,0x68D1,0x6906,0x68D4,0x68E9,0x6915,0x6925, - 0x68C7,0x6B39,0x6B3B,0x6B3F,0x6B3C,0x6B94,0x6B97,0x6B99, - 0x6B95,0x6BBD,0x6BF0,0x6BF2,0x6BF3,0x6C30,0x6DFC,0x6E46, - 0x6E47,0x6E1F,0x6E49,0x6E88,0x6E3C,0x6E3D,0x6E45,0x6E62, - 0x6E2B,0x6E3F,0x6E41,0x6E5D,0x6E73,0x6E1C,0x6E33,0x6E4B, - 0x6E40,0x6E51,0x6E3B,0x6E03,0x6E2E,0x6E5E, - /* Range 0xDA40 - 0xDA7E, array index: 0x242A */ - 0x6E68,0x6E5C,0x6E61,0x6E31,0x6E28,0x6E60,0x6E71,0x6E6B, - 0x6E39,0x6E22,0x6E30,0x6E53,0x6E65,0x6E27,0x6E78,0x6E64, - 0x6E77,0x6E55,0x6E79,0x6E52,0x6E66,0x6E35,0x6E36,0x6E5A, - 0x7120,0x711E,0x712F,0x70FB,0x712E,0x7131,0x7123,0x7125, - 0x7122,0x7132,0x711F,0x7128,0x713A,0x711B,0x724B,0x725A, - 0x7288,0x7289,0x7286,0x7285,0x728B,0x7312,0x730B,0x7330, - 0x7322,0x7331,0x7333,0x7327,0x7332,0x732D,0x7326,0x7323, - 0x7335,0x730C,0x742E,0x742C,0x7430,0x742B,0x7416, - /* Range 0xDAA1 - 0xDAFE, array index: 0x2469 */ - 0x741A,0x7421,0x742D,0x7431,0x7424,0x7423,0x741D,0x7429, - 0x7420,0x7432,0x74FB,0x752F,0x756F,0x756C,0x75E7,0x75DA, - 0x75E1,0x75E6,0x75DD,0x75DF,0x75E4,0x75D7,0x7695,0x7692, - 0x76DA,0x7746,0x7747,0x7744,0x774D,0x7745,0x774A,0x774E, - 0x774B,0x774C,0x77DE,0x77EC,0x7860,0x7864,0x7865,0x785C, - 0x786D,0x7871,0x786A,0x786E,0x7870,0x7869,0x7868,0x785E, - 0x7862,0x7974,0x7973,0x7972,0x7970,0x7A02,0x7A0A,0x7A03, - 0x7A0C,0x7A04,0x7A99,0x7AE6,0x7AE4,0x7B4A,0x7B3B,0x7B44, - 0x7B48,0x7B4C,0x7B4E,0x7B40,0x7B58,0x7B45,0x7CA2,0x7C9E, - 0x7CA8,0x7CA1,0x7D58,0x7D6F,0x7D63,0x7D53,0x7D56,0x7D67, - 0x7D6A,0x7D4F,0x7D6D,0x7D5C,0x7D6B,0x7D52,0x7D54,0x7D69, - 0x7D51,0x7D5F,0x7D4E,0x7F3E,0x7F3F,0x7F65, - /* Range 0xDB40 - 0xDB7E, array index: 0x24C7 */ - 0x7F66,0x7FA2,0x7FA0,0x7FA1,0x7FD7,0x8051,0x804F,0x8050, - 0x80FE,0x80D4,0x8143,0x814A,0x8152,0x814F,0x8147,0x813D, - 0x814D,0x813A,0x81E6,0x81EE,0x81F7,0x81F8,0x81F9,0x8204, - 0x823C,0x823D,0x823F,0x8275,0x833B,0x83CF,0x83F9,0x8423, - 0x83C0,0x83E8,0x8412,0x83E7,0x83E4,0x83FC,0x83F6,0x8410, - 0x83C6,0x83C8,0x83EB,0x83E3,0x83BF,0x8401,0x83DD,0x83E5, - 0x83D8,0x83FF,0x83E1,0x83CB,0x83CE,0x83D6,0x83F5,0x83C9, - 0x8409,0x840F,0x83DE,0x8411,0x8406,0x83C2,0x83F3, - /* Range 0xDBA1 - 0xDBFE, array index: 0x2506 */ - 0x83D5,0x83FA,0x83C7,0x83D1,0x83EA,0x8413,0x83C3,0x83EC, - 0x83EE,0x83C4,0x83FB,0x83D7,0x83E2,0x841B,0x83DB,0x83FE, - 0x86D8,0x86E2,0x86E6,0x86D3,0x86E3,0x86DA,0x86EA,0x86DD, - 0x86EB,0x86DC,0x86EC,0x86E9,0x86D7,0x86E8,0x86D1,0x8848, - 0x8856,0x8855,0x88BA,0x88D7,0x88B9,0x88B8,0x88C0,0x88BE, - 0x88B6,0x88BC,0x88B7,0x88BD,0x88B2,0x8901,0x88C9,0x8995, - 0x8998,0x8997,0x89DD,0x89DA,0x89DB,0x8A4E,0x8A4D,0x8A39, - 0x8A59,0x8A40,0x8A57,0x8A58,0x8A44,0x8A45,0x8A52,0x8A48, - 0x8A51,0x8A4A,0x8A4C,0x8A4F,0x8C5F,0x8C81,0x8C80,0x8CBA, - 0x8CBE,0x8CB0,0x8CB9,0x8CB5,0x8D84,0x8D80,0x8D89,0x8DD8, - 0x8DD3,0x8DCD,0x8DC7,0x8DD6,0x8DDC,0x8DCF,0x8DD5,0x8DD9, - 0x8DC8,0x8DD7,0x8DC5,0x8EEF,0x8EF7,0x8EFA, - /* Range 0xDC40 - 0xDC7E, array index: 0x2564 */ - 0x8EF9,0x8EE6,0x8EEE,0x8EE5,0x8EF5,0x8EE7,0x8EE8,0x8EF6, - 0x8EEB,0x8EF1,0x8EEC,0x8EF4,0x8EE9,0x902D,0x9034,0x902F, - 0x9106,0x912C,0x9104,0x90FF,0x90FC,0x9108,0x90F9,0x90FB, - 0x9101,0x9100,0x9107,0x9105,0x9103,0x9161,0x9164,0x915F, - 0x9162,0x9160,0x9201,0x920A,0x9225,0x9203,0x921A,0x9226, - 0x920F,0x920C,0x9200,0x9212,0x91FF,0x91FD,0x9206,0x9204, - 0x9227,0x9202,0x921C,0x9224,0x9219,0x9217,0x9205,0x9216, - 0x957B,0x958D,0x958C,0x9590,0x9687,0x967E,0x9688, - /* Range 0xDCA1 - 0xDCFE, array index: 0x25A3 */ - 0x9689,0x9683,0x9680,0x96C2,0x96C8,0x96C3,0x96F1,0x96F0, - 0x976C,0x9770,0x976E,0x9807,0x98A9,0x98EB,0x9CE6,0x9EF9, - 0x4E83,0x4E84,0x4EB6,0x50BD,0x50BF,0x50C6,0x50AE,0x50C4, - 0x50CA,0x50B4,0x50C8,0x50C2,0x50B0,0x50C1,0x50BA,0x50B1, - 0x50CB,0x50C9,0x50B6,0x50B8,0x51D7,0x527A,0x5278,0x527B, - 0x527C,0x55C3,0x55DB,0x55CC,0x55D0,0x55CB,0x55CA,0x55DD, - 0x55C0,0x55D4,0x55C4,0x55E9,0x55BF,0x55D2,0x558D,0x55CF, - 0x55D5,0x55E2,0x55D6,0x55C8,0x55F2,0x55CD,0x55D9,0x55C2, - 0x5714,0x5853,0x5868,0x5864,0x584F,0x584D,0x5849,0x586F, - 0x5855,0x584E,0x585D,0x5859,0x5865,0x585B,0x583D,0x5863, - 0x5871,0x58FC,0x5AC7,0x5AC4,0x5ACB,0x5ABA,0x5AB8,0x5AB1, - 0x5AB5,0x5AB0,0x5ABF,0x5AC8,0x5ABB,0x5AC6, - /* Range 0xDD40 - 0xDD7E, array index: 0x2601 */ - 0x5AB7,0x5AC0,0x5ACA,0x5AB4,0x5AB6,0x5ACD,0x5AB9,0x5A90, - 0x5BD6,0x5BD8,0x5BD9,0x5C1F,0x5C33,0x5D71,0x5D63,0x5D4A, - 0x5D65,0x5D72,0x5D6C,0x5D5E,0x5D68,0x5D67,0x5D62,0x5DF0, - 0x5E4F,0x5E4E,0x5E4A,0x5E4D,0x5E4B,0x5EC5,0x5ECC,0x5EC6, - 0x5ECB,0x5EC7,0x5F40,0x5FAF,0x5FAD,0x60F7,0x6149,0x614A, - 0x612B,0x6145,0x6136,0x6132,0x612E,0x6146,0x612F,0x614F, - 0x6129,0x6140,0x6220,0x9168,0x6223,0x6225,0x6224,0x63C5, - 0x63F1,0x63EB,0x6410,0x6412,0x6409,0x6420,0x6424, - /* Range 0xDDA1 - 0xDDFE, array index: 0x2640 */ - 0x6433,0x6443,0x641F,0x6415,0x6418,0x6439,0x6437,0x6422, - 0x6423,0x640C,0x6426,0x6430,0x6428,0x6441,0x6435,0x642F, - 0x640A,0x641A,0x6440,0x6425,0x6427,0x640B,0x63E7,0x641B, - 0x642E,0x6421,0x640E,0x656F,0x6592,0x65D3,0x6686,0x668C, - 0x6695,0x6690,0x668B,0x668A,0x6699,0x6694,0x6678,0x6720, - 0x6966,0x695F,0x6938,0x694E,0x6962,0x6971,0x693F,0x6945, - 0x696A,0x6939,0x6942,0x6957,0x6959,0x697A,0x6948,0x6949, - 0x6935,0x696C,0x6933,0x693D,0x6965,0x68F0,0x6978,0x6934, - 0x6969,0x6940,0x696F,0x6944,0x6976,0x6958,0x6941,0x6974, - 0x694C,0x693B,0x694B,0x6937,0x695C,0x694F,0x6951,0x6932, - 0x6952,0x692F,0x697B,0x693C,0x6B46,0x6B45,0x6B43,0x6B42, - 0x6B48,0x6B41,0x6B9B,0xFA0D,0x6BFB,0x6BFC, - /* Range 0xDE40 - 0xDE7E, array index: 0x269E */ - 0x6BF9,0x6BF7,0x6BF8,0x6E9B,0x6ED6,0x6EC8,0x6E8F,0x6EC0, - 0x6E9F,0x6E93,0x6E94,0x6EA0,0x6EB1,0x6EB9,0x6EC6,0x6ED2, - 0x6EBD,0x6EC1,0x6E9E,0x6EC9,0x6EB7,0x6EB0,0x6ECD,0x6EA6, - 0x6ECF,0x6EB2,0x6EBE,0x6EC3,0x6EDC,0x6ED8,0x6E99,0x6E92, - 0x6E8E,0x6E8D,0x6EA4,0x6EA1,0x6EBF,0x6EB3,0x6ED0,0x6ECA, - 0x6E97,0x6EAE,0x6EA3,0x7147,0x7154,0x7152,0x7163,0x7160, - 0x7141,0x715D,0x7162,0x7172,0x7178,0x716A,0x7161,0x7142, - 0x7158,0x7143,0x714B,0x7170,0x715F,0x7150,0x7153, - /* Range 0xDEA1 - 0xDEFE, array index: 0x26DD */ - 0x7144,0x714D,0x715A,0x724F,0x728D,0x728C,0x7291,0x7290, - 0x728E,0x733C,0x7342,0x733B,0x733A,0x7340,0x734A,0x7349, - 0x7444,0x744A,0x744B,0x7452,0x7451,0x7457,0x7440,0x744F, - 0x7450,0x744E,0x7442,0x7446,0x744D,0x7454,0x74E1,0x74FF, - 0x74FE,0x74FD,0x751D,0x7579,0x7577,0x6983,0x75EF,0x760F, - 0x7603,0x75F7,0x75FE,0x75FC,0x75F9,0x75F8,0x7610,0x75FB, - 0x75F6,0x75ED,0x75F5,0x75FD,0x7699,0x76B5,0x76DD,0x7755, - 0x775F,0x7760,0x7752,0x7756,0x775A,0x7769,0x7767,0x7754, - 0x7759,0x776D,0x77E0,0x7887,0x789A,0x7894,0x788F,0x7884, - 0x7895,0x7885,0x7886,0x78A1,0x7883,0x7879,0x7899,0x7880, - 0x7896,0x787B,0x797C,0x7982,0x797D,0x7979,0x7A11,0x7A18, - 0x7A19,0x7A12,0x7A17,0x7A15,0x7A22,0x7A13, - /* Range 0xDF40 - 0xDF7E, array index: 0x273B */ - 0x7A1B,0x7A10,0x7AA3,0x7AA2,0x7A9E,0x7AEB,0x7B66,0x7B64, - 0x7B6D,0x7B74,0x7B69,0x7B72,0x7B65,0x7B73,0x7B71,0x7B70, - 0x7B61,0x7B78,0x7B76,0x7B63,0x7CB2,0x7CB4,0x7CAF,0x7D88, - 0x7D86,0x7D80,0x7D8D,0x7D7F,0x7D85,0x7D7A,0x7D8E,0x7D7B, - 0x7D83,0x7D7C,0x7D8C,0x7D94,0x7D84,0x7D7D,0x7D92,0x7F6D, - 0x7F6B,0x7F67,0x7F68,0x7F6C,0x7FA6,0x7FA5,0x7FA7,0x7FDB, - 0x7FDC,0x8021,0x8164,0x8160,0x8177,0x815C,0x8169,0x815B, - 0x8162,0x8172,0x6721,0x815E,0x8176,0x8167,0x816F, - /* Range 0xDFA1 - 0xDFFE, array index: 0x277A */ - 0x8144,0x8161,0x821D,0x8249,0x8244,0x8240,0x8242,0x8245, - 0x84F1,0x843F,0x8456,0x8476,0x8479,0x848F,0x848D,0x8465, - 0x8451,0x8440,0x8486,0x8467,0x8430,0x844D,0x847D,0x845A, - 0x8459,0x8474,0x8473,0x845D,0x8507,0x845E,0x8437,0x843A, - 0x8434,0x847A,0x8443,0x8478,0x8432,0x8445,0x8429,0x83D9, - 0x844B,0x842F,0x8442,0x842D,0x845F,0x8470,0x8439,0x844E, - 0x844C,0x8452,0x846F,0x84C5,0x848E,0x843B,0x8447,0x8436, - 0x8433,0x8468,0x847E,0x8444,0x842B,0x8460,0x8454,0x846E, - 0x8450,0x870B,0x8704,0x86F7,0x870C,0x86FA,0x86D6,0x86F5, - 0x874D,0x86F8,0x870E,0x8709,0x8701,0x86F6,0x870D,0x8705, - 0x88D6,0x88CB,0x88CD,0x88CE,0x88DE,0x88DB,0x88DA,0x88CC, - 0x88D0,0x8985,0x899B,0x89DF,0x89E5,0x89E4, - /* Range 0xE040 - 0xE07E, array index: 0x27D8 */ - 0x89E1,0x89E0,0x89E2,0x89DC,0x89E6,0x8A76,0x8A86,0x8A7F, - 0x8A61,0x8A3F,0x8A77,0x8A82,0x8A84,0x8A75,0x8A83,0x8A81, - 0x8A74,0x8A7A,0x8C3C,0x8C4B,0x8C4A,0x8C65,0x8C64,0x8C66, - 0x8C86,0x8C84,0x8C85,0x8CCC,0x8D68,0x8D69,0x8D91,0x8D8C, - 0x8D8E,0x8D8F,0x8D8D,0x8D93,0x8D94,0x8D90,0x8D92,0x8DF0, - 0x8DE0,0x8DEC,0x8DF1,0x8DEE,0x8DD0,0x8DE9,0x8DE3,0x8DE2, - 0x8DE7,0x8DF2,0x8DEB,0x8DF4,0x8F06,0x8EFF,0x8F01,0x8F00, - 0x8F05,0x8F07,0x8F08,0x8F02,0x8F0B,0x9052,0x903F, - /* Range 0xE0A1 - 0xE0FE, array index: 0x2817 */ - 0x9044,0x9049,0x903D,0x9110,0x910D,0x910F,0x9111,0x9116, - 0x9114,0x910B,0x910E,0x916E,0x916F,0x9248,0x9252,0x9230, - 0x923A,0x9266,0x9233,0x9265,0x925E,0x9283,0x922E,0x924A, - 0x9246,0x926D,0x926C,0x924F,0x9260,0x9267,0x926F,0x9236, - 0x9261,0x9270,0x9231,0x9254,0x9263,0x9250,0x9272,0x924E, - 0x9253,0x924C,0x9256,0x9232,0x959F,0x959C,0x959E,0x959B, - 0x9692,0x9693,0x9691,0x9697,0x96CE,0x96FA,0x96FD,0x96F8, - 0x96F5,0x9773,0x9777,0x9778,0x9772,0x980F,0x980D,0x980E, - 0x98AC,0x98F6,0x98F9,0x99AF,0x99B2,0x99B0,0x99B5,0x9AAD, - 0x9AAB,0x9B5B,0x9CEA,0x9CED,0x9CE7,0x9E80,0x9EFD,0x50E6, - 0x50D4,0x50D7,0x50E8,0x50F3,0x50DB,0x50EA,0x50DD,0x50E4, - 0x50D3,0x50EC,0x50F0,0x50EF,0x50E3,0x50E0, - /* Range 0xE140 - 0xE17E, array index: 0x2875 */ - 0x51D8,0x5280,0x5281,0x52E9,0x52EB,0x5330,0x53AC,0x5627, - 0x5615,0x560C,0x5612,0x55FC,0x560F,0x561C,0x5601,0x5613, - 0x5602,0x55FA,0x561D,0x5604,0x55FF,0x55F9,0x5889,0x587C, - 0x5890,0x5898,0x5886,0x5881,0x587F,0x5874,0x588B,0x587A, - 0x5887,0x5891,0x588E,0x5876,0x5882,0x5888,0x587B,0x5894, - 0x588F,0x58FE,0x596B,0x5ADC,0x5AEE,0x5AE5,0x5AD5,0x5AEA, - 0x5ADA,0x5AED,0x5AEB,0x5AF3,0x5AE2,0x5AE0,0x5ADB,0x5AEC, - 0x5ADE,0x5ADD,0x5AD9,0x5AE8,0x5ADF,0x5B77,0x5BE0, - /* Range 0xE1A1 - 0xE1FE, array index: 0x28B4 */ - 0x5BE3,0x5C63,0x5D82,0x5D80,0x5D7D,0x5D86,0x5D7A,0x5D81, - 0x5D77,0x5D8A,0x5D89,0x5D88,0x5D7E,0x5D7C,0x5D8D,0x5D79, - 0x5D7F,0x5E58,0x5E59,0x5E53,0x5ED8,0x5ED1,0x5ED7,0x5ECE, - 0x5EDC,0x5ED5,0x5ED9,0x5ED2,0x5ED4,0x5F44,0x5F43,0x5F6F, - 0x5FB6,0x612C,0x6128,0x6141,0x615E,0x6171,0x6173,0x6152, - 0x6153,0x6172,0x616C,0x6180,0x6174,0x6154,0x617A,0x615B, - 0x6165,0x613B,0x616A,0x6161,0x6156,0x6229,0x6227,0x622B, - 0x642B,0x644D,0x645B,0x645D,0x6474,0x6476,0x6472,0x6473, - 0x647D,0x6475,0x6466,0x64A6,0x644E,0x6482,0x645E,0x645C, - 0x644B,0x6453,0x6460,0x6450,0x647F,0x643F,0x646C,0x646B, - 0x6459,0x6465,0x6477,0x6573,0x65A0,0x66A1,0x66A0,0x669F, - 0x6705,0x6704,0x6722,0x69B1,0x69B6,0x69C9, - /* Range 0xE240 - 0xE27E, array index: 0x2912 */ - 0x69A0,0x69CE,0x6996,0x69B0,0x69AC,0x69BC,0x6991,0x6999, - 0x698E,0x69A7,0x698D,0x69A9,0x69BE,0x69AF,0x69BF,0x69C4, - 0x69BD,0x69A4,0x69D4,0x69B9,0x69CA,0x699A,0x69CF,0x69B3, - 0x6993,0x69AA,0x69A1,0x699E,0x69D9,0x6997,0x6990,0x69C2, - 0x69B5,0x69A5,0x69C6,0x6B4A,0x6B4D,0x6B4B,0x6B9E,0x6B9F, - 0x6BA0,0x6BC3,0x6BC4,0x6BFE,0x6ECE,0x6EF5,0x6EF1,0x6F03, - 0x6F25,0x6EF8,0x6F37,0x6EFB,0x6F2E,0x6F09,0x6F4E,0x6F19, - 0x6F1A,0x6F27,0x6F18,0x6F3B,0x6F12,0x6EED,0x6F0A, - /* Range 0xE2A1 - 0xE2FE, array index: 0x2951 */ - 0x6F36,0x6F73,0x6EF9,0x6EEE,0x6F2D,0x6F40,0x6F30,0x6F3C, - 0x6F35,0x6EEB,0x6F07,0x6F0E,0x6F43,0x6F05,0x6EFD,0x6EF6, - 0x6F39,0x6F1C,0x6EFC,0x6F3A,0x6F1F,0x6F0D,0x6F1E,0x6F08, - 0x6F21,0x7187,0x7190,0x7189,0x7180,0x7185,0x7182,0x718F, - 0x717B,0x7186,0x7181,0x7197,0x7244,0x7253,0x7297,0x7295, - 0x7293,0x7343,0x734D,0x7351,0x734C,0x7462,0x7473,0x7471, - 0x7475,0x7472,0x7467,0x746E,0x7500,0x7502,0x7503,0x757D, - 0x7590,0x7616,0x7608,0x760C,0x7615,0x7611,0x760A,0x7614, - 0x76B8,0x7781,0x777C,0x7785,0x7782,0x776E,0x7780,0x776F, - 0x777E,0x7783,0x78B2,0x78AA,0x78B4,0x78AD,0x78A8,0x787E, - 0x78AB,0x789E,0x78A5,0x78A0,0x78AC,0x78A2,0x78A4,0x7998, - 0x798A,0x798B,0x7996,0x7995,0x7994,0x7993, - /* Range 0xE340 - 0xE37E, array index: 0x29AF */ - 0x7997,0x7988,0x7992,0x7990,0x7A2B,0x7A4A,0x7A30,0x7A2F, - 0x7A28,0x7A26,0x7AA8,0x7AAB,0x7AAC,0x7AEE,0x7B88,0x7B9C, - 0x7B8A,0x7B91,0x7B90,0x7B96,0x7B8D,0x7B8C,0x7B9B,0x7B8E, - 0x7B85,0x7B98,0x5284,0x7B99,0x7BA4,0x7B82,0x7CBB,0x7CBF, - 0x7CBC,0x7CBA,0x7DA7,0x7DB7,0x7DC2,0x7DA3,0x7DAA,0x7DC1, - 0x7DC0,0x7DC5,0x7D9D,0x7DCE,0x7DC4,0x7DC6,0x7DCB,0x7DCC, - 0x7DAF,0x7DB9,0x7D96,0x7DBC,0x7D9F,0x7DA6,0x7DAE,0x7DA9, - 0x7DA1,0x7DC9,0x7F73,0x7FE2,0x7FE3,0x7FE5,0x7FDE, - /* Range 0xE3A1 - 0xE3FE, array index: 0x29EE */ - 0x8024,0x805D,0x805C,0x8189,0x8186,0x8183,0x8187,0x818D, - 0x818C,0x818B,0x8215,0x8497,0x84A4,0x84A1,0x849F,0x84BA, - 0x84CE,0x84C2,0x84AC,0x84AE,0x84AB,0x84B9,0x84B4,0x84C1, - 0x84CD,0x84AA,0x849A,0x84B1,0x84D0,0x849D,0x84A7,0x84BB, - 0x84A2,0x8494,0x84C7,0x84CC,0x849B,0x84A9,0x84AF,0x84A8, - 0x84D6,0x8498,0x84B6,0x84CF,0x84A0,0x84D7,0x84D4,0x84D2, - 0x84DB,0x84B0,0x8491,0x8661,0x8733,0x8723,0x8728,0x876B, - 0x8740,0x872E,0x871E,0x8721,0x8719,0x871B,0x8743,0x872C, - 0x8741,0x873E,0x8746,0x8720,0x8732,0x872A,0x872D,0x873C, - 0x8712,0x873A,0x8731,0x8735,0x8742,0x8726,0x8727,0x8738, - 0x8724,0x871A,0x8730,0x8711,0x88F7,0x88E7,0x88F1,0x88F2, - 0x88FA,0x88FE,0x88EE,0x88FC,0x88F6,0x88FB, - /* Range 0xE440 - 0xE47E, array index: 0x2A4C */ - 0x88F0,0x88EC,0x88EB,0x899D,0x89A1,0x899F,0x899E,0x89E9, - 0x89EB,0x89E8,0x8AAB,0x8A99,0x8A8B,0x8A92,0x8A8F,0x8A96, - 0x8C3D,0x8C68,0x8C69,0x8CD5,0x8CCF,0x8CD7,0x8D96,0x8E09, - 0x8E02,0x8DFF,0x8E0D,0x8DFD,0x8E0A,0x8E03,0x8E07,0x8E06, - 0x8E05,0x8DFE,0x8E00,0x8E04,0x8F10,0x8F11,0x8F0E,0x8F0D, - 0x9123,0x911C,0x9120,0x9122,0x911F,0x911D,0x911A,0x9124, - 0x9121,0x911B,0x917A,0x9172,0x9179,0x9173,0x92A5,0x92A4, - 0x9276,0x929B,0x927A,0x92A0,0x9294,0x92AA,0x928D, - /* Range 0xE4A1 - 0xE4FE, array index: 0x2A8B */ - 0x92A6,0x929A,0x92AB,0x9279,0x9297,0x927F,0x92A3,0x92EE, - 0x928E,0x9282,0x9295,0x92A2,0x927D,0x9288,0x92A1,0x928A, - 0x9286,0x928C,0x9299,0x92A7,0x927E,0x9287,0x92A9,0x929D, - 0x928B,0x922D,0x969E,0x96A1,0x96FF,0x9758,0x977D,0x977A, - 0x977E,0x9783,0x9780,0x9782,0x977B,0x9784,0x9781,0x977F, - 0x97CE,0x97CD,0x9816,0x98AD,0x98AE,0x9902,0x9900,0x9907, - 0x999D,0x999C,0x99C3,0x99B9,0x99BB,0x99BA,0x99C2,0x99BD, - 0x99C7,0x9AB1,0x9AE3,0x9AE7,0x9B3E,0x9B3F,0x9B60,0x9B61, - 0x9B5F,0x9CF1,0x9CF2,0x9CF5,0x9EA7,0x50FF,0x5103,0x5130, - 0x50F8,0x5106,0x5107,0x50F6,0x50FE,0x510B,0x510C,0x50FD, - 0x510A,0x528B,0x528C,0x52F1,0x52EF,0x5648,0x5642,0x564C, - 0x5635,0x5641,0x564A,0x5649,0x5646,0x5658, - /* Range 0xE540 - 0xE57E, array index: 0x2AE9 */ - 0x565A,0x5640,0x5633,0x563D,0x562C,0x563E,0x5638,0x562A, - 0x563A,0x571A,0x58AB,0x589D,0x58B1,0x58A0,0x58A3,0x58AF, - 0x58AC,0x58A5,0x58A1,0x58FF,0x5AFF,0x5AF4,0x5AFD,0x5AF7, - 0x5AF6,0x5B03,0x5AF8,0x5B02,0x5AF9,0x5B01,0x5B07,0x5B05, - 0x5B0F,0x5C67,0x5D99,0x5D97,0x5D9F,0x5D92,0x5DA2,0x5D93, - 0x5D95,0x5DA0,0x5D9C,0x5DA1,0x5D9A,0x5D9E,0x5E69,0x5E5D, - 0x5E60,0x5E5C,0x7DF3,0x5EDB,0x5EDE,0x5EE1,0x5F49,0x5FB2, - 0x618B,0x6183,0x6179,0x61B1,0x61B0,0x61A2,0x6189, - /* Range 0xE5A1 - 0xE5FE, array index: 0x2B28 */ - 0x619B,0x6193,0x61AF,0x61AD,0x619F,0x6192,0x61AA,0x61A1, - 0x618D,0x6166,0x61B3,0x622D,0x646E,0x6470,0x6496,0x64A0, - 0x6485,0x6497,0x649C,0x648F,0x648B,0x648A,0x648C,0x64A3, - 0x649F,0x6468,0x64B1,0x6498,0x6576,0x657A,0x6579,0x657B, - 0x65B2,0x65B3,0x66B5,0x66B0,0x66A9,0x66B2,0x66B7,0x66AA, - 0x66AF,0x6A00,0x6A06,0x6A17,0x69E5,0x69F8,0x6A15,0x69F1, - 0x69E4,0x6A20,0x69FF,0x69EC,0x69E2,0x6A1B,0x6A1D,0x69FE, - 0x6A27,0x69F2,0x69EE,0x6A14,0x69F7,0x69E7,0x6A40,0x6A08, - 0x69E6,0x69FB,0x6A0D,0x69FC,0x69EB,0x6A09,0x6A04,0x6A18, - 0x6A25,0x6A0F,0x69F6,0x6A26,0x6A07,0x69F4,0x6A16,0x6B51, - 0x6BA5,0x6BA3,0x6BA2,0x6BA6,0x6C01,0x6C00,0x6BFF,0x6C02, - 0x6F41,0x6F26,0x6F7E,0x6F87,0x6FC6,0x6F92, - /* Range 0xE640 - 0xE67E, array index: 0x2B86 */ - 0x6F8D,0x6F89,0x6F8C,0x6F62,0x6F4F,0x6F85,0x6F5A,0x6F96, - 0x6F76,0x6F6C,0x6F82,0x6F55,0x6F72,0x6F52,0x6F50,0x6F57, - 0x6F94,0x6F93,0x6F5D,0x6F00,0x6F61,0x6F6B,0x6F7D,0x6F67, - 0x6F90,0x6F53,0x6F8B,0x6F69,0x6F7F,0x6F95,0x6F63,0x6F77, - 0x6F6A,0x6F7B,0x71B2,0x71AF,0x719B,0x71B0,0x71A0,0x719A, - 0x71A9,0x71B5,0x719D,0x71A5,0x719E,0x71A4,0x71A1,0x71AA, - 0x719C,0x71A7,0x71B3,0x7298,0x729A,0x7358,0x7352,0x735E, - 0x735F,0x7360,0x735D,0x735B,0x7361,0x735A,0x7359, - /* Range 0xE6A1 - 0xE6FE, array index: 0x2BC5 */ - 0x7362,0x7487,0x7489,0x748A,0x7486,0x7481,0x747D,0x7485, - 0x7488,0x747C,0x7479,0x7508,0x7507,0x757E,0x7625,0x761E, - 0x7619,0x761D,0x761C,0x7623,0x761A,0x7628,0x761B,0x769C, - 0x769D,0x769E,0x769B,0x778D,0x778F,0x7789,0x7788,0x78CD, - 0x78BB,0x78CF,0x78CC,0x78D1,0x78CE,0x78D4,0x78C8,0x78C3, - 0x78C4,0x78C9,0x799A,0x79A1,0x79A0,0x799C,0x79A2,0x799B, - 0x6B76,0x7A39,0x7AB2,0x7AB4,0x7AB3,0x7BB7,0x7BCB,0x7BBE, - 0x7BAC,0x7BCE,0x7BAF,0x7BB9,0x7BCA,0x7BB5,0x7CC5,0x7CC8, - 0x7CCC,0x7CCB,0x7DF7,0x7DDB,0x7DEA,0x7DE7,0x7DD7,0x7DE1, - 0x7E03,0x7DFA,0x7DE6,0x7DF6,0x7DF1,0x7DF0,0x7DEE,0x7DDF, - 0x7F76,0x7FAC,0x7FB0,0x7FAD,0x7FED,0x7FEB,0x7FEA,0x7FEC, - 0x7FE6,0x7FE8,0x8064,0x8067,0x81A3,0x819F, - /* Range 0xE740 - 0xE77E, array index: 0x2C23 */ - 0x819E,0x8195,0x81A2,0x8199,0x8197,0x8216,0x824F,0x8253, - 0x8252,0x8250,0x824E,0x8251,0x8524,0x853B,0x850F,0x8500, - 0x8529,0x850E,0x8509,0x850D,0x851F,0x850A,0x8527,0x851C, - 0x84FB,0x852B,0x84FA,0x8508,0x850C,0x84F4,0x852A,0x84F2, - 0x8515,0x84F7,0x84EB,0x84F3,0x84FC,0x8512,0x84EA,0x84E9, - 0x8516,0x84FE,0x8528,0x851D,0x852E,0x8502,0x84FD,0x851E, - 0x84F6,0x8531,0x8526,0x84E7,0x84E8,0x84F0,0x84EF,0x84F9, - 0x8518,0x8520,0x8530,0x850B,0x8519,0x852F,0x8662, - /* Range 0xE7A1 - 0xE7FE, array index: 0x2C62 */ - 0x8756,0x8763,0x8764,0x8777,0x87E1,0x8773,0x8758,0x8754, - 0x875B,0x8752,0x8761,0x875A,0x8751,0x875E,0x876D,0x876A, - 0x8750,0x874E,0x875F,0x875D,0x876F,0x876C,0x877A,0x876E, - 0x875C,0x8765,0x874F,0x877B,0x8775,0x8762,0x8767,0x8769, - 0x885A,0x8905,0x890C,0x8914,0x890B,0x8917,0x8918,0x8919, - 0x8906,0x8916,0x8911,0x890E,0x8909,0x89A2,0x89A4,0x89A3, - 0x89ED,0x89F0,0x89EC,0x8ACF,0x8AC6,0x8AB8,0x8AD3,0x8AD1, - 0x8AD4,0x8AD5,0x8ABB,0x8AD7,0x8ABE,0x8AC0,0x8AC5,0x8AD8, - 0x8AC3,0x8ABA,0x8ABD,0x8AD9,0x8C3E,0x8C4D,0x8C8F,0x8CE5, - 0x8CDF,0x8CD9,0x8CE8,0x8CDA,0x8CDD,0x8CE7,0x8DA0,0x8D9C, - 0x8DA1,0x8D9B,0x8E20,0x8E23,0x8E25,0x8E24,0x8E2E,0x8E15, - 0x8E1B,0x8E16,0x8E11,0x8E19,0x8E26,0x8E27, - /* Range 0xE840 - 0xE87E, array index: 0x2CC0 */ - 0x8E14,0x8E12,0x8E18,0x8E13,0x8E1C,0x8E17,0x8E1A,0x8F2C, - 0x8F24,0x8F18,0x8F1A,0x8F20,0x8F23,0x8F16,0x8F17,0x9073, - 0x9070,0x906F,0x9067,0x906B,0x912F,0x912B,0x9129,0x912A, - 0x9132,0x9126,0x912E,0x9185,0x9186,0x918A,0x9181,0x9182, - 0x9184,0x9180,0x92D0,0x92C3,0x92C4,0x92C0,0x92D9,0x92B6, - 0x92CF,0x92F1,0x92DF,0x92D8,0x92E9,0x92D7,0x92DD,0x92CC, - 0x92EF,0x92C2,0x92E8,0x92CA,0x92C8,0x92CE,0x92E6,0x92CD, - 0x92D5,0x92C9,0x92E0,0x92DE,0x92E7,0x92D1,0x92D3, - /* Range 0xE8A1 - 0xE8FE, array index: 0x2CFF */ - 0x92B5,0x92E1,0x92C6,0x92B4,0x957C,0x95AC,0x95AB,0x95AE, - 0x95B0,0x96A4,0x96A2,0x96D3,0x9705,0x9708,0x9702,0x975A, - 0x978A,0x978E,0x9788,0x97D0,0x97CF,0x981E,0x981D,0x9826, - 0x9829,0x9828,0x9820,0x981B,0x9827,0x98B2,0x9908,0x98FA, - 0x9911,0x9914,0x9916,0x9917,0x9915,0x99DC,0x99CD,0x99CF, - 0x99D3,0x99D4,0x99CE,0x99C9,0x99D6,0x99D8,0x99CB,0x99D7, - 0x99CC,0x9AB3,0x9AEC,0x9AEB,0x9AF3,0x9AF2,0x9AF1,0x9B46, - 0x9B43,0x9B67,0x9B74,0x9B71,0x9B66,0x9B76,0x9B75,0x9B70, - 0x9B68,0x9B64,0x9B6C,0x9CFC,0x9CFA,0x9CFD,0x9CFF,0x9CF7, - 0x9D07,0x9D00,0x9CF9,0x9CFB,0x9D08,0x9D05,0x9D04,0x9E83, - 0x9ED3,0x9F0F,0x9F10,0x511C,0x5113,0x5117,0x511A,0x5111, - 0x51DE,0x5334,0x53E1,0x5670,0x5660,0x566E, - /* Range 0xE940 - 0xE97E, array index: 0x2D5D */ - 0x5673,0x5666,0x5663,0x566D,0x5672,0x565E,0x5677,0x571C, - 0x571B,0x58C8,0x58BD,0x58C9,0x58BF,0x58BA,0x58C2,0x58BC, - 0x58C6,0x5B17,0x5B19,0x5B1B,0x5B21,0x5B14,0x5B13,0x5B10, - 0x5B16,0x5B28,0x5B1A,0x5B20,0x5B1E,0x5BEF,0x5DAC,0x5DB1, - 0x5DA9,0x5DA7,0x5DB5,0x5DB0,0x5DAE,0x5DAA,0x5DA8,0x5DB2, - 0x5DAD,0x5DAF,0x5DB4,0x5E67,0x5E68,0x5E66,0x5E6F,0x5EE9, - 0x5EE7,0x5EE6,0x5EE8,0x5EE5,0x5F4B,0x5FBC,0x619D,0x61A8, - 0x6196,0x61C5,0x61B4,0x61C6,0x61C1,0x61CC,0x61BA, - /* Range 0xE9A1 - 0xE9FE, array index: 0x2D9C */ - 0x61BF,0x61B8,0x618C,0x64D7,0x64D6,0x64D0,0x64CF,0x64C9, - 0x64BD,0x6489,0x64C3,0x64DB,0x64F3,0x64D9,0x6533,0x657F, - 0x657C,0x65A2,0x66C8,0x66BE,0x66C0,0x66CA,0x66CB,0x66CF, - 0x66BD,0x66BB,0x66BA,0x66CC,0x6723,0x6A34,0x6A66,0x6A49, - 0x6A67,0x6A32,0x6A68,0x6A3E,0x6A5D,0x6A6D,0x6A76,0x6A5B, - 0x6A51,0x6A28,0x6A5A,0x6A3B,0x6A3F,0x6A41,0x6A6A,0x6A64, - 0x6A50,0x6A4F,0x6A54,0x6A6F,0x6A69,0x6A60,0x6A3C,0x6A5E, - 0x6A56,0x6A55,0x6A4D,0x6A4E,0x6A46,0x6B55,0x6B54,0x6B56, - 0x6BA7,0x6BAA,0x6BAB,0x6BC8,0x6BC7,0x6C04,0x6C03,0x6C06, - 0x6FAD,0x6FCB,0x6FA3,0x6FC7,0x6FBC,0x6FCE,0x6FC8,0x6F5E, - 0x6FC4,0x6FBD,0x6F9E,0x6FCA,0x6FA8,0x7004,0x6FA5,0x6FAE, - 0x6FBA,0x6FAC,0x6FAA,0x6FCF,0x6FBF,0x6FB8, - /* Range 0xEA40 - 0xEA7E, array index: 0x2DFA */ - 0x6FA2,0x6FC9,0x6FAB,0x6FCD,0x6FAF,0x6FB2,0x6FB0,0x71C5, - 0x71C2,0x71BF,0x71B8,0x71D6,0x71C0,0x71C1,0x71CB,0x71D4, - 0x71CA,0x71C7,0x71CF,0x71BD,0x71D8,0x71BC,0x71C6,0x71DA, - 0x71DB,0x729D,0x729E,0x7369,0x7366,0x7367,0x736C,0x7365, - 0x736B,0x736A,0x747F,0x749A,0x74A0,0x7494,0x7492,0x7495, - 0x74A1,0x750B,0x7580,0x762F,0x762D,0x7631,0x763D,0x7633, - 0x763C,0x7635,0x7632,0x7630,0x76BB,0x76E6,0x779A,0x779D, - 0x77A1,0x779C,0x779B,0x77A2,0x77A3,0x7795,0x7799, - /* Range 0xEAA1 - 0xEAFE, array index: 0x2E39 */ - 0x7797,0x78DD,0x78E9,0x78E5,0x78EA,0x78DE,0x78E3,0x78DB, - 0x78E1,0x78E2,0x78ED,0x78DF,0x78E0,0x79A4,0x7A44,0x7A48, - 0x7A47,0x7AB6,0x7AB8,0x7AB5,0x7AB1,0x7AB7,0x7BDE,0x7BE3, - 0x7BE7,0x7BDD,0x7BD5,0x7BE5,0x7BDA,0x7BE8,0x7BF9,0x7BD4, - 0x7BEA,0x7BE2,0x7BDC,0x7BEB,0x7BD8,0x7BDF,0x7CD2,0x7CD4, - 0x7CD7,0x7CD0,0x7CD1,0x7E12,0x7E21,0x7E17,0x7E0C,0x7E1F, - 0x7E20,0x7E13,0x7E0E,0x7E1C,0x7E15,0x7E1A,0x7E22,0x7E0B, - 0x7E0F,0x7E16,0x7E0D,0x7E14,0x7E25,0x7E24,0x7F43,0x7F7B, - 0x7F7C,0x7F7A,0x7FB1,0x7FEF,0x802A,0x8029,0x806C,0x81B1, - 0x81A6,0x81AE,0x81B9,0x81B5,0x81AB,0x81B0,0x81AC,0x81B4, - 0x81B2,0x81B7,0x81A7,0x81F2,0x8255,0x8256,0x8257,0x8556, - 0x8545,0x856B,0x854D,0x8553,0x8561,0x8558, - /* Range 0xEB40 - 0xEB7E, array index: 0x2E97 */ - 0x8540,0x8546,0x8564,0x8541,0x8562,0x8544,0x8551,0x8547, - 0x8563,0x853E,0x855B,0x8571,0x854E,0x856E,0x8575,0x8555, - 0x8567,0x8560,0x858C,0x8566,0x855D,0x8554,0x8565,0x856C, - 0x8663,0x8665,0x8664,0x879B,0x878F,0x8797,0x8793,0x8792, - 0x8788,0x8781,0x8796,0x8798,0x8779,0x8787,0x87A3,0x8785, - 0x8790,0x8791,0x879D,0x8784,0x8794,0x879C,0x879A,0x8789, - 0x891E,0x8926,0x8930,0x892D,0x892E,0x8927,0x8931,0x8922, - 0x8929,0x8923,0x892F,0x892C,0x891F,0x89F1,0x8AE0, - /* Range 0xEBA1 - 0xEBFE, array index: 0x2ED6 */ - 0x8AE2,0x8AF2,0x8AF4,0x8AF5,0x8ADD,0x8B14,0x8AE4,0x8ADF, - 0x8AF0,0x8AC8,0x8ADE,0x8AE1,0x8AE8,0x8AFF,0x8AEF,0x8AFB, - 0x8C91,0x8C92,0x8C90,0x8CF5,0x8CEE,0x8CF1,0x8CF0,0x8CF3, - 0x8D6C,0x8D6E,0x8DA5,0x8DA7,0x8E33,0x8E3E,0x8E38,0x8E40, - 0x8E45,0x8E36,0x8E3C,0x8E3D,0x8E41,0x8E30,0x8E3F,0x8EBD, - 0x8F36,0x8F2E,0x8F35,0x8F32,0x8F39,0x8F37,0x8F34,0x9076, - 0x9079,0x907B,0x9086,0x90FA,0x9133,0x9135,0x9136,0x9193, - 0x9190,0x9191,0x918D,0x918F,0x9327,0x931E,0x9308,0x931F, - 0x9306,0x930F,0x937A,0x9338,0x933C,0x931B,0x9323,0x9312, - 0x9301,0x9346,0x932D,0x930E,0x930D,0x92CB,0x931D,0x92FA, - 0x9325,0x9313,0x92F9,0x92F7,0x9334,0x9302,0x9324,0x92FF, - 0x9329,0x9339,0x9335,0x932A,0x9314,0x930C, - /* Range 0xEC40 - 0xEC7E, array index: 0x2F34 */ - 0x930B,0x92FE,0x9309,0x9300,0x92FB,0x9316,0x95BC,0x95CD, - 0x95BE,0x95B9,0x95BA,0x95B6,0x95BF,0x95B5,0x95BD,0x96A9, - 0x96D4,0x970B,0x9712,0x9710,0x9799,0x9797,0x9794,0x97F0, - 0x97F8,0x9835,0x982F,0x9832,0x9924,0x991F,0x9927,0x9929, - 0x999E,0x99EE,0x99EC,0x99E5,0x99E4,0x99F0,0x99E3,0x99EA, - 0x99E9,0x99E7,0x9AB9,0x9ABF,0x9AB4,0x9ABB,0x9AF6,0x9AFA, - 0x9AF9,0x9AF7,0x9B33,0x9B80,0x9B85,0x9B87,0x9B7C,0x9B7E, - 0x9B7B,0x9B82,0x9B93,0x9B92,0x9B90,0x9B7A,0x9B95, - /* Range 0xECA1 - 0xECFE, array index: 0x2F73 */ - 0x9B7D,0x9B88,0x9D25,0x9D17,0x9D20,0x9D1E,0x9D14,0x9D29, - 0x9D1D,0x9D18,0x9D22,0x9D10,0x9D19,0x9D1F,0x9E88,0x9E86, - 0x9E87,0x9EAE,0x9EAD,0x9ED5,0x9ED6,0x9EFA,0x9F12,0x9F3D, - 0x5126,0x5125,0x5122,0x5124,0x5120,0x5129,0x52F4,0x5693, - 0x568C,0x568D,0x5686,0x5684,0x5683,0x567E,0x5682,0x567F, - 0x5681,0x58D6,0x58D4,0x58CF,0x58D2,0x5B2D,0x5B25,0x5B32, - 0x5B23,0x5B2C,0x5B27,0x5B26,0x5B2F,0x5B2E,0x5B7B,0x5BF1, - 0x5BF2,0x5DB7,0x5E6C,0x5E6A,0x5FBE,0x5FBB,0x61C3,0x61B5, - 0x61BC,0x61E7,0x61E0,0x61E5,0x61E4,0x61E8,0x61DE,0x64EF, - 0x64E9,0x64E3,0x64EB,0x64E4,0x64E8,0x6581,0x6580,0x65B6, - 0x65DA,0x66D2,0x6A8D,0x6A96,0x6A81,0x6AA5,0x6A89,0x6A9F, - 0x6A9B,0x6AA1,0x6A9E,0x6A87,0x6A93,0x6A8E, - /* Range 0xED40 - 0xED7E, array index: 0x2FD1 */ - 0x6A95,0x6A83,0x6AA8,0x6AA4,0x6A91,0x6A7F,0x6AA6,0x6A9A, - 0x6A85,0x6A8C,0x6A92,0x6B5B,0x6BAD,0x6C09,0x6FCC,0x6FA9, - 0x6FF4,0x6FD4,0x6FE3,0x6FDC,0x6FED,0x6FE7,0x6FE6,0x6FDE, - 0x6FF2,0x6FDD,0x6FE2,0x6FE8,0x71E1,0x71F1,0x71E8,0x71F2, - 0x71E4,0x71F0,0x71E2,0x7373,0x736E,0x736F,0x7497,0x74B2, - 0x74AB,0x7490,0x74AA,0x74AD,0x74B1,0x74A5,0x74AF,0x7510, - 0x7511,0x7512,0x750F,0x7584,0x7643,0x7648,0x7649,0x7647, - 0x76A4,0x76E9,0x77B5,0x77AB,0x77B2,0x77B7,0x77B6, - /* Range 0xEDA1 - 0xEDFE, array index: 0x3010 */ - 0x77B4,0x77B1,0x77A8,0x77F0,0x78F3,0x78FD,0x7902,0x78FB, - 0x78FC,0x78F2,0x7905,0x78F9,0x78FE,0x7904,0x79AB,0x79A8, - 0x7A5C,0x7A5B,0x7A56,0x7A58,0x7A54,0x7A5A,0x7ABE,0x7AC0, - 0x7AC1,0x7C05,0x7C0F,0x7BF2,0x7C00,0x7BFF,0x7BFB,0x7C0E, - 0x7BF4,0x7C0B,0x7BF3,0x7C02,0x7C09,0x7C03,0x7C01,0x7BF8, - 0x7BFD,0x7C06,0x7BF0,0x7BF1,0x7C10,0x7C0A,0x7CE8,0x7E2D, - 0x7E3C,0x7E42,0x7E33,0x9848,0x7E38,0x7E2A,0x7E49,0x7E40, - 0x7E47,0x7E29,0x7E4C,0x7E30,0x7E3B,0x7E36,0x7E44,0x7E3A, - 0x7F45,0x7F7F,0x7F7E,0x7F7D,0x7FF4,0x7FF2,0x802C,0x81BB, - 0x81C4,0x81CC,0x81CA,0x81C5,0x81C7,0x81BC,0x81E9,0x825B, - 0x825A,0x825C,0x8583,0x8580,0x858F,0x85A7,0x8595,0x85A0, - 0x858B,0x85A3,0x857B,0x85A4,0x859A,0x859E, - /* Range 0xEE40 - 0xEE7E, array index: 0x306E */ - 0x8577,0x857C,0x8589,0x85A1,0x857A,0x8578,0x8557,0x858E, - 0x8596,0x8586,0x858D,0x8599,0x859D,0x8581,0x85A2,0x8582, - 0x8588,0x8585,0x8579,0x8576,0x8598,0x8590,0x859F,0x8668, - 0x87BE,0x87AA,0x87AD,0x87C5,0x87B0,0x87AC,0x87B9,0x87B5, - 0x87BC,0x87AE,0x87C9,0x87C3,0x87C2,0x87CC,0x87B7,0x87AF, - 0x87C4,0x87CA,0x87B4,0x87B6,0x87BF,0x87B8,0x87BD,0x87DE, - 0x87B2,0x8935,0x8933,0x893C,0x893E,0x8941,0x8952,0x8937, - 0x8942,0x89AD,0x89AF,0x89AE,0x89F2,0x89F3,0x8B1E, - /* Range 0xEEA1 - 0xEEFE, array index: 0x30AD */ - 0x8B18,0x8B16,0x8B11,0x8B05,0x8B0B,0x8B22,0x8B0F,0x8B12, - 0x8B15,0x8B07,0x8B0D,0x8B08,0x8B06,0x8B1C,0x8B13,0x8B1A, - 0x8C4F,0x8C70,0x8C72,0x8C71,0x8C6F,0x8C95,0x8C94,0x8CF9, - 0x8D6F,0x8E4E,0x8E4D,0x8E53,0x8E50,0x8E4C,0x8E47,0x8F43, - 0x8F40,0x9085,0x907E,0x9138,0x919A,0x91A2,0x919B,0x9199, - 0x919F,0x91A1,0x919D,0x91A0,0x93A1,0x9383,0x93AF,0x9364, - 0x9356,0x9347,0x937C,0x9358,0x935C,0x9376,0x9349,0x9350, - 0x9351,0x9360,0x936D,0x938F,0x934C,0x936A,0x9379,0x9357, - 0x9355,0x9352,0x934F,0x9371,0x9377,0x937B,0x9361,0x935E, - 0x9363,0x9367,0x9380,0x934E,0x9359,0x95C7,0x95C0,0x95C9, - 0x95C3,0x95C5,0x95B7,0x96AE,0x96B0,0x96AC,0x9720,0x971F, - 0x9718,0x971D,0x9719,0x979A,0x97A1,0x979C, - /* Range 0xEF40 - 0xEF7E, array index: 0x310B */ - 0x979E,0x979D,0x97D5,0x97D4,0x97F1,0x9841,0x9844,0x984A, - 0x9849,0x9845,0x9843,0x9925,0x992B,0x992C,0x992A,0x9933, - 0x9932,0x992F,0x992D,0x9931,0x9930,0x9998,0x99A3,0x99A1, - 0x9A02,0x99FA,0x99F4,0x99F7,0x99F9,0x99F8,0x99F6,0x99FB, - 0x99FD,0x99FE,0x99FC,0x9A03,0x9ABE,0x9AFE,0x9AFD,0x9B01, - 0x9AFC,0x9B48,0x9B9A,0x9BA8,0x9B9E,0x9B9B,0x9BA6,0x9BA1, - 0x9BA5,0x9BA4,0x9B86,0x9BA2,0x9BA0,0x9BAF,0x9D33,0x9D41, - 0x9D67,0x9D36,0x9D2E,0x9D2F,0x9D31,0x9D38,0x9D30, - /* Range 0xEFA1 - 0xEFFE, array index: 0x314A */ - 0x9D45,0x9D42,0x9D43,0x9D3E,0x9D37,0x9D40,0x9D3D,0x7FF5, - 0x9D2D,0x9E8A,0x9E89,0x9E8D,0x9EB0,0x9EC8,0x9EDA,0x9EFB, - 0x9EFF,0x9F24,0x9F23,0x9F22,0x9F54,0x9FA0,0x5131,0x512D, - 0x512E,0x5698,0x569C,0x5697,0x569A,0x569D,0x5699,0x5970, - 0x5B3C,0x5C69,0x5C6A,0x5DC0,0x5E6D,0x5E6E,0x61D8,0x61DF, - 0x61ED,0x61EE,0x61F1,0x61EA,0x61F0,0x61EB,0x61D6,0x61E9, - 0x64FF,0x6504,0x64FD,0x64F8,0x6501,0x6503,0x64FC,0x6594, - 0x65DB,0x66DA,0x66DB,0x66D8,0x6AC5,0x6AB9,0x6ABD,0x6AE1, - 0x6AC6,0x6ABA,0x6AB6,0x6AB7,0x6AC7,0x6AB4,0x6AAD,0x6B5E, - 0x6BC9,0x6C0B,0x7007,0x700C,0x700D,0x7001,0x7005,0x7014, - 0x700E,0x6FFF,0x7000,0x6FFB,0x7026,0x6FFC,0x6FF7,0x700A, - 0x7201,0x71FF,0x71F9,0x7203,0x71FD,0x7376, - /* Range 0xF040 - 0xF07E, array index: 0x31A8 */ - 0x74B8,0x74C0,0x74B5,0x74C1,0x74BE,0x74B6,0x74BB,0x74C2, - 0x7514,0x7513,0x765C,0x7664,0x7659,0x7650,0x7653,0x7657, - 0x765A,0x76A6,0x76BD,0x76EC,0x77C2,0x77BA,0x78FF,0x790C, - 0x7913,0x7914,0x7909,0x7910,0x7912,0x7911,0x79AD,0x79AC, - 0x7A5F,0x7C1C,0x7C29,0x7C19,0x7C20,0x7C1F,0x7C2D,0x7C1D, - 0x7C26,0x7C28,0x7C22,0x7C25,0x7C30,0x7E5C,0x7E50,0x7E56, - 0x7E63,0x7E58,0x7E62,0x7E5F,0x7E51,0x7E60,0x7E57,0x7E53, - 0x7FB5,0x7FB3,0x7FF7,0x7FF8,0x8075,0x81D1,0x81D2, - /* Range 0xF0A1 - 0xF0FE, array index: 0x31E7 */ - 0x81D0,0x825F,0x825E,0x85B4,0x85C6,0x85C0,0x85C3,0x85C2, - 0x85B3,0x85B5,0x85BD,0x85C7,0x85C4,0x85BF,0x85CB,0x85CE, - 0x85C8,0x85C5,0x85B1,0x85B6,0x85D2,0x8624,0x85B8,0x85B7, - 0x85BE,0x8669,0x87E7,0x87E6,0x87E2,0x87DB,0x87EB,0x87EA, - 0x87E5,0x87DF,0x87F3,0x87E4,0x87D4,0x87DC,0x87D3,0x87ED, - 0x87D8,0x87E3,0x87A4,0x87D7,0x87D9,0x8801,0x87F4,0x87E8, - 0x87DD,0x8953,0x894B,0x894F,0x894C,0x8946,0x8950,0x8951, - 0x8949,0x8B2A,0x8B27,0x8B23,0x8B33,0x8B30,0x8B35,0x8B47, - 0x8B2F,0x8B3C,0x8B3E,0x8B31,0x8B25,0x8B37,0x8B26,0x8B36, - 0x8B2E,0x8B24,0x8B3B,0x8B3D,0x8B3A,0x8C42,0x8C75,0x8C99, - 0x8C98,0x8C97,0x8CFE,0x8D04,0x8D02,0x8D00,0x8E5C,0x8E62, - 0x8E60,0x8E57,0x8E56,0x8E5E,0x8E65,0x8E67, - /* Range 0xF140 - 0xF17E, array index: 0x3245 */ - 0x8E5B,0x8E5A,0x8E61,0x8E5D,0x8E69,0x8E54,0x8F46,0x8F47, - 0x8F48,0x8F4B,0x9128,0x913A,0x913B,0x913E,0x91A8,0x91A5, - 0x91A7,0x91AF,0x91AA,0x93B5,0x938C,0x9392,0x93B7,0x939B, - 0x939D,0x9389,0x93A7,0x938E,0x93AA,0x939E,0x93A6,0x9395, - 0x9388,0x9399,0x939F,0x938D,0x93B1,0x9391,0x93B2,0x93A4, - 0x93A8,0x93B4,0x93A3,0x93A5,0x95D2,0x95D3,0x95D1,0x96B3, - 0x96D7,0x96DA,0x5DC2,0x96DF,0x96D8,0x96DD,0x9723,0x9722, - 0x9725,0x97AC,0x97AE,0x97A8,0x97AB,0x97A4,0x97AA, - /* Range 0xF1A1 - 0xF1FE, array index: 0x3284 */ - 0x97A2,0x97A5,0x97D7,0x97D9,0x97D6,0x97D8,0x97FA,0x9850, - 0x9851,0x9852,0x98B8,0x9941,0x993C,0x993A,0x9A0F,0x9A0B, - 0x9A09,0x9A0D,0x9A04,0x9A11,0x9A0A,0x9A05,0x9A07,0x9A06, - 0x9AC0,0x9ADC,0x9B08,0x9B04,0x9B05,0x9B29,0x9B35,0x9B4A, - 0x9B4C,0x9B4B,0x9BC7,0x9BC6,0x9BC3,0x9BBF,0x9BC1,0x9BB5, - 0x9BB8,0x9BD3,0x9BB6,0x9BC4,0x9BB9,0x9BBD,0x9D5C,0x9D53, - 0x9D4F,0x9D4A,0x9D5B,0x9D4B,0x9D59,0x9D56,0x9D4C,0x9D57, - 0x9D52,0x9D54,0x9D5F,0x9D58,0x9D5A,0x9E8E,0x9E8C,0x9EDF, - 0x9F01,0x9F00,0x9F16,0x9F25,0x9F2B,0x9F2A,0x9F29,0x9F28, - 0x9F4C,0x9F55,0x5134,0x5135,0x5296,0x52F7,0x53B4,0x56AB, - 0x56AD,0x56A6,0x56A7,0x56AA,0x56AC,0x58DA,0x58DD,0x58DB, - 0x5912,0x5B3D,0x5B3E,0x5B3F,0x5DC3,0x5E70, - /* Range 0xF240 - 0xF27E, array index: 0x32E2 */ - 0x5FBF,0x61FB,0x6507,0x6510,0x650D,0x6509,0x650C,0x650E, - 0x6584,0x65DE,0x65DD,0x66DE,0x6AE7,0x6AE0,0x6ACC,0x6AD1, - 0x6AD9,0x6ACB,0x6ADF,0x6ADC,0x6AD0,0x6AEB,0x6ACF,0x6ACD, - 0x6ADE,0x6B60,0x6BB0,0x6C0C,0x7019,0x7027,0x7020,0x7016, - 0x702B,0x7021,0x7022,0x7023,0x7029,0x7017,0x7024,0x701C, - 0x702A,0x720C,0x720A,0x7207,0x7202,0x7205,0x72A5,0x72A6, - 0x72A4,0x72A3,0x72A1,0x74CB,0x74C5,0x74B7,0x74C3,0x7516, - 0x7660,0x77C9,0x77CA,0x77C4,0x77F1,0x791D,0x791B, - /* Range 0xF2A1 - 0xF2FE, array index: 0x3321 */ - 0x7921,0x791C,0x7917,0x791E,0x79B0,0x7A67,0x7A68,0x7C33, - 0x7C3C,0x7C39,0x7C2C,0x7C3B,0x7CEC,0x7CEA,0x7E76,0x7E75, - 0x7E78,0x7E70,0x7E77,0x7E6F,0x7E7A,0x7E72,0x7E74,0x7E68, - 0x7F4B,0x7F4A,0x7F83,0x7F86,0x7FB7,0x7FFD,0x7FFE,0x8078, - 0x81D7,0x81D5,0x8264,0x8261,0x8263,0x85EB,0x85F1,0x85ED, - 0x85D9,0x85E1,0x85E8,0x85DA,0x85D7,0x85EC,0x85F2,0x85F8, - 0x85D8,0x85DF,0x85E3,0x85DC,0x85D1,0x85F0,0x85E6,0x85EF, - 0x85DE,0x85E2,0x8800,0x87FA,0x8803,0x87F6,0x87F7,0x8809, - 0x880C,0x880B,0x8806,0x87FC,0x8808,0x87FF,0x880A,0x8802, - 0x8962,0x895A,0x895B,0x8957,0x8961,0x895C,0x8958,0x895D, - 0x8959,0x8988,0x89B7,0x89B6,0x89F6,0x8B50,0x8B48,0x8B4A, - 0x8B40,0x8B53,0x8B56,0x8B54,0x8B4B,0x8B55, - /* Range 0xF340 - 0xF37E, array index: 0x337F */ - 0x8B51,0x8B42,0x8B52,0x8B57,0x8C43,0x8C77,0x8C76,0x8C9A, - 0x8D06,0x8D07,0x8D09,0x8DAC,0x8DAA,0x8DAD,0x8DAB,0x8E6D, - 0x8E78,0x8E73,0x8E6A,0x8E6F,0x8E7B,0x8EC2,0x8F52,0x8F51, - 0x8F4F,0x8F50,0x8F53,0x8FB4,0x9140,0x913F,0x91B0,0x91AD, - 0x93DE,0x93C7,0x93CF,0x93C2,0x93DA,0x93D0,0x93F9,0x93EC, - 0x93CC,0x93D9,0x93A9,0x93E6,0x93CA,0x93D4,0x93EE,0x93E3, - 0x93D5,0x93C4,0x93CE,0x93C0,0x93D2,0x93E7,0x957D,0x95DA, - 0x95DB,0x96E1,0x9729,0x972B,0x972C,0x9728,0x9726, - /* Range 0xF3A1 - 0xF3FE, array index: 0x33BE */ - 0x97B3,0x97B7,0x97B6,0x97DD,0x97DE,0x97DF,0x985C,0x9859, - 0x985D,0x9857,0x98BF,0x98BD,0x98BB,0x98BE,0x9948,0x9947, - 0x9943,0x99A6,0x99A7,0x9A1A,0x9A15,0x9A25,0x9A1D,0x9A24, - 0x9A1B,0x9A22,0x9A20,0x9A27,0x9A23,0x9A1E,0x9A1C,0x9A14, - 0x9AC2,0x9B0B,0x9B0A,0x9B0E,0x9B0C,0x9B37,0x9BEA,0x9BEB, - 0x9BE0,0x9BDE,0x9BE4,0x9BE6,0x9BE2,0x9BF0,0x9BD4,0x9BD7, - 0x9BEC,0x9BDC,0x9BD9,0x9BE5,0x9BD5,0x9BE1,0x9BDA,0x9D77, - 0x9D81,0x9D8A,0x9D84,0x9D88,0x9D71,0x9D80,0x9D78,0x9D86, - 0x9D8B,0x9D8C,0x9D7D,0x9D6B,0x9D74,0x9D75,0x9D70,0x9D69, - 0x9D85,0x9D73,0x9D7B,0x9D82,0x9D6F,0x9D79,0x9D7F,0x9D87, - 0x9D68,0x9E94,0x9E91,0x9EC0,0x9EFC,0x9F2D,0x9F40,0x9F41, - 0x9F4D,0x9F56,0x9F57,0x9F58,0x5337,0x56B2, - /* Range 0xF440 - 0xF47E, array index: 0x341C */ - 0x56B5,0x56B3,0x58E3,0x5B45,0x5DC6,0x5DC7,0x5EEE,0x5EEF, - 0x5FC0,0x5FC1,0x61F9,0x6517,0x6516,0x6515,0x6513,0x65DF, - 0x66E8,0x66E3,0x66E4,0x6AF3,0x6AF0,0x6AEA,0x6AE8,0x6AF9, - 0x6AF1,0x6AEE,0x6AEF,0x703C,0x7035,0x702F,0x7037,0x7034, - 0x7031,0x7042,0x7038,0x703F,0x703A,0x7039,0x7040,0x703B, - 0x7033,0x7041,0x7213,0x7214,0x72A8,0x737D,0x737C,0x74BA, - 0x76AB,0x76AA,0x76BE,0x76ED,0x77CC,0x77CE,0x77CF,0x77CD, - 0x77F2,0x7925,0x7923,0x7927,0x7928,0x7924,0x7929, - /* Range 0xF4A1 - 0xF4FE, array index: 0x345B */ - 0x79B2,0x7A6E,0x7A6C,0x7A6D,0x7AF7,0x7C49,0x7C48,0x7C4A, - 0x7C47,0x7C45,0x7CEE,0x7E7B,0x7E7E,0x7E81,0x7E80,0x7FBA, - 0x7FFF,0x8079,0x81DB,0x81D9,0x820B,0x8268,0x8269,0x8622, - 0x85FF,0x8601,0x85FE,0x861B,0x8600,0x85F6,0x8604,0x8609, - 0x8605,0x860C,0x85FD,0x8819,0x8810,0x8811,0x8817,0x8813, - 0x8816,0x8963,0x8966,0x89B9,0x89F7,0x8B60,0x8B6A,0x8B5D, - 0x8B68,0x8B63,0x8B65,0x8B67,0x8B6D,0x8DAE,0x8E86,0x8E88, - 0x8E84,0x8F59,0x8F56,0x8F57,0x8F55,0x8F58,0x8F5A,0x908D, - 0x9143,0x9141,0x91B7,0x91B5,0x91B2,0x91B3,0x940B,0x9413, - 0x93FB,0x9420,0x940F,0x9414,0x93FE,0x9415,0x9410,0x9428, - 0x9419,0x940D,0x93F5,0x9400,0x93F7,0x9407,0x940E,0x9416, - 0x9412,0x93FA,0x9409,0x93F8,0x940A,0x93FF, - /* Range 0xF540 - 0xF57E, array index: 0x34B9 */ - 0x93FC,0x940C,0x93F6,0x9411,0x9406,0x95DE,0x95E0,0x95DF, - 0x972E,0x972F,0x97B9,0x97BB,0x97FD,0x97FE,0x9860,0x9862, - 0x9863,0x985F,0x98C1,0x98C2,0x9950,0x994E,0x9959,0x994C, - 0x994B,0x9953,0x9A32,0x9A34,0x9A31,0x9A2C,0x9A2A,0x9A36, - 0x9A29,0x9A2E,0x9A38,0x9A2D,0x9AC7,0x9ACA,0x9AC6,0x9B10, - 0x9B12,0x9B11,0x9C0B,0x9C08,0x9BF7,0x9C05,0x9C12,0x9BF8, - 0x9C40,0x9C07,0x9C0E,0x9C06,0x9C17,0x9C14,0x9C09,0x9D9F, - 0x9D99,0x9DA4,0x9D9D,0x9D92,0x9D98,0x9D90,0x9D9B, - /* Range 0xF5A1 - 0xF5FE, array index: 0x34F8 */ - 0x9DA0,0x9D94,0x9D9C,0x9DAA,0x9D97,0x9DA1,0x9D9A,0x9DA2, - 0x9DA8,0x9D9E,0x9DA3,0x9DBF,0x9DA9,0x9D96,0x9DA6,0x9DA7, - 0x9E99,0x9E9B,0x9E9A,0x9EE5,0x9EE4,0x9EE7,0x9EE6,0x9F30, - 0x9F2E,0x9F5B,0x9F60,0x9F5E,0x9F5D,0x9F59,0x9F91,0x513A, - 0x5139,0x5298,0x5297,0x56C3,0x56BD,0x56BE,0x5B48,0x5B47, - 0x5DCB,0x5DCF,0x5EF1,0x61FD,0x651B,0x6B02,0x6AFC,0x6B03, - 0x6AF8,0x6B00,0x7043,0x7044,0x704A,0x7048,0x7049,0x7045, - 0x7046,0x721D,0x721A,0x7219,0x737E,0x7517,0x766A,0x77D0, - 0x792D,0x7931,0x792F,0x7C54,0x7C53,0x7CF2,0x7E8A,0x7E87, - 0x7E88,0x7E8B,0x7E86,0x7E8D,0x7F4D,0x7FBB,0x8030,0x81DD, - 0x8618,0x862A,0x8626,0x861F,0x8623,0x861C,0x8619,0x8627, - 0x862E,0x8621,0x8620,0x8629,0x861E,0x8625, - /* Range 0xF640 - 0xF67E, array index: 0x3556 */ - 0x8829,0x881D,0x881B,0x8820,0x8824,0x881C,0x882B,0x884A, - 0x896D,0x8969,0x896E,0x896B,0x89FA,0x8B79,0x8B78,0x8B45, - 0x8B7A,0x8B7B,0x8D10,0x8D14,0x8DAF,0x8E8E,0x8E8C,0x8F5E, - 0x8F5B,0x8F5D,0x9146,0x9144,0x9145,0x91B9,0x943F,0x943B, - 0x9436,0x9429,0x943D,0x943C,0x9430,0x9439,0x942A,0x9437, - 0x942C,0x9440,0x9431,0x95E5,0x95E4,0x95E3,0x9735,0x973A, - 0x97BF,0x97E1,0x9864,0x98C9,0x98C6,0x98C0,0x9958,0x9956, - 0x9A39,0x9A3D,0x9A46,0x9A44,0x9A42,0x9A41,0x9A3A, - /* Range 0xF6A1 - 0xF6FE, array index: 0x3595 */ - 0x9A3F,0x9ACD,0x9B15,0x9B17,0x9B18,0x9B16,0x9B3A,0x9B52, - 0x9C2B,0x9C1D,0x9C1C,0x9C2C,0x9C23,0x9C28,0x9C29,0x9C24, - 0x9C21,0x9DB7,0x9DB6,0x9DBC,0x9DC1,0x9DC7,0x9DCA,0x9DCF, - 0x9DBE,0x9DC5,0x9DC3,0x9DBB,0x9DB5,0x9DCE,0x9DB9,0x9DBA, - 0x9DAC,0x9DC8,0x9DB1,0x9DAD,0x9DCC,0x9DB3,0x9DCD,0x9DB2, - 0x9E7A,0x9E9C,0x9EEB,0x9EEE,0x9EED,0x9F1B,0x9F18,0x9F1A, - 0x9F31,0x9F4E,0x9F65,0x9F64,0x9F92,0x4EB9,0x56C6,0x56C5, - 0x56CB,0x5971,0x5B4B,0x5B4C,0x5DD5,0x5DD1,0x5EF2,0x6521, - 0x6520,0x6526,0x6522,0x6B0B,0x6B08,0x6B09,0x6C0D,0x7055, - 0x7056,0x7057,0x7052,0x721E,0x721F,0x72A9,0x737F,0x74D8, - 0x74D5,0x74D9,0x74D7,0x766D,0x76AD,0x7935,0x79B4,0x7A70, - 0x7A71,0x7C57,0x7C5C,0x7C59,0x7C5B,0x7C5A, - /* Range 0xF740 - 0xF77E, array index: 0x35F3 */ - 0x7CF4,0x7CF1,0x7E91,0x7F4F,0x7F87,0x81DE,0x826B,0x8634, - 0x8635,0x8633,0x862C,0x8632,0x8636,0x882C,0x8828,0x8826, - 0x882A,0x8825,0x8971,0x89BF,0x89BE,0x89FB,0x8B7E,0x8B84, - 0x8B82,0x8B86,0x8B85,0x8B7F,0x8D15,0x8E95,0x8E94,0x8E9A, - 0x8E92,0x8E90,0x8E96,0x8E97,0x8F60,0x8F62,0x9147,0x944C, - 0x9450,0x944A,0x944B,0x944F,0x9447,0x9445,0x9448,0x9449, - 0x9446,0x973F,0x97E3,0x986A,0x9869,0x98CB,0x9954,0x995B, - 0x9A4E,0x9A53,0x9A54,0x9A4C,0x9A4F,0x9A48,0x9A4A, - /* Range 0xF7A1 - 0xF7FE, array index: 0x3632 */ - 0x9A49,0x9A52,0x9A50,0x9AD0,0x9B19,0x9B2B,0x9B3B,0x9B56, - 0x9B55,0x9C46,0x9C48,0x9C3F,0x9C44,0x9C39,0x9C33,0x9C41, - 0x9C3C,0x9C37,0x9C34,0x9C32,0x9C3D,0x9C36,0x9DDB,0x9DD2, - 0x9DDE,0x9DDA,0x9DCB,0x9DD0,0x9DDC,0x9DD1,0x9DDF,0x9DE9, - 0x9DD9,0x9DD8,0x9DD6,0x9DF5,0x9DD5,0x9DDD,0x9EB6,0x9EF0, - 0x9F35,0x9F33,0x9F32,0x9F42,0x9F6B,0x9F95,0x9FA2,0x513D, - 0x5299,0x58E8,0x58E7,0x5972,0x5B4D,0x5DD8,0x882F,0x5F4F, - 0x6201,0x6203,0x6204,0x6529,0x6525,0x6596,0x66EB,0x6B11, - 0x6B12,0x6B0F,0x6BCA,0x705B,0x705A,0x7222,0x7382,0x7381, - 0x7383,0x7670,0x77D4,0x7C67,0x7C66,0x7E95,0x826C,0x863A, - 0x8640,0x8639,0x863C,0x8631,0x863B,0x863E,0x8830,0x8832, - 0x882E,0x8833,0x8976,0x8974,0x8973,0x89FE, - /* Range 0xF840 - 0xF87E, array index: 0x3690 */ - 0x8B8C,0x8B8E,0x8B8B,0x8B88,0x8C45,0x8D19,0x8E98,0x8F64, - 0x8F63,0x91BC,0x9462,0x9455,0x945D,0x9457,0x945E,0x97C4, - 0x97C5,0x9800,0x9A56,0x9A59,0x9B1E,0x9B1F,0x9B20,0x9C52, - 0x9C58,0x9C50,0x9C4A,0x9C4D,0x9C4B,0x9C55,0x9C59,0x9C4C, - 0x9C4E,0x9DFB,0x9DF7,0x9DEF,0x9DE3,0x9DEB,0x9DF8,0x9DE4, - 0x9DF6,0x9DE1,0x9DEE,0x9DE6,0x9DF2,0x9DF0,0x9DE2,0x9DEC, - 0x9DF4,0x9DF3,0x9DE8,0x9DED,0x9EC2,0x9ED0,0x9EF2,0x9EF3, - 0x9F06,0x9F1C,0x9F38,0x9F37,0x9F36,0x9F43,0x9F4F, - /* Range 0xF8A1 - 0xF8FE, array index: 0x36CF */ - 0x9F71,0x9F70,0x9F6E,0x9F6F,0x56D3,0x56CD,0x5B4E,0x5C6D, - 0x652D,0x66ED,0x66EE,0x6B13,0x705F,0x7061,0x705D,0x7060, - 0x7223,0x74DB,0x74E5,0x77D5,0x7938,0x79B7,0x79B6,0x7C6A, - 0x7E97,0x7F89,0x826D,0x8643,0x8838,0x8837,0x8835,0x884B, - 0x8B94,0x8B95,0x8E9E,0x8E9F,0x8EA0,0x8E9D,0x91BE,0x91BD, - 0x91C2,0x946B,0x9468,0x9469,0x96E5,0x9746,0x9743,0x9747, - 0x97C7,0x97E5,0x9A5E,0x9AD5,0x9B59,0x9C63,0x9C67,0x9C66, - 0x9C62,0x9C5E,0x9C60,0x9E02,0x9DFE,0x9E07,0x9E03,0x9E06, - 0x9E05,0x9E00,0x9E01,0x9E09,0x9DFF,0x9DFD,0x9E04,0x9EA0, - 0x9F1E,0x9F46,0x9F74,0x9F75,0x9F76,0x56D4,0x652E,0x65B8, - 0x6B18,0x6B19,0x6B17,0x6B1A,0x7062,0x7226,0x72AA,0x77D8, - 0x77D9,0x7939,0x7C69,0x7C6B,0x7CF6,0x7E9A, - /* Range 0xF940 - 0xF97E, array index: 0x372D */ - 0x7E98,0x7E9B,0x7E99,0x81E0,0x81E1,0x8646,0x8647,0x8648, - 0x8979,0x897A,0x897C,0x897B,0x89FF,0x8B98,0x8B99,0x8EA5, - 0x8EA4,0x8EA3,0x946E,0x946D,0x946F,0x9471,0x9473,0x9749, - 0x9872,0x995F,0x9C68,0x9C6E,0x9C6D,0x9E0B,0x9E0D,0x9E10, - 0x9E0F,0x9E12,0x9E11,0x9EA1,0x9EF5,0x9F09,0x9F47,0x9F78, - 0x9F7B,0x9F7A,0x9F79,0x571E,0x7066,0x7C6F,0x883C,0x8DB2, - 0x8EA6,0x91C3,0x9474,0x9478,0x9476,0x9475,0x9A60,0x9C74, - 0x9C73,0x9C71,0x9C75,0x9E14,0x9E13,0x9EF6,0x9F0A, - /* Range 0xF9A1 - 0xF9D5, array index: 0x376C */ - 0x9FA4,0x7068,0x7065,0x7CF7,0x866A,0x883E,0x883D,0x883F, - 0x8B9E,0x8C9C,0x8EA9,0x8EC9,0x974B,0x9873,0x9874,0x98CC, - 0x9961,0x99AB,0x9A64,0x9A66,0x9A67,0x9B24,0x9E15,0x9E17, - 0x9F48,0x6207,0x6B1E,0x7227,0x864C,0x8EA8,0x9482,0x9480, - 0x9481,0x9A69,0x9A68,0x9B2E,0x9E19,0x7229,0x864B,0x8B9F, - 0x9483,0x9C79,0x9EB7,0x7675,0x9A6B,0x9C7A,0x9E1D,0x7069, - 0x706A,0x9EA4,0x9F7E,0x9F49,0x9F98, - /* Unranged codes (176 codes) */ -}; - -#endif /* ICONV_TO_UCS_CCS_BIG5 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> big5 speed-optimized table (51200 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_BIG5) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_speed_big5[] = -{ - /* Heading Block */ - 0x0100,INVBLK,0x0200,0x0300,0x0400,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - 0x0500,0x0600,0x0700,INVBLK,0x0800,0x0900,0x0A00,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - 0x0B00,0x0C00,0x0D00,0x0E00,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,0x0F00,0x1000, - 0x1100,0x1200,0x1300,0x1400,0x1500,0x1600,0x1700,0x1800, - 0x1900,0x1A00,0x1B00,0x1C00,0x1D00,0x1E00,0x1F00,0x2000, - 0x2100,0x2200,0x2300,0x2400,0x2500,0x2600,0x2700,0x2800, - 0x2900,0x2A00,0x2B00,0x2C00,0x2D00,0x2E00,0x2F00,0x3000, - 0x3100,0x3200,0x3300,0x3400,0x3500,0x3600,0x3700,0x3800, - 0x3900,0x3A00,0x3B00,0x3C00,0x3D00,0x3E00,0x3F00,0x4000, - 0x4100,0x4200,0x4300,0x4400,0x4500,0x4600,0x4700,0x4800, - 0x4900,0x4A00,0x4B00,0x4C00,0x4D00,0x4E00,0x4F00,0x5000, - 0x5100,0x5200,0x5300,0x5400,0x5500,0x5600,0x5700,0x5800, - 0x5900,0x5A00,0x5B00,0x5C00,0x5D00,0x5E00,0x5F00,0x6000, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,0x6100,INVBLK,INVBLK,INVBLK,0x6200,0x6300, - /* Block 1, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xA246,0xA247,INVALC,0xA244,INVALC,0xA1B1, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xA258,0xA1D3,INVALC,INVALC,INVALC,INVALC,INVALC,0xA150, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xA1D1, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xA1D2, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 3, Array index 0x0200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xA3BE, - INVALC,0xA3BC,0xA3BD,0xA3BF,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xA3BB,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 4, Array index 0x0300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xA344,0xA345,0xA346,0xA347,0xA348,0xA349,0xA34A, - 0xA34B,0xA34C,0xA34D,0xA34E,0xA34F,0xA350,0xA351,0xA352, - 0xA353,0xA354,INVALC,0xA355,0xA356,0xA357,0xA358,0xA359, - 0xA35A,0xA35B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xA35C,0xA35D,0xA35E,0xA35F,0xA360,0xA361,0xA362, - 0xA363,0xA364,0xA365,0xA366,0xA367,0xA368,0xA369,0xA36A, - 0xA36B,0xA36C,INVALC,0xA36D,0xA36E,0xA36F,0xA370,0xA371, - 0xA372,0xA373,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 5, Array index 0x0400 */ - INVALC,0xC7B3,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xC7B1,0xC7B2,0xC7B4,0xC7B5, - 0xC7B6,0xC7B7,0xC7B8,0xC7B9,0xC7BA,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xC7BB,0xC7BC,0xC7BD,0xC7BE,0xC7BF, - 0xC7C0,0xC7C1,0xC7C2,0xC7C3,0xC7C4,0xC7C5,0xC7C6,0xC7C7, - 0xC7C8,0xC7C9,0xC7CA,0xC7CB,0xC7CC,0xC7CD,0xC7CF,0xC7D0, - 0xC7D1,0xC7D2,0xC7D3,0xC7D4,0xC7D5,0xC7D6,0xC7D7,0xC7D8, - 0xC7D9,0xC7DA,0xC7DB,0xC7DC,0xC7DD,0xC7DE,0xC7DF,0xC7E0, - 0xC7E1,0xC7E2,0xC7E3,0xC7E4,0xC7E5,0xC7E6,0xC7E7,0xC7E8, - INVALC,0xC7CE,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 33, Array index 0x0500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xA156,0xA158,INVALC,INVALC,INVALC, - 0xA1A5,0xA1A6,INVALC,INVALC,0xA1A7,0xA1A8,INVALC,INVALC, - INVALC,INVALC,0xA145,INVALC,INVALC,0xA14C,0xA14B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xA1AC,INVALC,INVALC,0xA1AB,INVALC,INVALC, - INVALC,INVALC,INVALC,0xA1B0,INVALC,INVALC,0xA1C2,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 34, Array index 0x0600 */ - INVALC,INVALC,INVALC,0xA24A,INVALC,0xA1C1,INVALC,INVALC, - INVALC,0xA24B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xA2B9,0xA2BA,0xA2BB,0xA2BC,0xA2BD,0xA2BE,0xA2BF,0xA2C0, - 0xA2C1,0xA2C2,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xA1F6,0xA1F4,0xA1F7,0xA1F5,INVALC,INVALC,0xA1F8,0xA1F9, - 0xA1FB,0xA1FA,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 35, Array index 0x0700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xA1D4,INVALC,INVALC,INVALC,0xA1DB,0xA1E8, - 0xA1E7,INVALC,INVALC,0xA1FD,INVALC,0xA1FC,INVALC,INVALC, - INVALC,0xA1E4,0xA1E5,0xA1EC,INVALC,INVALC,0xA1ED,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA1EF,0xA1EE,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA1E3,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xA1DC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xA1DA,0xA1DD,INVALC,INVALC,INVALC,INVALC,0xA1D8,0xA1D9, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xA1E6,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xA1E9, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 37, Array index 0x0800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xC7E9,0xC7EA,0xC7EB,0xC7EC,0xC7ED,0xC7EE,0xC7EF,0xC7F0, - 0xC7F1,0xC7F2,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xC7F3,0xC7F4,0xC7F5,0xC7F6, - 0xC7F7,0xC7F8,0xC7F9,0xC7FA,0xC7FB,0xC7FC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 38, Array index 0x0900 */ - 0xA277,INVALC,0xA278,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA27A,INVALC,INVALC,INVALC, - 0xA27B,INVALC,INVALC,INVALC,0xA27C,INVALC,INVALC,INVALC, - 0xA27D,INVALC,INVALC,INVALC,0xA275,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA274,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA273,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA272,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA271,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xA2A4,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xA2A5,INVALC, - INVALC,0xA2A7,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xA2A6,INVALC,INVALC,0xA27E,0xA2A1,0xA2A3, - 0xA2A2,0xA2AC,0xA2AD,0xA2AE,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xA262,0xA263,0xA264,0xA265,0xA266,0xA267,0xA268, - 0xA269,0xA270,0xA26F,0xA26E,0xA26D,0xA26C,0xA26B,0xA26A, - INVALC,INVALC,INVALC,INVALC,0xA276,0xA279,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xA1BD,0xA1BC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xA1B6,0xA1B5,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA1BF,0xA1BE,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xA1BB,0xA1BA, - INVALC,INVALC,INVALC,0xA1B3,INVALC,INVALC,0xA1B7,0xA1B4, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xA2A8,0xA2A9,0xA2AB,0xA2AA,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 39, Array index 0x0A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0xA1B9,0xA1B8,INVALC, - INVALC,0xA1F3,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xA1F0,0xA1F2,0xA1F1,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 49, Array index 0x0B00 */ - 0xA140,0xA142,0xA143,0xA1B2,INVALC,0xC6A4,INVALC,INVALC, - 0xA171,0xA172,0xA16D,0xA16E,0xA175,0xA176,0xA179,0xA17A, - 0xA169,0xA16A,0xA245,INVALC,0xA165,0xA166,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xA1A9,0xA1AA,INVALC, - INVALC,0xA2C3,0xA2C4,0xA2C5,0xA2C6,0xA2C7,0xA2C8,0xA2C9, - 0xA2CA,0xA2CB,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xC6A5,0xC6A6,0xC6A7,0xC6A8,0xC6A9,0xC6AA,0xC6AB, - 0xC6AC,0xC6AD,0xC6AE,0xC6AF,0xC6B0,0xC6B1,0xC6B2,0xC6B3, - 0xC6B4,0xC6B5,0xC6B6,0xC6B7,0xC6B8,0xC6B9,0xC6BA,0xC6BB, - 0xC6BC,0xC6BD,0xC6BE,0xC6BF,0xC6C0,0xC6C1,0xC6C2,0xC6C3, - 0xC6C4,0xC6C5,0xC6C6,0xC6C7,0xC6C8,0xC6C9,0xC6CA,0xC6CB, - 0xC6CC,0xC6CD,0xC6CE,0xC6CF,0xC6D0,0xC6D1,0xC6D2,0xC6D3, - 0xC6D4,0xC6D5,0xC6D6,0xC6D7,0xC6D8,0xC6D9,0xC6DA,0xC6DB, - 0xC6DC,0xC6DD,0xC6DE,0xC6DF,0xC6E0,0xC6E1,0xC6E2,0xC6E3, - 0xC6E4,0xC6E5,0xC6E6,0xC6E7,0xC6E8,0xC6E9,0xC6EA,0xC6EB, - 0xC6EC,0xC6ED,0xC6EE,0xC6EF,0xC6F0,0xC6F1,0xC6F2,0xC6F3, - 0xC6F4,0xC6F5,0xC6F6,0xC6F7,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xC6A2,0xC6A3,INVALC, - INVALC,0xC6F8,0xC6F9,0xC6FA,0xC6FB,0xC6FC,0xC6FD,0xC6FE, - 0xC740,0xC741,0xC742,0xC743,0xC744,0xC745,0xC746,0xC747, - 0xC748,0xC749,0xC74A,0xC74B,0xC74C,0xC74D,0xC74E,0xC74F, - 0xC750,0xC751,0xC752,0xC753,0xC754,0xC755,0xC756,0xC757, - 0xC758,0xC759,0xC75A,0xC75B,0xC75C,0xC75D,0xC75E,0xC75F, - 0xC760,0xC761,0xC762,0xC763,0xC764,0xC765,0xC766,0xC767, - 0xC768,0xC769,0xC76A,0xC76B,0xC76C,0xC76D,0xC76E,0xC76F, - 0xC770,0xC771,0xC772,0xC773,0xC774,0xC775,0xC776,0xC777, - 0xC778,0xC779,0xC77A,0xC77B,0xC77C,0xC77D,0xC77E,0xC7A1, - 0xC7A2,0xC7A3,0xC7A4,0xC7A5,0xC7A6,0xC7A7,0xC7A8,0xC7A9, - 0xC7AA,0xC7AB,0xC7AC,0xC7AD,0xC7AE,0xC7AF,0xC7B0,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xC6A1,INVALC, - /* Block 50, Array index 0x0C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0xA374,0xA375,0xA376, - 0xA377,0xA378,0xA379,0xA37A,0xA37B,0xA37C,0xA37D,0xA37E, - 0xA3A1,0xA3A2,0xA3A3,0xA3A4,0xA3A5,0xA3A6,0xA3A7,0xA3A8, - 0xA3A9,0xA3AA,0xA3AB,0xA3AC,0xA3AD,0xA3AE,0xA3AF,0xA3B0, - 0xA3B1,0xA3B2,0xA3B3,0xA3B4,0xA3B5,0xA3B6,0xA3B7,0xA3B8, - 0xA3B9,0xA3BA,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 51, Array index 0x0D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xA1C0,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 52, Array index 0x0E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xA255,0xA256, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA250,0xA251,0xA252,INVALC, - INVALC,0xA254,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA257,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xA253,INVALC, - INVALC,0xA1EB,0xA1EA,INVALC,INVALC,0xA24F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 79, Array index 0x0F00 */ - 0xA440,0xA442,INVALC,0xA443,INVALC,INVALC,INVALC,0xC945, - 0xA456,0xA454,0xA457,0xA455,0xC946,0xA4A3,0xC94F,0xC94D, - 0xA4A2,0xA4A1,INVALC,INVALC,0xA542,0xA541,0xA540,INVALC, - 0xA543,0xA4FE,INVALC,INVALC,INVALC,INVALC,0xA5E0,0xA5E1, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xA8C3,INVALC, - INVALC,INVALC,INVALC,0xA458,INVALC,0xA4A4,0xC950,INVALC, - 0xA4A5,0xC963,0xA6EA,0xCBB1,INVALC,INVALC,INVALC,INVALC, - 0xA459,0xA4A6,INVALC,0xA544,0xC964,INVALC,INVALC,INVALC, - INVALC,INVALC,0xC940,0xA444,INVALC,0xA45B,INVALC,0xC947, - 0xA45C,INVALC,INVALC,0xA4A7,INVALC,0xA545,0xA547,0xA546, - INVALC,INVALC,0xA5E2,0xA5E3,INVALC,INVALC,0xA8C4,INVALC, - 0xADBC,0xA441,INVALC,INVALC,0xC941,0xA445,0xA45E,0xA45D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xA5E4,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xA8C5,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xB0AE,0xD44B, - INVALC,INVALC,0xB6C3,0xDCB1,0xDCB2,INVALC,0xA446,INVALC, - 0xA4A9,INVALC,INVALC,0xA8C6,0xA447,0xC948,0xA45F,INVALC, - INVALC,0xA4AA,0xA4AC,0xC951,0xA4AD,0xA4AB,INVALC,INVALC, - INVALC,0xA5E5,INVALC,0xA8C7,INVALC,INVALC,0xA8C8,0xAB45, - INVALC,0xA460,0xA4AE,INVALC,0xA5E6,0xA5E8,0xA5E7,INVALC, - 0xA6EB,INVALC,INVALC,0xA8C9,0xA8CA,0xAB46,0xAB47,INVALC, - INVALC,INVALC,INVALC,0xADBD,INVALC,INVALC,0xDCB3,INVALC, - INVALC,0xF6D6,0xA448,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xA4B0,0xA4AF,0xC952,0xA4B1,0xA4B7,INVALC,0xA4B2,0xA4B3, - 0xC954,0xC953,0xA4B5,0xA4B6,INVALC,0xA4B4,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA54A,0xA54B,0xA54C,0xA54D, - 0xA549,0xA550,0xC96A,INVALC,0xC966,0xC969,0xA551,0xA561, - INVALC,0xC968,INVALC,0xA54E,0xA54F,0xA548,INVALC,INVALC, - 0xC965,0xC967,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xA5F5,0xC9B0,0xA5F2,0xA5F6,0xC9BA,0xC9AE,0xA5F3,0xC9B2, - INVALC,INVALC,INVALC,0xA5F4,INVALC,0xA5F7,INVALC,0xA5E9, - /* Block 80, Array index 0x1000 */ - 0xC9B1,0xA5F8,0xC9B5,INVALC,0xC9B9,0xC9B6,INVALC,INVALC, - 0xC9B3,0xA5EA,0xA5EC,0xA5F9,INVALC,0xA5EE,0xC9AB,0xA5F1, - 0xA5EF,0xA5F0,0xC9BB,0xC9B8,0xC9AF,0xA5ED,INVALC,INVALC, - 0xC9AC,0xA5EB,INVALC,INVALC,INVALC,0xC9B4,INVALC,INVALC, - INVALC,INVALC,0xC9B7,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xC9AD,0xCA66,INVALC,0xA742, - 0xA6F4,INVALC,INVALC,0xCA67,0xA6F1,INVALC,0xA744,INVALC, - 0xA6F9,INVALC,0xA6F8,0xCA5B,0xA6FC,0xA6F7,0xCA60,0xCA68, - INVALC,0xCA64,INVALC,0xA6FA,INVALC,INVALC,0xA6FD,0xA6EE, - 0xA747,0xCA5D,INVALC,INVALC,0xCBBD,0xA6EC,0xA743,0xA6ED, - 0xA6F5,0xA6F6,0xCA62,0xCA5E,0xA6FB,0xA6F3,0xCA5A,0xA6EF, - 0xCA65,0xA745,0xA748,0xA6F2,0xA740,0xA746,0xA6F0,0xCA63, - 0xA741,0xCA69,0xCA5C,0xA6FE,0xCA5F,INVALC,INVALC,0xCA61, - INVALC,0xA8D8,0xCBBF,0xCBCB,0xA8D0,INVALC,0xCBCC,0xA8CB, - 0xA8D5,INVALC,INVALC,0xA8CE,0xCBB9,0xA8D6,0xCBB8,0xCBBC, - 0xCBC3,0xCBC1,0xA8DE,0xA8D9,0xCBB3,0xCBB5,0xA8DB,0xA8CF, - 0xCBB6,0xCBC2,0xCBC9,0xA8D4,0xCBBB,0xCBB4,0xA8D3,0xCBB7, - 0xA8D7,0xCBBA,INVALC,0xA8D2,INVALC,0xA8CD,INVALC,0xA8DC, - 0xCBC4,0xA8DD,0xCBC8,INVALC,0xCBC6,0xCBCA,0xA8DA,0xCBBE, - 0xCBB2,INVALC,0xCBC0,0xA8D1,0xCBC5,0xA8CC,0xCBC7,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xAB56,0xAB4A, - INVALC,INVALC,0xCDE0,0xCDE8,INVALC,0xAB49,0xAB51,0xAB5D, - INVALC,0xCDEE,0xCDEC,0xCDE7,INVALC,INVALC,INVALC,0xAB4B, - 0xCDED,0xCDE3,0xAB59,0xAB50,0xAB58,0xCDDE,INVALC,0xCDEA, - INVALC,0xCDE1,0xAB54,0xCDE2,INVALC,0xCDDD,0xAB5B,0xAB4E, - 0xAB57,0xAB4D,INVALC,0xCDDF,0xCDE4,INVALC,0xCDEB,0xAB55, - 0xAB52,0xCDE6,0xAB5A,0xCDE9,0xCDE5,0xAB4F,0xAB5C,0xAB53, - 0xAB4C,0xAB48,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xCDEF,INVALC,0xADD7,0xADC1, - INVALC,0xADD1,INVALC,0xADD6,0xD0D0,0xD0CF,0xD0D4,0xD0D5, - 0xADC4,INVALC,0xADCD,INVALC,INVALC,INVALC,0xADDA,INVALC, - /* Block 81, Array index 0x1100 */ - 0xADCE,INVALC,INVALC,INVALC,INVALC,0xD0C9,0xADC7,0xD0CA, - INVALC,0xADDC,INVALC,0xADD3,0xADBE,0xADBF,0xD0DD,0xB0BF, - INVALC,0xADCC,0xADCB,0xD0CB,0xADCF,0xD45B,0xADC6,0xD0D6, - 0xADD5,0xADD4,0xADCA,0xD0CE,0xD0D7,INVALC,0xD0C8,0xADC9, - 0xD0D8,0xADD2,0xD0CC,0xADC0,INVALC,0xADC3,0xADC2,0xD0D9, - 0xADD0,0xADC5,0xADD9,0xADDB,0xD0D3,0xADD8,INVALC,0xD0DB, - 0xD0CD,0xD0DC,INVALC,0xD0D1,INVALC,0xD0DA,INVALC,0xD0D2, - INVALC,INVALC,INVALC,INVALC,0xADC8,INVALC,INVALC,INVALC, - 0xD463,0xD457,INVALC,0xB0B3,INVALC,0xD45C,0xD462,0xB0B2, - 0xD455,0xB0B6,0xD459,0xD452,0xB0B4,0xD456,0xB0B9,0xB0BE, - INVALC,0xD467,INVALC,0xD451,INVALC,0xB0BA,INVALC,0xD466, - INVALC,INVALC,0xB0B5,0xD458,0xB0B1,0xD453,0xD44F,0xD45D, - 0xD450,0xD44E,0xD45A,0xD460,0xD461,0xB0B7,INVALC,INVALC, - 0xD85B,0xD45E,0xD44D,0xD45F,INVALC,0xB0C1,0xD464,0xB0C0, - 0xD44C,INVALC,0xD454,0xD465,0xB0BC,0xB0BB,0xB0B8,0xB0BD, - INVALC,INVALC,0xB0AF,INVALC,INVALC,0xB0B0,INVALC,INVALC, - 0xB3C8,INVALC,0xD85E,0xD857,INVALC,0xB3C5,INVALC,0xD85F, - INVALC,INVALC,INVALC,0xD855,0xD858,0xB3C4,0xD859,INVALC, - INVALC,0xB3C7,0xD85D,INVALC,0xD853,0xD852,0xB3C9,INVALC, - 0xB3CA,0xB3C6,0xB3CB,0xD851,0xD85C,0xD85A,0xD854,INVALC, - INVALC,INVALC,0xB3C3,0xD856,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xB6CA,0xB6C4,0xDCB7,0xB6CD, - 0xDCBD,0xDCC0,0xB6C6,0xB6C7,0xDCBA,0xB6C5,0xDCC3,0xB6CB, - 0xDCC4,INVALC,0xDCBF,0xB6CC,INVALC,0xDCB4,0xB6C9,0xDCB5, - INVALC,0xDCBE,0xDCBC,INVALC,0xDCB8,0xB6C8,0xDCB6,0xB6CE, - 0xDCBB,0xDCC2,0xDCB9,0xDCC1,INVALC,INVALC,0xB9B6,0xB9B3, - INVALC,0xB9B4,INVALC,0xE0F9,0xE0F1,0xB9B2,0xB9AF,0xE0F2, - INVALC,INVALC,0xB9B1,0xE0F5,INVALC,0xE0F7,INVALC,INVALC, - 0xE0FE,INVALC,INVALC,0xE0FD,0xE0F8,0xB9AE,0xE0F0,0xB9AC, - 0xE0F3,0xB9B7,0xE0F6,INVALC,0xE0FA,0xB9B0,0xB9AD,0xE0FC, - 0xE0FB,0xB9B5,INVALC,0xE0F4,INVALC,0xBBF8,0xE4EC,INVALC, - 0xE4E9,0xBBF9,INVALC,0xBBF7,INVALC,0xE4F0,0xE4ED,0xE4E6, - /* Block 82, Array index 0x1200 */ - 0xBBF6,INVALC,0xBBFA,0xE4E7,0xBBF5,0xBBFD,0xE4EA,0xE4EB, - 0xBBFB,0xBBFC,0xE4F1,0xE4EE,0xE4EF,INVALC,INVALC,INVALC, - 0xBEAA,0xE8F8,0xBEA7,0xE8F5,0xBEA9,0xBEAB,INVALC,0xE8F6, - 0xBEA8,INVALC,0xE8F7,INVALC,0xE8F4,INVALC,INVALC,0xC076, - 0xECBD,0xC077,0xECBB,INVALC,0xECBC,0xECBA,0xECB9,INVALC, - INVALC,0xECBE,0xC075,INVALC,INVALC,0xEFB8,0xEFB9,INVALC, - 0xE4E8,0xEFB7,0xC078,0xC35F,0xF1EB,0xF1EC,INVALC,0xC4D7, - 0xC4D8,0xF5C1,0xF5C0,0xC56C,0xC56B,0xF7D0,INVALC,0xA449, - 0xA461,0xA4B9,INVALC,0xA4B8,0xA553,0xA552,0xA5FC,0xA5FB, - 0xA5FD,0xA5FA,INVALC,0xA74A,0xA749,0xA74B,INVALC,INVALC, - INVALC,INVALC,0xA8E0,INVALC,0xA8DF,0xA8E1,INVALC,0xAB5E, - INVALC,0xA259,0xD0DE,0xA25A,0xB0C2,0xA25C,0xA25B,0xD860, - INVALC,0xA25D,0xB9B8,0xA25E,INVALC,0xA44A,INVALC,0xA4BA, - 0xA5FE,0xA8E2,INVALC,0xA44B,0xA4BD,0xA4BB,0xA4BC,INVALC, - INVALC,0xA640,INVALC,INVALC,INVALC,0xA74C,0xA8E4,0xA8E3, - 0xA8E5,INVALC,INVALC,INVALC,0xADDD,INVALC,INVALC,INVALC, - 0xBEAC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xC94E, - INVALC,0xA554,0xA555,INVALC,INVALC,0xA641,INVALC,0xCA6A, - INVALC,0xAB60,0xAB5F,0xD0E0,0xD0DF,0xB0C3,INVALC,0xA4BE, - 0xC955,INVALC,INVALC,INVALC,INVALC,INVALC,0xCBCD,INVALC, - 0xAB61,INVALC,0xADE0,INVALC,0xADDE,0xADDF,INVALC,INVALC, - INVALC,INVALC,0xBEAD,INVALC,0xA556,INVALC,INVALC,INVALC, - 0xA642,0xC9BC,INVALC,INVALC,INVALC,INVALC,0xA74D,0xA74E, - INVALC,0xCA6B,INVALC,INVALC,0xCBCE,0xA8E6,0xCBCF,INVALC, - INVALC,INVALC,INVALC,INVALC,0xD0E2,0xD0E3,0xADE3,INVALC, - 0xD0E4,INVALC,0xD0E1,0xADE4,0xADE2,0xADE1,0xD0E5,INVALC, - 0xD468,INVALC,INVALC,INVALC,0xD861,INVALC,INVALC,0xDCC5, - 0xE140,INVALC,INVALC,INVALC,0xBBFE,0xBEAE,0xE8F9,INVALC, - 0xA44C,0xA45A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xB0C4,0xB3CD,INVALC,0xB9B9,INVALC,0xC942,0xA4BF,INVALC, - 0xA559,0xA557,0xA558,INVALC,INVALC,0xA8E7,INVALC,INVALC, - /* Block 83, Array index 0x1300 */ - 0xA44D,0xA44E,INVALC,0xA462,INVALC,INVALC,0xA4C0,0xA4C1, - 0xA4C2,0xC9BE,0xA55A,INVALC,0xC96B,INVALC,0xA646,INVALC, - 0xC9BF,0xA644,0xA645,0xC9BD,INVALC,INVALC,0xA647,0xA643, - INVALC,INVALC,INVALC,INVALC,0xCA6C,0xAAEC,0xCA6D,INVALC, - INVALC,0xCA6E,INVALC,INVALC,0xA750,0xA74F,INVALC,INVALC, - 0xA753,0xA751,0xA752,INVALC,INVALC,INVALC,0xA8ED,INVALC, - 0xA8EC,0xCBD4,0xCBD1,0xCBD2,INVALC,0xCBD0,0xA8EE,0xA8EA, - 0xA8E9,INVALC,0xA8EB,0xA8E8,INVALC,INVALC,INVALC,INVALC, - INVALC,0xA8EF,INVALC,0xAB63,0xCDF0,INVALC,0xCBD3,0xAB68, - INVALC,0xCDF1,0xAB64,0xAB67,0xAB66,0xAB65,0xAB62,INVALC, - INVALC,INVALC,0xD0E8,INVALC,0xADE7,0xD0EB,0xADE5,INVALC, - INVALC,INVALC,0xD0E7,0xADE8,0xADE6,0xADE9,0xD0E9,0xD0EA, - INVALC,0xD0E6,0xD0EC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xB3D1,0xB0C5,0xD469,0xD46B,0xD46A,0xD46C,0xB0C6, - INVALC,INVALC,0xB3CE,INVALC,0xB3CF,0xB3D0,INVALC,0xB6D0, - 0xDCC7,INVALC,0xDCC6,0xDCC8,0xDCC9,0xB6D1,INVALC,0xB6CF, - 0xE141,0xE142,0xB9BB,0xB9BA,0xE35A,INVALC,INVALC,0xBC40, - 0xBC41,0xBC42,0xBC44,0xE4F2,0xE4F3,0xBC43,INVALC,INVALC, - INVALC,0xBEAF,INVALC,0xBEB0,INVALC,INVALC,0xF1ED,0xF5C3, - 0xF5C2,0xF7D1,INVALC,0xA44F,INVALC,INVALC,INVALC,0xA55C, - 0xA55B,INVALC,INVALC,0xA648,INVALC,INVALC,0xC9C0,INVALC, - INVALC,0xA755,0xA756,0xA754,0xA757,0xCA6F,0xCA70,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xA8F1,0xCBD5,INVALC,0xA8F0,INVALC, - 0xCDF2,0xAB6C,0xCDF3,0xAB6B,INVALC,INVALC,INVALC,0xAB69, - INVALC,0xAB6A,INVALC,INVALC,INVALC,0xD0ED,INVALC,INVALC, - INVALC,INVALC,0xB0C7,0xD46E,INVALC,0xB0CA,0xD46D,0xB1E5, - 0xB0C9,0xB0C8,INVALC,0xB3D4,INVALC,0xB3D3,0xB3D2,0xB6D2, - INVALC,INVALC,0xB6D5,0xB6D6,0xB6D4,INVALC,0xB6D3,INVALC, - INVALC,0xE143,INVALC,0xE144,INVALC,INVALC,INVALC,0xE4F5, - 0xBC45,0xE4F4,INVALC,0xBEB1,0xECBF,0xC079,INVALC,0xF1EE, - 0xC455,INVALC,0xA463,0xA4C3,0xC956,INVALC,0xA4C4,0xA4C5, - /* Block 84, Array index 0x1400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0xA55D,0xA55E,INVALC, - 0xA649,0xCA71,0xCBD6,0xCBD7,INVALC,0xAB6D,0xD0EE,0xB0CC, - 0xB0CB,0xD863,0xD862,INVALC,INVALC,0xA450,0xA4C6,0xA55F, - INVALC,0xB0CD,0xC943,INVALC,0xC96C,0xA560,INVALC,0xC9C2, - 0xA64B,0xA64A,0xC9C1,0xA758,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xADEA,INVALC,INVALC,0xD46F,INVALC,0xB6D7, - 0xE145,0xB9BC,INVALC,INVALC,0xE8FA,INVALC,INVALC,0xF3FD, - INVALC,0xA4C7,INVALC,INVALC,0xCBD8,0xCDF4,0xB0D0,0xB0CE, - 0xB0CF,0xA451,INVALC,0xA464,0xA2CD,0xA4CA,INVALC,0xA4C9, - 0xA4C8,0xA563,0xA562,INVALC,0xC96D,0xC9C3,INVALC,INVALC, - INVALC,0xA8F5,0xA8F2,0xA8F4,0xA8F3,INVALC,INVALC,0xAB6E, - INVALC,INVALC,0xB3D5,INVALC,0xA452,INVALC,0xA4CB,INVALC, - 0xA565,0xA564,INVALC,0xCA72,INVALC,INVALC,0xA8F6,INVALC, - INVALC,INVALC,INVALC,INVALC,0xC957,INVALC,0xA567,0xA566, - 0xA64C,0xA64D,0xCA73,0xA759,INVALC,0xA75A,INVALC,0xA8F7, - 0xA8F8,0xA8F9,INVALC,0xAB6F,0xCDF5,INVALC,INVALC,0xADEB, - INVALC,INVALC,0xC944,INVALC,0xA4CC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xC9C4,INVALC,INVALC,INVALC,0xCA74,0xCA75, - INVALC,INVALC,0xCBD9,INVALC,0xCBDA,INVALC,0xCDF7,0xCDF6, - 0xCDF9,0xCDF8,0xAB70,INVALC,0xD470,0xADED,0xD0EF,0xADEC, - INVALC,INVALC,INVALC,INVALC,0xD864,0xB3D6,INVALC,0xD865, - INVALC,INVALC,INVALC,INVALC,0xE146,0xB9BD,INVALC,INVALC, - INVALC,INVALC,0xBC46,INVALC,0xF1EF,INVALC,INVALC,INVALC, - INVALC,0xC958,INVALC,0xA568,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xB0D1,INVALC,INVALC,INVALC,INVALC, - 0xA453,0xA465,0xA4CE,0xA4CD,INVALC,0xA4CF,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA8FB,INVALC,0xA8FA,0xA8FC, - INVALC,INVALC,INVALC,0xAB71,INVALC,INVALC,INVALC,0xADEE, - INVALC,0xE8FB,0xC24F,0xA466,0xA56A,0xA579,0xA574,INVALC, - 0xA56F,0xA56E,0xA575,0xA573,0xA56C,0xA57A,0xA56D,0xA569, - 0xA578,0xA577,0xA576,0xA56B,INVALC,0xA572,INVALC,INVALC, - 0xA571,INVALC,INVALC,0xA57B,0xA570,INVALC,INVALC,INVALC, - /* Block 85, Array index 0x1500 */ - INVALC,0xA653,INVALC,0xA659,0xA655,INVALC,0xA65B,0xC9C5, - 0xA658,0xA64E,0xA651,0xA654,0xA650,0xA657,0xA65A,0xA64F, - 0xA652,0xA656,0xA65C,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xCA7E,0xCA7B,INVALC,0xA767,0xCA7C,0xA75B,0xA75D,0xA775, - 0xA770,INVALC,INVALC,INVALC,0xCAA5,0xCA7D,0xA75F,0xA761, - 0xCAA4,0xA768,0xCA78,0xA774,0xA776,0xA75C,0xA76D,INVALC, - 0xCA76,0xA773,INVALC,0xA764,INVALC,0xA76E,0xA76F,0xCA77, - 0xA76C,0xA76A,INVALC,0xA76B,0xA771,0xCAA1,0xA75E,INVALC, - 0xA772,0xCAA3,0xA766,0xA763,INVALC,0xCA7A,0xA762,0xCAA6, - 0xA765,INVALC,0xA769,INVALC,INVALC,INVALC,0xA760,0xCAA2, - INVALC,INVALC,INVALC,INVALC,0xCA79,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xCBEB,0xCBEA,0xA94F,0xCBED,0xCBEF,0xCBE4,0xCBE7,0xCBEE, - 0xA950,INVALC,INVALC,0xCBE1,0xCBE5,INVALC,INVALC,0xCBE9, - 0xCE49,0xA94B,0xCE4D,0xA8FD,0xCBE6,0xA8FE,0xA94C,0xA945, - 0xA941,INVALC,0xCBE2,0xA944,0xA949,0xA952,0xCBE3,0xCBDC, - 0xA943,0xCBDD,0xCBDF,INVALC,0xA946,INVALC,0xA948,0xCBDB, - 0xCBE0,INVALC,INVALC,0xA951,0xA94D,0xCBE8,0xA953,INVALC, - 0xA94A,0xCBDE,0xA947,INVALC,INVALC,0xA942,0xA940,INVALC, - 0xCBEC,INVALC,0xA94E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xCE48,0xCDFB,0xCE4B,INVALC,INVALC,0xCDFD,0xAB78,0xABA8, - 0xAB74,0xABA7,0xAB7D,0xABA4,0xAB72,0xCDFC,0xCE43,0xABA3, - 0xCE4F,0xABA5,INVALC,0xAB79,INVALC,INVALC,0xCE45,0xCE42, - 0xAB77,INVALC,0xCDFA,0xABA6,0xCE4A,0xAB7C,0xCE4C,0xABA9, - 0xAB73,0xAB7E,0xAB7B,0xCE40,0xABA1,0xCE46,0xCE47,0xAB7A, - 0xABA2,0xAB76,INVALC,INVALC,INVALC,INVALC,0xAB75,0xCDFE, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xCE44,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xCE4E,INVALC, - 0xD144,0xADFB,0xD0F1,INVALC,0xD0F6,0xADF4,0xAE40,0xD0F4, - 0xADEF,0xADF9,0xADFE,0xD0FB,INVALC,0xADFA,0xADFD,INVALC, - INVALC,0xD0FE,0xADF5,0xD0F5,INVALC,INVALC,INVALC,0xD142, - 0xD143,INVALC,0xADF7,0xD141,0xADF3,0xAE43,INVALC,0xD0F8, - /* Block 86, Array index 0x1600 */ - INVALC,0xADF1,INVALC,0xD146,0xD0F9,0xD0FD,0xADF6,0xAE42, - 0xD0FA,0xADFC,0xD140,0xD147,0xD4A1,INVALC,0xD145,0xAE44, - 0xADF0,0xD0FC,0xD0F3,INVALC,0xADF8,INVALC,INVALC,0xD0F2, - INVALC,INVALC,0xD0F7,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xD0F0,0xAE41, - INVALC,INVALC,0xD477,INVALC,0xB0E4,0xD4A7,0xB0E2,0xB0DF, - 0xD47C,0xB0DB,0xD4A2,0xB0E6,0xD476,0xD47B,0xD47A,0xADF2, - 0xB0E1,0xD4A5,INVALC,0xD4A8,0xD473,INVALC,0xB3E8,INVALC, - 0xD4A9,0xB0E7,INVALC,0xB0D9,0xB0D6,0xD47E,0xB0D3,INVALC, - 0xD4A6,INVALC,0xB0DA,0xD4AA,INVALC,0xD474,0xD4A4,0xB0DD, - 0xD475,0xD478,0xD47D,INVALC,INVALC,0xB0DE,0xB0DC,0xB0E8, - INVALC,INVALC,INVALC,INVALC,0xB0E3,INVALC,0xB0D7,0xB1D2, - INVALC,0xB0D8,0xD479,0xB0E5,0xB0E0,0xD4A3,0xB0D5,INVALC, - INVALC,INVALC,0xB0D4,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xD471,0xD472,0xD86A, - INVALC,INVALC,INVALC,0xB3D7,0xB3DA,0xD875,0xB3EE,0xD878, - 0xB3D8,0xD871,0xB3DE,0xB3E4,0xB5BD,INVALC,INVALC,0xB3E2, - 0xD86E,0xB3EF,0xB3DB,0xB3E3,0xD876,0xDCD7,0xD87B,0xD86F, - INVALC,0xD866,0xD873,0xD86D,0xB3E1,0xD879,INVALC,INVALC, - 0xB3DD,0xB3F1,0xB3EA,INVALC,0xB3DF,0xB3DC,INVALC,0xB3E7, - INVALC,0xD87A,0xD86C,0xD872,0xD874,0xD868,0xD877,0xB3D9, - 0xD867,INVALC,0xB3E0,0xB3F0,0xB3EC,0xD869,0xB3E6,INVALC, - INVALC,0xB3ED,0xB3E9,0xB3E5,INVALC,0xD870,INVALC,INVALC, - INVALC,INVALC,INVALC,0xB3EB,INVALC,INVALC,INVALC,0xDCD5, - 0xDCD1,INVALC,0xDCE0,0xDCCA,0xDCD3,0xB6E5,0xB6E6,0xB6DE, - 0xDCDC,0xB6E8,0xDCCF,0xDCCE,0xDCCC,0xDCDE,0xB6DC,0xDCD8, - 0xDCCD,0xB6DF,0xDCD6,0xB6DA,0xDCD2,0xDCD9,0xDCDB,INVALC, - INVALC,0xDCDF,0xB6E3,0xDCCB,0xB6DD,0xDCD0,INVALC,0xB6D8, - INVALC,0xB6E4,0xDCDA,0xB6E0,0xB6E1,0xB6E7,0xB6DB,0xA25F, - 0xB6D9,0xDCD4,INVALC,INVALC,INVALC,INVALC,INVALC,0xB6E2, - INVALC,INVALC,0xDCDD,INVALC,INVALC,INVALC,0xB9CD,0xB9C8, - INVALC,0xE155,0xE151,INVALC,0xE14B,0xB9C2,0xB9BE,0xE154, - /* Block 87, Array index 0x1700 */ - 0xB9BF,0xE14E,0xE150,INVALC,0xE153,INVALC,0xB9C4,INVALC, - 0xB9CB,0xB9C5,INVALC,INVALC,0xE149,0xB9C6,0xB9C7,0xE14C, - 0xB9CC,INVALC,0xE14A,0xE14F,0xB9C3,0xE148,0xB9C9,0xB9C1, - INVALC,INVALC,INVALC,0xB9C0,0xE14D,0xE152,INVALC,0xB9CA, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xE147, - INVALC,0xBC4D,0xE547,INVALC,0xE544,INVALC,0xBC47,0xBC53, - 0xBC54,INVALC,0xBC4A,0xE542,0xBC4C,0xE4F9,0xBC52,INVALC, - 0xE546,0xBC49,0xE548,0xBC48,INVALC,0xE543,0xE545,0xBC4B, - 0xE541,0xE4FA,0xE4F7,INVALC,INVALC,0xD86B,0xE4FD,INVALC, - 0xE4F6,0xE4FC,0xE4FB,INVALC,0xE4F8,INVALC,0xBC4F,INVALC, - INVALC,INVALC,INVALC,0xBC4E,INVALC,INVALC,INVALC,0xBC50, - 0xE4FE,0xBEB2,0xE540,INVALC,INVALC,INVALC,0xE945,INVALC, - 0xE8FD,INVALC,0xBEBE,0xE942,0xBEB6,0xBEBA,0xE941,INVALC, - 0xBEB9,0xBEB5,0xBEB8,0xBEB3,0xBEBD,0xE943,0xE8FE,0xBEBC, - 0xE8FC,0xBEBB,0xE944,0xE940,0xBC51,INVALC,0xBEBF,0xE946, - 0xBEB7,0xBEB4,INVALC,INVALC,INVALC,INVALC,0xECC6,0xECC8, - 0xC07B,0xECC9,0xECC7,0xECC5,0xECC4,0xC07D,0xECC3,0xC07E, - INVALC,INVALC,INVALC,INVALC,0xECC1,0xECC2,0xC07A,0xC0A1, - 0xC07C,INVALC,INVALC,0xECC0,INVALC,0xC250,INVALC,0xEFBC, - 0xEFBA,0xEFBF,0xEFBD,INVALC,0xEFBB,0xEFBE,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xC360,0xF1F2,0xF1F3, - 0xC456,INVALC,0xF1F4,0xF1F0,0xF1F5,0xF1F1,0xC251,INVALC, - INVALC,INVALC,0xF3FE,0xF441,0xC459,0xF440,0xC458,0xC457, - INVALC,INVALC,INVALC,INVALC,0xC45A,0xF5C5,0xF5C6,INVALC, - 0xC4DA,0xC4D9,0xC4DB,0xF5C4,INVALC,0xF6D8,0xF6D7,INVALC, - 0xC56D,0xC56F,0xC56E,0xF6D9,0xC5C8,0xF8A6,INVALC,INVALC, - INVALC,0xC5F1,INVALC,0xF8A5,0xF8EE,INVALC,INVALC,0xC949, - INVALC,INVALC,0xA57D,0xA57C,INVALC,0xA65F,0xA65E,0xC9C7, - 0xA65D,0xC9C6,INVALC,INVALC,0xA779,0xCAA9,INVALC,0xCAA8, - INVALC,INVALC,0xA777,0xA77A,INVALC,INVALC,0xCAA7,INVALC, - 0xA778,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xCBF0, - INVALC,0xCBF1,0xA954,INVALC,INVALC,INVALC,INVALC,0xABAA, - /* Block 88, Array index 0x1800 */ - INVALC,0xD148,0xD149,0xAE45,0xAE46,INVALC,INVALC,0xD4AC, - 0xB0E9,0xB0EB,0xD4AB,0xB0EA,0xD87C,0xB3F2,INVALC,INVALC, - INVALC,INVALC,0xB6E9,0xB6EA,0xDCE1,INVALC,0xB9CF,INVALC, - 0xB9CE,INVALC,0xE549,0xE948,0xE947,INVALC,0xF96B,0xA467, - 0xC959,INVALC,0xC96E,0xC96F,INVALC,INVALC,INVALC,INVALC, - 0xA662,0xA666,0xC9C9,INVALC,0xA664,0xA663,0xC9C8,0xA665, - 0xA661,INVALC,INVALC,0xA660,0xC9CA,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xA7A6,INVALC,INVALC,0xA7A3,INVALC, - 0xA77D,0xCAAA,INVALC,INVALC,INVALC,0xCAAB,INVALC,0xA7A1, - INVALC,0xCAAD,0xA77B,0xCAAE,0xCAAC,0xA77E,0xA7A2,0xA7A5, - 0xA7A4,0xA77C,0xCAAF,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xA959,0xCBFE,INVALC,0xA95B,INVALC,0xA95A,INVALC, - 0xCC40,0xA958,0xA957,0xCBF5,INVALC,0xCBF4,INVALC,0xCBF2, - 0xCBF7,0xCBF6,0xCBF3,0xCBFC,0xCBFD,0xCBFA,0xCBF8,0xA956, - INVALC,INVALC,INVALC,0xCBFB,0xA95C,0xCC41,INVALC,INVALC, - 0xCBF9,INVALC,0xABAB,0xA955,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xABAC,0xCE54,INVALC,INVALC,0xCE5A, - INVALC,INVALC,INVALC,0xABB2,0xCE58,0xCE5E,INVALC,0xCE55, - 0xCE59,0xCE5B,0xCE5D,0xCE57,INVALC,0xCE56,0xCE51,0xCE52, - 0xABAD,INVALC,0xABAF,0xABAE,0xCE53,0xCE5C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xABB1,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xCE50,0xD153,INVALC, - 0xD152,0xD157,0xD14E,INVALC,0xD151,0xD150,INVALC,0xD154, - INVALC,0xD158,0xAE47,0xAE4A,INVALC,INVALC,0xD14F,0xD155, - INVALC,INVALC,INVALC,0xAE49,0xD14A,INVALC,0xABB0,0xD4BA, - 0xD156,INVALC,0xD14D,INVALC,0xAE48,0xD14C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xD4B1,INVALC,INVALC,0xB0EC, - 0xB0F0,0xD4C1,0xD4AF,0xD4BD,0xB0F1,0xD4BF,INVALC,0xD4C5, - INVALC,0xD4C9,INVALC,INVALC,0xD4C0,0xD4B4,0xD4BC,INVALC, - 0xD4CA,0xD4C8,0xD4BE,0xD4B9,0xD4B2,0xD8A6,0xD4B0,0xB0F5, - 0xD4B7,0xB0F6,0xB0F2,0xD4AD,0xD4C3,0xD4B5,INVALC,INVALC, - /* Block 89, Array index 0x1900 */ - 0xD4B3,0xD4C6,0xB0F3,INVALC,0xD4CC,0xB0ED,0xB0EF,0xD4BB, - 0xD4B6,0xAE4B,0xB0EE,0xD4B8,0xD4C7,0xD4CB,0xD4C2,INVALC, - 0xD4C4,INVALC,INVALC,INVALC,0xD4AE,INVALC,INVALC,INVALC, - INVALC,0xD8A1,INVALC,0xD8AA,0xD8A9,0xB3FA,0xD8A2,INVALC, - 0xB3FB,0xB3F9,INVALC,0xD8A4,0xB3F6,0xD8A8,INVALC,0xD8A3, - 0xD8A5,0xD87D,0xB3F4,INVALC,0xD8B2,0xD8B1,0xD8AE,0xB3F3, - 0xB3F7,0xB3F8,0xD14B,0xD8AB,0xB3F5,0xB0F4,0xD8AD,0xD87E, - 0xD8B0,0xD8AF,INVALC,0xD8B3,INVALC,0xDCEF,INVALC,0xD8AC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xD8A7,0xDCE7,0xB6F4,0xB6F7,0xB6F2,0xDCE6,0xDCEA,0xDCE5, - INVALC,0xB6EC,0xB6F6,0xDCE2,0xB6F0,0xDCE9,INVALC,0xB6EE, - 0xB6ED,0xDCEC,0xB6EF,0xDCEE,INVALC,0xDCEB,0xB6EB,INVALC, - INVALC,INVALC,0xB6F5,0xDCF0,0xDCE4,0xDCED,INVALC,INVALC, - 0xDCE3,INVALC,INVALC,0xB6F1,INVALC,0xB6F3,INVALC,0xDCE8, - INVALC,0xDCF1,INVALC,INVALC,0xE15D,0xB9D0,0xE163,INVALC, - INVALC,0xB9D5,0xE15F,0xE166,0xE157,0xB9D7,0xB9D1,0xE15C, - 0xBC55,0xE15B,0xE164,0xB9D2,INVALC,0xB9D6,0xE15A,0xE160, - 0xE165,0xE156,0xB9D4,0xE15E,INVALC,INVALC,0xE162,0xE168, - 0xE158,0xE161,INVALC,0xB9D3,0xE167,INVALC,INVALC,INVALC, - 0xE159,INVALC,INVALC,INVALC,0xBC59,0xE54B,0xBC57,0xBC56, - 0xE54D,0xE552,INVALC,0xE54E,INVALC,0xE551,0xBC5C,INVALC, - 0xBEA5,0xBC5B,INVALC,0xE54A,0xE550,INVALC,0xBC5A,0xE54F, - INVALC,0xE54C,INVALC,0xBC58,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xE94D,INVALC,0xE94F,0xE94A,0xBEC1,0xE94C, - INVALC,0xBEC0,0xE94E,INVALC,INVALC,0xBEC3,0xE950,0xBEC2, - 0xE949,0xE94B,INVALC,INVALC,INVALC,INVALC,0xC0A5,0xECCC, - INVALC,0xC0A4,0xECCD,0xC0A3,0xECCB,0xC0A2,0xECCA,INVALC, - 0xC253,0xC252,0xF1F6,0xF1F8,INVALC,0xF1F7,0xC361,0xC362, - INVALC,INVALC,0xC363,0xF442,0xC45B,INVALC,INVALC,0xF7D3, - 0xF7D2,0xC5F2,INVALC,0xA468,0xA4D0,INVALC,INVALC,0xA7A7, - INVALC,INVALC,INVALC,INVALC,0xCE5F,INVALC,INVALC,INVALC, - INVALC,0xB3FC,0xB3FD,INVALC,0xDCF2,0xB9D8,0xE169,0xE553, - /* Block 90, Array index 0x1A00 */ - INVALC,INVALC,INVALC,0xC95A,INVALC,INVALC,0xCAB0,INVALC, - INVALC,INVALC,INVALC,INVALC,0xCC42,0xCE60,0xD159,0xAE4C, - INVALC,INVALC,0xF1F9,INVALC,0xC4DC,0xA469,0xA57E,0xC970, - INVALC,0xA667,0xA668,INVALC,0xA95D,INVALC,INVALC,INVALC, - 0xB0F7,INVALC,0xB9DA,INVALC,0xB9DB,0xB9D9,INVALC,0xA46A, - INVALC,0xA4D1,0xA4D3,0xA4D2,0xC95B,0xA4D4,0xA5A1,0xC971, - INVALC,0xA5A2,INVALC,INVALC,INVALC,INVALC,INVALC,0xA669, - 0xA66A,INVALC,INVALC,INVALC,0xC9CB,INVALC,0xA7A8,INVALC, - 0xCAB1,INVALC,INVALC,INVALC,0xA961,0xCC43,INVALC,0xA95F, - 0xA960,0xA95E,0xD15A,INVALC,INVALC,INVALC,0xABB6,0xABB5, - 0xABB7,0xABB4,INVALC,0xCE61,0xA962,0xABB3,INVALC,0xAE4D, - 0xAE4E,INVALC,0xAE4F,INVALC,0xD4CD,INVALC,INVALC,INVALC, - 0xB3FE,0xD8B4,0xB0F8,INVALC,INVALC,INVALC,INVALC,0xB6F8, - INVALC,0xB9DD,0xB9DC,0xE16A,INVALC,0xBC5D,0xBEC4,INVALC, - 0xEFC0,0xF6DA,0xF7D4,0xA46B,0xA5A3,INVALC,0xA5A4,0xC9D1, - 0xA66C,0xA66F,INVALC,0xC9CF,0xC9CD,0xA66E,0xC9D0,0xC9D2, - 0xC9CC,0xA671,0xA670,0xA66D,0xA66B,0xC9CE,INVALC,INVALC, - INVALC,INVALC,0xA7B3,INVALC,INVALC,0xA7B0,0xCAB6,0xCAB9, - 0xCAB8,INVALC,0xA7AA,0xA7B2,INVALC,INVALC,0xA7AF,0xCAB5, - 0xCAB3,0xA7AE,INVALC,INVALC,INVALC,0xA7A9,0xA7AC,INVALC, - 0xCAB4,0xCABB,0xCAB7,0xA7AD,0xA7B1,0xA7B4,0xCAB2,0xCABA, - 0xA7AB,INVALC,INVALC,INVALC,INVALC,INVALC,0xA967,0xA96F, - INVALC,0xCC4F,0xCC48,0xA970,0xCC53,0xCC44,0xCC4B,INVALC, - INVALC,0xA966,0xCC45,0xA964,0xCC4C,0xCC50,0xA963,INVALC, - 0xCC51,0xCC4A,INVALC,0xCC4D,INVALC,0xA972,0xA969,0xCC54, - 0xCC52,INVALC,0xA96E,0xA96C,0xCC49,0xA96B,0xCC47,0xCC46, - 0xA96A,0xA968,0xA971,0xA96D,0xA965,INVALC,0xCC4E,INVALC, - 0xABB9,INVALC,0xABC0,0xCE6F,0xABB8,0xCE67,0xCE63,INVALC, - 0xCE73,0xCE62,INVALC,0xABBB,0xCE6C,0xABBE,0xABC1,INVALC, - 0xABBC,0xCE70,0xABBF,INVALC,0xAE56,0xCE76,0xCE64,INVALC, - INVALC,0xCE66,0xCE6D,0xCE71,0xCE75,0xCE72,0xCE6B,0xCE6E, - INVALC,INVALC,0xCE68,0xABC3,0xCE6A,0xCE69,0xCE74,0xABBA, - /* Block 91, Array index 0x1B00 */ - 0xCE65,0xABC2,INVALC,0xABBD,INVALC,INVALC,INVALC,INVALC, - INVALC,0xAE5C,0xD162,INVALC,0xAE5B,INVALC,INVALC,0xD160, - INVALC,0xAE50,INVALC,0xAE55,INVALC,0xD15F,0xD15C,0xD161, - 0xAE51,0xD15B,INVALC,0xAE54,0xAE52,INVALC,0xD163,0xAE53, - 0xAE57,INVALC,INVALC,0xAE58,INVALC,0xAE5A,INVALC,INVALC, - INVALC,0xAE59,INVALC,INVALC,INVALC,0xD15D,0xD15E,INVALC, - INVALC,INVALC,INVALC,0xD164,INVALC,0xD4D4,0xB0F9,0xD8C2, - 0xD4D3,0xD4E6,INVALC,INVALC,0xB140,INVALC,0xD4E4,INVALC, - 0xB0FE,0xB0FA,0xD4ED,0xD4DD,0xD4E0,INVALC,0xB143,0xD4EA, - 0xD4E2,0xB0FB,0xB144,INVALC,0xD4E7,0xD4E5,INVALC,INVALC, - 0xD4D6,0xD4EB,0xD4DF,0xD4DA,INVALC,0xD4D0,0xD4EC,0xD4DC, - 0xD4CF,INVALC,0xB142,0xD4E1,0xD4EE,0xD4DE,0xD4D2,0xD4D7, - 0xD4CE,INVALC,0xB141,INVALC,0xD4DB,0xD4D8,0xB0FC,0xD4D1, - INVALC,0xD4E9,0xB0FD,INVALC,0xD4D9,0xD4D5,INVALC,INVALC, - 0xD4E8,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xB440, - 0xD8BB,INVALC,0xD8B8,0xD8C9,0xD8BD,0xD8CA,INVALC,0xB442, - INVALC,INVALC,INVALC,0xD8C6,0xD8C3,INVALC,INVALC,INVALC, - INVALC,INVALC,0xD8C4,0xD8C7,0xD8CB,INVALC,0xD4E3,0xD8CD, - 0xDD47,INVALC,0xB443,0xD8CE,0xD8B6,0xD8C0,INVALC,0xD8C5, - INVALC,INVALC,0xB441,0xB444,0xD8CC,0xD8CF,0xD8BA,0xD8B7, - INVALC,INVALC,0xD8B9,INVALC,INVALC,0xD8BE,0xD8BC,0xB445, - INVALC,0xD8C8,INVALC,INVALC,0xD8BF,INVALC,0xD8C1,0xD8B5, - 0xDCFA,0xDCF8,0xB742,0xB740,0xDD43,0xDCF9,0xDD44,0xDD40, - 0xDCF7,0xDD46,0xDCF6,0xDCFD,0xB6FE,0xB6FD,0xB6FC,0xDCFB, - 0xDD41,0xB6F9,0xB741,INVALC,0xDCF4,INVALC,0xDCFE,0xDCF3, - 0xDCFC,0xB6FA,0xDD42,0xDCF5,0xB6FB,0xDD45,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xE16E,0xB9E2,0xB9E1, - 0xB9E3,0xE17A,0xE170,0xE176,0xE16B,0xE179,0xE178,0xE17C, - 0xE175,0xB9DE,0xE174,0xB9E4,INVALC,0xE16D,0xB9DF,INVALC, - 0xE17B,0xB9E0,0xE16F,0xE172,0xE177,0xE171,0xE16C,INVALC, - INVALC,INVALC,INVALC,0xE173,0xE555,0xBC61,0xE558,0xE557, - 0xE55A,0xE55C,INVALC,0xBC5F,INVALC,0xE556,INVALC,0xE554, - /* Block 92, Array index 0x1C00 */ - INVALC,0xE55D,0xE55B,0xE559,INVALC,0xE55F,INVALC,0xE55E, - 0xBC63,0xBC5E,INVALC,0xBC60,0xBC62,INVALC,INVALC,0xE560, - 0xE957,INVALC,INVALC,0xE956,0xE955,INVALC,0xE958,0xE951, - INVALC,0xE952,0xE95A,0xE953,INVALC,0xBEC5,0xE95C,INVALC, - 0xE95B,0xE954,INVALC,0xECD1,0xC0A8,0xECCF,0xECD4,0xECD3, - 0xE959,INVALC,0xC0A7,INVALC,0xECD2,0xECCE,0xECD6,0xECD5, - 0xC0A6,INVALC,0xECD0,INVALC,0xBEC6,INVALC,INVALC,INVALC, - 0xC254,INVALC,INVALC,INVALC,0xEFC1,0xF1FA,0xF1FB,0xF1FC, - 0xC45C,INVALC,INVALC,0xC45D,INVALC,0xF443,INVALC,0xF5C8, - 0xF5C7,INVALC,INVALC,0xF6DB,0xF6DC,0xF7D5,0xF8A7,INVALC, - 0xA46C,0xA46D,INVALC,0xA46E,0xA4D5,0xA5A5,0xC9D3,0xA672, - 0xA673,INVALC,0xA7B7,0xA7B8,0xA7B6,0xA7B5,INVALC,0xA973, - INVALC,INVALC,0xCC55,0xA975,0xA974,0xCC56,INVALC,INVALC, - INVALC,0xABC4,INVALC,0xAE5D,0xD165,INVALC,0xD4F0,INVALC, - 0xB145,0xB447,0xD4EF,0xB446,INVALC,0xB9E5,INVALC,0xE17D, - 0xBEC7,INVALC,0xC0A9,0xECD7,INVALC,0xC45E,INVALC,0xC570, - INVALC,0xC972,INVALC,0xA5A6,0xC973,0xA676,INVALC,0xA674, - 0xA675,0xA677,INVALC,0xA7BA,0xA7B9,INVALC,0xCABC,0xA7BB, - INVALC,INVALC,0xCABD,0xCC57,INVALC,0xCC58,INVALC,0xA976, - 0xA978,0xA97A,0xA977,0xA97B,0xA979,INVALC,INVALC,INVALC, - INVALC,INVALC,0xABC8,0xABC5,0xABC7,0xABC9,0xABC6,0xD166, - 0xCE77,INVALC,INVALC,INVALC,0xD168,0xD167,0xAE63,INVALC, - 0xAE5F,INVALC,INVALC,0xAE60,0xAE62,0xAE64,0xAE61,INVALC, - 0xAE66,0xAE65,INVALC,INVALC,INVALC,INVALC,INVALC,0xB14A, - 0xD4F2,0xD4F1,0xB149,INVALC,0xB148,0xB147,0xB14B,0xB146, - INVALC,INVALC,0xD8D5,0xD8D2,0xB449,0xD8D1,0xD8D6,INVALC, - 0xB44B,0xD8D4,0xB448,0xB44A,0xD8D3,INVALC,0xDD48,INVALC, - 0xDD49,0xDD4A,INVALC,INVALC,INVALC,INVALC,0xB9E6,0xB9EE, - 0xE17E,0xB9E8,0xB9EC,0xE1A1,0xB9ED,0xB9E9,0xB9EA,0xB9E7, - 0xB9EB,0xBC66,0xD8D0,0xBC67,0xBC65,INVALC,0xBC64,0xE95D, - 0xBEC8,0xECD8,0xECD9,INVALC,INVALC,0xC364,0xC45F,INVALC, - 0xA46F,INVALC,0xA678,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 93, Array index 0x1D00 */ - INVALC,0xABCA,INVALC,0xD169,0xAE67,INVALC,INVALC,0xB14E, - 0xB14D,0xB14C,0xB44C,0xB44D,0xD8D7,0xB9EF,0xBEC9,0xA470, - 0xC95C,0xA4D6,0xC974,INVALC,INVALC,0xC9D4,0xA679,INVALC, - INVALC,INVALC,0xA97C,INVALC,INVALC,INVALC,INVALC,0xDD4B, - INVALC,INVALC,0xA471,INVALC,0xA4D7,0xC9D5,INVALC,INVALC, - 0xCABE,INVALC,0xCABF,INVALC,0xA7BC,INVALC,INVALC,INVALC, - 0xD8D8,0xB44E,INVALC,0xDD4C,INVALC,INVALC,INVALC,0xC0AA, - 0xA472,0xA4A8,0xA4D8,0xC975,0xA5A7,INVALC,0xA7C0,0xA7BF, - 0xA7BD,0xA7BE,INVALC,INVALC,0xCC59,0xA97E,0xA9A1,0xCC5A, - 0xA97D,INVALC,INVALC,0xABCE,0xCE78,0xABCD,0xABCB,0xABCC, - 0xAE6A,0xAE68,INVALC,INVALC,0xD16B,0xAE69,0xD16A,INVALC, - 0xAE5E,0xD4F3,INVALC,INVALC,0xB150,0xB151,INVALC,INVALC, - 0xB14F,INVALC,0xB9F0,0xE1A2,0xBC68,0xBC69,INVALC,0xE561, - 0xC0AB,0xEFC2,0xEFC3,INVALC,0xC4DD,0xF8A8,0xC94B,0xA4D9, - INVALC,0xA473,INVALC,0xC977,0xC976,INVALC,INVALC,INVALC, - INVALC,0xA67A,0xC9D7,0xC9D8,0xC9D6,INVALC,0xC9D9,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xCAC7,INVALC, - 0xCAC2,0xCAC4,0xCAC6,0xCAC3,0xA7C4,0xCAC0,INVALC,0xCAC1, - 0xA7C1,0xA7C2,0xCAC5,0xCAC8,0xA7C3,0xCAC9,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xCC68,INVALC,0xCC62, - 0xCC5D,0xA9A3,0xCC65,0xCC63,0xCC5C,0xCC69,0xCC6C,0xCC67, - 0xCC60,0xA9A5,0xCC66,0xA9A6,0xCC61,0xCC64,0xCC5B,0xCC5F, - 0xCC6B,0xA9A7,INVALC,0xA9A8,INVALC,0xCC5E,0xCC6A,0xA9A2, - 0xA9A4,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xCEAB,0xCEA4, - 0xCEAA,0xCEA3,0xCEA5,0xCE7D,0xCE7B,INVALC,0xCEAC,0xCEA9, - 0xCE79,INVALC,0xABD0,0xCEA7,0xCEA8,INVALC,0xCEA6,0xCE7C, - 0xCE7A,0xABCF,0xCEA2,0xCE7E,INVALC,INVALC,0xCEA1,0xCEAD, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xAE6F,INVALC,0xAE6E,INVALC,0xD16C,0xAE6B,0xD16E,INVALC, - 0xAE70,0xD16F,INVALC,INVALC,0xAE73,INVALC,0xAE71,0xD170, - 0xCEAE,0xD172,INVALC,0xAE6D,INVALC,0xAE6C,INVALC,0xD16D, - /* Block 94, Array index 0x1E00 */ - 0xD171,0xAE72,INVALC,INVALC,INVALC,INVALC,0xB153,0xB152, - INVALC,INVALC,INVALC,0xD4F5,0xD4F9,0xD4FB,0xB154,0xD4FE, - INVALC,0xB158,0xD541,INVALC,0xB15A,INVALC,0xB156,0xB15E, - INVALC,0xB15B,0xD4F7,0xB155,INVALC,0xD4F6,0xD4F4,0xD543, - 0xD4F8,INVALC,0xB157,0xD542,0xB15C,0xD4FD,0xD4FC,0xB15D, - 0xD4FA,0xB159,INVALC,INVALC,INVALC,INVALC,0xD544,INVALC, - 0xD540,0xD8E7,0xD8EE,0xD8E3,0xB451,0xD8DF,0xD8EF,0xD8D9, - 0xD8EC,0xD8EA,0xD8E4,INVALC,0xD8ED,0xD8E6,INVALC,0xD8DE, - 0xD8F0,0xD8DC,0xD8E9,0xD8DA,INVALC,0xD8F1,INVALC,0xB452, - INVALC,0xD8EB,0xDD4F,0xD8DD,0xB44F,INVALC,0xD8E1,INVALC, - 0xB450,0xD8E0,0xD8E5,INVALC,INVALC,0xD8E2,INVALC,INVALC, - INVALC,0xD8E8,INVALC,INVALC,INVALC,INVALC,0xDD53,INVALC, - INVALC,INVALC,0xDD56,0xDD4E,INVALC,0xDD50,INVALC,0xDD55, - 0xDD54,0xB743,INVALC,0xD8DB,0xDD52,INVALC,INVALC,0xB744, - INVALC,0xDD4D,0xDD51,INVALC,INVALC,INVALC,INVALC,0xE1A9, - INVALC,0xE1B0,0xE1A7,INVALC,0xE1AE,0xE1A5,0xE1AD,0xE1B1, - 0xE1A4,0xE1A8,0xE1A3,INVALC,0xB9F1,INVALC,0xE1A6,0xB9F2, - 0xE1AC,0xE1AB,0xE1AA,INVALC,INVALC,0xE1AF,INVALC,INVALC, - INVALC,INVALC,0xE565,0xE567,0xBC6B,0xE568,INVALC,0xE563, - INVALC,0xE562,0xE56C,INVALC,0xE56A,0xBC6A,0xE56D,0xE564, - 0xE569,0xE56B,0xE566,INVALC,INVALC,INVALC,INVALC,0xE961, - 0xE966,0xE960,0xE965,INVALC,0xE95E,0xE968,0xE964,0xE969, - 0xE963,0xE95F,0xE967,INVALC,0xE96A,0xE962,INVALC,0xECDA, - 0xC0AF,INVALC,0xC0AD,INVALC,0xC0AC,0xC0AE,INVALC,INVALC, - 0xEFC4,INVALC,0xF172,0xF1FD,INVALC,INVALC,0xF444,0xF445, - INVALC,0xC460,INVALC,0xF5C9,INVALC,0xC4DE,INVALC,0xF5CA, - INVALC,0xF6DE,0xC572,INVALC,0xC571,0xF6DD,0xC5C9,INVALC, - 0xF7D6,INVALC,INVALC,INVALC,INVALC,0xA474,0xA67B,0xC9DA, - 0xCACA,0xA8B5,0xB15F,INVALC,INVALC,0xA475,0xA5AA,0xA5A9, - 0xA5A8,INVALC,INVALC,0xA7C5,INVALC,INVALC,0xAE74,INVALC, - 0xDD57,0xA476,0xA477,0xA478,0xA4DA,INVALC,INVALC,0xABD1, - INVALC,0xCEAF,INVALC,INVALC,INVALC,0xB453,0xA479,0xC95D, - /* Block 95, Array index 0x1F00 */ - INVALC,INVALC,0xA5AB,0xA5AC,0xC978,INVALC,0xA67C,INVALC, - INVALC,INVALC,0xCACB,INVALC,0xA7C6,INVALC,0xCACC,INVALC, - INVALC,0xA9AE,INVALC,INVALC,0xCC6E,0xA9AC,0xA9AB,0xCC6D, - 0xA9A9,0xCC6F,0xA9AA,0xA9AD,INVALC,0xABD2,INVALC,0xABD4, - 0xCEB3,0xCEB0,0xCEB1,0xCEB2,0xCEB4,0xABD3,INVALC,INVALC, - 0xD174,0xD173,INVALC,0xAE76,INVALC,0xAE75,INVALC,INVALC, - INVALC,INVALC,INVALC,0xB162,0xD546,INVALC,0xB161,0xB163, - 0xB160,INVALC,INVALC,INVALC,INVALC,0xB455,0xD545,INVALC, - 0xB456,0xD8F3,INVALC,0xB457,0xD8F2,0xB454,INVALC,INVALC, - INVALC,INVALC,0xDD5A,0xDD5C,0xB745,0xDD5B,0xDD59,0xDD58, - INVALC,INVALC,INVALC,0xE1B4,0xB9F7,0xB9F5,INVALC,0xB9F6, - 0xE1B2,0xE1B3,INVALC,0xB9F3,0xE571,0xE56F,INVALC,0xBC6D, - 0xE570,0xBC6E,0xBC6C,0xB9F4,INVALC,INVALC,0xE96D,0xE96B, - 0xE96C,0xE56E,0xECDC,0xC0B0,0xECDB,0xEFC5,0xEFC6,0xE96E, - 0xF1FE,INVALC,0xA47A,0xA5AD,0xA67E,0xC9DB,0xA67D,INVALC, - 0xA9AF,0xB746,INVALC,0xA4DB,0xA5AE,0xABD5,0xB458,INVALC, - 0xC979,INVALC,0xC97A,INVALC,0xC9DC,INVALC,INVALC,0xA7C8, - 0xCAD0,0xCACE,0xA7C9,0xCACD,0xCACF,0xCAD1,INVALC,0xA7C7, - INVALC,INVALC,INVALC,INVALC,INVALC,0xA9B3,0xA9B4,0xA9B1, - INVALC,INVALC,0xA9B0,0xCEB8,0xA9B2,INVALC,INVALC,INVALC, - 0xABD6,INVALC,0xCEB7,0xCEB9,0xCEB6,0xCEBA,0xABD7,0xAE79, - 0xD175,INVALC,0xD177,0xAE77,0xD178,0xAE78,0xD176,INVALC, - 0xCEB5,0xD547,0xD54A,0xD54B,0xD548,0xB167,0xB166,0xB164, - 0xB165,0xD549,INVALC,INVALC,INVALC,INVALC,0xB168,INVALC, - INVALC,0xB45A,0xB45B,INVALC,0xB45C,0xDD5D,0xDD5F,0xDD61, - 0xB748,0xB747,0xB459,0xDD60,0xDD5E,INVALC,0xE1B8,INVALC, - INVALC,0xE1B6,0xE1BC,0xB9F8,0xE1BD,0xE1BA,0xB9F9,0xE1B7, - 0xE1B5,0xE1BB,0xBC70,0xE573,0xE1B9,0xBC72,0xE574,0xBC71, - 0xBC74,0xE575,0xBC6F,0xBC73,INVALC,0xE973,0xE971,0xE970, - 0xE972,0xE96F,INVALC,INVALC,0xC366,INVALC,0xF446,0xF447, - INVALC,0xF5CB,0xF6DF,0xC655,INVALC,INVALC,0xA9B5,0xA7CA, - INVALC,INVALC,0xABD8,INVALC,INVALC,INVALC,0xA47B,0xA4DC, - /* Block 96, Array index 0x2000 */ - INVALC,0xA5AF,0xC9DD,INVALC,0xA7CB,0xCAD2,INVALC,0xCEBB, - 0xABD9,INVALC,0xB9FA,0xA47C,INVALC,INVALC,INVALC,0xA6A1, - INVALC,INVALC,0xB749,0xA47D,0xA4DD,0xA4DE,INVALC,0xA5B1, - 0xA5B0,INVALC,0xC9DE,0xA6A2,INVALC,0xCAD3,INVALC,0xA7CC, - INVALC,INVALC,0xCC71,0xCC72,0xCC73,INVALC,0xA9B6,0xA9B7, - 0xCC70,0xA9B8,INVALC,INVALC,INVALC,0xABDA,0xCEBC,INVALC, - 0xD17A,0xAE7A,INVALC,0xD179,INVALC,0xB169,0xD54C,0xB16A, - 0xD54D,INVALC,INVALC,INVALC,0xB45D,INVALC,INVALC,INVALC, - 0xDD62,INVALC,INVALC,0xE1BF,0xE1BE,INVALC,0xB9FB,INVALC, - 0xBC75,0xE576,0xBECA,0xE974,0xC0B1,INVALC,0xC573,0xF7D8, - INVALC,INVALC,INVALC,INVALC,0xCC74,INVALC,0xCEBD,0xB16B, - 0xD8F4,0xB74A,INVALC,INVALC,INVALC,0xC255,INVALC,INVALC, - INVALC,INVALC,0xA7CE,INVALC,0xA7CD,0xABDB,INVALC,0xD17B, - INVALC,0xB16D,0xB343,0xB16E,0xB16C,0xB45E,INVALC,0xE1C0, - 0xB9FC,0xBC76,INVALC,0xC94C,0xC9DF,INVALC,0xCAD5,0xA7CF, - 0xCAD4,0xA7D0,INVALC,INVALC,0xA9BC,0xCC77,0xCC76,0xA9BB, - 0xA9B9,0xA9BA,0xCC75,INVALC,INVALC,0xABDD,0xCEBE,0xABE0, - 0xABDC,0xABE2,0xABDE,0xABDF,0xABE1,INVALC,INVALC,INVALC, - 0xAE7D,0xAE7C,0xAE7B,INVALC,INVALC,INVALC,0xD54F,0xB16F, - 0xB172,0xB170,INVALC,0xD54E,0xB175,INVALC,0xB171,0xD550, - 0xB174,0xB173,INVALC,INVALC,INVALC,0xD8F6,0xD8F5,INVALC, - 0xB461,0xB45F,0xB460,0xD8F7,0xB74B,0xDD64,0xB74C,0xDD63, - INVALC,INVALC,0xE577,INVALC,INVALC,0xBC78,0xE1C1,0xBC77, - INVALC,0xB9FD,INVALC,0xECDE,0xE975,0xC0B2,0xECDD,0xF240, - 0xF448,0xF449,INVALC,0xA4DF,INVALC,0xA5B2,INVALC,INVALC, - INVALC,0xC97B,INVALC,INVALC,0xA7D2,0xA7D4,INVALC,0xC9E2, - 0xCAD8,0xCAD7,0xCAD6,INVALC,0xC9E1,0xC9E0,0xA6A4,0xA7D3, - 0xA7D1,0xA6A3,INVALC,INVALC,INVALC,0xA9BD,0xCC78,INVALC, - 0xA9BE,0xCADD,INVALC,0xCADF,0xCADE,0xCC79,INVALC,INVALC, - 0xCADA,INVALC,0xA7D8,0xA7D6,INVALC,0xCAD9,0xCADB,0xCAE1, - INVALC,0xA7D5,INVALC,0xCADC,0xCAE5,0xA9C0,INVALC,0xCAE2, - 0xA7D7,INVALC,0xCAE0,0xCAE3,INVALC,0xA9BF,INVALC,0xA9C1, - /* Block 97, Array index 0x2100 */ - 0xCAE4,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xCCAF,0xCCA2,0xCC7E,0xCCAE,0xCCA9,0xABE7,0xA9C2, - 0xCCAA,0xCCAD,0xABE3,0xCCAC,0xA9C3,0xA9C8,0xA9C6,0xCCA3, - INVALC,0xCC7C,0xCCA5,0xA9CD,0xCCB0,0xABE4,0xCCA6,INVALC, - 0xABE5,0xA9C9,0xCCA8,INVALC,0xCECD,0xABE6,0xCC7B,0xA9CA, - 0xABE8,0xA9CB,0xA9C7,0xA9CC,0xCCA7,0xCC7A,0xCCAB,0xA9C4, - INVALC,INVALC,0xCC7D,0xCCA4,0xCCA1,0xA9C5,INVALC,0xCEBF, - INVALC,0xCEC0,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xCECA,0xD1A1,0xCECB,0xABEE,0xCECE,0xCEC4,0xABED,0xCEC6, - INVALC,0xCEC7,INVALC,INVALC,0xCEC9,0xABE9,INVALC,INVALC, - 0xAEA3,INVALC,INVALC,0xCEC5,0xCEC1,0xAEA4,INVALC,INVALC, - 0xCECF,0xAE7E,0xD17D,0xCEC8,INVALC,0xD17C,0xCEC3,0xCECC, - INVALC,INVALC,0xABEC,0xAEA1,0xABF2,0xAEA2,0xCED0,0xD17E, - 0xABEB,0xAEA6,0xABF1,0xABF0,0xABEF,0xAEA5,0xCED1,0xAEA7, - 0xABEA,INVALC,0xCEC2,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xB176, - 0xD1A4,0xD1A6,INVALC,0xD1A8,0xAEA8,0xAEAE,0xD553,0xD1AC, - 0xD1A3,0xB178,0xD551,INVALC,0xAEAD,0xAEAB,0xD1AE,INVALC, - 0xD552,INVALC,0xD1A5,INVALC,0xAEAC,0xD1A9,0xAEAF,0xD1AB, - INVALC,INVALC,0xAEAA,0xD1AA,0xD1AD,0xD1A7,INVALC,0xAEA9, - 0xB179,INVALC,0xD1A2,0xB177,INVALC,INVALC,INVALC,INVALC, - 0xB17A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xD555,0xD55E,0xB464,INVALC,0xB17C,0xB1A3,0xB465,0xD560, - 0xB1AA,0xD8F9,0xD556,0xB1A2,0xB1A5,0xB17E,0xD554,0xD562, - 0xD565,0xD949,INVALC,0xD563,0xD8FD,0xB1A1,0xB1A8,0xB1AC, - 0xD55D,0xD8F8,0xD561,0xB17B,0xD8FA,0xD564,0xD8FC,0xD559, - INVALC,0xB462,INVALC,0xD557,0xD558,0xB1A7,INVALC,INVALC, - 0xB1A6,0xD55B,0xB1AB,0xD55F,0xB1A4,0xD55C,INVALC,0xB1A9, - 0xB466,0xB463,0xD8FB,INVALC,0xD55A,INVALC,0xB17D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xB46B,0xB46F,0xD940,0xB751,0xB46D,0xD944,0xB471,0xDD65, - 0xD946,0xB753,0xB469,0xB46C,0xD947,INVALC,0xD948,0xD94E, - /* Block 98, Array index 0x2200 */ - 0xB473,0xB754,INVALC,0xD94A,0xD94F,0xD943,0xB75E,INVALC, - 0xB755,0xB472,0xD941,0xD950,INVALC,0xB75D,0xB470,0xB74E, - 0xD94D,INVALC,0xB474,0xD945,0xD8FE,0xB46A,0xD942,INVALC, - 0xD94B,INVALC,0xB74D,0xB752,0xB467,0xD94C,INVALC,0xB750, - INVALC,INVALC,INVALC,0xB468,INVALC,INVALC,INVALC,0xB75C, - 0xE1C3,0xDD70,INVALC,0xDD68,0xE1C2,INVALC,0xDD6C,0xDD6E, - INVALC,INVALC,0xDD6B,INVALC,0xB75B,INVALC,0xDD6A,0xB75F, - INVALC,INVALC,INVALC,0xE1D2,INVALC,INVALC,0xB75A,0xBA40, - 0xDD71,0xE1C4,INVALC,INVALC,0xB758,0xDD69,0xDD6D,0xB9FE, - 0xB74F,0xDD66,0xDD67,0xBA41,0xB757,0xB759,0xB756,0xDD6F, - INVALC,INVALC,0xE1C8,0xE1C9,0xE1CE,0xBC7D,0xE1D5,INVALC, - 0xBA47,INVALC,0xBA46,0xE1D0,INVALC,0xBC7C,0xE1C5,0xBA45, - INVALC,0xE1D4,0xBA43,0xBA44,INVALC,0xE1D1,0xE5AA,0xBC7A, - 0xB46E,INVALC,0xE1D3,0xBCA3,0xE1CB,INVALC,0xBC7B,INVALC, - 0xBCA2,0xE1C6,0xE1CA,0xE1C7,0xE1CD,0xBA48,0xBC79,0xBA42, - INVALC,0xE57A,0xE1CF,INVALC,0xBCA1,INVALC,0xBCA4,INVALC, - 0xE1CC,INVALC,0xBC7E,0xE579,INVALC,INVALC,INVALC,INVALC, - INVALC,0xE57E,0xBECE,0xE578,0xE9A3,0xE5A9,0xBCA8,INVALC, - 0xBCA6,0xBECC,0xE5A6,0xE5A2,0xBCAC,INVALC,0xE978,INVALC, - INVALC,INVALC,0xBCAA,0xE5A1,INVALC,0xE976,INVALC,0xE5A5, - INVALC,0xE5A8,0xE57D,INVALC,0xBCAB,INVALC,INVALC,0xBCA5, - 0xE977,0xBECD,0xE5A7,0xBCA7,0xBCA9,0xE5A4,0xBCAD,0xE5A3, - 0xE57C,0xE57B,0xBECB,0xE5AB,0xE97A,0xECE0,0xBED0,INVALC, - 0xE9A2,INVALC,0xE97E,INVALC,0xECE1,INVALC,0xBED1,0xE9A1, - INVALC,0xE97C,0xC0B4,0xECDF,INVALC,0xE979,0xE97B,0xC0B5, - 0xBED3,0xC0B3,0xBED2,0xC0B7,0xE97D,0xBECF,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xEFCF,INVALC, - 0xEFC7,INVALC,INVALC,INVALC,INVALC,INVALC,0xECE7,0xEFC8, - 0xECE3,INVALC,INVALC,0xC256,0xECE5,0xECE4,0xC0B6,0xECE2, - 0xECE6,0xEFD0,0xEFCC,0xEFCE,INVALC,0xEFC9,0xEFCA,INVALC, - 0xEFCD,0xEFCB,0xC367,INVALC,INVALC,0xC36A,0xC369,0xC368, - 0xC461,0xF44A,0xC462,0xF241,0xC4DF,0xF5CC,0xC4E0,0xC574, - /* Block 99, Array index 0x2300 */ - 0xC5CA,0xF7D9,INVALC,0xF7DA,0xF7DB,INVALC,INVALC,0xF9BA, - 0xA4E0,0xC97C,0xA5B3,INVALC,0xA6A6,0xA6A7,0xA6A5,INVALC, - 0xA6A8,0xA7DA,0xA7D9,INVALC,0xCCB1,0xA9CF,0xA9CE,INVALC, - INVALC,0xD1AF,0xB1AD,0xB1AE,INVALC,INVALC,INVALC,0xB475, - 0xDD72,0xB760,0xB761,0xDD74,0xDD76,0xDD75,INVALC,0xE1D7, - INVALC,0xE1D6,0xBA49,0xE1D8,INVALC,0xE5AC,0xBCAE,INVALC, - 0xBED4,INVALC,0xC0B8,0xC257,0xC0B9,INVALC,0xA4E1,INVALC, - INVALC,INVALC,0xCAE6,INVALC,INVALC,0xCCB2,0xA9D1,0xA9D0, - 0xA9D2,0xABF3,0xCED2,0xCED3,INVALC,INVALC,0xD1B0,0xAEB0, - 0xB1AF,0xB476,0xD951,0xA4E2,INVALC,0xA47E,0xA4E3,INVALC, - 0xC97D,0xA5B7,0xA5B6,0xA5B4,0xA5B5,INVALC,INVALC,INVALC, - 0xA6AB,0xC9E9,0xC9EB,0xA6AA,0xC9E3,INVALC,0xC9E4,INVALC, - 0xC9EA,0xC9E6,0xC9E8,0xA6A9,0xC9E5,0xC9EC,0xC9E7,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xA7E1,0xA7EA,0xA7E8, - 0xCAF0,0xCAED,0xCAF5,0xA7E6,0xCAF6,INVALC,0xA7DF,0xCAF3, - INVALC,0xA7E5,0xCAEF,0xCAEE,0xA7E3,0xCAF4,0xA7E4,0xA9D3, - 0xA7DE,0xCAF1,INVALC,0xCAE7,0xA7DB,INVALC,0xA7EE,0xCAEC, - 0xCAF2,0xA7E0,0xA7E2,INVALC,0xCAE8,INVALC,0xCAE9,0xCAEA, - INVALC,0xA7ED,0xA7E7,0xA7EC,0xCAEB,0xA7EB,0xA7DD,0xA7DC, - 0xA7E9,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xA9E1,0xCCBE,0xCCB7,0xA9DC,0xA9EF,0xCCB3,0xCCBA,0xCCBC, - 0xCCBF,0xA9EA,INVALC,0xCCBB,0xCCB4,0xA9E8,0xCCB8,INVALC, - 0xCCC0,0xA9D9,INVALC,0xCCBD,0xA9E3,0xA9E2,0xCCB6,0xA9D7, - INVALC,INVALC,0xA9D8,INVALC,0xA9D6,INVALC,0xA9EE,0xA9E6, - 0xA9E0,0xA9D4,0xCCB9,0xA9DF,0xA9D5,0xA9E7,0xA9F0,0xCED4, - 0xA9E4,0xCCB5,0xA9DA,0xA9DD,0xA9DE,INVALC,0xA9EC,0xA9ED, - 0xA9EB,0xA9E5,0xA9E9,0xA9DB,0xABF4,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xCEDA,0xAC41,0xABF8,0xABFA,0xAC40, - 0xCEE6,0xABFD,0xD1B1,0xAEB1,0xAC43,0xCED7,0xCEDF,0xABFE, - 0xCEDE,0xCEDB,0xCEE3,0xCEE5,0xABF7,0xABFB,0xAC42,0xAEB3, - /* Block 100, Array index 0x2400 */ - 0xCEE0,0xABF9,0xAC45,0xCED9,INVALC,INVALC,INVALC,0xABFC, - 0xAEB2,0xABF6,INVALC,0xCED6,0xCEDD,0xCED5,0xCED8,0xCEDC, - 0xD1B2,0xAC44,INVALC,0xCEE1,0xCEE2,0xCEE4,0xABF5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xAEC1,0xD1BE,0xAEBF,0xAEC0,0xD1B4,0xD1C4,INVALC,0xAEB6, - INVALC,INVALC,0xD566,0xD1C6,0xD1C0,INVALC,0xD1B7,INVALC, - 0xD1C9,0xD1BA,0xAEBC,0xD57D,0xD1BD,0xAEBE,0xAEB5,INVALC, - 0xD1CB,0xD1BF,0xAEB8,0xD1B8,0xD1B5,0xD1B6,0xAEB9,0xD1C5, - 0xD1CC,0xAEBB,0xD1BC,0xD1BB,0xAEC3,0xAEC2,0xAEB4,0xAEBA, - 0xAEBD,0xD1C8,INVALC,INVALC,0xD1C2,0xAEB7,0xD1B3,0xD1CA, - 0xD1C1,0xD1C3,0xD1C7,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xD567,INVALC,0xB1B7, - 0xB1CB,0xB1CA,INVALC,0xB1BF,INVALC,0xD579,0xD575,0xD572, - 0xD5A6,0xB1BA,0xB1B2,INVALC,INVALC,0xD577,0xB4A8,0xB1B6, - 0xD5A1,INVALC,0xB1CC,0xB1C9,0xD57B,0xD56A,INVALC,INVALC, - 0xB1C8,0xD5A3,0xD569,0xB1BD,0xB1C1,0xD5A2,INVALC,0xD573, - 0xB1C2,0xB1BC,0xD568,INVALC,0xB478,0xD5A5,0xD571,0xB1C7, - 0xD574,0xD5A4,0xB1C6,INVALC,0xD952,INVALC,0xB1B3,0xD56F, - 0xB1B8,0xB1C3,INVALC,0xB1BE,0xD578,0xD56E,0xD56C,0xD57E, - 0xB1B0,0xB1C4,0xB1B4,0xB477,0xD57C,0xB1B5,INVALC,0xB1B1, - 0xB1C0,0xB1BB,0xB1B9,0xD570,0xB1C5,0xD56D,0xD57A,0xD576, - 0xD954,0xD953,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xD56B,0xD964,INVALC, - 0xB47A,INVALC,0xD96A,0xD959,0xD967,0xDD77,0xB47D,0xD96B, - 0xD96E,0xB47C,0xD95C,0xD96D,0xD96C,0xB47E,0xD955,0xB479, - 0xB4A3,INVALC,0xB4A1,0xD969,INVALC,0xD95F,0xB4A5,0xD970, - 0xD968,0xD971,0xB4AD,0xB4AB,0xD966,0xD965,INVALC,0xD963, - 0xD95D,0xB4A4,INVALC,0xB4A2,0xD1B9,0xD956,INVALC,0xDDB7, - 0xD957,0xB47B,0xB4AA,0xDD79,INVALC,0xB4A6,0xB4A7,0xD958, - 0xD96F,0xDD78,0xD960,0xD95B,0xB4A9,0xD961,0xD95E,INVALC, - INVALC,0xB4AE,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 101, Array index 0x2500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xB770,INVALC, - INVALC,0xDD7C,0xDDB1,0xDDB6,0xDDAA,0xB76C,0xDDBB,0xB769, - 0xDD7A,INVALC,0xDD7B,0xB762,0xB76B,0xDDA4,0xB76E,0xB76F, - 0xDDA5,INVALC,0xDDB2,0xDDB8,0xB76A,INVALC,0xB764,0xDDA3, - 0xDD7D,0xDDBA,0xDDA8,0xDDA9,0xDD7E,0xDDB4,0xDDAB,0xDDB5, - 0xDDAD,INVALC,0xB765,0xE1D9,0xB768,0xB766,0xDDB9,0xDDB0, - 0xDDAC,INVALC,INVALC,0xDDA1,0xBA53,0xDDAF,0xB76D,0xDDA7, - INVALC,0xDDA6,INVALC,INVALC,INVALC,0xB767,0xB763,0xE1EE, - 0xDDB3,0xDDAE,INVALC,0xDDA2,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xE1E9,INVALC,0xE1DA,0xE1E5,INVALC, - 0xE1EC,0xBA51,0xB4AC,0xE1EA,0xBA4C,INVALC,INVALC,INVALC, - 0xBA4B,0xE1F1,INVALC,0xE1DB,0xE1E8,0xE1DC,0xE1E7,0xBA4F, - 0xE1EB,0xD962,INVALC,INVALC,INVALC,0xE1F2,0xE1E3,0xBA52, - 0xE5BA,0xBCAF,INVALC,0xE1F0,0xE1EF,0xBA54,0xE5AD,0xBCB0, - 0xE5AE,INVALC,0xE1DF,0xE1E0,0xE1DD,0xE1E2,0xE1DE,0xE1F3, - 0xBA4E,0xBCB1,0xBA50,0xBA55,INVALC,0xE1E1,INVALC,0xE1ED, - INVALC,INVALC,0xE1E6,INVALC,INVALC,0xE5B1,INVALC,0xBA4A, - 0xBCB4,0xE9AA,0xE5B6,0xE5B5,0xE5B7,INVALC,INVALC,0xE5B4, - 0xBCB5,INVALC,0xBCBB,0xBCB8,INVALC,0xBCB9,0xE5AF,0xE5B2, - 0xE5BC,0xBCC1,0xBCBF,INVALC,0xE5B3,0xD95A,0xBCB2,0xE5B9, - 0xE5B0,INVALC,0xBCC2,0xE5B8,0xBA4D,0xBCB7,0xE1E4,INVALC, - INVALC,0xBCBA,INVALC,0xBCBE,0xBCC0,0xBCBD,0xBCBC,INVALC, - 0xBCB6,0xE5BB,0xBCB3,0xBCC3,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xBED8,0xBED9,0xE9A9,0xBEE2,0xBEDF, - INVALC,0xBED6,0xBEDD,0xE9AB,0xBEDB,0xBED5,INVALC,0xBEDC, - INVALC,0xE9A8,0xC0BB,0xBED7,INVALC,0xBEDE,0xC0BA,0xE9A7, - 0xE9A6,INVALC,0xBEE0,INVALC,0xBEE1,INVALC,0xE9A5,0xE9A4, - 0xC0BC,0xE9AE,0xBEDA,0xE9AC,INVALC,INVALC,INVALC,INVALC, - 0xC0BD,INVALC,0xC0C2,0xECEA,0xECEC,INVALC,0xC0BF,INVALC, - 0xECED,0xECE9,INVALC,0xECEB,0xC0C0,0xC0C3,INVALC,0xECE8, - 0xC0BE,0xC0C1,0xC259,0xE9AD,0xC258,INVALC,INVALC,0xC25E, - 0xEFD4,INVALC,0xC25C,0xC25D,0xEFD7,0xEFD3,0xC25A,0xEFD1, - /* Block 102, Array index 0x2600 */ - 0xC36B,0xEFD5,INVALC,0xEFD6,0xEFD2,INVALC,0xC25B,0xF242, - INVALC,0xF245,INVALC,INVALC,0xF246,0xF244,0xF247,0xC36C, - 0xF243,INVALC,INVALC,0xF44E,0xC464,0xF44D,0xF44C,0xF44B, - 0xC463,0xC465,INVALC,0xF5CD,0xC4E2,0xC4E1,INVALC,INVALC, - 0xF6E1,0xF6E0,0xF6E3,0xC5CB,0xC575,0xF7DD,0xF6E2,INVALC, - INVALC,0xF7DC,0xC5CD,0xC5CC,0xC5F3,0xF8A9,0xF8EF,0xA4E4, - INVALC,INVALC,0xD972,0xE9AF,INVALC,INVALC,0xA6AC,0xCAF7, - 0xA7F1,0xA7EF,INVALC,0xA7F0,INVALC,0xCCC1,0xA9F1,0xAC46, - INVALC,0xCEE7,INVALC,0xCEE8,INVALC,0xAC47,0xD1CE,INVALC, - 0xAEC4,0xAEC5,0xD1CD,INVALC,INVALC,INVALC,INVALC,0xB1D3, - INVALC,0xB1CF,INVALC,0xD5A7,0xB1D6,0xB1D5,0xB1CE,0xB1D1, - 0xB1D4,0xB1D0,INVALC,INVALC,0xD976,0xB1CD,0xB4AF,INVALC, - INVALC,INVALC,0xB4B1,0xB4B2,0xD975,0xD978,0xB4B0,0xD973, - 0xD977,INVALC,0xD974,INVALC,0xB771,INVALC,INVALC,0xDDBC, - INVALC,INVALC,0xBA56,0xE1F4,0xBEE3,0xBCC4,0xE5BD,0xBCC5, - 0xBCC6,0xE5BF,0xE5BE,0xE5C0,0xE9B1,INVALC,INVALC,0xE9B0, - 0xECEF,0xECEE,0xC0C4,0xC0C5,0xF248,INVALC,INVALC,0xA4E5, - INVALC,INVALC,INVALC,INVALC,0xD979,INVALC,INVALC,INVALC, - 0xB4B4,0xB4B3,0xDDBD,INVALC,0xEFD8,0xC4E3,0xF7DE,0xA4E6, - INVALC,0xAEC6,INVALC,0xB1D8,0xB1D7,0xD97A,0xD97B,0xB772, - 0xE1F5,0xBA57,0xE9B2,INVALC,0xA4E7,0xA5B8,INVALC,0xA9F2, - 0xCCC2,INVALC,0xCEE9,0xAC48,0xB1D9,INVALC,0xD97C,0xB4B5, - 0xB773,INVALC,0xE5C1,0xE5C2,INVALC,INVALC,0xECF0,0xC25F, - 0xF8F0,0xA4E8,INVALC,0xCCC3,0xA9F3,0xAC49,INVALC,0xCEEA, - INVALC,0xAEC7,0xD1D2,0xD1D0,0xD1D1,0xAEC8,0xD1CF,INVALC, - INVALC,INVALC,INVALC,0xB1DB,0xB1DC,0xD5A8,0xB1DD,0xB1DA, - 0xD97D,INVALC,0xD97E,0xDDBE,INVALC,INVALC,0xBA59,0xBA58, - INVALC,INVALC,0xECF1,0xEFD9,INVALC,0xF24A,0xF249,0xF44F, - INVALC,0xC95E,0xAC4A,INVALC,INVALC,0xA4E9,0xA5B9,INVALC, - 0xA6AE,0xA6AD,INVALC,INVALC,0xA6AF,0xA6B0,0xC9EE,0xC9ED, - 0xCAF8,0xA7F2,0xCAFB,0xCAFA,0xCAF9,0xCAFC,INVALC,INVALC, - INVALC,INVALC,0xA9F4,0xCCC9,0xCCC5,0xCCCE,INVALC,INVALC, - /* Block 103, Array index 0x2700 */ - 0xA9FB,INVALC,0xA9F9,0xCCCA,0xCCC6,0xCCCD,0xA9F8,0xAA40, - 0xCCC8,0xCCC4,0xA9FE,0xCCCB,0xA9F7,0xCCCC,0xA9FA,0xA9FC, - 0xCCD0,0xCCCF,0xCCC7,0xA9F6,0xA9F5,0xA9FD,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xCEEF,0xCEF5,INVALC,0xAC50, - 0xAC4D,0xCEEC,0xCEF1,INVALC,0xAC53,0xAC4B,0xCEF0,0xAC4E, - 0xAC51,INVALC,INVALC,0xCEF3,INVALC,0xAC4C,0xCEF8,0xAC4F, - INVALC,0xAC52,0xCEED,0xCEF2,0xCEF6,0xCEEE,0xCEEB,INVALC, - INVALC,0xCEF7,0xCEF4,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xAED0,0xAEC9,0xAECC,INVALC,0xAECF,INVALC,0xD1D5, - INVALC,0xAECA,0xD1D3,INVALC,0xAECE,INVALC,INVALC,0xAECB, - INVALC,0xD1D6,0xAECD,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xD5AC,0xB1DF,0xD5AB,0xD5AD,0xB1DE,0xB1E3,0xD1D4, - INVALC,0xD5AA,0xD5AE,INVALC,0xB1E0,0xD5A9,0xB1E2,INVALC, - 0xB1E1,INVALC,0xD9A7,INVALC,0xD9A2,INVALC,0xB4B6,0xB4BA, - 0xB4B7,0xD9A5,0xD9A8,INVALC,0xB4B8,INVALC,0xB4B9,0xB4BE, - 0xDDC7,0xD9A6,0xB4BC,0xD9A3,0xD9A1,INVALC,0xB4BD,INVALC, - 0xD9A4,INVALC,INVALC,INVALC,0xB779,INVALC,0xDDBF,0xB776, - 0xB777,0xB775,0xDDC4,0xDDC3,0xDDC0,0xB77B,INVALC,INVALC, - 0xDDC2,0xB4BB,INVALC,INVALC,0xDDC6,0xDDC1,0xB778,0xB774, - 0xB77A,0xDDC5,INVALC,INVALC,INVALC,0xBA5C,INVALC,0xE1F8, - 0xE1F7,0xE1F6,0xBA5A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xBA5B,0xE5C5,0xE5C8,0xBCC8,INVALC,INVALC,0xBCC7,0xE5C9, - 0xE5C4,0xBCCA,0xE5C6,INVALC,0xBCC9,0xE5C3,INVALC,0xE5C7, - 0xBEE9,0xBEE6,0xE9BB,0xE9BA,INVALC,0xE9B9,0xE9B4,INVALC, - 0xE9B5,INVALC,INVALC,INVALC,0xBEE7,INVALC,0xBEE4,0xBEE8, - 0xE9B3,0xBEE5,0xE9B6,0xE9B7,0xE9BC,INVALC,INVALC,0xE9B8, - INVALC,INVALC,0xECF2,INVALC,INVALC,INVALC,0xC0C7,INVALC, - 0xEFDC,0xC0C6,0xEFDA,0xEFDB,0xC260,0xC36E,0xF24B,INVALC, - 0xC36D,INVALC,INVALC,0xF451,0xF452,INVALC,0xC466,INVALC, - 0xF450,0xC4E4,INVALC,0xF7DF,0xC5CE,0xF8AA,0xF8AB,INVALC, - 0xA4EA,INVALC,0xA6B1,0xA6B2,0xA7F3,INVALC,0xCCD1,0xAC54, - 0xAED1,0xB1E4,INVALC,INVALC,0xB0D2,INVALC,0xB4BF,0xB4C0, - /* Block 104, Array index 0x2800 */ - 0xB3CC,0xD9A9,INVALC,0xB77C,0xE1FA,0xE1F9,INVALC,INVALC, - 0xA4EB,0xA6B3,0xCCD2,0xAA42,INVALC,0xAA41,INVALC,0xCEF9, - 0xCEFA,INVALC,0xD1D7,0xD1D8,0xAED2,0xAED3,INVALC,0xAED4, - 0xD5AF,INVALC,INVALC,0xB1E6,INVALC,0xB4C2,INVALC,0xB4C1, - 0xDDC8,0xDF7A,0xE1FB,0xE9BD,INVALC,INVALC,0xC261,0xC467, - 0xA4EC,INVALC,0xA5BC,0xA5BD,0xA5BB,0xA5BE,0xA5BA,INVALC, - INVALC,0xA6B6,INVALC,0xC9F6,0xA6B5,0xA6B7,INVALC,INVALC, - 0xC9F1,0xC9F0,0xC9F3,0xC9F2,0xC9F5,0xA6B4,0xC9EF,0xC9F4, - INVALC,INVALC,INVALC,INVALC,INVALC,0xCAFD,0xA7FD,0xCAFE, - 0xCB43,0xA7FC,INVALC,0xCB47,0xCB42,0xCB45,0xA7F5,0xA7F6, - 0xA7F7,0xA7F8,INVALC,0xA840,INVALC,0xCB41,0xA7FA,0xA841, - INVALC,0xCB40,0xCB46,INVALC,0xA7F9,0xCB44,0xA7FB,0xA7F4, - 0xA7FE,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xAA57,INVALC,0xCCD4,0xAA43,INVALC,0xAA4D, - 0xAA4E,0xAA46,0xAA58,0xAA48,0xCCDC,0xAA53,0xCCD7,0xAA49, - 0xCCE6,0xCCE7,0xCCDF,0xCCD8,0xAA56,0xCCE4,0xAA51,0xAA4F, - INVALC,0xCCE5,INVALC,0xCCE3,0xCCDB,0xCCD3,0xCCDA,0xAA4A, - INVALC,0xAA50,INVALC,0xAA44,0xCCDE,0xCCDD,0xCCD5,INVALC, - 0xAA52,0xCCE1,0xCCD6,0xAA55,0xCCE8,0xAA45,INVALC,0xAA4C, - 0xCCD9,0xCCE2,0xAA54,INVALC,0xAA47,0xAA4B,INVALC,0xCCE0, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xCF5B,0xAC5C, - 0xAC69,INVALC,0xCF56,0xCF4C,0xAC62,0xCF4A,0xAC5B,0xCF45, - 0xAC65,0xCF52,0xCEFE,0xCF41,INVALC,INVALC,INVALC,INVALC, - 0xCF44,0xCEFB,0xCF51,0xCF61,0xAC60,0xCF46,0xCF58,INVALC, - 0xCEFD,0xCF5F,0xCF60,0xCF63,0xCF5A,0xCF4B,0xCF53,0xAC66, - 0xAC59,0xAC61,0xAC6D,0xAC56,0xAC58,INVALC,INVALC,INVALC, - 0xCF43,0xAC6A,0xAC63,0xCF5D,0xCF40,0xAC6C,0xAC67,0xCF49, - INVALC,INVALC,0xAC6B,0xCF50,0xCF48,0xAC64,0xCF5C,0xCF54, - INVALC,0xAC5E,0xCF62,0xCF47,0xAC5A,0xCF59,0xCF4F,0xAC5F, - 0xCF55,0xAC57,0xCEFC,0xAC68,0xAEE3,0xAC5D,0xCF4E,0xCF4D, - 0xCF42,INVALC,0xCF5E,INVALC,0xCF57,INVALC,INVALC,0xAC55, - /* Block 105, Array index 0x2900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xD1EC,0xAEEA,0xD1ED,INVALC,0xD1E1,0xAEDF, - 0xAEEB,INVALC,0xD1DA,INVALC,0xD1E3,0xD1EB,INVALC,0xD1D9, - 0xD1F4,0xAED5,INVALC,INVALC,INVALC,0xD1F3,0xD1EE,INVALC, - 0xD1EF,0xAEDD,0xAEE8,0xD1E5,INVALC,0xD1E6,0xD1F0,0xD1E7, - INVALC,0xD1E2,0xD1DC,0xD1DD,0xD1EA,0xD1E4,INVALC,INVALC, - 0xAED6,0xAEDA,0xD1F2,0xD1DE,0xAEE6,0xAEE2,INVALC,INVALC, - 0xAEE5,0xAEEC,0xAEDB,0xAEE7,0xD1E9,0xAEE9,0xAED8,INVALC, - 0xAED7,0xD1DB,INVALC,0xD1DF,0xAEE0,0xD1F1,0xD1E8,0xD1E0, - 0xAEE4,0xAEE1,INVALC,0xAED9,0xAEDC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xD5C4,INVALC,0xD5B4,0xD5B5,0xD5B9, - INVALC,0xD5C8,0xD5C5,INVALC,0xD5BE,0xD5BD,0xB1ED,0xD5C1, - 0xD5D0,0xD5B0,INVALC,0xD5D1,0xD5C3,0xD5D5,0xD5C9,0xB1EC, - 0xD5C7,0xB1E7,0xB1FC,0xB1F2,INVALC,0xB1F6,0xB1F5,0xD5B1, - INVALC,0xD5CE,0xD5D4,0xD5CC,0xD5D3,INVALC,INVALC,0xD5C0, - 0xD5B2,0xD5D2,0xD5C2,0xB1EA,0xB1F7,INVALC,0xD5CB,0xB1F0, - INVALC,INVALC,INVALC,0xD5CA,0xD5B3,0xB1F8,INVALC,0xB1FA, - 0xD5CD,0xB1FB,0xB1E9,0xD5BA,0xD5CF,INVALC,INVALC,0xB1EF, - 0xB1F9,0xD5BC,0xD5C6,0xD5B7,0xD5BB,0xB1F4,0xD5B6,0xB1E8, - 0xB1F1,0xB1EE,0xD5BF,0xAEDE,0xD9C0,0xB1EB,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xB1F3,INVALC,0xD9C3,0xD9D9, - 0xD9CE,0xB4D6,INVALC,0xB4D1,0xD9BD,0xB4D2,0xD9CD,INVALC, - 0xD9C6,0xD9D3,0xB4CE,0xD9AB,0xD9D5,0xB4C4,0xD9B3,0xB4C7, - 0xB4C6,INVALC,0xB4D7,INVALC,0xD9AD,0xD9CF,0xD9D0,0xB4C9, - 0xB4C5,0xD9BB,INVALC,0xB4D0,0xD9B6,INVALC,0xD9D1,0xB4CC, - 0xD9C9,0xD9D6,0xD9B0,0xD9B5,0xD9AF,INVALC,0xB4CB,0xD9C2, - 0xDDDE,0xD9B1,0xB4CF,0xD9BA,0xD9D2,0xB4CA,0xD9B7,0xD9B4, - 0xD9C5,0xB4CD,0xB4C3,0xB4D9,0xD9C8,0xD9C7,INVALC,INVALC, - /* Block 106, Array index 0x2A00 */ - INVALC,INVALC,INVALC,INVALC,0xD9AC,0xB4C8,0xD9D4,0xD9BC, - 0xD9BE,INVALC,0xD9CB,0xD9CA,0xD9AA,0xB4D3,0xB4D5,0xD9B2, - 0xD9B9,0xD9C1,0xB4D4,0xD9B8,0xD9C4,0xD9D7,INVALC,0xD9CC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xD9D8,INVALC,INVALC, - INVALC,INVALC,0xD9AE,INVALC,INVALC,INVALC,INVALC,0xDDF2, - 0xB7A6,INVALC,0xDDF0,0xDDDB,0xDDE0,0xDDD9,INVALC,0xDDEC, - 0xDDCB,0xDDD2,INVALC,0xDDEA,0xDDF4,0xDDDC,INVALC,0xDDCF, - 0xDDE2,0xDDE7,0xDDD3,INVALC,0xDDE4,0xDDD0,INVALC,INVALC, - 0xDDD7,0xDDD8,0xB7A8,0xDDEB,0xDDE9,INVALC,0xDDCC,0xDDEE, - INVALC,0xDDEF,0xDDF1,0xB7AC,0xB7A4,INVALC,0xD5B8,0xDDD4, - 0xDDE6,0xDDD5,0xB7A1,0xB7B1,0xDDED,0xB7AF,0xB7AB,0xDDCA, - 0xB7A3,INVALC,0xDDCD,0xB7B0,INVALC,0xDDDD,0xDDC9,INVALC, - 0xB7A9,0xDDE1,0xDDD1,0xB7AA,0xDDDA,0xB77E,0xB4D8,0xDDE3, - 0xD9BF,0xDDCE,INVALC,INVALC,0xDDE8,0xB7A5,0xDDE5,0xB7A2, - 0xDDDF,0xB7AD,0xDDD6,0xDDF3,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xB7A7,0xDEC6,INVALC,INVALC,0xB7AE,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xE24A,0xE248,INVALC, - 0xE25E,0xE246,INVALC,0xE258,0xB77D,0xBA5F,0xE242,0xE25D, - INVALC,0xE247,0xE255,0xBA64,0xBA5D,INVALC,0xE25B,INVALC, - 0xE240,0xE25A,INVALC,0xBA6F,0xE251,0xE261,0xBA6D,0xE249, - 0xBA5E,0xE24B,0xE259,0xBA67,0xE244,0xBA6B,0xBA61,0xE24D, - 0xE243,0xE1FC,INVALC,0xE257,0xBA68,0xE260,0xE1FD,0xBA65, - INVALC,0xE253,INVALC,0xBA66,0xE245,0xE250,0xE24C,0xE24E, - INVALC,0xBA60,0xE25F,0xBA6E,0xE24F,INVALC,0xE262,INVALC, - INVALC,0xE1FE,0xE254,0xBA63,0xBA6C,0xBA6A,0xE241,0xE256, - 0xBA69,INVALC,INVALC,0xBA62,0xE252,INVALC,INVALC,INVALC, - INVALC,0xE25C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xE5D5,INVALC,0xE5D1,0xE5CD,0xE5E1,0xE5DE, - 0xBCCD,INVALC,INVALC,0xE5E5,0xE5D4,0xBCD8,0xE5DB,INVALC, - INVALC,0xE5D0,0xE5DA,0xBCD5,0xE5EE,INVALC,0xE5EB,0xE5DD, - 0xE5CE,INVALC,INVALC,0xE5E2,0xE5E4,0xBCD1,0xE5D8,0xE5D3, - /* Block 107, Array index 0x2B00 */ - 0xE5CA,0xBCCE,0xBCD6,INVALC,0xE5E7,0xBCD7,0xE5CB,0xE5ED, - 0xE5E0,0xE5E6,0xBCD4,INVALC,INVALC,0xE5E3,INVALC,0xE5EA, - INVALC,0xBCD9,INVALC,0xBCD3,0xE5DC,0xE5CF,0xE5EF,0xE5CC, - 0xE5E8,0xBCD0,INVALC,0xE5D6,INVALC,0xE5D7,0xBCCF,0xBCCC, - 0xE5D2,0xBCD2,INVALC,0xBCCB,INVALC,0xE5E9,0xE5EC,0xE5D9, - 0xE9CA,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xE9C2,INVALC,0xE9BE,0xBEF6,INVALC,INVALC, - 0xBEEB,0xBEF0,0xBEEC,0xE9CC,0xE9D7,0xBEEA,0xE9C4,0xE9CD, - 0xE5DF,0xE9CE,INVALC,INVALC,0xBEF1,INVALC,0xE9DD,0xBEF5, - 0xBEF8,0xE9C0,INVALC,0xBEF4,INVALC,0xE9DB,0xE9DC,0xE9D2, - 0xE9D1,0xE9C9,INVALC,INVALC,0xE9D3,0xE9DA,0xE9D9,INVALC, - 0xBEEF,0xBEED,0xE9CB,0xE9C8,INVALC,0xE9C5,0xE9D8,0xBEF7, - 0xE9D6,0xBEF3,0xBEF2,INVALC,0xE9D0,INVALC,0xE9BF,0xE9C1, - 0xE9C3,0xE9D5,0xE9CF,0xBEEE,INVALC,0xE9C6,INVALC,0xE9D4, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xE9C7,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xC0CF,0xED45, - 0xC0C8,0xECF5,INVALC,0xED41,0xC0CA,0xED48,INVALC,0xECFC, - INVALC,0xECF7,INVALC,INVALC,0xED49,0xECF3,0xECFE,INVALC, - 0xC0D1,0xED44,0xED4A,0xECFD,0xC0C9,0xED40,0xECF4,0xC0D0, - INVALC,INVALC,0xED47,0xECF9,0xC0CC,INVALC,0xECFB,0xECF8, - 0xC0D2,0xECFA,0xC0CB,0xC0CE,0xED43,0xECF6,0xED46,INVALC, - 0xED42,INVALC,INVALC,INVALC,0xC263,0xEFE7,0xC268,0xC269, - INVALC,INVALC,INVALC,0xC262,0xEFE6,INVALC,0xEFE3,0xEFE4, - 0xC266,0xEFDE,0xEFE2,0xC265,INVALC,0xEFDF,INVALC,INVALC, - INVALC,INVALC,0xC267,0xC264,INVALC,0xEFDD,0xEFE1,0xEFE5, - INVALC,INVALC,INVALC,0xF251,0xF24E,0xF257,INVALC,0xF256, - 0xF254,0xF24F,INVALC,0xC372,INVALC,INVALC,INVALC,INVALC, - INVALC,0xF250,0xC371,0xC0CD,0xF253,0xC370,0xF258,0xF252, - 0xF24D,0xEFE0,INVALC,INVALC,INVALC,0xC36F,INVALC,0xF24C, - 0xF456,INVALC,0xF455,0xF255,0xC468,INVALC,0xF459,0xF45A, - 0xF454,0xF458,INVALC,0xF453,INVALC,INVALC,INVALC,INVALC, - 0xF5D1,0xF457,0xC4E7,0xC4E5,0xF5CF,INVALC,INVALC,INVALC, - /* Block 108, Array index 0x2C00 */ - 0xF5D2,INVALC,0xF5CE,0xF5D0,0xC4E6,INVALC,INVALC,INVALC, - 0xF6E5,0xF6E6,0xC576,0xF6E4,INVALC,INVALC,INVALC,0xF7E2, - 0xC5CF,0xF7E0,0xF7E1,0xF8AC,INVALC,INVALC,0xC656,0xF8F3, - 0xF8F1,0xF8F2,0xF8F4,INVALC,INVALC,INVALC,0xF9BB,INVALC, - 0xA4ED,0xA6B8,INVALC,0xAA59,INVALC,0xCCE9,INVALC,INVALC, - 0xCF64,INVALC,INVALC,INVALC,0xD1F5,0xD1F7,INVALC,0xD1F6, - INVALC,0xD1F8,0xB1FD,0xD5D7,0xD1F9,INVALC,0xD5D6,0xD5D8, - 0xD5D9,0xD9DA,0xB4DB,0xD9DB,0xD9DD,0xB4DC,0xB4DA,0xD9DC, - INVALC,0xDDFA,0xDDF8,0xDDF7,INVALC,0xDDF6,0xDDF5,0xB7B2, - 0xDDF9,0xBA70,0xE263,0xE265,0xBA71,0xE264,0xBCDB,INVALC, - 0xBCDA,0xE5F0,INVALC,INVALC,0xE9DF,0xE9DE,0xE9E0,INVALC, - INVALC,0xBEF9,INVALC,0xED4B,0xC0D3,INVALC,0xEFE8,0xC26A, - 0xF259,0xC577,0xA4EE,0xA5BF,0xA6B9,0xA842,0xAA5A,0xAA5B, - INVALC,INVALC,0xAC6E,INVALC,INVALC,0xD1FA,INVALC,INVALC, - INVALC,INVALC,0xB7B3,INVALC,INVALC,INVALC,0xE6D1,0xBEFA, - 0xC26B,0xA4EF,INVALC,0xA6BA,INVALC,INVALC,0xCCEB,0xAA5C, - 0xCCEA,INVALC,0xCF65,0xAC6F,0xCF66,INVALC,0xAC70,INVALC, - 0xD1FC,0xAEEE,0xAEED,INVALC,0xD5DE,0xD5DC,0xD5DD,0xD5DB, - INVALC,0xD5DA,INVALC,INVALC,0xD9DE,0xD9E1,0xB4DE,0xD9DF, - 0xB4DD,0xD9E0,INVALC,0xDDFB,INVALC,INVALC,0xE266,0xE267, - 0xE268,INVALC,0xE5F3,0xE5F2,0xBCDC,0xE5F1,0xE5F4,0xE9E1, - INVALC,INVALC,0xE9E2,0xE9E3,INVALC,0xED4C,0xC0D4,0xC26C, - 0xF25A,INVALC,0xC4E8,0xC95F,INVALC,0xAC71,0xCF67,0xAEEF, - INVALC,INVALC,0xB1FE,INVALC,0xB4DF,0xD9E2,INVALC,0xB7B5, - 0xB7B4,INVALC,INVALC,0xE269,0xE26A,0xBCDD,0xBCDE,0xE9E5, - 0xE9E4,0xEFE9,0xF7E3,0xA4F0,0xC960,0xA5C0,INVALC,0xA843, - 0xCB48,INVALC,0xAC72,0xB7B6,0xA4F1,INVALC,0xCF68,0xAC73, - 0xCF69,INVALC,0xC0D5,0xA4F2,INVALC,INVALC,0xCCEC,INVALC, - 0xCF6A,INVALC,0xD242,0xD241,0xD1FE,INVALC,0xD1FD,0xD243, - 0xD240,INVALC,INVALC,0xB240,0xB241,INVALC,INVALC,0xB4E0, - 0xD9E3,INVALC,0xD9E4,0xD9E5,INVALC,INVALC,INVALC,0xDE41, - 0xDE42,0xDE40,INVALC,0xDDFD,0xDDFE,0xB7B7,0xE26B,0xE5F7, - /* Block 109, Array index 0x2D00 */ - 0xE5F6,0xE5F5,0xE5F8,0xE9E7,0xE9E6,0xBEFB,0xE9E8,INVALC, - 0xC0D6,0xED4D,INVALC,0xEFEA,0xF25B,0xF6E7,INVALC,0xA4F3, - 0xA5C2,0xA5C1,INVALC,0xAA5D,0xC961,0xC97E,0xA6BB,INVALC, - 0xC9F7,0xCB49,0xCB4A,0xAA5E,INVALC,0xCCED,INVALC,0xAC74, - 0xCF6B,0xCF6C,INVALC,0xAEF0,0xAEF4,0xD244,0xAEF3,0xAEF1, - 0xAEF2,INVALC,0xD5DF,0xB242,0xB4E3,INVALC,0xB4E1,0xB4E2, - 0xD9E6,INVALC,INVALC,0xBA72,0xA4F4,INVALC,0xC9A1,INVALC, - 0xA5C3,INVALC,INVALC,0xC9A4,INVALC,INVALC,0xA5C6,0xC9A3, - 0xA5C5,0xA5C4,0xA844,0xC9A2,INVALC,INVALC,0xC9F8,INVALC, - INVALC,INVALC,0xC9FC,0xC9FE,0xCA40,0xA6C5,0xA6C6,0xC9FB, - 0xA6C1,INVALC,0xC9F9,INVALC,0xC9FD,0xA6C2,INVALC,0xA6BD, - INVALC,0xA6BE,INVALC,0xA6C4,0xC9FA,0xA6BC,0xA845,0xA6BF, - 0xA6C0,0xA6C3,INVALC,INVALC,INVALC,0xCB5B,0xCB59,0xCB4C, - 0xA851,0xCB53,0xA84C,0xCB4D,INVALC,0xCB55,INVALC,0xCB52, - 0xA84F,0xCB51,0xA856,0xCB5A,0xA858,INVALC,0xA85A,INVALC, - 0xCB4B,INVALC,0xA84D,0xCB5C,INVALC,0xA854,0xA857,INVALC, - 0xCD45,0xA847,0xA85E,0xA855,0xCB4E,0xA84A,0xA859,0xCB56, - 0xA848,0xA849,0xCD43,0xCB4F,0xA850,0xA85B,0xCB5D,0xCB50, - 0xA84E,INVALC,0xA853,0xCCEE,0xA85C,0xCB57,0xA852,INVALC, - 0xA85D,0xA846,0xCB54,0xA84B,0xCB58,0xCD44,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xAA6A,0xAA7A,0xCCF5,0xAA71,INVALC, - 0xCD4B,0xAA62,INVALC,0xAA65,0xCD42,INVALC,0xCCF3,0xCCF7, - 0xAA6D,0xAA6F,0xCCFA,0xAA76,0xAA68,0xAA66,0xAA67,0xAA75, - 0xCD47,0xAA70,0xCCF9,0xCCFB,0xAA6E,0xAA73,0xCCFC,0xCD4A, - INVALC,0xAC75,0xAA79,INVALC,0xAA63,0xCD49,INVALC,0xCD4D, - 0xCCF8,0xCD4F,0xCD40,0xAA6C,0xCCF4,0xAA6B,0xAA7D,0xAA72, - INVALC,0xCCF2,0xCF75,0xAA78,0xAA7C,0xCD41,0xCD46,INVALC, - 0xAA7E,0xAA77,0xAA69,0xAA5F,INVALC,0xAA64,INVALC,0xCCF6, - 0xAA60,0xCD4E,INVALC,0xCCF0,0xCCEF,0xCCFD,0xCCF1,0xAA7B, - 0xAEF5,0xAA74,0xCCFE,0xAA61,INVALC,0xACA6,INVALC,INVALC, - INVALC,0xCD4C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 110, Array index 0x2E00 */ - 0xCF7C,0xCFA1,INVALC,0xCFA4,0xCF77,INVALC,INVALC,0xCFA7, - 0xCFAA,0xCFAC,0xCF74,0xAC76,0xAC7B,0xD249,0xACAD,0xCFA5, - 0xCFAD,0xCF7B,0xCF73,INVALC,INVALC,INVALC,0xD264,0xAC7E, - 0xCFA2,0xCF78,0xCF7A,0xACA5,INVALC,0xCF7D,0xAC7D,0xCF70, - 0xCFA8,INVALC,0xCFAB,INVALC,INVALC,0xAC7A,INVALC,0xACA8, - 0xCF6D,0xACAA,0xAC78,0xACAE,0xCFA9,0xCF6F,0xACAB,0xD25E, - 0xCD48,0xAC7C,0xAC77,0xCF76,0xCF6E,0xACAC,0xACA4,0xCFA3, - 0xACA9,0xACA7,0xCF79,0xACA1,0xCF71,0xACA2,0xACA3,0xCF72, - 0xCFA6,0xAC79,0xCF7E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xD24C,0xAEFD,0xAF43,INVALC,INVALC,INVALC,0xD255,0xD25B, - 0xD257,0xD24A,0xD24D,0xD246,0xD247,0xAF4A,0xAEFA,0xD256, - 0xD25F,0xAF45,0xAEF6,INVALC,0xAF40,0xD24E,0xAF42,0xD24F, - 0xD259,INVALC,INVALC,INVALC,0xAF44,0xD268,0xD248,0xAEFC, - 0xAEFB,0xAF48,0xD245,0xD266,0xD25A,0xD267,0xD261,0xD253, - 0xD262,INVALC,0xD25C,0xD265,0xD263,0xAF49,0xD254,0xAEF9, - 0xAEF8,0xAF41,0xAF47,0xD260,0xAF46,0xD251,0xB243,INVALC, - 0xD269,0xD250,0xD24B,0xAEFE,0xAF4B,0xAEF7,INVALC,0xD258, - 0xD25D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xB265,0xD5E1,0xD5E5,INVALC,0xB252,0xB250, - INVALC,INVALC,0xB247,0xD5E3,0xD5E2,0xB25B,INVALC,0xD5E8, - 0xB255,INVALC,0xD5FA,0xD647,0xB244,0xD5F7,0xD5F0,0xB267, - 0xD5E0,INVALC,0xD5FC,INVALC,0xB264,0xB258,0xB263,0xB24E, - 0xD5EC,0xD5FE,0xD5F6,0xB24F,0xB249,0xD645,INVALC,0xD5FD, - 0xD640,0xB251,0xB259,0xD642,0xD5EA,0xD5FB,0xD5EF,0xD644, - 0xB25E,0xB246,0xB25C,0xD5F4,0xD5F2,0xD5F3,0xB253,0xD5EE, - 0xD5ED,0xB248,0xD5E7,0xD646,0xB24A,0xD5F1,0xB268,INVALC, - 0xB262,0xD5E6,0xB25F,0xB25D,0xB266,0xD5F8,0xB261,0xD252, - 0xD5F9,0xB260,0xD641,0xB245,0xD5F5,0xB257,0xD5E9,0xB256, - INVALC,0xB254,0xB24C,0xB24B,0xD9E7,0xD643,INVALC,INVALC, - /* Block 111, Array index 0x2F00 */ - 0xD5EB,INVALC,INVALC,0xD9FC,INVALC,0xB24D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xB541,0xB25A,0xB4EE,0xD9F6,0xB4FC,INVALC,0xD9EA, - 0xB4EB,0xB4E7,0xDA49,0xB4ED,0xB4F1,0xB4EC,0xB4F5,0xDA4D, - 0xDA44,INVALC,INVALC,0xD9F1,0xB4FA,0xB4F4,0xD9FD,0xB4E4, - 0xDA4A,0xDA43,0xB4E8,0xD9F7,0xB4F7,0xDA55,0xDA56,INVALC, - 0xB4E5,0xDA48,0xB4F9,0xD9FB,0xD9ED,0xD9EE,0xB4FD,0xD9F2, - 0xD9F9,0xD9F3,INVALC,0xB4FB,0xB544,0xD9EF,0xD9E8,0xD9E9, - INVALC,0xD9EB,0xB4EA,0xD9F8,INVALC,0xB4F8,0xB542,INVALC, - INVALC,0xD9FA,0xDA53,0xDA4B,0xB4E6,0xDA51,0xB4F2,INVALC, - 0xB4F0,INVALC,0xDA57,0xB4EF,0xDA41,0xD9F4,0xD9FE,0xB547, - 0xDA45,0xDA42,0xD9F0,0xB543,0xDA4F,0xDA4C,0xDA54,0xB4E9, - 0xDA40,0xB546,INVALC,0xDA47,INVALC,INVALC,0xB4F3,0xB4F6, - INVALC,0xDA46,0xB545,0xD9F5,0xD5E4,INVALC,INVALC,0xDA50, - 0xDA4E,0xDA52,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xD9EC,0xB540,INVALC,INVALC,INVALC,0xDE61,0xDE60,0xDE46, - 0xB7BD,INVALC,0xDE5F,0xDE49,0xDE4A,INVALC,0xB7C7,0xDE68, - 0xB7C2,0xDE5E,INVALC,0xDE43,0xB7C8,0xB7BE,0xDE52,0xDE48, - 0xDE4B,0xDE63,0xB7B8,0xDE6A,0xDE62,0xB7C1,0xDE57,0xB7CC, - INVALC,INVALC,0xB7CB,0xB7C5,INVALC,INVALC,0xDE69,0xB7B9, - 0xDE55,0xDE4C,0xDE59,0xDE65,0xB7CD,INVALC,0xB7BB,0xDE54, - INVALC,0xDE4D,0xB7C4,INVALC,0xB7C3,0xDE50,0xDE5A,0xDE64, - 0xDE47,0xDE51,0xB7BC,0xDE5B,0xB7C9,0xB7C0,0xDE4E,0xB7BF, - 0xDE45,0xDE53,0xDE67,0xB4FE,0xBAB0,0xDE56,0xE26C,0xDE58, - 0xDE66,0xB7C6,0xDE4F,0xB7BA,0xB7CA,0xBCF0,0xDE44,INVALC, - 0xDE5D,INVALC,INVALC,INVALC,0xDE5C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xE2AA,0xBAAD,0xE27D,0xE2A4,0xBAA2, - INVALC,0xE26E,0xBAAF,INVALC,0xBA77,0xE26D,0xE2B0,0xBAB1, - 0xE271,0xE2A3,INVALC,0xE273,0xE2B3,0xE2AF,0xBA75,0xBAA1, - /* Block 112, Array index 0x3000 */ - 0xE653,0xBAAE,0xBA7D,0xE26F,INVALC,0xE2AE,0xBAA3,0xE2AB, - 0xE2B8,0xE275,0xE27E,INVALC,INVALC,0xE2B6,0xE2AC,0xBA7C, - INVALC,INVALC,0xE27C,0xBA76,0xBA74,0xBAA8,INVALC,INVALC, - 0xE27A,0xE277,0xE278,INVALC,0xE2B2,INVALC,0xE2B7,0xE2B5, - 0xBA7A,0xE2B9,0xBA7E,0xBAA7,INVALC,0xE270,0xE5FA,0xE279, - INVALC,0xBA78,0xBAAC,0xBAA9,0xBA7B,0xE2A5,0xE274,0xBAAA, - 0xE2A7,0xBAA4,0xBAA6,0xBA73,INVALC,0xE2A9,0xE2A1,0xE272, - 0xBAA5,0xE2B1,0xE2B4,0xE27B,0xE2A8,INVALC,0xBA79,0xBCDF, - 0xE2A6,0xE5F9,INVALC,0xE2AD,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xE276,0xE644, - 0xE64E,0xBCE2,0xE64D,0xE659,0xBCE4,0xE64B,INVALC,0xE64F, - 0xBCEF,INVALC,0xE646,0xBCE7,INVALC,0xE652,0xE9F0,0xBCF3, - 0xBCF2,0xE654,0xE643,0xE65E,0xBCED,INVALC,0xBCE3,0xE657, - INVALC,0xE65B,0xE660,0xE655,0xE649,0xBCE6,0xBCE9,0xBCF1, - 0xBCEC,INVALC,0xE64C,0xE2A2,INVALC,INVALC,0xE648,0xE65F, - 0xBCE8,INVALC,0xBCEB,0xE661,0xBCE0,0xE656,0xE5FB,0xE65C, - 0xC0DF,INVALC,0xE64A,INVALC,0xBCE1,0xE645,0xBCE5,0xE5FC, - 0xBAAB,0xE641,INVALC,0xE65A,0xE642,0xE640,0xBCEA,INVALC, - 0xE658,INVALC,0xE5FE,0xE651,0xE650,0xE65D,0xE647,0xBCEE, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xE9F3,INVALC, - 0xBF49,0xBEFE,0xEA40,0xE9EB,0xBF41,0xE9F7,0xBF48,0xBF43, - 0xE9F5,0xED4F,0xE9FB,0xEA42,0xE9FA,0xE9E9,0xE9F8,0xEA44, - 0xEA46,0xBEFD,0xEA45,0xBF44,0xBF4A,INVALC,0xBF47,INVALC, - 0xE9FE,0xBF46,0xE9F9,INVALC,0xE9ED,0xE9F2,INVALC,0xE9FD, - 0xBF45,0xBF42,0xBEFC,0xBF40,0xE9F1,INVALC,0xE5FD,0xE9EC, - 0xE9EF,0xEA41,0xE9F4,0xE9EA,0xED4E,0xEA43,0xE9EE,0xE9FC, - INVALC,INVALC,INVALC,INVALC,0xED51,0xC0E3,INVALC,INVALC, - 0xC0D7,INVALC,INVALC,0xC0DB,0xED53,0xED59,0xED57,0xC0D9, - 0xC0DA,0xC0E1,0xED5A,0xED52,0xC0DC,INVALC,0xED56,0xED55, - 0xED5B,0xC0E2,INVALC,0xC0DD,0xC0E0,0xED54,0xC0E4,0xC0DE, - 0xC0E5,0xC0D8,0xED58,INVALC,0xED50,INVALC,INVALC,0xEFF7, - INVALC,INVALC,0xC271,0xEFF4,0xEFF6,INVALC,0xC26F,0xEFF2, - /* Block 113, Array index 0x3100 */ - 0xEFF3,0xEFEE,INVALC,INVALC,0xE9F6,0xEFEF,0xC270,0xEFEB, - INVALC,0xC26D,0xEFF8,0xC26E,0xEFEC,0xEFED,0xEFF1,0xC273, - INVALC,0xC272,INVALC,INVALC,0xEFF0,0xC378,0xF25F,0xF265, - 0xC379,0xF25C,0xC376,0xC373,0xF267,0xC377,INVALC,0xC374, - 0xF25E,0xF261,0xF262,0xF263,0xF266,INVALC,0xEFF5,0xF25D, - 0xC375,0xF264,0xF268,0xF260,INVALC,INVALC,INVALC,0xF45D, - 0xC46A,0xF460,0xC46B,0xF468,0xF45F,0xF45C,INVALC,0xF45E, - 0xF462,0xF465,0xF464,0xF467,0xF45B,INVALC,0xC469,0xF463, - 0xF466,0xF469,0xF461,0xF5D3,0xF5D4,0xF5D8,0xF5D9,INVALC, - 0xF5D6,0xF5D7,0xF5D5,INVALC,0xC4E9,INVALC,INVALC,INVALC, - INVALC,0xC578,0xF6EB,INVALC,INVALC,0xF6E8,0xF6E9,0xF6EA, - 0xC579,INVALC,0xF7E5,0xF7E4,INVALC,0xF8AF,0xC5F4,0xF8AD, - 0xF8B0,0xF8AE,0xF8F5,0xC657,0xC665,0xF9A3,0xF96C,INVALC, - 0xF9A2,0xF9D0,0xF9D1,0xA4F5,INVALC,INVALC,INVALC,INVALC, - 0xA6C7,0xCA41,INVALC,INVALC,0xCB5E,INVALC,0xA85F,INVALC, - 0xA862,INVALC,0xCB5F,INVALC,0xA860,0xA861,INVALC,INVALC, - INVALC,INVALC,0xCD58,0xCD5A,0xCD55,0xCD52,0xCD54,INVALC, - INVALC,INVALC,0xAAA4,INVALC,INVALC,INVALC,0xAAA2,INVALC, - INVALC,0xCD56,0xAAA3,0xCD53,0xCD50,0xAAA1,0xCD57,INVALC, - 0xCD51,0xAAA5,0xCD59,INVALC,INVALC,INVALC,INVALC,0xCFAF, - INVALC,0xCFB3,INVALC,INVALC,0xACB7,INVALC,INVALC,INVALC, - INVALC,0xCFB6,INVALC,0xACAF,0xACB2,0xACB4,0xACB6,0xACB3, - 0xCFB2,0xCFB1,INVALC,0xACB1,0xCFB4,0xCFB5,INVALC,0xCFAE, - 0xACB5,INVALC,0xACB0,INVALC,INVALC,INVALC,0xCFB0,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xD277,0xD278,0xD279, - 0xAF50,INVALC,0xAF4C,0xD26E,INVALC,0xD276,0xD27B,0xAF51, - INVALC,0xD26C,0xD272,0xD26B,0xD275,INVALC,INVALC,0xD271, - 0xAF4D,0xAF4F,0xD27A,INVALC,0xD26A,0xD26D,0xD273,INVALC, - 0xD274,0xD27C,0xD270,INVALC,0xAF4E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xB26D, - 0xD64E,INVALC,INVALC,0xD650,0xD64C,INVALC,0xD658,0xD64A, - 0xD657,0xB269,0xD648,0xDA5B,0xD652,0xB26C,INVALC,0xD653, - /* Block 114, Array index 0x3200 */ - 0xD656,INVALC,0xD65A,INVALC,0xD64F,INVALC,0xD654,INVALC, - INVALC,0xB26A,0xB26B,0xD659,0xD64D,0xD649,0xD65B,INVALC, - 0xD651,INVALC,INVALC,0xD655,INVALC,INVALC,INVALC,0xD64B, - INVALC,0xB548,0xB549,0xDA65,0xB54F,INVALC,0xDA59,0xDA62, - 0xDA58,0xB54C,0xDA60,0xDA5E,INVALC,0xDA5F,0xB54A,INVALC, - 0xDA63,INVALC,INVALC,INVALC,INVALC,INVALC,0xDA5C,0xDA5A, - 0xB54B,0xDA5D,0xDA61,INVALC,INVALC,INVALC,0xB54D,INVALC, - INVALC,INVALC,0xDA64,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xDE70,0xDE77,0xDE79,0xDEA1,INVALC,0xB7DA,0xDE6B, - INVALC,0xB7D2,INVALC,0xDE7A,0xB7D7,0xDEA2,0xB7CE,INVALC, - 0xDE7D,INVALC,0xDE6D,0xDE7E,0xDE6C,INVALC,0xB7DC,INVALC, - 0xDE78,0xB7CF,0xDEA3,INVALC,0xB7D4,0xDE71,0xB7D9,0xDE7C, - 0xDE6F,0xDE76,0xDE72,0xDE6E,0xB7D1,0xB7D8,0xB7D6,0xB7D3, - 0xB7DB,0xB7D0,0xDE75,INVALC,0xB7D5,INVALC,0xB54E,INVALC, - 0xDE7B,INVALC,0xDE73,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xDE74,INVALC,INVALC,0xE2C1,INVALC,0xBAB4,INVALC,INVALC, - 0xE2BD,0xE2C3,0xE2BF,INVALC,0xBAB6,0xE2BE,0xE2C2,0xE2BA, - INVALC,0xE2BC,0xBAB5,INVALC,INVALC,INVALC,INVALC,0xE2C0, - 0xE2BB,INVALC,0xBAB7,INVALC,0xBAB2,INVALC,INVALC,0xE2C4, - INVALC,0xBAB3,0xE667,0xE664,0xE670,0xE66A,0xE66C,0xBCF4, - 0xE666,0xE66E,INVALC,INVALC,0xE66D,0xE66B,INVALC,0xE671, - 0xBCF7,0xE668,0xE66F,INVALC,0xBCF5,INVALC,INVALC,0xE663, - 0xE665,0xBCF6,0xE662,0xE672,INVALC,0xE669,INVALC,INVALC, - 0xEA4A,0xBF51,INVALC,INVALC,0xEA55,0xEA53,0xBF4B,0xEA49, - 0xEA4C,0xEA4D,0xEA48,0xBF55,0xBF56,0xEA47,0xEA56,0xEA51, - 0xBF4F,0xBF4C,0xEA50,0xEA4E,INVALC,INVALC,0xBF52,0xEA52, - 0xBF4D,INVALC,0xBF4E,INVALC,0xEA4F,0xBF50,0xEA4B,INVALC, - 0xEA54,0xBF53,0xEA57,0xEA58,0xBF54,INVALC,INVALC,0xC0E7, - 0xC0EE,0xED5C,0xED62,INVALC,0xED60,0xC0EA,0xC0E9,0xC0E6, - 0xED5E,INVALC,INVALC,INVALC,0xC0EC,0xC0EB,0xC0E8,INVALC, - 0xED61,0xED5D,0xED5F,INVALC,0xC0ED,INVALC,INVALC,INVALC, - 0xC277,0xEFFB,INVALC,0xC274,0xC275,0xEFFD,0xC276,0xEFFA, - /* Block 115, Array index 0x3300 */ - INVALC,0xEFF9,0xF26C,0xEFFC,INVALC,0xF26D,0xC37A,0xF26B, - INVALC,INVALC,0xF26A,INVALC,0xF269,0xC37B,INVALC,INVALC, - 0xC46C,INVALC,INVALC,0xF46A,0xF46B,INVALC,INVALC,INVALC, - INVALC,0xF5DC,0xF5DB,0xC4EA,INVALC,0xF5DA,0xF6EC,0xF6ED, - INVALC,INVALC,0xF7E6,0xF8B1,INVALC,INVALC,0xF8F6,0xF9BC, - 0xC679,0xF9C6,0xA4F6,INVALC,0xAAA6,0xAAA7,INVALC,INVALC, - 0xACB8,INVALC,INVALC,INVALC,INVALC,0xC0EF,0xA4F7,INVALC, - 0xAAA8,0xAF52,0xB7DD,0xA4F8,INVALC,0xB26E,0xBAB8,0xC962, - INVALC,0xCFB7,0xD27D,INVALC,0xE2C5,INVALC,0xC0F0,0xA4F9, - 0xAAA9,0xCFB8,0xCFB9,0xDA66,0xB550,INVALC,INVALC,0xDEA4, - INVALC,INVALC,0xB7DE,0xE2C6,INVALC,INVALC,0xBCF8,INVALC, - 0xC37C,0xA4FA,0xDA67,0xA4FB,INVALC,0xA6C9,0xCA42,0xA6C8, - 0xA865,0xA864,0xA863,0xCB60,INVALC,INVALC,INVALC,0xAAAA, - INVALC,0xAAAB,0xCD5B,INVALC,0xCFBA,INVALC,0xCFBD,0xACBA, - 0xCFBB,INVALC,0xACB9,0xCFBC,0xACBB,INVALC,0xD2A2,0xD2A1, - 0xD27E,0xAF53,INVALC,0xD65D,0xD65E,0xB26F,0xD65C,0xD65F, - 0xB552,0xB270,INVALC,INVALC,0xB551,0xDA6B,0xDA6A,INVALC, - 0xDA68,0xDA69,INVALC,0xDA6C,0xDEA6,0xDEA5,0xDEA9,INVALC, - 0xDEA8,0xDEA7,0xBAB9,0xE2C9,INVALC,0xE2C8,0xBABA,0xE2C7, - 0xE673,INVALC,0xE674,0xBCF9,INVALC,0xEA59,0xEA5A,INVALC, - INVALC,0xF272,0xC37D,0xF271,0xF270,0xF26E,0xF26F,0xC4EB, - 0xF46C,0xF6EE,0xF8F7,INVALC,0xA4FC,INVALC,0xC9A5,0xA5C7, - 0xC9A6,INVALC,INVALC,INVALC,0xCA43,0xCA44,INVALC,INVALC, - INVALC,INVALC,0xCB66,INVALC,INVALC,0xCB62,INVALC,0xCB61, - 0xAAAC,0xCB65,0xA867,0xCB63,0xA866,0xCB67,0xCB64,INVALC, - INVALC,0xCD5F,0xCFBE,0xCD5D,0xCD64,INVALC,0xAAAD,INVALC, - 0xAAB0,0xCD65,0xCD61,INVALC,0xCD62,INVALC,0xCD5C,0xAAAF, - 0xCD5E,0xAAAE,0xCD63,INVALC,0xCD60,INVALC,INVALC,0xCFC2, - 0xACBD,0xACBE,INVALC,0xCFC5,0xCFBF,INVALC,0xCFC4,INVALC, - 0xCFC0,0xACBC,0xCFC3,0xCFC1,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xD2A8,0xD2A5,INVALC,0xD2A7,0xAF58, - 0xAF57,0xAF55,0xD2A4,0xD2A9,0xAF54,0xAF56,0xD2A6,0xD667, - /* Block 116, Array index 0x3400 */ - 0xD2A3,0xD2AA,INVALC,INVALC,INVALC,INVALC,INVALC,0xD662, - 0xD666,INVALC,0xD665,0xDA6E,0xDA79,INVALC,INVALC,0xD668, - INVALC,0xD663,0xDA6D,0xB274,INVALC,INVALC,0xB273,0xD661, - 0xD664,0xB275,INVALC,0xB272,0xB271,0xD660,0xD669,INVALC, - INVALC,INVALC,0xDA70,0xDA77,INVALC,0xB554,0xDA76,0xDA73, - INVALC,0xB556,INVALC,INVALC,INVALC,0xDA75,INVALC,INVALC, - 0xDA6F,0xDA71,0xDA74,0xDA72,0xB555,0xDA78,0xB553,0xB7DF, - INVALC,INVALC,0xDEAD,0xDEAC,0xDEAA,INVALC,0xB7E2,0xB7E1, - 0xDEAE,INVALC,0xDEAB,0xE2CA,0xBABB,0xB7E0,INVALC,INVALC, - INVALC,0xDEB0,0xDEAF,INVALC,0xE2CD,0xE2CB,0xBCFA,INVALC, - 0xBABC,0xE2CC,0xE676,INVALC,INVALC,INVALC,INVALC,0xBCFB, - 0xE675,0xE67E,0xE67D,0xE67B,INVALC,0xE67A,0xE677,0xE678, - 0xE679,0xE67C,0xE6A1,INVALC,INVALC,0xEA5F,0xEA5C,0xEA5D, - 0xBF57,0xEA5B,0xEA61,0xEA60,0xEA5E,INVALC,0xED64,0xED65, - 0xC0F1,INVALC,0xC0F2,0xED63,INVALC,0xC279,0xEFFE,0xC278, - 0xC37E,INVALC,0xC3A1,0xC46D,0xF46E,0xF46D,0xF5DD,0xF6EF, - 0xC57A,0xF7E8,0xF7E7,0xF7E9,0xA5C8,0xCFC6,0xAF59,0xB276, - 0xD66A,0xA5C9,0xC9A7,0xA4FD,INVALC,INVALC,0xCA45,INVALC, - INVALC,INVALC,0xCB6C,0xCB6A,0xCB6B,0xCB68,0xA868,0xCB69, - INVALC,INVALC,INVALC,INVALC,INVALC,0xCD6D,INVALC,0xAAB3, - 0xCD6B,0xCD67,0xCD6A,INVALC,0xCD66,0xAAB5,0xCD69,INVALC, - 0xAAB2,0xAAB1,INVALC,0xAAB4,0xCD6C,0xCD68,INVALC,INVALC, - INVALC,INVALC,0xACC2,0xACC5,0xCFCE,0xCFCD,0xCFCC,0xACBF, - 0xCFD5,0xCFCB,INVALC,0xACC1,0xD2AF,INVALC,0xCFD2,0xCFD0, - 0xACC4,INVALC,0xCFC8,0xCFD3,INVALC,0xCFCA,0xCFD4,0xCFD1, - 0xCFC9,INVALC,0xACC0,0xCFD6,0xCFC7,0xACC3,INVALC,INVALC, - INVALC,INVALC,0xD2B4,0xD2AB,0xD2B6,INVALC,0xD2AE,0xD2B9, - 0xD2BA,0xD2AC,0xD2B8,0xD2B5,0xD2B3,0xD2B7,0xAF5F,INVALC, - 0xAF5D,INVALC,INVALC,0xD2B1,INVALC,0xD2AD,INVALC,0xD2B0, - 0xD2BB,0xD2B2,0xAF5E,0xCFCF,INVALC,0xAF5A,0xAF5C,INVALC, - INVALC,INVALC,INVALC,INVALC,0xD678,0xD66D,0xD66B,INVALC, - 0xD66C,INVALC,0xD673,INVALC,0xD674,0xD670,0xB27B,0xD675, - /* Block 117, Array index 0x3500 */ - 0xD672,0xD66F,INVALC,0xB279,0xD66E,0xB277,0xB27A,0xD671, - 0xD679,0xAF5B,0xB278,0xD677,0xD676,0xB27C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xDA7E,INVALC, - INVALC,INVALC,0xDAA1,0xB560,INVALC,0xDAA7,INVALC,INVALC, - 0xDAA9,0xDAA2,0xB55A,0xDAA6,0xDAA5,0xB55B,0xB561,INVALC, - 0xB562,0xDAA8,0xB558,0xDA7D,0xDA7B,0xDAA3,0xDA7A,0xB55F, - 0xDA7C,0xDAA4,0xDAAA,0xB559,0xB55E,0xB55C,0xB55D,INVALC, - INVALC,INVALC,0xB557,INVALC,INVALC,INVALC,INVALC,0xB7E9, - 0xDEB7,0xB7E8,0xDEBB,INVALC,0xDEB1,INVALC,0xDEBC,INVALC, - INVALC,INVALC,0xDEB2,0xDEB3,INVALC,0xDEBD,0xDEBA,0xDEB8, - 0xDEB9,0xDEB5,0xDEB4,INVALC,0xDEBE,0xB7E5,INVALC,0xDEB6, - INVALC,0xB7EA,0xB7E4,0xB7EB,0xB7EC,INVALC,0xB7E7,0xB7E6, - INVALC,INVALC,0xE2CE,0xBABE,0xBABD,INVALC,INVALC,0xE2D3, - INVALC,0xBCFC,0xBABF,INVALC,INVALC,0xBAC1,0xE2D4,0xB7E3, - 0xBAC0,0xE2D0,0xE2D2,0xE2CF,INVALC,0xE2D1,INVALC,INVALC, - INVALC,0xE6AB,INVALC,INVALC,0xE6AA,0xE6A7,0xBD40,0xEA62, - 0xBD41,0xE6A6,INVALC,0xBCFE,INVALC,0xE6A8,0xE6A5,0xE6A2, - 0xE6A9,0xE6A3,0xE6A4,0xBCFD,INVALC,INVALC,INVALC,INVALC, - 0xED69,INVALC,0xEA66,INVALC,0xEA65,0xEA67,INVALC,0xED66, - 0xBF5A,INVALC,0xEA63,INVALC,0xBF58,INVALC,0xBF5C,0xBF5B, - 0xEA64,0xEA68,INVALC,0xBF59,INVALC,0xED6D,0xC0F5,0xC27A, - 0xC0F6,0xC0F3,0xED6A,0xED68,INVALC,0xED6B,INVALC,0xED6E, - 0xC0F4,0xED6C,0xED67,INVALC,INVALC,0xF042,0xF045,0xF275, - 0xF040,INVALC,0xF46F,0xF046,INVALC,0xC3A2,0xF044,0xC27B, - 0xF041,0xF043,0xF047,0xF276,INVALC,0xF274,INVALC,INVALC, - INVALC,INVALC,0xC3A3,0xF273,INVALC,INVALC,INVALC,0xC46E, - INVALC,INVALC,INVALC,INVALC,0xC4ED,0xF6F1,0xC4EC,0xF6F3, - 0xF6F0,0xF6F2,0xC5D0,0xF8B2,0xA5CA,0xCD6E,0xD2BC,0xD2BD, - 0xB27D,0xDEBF,0xBF5D,0xC3A4,0xC57B,0xF8B3,0xA5CB,INVALC, - 0xCD6F,0xA260,INVALC,INVALC,0xCFD7,INVALC,0xCFD8,INVALC, - INVALC,INVALC,INVALC,INVALC,0xD2BE,0xD2BF,0xB27E,0xB2A1, - INVALC,INVALC,INVALC,0xDAAB,INVALC,0xDEC2,0xDEC1,0xDEC0, - /* Block 118, Array index 0x3600 */ - 0xE2D5,INVALC,0xE2D6,0xE2D7,0xBAC2,INVALC,INVALC,0xE6AD, - 0xE6AC,INVALC,INVALC,0xEA69,0xBF5E,0xBF5F,INVALC,0xED72, - 0xED6F,0xED70,0xED71,0xF049,0xF048,0xC27C,0xF277,0xF5DE, - 0xA5CC,INVALC,0xACC6,INVALC,0xB2A2,0xDEC3,INVALC,0xA5CD, - INVALC,0xD2C0,0xB2A3,INVALC,INVALC,0xB563,0xB564,INVALC, - 0xA5CE,0xA5CF,0xCA46,0xA86A,0xA869,0xACC7,0xCFD9,0xDAAC, - 0xA5D0,0xA5D1,0xA5D2,0xA5D3,INVALC,INVALC,INVALC,0xA86B, - 0xA86C,0xCB6E,0xCB6D,INVALC,INVALC,0xAAB6,0xCD72,0xCD70, - 0xCD71,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xCFDA, - 0xCFDB,INVALC,INVALC,0xACCB,0xACC9,INVALC,0xACCA,0xACC8, - INVALC,INVALC,INVALC,INVALC,0xAF60,INVALC,INVALC,INVALC, - INVALC,0xAF64,0xAF63,0xD2C1,0xAF62,0xAF61,INVALC,0xD2C2, - INVALC,INVALC,0xB2A6,0xD67B,0xD67A,0xB2A4,0xB2A5,INVALC, - INVALC,INVALC,0xB566,0xB565,0xDAAE,INVALC,INVALC,0xDAAD, - 0xB2A7,INVALC,INVALC,INVALC,INVALC,INVALC,0xB7ED,0xDEC5, - 0xB7EE,0xDEC4,INVALC,INVALC,INVALC,0xE2D8,0xE6AE,0xBD42, - 0xEA6A,INVALC,INVALC,INVALC,0xED73,INVALC,0xC3A6,0xC3A5, - INVALC,INVALC,0xC57C,0xA5D4,0xCD73,INVALC,INVALC,0xB2A8, - 0xE2D9,0xBAC3,INVALC,INVALC,0xCB6F,0xCB70,INVALC,INVALC, - 0xCD74,0xAAB8,0xAAB9,INVALC,INVALC,0xAAB7,INVALC,INVALC, - INVALC,INVALC,0xACCF,0xACD0,0xACCD,0xACCE,INVALC,0xCFDC, - INVALC,INVALC,0xCFDD,0xACCC,INVALC,INVALC,INVALC,INVALC, - 0xD2C3,INVALC,0xAF68,0xAF69,INVALC,0xB2AB,0xD2C9,INVALC, - 0xAF6E,0xAF6C,0xD2CA,0xD2C5,0xAF6B,0xAF6A,0xAF65,0xD2C8, - 0xD2C7,0xD2C4,0xAF6D,INVALC,0xD2C6,0xAF66,INVALC,0xAF67, - INVALC,INVALC,0xB2AC,0xD6A1,0xD6A2,0xB2AD,0xD67C,0xD67E, - 0xD6A4,0xD6A3,0xD67D,INVALC,0xB2A9,0xB2AA,INVALC,0xDAB6, - 0xB56B,0xB56A,0xDAB0,0xB568,INVALC,0xDAB3,0xB56C,0xDAB4, - 0xB56D,0xDAB1,0xB567,0xB569,0xDAB5,INVALC,0xDAB2,0xDAAF, - INVALC,INVALC,INVALC,INVALC,INVALC,0xDED2,INVALC,0xDEC7, - 0xB7F0,0xB7F3,0xB7F2,0xB7F7,0xB7F6,0xDED3,0xDED1,0xDECA, - 0xDECE,0xDECD,0xB7F4,0xDED0,0xDECC,0xDED4,0xDECB,0xB7F5, - /* Block 119, Array index 0x3700 */ - 0xB7EF,0xB7F1,INVALC,0xDEC9,INVALC,INVALC,INVALC,INVALC, - 0xE2DB,0xBAC7,0xE2DF,0xBAC6,0xE2DC,0xBAC5,INVALC,0xDEC8, - 0xDECF,0xE2DE,INVALC,0xBAC8,0xE2E0,0xE2DD,0xE2DA,INVALC, - INVALC,0xE6B1,0xE6B5,0xE6B7,0xE6B3,0xE6B2,0xE6B0,0xBD45, - 0xBD43,0xBD48,0xBD49,0xE6B4,0xBD46,0xE6AF,0xBD47,0xBAC4, - 0xE6B6,0xBD44,INVALC,INVALC,INVALC,0xEA6C,INVALC,0xEA6B, - 0xEA73,0xEA6D,0xEA72,0xEA6F,0xBF60,0xEA71,INVALC,INVALC, - 0xBF61,INVALC,0xBF62,INVALC,0xEA70,0xEA6E,INVALC,INVALC, - INVALC,INVALC,0xC0F8,0xED74,INVALC,INVALC,0xC0F7,0xED77, - 0xED75,0xED76,INVALC,INVALC,0xC0F9,INVALC,INVALC,INVALC, - 0xF04D,INVALC,0xC2A1,0xF04E,INVALC,INVALC,0xC27D,0xF04F, - 0xC27E,0xF04C,0xF050,INVALC,0xF04A,INVALC,INVALC,0xC3A7, - 0xF278,0xC3A8,0xC46F,INVALC,0xF04B,0xC470,INVALC,INVALC, - INVALC,0xC4EE,0xF5DF,INVALC,0xC57E,0xF6F4,0xC57D,INVALC, - 0xF7EA,0xC5F5,0xC5F6,INVALC,INVALC,0xF9CC,INVALC,INVALC, - 0xACD1,0xCFDE,INVALC,0xB56E,0xB56F,0xA5D5,0xA6CA,0xCA47, - INVALC,0xCB71,0xA86D,INVALC,0xAABA,INVALC,0xACD2,0xACD3, - 0xACD4,0xD6A6,0xD2CB,0xAF6F,INVALC,INVALC,0xB2AE,0xD6A5, - INVALC,INVALC,0xDAB8,0xB571,INVALC,0xDAB7,0xB570,INVALC, - INVALC,0xDED5,0xBD4A,0xE6BB,0xE6B8,0xE6B9,0xE6BA,INVALC, - INVALC,INVALC,INVALC,INVALC,0xED78,INVALC,0xF051,INVALC, - INVALC,INVALC,0xF471,0xF470,INVALC,0xF6F5,0xA5D6,0xCD75, - 0xAF70,INVALC,INVALC,INVALC,0xB572,0xDED6,INVALC,INVALC, - 0xE2E1,INVALC,0xBD4B,0xEA74,INVALC,0xF052,0xF472,0xA5D7, - INVALC,INVALC,0xAABB,0xACD7,0xCFDF,0xACD8,0xACD6,INVALC, - 0xACD5,0xD2CC,0xAF71,INVALC,INVALC,0xAF72,0xAF73,INVALC, - INVALC,INVALC,0xB2B0,0xD6A7,0xB2AF,INVALC,INVALC,INVALC, - INVALC,INVALC,0xDAB9,0xB2B1,0xB573,0xDED7,0xB7F8,0xB7F9, - INVALC,0xBAC9,INVALC,0xBACA,0xBD4C,0xBF64,0xEA75,0xBF63, - INVALC,0xED79,0xC0FA,INVALC,0xF053,0xF473,0xA5D8,0xA86E, - 0xCD78,0xCD77,0xAABC,0xCD76,0xAABD,0xCD79,INVALC,0xCFE5, - 0xACDB,0xACDA,0xCFE7,0xCFE6,0xACDF,INVALC,0xACDE,INVALC, - /* Block 120, Array index 0x3800 */ - INVALC,0xACD9,INVALC,0xCFE1,0xCFE2,0xCFE3,INVALC,0xACE0, - 0xCFE0,0xACDC,0xCFE4,0xACDD,INVALC,INVALC,INVALC,INVALC, - 0xD2CF,0xD2D3,0xD2D1,0xD2D0,INVALC,0xD2D4,INVALC,INVALC, - INVALC,0xD2D5,0xD2D6,0xD2CE,INVALC,0xD2CD,INVALC,0xAF75, - 0xAF76,INVALC,0xD2D7,0xD2D2,INVALC,0xD6B0,INVALC,0xD2D8, - 0xAF77,0xAF74,INVALC,INVALC,INVALC,0xD6AA,INVALC,0xD6A9, - INVALC,0xD6AB,0xD6AC,0xD6AE,0xD6AD,0xD6B2,0xB2B5,0xB2B2, - 0xB2B6,0xD6A8,0xB2B7,0xD6B1,0xB2B4,0xD6AF,0xB2B3,INVALC, - INVALC,INVALC,INVALC,INVALC,0xDABC,0xDABE,0xDABA,0xDABB, - INVALC,INVALC,0xDABF,0xDAC1,0xDAC2,0xDABD,0xDAC0,0xB574, - INVALC,INVALC,0xDEDB,INVALC,0xDEE0,0xDED8,0xDEDC,INVALC, - INVALC,0xDEE1,0xDEDD,0xB7FA,0xB843,INVALC,0xB7FD,0xDED9, - 0xDEDA,0xBACE,0xB846,0xB7FE,INVALC,0xB844,0xB7FC,0xDEDF, - 0xB845,0xDEDE,0xB841,0xB7FB,0xB842,0xDEE2,0xE2E6,0xE2E8, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xB840,INVALC,INVALC,0xE2E3,0xBACC,0xE2E9,0xBACD, - 0xE2E7,0xE2E2,0xE2E5,0xE2EA,0xBACB,0xE2E4,INVALC,0xBD4E, - 0xE6BF,0xE6BE,INVALC,0xBD51,0xBD4F,0xE6BC,0xBD4D,0xE6BD, - INVALC,0xBD50,INVALC,INVALC,INVALC,0xEA7D,INVALC,0xEAA1, - INVALC,0xEA7E,0xEA76,0xEA7A,0xEA79,0xEA77,0xBF66,0xBF67, - 0xBF65,0xEA78,0xEA7B,0xEA7C,INVALC,0xBF68,INVALC,0xC140, - 0xEDA3,INVALC,0xC0FC,0xED7B,0xC0FE,0xC141,INVALC,INVALC, - 0xC0FD,0xEDA2,0xED7C,0xC0FB,0xEDA1,0xED7A,0xED7E,0xED7D, - INVALC,INVALC,0xF055,0xC2A4,0xC2A5,0xC2A2,INVALC,0xC2A3, - INVALC,INVALC,0xF054,INVALC,0xF27B,INVALC,INVALC,0xC3A9, - INVALC,0xF279,0xF27A,INVALC,0xF474,0xF477,0xF475,0xF476, - 0xF5E0,INVALC,INVALC,0xC4EF,0xF7EB,0xF8B4,INVALC,0xC5F7, - 0xF8F8,0xF8F9,0xC666,0xA5D9,0xACE1,INVALC,0xDAC3,INVALC, - 0xDEE3,INVALC,0xA5DA,0xA86F,INVALC,0xAABE,INVALC,0xCFE8, - 0xCFE9,0xAF78,INVALC,INVALC,0xDAC4,0xB575,0xB847,0xC142, - 0xEDA4,0xF27C,0xF478,0xA5DB,INVALC,INVALC,INVALC,0xCDA1, - 0xCD7A,0xCD7C,0xCD7E,0xCD7D,0xCD7B,0xAABF,INVALC,INVALC, - /* Block 121, Array index 0x3900 */ - INVALC,INVALC,0xACE2,0xCFF2,INVALC,0xCFED,0xCFEA,INVALC, - INVALC,0xCFF1,INVALC,INVALC,0xACE4,0xACE5,0xCFF0,0xCFEF, - 0xCFEE,0xCFEB,0xCFEC,0xCFF3,0xACE3,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xAF7C,INVALC,0xAFA4, - 0xAFA3,0xD2E1,0xD2DB,0xD2D9,INVALC,0xAFA1,0xD6B9,0xAF7A, - 0xD2DE,0xD2E2,0xD2E4,0xD2E0,0xD2DA,0xAFA2,0xD2DF,0xD2DD, - 0xAF79,0xD2E5,0xAFA5,0xD2E3,0xAF7D,0xD2DC,INVALC,0xAF7E, - 0xAF7B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xB2B9,INVALC,0xD6BA,INVALC,INVALC, - 0xD6B3,0xD6B5,0xD6B7,INVALC,0xD6B8,0xD6B6,0xB2BA,INVALC, - 0xD6BB,INVALC,0xD6B4,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xDAC8,0xB576,0xDAD0,INVALC, - 0xDAC5,INVALC,0xDAD1,INVALC,0xDAC6,0xDAC7,INVALC,INVALC, - 0xDACF,0xDACE,0xDACB,0xB2B8,0xB577,0xDAC9,0xDACC,0xB578, - 0xDACD,0xDACA,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xDEEE,INVALC,0xDEF2,0xB84E,INVALC,0xE2F0,0xB851, - 0xDEF0,INVALC,INVALC,0xDEED,0xDEE8,0xDEEA,0xDEEB,0xDEE4, - INVALC,0xB84D,INVALC,INVALC,0xB84C,INVALC,0xB848,0xDEE7, - INVALC,0xB84F,INVALC,0xB850,0xDEE6,0xDEE9,0xDEF1,0xB84A, - 0xB84B,0xDEEF,0xDEE5,INVALC,INVALC,INVALC,0xE2F2,0xBAD0, - 0xE2F4,0xDEEC,0xE2F6,0xBAD4,0xE2F7,0xE2F3,INVALC,0xBAD1, - 0xE2EF,0xBAD3,0xE2EC,0xE2F1,0xE2F5,0xE2EE,INVALC,INVALC, - 0xB849,INVALC,0xE2EB,0xBAD2,0xE2ED,INVALC,INVALC,INVALC, - INVALC,INVALC,0xBD54,0xE6C1,0xBD58,INVALC,0xBD56,INVALC, - INVALC,0xBACF,INVALC,0xE6C8,0xE6C9,0xBD53,INVALC,INVALC, - 0xE6C7,0xE6CA,0xBD55,0xBD52,0xE6C3,0xE6C0,0xE6C5,0xE6C2, - 0xBD59,0xE6C4,INVALC,INVALC,0xE6C6,0xBD57,INVALC,INVALC, - INVALC,INVALC,0xBF6A,0xEAA8,INVALC,0xEAA2,0xEAA6,0xEAAC, - 0xEAAD,0xEAA9,0xEAAA,0xEAA7,INVALC,0xEAA4,INVALC,0xBF6C, - 0xBF69,0xEAA3,0xEAA5,INVALC,0xBF6B,0xEAAB,INVALC,0xC146, - INVALC,INVALC,0xEDAA,0xEDA5,0xC145,INVALC,INVALC,0xC143, - INVALC,0xEDAC,0xC144,0xEDA8,0xEDA9,0xEDA6,0xEDAD,0xF056, - /* Block 122, Array index 0x3A00 */ - INVALC,0xC147,0xEDA7,INVALC,0xEDAE,0xEDAB,INVALC,INVALC, - INVALC,0xF05A,INVALC,INVALC,0xF057,INVALC,0xC2A6,INVALC, - 0xF05B,0xF05D,0xF05C,0xF058,0xF059,INVALC,INVALC,0xF2A3, - INVALC,0xC3AA,INVALC,0xF27E,0xF2A2,0xF27D,0xF2A4,INVALC, - INVALC,0xF2A1,INVALC,0xF47A,0xF47D,0xF479,0xC471,0xF47B, - 0xF47C,0xF47E,0xC472,0xC474,0xC473,0xF5E1,INVALC,0xF5E3, - INVALC,0xF5E2,INVALC,INVALC,INVALC,0xF6F6,INVALC,INVALC, - 0xF8B5,0xF8FA,0xA5DC,INVALC,INVALC,0xCB72,0xAAC0,0xCDA3, - 0xAAC1,0xAAC2,0xCDA2,INVALC,0xCFF8,0xCFF7,0xACE6,0xACE9, - 0xACE8,0xACE7,0xCFF4,0xCFF6,0xCFF5,INVALC,INVALC,0xD2E8, - 0xAFA7,0xD2EC,0xD2EB,0xD2EA,0xD2E6,0xAFA6,0xAFAA,0xAFAD, - INVALC,INVALC,0xAFAE,0xD2E7,0xD2E9,0xAFAC,0xAFAB,0xAFA9, - 0xAFA8,0xD6C2,INVALC,0xD6C0,0xD6BC,0xB2BB,INVALC,0xD6BD, - 0xB2BC,0xD6BE,0xD6BF,0xD6C1,INVALC,0xB2BD,INVALC,INVALC, - 0xDAD5,INVALC,0xDAD4,0xDAD3,0xDAD2,INVALC,INVALC,INVALC, - INVALC,0xDEF6,0xB852,INVALC,0xDEF3,0xDEF5,INVALC,0xB853, - INVALC,0xB854,0xDEF4,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xE341,INVALC,0xE2F9,0xE2FA,INVALC,0xBAD7,0xBAD5,0xBAD6, - 0xE343,INVALC,0xE342,0xE2FE,0xE2FD,0xE2FC,0xE2FB,0xE340, - 0xE2F8,INVALC,0xE6CB,0xE6D0,0xE6CE,INVALC,INVALC,INVALC, - 0xE6CD,0xE6CC,0xE6CF,INVALC,0xEAAE,INVALC,0xBF6D,0xC148, - 0xEDB0,INVALC,0xC149,0xEDAF,0xF05F,0xF05E,0xC2A7,INVALC, - 0xF2A5,0xC3AB,0xF4A1,0xC5A1,0xF6F7,INVALC,0xF8B7,0xF8B6, - 0xC9A8,0xACEA,0xACEB,0xD6C3,INVALC,0xB856,0xA5DD,0xA872, - 0xA871,0xA870,INVALC,INVALC,INVALC,0xCDA4,INVALC,INVALC, - 0xAAC4,0xAAC3,INVALC,0xACEE,INVALC,0xCFFA,0xCFFD,0xCFFB, - INVALC,0xACEC,0xACED,INVALC,INVALC,0xCFF9,0xCFFC,INVALC, - 0xAFB5,INVALC,INVALC,INVALC,0xD2F3,0xD2F5,0xD2F4,0xAFB2, - 0xD2EF,INVALC,INVALC,0xAFB0,0xAFAF,INVALC,0xAFB3,0xAFB1, - INVALC,0xAFB4,0xD2F2,0xD2ED,0xD2EE,0xD2F1,0xD2F0,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xD6C6,0xD6C7, - 0xD6C5,INVALC,0xD6C4,0xB2BE,INVALC,INVALC,INVALC,INVALC, - /* Block 123, Array index 0x3B00 */ - 0xB57D,INVALC,0xDAD6,0xDAD8,0xDADA,0xB57C,INVALC,INVALC, - 0xB57A,INVALC,0xDAD7,0xB57B,0xDAD9,0xB579,INVALC,INVALC, - 0xDF41,0xDEF7,0xDEFA,0xDEFE,0xB85A,0xDEFC,INVALC,0xDEFB, - 0xDEF8,0xDEF9,0xB858,0xDF40,0xB857,INVALC,0xB85C,0xB85B, - 0xB859,INVALC,0xDEFD,INVALC,INVALC,INVALC,0xE349,INVALC, - 0xE348,INVALC,INVALC,0xE344,INVALC,INVALC,0xBAD8,0xE347, - 0xE346,0xBAD9,INVALC,INVALC,INVALC,INVALC,INVALC,0xBD5E, - INVALC,0xE6D2,INVALC,0xBD5F,0xBD5B,0xBD5D,INVALC,0xBD5A, - 0xBD5C,INVALC,INVALC,INVALC,0xEAAF,INVALC,0xBF70,0xEAB1, - 0xEAB0,INVALC,0xE345,0xBF72,0xBF71,0xBF6E,0xBF6F,INVALC, - INVALC,INVALC,INVALC,INVALC,0xEDB5,INVALC,0xEDB3,0xC14A, - 0xEDB4,INVALC,0xEDB6,0xEDB2,0xEDB1,INVALC,INVALC,0xF060, - 0xC2AA,0xC2A8,0xC2A9,INVALC,INVALC,INVALC,INVALC,0xF2A6, - 0xF2A7,0xC3AD,INVALC,0xC3AC,0xF4A3,0xF4A4,0xF4A2,INVALC, - 0xF6F8,0xF6F9,INVALC,INVALC,0xA5DE,0xCA48,0xA873,INVALC, - 0xCDA5,0xAAC6,0xAAC5,0xCDA6,INVALC,INVALC,0xD040,0xACEF, - 0xCFFE,0xACF0,INVALC,INVALC,0xAFB6,0xD2F8,0xD2F6,0xD2FC, - 0xAFB7,0xD2F7,0xD2FB,0xD2F9,0xD2FA,INVALC,INVALC,0xD6C8, - 0xD6CA,INVALC,0xB2BF,INVALC,0xD6C9,0xB2C0,0xB5A2,0xB5A1, - 0xB57E,0xDADB,INVALC,INVALC,INVALC,INVALC,0xDF44,0xB85D, - 0xB85E,INVALC,0xDF43,0xDF42,INVALC,INVALC,INVALC,INVALC, - 0xE34A,0xBADB,0xBADA,0xE34B,0xE34C,INVALC,0xBD61,0xBD60, - INVALC,0xEAB5,0xE6D3,0xE6D5,0xE6D4,0xEAB4,0xEAB2,0xEAB6, - 0xEAB3,INVALC,0xBF73,INVALC,INVALC,INVALC,0xEDB7,0xC14B, - 0xEDB8,0xEDB9,INVALC,INVALC,0xC2AB,0xC2AC,INVALC,0xC475, - INVALC,INVALC,0xC5D1,0xA5DF,INVALC,INVALC,INVALC,INVALC, - INVALC,0xD041,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xD2FD,0xAFB8,INVALC,INVALC,INVALC,INVALC,INVALC,0xB3BA, - 0xB3B9,INVALC,INVALC,0xB5A4,0xDADD,0xB5A3,0xDADC,INVALC, - INVALC,INVALC,INVALC,0xDF45,INVALC,0xBADC,0xE34D,0xBADD, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xC476,0xF4A5, - INVALC,0xA6CB,0xAAC7,0xCDA7,INVALC,0xACF2,INVALC,0xACF1, - /* Block 124, Array index 0x3C00 */ - 0xD042,0xD043,INVALC,INVALC,0xD340,0xD342,0xAFB9,INVALC, - 0xD344,0xD347,0xD345,INVALC,INVALC,INVALC,0xD346,0xD343, - 0xD2FE,0xAFBA,0xD348,0xD341,INVALC,INVALC,INVALC,INVALC, - 0xD6D3,0xB2C6,0xD6DC,0xB2C3,INVALC,0xD6D5,0xB2C7,INVALC, - 0xB2C1,INVALC,0xD6D0,0xD6DD,0xD6D1,0xD6CE,0xB2C5,INVALC, - 0xB2C2,INVALC,0xD6D4,0xD6D7,0xB2C4,0xD6D8,0xB2C8,0xD6D9, - 0xD6CF,0xD6D6,0xD6DA,0xD6D2,0xD6CD,0xD6CB,INVALC,INVALC, - 0xD6DB,INVALC,INVALC,0xDADF,INVALC,INVALC,INVALC,INVALC, - 0xDAE4,INVALC,INVALC,INVALC,0xDAE0,0xDAE6,0xB5A7,0xD6CC, - 0xDAE1,0xB5A5,0xDADE,0xB5AC,0xDAE2,0xB5AB,0xDAE3,0xB5AD, - 0xB5A8,0xB5AE,0xB5A9,INVALC,0xB5AA,INVALC,0xB5A6,INVALC, - 0xDAE5,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xB861,0xDF50,INVALC,0xDF53,0xDF47,0xDF4C,0xDF46,0xB863, - INVALC,0xDF4A,INVALC,INVALC,INVALC,0xDF48,0xB862,INVALC, - 0xDF4F,0xDF4E,0xDF4B,0xDF4D,0xDF49,0xBAE1,0xDF52,0xB85F, - 0xDF51,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xE35D,INVALC,0xBAE8,0xE358,INVALC,0xBAE7, - 0xE34E,INVALC,0xE350,0xBAE0,0xE355,0xE354,0xE357,0xBAE5, - 0xE352,0xE351,INVALC,INVALC,0xBAE4,0xBADF,0xE353,0xBAE2, - 0xE359,0xE35B,INVALC,0xE356,0xE34F,0xBAE3,INVALC,INVALC, - 0xBD69,0xBADE,INVALC,INVALC,0xE35C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xE6D9,0xBD62,INVALC,0xE6DB, - INVALC,0xBD63,INVALC,INVALC,0xBD65,0xE6DE,INVALC,0xE6D6, - 0xBAE6,0xE6DC,INVALC,INVALC,INVALC,INVALC,0xE6D8,INVALC, - 0xB860,0xBD68,INVALC,INVALC,0xBD64,INVALC,0xBD66,0xBD67, - INVALC,0xBF76,0xE6DD,0xE6D7,0xBD6A,INVALC,0xE6DA,INVALC, - INVALC,INVALC,INVALC,INVALC,0xEAC0,0xEABB,INVALC,INVALC, - 0xEAC5,0xBF74,0xEABD,0xBF78,0xEAC3,0xEABA,0xEAB7,0xEAC6, - 0xC151,0xBF79,0xEAC2,0xEAB8,0xBF77,0xEABC,0xBF7B,0xEAB9, - 0xEABE,0xBF7A,0xEAC1,0xEAC4,INVALC,INVALC,INVALC,INVALC, - 0xEDCB,0xEDCC,0xEDBC,0xEDC3,0xEDC1,INVALC,INVALC,0xC14F, - 0xEDC8,0xEABF,INVALC,0xEDBF,INVALC,0xEDC9,0xC14E,0xEDBE, - /* Block 125, Array index 0x3D00 */ - 0xEDBD,0xEDC7,0xEDC4,0xEDC6,INVALC,0xEDBA,0xEDCA,0xC14C, - INVALC,0xEDC5,0xEDCE,0xEDC2,0xC150,0xC14D,0xEDC0,0xEDBB, - 0xEDCD,0xBF75,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xF063,INVALC,INVALC,0xF061,0xF067,0xC2B0,0xF065, - 0xF064,0xC2B2,0xF06A,0xC2B1,INVALC,0xF06B,0xF068,0xC2AE, - 0xF069,0xF062,0xC2AF,0xC2AD,0xF2AB,0xF066,INVALC,INVALC, - 0xF06C,INVALC,INVALC,0xF2A8,INVALC,INVALC,INVALC,0xC3B2, - 0xC3B0,0xF2AA,INVALC,0xF2AC,0xF2A9,0xC3B1,0xC3AE,0xC3AF, - 0xC3B3,INVALC,INVALC,0xC478,INVALC,0xF4AA,INVALC,0xF4A9, - 0xF4A7,0xF4A6,0xF4A8,INVALC,0xC477,0xC479,INVALC,INVALC, - 0xC4F0,INVALC,INVALC,0xF5E5,0xF5E4,INVALC,INVALC,0xF6FA, - INVALC,0xF6FC,0xF6FE,0xF6FD,0xF6FB,INVALC,INVALC,0xC5A3, - 0xC5A2,INVALC,INVALC,0xC5D3,0xC5D2,0xC5D4,0xF7ED,0xF7EC, - INVALC,0xF8FB,0xF8B8,0xF8FC,0xC658,INVALC,0xC659,0xF96D, - INVALC,INVALC,0xC67E,0xA6CC,INVALC,0xCDA8,INVALC,INVALC, - 0xD045,0xD046,0xD044,INVALC,INVALC,0xACF3,INVALC,0xD047, - 0xD048,0xD049,INVALC,INVALC,0xD349,0xD34F,INVALC,INVALC, - 0xD34D,0xAFBB,0xD34B,INVALC,0xD34C,0xD34E,INVALC,INVALC, - INVALC,0xD34A,0xB2C9,INVALC,0xD6DE,0xB2CB,0xD6E0,0xB2CA, - 0xD6DF,INVALC,INVALC,INVALC,INVALC,INVALC,0xDAE8,0xB5AF, - INVALC,0xDAEA,0xDAE7,0xD6E1,INVALC,0xB5B0,INVALC,INVALC, - 0xDAE9,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xDF56, - INVALC,0xB864,0xDF54,0xB865,0xDF55,0xB866,INVALC,INVALC, - INVALC,0xBAE9,0xE361,0xE35E,0xE360,0xBAEA,0xBAEB,0xE35F, - INVALC,INVALC,INVALC,INVALC,INVALC,0xE6DF,INVALC,INVALC, - 0xE6E0,INVALC,0xBD6B,0xE6E2,0xE6E1,INVALC,0xA261,INVALC, - 0xEACA,0xEACB,0xEAC7,INVALC,0xEAC8,0xBF7C,0xBF7D,0xEAC9, - INVALC,0xC157,INVALC,INVALC,0xC153,0xC158,0xC154,0xC156, - 0xC152,INVALC,0xC155,INVALC,INVALC,INVALC,INVALC,0xC2B3, - 0xEDCF,INVALC,0xF2AE,INVALC,0xF2AD,INVALC,0xF4AB,0xC47A, - 0xC47B,0xF741,0xF5E6,INVALC,0xF740,INVALC,0xF8FD,0xF9A4, - 0xA6CD,INVALC,INVALC,0xA874,INVALC,0xCDA9,0xAAC8,INVALC, - /* Block 126, Array index 0x3E00 */ - 0xACF6,0xD04C,0xACF4,0xD04A,0xACF9,0xACF5,0xACFA,0xACF8, - 0xD04B,0xACF7,0xAFBF,0xAFBE,0xD35A,0xAFC7,0xD353,0xD359, - 0xAFC3,0xD352,0xD358,0xD356,0xAFC2,0xAFC4,0xD355,0xAFBD, - 0xD354,0xAFC8,0xAFC5,0xAFC9,0xAFC6,0xD351,0xD350,0xD357, - 0xAFC0,0xAFBC,0xAFC1,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xD6F0,0xD6E9,INVALC,0xB5B5,0xD6E8,INVALC,0xB2CF,0xB2D6, - 0xB2D3,0xB2D9,0xB2D8,0xB2D4,INVALC,0xD6E2,0xD6E5,INVALC, - 0xD6E4,0xB2D0,0xD6E6,0xD6EF,0xB2D1,0xD6E3,0xD6EC,0xD6ED, - 0xB2D2,0xD6EA,0xB2D7,0xB2CD,0xB2D5,0xD6E7,0xB2CC,0xD6EB, - INVALC,INVALC,0xD6EE,INVALC,INVALC,INVALC,0xDAFB,0xDAF2, - 0xB5B2,0xDAF9,0xDAF6,0xDAEE,0xDAF7,0xB5B4,0xDAEF,INVALC, - 0xDAEB,INVALC,INVALC,0xB86C,0xDAF4,INVALC,0xB5B1,0xDAFA, - INVALC,0xB5B8,0xB5BA,0xDAED,INVALC,INVALC,0xB5B9,0xDAF0, - 0xB5B3,0xDAF8,0xDAF1,0xDAF5,INVALC,0xDAF3,0xB5B6,0xDAEC, - 0xB5BB,0xB2CE,0xB5B7,0xB5BC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xB868,0xDF5D,0xDF5F,0xDF61,0xDF65,INVALC,0xDF5B, - 0xDF59,0xB86A,INVALC,0xDF60,0xDF64,0xDF5C,0xDF58,INVALC, - 0xDF57,INVALC,INVALC,INVALC,0xDF62,0xDF5A,0xDF5E,0xB86B, - INVALC,0xB869,0xDF66,0xB867,0xDF63,INVALC,0xE372,INVALC, - INVALC,INVALC,INVALC,INVALC,0xBAEE,0xE36A,0xBD78,0xE374, - 0xBAF1,0xE378,0xBAF7,0xE365,INVALC,INVALC,0xE375,0xE362, - INVALC,0xE377,0xE366,INVALC,0xBAFE,0xBAFB,0xE376,0xE370, - 0xBAED,0xBAF5,0xBAF4,INVALC,0xBAF3,0xBAF9,INVALC,0xE363, - 0xBAFA,0xE371,0xBAF6,0xBAEC,0xE373,0xBAEF,0xBAF0,0xBAF8, - 0xE368,0xE367,0xE364,INVALC,0xE36C,0xE369,0xE36D,0xBAFD, - INVALC,0xE379,0xBAF2,0xE36E,0xE36F,INVALC,0xE36B,INVALC, - INVALC,INVALC,0xBAFC,INVALC,INVALC,INVALC,INVALC,0xE6E7, - 0xBD70,0xBD79,0xBD75,0xE6E4,INVALC,0xBD72,0xBD76,0xE6F0, - 0xBD6C,0xE6E8,INVALC,0xBD74,INVALC,INVALC,0xE6EB,0xE6E6, - 0xBD73,0xBD77,0xE6E5,INVALC,0xBD71,INVALC,0xE6EF,0xBD6E, - 0xE6EE,0xE6ED,0xBD7A,0xE572,0xBD6D,INVALC,0xE6EC,0xE6E3, - INVALC,0xBD7B,0xE6EA,0xBD6F,INVALC,INVALC,INVALC,INVALC, - /* Block 127, Array index 0x3F00 */ - INVALC,INVALC,INVALC,0xE6E9,INVALC,INVALC,INVALC,INVALC, - 0xBFA2,0xBFA7,0xBF7E,0xEAD8,0xEACF,0xEADB,0xEAD3,0xEAD9, - 0xBFA8,0xBFA1,0xEACC,0xEAD2,0xEADC,0xEAD5,0xEADA,0xEACE, - INVALC,INVALC,0xEAD6,0xBFA3,0xEAD4,0xBFA6,0xBFA5,0xEAD0, - 0xEAD1,0xEACD,0xEAD7,0xBFA4,0xEADE,0xEADD,INVALC,INVALC, - INVALC,0xEDDA,0xEDD6,0xC15F,INVALC,0xEDD0,0xC159,0xC169, - 0xEDDC,0xC161,0xC15D,0xEDD3,0xC164,0xC167,0xEDDE,0xC15C, - 0xEDD5,0xC165,0xEDE0,0xEDDD,0xEDD1,0xC160,0xC15A,0xC168, - 0xEDD8,0xC163,0xEDD2,0xC15E,0xEDDF,0xC162,0xC15B,0xEDD9, - 0xC166,0xEDD7,INVALC,INVALC,0xEDDB,INVALC,INVALC,INVALC, - 0xF06E,0xF074,0xC2B9,0xF077,0xC2B4,0xC2B5,0xF06F,0xF076, - 0xF071,0xC2BA,0xC2B7,INVALC,0xF06D,INVALC,0xC2B6,0xF073, - 0xF075,0xC2B8,0xF072,0xF070,INVALC,INVALC,INVALC,INVALC, - 0xF2B8,0xC3B7,0xC3B8,0xC3B4,INVALC,0xC3B5,INVALC,0xF2B4, - 0xF2B2,INVALC,0xF2B6,0xC3BA,0xF2B7,0xF2B0,0xF2AF,0xF2B3, - 0xF2B1,0xC3B6,0xF2B5,0xF4AC,0xC47E,0xC47D,0xF4AD,INVALC, - 0xF4AF,0xF4AE,0xC4A1,INVALC,INVALC,INVALC,0xF5EB,0xF5E8, - 0xF5E9,INVALC,0xF5E7,0xF5EA,0xC4F2,0xF5EC,INVALC,0xC4F1, - INVALC,0xF742,INVALC,0xC5D5,0xC5D7,0xF7EE,0xC5D6,0xF8B9, - 0xF940,0xF942,0xF8FE,0xF941,0xC66C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 128, Array index 0x4000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xA6CE,INVALC, - 0xACFB,0xD26F,0xAFCA,INVALC,INVALC,0xB2DA,0xDAFC,0xDAFD, - INVALC,INVALC,INVALC,0xEADF,0xC16A,0xEDE1,INVALC,INVALC, - 0xC2BB,INVALC,0xF2BA,0xF2B9,0xC4A2,0xF5ED,INVALC,0xF743, - 0xC5F8,0xCA49,INVALC,INVALC,0xAAC9,0xA875,INVALC,INVALC, - 0xD04D,INVALC,INVALC,0xD360,0xD35B,0xD35F,0xD35D,0xAFCB, - 0xD35E,0xD35C,INVALC,0xD6F1,INVALC,0xDAFE,0xDB40,0xDF69, - 0xDF6A,0xB86E,0xB86F,0xDF68,0xDF6B,0xDF67,0xB86D,INVALC, - 0xBB40,INVALC,0xB870,0xE37A,INVALC,0xBD7C,0xE6F1,0xBD7D, - INVALC,0xBFA9,0xEAE2,0xEAE0,0xEAE1,0xEDE4,0xEDE3,0xEDE2, - INVALC,INVALC,INVALC,0xF2BB,INVALC,0xC3B9,0xF2BC,0xF744, - 0xC5F9,0xF8BA,0xA6CF,0xAACB,0xAACA,0xD04F,0xACFC,INVALC, - INVALC,0xD04E,0xD362,INVALC,0xAFCC,0xD6F2,0xD361,INVALC, - INVALC,INVALC,0xB2DC,0xD6F5,0xD6F3,0xD6F4,0xB2DB,INVALC, - 0xDB42,0xDB43,0xDB41,INVALC,0xB873,0xDF6D,0xDF6C,0xDF6E, - 0xB872,0xB871,INVALC,INVALC,0xE6F2,0xE6F4,INVALC,0xBD7E, - 0xE6F3,0xEAE3,0xBFAA,0xF079,INVALC,0xF078,0xC3BB,0xF2BD, - 0xC3BD,0xC3BC,0xF4B0,0xF5EE,0xC4F3,0xA6D0,0xD050,0xACFD, - 0xD365,0xAFCE,0xD364,0xD363,INVALC,0xAFCD,INVALC,0xD6FB, - INVALC,0xD6FD,0xD6F6,0xD6F7,0xB2DD,0xD6F8,0xB2DE,0xD6FC, - 0xD6F9,0xD6FA,0xB2DF,INVALC,0xB5BE,0xB5BF,INVALC,0xDB44, - INVALC,INVALC,INVALC,0xDF6F,0xDF70,INVALC,0xE37E,0xBB43, - 0xBB41,0xBB42,0xE37B,0xE37C,INVALC,0xE37D,0xE6F9,INVALC, - 0xE6FA,0xBDA1,0xE6F7,0xE6F6,0xE6F8,0xE6F5,0xBFAD,0xEAE4, - 0xBFAB,0xBFAC,0xEDE6,0xC16B,0xEDE5,0xEFA8,INVALC,0xF07A, - 0xF07B,0xC2BC,INVALC,0xC2BD,0xC16C,0xF2BE,0xF2BF,0xF4B1, - /* Block 129, Array index 0x4100 */ - 0xC4A3,0xA6D1,INVALC,0xA6D2,0xACFE,0xAACC,0xAFCF,0xD051, - INVALC,INVALC,INVALC,0xB5C0,0xA6D3,0xAD41,0xD052,0xD053, - 0xAD40,0xAD42,0xA6D4,INVALC,0xD054,0xAFD1,0xD366,0xAFD3, - 0xAFD0,0xAFD2,INVALC,0xD741,0xB2E0,INVALC,0xD740,0xD6FE, - INVALC,0xDF71,INVALC,INVALC,0xE3A1,INVALC,0xBDA2,INVALC, - 0xBFAE,0xEAE6,0xEAE5,INVALC,0xEDE7,INVALC,INVALC,INVALC, - 0xF5EF,INVALC,INVALC,0xA6D5,0xCB73,0xCDAA,0xAD43,0xD055, - INVALC,0xD368,INVALC,INVALC,INVALC,0xAFD4,0xD367,0xAFD5, - INVALC,INVALC,INVALC,0xD743,INVALC,INVALC,0xB2E2,0xD742, - 0xD744,INVALC,0xB2E1,INVALC,INVALC,INVALC,INVALC,0xDB46, - 0xDB47,0xDB45,0xB5C1,INVALC,INVALC,INVALC,0xB874,INVALC, - 0xB875,INVALC,0xBB45,INVALC,0xE3A3,0xE3A2,0xBB44,INVALC, - INVALC,INVALC,INVALC,INVALC,0xE6FB,INVALC,INVALC,0xE6FC, - INVALC,INVALC,INVALC,INVALC,0xEAE7,INVALC,INVALC,0xC170, - 0xC16F,0xC16D,0xC16E,0xC171,INVALC,0xF07C,0xC2BF,0xC2BE, - 0xF2C0,0xF4B2,INVALC,INVALC,INVALC,0xC5A5,0xC5A4,0xA6D6, - INVALC,INVALC,0xD1FB,INVALC,0xB877,0xB5C2,0xB876,0xBB46, - INVALC,0xA6D7,0xC9A9,0xA6D8,0xA6D9,INVALC,INVALC,0xCDAB, - 0xCB76,INVALC,0xCB77,0xA877,INVALC,0xCB74,0xA876,INVALC, - 0xA879,0xCB75,0xA87B,0xA87A,0xCB78,0xA878,INVALC,INVALC, - INVALC,0xAAD1,0xAACF,0xCDAD,INVALC,0xAACE,INVALC,INVALC, - INVALC,0xAAD3,0xAAD5,0xAAD2,INVALC,0xCDB0,0xCDAC,0xAAD6, - INVALC,0xAAD0,0xA87C,INVALC,0xAAD4,0xCDAF,INVALC,INVALC, - 0xCDAE,INVALC,0xAACD,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xD05B,0xAD47,0xAD48,0xD05D,INVALC,0xD057, - 0xD05A,0xD063,0xD061,INVALC,0xAD49,0xD067,0xAD4C,0xD064, - 0xD05C,0xD059,INVALC,INVALC,0xDB49,0xD062,0xAD44,0xD065, - 0xD056,0xD05F,0xAD46,0xAD4B,0xD060,0xAD4F,0xAD4D,INVALC, - 0xD058,0xAD4A,INVALC,0xD05E,0xAD4E,0xAD45,0xD066,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xAFDA,INVALC,0xAFE3, - 0xAFD8,0xAFD6,0xD36A,0xAFDE,0xAFDB,0xD36C,INVALC,INVALC, - 0xAFDD,0xD36B,0xD369,0xD36E,0xAFE2,0xAFE0,0xDB48,INVALC, - /* Block 130, Array index 0x4200 */ - 0xD36F,0xD36D,0xAFD7,INVALC,INVALC,0xAFD9,0xAFDC,INVALC, - 0xAFDF,INVALC,0xAFE1,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xD74E,0xB2E4,INVALC, - 0xD745,0xD747,INVALC,0xD748,INVALC,0xD750,0xD74C,0xD74A, - INVALC,0xD74D,0xD751,0xB2E5,0xB2E9,0xD746,INVALC,0xD74F, - INVALC,0xB2E7,INVALC,0xB2E6,0xD74B,0xD749,INVALC,0xB2E3, - 0xB2E8,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xB5C8,0xDB51,INVALC,INVALC,0xDB4F,0xB5CA,INVALC, - INVALC,INVALC,INVALC,0xDB4A,0xDFA1,INVALC,0xB5C9,0xDB4E, - INVALC,INVALC,0xDB4B,0xB5C5,0xB5CB,0xDB50,0xB5C7,0xDB4D, - 0xBB47,0xB5C6,0xDB4C,0xB5CC,0xB5C4,0xB5C3,INVALC,INVALC, - INVALC,INVALC,INVALC,0xDF77,0xDF75,INVALC,0xDF7B,INVALC, - 0xDF73,0xDFA2,0xDF78,INVALC,0xDF72,0xB87B,0xB8A3,0xDF7D, - INVALC,0xDF76,INVALC,0xB87E,INVALC,INVALC,0xB87C,0xDF7E, - 0xB879,0xB878,0xDF79,0xB87D,0xB5CD,INVALC,0xDF7C,0xDF74, - 0xB87A,0xB8A1,0xB8A2,INVALC,INVALC,INVALC,INVALC,0xBB4C, - 0xBB48,INVALC,0xBB4D,0xE3A6,INVALC,INVALC,0xE3A5,0xE3A7, - 0xBB4A,0xE3A4,0xBB4B,0xE3AA,0xE3A9,0xE3A8,INVALC,0xBB49, - INVALC,INVALC,INVALC,INVALC,INVALC,0xE741,INVALC,0xE744, - 0xBDA8,0xE743,0xBDA7,0xBDA3,0xBDA4,0xBDA5,0xE740,0xE6FE, - 0xBDA6,INVALC,0xE742,0xE6FD,INVALC,INVALC,0xEAE9,0xEAF3, - 0xBFB1,0xBFB0,INVALC,0xEAED,0xEAEF,INVALC,0xEAEA,INVALC, - 0xEAEE,0xEAE8,0xEAF1,0xBFAF,0xEAF0,0xEAEC,INVALC,0xEAF2, - INVALC,0xEAEB,0xC174,0xEDE8,0xEDEE,0xC178,0xC17A,0xC177, - 0xC176,INVALC,0xC175,0xC173,0xEDE9,0xEDEC,0xC172,0xEDED, - INVALC,0xC179,0xEDEB,INVALC,0xEDEA,0xC2C0,INVALC,0xC2C1, - 0xF0A1,0xF07D,0xF07E,INVALC,INVALC,0xF2C2,INVALC,0xF2C1, - 0xC3BE,0xF4B4,0xC4A4,0xF4B3,INVALC,0xF5F0,0xF745,0xC5A6, - 0xF943,0xF944,0xC5D8,0xA6DA,INVALC,0xAAD7,0xDB52,0xBB4E, - 0xC17B,0xEDEF,0xA6DB,INVALC,0xAFE5,0xAFE4,0xDB53,INVALC, - INVALC,INVALC,0xEAF4,0xA6DC,0xAD50,INVALC,INVALC,0xDB54, - 0xDB55,0xDB56,0xBB4F,0xBFB2,0xA6DD,INVALC,0xAAD8,0xD068, - /* Block 131, Array index 0x4300 */ - 0xAFE6,0xD370,0xB2EA,INVALC,0xDB57,0xB8A4,INVALC,0xBB50, - 0xBFB3,0xC17C,0xC2C2,0xF4B5,0xA6DE,0xAAD9,INVALC,INVALC, - 0xAFE7,0xD752,0xB5CE,INVALC,0xBB51,0xE3AB,0xE745,INVALC, - INVALC,INVALC,INVALC,0xA6DF,0xB5CF,0xDFA3,0xBB52,0xA6E0, - 0xCDB1,0xD069,0xAD51,INVALC,INVALC,0xD372,INVALC,INVALC, - 0xAFEA,INVALC,0xAFE8,0xAFE9,0xAFEB,INVALC,INVALC,0xD371, - INVALC,INVALC,0xD757,0xD754,0xD756,0xB2EB,0xB2ED,0xB2EC, - 0xD753,0xB2EE,0xD755,INVALC,0xDB58,0xDB59,INVALC,0xDB5A, - 0xDFA6,INVALC,0xDFA7,INVALC,0xDFA5,0xDFA8,INVALC,0xB8A5, - INVALC,0xDFA4,INVALC,0xBB53,INVALC,INVALC,0xE74A,0xE746, - 0xE749,0xE74B,0xE748,0xE747,INVALC,0xEAF5,0xEAF6,0xEAF7, - 0xBFB4,0xBFB5,0xEDF1,0xEDF0,0xEDF2,INVALC,0xF0A3,0xF0A2, - INVALC,0xF2C4,INVALC,0xF2C5,0xF2C3,INVALC,0xC4A5,INVALC, - 0xF4B6,0xF4B7,INVALC,0xF746,0xF7EF,0xF8BB,0xA6E1,0xA87D, - INVALC,0xC17D,0xA6E2,INVALC,0xD758,0xDB5B,INVALC,0xC641, - 0xCA4A,INVALC,INVALC,INVALC,0xCA4B,0xCA4D,0xA6E3,0xCA4E, - 0xCA4C,INVALC,INVALC,0xCBA2,0xCBA3,0xCB7B,INVALC,INVALC, - INVALC,INVALC,0xCBA1,0xA8A1,INVALC,0xA8A2,0xCB7C,0xCB7A, - 0xCB79,0xCB7D,0xA87E,0xCB7E,0xD06A,INVALC,INVALC,INVALC, - 0xCDB6,0xAADC,0xCDB5,0xCDB7,INVALC,0xAADB,0xCDBC,0xAADF, - 0xCDB2,0xCDC0,0xCDC6,0xAAE6,0xCDC3,0xAAE3,INVALC,0xCDB9, - 0xCDBF,0xCDC1,INVALC,0xCDB4,0xAAE2,0xAADD,0xCDBA,0xAAE4, - 0xAAE7,0xAAE1,INVALC,0xAADA,0xCDBE,0xCDB8,0xCDC5,0xAAE9, - 0xAAE5,0xAAE0,0xCDBD,0xAFEC,0xCDBB,0xAADE,0xAAE8,INVALC, - 0xCDB3,INVALC,0xCDC2,0xCDC4,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xAD62,0xAD5C,0xAD64,0xAD61,0xD071,0xD074,0xAD5D, - INVALC,0xD06B,INVALC,0xAD56,0xAD60,INVALC,0xAD63,0xAD65, - 0xD0A2,0xD077,INVALC,0xAD55,0xD0A1,0xAD59,0xAD57,0xAD52, - 0xD06F,INVALC,0xD07E,0xD073,0xD076,0xD0A5,INVALC,0xAD66, - 0xD07D,0xAD5E,0xD078,0xD0A4,0xD075,0xD079,0xD07C,INVALC, - INVALC,0xD06D,0xD0A3,0xD07B,INVALC,INVALC,0xD06C,INVALC, - /* Block 132, Array index 0x4400 */ - 0xD070,0xAD5F,0xAD5A,0xAD53,0xAD58,0xAD54,0xAD67,0xD06E, - 0xD3A5,0xAD5B,INVALC,INVALC,0xD07A,0xCE41,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xD3A8,0xAFFA, - INVALC,0xD376,INVALC,0xD3A3,0xD37D,INVALC,0xD3B2,INVALC, - 0xD3AA,INVALC,0xD37E,INVALC,0xD3A9,0xD378,0xD37C,0xD3B5, - 0xAFFD,0xD3AD,0xD3A4,0xAFED,0xD3B3,0xD374,INVALC,0xD3AC, - INVALC,0xAFFC,0xAFF7,0xD373,0xAFF5,0xAFF4,0xAFF9,0xD3AB, - 0xAFF1,0xAFF8,0xD072,0xDB5C,0xD3A6,INVALC,INVALC,0xD37A, - 0xAFFB,0xD37B,0xD3A1,0xAFFE,0xD375,0xD3AF,INVALC,0xD3AE, - 0xD3B6,0xAFF3,0xAFF0,0xD3B4,0xD3B0,0xD3A7,0xD3A2,0xAFF6, - 0xAFF2,0xD377,0xAFEE,0xD3B1,0xAFEF,INVALC,0xD379,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xD75E,0xD760,0xD765,0xD779,0xB2FC, - 0xB2F2,INVALC,0xD75D,0xB2FD,0xB2FE,0xD768,0xD76F,0xD775, - INVALC,0xD762,INVALC,0xD769,INVALC,INVALC,0xB340,0xD777, - 0xD772,0xB2FA,0xB2F8,0xD76E,0xD76A,0xD75C,0xB2EF,0xD761, - 0xD759,INVALC,0xB2F7,0xB2F9,0xD766,0xD763,0xB2F4,0xD773, - 0xB2F1,0xD764,0xD77A,0xD76C,INVALC,0xD76B,0xB2F0,INVALC, - 0xB2FB,INVALC,0xB2F3,0xD75A,0xD75F,0xD770,0xD776,0xB341, - 0xD75B,0xD767,0xD76D,0xB2F6,INVALC,INVALC,0xD778,0xD771, - 0xD774,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xB2F5,INVALC,0xDB6C, - 0xDB60,0xB5D7,0xDB7D,0xDBA7,0xDBAA,0xB5D5,0xDB68,0xDBA3, - 0xDB69,0xDB77,0xB5E2,0xDB73,0xB5DF,INVALC,0xDB74,0xDB5D, - INVALC,0xDBA4,INVALC,INVALC,0xB5E8,0xDBA1,0xDB75,0xDBAC, - 0xDB70,0xDFC8,INVALC,0xDBAF,0xB5E6,0xDB6E,0xDB7A,0xB5E9, - 0xB5D4,0xDB72,0xDBAD,0xDB6B,0xDB64,0xDB6F,INVALC,0xDB63, - 0xDB61,0xB5D0,0xDBA5,0xDB6A,0xDBA8,INVALC,0xDBA9,0xB5D8, - 0xB5DD,0xB5D9,0xB5E1,0xDB7E,0xB5DA,0xDB76,0xDB66,INVALC, - 0xB5D2,0xDB5E,0xDBA2,0xDBAB,0xDB65,0xB5E0,0xDBB0,0xDB71, - /* Block 133, Array index 0x4500 */ - INVALC,0xDB6D,INVALC,0xB5D1,0xB5E5,INVALC,0xDB7C,0xB5E7, - INVALC,0xDB78,0xB5DC,0xB5D6,0xB5DE,0xB5D3,0xB5E4,0xDB79, - 0xDB67,0xDB7B,0xDB62,0xDBA6,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xDBAE,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xDB5F,INVALC,INVALC,INVALC,INVALC, - INVALC,0xDFC7,INVALC,0xDFDD,0xB855,0xDFCC,INVALC,0xDFCA, - 0xDFB5,0xB8A9,0xDFC5,0xDFD9,0xDFC1,0xB8B1,0xDFD8,0xDFBF, - 0xB5E3,0xDFCF,0xDFC0,0xDFD6,0xB8B0,0xB8A8,INVALC,0xDFAA, - 0xDFB2,INVALC,0xDFCB,0xDFC3,0xDFDC,0xDFC6,0xB8B6,0xDFD7, - INVALC,0xB8AD,INVALC,0xDFC9,0xDFD1,0xDFB6,0xDFD0,INVALC, - 0xDFE1,0xDFB1,0xDFD2,INVALC,0xDFDF,INVALC,0xDFAB,0xB5DB, - INVALC,0xDFB9,0xDFB8,0xB8AF,INVALC,0xDFBC,0xDFBE,0xDFCD, - 0xDFDE,0xB8B2,INVALC,0xB8B3,INVALC,0xDFB0,0xB8AB,0xDFB4, - 0xDFDA,0xB8B4,INVALC,0xB8AC,0xB8AE,0xB8B5,0xDFE0,0xDFD3, - 0xDFCE,INVALC,INVALC,0xDFBB,0xDFBA,0xB8AA,0xDFAC,0xB8A7, - 0xDFC4,0xDFAD,0xDFC2,INVALC,INVALC,0xDFB7,0xDFDB,INVALC, - INVALC,INVALC,0xB8A6,INVALC,INVALC,INVALC,0xDFB3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xDFAF,0xDFD5,0xDFAE, - 0xBB60,0xE3D3,INVALC,INVALC,0xE3C2,INVALC,INVALC,0xE3AC, - 0xE3CA,0xBB58,0xE3BB,0xE3C5,0xBB5B,0xE3BE,0xBB59,0xE3AF, - 0xE3CD,0xE3AE,0xE3C1,INVALC,0xE3AD,INVALC,INVALC,0xE3BF, - 0xE3C8,0xE3C6,0xE3BA,0xE3B5,0xE3B3,INVALC,0xE3B4,0xE3C7, - 0xE3D2,0xE3BC,0xBB5A,INVALC,0xE3B7,INVALC,0xE3CB,INVALC, - 0xBB5D,0xE3B6,0xE3B0,0xE3C0,0xBB61,INVALC,INVALC,0xBB55, - 0xBB5E,0xE3B8,0xE3B2,INVALC,0xBB57,0xDFD4,0xBB56,0xE3C3, - INVALC,0xBB54,0xBB63,0xBB5C,0xE3C4,0xE3B9,0xE3B1,0xE3CC, - 0xE3BD,0xBB62,0xE3D0,0xBB5F,0xE3CF,INVALC,0xE3C9,0xE3CE, - INVALC,INVALC,INVALC,0xE3D1,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xE773, - 0xE774,0xE767,0xE766,0xE762,0xBDB4,INVALC,0xBDAC,0xE776, - 0xE775,0xDFA9,0xE75F,0xE763,0xE75D,INVALC,0xE770,0xE761, - INVALC,0xE777,0xE75A,0xE758,0xE764,0xE76E,0xE769,0xBDB6, - /* Block 134, Array index 0x4600 */ - 0xE74F,INVALC,0xE76D,INVALC,INVALC,INVALC,0xBDB7,0xDFBD, - 0xE75B,0xE752,0xE755,0xE77B,0xE75C,0xE753,0xE751,0xE74E, - INVALC,0xBDB0,0xE765,0xBDAF,0xBDB3,0xE760,0xE768,0xBDA9, - 0xE778,0xE77C,0xBDAB,INVALC,0xE757,0xE76B,0xE76F,0xE754, - 0xE779,0xBDB2,INVALC,0xBDB1,0xE74C,0xBDB5,0xE772,0xE756, - 0xE76A,0xE750,0xE75E,0xE759,0xBDAD,0xBDAE,0xE76C,0xE77D, - 0xE77A,0xE771,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xE74D,INVALC,0xBDAA,0xEB49,INVALC, - 0xEB40,0xEB43,INVALC,0xBFBB,0xEB45,0xEAF9,0xEB41,0xEB47, - 0xBFB8,0xBFBC,0xBFB6,INVALC,INVALC,0xEAFB,0xEB4C,INVALC, - INVALC,0xEB46,INVALC,0xEAFC,0xEB55,0xEB4F,0xEAF8,0xEE46, - 0xEAFE,0xBFB7,INVALC,0xEB4A,INVALC,0xEB54,0xBFBF,INVALC, - 0xEB51,0xEAFD,0xEB44,0xEB48,0xEB42,0xEB56,0xEB53,0xEB50, - 0xBFB9,0xBFBA,0xBFBE,0xEAFA,0xEB57,0xBFBD,0xEB4D,INVALC, - INVALC,0xEB4B,INVALC,INVALC,INVALC,0xEB4E,0xEE53,0xEE40, - 0xEE45,0xEE52,0xEE44,0xEDFB,0xEE41,INVALC,0xC1A2,INVALC, - 0xEDF4,0xEE4D,0xEE4F,0xEDF3,0xC1A1,0xEE51,0xEE49,0xC1A8, - 0xEE50,0xEE42,0xC1AA,0xEDF9,0xEB52,0xEE4A,0xEE47,0xEDF5, - 0xEE55,0xC1A4,INVALC,INVALC,0xC1A5,0xEDF7,0xEE48,INVALC, - 0xEE54,0xEE4B,0xEDFD,0xC1A7,0xC1A3,0xEE4C,0xEDFE,0xEE56, - 0xEDF8,0xEE43,0xEE4E,0xEDFA,0xEDFC,INVALC,0xC2CB,0xEDF6, - 0xC1A9,0xC2C4,0xC17E,INVALC,INVALC,INVALC,INVALC,0xC1A6, - 0xC2C8,0xF0B3,INVALC,0xF0A9,0xF0A4,0xF0AA,0xF0B4,0xF0B8, - 0xF0B7,0xC2CA,0xC2C9,INVALC,INVALC,0xF0AB,0xF0B9,0xF0AE, - 0xF0A6,INVALC,0xF0A8,0xF0A7,0xF0AD,0xF0B2,0xF0A5,0xF0AC, - 0xF0B1,0xC2C7,INVALC,0xF0AF,INVALC,0xC2C5,0xF0B0,0xC2C3, - 0xC2C6,0xF2D5,0xF0B5,INVALC,INVALC,0xC3C2,INVALC,0xF2CD, - 0xF2D1,0xF2C9,0xF2CC,INVALC,0xF2D4,0xC3C0,0xF2D9,0xF2D2, - INVALC,0xF2CA,0xF2DA,0xF2D3,0xC3C3,0xC3C4,0xF2D7,INVALC, - 0xF2CB,0xC3BF,0xC3C1,0xF2C6,0xF2CE,0xF2C8,INVALC,0xF2D8, - 0xF2D6,0xF2C7,0xF2CF,INVALC,INVALC,INVALC,0xF4BE,0xC3C5, - 0xF2D0,0xC4A7,0xC4A9,0xC4A6,INVALC,0xF4C3,0xF4BB,0xF4B9, - /* Block 135, Array index 0x4700 */ - 0xF4BD,0xF4BA,INVALC,INVALC,0xF4BF,0xF4C1,0xC4AA,0xC4AC, - INVALC,0xF4C0,0xC4AD,0xC4AB,0xF4C2,INVALC,INVALC,INVALC, - INVALC,0xC4A8,INVALC,INVALC,INVALC,INVALC,INVALC,0xC4F4, - 0xF5F1,0xF5F7,0xC4F6,0xF4BC,0xF5F6,INVALC,0xF5FD,0xF5F4, - 0xF5FB,0xF5FA,0xF4B8,0xF5F5,0xF0B6,0xF5FE,0xF5F3,0xF5F8, - INVALC,0xF5FC,0xF5F2,INVALC,0xF74A,0xC4F5,0xF5F9,INVALC, - INVALC,0xF7F4,0xF74B,0xF749,0xF747,0xF748,0xF74C,INVALC, - 0xC5D9,0xF7F2,0xF7F0,0xF7F5,0xF7F3,INVALC,0xF7F6,0xC5DA, - 0xF7F1,INVALC,INVALC,0xF8BC,INVALC,INVALC,0xF945,0xF946, - 0xF947,INVALC,INVALC,0xF9C7,0xF9BD,0xCA4F,0xAAEA,INVALC, - 0xAD68,INVALC,0xD3B8,0xD3B7,0xB040,0xB342,0xD77C,INVALC, - INVALC,0xD77B,INVALC,0xB5EA,0xB8B8,INVALC,0xB8B7,0xB8B9, - INVALC,0xE3D4,0xE77E,0xEB58,0xEB5A,0xEB59,INVALC,0xC1AB, - 0xEE57,0xF0BA,0xF9A5,0xA6E4,INVALC,0xCDC9,0xCDCA,0xCDC8, - 0xCDC7,0xAAEB,INVALC,0xD0A9,0xD0A7,INVALC,INVALC,0xD0A6, - INVALC,0xAD69,0xAD6B,0xAD6A,0xD0A8,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xD3C4,0xD3C1,0xD3BF, - INVALC,INVALC,0xB041,0xD3C2,0xB046,0xD3BC,0xD3CB,INVALC, - 0xD3CD,0xD3BD,INVALC,0xB043,0xD3CE,0xD3C9,0xD3BB,0xD3C0, - 0xD3CA,0xD3C6,0xD3C3,INVALC,0xB048,0xD3CC,0xD3BE,INVALC, - INVALC,0xD3C7,0xD3B9,0xB047,0xB044,0xD3C5,INVALC,0xD3C8, - 0xD3BA,0xB045,0xB042,INVALC,INVALC,INVALC,INVALC,0xB34C, - 0xD7A5,0xB34B,INVALC,0xD7A8,0xD7AB,0xB348,0xB346,0xD77E, - 0xD7A9,0xD7A7,0xD7A4,0xD7AC,0xD7AD,0xD7AF,0xD7B0,0xD77D, - 0xB345,0xD7A2,0xD7A1,0xD7AE,0xB347,0xD7A3,0xB349,0xB344, - 0xD7A6,0xB34D,INVALC,0xB34A,0xD7AA,INVALC,INVALC,INVALC, - 0xB5F1,0xDBBF,INVALC,0xDBB4,0xB5EE,INVALC,0xDFE7,0xDBBD, - 0xDBB1,0xB5EC,0xDBB6,0xB5EF,0xDBBA,0xDBB8,0xB5F2,0xB5EB, - INVALC,INVALC,0xDBB2,0xDBB5,0xB5F0,INVALC,0xDBB3,INVALC, - 0xDBBE,0xDBBC,0xDBB7,0xDBB9,0xDBBB,0xB5ED,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xDFE8,0xDFEE,0xDFE4, - 0xDFEA,0xB8BA,0xDFE6,0xB8C0,INVALC,INVALC,0xB8BF,INVALC, - /* Block 136, Array index 0x4800 */ - 0xB8BE,0xDFED,0xB8C1,0xB8C2,0xDFE3,0xDFF0,0xB8C3,0xB8BD, - 0xB8BC,0xDFEC,0xB8C4,0xDFE2,0xDFE5,0xDFEF,0xDFEB,INVALC, - INVALC,0xE3F4,0xE3E9,0xB8BB,INVALC,INVALC,INVALC,INVALC, - 0xBB6A,0xE3DD,0xE3F2,0xE3DE,0xBB65,INVALC,0xE3DB,INVALC, - 0xE3E4,0xE3DC,0xBB67,0xE3D6,0xE3F1,0xBB68,0xE3EE,0xE3EF, - 0xE3D7,0xBB6D,0xE3E6,INVALC,0xE3E0,0xE3E7,0xE3DA,INVALC, - 0xE3F3,0xE3EB,0xE3E5,0xE3D5,0xBB69,0xE3EC,INVALC,0xBB6C, - 0xE3F0,INVALC,0xE3EA,0xBB66,0xE3E8,INVALC,0xE3E2,0xBB64, - 0xE3D9,0xE3E1,0xE3ED,0xE3DF,INVALC,INVALC,0xE3E3,INVALC, - INVALC,INVALC,INVALC,INVALC,0xBDC1,0xDFE9,0xE7B2,0xE7BB, - 0xE7B1,0xE7AD,0xE7AA,0xBDC2,0xE7A8,0xBB6B,0xE7A1,0xBDC0, - 0xE7A7,0xBDBF,0xE7AC,0xE7A9,0xE7B9,0xE7B4,0xE7AE,0xE7B3, - 0xBDBB,0xE7AB,0xE7BE,0xE7A2,0xE7A3,0xE7BA,0xBDBC,0xE7BF, - 0xBDBE,0xE7C0,0xE7B0,0xE3D8,0xE7B6,0xE7AF,0xE7B8,0xE7B5, - INVALC,INVALC,INVALC,0xE7A6,0xBDB9,0xE7BD,0xBDBA,0xE7A4, - 0xBDBD,0xEB64,0xE7B7,0xE7BC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xEB61,0xBDB8,0xBFC0,0xEB6B,0xEB67,INVALC,0xEB65, - 0xEB60,0xEB6F,INVALC,INVALC,INVALC,0xBFC4,INVALC,0xEB5C, - 0xEB68,0xEB69,0xEB5F,0xEB5E,0xEB6C,INVALC,0xEB62,0xEB5D, - 0xEB63,INVALC,0xEB6E,0xEB5B,0xEB6D,0xEB6A,0xBFC2,0xBFC1, - INVALC,INVALC,0xBFC3,0xEB66,0xF0CB,INVALC,INVALC,INVALC, - INVALC,INVALC,0xEE59,0xC1B1,0xEE5D,0xEE5A,0xEE61,0xEE67, - 0xEE5C,INVALC,0xEE70,0xC1AE,0xEE6A,0xEE5F,0xEE6B,0xEE66, - 0xEE6D,0xEE5E,0xC1B3,0xC1B2,0xEE60,0xEE6E,0xEE58,0xEE6C, - 0xC1AC,INVALC,0xEE64,0xEE63,0xEE68,0xEE5B,0xC1B0,INVALC, - 0xC1B4,0xEE62,0xEE69,0xC1B5,0xEE65,INVALC,INVALC,INVALC, - INVALC,0xC1AD,0xC1AF,0xF0C7,0xF0C5,INVALC,INVALC,0xF0CC, - 0xF0C9,0xF0CD,INVALC,0xF0BE,0xF0C6,0xF0D1,0xEE6F,0xF0C2, - 0xC2CF,0xE7A5,0xF0BD,0xF0CA,0xF0C4,0xF0C1,0xF0BC,0xF0BB, - 0xF0D0,INVALC,0xF0C0,0xF0BF,0xC2CD,0xF0C8,INVALC,0xC2CC, - INVALC,INVALC,0xC2CE,0xF0C3,0xF0CF,INVALC,0xF2DE,0xF2DF, - INVALC,0xC3C9,0xF2DC,0xC3C6,0xF2E4,INVALC,0xC3CA,0xF2E6, - /* Block 137, Array index 0x4900 */ - 0xF2DB,0xF0CE,0xF2E8,0xF2DD,INVALC,0xC3C7,0xF2E3,INVALC, - 0xF2E5,0xF2E0,0xF2E7,0xF2E2,0xF2E1,0xC3C8,INVALC,INVALC, - 0xF4C5,0xF4C6,INVALC,0xF4C8,0xC4AE,0xC4AF,0xF4C9,0xF4C7, - INVALC,0xF4C4,INVALC,0xF642,0xF645,0xF641,INVALC,0xC4FA, - 0xF643,0xC4F9,0xC4F8,0xC4F7,0xF644,0xF751,0xF74F,INVALC, - 0xF74E,0xF640,0xF750,0xF646,0xF74D,INVALC,0xF7F9,0xF7D7, - 0xF7F7,0xC5DB,0xF7F8,0xF7FA,INVALC,0xF8BF,0xC5FA,0xF8BE, - 0xF8BD,0xC5FB,INVALC,0xC65A,0xF96E,0xF9A7,0xF9A6,0xF9A8, - 0xA6E5,0xD0AA,INVALC,0xD3CF,0xD3D0,INVALC,INVALC,INVALC, - 0xDBC0,INVALC,0xF647,0xF8C0,0xA6E6,0xAD6C,0xD0AB,INVALC, - INVALC,INVALC,0xD7B1,0xB34E,INVALC,0xDBC2,0xDBC1,0xB5F3, - INVALC,0xB8C5,0xE7C1,0xBDC3,INVALC,0xBDC4,INVALC,INVALC, - INVALC,0xBFC5,0xC5FC,0xA6E7,INVALC,INVALC,INVALC,0xD0AC, - 0xAAED,0xD0AE,0xD0AD,0xAD6D,INVALC,0xD3D1,INVALC,0xD3D8, - 0xB049,0xD3D6,0xD3D4,INVALC,0xD3DB,0xD3D2,0xD3D3,0xB04A, - INVALC,0xB04E,INVALC,INVALC,0xD3DC,0xB04D,0xD3DA,0xD3D7, - 0xD3D5,0xB04B,0xB04C,0xD3D9,INVALC,INVALC,INVALC,INVALC, - 0xB350,0xD7B2,INVALC,0xB355,0xD7C2,0xB354,0xD7C4,INVALC, - INVALC,0xD7B8,0xB352,0xD7C3,INVALC,0xD7B3,0xB353,0xD7BF, - 0xD7BB,0xD7BD,0xD7B7,0xD7BE,INVALC,INVALC,0xB34F,0xD7BA, - INVALC,0xD7B9,0xD7B5,INVALC,0xD7C0,INVALC,INVALC,0xD7BC, - 0xD7B4,INVALC,0xD7B6,0xB351,0xD7C1,INVALC,INVALC,INVALC, - INVALC,0xB5F6,0xDBCD,INVALC,INVALC,INVALC,0xDBC9,0xDBCB, - 0xDBC6,0xDBC5,0xDBC3,INVALC,0xDBCA,0xDBCC,0xDBC8,INVALC, - 0xDBC7,0xB5F4,0xB5F5,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xDBCF,0xB8CD,0xDFF2,0xDFF8,0xDFF3,0xDFF4,INVALC, - 0xDFF9,INVALC,0xB8CF,INVALC,0xB8C7,0xB8CE,0xDFF1,0xDBC4, - 0xB8CA,0xB8C8,0xDFF7,0xDFF6,0xB8C9,0xB8CB,0xDFF5,0xB8C6, - INVALC,0xB8CC,INVALC,INVALC,INVALC,INVALC,INVALC,0xE3F6, - 0xBB74,INVALC,INVALC,0xE442,0xE441,INVALC,0xE3FB,0xBB76, - 0xE440,0xE3F7,0xE3F8,0xBB6E,0xBB70,INVALC,0xE3FD,0xE3F5, - 0xBB72,0xBB71,0xE3F9,0xE3FE,0xE3FC,0xBB73,0xE3FA,INVALC, - /* Block 138, Array index 0x4A00 */ - INVALC,0xDBCE,0xBB6F,INVALC,INVALC,0xE7C2,0xE7C9,0xBDC6, - INVALC,0xE7CD,0xBDCA,0xE7C5,0xE7C3,INVALC,0xE7CC,INVALC, - 0xBDC5,0xE7CB,0xBDC7,0xBDC8,0xE7C4,0xBDC9,0xE7CA,0xE7C6, - 0xE7C7,0xE7C8,0xBB75,INVALC,INVALC,INVALC,0xEB70,0xEB7C, - INVALC,0xBFCA,0xEB77,0xEB79,INVALC,0xBFC8,0xEB71,0xEB75, - INVALC,0xEB78,0xBFC6,0xBFC9,0xEB7B,0xEB73,0xEB74,0xEB7A, - 0xEB72,0xEB76,0xBFC7,0xEE72,INVALC,0xEE71,0xC1B7,0xEE77, - 0xC1B9,INVALC,INVALC,0xC1B6,0xEE73,0xC1BA,0xEE74,INVALC, - INVALC,0xEE75,0xEE78,INVALC,0xC1B8,INVALC,0xF0D6,INVALC, - INVALC,0xF0D9,INVALC,0xF0D3,0xF0D5,INVALC,INVALC,0xF0D4, - 0xF0D7,0xF0D8,0xEE76,0xF0D2,INVALC,INVALC,0xC3CD,0xF2EC, - 0xF2EF,0xF2F1,0xF2EA,0xF2EB,0xF2EE,0xF2F0,0xC3CE,0xC3CC, - 0xC3CB,0xF2ED,0xF2E9,0xF4CA,0xC4B0,INVALC,0xF4CB,INVALC, - INVALC,0xF649,0xC4FB,0xF64B,0xC4FC,0xF648,0xF64A,0xC5A8, - INVALC,0xF752,0xC5A7,0xF7FD,0xF7FC,INVALC,0xF7FB,INVALC, - INVALC,0xF948,0xF949,0xF94B,0xF94A,INVALC,0xCA50,0xA6E8, - INVALC,0xAD6E,0xD7C5,0xB5F7,INVALC,0xDFFA,0xC2D0,INVALC, - 0xF2F2,INVALC,INVALC,0xA8A3,INVALC,INVALC,INVALC,0xB357, - INVALC,INVALC,INVALC,0xB356,INVALC,0xDBD0,0xB5F8,0xDBD2, - 0xDBD1,INVALC,INVALC,0xDFFB,0xB8D0,0xE443,0xE446,0xE445, - INVALC,0xE444,0xE7CE,0xE7D0,0xE7CF,INVALC,0xBFCC,INVALC, - INVALC,INVALC,0xBFCB,INVALC,0xC1BB,0xEE79,0xEE7B,0xEE7A, - INVALC,INVALC,0xC2D1,INVALC,INVALC,INVALC,0xF2F4,0xF2F3, - INVALC,0xF4CC,0xC4B1,INVALC,INVALC,0xC4FD,0xF754,0xF753, - 0xC65B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xA8A4,0xD0AF,0xAD6F,0xD7C8,0xD7C6,INVALC, - INVALC,0xD7C7,0xDBD4,0xDBD5,0xE043,0xDBD3,INVALC,0xDFFC, - 0xE041,0xE040,0xE042,0xB8D1,0xDFFE,0xDFFD,0xE044,INVALC, - 0xE449,0xE447,INVALC,0xE448,0xE7D3,0xE7D1,INVALC,INVALC, - 0xE7D2,0xEB7D,0xEE7C,0xEE7D,0xC2D2,INVALC,0xF2F5,0xF4CD, - 0xC4B2,INVALC,0xF64C,0xF755,0xC5A9,INVALC,0xF7FE,0xF94C, - /* Block 139, Array index 0x4B00 */ - 0xA8A5,INVALC,0xAD71,0xAD72,0xD0B0,INVALC,INVALC,0xD0B1, - 0xAD70,INVALC,0xB054,INVALC,0xB052,INVALC,0xB051,0xB058, - 0xB050,0xB059,0xD3DD,0xB056,INVALC,0xB053,0xB057,0xB055, - 0xB04F,INVALC,INVALC,0xB35F,INVALC,0xB359,0xD7CC,0xB35E, - INVALC,INVALC,0xB360,0xB35A,INVALC,0xB35B,INVALC,0xD7CA, - INVALC,INVALC,0xB358,INVALC,0xD7CB,0xB35D,INVALC,INVALC, - 0xD7C9,0xB35C,INVALC,INVALC,0xB644,INVALC,0xB646,INVALC, - INVALC,0xDBD8,0xB645,0xB5F9,0xB5FD,INVALC,0xB8E4,0xE049, - 0xDBDA,0xB5FE,INVALC,INVALC,0xDBDD,0xDBDE,0xB643,INVALC, - 0xDBE0,INVALC,0xDBE2,INVALC,0xDBE3,0xDBD7,0xDBD6,0xDBE4, - 0xB642,0xDBE1,0xDBDF,INVALC,0xB640,0xB5FB,0xB647,0xDBDB, - 0xDBDC,0xDBD9,INVALC,0xB641,INVALC,INVALC,0xB5FC,INVALC, - 0xB5FA,0xE048,0xB8DF,0xB8DA,INVALC,INVALC,0xB8D5,INVALC, - 0xB8E5,0xB8D6,INVALC,0xB8D2,0xB8E1,0xB8DE,0xB8E0,INVALC, - 0xB8D7,0xB8DC,0xB8D3,0xB8D4,0xE050,0xE04D,0xE045,0xE04A, - INVALC,0xB8E2,0xE051,0xB8E3,0xB8D9,INVALC,INVALC,0xE047, - INVALC,0xE04F,0xE04B,0xE04E,0xE04C,0xB8DD,0xE046,0xB8D8, - INVALC,INVALC,INVALC,0xE44C,0xBB78,0xBB7B,INVALC,0xE44E, - INVALC,0xBBA5,0xE44D,0xBB7D,INVALC,0xBDCF,0xE44F,INVALC, - 0xBBA4,0xE44B,0xBBA6,INVALC,INVALC,INVALC,0xBB79,INVALC, - 0xB8DB,0xBB7C,INVALC,0xBB7A,0xBB7E,0xBBA2,0xBB77,0xBBA7, - 0xBBA3,INVALC,0xBBA1,0xE44A,INVALC,INVALC,INVALC,INVALC, - 0xBDD6,INVALC,0xBDD2,INVALC,INVALC,INVALC,0xBDD9,INVALC, - 0xE7D6,0xBDDA,0xE7E2,0xE7DB,0xBDCB,0xE7E3,0xE7DD,0xBDD5, - 0xE7DE,INVALC,0xBDD4,0xE7E1,0xBDCE,0xE7DF,0xE7D5,0xBDCD, - 0xEBAA,0xBDD3,INVALC,0xBDD0,INVALC,0xBDD8,INVALC,0xE7D4, - INVALC,0xE7D8,0xBDCC,0xE7D7,0xE7D9,0xE7DA,0xBDD7,0xE7DC, - 0xE7E0,0xE7E4,INVALC,0xBDDB,0xBFD2,0xEBA5,0xEBAB,0xEBA8, - 0xEB7E,0xEBAC,0xEBA1,INVALC,0xEBA7,INVALC,0xBFCD,0xBFD3, - 0xEBAD,INVALC,INVALC,0xBFCF,INVALC,0xBFD9,0xBFD4,0xEBAF, - 0xEBA9,0xBFD0,0xEBA2,0xBFDA,0xEBA3,0xEBA4,0xBFDB,0xBFD8, - 0xBDD1,INVALC,0xBFCE,0xEBB0,0xBFDC,INVALC,0xBFD5,0xEBAE, - /* Block 140, Array index 0x4C00 */ - 0xBFD1,0xBFD6,0xBFD7,INVALC,0xC1C3,0xEEA4,0xEEAD,0xEEAA, - 0xEEAC,INVALC,0xC1C0,0xEEA5,INVALC,0xEEAB,0xC1BC,0xEEA7, - 0xC1C4,0xEEA3,0xEEA8,0xEEAF,0xEBA6,0xEEA9,0xEEA2,0xC1BD, - 0xEEA1,0xC1BE,0xEEB0,0xC1BF,0xEEAE,0xC1C2,0xEE7E,INVALC, - 0xC1C1,INVALC,0xEEA6,0xF0DC,0xF0EA,0xF0E5,0xF0E7,0xF0DB, - 0xC2D3,INVALC,0xF0DA,0xC2D6,0xC2D5,INVALC,0xF0E9,0xF0E1, - 0xF0DE,0xF0E4,INVALC,0xF0DD,INVALC,0xF0DF,0xF0E8,0xF0E6, - INVALC,0xC2D4,0xF0ED,0xF0EB,0xF0E2,0xF0EC,0xF0E3,INVALC, - 0xF2F9,0xC3CF,0xF341,INVALC,INVALC,0xF64F,0xC3D6,0xF0E0, - 0xF2F7,0xC3D2,0xF2F8,0xF2FD,INVALC,INVALC,0xC3D4,0xC3D5, - 0xF2F6,0xF340,0xF342,0xF2FA,0xF2FC,0xF2FE,0xF2FB,0xF343, - 0xC3D1,0xC3D7,0xC3D3,INVALC,0xC3D0,0xF4D0,INVALC,0xC4B7, - 0xF4CE,INVALC,INVALC,0xF4D2,INVALC,0xF4D3,0xC4B5,0xF4D4, - 0xF4D1,INVALC,0xF4CF,0xC4B8,0xC4B4,0xF4D5,INVALC,0xC4B6, - 0xC4B3,INVALC,INVALC,INVALC,0xC4FE,INVALC,INVALC,0xC540, - 0xF64E,0xF64D,0xF650,0xF651,INVALC,0xC541,0xF756,0xF75B, - 0xC5AA,INVALC,0xF758,INVALC,0xF757,0xF75A,0xF759,INVALC, - 0xF843,INVALC,0xC5DC,0xF842,0xF840,INVALC,0xF841,INVALC, - INVALC,INVALC,0xC5FE,0xC5FD,0xF8C1,0xF8C2,0xC640,INVALC, - 0xF94D,0xF94E,0xC667,INVALC,0xC66D,INVALC,0xF9A9,0xF9C8, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 141, Array index 0x4D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xA8A6, - INVALC,0xD7CD,INVALC,0xD7CE,0xE052,0xE450,0xE7E5,0xC1C6, - INVALC,0xC1C5,0xF0EE,0xF344,INVALC,0xF844,0xA8A7,0xD3DE, - 0xB05A,0xB361,0xE054,0xE053,0xBDDC,0xE7E6,0xBDDD,0xEEB1, - 0xC2D7,INVALC,INVALC,INVALC,0xC676,0xA8A8,0xCDCB,0xD3DF, - INVALC,INVALC,0xB362,INVALC,0xD7CF,0xD7D0,INVALC,0xDBE5, - INVALC,0xB648,0xB8E6,INVALC,0xE056,0xE055,0xE057,INVALC, - 0xE451,0xE452,0xBBA8,0xBFDD,0xBDDE,0xBFDE,INVALC,0xEEB5, - 0xEEB2,0xEEB4,0xEEB3,0xC1C7,INVALC,0xF0EF,0xF346,0xF345, - 0xCBA4,0xB05C,0xB05B,0xD3E0,INVALC,0xD7D1,INVALC,INVALC, - 0xDBE7,0xDBE6,0xB649,INVALC,0xE059,0xE05A,0xE058,INVALC, - INVALC,0xB8E8,0xB8E7,INVALC,0xBBAA,0xBBA9,INVALC,0xE7E7, - 0xEBB3,0xEBB1,0xEBB2,0xBFDF,0xEEB7,0xEEB6,INVALC,0xF0F2, - 0xF0F1,0xF0F0,0xF347,INVALC,0xF9AA,0xA8A9,0xAD73,INVALC, - 0xAD74,0xB05D,0xB05E,0xD3E2,0xD3E1,0xD7D2,INVALC,0xB368, - 0xB366,0xB363,0xB367,0xB365,0xB364,INVALC,INVALC,0xB64A, - 0xDBEA,INVALC,0xB8ED,0xB64C,0xB651,0xDBEC,0xB653,0xB652, - 0xB655,0xDBEB,0xDBE8,0xB64F,0xB64B,0xB64D,0xDBE9,0xB654, - 0xB650,0xB64E,0xB8EF,0xB8EE,0xB8EC,0xB8F0,INVALC,0xB8EA, - 0xB8EB,INVALC,0xB8E9,INVALC,0xE05B,INVALC,INVALC,0xE454, - INVALC,0xBBAC,0xBBAD,0xBBAB,INVALC,0xE453,INVALC,0xE455, - INVALC,0xE7EA,0xE7EC,INVALC,0xBDE7,0xE7ED,0xBDE0,0xE7E9, - 0xBDDF,0xBDE9,0xBDE5,0xBDE6,0xBDE2,0xE7E8,0xBDE1,0xE7EE, - 0xE7EB,INVALC,0xBDE8,INVALC,0xBDE3,0xBDE4,0xEBB5,INVALC, - 0xEBB7,0xEBB6,INVALC,0xEBB8,0xBFE0,0xEBB4,INVALC,INVALC, - 0xC1CB,0xEEB8,0xC1C8,0xC1CC,0xC1CA,0xC1C9,0xF0F3,INVALC, - /* Block 142, Array index 0x4E00 */ - 0xF0F6,INVALC,0xF0F5,INVALC,0xF0F4,0xC2D8,0xF348,0xF349, - 0xC3D8,0xF34A,0xC3D9,INVALC,INVALC,0xC4BA,INVALC,0xC4B9, - 0xF652,INVALC,INVALC,0xC542,0xF653,0xF75C,0xC5AB,0xC5AC, - INVALC,0xF845,INVALC,0xC642,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA8AA,INVALC,0xB36A,0xB369, - 0xE05C,0xE05D,INVALC,0xBBAE,0xEBB9,0xBDEA,0xEBBA,0xEEB9, - 0xA8AB,INVALC,0xD0B2,0xAD76,0xAD75,INVALC,0xD3E3,0xB05F, - 0xD3E4,0xD7D5,INVALC,0xD7D4,INVALC,0xD7D3,INVALC,INVALC, - 0xDBEE,0xB658,INVALC,INVALC,0xDBED,0xB657,INVALC,INVALC, - INVALC,0xDBEF,0xB656,INVALC,0xE05F,0xE062,0xE060,0xE061, - 0xE065,0xE05E,0xE066,0xE063,0xE064,0xBBB0,0xE456,INVALC, - INVALC,0xBBAF,INVALC,0xE7F2,0xE7F0,INVALC,INVALC,0xBDEB, - 0xE7EF,0xE7F1,INVALC,0xBDEC,INVALC,0xEBBB,INVALC,0xEBBC, - 0xC1CD,INVALC,0xF34C,0xF34E,0xF34B,0xF34D,0xF4D6,0xF654, - INVALC,INVALC,0xF96F,0xA8AC,0xAD77,0xD3E5,0xD3E7,0xD3E6, - INVALC,0xD7D8,0xB36C,INVALC,0xD7D6,INVALC,0xB36B,0xD7D9, - INVALC,0xD7DA,0xD7D7,INVALC,INVALC,0xDBFB,0xB660,0xDBF3, - 0xDBF9,INVALC,INVALC,0xB65B,0xB65E,0xDBF2,0xB659,0xDBF6, - 0xE06C,0xB65D,INVALC,0xDBF1,INVALC,0xDBF7,0xDBF4,0xDBFA, - 0xDBF0,0xDBF8,0xB65C,0xB65F,0xDBF5,0xB65A,INVALC,0xB8F2, - 0xE068,0xB8F1,0xE06F,0xE06E,0xB8F8,INVALC,0xB8F9,0xE070, - 0xB8F3,0xE06D,0xB8F7,0xE072,0xE069,INVALC,0xE06B,0xB8F4, - 0xE067,0xE06A,0xE071,0xB8F5,0xE073,INVALC,INVALC,INVALC, - INVALC,INVALC,0xB8F6,INVALC,0xBBB1,0xE45B,0xE461,0xE459, - /* Block 143, Array index 0x4F00 */ - 0xE462,INVALC,0xE458,0xE45D,0xE463,0xE460,0xE45F,0xE45E, - INVALC,0xE457,0xE45C,INVALC,INVALC,0xE45A,INVALC,0xBDF1, - 0xBDEE,0xE7FB,0xE841,0xE843,0xE840,0xE7F8,0xE7FA,0xE845, - 0xE842,0xE7FC,0xE846,0xE7F9,0xE844,0xBDEF,0xBDF5,0xBDF3, - 0xE7F3,0xBDF4,0xBDF0,0xE7F4,0xE7F6,0xE7F5,0xE7FD,0xE7FE, - INVALC,0xBDF2,INVALC,0xBDED,INVALC,INVALC,0xE7F7,INVALC, - 0xEBC6,0xBFE2,INVALC,0xEBBD,0xBFE3,0xBFE6,0xEBC2,INVALC, - 0xEBBF,0xBFE5,INVALC,INVALC,0xEBC3,0xEBC4,0xEBBE,0xEBC7, - 0xEBC0,0xEBC5,0xBFE4,INVALC,0xBFE1,0xEBC1,INVALC,0xEEBF, - 0xC1D0,0xC1CE,0xC1D1,0xC1CF,0xEEBE,0xEEBB,0xEEBA,INVALC, - 0xEEBD,INVALC,INVALC,0xEEBC,0xF145,0xC2DE,0xF0FB,0xF0FA, - INVALC,0xC2D9,0xF141,0xF140,0xF0F7,0xF143,0xF0FC,0xC2DD, - 0xF0F9,0xF142,0xF0F8,0xC2DA,0xC2DC,0xF0FD,0xC2DB,0xF0FE, - INVALC,0xF144,0xF352,INVALC,0xC3DE,0xF34F,INVALC,0xF353, - INVALC,INVALC,0xC3DB,0xF351,0xC3E0,INVALC,0xC3DD,INVALC, - 0xF350,INVALC,0xC3DF,0xF354,0xC3DA,INVALC,INVALC,INVALC, - INVALC,0xC4BC,0xC4BE,INVALC,0xF4D9,0xC4BD,0xF4D7,0xC3DC, - 0xF4D8,0xC4BB,0xC543,0xC545,0xF656,0xC544,0xF655,INVALC, - 0xF761,0xC5AD,0xF760,0xC5AE,0xF75E,0xF75D,0xF762,0xF763, - 0xF846,INVALC,0xF75F,INVALC,INVALC,0xF8C6,0xF8C3,0xF8C4, - 0xF8C5,0xC65C,INVALC,0xF951,0xF950,0xF94F,0xF970,INVALC, - 0xF9BE,0xF9AB,0xC66E,0xA8AD,0xB060,INVALC,INVALC,INVALC, - INVALC,INVALC,0xB8FA,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xBDF6,INVALC,INVALC,0xEBC8,INVALC,INVALC, - 0xC2DF,INVALC,0xF355,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xF9AC,0xA8AE,0xAAEE,0xAD79,0xAD78,INVALC,0xB063, - INVALC,0xD3E8,0xB061,0xD3E9,0xB062,INVALC,INVALC,0xD7DF, - 0xD7DB,INVALC,INVALC,0xB36D,0xD7DE,0xD7DD,0xD7DC,0xB36E, - 0xD7E0,0xD7E1,INVALC,INVALC,INVALC,0xDC43,0xDC41,0xDC45, - 0xDC46,0xDC4C,INVALC,0xDC48,0xDC4A,INVALC,0xDC42,0xDBFC, - INVALC,0xDC49,INVALC,INVALC,0xDC4B,0xDC44,0xDC47,0xDBFD, - 0xB662,0xDC40,0xDBFE,0xB661,0xB663,INVALC,0xB8FD,0xE075, - /* Block 144, Array index 0x5000 */ - 0xE077,0xE076,0xE07B,0xB8FB,INVALC,0xE078,0xE074,0xE079, - 0xE07A,0xB8FC,0xB8FE,0xE07C,INVALC,0xE467,0xE466,INVALC, - 0xE464,0xE465,0xBBB3,0xBBB5,0xBBB2,0xBBB4,0xE84D,0xE84E, - 0xE849,INVALC,0xE84A,0xBDF8,0xBDFD,0xBDF7,0xBDFE,0xBDF9, - 0xE84B,INVALC,INVALC,0xE84C,0xE848,0xBE40,0xBDFB,INVALC, - INVALC,0xBDFA,0xBDFC,INVALC,0xE847,INVALC,0xEBCA,0xBFE8, - INVALC,INVALC,0xEBCC,0xBFEA,0xEBCF,0xEBCB,0xEBC9,0xEBCE, - 0xBFE9,0xEBCD,INVALC,0xBFE7,INVALC,INVALC,0xC1D3,0xC1D6, - 0xEEC1,INVALC,0xC1D4,0xEEC0,0xC1D2,0xC1D5,0xF146,0xF147, - 0xF148,0xC2E0,INVALC,0xF149,INVALC,0xC2E1,0xC3E2,0xF358, - 0xF359,0xF357,0xF356,0xF35A,0xC3E1,0xF4DD,0xF4DB,0xF4DC, - 0xF4DE,0xF4DA,0xF4DF,0xF658,INVALC,0xF659,0xF657,0xC546, - 0xF764,0xC5AF,0xF765,0xF848,0xF847,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xA8AF,0xB664,INVALC,INVALC,0xB940, - INVALC,INVALC,INVALC,0xBBB6,INVALC,INVALC,0xBFEC,INVALC, - 0xBFEB,INVALC,INVALC,INVALC,INVALC,0xC3E3,0xC47C,0xC547, - 0xA8B0,0xB064,0xB941,INVALC,0xF35B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xCBA6, - INVALC,INVALC,0xA8B1,INVALC,0xA8B4,0xA8B3,0xA8B2,INVALC, - INVALC,0xCBA5,INVALC,0xCDCD,INVALC,0xCDCF,0xAAEF,INVALC, - INVALC,0xAAF1,0xCDCC,0xCDCE,0xAAF0,0xCDD1,0xCDD0,0xCDD2, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xD0B6,0xD0B4,0xAD7C,0xD0B3,0xADA3,0xAD7E,0xAD7B,INVALC, - 0xADA4,INVALC,0xAD7D,0xADA2,INVALC,0xADA1,0xD0B5,INVALC, - 0xAD7A,INVALC,INVALC,INVALC,0xB06A,0xD3EB,0xD3F1,0xB067, - 0xB06E,INVALC,0xB069,0xD3EE,0xD3F0,0xB06C,0xD3EA,0xD3ED, - /* Block 145, Array index 0x5100 */ - 0xB068,0xB065,0xD3EC,0xB06B,0xD3EF,0xB06D,0xB066,INVALC, - INVALC,INVALC,INVALC,0xD7E3,0xD7E6,0xB370,INVALC,0xB37A, - 0xB376,0xD7E4,INVALC,INVALC,0xB37E,0xB377,0xB37C,0xB372, - INVALC,0xB36F,0xB371,0xB37D,0xD7E5,0xB375,0xB378,0xB374, - 0xB379,0xD7E7,0xB37B,0xB373,0xD7E2,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xDC4D,0xB665,0xDC4F, - INVALC,0xB667,0xB669,INVALC,0xDC4E,0xB666,0xB66A,INVALC, - 0xB668,INVALC,INVALC,INVALC,0xB947,0xE0A3,0xB94F,0xE07E, - INVALC,0xB950,0xB945,INVALC,0xE0A1,INVALC,INVALC,0xB94A, - INVALC,0xE0A2,0xB943,0xB942,INVALC,0xB94D,0xB94C,0xB94B, - 0xB949,0xB94E,0xE07D,0xB944,0xB946,0xB948,INVALC,INVALC, - 0xBBB8,0xBBBB,INVALC,0xBBBF,0xBBB9,0xBBBE,0xBBBC,INVALC, - 0xBBB7,INVALC,0xBBBD,0xBBBA,INVALC,INVALC,INVALC,0xE852, - 0xBE43,0xBE41,INVALC,0xE853,INVALC,0xBE44,0xBE42,0xE851, - 0xE850,INVALC,0xBFF0,0xE84F,0xBFEE,0xBFED,0xEBD0,0xBE45, - 0xBFEF,0xEBD1,0xBFF2,0xEBD2,0xBFF1,0xC1D8,0xEEC3,0xC1D7, - 0xC1DC,0xC1DA,0xC1DB,0xC2E3,0xC1D9,0xEEC2,0xEBD3,0xC2E2, - 0xC2E4,INVALC,0xC3E4,0xC3E5,INVALC,0xF4E0,INVALC,0xC5DE, - 0xC5DD,0xA8B6,INVALC,INVALC,0xCA55,0xB06F,INVALC,0xCA52, - 0xCA53,0xCA51,INVALC,0xCA54,INVALC,INVALC,0xCBAA,0xCBA7, - 0xCBAC,0xCBA8,0xA8B7,0xA8BA,INVALC,0xCBA9,0xA8B9,0xCBAB, - INVALC,INVALC,0xA8B8,INVALC,INVALC,INVALC,INVALC,0xCDD5, - 0xCDD7,0xAAF4,0xCDD3,0xCDD6,0xCDD4,0xAAF2,0xAAF5,INVALC, - 0xAAF3,INVALC,INVALC,INVALC,INVALC,0xD0B8,0xD0BC,0xD0B9, - INVALC,0xADA7,INVALC,0xADA8,INVALC,0xD0BB,INVALC,0xD0BD, - 0xD0BF,INVALC,0xADA5,0xD0BE,INVALC,INVALC,0xADA6,INVALC, - INVALC,INVALC,INVALC,INVALC,0xD7EE,0xD0BA,0xD3F2,0xD3FB, - 0xD3F9,0xD3F4,0xD3F5,0xD3FA,0xD3FC,0xB071,INVALC,0xD3F7, - 0xD3F3,0xB070,0xB072,0xD3F6,0xD3FD,0xD3F8,INVALC,INVALC, - 0xB3A1,0xD7F1,0xD7E9,0xD7EF,0xD7F0,0xB3A2,INVALC,0xD7E8, - 0xD7EA,0xD0B7,0xD7EC,0xD7ED,0xD7EB,0xB66C,INVALC,INVALC, - INVALC,0xDC56,0xEBD4,0xDC57,0xDC54,0xB3A3,0xB66E,0xDC53, - /* Block 146, Array index 0x5200 */ - 0xDC59,0xDC58,0xB66B,0xDC5C,0xDC52,0xDC5B,0xDC50,0xDC5A, - 0xDC55,0xB66D,INVALC,0xE0AA,INVALC,0xE0A5,0xE0AB,0xE0A6, - 0xE0A4,0xE0A7,0xB951,INVALC,0xE0A9,INVALC,0xE0A8,0xB952, - 0xBBC1,0xBBC0,0xE46E,0xE471,0xE469,0xE46D,0xBBC2,0xE46C, - 0xE46A,0xE470,0xE46B,0xE468,0xE46F,INVALC,0xE859,0xBE48, - 0xF14A,0xE856,0xE857,0xE855,0xDC51,0xBE47,0xE85A,0xE854, - 0xBE46,0xBE49,0xE858,0xEBD5,0xBFF3,0xEBD6,0xEBD7,INVALC, - 0xEEC4,0xC1DD,0xF14B,0xF14C,INVALC,INVALC,0xF14D,0xF35D, - 0xF35C,0xF4E2,INVALC,0xF4E1,0xF65B,0xF65C,0xF65A,0xF766, - 0xC5B0,0xA8BB,0xADAA,0xADA9,0xB075,0xB074,0xD440,0xD441, - 0xD3FE,INVALC,0xB073,0xD7F5,INVALC,0xD7F6,0xD7F2,0xB3A4, - 0xD7F3,INVALC,0xD7F4,INVALC,INVALC,INVALC,INVALC,0xDC5F, - 0xDC61,0xDC5D,0xDC60,0xB66F,0xDC5E,0xB670,INVALC,INVALC, - 0xDD73,0xB955,0xB954,INVALC,0xB953,INVALC,0xE0AC,0xE0AD, - INVALC,INVALC,0xE473,0xE475,0xBBC6,0xBBC3,INVALC,0xBBC5, - 0xBBC4,0xE474,0xE472,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xE861,0xE85E,0xE85F,0xBE4D,0xE860,0xE85B,0xE85C,0xBE4A, - INVALC,0xBE4B,0xE85D,0xBE4C,INVALC,0xEBDB,INVALC,0xEBDC, - 0xEBD9,0xEBDA,0xBFF4,0xEBD8,INVALC,INVALC,INVALC,INVALC, - INVALC,0xEEC8,0xEEC5,0xEEC7,0xC1E0,0xEECB,0xC1DF,0xEEC9, - 0xEECC,0xEECA,0xEEC6,0xC1DE,INVALC,0xF14F,INVALC,0xF150, - 0xF14E,INVALC,0xF152,0xC2E5,0xC2E6,0xF35F,0xC3E7,0xF151, - 0xF35E,0xC3E6,0xF4E5,0xF4E6,0xC4BF,0xF4E4,INVALC,0xF4E3, - INVALC,0xF65D,0xC548,INVALC,0xF849,0xF8C8,0xF8C7,INVALC, - 0xC643,0xC65D,0xF8C9,0xF971,INVALC,0xC66F,0xA8BC,0xAAF6, - INVALC,0xB956,INVALC,0xC4C0,0xA8BD,0xADAB,0xB3A5,0xB671, - 0xC2E7,0xAAF7,INVALC,0xD0C1,0xD0C0,0xD442,INVALC,0xB078, - 0xB076,0xB07A,0xD444,INVALC,0xB079,0xB077,INVALC,INVALC, - INVALC,INVALC,0xD443,0xB3A8,0xD7FC,INVALC,0xB3A7,0xB3A9, - 0xD842,0xB3AB,0xD7FE,0xD840,0xD7F7,0xB3AA,0xD843,INVALC, - INVALC,0xD7F9,INVALC,0xD7FA,0xD7F8,0xB3A6,INVALC,0xD841, - 0xD7FB,0xD7FD,INVALC,INVALC,INVALC,0xDC6D,INVALC,0xDC6C, - /* Block 147, Array index 0x5300 */ - 0xDC6A,0xDC62,0xDC71,0xDC65,0xDC6F,0xDC76,0xDC6E,0xB679, - INVALC,0xB675,0xDC63,INVALC,0xDC69,0xB677,INVALC,0xDC68, - 0xB678,0xB67A,0xDC6B,INVALC,0xB672,0xB673,0xDC77,0xDC75, - INVALC,0xDC74,0xDC66,INVALC,0xDC72,INVALC,0xB676,INVALC, - INVALC,INVALC,INVALC,0xB674,0xDC73,0xDC64,0xDC67,0xDC70, - INVALC,INVALC,INVALC,INVALC,INVALC,0xE4BA,0xE0B7,INVALC, - 0xE0B0,0xE0C3,0xE0CC,0xE0B3,0xB961,INVALC,0xE0C0,0xB957, - 0xB959,0xB965,0xE0B1,INVALC,INVALC,0xB95A,0xB95C,0xB966, - 0xB95B,INVALC,INVALC,INVALC,INVALC,0xB964,0xE0B9,INVALC, - 0xE0AE,0xB962,0xE0B8,0xB95E,0xE0CA,0xB963,0xE0C8,0xE0BC, - 0xE0C6,0xB960,0xE0AF,0xE0C9,0xE0C4,INVALC,0xE0CB,0xB958, - INVALC,INVALC,0xB967,0xB95D,INVALC,INVALC,0xE0B5,INVALC, - 0xE0BD,0xE0C1,INVALC,0xE0C5,0xB95F,0xE0B4,0xE0B2,0xE0BE, - INVALC,INVALC,INVALC,INVALC,0xE0BB,0xE0BA,INVALC,0xE0BF, - 0xE0C2,INVALC,0xE0C7,INVALC,INVALC,INVALC,0xE478,INVALC, - 0xBBC7,0xE4A4,0xE47A,0xBBCC,0xBBD0,0xE4AD,0xE4B5,0xE4A6, - 0xBBC8,INVALC,0xE4AA,0xE0B6,INVALC,0xBBC9,0xE4B1,0xE4B6, - 0xE4AE,INVALC,0xE4B0,0xE4B9,0xE4B2,0xE47E,0xE4A9,INVALC, - INVALC,0xBBD1,INVALC,0xBBCD,0xE47C,0xE4AB,0xBBCB,0xE4A5, - 0xBBCA,0xE4B3,0xE4A2,0xE479,0xBBCE,0xE4B8,INVALC,INVALC, - 0xE47B,0xE4AF,0xE4AC,0xE4A7,0xE477,0xE476,0xE4A1,0xE4B4, - 0xBBCF,0xE4B7,0xE47D,0xE4A3,0xBE52,INVALC,INVALC,INVALC, - INVALC,INVALC,0xBE5A,0xBE55,0xE8A4,0xE8A1,0xE867,0xBE50, - INVALC,INVALC,INVALC,0xBE4F,0xBE56,INVALC,INVALC,INVALC, - 0xE865,0xBE54,0xE871,0xE863,0xE864,0xBE4E,0xE8A3,0xBE58, - 0xE874,0xE879,0xE873,0xEBEE,0xE86F,0xE877,0xE875,0xE868, - 0xE862,0xE87D,0xBE57,0xE87E,INVALC,0xE878,INVALC,0xE86D, - 0xE86B,0xE866,INVALC,INVALC,INVALC,0xE86E,0xE87B,0xE86A, - 0xE87A,0xE8A2,INVALC,INVALC,0xBE53,INVALC,0xE876,0xE87C, - 0xE872,0xE86C,0xBE51,INVALC,INVALC,INVALC,0xE4A8,0xE870, - 0xBE59,0xE869,INVALC,INVALC,INVALC,INVALC,INVALC,0xEBF4, - 0xBFF7,0xEBF3,0xEBF0,0xEC44,0xBFFB,INVALC,0xEC41,0xEBF8, - /* Block 148, Array index 0x5400 */ - 0xEC43,0xEBE9,0xEBF6,INVALC,0xBFFD,INVALC,0xEBE1,INVALC, - 0xEBDF,0xEC42,INVALC,0xEC40,0xEBFE,0xEBED,0xEBEC,0xEBE2, - 0xC040,INVALC,0xEBE8,0xEBF2,0xEBFD,0xC043,0xEC45,INVALC, - 0xC1E8,0xC045,0xBFFE,0xEBE6,INVALC,0xEBEF,0xEBDE,0xEBE0, - 0xBFF5,0xC042,0xBFFA,0xEBE7,0xEBF7,0xEBF1,0xC041,0xEBDD, - 0xC1E3,0xEBF9,0xEBFC,0xBFFC,INVALC,0xEBEB,0xC044,0xBFF9, - INVALC,INVALC,INVALC,0xBFF8,0xEBF5,0xEBFB,0xBFF6,INVALC, - 0xEBE4,0xEBFA,INVALC,INVALC,0xEBE5,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xEBEA,0xEED2, - INVALC,0xEED7,0xC1E5,0xC1E7,0xEEDD,0xC1E1,0xEEEC,0xEEE3, - 0xEED8,0xEED9,0xEEE2,INVALC,0xC1EE,0xEEE1,0xEED1,0xEEE0, - 0xEED4,0xEEED,0xC1ED,0xC1EB,0xEED5,INVALC,0xEEE8,INVALC, - 0xEEDA,0xEEE7,INVALC,0xEEE9,0xEED0,0xC1E6,INVALC,0xEEEA, - INVALC,INVALC,0xEEDE,INVALC,0xC1EA,0xEEDB,INVALC,INVALC, - 0xC1EC,0xEEE4,INVALC,INVALC,INVALC,0xC1E4,0xEED6,0xEEE5, - INVALC,0xEEDF,0xEBE3,0xEEE6,0xEED3,INVALC,0xC1E9,INVALC, - 0xEEEB,INVALC,0xC1E2,0xEECE,INVALC,INVALC,INVALC,INVALC, - 0xF160,0xF159,0xC2E9,INVALC,0xF154,0xF163,0xF15B,0xEEDC, - INVALC,0xF165,0xF155,INVALC,0xC2E8,0xF15F,0xC2EA,0xC2F2, - 0xC2F0,0xF161,0xC2F1,0xF157,INVALC,0xF158,0xF15D,0xF162, - INVALC,0xEECD,0xC2EB,0xF16A,0xF167,0xF16B,0xF15E,0xF15A, - 0xF168,0xF36A,0xF15C,INVALC,0xC2EE,INVALC,0xC2ED,0xEECF, - 0xC2EF,0xF164,0xF166,0xC2EC,0xF169,0xF153,INVALC,0xF156, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xF373,INVALC,0xF363,0xC3EB,0xF371,INVALC,INVALC,0xF361, - 0xC3EC,INVALC,0xF36C,INVALC,0xF368,0xC3F1,0xF372,0xF362, - 0xF365,0xC3E9,0xF374,INVALC,0xF36D,0xF370,0xC3EF,0xC3F4, - 0xC3F2,0xF369,0xF364,INVALC,0xC3ED,0xC3EE,0xF360,0xC3EA, - INVALC,0xC3E8,0xC3F0,0xF36F,0xC3F3,INVALC,0xF36B,0xF375, - 0xC3F5,INVALC,INVALC,INVALC,0xF367,INVALC,0xF36E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xF4F3,0xF542,0xF4F5, - 0xF4FC,0xF366,0xF4FA,0xF4E9,0xF540,0xC4C3,0xF4ED,0xF4FE, - /* Block 149, Array index 0x5500 */ - 0xF4F4,INVALC,INVALC,0xC4C2,INVALC,INVALC,0xF544,0xF4F6, - INVALC,0xF4FB,0xF4FD,0xF4E7,0xF541,0xF4F2,0xF4F7,0xF4EB, - 0xF4EF,0xF543,0xF4F9,0xF4E8,0xF4EC,0xF4EE,0xF4F8,INVALC, - 0xC4C1,0xF4F1,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xF4EA,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xF4F0,0xF661,0xF666,0xC54F,0xF668,INVALC,0xC549,INVALC, - 0xF664,0xF66A,0xC54E,0xC54A,INVALC,0xC54B,0xF660,0xF667, - 0xC54D,0xF665,0xC54C,0xF65F,0xF663,0xF662,INVALC,0xF65E, - 0xF669,INVALC,INVALC,INVALC,0xC5B1,0xF76D,0xF770,0xF76C, - 0xF76E,0xF76F,0xF769,0xF76A,0xF767,INVALC,INVALC,0xF76B, - 0xF768,0xC5B2,0xC5B3,INVALC,INVALC,0xF84B,INVALC,0xF84D, - INVALC,INVALC,INVALC,INVALC,INVALC,0xF84C,0xF84E,INVALC, - 0xC5E0,INVALC,0xF84A,0xC5DF,0xC5E1,INVALC,INVALC,INVALC, - 0xF8CB,0xF8CC,0xC644,0xF8CA,INVALC,0xF953,0xF952,0xF954, - 0xC65F,0xF955,0xC65E,0xF956,0xF972,0xF975,0xF974,0xC668, - 0xF973,INVALC,INVALC,INVALC,0xC672,0xC670,0xC671,0xC677, - 0xF9C0,0xF9C1,0xF9BF,0xF9C9,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 150, Array index 0x5600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xAAF8, - INVALC,INVALC,0xD844,0xDC78,0xE8A5,0xF376,INVALC,INVALC, - 0xAAF9,INVALC,0xADAC,0xB07B,INVALC,INVALC,0xD845,INVALC, - 0xD846,0xB3AC,INVALC,0xB67D,0xDC7A,0xDC79,0xB6A3,0xB67C, - 0xDC7B,0xB67E,0xB6A2,0xB6A1,0xB67B,INVALC,INVALC,INVALC, - 0xB968,INVALC,INVALC,0xE0D0,0xE0CE,INVALC,0xE0CF,0xE0CD, - INVALC,0xBBD2,INVALC,0xBBD5,0xBBD7,0xBBD6,INVALC,INVALC, - 0xBBD3,0xBBD4,INVALC,0xE8A7,0xE8A6,0xBE5B,0xE8A8,INVALC, - 0xE8A9,0xBE5C,INVALC,INVALC,INVALC,0xEC4D,0xEC4B,0xEEF3, - INVALC,0xEC49,0xEC4A,0xC046,0xEC46,0xEC4E,0xEC48,0xEC4C, - 0xEEEF,INVALC,INVALC,0xEEF1,INVALC,0xEEF2,0xC1F3,0xEEEE, - 0xC1F2,0xEEF0,0xC1EF,0xC1F0,0xC1F1,0xEC47,INVALC,INVALC, - 0xC2F5,0xF16E,0xF16C,0xF16D,0xC2F3,0xC2F6,0xC2F4,INVALC, - INVALC,INVALC,0xF377,0xF378,0xC3F6,INVALC,0xF545,0xF547, - 0xF546,0xC4C4,0xC550,0xF66D,0xF66C,0xF66B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 151, Array index 0x5700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xAAFA,INVALC,0xC9AA,INVALC, - 0xCA58,0xA6E9,0xCA56,0xCA59,0xCA57,INVALC,INVALC,INVALC, - 0xCBAE,INVALC,0xA8C1,INVALC,0xA8C2,0xCBB0,0xA8BF,0xCBAF, - 0xCBAD,0xA8C0,0xA8BE,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xCDD8,0xCDDB,0xAAFD,0xCDDA,0xCDD9,INVALC,0xAAFC, - 0xAAFB,INVALC,0xAB40,0xCDDC,0xAAFE,INVALC,INVALC,INVALC, - INVALC,INVALC,0xD0C6,0xADAE,0xADAF,0xADB0,0xD0C7,0xD0C3, - 0xADAD,0xD0C4,INVALC,0xD0C5,0xD0C2,INVALC,INVALC,INVALC, - 0xB0A4,INVALC,INVALC,0xB0A1,0xD445,0xB0A2,0xB0A5,0xD446, - INVALC,0xB07E,0xB07C,0xB07D,0xB0A3,INVALC,INVALC,INVALC, - INVALC,INVALC,0xB3AD,0xD849,0xB3B5,0xD848,INVALC,0xD84B, - 0xB3B1,0xD84A,0xB6AB,0xB3AF,0xB3B2,0xB3AE,0xB3B3,0xB3B4, - 0xB3B0,INVALC,INVALC,INVALC,0xD847,0xB6A7,0xDC7D,INVALC, - 0xDCA3,INVALC,INVALC,0xDCA2,0xB6AC,0xB6A8,0xB6A9,0xDC7C, - 0xDC7E,0xDCA1,0xB6A4,0xB6A6,INVALC,0xB6AA,0xB6A5,INVALC, - INVALC,0xE0D3,0xE0D1,0xE0D2,0xB96A,0xB96B,INVALC,0xE0D4, - 0xB969,0xBBD8,INVALC,0xBBDA,0xBBD9,INVALC,0xE4BB,INVALC, - INVALC,0xE4BC,0xE8AB,INVALC,0xE8AA,INVALC,INVALC,0xC047, - 0xC048,0xEC4F,0xC049,INVALC,0xEEF6,INVALC,0xEEF4,INVALC, - 0xEEF5,0xC1F4,INVALC,0xF16F,0xC3F7,INVALC,INVALC,INVALC, - 0xC1F5,0xAB41,INVALC,0xB0A6,0xD447,INVALC,INVALC,0xD84C, - 0xB3B6,0xB6AD,0xDCA4,0xDCA6,0xB6AF,0xB6AE,0xB6B0,0xB6B1, - 0xDCA5,0xB96E,0xB96F,0xB96D,0xBBDB,0xB96C,0xE0D5,INVALC, - INVALC,INVALC,0xBBDC,0xE8AC,0xEC50,0xC04A,0xC1F6,0xF170, - 0xF174,0xC2F9,0xF171,0xC2FA,0xC2F8,0xF175,0xC2FB,0xF173, - INVALC,0xF379,0xC2F7,0xC3F8,INVALC,0xF8CD,INVALC,INVALC, - 0xAB42,0xB3B8,0xB3B7,INVALC,INVALC,INVALC,INVALC,0xB6B2, - 0xDCA8,0xDCA7,0xB6B3,INVALC,INVALC,0xE0D9,0xB973,0xB970, - 0xE0D8,0xB972,0xE0D6,0xB971,INVALC,0xE0D7,INVALC,0xE4BD, - /* Block 152, Array index 0x5800 */ - 0xBBDD,INVALC,0xE8AF,INVALC,0xBE5D,0xE8AD,0xBE5E,0xBE5F, - 0xE8AE,0xBE60,INVALC,0xEC51,INVALC,0xC04E,0xC04B,0xC050, - 0xEC53,0xC04C,0xEC52,0xC04F,INVALC,INVALC,0xC04D,INVALC, - 0xEEF9,0xEEFB,INVALC,INVALC,0xC1F7,0xEEFA,0xC1F8,0xEEF8, - 0xEEF7,INVALC,0xF177,0xF176,0xC2FC,0xF178,0xF37E,0xC3FA, - 0xF37D,0xF37A,0xC3F9,0xF37B,0xF37C,INVALC,0xF548,0xF549, - 0xC4C5,INVALC,0xC553,INVALC,INVALC,0xF66E,INVALC,INVALC, - 0xC551,0xC552,0xF66F,INVALC,INVALC,0xC5B4,0xC5B5,0xF771, - INVALC,INVALC,0xC645,0xF8CF,0xC647,INVALC,0xF8CE,0xF8D0, - 0xC646,0xF957,INVALC,0xF9AD,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0xAB43,INVALC,INVALC,INVALC,0xB974,INVALC, - 0xE4BE,INVALC,0xE8B0,0xC051,0xC052,INVALC,0xAB44,INVALC, - 0xBE61,0xC3FB,0xADB1,INVALC,INVALC,INVALC,0xC053,INVALC, - 0xC5E2,0xADB2,0xD84D,INVALC,0xDCA9,INVALC,0xDCAB,INVALC, - 0xDCAA,INVALC,0xE0DD,0xE0DA,0xB975,INVALC,0xB976,0xE0DB, - 0xE0DC,INVALC,0xE4C0,0xE4C5,0xBBDE,0xE4BF,0xE4C1,0xE4C8, - 0xE4C3,0xE4C7,0xE4C4,0xE4C2,0xE4C6,0xBBDF,INVALC,INVALC, - 0xE8B3,INVALC,0xE8B1,0xBE63,INVALC,0xBE62,0xE8B2,0xBE64, - INVALC,INVALC,INVALC,INVALC,0xEC56,INVALC,INVALC,0xEC55, - 0xC054,0xEC54,0xEEFC,INVALC,0xEEFE,0xEF41,0xEF40,INVALC, - 0xC1F9,0xEEFD,0xF1A1,0xC2FD,0xF17D,0xF1A2,0xC2FE,INVALC, - 0xF17B,INVALC,0xF17E,0xF17C,0xF179,0xC340,0xF17A,INVALC, - INVALC,INVALC,INVALC,0xF3A1,INVALC,INVALC,0xF3A3,0xF3A2, - INVALC,0xF54A,INVALC,0xF54B,INVALC,INVALC,INVALC,0xF670, - INVALC,0xC5B7,INVALC,0xC5B6,0xF84F,0xF850,0xC648,0xF8D1, - INVALC,0xC669,INVALC,0xADB3,0xB6B4,0xE4CA,0xE4C9,0xE8B5, - 0xE8B4,INVALC,INVALC,0xC1FA,0xEF43,0xEF42,0xF1A5,0xF1A3, - 0xF1A6,0xF1A4,INVALC,INVALC,0xC3FC,0xF3A4,0xF3A5,0xF3A6, - INVALC,0xF671,INVALC,0xF772,INVALC,0xF8D2,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xADB4,INVALC,INVALC, - 0xEC57,0xEF44,INVALC,0xADB5,INVALC,INVALC,0xBBE0,INVALC, - 0xEC58,0xC341,0xF1A7,0xC3FD,INVALC,0xF54C,0xF54D,0xC554, - /* Block 153, Array index 0x5900 */ - 0xF851,0xADB6,0xB3BB,0xB3BC,0xD84E,0xB6B5,0xB6B6,0xDCAC, - 0xB6B7,INVALC,0xB97A,INVALC,0xB97C,0xE0DF,0xE0E0,0xE0DE, - 0xB977,0xB978,0xB97B,0xB979,INVALC,INVALC,0xE4CB,0xBBE1, - 0xBBE2,INVALC,INVALC,0xE8BC,0xBE67,0xE8B7,0xE8B6,INVALC, - 0xE8BB,0xBE65,INVALC,INVALC,0xC05B,INVALC,0xE8B8,0xE8BD, - 0xE8BA,0xE8B9,INVALC,0xBE66,INVALC,0xC059,INVALC,0xEC5A, - 0xC055,INVALC,0xEC5B,INVALC,INVALC,0xEC59,INVALC,0xC058, - 0xC056,0xC05A,INVALC,0xC057,INVALC,INVALC,INVALC,INVALC, - INVALC,0xEF45,INVALC,0xEF4A,0xEF46,0xEF49,0xC1FB,INVALC, - 0xEDD4,0xEF48,0xEF47,INVALC,0xC344,0xC342,0xC345,0xC343, - 0xF1A8,0xF1A9,0xF1AA,0xC346,INVALC,INVALC,INVALC,0xF3AA, - 0xC440,0xF3A8,INVALC,0xC441,0xF3A7,0xF3A9,0xC3FE,0xF551, - 0xF54E,INVALC,0xF54F,0xF550,0xF672,0xC556,INVALC,0xC555, - INVALC,0xF774,0xF773,0xC5B8,INVALC,INVALC,INVALC,0xC5E3, - 0xC649,0xC660,0xF958,0xF9AE,0xF9AF,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xADB7,0xDCAD,INVALC,INVALC,0xE0E1,0xE4CC,0xE4CD,0xBBE3, - INVALC,0xBBE4,0xE8BE,0xBE68,INVALC,INVALC,0xC1FC,INVALC, - 0xF1AB,INVALC,0xC347,0xF3AD,0xC442,0xF3AC,0xF3AE,0xF3AB, - 0xF675,0xF552,0xF553,INVALC,0xC4C6,INVALC,0xF674,INVALC, - INVALC,0xF673,INVALC,0xF775,0xF9B0,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xADB8,INVALC,INVALC,INVALC,0xADB9, - INVALC,INVALC,0xB0A7,0xD448,INVALC,0xD84F,INVALC,0xB6B8, - INVALC,0xB6BB,0xB6B9,0xDCAE,INVALC,0xB6BD,INVALC,0xB6BA, - INVALC,INVALC,0xB6BC,INVALC,0xB97E,INVALC,0xE0E2,INVALC, - INVALC,0xE0E3,0xE8C0,INVALC,0xB97D,0xB9A1,0xB9A2,INVALC, - /* Block 154, Array index 0x5A00 */ - 0xE4CF,INVALC,0xE4CE,0xBBE5,INVALC,0xBBE6,INVALC,0xE4D0, - 0xE8BF,0xBBE8,0xBE69,INVALC,0xBBE7,INVALC,INVALC,INVALC, - 0xC05C,0xE8C1,0xBE6B,0xBE6A,0xE8C2,0xE8C5,0xE8C3,0xE8C4, - 0xBE6C,INVALC,0xC061,0xC05F,INVALC,INVALC,0xC05E,0xEC5D, - INVALC,0xC060,INVALC,INVALC,0xEC5C,0xEF4B,INVALC,0xEC5E, - 0xC05D,0xEC5F,0xEF4E,0xEF4C,0xEF4D,0xEF52,0xC34B,0xEF51, - 0xEF54,0xEF53,0xEF50,0xEF4F,INVALC,0xC1FD,INVALC,INVALC, - INVALC,INVALC,0xF1AE,INVALC,0xF1AD,0xC34A,0xC348,0xC349, - INVALC,0xF1AC,INVALC,0xF3B1,INVALC,0xC443,INVALC,0xF3B0, - 0xF3AF,0xC444,INVALC,0xF558,0xF557,INVALC,0xF555,INVALC, - 0xF554,0xC4C8,0xC4C7,0xF559,0xF776,0xC5B9,0xF677,0xC557, - 0xF676,0xF556,INVALC,0xF777,0xC5E4,INVALC,0xC661,0xF959, - INVALC,0xF9B1,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xADBA,0xD850, - 0xEF55,0xADBB,INVALC,INVALC,0xE4D2,0xE4D1,0xEC60,INVALC, - INVALC,0xEF57,INVALC,0xEF56,INVALC,0xC34C,0xF3B2,0xF3B3, - 0xC4C9,INVALC,INVALC,0xF9B2,0xB0A8,0xB6BF,0xB6BE,0xE0E4, - 0xE0E6,0xB9A4,0xE0E5,0xB9A3,0xB9A5,0xE0E7,INVALC,INVALC, - INVALC,0xE4D4,0xE4D6,0xE4D5,INVALC,0xE4D8,INVALC,INVALC, - INVALC,0xBBE9,0xE4D7,0xE4D3,INVALC,INVALC,INVALC,0xE4D9, - INVALC,0xE8CC,INVALC,0xE8CF,0xE8D1,0xE8C7,0xE8CB,0xE8C8, - 0xBE6E,0xBE71,0xBE73,0xE8C9,0xE8CA,0xBE72,0xE8CD,0xE8D0, - 0xE8CE,0xBE74,INVALC,0xBE70,0xE8C6,0xBE6D,INVALC,0xBE6F, - INVALC,INVALC,0xC063,0xEC66,0xEC64,0xEC63,INVALC,0xEC69, - INVALC,0xEC68,0xEC67,INVALC,0xEC62,0xC062,0xEC61,INVALC, - 0xEC65,0xC064,INVALC,INVALC,0xEF5A,INVALC,0xEF5E,0xEF5B, - 0xEF5D,0xEF5C,0xEF59,0xEF5F,0xEF62,0xEF60,0xEF61,0xC240, - /* Block 155, Array index 0x5B00 */ - INVALC,0xC1FE,0xEF58,0xEF63,0xF1B3,0xF1B6,0xF1B8,0xF1B7, - INVALC,0xF1B1,0xF1B5,0xF1B0,INVALC,0xF1B2,0xC34D,0xF1AF, - INVALC,0xF1B4,INVALC,INVALC,0xF3C0,0xF3B5,0xC445,INVALC, - INVALC,0xC446,0xF3B4,0xF3B9,0xF3BF,0xF3B7,0xF3BE,INVALC, - 0xF3BB,INVALC,0xF3BA,0xF3BD,0xF3B8,0xF3B6,INVALC,0xF3BC, - INVALC,0xF560,0xF55E,0xC4CA,0xF55D,0xF563,0xF561,INVALC, - 0xC4CB,0xF55C,0xF55A,INVALC,0xF55B,0xC4CD,0xF55F,0xC4CC, - 0xF562,0xF678,0xF67E,INVALC,INVALC,0xF679,0xC55B,0xF6A1, - 0xC55A,0xF67D,0xF67C,0xC559,0xF67B,0xC558,0xF67A,INVALC, - 0xF77D,0xF7A1,0xF77E,INVALC,0xF77B,0xC5BB,0xF778,0xF77C, - 0xF7A3,INVALC,0xF7A2,0xF779,0xF77A,0xC5BA,0xF852,0xC5E7, - INVALC,0xF853,0xC5E5,0xC5E6,INVALC,INVALC,0xF8D3,0xC64A, - 0xF976,INVALC,0xC66A,INVALC,0xF9B3,0xC66B,0xF9B4,0xF9B5, - 0xF9C3,0xF9C2,0xC67A,0xF9CD,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xB0A9,INVALC,INVALC,0xE0E9,INVALC,0xE0E8,INVALC,0xBBEA, - 0xBBEB,0xE4DA,INVALC,0xE8D2,0xEC6C,INVALC,INVALC,0xBE75, - 0xC065,0xEC6A,INVALC,0xEC6D,0xC066,INVALC,0xEF64,0xEC6B, - 0xF1B9,0xC34E,0xF3C1,INVALC,INVALC,INVALC,0xF566,0xF564, - INVALC,INVALC,0xF565,INVALC,INVALC,0xF6A2,INVALC,0xC55C, - 0xF7A4,0xC5EA,0xC5BC,0xC5E8,0xC5E9,0xF8D4,0xC662,INVALC, - 0xB0AA,INVALC,INVALC,INVALC,0xF1BA,INVALC,INVALC,0xD449, - INVALC,0xB9A6,INVALC,0xE4DB,INVALC,INVALC,0xBBEC,0xE4DC, - INVALC,INVALC,INVALC,0xE8D4,0xE8D3,0xC068,0xBE76,0xBE77, - INVALC,0xE8D7,0xE8D6,0xE8D5,INVALC,INVALC,0xEC6E,0xEC71, - INVALC,0xEC70,0xEC6F,0xC067,0xEF68,0xEF66,0xEF65,INVALC, - /* Block 156, Array index 0x5C00 */ - INVALC,0xEF67,INVALC,0xC34F,0xF1BC,0xF1BD,0xC350,INVALC, - 0xF1BB,INVALC,0xF3C3,0xF3C2,0xF3C5,0xC447,0xF3C4,INVALC, - 0xF567,0xF569,0xF568,INVALC,INVALC,0xF6A3,0xF6A6,0xF6A4, - 0xF6A5,0xF7A5,0xC5BD,INVALC,INVALC,INVALC,0xF854,0xF855, - 0xF856,INVALC,0xC64B,0xC663,0xF9B6,0xB0AB,INVALC,0xBE78, - 0xC069,0xF1BE,INVALC,0xF7A6,INVALC,INVALC,0xF9C4,0xD44A, - INVALC,0xC67B,0xB0AC,0xEC72,INVALC,0xF1BF,INVALC,0xF3C6, - INVALC,INVALC,0xF6A7,0xF7A7,0xB0AD,INVALC,0xE4DD,0xE4DE, - INVALC,0xBBED,0xBBEE,0xE8D9,0xBE7A,0xBE79,0xE8D8,INVALC, - 0xEF69,INVALC,0xF1C0,0xF1C2,0xF1C1,0xC353,0xC352,0xC351, - INVALC,0xC55E,0xF6A8,INVALC,0xC55D,0xF7A9,0xF7A8,INVALC, - 0xC64C,0xF8D5,0xB3BD,0xE0EA,INVALC,INVALC,INVALC,0xE4E1, - 0xE4DF,0xE4E0,INVALC,INVALC,0xE8E2,INVALC,0xE8DD,0xE8DA, - 0xE8E1,INVALC,INVALC,INVALC,0xE8E3,INVALC,INVALC,0xBE7C, - 0xE8E0,0xE8DC,INVALC,INVALC,0xE8DB,0xE8DF,0xE8DE,0xBE7B, - INVALC,INVALC,0xEC7D,0xEC78,0xEC76,0xECA1,0xEC77,INVALC, - 0xEC73,INVALC,0xEC79,INVALC,INVALC,0xEC74,0xEF72,0xEC75, - 0xECA2,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xEC7C,0xC06A,0xEC7B,0xEC7A,INVALC,0xEC7E,INVALC,INVALC, - INVALC,INVALC,0xEF6A,0xEF6D,INVALC,INVALC,0xEF6C,INVALC, - 0xEF74,0xEF6F,0xEF73,INVALC,0xEF71,0xEF70,0xEF6E,INVALC, - 0xEF6B,INVALC,0xC243,0xC242,INVALC,0xC244,0xC241,0xEF75, - INVALC,INVALC,INVALC,INVALC,INVALC,0xF1C8,0xF1CB,INVALC, - 0xF1C9,0xF1CD,INVALC,INVALC,INVALC,0xF1CE,INVALC,0xF1C6, - 0xC358,0xF1C7,INVALC,0xF1C5,0xF1CC,INVALC,0xF1C4,0xF1C3, - 0xC357,0xC355,0xC354,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0xF1CA,0xF3CF,0xF3D5,0xC44A,0xF3D0, - INVALC,0xF3D3,0xF3D7,0xC44B,0xF3D2,INVALC,0xF3CA,INVALC, - 0xF3C9,0xF3D6,0xF3CD,INVALC,0xF3CB,0xF3D4,0xF3CC,0xC449, - 0xC448,INVALC,0xF3C7,0xF3C8,0xF3D1,INVALC,INVALC,INVALC, - 0xF3CE,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0xF56C, - 0xF56F,INVALC,INVALC,INVALC,INVALC,0xC356,INVALC,INVALC, - /* Block 157, Array index 0x5D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0xF56D,0xF573,0xF571, - 0xF56B,0xF576,INVALC,0xF56A,INVALC,0xC4CF,0xF572,INVALC, - INVALC,INVALC,0xF56E,0xC4CE,0xF575,INVALC,INVALC,0xF574, - INVALC,INVALC,INVALC,INVALC,0xF6AB,0xF6AA,INVALC,INVALC, - INVALC,0xF6B1,INVALC,0xF6AD,0xF6B0,0xC560,INVALC,INVALC, - 0xF6AE,0xF6AF,INVALC,0xF6A9,0xF6AC,0xC55F,INVALC,INVALC, - INVALC,0xC5BF,0xF7B4,0xF7AF,0xF7B3,INVALC,0xF7B6,0xF7B2, - INVALC,0xF7AE,INVALC,0xC5C1,0xF7B1,0xF7B5,0xC5C0,0xF7AC, - 0xF570,0xF7B0,INVALC,INVALC,0xF7AD,INVALC,0xF7AA,INVALC, - 0xF7AB,0xC5BE,0xF85A,0xF85C,0xF85F,0xF85B,0xF860,INVALC, - 0xF859,INVALC,0xF857,INVALC,0xC5EB,0xF85D,0xC5ED,0xC5EC, - 0xF858,0xF85E,INVALC,INVALC,INVALC,INVALC,0xF8DA,0xC64D, - 0xF8DB,INVALC,0xF8D9,0xF8D6,INVALC,INVALC,0xF8D8,0xF8D7, - 0xF95A,INVALC,INVALC,INVALC,INVALC,0xF95C,0xF95B,INVALC, - INVALC,0xF979,INVALC,0xF978,0xF977,0xF97A,INVALC,0xC673, - 0xC674,0xF9CA,0xF9CE,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xB3BE,0xDCAF,0xE0ED, - INVALC,0xB9A7,0xE0EB,INVALC,INVALC,0xE0EC,INVALC,INVALC, - INVALC,0xE4E2,0xE4E3,0xBBF1,0xBBEF,0xE4E4,0xBBF0,0xE8E8, - INVALC,0xE8EB,0xE8E5,0xE8EC,0xE8E4,0xE8E6,INVALC,0xE8E7, - /* Block 158, Array index 0x5E00 */ - 0xE8EA,INVALC,INVALC,0xBEA1,0xE8EF,0xE8EE,0xBE7D,0xE8E9, - 0xE8ED,0xBE7E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xECAC,INVALC,0xC06F,INVALC,0xECA7,0xC06B,INVALC,0xECA4, - 0xECAA,0xECAD,INVALC,0xC070,INVALC,0xECA9,0xECA6,0xECAE, - 0xECA5,INVALC,0xECAB,0xC06C,INVALC,0xECA3,0xC06D,INVALC, - 0xC06E,0xECA8,INVALC,INVALC,INVALC,0xEFA9,0xEF7A,0xEF7B, - 0xEF7E,0xEF7C,INVALC,0xEF76,INVALC,INVALC,0xEF79,0xEFA5, - 0xEF7D,INVALC,INVALC,0xC245,INVALC,0xEFA7,0xEFA4,0xC246, - 0xEFA6,0xEF77,0xEFA2,0xEFA3,INVALC,0xEFA1,INVALC,INVALC, - INVALC,INVALC,0xF1D2,0xF1D4,0xF1D7,INVALC,INVALC,0xF1D1, - INVALC,0xC359,0xF1D9,0xF1D0,0xF1DA,INVALC,0xF1D6,0xF1D8, - 0xF1DC,0xF1D5,0xF1DD,0xF1D3,0xF1CF,0xC35A,INVALC,0xF1DB, - 0xC35B,0xC44D,INVALC,INVALC,INVALC,INVALC,INVALC,0xEF78, - 0xF3F1,0xF3E8,0xC44F,0xF3E4,0xC450,INVALC,INVALC,0xF3ED, - 0xF3E7,0xF3DD,0xC44E,0xF3EA,0xF3E5,0xF3E6,INVALC,0xF3D8, - 0xF3DF,0xF3EE,INVALC,0xF3EB,INVALC,0xF3E3,INVALC,0xF3EF, - 0xF3DE,0xF3D9,0xF3EC,INVALC,0xF3DB,0xF3E9,0xF3E0,0xF3F0, - 0xF3DC,0xC44C,0xF3DA,0xF3E1,0xF3E2,INVALC,INVALC,INVALC, - 0xF57D,INVALC,0xF57B,INVALC,0xF5A2,INVALC,0xF5AE,0xF5A5, - 0xF57C,0xF578,0xF5A7,0xF57E,0xF5A3,0xF57A,0xF5AA,0xF577, - 0xF5A1,0xF5A6,0xF5A8,0xF5AB,0xF579,INVALC,0xF5AF,0xF5B0, - 0xF5A9,0xF5AD,0xF5A4,INVALC,0xF6C1,0xF6C4,INVALC,0xC561, - INVALC,0xF6C3,0xF6C8,0xF6C6,0xC562,0xF6BD,0xF6B3,0xF6B2, - 0xC564,0xF6BF,0xF6C0,0xF6BC,0xF6B4,INVALC,0xF6B9,0xF5AC, - INVALC,0xF6B5,0xC563,0xF6BB,INVALC,0xF6BA,INVALC,0xF6B6, - 0xF6C2,INVALC,0xF6B7,0xF7BB,0xF6C5,0xF6C7,0xF6BE,0xF6B8, - 0xF7BC,0xF7BE,0xF7B8,0xC5C2,INVALC,0xF7C5,0xF7C3,0xC5C3, - 0xF7C2,0xF7C1,0xF7BA,0xF7B7,0xF7BD,0xF7C6,0xF7B9,0xF7BF, - INVALC,0xF869,0xF86E,0xF864,0xF867,0xC5EE,0xF86B,INVALC, - 0xF872,0xF7C0,INVALC,0xF865,0xF86F,0xF873,0xF86A,0xF863, - 0xF86D,INVALC,0xF86C,0xF871,0xF870,0xF7C4,0xF868,0xF862, - 0xF866,0xC64E,0xC64F,0xF861,INVALC,0xF8E6,0xF8DD,0xF8E5, - /* Block 159, Array index 0x5F00 */ - 0xF8E2,0xF8E3,0xF8DC,0xF8DF,0xF8E7,0xF8E1,0xF8E0,0xF8DE, - INVALC,0xF8E4,INVALC,0xF95D,INVALC,0xF95E,INVALC,0xF960, - 0xF95F,0xF962,0xF961,0xF97C,0xF97B,0xF9B7,INVALC,0xF9B8, - INVALC,0xF9C5,0xC678,0xC67C,INVALC,0xF9CF,0xC67D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xB3BF,INVALC,INVALC, - INVALC,0xC4D0,0xF6C9,INVALC,0xC650,0xC651,INVALC,0xB3C0, - 0xE0EE,INVALC,0xB9A8,0xE8F0,INVALC,INVALC,0xECB0,0xECB1, - 0xECAF,0xEFAB,0xEFAA,0xC247,0xF1DF,0xEFAC,0xF1DE,INVALC, - INVALC,0xF3F3,0xC451,0xC453,0xF3F2,INVALC,INVALC,0xC452, - INVALC,0xF5B1,0xF5B3,0xF5B2,0xF6CA,0xC565,INVALC,0xC5EF, - 0xF8E8,0xF963,INVALC,INVALC,0xF9D2,0xB3C1,INVALC,0xE4E5, - INVALC,0xBEA2,INVALC,INVALC,INVALC,0xECB3,0xECB2,INVALC, - 0xEFAD,INVALC,INVALC,INVALC,0xC454,0xC4D1,0xF7C7,0xF9CB, - INVALC,INVALC,INVALC,0xB3C2,0xBBF2,INVALC,0xBEA3,INVALC, - 0xF3F4,INVALC,0xF874,0xB6C0,INVALC,INVALC,INVALC,INVALC, - 0xEFAE,INVALC,INVALC,INVALC,0xC664,0xB6C1,0xBEA4,0xC248, - 0xF875,0xB6C2,INVALC,0xE8F1,0xC072,0xECB4,0xECB5,INVALC, - 0xC071,INVALC,0xEFAF,0xC24C,0xC24A,0xC24B,0xC249,0xF1E0, - 0xC35C,INVALC,INVALC,INVALC,0xF5B5,0xF5B4,0xF5B7,0xF5B6, - 0xC4D2,INVALC,INVALC,0xF6CB,INVALC,0xF6CD,0xF6CC,0xC566, - 0xF7C8,INVALC,0xF876,0xF877,0xC5F0,0xF964,0xF97D,0xC675, - INVALC,0xDCB0,0xECB6,0xEFB0,0xF3F5,0xE0EF,INVALC,0xEFB1, - /* Block 160, Array index 0x6000 */ - 0xF1E2,0xF1E1,INVALC,INVALC,INVALC,INVALC,0xF878,0xC652, - INVALC,0xF965,0xF97E,INVALC,INVALC,INVALC,0xB9A9,0xE8F2, - 0xE8F3,INVALC,0xECB7,0xB9AA,INVALC,0xC35D,0xF1E3,INVALC, - 0xF6CF,0xC567,0xF6D0,0xF6CE,0xF879,INVALC,0xF8E9,INVALC, - 0xB9AB,INVALC,0xEFB4,0xEFB3,0xEFB2,0xF1E4,INVALC,INVALC, - 0xF1E8,0xF1E7,0xF1E6,0xF1E5,0xC35E,0xF3F6,0xF5B9,0xC4D3, - 0xF5B8,0xF6D1,0xF7CB,0xF7CA,0xC5C4,0xF7C9,0xF87C,0xF87B, - 0xF87A,INVALC,INVALC,0xBBF3,INVALC,0xECB8,0xC24D,INVALC, - 0xF3F7,0xF3F8,0xF7CC,0xF87D,INVALC,INVALC,0xF8EA,0xF966, - 0xF9B9,0xF9D4,0xBBF4,0xC24E,0xF1E9,0xF3F9,0xF6D2,0xF87E, - INVALC,INVALC,0xBEA6,INVALC,0xEFB5,0xF1EA,0xF3FA,0xF3FB, - 0xF3FC,0xF5BE,INVALC,0xF5BA,0xC568,0xF5BD,0xF5BC,0xC4D4, - 0xF5BB,0xC4D6,INVALC,0xC4D5,0xF6D4,0xF6D3,0xC569,0xC56A, - INVALC,INVALC,0xC5C6,0xF7CD,0xC5C5,INVALC,0xF8A3,0xF8A4, - 0xF8A2,0xF8A1,0xC654,INVALC,0xF8EB,0xF8EC,0xF8ED,0xC653, - 0xF967,0xF96A,0xF969,0xF968,INVALC,INVALC,0xF9D3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xC073,INVALC,INVALC, - 0xC365,0xF5BF,0xF6D5,INVALC,0xC5C7,0xF7CE,INVALC,INVALC, - 0xF9D5,INVALC,INVALC,INVALC,0xC074,INVALC,INVALC,INVALC, - 0xEFB6,INVALC,0xF7CF,INVALC,0xF9A1,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 251, Array index 0x6100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xC94A,0xDDFC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 255, Array index 0x6200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xA14A,0xA157,INVALC,0xA159,0xA15B,0xA15F,0xA160,0xA163, - 0xA164,0xA167,0xA168,0xA16B,0xA16C,0xA16F,0xA170,0xA173, - 0xA174,0xA177,0xA178,0xA17B,0xA17C,INVALC,INVALC,INVALC, - INVALC,0xA1C6,0xA1C7,0xA1CA,0xA1CB,0xA1C8,0xA1C9,0xA15C, - 0xA14D,INVALC,0xA14F,INVALC,0xA151,0xA152,0xA153,0xA154, - INVALC,0xA17D,0xA17E,0xA1A1,0xA1A2,0xA1A3,0xA1A4,0xA1CC, - 0xA1CD,0xA1CE,0xA1DE,0xA1DF,0xA1E0,0xA1E1,0xA1E2,INVALC, - INVALC,0xA24C,0xA24D,0xA24E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 256, Array index 0x6300 */ - INVALC,0xA149,INVALC,0xA1AD,0xA243,0xA248,0xA1AE,INVALC, - 0xA15D,0xA15E,0xA1AF,0xA1CF,0xA141,0xA1D0,0xA144,0xA241, - 0xA2AF,0xA2B0,0xA2B1,0xA2B2,0xA2B3,0xA2B4,0xA2B5,0xA2B6, - 0xA2B7,0xA2B8,0xA147,0xA146,0xA1D5,0xA1D7,0xA1D6,0xA148, - 0xA249,0xA2CF,0xA2D0,0xA2D1,0xA2D2,0xA2D3,0xA2D4,0xA2D5, - 0xA2D6,0xA2D7,0xA2D8,0xA2D9,0xA2DA,0xA2DB,0xA2DC,0xA2DD, - 0xA2DE,0xA2DF,0xA2E0,0xA2E1,0xA2E2,0xA2E3,0xA2E4,0xA2E5, - 0xA2E6,0xA2E7,0xA2E8,INVALC,0xA242,INVALC,INVALC,0xA1C4, - INVALC,0xA2E9,0xA2EA,0xA2EB,0xA2EC,0xA2ED,0xA2EE,0xA2EF, - 0xA2F0,0xA2F1,0xA2F2,0xA2F3,0xA2F4,0xA2F5,0xA2F6,0xA2F7, - 0xA2F8,0xA2F9,0xA2FA,0xA2FB,0xA2FC,0xA2FD,0xA2FE,0xA340, - 0xA341,0xA342,0xA343,0xA161,0xA155,0xA162,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0xA14E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0xA15A,INVALC,INVALC, -}; - -#endif /* ICONV_FROM_UCS_CCS_BIG5 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> big5 size-optimized table (38748 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_BIG5) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_size_big5[] = -{ - 0x0235, /* Ranges number */ - 0x02F3, /* Unranged codes number */ - 0x45C8, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0x02C7, 0x02CB, 0x06A2, - /* Array index: 0x0006 */ 0x0391, 0x03A9, 0x06A7, - /* Array index: 0x0009 */ 0x03B1, 0x03C9, 0x06C0, - /* Array index: 0x000C */ 0x0414, 0x041C, 0x06D9, - /* Array index: 0x000F */ 0x0423, 0x0451, 0x06E2, - /* Array index: 0x0012 */ 0x2160, 0x2169, 0x0711, - /* Array index: 0x0015 */ 0x2190, 0x2199, 0x071B, - /* Array index: 0x0018 */ 0x221E, 0x2220, 0x0725, - /* Array index: 0x001B */ 0x2229, 0x222B, 0x0728, - /* Array index: 0x001E */ 0x2460, 0x2469, 0x072B, - /* Array index: 0x0021 */ 0x2474, 0x247D, 0x0735, - /* Array index: 0x0024 */ 0x256D, 0x2573, 0x073F, - /* Array index: 0x0027 */ 0x2581, 0x258F, 0x0746, - /* Array index: 0x002A */ 0x25E2, 0x25E5, 0x0755, - /* Array index: 0x002D */ 0x2640, 0x2642, 0x0759, - /* Array index: 0x0030 */ 0x3000, 0x3015, 0x075C, - /* Array index: 0x0033 */ 0x301D, 0x3029, 0x0772, - /* Array index: 0x0036 */ 0x3041, 0x3093, 0x077F, - /* Array index: 0x0039 */ 0x309D, 0x30F6, 0x07D2, - /* Array index: 0x003C */ 0x3105, 0x3129, 0x082C, - /* Array index: 0x003F */ 0x339C, 0x339E, 0x0851, - /* Array index: 0x0042 */ 0x4E07, 0x4E19, 0x0854, - /* Array index: 0x0045 */ 0x4E2D, 0x4E33, 0x0867, - /* Array index: 0x0048 */ 0x4E38, 0x4E3C, 0x086E, - /* Array index: 0x004B */ 0x4E4B, 0x4E53, 0x0873, - /* Array index: 0x004E */ 0x4E58, 0x4E5F, 0x087C, - /* Array index: 0x0051 */ 0x4E7E, 0x4E95, 0x0884, - /* Array index: 0x0054 */ 0x4E9E, 0x4EAE, 0x089C, - /* Array index: 0x0057 */ 0x4EC0, 0x4ECD, 0x08AD, - /* Array index: 0x005A */ 0x4ED4, 0x4EE9, 0x08BB, - /* Array index: 0x005D */ 0x4EF0, 0x4EF7, 0x08D1, - /* Array index: 0x0060 */ 0x4EFD, 0x4F19, 0x08D9, - /* Array index: 0x0063 */ 0x4F2C, 0x4F64, 0x08F6, - /* Array index: 0x0066 */ 0x4F67, 0x4F9E, 0x092F, - /* Array index: 0x0069 */ 0x4FB2, 0x4FE1, 0x0967, - /* Array index: 0x006C */ 0x4FF1, 0x4FFA, 0x0997, - /* Array index: 0x006F */ 0x5005, 0x5037, 0x09A1, - /* Array index: 0x0072 */ 0x5043, 0x5077, 0x09D4, - /* Array index: 0x0075 */ 0x508B, 0x509E, 0x0A09, - /* Array index: 0x0078 */ 0x50AC, 0x50DD, 0x0A1D, - /* Array index: 0x007B */ 0x50E3, 0x514D, 0x0A4F, - /* Array index: 0x007E */ 0x5157, 0x516E, 0x0ABA, - /* Array index: 0x0081 */ 0x5175, 0x5178, 0x0AD2, - /* Array index: 0x0084 */ 0x518F, 0x5198, 0x0AD6, - /* Array index: 0x0087 */ 0x51BC, 0x51BE, 0x0AE0, - /* Array index: 0x008A */ 0x51C4, 0x51D0, 0x0AE3, - /* Array index: 0x008D */ 0x51DC, 0x51E1, 0x0AF0, - /* Array index: 0x0090 */ 0x51F5, 0x51FA, 0x0AF6, - /* Array index: 0x0093 */ 0x5206, 0x5217, 0x0AFC, - /* Array index: 0x0096 */ 0x521C, 0x521E, 0x0B0E, - /* Array index: 0x0099 */ 0x5224, 0x522A, 0x0B11, - /* Array index: 0x009C */ 0x522E, 0x523B, 0x0B18, - /* Array index: 0x009F */ 0x5243, 0x524E, 0x0B26, - /* Array index: 0x00A2 */ 0x5252, 0x5262, 0x0B32, - /* Array index: 0x00A5 */ 0x5269, 0x526F, 0x0B43, - /* Array index: 0x00A8 */ 0x5274, 0x528D, 0x0B4A, - /* Array index: 0x00AB */ 0x5296, 0x529B, 0x0B64, - /* Array index: 0x00AE */ 0x52A9, 0x52AE, 0x0B6A, - /* Array index: 0x00B1 */ 0x52BE, 0x52C3, 0x0B70, - /* Array index: 0x00B4 */ 0x52D2, 0x52E6, 0x0B76, - /* Array index: 0x00B7 */ 0x52EF, 0x52FF, 0x0B8B, - /* Array index: 0x00BA */ 0x5305, 0x5323, 0x0B9C, - /* Array index: 0x00BD */ 0x532D, 0x5331, 0x0BBB, - /* Array index: 0x00C0 */ 0x533C, 0x5354, 0x0BC0, - /* Array index: 0x00C3 */ 0x536C, 0x537C, 0x0BD9, - /* Array index: 0x00C6 */ 0x5394, 0x539F, 0x0BEA, - /* Array index: 0x00C9 */ 0x53C8, 0x53CD, 0x0BF6, - /* Array index: 0x00CC */ 0x53DF, 0x53F5, 0x0BFC, - /* Array index: 0x00CF */ 0x5403, 0x5412, 0x0C13, - /* Array index: 0x00D2 */ 0x5418, 0x544A, 0x0C23, - /* Array index: 0x00D5 */ 0x5460, 0x549A, 0x0C56, - /* Array index: 0x00D8 */ 0x54A0, 0x54C9, 0x0C91, - /* Array index: 0x00DB */ 0x54DE, 0x54F3, 0x0CBB, - /* Array index: 0x00DE */ 0x54F7, 0x5514, 0x0CD1, - /* Array index: 0x00E1 */ 0x552A, 0x5557, 0x0CEF, - /* Array index: 0x00E4 */ 0x555E, 0x5566, 0x0D1D, - /* Array index: 0x00E7 */ 0x5575, 0x55B5, 0x0D26, - /* Array index: 0x00EA */ 0x55BF, 0x55E9, 0x0D67, - /* Array index: 0x00ED */ 0x55F6, 0x561F, 0x0D92, - /* Array index: 0x00F0 */ 0x562C, 0x564E, 0x0DBC, - /* Array index: 0x00F3 */ 0x5657, 0x565A, 0x0DDF, - /* Array index: 0x00F6 */ 0x5660, 0x5679, 0x0DE3, - /* Array index: 0x00F9 */ 0x567E, 0x5687, 0x0DFD, - /* Array index: 0x00FC */ 0x568C, 0x5690, 0x0E07, - /* Array index: 0x00FF */ 0x5695, 0x569D, 0x0E0C, - /* Array index: 0x0102 */ 0x56A5, 0x56B7, 0x0E15, - /* Array index: 0x0105 */ 0x56BC, 0x56CD, 0x0E28, - /* Array index: 0x0108 */ 0x56DA, 0x56EB, 0x0E3A, - /* Array index: 0x010B */ 0x56FF, 0x570D, 0x0E4C, - /* Array index: 0x010E */ 0x5712, 0x5723, 0x0E5B, - /* Array index: 0x0111 */ 0x5728, 0x5734, 0x0E6D, - /* Array index: 0x0114 */ 0x5747, 0x5752, 0x0E7A, - /* Array index: 0x0117 */ 0x5766, 0x577D, 0x0E86, - /* Array index: 0x011A */ 0x5793, 0x57A5, 0x0E9E, - /* Array index: 0x011D */ 0x57B5, 0x57C7, 0x0EB1, - /* Array index: 0x0120 */ 0x57CB, 0x57D5, 0x0EC4, - /* Array index: 0x0123 */ 0x57DF, 0x5810, 0x0ECF, - /* Array index: 0x0126 */ 0x5819, 0x583F, 0x0F01, - /* Array index: 0x0129 */ 0x5848, 0x5865, 0x0F28, - /* Array index: 0x012C */ 0x5874, 0x5894, 0x0F46, - /* Array index: 0x012F */ 0x589C, 0x58B3, 0x0F67, - /* Array index: 0x0132 */ 0x58BA, 0x58C9, 0x0F7F, - /* Array index: 0x0135 */ 0x58CE, 0x58EC, 0x0F8F, - /* Array index: 0x0138 */ 0x58F9, 0x58FF, 0x0FAE, - /* Array index: 0x013B */ 0x590C, 0x590F, 0x0FB5, - /* Array index: 0x013E */ 0x5912, 0x591C, 0x0FB9, - /* Array index: 0x0141 */ 0x5927, 0x5931, 0x0FC4, - /* Array index: 0x0144 */ 0x5944, 0x5962, 0x0FCF, - /* Array index: 0x0147 */ 0x5967, 0x5985, 0x0FEE, - /* Array index: 0x014A */ 0x598D, 0x5999, 0x100D, - /* Array index: 0x014D */ 0x599D, 0x59A8, 0x101A, - /* Array index: 0x0150 */ 0x59AE, 0x5A03, 0x1026, - /* Array index: 0x0153 */ 0x5A13, 0x5A20, 0x107C, - /* Array index: 0x0156 */ 0x5A33, 0x5A39, 0x108A, - /* Array index: 0x0159 */ 0x5A3E, 0x5A6D, 0x1091, - /* Array index: 0x015C */ 0x5A77, 0x5A7F, 0x10C1, - /* Array index: 0x015F */ 0x5A8A, 0x5A9F, 0x10CA, - /* Array index: 0x0162 */ 0x5AA5, 0x5AA9, 0x10E0, - /* Array index: 0x0165 */ 0x5AAC, 0x5ACD, 0x10E5, - /* Array index: 0x0168 */ 0x5AD5, 0x5AEE, 0x1107, - /* Array index: 0x016B */ 0x5AF3, 0x5B34, 0x1121, - /* Array index: 0x016E */ 0x5B3C, 0x5B40, 0x1163, - /* Array index: 0x0171 */ 0x5B47, 0x5B65, 0x1168, - /* Array index: 0x0174 */ 0x5B6E, 0x5B9C, 0x1187, - /* Array index: 0x0177 */ 0x5BA2, 0x5BB9, 0x11B6, - /* Array index: 0x017A */ 0x5BBF, 0x5BD9, 0x11CE, - /* Array index: 0x017D */ 0x5BDE, 0x5BFA, 0x11E9, - /* Array index: 0x0180 */ 0x5C03, 0x5C16, 0x1206, - /* Array index: 0x0183 */ 0x5C37, 0x5C5D, 0x121A, - /* Array index: 0x0186 */ 0x5C60, 0x5C74, 0x1241, - /* Array index: 0x0189 */ 0x5C79, 0x5C7E, 0x1256, - /* Array index: 0x018C */ 0x5C86, 0x5C95, 0x125C, - /* Array index: 0x018F */ 0x5C9D, 0x5CB8, 0x126C, - /* Array index: 0x0192 */ 0x5CC6, 0x5CDF, 0x1288, - /* Array index: 0x0195 */ 0x5CEA, 0x5CF1, 0x12A2, - /* Array index: 0x0198 */ 0x5CF4, 0x5D01, 0x12AA, - /* Array index: 0x019B */ 0x5D0B, 0x5D29, 0x12B8, - /* Array index: 0x019E */ 0x5D2E, 0x5D52, 0x12D7, - /* Array index: 0x01A1 */ 0x5D65, 0x5D6C, 0x12FC, - /* Array index: 0x01A4 */ 0x5D79, 0x5D8A, 0x1304, - /* Array index: 0x01A7 */ 0x5D92, 0x5DA2, 0x1316, - /* Array index: 0x01AA */ 0x5DA7, 0x5DBD, 0x1327, - /* Array index: 0x01AD */ 0x5DD1, 0x5DD8, 0x133E, - /* Array index: 0x01B0 */ 0x5DDD, 0x5DE8, 0x1346, - /* Array index: 0x01B3 */ 0x5DEE, 0x5DF4, 0x1352, - /* Array index: 0x01B6 */ 0x5DFD, 0x5E06, 0x1359, - /* Array index: 0x01B9 */ 0x5E14, 0x5E2D, 0x1363, - /* Array index: 0x01BC */ 0x5E33, 0x5E38, 0x137D, - /* Array index: 0x01BF */ 0x5E3D, 0x5E45, 0x1383, - /* Array index: 0x01C2 */ 0x5E4A, 0x5E8F, 0x138C, - /* Array index: 0x01C5 */ 0x5E95, 0x5E9C, 0x13D2, - /* Array index: 0x01C8 */ 0x5EA0, 0x5EB9, 0x13DA, - /* Array index: 0x01CB */ 0x5EC1, 0x5EE9, 0x13F4, - /* Array index: 0x01CE */ 0x5EEE, 0x5EF7, 0x141D, - /* Array index: 0x01D1 */ 0x5EFE, 0x5F0B, 0x1427, - /* Array index: 0x01D4 */ 0x5F12, 0x5F29, 0x1435, - /* Array index: 0x01D7 */ 0x5F2D, 0x5F38, 0x144D, - /* Array index: 0x01DA */ 0x5F46, 0x5F4F, 0x1459, - /* Array index: 0x01DD */ 0x5F54, 0x5F59, 0x1463, - /* Array index: 0x01E0 */ 0x5F67, 0x5FA1, 0x1469, - /* Array index: 0x01E3 */ 0x5FA5, 0x5FAF, 0x14A4, - /* Array index: 0x01E6 */ 0x5FB5, 0x5FC5, 0x14AF, - /* Array index: 0x01E9 */ 0x5FCC, 0x5FD9, 0x14C0, - /* Array index: 0x01EC */ 0x5FDD, 0x5FE5, 0x14CE, - /* Array index: 0x01EF */ 0x5FEA, 0x6000, 0x14D7, - /* Array index: 0x01F2 */ 0x6009, 0x6039, 0x14EE, - /* Array index: 0x01F5 */ 0x6040, 0x604D, 0x151F, - /* Array index: 0x01F8 */ 0x6053, 0x6072, 0x152D, - /* Array index: 0x01FB */ 0x607F, 0x60A3, 0x154D, - /* Array index: 0x01FE */ 0x60B0, 0x60E6, 0x1572, - /* Array index: 0x0201 */ 0x60F0, 0x611F, 0x15A9, - /* Array index: 0x0204 */ 0x6127, 0x612F, 0x15D9, - /* Array index: 0x0207 */ 0x613E, 0x6183, 0x15E2, - /* Array index: 0x020A */ 0x6189, 0x6196, 0x1628, - /* Array index: 0x020D */ 0x61A7, 0x61CD, 0x1636, - /* Array index: 0x0210 */ 0x61DE, 0x6236, 0x165D, - /* Array index: 0x0213 */ 0x623D, 0x6266, 0x16B6, - /* Array index: 0x0216 */ 0x626D, 0x6298, 0x16E0, - /* Array index: 0x0219 */ 0x62A8, 0x62BF, 0x170C, - /* Array index: 0x021C */ 0x62C4, 0x62DC, 0x1724, - /* Array index: 0x021F */ 0x62EB, 0x6316, 0x173D, - /* Array index: 0x0222 */ 0x6328, 0x635A, 0x1769, - /* Array index: 0x0225 */ 0x6365, 0x63B1, 0x179C, - /* Array index: 0x0228 */ 0x63C0, 0x63F6, 0x17E9, - /* Array index: 0x022B */ 0x6409, 0x6443, 0x1820, - /* Array index: 0x022E */ 0x644D, 0x6454, 0x185B, - /* Array index: 0x0231 */ 0x6458, 0x647F, 0x1863, - /* Array index: 0x0234 */ 0x6485, 0x64A6, 0x188B, - /* Array index: 0x0237 */ 0x64A9, 0x64B3, 0x18AD, - /* Array index: 0x023A */ 0x64BB, 0x64DB, 0x18B8, - /* Array index: 0x023D */ 0x64E0, 0x654A, 0x18D9, - /* Array index: 0x0240 */ 0x6551, 0x656C, 0x1944, - /* Array index: 0x0243 */ 0x6572, 0x6584, 0x1960, - /* Array index: 0x0246 */ 0x6590, 0x65C6, 0x1973, - /* Array index: 0x0249 */ 0x65CB, 0x65F5, 0x19AA, - /* Array index: 0x024C */ 0x65FA, 0x65FD, 0x19D5, - /* Array index: 0x024F */ 0x6600, 0x6615, 0x19D9, - /* Array index: 0x0252 */ 0x661C, 0x6628, 0x19EF, - /* Array index: 0x0255 */ 0x662B, 0x663A, 0x19FC, - /* Array index: 0x0258 */ 0x6641, 0x664C, 0x1A0C, - /* Array index: 0x025B */ 0x6659, 0x6680, 0x1A18, - /* Array index: 0x025E */ 0x6684, 0x6699, 0x1A40, - /* Array index: 0x0261 */ 0x669D, 0x66A2, 0x1A56, - /* Array index: 0x0264 */ 0x66A8, 0x66C0, 0x1A5C, - /* Array index: 0x0267 */ 0x66C4, 0x66CC, 0x1A75, - /* Array index: 0x026A */ 0x66D6, 0x66F9, 0x1A7E, - /* Array index: 0x026D */ 0x66FC, 0x6718, 0x1AA2, - /* Array index: 0x0270 */ 0x671D, 0x672E, 0x1ABF, - /* Array index: 0x0273 */ 0x6731, 0x673F, 0x1AD1, - /* Array index: 0x0276 */ 0x6745, 0x6760, 0x1AE0, - /* Array index: 0x0279 */ 0x676C, 0x679F, 0x1AFC, - /* Array index: 0x027C */ 0x67AE, 0x67BB, 0x1B30, - /* Array index: 0x027F */ 0x67C0, 0x67FC, 0x1B3E, - /* Array index: 0x0282 */ 0x6812, 0x6821, 0x1B7B, - /* Array index: 0x0285 */ 0x6825, 0x6854, 0x1B8B, - /* Array index: 0x0288 */ 0x686B, 0x68B5, 0x1BBB, - /* Array index: 0x028B */ 0x68C4, 0x68FD, 0x1C06, - /* Array index: 0x028E */ 0x6904, 0x6917, 0x1C40, - /* Array index: 0x0291 */ 0x692F, 0x697B, 0x1C54, - /* Array index: 0x0294 */ 0x698D, 0x69D4, 0x1CA1, - /* Array index: 0x0297 */ 0x69E2, 0x6A0A, 0x1CE9, - /* Array index: 0x029A */ 0x6A11, 0x6A28, 0x1D12, - /* Array index: 0x029D */ 0x6A34, 0x6A41, 0x1D2A, - /* Array index: 0x02A0 */ 0x6A44, 0x6A6F, 0x1D38, - /* Array index: 0x02A3 */ 0x6A7E, 0x6AAF, 0x1D64, - /* Array index: 0x02A6 */ 0x6AB3, 0x6ABD, 0x1D96, - /* Array index: 0x02A9 */ 0x6AC2, 0x6AD3, 0x1DA1, - /* Array index: 0x02AC */ 0x6AD9, 0x6AE1, 0x1DB3, - /* Array index: 0x02AF */ 0x6AE7, 0x6AF3, 0x1DBC, - /* Array index: 0x02B2 */ 0x6AF8, 0x6AFC, 0x1DC9, - /* Array index: 0x02B5 */ 0x6B00, 0x6B1A, 0x1DCE, - /* Array index: 0x02B8 */ 0x6B2F, 0x6B56, 0x1DE9, - /* Array index: 0x02BB */ 0x6B5B, 0x6B67, 0x1E11, - /* Array index: 0x02BE */ 0x6B76, 0x6BB7, 0x1E1E, - /* Array index: 0x02C1 */ 0x6BBC, 0x6BDB, 0x1E60, - /* Array index: 0x02C4 */ 0x6BE0, 0x6C38, 0x1E80, - /* Array index: 0x02C7 */ 0x6C3E, 0x6C43, 0x1ED9, - /* Array index: 0x02CA */ 0x6C4A, 0x6C9D, 0x1EDF, - /* Array index: 0x02CD */ 0x6CAB, 0x6CF5, 0x1F33, - /* Array index: 0x02D0 */ 0x6D00, 0x6D22, 0x1F7E, - /* Array index: 0x02D3 */ 0x6D25, 0x6D42, 0x1FA1, - /* Array index: 0x02D6 */ 0x6D58, 0x6D98, 0x1FBF, - /* Array index: 0x02D9 */ 0x6DAA, 0x6DFD, 0x2000, - /* Array index: 0x02DC */ 0x6E19, 0x6E79, 0x2054, - /* Array index: 0x02DF */ 0x6E8D, 0x6ED8, 0x20B5, - /* Array index: 0x02E2 */ 0x6EEB, 0x6F43, 0x2101, - /* Array index: 0x02E5 */ 0x6F4E, 0x6F97, 0x215A, - /* Array index: 0x02E8 */ 0x6F9E, 0x6FCF, 0x21A4, - /* Array index: 0x02EB */ 0x6FDB, 0x6FF4, 0x21D6, - /* Array index: 0x02EE */ 0x6FFA, 0x704C, 0x21F0, - /* Array index: 0x02F1 */ 0x7051, 0x706B, 0x2243, - /* Array index: 0x02F4 */ 0x7082, 0x7086, 0x225E, - /* Array index: 0x02F7 */ 0x7091, 0x709A, 0x2263, - /* Array index: 0x02FA */ 0x70A9, 0x70BA, 0x226D, - /* Array index: 0x02FD */ 0x70C5, 0x70E4, 0x227F, - /* Array index: 0x0300 */ 0x70F3, 0x7110, 0x229F, - /* Array index: 0x0303 */ 0x7117, 0x7128, 0x22BD, - /* Array index: 0x0306 */ 0x712E, 0x7132, 0x22CF, - /* Array index: 0x0309 */ 0x7141, 0x7172, 0x22D4, - /* Array index: 0x030C */ 0x7180, 0x718A, 0x2306, - /* Array index: 0x030F */ 0x7197, 0x71F4, 0x2311, - /* Array index: 0x0312 */ 0x71F8, 0x7207, 0x236F, - /* Array index: 0x0315 */ 0x7219, 0x722D, 0x237F, - /* Array index: 0x0318 */ 0x7235, 0x724C, 0x2394, - /* Array index: 0x031B */ 0x7256, 0x7263, 0x23AC, - /* Array index: 0x031E */ 0x726C, 0x72B0, 0x23BA, - /* Array index: 0x0321 */ 0x72BD, 0x72EB, 0x23FF, - /* Array index: 0x0324 */ 0x72F3, 0x7301, 0x242E, - /* Array index: 0x0327 */ 0x7307, 0x730C, 0x243D, - /* Array index: 0x032A */ 0x730F, 0x731E, 0x2443, - /* Array index: 0x032D */ 0x7322, 0x7329, 0x2453, - /* Array index: 0x0330 */ 0x7330, 0x7345, 0x245B, - /* Array index: 0x0333 */ 0x7349, 0x7352, 0x2471, - /* Array index: 0x0336 */ 0x7357, 0x738B, 0x247B, - /* Array index: 0x0339 */ 0x7392, 0x7397, 0x24B0, - /* Array index: 0x033C */ 0x739D, 0x73AD, 0x24B6, - /* Array index: 0x033F */ 0x73B2, 0x73CD, 0x24C7, - /* Array index: 0x0342 */ 0x73D2, 0x73E0, 0x24E3, - /* Array index: 0x0345 */ 0x73E5, 0x73EE, 0x24F2, - /* Array index: 0x0348 */ 0x73F4, 0x740D, 0x24FC, - /* Array index: 0x034B */ 0x7420, 0x7436, 0x2516, - /* Array index: 0x034E */ 0x743F, 0x7446, 0x252D, - /* Array index: 0x0351 */ 0x744A, 0x7464, 0x2535, - /* Array index: 0x0354 */ 0x7469, 0x7475, 0x2550, - /* Array index: 0x0357 */ 0x747C, 0x748B, 0x255D, - /* Array index: 0x035A */ 0x7494, 0x74C5, 0x256D, - /* Array index: 0x035D */ 0x74D4, 0x74E9, 0x259F, - /* Array index: 0x0360 */ 0x74F4, 0x74F7, 0x25B5, - /* Array index: 0x0363 */ 0x74FB, 0x7540, 0x25B9, - /* Array index: 0x0366 */ 0x754B, 0x754F, 0x25FF, - /* Array index: 0x0369 */ 0x7559, 0x7570, 0x2604, - /* Array index: 0x036C */ 0x7576, 0x7580, 0x261C, - /* Array index: 0x036F */ 0x7586, 0x759A, 0x2627, - /* Array index: 0x0372 */ 0x75A2, 0x75AB, 0x263C, - /* Array index: 0x0375 */ 0x75B2, 0x75E7, 0x2646, - /* Array index: 0x0378 */ 0x75ED, 0x7603, 0x267C, - /* Array index: 0x037B */ 0x7608, 0x7629, 0x2693, - /* Array index: 0x037E */ 0x762D, 0x7635, 0x26B5, - /* Array index: 0x0381 */ 0x7642, 0x7649, 0x26BE, - /* Array index: 0x0384 */ 0x7652, 0x7665, 0x26C6, - /* Array index: 0x0387 */ 0x7669, 0x7672, 0x26DA, - /* Array index: 0x038A */ 0x7678, 0x769E, 0x26E4, - /* Array index: 0x038D */ 0x76AA, 0x76B0, 0x270B, - /* Array index: 0x0390 */ 0x76BA, 0x76D4, 0x2712, - /* Array index: 0x0393 */ 0x76DA, 0x76FE, 0x272D, - /* Array index: 0x0396 */ 0x7701, 0x770B, 0x2752, - /* Array index: 0x0399 */ 0x7710, 0x7729, 0x275D, - /* Array index: 0x039C */ 0x772F, 0x773E, 0x2777, - /* Array index: 0x039F */ 0x7744, 0x774F, 0x2787, - /* Array index: 0x03A2 */ 0x7752, 0x776F, 0x2793, - /* Array index: 0x03A5 */ 0x777C, 0x7791, 0x27B1, - /* Array index: 0x03A8 */ 0x7797, 0x77BF, 0x27C7, - /* Array index: 0x03AB */ 0x77C9, 0x77FD, 0x27F0, - /* Array index: 0x03AE */ 0x7802, 0x7806, 0x2825, - /* Array index: 0x03B1 */ 0x780C, 0x7814, 0x282A, - /* Array index: 0x03B4 */ 0x781D, 0x7838, 0x2833, - /* Array index: 0x03B7 */ 0x7848, 0x7852, 0x284F, - /* Array index: 0x03BA */ 0x785C, 0x7871, 0x285A, - /* Array index: 0x03BD */ 0x787B, 0x7889, 0x2870, - /* Array index: 0x03C0 */ 0x7891, 0x78AD, 0x287F, - /* Array index: 0x03C3 */ 0x78B0, 0x78B4, 0x289C, - /* Array index: 0x03C6 */ 0x78BA, 0x78BE, 0x28A1, - /* Array index: 0x03C9 */ 0x78C1, 0x78D5, 0x28A6, - /* Array index: 0x03CC */ 0x78DA, 0x78F4, 0x28BB, - /* Array index: 0x03CF */ 0x78F7, 0x7905, 0x28D6, - /* Array index: 0x03D2 */ 0x790E, 0x7914, 0x28E5, - /* Array index: 0x03D5 */ 0x7919, 0x791E, 0x28EC, - /* Array index: 0x03D8 */ 0x7921, 0x7931, 0x28F2, - /* Array index: 0x03DB */ 0x7938, 0x796D, 0x2903, - /* Array index: 0x03DE */ 0x7970, 0x7974, 0x2939, - /* Array index: 0x03E1 */ 0x7979, 0x7982, 0x293E, - /* Array index: 0x03E4 */ 0x798A, 0x79C1, 0x2948, - /* Array index: 0x03E7 */ 0x79CB, 0x79EE, 0x2980, - /* Array index: 0x03EA */ 0x79F6, 0x79FB, 0x29A4, - /* Array index: 0x03ED */ 0x7A00, 0x7A05, 0x29AA, - /* Array index: 0x03F0 */ 0x7A08, 0x7A22, 0x29B0, - /* Array index: 0x03F3 */ 0x7A2E, 0x7A31, 0x29CB, - /* Array index: 0x03F6 */ 0x7A39, 0x7A40, 0x29CF, - /* Array index: 0x03F9 */ 0x7A44, 0x7A4E, 0x29D7, - /* Array index: 0x03FC */ 0x7A54, 0x7A62, 0x29E2, - /* Array index: 0x03FF */ 0x7A67, 0x7A99, 0x29F1, - /* Array index: 0x0402 */ 0x7A9E, 0x7AA3, 0x2A24, - /* Array index: 0x0405 */ 0x7AA8, 0x7ACB, 0x2A2A, - /* Array index: 0x0408 */ 0x7ADF, 0x7AE6, 0x2A4E, - /* Array index: 0x040B */ 0x7AEB, 0x7AEF, 0x2A56, - /* Array index: 0x040E */ 0x7AF6, 0x7B13, 0x2A5B, - /* Array index: 0x0411 */ 0x7B18, 0x7B35, 0x2A79, - /* Array index: 0x0414 */ 0x7B44, 0x7B58, 0x2A97, - /* Array index: 0x0417 */ 0x7B60, 0x7B69, 0x2AAC, - /* Array index: 0x041A */ 0x7B6D, 0x7B78, 0x2AB6, - /* Array index: 0x041D */ 0x7B84, 0x7BA1, 0x2AC2, - /* Array index: 0x0420 */ 0x7BB4, 0x7BB9, 0x2AE0, - /* Array index: 0x0423 */ 0x7BC6, 0x7BCE, 0x2AE6, - /* Array index: 0x0426 */ 0x7BD4, 0x7BEB, 0x2AEF, - /* Array index: 0x0429 */ 0x7BF0, 0x7C11, 0x2B07, - /* Array index: 0x042C */ 0x7C1C, 0x7C2D, 0x2B29, - /* Array index: 0x042F */ 0x7C37, 0x7C40, 0x2B3B, - /* Array index: 0x0432 */ 0x7C45, 0x7C4D, 0x2B45, - /* Array index: 0x0435 */ 0x7C57, 0x7C7A, 0x2B4E, - /* Array index: 0x0438 */ 0x7C7D, 0x7C8D, 0x2B72, - /* Array index: 0x043B */ 0x7C91, 0x7C98, 0x2B83, - /* Array index: 0x043E */ 0x7C9E, 0x7CA5, 0x2B8B, - /* Array index: 0x0441 */ 0x7CAF, 0x7CBF, 0x2B93, - /* Array index: 0x0444 */ 0x7CC8, 0x7CE2, 0x2BA4, - /* Array index: 0x0447 */ 0x7CEC, 0x7CF8, 0x2BBF, - /* Array index: 0x044A */ 0x7CFD, 0x7D22, 0x2BCC, - /* Array index: 0x044D */ 0x7D28, 0x7D47, 0x2BF2, - /* Array index: 0x0450 */ 0x7D4E, 0x7D73, 0x2C12, - /* Array index: 0x0453 */ 0x7D79, 0x7D96, 0x2C38, - /* Array index: 0x0456 */ 0x7D9C, 0x7DCE, 0x2C56, - /* Array index: 0x0459 */ 0x7DD7, 0x7DFB, 0x2C89, - /* Array index: 0x045C */ 0x7E08, 0x7E49, 0x2CAE, - /* Array index: 0x045F */ 0x7E50, 0x7E63, 0x2CF0, - /* Array index: 0x0462 */ 0x7E68, 0x7E9C, 0x2D04, - /* Array index: 0x0465 */ 0x7F36, 0x7F45, 0x2D39, - /* Array index: 0x0468 */ 0x7F48, 0x7F55, 0x2D49, - /* Array index: 0x046B */ 0x7F5B, 0x7F7F, 0x2D57, - /* Array index: 0x046E */ 0x7F83, 0x7FD7, 0x2D7C, - /* Array index: 0x0471 */ 0x7FDB, 0x8021, 0x2DD1, - /* Array index: 0x0474 */ 0x8026, 0x802C, 0x2E18, - /* Array index: 0x0477 */ 0x8033, 0x803F, 0x2E1F, - /* Array index: 0x047A */ 0x8046, 0x804A, 0x2E2C, - /* Array index: 0x047D */ 0x804F, 0x8052, 0x2E31, - /* Array index: 0x0480 */ 0x805A, 0x805E, 0x2E35, - /* Array index: 0x0483 */ 0x806F, 0x807F, 0x2E3A, - /* Array index: 0x0486 */ 0x8082, 0x80B5, 0x2E4B, - /* Array index: 0x0489 */ 0x80C2, 0x80E6, 0x2E7F, - /* Array index: 0x048C */ 0x80ED, 0x810A, 0x2EA4, - /* Array index: 0x048F */ 0x8115, 0x8130, 0x2EC2, - /* Array index: 0x0492 */ 0x8143, 0x8155, 0x2EDE, - /* Array index: 0x0495 */ 0x815E, 0x817A, 0x2EF1, - /* Array index: 0x0498 */ 0x817F, 0x818F, 0x2F0E, - /* Array index: 0x049B */ 0x8195, 0x81D2, 0x2F1F, - /* Array index: 0x049E */ 0x81D5, 0x8216, 0x2F5D, - /* Array index: 0x04A1 */ 0x821B, 0x8222, 0x2F9F, - /* Array index: 0x04A4 */ 0x8228, 0x822C, 0x2FA7, - /* Array index: 0x04A7 */ 0x8232, 0x8285, 0x2FAC, - /* Array index: 0x04AA */ 0x828A, 0x82C3, 0x3000, - /* Array index: 0x04AD */ 0x82D1, 0x82FB, 0x303A, - /* Array index: 0x04B0 */ 0x82FE, 0x830D, 0x3065, - /* Array index: 0x04B3 */ 0x8322, 0x8356, 0x3075, - /* Array index: 0x04B6 */ 0x8373, 0x83B0, 0x30AA, - /* Array index: 0x04B9 */ 0x83BD, 0x8413, 0x30E8, - /* Array index: 0x04BC */ 0x8429, 0x847E, 0x313F, - /* Array index: 0x04BF */ 0x848D, 0x8491, 0x3195, - /* Array index: 0x04C2 */ 0x8497, 0x84D7, 0x319A, - /* Array index: 0x04C5 */ 0x84E7, 0x8531, 0x31DB, - /* Array index: 0x04C8 */ 0x853D, 0x854E, 0x3226, - /* Array index: 0x04CB */ 0x8551, 0x856E, 0x3238, - /* Array index: 0x04CE */ 0x8575, 0x85AA, 0x3256, - /* Array index: 0x04D1 */ 0x85AF, 0x85D2, 0x328C, - /* Array index: 0x04D4 */ 0x85D5, 0x860C, 0x32B0, - /* Array index: 0x04D7 */ 0x8617, 0x8640, 0x32E8, - /* Array index: 0x04DA */ 0x8646, 0x8656, 0x3312, - /* Array index: 0x04DD */ 0x865B, 0x8674, 0x3323, - /* Array index: 0x04E0 */ 0x8677, 0x867C, 0x333D, - /* Array index: 0x04E3 */ 0x8685, 0x86AA, 0x3343, - /* Array index: 0x04E6 */ 0x86AF, 0x86CC, 0x3369, - /* Array index: 0x04E9 */ 0x86D0, 0x86ED, 0x3387, - /* Array index: 0x04EC */ 0x86F5, 0x86FB, 0x33A5, - /* Array index: 0x04EF */ 0x86FE, 0x8713, 0x33AC, - /* Array index: 0x04F2 */ 0x8718, 0x8743, 0x33C2, - /* Array index: 0x04F5 */ 0x874C, 0x877B, 0x33EE, - /* Array index: 0x04F8 */ 0x8781, 0x8789, 0x341E, - /* Array index: 0x04FB */ 0x878D, 0x87A4, 0x3427, - /* Array index: 0x04FE */ 0x87AA, 0x87CC, 0x343F, - /* Array index: 0x0501 */ 0x87D1, 0x8844, 0x3462, - /* Array index: 0x0504 */ 0x8848, 0x884E, 0x34D6, - /* Array index: 0x0507 */ 0x8852, 0x8883, 0x34DD, - /* Array index: 0x050A */ 0x8888, 0x88AC, 0x350F, - /* Array index: 0x050D */ 0x88B6, 0x88C2, 0x3534, - /* Array index: 0x0510 */ 0x88C9, 0x88E1, 0x3541, - /* Array index: 0x0513 */ 0x88EB, 0x891A, 0x355A, - /* Array index: 0x0516 */ 0x891E, 0x8946, 0x358A, - /* Array index: 0x0519 */ 0x894B, 0x8988, 0x35B3, - /* Array index: 0x051C */ 0x8993, 0x89A6, 0x35F1, - /* Array index: 0x051F */ 0x89AA, 0x89AF, 0x3605, - /* Array index: 0x0522 */ 0x89B6, 0x89C0, 0x360B, - /* Array index: 0x0525 */ 0x89D2, 0x8A18, 0x3616, - /* Array index: 0x0528 */ 0x8A1B, 0x8A27, 0x365D, - /* Array index: 0x052B */ 0x8A39, 0x8A5B, 0x366A, - /* Array index: 0x052E */ 0x8A5E, 0x8A63, 0x368D, - /* Array index: 0x0531 */ 0x8A68, 0x8A7C, 0x3693, - /* Array index: 0x0534 */ 0x8A7F, 0x8A9A, 0x36A8, - /* Array index: 0x0537 */ 0x8AA0, 0x8AAB, 0x36C4, - /* Array index: 0x053A */ 0x8AB6, 0x8AE8, 0x36D0, - /* Array index: 0x053D */ 0x8AEB, 0x8B60, 0x3703, - /* Array index: 0x0540 */ 0x8B63, 0x8B70, 0x3779, - /* Array index: 0x0543 */ 0x8B77, 0x8B9F, 0x3787, - /* Array index: 0x0546 */ 0x8C39, 0x8C57, 0x37B0, - /* Array index: 0x0549 */ 0x8C61, 0x8CCC, 0x37CF, - /* Array index: 0x054C */ 0x8CCF, 0x8D0A, 0x383B, - /* Array index: 0x054F */ 0x8D0F, 0x8D1B, 0x3877, - /* Array index: 0x0552 */ 0x8D64, 0x8D85, 0x3884, - /* Array index: 0x0555 */ 0x8D89, 0x8D96, 0x38A6, - /* Array index: 0x0558 */ 0x8D9B, 0x8DF4, 0x38B4, - /* Array index: 0x055B */ 0x8DFA, 0x8E0A, 0x390E, - /* Array index: 0x055E */ 0x8E0D, 0x8E2B, 0x391F, - /* Array index: 0x0561 */ 0x8E30, 0x8E7C, 0x393E, - /* Array index: 0x0564 */ 0x8E81, 0x8EAC, 0x398B, - /* Array index: 0x0567 */ 0x8EC9, 0x8F64, 0x39B7, - /* Array index: 0x056A */ 0x8FAD, 0x8FB4, 0x3A53, - /* Array index: 0x056D */ 0x8FC2, 0x8FC6, 0x3A5B, - /* Array index: 0x0570 */ 0x8FCD, 0x8FD7, 0x3A60, - /* Array index: 0x0573 */ 0x8FE0, 0x9006, 0x3A6B, - /* Array index: 0x0576 */ 0x900B, 0x9024, 0x3A92, - /* Array index: 0x0579 */ 0x902D, 0x9044, 0x3AAC, - /* Array index: 0x057C */ 0x9047, 0x90A7, 0x3AC4, - /* Array index: 0x057F */ 0x90AF, 0x90B8, 0x3B25, - /* Array index: 0x0582 */ 0x90BD, 0x90CB, 0x3B2F, - /* Array index: 0x0585 */ 0x90D4, 0x915A, 0x3B3E, - /* Array index: 0x0588 */ 0x915F, 0x917A, 0x3BC5, - /* Array index: 0x058B */ 0x9180, 0x9193, 0x3BE1, - /* Array index: 0x058E */ 0x9199, 0x91DD, 0x3BF5, - /* Array index: 0x0591 */ 0x91E2, 0x91EE, 0x3C3A, - /* Array index: 0x0594 */ 0x91F1, 0x91F9, 0x3C47, - /* Array index: 0x0597 */ 0x91FD, 0x921E, 0x3C50, - /* Array index: 0x059A */ 0x9223, 0x9227, 0x3C72, - /* Array index: 0x059D */ 0x922D, 0x9240, 0x3C77, - /* Array index: 0x05A0 */ 0x9245, 0x925B, 0x3C8B, - /* Array index: 0x05A3 */ 0x9260, 0x9267, 0x3CA2, - /* Array index: 0x05A6 */ 0x926C, 0x9272, 0x3CAA, - /* Array index: 0x05A9 */ 0x9276, 0x928E, 0x3CB1, - /* Array index: 0x05AC */ 0x9291, 0x92AC, 0x3CCA, - /* Array index: 0x05AF */ 0x92B2, 0x92B7, 0x3CE6, - /* Array index: 0x05B2 */ 0x92C0, 0x92E1, 0x3CEC, - /* Array index: 0x05B5 */ 0x92E4, 0x92F1, 0x3D0E, - /* Array index: 0x05B8 */ 0x92F7, 0x9339, 0x3D1C, - /* Array index: 0x05BB */ 0x9346, 0x9367, 0x3D5F, - /* Array index: 0x05BE */ 0x9375, 0x9383, 0x3D81, - /* Array index: 0x05C1 */ 0x9388, 0x93B7, 0x3D90, - /* Array index: 0x05C4 */ 0x93C0, 0x93E8, 0x3DC0, - /* Array index: 0x05C7 */ 0x93F5, 0x9400, 0x3DE9, - /* Array index: 0x05CA */ 0x9406, 0x9419, 0x3DF5, - /* Array index: 0x05CD */ 0x9428, 0x9452, 0x3E09, - /* Array index: 0x05D0 */ 0x9460, 0x9483, 0x3E34, - /* Array index: 0x05D3 */ 0x957A, 0x957D, 0x3E58, - /* Array index: 0x05D6 */ 0x9588, 0x9594, 0x3E5C, - /* Array index: 0x05D9 */ 0x959B, 0x95C0, 0x3E69, - /* Array index: 0x05DC */ 0x95C3, 0x95E5, 0x3E8F, - /* Array index: 0x05DF */ 0x961E, 0x9624, 0x3EB2, - /* Array index: 0x05E2 */ 0x962A, 0x9632, 0x3EB9, - /* Array index: 0x05E5 */ 0x9639, 0x9644, 0x3EC2, - /* Array index: 0x05E8 */ 0x964A, 0x9654, 0x3ECE, - /* Array index: 0x05EB */ 0x965B, 0x9664, 0x3ED9, - /* Array index: 0x05EE */ 0x966A, 0x96B4, 0x3EE3, - /* Array index: 0x05F1 */ 0x96B8, 0x96EA, 0x3F2E, - /* Array index: 0x05F4 */ 0x96EF, 0x9713, 0x3F61, - /* Array index: 0x05F7 */ 0x9718, 0x9732, 0x3F86, - /* Array index: 0x05FA */ 0x9738, 0x974B, 0x3FA1, - /* Array index: 0x05FD */ 0x9758, 0x9762, 0x3FB5, - /* Array index: 0x0600 */ 0x9766, 0x9785, 0x3FC0, - /* Array index: 0x0603 */ 0x978A, 0x978F, 0x3FE0, - /* Array index: 0x0606 */ 0x9797, 0x97AE, 0x3FE6, - /* Array index: 0x0609 */ 0x97C1, 0x97E5, 0x3FFE, - /* Array index: 0x060C */ 0x97F6, 0x9821, 0x4023, - /* Array index: 0x060F */ 0x9824, 0x9832, 0x404F, - /* Array index: 0x0612 */ 0x9835, 0x983B, 0x405E, - /* Array index: 0x0615 */ 0x9841, 0x9874, 0x4065, - /* Array index: 0x0618 */ 0x98A8, 0x98B3, 0x4099, - /* Array index: 0x061B */ 0x98B8, 0x98C6, 0x40A5, - /* Array index: 0x061E */ 0x98E7, 0x98EF, 0x40B4, - /* Array index: 0x0621 */ 0x98F9, 0x9935, 0x40BD, - /* Array index: 0x0624 */ 0x993A, 0x9961, 0x40FA, - /* Array index: 0x0627 */ 0x9996, 0x999E, 0x4122, - /* Array index: 0x062A */ 0x99A3, 0x99C3, 0x412B, - /* Array index: 0x062D */ 0x99C9, 0x99F1, 0x414C, - /* Array index: 0x0630 */ 0x99F4, 0x9A6B, 0x4175, - /* Array index: 0x0633 */ 0x9AAD, 0x9AC2, 0x41ED, - /* Array index: 0x0636 */ 0x9ACD, 0x9AD8, 0x4203, - /* Array index: 0x0639 */ 0x9AEB, 0x9AFE, 0x420F, - /* Array index: 0x063C */ 0x9B01, 0x9B61, 0x4223, - /* Array index: 0x063F */ 0x9B64, 0x9B68, 0x4284, - /* Array index: 0x0642 */ 0x9B6F, 0x9B88, 0x4289, - /* Array index: 0x0645 */ 0x9B90, 0x9B95, 0x42A3, - /* Array index: 0x0648 */ 0x9B9E, 0x9BAF, 0x42A9, - /* Array index: 0x064B */ 0x9BB5, 0x9BB9, 0x42BB, - /* Array index: 0x064E */ 0x9BBD, 0x9BCA, 0x42C0, - /* Array index: 0x0651 */ 0x9BD3, 0x9BEC, 0x42CE, - /* Array index: 0x0654 */ 0x9C05, 0x9C14, 0x42E8, - /* Array index: 0x0657 */ 0x9C21, 0x9C41, 0x42F8, - /* Array index: 0x065A */ 0x9C46, 0x9C59, 0x4319, - /* Array index: 0x065D */ 0x9C5E, 0x9C68, 0x432D, - /* Array index: 0x0660 */ 0x9C71, 0x9C7A, 0x4338, - /* Array index: 0x0663 */ 0x9CE5, 0x9CEA, 0x4342, - /* Array index: 0x0666 */ 0x9CF1, 0x9D09, 0x4348, - /* Array index: 0x0669 */ 0x9D14, 0x9D38, 0x4361, - /* Array index: 0x066C */ 0x9D3B, 0x9D45, 0x4386, - /* Array index: 0x066F */ 0x9D4A, 0x9D4C, 0x4391, - /* Array index: 0x0672 */ 0x9D4F, 0x9D61, 0x4394, - /* Array index: 0x0675 */ 0x9D67, 0x9D8C, 0x43A7, - /* Array index: 0x0678 */ 0x9D94, 0x9E1E, 0x43CD, - /* Array index: 0x067B */ 0x9E79, 0x9E94, 0x4458, - /* Array index: 0x067E */ 0x9E97, 0x9EA9, 0x4474, - /* Array index: 0x0681 */ 0x9EB4, 0x9EB7, 0x4487, - /* Array index: 0x0684 */ 0x9ECC, 0x9EE8, 0x448B, - /* Array index: 0x0687 */ 0x9EEB, 0x9F01, 0x44A8, - /* Array index: 0x068A */ 0x9F06, 0x9F38, 0x44BF, - /* Array index: 0x068D */ 0x9F3D, 0x9F4F, 0x44F2, - /* Array index: 0x0690 */ 0x9F52, 0x9F7B, 0x4505, - /* Array index: 0x0693 */ 0x9F90, 0x9F95, 0x452F, - /* Array index: 0x0696 */ 0xFE30, 0xFE44, 0x4535, - /* Array index: 0x0699 */ 0xFE49, 0xFE6B, 0x454A, - /* Array index: 0x069C */ 0xFF01, 0xFF3C, 0x456D, - /* Array index: 0x069F */ 0xFF3F, 0xFF5D, 0x45A9, - /* Ranges content */ - /* Range 0x02C7 - 0x02CB, array index: 0x06A2 */ - 0xA3BE,INVALC,0xA3BC,0xA3BD,0xA3BF, - /* Range 0x0391 - 0x03A9, array index: 0x06A7 */ - 0xA344,0xA345,0xA346,0xA347,0xA348,0xA349,0xA34A,0xA34B, - 0xA34C,0xA34D,0xA34E,0xA34F,0xA350,0xA351,0xA352,0xA353, - 0xA354,INVALC,0xA355,0xA356,0xA357,0xA358,0xA359,0xA35A, - 0xA35B, - /* Range 0x03B1 - 0x03C9, array index: 0x06C0 */ - 0xA35C,0xA35D,0xA35E,0xA35F,0xA360,0xA361,0xA362,0xA363, - 0xA364,0xA365,0xA366,0xA367,0xA368,0xA369,0xA36A,0xA36B, - 0xA36C,INVALC,0xA36D,0xA36E,0xA36F,0xA370,0xA371,0xA372, - 0xA373, - /* Range 0x0414 - 0x041C, array index: 0x06D9 */ - 0xC7B1,0xC7B2,0xC7B4,0xC7B5,0xC7B6,0xC7B7,0xC7B8,0xC7B9, - 0xC7BA, - /* Range 0x0423 - 0x0451, array index: 0x06E2 */ - 0xC7BB,0xC7BC,0xC7BD,0xC7BE,0xC7BF,0xC7C0,0xC7C1,0xC7C2, - 0xC7C3,0xC7C4,0xC7C5,0xC7C6,0xC7C7,0xC7C8,0xC7C9,0xC7CA, - 0xC7CB,0xC7CC,0xC7CD,0xC7CF,0xC7D0,0xC7D1,0xC7D2,0xC7D3, - 0xC7D4,0xC7D5,0xC7D6,0xC7D7,0xC7D8,0xC7D9,0xC7DA,0xC7DB, - 0xC7DC,0xC7DD,0xC7DE,0xC7DF,0xC7E0,0xC7E1,0xC7E2,0xC7E3, - 0xC7E4,0xC7E5,0xC7E6,0xC7E7,0xC7E8,INVALC,0xC7CE, - /* Range 0x2160 - 0x2169, array index: 0x0711 */ - 0xA2B9,0xA2BA,0xA2BB,0xA2BC,0xA2BD,0xA2BE,0xA2BF,0xA2C0, - 0xA2C1,0xA2C2, - /* Range 0x2190 - 0x2199, array index: 0x071B */ - 0xA1F6,0xA1F4,0xA1F7,0xA1F5,INVALC,INVALC,0xA1F8,0xA1F9, - 0xA1FB,0xA1FA, - /* Range 0x221E - 0x2220, array index: 0x0725 */ - 0xA1DB,0xA1E8,0xA1E7, - /* Range 0x2229 - 0x222B, array index: 0x0728 */ - 0xA1E4,0xA1E5,0xA1EC, - /* Range 0x2460 - 0x2469, array index: 0x072B */ - 0xC7E9,0xC7EA,0xC7EB,0xC7EC,0xC7ED,0xC7EE,0xC7EF,0xC7F0, - 0xC7F1,0xC7F2, - /* Range 0x2474 - 0x247D, array index: 0x0735 */ - 0xC7F3,0xC7F4,0xC7F5,0xC7F6,0xC7F7,0xC7F8,0xC7F9,0xC7FA, - 0xC7FB,0xC7FC, - /* Range 0x256D - 0x2573, array index: 0x073F */ - 0xA27E,0xA2A1,0xA2A3,0xA2A2,0xA2AC,0xA2AD,0xA2AE, - /* Range 0x2581 - 0x258F, array index: 0x0746 */ - 0xA262,0xA263,0xA264,0xA265,0xA266,0xA267,0xA268,0xA269, - 0xA270,0xA26F,0xA26E,0xA26D,0xA26C,0xA26B,0xA26A, - /* Range 0x25E2 - 0x25E5, array index: 0x0755 */ - 0xA2A8,0xA2A9,0xA2AB,0xA2AA, - /* Range 0x2640 - 0x2642, array index: 0x0759 */ - 0xA1F0,0xA1F2,0xA1F1, - /* Range 0x3000 - 0x3015, array index: 0x075C */ - 0xA140,0xA142,0xA143,0xA1B2,INVALC,0xC6A4,INVALC,INVALC, - 0xA171,0xA172,0xA16D,0xA16E,0xA175,0xA176,0xA179,0xA17A, - 0xA169,0xA16A,0xA245,INVALC,0xA165,0xA166, - /* Range 0x301D - 0x3029, array index: 0x0772 */ - 0xA1A9,0xA1AA,INVALC,INVALC,0xA2C3,0xA2C4,0xA2C5,0xA2C6, - 0xA2C7,0xA2C8,0xA2C9,0xA2CA,0xA2CB, - /* Range 0x3041 - 0x3093, array index: 0x077F */ - 0xC6A5,0xC6A6,0xC6A7,0xC6A8,0xC6A9,0xC6AA,0xC6AB,0xC6AC, - 0xC6AD,0xC6AE,0xC6AF,0xC6B0,0xC6B1,0xC6B2,0xC6B3,0xC6B4, - 0xC6B5,0xC6B6,0xC6B7,0xC6B8,0xC6B9,0xC6BA,0xC6BB,0xC6BC, - 0xC6BD,0xC6BE,0xC6BF,0xC6C0,0xC6C1,0xC6C2,0xC6C3,0xC6C4, - 0xC6C5,0xC6C6,0xC6C7,0xC6C8,0xC6C9,0xC6CA,0xC6CB,0xC6CC, - 0xC6CD,0xC6CE,0xC6CF,0xC6D0,0xC6D1,0xC6D2,0xC6D3,0xC6D4, - 0xC6D5,0xC6D6,0xC6D7,0xC6D8,0xC6D9,0xC6DA,0xC6DB,0xC6DC, - 0xC6DD,0xC6DE,0xC6DF,0xC6E0,0xC6E1,0xC6E2,0xC6E3,0xC6E4, - 0xC6E5,0xC6E6,0xC6E7,0xC6E8,0xC6E9,0xC6EA,0xC6EB,0xC6EC, - 0xC6ED,0xC6EE,0xC6EF,0xC6F0,0xC6F1,0xC6F2,0xC6F3,0xC6F4, - 0xC6F5,0xC6F6,0xC6F7, - /* Range 0x309D - 0x30F6, array index: 0x07D2 */ - 0xC6A2,0xC6A3,INVALC,INVALC,0xC6F8,0xC6F9,0xC6FA,0xC6FB, - 0xC6FC,0xC6FD,0xC6FE,0xC740,0xC741,0xC742,0xC743,0xC744, - 0xC745,0xC746,0xC747,0xC748,0xC749,0xC74A,0xC74B,0xC74C, - 0xC74D,0xC74E,0xC74F,0xC750,0xC751,0xC752,0xC753,0xC754, - 0xC755,0xC756,0xC757,0xC758,0xC759,0xC75A,0xC75B,0xC75C, - 0xC75D,0xC75E,0xC75F,0xC760,0xC761,0xC762,0xC763,0xC764, - 0xC765,0xC766,0xC767,0xC768,0xC769,0xC76A,0xC76B,0xC76C, - 0xC76D,0xC76E,0xC76F,0xC770,0xC771,0xC772,0xC773,0xC774, - 0xC775,0xC776,0xC777,0xC778,0xC779,0xC77A,0xC77B,0xC77C, - 0xC77D,0xC77E,0xC7A1,0xC7A2,0xC7A3,0xC7A4,0xC7A5,0xC7A6, - 0xC7A7,0xC7A8,0xC7A9,0xC7AA,0xC7AB,0xC7AC,0xC7AD,0xC7AE, - 0xC7AF,0xC7B0, - /* Range 0x3105 - 0x3129, array index: 0x082C */ - 0xA374,0xA375,0xA376,0xA377,0xA378,0xA379,0xA37A,0xA37B, - 0xA37C,0xA37D,0xA37E,0xA3A1,0xA3A2,0xA3A3,0xA3A4,0xA3A5, - 0xA3A6,0xA3A7,0xA3A8,0xA3A9,0xA3AA,0xA3AB,0xA3AC,0xA3AD, - 0xA3AE,0xA3AF,0xA3B0,0xA3B1,0xA3B2,0xA3B3,0xA3B4,0xA3B5, - 0xA3B6,0xA3B7,0xA3B8,0xA3B9,0xA3BA, - /* Range 0x339C - 0x339E, array index: 0x0851 */ - 0xA250,0xA251,0xA252, - /* Range 0x4E07 - 0x4E19, array index: 0x0854 */ - 0xC945,0xA456,0xA454,0xA457,0xA455,0xC946,0xA4A3,0xC94F, - 0xC94D,0xA4A2,0xA4A1,INVALC,INVALC,0xA542,0xA541,0xA540, - INVALC,0xA543,0xA4FE, - /* Range 0x4E2D - 0x4E33, array index: 0x0867 */ - 0xA4A4,0xC950,INVALC,0xA4A5,0xC963,0xA6EA,0xCBB1, - /* Range 0x4E38 - 0x4E3C, array index: 0x086E */ - 0xA459,0xA4A6,INVALC,0xA544,0xC964, - /* Range 0x4E4B - 0x4E53, array index: 0x0873 */ - 0xA4A7,INVALC,0xA545,0xA547,0xA546,INVALC,INVALC,0xA5E2, - 0xA5E3, - /* Range 0x4E58 - 0x4E5F, array index: 0x087C */ - 0xADBC,0xA441,INVALC,INVALC,0xC941,0xA445,0xA45E,0xA45D, - /* Range 0x4E7E - 0x4E95, array index: 0x0884 */ - 0xB0AE,0xD44B,INVALC,INVALC,0xB6C3,0xDCB1,0xDCB2,INVALC, - 0xA446,INVALC,0xA4A9,INVALC,INVALC,0xA8C6,0xA447,0xC948, - 0xA45F,INVALC,INVALC,0xA4AA,0xA4AC,0xC951,0xA4AD,0xA4AB, - /* Range 0x4E9E - 0x4EAE, array index: 0x089C */ - 0xA8C8,0xAB45,INVALC,0xA460,0xA4AE,INVALC,0xA5E6,0xA5E8, - 0xA5E7,INVALC,0xA6EB,INVALC,INVALC,0xA8C9,0xA8CA,0xAB46, - 0xAB47, - /* Range 0x4EC0 - 0x4ECD, array index: 0x08AD */ - 0xA4B0,0xA4AF,0xC952,0xA4B1,0xA4B7,INVALC,0xA4B2,0xA4B3, - 0xC954,0xC953,0xA4B5,0xA4B6,INVALC,0xA4B4, - /* Range 0x4ED4 - 0x4EE9, array index: 0x08BB */ - 0xA54A,0xA54B,0xA54C,0xA54D,0xA549,0xA550,0xC96A,INVALC, - 0xC966,0xC969,0xA551,0xA561,INVALC,0xC968,INVALC,0xA54E, - 0xA54F,0xA548,INVALC,INVALC,0xC965,0xC967, - /* Range 0x4EF0 - 0x4EF7, array index: 0x08D1 */ - 0xA5F5,0xC9B0,0xA5F2,0xA5F6,0xC9BA,0xC9AE,0xA5F3,0xC9B2, - /* Range 0x4EFD - 0x4F19, array index: 0x08D9 */ - 0xA5F7,INVALC,0xA5E9,0xC9B1,0xA5F8,0xC9B5,INVALC,0xC9B9, - 0xC9B6,INVALC,INVALC,0xC9B3,0xA5EA,0xA5EC,0xA5F9,INVALC, - 0xA5EE,0xC9AB,0xA5F1,0xA5EF,0xA5F0,0xC9BB,0xC9B8,0xC9AF, - 0xA5ED,INVALC,INVALC,0xC9AC,0xA5EB, - /* Range 0x4F2C - 0x4F64, array index: 0x08F6 */ - 0xC9AD,0xCA66,INVALC,0xA742,0xA6F4,INVALC,INVALC,0xCA67, - 0xA6F1,INVALC,0xA744,INVALC,0xA6F9,INVALC,0xA6F8,0xCA5B, - 0xA6FC,0xA6F7,0xCA60,0xCA68,INVALC,0xCA64,INVALC,0xA6FA, - INVALC,INVALC,0xA6FD,0xA6EE,0xA747,0xCA5D,INVALC,INVALC, - 0xCBBD,0xA6EC,0xA743,0xA6ED,0xA6F5,0xA6F6,0xCA62,0xCA5E, - 0xA6FB,0xA6F3,0xCA5A,0xA6EF,0xCA65,0xA745,0xA748,0xA6F2, - 0xA740,0xA746,0xA6F0,0xCA63,0xA741,0xCA69,0xCA5C,0xA6FE, - 0xCA5F, - /* Range 0x4F67 - 0x4F9E, array index: 0x092F */ - 0xCA61,INVALC,0xA8D8,0xCBBF,0xCBCB,0xA8D0,INVALC,0xCBCC, - 0xA8CB,0xA8D5,INVALC,INVALC,0xA8CE,0xCBB9,0xA8D6,0xCBB8, - 0xCBBC,0xCBC3,0xCBC1,0xA8DE,0xA8D9,0xCBB3,0xCBB5,0xA8DB, - 0xA8CF,0xCBB6,0xCBC2,0xCBC9,0xA8D4,0xCBBB,0xCBB4,0xA8D3, - 0xCBB7,0xA8D7,0xCBBA,INVALC,0xA8D2,INVALC,0xA8CD,INVALC, - 0xA8DC,0xCBC4,0xA8DD,0xCBC8,INVALC,0xCBC6,0xCBCA,0xA8DA, - 0xCBBE,0xCBB2,INVALC,0xCBC0,0xA8D1,0xCBC5,0xA8CC,0xCBC7, - /* Range 0x4FB2 - 0x4FE1, array index: 0x0967 */ - 0xCDE0,0xCDE8,INVALC,0xAB49,0xAB51,0xAB5D,INVALC,0xCDEE, - 0xCDEC,0xCDE7,INVALC,INVALC,INVALC,0xAB4B,0xCDED,0xCDE3, - 0xAB59,0xAB50,0xAB58,0xCDDE,INVALC,0xCDEA,INVALC,0xCDE1, - 0xAB54,0xCDE2,INVALC,0xCDDD,0xAB5B,0xAB4E,0xAB57,0xAB4D, - INVALC,0xCDDF,0xCDE4,INVALC,0xCDEB,0xAB55,0xAB52,0xCDE6, - 0xAB5A,0xCDE9,0xCDE5,0xAB4F,0xAB5C,0xAB53,0xAB4C,0xAB48, - /* Range 0x4FF1 - 0x4FFA, array index: 0x0997 */ - 0xADD1,INVALC,0xADD6,0xD0D0,0xD0CF,0xD0D4,0xD0D5,0xADC4, - INVALC,0xADCD, - /* Range 0x5005 - 0x5037, array index: 0x09A1 */ - 0xD0C9,0xADC7,0xD0CA,INVALC,0xADDC,INVALC,0xADD3,0xADBE, - 0xADBF,0xD0DD,0xB0BF,INVALC,0xADCC,0xADCB,0xD0CB,0xADCF, - 0xD45B,0xADC6,0xD0D6,0xADD5,0xADD4,0xADCA,0xD0CE,0xD0D7, - INVALC,0xD0C8,0xADC9,0xD0D8,0xADD2,0xD0CC,0xADC0,INVALC, - 0xADC3,0xADC2,0xD0D9,0xADD0,0xADC5,0xADD9,0xADDB,0xD0D3, - 0xADD8,INVALC,0xD0DB,0xD0CD,0xD0DC,INVALC,0xD0D1,INVALC, - 0xD0DA,INVALC,0xD0D2, - /* Range 0x5043 - 0x5077, array index: 0x09D4 */ - 0xB0B3,INVALC,0xD45C,0xD462,0xB0B2,0xD455,0xB0B6,0xD459, - 0xD452,0xB0B4,0xD456,0xB0B9,0xB0BE,INVALC,0xD467,INVALC, - 0xD451,INVALC,0xB0BA,INVALC,0xD466,INVALC,INVALC,0xB0B5, - 0xD458,0xB0B1,0xD453,0xD44F,0xD45D,0xD450,0xD44E,0xD45A, - 0xD460,0xD461,0xB0B7,INVALC,INVALC,0xD85B,0xD45E,0xD44D, - 0xD45F,INVALC,0xB0C1,0xD464,0xB0C0,0xD44C,INVALC,0xD454, - 0xD465,0xB0BC,0xB0BB,0xB0B8,0xB0BD, - /* Range 0x508B - 0x509E, array index: 0x0A09 */ - 0xD855,0xD858,0xB3C4,0xD859,INVALC,INVALC,0xB3C7,0xD85D, - INVALC,0xD853,0xD852,0xB3C9,INVALC,0xB3CA,0xB3C6,0xB3CB, - 0xD851,0xD85C,0xD85A,0xD854, - /* Range 0x50AC - 0x50DD, array index: 0x0A1D */ - 0xB6CA,0xB6C4,0xDCB7,0xB6CD,0xDCBD,0xDCC0,0xB6C6,0xB6C7, - 0xDCBA,0xB6C5,0xDCC3,0xB6CB,0xDCC4,INVALC,0xDCBF,0xB6CC, - INVALC,0xDCB4,0xB6C9,0xDCB5,INVALC,0xDCBE,0xDCBC,INVALC, - 0xDCB8,0xB6C8,0xDCB6,0xB6CE,0xDCBB,0xDCC2,0xDCB9,0xDCC1, - INVALC,INVALC,0xB9B6,0xB9B3,INVALC,0xB9B4,INVALC,0xE0F9, - 0xE0F1,0xB9B2,0xB9AF,0xE0F2,INVALC,INVALC,0xB9B1,0xE0F5, - INVALC,0xE0F7, - /* Range 0x50E3 - 0x514D, array index: 0x0A4F */ - 0xE0FD,0xE0F8,0xB9AE,0xE0F0,0xB9AC,0xE0F3,0xB9B7,0xE0F6, - INVALC,0xE0FA,0xB9B0,0xB9AD,0xE0FC,0xE0FB,0xB9B5,INVALC, - 0xE0F4,INVALC,0xBBF8,0xE4EC,INVALC,0xE4E9,0xBBF9,INVALC, - 0xBBF7,INVALC,0xE4F0,0xE4ED,0xE4E6,0xBBF6,INVALC,0xBBFA, - 0xE4E7,0xBBF5,0xBBFD,0xE4EA,0xE4EB,0xBBFB,0xBBFC,0xE4F1, - 0xE4EE,0xE4EF,INVALC,INVALC,INVALC,0xBEAA,0xE8F8,0xBEA7, - 0xE8F5,0xBEA9,0xBEAB,INVALC,0xE8F6,0xBEA8,INVALC,0xE8F7, - INVALC,0xE8F4,INVALC,INVALC,0xC076,0xECBD,0xC077,0xECBB, - INVALC,0xECBC,0xECBA,0xECB9,INVALC,INVALC,0xECBE,0xC075, - INVALC,INVALC,0xEFB8,0xEFB9,INVALC,0xE4E8,0xEFB7,0xC078, - 0xC35F,0xF1EB,0xF1EC,INVALC,0xC4D7,0xC4D8,0xF5C1,0xF5C0, - 0xC56C,0xC56B,0xF7D0,INVALC,0xA449,0xA461,0xA4B9,INVALC, - 0xA4B8,0xA553,0xA552,0xA5FC,0xA5FB,0xA5FD,0xA5FA,INVALC, - 0xA74A,0xA749,0xA74B, - /* Range 0x5157 - 0x516E, array index: 0x0ABA */ - 0xAB5E,INVALC,0xA259,0xD0DE,0xA25A,0xB0C2,0xA25C,0xA25B, - 0xD860,INVALC,0xA25D,0xB9B8,0xA25E,INVALC,0xA44A,INVALC, - 0xA4BA,0xA5FE,0xA8E2,INVALC,0xA44B,0xA4BD,0xA4BB,0xA4BC, - /* Range 0x5175 - 0x5178, array index: 0x0AD2 */ - 0xA74C,0xA8E4,0xA8E3,0xA8E5, - /* Range 0x518F - 0x5198, array index: 0x0AD6 */ - 0xCA6A,INVALC,0xAB60,0xAB5F,0xD0E0,0xD0DF,0xB0C3,INVALC, - 0xA4BE,0xC955, - /* Range 0x51BC - 0x51BE, array index: 0x0AE0 */ - 0xCBCE,0xA8E6,0xCBCF, - /* Range 0x51C4 - 0x51D0, array index: 0x0AE3 */ - 0xD0E2,0xD0E3,0xADE3,INVALC,0xD0E4,INVALC,0xD0E1,0xADE4, - 0xADE2,0xADE1,0xD0E5,INVALC,0xD468, - /* Range 0x51DC - 0x51E1, array index: 0x0AF0 */ - 0xBBFE,0xBEAE,0xE8F9,INVALC,0xA44C,0xA45A, - /* Range 0x51F5 - 0x51FA, array index: 0x0AF6 */ - 0xC942,0xA4BF,INVALC,0xA559,0xA557,0xA558, - /* Range 0x5206 - 0x5217, array index: 0x0AFC */ - 0xA4C0,0xA4C1,0xA4C2,0xC9BE,0xA55A,INVALC,0xC96B,INVALC, - 0xA646,INVALC,0xC9BF,0xA644,0xA645,0xC9BD,INVALC,INVALC, - 0xA647,0xA643, - /* Range 0x521C - 0x521E, array index: 0x0B0E */ - 0xCA6C,0xAAEC,0xCA6D, - /* Range 0x5224 - 0x522A, array index: 0x0B11 */ - 0xA750,0xA74F,INVALC,INVALC,0xA753,0xA751,0xA752, - /* Range 0x522E - 0x523B, array index: 0x0B18 */ - 0xA8ED,INVALC,0xA8EC,0xCBD4,0xCBD1,0xCBD2,INVALC,0xCBD0, - 0xA8EE,0xA8EA,0xA8E9,INVALC,0xA8EB,0xA8E8, - /* Range 0x5243 - 0x524E, array index: 0x0B26 */ - 0xAB63,0xCDF0,INVALC,0xCBD3,0xAB68,INVALC,0xCDF1,0xAB64, - 0xAB67,0xAB66,0xAB65,0xAB62, - /* Range 0x5252 - 0x5262, array index: 0x0B32 */ - 0xD0E8,INVALC,0xADE7,0xD0EB,0xADE5,INVALC,INVALC,INVALC, - 0xD0E7,0xADE8,0xADE6,0xADE9,0xD0E9,0xD0EA,INVALC,0xD0E6, - 0xD0EC, - /* Range 0x5269 - 0x526F, array index: 0x0B43 */ - 0xB3D1,0xB0C5,0xD469,0xD46B,0xD46A,0xD46C,0xB0C6, - /* Range 0x5274 - 0x528D, array index: 0x0B4A */ - 0xB3CF,0xB3D0,INVALC,0xB6D0,0xDCC7,INVALC,0xDCC6,0xDCC8, - 0xDCC9,0xB6D1,INVALC,0xB6CF,0xE141,0xE142,0xB9BB,0xB9BA, - 0xE35A,INVALC,INVALC,0xBC40,0xBC41,0xBC42,0xBC44,0xE4F2, - 0xE4F3,0xBC43, - /* Range 0x5296 - 0x529B, array index: 0x0B64 */ - 0xF1ED,0xF5C3,0xF5C2,0xF7D1,INVALC,0xA44F, - /* Range 0x52A9 - 0x52AE, array index: 0x0B6A */ - 0xA755,0xA756,0xA754,0xA757,0xCA6F,0xCA70, - /* Range 0x52BE - 0x52C3, array index: 0x0B70 */ - 0xA8F0,INVALC,0xCDF2,0xAB6C,0xCDF3,0xAB6B, - /* Range 0x52D2 - 0x52E6, array index: 0x0B76 */ - 0xB0C7,0xD46E,INVALC,0xB0CA,0xD46D,0xB1E5,0xB0C9,0xB0C8, - INVALC,0xB3D4,INVALC,0xB3D3,0xB3D2,0xB6D2,INVALC,INVALC, - 0xB6D5,0xB6D6,0xB6D4,INVALC,0xB6D3, - /* Range 0x52EF - 0x52FF, array index: 0x0B8B */ - 0xE4F5,0xBC45,0xE4F4,INVALC,0xBEB1,0xECBF,0xC079,INVALC, - 0xF1EE,0xC455,INVALC,0xA463,0xA4C3,0xC956,INVALC,0xA4C4, - 0xA4C5, - /* Range 0x5305 - 0x5323, array index: 0x0B9C */ - 0xA55D,0xA55E,INVALC,0xA649,0xCA71,0xCBD6,0xCBD7,INVALC, - 0xAB6D,0xD0EE,0xB0CC,0xB0CB,0xD863,0xD862,INVALC,INVALC, - 0xA450,0xA4C6,0xA55F,INVALC,0xB0CD,0xC943,INVALC,0xC96C, - 0xA560,INVALC,0xC9C2,0xA64B,0xA64A,0xC9C1,0xA758, - /* Range 0x532D - 0x5331, array index: 0x0BBB */ - 0xD46F,INVALC,0xB6D7,0xE145,0xB9BC, - /* Range 0x533C - 0x5354, array index: 0x0BC0 */ - 0xCBD8,0xCDF4,0xB0D0,0xB0CE,0xB0CF,0xA451,INVALC,0xA464, - 0xA2CD,0xA4CA,INVALC,0xA4C9,0xA4C8,0xA563,0xA562,INVALC, - 0xC96D,0xC9C3,INVALC,INVALC,INVALC,0xA8F5,0xA8F2,0xA8F4, - 0xA8F3, - /* Range 0x536C - 0x537C, array index: 0x0BD9 */ - 0xC957,INVALC,0xA567,0xA566,0xA64C,0xA64D,0xCA73,0xA759, - INVALC,0xA75A,INVALC,0xA8F7,0xA8F8,0xA8F9,INVALC,0xAB6F, - 0xCDF5, - /* Range 0x5394 - 0x539F, array index: 0x0BEA */ - 0xCBDA,INVALC,0xCDF7,0xCDF6,0xCDF9,0xCDF8,0xAB70,INVALC, - 0xD470,0xADED,0xD0EF,0xADEC, - /* Range 0x53C8 - 0x53CD, array index: 0x0BF6 */ - 0xA453,0xA465,0xA4CE,0xA4CD,INVALC,0xA4CF, - /* Range 0x53DF - 0x53F5, array index: 0x0BFC */ - 0xADEE,INVALC,0xE8FB,0xC24F,0xA466,0xA56A,0xA579,0xA574, - INVALC,0xA56F,0xA56E,0xA575,0xA573,0xA56C,0xA57A,0xA56D, - 0xA569,0xA578,0xA577,0xA576,0xA56B,INVALC,0xA572, - /* Range 0x5403 - 0x5412, array index: 0x0C13 */ - 0xA659,0xA655,INVALC,0xA65B,0xC9C5,0xA658,0xA64E,0xA651, - 0xA654,0xA650,0xA657,0xA65A,0xA64F,0xA652,0xA656,0xA65C, - /* Range 0x5418 - 0x544A, array index: 0x0C23 */ - 0xCA7E,0xCA7B,INVALC,0xA767,0xCA7C,0xA75B,0xA75D,0xA775, - 0xA770,INVALC,INVALC,INVALC,0xCAA5,0xCA7D,0xA75F,0xA761, - 0xCAA4,0xA768,0xCA78,0xA774,0xA776,0xA75C,0xA76D,INVALC, - 0xCA76,0xA773,INVALC,0xA764,INVALC,0xA76E,0xA76F,0xCA77, - 0xA76C,0xA76A,INVALC,0xA76B,0xA771,0xCAA1,0xA75E,INVALC, - 0xA772,0xCAA3,0xA766,0xA763,INVALC,0xCA7A,0xA762,0xCAA6, - 0xA765,INVALC,0xA769, - /* Range 0x5460 - 0x549A, array index: 0x0C56 */ - 0xCBEB,0xCBEA,0xA94F,0xCBED,0xCBEF,0xCBE4,0xCBE7,0xCBEE, - 0xA950,INVALC,INVALC,0xCBE1,0xCBE5,INVALC,INVALC,0xCBE9, - 0xCE49,0xA94B,0xCE4D,0xA8FD,0xCBE6,0xA8FE,0xA94C,0xA945, - 0xA941,INVALC,0xCBE2,0xA944,0xA949,0xA952,0xCBE3,0xCBDC, - 0xA943,0xCBDD,0xCBDF,INVALC,0xA946,INVALC,0xA948,0xCBDB, - 0xCBE0,INVALC,INVALC,0xA951,0xA94D,0xCBE8,0xA953,INVALC, - 0xA94A,0xCBDE,0xA947,INVALC,INVALC,0xA942,0xA940,INVALC, - 0xCBEC,INVALC,0xA94E, - /* Range 0x54A0 - 0x54C9, array index: 0x0C91 */ - 0xCE48,0xCDFB,0xCE4B,INVALC,INVALC,0xCDFD,0xAB78,0xABA8, - 0xAB74,0xABA7,0xAB7D,0xABA4,0xAB72,0xCDFC,0xCE43,0xABA3, - 0xCE4F,0xABA5,INVALC,0xAB79,INVALC,INVALC,0xCE45,0xCE42, - 0xAB77,INVALC,0xCDFA,0xABA6,0xCE4A,0xAB7C,0xCE4C,0xABA9, - 0xAB73,0xAB7E,0xAB7B,0xCE40,0xABA1,0xCE46,0xCE47,0xAB7A, - 0xABA2,0xAB76, - /* Range 0x54DE - 0x54F3, array index: 0x0CBB */ - 0xCE4E,INVALC,0xD144,0xADFB,0xD0F1,INVALC,0xD0F6,0xADF4, - 0xAE40,0xD0F4,0xADEF,0xADF9,0xADFE,0xD0FB,INVALC,0xADFA, - 0xADFD,INVALC,INVALC,0xD0FE,0xADF5,0xD0F5, - /* Range 0x54F7 - 0x5514, array index: 0x0CD1 */ - 0xD142,0xD143,INVALC,0xADF7,0xD141,0xADF3,0xAE43,INVALC, - 0xD0F8,INVALC,0xADF1,INVALC,0xD146,0xD0F9,0xD0FD,0xADF6, - 0xAE42,0xD0FA,0xADFC,0xD140,0xD147,0xD4A1,INVALC,0xD145, - 0xAE44,0xADF0,0xD0FC,0xD0F3,INVALC,0xADF8, - /* Range 0x552A - 0x5557, array index: 0x0CEF */ - 0xD477,INVALC,0xB0E4,0xD4A7,0xB0E2,0xB0DF,0xD47C,0xB0DB, - 0xD4A2,0xB0E6,0xD476,0xD47B,0xD47A,0xADF2,0xB0E1,0xD4A5, - INVALC,0xD4A8,0xD473,INVALC,0xB3E8,INVALC,0xD4A9,0xB0E7, - INVALC,0xB0D9,0xB0D6,0xD47E,0xB0D3,INVALC,0xD4A6,INVALC, - 0xB0DA,0xD4AA,INVALC,0xD474,0xD4A4,0xB0DD,0xD475,0xD478, - 0xD47D,INVALC,INVALC,0xB0DE,0xB0DC,0xB0E8, - /* Range 0x555E - 0x5566, array index: 0x0D1D */ - 0xB0D7,0xB1D2,INVALC,0xB0D8,0xD479,0xB0E5,0xB0E0,0xD4A3, - 0xB0D5, - /* Range 0x5575 - 0x55B5, array index: 0x0D26 */ - 0xD471,0xD472,0xD86A,INVALC,INVALC,INVALC,0xB3D7,0xB3DA, - 0xD875,0xB3EE,0xD878,0xB3D8,0xD871,0xB3DE,0xB3E4,0xB5BD, - INVALC,INVALC,0xB3E2,0xD86E,0xB3EF,0xB3DB,0xB3E3,0xD876, - 0xDCD7,0xD87B,0xD86F,INVALC,0xD866,0xD873,0xD86D,0xB3E1, - 0xD879,INVALC,INVALC,0xB3DD,0xB3F1,0xB3EA,INVALC,0xB3DF, - 0xB3DC,INVALC,0xB3E7,INVALC,0xD87A,0xD86C,0xD872,0xD874, - 0xD868,0xD877,0xB3D9,0xD867,INVALC,0xB3E0,0xB3F0,0xB3EC, - 0xD869,0xB3E6,INVALC,INVALC,0xB3ED,0xB3E9,0xB3E5,INVALC, - 0xD870, - /* Range 0x55BF - 0x55E9, array index: 0x0D67 */ - 0xDCD5,0xDCD1,INVALC,0xDCE0,0xDCCA,0xDCD3,0xB6E5,0xB6E6, - 0xB6DE,0xDCDC,0xB6E8,0xDCCF,0xDCCE,0xDCCC,0xDCDE,0xB6DC, - 0xDCD8,0xDCCD,0xB6DF,0xDCD6,0xB6DA,0xDCD2,0xDCD9,0xDCDB, - INVALC,INVALC,0xDCDF,0xB6E3,0xDCCB,0xB6DD,0xDCD0,INVALC, - 0xB6D8,INVALC,0xB6E4,0xDCDA,0xB6E0,0xB6E1,0xB6E7,0xB6DB, - 0xA25F,0xB6D9,0xDCD4, - /* Range 0x55F6 - 0x561F, array index: 0x0D92 */ - 0xB9CD,0xB9C8,INVALC,0xE155,0xE151,INVALC,0xE14B,0xB9C2, - 0xB9BE,0xE154,0xB9BF,0xE14E,0xE150,INVALC,0xE153,INVALC, - 0xB9C4,INVALC,0xB9CB,0xB9C5,INVALC,INVALC,0xE149,0xB9C6, - 0xB9C7,0xE14C,0xB9CC,INVALC,0xE14A,0xE14F,0xB9C3,0xE148, - 0xB9C9,0xB9C1,INVALC,INVALC,INVALC,0xB9C0,0xE14D,0xE152, - INVALC,0xB9CA, - /* Range 0x562C - 0x564E, array index: 0x0DBC */ - 0xE544,INVALC,0xBC47,0xBC53,0xBC54,INVALC,0xBC4A,0xE542, - 0xBC4C,0xE4F9,0xBC52,INVALC,0xE546,0xBC49,0xE548,0xBC48, - INVALC,0xE543,0xE545,0xBC4B,0xE541,0xE4FA,0xE4F7,INVALC, - INVALC,0xD86B,0xE4FD,INVALC,0xE4F6,0xE4FC,0xE4FB,INVALC, - 0xE4F8,INVALC,0xBC4F, - /* Range 0x5657 - 0x565A, array index: 0x0DDF */ - 0xBC50,0xE4FE,0xBEB2,0xE540, - /* Range 0x5660 - 0x5679, array index: 0x0DE3 */ - 0xE8FD,INVALC,0xBEBE,0xE942,0xBEB6,0xBEBA,0xE941,INVALC, - 0xBEB9,0xBEB5,0xBEB8,0xBEB3,0xBEBD,0xE943,0xE8FE,0xBEBC, - 0xE8FC,0xBEBB,0xE944,0xE940,0xBC51,INVALC,0xBEBF,0xE946, - 0xBEB7,0xBEB4, - /* Range 0x567E - 0x5687, array index: 0x0DFD */ - 0xECC6,0xECC8,0xC07B,0xECC9,0xECC7,0xECC5,0xECC4,0xC07D, - 0xECC3,0xC07E, - /* Range 0x568C - 0x5690, array index: 0x0E07 */ - 0xECC1,0xECC2,0xC07A,0xC0A1,0xC07C, - /* Range 0x5695 - 0x569D, array index: 0x0E0C */ - 0xC250,INVALC,0xEFBC,0xEFBA,0xEFBF,0xEFBD,INVALC,0xEFBB, - 0xEFBE, - /* Range 0x56A5 - 0x56B7, array index: 0x0E15 */ - 0xC360,0xF1F2,0xF1F3,0xC456,INVALC,0xF1F4,0xF1F0,0xF1F5, - 0xF1F1,0xC251,INVALC,INVALC,INVALC,0xF3FE,0xF441,0xC459, - 0xF440,0xC458,0xC457, - /* Range 0x56BC - 0x56CD, array index: 0x0E28 */ - 0xC45A,0xF5C5,0xF5C6,INVALC,0xC4DA,0xC4D9,0xC4DB,0xF5C4, - INVALC,0xF6D8,0xF6D7,INVALC,0xC56D,0xC56F,0xC56E,0xF6D9, - 0xC5C8,0xF8A6, - /* Range 0x56DA - 0x56EB, array index: 0x0E3A */ - 0xA57D,0xA57C,INVALC,0xA65F,0xA65E,0xC9C7,0xA65D,0xC9C6, - INVALC,INVALC,0xA779,0xCAA9,INVALC,0xCAA8,INVALC,INVALC, - 0xA777,0xA77A, - /* Range 0x56FF - 0x570D, array index: 0x0E4C */ - 0xABAA,INVALC,0xD148,0xD149,0xAE45,0xAE46,INVALC,INVALC, - 0xD4AC,0xB0E9,0xB0EB,0xD4AB,0xB0EA,0xD87C,0xB3F2, - /* Range 0x5712 - 0x5723, array index: 0x0E5B */ - 0xB6E9,0xB6EA,0xDCE1,INVALC,0xB9CF,INVALC,0xB9CE,INVALC, - 0xE549,0xE948,0xE947,INVALC,0xF96B,0xA467,0xC959,INVALC, - 0xC96E,0xC96F, - /* Range 0x5728 - 0x5734, array index: 0x0E6D */ - 0xA662,0xA666,0xC9C9,INVALC,0xA664,0xA663,0xC9C8,0xA665, - 0xA661,INVALC,INVALC,0xA660,0xC9CA, - /* Range 0x5747 - 0x5752, array index: 0x0E7A */ - 0xA7A1,INVALC,0xCAAD,0xA77B,0xCAAE,0xCAAC,0xA77E,0xA7A2, - 0xA7A5,0xA7A4,0xA77C,0xCAAF, - /* Range 0x5766 - 0x577D, array index: 0x0E86 */ - 0xA95A,INVALC,0xCC40,0xA958,0xA957,0xCBF5,INVALC,0xCBF4, - INVALC,0xCBF2,0xCBF7,0xCBF6,0xCBF3,0xCBFC,0xCBFD,0xCBFA, - 0xCBF8,0xA956,INVALC,INVALC,INVALC,0xCBFB,0xA95C,0xCC41, - /* Range 0x5793 - 0x57A5, array index: 0x0E9E */ - 0xABB2,0xCE58,0xCE5E,INVALC,0xCE55,0xCE59,0xCE5B,0xCE5D, - 0xCE57,INVALC,0xCE56,0xCE51,0xCE52,0xABAD,INVALC,0xABAF, - 0xABAE,0xCE53,0xCE5C, - /* Range 0x57B5 - 0x57C7, array index: 0x0EB1 */ - 0xCE50,0xD153,INVALC,0xD152,0xD157,0xD14E,INVALC,0xD151, - 0xD150,INVALC,0xD154,INVALC,0xD158,0xAE47,0xAE4A,INVALC, - INVALC,0xD14F,0xD155, - /* Range 0x57CB - 0x57D5, array index: 0x0EC4 */ - 0xAE49,0xD14A,INVALC,0xABB0,0xD4BA,0xD156,INVALC,0xD14D, - INVALC,0xAE48,0xD14C, - /* Range 0x57DF - 0x5810, array index: 0x0ECF */ - 0xB0EC,0xB0F0,0xD4C1,0xD4AF,0xD4BD,0xB0F1,0xD4BF,INVALC, - 0xD4C5,INVALC,0xD4C9,INVALC,INVALC,0xD4C0,0xD4B4,0xD4BC, - INVALC,0xD4CA,0xD4C8,0xD4BE,0xD4B9,0xD4B2,0xD8A6,0xD4B0, - 0xB0F5,0xD4B7,0xB0F6,0xB0F2,0xD4AD,0xD4C3,0xD4B5,INVALC, - INVALC,0xD4B3,0xD4C6,0xB0F3,INVALC,0xD4CC,0xB0ED,0xB0EF, - 0xD4BB,0xD4B6,0xAE4B,0xB0EE,0xD4B8,0xD4C7,0xD4CB,0xD4C2, - INVALC,0xD4C4, - /* Range 0x5819 - 0x583F, array index: 0x0F01 */ - 0xD8A1,INVALC,0xD8AA,0xD8A9,0xB3FA,0xD8A2,INVALC,0xB3FB, - 0xB3F9,INVALC,0xD8A4,0xB3F6,0xD8A8,INVALC,0xD8A3,0xD8A5, - 0xD87D,0xB3F4,INVALC,0xD8B2,0xD8B1,0xD8AE,0xB3F3,0xB3F7, - 0xB3F8,0xD14B,0xD8AB,0xB3F5,0xB0F4,0xD8AD,0xD87E,0xD8B0, - 0xD8AF,INVALC,0xD8B3,INVALC,0xDCEF,INVALC,0xD8AC, - /* Range 0x5848 - 0x5865, array index: 0x0F28 */ - 0xD8A7,0xDCE7,0xB6F4,0xB6F7,0xB6F2,0xDCE6,0xDCEA,0xDCE5, - INVALC,0xB6EC,0xB6F6,0xDCE2,0xB6F0,0xDCE9,INVALC,0xB6EE, - 0xB6ED,0xDCEC,0xB6EF,0xDCEE,INVALC,0xDCEB,0xB6EB,INVALC, - INVALC,INVALC,0xB6F5,0xDCF0,0xDCE4,0xDCED, - /* Range 0x5874 - 0x5894, array index: 0x0F46 */ - 0xE15D,0xB9D0,0xE163,INVALC,INVALC,0xB9D5,0xE15F,0xE166, - 0xE157,0xB9D7,0xB9D1,0xE15C,0xBC55,0xE15B,0xE164,0xB9D2, - INVALC,0xB9D6,0xE15A,0xE160,0xE165,0xE156,0xB9D4,0xE15E, - INVALC,INVALC,0xE162,0xE168,0xE158,0xE161,INVALC,0xB9D3, - 0xE167, - /* Range 0x589C - 0x58B3, array index: 0x0F67 */ - 0xBC59,0xE54B,0xBC57,0xBC56,0xE54D,0xE552,INVALC,0xE54E, - INVALC,0xE551,0xBC5C,INVALC,0xBEA5,0xBC5B,INVALC,0xE54A, - 0xE550,INVALC,0xBC5A,0xE54F,INVALC,0xE54C,INVALC,0xBC58, - /* Range 0x58BA - 0x58C9, array index: 0x0F7F */ - 0xE94D,INVALC,0xE94F,0xE94A,0xBEC1,0xE94C,INVALC,0xBEC0, - 0xE94E,INVALC,INVALC,0xBEC3,0xE950,0xBEC2,0xE949,0xE94B, - /* Range 0x58CE - 0x58EC, array index: 0x0F8F */ - 0xC0A5,0xECCC,INVALC,0xC0A4,0xECCD,0xC0A3,0xECCB,0xC0A2, - 0xECCA,INVALC,0xC253,0xC252,0xF1F6,0xF1F8,INVALC,0xF1F7, - 0xC361,0xC362,INVALC,INVALC,0xC363,0xF442,0xC45B,INVALC, - INVALC,0xF7D3,0xF7D2,0xC5F2,INVALC,0xA468,0xA4D0, - /* Range 0x58F9 - 0x58FF, array index: 0x0FAE */ - 0xB3FC,0xB3FD,INVALC,0xDCF2,0xB9D8,0xE169,0xE553, - /* Range 0x590C - 0x590F, array index: 0x0FB5 */ - 0xCC42,0xCE60,0xD159,0xAE4C, - /* Range 0x5912 - 0x591C, array index: 0x0FB9 */ - 0xF1F9,INVALC,0xC4DC,0xA469,0xA57E,0xC970,INVALC,0xA667, - 0xA668,INVALC,0xA95D, - /* Range 0x5927 - 0x5931, array index: 0x0FC4 */ - 0xA46A,INVALC,0xA4D1,0xA4D3,0xA4D2,0xC95B,0xA4D4,0xA5A1, - 0xC971,INVALC,0xA5A2, - /* Range 0x5944 - 0x5962, array index: 0x0FCF */ - 0xA961,0xCC43,INVALC,0xA95F,0xA960,0xA95E,0xD15A,INVALC, - INVALC,INVALC,0xABB6,0xABB5,0xABB7,0xABB4,INVALC,0xCE61, - 0xA962,0xABB3,INVALC,0xAE4D,0xAE4E,INVALC,0xAE4F,INVALC, - 0xD4CD,INVALC,INVALC,INVALC,0xB3FE,0xD8B4,0xB0F8, - /* Range 0x5967 - 0x5985, array index: 0x0FEE */ - 0xB6F8,INVALC,0xB9DD,0xB9DC,0xE16A,INVALC,0xBC5D,0xBEC4, - INVALC,0xEFC0,0xF6DA,0xF7D4,0xA46B,0xA5A3,INVALC,0xA5A4, - 0xC9D1,0xA66C,0xA66F,INVALC,0xC9CF,0xC9CD,0xA66E,0xC9D0, - 0xC9D2,0xC9CC,0xA671,0xA670,0xA66D,0xA66B,0xC9CE, - /* Range 0x598D - 0x5999, array index: 0x100D */ - 0xA7B0,0xCAB6,0xCAB9,0xCAB8,INVALC,0xA7AA,0xA7B2,INVALC, - INVALC,0xA7AF,0xCAB5,0xCAB3,0xA7AE, - /* Range 0x599D - 0x59A8, array index: 0x101A */ - 0xA7A9,0xA7AC,INVALC,0xCAB4,0xCABB,0xCAB7,0xA7AD,0xA7B1, - 0xA7B4,0xCAB2,0xCABA,0xA7AB, - /* Range 0x59AE - 0x5A03, array index: 0x1026 */ - 0xA967,0xA96F,INVALC,0xCC4F,0xCC48,0xA970,0xCC53,0xCC44, - 0xCC4B,INVALC,INVALC,0xA966,0xCC45,0xA964,0xCC4C,0xCC50, - 0xA963,INVALC,0xCC51,0xCC4A,INVALC,0xCC4D,INVALC,0xA972, - 0xA969,0xCC54,0xCC52,INVALC,0xA96E,0xA96C,0xCC49,0xA96B, - 0xCC47,0xCC46,0xA96A,0xA968,0xA971,0xA96D,0xA965,INVALC, - 0xCC4E,INVALC,0xABB9,INVALC,0xABC0,0xCE6F,0xABB8,0xCE67, - 0xCE63,INVALC,0xCE73,0xCE62,INVALC,0xABBB,0xCE6C,0xABBE, - 0xABC1,INVALC,0xABBC,0xCE70,0xABBF,INVALC,0xAE56,0xCE76, - 0xCE64,INVALC,INVALC,0xCE66,0xCE6D,0xCE71,0xCE75,0xCE72, - 0xCE6B,0xCE6E,INVALC,INVALC,0xCE68,0xABC3,0xCE6A,0xCE69, - 0xCE74,0xABBA,0xCE65,0xABC2,INVALC,0xABBD, - /* Range 0x5A13 - 0x5A20, array index: 0x107C */ - 0xAE55,INVALC,0xD15F,0xD15C,0xD161,0xAE51,0xD15B,INVALC, - 0xAE54,0xAE52,INVALC,0xD163,0xAE53,0xAE57, - /* Range 0x5A33 - 0x5A39, array index: 0x108A */ - 0xD164,INVALC,0xD4D4,0xB0F9,0xD8C2,0xD4D3,0xD4E6, - /* Range 0x5A3E - 0x5A6D, array index: 0x1091 */ - 0xD4E4,INVALC,0xB0FE,0xB0FA,0xD4ED,0xD4DD,0xD4E0,INVALC, - 0xB143,0xD4EA,0xD4E2,0xB0FB,0xB144,INVALC,0xD4E7,0xD4E5, - INVALC,INVALC,0xD4D6,0xD4EB,0xD4DF,0xD4DA,INVALC,0xD4D0, - 0xD4EC,0xD4DC,0xD4CF,INVALC,0xB142,0xD4E1,0xD4EE,0xD4DE, - 0xD4D2,0xD4D7,0xD4CE,INVALC,0xB141,INVALC,0xD4DB,0xD4D8, - 0xB0FC,0xD4D1,INVALC,0xD4E9,0xB0FD,INVALC,0xD4D9,0xD4D5, - /* Range 0x5A77 - 0x5A7F, array index: 0x10C1 */ - 0xB440,0xD8BB,INVALC,0xD8B8,0xD8C9,0xD8BD,0xD8CA,INVALC, - 0xB442, - /* Range 0x5A8A - 0x5A9F, array index: 0x10CA */ - 0xD8C4,0xD8C7,0xD8CB,INVALC,0xD4E3,0xD8CD,0xDD47,INVALC, - 0xB443,0xD8CE,0xD8B6,0xD8C0,INVALC,0xD8C5,INVALC,INVALC, - 0xB441,0xB444,0xD8CC,0xD8CF,0xD8BA,0xD8B7, - /* Range 0x5AA5 - 0x5AA9, array index: 0x10E0 */ - 0xD8BE,0xD8BC,0xB445,INVALC,0xD8C8, - /* Range 0x5AAC - 0x5ACD, array index: 0x10E5 */ - 0xD8BF,INVALC,0xD8C1,0xD8B5,0xDCFA,0xDCF8,0xB742,0xB740, - 0xDD43,0xDCF9,0xDD44,0xDD40,0xDCF7,0xDD46,0xDCF6,0xDCFD, - 0xB6FE,0xB6FD,0xB6FC,0xDCFB,0xDD41,0xB6F9,0xB741,INVALC, - 0xDCF4,INVALC,0xDCFE,0xDCF3,0xDCFC,0xB6FA,0xDD42,0xDCF5, - 0xB6FB,0xDD45, - /* Range 0x5AD5 - 0x5AEE, array index: 0x1107 */ - 0xE16E,0xB9E2,0xB9E1,0xB9E3,0xE17A,0xE170,0xE176,0xE16B, - 0xE179,0xE178,0xE17C,0xE175,0xB9DE,0xE174,0xB9E4,INVALC, - 0xE16D,0xB9DF,INVALC,0xE17B,0xB9E0,0xE16F,0xE172,0xE177, - 0xE171,0xE16C, - /* Range 0x5AF3 - 0x5B34, array index: 0x1121 */ - 0xE173,0xE555,0xBC61,0xE558,0xE557,0xE55A,0xE55C,INVALC, - 0xBC5F,INVALC,0xE556,INVALC,0xE554,INVALC,0xE55D,0xE55B, - 0xE559,INVALC,0xE55F,INVALC,0xE55E,0xBC63,0xBC5E,INVALC, - 0xBC60,0xBC62,INVALC,INVALC,0xE560,0xE957,INVALC,INVALC, - 0xE956,0xE955,INVALC,0xE958,0xE951,INVALC,0xE952,0xE95A, - 0xE953,INVALC,0xBEC5,0xE95C,INVALC,0xE95B,0xE954,INVALC, - 0xECD1,0xC0A8,0xECCF,0xECD4,0xECD3,0xE959,INVALC,0xC0A7, - INVALC,0xECD2,0xECCE,0xECD6,0xECD5,0xC0A6,INVALC,0xECD0, - INVALC,0xBEC6, - /* Range 0x5B3C - 0x5B40, array index: 0x1163 */ - 0xEFC1,0xF1FA,0xF1FB,0xF1FC,0xC45C, - /* Range 0x5B47 - 0x5B65, array index: 0x1168 */ - 0xF5C8,0xF5C7,INVALC,INVALC,0xF6DB,0xF6DC,0xF7D5,0xF8A7, - INVALC,0xA46C,0xA46D,INVALC,0xA46E,0xA4D5,0xA5A5,0xC9D3, - 0xA672,0xA673,INVALC,0xA7B7,0xA7B8,0xA7B6,0xA7B5,INVALC, - 0xA973,INVALC,INVALC,0xCC55,0xA975,0xA974,0xCC56, - /* Range 0x5B6E - 0x5B9C, array index: 0x1187 */ - 0xD4F0,INVALC,0xB145,0xB447,0xD4EF,0xB446,INVALC,0xB9E5, - INVALC,0xE17D,0xBEC7,INVALC,0xC0A9,0xECD7,INVALC,0xC45E, - INVALC,0xC570,INVALC,0xC972,INVALC,0xA5A6,0xC973,0xA676, - INVALC,0xA674,0xA675,0xA677,INVALC,0xA7BA,0xA7B9,INVALC, - 0xCABC,0xA7BB,INVALC,INVALC,0xCABD,0xCC57,INVALC,0xCC58, - INVALC,0xA976,0xA978,0xA97A,0xA977,0xA97B,0xA979, - /* Range 0x5BA2 - 0x5BB9, array index: 0x11B6 */ - 0xABC8,0xABC5,0xABC7,0xABC9,0xABC6,0xD166,0xCE77,INVALC, - INVALC,INVALC,0xD168,0xD167,0xAE63,INVALC,0xAE5F,INVALC, - INVALC,0xAE60,0xAE62,0xAE64,0xAE61,INVALC,0xAE66,0xAE65, - /* Range 0x5BBF - 0x5BD9, array index: 0x11CE */ - 0xB14A,0xD4F2,0xD4F1,0xB149,INVALC,0xB148,0xB147,0xB14B, - 0xB146,INVALC,INVALC,0xD8D5,0xD8D2,0xB449,0xD8D1,0xD8D6, - INVALC,0xB44B,0xD8D4,0xB448,0xB44A,0xD8D3,INVALC,0xDD48, - INVALC,0xDD49,0xDD4A, - /* Range 0x5BDE - 0x5BFA, array index: 0x11E9 */ - 0xB9E6,0xB9EE,0xE17E,0xB9E8,0xB9EC,0xE1A1,0xB9ED,0xB9E9, - 0xB9EA,0xB9E7,0xB9EB,0xBC66,0xD8D0,0xBC67,0xBC65,INVALC, - 0xBC64,0xE95D,0xBEC8,0xECD8,0xECD9,INVALC,INVALC,0xC364, - 0xC45F,INVALC,0xA46F,INVALC,0xA678, - /* Range 0x5C03 - 0x5C16, array index: 0x1206 */ - 0xD169,0xAE67,INVALC,INVALC,0xB14E,0xB14D,0xB14C,0xB44C, - 0xB44D,0xD8D7,0xB9EF,0xBEC9,0xA470,0xC95C,0xA4D6,0xC974, - INVALC,INVALC,0xC9D4,0xA679, - /* Range 0x5C37 - 0x5C5D, array index: 0x121A */ - 0xC0AA,0xA472,0xA4A8,0xA4D8,0xC975,0xA5A7,INVALC,0xA7C0, - 0xA7BF,0xA7BD,0xA7BE,INVALC,INVALC,0xCC59,0xA97E,0xA9A1, - 0xCC5A,0xA97D,INVALC,INVALC,0xABCE,0xCE78,0xABCD,0xABCB, - 0xABCC,0xAE6A,0xAE68,INVALC,INVALC,0xD16B,0xAE69,0xD16A, - INVALC,0xAE5E,0xD4F3,INVALC,INVALC,0xB150,0xB151, - /* Range 0x5C60 - 0x5C74, array index: 0x1241 */ - 0xB14F,INVALC,0xB9F0,0xE1A2,0xBC68,0xBC69,INVALC,0xE561, - 0xC0AB,0xEFC2,0xEFC3,INVALC,0xC4DD,0xF8A8,0xC94B,0xA4D9, - INVALC,0xA473,INVALC,0xC977,0xC976, - /* Range 0x5C79 - 0x5C7E, array index: 0x1256 */ - 0xA67A,0xC9D7,0xC9D8,0xC9D6,INVALC,0xC9D9, - /* Range 0x5C86 - 0x5C95, array index: 0x125C */ - 0xCAC7,INVALC,0xCAC2,0xCAC4,0xCAC6,0xCAC3,0xA7C4,0xCAC0, - INVALC,0xCAC1,0xA7C1,0xA7C2,0xCAC5,0xCAC8,0xA7C3,0xCAC9, - /* Range 0x5C9D - 0x5CB8, array index: 0x126C */ - 0xCC68,INVALC,0xCC62,0xCC5D,0xA9A3,0xCC65,0xCC63,0xCC5C, - 0xCC69,0xCC6C,0xCC67,0xCC60,0xA9A5,0xCC66,0xA9A6,0xCC61, - 0xCC64,0xCC5B,0xCC5F,0xCC6B,0xA9A7,INVALC,0xA9A8,INVALC, - 0xCC5E,0xCC6A,0xA9A2,0xA9A4, - /* Range 0x5CC6 - 0x5CDF, array index: 0x1288 */ - 0xCEAB,0xCEA4,0xCEAA,0xCEA3,0xCEA5,0xCE7D,0xCE7B,INVALC, - 0xCEAC,0xCEA9,0xCE79,INVALC,0xABD0,0xCEA7,0xCEA8,INVALC, - 0xCEA6,0xCE7C,0xCE7A,0xABCF,0xCEA2,0xCE7E,INVALC,INVALC, - 0xCEA1,0xCEAD, - /* Range 0x5CEA - 0x5CF1, array index: 0x12A2 */ - 0xAE6E,INVALC,0xD16C,0xAE6B,0xD16E,INVALC,0xAE70,0xD16F, - /* Range 0x5CF4 - 0x5D01, array index: 0x12AA */ - 0xAE73,INVALC,0xAE71,0xD170,0xCEAE,0xD172,INVALC,0xAE6D, - INVALC,0xAE6C,INVALC,0xD16D,0xD171,0xAE72, - /* Range 0x5D0B - 0x5D29, array index: 0x12B8 */ - 0xD4F5,0xD4F9,0xD4FB,0xB154,0xD4FE,INVALC,0xB158,0xD541, - INVALC,0xB15A,INVALC,0xB156,0xB15E,INVALC,0xB15B,0xD4F7, - 0xB155,INVALC,0xD4F6,0xD4F4,0xD543,0xD4F8,INVALC,0xB157, - 0xD542,0xB15C,0xD4FD,0xD4FC,0xB15D,0xD4FA,0xB159, - /* Range 0x5D2E - 0x5D52, array index: 0x12D7 */ - 0xD544,INVALC,0xD540,0xD8E7,0xD8EE,0xD8E3,0xB451,0xD8DF, - 0xD8EF,0xD8D9,0xD8EC,0xD8EA,0xD8E4,INVALC,0xD8ED,0xD8E6, - INVALC,0xD8DE,0xD8F0,0xD8DC,0xD8E9,0xD8DA,INVALC,0xD8F1, - INVALC,0xB452,INVALC,0xD8EB,0xDD4F,0xD8DD,0xB44F,INVALC, - 0xD8E1,INVALC,0xB450,0xD8E0,0xD8E5, - /* Range 0x5D65 - 0x5D6C, array index: 0x12FC */ - 0xDD50,INVALC,0xDD55,0xDD54,0xB743,INVALC,0xD8DB,0xDD52, - /* Range 0x5D79 - 0x5D8A, array index: 0x1304 */ - 0xE1B0,0xE1A7,INVALC,0xE1AE,0xE1A5,0xE1AD,0xE1B1,0xE1A4, - 0xE1A8,0xE1A3,INVALC,0xB9F1,INVALC,0xE1A6,0xB9F2,0xE1AC, - 0xE1AB,0xE1AA, - /* Range 0x5D92 - 0x5DA2, array index: 0x1316 */ - 0xE565,0xE567,0xBC6B,0xE568,INVALC,0xE563,INVALC,0xE562, - 0xE56C,INVALC,0xE56A,0xBC6A,0xE56D,0xE564,0xE569,0xE56B, - 0xE566, - /* Range 0x5DA7 - 0x5DBD, array index: 0x1327 */ - 0xE961,0xE966,0xE960,0xE965,INVALC,0xE95E,0xE968,0xE964, - 0xE969,0xE963,0xE95F,0xE967,INVALC,0xE96A,0xE962,INVALC, - 0xECDA,0xC0AF,INVALC,0xC0AD,INVALC,0xC0AC,0xC0AE, - /* Range 0x5DD1 - 0x5DD8, array index: 0x133E */ - 0xF6DE,0xC572,INVALC,0xC571,0xF6DD,0xC5C9,INVALC,0xF7D6, - /* Range 0x5DDD - 0x5DE8, array index: 0x1346 */ - 0xA474,0xA67B,0xC9DA,0xCACA,0xA8B5,0xB15F,INVALC,INVALC, - 0xA475,0xA5AA,0xA5A9,0xA5A8, - /* Range 0x5DEE - 0x5DF4, array index: 0x1352 */ - 0xAE74,INVALC,0xDD57,0xA476,0xA477,0xA478,0xA4DA, - /* Range 0x5DFD - 0x5E06, array index: 0x1359 */ - 0xB453,0xA479,0xC95D,INVALC,INVALC,0xA5AB,0xA5AC,0xC978, - INVALC,0xA67C, - /* Range 0x5E14 - 0x5E2D, array index: 0x1363 */ - 0xCC6E,0xA9AC,0xA9AB,0xCC6D,0xA9A9,0xCC6F,0xA9AA,0xA9AD, - INVALC,0xABD2,INVALC,0xABD4,0xCEB3,0xCEB0,0xCEB1,0xCEB2, - 0xCEB4,0xABD3,INVALC,INVALC,0xD174,0xD173,INVALC,0xAE76, - INVALC,0xAE75, - /* Range 0x5E33 - 0x5E38, array index: 0x137D */ - 0xB162,0xD546,INVALC,0xB161,0xB163,0xB160, - /* Range 0x5E3D - 0x5E45, array index: 0x1383 */ - 0xB455,0xD545,INVALC,0xB456,0xD8F3,INVALC,0xB457,0xD8F2, - 0xB454, - /* Range 0x5E4A - 0x5E8F, array index: 0x138C */ - 0xDD5A,0xDD5C,0xB745,0xDD5B,0xDD59,0xDD58,INVALC,INVALC, - INVALC,0xE1B4,0xB9F7,0xB9F5,INVALC,0xB9F6,0xE1B2,0xE1B3, - INVALC,0xB9F3,0xE571,0xE56F,INVALC,0xBC6D,0xE570,0xBC6E, - 0xBC6C,0xB9F4,INVALC,INVALC,0xE96D,0xE96B,0xE96C,0xE56E, - 0xECDC,0xC0B0,0xECDB,0xEFC5,0xEFC6,0xE96E,0xF1FE,INVALC, - 0xA47A,0xA5AD,0xA67E,0xC9DB,0xA67D,INVALC,0xA9AF,0xB746, - INVALC,0xA4DB,0xA5AE,0xABD5,0xB458,INVALC,0xC979,INVALC, - 0xC97A,INVALC,0xC9DC,INVALC,INVALC,0xA7C8,0xCAD0,0xCACE, - 0xA7C9,0xCACD,0xCACF,0xCAD1,INVALC,0xA7C7, - /* Range 0x5E95 - 0x5E9C, array index: 0x13D2 */ - 0xA9B3,0xA9B4,0xA9B1,INVALC,INVALC,0xA9B0,0xCEB8,0xA9B2, - /* Range 0x5EA0 - 0x5EB9, array index: 0x13DA */ - 0xABD6,INVALC,0xCEB7,0xCEB9,0xCEB6,0xCEBA,0xABD7,0xAE79, - 0xD175,INVALC,0xD177,0xAE77,0xD178,0xAE78,0xD176,INVALC, - 0xCEB5,0xD547,0xD54A,0xD54B,0xD548,0xB167,0xB166,0xB164, - 0xB165,0xD549, - /* Range 0x5EC1 - 0x5EE9, array index: 0x13F4 */ - 0xB45A,0xB45B,INVALC,0xB45C,0xDD5D,0xDD5F,0xDD61,0xB748, - 0xB747,0xB459,0xDD60,0xDD5E,INVALC,0xE1B8,INVALC,INVALC, - 0xE1B6,0xE1BC,0xB9F8,0xE1BD,0xE1BA,0xB9F9,0xE1B7,0xE1B5, - 0xE1BB,0xBC70,0xE573,0xE1B9,0xBC72,0xE574,0xBC71,0xBC74, - 0xE575,0xBC6F,0xBC73,INVALC,0xE973,0xE971,0xE970,0xE972, - 0xE96F, - /* Range 0x5EEE - 0x5EF7, array index: 0x141D */ - 0xF446,0xF447,INVALC,0xF5CB,0xF6DF,0xC655,INVALC,INVALC, - 0xA9B5,0xA7CA, - /* Range 0x5EFE - 0x5F0B, array index: 0x1427 */ - 0xA47B,0xA4DC,INVALC,0xA5AF,0xC9DD,INVALC,0xA7CB,0xCAD2, - INVALC,0xCEBB,0xABD9,INVALC,0xB9FA,0xA47C, - /* Range 0x5F12 - 0x5F29, array index: 0x1435 */ - 0xB749,0xA47D,0xA4DD,0xA4DE,INVALC,0xA5B1,0xA5B0,INVALC, - 0xC9DE,0xA6A2,INVALC,0xCAD3,INVALC,0xA7CC,INVALC,INVALC, - 0xCC71,0xCC72,0xCC73,INVALC,0xA9B6,0xA9B7,0xCC70,0xA9B8, - /* Range 0x5F2D - 0x5F38, array index: 0x144D */ - 0xABDA,0xCEBC,INVALC,0xD17A,0xAE7A,INVALC,0xD179,INVALC, - 0xB169,0xD54C,0xB16A,0xD54D, - /* Range 0x5F46 - 0x5F4F, array index: 0x1459 */ - 0xB9FB,INVALC,0xBC75,0xE576,0xBECA,0xE974,0xC0B1,INVALC, - 0xC573,0xF7D8, - /* Range 0x5F54 - 0x5F59, array index: 0x1463 */ - 0xCC74,INVALC,0xCEBD,0xB16B,0xD8F4,0xB74A, - /* Range 0x5F67 - 0x5FA1, array index: 0x1469 */ - 0xD17B,INVALC,0xB16D,0xB343,0xB16E,0xB16C,0xB45E,INVALC, - 0xE1C0,0xB9FC,0xBC76,INVALC,0xC94C,0xC9DF,INVALC,0xCAD5, - 0xA7CF,0xCAD4,0xA7D0,INVALC,INVALC,0xA9BC,0xCC77,0xCC76, - 0xA9BB,0xA9B9,0xA9BA,0xCC75,INVALC,INVALC,0xABDD,0xCEBE, - 0xABE0,0xABDC,0xABE2,0xABDE,0xABDF,0xABE1,INVALC,INVALC, - INVALC,0xAE7D,0xAE7C,0xAE7B,INVALC,INVALC,INVALC,0xD54F, - 0xB16F,0xB172,0xB170,INVALC,0xD54E,0xB175,INVALC,0xB171, - 0xD550,0xB174,0xB173, - /* Range 0x5FA5 - 0x5FAF, array index: 0x14A4 */ - 0xD8F6,0xD8F5,INVALC,0xB461,0xB45F,0xB460,0xD8F7,0xB74B, - 0xDD64,0xB74C,0xDD63, - /* Range 0x5FB5 - 0x5FC5, array index: 0x14AF */ - 0xBC78,0xE1C1,0xBC77,INVALC,0xB9FD,INVALC,0xECDE,0xE975, - 0xC0B2,0xECDD,0xF240,0xF448,0xF449,INVALC,0xA4DF,INVALC, - 0xA5B2, - /* Range 0x5FCC - 0x5FD9, array index: 0x14C0 */ - 0xA7D2,0xA7D4,INVALC,0xC9E2,0xCAD8,0xCAD7,0xCAD6,INVALC, - 0xC9E1,0xC9E0,0xA6A4,0xA7D3,0xA7D1,0xA6A3, - /* Range 0x5FDD - 0x5FE5, array index: 0x14CE */ - 0xA9BD,0xCC78,INVALC,0xA9BE,0xCADD,INVALC,0xCADF,0xCADE, - 0xCC79, - /* Range 0x5FEA - 0x6000, array index: 0x14D7 */ - 0xA7D8,0xA7D6,INVALC,0xCAD9,0xCADB,0xCAE1,INVALC,0xA7D5, - INVALC,0xCADC,0xCAE5,0xA9C0,INVALC,0xCAE2,0xA7D7,INVALC, - 0xCAE0,0xCAE3,INVALC,0xA9BF,INVALC,0xA9C1,0xCAE4, - /* Range 0x6009 - 0x6039, array index: 0x14EE */ - 0xCCAF,0xCCA2,0xCC7E,0xCCAE,0xCCA9,0xABE7,0xA9C2,0xCCAA, - 0xCCAD,0xABE3,0xCCAC,0xA9C3,0xA9C8,0xA9C6,0xCCA3,INVALC, - 0xCC7C,0xCCA5,0xA9CD,0xCCB0,0xABE4,0xCCA6,INVALC,0xABE5, - 0xA9C9,0xCCA8,INVALC,0xCECD,0xABE6,0xCC7B,0xA9CA,0xABE8, - 0xA9CB,0xA9C7,0xA9CC,0xCCA7,0xCC7A,0xCCAB,0xA9C4,INVALC, - INVALC,0xCC7D,0xCCA4,0xCCA1,0xA9C5,INVALC,0xCEBF,INVALC, - 0xCEC0, - /* Range 0x6040 - 0x604D, array index: 0x151F */ - 0xCECA,0xD1A1,0xCECB,0xABEE,0xCECE,0xCEC4,0xABED,0xCEC6, - INVALC,0xCEC7,INVALC,INVALC,0xCEC9,0xABE9, - /* Range 0x6053 - 0x6072, array index: 0x152D */ - 0xCEC5,0xCEC1,0xAEA4,INVALC,INVALC,0xCECF,0xAE7E,0xD17D, - 0xCEC8,INVALC,0xD17C,0xCEC3,0xCECC,INVALC,INVALC,0xABEC, - 0xAEA1,0xABF2,0xAEA2,0xCED0,0xD17E,0xABEB,0xAEA6,0xABF1, - 0xABF0,0xABEF,0xAEA5,0xCED1,0xAEA7,0xABEA,INVALC,0xCEC2, - /* Range 0x607F - 0x60A3, array index: 0x154D */ - 0xB176,0xD1A4,0xD1A6,INVALC,0xD1A8,0xAEA8,0xAEAE,0xD553, - 0xD1AC,0xD1A3,0xB178,0xD551,INVALC,0xAEAD,0xAEAB,0xD1AE, - INVALC,0xD552,INVALC,0xD1A5,INVALC,0xAEAC,0xD1A9,0xAEAF, - 0xD1AB,INVALC,INVALC,0xAEAA,0xD1AA,0xD1AD,0xD1A7,INVALC, - 0xAEA9,0xB179,INVALC,0xD1A2,0xB177, - /* Range 0x60B0 - 0x60E6, array index: 0x1572 */ - 0xD555,0xD55E,0xB464,INVALC,0xB17C,0xB1A3,0xB465,0xD560, - 0xB1AA,0xD8F9,0xD556,0xB1A2,0xB1A5,0xB17E,0xD554,0xD562, - 0xD565,0xD949,INVALC,0xD563,0xD8FD,0xB1A1,0xB1A8,0xB1AC, - 0xD55D,0xD8F8,0xD561,0xB17B,0xD8FA,0xD564,0xD8FC,0xD559, - INVALC,0xB462,INVALC,0xD557,0xD558,0xB1A7,INVALC,INVALC, - 0xB1A6,0xD55B,0xB1AB,0xD55F,0xB1A4,0xD55C,INVALC,0xB1A9, - 0xB466,0xB463,0xD8FB,INVALC,0xD55A,INVALC,0xB17D, - /* Range 0x60F0 - 0x611F, array index: 0x15A9 */ - 0xB46B,0xB46F,0xD940,0xB751,0xB46D,0xD944,0xB471,0xDD65, - 0xD946,0xB753,0xB469,0xB46C,0xD947,INVALC,0xD948,0xD94E, - 0xB473,0xB754,INVALC,0xD94A,0xD94F,0xD943,0xB75E,INVALC, - 0xB755,0xB472,0xD941,0xD950,INVALC,0xB75D,0xB470,0xB74E, - 0xD94D,INVALC,0xB474,0xD945,0xD8FE,0xB46A,0xD942,INVALC, - 0xD94B,INVALC,0xB74D,0xB752,0xB467,0xD94C,INVALC,0xB750, - /* Range 0x6127 - 0x612F, array index: 0x15D9 */ - 0xB75C,0xE1C3,0xDD70,INVALC,0xDD68,0xE1C2,INVALC,0xDD6C, - 0xDD6E, - /* Range 0x613E - 0x6183, array index: 0x15E2 */ - 0xB75A,0xBA40,0xDD71,0xE1C4,INVALC,INVALC,0xB758,0xDD69, - 0xDD6D,0xB9FE,0xB74F,0xDD66,0xDD67,0xBA41,0xB757,0xB759, - 0xB756,0xDD6F,INVALC,INVALC,0xE1C8,0xE1C9,0xE1CE,0xBC7D, - 0xE1D5,INVALC,0xBA47,INVALC,0xBA46,0xE1D0,INVALC,0xBC7C, - 0xE1C5,0xBA45,INVALC,0xE1D4,0xBA43,0xBA44,INVALC,0xE1D1, - 0xE5AA,0xBC7A,0xB46E,INVALC,0xE1D3,0xBCA3,0xE1CB,INVALC, - 0xBC7B,INVALC,0xBCA2,0xE1C6,0xE1CA,0xE1C7,0xE1CD,0xBA48, - 0xBC79,0xBA42,INVALC,0xE57A,0xE1CF,INVALC,0xBCA1,INVALC, - 0xBCA4,INVALC,0xE1CC,INVALC,0xBC7E,0xE579, - /* Range 0x6189 - 0x6196, array index: 0x1628 */ - 0xE57E,0xBECE,0xE578,0xE9A3,0xE5A9,0xBCA8,INVALC,0xBCA6, - 0xBECC,0xE5A6,0xE5A2,0xBCAC,INVALC,0xE978, - /* Range 0x61A7 - 0x61CD, array index: 0x1636 */ - 0xBCA5,0xE977,0xBECD,0xE5A7,0xBCA7,0xBCA9,0xE5A4,0xBCAD, - 0xE5A3,0xE57C,0xE57B,0xBECB,0xE5AB,0xE97A,0xECE0,0xBED0, - INVALC,0xE9A2,INVALC,0xE97E,INVALC,0xECE1,INVALC,0xBED1, - 0xE9A1,INVALC,0xE97C,0xC0B4,0xECDF,INVALC,0xE979,0xE97B, - 0xC0B5,0xBED3,0xC0B3,0xBED2,0xC0B7,0xE97D,0xBECF, - /* Range 0x61DE - 0x6236, array index: 0x165D */ - 0xECE7,0xEFC8,0xECE3,INVALC,INVALC,0xC256,0xECE5,0xECE4, - 0xC0B6,0xECE2,0xECE6,0xEFD0,0xEFCC,0xEFCE,INVALC,0xEFC9, - 0xEFCA,INVALC,0xEFCD,0xEFCB,0xC367,INVALC,INVALC,0xC36A, - 0xC369,0xC368,0xC461,0xF44A,0xC462,0xF241,0xC4DF,0xF5CC, - 0xC4E0,0xC574,0xC5CA,0xF7D9,INVALC,0xF7DA,0xF7DB,INVALC, - INVALC,0xF9BA,0xA4E0,0xC97C,0xA5B3,INVALC,0xA6A6,0xA6A7, - 0xA6A5,INVALC,0xA6A8,0xA7DA,0xA7D9,INVALC,0xCCB1,0xA9CF, - 0xA9CE,INVALC,INVALC,0xD1AF,0xB1AD,0xB1AE,INVALC,INVALC, - INVALC,0xB475,0xDD72,0xB760,0xB761,0xDD74,0xDD76,0xDD75, - INVALC,0xE1D7,INVALC,0xE1D6,0xBA49,0xE1D8,INVALC,0xE5AC, - 0xBCAE,INVALC,0xBED4,INVALC,0xC0B8,0xC257,0xC0B9,INVALC, - 0xA4E1, - /* Range 0x623D - 0x6266, array index: 0x16B6 */ - 0xCCB2,0xA9D1,0xA9D0,0xA9D2,0xABF3,0xCED2,0xCED3,INVALC, - INVALC,0xD1B0,0xAEB0,0xB1AF,0xB476,0xD951,0xA4E2,INVALC, - 0xA47E,0xA4E3,INVALC,0xC97D,0xA5B7,0xA5B6,0xA5B4,0xA5B5, - INVALC,INVALC,INVALC,0xA6AB,0xC9E9,0xC9EB,0xA6AA,0xC9E3, - INVALC,0xC9E4,INVALC,0xC9EA,0xC9E6,0xC9E8,0xA6A9,0xC9E5, - 0xC9EC,0xC9E7, - /* Range 0x626D - 0x6298, array index: 0x16E0 */ - 0xA7E1,0xA7EA,0xA7E8,0xCAF0,0xCAED,0xCAF5,0xA7E6,0xCAF6, - INVALC,0xA7DF,0xCAF3,INVALC,0xA7E5,0xCAEF,0xCAEE,0xA7E3, - 0xCAF4,0xA7E4,0xA9D3,0xA7DE,0xCAF1,INVALC,0xCAE7,0xA7DB, - INVALC,0xA7EE,0xCAEC,0xCAF2,0xA7E0,0xA7E2,INVALC,0xCAE8, - INVALC,0xCAE9,0xCAEA,INVALC,0xA7ED,0xA7E7,0xA7EC,0xCAEB, - 0xA7EB,0xA7DD,0xA7DC,0xA7E9, - /* Range 0x62A8 - 0x62BF, array index: 0x170C */ - 0xA9E1,0xCCBE,0xCCB7,0xA9DC,0xA9EF,0xCCB3,0xCCBA,0xCCBC, - 0xCCBF,0xA9EA,INVALC,0xCCBB,0xCCB4,0xA9E8,0xCCB8,INVALC, - 0xCCC0,0xA9D9,INVALC,0xCCBD,0xA9E3,0xA9E2,0xCCB6,0xA9D7, - /* Range 0x62C4 - 0x62DC, array index: 0x1724 */ - 0xA9D6,INVALC,0xA9EE,0xA9E6,0xA9E0,0xA9D4,0xCCB9,0xA9DF, - 0xA9D5,0xA9E7,0xA9F0,0xCED4,0xA9E4,0xCCB5,0xA9DA,0xA9DD, - 0xA9DE,INVALC,0xA9EC,0xA9ED,0xA9EB,0xA9E5,0xA9E9,0xA9DB, - 0xABF4, - /* Range 0x62EB - 0x6316, array index: 0x173D */ - 0xCEDA,0xAC41,0xABF8,0xABFA,0xAC40,0xCEE6,0xABFD,0xD1B1, - 0xAEB1,0xAC43,0xCED7,0xCEDF,0xABFE,0xCEDE,0xCEDB,0xCEE3, - 0xCEE5,0xABF7,0xABFB,0xAC42,0xAEB3,0xCEE0,0xABF9,0xAC45, - 0xCED9,INVALC,INVALC,INVALC,0xABFC,0xAEB2,0xABF6,INVALC, - 0xCED6,0xCEDD,0xCED5,0xCED8,0xCEDC,0xD1B2,0xAC44,INVALC, - 0xCEE1,0xCEE2,0xCEE4,0xABF5, - /* Range 0x6328 - 0x635A, array index: 0x1769 */ - 0xAEC1,0xD1BE,0xAEBF,0xAEC0,0xD1B4,0xD1C4,INVALC,0xAEB6, - INVALC,INVALC,0xD566,0xD1C6,0xD1C0,INVALC,0xD1B7,INVALC, - 0xD1C9,0xD1BA,0xAEBC,0xD57D,0xD1BD,0xAEBE,0xAEB5,INVALC, - 0xD1CB,0xD1BF,0xAEB8,0xD1B8,0xD1B5,0xD1B6,0xAEB9,0xD1C5, - 0xD1CC,0xAEBB,0xD1BC,0xD1BB,0xAEC3,0xAEC2,0xAEB4,0xAEBA, - 0xAEBD,0xD1C8,INVALC,INVALC,0xD1C2,0xAEB7,0xD1B3,0xD1CA, - 0xD1C1,0xD1C3,0xD1C7, - /* Range 0x6365 - 0x63B1, array index: 0x179C */ - 0xD567,INVALC,0xB1B7,0xB1CB,0xB1CA,INVALC,0xB1BF,INVALC, - 0xD579,0xD575,0xD572,0xD5A6,0xB1BA,0xB1B2,INVALC,INVALC, - 0xD577,0xB4A8,0xB1B6,0xD5A1,INVALC,0xB1CC,0xB1C9,0xD57B, - 0xD56A,INVALC,INVALC,0xB1C8,0xD5A3,0xD569,0xB1BD,0xB1C1, - 0xD5A2,INVALC,0xD573,0xB1C2,0xB1BC,0xD568,INVALC,0xB478, - 0xD5A5,0xD571,0xB1C7,0xD574,0xD5A4,0xB1C6,INVALC,0xD952, - INVALC,0xB1B3,0xD56F,0xB1B8,0xB1C3,INVALC,0xB1BE,0xD578, - 0xD56E,0xD56C,0xD57E,0xB1B0,0xB1C4,0xB1B4,0xB477,0xD57C, - 0xB1B5,INVALC,0xB1B1,0xB1C0,0xB1BB,0xB1B9,0xD570,0xB1C5, - 0xD56D,0xD57A,0xD576,0xD954,0xD953, - /* Range 0x63C0 - 0x63F6, array index: 0x17E9 */ - 0xB47A,INVALC,0xD96A,0xD959,0xD967,0xDD77,0xB47D,0xD96B, - 0xD96E,0xB47C,0xD95C,0xD96D,0xD96C,0xB47E,0xD955,0xB479, - 0xB4A3,INVALC,0xB4A1,0xD969,INVALC,0xD95F,0xB4A5,0xD970, - 0xD968,0xD971,0xB4AD,0xB4AB,0xD966,0xD965,INVALC,0xD963, - 0xD95D,0xB4A4,INVALC,0xB4A2,0xD1B9,0xD956,INVALC,0xDDB7, - 0xD957,0xB47B,0xB4AA,0xDD79,INVALC,0xB4A6,0xB4A7,0xD958, - 0xD96F,0xDD78,0xD960,0xD95B,0xB4A9,0xD961,0xD95E, - /* Range 0x6409 - 0x6443, array index: 0x1820 */ - 0xDD7C,0xDDB1,0xDDB6,0xDDAA,0xB76C,0xDDBB,0xB769,0xDD7A, - INVALC,0xDD7B,0xB762,0xB76B,0xDDA4,0xB76E,0xB76F,0xDDA5, - INVALC,0xDDB2,0xDDB8,0xB76A,INVALC,0xB764,0xDDA3,0xDD7D, - 0xDDBA,0xDDA8,0xDDA9,0xDD7E,0xDDB4,0xDDAB,0xDDB5,0xDDAD, - INVALC,0xB765,0xE1D9,0xB768,0xB766,0xDDB9,0xDDB0,0xDDAC, - INVALC,INVALC,0xDDA1,0xBA53,0xDDAF,0xB76D,0xDDA7,INVALC, - 0xDDA6,INVALC,INVALC,INVALC,0xB767,0xB763,0xE1EE,0xDDB3, - 0xDDAE,INVALC,0xDDA2, - /* Range 0x644D - 0x6454, array index: 0x185B */ - 0xE1DA,0xE1E5,INVALC,0xE1EC,0xBA51,0xB4AC,0xE1EA,0xBA4C, - /* Range 0x6458 - 0x647F, array index: 0x1863 */ - 0xBA4B,0xE1F1,INVALC,0xE1DB,0xE1E8,0xE1DC,0xE1E7,0xBA4F, - 0xE1EB,0xD962,INVALC,INVALC,INVALC,0xE1F2,0xE1E3,0xBA52, - 0xE5BA,0xBCAF,INVALC,0xE1F0,0xE1EF,0xBA54,0xE5AD,0xBCB0, - 0xE5AE,INVALC,0xE1DF,0xE1E0,0xE1DD,0xE1E2,0xE1DE,0xE1F3, - 0xBA4E,0xBCB1,0xBA50,0xBA55,INVALC,0xE1E1,INVALC,0xE1ED, - /* Range 0x6485 - 0x64A6, array index: 0x188B */ - 0xE5B1,INVALC,0xBA4A,0xBCB4,0xE9AA,0xE5B6,0xE5B5,0xE5B7, - INVALC,INVALC,0xE5B4,0xBCB5,INVALC,0xBCBB,0xBCB8,INVALC, - 0xBCB9,0xE5AF,0xE5B2,0xE5BC,0xBCC1,0xBCBF,INVALC,0xE5B3, - 0xD95A,0xBCB2,0xE5B9,0xE5B0,INVALC,0xBCC2,0xE5B8,0xBA4D, - 0xBCB7,0xE1E4, - /* Range 0x64A9 - 0x64B3, array index: 0x18AD */ - 0xBCBA,INVALC,0xBCBE,0xBCC0,0xBCBD,0xBCBC,INVALC,0xBCB6, - 0xE5BB,0xBCB3,0xBCC3, - /* Range 0x64BB - 0x64DB, array index: 0x18B8 */ - 0xBED8,0xBED9,0xE9A9,0xBEE2,0xBEDF,INVALC,0xBED6,0xBEDD, - 0xE9AB,0xBEDB,0xBED5,INVALC,0xBEDC,INVALC,0xE9A8,0xC0BB, - 0xBED7,INVALC,0xBEDE,0xC0BA,0xE9A7,0xE9A6,INVALC,0xBEE0, - INVALC,0xBEE1,INVALC,0xE9A5,0xE9A4,0xC0BC,0xE9AE,0xBEDA, - 0xE9AC, - /* Range 0x64E0 - 0x654A, array index: 0x18D9 */ - 0xC0BD,INVALC,0xC0C2,0xECEA,0xECEC,INVALC,0xC0BF,INVALC, - 0xECED,0xECE9,INVALC,0xECEB,0xC0C0,0xC0C3,INVALC,0xECE8, - 0xC0BE,0xC0C1,0xC259,0xE9AD,0xC258,INVALC,INVALC,0xC25E, - 0xEFD4,INVALC,0xC25C,0xC25D,0xEFD7,0xEFD3,0xC25A,0xEFD1, - 0xC36B,0xEFD5,INVALC,0xEFD6,0xEFD2,INVALC,0xC25B,0xF242, - INVALC,0xF245,INVALC,INVALC,0xF246,0xF244,0xF247,0xC36C, - 0xF243,INVALC,INVALC,0xF44E,0xC464,0xF44D,0xF44C,0xF44B, - 0xC463,0xC465,INVALC,0xF5CD,0xC4E2,0xC4E1,INVALC,INVALC, - 0xF6E1,0xF6E0,0xF6E3,0xC5CB,0xC575,0xF7DD,0xF6E2,INVALC, - INVALC,0xF7DC,0xC5CD,0xC5CC,0xC5F3,0xF8A9,0xF8EF,0xA4E4, - INVALC,INVALC,0xD972,0xE9AF,INVALC,INVALC,0xA6AC,0xCAF7, - 0xA7F1,0xA7EF,INVALC,0xA7F0,INVALC,0xCCC1,0xA9F1,0xAC46, - INVALC,0xCEE7,INVALC,0xCEE8,INVALC,0xAC47,0xD1CE,INVALC, - 0xAEC4,0xAEC5,0xD1CD, - /* Range 0x6551 - 0x656C, array index: 0x1944 */ - 0xB1CF,INVALC,0xD5A7,0xB1D6,0xB1D5,0xB1CE,0xB1D1,0xB1D4, - 0xB1D0,INVALC,INVALC,0xD976,0xB1CD,0xB4AF,INVALC,INVALC, - INVALC,0xB4B1,0xB4B2,0xD975,0xD978,0xB4B0,0xD973,0xD977, - INVALC,0xD974,INVALC,0xB771, - /* Range 0x6572 - 0x6584, array index: 0x1960 */ - 0xBA56,0xE1F4,0xBEE3,0xBCC4,0xE5BD,0xBCC5,0xBCC6,0xE5BF, - 0xE5BE,0xE5C0,0xE9B1,INVALC,INVALC,0xE9B0,0xECEF,0xECEE, - 0xC0C4,0xC0C5,0xF248, - /* Range 0x6590 - 0x65C6, array index: 0x1973 */ - 0xB4B4,0xB4B3,0xDDBD,INVALC,0xEFD8,0xC4E3,0xF7DE,0xA4E6, - INVALC,0xAEC6,INVALC,0xB1D8,0xB1D7,0xD97A,0xD97B,0xB772, - 0xE1F5,0xBA57,0xE9B2,INVALC,0xA4E7,0xA5B8,INVALC,0xA9F2, - 0xCCC2,INVALC,0xCEE9,0xAC48,0xB1D9,INVALC,0xD97C,0xB4B5, - 0xB773,INVALC,0xE5C1,0xE5C2,INVALC,INVALC,0xECF0,0xC25F, - 0xF8F0,0xA4E8,INVALC,0xCCC3,0xA9F3,0xAC49,INVALC,0xCEEA, - INVALC,0xAEC7,0xD1D2,0xD1D0,0xD1D1,0xAEC8,0xD1CF, - /* Range 0x65CB - 0x65F5, array index: 0x19AA */ - 0xB1DB,0xB1DC,0xD5A8,0xB1DD,0xB1DA,0xD97D,INVALC,0xD97E, - 0xDDBE,INVALC,INVALC,0xBA59,0xBA58,INVALC,INVALC,0xECF1, - 0xEFD9,INVALC,0xF24A,0xF249,0xF44F,INVALC,0xC95E,0xAC4A, - INVALC,INVALC,0xA4E9,0xA5B9,INVALC,0xA6AE,0xA6AD,INVALC, - INVALC,0xA6AF,0xA6B0,0xC9EE,0xC9ED,0xCAF8,0xA7F2,0xCAFB, - 0xCAFA,0xCAF9,0xCAFC, - /* Range 0x65FA - 0x65FD, array index: 0x19D5 */ - 0xA9F4,0xCCC9,0xCCC5,0xCCCE, - /* Range 0x6600 - 0x6615, array index: 0x19D9 */ - 0xA9FB,INVALC,0xA9F9,0xCCCA,0xCCC6,0xCCCD,0xA9F8,0xAA40, - 0xCCC8,0xCCC4,0xA9FE,0xCCCB,0xA9F7,0xCCCC,0xA9FA,0xA9FC, - 0xCCD0,0xCCCF,0xCCC7,0xA9F6,0xA9F5,0xA9FD, - /* Range 0x661C - 0x6628, array index: 0x19EF */ - 0xCEEF,0xCEF5,INVALC,0xAC50,0xAC4D,0xCEEC,0xCEF1,INVALC, - 0xAC53,0xAC4B,0xCEF0,0xAC4E,0xAC51, - /* Range 0x662B - 0x663A, array index: 0x19FC */ - 0xCEF3,INVALC,0xAC4C,0xCEF8,0xAC4F,INVALC,0xAC52,0xCEED, - 0xCEF2,0xCEF6,0xCEEE,0xCEEB,INVALC,INVALC,0xCEF7,0xCEF4, - /* Range 0x6641 - 0x664C, array index: 0x1A0C */ - 0xAED0,0xAEC9,0xAECC,INVALC,0xAECF,INVALC,0xD1D5,INVALC, - 0xAECA,0xD1D3,INVALC,0xAECE, - /* Range 0x6659 - 0x6680, array index: 0x1A18 */ - 0xD5AC,0xB1DF,0xD5AB,0xD5AD,0xB1DE,0xB1E3,0xD1D4,INVALC, - 0xD5AA,0xD5AE,INVALC,0xB1E0,0xD5A9,0xB1E2,INVALC,0xB1E1, - INVALC,0xD9A7,INVALC,0xD9A2,INVALC,0xB4B6,0xB4BA,0xB4B7, - 0xD9A5,0xD9A8,INVALC,0xB4B8,INVALC,0xB4B9,0xB4BE,0xDDC7, - 0xD9A6,0xB4BC,0xD9A3,0xD9A1,INVALC,0xB4BD,INVALC,0xD9A4, - /* Range 0x6684 - 0x6699, array index: 0x1A40 */ - 0xB779,INVALC,0xDDBF,0xB776,0xB777,0xB775,0xDDC4,0xDDC3, - 0xDDC0,0xB77B,INVALC,INVALC,0xDDC2,0xB4BB,INVALC,INVALC, - 0xDDC6,0xDDC1,0xB778,0xB774,0xB77A,0xDDC5, - /* Range 0x669D - 0x66A2, array index: 0x1A56 */ - 0xBA5C,INVALC,0xE1F8,0xE1F7,0xE1F6,0xBA5A, - /* Range 0x66A8 - 0x66C0, array index: 0x1A5C */ - 0xBA5B,0xE5C5,0xE5C8,0xBCC8,INVALC,INVALC,0xBCC7,0xE5C9, - 0xE5C4,0xBCCA,0xE5C6,INVALC,0xBCC9,0xE5C3,INVALC,0xE5C7, - 0xBEE9,0xBEE6,0xE9BB,0xE9BA,INVALC,0xE9B9,0xE9B4,INVALC, - 0xE9B5, - /* Range 0x66C4 - 0x66CC, array index: 0x1A75 */ - 0xBEE7,INVALC,0xBEE4,0xBEE8,0xE9B3,0xBEE5,0xE9B6,0xE9B7, - 0xE9BC, - /* Range 0x66D6 - 0x66F9, array index: 0x1A7E */ - 0xC0C7,INVALC,0xEFDC,0xC0C6,0xEFDA,0xEFDB,0xC260,0xC36E, - 0xF24B,INVALC,0xC36D,INVALC,INVALC,0xF451,0xF452,INVALC, - 0xC466,INVALC,0xF450,0xC4E4,INVALC,0xF7DF,0xC5CE,0xF8AA, - 0xF8AB,INVALC,0xA4EA,INVALC,0xA6B1,0xA6B2,0xA7F3,INVALC, - 0xCCD1,0xAC54,0xAED1,0xB1E4, - /* Range 0x66FC - 0x6718, array index: 0x1AA2 */ - 0xB0D2,INVALC,0xB4BF,0xB4C0,0xB3CC,0xD9A9,INVALC,0xB77C, - 0xE1FA,0xE1F9,INVALC,INVALC,0xA4EB,0xA6B3,0xCCD2,0xAA42, - INVALC,0xAA41,INVALC,0xCEF9,0xCEFA,INVALC,0xD1D7,0xD1D8, - 0xAED2,0xAED3,INVALC,0xAED4,0xD5AF, - /* Range 0x671D - 0x672E, array index: 0x1ABF */ - 0xB4C2,INVALC,0xB4C1,0xDDC8,0xDF7A,0xE1FB,0xE9BD,INVALC, - INVALC,0xC261,0xC467,0xA4EC,INVALC,0xA5BC,0xA5BD,0xA5BB, - 0xA5BE,0xA5BA, - /* Range 0x6731 - 0x673F, array index: 0x1AD1 */ - 0xA6B6,INVALC,0xC9F6,0xA6B5,0xA6B7,INVALC,INVALC,0xC9F1, - 0xC9F0,0xC9F3,0xC9F2,0xC9F5,0xA6B4,0xC9EF,0xC9F4, - /* Range 0x6745 - 0x6760, array index: 0x1AE0 */ - 0xCAFD,0xA7FD,0xCAFE,0xCB43,0xA7FC,INVALC,0xCB47,0xCB42, - 0xCB45,0xA7F5,0xA7F6,0xA7F7,0xA7F8,INVALC,0xA840,INVALC, - 0xCB41,0xA7FA,0xA841,INVALC,0xCB40,0xCB46,INVALC,0xA7F9, - 0xCB44,0xA7FB,0xA7F4,0xA7FE, - /* Range 0x676C - 0x679F, array index: 0x1AFC */ - 0xCCD4,0xAA43,INVALC,0xAA4D,0xAA4E,0xAA46,0xAA58,0xAA48, - 0xCCDC,0xAA53,0xCCD7,0xAA49,0xCCE6,0xCCE7,0xCCDF,0xCCD8, - 0xAA56,0xCCE4,0xAA51,0xAA4F,INVALC,0xCCE5,INVALC,0xCCE3, - 0xCCDB,0xCCD3,0xCCDA,0xAA4A,INVALC,0xAA50,INVALC,0xAA44, - 0xCCDE,0xCCDD,0xCCD5,INVALC,0xAA52,0xCCE1,0xCCD6,0xAA55, - 0xCCE8,0xAA45,INVALC,0xAA4C,0xCCD9,0xCCE2,0xAA54,INVALC, - 0xAA47,0xAA4B,INVALC,0xCCE0, - /* Range 0x67AE - 0x67BB, array index: 0x1B30 */ - 0xCF5B,0xAC5C,0xAC69,INVALC,0xCF56,0xCF4C,0xAC62,0xCF4A, - 0xAC5B,0xCF45,0xAC65,0xCF52,0xCEFE,0xCF41, - /* Range 0x67C0 - 0x67FC, array index: 0x1B3E */ - 0xCF44,0xCEFB,0xCF51,0xCF61,0xAC60,0xCF46,0xCF58,INVALC, - 0xCEFD,0xCF5F,0xCF60,0xCF63,0xCF5A,0xCF4B,0xCF53,0xAC66, - 0xAC59,0xAC61,0xAC6D,0xAC56,0xAC58,INVALC,INVALC,INVALC, - 0xCF43,0xAC6A,0xAC63,0xCF5D,0xCF40,0xAC6C,0xAC67,0xCF49, - INVALC,INVALC,0xAC6B,0xCF50,0xCF48,0xAC64,0xCF5C,0xCF54, - INVALC,0xAC5E,0xCF62,0xCF47,0xAC5A,0xCF59,0xCF4F,0xAC5F, - 0xCF55,0xAC57,0xCEFC,0xAC68,0xAEE3,0xAC5D,0xCF4E,0xCF4D, - 0xCF42,INVALC,0xCF5E,INVALC,0xCF57, - /* Range 0x6812 - 0x6821, array index: 0x1B7B */ - 0xD1EC,0xAEEA,0xD1ED,INVALC,0xD1E1,0xAEDF,0xAEEB,INVALC, - 0xD1DA,INVALC,0xD1E3,0xD1EB,INVALC,0xD1D9,0xD1F4,0xAED5, - /* Range 0x6825 - 0x6854, array index: 0x1B8B */ - 0xD1F3,0xD1EE,INVALC,0xD1EF,0xAEDD,0xAEE8,0xD1E5,INVALC, - 0xD1E6,0xD1F0,0xD1E7,INVALC,0xD1E2,0xD1DC,0xD1DD,0xD1EA, - 0xD1E4,INVALC,INVALC,0xAED6,0xAEDA,0xD1F2,0xD1DE,0xAEE6, - 0xAEE2,INVALC,INVALC,0xAEE5,0xAEEC,0xAEDB,0xAEE7,0xD1E9, - 0xAEE9,0xAED8,INVALC,0xAED7,0xD1DB,INVALC,0xD1DF,0xAEE0, - 0xD1F1,0xD1E8,0xD1E0,0xAEE4,0xAEE1,INVALC,0xAED9,0xAEDC, - /* Range 0x686B - 0x68B5, array index: 0x1BBB */ - 0xD5C4,INVALC,0xD5B4,0xD5B5,0xD5B9,INVALC,0xD5C8,0xD5C5, - INVALC,0xD5BE,0xD5BD,0xB1ED,0xD5C1,0xD5D0,0xD5B0,INVALC, - 0xD5D1,0xD5C3,0xD5D5,0xD5C9,0xB1EC,0xD5C7,0xB1E7,0xB1FC, - 0xB1F2,INVALC,0xB1F6,0xB1F5,0xD5B1,INVALC,0xD5CE,0xD5D4, - 0xD5CC,0xD5D3,INVALC,INVALC,0xD5C0,0xD5B2,0xD5D2,0xD5C2, - 0xB1EA,0xB1F7,INVALC,0xD5CB,0xB1F0,INVALC,INVALC,INVALC, - 0xD5CA,0xD5B3,0xB1F8,INVALC,0xB1FA,0xD5CD,0xB1FB,0xB1E9, - 0xD5BA,0xD5CF,INVALC,INVALC,0xB1EF,0xB1F9,0xD5BC,0xD5C6, - 0xD5B7,0xD5BB,0xB1F4,0xD5B6,0xB1E8,0xB1F1,0xB1EE,0xD5BF, - 0xAEDE,0xD9C0,0xB1EB, - /* Range 0x68C4 - 0x68FD, array index: 0x1C06 */ - 0xB1F3,INVALC,0xD9C3,0xD9D9,0xD9CE,0xB4D6,INVALC,0xB4D1, - 0xD9BD,0xB4D2,0xD9CD,INVALC,0xD9C6,0xD9D3,0xB4CE,0xD9AB, - 0xD9D5,0xB4C4,0xD9B3,0xB4C7,0xB4C6,INVALC,0xB4D7,INVALC, - 0xD9AD,0xD9CF,0xD9D0,0xB4C9,0xB4C5,0xD9BB,INVALC,0xB4D0, - 0xD9B6,INVALC,0xD9D1,0xB4CC,0xD9C9,0xD9D6,0xD9B0,0xD9B5, - 0xD9AF,INVALC,0xB4CB,0xD9C2,0xDDDE,0xD9B1,0xB4CF,0xD9BA, - 0xD9D2,0xB4CA,0xD9B7,0xD9B4,0xD9C5,0xB4CD,0xB4C3,0xB4D9, - 0xD9C8,0xD9C7, - /* Range 0x6904 - 0x6917, array index: 0x1C40 */ - 0xD9AC,0xB4C8,0xD9D4,0xD9BC,0xD9BE,INVALC,0xD9CB,0xD9CA, - 0xD9AA,0xB4D3,0xB4D5,0xD9B2,0xD9B9,0xD9C1,0xB4D4,0xD9B8, - 0xD9C4,0xD9D7,INVALC,0xD9CC, - /* Range 0x692F - 0x697B, array index: 0x1C54 */ - 0xDDF2,0xB7A6,INVALC,0xDDF0,0xDDDB,0xDDE0,0xDDD9,INVALC, - 0xDDEC,0xDDCB,0xDDD2,INVALC,0xDDEA,0xDDF4,0xDDDC,INVALC, - 0xDDCF,0xDDE2,0xDDE7,0xDDD3,INVALC,0xDDE4,0xDDD0,INVALC, - INVALC,0xDDD7,0xDDD8,0xB7A8,0xDDEB,0xDDE9,INVALC,0xDDCC, - 0xDDEE,INVALC,0xDDEF,0xDDF1,0xB7AC,0xB7A4,INVALC,0xD5B8, - 0xDDD4,0xDDE6,0xDDD5,0xB7A1,0xB7B1,0xDDED,0xB7AF,0xB7AB, - 0xDDCA,0xB7A3,INVALC,0xDDCD,0xB7B0,INVALC,0xDDDD,0xDDC9, - INVALC,0xB7A9,0xDDE1,0xDDD1,0xB7AA,0xDDDA,0xB77E,0xB4D8, - 0xDDE3,0xD9BF,0xDDCE,INVALC,INVALC,0xDDE8,0xB7A5,0xDDE5, - 0xB7A2,0xDDDF,0xB7AD,0xDDD6,0xDDF3, - /* Range 0x698D - 0x69D4, array index: 0x1CA1 */ - 0xE24A,0xE248,INVALC,0xE25E,0xE246,INVALC,0xE258,0xB77D, - 0xBA5F,0xE242,0xE25D,INVALC,0xE247,0xE255,0xBA64,0xBA5D, - INVALC,0xE25B,INVALC,0xE240,0xE25A,INVALC,0xBA6F,0xE251, - 0xE261,0xBA6D,0xE249,0xBA5E,0xE24B,0xE259,0xBA67,0xE244, - 0xBA6B,0xBA61,0xE24D,0xE243,0xE1FC,INVALC,0xE257,0xBA68, - 0xE260,0xE1FD,0xBA65,INVALC,0xE253,INVALC,0xBA66,0xE245, - 0xE250,0xE24C,0xE24E,INVALC,0xBA60,0xE25F,0xBA6E,0xE24F, - INVALC,0xE262,INVALC,INVALC,0xE1FE,0xE254,0xBA63,0xBA6C, - 0xBA6A,0xE241,0xE256,0xBA69,INVALC,INVALC,0xBA62,0xE252, - /* Range 0x69E2 - 0x6A0A, array index: 0x1CE9 */ - 0xE5D5,INVALC,0xE5D1,0xE5CD,0xE5E1,0xE5DE,0xBCCD,INVALC, - INVALC,0xE5E5,0xE5D4,0xBCD8,0xE5DB,INVALC,INVALC,0xE5D0, - 0xE5DA,0xBCD5,0xE5EE,INVALC,0xE5EB,0xE5DD,0xE5CE,INVALC, - INVALC,0xE5E2,0xE5E4,0xBCD1,0xE5D8,0xE5D3,0xE5CA,0xBCCE, - 0xBCD6,INVALC,0xE5E7,0xBCD7,0xE5CB,0xE5ED,0xE5E0,0xE5E6, - 0xBCD4, - /* Range 0x6A11 - 0x6A28, array index: 0x1D12 */ - 0xBCD9,INVALC,0xBCD3,0xE5DC,0xE5CF,0xE5EF,0xE5CC,0xE5E8, - 0xBCD0,INVALC,0xE5D6,INVALC,0xE5D7,0xBCCF,0xBCCC,0xE5D2, - 0xBCD2,INVALC,0xBCCB,INVALC,0xE5E9,0xE5EC,0xE5D9,0xE9CA, - /* Range 0x6A34 - 0x6A41, array index: 0x1D2A */ - 0xE9BE,0xBEF6,INVALC,INVALC,0xBEEB,0xBEF0,0xBEEC,0xE9CC, - 0xE9D7,0xBEEA,0xE9C4,0xE9CD,0xE5DF,0xE9CE, - /* Range 0x6A44 - 0x6A6F, array index: 0x1D38 */ - 0xBEF1,INVALC,0xE9DD,0xBEF5,0xBEF8,0xE9C0,INVALC,0xBEF4, - INVALC,0xE9DB,0xE9DC,0xE9D2,0xE9D1,0xE9C9,INVALC,INVALC, - 0xE9D3,0xE9DA,0xE9D9,INVALC,0xBEEF,0xBEED,0xE9CB,0xE9C8, - INVALC,0xE9C5,0xE9D8,0xBEF7,0xE9D6,0xBEF3,0xBEF2,INVALC, - 0xE9D0,INVALC,0xE9BF,0xE9C1,0xE9C3,0xE9D5,0xE9CF,0xBEEE, - INVALC,0xE9C6,INVALC,0xE9D4, - /* Range 0x6A7E - 0x6AAF, array index: 0x1D64 */ - 0xC0CF,0xED45,0xC0C8,0xECF5,INVALC,0xED41,0xC0CA,0xED48, - INVALC,0xECFC,INVALC,0xECF7,INVALC,INVALC,0xED49,0xECF3, - 0xECFE,INVALC,0xC0D1,0xED44,0xED4A,0xECFD,0xC0C9,0xED40, - 0xECF4,0xC0D0,INVALC,INVALC,0xED47,0xECF9,0xC0CC,INVALC, - 0xECFB,0xECF8,0xC0D2,0xECFA,0xC0CB,0xC0CE,0xED43,0xECF6, - 0xED46,INVALC,0xED42,INVALC,INVALC,INVALC,0xC263,0xEFE7, - 0xC268,0xC269, - /* Range 0x6AB3 - 0x6ABD, array index: 0x1D96 */ - 0xC262,0xEFE6,INVALC,0xEFE3,0xEFE4,0xC266,0xEFDE,0xEFE2, - 0xC265,INVALC,0xEFDF, - /* Range 0x6AC2 - 0x6AD3, array index: 0x1DA1 */ - 0xC267,0xC264,INVALC,0xEFDD,0xEFE1,0xEFE5,INVALC,INVALC, - INVALC,0xF251,0xF24E,0xF257,INVALC,0xF256,0xF254,0xF24F, - INVALC,0xC372, - /* Range 0x6AD9 - 0x6AE1, array index: 0x1DB3 */ - 0xF250,0xC371,0xC0CD,0xF253,0xC370,0xF258,0xF252,0xF24D, - 0xEFE0, - /* Range 0x6AE7 - 0x6AF3, array index: 0x1DBC */ - 0xF24C,0xF456,INVALC,0xF455,0xF255,0xC468,INVALC,0xF459, - 0xF45A,0xF454,0xF458,INVALC,0xF453, - /* Range 0x6AF8 - 0x6AFC, array index: 0x1DC9 */ - 0xF5D1,0xF457,0xC4E7,0xC4E5,0xF5CF, - /* Range 0x6B00 - 0x6B1A, array index: 0x1DCE */ - 0xF5D2,INVALC,0xF5CE,0xF5D0,0xC4E6,INVALC,INVALC,INVALC, - 0xF6E5,0xF6E6,0xC576,0xF6E4,INVALC,INVALC,INVALC,0xF7E2, - 0xC5CF,0xF7E0,0xF7E1,0xF8AC,INVALC,INVALC,0xC656,0xF8F3, - 0xF8F1,0xF8F2,0xF8F4, - /* Range 0x6B2F - 0x6B56, array index: 0x1DE9 */ - 0xD1F6,INVALC,0xD1F8,0xB1FD,0xD5D7,0xD1F9,INVALC,0xD5D6, - 0xD5D8,0xD5D9,0xD9DA,0xB4DB,0xD9DB,0xD9DD,0xB4DC,0xB4DA, - 0xD9DC,INVALC,0xDDFA,0xDDF8,0xDDF7,INVALC,0xDDF6,0xDDF5, - 0xB7B2,0xDDF9,0xBA70,0xE263,0xE265,0xBA71,0xE264,0xBCDB, - INVALC,0xBCDA,0xE5F0,INVALC,INVALC,0xE9DF,0xE9DE,0xE9E0, - /* Range 0x6B5B - 0x6B67, array index: 0x1E11 */ - 0xED4B,0xC0D3,INVALC,0xEFE8,0xC26A,0xF259,0xC577,0xA4EE, - 0xA5BF,0xA6B9,0xA842,0xAA5A,0xAA5B, - /* Range 0x6B76 - 0x6BB7, array index: 0x1E1E */ - 0xE6D1,0xBEFA,0xC26B,0xA4EF,INVALC,0xA6BA,INVALC,INVALC, - 0xCCEB,0xAA5C,0xCCEA,INVALC,0xCF65,0xAC6F,0xCF66,INVALC, - 0xAC70,INVALC,0xD1FC,0xAEEE,0xAEED,INVALC,0xD5DE,0xD5DC, - 0xD5DD,0xD5DB,INVALC,0xD5DA,INVALC,INVALC,0xD9DE,0xD9E1, - 0xB4DE,0xD9DF,0xB4DD,0xD9E0,INVALC,0xDDFB,INVALC,INVALC, - 0xE266,0xE267,0xE268,INVALC,0xE5F3,0xE5F2,0xBCDC,0xE5F1, - 0xE5F4,0xE9E1,INVALC,INVALC,0xE9E2,0xE9E3,INVALC,0xED4C, - 0xC0D4,0xC26C,0xF25A,INVALC,0xC4E8,0xC95F,INVALC,0xAC71, - 0xCF67,0xAEEF, - /* Range 0x6BBC - 0x6BDB, array index: 0x1E60 */ - 0xB4DF,0xD9E2,INVALC,0xB7B5,0xB7B4,INVALC,INVALC,0xE269, - 0xE26A,0xBCDD,0xBCDE,0xE9E5,0xE9E4,0xEFE9,0xF7E3,0xA4F0, - 0xC960,0xA5C0,INVALC,0xA843,0xCB48,INVALC,0xAC72,0xB7B6, - 0xA4F1,INVALC,0xCF68,0xAC73,0xCF69,INVALC,0xC0D5,0xA4F2, - /* Range 0x6BE0 - 0x6C38, array index: 0x1E80 */ - 0xCF6A,INVALC,0xD242,0xD241,0xD1FE,INVALC,0xD1FD,0xD243, - 0xD240,INVALC,INVALC,0xB240,0xB241,INVALC,INVALC,0xB4E0, - 0xD9E3,INVALC,0xD9E4,0xD9E5,INVALC,INVALC,INVALC,0xDE41, - 0xDE42,0xDE40,INVALC,0xDDFD,0xDDFE,0xB7B7,0xE26B,0xE5F7, - 0xE5F6,0xE5F5,0xE5F8,0xE9E7,0xE9E6,0xBEFB,0xE9E8,INVALC, - 0xC0D6,0xED4D,INVALC,0xEFEA,0xF25B,0xF6E7,INVALC,0xA4F3, - 0xA5C2,0xA5C1,INVALC,0xAA5D,0xC961,0xC97E,0xA6BB,INVALC, - 0xC9F7,0xCB49,0xCB4A,0xAA5E,INVALC,0xCCED,INVALC,0xAC74, - 0xCF6B,0xCF6C,INVALC,0xAEF0,0xAEF4,0xD244,0xAEF3,0xAEF1, - 0xAEF2,INVALC,0xD5DF,0xB242,0xB4E3,INVALC,0xB4E1,0xB4E2, - 0xD9E6,INVALC,INVALC,0xBA72,0xA4F4,INVALC,0xC9A1,INVALC, - 0xA5C3, - /* Range 0x6C3E - 0x6C43, array index: 0x1ED9 */ - 0xA5C6,0xC9A3,0xA5C5,0xA5C4,0xA844,0xC9A2, - /* Range 0x6C4A - 0x6C9D, array index: 0x1EDF */ - 0xC9FC,0xC9FE,0xCA40,0xA6C5,0xA6C6,0xC9FB,0xA6C1,INVALC, - 0xC9F9,INVALC,0xC9FD,0xA6C2,INVALC,0xA6BD,INVALC,0xA6BE, - INVALC,0xA6C4,0xC9FA,0xA6BC,0xA845,0xA6BF,0xA6C0,0xA6C3, - INVALC,INVALC,INVALC,0xCB5B,0xCB59,0xCB4C,0xA851,0xCB53, - 0xA84C,0xCB4D,INVALC,0xCB55,INVALC,0xCB52,0xA84F,0xCB51, - 0xA856,0xCB5A,0xA858,INVALC,0xA85A,INVALC,0xCB4B,INVALC, - 0xA84D,0xCB5C,INVALC,0xA854,0xA857,INVALC,0xCD45,0xA847, - 0xA85E,0xA855,0xCB4E,0xA84A,0xA859,0xCB56,0xA848,0xA849, - 0xCD43,0xCB4F,0xA850,0xA85B,0xCB5D,0xCB50,0xA84E,INVALC, - 0xA853,0xCCEE,0xA85C,0xCB57,0xA852,INVALC,0xA85D,0xA846, - 0xCB54,0xA84B,0xCB58,0xCD44, - /* Range 0x6CAB - 0x6CF5, array index: 0x1F33 */ - 0xAA6A,0xAA7A,0xCCF5,0xAA71,INVALC,0xCD4B,0xAA62,INVALC, - 0xAA65,0xCD42,INVALC,0xCCF3,0xCCF7,0xAA6D,0xAA6F,0xCCFA, - 0xAA76,0xAA68,0xAA66,0xAA67,0xAA75,0xCD47,0xAA70,0xCCF9, - 0xCCFB,0xAA6E,0xAA73,0xCCFC,0xCD4A,INVALC,0xAC75,0xAA79, - INVALC,0xAA63,0xCD49,INVALC,0xCD4D,0xCCF8,0xCD4F,0xCD40, - 0xAA6C,0xCCF4,0xAA6B,0xAA7D,0xAA72,INVALC,0xCCF2,0xCF75, - 0xAA78,0xAA7C,0xCD41,0xCD46,INVALC,0xAA7E,0xAA77,0xAA69, - 0xAA5F,INVALC,0xAA64,INVALC,0xCCF6,0xAA60,0xCD4E,INVALC, - 0xCCF0,0xCCEF,0xCCFD,0xCCF1,0xAA7B,0xAEF5,0xAA74,0xCCFE, - 0xAA61,INVALC,0xACA6, - /* Range 0x6D00 - 0x6D22, array index: 0x1F7E */ - 0xCF7C,0xCFA1,INVALC,0xCFA4,0xCF77,INVALC,INVALC,0xCFA7, - 0xCFAA,0xCFAC,0xCF74,0xAC76,0xAC7B,0xD249,0xACAD,0xCFA5, - 0xCFAD,0xCF7B,0xCF73,INVALC,INVALC,INVALC,0xD264,0xAC7E, - 0xCFA2,0xCF78,0xCF7A,0xACA5,INVALC,0xCF7D,0xAC7D,0xCF70, - 0xCFA8,INVALC,0xCFAB, - /* Range 0x6D25 - 0x6D42, array index: 0x1FA1 */ - 0xAC7A,INVALC,0xACA8,0xCF6D,0xACAA,0xAC78,0xACAE,0xCFA9, - 0xCF6F,0xACAB,0xD25E,0xCD48,0xAC7C,0xAC77,0xCF76,0xCF6E, - 0xACAC,0xACA4,0xCFA3,0xACA9,0xACA7,0xCF79,0xACA1,0xCF71, - 0xACA2,0xACA3,0xCF72,0xCFA6,0xAC79,0xCF7E, - /* Range 0x6D58 - 0x6D98, array index: 0x1FBF */ - 0xD24C,0xAEFD,0xAF43,INVALC,INVALC,INVALC,0xD255,0xD25B, - 0xD257,0xD24A,0xD24D,0xD246,0xD247,0xAF4A,0xAEFA,0xD256, - 0xD25F,0xAF45,0xAEF6,INVALC,0xAF40,0xD24E,0xAF42,0xD24F, - 0xD259,INVALC,INVALC,INVALC,0xAF44,0xD268,0xD248,0xAEFC, - 0xAEFB,0xAF48,0xD245,0xD266,0xD25A,0xD267,0xD261,0xD253, - 0xD262,INVALC,0xD25C,0xD265,0xD263,0xAF49,0xD254,0xAEF9, - 0xAEF8,0xAF41,0xAF47,0xD260,0xAF46,0xD251,0xB243,INVALC, - 0xD269,0xD250,0xD24B,0xAEFE,0xAF4B,0xAEF7,INVALC,0xD258, - 0xD25D, - /* Range 0x6DAA - 0x6DFD, array index: 0x2000 */ - 0xB265,0xD5E1,0xD5E5,INVALC,0xB252,0xB250,INVALC,INVALC, - 0xB247,0xD5E3,0xD5E2,0xB25B,INVALC,0xD5E8,0xB255,INVALC, - 0xD5FA,0xD647,0xB244,0xD5F7,0xD5F0,0xB267,0xD5E0,INVALC, - 0xD5FC,INVALC,0xB264,0xB258,0xB263,0xB24E,0xD5EC,0xD5FE, - 0xD5F6,0xB24F,0xB249,0xD645,INVALC,0xD5FD,0xD640,0xB251, - 0xB259,0xD642,0xD5EA,0xD5FB,0xD5EF,0xD644,0xB25E,0xB246, - 0xB25C,0xD5F4,0xD5F2,0xD5F3,0xB253,0xD5EE,0xD5ED,0xB248, - 0xD5E7,0xD646,0xB24A,0xD5F1,0xB268,INVALC,0xB262,0xD5E6, - 0xB25F,0xB25D,0xB266,0xD5F8,0xB261,0xD252,0xD5F9,0xB260, - 0xD641,0xB245,0xD5F5,0xB257,0xD5E9,0xB256,INVALC,0xB254, - 0xB24C,0xB24B,0xD9E7,0xD643, - /* Range 0x6E19 - 0x6E79, array index: 0x2054 */ - 0xB541,0xB25A,0xB4EE,0xD9F6,0xB4FC,INVALC,0xD9EA,0xB4EB, - 0xB4E7,0xDA49,0xB4ED,0xB4F1,0xB4EC,0xB4F5,0xDA4D,0xDA44, - INVALC,INVALC,0xD9F1,0xB4FA,0xB4F4,0xD9FD,0xB4E4,0xDA4A, - 0xDA43,0xB4E8,0xD9F7,0xB4F7,0xDA55,0xDA56,INVALC,0xB4E5, - 0xDA48,0xB4F9,0xD9FB,0xD9ED,0xD9EE,0xB4FD,0xD9F2,0xD9F9, - 0xD9F3,INVALC,0xB4FB,0xB544,0xD9EF,0xD9E8,0xD9E9,INVALC, - 0xD9EB,0xB4EA,0xD9F8,INVALC,0xB4F8,0xB542,INVALC,INVALC, - 0xD9FA,0xDA53,0xDA4B,0xB4E6,0xDA51,0xB4F2,INVALC,0xB4F0, - INVALC,0xDA57,0xB4EF,0xDA41,0xD9F4,0xD9FE,0xB547,0xDA45, - 0xDA42,0xD9F0,0xB543,0xDA4F,0xDA4C,0xDA54,0xB4E9,0xDA40, - 0xB546,INVALC,0xDA47,INVALC,INVALC,0xB4F3,0xB4F6,INVALC, - 0xDA46,0xB545,0xD9F5,0xD5E4,INVALC,INVALC,0xDA50,0xDA4E, - 0xDA52, - /* Range 0x6E8D - 0x6ED8, array index: 0x20B5 */ - 0xDE61,0xDE60,0xDE46,0xB7BD,INVALC,0xDE5F,0xDE49,0xDE4A, - INVALC,0xB7C7,0xDE68,0xB7C2,0xDE5E,INVALC,0xDE43,0xB7C8, - 0xB7BE,0xDE52,0xDE48,0xDE4B,0xDE63,0xB7B8,0xDE6A,0xDE62, - 0xB7C1,0xDE57,0xB7CC,INVALC,INVALC,0xB7CB,0xB7C5,INVALC, - INVALC,0xDE69,0xB7B9,0xDE55,0xDE4C,0xDE59,0xDE65,0xB7CD, - INVALC,0xB7BB,0xDE54,INVALC,0xDE4D,0xB7C4,INVALC,0xB7C3, - 0xDE50,0xDE5A,0xDE64,0xDE47,0xDE51,0xB7BC,0xDE5B,0xB7C9, - 0xB7C0,0xDE4E,0xB7BF,0xDE45,0xDE53,0xDE67,0xB4FE,0xBAB0, - 0xDE56,0xE26C,0xDE58,0xDE66,0xB7C6,0xDE4F,0xB7BA,0xB7CA, - 0xBCF0,0xDE44,INVALC,0xDE5D, - /* Range 0x6EEB - 0x6F43, array index: 0x2101 */ - 0xE2AA,0xBAAD,0xE27D,0xE2A4,0xBAA2,INVALC,0xE26E,0xBAAF, - INVALC,0xBA77,0xE26D,0xE2B0,0xBAB1,0xE271,0xE2A3,INVALC, - 0xE273,0xE2B3,0xE2AF,0xBA75,0xBAA1,0xE653,0xBAAE,0xBA7D, - 0xE26F,INVALC,0xE2AE,0xBAA3,0xE2AB,0xE2B8,0xE275,0xE27E, - INVALC,INVALC,0xE2B6,0xE2AC,0xBA7C,INVALC,INVALC,0xE27C, - 0xBA76,0xBA74,0xBAA8,INVALC,INVALC,0xE27A,0xE277,0xE278, - INVALC,0xE2B2,INVALC,0xE2B7,0xE2B5,0xBA7A,0xE2B9,0xBA7E, - 0xBAA7,INVALC,0xE270,0xE5FA,0xE279,INVALC,0xBA78,0xBAAC, - 0xBAA9,0xBA7B,0xE2A5,0xE274,0xBAAA,0xE2A7,0xBAA4,0xBAA6, - 0xBA73,INVALC,0xE2A9,0xE2A1,0xE272,0xBAA5,0xE2B1,0xE2B4, - 0xE27B,0xE2A8,INVALC,0xBA79,0xBCDF,0xE2A6,0xE5F9,INVALC, - 0xE2AD, - /* Range 0x6F4E - 0x6F97, array index: 0x215A */ - 0xE276,0xE644,0xE64E,0xBCE2,0xE64D,0xE659,0xBCE4,0xE64B, - INVALC,0xE64F,0xBCEF,INVALC,0xE646,0xBCE7,INVALC,0xE652, - 0xE9F0,0xBCF3,0xBCF2,0xE654,0xE643,0xE65E,0xBCED,INVALC, - 0xBCE3,0xE657,INVALC,0xE65B,0xE660,0xE655,0xE649,0xBCE6, - 0xBCE9,0xBCF1,0xBCEC,INVALC,0xE64C,0xE2A2,INVALC,INVALC, - 0xE648,0xE65F,0xBCE8,INVALC,0xBCEB,0xE661,0xBCE0,0xE656, - 0xE5FB,0xE65C,0xC0DF,INVALC,0xE64A,INVALC,0xBCE1,0xE645, - 0xBCE5,0xE5FC,0xBAAB,0xE641,INVALC,0xE65A,0xE642,0xE640, - 0xBCEA,INVALC,0xE658,INVALC,0xE5FE,0xE651,0xE650,0xE65D, - 0xE647,0xBCEE, - /* Range 0x6F9E - 0x6FCF, array index: 0x21A4 */ - 0xE9F3,INVALC,0xBF49,0xBEFE,0xEA40,0xE9EB,0xBF41,0xE9F7, - 0xBF48,0xBF43,0xE9F5,0xED4F,0xE9FB,0xEA42,0xE9FA,0xE9E9, - 0xE9F8,0xEA44,0xEA46,0xBEFD,0xEA45,0xBF44,0xBF4A,INVALC, - 0xBF47,INVALC,0xE9FE,0xBF46,0xE9F9,INVALC,0xE9ED,0xE9F2, - INVALC,0xE9FD,0xBF45,0xBF42,0xBEFC,0xBF40,0xE9F1,INVALC, - 0xE5FD,0xE9EC,0xE9EF,0xEA41,0xE9F4,0xE9EA,0xED4E,0xEA43, - 0xE9EE,0xE9FC, - /* Range 0x6FDB - 0x6FF4, array index: 0x21D6 */ - 0xC0DB,0xED53,0xED59,0xED57,0xC0D9,0xC0DA,0xC0E1,0xED5A, - 0xED52,0xC0DC,INVALC,0xED56,0xED55,0xED5B,0xC0E2,INVALC, - 0xC0DD,0xC0E0,0xED54,0xC0E4,0xC0DE,0xC0E5,0xC0D8,0xED58, - INVALC,0xED50, - /* Range 0x6FFA - 0x704C, array index: 0x21F0 */ - 0xC271,0xEFF4,0xEFF6,INVALC,0xC26F,0xEFF2,0xEFF3,0xEFEE, - INVALC,INVALC,0xE9F6,0xEFEF,0xC270,0xEFEB,INVALC,0xC26D, - 0xEFF8,0xC26E,0xEFEC,0xEFED,0xEFF1,0xC273,INVALC,0xC272, - INVALC,INVALC,0xEFF0,0xC378,0xF25F,0xF265,0xC379,0xF25C, - 0xC376,0xC373,0xF267,0xC377,INVALC,0xC374,0xF25E,0xF261, - 0xF262,0xF263,0xF266,INVALC,0xEFF5,0xF25D,0xC375,0xF264, - 0xF268,0xF260,INVALC,INVALC,INVALC,0xF45D,0xC46A,0xF460, - 0xC46B,0xF468,0xF45F,0xF45C,INVALC,0xF45E,0xF462,0xF465, - 0xF464,0xF467,0xF45B,INVALC,0xC469,0xF463,0xF466,0xF469, - 0xF461,0xF5D3,0xF5D4,0xF5D8,0xF5D9,INVALC,0xF5D6,0xF5D7, - 0xF5D5,INVALC,0xC4E9, - /* Range 0x7051 - 0x706B, array index: 0x2243 */ - 0xC578,0xF6EB,INVALC,INVALC,0xF6E8,0xF6E9,0xF6EA,0xC579, - INVALC,0xF7E5,0xF7E4,INVALC,0xF8AF,0xC5F4,0xF8AD,0xF8B0, - 0xF8AE,0xF8F5,0xC657,0xC665,0xF9A3,0xF96C,INVALC,0xF9A2, - 0xF9D0,0xF9D1,0xA4F5, - /* Range 0x7082 - 0x7086, array index: 0x225E */ - 0xCD58,0xCD5A,0xCD55,0xCD52,0xCD54, - /* Range 0x7091 - 0x709A, array index: 0x2263 */ - 0xCD56,0xAAA3,0xCD53,0xCD50,0xAAA1,0xCD57,INVALC,0xCD51, - 0xAAA5,0xCD59, - /* Range 0x70A9 - 0x70BA, array index: 0x226D */ - 0xCFB6,INVALC,0xACAF,0xACB2,0xACB4,0xACB6,0xACB3,0xCFB2, - 0xCFB1,INVALC,0xACB1,0xCFB4,0xCFB5,INVALC,0xCFAE,0xACB5, - INVALC,0xACB0, - /* Range 0x70C5 - 0x70E4, array index: 0x227F */ - 0xD277,0xD278,0xD279,0xAF50,INVALC,0xAF4C,0xD26E,INVALC, - 0xD276,0xD27B,0xAF51,INVALC,0xD26C,0xD272,0xD26B,0xD275, - INVALC,INVALC,0xD271,0xAF4D,0xAF4F,0xD27A,INVALC,0xD26A, - 0xD26D,0xD273,INVALC,0xD274,0xD27C,0xD270,INVALC,0xAF4E, - /* Range 0x70F3 - 0x7110, array index: 0x229F */ - 0xD650,0xD64C,INVALC,0xD658,0xD64A,0xD657,0xB269,0xD648, - 0xDA5B,0xD652,0xB26C,INVALC,0xD653,0xD656,INVALC,0xD65A, - INVALC,0xD64F,INVALC,0xD654,INVALC,INVALC,0xB26A,0xB26B, - 0xD659,0xD64D,0xD649,0xD65B,INVALC,0xD651, - /* Range 0x7117 - 0x7128, array index: 0x22BD */ - 0xD64B,INVALC,0xB548,0xB549,0xDA65,0xB54F,INVALC,0xDA59, - 0xDA62,0xDA58,0xB54C,0xDA60,0xDA5E,INVALC,0xDA5F,0xB54A, - INVALC,0xDA63, - /* Range 0x712E - 0x7132, array index: 0x22CF */ - 0xDA5C,0xDA5A,0xB54B,0xDA5D,0xDA61, - /* Range 0x7141 - 0x7172, array index: 0x22D4 */ - 0xDE70,0xDE77,0xDE79,0xDEA1,INVALC,0xB7DA,0xDE6B,INVALC, - 0xB7D2,INVALC,0xDE7A,0xB7D7,0xDEA2,0xB7CE,INVALC,0xDE7D, - INVALC,0xDE6D,0xDE7E,0xDE6C,INVALC,0xB7DC,INVALC,0xDE78, - 0xB7CF,0xDEA3,INVALC,0xB7D4,0xDE71,0xB7D9,0xDE7C,0xDE6F, - 0xDE76,0xDE72,0xDE6E,0xB7D1,0xB7D8,0xB7D6,0xB7D3,0xB7DB, - 0xB7D0,0xDE75,INVALC,0xB7D5,INVALC,0xB54E,INVALC,0xDE7B, - INVALC,0xDE73, - /* Range 0x7180 - 0x718A, array index: 0x2306 */ - 0xE2BD,0xE2C3,0xE2BF,INVALC,0xBAB6,0xE2BE,0xE2C2,0xE2BA, - INVALC,0xE2BC,0xBAB5, - /* Range 0x7197 - 0x71F4, array index: 0x2311 */ - 0xE2C4,INVALC,0xBAB3,0xE667,0xE664,0xE670,0xE66A,0xE66C, - 0xBCF4,0xE666,0xE66E,INVALC,INVALC,0xE66D,0xE66B,INVALC, - 0xE671,0xBCF7,0xE668,0xE66F,INVALC,0xBCF5,INVALC,INVALC, - 0xE663,0xE665,0xBCF6,0xE662,0xE672,INVALC,0xE669,INVALC, - INVALC,0xEA4A,0xBF51,INVALC,INVALC,0xEA55,0xEA53,0xBF4B, - 0xEA49,0xEA4C,0xEA4D,0xEA48,0xBF55,0xBF56,0xEA47,0xEA56, - 0xEA51,0xBF4F,0xBF4C,0xEA50,0xEA4E,INVALC,INVALC,0xBF52, - 0xEA52,0xBF4D,INVALC,0xBF4E,INVALC,0xEA4F,0xBF50,0xEA4B, - INVALC,0xEA54,0xBF53,0xEA57,0xEA58,0xBF54,INVALC,INVALC, - 0xC0E7,0xC0EE,0xED5C,0xED62,INVALC,0xED60,0xC0EA,0xC0E9, - 0xC0E6,0xED5E,INVALC,INVALC,INVALC,0xC0EC,0xC0EB,0xC0E8, - INVALC,0xED61,0xED5D,0xED5F,INVALC,0xC0ED, - /* Range 0x71F8 - 0x7207, array index: 0x236F */ - 0xC277,0xEFFB,INVALC,0xC274,0xC275,0xEFFD,0xC276,0xEFFA, - INVALC,0xEFF9,0xF26C,0xEFFC,INVALC,0xF26D,0xC37A,0xF26B, - /* Range 0x7219 - 0x722D, array index: 0x237F */ - 0xF5DC,0xF5DB,0xC4EA,INVALC,0xF5DA,0xF6EC,0xF6ED,INVALC, - INVALC,0xF7E6,0xF8B1,INVALC,INVALC,0xF8F6,0xF9BC,0xC679, - 0xF9C6,0xA4F6,INVALC,0xAAA6,0xAAA7, - /* Range 0x7235 - 0x724C, array index: 0x2394 */ - 0xC0EF,0xA4F7,INVALC,0xAAA8,0xAF52,0xB7DD,0xA4F8,INVALC, - 0xB26E,0xBAB8,0xC962,INVALC,0xCFB7,0xD27D,INVALC,0xE2C5, - INVALC,0xC0F0,0xA4F9,0xAAA9,0xCFB8,0xCFB9,0xDA66,0xB550, - /* Range 0x7256 - 0x7263, array index: 0x23AC */ - 0xBCF8,INVALC,0xC37C,0xA4FA,0xDA67,0xA4FB,INVALC,0xA6C9, - 0xCA42,0xA6C8,0xA865,0xA864,0xA863,0xCB60, - /* Range 0x726C - 0x72B0, array index: 0x23BA */ - 0xCFBA,INVALC,0xCFBD,0xACBA,0xCFBB,INVALC,0xACB9,0xCFBC, - 0xACBB,INVALC,0xD2A2,0xD2A1,0xD27E,0xAF53,INVALC,0xD65D, - 0xD65E,0xB26F,0xD65C,0xD65F,0xB552,0xB270,INVALC,INVALC, - 0xB551,0xDA6B,0xDA6A,INVALC,0xDA68,0xDA69,INVALC,0xDA6C, - 0xDEA6,0xDEA5,0xDEA9,INVALC,0xDEA8,0xDEA7,0xBAB9,0xE2C9, - INVALC,0xE2C8,0xBABA,0xE2C7,0xE673,INVALC,0xE674,0xBCF9, - INVALC,0xEA59,0xEA5A,INVALC,INVALC,0xF272,0xC37D,0xF271, - 0xF270,0xF26E,0xF26F,0xC4EB,0xF46C,0xF6EE,0xF8F7,INVALC, - 0xA4FC,INVALC,0xC9A5,0xA5C7,0xC9A6, - /* Range 0x72BD - 0x72EB, array index: 0x23FF */ - 0xCB62,INVALC,0xCB61,0xAAAC,0xCB65,0xA867,0xCB63,0xA866, - 0xCB67,0xCB64,INVALC,INVALC,0xCD5F,0xCFBE,0xCD5D,0xCD64, - INVALC,0xAAAD,INVALC,0xAAB0,0xCD65,0xCD61,INVALC,0xCD62, - INVALC,0xCD5C,0xAAAF,0xCD5E,0xAAAE,0xCD63,INVALC,0xCD60, - INVALC,INVALC,0xCFC2,0xACBD,0xACBE,INVALC,0xCFC5,0xCFBF, - INVALC,0xCFC4,INVALC,0xCFC0,0xACBC,0xCFC3,0xCFC1, - /* Range 0x72F3 - 0x7301, array index: 0x242E */ - 0xD2A8,0xD2A5,INVALC,0xD2A7,0xAF58,0xAF57,0xAF55,0xD2A4, - 0xD2A9,0xAF54,0xAF56,0xD2A6,0xD667,0xD2A3,0xD2AA, - /* Range 0x7307 - 0x730C, array index: 0x243D */ - 0xD662,0xD666,INVALC,0xD665,0xDA6E,0xDA79, - /* Range 0x730F - 0x731E, array index: 0x2443 */ - 0xD668,INVALC,0xD663,0xDA6D,0xB274,INVALC,INVALC,0xB273, - 0xD661,0xD664,0xB275,INVALC,0xB272,0xB271,0xD660,0xD669, - /* Range 0x7322 - 0x7329, array index: 0x2453 */ - 0xDA70,0xDA77,INVALC,0xB554,0xDA76,0xDA73,INVALC,0xB556, - /* Range 0x7330 - 0x7345, array index: 0x245B */ - 0xDA6F,0xDA71,0xDA74,0xDA72,0xB555,0xDA78,0xB553,0xB7DF, - INVALC,INVALC,0xDEAD,0xDEAC,0xDEAA,INVALC,0xB7E2,0xB7E1, - 0xDEAE,INVALC,0xDEAB,0xE2CA,0xBABB,0xB7E0, - /* Range 0x7349 - 0x7352, array index: 0x2471 */ - 0xDEB0,0xDEAF,INVALC,0xE2CD,0xE2CB,0xBCFA,INVALC,0xBABC, - 0xE2CC,0xE676, - /* Range 0x7357 - 0x738B, array index: 0x247B */ - 0xBCFB,0xE675,0xE67E,0xE67D,0xE67B,INVALC,0xE67A,0xE677, - 0xE678,0xE679,0xE67C,0xE6A1,INVALC,INVALC,0xEA5F,0xEA5C, - 0xEA5D,0xBF57,0xEA5B,0xEA61,0xEA60,0xEA5E,INVALC,0xED64, - 0xED65,0xC0F1,INVALC,0xC0F2,0xED63,INVALC,0xC279,0xEFFE, - 0xC278,0xC37E,INVALC,0xC3A1,0xC46D,0xF46E,0xF46D,0xF5DD, - 0xF6EF,0xC57A,0xF7E8,0xF7E7,0xF7E9,0xA5C8,0xCFC6,0xAF59, - 0xB276,0xD66A,0xA5C9,0xC9A7,0xA4FD, - /* Range 0x7392 - 0x7397, array index: 0x24B0 */ - 0xCB6C,0xCB6A,0xCB6B,0xCB68,0xA868,0xCB69, - /* Range 0x739D - 0x73AD, array index: 0x24B6 */ - 0xCD6D,INVALC,0xAAB3,0xCD6B,0xCD67,0xCD6A,INVALC,0xCD66, - 0xAAB5,0xCD69,INVALC,0xAAB2,0xAAB1,INVALC,0xAAB4,0xCD6C, - 0xCD68, - /* Range 0x73B2 - 0x73CD, array index: 0x24C7 */ - 0xACC2,0xACC5,0xCFCE,0xCFCD,0xCFCC,0xACBF,0xCFD5,0xCFCB, - INVALC,0xACC1,0xD2AF,INVALC,0xCFD2,0xCFD0,0xACC4,INVALC, - 0xCFC8,0xCFD3,INVALC,0xCFCA,0xCFD4,0xCFD1,0xCFC9,INVALC, - 0xACC0,0xCFD6,0xCFC7,0xACC3, - /* Range 0x73D2 - 0x73E0, array index: 0x24E3 */ - 0xD2B4,0xD2AB,0xD2B6,INVALC,0xD2AE,0xD2B9,0xD2BA,0xD2AC, - 0xD2B8,0xD2B5,0xD2B3,0xD2B7,0xAF5F,INVALC,0xAF5D, - /* Range 0x73E5 - 0x73EE, array index: 0x24F2 */ - 0xD2AD,INVALC,0xD2B0,0xD2BB,0xD2B2,0xAF5E,0xCFCF,INVALC, - 0xAF5A,0xAF5C, - /* Range 0x73F4 - 0x740D, array index: 0x24FC */ - 0xD678,0xD66D,0xD66B,INVALC,0xD66C,INVALC,0xD673,INVALC, - 0xD674,0xD670,0xB27B,0xD675,0xD672,0xD66F,INVALC,0xB279, - 0xD66E,0xB277,0xB27A,0xD671,0xD679,0xAF5B,0xB278,0xD677, - 0xD676,0xB27C, - /* Range 0x7420 - 0x7436, array index: 0x2516 */ - 0xDAA9,0xDAA2,0xB55A,0xDAA6,0xDAA5,0xB55B,0xB561,INVALC, - 0xB562,0xDAA8,0xB558,0xDA7D,0xDA7B,0xDAA3,0xDA7A,0xB55F, - 0xDA7C,0xDAA4,0xDAAA,0xB559,0xB55E,0xB55C,0xB55D, - /* Range 0x743F - 0x7446, array index: 0x252D */ - 0xB7E9,0xDEB7,0xB7E8,0xDEBB,INVALC,0xDEB1,INVALC,0xDEBC, - /* Range 0x744A - 0x7464, array index: 0x2535 */ - 0xDEB2,0xDEB3,INVALC,0xDEBD,0xDEBA,0xDEB8,0xDEB9,0xDEB5, - 0xDEB4,INVALC,0xDEBE,0xB7E5,INVALC,0xDEB6,INVALC,0xB7EA, - 0xB7E4,0xB7EB,0xB7EC,INVALC,0xB7E7,0xB7E6,INVALC,INVALC, - 0xE2CE,0xBABE,0xBABD, - /* Range 0x7469 - 0x7475, array index: 0x2550 */ - 0xBCFC,0xBABF,INVALC,INVALC,0xBAC1,0xE2D4,0xB7E3,0xBAC0, - 0xE2D0,0xE2D2,0xE2CF,INVALC,0xE2D1, - /* Range 0x747C - 0x748B, array index: 0x255D */ - 0xE6AA,0xE6A7,0xBD40,0xEA62,0xBD41,0xE6A6,INVALC,0xBCFE, - INVALC,0xE6A8,0xE6A5,0xE6A2,0xE6A9,0xE6A3,0xE6A4,0xBCFD, - /* Range 0x7494 - 0x74C5, array index: 0x256D */ - 0xEA65,0xEA67,INVALC,0xED66,0xBF5A,INVALC,0xEA63,INVALC, - 0xBF58,INVALC,0xBF5C,0xBF5B,0xEA64,0xEA68,INVALC,0xBF59, - INVALC,0xED6D,0xC0F5,0xC27A,0xC0F6,0xC0F3,0xED6A,0xED68, - INVALC,0xED6B,INVALC,0xED6E,0xC0F4,0xED6C,0xED67,INVALC, - INVALC,0xF042,0xF045,0xF275,0xF040,INVALC,0xF46F,0xF046, - INVALC,0xC3A2,0xF044,0xC27B,0xF041,0xF043,0xF047,0xF276, - INVALC,0xF274, - /* Range 0x74D4 - 0x74E9, array index: 0x259F */ - 0xC4ED,0xF6F1,0xC4EC,0xF6F3,0xF6F0,0xF6F2,0xC5D0,0xF8B2, - 0xA5CA,0xCD6E,0xD2BC,0xD2BD,0xB27D,0xDEBF,0xBF5D,0xC3A4, - 0xC57B,0xF8B3,0xA5CB,INVALC,0xCD6F,0xA260, - /* Range 0x74F4 - 0x74F7, array index: 0x25B5 */ - 0xD2BE,0xD2BF,0xB27E,0xB2A1, - /* Range 0x74FB - 0x7540, array index: 0x25B9 */ - 0xDAAB,INVALC,0xDEC2,0xDEC1,0xDEC0,0xE2D5,INVALC,0xE2D6, - 0xE2D7,0xBAC2,INVALC,INVALC,0xE6AD,0xE6AC,INVALC,INVALC, - 0xEA69,0xBF5E,0xBF5F,INVALC,0xED72,0xED6F,0xED70,0xED71, - 0xF049,0xF048,0xC27C,0xF277,0xF5DE,0xA5CC,INVALC,0xACC6, - INVALC,0xB2A2,0xDEC3,INVALC,0xA5CD,INVALC,0xD2C0,0xB2A3, - INVALC,INVALC,0xB563,0xB564,INVALC,0xA5CE,0xA5CF,0xCA46, - 0xA86A,0xA869,0xACC7,0xCFD9,0xDAAC,0xA5D0,0xA5D1,0xA5D2, - 0xA5D3,INVALC,INVALC,INVALC,0xA86B,0xA86C,0xCB6E,0xCB6D, - INVALC,INVALC,0xAAB6,0xCD72,0xCD70,0xCD71, - /* Range 0x754B - 0x754F, array index: 0x25FF */ - 0xACCB,0xACC9,INVALC,0xACCA,0xACC8, - /* Range 0x7559 - 0x7570, array index: 0x2604 */ - 0xAF64,0xAF63,0xD2C1,0xAF62,0xAF61,INVALC,0xD2C2,INVALC, - INVALC,0xB2A6,0xD67B,0xD67A,0xB2A4,0xB2A5,INVALC,INVALC, - INVALC,0xB566,0xB565,0xDAAE,INVALC,INVALC,0xDAAD,0xB2A7, - /* Range 0x7576 - 0x7580, array index: 0x261C */ - 0xB7ED,0xDEC5,0xB7EE,0xDEC4,INVALC,INVALC,INVALC,0xE2D8, - 0xE6AE,0xBD42,0xEA6A, - /* Range 0x7586 - 0x759A, array index: 0x2627 */ - 0xC3A6,0xC3A5,INVALC,INVALC,0xC57C,0xA5D4,0xCD73,INVALC, - INVALC,0xB2A8,0xE2D9,0xBAC3,INVALC,INVALC,0xCB6F,0xCB70, - INVALC,INVALC,0xCD74,0xAAB8,0xAAB9, - /* Range 0x75A2 - 0x75AB, array index: 0x263C */ - 0xACCF,0xACD0,0xACCD,0xACCE,INVALC,0xCFDC,INVALC,INVALC, - 0xCFDD,0xACCC, - /* Range 0x75B2 - 0x75E7, array index: 0x2646 */ - 0xAF68,0xAF69,INVALC,0xB2AB,0xD2C9,INVALC,0xAF6E,0xAF6C, - 0xD2CA,0xD2C5,0xAF6B,0xAF6A,0xAF65,0xD2C8,0xD2C7,0xD2C4, - 0xAF6D,INVALC,0xD2C6,0xAF66,INVALC,0xAF67,INVALC,INVALC, - 0xB2AC,0xD6A1,0xD6A2,0xB2AD,0xD67C,0xD67E,0xD6A4,0xD6A3, - 0xD67D,INVALC,0xB2A9,0xB2AA,INVALC,0xDAB6,0xB56B,0xB56A, - 0xDAB0,0xB568,INVALC,0xDAB3,0xB56C,0xDAB4,0xB56D,0xDAB1, - 0xB567,0xB569,0xDAB5,INVALC,0xDAB2,0xDAAF, - /* Range 0x75ED - 0x7603, array index: 0x267C */ - 0xDED2,INVALC,0xDEC7,0xB7F0,0xB7F3,0xB7F2,0xB7F7,0xB7F6, - 0xDED3,0xDED1,0xDECA,0xDECE,0xDECD,0xB7F4,0xDED0,0xDECC, - 0xDED4,0xDECB,0xB7F5,0xB7EF,0xB7F1,INVALC,0xDEC9, - /* Range 0x7608 - 0x7629, array index: 0x2693 */ - 0xE2DB,0xBAC7,0xE2DF,0xBAC6,0xE2DC,0xBAC5,INVALC,0xDEC8, - 0xDECF,0xE2DE,INVALC,0xBAC8,0xE2E0,0xE2DD,0xE2DA,INVALC, - INVALC,0xE6B1,0xE6B5,0xE6B7,0xE6B3,0xE6B2,0xE6B0,0xBD45, - 0xBD43,0xBD48,0xBD49,0xE6B4,0xBD46,0xE6AF,0xBD47,0xBAC4, - 0xE6B6,0xBD44, - /* Range 0x762D - 0x7635, array index: 0x26B5 */ - 0xEA6C,INVALC,0xEA6B,0xEA73,0xEA6D,0xEA72,0xEA6F,0xBF60, - 0xEA71, - /* Range 0x7642 - 0x7649, array index: 0x26BE */ - 0xC0F8,0xED74,INVALC,INVALC,0xC0F7,0xED77,0xED75,0xED76, - /* Range 0x7652 - 0x7665, array index: 0x26C6 */ - 0xC2A1,0xF04E,INVALC,INVALC,0xC27D,0xF04F,0xC27E,0xF04C, - 0xF050,INVALC,0xF04A,INVALC,INVALC,0xC3A7,0xF278,0xC3A8, - 0xC46F,INVALC,0xF04B,0xC470, - /* Range 0x7669 - 0x7672, array index: 0x26DA */ - 0xC4EE,0xF5DF,INVALC,0xC57E,0xF6F4,0xC57D,INVALC,0xF7EA, - 0xC5F5,0xC5F6, - /* Range 0x7678 - 0x769E, array index: 0x26E4 */ - 0xACD1,0xCFDE,INVALC,0xB56E,0xB56F,0xA5D5,0xA6CA,0xCA47, - INVALC,0xCB71,0xA86D,INVALC,0xAABA,INVALC,0xACD2,0xACD3, - 0xACD4,0xD6A6,0xD2CB,0xAF6F,INVALC,INVALC,0xB2AE,0xD6A5, - INVALC,INVALC,0xDAB8,0xB571,INVALC,0xDAB7,0xB570,INVALC, - INVALC,0xDED5,0xBD4A,0xE6BB,0xE6B8,0xE6B9,0xE6BA, - /* Range 0x76AA - 0x76B0, array index: 0x270B */ - 0xF471,0xF470,INVALC,0xF6F5,0xA5D6,0xCD75,0xAF70, - /* Range 0x76BA - 0x76D4, array index: 0x2712 */ - 0xBD4B,0xEA74,INVALC,0xF052,0xF472,0xA5D7,INVALC,INVALC, - 0xAABB,0xACD7,0xCFDF,0xACD8,0xACD6,INVALC,0xACD5,0xD2CC, - 0xAF71,INVALC,INVALC,0xAF72,0xAF73,INVALC,INVALC,INVALC, - 0xB2B0,0xD6A7,0xB2AF, - /* Range 0x76DA - 0x76FE, array index: 0x272D */ - 0xDAB9,0xB2B1,0xB573,0xDED7,0xB7F8,0xB7F9,INVALC,0xBAC9, - INVALC,0xBACA,0xBD4C,0xBF64,0xEA75,0xBF63,INVALC,0xED79, - 0xC0FA,INVALC,0xF053,0xF473,0xA5D8,0xA86E,0xCD78,0xCD77, - 0xAABC,0xCD76,0xAABD,0xCD79,INVALC,0xCFE5,0xACDB,0xACDA, - 0xCFE7,0xCFE6,0xACDF,INVALC,0xACDE, - /* Range 0x7701 - 0x770B, array index: 0x2752 */ - 0xACD9,INVALC,0xCFE1,0xCFE2,0xCFE3,INVALC,0xACE0,0xCFE0, - 0xACDC,0xCFE4,0xACDD, - /* Range 0x7710 - 0x7729, array index: 0x275D */ - 0xD2CF,0xD2D3,0xD2D1,0xD2D0,INVALC,0xD2D4,INVALC,INVALC, - INVALC,0xD2D5,0xD2D6,0xD2CE,INVALC,0xD2CD,INVALC,0xAF75, - 0xAF76,INVALC,0xD2D7,0xD2D2,INVALC,0xD6B0,INVALC,0xD2D8, - 0xAF77,0xAF74, - /* Range 0x772F - 0x773E, array index: 0x2777 */ - 0xD6A9,INVALC,0xD6AB,0xD6AC,0xD6AE,0xD6AD,0xD6B2,0xB2B5, - 0xB2B2,0xB2B6,0xD6A8,0xB2B7,0xD6B1,0xB2B4,0xD6AF,0xB2B3, - /* Range 0x7744 - 0x774F, array index: 0x2787 */ - 0xDABC,0xDABE,0xDABA,0xDABB,INVALC,INVALC,0xDABF,0xDAC1, - 0xDAC2,0xDABD,0xDAC0,0xB574, - /* Range 0x7752 - 0x776F, array index: 0x2793 */ - 0xDEDB,INVALC,0xDEE0,0xDED8,0xDEDC,INVALC,INVALC,0xDEE1, - 0xDEDD,0xB7FA,0xB843,INVALC,0xB7FD,0xDED9,0xDEDA,0xBACE, - 0xB846,0xB7FE,INVALC,0xB844,0xB7FC,0xDEDF,0xB845,0xDEDE, - 0xB841,0xB7FB,0xB842,0xDEE2,0xE2E6,0xE2E8, - /* Range 0x777C - 0x7791, array index: 0x27B1 */ - 0xE2E3,0xBACC,0xE2E9,0xBACD,0xE2E7,0xE2E2,0xE2E5,0xE2EA, - 0xBACB,0xE2E4,INVALC,0xBD4E,0xE6BF,0xE6BE,INVALC,0xBD51, - 0xBD4F,0xE6BC,0xBD4D,0xE6BD,INVALC,0xBD50, - /* Range 0x7797 - 0x77BF, array index: 0x27C7 */ - 0xEAA1,INVALC,0xEA7E,0xEA76,0xEA7A,0xEA79,0xEA77,0xBF66, - 0xBF67,0xBF65,0xEA78,0xEA7B,0xEA7C,INVALC,0xBF68,INVALC, - 0xC140,0xEDA3,INVALC,0xC0FC,0xED7B,0xC0FE,0xC141,INVALC, - INVALC,0xC0FD,0xEDA2,0xED7C,0xC0FB,0xEDA1,0xED7A,0xED7E, - 0xED7D,INVALC,INVALC,0xF055,0xC2A4,0xC2A5,0xC2A2,INVALC, - 0xC2A3, - /* Range 0x77C9 - 0x77FD, array index: 0x27F0 */ - 0xF279,0xF27A,INVALC,0xF474,0xF477,0xF475,0xF476,0xF5E0, - INVALC,INVALC,0xC4EF,0xF7EB,0xF8B4,INVALC,0xC5F7,0xF8F8, - 0xF8F9,0xC666,0xA5D9,0xACE1,INVALC,0xDAC3,INVALC,0xDEE3, - INVALC,0xA5DA,0xA86F,INVALC,0xAABE,INVALC,0xCFE8,0xCFE9, - 0xAF78,INVALC,INVALC,0xDAC4,0xB575,0xB847,0xC142,0xEDA4, - 0xF27C,0xF478,0xA5DB,INVALC,INVALC,INVALC,0xCDA1,0xCD7A, - 0xCD7C,0xCD7E,0xCD7D,0xCD7B,0xAABF, - /* Range 0x7802 - 0x7806, array index: 0x2825 */ - 0xACE2,0xCFF2,INVALC,0xCFED,0xCFEA, - /* Range 0x780C - 0x7814, array index: 0x282A */ - 0xACE4,0xACE5,0xCFF0,0xCFEF,0xCFEE,0xCFEB,0xCFEC,0xCFF3, - 0xACE3, - /* Range 0x781D - 0x7838, array index: 0x2833 */ - 0xAF7C,INVALC,0xAFA4,0xAFA3,0xD2E1,0xD2DB,0xD2D9,INVALC, - 0xAFA1,0xD6B9,0xAF7A,0xD2DE,0xD2E2,0xD2E4,0xD2E0,0xD2DA, - 0xAFA2,0xD2DF,0xD2DD,0xAF79,0xD2E5,0xAFA5,0xD2E3,0xAF7D, - 0xD2DC,INVALC,0xAF7E,0xAF7B, - /* Range 0x7848 - 0x7852, array index: 0x284F */ - 0xD6B3,0xD6B5,0xD6B7,INVALC,0xD6B8,0xD6B6,0xB2BA,INVALC, - 0xD6BB,INVALC,0xD6B4, - /* Range 0x785C - 0x7871, array index: 0x285A */ - 0xDAC8,0xB576,0xDAD0,INVALC,0xDAC5,INVALC,0xDAD1,INVALC, - 0xDAC6,0xDAC7,INVALC,INVALC,0xDACF,0xDACE,0xDACB,0xB2B8, - 0xB577,0xDAC9,0xDACC,0xB578,0xDACD,0xDACA, - /* Range 0x787B - 0x7889, array index: 0x2870 */ - 0xDEF2,0xB84E,INVALC,0xE2F0,0xB851,0xDEF0,INVALC,INVALC, - 0xDEED,0xDEE8,0xDEEA,0xDEEB,0xDEE4,INVALC,0xB84D, - /* Range 0x7891 - 0x78AD, array index: 0x287F */ - 0xB84F,INVALC,0xB850,0xDEE6,0xDEE9,0xDEF1,0xB84A,0xB84B, - 0xDEEF,0xDEE5,INVALC,INVALC,INVALC,0xE2F2,0xBAD0,0xE2F4, - 0xDEEC,0xE2F6,0xBAD4,0xE2F7,0xE2F3,INVALC,0xBAD1,0xE2EF, - 0xBAD3,0xE2EC,0xE2F1,0xE2F5,0xE2EE, - /* Range 0x78B0 - 0x78B4, array index: 0x289C */ - 0xB849,INVALC,0xE2EB,0xBAD2,0xE2ED, - /* Range 0x78BA - 0x78BE, array index: 0x28A1 */ - 0xBD54,0xE6C1,0xBD58,INVALC,0xBD56, - /* Range 0x78C1 - 0x78D5, array index: 0x28A6 */ - 0xBACF,INVALC,0xE6C8,0xE6C9,0xBD53,INVALC,INVALC,0xE6C7, - 0xE6CA,0xBD55,0xBD52,0xE6C3,0xE6C0,0xE6C5,0xE6C2,0xBD59, - 0xE6C4,INVALC,INVALC,0xE6C6,0xBD57, - /* Range 0x78DA - 0x78F4, array index: 0x28BB */ - 0xBF6A,0xEAA8,INVALC,0xEAA2,0xEAA6,0xEAAC,0xEAAD,0xEAA9, - 0xEAAA,0xEAA7,INVALC,0xEAA4,INVALC,0xBF6C,0xBF69,0xEAA3, - 0xEAA5,INVALC,0xBF6B,0xEAAB,INVALC,0xC146,INVALC,INVALC, - 0xEDAA,0xEDA5,0xC145, - /* Range 0x78F7 - 0x7905, array index: 0x28D6 */ - 0xC143,INVALC,0xEDAC,0xC144,0xEDA8,0xEDA9,0xEDA6,0xEDAD, - 0xF056,INVALC,0xC147,0xEDA7,INVALC,0xEDAE,0xEDAB, - /* Range 0x790E - 0x7914, array index: 0x28E5 */ - 0xC2A6,INVALC,0xF05B,0xF05D,0xF05C,0xF058,0xF059, - /* Range 0x7919 - 0x791E, array index: 0x28EC */ - 0xC3AA,INVALC,0xF27E,0xF2A2,0xF27D,0xF2A4, - /* Range 0x7921 - 0x7931, array index: 0x28F2 */ - 0xF2A1,INVALC,0xF47A,0xF47D,0xF479,0xC471,0xF47B,0xF47C, - 0xF47E,0xC472,0xC474,0xC473,0xF5E1,INVALC,0xF5E3,INVALC, - 0xF5E2, - /* Range 0x7938 - 0x796D, array index: 0x2903 */ - 0xF8B5,0xF8FA,0xA5DC,INVALC,INVALC,0xCB72,0xAAC0,0xCDA3, - 0xAAC1,0xAAC2,0xCDA2,INVALC,0xCFF8,0xCFF7,0xACE6,0xACE9, - 0xACE8,0xACE7,0xCFF4,0xCFF6,0xCFF5,INVALC,INVALC,0xD2E8, - 0xAFA7,0xD2EC,0xD2EB,0xD2EA,0xD2E6,0xAFA6,0xAFAA,0xAFAD, - INVALC,INVALC,0xAFAE,0xD2E7,0xD2E9,0xAFAC,0xAFAB,0xAFA9, - 0xAFA8,0xD6C2,INVALC,0xD6C0,0xD6BC,0xB2BB,INVALC,0xD6BD, - 0xB2BC,0xD6BE,0xD6BF,0xD6C1,INVALC,0xB2BD, - /* Range 0x7970 - 0x7974, array index: 0x2939 */ - 0xDAD5,INVALC,0xDAD4,0xDAD3,0xDAD2, - /* Range 0x7979 - 0x7982, array index: 0x293E */ - 0xDEF6,0xB852,INVALC,0xDEF3,0xDEF5,INVALC,0xB853,INVALC, - 0xB854,0xDEF4, - /* Range 0x798A - 0x79C1, array index: 0x2948 */ - 0xE2F9,0xE2FA,INVALC,0xBAD7,0xBAD5,0xBAD6,0xE343,INVALC, - 0xE342,0xE2FE,0xE2FD,0xE2FC,0xE2FB,0xE340,0xE2F8,INVALC, - 0xE6CB,0xE6D0,0xE6CE,INVALC,INVALC,INVALC,0xE6CD,0xE6CC, - 0xE6CF,INVALC,0xEAAE,INVALC,0xBF6D,0xC148,0xEDB0,INVALC, - 0xC149,0xEDAF,0xF05F,0xF05E,0xC2A7,INVALC,0xF2A5,0xC3AB, - 0xF4A1,0xC5A1,0xF6F7,INVALC,0xF8B7,0xF8B6,0xC9A8,0xACEA, - 0xACEB,0xD6C3,INVALC,0xB856,0xA5DD,0xA872,0xA871,0xA870, - /* Range 0x79CB - 0x79EE, array index: 0x2980 */ - 0xACEE,INVALC,0xCFFA,0xCFFD,0xCFFB,INVALC,0xACEC,0xACED, - INVALC,INVALC,0xCFF9,0xCFFC,INVALC,0xAFB5,INVALC,INVALC, - INVALC,0xD2F3,0xD2F5,0xD2F4,0xAFB2,0xD2EF,INVALC,INVALC, - 0xAFB0,0xAFAF,INVALC,0xAFB3,0xAFB1,INVALC,0xAFB4,0xD2F2, - 0xD2ED,0xD2EE,0xD2F1,0xD2F0, - /* Range 0x79F6 - 0x79FB, array index: 0x29A4 */ - 0xD6C6,0xD6C7,0xD6C5,INVALC,0xD6C4,0xB2BE, - /* Range 0x7A00 - 0x7A05, array index: 0x29AA */ - 0xB57D,INVALC,0xDAD6,0xDAD8,0xDADA,0xB57C, - /* Range 0x7A08 - 0x7A22, array index: 0x29B0 */ - 0xB57A,INVALC,0xDAD7,0xB57B,0xDAD9,0xB579,INVALC,INVALC, - 0xDF41,0xDEF7,0xDEFA,0xDEFE,0xB85A,0xDEFC,INVALC,0xDEFB, - 0xDEF8,0xDEF9,0xB858,0xDF40,0xB857,INVALC,0xB85C,0xB85B, - 0xB859,INVALC,0xDEFD, - /* Range 0x7A2E - 0x7A31, array index: 0x29CB */ - 0xBAD8,0xE347,0xE346,0xBAD9, - /* Range 0x7A39 - 0x7A40, array index: 0x29CF */ - 0xE6D2,INVALC,0xBD5F,0xBD5B,0xBD5D,INVALC,0xBD5A,0xBD5C, - /* Range 0x7A44 - 0x7A4E, array index: 0x29D7 */ - 0xEAAF,INVALC,0xBF70,0xEAB1,0xEAB0,INVALC,0xE345,0xBF72, - 0xBF71,0xBF6E,0xBF6F, - /* Range 0x7A54 - 0x7A62, array index: 0x29E2 */ - 0xEDB5,INVALC,0xEDB3,0xC14A,0xEDB4,INVALC,0xEDB6,0xEDB2, - 0xEDB1,INVALC,INVALC,0xF060,0xC2AA,0xC2A8,0xC2A9, - /* Range 0x7A67 - 0x7A99, array index: 0x29F1 */ - 0xF2A6,0xF2A7,0xC3AD,INVALC,0xC3AC,0xF4A3,0xF4A4,0xF4A2, - INVALC,0xF6F8,0xF6F9,INVALC,INVALC,0xA5DE,0xCA48,0xA873, - INVALC,0xCDA5,0xAAC6,0xAAC5,0xCDA6,INVALC,INVALC,0xD040, - 0xACEF,0xCFFE,0xACF0,INVALC,INVALC,0xAFB6,0xD2F8,0xD2F6, - 0xD2FC,0xAFB7,0xD2F7,0xD2FB,0xD2F9,0xD2FA,INVALC,INVALC, - 0xD6C8,0xD6CA,INVALC,0xB2BF,INVALC,0xD6C9,0xB2C0,0xB5A2, - 0xB5A1,0xB57E,0xDADB, - /* Range 0x7A9E - 0x7AA3, array index: 0x2A24 */ - 0xDF44,0xB85D,0xB85E,INVALC,0xDF43,0xDF42, - /* Range 0x7AA8 - 0x7ACB, array index: 0x2A2A */ - 0xE34A,0xBADB,0xBADA,0xE34B,0xE34C,INVALC,0xBD61,0xBD60, - INVALC,0xEAB5,0xE6D3,0xE6D5,0xE6D4,0xEAB4,0xEAB2,0xEAB6, - 0xEAB3,INVALC,0xBF73,INVALC,INVALC,INVALC,0xEDB7,0xC14B, - 0xEDB8,0xEDB9,INVALC,INVALC,0xC2AB,0xC2AC,INVALC,0xC475, - INVALC,INVALC,0xC5D1,0xA5DF, - /* Range 0x7ADF - 0x7AE6, array index: 0x2A4E */ - 0xB3BA,0xB3B9,INVALC,INVALC,0xB5A4,0xDADD,0xB5A3,0xDADC, - /* Range 0x7AEB - 0x7AEF, array index: 0x2A56 */ - 0xDF45,INVALC,0xBADC,0xE34D,0xBADD, - /* Range 0x7AF6 - 0x7B13, array index: 0x2A5B */ - 0xC476,0xF4A5,INVALC,0xA6CB,0xAAC7,0xCDA7,INVALC,0xACF2, - INVALC,0xACF1,0xD042,0xD043,INVALC,INVALC,0xD340,0xD342, - 0xAFB9,INVALC,0xD344,0xD347,0xD345,INVALC,INVALC,INVALC, - 0xD346,0xD343,0xD2FE,0xAFBA,0xD348,0xD341, - /* Range 0x7B18 - 0x7B35, array index: 0x2A79 */ - 0xD6D3,0xB2C6,0xD6DC,0xB2C3,INVALC,0xD6D5,0xB2C7,INVALC, - 0xB2C1,INVALC,0xD6D0,0xD6DD,0xD6D1,0xD6CE,0xB2C5,INVALC, - 0xB2C2,INVALC,0xD6D4,0xD6D7,0xB2C4,0xD6D8,0xB2C8,0xD6D9, - 0xD6CF,0xD6D6,0xD6DA,0xD6D2,0xD6CD,0xD6CB, - /* Range 0x7B44 - 0x7B58, array index: 0x2A97 */ - 0xDAE0,0xDAE6,0xB5A7,0xD6CC,0xDAE1,0xB5A5,0xDADE,0xB5AC, - 0xDAE2,0xB5AB,0xDAE3,0xB5AD,0xB5A8,0xB5AE,0xB5A9,INVALC, - 0xB5AA,INVALC,0xB5A6,INVALC,0xDAE5, - /* Range 0x7B60 - 0x7B69, array index: 0x2AAC */ - 0xB861,0xDF50,INVALC,0xDF53,0xDF47,0xDF4C,0xDF46,0xB863, - INVALC,0xDF4A, - /* Range 0x7B6D - 0x7B78, array index: 0x2AB6 */ - 0xDF48,0xB862,INVALC,0xDF4F,0xDF4E,0xDF4B,0xDF4D,0xDF49, - 0xBAE1,0xDF52,0xB85F,0xDF51, - /* Range 0x7B84 - 0x7BA1, array index: 0x2AC2 */ - 0xBAE8,0xE358,INVALC,0xBAE7,0xE34E,INVALC,0xE350,0xBAE0, - 0xE355,0xE354,0xE357,0xBAE5,0xE352,0xE351,INVALC,INVALC, - 0xBAE4,0xBADF,0xE353,0xBAE2,0xE359,0xE35B,INVALC,0xE356, - 0xE34F,0xBAE3,INVALC,INVALC,0xBD69,0xBADE, - /* Range 0x7BB4 - 0x7BB9, array index: 0x2AE0 */ - 0xBD65,0xE6DE,INVALC,0xE6D6,0xBAE6,0xE6DC, - /* Range 0x7BC6 - 0x7BCE, array index: 0x2AE6 */ - 0xBD66,0xBD67,INVALC,0xBF76,0xE6DD,0xE6D7,0xBD6A,INVALC, - 0xE6DA, - /* Range 0x7BD4 - 0x7BEB, array index: 0x2AEF */ - 0xEAC0,0xEABB,INVALC,INVALC,0xEAC5,0xBF74,0xEABD,0xBF78, - 0xEAC3,0xEABA,0xEAB7,0xEAC6,0xC151,0xBF79,0xEAC2,0xEAB8, - 0xBF77,0xEABC,0xBF7B,0xEAB9,0xEABE,0xBF7A,0xEAC1,0xEAC4, - /* Range 0x7BF0 - 0x7C11, array index: 0x2B07 */ - 0xEDCB,0xEDCC,0xEDBC,0xEDC3,0xEDC1,INVALC,INVALC,0xC14F, - 0xEDC8,0xEABF,INVALC,0xEDBF,INVALC,0xEDC9,0xC14E,0xEDBE, - 0xEDBD,0xEDC7,0xEDC4,0xEDC6,INVALC,0xEDBA,0xEDCA,0xC14C, - INVALC,0xEDC5,0xEDCE,0xEDC2,0xC150,0xC14D,0xEDC0,0xEDBB, - 0xEDCD,0xBF75, - /* Range 0x7C1C - 0x7C2D, array index: 0x2B29 */ - 0xF061,0xF067,0xC2B0,0xF065,0xF064,0xC2B2,0xF06A,0xC2B1, - INVALC,0xF06B,0xF068,0xC2AE,0xF069,0xF062,0xC2AF,0xC2AD, - 0xF2AB,0xF066, - /* Range 0x7C37 - 0x7C40, array index: 0x2B3B */ - 0xC3B2,0xC3B0,0xF2AA,INVALC,0xF2AC,0xF2A9,0xC3B1,0xC3AE, - 0xC3AF,0xC3B3, - /* Range 0x7C45 - 0x7C4D, array index: 0x2B45 */ - 0xF4AA,INVALC,0xF4A9,0xF4A7,0xF4A6,0xF4A8,INVALC,0xC477, - 0xC479, - /* Range 0x7C57 - 0x7C7A, array index: 0x2B4E */ - 0xF6FA,INVALC,0xF6FC,0xF6FE,0xF6FD,0xF6FB,INVALC,INVALC, - 0xC5A3,0xC5A2,INVALC,INVALC,0xC5D3,0xC5D2,0xC5D4,0xF7ED, - 0xF7EC,INVALC,0xF8FB,0xF8B8,0xF8FC,0xC658,INVALC,0xC659, - 0xF96D,INVALC,INVALC,0xC67E,0xA6CC,INVALC,0xCDA8,INVALC, - INVALC,0xD045,0xD046,0xD044, - /* Range 0x7C7D - 0x7C8D, array index: 0x2B72 */ - 0xACF3,INVALC,0xD047,0xD048,0xD049,INVALC,INVALC,0xD349, - 0xD34F,INVALC,INVALC,0xD34D,0xAFBB,0xD34B,INVALC,0xD34C, - 0xD34E, - /* Range 0x7C91 - 0x7C98, array index: 0x2B83 */ - 0xD34A,0xB2C9,INVALC,0xD6DE,0xB2CB,0xD6E0,0xB2CA,0xD6DF, - /* Range 0x7C9E - 0x7CA5, array index: 0x2B8B */ - 0xDAE8,0xB5AF,INVALC,0xDAEA,0xDAE7,0xD6E1,INVALC,0xB5B0, - /* Range 0x7CAF - 0x7CBF, array index: 0x2B93 */ - 0xDF56,INVALC,0xB864,0xDF54,0xB865,0xDF55,0xB866,INVALC, - INVALC,INVALC,0xBAE9,0xE361,0xE35E,0xE360,0xBAEA,0xBAEB, - 0xE35F, - /* Range 0x7CC8 - 0x7CE2, array index: 0x2BA4 */ - 0xE6E0,INVALC,0xBD6B,0xE6E2,0xE6E1,INVALC,0xA261,INVALC, - 0xEACA,0xEACB,0xEAC7,INVALC,0xEAC8,0xBF7C,0xBF7D,0xEAC9, - INVALC,0xC157,INVALC,INVALC,0xC153,0xC158,0xC154,0xC156, - 0xC152,INVALC,0xC155, - /* Range 0x7CEC - 0x7CF8, array index: 0x2BBF */ - 0xF2AD,INVALC,0xF4AB,0xC47A,0xC47B,0xF741,0xF5E6,INVALC, - 0xF740,INVALC,0xF8FD,0xF9A4,0xA6CD, - /* Range 0x7CFD - 0x7D22, array index: 0x2BCC */ - 0xCDA9,0xAAC8,INVALC,0xACF6,0xD04C,0xACF4,0xD04A,0xACF9, - 0xACF5,0xACFA,0xACF8,0xD04B,0xACF7,0xAFBF,0xAFBE,0xD35A, - 0xAFC7,0xD353,0xD359,0xAFC3,0xD352,0xD358,0xD356,0xAFC2, - 0xAFC4,0xD355,0xAFBD,0xD354,0xAFC8,0xAFC5,0xAFC9,0xAFC6, - 0xD351,0xD350,0xD357,0xAFC0,0xAFBC,0xAFC1, - /* Range 0x7D28 - 0x7D47, array index: 0x2BF2 */ - 0xD6F0,0xD6E9,INVALC,0xB5B5,0xD6E8,INVALC,0xB2CF,0xB2D6, - 0xB2D3,0xB2D9,0xB2D8,0xB2D4,INVALC,0xD6E2,0xD6E5,INVALC, - 0xD6E4,0xB2D0,0xD6E6,0xD6EF,0xB2D1,0xD6E3,0xD6EC,0xD6ED, - 0xB2D2,0xD6EA,0xB2D7,0xB2CD,0xB2D5,0xD6E7,0xB2CC,0xD6EB, - /* Range 0x7D4E - 0x7D73, array index: 0x2C12 */ - 0xDAFB,0xDAF2,0xB5B2,0xDAF9,0xDAF6,0xDAEE,0xDAF7,0xB5B4, - 0xDAEF,INVALC,0xDAEB,INVALC,INVALC,0xB86C,0xDAF4,INVALC, - 0xB5B1,0xDAFA,INVALC,0xB5B8,0xB5BA,0xDAED,INVALC,INVALC, - 0xB5B9,0xDAF0,0xB5B3,0xDAF8,0xDAF1,0xDAF5,INVALC,0xDAF3, - 0xB5B6,0xDAEC,0xB5BB,0xB2CE,0xB5B7,0xB5BC, - /* Range 0x7D79 - 0x7D96, array index: 0x2C38 */ - 0xB868,0xDF5D,0xDF5F,0xDF61,0xDF65,INVALC,0xDF5B,0xDF59, - 0xB86A,INVALC,0xDF60,0xDF64,0xDF5C,0xDF58,INVALC,0xDF57, - INVALC,INVALC,INVALC,0xDF62,0xDF5A,0xDF5E,0xB86B,INVALC, - 0xB869,0xDF66,0xB867,0xDF63,INVALC,0xE372, - /* Range 0x7D9C - 0x7DCE, array index: 0x2C56 */ - 0xBAEE,0xE36A,0xBD78,0xE374,0xBAF1,0xE378,0xBAF7,0xE365, - INVALC,INVALC,0xE375,0xE362,INVALC,0xE377,0xE366,INVALC, - 0xBAFE,0xBAFB,0xE376,0xE370,0xBAED,0xBAF5,0xBAF4,INVALC, - 0xBAF3,0xBAF9,INVALC,0xE363,0xBAFA,0xE371,0xBAF6,0xBAEC, - 0xE373,0xBAEF,0xBAF0,0xBAF8,0xE368,0xE367,0xE364,INVALC, - 0xE36C,0xE369,0xE36D,0xBAFD,INVALC,0xE379,0xBAF2,0xE36E, - 0xE36F,INVALC,0xE36B, - /* Range 0x7DD7 - 0x7DFB, array index: 0x2C89 */ - 0xE6E7,0xBD70,0xBD79,0xBD75,0xE6E4,INVALC,0xBD72,0xBD76, - 0xE6F0,0xBD6C,0xE6E8,INVALC,0xBD74,INVALC,INVALC,0xE6EB, - 0xE6E6,0xBD73,0xBD77,0xE6E5,INVALC,0xBD71,INVALC,0xE6EF, - 0xBD6E,0xE6EE,0xE6ED,0xBD7A,0xE572,0xBD6D,INVALC,0xE6EC, - 0xE6E3,INVALC,0xBD7B,0xE6EA,0xBD6F, - /* Range 0x7E08 - 0x7E49, array index: 0x2CAE */ - 0xBFA2,0xBFA7,0xBF7E,0xEAD8,0xEACF,0xEADB,0xEAD3,0xEAD9, - 0xBFA8,0xBFA1,0xEACC,0xEAD2,0xEADC,0xEAD5,0xEADA,0xEACE, - INVALC,INVALC,0xEAD6,0xBFA3,0xEAD4,0xBFA6,0xBFA5,0xEAD0, - 0xEAD1,0xEACD,0xEAD7,0xBFA4,0xEADE,0xEADD,INVALC,INVALC, - INVALC,0xEDDA,0xEDD6,0xC15F,INVALC,0xEDD0,0xC159,0xC169, - 0xEDDC,0xC161,0xC15D,0xEDD3,0xC164,0xC167,0xEDDE,0xC15C, - 0xEDD5,0xC165,0xEDE0,0xEDDD,0xEDD1,0xC160,0xC15A,0xC168, - 0xEDD8,0xC163,0xEDD2,0xC15E,0xEDDF,0xC162,0xC15B,0xEDD9, - 0xC166,0xEDD7, - /* Range 0x7E50 - 0x7E63, array index: 0x2CF0 */ - 0xF06E,0xF074,0xC2B9,0xF077,0xC2B4,0xC2B5,0xF06F,0xF076, - 0xF071,0xC2BA,0xC2B7,INVALC,0xF06D,INVALC,0xC2B6,0xF073, - 0xF075,0xC2B8,0xF072,0xF070, - /* Range 0x7E68 - 0x7E9C, array index: 0x2D04 */ - 0xF2B8,0xC3B7,0xC3B8,0xC3B4,INVALC,0xC3B5,INVALC,0xF2B4, - 0xF2B2,INVALC,0xF2B6,0xC3BA,0xF2B7,0xF2B0,0xF2AF,0xF2B3, - 0xF2B1,0xC3B6,0xF2B5,0xF4AC,0xC47E,0xC47D,0xF4AD,INVALC, - 0xF4AF,0xF4AE,0xC4A1,INVALC,INVALC,INVALC,0xF5EB,0xF5E8, - 0xF5E9,INVALC,0xF5E7,0xF5EA,0xC4F2,0xF5EC,INVALC,0xC4F1, - INVALC,0xF742,INVALC,0xC5D5,0xC5D7,0xF7EE,0xC5D6,0xF8B9, - 0xF940,0xF942,0xF8FE,0xF941,0xC66C, - /* Range 0x7F36 - 0x7F45, array index: 0x2D39 */ - 0xA6CE,INVALC,0xACFB,0xD26F,0xAFCA,INVALC,INVALC,0xB2DA, - 0xDAFC,0xDAFD,INVALC,INVALC,INVALC,0xEADF,0xC16A,0xEDE1, - /* Range 0x7F48 - 0x7F55, array index: 0x2D49 */ - 0xC2BB,INVALC,0xF2BA,0xF2B9,0xC4A2,0xF5ED,INVALC,0xF743, - 0xC5F8,0xCA49,INVALC,INVALC,0xAAC9,0xA875, - /* Range 0x7F5B - 0x7F7F, array index: 0x2D57 */ - 0xD360,0xD35B,0xD35F,0xD35D,0xAFCB,0xD35E,0xD35C,INVALC, - 0xD6F1,INVALC,0xDAFE,0xDB40,0xDF69,0xDF6A,0xB86E,0xB86F, - 0xDF68,0xDF6B,0xDF67,0xB86D,INVALC,0xBB40,INVALC,0xB870, - 0xE37A,INVALC,0xBD7C,0xE6F1,0xBD7D,INVALC,0xBFA9,0xEAE2, - 0xEAE0,0xEAE1,0xEDE4,0xEDE3,0xEDE2, - /* Range 0x7F83 - 0x7FD7, array index: 0x2D7C */ - 0xF2BB,INVALC,0xC3B9,0xF2BC,0xF744,0xC5F9,0xF8BA,0xA6CF, - 0xAACB,0xAACA,0xD04F,0xACFC,INVALC,INVALC,0xD04E,0xD362, - INVALC,0xAFCC,0xD6F2,0xD361,INVALC,INVALC,INVALC,0xB2DC, - 0xD6F5,0xD6F3,0xD6F4,0xB2DB,INVALC,0xDB42,0xDB43,0xDB41, - INVALC,0xB873,0xDF6D,0xDF6C,0xDF6E,0xB872,0xB871,INVALC, - INVALC,0xE6F2,0xE6F4,INVALC,0xBD7E,0xE6F3,0xEAE3,0xBFAA, - 0xF079,INVALC,0xF078,0xC3BB,0xF2BD,0xC3BD,0xC3BC,0xF4B0, - 0xF5EE,0xC4F3,0xA6D0,0xD050,0xACFD,0xD365,0xAFCE,0xD364, - 0xD363,INVALC,0xAFCD,INVALC,0xD6FB,INVALC,0xD6FD,0xD6F6, - 0xD6F7,0xB2DD,0xD6F8,0xB2DE,0xD6FC,0xD6F9,0xD6FA,0xB2DF, - INVALC,0xB5BE,0xB5BF,INVALC,0xDB44, - /* Range 0x7FDB - 0x8021, array index: 0x2DD1 */ - 0xDF6F,0xDF70,INVALC,0xE37E,0xBB43,0xBB41,0xBB42,0xE37B, - 0xE37C,INVALC,0xE37D,0xE6F9,INVALC,0xE6FA,0xBDA1,0xE6F7, - 0xE6F6,0xE6F8,0xE6F5,0xBFAD,0xEAE4,0xBFAB,0xBFAC,0xEDE6, - 0xC16B,0xEDE5,0xEFA8,INVALC,0xF07A,0xF07B,0xC2BC,INVALC, - 0xC2BD,0xC16C,0xF2BE,0xF2BF,0xF4B1,0xC4A3,0xA6D1,INVALC, - 0xA6D2,0xACFE,0xAACC,0xAFCF,0xD051,INVALC,INVALC,INVALC, - 0xB5C0,0xA6D3,0xAD41,0xD052,0xD053,0xAD40,0xAD42,0xA6D4, - INVALC,0xD054,0xAFD1,0xD366,0xAFD3,0xAFD0,0xAFD2,INVALC, - 0xD741,0xB2E0,INVALC,0xD740,0xD6FE,INVALC,0xDF71, - /* Range 0x8026 - 0x802C, array index: 0x2E18 */ - 0xBDA2,INVALC,0xBFAE,0xEAE6,0xEAE5,INVALC,0xEDE7, - /* Range 0x8033 - 0x803F, array index: 0x2E1F */ - 0xA6D5,0xCB73,0xCDAA,0xAD43,0xD055,INVALC,0xD368,INVALC, - INVALC,INVALC,0xAFD4,0xD367,0xAFD5, - /* Range 0x8046 - 0x804A, array index: 0x2E2C */ - 0xB2E2,0xD742,0xD744,INVALC,0xB2E1, - /* Range 0x804F - 0x8052, array index: 0x2E31 */ - 0xDB46,0xDB47,0xDB45,0xB5C1, - /* Range 0x805A - 0x805E, array index: 0x2E35 */ - 0xBB45,INVALC,0xE3A3,0xE3A2,0xBB44, - /* Range 0x806F - 0x807F, array index: 0x2E3A */ - 0xC170,0xC16F,0xC16D,0xC16E,0xC171,INVALC,0xF07C,0xC2BF, - 0xC2BE,0xF2C0,0xF4B2,INVALC,INVALC,INVALC,0xC5A5,0xC5A4, - 0xA6D6, - /* Range 0x8082 - 0x80B5, array index: 0x2E4B */ - 0xD1FB,INVALC,0xB877,0xB5C2,0xB876,0xBB46,INVALC,0xA6D7, - 0xC9A9,0xA6D8,0xA6D9,INVALC,INVALC,0xCDAB,0xCB76,INVALC, - 0xCB77,0xA877,INVALC,0xCB74,0xA876,INVALC,0xA879,0xCB75, - 0xA87B,0xA87A,0xCB78,0xA878,INVALC,INVALC,INVALC,0xAAD1, - 0xAACF,0xCDAD,INVALC,0xAACE,INVALC,INVALC,INVALC,0xAAD3, - 0xAAD5,0xAAD2,INVALC,0xCDB0,0xCDAC,0xAAD6,INVALC,0xAAD0, - 0xA87C,INVALC,0xAAD4,0xCDAF, - /* Range 0x80C2 - 0x80E6, array index: 0x2E7F */ - 0xD05B,0xAD47,0xAD48,0xD05D,INVALC,0xD057,0xD05A,0xD063, - 0xD061,INVALC,0xAD49,0xD067,0xAD4C,0xD064,0xD05C,0xD059, - INVALC,INVALC,0xDB49,0xD062,0xAD44,0xD065,0xD056,0xD05F, - 0xAD46,0xAD4B,0xD060,0xAD4F,0xAD4D,INVALC,0xD058,0xAD4A, - INVALC,0xD05E,0xAD4E,0xAD45,0xD066, - /* Range 0x80ED - 0x810A, array index: 0x2EA4 */ - 0xAFDA,INVALC,0xAFE3,0xAFD8,0xAFD6,0xD36A,0xAFDE,0xAFDB, - 0xD36C,INVALC,INVALC,0xAFDD,0xD36B,0xD369,0xD36E,0xAFE2, - 0xAFE0,0xDB48,INVALC,0xD36F,0xD36D,0xAFD7,INVALC,INVALC, - 0xAFD9,0xAFDC,INVALC,0xAFDF,INVALC,0xAFE1, - /* Range 0x8115 - 0x8130, array index: 0x2EC2 */ - 0xD74E,0xB2E4,INVALC,0xD745,0xD747,INVALC,0xD748,INVALC, - 0xD750,0xD74C,0xD74A,INVALC,0xD74D,0xD751,0xB2E5,0xB2E9, - 0xD746,INVALC,0xD74F,INVALC,0xB2E7,INVALC,0xB2E6,0xD74B, - 0xD749,INVALC,0xB2E3,0xB2E8, - /* Range 0x8143 - 0x8155, array index: 0x2EDE */ - 0xDB4A,0xDFA1,INVALC,0xB5C9,0xDB4E,INVALC,INVALC,0xDB4B, - 0xB5C5,0xB5CB,0xDB50,0xB5C7,0xDB4D,0xBB47,0xB5C6,0xDB4C, - 0xB5CC,0xB5C4,0xB5C3, - /* Range 0x815E - 0x817A, array index: 0x2EF1 */ - 0xDF7B,INVALC,0xDF73,0xDFA2,0xDF78,INVALC,0xDF72,0xB87B, - 0xB8A3,0xDF7D,INVALC,0xDF76,INVALC,0xB87E,INVALC,INVALC, - 0xB87C,0xDF7E,0xB879,0xB878,0xDF79,0xB87D,0xB5CD,INVALC, - 0xDF7C,0xDF74,0xB87A,0xB8A1,0xB8A2, - /* Range 0x817F - 0x818F, array index: 0x2F0E */ - 0xBB4C,0xBB48,INVALC,0xBB4D,0xE3A6,INVALC,INVALC,0xE3A5, - 0xE3A7,0xBB4A,0xE3A4,0xBB4B,0xE3AA,0xE3A9,0xE3A8,INVALC, - 0xBB49, - /* Range 0x8195 - 0x81D2, array index: 0x2F1F */ - 0xE741,INVALC,0xE744,0xBDA8,0xE743,0xBDA7,0xBDA3,0xBDA4, - 0xBDA5,0xE740,0xE6FE,0xBDA6,INVALC,0xE742,0xE6FD,INVALC, - INVALC,0xEAE9,0xEAF3,0xBFB1,0xBFB0,INVALC,0xEAED,0xEAEF, - INVALC,0xEAEA,INVALC,0xEAEE,0xEAE8,0xEAF1,0xBFAF,0xEAF0, - 0xEAEC,INVALC,0xEAF2,INVALC,0xEAEB,0xC174,0xEDE8,0xEDEE, - 0xC178,0xC17A,0xC177,0xC176,INVALC,0xC175,0xC173,0xEDE9, - 0xEDEC,0xC172,0xEDED,INVALC,0xC179,0xEDEB,INVALC,0xEDEA, - 0xC2C0,INVALC,0xC2C1,0xF0A1,0xF07D,0xF07E, - /* Range 0x81D5 - 0x8216, array index: 0x2F5D */ - 0xF2C2,INVALC,0xF2C1,0xC3BE,0xF4B4,0xC4A4,0xF4B3,INVALC, - 0xF5F0,0xF745,0xC5A6,0xF943,0xF944,0xC5D8,0xA6DA,INVALC, - 0xAAD7,0xDB52,0xBB4E,0xC17B,0xEDEF,0xA6DB,INVALC,0xAFE5, - 0xAFE4,0xDB53,INVALC,INVALC,INVALC,0xEAF4,0xA6DC,0xAD50, - INVALC,INVALC,0xDB54,0xDB55,0xDB56,0xBB4F,0xBFB2,0xA6DD, - INVALC,0xAAD8,0xD068,0xAFE6,0xD370,0xB2EA,INVALC,0xDB57, - 0xB8A4,INVALC,0xBB50,0xBFB3,0xC17C,0xC2C2,0xF4B5,0xA6DE, - 0xAAD9,INVALC,INVALC,0xAFE7,0xD752,0xB5CE,INVALC,0xBB51, - 0xE3AB,0xE745, - /* Range 0x821B - 0x8222, array index: 0x2F9F */ - 0xA6DF,0xB5CF,0xDFA3,0xBB52,0xA6E0,0xCDB1,0xD069,0xAD51, - /* Range 0x8228 - 0x822C, array index: 0x2FA7 */ - 0xAFEA,INVALC,0xAFE8,0xAFE9,0xAFEB, - /* Range 0x8232 - 0x8285, array index: 0x2FAC */ - 0xD757,0xD754,0xD756,0xB2EB,0xB2ED,0xB2EC,0xD753,0xB2EE, - 0xD755,INVALC,0xDB58,0xDB59,INVALC,0xDB5A,0xDFA6,INVALC, - 0xDFA7,INVALC,0xDFA5,0xDFA8,INVALC,0xB8A5,INVALC,0xDFA4, - INVALC,0xBB53,INVALC,INVALC,0xE74A,0xE746,0xE749,0xE74B, - 0xE748,0xE747,INVALC,0xEAF5,0xEAF6,0xEAF7,0xBFB4,0xBFB5, - 0xEDF1,0xEDF0,0xEDF2,INVALC,0xF0A3,0xF0A2,INVALC,0xF2C4, - INVALC,0xF2C5,0xF2C3,INVALC,0xC4A5,INVALC,0xF4B6,0xF4B7, - INVALC,0xF746,0xF7EF,0xF8BB,0xA6E1,0xA87D,INVALC,0xC17D, - 0xA6E2,INVALC,0xD758,0xDB5B,INVALC,0xC641,0xCA4A,INVALC, - INVALC,INVALC,0xCA4B,0xCA4D,0xA6E3,0xCA4E,0xCA4C,INVALC, - INVALC,0xCBA2,0xCBA3,0xCB7B, - /* Range 0x828A - 0x82C3, array index: 0x3000 */ - 0xCBA1,0xA8A1,INVALC,0xA8A2,0xCB7C,0xCB7A,0xCB79,0xCB7D, - 0xA87E,0xCB7E,0xD06A,INVALC,INVALC,INVALC,0xCDB6,0xAADC, - 0xCDB5,0xCDB7,INVALC,0xAADB,0xCDBC,0xAADF,0xCDB2,0xCDC0, - 0xCDC6,0xAAE6,0xCDC3,0xAAE3,INVALC,0xCDB9,0xCDBF,0xCDC1, - INVALC,0xCDB4,0xAAE2,0xAADD,0xCDBA,0xAAE4,0xAAE7,0xAAE1, - INVALC,0xAADA,0xCDBE,0xCDB8,0xCDC5,0xAAE9,0xAAE5,0xAAE0, - 0xCDBD,0xAFEC,0xCDBB,0xAADE,0xAAE8,INVALC,0xCDB3,INVALC, - 0xCDC2,0xCDC4, - /* Range 0x82D1 - 0x82FB, array index: 0x303A */ - 0xAD62,0xAD5C,0xAD64,0xAD61,0xD071,0xD074,0xAD5D,INVALC, - 0xD06B,INVALC,0xAD56,0xAD60,INVALC,0xAD63,0xAD65,0xD0A2, - 0xD077,INVALC,0xAD55,0xD0A1,0xAD59,0xAD57,0xAD52,0xD06F, - INVALC,0xD07E,0xD073,0xD076,0xD0A5,INVALC,0xAD66,0xD07D, - 0xAD5E,0xD078,0xD0A4,0xD075,0xD079,0xD07C,INVALC,INVALC, - 0xD06D,0xD0A3,0xD07B, - /* Range 0x82FE - 0x830D, array index: 0x3065 */ - 0xD06C,INVALC,0xD070,0xAD5F,0xAD5A,0xAD53,0xAD58,0xAD54, - 0xAD67,0xD06E,0xD3A5,0xAD5B,INVALC,INVALC,0xD07A,0xCE41, - /* Range 0x8322 - 0x8356, array index: 0x3075 */ - 0xD37E,INVALC,0xD3A9,0xD378,0xD37C,0xD3B5,0xAFFD,0xD3AD, - 0xD3A4,0xAFED,0xD3B3,0xD374,INVALC,0xD3AC,INVALC,0xAFFC, - 0xAFF7,0xD373,0xAFF5,0xAFF4,0xAFF9,0xD3AB,0xAFF1,0xAFF8, - 0xD072,0xDB5C,0xD3A6,INVALC,INVALC,0xD37A,0xAFFB,0xD37B, - 0xD3A1,0xAFFE,0xD375,0xD3AF,INVALC,0xD3AE,0xD3B6,0xAFF3, - 0xAFF0,0xD3B4,0xD3B0,0xD3A7,0xD3A2,0xAFF6,0xAFF2,0xD377, - 0xAFEE,0xD3B1,0xAFEF,INVALC,0xD379, - /* Range 0x8373 - 0x83B0, array index: 0x30AA */ - 0xD75E,0xD760,0xD765,0xD779,0xB2FC,0xB2F2,INVALC,0xD75D, - 0xB2FD,0xB2FE,0xD768,0xD76F,0xD775,INVALC,0xD762,INVALC, - 0xD769,INVALC,INVALC,0xB340,0xD777,0xD772,0xB2FA,0xB2F8, - 0xD76E,0xD76A,0xD75C,0xB2EF,0xD761,0xD759,INVALC,0xB2F7, - 0xB2F9,0xD766,0xD763,0xB2F4,0xD773,0xB2F1,0xD764,0xD77A, - 0xD76C,INVALC,0xD76B,0xB2F0,INVALC,0xB2FB,INVALC,0xB2F3, - 0xD75A,0xD75F,0xD770,0xD776,0xB341,0xD75B,0xD767,0xD76D, - 0xB2F6,INVALC,INVALC,0xD778,0xD771,0xD774, - /* Range 0x83BD - 0x8413, array index: 0x30E8 */ - 0xB2F5,INVALC,0xDB6C,0xDB60,0xB5D7,0xDB7D,0xDBA7,0xDBAA, - 0xB5D5,0xDB68,0xDBA3,0xDB69,0xDB77,0xB5E2,0xDB73,0xB5DF, - INVALC,0xDB74,0xDB5D,INVALC,0xDBA4,INVALC,INVALC,0xB5E8, - 0xDBA1,0xDB75,0xDBAC,0xDB70,0xDFC8,INVALC,0xDBAF,0xB5E6, - 0xDB6E,0xDB7A,0xB5E9,0xB5D4,0xDB72,0xDBAD,0xDB6B,0xDB64, - 0xDB6F,INVALC,0xDB63,0xDB61,0xB5D0,0xDBA5,0xDB6A,0xDBA8, - INVALC,0xDBA9,0xB5D8,0xB5DD,0xB5D9,0xB5E1,0xDB7E,0xB5DA, - 0xDB76,0xDB66,INVALC,0xB5D2,0xDB5E,0xDBA2,0xDBAB,0xDB65, - 0xB5E0,0xDBB0,0xDB71,INVALC,0xDB6D,INVALC,0xB5D1,0xB5E5, - INVALC,0xDB7C,0xB5E7,INVALC,0xDB78,0xB5DC,0xB5D6,0xB5DE, - 0xB5D3,0xB5E4,0xDB79,0xDB67,0xDB7B,0xDB62,0xDBA6, - /* Range 0x8429 - 0x847E, array index: 0x313F */ - 0xDFC7,INVALC,0xDFDD,0xB855,0xDFCC,INVALC,0xDFCA,0xDFB5, - 0xB8A9,0xDFC5,0xDFD9,0xDFC1,0xB8B1,0xDFD8,0xDFBF,0xB5E3, - 0xDFCF,0xDFC0,0xDFD6,0xB8B0,0xB8A8,INVALC,0xDFAA,0xDFB2, - INVALC,0xDFCB,0xDFC3,0xDFDC,0xDFC6,0xB8B6,0xDFD7,INVALC, - 0xB8AD,INVALC,0xDFC9,0xDFD1,0xDFB6,0xDFD0,INVALC,0xDFE1, - 0xDFB1,0xDFD2,INVALC,0xDFDF,INVALC,0xDFAB,0xB5DB,INVALC, - 0xDFB9,0xDFB8,0xB8AF,INVALC,0xDFBC,0xDFBE,0xDFCD,0xDFDE, - 0xB8B2,INVALC,0xB8B3,INVALC,0xDFB0,0xB8AB,0xDFB4,0xDFDA, - 0xB8B4,INVALC,0xB8AC,0xB8AE,0xB8B5,0xDFE0,0xDFD3,0xDFCE, - INVALC,INVALC,0xDFBB,0xDFBA,0xB8AA,0xDFAC,0xB8A7,0xDFC4, - 0xDFAD,0xDFC2,INVALC,INVALC,0xDFB7,0xDFDB, - /* Range 0x848D - 0x8491, array index: 0x3195 */ - 0xDFAF,0xDFD5,0xDFAE,0xBB60,0xE3D3, - /* Range 0x8497 - 0x84D7, array index: 0x319A */ - 0xE3AC,0xE3CA,0xBB58,0xE3BB,0xE3C5,0xBB5B,0xE3BE,0xBB59, - 0xE3AF,0xE3CD,0xE3AE,0xE3C1,INVALC,0xE3AD,INVALC,INVALC, - 0xE3BF,0xE3C8,0xE3C6,0xE3BA,0xE3B5,0xE3B3,INVALC,0xE3B4, - 0xE3C7,0xE3D2,0xE3BC,0xBB5A,INVALC,0xE3B7,INVALC,0xE3CB, - INVALC,0xBB5D,0xE3B6,0xE3B0,0xE3C0,0xBB61,INVALC,INVALC, - 0xBB55,0xBB5E,0xE3B8,0xE3B2,INVALC,0xBB57,0xDFD4,0xBB56, - 0xE3C3,INVALC,0xBB54,0xBB63,0xBB5C,0xE3C4,0xE3B9,0xE3B1, - 0xE3CC,0xE3BD,0xBB62,0xE3D0,0xBB5F,0xE3CF,INVALC,0xE3C9, - 0xE3CE, - /* Range 0x84E7 - 0x8531, array index: 0x31DB */ - 0xE773,0xE774,0xE767,0xE766,0xE762,0xBDB4,INVALC,0xBDAC, - 0xE776,0xE775,0xDFA9,0xE75F,0xE763,0xE75D,INVALC,0xE770, - 0xE761,INVALC,0xE777,0xE75A,0xE758,0xE764,0xE76E,0xE769, - 0xBDB6,0xE74F,INVALC,0xE76D,INVALC,INVALC,INVALC,0xBDB7, - 0xDFBD,0xE75B,0xE752,0xE755,0xE77B,0xE75C,0xE753,0xE751, - 0xE74E,INVALC,0xBDB0,0xE765,0xBDAF,0xBDB3,0xE760,0xE768, - 0xBDA9,0xE778,0xE77C,0xBDAB,INVALC,0xE757,0xE76B,0xE76F, - 0xE754,0xE779,0xBDB2,INVALC,0xBDB1,0xE74C,0xBDB5,0xE772, - 0xE756,0xE76A,0xE750,0xE75E,0xE759,0xBDAD,0xBDAE,0xE76C, - 0xE77D,0xE77A,0xE771, - /* Range 0x853D - 0x854E, array index: 0x3226 */ - 0xBDAA,0xEB49,INVALC,0xEB40,0xEB43,INVALC,0xBFBB,0xEB45, - 0xEAF9,0xEB41,0xEB47,0xBFB8,0xBFBC,0xBFB6,INVALC,INVALC, - 0xEAFB,0xEB4C, - /* Range 0x8551 - 0x856E, array index: 0x3238 */ - 0xEB46,INVALC,0xEAFC,0xEB55,0xEB4F,0xEAF8,0xEE46,0xEAFE, - 0xBFB7,INVALC,0xEB4A,INVALC,0xEB54,0xBFBF,INVALC,0xEB51, - 0xEAFD,0xEB44,0xEB48,0xEB42,0xEB56,0xEB53,0xEB50,0xBFB9, - 0xBFBA,0xBFBE,0xEAFA,0xEB57,0xBFBD,0xEB4D, - /* Range 0x8575 - 0x85AA, array index: 0x3256 */ - 0xEB4E,0xEE53,0xEE40,0xEE45,0xEE52,0xEE44,0xEDFB,0xEE41, - INVALC,0xC1A2,INVALC,0xEDF4,0xEE4D,0xEE4F,0xEDF3,0xC1A1, - 0xEE51,0xEE49,0xC1A8,0xEE50,0xEE42,0xC1AA,0xEDF9,0xEB52, - 0xEE4A,0xEE47,0xEDF5,0xEE55,0xC1A4,INVALC,INVALC,0xC1A5, - 0xEDF7,0xEE48,INVALC,0xEE54,0xEE4B,0xEDFD,0xC1A7,0xC1A3, - 0xEE4C,0xEDFE,0xEE56,0xEDF8,0xEE43,0xEE4E,0xEDFA,0xEDFC, - INVALC,0xC2CB,0xEDF6,0xC1A9,0xC2C4,0xC17E, - /* Range 0x85AF - 0x85D2, array index: 0x328C */ - 0xC1A6,0xC2C8,0xF0B3,INVALC,0xF0A9,0xF0A4,0xF0AA,0xF0B4, - 0xF0B8,0xF0B7,0xC2CA,0xC2C9,INVALC,INVALC,0xF0AB,0xF0B9, - 0xF0AE,0xF0A6,INVALC,0xF0A8,0xF0A7,0xF0AD,0xF0B2,0xF0A5, - 0xF0AC,0xF0B1,0xC2C7,INVALC,0xF0AF,INVALC,0xC2C5,0xF0B0, - 0xC2C3,0xC2C6,0xF2D5,0xF0B5, - /* Range 0x85D5 - 0x860C, array index: 0x32B0 */ - 0xC3C2,INVALC,0xF2CD,0xF2D1,0xF2C9,0xF2CC,INVALC,0xF2D4, - 0xC3C0,0xF2D9,0xF2D2,INVALC,0xF2CA,0xF2DA,0xF2D3,0xC3C3, - 0xC3C4,0xF2D7,INVALC,0xF2CB,0xC3BF,0xC3C1,0xF2C6,0xF2CE, - 0xF2C8,INVALC,0xF2D8,0xF2D6,0xF2C7,0xF2CF,INVALC,INVALC, - INVALC,0xF4BE,0xC3C5,0xF2D0,0xC4A7,0xC4A9,0xC4A6,INVALC, - 0xF4C3,0xF4BB,0xF4B9,0xF4BD,0xF4BA,INVALC,INVALC,0xF4BF, - 0xF4C1,0xC4AA,0xC4AC,INVALC,0xF4C0,0xC4AD,0xC4AB,0xF4C2, - /* Range 0x8617 - 0x8640, array index: 0x32E8 */ - 0xC4F4,0xF5F1,0xF5F7,0xC4F6,0xF4BC,0xF5F6,INVALC,0xF5FD, - 0xF5F4,0xF5FB,0xF5FA,0xF4B8,0xF5F5,0xF0B6,0xF5FE,0xF5F3, - 0xF5F8,INVALC,0xF5FC,0xF5F2,INVALC,0xF74A,0xC4F5,0xF5F9, - INVALC,INVALC,0xF7F4,0xF74B,0xF749,0xF747,0xF748,0xF74C, - INVALC,0xC5D9,0xF7F2,0xF7F0,0xF7F5,0xF7F3,INVALC,0xF7F6, - 0xC5DA,0xF7F1, - /* Range 0x8646 - 0x8656, array index: 0x3312 */ - 0xF945,0xF946,0xF947,INVALC,INVALC,0xF9C7,0xF9BD,0xCA4F, - 0xAAEA,INVALC,0xAD68,INVALC,0xD3B8,0xD3B7,0xB040,0xB342, - 0xD77C, - /* Range 0x865B - 0x8674, array index: 0x3323 */ - 0xB5EA,0xB8B8,INVALC,0xB8B7,0xB8B9,INVALC,0xE3D4,0xE77E, - 0xEB58,0xEB5A,0xEB59,INVALC,0xC1AB,0xEE57,0xF0BA,0xF9A5, - 0xA6E4,INVALC,0xCDC9,0xCDCA,0xCDC8,0xCDC7,0xAAEB,INVALC, - 0xD0A9,0xD0A7, - /* Range 0x8677 - 0x867C, array index: 0x333D */ - 0xD0A6,INVALC,0xAD69,0xAD6B,0xAD6A,0xD0A8, - /* Range 0x8685 - 0x86AA, array index: 0x3343 */ - 0xD3C4,0xD3C1,0xD3BF,INVALC,INVALC,0xB041,0xD3C2,0xB046, - 0xD3BC,0xD3CB,INVALC,0xD3CD,0xD3BD,INVALC,0xB043,0xD3CE, - 0xD3C9,0xD3BB,0xD3C0,0xD3CA,0xD3C6,0xD3C3,INVALC,0xB048, - 0xD3CC,0xD3BE,INVALC,INVALC,0xD3C7,0xD3B9,0xB047,0xB044, - 0xD3C5,INVALC,0xD3C8,0xD3BA,0xB045,0xB042, - /* Range 0x86AF - 0x86CC, array index: 0x3369 */ - 0xB34C,0xD7A5,0xB34B,INVALC,0xD7A8,0xD7AB,0xB348,0xB346, - 0xD77E,0xD7A9,0xD7A7,0xD7A4,0xD7AC,0xD7AD,0xD7AF,0xD7B0, - 0xD77D,0xB345,0xD7A2,0xD7A1,0xD7AE,0xB347,0xD7A3,0xB349, - 0xB344,0xD7A6,0xB34D,INVALC,0xB34A,0xD7AA, - /* Range 0x86D0 - 0x86ED, array index: 0x3387 */ - 0xB5F1,0xDBBF,INVALC,0xDBB4,0xB5EE,INVALC,0xDFE7,0xDBBD, - 0xDBB1,0xB5EC,0xDBB6,0xB5EF,0xDBBA,0xDBB8,0xB5F2,0xB5EB, - INVALC,INVALC,0xDBB2,0xDBB5,0xB5F0,INVALC,0xDBB3,INVALC, - 0xDBBE,0xDBBC,0xDBB7,0xDBB9,0xDBBB,0xB5ED, - /* Range 0x86F5 - 0x86FB, array index: 0x33A5 */ - 0xDFE8,0xDFEE,0xDFE4,0xDFEA,0xB8BA,0xDFE6,0xB8C0, - /* Range 0x86FE - 0x8713, array index: 0x33AC */ - 0xB8BF,INVALC,0xB8BE,0xDFED,0xB8C1,0xB8C2,0xDFE3,0xDFF0, - 0xB8C3,0xB8BD,0xB8BC,0xDFEC,0xB8C4,0xDFE2,0xDFE5,0xDFEF, - 0xDFEB,INVALC,INVALC,0xE3F4,0xE3E9,0xB8BB, - /* Range 0x8718 - 0x8743, array index: 0x33C2 */ - 0xBB6A,0xE3DD,0xE3F2,0xE3DE,0xBB65,INVALC,0xE3DB,INVALC, - 0xE3E4,0xE3DC,0xBB67,0xE3D6,0xE3F1,0xBB68,0xE3EE,0xE3EF, - 0xE3D7,0xBB6D,0xE3E6,INVALC,0xE3E0,0xE3E7,0xE3DA,INVALC, - 0xE3F3,0xE3EB,0xE3E5,0xE3D5,0xBB69,0xE3EC,INVALC,0xBB6C, - 0xE3F0,INVALC,0xE3EA,0xBB66,0xE3E8,INVALC,0xE3E2,0xBB64, - 0xE3D9,0xE3E1,0xE3ED,0xE3DF, - /* Range 0x874C - 0x877B, array index: 0x33EE */ - 0xBDC1,0xDFE9,0xE7B2,0xE7BB,0xE7B1,0xE7AD,0xE7AA,0xBDC2, - 0xE7A8,0xBB6B,0xE7A1,0xBDC0,0xE7A7,0xBDBF,0xE7AC,0xE7A9, - 0xE7B9,0xE7B4,0xE7AE,0xE7B3,0xBDBB,0xE7AB,0xE7BE,0xE7A2, - 0xE7A3,0xE7BA,0xBDBC,0xE7BF,0xBDBE,0xE7C0,0xE7B0,0xE3D8, - 0xE7B6,0xE7AF,0xE7B8,0xE7B5,INVALC,INVALC,INVALC,0xE7A6, - 0xBDB9,0xE7BD,0xBDBA,0xE7A4,0xBDBD,0xEB64,0xE7B7,0xE7BC, - /* Range 0x8781 - 0x8789, array index: 0x341E */ - 0xEB61,0xBDB8,0xBFC0,0xEB6B,0xEB67,INVALC,0xEB65,0xEB60, - 0xEB6F, - /* Range 0x878D - 0x87A4, array index: 0x3427 */ - 0xBFC4,INVALC,0xEB5C,0xEB68,0xEB69,0xEB5F,0xEB5E,0xEB6C, - INVALC,0xEB62,0xEB5D,0xEB63,INVALC,0xEB6E,0xEB5B,0xEB6D, - 0xEB6A,0xBFC2,0xBFC1,INVALC,INVALC,0xBFC3,0xEB66,0xF0CB, - /* Range 0x87AA - 0x87CC, array index: 0x343F */ - 0xEE59,0xC1B1,0xEE5D,0xEE5A,0xEE61,0xEE67,0xEE5C,INVALC, - 0xEE70,0xC1AE,0xEE6A,0xEE5F,0xEE6B,0xEE66,0xEE6D,0xEE5E, - 0xC1B3,0xC1B2,0xEE60,0xEE6E,0xEE58,0xEE6C,0xC1AC,INVALC, - 0xEE64,0xEE63,0xEE68,0xEE5B,0xC1B0,INVALC,0xC1B4,0xEE62, - 0xEE69,0xC1B5,0xEE65, - /* Range 0x87D1 - 0x8844, array index: 0x3462 */ - 0xC1AD,0xC1AF,0xF0C7,0xF0C5,INVALC,INVALC,0xF0CC,0xF0C9, - 0xF0CD,INVALC,0xF0BE,0xF0C6,0xF0D1,0xEE6F,0xF0C2,0xC2CF, - 0xE7A5,0xF0BD,0xF0CA,0xF0C4,0xF0C1,0xF0BC,0xF0BB,0xF0D0, - INVALC,0xF0C0,0xF0BF,0xC2CD,0xF0C8,INVALC,0xC2CC,INVALC, - INVALC,0xC2CE,0xF0C3,0xF0CF,INVALC,0xF2DE,0xF2DF,INVALC, - 0xC3C9,0xF2DC,0xC3C6,0xF2E4,INVALC,0xC3CA,0xF2E6,0xF2DB, - 0xF0CE,0xF2E8,0xF2DD,INVALC,0xC3C7,0xF2E3,INVALC,0xF2E5, - 0xF2E0,0xF2E7,0xF2E2,0xF2E1,0xC3C8,INVALC,INVALC,0xF4C5, - 0xF4C6,INVALC,0xF4C8,0xC4AE,0xC4AF,0xF4C9,0xF4C7,INVALC, - 0xF4C4,INVALC,0xF642,0xF645,0xF641,INVALC,0xC4FA,0xF643, - 0xC4F9,0xC4F8,0xC4F7,0xF644,0xF751,0xF74F,INVALC,0xF74E, - 0xF640,0xF750,0xF646,0xF74D,INVALC,0xF7F9,0xF7D7,0xF7F7, - 0xC5DB,0xF7F8,0xF7FA,INVALC,0xF8BF,0xC5FA,0xF8BE,0xF8BD, - 0xC5FB,INVALC,0xC65A,0xF96E,0xF9A7,0xF9A6,0xF9A8,0xA6E5, - 0xD0AA,INVALC,0xD3CF,0xD3D0, - /* Range 0x8848 - 0x884E, array index: 0x34D6 */ - 0xDBC0,INVALC,0xF647,0xF8C0,0xA6E6,0xAD6C,0xD0AB, - /* Range 0x8852 - 0x8883, array index: 0x34DD */ - 0xD7B1,0xB34E,INVALC,0xDBC2,0xDBC1,0xB5F3,INVALC,0xB8C5, - 0xE7C1,0xBDC3,INVALC,0xBDC4,INVALC,INVALC,INVALC,0xBFC5, - 0xC5FC,0xA6E7,INVALC,INVALC,INVALC,0xD0AC,0xAAED,0xD0AE, - 0xD0AD,0xAD6D,INVALC,0xD3D1,INVALC,0xD3D8,0xB049,0xD3D6, - 0xD3D4,INVALC,0xD3DB,0xD3D2,0xD3D3,0xB04A,INVALC,0xB04E, - INVALC,INVALC,0xD3DC,0xB04D,0xD3DA,0xD3D7,0xD3D5,0xB04B, - 0xB04C,0xD3D9, - /* Range 0x8888 - 0x88AC, array index: 0x350F */ - 0xB350,0xD7B2,INVALC,0xB355,0xD7C2,0xB354,0xD7C4,INVALC, - INVALC,0xD7B8,0xB352,0xD7C3,INVALC,0xD7B3,0xB353,0xD7BF, - 0xD7BB,0xD7BD,0xD7B7,0xD7BE,INVALC,INVALC,0xB34F,0xD7BA, - INVALC,0xD7B9,0xD7B5,INVALC,0xD7C0,INVALC,INVALC,0xD7BC, - 0xD7B4,INVALC,0xD7B6,0xB351,0xD7C1, - /* Range 0x88B6 - 0x88C2, array index: 0x3534 */ - 0xDBC9,0xDBCB,0xDBC6,0xDBC5,0xDBC3,INVALC,0xDBCA,0xDBCC, - 0xDBC8,INVALC,0xDBC7,0xB5F4,0xB5F5, - /* Range 0x88C9 - 0x88E1, array index: 0x3541 */ - 0xDBCF,0xB8CD,0xDFF2,0xDFF8,0xDFF3,0xDFF4,INVALC,0xDFF9, - INVALC,0xB8CF,INVALC,0xB8C7,0xB8CE,0xDFF1,0xDBC4,0xB8CA, - 0xB8C8,0xDFF7,0xDFF6,0xB8C9,0xB8CB,0xDFF5,0xB8C6,INVALC, - 0xB8CC, - /* Range 0x88EB - 0x891A, array index: 0x355A */ - 0xE442,0xE441,INVALC,0xE3FB,0xBB76,0xE440,0xE3F7,0xE3F8, - 0xBB6E,0xBB70,INVALC,0xE3FD,0xE3F5,0xBB72,0xBB71,0xE3F9, - 0xE3FE,0xE3FC,0xBB73,0xE3FA,INVALC,INVALC,0xDBCE,0xBB6F, - INVALC,INVALC,0xE7C2,0xE7C9,0xBDC6,INVALC,0xE7CD,0xBDCA, - 0xE7C5,0xE7C3,INVALC,0xE7CC,INVALC,0xBDC5,0xE7CB,0xBDC7, - 0xBDC8,0xE7C4,0xBDC9,0xE7CA,0xE7C6,0xE7C7,0xE7C8,0xBB75, - /* Range 0x891E - 0x8946, array index: 0x358A */ - 0xEB70,0xEB7C,INVALC,0xBFCA,0xEB77,0xEB79,INVALC,0xBFC8, - 0xEB71,0xEB75,INVALC,0xEB78,0xBFC6,0xBFC9,0xEB7B,0xEB73, - 0xEB74,0xEB7A,0xEB72,0xEB76,0xBFC7,0xEE72,INVALC,0xEE71, - 0xC1B7,0xEE77,0xC1B9,INVALC,INVALC,0xC1B6,0xEE73,0xC1BA, - 0xEE74,INVALC,INVALC,0xEE75,0xEE78,INVALC,0xC1B8,INVALC, - 0xF0D6, - /* Range 0x894B - 0x8988, array index: 0x35B3 */ - 0xF0D3,0xF0D5,INVALC,INVALC,0xF0D4,0xF0D7,0xF0D8,0xEE76, - 0xF0D2,INVALC,INVALC,0xC3CD,0xF2EC,0xF2EF,0xF2F1,0xF2EA, - 0xF2EB,0xF2EE,0xF2F0,0xC3CE,0xC3CC,0xC3CB,0xF2ED,0xF2E9, - 0xF4CA,0xC4B0,INVALC,0xF4CB,INVALC,INVALC,0xF649,0xC4FB, - 0xF64B,0xC4FC,0xF648,0xF64A,0xC5A8,INVALC,0xF752,0xC5A7, - 0xF7FD,0xF7FC,INVALC,0xF7FB,INVALC,INVALC,0xF948,0xF949, - 0xF94B,0xF94A,INVALC,0xCA50,0xA6E8,INVALC,0xAD6E,0xD7C5, - 0xB5F7,INVALC,0xDFFA,0xC2D0,INVALC,0xF2F2, - /* Range 0x8993 - 0x89A6, array index: 0x35F1 */ - 0xB356,INVALC,0xDBD0,0xB5F8,0xDBD2,0xDBD1,INVALC,INVALC, - 0xDFFB,0xB8D0,0xE443,0xE446,0xE445,INVALC,0xE444,0xE7CE, - 0xE7D0,0xE7CF,INVALC,0xBFCC, - /* Range 0x89AA - 0x89AF, array index: 0x3605 */ - 0xBFCB,INVALC,0xC1BB,0xEE79,0xEE7B,0xEE7A, - /* Range 0x89B6 - 0x89C0, array index: 0x360B */ - 0xF2F4,0xF2F3,INVALC,0xF4CC,0xC4B1,INVALC,INVALC,0xC4FD, - 0xF754,0xF753,0xC65B, - /* Range 0x89D2 - 0x8A18, array index: 0x3616 */ - 0xA8A4,0xD0AF,0xAD6F,0xD7C8,0xD7C6,INVALC,INVALC,0xD7C7, - 0xDBD4,0xDBD5,0xE043,0xDBD3,INVALC,0xDFFC,0xE041,0xE040, - 0xE042,0xB8D1,0xDFFE,0xDFFD,0xE044,INVALC,0xE449,0xE447, - INVALC,0xE448,0xE7D3,0xE7D1,INVALC,INVALC,0xE7D2,0xEB7D, - 0xEE7C,0xEE7D,0xC2D2,INVALC,0xF2F5,0xF4CD,0xC4B2,INVALC, - 0xF64C,0xF755,0xC5A9,INVALC,0xF7FE,0xF94C,0xA8A5,INVALC, - 0xAD71,0xAD72,0xD0B0,INVALC,INVALC,0xD0B1,0xAD70,INVALC, - 0xB054,INVALC,0xB052,INVALC,0xB051,0xB058,0xB050,0xB059, - 0xD3DD,0xB056,INVALC,0xB053,0xB057,0xB055,0xB04F, - /* Range 0x8A1B - 0x8A27, array index: 0x365D */ - 0xB35F,INVALC,0xB359,0xD7CC,0xB35E,INVALC,INVALC,0xB360, - 0xB35A,INVALC,0xB35B,INVALC,0xD7CA, - /* Range 0x8A39 - 0x8A5B, array index: 0x366A */ - 0xDBD8,0xB645,0xB5F9,0xB5FD,INVALC,0xB8E4,0xE049,0xDBDA, - 0xB5FE,INVALC,INVALC,0xDBDD,0xDBDE,0xB643,INVALC,0xDBE0, - INVALC,0xDBE2,INVALC,0xDBE3,0xDBD7,0xDBD6,0xDBE4,0xB642, - 0xDBE1,0xDBDF,INVALC,0xB640,0xB5FB,0xB647,0xDBDB,0xDBDC, - 0xDBD9,INVALC,0xB641, - /* Range 0x8A5E - 0x8A63, array index: 0x368D */ - 0xB5FC,INVALC,0xB5FA,0xE048,0xB8DF,0xB8DA, - /* Range 0x8A68 - 0x8A7C, array index: 0x3693 */ - 0xB8E5,0xB8D6,INVALC,0xB8D2,0xB8E1,0xB8DE,0xB8E0,INVALC, - 0xB8D7,0xB8DC,0xB8D3,0xB8D4,0xE050,0xE04D,0xE045,0xE04A, - INVALC,0xB8E2,0xE051,0xB8E3,0xB8D9, - /* Range 0x8A7F - 0x8A9A, array index: 0x36A8 */ - 0xE047,INVALC,0xE04F,0xE04B,0xE04E,0xE04C,0xB8DD,0xE046, - 0xB8D8,INVALC,INVALC,INVALC,0xE44C,0xBB78,0xBB7B,INVALC, - 0xE44E,INVALC,0xBBA5,0xE44D,0xBB7D,INVALC,0xBDCF,0xE44F, - INVALC,0xBBA4,0xE44B,0xBBA6, - /* Range 0x8AA0 - 0x8AAB, array index: 0x36C4 */ - 0xB8DB,0xBB7C,INVALC,0xBB7A,0xBB7E,0xBBA2,0xBB77,0xBBA7, - 0xBBA3,INVALC,0xBBA1,0xE44A, - /* Range 0x8AB6 - 0x8AE8, array index: 0x36D0 */ - 0xBDD9,INVALC,0xE7D6,0xBDDA,0xE7E2,0xE7DB,0xBDCB,0xE7E3, - 0xE7DD,0xBDD5,0xE7DE,INVALC,0xBDD4,0xE7E1,0xBDCE,0xE7DF, - 0xE7D5,0xBDCD,0xEBAA,0xBDD3,INVALC,0xBDD0,INVALC,0xBDD8, - INVALC,0xE7D4,INVALC,0xE7D8,0xBDCC,0xE7D7,0xE7D9,0xE7DA, - 0xBDD7,0xE7DC,0xE7E0,0xE7E4,INVALC,0xBDDB,0xBFD2,0xEBA5, - 0xEBAB,0xEBA8,0xEB7E,0xEBAC,0xEBA1,INVALC,0xEBA7,INVALC, - 0xBFCD,0xBFD3,0xEBAD, - /* Range 0x8AEB - 0x8B60, array index: 0x3703 */ - 0xBFCF,INVALC,0xBFD9,0xBFD4,0xEBAF,0xEBA9,0xBFD0,0xEBA2, - 0xBFDA,0xEBA3,0xEBA4,0xBFDB,0xBFD8,0xBDD1,INVALC,0xBFCE, - 0xEBB0,0xBFDC,INVALC,0xBFD5,0xEBAE,0xBFD1,0xBFD6,0xBFD7, - INVALC,0xC1C3,0xEEA4,0xEEAD,0xEEAA,0xEEAC,INVALC,0xC1C0, - 0xEEA5,INVALC,0xEEAB,0xC1BC,0xEEA7,0xC1C4,0xEEA3,0xEEA8, - 0xEEAF,0xEBA6,0xEEA9,0xEEA2,0xC1BD,0xEEA1,0xC1BE,0xEEB0, - 0xC1BF,0xEEAE,0xC1C2,0xEE7E,INVALC,0xC1C1,INVALC,0xEEA6, - 0xF0DC,0xF0EA,0xF0E5,0xF0E7,0xF0DB,0xC2D3,INVALC,0xF0DA, - 0xC2D6,0xC2D5,INVALC,0xF0E9,0xF0E1,0xF0DE,0xF0E4,INVALC, - 0xF0DD,INVALC,0xF0DF,0xF0E8,0xF0E6,INVALC,0xC2D4,0xF0ED, - 0xF0EB,0xF0E2,0xF0EC,0xF0E3,INVALC,0xF2F9,0xC3CF,0xF341, - INVALC,INVALC,0xF64F,0xC3D6,0xF0E0,0xF2F7,0xC3D2,0xF2F8, - 0xF2FD,INVALC,INVALC,0xC3D4,0xC3D5,0xF2F6,0xF340,0xF342, - 0xF2FA,0xF2FC,0xF2FE,0xF2FB,0xF343,0xC3D1,0xC3D7,0xC3D3, - INVALC,0xC3D0,0xF4D0,INVALC,0xC4B7,0xF4CE, - /* Range 0x8B63 - 0x8B70, array index: 0x3779 */ - 0xF4D2,INVALC,0xF4D3,0xC4B5,0xF4D4,0xF4D1,INVALC,0xF4CF, - 0xC4B8,0xC4B4,0xF4D5,INVALC,0xC4B6,0xC4B3, - /* Range 0x8B77 - 0x8B9F, array index: 0x3787 */ - 0xC540,0xF64E,0xF64D,0xF650,0xF651,INVALC,0xC541,0xF756, - 0xF75B,0xC5AA,INVALC,0xF758,INVALC,0xF757,0xF75A,0xF759, - INVALC,0xF843,INVALC,0xC5DC,0xF842,0xF840,INVALC,0xF841, - INVALC,INVALC,INVALC,0xC5FE,0xC5FD,0xF8C1,0xF8C2,0xC640, - INVALC,0xF94D,0xF94E,0xC667,INVALC,0xC66D,INVALC,0xF9A9, - 0xF9C8, - /* Range 0x8C39 - 0x8C57, array index: 0x37B0 */ - 0xD7CD,INVALC,0xD7CE,0xE052,0xE450,0xE7E5,0xC1C6,INVALC, - 0xC1C5,0xF0EE,0xF344,INVALC,0xF844,0xA8A7,0xD3DE,0xB05A, - 0xB361,0xE054,0xE053,0xBDDC,0xE7E6,0xBDDD,0xEEB1,0xC2D7, - INVALC,INVALC,INVALC,0xC676,0xA8A8,0xCDCB,0xD3DF, - /* Range 0x8C61 - 0x8CCC, array index: 0x37CF */ - 0xB648,0xB8E6,INVALC,0xE056,0xE055,0xE057,INVALC,0xE451, - 0xE452,0xBBA8,0xBFDD,0xBDDE,0xBFDE,INVALC,0xEEB5,0xEEB2, - 0xEEB4,0xEEB3,0xC1C7,INVALC,0xF0EF,0xF346,0xF345,0xCBA4, - 0xB05C,0xB05B,0xD3E0,INVALC,0xD7D1,INVALC,INVALC,0xDBE7, - 0xDBE6,0xB649,INVALC,0xE059,0xE05A,0xE058,INVALC,INVALC, - 0xB8E8,0xB8E7,INVALC,0xBBAA,0xBBA9,INVALC,0xE7E7,0xEBB3, - 0xEBB1,0xEBB2,0xBFDF,0xEEB7,0xEEB6,INVALC,0xF0F2,0xF0F1, - 0xF0F0,0xF347,INVALC,0xF9AA,0xA8A9,0xAD73,INVALC,0xAD74, - 0xB05D,0xB05E,0xD3E2,0xD3E1,0xD7D2,INVALC,0xB368,0xB366, - 0xB363,0xB367,0xB365,0xB364,INVALC,INVALC,0xB64A,0xDBEA, - INVALC,0xB8ED,0xB64C,0xB651,0xDBEC,0xB653,0xB652,0xB655, - 0xDBEB,0xDBE8,0xB64F,0xB64B,0xB64D,0xDBE9,0xB654,0xB650, - 0xB64E,0xB8EF,0xB8EE,0xB8EC,0xB8F0,INVALC,0xB8EA,0xB8EB, - INVALC,0xB8E9,INVALC,0xE05B, - /* Range 0x8CCF - 0x8D0A, array index: 0x383B */ - 0xE454,INVALC,0xBBAC,0xBBAD,0xBBAB,INVALC,0xE453,INVALC, - 0xE455,INVALC,0xE7EA,0xE7EC,INVALC,0xBDE7,0xE7ED,0xBDE0, - 0xE7E9,0xBDDF,0xBDE9,0xBDE5,0xBDE6,0xBDE2,0xE7E8,0xBDE1, - 0xE7EE,0xE7EB,INVALC,0xBDE8,INVALC,0xBDE3,0xBDE4,0xEBB5, - INVALC,0xEBB7,0xEBB6,INVALC,0xEBB8,0xBFE0,0xEBB4,INVALC, - INVALC,0xC1CB,0xEEB8,0xC1C8,0xC1CC,0xC1CA,0xC1C9,0xF0F3, - INVALC,0xF0F6,INVALC,0xF0F5,INVALC,0xF0F4,0xC2D8,0xF348, - 0xF349,0xC3D8,0xF34A,0xC3D9, - /* Range 0x8D0F - 0x8D1B, array index: 0x3877 */ - 0xC4B9,0xF652,INVALC,INVALC,0xC542,0xF653,0xF75C,0xC5AB, - 0xC5AC,INVALC,0xF845,INVALC,0xC642, - /* Range 0x8D64 - 0x8D85, array index: 0x3884 */ - 0xA8AA,INVALC,0xB36A,0xB369,0xE05C,0xE05D,INVALC,0xBBAE, - 0xEBB9,0xBDEA,0xEBBA,0xEEB9,0xA8AB,INVALC,0xD0B2,0xAD76, - 0xAD75,INVALC,0xD3E3,0xB05F,0xD3E4,0xD7D5,INVALC,0xD7D4, - INVALC,0xD7D3,INVALC,INVALC,0xDBEE,0xB658,INVALC,INVALC, - 0xDBED,0xB657, - /* Range 0x8D89 - 0x8D96, array index: 0x38A6 */ - 0xDBEF,0xB656,INVALC,0xE05F,0xE062,0xE060,0xE061,0xE065, - 0xE05E,0xE066,0xE063,0xE064,0xBBB0,0xE456, - /* Range 0x8D9B - 0x8DF4, array index: 0x38B4 */ - 0xE7F2,0xE7F0,INVALC,INVALC,0xBDEB,0xE7EF,0xE7F1,INVALC, - 0xBDEC,INVALC,0xEBBB,INVALC,0xEBBC,0xC1CD,INVALC,0xF34C, - 0xF34E,0xF34B,0xF34D,0xF4D6,0xF654,INVALC,INVALC,0xF96F, - 0xA8AC,0xAD77,0xD3E5,0xD3E7,0xD3E6,INVALC,0xD7D8,0xB36C, - INVALC,0xD7D6,INVALC,0xB36B,0xD7D9,INVALC,0xD7DA,0xD7D7, - INVALC,INVALC,0xDBFB,0xB660,0xDBF3,0xDBF9,INVALC,INVALC, - 0xB65B,0xB65E,0xDBF2,0xB659,0xDBF6,0xE06C,0xB65D,INVALC, - 0xDBF1,INVALC,0xDBF7,0xDBF4,0xDBFA,0xDBF0,0xDBF8,0xB65C, - 0xB65F,0xDBF5,0xB65A,INVALC,0xB8F2,0xE068,0xB8F1,0xE06F, - 0xE06E,0xB8F8,INVALC,0xB8F9,0xE070,0xB8F3,0xE06D,0xB8F7, - 0xE072,0xE069,INVALC,0xE06B,0xB8F4,0xE067,0xE06A,0xE071, - 0xB8F5,0xE073, - /* Range 0x8DFA - 0x8E0A, array index: 0x390E */ - 0xB8F6,INVALC,0xBBB1,0xE45B,0xE461,0xE459,0xE462,INVALC, - 0xE458,0xE45D,0xE463,0xE460,0xE45F,0xE45E,INVALC,0xE457, - 0xE45C, - /* Range 0x8E0D - 0x8E2B, array index: 0x391F */ - 0xE45A,INVALC,0xBDF1,0xBDEE,0xE7FB,0xE841,0xE843,0xE840, - 0xE7F8,0xE7FA,0xE845,0xE842,0xE7FC,0xE846,0xE7F9,0xE844, - 0xBDEF,0xBDF5,0xBDF3,0xE7F3,0xBDF4,0xBDF0,0xE7F4,0xE7F6, - 0xE7F5,0xE7FD,0xE7FE,INVALC,0xBDF2,INVALC,0xBDED, - /* Range 0x8E30 - 0x8E7C, array index: 0x393E */ - 0xEBC6,0xBFE2,INVALC,0xEBBD,0xBFE3,0xBFE6,0xEBC2,INVALC, - 0xEBBF,0xBFE5,INVALC,INVALC,0xEBC3,0xEBC4,0xEBBE,0xEBC7, - 0xEBC0,0xEBC5,0xBFE4,INVALC,0xBFE1,0xEBC1,INVALC,0xEEBF, - 0xC1D0,0xC1CE,0xC1D1,0xC1CF,0xEEBE,0xEEBB,0xEEBA,INVALC, - 0xEEBD,INVALC,INVALC,0xEEBC,0xF145,0xC2DE,0xF0FB,0xF0FA, - INVALC,0xC2D9,0xF141,0xF140,0xF0F7,0xF143,0xF0FC,0xC2DD, - 0xF0F9,0xF142,0xF0F8,0xC2DA,0xC2DC,0xF0FD,0xC2DB,0xF0FE, - INVALC,0xF144,0xF352,INVALC,0xC3DE,0xF34F,INVALC,0xF353, - INVALC,INVALC,0xC3DB,0xF351,0xC3E0,INVALC,0xC3DD,INVALC, - 0xF350,INVALC,0xC3DF,0xF354,0xC3DA, - /* Range 0x8E81 - 0x8EAC, array index: 0x398B */ - 0xC4BC,0xC4BE,INVALC,0xF4D9,0xC4BD,0xF4D7,0xC3DC,0xF4D8, - 0xC4BB,0xC543,0xC545,0xF656,0xC544,0xF655,INVALC,0xF761, - 0xC5AD,0xF760,0xC5AE,0xF75E,0xF75D,0xF762,0xF763,0xF846, - INVALC,0xF75F,INVALC,INVALC,0xF8C6,0xF8C3,0xF8C4,0xF8C5, - 0xC65C,INVALC,0xF951,0xF950,0xF94F,0xF970,INVALC,0xF9BE, - 0xF9AB,0xC66E,0xA8AD,0xB060, - /* Range 0x8EC9 - 0x8F64, array index: 0x39B7 */ - 0xF9AC,0xA8AE,0xAAEE,0xAD79,0xAD78,INVALC,0xB063,INVALC, - 0xD3E8,0xB061,0xD3E9,0xB062,INVALC,INVALC,0xD7DF,0xD7DB, - INVALC,INVALC,0xB36D,0xD7DE,0xD7DD,0xD7DC,0xB36E,0xD7E0, - 0xD7E1,INVALC,INVALC,INVALC,0xDC43,0xDC41,0xDC45,0xDC46, - 0xDC4C,INVALC,0xDC48,0xDC4A,INVALC,0xDC42,0xDBFC,INVALC, - 0xDC49,INVALC,INVALC,0xDC4B,0xDC44,0xDC47,0xDBFD,0xB662, - 0xDC40,0xDBFE,0xB661,0xB663,INVALC,0xB8FD,0xE075,0xE077, - 0xE076,0xE07B,0xB8FB,INVALC,0xE078,0xE074,0xE079,0xE07A, - 0xB8FC,0xB8FE,0xE07C,INVALC,0xE467,0xE466,INVALC,0xE464, - 0xE465,0xBBB3,0xBBB5,0xBBB2,0xBBB4,0xE84D,0xE84E,0xE849, - INVALC,0xE84A,0xBDF8,0xBDFD,0xBDF7,0xBDFE,0xBDF9,0xE84B, - INVALC,INVALC,0xE84C,0xE848,0xBE40,0xBDFB,INVALC,INVALC, - 0xBDFA,0xBDFC,INVALC,0xE847,INVALC,0xEBCA,0xBFE8,INVALC, - INVALC,0xEBCC,0xBFEA,0xEBCF,0xEBCB,0xEBC9,0xEBCE,0xBFE9, - 0xEBCD,INVALC,0xBFE7,INVALC,INVALC,0xC1D3,0xC1D6,0xEEC1, - INVALC,0xC1D4,0xEEC0,0xC1D2,0xC1D5,0xF146,0xF147,0xF148, - 0xC2E0,INVALC,0xF149,INVALC,0xC2E1,0xC3E2,0xF358,0xF359, - 0xF357,0xF356,0xF35A,0xC3E1,0xF4DD,0xF4DB,0xF4DC,0xF4DE, - 0xF4DA,0xF4DF,0xF658,INVALC,0xF659,0xF657,0xC546,0xF764, - 0xC5AF,0xF765,0xF848,0xF847, - /* Range 0x8FAD - 0x8FB4, array index: 0x3A53 */ - 0xC3E3,0xC47C,0xC547,0xA8B0,0xB064,0xB941,INVALC,0xF35B, - /* Range 0x8FC2 - 0x8FC6, array index: 0x3A5B */ - 0xA8B1,INVALC,0xA8B4,0xA8B3,0xA8B2, - /* Range 0x8FCD - 0x8FD7, array index: 0x3A60 */ - 0xCDCF,0xAAEF,INVALC,INVALC,0xAAF1,0xCDCC,0xCDCE,0xAAF0, - 0xCDD1,0xCDD0,0xCDD2, - /* Range 0x8FE0 - 0x9006, array index: 0x3A6B */ - 0xD0B6,0xD0B4,0xAD7C,0xD0B3,0xADA3,0xAD7E,0xAD7B,INVALC, - 0xADA4,INVALC,0xAD7D,0xADA2,INVALC,0xADA1,0xD0B5,INVALC, - 0xAD7A,INVALC,INVALC,INVALC,0xB06A,0xD3EB,0xD3F1,0xB067, - 0xB06E,INVALC,0xB069,0xD3EE,0xD3F0,0xB06C,0xD3EA,0xD3ED, - 0xB068,0xB065,0xD3EC,0xB06B,0xD3EF,0xB06D,0xB066, - /* Range 0x900B - 0x9024, array index: 0x3A92 */ - 0xD7E3,0xD7E6,0xB370,INVALC,0xB37A,0xB376,0xD7E4,INVALC, - INVALC,0xB37E,0xB377,0xB37C,0xB372,INVALC,0xB36F,0xB371, - 0xB37D,0xD7E5,0xB375,0xB378,0xB374,0xB379,0xD7E7,0xB37B, - 0xB373,0xD7E2, - /* Range 0x902D - 0x9044, array index: 0x3AAC */ - 0xDC4D,0xB665,0xDC4F,INVALC,0xB667,0xB669,INVALC,0xDC4E, - 0xB666,0xB66A,INVALC,0xB668,INVALC,INVALC,INVALC,0xB947, - 0xE0A3,0xB94F,0xE07E,INVALC,0xB950,0xB945,INVALC,0xE0A1, - /* Range 0x9047 - 0x90A7, array index: 0x3AC4 */ - 0xB94A,INVALC,0xE0A2,0xB943,0xB942,INVALC,0xB94D,0xB94C, - 0xB94B,0xB949,0xB94E,0xE07D,0xB944,0xB946,0xB948,INVALC, - INVALC,0xBBB8,0xBBBB,INVALC,0xBBBF,0xBBB9,0xBBBE,0xBBBC, - INVALC,0xBBB7,INVALC,0xBBBD,0xBBBA,INVALC,INVALC,INVALC, - 0xE852,0xBE43,0xBE41,INVALC,0xE853,INVALC,0xBE44,0xBE42, - 0xE851,0xE850,INVALC,0xBFF0,0xE84F,0xBFEE,0xBFED,0xEBD0, - 0xBE45,0xBFEF,0xEBD1,0xBFF2,0xEBD2,0xBFF1,0xC1D8,0xEEC3, - 0xC1D7,0xC1DC,0xC1DA,0xC1DB,0xC2E3,0xC1D9,0xEEC2,0xEBD3, - 0xC2E2,0xC2E4,INVALC,0xC3E4,0xC3E5,INVALC,0xF4E0,INVALC, - 0xC5DE,0xC5DD,0xA8B6,INVALC,INVALC,0xCA55,0xB06F,INVALC, - 0xCA52,0xCA53,0xCA51,INVALC,0xCA54,INVALC,INVALC,0xCBAA, - 0xCBA7,0xCBAC,0xCBA8,0xA8B7,0xA8BA,INVALC,0xCBA9,0xA8B9, - 0xCBAB, - /* Range 0x90AF - 0x90B8, array index: 0x3B25 */ - 0xCDD5,0xCDD7,0xAAF4,0xCDD3,0xCDD6,0xCDD4,0xAAF2,0xAAF5, - INVALC,0xAAF3, - /* Range 0x90BD - 0x90CB, array index: 0x3B2F */ - 0xD0B8,0xD0BC,0xD0B9,INVALC,0xADA7,INVALC,0xADA8,INVALC, - 0xD0BB,INVALC,0xD0BD,0xD0BF,INVALC,0xADA5,0xD0BE, - /* Range 0x90D4 - 0x915A, array index: 0x3B3E */ - 0xD7EE,0xD0BA,0xD3F2,0xD3FB,0xD3F9,0xD3F4,0xD3F5,0xD3FA, - 0xD3FC,0xB071,INVALC,0xD3F7,0xD3F3,0xB070,0xB072,0xD3F6, - 0xD3FD,0xD3F8,INVALC,INVALC,0xB3A1,0xD7F1,0xD7E9,0xD7EF, - 0xD7F0,0xB3A2,INVALC,0xD7E8,0xD7EA,0xD0B7,0xD7EC,0xD7ED, - 0xD7EB,0xB66C,INVALC,INVALC,INVALC,0xDC56,0xEBD4,0xDC57, - 0xDC54,0xB3A3,0xB66E,0xDC53,0xDC59,0xDC58,0xB66B,0xDC5C, - 0xDC52,0xDC5B,0xDC50,0xDC5A,0xDC55,0xB66D,INVALC,0xE0AA, - INVALC,0xE0A5,0xE0AB,0xE0A6,0xE0A4,0xE0A7,0xB951,INVALC, - 0xE0A9,INVALC,0xE0A8,0xB952,0xBBC1,0xBBC0,0xE46E,0xE471, - 0xE469,0xE46D,0xBBC2,0xE46C,0xE46A,0xE470,0xE46B,0xE468, - 0xE46F,INVALC,0xE859,0xBE48,0xF14A,0xE856,0xE857,0xE855, - 0xDC51,0xBE47,0xE85A,0xE854,0xBE46,0xBE49,0xE858,0xEBD5, - 0xBFF3,0xEBD6,0xEBD7,INVALC,0xEEC4,0xC1DD,0xF14B,0xF14C, - INVALC,INVALC,0xF14D,0xF35D,0xF35C,0xF4E2,INVALC,0xF4E1, - 0xF65B,0xF65C,0xF65A,0xF766,0xC5B0,0xA8BB,0xADAA,0xADA9, - 0xB075,0xB074,0xD440,0xD441,0xD3FE,INVALC,0xB073,0xD7F5, - INVALC,0xD7F6,0xD7F2,0xB3A4,0xD7F3,INVALC,0xD7F4, - /* Range 0x915F - 0x917A, array index: 0x3BC5 */ - 0xDC5F,0xDC61,0xDC5D,0xDC60,0xB66F,0xDC5E,0xB670,INVALC, - INVALC,0xDD73,0xB955,0xB954,INVALC,0xB953,INVALC,0xE0AC, - 0xE0AD,INVALC,INVALC,0xE473,0xE475,0xBBC6,0xBBC3,INVALC, - 0xBBC5,0xBBC4,0xE474,0xE472, - /* Range 0x9180 - 0x9193, array index: 0x3BE1 */ - 0xE861,0xE85E,0xE85F,0xBE4D,0xE860,0xE85B,0xE85C,0xBE4A, - INVALC,0xBE4B,0xE85D,0xBE4C,INVALC,0xEBDB,INVALC,0xEBDC, - 0xEBD9,0xEBDA,0xBFF4,0xEBD8, - /* Range 0x9199 - 0x91DD, array index: 0x3BF5 */ - 0xEEC8,0xEEC5,0xEEC7,0xC1E0,0xEECB,0xC1DF,0xEEC9,0xEECC, - 0xEECA,0xEEC6,0xC1DE,INVALC,0xF14F,INVALC,0xF150,0xF14E, - INVALC,0xF152,0xC2E5,0xC2E6,0xF35F,0xC3E7,0xF151,0xF35E, - 0xC3E6,0xF4E5,0xF4E6,0xC4BF,0xF4E4,INVALC,0xF4E3,INVALC, - 0xF65D,0xC548,INVALC,0xF849,0xF8C8,0xF8C7,INVALC,0xC643, - 0xC65D,0xF8C9,0xF971,INVALC,0xC66F,0xA8BC,0xAAF6,INVALC, - 0xB956,INVALC,0xC4C0,0xA8BD,0xADAB,0xB3A5,0xB671,0xC2E7, - 0xAAF7,INVALC,0xD0C1,0xD0C0,0xD442,INVALC,0xB078,0xB076, - 0xB07A,0xD444,INVALC,0xB079,0xB077, - /* Range 0x91E2 - 0x91EE, array index: 0x3C3A */ - 0xD443,0xB3A8,0xD7FC,INVALC,0xB3A7,0xB3A9,0xD842,0xB3AB, - 0xD7FE,0xD840,0xD7F7,0xB3AA,0xD843, - /* Range 0x91F1 - 0x91F9, array index: 0x3C47 */ - 0xD7F9,INVALC,0xD7FA,0xD7F8,0xB3A6,INVALC,0xD841,0xD7FB, - 0xD7FD, - /* Range 0x91FD - 0x921E, array index: 0x3C50 */ - 0xDC6D,INVALC,0xDC6C,0xDC6A,0xDC62,0xDC71,0xDC65,0xDC6F, - 0xDC76,0xDC6E,0xB679,INVALC,0xB675,0xDC63,INVALC,0xDC69, - 0xB677,INVALC,0xDC68,0xB678,0xB67A,0xDC6B,INVALC,0xB672, - 0xB673,0xDC77,0xDC75,INVALC,0xDC74,0xDC66,INVALC,0xDC72, - INVALC,0xB676, - /* Range 0x9223 - 0x9227, array index: 0x3C72 */ - 0xB674,0xDC73,0xDC64,0xDC67,0xDC70, - /* Range 0x922D - 0x9240, array index: 0x3C77 */ - 0xE4BA,0xE0B7,INVALC,0xE0B0,0xE0C3,0xE0CC,0xE0B3,0xB961, - INVALC,0xE0C0,0xB957,0xB959,0xB965,0xE0B1,INVALC,INVALC, - 0xB95A,0xB95C,0xB966,0xB95B, - /* Range 0x9245 - 0x925B, array index: 0x3C8B */ - 0xB964,0xE0B9,INVALC,0xE0AE,0xB962,0xE0B8,0xB95E,0xE0CA, - 0xB963,0xE0C8,0xE0BC,0xE0C6,0xB960,0xE0AF,0xE0C9,0xE0C4, - INVALC,0xE0CB,0xB958,INVALC,INVALC,0xB967,0xB95D, - /* Range 0x9260 - 0x9267, array index: 0x3CA2 */ - 0xE0BD,0xE0C1,INVALC,0xE0C5,0xB95F,0xE0B4,0xE0B2,0xE0BE, - /* Range 0x926C - 0x9272, array index: 0x3CAA */ - 0xE0BB,0xE0BA,INVALC,0xE0BF,0xE0C2,INVALC,0xE0C7, - /* Range 0x9276 - 0x928E, array index: 0x3CB1 */ - 0xE478,INVALC,0xBBC7,0xE4A4,0xE47A,0xBBCC,0xBBD0,0xE4AD, - 0xE4B5,0xE4A6,0xBBC8,INVALC,0xE4AA,0xE0B6,INVALC,0xBBC9, - 0xE4B1,0xE4B6,0xE4AE,INVALC,0xE4B0,0xE4B9,0xE4B2,0xE47E, - 0xE4A9, - /* Range 0x9291 - 0x92AC, array index: 0x3CCA */ - 0xBBD1,INVALC,0xBBCD,0xE47C,0xE4AB,0xBBCB,0xE4A5,0xBBCA, - 0xE4B3,0xE4A2,0xE479,0xBBCE,0xE4B8,INVALC,INVALC,0xE47B, - 0xE4AF,0xE4AC,0xE4A7,0xE477,0xE476,0xE4A1,0xE4B4,0xBBCF, - 0xE4B7,0xE47D,0xE4A3,0xBE52, - /* Range 0x92B2 - 0x92B7, array index: 0x3CE6 */ - 0xBE5A,0xBE55,0xE8A4,0xE8A1,0xE867,0xBE50, - /* Range 0x92C0 - 0x92E1, array index: 0x3CEC */ - 0xE865,0xBE54,0xE871,0xE863,0xE864,0xBE4E,0xE8A3,0xBE58, - 0xE874,0xE879,0xE873,0xEBEE,0xE86F,0xE877,0xE875,0xE868, - 0xE862,0xE87D,0xBE57,0xE87E,INVALC,0xE878,INVALC,0xE86D, - 0xE86B,0xE866,INVALC,INVALC,INVALC,0xE86E,0xE87B,0xE86A, - 0xE87A,0xE8A2, - /* Range 0x92E4 - 0x92F1, array index: 0x3D0E */ - 0xBE53,INVALC,0xE876,0xE87C,0xE872,0xE86C,0xBE51,INVALC, - INVALC,INVALC,0xE4A8,0xE870,0xBE59,0xE869, - /* Range 0x92F7 - 0x9339, array index: 0x3D1C */ - 0xEBF4,0xBFF7,0xEBF3,0xEBF0,0xEC44,0xBFFB,INVALC,0xEC41, - 0xEBF8,0xEC43,0xEBE9,0xEBF6,INVALC,0xBFFD,INVALC,0xEBE1, - INVALC,0xEBDF,0xEC42,INVALC,0xEC40,0xEBFE,0xEBED,0xEBEC, - 0xEBE2,0xC040,INVALC,0xEBE8,0xEBF2,0xEBFD,0xC043,0xEC45, - INVALC,0xC1E8,0xC045,0xBFFE,0xEBE6,INVALC,0xEBEF,0xEBDE, - 0xEBE0,0xBFF5,0xC042,0xBFFA,0xEBE7,0xEBF7,0xEBF1,0xC041, - 0xEBDD,0xC1E3,0xEBF9,0xEBFC,0xBFFC,INVALC,0xEBEB,0xC044, - 0xBFF9,INVALC,INVALC,INVALC,0xBFF8,0xEBF5,0xEBFB,0xBFF6, - INVALC,0xEBE4,0xEBFA, - /* Range 0x9346 - 0x9367, array index: 0x3D5F */ - 0xEBEA,0xEED2,INVALC,0xEED7,0xC1E5,0xC1E7,0xEEDD,0xC1E1, - 0xEEEC,0xEEE3,0xEED8,0xEED9,0xEEE2,INVALC,0xC1EE,0xEEE1, - 0xEED1,0xEEE0,0xEED4,0xEEED,0xC1ED,0xC1EB,0xEED5,INVALC, - 0xEEE8,INVALC,0xEEDA,0xEEE7,INVALC,0xEEE9,0xEED0,0xC1E6, - INVALC,0xEEEA, - /* Range 0x9375 - 0x9383, array index: 0x3D81 */ - 0xC1E4,0xEED6,0xEEE5,INVALC,0xEEDF,0xEBE3,0xEEE6,0xEED3, - INVALC,0xC1E9,INVALC,0xEEEB,INVALC,0xC1E2,0xEECE, - /* Range 0x9388 - 0x93B7, array index: 0x3D90 */ - 0xF160,0xF159,0xC2E9,INVALC,0xF154,0xF163,0xF15B,0xEEDC, - INVALC,0xF165,0xF155,INVALC,0xC2E8,0xF15F,0xC2EA,0xC2F2, - 0xC2F0,0xF161,0xC2F1,0xF157,INVALC,0xF158,0xF15D,0xF162, - INVALC,0xEECD,0xC2EB,0xF16A,0xF167,0xF16B,0xF15E,0xF15A, - 0xF168,0xF36A,0xF15C,INVALC,0xC2EE,INVALC,0xC2ED,0xEECF, - 0xC2EF,0xF164,0xF166,0xC2EC,0xF169,0xF153,INVALC,0xF156, - /* Range 0x93C0 - 0x93E8, array index: 0x3DC0 */ - 0xF373,INVALC,0xF363,0xC3EB,0xF371,INVALC,INVALC,0xF361, - 0xC3EC,INVALC,0xF36C,INVALC,0xF368,0xC3F1,0xF372,0xF362, - 0xF365,0xC3E9,0xF374,INVALC,0xF36D,0xF370,0xC3EF,0xC3F4, - 0xC3F2,0xF369,0xF364,INVALC,0xC3ED,0xC3EE,0xF360,0xC3EA, - INVALC,0xC3E8,0xC3F0,0xF36F,0xC3F3,INVALC,0xF36B,0xF375, - 0xC3F5, - /* Range 0x93F5 - 0x9400, array index: 0x3DE9 */ - 0xF4F3,0xF542,0xF4F5,0xF4FC,0xF366,0xF4FA,0xF4E9,0xF540, - 0xC4C3,0xF4ED,0xF4FE,0xF4F4, - /* Range 0x9406 - 0x9419, array index: 0x3DF5 */ - 0xF544,0xF4F6,INVALC,0xF4FB,0xF4FD,0xF4E7,0xF541,0xF4F2, - 0xF4F7,0xF4EB,0xF4EF,0xF543,0xF4F9,0xF4E8,0xF4EC,0xF4EE, - 0xF4F8,INVALC,0xC4C1,0xF4F1, - /* Range 0x9428 - 0x9452, array index: 0x3E09 */ - 0xF4F0,0xF661,0xF666,0xC54F,0xF668,INVALC,0xC549,INVALC, - 0xF664,0xF66A,0xC54E,0xC54A,INVALC,0xC54B,0xF660,0xF667, - 0xC54D,0xF665,0xC54C,0xF65F,0xF663,0xF662,INVALC,0xF65E, - 0xF669,INVALC,INVALC,INVALC,0xC5B1,0xF76D,0xF770,0xF76C, - 0xF76E,0xF76F,0xF769,0xF76A,0xF767,INVALC,INVALC,0xF76B, - 0xF768,0xC5B2,0xC5B3, - /* Range 0x9460 - 0x9483, array index: 0x3E34 */ - 0xC5E0,INVALC,0xF84A,0xC5DF,0xC5E1,INVALC,INVALC,INVALC, - 0xF8CB,0xF8CC,0xC644,0xF8CA,INVALC,0xF953,0xF952,0xF954, - 0xC65F,0xF955,0xC65E,0xF956,0xF972,0xF975,0xF974,0xC668, - 0xF973,INVALC,INVALC,INVALC,0xC672,0xC670,0xC671,0xC677, - 0xF9C0,0xF9C1,0xF9BF,0xF9C9, - /* Range 0x957A - 0x957D, array index: 0x3E58 */ - 0xD844,0xDC78,0xE8A5,0xF376, - /* Range 0x9588 - 0x9594, array index: 0x3E5C */ - 0xD846,0xB3AC,INVALC,0xB67D,0xDC7A,0xDC79,0xB6A3,0xB67C, - 0xDC7B,0xB67E,0xB6A2,0xB6A1,0xB67B, - /* Range 0x959B - 0x95C0, array index: 0x3E69 */ - 0xE0D0,0xE0CE,INVALC,0xE0CF,0xE0CD,INVALC,0xBBD2,INVALC, - 0xBBD5,0xBBD7,0xBBD6,INVALC,INVALC,0xBBD3,0xBBD4,INVALC, - 0xE8A7,0xE8A6,0xBE5B,0xE8A8,INVALC,0xE8A9,0xBE5C,INVALC, - INVALC,INVALC,0xEC4D,0xEC4B,0xEEF3,INVALC,0xEC49,0xEC4A, - 0xC046,0xEC46,0xEC4E,0xEC48,0xEC4C,0xEEEF, - /* Range 0x95C3 - 0x95E5, array index: 0x3E8F */ - 0xEEF1,INVALC,0xEEF2,0xC1F3,0xEEEE,0xC1F2,0xEEF0,0xC1EF, - 0xC1F0,0xC1F1,0xEC47,INVALC,INVALC,0xC2F5,0xF16E,0xF16C, - 0xF16D,0xC2F3,0xC2F6,0xC2F4,INVALC,INVALC,INVALC,0xF377, - 0xF378,0xC3F6,INVALC,0xF545,0xF547,0xF546,0xC4C4,0xC550, - 0xF66D,0xF66C,0xF66B, - /* Range 0x961E - 0x9624, array index: 0x3EB2 */ - 0xC9AA,INVALC,0xCA58,0xA6E9,0xCA56,0xCA59,0xCA57, - /* Range 0x962A - 0x9632, array index: 0x3EB9 */ - 0xA8C1,INVALC,0xA8C2,0xCBB0,0xA8BF,0xCBAF,0xCBAD,0xA8C0, - 0xA8BE, - /* Range 0x9639 - 0x9644, array index: 0x3EC2 */ - 0xCDD8,0xCDDB,0xAAFD,0xCDDA,0xCDD9,INVALC,0xAAFC,0xAAFB, - INVALC,0xAB40,0xCDDC,0xAAFE, - /* Range 0x964A - 0x9654, array index: 0x3ECE */ - 0xD0C6,0xADAE,0xADAF,0xADB0,0xD0C7,0xD0C3,0xADAD,0xD0C4, - INVALC,0xD0C5,0xD0C2, - /* Range 0x965B - 0x9664, array index: 0x3ED9 */ - 0xB0A1,0xD445,0xB0A2,0xB0A5,0xD446,INVALC,0xB07E,0xB07C, - 0xB07D,0xB0A3, - /* Range 0x966A - 0x96B4, array index: 0x3EE3 */ - 0xB3AD,0xD849,0xB3B5,0xD848,INVALC,0xD84B,0xB3B1,0xD84A, - 0xB6AB,0xB3AF,0xB3B2,0xB3AE,0xB3B3,0xB3B4,0xB3B0,INVALC, - INVALC,INVALC,0xD847,0xB6A7,0xDC7D,INVALC,0xDCA3,INVALC, - INVALC,0xDCA2,0xB6AC,0xB6A8,0xB6A9,0xDC7C,0xDC7E,0xDCA1, - 0xB6A4,0xB6A6,INVALC,0xB6AA,0xB6A5,INVALC,INVALC,0xE0D3, - 0xE0D1,0xE0D2,0xB96A,0xB96B,INVALC,0xE0D4,0xB969,0xBBD8, - INVALC,0xBBDA,0xBBD9,INVALC,0xE4BB,INVALC,INVALC,0xE4BC, - 0xE8AB,INVALC,0xE8AA,INVALC,INVALC,0xC047,0xC048,0xEC4F, - 0xC049,INVALC,0xEEF6,INVALC,0xEEF4,INVALC,0xEEF5,0xC1F4, - INVALC,0xF16F,0xC3F7, - /* Range 0x96B8 - 0x96EA, array index: 0x3F2E */ - 0xC1F5,0xAB41,INVALC,0xB0A6,0xD447,INVALC,INVALC,0xD84C, - 0xB3B6,0xB6AD,0xDCA4,0xDCA6,0xB6AF,0xB6AE,0xB6B0,0xB6B1, - 0xDCA5,0xB96E,0xB96F,0xB96D,0xBBDB,0xB96C,0xE0D5,INVALC, - INVALC,INVALC,0xBBDC,0xE8AC,0xEC50,0xC04A,0xC1F6,0xF170, - 0xF174,0xC2F9,0xF171,0xC2FA,0xC2F8,0xF175,0xC2FB,0xF173, - INVALC,0xF379,0xC2F7,0xC3F8,INVALC,0xF8CD,INVALC,INVALC, - 0xAB42,0xB3B8,0xB3B7, - /* Range 0x96EF - 0x9713, array index: 0x3F61 */ - 0xB6B2,0xDCA8,0xDCA7,0xB6B3,INVALC,INVALC,0xE0D9,0xB973, - 0xB970,0xE0D8,0xB972,0xE0D6,0xB971,INVALC,0xE0D7,INVALC, - 0xE4BD,0xBBDD,INVALC,0xE8AF,INVALC,0xBE5D,0xE8AD,0xBE5E, - 0xBE5F,0xE8AE,0xBE60,INVALC,0xEC51,INVALC,0xC04E,0xC04B, - 0xC050,0xEC53,0xC04C,0xEC52,0xC04F, - /* Range 0x9718 - 0x9732, array index: 0x3F86 */ - 0xEEF9,0xEEFB,INVALC,INVALC,0xC1F7,0xEEFA,0xC1F8,0xEEF8, - 0xEEF7,INVALC,0xF177,0xF176,0xC2FC,0xF178,0xF37E,0xC3FA, - 0xF37D,0xF37A,0xC3F9,0xF37B,0xF37C,INVALC,0xF548,0xF549, - 0xC4C5,INVALC,0xC553, - /* Range 0x9738 - 0x974B, array index: 0x3FA1 */ - 0xC551,0xC552,0xF66F,INVALC,INVALC,0xC5B4,0xC5B5,0xF771, - INVALC,INVALC,0xC645,0xF8CF,0xC647,INVALC,0xF8CE,0xF8D0, - 0xC646,0xF957,INVALC,0xF9AD, - /* Range 0x9758 - 0x9762, array index: 0x3FB5 */ - 0xE4BE,INVALC,0xE8B0,0xC051,0xC052,INVALC,0xAB44,INVALC, - 0xBE61,0xC3FB,0xADB1, - /* Range 0x9766 - 0x9785, array index: 0x3FC0 */ - 0xC053,INVALC,0xC5E2,0xADB2,0xD84D,INVALC,0xDCA9,INVALC, - 0xDCAB,INVALC,0xDCAA,INVALC,0xE0DD,0xE0DA,0xB975,INVALC, - 0xB976,0xE0DB,0xE0DC,INVALC,0xE4C0,0xE4C5,0xBBDE,0xE4BF, - 0xE4C1,0xE4C8,0xE4C3,0xE4C7,0xE4C4,0xE4C2,0xE4C6,0xBBDF, - /* Range 0x978A - 0x978F, array index: 0x3FE0 */ - 0xE8B1,0xBE63,INVALC,0xBE62,0xE8B2,0xBE64, - /* Range 0x9797 - 0x97AE, array index: 0x3FE6 */ - 0xEC55,0xC054,0xEC54,0xEEFC,INVALC,0xEEFE,0xEF41,0xEF40, - INVALC,0xC1F9,0xEEFD,0xF1A1,0xC2FD,0xF17D,0xF1A2,0xC2FE, - INVALC,0xF17B,INVALC,0xF17E,0xF17C,0xF179,0xC340,0xF17A, - /* Range 0x97C1 - 0x97E5, array index: 0x3FFE */ - 0xC5B7,INVALC,0xC5B6,0xF84F,0xF850,0xC648,0xF8D1,INVALC, - 0xC669,INVALC,0xADB3,0xB6B4,0xE4CA,0xE4C9,0xE8B5,0xE8B4, - INVALC,INVALC,0xC1FA,0xEF43,0xEF42,0xF1A5,0xF1A3,0xF1A6, - 0xF1A4,INVALC,INVALC,0xC3FC,0xF3A4,0xF3A5,0xF3A6,INVALC, - 0xF671,INVALC,0xF772,INVALC,0xF8D2, - /* Range 0x97F6 - 0x9821, array index: 0x4023 */ - 0xBBE0,INVALC,0xEC58,0xC341,0xF1A7,0xC3FD,INVALC,0xF54C, - 0xF54D,0xC554,0xF851,0xADB6,0xB3BB,0xB3BC,0xD84E,0xB6B5, - 0xB6B6,0xDCAC,0xB6B7,INVALC,0xB97A,INVALC,0xB97C,0xE0DF, - 0xE0E0,0xE0DE,0xB977,0xB978,0xB97B,0xB979,INVALC,INVALC, - 0xE4CB,0xBBE1,0xBBE2,INVALC,INVALC,0xE8BC,0xBE67,0xE8B7, - 0xE8B6,INVALC,0xE8BB,0xBE65, - /* Range 0x9824 - 0x9832, array index: 0x404F */ - 0xC05B,INVALC,0xE8B8,0xE8BD,0xE8BA,0xE8B9,INVALC,0xBE66, - INVALC,0xC059,INVALC,0xEC5A,0xC055,INVALC,0xEC5B, - /* Range 0x9835 - 0x983B, array index: 0x405E */ - 0xEC59,INVALC,0xC058,0xC056,0xC05A,INVALC,0xC057, - /* Range 0x9841 - 0x9874, array index: 0x4065 */ - 0xEF45,INVALC,0xEF4A,0xEF46,0xEF49,0xC1FB,INVALC,0xEDD4, - 0xEF48,0xEF47,INVALC,0xC344,0xC342,0xC345,0xC343,0xF1A8, - 0xF1A9,0xF1AA,0xC346,INVALC,INVALC,INVALC,0xF3AA,0xC440, - 0xF3A8,INVALC,0xC441,0xF3A7,0xF3A9,0xC3FE,0xF551,0xF54E, - INVALC,0xF54F,0xF550,0xF672,0xC556,INVALC,0xC555,INVALC, - 0xF774,0xF773,0xC5B8,INVALC,INVALC,INVALC,0xC5E3,0xC649, - 0xC660,0xF958,0xF9AE,0xF9AF, - /* Range 0x98A8 - 0x98B3, array index: 0x4099 */ - 0xADB7,0xDCAD,INVALC,INVALC,0xE0E1,0xE4CC,0xE4CD,0xBBE3, - INVALC,0xBBE4,0xE8BE,0xBE68, - /* Range 0x98B8 - 0x98C6, array index: 0x40A5 */ - 0xF1AB,INVALC,0xC347,0xF3AD,0xC442,0xF3AC,0xF3AE,0xF3AB, - 0xF675,0xF552,0xF553,INVALC,0xC4C6,INVALC,0xF674, - /* Range 0x98E7 - 0x98EF, array index: 0x40B4 */ - 0xB6B8,INVALC,0xB6BB,0xB6B9,0xDCAE,INVALC,0xB6BD,INVALC, - 0xB6BA, - /* Range 0x98F9 - 0x9935, array index: 0x40BD */ - 0xE0E3,0xE8C0,INVALC,0xB97D,0xB9A1,0xB9A2,INVALC,0xE4CF, - INVALC,0xE4CE,0xBBE5,INVALC,0xBBE6,INVALC,0xE4D0,0xE8BF, - 0xBBE8,0xBE69,INVALC,0xBBE7,INVALC,INVALC,INVALC,0xC05C, - 0xE8C1,0xBE6B,0xBE6A,0xE8C2,0xE8C5,0xE8C3,0xE8C4,0xBE6C, - INVALC,0xC061,0xC05F,INVALC,INVALC,0xC05E,0xEC5D,INVALC, - 0xC060,INVALC,INVALC,0xEC5C,0xEF4B,INVALC,0xEC5E,0xC05D, - 0xEC5F,0xEF4E,0xEF4C,0xEF4D,0xEF52,0xC34B,0xEF51,0xEF54, - 0xEF53,0xEF50,0xEF4F,INVALC,0xC1FD, - /* Range 0x993A - 0x9961, array index: 0x40FA */ - 0xF1AE,INVALC,0xF1AD,0xC34A,0xC348,0xC349,INVALC,0xF1AC, - INVALC,0xF3B1,INVALC,0xC443,INVALC,0xF3B0,0xF3AF,0xC444, - INVALC,0xF558,0xF557,INVALC,0xF555,INVALC,0xF554,0xC4C8, - 0xC4C7,0xF559,0xF776,0xC5B9,0xF677,0xC557,0xF676,0xF556, - INVALC,0xF777,0xC5E4,INVALC,0xC661,0xF959,INVALC,0xF9B1, - /* Range 0x9996 - 0x999E, array index: 0x4122 */ - 0xADBA,0xD850,0xEF55,0xADBB,INVALC,INVALC,0xE4D2,0xE4D1, - 0xEC60, - /* Range 0x99A3 - 0x99C3, array index: 0x412B */ - 0xEF56,INVALC,0xC34C,0xF3B2,0xF3B3,0xC4C9,INVALC,INVALC, - 0xF9B2,0xB0A8,0xB6BF,0xB6BE,0xE0E4,0xE0E6,0xB9A4,0xE0E5, - 0xB9A3,0xB9A5,0xE0E7,INVALC,INVALC,INVALC,0xE4D4,0xE4D6, - 0xE4D5,INVALC,0xE4D8,INVALC,INVALC,INVALC,0xBBE9,0xE4D7, - 0xE4D3, - /* Range 0x99C9 - 0x99F1, array index: 0x414C */ - 0xE8CC,INVALC,0xE8CF,0xE8D1,0xE8C7,0xE8CB,0xE8C8,0xBE6E, - 0xBE71,0xBE73,0xE8C9,0xE8CA,0xBE72,0xE8CD,0xE8D0,0xE8CE, - 0xBE74,INVALC,0xBE70,0xE8C6,0xBE6D,INVALC,0xBE6F,INVALC, - INVALC,0xC063,0xEC66,0xEC64,0xEC63,INVALC,0xEC69,INVALC, - 0xEC68,0xEC67,INVALC,0xEC62,0xC062,0xEC61,INVALC,0xEC65, - 0xC064, - /* Range 0x99F4 - 0x9A6B, array index: 0x4175 */ - 0xEF5A,INVALC,0xEF5E,0xEF5B,0xEF5D,0xEF5C,0xEF59,0xEF5F, - 0xEF62,0xEF60,0xEF61,0xC240,INVALC,0xC1FE,0xEF58,0xEF63, - 0xF1B3,0xF1B6,0xF1B8,0xF1B7,INVALC,0xF1B1,0xF1B5,0xF1B0, - INVALC,0xF1B2,0xC34D,0xF1AF,INVALC,0xF1B4,INVALC,INVALC, - 0xF3C0,0xF3B5,0xC445,INVALC,INVALC,0xC446,0xF3B4,0xF3B9, - 0xF3BF,0xF3B7,0xF3BE,INVALC,0xF3BB,INVALC,0xF3BA,0xF3BD, - 0xF3B8,0xF3B6,INVALC,0xF3BC,INVALC,0xF560,0xF55E,0xC4CA, - 0xF55D,0xF563,0xF561,INVALC,0xC4CB,0xF55C,0xF55A,INVALC, - 0xF55B,0xC4CD,0xF55F,0xC4CC,0xF562,0xF678,0xF67E,INVALC, - INVALC,0xF679,0xC55B,0xF6A1,0xC55A,0xF67D,0xF67C,0xC559, - 0xF67B,0xC558,0xF67A,INVALC,0xF77D,0xF7A1,0xF77E,INVALC, - 0xF77B,0xC5BB,0xF778,0xF77C,0xF7A3,INVALC,0xF7A2,0xF779, - 0xF77A,0xC5BA,0xF852,0xC5E7,INVALC,0xF853,0xC5E5,0xC5E6, - INVALC,INVALC,0xF8D3,0xC64A,0xF976,INVALC,0xC66A,INVALC, - 0xF9B3,0xC66B,0xF9B4,0xF9B5,0xF9C3,0xF9C2,0xC67A,0xF9CD, - /* Range 0x9AAD - 0x9AC2, array index: 0x41ED */ - 0xE0E8,INVALC,0xBBEA,0xBBEB,0xE4DA,INVALC,0xE8D2,0xEC6C, - INVALC,INVALC,0xBE75,0xC065,0xEC6A,INVALC,0xEC6D,0xC066, - INVALC,0xEF64,0xEC6B,0xF1B9,0xC34E,0xF3C1, - /* Range 0x9ACD - 0x9AD8, array index: 0x4203 */ - 0xF6A2,INVALC,0xC55C,0xF7A4,0xC5EA,0xC5BC,0xC5E8,0xC5E9, - 0xF8D4,0xC662,INVALC,0xB0AA, - /* Range 0x9AEB - 0x9AFE, array index: 0x420F */ - 0xE8D4,0xE8D3,0xC068,0xBE76,0xBE77,INVALC,0xE8D7,0xE8D6, - 0xE8D5,INVALC,INVALC,0xEC6E,0xEC71,INVALC,0xEC70,0xEC6F, - 0xC067,0xEF68,0xEF66,0xEF65, - /* Range 0x9B01 - 0x9B61, array index: 0x4223 */ - 0xEF67,INVALC,0xC34F,0xF1BC,0xF1BD,0xC350,INVALC,0xF1BB, - INVALC,0xF3C3,0xF3C2,0xF3C5,0xC447,0xF3C4,INVALC,0xF567, - 0xF569,0xF568,INVALC,INVALC,0xF6A3,0xF6A6,0xF6A4,0xF6A5, - 0xF7A5,0xC5BD,INVALC,INVALC,INVALC,0xF854,0xF855,0xF856, - INVALC,0xC64B,0xC663,0xF9B6,0xB0AB,INVALC,0xBE78,0xC069, - 0xF1BE,INVALC,0xF7A6,INVALC,INVALC,0xF9C4,0xD44A,INVALC, - 0xC67B,0xB0AC,0xEC72,INVALC,0xF1BF,INVALC,0xF3C6,INVALC, - INVALC,0xF6A7,0xF7A7,0xB0AD,INVALC,0xE4DD,0xE4DE,INVALC, - 0xBBED,0xBBEE,0xE8D9,0xBE7A,0xBE79,0xE8D8,INVALC,0xEF69, - INVALC,0xF1C0,0xF1C2,0xF1C1,0xC353,0xC352,0xC351,INVALC, - 0xC55E,0xF6A8,INVALC,0xC55D,0xF7A9,0xF7A8,INVALC,0xC64C, - 0xF8D5,0xB3BD,0xE0EA,INVALC,INVALC,INVALC,0xE4E1,0xE4DF, - 0xE4E0, - /* Range 0x9B64 - 0x9B68, array index: 0x4284 */ - 0xE8E2,INVALC,0xE8DD,0xE8DA,0xE8E1, - /* Range 0x9B6F - 0x9B88, array index: 0x4289 */ - 0xBE7C,0xE8E0,0xE8DC,INVALC,INVALC,0xE8DB,0xE8DF,0xE8DE, - 0xBE7B,INVALC,INVALC,0xEC7D,0xEC78,0xEC76,0xECA1,0xEC77, - INVALC,0xEC73,INVALC,0xEC79,INVALC,INVALC,0xEC74,0xEF72, - 0xEC75,0xECA2, - /* Range 0x9B90 - 0x9B95, array index: 0x42A3 */ - 0xEC7C,0xC06A,0xEC7B,0xEC7A,INVALC,0xEC7E, - /* Range 0x9B9E - 0x9BAF, array index: 0x42A9 */ - 0xEF6C,INVALC,0xEF74,0xEF6F,0xEF73,INVALC,0xEF71,0xEF70, - 0xEF6E,INVALC,0xEF6B,INVALC,0xC243,0xC242,INVALC,0xC244, - 0xC241,0xEF75, - /* Range 0x9BB5 - 0x9BB9, array index: 0x42BB */ - 0xF1C8,0xF1CB,INVALC,0xF1C9,0xF1CD, - /* Range 0x9BBD - 0x9BCA, array index: 0x42C0 */ - 0xF1CE,INVALC,0xF1C6,0xC358,0xF1C7,INVALC,0xF1C5,0xF1CC, - INVALC,0xF1C4,0xF1C3,0xC357,0xC355,0xC354, - /* Range 0x9BD3 - 0x9BEC, array index: 0x42CE */ - 0xF1CA,0xF3CF,0xF3D5,0xC44A,0xF3D0,INVALC,0xF3D3,0xF3D7, - 0xC44B,0xF3D2,INVALC,0xF3CA,INVALC,0xF3C9,0xF3D6,0xF3CD, - INVALC,0xF3CB,0xF3D4,0xF3CC,0xC449,0xC448,INVALC,0xF3C7, - 0xF3C8,0xF3D1, - /* Range 0x9C05 - 0x9C14, array index: 0x42E8 */ - 0xF56D,0xF573,0xF571,0xF56B,0xF576,INVALC,0xF56A,INVALC, - 0xC4CF,0xF572,INVALC,INVALC,INVALC,0xF56E,0xC4CE,0xF575, - /* Range 0x9C21 - 0x9C41, array index: 0x42F8 */ - 0xF6B1,INVALC,0xF6AD,0xF6B0,0xC560,INVALC,INVALC,0xF6AE, - 0xF6AF,INVALC,0xF6A9,0xF6AC,0xC55F,INVALC,INVALC,INVALC, - 0xC5BF,0xF7B4,0xF7AF,0xF7B3,INVALC,0xF7B6,0xF7B2,INVALC, - 0xF7AE,INVALC,0xC5C1,0xF7B1,0xF7B5,0xC5C0,0xF7AC,0xF570, - 0xF7B0, - /* Range 0x9C46 - 0x9C59, array index: 0x4319 */ - 0xF7AA,INVALC,0xF7AB,0xC5BE,0xF85A,0xF85C,0xF85F,0xF85B, - 0xF860,INVALC,0xF859,INVALC,0xF857,INVALC,0xC5EB,0xF85D, - 0xC5ED,0xC5EC,0xF858,0xF85E, - /* Range 0x9C5E - 0x9C68, array index: 0x432D */ - 0xF8DA,0xC64D,0xF8DB,INVALC,0xF8D9,0xF8D6,INVALC,INVALC, - 0xF8D8,0xF8D7,0xF95A, - /* Range 0x9C71 - 0x9C7A, array index: 0x4338 */ - 0xF979,INVALC,0xF978,0xF977,0xF97A,INVALC,0xC673,0xC674, - 0xF9CA,0xF9CE, - /* Range 0x9CE5 - 0x9CEA, array index: 0x4342 */ - 0xB3BE,0xDCAF,0xE0ED,INVALC,0xB9A7,0xE0EB, - /* Range 0x9CF1 - 0x9D09, array index: 0x4348 */ - 0xE4E2,0xE4E3,0xBBF1,0xBBEF,0xE4E4,0xBBF0,0xE8E8,INVALC, - 0xE8EB,0xE8E5,0xE8EC,0xE8E4,0xE8E6,INVALC,0xE8E7,0xE8EA, - INVALC,INVALC,0xBEA1,0xE8EF,0xE8EE,0xBE7D,0xE8E9,0xE8ED, - 0xBE7E, - /* Range 0x9D14 - 0x9D38, array index: 0x4361 */ - 0xECA7,0xC06B,INVALC,0xECA4,0xECAA,0xECAD,INVALC,0xC070, - INVALC,0xECA9,0xECA6,0xECAE,0xECA5,INVALC,0xECAB,0xC06C, - INVALC,0xECA3,0xC06D,INVALC,0xC06E,0xECA8,INVALC,INVALC, - INVALC,0xEFA9,0xEF7A,0xEF7B,0xEF7E,0xEF7C,INVALC,0xEF76, - INVALC,INVALC,0xEF79,0xEFA5,0xEF7D, - /* Range 0x9D3B - 0x9D45, array index: 0x4386 */ - 0xC245,INVALC,0xEFA7,0xEFA4,0xC246,0xEFA6,0xEF77,0xEFA2, - 0xEFA3,INVALC,0xEFA1, - /* Range 0x9D4A - 0x9D4C, array index: 0x4391 */ - 0xF1D2,0xF1D4,0xF1D7, - /* Range 0x9D4F - 0x9D61, array index: 0x4394 */ - 0xF1D1,INVALC,0xC359,0xF1D9,0xF1D0,0xF1DA,INVALC,0xF1D6, - 0xF1D8,0xF1DC,0xF1D5,0xF1DD,0xF1D3,0xF1CF,0xC35A,INVALC, - 0xF1DB,0xC35B,0xC44D, - /* Range 0x9D67 - 0x9D8C, array index: 0x43A7 */ - 0xEF78,0xF3F1,0xF3E8,0xC44F,0xF3E4,0xC450,INVALC,INVALC, - 0xF3ED,0xF3E7,0xF3DD,0xC44E,0xF3EA,0xF3E5,0xF3E6,INVALC, - 0xF3D8,0xF3DF,0xF3EE,INVALC,0xF3EB,INVALC,0xF3E3,INVALC, - 0xF3EF,0xF3DE,0xF3D9,0xF3EC,INVALC,0xF3DB,0xF3E9,0xF3E0, - 0xF3F0,0xF3DC,0xC44C,0xF3DA,0xF3E1,0xF3E2, - /* Range 0x9D94 - 0x9E1E, array index: 0x43CD */ - 0xF5A2,INVALC,0xF5AE,0xF5A5,0xF57C,0xF578,0xF5A7,0xF57E, - 0xF5A3,0xF57A,0xF5AA,0xF577,0xF5A1,0xF5A6,0xF5A8,0xF5AB, - 0xF579,INVALC,0xF5AF,0xF5B0,0xF5A9,0xF5AD,0xF5A4,INVALC, - 0xF6C1,0xF6C4,INVALC,0xC561,INVALC,0xF6C3,0xF6C8,0xF6C6, - 0xC562,0xF6BD,0xF6B3,0xF6B2,0xC564,0xF6BF,0xF6C0,0xF6BC, - 0xF6B4,INVALC,0xF6B9,0xF5AC,INVALC,0xF6B5,0xC563,0xF6BB, - INVALC,0xF6BA,INVALC,0xF6B6,0xF6C2,INVALC,0xF6B7,0xF7BB, - 0xF6C5,0xF6C7,0xF6BE,0xF6B8,0xF7BC,0xF7BE,0xF7B8,0xC5C2, - INVALC,0xF7C5,0xF7C3,0xC5C3,0xF7C2,0xF7C1,0xF7BA,0xF7B7, - 0xF7BD,0xF7C6,0xF7B9,0xF7BF,INVALC,0xF869,0xF86E,0xF864, - 0xF867,0xC5EE,0xF86B,INVALC,0xF872,0xF7C0,INVALC,0xF865, - 0xF86F,0xF873,0xF86A,0xF863,0xF86D,INVALC,0xF86C,0xF871, - 0xF870,0xF7C4,0xF868,0xF862,0xF866,0xC64E,0xC64F,0xF861, - INVALC,0xF8E6,0xF8DD,0xF8E5,0xF8E2,0xF8E3,0xF8DC,0xF8DF, - 0xF8E7,0xF8E1,0xF8E0,0xF8DE,INVALC,0xF8E4,INVALC,0xF95D, - INVALC,0xF95E,INVALC,0xF960,0xF95F,0xF962,0xF961,0xF97C, - 0xF97B,0xF9B7,INVALC,0xF9B8,INVALC,0xF9C5,0xC678,0xC67C, - INVALC,0xF9CF,0xC67D, - /* Range 0x9E79 - 0x9E94, array index: 0x4458 */ - 0xC4D0,0xF6C9,INVALC,0xC650,0xC651,INVALC,0xB3C0,0xE0EE, - INVALC,0xB9A8,0xE8F0,INVALC,INVALC,0xECB0,0xECB1,0xECAF, - 0xEFAB,0xEFAA,0xC247,0xF1DF,0xEFAC,0xF1DE,INVALC,INVALC, - 0xF3F3,0xC451,0xC453,0xF3F2, - /* Range 0x9E97 - 0x9EA9, array index: 0x4474 */ - 0xC452,INVALC,0xF5B1,0xF5B3,0xF5B2,0xF6CA,0xC565,INVALC, - 0xC5EF,0xF8E8,0xF963,INVALC,INVALC,0xF9D2,0xB3C1,INVALC, - 0xE4E5,INVALC,0xBEA2, - /* Range 0x9EB4 - 0x9EB7, array index: 0x4487 */ - 0xC454,0xC4D1,0xF7C7,0xF9CB, - /* Range 0x9ECC - 0x9EE8, array index: 0x448B */ - 0xC664,0xB6C1,0xBEA4,0xC248,0xF875,0xB6C2,INVALC,0xE8F1, - 0xC072,0xECB4,0xECB5,INVALC,0xC071,INVALC,0xEFAF,0xC24C, - 0xC24A,0xC24B,0xC249,0xF1E0,0xC35C,INVALC,INVALC,INVALC, - 0xF5B5,0xF5B4,0xF5B7,0xF5B6,0xC4D2, - /* Range 0x9EEB - 0x9F01, array index: 0x44A8 */ - 0xF6CB,INVALC,0xF6CD,0xF6CC,0xC566,0xF7C8,INVALC,0xF876, - 0xF877,0xC5F0,0xF964,0xF97D,0xC675,INVALC,0xDCB0,0xECB6, - 0xEFB0,0xF3F5,0xE0EF,INVALC,0xEFB1,0xF1E2,0xF1E1, - /* Range 0x9F06 - 0x9F38, array index: 0x44BF */ - 0xF878,0xC652,INVALC,0xF965,0xF97E,INVALC,INVALC,INVALC, - 0xB9A9,0xE8F2,0xE8F3,INVALC,0xECB7,0xB9AA,INVALC,0xC35D, - 0xF1E3,INVALC,0xF6CF,0xC567,0xF6D0,0xF6CE,0xF879,INVALC, - 0xF8E9,INVALC,0xB9AB,INVALC,0xEFB4,0xEFB3,0xEFB2,0xF1E4, - INVALC,INVALC,0xF1E8,0xF1E7,0xF1E6,0xF1E5,0xC35E,0xF3F6, - 0xF5B9,0xC4D3,0xF5B8,0xF6D1,0xF7CB,0xF7CA,0xC5C4,0xF7C9, - 0xF87C,0xF87B,0xF87A, - /* Range 0x9F3D - 0x9F4F, array index: 0x44F2 */ - 0xECB8,0xC24D,INVALC,0xF3F7,0xF3F8,0xF7CC,0xF87D,INVALC, - INVALC,0xF8EA,0xF966,0xF9B9,0xF9D4,0xBBF4,0xC24E,0xF1E9, - 0xF3F9,0xF6D2,0xF87E, - /* Range 0x9F52 - 0x9F7B, array index: 0x4505 */ - 0xBEA6,INVALC,0xEFB5,0xF1EA,0xF3FA,0xF3FB,0xF3FC,0xF5BE, - INVALC,0xF5BA,0xC568,0xF5BD,0xF5BC,0xC4D4,0xF5BB,0xC4D6, - INVALC,0xC4D5,0xF6D4,0xF6D3,0xC569,0xC56A,INVALC,INVALC, - 0xC5C6,0xF7CD,0xC5C5,INVALC,0xF8A3,0xF8A4,0xF8A2,0xF8A1, - 0xC654,INVALC,0xF8EB,0xF8EC,0xF8ED,0xC653,0xF967,0xF96A, - 0xF969,0xF968, - /* Range 0x9F90 - 0x9F95, array index: 0x452F */ - 0xC365,0xF5BF,0xF6D5,INVALC,0xC5C7,0xF7CE, - /* Range 0xFE30 - 0xFE44, array index: 0x4535 */ - 0xA14A,0xA157,INVALC,0xA159,0xA15B,0xA15F,0xA160,0xA163, - 0xA164,0xA167,0xA168,0xA16B,0xA16C,0xA16F,0xA170,0xA173, - 0xA174,0xA177,0xA178,0xA17B,0xA17C, - /* Range 0xFE49 - 0xFE6B, array index: 0x454A */ - 0xA1C6,0xA1C7,0xA1CA,0xA1CB,0xA1C8,0xA1C9,0xA15C,0xA14D, - INVALC,0xA14F,INVALC,0xA151,0xA152,0xA153,0xA154,INVALC, - 0xA17D,0xA17E,0xA1A1,0xA1A2,0xA1A3,0xA1A4,0xA1CC,0xA1CD, - 0xA1CE,0xA1DE,0xA1DF,0xA1E0,0xA1E1,0xA1E2,INVALC,INVALC, - 0xA24C,0xA24D,0xA24E, - /* Range 0xFF01 - 0xFF3C, array index: 0x456D */ - 0xA149,INVALC,0xA1AD,0xA243,0xA248,0xA1AE,INVALC,0xA15D, - 0xA15E,0xA1AF,0xA1CF,0xA141,0xA1D0,0xA144,0xA241,0xA2AF, - 0xA2B0,0xA2B1,0xA2B2,0xA2B3,0xA2B4,0xA2B5,0xA2B6,0xA2B7, - 0xA2B8,0xA147,0xA146,0xA1D5,0xA1D7,0xA1D6,0xA148,0xA249, - 0xA2CF,0xA2D0,0xA2D1,0xA2D2,0xA2D3,0xA2D4,0xA2D5,0xA2D6, - 0xA2D7,0xA2D8,0xA2D9,0xA2DA,0xA2DB,0xA2DC,0xA2DD,0xA2DE, - 0xA2DF,0xA2E0,0xA2E1,0xA2E2,0xA2E3,0xA2E4,0xA2E5,0xA2E6, - 0xA2E7,0xA2E8,INVALC,0xA242, - /* Range 0xFF3F - 0xFF5D, array index: 0x45A9 */ - 0xA1C4,INVALC,0xA2E9,0xA2EA,0xA2EB,0xA2EC,0xA2ED,0xA2EE, - 0xA2EF,0xA2F0,0xA2F1,0xA2F2,0xA2F3,0xA2F4,0xA2F5,0xA2F6, - 0xA2F7,0xA2F8,0xA2F9,0xA2FA,0xA2FB,0xA2FC,0xA2FD,0xA2FE, - 0xA340,0xA341,0xA342,0xA343,0xA161,0xA155,0xA162, - /* Unranged codes (565 codes) */ - /* Array index: 0x45C8 */ 0x00A2,0xA246, - /* Array index: 0x45C8 */ 0x00A3,0xA247, - /* Array index: 0x45C8 */ 0x00A5,0xA244, - /* Array index: 0x45C8 */ 0x00A7,0xA1B1, - /* Array index: 0x45C8 */ 0x00B0,0xA258, - /* Array index: 0x45C8 */ 0x00B1,0xA1D3, - /* Array index: 0x45C8 */ 0x00B7,0xA150, - /* Array index: 0x45C8 */ 0x00D7,0xA1D1, - /* Array index: 0x45C8 */ 0x00F7,0xA1D2, - /* Array index: 0x45C8 */ 0x02D9,0xA3BB, - /* Array index: 0x45C8 */ 0x0401,0xC7B3, - /* Array index: 0x45C8 */ 0x2013,0xA156, - /* Array index: 0x45C8 */ 0x2014,0xA158, - /* Array index: 0x45C8 */ 0x2018,0xA1A5, - /* Array index: 0x45C8 */ 0x2019,0xA1A6, - /* Array index: 0x45C8 */ 0x201C,0xA1A7, - /* Array index: 0x45C8 */ 0x201D,0xA1A8, - /* Array index: 0x45C8 */ 0x2022,0xA145, - /* Array index: 0x45C8 */ 0x2025,0xA14C, - /* Array index: 0x45C8 */ 0x2026,0xA14B, - /* Array index: 0x45C8 */ 0x2032,0xA1AC, - /* Array index: 0x45C8 */ 0x2035,0xA1AB, - /* Array index: 0x45C8 */ 0x203B,0xA1B0, - /* Array index: 0x45C8 */ 0x203E,0xA1C2, - /* Array index: 0x45C8 */ 0x2103,0xA24A, - /* Array index: 0x45C8 */ 0x2105,0xA1C1, - /* Array index: 0x45C8 */ 0x2109,0xA24B, - /* Array index: 0x45C8 */ 0x221A,0xA1D4, - /* Array index: 0x45C8 */ 0x2223,0xA1FD, - /* Array index: 0x45C8 */ 0x2225,0xA1FC, - /* Array index: 0x45C8 */ 0x222E,0xA1ED, - /* Array index: 0x45C8 */ 0x2234,0xA1EF, - /* Array index: 0x45C8 */ 0x2235,0xA1EE, - /* Array index: 0x45C8 */ 0x223C,0xA1E3, - /* Array index: 0x45C8 */ 0x2252,0xA1DC, - /* Array index: 0x45C8 */ 0x2260,0xA1DA, - /* Array index: 0x45C8 */ 0x2261,0xA1DD, - /* Array index: 0x45C8 */ 0x2266,0xA1D8, - /* Array index: 0x45C8 */ 0x2267,0xA1D9, - /* Array index: 0x45C8 */ 0x22A5,0xA1E6, - /* Array index: 0x45C8 */ 0x22BF,0xA1E9, - /* Array index: 0x45C8 */ 0x2500,0xA277, - /* Array index: 0x45C8 */ 0x2502,0xA278, - /* Array index: 0x45C8 */ 0x250C,0xA27A, - /* Array index: 0x45C8 */ 0x2510,0xA27B, - /* Array index: 0x45C8 */ 0x2514,0xA27C, - /* Array index: 0x45C8 */ 0x2518,0xA27D, - /* Array index: 0x45C8 */ 0x251C,0xA275, - /* Array index: 0x45C8 */ 0x2524,0xA274, - /* Array index: 0x45C8 */ 0x252C,0xA273, - /* Array index: 0x45C8 */ 0x2534,0xA272, - /* Array index: 0x45C8 */ 0x253C,0xA271, - /* Array index: 0x45C8 */ 0x2550,0xA2A4, - /* Array index: 0x45C8 */ 0x255E,0xA2A5, - /* Array index: 0x45C8 */ 0x2561,0xA2A7, - /* Array index: 0x45C8 */ 0x256A,0xA2A6, - /* Array index: 0x45C8 */ 0x2594,0xA276, - /* Array index: 0x45C8 */ 0x2595,0xA279, - /* Array index: 0x45C8 */ 0x25A0,0xA1BD, - /* Array index: 0x45C8 */ 0x25A1,0xA1BC, - /* Array index: 0x45C8 */ 0x25B2,0xA1B6, - /* Array index: 0x45C8 */ 0x25B3,0xA1B5, - /* Array index: 0x45C8 */ 0x25BC,0xA1BF, - /* Array index: 0x45C8 */ 0x25BD,0xA1BE, - /* Array index: 0x45C8 */ 0x25C6,0xA1BB, - /* Array index: 0x45C8 */ 0x25C7,0xA1BA, - /* Array index: 0x45C8 */ 0x25CB,0xA1B3, - /* Array index: 0x45C8 */ 0x25CE,0xA1B7, - /* Array index: 0x45C8 */ 0x25CF,0xA1B4, - /* Array index: 0x45C8 */ 0x2605,0xA1B9, - /* Array index: 0x45C8 */ 0x2606,0xA1B8, - /* Array index: 0x45C8 */ 0x2609,0xA1F3, - /* Array index: 0x45C8 */ 0x30FE,0xC6A1, - /* Array index: 0x45C8 */ 0x32A3,0xA1C0, - /* Array index: 0x45C8 */ 0x338E,0xA255, - /* Array index: 0x45C8 */ 0x338F,0xA256, - /* Array index: 0x45C8 */ 0x33A1,0xA254, - /* Array index: 0x45C8 */ 0x33C4,0xA257, - /* Array index: 0x45C8 */ 0x33CE,0xA253, - /* Array index: 0x45C8 */ 0x33D1,0xA1EB, - /* Array index: 0x45C8 */ 0x33D2,0xA1EA, - /* Array index: 0x45C8 */ 0x33D5,0xA24F, - /* Array index: 0x45C8 */ 0x4E00,0xA440, - /* Array index: 0x45C8 */ 0x4E01,0xA442, - /* Array index: 0x45C8 */ 0x4E03,0xA443, - /* Array index: 0x45C8 */ 0x4E1E,0xA5E0, - /* Array index: 0x45C8 */ 0x4E1F,0xA5E1, - /* Array index: 0x45C8 */ 0x4E26,0xA8C3, - /* Array index: 0x45C8 */ 0x4E2B,0xA458, - /* Array index: 0x45C8 */ 0x4E42,0xC940, - /* Array index: 0x45C8 */ 0x4E43,0xA444, - /* Array index: 0x45C8 */ 0x4E45,0xA45B, - /* Array index: 0x45C8 */ 0x4E47,0xC947, - /* Array index: 0x45C8 */ 0x4E48,0xA45C, - /* Array index: 0x45C8 */ 0x4E56,0xA8C4, - /* Array index: 0x45C8 */ 0x4E69,0xA5E4, - /* Array index: 0x45C8 */ 0x4E73,0xA8C5, - /* Array index: 0x45C8 */ 0x4E99,0xA5E5, - /* Array index: 0x45C8 */ 0x4E9B,0xA8C7, - /* Array index: 0x45C8 */ 0x4EB3,0xADBD, - /* Array index: 0x45C8 */ 0x4EB6,0xDCB3, - /* Array index: 0x45C8 */ 0x4EB9,0xF6D6, - /* Array index: 0x45C8 */ 0x4EBA,0xA448, - /* Array index: 0x45C8 */ 0x4EFB,0xA5F4, - /* Array index: 0x45C8 */ 0x4F1D,0xC9B4, - /* Array index: 0x45C8 */ 0x4F22,0xC9B7, - /* Array index: 0x45C8 */ 0x4FAE,0xAB56, - /* Array index: 0x45C8 */ 0x4FAF,0xAB4A, - /* Array index: 0x45C8 */ 0x4FEC,0xCDEF, - /* Array index: 0x45C8 */ 0x4FEE,0xADD7, - /* Array index: 0x45C8 */ 0x4FEF,0xADC1, - /* Array index: 0x45C8 */ 0x4FFE,0xADDA, - /* Array index: 0x45C8 */ 0x5000,0xADCE, - /* Array index: 0x45C8 */ 0x503C,0xADC8, - /* Array index: 0x45C8 */ 0x5040,0xD463, - /* Array index: 0x45C8 */ 0x5041,0xD457, - /* Array index: 0x45C8 */ 0x507A,0xB0AF, - /* Array index: 0x45C8 */ 0x507D,0xB0B0, - /* Array index: 0x45C8 */ 0x5080,0xB3C8, - /* Array index: 0x45C8 */ 0x5082,0xD85E, - /* Array index: 0x45C8 */ 0x5083,0xD857, - /* Array index: 0x45C8 */ 0x5085,0xB3C5, - /* Array index: 0x45C8 */ 0x5087,0xD85F, - /* Array index: 0x45C8 */ 0x50A2,0xB3C3, - /* Array index: 0x45C8 */ 0x50A3,0xD856, - /* Array index: 0x45C8 */ 0x50E0,0xE0FE, - /* Array index: 0x45C8 */ 0x5152,0xA8E0, - /* Array index: 0x45C8 */ 0x5154,0xA8DF, - /* Array index: 0x45C8 */ 0x5155,0xA8E1, - /* Array index: 0x45C8 */ 0x5171,0xA640, - /* Array index: 0x45C8 */ 0x517C,0xADDD, - /* Array index: 0x45C8 */ 0x5180,0xBEAC, - /* Array index: 0x45C8 */ 0x5187,0xC94E, - /* Array index: 0x45C8 */ 0x5189,0xA554, - /* Array index: 0x45C8 */ 0x518A,0xA555, - /* Array index: 0x45C8 */ 0x518D,0xA641, - /* Array index: 0x45C8 */ 0x519E,0xCBCD, - /* Array index: 0x45C8 */ 0x51A0,0xAB61, - /* Array index: 0x45C8 */ 0x51A2,0xADE0, - /* Array index: 0x45C8 */ 0x51A4,0xADDE, - /* Array index: 0x45C8 */ 0x51A5,0xADDF, - /* Array index: 0x45C8 */ 0x51AA,0xBEAD, - /* Array index: 0x45C8 */ 0x51AC,0xA556, - /* Array index: 0x45C8 */ 0x51B0,0xA642, - /* Array index: 0x45C8 */ 0x51B1,0xC9BC, - /* Array index: 0x45C8 */ 0x51B6,0xA74D, - /* Array index: 0x45C8 */ 0x51B7,0xA74E, - /* Array index: 0x45C8 */ 0x51B9,0xCA6B, - /* Array index: 0x45C8 */ 0x51D4,0xD861, - /* Array index: 0x45C8 */ 0x51D7,0xDCC5, - /* Array index: 0x45C8 */ 0x51D8,0xE140, - /* Array index: 0x45C8 */ 0x51F0,0xB0C4, - /* Array index: 0x45C8 */ 0x51F1,0xB3CD, - /* Array index: 0x45C8 */ 0x51F3,0xB9B9, - /* Array index: 0x45C8 */ 0x51FD,0xA8E7, - /* Array index: 0x45C8 */ 0x5200,0xA44D, - /* Array index: 0x45C8 */ 0x5201,0xA44E, - /* Array index: 0x45C8 */ 0x5203,0xA462, - /* Array index: 0x45C8 */ 0x5221,0xCA6E, - /* Array index: 0x45C8 */ 0x5241,0xA8EF, - /* Array index: 0x45C8 */ 0x5272,0xB3CE, - /* Array index: 0x45C8 */ 0x5291,0xBEAF, - /* Array index: 0x45C8 */ 0x5293,0xBEB0, - /* Array index: 0x45C8 */ 0x529F,0xA55C, - /* Array index: 0x45C8 */ 0x52A0,0xA55B, - /* Array index: 0x45C8 */ 0x52A3,0xA648, - /* Array index: 0x45C8 */ 0x52A6,0xC9C0, - /* Array index: 0x45C8 */ 0x52BB,0xA8F1, - /* Array index: 0x45C8 */ 0x52BC,0xCBD5, - /* Array index: 0x45C8 */ 0x52C7,0xAB69, - /* Array index: 0x45C8 */ 0x52C9,0xAB6A, - /* Array index: 0x45C8 */ 0x52CD,0xD0ED, - /* Array index: 0x45C8 */ 0x52E9,0xE143, - /* Array index: 0x45C8 */ 0x52EB,0xE144, - /* Array index: 0x45C8 */ 0x532A,0xADEA, - /* Array index: 0x45C8 */ 0x5334,0xE8FA, - /* Array index: 0x45C8 */ 0x5337,0xF3FD, - /* Array index: 0x45C8 */ 0x5339,0xA4C7, - /* Array index: 0x45C8 */ 0x5357,0xAB6E, - /* Array index: 0x45C8 */ 0x535A,0xB3D5, - /* Array index: 0x45C8 */ 0x535C,0xA452, - /* Array index: 0x45C8 */ 0x535E,0xA4CB, - /* Array index: 0x45C8 */ 0x5360,0xA565, - /* Array index: 0x45C8 */ 0x5361,0xA564, - /* Array index: 0x45C8 */ 0x5363,0xCA72, - /* Array index: 0x45C8 */ 0x5366,0xA8F6, - /* Array index: 0x45C8 */ 0x537F,0xADEB, - /* Array index: 0x45C8 */ 0x5382,0xC944, - /* Array index: 0x45C8 */ 0x5384,0xA4CC, - /* Array index: 0x45C8 */ 0x538A,0xC9C4, - /* Array index: 0x45C8 */ 0x538E,0xCA74, - /* Array index: 0x45C8 */ 0x538F,0xCA75, - /* Array index: 0x45C8 */ 0x5392,0xCBD9, - /* Array index: 0x45C8 */ 0x53A4,0xD864, - /* Array index: 0x45C8 */ 0x53A5,0xB3D6, - /* Array index: 0x45C8 */ 0x53A7,0xD865, - /* Array index: 0x45C8 */ 0x53AC,0xE146, - /* Array index: 0x45C8 */ 0x53AD,0xB9BD, - /* Array index: 0x45C8 */ 0x53B2,0xBC46, - /* Array index: 0x45C8 */ 0x53B4,0xF1EF, - /* Array index: 0x45C8 */ 0x53B9,0xC958, - /* Array index: 0x45C8 */ 0x53BB,0xA568, - /* Array index: 0x45C8 */ 0x53C3,0xB0D1, - /* Array index: 0x45C8 */ 0x53D4,0xA8FB, - /* Array index: 0x45C8 */ 0x53D6,0xA8FA, - /* Array index: 0x45C8 */ 0x53D7,0xA8FC, - /* Array index: 0x45C8 */ 0x53DB,0xAB71, - /* Array index: 0x45C8 */ 0x53F8,0xA571, - /* Array index: 0x45C8 */ 0x53FB,0xA57B, - /* Array index: 0x45C8 */ 0x53FC,0xA570, - /* Array index: 0x45C8 */ 0x5401,0xA653, - /* Array index: 0x45C8 */ 0x544E,0xA760, - /* Array index: 0x45C8 */ 0x544F,0xCAA2, - /* Array index: 0x45C8 */ 0x5454,0xCA79, - /* Array index: 0x45C8 */ 0x54CE,0xAB75, - /* Array index: 0x45C8 */ 0x54CF,0xCDFE, - /* Array index: 0x45C8 */ 0x54D6,0xCE44, - /* Array index: 0x45C8 */ 0x5517,0xD0F2, - /* Array index: 0x45C8 */ 0x551A,0xD0F7, - /* Array index: 0x45C8 */ 0x5526,0xD0F0, - /* Array index: 0x45C8 */ 0x5527,0xAE41, - /* Array index: 0x45C8 */ 0x555C,0xB0E3, - /* Array index: 0x45C8 */ 0x556A,0xB0D4, - /* Array index: 0x45C8 */ 0x55BB,0xB3EB, - /* Array index: 0x45C8 */ 0x55EF,0xB6E2, - /* Array index: 0x45C8 */ 0x55F2,0xDCDD, - /* Array index: 0x45C8 */ 0x5627,0xE147, - /* Array index: 0x45C8 */ 0x5629,0xBC4D, - /* Array index: 0x45C8 */ 0x562A,0xE547, - /* Array index: 0x45C8 */ 0x5653,0xBC4E, - /* Array index: 0x45C8 */ 0x565E,0xE945, - /* Array index: 0x45C8 */ 0x5693,0xECC0, - /* Array index: 0x45C8 */ 0x56D1,0xC5F1, - /* Array index: 0x45C8 */ 0x56D3,0xF8A5, - /* Array index: 0x45C8 */ 0x56D4,0xF8EE, - /* Array index: 0x45C8 */ 0x56D7,0xC949, - /* Array index: 0x45C8 */ 0x56EE,0xCAA7, - /* Array index: 0x45C8 */ 0x56F0,0xA778, - /* Array index: 0x45C8 */ 0x56F7,0xCBF0, - /* Array index: 0x45C8 */ 0x56F9,0xCBF1, - /* Array index: 0x45C8 */ 0x56FA,0xA954, - /* Array index: 0x45C8 */ 0x573B,0xA7A6, - /* Array index: 0x45C8 */ 0x573E,0xA7A3, - /* Array index: 0x45C8 */ 0x5740,0xA77D, - /* Array index: 0x45C8 */ 0x5741,0xCAAA, - /* Array index: 0x45C8 */ 0x5745,0xCAAB, - /* Array index: 0x45C8 */ 0x5761,0xA959, - /* Array index: 0x45C8 */ 0x5762,0xCBFE, - /* Array index: 0x45C8 */ 0x5764,0xA95B, - /* Array index: 0x45C8 */ 0x5780,0xCBF9, - /* Array index: 0x45C8 */ 0x5782,0xABAB, - /* Array index: 0x45C8 */ 0x5783,0xA955, - /* Array index: 0x45C8 */ 0x578B,0xABAC, - /* Array index: 0x45C8 */ 0x578C,0xCE54, - /* Array index: 0x45C8 */ 0x578F,0xCE5A, - /* Array index: 0x45C8 */ 0x57AE,0xABB1, - /* Array index: 0x45C8 */ 0x57DC,0xD4B1, - /* Array index: 0x45C8 */ 0x5814,0xD4AE, - /* Array index: 0x45C8 */ 0x5868,0xDCE3, - /* Array index: 0x45C8 */ 0x586B,0xB6F1, - /* Array index: 0x45C8 */ 0x586D,0xB6F3, - /* Array index: 0x45C8 */ 0x586F,0xDCE8, - /* Array index: 0x45C8 */ 0x5871,0xDCF1, - /* Array index: 0x45C8 */ 0x5898,0xE159, - /* Array index: 0x45C8 */ 0x58EF,0xA7A7, - /* Array index: 0x45C8 */ 0x58F4,0xCE5F, - /* Array index: 0x45C8 */ 0x5903,0xC95A, - /* Array index: 0x45C8 */ 0x5906,0xCAB0, - /* Array index: 0x45C8 */ 0x5920,0xB0F7, - /* Array index: 0x45C8 */ 0x5922,0xB9DA, - /* Array index: 0x45C8 */ 0x5924,0xB9DB, - /* Array index: 0x45C8 */ 0x5925,0xB9D9, - /* Array index: 0x45C8 */ 0x5937,0xA669, - /* Array index: 0x45C8 */ 0x5938,0xA66A, - /* Array index: 0x45C8 */ 0x593C,0xC9CB, - /* Array index: 0x45C8 */ 0x593E,0xA7A8, - /* Array index: 0x45C8 */ 0x5940,0xCAB1, - /* Array index: 0x45C8 */ 0x598A,0xA7B3, - /* Array index: 0x45C8 */ 0x5A09,0xAE5C, - /* Array index: 0x45C8 */ 0x5A0A,0xD162, - /* Array index: 0x45C8 */ 0x5A0C,0xAE5B, - /* Array index: 0x45C8 */ 0x5A0F,0xD160, - /* Array index: 0x45C8 */ 0x5A11,0xAE50, - /* Array index: 0x45C8 */ 0x5A23,0xAE58, - /* Array index: 0x45C8 */ 0x5A25,0xAE5A, - /* Array index: 0x45C8 */ 0x5A29,0xAE59, - /* Array index: 0x45C8 */ 0x5A2D,0xD15D, - /* Array index: 0x45C8 */ 0x5A2E,0xD15E, - /* Array index: 0x45C8 */ 0x5A3C,0xB140, - /* Array index: 0x45C8 */ 0x5A70,0xD4E8, - /* Array index: 0x45C8 */ 0x5A83,0xD8C6, - /* Array index: 0x45C8 */ 0x5A84,0xD8C3, - /* Array index: 0x45C8 */ 0x5AA2,0xD8B9, - /* Array index: 0x45C8 */ 0x5B38,0xC254, - /* Array index: 0x45C8 */ 0x5B43,0xC45D, - /* Array index: 0x45C8 */ 0x5B45,0xF443, - /* Array index: 0x45C8 */ 0x5B69,0xABC4, - /* Array index: 0x45C8 */ 0x5B6B,0xAE5D, - /* Array index: 0x45C8 */ 0x5B6C,0xD165, - /* Array index: 0x45C8 */ 0x5C01,0xABCA, - /* Array index: 0x45C8 */ 0x5C1A,0xA97C, - /* Array index: 0x45C8 */ 0x5C1F,0xDD4B, - /* Array index: 0x45C8 */ 0x5C22,0xA471, - /* Array index: 0x45C8 */ 0x5C24,0xA4D7, - /* Array index: 0x45C8 */ 0x5C25,0xC9D5, - /* Array index: 0x45C8 */ 0x5C28,0xCABE, - /* Array index: 0x45C8 */ 0x5C2A,0xCABF, - /* Array index: 0x45C8 */ 0x5C2C,0xA7BC, - /* Array index: 0x45C8 */ 0x5C30,0xD8D8, - /* Array index: 0x45C8 */ 0x5C31,0xB44E, - /* Array index: 0x45C8 */ 0x5C33,0xDD4C, - /* Array index: 0x45C8 */ 0x5CE8,0xAE6F, - /* Array index: 0x45C8 */ 0x5D06,0xB153, - /* Array index: 0x45C8 */ 0x5D07,0xB152, - /* Array index: 0x45C8 */ 0x5D55,0xD8E2, - /* Array index: 0x45C8 */ 0x5D59,0xD8E8, - /* Array index: 0x45C8 */ 0x5D5E,0xDD53, - /* Array index: 0x45C8 */ 0x5D62,0xDD56, - /* Array index: 0x45C8 */ 0x5D63,0xDD4E, - /* Array index: 0x45C8 */ 0x5D6F,0xB744, - /* Array index: 0x45C8 */ 0x5D71,0xDD4D, - /* Array index: 0x45C8 */ 0x5D72,0xDD51, - /* Array index: 0x45C8 */ 0x5D77,0xE1A9, - /* Array index: 0x45C8 */ 0x5D8D,0xE1AF, - /* Array index: 0x45C8 */ 0x5DC0,0xEFC4, - /* Array index: 0x45C8 */ 0x5DC2,0xF172, - /* Array index: 0x45C8 */ 0x5DC3,0xF1FD, - /* Array index: 0x45C8 */ 0x5DC6,0xF444, - /* Array index: 0x45C8 */ 0x5DC7,0xF445, - /* Array index: 0x45C8 */ 0x5DC9,0xC460, - /* Array index: 0x45C8 */ 0x5DCB,0xF5C9, - /* Array index: 0x45C8 */ 0x5DCD,0xC4DE, - /* Array index: 0x45C8 */ 0x5DCF,0xF5CA, - /* Array index: 0x45C8 */ 0x5DEB,0xA7C5, - /* Array index: 0x45C8 */ 0x5DF7,0xABD1, - /* Array index: 0x45C8 */ 0x5DF9,0xCEAF, - /* Array index: 0x45C8 */ 0x5E0A,0xCACB, - /* Array index: 0x45C8 */ 0x5E0C,0xA7C6, - /* Array index: 0x45C8 */ 0x5E0E,0xCACC, - /* Array index: 0x45C8 */ 0x5E11,0xA9AE, - /* Array index: 0x45C8 */ 0x5EBE,0xB168, - /* Array index: 0x45C8 */ 0x5EEC,0xC366, - /* Array index: 0x45C8 */ 0x5EFA,0xABD8, - /* Array index: 0x45C8 */ 0x5F0F,0xA6A1, - /* Array index: 0x45C8 */ 0x5F3C,0xB45D, - /* Array index: 0x45C8 */ 0x5F40,0xDD62, - /* Array index: 0x45C8 */ 0x5F43,0xE1BF, - /* Array index: 0x45C8 */ 0x5F44,0xE1BE, - /* Array index: 0x45C8 */ 0x5F5D,0xC255, - /* Array index: 0x45C8 */ 0x5F62,0xA7CE, - /* Array index: 0x45C8 */ 0x5F64,0xA7CD, - /* Array index: 0x45C8 */ 0x5F65,0xABDB, - /* Array index: 0x45C8 */ 0x5FB2,0xE577, - /* Array index: 0x45C8 */ 0x5FC9,0xC97B, - /* Array index: 0x45C8 */ 0x5FE8,0xCADA, - /* Array index: 0x45C8 */ 0x6050,0xAEA3, - /* Array index: 0x45C8 */ 0x60A8,0xB17A, - /* Array index: 0x45C8 */ 0x6123,0xB468, - /* Array index: 0x45C8 */ 0x6132,0xDD6B, - /* Array index: 0x45C8 */ 0x6134,0xB75B, - /* Array index: 0x45C8 */ 0x6136,0xDD6A, - /* Array index: 0x45C8 */ 0x6137,0xB75F, - /* Array index: 0x45C8 */ 0x613B,0xE1D2, - /* Array index: 0x45C8 */ 0x619A,0xBCAA, - /* Array index: 0x45C8 */ 0x619B,0xE5A1, - /* Array index: 0x45C8 */ 0x619D,0xE976, - /* Array index: 0x45C8 */ 0x619F,0xE5A5, - /* Array index: 0x45C8 */ 0x61A1,0xE5A8, - /* Array index: 0x45C8 */ 0x61A2,0xE57D, - /* Array index: 0x45C8 */ 0x61A4,0xBCAB, - /* Array index: 0x45C8 */ 0x61D6,0xEFCF, - /* Array index: 0x45C8 */ 0x61D8,0xEFC7, - /* Array index: 0x45C8 */ 0x623A,0xCAE6, - /* Array index: 0x45C8 */ 0x62C2,0xA9D8, - /* Array index: 0x45C8 */ 0x63BD,0xD56B, - /* Array index: 0x45C8 */ 0x63BE,0xD964, - /* Array index: 0x45C8 */ 0x63F9,0xB4AE, - /* Array index: 0x45C8 */ 0x6406,0xB770, - /* Array index: 0x45C8 */ 0x644B,0xE1E9, - /* Array index: 0x45C8 */ 0x6482,0xE1E6, - /* Array index: 0x45C8 */ 0x654F,0xB1D3, - /* Array index: 0x45C8 */ 0x656F,0xDDBC, - /* Array index: 0x45C8 */ 0x6587,0xA4E5, - /* Array index: 0x45C8 */ 0x658C,0xD979, - /* Array index: 0x45C8 */ 0x664F,0xAECB, - /* Array index: 0x45C8 */ 0x6651,0xD1D6, - /* Array index: 0x45C8 */ 0x6652,0xAECD, - /* Array index: 0x45C8 */ 0x66CF,0xE9B8, - /* Array index: 0x45C8 */ 0x66D2,0xECF2, - /* Array index: 0x45C8 */ 0x671B,0xB1E6, - /* Array index: 0x45C8 */ 0x676A,0xAA57, - /* Array index: 0x45C8 */ 0x67FF,0xAC55, - /* Array index: 0x45C8 */ 0x6925,0xD9D8, - /* Array index: 0x45C8 */ 0x692A,0xD9AE, - /* Array index: 0x45C8 */ 0x6982,0xB7A7, - /* Array index: 0x45C8 */ 0x6983,0xDEC6, - /* Array index: 0x45C8 */ 0x6986,0xB7AE, - /* Array index: 0x45C8 */ 0x69D9,0xE25C, - /* Array index: 0x45C8 */ 0x6A0D,0xE5E3, - /* Array index: 0x45C8 */ 0x6A0F,0xE5EA, - /* Array index: 0x45C8 */ 0x6A32,0xE9C2, - /* Array index: 0x45C8 */ 0x6A76,0xE9C7, - /* Array index: 0x45C8 */ 0x6AE5,0xC36F, - /* Array index: 0x45C8 */ 0x6B1E,0xF9BB, - /* Array index: 0x45C8 */ 0x6B20,0xA4ED, - /* Array index: 0x45C8 */ 0x6B21,0xA6B8, - /* Array index: 0x45C8 */ 0x6B23,0xAA59, - /* Array index: 0x45C8 */ 0x6B25,0xCCE9, - /* Array index: 0x45C8 */ 0x6B28,0xCF64, - /* Array index: 0x45C8 */ 0x6B2C,0xD1F5, - /* Array index: 0x45C8 */ 0x6B2D,0xD1F7, - /* Array index: 0x45C8 */ 0x6B59,0xBEF9, - /* Array index: 0x45C8 */ 0x6B6A,0xAC6E, - /* Array index: 0x45C8 */ 0x6B6D,0xD1FA, - /* Array index: 0x45C8 */ 0x6B72,0xB7B3, - /* Array index: 0x45C8 */ 0x6BBA,0xB1FE, - /* Array index: 0x45C8 */ 0x6BDE,0xCCEC, - /* Array index: 0x45C8 */ 0x6C3B,0xC9A4, - /* Array index: 0x45C8 */ 0x6C46,0xC9F8, - /* Array index: 0x45C8 */ 0x6CF9,0xCD4C, - /* Array index: 0x45C8 */ 0x6E00,0xD5EB, - /* Array index: 0x45C8 */ 0x6E03,0xD9FC, - /* Array index: 0x45C8 */ 0x6E05,0xB24D, - /* Array index: 0x45C8 */ 0x6E88,0xD9EC, - /* Array index: 0x45C8 */ 0x6E89,0xB540, - /* Array index: 0x45C8 */ 0x6EDC,0xDE5C, - /* Array index: 0x45C8 */ 0x6FD4,0xED51, - /* Array index: 0x45C8 */ 0x6FD5,0xC0E3, - /* Array index: 0x45C8 */ 0x6FD8,0xC0D7, - /* Array index: 0x45C8 */ 0x6FF7,0xEFF7, - /* Array index: 0x45C8 */ 0x7070,0xA6C7, - /* Array index: 0x45C8 */ 0x7071,0xCA41, - /* Array index: 0x45C8 */ 0x7074,0xCB5E, - /* Array index: 0x45C8 */ 0x7076,0xA85F, - /* Array index: 0x45C8 */ 0x7078,0xA862, - /* Array index: 0x45C8 */ 0x707A,0xCB5F, - /* Array index: 0x45C8 */ 0x707C,0xA860, - /* Array index: 0x45C8 */ 0x707D,0xA861, - /* Array index: 0x45C8 */ 0x708A,0xAAA4, - /* Array index: 0x45C8 */ 0x708E,0xAAA2, - /* Array index: 0x45C8 */ 0x709F,0xCFAF, - /* Array index: 0x45C8 */ 0x70A1,0xCFB3, - /* Array index: 0x45C8 */ 0x70A4,0xACB7, - /* Array index: 0x45C8 */ 0x70BE,0xCFB0, - /* Array index: 0x45C8 */ 0x70EF,0xB26D, - /* Array index: 0x45C8 */ 0x70F0,0xD64E, - /* Array index: 0x45C8 */ 0x7113,0xD655, - /* Array index: 0x45C8 */ 0x7136,0xB54D, - /* Array index: 0x45C8 */ 0x713A,0xDA64, - /* Array index: 0x45C8 */ 0x7178,0xDE74, - /* Array index: 0x45C8 */ 0x717B,0xE2C1, - /* Array index: 0x45C8 */ 0x717D,0xBAB4, - /* Array index: 0x45C8 */ 0x718F,0xE2C0, - /* Array index: 0x45C8 */ 0x7190,0xE2BB, - /* Array index: 0x45C8 */ 0x7192,0xBAB7, - /* Array index: 0x45C8 */ 0x7194,0xBAB2, - /* Array index: 0x45C8 */ 0x720A,0xF26A, - /* Array index: 0x45C8 */ 0x720C,0xF269, - /* Array index: 0x45C8 */ 0x720D,0xC37B, - /* Array index: 0x45C8 */ 0x7210,0xC46C, - /* Array index: 0x45C8 */ 0x7213,0xF46A, - /* Array index: 0x45C8 */ 0x7214,0xF46B, - /* Array index: 0x45C8 */ 0x7230,0xACB8, - /* Array index: 0x45C8 */ 0x724F,0xDEA4, - /* Array index: 0x45C8 */ 0x7252,0xB7DE, - /* Array index: 0x45C8 */ 0x7253,0xE2C6, - /* Array index: 0x45C8 */ 0x7267,0xAAAA, - /* Array index: 0x45C8 */ 0x7269,0xAAAB, - /* Array index: 0x45C8 */ 0x726A,0xCD5B, - /* Array index: 0x45C8 */ 0x72B4,0xCA43, - /* Array index: 0x45C8 */ 0x72B5,0xCA44, - /* Array index: 0x45C8 */ 0x72BA,0xCB66, - /* Array index: 0x45C8 */ 0x732D,0xDA75, - /* Array index: 0x45C8 */ 0x738E,0xCA45, - /* Array index: 0x45C8 */ 0x73E3,0xD2B1, - /* Array index: 0x45C8 */ 0x7416,0xDA7E, - /* Array index: 0x45C8 */ 0x741A,0xDAA1, - /* Array index: 0x45C8 */ 0x741B,0xB560, - /* Array index: 0x45C8 */ 0x741D,0xDAA7, - /* Array index: 0x45C8 */ 0x743A,0xB557, - /* Array index: 0x45C8 */ 0x7467,0xE2D3, - /* Array index: 0x45C8 */ 0x7479,0xE6AB, - /* Array index: 0x45C8 */ 0x7490,0xED69, - /* Array index: 0x45C8 */ 0x7492,0xEA66, - /* Array index: 0x45C8 */ 0x74CA,0xC3A3, - /* Array index: 0x45C8 */ 0x74CB,0xF273, - /* Array index: 0x45C8 */ 0x74CF,0xC46E, - /* Array index: 0x45C8 */ 0x74EC,0xCFD7, - /* Array index: 0x45C8 */ 0x74EE,0xCFD8, - /* Array index: 0x45C8 */ 0x7547,0xCFDA, - /* Array index: 0x45C8 */ 0x7548,0xCFDB, - /* Array index: 0x45C8 */ 0x7554,0xAF60, - /* Array index: 0x45C8 */ 0x7584,0xED73, - /* Array index: 0x45C8 */ 0x759D,0xAAB7, - /* Array index: 0x45C8 */ 0x75B0,0xD2C3, - /* Array index: 0x45C8 */ 0x7638,0xBF61, - /* Array index: 0x45C8 */ 0x763A,0xBF62, - /* Array index: 0x45C8 */ 0x763C,0xEA70, - /* Array index: 0x45C8 */ 0x763D,0xEA6E, - /* Array index: 0x45C8 */ 0x764C,0xC0F9, - /* Array index: 0x45C8 */ 0x7650,0xF04D, - /* Array index: 0x45C8 */ 0x7675,0xF9CC, - /* Array index: 0x45C8 */ 0x76A4,0xED78, - /* Array index: 0x45C8 */ 0x76A6,0xF051, - /* Array index: 0x45C8 */ 0x76B4,0xB572, - /* Array index: 0x45C8 */ 0x76B5,0xDED6, - /* Array index: 0x45C8 */ 0x76B8,0xE2E1, - /* Array index: 0x45C8 */ 0x772D,0xD6AA, - /* Array index: 0x45C8 */ 0x7779,0xB840, - /* Array index: 0x45C8 */ 0x7795,0xEA7D, - /* Array index: 0x45C8 */ 0x77C2,0xF054, - /* Array index: 0x45C8 */ 0x77C4,0xF27B, - /* Array index: 0x45C8 */ 0x77C7,0xC3A9, - /* Array index: 0x45C8 */ 0x7809,0xCFF1, - /* Array index: 0x45C8 */ 0x7843,0xB2B9, - /* Array index: 0x45C8 */ 0x7845,0xD6BA, - /* Array index: 0x45C8 */ 0x7879,0xDEEE, - /* Array index: 0x45C8 */ 0x788C,0xB84C, - /* Array index: 0x45C8 */ 0x788E,0xB848, - /* Array index: 0x45C8 */ 0x788F,0xDEE7, - /* Array index: 0x45C8 */ 0x7909,0xF05A, - /* Array index: 0x45C8 */ 0x790C,0xF057, - /* Array index: 0x45C8 */ 0x7917,0xF2A3, - /* Array index: 0x45C8 */ 0x7935,0xF6F6, - /* Array index: 0x45C8 */ 0x7988,0xE341, - /* Array index: 0x45C8 */ 0x79C5,0xCDA4, - /* Array index: 0x45C8 */ 0x79C8,0xAAC4, - /* Array index: 0x45C8 */ 0x79C9,0xAAC3, - /* Array index: 0x45C8 */ 0x7A26,0xE349, - /* Array index: 0x45C8 */ 0x7A28,0xE348, - /* Array index: 0x45C8 */ 0x7A2B,0xE344, - /* Array index: 0x45C8 */ 0x7A37,0xBD5E, - /* Array index: 0x45C8 */ 0x7AD1,0xD041, - /* Array index: 0x45C8 */ 0x7AD8,0xD2FD, - /* Array index: 0x45C8 */ 0x7AD9,0xAFB8, - /* Array index: 0x45C8 */ 0x7B38,0xD6DB, - /* Array index: 0x45C8 */ 0x7B3B,0xDADF, - /* Array index: 0x45C8 */ 0x7B40,0xDAE4, - /* Array index: 0x45C8 */ 0x7B82,0xE35D, - /* Array index: 0x45C8 */ 0x7BA4,0xE35C, - /* Array index: 0x45C8 */ 0x7BAC,0xE6D9, - /* Array index: 0x45C8 */ 0x7BAD,0xBD62, - /* Array index: 0x45C8 */ 0x7BAF,0xE6DB, - /* Array index: 0x45C8 */ 0x7BB1,0xBD63, - /* Array index: 0x45C8 */ 0x7BBE,0xE6D8, - /* Array index: 0x45C8 */ 0x7BC0,0xB860, - /* Array index: 0x45C8 */ 0x7BC1,0xBD68, - /* Array index: 0x45C8 */ 0x7BC4,0xBD64, - /* Array index: 0x45C8 */ 0x7C19,0xF063, - /* Array index: 0x45C8 */ 0x7C30,0xF06C, - /* Array index: 0x45C8 */ 0x7C33,0xF2A8, - /* Array index: 0x45C8 */ 0x7C43,0xC478, - /* Array index: 0x45C8 */ 0x7C50,0xC4F0, - /* Array index: 0x45C8 */ 0x7C53,0xF5E5, - /* Array index: 0x45C8 */ 0x7C54,0xF5E4, - /* Array index: 0x45C8 */ 0x7CA8,0xDAE9, - /* Array index: 0x45C8 */ 0x7CC5,0xE6DF, - /* Array index: 0x45C8 */ 0x7CE7,0xC2B3, - /* Array index: 0x45C8 */ 0x7CE8,0xEDCF, - /* Array index: 0x45C8 */ 0x7CEA,0xF2AE, - /* Array index: 0x45C8 */ 0x7CFB,0xA874, - /* Array index: 0x45C8 */ 0x7D4A,0xD6EE, - /* Array index: 0x45C8 */ 0x7DD2,0xBAFC, - /* Array index: 0x45C8 */ 0x7E03,0xE6E9, - /* Array index: 0x45C8 */ 0x7E4C,0xEDDB, - /* Array index: 0x45C8 */ 0x7F58,0xD04D, - /* Array index: 0x45C8 */ 0x8024,0xE3A1, - /* Array index: 0x45C8 */ 0x8030,0xF5EF, - /* Array index: 0x45C8 */ 0x8043,0xD743, - /* Array index: 0x45C8 */ 0x8056,0xB874, - /* Array index: 0x45C8 */ 0x8058,0xB875, - /* Array index: 0x45C8 */ 0x8064,0xE6FB, - /* Array index: 0x45C8 */ 0x8067,0xE6FC, - /* Array index: 0x45C8 */ 0x806C,0xEAE7, - /* Array index: 0x45C8 */ 0x80B8,0xCDAE, - /* Array index: 0x45C8 */ 0x80BA,0xAACD, - /* Array index: 0x45C8 */ 0x8139,0xB5C8, - /* Array index: 0x45C8 */ 0x813A,0xDB51, - /* Array index: 0x45C8 */ 0x813D,0xDB4F, - /* Array index: 0x45C8 */ 0x813E,0xB5CA, - /* Array index: 0x45C8 */ 0x815B,0xDF77, - /* Array index: 0x45C8 */ 0x815C,0xDF75, - /* Array index: 0x45C8 */ 0x8225,0xD372, - /* Array index: 0x45C8 */ 0x822F,0xD371, - /* Array index: 0x45C8 */ 0x8316,0xD3A8, - /* Array index: 0x45C8 */ 0x8317,0xAFFA, - /* Array index: 0x45C8 */ 0x8319,0xD376, - /* Array index: 0x45C8 */ 0x831B,0xD3A3, - /* Array index: 0x45C8 */ 0x831C,0xD37D, - /* Array index: 0x45C8 */ 0x831E,0xD3B2, - /* Array index: 0x45C8 */ 0x8320,0xD3AA, - /* Array index: 0x45C8 */ 0x841B,0xDBAE, - /* Array index: 0x45C8 */ 0x8423,0xDB5F, - /* Array index: 0x45C8 */ 0x8482,0xB8A6, - /* Array index: 0x45C8 */ 0x8486,0xDFB3, - /* Array index: 0x45C8 */ 0x8494,0xE3C2, - /* Array index: 0x45C8 */ 0x84DB,0xE3D1, - /* Array index: 0x45C8 */ 0x853B,0xE74D, - /* Array index: 0x45C8 */ 0x8571,0xEB4B, - /* Array index: 0x45C8 */ 0x8611,0xC4A8, - /* Array index: 0x45C8 */ 0x8643,0xF8BC, - /* Array index: 0x45C8 */ 0x8659,0xD77B, - /* Array index: 0x45C8 */ 0x8746,0xE3E3, - /* Array index: 0x45C8 */ 0x88B1,0xB5F6, - /* Array index: 0x45C8 */ 0x88B2,0xDBCD, - /* Array index: 0x45C8 */ 0x88E7,0xE3F6, - /* Array index: 0x45C8 */ 0x88E8,0xBB74, - /* Array index: 0x45C8 */ 0x8949,0xF0D9, - /* Array index: 0x45C8 */ 0x898B,0xA8A3, - /* Array index: 0x45C8 */ 0x898F,0xB357, - /* Array index: 0x45C8 */ 0x89B2,0xC2D1, - /* Array index: 0x45C8 */ 0x8A2A,0xB358, - /* Array index: 0x45C8 */ 0x8A2C,0xD7CB, - /* Array index: 0x45C8 */ 0x8A2D,0xB35D, - /* Array index: 0x45C8 */ 0x8A30,0xD7C9, - /* Array index: 0x45C8 */ 0x8A31,0xB35C, - /* Array index: 0x45C8 */ 0x8A34,0xB644, - /* Array index: 0x45C8 */ 0x8A36,0xB646, - /* Array index: 0x45C8 */ 0x8A66,0xB8D5, - /* Array index: 0x45C8 */ 0x8A9E,0xBB79, - /* Array index: 0x45C8 */ 0x8AB0,0xBDD6, - /* Array index: 0x45C8 */ 0x8AB2,0xBDD2, - /* Array index: 0x45C8 */ 0x8B74,0xC4FE, - /* Array index: 0x45C8 */ 0x8C37,0xA8A6, - /* Array index: 0x45C8 */ 0x8C5A,0xB362, - /* Array index: 0x45C8 */ 0x8C5C,0xD7CF, - /* Array index: 0x45C8 */ 0x8C5D,0xD7D0, - /* Array index: 0x45C8 */ 0x8C5F,0xDBE5, - /* Array index: 0x45C8 */ 0x8D0D,0xC4BA, - /* Array index: 0x45C8 */ 0x8D99,0xBBAF, - /* Array index: 0x45C8 */ 0x8E2E,0xE7F7, - /* Array index: 0x45C8 */ 0x8EB2,0xB8FA, - /* Array index: 0x45C8 */ 0x8EBA,0xBDF6, - /* Array index: 0x45C8 */ 0x8EBD,0xEBC8, - /* Array index: 0x45C8 */ 0x8EC0,0xC2DF, - /* Array index: 0x45C8 */ 0x8EC2,0xF355, - /* Array index: 0x45C8 */ 0x8F9B,0xA8AF, - /* Array index: 0x45C8 */ 0x8F9C,0xB664, - /* Array index: 0x45C8 */ 0x8F9F,0xB940, - /* Array index: 0x45C8 */ 0x8FA3,0xBBB6, - /* Array index: 0x45C8 */ 0x8FA6,0xBFEC, - /* Array index: 0x45C8 */ 0x8FA8,0xBFEB, - /* Array index: 0x45C8 */ 0x8FBF,0xCBA6, - /* Array index: 0x45C8 */ 0x8FC9,0xCBA5, - /* Array index: 0x45C8 */ 0x8FCB,0xCDCD, - /* Array index: 0x45C8 */ 0x90AA,0xA8B8, - /* Array index: 0x45C8 */ 0x90CE,0xADA6, - /* Array index: 0x45C8 */ 0x925E,0xE0B5, - /* Array index: 0x45C8 */ 0x92BB,0xBE4F, - /* Array index: 0x45C8 */ 0x92BC,0xBE56, - /* Array index: 0x45C8 */ 0x933C,0xEBE5, - /* Array index: 0x45C8 */ 0x936A,0xEEDE, - /* Array index: 0x45C8 */ 0x936C,0xC1EA, - /* Array index: 0x45C8 */ 0x936D,0xEEDB, - /* Array index: 0x45C8 */ 0x9370,0xC1EC, - /* Array index: 0x45C8 */ 0x9371,0xEEE4, - /* Array index: 0x45C8 */ 0x93EC,0xF367, - /* Array index: 0x45C8 */ 0x93EE,0xF36E, - /* Array index: 0x45C8 */ 0x9403,0xC4C2, - /* Array index: 0x45C8 */ 0x9420,0xF4EA, - /* Array index: 0x45C8 */ 0x9455,0xF84B, - /* Array index: 0x45C8 */ 0x9457,0xF84D, - /* Array index: 0x45C8 */ 0x945D,0xF84C, - /* Array index: 0x45C8 */ 0x945E,0xF84E, - /* Array index: 0x45C8 */ 0x9577,0xAAF8, - /* Array index: 0x45C8 */ 0x9580,0xAAF9, - /* Array index: 0x45C8 */ 0x9582,0xADAC, - /* Array index: 0x45C8 */ 0x9583,0xB07B, - /* Array index: 0x45C8 */ 0x9586,0xD845, - /* Array index: 0x45C8 */ 0x9598,0xB968, - /* Array index: 0x45C8 */ 0x961C,0xAAFA, - /* Array index: 0x45C8 */ 0x9628,0xCBAE, - /* Array index: 0x45C8 */ 0x9658,0xB0A4, - /* Array index: 0x45C8 */ 0x9716,0xC04D, - /* Array index: 0x45C8 */ 0x9735,0xF66E, - /* Array index: 0x45C8 */ 0x9752,0xAB43, - /* Array index: 0x45C8 */ 0x9756,0xB974, - /* Array index: 0x45C8 */ 0x9788,0xE8B3, - /* Array index: 0x45C8 */ 0x9794,0xEC56, - /* Array index: 0x45C8 */ 0x97B3,0xF3A1, - /* Array index: 0x45C8 */ 0x97B6,0xF3A3, - /* Array index: 0x45C8 */ 0x97B7,0xF3A2, - /* Array index: 0x45C8 */ 0x97B9,0xF54A, - /* Array index: 0x45C8 */ 0x97BB,0xF54B, - /* Array index: 0x45C8 */ 0x97BF,0xF670, - /* Array index: 0x45C8 */ 0x97ED,0xADB4, - /* Array index: 0x45C8 */ 0x97F0,0xEC57, - /* Array index: 0x45C8 */ 0x97F1,0xEF44, - /* Array index: 0x45C8 */ 0x97F3,0xADB5, - /* Array index: 0x45C8 */ 0x98B6,0xC1FC, - /* Array index: 0x45C8 */ 0x98C9,0xF673, - /* Array index: 0x45C8 */ 0x98CB,0xF775, - /* Array index: 0x45C8 */ 0x98CC,0xF9B0, - /* Array index: 0x45C8 */ 0x98DB,0xADB8, - /* Array index: 0x45C8 */ 0x98DF,0xADB9, - /* Array index: 0x45C8 */ 0x98E2,0xB0A7, - /* Array index: 0x45C8 */ 0x98E3,0xD448, - /* Array index: 0x45C8 */ 0x98E5,0xD84F, - /* Array index: 0x45C8 */ 0x98F2,0xB6BC, - /* Array index: 0x45C8 */ 0x98F4,0xB97E, - /* Array index: 0x45C8 */ 0x98F6,0xE0E2, - /* Array index: 0x45C8 */ 0x99A1,0xEF57, - /* Array index: 0x45C8 */ 0x99C7,0xE4D9, - /* Array index: 0x45C8 */ 0x9AA8,0xB0A9, - /* Array index: 0x45C8 */ 0x9AAB,0xE0E9, - /* Array index: 0x45C8 */ 0x9AC6,0xF566, - /* Array index: 0x45C8 */ 0x9AC7,0xF564, - /* Array index: 0x45C8 */ 0x9ACA,0xF565, - /* Array index: 0x45C8 */ 0x9ADC,0xF1BA, - /* Array index: 0x45C8 */ 0x9ADF,0xD449, - /* Array index: 0x45C8 */ 0x9AE1,0xB9A6, - /* Array index: 0x45C8 */ 0x9AE3,0xE4DB, - /* Array index: 0x45C8 */ 0x9AE6,0xBBEC, - /* Array index: 0x45C8 */ 0x9AE7,0xE4DC, - /* Array index: 0x45C8 */ 0x9B6C,0xE8E3, - /* Array index: 0x45C8 */ 0x9B9A,0xEF6A, - /* Array index: 0x45C8 */ 0x9B9B,0xEF6D, - /* Array index: 0x45C8 */ 0x9BF0,0xF3CE, - /* Array index: 0x45C8 */ 0x9BF7,0xF56C, - /* Array index: 0x45C8 */ 0x9BF8,0xF56F, - /* Array index: 0x45C8 */ 0x9BFD,0xC356, - /* Array index: 0x45C8 */ 0x9C17,0xF574, - /* Array index: 0x45C8 */ 0x9C1C,0xF6AB, - /* Array index: 0x45C8 */ 0x9C1D,0xF6AA, - /* Array index: 0x45C8 */ 0x9C44,0xF7AD, - /* Array index: 0x45C8 */ 0x9C6D,0xF95C, - /* Array index: 0x45C8 */ 0x9C6E,0xF95B, - /* Array index: 0x45C8 */ 0x9CED,0xE0EC, - /* Array index: 0x45C8 */ 0x9D10,0xECAC, - /* Array index: 0x45C8 */ 0x9D12,0xC06F, - /* Array index: 0x45C8 */ 0x9D90,0xF57D, - /* Array index: 0x45C8 */ 0x9D92,0xF57B, - /* Array index: 0x45C8 */ 0x9E75,0xB3BF, - /* Array index: 0x45C8 */ 0x9EAD,0xECB3, - /* Array index: 0x45C8 */ 0x9EAE,0xECB2, - /* Array index: 0x45C8 */ 0x9EB0,0xEFAD, - /* Array index: 0x45C8 */ 0x9EBB,0xB3C2, - /* Array index: 0x45C8 */ 0x9EBC,0xBBF2, - /* Array index: 0x45C8 */ 0x9EBE,0xBEA3, - /* Array index: 0x45C8 */ 0x9EC0,0xF3F4, - /* Array index: 0x45C8 */ 0x9EC2,0xF874, - /* Array index: 0x45C8 */ 0x9EC3,0xB6C0, - /* Array index: 0x45C8 */ 0x9EC8,0xEFAE, - /* Array index: 0x45C8 */ 0x9F3B,0xBBF3, - /* Array index: 0x45C8 */ 0x9F7E,0xF9D3, - /* Array index: 0x45C8 */ 0x9F8D,0xC073, - /* Array index: 0x45C8 */ 0x9F98,0xF9D5, - /* Array index: 0x45C8 */ 0x9F9C,0xC074, - /* Array index: 0x45C8 */ 0x9FA0,0xEFB6, - /* Array index: 0x45C8 */ 0x9FA2,0xF7CF, - /* Array index: 0x45C8 */ 0x9FA4,0xF9A1, - /* Array index: 0x45C8 */ 0xFA0C,0xC94A, - /* Array index: 0x45C8 */ 0xFA0D,0xDDFC, - /* Array index: 0x45C8 */ 0xFF64,0xA14E, - /* Array index: 0x45C8 */ 0xFFFD,0xA15A, -}; - -#endif /* ICONV_FROM_UCS_CCS_BIG5 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * big5 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_big5 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_BIG5, /* CCS name */ - TABLE_16BIT, /* Table bits */ -#if defined (ICONV_FROM_UCS_CCS_BIG5) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&from_ucs_size_big5, /* UCS -> big5 table size-optimized table */ -#elif defined (ICONV_FROM_UCS_CCS_BIG5) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&from_ucs_speed_big5, /* UCS -> big5 table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -#if defined (ICONV_TO_UCS_CCS_BIG5) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&to_ucs_size_big5 /* big5 -> UCS table speed-optimized table */ -#elif defined (ICONV_TO_UCS_CCS_BIG5) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&to_ucs_speed_big5 /* big5 -> UCS table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_BIG5) || ... */ - diff --git a/lib/iconv/ccs/binary/Makefile.inc b/lib/iconv/ccs/binary/Makefile.inc deleted file mode 100644 index 7858230..0000000 --- a/lib/iconv/ccs/binary/Makefile.inc +++ /dev/null @@ -1,14 +0,0 @@ -cct_DATA += \ - %D%/iso_8859_10.cct %D%/iso_8859_13.cct %D%/iso_8859_14.cct %D%/iso_8859_15.cct \ - %D%/iso_8859_1.cct %D%/iso_8859_2.cct %D%/iso_8859_3.cct %D%/iso_8859_4.cct \ - %D%/iso_8859_5.cct %D%/iso_8859_6.cct %D%/iso_8859_7.cct %D%/iso_8859_8.cct \ - %D%/iso_8859_9.cct %D%/iso_8859_11.cct \ - %D%/win_1250.cct %D%/win_1252.cct %D%/win_1254.cct \ - %D%/win_1256.cct %D%/win_1258.cct %D%/win_1251.cct \ - %D%/win_1253.cct %D%/win_1255.cct %D%/win_1257.cct \ - %D%/koi8_r.cct %D%/koi8_u.cct %D%/koi8_ru.cct %D%/koi8_uni.cct \ - %D%/iso_ir_111.cct \ - %D%/big5.cct \ - %D%/cp775.cct %D%/cp850.cct %D%/cp852.cct %D%/cp855.cct %D%/cp866.cct \ - %D%/jis_x0212_1990.cct %D%/jis_x0201_1976.cct %D%/jis_x0208_1990.cct %D%/ksx1001.cct \ - %D%/cns11643_plane1.cct %D%/cns11643_plane2.cct %D%/cns11643_plane14.cct diff --git a/lib/iconv/ccs/binary/big5.cct b/lib/iconv/ccs/binary/big5.cct deleted file mode 100644 index b03309377da2915f4b0d90cc1adf79f0dcd5990c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328072 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�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 R+u?7gJ$2#j{I|QGa=rc5+n+vt)7xLYJ@@n< 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 diff --git a/lib/iconv/ccs/binary/cns11643_plane2.cct b/lib/iconv/ccs/binary/cns11643_plane2.cct deleted file mode 100644 index 29cedd4317fad4a28a6c8f11c90ec7faf8bbdf4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 257204 zcmeFa)ske%vLzU|?=bZ+lQT0jGcz-@dqiYLWF&k}KhERG{KLG=7fsAE-L~C5BCF0h zw|lzfO3PJ|ZJ>s#x|W((N>$~<-#z^24-XIje0F@YSe$m-=)9jC7uGg(`2Gc|e<9R= zmq)#SefYco>;IwppDEHb{?Gnzq5k^|>cIc`@b~}6|I6z4f5h^45C81p?;rl1hky6s z-+TD?AO3@f|M1~IdiakY{*#CQ^x;2y_~&rPfAR2NKKxe?|MkOv^YGt3{C5xk{low8 z@IOBMPY?g|!~gQ|zdrnL5C8jv=#3V6@{ePKSVrHu(vG;d{<@0(;{HBpe#I{5& zw*Fczk^Z$Af6KV7D9nm9BdyQ#C7PQ?^4tAyV}E-q(q?lHca{rlCDz*>61&89>-}*{ zl7&~3k_=y+zMmyYNK*HG%sjEa%_qbfE{3z=i{TFk4h#$hN>K;E1hn zYoP3KJ?>?z^EOUoV(Z~++N!p(t!As(2DX`PE{u3Xwu!B5o6@WmW|i=@Y-?fkk4taV z>*K4DtC)B_UO!5XK`#*Fb$Ok_7>zr;VQWm~!o=?N;Ow#aWn(&b!_GA=k#43&GrV)=c z_>iIen2~3Q5owA`30^E!gdNaoml`FW|4Q%@G}Tg#>Q1Ryy5_?se9{EsnKX$z%_v$S zQoQ#w@9%x^pr7t1```px;0cpSe1d+dJRzShTnp~4U1>+B9_jwV+<#bUl!)`aak2IP zPc1Qi+(!mJGBL`G{JoJ-))2Icf>8hEQi53Bi;P&TfDaVpbz#h?Fj6Fq;I&cCbzr)U zGtx`GjchY_yl?)4td|fH?r-wPZ3$&f31v{c3lt>@5cN@H@RZENbTWG7KaSq_6m>;K zQH8bTd+q18hUHa4pT_oi%&21;<25!$o=uH^k`;GL5cvIfw z#~BjfQ$pC65-X%vKHkr>A?M>JoIy>(?;5#W5Jg+_r#E0TBt_}ph*vgS1}}aTiR;#v z{egcqcjFSpZ7yp`Isar%8O>54Q!9|EH6D#y=SJ>TW7_C9(pg4C*BCWs?BIYA?>fqm@yb*qG0Aur-}@UGdFHmgF|8eW2qkiZ zU4eJ(o9&m4-V!@rHM`D+-zqfD^8<9mcROWcJJ@4;vE!|?z1qIp`P(b3_`S6Kpq-Sz zkKAi)&$cgKAVCx_SnWmpy*v{OdT*82-N+B`$cq=roAtK5_|@b^F8w3%4!vb>)7$pu zy?8UclxNvI?=`x@DldM0eU`{u1b&FBBB#i!FcyUuBF~Yh$R!G|MSez*MI+zwy+nRR z$q!N38No{s`6BKXg^zC%`F3jyttiiDLNDXb01X++T^Ynb3y|)Pjd&BQeZ-{S=-2v{ zK1TZ3Pn3S4e}|Pm?T_EI=}B^un_%BbYQpyvS0Kj+7a`VLgctrrWI=h7_1C*KtX{*~ zd)d`?S48Z9xt@MH%-vnxsM)Q70GeX8~YPy=fW~gbS-O^Mw$PawHuKAPvaGg;xVozh;*fGLe z#+nf^H#YIXi-H&{#@4k>_S*wSoMa^XjdyrNw!EUl9=BWV$ldlRKE&THtc=-R_7Hjn zd(IxQ`|S?z+733`iRX5+J!wZ4K;LNxZcx)1_Mn|uZTH!;_M#nlv~vvE>9-)8=>_2C-2nz=mq|~h))zb#fwbwQM{Wd z(8nZdh+3k0-UgzgX5NMsQ3pQCU|i>l>Z0V4=m(rdf#)dMnZa9};YiCQGldMjkeL{? z(F{jkCXz{I@)__pLrlzMGNnu?L!8QR?`P;sqAyL#c{&yu{f>Cz&`dwFoV#NoqjmG)t{gjxh8%?!>vsJ55eZ2Z_b;9 zfhMBbTr`KsOz8J}{c(TPq&T8C?05UqKCSNm#%KI~DlC$V)Piy=I|;v!fX!WVM^+v( zhwMpyb_gS4DdpS{`(mwhvX;^%_E~KNw(L)W#!i`U6qx--`5tyMDI;r6ijxv+pPdq9RzW0f z3D422FLg=XQg~SUDWWp$BAd$QvZW08kRf}?2*0w047o`5DW1vwg0dq zn>l1m?``f zdSAtdUt_+gukH)`3O;zzM<_#GiZ*=kB3cP5<34yAy(BA9Up*S_2%2a=S_j5}sc0|S zr8%J}Wq;O=)}q(gXW*60mke-}dCF`vkD0HTP3Dk6beUwpg3Kjz&d@8Fx%#PWESrHX z3qCzQT^UF(BNvsOWkcCowwLi%2-4g&&&_QU>znK5WAoU2Y95-KCL+*$ZsOGb2cEJu z6R>$6T#$w9^P0zM$8WrY6$ftbfzWgM5DTeSw&h3vNfo6`eLtv$Euu&Q*B19B>&xH= zs&Qjcl*B0|GLRBCzKPbZwP>wco0ixQw0$*xxsBdh4lwhxIDl!ylWg_fWrXNBidQT; ziH@SkCQLHdY>;`$P=+mg%aj+(cN}iMG`}>zmR)_sv%i{DCe`Na0w@zidd)4OhSd__ zMbbkqpgaZJ&oW>{c95N9cf7e@!P?rpQ_*v4y;_%+_BX!32e_>f95LdiTBk$jFgi>Q zAV&}fetG_pL}$@Ol;^SNGK!ZfLtM&y&w_^b<;`dMA=oDL5Nv^UOin7H#=gi7TAb?xBmP{B~9vi_4E1@UnG5T7El?Ly~U(t$4`7XCnC7maO&2owCmy$A{47d|S_D%L( zPWc;F|B#a>*i<6NDHp;@ zB~Ytnnc?o{%B8ZW)ZN&s`+(gTNb!cNZ-RG7`X+l&?TBdinOhywt<8TPGOboA1 zjFRt6I`$vm9>y@h+~>G5(-A@+7CEkX@Qu(TP6~T`E`2km@gYjlosSTS9%AF$`FM`= z9ej_z>)Yg;`>x#fooVgbhsgU7Zy&OwAU+`Acgbp_Kx_1vg?FNlQDR$^pAx0L*qW?I zTp4}I!mmuCrzo8o-A50C20G$K)|5485tHoI2U!=Jk=0X4c^5r*ndhD?{F~(rMaz)2 zWR2M?Q_Ha|Vk%0OI9%)cZUh{c|7j=pXu*Nq^FwAQwy;lP1c}gl9Q%-5T*(;NCmTVRFK$C(Vh@dqgQ2 z2>Oqu@)|qShYTL2*EsqX{Sifu&jN*6U^W|q&38BbxR;#lRB}{+>oski%`owp`3N<_ z8p-hET4chE6rPoW0aAEYnw2J{h=w#F%}Wuv&my&?`PQMo9#B8}mZia@VKn?`R z5d$W2qnzVJ4o}E+a>PdvIcL7u|MOb;Qwa|v8$K$(DZeX!QTt8#1kKC)y9#+9tshhp zx>@U^D9NWxr)^;Foi{$t`}3X_ND)K})|+4<_G)X9gS8`VUpv=cxvr(WqvcrOi{7;@ z?NHm)cC-T%`9nL^&a`0v-y$Z;OD3o3$_hu;ls183Ca~U=Gl9j9i76!PWh$8P9+Kx<~2jxQC zVB{c{qP1`o*c`_kA92M2cA&j-!26E2gM8(qSUIkkcJv)pN7;d_D2M~Ty@{ial@-U( z(e=If2o1L}vE?ZFIqLi--w(e&`t$wWZ}uZreu>}e2g`g{9QcjU%JDh;20!7}uk!<; zezjjJ>}T@%zP-Q40=_raj}gkS!*{pmW5$>%ri^)GmY6R_Sj!RyVxgEbMx2hRu*!iCEQ(z@g*?%S zd163Vj530-Co8kaz1c_>ambR#vploYSR2}Cwv>%!5y5QLkG)CX$pR^5!gIEjZK91R zlo7*hGMmcAvzcrndx!HZvPKp&P*VKM*q2GmQ67~0Wy(9{E05SnxmoU%IeyArAL3OW zmkBZD5gX5bLLk#&&J`m5R-DTUBxn;urz@ip1+P(C@^pRVb z^k4hWC^_c(PlC1uZV58sIGxNUBfJg+eDK(0Iw5-(@WcYXM_E~v7WnzbdkyZYr&Ius8Sos<4RD^EZOle6m#4>9q(T3(?gB~J@&6-TZX4ApL!&P3}`mxLL& z(m~_5KKAt8_t5wH11Q~oWEcPS*F`KU%*xVz%V0R-u`Dmjs}}v1X!-hYeeec$63$pl z5I;va>&0U55Z0c6-kbPCexN+tM>KGG$+LJ>^@(4Ak0$n-&aCUEd9u`!0{x@GXo-j%|O~W zEf8kvn67!#agDLCK2}UdveOp#lDOyRT1s(cT4_~Uk=CU(Def*UOYb5rhvo8+oGg~7 zRgRAu70|Cj7F4BFX;oMStRD(t3;tNbdv%6D6% z3aNrBC+n-CDi=zihI(EV-H`YAorK=!QpXvmbL$Wf9XO>^;j`-`I%Ek!bV}_HolS>5 zb!r{5r1qCCqKoPhI={}K`(y)Kp;J&9(oy!*>G&>Iofcz39o<+L*J;r6=`1L5cP+<{ z&a5-(ka={#obD4ggnjX$6QEay9*>uI)bv1Y*h-rWsc#}*|rmblzYX4!i6B*0#)$!s0dYyVF zyy28OB`6h6y93$E>2Ru?9w#!KlY3Cu-+}kiX?41tW+(iHw%qaTbUKy7sPmdJokqtO zu7i(p)(_{EGmc+Qt>c>mK6kwGIf%BO`%cjOap_& zz8C+<56}CL{)4|jvl{-se-2I0zw+ZZfd87=#C5mY4_^!7uZXP}c_8*RHi<1`BV^IX zSS8j*eU81w5ZhQIwvHWQxO;3HBkN*=80?8%VmK*QjlrVWm)MK2pW`jojqPJS){Bwt zG5W<2tC40FgAEv2#abu{VX=*W8iW1l1H&<3EVjVck9}jhnGh zcFnGHU|;r-<(B3U*X%M!Ow7LIfU+!ZoxS9Mv@Cfy`;^^e5&108kW**jNwn$g>@NE? z`H+XDAfFFR1KGfe9x}Zk6GG^<_lS4< zGy$V0+X--m8fd(i$!2nx@MtXhi_QWbT1*zB1zB^Oxgh*6z>>vmF<7)Gz^5pS)&{rV z$QFeDjcTLbNH@6ahTj~2>NDEV3$jC&WwOJ}U4Mt&1Ub|W@b`gx>IDCsOegc%D~w)b z7s*9>ArHO3KazjMm8vXj>5@X<^kM=sOhBy(XmlTh)0fdvf^PowzjQJ>*}!qW#J@2%MwQ3A zp2M9}`1mgv6QLS+jXJ~5h%w@K#OA0 zI6%k=A1i$ZHW| z2k`gg>tcEMz+_28GGe<*+wzQ@BCRU2zOJC78mC|FamLt)Ab~rKNC=foF9CC@2F9tL zuu{t7BOORbQkpBpFAeCy0O=K>OoKkLKxhl4yeIF-;SD)*gB+fbP@P+Cc4OLA?H&IPg%iC$r_eI%&N#k1`<-Ry)JbS{!gJ1v zlRV~JIE&7av*rX^Xot45=|rrZRVTdc%sGJ-Cy$bo*oi)(WOg`_=bb>R6Y+I|6`}<6 zPC}29;uVO9`oFafAmbskP&5M9eFK$1n)FU85sN@E0MrB!g+M1jb_L*rKsaCx*igFy z!2sn+wCw>y0G5pcTL^16KwFfS*7j;0Yi~flMG7aG>Vcib4a#1ZLu zIgb6~cekc-+&b=yTjQZPzfar?4eX{-XFMFw#tm_xE>8ZB195R(+!H5%#{D^aJQ#FxQ7)H5)N@yC}xZGG$O`+Hl?M%vPWudQwy+p5-cThTVRt!tP9HsD`Y`!evhO|5TjjW|B|gsnknkQi_*43Y!-jWUQ1A_K5Zkij)m4G_Np zV)6by#j8)XbV|3K{F+K8Z%oscP2kPR3ytD_lh?_&32rFL1ovBP7iW~@!^NX8ve+#4 zi^Jl$xL|kLVvX_B#=h7IqZ?SeG2(M=3>(TZWH{C6F z*m*bKEq0Xi#FO!Bl-{O8^Uylb`+2gTz@alda`v5rXa9w)x?Cv-3hPPlh_k#9p>Le z_o%}P%zD;+L3zB5pocwgV(yxI=DyH3SCG3qX1cSvWNw&?X0qH2j$&khuV5~l!3}fE zJTm_wdxV{wbh`7&iJLmVI}c7o+qnyjoVX2IU!AbUi8wnEPbWp6^goDgG(HZ%g1{uO5LSz204TXhycr+FM{$}Hhuuu# zU|pOz9mlTmT6`WSj-rhn<8($Gxgb7`H{$(xJ5GKP)`EWqLEKpO<7st>q3^D`$`Uu)7&nZ)IbE?LtT6~>?n+x1}L8w^3uEhsbZ#)}* zBQSKkqv+#5YU>`z(&O> zGsnlVFP%xz6GTqPmgDwv+(wQWa-dwklG6;eME6VeQ;i%fh+3t_UDdd$3MZ+4p{>9t zWutm%saEMF=wXc>dc8uA758G^m~p0=d(*rylYh-Cm)<-#Up)_xs9ZXf+Q4G~zC+7^ zPaPoSQeWxf=z(70G74t|o&)6Nz+2#oeE1OFK=~B-5_k=OBLVUn)5S0Ga~$5JHu6sV zl)KA>@#i?OmwU?bQ*)0M*epurXH{KQRpEiEyeg?mtFo%HN_T4K+Ua%%>`1i>?R*e{Y4hFSGjeXTvt%mPJQ5)6Z)J^ney-5#$>0NsG6tRHCdb{4r+Ip?tfl{w`>TP=3 zL+{pK{fxO^%zHCDYd)FZ%-_ui^EdNX^Rt=fWZDg0G{d9ji}{Bc-qTx{_Fh~8m(^v4 zeHd}UT9?O#GhJSn%SGA8Wn;5lP8Veym*3^PUoEtQ9Bn~(|NT8kHw_wsKwVH9yxunm zZv>SI`;Le`kdpv*IqaU}*sPMJRcjUTYZrkde!Hr2{Y`L6cbFm;Q{&V; zwJ%}$;tu5tVxPF5P#;G4B{Vq<56E?Agjx-IndE^@CUX4eNUT<4&7X^&*rN~KW>~-uQ7jx+7K4Ry z4Wgp6Xf56h*W&&dg z$~D63geT!jm=pE{<|Ld6Yr>njdM81-jLpjx@ zRbSOx#R-B`{ooPqgOWVJTJ1KzR(sU$w1@2;+Q_vxY4_XUhA0F6eh+4Y$zUpKSv@6- zr#u@?an95;1xBWH8ZgO`FumRdzfcHY2ioTZzXR{FY|dc8%4v8*w^Mu7@PHcLQRCkF6dTiL^kf%n3!;zd z<9Z+tV_2n6ay2T8)#9|+Ex?S0+hTEBJQg6wa^<$gYXJsbHR!mH*m_q1Umjo4RdQ8a zWmiMk)s=$|`O!tWRM5e@;b1fv42D=g7z-wX$zUWH7e*8CO(K~HCdi^hDiIU((1sFs z(L^6MB*azeyfJ^hqqst>^T-5wSdlm7wRuAx*&$7@zmr0OEcyL^*HxzZIRY%l*bx<8vhtwa? zqendSB|V~r8gUdvU)5LiWqmZV6fl+pazk5V0gIDND?P{Vh=oqGQ2L zEbyr%bieBNwrjw2uBNN)LS}IFTpj8U(Qf@dJBYgmaqA%L58`&gY>+Gu)`HbwiOmld zf@PGIAl~?UNnlk1xd{;mD-x9d6SYJ!QBG76A9#jQU|5huK2b{0Jra!s_i-K>CGSsE z^Wc3xlqc-x!IHc^@5u-9*Owv>_T<5kn^ZqU4LB=TE5c~CR3%s#uzc{CC2JwC zusN;;zL{%8ZRAzg#5Hx%SxgheuEBP&6{I*bO#&!I*-7+R%_IT5iIRsE`AGiC&^#iL z&*YQ&L_VI6~EYt9-v|qgt=xuI*Q0hrxGN58kG^DPd`8f>#i`18#XvoZ}M8 z46dbk-mO;iyd`S%ef>yJoDekno*rBf#nQC2EjZUgXc4tSZE0A_mWrirxiVSMyEd+^ zYYh+49d2ua-C#d>w|5Yp3G$N@%fuitPQaguDZWW!m>8jkH8)A{Oqd7X@+GFviwr5| zuM86BSMR(n>fpa`tlj?Je#7c(Y;WU3DZKjY{e39GCmZ}6{9t3#PcxV1rA1h?DQ_wp z+~u%5aBHQo9Ec+vs|n+Jyq9_)Mi5KS(y@%-(XM4^>05+sv~wMVQP-YNdk}%Otc!Yr+WC=H7fEGtQ zT2F4N>)8da3*vflA&M?A!S%!S==$dR>H6Y2yC^@o5JTvZ8w3ebRB-os5O)sFfp^NP{v<`hk6SWLO_0Y>&_c8^mz`Vi~ z2%lD_;QW+)F>OtOw`pUFY=>9DF(s@`$$Lw>C(~oZj?cNoi63PHuWy>0`lhx)3_i;4 zY4^x92cYG!J?sy=!*4jipXB&YKKv=9?wq{9J|-8+^+H>nX0?8)U+J&eOTX4{^u!g* z&O-RL06i8U$8xmrcgsS|cgui#1wMFMlpu`+kHMY$%Hbf-7s8wbH~`EcwOQGyoS;t&i=D{=!bXR_z=qt`TlU+J;Q6b*Trxl zFA8hb8KKr=L{H3NeLdL(`;lKQUo5!4<=OIPd1Ygk7kpR#Se`787RuUeOcb}nO-OSa zM2%RxRc>I@4eYvgZdl`1yDe_u!cAC1jhML!w{DJ&kR*uHfV!H8rs=pl!A`mp=_EUp4LVWi!ZhOV1UjBh4E=0}<7t>0 zqK`Zhppvvhnmx=xi?zeTFgpygQM7TwFoZ8py(C(3Y7twJPr6fN$tmU0X>U56(z^^z zhs~OfrpU9?;q=P$CHB9`GPq=X!0F4#(!2C5150>f8QRe5O&1*LZ+hbV-M8J>9elR? zvV&iDJVFQV^Aqejr!J<8^)IoGRyUr`XAN z3d72oX29C>=qEB(nz+1>53@_c~vyl%JK!`6mWA$5qxllG)7dCkw& zw<=|l>h})Lm@e?)-Cw5In$2KGV|tus)!21fpK&m_H_PK#tH}K|;xP$HxTO&va zvza8FNf$B&UsaG7aI=E41}kfLpK6loubQ;_6MikT*~1#X>I6A=x}4H0!?ervGP4=7 z)=l&uGK2m}PZ^1g>ybsQ$bo{m$zSfc8*xgynXaJbL+_nxr-Jk9LVt%_Fp)p0v)Bb$ z&5FD$h*c-H+~gP7n{;#U3nL+2NFTbMD$ZtgL0jOy5VSRlO^qVKG#%LdQKoCwUuHL> zk9zzYs{D?kUP3cjPo0zF#&XKya_$Q`JOLdt#7)$NTU%_Y%WBGL*FIrQeMPybhgSqN z0LS`Q{da@XK)*2zu-l;0|I||+3K9i!?MQ+*q9h5Y zNwA7ZGM1!wQ0U#41$Y9O(ih;V0#I476wC$F{S2@Q@u*>5?TX);rbei*>1xEpPNOpt z)^s`@yege0zHX=98KCZW+9<)dP7Ca446m<_uwvL8cA&?Lgc37{n8jqen{K9C)>^{n zOZa|+7jH90e*AR+TQAlN`Ham7AtzvEpOs8P#7vxs*@A>TA#do;2L{+`r8tD(&zmgo zV&{exObXT-;YjGgo5WOg#lZbxrKpOdLTyD1fr_5H?Iz36hFxx08VZDhC__nDl!Rr; zY?7au%!qr`Y&BEOTC>+IH6Wrh=}bE_HZ~j%2g4D3bC~Yo6Yy$TUIK|sHq#B}9G*_W z^K~DlclSet0x9_tugXq(KzWp62mJqFr3#t+J8Lmf5Szg9AM!W(H#xF{{FecdXQGBT z)D1O7M-5M_tLm|OiJESv?x;s<#79lpPt9$nbwhPqy`U}L)xd+A$6pP`sHbYY4S!7x zb_2!N@F5C@n8C|d8u;%X0~lk77@P)=ff!|g)drs-VQ?G#h7ip(8{!7|9(o|$a77Pk zELNV04FS!EUs7z;3WlS^dDetAf)Z9*5j!hpT60#vHEe}ntR*W>wl=IlpOr_&N;gNJ zVr+1PB343=75A`)tTB`xD_#w2*$V8VZd$9>j1_D~8+f(CODOM{&H8`4xTo&9d*enV znYa-llzaD+`x|OR&kZb)?z{Ud)sOC@8?13J+=vxvwr;$f?iYOP(AIrMeG*1!bm*SB zpWScJj@&!X-e&#Y3RObLP@!pP7doOYgqERV2&f8?7ebv7JR8EfOhWTe zH*^j)lDKQ=312NVB7G}#36(>c5TX%Ehv56rI#db)*CB2dT0m#07XsH%$3lzHDTG*t zoWIrXn&81o7by1hBC*P95 zT>%!Lq-;{K6|hGkS^(+`h+M&0s23asV7Wk9w2&;63WY+X;4gTg^A(DPP66mf8%QsZ zrwf6CtH4=CBcXza)k$EnKnx>ot`IJ`3$+3~TY!%Wh*Y6mfQ>Zz;iiI)m9>6tP%GC; zHHtL)quMZ8tfg!D8gNnT)UbbTT#MBrwL+~`!+mOQeAru%Yu=iR z>1)K|TBZiuYm*vfv0AuRueED|+EiFsL#D6wYN1-K=BcG>z%BZX+OjsQk^h8QVp(&t zR_7Vtt^?$wK6e(Kedi8WomB^M#|UuLS$CzKx6XX{*x8Z}$mmj}J3l&`&Z+a%Ido;6 zUmcFC&aw*xc3x@jS5~6;Z6q1)hnL~6;d!_oa&8PK!*9dyLvVfgbBJAsKZdx^aM}4e z{5pIZPDe6fHFWbK?mLnWUxsvt;p=cWk`EWd)9`J$8WKZ>;Mr%HBI`__rpM{?^w&&2 zyY4srGE+=nr^qDJ$LVGIGW{_O!(P7E?X{cvUNMvIjeFT1zlZkvJ$Q9M?DiVA_7pq39=;x)4_^*s z)hTico#H1Ta~#y#W*_b=AINugI;broGz z7dJwD6f@<8IIrHQx9YW;xNgWA=)Eyqd1oL#-*&<4vb4^u6G3A|p0W(+|weJ>t(1UJ`tj8w}!dXLtl@|ZkkkJV%I zz*8QDNA9tpru%!yXXqKkUBU|FXhL$z7?y>A(GYME`W522678=c@@xn`56i>S(D%^K z@D(%SJ}Fbmk+fp1zAiGSC|!G(;wV8}=}Qjbg{$4HAda{tIZGK@SU`^Y!avsokK z$Ujn!uq)cuk!9o@@yL(NBSd0^DBNUbo8jE|_nB+vnBm-+c4nRVM}ZkoRol-rGv~}a zGtAU8)y#)c{Y;0F;wtPhGtF?)aZhF_V~;nP1B1I{p% z47A#cyIOGz>#G%~Sbtidt>BI*R%8+D59>E8@Q4;=U17`v9N^3Zz7)0KQ4g%}ATxQQ zo}ee}@p>YBF0kV9dk_&%jOKXMbDr$>3qlh=Ks4n~}@?20<7Kjf; zX;D=K1Bze_ZoqL;*VQSOb=X-q)`8MGd7@6^b=;}78suNxER5#Rx z7rO8j%1k%Xjds)Ba2K8!!HQ7`AG|8a2p$~a4L}(i(F!1zygI}DS#U;n&qA~4EH;YI zI474c%eUo^<(K8x<+mk|+46Pyyg`J4Op4_m(bxm+d)FRucz-{_`cwV{l%43d7uUso z@m??{<$2AMX7f^X`jUH)X+BCAehIt7h%e^i=0#o6ScF%K`ns#`so!M-VcjS-%8Y1d zai5iB3Dj*~#r{!tME?I<#83vJavrbZAq;!MnQ$QN55uBxDttvvI1-MAL*i@2kz^@Wj$Pv*1@fMqMoU9A9wK|z;)~0 ze7D_&rdt!%bvyU#yS;7$WAIS7)Fs>btUj;1x7nles55Gg+DtP78b@&hyBdi`_<%s)hRGp<}jahkCoe`5~JYKW#nRTi-Izr4W*~fwBbUSP@Ed2 z#;GCG+)KUO9d!p?=tr~B6nhM2{aJ5?3~;$-aW>zkv?)Ab+V2v+vMvn!n1m}~Zg=<& zU&7d}Oift3=)Y--$kjz)uU@OuNp)n3I^UDcssp+8R-LR8R&}vQch<$dyK{VFK|4ZQ zkQwZnVa^OAvk|yvUpY{I!1O*M%-u(iI-zyqnMUaSV=GhB)QsJ!yTG>`p~S1kZ)^k4 zZE6oPoCmqhLzy$qkqMb} zSNPVfwQ{e#E7!`imG6GA|;GrGDh(x#(9yE|dLd+MIM+wN0$-^DGNbPr$|A4O|BT8);dY2|1= zgFUn5jN&=l&9<}Y>@dS=v-xa4qlnMo`x$1>jw_1O3Vd0GXzTaYHD|AgQ7g*-!kAEQ zfsL&KAKoJ-`vgAt;fTz1G~qKG^+(ImdIDaKMmFPIKUdDxGvVeEzJxBp%LxDVqw(^a zr`hb^rORW6TXK#Gb1rWm=i2l@ExnMy%G5*AM{D94dq${d9?s|RI=l>T!@Ds289s#J zukb1i?uX%Zl;`j!ybr@u;YIkG0aD*nKT|)_GBzXiEA^I^q@}E#mLvY9Vi9G&h!kM^Lj(qP&W{{hPI(-a5Odui#=$2+McS1`1YoOMj$JQq>Xmur9>md0c6e|b&rc6A!mIH7@=}I}$8e{J zEno5MUi?{H6gOL=^1)Ol=)t+ z=j(ZUbXL#V3-xeH@9O^^qSOoY^gW&tdX8Saff)33_>#R0?fwBFy=V_MVAR?p^!Dy< zC7g~i_Xs{66O+f-Y3vzW#>%m3Ot%=DMnA{Kv2+ZZFoujWhNWZm7^oe)M#QwQO86*4tq7^B zHu`mZ!&PwwpRa)1RcF-~R;?Np3)l5ny=tup+0?F~-xWrMavRx}x3O(@Ro$ky zt}UXx^=%7Vph}c&bqoG%Gu!;uu`O-G+r-wh4Qwmh)YiH6Zv9*0?=~dPXZ4mme$#A& z`|=)l-!}!_zPg7syj|KOYlhqPS+EVOFL&+eTL=|y+kfR_60Uw5|_zkewm?l^^ma3qxsSDXnMS! zBHreo>VJDZ;8jOLjp7Pu_$Xdv3@;eZBoc|>{Xl)k57rkX-An`H=|&n@{v&CW8{l*U z2yaxy@m{Cb8e`91qX%yEs=aQn-fNHPHh+zT*2T{U&`8&Q|aj0l$TjwG}1>vgJonzp9ZH)o*I# zO;Oa8y~UnkCA17{!yLbfVXI+j_!KQ0y(Tt#X~cE6+KW@Ycm=%3?%wN-ZsX7*n@5lt zBD7D0-X!#5kwk?5N)czLJLy)MXPESdj9QYhIVE`mF=$+o(4!nRjv1B&#A~|t1LVBT>rkz;3(dbdGoBQWL(3}u5$L{kGviwq*eZI~X`a&5gMEEO_ z9x+XNh>!M4iNE}1HCe68j#z`0W|MFct?{i&J!W(}D>0S#W ziT5pncQOJVrf2D~uupoDp2BK%3HT_fN}7_nq$`<9`jWQ9QPRLI8$8O5JCF9T4xX6c z8;^myac*1~lV``-Iifeu%&9krSLWGydY(XiMbc`|Rsss~2R zk(Y3X?iTi)MuOf;zmg&}B52Z!^fHavH!0b~b_1Mjj2k1AcQYE3#c*DJ zUE|o;H-O)J>0Ni~t;gVc4|99Fad+GvcgDc;crYH1N8|qZj!B3q7%;zPhB@-i>W8rF z>ig=AwYJMG(6U9&-;z(Zt0VZdhi*UL0&z#qtP66{qvZZZ|9abA`&d3ruZ+lr7HNp7+Z=`E3tY?4jB3_CU=Z<9p0I=8wf= z0d*E%>XUg%5vM=O9~FZNrQ0Nd+Q+!_I~uf0}IdN$1!1JOsCD4bIMY4_;YPuo7V8+ z+Jd`$*}iOXW8CMof83waQ++-UfWo2 z|8%5`UP_cWkDGF)Zz6_cAQ%+i&xtcki}}d(*t2=0+MkHaJIeC%w09S77$#yPg|wSlYkX?r@HHYYIP1XP}g<0nGIX?ddT!PcCC zv@=k3UY!Yr=jC~EL7ouglDi;>0EL)wSzlHcWEm!p?nl4S`nRo&)YHV}H1Rr3xda@^ zmU7I}5^_Zo{A)U!=BBG@YJ%NOYttckq3LY`JxzPl{n0CZ-tQB0`{us0&r#NQ^sRkw zAG`E{LzE_AW#2B;6URh7(M(;uu zuAxq>^K0O54V10%vaI{-+&a1Lpp{-X*M;?94g9QA>*Bg3?6AYFcDVBncis7Sww->b z-Z^&0on@!pxp%6aX=mR#cb=UFaIbw)}#DD>R0P(kw z7=AplcI2+Cdf#*IInt%+hP$L?!>?EoduLT<#113fq4W-W%ucpLJ3IM)xwGtSJKavP zU+p)0ivRuX{)qK)*zfm?{dB+H-|gpntcAnV;r(!Xz}|9zPmYp3_K?Hf;o~ShJReR6 zc<}Igygq#HPlw0D@j!d&0nex7{c&@=J06dxhR8)U&|AlH zz+?uSz$UZ_?)bVmKAy_VdK+T20H2+q8|Y#W9`V(}to!@h3r)zk#5>GU+*Oeu5pfAe z+IQ>NvAV%7wShd;Tb664JLla*HsMWd6BYCw+Sz$_sB4e7I4X{qyHn+a$iQcVS~ooM zF2_lv;Arlfnf_eI5wnYY)f4tz0qVXw#?Xxj+6=37hgskGcitl+_V^^&N5N5G) z^`Bk+=U4y5)qi>QUtRszSO3k`KfC&Gudc5oSJErlmHbL^rMyyIsjoCw+AH0a{_5t+ zaAmwQU74>eSJo@rmHorHASO1to7DRz#@8LZcT z?%Vd~9JnD6`Qz6qUMhJ}8s`^XU;YA?l{rxQ%k>WY^erz-J;HJie7=65w9CJyuy0f| zc)fnQX1}6fu;KiVKkh{7QIv!{jBc;lsr6@2U&ze%hPNO5-$1H?UGXFBgVNY7YiE#2 zKgsqA%I;VG0y#9T^d0tVvP+2uhW#Qh2K@T%@j3VJxkRnO)A9^P^^ICB>IOCY-VlRN zJbiVLr9c_*gPz7h+O=8%i*UY&3X)c>1pQ0!{XA*Ry#Au|fnC{+l^xjAKSN>{~SGzxbBPw7&(e#kWFspVr?e++2UJ?R<}h z^hUzlv|Z$2r!M{7@ODvxAiq&i3rbKKZ%YNf;c*?Kk*-7Md#G8d zD4zqNhQEtSfAr(e4Gpc}dRh>nQ$3Z?SW* zgfpBhkiG-EJ^PP8Zn#%)pEZ|sH|#7F^^HMHIhWg7_LiOHz_27< zR4FyBkP$vrd_lX=5##^M>Y9}{#m(pb%ko|N{N^Q-)J*>Qp69I9xHqgAt?ic)vs_=d z4r2GFksNX;dQlh7Ro-g1LJujS| zE0p^Cpz*(H7x>F9%KuKE2cY^YYGWrq$fxp!d=HtyNIoNJB~N3v*l(fdJcXs6Z^4_$*?$0f@`0Gv zkqh5GWVx2y+80xqb^A@j^H1$lXDK4iXY;XK4E$<#OJtGK1WQ~UAcz!@=!ub;C8<{R|+zBC7IFl7mjGGuV+_g*;Z@ru+Z@f3` z*XVfX0S(`zZe;i?UxF-w8#~X1orp$lX$)ROyP)HJ;#;~m zpJE8SAJ2&ur|Tv;8tZvH~caydDQk20gw2=$KApx?ni z3(S}$IP=azv#(nZaZ?_id+fj4mr&VM={=a)*txv%op53~(-S+aYW%hT43^_NX`1V^ zMc_&a;sMAYg&k7(C6}P1mS6Tv_SfXoj~y(1lM&aqf!5FssPHZ8b4_?px`?4;pz07dV&T7p|**!#O5WZ)3)_&!m7bCi+ z|3g2(au2+fKgl2Eck*}nhx}FkEarQIB%z!yqV0RV>^C9!L`IZJEj2rzrLJzPyXwBW z3Av#zt1Du9RoxS1mj72Mso8h@t2eEiB6#J7-8;tqOWg(vP`YV|a+V~YwFxeKH!Uxw zvD{X1w~JcMR(6I*7|4D-k)@P~)nR2PZ04*PYsl)g+N?`A`^}e|QjONQm7T$j`#r5G z;sv69t8mte$C|e0tufey(}D08JW6LJ*hw;5H~Y`kRNUd_kk-JNd*K%TgK_V^b02wn z?uPv*0_)yAcHg>BkRO0{MAV+=V5tJE+&4VZ^kGw&-A2TKoke)Q*_-_$$OdGm4xYgg z)`qR5Yc8zVv!FT2!ft6!0~y3qxs;#e2xvH!;r37}k;~C_IbK@C*l@VbAv#$>I8NwteSA^>^I`uM|_Syl=v#vm&7(@v>uuD=XWsh#`dH4=(`w?kH5qa{>mZFQg)Qw zNkyNSc&i499+FXFmgu+z&n{6qkEAYbNtv@)IzB=LxLzUL3};qoq22Hlo5I2+4Y*37qCu=j-7NkR-f;IXhf905;;y`UMMBBUesQi3!}HB!A)IWExiKh;cCcnLgXQtw#l*Tv6*v?wnM^?bnc22>PfMG0&wppvJZ+f)}vv_lQ+ z1MqR3{c@pOpVoV1WoHe}>V422cBW2u*d25yl!EuTZo50~j%df~@_p-EE91FQe3qCc zFZQql_OSYmI&%}&+jtGOp-_j?HE^PSuLJzw5DtA&*H%}R{^-{%#q57zr15sH>Pc0`ZOyi`y5A|GqL{)@NS?^dx2#5sK7eq>e#JM?f%y?p$|Ul=DJzXtJ} z9~DNdg#D-$TWMZ5L>YhkkvJuG^p>5zcnJ&ieJq_y=Tde`C;Nq=@cq4+lzq2#1-yh5 z`WjKN+i&BFsKTd6D{_jYA_SeCRU1~s6kbJ8k%cTkK#>vUv+XUU_uhdtXffwtORcU)8S%Dl9+coIN#q6*NfS5TBUX=_MI;V8}L)=m^zSt&#ibm z7mbK36Ho`#7HyywpuMOsnv2$=0kQy_`mw&QAF%3{_1pTseplbsSM?M0`#SqY&xn={CA>%%8H7DovzBDbP*js)b{hKoLOF zxW+foR^80(e)+)H{5g$%BmE3v$+PrH`iMT`bPkN*JG7|ZA4t8HeM*J%k6*>{y-44r zQvS`tcd3#j8BvK$I0cQ>rrC!E0;yr-Cg9)RpSxeVAD zetFDIm+Q39#=ZkB?TrYxO z8&aU3H&IRQTdtBuVmOyzyv$Q0-*R2%!1xU+l+jQ*hwa87hh*ckYJ_ZutfW*eD7!I% zfzDtssJV=_DM~`>C3V@t7cmlr-1E4(#c7M%QnoE(C1E>%r!!>hdSXcLdy=-H$H#Me zY+f$mKktwtKz2^700Yz@+yZ{KeCO;;V9XNeCcGjU(aAK=`TWnF=hidlDR^V_+==p$ zq@{=5z&!)*#T0he-mjoZKO*M$VRagRAqn48{GW*8eS~xDpGXzpDXiu4A$&*a+we}z z_dt>%ZA{yc%PW==?!(rR?%`Hvy2N)vH!Q+k6|4rCU74pK*dYG=FJ?A9WSkVY4I-B`Ay1$4lcHirFNJ%mhtN>sXn3lvPN${8?D@lO= z1hdQ_bD%xp-bNd>Y?2wl?Ia@tz|~yFzrDDm0oTfOTtgIz($5xt>K}?n8riMlMe(Ni zB>7cw2mS=Sre7?)ll6h<&+>S05bZS$o>-#xYtBDs>7bkd>?BnS`L(HGr1wMAVh)zI`cbxljt(^#qOSToTG--bWe`{#L(O4to?KAV^$Thb7Q<^pC6UeJ*( zz*BPucE*s~;4rXzAQJ|5da>W&t!`V2 z)(%M%t`BVIQ+;Q)9NDIz4U&Yrx)-(@w5DxNwg-wycFTnTU0c~!w2eibokH^k?Bwi{ zt#51Fo;;5i(fpMI`-V;J6?B95-J|njRFFVES+H3Z*8`Yo1k~h#~K$}WuhF#=42fBf-c`#1K(L+!0g66R}VVJGU9TK*Szlcl+Q83TgxDfjY7!yS~#y#m-&E-=c^%`F>?<^oreLpETi|Bq2XOVHR7(3D4Coe!!>0 zVuSPn(G1md&VA-%UgE5ux%Fa)w_nJX3)$Q-U1-LJ0UA5I)Nx^D^*wZ-xf1zwFjXk$MNIHC9j*epS#$hCA1Ubld=YH!a%gl*LC5S^}YJGx>#P1 zm(ee9dwsAty9RE8RvRV>;1}z_vj(-W zUq4fEl@KKJ=2FG%td7oJ;QnMdZ9`7WMd8l^&M;C*1F zv`VG&hIF-34z2_0NjE8tN)<`pYd>lp`6zdqTP~eA$1{th7q0I$cbX^7L9-?OS@R&~ z`(7vZU-AGu6YUF{-!!~i!Y@19fxJ^k+SYa?c|(+yOT%X|?t8qec{8Gn2#=(o#l2B( zySzgo#=V@5q#|)HCpphX5?sn~&RQCz`{`bqNnfxn9%#0ix~#9 zCfW#q1}|cVrTL+U8sUa;Mty`*Ke{YMfF)*rK3afcKccnCq>tq%UzzX3Zw^=sN7s?1 zeZl#b(Ju>=vgCEw@52x(umA+Gzf zq$I)JEs{DcMM+JxW8{d>fGk2$nvjKMv5Ra{j8*H;_D38Mk6gwnJ;hgqwE@Tk9M^7n?JC^MbGMzr)GvEKvV8P}qHd`!%TCZnfXSX0t2pF1sEUE$|EOkY=_!?MAzU>@xek&2CrlJO(lEjs1bI0~6Wa zZ5A=@)26Y%*glZ{%=1W*HsSltS6jbIbML$N#PhLp!H&R{_YpMjeFkN}0zE^~d+WU; zo!$73H41tU+rm9ChN>QjZ`7^ybqvlZ^OGJJN)fkb4jSN0PV>;@Q%Ru-kmo` zsWorcJB8HoF1)Yc2eO{~@SVSjX(ds5roHkpGK$P21IV|LQltrfjJ!t1;I+syvWv7J zts`|%^fb~3KSd6p<;XqgL*$84@HbUkJF<-kr&ZpOtw^*&bP_2LUql+@$S$ZSDBfr#j|JcHdl{YDy|_0Z;N2`GG*R)ez} zW=`pANNdV-mtLhOkUoH_%#>^|L^tWj^lkc{WF_)HK+;f6v-B%j@fVx)JC_hkq9mhS ztj#mLO8&d|o6;L>GSZ%kQg8>*T2hoA=n14PvHM=GORvQf>GUC~6A50v_(k}teG)=kM)l9Yt=!-N{nl-*yL`u2oqG{(>i zjb=ktV)x++up}wN^?75_=ry{HD(U^ktZ_awsNSf+R%}c_M?7~2Jl)7P@{M7mO|}v! zyTjxQ%HK3*H{t9F2~ZET0@Xkn5IaQgv#TY^*t7REkaWFk(&3e!f+ST>4z48G(3AGe zkZwq0HQdoNnn?_9p&dp?(Di6fDVuNUh}F?jn?Bd@9=xmKExyeEV_-Vq zJ5&eb!F?2ROHbD)$w_t+G%fyG^aW{p7RI%L<;n1Zz55yX3iR0DK;3q)-Dm&6?(pfA z_*lMcP)YPN@`3gE9(e=3j$%*FusgwYKn5;~xOHRI*ogDzATQrz#}ZjPN%{{q)6e~P!kWW){XIfE%nn6UpdK|PDOsBOl&AU5Y4f~CO0ngL_$n%6?wh_#@gUA{%QcJDVx&xd9}Y`!ns2mo@)$VRW?cMT$EfuZYzZoh&U2C`6I>|cB=S;iP_Ovz9u})waYunl`=>yQRmYo5{&PO>zfy*mx2~xWxOD+NdGB%NQ2ZO_0n+uc&8? zS}v=MDWlJrHb#whV+^){F=>p0JH)&ZNLJFaMvL)Aw0n#}QT|Ikj@eTeYXF|J$4So; z?c3Mj9Xq>eFA8MmSf8P2AKTlcFF{B43CS~i-afEb?B~0An)bTAft0en1e&q0K+orX zr>O*Xb#NOVUYK2A3z!3*LFb#3CY=2jx>%*>9DkX6sDy!NPApyWB}uju4TI)=?5;vD zu;mkO*33c<`piBHxWni7Il&oNeR|&wWFyeWZOk6!^_6|~i!>p}B{hkuiD*2ki?Xy>)DSh2#BRok0@b8B zqc>4gGzGaBWhc-3$of@V0lFt@js~I`p5g|#aM>OWM$=J!)B&BHL<1N8rF=EbH{%|IcVYhBIfxS!zRJdCZt1%NPeVt>AImmdCnga?@$Rsju zXpKxe6UpScJ(~%m2j}~$&v^yz&tyw=q}EC!mIv4XBBqG8OKXtI4Ia$yb@JVS| z>Xk~|!tz&3NouWFVyCGySb_IT(UNcyYMHF;X73m<1ss>sCE>OKb~*hnl-7_>_8fr1!*Sl;PtD+a{MYt{A^OF?rg?b4wUr>~yki4YH$3iWVv5ch8 z(e?Os#B9>$8~78+3Zy-cUPd3J2_@bkuV+WR%?M{t-}3ja)oeT4&Gs{P4x@Cu1U<~G zs|`=p;$8Cw=ve7j8gSjpxU#IwEBi`KZ=t4@ZRK1UR-?^$GvBcDgQuI>W&(Z*EqWWR z?;5)%N!Eh}Z%Do);`r!4dXMrG%Y8brvo4P(|LynN=|}XY(3gGHIJl6R^;!9$ljJJV9%#;3G}gfz#(}Xy*2_M8$-;fwclHDJzc>5N{tCXa4}1@_A3oY& zz(0WOCc`JPv9j;>qkU`tgnm!9XPzRQ%8&KqW4U_1xvvXp>KlU!ceE}jg{9)T=IcYl z8B-TFW?z2O>(O3x5S`I}R^q!FJ5_p4GP@175}iiNJf#o5Ah`iLj@F{xXfs;nsjPPF zX&2fEa_d58x6z`845JJtnN?;++BCDw3?YrhH1r`ey3nu!NIR6arRUOZ=^p#RzVt}D z!b9l}`~`R{J&}dgzA5b>uS>6>C$if4iVigckZet7)77++&C(1veI$9CZl24}IU*gB z1ITWLi!`I69iI?-`5rz802!n?7c|64FV)L@v#I$WpaoX}mE*^m2K)(Y_JP*zJ?I@@ z!9qQ*m7CTp)7G2ShVkX5y<;cLVibqKk#WUIhfjp;-lxA7!q;e5%kKBsh<<+7zG&Az zp$2x+C4;S)%Crqn9ZQ(TU?>x~K;N)FU$uy9;2RL}Omt!#8%MNOBo3(qpO+jm&@&u- zd(^x2u@laYzIAjJ-J$hul%1(|$Y7>{yUZJA@ttNe){N6Eyu(v(v)9@4>;;l%)!ivi zLY?g1kQtD{L^2h7JEz``K}WzDZ~|P&rl9DR>QnonRH&HDK&g^KmI2=}u1_GlaY{nz zGJgJ>Qg;nW0h9pcIw`jcHDJ9O=NR{r#*P+^Ymyd5onvZbCmWtY>CnO>8po~ggM6%q zrgD7Uc&c!yMUTlHH(b8=y;1I0-xG16wilA`d=I{7-y`IAG3^vRM)y%67dubw5Iw@T zXSk2v!FHE9aocU?ll(2Df0R^ZWm%3-^0M-ESyGmk6=gMjuFo`+%@k%N(abfo%`~K9 zuhbJt6^QE)<1^FCo1xp0b`o;Ih*kr+sf9mjcke8Spm;rpc&As z)G8e$6;MkSA^k?BxzO-dt25|s(1Js!r*@9;x>aW;S);Ro>vVRVMW-c;Q>P{_)b(K8 z8lRB=V0<;c8F$7PE3_B4hzn)URL0Mgl@r$z)%z9T8o!#SVH}X8{%gO||A`rw_*MQJG3{K_ z7k|TCU&pZXfJ?v`JVu|ONn@YU_vlCTCHf3aMrp5*euaB6dR|0{<$5LUG4q^xfb_)E zEEFx~vH?7gD7hgWGgQ`>HDyy-Th?(4tAm}tUq-G{vjSSCI4VFoL$O)qT8q+{z22)r zZUEcBX0JjihOv2kJ=Y@!{VNMaq6ze7Y#dw1k~vm3c8@cBT*zk|yD4$B>+jg9-N7UJ ztNJj0Vy@-fYa!S$zdY((hyZp2#u=_n64P16-}Epes+cmSh`qrp@0kzo8(Y~*V;63O zz&moU)9dznJ^R>(zDnoY%~u_2-mdhbULkcZ5x7TZ{LReoWjmRWZdI98mT#-XtMgs- z`Kzs;l8m=0=RD{L{D@aGwQTy)z7~Df@P2=0>=b3n_ ze}DGNPrVOZj6reX9UYhTCKZ>oCXGo+vic$)K5;o>7*EI%aU>jZM_3%2o5o`$>Hu{D zZKSzC?S2c%La&?{r=E|MSzIwk%owxAEU?*Q=9oKX5>pMLB*l1@Kp7Cx8MDO{B&o9U ztb`<2*;fvfJ!N;~+VJKHJqye`3XYPa z=&12AWWcMyGS`J31pQ&Z-yfinMf@>;+#m8sxyM5oX*}kSg=xfzSVSCoAQlv5R!f>?_f}*NU&Jaa6@sqhag6I?oec~@2TbqG0s9Nugb3qssbwCMPy<=P^zHIQrQZx z0W+j4>596XF0ZSJHlfx_8a4S%UYd7y4tU5EGbKzBlMj}#DF~Vb#(@FgUxFURL*3DI zv>|mIEz&0>62Hhy3YnD%Et5rzJ;zd%yXUj#4tzi#aoYN*0vP4b#Ei~XOZ zN-Q5M#!9jDH*X?_MLioU#2Td4Vi|6Aqr5j;j`_g@Sq~^y38*#e%KEZ)(wU9j(qI!c zW=UPd71N9561Nn}Ws)-GWI0z(L(Y<(=jkjrKCL6(w#{SnvH8@zYu-0c(AmlP40cW7 zKD-ApCLel-i+Fs3eA~P09edBcd$ONEUwV%`Pn@DN!ecZsPK}e}=r~5Yo=2%>uA8gp zH>7DnQ>*MMi6~32GOHYqHg;bB33%iYEZl7nIciQqKX0+`Mkoryplw}CC)hD3x~8r{ zS_UywFy&1-Q|epvq)k~-pCLLXjseBU5Om}iJEmg9v=9SLf5Xqtu@<09v)77s#JO#Y z5~3CJ6v~Fh*-Ar7W#idcHkyrO6WJj2O1W9C^ZBTitK|mdXYTDc^5SbRGftDo4De1K z9+}~35IaVX3;Jv^7yEba751%fD-usg-9XpVeWiDF{R^#bYML7GL0R;}SI(LV|E4!p zO_d*ME63WgM9YgGt+)MMe_!+u)*j>@*XOZbY#5uuLu245){hOqXBQrW_qkStZ`dsZ z_}ed0j69p;(pT@=-y->Jex~3laZsRzg6~7gIHsGGY zr$IjMWo#k(qeOi#XDi|uu3MdQuiPzvHs70))`z$%@s5SD$omS=zXW5khb-6d$DE!^ zj?gQ1i=Y5&>Q7bd!`WWuYcnCn+C(>{`p2dz)jT(?Obgz|(lj%TAg@gmvDHWT;o8aS zdlo%%haXhmJ5Hkh8EoNx2SU-t#>rQ~w&hpZI5>W8fUP z0RDv4FSZAa^*OeUonjjr^?}dDj`)4-E_RIF#@PK)Pryf>dRebI)W6)lz^P~(iqd6ou)4|vN*Q0I>srbd z%Vh#p0}U-jOWHD%?WQFIR{`ZM4XD0lBs-(Ck2MU(>ht zO??YwW#2)0%zaPaK$5<%>bpr2$_lhVYc4mgfS1Na&^lQf<0^Px6-Y3EOlc#QH&ozcfh^rNIIUg#HEONIZ#Hi&q^T0&*`%;Ekf~1@!eI?v~kER=B%&ei1bbn(Zagb$P|--rjPwESNDX&8SVBSE2r2 zsTcF*gl`?dCaw1U?jF9|!C(5*?dhvTithnCjDJHuU};+}y<^l5rZ>=g)2r#3eDDPN zND|9=XSy}Lh#IpnusLtY7kbenf*tYY)WD_&YMoY4mDA)jgByShbl^skE!=V)c!W1U z{IC97{~M$`-~q_snfNEyPMqI^zxyBjFW^tWBex4>&Qumx#8q)!98Z<_C(Vm8u8m9M zACTYqJgMW?aXE4@(1UA$FBh|gcN=JL!0Q~mMk(*v75Ha%M;dybed3Z(4`LVkGud8w z$|1YYZXn-fkJ)>&Nl@QI_7U_Db3U`=%>Cu*_m1qT8F^V^5%il`2LalhqO?ntKNRqeZYq?qx$mv#!EcjH? zkMvnhKB6h2L82MZFfi9o_x)tS^B6n;%#t1ljgrLfDP_$KxJJ*q4b9 z#v}0lxXZ1me=d|0sDJK-9t4Kw?zwC3n|mM!<}F$oZP4!O>kh-0&Ew_?Yvp0{4Ejnt z4t&mc8XxwS#L;jvoo-IX(`76FApb2MDC2LI0!RYVfFNZMJ9$3ih=6$nv-Af4AL09z zgl8wV*D)qDf8coKYcp1``4fAP9Xp0BAP*ShrZ`JC#Le*=l9+}!Myx5UUmo}QR<@OE zmHNegfwvh$d-#+(XE)>|>2o&Prj{`OItALnj_Q;XXR_Prbh>DlQU+83MS$6?aZB7L zw)t9qr`F!e1&nQm_?!Y0)J|{pPO)`D3u@G}rYe<8f*e(L@L{5C4{;H{{%6_vJNXvh-3Ax|N%b%dnx;LFd zFVi!-22`p4(7jUXO+XG^rGL^%C{;=nF-@u0q^Y^>s}F*7Lw+`LZyU^dvzcUl0Dqe> zo5Wf8S?;@DrkP1OGvHZZ)me1r!As5>rKCYCB(ZV@XHJyA*Mrp>U=}M;CSkn>;uJ-e z0Mm>_ZJ=h7Oho^<0Ds(z{9&Lwo`?s)T~s~_>LW?W93wf%Es?nABJHBOKlC}K>2f#V zTA(Rs%o)h`l}m%z(gSs3jHxRslC>2j@mg!ZqpsEJK&k`Vt!k?W-fcBO`@jaU*1x<{ zo3&Bzx3FT`v}&554ZeOhI0et~~08ipT2DM~?>3ELn!(UrCM{HIM6?4T}F;$FcdDI%WCNz?Mzt(+A5wfD7wlbUFuM9?>q9i+WvOS(iZmA{EA`dTjJd6&J) zUSuDzf6DZHly$7%nyNvonB59mRt;5i@CjL3s)1?*sY+U#s8Cm5)l|*6-UIJ&xdJ{` zO}QrI{XMnn9n^;#-V-5LM9=QJ$6DZ4Gk8dE*Sqv_vIIdr`k3CS_v!;=G3ujwKS>5q z3rXh|P5K0%MV~&bK3mT`O=;|=@R&ISS_Ni-VPMAWH3!WNNCk5ov}SgK=79_xoacz! z^r1kKBtK}t907HiOQ1z_lk9bK*_<**N%nwNNb(UCYW&;i*g18soF6;}N5r?zJLe0e zIdI2Q-kgsl-8%QqA*7kJ$5YnM1*9k7(zy;C!4Euz^`!5dIPaaWune3V=ZUAhJ0G0S z7rB1zb14uDVEzM}z#cpomm(2cUyzLVhd?`U4AcTUtdBd`DuDr|GyGEOx8aDBa(Wej&TLDfngvK zSY6nV@sHaddh|lyqJOdkJ|BS};%(4%{4+iW|AsMIBz_y0!!AG#)>iyl)baF8Jjd@S?=U_9F9BEa za(qFyZd`Jam(|fEJFo7KYWy``fu)^emK0G-t^^*=WkF*=d#;+Z<&u!BK)gZb3b|Y^ zl=J4?&^@_)u9b^WiXXI0k}v1TB}if=5dS$BX)kCiE!s1=V9uGVFhVRsaO23kiCo9=X9F|rk4LYnuDxpfQ(x{Z7Ie~Sc0ONSH;;Hy6 z(@L!3t+*==O34#VRZ8Ha%8ayNrCMoLe3db2_}mZPsRSyOimQ^SgvnZ~%qx>ho98&U z!ML4l_t?!htv&7O$JVU1ZQYVA@~V zwWRIO)*Gc_O}Au7eJ1UZ+g@7NgKhuR|Lh<8%l?i(B}e_2{#&2jRsYd{0DbT8LFfIC z)?@#!KkiEhLT|AC`u9kY44(RHaMa%4^ksut|ImN!FZwI8O^BXL2>fG=^*Y{<@5i5G z*+e=yr#_73ljkwJ)%$jQ8b6KS$A|Ib_zgPV>WID)9nP=CGR=8+UY$4Q*k^##c@MNU zpUwN=*hfI?B$ei^c?HsBKAM;3ZL(n<;>p+39V@cB{WVNLUJkwz)++|Fw&0pFeigPHs_=x0P)L z#e;mHnA}kvE7e-HR4wSqn${=vtZafPlTxC@GzN3?#603pm??PQyaPR$2V^^%H|Cys zY~Gre<{4S`<{|NwxkG#bx;A%77HVWvMSa$~Ziq`=I+wJz`bpC+tYSlO_7n*W_H|v3FU>Mj2 z8pwX2bD$r%2G)URpo50F9C!zcftzIWz%;NA)Fh*ofdi6-Ykv?}CMMbg9248b2}v_C zPrMV~;0E%xqMq0%#)*ESnkXk8SacIDs1_z7vNOXbx*Ud(7~+^4{s;bborpO3moeiusnW8wKLlzRgpvEK(R)X)UONN*>di zi`f%$oM{dv3i>>iyF-nyz-RL#=!f~<{J`5_xj!Mln_tXNWP7_vu~BO=&;&^y&^XWz z47>cUpv&zFQ3^iAfO}m|&^7$sfkmxcG+5HtmKL2XbC-54|nZ@~3D?K}cJ zNnvp%0tt7*gY_5WtCFQV6B^3xPx#2{y+{+vf8+$N$*c3&3xKNpXYLxDfg=A->5{xM zFNaM^b}R3JwrVE7+CgusI#3(wR-$@POVv;{R!yX{`uy!QMSZNDARcH(z~dyR+M#y1 zoool&QRu+|-gAI4pa3CAVIVv=h!e+?fg&~v>YoHj4ot$6$Rs-Ok%rx4{yKl3Kg=KJ zFY`AZq0jUC`6I>W6HzB3(hYQMT@;(wd&J!#g9uCmVLv%f?vo3VcjQl)B+XTby!pXv zWjVit9e#2K9ptSr@@n%pc|AO+%R8#Bs#EmJxm0418YBm2jq&TnCu)DDUNT*}m!NNd z4HOa48CQz>nRdB@o?t5BLQf)zL?WI@qBpTbG?4~3FTQ0RPxo{EVf;A^v@?6S_mUB5jc~H;_i6GY^ z!6->_&?GPw^aZ`aG^9i@Mk%aBC>Ra~L`|q8PxB_of1cJ8l|&{{q`VEWL=I9dQA$)3 zWk^}kZiNpS*ooV?<{)n2nvmo7)cj}j1TZU^Y7{hEje{m=meQcfsvopYtLI#+50(%x zSPfSr;IV3|ngeH0YB$=|cDCJY=TN4?%eB6h@3d>s^T0y8c#+cOa{Izo9JB`YL32QL zgEoK_U|~=lbOz;iZIFkS19pLJU>3-rJV;Dxlj5X2iPJib@zq+LWGAUf0a_B6o>V3! zN@-5&liZ{+$wN~tum=LM=CN8c6B%UrLPHj2l`eFPn}u?rUT7Dpg+a7q_oi5WCHe_^ zy+(wuKOnu4O$z;2@NK=@z&1!bgM6>qvm8oL#a_KvftP5HC?4|Q1(Jn23dbTnle{ON zxMrSC_S;`u_y@~h_COIkLdn%kIP-ZP$*qYI^IC?tCA8DD6RiZikJR4avaXFvD(*yO zR|WNC#J!-K=p=e5<;uG+*4}8)9}EWrs--V;**`rRIbPJu%pgXw@6NFVEO1RMefKVYUleJan2_gY811}08?b&=_)|@ZSyx$_n5PD?PV-ge zb5IfIqDImzu}sVpi^L`|O>7gZ#2U5w#o6doTinmhYMV<7w74W6I~VSSW8qrJ))Dev zpJGLA(ONXIQFVG!4kTU^_Sr)`NY@(c$^_NPkG& zQ!e~}4g3!HoH&4ZH1>uB)@^zB;aM`KY_Zd(}a;U!7MM+$yv*gmz0FSrOfXZb-uCkM^;>Zr`=H z?Gv}`SnA;1$Ms+_m_u8UWjQz?KIfAeC~{5KlksFXSwNdkwv!22m!K=)e&S!STprK> zNmw_W<87U!ps2H)43v0U$bky})QDl`qCn#w|D6Kr_qx4lZ{AlC{Ws9De;iB4^07is zh2SZ0@}CBn=bPJ?Z#x6a`FptM((`N4IockQ*K!X z=fQPw6Fea@cEJPaA~*)!Q=}Y&tKc>`fjkRN$-?S;OME2W6VfD;KNGKs>!gHa8E7G& z&*K@N&w&c?P<^bP*qmO>@*Tv<*c}Em8u!t=pi|`^24{6uxwPvkbtJeB;0yC4`#z8HZ3+ujqsQnAQE8#uw+Z?ko zGf?pVGzpqO<*@Bk@E}ltt!fYXq&li@McX;8p|4?gtN!-Az5dN=u-JGM;cp-oE94uC zi7ZA?i(miP! zxl*o^tN0wM!L>i;^Fj5b!j7zZRNaGrhnBvlZ(qz%7jj=eB+KB!E|faCI(oY$VDVX; z7MI0u3DSIdEDqvsOUUBoGkEXXx^7)}G#?w+&ehZ(Tu0YloS(O#r1Ktpq4{_Yeg;1v zNkdOTN$4SX9eO3Z5gykjO-Wr+lhl*<4WKt9;mMhATN_sM7ep*k zOPEIWjNZSv9zY*~PvTe@;&tK4BdSDLeth%H8uLJ zsmW^!a0W`^YV=mqQFc_|3g8*;2dBZ^0KEV{44wy%gIh>w8Dn~#JcGW|=rUOGZ<92r zWo^Y6%|H_{i(LzEAcy*~#{U-9I1Yd8`7FmJjP)aZjL$Fj5>XQJ#Gzli1z7i?~p!RZ{#z%`_m=iIj!)RC1eVzL(Y&cWDog5Hts_WxRGQ7Q8TyuLtaRpkRH^< zZRcLPL)y?y$Z=tn6nyZ$J()_DlP;QvIFBC(=jXC#9)R5n^aG2)d@`KOg4>dXWE#8# zyaW&QNHPJM0lJgUWK_%%N(Ldvl1b1Uw+?CE*ZDE=yZl>zOVTm#r5sQB_xwF9kNNAu zbAFybP^!@4G=GA&0lwsy`4RXhrB3n>`P=+1KgjpqI*lw4;R{@1)4;;%O{Ddf!QsZtf(ATfU_Vd7Pck0ao&mXTVN%(})bVSuevF

o0OmAk~Sr@OIs3rQf|^hDJCH(r6+Vqu?d}0Oj5U$l+Y(7Bn(K&35%q> zq&3o(r1ers(grCfX_J(Yv{_0{+A5_c?T`wSc1nSyT~b=o9w|L(uT-3LT8d9PBPFGr zm$H*CNCin(rKF@gQfAU)sWfRC#7ub)!llfBL@Du*BqbTbq~t){lzfPqQV8KwN+3c? zDI`cKhgd0OC@md=GSX#GX1W|IOxHm5=~^fyeIZnl9)RYh$Do4r9;h_^W2h>7HMAi6 zGpHte15};88EVKr1c|bLh3c|@N4{kK0nJap1<|wbK)mdG5GDHo)R_GYLKpoB39?Zz zCVMDcRx}kZD0&Z0D~g93i<02xqGY(XC2MQ*i`5im!G%ThVG4qgAy5@u zU!;KRiaZEN7K58Ad*RB;et34}W;nlc3!GJX0-jTO3a+R;2bWh~hq3j)!&UV+;kx?U zaCSXPMr|G{%c-9vtE^9z)z{CJ71pQA8tY4C4fSQR^5zN|z8;V@H7jL=W|geAUMs^k z>tw=ahYZ);CTnbNmsK?n%34XwWN7konU=ItmO%bomO|btn??RorYC(RvyisS=8%uc zis-+~O6hlGmGpbELi$5lBIgacnLSx9=D#JE^QXv#{Hby!KTVzj;^Y)aA!o;{<%lOE zXC{Q@+N4goDyd5@Pm0QQNj-8!QlH$Av{)`nSt?hhd??qZtd}cOK9MU@HptZ}8|9jm z&2l(pn_Ql9K;E2wQcg&}C0As>uFz+{rGT^FRe(jw3Sm*cLR3_vXs)bRuqqoBf=aT2 zfgoeTO0j}kDOa#7l?qCw9)ZYA3SoVRLQo%4uL?VDXj;Tk|KtZgP>xp1hLYTBvl$yV5KERt~8~nl;)JRN?zQ0 zB|mP1k{iEK$&25r6eN75=Ci<=tOuwfTq(4xK(#NY(b0(^i zb0(=2MQ^EQ<-Dz$oik09m@{29Hz!`DE}E$_70pr^i;`5jqEwZks8pq_ELX`YD^&9O zW|guYr)q6hsW5b{3eEAT(sFz%L0nM9k6)xpOJ1#-o4iIfC;3a2JbjyL9(ubf6Madg zOdqDs${C@~&KapL&KaXF%o(dL$eFB8D1JwsSUgRgQe3JwRhFycsw&l*%4&6d6-jNZ z`kp#2md`I%BIQHRB6Sa>h5B*%>D_`Nd~6^NP=Fa*BV{QB)fyX$IT$?A;X!Df@ zZ7JHS6~^1OiUhBAL5@#5H={#~WW8$(i@UW2#VfQt`uo~q&PUo(@MCQWxJJu`)@gH+ zH);#3KG)7}_(IDff2A$qY}1y3-)PIw`?YBqN40f1XS7Ad=e0#uSF~*MuUbC+hPIUR zyS5y>rOi*it<6imtIbWmuPsP^sI5Ui(Jnwg)z+d%>dMihb=By2U4F()-TaJ19X=;X zSCEmaYs|^h)#nuG2suSMTnxA^Jx^m7=T^Z*aU6SCKE?;(BS1v!LOIDoL%~o8{)f8XUEvUMxt3zMY)uV6dYKw>J z3FzT^4Ej}l1A3GmkFL_wbFg|w4o*+Xq3Iin8G1r7OTVC)qbC*{^n@yto?O+c&uy^j zTdF$rja8rOvl=$&=Qn(zUx3@C$Kt-xH{*`!n{dDCA@Xl}8Tog;hI~h_q2JZZ=&u+Q z^kD`AeYinOA7!ZKj5Snn-ZG>j@R&@JW>82n406eQ0}skIRLJuTa}-4eWkQLe0zt>h z5iATqR~aY>7*>}-Gc;td4SWP0ZlI!17#Qf$Mr!d`BfU7@$gP@X#5N=wF%2ok`i3-P zQ$xD3u_4b0;3|y-yNuGDUL&)3&j0ub##ze-~##xN- zjU4nTBP-*wkzIVn$SS^W6j$9e5*i*Fao|&9O)|>FMGrCY&~KZxIq#U_a;KT}Ide?9 zoD`EWC)d=PQ(%(il$u1vWD|(MV=@FCgQ^@RUPGIS+2An|8=@wlVTFm?u-e4Ntut|P z8%+Y-W)lOq#l*vHGqG^rn)tW_CMNE%iGw?4LQ{^Lk|?K48I(t+`HaV=6v|T*nlZ(U z;iQ|%oGf#uAkREcP+-nRA`!9#c(Y1EFe@c8Gfkl}*Cu<+vJ9UY%J7@vjDT655jIOR zy38|kqvpii9&gc{a?cDw56r2Ghi0YXPxFH0Ar=Td)FMHTv`Eoo zE#{2L7G1{M7Hvi{f{o3#%ter~R0JSP%FVXS$<0L|vMK~3tFff#)>*Q0X%>Ak)6!bZ zwJ3@smelGl%be<{#n7aJL?k9^Jcg3Q@UA4ft-z*UBrbUOlWzphpTQs=4 zmICYpiyHUPBEdbeC~-qu6}Wd=%PCV^ODVGvRBTRb1tYb!h>?!qVp#|{mfc#9;A2&c z^41c@-`H49Yc&Fr{SA=SGO(=xr@58I!MAcbv{nj7)LJf(wH6EHt%ZWtRsgiM(m;DF z6%4n^pgb!sz1SLGQevH1Qemy9R9TxCb=FEjy|qHnXf;VNRyovc1>?z97_G9-Y}8r} zIH$Er;I>u^+N}!6Ypsd3)ZB@J61en zgiVPaXH%ia+tlbcY#Q`r+nmgIZB@C`ZI!w2A&^*{Ew?(smW%*mILaJbGX-rUFw$)n z$vm4XVZN;{Imf0&=h@Ji#kQ2p3IrXiu~j4JSZyxNHm8wpo88E>CE|s)S$L@pPtn*! z9KEehV6ZVkhs~1avx(w5Z1u?@n>Hb0(h zuN{paw9m#bwkPA4*;DY#?Me9e?L^8dJCpLUokCe{r&7MLw=j0wDU7{#fbp%J%s6N# zF^=0C1SjqFg41?3c-GDWuh?@+eznsWH|@D4ckC?6b9+ka5XZdCVUEI*F^)#TL`O^R zn~u!J$&R`BX^z_J8II=UI0rg4(UF~*=9r(E>mcRkJ1Dse5O_@Opyg^Dr6qcYINs-o zOYCv9B=&OwywyQZ{?b8B-r>L}?{sjIcR6^;#~t%hPdIW?PdnzOUUXEX z{^ZC{z3eDY{mYS-igIS9j&NqAj&#;!j&&BLzUC~SJ=s~8ImMZu`L44nbE>l}bGnm| zIm6kInT4QZInKt+5@&H{v$Fs}$MBgg&Z11Clbze;6z6t3g}HZ~+>%#a?2=I~dda&k zWywreWyx%pv^vF=P?PFXRP$ZLYN3l#Epo-xxLxGxF4uy_4X)zGO)gyH*RGProvysb z-7Z7*URPb?Sr@r+Qd<+gpe-9;+@_{9wh1XsZ8{3IO+%r##Q~Bw0Y%!D0Kjc}ilR+R zS=Gj69B4Ce4!0RO-?y;@KeWYhue5Ol*V@4V|BZ@QPmFNHSMzq_VzSj zdHXzIMSC)^zdfD#ZF>&$V0#wxNxM++tX(FU;8B1RJxcI(j~blp(SUDxRNxFxrnJ^G ztF+FOEv@%7A@Ep3D$axaMe0c|ZSf?P0-iYpp{Fqw^k7oO2ucQdRGBi5G1KWWWqLjH z^ZcHwyr8EhFYGDE>-1FTE%p@UE%g-UE%W5&t?*Rjt@4!Qec;K-`^b}*x7t&g_o*kV z^n@q3=A>s%=^0OP%~?-T%>_?k%~g-3@w#VD(+$t;rXk*WrNg}`gjcljc=M%@H%AJ4^P~!I9IWy-$kg6?nbun;b9ig>+Pq~o9s9yg8+tym7+K-d4dDuO8gyoe6LE#=}Rw*wkUZ=F|~BTmE1_BGWQeWaR&zIja@zU-!mZ+=tM zm($ei%WC@Am)Z2WuY|D6S4Y_Gt0nC56%+RPT7VTfFD=EsyC z^s{S@_zRnk`wN;*`iq)Q`|*S`ej?$#zlHFlA4mAb-%PmbClRjs351(|HgL<&1#bH} zz+FENxbJ5HkNrI6Uw#G`6<~8;39z`s0!;3!fqB9af%(Ewfo$P~K$-N7K)LkIKngr1 zfR~8^oEk8|t&s-!02~kivH+i{4B%6>fut;bAUVqrAm^C^q&!QYCC?Thl)3`=Qg47* z+8>}21_Bhqk^q^oGyo7*286(>fC%_Bz)*Y{pyX{2(DJ?x(DQZ%fV|xScIn;#rF36_ zS$ZfyEp`%8)y<=A5{*J`N107KE zp$=K{#ST*HPaVY6OC5yNn;k8w_dC+E9(2sldL@*eH7t~sH6|p;8yf=iCWeH0Q$wP> zxR5w6A;iy14Jk|0Lh90aAysKnXm)K$XjW}yD5-WqD7h9FN~{%zj08!@M399H1bIkL zP=#~^ZO9B5LKeUjYDM5N8M7?}Gu@#$Y9KUM+!fNquMEvjTop=5+#RB&?hP?g_k~!g z2SUu$H^OPPlf!ds@nL-)F>J_d32XAmVQn4|*5!%9hH^NZSt|=?)hff(CRLc;WC+um zjA6v?3nvj*h7H_RVI%j0u%7!-*vwrMt{3hMljOU?EXA2{P1euh>a5G*xcu8;bKdC4 zoU*Zz^s@1hw6aN&%(83*9Lta7Aoy5GZEa*;ZC#|emJunaWko7#*^wH=#%48jMR-l! z5k=F@2;B5XB%gRYl0|&AGmV;xKx6Yd%c=7_YY}KH6G6yosD+(b)M^AFtLbcIF6c~T z(K=_c7@gTHVP`H&+=*sEowHer&PalX1GpGEo;r4t4=@clYdkPxqXBe|K3~pu4mz z)LmZoaW|H@x*J1W+uclD-;E>g>MmyO?k-{N?Ji*L?=E5;>c&&2N5Qz{=v)LFOGnVL zGz1?@O{|ETlk1|w)TXE?6%*y9HY0zo;G=?6LX?|Ii`Hf_qYJVm(bRk>iq4ls)AAM3 zx%uX3N`7m!vdk8(EptX|%3@KVb}%{SzUPZM2NFK3dND zELy<(GFq3lJ(`}sGrFK`SG2xtU$n05aFkkmG)g2Mi_)kkqlLUv(Nf--Xc6yxw2b#- zw1oFlR3Q8%N|oP=HkRFvHk93uGHV}28MRNMwAw$T^xEgqM9eEOGI4mUg*Y-sB94jC zsS{#M>ZBNh`gW|EH6>Qdnii{J&5zNf`7ye*BvuMn#OU(s7)@RiW5^f8sulGylY$(Z zg#nNkIK;7xd}*wy431&T(#dV6tG0O6-bpsIeHE`dLgW+!TX_ zn`4l0ON=c3B1RE!k1?d*#OSi!F@|h!j48hr<5F+Ou&hTh9`#AAnfGT55dRgUicvjG z*|46>{1H9PWs`fdFz@#8iPL&m#OXau;*1_1F|9{H&Fm3U=lAfbq#lis(xVcBJr%IH zryTyU2UqrKkC6Cz50SU0ha=tJ!^voRxjb1@@(MZ}4{V&Z$fAT^;^L{02PUL@)z^9p-Oyt3XFUPZ52Skr3~ z*7h2O^}PadLoZ+4)XNoPdpTl!uTV_rt%6&6`BHK(PfF?KiK)HSFtfK-!S0Py#(L-F z_w=$^OMAJj<-Hu%`@I(7s@_)N$G!2&b-m)+^}W*CPkSY`8+)PJoxLTPUA+aEy}f0a zbGY0^*3f^^|w;z_k+Bg{wz^`ze-xr zPk@X2t1u<~)tHL@gqG_5nJu_}wUmgUV=V|iM(O9usr~X=Y5&}oQ2!iSq<=Q8vp<>E z-H)dA^=n!E{RY;${+aBr`t`i+{c_&d{R-Z#{sPg%exvwNzePN5AYL+Qz$|`aAW`zx zK!RlIfKEDXKr4+Kut;YP7^DdUW@+UB09Ox?VB&y8MjjBzC<9U%V?ZQl4S;fJpk4tF z)F})Dxk}?eq4LTAq3r5_s`j@5MeXkc%G%olb(lK?^_cqu4VVdwa%pcY%AzGMN~6tQ zG>?W^Wa2RwCGkUxQYDc^DUxY}MM~pf4rCit*E$CaTEc@YQP&_-v}8~#Upk0WtQag) zt{QB_tQjn!tsN|;tsl%|ZyHp?n+NlhI|kXJor4MTeS`Vz?*fuMg%yzYi8bHwW{fTZ0<-)y2v3QHu$R(Ticl_{Bvn6BZY@Oj=w)o4h!U zU$nTA##>wt@fVjtlEp^2b#b{eytq*kSzG~iFE+tFiz}5&7MHV^EjGg|7R&zUZSKF{ zvi^U+hM-N=3~@rJ>SM8K_KD z7HS@9J}MiPgUUtaq4H4$s6tc`su)#*Dn*r{%25@lN>ml98dZa;MJ+(pq3Tf$s76#1 z3WLI;no&5^|9f>W?|e}Qn#!AK&G+%|;2ljPn#LlBX9F!KX)sgOG`_jLXA)g|tLkpj@k5uksl_ zxA~&eG2<|AW6(|aF>f^8#-N%WVn$-7VP3%u$HZe^#|&$_hndv;3GQ{=1l;>Cs_o_Y zi#vdi$G?Yf#QO*%T7GKzku;Yyhcu5;h~Ru?N*l#QX{G2WR%#3FOIwCSx}xz2^)Una;?;sFz;G}NF!&c&_j1OII)LF}iZMbA4#UKhVaUkw$}CI?hTYuJ zyahKEHysH%T!UMSABE@QmG~gOgOEPa}ttCUj8`;;Ea5=x8`M3~1ArGv7HvXmO6Mrg^jIkW(+gXWA%j-M0cba1*j?HmQi#4#dqI(CkSqvKdON{*U; zi+_)Qmw$(UUsxrq5mJOiVFPk>o{n&dfUsWjopcJq1L~zhsYL3ME|hji6;hcLl=ev> zX}h#rIv^DwWFQ|o*cgONOz9vu8rRmn% z4Mnzjwr*RmEo6(>1{@(r2LgHp9brf3i>rG%<3$~C_#94$%dhX)-?2Tk7=fo&h6Y2c zLQA6Q(d1}aG_@%U(}OW%+AtQ34bzU%V*ciBT^Jpv0TaWBF?|>V#*WcrLYM)}-{frs z*Z4GT1?IYSM+9KLY+9rg~eV_3b;|<0XBw#6?ITImm z2}}pGm1$vKVE)2NMZy-QurgU=5XN>i>n$W&;T_g=7Mc~$dW|)KH5VanC$h$}MzN-H z-ry8*)^Ij(zUOS?e8kzr`IfVm^BHFy=L^n2|Nf0{X(N~u`n#` z6*>_p*Dllx4Z}lyHgos@uy(---{Z6`5x>dSMx<~rE z^p5lg>3Qh}sZY8{YLi}&?ts#zhopO@>!pvSN2I?>zn6E(d*p5MP6S+a$;0xf+#&Ci zJC$PP3FQIhsTbAua{R>|Q0`ZrQ~sblraXgyvfry#sFteMAV};o)e_Ze)gtwI^)*ci zg1Q!K{F)x^I_+KUZS5`XecdC3U45*3s(Ye)Xec+77ADgLcfimBwQe@Cv7ARB4qpulAjbK zEh6=kx=1~w4pJ{^C8>|pO}t*J4!o7 zJ3`w>+e15y!1s^nj~Q`{c*ab|-=O_^#tOzVMn7XYV1O4y@>m3xlEq+E zAz?T*2uM#wLU>A9F9~-F zw;w9V)-`tC-U|3rSc8(jq(qbWy%H0I;B)8SE`h-^4k~H_Hz8i9Z+6YUQ=FI z{;2#-c|~~%q2dp!cB=NNb|XamCe=pO1_XxRuG*{GrrM?2qxxKRKz&1fQ!`gnqp8)b z(tM;fXur{o)D6`QLm>Cj+K1Yw+9$fJx@-DZ^%M1z^uzTN^yBs8^rQ4c^{*TLrqt^V zRfbB#al_wO`U%5fqs`cA{N98z4MCW4z1d*4nr&vgWvFGOWr&q*4O;`&ZMG4%aklZc zH*7h!Q?|Xfi?;7=`)oUH-`QS%{=ay8UpT{d3BlISA?*5b+kV>-+ezCM+addNM;yYX zpLYD^cBn~IsCXOaNB|IcNB3vYnBMv2wAq^qDLOMv!BpoOHK-x;$ zL;8yJCFyh0Cen7&Ueb4@Eu^n0<0y5&6ksxt3d{xG1jYkz0i%KGKo(U>T}53(U5!K{ zv>*iW4cc?sP1?rVy zW=PPIG)bx?Lo!bS*&Gtj|616~!T+lcNUlgOORh;SNq&}Gl_o+)hzs!`E%X}1h9VFd z;y@52gThb%`UA2;Zis>KH7qCw$&r9^Cggy6pfpGXErePj8{~o}Lr&y$i3QR?A^AD^ zQTg}s^YR1MJo(S^lky+r7vvY^$K;3PyXAZ2d*x^3hvh#h%awYiPN`L)luwlRlz%B7 zDDNtts)neJs!pqZQJqkIsk*AVr218LPW6N8tm>HRyy}eVr0SIFn)-tJ$N#GWUrzd8 zJD|R&zORYXP&G`=dd=6GFErn1c4)S1HfgqMecJuHX}WiH6LhcZCh2DCChFeQP0_uh zi`OOTXX?@Vc>R2Rnm$=SSD&Jf)6dpt>F4M(37w?W}QDIUAgK=X599S?^48*1GX-oO_x319#LNaEIN4 z?sj*~?RGD8_qp5LE8V^BrS4VkZg-D6=w9Rwxw||So=Oko(Rj2TrN`z`c&r|o$LVSH zs6FO?TKmiUpFj6a^4IuDev^NNe|bO~&<8dKHU~BZzYiYm_^ac7=#`G=9Zy5UI-Yer z2%QLB44n?030(^P82Tl2Ds(nS8`eo0hz90M3nygqk zR*Yq18CVt;kD%vttP)#`ZN!#gsn|L!2m2-#iJ8QLSP7PkQB9=IhIEUCwN04rkE|Kn# zej(i;{X`x|dPbf=x=J2G9!t7S`jvEx{2F-}g$A$yGC%}`00YQHXch>-0!)ApNC7;+ z14uvxKnHL@B|rsgfgn%}Gy-`*10V-Lpay6LT7YtZMpaT_>etjAGzxt>eGGjX{T=!Y z`dE50{k4By{mT{Tv*?NR@$_{1B>GJHd-S;oG&hg&31b6e3*%G9XUuG7F0-E*WiDp< zSRt01wT-o&wUu?0b&Pd{b(wXVb)L14^$F`NYcuOx)^^q|)*;poZYF|e__z+Ph5HqE zkh_Mvh#TX6%nfp7+;(n=3v<_THQWI%#9hlZb60Q+xQn@ZZX4Im4RZrrIUmnIB;X6! z0;+%_pdnh^+aiOgT@(@xh>!$k(OS{RV2em5S}s~G`tarM{qqipG$OU=Q&ERVCyI#7 zB8f;T`bcCGDMYQJeo<7kP_#tk6|E5IMJ7>L8d?qg3jGXih8{r2U=*|ux(NLUoq)DMzd+}p^Uzu79`r5r74$oF3)%`D zhjv0op#9Ky&>iR~^e1!@Is{#UzK}mrye5CBcuRgyF;;#{F-(3}F+u)J{#@~@;&lZ| z{z(2nF-Gx<;^pr@|9tzOD_fN&rCDiJO;f$48ljq~dRsMGHB$LpHC{Dc`nx7GvJ zL)P!C-&^-uk68EH-m^`&y=$wnRoH6nZ`%{?Q|#~BQ|<5B(e~-~IQyISB>Oabyknvx z*OBGOcg%BSI@HdPbGh>aXTWK6s+=pFYG;Sj?(BBzp2E%(>oab-wRxcdm76-IV|Ew*70RyIb7b-J9Jz-Cw(RySKX6yZ5=bxIc4$ z?mp<=;Qqq>rF)nAEB7`J&g1oTdp__i^L*s#^MpN1J&Qd(o>iV+ProPTS>ajj@q0Qw zL9fGm!h70#+?Vc4@}Ygx{dxWZKh00~Tl^~nmVhZ>2z(jX8Q2oo9{4(VDtIAyK6oy8 zGI%lgQz#)cCNwcLH8eI97y2XgTj*BkUg%EfZs=I(dgw;z*KkXi90tPpFfn{1d@p=E zd^h~)Uu(jDc%ks+@Z<1r;p^dt;cMZW-NtTrwiKb|H2-)`|6FgV;q_5q1C@!8)+*&CKRw_(}MQ_!an7#4zy#;!5HgqOPTixQy6I z^bk9U8;N$}a$zIOHhC^NkDNGT|W1zkcfqu0|*==15# z^d>ryo<+~66!FwdMUk%QOPJ{l9}%_S290l?PqOa9c2B? zI?Vcp{RZm}do+78dpPSp`*qeM)-%>$tgqQa*>AI_u_v&evxl+AaO${S+)udcxre#G zaIbOy;O^or;@R7(PhyC@O5y4=&tA|aD?a}I1-eLHh>dFe~9*gZ-^d= zz7zc^dM3ICjsZu5Z;1|z_KD7mE{Lv(?uot!Ulkn_{R+MbCW`h-@{ly>m)Ae;fTToH zDCv^KB)yVu$ybtFk~@;S(sbw(Q*WiTC9!BgQZxE?Nr zo8ba@C_EQtz#^Civ*8Rl8D_x>SOVw4@o+kfhxu?4tcQ6B6-0y$Fb+ntg<&M%Q!zs^ zU6Ce#s+g$D&iHHiuV-BihRYp%6cWB^eDYbx3W#SP&G+4MwPCLS7oTOR7t8# zRjO*1YNl$wYOH$hKQ8{|0?*ZGb-Fr5Jz4#ZI!>Lc&QK?)XR4>EXRBwZGu2NuX&RYE zs=2B;qxng5MRQ*Bqvo>aq_$fd(Vo#&>uPkBx<*}O(czVS++BnoW);P@AYrJB-Y^pQWm?}-RrUp}!snkR^ zRhgHW2hAUtms-dcnT2b?TUsnai`as(Ko*)sV!>Gm7SPgcVZPkHf8GI0leO4dV&z)} z)@9Zu)}_{ywq_f~hPC}=J7%x2*V%D)jJ?KQWN)BccQ~)PCONMb~SY{r_*l)1kVmDy-VRvHJW5333#eRZ4fZdPXg#EnvB+iJ_ z<4ia+aToC{@gVU#;sN5f#Ph@*#AC#7h`$oI6MrBEh)0OW|Aq4Z^GgtaCY~VfBiYym>l6Vy}G)3o{8B* zu!u90lgLTn?&jY9&u`wp&;agr-UQwx-YDJ-UIH(RSHXLa_a^UcULG%p7tfo?8_S!; zOXnr?%6Rj6X}rgQ9fJU$uTma4orC=6V1oB07|9ZuJx19YHHs3YhoI!Jd>->&b|cj-IyE`7JYP4Ct( z)jRbDeXri8kLpbZv%z7o7!1aV#ZE{h9rQCw=5%0+J* z;bORQT=}kfE~Bf$rFUhzs$8?3r(N}~G*`JR)x~tlU3so1SAz@ZlDT%fg02ErjVs%g z^>Y9Ic?Vn~SF5YimEvN#2rk%#Z6DJ<%>A%^tow=kg!_Jbqx(_&xb{))L);JAUuz%k zIpI0rIpjI)x!^hLIpaC#`Oe$s?f3rZ{l$CP`;+&g_h;`p?-ifc=k{5BY+s2_=X3a6 zK8?@mv-{LOqrcE!@2~Uo{XD6pgM;C^Xgx&&@rN8WXCHVV?wx4NvJZk zAXF5d5PmH@K0GlzIs8U=On6)v4$C675nLoak{=O7vLgHlBjSwAjnqY|BTz&d!9-XQ zVMG?mj<6&0NJfMZ;YP3#Wuz&Bk2FMDBAMNby9c@lyZfV&XlFDWjYSVfpG5zRK8oIt zsbadAKBnv$-}73}xSrKL4|*Q=uIv4@cYW{1zBPRx_frRc8~AY#1#PwW-!G3-g~ zHSAsNS?q7v^Vpa9PyfQ>i#>|HfxU(O1A7U3vH29vhO^^-#a+jz<5#yNwY=Ffwq+9W zSP6}$8kg>% z+vpa$n{K4r={mZP?xlO^t#mUzKsV5>3^Ielz%x!UzGs|d9A>=y{qJAcf5vgfX~qwX zW6Vls1yjb{#747|*=1}7TftVbacn$W$(FKhY&Dy}HnOQ~KD&S|X0zEXoY|ZtP6{uD z*T|#t=sYz~%Tw}HJPS|56Y$>WHSrug29L(8=izxQ9+qe2mGGoI36H|#^K^U_e~DnJ zV2NO{aJX=oFdqB_+yw3imw<=CD7YS64SorR!Co*3t^xz#hu}7F9k?C*2K)+K0UiUl zfZu|B;1TdM@MZqjzp(${N8nO$5IhaWz!10-+z74&_ekm_jgorFpk%RRiDZ}L8_8er zVfa3LTQ*dd2tShLz)xj!Wus(GvMI86WJ$8OWd*WH@b9wGvTT_OehlA~rOHZW>9RuE zeE7O-glwFwLN*-!6Mi7elTC%6$?|3I$zGF9myMLgDcThwg;!xyv?&~l4uwhKR@fCW zWu+3Yj48X7ovI2|qpDfepysGmYK2;(R;q<+ScB5Mq8X~O{0rs(=aj2|0U8*iFCrU8@B6gGuSQB%O= zH}#u>rZ!U#&SmN~tuQ&vUzoR>zcg>Ptg>vj?6fSmd}R6Bvct05vdD7S@{MJW<$&d& zWu0Y6=@f3{w-{$jmgOR&*xG`rXCwma?Z_JG}Q zU+8$#6?3g{Ep;t+ZFL=X?R2ent#y6u+Tz;a`r38K^^vR3^@-~{*CN*{*B7p3t}fSJ z*Fjgm>qFN%*9Wc>t{&GW*Adqe*Gbng*AK39hzbttn9wn?V_e5;;hEv7 z;Thrh@O$BD;djCb;kfX-VPjYsHiT7?m5~(@ZKOY9j4X+CMLvoIBJW4~A|FQ#kyykU zSsu9=2}T@|?#Qx;CE|%Jjrbz&h(FRBSruuGv`0RSEczG9|IaTGSr|!;4n~(opU22C zOUxK+jX7hsm?LJ2xnlO1HFh|5sAqD|nx3`2uk@mNNAxc09q8TFyQTMw-mSemd%x=4 z+xJP|rM|2E#r-AytbTSsbKv&Coq_v5UA2q+)JOcXw`&aXr=CRm6n@8go z;{3SVxIbEITgqD+TIRQuwbZpNXsK=?w*W1rEmfIoqU|M|`P7a9OOpbiBdQC|TbQ-@GTP=`~;(}eV1dW^o9 z9-%LzchbA*OXvgirSv}fAOmF387v0Pa+h(Iae?s@a{=>H_CmIkZD4=GUe8{}_Okog zo$Ph&HSERg2>T=UQg(nXV1LF*<-t5TFUniOYvaXu1H2C2LY|N3=PloA{sdKND;etQUMJ_*Af2@R4Ah7$tsH{1*5N_(=RFcpJPdo&i1wZ-76G-xW{$ z7s~(7F9H4~P6F?MH^py&55cSAQt?Re3iwp~8u$#nE*>QwCVpF-C>{?!5YG~i0Pl$> zOPVDsCCeqtB=1XyNKumK(pO|>C z*r-^fSg9CPtWYdfe54pqtWtcY>{0fq$ST}_e)Il?2B;V+ri!JatEeir3Q$p09Cf?e ztM;kgYP;H^Zc}^IX0<^xQZqu+s!h~R*G|z+(@xdS)V`xl*1oG9&@R#rYWsBoU5C!A z^XL!hztA7iAJl)ZKde8d->2WD|3<&x&}Ud`SYjA3EHm^=wEu^_bMA6v``>oPwr$(C z)k$~9wr#soF)HZ}D;dw6vFD8EjEyt4jWafW-xtx(AJ6J}1NU0jeSOwS?bP12jbn_P zj9ZMGP1{W;O?ypiOlM5%O*>2{Ok2%|&Bx5A%qK0MEjKLBEl(_0EcdL{EZ;1TEuSoJ zEpIHZEq82M+Zx*j+gjTz+lvaouk;bN=eC!&$F`?-ww>o#;wU)sjxxt$N7|8ewsaz$ zrOpy3%30(r2D$^|fJOiU=mRta>HrOZPC#9t7tr4Q9q8x&2Gj=XyFUPZ-S2=F?$7QQ z?)UB=KvVZ~_cNfS`xnp~=l~1^s=9vy9o?URAwW;}6Zcd18~1{GcXva2ebhO zd6*y;WPxl@2i^l!ARa`6B(MZzfJCquq=FJq2%^9ukOopf87Kygm0n&26aY#=GROgu zpb6A~Oppf(yhL9OUwvP5Up-$dUu$0*Urk?2UlU(LUmf3K-%{Ta-z(o6-%I~l{}KP+ z{tN!|{)_%g{$2hn{=NSF{=@#O{)7IV{yqL{!HK~I!AS5?@J{er@M-XR@K*3iXkjQ9 zS`^BLJBPc4dxX1(2ZmdO+l5<(n}pkhdxm?3n}?f*TZfy4+lO0)+eZ3Fx<^_^+D1A@ zxT18b+c~lnVMMbeev3{{W6@XvqBVv7HLt{N-17kqU6Z6L$F=xyjvqR^ggU}&p zKXeV+2Azf8LU*96&@<=?bPGBK{RbU@ork&+@bEtT^{0_bvA`_dE9)t_34HoVQPKD)SSy%~HiKSw7xc0bq_+$7z z_~ZC}_?`Fz_}%y;q*kOhq;{k(q~@e%q{gI{q~4^qq|T&{r2i;uC>tq%QC3j4QZ`W5 zQC3k_QZ`Z6Qr1(pP_d#ummA z#y^ZxjGc^qjK3K{_7(PJ_Br-h_Hp(ewvT;~eS`g;eT_4WW8;`Pi@C?Rd%63$C%7lM zXSsX0ySO{Kr+D3j!-ZVo93f9QRLB=j6jFo|p;kx|77Kd|iNbNhNx~^Yp^z;^36Vmy zP$m=z>B8|sst_y02p0&8gfm4L5n6;5tq`petri^<9Tis>R}?9r}$fOS+QU7kK&}_qT+<&sN$?*kK(Fgx8jK6y5fcsR_0X#6<5VmiB%kxNF`L; z)EV_cbwUlP%hZcB^)zlW#9x~y)oZi%i; zm;T?DfLr=!`bYZb`rG;k`WyOt`uqA<`aAl&hNZ^o#@WVM#%;#Gjaw@KztTq-HyXE_ zZkryMo|tZ#E}0&guA82kzM3wYo}2EQZkk@0uA1(c|21DUUooFEpSL!(cCogy*0*-D zcD6RNHng_4wy?IfcD2^CHnO&~Hn29g_ON!hO|zM7W}DHr(e|Icuf305?AYj7?pWv8 z;n?a}?bzU0Ys$Nabb_xw-&zy1IDzXxMMC>RZX489J&4ZaD!4~aw4(6Z2q z@UZa2@aXX5@Qm=t@c8hA@Rac2@TBmb$jHdR$cV_$$e75e$ndB(YKWRD0Kd{lL_N`O zv0L0_TI@!|2R@$S&?c%S%~_=tGlc=LGucs=M>yiObeeUG;++g*0LY;W0)vYlny z%J!9QE!$K6SNX+cy=2p5<77ISOeT_Vl3!9IQiD=M)7{gZ(!J7s()sl3^vm?4^uzR< z^n>*C^t1Gn%#O^y%$Cfq%%{w^%-784?4SLg6)?S7dltxoS##E!HD#UIcoxb=v&L*$ z){^zYJ>XVwXSgHW9PR^mfLp^|;l^+qxKrMn_vFF+y8PPwrTpdmw?fmxgyNpXJ&L;) zcQ5W-+^6INHjWKqLs$>ijdfwISSQwob>J`KFXGSQ|0N9|^&kx;btCmB^&<5o4I&LB znMiL*?m9d-ggmIVgi1Co|lyRH=ANv{m0s95}A^R!E!Lf6;ajtX! z6^1GRztTqt%Y_c%GNDgc5N3sogn1z-j0?lUGNDVjQn*wY6WWB!g&83r3<@C;Nwij6 zM|Mi~m+XV=qU?d}rtFpMiR`iLw(Onkmh8Ulsp6jEt>UTTo#LV5jpDvarIM;->ZE#; zdbK*LUZq~E-l$%tUax7aX`*SWX{2#$r)g(v=V)hXmujEsw(3^vHtDwOw&}L$HtJUD z-ss=!e;TUlzw3YKf9u~FYUsb}e;KM9RvT6t$wrb9Tj}LhKmkU)5p5(I_Zs&b|1sAv zH!{65BTTqMz!&0-Y zqpf|dbF7oCv#for^R0ue7Mu)VYQckFT;a-4FUa2$3Vb?kOL zbCR4yCmC=7b|3<*0Lp-cKmb?*n1H1~2FL?Czzq0+MSu~|12`ZIlmi|h1f&5NZ~%(| zC*TDDz)%7Bl|BN{0x2L06g+%zFSrU^3myhHfNQ`V;8t)qxDGrH9t017r@-ytdhif< z0^9;_1NVV{gL}Z+;3nS)-!R{J-$dUOUx{y&Z>n#tZ@q7w@15^`pkttQpk<&*phlox zplhH}plP5*pjMzkpmv~UpnafOpluKtln0eTMNk$j3nqeJL$YvDctN-{j0(>W&x%Zo zOpXFkYix8Z6I&e1#?rAuY*7r3EsQUUyW;EP>^L?)tJ2G>fCA#?I6h8}YvXg`sCaRl z9+$);@%eFK+z`jbG4YZ(GOmd0;-)wwPK~qTym(QZPDQlbVs5mhO@6m+qhLn;w=PnjVxM zkRFmAoKB^eq!(qXroW{>q(7&>roW^=rN5_trhlb>WU6KMW`1RUW~*d=WM^kH*_GLR zHk)0ZU6fsxU7Gb&0Dh&9$S%$<%&v!r!Bb!!JQ5xV4}yolqv65u40tL$4W0;(f+xch zY#-qPd4JxQ59K%HkL9oDzvq7!x)-_?x)#udg~daP2NVy)rm#6|5}U!o*fc>-8c!CG zg_QkN302Ct%DBUL#dytl%XrRs!+62C%y`EB&8g1*$^OEr!l}mo!AWp#aIbT3aIXpv z3wH?j2=57x2zLs%3AYQ63bzQ?im0OF;(GF0^7`@y@+$Hg^5*h}vP$o+A_|ZrWZ&gI zWj|z}<#m-+6u%W;mDLnKRa*7m>iz1i>VMRG)!Wp&)CV-pHO;hSEn7>_qO_%2oR+9v zuHB=3sXL(CX{c{#W@v7xV`yw>YG`6uYgl8XncJKDnA?~;n>(2Ym^+wzntPkOntPZB zTgg_G6>DW#@m8jlW-YeTtvG9`ZL4jw?X&HRUE?_K_}6jHNpn(xEx-|AKX4E@0Bi=f z0(*d?z#(8Ca1uBJ90Lvm8-Z;V!C%=kfPX#Rfxm(6z+R64d;&fO?}InM7vOX75qJlD z4?YAhf;Yhn;4APd_yD{DUh`G~KY&lcTfS1?JRj0G-#62T@)i5$1o{Sg1-b=>1qKI3 z1ZD*W1;z&^28INB1V#mV21W)32D%5v1ttW>2B!u!!E`VcOa_02s)wqE5Mgqd8K#GE zVQiQh=7f1+QkWQKgehS`7#*1znH8BGnHTFF8yg!Jn;2UeTNYapTOV5$-x?2Ac6SxQ zABW=G_$KspfOXDl!TjEQ~{w=#ucD{Ub z`IYkPlmq2=%CDB+N_I)>9LtcnR=NznFg8anI@UKnHrf|nVOmXnVZ?#+3MLE**@73*}2*I*?HNc*(2G5 z*?rl6vRku%XD?*8We;U{WcR>ixD-ahb72zv=lx#=3;;}kvG9Bt2baKTm^&{j65UXJj^`a zJjUGLJkI>m{M@RwYOH#z+^Vz6tVXNSs zjfu2;Vl}rvNH2J1{pe zIZztF2GD_d0ZgDcFf~vTzy+rTbwO<~6RH`i6{-_j6IvBo8(JNfg!N%nSQwUtP2mHP zl1Om`89_x#BU@sVW0PVVVr%2K<45CX;|Jo`J9#HXP7zX+6fU(d zwI{VJwKqLGJu5vey*$05(#xxW0y1qgEiyea9WvcB?J`|6oin{M-7+0B?K90Y2eS3D zb+Zk#^|Pb0&$BPGceA&%53`T6_p@)Z7qeHgFS9qZ*RqeYm$LV=*I^y(fc>x=_QDF- z4(nkL9Dswc1s1_-SOd#p0Sv$@*aSOa8Ek-UFbMPWiF_=-KmVgJpfI^GrLdrYE#M0H z(oxt=*sa*j_y?pJlp~a*)YsJiX!~jZFurnHaawX(aGG)MaG!D?aQ~eDuK@qT_rf>A z=fbDLufn&&*TVngUfw)C-lT;C4g=Kwt*3{V360ILG<(T*c*072oY=q7r{jE5n?nH zn--fA+aB8*+Z5ZJsF!FK|DNcaXq0Fk|CMNwXq@PsXp?9V|Cm6;KPPG>8YWsMn#R8+ z>cqb!#wY5=f5(3$>c>ANnj~tL-7dRZb|*P7IVia!xhwfI`71?FF;lD*E%i_8KpK@U zN)yua)AQ1$nW35CnIW0}nZB8knLe3;nbDa6nWLE#nIqZ8*{0bhxq7+U+0VHexu)4K zxyhAYUIi48tCee*tC?$+Yo4nE7vMC!6oz34PQg()3onEda1LGtC*ehK23`!Wg!Awc zcpv;1Tn;aXSLDlGuaTJ=ndZ z*`!&Nla#a6w~U{hcA~1nAEIi)FCv6|ntZx^u6(w9j(moErm};wt+I{Es%fPa>dqMk z7={=InbGD_^E<2G3R=C^fYoCS*%sJ#*#|prRRDgakMOki^!4=gbn!0{Xy=fH7bSH4Zfotq+I8 z!3Z@%icn%RW7A_ZVmlI(65|ph6MYgB5`zB3m?}E3&XW$+1PIwJ`4BiN@g-^ko z;nVP@yfL54zsSGNzbdpVv@WzQ3@H>9I0beAD%ycPf<25qNl=jHk>*n_QO;A}ak_9i zb9!>Rit34Ki|U9Q$T4!P949YPc2ss!{-v_1uc|Mpuc@zSCEB%y5r!>Bxlv)pnaO5? znPeuKKbYTIV>YA>bli4|Ji|RBJi|QwJwrVsz5Ttty*<5sy*(-bztTte6uy1Fy}s`O zYrq|F20Q^EU<H#Tc?o1f5_KfvR_Kfk2_YCoj^Gx&(_73$9^bYfBeQKY| z_bU(#gad(qH#j5ICY*|}Bdpl&1T%q2P!hNVHF+p`IEBbyGlXo%Y^QAJTuBa}L*?e? z7UbsTFgZeQey#}q4u6LKgCD>z;4kn)_!E2&ehoi{-@$L-`|wNnLj~Yh`Uvs99)V7+n}u7+IKBKo%4Qc|lr`VJ~1$lZwa^&H(N!?rTvqIZe)xQ{;4I zH}wtmBi$v#Xv22HHnY&0wE3J8&ou97?$vBc>6zu3?KAj{KC{o{`yEIH(&1&{rQszBX+n~aB@_u&a!yK_rseoKX-<-_ zmv4}7oNttGns1U{l>b<$Q5KgTv;agEL{&sJM0G?BL`_63L~TSJL|sHZM14d9L_Rmewk&Uo@*IRCEO^ zC97zSiooKAMFWfCMF)zG7ac1~75^v^m+mO-jH^cIPiRd3O}WR}EIK7>E}oQp<`Nj*-h!$dJ# zh)0U2i6@E2iPtGNDE+Fx4Ssva@`lLP$o|NWMa_|K|2F}ji)te~Agdy4AiE-)A*&-l z6g5R|EN)iPxMcaCxu}4-=vvyTbU~@Vv=;gv_6~L+t}kvlZal$GFcScRiC`t@2sQ$i z)PmfDY$hAYCbE@$hoYgnsa0uhX=>Uf+C|z~8ktFDvY8Afm&s%jm~VZ2?MphAbSYU|vaX~~DXUaj8ZM2L4n~hc_eG=8Gth0&?a@8Z ztV92`0!?FilJ& zQ_gfSy-Xd`!c;QV%r~45ocEk}oR6FtyjeT~55t?!o6V!}7VwC?dAxI?HsZEoy_hE! ziQVFWI3iYvWnzIiBbJCkahW(L=89Efj@Tp)i`8RyL?djfbwBQDWn+*AT3Bc5=3f|YNQY8M(U9Bkx8TwnL!$m z4x}C#MdpwRWF842oyanz2q{J8i+30A{oi)6p(VpgW|j;o*Qm8ah3ZiXj z2Rep!qP=Jl+K9HIIcPCjjpm|5Xc?M;rlV767Mh1Y| zm7HCiI@}+e>fEN>+T8D)YTSC<2HYClpPVM##@tWbx;%g<=7o6>Ps=m$QalgO%~SJ2 zydclWEAV2xG|$De@Ekln&%jIYdWh^ItLV0n({o<1!;D&8ReDn2WICO$7t$WwAa9+!LM zZh1^zE_cc^a@YURm)Y2RSQ*X zRIuun`l))7X0m3YCa6hi)@$Eu-)i4zKWe||e(1jHzU#i}KI^6$CK(PJ^hT5MyHR8Q zX&zyZ*w@*Y*#EX~wXd~zb}n@8cdmA3oGEA4xz)MCxz4%UnRo7VZgH-3E^_|mJm6gF zJm}o!TcIy8jhu{Jh@6gGj$DddiEN5)iLQ@sj&6vKDW6b2zI<%?wDQx) z!+)OtE5QE+O7@o=D49@d zE=`t}m!?Zor907!&}-4l&}Y#H(G6VN(d*Ec(c936(MQk=(Q@=|^kVd0v=V(Ay#c)y zm&X-wOL0M55(ne5xCAbRi{R3@Ww;Ek4EF)wfKW=fN4QORO+XOe5^fQ`5q=VW5Izwe z65bI$6K)Wm5#AF%67CXy5k3%J5mu7slh2W_l24JZkWZ2;0Kd{l+#ug3Und_YA0?k4 zUnXB5UnHL;A0rocB6KtcBgKjE~PG}W~oc4%c!+z18G>Ahc=2n zhK{By=~Vg*dMSMteGZ*OpHH7mpGv3EyVIxB@pLX-N}tM{#yrbxz^cdk$ZW`}#(Kg0 z%521{&-%jr#6+-~v6{2KF{Gv6?$aHerqarSXWa=UPcaz}96b9-{Ta))vIamR8y zaEEipa0hZ5@f!2~;l1M><5hZj6;QxV-c8;v-WT3g-hSS8-eKMg-b3CU-d5ge-e%rs z-Y4E`-UHqN-VWXw-V@#%-X`7;-Vxp_-YMQX-ecYk-Z$QH-U;48-gDkbUT=|8DI!8HIDOSprDy39; z;?M7Y1^9oce5!n*yrX=se5`z+1XQO~2UN#YhgCaN+f-XsTU0Mp`&36&dsPQjM^t~S zPO4t2U#kadW@%be@by1LKW@7izLC%UJ)n))XCrurKC#`;G3 zhWa}CYWimSxrX_Md4?H=>4r;&(}uH#%Z4)syU}VqZ$y}?n2ct<*#MCyL|6CyEahA1*#te5RODLM$mMp_b4}FeS{A z(E*??ZX|#ox|rm`i9wY)KqI97t?IY(#8D ztV`@j97YtAR*=?`){v@^v1By)CHXh`HTf<1GZ{hoO727LOd%_an!y^$ zn#Ov_8pE2$n#&r`>cg7C8qUJA&@2LL0BaU&7>md%W{qaySd&?^S#vovIY&4LIfpn0 zICHr)?ksLGw<)g~uM@v5e-3{re;9upe;yynZ^<9RZ_gjW@5dj&AH*->Pv;Nkci=bW zH|O`{_vR1eFW`^m_uzNt_ZJNk4G;|x4Hrp7PP#!tjiB{4;!jM1`yo4!{NMw?jBqaGyVv~3zR0&T)mn0=}iCIFEI3+2`APHX*kXR*l ziCfZA;*yvo7Kug@mE4qHke`>|lAn~1vE7$nk^d{dEx#+jC_gPfEI%SYD!(p2Bflq~ zs?;lWO05#1`lkG#{H6S)e6RejtfIQ0x~6)hx~$r*dZK!udZxOm`d4*Bby0OobzOBu zbyf9Lbz6N$UFqdjKmi}rAJttnBn?foLGzDhm*$XWzh<9in`WoRuRX5qplhdVtZSxg zs_Uj}qHCdRqid_{s_Uierth!ssvn^rr0=aCsPCumqVJ<0rthmCqDLD@2Bd*(C^eKA ziVZIeFAaAMuMMvZ&kZ*Xw+*)p9;43)7z4(j(QgEeSB;HL)lJPzHB606wM}(R4NY}S zO-*id%UF$To(p0`Mz+1l2~jQEVhz zxec-%v>mYRx3#oSw2!fWv%j-{wSTl%aeTKU995iyoIRYwTmxLwU2R;&t{yI|Ym#e< ztEa2ItE+3OtH{;P)z?+qHQu$r)za17)!8-5HOSS+HOn=_HQ!b0>gek4n&;}}n(Zp} zlz0|9ud_yOPm#;fyU}aW>(K|%JJCnctI-?LE76NSpqZXj1ph&2>C?=`}Y6gmi5}-sV7K)9UiJFX( zqEsjxsu*>ySX3e@5tm3yE|**=8Bm%l)nK%k@t6e|6lOT4FQyp7#Eis@z*GQ!rH>el zDZ$LZ)W;0Pa477XCHv0qz~{5$+}K9c5XHn&BAbXKP9su?CB*4O5^**$Oq@tuKpaDyPm~h{#972*B9=InNG2*t zQqn)9{UidpBc&dt1EnpcGo?PIH>Clk(#xxW0(w$e)>=rhvjEESr*nFR-Uz%1+$W@)vPc}#sXPUmXx)grD5e*64pAFnYENPj#Xgk zSpdtyim^g0IjfX&n#18TxFjxtOXf1Ut$7AM$dB@Kdd^LX)Kf>4XA-YSe%GdKv{1`vT_wz0Mk)mOu zQKHeJm?$C&iNd0wsIPdxWVK|AWV1vqT_brWxi8r+`6Rh0K}e5D?n>@RE=%@G9!YLW zZb@!PK1fbT_DEhy-bi*zE=dkZ&Pt9;&Pm=$E=Yb#u1HQx9!PdczR4RXKFeDvKFI4U z-pH#f-pd;+e#n2zYbu&45Q;DIPx5+-s)~k+N-wVh3a~0oO0&|Y?4W9;s-531T~wuYrSqxn~JR&!Ew zN^@RwP7~4kv=_8vbc1vQbVGDQb;EVTbQ5$vbmMd*bhGs(`Z@Xq`nme~`kwk3dX%1R z;28u4p@C%(85o9LhHr*1hEImihKMm?j2cIn#+injdYA^Ax|+J1hM8KM`kFeJhM4-9 z2ABq!hMGqI`Tl)^^<1$==c4&OXaN%|6@S+R?+&#?j6(z|qOk z-_g<0#nHmi%hAEn)zQQ`+BwWQ);Zic)TwqxT}xamT_KmzrE)EGsa+A5!&T-=yELwZ z>o1qZ<#GjGuq*3YYQ2EB1_*z5FN_FeN`@(uR)^7r?5^p6RS3zCDBpe490XbG7@hS2WNfzXc7 zzR*9RtKr+>Tj87GE8)B0d*SZUdeJ7)_R;#$F46y@&!camAENJ~@1qx^FQPA_&!X5E zK1Pg{#xSv$u@AAgvG=hru?oPi^brqZUt`Z>FJhl#Ph+oR#xhTtx6E8FDHoM1%4OyI z%7w}5sYj_~I*TepB~W=(0JQ|=LIqJ_6pZ4dawrJpM1d$;@x|h%rAf`$0N8#JxJK}rcyWxA| zKjLQNd*IvS+u?`dC*eop2ja)zN8< zhgerx7gz^aM_H#>Ct1f>Z&+7Y*H}Y2JdTjV=8!pj4u=!uz??j19p@b9Uyhk8=9;*6 zu7Yde3b{&d6<&S81%7qGO@3d&Oa62ITYe+KW&UUW3;sj?Cw?9Flq%&*$x?=Nh_ttqE>%cH(lOGm(!tVFDM#8% zs+Y2*Iw?kKkd{cf(h<^;Qlhl8qN8Gv;=6pHVu+%fqKBfZVyL2%qPJqKqMc%%lBo15 zeM*lKPzIDuRrOSZRb5p>RKrxgR6|t*R6SMQR3lXNRRjOL|EU1~{ndlj{nRbhZPi`W z1Jpy*-PPUH9n^i)oz+9t-_?UOGL2aCL~~tpPxDxFOLIr_P;*67riHZEwKH|IbklVU zbTf2wbw#>)y7{`>x|ce-o~`HT$$E)ip%?00s7OaJ55n7NIiG^$t zSxPKui@;KBp;;;bztTq(Sti;h**G??ZLw{kZISJYt=NvVqwK%z7wyv=a~&lPq+^z2 zf@6VWtmCocwd1qni{q=Kx^uj9f^(8n;~eKY>-y^I=HBmm>T2qK;(F-%;riri>^|Z; z=6d0J;M(V^;=bj2N@Xw z?rP@FxDL8rx?Z~uxxTxuxbC~!xo^0BxvqNddmei(cpiAJd!Bo4d0u#K{#pN3!1TWK zJo8-fJoTLS%=Tiv81GK+74Hu3-`@S+z20r!-QMlqJ>E^;D!$|1GGEG<^xg7Z_ucRn z`4{-d_zC{Wew-igpYEUGFY(Xz7yIY>=lhXfLcPPvQSyDELsMZTg$!WzH(Q& zz5GD=vGRlEZ_D45i<9!CG+8V4SL#LTaqes0Rpc((RV(C z3$MWcz#kqj@NZd-?K-@<>M%+a_LflT=Pdq`~Lfl3?P253@5-*dklCF_D zk%y5L6c%MJg+ozN#1txpPvKFRls6P4wTL>Gx_~;5dYF2OdW3qCdXzeuww|_@_L)A1 zF_+PgF@rIZF_bZoF_STffn@YyOlEXu@?+hYJ(%5@hgom`tp6&&{|i=Qc2jm8c4u~X z_AvG|b|-cVc5C(+_9%8&b~ko?c2D+Tc5n6+_6YVMc3pN`_GESsb}x24_7he+_CR(Q zc0;y|192{JJlr6+j2qg2@7zV7fpnzze1b)Pnhfae{e*Q3A36DJT{U6_f}D z2~2|Vf|;TjqG_V3f7X8$;D5GgiYP1kF8U$*D*7z?BFaiHOOHt-(*4qcG%ig@7fLru zcSw&&|CR2M{v*vxk4v{pH%L!QmrKt|H%a$O4@z%JuS(NWNE()gq)VlXr2C|srRSt4 zq)F*I=@RKI1zJ&}U@7Q|DGG{$sZc8P3Za6bn5w`lrYYtrSnNS3OT%qAphB)RWanHA-FdXZ=?J{->&Esu!ry z>U-+n>R;-g>JA!%MyGKJ{?jzlR?~jg{L=i;eARr>G}eCCeA2wqeAN8Zq_tbMx3m}? zO-I+2=&(AXPN3uI&^m%nqPwdD^%;FaAJMz@WqLsG(J#`w^ag!eZ`YUWP5(RO;WStb z2165LYhxQ@Q)4S*3u9MfGh;hrW8)IzVq@O;!pJqTO%jvZBrqvW9FxkVFv(2}lis8? zu}quHTg>atUW>r1AmaxTSaaqikpe12(TPzmHBC&~VJR9F8wk@|U zv#qe*u-&wEv9ld?ht5HE2pl8_)1h>9;ZYr02hSmMOm{FG9h`HV)18x@Q=K!MZ{3sJ zShv<~a7WxBH^*JH;&ppUJ)jhyXbIaXh+(qvB?h?1meb^m#k8{s*k8}@nR{(yckKntl?&R5v z%lhv49{C>n?)mQe?)z@~9{aR@kKg8J_$T>wey88<*Z5t2hhObC`o{<71?L7iL3WTE z^aR~OAb2Xs4+%oCP%sn@MM9xaJd_AULr~~V=x*p`=xykA=v?So=t1ay=t<~Z=tby5 zsAlAMxJm>OsS&C4@+zQ!T9Mk3s*!q;lIW!9^yr-EglOYfgIJ?jlUU1G^H{xD!xALFmU&=q0tCG5;KB-JLN;OC|Osz?MN_|bOPj5%Ive8u?iW_%Q% z!h7%zybZ6$2k=Hbh>zjJcrD(E_u@_X1U`cQg%=TS5?>P^5ib#+6R#6r5nmAB6Ymr6 z5^oS+5^oc45w8)S67LXoq`RaCBo^68u~RG*55-7vP;?YO#Ygc{tQ0dPL@`io6g-tc zEu~(io~K@+o}u2PRsepbkGMp=M*Ww1kvg3=jV7aQqxEO>W=vsF848AqQNk!?C>dgg zouOu+8Ab+)!C{PJ2pJ3pmeGgVi`kFakG+6RVpG^^wwA4AtJoH{hRtO!XBV-ZY$}_~ zp2sd_)7dDtjXjAiW{cPaHixZat2hfei?|E91#S&qbzWEAM!`10alt~t89}*VgJ6wd zw;(1+3&MgGf{@@Z!Ct|7!9Kwu!5+ac@+;?UPx=n8p@{0YRG;{KS{^P+RJ`O z$I3d%8pt}zYRkIFKt)vHQ`i-N!l{TTObU;}p-3vGD@&D0WtlRroTgf!Dpt)`G1V%y zLak9N)jYLSjnGupRMS{A6@XvqBclJi{IRySzP5$7iMFn`x%O|ZLub|jI;T#mv+HC! ztInm{q+g}qqF<|DskiD^>+||$`i1&6`o;RC`jo+M2pGx@Wrlnwl$S^rhQ^e(a- zx2SCQZ4YdZY`1OQ?G!uN?sIq?E(hocIf9OWqlGi+Ug}=tF1UBP&$th`*SOcYSG#w( zx48dtpLVZuXWSdz=iIP+g?pEKu{+^D>OSSpy8m*ocdv9`cBkCi+-Kbj-B;Wf-T%68 zxHq_CZiZ(V*bVFrionU>K(Hg&1#APh1E+!g!71QGa3O0YasCtNlBJJcZjGgLQREnF*HGh8G5 z>wgz|R}VLiG>J5fG>CMIwU2d|jv0; z(mT@!(tFZJ(;G7nGEXuSvy-y)EF(+HzRkVMeax-M|3+0S9$fqdRkOHO@h8+TRK4Q* z#XnJXivuOWlD8%QmCVLY#m>i$z)r!=#m>Rb#Nx3;>}2dP>;!Co>_qHnY+vkHY+KxF zJdEFnUx;6VUyomdUxr_V|Be4m{6PFk{QPJCX9Y~}Ct@|y7h+Y?S7H@XEm93qBNC6C zrX(o^3Pf2Ii@S-tox6&=o{JFH6t)sR5_}P~5WW>W6m%B;7Q7VP7qk<0 z5LN(wrH}X}=p}q7cr9oy{497Pm@KR>+F<{3PfptR?&) zXelffEfXyfEfy^oRS_e^zeQEWQ)E45Rv9QeB7@AS24kWm=h7=9FP% zN?C~vCBw-Qvbc;QL&z91k<23F$)d7SSwJR`*<@uhmP{uT%1p9NiuH=DVuNC#BBS_A zu~h*pmMQXzrHVz0Rf?Qqg<`WJrOYVtsuESDmsbG=P*pS)T}4rmR16hSMNlzSpxUSQ zt37Im+M)*3UbR_mP}kPf(pWV;v>ml=v>mkVwcWIBwY|0Nv^g!T&1Abqr z`d#|7`cwMz`ZM~A`eXWo`a}BT`ixH{C#eSvrG7Qkos3-^2X4|h}Gx%-*BCGgAL z8|VNG1gZi*-5r5X?jb-=;EDUG`;GfQ_g8mopffNSs0XwG1_4YD7G!~JPzT-vRUjTj zgCwv7WPn7l7^H#{Pza*HB9I1BKp7|ojbNphR{;e`K{Chzk)R3GfJ~4F3P7T_hOfS_ zxv!qDm9Mq0jjyJ!rLT#vp|6f_v2UqwiSL!~jqj!JtpAArZ~q1VdH+TKCI2q}75`rU ze*a0D0nA$E%-EeJ$NhlB)Bk?3oQy|L!HCj!ac&>!vn)D z!tKH>!%f0%!ac*i!p*}?!>z;3!tKMY!fnI-Bi$pdBW)v{Bi$k`BdsE;s5~l*@}i>X zpjf|HpFjKmD!_l=*w9$d*uWSN^ThlyN6Z;>$Lz6l&_U=Bv>&<#ZG+B2Z=pNTRp=RX z1-b>Dg8qXJKu@6)&@t!?^cXq~U4o87ccI(R6X-m20on@PgL=e|KwBVl*_yJ|W$Vf| zlr1e^Tz;XvMzVIYYLb}rC&Ni^@?7$4vSX@4s%NTCs&}e$s$HsAYE!Cq`dg|=x_P=~ zx>dSG`eyoc`fU0_`eOP_`grH z&MLCptTwC3%Cr0|J1frq$bHNG%>B-N&eehu@Yme;Ty3}pTpf1hFXS5)8W-9ZH!E&c z+_tz$@$KT_rT0qZSUOgURbjbU7FL2)VyRdiwmq&L?ihX#{y2Ugekc9_emDLIz7?qr zsU4{csX3_`sWGV~sW+)DsWYh~=|9pM%0|jxlogb%lns=1lvR|KlueYil=YPVWADEI zo2ncBkC(moo)R|5p0Wf4WH)J>(d^ZXW;A;>>B(wV(`GbjGfyIliUV8>Q5k}YhzcrO zh6oCZB6~x>pZi?7d#7y*Mfv{Z^$(l}=X~-YZJOuny^+eJ@o8L|g!UWlJndK71==sP zmGpo8;XQ>1@Cp56I?PzLKnyw3NOo z*&z8y^0wqn$$rTW$%m4cC3_`rNxqT1BY9u)uHiD* ztLLews^_YwtEZ?ZsXtc#s*Y-4%^FQy6Vtq`c|}vDiD*KaliJ_3zi5Bgp3rx^b9lv>H&3z2131{{?JgU1JniT z4RwNgLL;Ez&?2MWXfPHV-!uMY9BUe55}DpJzh>TG-fG@te#`u>`EBz?^ZVv4=GVRCxenLj*uhZsB}0TW=FLn?9e$Jj#nHuhtJ`6 zz>ZQ!&=Ge;9WKXU*GShS*Lc?i*C^Ly*HG6O*D%*a*ErWRt}Cve%6=}pT6VqcM%l@- zp6+vHr^_yveOY#@>`d8(vYN8L%I=l<%PY%$HZo1fZyl$`z!oj|ER#=K-<7Gf!2X8f#Se(fw_SJfnkB}fo6dh1LFgo1Dyi6A@H!WT_7uPud;XGld5m3wpVSf`lxDi z)sCu7RoklGs6JTTA=Ew8H53VjLc!4G(CyIl@Wk+x@bJhpkx`K`kwoNDtvU&0i##T+q142tPvmRKNG8S}-8 zV^y(|m@_s4?gI~j2g5z#G4LR`FFX|P3ipGbft?9^!jagJSf4nQIGnhf=$@RH9GNpB zXK2pwoFO@5a<1nF@a6alyd7VPx8fnZ1#iTg@rUyd=I_t{K7TxU1bGU17h(FC;Z^xe!&%ukr-nLjaqVV+}NV4hrwMe~8y)ebd+LpG5)_l|2>8C&o9On zlZv+&?=1ebxRs%c;i^8%P@})6?`*iP?_jv5Z*FL3Xkln(xUGMnZ*91&zoPGIXm7Y+ z7!S>bUVx@T%fin=W1;2H0%$2T23iG8g62RopvBN^Xo=Bigp4J|>&C0bai)*WpP9cl ze`WsMyvO{B`8PA!Lb6aSR-4J@wY_euvb|(;+g`EhZEI~&Tf(NX8Eh`w8e6eVYa`e^ zwrZQ*R$+_SV4K61t(#E%Mcf9FX@A%yDuH$XTR>vmC zCyot{y^h_EU5>9ETO98=K68BK*yz~o*x~rlvCVPH@xEiaYpQFm>v`8gSFUTO>jl?( z*E_BauB)zVuEFlU?%wWh?pE#&?xF53?(Xhh?l$gD?zZmM?t$(e?*49cxwKqfE-ROm zSCt3L@03d_vOTLkc^-^sm1n7Ek#~XD=7W6C`J?`q{V{*UpY*Ts!~U22YXa85JAr}# zKCm?K6mI`te+fe%KR^kn1Iq)LKu&-W5C^=0RRKXj7a#<1f!qK(APZ;$`T#RP3$O#c zKz4u_*i*H$YH!uIyBaH2+Xvuj{aJ!%xrv>MJL6Gw!=Q#IA?osaNf~|sWf-{0I1Rn`D3$_UM2sR4V3uwZ< z!VaP~(vH$j(q__D(w@@J(whH%{`VBlKTCQ~GE#b9a!b-)+Du*}yCZ8Me;`vUK2+{h zZc=`#+^*cL{8+h5*;Ca+MNt>1iE4~GPfbvh)UT?6RLTf{BhF%W68afg>7CIa{8oC?8gmc2V;Sa+LBXc9OBVD2$ zqV1xcqAjD{qV1!tqHUtBqdTJ~qHSX>W36IiV$)+QVyj{+V|!v>#CFGa#6FE}ihUUS zA+|a8S!`=;TZ{td!Dx5|Ooms&PvQ3e^_L*Rcz6{|fOBCiOo#Jf66{HoCr&4tC9{&f zlOvMPCdVenBu6J#C2`4VIn#5hb8qEt%zF#J9{(Etb^M$7xADjGPv-xa-<>#*{5*L+ zc{f!`+d;p_Y{Tiw>BMQr>B#BKDdn8voaCJ1o)`Qi_*(Ft;Fw^a;I!a`;DF$wV87rS z!6^Yl_^z;{sGoF{bcnRK^jRrNI#fDLI!4+@I$SzX+ELzK-bUVB-b((e{5APn`781@ z@_owB|J#3f3a{QR%H7J|Du#Nm<}1x-nk$+?x&bDQFv~E` zFvswR;dg@?QbAfs3TYq-R1C=>CB%nT8dn&tM!Ru~@qzK7QENJ4K4k7-DX=gtY|BO4 z72BV-W41H43%297Bep+mS8ca#M{TEVXKg2J-`OtPezpB&J7xRXmgT(bXyLr+xaDZ) z?C9*^Z0)@7XzQ$Tw0AalvRot=*+pBhNp+%LFu-30fda!t9qJX+qmqD@7+inlA?tXN<1R)yH3^(Z_7kHn+* z?DFJ#bG&FT#+&Ee=w0BS?|;|7-hV2vC$K-TD{wq;AaEz}N8szgvA`RFUjttS4hAj- z&IS$zJ_~#s*ctdf@M_?Eprq<})sIzYs>g($4UG$p4vh?b5ZV&j96A{~6*?WFgo$Bl zm=N9(-WL8iygj@uvNW=Be$iM#Zp27p@AMF(#5gimA9vu)J8XXcH6&)5G932?# z8Qm4_5NjXn9P1dH8T&nUG4@mJRP0>r*Vxao%dvy8Be6eXCt}B9zr+s3&cu$#G_V;i zgG*s2EQ3w37PiA~xEwBlg|HGiP1LniQgg>z}aX&FWxgfbP zxjKnY5|a7JnR)NyH{n0PpUq!F{(`!PdWrTIZ72Ox`WxP7ls$&IRsS?m6yL zxcz_qC9VlB3w{?|5Zn=55nK}dC73InE}bZyDV-*rEPX-xoOHf)wse+staO2Nj&!PY zp|pp*r+l5fL}5^TqjPxaTDZ#DZh-)OFCM(Bp=M(IZDhU>=Y-q#fsgF(sS zTgA%_%M2?FOASj5mkfFcg3OQ!`p8&g)R}%XA2ahUg_fcA8e22_L)!p*mi?x!rM;cK zmA#|=fvumjtFxQ4kF$rfx0CJSy0*G*xfpJNo9gDf+3tV+;XQ>1z;W~3V)up$yT|D% z^$@*yFTsoR=6gxr3g06CLjM;3Cja~X5Bwd1J%aZFLxNp`J%bMey@FkXql5i|oq{(4 zS;1R@Ho?xp-ofs{yMcDW+kv^k_Q9IK{Xoay%|N$c>)@%XpQ=t*O$bd4Z4G@KdJuXT zVuV>?c9B)lA$ScOgkcnACjTn)blzYa$du|zcSOX6JOeB#%{q~wGoImt-UlGG$I z=}*qinFW6F3+3*{Z^LiLFC#A{@1yRgUZFi;4&XEw-WRkG-WFsD7fBaOS4fvhmrIvO zUz84#_m}sRLyA5sf%<@Eyl%2?q7G}wGh8*4K@P|Xxgk4L0j)NEY@B2|Y5vzA-cxu0 zeeGlIBkj-FhuH_(``Jg?C)iQ;A@(u$!S)gMG0s8G0nQ=L;m(21XPqmYVppN7$R%{$ zb?Mw%_Y!xpTkq~#(X-;63XiAUL-UfoRPT%a#r`G!t^WDJIl&phF~NDkNx@mcvB8l5o6>m8dN%Z)u79~2)L9~U1M9~~bPA09`=xBU0_|EF;No8eF3PvJfASMYv#JN!Ak z8~zyH1b+)}g+GGdhQEa0gV)1f!ymxk!0*GwiFo2-;!@(z#DHYqWdG#kWOkC1EJ#)+ zw`PBV{~W&$FC(rbuOc6!en-7ZLve<1MskL7Itbee+X*{~a8kUKAkCEymOmqZLvBZ$bjJk_3%hv8*; zm-<%)F~JqVl|giHX>dt!S#Wvq#o+wV*^nSy7~U7gM#z!uXkHW>T@^(~mqk}Zmq&A> znCO9Mzu2>}IWc?;7ke?jEIvQJI6f;rHNG%DH$F2yEj}eaFFqswBm6yl3O)|+gAc$b z;P2qm@Ne)j_$YiBz5ySCPr{oMmlM;IQM@s^rVbc{!2Xr*QlK`b%8MKc6or zt|lL)PIRK_%~&m1Em>nYBRJKZi`;I)?!qp@uY_bNNjg++QJ580g;ae|!!vLVRglOs z+rGd)%RbjW**?eqynT{$igSW?RGoeOUnCIggpgbw)Yc1D~JnH zgM=V0_*v-lP*xZpB}NCwo{0^K<;L^lnD~nL>iEhyE>4WEif6~~!MEVQ;Ir^W_%?hF zz6qa!FTuaUSK-U>&+s4c_5c3={}f)m*We5ApYX24fyC9swM6UWz~pnunaLT+MM-p0 zmXs!ol9J>P_;2vpWHDtt=TGh>ZVw?{%9K*24CyfWkIG+^hcwUWw&*tN1cnggGKwvW z?9Vx8I;T5VI)m;icfynOyySsB+x^@8yZpi+KUf(2rTWFtqR`UNp3pBLTJ%tq7-PqI zac-Oyr^OlZ=81=Jn?#F5>qM(WR-##=U7`kl0JluMlo*_RF{w}N8GP^)_Pv?6a~dWNl+G41eb^8VS0ogFN%xf9TJ@qT@zgr-4opsYZ5mS?UGBA z+N3^NoYW-;6Sz`|VXpK2iq|~5{mP&=s1B-vjOc`zGOmcr;;MMhM32PHMEm60Bwxyr z-ZBX6&pYQi=Q|Vbc=;Qiy`GgJMOYdBI{dFcyr=L0n31<41yOF47abn!mFSaLmTbcs zEF2|YWnbs91WiG6urSJx_Dig^C*9VdF1{t9QVXNS@j;0~sX#hLzBU0RmnXx?r|?ht z?MPJI@k7D1gML0xyRMy-arp|VlgP&XqQg@(GF#Go)x_c=MJ9H@IF7nKWj zzmewC@j?D0~`tm_3Va6;h~-q0*V0j{3aij5A}MMh$2G0TqG0;>UAD4RjBt8 z3W@^teuavnLVcRiP&B9yosObIeYP=B45;q_CW;C5)v-`4sP7RriVgLf4u%n+egO`O z1NFPYMRB42Xda3O^j7fIG|(zWiJ^gKicm$+ zp!pz<2n~Y4A3~u)_hcv;G?*wy$rlgalKnz9CFe$7|2#`}o9vF+OS3ERM<_*fMRu1Q zM|S7z3E6?{UD+|Lu`Z6ypLwjhq9bfwmC&Imscel6-LpPxNBdv5lH>=W6) zWuM7DnSDIBV{W^=fqAP4LkYu(eTWmuW^yT|J7o?MMFtlq;f$(4rM0tZ1cZl~g9D$v4V3DLksNYGbj=m}Aje3>K56#A39s zc0s;~FXRjRV!mMY(CXpUL#l_N@#r~d7J4~44_$zM9?e7NqUq>`=zR2e^i=eGG&9GW zvo&{M?qKlRTA#ZiuU#HHPoC$=^I|7qXJW@7bNF0nOn0r53rnD`PgMD!3}Ci;k8;_JjUWDmKLGMX}$QbF-j zoD?_3MX98eQS6ierHc9!tv#(X%}sOB%4tqo1-%u05M4`G)4!*GM?XOSlYW7IiGGcK zhJKEImVTH17yTCf9wUo>oi&?fWtFo$EH5j_a_8o06owLRn9Fnery(bqY**m9m-gF6A{^A6idZKl*6;Q2H?Xa5|Q5p+oc%`YHM^ zjPZ<-jDCzMj1G)xjP{H^jH!(NjKPd?jG>H9jIN9cj2?_`jE;i<}d3s)$XXlmjl)MUFIj@+PUmYUDy)7-eNBBueOY}&b6ay? zb4PPeb60aq_kwP|?(<@8vA+18L1lPgnr`x%Hke*9eQ4TbT5lO*dC9WV@|GoP30q>8 zO_tX!8!Vq#5|)oF8!hWBYb~^didkXt5VG|)iND|f($_XI?Oo$PJgfPKNh!9>SL-*NL5o zdBiisQ^ZT8EaDa7N#b4N1LA$+P2xG?RpKq;kHp`I*N8WWKM@}iuM__yucNG@9H1Pf zd`&q**+==2a*A@CvX`=l@)hMU~+Nw0CK1 zX)n`av{z`a(%aA{(D8ITV|U&UtjnB*oJE{BIXk#B zz&r31?sV=z?nv%X?o{rx+}Yeg+-cld+zGrcyso@Yc~^N~@;>67;C;-y%{$85$=kyF zoOh9Tj(3{3iT4ff1Kus(P2MHmS>7(*R^GR~^SsNv_j&huU-16qea+jz`<3@2?=EjI z?*Xe2qhjZo+chIenvc3JYU>h++K8CJXPFM+)q4P z++W;HoFyJ4enH$!+*dqP+(O(%yg=MWJVZQB+*UkP+)mt8x<#6lZkN6%eOJ0hx>34G z`i6X=e7SsuTqKvu74jnaSMqc63-XKd)AHZtzsk=lY>KZHyA)q4K38m2Y*uViY*buS z>`?4cY**}7e4+SIu}}Gj@{($TYN=|O>UGtdYMuHsO2Fm5-sF?BX|G4(XfG#xeVG5uuv&h({em+64%bJJPV zG1CdtSEfUzy{7%9Bc@+X-$LP z{mFO5x6QZ1cgXj-Z@X`gZ=df=|3Uu`)!1rubxw6&^@{3j%wS9_OdCuO%uviE%mDNa z^mWWs%uLKU^iA|FOdrfZ%n-~d%yi5|%w$aG98yj&Cy?`1&SyEF=X{y-Z7wsHl$)DN z%cbYya#^|GAz;z%rBQz&`oj-+ei10n(Bf=MiZG=w<9}+ebb`bUu4iL5yJ|%W0t|0Xz^(Kuc zO(69mbs_a3wI>ZGO(l!Suano4-=?&n;3-(jACwx(CCU}bEov6!4s8r=G;JMi1MN-P z+w`gQNpv2A${;a#jD?Js8BT_YQOPhfV1|`Z#fULN3;>#)oE4lGIbU#g zb3Wtj;;!J*xl6e@yzaan{Ac+6`OEoJ_*40F_$&EnesBI{{y_e8{;WVMxWDz=rzY5O@F9^>He-@q>jSv@$ z+2R7RTHHy@6jzG##VoN{ED`&~72?0dMzLK?6Z6CjaY!r`8^m<6MI07S6!XPyF(fvL zOU1p#R4AC zFUYlWja;qBlHZkImp_!>lwXtIQ#4cjpg5-ZMR8d1iQ>HCtl~Gt3B~t{9~B1`Cl$vP zM-)dD7nG-zr0H&iGUSw&a9tNK*+vFbC`PSp<8X4OaPGVmq5L7D-Yu9_a2?wVnm zZkk@2ewzN8p_)SRP9*pWF1yV)}eJ2U7jvim!rF= z`$PAW?vn0L-S4^+x>LH7#r9%Xv8~u$TwYvO>?l5}@2YR9@1bv{@1k$3Z?EsHZ>R5W zC^h&EWrlKt(@j*2}I^Vj`I?_7O zI@J1tHQPGCI@a3OI@h||+S@wZI>b8DI?+1Dy41SFy2_eo9c&$EU1=R~_1`9<|%-ui7K_HTKu-RravmV~6cNd(gSax!5Uos+?-4+-Y*k zoJOa_X>~$QrPEN>y?kjop zH+_eFKlzUNj{DB~PWyiG9rgX_JK{UxJLkvvv;AoQA^*?*#B`c@eV!Q-o1q2$-Cl z1G&Onajq!0DEDyg4|(JB;y4vfjhl;GjlKa21u;X!^|!tMMHglmNT`E3Z72xkdb z3BM5jAe_nXOt_!lm2f`4S$;>t6~b?X%lV!1TM{WG1}UF}Bk@Qy(sQKgBryp?qLVlz z5h;&UKq8P9k*K6x(qa;sw2b5-Jx^LqnnhYgl9CEZOG!B-Jn01zg)Ao*kv}Exq!6it zsU4_;sQsx!s2!=Jshy}JsUxUesFSGOsl%wxP$$ryr%j{1N83o-N_(I70euGjIeLs< zO;0k)7(Rxbv7PZQ<0HlojDw8*jB|`*jFXHn8SgQEWNcx4#n{2v&G?3~lRbsaVVAKj z>=O1ic7na04YNb+x7Z%GgzaGa*hTDj*eZ6MEoN_E8`x{vbJ$6?mThC3*?x8fTgu7f ze8c5%nOriL$fa;uyuN%L-@*6s<9so{h`)jVRw14*;lILvoBsx1#aHs*=X?1YekI?) z7xLx&H~A*Mj1Tc+{A#|N{}SKDU(46>^?X0SoL|N-5zY`!70whsC-e)w!U~~BSS}hX z-YI@dyixo?ky8A&_&4#-;w|Ev;)6w5;xENNiBF3Ui?@q^5uXsB6#po`F8)fqP5h_$ zviKwMA@MHpe(_%M0r6Gw58?;nBjRtwXT={&@5(w!Z^`;dugf}0FUwj=ugSVf?@McB ztz|uAS<>6mo3akF=CaOmNUoO~z@J$MDf%edD7q>7D%vaB%4-x|6oVB`#ZAR+#SLXk zWi!PCWgBId;;!PpqDI+K*+Fp~#6AmDY}L1_?^XL%`&3`6zEd4gd(|%W51Lt;iJI}6 z$(kveX_~2;d72TLIhyI(W!hZra_wsE3hgTGNbM3WMpvNY=?ZlM9a|^VF?Ap7?&@yq zZt89ody9j`KK*q49Q`!?2>m4eQ2lWIRDEClSp6XVWc{=H@%oASDf;L1{q@5PK||P3 zZFr?*dda+!=SpUj%r03{GOlDy$-J*^ z@jK%l<9_2_(=(>QrU9mb@=JDod%;U_1%_ws(^CT-zqD_)e_;R6{%6`$|>d4@{;mbD@rQ#6}pN~Dt1+Dt=LiVspqKYl;@=9gy)FoC(jw* za9;;sH{U>CM<2@fm+yDqW#4t*Ro^w=LElB+AHLuGcz?d1*(~`EUEr z`S19D_h0ni@?Y>@sw%FsS2?Q<)#7SlwX9lFy#xHIw`KU3NC*?dRAGXc1jdbd1!KjO zV>}ob!^gxil^6@gkwecpnAbh8Ti)8d*KvN_I^3(c^*9ZF3GQWF0O!Pcahq^v+$*?B z+*(`-t{nFo&WNkRt-*N+9rMTJ&&={;>Sfgd6$G@<-$k%pZ_HHGh8ojQk1t zv+|$IAD=%ie-4pJdWRGwB}v7kmq`hdmh>9QKzfz*HmQoVfi#m;N-86TNLG@Y^ae>! zDj}7V;v_FAK!VA?lfNPFBOfGxNB)ZZEu|x65_KkZ5miWCNL@*tPn}N9p=MKY)Tz|j z)LiO3>SQXB`T}(pbvgAp>Rjp+>I~`v>Jr*w+Cq9h{Wbcl^tTv$8Cw}&Gk#`#%lM4h zlW~>Vp4pq(igAP4gK?X2pYf3KDYFH$FLMyHE2DR; z-32iF8v85uPwboQL+q>U8wE`EY4&#ZN%jf$XY8ZwAK1Itd)QyI_p!fZUuGX+ALC5n z@Hhfa0f)ljb2yxG4$Mh#HgFDrAclb};_A63u8gbW3b=A!v%-%29|~LYPZW;j|H1#A zf2FVs|1kd+|04e!|7Ky2!mj*l{4<4Z_+J;cEtK*%7Ix$R#s8wPC;vA80RI91KL0{t zhr;%SefZzc6|F^mHawP&nkN>`zuk(@yf}{;mTpkLCP`8A<8Mrd#Z^liAtn8 zuR5+eqxw~KQgvE&PIW|GrLI&T*Sx4%s#&aAty!X3p~=>))U48+()^)iXbZF)Ek!HV z%CrJ)kyffL)bh17Ela1=DRgr16_@74?TcF!cPwsM94Y>__?&))eyM)3ewluiK3l&) zpRZqHc-fFJtTU`B$uE(VuuJkv@FlzwK?%AVU1dMTmP_LvVLa0XFX#5xpaW_ zN9#lTQTxyKU+q8G&)SdMf485sU$mdF*N)CRA2B-bYUbSQN*kRod*tYRdA-s3ibsyl zdmb}7??XoC{mAIN4~)+H+xo!hy#Iej=j#ooS7sPY_k+Ro$_#_)RjI-B>WqWwA!IN; zj0~p7e@)!UMh4R{j~z_UIg*QpO&t3sBV*qbF!oK&IQC7; zF!oJH#=aT1n2n5mvxfNjEM)AP{Xb*h7YqK@P&NB}L29U)gA7%38w^$Rh7>k=sG5Jd z@Ck;hh5tKLU2kN$=qZmZ%bsXtS)Mkstf(`xtjsjBTyG#)g$x82T2+6k!9cL8b|6^Y zRaH9>tVRZcHH{1eYaclftV<097e8VkSpSHDU;{D`T=JiR;6}%7jTy#mO(=7{aa$hB zoHlN2NgKBTT_*@&0F+H8m>gs~r{fXBZW&{70jrRjEIS2t zq132oIBirkk{T6_f>F^JIgX5qCcvmDrs1e)+8}1m(cIJ^W*!*C#HR)^arg1HgP6Fx zcrb{G1B00PO&r7|3Q0{E#3Unwm=rekk%O4D`h%FMF-Ll8%#qo|F-I0M=2-Bz#vD0d z%#n+XIr5M($HKom=9poKP}pFIum~97d&P(ijy`P#jP_MB|t`_3c+ZUpjROnjS>tgL`I_oU^J@mprrMH>ro+NJ?cisdNirA9&N_49$ng4k5FBl8tc(F80#^l#(GN9#(JO@ zC3VJnjOk-Nsi7GY7@9HH8Je-w8Je**GBi_q&-QHTT^kshDZOqRTYA;jt28w52&`g7o6er2mgpri8$Bv|wXBbJT zNR6a;nlzH)tv8b5s~t)4|7Rp63a) zXIX|AdwIPWdqpb7?r9{(?yVDJ_x&fv4npGodLi+^V?*MV`vQY1?*@8Qf{=Is35i$M z1nPvuD<1|xNWAi1pm$Y+ka#r+iHGWi#KTBPJo1Q;c(h(fJT^7bu*r=?u&G;UAc9Tb&TJ6DE=Y@Db5ap(?)QQU!4m|Wg&^Q8 zYA1O_z*$x&;H*Fb&dLS>XH{*$S)CSe)-(t>YeB$S*Ib(lIO|$zLBLsu1e}Zi6L3z8 z4;w&ySbx=!r3dk0LudVULkImeLn=P32k~J;Ydwe$8<6-gl!_0BmqCrhhmC3RVbeHs zz4)*Ni4WWUS$sGZ&b9L$PaMv5H5$%!KQ^3OUN4+mA@QVzbG;y(>jU9je}iytAU&M> zH=?gqY0=keB>Ea^H2NA&i@ru0jlM>kM>0fTqp9d?tXcGaEK~Fq36{c-36>gfz~dA3 zf~Cpf{~IjLL4u|Dv|uSwN}fvr!BXl@8VHs$GXzTuYB((mK(Lepf~5ubIUrcdMS`V* zjKNYN2$qUENb3YkB{kA4$vx>v35ab<+sm8DKx|XqLiRwRR@RGcsz7X0ogucV0kKV8 zgV<&<-OxyE6UrFdG^S#kCY2e9ZCXHV)Asn-=J)pDHY5~jFLX2^6zOc{KthqOdZ9>n z6GM^ZX`#ppBoyg+L@3gm3Pt)Ggdzj~6N-GI$YB){Ijlw^htyrwNaQf|n8;x`6*-I` zk;7;sk;7OMBZqK$&}g7f2m*bgj?zW~eew)}KIQ)e`aoPx)mzQbq~dbAI&ryT5SKI5iOWG5 z;&R41aXFLL4B~Q@R9w#1D)!U5uP&Qx5^ao^e2QR4)0IalVm90;Si8x5nC zr^09zb;4+#I$<<#S{Tir3Zn&{D2!Hxgwd+cgffQF!u7&vk=ig?^bt|7*b_v(;J*>| zN~EG*$vRQ5yqS0;>Xm<%yo3s(UNjK(qJyXx^A4vr>cvH(UV?f-D(Pc_RB|Lpr2s)H z_cre_GY$+b`Yep-L$8I zRJI4sv>=r$6{K?iUyurkDOGInATcFxT1?4T;ZKVx1wl+Ha4(3&lmZWfwK1i@jbK*b zRxlM)3fv903)~KZm{I`5l!6@tH-jLiRE5NpLTNFja9T_$k`_~nHX2ikAu**mh$+Qx z#X(Fdc00Zxo)!XvpD+ZJs1pK8)(ZjUfDlkF2m#@d5D*!JfT$n@M7zR#z!@NHF1Rmj zA-FBflGX_U$&nC{0#fx+3p59GNC?P)gn*#55RegsfJ~FjC+&}j*f{G&Y+SVw8+UEQ zrUHrBctFI)i$rYvsfbOmk%&zd60r%TA~xYv#3lkFHqizVn^;=JCf*=o18;$!Ai$ES z4X`BZ1z57T;*kIgQAP#<7Agp^(5?b~hy+-KNPtDuNtz0<$dLdGnCD9cSkxfEq5}bz zVh~_4)CsUaej^C5m`_=R_Ot+tvo^ruO2tFmY4MPXUYYPYNvykuw2MJ$r zFA7uP3n>U+$cHMB@P%5cIcNak3#iH>veyY;I8)&ZS1NqrPK7VZmsIrgguNhq;r}F9 z8@>pE@I^Q)3c?pLBzzIi5WavP7rsEE4T)5=A(=7SfCteAayCWG8P5gL24N3rD%v0) zrUcOj%^@8UZ7>L+kkMrk+ZQ=g(FQk&Hh5Ce20s#Q2qMvj>R&>&(S|69HpGbWv}i-3 zIs7nDC)xmmXhQ--80zqgW!N22@bew zg9C059Pl8)fnaTLAhbLzkI>^ta3E1HIFL*W4iE-Qxdw@IZpHha*ZjMKso+4A5t|TC z1qTvHa3BeS15ywiFx;{WoJerMohXlcKyVTVA^^)r5iB1Yo&Z=rxs26DI9NW) zzRI&Mh+z3B!19TH_Lc5r&>Ghzwy0H6VZ1moND8pLd`x0(62bBSZD;*B7@%#`oh*R1 zhZ33rv^{K7Gk~^-_h=5#_6S*XfVM~OZw}D*sPQcT+8*t00nqlC-&z2)J$7kJfVQ7~ zwIx8?<65)=XnQ=f6+qh)cC-R$d*Yzh0Bujww+3i?^0C$cZBLom2B7V!Rc!#;o_4Jb zK-<%E+5)saj;%dF+jGyh2WWfV!VUm! zKcDOX(DwWX9RS*1K<)_8_QI_l0os0{PbYx37pXb{w7vL;P5^B$ncNwm?H9eB0oq>r zXJ>%6m#ypq(Dw2-x&XAjqD@zTwpVhx0<^tqcUOS6SEB&ihO&*_0NO^M>;}*_W=?m2 zwsRug0ou;J)g7SiJX{Zewy_`d0B9T6ttUX+cu7xywh7<#1ZX?|*AdLMwc>D&4Mw9OdM7ocsXt}j5_tRsB^+GbDh2hesw zpdUcnoGbkR+UBDB1GLRs-yfiDeun`7Z5I{}0BBpVX8=Ik!Vv=j+7?*{0<rw_0NN%3v`tQ-Z3=?6X?y7a zZL@08wg{kYd70uvU72ZcHG;O$H?n)8uViPTZ)Mj(+vw}r-O=ymAZR-`g|_qBU;*03 zBWRmY4{a0iHlY!;O$2D0+z8sH{6wvT zwrNd3+w?5Pb^2q`HUN()w9UzYws{AHO-9=yfVQRe(6+o5Z7Wh}TV+{$DnN%g0?yBxc4~-+UDNlq|i3^0S7_b+$TcYycF6N{tdJZz6M?g zZHqFZZScmJ0d33cp=|{~+sazBt*S-a>NK>iLD04iLEFUuZ5!&KZPOE=ZA%Jm+wtXf z(6+Z0ZTo7`c6F1`Hadm2bJNgvUK-lQcCtPKZDSvawgLO9Mcc$I(qqv!aUHqIXq$3} znh|Z&QfQmrB(%*y&^8O8ZT1ZoK-+A9wpjpevjN&>A!wU@m(`06&^9ZDwmFYL+uZ*T zXq#6DZ3_X~7S%)B;^U$xK-=O5Xj}S7v@L%u+ExIxt*k}cDuA}twP;&|plvlk+nNk$ zTbluG>kzbE4A8bd4Q(3`v|W-y+r}qC+ol?GE!wuUv0kubSr1ueTkD{0OGj%1v~5YD zZF?=+cK+Z3XuC{akwV+v258#{(6&DfZCBSp+Zceh(Foec0JM#+hqf{G&~{Eew4Dpk zcHT(b&sc!AaR}PR_Q%y=0oul0!~(R9yMk?xOQCHng0^u8+9piNZxn440NN&IK-;7g z+9uaS+mtNo9ZDM7rXgsX{#dllK+rbpZ=r2=8rtTh&^8yKZQkER+x#@NEwq^Gpl#s@ z5QcwBXj@#1wxzR-jiPO73T?{)b^JfHEpGzaR;19jG9%hn0ko}d1Z`^?McdlPplw|} zv|XG5ZR_ixZ9_)1U6K)P8|$ELQ#12DQIUv`uK6f1A)DAE0eQoBTAiP3W9|pU^e`JOQBXd<1P10NT!{5dSgS zCZ*6enMipI+NRb)+q7D=O>Z*VX8a?x%?42H% zZ5tkmwo4jC+r~7sZE6&4o9m!$%Rffj)+VBDdlS*NGljNYDYRXdhPKP=q3wz~XxsA` zwC#H=+V&%8yDANBR|`S_ZHGgVN1|;EK-)Pfv<*yn3T@+-;2(pwaUBVD(02X}LZfIq zpGo{%Xq!|AZIc1oraUp)rUJB0OQCIg8ro*`WL{+;Xq$P1(Sw;n+l&<2X4WtO+Geg` z)kE8CxS$T&W-|*OiMH8|qHRt+w9ReC>sa^$zh&VG{@6kUZS%Vn)}n1bK-+}?ZS&g{ ze$5AHyKp1FTOmN({GNriXq%6q?ZP@}o8P(+plv=t+l71hji7DeB+-5G|5vnKgrIHN zJ!uBCEvtjJ<&C0k#beO6G9%gsi9vw2)fv&Yrct!5O`&aFJ+xii0B!42Xxs2uv|UmU zZ5wORwy9CHZLUSz76ffuhm``fZS7u~Lfh7^rL}0=+N?AK+O`6;U3$t2&~|AZv~BHC zS`Teo2b2P|ZG9x#wm$-GJDa)oI@8d$>yc=?tRC7fe+n)h#SEkT*RYtU3jiBuig0{oI#_uE$w4MD}w2e8ElS13MPlUE{ zJqeFR+xbmI+av^SlL6YMWJKH43}~B%pl$jsMk8pOIfTXcBWRn2pl$ZwLfZxB*(tPL zfS_$o1GLQ@!fP_xF1*Zt0<>M&2-+4tWwc%NL}*)RPm|>Z-0q+bRTYs~bVvnn$8-Q2n#$N_0BiBhYs7Bha=ULEDDMpzV?jXxoS~)kE86 z6fX^Jo72#?rHN>}w2dtT+Ack2ePXm-3edLWmc63`LEHA#j@xzwZ98t-0orynK-3w(<9IwP+iE7YEQb9-wVp6VZ0Qkk|yYO+wH% znN4{l+NL&wwrMG}O>ZLFW+G^t^|#P=0YKXv1Z{H>w9R{pXuGfh+7=>cy9l6d$?c+< zl6yrB(6;2yA_Q$q0NO69Mca~#MJco`0cg7jpl!+hqBOKE$%wXPwP;(OLfeWuXj@r} zw!v3Z+p0UNd#Ssr+pBx3KU6nB+nPqvwl*W$)@4B3#f_kCeQ7R&w)H8rZFoYoT~dp- zjR@K{)j`|lUY4hfwo94ze~7lhmv7HIuQ)THZD$>{?Mg%2Woc-;yt)FQZBI=_C(nb5 zTD0wXSOL(sCxy1Xk3if0r-HUC5wu<1DB2DoXgk~p+KwP-J6emjV+h)gzn-YU0JNQR z8w1dG4nW%&fVOiUVA|)T&~|PU&^Eq5Ap_dZuSMIW7UbKc=Hxr16xt^9D2~w%}$VK-+@rg}nu}Xj=%-wx~wfT=bODw&byBTL#d! zJR{mxWI)>>y4XeqsTxJw>J-}6WJKHAG_5lP(!sWyr2uW)YSDIS8rrt8?EesLJ4ntZpl#P<(RNt|v|XM;+Z9bh z+n#!8+gppaeUCuf{(pqFD@OzX+ODic+f@kKu5N&~Lk-Y&xNYQa__1g^l7_aUjiBvV zE!vI)v<(Ba9Y@eM4A6E0pzUND+Rg!JJ1+y;#sjoXsE4-m8%5jXM$tC40otY^Xq(;$ z+Gb`%+XX4K&B=haxx;w>5N!+Up=}|8wndGiZAnY%Bhj{`320je(6+n|+6G@0k1AhM z29=e{D&-m_K-;Q}Xj`2DZEG4q+uF6ddT6`&F=$&~i?$6-LfcRp+BPC++teu9HX~@; z@{iEA4ME%XCqUbdN1$z28rm-F>CS+*%j%)+@)X*xXasG0>Y#0JE!y_gL)-qxqV2%G z%0Ypko~+K$vi+tEj& z?N}pd8?J}8698=|)6jO#_1p|-8=pek`Hi4$@)jyU+qCWU256g^hPDe*Xd8rDp9pOW z0NNI|6FmZLOX{F)8G^PI4bZl-7HzB2(6+h(+SUNHt!=JLp>1s|9YEV!1a0dYpzUIS zwhdSHSq6Z%^_>mZ^&Je?^eMD$0BBp^+5phD9zolN6xxQCg&RTJP#W4cjx*Im+hzo9 zTb>Hqw(;#xjJ6$(qHWh>(YCuD+Afz=q@isOK-*q`wtWrIw*McZ?LZpZu0qgub)#rI zl!ms$jiT*H^JoUN9Z8|>XtUV;XrpL5_87Dc-!P7c>!IyLE!s{ZXgenjZR4fHxnzL0 zDLbhEZPPNKZDvhDOAbKW1psYx?iT>G%|XyMHzV2>0JJUaAgY75r8SZ)={?CvDL~tj z_R?l@fVO2V$v~5(G5VUOuXxq{R zv~3%1N6@yd(B1^J?P%si(6*x<+IBS&ZM)OZb~%E!D;|NiJt?&9ZGg7@PmHz$2->bf z(027MDuTAFAA`0-DYP9%&~~H|v>k0C+KxREZNmuKPGmsaNr1L<0NT#on3smO@d(<^ z?@mO}HhDKyO4~ud$83PMIj6XdqHO^{+ro~bM$oo21KO6S(6+L-iUGz*zS4ZAxuU6q zwsin)7uP}Ch74#Ms)M$TS`$Fq<`mktG#PE%vYdAvEt~*tJ5p%ddEe32S>pg`+u11E zb~TE&-6^zPUI%Sg)Ir;xG_>tap>6*Yq3r;IwyVxmXGGhfdT2Xbi?$<=K-RPm|se`t4DYRXjhPDkUv<(5YZPb|n+BO5UZ5e8>u{Em(=$O_&Hq|kQoZlGQ8 zb^xI5AVAxJj=`G&fVP7O+OA4N+o3eH9Zo~rkw(#W6hYfDfVSheVgPN&Z^!DO?f4U- zZMY8FPSiu&Nr1M&glH%iLECtMw#fi(Q?Jk-Fb8m&3-1eB2yY9rgmuui6hYf^NYO_n zP#@4BXj_M%Z9^K`h5*_&PBNV|KLTyr>!EFDE!uX~qHQ;VwkrVI_8@56n?l?EM$mQ; zLEBX+v>i&J?Jz*wkp^fxnufMx4bXP{iO@D&i?$Q>&~|cbHiEYCG9p0RWPrA*S7|A< z%|Xz%u#+f-wxtN#26HYcw50swAJhP}ZK#4omO5zLod*Mff&+4!#MW zfiJ%`ZQ7p0H1FSB ilug_7fSb1G0yk~XgKyfNeM^Dh{{vICvaVGUjP+cP~1UL5fC>N#SIn34aB9gva)h%Ur9|f zmt0aamo~L*FLS9ZTfnltOti9Y_dT9(e2p{x!K6-dX3p<>?!CWzerN9IH*@A9R0KRT zbE2ao)6&vRoCMw$;{!|8%($6vGMHujoa(j+g%(Q%i!OtCnBAU^3|?i*Q-%`Cx0c}q z5K9FQPcQF^l`2>9sp?zJueyJYfSR>x2U_dY4GIpaXR99?7OomJY}7cSNz-P{TeNJ| zx=q{2sOWa>JH*6x?9{nST-R>#-Fx)x)w@sMgv5URlLibNlsq^kHEl@x&|$+zjLaA{ zI&;j}ta0NfOq`TGdCJtBY14CO%$zlQPG0`pf_d{7{Cny5J@U9-dsaWCH$DB+I(`1< zKQHK0zy7ZO(9djGf5x%>uDh3Oz0{TIGhO`PV~?8QLt1}spIvmzGOcfPt*_KY_mn(r zhBp{5yh-cr?=HO6zPjT*`}6zTw0`dJ&iC!H-R`})RG(O)_1+Ik%jRmHN=t{my>9%~ilhCVIj6i^e}R{)%zCJzFaJWv9O6)B{evRNi`C>qA=a*7`NA z_h|j5*1NQRL+jVIe*4lFo$*PdCyak={1fA!Zr-xhh|B(RMgL7uh{d$PvgEdSXl?Pd zXRvscB~SU@t8)V79k9FuUiQx`?|_#*mjB!2_1*!^jZn-Lu>u}=;)S=lVOF9tRq&xI zzEs1H>iAQG0BTZ;+5}>y4s{74m=Nk=qduX85ssn(4QWJUB4|QWn$esVw4@cSX+v8g zi6WYIw5J0x#L|&Ybfyb&bfp{dbf*VB=|yk)(3b=f=|_Ka!yUjt29eBQQb;9@A*3^u zVGL&kBgtSCqse3pW65G186{ zi%=wC6pOcXl^T*FsnSI9*v|nDaf*YINQs29QqpB8M>)ZHR&ktTtQI7KGcs2SB;OXy z8rHFi4eVu)#Ic^;YMENDRw#=K7Z34~K&hoN)c}>MhD&qFP<|>vwN*`3kV3`EbeX8q zRkE6(vQ&mjQrR+3Jf*5wrM9$?QIac@WWEYiK5DUAq?V|qY9WU?DGAbzvm9ZmS! zON_)y5Am1oHY*$1Vhds)J6Ov(TL_y&t?XnM+t{iKDZI|{<0S?^B1MErF>d(9g`Y$z zAyigk@QWLMb9@nU1_yo#wq1gsI5GHf;a5)l;>52EesROE41RILuP%dM-0&-dAA?^U c`1uEZvDyrNf^1IwgxEG?4RzwD(EI>@1Hzl2ApigX diff --git a/lib/iconv/ccs/binary/cp850.cct b/lib/iconv/ccs/binary/cp850.cct deleted file mode 100644 index 527e0f79c21afa653361301090063f3230273bb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4180 zcmeH~2T)a45Qe|^;9)~VML|VHWv!^7ps3h;2SjVM23^Q+#Sq!8FOp&qve%@xYS^I(DVAK};QuRu* z;TQsX8z-wK+XRczXlGQZ81{+LrbI6l>1?6@@(o}x+S!{N(xgq7K7(UMr%cY7vt)J2 zmfh7YN6uXCx%1@p$d|u>rxYwyxJc1rUd2n4^!6!L+Sjj4S^sk7D+E-mRJlskYSnAh ztW~>C-Fo#KG;Gv3Fetc5NYiGa=H_87T86i39nq$3WV`lJ9XdvL>KxOhYq!|$J$m-) z-KTHA{sRUM8a!lZik~}e*)KbmAG`Nx;rQv3Z%(@Y@Yb`ZH_qRE{NTxi8B?d+nYduy z{0(1z6(6_v>)m^f?>}&G*SIq$PoMkow_mSZy8P3%i>E%ce6W7lMSE44l8L92g4 z>rrh-taCMU*6alLg+5O@`3HOpMqL6@lh|mV5N$Lics6}^ZopOnUXzur0=(vh{kM<* z-z$Lb2n@PKu)`h`4y4f?Mmo}y0Y@_8L?)ccOct`@LN>DFiW@n|NiN*UO&;>%K|bQ6^rAO?=u1EPGk}2%VlYD($_ActiPN0rB|3#8VQpSiIymdkU)uHEH~N7X11`=;KMeyvqRj(QHIMf#U_#G=AdbZ{Ww(<1g`J(LcZ+Qwrj; diff --git a/lib/iconv/ccs/binary/cp852.cct b/lib/iconv/ccs/binary/cp852.cct deleted file mode 100644 index a30201cd410e52f0f15b0f9c6121011b3fdd1962..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4180 zcmeH~XK+?U6o#L3Q)o#@s3D<~rT0z<0TOymAV3H$5PAs-J#-ZnyMVn$ML_{YMMbfJ zXhZ}HNJj)wL<9>6ir`_tj|-FFIAaO?`gZ2r_uY2x&OSS{vj_!&fV7O}O&TUACtIHY zfsTz{7uB}pDM3kKy9seMPbXwMj-TW2Xg-vHe94jz3-P7+7dwDBe*OW01qv1_TqGzs zq-bbZvEn64mMR@yCL*$Ix$+e%R;pYj%2cgZy++Miwd>TaSHD5SMva>^ZPvU+bjz4l zv8~&*jf-#BzC*`Oox61H*1bp1gv4IGllt`Sm)t*Pz`#L+holZ2mNtCE$Wf!mj2$- z-Q;mAAOC#&XPhfn_+jY_X&3Dma)qC$#eRSd1hgHA$#vOL+ZK~gWuX^tM{ST+e|c*4xi4yVT*+|F;7tubh7Btp1`uU)lQC`bK^Ea^oKB z-m&qnjomihv*9UgE{bk&b-k&SucffZ8_-=q}d*ZIj-+VW~f8194 zA`tsT@WY<~0x4i$7=y5`9`$KJLmJVTCN!lP&1pe2Es3EOv9zWQZHXhEcC@Dh9qB}8y3mzw zbf*VB?F%Q7Ui2o3KJ=v@$@C|M0SsgigBe09Lm5UI!x_OyMlqT(jAb0-nLs)d$sm(S zOlAsGnZ|Txki|@9F`GHeWga=4<0ywXEEA;wMO;WC$x*XBL^oW{Gi36zka_5i;1M znMBji43b$g+k~1Drm?AQ${I|JIO1ngOp+O6Mw(QUV8*jl!X#8e*epe*BU{)iktW;( znT2M743l&-pKTmqyTnU7=_IK#RFc>ueI$eP?3Xmwu*%u*>~(UST`c1aYgx^5XSZZZ zvh+9EWc%>D__6rq2yt=@i(gKVB^wEpO<4S5@#Eqbiytq3*-5at_{oJ|R^r7k7C)Eq z8;c){UtIjg;+H)5jm0l{@SCN0@yli`ezEw86c@j-_+`HF;wKk=*@ML|7C&iX@#Erm PF5_pn6o4rEI6gPfVY-|juTXYW1V&g?8qU;#keHw^9JdbTNkgP|(kC2BwrSu0_6A_0F{Reb+``hz+Gd8WoxOvjle3Gf zo4bdnm$#3vpMOALP_PII4GWKmjEatljf+o6OiE5kO-s+n%*xKm&C4$+EGjN3Ei136 ztg5c5t*dWnY-(<4)wQ*Ebar+3^v;~sH+xS1+<61@7Yr_3w0LOA(q+q6tX#Ev&DwSA zH*DN=Fn{xmlz%C|Yvi{^-q#vglQp&+b{f4uGP zN1l7(rB~j1|HF?z-FeGpfByXYMc;q@>jm%XFZtr?%dhzChgB$4=CBQZW;%9zX9(v;6nzS2v6N1SzhR%c2mhXE90pyFeH}n!I@#kj9FNp!Cwszl+|=E`bO)I300&mz zbO$(6I)Iu8Ow@>A3PKArn5zlH5>~K=4Q9X=cCd#79N`3KxWE-|aEAvx;RSE_z!!e- zM*sp5gkT7SAQWK;M+71fg=oYe7IBD20uqsgWTYS!X-G!~GLeOBEWuJN!*Z;^O02?atif8W!+LDMMr>jOHEg6Q>uJI!lFihzg=TD}Id!yP z8!g#RD|XPDowQ*$ZP`OR)-Z+@j9?t?8BYh6Foa2TW-?t^#9$`U2|KY%Y!lnX4xtgj zET&)@-9?|M7pGTlx!dWDVDB&$2vY0_n(Jq?Afan*!qD~BAgqieW7QLBGALh`P zxx!u8h^=BX{a7o88OuESGoJx0U?2+_#1y(RfsU+VRDdhSSjkAH(v4*dV>P2$&Ty78 z6r(~9{Si(-4kP_k^kYB$!azR_^b18ljp!GOej3p)MsNWAs(|*=FBJV87XL~=T?5AO M5A<^sdQ||s0hHu&l>h($ diff --git a/lib/iconv/ccs/binary/cp866.cct b/lib/iconv/ccs/binary/cp866.cct deleted file mode 100644 index 0fb184fc275d87ed814c9eb48327f10adbfa4afb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4692 zcmeHKbx@pF5dZP9K!lLP4(`x9Sls1sceeu$cP9yPm!@f(wrLxw>$RnBRH?hWyL(c1 z@7I^yg(1^_3MoToay#?;e*0v1-}m;->@2J>2Y^l2NTN<>Fc^eh3D`*j)g~4*hlqn7 z5X(@Q`H)4xC`s}Gu{N`5G?gz&HV15Nr|n@X(JXua-y49HWKA}E^Cddw6G+cDETi`8$cLd%YyYVJL6Y}?jHZzJ52P>dtJ>3YBD1rNJCEMwGu-MJs4Ol9m zr2_u@^;s&QY^i`pMFkWcp_OP6twFGXE$l>xIT!OVANE)P2P}jFj&OoAT;K{N+~5us z)bM~Oyx97cDhiYFZ22k+!9lu22XO*xcHd6Z8DR7gcsOeIuGWmHZTWJOg( yq$fM7CkJZ9m{x^xty-hRC>vos%F~Y-PCw0X`gw}!r!lCs<4|jrno$_V1NaAUjd(r) diff --git a/lib/iconv/ccs/binary/iso_8859_1.cct b/lib/iconv/ccs/binary/iso_8859_1.cct deleted file mode 100644 index a1030d6a7638e976aa670821482743df08b47d86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2648 zcmeH|=Qq~@6vjU&ArdK)QpqfZC@LvhipWY-3Jp{$N=ggKYEoJ%L>fj*NtBT?8nm?c z)KX|rzrN?xoBjswIrlv0-sir#>pX}d1<3dW_#GW`_yUEJ!Z`G^zxoHd(K=RU%z?t7x*t+v^XGe$d-oqaeDwIq(`V0L zynOZg&D(di?>~I}^ttZK*ZPLWZ{L6XY-;}XTO^|O16uI;3$3^G4-gbVOppi(+RzqB z+6gKnjSTIPMUD>0(-8#}>4XxU>4GvUbVZeJsL`DssMC{P^hSd|XrhHSI_RQDU;3d> ze+FQHAw~?u7!w9D7*os`!cc}`&TuRk!ALBzVicnp!&t^)&3GnYgDn%W!=6bv;3z1a zGcHWVl_|L4&Qzu`9S>$O6HmPGW)`!V!(4pu#gBQ+X94~!WD$!AAdn?2C5UANvz!%# zu##1*W({izC5&*^5y5&Qi6WX9V%fk(HnEv4Y$c9(wy~WAcCeFO>}C&%>}4PONg|mP z4vsi96P)A}Ih^JUxtt}BbL3ONc`i^$5yg~nky0*knKH_$ zppq+G$iqM94rrzh$rg4>;KUssI20 diff --git a/lib/iconv/ccs/binary/iso_8859_10.cct b/lib/iconv/ccs/binary/iso_8859_10.cct deleted file mode 100644 index c6ef96420a03f1afb73b4e4572fadb0769e47485..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3672 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 T;FnTj#e|;<{8EO7U-X6tDuuF0 diff --git a/lib/iconv/ccs/binary/iso_8859_14.cct b/lib/iconv/ccs/binary/iso_8859_14.cct deleted file mode 100644 index 844576ce1f81116dbfde8147f82dec7ac0ebca2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3672 zcmeH}bx@UA6u^J?0mggST^F!hQBW|!?iNr{zy?%Q(k8|3ZpB^1UEOBO?sm;J*X~+D zU2{M0EI#+W;SWc|8OM2d=KD_EbI+Z7eluqdf^2}nKRC$8#l_jx$I;14*kuz8BJbClw zFHo>h;UYzg6)z#}>>Wy$DqW^*x$+e%R;pa3YPIT)HEKFJ*Q)K}TBmNk`VAVoxi@Ou zq-nF}En2o}-KK53_8mHQ>fEKPho@J!?mfJF_VV%d>)oeszy1RT`UeCK8ayOu=&<3z zA)#U65hF&98a-z0xX7sJnAo`S@e?LanmlFdwCOWu&YC@E?!5U67A{)6Wa+ZyD>N-Z zJvvcKQvY@9-@HHhZ5_63-L`$l&Rx6r?A^Ejz`;X@wIfH59Y1kWJ9YZZ*>mT$3l}e4 zzH;^2^&2;D-M(}8-u(yK!<5uVkDq8ypFMx^^3~fkN?HAdsb$o^|G}tbp8VtQzyAFu z^U{4_rj@JG5`6hp`b6J;m)>XY`SB-nJI(s}SEKj$%|`9de~g-`T=UD?-!^VC^?Ypo z>kVc%pi?c-%<~?G&iXxqEuo)e1uPxVh{e(Yjg|Oce*PU$O@u;?h*nr*Ll&~CDKk5I z4A_!`oa7=mdB{sX@>76<6rwOiC`vJkQv!({_Bc?IQk13)WhqB_Do~M1RHh15sYZ1i zsXo(^=R6P?wh+Z7Ky z@uC~u>47&r>4guz_|cm_^ravD8NfjN2_TR`3}y&H3}qO@2_}S4!U!jV5sYLMqZz|k z#t}&r(Zmo-9OH>+0u!0UWTr5cX-sDZGnvI~<}jCe%x3`$S;S(Nu#{yiXNA;BD-wiW z7^I#=8A+0imIj%^I@XH_DW#pT7Y@=*x|1wDWR&!jG16D2%2*jE{n)}*wy~WZ>|__a z*~4D;v7ZARPJmTLY diff --git a/lib/iconv/ccs/binary/iso_8859_15.cct b/lib/iconv/ccs/binary/iso_8859_15.cct deleted file mode 100644 index 9a7df7e88fae430d8071fb0f21dc8f1b8aadf623..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3672 zcmeH}2T;y&7{@>Vw=ya-$@bb&q!fivMs_Mvk%~kaAtR%*_sA@}AsMfkGBPtlHf5Hw z%HA{l{bhFN&YfQ8+`Z4;?|$Fs`906`yZe6co_i1|0BCvp`MQ~#n_0LSn>k5-XV8#I z$MMT8MRJ*@lp{T({q@fE2%=1;CKK~u>UpZp!^f&pr7(aXQ&ZQ-m%l(kO)c$0g^Ls| zR$QlqZb`jTrOT8pSH40;d8Nu#s#dFBL%(J%1H;;NjOrSj)H5}!-@x3WVWY;DO`0~d zvToj@Wh+aga&E2DCFVEgyefoO)^y@!hpzol; zL;Qvg8$QB+cbAsp2o4;V;qL9$VOO`HMzG7uq zctoTaB}R*D*R5A<*tlu)maQ>jY}|Hn=dO5(fPMQ9Bpf_+_(W5<(DoIG{<%-M72 zFC?d2yma}>)oZC~*V8j@+`M)BPG;8Kd-oqaeDwIq(`V0LynOZg&D(d`?>~H03WvFy z?B4UUzk1Ej-VeO@Gu*c0M?i&s%fPDNX8b_{GHC?v=Iu@il~M<8ssCtv}G1V6D_nUL}7|hlwuS|hZ5*g5*KANtXs z0Sv^KK@4UHehg(8!x@1;BN@eL#t=XtL5yV_Qd<0Nr{lbqr-XE@6_&U1leQn<(^E^~#eTqBh< zu9Hp%H@L|yZgYoBvbf7V?(=|$JmN7=c*--L^MaSW;x%u0%R91p&j&sts^nLS{3zs6 bxC_yE2)~q{03kEgGE`(b8ScF|3Mwc=#SIFGpn?py3~@2td+$9eN*fjx740;Nh_s=p zfJB-_WZKZQNPB$#`uBr+^(DV0=enNvtml0{ocq0g*FmTb*i21Mi1hGq_l)co7N+xH zurl-sz3X-5KC{txbQ@c)yk?XD<)W-hKLddH3t@uqQy&=E?d50<*LVdJLFTefc7zGLUE-Fx=#+kfDo=8~n< zp~EIVN0iFeE=QkSQ*N@O$5ftD`Kmw_s^ce2m6NB`=`%_dt8=BQOr5`=E-F>7D%2%) z`HHE3^_seVL#ax2^Oh<7@Vh5o{`dz|^vRE(|MJDJrbwwzfBNj_yV1WqKl)y&r(aX* zsaL=JO{uSbH(&eu52Zf%R;japKJ&U#&%O2Ro8SEN{M+}wQS?{I-{$y*cV2q`#rN(t zs{Er(;Ee}ge^RMe)VmK>AI`M^-jTqEJ5`m(V**tQSfzmfgFpR0E1=#8MX!h!SYm}W z)%2EG0~=~$iyihj;D{5os7)Q}QjhvL7rN4o?)1Q&p7g>4PkPgbzIfqHKlH!(R5Wp935e zOXIBgkR@Ic&LIv zREP_g#Er{b5eIP+e+l3!*CdGR+>o)7K&2#clUovF6jkAWMEqFFS;I%N(D+5;$BbW& zpz%vKR#Ia4N)8&oslY`p;U*eCX8fY@6C@fx8oyMMBpN?4Qe@l)b>h28 diff --git a/lib/iconv/ccs/binary/iso_8859_3.cct b/lib/iconv/ccs/binary/iso_8859_3.cct deleted file mode 100644 index c6b6a8fa5583c0325e23c601386b52860d506cb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3672 zcmeH}cTAR76o;Sl0tz3vw=$LC76cUBd+&j$z~@#JM8ys6z4xB2M(r@Aj%u~0YG~aW zN0m>lE4WwOb+oq^eMuxH4N3c#{ciH++;e^>_mA_uIr$+t1D4pt1Z!AWXt*^vGE(Oq zz{${G#D}OWS&l{bXc;#%W)U%LhT&j18p?kDrxQR72S=wIIh|cBu5P(<=gFHde}RI9 z3KuC_tau4`4^J;|pOU3~{rm$;mnmDWe1(dY0)r|ChlEzC8WvuydX1X3YS*b-uYQAu zjT$#;+N^ntmaSU1Y1^)ShmH}QB0G2K8WkO5?bf|V&tARz^z9ehe?VOPz=T1Aha?Ui zHhjd$QKOTR$BZ2}e!|2_lc!9bHhsp-S+nQNoi~5M!bOXhEM2yI#mZHy*Q{N)Ua1Wm zmD;=|gU?o_Qq;EXJ9esFyEF2AO6@;zP^Bt$= z0s990fYiPLKd)aqyBknDLeUn{0Y{w3K~C*5U9jMa8@b3$9`cfp{1l)dg(yrBic*Z? zl)xPiJn_OCA4*aRU;OYVfYOwqEafOq1u9aBK!T`DFd>9eg{p)RPBp4igPPQ$Hg%{= zJ?hhdhBTrvO=wCpn$v=ow4ya_XiGcVYp2_h2s#l-XS&dpD58nMN;kUGgP!!FH+|?! zKVs?60OE*eAPEd&FhfXWD8m@e2u3oB(Ik<~7{)S=@l0SMlbFmDrZSD`%wQ(7n9UsK zGLQKzU?GcG%o3KejODCgC97D?8rHIo_2O@&u>oyU#Fx!%kwA$NPYFT$6-gpR0@%iO zcCb_Y*u`!M603MgDB8bBGW$8eL8V9)i#T(L!yMr#$2iUjPI5{sr#Zt}&WShYxghS? zxX2|gOPoY;m1|t*hVDuiS8?Gsceu+v?(=|$JmRrdp74}sJQp8c@=82-%^TkGPU0on zu-WndOZ@mtnxXNdl&@&~nD}L@t|Unc0b=6EPc(i^{IXB$$?_h*zNMn^%P07?V&cbJ lG=AL0#E-@=CVt(Oj>a#a;MaM+=>ImE#L$kOce#Uf_v}1M@4Caw4$P&lZdqC zLM(C?k+xi^_4x2ZIGX;I|0T~k&$-|Gz0dp4{k-R%i%%*ZBaj zF!T*Aj@o(TSn4;rjManqND(8~Fw6{dLzSIpv;&A?W^Pfge1(dZm8`5QSFy3Rv#(ms z!O_XNdX1X3YS*b-&!v8YhK(A#y19EaY3k|Kta*!;-afv5{sFB5TeoT3u6>7&ojM0~ z>DsM(aF3oLy?XcQ+pqtCfuUjHg9Z;7I&64EWYma}qee%^#Ky%Zj2SyFar}g&5`HGdRRKIRx^4T8ox65xE@?{b z*;~XXUG3YiLx#SYMS0OVaPZLKBS)3WRypd}ag%l8+3K^Ol=|woSKe3Zi(fwfx!6)*Bd=#y{$C^24mt34 zStg#U1MfcJ>o=d^J!a_vXc~c!70QffqyuFWuxtYU4}SIkJOTAaD0)RS!yF6BQC@GE z6|tleR#;P+D%fC)9rjeE8V)$(gfrEtK}~8=n>y5`9xl|U0S#$HV_b2=9S@q&6i>Wp zMsr%w5^sF)#Sec1Xhk5cX+vAu(Vh-;q!XP9q6=N=Mt6egK~F;HMQ{4hmwxouo9;kD z2_u|A3}y&J8OCrTh$M;;jARs}i6(|v;)o}KF^pv#iHv6gNhC9oNla!6Q<=teW-yZ! zQklhU<}jCe%x3`$S;S(Nu#{yiX9X)+#cI~DmUXOW0~^`IX11`EZER-;JK4olLRBT4F6N&$An+f(D+5;=K+36Cq*=VEF{ke zlMFO|$ucte7k+sNKN`Pe<0Lsah{jJTeksLIl9=$L@k>4;58+4Smjaxn5J%DYDa9|P O_(>KMel&i`HSPlj)x9?W diff --git a/lib/iconv/ccs/binary/iso_8859_5.cct b/lib/iconv/ccs/binary/iso_8859_5.cct deleted file mode 100644 index 8901b5f0942f34e7c62ea066c01706bae1d4e697..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3672 zcmeH}bx;>r5XV3K_|gc1bV!4w(j_UK0@BFORxDKP?(S~A^or~5?(XjH?mO-`;{D;= z_=nu+IdkmHdprAf_wBy@zS&vKum)_~I@*mXDT%4Z#D)fwJPa%hrd8L?O(!Rjt;xou z#{L99Nr{XGL)URKKf$}D)7jNy&(n$0YkOuYfSJKu7M51lHnw*5eH`Ah<}F*dZQrqT*X})g_w7G$@X+BSN4uZ>$8pwq25NBL z`4?Px(Z$Cux%9Hjujsn+s;jTL_PXnDxbdc&Z@Klh+wZvZuDkEK_rCidc<`ZzA9?h# z$Deresi&WL_POU@c=4r|UwQSl*WY;at+(HK_r3Q&`0%5TKl${t&%gNctFCXp{qFl8 ze*Ed@Uw-}V_pU$BK*DF^%CFBxkaHr2QGa(pgLzLAGN`AXy?+0F1$sMRZwLJ6FZ};> zK+{BMW*QOA5f)ftWtuW=u*D90`rv>geR0B>ez@R@8}4}Ei5K4Z;7fn}@F##kf(Ryr zP{J5MI1xk=MKm!CWDv2$5l;e%B#}%Csicw4U^2)gi)?bpWe9oXQ$Qg_6jMSeWt3Av zB}1vAni|ujTT31FG|)&B&9pF_R*Z~bB%>J37{)S=@l2qNiA-WLQv5W$tqT}hPA9?Jsa4_CN{H$t!!gEJJ`uCcC&}Q>|;L% zILILmbA+QZlR@T^EMzGwS<6PYvXecXa*(6?%1O@ZCl|TOP44oLr@Z7XANi`k{N%3y z1u96v3Q?%SG(h2sP^6+1tr!i|AjK+9@k&sll9a3zr7BJ78mtUuDofeQQLct4Px&fP zp^8+j5|ye<<*HC+fSamRtr`tet?E>-1~sZl&1&J8T4n5o|6jt-Dd1Np=K%b23pfS* JI)({;{RQh1exLvV diff --git a/lib/iconv/ccs/binary/iso_8859_6.cct b/lib/iconv/ccs/binary/iso_8859_6.cct deleted file mode 100644 index 07dcd9c8e4b7a2e6c6cbd21ce583a220fc427c8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3160 zcmeH}Ra2E=5XXNUV5KZ91QF@(I$+V=3IYb8f`XJH7^v8wV1f}4w=nKa&W*lW_-e>o}yU)JQ?9S{idKdvF#Z?t~YIR^pUQl+nf~SIkO8K&MT+#F* zBgIECW75HU8PRA|Doq#Z_mI1k{lY(;0rXV*28J@g$k@cxY~Y~5Lx!3U8$M#>D2vgS zR%5Kk+KjWcvv+WGa&~cbbNBG{^7ird^A89N3RZ`Nj-N1b(&Vu4h{&kunAo`Zgv6xe zl+?8Jj44wyv!-R|q{!R$G63ybE>FD_Y7T2@|Bxo}a{;_8|uOP4LLU9oai z-Rd=K*R9{MvA$u`=EkNiTeofBv9q~l*X})g_w7H>+SY#XkdpnwofSCRDf}6Jq<7e3 z3Ouekaq`sZGiT48zi{!=&X@fu6D==wpB(!T@E02OM$285dk}!yOMi@xmJ)eDTAd00Idj z7ℜGM))cWD=7JBb*2#i6WX9Vu>T31QJOinG{k-V?7(# zNIeZ~Vl$02v4yQ{V>>(8Ni!|%VmEu(%RcsVfL7XQ=OEehQAB zXv9|R#9kc4QJlnCT*Ot}#9chZQ@q4me8gA$#9sm=P=X{_)Dj}0y4%`Q!X#WGBvPUz zT4E$t;v`-YBvFziSyCib(j;9ny8Zh~{pJ6~@+(`kmJWAt9nxsbV-18sICMzd?OT9-gWA)5Fw}?^(gVI9^o=?4(9p*)jeAz#l_7_J5Ff)j`MTwH7N?Vq(DqF66 zg^HCbSFx^I&BnHRjheM;*D=^ZPvU+%T}%1v~AbEgIz~^2ggpGyL9c= zy+_Ypz5Dd-*MGpkL4$`39X5Q#$Wf!mjCC64JbuE&Nt36zOr17;#>`o>=gf7TH-Evx zMQ)3iEOlSDe8tLDtJkbuw|>LMO`ErD_3-rC=I!IV-EW6~KwwaCNN8AiL}XNSOl(|y zLZVVhN+qYHrm6IdJxXO}W#{NRe%rUCr_O|bN1Z% z3l}e4zH;^2^&2)=GCQPK?8u@l0SMlbFmDT$suN^KwBh$|bohSLCW((D>WE~Ry9A%5)_;MdmL_zXV<_$8MD{E~;CR1rty=Bsrd4Y+^7kMR z3i%2C>g7lovyd@z8cUrolSGmf3Q1?C-`~DP^zmi}Rq3;`5%V`XfQiD?OjI(jT*acQ zWi>17>NYiM+SaPAtW&pMeY*w??NyB$H*sj{*v!efd5e~3V5)8;Ly zTeqd9OBtElcVuPn%#n8Q*_*p>|AD-N`2~j#7ZyoJi%X7`*P>nJC3Nv4Kgs{I>1)?- z+`M)B&fR`*cke&wai))-bfBwxfd3Q7j|r$SHRMPNGefG3 zH5H`;#tB$anD{gMFiyZ<>!Yj)O=O8^iW!1Rn9C}&3Kmqwl4@9CO?7OjK}~F_MQxPS zp)U2Pj~xwYh&?JA(U>MU&=g0S;e<2IX+cX`(V8~6(3WQ6^rAO?=u1EPGXNia@xz~i1P~}I-5`PqLBn8%5K0(B8HSeOj3Ar{A{ogj zMl*&e#xjoaOkg6>Oky%qh+!(zn9dAlGK<;FVJ@-EBaV0yNMt@qEMOsvSj-ZZvW(@d zU?r7_#d2vBp6qm$haYbAe*Ti*k zL);X%#BFg$+!go4eevMS`YJ1xwY+yD{l7=Qe2X%ee!2GdOsO)6e(~k6GW{w^`V49> BPpAL@ diff --git a/lib/iconv/ccs/binary/iso_8859_9.cct b/lib/iconv/ccs/binary/iso_8859_9.cct deleted file mode 100644 index a5e095ca5b2e24fc11a19d953652f3d7f123376c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3160 zcmeH}XH?E{6vsdRrzp`tvKoXaQqdNb6{1KI(vw|ALm?|$C{#veRtTl+J<3*gM#>&h z8QIy7|2e$TIn_%Yy661P@7(*nFYdXYbME;fpa>}W1o}xWEzPW?R_^X%?h5h}@wxr_ z#mXO{DE5dlO27XFUs}dk@E+ zy_}qT_i^d#+Rv@O`+$LiJO+D8y@m`OHhjd$QQkhI$BZ54>*pUZJ}_v)#7V)Er%atT zJ!HnrS+nQNoi{&p!NNsh;ft3njfjj|wtU6P=$P15tJkbuw>~aDVZ+8viJP}@2{T$#Rhd9g;j&h7N(mBovPI8LVoZ&3z$RLyRT;L*?xGZRMl`O7tog3UF zn_J|N%Wdum#)2pJdB8&+@t7y%@swxeQ$QildBICwQ6%W_hPS-qJs<`-LW~55;3T-ayF0X{-qhXQ-QC^Y+we^x zKbQ_bNGWutxtY87_V)Jn_THPF#SCk}wzYj~OKV$;(P*rzGs#21!eHvP$I-NMQnNMf zF{!aXfhQ?Zq`}bnS2I6>$EDL5)oshu@zS&R-+2Md4Cb=1w6eCbwX^T#;OOM+;_Bw^ z;n~~E+sD_>zfVA5P;f}!(6I1`$f)R;*tmFOLSja^)??K5W1nmuRk zy!i_jE?T@~>9XZ3R<2sTX6?H58#Zp*yk+aQ?K^hv+P!D*zWoOd9y)x)6!slmp?7pm z&LCcQ&9&FxaN|uk-*W41w|Cxo*E{e2^wIkt{P^o9pMLiF7hit$^|#-B|HFqLzxU^F ze{}xx^Y3qebI-jmJ#_yAFTVQ7qmMoQ#FI}w{p@qkzwqG0_r3Yr8*jbx^6Pg$(|N&p z=O4ZBqKhxN^s>vZ=)Cf(GkDXpc+}Nr(bu_k6{)TaXfW^YO$_R;Wslvte}SG1*pmVO z{tN#<8PHS_nwd&ObA$z!SedF!8*H(|o?bZMh!f7Z;EEgWc;HEIyzs^cU;OZ=4*>)c zL@*)rC6qA2i6D|FqKP4vIN~vqKq5)>BbgLZNh6&MGRY#F9CFDcp8^UgqCW#Dri4<; zC}$uQR5FOcR8eiJbZe+(D0S4+KqE~IqnQ?lGlG$fVl-nI%Q(i<$^<4diOEc1D$|%w z8|}fHtY9UpSj`&NvX1p^U?ZE@%oet?jqU7UC%f3q z9`>@2{T$#Rhd9g;RjFEoHAFS4)lk)`UJYtg6CG++OQ44gGMAYo3t7ra*0PbU>}1bT zIml5JikDISm85FeMG(e?_m6Mzm zDmS?+M6T+q-tv;SeB>)X`KyoO6rex_DOetIQM97usc^+8LSc&Rq5mJ!&nf6v2PXRE O5qJvvb(H@A{W=B?ync%S diff --git a/lib/iconv/ccs/binary/jis_x0201_1976.cct b/lib/iconv/ccs/binary/jis_x0201_1976.cct deleted file mode 100644 index 29fbcb3e911f71458c02902e9bb37be08bea01b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2652 zcmeH`$4WzC5QTrQAX)h=i3`Oy2@(i)6I(Qv*n2Or_kz9m-h1!8>!W=Bpqp$ZS;)Nu z!@wMvnR5;!yo62&;cKG$;Z^$!dV4UdeDjZaKYP0!5E%`Yr2Ew8Mut#52@ZSU;v?H?Q-9iN<@onKsD zUEkc^-9J1&J-@uZy?=audHgyN7%*A%qe}I1xk=g#|0o#1Kmy@z_Wp z5j#mFlR_#E(nu$ROtQ!(hg|Z=r+`9=D5iu`$|$FTN~);FNe#8sQBMPnG|@~8t+dfj T2c2}$?H&r+l)o$RzwQ494AP%+ diff --git a/lib/iconv/ccs/binary/jis_x0208_1990.cct b/lib/iconv/ccs/binary/jis_x0208_1990.cct deleted file mode 100644 index 11d3bb4fe5f40d6e89853bd6467422d5c1dcb997..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255648 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

!O4HQS<&x6wohC#xIC?7^X zOtE;B@Da+#isMvv`{0$!b@=84mz|_?eOq0eDxRO4Jweu|i&2VG2oGIGSGkS2H+SoEX8PrIUCN7`m{T4wv&-YLpHrC!bk|@%u=_a4E z62(%SFP@^+OWI+vHe7apPLg&MEfx*0!(Ln{E)vy7`DI$LTU-Wr5^X8*@h!{z68`@x zy5|<%#TA)c)q^6D7zXKBwFCpdvTQ%n`pD3e4vuRANlb27LqktbTAIO{FSxNUCZ$JV;)wghw|nSZ@h@Q+Rr_xF?=8wu-aUb&}bD zwi+|Cj{6VNlSW(Uc5Cl&iU&TBuIr#g12#{ZoL;vMX7+kX6cONH^rNV{s(lFoZ^-BqpC;BL9t@6G|)pG>cOPiq`b!4 zxKSJ_4Zorko(*xw>zExul%u6t@wAO+8{MF;L@}{zS4;beDOkhjKyBk>b&_(=oYgW> z8Us8+zO_R4VWyRvX~!<{*8}oA4e2wP>5{7yr#UjWs-wGQR4ws?n*9Yu&zxqw^Q042 zy0jzR4AJzQ!%jIJrnVVnvZj)mu*6JAv*;X}TkE-B#Ac=?o@cN-(KzUy=1FT4-gurC z(PkUy_R>1)u~{sD3l7G&k~E@%Y;@1{(!wu>FU(j6=^bDmER>dHQDdCqywbH;a+V^f zVTq#Ka%qXzb8h<_YLREVOKnlx3YYej!W!SKx8yXilb0)QAJN0)yM8Vcu&z!SHDf}T z*OZ+LzsB2r{em#K$xuTw?=XR-t>1mUd~xW8j?N4p$JH^VVJNE%8fgC^|OL z&&g7{lqjWo_j4Ko)Ejk5~u7<7fS`e_pJMHSDcW*3d`0_#8Hq$9rT@{Ib5qlTqmqv{9NzM}V@Tr<0a7_~{8~EY<8% zDdqd19+ysucYMjbWKsib6VM-6K7{S$jA~7ZHt3emN?FG-C`Y*VdNlRCjoo^NfR6~; zIG_n!qibVC8(td}JcWR|x>C97j_@aO9V9fkW=V1e`S#KvW`N10UNfv|flseZBA>$L zlI>I_J97?Jp7Pn#M>BRFk}UQ2%wNn_tBE+Ppj*~Lh&L%{8`sQ4o#R@PZf|ZS-U1&> zr*m;_fhabvGb7%LA%+mmx8~uzb4yD-lw}#V!eRSbB(%371)##()ClOU-VS{!b#8F7bOz_y9f5i&u(Bhm8}X_s?OFb8%xyoXZfuG^Ln zKlg>^GPP8yhvkRFIYNGn>jYOBtIg@!Dn+Ob%=HmmiZa^ZT{fJNG<>vN!M&U5PN(^L zTAEWrDr9yUDyDVajJppQOG`GpXTN7&GHTV7S-|sDIp<4&H&nJ;P!rb(&Z~v|FwsWl z=Jm@qRe6+4APSWIXyHUzQ{I$C*m1$1A;?X8yvB-IJx%x~?nNzRFgpo8U7ReB0UDZK zqZv8W?OmB9YjZd0Wb|1MYh|>+?6lobZqnE|iEb~OWqfAGT0Syo@F9Iid8zC%MA4hk zg*lR0L~bn4V~$(Ob80vFShr?8rIAc(rp{+c1GV^lE%LS|@s^RF;XW41uCfR4;ewCo zZp!gK+wGxvDU`Nyh{nT%d(DzWf^ztyEr?Mc71mgdD$9&* zjrf&vmC91N%;g!MrDVAX%0_ve=ttCsQJMcpQZ;bv<;`*nv!JwA<~TOYcY%X^&tb1P zIA;N6QT9f94DEMT7CEkkPCU4VgQp^A;>Lc@FWg6<0*0b;gwnJ6IKkq zO4z(2q*g1#d|wg3KF&{cFQRSC8>j>c3klh95$$4-vS4(gJ<s&vx~6LIcmt)e(WU$=`;69~cIS zI?8#Pg+8~E@2lWR_DRsy)iKV+ZwY`V1Qwtj24+7f8bPfvAMgy(&S;9L+UhjtE_h~z z9BZYXuvye-AjpK=LXf#?tXh`l0M8SS8W0Hc@Ebq+EzeWtd@vAWptr8%GE)OWT`z>saA<2;WZiDTUUqe z>jig1KuoI2cf?ERow|%OJguSK7L(bmHmklR?9wcVaTu3DnyHMFnN4E`HlVk`<36LZ zq~!5L!p`%psZMpnmmv>WK;381jcHDhA62)Iw{W#_mCW^-eLl(o=ed3WBfV4IhJ=(3 ztGm?$fiarjyI+lKPN$EFdMbF~3wtMJZLBt4ldO!2du6zmQ{fXtALaN6N>!~Nc^?h{ zEunSC_CX=bGzSDW%%Qd|BI>nG4S^csvyjPe^>`1X{9Td}R!q1Oyw4{zdS2VP_5>(1 zxaMlJoTn2qd(9G~Q+UprMZ1J(#R%w@pp+R4(n-F3dw8e~$8yUOt;ULISzI!^2$ zGVl_+&`43c!&rY7IW0-+Nnp_}WV+f-JipqyQktlK*yRCcA<8nR2T?jW%=8v&M)DXJ zr#Wjw9&ar##@H&8?baieK5$lgxSLC1;5k7%<8O$HMDcTaq}G(}a3ot<;za~~r01E1 z$sBP1-V|@0uw!?v)fCkFDQa&9RuZ+2EmTX@@_@(qSd4%h2VSTh@EI)Cid6vA7_Rda z5%0Vvd4wCIn93yLw2N6H8&znvdo<5&Bn5q6*4l&lGUyw%ZSvy^;0DR%aA!?|qAR7E z9vbU})oWv7*VH0Pt+q+!c}Zy*VQr^W_tkm0LFA=ebBUMQP1vR)DFF!OV-EPbzP6HPc}--l9qFKF%M?e z^+MJlASPvAH}>F4r-|b$%M(2uCf!ZjXwTfbeSL?#&&K8Yc0y0kuF_W<4*cMlpl3M9Zx&;{zE*!SB|0YOjM?9%36&+nl$>%hn~b z6+C?yRu8~A6kNpyYP29)fO00Ncp_TgC9Ds8#Btou32-H0c-J74JOVt8__Qyhp&w|} z2D$usYZ+t`>rgLUjt!8e>H+-;P8s5*x<{h2G7Wr$Xrr7niBhvM#j#;tV)X(vCop;4 z5>>bQ(?!vtsq{$rgB78@7!k?^Wj| z5)MIIAZQW!lAzVG*K+||#-)};%dlZE+r3-&Mu2k+XuAiJLB!$MyqBy*3@aN2F`wsL zOv^_c25ngIL_$~)c}o@-LL2^#ELND+ji``D#HGDw7Hd^nP~#lZ*<*l`f*#;d3S~x6 zS*NLeW|Q(#OF6Sy}D8*XnkYOdS;RMHBcHvRk|6a1-MB#o^a6Pqn1P|cnNzOU zw~74@E|&VKR3cXqGzIS&AZU zkE1uNG|yV5LB67gLAT;w>=Zj@z>RU;I;1Vu5YyXi=p&m^KtawcT3z%^G6}6rkKeW_ zHaMsswX|bSK_@|aULK!p)}S^CO3K38>*h1u%6E$C&FZEOniWWtHa9odQ08%+EaZ^0 zltHOjX;Xg`0B1S9yt#w9VB_9>gebS@Nlq0Jl~mN)buNdM5l{uR2B#EJ);F8T$MhSU zQ9O}H=*gkA8K?eYwRXVWCHd`5ooux5j6_r>gO-Y2{SHz0WIV<{B77hD;pRaP?-I5BeSDG%l^+>I9S| zU+vbLnV%6HiMDB&@XubLb*1%ni^~9>O~yA8Y~~bGeGZV*GhesJWUL&v3)=W}6?1Ui zRW!!L`>9n|PUBl%tcSD_>q6aCKXjD5*zMGp>l2vo?s{n{M^C|9%X5oPSX%PbHQxHr zs(oRR=JuA!1L_pXr0YYpBRIg_`g>;6YTaV$z+oTI$xZYP^f!+p}veC>8E_Uzv zVi~9h>v4l08s{lg4+D?Zm8d&XuVB531CP}cB$cXXP-Y1}*ZIE*iXuXvS*RgyYM)TXcwz;3l(0L zAF$Y{ZxXH6!`a~2dc6*4ANSHm8N;1#3AqF!T(jQd_%L5FW^r%BJ^RZJN$d)}Zrir& zJN1N!=!4FK2PC?Zd-eVL;icT+Mpp)F5|=owA73iVB#*#3rQTOGRE@sI8E_@H(JyR` za%ezM;G@w!3}9VjmN<-} z7m&m^Ucj+8Yb;w#L~YEN8}kqFB|YpNdN|g`9B>=1sM+37>!!tOHX&QJBwYvBY*Qqh zUtH+1gt&46@79QTN}lR$EH;v}%R(xI`QqkS+UNol6g>P+)bKURZV#udpbRut8&mK< zzf1~yF~X8daq&c=MX$3I7IJ+nQNR(x6Ajx6@!87res?unetBrogsKqMY4b@04;tnsI z(V8(#>){CE&4DLox!B??c|d{oOHubZcb(VPrEC(u(a6(2bI)0C?4!nM#Q#Pk$VZ?> zGIsA-W2@02*hMogZ{J5;7=j9mj|ZEKo^ozlSeZay9N=CD znzJhw^hnHI&?uUHO=YvcX>uwZCG`;GhnvbBCOrq+Bfz((ylDR+ z#mr+=!zAV9x$)+xZ3NP5*zbCLQ=oR1r<(Nw2l1BGAhW*;>748dGuZTViveDux0@k?k02KjRK)sbOkn=ykg;Hn15Y&j zeT#EVuh*As7R8vQz)@1KW}64o9`r~Wlnkys&B%!7M94~aCeQQD0wlXBM{r3->2kVd z&gmczs*=oFv+{s!@c|0cU2UPCw2K=AH=3I$+k(C&Af~@g*j{r7 z@d3}MoHve9sRPc-#(?pql;X3gi=UUvn6GQpV@`~wndb00w+oFUV(h?rv$>7jfn9-q zVYk`gb$6v6EXSaCF&#qd;BVDD*V-r9Nwo8COUJ?=kD57JE5g)AOwZ}+@R@|#5#vu_ zHFHU?j6E!&@vvW~Hci1@^0V({=Wq2+K4ad=qJx|XDJ9Bb!j4^Q3Wdn4c#F7+2l|L{We zR72ikJftyo(`@UlPr^(>YoayTazJjprwvSM>H!L(m7o~~Bv~}H#zjA9TGOo=!Pj%h zN*-)#=?K>fzNG(m%Pn174`|znGT)lxoZ|e5)7&Gq*n>&+IWD0swCtcBAgVfhxJ!h& zdT8=iN3_eWBfb}x=;4-|q*su8aCtB2`ee9YzyUx(fkj%ORQ%1V%Db>(95kgCF^ul67w96+ie?6H;~w+>r5tWZZSdr#Ev-qoV} zw54dDwffqOqL_+XPUaF?C1L1cJpHIR+=ssJZ!cinSA3(+lh%L_5twYIF6`?MXSCoA zVcjU&6;-TP?Xl^WrCVckdI%PW+k@>jNMwv9zIG^SY!lFAX|z3ob!>#!%_tM?vGzFd zNnGl7-8a?N0CHJPd?$HosnU~&aiyWr&!x~Z9r)VzwrQq44G1mbtFo~@PQP_UgLwC2 z(G!pHaj(8Dv3D6odrHuS3>)6YG^hP}g*+qlq&8Jjm$ zv4>1sB<*dI?X>MHHEnP?&Hd}d;)8FbL|-!5J(AoNwk3U!XH57cqxh-D{q_#Y1zZ~| z2NyK(dyk+Tw>Rvm>GbrGpsZ^(G;24gCoJT@c|Pl;8d;v^(c*;bowm=~iY+`fZS^7l zKautk$NEKGDnJ7Q8x+vRmJDwVfj9Ds{EPBC%iap34O>{Q5$|mnHVP|a>O7W|WpKJICg?tXnpM9mwsp*S%=z{}jG$Uf5dPDqQm9 z#9H8_R?hRC!|Kw~)-t~bL>tFu&uqX7Ab6)VOTG5^R1ePnDg_fAPe>6G0#mgwaw*YQd<1B~ zb-ZLsJ7b(b-kAWT%S>|o z+|t3CR>UmDw8l8qQFl~4{&c0LJKBzh>63Pm?;&S^9ShyA>?@TjvGbUHpbc^z!=>DL zikZgFs9R5bQ^$NkZmu(bfnovP^o%2F9vLV3E|=A06><&%F}h8LEfBn=w+q@LAZKR@ zxd+#Xct5j7vyAB@4s=|d<&K-{O82$9!_g|r87IlB-VQ9*td2HopJG| zib+VREuJ5ewBna#dKDRrC#oK-tKTha;I6-_L|5|vi=_$AI2*XTS*-c3&L+RlI+atN z12x&aVU67W zMYu#!?4)xHjU&?CM}CUyjIeWg)pq~(ImVy?!pEl++kJp`3T-&Zpq-C3|8!wVebl zEo#XSlodF$mlIeXP+_}>yo76QyS!Zyyz`o?+cg=rU%VyAVE?xv5qEcckIDn&`!e|>4j*qH%Balp ztECy)*fP139^KRJFtzclhx%&v{%_@tC=f*zZN;`?7m!=wQS2$wihjTW_c)A8){g1u&`(OL>um6qL-FaQ$^?&(IZ~P|3LmI`q6z_S+(l^*Q_K-vMHLBM>Kh(fQ7Kibhr;TwQNQt_nA)a(&qEFMx2ym9p`TEHMg7%>zuxz-?=261lTYt6KRoU8 z_*Ng*`y#&F!*jl;d>?&y+4mE^UwU}Q_i5kfAAWN6>gwHxUs_#R%|85HtKYl&eGh;C z>L*u!`r&`Q`WvgCfA|xAg@63vpYt#IT@U}7zvDl6_&5FU_kY{Nzw7@2|G#%)H*Fb2X8|8<}iXkNJ+*bN+9d2`^Iz_(uc`oMPw{>_!~z)uH0b;S|* z`M@t+aRxpc`28!Mz#j$v%`Lpnq@ZGCd!^7c;tM|kDu>I;=!p^Y!YJYe; ze0p^_{9O2(uWG|T68`zC=J4mk|M99jvJi1zU5&gW^4!&6=Av(i zzWM5Uv=*&jZAO10`cqf8qrVaT?A86)Ky2vhNz4}uTzw?=f!II0`b6wkW50g&>G)(^ zclDj|SUh?4z44F7fB5SAas~<|dG4b_RKbja!Xs&)7 z2hY2%{xpt^PhS1mL^;vC`su`Di6^iAPU4pnpT7DB$sb96^6D3GcxmP8pQoNmy?E^( zrQVnNo@+N!A4`4W+Bc>?nfm!_s?;y1K7DOG_1V;)Uelz$n!bO{k=Cbe*Ai)WI&!U) z{$TpU*IMa+o&K?FJLx}8|H-w}%o{RackR*4=Q4kM?di;a&V1?G3)#11zv0^ZvNKuz zwQtKhvP;*#69)^eUHk5AC;Q~J4`$z&{g!J#oc+P<$FKcZ_9wGHb?uYcpUeK+Yd@3y z?d<2S{ap4hbFaJhOS!ALH(&e1oGLeb?Tfkf-1fEqmU|@kt=C_d`(W;0U4L8d*K@yp zeIS1;|EB8``M2apug~UfdB=5kK9_G_U&%j{f9LgF{(JKO^7>l-2l5}kzMlV?{Lfx* z=YKc3+965`a23s1>g1O3h_en`g;n^!v6J_3ZE+c!u1an zzF7R4>mMv$DZc6Y4;J5AR9ye*;zUt<{ofZYMceiNx42aFUH|psN%6_+zf*j7@gHCR zLh%#DAHDup#h)qu{`D^x|5NcxH@>#`)zWKjC`%8QuHG0b&6O-SMoZq3|HeeATH3rZ zUHY!lhi~ZDesApyH=N~>^4JYuSzET;2$Un`#EndOr+jduSbj(OnH$ye_m)3;W25|& zVRKNDdC#qjpecO#6tqxQtZhW$;tr~CqJA67KbmLd6 z>1z4LZ&n-C{TqK!{f_E)-}tlY$Eu&W@x|&dRzH2?E7kv8{i~a=seZNgx|fDx?SnTJwU5+((v5OyOS@AHP{%|F`SEeDiGM+QyBWPi@@Wc*D)7 zH@Lo@7~aD7;nCJ<0m(M>gKm?e#55n=6B*>Zsu?Pv(4P*#?23JKC}7G zn;+l&zRjPw`JmRTG%*`*< zf4~0un}1dRi~4`P`Q^rNWAx_B4NXIT>otx2#^J52jh|`!?5!J(KW_Z_t=o++HNJA| zP0iOguiyH*=3ANrxB8mH&B+@S*xOKespSJ$|)>+5cvEF*D5C&JbvrN&L=ycy7j)!?{)s**0*)O)cGH` zzH|HQw%>N^pKT9sPu}{_j%H`()<<^|J8QRoaOcl={^r(C?!I>S^|${0?v34Bw|;3? zy*qvDS9fQ3&9{Di*R>nC^&fT`-!1MoZvDyb_U^&0zutZO?z?aO_ucQ`{ju9u zcK>qsi?`pj_qM(M+h4cm+*`h_*sJc^*&ZWbfbX{m^aG-e>o|aNDx~@cxb4 z-u-XfAGjUd|HS@}-%jm+X8%9jF7E%?{$JcKAE*unZ`Tf!UB< z{+;8+Et6PAG`C7C;#E(5ALW=Uvv7r=C;)9sgRn9id$l;w& zKJxe@FWmXrN5AILhwgm((KkN&mOGz)H2Y}r&hI_idi0SypMUhpN1wm**N=Ya(f{Yp z%a8unqrY?a`eUzu?AqPCkNF>q-2K|e4jwzY`wfph^4Jr1zv;0bee9EWRgeAVW1qP@ z`q-Brf6d*A$6x>W+wRUjKK%H^-QeTXj~njBACEttyqkNx`S`)z;^W`@_{Z)x9{-ic zKYe%a@y|Z~g}X{-4~yjdctt`o1gf{Pki^?Z-3%1 zp7`S34?KDO$y;~7=gGp8rMv&~$@M38C>zxY(`sg1k8`qcM4^?i4L?Wr$4^_9E7`}Sww{`}oPeEWyq{=Ij<@b>@o_P@CM zC+~RZ9oO#u`O`O_zI*q-KCO6KdG~Lg&OBYZ`<16ppMLz_Yo7k`r+?<&m8bv9(_g%I z`{}=V`m6WuJ(GPVfA1~Ny#1Ny?tT3;FFo^Z_xhgso@YLMZ}8bSJ^SW+6VDo-HQ$?h z*8gnep7z=GXSeSepZ&nIAH28t?7w^Vm+twV{mippxEFf%tIxgeUg5bnJ*T)=doKQ5 z`rgiSo6qgsJA8iQ`TD&lodzj*!^?|sYjpLza| z?)~`lUw;07-23{zu;P>+ku^`#6g80A$*zcGRs2zve0F*1^lwcW!(k(vOiq*!b0w{e_i(40)Oo7#}*bU z$3ApSu+TgP9fKEo$1XW`Y+-opreilROpkr<*!LH1LuDW#LH&=c2s&6ekchv(|J-YDMs~*4V>4n#>`sY=zzWa?= zvsV}2{g!{9^l$pz@0JK8Ldl{;BoRv_5~)NcS&}SERwS#EHOabULn4=eQ8tNEqLQd3 z8i`h-ljtQ5iBsZ|xFsHmSK^cSB>_oL5|V@^5lK`MlR%O7rC56-y;jnRH3IEM1YVO4p?8(haFxs*ozBDydqkk!qznsa|T38l@(wS!$75r8cQu z>X62zurwh}N)ah4#ifLll%}MVl$J75R+^S(q*-ZB%1QImg0v{*r6p-uT9HEL;nd4Upyn@5=5rO~2*S~Ne912&2tHNdBnlLB~2^~Vaup}(Y1hQ3`P_`yh z$i(xn8<|`tm6>Hq*^D#Ap#h!ByY zl!y}1B1XiD(xQwgD*{N$qP(aeDvEefNmLe9L{(8uR2MZwO;JnK7Ig$Gf>nV=a5%#! z7Knx5%St2`izQ;ISSDT)FN;^itKv2Bx_Cn@7c0a{u}Z8KYs6ZyPOKLj#7416Y!+L@ zR5#6fXL92Q5!QE^NRiQ{5eoDe6)h!_=PVq8p!NpVUH z_@~8;m=&kR8F5ye6LaFcxF9Zyd2vZx7FWboF~|fEH^fbGOWYQB#9eVu+!sg$W`Rne z4ov~dq1>8Rf|0a9GGYUx%tFP+yxmlFXwfc$ofmnvfa-GSs)_#raH$W;(BdW~SM6XQQBIkj`SXMdwJ?(0t3H!RN<~i}P3<$OIXK zOD3<$<@g@*w1vACA}Q)9Pwq>{n_CdDxw^n2hR(2+U1` z@gk)Sln2JPB38%)`HXeQkBAVU#i3E4uJ7vfPO*}6Za^eBi-uBQw1oz1pf0xc`S>El zLTRW3_BLD*C_kS;hq6!^;-Yb=5_3Q;s3(t_!I+#=;?8UP;ONMt@DHE~v>9K7W=1f= zY?*0v@%1>6zjDLe1<^6exFQZD4}sCfxGJuR>*I$b+HphNCwok6oxt8IBSai4Jpj(X>~QE`8v9uI^Z zanL65P&{k}&tMM6!I)`061K#FTmobqipS%yhn>qE>__9tI1*17b8#$Oj&gQcoUo8_ zAQ#s(YV)MysjgUiIQkf;LX3rXg7%CvUM`-|N`d}_6=MrDFUK#Kvw3(j^L1M+4o2jH zt9DW?1QAqAan8PE+|+gB6;r^_FgD`#cw>&g5U=WbM#fhQOswVjM8$#ef{r7mOUI|t zHA~Nf8}hIaUi5-9VVQb4teTe%M$!fFQm_cGftkEzcv%bX4zH+JU^%QXr}UFKH*c8t z0ttc|v|uon3#(wg(lSTkHBMmzYz>IC{QqJTdu_1I0%qRlC_AtNwp$nV8QA5w`YET{ zS=Y+urFiQu;Qi-$4Iv;u7)aS(hW(0Fc~4yf8X(ie=aB$#NU4LNIV**YRTx5DqeeqU zqz=e$GtXcQ%qqAXas5p1nd29Nvr{gCb5pxw6~PotD&5Y4S#Js{B=cjcCIEH@?FZ9_ zqQ>uL6=JU%{5E75@t1M19e@MPq-6yT|W^__#FvNP`e7^zktSQy9pSq zC9N`rY90%n;1cOXF40M}5{*PVF^q$A%u`b&xg^&Z+2m?+!{{(9&XMj6B9%R9NZOM2 zInG+r*%c@^hlGa>+unnB*ho`MfI}u=t&}WHnrwqd9tXPI~}LHj+)nWG*4IF$rR6yy;*!IdCA! zzV0x>EtE~#hwJs$$U1G2XY%i!ngg$|v3CHCIJ(%;eugK$w8L=Zk zvw;2k5Su}QB!MN5=P{HBf}keS0IVkrl7sefU~0J;%&r?` zbF^8DK&^1`?y_93F$6(f%-{@g9c-_d%@G-rQ7IKU>#7pm8_7nzW)8`zJ6<@vgm7R_ z9sy6PmT3n_K@IG|rbH?x;H{N`IT{PXBUPm2TcILzG$W+ugv`Kp0=;>bwK;;ctZPUc z>BtjKqYcy+>3UVxb)XTzuOU5TgpAFUZPnYgCH+I6P#Zud-q;*_(Ud@Ds1Oxsfpm~f zAUnOoqy}|C*TOP%168QmdHvCK6r78ylzCK(not*NQK?WX>O;MN!NxIX(=aR<^@e3l zQy)Y#VTsQ*=lL{b;f z1><@`Yz7w|k@#W}n_pQpoHcu_aMz778O@g6?FyZ8_v z;o~6CeSC^fEH+@T>&k+1eiqOnxy>HNfyP!{gka8uM+ga##z+85CnSW_iG|FTG9j}! z>y|lxmKl^{j1Wr%&;~+j)o6gk2|1y&Y9kDxBGiQ5QzkS9)tnC=9P!RsKAi0k&`83h z6u8PRHDM(@gdL3dy1+i?JOhI;D`$jJ({gqQAQP}{FsSXIWvx2G;R7}Z+NiDatBN)O z5tv6i6QHlqftnLBlh9DINam4brWp}7;Y394_9uzBgE6fT;7TG%K*5PQI%nP_Sb~nO z7^5x?0s4A7&=z4BtdVh5|VYY;YR`)U65>(9TNB| zpqU}EOZHuUxrZEDswvQyMMAz|Y6*{H0BP9<5d4xrweuy%OQ_2v~_mn!NOM$jfk0KL!z?gQLLCe!~uDq1N zxsozk+hICoPFW(n!3Z=TN!dJAl9@A#X<}g8rwp48+dt+{d2PK^I0afv8A+ z_?jV`8t9FEV6nS^*9{NNUSl`ZP&ww$=8k%Uia;u*>ZUTP;E6oc6s61SLY`WRPO;z_ zBf3>kH?t;`tm*m4G{u9fx~fGZ=$+^6s;Q>xP`0Uh3Rr=s9uA}iYM?KvO-eukA4f@3 zpkH$>dm7YA3RnRp3ma22o6zk`b!=m5L)Fp?C`D>KXDXtWQlQl+P%^b1=u>)Ukg_^# zU`smIy0agIEP_>l?mPNZwtX*RS#{=M6;H$GSw}mlR=aD*ehz7PnC+P%@ zD8+LuOd6e^W0I)C^r3h3IFn(ok0$*EzX!;+XK`pU-Zot{SX~Klc1a^X5wA|y=}IJR zG|@G>5tM~zjKI8Tb<#t6QvurK1fCh)qsJkk&p+p^@`#y5Cqegtj}9rq1{H#;tC~VsSFCrKSfu z$bc4SQkw1@%Y;E0R=%N7DnaZ5gF9E57!x-*VsW!I1gx0J%@Obzo~bc)W;kcZ)r6okU19b*pSK@RuU5=t!%s=%7(+z!D5t+xl+M4Nl6!<<+R<|q4056|8q-mY+ z0lJdN%xPLrP_iD#|vwDa&b%fP@g$M6)fGE?do(bAX6W14!je zxtsz-zQ`T!+?pk1v*!SD9MFj693X(x;`4H2z`T^Odk_@l072V)kCsp-ydI0p#O0iG zoKl-3X9FH96Ijdv5;Pa+SLO)cpwu}DT1c7HMRQ>TAT$GZUdTo5aYamNl&|IhJ(+dj z%FglBa{r+a(-b3cj#c$@fbmz(08PxuzD#HEwg!W)&w10NeCSJR?wVk^|&fU`vzRbTJ;_IXz>b!+l>T zECv3>#2r#tffyh_VFiAHT+{)tmz&c^IbnpGQ#~QkX|TqT9BKzXiUTA}+Nf@c%W;6} z2yExo0`OiC=gJ(QIGWd$J3(;-JW5dGs2YG&xIrGA6Yd!N+@>X$2emOL3;|O?QwnPH z!ud5o<9s2fabPOCfw#^}qpT6MX?~o&e>#$6r$#2Au^A73}XdA#t}3WfczYd0u$Yw zb9NR0*@YYQnT4DU+^KL_f3VEQ^o2s6b&mvljqa1t>cT{>SFH z#zwwyNHPJAbV3rX+3t^d!|R2CJsHRs!PP~P0g5Hu%AgR${!m4rMa4OV0w6T-+2%P! zMQiZ{O#vVpPyqd!=U9T@Ine;<8H$kBLM|8Mz^mtruo?8vMevjmsPo}j$snUX^o5dJw! zp$+u5N}v%TsiIYEN6SuHi50;cM-jm1gWm@D4|->FPFr;iiihC%VW>Dz;;LD3!k>V= z2N3ok!vH|o&)E^36JDx@cmVwl_9>O59t|w<;3;?;?+wZLusj`T^PE?}gLdHwN1Hzc zA_v}P)jFJW5AkJ3CxY_1c}~R%9A3T}UY%q7g@rtT*#>(7%r&rtz=jtZ*CBLlE+!v^}6ilSn34m4{vpQ~vljaH{~ z&RuCu1*~&yBmmF|AQ~N@#WazaOJ%fDc3TDLK?T>>Dga6mtig7N8m@r8&6cVF$U`@< zgEHC0g=+~+M$_?DDTm>L)2D}PY0WcdV8Fd05T1C|0`K!PJ zssNa6US1Udvw>g6(XWD@q?!#>ssO+%LR1gIxoU@ST20O%>0uZ3!$1~mZjqyaLkL36$&RjoFMXCghy8f~b8FF$eZ z5Om2Fn6prt*J@m?kZ;zCE|G1;X9ponNyBEXtOP9t+N58r`hZq=RG_q)1r9rFCqRgR z;nRE;@#0tiEc=*Vh~X_y=4G>>(PegQxPh>xaNU zIZmDQChBgB)|~dGTrEFjOqeru@Wgc@DzbRO^=Ps@Y`)kwo19yk62KLCzm z4WQvccO#`*X@FAIxC${ael0jMPbNQ1`vx*xZ-A6&0}J+!!RL>sF>4AMo6SQ#RtRjk zWvV8ci%roy&p8_Lt~91m3D72mGg}1xa8sgMwKY^|6Ue0rQkdtgmPXo|YaS*igMGk* zH|5c46C@`CnFstP+f03E@e!l4X3^_Y;5e|prrOkL&eM{C=WAMQ;ieVb4Oko4I!qP@ zOQ2Ovn;*1hGu}ze^KzTu4WbF`x|vjA;1}4WjZk%(^JLq)66j+Sq@`-XRY9NIXavt= zNL#?2ZB(-zajJPg?4_C@X>@*%Ks-`z4x1BaSp`xwlf&oQ2~4OgcX)izs) z$zy&+3;2|Pqy-YFz_qhBkX!qIQ=33i6Zrblv^P`&qp}SWm%`%qVX6{1N7FV2SK9h{ zZQCGOC{#BAuV@@QHroH2q;n!22S}lPm}mo*h$k{*OT6#s7yuVL=p>{+~eM#s7yuVZmXb@DWO2 zKXR?0b>uoh`^aYm!y}&+Y#g~s7(VhvLFLGo1k8~y3)YU@CLA64iGV%wcR~8~CrPDe zynuPBZ(83Q0^TH1ai^2~Jio&ymlu#|;g&H9*v7r!l!)&Z3dHvaHpTY~CgO(#Gw}}uQ}GMJ zP01SsW63Fkk;E=2OPqp|q%7=9YQmnRA?(UOC~!oN$g9zlT;u4;W?l5d)?!o;wMHdD zXLK17Mb}(~r~(p4mD+Js3rV6jNEUTMOHr3k6ZL4YXcm=3Tajk8 ztwwK!^wHZOL-cF5Nc1_#5q(~1js8jNj=tzBM*pU3ME?%CqObTwv6Ix5*awuY*ax9v z>_Z+$Y{OTL$sun{?Kj7?(QHg_TZAT5VX@~e zqSy;iE%p~56#HvH8~Yo?$Nmv)#$HxxW3NF~=nYT-It6M#r#fKhG`$;otB-O+*9 z1M|ymQ2G#>X|&KbG=}z}DfID>2D(63fNnB+pwCBK&^L7k=sR%{beA>;-5VD`_r-k78gT5jas0m;u7eY_!9K%xD@)WBMLnimqE|Rm!ZGLSD}B# zSD;sd{`jf!wfLEq&A1@0jxR^Vab=i@>*Crt>0#oOsu$13t?|5fGv3ll;!|BGz8!bP zkH+2ceQ!2?pkU+IsHO2c;&}Wq*b{#)&c^=~PsjhPT8G~TK7`((Gr|k;JpA5h2mX+y z1dIF@SR4$)(s&VGiVWf9I1jJKOR(It39I5|*yS$3?syIMIi+wCoJFHE7$U!8|vI-Ld?NVY9HYS$+sl*0sN+@7+LIqnA5!jt5=roBE z>`P4GU}8(VoHz=H6MNxS;u1KLxGV}MF4s>JSL?NjYv5?&^9m+$GaOHR5rz}D>UD|R z;6&o<6ek^B%` zOrELDCC>^4lM+9j)WZ2>6y}q0FP&uJYLYi^Cd=l2vI#emEx4B4hTF+KxSKqH`^jtJ zVe-=;2jqHqoct`jnYAC^-PDL7fS5kz%Cn>?+mlR_kOvji+v=i#6FtTVCU*=*hNV#c0mBSzs{?~-=G`fr#NHyo0AUww4@taxFs3I?LiCfh|+ja*~LT2ARc!ZaX1;llb#&T7z21V8Nf@5K3?%?@n$jvUf+Cp z&j#V6WDMW5MDbni8or-|@QZ>xeyL-IU*Y!RS0`cov!NJ%V={r?oW${4gB$oajS~FM zU;w`>N#OUmJotUe9{zx}hCiH4;Xg`}_|KAQ{HY{@|00>if0fMOzfQ8m>yjnn)L@)= zbFxgFuJjUbPgV$FSWSqNbwVeH2z|0mSd$&Xt;iDTE!%pfMt z@rj9#BP+y38a;7I#6uhlZxF}PRpLryk+=?#5Z60B#Aic#;wDd!xCN0Cw}_SvPS$2Stfq1&=bE=ZxFvjmWbbnJ;WaZ3gT~a8S#pI zMEu(nCr^^YE1gz5|hy?+csB4Wh?RUmHzI$CgvrMc5BU?sN&eEskWt!DCI%oDaZt;;z%M@Lhw|@ zX-G8@BGp0{Qyqj%^^jC*h)}69!lbqlHnoeSQ#Wg<)EAAR)VC~w)B^z`^?cNx`V&%5 z{RL^J{_5IH{S9fP{$XECy=y?sJl=lbq~Nidji!^PkSxYFSYB`bEtuOAvmD^6zo%f^AxF< zQ9bpFB}u)C>gYGx+Vp9tnSPtGOuqwl(r2P}T8O&orQnbbp&>eq`spYdq@hTghS2~` zp*Ff?>(Es+OgD@=x`RgOJ{qNuqH%f;h3K=<7=5mXr$2@o>GM&Hz7kE)*P<|e6Pl!N zMiKhIQJnr-v_O9YCFna)l)e`w=?Bzl`av{BKZ4Tqk5Gz!3}xsiQI`I>y-q)6S)_ky z;pji0Y5IAifqq53O26uo(ywV@=5?kdb8;ZXoZ@#dr=dCKE$SZg4z$3$$1PyQwj8r! zLYOssklAo17`aBssN6!v5;8D$w914-BojqzOcHG{NT|YKXq`FR&obv&mCPqBL*{bB zI&(#UVy;0)%zt?Z<}*eobE7`QeBNDSet>Q=KSXEDk5oS9F-*Yx6caH|Vq)fZn2dQA zTVno*Ewg91AofgmgI&W6>;?uxyv%u4;})|z?FOsIjI24Z!dhKk)`6K=KW1iwS~(lW zENm3BvT@ALCOmx>#T+b#Iava8u@t6eX-vgtFgKgkIoLu#$__9e3yA92sXxtLg~ixw zFqr+6zQEqXWnozzFsg3}at4jM;xvHWy^GD#d$=HdAudi|tQ@5;!57n);-d8B*k<}T zE=*soFQ%`FET^wiYtrBFl+t(L>*gjcDE(V(n*N%9&X7woXR5Us0dC4jaaTr$J2R`eFQdl& z87CghxbaXXf#Vq@Sjx~imSJ%;lMT%>Ikhg6$CH_&&XeI)>P!WXXEq~r=4fOkb2d(8 z&cV}}^BkL*^P{881$ZWNG0tQz!Bd%IIGMQ|XEUD;$}^wwsxzO{c{4ZS+00Eiow*s$ zWp2?;GPfxenXloM%s18g%y;op=7-8j<{7-1`3>I4yy%u?CH6*knOMw%P@}9VoXIAf zzAO@yW^rdLn<7@T46&R|6KmNVv6AJ9^=v(;$hPFVY(KzcNB&&)ql6-Rj?bOF(a&XX zBG6sQ5dPdd+)KIlYdX0zwd$Od2<2pQX>P^n%5B)RIitIs3pkf^ zNHCMb+?E{WpmKHFFxS>?=K2JY8(0mwv6s(He2UyQf#r4`bnYYOVeX>@mHU`gpF590 zbDtnmxeI-X+$98(yG$p@9aqu0TXeqMm))`4R|qEebqAaKCXvZ~o5(u4GN0f4R z6I||IqLBMRz>)i*yOVo_DCQoEtmb|i@#mgY8*;ytujig2^0{Y;Z0>pWF!z$8nEM;S z=U$EkxKoHK_g1HgJDuoo?;>j4dx$dkUZTZ)kVtS6qRz>PHn-|`a%-LnrzR?#mS}KB zou9KBTb$EQb5UZz;T{QB1j$pSP?~EHJ+4pmxnVfUjqO5iSC{2JLd>`eO&abZV$6M# z7;%^Tl-yNb4fkn}g1erWaGxWl+>L<-_j#X(yVKsiBxib zBNg1sq?&t`)N-#`TlpiTCjSP~kbfVk%YTs6=RZU=^NXY@FCvZk4HJ>~=%aZ*>B>h) zZ$1`)^KlKEr^!H`A^rKR+L+IowE2P;&sTMUeACv=x5;4sC>hT0l9Bw!0^$65Mm&GM zKcBzA@5*25iR6z(9r@#AEPsU=%3n=F`A^BU`A=(;`RnbG{AU8`{C|^h{`TN3{|&_; ze}{?6-*2DfA0V;(51h*UBP5>xiF%xWf+X`#l0^Q`B%Oa*Da^k@W(uz}=n5y3>B1?- zmBJgX#=@IPw(u6KsqnV2y>Pm5x$rJIR#>n{3m+s4g){An!dVJmL2N+^(omrwGqwwB zR&!y)E-jc{l|q0l6+$+BAx0JpuxX=^C0m8AU0LW`ErqcQF6?N1h4aW>;Q~vga3wh^ zTolbx8dqGF>?i5)>G)hK#}@-~zME?BeWi*Y zq&R*v)#JBPd44DAl9S_CKW1ui}IK5qynYyQt{F~ zU18}*RIv1TBvN`JR4)CTij|(Ch|+JVOzC$NS^5K2EImi%OD|IC(myG-^okoQz3Rx9 z{!P*4*HNkR8>npgy{>Ng{Q-UX42mkRQ;D+0wO)2pwX%)Dql(q%2%ZD@-@_? zd@VIAUq@}0Z=hGpH_@{4&8b@XR$5yADlI90on91!T3&fG#Z=x&t19oI)fK5yR8dCQii@^Xe6+a| zpskg#GFpkcbQOpO^L=VtB}qFf1Z}URXlJEi>Qy>MsM3wLD?{2-8PVR##FVaV(Z0$y z?XT?8!O9*Ts2qgw$|vba4xr&ZfK266eH_%Y!Mmk=(OS4$Ho5m~m(?sRL zV72m4h_5{EpH!XYM0H^>kCF`i`)o`Yt+KU7&N- z_i9AdGia{5NEfOiI$u@W=I+l>)hmM4sNY+K%$?dn*^S3lymS3l+@svoDT)${3Y^+LK+y-2rMy+pZI{Zt66UhC{uZww8pH`CMV zm*`pbR%NVuuf1En&)2Fx;4fBxL=UPz4hgD1p-0sx7*X{}Mp*qhJ*ocARjdA<5!X(O zL~Czh+S-|nq$YNIY9Yq#dH z_i6;At&xnnMg=0Z9HXdljH*^p7;7biy;hDXYgLt{Ru5!r-AJak&lqbTvASv>i^yx| zF}m7CjI#DgMqfJ?WopMgo!S*%XYC6rZS58XQu_*Ht$meo)V>jQ)xI6!YWGKzwFeka z?O{u>_6SJ5_%Rc%J??4Mo?wEtrxMn+=2g57%2t(GR3{yw-P#w2=>M56@&N9h*F|ttyZ{qbj1JxTI zFlE9d>V1Z&f6TvL{{+*hpRYI7FR`TSmofSJ7153Ql?G@1YNlPkR$i}P&ot{dFkJl$ zOu2pwQ?1_?iPis`Db~N{S+C#0lc;J?zHv8e zXgtbV8$V{vjmKGA<4M-p_!VPl{H;-Hyv%wUud#vVNvyAVD(h;V#=4uQv;O8gSa0*) zfoSu6Y_utH^_o&=t+{F!H{~qURI+drd~r0xOs^Sd6HVM(Z06Wxv!aBW4Nte(REe8I z4cDBSndZz0H$NJaHqWsYn&&CX%?nwyd5lGxx3a0`_oKb${Vdb`fkM`N0zfkSoMoH8 zVCm+cS-knr&|>pdHrqOt&9oL2mDc-NuJwVSvh_hW*Aj#^Es53F(mGTvv(?)QL?^8< zTW&?|qZYyzS}0p-5sGT7%2r!-bG$XPk6U|eqxBKC*g8iiZGD2RwJwf8txvMe*0HXn zb+skd`YhXO-Nd$AU-GTDZfCo#Z?e7CcYUhX_dUJVz3ia%5Ibu9Fp9JuVf(E|*#cvW0C+JiY@gyAx8IsxY`;A%YM+r7w`FNb zd)dvjSJSfgT3XtcrgjoVQ-ragO3!Yx}A-w z+r<#vE(Mp{ZM&}BO)J|Yud97_THC%bt!rPB*0-U5-|jVL<0h_Yi%$2&Gfz2i3YJ04TE6HUXNSUSn+NwyWmnJ*IG|?HSsm>&w>g?&wowK8|&PTQ3&bdlS=MrtX^Eq{`%H$;gKkIXp)}ihD$RACHrG49PG>v6*I7Hy`2(Hj)49%{ z)0>@tq)VOG^p@_)ntb;S=|cCE$gF#6RNfUj`(1IG?;6vUt}R{bI?~N9lCE}3>2|lA z?sXgKVz-$Fh*Cy#x1a8JH`9aeZe+82ZhF|gDn066o6dJXlOA`!sCIYnFpInQr6=7V zq^I3S)3ff+6sGRe8A11d0;cXW8DaM~YEk#MnZ@q28By;YhEeZb8D;O?8Ab1XYESP2 zwnXoP9&_)*8CCC0yS}$*GWNuZQBRUl_hgZHZzY)Pt!6YmcShIqX3V{$KiEtAS9(o( zs<)+)^p0kNy^AxU-sPEa@5)T1cU>mdyFL@`-Kao&-^oC|?`GiMT>)qB9&4a?Uxw&C zn8ACGWXRs5W=ZeI#*NE3G@ zruXj*+dnCj>7Sb6`=@0J{kLX{eQBoLmuH%Nb*9lbWm^}p*w`*(-f{`VEp{(TCp|6o?#ef8uHOf1fq= zpAS?07sE*ZCAYQz4@bHGO4ibU&5|9QWDO2ppS2Ip$a)7$S;s(^^$qk{|G?>Pn4`$iHPqOL3|Ad=^ zXR^7$uU*l>Z++##v)anwFLr3~uWWw!I->=^wG@W$%oc|WddcwJMr3$awlq|RL_@VN zG&Fj!q0K-IJz4NdWDN}~QRT2|@C+Mz>9Flz9Cov{;WXPA?&vGSgKT|xw!1&Pz+WC- zq>v9kX{-(}jlsjqv(4dk+4k@=!O-w?c4Bx#wmbYnwm1Arwln;iDmwf|b~5~Cc09b( zEFIpJoeuBL4u(qiQy7nO=yHOxb;9xIa`gBHon(AlEqRF@InaQ1;Y4SaPY;reeo7@vjOzw51Ciip3 z$pf5u@&nE?`8j8wJZ*MQp5+{q=VIE)U%24pZ(MZpcP=zN!uh6eD6-k z^hS=K-p)0qcYs%rZ`zI1Z*#5bceu{)t~>p0)IWWJ z8%(SEx$BF^J}wIUOQt9!C665neln~te#iQMta$7me$Au6{@Jhc!P)PE$=S2& z(Cm-l(Ch^{GkY-~nY|R9&0fieH&0SDHec_pZoVNO+k9s}v3Z7XvMI5+H&;U9&2>w7 zQ;|<@D)Z@0O`h6x_(PknJhSP|6PrPYU^AqHHzSsn&01)@+0?CUek9-C{Aj+jc|1Sa zydpo{(yGH-`uuFmnBUy;6a-s%VQGskEN`U?D_eCJy4Ccnw%V5F*2M+w*5w7m)|CbQ z)>Q@F)^!Er)~9vKt8=7NG49782WnLULPHK(gf?N@!4o!6O4J0H*_cFrh_cNPoNou$HL zXQMFNQMe>KDxY=7;8yHdi;FwnqHrfv*xZTQkR7(D*~u4|b_&Jior<}+Q!mPPnug&{ zt0>*+7FTvYQe4|Pr?|fJ2}6A6qM~-^lSSpu<$=P^6`|_Rl>yn#HAThFbw%~gr;Dnc z&xYJPpDXHizF5@n-0INne5GjE`D)R$^R=RF=WeBP=ley^&b>wZ&VxnA&cj9L&X1ge zonI7vJ5Lw=JI~l$JHJ+zc79t7?EEf@?fl-nvh$o}ZRanh^3F>x?5Mp+9QC=!N9iJU zlr1txv&HmLuE-uOsAEU@V&-VMm_1r4=8kR_`J?B`+ebfMEFHbDSU!3zP&|62*?08n zV)f|ts->ggn z9(}3U**+kKlZx%)x+%I+es-j&H)yDR+4?gqcSYv(1q9)4*z;Arj!b;xc^;n;+TJ_eD_A*boWb<((YGy!|ok?Z1+yyw|kduvU{J#yZeBa-hGI7?*2%b z+I`HL+z?Eani@4mvryRY)Dy_0$O-s`=_y*KiK zy?62Uy|eh}o{*31E%_>Y%Y1Tgm1p-9s?9wOpWV~*(4Lt`_AHV5o|k9#0uf{{8eQJQ zT*JMTsHugVKlJ1{V zTG~Iqq}sorB-_8Zw7P$(qP>62o8LcPTHC*(B;WsZNwR-?Nw@#Cl4k$TSakp1l6wEa zNN@iKCGGwXOZxpEmkj$qE1CCyUNY|g%DcG#>yl~zS$|~z_oemy*Gi6q*Oi0^r<7a= zZ*&9>-dwUCoK~_QysKn8cn_^OcrPtH_&~{XAS}5L)*}6bjjZ`VUh*E;O1^_g$$t>l zV+W8Xd5|mx50E&0Kx%piRMdFDXgddNDRfXQg%2vO`a!D{IT(4z2NSvR;G$CW;FBiH z!F8qB!KZ!BgD;ejgD;lwgWF2UgYT8lgS$)E!98aD;NB8(aKFoO@SqMocu3_uc(gODiTysB#1~9Fkk=_0TmS9 zx6hl)Q`fuqt@r+U>z=hv)vmpF)v4OGYge5PzfWd*Un)L*o~CR1{8VE4NGda3pGr+1 zOGTzXA#qNBGBq%LxwdP%HC3MOOjV|-sr)n}Rh;IeO4EW=VOk}OPiqXUX>Dp`8jp6< zmNa47Cg_@Wq{gRRsj2BeYG^u`8k~-#o2KJr?{qRXF`Z5~Pv=vU(*voo=^-g)dL%VG zeU&0PeQmmZdO^pTKAUcvzA@c8eM`D;`m5=V={wTI>AQ6C>ATaE>3h>%)89*XPd||E zpMEG!o_;t@ntmkRIsLPA&-4>%-t@21^yxR#)akdXe;mphW=9$;hnc4Hw$=M6i zx!L{d=GjB(!fZ`CKYNstojs=Mo^41MXFrvmnEiCRJlmSC%yy**X1mjav-I@nEHgbe z%Sn&S;;YiEBwd=7riW*>>G4@zkuhs0cg#jJO|$U~VK$v-kzb%-a$3Z-j$)w-kYJ# zem6s({a%JK`vk=_`)r0e`+SBq`$C32`zpCS`&&WB?C&z1*|#&?*}rFabNiUWx$~ss zbLVIHa|alXxkCc`TunwaS1WIsJDL&BH84nXmu19rpUOz)uHd`oni;vd){JznOVcyg zD-6t$XhU-p?cf|$q@JT^WOJg7d`_NG%_%eLIZsA0=jUYSf+WjaIHRA7Fr0I7PJV78 zqnW!lW1PD#W171@W0;#}I_G9}!nqTi!rX$QeQqUVom&$M=T1q)bDKK)+;+w>cZQjr z`-(6;cdJ}A_cclX-0fuF+;^14xqE1mx$jD;bN6RFa}Q)(a}P_jb5H2ib59$DbAQbE z=3dtk=HB2G=l+rj&HXjwpZi-THurblz}$OG(fs~QYQ83uoUfI~=Z|J`^NpGCd|ReG z-;o)d@6J@_dsMV}N~So^q6g>snSpsxW@uiO8JpK;hUfK}(Ro8=WZs?`pATdS^Kpi2 zewdk`pUk$-U!856KhELL&$;#UC$jDHi`kC(WgdBcHQPDAmhGBf&vwsmWqangv%M!6 zlI|1iY~Kk%mUu#x?LQ%xx1CUCNhj2r-V@p^`Gh`8IbqCFPuQ}w6K=WtM2PP@5zf+2 zT$^Q|xIW80aWX4Bv6&U0cw9bm;z^b9#2>h#6R*q63sIqcAV%LW&Q zY5fb=WFrgLOX&-9B+tTDHo9;Vx3qAxU})hEaqq%i*~G$q+4#c!+1SD(+1$dT+04RY z+2q30+4RD*+0?>w+3dm#wBd!9vc-j$g^q<+v!#XCn68CCWb+Gu%oY~jG;}WfRmxa+ zN7T9S&un?&!|dQ%Ea!R`2Y8glpl2^JsB2^SyA@fM$8_ANe_lPta@FD||! z<1fCNlP>--r&#pm`Io%8z|u{**wPoxgr%EJQ%m20G*> z)V1`0W@PC>fn({X4FA&O^w82%YWvc&xzy4txy;hrxx&)Fq^jk8;^6YfM8nJH%R81Y z%oUd}qS=<)b7RYW;?OdQM_VQf)XQ8||1v+{zATb^mc@e1vP|My_KJDS{(RSRkW^U? ziL}cRX8$sNsl1%bcQ2=8Jhddj&hoGG+~wC) z1Iw>dtjq7{Sj&H-3zq*Sv#y+%7pxr13s)}9i&lDNO)JE_WQCj;ub8>z6{{e-V$aJ~ zoO$_5Sm0ZUL1jB)z?YZ)wfjg z)xS#0tAD4BtiG3@Sp6r9`WX)UXSPK?9*RqV>wS1v_ZIDS^ zn<#XxP4Po(Cn%$9Ckw>2b+%w_Lo~X!Emg05k-}N~PJy)cg92mihXwZ9&kC%y$7Q{1 zFBF(-FVlrT0we} zUJ##Tibqbe3-Xhqg5spKpgQR;SWkKi>XZJ0?qsl_IT}n!b#1|Q>bR)y)Dnq%YK7`JwMMm{I$7|ZS}*ucZ5I5ewhDn$w-zF&ZYOz9 zeWwsVb$20l>YhUM)P04-sUH;5ryeFMPW`x$JoRWHd+H~J%&F%K#ZxaAN~c~aR8IY- zP+q@Wm0c$k2G%-F*m_@KXuZEMyiV4r);S{0x`5cSE);9l#f6b|sVcXgR>aq{ z#n$yAscC&u=UKm=KDz!HJ#~GC(XoC5sd@b-y=(o8#qRZ+^L^`IE_SUy&goeHd6B*T zbh>x_muCC=bAsXZ=ZnnsSM;sxugXj7uaUaf{~(O4|B*{y|FfF0{uW8N{;oc^{x|$O z_8&#g`uj53#y;-&#wA6`#-&B+#^s{1jZc%q8!biIM!S}|(N&ah5Q~ZpvY~5(=^<^f zipmXMQMJJ@syD<%{f4xt*^n2t8_J??Lsc|vn1#{}yLNcPC6sM=i^h#o(XlbWXxSJo zIyc6O-i?W(d*hm-XJfwT-&i0jH8;|)dg#`~m} z&6;9m^W%bv%}?m{o1bKOHVMU{&6eWeW{*a**(>kaq>_xA^5W>Gm73bLG0B@wYI@Tn z6KwkR!OaBIyO}9YY~HLI-u!Z@W%H}0*3GY%+BUygYTx`psdMvzQpe^)rLN8Almna3 z$F-X;2|71lp^-O#U+Ug`i#WddHj%S+eyMlsLTzB{V5x8Gkj}eRLlSR&qD0ziDbcn% zsGhB!5@V~c#N6VQSX=xOdrMs6Y{^QzEmeuTr6~!vv?cMDtt8oU(8XJyFUhxVrtr7! zkhr(*lxMc?DXF%;ubABWIk~X)Oi8!(TuHO_LP@*zQc1n_O3AtPddaZ$M#;GKmy&7g zt&(}`?ex9=(Cx4%~^Y(F3n0zT>8i?-UHJI|F6L&hav9XOYO?Ia}uK+)(E4+*}sy z+*uaxe5Wkg`CeJH^H5p3^CMDIFEG`}1@ZPpY|JM`|;?sDvOupB>~C?`%2m6NAO z%Bj=8k#bJ|uADyodnM!aAIpW)e=28A|GAt!{Z|d?^xInL>38ME-Sf-E-CAUd z?#1Pi-OEUWyH}KlcALwCyKUvlE{7G_<(DUR1?BNwQF&}vS{~k&mnV0X<*8j`rFGX- zY1wsE+IFLr=H0A@yj!Sr@0Kg=yJMA}-RVl_?rf!FcZuQM-LCZRey-BD`=v_%?k$zB z-LIAhc5kl`ckh&jcE4Sr?%q|Q?cQCX?0&yO-o3xV+o-?1X=+AsXF?Hrk6~mb?S4?Mat(ea|K<+;C zn~LwuYZd>QH!FcNZ&!k6-mQer{H+o`yT6h+d!Uj$TPtfh+radly||J-d!)9JBQy;!cAbt27LgDuxyP~#yF?fyh@4FDZ#`(Xv5WL0( zf4&gB#+BrYz-tf$7lGGkl3WB{qg8bgc#T%wMc_4BtrvmUAUZAruR+XR1YU#qy^FwW z5HH^kUPFH+Pz|o0vLC#Lp1B{qhMu<{yoO%6AH0TsU_W>b{dN1nYZ%t|gV!*e-49;F z@b&%RH4NX}4_?FYo&Df7j6d8DUc>nF{opl>&+G@UVSH&ncn#w#`@w6NUfT~|!}R)o z@EWFf_k-6k)gJ(_Vfw@Y@EWGe4}jM&^&SAPVUipGuVIoO0Iy-v900FjG9P%yblB`T z0A9nKKLB3CJa7QKhI#A&cn$L;P>oshbqBy}n5Peb*D#+r0A9m<_P__`1C|>PfY-3x zdH}qJ<&Fd3H7pMu0Iy+r`T%$h%gYDAYgm4J0KA6f^#kBFtOo&U^jRAYg4eKKdJw#Z zwdEjq4QuB?@ETU?LGT(@?m_SxfH%Nv*bE23YuL;O!E4wY2f=ID0tdls*i#3=YuNJ# z!E4wn2f=IDhYy0+a7-Koui?1rAb1VO@q^$s95V;OYd9AUg4b}KJP2OHxp@%0hV%46 z@EXp~9t5x9{L(@28m_M$1h3)x_CfF(t_Kc+*Kj?25WEIZ4e%PS7Y~BhaJ_O6yoURC z2f=H2-Z%(e!}GC2;59rohrnxiK79zhhNtxqcnweQA@CX=@}Unr4PMD1@ETs%A@CaB z$RY3=-ohd98s33J;5EFHhrnz2u08}_!#8sXyoPV_5O@v$sYBp3{M(1XYxs8$f!FZg zcnG|P|7O4&8~(cwf!FZgcL=hll>`zaa3~A@CZ3UmpUm5qSF$ zc#Xh64uRJQTyPk?M&OFW;57nmhrw$E`woNG2r>?X*9fYCY7~RI!{9Z7fy3Z6g3-g^ zHG-+b;57hmfY%6C4ujVSjvNNB5xVX$c#Y8XVelHE`NQBfLTiV?YlPMhgVzY%aQN-e zzVOY5!E1!SaTvTt_<_UVHNuY`2Cor*@-TRf@Y9FEYlL4s3|=GryTjl$!tWdguMvLl zFnEpd$7?8=5<5$US|uMwftfY*pHYrtznYYQSs6ud4yC5udIBuMuCU0k08Xt^uzR zU#|hL5#Iu{u^GRi2E0c6rkX#;_a$zw0j~it1H4A!-Wu>4iTi87Ya|}20k4sGq6WN1 z;+Y!o8i`kGz-uI4uK}--c)JF?M&kV%@EVEpj(m`~Ai4htc#UN35%3zx`Xk^ql9wI< zuaP7i0k4s4IRaiINj(ByBgr}fULz?y0$w8}I|5!Kr9J{)Bc(qAUL)l^0$wBKIRaiI z6*~f6BQ-yH$3k$vX~ zc#Z6PN5E_3K0E?mBX?dcc#Yh_TJRdVnp*H0xw=~L8o5hq!E59%s|Bx-Z>j~aktf!I z*T^$!!E5BXwIAfqD~M{rYZTKCI2zB5!fNg-+ z80xA6uQ9}_1Ftb8r~|JttgQpDF>I~_uQBYY1Ftb0t^=n82wBgc#YB7I`A5!t99Tt#KC|?yUo_G4``M@ET(;)`8a;f3*(0#`rsR;5Ek2KMG!B z;-aJAH6{)n1+OttdlbCJM8i?=8WWcs1+Ovj>7(E^CR&ez*O=@%3SMK9bQHYCr0^(s zjY$oF4I_XJ@EVi$qu@0rT}Q!dOa_jE*8sV3*W`C6^GCsJOb#3cuQ4@o6uidNRY$>V zOkIBzyvEeRQScg5n@7QGOzj>8uQ7G=QScg9-EkDW##Q$o1+Q_{{YSxTT=no#@ETV? zbrihD)z2LTuW|LSj)K>?`Zq_xYh3;AQScg9e|QwU#?^=G!E0PoUk_g6nvd6m*SO|W z_24zGxw0O-#xWJc#Y#X)PvW!?hEzc zHLm+|J$Q}lZmkEeaosoT!E0Q1cRhHG>mR5GuW|iP>%nVW|3p1_jq8724_@Q?m+HZ5 zeCF5n;59z;yL#{%pZP;Qc#Y{d>cMNw{Iwpu#?0UA!E4OCUk_em=DcIzHD(SR1Ftbt zcMQD7%&}wOHD)h823}+K@?+pNW}A+I*O+ZT23}*X51a;fj&uyX#vJt+c#S#sG4L95 zvSZ*i=JdzFYs^`WeK2>yeCQZ>jrrs;@EV{sz-!Ep9s{p&;`lM}8Yez;47|pP`D5TU zPOKaQuW@4I7=<~Bg;$S(*I0b*7mQf~uzjU`qCc#UOV19**PdjoilWlsZmjpcj;c#Y*!19**u-Iz-yfPegk-o zQx7$O*Esc919*+~ry9U(tUucTUSs{Y4d6A_-)sP{vHng2c#ZWB8o+C;A8rJ%vGK`9 z@ERLkjo>vl*p1*dHh7I6ZXDPYH-gvL)HZ_G*fceQ*VuG6g4fveHGwQZfpdvvGc`7@EQO%z-#Q>(Fk5+=Ua{7HBR5v2wvm#{f*!?PXDkG zyvFIDHiFkU{dgmIjoqgj!E5Y3)9Bp|?Y__mUSs#wM(`SEe%lCMWnv20}e0cH2|Bt)|V&stj-|-q)<3D(fw*Q}bjdsLSZU?V{I5^-n zFhy)5f~q?IpYR$@|Hf+|t_`9h{a?IB$2ndD>;F%A4FY(LCh!`B|1EfpmUFyDwMG6n z;x$^&@fw5)O`K2U#Q0o9X0oaTh|JYw>_-GE#F(Nq8(V~8vz^9P`=~@jno4lnjSK~% zM#?4lj~rF1%b4VM8);Z`?-ipLnJI0rk%O2z2pTNvHx6+sa$Et3uZRd_qyXX;`I+%* z96s{Nr-;PAx)qfM0%?yZaHR0QxEsJ-`!i9>odQEJo>_m+apEOkspR=Q|f zVnoW}QQ0jxZoL?Bp|Cv_*5T{GYZ&uvr4hV_?ZXd8HF?zllgVfmN6GzSH)?>_*qf>m zUmNp2!Cq9PDzAa1f?6ku8A}Yr4&CE5j3#}?C^CT8FzSgi#7}Ay$D~7uz%^atvYOlX1K7Y7ZOX@0CXq&s z`rtK8Da75@ZG&cD)N!|q7)^Cc+L#B4*YUN`jBjVp7_L4G;bwbsx8Uzufd(>`W6C!GL zQlq9$;S_s-kuj+_1ppi1HB3YiqR^QJ8Telj#keZXA2&r2)}>-Hh=Pm>Q?GuI=aj`* z;5E!d^t=vp7nM?t^M+62cbXGGC17U**x0jNx&dr}*D!my<4iwlCAGs?2l2SnWYhw$ zVdjywdwr1&Uc=m?O44I!@x7M-z{Z}hkwQ-cuVHTHhnNyGcnu|Z4RJ^Hxbt!nu9!To z7Cp8h#}?BaVg34KmuW{?rv2c-c4i!`92vE8(GolzuEPI4W{m5@v# z@EXiSb(*Hj4C{carY6gVdd(G6pRUGB~KvES~J=NdNM;M6gyPlHLT;+wr6uo05*d10rjxe zCK|E|apfZtxn>ai5tEH#I%1tb%?WEKf6Cg5eldwWin_^0Q23Q5EsLncdFU3Jh*e$# z;|(Gdk_EOlmKEtS4ildVUc=_*v}3Q$=X!JpO~rKBoRlI;+es;|7`@XWB2sA>H#%5x zTvG%diJFw8rA#7=Hi(wki|~&1X&E7x+o22D$dm}Fhp!}KoU+MvQEtRmp_=8L2x5c% zwk0s_pbpdHHZm0>ksxCupns{zY2;UV4O_QD=cNb`Wzl974`bVdsw}Pu9k*ob<%8F- zS%_@08RY{uio6eFN#R>6p}Nui>T+YE9d_QJxMw1L;KPoghO;ZvA0 zjwp)H?zMMl!E4w9NMo$E6YXd{dyIUJ*RWG4AMqOY2u6rb7L(n@D$>-#B~L)f!q#d$<9}o?G&m&-LC+zfxI3T6|4r630^}tL>)m+ zGx|m^i^R`LN7XEugqY{`vlKe;8g`Rn!al6;H8eZ+A{l$4kDV?M?h zBGWN05FO(fZ}y_*lN@~pvO}n*IlyaRq$hF*<#g2a(ORTqM24eHO=K0c;5E=om<}zQ zp=y(AR5H{+JV(A9Jqx^sW0KSZ^+o9rGpy(l;5AULakT4WSZnV!%F{WtGJbX3#Xicb zyoO^!<*DXa9ivJ+fDP~(7_ZR&q;tFmw&Jah&vA!O6~t1^k=+^c8?S-VF*0}!hY5WiZOmqptGtGTLdRJW$0IHe5m8qQAkfAAV81+U?pVBl#4>Hpw0oN1gb@ET45 z+N@6qUIV>$614eQx*^6yl`9uGI$NiN4y5MAa)hd zo4Bq?GTT+6Rm61U;R(S-WqGhZgD-NKQI0Lpz-v$l0`MBBp~ia>dunhsaZ;={9&c}% zqjfnsI+v7aRhnFWQ8&koT<{vMakZWsL>jz?t6Q&U(V6@34YyUHaMS2SVF!9xK&5dr)jpeCXmX1= z3iKEchas?GYlvFqX6dWEhI_m^229B5k}S=~3E^tTe(;FIDzD*g^PqLzQyeDiBVGgR zH&MWAxNXXiO3kS98r412kil!Xl@b|o#GU1}U`>r~MA3=4nyw_VSY1eUdrG`;^)sAi z@ERhg7`z5sAno<^8~8XM-O@hK1Qoo7$Bo|Fq6M#^Y2}bTCX`iq4QykSI<8X@gX}%s z$j8;=NLik4G22t-`?TOSJV_lJZDLahJXsld4eXl%{XwD7lKq^$qeF0P&!7Oj2DYUm zpW`(=MTJ1aL0b$9g}f}N;&8&J~L`mc@1AHS&cJb$1<*Wj+Wx6 zro=L>RUvo#z-!?89h8cAAzE3U@bOs|)K2+YX~k+i@EX3Lj>878;pku9y#A z!|d*_+3yk$VO{VVBmt|_-_Gmvqka7yn0EVHC>+5@yasY~ z{t2Q4bG^S0M*?2M&z8|~<)$bmwv^BFi+N^$j>l%=IUKb-{sG!vENSo>{(d5v#KJY} z^!JFtYxqShlY!5jLf?+~)94)^@fuifl*U#KVBQo+f!pZ;u+bTCNvpg@08b+Lyp}+O zF)AhpH~==%tPaJ1j)xLaU=Y`Z5UDD!fw?YVm4nv^uq9PqBOsKyh$-ZU6yP-iN6W+o+wv&06k5oFTAYhdXkUL)8e zkzpDA&=6Kwwcs_dB-I;&Lz3R=h}p^nuMxEC9rOvMT2Tn5nL1Jlb&7&~(2H-SxMG4W z1Fa!k4WW)u8|Hg2i|W64jgVAE(Mec5fkr|#;~J1A$yHt>BzCt^m{`k=C$}yoNe^Bl zE%fjU)Q z19R{i06M~9jwBjp(_y5s^|Vr$K>@E32CoqTuR)7&ND-XTh*Z=Y(eQ)<@ETa|Qh?Wp z>=|45o@=0q%;aGyK@DC5Ww4;=7P3sq>^}}XIRsiS9uN0Y5Ki5=7pkx4_+hU;GwnT#YijmTwwA^DBQMaAKJN1If@o` z)4^*Xf;LS#74b{Pku!$(5WAviM;mfDRbB(-;59HM;jN;|JgY zYew3_RRM5J(dg*6M6_rm-X_4+ zik!VyEY38X<2B-~xT;3w7#9qk$}T{+SUa9WJw3K*V5KmYBoT^e5Wf$`8H~4SxOAmZ zZs^kv$F0Jcsx^U;IALU23}k7Ox>@8E_ao;VuaOWa_M)Tz8?TYr^EI@{!@lqF8b}!v zJbIVggj7suPH1rVv>;8y_m;hvHQ`r#tIudHqCE+(r0V0@5@wb?p~ZfK*FatT=eR<^ zbR=3uRbC@OVykfN#1id->LxxclFsoOi9G>Fid;MHLhYIoshmjbePRcB0$TyEfoTEn zBHj^hmOd=0@)`-Fb~xcAPg2GcAMqMV+?kSuWCZNGVlr zC3uY#S|ycEjK!wa72n;q>U6}W*9xTKO+}lWXT9J!{T0= zLQs^r`FyrmtVA6TpRd|;9&`XUw3&7sla3}auqj@?Kxjd^Gm~S2*Fegg5edyy_ue`J z@ERE!dUYI2RbB)0Al?(wKxRygpZsXtq%eAJs~o%r@_U%+j2->ihTes9oN?+%NP*YL zBvn(HrtDsBb5=?d#Ygcx(2~ut`i$T;vH}Fq!PURVYhW(dfY-?OQWE&&lq$@2unejI zS+A635zAKyUL!jyiQr6t*U0wa$x5A#C<53U^jalPCdU>Onk-qH?J$U?d*&GOIU3}W zs&%~C4v`@XUIVS+$6mw~cm`vF*FcT53cN=9n^A$+$hve@UL#xOHF8rZ0k4r$3iezRj5PEruYt6kE6x#V6b5*WoSRYQ zHF7aEcny?+*U0S&a^N+vl%rI6jT~9#%k2pyt&A$Kky8ow+^1eHc#T{!mdLe8x&=ao zO>LD#3loH4b&?TCvzj{t!;URPJq$Hp$?JH@fvxKyjc<TYO zB64u?C+WQ2Ja`TCv?zLrMo&U%Sy|;Z^3jNuYLQFxc(mhs6eWpKX<>)BPSkMaTl6ws zUaQr+^I^I_KSI%9zq}~%;T^2*olP@AmuPV>mV(#F=LO(33Sn+D&h%7%gbiM!AVIxz zyhb6+?~-#1Hmb5Prai}N6tMRNH>Ogxr_fCaBITsoD1H`QiL?1Xcn#$C$-!$B0%-ZM zf|w~&PZkKpsX|k6uZ;*Kr(lBTqJq~b?)e%zeYbp~(56Q}V}`{9jBRbj9!f!Ar*xn` zc#UEdcT^uc!msig$m_?OSj_6dYapc(a+H&TM0E^i>vCi!&x2=s8cL|e3a83zAk8ak z1$@l&_#AvAEeeZ!POk`WL9v3pHx(_FJzv9&91Gsoq66cd9VwTfLaFi^MGpE0c#Wb6 zXH%hOOPlZn5M=EMOkB^yhbrC2CqS>@)|`#34MEy*TB5T z%<);21014eiZ8-7)nCe!tGouvKH@b>6)t#B>Ga3Ugb4P zB;^>^X;XpMzYusbs`CHh7H+7u(Vxx1cvxax9%Tq8YZMRej?c zYsE;b@){@|L{D;7tU(XXP()niHINHl1Ji%wH7Z4Y2|1`=8LD&<@L7Z+p+Xo$>LXqQ zY493^{~KPT`9F9K!v6n&Zv5F*m20)6JRYY;&$T-&|-e zHkX>q&6VbX=E3Hn=Hcd%=F#S{<|?m2@a_{5ZroQQ+_bMu_~O11!p-~o318W#ZTi~2 z4B_kh{DeFA^%B0hZ?x$b`vQc&?F$k;gh!g%7yhhWp zW`9#nYja0kYhTCF)|QS2KpKs$Z5>wv(CBDo0nVUy^Z?rE2c|)6uV-*Stxxc)yoO$^?$Wmyd-ZV%N#AND>&NJHeVb9B?=Xt>oxm|@3Yp$P3+vnL zC4Es>(ND^!^sUsZ^)%YG`X1vQdZzK4dY17ny-x7DUSxbj&nN#`FQvbwPe|U?7Z`uj zON{U9TNEENWT>Asl*pGG62?y%M6!NERzWn#jZ_0yNjHS`Ohd1LZBTHyhG7oRAS6o+ zCaK)eBvHViNEwXAg27@e8cfEDK};SraMVKvjd9#yFisdM%&QDa&T&H<^)m*mamJuE z&Kn~71;Yqu$)Gc?7|h0XgUz^U&>MFQ1p2N)N4&w%ME|ToME-`MU+_%>L;qcaQ~hIu zh4)i~%lI>c-}tz}YkbP!Fuq}E;k{|d8UJc9D&8^BRqq;-#=jei>h}zE@&|^0<28(C z(P5*MdBo^d)EO1QDz9Pm$*R1Dafo@TagbT%HH>a9-595{j73J3*Dx9ZZ2T9mVT?*+ z#xkSIYZ&RYk9Z9uO|xQ*GrnS!v2Qg>boT-2xZl`fdeCT~|Hw!%{n*%K`iZe${+Mw> z^tiE^{&S;F^R%(m^sJGmf6>@xdezuz`i-&O^gE+o^t!Rb^oFs^^p3H|^bcdV>3yS8 zUF9`QQ@kp#VQSTpO)hPf*D(2IUeh3@%4?XWe8g**!t&3U0;C&E?bIr- zVUn3Y;x$Ztlv;D#RBvW88W9=x9Z5mcp8bIznNw~MXjlF4qSYdq#C%Wp0M;TQnGQ3j?lY`V%kWIAq^QWnf3rWJr2 ztL8D&N%N>_$86A_HIFiHFiXfcnFsV=H^=mMn!62EUc)@btnwP>eoB?s0N(MSnJazR z+@|}H*`==X8fIJZEps2^9Is(MVxgJqEDZBe3*G!Fi%WE+rHN0lbkdtGY;%{zqwKeE z%p?ofOtJ6)Xh_X*3yqPoD9qy)wfQPb7yVj`)_k3%q+JKTv1u{uw-K@CtcA|J!J;?c zYVnh9vzW|ZvzX0ySQyN2S}f+fEqU7g7Bc4t7OVLwi-PyGCCUATWsv(z%MkB5i%|J7 ztKWRSRYkkNDyLj#?Pq+-nlN8sjnJ>Osx@s^pAyk>&3bFnY_j^~0c#e}#uPVg9pV

%<{Pae=FeH1EuXiJnQyjEnQyTYEMKvXo4;!1TW+_e*mqb- zly6%{&CgidEH7J!iLY4uEw5X9EpJ$REN@x+W$#)0EdR20TQ0CsNf+7Z?EN;Ppw8B5 zIcf{b8f{&cOKeTVJ{#52Z)?_(Z0&rCjSW151z>|{;oBr)p^XF_g8~pEsue;^H*HeV12(!^O+uE&9 z*-VyaZ5qq-HiP9Qo6hp8P0RVU&1m_X&0_h7&1v};@Qx2`Hp@kJvgDv$M!wAMuyoq} zZm=gUH`-Z>&)YMW+w57(o%X!toA#XL9(&R9 zL;HZ`r}jb1BJI;Jd#9Zl9Fj%I6}W0-Nw5hOJ@TCA5i+N_^& zv|2BBbXc!&xMjT#9)svGNEnVTfEe9?F?y{+N1s&;P($G`(bW!yCgh-4qmEW~+(D6~ z;NGVlZs}DHs`Xk&STN%tTW1|K>%2q2SaZ;=Uv{vqUjx!{2e6LsIY`zYIJnk_96akI zj;Q9Rjtu{K2UGEqBT4*~!>)SOA+f&gnB@P>!Q%eI;ZwZlC{q9F$guZ0U7GWpWch{8 z5ynMMgZPkBWIgPZS}%4=#g{r|)=xR*R)SM$ZE>cgUCur#+Zku`oO-L!$y1A*KE2vG zK-M_bR+E!0GCOrvt1}|=J5}tkQ)Nv#he#PGT~-9ZQFbbCzIrY5b&R+WU zPNQ|rnN)8$Cq<{7a_LzB9XC4-np>O}>upY_^$ush`aWkH`}f86P@KIwE@pNE3>qSI!5382TXogwRQoB`{3u9Wql%cMT!N?Yq(a`I7E#@ghf zYFk}-E5l_ZGF@dW-&L_nU13ttHEs>N#(-@M^9EcV*@%l^n{>6Z=3K3c1y{Fi&Bdgx zyJWg8SHE`0)nngvHQR1-wb?%Jl8JA2F*RRtsb#mj+HK!)#WZ)j)a?6QUHpe!9kw62 zjGRYY2F@>CJ+^0Ey|(9FUAEu2n55sj`l+wEI&FV&$+UlTkyP)xI*9MPMu{J~Oq`Fo z&BXKF&BTLlvaQ}tw0*+O)qc`Vv0d&a*{*Q++pctz1g-8qTc_Kt?srF-G&ci~2GhoM zck_jADnN`LgWRoEsDN&`-RpyskJFa% zu*5}=%U1F<+bbToZP4Sfjd;AaF^}JNwI^UZ?g`p%^LS}r^Jv)L^{9A{dR(eEJVO1S zJ$c(-0du_LnUcKgDcJt*X%@cc8RuN$%?Us0CGxNI4%wQ#!?qT0P}|`hvGsc8bdtA; zC-W9)a_@vq>7Ancy+m=)tC5AgN^aEa6vez_x~#Xwp7*xe3tqdt6+ss8M#0BmSA07A5CD#AeJ1;LKBIlwXRy!vlCl#%wtd;> zuZCq9q;37^mYBmj@6 zeSZ6MzJUD&Utaj4ubKC!JS3*Dm?MXQrR$w{p(+dsG+sMaske zh`q)?NUitB?U(oo(pG;&(CxQzdi`o)zuzJz`kQDJf0LBwXK93f;2?gt2GND>R)4{6 z^Jg>;MEjlg2b6PuGJnZG!rS)uu}=HFsvG>H_AmHdvM>6@>|6XA=B@sm^fCXG{b&A3 z`;&eJrs2!~^ZB;ef(18YpWg0zu`OfWdJ?!0h;JAkMraAd=r1XqSE`K$P7RusQAx zbklwipb8!g^r#*U3{!s+XjA+ukdpj5;B@>kFiie)px61AfZOp-fT;L8Fpu|vdi*Oe z#`+MTM}Lq6U?b{a2h$FDu;fq&iw;e2M6U~$9mXJ;ZVr-Iw%{1g6&!WAgBizQP{J4v z<{j4r#~jCllaA|x1m|k7)p;^FN?s2(J2!$Y&h6loV<*_;JR3|fZwPkjZVJ+<_XJb2 zdxL$>$Ab#PlfiE1GeMH`+2AROll$_1{J>=Qfaz&xMHUFNUb{FNNfcTS8&ySAcii7K%7;4~;Xv86uJI0@!h1h)MlH zDCPWFXq^0NsObD{sNj4n)FEvP7ld8mW*0N8V{(AaTfz#lE!?hlhD%~kxX0xOz7Y)f zx+39jS2En^%7;m6{DzD;6!xn|!x80dnBAE=lhXOI*DDZMmOpxJ7 zh9WN4aD>GlizMaa5t8ESh{JU};uFn8M!2&Puj@pF$zP1vT}u&dx5$fBK1nJ#K()C_MrMoDabsfR4_3EM( zS3@-Cx+I!*eLPxnT^_Z#+M;<^N3`tfiHeoI(Tt25&A8|QG}uukgC8xi#ZjM7A02i% zqiwQ8bikF01~rA~AaIQ#*GN>a9g8*zk4M9dndqczHA>^GMaNvHqNA?uC|PkPN|S#s zN|Jp(I_~;Xbi#E@w4k~*DpTARZRUI}S`ywKHEO;SRZ;Gawz}_$PPx7xRqO7Lw!0sU zHoG5=wzz*14T_$KHo2dQ3S7@b+uYAa3GP2dxwJQ<{qDa+JKS$YDekwUWcRyKlKZ_V z)%~w1-Tgtd#NQXAxi5^d+@FXs+?U6g?oY*vuI3oW-4bKF`(rMSET(5FV-jE)a-bMy zl?jTEFQ#()fo_CjY-%J%=fq=9c{ZkE6k`K|a!l>MHl}qSN9>dnF|BGb=43C&V#<}6 zM7a^u$+lu5{Z7o_J{>c1&&G`I&&KG)&&90t&&PDaFUEqZZ^g{+@5Cn6_r!)t_r|=O zM`Gi`M`I56V==P$iI~&uZ$~5t#KQ#Js#I|#LMj7IG5ia zZx?do8Hp;Ma%A58 zl71mx(%%x7aBhod)OW^tns3LOJl~0ryYGolx$lcly1ySEb3YI#cpi@XLZCMRb8UTLrP@0yhM;DNKk-i&^+=4 z6R^doz@Dh^T?vjSoe+B_0B=ks`24F9Qswmtg=ac3rkqXiJ@W~v=R`u{Sxy*)rxH2M zM#7@sP9!v6NXR^2N(en)O&FNpPbkF?Bt+_m5_Zpz6HTgT5*F#Ri9X#636tl=gwgX# z!tD8V!r=K`!r}RSLg)EYLgRTOVe!0~P8Xr$~F+L4EgOKE~nvxR~ za?lEH}p*hnOas)1y|GnAx|hm%py zRC3UBRWjzeCMnh*Pi8&WCj*KF031ungl8>DC7w*CJR3?YHmv&p#UhGfZe zV^Y9>AUQ>SC`tA{krZlvmu&LBkz@(pO!j!+N>YUXNOpPOOY*4uQbxnaQbV2#Qf=M~ zQ%>T6)QIO;s?|$O3B1&lUQSQ7cv&e9a19>74X0F{((2|?3HD;jM_Nf)y(d#7!>N?R zyOUxIPN(eN8&Wp!7gJ{MZ7I3;>#2zM_LR(fXUgflJ7x6Vm(qB@n^JnepHg{$kTQ86 zPBjfYnNoY7N$GUIOrCleWqdq6Ah|TnR9%+#di&BAFE8CEk*0HA1@H`IddRCu)9KE%mgY(i zcmrtyEtJ;C!|94Qo*o3iQSgqWOWv!}LCV!>mE^kggm)o5=3Pvun9J!=??#&7JDqlV zZb*-NZ%j{mZ%R*jznt#zeI?!DyDgpb+>vhgeLLOeyF1*I4rTn_V;PF?k_^??o@pVIGXb3> z!vm1P1&o0|SwnnieFi_8$_RXxjDTv*h=5=SfnJDxh0Gv+kZoiSWXk%HjLbKhk^9Co zLC#gcIj+tqeaACu-*rGbK9g~3PGxky^-Qy1Go$sL$>@Eb%NTrL2HJ5;#^if2(@c9P zUsVW#3pf$(YFsr6;m3`9e19Th0#nRsnCUWt$o6*xvID{&XG@AlvkB#s*h9 zPcO|4@MXC{p({uCyK_{(H>XoYawLB=NAbsVY*H#G#BcB5eB^kPd@igS$c1#*=h*(4 zoP>WON7OCm82+^!*?%g>^l#<-`kh=wb~-1Pe>F#^+@7uEoMTFUozwV#n-lu~lH&^gnhWsW z$+fB*@><5ld9I(C5Bu49pP!$%`6YR;U!CvP>hf;CKJWM2^G2pKFXMaiEJ+}51%}bD z%jEGSo;L#1Ce9V73->=`zi&PK{{z4~9?UDWKg!4bkK~)UkLIWR zFXXf07xQlMp8$EhnV;~#l^^rJo$r+WE#DmYdw$q|Q9-~xSQuv26)1))3!{prf{5B& z7}Iwb2-=>4SxPF5`^kk#KeIp<@e2fi7o&brq2iYnBvfl5#c&q-1D--xz*`s*1_}{M zv=HLO3zWb>K^qt;v<1crt$~UEgT4ChA*%~P3RpGu))R+Sohw0TlHp@Rqwr5 zTe2jpxJfpa+)XG6HPjFwq|gHd2!s#_By<8vAPJC!gn*uX?>l$qxp(HiA8yFJA7H;o zn)Ux^&p8@vB<-G`d^yx12cUpF84Afu(%zP5Kx^db&{}yWv{9Y|ZI_pp@06!Od*xZs zQF%6W9)>)=lIKAe<%Q5?c?on&o=yJ`UPE3EJ(pKQqZF0Uctt5RQBej>R#ZV#6&27- z1z0^t0Yb3~ZRt{lv?NIpQv@hbP>KQr6~M4Yok9!i#8?=^;8(B}I7qBOrN|YUa)lx$ z)u7;{TNLy>s{)hbRV+pN6uiO?g($g8L4f)ccxb1B0)3{?f+rPp=!_yR`I3SGeXD?= zs|p(QtAYgmsaRb5Ou>T2E1A#?r8s%6k^{|CrqnD@vY{wtdR?rtvLHj5TAT+v^wml; zSf><0pwd``SMnf&QVfxmlK%iUWJ+|NRcR`6D&>$z$%lN(rJ0>dDYR0Fs_#)Mpgv`+ zW<-h1U$0a`o0TePyK;HuUZn>5SgC~$DN`#yQ)E>(kyP+kI4XV$MI}wAsVeGVc%zP~N=sp> z(vW-=rdFs*s8Ojhi!?CIVN{h?xK$a9E>$KYsLEo%qkz&^tFjsIs&W{cRZFtAs;a7X zsPY)QRoa5Rs$9ltRT1M06*}vjs+jS$N|I>9pMxk1kT&C7#m#bO1ux!mhsnVQBpq0Y`dr7kWzt%exisX2^mYFXZGHH-0sx*+quy1MFt zn$7rC-N<;N7BZfz^Rpr}-1OHpJjNJ}wSK$?0HZa!k{FGE0l&d83N=zjF^p;8H4=tU zqhg3OT83Q1hrtas3~c1(=wM)@QKM%#G>!GG8UtfkV`Qw>a2fAvOpI-svb2vhF?lC6 zX2uzfg>hbEWn9tZCSTJ;F>h#ct8Z$enRhfx(!SR$X5P~*VNTT=v!`oQm@~D>%sJZf zw0T-=;R0=5`CHml=0a^&(PC{*Zj9EL9IH)Z#%a;@iCT6|k~W=Lrp;tlX!DpjZA}$J zn^>jLQh+9HYvC=TQ#yWzo zriP@`F{wH&jB@Ciu*v{K9F0tsE{dhoMYCFUajXtqJj<_(&+XPFvVyt^3R*Rk?P>1zri^+l}t`U+OOzL=E>V;WidDprnu zMOmJnomQmhmR9PkSq=Ic7DZprV(R&YY<*b;R}Y^?r^nU`^tCLpzK&(oqgjo56st*( zWVPzCtPVYf70}~Y!+HX1l^)Mpr?0QstS97e(N}=m^hDN9eP+dOJ&AQpPiLLdL#(g$ z4Au?3qVA@i&AP1zOTX8PD(~sV8ISa+qQ7CxW3(YZ=XC>*HO;_h%`n7f%{1V178!)B z6vL9*G(&A=j)7QSXrRKNhL}Y&)E0;hDWJqqo-H>l%~BZ_S7{7V7{rjX>;`dGi$TV6 z8+2s>gQ%+803`PqBsn1i2H9^=u+|tC#n_8Gv`{RT7Z zV}prxz_2v$2#j?cHRxF<3|7`jgMsyhfmC(Ypktjk7+K#KqS@aYqS$v0%-Wv}jjW#y zV&Ji13HzC0F?*D;u3)S&hCRtxT0GUbls(ND%bshDgOLpZE5{g@muD1$1x8F>kuebl zFfuby#Sx*Nw&OpJ2q}7b95k)JO#o zrug)6rc(AqlcDSlQyF`bsj_H>X<6NJlRPikRKrd&DS%8MriNW4yTAuugiOv4O6jyrRq-6hW$}9cFq+*9nRcWKmYIdYKnlr|%V~;Zn(kGa; z?1|0rJgg}QpZ_n!EmB1HED}2NX}9Vij!bLa}r@tBh!NAWLb1or4}NLZICzw7}g+J zs4%iYgHeqN7|x(`xG=OKu`pp2qoPJ@VR0HQtU9kHt)|r?C~UU?b$%G(=(41OJr+%6 z$Wl?Kd2BIrez#aSPb}QrzbsbHQwuWlxkZ$YuqLEWurA?F zwDRiSu;x`xv8GmMTQLPWRv@R)8qXzImvJf93@+VTlg+b=(*;%l#xat)Mr&M_)tbfi zTGP3m)=X}CVnOoBsRb1PM$*gZo%$GKr zY88!%nVv=!*W0M(4m6s%gN+t$MpIo{R+E*R)6~cwlDWPqx_CoVar%2r1-z|Ixx5`sdA!|C zg}gmYMZCRD`Mi&s;*$?FEloMnRKh#jRLVQiRL1+fiB*5DDJlPaQw8rU81=Z;BrLq% zRLQ&3RK>g3RL%RbiJSIIQ+?W_rW)R#O|`tIO|;s-o7nXeZAjkhw)ng$Hgw4}8;ZBU zhUG=saJ)Dho|kG%$jh)v>vC;GUcRjm1~v%13LBYM1EU%k7}X%ya*Ied3Jh&fc>){6 z>$Zt`K^wN9*OpM-ZC$`*-ziqMnXSV#x(RN|(JUcdh zzTL!IY`5^@?PlHzyOo!0k1b8L7gT23lgkS1i}@AyXnw7|kq6rGg^)d+&$Y+%dG-Xp z*sjQv+2i;MyCGX?U&`0m6ZszdGQQ8goZo3jXLs8(_&xR%e!rbpJ!qHI4%y?XSJ{*K zYwT(Kwf0p0dV5*z274xdn>~xa)1F!UzCD}2$DYgIXD{R*wWp+fW-sR-w-@nG*^BvS z?Irv#?NKFH?Unp%_A35OduicqyD;T@do};Aoe2J5Pt3b-UzY#KF3NpuCzcj9llhg+ zrZQSH6-G7aFs8xab6{wL*NjXPG&5mHgT)s&vtb}Zz;A6<0qxB~eiw{x^fmLVhng$% zMw%u3b6H0SGoZES1|G!ut0e*@BN8NWlR|rQnFeTzJA!k^Z@ZmT}rqBKXolNx9&_ z6?4$~uPNJaIi7)UwSLCmBCgt@xNp*wH%IXm(U+}h5 zA=u(<5bSX3Q$KO?1P7c_!C@y<_Pr6AUYFH3Ui1j}5FK)NfsB;Qq9Q{*xWid|8{QWv=jbQNUa zT}y;Sm$91UvI-hp1OeM+5lCH$LcJ?l*yu_T+FUV0r%PAqcC8S4TuX&MSG>^gN)-lN zal)0ZBw@&r_#>&g+{axJd7?aCG2bJbV<;94$x4#OX#VLW3@OQ~>dOLg&tmIC3#mLlPF z7|@v2l1!W35>1=eQVs(gWx{1Gy80C@c`Tr%0>(EgVKAc#hBAm*s1_UyY}CL=1`XZN zqD`l^mJ6%hyrNonHnI*zGC;Rch;>Ja@a}{{ zqT4JayBmd&TPI|=wJ_EZE#kRh3)yWEirkAuGPf0mJ4`UXky>VO>xE5jL1nXhsi@tZ zTR-BC6|Hv1h&H*Gi?+JsL_6JpXrG%`|Diio^pQJ3^r<^hblAN@bkv<9I_6Fmopi^G zzHldr&bjkN*W4MRpWSJqhwgOI@9rGYAMRYypYDXzr|y#U=k9FLYn~;dnVuriEKi|m zsi#7e>?svxz?eq1r(Bflsf6JTNoI+s8U{D2V0;6}uk+xt>pe^97*CA|>p|xeJ=v*b zPb~~&V3Gx%{A#fW6e&ESLX`(E(!vOb-Xkydcrr3uJ@k@x4^`CVA&G*X^pcQ=DC+Yx zh=x6A(P|GxwAMotZSu&g-h;7@Z63O4yN4m#<-umX@4<;a@Du}QJkj8J4_ow=C%yin zhab;o? zf;TROrT{3$>dh3N^P*F~@n(syc(cXddUM1# zy{eQu-nhc=y}9DY-aPRWZ@w7eE6N(}GnYm93dG}l#LNjkLgDK$k}=7*q+*J%NIcz_ zoH^fDB7W0XDqiR#7cBNkGh=*Z;sjq(?J^%!lr}4-0dqW>hYD7_WCmF`+Y?5uuqb;*~co{;;XLM=37y^!$(Wm>r+(i_m!r9;!7(# z2xA_HePr=5UtQ@rUk!M{SA_i0M-$)oMb$s>DRO`HF~yI3bnzcPuK0;hlmC~mIBRUH zQ2ctUKs>3HS23kkDxT5G634cx#Br@!abl}loYb0Lo!Y7pXSXsk3R*Sd;#Qrwy457E zYt@UvR-+i%Y7i4z&0?rEO2TU;XX;yJS=QDViLEtO;%F_%^|gWxZLLcs9j$Q^e``v9 zS8KeayEQ=)Y)zE(wI)gWTbD^P+Y(E2+LlWS+W<*%+X_iVTWm#DTe764ZCPzyTZ#m1 zOO>G7(j@q{bV&mYY%tqs1+2CVNi&RcxZ3h0E8B`By=^6uvu%coFWXSnKeQF+-EYH` zbJ__-ymn+Bza4^+3{0xDogvY;uSmDIvn8(fj51$4CAqJiBU#g~%v;~CE8N+>tYjaI zaeUm)lN@a4N>0Kc$LH;0$(eS6j2``0sX=B;2l*Ozv1(F{Q&GN$7}&K@5u|t-~rw?=VYB zI!uzX4r>{zV~G^sktij1#7dzKQW2vgPRfQc4o=5Xsj6d{RMU}~uj@#XS~`|X?Hwzm z&W;qRt0P(J?f|5|jx=d&2b@}mt}f7#A?@x+m#*x{l=gLGN#E|sk$&7!C_U0qBt6=Z zFFn_>JnM2tsq|`xqT)tJLHW&&GU<;UmC`32X?YQy*woiLYoy~lsW}s1Fyr-3j5M|r zD~<1Ls7&Z2fh#)G@>4r;(yY$t`s_}EG`ABkE$Adm3p}F7x@*WS#yD z8EjP4ukkZ0-tjN5UGLA7ZS<4#w)(SV+x^+H_x(AtJ^rZj1AY;3!cWdV?ax78hEb2} z{+{#@BDf1d2FUsHYGk4yc{pI!flzcAyOA6Gs)P$-)gD3Z+$6w8(cqRW9msVpT> z0;3nIJX}ChNC=e6NP!9&D?lq`2P$RUK$T1wsFsNW@_I=iGhY>`m8khv64)F55fqGeMpib5v5SI7@@~o~vX;CNuR1F5Q^H&Fuvb6!IU}FFy+Y~^_ zwg%9$T>+fz{Qy?BCtxbr7r@Itg>jDq0ix_efFipXSX};FfFb)mz?A(RfMj79`*@=Z zs+iPOnmVQp$*3LRmwXPDbg{B-6VDFwU{8iqj>5p$EV945XxU@BlX53_n`KkFrG<;S%>~ggu(7y%2@GmrGvd0- zt5doQk?GyBFn|#QgBMHXW!+X;ZMU$Zz8hbT>n4^Fx|8IT?$T0fcbuHj9WR%3FUyp5 zC(5kJ~Wpako279%|gD{*ql${IO+WxbrSvR2MoStl2*1m%jAD7khe zTCQJ-k?VW1%WOUTy5=6T+|jeVxU(lOInYB)>+T_>t?Z%7gFQ5PZx3DG*8|D7^swbS zdZ@{JdwB8>d${ubJskPRJ$(709+CW5PbF}oM4JIc45M&qq7|h7~C7486qk)p(UBd5J_Qz!3|5O zL17P36s;k;q8)Z_Izy1cA7UtaL!5%a5L2-#RGGde#8JExVk_2%Sc**{rFct-TC+36 zRqP7!6o*25#nF&J@mWZyI2jTtz6>>_T?vU5_d^oJgV5s2r=cauulK4IvwJOtb9zB= zUN0pxs#m92(yLV@_14xd>rJXi>qRA3^coeoUSS%(HzkYID@vpE7M9a{86dxxnkDYF zDAxDtt2g#8QEu&xQEu;zRqpOxsyx&iuRPovr##x5puF6xsk+iz$Gh4aUwET8CH-D+ zqVi#{8F<{A3q-e9(td{@RCDKJ3FNpY-9BPy4XSa348; z6pUlM2ICl$`cu;<_Y;)U`pw1D`%|;#_LG%y{q-e@{S8W>e_2H)3}+PdGn7UBbY)3D zO*90S>^j)4MTWFTL)YM?;1exOjbYoJKAcc4`D=|HjS=s=n3_<%C& z#6XGa%s{#7>_CO;+(4!3{6MYh!azdqMJ;i#0R}d>D#joW#x?jV-Jn2a7!;~*59XGAKPXb&8_cZwaZs-MX;7^C zWl*AeG?-lbc(APQ_d!%e#E?QYX(%CO+K^E-bI72YKcr1wIHXf89@45}ht#UvA^1eR zA&aVT$gCtEy_KQH2_cQKN^JsL4aIYR=GNwPYxzRz8%dRt+sxn}(9q z?xA?KcPLKXIYiCuA6lkfJG5NAVQ7VV(@=tX>ySpZV+c_18e*318A?;{8%kGyIFzbB zFqEP`IFzM6Jd~_HI+US4GnA?RawtcAX((HLXDCm7e<)x5^H72M;ZQa5*-)W+-f)q6 z{&2DSt>F^2cDPh+7*5MF4wtE|!{zFx;T3uI;R>~9xKiCZT%~Rsu2v5X*Q-Z{Dd4(c zQ2owuW95cnqTx3i z^`wy{<qg8lv|&`Yk7R&7BNp}Gh*do_f@7~5X;j|~Cr8~5%i-%6|LHag zF&Ytph(x@G7=sv#7>D?;@x~)2ASNPSN4$ZUgqVz&f|!b!hM10+ftZPyg_w<)gP4n$ zhnSC8fOr$}7Gfb{5h4l^jaZCWf`~!HB9su>t`gk`XD0R74sg z9g%^^L}Ved5jlulL>?j^QGh5!6d{TcC5Tc)8KN9ffv7}OA*vBIh+0G)qW-@f*MB|A zSC9Vp6#x*xC}4E>_3$L%X?R|Eet2Pc6fgh`B6fv~5bMJQ;hXUIxMwiDG6W0*5#YDL zYrq&_Eb#ZDnTw``CnKo9f>%=5)-l|9#f4R{m!NVvfeV9kVKC zXUvY6k7D*O$_1uHbw&B30#V(-^#A;u|9TreE_z~gOSC(>Ioc7O5FP(t_rh~VmPW@R zHbai=x*po)$eidTcZ^8WSyw7DvyE&X0aGIz2iuI_bZziAr1q z#L8o(v7$wb7DXX;|L5MApa1jTtJ{CA0#m|M!_&gk!!yD&!?VJ(!*jxO|J!p#g`>lZ z!%M<3;n?ufa9lV(oDfb7Cxw@Vmxot`fpBs-C7c>g3#W%O!kOW$aCR7;!|;D?#o>~0 zX}Bz09H!cy0w@5!rWwEjH~eQ1XO?;&;VLM2j~FAOLg$-TyGjSIhs$3IJ~dtARDZT3{XU z4)89p9@qeE1U3Pifi1v$z*b-zupQU|>;!fJ?*qGm4}d+uUSJ>aA+R6#2>2NI1o#v< z02~Ak0f&Jjz)|2B@ELF%I02jlJ_k+#r-3uT7rb-+yrg`w}Csr_rP7?9`FP3Bk&V&A9w)#4EzH83OocJ0gr*-fZzYe zBwp?KUsoU^5YZLU9kDW^Cn6XTis+5#i|CISh!~6*iWrUF?2OnI@qWbahz}z6MC^^&7x7`l{)mqvK92Y#;?sx&5r-lUM;wVb z8gVS*vxwvWef_J)|NmAXa!TaX$Z3(&BWFa;j2sm?D{^+^oXEM6^CIU*E{J?H@~y~) zk&7auBBLW0M=ptsiHwb08W|TEADIxD7?~8gEOL3|ivRE9j|3uCB4xk6Cm7-qF2^{BKtP9K_FRhzJ(qK4s2l$B}>cM?1BS1tt_@ zBm256hI`-1Ykp_oH$gXXDfexbk}^R4q6Jo&tt{)u10AecmJ!bf6fgaK_IO@MP}OrR z)XqnOw~-T&^~fPqHQ^yVHvW9WDC&5|RT#EZ@TLo2Q|!|swF=`?>lW+JwnNTI9(La3A5W6Rwe;LNj|GN`JK7 zaxMF}Yx6S153+)a;HuD5+(hgnid%7}>7&kr!Mj-b5Y@B~oNDN{|1FCp%)v*B-*n9z z%q8E(ZjkacS9&@LC1Ai`8+_nY-;r1v(WIBqRUA8W=)Zya^e41Wv@x0v{mp$b976 zNHt~^_GiL)^5ljCl--o;#MvQL^|}2pB-Pi zdA=Ql__p<(cl==Jtrj2hF!e5Ls*0@5wcl?3sO5Rvr@mPO zWAZHAPRdT&ET%x%EZu5ocb@bReX8zv`}asCed}8;5!dj;EvLICVH^ZEE|UHw>pEvI zJi0hb{GnQ9*k=;M6y~{hac6}8e$SfV%8-!4qwW-1d+U2a_JDa2Oz1WVb`QQGhcGJq z5JSQGNt!DgD?96?c&BuhfiniPvA+xFi*iCvK?0g;I^^6DxYFH5pbW(cq8+a}lmBV% zuhzpej@MzvH6PL30UMDH^eW0Z%mmCu%=fgX_cTb>ab&wnSvM;WA4w!{Yr0$`8uHK-l)8|n)H2v5#rgdByOgjM1P z2?F9@l%BmY*9;tFS-5Ot|#(Q z#&-r9!1drJaPvRU{#69z0CE-TEV|P4J6ehU9gD+8VVkf&;y05V)ay_tRKr-oKry83 zgbWwE1< zU~UmBY0tZ3xocq@JztY%v>QJ%*IG|B?{$3cY4Sp?*_~$tXK@R=Y#hCq*>DbzL6oz)sq4mspEp+@glL@7xeCe+Yy1*0>j0#iHRCo^btL>jwfZb~vk#vVN zolMh4r7!5QGz(@oDg@|m3FaYgzH5_jdehpDQ~v8%p2uS>Mjk|cjG2lq!()ld)IShg z$!LfLIT>1}j>%_kVDI4Ma3wsspahnnd8T{|e7Tslud%jC?3m=JX*uN^=VQ0>I-d2; z8|rM{(|LN}F2>DT$Z^O&4fY9&Q33HHiAjz#X{;zuk#8}79QZpb8x@PyBSqK%cw)ZdYdTSTBEMI=B+-LcW2m!d2r68dgAU z(A$g=!MmakO@qPi8}_Yj)d&0_ec(8_7HL6lMa@OcLjON*!3btA<~g<>dlNVHpXUB* zJv=#o65dNh6IYY16dZ*{>7?DJeNX#?ZlF8p{qzr@ISdT5jum2EWWUSJ<&EZ*@*eZ0 zFjW!~o|Hh+1gTKALN=sL(YXy0Q=#RW^)>4pE8V)?Hq#bi+iKfx$JslZ6C4;%orl>v zABOAy_MZr7yOf5)uD^TM2J3rY>+9>kIFyT_U^Zd@z>On)#ri{jtxePk4ev$QVsddc zglDFrfPRQEd`?{^A8%J^r$Wyd-}J9nUGCifs(=5y0%A^Y1bBk*3z0+mxS@d|U>@U5 z=8X|#3${!D(0*mjX_gI?fCESr_BehFOu*ftJ>Wl;^l8+F(LPjn&~ufDqQA>dM7@vN zjBe*6aK}mTKt0MfNXV*Zzb(iYt7YR9*1$29%`nptYm{<3tbpT+=RoK9-~fh0jN_x4 zL~U=QcM(g138WmM&$bJ zos0HiU}xgh_D?H7xyt&T^B(68f0=lnYeVp?&OdO0UDrKkV3Y0>9tIqb>ct+UDj9b< zU0k*RQr=OY&@MKI8k<{sS{-ed1BSjS+|9gA;#Tl0@H{dH*@Vf#KEXc3-y~cn{YXAZ zK28o(P}F+*XnG>_HRDb8Sndi6mAjSu5%(^CNX!zOC6m?V#%kjM%MW6%~#Bladcr z1)7hv=M4vpIkwkrsrDb7D?5iJsNp7Paw};l(ezix6H0sVM=%2WEAbCH@TT83BF zBp;*wxa|kZhznu9hEl;7L=RD!uA0WTnkS+AsF7?zJC8f4lo<=Gvu&@nzS(iYFKapG z--ud>`HPyv$0{tU^gvzUv+l&^+mwS)GUHD$7kh!?Vb$`J#Xi+N^)=ISySRN#0Mi#l zPs4tV6H&r!k0{%^IfNj5gFTHCynysy`Vf>5HJSDu@&R)c>$x<=_^I)vwWP7W>74z3 z^FpWJQ{h#$`a3k8EBwiU+JGc@G%yH$ibSHzvBgj~YZCvwq*yjl&2Eehoa%C5&y(j; zK9Qa^(i)dr21t#{5%gakZ09e?6V#`?82x6`&E^GtVf0aGBljnvT< z+I7D+;O-rRzJqy_Rm2PMF3IN6cU#Xjsd!IZTU~$no?td$FOk*sPRP%|cijqdP#>Td zzVyv|0R_N(i(Q1R#Quc4i?6^Z6K0bIc~bRYd1q+m6%oUF_2 zHnyHOmiIbu8BfP=6s#646s1e{OFgpjGLkY+8LQ-LkLgDlXvR@SuJISsHS<)ZyIM4Y^K0#Wh+O1Wa*v>tzs=%J^MTBJHQtm;Am>_!vcN?!(@IW{KGitwTQ?+~b3ypN+9c!xn zX7g6pM(;*nPRFLs0e?#1+t65WA9w&0LDG_bqE6J#qvqQ|--OO1L3T)Lj`5x89T#8` z9%0w}XXCPo&GZ=ddP$nXr)OGPo342j{*nN$drJ45V5f%Of0#CwCgdvktJ~KHFSBL* zYT;bRk>1(CPd%^t{{mjUawo?`c>>N-Bxz~973jm549pGkmyn&Ylr@E0$kp%`@-%{n zf>~m=>@}52yHI!8^0AFT`o;6i+vHp2>-L@WzZvKXVM1iC*EGpKCio$J8RH6T9(NsY z2H&rLWU9B+Hx}3@v~6zZv|sOl3>z?GS(n)BI3=uJ-!hZK{Hbqq@CU1|`E_?ScnMvF zEyXe@YpA2CvuNM4Vp)}(ZG!27G|6!o5uDBcQchKZN-OuIsmZ*>`ppYS|D_MnSktuL zZfc(2ob7tYCu=+1{+r+6*LQ8{3iLPz-ow=6o$@SY23lZrHRA0%EvE@}Bs6tBdn4~T z@0qYcbxGT)?J!O<5{y?ZA?qS*S<6^oS}@no99e|=9;3y6j=g~zkKagoKt`(aDXmlv z_D#l3#v_<2cCZWCA97A{@A3Ym-4vb@K9kQ>-Uhwed%7p4Zp&5c8S9{p>8N&)oD%1L z*Hh1tc7=bGU)miCE$E+yIztLEJ6`(cy?_GPzjURykMl1=9ztm_l~^@H&aUP|vZVH% z{)Nb|sr0rJ+%wjGEXET=>)3}VB#M|if%66*?Wckl$n(ev5`_|BZV%DlhQtK~myqJ6VhX2}ouo;$M8-?u!$ z{_q0Qf9XSD?;$JvxXx{4kv*CA%=AO&CxUO&}ZD2N*L>NQlv5v4;bMJ^j z>2(=Ju|rvkqqS=aAbwcy^PGZ|ua1^=%eG=bF`R%1|-U}!IeHJ~HZii+->5v%O z#eB$~%3IBU6P|62(dOuLY#MvE-Qd>wKJi^?ceOw2>hIC_jvl;?Il?CD9`k2PJnBB#5G-w3yPiVO$ky38kO@CcTHgh5iS$kkQ6^pPj@0LaP(f5I2RCP9l;w zQyEYfH^isPqI71*)wcWo8UAP8^@bQj4rU|$9pXZ=hA|B_4c&m=j6Q`y;HQvqBodiO z>7o8kYh~CK)m4Z^ie!*4U*V2nJxpY7wSAGUzwHJ+gbF~?^{VW%(N(}H4wdr3= z)yZ}VUAKIbS|i&kIwt!g{F7JC4eENA^#eT@QKv9p;a(?=rcPqM%NdrwrQd0~ZF}sD z^kchR)N4ayv4v0w+9@4W8TD-AC+1t?bE=Kz>l?Ob_Eh^PojbgtmbJ9UEFWi! z*Ui^UZb%C>8HTimiY9IImcGr%NAyFiZ`oa3B44gMq^h%hZrj%xAE-yYLHx6!OW+c! zl^oTxwhu@T+pYyg{<-cZ<1PL7&UoYs3>VwLI>kRDIia(fS6X_SGhEKjA9>%(7pcZH z&Ub9;J23ptOVp-+Emib0^LB&EyvOD?SBdV@nYK19TFXF-;h|7%I#VFj{{wPLlY%v9 zM)s^5yhkvR$St>m`;lpwCD22#gn|yoQKJ+(*=)IRk6D?V&K57B<9^Wm#s7cq4Z+i9l?*+UnMsoQlOtZ1s z+SdO25YIm3_|?`6?%aHGJHi>!7Z#kJRk^e4r zln~py-f40Xk&`iUXal{R|HcbQ|D_LM?6e!bW4$fX-=Ntnykrk}MkO5R!i>S?5;UZp z%(X0;avoV`@mjvK&JX^=b=&CRTqOK2f>cCj)78)f{$ViImEYqHQY`A;QK+Y+13H4? zT}+IAoolMO1%)J!S5=yiS?_l4>pbtTM}C4i-VhIs3T;7t+dRAL2Vw*pFBWPOJy$ws zm`X5LN!?65YXa{*@hMB8;~r`;@(K1eTm>naTum9G{zCnk7EcedwzK)%0`6Y^#FxH# zFQ5RDuO!zMe;QI66K&r$?{vQI{K-AqJI$BSR^xxC>s;@%!AC<95DC7GYR3?WHRSd5 zeCQ%{iB-tk#h=grLU0bo+(JUo>&Q5MQqxoPb=^^p&~SGEH~b;-BzZ4yDZgKQ8h1~4iH^4q@_Pn0 z@}Cc41T^p+t>th$)=d(9|#oy$<&V&dQslyW06j zSMT6s@((JS>>CCwzChN!jBuiq%<-#b`%Jqcas;Wa%>ra(@>252G$7~t&y(HzSNHP5P|>5 z_1;P>b3AjLWUmhM(l_q~6u@`CGYh{0iAE=2j$uzy*3qquRm^7g1^#&cH!{AoO`W06 z)FvBIp09kp{u+P4|6A~|yPZ4}^dQOLB%imluy+b-3*ABvQufmKu)ksd#W}#cBCHW! zlunfGR<6{>nYK3hYzSwy^SIaE8r3nu&kb7pCNLXW0db1NA=NZ}-t@Qh()76#7yLsy-^z662SlI}tEHjDk@6p1r&^YI-^Ik^CR4e5P_SMzM&oz^>A&od#G=~ zDD>x)2i!h^UAkYrP*vJ#nL|Oie5T+3z>mzMSp-To z{R9-rpDnZqS4u_l$tsrWZ}WZIC|jeu)_)o;9qu+dZLQrYz6+>jxHg|sENVM!AImt) zUp4d)>;roTr})IK11^COA!{^*?D!XOpszywD;0oV2d98D!2~cF%mDMiLa+oRfF!UP zbhU{=U-LBR4X^_o21meE;A(IixD(tBo(4~Whry%ZLGWwvJMcbu75oD^9@&5dkQ5{h zNkmp6bx04g6WNP2BZWu>GJupLTaZEY9OQZARpe>pMdW4VS>!j!FOav8w^8#@ai|%n z1XK*_HRJ;1@2DtLJSqwK9QiY9DryX>6jjNOK;cm+R28ZLML0Zpmw4TqAsAmL)}K*N8Lm{K>dmO4Lu$`3OyP<3q2D(13eENh0Z}|qVv$X z=t6W68iTGw1x()3`ccKI6ZgdYih+d0+2fZ4-0lg8u3B41& z9lZm+4gEg)BlHpUar9;MwH7@39{N7|7xZuF=a@*$M9d7#B+ODw0%kcT6_brYV#+YJ zm^us{gTsh08jKL5#x!B9n0CxcOczFp@n8a->tC`~{VVBqzKhw6*@D@Rc^`8Ca|-h{ z<~z(y%$?r*m}{6vnBOo@Fn?mlV8>~*uy0_eU?*c|V&`EOV^?64v8mWBY!S8sTMo{~ zR%7eY7qE1!5Gy0k!J4spY%?~9U4?xIyAJyvb{lp#_K;;-@Dlba?{DP;>;vpw?0xKC zxKX%#ToEn_w+xquTaL@X#pB+@fw)eb7T1A;a7vsWr@(dL%s3lPhjZfmxE9+;_JQ1ITPsP*leRvygE8d46!JF}o_+I=l{yn?}@4#=syYcJs-{6nnui_8m zui$Ut&l6_g{~*l5KgT~K%*X#p00}7NRYDpegOEbVB8Ukb!U}?fAR@F7Yy=-+6=5Zz zldz8P9$`0O7vUgbKj8r35aCn8XN1#)vxF}RUlSe>{v;ycQIL_u@h>3#mp%k>9C0G? z4dQg-9O5keG2#MZEHRUqMFfet#3CY+C?tML^bncECZd5{8sdGLl@Ry`&M+Cel9Accc$Vdr0q* zj*z}2oh5xux=}*#A(%+cUO)lJ2C|(zgrp-kk=KxSkdKn@lCO~4$(P9A zG{iJ4Y?#`xpkaK&yoRC%Nker*dP7D7t3lMz->|>oU~-p^#|HS+DzJP8kM$?HlH??HiHHeb+oy(IkY+&h6d7VX%d>6rlYxOPFgc< zHEoEtnf4y-BbuM~0c}6+IPDbeOWHZw1=?lWkFNb0`8D578hhG!dE#&4S{gWl$DW3{^pO5D2Y+&=3J4 zLS%>uNg*|)ha6Bd)CBn;4-|mh&@j{o^+Kzl_0Se*KXd_l3f+R9K)*uYGIl~?Mihg= zn9G>Lh-XY zFbFI|CNN=!33D7yCd|x?6HfF^)zpW{S^9^e^tBSRSb%niv-G*J4^^x_7jbMFXePw5{d$7K--m;spo3dxI zC$jsnd$Z@VC$Yz~2e5~;C$Oior?b^;9h=Oiu=ChrwuUWd^Vmu@lTByi*)TiBjt8_E+`?c82|f{hj?2 zM1b|d24EAgG1waHRO7>|1^{4Jum{)=90UU3P;eMH1w?@ikONXd7AOSGpcC|iR`LK{l@Fb>(3j`8^IgJ z8_63D&*RPJ#5-e+r+$r}Mdd0bj^x@I>{7L*r{HOdk{J;611kD6(1ziQb1pf?G z6AThe5{wi~5sVg$63i4Z1S|nXz!7i-et|-;LSPn%1R+6C@Q2`cfk*JC;I&}0;Dun5 z;HhAn;DO+l;HKc7;FVyz;IyDh@K{tP>?)io>?@osTp%1OL6d zW8p<;B-9c@3NH)qLpj1P!aKs(P#>rt)Dh|l^$=D;21p0dAU!082#^($L1Q2dGy$SO z0K|qE5FK(rB4{JD7Wxa?3+;!_Lwlgp)F;q!=q9uiItVQj4T56OLZ}QXfi^?8peLf* zqE1jo+z|Q#y@MW$>OdPrU7?qv*3ffNLs3i7eo;?RE75dOW06WUQluBn5`iL$h%cHg z8ZF8eMMVXog(A0Tk!W#^53d>kh!XkjL_0+XMF&LNM4LpbMYlv}MYlyOMb|{nMBl`9 z^4p5Oid%}?riX~TiARe^X>W+fBwvYViKmI@h%sV{m>{N#nPRqBFE)s6V!PNac8Lqb zNpXp|LcB!0QoKsMPP|dPLA*))r+AmRN_;|mUVK~pLi}9(Ui`XZkEFh&m87+#ljJu^ zPYFXplzX(QvRiUla#(UxvR1M|vZosC*LVrZ z4#{=NYspo~Gif*90_jL;f9VA2XlV!O2%M_MH1O7o-!DMcEVmdGDSJ<>0- zHnN7&Ez%>>N78N5D(MU9E$K<=6X`kWVd+=tRp|riMd>r?E7?GqOg2c?L8g*1WfNsR zWnx)>nO3$y)=f4|Hdcm`{U*!Ey2wV$oU)a&r0kgNPuY3dZrM87A=yUR1=&SeM7C6R zKvpTAB5$FXFMA>TEc+>+Bzq?xB6}?#Dmz)@!>a}W@`>_RvQP4Sxlyi{JLGn`Tuzn0 zmrLbNxmiw@hvhN(0Xbj3NxoSAyL^d!ySz%iQhr;0QT{@HL4HO4R{lzUUC}_%Nd8sP zLQzZ6O#V~RNzqZRQFKwXS9DVViiwJ$3ao;oNGS>x>lAMls}8MI;1+SI;Xm)x}&VRia1*!<+zRdr_kst&0(dSw2d2U^;XD|Exv&5h!%|oe zYvFv@3v1v2?1!CjFi4!#QChi}0@;SBs; zTMK>ze}&({@3oDzO|%WP-L$>6-L*Zm+1lT)~5|>!`isENSo4@YS(KwYqx2)YjT-0wbe(jgbfa~%ba^_VPOPKqcsiTTsx#=q zx_=(!savS4(5=^P)os`9)$P*l*6q|C(Vfy=)?L%x(B0R)(tX!A*0(hD(swuX)6dX{ z^%{M?-mEXxhxCi}Tl6dS>-1;!Rr(Y93;I3!UHZfNIQNZ~H+D1FjYEv%j1!HcjMI!H;~XQ~2pXZva-+g%Fj|a0W5QTsOd8|H z6~?2+^~SBn!^T6#y-}C(i1E1bl<|!5qVc@(s_~lfrtz-vp7D|KrSXlawyBw^p{cHE zn5n&~gQ=@&gsG2dqzO|E_G`R^$!J2F7ML2D=9^}iU=z=zF$qixlhPzH$xP*@q^Z(W zU@9|}nu4Z6Q^Z6!rA#MG`%NcJXH1(-Ri>M!r{)&s)}}|Mhh~-;VXkLxWqNP=WNv3} zV)|(AY3^p#7MTTY;aG|+ehbwSu~;l=%MQz0%VNtG z%Mr_N%PQ*x%OcA<%MHsmOQmJK<%;E|<$>jv<(uW5<*v1kwV}1AwTHE(b%?c_wSl#f zHQPGV%D0ZQjSo5p~tH=sj%~q4uWw~gzMAlkuR-e^x z4Ot7VQR_bsi?hb9VQbo2W*cq$uXALpfkjP}u+6Z|w=J-tY#1BXMzj%ZWE<1QvI%XF zO<>d8oVI+M%jUCrZ6RB+t-@ArE43}Qt+Q>kZMUtpZMAI+Ds6{tRkq`{i?$24yS7KR zr?&UDFUcGBx^|?!k-eq8y}g6Iv%QDCkA0GToPDl+rX6P|+w<&9J7^c$)pnI#Vb|IX zc8lF+ciZ#r9(&qeWG}U^!A9+??bq!O?N{wL?T75w?3Wx3?62)_9i1F~9X%a`9rJ2p zUe)b69(2rfOmyHKSo?Q}(jjy39DIky;d1yK0f*h;bS!j~IF>jTJD83l#|p=K#}>yP z$2P}q$3Dja#}3Ca$0^5I$5qD_$5F>M$8Eja%br^qRG4st4;I;Y-gbrv`aovWOc&YjNH&b!Y0 z&fCs&&JWJ_&abW_SC;de^NaJAtFH5gtAX=sb+f36daep{^mW$*wUjjBAE# zu&ckTovXde<0^HnbXB?*x#F&#uCUAN3b@R!EiSbSb}e-IUCUh`+^t;CU8h|?+*z(G z?nbWtu21fIt~;)G?k4VRcX!ur_h?UD*EhG+-OoMVljnB3b#AeHja%k+x*_*W_W-xt zZE%lpA9sW9?e4wqO7~UwDfdqIHTPfc{q8FFCHL>19`20$gQuORy=Q=@o2QMZwfnng zvWMd#dw$LTsD_61Ov$h9ndc#T?4BhapC{%Cc$Rylo?=hh^UUM*lzDU>t0(F?=Goyn z+_HKdgianzmR_`|7re<{M-50^Iv;gdh2@YdlBBO{BPbC z-Ui+#`Cq&Zy~DkeyraD1ygA;!-i}_Dm+94e=X+6JjhEyVdSzZpHQ2B55?;KQ;}!Yp zco%sqy-x2s?+Nd2?>_He@k`!S-b3C^-Xq>B?@sS)?>p}uUo&45?@#YX?S!! zUt3=rU$(D@Z-{TCZ;Y?EZ=7$sZ>kUHqxcv;&?ojed{$qD5B6DnTYM^?)0glS`quhV zzD2$Q-xA+?-(KGa-$CCY-v!?l-&NmD-xq&v-*?{!-xJ?EKhodW-_YO6Kh59OpX2Z6 z@9&@DpY9*$AL$?MpYQMDXZaa5KD=rG;OG0feyLyNm-{t-o!{zr`F;L?zsR5T|L$Mm z|HHr9zs|qWzr(-Vzt_Ldf6afxf7Aci|H1z`kQHbfXdY-B=oIJ@$O()LObJi}xWLT7 z?0`8S4M+lDz!Pu=+=1nR-vhD0(!d{q(!k=tp}?uYfxxxE^T7MS{2)4r3eE}U2C2ckptu_B z*LaB_GbjnlgPNcvXb*;h;b38~C>Rf>f~BFcp(&wBq1mDNAyfzxB8I?_B%}`+L(Y&t zv_M&)E^rj23Jw(PDcDhPrr=t^rGk?M*9%S*JS%u! zaJ%4s!S`_eaD#$OxJ$TexOuo+cxre=7zhs!&#m#{RRe(Vtni%h{4gdwJ4^|4!>n+> zFegk5Ys0FrIqV2~!=A7^91I7-Md4VuIGhTv4F4Wp9bO-<3U3JS2_Ft04W9^K58n@e z4}S|k5C4objMRy=iL{J#h_s4yj&zH3iZqV&iVTa4i;RiPh)j)4jLeVBiOh_kBBTf{ z0!BCyZlo+y8Ce`z6ImDeGjc8RFmf;QEb=<)jeLmKiF}ECjkbukiS~##iFS>)jW&w* zj*g6uh>nSTt_J%xULuN)Vxrh6F4{CYCps~j8zn~>QDIab)y9`cRZ(Zu5_LrF(LmH6 zjYOA6*F`r(w?ywnAAqx?*JHI~En^*GLt{W}ZY(!Oj&WkV7!*^-RIy;pA9KbQ#a6}E z#a70)#5Tuv#P-GZ$BxBL#Qut1irtRgja`p@kNq9{SlBg|DQsOhps-D0i$X>rsc=T& zoI-Bl?81`5Nrm$YF@R(dwc#Ma4zii!K#iE_zb*u;@zB!J?Z*e-#}qdQjZ4 zxOH)>;;iC&#m$RH7WXe6QQV_=Z1I$0T=Dc`YB8%AEM^po3i}o-is52iv86b#*j#Ka zb`;x6oF(3pKuK{)yd+tYDp^>vykuF)nvz{5J4?2g>?t`e|5$RcPsU5)iTKL+ zviOGh#`ya9=J?k5w)pn=>G+BGvG^(fg7}R@llaB>mjp6VH&H*)D$z92BGD|-HqjyR zTcTeANQ_BLNK8yjPs~irPE1YANzf9k1UJD?2yy2U;)F6`NO%(Fgd<^0C*B!vCq5?rPBu$6PL59gmh6!nm7I{AnM5b& zCB;d3^4I@=t0DiSGO0*u8RD)E@RO?jxRF71bRM*sR zsqU!(sX?g;sfnqnsX3_`DNJf!3Y)^E=BJ3ML@JqDnp%@uo7$DSow}a7nYxlXn|hgg zm3o_cm-?3aTw1HNS!tcrz0wY){Yyuc&M2K)I=OUO>BLfE>4H*fDXElM3YPLpxusC4 zxKvcSrgVMjuF`#_XG+hOo-e&ndaLwy>AlkXrH@Kqmp(6jRr;ayZRw|KuwUaPO24J+ zrrW1Grn{xH(>>EU>E7u+>AvZH=|Sni>7nWA>1kO}Z%UO2^XibRu1u zUYK5<-kjc-KAzs5u1cRtpG}`j-%sC5KS*Cl-z^)PewTimepA+_taVv~vQ}k{%j%ZZ zFKb!Wunbu?sH{_2PT6l|J<5QxS!F}ZW|mDX%PV7*3Cgr(`m)DmFUsDOHz==P_Pji+ zyl#2F@?PcZ%6pb~E1zE8ro3hOl=4aC6U%3o|GNKI4c%K#FK3i<%dzE{a!R?X++Xf3 zUsWzIH5 zEMgpDJYoW3B4QF^GGYp1DqHK4QUtt?SoObrC=SwSd|{ z<4n`cH=tvtQ>I&{RwfOU0hWagrhD`5 z%`!AZXP|9&TBcX`obK(rcj(@^dzbF@GYvAWfi}Rn%!CXzL(kL)8UPJ}MnGer3D6X1 z1~dm+0F5#&vo|0vBR(OzWLVjqGhH+MY(aL{?BUr{drj`O9x=50u*_5*}XLru7oN?V-0);)I zJz_nIdbIlA%-5)&-6%Uh+nepoc4ha=?wkFu^m=Fa$zF{(*W_ z{{Iujf7{RInHHIrnO2$BnKqfWnRc1>nGXMQtsa@|OwY`3nVd|oOz%veOy5kuO#jS) z%)rc`%-{@=8Il>A8I~EI8Ic*88I>8G8I$?1%eJOure>yPre|hkW@ct(W@qMP=4R$) z=4TdUP#JUvlfh1-`fW^QPU@7niunbrZtN>O5tAN$O z8elE34p;QHGyMW!m9$+u957-YJ01g6&fWtr)a0ECC z90QI6CxDZ{Dd0442KWm&3!DSa0~dgcz$M@^a0R#uTm!BHH-MYKE#NkA2e=E|1MUM4 zfQP^%;4$z7cnUlNo&zs{m%uCFHSh*_3%mo~10R6Dfsens;J=}1V_Ah+MOnpJC0X&T zL{>5@l~tOR&MM0)&#K6(%vzZBd)DHtC0R?e{>WOEwLEJ@*1wjpA!}pSrmW3bTe7xh z{h75bYkSs?tesiAvUX?f$=aK>FKd6+!K_1BhqJ1(j$|FpI`+Su|F3$#j{pB9&>YzU z*%H|b*&5jfSqs?~*$&wr*#X%R*$LSh*#+4Z*$vqp*#nu4?1}shnS<5$OT9g68(SC|36>-*Q@_G0*IX2IgN9g=d{mhozppI zK+bPD!*j;x)XK@qX_nI}r&CV5oSr$ua{A|t%bAzcJ!f!EpPW%SlXAM`06951qjRSI z`V9Vm1N?9PdKs!MF)MFUd>^3`yAS6hB|8ecJG(H(m8`p*9N9}A-~EU4?{tx{H|ckt z5=>M7qL}hOBtgp_OE}#YtTg}W^HaAl8gLT)*}@|w1qrm^A*vyI0lFML2lFm>6y*Y? zR$c?zZB{e3g58Q=2il=P!wUGDVU6Xr<)FQ(o8zk;Bu0(VarhF{Qq*nIM*IHgYdr$> zmb^$dIy%(Y#}#xAE}Mc?;CB=567J-FqqJeZOFoxAun+Y7o1^`YC=ZM);tS*75{(G& z@m}f~#ctby$dkAnPb=SHY=J7$e|Pkfwa-NoyNEk_#+5y!tibc7H#Cuwskt%Kyy&|) z+SNF97r&JVP?gN?{P%pMaJ1yTq_32!IjTh&hbP}UsXkWVW#LBYD)_keaOw|Mtze*F zV@ViVgU`pd{O2phbjoJxM@Apk3eE@4UP)_tSkYQZQC?I|QrEI-ooAg14=YM7>{Jes zck%KhIq(sb>vd zewkpaV7_>hM65WVE->sdj5m5s8=TjjNSDs_+I8N=_ihaI&0QXP6hTG1CIb0~&`)SB zK#FP{{Lr!6`7?iC=y1GM>SF2ysw4Wo|5ol?@^SJv#&c#rRxt}?{l#tx{soTV{hOox zk0@_Sn$KS^)JYYJ`Eb4#wk&mi@diu6@$%4H>>gZO$|k}lYFoOH?S$4z3-l-4B%dm< ztY}-QM7lh6HGeTFBRHMkw9tj~<{}B_8F#_$-0{NE!kuE3dWT+YEcKuBiwm+MFQbb~ zisMj%Pu)bbKns$nWSZ06)LZ51{tW6D*ya-xFu0vso;Cp#;nx|{o_M_QxClzqf^ zg2sy6iGD&F_Mma2`$jDE&#>`6<=MhIt|9LK2*Cg5MJ_eh#~pS)(pXV0^g`@8YD3%= z++*A~dMU9V`4J^VO;WE@RSW}TF{>M!!`{Qb&H;I61$g0C;Y2ZBOp;{F6Y?4I^_uqZ zeQhIM#`wFbhxw^xr0tEZ+|GAaxHkDu23CdKQEYKhNvvd12`_#=(I?g3IU3cUu#I+- zzCt};J6^Yf_T1K}V1K+tl8_`PYoVK>mH0BEF!w8I7Nr685H(6`%&;;}GGB4V3NG{R z@wy342oDMW&C&ixl*beSjKkt~5{twJ&o*$V2qVI>n;G%94{Q$U3QmT*MD8V7qzLrZ!-7*4 z8vG(^M+YXqZnQmW2I>f^1^PICG+`~Z6*Gs07W$FC;3$aiU@m~)wfSs0d-)r~{p%@ggH98kSfz1DrU*KySUXF|}Y z=-r}Bf|SZDeS^A*9Y}NVrO;&BJ3b8g)fl0}d>HcpH;eR>-m7Q{ucvr|c(}%4*ln0+ zI&RtSJo(SAVy1sg@NDF4tQ)~zNJovtJj9R1UslD{Pj!!+>%vv3qp5Q#9kwHzk-wg3 zG-@&Dsk5S<_)ye!(c>7FHk~_M$TBSgeT`u z6}FP`;R(iX=J}SCWu8@RYwDWoI+b5PzzOh!Kf)c8k@9WM(~&1>FRmNt;_j2D;!}h% zOn0$SLXc~W7|Uc|&p>^_N7NWhFANW3#*W5uaLb6zNOj03^S&}RvOlxmgDTE{1mJ)3 zB0EEUMHba+)gX0iy8lvMnWMoOymf+H*(HH}D zEWHF}Mz2G6z_i88!Ah`|xb3)~xKjLmd<(+AIokh-@|qI-L@a3$$wDDe>C_1IA^kD^ z6J5`6F-jSKGTJk7toiH&cm-U>8ON*5pT_^dmkN3a6T%Y^Q_@cgNe9cyWkX@FR-&I| zyko9oX>VazHdxx&v+V2a8|(x}#L>@*bItd$eVu}fLf=Ejqi{@FI7$D#a7oF6c%5V_ zb)|G%ITg1G_X%I0aFP58ydxKdn33%j^RVM^a|u6kCmVG!R{6P#>FNe@g`)-hgL#d$ zy!5(iSL8ne@V|MHTya+NIOG_>Q|rtp#SxVk5tFgdLy`L5vgkUrKt zwVJnz9~56iT|kXR+t6cipYiYT_lehYpOa5ej!`lc40QpmHlsh|GP4V-9%nF*MqS6- z&3nQt7l2}uxS3>zdX8bg;j_7erN3p7y|&}MBkpGepa4G*3cLy&3Ec>tjDJtc#X;0~ zbO9QJB~iapXR~W@rt+)7evOytAwD77DVeC+t+@d2*N-(cwhyyEa}>KPA{dFSq8XDM z>|g%X_&HoaeICz3y~Teb4WS&%TSE1-Y_huYJ@B(oB^BYhV^U#02+Eyo+FVapYg18xm|s}q zP?zvN>O63WARvCKx}zRs6gw6d;9~JqOYCL5h>)TBIAcVsEr`Um+|zjBufPA*(7g%j z5ZW#JD|D@YhN}#f?lYV)Otmbqp0mAlbaO`CGkq$5G^hy=jtq&;i%DWt@v_)H6dFAP zI|X0FYzkfwOp!E_an!x6r(&+c3-}I{z0|W(x?zwtZMKptm0z)V-(ZLhTF^Su+>8L@4nx7Tfo||R7~<$S_4tkX1NmCMRj^3dO*BHZOX8C@kdbBMmA#Y# zZ7`%NT>u>fjdnaPCiM_rjBMDX8q){1-XLh(yb~r%rS0rtAg8N-HV3gejxo! z*7)$M0l-VJ2^1H+L^ZitMdjYi)^Z$Z~1cF(&>eM&vZM6m~R*7N4^ zUkTHYUiwx#4BifR(=iN>48tt<9qXJcJuCfV1FOR6$k6D`SiQs!)P7VJ4ko`KH==cf zC(uxihJnKoPF$MEF`Wt2PlB=cxy$kGqGJe7QVwG|XSgJwVC#bBJ2r)HYLpObUevxQ z5@%=*mDZy}bOmpbV0ppyxQsJL&;dH^YM0y>|LLm+`!!y|EjMyMQ`@2jDCqED{vqs0 z+&$cRii6pk)f}9})9||SHT-wNwnC1$j!dQM24C0iG3VOfkbn4W{)K^}z==SYXkiSO zpd|dfrpCICo$-N;8?27tQeJC*RPbK6z_`FX(b~|lI>arwTfhvj(AUFV1($NBa+Bb| zfXlegv^wxCuC+9F&hcJF&Bji{v+#?lwP|f>H|f2=S>SqZE8%eAG06;RJL!1=O^#Ap zlqYyL;~LX7ON|e&8UW0-F1HySot$Hwe|Thp)1ki$^if@OO<}CiRkAj{0Oux-mXA~l zu^t1_y2)|cJURa@`ne;#o5vBm5(tn z?j-&mz5!+>@f8_OnVgjY8pp+%#M#L?#eK^A!oN>H1^s~9$R8^GsHgB} zZISV|`HZE^!nV(GkzEq^F84RjVV|O)R#X~I6m?FtEIorski+b1uwUaP&O1hU>KAm6 z9z<&}vv6v>oHd8T6bz7UD(DuyjAqb|htBXyEjWDKr^O!Rkf~y7Ls}CqRzQnhLUp9{ zqbMZUz(isj@>0qh79QL$7~v#BljDa{eM<4@y5yhK=JpM=!3+ekPg_T^|uqhB$uEpBeW?t_eqlKC5PzO%SaQ zj6sp{b#wWo!{8#$BOXe8S4x$wQM}Z>Hm)@7v`ny9*-zw`1gJ&#bB~ZGGS~3pe7k6i zcocjj@Ehi#4j^@6@>oVbOY#BkXq4GLINEz>L^q|5nP~7ABi3}t-8}l#P-qm7?BZ?gq#6-wK{c#Q8ekxBx2lzVNS9J5eu1KlNiL$-ORA3pEpa0vja$O|1s| zHD01EV;IB1Xw4kK6f-w7-?3Y87V*0XWOAHpEId}Hv5#@+9a`_+z>R>X;C(@9p{}HM z@?qIw9EtNm+eYA%oKhbQtu0c=bEIYDrqD^~N2IjqI@~duN3Jd0%=rdQLl2N&5$ufg z@@%#ciY7q{xrp?MJb*gD(ofZpa6h)Wd<_bPreR>rG+ae!HsLpNDYXlugt3P4iP4Q2 zVr>D(a{l716HbVcrLs zTieM5Mb8%Pki8>pXD;C`h`fwUFVthj(~7Xo4OxllHdjWvF%ZM|43^j()6uCGHPKH!HlR)W}l2e$AxWMW3+_<8Wv$?PJ+< z=V9ucSXYHUS57;^;`2h1ywH?rt0b0igx{oaHf3?tgI$1nhD~{z2FVH|XI>EqZB8Mr zI+%oKLAS&A<8(;~HJ;X-`7}}+e>UW|8}c)Zhdeck_v`*oHRSK4OrpI?d_x5&r!7@e<%fNkW3OXlB;j9@ z|A8I=*Koalo#38iqI9HYxPE3HY+K`8oqCTx$hZj>a!5S6;GlNC>ZE;#y>DbetO@1| zsW8tYR6|_l57nQccjP-EQM^Oc=6zsztn2F@jOO9;@Tb5tg5wg4w%Al+9_e&@o=0x- zyUXjUI$2k__NV@+s0RBrUg8IKgGr^|X7bu+o1Tc+jF24*vtTh6EDXtv+C=PGX>+u~ zRtBO?OG}=X8FMM*2l>0=!_mLt=HgG`ujA`725@6Mn_!{@C7G>Sr+TR-z*DRPoKHO~ zLWfLMF-X}m`8qj)1Mx-h1MOe>X`Wa4{qR_PFM^BWWtf>8S#v-GxC)H&E{IP`Ho|MQ zG5r<835(9Q)V|8MJ+L!mi!u_|lZ`~9%_+=8+FGVpa78>q(?A!t)%ftL0l>J*>e0l~k~B4!8CC`oPkJ&n*H^brGw z&~3&U&SChR;j*(&(YwMj_sjf&W%~&dW{5|Vwoxn#oezymqIn-RO;A@*cS!vy{JfLY z<=8An8KW&r3+i~wcrw0BI#SikgmIKQQchZMVdzmvQ_wj+J-!ybipv*wb+X+e&y#2^ z8Xj7nG`dNiW@tHX1#OLfHb#IhrDA+jL47kv!ZH?J0RP2wiHo%2~?7KzA##QotLzSfbc z#@o0eGLhX7T+2Tto@9RN>WTS`u7jUR7($*yDW|@ny{7f0#~B+y0cRp_JFn5N{HvjR zFG}u8z9@$3`&)0>H#r--U$|>~Tl)J2=7#==o-6#3d|xIhN27j66<~64b4kl76Bt*R zSDBN*&HPS+zXa!mh1edJmGCOr&MCXIP*hoSS$rSnI(T zH(=LiZ|LQwo|t;u5rF{_H%FW=R#MYM$)aa zVr3tAoiSiT*yp&9xgGuX8)Dmx)va(~~P_av*k)E`Dx9yX9Y&*Q4eLTSi*ZAb8 zcqb{_GQlm1DN!&ULr03A%TIX*<}dU2#Wf@FXehyQVO@<&Qw{cOyu>~DjPI`RWb9sC z9}hCU>Jvtkdm)Dh`*BmGWwHhu3M|$an)Bl~j0Kfj(K7a79xXo~wH9>^(*t!9`-+<4 zIfT2U-PBXHYjmBBkIi!Dxqvx(CI-jbC)2pImj0L|J|Q?E{YyDa^Tg3FvN%pEtE^yY zrjS$8!4^jH0cs>Vi2f710k?zRnYB?p-f-SIyztNX$9Tg;q5`b^gRc>{!!5=gRUGgg zW6Wbk**)cRloQP#EOL8|53d>kymI%94k(&Rkf+a!{E7pi*9Aipn{iX}jx&(Vb^ZPfc-D;obJsp)|iz?iPpnYi3rNBT;h@cFJ#D_xl9A{Yz1@FpJs3fX+ znK-cDBlI93t1O`>I;x@2UlRW<1R67&quQYQp@yJFqQ;{pp{Am8QDoFVn|n~=Pyp4^ z*@PKJRiG+S3sH+u>rtCfTT!P`r%;DbRj31~%cxtZm#EvQPpAgyJT!o&qUmT7dKOxX z_Ms!_B-(_A&*%xSYv{kw56}<% z80I);6XpQs66O}>A?79KKIRqX3+8W318gm9ZERa?8*FQAM{E!5SnMe5cyNSUdP_S67!#8Ut-^2|Hl5rB5{pyt#M6py>b0;gK)!eV{mBPblg1Ld>jKu zz=?1g9E4NjY&Z+909TAF#3^w;TnxAT*ZTiz=+$MB)wngdUAQf{{kT)O%eY&(`?yEA zm&rT0_qe}tpK)Jsb@BD_qv0m_=J;m#Hu#SCp7_D|A^2hV(fG;unfMv_cBnb{1^7!? z1|Gu8@a-ukybkZg$MFmCf8dwm*W%aXx8e`tTbi%NZ{xr7UnyVVpWt8Ozv62VCJ-hQ z1`q}k#uEk+MiTlGx)4x=2mvO92~2{Lpd%;ku$pj) zaFnq8*ZSXT$bS{#0AUGX4`CPK3gIE)5uq8eHSq`G72ze}E8!kt3~@4%L!3_>M5GaC z5Oawn;%MS9BAu8b+KKB30b(W5M6?o<#0uhCqM7I-t{{4e%Zb;Bhl#g|hln?b4~Q3t zt#dyS+vffx{vdYB{X#_LVsdXQhv$yW9hy5jSDeeu9h@u473JpV+H(WB3v-KeBe_d+ z*XC}`-JE+McUSKI+=IFMa*yVo&OMuZKKF9&tK2WS2vQ~&Noqi<2KzN$qCTk+sR^kS zsXeJJ=?JkisTXM!X*3B%8b_K;LX#lUK9Y~bCfP`SQW0q(X%lG)X(eer=^&|!bb)k^ zbe`0Ze2H|Q)QH@H+=Z+n_aKAhd1M87pBP7;KsJy)%j_@>TK`@^5*1?$Qzjl=85u3^LFL!$vcsEAa8fx{k+S0kMf@8UCR5K_bsn6 zwGp)~btv_(ynfV?)QQw-)EU&tR4kQ9&7)GOJSs$0P}NkJs;ByRMyj3aqW(eMMmdsQfcl7fk9v#xkouhZhWe5Eo?3@ik5-@7gw~4Iot91OLmN#SLz_aINkh@_ zzxIDuL;e^Vnx>>mXfhgz($WmH5G_V4rll#XXgg_JX}f5D(hk%1(2mfq(w@?O(7w`M z(n9oSv_|wc^mcR_y&Js~y#>8BJ)7Q<-htkpKA(=Gqv-SK61tkMrF-dax|6<$UQS<4 zUrXOjkJA67@1h^0pQ4|qpQB%*U#CB(zoY+6Z^Y=x=)h>f=)@Sw7{!>*n8ujQKru)R z0)xo_8C=FJ2F%bhjEr3sHpW86e#QaDQN~}4Gr#6PRYU%l821@B8P^!s8TS}>8BZ8b z87~-b8Sfcy7#|p)89y0W%mz$4lg4bsY{6{H?8_X;9L=1x+|8mS?nI{Z>+bhChVr{S?r1IKJ4D?x$H^o@$3QY;p_?QsqE=&HCx9fvnlL6 zwwSG9%h^1(lFek(*?2b0PO;-`FMBn+m|e;auw(31?6vHZ?BncX>`&~Y?1Sto_73(5 zw!wCa{fK>^{gM5Z{ehif|6qS-|70V;`d|aF3D_8H4R!)+e0bFWpext|><1140dOcd z44eX@KnBPGsUQm!f@aVO`avsL2o`~H@B-)pi^0p_S#T$K2F!p};05kc@CJAiJPsZJ zkAP|L7}%Ke3VaLp=G5lY=e!301~Ht8oCTcDTr?-n33Ke6RU9p6F(<sDBeikXx=<{HZPY)jNp&t59fF0qxsYMbNEyE z3_hLDNyj0axG`CM3d^nl5TAQi(>2^rBfJP(%^&MYBbtMcJaLs6ez(L`*Wx`D^(Cz&ttFi#ze##Z7!slcl!zowNr9wP;*g{zR*6uemJ~{&l0%ZW zlJkp41?vNW;<+=>xe(`bFAC)=;)ZdPMq2x=mUoeIdOiJt=)6JtsXZ{VKgG zeIUIkeI|V+9VnB@2FW_eR5GS)qO7M(EbA}R$`;7F$)?H1%22Z3WEoi(*=U(lwo;aq z9h3bjJ1^TUTPHgt+bFvryC{pumdXyuDrHmTE#&hRFJzx(KV_5T?_@*duVq8!Cx5N~ zs)qb0%3H}l$@1k!xnAy&+vRdORsLQsl{@8TIawZ-$K(g(eEBB%V)^g#CGzd^D)~zJ zZTUs{3;6~475Q8FEBSSK14SdnS9uFXEk!fMPkARrM}a^;d>YnP3>aOaG z>XWJ&rk%Q>y0f~ix{G?ada$~$I!8TGjZ&l4S1L$qky@x$sP$@CZBiT6N7b9ur`0>v z`_vEBuhh5Hi!^mKa!rorvwEmztcIwWq+x0(nkgEZ2GS@r9F0h$)mSw_O@(He=D6mJ z=7Q#}y2giB4FK+F?rR=vo@!oc-f7-w-fBK;K539}7F-8z3^#?Fz-{1Ga96k&JOCaK zPlp%4bKyBK6`l#_!4S-a1+W;F!g^Q>=fhrD0|#I~?1YQqQn(ym3NMBaz?qm9(q7V@)85kF)jrfd);`k?&i|&ZudAm+>iX(_({t^ZlbV8k2N7eCkHl0;x(1mqDT}-!7SD{<4+p62H+pF89+pXKFJEA+KyR5sW zyP>Ahe7#v;st@TG>$m7v>euPd>Z|l8^cVDd^t<$j z^~d!u^wnU$#!EcbU(^54f6&)6v^2CZbTAAs^fyd4unZ&v(~xH%8t?|A!Da{;$_>j5 z^D0*w)*3b$wi|XBju|c*9vfa5?i%hJ>KmIF+Z#I=yBoV1?S>)7amInD(1an$DOuo2pDVO;1fN z%&pCjOb<;gGs0ZY+{*mk^y&X&?>?NHIv2g)yNKR<2g}5C!h#T*>Afy>Te4(Tt69yK zEf-n6YpF}Nx@>yy5JF8Lw9rcu0s%tr8$y849MFA^hnv}FpJeasgmdrvPWC^rX4YEr zj5K~ezi(9+RV&r=s=liJszItgs?n;!stKz3s%a{s3Zt5=!m7wBhN?i7qvEQ>Duv3Z z@~W1q)~Ob&)~FV#R;sqBHmf$N)~j}?_Nex%4ywLTomZVzT~b|FWygL{JyAVVJy*R} zHU7{3&wF_PY3iQpPU`0B8R~iJ57i^olhhxpXR1roIciufR}0iqHAc-*2h?^oRqau$ z)iL!>^?LOZ^(X4X>OJZ;>Is^~>J92k>h0<}^+xr1^=0)<_4n#}^%M0qbt6r4OlsCJ2VgLboahjzVon|8al*l|#MNPATK zjrMEpHSKNfJ?&HNEA6FlV;xG@Lf2l`Ro6||Q-{_K&`r{1>*nfa>hLFkMv2_An ziB7I7(v|5db!wefXVO`8W?f7d&_#9YbY9$A-9_Ck-38rc-2vTqx^uc_`X6*Z>U!u0 z>ig=4>F53DRQY@O^g4nw^%M03Jx>3#u2?VCbM-uZsoto!=@Gq7Z_qE)*XWn(m*^S# zfPR&Jqy7{9XZr2>J^H=+FZ4V0NAxH3XY?2J=k;IeztdmQU)A5yzt-35-|ABhX@*9I zCWhvQR))5Q&W3@8!GrehNp(thJZ2MSZ{b`_}ZBCk=nYx&} znunPCm^+y}ntwJ;Hgn8m^X&ih|K7u=cZxa9GS5sh>dHnY!+m{*!5=4x}yeBW#} z$IaztjoE8HV%}*!W!_;vZT`l5*?h}<$^6RP+|t3)!t&Pq+T7TZY3Xi(ER!q?EF_p{ zVOaQL)(ViM%l*N`rEQ?(`{32cpJq=x3O&^o8G3e)!Gy`we1s| z+-9(aY<}B%Tg0~5=CUodZM1!E+hp5sJ7D|TcHVZucG>pImS+Fi_RMzI_QZy=x3o96 zcd$>h_qJ!*2iXVPr`V_4v+bkoW9;+oz3fao-Ts$~kX}d@ zG76c3P!T*b6Pb;u5D6ki*oYZ1ASPrbvIy}Z%aG+r6j_2CKu#cEAm1Smkf+EUp9ezi^5p+ZxQO7vv6z3%8Z0CF@?8G`rPPS9* ztZ*uw2B+O=b|Oxf)9tKws+?hGFZMd;YUdv3X6F{?dgnIhm(G38o6Z}~@0@R(ubuTy zl&g`exvPn*jjNTbtqZQ};5y;#=<4j^yCkk+SBXpSinzXTedgNfI_3J#bH>Cb;WhV^|Py~yO}%b>gDe3ZtL#jp6dSC4Y^0U=eqy$FYi4(fLZQ2?)h%4d$yb6 zE^ss5gWMc9$zA4_yH#$z+v+yEO>T!9aR=N!ceOj>UhQ7wUhCfIKIGoy{>**Q{iXYu z`=a}X`)7B(`+@tdySb;4r<13>r<Ccnr-!Gdr=RB|Pqt^QXNG60XQF4mXO3s4 z2lnK8XdbqQ<0c!K?P_ zy*e-AwR=6@mEH~BP2Nwu*S$Brv)LEDX}f7nt>)Yo$;ydO$?K|hY;=AU%==<6Clkd5&w?FCY=pW+m{B!&T{@MN-|0MrBKh_`j2mJwm%%A5!<=^4|)PK+4Ch*!nJ@8@RJ>33Z{u12+ znSt(szJYOpj|15OT7Vf)1*CzTz{bGZz`8(nU`OCw;M>66z^%af!2ZDH!0Eu3ft!Ku z)g7xlRHs)rscu_6s(Nts$JOZSan)0*@zv9-snyJCb~U}auzH}ss9I57UahXqt5#KO zs`b^{YD0~+2C1p83D$&bA~g$ZR@SVjSy!{WW>?LQn$K#E);yQ(uQ^e3yylyluWQcL zT&lTNbF1ch4LUd=_+fBZaB6UV5EGmiEDzFx^x$9q<-LaokRN0Oc|mzl9CQW4!J1$w zxH`BZxGA_fxG}gjxGlInxFdKncr17%cp|vKeks^0^iA+p5EW`1Y8vVgY8`49Y7^=l z>K6JSG$;gx#)c+@CWfYmW`<^mriSK(Xdz~(AjAs^LTB-!P;sa-WDco9`j9eY2{}TZ zkT(<$tqd&>EeUN2Z4K=Y9SVIJIu^PVdKkjgJqcY=J`epAY7=f59uxi`j1G?uPYBNp zW5V;oqOdGn^q>C6dwBoF;nHwPcy)L~cvE;=_&|7n_)z#>_(3>5(k#+G(lOFCf{yfx z^p1QG$%qVzd>EM!nHZTGnG=~2!A9mqa1nfDeuNYWMZ%F~k#&*vk=>Cik&BVbk@Jx= zk%y5-ksl*ZBK47%k<@6LXrt)$NVn+V=;-K-=+x-s=(Om>C@H!iN{!}58BunW8!dT`engy!K@6soK-EU)Nr${l4~c?bX^_wRdZO zsC`!Zy!J)ytJ?b7pKIULHmPe`_i0(DI&|HTx`}mj>+p5NI!+zP!q&0scy;_bab00u zd7ZqjtgfamUbnFBJ>33Z{u0B;hlLbxLFpx2xfldt61M(VEn>Omyal zsm#oAnNw1wnR7F-sb!h8%)(T4raZGU)!7&7J2tht@07lIskMDseU+)(KR|y_l6p1^ zomG~W)eqfoOj=dHDgDT4f&S?JQ_|M-$Mr8xJ3atCU~<|+2n}h{TMb7K*QAR^phsxZ zk9>swNQ3G>5%n>Q6bRnu(MH1sr0 z^Cr{L(>2YxGte_M&G*kl&(yR)&qB}Aw9w8*&(^fKJO@2T(=vN5dakBrWFC5+rsa$I z==qvfqy^{&npRt2G^}ae4ui%JTFbC#tfuv1Fk+->lY&R%HErl1bFXQ$n}{ZA+IAVeq4PBDVJe!cX}^|+rfE7f&qwELItb`! zx~9V+2AZMi_yH5m)O0ie7OUxa6>v&Tr->XiN7E@@fG*H5xPjz zon4GB)^y)1N6R%mdY7O}G(A+M=+b^YzJpSrR46UkGT9ocPj*lCNcKslLNO?wvNbt5 zWo2?=@&J4C)AVN@gb~B&o@Ks43J8Y7Vu4T0*U$)=(R$Ez~aABC~zUrj&0}UL<>EGLt=% zy)${4{LJ2&Bl}J5H#ucv#)yoM(CNurNmR<>lqJbV$@FC7Wb6sas%lfv@Ov`MN$;!lM7G{bvyJt?w?3MX(=HSdB=)oCKKUqIXzru`+ z40Ou2WZPuBWcy@?WXEKuWang;WY=W3Bs!Uy?3?@`nU(C9?4KNv9GD!G9Go1I9Gd(v zIV=e!hbKoQKT3{Few-YY9Gx7K9Ge`MoRXZHoR*xPoROTFoRyrNoRgfJoR^%RT#$s5 zm?SodOX8D+Br!=!<|K2I&oNC)X517w6ukQuT-R>%g~Ap~+jPRIqhArIt* ze2^asK#QQo&=P1Vv@QZSEjE@-;};NeM|b*^iR^arGJ{fJ$*;|&h%aByVLiif0q7v`rhHE_Uq#sN_ zlzuq<%k(3twy1Wf_NWf1j;KzkR8(hF7gSeNH&l024^&T7FH~<-A5;bkjmkvzMSXzE zLiI!SM-4y?L=8d>Mh!s?MSX}GhJsMTQ6o?vp+=%UM&VGSP@_>}P-9W!P}!*Qs0pZv zs7a{Fs41wasA;I_s2Ql4s9C7ls5z*)sClUQs0An(g~>|EO3P}Q)i$eZR>!QKSwpfu z$Qqe7J}WgVJ*!PthpZl1U9$RSeUvpgD?4jmRz}vatN~f0vnFNr%7U`8vc_ahh2x~o zdFjDP#J#K@oB@>Q-b|Ci*i(sRuI5~mW^o^yc!uS%p9F#2{@g|EVrq=@ zi@DjIRdu#csdoA&oMzy+`|O&-Ar~J5-@-JF{c77_OlujO2&)H6DTpGY3)ZkmS%*}q^xT69Xg$MZ$-Ev=I-%q$}Pew39s~0jVEU+?DNhGJ~3h!e!_fm)N_x zuL}o>`ir)fIJEohIf)^O*0l#{i^M@=6^J6wV{OwP5|qhVU_SRXp@J!t4pd@7PvI7X z&hR4)2{Qq+2vdSzNcbVA8Kq6$KI%5=waPO*D?iTPCYmqaQY0$*qS96QnR0xU)v(EM z(TFmZ8-FlvPq0x^UR0!*UuID&49l#qY8*kgGlBaN z{~4t-aSL@zerJ|IXpn5EaG8$TauIo8MRdDF99e0(kh_GRw4C&}#v602L=^oi_O*f? zg7JbeqFp8Oik(W4J!(Je5_!_S4{MeLt3yI6kG4gq4lfA9oLE&x;ow58U|YPEjDeSv z63im@-z3@6CSZt~YH#bA4tI=?B|I1QC>$3u2?pV4%KfIzzDogT4mB}AkZEjW8m?M~ zZ)!MLdK=bYjJSo=v-sxt^Y}aY^`t0y5al-2Nexpk(&h9@<`PyP7Kim2=OUNQKO-Or zUW+D*2;y8>rYt0zQMyslwd_WD3uUrukqWK8ryZqztV2~gwgVQgK&-$di&3l+Y~S=v?BdSthwh_lvsG_;V|jF?VZ zBOn%%k)n$Jd`0aELMe5zzPknMZ47sXXTXOs?FdJSW2oyH9hg~M9Djm%s#q?*QB+Zy zt}IiouWG99u6nEHaqq~fgk7{5`FGi8*;hH;q#2exWVq|H|D`Ooa(OHdUJ0*(*J5Ir zh1fH=S<2_QV%&2A5qz`K5+0D&l8v-$jM0p_%wbF{Q^M)Pr4-H+?~{Ka2k|)FOMN3l zQ#0&+5x5pgMslNh@MGL%+EAWeD4|W}JrOEO>;kMxk3ERLnL8{0ZJ-}_si?1LLg~m# zedV62dFrEv9meAzK+158^_=mYA@=d>;C$>T!Y#r$`L`v(@_UBc?hTPckuM`>apkP; z7CLF8Qi(02e&wANG{YkbFZ%A#aJ1Q+u(D1Z2$gzR%GJe4(55m7x@d|7xPTb{gxJHp z2I-((>OSGUM&Q|Ol~XWZU_ZmR!%Zg@ua-+QC^w+G-te5Pk9J#P(;Xt`s zzP9AUijEaBb!B-=-734o(G6s|&U!fkMNkMb#qyj4## zj7CzB*Fh`{V_Ohz5>+{`DQBn!`9IRvF#5B{aA)v0NOR<;RYz@Gb&GV@jE^laVs+j1 zj}9IV^Xodm)vzDaiZGivhd42B7{kd}#H7O#XGV!eW z>=64rX9YK#m&TjMd&ZZ5@5~|LF)>3jNFtODlO_}+%B&S)p!3Ki1 zE4f(u3eI5cC)l+(7e9q~giNRGqHbge*$X&}1QSFh(xydf-(k6~q7%R{60Tbf886xP zd71@d_=4O4e5|(6xd^v4cWQ7Dd7Kc@Z6$8bZ=L&dMNQ&0hK8R@bQDbF4d8d=|D-fk z<)||Q!vwV0x~j2+Za4%#ntFx(ykLF7ZT?WvPV=hZnKEze9A|!@acoW5=R7>z3`})@ zK`Un7E%0+W0!H!elB0^gRUwVRQsXc>FZwDXZMkcCYeWwC8~AI?IE)rQj_{K3gmfe4 zBKZO38082hNyX9@(9`IH8Q(H{ahh<4QEA)_+&$d8{Dg=tsuH&;nNc~Xa-Zs@x|@2i zZm~X1|I{8t=!g*EAx`9x^RV+$@Ob!VkqmZV#$#MKEH#(s9!LKGhe~kgmY9Idmewd2$A0_xvKn7FLEvM;Uhs@d&0NG zLTZv@D;%p{8%oLfj&PDFpoVC}^S{SDVx_X*N=8)f1$m>Xng!ak`iF)-Ca-O#UGDI@ zOFhH9!+rC7;@}})9Nvq;;ARk}Faqq>{IA7Rq%BG~ntr|$ek0*)N;m4~k~5Y0nh#Ym zvZlBW_u5AAJjNWQ)$_8-*D7xqdPb7CLyXnjzX@d`yX2`f2)1+HsypUi^D2DSaAVwU zd@uH7o{x7y+MT{leO4>yy)IKN#r45oCNu=%iFZjL z5TDb90s`@Q4S=b|BseBLnJ0XztEQ@nf=*qxggBV17U6f2y=@#(nfN*qEFdH z)n~dK@?+Z@yB28(b9;OF{2>tL=Gv95^^JqO=tG&8*xk9ycpdrP@~0rny+AWj-`u&@ z1;X5JM#U<86ZQqpvVy7XFfvqWtlEpL4c=Fm8CqKBz!z|{2_Vc(T|xt4?)=Ma5auq} zC;(w@@ev6KbMwEF(TYKsn|n;Dty-u4PBT}#Qm-_CsI+-GB6Xg0{p1BvX+MZc*BE2# z@e4>M*_h%{I6{IM!7B(LDvfPMT1|dL!N@029kc>MFD8gebKXUz3r=wF@m}TM5Q3<*tW)tV*si!& z_EH&8T~ULmw2oy2QE3y1N}KC#2VF&85S0#uLOrAHv8Tu(mRtXo`D0g8Zw6*RwiG{$ zP{NdfrU#mhOcc7 z=XNg$A_ozWL%s;#AUvk@uNvZWh36+;NiP@mClE-}sb+RV5Lvuf_CskV(xrNgY#;L0 zI0kpe@{(|$a1S%nOZ04{6zYfPzfs=zd@lITIa>ZQKD%%NvJoCjAm=pB<*^TP7ISZl zV97NpwP;=WL*)-utJS-7Am(d1hSUV8IXB3M856ndc)>!Q=o7_g{tOqX(1A zQ;M02XUgtcss5R@t9M3ZOVtqtP5G({XFA|*TX|3EH;&4?Rz4X9F<)wgah1J?H=h5a z_^w4{D@U?@u>Wb~bYYjGekFqpcTBm?4R9(B#C%B(>QD5B5G~_fh?ez)(~h^8-%BQy z<3WaYoUT+4LbTR01cYc^AVlkr)|7|S;NftRS1R+|_ zn?O`?(c7JzCrIOL71m>>$%gRHdv=-oska7*!b!5C+(PmTkf9wSA4F{KyOG!mufxDt z5TeCTbJh}PlRuzF>F+|cj6O^!`x6cb(F!(*Cs$Z2-O3i~tA<$!2+_Kydpmfy`#?ms zuC@490f?w_71C#Arm7xZVc?8(C-DhmN5N7Lh^YFf<0{A^%0L>49+K2+Jc^#q-R|pQ zYS9i%FVW|+O$sPjkAsPA$snRiSxaLw{M-OtR}qTV?bG#T?SmnU{Q^So2S9f&yIVSg*iZ0{1B8D4<9Z;m)x7m+#2z&s&4vQ>jp zloN7=O!t-G4RJo~q>X2^_1q(*InU_qmP&e(dkZeXaVZAcq|hU{o`Nt=ATHUpN)WH4 z-Z2%I3@+Y8FJ=71sVayT?^lK4Y4o4rdAXNz7Bg4L_N!az-snNR(zDqfvMkMi#zqR( z*{%F?@pZ|>(oq#7^JZ!lhINs(n5Xpp?8_WKH#7E22Rn@8*!zi=K^MH3*mLYGf z>0w+G*;l(9_oix7g}iFJ&RR9Q@GhODb1Fc15hwDqrOq;?FBH9xX{#+_$Ez?k%i{NP zlw^wKW^gxVB>n?JLwJ$i7>u*|_*yXtFUmo9vE-qGsF`9IV!r2GRdv93s8|>V;YH2_ zo={O(cC+HNd79-B0fZNc{U}Ddm7!v8W;cWvxn9xN;^T_VW$P<^mFLyRwB@>Gwl&BO z=Ps`{L=RsqY@r&1jnF1C*7L2R^Q9k`H`BW7viV1qT?k_pj_5-MPoFUUs0%YdG*H2= zn&}-c;8Pyt#nf%fG>##dpBROO-Nd71X{FaeGEjh!oR#z|oKuQ}m1hm#1_t<_nBta) z@u9?h3^CU!p%ry1s;VTMimfN_E6b@^fzK*mW^Pwy!D1-Qh_w~Hsu-aetoz=u#ROt))--#2WRP>Nce(#;_)Yw2 zLJWgg8`g!-$(>7CNuR&~u{QQ3-c~+{wF%DR{A#prwSJ`|#R+0ZVukjqftkXzpKZl#J*ixNru(<=Vgg+=Y zBmZet4Q(y;khQ0DuIY@jqrNF6qH>Abm1p2DP%?|raz^>ZQ2zu=*dh;v#&FAsAT-8n zU3SIu!XJ)5quiJ0OAq1}2#%;hXe`98-C0mkh&HBCOjL&GVo8s(C+f|*E~W@>1b;y7 zg|bI{Ha;0?MEii9tJ~LRLMqI_ZKL#*kJF9von&N{UniItm1>lEE%K4u z70Tg1HLtHGus~=`yrT?{JoJnq4a4AYgYbt5$EeHbYUV$ z0f8snr}$0zJDEL8Hdl@}eB~b*1c9ee^V(1yo3~t4iU)zGqAzV<(2p?ZvAnXr#dA~> z)z5S?(<5)+z!2ipn5^)tBD?bo*AJl)_^o+U=tmhSeitE#6G;kXZR8+MRP|5?;zZVY z-jg^N~@ZU<1z`=k74)$FFho6r9tpv_* z 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%0AC%TRYaS_2g`{_N}M@#jHc?$O^5qPOMNm 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�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 PXBqur`FR`%x%~7y3I}{n diff --git a/lib/iconv/ccs/binary/koi8_ru.cct b/lib/iconv/ccs/binary/koi8_ru.cct deleted file mode 100644 index 01a9abd8a474d695ee7a85c72fbf80b656116c81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5204 zcmeHLS5#D26x|F51{HCDp${-KaOl1F-a9x_l_E-2Q51ViViJ>>1T?*p#1vv;dQ4(^ z@4ffld+*oFFqwt^h=eRx7IW6xZ}0c+J?Fjq_Wd~P!U}c(l)Zi3NiF>Y^-@;>b_$7_ zF_upb3Y7tn!*DY3L4%+Wg+ds^+Qegb6TgzeMqz8rRZgHYjUATTI6Bs45MA~GsECN?fUAu%aAB{eNQ zBQq;ICpRy@ps=X8q_nKOqOz*GX0BmgZC!msW7GTv%`L5M3)>eh?&$35?&)2!bXni> z75yt$4Xj?XcHR078#is-GS z;=T8O`Q*coe*XQl&%gNctFOQL_WK`x{ORLQKluBPzr=69{`u~A_uc=>BM(0G^6QU1 z{=}0{J^jqH&%f~EOAkN#z}s)U_0DUrzIpF+;xZw2iz}`itGD-vzwWMUk2qz@6V5hO z+;!HJm;Rp=JZIc@o;yxYBYEcZSnF1CjCrBQN_CvXHi_dUPLLRl6URtwH}Od(KH0?M zY50;$#pOa=HFEWyYlOJ&`WtQ(w+M0D?RV_IbNn>3K1He>5~oU>CUN@U&`wF_IK!;| z8xcbPbN~wL$-O~gYyn1d70Ss~uw)(0KVazqEFHk1`_Iw=SULb<=>Voh2Ov)btmF}a zH3&Aag;Jg{%)m^{f<0!#0dt^&Bb?w2HC*5dH@L$Cp74SO-td7hw9r8hKlpONJJqTF^EMR;*o$vBq13oNJSdbk%3HPAsac!MIQ1|fI<|Z7$qo08Ol+C zN_oOjjT+2_0rOCcI@F^9jcCGrEI>0_(26!JL^~E?F*?wRE_9;@y;y>!ScX0<#|rdg zC01botFZ=au@3980UNOio3Vw#3btnztJ$43?9X8w$7#HkxAAt~!Gk=+J9(E@!^3(H zt+!UKbJgiFjQ!Y)J=llcT*cK~L)Bzp1JzO;*Ks{Ja3eR-5H)i%w{R=BkrffQlPxK^ zgFCs4ySax3$pIr&K~WS<1r$f|lt;0YPf3(aDU?cSluj9xNtKjE*_1=Mlt3|5Mx~TU zMO043R7fQhK`L^j08*0+`I9p-xswNZk{4;nn|#QZB1ua+(vu&#k`skdD7jG(g;OvE zQphy79}}{lHQHhJ&`bNZ(th1I`(d=7rTuaPNc-gmFxk)2ez^gR_OrB~+F9C9X8T#% KPa`9d>ySux) zdrN)0B$peQ=}<0|foX4N-hOZYC%gZCJM-qj3ex~62Zs8RT8H&|saFBE3Mn-cD8KA8 z>}vsOhRTTh7(qIPLW~b7d!Myz}-v8bWz)E3FHcH!R(`U@In`J*+ z<>2V#?BeR??&0a>?c?j`uhwV-I4~$UL>C$s9uXN89TOWDpOBc8oRXTBo{^cAos*lF zUr<<7TvA$AUQt<9T{EY4Ze6{;p|NRRb4zPm`}~g1uI`@RzW#y11q+83Enc#8+3@le zD_5;vvv%G34gd5fXHPoZJ)xW{&fBA$Ke3wfe1R$Q1|e<~H}9HUzx&?qk3abEr(Zw) z?DH?a{Oap(zWe@%A3yr!{Xc*EL;Ujd@9%tj?|m;n{J?`Rz4qv1k3aF`Q%^th-19HI z_|PNwzxDc?Z@>D=8}~dbE*9bvaoOdQ`OL*TuQ4~`5c!{Wx>7?#JH<^x+;Zz}x8EV|+S}2npD1ywl#`^KEajAu(QOh;<5ZJ&XcQeyRzQXI)OS$G z5-5a1IrR*d$isC5mI`R8fPee;EERD4S}Yatzg+=kM`$HmL~9UipoFdLFsEY%X2K4$ zV2{~Q!2ynNf-_v;3OBgJ1D^1LH+nfk;Fl8Zn4P z9O99HL?j^@DM&>c(vg8oWFZ?l$VDFVQGh}ep%^77MH$LbflAroR-*=UP>Z>!Lp}6p zKqHzk56x&nE85VG`RG6=y3mat^r8>_7{DMFU?GOE2#c`>c^hxn`m;gfq4CrdX*xAsFlg1-ft}ce z-CV`hTtn4V%e7QT^<2+-Zs104qET+<7H;J>ZYL`u?jR-EayR#IFZXdjjqo7GsDh#> znhGe6;wg_}DW8%knNlc~(kPuWD3dBFi?S()aw&mgsEkS}k&39Cim8xFD1ubvK!M~; zE)+mc#NW^s~R#z$W@N t2B@`0`Y}#FOZw#lko3z3V5FZ%$wWU(`l*8@{bZt_M`)18aG2?*zW_lJc*g($ diff --git a/lib/iconv/ccs/binary/koi8_uni.cct b/lib/iconv/ccs/binary/koi8_uni.cct deleted file mode 100644 index 87444494f70651239c5d0f89c274c78be1ef2848..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5204 zcmeHLRdiid5Z$@i@icBPdf!V<+}+)^acxp>)3iw~bpr|%D3IVzfg+($oC3w&-QC^Y zZ%>j3tLaB2%|ce*thLXcbI;5infozoUh%;OOM+ z;_Bw^;pwIG_VM-e4^Z`nz#tJE5*ijB5g8R76B`$wkeHO5lA4yDk(rg9lbe@cP*_x4 zQd(ACQCU@8Gqtv^zM-+HxuvzOy<=Ku*Yp`PXU(27ci#N&1w9KF_4X}ZvUJ(<{uL`% ztzNTs-TDn14|Jn*q``&5MrUc~Yub6k+OS+8aqftAxWf(CU4P?EH}AUT*4uX9uHAXp zJMaGV(fc3#`0FR1e)jnnUw-xVx8HsL!-pTg_vdeaXutgY``h2#bMH$J-T%OguRikV zV~;=aM`N=XPhZR4xXZEr=B+9vHvFluifjMXYZv?BK7piao0`S5r1FwNU0qqv0371iDM*& z<=9cuwix+1BOh<%!=V$T^HzxyB~Fq!c|Z>TpoH_U3P3R*-?qv~2{7!dSdA}&$?M;I z0aFEFssQ%+|4bEtW~u-*Qw1<7DgfCLFq16;a}XA=gq7?t*uWNcu*VcQz!6Sxh6`Nb z26uSC6JF548$R%bAN&yj6?zyDh#&|ABLtxcLpUN3i6}%P2C;}kJQ9$IBqSpRsYpXQ zGLVTZWFrT;$U{B~P>3QFqXeZWLpdr?i7Hg1Ms_%AQHOdopb<@IMhjZehIVvd8amO1 z>6n3;n1$JxgSnW8`RK+1^k5+tp%;Bvj3ro#Wmt}WtiVdF!fLF+TCBr*Y`{hVp$L27 zB;16T@D)KKQY4B@u}N$eTf|l|AO=-0Rj2x@eg>WDs=8rFZ@@O}#!l?OE^Nm(*0G+o zY+xgs*vuBTvW@NR;2=BMrT3shbDEK~pe3znO&i+Mj`kd&107k-SjMrKiA-W46IjGl zrZJrv%w!g`nZp|9GLQKzU^3%b$qJ^hlvONa3CkHxCpt5jZggi5T`A~A9lhy8U;5FX z0gRzaJq-+`2VEG+2zoM7oBmr=NQO D&wpcQ diff --git a/lib/iconv/ccs/binary/ksx1001.cct b/lib/iconv/ccs/binary/ksx1001.cct deleted file mode 100644 index 2bfef0037761c740913e0587f375c5fc631e257f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335764 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∓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 N&=UogO-^;_{{S0)5Y7Mq diff --git a/lib/iconv/ccs/binary/win_1250.cct b/lib/iconv/ccs/binary/win_1250.cct deleted file mode 100644 index 5a4b4af9c0fd455d0268f1763e4013c7c33d68f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4692 zcmeH~32@Ix6vsdBm&=hv+&P3_g1Ct|6N1EjCnQLaQxHcat{_6E(_?y1@9C{=>Znj! zSF0D*rm50{B1n~{RaJUWTBWZW{xO(#+6lvqW@q;IzHi^Y-P!&8X5K79C7@DvdPZW~ zkPg8{M}eDV`mhVuj9k_{W59&*a@fm)SVflQWI0<}?&e~-UPX4fx2;ILMmK<1PR=f_ zZj~xmsp{_GS3)Yu}+` zr_P~aUAl&M>)sR#PntOxYqAuUlotVi^y9y?wdKXFn|omM@g zXU~mPhusy_VglOI3*sZ^*_Tu}e;eg7NPH{Vu$@wLx>R{i`J$Fwhg zRekp>)jhx6`?TuIZ`}Rlmw(>(OxYSmzwi6Qp&xkem3Qucwk%L#ukHq(zcT#=)mQbc zD@Xs6|JdVZ+Jg_>st-SMo8EEfqsF`aV&Yw8>Yk^{)OEABT(_Mr-ROx+otsXZ0(iaz zmj7UuDS_qBuE@O6H&9UlD=OfP{s*tY{uLGQ8eHPvFL85MK=UFL^F(yQ85dk}GcU}_ zRG}*Fc;HDjyr@nMYEp~Z)S)ik_~45l_3)=Y4X_CykcKp(F+nt;Da~k33tG~O*0dp* zwuI1*_H>{lo#;#`VRWG@;dG-rJ%}KZp7f$OedtR+`ZIum3}P@t7;0X)(F|iaF~l;0 zk&Ggact$gZu_Ta463L{H$~e*(&jcot&Lk!?g{fpPjZCtb&J1QUi`ir|hq=rnhxz2P zfQ5Fxs_kofeLKju?Es^KCCLtzco`?TGS~RtwvS!U_O}D=nszPKfIvyM!(_Ci$pV?j zBCEjKBN60@GmBZmQkF>q%gJX2DRnY+|!m zY>`lLr9j*%6mPbQFWcBIp5i4vr7t_!DN*cVw~Ueu_DUxEDV7utNGu0ABun|2%x_JNq diff --git a/lib/iconv/ccs/binary/win_1251.cct b/lib/iconv/ccs/binary/win_1251.cct deleted file mode 100644 index 37e64b4812c170e125945cb1f7c58e042d8fdb2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4180 zcmeH~cTiMU6vn^Z{pd(%fu-GDdS~go^xj#4r6brC3wE)a-ZTkDlT0*Gk`N6MjV4i( zkluUmz4zYx%Nqn|$v-m8#5i&9%)95@d(N42@BO`*GY1OT1F-Mu>h9DhrRrsUGGMEe zzq+GR-WfBT&46r%%ZMCf1Wih%G(1!z^5|;(GnF0#GPbw6V3bcW`ua zp5)@{=I-I?<*oMd_0#wV1O^2Qtu7=qEIcAIDmo@MEi;YtX;Q$!^Y#?tWS36mv--w2Bf`%`}Ru*4$2#c4j+-{q2tAl%YOZ7r{8er zO*dY9!RCuDl&-$`o_p`R|A7Y|diaq?AA9_XC!c!ynP;DS{)HD`dij-CUwi$HH{W{u zop;}R|AP-d`uLMiKl}WPFTeWwn{U7S{)Zob`uUe%fBXH9KmU@XTYJyE{jQtuzGM59 zJFk+i*)^^+SU6pGi^bxVC zgIL5N9tlW<9!W?>3R01VbY#E)BQlYNY~&ypdB{fr3Q>e&l%N!4C`Sbsi3}ZMW7|AF`GlsE@V>}a>NIjF7 z%oL_Fjp@vwfktLBi`mR!F7uer0v57}#Vlbd%UI3|Ry_E4o!2ysX_+dvGKZfyh7(Z&M)|xqllLSBi2Ga<1 AzW@LL diff --git a/lib/iconv/ccs/binary/win_1252.cct b/lib/iconv/ccs/binary/win_1252.cct deleted file mode 100644 index 1375127bdca1b7bd4fade1ff0433eeb00011a4c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4692 zcmeH~1x!_86vuz}k`|&M0s?;TshA+3s9<4tJ-|c(8v|P~Kxfz7#E#i57Irsww_D2da-_HNkJ^Rl8Zf6GxOTaQBEIioL%iBxEwZTGGukNc|;L% zILILmbA+QD<2WZc$tg~AhO?aGJPBOjBA2+#6|QoP>)hZbx46w6?sAX&Jm4XZc+3-? z@{H%a;3cnk%^TkGj`w`vBg%hHKe0kl97T-ujeZd?dx#LpN9ZI)iBhkkq@Z6U$XZRP Pu diff --git a/lib/iconv/ccs/binary/win_1253.cct b/lib/iconv/ccs/binary/win_1253.cct deleted file mode 100644 index 303dd4c6711a1e81df35ed85dda424babb7cdd47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4692 zcmeH~cTm(<5XV1vOS2&gC?MdEQ?V;WRIvBn5PQL{Sg?!TOoApRP7<-jn1Z2)B1J$& z?7bzK^xk{#Juh#}o$>xMa~d6!dow$``*!xdef#~*e1D4x55OZSAu&EYA}UhbL&4pw zCH60^ckGsD9Oy7!R&5tVDYIG3O1WrpY`L1<9L{y@MrYQI>;NXSxVXBxdsL}ft$Gd5 znqIYPd;9p-sq5z-P%khjxV{l$Y0$7yXyYbLn>BCIvQ_J_@QBDZQEl6`kB;fku~X+R zUAuMf(X&_YK7IT3A24vx;2}eY#SV`fF>=)CF=NM#pD;0g(&Q;qr%j(Rb5_FaIdkVF z&R?)_(c&dbmnAJn*8DrKM+NW@YE7+`Rk(RajJ9qDsrkbzX(4yjJ$@ z7{BXwEc&`?-n;t=wQv6cbx<8TeB|h{<0np@I(_Esx$_q;UV7^3XVkOLJ^#XsFTMQA ztFOKO#+z@w{m#4Zz5l_7AAS7Er=NZP#g|`w{mr-EegDIcKmGj6ufP5N$92_VP2Rp^ zk5Zdc?o?a0CaVp1Z`0fBubjKlX5F{TX5BP>$4$HG>Wg+>?feIAv!+1JgD#Ff&8#WV z(OhTVt?z)70dGA9_7yl8(8+-IUxdwbGN7#!H%{w`(4eRrK zns`x*+IZuGFLkJkAN~YTk3fP5ralHCSZF{)8WBokn$VPHG^YhEX+>+o2q%I_+7Lxs z+R>h9V(36eI?r62tnz(58um?3(?9Y!p}iDLvK8O3PEFqUzQ zX95$6XA+Z{!c?X)of*tz775H|4s)4DBJ)|mLKd-@B`jqbNi1gtD_O;A*07d!MxIhe zfGNcYHbM=<2+>}cmgv7bZ1@@eMxYU7SPXB&N2w5tj>p*Iq{@2PKpN>}kVzKVCm2+}lF33f>q$~Y@!%v=}RDh9Uvcj*uFfGwqY|9RQy>HRq sNX(UZDjI&VgCC`=@Z)P(;U`%x!_Q^-rGiaT$v=c&|DXO#@avQR1Qz`OO#lD@ diff --git a/lib/iconv/ccs/binary/win_1254.cct b/lib/iconv/ccs/binary/win_1254.cct deleted file mode 100644 index e866480f239e5ae9c185ddbd85d21e32396d83d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4692 zcmeH~bx@UQ6vlt=M_P!23J90?UKLv}2rAg!b-`A`#=sWr9d*t9XW1}kYz4*cZtQNw zwY$6b+s|O-GAa&h?C5=GzIo4cV$Qth`DUIu2zM+B>NjZEsBx2~&6)>?god?f*{XG$w(Y{(cj(wDqH~w7-MaVa z*()-tcb~rf`VSbG(laJao-%dX^cgc_VrR{cn=^Ob`~?daEnc#8+42=DSFK*NcHR07 z8#is<62EoZ_8mKS?cTFj-GAWVp~FXx9y@;GWP+-mK6Ccm`3n~>UA}Vl+VvYZZ{1e! z-n;+c;iJb-o<4j2BBkc)zB|cNPQ6U-NsfP+@Xqts-y_GpLrJZPNr9O?*bG^~r%Yh@ zdy~ez*PEjA&(T`SuhE0l-+mvW4juM~hJOCHXhfnlYJ8&g)$X6ZTBoFq#wG>dpN;Zb z0#pAmMU%kPS6eE-^#m*m_%Q}73iz?<{C{E=1^jYceBTPFZG=Kw5v{Ps23zd34KodC zNk@7z;6O$k$wX$Ha3%{`$%YHAxRD)qJka5ZM2~?S@0t#)vmQ z6u}oiic*Z?_!B@0N>Yl_l%Xu;C{G0{Qi;k`p(@p=P7P{Oi`vxDHr#rc2qcL5G@v1k zXiO8D(v0Q=6GA9qw4f!eXiXd1(vEQ2(}9k3B7)9zp)1|!P7iw0i%6pAO&|KwkNyl` zpo~*h=_aD3PI^fx^-8=nicskh z$~2}kgPFt-%PeLS#~kJ|kNGTMA&Xed5|*-z<*Z;Ot60q%*0PTEY+xgs*vuB<*~&Jy zvxA-NVmEu(D|GDV00%k5VUBQ=V;tuMCrJ=S5zJ}MaF%nN=K>eG#AU8v~6Ca=-jee0L{dkHG(2qvHQ27V6a_s>C diff --git a/lib/iconv/ccs/binary/win_1255.cct b/lib/iconv/ccs/binary/win_1255.cct deleted file mode 100644 index 092c358384c4b26d4c03194a63c996f0c563a1aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5204 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 b(eh)JUn;pqeyJistny=%U#ijaOPTQx3f|8^ diff --git a/lib/iconv/ccs/binary/win_1258.cct b/lib/iconv/ccs/binary/win_1258.cct deleted file mode 100644 index 3de80ba970b0017d10fad9763187f2522b1a817f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5204 zcmeI0XHZpF5XXP#UaFO*0suovu#1-oF+q-T;ZA$^jWfL%es-fI+F z)DVr8#1gwvLp1i}NHXtyloD2>LEngw5Vx`Jes#dFBqh@$SWUbm!b?QdP#MZ0d zpkbrNO`0}q-lAoz)@|ChYu}+`r_Nn0aq(Tdb??!$SMNT3`z7=rFmTY|Aw!1^PaH9F z)aax!W5r%j(RbJl;Al9oPu&fIzP7c5+~I3sh((yZ)d%U7&iwR+9k zb?Y~5+_ZVi)@|F>j-5HXcJJA{PwhW&Q01yaht-jz$Bv&knWxmL(`U}AbLTHyyma}> zRdwz94VABM-cq;k+`V`I!9#2EZ+^DD!*{>hB75`?zWP5=U;pb*ZKhbJ7e*261$!huDY_~zb+32r=`srszl^>?Qu0HzsP4)IWpBU(^f9ig( zP<#K&LhX6UKVN%ZnM`@UFrk+YpcRY&_Ex4DBY?fJj<^@!0mlU3m;heghEgy01Ym3ggs~#fal#oFT#XHbJ4Gl;F^W@yl6c^W7vA_#iqe$97eD+d zO8|icQ4UEkA%s$%3WQOSN>ru_RjEdGYEYAKB8a3GwTYq*b%`d1Sn5%q1~jA*jcGzt zn$esVw4@cSX+vAu(Vh-;q?57X=z@hf;^|5^y3>Q6^rAO?=u1Bm=+6KKGKj$pVJO2G zP9h^1$tXsX#2Cghj`2)jB9oX*GAT@9D$|(G3}!M*W-2B9MXC&vVN%LqEk}kMmKb3v zd<4>0`pEzpC_|*T^wIKyLkxeci2K_wQb;46+00=s^O(;97P5%NWRS@cmXbv_%UI3| zRDNb{SvqI+_=efW|E^(PFT-62FxXumXNxmM+O>T*FZgYpb+~YnEcqp=E z2I>{3pG>Kgzf2Vc^vfJA+_1z*izwvZM8C|_LV}fwm2p;oib2XVpdU>j_pdVd4Mn6Kg(vPReCsa4+CtaB6CtGAl#a}Nc=6nDE diff --git a/lib/iconv/ccs/ccs.h b/lib/iconv/ccs/ccs.h deleted file mode 100644 index c640b64..0000000 --- a/lib/iconv/ccs/ccs.h +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#ifndef __CCS_H__ -#define __CCS_H__ - -#include <_ansi.h> -#include -#include - -/* - * Size-optimized tables will be linked instead of speed-optimized if - * TABLE_USE_SIZE_OPTIMISATION macro is defined. - */ -#if defined (PREFER_SIZE_OVER_SPEED) || defined (__OPTIMIZE_SIZE__) -# define TABLE_USE_SIZE_OPTIMIZATION -#endif - -/* Invalid code marker */ -#define INVALC 0xFFFF -/* Invalid block marker - marks empty blocks in speed-optimized tables */ -#define INVBLK 0xFFFF -/* Lost code marker - marks codes that was lost during CCS->UCS mapping */ -#define LOST_C DEFAULT_CHARACTER - -/* - * Table parameters values. - */ -/* Table version 1.0 identifier */ -#define TABLE_VERSION_1 1 -/* 8 and 16 bit tables identifiers */ -#define TABLE_8BIT 8 -#define TABLE_16BIT 16 -/* Size-optimized and speed-optimized tables identifiers */ -#define TABLE_SIZE_OPTIMIZED 1 -#define TABLE_SPEED_OPTIMIZED 2 -/* Built-in/external tables identifiers */ -#define TABLE_BUILTIN 1 -#define TABLE_EXTERNAL 2 - -/* - * Binary table fields. - */ -/* "No table" marker */ -#define EXTTABLE_NO_TABLE 0 -/* Version offset (2 bytes) */ -#define EXTTABLE_VERSION_OFF 0 -/* Bits number offset (2 bytes) */ -#define EXTTABLE_BITS_OFF 2 -/* CCS name length offset (2 bytes) */ -#define EXTTABLE_CCSNAME_LEN_OFF 4 -/* CCS name offset (expanded to even bytes number)*/ -#define EXTTABLE_CCSNAME_OFF 8 -/* Header length (minus CCS name) */ -#define EXTTABLE_HEADER_LEN (EXTTABLE_CCSNAME_OFF + 16*4) -/* Tables and lengths offsets minus CCS name length (4 bytes) */ -#define EXTTABLE_FROM_SPEED_BE_OFF (EXTTABLE_CCSNAME_OFF + 0) -#define EXTTABLE_FROM_SPEED_BE_LEN_OFF (EXTTABLE_CCSNAME_OFF + 4) -#define EXTTABLE_FROM_SPEED_LE_OFF (EXTTABLE_CCSNAME_OFF + 8) -#define EXTTABLE_FROM_SPEED_LE_LEN_OFF (EXTTABLE_CCSNAME_OFF + 12) -#define EXTTABLE_FROM_SIZE_BE_OFF (EXTTABLE_CCSNAME_OFF + 16) -#define EXTTABLE_FROM_SIZE_BE_LEN_OFF (EXTTABLE_CCSNAME_OFF + 20) -#define EXTTABLE_FROM_SIZE_LE_OFF (EXTTABLE_CCSNAME_OFF + 24) -#define EXTTABLE_FROM_SIZE_LE_LEN_OFF (EXTTABLE_CCSNAME_OFF + 28) -#define EXTTABLE_TO_SPEED_BE_OFF (EXTTABLE_CCSNAME_OFF + 32) -#define EXTTABLE_TO_SPEED_BE_LEN_OFF (EXTTABLE_CCSNAME_OFF + 36) -#define EXTTABLE_TO_SPEED_LE_OFF (EXTTABLE_CCSNAME_OFF + 40) -#define EXTTABLE_TO_SPEED_LE_LEN_OFF (EXTTABLE_CCSNAME_OFF + 44) -#define EXTTABLE_TO_SIZE_BE_OFF (EXTTABLE_CCSNAME_OFF + 48) -#define EXTTABLE_TO_SIZE_BE_LEN_OFF (EXTTABLE_CCSNAME_OFF + 52) -#define EXTTABLE_TO_SIZE_LE_OFF (EXTTABLE_CCSNAME_OFF + 56) -#define EXTTABLE_TO_SIZE_LE_LEN_OFF (EXTTABLE_CCSNAME_OFF + 60) -/* Endian-independent offsets */ -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define EXTTABLE_FROM_SPEED_OFF EXTTABLE_FROM_SPEED_LE_OFF -# define EXTTABLE_FROM_SIZE_OFF EXTTABLE_FROM_SIZE_LE_OFF -# define EXTTABLE_TO_SPEED_OFF EXTTABLE_TO_SPEED_LE_OFF -# define EXTTABLE_TO_SIZE_OFF EXTTABLE_TO_SIZE_LE_OFF -# define EXTTABLE_FROM_SPEED_LEN_OFF EXTTABLE_FROM_SPEED_LE_LEN_OFF -# define EXTTABLE_FROM_SIZE_LEN_OFF EXTTABLE_FROM_SIZE_LE_LEN_OFF -# define EXTTABLE_TO_SPEED_LEN_OFF EXTTABLE_TO_SPEED_LE_LEN_OFF -# define EXTTABLE_TO_SIZE_LEN_OFF EXTTABLE_TO_SIZE_LE_LEN_OFF -#elif (BYTE_ORDER == BIG_ENDIAN) -# define EXTTABLE_FROM_SPEED_OFF EXTTABLE_FROM_SPEED_BE_OFF -# define EXTTABLE_FROM_SIZE_OFF EXTTABLE_FROM_SIZE_BE_OFF -# define EXTTABLE_TO_SPEED_OFF EXTTABLE_TO_SPEED_BE_OFF -# define EXTTABLE_TO_SIZE_OFF EXTTABLE_TO_SIZE_BE_OFF -# define EXTTABLE_FROM_SPEED_LEN_OFF EXTTABLE_FROM_SPEED_BE_LEN_OFF -# define EXTTABLE_FROM_SIZE_LEN_OFF EXTTABLE_FROM_SIZE_BE_LEN_OFF -# define EXTTABLE_TO_SPEED_LEN_OFF EXTTABLE_TO_SPEED_BE_LEN_OFF -# define EXTTABLE_TO_SIZE_LEN_OFF EXTTABLE_TO_SIZE_BE_LEN_OFF -#endif - -/* - * Size-optimized suitable fields indexes. - */ -/* Ranges number array index */ -#define RANGES_NUM_INDEX 0 -/* Un-ranged codes number array index */ -#define UNRANGED_NUM_INDEX 1 -/* First un-ranged pair index array index */ -#define FIRST_UNRANGED_INDEX_INDEX 2 -/* First range array index */ -#define FIRST_RANGE_INDEX 3 - - -/* - * Builtin CCS table description structure. - */ -typedef struct -{ - __uint16_t ver; /* Table version */ - const char *name; /* CCS name */ - __uint16_t bits; /* CCS's bits number */ - int from_ucs_type; /* UCS -> CCS table optimization type */ - const __uint16_t *from_ucs; /* UCS -> CCS table */ - int to_ucs_type; /* CCS -> UCS table optimization type */ - const __uint16_t *to_ucs; /* CCS -> UCS table */ -} iconv_ccs_t; - -/* - * CCS table descriptor. - */ -typedef struct -{ - int bits; /* CCS's bits number */ - int type; /* Table type (builtin/external) */ - int optimization; /* Table optimization type (speed/size) */ - const __uint16_t *tbl; /* Table's data */ -} iconv_ccs_desc_t; - -/* Array containing all built-in CCS tables */ -extern const iconv_ccs_t * -_iconv_ccs[]; - -#endif /* __CCS_H__ */ - diff --git a/lib/iconv/ccs/ccsbi.c b/lib/iconv/ccs/ccsbi.c deleted file mode 100644 index 376123e..0000000 --- a/lib/iconv/ccs/ccsbi.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * This file was automatically generated mkdeps.pl script. Don't edit. - */ - -#include <_ansi.h> -#include "ccsbi.h" - -/* - * The following array contains the list of built-in CCS tables. - */ -const iconv_ccs_t * -_iconv_ccs[] = -{ -#if defined (ICONV_TO_UCS_CCS_BIG5) \ - || defined (ICONV_FROM_UCS_CCS_BIG5) - &_iconv_ccs_big5, -#endif -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE1) \ - || defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE1) - &_iconv_ccs_cns11643_plane1, -#endif -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE14) \ - || defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE14) - &_iconv_ccs_cns11643_plane14, -#endif -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE2) \ - || defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE2) - &_iconv_ccs_cns11643_plane2, -#endif -#if defined (ICONV_TO_UCS_CCS_CP775) \ - || defined (ICONV_FROM_UCS_CCS_CP775) - &_iconv_ccs_cp775, -#endif -#if defined (ICONV_TO_UCS_CCS_CP850) \ - || defined (ICONV_FROM_UCS_CCS_CP850) - &_iconv_ccs_cp850, -#endif -#if defined (ICONV_TO_UCS_CCS_CP852) \ - || defined (ICONV_FROM_UCS_CCS_CP852) - &_iconv_ccs_cp852, -#endif -#if defined (ICONV_TO_UCS_CCS_CP855) \ - || defined (ICONV_FROM_UCS_CCS_CP855) - &_iconv_ccs_cp855, -#endif -#if defined (ICONV_TO_UCS_CCS_CP866) \ - || defined (ICONV_FROM_UCS_CCS_CP866) - &_iconv_ccs_cp866, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_1) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_1) - &_iconv_ccs_iso_8859_1, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_10) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_10) - &_iconv_ccs_iso_8859_10, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_11) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_11) - &_iconv_ccs_iso_8859_11, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_13) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_13) - &_iconv_ccs_iso_8859_13, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_14) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_14) - &_iconv_ccs_iso_8859_14, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_15) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_15) - &_iconv_ccs_iso_8859_15, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_2) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_2) - &_iconv_ccs_iso_8859_2, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_3) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_3) - &_iconv_ccs_iso_8859_3, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_4) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_4) - &_iconv_ccs_iso_8859_4, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_5) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_5) - &_iconv_ccs_iso_8859_5, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_6) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_6) - &_iconv_ccs_iso_8859_6, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_7) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_7) - &_iconv_ccs_iso_8859_7, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_8) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_8) - &_iconv_ccs_iso_8859_8, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_9) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_9) - &_iconv_ccs_iso_8859_9, -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_IR_111) \ - || defined (ICONV_FROM_UCS_CCS_ISO_IR_111) - &_iconv_ccs_iso_ir_111, -#endif -#if defined (ICONV_TO_UCS_CCS_JIS_X0201_1976) \ - || defined (ICONV_FROM_UCS_CCS_JIS_X0201_1976) - &_iconv_ccs_jis_x0201_1976, -#endif -#if defined (ICONV_TO_UCS_CCS_JIS_X0208_1990) \ - || defined (ICONV_FROM_UCS_CCS_JIS_X0208_1990) - &_iconv_ccs_jis_x0208_1990, -#endif -#if defined (ICONV_TO_UCS_CCS_JIS_X0212_1990) \ - || defined (ICONV_FROM_UCS_CCS_JIS_X0212_1990) - &_iconv_ccs_jis_x0212_1990, -#endif -#if defined (ICONV_TO_UCS_CCS_KOI8_R) \ - || defined (ICONV_FROM_UCS_CCS_KOI8_R) - &_iconv_ccs_koi8_r, -#endif -#if defined (ICONV_TO_UCS_CCS_KOI8_RU) \ - || defined (ICONV_FROM_UCS_CCS_KOI8_RU) - &_iconv_ccs_koi8_ru, -#endif -#if defined (ICONV_TO_UCS_CCS_KOI8_U) \ - || defined (ICONV_FROM_UCS_CCS_KOI8_U) - &_iconv_ccs_koi8_u, -#endif -#if defined (ICONV_TO_UCS_CCS_KOI8_UNI) \ - || defined (ICONV_FROM_UCS_CCS_KOI8_UNI) - &_iconv_ccs_koi8_uni, -#endif -#if defined (ICONV_TO_UCS_CCS_KSX1001) \ - || defined (ICONV_FROM_UCS_CCS_KSX1001) - &_iconv_ccs_ksx1001, -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1250) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1250) - &_iconv_ccs_win_1250, -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1251) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1251) - &_iconv_ccs_win_1251, -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1252) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1252) - &_iconv_ccs_win_1252, -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1253) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1253) - &_iconv_ccs_win_1253, -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1254) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1254) - &_iconv_ccs_win_1254, -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1255) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1255) - &_iconv_ccs_win_1255, -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1256) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1256) - &_iconv_ccs_win_1256, -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1257) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1257) - &_iconv_ccs_win_1257, -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1258) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1258) - &_iconv_ccs_win_1258, -#endif - NULL -}; diff --git a/lib/iconv/ccs/ccsbi.h b/lib/iconv/ccs/ccsbi.h deleted file mode 100644 index 97a88a0..0000000 --- a/lib/iconv/ccs/ccsbi.h +++ /dev/null @@ -1,521 +0,0 @@ -/* - * This file was automatically generated mkdeps.pl script. Don't edit. - */ - -#ifndef __CCSBI_H__ -#define __CCSBI_H__ - -#include -#include <_ansi.h> -#include "ccs.h" - -/* - * Enable CCS tables if encoding needs them. - * Defining ICONV_TO_UCS_CCS_XXX macro or ICONV_FROM_UCS_CCS_XXX - * macro is needed to enable "XXX encoding -> UCS" or "UCS -> XXX encoding" - * part of CCS table. - * CCS tables aren't linked if Newlib was configuted to use external CCS tables. - */ -#ifndef _ICONV_ENABLE_EXTERNAL_CCS - -#if defined (_ICONV_FROM_ENCODING_BIG5) -# define ICONV_TO_UCS_CCS_BIG5 -#endif -#if defined (_ICONV_TO_ENCODING_BIG5) -# define ICONV_FROM_UCS_CCS_BIG5 -#endif - -#if defined (_ICONV_FROM_ENCODING_EUC_TW) -# define ICONV_TO_UCS_CCS_CNS11643_PLANE1 -#endif -#if defined (_ICONV_TO_ENCODING_EUC_TW) -# define ICONV_FROM_UCS_CCS_CNS11643_PLANE1 -#endif - -#if defined (_ICONV_FROM_ENCODING_EUC_TW) -# define ICONV_TO_UCS_CCS_CNS11643_PLANE14 -#endif -#if defined (_ICONV_TO_ENCODING_EUC_TW) -# define ICONV_FROM_UCS_CCS_CNS11643_PLANE14 -#endif - -#if defined (_ICONV_FROM_ENCODING_EUC_TW) -# define ICONV_TO_UCS_CCS_CNS11643_PLANE2 -#endif -#if defined (_ICONV_TO_ENCODING_EUC_TW) -# define ICONV_FROM_UCS_CCS_CNS11643_PLANE2 -#endif - -#if defined (_ICONV_FROM_ENCODING_CP775) -# define ICONV_TO_UCS_CCS_CP775 -#endif -#if defined (_ICONV_TO_ENCODING_CP775) -# define ICONV_FROM_UCS_CCS_CP775 -#endif - -#if defined (_ICONV_FROM_ENCODING_CP850) -# define ICONV_TO_UCS_CCS_CP850 -#endif -#if defined (_ICONV_TO_ENCODING_CP850) -# define ICONV_FROM_UCS_CCS_CP850 -#endif - -#if defined (_ICONV_FROM_ENCODING_CP852) -# define ICONV_TO_UCS_CCS_CP852 -#endif -#if defined (_ICONV_TO_ENCODING_CP852) -# define ICONV_FROM_UCS_CCS_CP852 -#endif - -#if defined (_ICONV_FROM_ENCODING_CP855) -# define ICONV_TO_UCS_CCS_CP855 -#endif -#if defined (_ICONV_TO_ENCODING_CP855) -# define ICONV_FROM_UCS_CCS_CP855 -#endif - -#if defined (_ICONV_FROM_ENCODING_CP866) -# define ICONV_TO_UCS_CCS_CP866 -#endif -#if defined (_ICONV_TO_ENCODING_CP866) -# define ICONV_FROM_UCS_CCS_CP866 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_1) -# define ICONV_TO_UCS_CCS_ISO_8859_1 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_1) -# define ICONV_FROM_UCS_CCS_ISO_8859_1 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_10) -# define ICONV_TO_UCS_CCS_ISO_8859_10 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_10) -# define ICONV_FROM_UCS_CCS_ISO_8859_10 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_11) -# define ICONV_TO_UCS_CCS_ISO_8859_11 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_11) -# define ICONV_FROM_UCS_CCS_ISO_8859_11 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_13) -# define ICONV_TO_UCS_CCS_ISO_8859_13 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_13) -# define ICONV_FROM_UCS_CCS_ISO_8859_13 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_14) -# define ICONV_TO_UCS_CCS_ISO_8859_14 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_14) -# define ICONV_FROM_UCS_CCS_ISO_8859_14 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_15) -# define ICONV_TO_UCS_CCS_ISO_8859_15 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_15) -# define ICONV_FROM_UCS_CCS_ISO_8859_15 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_2) -# define ICONV_TO_UCS_CCS_ISO_8859_2 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_2) -# define ICONV_FROM_UCS_CCS_ISO_8859_2 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_3) -# define ICONV_TO_UCS_CCS_ISO_8859_3 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_3) -# define ICONV_FROM_UCS_CCS_ISO_8859_3 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_4) -# define ICONV_TO_UCS_CCS_ISO_8859_4 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_4) -# define ICONV_FROM_UCS_CCS_ISO_8859_4 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_5) -# define ICONV_TO_UCS_CCS_ISO_8859_5 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_5) -# define ICONV_FROM_UCS_CCS_ISO_8859_5 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_6) -# define ICONV_TO_UCS_CCS_ISO_8859_6 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_6) -# define ICONV_FROM_UCS_CCS_ISO_8859_6 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_7) -# define ICONV_TO_UCS_CCS_ISO_8859_7 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_7) -# define ICONV_FROM_UCS_CCS_ISO_8859_7 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_8) -# define ICONV_TO_UCS_CCS_ISO_8859_8 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_8) -# define ICONV_FROM_UCS_CCS_ISO_8859_8 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_8859_9) -# define ICONV_TO_UCS_CCS_ISO_8859_9 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_8859_9) -# define ICONV_FROM_UCS_CCS_ISO_8859_9 -#endif - -#if defined (_ICONV_FROM_ENCODING_ISO_IR_111) -# define ICONV_TO_UCS_CCS_ISO_IR_111 -#endif -#if defined (_ICONV_TO_ENCODING_ISO_IR_111) -# define ICONV_FROM_UCS_CCS_ISO_IR_111 -#endif - -#if defined (_ICONV_FROM_ENCODING_EUC_JP) -# define ICONV_TO_UCS_CCS_JIS_X0201_1976 -#endif -#if defined (_ICONV_TO_ENCODING_EUC_JP) -# define ICONV_FROM_UCS_CCS_JIS_X0201_1976 -#endif - -#if defined (_ICONV_FROM_ENCODING_EUC_JP) -# define ICONV_TO_UCS_CCS_JIS_X0208_1990 -#endif -#if defined (_ICONV_TO_ENCODING_EUC_JP) -# define ICONV_FROM_UCS_CCS_JIS_X0208_1990 -#endif - -#if defined (_ICONV_FROM_ENCODING_EUC_JP) -# define ICONV_TO_UCS_CCS_JIS_X0212_1990 -#endif -#if defined (_ICONV_TO_ENCODING_EUC_JP) -# define ICONV_FROM_UCS_CCS_JIS_X0212_1990 -#endif - -#if defined (_ICONV_FROM_ENCODING_KOI8_R) -# define ICONV_TO_UCS_CCS_KOI8_R -#endif -#if defined (_ICONV_TO_ENCODING_KOI8_R) -# define ICONV_FROM_UCS_CCS_KOI8_R -#endif - -#if defined (_ICONV_FROM_ENCODING_KOI8_RU) -# define ICONV_TO_UCS_CCS_KOI8_RU -#endif -#if defined (_ICONV_TO_ENCODING_KOI8_RU) -# define ICONV_FROM_UCS_CCS_KOI8_RU -#endif - -#if defined (_ICONV_FROM_ENCODING_KOI8_U) -# define ICONV_TO_UCS_CCS_KOI8_U -#endif -#if defined (_ICONV_TO_ENCODING_KOI8_U) -# define ICONV_FROM_UCS_CCS_KOI8_U -#endif - -#if defined (_ICONV_FROM_ENCODING_KOI8_UNI) -# define ICONV_TO_UCS_CCS_KOI8_UNI -#endif -#if defined (_ICONV_TO_ENCODING_KOI8_UNI) -# define ICONV_FROM_UCS_CCS_KOI8_UNI -#endif - -#if defined (_ICONV_FROM_ENCODING_EUC_KR) -# define ICONV_TO_UCS_CCS_KSX1001 -#endif -#if defined (_ICONV_TO_ENCODING_EUC_KR) -# define ICONV_FROM_UCS_CCS_KSX1001 -#endif - -#if defined (_ICONV_FROM_ENCODING_WIN_1250) -# define ICONV_TO_UCS_CCS_WIN_1250 -#endif -#if defined (_ICONV_TO_ENCODING_WIN_1250) -# define ICONV_FROM_UCS_CCS_WIN_1250 -#endif - -#if defined (_ICONV_FROM_ENCODING_WIN_1251) -# define ICONV_TO_UCS_CCS_WIN_1251 -#endif -#if defined (_ICONV_TO_ENCODING_WIN_1251) -# define ICONV_FROM_UCS_CCS_WIN_1251 -#endif - -#if defined (_ICONV_FROM_ENCODING_WIN_1252) -# define ICONV_TO_UCS_CCS_WIN_1252 -#endif -#if defined (_ICONV_TO_ENCODING_WIN_1252) -# define ICONV_FROM_UCS_CCS_WIN_1252 -#endif - -#if defined (_ICONV_FROM_ENCODING_WIN_1253) -# define ICONV_TO_UCS_CCS_WIN_1253 -#endif -#if defined (_ICONV_TO_ENCODING_WIN_1253) -# define ICONV_FROM_UCS_CCS_WIN_1253 -#endif - -#if defined (_ICONV_FROM_ENCODING_WIN_1254) -# define ICONV_TO_UCS_CCS_WIN_1254 -#endif -#if defined (_ICONV_TO_ENCODING_WIN_1254) -# define ICONV_FROM_UCS_CCS_WIN_1254 -#endif - -#if defined (_ICONV_FROM_ENCODING_WIN_1255) -# define ICONV_TO_UCS_CCS_WIN_1255 -#endif -#if defined (_ICONV_TO_ENCODING_WIN_1255) -# define ICONV_FROM_UCS_CCS_WIN_1255 -#endif - -#if defined (_ICONV_FROM_ENCODING_WIN_1256) -# define ICONV_TO_UCS_CCS_WIN_1256 -#endif -#if defined (_ICONV_TO_ENCODING_WIN_1256) -# define ICONV_FROM_UCS_CCS_WIN_1256 -#endif - -#if defined (_ICONV_FROM_ENCODING_WIN_1257) -# define ICONV_TO_UCS_CCS_WIN_1257 -#endif -#if defined (_ICONV_TO_ENCODING_WIN_1257) -# define ICONV_FROM_UCS_CCS_WIN_1257 -#endif - -#if defined (_ICONV_FROM_ENCODING_WIN_1258) -# define ICONV_TO_UCS_CCS_WIN_1258 -#endif -#if defined (_ICONV_TO_ENCODING_WIN_1258) -# define ICONV_FROM_UCS_CCS_WIN_1258 -#endif - -/* - * CCS table description structures forward declarations. - */ -#if defined (ICONV_TO_UCS_CCS_BIG5) \ - || defined (ICONV_FROM_UCS_CCS_BIG5) -extern const iconv_ccs_t -_iconv_ccs_big5; -#endif -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE1) \ - || defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE1) -extern const iconv_ccs_t -_iconv_ccs_cns11643_plane1; -#endif -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE14) \ - || defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE14) -extern const iconv_ccs_t -_iconv_ccs_cns11643_plane14; -#endif -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE2) \ - || defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE2) -extern const iconv_ccs_t -_iconv_ccs_cns11643_plane2; -#endif -#if defined (ICONV_TO_UCS_CCS_CP775) \ - || defined (ICONV_FROM_UCS_CCS_CP775) -extern const iconv_ccs_t -_iconv_ccs_cp775; -#endif -#if defined (ICONV_TO_UCS_CCS_CP850) \ - || defined (ICONV_FROM_UCS_CCS_CP850) -extern const iconv_ccs_t -_iconv_ccs_cp850; -#endif -#if defined (ICONV_TO_UCS_CCS_CP852) \ - || defined (ICONV_FROM_UCS_CCS_CP852) -extern const iconv_ccs_t -_iconv_ccs_cp852; -#endif -#if defined (ICONV_TO_UCS_CCS_CP855) \ - || defined (ICONV_FROM_UCS_CCS_CP855) -extern const iconv_ccs_t -_iconv_ccs_cp855; -#endif -#if defined (ICONV_TO_UCS_CCS_CP866) \ - || defined (ICONV_FROM_UCS_CCS_CP866) -extern const iconv_ccs_t -_iconv_ccs_cp866; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_1) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_1) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_1; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_10) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_10) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_10; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_11) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_11) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_11; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_13) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_13) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_13; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_14) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_14) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_14; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_15) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_15) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_15; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_2) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_2) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_2; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_3) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_3) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_3; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_4) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_4) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_4; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_5) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_5) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_5; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_6) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_6) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_6; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_7) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_7) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_7; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_8) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_8) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_8; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_8859_9) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_9) -extern const iconv_ccs_t -_iconv_ccs_iso_8859_9; -#endif -#if defined (ICONV_TO_UCS_CCS_ISO_IR_111) \ - || defined (ICONV_FROM_UCS_CCS_ISO_IR_111) -extern const iconv_ccs_t -_iconv_ccs_iso_ir_111; -#endif -#if defined (ICONV_TO_UCS_CCS_JIS_X0201_1976) \ - || defined (ICONV_FROM_UCS_CCS_JIS_X0201_1976) -extern const iconv_ccs_t -_iconv_ccs_jis_x0201_1976; -#endif -#if defined (ICONV_TO_UCS_CCS_JIS_X0208_1990) \ - || defined (ICONV_FROM_UCS_CCS_JIS_X0208_1990) -extern const iconv_ccs_t -_iconv_ccs_jis_x0208_1990; -#endif -#if defined (ICONV_TO_UCS_CCS_JIS_X0212_1990) \ - || defined (ICONV_FROM_UCS_CCS_JIS_X0212_1990) -extern const iconv_ccs_t -_iconv_ccs_jis_x0212_1990; -#endif -#if defined (ICONV_TO_UCS_CCS_KOI8_R) \ - || defined (ICONV_FROM_UCS_CCS_KOI8_R) -extern const iconv_ccs_t -_iconv_ccs_koi8_r; -#endif -#if defined (ICONV_TO_UCS_CCS_KOI8_RU) \ - || defined (ICONV_FROM_UCS_CCS_KOI8_RU) -extern const iconv_ccs_t -_iconv_ccs_koi8_ru; -#endif -#if defined (ICONV_TO_UCS_CCS_KOI8_U) \ - || defined (ICONV_FROM_UCS_CCS_KOI8_U) -extern const iconv_ccs_t -_iconv_ccs_koi8_u; -#endif -#if defined (ICONV_TO_UCS_CCS_KOI8_UNI) \ - || defined (ICONV_FROM_UCS_CCS_KOI8_UNI) -extern const iconv_ccs_t -_iconv_ccs_koi8_uni; -#endif -#if defined (ICONV_TO_UCS_CCS_KSX1001) \ - || defined (ICONV_FROM_UCS_CCS_KSX1001) -extern const iconv_ccs_t -_iconv_ccs_ksx1001; -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1250) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1250) -extern const iconv_ccs_t -_iconv_ccs_win_1250; -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1251) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1251) -extern const iconv_ccs_t -_iconv_ccs_win_1251; -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1252) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1252) -extern const iconv_ccs_t -_iconv_ccs_win_1252; -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1253) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1253) -extern const iconv_ccs_t -_iconv_ccs_win_1253; -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1254) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1254) -extern const iconv_ccs_t -_iconv_ccs_win_1254; -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1255) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1255) -extern const iconv_ccs_t -_iconv_ccs_win_1255; -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1256) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1256) -extern const iconv_ccs_t -_iconv_ccs_win_1256; -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1257) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1257) -extern const iconv_ccs_t -_iconv_ccs_win_1257; -#endif -#if defined (ICONV_TO_UCS_CCS_WIN_1258) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1258) -extern const iconv_ccs_t -_iconv_ccs_win_1258; -#endif - -#endif /* !_ICONV_ENABLE_EXTERNAL_CCS */ - - -#endif /* __CCSBI_H__ */ - diff --git a/lib/iconv/ccs/ccsnames.h b/lib/iconv/ccs/ccsnames.h deleted file mode 100644 index 24bfafc..0000000 --- a/lib/iconv/ccs/ccsnames.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * This file was automatically generated mkdeps.pl script. Don't edit. - */ - -#ifndef __CCSNAMES_H__ -#define __CCSNAMES_H__ - -#include "../lib/encnames.h" - -/* - * CCS tables names macros. - */ -#define ICONV_CCS_BIG5 ICONV_ENCODING_BIG5 -#define ICONV_CCS_CNS11643_PLANE1 "cns11643_plane1" -#define ICONV_CCS_CNS11643_PLANE14 "cns11643_plane14" -#define ICONV_CCS_CNS11643_PLANE2 "cns11643_plane2" -#define ICONV_CCS_CP775 ICONV_ENCODING_CP775 -#define ICONV_CCS_CP850 ICONV_ENCODING_CP850 -#define ICONV_CCS_CP852 ICONV_ENCODING_CP852 -#define ICONV_CCS_CP855 ICONV_ENCODING_CP855 -#define ICONV_CCS_CP866 ICONV_ENCODING_CP866 -#define ICONV_CCS_ISO_8859_1 ICONV_ENCODING_ISO_8859_1 -#define ICONV_CCS_ISO_8859_10 ICONV_ENCODING_ISO_8859_10 -#define ICONV_CCS_ISO_8859_11 ICONV_ENCODING_ISO_8859_11 -#define ICONV_CCS_ISO_8859_13 ICONV_ENCODING_ISO_8859_13 -#define ICONV_CCS_ISO_8859_14 ICONV_ENCODING_ISO_8859_14 -#define ICONV_CCS_ISO_8859_15 ICONV_ENCODING_ISO_8859_15 -#define ICONV_CCS_ISO_8859_2 ICONV_ENCODING_ISO_8859_2 -#define ICONV_CCS_ISO_8859_3 ICONV_ENCODING_ISO_8859_3 -#define ICONV_CCS_ISO_8859_4 ICONV_ENCODING_ISO_8859_4 -#define ICONV_CCS_ISO_8859_5 ICONV_ENCODING_ISO_8859_5 -#define ICONV_CCS_ISO_8859_6 ICONV_ENCODING_ISO_8859_6 -#define ICONV_CCS_ISO_8859_7 ICONV_ENCODING_ISO_8859_7 -#define ICONV_CCS_ISO_8859_8 ICONV_ENCODING_ISO_8859_8 -#define ICONV_CCS_ISO_8859_9 ICONV_ENCODING_ISO_8859_9 -#define ICONV_CCS_ISO_IR_111 ICONV_ENCODING_ISO_IR_111 -#define ICONV_CCS_JIS_X0201_1976 "jis_x0201_1976" -#define ICONV_CCS_JIS_X0208_1990 "jis_x0208_1990" -#define ICONV_CCS_JIS_X0212_1990 "jis_x0212_1990" -#define ICONV_CCS_KOI8_R ICONV_ENCODING_KOI8_R -#define ICONV_CCS_KOI8_RU ICONV_ENCODING_KOI8_RU -#define ICONV_CCS_KOI8_U ICONV_ENCODING_KOI8_U -#define ICONV_CCS_KOI8_UNI ICONV_ENCODING_KOI8_UNI -#define ICONV_CCS_KSX1001 "ksx1001" -#define ICONV_CCS_WIN_1250 ICONV_ENCODING_WIN_1250 -#define ICONV_CCS_WIN_1251 ICONV_ENCODING_WIN_1251 -#define ICONV_CCS_WIN_1252 ICONV_ENCODING_WIN_1252 -#define ICONV_CCS_WIN_1253 ICONV_ENCODING_WIN_1253 -#define ICONV_CCS_WIN_1254 ICONV_ENCODING_WIN_1254 -#define ICONV_CCS_WIN_1255 ICONV_ENCODING_WIN_1255 -#define ICONV_CCS_WIN_1256 ICONV_ENCODING_WIN_1256 -#define ICONV_CCS_WIN_1257 ICONV_ENCODING_WIN_1257 -#define ICONV_CCS_WIN_1258 ICONV_ENCODING_WIN_1258 - -#endif /* !__CCSNAMES_H__ */ - diff --git a/lib/iconv/ccs/cns11643_plane1.c b/lib/iconv/ccs/cns11643_plane1.c deleted file mode 100644 index da1c059..0000000 --- a/lib/iconv/ccs/cns11643_plane1.c +++ /dev/null @@ -1,11211 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for cns11643_plane1 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE1) \ - || defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE1) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -/* - * 16-bit cns11643_plane1 -> UCS speed-optimized table (33792 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE1) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_speed_cns11643_plane1[] = -{ - /* Heading Block */ - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,0x0100,0x0200,0x0300,0x0400,0x0500,0x0600,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,0x0700,INVBLK,0x0800,0x0900,0x0A00,0x0B00, - 0x0C00,0x0D00,0x0E00,0x0F00,0x1000,0x1100,0x1200,0x1300, - 0x1400,0x1500,0x1600,0x1700,0x1800,0x1900,0x1A00,0x1B00, - 0x1C00,0x1D00,0x1E00,0x1F00,0x2000,0x2100,0x2200,0x2300, - 0x2400,0x2500,0x2600,0x2700,0x2800,0x2900,0x2A00,0x2B00, - 0x2C00,0x2D00,0x2E00,0x2F00,0x3000,0x3100,0x3200,0x3300, - 0x3400,0x3500,0x3600,0x3700,0x3800,0x3900,0x3A00,0x3B00, - 0x3C00,0x3D00,0x3E00,0x3F00,0x4000,0x4100,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - /* Block 34, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3000,0xFF0C,0x3001,0x3002,0xFF0E,0x30FB,0xFF1B, - 0xFF1A,0xFF1F,0xFF01,0xFE30,0x2026,0x2025,0xFE50,0xFE51, - 0xFE52,0x00B7,0xFE54,0xFE55,0xFE56,0xFE57,0xFE31,0x2014, - 0xFE32,0x2013,INVALC,INVALC,INVALC,INVALC,0xFF08,0xFF09, - 0xFE35,0xFE36,0xFF5B,0xFF5D,0xFE37,0xFE38,0x3014,0x3015, - 0xFE39,0xFE3A,0x3010,0x3011,0xFE3B,0xFE3C,0x300A,0x300B, - 0xFE3D,0xFE3E,0x3008,0x3009,0xFE3F,0xFE40,0x300C,0x300D, - 0xFE41,0xFE42,0x300E,0x300F,0xFE43,0xFE44,0xFE59,0xFE5A, - 0xFE5B,0xFE5C,0xFE5D,0xFE5E,0x2018,0x2019,0x201C,0x201D, - 0x301D,0x301E,0x2032,0x2035,0xFF03,0xFF06,0xFF0A,0x203B, - 0x00A7,0x3003,0x25CB,0x25CF,0x25B3,0x25B2,0x25CE,0x2606, - 0x2605,0x25C7,0x25C6,0x25A1,0x25A0,0x25BD,0x25BC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 35, Array index 0x0200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x32A3,0x2105,0x203E,INVALC,0xFF3F,INVALC,0xFE49, - 0xFE4A,0xFE4D,0xFE4E,0xFE4B,0xFE4C,0xFE5F,0xFE60,0xFE61, - 0xFF0B,0xFF0D,0x00D7,0x00F7,0x00B1,0x221A,0xFF1C,0xFF1E, - 0xFF1D,0x2266,0x2267,0x2260,0x221E,0x2252,0x2261,0xFE62, - 0xFE63,0xFE64,0xFE66,0xFE65,0x223C,0x2229,0x222A,0x22A5, - 0x2220,0x221F,0x22BF,0x33D2,0x33D1,0x222B,0x222E,0x2235, - 0x2234,0x2640,0x2642,0x2641,0x2609,0x2191,0x2193,0x2192, - 0x2190,0x2196,0x2197,0x2199,0x2198,0x2016,0xFF5C,0xFF0F, - 0xFF3C,0x2215,0xFE68,0xFF04,0xFFE5,0x3012,0xFFE0,0xFFE1, - 0xFF05,0xFF20,0x2103,0x2109,0xFE69,0xFE6A,0xFE6B,0x33D5, - 0x339C,0x339D,0x339E,0x33CE,0x33A1,0x338E,0x338F,0x33C4, - 0x00B0,0x5159,0x515B,0x515E,0x515D,0x5161,0x5163,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 36, Array index 0x0300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x55E7,0x74E9,0x7CCE,0x2581,0x2582,0x2583,0x2584, - 0x2585,0x2586,0x2587,0x2588,0x258F,0x258E,0x258D,0x258C, - 0x258B,0x258A,0x2589,0x253C,0x2534,0x252C,0x2524,0x251C, - 0x2594,0x2500,0x2502,0x2595,0x250C,0x2510,0x2514,0x2518, - 0x256D,0x256E,0x2570,0x256F,0x2550,0x255E,0x256A,0x2561, - 0x25E2,0x25E3,0x25E5,0x25E4,0x2571,0x2572,0x2573,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 37, Array index 0x0400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xFF10,0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16, - 0xFF17,0xFF18,0xFF19,0x2160,0x2161,0x2162,0x2163,0x2164, - 0x2165,0x2166,0x2167,0x2168,0x2169,0x3021,0x3022,0x3023, - 0x3024,0x3025,0x3026,0x3027,0x3028,0x3029,INVALC,0x5344, - INVALC,0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27, - 0xFF28,0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F, - 0xFF30,0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37, - 0xFF38,0xFF39,0xFF3A,0xFF41,0xFF42,0xFF43,0xFF44,0xFF45, - 0xFF46,0xFF47,0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D, - 0xFF4E,0xFF4F,0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55, - 0xFF56,0xFF57,0xFF58,0xFF59,0xFF5A,0x0391,0x0392,0x0393, - 0x0394,0x0395,0x0396,0x0397,0x0398,0x0399,0x039A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 38, Array index 0x0500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0,0x03A1, - 0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9,0x03B1, - 0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8,0x03B9, - 0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0,0x03C1, - 0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9,0x3105, - 0x3106,0x3107,0x3108,0x3109,0x310A,0x310B,0x310C,0x310D, - 0x310E,0x310F,0x3110,0x3111,0x3112,0x3113,0x3114,0x3115, - 0x3116,0x3117,0x3118,0x3119,0x311A,0x311B,0x311C,0x311D, - 0x311E,0x311F,0x3120,0x3121,0x3122,0x3123,0x3124,0x3125, - 0x3126,0x3127,0x3128,0x3129,0x02D9,0x02C9,0x02CA,0x02C7, - 0x02CB,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 39, Array index 0x0600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466, - 0x2467,0x2468,0x2469,0x2474,0x2475,0x2476,0x2477,0x2478, - 0x2479,0x247A,0x247B,0x247C,0x247D,0x2170,0x2171,0x2172, - 0x2173,0x2174,0x2175,0x2176,0x2177,0x2178,0x2179,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 67, Array index 0x0700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2400,0x2401,0x2402,0x2403,0x2404,0x2405,0x2406, - 0x2407,0x2408,0x2409,0x240A,0x240B,0x240C,0x240D,0x240E, - 0x240F,0x2410,0x2411,0x2412,0x2413,0x2414,0x2415,0x2416, - 0x2417,0x2418,0x2419,0x241A,0x241B,0x241C,0x241D,0x241E, - 0x241F,0x2421,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 69, Array index 0x0800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E00,0x4E59,0x4E01,0x4E03,0x4E43,0x4E5D,0x4E86, - 0x4E8C,0x4EBA,0x513F,0x5165,0x516B,0x51E0,0x5200,0x5201, - 0x529B,0x5315,0x5341,0x535C,0x53C8,0x4E09,0x4E0B,0x4E08, - 0x4E0A,0x4E2B,0x4E38,0x51E1,0x4E45,0x4E48,0x4E5F,0x4E5E, - 0x4E8E,0x4EA1,0x5140,0x5203,0x52FA,0x5343,0x53C9,0x53E3, - 0x571F,0x58EB,0x5915,0x5927,0x5973,0x5B50,0x5B51,0x5B53, - 0x5BF8,0x5C0F,0x5C22,0x5C38,0x5C71,0x5DDD,0x5DE5,0x5DF1, - 0x5DF2,0x5DF3,0x5DFE,0x5E72,0x5EFE,0x5F0B,0x5F13,0x624D, - 0x4E11,0x4E10,0x4E0D,0x4E2D,0x4E30,0x4E39,0x4E4B,0x5C39, - 0x4E88,0x4E91,0x4E95,0x4E92,0x4E94,0x4EA2,0x4EC1,0x4EC0, - 0x4EC3,0x4EC6,0x4EC7,0x4ECD,0x4ECA,0x4ECB,0x4EC4,0x5143, - 0x5141,0x5167,0x516D,0x516E,0x516C,0x5197,0x51F6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 70, Array index 0x0900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5206,0x5207,0x5208,0x52FB,0x52FE,0x52FF,0x5316, - 0x5339,0x5348,0x5347,0x5345,0x535E,0x5384,0x53CB,0x53CA, - 0x53CD,0x58EC,0x5929,0x592B,0x592A,0x592D,0x5B54,0x5C11, - 0x5C24,0x5C3A,0x5C6F,0x5DF4,0x5E7B,0x5EFF,0x5F14,0x5F15, - 0x5FC3,0x6208,0x6236,0x624B,0x624E,0x652F,0x6587,0x6597, - 0x65A4,0x65B9,0x65E5,0x66F0,0x6708,0x6728,0x6B20,0x6B62, - 0x6B79,0x6BCB,0x6BD4,0x6BDB,0x6C0F,0x6C34,0x706B,0x722A, - 0x7236,0x723B,0x7247,0x7259,0x725B,0x72AC,0x738B,0x4E19, - 0x4E16,0x4E15,0x4E14,0x4E18,0x4E3B,0x4E4D,0x4E4F,0x4E4E, - 0x4EE5,0x4ED8,0x4ED4,0x4ED5,0x4ED6,0x4ED7,0x4EE3,0x4EE4, - 0x4ED9,0x4EDE,0x5145,0x5144,0x5189,0x518A,0x51AC,0x51F9, - 0x51FA,0x51F8,0x520A,0x52A0,0x529F,0x5305,0x5306,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 71, Array index 0x0A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5317,0x531D,0x4EDF,0x534A,0x5349,0x5361,0x5360, - 0x536F,0x536E,0x53BB,0x53EF,0x53E4,0x53F3,0x53EC,0x53EE, - 0x53E9,0x53E8,0x53FC,0x53F8,0x53F5,0x53EB,0x53E6,0x53EA, - 0x53F2,0x53F1,0x53F0,0x53E5,0x53ED,0x53FB,0x56DB,0x56DA, - 0x5916,0x592E,0x5931,0x5974,0x5976,0x5B55,0x5B83,0x5C3C, - 0x5DE8,0x5DE7,0x5DE6,0x5E02,0x5E03,0x5E73,0x5E7C,0x5F01, - 0x5F18,0x5F17,0x5FC5,0x620A,0x6253,0x6254,0x6252,0x6251, - 0x65A5,0x65E6,0x672E,0x672C,0x672A,0x672B,0x672D,0x6B63, - 0x6BCD,0x6C11,0x6C10,0x6C38,0x6C41,0x6C40,0x6C3E,0x72AF, - 0x7384,0x7389,0x74DC,0x74E6,0x7518,0x751F,0x7528,0x7529, - 0x7530,0x7531,0x7532,0x7533,0x758B,0x767D,0x76AE,0x76BF, - 0x76EE,0x77DB,0x77E2,0x77F3,0x793A,0x79BE,0x7A74,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 72, Array index 0x0B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7ACB,0x4E1E,0x4E1F,0x4E52,0x4E53,0x4E69,0x4E99, - 0x4EA4,0x4EA6,0x4EA5,0x4EFF,0x4F09,0x4F19,0x4F0A,0x4F15, - 0x4F0D,0x4F10,0x4F11,0x4F0F,0x4EF2,0x4EF6,0x4EFB,0x4EF0, - 0x4EF3,0x4EFD,0x4F01,0x4F0B,0x5149,0x5147,0x5146,0x5148, - 0x5168,0x5171,0x518D,0x51B0,0x5217,0x5211,0x5212,0x520E, - 0x5216,0x52A3,0x5308,0x5321,0x5320,0x5370,0x5371,0x5409, - 0x540F,0x540C,0x540A,0x5410,0x5401,0x540B,0x5404,0x5411, - 0x540D,0x5408,0x5403,0x540E,0x5406,0x5412,0x56E0,0x56DE, - 0x56DD,0x5733,0x5730,0x5728,0x572D,0x572C,0x572F,0x5729, - 0x5919,0x591A,0x5937,0x5938,0x5984,0x5978,0x5983,0x597D, - 0x5979,0x5982,0x5981,0x5B57,0x5B58,0x5B87,0x5B88,0x5B85, - 0x5B89,0x5BFA,0x5C16,0x5C79,0x5DDE,0x5E06,0x5E76,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 73, Array index 0x0C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5E74,0x5F0F,0x5F1B,0x5FD9,0x5FD6,0x620E,0x620C, - 0x620D,0x6210,0x6263,0x625B,0x6258,0x6536,0x65E9,0x65E8, - 0x65EC,0x65ED,0x66F2,0x66F3,0x6709,0x673D,0x6734,0x6731, - 0x6735,0x6B21,0x6B64,0x6B7B,0x6C16,0x6C5D,0x6C57,0x6C59, - 0x6C5F,0x6C60,0x6C50,0x6C55,0x6C61,0x6C5B,0x6C4D,0x6C4E, - 0x7070,0x725F,0x725D,0x767E,0x7AF9,0x7C73,0x7CF8,0x7F36, - 0x7F8A,0x7FBD,0x8001,0x8003,0x800C,0x8012,0x8033,0x807F, - 0x8089,0x808B,0x808C,0x81E3,0x81EA,0x81F3,0x81FC,0x820C, - 0x821B,0x821F,0x826E,0x8272,0x827E,0x866B,0x8840,0x884C, - 0x8863,0x897F,0x9621,0x4E32,0x4EA8,0x4F4D,0x4F4F,0x4F47, - 0x4F57,0x4F5E,0x4F34,0x4F5B,0x4F55,0x4F30,0x4F50,0x4F51, - 0x4F3D,0x4F3A,0x4F38,0x4F43,0x4F54,0x4F3C,0x4F46,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 74, Array index 0x0D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F63,0x4F5C,0x4F60,0x4F2F,0x4F4E,0x4F36,0x4F59, - 0x4F5D,0x4F48,0x4F5A,0x514C,0x514B,0x514D,0x5175,0x51B6, - 0x51B7,0x5225,0x5224,0x5229,0x522A,0x5228,0x52AB,0x52A9, - 0x52AA,0x52AC,0x5323,0x5373,0x5375,0x541D,0x542D,0x541E, - 0x543E,0x5426,0x544E,0x5427,0x5446,0x5443,0x5433,0x5448, - 0x5442,0x541B,0x5429,0x544A,0x5439,0x543B,0x5438,0x542E, - 0x5435,0x5436,0x5420,0x543C,0x5440,0x5431,0x542B,0x541F, - 0x542C,0x56EA,0x56F0,0x56E4,0x56EB,0x574A,0x5751,0x5740, - 0x574D,0x5747,0x574E,0x573E,0x5750,0x574F,0x573B,0x58EF, - 0x593E,0x599D,0x5992,0x59A8,0x599E,0x59A3,0x5999,0x5996, - 0x598D,0x59A4,0x5993,0x598A,0x59A5,0x5B5D,0x5B5C,0x5B5A, - 0x5B5B,0x5B8C,0x5B8B,0x5B8F,0x5C2C,0x5C40,0x5C41,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 75, Array index 0x0E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C3F,0x5C3E,0x5C90,0x5C91,0x5C94,0x5C8C,0x5DEB, - 0x5E0C,0x5E8F,0x5E87,0x5E8A,0x5EF7,0x5F04,0x5F1F,0x5F64, - 0x5F62,0x5F77,0x5F79,0x5FD8,0x5FCC,0x5FD7,0x5FCD,0x5FF1, - 0x5FEB,0x5FF8,0x5FEA,0x6212,0x6211,0x6284,0x6297,0x6296, - 0x6280,0x6276,0x6289,0x626D,0x628A,0x627C,0x627E,0x6279, - 0x6273,0x6292,0x626F,0x6298,0x626E,0x6295,0x6293,0x6291, - 0x6286,0x6539,0x653B,0x6538,0x65F1,0x66F4,0x675F,0x674E, - 0x674F,0x6750,0x6751,0x675C,0x6756,0x675E,0x6749,0x6746, - 0x6760,0x6753,0x6757,0x6B65,0x6BCF,0x6C42,0x6C5E,0x6C99, - 0x6C81,0x6C88,0x6C89,0x6C85,0x6C9B,0x6C6A,0x6C7A,0x6C90, - 0x6C70,0x6C8C,0x6C68,0x6C96,0x6C92,0x6C7D,0x6C83,0x6C72, - 0x6C7E,0x6C74,0x6C86,0x6C76,0x6C8D,0x6C94,0x6C98,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 76, Array index 0x0F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6C82,0x7076,0x707C,0x707D,0x7078,0x7262,0x7261, - 0x7260,0x72C4,0x72C2,0x7396,0x752C,0x752B,0x7537,0x7538, - 0x7682,0x76EF,0x77E3,0x79C1,0x79C0,0x79BF,0x7A76,0x7CFB, - 0x7F55,0x8096,0x8093,0x809D,0x8098,0x809B,0x809A,0x80B2, - 0x826F,0x8292,0x828B,0x828D,0x898B,0x89D2,0x8A00,0x8C37, - 0x8C46,0x8C55,0x8C9D,0x8D64,0x8D70,0x8DB3,0x8EAB,0x8ECA, - 0x8F9B,0x8FB0,0x8FC2,0x8FC6,0x8FC5,0x8FC4,0x5DE1,0x9091, - 0x90A2,0x90AA,0x90A6,0x90A3,0x9149,0x91C6,0x91CC,0x9632, - 0x962E,0x9631,0x962A,0x962C,0x4E26,0x4E56,0x4E73,0x4E8B, - 0x4E9B,0x4E9E,0x4EAB,0x4EAC,0x4F6F,0x4F9D,0x4F8D,0x4F73, - 0x4F7F,0x4F6C,0x4F9B,0x4F8B,0x4F86,0x4F83,0x4F70,0x4F75, - 0x4F88,0x4F69,0x4F7B,0x4F96,0x4F7E,0x4F8F,0x4F91,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 77, Array index 0x1000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F7A,0x5154,0x5152,0x5155,0x5169,0x5177,0x5176, - 0x5178,0x51BD,0x51FD,0x523B,0x5238,0x5237,0x523A,0x5230, - 0x522E,0x5236,0x5241,0x52BE,0x52BB,0x5352,0x5354,0x5353, - 0x5351,0x5366,0x5377,0x5378,0x5379,0x53D6,0x53D4,0x53D7, - 0x5473,0x5475,0x5496,0x5478,0x5495,0x5480,0x547B,0x5477, - 0x5484,0x5492,0x5486,0x547C,0x5490,0x5471,0x5476,0x548C, - 0x549A,0x5462,0x5468,0x548B,0x547D,0x548E,0x56FA,0x5783, - 0x5777,0x576A,0x5769,0x5761,0x5766,0x5764,0x577C,0x591C, - 0x5949,0x5947,0x5948,0x5944,0x5954,0x59BE,0x59BB,0x59D4, - 0x59B9,0x59AE,0x59D1,0x59C6,0x59D0,0x59CD,0x59CB,0x59D3, - 0x59CA,0x59AF,0x59B3,0x59D2,0x59C5,0x5B5F,0x5B64,0x5B63, - 0x5B97,0x5B9A,0x5B98,0x5B9C,0x5B99,0x5B9B,0x5C1A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 78, Array index 0x1100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C48,0x5C45,0x5C46,0x5CB7,0x5CA1,0x5CB8,0x5CA9, - 0x5CAB,0x5CB1,0x5CB3,0x5E18,0x5E1A,0x5E16,0x5E15,0x5E1B, - 0x5E11,0x5E78,0x5E9A,0x5E97,0x5E9C,0x5E95,0x5E96,0x5EF6, - 0x5F26,0x5F27,0x5F29,0x5F80,0x5F81,0x5F7F,0x5F7C,0x5FDD, - 0x5FE0,0x5FFD,0x5FF5,0x5FFF,0x600F,0x6014,0x602F,0x6035, - 0x6016,0x602A,0x6015,0x6021,0x6027,0x6029,0x602B,0x601B, - 0x6216,0x6215,0x623F,0x623E,0x6240,0x627F,0x62C9,0x62CC, - 0x62C4,0x62BF,0x62C2,0x62B9,0x62D2,0x62DB,0x62AB,0x62D3, - 0x62D4,0x62CB,0x62C8,0x62A8,0x62BD,0x62BC,0x62D0,0x62D9, - 0x62C7,0x62CD,0x62B5,0x62DA,0x62B1,0x62D8,0x62D6,0x62D7, - 0x62C6,0x62AC,0x62CE,0x653E,0x65A7,0x65BC,0x65FA,0x6614, - 0x6613,0x660C,0x6606,0x6602,0x660E,0x6600,0x660F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 79, Array index 0x1200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6615,0x660A,0x6607,0x670D,0x670B,0x676D,0x678B, - 0x6795,0x6771,0x679C,0x6773,0x6777,0x6787,0x679D,0x6797, - 0x676F,0x6770,0x677F,0x6789,0x677E,0x6790,0x6775,0x679A, - 0x6793,0x677C,0x676A,0x6772,0x6B23,0x6B66,0x6B67,0x6B7F, - 0x6C13,0x6C1B,0x6CE3,0x6CE8,0x6CF3,0x6CB1,0x6CCC,0x6CE5, - 0x6CB3,0x6CBD,0x6CBE,0x6CBC,0x6CE2,0x6CAB,0x6CD5,0x6CD3, - 0x6CB8,0x6CC4,0x6CB9,0x6CC1,0x6CAE,0x6CD7,0x6CC5,0x6CF1, - 0x6CBF,0x6CBB,0x6CE1,0x6CDB,0x6CCA,0x6CAC,0x6CEF,0x6CDC, - 0x6CD6,0x6CE0,0x7095,0x708E,0x7092,0x708A,0x7099,0x722C, - 0x722D,0x7238,0x7248,0x7267,0x7269,0x72C0,0x72CE,0x72D9, - 0x72D7,0x72D0,0x73A9,0x73A8,0x739F,0x73AB,0x73A5,0x753D, - 0x759D,0x7599,0x759A,0x7684,0x76C2,0x76F2,0x76F4,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 80, Array index 0x1300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x77E5,0x77FD,0x793E,0x7940,0x7941,0x79C9,0x79C8, - 0x7A7A,0x7A79,0x7AFA,0x7CFE,0x7F54,0x7F8C,0x7F8B,0x8005, - 0x80BA,0x80A5,0x80A2,0x80B1,0x80A1,0x80AB,0x80A9,0x80B4, - 0x80AA,0x80AF,0x81E5,0x81FE,0x820D,0x82B3,0x829D,0x8299, - 0x82AD,0x82BD,0x829F,0x82B9,0x82B1,0x82AC,0x82A5,0x82AF, - 0x82B8,0x82A3,0x82B0,0x82BE,0x82B7,0x864E,0x8671,0x521D, - 0x8868,0x8ECB,0x8FCE,0x8FD4,0x8FD1,0x90B5,0x90B8,0x90B1, - 0x90B6,0x91C7,0x91D1,0x9577,0x9580,0x961C,0x9640,0x963F, - 0x963B,0x9644,0x9642,0x96B9,0x96E8,0x9752,0x975E,0x4E9F, - 0x4EAD,0x4EAE,0x4FE1,0x4FB5,0x4FAF,0x4FBF,0x4FE0,0x4FD1, - 0x4FCF,0x4FDD,0x4FC3,0x4FB6,0x4FD8,0x4FDF,0x4FCA,0x4FD7, - 0x4FAE,0x4FD0,0x4FC4,0x4FC2,0x4FDA,0x4FCE,0x4FDE,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 81, Array index 0x1400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4FB7,0x5157,0x5192,0x5191,0x51A0,0x524E,0x5243, - 0x524A,0x524D,0x524C,0x524B,0x5247,0x52C7,0x52C9,0x52C3, - 0x52C1,0x530D,0x5357,0x537B,0x539A,0x53DB,0x54AC,0x54C0, - 0x54A8,0x54CE,0x54C9,0x54B8,0x54A6,0x54B3,0x54C7,0x54C2, - 0x54BD,0x54AA,0x54C1,0x54C4,0x54C8,0x54AF,0x54AB,0x54B1, - 0x54BB,0x54A9,0x54A7,0x54BF,0x56FF,0x5782,0x578B,0x57A0, - 0x57A3,0x57A2,0x57CE,0x57AE,0x5793,0x5955,0x5951,0x594F, - 0x594E,0x5950,0x59DC,0x59D8,0x59FF,0x59E3,0x59E8,0x5A03, - 0x59E5,0x59EA,0x59DA,0x59E6,0x5A01,0x59FB,0x5B69,0x5BA3, - 0x5BA6,0x5BA4,0x5BA2,0x5BA5,0x5C01,0x5C4E,0x5C4F,0x5C4D, - 0x5C4B,0x5CD9,0x5CD2,0x5DF7,0x5E1D,0x5E25,0x5E1F,0x5E7D, - 0x5EA0,0x5EA6,0x5EFA,0x5F08,0x5F2D,0x5F65,0x5F88,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 82, Array index 0x1500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F85,0x5F8A,0x5F8B,0x5F87,0x5F8C,0x5F89,0x6012, - 0x601D,0x6020,0x6025,0x600E,0x6028,0x604D,0x6070,0x6068, - 0x6062,0x6046,0x6043,0x606C,0x606B,0x606A,0x6064,0x6241, - 0x62DC,0x6316,0x6309,0x62FC,0x62ED,0x6301,0x62EE,0x62FD, - 0x6307,0x62F1,0x62F7,0x62EF,0x62EC,0x62FE,0x62F4,0x6311, - 0x6302,0x653F,0x6545,0x65AB,0x65BD,0x65E2,0x6625,0x662D, - 0x6620,0x6627,0x662F,0x661F,0x6628,0x6631,0x6624,0x66F7, - 0x67FF,0x67D3,0x67F1,0x67D4,0x67D0,0x67EC,0x67B6,0x67AF, - 0x67F5,0x67E9,0x67EF,0x67C4,0x67D1,0x67B4,0x67DA,0x67E5, - 0x67B8,0x67CF,0x67DE,0x67F3,0x67B0,0x67D9,0x67E2,0x67DD, - 0x67D2,0x6B6A,0x6B83,0x6B86,0x6BB5,0x6BD2,0x6BD7,0x6C1F, - 0x6CC9,0x6D0B,0x6D32,0x6D2A,0x6D41,0x6D25,0x6D0C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 83, Array index 0x1600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6D31,0x6D1E,0x6D17,0x6D3B,0x6D3D,0x6D3E,0x6D36, - 0x6D1B,0x6CF5,0x6D39,0x6D27,0x6D38,0x6D29,0x6D2E,0x6D35, - 0x6D0E,0x6D2B,0x70AB,0x70BA,0x70B3,0x70AC,0x70AF,0x70AD, - 0x70B8,0x70AE,0x70A4,0x7230,0x7272,0x726F,0x7274,0x72E9, - 0x72E0,0x72E1,0x73B7,0x73CA,0x73BB,0x73B2,0x73CD,0x73C0, - 0x73B3,0x751A,0x752D,0x754F,0x754C,0x754E,0x754B,0x75AB, - 0x75A4,0x75A5,0x75A2,0x75A3,0x7678,0x7686,0x7687,0x7688, - 0x76C8,0x76C6,0x76C3,0x76C5,0x7701,0x76F9,0x76F8,0x7709, - 0x770B,0x76FE,0x76FC,0x7707,0x77DC,0x7802,0x7814,0x780C, - 0x780D,0x7946,0x7949,0x7948,0x7947,0x79B9,0x79BA,0x79D1, - 0x79D2,0x79CB,0x7A7F,0x7A81,0x7AFF,0x7AFD,0x7C7D,0x7D02, - 0x7D05,0x7D00,0x7D09,0x7D07,0x7D04,0x7D06,0x7F38,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 84, Array index 0x1700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7F8E,0x7FBF,0x8010,0x800D,0x8011,0x8036,0x80D6, - 0x80E5,0x80DA,0x80C3,0x80C4,0x80CC,0x80E1,0x80DB,0x80CE, - 0x80DE,0x80E4,0x80DD,0x81F4,0x8222,0x82E7,0x8303,0x8305, - 0x82E3,0x82DB,0x82E6,0x8304,0x82E5,0x8302,0x8309,0x82D2, - 0x82D7,0x82F1,0x8301,0x82DC,0x82D4,0x82D1,0x82DE,0x82D3, - 0x82DF,0x82EF,0x8306,0x8650,0x8679,0x867B,0x867A,0x884D, - 0x886B,0x8981,0x89D4,0x8A08,0x8A02,0x8A03,0x8C9E,0x8CA0, - 0x8D74,0x8D73,0x8DB4,0x8ECD,0x8ECC,0x8FF0,0x8FE6,0x8FE2, - 0x8FEA,0x8FE5,0x8FED,0x8FEB,0x8FE4,0x8FE8,0x90CA,0x90CE, - 0x90C1,0x90C3,0x914B,0x914A,0x91CD,0x9582,0x9650,0x964B, - 0x964C,0x964D,0x9762,0x9769,0x97CB,0x97ED,0x97F3,0x9801, - 0x98A8,0x98DB,0x98DF,0x9996,0x9999,0x4E58,0x4EB3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 85, Array index 0x1800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x500C,0x500D,0x5023,0x4FEF,0x5026,0x5025,0x4FF8, - 0x5029,0x5016,0x5006,0x503C,0x501F,0x501A,0x5012,0x5011, - 0x4FFA,0x5000,0x5014,0x5028,0x4FF1,0x5021,0x500B,0x5019, - 0x5018,0x4FF3,0x4FEE,0x502D,0x502A,0x4FFE,0x502B,0x5009, - 0x517C,0x51A4,0x51A5,0x51A2,0x51CD,0x51CC,0x51C6,0x51CB, - 0x5256,0x525C,0x5254,0x525B,0x525D,0x532A,0x537F,0x539F, - 0x539D,0x53DF,0x54E8,0x5510,0x5501,0x5537,0x54FC,0x54E5, - 0x54F2,0x5506,0x54FA,0x5514,0x54E9,0x54ED,0x54E1,0x5509, - 0x54EE,0x54EA,0x54E6,0x5527,0x5507,0x54FD,0x550F,0x5703, - 0x5704,0x57C2,0x57D4,0x57CB,0x57C3,0x5809,0x590F,0x5957, - 0x5958,0x595A,0x5A11,0x5A18,0x5A1C,0x5A1F,0x5A1B,0x5A13, - 0x59EC,0x5A20,0x5A23,0x5A29,0x5A25,0x5A0C,0x5A09,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 86, Array index 0x1900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5B6B,0x5C58,0x5BB0,0x5BB3,0x5BB6,0x5BB4,0x5BAE, - 0x5BB5,0x5BB9,0x5BB8,0x5C04,0x5C51,0x5C55,0x5C50,0x5CED, - 0x5CFD,0x5CFB,0x5CEA,0x5CE8,0x5CF0,0x5CF6,0x5D01,0x5CF4, - 0x5DEE,0x5E2D,0x5E2B,0x5EAB,0x5EAD,0x5EA7,0x5F31,0x5F92, - 0x5F91,0x5F90,0x6059,0x6063,0x6065,0x6050,0x6055,0x606D, - 0x6069,0x606F,0x6084,0x609F,0x609A,0x608D,0x6094,0x608C, - 0x6085,0x6096,0x6247,0x62F3,0x6308,0x62FF,0x634E,0x633E, - 0x632F,0x6355,0x6342,0x6346,0x634F,0x6349,0x633A,0x6350, - 0x633D,0x632A,0x632B,0x6328,0x634D,0x634C,0x6548,0x6549, - 0x6599,0x65C1,0x65C5,0x6642,0x6649,0x664F,0x6643,0x6652, - 0x664C,0x6645,0x6641,0x66F8,0x6714,0x6715,0x6717,0x6821, - 0x6838,0x6848,0x6846,0x6853,0x6839,0x6842,0x6854,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 87, Array index 0x1A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6829,0x68B3,0x6817,0x684C,0x6851,0x683D,0x67F4, - 0x6850,0x6840,0x683C,0x6843,0x682A,0x6845,0x6813,0x6818, - 0x6841,0x6B8A,0x6B89,0x6BB7,0x6C23,0x6C27,0x6C28,0x6C26, - 0x6C24,0x6CF0,0x6D6A,0x6D95,0x6D88,0x6D87,0x6D66,0x6D78, - 0x6D77,0x6D59,0x6D93,0x6D6C,0x6D89,0x6D6E,0x6D5A,0x6D74, - 0x6D69,0x6D8C,0x6D8A,0x6D79,0x6D85,0x6D65,0x6D94,0x70CA, - 0x70D8,0x70E4,0x70D9,0x70C8,0x70CF,0x7239,0x7279,0x72FC, - 0x72F9,0x72FD,0x72F8,0x72F7,0x7386,0x73ED,0x7409,0x73EE, - 0x73E0,0x73EA,0x73DE,0x7554,0x755D,0x755C,0x755A,0x7559, - 0x75BE,0x75C5,0x75C7,0x75B2,0x75B3,0x75BD,0x75BC,0x75B9, - 0x75C2,0x75B8,0x768B,0x76B0,0x76CA,0x76CD,0x76CE,0x7729, - 0x771F,0x7720,0x7728,0x77E9,0x7830,0x7827,0x7838,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 88, Array index 0x1B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x781D,0x7834,0x7837,0x7825,0x782D,0x7820,0x781F, - 0x7832,0x7955,0x7950,0x7960,0x795F,0x7956,0x795E,0x795D, - 0x7957,0x795A,0x79E4,0x79E3,0x79E7,0x79DF,0x79E6,0x79E9, - 0x79D8,0x7A84,0x7A88,0x7AD9,0x7B06,0x7B11,0x7C89,0x7D21, - 0x7D17,0x7D0B,0x7D0A,0x7D20,0x7D22,0x7D14,0x7D10,0x7D15, - 0x7D1A,0x7D1C,0x7D0D,0x7D19,0x7D1B,0x7F3A,0x7F5F,0x7F94, - 0x7FC5,0x7FC1,0x8006,0x8004,0x8018,0x8015,0x8019,0x8017, - 0x803D,0x803F,0x80F1,0x8102,0x80F0,0x8105,0x80ED,0x80F4, - 0x8106,0x80F8,0x80F3,0x8108,0x80FD,0x810A,0x80FC,0x80EF, - 0x81ED,0x81EC,0x8200,0x8210,0x822A,0x822B,0x8228,0x822C, - 0x82BB,0x832B,0x8352,0x8354,0x834A,0x8338,0x8350,0x8349, - 0x8335,0x8334,0x834F,0x8332,0x8339,0x8336,0x8317,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 89, Array index 0x1C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8340,0x8331,0x8328,0x8343,0x8654,0x868A,0x86AA, - 0x8693,0x86A4,0x86A9,0x868C,0x86A3,0x869C,0x8870,0x8877, - 0x8881,0x8882,0x887D,0x8879,0x8A18,0x8A10,0x8A0E,0x8A0C, - 0x8A15,0x8A0A,0x8A17,0x8A13,0x8A16,0x8A0F,0x8A11,0x8C48, - 0x8C7A,0x8C79,0x8CA1,0x8CA2,0x8D77,0x8EAC,0x8ED2,0x8ED4, - 0x8ECF,0x8FB1,0x9001,0x9006,0x8FF7,0x9000,0x8FFA,0x8FF4, - 0x9003,0x8FFD,0x9005,0x8FF8,0x9095,0x90E1,0x90DD,0x90E2, - 0x9152,0x914D,0x914C,0x91D8,0x91DD,0x91D7,0x91DC,0x91D9, - 0x9583,0x9662,0x9663,0x9661,0x965B,0x965D,0x9664,0x9658, - 0x965E,0x96BB,0x98E2,0x99AC,0x9AA8,0x9AD8,0x9B25,0x9B32, - 0x9B3C,0x4E7E,0x507A,0x507D,0x505C,0x5047,0x5043,0x504C, - 0x505A,0x5049,0x5065,0x5076,0x504E,0x5055,0x5075,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 90, Array index 0x1D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5074,0x5077,0x504F,0x500F,0x506F,0x506D,0x515C, - 0x5195,0x51F0,0x526A,0x526F,0x52D2,0x52D9,0x52D8,0x52D5, - 0x5310,0x530F,0x5319,0x533F,0x5340,0x533E,0x53C3,0x66FC, - 0x5546,0x556A,0x5566,0x5544,0x555E,0x5561,0x5543,0x554A, - 0x5531,0x5556,0x554F,0x5555,0x552F,0x5564,0x5538,0x552E, - 0x555C,0x552C,0x5563,0x5533,0x5541,0x5557,0x5708,0x570B, - 0x5709,0x57DF,0x5805,0x580A,0x5806,0x57E0,0x57E4,0x57FA, - 0x5802,0x5835,0x57F7,0x57F9,0x5920,0x5962,0x5A36,0x5A41, - 0x5A49,0x5A66,0x5A6A,0x5A40,0x5A3C,0x5A62,0x5A5A,0x5A46, - 0x5A4A,0x5B70,0x5BC7,0x5BC5,0x5BC4,0x5BC2,0x5BBF,0x5BC6, - 0x5C09,0x5C08,0x5C07,0x5C60,0x5C5C,0x5C5D,0x5D07,0x5D06, - 0x5D0E,0x5D1B,0x5D16,0x5D22,0x5D11,0x5D29,0x5D14,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 91, Array index 0x1E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D19,0x5D24,0x5D27,0x5D17,0x5DE2,0x5E38,0x5E36, - 0x5E33,0x5E37,0x5EB7,0x5EB8,0x5EB6,0x5EB5,0x5EBE,0x5F35, - 0x5F37,0x5F57,0x5F6C,0x5F69,0x5F6B,0x5F97,0x5F99,0x5F9E, - 0x5F98,0x5FA1,0x5FA0,0x5F9C,0x607F,0x60A3,0x6089,0x60A0, - 0x60A8,0x60CB,0x60B4,0x60E6,0x60BD,0x60C5,0x60BB,0x60B5, - 0x60DC,0x60BC,0x60D8,0x60D5,0x60C6,0x60DF,0x60B8,0x60DA, - 0x60C7,0x621A,0x621B,0x6248,0x63A0,0x63A7,0x6372,0x6396, - 0x63A2,0x63A5,0x6377,0x6367,0x6398,0x63AA,0x6371,0x63A9, - 0x6389,0x6383,0x639B,0x636B,0x63A8,0x6384,0x6388,0x6399, - 0x63A1,0x63AC,0x6392,0x638F,0x6380,0x637B,0x6369,0x6368, - 0x637A,0x655D,0x6556,0x6551,0x6559,0x6557,0x555F,0x654F, - 0x6558,0x6555,0x6554,0x659C,0x659B,0x65AC,0x65CF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 92, Array index 0x1F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x65CB,0x65CC,0x65CE,0x665D,0x665A,0x6664,0x6668, - 0x6666,0x665E,0x66F9,0x52D7,0x671B,0x6881,0x68AF,0x68A2, - 0x6893,0x68B5,0x687F,0x6876,0x68B1,0x68A7,0x6897,0x68B0, - 0x6883,0x68C4,0x68AD,0x6886,0x6885,0x6894,0x689D,0x68A8, - 0x689F,0x68A1,0x6882,0x6B32,0x6BBA,0x6BEB,0x6BEC,0x6C2B, - 0x6D8E,0x6DBC,0x6DF3,0x6DD9,0x6DB2,0x6DE1,0x6DCC,0x6DE4, - 0x6DFB,0x6DFA,0x6E05,0x6DC7,0x6DCB,0x6DAF,0x6DD1,0x6DAE, - 0x6DDE,0x6DF9,0x6DB8,0x6DF7,0x6DF5,0x6DC5,0x6DD2,0x6E1A, - 0x6DB5,0x6DDA,0x6DEB,0x6DD8,0x6DEA,0x6DF1,0x6DEE,0x6DE8, - 0x6DC6,0x6DC4,0x6DAA,0x6DEC,0x6DBF,0x6DE6,0x70F9,0x7109, - 0x710A,0x70FD,0x70EF,0x723D,0x727D,0x7281,0x731C,0x731B, - 0x7316,0x7313,0x7319,0x7387,0x7405,0x740A,0x7403,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 93, Array index 0x2000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7406,0x73FE,0x740D,0x74E0,0x74F6,0x74F7,0x751C, - 0x7522,0x7565,0x7566,0x7562,0x7570,0x758F,0x75D4,0x75D5, - 0x75B5,0x75CA,0x75CD,0x768E,0x76D4,0x76D2,0x76DB,0x7737, - 0x773E,0x773C,0x7736,0x7738,0x773A,0x786B,0x7843,0x784E, - 0x7965,0x7968,0x796D,0x79FB,0x7A92,0x7A95,0x7B20,0x7B28, - 0x7B1B,0x7B2C,0x7B26,0x7B19,0x7B1E,0x7B2E,0x7C92,0x7C97, - 0x7C95,0x7D46,0x7D43,0x7D71,0x7D2E,0x7D39,0x7D3C,0x7D40, - 0x7D30,0x7D33,0x7D44,0x7D2F,0x7D42,0x7D32,0x7D31,0x7F3D, - 0x7F9E,0x7F9A,0x7FCC,0x7FCE,0x7FD2,0x801C,0x804A,0x8046, - 0x812F,0x8116,0x8123,0x812B,0x8129,0x8130,0x8124,0x8202, - 0x8235,0x8237,0x8236,0x8239,0x838E,0x839E,0x8398,0x8378, - 0x83A2,0x8396,0x83BD,0x83AB,0x8392,0x838A,0x8393,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 94, Array index 0x2100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8389,0x83A0,0x8377,0x837B,0x837C,0x8386,0x83A7, - 0x8655,0x5F6A,0x86C7,0x86C0,0x86B6,0x86C4,0x86B5,0x86C6, - 0x86CB,0x86B1,0x86AF,0x86C9,0x8853,0x889E,0x8888,0x88AB, - 0x8892,0x8896,0x888D,0x888B,0x8993,0x898F,0x8A2A,0x8A1D, - 0x8A23,0x8A25,0x8A31,0x8A2D,0x8A1F,0x8A1B,0x8A22,0x8C49, - 0x8C5A,0x8CA9,0x8CAC,0x8CAB,0x8CA8,0x8CAA,0x8CA7,0x8D67, - 0x8D66,0x8DBE,0x8DBA,0x8EDB,0x8EDF,0x9019,0x900D,0x901A, - 0x9017,0x9023,0x901F,0x901D,0x9010,0x9015,0x901E,0x9020, - 0x900F,0x9022,0x9016,0x901B,0x9014,0x90E8,0x90ED,0x90FD, - 0x9157,0x91CE,0x91F5,0x91E6,0x91E3,0x91E7,0x91ED,0x91E9, - 0x9589,0x966A,0x9675,0x9673,0x9678,0x9670,0x9674,0x9676, - 0x9677,0x966C,0x96C0,0x96EA,0x96E9,0x7AE0,0x7ADF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 95, Array index 0x2200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9802,0x9803,0x9B5A,0x9CE5,0x9E75,0x9E7F,0x9EA5, - 0x9EBB,0x50A2,0x508D,0x5085,0x5099,0x5091,0x5080,0x5096, - 0x5098,0x509A,0x6700,0x51F1,0x5272,0x5274,0x5275,0x5269, - 0x52DE,0x52DD,0x52DB,0x535A,0x53A5,0x557B,0x5580,0x55A7, - 0x557C,0x558A,0x559D,0x5598,0x5582,0x559C,0x55AA,0x5594, - 0x5587,0x558B,0x5583,0x55B3,0x55AE,0x559F,0x553E,0x55B2, - 0x559A,0x55BB,0x55AC,0x55B1,0x557E,0x5589,0x55AB,0x5599, - 0x570D,0x582F,0x582A,0x5834,0x5824,0x5830,0x5831,0x5821, - 0x581D,0x5820,0x58F9,0x58FA,0x5960,0x5A77,0x5A9A,0x5A7F, - 0x5A92,0x5A9B,0x5AA7,0x5B73,0x5B71,0x5BD2,0x5BCC,0x5BD3, - 0x5BD0,0x5C0A,0x5C0B,0x5C31,0x5D4C,0x5D50,0x5D34,0x5D47, - 0x5DFD,0x5E45,0x5E3D,0x5E40,0x5E43,0x5E7E,0x5ECA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 96, Array index 0x2300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5EC1,0x5EC2,0x5EC4,0x5F3C,0x5F6D,0x5FA9,0x5FAA, - 0x5FA8,0x60D1,0x60E1,0x60B2,0x60B6,0x60E0,0x611C,0x6123, - 0x60FA,0x6115,0x60F0,0x60FB,0x60F4,0x6168,0x60F1,0x610E, - 0x60F6,0x6109,0x6100,0x6112,0x621F,0x6249,0x63A3,0x638C, - 0x63CF,0x63C0,0x63E9,0x63C9,0x63C6,0x63CD,0x63D2,0x63E3, - 0x63D0,0x63E1,0x63D6,0x63ED,0x63EE,0x6376,0x63F4,0x63EA, - 0x63DB,0x6452,0x63DA,0x63F9,0x655E,0x6566,0x6562,0x6563, - 0x6591,0x6590,0x65AF,0x666E,0x6670,0x6674,0x6676,0x666F, - 0x6691,0x667A,0x667E,0x6677,0x66FE,0x66FF,0x671F,0x671D, - 0x68FA,0x68D5,0x68E0,0x68D8,0x68D7,0x6905,0x68DF,0x68F5, - 0x68EE,0x68E7,0x68F9,0x68D2,0x68F2,0x68E3,0x68CB,0x68CD, - 0x690D,0x6912,0x690E,0x68C9,0x68DA,0x696E,0x68FB,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 97, Array index 0x2400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B3E,0x6B3A,0x6B3D,0x6B98,0x6B96,0x6BBC,0x6BEF, - 0x6C2E,0x6C2F,0x6C2C,0x6E2F,0x6E38,0x6E54,0x6E21,0x6E32, - 0x6E67,0x6E4A,0x6E20,0x6E25,0x6E23,0x6E1B,0x6E5B,0x6E58, - 0x6E24,0x6E56,0x6E6E,0x6E2D,0x6E26,0x6E6F,0x6E34,0x6E4D, - 0x6E3A,0x6E2C,0x6E43,0x6E1D,0x6E3E,0x6ECB,0x6E89,0x6E19, - 0x6E4E,0x6E63,0x6E44,0x6E72,0x6E69,0x6E5F,0x7119,0x711A, - 0x7126,0x7130,0x7121,0x7136,0x716E,0x711C,0x724C,0x7284, - 0x7280,0x7336,0x7325,0x7334,0x7329,0x743A,0x742A,0x7433, - 0x7422,0x7425,0x7435,0x7436,0x7434,0x742F,0x741B,0x7426, - 0x7428,0x7525,0x7526,0x756B,0x756A,0x75E2,0x75DB,0x75E3, - 0x75D9,0x75D8,0x75DE,0x75E0,0x767B,0x767C,0x7696,0x7693, - 0x76B4,0x76DC,0x774F,0x77ED,0x785D,0x786C,0x786F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 98, Array index 0x2500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7A0D,0x7A08,0x7A0B,0x7A05,0x7A00,0x7A98,0x7A97, - 0x7A96,0x7AE5,0x7AE3,0x7B49,0x7B56,0x7B46,0x7B50,0x7B52, - 0x7B54,0x7B4D,0x7B4B,0x7B4F,0x7B51,0x7C9F,0x7CA5,0x7D5E, - 0x7D50,0x7D68,0x7D55,0x7D2B,0x7D6E,0x7D72,0x7D61,0x7D66, - 0x7D62,0x7D70,0x7D73,0x5584,0x7FD4,0x7FD5,0x800B,0x8052, - 0x8085,0x8155,0x8154,0x814B,0x8151,0x814E,0x8139,0x8146, - 0x813E,0x814C,0x8153,0x8174,0x8212,0x821C,0x83E9,0x8403, - 0x83F8,0x840D,0x83E0,0x83C5,0x840B,0x83C1,0x83EF,0x83F1, - 0x83F4,0x8457,0x840A,0x83F0,0x840C,0x83CC,0x83FD,0x83F2, - 0x83CA,0x8438,0x840E,0x8404,0x83DC,0x8407,0x83D4,0x83DF, - 0x865B,0x86DF,0x86D9,0x86ED,0x86D4,0x86DB,0x86E4,0x86D0, - 0x86DE,0x8857,0x88C1,0x88C2,0x88B1,0x8983,0x8996,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 99, Array index 0x2600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8A3B,0x8A60,0x8A55,0x8A5E,0x8A3C,0x8A41,0x8A54, - 0x8A5B,0x8A50,0x8A46,0x8A34,0x8A3A,0x8A36,0x8A56,0x8C61, - 0x8C82,0x8CAF,0x8CBC,0x8CB3,0x8CBD,0x8CC1,0x8CBB,0x8CC0, - 0x8CB4,0x8CB7,0x8CB6,0x8CBF,0x8CB8,0x8D8A,0x8D85,0x8D81, - 0x8DCE,0x8DDD,0x8DCB,0x8DDA,0x8DD1,0x8DCC,0x8DDB,0x8DC6, - 0x8EFB,0x8EF8,0x8EFC,0x8F9C,0x902E,0x9035,0x9031,0x9038, - 0x9032,0x9036,0x9102,0x90F5,0x9109,0x90FE,0x9163,0x9165, - 0x91CF,0x9214,0x9215,0x9223,0x9209,0x921E,0x920D,0x9210, - 0x9207,0x9211,0x9594,0x958F,0x958B,0x9591,0x9593,0x9592, - 0x958E,0x968A,0x968E,0x968B,0x967D,0x9685,0x9686,0x968D, - 0x9672,0x9684,0x96C1,0x96C5,0x96C4,0x96C6,0x96C7,0x96EF, - 0x96F2,0x97CC,0x9805,0x9806,0x9808,0x98E7,0x98EA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 100, Array index 0x2700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x98EF,0x98E9,0x98F2,0x98ED,0x99AE,0x99AD,0x9EC3, - 0x9ECD,0x9ED1,0x4E82,0x50AD,0x50B5,0x50B2,0x50B3,0x50C5, - 0x50BE,0x50AC,0x50B7,0x50BB,0x50AF,0x50C7,0x527F,0x5277, - 0x527D,0x52DF,0x52E6,0x52E4,0x52E2,0x52E3,0x532F,0x55DF, - 0x55E8,0x55D3,0x55E6,0x55CE,0x55DC,0x55C7,0x55D1,0x55E3, - 0x55E4,0x55EF,0x55DA,0x55E1,0x55C5,0x55C6,0x55E5,0x55C9, - 0x5712,0x5713,0x585E,0x5851,0x5858,0x5857,0x585A,0x5854, - 0x586B,0x584C,0x586D,0x584A,0x5862,0x5852,0x584B,0x5967, - 0x5AC1,0x5AC9,0x5ACC,0x5ABE,0x5ABD,0x5ABC,0x5AB3,0x5AC2, - 0x5AB2,0x5D69,0x5D6F,0x5E4C,0x5E79,0x5EC9,0x5EC8,0x5F12, - 0x5F59,0x5FAC,0x5FAE,0x611A,0x610F,0x6148,0x611F,0x60F3, - 0x611B,0x60F9,0x6101,0x6108,0x614E,0x614C,0x6144,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 101, Array index 0x2800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x614D,0x613E,0x6134,0x6127,0x610D,0x6106,0x6137, - 0x6221,0x6222,0x6413,0x643E,0x641E,0x642A,0x642D,0x643D, - 0x642C,0x640F,0x641C,0x6414,0x640D,0x6436,0x6416,0x6417, - 0x6406,0x656C,0x659F,0x65B0,0x6697,0x6689,0x6687,0x6688, - 0x6696,0x6684,0x6698,0x668D,0x6703,0x6994,0x696D,0x695A, - 0x6977,0x6960,0x6954,0x6975,0x6930,0x6982,0x694A,0x6968, - 0x696B,0x695E,0x6953,0x6979,0x6986,0x695D,0x6963,0x695B, - 0x6B47,0x6B72,0x6BC0,0x6BBF,0x6BD3,0x6BFD,0x6EA2,0x6EAF, - 0x6ED3,0x6EB6,0x6EC2,0x6E90,0x6E9D,0x6EC7,0x6EC5,0x6EA5, - 0x6E98,0x6EBC,0x6EBA,0x6EAB,0x6ED1,0x6E96,0x6E9C,0x6EC4, - 0x6ED4,0x6EAA,0x6EA7,0x6EB4,0x714E,0x7159,0x7169,0x7164, - 0x7149,0x7167,0x715C,0x716C,0x7166,0x714C,0x7165,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 102, Array index 0x2900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x715E,0x7146,0x7168,0x7156,0x723A,0x7252,0x7337, - 0x7345,0x733F,0x733E,0x746F,0x745A,0x7455,0x745F,0x745E, - 0x7441,0x743F,0x7459,0x745B,0x745C,0x7576,0x7578,0x7600, - 0x75F0,0x7601,0x75F2,0x75F1,0x75FA,0x75FF,0x75F4,0x75F3, - 0x76DE,0x76DF,0x775B,0x776B,0x7766,0x775E,0x7763,0x7779, - 0x776A,0x776C,0x775C,0x7765,0x7768,0x7762,0x77EE,0x788E, - 0x78B0,0x7897,0x7898,0x788C,0x7889,0x787C,0x7891,0x7893, - 0x787F,0x797A,0x797F,0x7981,0x842C,0x79BD,0x7A1C,0x7A1A, - 0x7A20,0x7A14,0x7A1F,0x7A1E,0x7A9F,0x7AA0,0x7B77,0x7BC0, - 0x7B60,0x7B6E,0x7B67,0x7CB1,0x7CB3,0x7CB5,0x7D93,0x7D79, - 0x7D91,0x7D81,0x7D8F,0x7D5B,0x7F6E,0x7F69,0x7F6A,0x7F72, - 0x7FA9,0x7FA8,0x7FA4,0x8056,0x8058,0x8086,0x8084,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 103, Array index 0x2A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8171,0x8170,0x8178,0x8165,0x816E,0x8173,0x816B, - 0x8179,0x817A,0x8166,0x8205,0x8247,0x8482,0x8477,0x843D, - 0x8431,0x8475,0x8466,0x846B,0x8449,0x846C,0x845B,0x843C, - 0x8435,0x8461,0x8463,0x8469,0x846D,0x8446,0x865E,0x865C, - 0x865F,0x86F9,0x8713,0x8708,0x8707,0x8700,0x86FE,0x86FB, - 0x8702,0x8703,0x8706,0x870A,0x8859,0x88DF,0x88D4,0x88D9, - 0x88DC,0x88D8,0x88DD,0x88E1,0x88CA,0x88D5,0x88D2,0x899C, - 0x89E3,0x8A6B,0x8A72,0x8A73,0x8A66,0x8A69,0x8A70,0x8A87, - 0x8A7C,0x8A63,0x8AA0,0x8A71,0x8A85,0x8A6D,0x8A62,0x8A6E, - 0x8A6C,0x8A79,0x8A7B,0x8A3E,0x8A68,0x8C62,0x8C8A,0x8C89, - 0x8CCA,0x8CC7,0x8CC8,0x8CC4,0x8CB2,0x8CC3,0x8CC2,0x8CC5, - 0x8DE1,0x8DDF,0x8DE8,0x8DEF,0x8DF3,0x8DFA,0x8DEA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 104, Array index 0x2B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8DE4,0x8DE6,0x8EB2,0x8F03,0x8F09,0x8EFE,0x8F0A, - 0x8F9F,0x8FB2,0x904B,0x904A,0x9053,0x9042,0x9054,0x903C, - 0x9055,0x9050,0x9047,0x904F,0x904E,0x904D,0x9051,0x903E, - 0x9041,0x9112,0x9117,0x916C,0x916A,0x9169,0x91C9,0x9237, - 0x9257,0x9238,0x923D,0x9240,0x923E,0x925B,0x924B,0x9264, - 0x9251,0x9234,0x9249,0x924D,0x9245,0x9239,0x923F,0x925A, - 0x9598,0x9698,0x9694,0x9695,0x96CD,0x96CB,0x96C9,0x96CA, - 0x96F7,0x96FB,0x96F9,0x96F6,0x9756,0x9774,0x9776,0x9810, - 0x9811,0x9813,0x980A,0x9812,0x980C,0x98FC,0x98F4,0x98FD, - 0x98FE,0x99B3,0x99B1,0x99B4,0x9AE1,0x9CE9,0x9E82,0x9F0E, - 0x9F13,0x9F20,0x50E7,0x50EE,0x50E5,0x50D6,0x50ED,0x50DA, - 0x50D5,0x50CF,0x50D1,0x50F1,0x50CE,0x50E9,0x5162,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 105, Array index 0x2C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x51F3,0x5283,0x5282,0x5331,0x53AD,0x55FE,0x5600, - 0x561B,0x5617,0x55FD,0x5614,0x5606,0x5609,0x560D,0x560E, - 0x55F7,0x5616,0x561F,0x5608,0x5610,0x55F6,0x5718,0x5716, - 0x5875,0x587E,0x5883,0x5893,0x588A,0x5879,0x5885,0x587D, - 0x58FD,0x5925,0x5922,0x5924,0x596A,0x5969,0x5AE1,0x5AE6, - 0x5AE9,0x5AD7,0x5AD6,0x5AD8,0x5AE3,0x5B75,0x5BDE,0x5BE7, - 0x5BE1,0x5BE5,0x5BE6,0x5BE8,0x5BE2,0x5BE4,0x5BDF,0x5C0D, - 0x5C62,0x5D84,0x5D87,0x5E5B,0x5E63,0x5E55,0x5E57,0x5E54, - 0x5ED3,0x5ED6,0x5F0A,0x5F46,0x5F70,0x5FB9,0x6147,0x613F, - 0x614B,0x6177,0x6162,0x6163,0x615F,0x615A,0x6158,0x6175, - 0x622A,0x6487,0x6458,0x6454,0x64A4,0x6478,0x645F,0x647A, - 0x6451,0x6467,0x6434,0x646D,0x647B,0x6572,0x65A1,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 106, Array index 0x2D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x65D7,0x65D6,0x66A2,0x66A8,0x669D,0x699C,0x69A8, - 0x6995,0x69C1,0x69AE,0x69D3,0x69CB,0x699B,0x69B7,0x69BB, - 0x69AB,0x69B4,0x69D0,0x69CD,0x69AD,0x69CC,0x69A6,0x69C3, - 0x69A3,0x6B49,0x6B4C,0x6C33,0x6F33,0x6F14,0x6EFE,0x6F13, - 0x6EF4,0x6F29,0x6F3E,0x6F20,0x6F2C,0x6F0F,0x6F02,0x6F22, - 0x6EFF,0x6EEF,0x6F06,0x6F31,0x6F38,0x6F32,0x6F23,0x6F15, - 0x6F2B,0x6F2F,0x6F88,0x6F2A,0x6EEC,0x6F01,0x6EF2,0x6ECC, - 0x6EF7,0x7194,0x7199,0x717D,0x718A,0x7184,0x7192,0x723E, - 0x7292,0x7296,0x7344,0x7350,0x7464,0x7463,0x746A,0x7470, - 0x746D,0x7504,0x7591,0x7627,0x760D,0x760B,0x7609,0x7613, - 0x76E1,0x76E3,0x7784,0x777D,0x777F,0x7761,0x78C1,0x789F, - 0x78A7,0x78B3,0x78A9,0x78A3,0x798E,0x798F,0x798D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 107, Array index 0x2E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7A2E,0x7A31,0x7AAA,0x7AA9,0x7AED,0x7AEF,0x7BA1, - 0x7B95,0x7B8B,0x7B75,0x7B97,0x7B9D,0x7B94,0x7B8F,0x7BB8, - 0x7B87,0x7B84,0x7CB9,0x7CBD,0x7CBE,0x7DBB,0x7DB0,0x7D9C, - 0x7DBD,0x7DBE,0x7DA0,0x7DCA,0x7DB4,0x7DB2,0x7DB1,0x7DBA, - 0x7DA2,0x7DBF,0x7DB5,0x7DB8,0x7DAD,0x7DD2,0x7DC7,0x7DAC, - 0x7F70,0x7FE0,0x7FE1,0x7FDF,0x805E,0x805A,0x8087,0x8150, - 0x8180,0x818F,0x8188,0x818A,0x817F,0x8182,0x81E7,0x81FA, - 0x8207,0x8214,0x821E,0x824B,0x84C9,0x84BF,0x84C6,0x84C4, - 0x8499,0x849E,0x84B2,0x849C,0x84CB,0x84B8,0x84C0,0x84D3, - 0x8490,0x84BC,0x84D1,0x84CA,0x873F,0x871C,0x873B,0x8722, - 0x8725,0x8734,0x8718,0x8755,0x8737,0x8729,0x88F3,0x8902, - 0x88F4,0x88F9,0x88F8,0x88FD,0x88E8,0x891A,0x88EF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 108, Array index 0x2F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8AA6,0x8A8C,0x8A9E,0x8AA3,0x8A8D,0x8AA1,0x8A93, - 0x8AA4,0x8AAA,0x8AA5,0x8AA8,0x8A98,0x8A91,0x8A9A,0x8AA7, - 0x8C6A,0x8C8D,0x8C8C,0x8CD3,0x8CD1,0x8CD2,0x8D6B,0x8D99, - 0x8D95,0x8DFC,0x8F14,0x8F12,0x8F15,0x8F13,0x8FA3,0x9060, - 0x9058,0x905C,0x9063,0x9059,0x905E,0x9062,0x905D,0x905B, - 0x9119,0x9118,0x911E,0x9175,0x9178,0x9177,0x9174,0x9278, - 0x92AC,0x9280,0x9285,0x9298,0x9296,0x927B,0x9293,0x929C, - 0x92A8,0x927C,0x9291,0x95A1,0x95A8,0x95A9,0x95A3,0x95A5, - 0x95A4,0x9699,0x969C,0x969B,0x96CC,0x96D2,0x9700,0x977C, - 0x9785,0x97F6,0x9817,0x9818,0x98AF,0x98B1,0x9903,0x9905, - 0x990C,0x9909,0x99C1,0x9AAF,0x9AB0,0x9AE6,0x9B41,0x9B42, - 0x9CF4,0x9CF6,0x9CF3,0x9EBC,0x9F3B,0x9F4A,0x5104,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 109, Array index 0x3000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5100,0x50FB,0x50F5,0x50F9,0x5102,0x5108,0x5109, - 0x5105,0x51DC,0x5287,0x5288,0x5289,0x528D,0x528A,0x52F0, - 0x53B2,0x562E,0x563B,0x5639,0x5632,0x563F,0x5634,0x5629, - 0x5653,0x564E,0x5657,0x5674,0x5636,0x562F,0x5630,0x5880, - 0x589F,0x589E,0x58B3,0x589C,0x58AE,0x58A9,0x58A6,0x596D, - 0x5B09,0x5AFB,0x5B0B,0x5AF5,0x5B0C,0x5B08,0x5BEE,0x5BEC, - 0x5BE9,0x5BEB,0x5C64,0x5C65,0x5D9D,0x5D94,0x5E62,0x5E5F, - 0x5E61,0x5EE2,0x5EDA,0x5EDF,0x5EDD,0x5EE3,0x5EE0,0x5F48, - 0x5F71,0x5FB7,0x5FB5,0x6176,0x6167,0x616E,0x615D,0x6155, - 0x6182,0x617C,0x6170,0x616B,0x617E,0x61A7,0x6190,0x61AB, - 0x618E,0x61AC,0x619A,0x61A4,0x6194,0x61AE,0x622E,0x6469, - 0x646F,0x6479,0x649E,0x64B2,0x6488,0x6490,0x64B0,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 110, Array index 0x3100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x64A5,0x6493,0x6495,0x64A9,0x6492,0x64AE,0x64AD, - 0x64AB,0x649A,0x64AC,0x6499,0x64A2,0x64B3,0x6575,0x6577, - 0x6578,0x66AE,0x66AB,0x66B4,0x66B1,0x6A23,0x6A1F,0x69E8, - 0x6A01,0x6A1E,0x6A19,0x69FD,0x6A21,0x6A13,0x6A0A,0x69F3, - 0x6A02,0x6A05,0x69ED,0x6A11,0x6B50,0x6B4E,0x6BA4,0x6BC5, - 0x6BC6,0x6F3F,0x6F7C,0x6F84,0x6F51,0x6F66,0x6F54,0x6F86, - 0x6F6D,0x6F5B,0x6F78,0x6F6E,0x6F8E,0x6F7A,0x6F70,0x6F64, - 0x6F97,0x6F58,0x6ED5,0x6F6F,0x6F60,0x6F5F,0x719F,0x71AC, - 0x71B1,0x71A8,0x7256,0x729B,0x734E,0x7357,0x7469,0x748B, - 0x7483,0x747E,0x7480,0x757F,0x7620,0x7629,0x761F,0x7624, - 0x7626,0x7621,0x7622,0x769A,0x76BA,0x76E4,0x778E,0x7787, - 0x778C,0x7791,0x778B,0x78CB,0x78C5,0x78BA,0x78CA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 111, Array index 0x3200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x78BE,0x78D5,0x78BC,0x78D0,0x7A3F,0x7A3C,0x7A40, - 0x7A3D,0x7A37,0x7A3B,0x7AAF,0x7AAE,0x7BAD,0x7BB1,0x7BC4, - 0x7BB4,0x7BC6,0x7BC7,0x7BC1,0x7BA0,0x7BCC,0x7CCA,0x7DE0, - 0x7DF4,0x7DEF,0x7DFB,0x7DD8,0x7DEC,0x7DDD,0x7DE8,0x7DE3, - 0x7DDA,0x7DDE,0x7DE9,0x7D9E,0x7DD9,0x7DF2,0x7DF9,0x7F75, - 0x7F77,0x7FAF,0x7FE9,0x8026,0x819B,0x819C,0x819D,0x81A0, - 0x819A,0x8198,0x8517,0x853D,0x851A,0x84EE,0x852C,0x852D, - 0x8513,0x8511,0x8523,0x8521,0x8514,0x84EC,0x8525,0x84FF, - 0x8506,0x8782,0x8774,0x8776,0x8760,0x8766,0x8778,0x8768, - 0x8759,0x8757,0x874C,0x8753,0x885B,0x885D,0x8910,0x8907, - 0x8912,0x8913,0x8915,0x890A,0x8ABC,0x8AD2,0x8AC7,0x8AC4, - 0x8A95,0x8ACB,0x8AF8,0x8AB2,0x8AC9,0x8AC2,0x8ABF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 112, Array index 0x3300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8AB0,0x8AD6,0x8ACD,0x8AB6,0x8AB9,0x8ADB,0x8C4C, - 0x8C4E,0x8C6C,0x8CE0,0x8CDE,0x8CE6,0x8CE4,0x8CEC,0x8CED, - 0x8CE2,0x8CE3,0x8CDC,0x8CEA,0x8CE1,0x8D6D,0x8D9F,0x8DA3, - 0x8E2B,0x8E10,0x8E1D,0x8E22,0x8E0F,0x8E29,0x8E1F,0x8E21, - 0x8E1E,0x8EBA,0x8F1D,0x8F1B,0x8F1F,0x8F29,0x8F26,0x8F2A, - 0x8F1C,0x8F1E,0x8F25,0x9069,0x906E,0x9068,0x906D,0x9077, - 0x9130,0x912D,0x9127,0x9131,0x9187,0x9189,0x918B,0x9183, - 0x92C5,0x92BB,0x92B7,0x92EA,0x92E4,0x92C1,0x92B3,0x92BC, - 0x92D2,0x92C7,0x92F0,0x92B2,0x95AD,0x95B1,0x9704,0x9706, - 0x9707,0x9709,0x9760,0x978D,0x978B,0x978F,0x9821,0x982B, - 0x981C,0x98B3,0x990A,0x9913,0x9912,0x9918,0x99DD,0x99D0, - 0x99DF,0x99DB,0x99D1,0x99D5,0x99D2,0x99D9,0x9AB7,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 113, Array index 0x3400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9AEE,0x9AEF,0x9B27,0x9B45,0x9B44,0x9B77,0x9B6F, - 0x9D06,0x9D09,0x9D03,0x9EA9,0x9EBE,0x9ECE,0x58A8,0x9F52, - 0x5112,0x5118,0x5114,0x5110,0x5115,0x5180,0x51AA,0x51DD, - 0x5291,0x5293,0x52F3,0x5659,0x566B,0x5679,0x5669,0x5664, - 0x5678,0x566A,0x5668,0x5665,0x5671,0x566F,0x566C,0x5662, - 0x5676,0x58C1,0x58BE,0x58C7,0x58C5,0x596E,0x5B1D,0x5B34, - 0x5B78,0x5BF0,0x5C0E,0x5F4A,0x61B2,0x6191,0x61A9,0x618A, - 0x61CD,0x61B6,0x61BE,0x61CA,0x61C8,0x6230,0x64C5,0x64C1, - 0x64CB,0x64BB,0x64BC,0x64DA,0x64C4,0x64C7,0x64C2,0x64CD, - 0x64BF,0x64D2,0x64D4,0x64BE,0x6574,0x66C6,0x66C9,0x66B9, - 0x66C4,0x66C7,0x66B8,0x6A3D,0x6A38,0x6A3A,0x6A59,0x6A6B, - 0x6A58,0x6A39,0x6A44,0x6A62,0x6A61,0x6A4B,0x6A47,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 114, Array index 0x3500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A35,0x6A5F,0x6A48,0x6B59,0x6B77,0x6C05,0x6FC2, - 0x6FB1,0x6FA1,0x6FC3,0x6FA4,0x6FC1,0x6FA7,0x6FB3,0x6FC0, - 0x6FB9,0x6FB6,0x6FA6,0x6FA0,0x6FB4,0x71BE,0x71C9,0x71D0, - 0x71D2,0x71C8,0x71D5,0x71B9,0x71CE,0x71D9,0x71DC,0x71C3, - 0x71C4,0x7368,0x749C,0x74A3,0x7498,0x749F,0x749E,0x74E2, - 0x750C,0x750D,0x7634,0x7638,0x763A,0x76E7,0x76E5,0x77A0, - 0x779E,0x779F,0x77A5,0x78E8,0x78DA,0x78EC,0x78E7,0x79A6, - 0x7A4D,0x7A4E,0x7A46,0x7A4C,0x7A4B,0x7ABA,0x7BD9,0x7C11, - 0x7BC9,0x7BE4,0x7BDB,0x7BE1,0x7BE9,0x7BE6,0x7CD5,0x7CD6, - 0x7E0A,0x7E11,0x7E08,0x7E1B,0x7E23,0x7E1E,0x7E1D,0x7E09, - 0x7E10,0x7F79,0x7FB2,0x7FF0,0x7FF1,0x7FEE,0x8028,0x81B3, - 0x81A9,0x81A8,0x81FB,0x8208,0x8258,0x8259,0x854A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 115, Array index 0x3600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8559,0x8548,0x8568,0x8569,0x8543,0x8549,0x856D, - 0x856A,0x855E,0x8783,0x879F,0x879E,0x87A2,0x878D,0x8861, - 0x892A,0x8932,0x8925,0x892B,0x8921,0x89AA,0x89A6,0x8AE6, - 0x8AFA,0x8AEB,0x8AF1,0x8B00,0x8ADC,0x8AE7,0x8AEE,0x8AFE, - 0x8B01,0x8B02,0x8AF7,0x8AED,0x8AF3,0x8AF6,0x8AFC,0x8C6B, - 0x8C6D,0x8C93,0x8CF4,0x8E44,0x8E31,0x8E34,0x8E42,0x8E39, - 0x8E35,0x8F3B,0x8F2F,0x8F38,0x8F33,0x8FA8,0x8FA6,0x9075, - 0x9074,0x9078,0x9072,0x907C,0x907A,0x9134,0x9192,0x9320, - 0x9336,0x92F8,0x9333,0x932F,0x9322,0x92FC,0x932B,0x9304, - 0x931A,0x9310,0x9326,0x9321,0x9315,0x932E,0x9319,0x95BB, - 0x96A7,0x96A8,0x96AA,0x96D5,0x970E,0x9711,0x9716,0x970D, - 0x9713,0x970F,0x975B,0x975C,0x9766,0x9798,0x9830,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 116, Array index 0x3700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9838,0x983B,0x9837,0x982D,0x9839,0x9824,0x9910, - 0x9928,0x991E,0x991B,0x9921,0x991A,0x99ED,0x99E2,0x99F1, - 0x9AB8,0x9ABC,0x9AFB,0x9AED,0x9B28,0x9B91,0x9D15,0x9D23, - 0x9D26,0x9D28,0x9D12,0x9D1B,0x9ED8,0x9ED4,0x9F8D,0x9F9C, - 0x512A,0x511F,0x5121,0x5132,0x52F5,0x568E,0x5680,0x5690, - 0x5685,0x5687,0x568F,0x58D5,0x58D3,0x58D1,0x58CE,0x5B30, - 0x5B2A,0x5B24,0x5B7A,0x5C37,0x5C68,0x5DBC,0x5DBA,0x5DBD, - 0x5DB8,0x5E6B,0x5F4C,0x5FBD,0x61C9,0x61C2,0x61C7,0x61E6, - 0x61CB,0x6232,0x6234,0x64CE,0x64CA,0x64D8,0x64E0,0x64F0, - 0x64E6,0x64EC,0x64F1,0x64E2,0x64ED,0x6582,0x6583,0x66D9, - 0x66D6,0x6A80,0x6A94,0x6A84,0x6AA2,0x6A9C,0x6ADB,0x6AA3, - 0x6A7E,0x6A97,0x6A90,0x6AA0,0x6B5C,0x6BAE,0x6BDA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 117, Array index 0x3800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6C08,0x6FD8,0x6FF1,0x6FDF,0x6FE0,0x6FDB,0x6FE4, - 0x6FEB,0x6FEF,0x6F80,0x6FEC,0x6FE1,0x6FE9,0x6FD5,0x6FEE, - 0x6FF0,0x71E7,0x71DF,0x71EE,0x71E6,0x71E5,0x71ED,0x71EC, - 0x71F4,0x71E0,0x7235,0x7246,0x7370,0x7372,0x74A9,0x74B0, - 0x74A6,0x74A8,0x7646,0x7642,0x764C,0x76EA,0x77B3,0x77AA, - 0x77B0,0x77AC,0x77A7,0x77AD,0x77EF,0x78F7,0x78FA,0x78F4, - 0x78EF,0x7901,0x79A7,0x79AA,0x7A57,0x7ABF,0x7C07,0x7C0D, - 0x7BFE,0x7BF7,0x7C0C,0x7BE0,0x7CE0,0x7CDC,0x7CDE,0x7CE2, - 0x7CDF,0x7CD9,0x7CDD,0x7E2E,0x7E3E,0x7E46,0x7E37,0x7E32, - 0x7E43,0x7E2B,0x7E3D,0x7E31,0x7E45,0x7E41,0x7E34,0x7E39, - 0x7E48,0x7E35,0x7E3F,0x7E2F,0x7F44,0x7FF3,0x7FFC,0x8071, - 0x8072,0x8070,0x806F,0x8073,0x81C6,0x81C3,0x81BA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 118, Array index 0x3900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x81C2,0x81C0,0x81BF,0x81BD,0x81C9,0x81BE,0x81E8, - 0x8209,0x8271,0x85AA,0x8584,0x857E,0x859C,0x8591,0x8594, - 0x85AF,0x859B,0x8587,0x85A8,0x858A,0x85A6,0x8667,0x87C0, - 0x87D1,0x87B3,0x87D2,0x87C6,0x87AB,0x87BB,0x87BA,0x87C8, - 0x87CB,0x893B,0x8936,0x8944,0x8938,0x893D,0x89AC,0x8B0E, - 0x8B17,0x8B19,0x8B1B,0x8B0A,0x8B20,0x8B1D,0x8B04,0x8B10, - 0x8C41,0x8C3F,0x8C73,0x8CFA,0x8CFD,0x8CFC,0x8CF8,0x8CFB, - 0x8DA8,0x8E49,0x8E4B,0x8E48,0x8E4A,0x8F44,0x8F3E,0x8F42, - 0x8F45,0x8F3F,0x907F,0x907D,0x9084,0x9081,0x9082,0x9080, - 0x9139,0x91A3,0x919E,0x919C,0x934D,0x9382,0x9328,0x9375, - 0x934A,0x9365,0x934B,0x9318,0x937E,0x936C,0x935B,0x9370, - 0x935A,0x9354,0x95CA,0x95CB,0x95CC,0x95C8,0x95C6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 119, Array index 0x3A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x96B1,0x96B8,0x96D6,0x971C,0x971E,0x97A0,0x97D3, - 0x9846,0x98B6,0x9935,0x9A01,0x99FF,0x9BAE,0x9BAB,0x9BAA, - 0x9BAD,0x9D3B,0x9D3F,0x9E8B,0x9ECF,0x9EDE,0x9EDC,0x9EDD, - 0x9EDB,0x9F3E,0x9F4B,0x53E2,0x5695,0x56AE,0x58D9,0x58D8, - 0x5B38,0x5F5E,0x61E3,0x6233,0x64F4,0x64F2,0x64FE,0x6506, - 0x64FA,0x64FB,0x64F7,0x65B7,0x66DC,0x6726,0x6AB3,0x6AAC, - 0x6AC3,0x6ABB,0x6AB8,0x6AC2,0x6AAE,0x6AAF,0x6B5F,0x6B78, - 0x6BAF,0x7009,0x700B,0x6FFE,0x7006,0x6FFA,0x7011,0x700F, - 0x71FB,0x71FC,0x71FE,0x71F8,0x7377,0x7375,0x74A7,0x74BF, - 0x7515,0x7656,0x7658,0x7652,0x77BD,0x77BF,0x77BB,0x77BC, - 0x790E,0x79AE,0x7A61,0x7A62,0x7A60,0x7AC4,0x7AC5,0x7C2B, - 0x7C27,0x7C2A,0x7C1E,0x7C23,0x7C21,0x7CE7,0x7E54,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 120, Array index 0x3B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7E55,0x7E5E,0x7E5A,0x7E61,0x7E52,0x7E59,0x7F48, - 0x7FF9,0x7FFB,0x8077,0x8076,0x81CD,0x81CF,0x820A,0x85CF, - 0x85A9,0x85CD,0x85D0,0x85C9,0x85B0,0x85BA,0x85B9,0x87EF, - 0x87EC,0x87F2,0x87E0,0x8986,0x89B2,0x89F4,0x8B28,0x8B39, - 0x8B2C,0x8B2B,0x8C50,0x8D05,0x8E59,0x8E63,0x8E66,0x8E64, - 0x8E5F,0x8E55,0x8EC0,0x8F49,0x8F4D,0x9087,0x9083,0x9088, - 0x91AB,0x91AC,0x91D0,0x9394,0x938A,0x9396,0x93A2,0x93B3, - 0x93AE,0x93AC,0x93B0,0x9398,0x939A,0x9397,0x95D4,0x95D6, - 0x95D0,0x95D5,0x96E2,0x96DC,0x96D9,0x96DB,0x96DE,0x9724, - 0x97A3,0x97A6,0x97AD,0x97F9,0x984D,0x984F,0x984C,0x984E, - 0x9853,0x98BA,0x993E,0x993F,0x993D,0x992E,0x99A5,0x9A0E, - 0x9AC1,0x9B03,0x9B06,0x9B4F,0x9B4E,0x9B4D,0x9BCA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 121, Array index 0x3C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9BC9,0x9BFD,0x9BC8,0x9BC0,0x9D51,0x9D5D,0x9D60, - 0x9EE0,0x9F15,0x9F2C,0x5133,0x56A5,0x56A8,0x58DE,0x58DF, - 0x58E2,0x5BF5,0x9F90,0x5EEC,0x61F2,0x61F7,0x61F6,0x61F5, - 0x6500,0x650F,0x66E0,0x66DD,0x6AE5,0x6ADD,0x6ADA,0x6AD3, - 0x701B,0x701F,0x7028,0x701A,0x701D,0x7015,0x7018,0x7206, - 0x720D,0x7258,0x72A2,0x7378,0x737A,0x74BD,0x74CA,0x74E3, - 0x7587,0x7586,0x765F,0x7661,0x77C7,0x7919,0x79B1,0x7A6B, - 0x7A69,0x7C3E,0x7C3F,0x7C38,0x7C3D,0x7C37,0x7C40,0x7E6B, - 0x7E6D,0x7E79,0x7E69,0x7E6A,0x7E73,0x7F85,0x7FB6,0x7FB9, - 0x7FB8,0x81D8,0x85E9,0x85DD,0x85EA,0x85D5,0x85E4,0x85E5, - 0x85F7,0x87FB,0x8805,0x880D,0x87F9,0x87FE,0x8960,0x895F, - 0x8956,0x895E,0x8B41,0x8B5C,0x8B58,0x8B49,0x8B5A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 122, Array index 0x3D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8B4E,0x8B4F,0x8B46,0x8B59,0x8D08,0x8D0A,0x8E7C, - 0x8E72,0x8E87,0x8E76,0x8E6C,0x8E7A,0x8E74,0x8F54,0x8F4E, - 0x8FAD,0x908A,0x908B,0x91B1,0x91AE,0x93E1,0x93D1,0x93DF, - 0x93C3,0x93C8,0x93DC,0x93DD,0x93D6,0x93E2,0x93CD,0x93D8, - 0x93E4,0x93D7,0x93E8,0x95DC,0x96B4,0x96E3,0x972A,0x9727, - 0x9761,0x97DC,0x97FB,0x985E,0x9858,0x985B,0x98BC,0x9945, - 0x9949,0x9A16,0x9A19,0x9B0D,0x9BE8,0x9BE7,0x9BD6,0x9BDB, - 0x9D89,0x9D61,0x9D72,0x9D6A,0x9D6C,0x9E92,0x9E97,0x9E93, - 0x9EB4,0x52F8,0x56B7,0x56B6,0x56B4,0x56BC,0x58E4,0x5B40, - 0x5B43,0x5B7D,0x5BF6,0x5DC9,0x61F8,0x61FA,0x6518,0x6514, - 0x6519,0x66E6,0x6727,0x6AEC,0x703E,0x7030,0x7032,0x7210, - 0x737B,0x74CF,0x7662,0x7665,0x7926,0x792A,0x792C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 123, Array index 0x3E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x792B,0x7AC7,0x7AF6,0x7C4C,0x7C43,0x7C4D,0x7CEF, - 0x7CF0,0x8FAE,0x7E7D,0x7E7C,0x7E82,0x7F4C,0x8000,0x81DA, - 0x8266,0x85FB,0x85F9,0x8611,0x85FA,0x8606,0x860B,0x8607, - 0x860A,0x8814,0x8815,0x8964,0x89BA,0x89F8,0x8B70,0x8B6C, - 0x8B66,0x8B6F,0x8B5F,0x8B6B,0x8D0F,0x8D0D,0x8E89,0x8E81, - 0x8E85,0x8E82,0x91B4,0x91CB,0x9418,0x9403,0x93FD,0x95E1, - 0x9730,0x98C4,0x9952,0x9951,0x99A8,0x9A2B,0x9A30,0x9A37, - 0x9A35,0x9C13,0x9C0D,0x9E79,0x9EB5,0x9EE8,0x9F2F,0x9F5F, - 0x9F63,0x9F61,0x5137,0x5138,0x56C1,0x56C0,0x56C2,0x5914, - 0x5C6C,0x5DCD,0x61FC,0x61FE,0x651D,0x651C,0x6595,0x66E9, - 0x6AFB,0x6B04,0x6AFA,0x6BB2,0x704C,0x721B,0x72A7,0x74D6, - 0x74D4,0x7669,0x77D3,0x7C50,0x7E8F,0x7E8C,0x7FBC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 124, Array index 0x3F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8617,0x862D,0x861A,0x8823,0x8822,0x8821,0x881F, - 0x896A,0x896C,0x89BD,0x8B74,0x8B77,0x8B7D,0x8D13,0x8E8A, - 0x8E8D,0x8E8B,0x8F5F,0x8FAF,0x91BA,0x942E,0x9433,0x9435, - 0x943A,0x9438,0x9432,0x942B,0x95E2,0x9738,0x9739,0x9732, - 0x97FF,0x9867,0x9865,0x9957,0x9A45,0x9A43,0x9A40,0x9A3E, - 0x9ACF,0x9B54,0x9B51,0x9C2D,0x9C25,0x9DAF,0x9DB4,0x9DC2, - 0x9DB8,0x9E9D,0x9EEF,0x9F19,0x9F5C,0x9F66,0x9F67,0x513C, - 0x513B,0x56C8,0x56CA,0x56C9,0x5B7F,0x5DD4,0x5DD2,0x5F4E, - 0x61FF,0x6524,0x6B0A,0x6B61,0x7051,0x7058,0x7380,0x74E4, - 0x758A,0x766E,0x766C,0x79B3,0x7C60,0x7C5F,0x807E,0x807D, - 0x81DF,0x8972,0x896F,0x89FC,0x8B80,0x8D16,0x8D17,0x8E91, - 0x8E93,0x8F61,0x9148,0x9444,0x9451,0x9452,0x973D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 125, Array index 0x4000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x973E,0x97C3,0x97C1,0x986B,0x9955,0x9A55,0x9A4D, - 0x9AD2,0x9B1A,0x9C49,0x9C31,0x9C3E,0x9C3B,0x9DD3,0x9DD7, - 0x9F34,0x9F6C,0x9F6A,0x9F94,0x56CC,0x5DD6,0x6200,0x6523, - 0x652B,0x652A,0x66EC,0x6B10,0x74DA,0x7ACA,0x7C64,0x7C63, - 0x7C65,0x7E93,0x7E96,0x7E94,0x81E2,0x8638,0x863F,0x8831, - 0x8B8A,0x9090,0x908F,0x9463,0x9460,0x9464,0x9768,0x986F, - 0x995C,0x9A5A,0x9A5B,0x9A57,0x9AD3,0x9AD4,0x9AD1,0x9C54, - 0x9C57,0x9C56,0x9DE5,0x9E9F,0x9EF4,0x56D1,0x58E9,0x652C, - 0x705E,0x7671,0x7672,0x77D7,0x7F50,0x7F88,0x8836,0x8839, - 0x8862,0x8B93,0x8B92,0x8B96,0x8277,0x8D1B,0x91C0,0x946A, - 0x9742,0x9748,0x9744,0x97C6,0x9870,0x9A5F,0x9B22,0x9B58, - 0x9C5F,0x9DF9,0x9DFA,0x9E7C,0x9E7D,0x9F07,0x9F77,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 126, Array index 0x4100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9F72,0x5EF3,0x6B16,0x7063,0x7C6C,0x7C6E,0x883B, - 0x89C0,0x8EA1,0x91C1,0x9472,0x9470,0x9871,0x995E,0x9AD6, - 0x9B23,0x9ECC,0x7064,0x77DA,0x8B9A,0x9477,0x97C9,0x9A62, - 0x9A65,0x7E9C,0x8B9C,0x8EAA,0x91C5,0x947D,0x947E,0x947C, - 0x9C77,0x9C78,0x9EF7,0x8C54,0x947F,0x9E1A,0x7228,0x9A6A, - 0x9B31,0x9E1B,0x9E1E,0x7C72,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, -}; - -#endif /* ICONV_TO_UCS_CCS_CNS11643_PLANE1 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit cns11643_plane1 -> UCS size-optimized table (12138 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE1) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_size_cns11643_plane1[] = -{ - 0x0042, /* Ranges number */ - 0x0000, /* Unranged codes number */ - 0x17B5, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0x2121, 0x2139, 0x00C9, - /* Array index: 0x0006 */ 0x213E, 0x217E, 0x00E2, - /* Array index: 0x0009 */ 0x2221, 0x227E, 0x0123, - /* Array index: 0x000C */ 0x2321, 0x234E, 0x0181, - /* Array index: 0x000F */ 0x2421, 0x247E, 0x01AF, - /* Array index: 0x0012 */ 0x2521, 0x2570, 0x020D, - /* Array index: 0x0015 */ 0x2621, 0x263E, 0x025D, - /* Array index: 0x0018 */ 0x4221, 0x4241, 0x027B, - /* Array index: 0x001B */ 0x4421, 0x447E, 0x029C, - /* Array index: 0x001E */ 0x4521, 0x457E, 0x02FA, - /* Array index: 0x0021 */ 0x4621, 0x467E, 0x0358, - /* Array index: 0x0024 */ 0x4721, 0x477E, 0x03B6, - /* Array index: 0x0027 */ 0x4821, 0x487E, 0x0414, - /* Array index: 0x002A */ 0x4921, 0x497E, 0x0472, - /* Array index: 0x002D */ 0x4A21, 0x4A7E, 0x04D0, - /* Array index: 0x0030 */ 0x4B21, 0x4B7E, 0x052E, - /* Array index: 0x0033 */ 0x4C21, 0x4C7E, 0x058C, - /* Array index: 0x0036 */ 0x4D21, 0x4D7E, 0x05EA, - /* Array index: 0x0039 */ 0x4E21, 0x4E7E, 0x0648, - /* Array index: 0x003C */ 0x4F21, 0x4F7E, 0x06A6, - /* Array index: 0x003F */ 0x5021, 0x507E, 0x0704, - /* Array index: 0x0042 */ 0x5121, 0x517E, 0x0762, - /* Array index: 0x0045 */ 0x5221, 0x527E, 0x07C0, - /* Array index: 0x0048 */ 0x5321, 0x537E, 0x081E, - /* Array index: 0x004B */ 0x5421, 0x547E, 0x087C, - /* Array index: 0x004E */ 0x5521, 0x557E, 0x08DA, - /* Array index: 0x0051 */ 0x5621, 0x567E, 0x0938, - /* Array index: 0x0054 */ 0x5721, 0x577E, 0x0996, - /* Array index: 0x0057 */ 0x5821, 0x587E, 0x09F4, - /* Array index: 0x005A */ 0x5921, 0x597E, 0x0A52, - /* Array index: 0x005D */ 0x5A21, 0x5A7E, 0x0AB0, - /* Array index: 0x0060 */ 0x5B21, 0x5B7E, 0x0B0E, - /* Array index: 0x0063 */ 0x5C21, 0x5C7E, 0x0B6C, - /* Array index: 0x0066 */ 0x5D21, 0x5D7E, 0x0BCA, - /* Array index: 0x0069 */ 0x5E21, 0x5E7E, 0x0C28, - /* Array index: 0x006C */ 0x5F21, 0x5F7E, 0x0C86, - /* Array index: 0x006F */ 0x6021, 0x607E, 0x0CE4, - /* Array index: 0x0072 */ 0x6121, 0x617E, 0x0D42, - /* Array index: 0x0075 */ 0x6221, 0x627E, 0x0DA0, - /* Array index: 0x0078 */ 0x6321, 0x637E, 0x0DFE, - /* Array index: 0x007B */ 0x6421, 0x647E, 0x0E5C, - /* Array index: 0x007E */ 0x6521, 0x657E, 0x0EBA, - /* Array index: 0x0081 */ 0x6621, 0x667E, 0x0F18, - /* Array index: 0x0084 */ 0x6721, 0x677E, 0x0F76, - /* Array index: 0x0087 */ 0x6821, 0x687E, 0x0FD4, - /* Array index: 0x008A */ 0x6921, 0x697E, 0x1032, - /* Array index: 0x008D */ 0x6A21, 0x6A7E, 0x1090, - /* Array index: 0x0090 */ 0x6B21, 0x6B7E, 0x10EE, - /* Array index: 0x0093 */ 0x6C21, 0x6C7E, 0x114C, - /* Array index: 0x0096 */ 0x6D21, 0x6D7E, 0x11AA, - /* Array index: 0x0099 */ 0x6E21, 0x6E7E, 0x1208, - /* Array index: 0x009C */ 0x6F21, 0x6F7E, 0x1266, - /* Array index: 0x009F */ 0x7021, 0x707E, 0x12C4, - /* Array index: 0x00A2 */ 0x7121, 0x717E, 0x1322, - /* Array index: 0x00A5 */ 0x7221, 0x727E, 0x1380, - /* Array index: 0x00A8 */ 0x7321, 0x737E, 0x13DE, - /* Array index: 0x00AB */ 0x7421, 0x747E, 0x143C, - /* Array index: 0x00AE */ 0x7521, 0x757E, 0x149A, - /* Array index: 0x00B1 */ 0x7621, 0x767E, 0x14F8, - /* Array index: 0x00B4 */ 0x7721, 0x777E, 0x1556, - /* Array index: 0x00B7 */ 0x7821, 0x787E, 0x15B4, - /* Array index: 0x00BA */ 0x7921, 0x797E, 0x1612, - /* Array index: 0x00BD */ 0x7A21, 0x7A7E, 0x1670, - /* Array index: 0x00C0 */ 0x7B21, 0x7B7E, 0x16CE, - /* Array index: 0x00C3 */ 0x7C21, 0x7C7E, 0x172C, - /* Array index: 0x00C6 */ 0x7D21, 0x7D4B, 0x178A, - /* Ranges content */ - /* Range 0x2121 - 0x2139, array index: 0x00C9 */ - 0x3000,0xFF0C,0x3001,0x3002,0xFF0E,0x30FB,0xFF1B,0xFF1A, - 0xFF1F,0xFF01,0xFE30,0x2026,0x2025,0xFE50,0xFE51,0xFE52, - 0x00B7,0xFE54,0xFE55,0xFE56,0xFE57,0xFE31,0x2014,0xFE32, - 0x2013, - /* Range 0x213E - 0x217E, array index: 0x00E2 */ - 0xFF08,0xFF09,0xFE35,0xFE36,0xFF5B,0xFF5D,0xFE37,0xFE38, - 0x3014,0x3015,0xFE39,0xFE3A,0x3010,0x3011,0xFE3B,0xFE3C, - 0x300A,0x300B,0xFE3D,0xFE3E,0x3008,0x3009,0xFE3F,0xFE40, - 0x300C,0x300D,0xFE41,0xFE42,0x300E,0x300F,0xFE43,0xFE44, - 0xFE59,0xFE5A,0xFE5B,0xFE5C,0xFE5D,0xFE5E,0x2018,0x2019, - 0x201C,0x201D,0x301D,0x301E,0x2032,0x2035,0xFF03,0xFF06, - 0xFF0A,0x203B,0x00A7,0x3003,0x25CB,0x25CF,0x25B3,0x25B2, - 0x25CE,0x2606,0x2605,0x25C7,0x25C6,0x25A1,0x25A0,0x25BD, - 0x25BC, - /* Range 0x2221 - 0x227E, array index: 0x0123 */ - 0x32A3,0x2105,0x203E,INVALC,0xFF3F,INVALC,0xFE49,0xFE4A, - 0xFE4D,0xFE4E,0xFE4B,0xFE4C,0xFE5F,0xFE60,0xFE61,0xFF0B, - 0xFF0D,0x00D7,0x00F7,0x00B1,0x221A,0xFF1C,0xFF1E,0xFF1D, - 0x2266,0x2267,0x2260,0x221E,0x2252,0x2261,0xFE62,0xFE63, - 0xFE64,0xFE66,0xFE65,0x223C,0x2229,0x222A,0x22A5,0x2220, - 0x221F,0x22BF,0x33D2,0x33D1,0x222B,0x222E,0x2235,0x2234, - 0x2640,0x2642,0x2641,0x2609,0x2191,0x2193,0x2192,0x2190, - 0x2196,0x2197,0x2199,0x2198,0x2016,0xFF5C,0xFF0F,0xFF3C, - 0x2215,0xFE68,0xFF04,0xFFE5,0x3012,0xFFE0,0xFFE1,0xFF05, - 0xFF20,0x2103,0x2109,0xFE69,0xFE6A,0xFE6B,0x33D5,0x339C, - 0x339D,0x339E,0x33CE,0x33A1,0x338E,0x338F,0x33C4,0x00B0, - 0x5159,0x515B,0x515E,0x515D,0x5161,0x5163, - /* Range 0x2321 - 0x234E, array index: 0x0181 */ - 0x55E7,0x74E9,0x7CCE,0x2581,0x2582,0x2583,0x2584,0x2585, - 0x2586,0x2587,0x2588,0x258F,0x258E,0x258D,0x258C,0x258B, - 0x258A,0x2589,0x253C,0x2534,0x252C,0x2524,0x251C,0x2594, - 0x2500,0x2502,0x2595,0x250C,0x2510,0x2514,0x2518,0x256D, - 0x256E,0x2570,0x256F,0x2550,0x255E,0x256A,0x2561,0x25E2, - 0x25E3,0x25E5,0x25E4,0x2571,0x2572,0x2573, - /* Range 0x2421 - 0x247E, array index: 0x01AF */ - 0xFF10,0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17, - 0xFF18,0xFF19,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165, - 0x2166,0x2167,0x2168,0x2169,0x3021,0x3022,0x3023,0x3024, - 0x3025,0x3026,0x3027,0x3028,0x3029,INVALC,0x5344,INVALC, - 0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28, - 0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30, - 0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38, - 0xFF39,0xFF3A,0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46, - 0xFF47,0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E, - 0xFF4F,0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56, - 0xFF57,0xFF58,0xFF59,0xFF5A,0x0391,0x0392,0x0393,0x0394, - 0x0395,0x0396,0x0397,0x0398,0x0399,0x039A, - /* Range 0x2521 - 0x2570, array index: 0x020D */ - 0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0,0x03A1,0x03A3, - 0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9,0x03B1,0x03B2, - 0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA, - 0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0,0x03C1,0x03C3, - 0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9,0x3105,0x3106, - 0x3107,0x3108,0x3109,0x310A,0x310B,0x310C,0x310D,0x310E, - 0x310F,0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116, - 0x3117,0x3118,0x3119,0x311A,0x311B,0x311C,0x311D,0x311E, - 0x311F,0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126, - 0x3127,0x3128,0x3129,0x02D9,0x02C9,0x02CA,0x02C7,0x02CB, - /* Range 0x2621 - 0x263E, array index: 0x025D */ - 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467, - 0x2468,0x2469,0x2474,0x2475,0x2476,0x2477,0x2478,0x2479, - 0x247A,0x247B,0x247C,0x247D,0x2170,0x2171,0x2172,0x2173, - 0x2174,0x2175,0x2176,0x2177,0x2178,0x2179, - /* Range 0x4221 - 0x4241, array index: 0x027B */ - 0x2400,0x2401,0x2402,0x2403,0x2404,0x2405,0x2406,0x2407, - 0x2408,0x2409,0x240A,0x240B,0x240C,0x240D,0x240E,0x240F, - 0x2410,0x2411,0x2412,0x2413,0x2414,0x2415,0x2416,0x2417, - 0x2418,0x2419,0x241A,0x241B,0x241C,0x241D,0x241E,0x241F, - 0x2421, - /* Range 0x4421 - 0x447E, array index: 0x029C */ - 0x4E00,0x4E59,0x4E01,0x4E03,0x4E43,0x4E5D,0x4E86,0x4E8C, - 0x4EBA,0x513F,0x5165,0x516B,0x51E0,0x5200,0x5201,0x529B, - 0x5315,0x5341,0x535C,0x53C8,0x4E09,0x4E0B,0x4E08,0x4E0A, - 0x4E2B,0x4E38,0x51E1,0x4E45,0x4E48,0x4E5F,0x4E5E,0x4E8E, - 0x4EA1,0x5140,0x5203,0x52FA,0x5343,0x53C9,0x53E3,0x571F, - 0x58EB,0x5915,0x5927,0x5973,0x5B50,0x5B51,0x5B53,0x5BF8, - 0x5C0F,0x5C22,0x5C38,0x5C71,0x5DDD,0x5DE5,0x5DF1,0x5DF2, - 0x5DF3,0x5DFE,0x5E72,0x5EFE,0x5F0B,0x5F13,0x624D,0x4E11, - 0x4E10,0x4E0D,0x4E2D,0x4E30,0x4E39,0x4E4B,0x5C39,0x4E88, - 0x4E91,0x4E95,0x4E92,0x4E94,0x4EA2,0x4EC1,0x4EC0,0x4EC3, - 0x4EC6,0x4EC7,0x4ECD,0x4ECA,0x4ECB,0x4EC4,0x5143,0x5141, - 0x5167,0x516D,0x516E,0x516C,0x5197,0x51F6, - /* Range 0x4521 - 0x457E, array index: 0x02FA */ - 0x5206,0x5207,0x5208,0x52FB,0x52FE,0x52FF,0x5316,0x5339, - 0x5348,0x5347,0x5345,0x535E,0x5384,0x53CB,0x53CA,0x53CD, - 0x58EC,0x5929,0x592B,0x592A,0x592D,0x5B54,0x5C11,0x5C24, - 0x5C3A,0x5C6F,0x5DF4,0x5E7B,0x5EFF,0x5F14,0x5F15,0x5FC3, - 0x6208,0x6236,0x624B,0x624E,0x652F,0x6587,0x6597,0x65A4, - 0x65B9,0x65E5,0x66F0,0x6708,0x6728,0x6B20,0x6B62,0x6B79, - 0x6BCB,0x6BD4,0x6BDB,0x6C0F,0x6C34,0x706B,0x722A,0x7236, - 0x723B,0x7247,0x7259,0x725B,0x72AC,0x738B,0x4E19,0x4E16, - 0x4E15,0x4E14,0x4E18,0x4E3B,0x4E4D,0x4E4F,0x4E4E,0x4EE5, - 0x4ED8,0x4ED4,0x4ED5,0x4ED6,0x4ED7,0x4EE3,0x4EE4,0x4ED9, - 0x4EDE,0x5145,0x5144,0x5189,0x518A,0x51AC,0x51F9,0x51FA, - 0x51F8,0x520A,0x52A0,0x529F,0x5305,0x5306, - /* Range 0x4621 - 0x467E, array index: 0x0358 */ - 0x5317,0x531D,0x4EDF,0x534A,0x5349,0x5361,0x5360,0x536F, - 0x536E,0x53BB,0x53EF,0x53E4,0x53F3,0x53EC,0x53EE,0x53E9, - 0x53E8,0x53FC,0x53F8,0x53F5,0x53EB,0x53E6,0x53EA,0x53F2, - 0x53F1,0x53F0,0x53E5,0x53ED,0x53FB,0x56DB,0x56DA,0x5916, - 0x592E,0x5931,0x5974,0x5976,0x5B55,0x5B83,0x5C3C,0x5DE8, - 0x5DE7,0x5DE6,0x5E02,0x5E03,0x5E73,0x5E7C,0x5F01,0x5F18, - 0x5F17,0x5FC5,0x620A,0x6253,0x6254,0x6252,0x6251,0x65A5, - 0x65E6,0x672E,0x672C,0x672A,0x672B,0x672D,0x6B63,0x6BCD, - 0x6C11,0x6C10,0x6C38,0x6C41,0x6C40,0x6C3E,0x72AF,0x7384, - 0x7389,0x74DC,0x74E6,0x7518,0x751F,0x7528,0x7529,0x7530, - 0x7531,0x7532,0x7533,0x758B,0x767D,0x76AE,0x76BF,0x76EE, - 0x77DB,0x77E2,0x77F3,0x793A,0x79BE,0x7A74, - /* Range 0x4721 - 0x477E, array index: 0x03B6 */ - 0x7ACB,0x4E1E,0x4E1F,0x4E52,0x4E53,0x4E69,0x4E99,0x4EA4, - 0x4EA6,0x4EA5,0x4EFF,0x4F09,0x4F19,0x4F0A,0x4F15,0x4F0D, - 0x4F10,0x4F11,0x4F0F,0x4EF2,0x4EF6,0x4EFB,0x4EF0,0x4EF3, - 0x4EFD,0x4F01,0x4F0B,0x5149,0x5147,0x5146,0x5148,0x5168, - 0x5171,0x518D,0x51B0,0x5217,0x5211,0x5212,0x520E,0x5216, - 0x52A3,0x5308,0x5321,0x5320,0x5370,0x5371,0x5409,0x540F, - 0x540C,0x540A,0x5410,0x5401,0x540B,0x5404,0x5411,0x540D, - 0x5408,0x5403,0x540E,0x5406,0x5412,0x56E0,0x56DE,0x56DD, - 0x5733,0x5730,0x5728,0x572D,0x572C,0x572F,0x5729,0x5919, - 0x591A,0x5937,0x5938,0x5984,0x5978,0x5983,0x597D,0x5979, - 0x5982,0x5981,0x5B57,0x5B58,0x5B87,0x5B88,0x5B85,0x5B89, - 0x5BFA,0x5C16,0x5C79,0x5DDE,0x5E06,0x5E76, - /* Range 0x4821 - 0x487E, array index: 0x0414 */ - 0x5E74,0x5F0F,0x5F1B,0x5FD9,0x5FD6,0x620E,0x620C,0x620D, - 0x6210,0x6263,0x625B,0x6258,0x6536,0x65E9,0x65E8,0x65EC, - 0x65ED,0x66F2,0x66F3,0x6709,0x673D,0x6734,0x6731,0x6735, - 0x6B21,0x6B64,0x6B7B,0x6C16,0x6C5D,0x6C57,0x6C59,0x6C5F, - 0x6C60,0x6C50,0x6C55,0x6C61,0x6C5B,0x6C4D,0x6C4E,0x7070, - 0x725F,0x725D,0x767E,0x7AF9,0x7C73,0x7CF8,0x7F36,0x7F8A, - 0x7FBD,0x8001,0x8003,0x800C,0x8012,0x8033,0x807F,0x8089, - 0x808B,0x808C,0x81E3,0x81EA,0x81F3,0x81FC,0x820C,0x821B, - 0x821F,0x826E,0x8272,0x827E,0x866B,0x8840,0x884C,0x8863, - 0x897F,0x9621,0x4E32,0x4EA8,0x4F4D,0x4F4F,0x4F47,0x4F57, - 0x4F5E,0x4F34,0x4F5B,0x4F55,0x4F30,0x4F50,0x4F51,0x4F3D, - 0x4F3A,0x4F38,0x4F43,0x4F54,0x4F3C,0x4F46, - /* Range 0x4921 - 0x497E, array index: 0x0472 */ - 0x4F63,0x4F5C,0x4F60,0x4F2F,0x4F4E,0x4F36,0x4F59,0x4F5D, - 0x4F48,0x4F5A,0x514C,0x514B,0x514D,0x5175,0x51B6,0x51B7, - 0x5225,0x5224,0x5229,0x522A,0x5228,0x52AB,0x52A9,0x52AA, - 0x52AC,0x5323,0x5373,0x5375,0x541D,0x542D,0x541E,0x543E, - 0x5426,0x544E,0x5427,0x5446,0x5443,0x5433,0x5448,0x5442, - 0x541B,0x5429,0x544A,0x5439,0x543B,0x5438,0x542E,0x5435, - 0x5436,0x5420,0x543C,0x5440,0x5431,0x542B,0x541F,0x542C, - 0x56EA,0x56F0,0x56E4,0x56EB,0x574A,0x5751,0x5740,0x574D, - 0x5747,0x574E,0x573E,0x5750,0x574F,0x573B,0x58EF,0x593E, - 0x599D,0x5992,0x59A8,0x599E,0x59A3,0x5999,0x5996,0x598D, - 0x59A4,0x5993,0x598A,0x59A5,0x5B5D,0x5B5C,0x5B5A,0x5B5B, - 0x5B8C,0x5B8B,0x5B8F,0x5C2C,0x5C40,0x5C41, - /* Range 0x4A21 - 0x4A7E, array index: 0x04D0 */ - 0x5C3F,0x5C3E,0x5C90,0x5C91,0x5C94,0x5C8C,0x5DEB,0x5E0C, - 0x5E8F,0x5E87,0x5E8A,0x5EF7,0x5F04,0x5F1F,0x5F64,0x5F62, - 0x5F77,0x5F79,0x5FD8,0x5FCC,0x5FD7,0x5FCD,0x5FF1,0x5FEB, - 0x5FF8,0x5FEA,0x6212,0x6211,0x6284,0x6297,0x6296,0x6280, - 0x6276,0x6289,0x626D,0x628A,0x627C,0x627E,0x6279,0x6273, - 0x6292,0x626F,0x6298,0x626E,0x6295,0x6293,0x6291,0x6286, - 0x6539,0x653B,0x6538,0x65F1,0x66F4,0x675F,0x674E,0x674F, - 0x6750,0x6751,0x675C,0x6756,0x675E,0x6749,0x6746,0x6760, - 0x6753,0x6757,0x6B65,0x6BCF,0x6C42,0x6C5E,0x6C99,0x6C81, - 0x6C88,0x6C89,0x6C85,0x6C9B,0x6C6A,0x6C7A,0x6C90,0x6C70, - 0x6C8C,0x6C68,0x6C96,0x6C92,0x6C7D,0x6C83,0x6C72,0x6C7E, - 0x6C74,0x6C86,0x6C76,0x6C8D,0x6C94,0x6C98, - /* Range 0x4B21 - 0x4B7E, array index: 0x052E */ - 0x6C82,0x7076,0x707C,0x707D,0x7078,0x7262,0x7261,0x7260, - 0x72C4,0x72C2,0x7396,0x752C,0x752B,0x7537,0x7538,0x7682, - 0x76EF,0x77E3,0x79C1,0x79C0,0x79BF,0x7A76,0x7CFB,0x7F55, - 0x8096,0x8093,0x809D,0x8098,0x809B,0x809A,0x80B2,0x826F, - 0x8292,0x828B,0x828D,0x898B,0x89D2,0x8A00,0x8C37,0x8C46, - 0x8C55,0x8C9D,0x8D64,0x8D70,0x8DB3,0x8EAB,0x8ECA,0x8F9B, - 0x8FB0,0x8FC2,0x8FC6,0x8FC5,0x8FC4,0x5DE1,0x9091,0x90A2, - 0x90AA,0x90A6,0x90A3,0x9149,0x91C6,0x91CC,0x9632,0x962E, - 0x9631,0x962A,0x962C,0x4E26,0x4E56,0x4E73,0x4E8B,0x4E9B, - 0x4E9E,0x4EAB,0x4EAC,0x4F6F,0x4F9D,0x4F8D,0x4F73,0x4F7F, - 0x4F6C,0x4F9B,0x4F8B,0x4F86,0x4F83,0x4F70,0x4F75,0x4F88, - 0x4F69,0x4F7B,0x4F96,0x4F7E,0x4F8F,0x4F91, - /* Range 0x4C21 - 0x4C7E, array index: 0x058C */ - 0x4F7A,0x5154,0x5152,0x5155,0x5169,0x5177,0x5176,0x5178, - 0x51BD,0x51FD,0x523B,0x5238,0x5237,0x523A,0x5230,0x522E, - 0x5236,0x5241,0x52BE,0x52BB,0x5352,0x5354,0x5353,0x5351, - 0x5366,0x5377,0x5378,0x5379,0x53D6,0x53D4,0x53D7,0x5473, - 0x5475,0x5496,0x5478,0x5495,0x5480,0x547B,0x5477,0x5484, - 0x5492,0x5486,0x547C,0x5490,0x5471,0x5476,0x548C,0x549A, - 0x5462,0x5468,0x548B,0x547D,0x548E,0x56FA,0x5783,0x5777, - 0x576A,0x5769,0x5761,0x5766,0x5764,0x577C,0x591C,0x5949, - 0x5947,0x5948,0x5944,0x5954,0x59BE,0x59BB,0x59D4,0x59B9, - 0x59AE,0x59D1,0x59C6,0x59D0,0x59CD,0x59CB,0x59D3,0x59CA, - 0x59AF,0x59B3,0x59D2,0x59C5,0x5B5F,0x5B64,0x5B63,0x5B97, - 0x5B9A,0x5B98,0x5B9C,0x5B99,0x5B9B,0x5C1A, - /* Range 0x4D21 - 0x4D7E, array index: 0x05EA */ - 0x5C48,0x5C45,0x5C46,0x5CB7,0x5CA1,0x5CB8,0x5CA9,0x5CAB, - 0x5CB1,0x5CB3,0x5E18,0x5E1A,0x5E16,0x5E15,0x5E1B,0x5E11, - 0x5E78,0x5E9A,0x5E97,0x5E9C,0x5E95,0x5E96,0x5EF6,0x5F26, - 0x5F27,0x5F29,0x5F80,0x5F81,0x5F7F,0x5F7C,0x5FDD,0x5FE0, - 0x5FFD,0x5FF5,0x5FFF,0x600F,0x6014,0x602F,0x6035,0x6016, - 0x602A,0x6015,0x6021,0x6027,0x6029,0x602B,0x601B,0x6216, - 0x6215,0x623F,0x623E,0x6240,0x627F,0x62C9,0x62CC,0x62C4, - 0x62BF,0x62C2,0x62B9,0x62D2,0x62DB,0x62AB,0x62D3,0x62D4, - 0x62CB,0x62C8,0x62A8,0x62BD,0x62BC,0x62D0,0x62D9,0x62C7, - 0x62CD,0x62B5,0x62DA,0x62B1,0x62D8,0x62D6,0x62D7,0x62C6, - 0x62AC,0x62CE,0x653E,0x65A7,0x65BC,0x65FA,0x6614,0x6613, - 0x660C,0x6606,0x6602,0x660E,0x6600,0x660F, - /* Range 0x4E21 - 0x4E7E, array index: 0x0648 */ - 0x6615,0x660A,0x6607,0x670D,0x670B,0x676D,0x678B,0x6795, - 0x6771,0x679C,0x6773,0x6777,0x6787,0x679D,0x6797,0x676F, - 0x6770,0x677F,0x6789,0x677E,0x6790,0x6775,0x679A,0x6793, - 0x677C,0x676A,0x6772,0x6B23,0x6B66,0x6B67,0x6B7F,0x6C13, - 0x6C1B,0x6CE3,0x6CE8,0x6CF3,0x6CB1,0x6CCC,0x6CE5,0x6CB3, - 0x6CBD,0x6CBE,0x6CBC,0x6CE2,0x6CAB,0x6CD5,0x6CD3,0x6CB8, - 0x6CC4,0x6CB9,0x6CC1,0x6CAE,0x6CD7,0x6CC5,0x6CF1,0x6CBF, - 0x6CBB,0x6CE1,0x6CDB,0x6CCA,0x6CAC,0x6CEF,0x6CDC,0x6CD6, - 0x6CE0,0x7095,0x708E,0x7092,0x708A,0x7099,0x722C,0x722D, - 0x7238,0x7248,0x7267,0x7269,0x72C0,0x72CE,0x72D9,0x72D7, - 0x72D0,0x73A9,0x73A8,0x739F,0x73AB,0x73A5,0x753D,0x759D, - 0x7599,0x759A,0x7684,0x76C2,0x76F2,0x76F4, - /* Range 0x4F21 - 0x4F7E, array index: 0x06A6 */ - 0x77E5,0x77FD,0x793E,0x7940,0x7941,0x79C9,0x79C8,0x7A7A, - 0x7A79,0x7AFA,0x7CFE,0x7F54,0x7F8C,0x7F8B,0x8005,0x80BA, - 0x80A5,0x80A2,0x80B1,0x80A1,0x80AB,0x80A9,0x80B4,0x80AA, - 0x80AF,0x81E5,0x81FE,0x820D,0x82B3,0x829D,0x8299,0x82AD, - 0x82BD,0x829F,0x82B9,0x82B1,0x82AC,0x82A5,0x82AF,0x82B8, - 0x82A3,0x82B0,0x82BE,0x82B7,0x864E,0x8671,0x521D,0x8868, - 0x8ECB,0x8FCE,0x8FD4,0x8FD1,0x90B5,0x90B8,0x90B1,0x90B6, - 0x91C7,0x91D1,0x9577,0x9580,0x961C,0x9640,0x963F,0x963B, - 0x9644,0x9642,0x96B9,0x96E8,0x9752,0x975E,0x4E9F,0x4EAD, - 0x4EAE,0x4FE1,0x4FB5,0x4FAF,0x4FBF,0x4FE0,0x4FD1,0x4FCF, - 0x4FDD,0x4FC3,0x4FB6,0x4FD8,0x4FDF,0x4FCA,0x4FD7,0x4FAE, - 0x4FD0,0x4FC4,0x4FC2,0x4FDA,0x4FCE,0x4FDE, - /* Range 0x5021 - 0x507E, array index: 0x0704 */ - 0x4FB7,0x5157,0x5192,0x5191,0x51A0,0x524E,0x5243,0x524A, - 0x524D,0x524C,0x524B,0x5247,0x52C7,0x52C9,0x52C3,0x52C1, - 0x530D,0x5357,0x537B,0x539A,0x53DB,0x54AC,0x54C0,0x54A8, - 0x54CE,0x54C9,0x54B8,0x54A6,0x54B3,0x54C7,0x54C2,0x54BD, - 0x54AA,0x54C1,0x54C4,0x54C8,0x54AF,0x54AB,0x54B1,0x54BB, - 0x54A9,0x54A7,0x54BF,0x56FF,0x5782,0x578B,0x57A0,0x57A3, - 0x57A2,0x57CE,0x57AE,0x5793,0x5955,0x5951,0x594F,0x594E, - 0x5950,0x59DC,0x59D8,0x59FF,0x59E3,0x59E8,0x5A03,0x59E5, - 0x59EA,0x59DA,0x59E6,0x5A01,0x59FB,0x5B69,0x5BA3,0x5BA6, - 0x5BA4,0x5BA2,0x5BA5,0x5C01,0x5C4E,0x5C4F,0x5C4D,0x5C4B, - 0x5CD9,0x5CD2,0x5DF7,0x5E1D,0x5E25,0x5E1F,0x5E7D,0x5EA0, - 0x5EA6,0x5EFA,0x5F08,0x5F2D,0x5F65,0x5F88, - /* Range 0x5121 - 0x517E, array index: 0x0762 */ - 0x5F85,0x5F8A,0x5F8B,0x5F87,0x5F8C,0x5F89,0x6012,0x601D, - 0x6020,0x6025,0x600E,0x6028,0x604D,0x6070,0x6068,0x6062, - 0x6046,0x6043,0x606C,0x606B,0x606A,0x6064,0x6241,0x62DC, - 0x6316,0x6309,0x62FC,0x62ED,0x6301,0x62EE,0x62FD,0x6307, - 0x62F1,0x62F7,0x62EF,0x62EC,0x62FE,0x62F4,0x6311,0x6302, - 0x653F,0x6545,0x65AB,0x65BD,0x65E2,0x6625,0x662D,0x6620, - 0x6627,0x662F,0x661F,0x6628,0x6631,0x6624,0x66F7,0x67FF, - 0x67D3,0x67F1,0x67D4,0x67D0,0x67EC,0x67B6,0x67AF,0x67F5, - 0x67E9,0x67EF,0x67C4,0x67D1,0x67B4,0x67DA,0x67E5,0x67B8, - 0x67CF,0x67DE,0x67F3,0x67B0,0x67D9,0x67E2,0x67DD,0x67D2, - 0x6B6A,0x6B83,0x6B86,0x6BB5,0x6BD2,0x6BD7,0x6C1F,0x6CC9, - 0x6D0B,0x6D32,0x6D2A,0x6D41,0x6D25,0x6D0C, - /* Range 0x5221 - 0x527E, array index: 0x07C0 */ - 0x6D31,0x6D1E,0x6D17,0x6D3B,0x6D3D,0x6D3E,0x6D36,0x6D1B, - 0x6CF5,0x6D39,0x6D27,0x6D38,0x6D29,0x6D2E,0x6D35,0x6D0E, - 0x6D2B,0x70AB,0x70BA,0x70B3,0x70AC,0x70AF,0x70AD,0x70B8, - 0x70AE,0x70A4,0x7230,0x7272,0x726F,0x7274,0x72E9,0x72E0, - 0x72E1,0x73B7,0x73CA,0x73BB,0x73B2,0x73CD,0x73C0,0x73B3, - 0x751A,0x752D,0x754F,0x754C,0x754E,0x754B,0x75AB,0x75A4, - 0x75A5,0x75A2,0x75A3,0x7678,0x7686,0x7687,0x7688,0x76C8, - 0x76C6,0x76C3,0x76C5,0x7701,0x76F9,0x76F8,0x7709,0x770B, - 0x76FE,0x76FC,0x7707,0x77DC,0x7802,0x7814,0x780C,0x780D, - 0x7946,0x7949,0x7948,0x7947,0x79B9,0x79BA,0x79D1,0x79D2, - 0x79CB,0x7A7F,0x7A81,0x7AFF,0x7AFD,0x7C7D,0x7D02,0x7D05, - 0x7D00,0x7D09,0x7D07,0x7D04,0x7D06,0x7F38, - /* Range 0x5321 - 0x537E, array index: 0x081E */ - 0x7F8E,0x7FBF,0x8010,0x800D,0x8011,0x8036,0x80D6,0x80E5, - 0x80DA,0x80C3,0x80C4,0x80CC,0x80E1,0x80DB,0x80CE,0x80DE, - 0x80E4,0x80DD,0x81F4,0x8222,0x82E7,0x8303,0x8305,0x82E3, - 0x82DB,0x82E6,0x8304,0x82E5,0x8302,0x8309,0x82D2,0x82D7, - 0x82F1,0x8301,0x82DC,0x82D4,0x82D1,0x82DE,0x82D3,0x82DF, - 0x82EF,0x8306,0x8650,0x8679,0x867B,0x867A,0x884D,0x886B, - 0x8981,0x89D4,0x8A08,0x8A02,0x8A03,0x8C9E,0x8CA0,0x8D74, - 0x8D73,0x8DB4,0x8ECD,0x8ECC,0x8FF0,0x8FE6,0x8FE2,0x8FEA, - 0x8FE5,0x8FED,0x8FEB,0x8FE4,0x8FE8,0x90CA,0x90CE,0x90C1, - 0x90C3,0x914B,0x914A,0x91CD,0x9582,0x9650,0x964B,0x964C, - 0x964D,0x9762,0x9769,0x97CB,0x97ED,0x97F3,0x9801,0x98A8, - 0x98DB,0x98DF,0x9996,0x9999,0x4E58,0x4EB3, - /* Range 0x5421 - 0x547E, array index: 0x087C */ - 0x500C,0x500D,0x5023,0x4FEF,0x5026,0x5025,0x4FF8,0x5029, - 0x5016,0x5006,0x503C,0x501F,0x501A,0x5012,0x5011,0x4FFA, - 0x5000,0x5014,0x5028,0x4FF1,0x5021,0x500B,0x5019,0x5018, - 0x4FF3,0x4FEE,0x502D,0x502A,0x4FFE,0x502B,0x5009,0x517C, - 0x51A4,0x51A5,0x51A2,0x51CD,0x51CC,0x51C6,0x51CB,0x5256, - 0x525C,0x5254,0x525B,0x525D,0x532A,0x537F,0x539F,0x539D, - 0x53DF,0x54E8,0x5510,0x5501,0x5537,0x54FC,0x54E5,0x54F2, - 0x5506,0x54FA,0x5514,0x54E9,0x54ED,0x54E1,0x5509,0x54EE, - 0x54EA,0x54E6,0x5527,0x5507,0x54FD,0x550F,0x5703,0x5704, - 0x57C2,0x57D4,0x57CB,0x57C3,0x5809,0x590F,0x5957,0x5958, - 0x595A,0x5A11,0x5A18,0x5A1C,0x5A1F,0x5A1B,0x5A13,0x59EC, - 0x5A20,0x5A23,0x5A29,0x5A25,0x5A0C,0x5A09, - /* Range 0x5521 - 0x557E, array index: 0x08DA */ - 0x5B6B,0x5C58,0x5BB0,0x5BB3,0x5BB6,0x5BB4,0x5BAE,0x5BB5, - 0x5BB9,0x5BB8,0x5C04,0x5C51,0x5C55,0x5C50,0x5CED,0x5CFD, - 0x5CFB,0x5CEA,0x5CE8,0x5CF0,0x5CF6,0x5D01,0x5CF4,0x5DEE, - 0x5E2D,0x5E2B,0x5EAB,0x5EAD,0x5EA7,0x5F31,0x5F92,0x5F91, - 0x5F90,0x6059,0x6063,0x6065,0x6050,0x6055,0x606D,0x6069, - 0x606F,0x6084,0x609F,0x609A,0x608D,0x6094,0x608C,0x6085, - 0x6096,0x6247,0x62F3,0x6308,0x62FF,0x634E,0x633E,0x632F, - 0x6355,0x6342,0x6346,0x634F,0x6349,0x633A,0x6350,0x633D, - 0x632A,0x632B,0x6328,0x634D,0x634C,0x6548,0x6549,0x6599, - 0x65C1,0x65C5,0x6642,0x6649,0x664F,0x6643,0x6652,0x664C, - 0x6645,0x6641,0x66F8,0x6714,0x6715,0x6717,0x6821,0x6838, - 0x6848,0x6846,0x6853,0x6839,0x6842,0x6854, - /* Range 0x5621 - 0x567E, array index: 0x0938 */ - 0x6829,0x68B3,0x6817,0x684C,0x6851,0x683D,0x67F4,0x6850, - 0x6840,0x683C,0x6843,0x682A,0x6845,0x6813,0x6818,0x6841, - 0x6B8A,0x6B89,0x6BB7,0x6C23,0x6C27,0x6C28,0x6C26,0x6C24, - 0x6CF0,0x6D6A,0x6D95,0x6D88,0x6D87,0x6D66,0x6D78,0x6D77, - 0x6D59,0x6D93,0x6D6C,0x6D89,0x6D6E,0x6D5A,0x6D74,0x6D69, - 0x6D8C,0x6D8A,0x6D79,0x6D85,0x6D65,0x6D94,0x70CA,0x70D8, - 0x70E4,0x70D9,0x70C8,0x70CF,0x7239,0x7279,0x72FC,0x72F9, - 0x72FD,0x72F8,0x72F7,0x7386,0x73ED,0x7409,0x73EE,0x73E0, - 0x73EA,0x73DE,0x7554,0x755D,0x755C,0x755A,0x7559,0x75BE, - 0x75C5,0x75C7,0x75B2,0x75B3,0x75BD,0x75BC,0x75B9,0x75C2, - 0x75B8,0x768B,0x76B0,0x76CA,0x76CD,0x76CE,0x7729,0x771F, - 0x7720,0x7728,0x77E9,0x7830,0x7827,0x7838, - /* Range 0x5721 - 0x577E, array index: 0x0996 */ - 0x781D,0x7834,0x7837,0x7825,0x782D,0x7820,0x781F,0x7832, - 0x7955,0x7950,0x7960,0x795F,0x7956,0x795E,0x795D,0x7957, - 0x795A,0x79E4,0x79E3,0x79E7,0x79DF,0x79E6,0x79E9,0x79D8, - 0x7A84,0x7A88,0x7AD9,0x7B06,0x7B11,0x7C89,0x7D21,0x7D17, - 0x7D0B,0x7D0A,0x7D20,0x7D22,0x7D14,0x7D10,0x7D15,0x7D1A, - 0x7D1C,0x7D0D,0x7D19,0x7D1B,0x7F3A,0x7F5F,0x7F94,0x7FC5, - 0x7FC1,0x8006,0x8004,0x8018,0x8015,0x8019,0x8017,0x803D, - 0x803F,0x80F1,0x8102,0x80F0,0x8105,0x80ED,0x80F4,0x8106, - 0x80F8,0x80F3,0x8108,0x80FD,0x810A,0x80FC,0x80EF,0x81ED, - 0x81EC,0x8200,0x8210,0x822A,0x822B,0x8228,0x822C,0x82BB, - 0x832B,0x8352,0x8354,0x834A,0x8338,0x8350,0x8349,0x8335, - 0x8334,0x834F,0x8332,0x8339,0x8336,0x8317, - /* Range 0x5821 - 0x587E, array index: 0x09F4 */ - 0x8340,0x8331,0x8328,0x8343,0x8654,0x868A,0x86AA,0x8693, - 0x86A4,0x86A9,0x868C,0x86A3,0x869C,0x8870,0x8877,0x8881, - 0x8882,0x887D,0x8879,0x8A18,0x8A10,0x8A0E,0x8A0C,0x8A15, - 0x8A0A,0x8A17,0x8A13,0x8A16,0x8A0F,0x8A11,0x8C48,0x8C7A, - 0x8C79,0x8CA1,0x8CA2,0x8D77,0x8EAC,0x8ED2,0x8ED4,0x8ECF, - 0x8FB1,0x9001,0x9006,0x8FF7,0x9000,0x8FFA,0x8FF4,0x9003, - 0x8FFD,0x9005,0x8FF8,0x9095,0x90E1,0x90DD,0x90E2,0x9152, - 0x914D,0x914C,0x91D8,0x91DD,0x91D7,0x91DC,0x91D9,0x9583, - 0x9662,0x9663,0x9661,0x965B,0x965D,0x9664,0x9658,0x965E, - 0x96BB,0x98E2,0x99AC,0x9AA8,0x9AD8,0x9B25,0x9B32,0x9B3C, - 0x4E7E,0x507A,0x507D,0x505C,0x5047,0x5043,0x504C,0x505A, - 0x5049,0x5065,0x5076,0x504E,0x5055,0x5075, - /* Range 0x5921 - 0x597E, array index: 0x0A52 */ - 0x5074,0x5077,0x504F,0x500F,0x506F,0x506D,0x515C,0x5195, - 0x51F0,0x526A,0x526F,0x52D2,0x52D9,0x52D8,0x52D5,0x5310, - 0x530F,0x5319,0x533F,0x5340,0x533E,0x53C3,0x66FC,0x5546, - 0x556A,0x5566,0x5544,0x555E,0x5561,0x5543,0x554A,0x5531, - 0x5556,0x554F,0x5555,0x552F,0x5564,0x5538,0x552E,0x555C, - 0x552C,0x5563,0x5533,0x5541,0x5557,0x5708,0x570B,0x5709, - 0x57DF,0x5805,0x580A,0x5806,0x57E0,0x57E4,0x57FA,0x5802, - 0x5835,0x57F7,0x57F9,0x5920,0x5962,0x5A36,0x5A41,0x5A49, - 0x5A66,0x5A6A,0x5A40,0x5A3C,0x5A62,0x5A5A,0x5A46,0x5A4A, - 0x5B70,0x5BC7,0x5BC5,0x5BC4,0x5BC2,0x5BBF,0x5BC6,0x5C09, - 0x5C08,0x5C07,0x5C60,0x5C5C,0x5C5D,0x5D07,0x5D06,0x5D0E, - 0x5D1B,0x5D16,0x5D22,0x5D11,0x5D29,0x5D14, - /* Range 0x5A21 - 0x5A7E, array index: 0x0AB0 */ - 0x5D19,0x5D24,0x5D27,0x5D17,0x5DE2,0x5E38,0x5E36,0x5E33, - 0x5E37,0x5EB7,0x5EB8,0x5EB6,0x5EB5,0x5EBE,0x5F35,0x5F37, - 0x5F57,0x5F6C,0x5F69,0x5F6B,0x5F97,0x5F99,0x5F9E,0x5F98, - 0x5FA1,0x5FA0,0x5F9C,0x607F,0x60A3,0x6089,0x60A0,0x60A8, - 0x60CB,0x60B4,0x60E6,0x60BD,0x60C5,0x60BB,0x60B5,0x60DC, - 0x60BC,0x60D8,0x60D5,0x60C6,0x60DF,0x60B8,0x60DA,0x60C7, - 0x621A,0x621B,0x6248,0x63A0,0x63A7,0x6372,0x6396,0x63A2, - 0x63A5,0x6377,0x6367,0x6398,0x63AA,0x6371,0x63A9,0x6389, - 0x6383,0x639B,0x636B,0x63A8,0x6384,0x6388,0x6399,0x63A1, - 0x63AC,0x6392,0x638F,0x6380,0x637B,0x6369,0x6368,0x637A, - 0x655D,0x6556,0x6551,0x6559,0x6557,0x555F,0x654F,0x6558, - 0x6555,0x6554,0x659C,0x659B,0x65AC,0x65CF, - /* Range 0x5B21 - 0x5B7E, array index: 0x0B0E */ - 0x65CB,0x65CC,0x65CE,0x665D,0x665A,0x6664,0x6668,0x6666, - 0x665E,0x66F9,0x52D7,0x671B,0x6881,0x68AF,0x68A2,0x6893, - 0x68B5,0x687F,0x6876,0x68B1,0x68A7,0x6897,0x68B0,0x6883, - 0x68C4,0x68AD,0x6886,0x6885,0x6894,0x689D,0x68A8,0x689F, - 0x68A1,0x6882,0x6B32,0x6BBA,0x6BEB,0x6BEC,0x6C2B,0x6D8E, - 0x6DBC,0x6DF3,0x6DD9,0x6DB2,0x6DE1,0x6DCC,0x6DE4,0x6DFB, - 0x6DFA,0x6E05,0x6DC7,0x6DCB,0x6DAF,0x6DD1,0x6DAE,0x6DDE, - 0x6DF9,0x6DB8,0x6DF7,0x6DF5,0x6DC5,0x6DD2,0x6E1A,0x6DB5, - 0x6DDA,0x6DEB,0x6DD8,0x6DEA,0x6DF1,0x6DEE,0x6DE8,0x6DC6, - 0x6DC4,0x6DAA,0x6DEC,0x6DBF,0x6DE6,0x70F9,0x7109,0x710A, - 0x70FD,0x70EF,0x723D,0x727D,0x7281,0x731C,0x731B,0x7316, - 0x7313,0x7319,0x7387,0x7405,0x740A,0x7403, - /* Range 0x5C21 - 0x5C7E, array index: 0x0B6C */ - 0x7406,0x73FE,0x740D,0x74E0,0x74F6,0x74F7,0x751C,0x7522, - 0x7565,0x7566,0x7562,0x7570,0x758F,0x75D4,0x75D5,0x75B5, - 0x75CA,0x75CD,0x768E,0x76D4,0x76D2,0x76DB,0x7737,0x773E, - 0x773C,0x7736,0x7738,0x773A,0x786B,0x7843,0x784E,0x7965, - 0x7968,0x796D,0x79FB,0x7A92,0x7A95,0x7B20,0x7B28,0x7B1B, - 0x7B2C,0x7B26,0x7B19,0x7B1E,0x7B2E,0x7C92,0x7C97,0x7C95, - 0x7D46,0x7D43,0x7D71,0x7D2E,0x7D39,0x7D3C,0x7D40,0x7D30, - 0x7D33,0x7D44,0x7D2F,0x7D42,0x7D32,0x7D31,0x7F3D,0x7F9E, - 0x7F9A,0x7FCC,0x7FCE,0x7FD2,0x801C,0x804A,0x8046,0x812F, - 0x8116,0x8123,0x812B,0x8129,0x8130,0x8124,0x8202,0x8235, - 0x8237,0x8236,0x8239,0x838E,0x839E,0x8398,0x8378,0x83A2, - 0x8396,0x83BD,0x83AB,0x8392,0x838A,0x8393, - /* Range 0x5D21 - 0x5D7E, array index: 0x0BCA */ - 0x8389,0x83A0,0x8377,0x837B,0x837C,0x8386,0x83A7,0x8655, - 0x5F6A,0x86C7,0x86C0,0x86B6,0x86C4,0x86B5,0x86C6,0x86CB, - 0x86B1,0x86AF,0x86C9,0x8853,0x889E,0x8888,0x88AB,0x8892, - 0x8896,0x888D,0x888B,0x8993,0x898F,0x8A2A,0x8A1D,0x8A23, - 0x8A25,0x8A31,0x8A2D,0x8A1F,0x8A1B,0x8A22,0x8C49,0x8C5A, - 0x8CA9,0x8CAC,0x8CAB,0x8CA8,0x8CAA,0x8CA7,0x8D67,0x8D66, - 0x8DBE,0x8DBA,0x8EDB,0x8EDF,0x9019,0x900D,0x901A,0x9017, - 0x9023,0x901F,0x901D,0x9010,0x9015,0x901E,0x9020,0x900F, - 0x9022,0x9016,0x901B,0x9014,0x90E8,0x90ED,0x90FD,0x9157, - 0x91CE,0x91F5,0x91E6,0x91E3,0x91E7,0x91ED,0x91E9,0x9589, - 0x966A,0x9675,0x9673,0x9678,0x9670,0x9674,0x9676,0x9677, - 0x966C,0x96C0,0x96EA,0x96E9,0x7AE0,0x7ADF, - /* Range 0x5E21 - 0x5E7E, array index: 0x0C28 */ - 0x9802,0x9803,0x9B5A,0x9CE5,0x9E75,0x9E7F,0x9EA5,0x9EBB, - 0x50A2,0x508D,0x5085,0x5099,0x5091,0x5080,0x5096,0x5098, - 0x509A,0x6700,0x51F1,0x5272,0x5274,0x5275,0x5269,0x52DE, - 0x52DD,0x52DB,0x535A,0x53A5,0x557B,0x5580,0x55A7,0x557C, - 0x558A,0x559D,0x5598,0x5582,0x559C,0x55AA,0x5594,0x5587, - 0x558B,0x5583,0x55B3,0x55AE,0x559F,0x553E,0x55B2,0x559A, - 0x55BB,0x55AC,0x55B1,0x557E,0x5589,0x55AB,0x5599,0x570D, - 0x582F,0x582A,0x5834,0x5824,0x5830,0x5831,0x5821,0x581D, - 0x5820,0x58F9,0x58FA,0x5960,0x5A77,0x5A9A,0x5A7F,0x5A92, - 0x5A9B,0x5AA7,0x5B73,0x5B71,0x5BD2,0x5BCC,0x5BD3,0x5BD0, - 0x5C0A,0x5C0B,0x5C31,0x5D4C,0x5D50,0x5D34,0x5D47,0x5DFD, - 0x5E45,0x5E3D,0x5E40,0x5E43,0x5E7E,0x5ECA, - /* Range 0x5F21 - 0x5F7E, array index: 0x0C86 */ - 0x5EC1,0x5EC2,0x5EC4,0x5F3C,0x5F6D,0x5FA9,0x5FAA,0x5FA8, - 0x60D1,0x60E1,0x60B2,0x60B6,0x60E0,0x611C,0x6123,0x60FA, - 0x6115,0x60F0,0x60FB,0x60F4,0x6168,0x60F1,0x610E,0x60F6, - 0x6109,0x6100,0x6112,0x621F,0x6249,0x63A3,0x638C,0x63CF, - 0x63C0,0x63E9,0x63C9,0x63C6,0x63CD,0x63D2,0x63E3,0x63D0, - 0x63E1,0x63D6,0x63ED,0x63EE,0x6376,0x63F4,0x63EA,0x63DB, - 0x6452,0x63DA,0x63F9,0x655E,0x6566,0x6562,0x6563,0x6591, - 0x6590,0x65AF,0x666E,0x6670,0x6674,0x6676,0x666F,0x6691, - 0x667A,0x667E,0x6677,0x66FE,0x66FF,0x671F,0x671D,0x68FA, - 0x68D5,0x68E0,0x68D8,0x68D7,0x6905,0x68DF,0x68F5,0x68EE, - 0x68E7,0x68F9,0x68D2,0x68F2,0x68E3,0x68CB,0x68CD,0x690D, - 0x6912,0x690E,0x68C9,0x68DA,0x696E,0x68FB, - /* Range 0x6021 - 0x607E, array index: 0x0CE4 */ - 0x6B3E,0x6B3A,0x6B3D,0x6B98,0x6B96,0x6BBC,0x6BEF,0x6C2E, - 0x6C2F,0x6C2C,0x6E2F,0x6E38,0x6E54,0x6E21,0x6E32,0x6E67, - 0x6E4A,0x6E20,0x6E25,0x6E23,0x6E1B,0x6E5B,0x6E58,0x6E24, - 0x6E56,0x6E6E,0x6E2D,0x6E26,0x6E6F,0x6E34,0x6E4D,0x6E3A, - 0x6E2C,0x6E43,0x6E1D,0x6E3E,0x6ECB,0x6E89,0x6E19,0x6E4E, - 0x6E63,0x6E44,0x6E72,0x6E69,0x6E5F,0x7119,0x711A,0x7126, - 0x7130,0x7121,0x7136,0x716E,0x711C,0x724C,0x7284,0x7280, - 0x7336,0x7325,0x7334,0x7329,0x743A,0x742A,0x7433,0x7422, - 0x7425,0x7435,0x7436,0x7434,0x742F,0x741B,0x7426,0x7428, - 0x7525,0x7526,0x756B,0x756A,0x75E2,0x75DB,0x75E3,0x75D9, - 0x75D8,0x75DE,0x75E0,0x767B,0x767C,0x7696,0x7693,0x76B4, - 0x76DC,0x774F,0x77ED,0x785D,0x786C,0x786F, - /* Range 0x6121 - 0x617E, array index: 0x0D42 */ - 0x7A0D,0x7A08,0x7A0B,0x7A05,0x7A00,0x7A98,0x7A97,0x7A96, - 0x7AE5,0x7AE3,0x7B49,0x7B56,0x7B46,0x7B50,0x7B52,0x7B54, - 0x7B4D,0x7B4B,0x7B4F,0x7B51,0x7C9F,0x7CA5,0x7D5E,0x7D50, - 0x7D68,0x7D55,0x7D2B,0x7D6E,0x7D72,0x7D61,0x7D66,0x7D62, - 0x7D70,0x7D73,0x5584,0x7FD4,0x7FD5,0x800B,0x8052,0x8085, - 0x8155,0x8154,0x814B,0x8151,0x814E,0x8139,0x8146,0x813E, - 0x814C,0x8153,0x8174,0x8212,0x821C,0x83E9,0x8403,0x83F8, - 0x840D,0x83E0,0x83C5,0x840B,0x83C1,0x83EF,0x83F1,0x83F4, - 0x8457,0x840A,0x83F0,0x840C,0x83CC,0x83FD,0x83F2,0x83CA, - 0x8438,0x840E,0x8404,0x83DC,0x8407,0x83D4,0x83DF,0x865B, - 0x86DF,0x86D9,0x86ED,0x86D4,0x86DB,0x86E4,0x86D0,0x86DE, - 0x8857,0x88C1,0x88C2,0x88B1,0x8983,0x8996, - /* Range 0x6221 - 0x627E, array index: 0x0DA0 */ - 0x8A3B,0x8A60,0x8A55,0x8A5E,0x8A3C,0x8A41,0x8A54,0x8A5B, - 0x8A50,0x8A46,0x8A34,0x8A3A,0x8A36,0x8A56,0x8C61,0x8C82, - 0x8CAF,0x8CBC,0x8CB3,0x8CBD,0x8CC1,0x8CBB,0x8CC0,0x8CB4, - 0x8CB7,0x8CB6,0x8CBF,0x8CB8,0x8D8A,0x8D85,0x8D81,0x8DCE, - 0x8DDD,0x8DCB,0x8DDA,0x8DD1,0x8DCC,0x8DDB,0x8DC6,0x8EFB, - 0x8EF8,0x8EFC,0x8F9C,0x902E,0x9035,0x9031,0x9038,0x9032, - 0x9036,0x9102,0x90F5,0x9109,0x90FE,0x9163,0x9165,0x91CF, - 0x9214,0x9215,0x9223,0x9209,0x921E,0x920D,0x9210,0x9207, - 0x9211,0x9594,0x958F,0x958B,0x9591,0x9593,0x9592,0x958E, - 0x968A,0x968E,0x968B,0x967D,0x9685,0x9686,0x968D,0x9672, - 0x9684,0x96C1,0x96C5,0x96C4,0x96C6,0x96C7,0x96EF,0x96F2, - 0x97CC,0x9805,0x9806,0x9808,0x98E7,0x98EA, - /* Range 0x6321 - 0x637E, array index: 0x0DFE */ - 0x98EF,0x98E9,0x98F2,0x98ED,0x99AE,0x99AD,0x9EC3,0x9ECD, - 0x9ED1,0x4E82,0x50AD,0x50B5,0x50B2,0x50B3,0x50C5,0x50BE, - 0x50AC,0x50B7,0x50BB,0x50AF,0x50C7,0x527F,0x5277,0x527D, - 0x52DF,0x52E6,0x52E4,0x52E2,0x52E3,0x532F,0x55DF,0x55E8, - 0x55D3,0x55E6,0x55CE,0x55DC,0x55C7,0x55D1,0x55E3,0x55E4, - 0x55EF,0x55DA,0x55E1,0x55C5,0x55C6,0x55E5,0x55C9,0x5712, - 0x5713,0x585E,0x5851,0x5858,0x5857,0x585A,0x5854,0x586B, - 0x584C,0x586D,0x584A,0x5862,0x5852,0x584B,0x5967,0x5AC1, - 0x5AC9,0x5ACC,0x5ABE,0x5ABD,0x5ABC,0x5AB3,0x5AC2,0x5AB2, - 0x5D69,0x5D6F,0x5E4C,0x5E79,0x5EC9,0x5EC8,0x5F12,0x5F59, - 0x5FAC,0x5FAE,0x611A,0x610F,0x6148,0x611F,0x60F3,0x611B, - 0x60F9,0x6101,0x6108,0x614E,0x614C,0x6144, - /* Range 0x6421 - 0x647E, array index: 0x0E5C */ - 0x614D,0x613E,0x6134,0x6127,0x610D,0x6106,0x6137,0x6221, - 0x6222,0x6413,0x643E,0x641E,0x642A,0x642D,0x643D,0x642C, - 0x640F,0x641C,0x6414,0x640D,0x6436,0x6416,0x6417,0x6406, - 0x656C,0x659F,0x65B0,0x6697,0x6689,0x6687,0x6688,0x6696, - 0x6684,0x6698,0x668D,0x6703,0x6994,0x696D,0x695A,0x6977, - 0x6960,0x6954,0x6975,0x6930,0x6982,0x694A,0x6968,0x696B, - 0x695E,0x6953,0x6979,0x6986,0x695D,0x6963,0x695B,0x6B47, - 0x6B72,0x6BC0,0x6BBF,0x6BD3,0x6BFD,0x6EA2,0x6EAF,0x6ED3, - 0x6EB6,0x6EC2,0x6E90,0x6E9D,0x6EC7,0x6EC5,0x6EA5,0x6E98, - 0x6EBC,0x6EBA,0x6EAB,0x6ED1,0x6E96,0x6E9C,0x6EC4,0x6ED4, - 0x6EAA,0x6EA7,0x6EB4,0x714E,0x7159,0x7169,0x7164,0x7149, - 0x7167,0x715C,0x716C,0x7166,0x714C,0x7165, - /* Range 0x6521 - 0x657E, array index: 0x0EBA */ - 0x715E,0x7146,0x7168,0x7156,0x723A,0x7252,0x7337,0x7345, - 0x733F,0x733E,0x746F,0x745A,0x7455,0x745F,0x745E,0x7441, - 0x743F,0x7459,0x745B,0x745C,0x7576,0x7578,0x7600,0x75F0, - 0x7601,0x75F2,0x75F1,0x75FA,0x75FF,0x75F4,0x75F3,0x76DE, - 0x76DF,0x775B,0x776B,0x7766,0x775E,0x7763,0x7779,0x776A, - 0x776C,0x775C,0x7765,0x7768,0x7762,0x77EE,0x788E,0x78B0, - 0x7897,0x7898,0x788C,0x7889,0x787C,0x7891,0x7893,0x787F, - 0x797A,0x797F,0x7981,0x842C,0x79BD,0x7A1C,0x7A1A,0x7A20, - 0x7A14,0x7A1F,0x7A1E,0x7A9F,0x7AA0,0x7B77,0x7BC0,0x7B60, - 0x7B6E,0x7B67,0x7CB1,0x7CB3,0x7CB5,0x7D93,0x7D79,0x7D91, - 0x7D81,0x7D8F,0x7D5B,0x7F6E,0x7F69,0x7F6A,0x7F72,0x7FA9, - 0x7FA8,0x7FA4,0x8056,0x8058,0x8086,0x8084, - /* Range 0x6621 - 0x667E, array index: 0x0F18 */ - 0x8171,0x8170,0x8178,0x8165,0x816E,0x8173,0x816B,0x8179, - 0x817A,0x8166,0x8205,0x8247,0x8482,0x8477,0x843D,0x8431, - 0x8475,0x8466,0x846B,0x8449,0x846C,0x845B,0x843C,0x8435, - 0x8461,0x8463,0x8469,0x846D,0x8446,0x865E,0x865C,0x865F, - 0x86F9,0x8713,0x8708,0x8707,0x8700,0x86FE,0x86FB,0x8702, - 0x8703,0x8706,0x870A,0x8859,0x88DF,0x88D4,0x88D9,0x88DC, - 0x88D8,0x88DD,0x88E1,0x88CA,0x88D5,0x88D2,0x899C,0x89E3, - 0x8A6B,0x8A72,0x8A73,0x8A66,0x8A69,0x8A70,0x8A87,0x8A7C, - 0x8A63,0x8AA0,0x8A71,0x8A85,0x8A6D,0x8A62,0x8A6E,0x8A6C, - 0x8A79,0x8A7B,0x8A3E,0x8A68,0x8C62,0x8C8A,0x8C89,0x8CCA, - 0x8CC7,0x8CC8,0x8CC4,0x8CB2,0x8CC3,0x8CC2,0x8CC5,0x8DE1, - 0x8DDF,0x8DE8,0x8DEF,0x8DF3,0x8DFA,0x8DEA, - /* Range 0x6721 - 0x677E, array index: 0x0F76 */ - 0x8DE4,0x8DE6,0x8EB2,0x8F03,0x8F09,0x8EFE,0x8F0A,0x8F9F, - 0x8FB2,0x904B,0x904A,0x9053,0x9042,0x9054,0x903C,0x9055, - 0x9050,0x9047,0x904F,0x904E,0x904D,0x9051,0x903E,0x9041, - 0x9112,0x9117,0x916C,0x916A,0x9169,0x91C9,0x9237,0x9257, - 0x9238,0x923D,0x9240,0x923E,0x925B,0x924B,0x9264,0x9251, - 0x9234,0x9249,0x924D,0x9245,0x9239,0x923F,0x925A,0x9598, - 0x9698,0x9694,0x9695,0x96CD,0x96CB,0x96C9,0x96CA,0x96F7, - 0x96FB,0x96F9,0x96F6,0x9756,0x9774,0x9776,0x9810,0x9811, - 0x9813,0x980A,0x9812,0x980C,0x98FC,0x98F4,0x98FD,0x98FE, - 0x99B3,0x99B1,0x99B4,0x9AE1,0x9CE9,0x9E82,0x9F0E,0x9F13, - 0x9F20,0x50E7,0x50EE,0x50E5,0x50D6,0x50ED,0x50DA,0x50D5, - 0x50CF,0x50D1,0x50F1,0x50CE,0x50E9,0x5162, - /* Range 0x6821 - 0x687E, array index: 0x0FD4 */ - 0x51F3,0x5283,0x5282,0x5331,0x53AD,0x55FE,0x5600,0x561B, - 0x5617,0x55FD,0x5614,0x5606,0x5609,0x560D,0x560E,0x55F7, - 0x5616,0x561F,0x5608,0x5610,0x55F6,0x5718,0x5716,0x5875, - 0x587E,0x5883,0x5893,0x588A,0x5879,0x5885,0x587D,0x58FD, - 0x5925,0x5922,0x5924,0x596A,0x5969,0x5AE1,0x5AE6,0x5AE9, - 0x5AD7,0x5AD6,0x5AD8,0x5AE3,0x5B75,0x5BDE,0x5BE7,0x5BE1, - 0x5BE5,0x5BE6,0x5BE8,0x5BE2,0x5BE4,0x5BDF,0x5C0D,0x5C62, - 0x5D84,0x5D87,0x5E5B,0x5E63,0x5E55,0x5E57,0x5E54,0x5ED3, - 0x5ED6,0x5F0A,0x5F46,0x5F70,0x5FB9,0x6147,0x613F,0x614B, - 0x6177,0x6162,0x6163,0x615F,0x615A,0x6158,0x6175,0x622A, - 0x6487,0x6458,0x6454,0x64A4,0x6478,0x645F,0x647A,0x6451, - 0x6467,0x6434,0x646D,0x647B,0x6572,0x65A1, - /* Range 0x6921 - 0x697E, array index: 0x1032 */ - 0x65D7,0x65D6,0x66A2,0x66A8,0x669D,0x699C,0x69A8,0x6995, - 0x69C1,0x69AE,0x69D3,0x69CB,0x699B,0x69B7,0x69BB,0x69AB, - 0x69B4,0x69D0,0x69CD,0x69AD,0x69CC,0x69A6,0x69C3,0x69A3, - 0x6B49,0x6B4C,0x6C33,0x6F33,0x6F14,0x6EFE,0x6F13,0x6EF4, - 0x6F29,0x6F3E,0x6F20,0x6F2C,0x6F0F,0x6F02,0x6F22,0x6EFF, - 0x6EEF,0x6F06,0x6F31,0x6F38,0x6F32,0x6F23,0x6F15,0x6F2B, - 0x6F2F,0x6F88,0x6F2A,0x6EEC,0x6F01,0x6EF2,0x6ECC,0x6EF7, - 0x7194,0x7199,0x717D,0x718A,0x7184,0x7192,0x723E,0x7292, - 0x7296,0x7344,0x7350,0x7464,0x7463,0x746A,0x7470,0x746D, - 0x7504,0x7591,0x7627,0x760D,0x760B,0x7609,0x7613,0x76E1, - 0x76E3,0x7784,0x777D,0x777F,0x7761,0x78C1,0x789F,0x78A7, - 0x78B3,0x78A9,0x78A3,0x798E,0x798F,0x798D, - /* Range 0x6A21 - 0x6A7E, array index: 0x1090 */ - 0x7A2E,0x7A31,0x7AAA,0x7AA9,0x7AED,0x7AEF,0x7BA1,0x7B95, - 0x7B8B,0x7B75,0x7B97,0x7B9D,0x7B94,0x7B8F,0x7BB8,0x7B87, - 0x7B84,0x7CB9,0x7CBD,0x7CBE,0x7DBB,0x7DB0,0x7D9C,0x7DBD, - 0x7DBE,0x7DA0,0x7DCA,0x7DB4,0x7DB2,0x7DB1,0x7DBA,0x7DA2, - 0x7DBF,0x7DB5,0x7DB8,0x7DAD,0x7DD2,0x7DC7,0x7DAC,0x7F70, - 0x7FE0,0x7FE1,0x7FDF,0x805E,0x805A,0x8087,0x8150,0x8180, - 0x818F,0x8188,0x818A,0x817F,0x8182,0x81E7,0x81FA,0x8207, - 0x8214,0x821E,0x824B,0x84C9,0x84BF,0x84C6,0x84C4,0x8499, - 0x849E,0x84B2,0x849C,0x84CB,0x84B8,0x84C0,0x84D3,0x8490, - 0x84BC,0x84D1,0x84CA,0x873F,0x871C,0x873B,0x8722,0x8725, - 0x8734,0x8718,0x8755,0x8737,0x8729,0x88F3,0x8902,0x88F4, - 0x88F9,0x88F8,0x88FD,0x88E8,0x891A,0x88EF, - /* Range 0x6B21 - 0x6B7E, array index: 0x10EE */ - 0x8AA6,0x8A8C,0x8A9E,0x8AA3,0x8A8D,0x8AA1,0x8A93,0x8AA4, - 0x8AAA,0x8AA5,0x8AA8,0x8A98,0x8A91,0x8A9A,0x8AA7,0x8C6A, - 0x8C8D,0x8C8C,0x8CD3,0x8CD1,0x8CD2,0x8D6B,0x8D99,0x8D95, - 0x8DFC,0x8F14,0x8F12,0x8F15,0x8F13,0x8FA3,0x9060,0x9058, - 0x905C,0x9063,0x9059,0x905E,0x9062,0x905D,0x905B,0x9119, - 0x9118,0x911E,0x9175,0x9178,0x9177,0x9174,0x9278,0x92AC, - 0x9280,0x9285,0x9298,0x9296,0x927B,0x9293,0x929C,0x92A8, - 0x927C,0x9291,0x95A1,0x95A8,0x95A9,0x95A3,0x95A5,0x95A4, - 0x9699,0x969C,0x969B,0x96CC,0x96D2,0x9700,0x977C,0x9785, - 0x97F6,0x9817,0x9818,0x98AF,0x98B1,0x9903,0x9905,0x990C, - 0x9909,0x99C1,0x9AAF,0x9AB0,0x9AE6,0x9B41,0x9B42,0x9CF4, - 0x9CF6,0x9CF3,0x9EBC,0x9F3B,0x9F4A,0x5104, - /* Range 0x6C21 - 0x6C7E, array index: 0x114C */ - 0x5100,0x50FB,0x50F5,0x50F9,0x5102,0x5108,0x5109,0x5105, - 0x51DC,0x5287,0x5288,0x5289,0x528D,0x528A,0x52F0,0x53B2, - 0x562E,0x563B,0x5639,0x5632,0x563F,0x5634,0x5629,0x5653, - 0x564E,0x5657,0x5674,0x5636,0x562F,0x5630,0x5880,0x589F, - 0x589E,0x58B3,0x589C,0x58AE,0x58A9,0x58A6,0x596D,0x5B09, - 0x5AFB,0x5B0B,0x5AF5,0x5B0C,0x5B08,0x5BEE,0x5BEC,0x5BE9, - 0x5BEB,0x5C64,0x5C65,0x5D9D,0x5D94,0x5E62,0x5E5F,0x5E61, - 0x5EE2,0x5EDA,0x5EDF,0x5EDD,0x5EE3,0x5EE0,0x5F48,0x5F71, - 0x5FB7,0x5FB5,0x6176,0x6167,0x616E,0x615D,0x6155,0x6182, - 0x617C,0x6170,0x616B,0x617E,0x61A7,0x6190,0x61AB,0x618E, - 0x61AC,0x619A,0x61A4,0x6194,0x61AE,0x622E,0x6469,0x646F, - 0x6479,0x649E,0x64B2,0x6488,0x6490,0x64B0, - /* Range 0x6D21 - 0x6D7E, array index: 0x11AA */ - 0x64A5,0x6493,0x6495,0x64A9,0x6492,0x64AE,0x64AD,0x64AB, - 0x649A,0x64AC,0x6499,0x64A2,0x64B3,0x6575,0x6577,0x6578, - 0x66AE,0x66AB,0x66B4,0x66B1,0x6A23,0x6A1F,0x69E8,0x6A01, - 0x6A1E,0x6A19,0x69FD,0x6A21,0x6A13,0x6A0A,0x69F3,0x6A02, - 0x6A05,0x69ED,0x6A11,0x6B50,0x6B4E,0x6BA4,0x6BC5,0x6BC6, - 0x6F3F,0x6F7C,0x6F84,0x6F51,0x6F66,0x6F54,0x6F86,0x6F6D, - 0x6F5B,0x6F78,0x6F6E,0x6F8E,0x6F7A,0x6F70,0x6F64,0x6F97, - 0x6F58,0x6ED5,0x6F6F,0x6F60,0x6F5F,0x719F,0x71AC,0x71B1, - 0x71A8,0x7256,0x729B,0x734E,0x7357,0x7469,0x748B,0x7483, - 0x747E,0x7480,0x757F,0x7620,0x7629,0x761F,0x7624,0x7626, - 0x7621,0x7622,0x769A,0x76BA,0x76E4,0x778E,0x7787,0x778C, - 0x7791,0x778B,0x78CB,0x78C5,0x78BA,0x78CA, - /* Range 0x6E21 - 0x6E7E, array index: 0x1208 */ - 0x78BE,0x78D5,0x78BC,0x78D0,0x7A3F,0x7A3C,0x7A40,0x7A3D, - 0x7A37,0x7A3B,0x7AAF,0x7AAE,0x7BAD,0x7BB1,0x7BC4,0x7BB4, - 0x7BC6,0x7BC7,0x7BC1,0x7BA0,0x7BCC,0x7CCA,0x7DE0,0x7DF4, - 0x7DEF,0x7DFB,0x7DD8,0x7DEC,0x7DDD,0x7DE8,0x7DE3,0x7DDA, - 0x7DDE,0x7DE9,0x7D9E,0x7DD9,0x7DF2,0x7DF9,0x7F75,0x7F77, - 0x7FAF,0x7FE9,0x8026,0x819B,0x819C,0x819D,0x81A0,0x819A, - 0x8198,0x8517,0x853D,0x851A,0x84EE,0x852C,0x852D,0x8513, - 0x8511,0x8523,0x8521,0x8514,0x84EC,0x8525,0x84FF,0x8506, - 0x8782,0x8774,0x8776,0x8760,0x8766,0x8778,0x8768,0x8759, - 0x8757,0x874C,0x8753,0x885B,0x885D,0x8910,0x8907,0x8912, - 0x8913,0x8915,0x890A,0x8ABC,0x8AD2,0x8AC7,0x8AC4,0x8A95, - 0x8ACB,0x8AF8,0x8AB2,0x8AC9,0x8AC2,0x8ABF, - /* Range 0x6F21 - 0x6F7E, array index: 0x1266 */ - 0x8AB0,0x8AD6,0x8ACD,0x8AB6,0x8AB9,0x8ADB,0x8C4C,0x8C4E, - 0x8C6C,0x8CE0,0x8CDE,0x8CE6,0x8CE4,0x8CEC,0x8CED,0x8CE2, - 0x8CE3,0x8CDC,0x8CEA,0x8CE1,0x8D6D,0x8D9F,0x8DA3,0x8E2B, - 0x8E10,0x8E1D,0x8E22,0x8E0F,0x8E29,0x8E1F,0x8E21,0x8E1E, - 0x8EBA,0x8F1D,0x8F1B,0x8F1F,0x8F29,0x8F26,0x8F2A,0x8F1C, - 0x8F1E,0x8F25,0x9069,0x906E,0x9068,0x906D,0x9077,0x9130, - 0x912D,0x9127,0x9131,0x9187,0x9189,0x918B,0x9183,0x92C5, - 0x92BB,0x92B7,0x92EA,0x92E4,0x92C1,0x92B3,0x92BC,0x92D2, - 0x92C7,0x92F0,0x92B2,0x95AD,0x95B1,0x9704,0x9706,0x9707, - 0x9709,0x9760,0x978D,0x978B,0x978F,0x9821,0x982B,0x981C, - 0x98B3,0x990A,0x9913,0x9912,0x9918,0x99DD,0x99D0,0x99DF, - 0x99DB,0x99D1,0x99D5,0x99D2,0x99D9,0x9AB7, - /* Range 0x7021 - 0x707E, array index: 0x12C4 */ - 0x9AEE,0x9AEF,0x9B27,0x9B45,0x9B44,0x9B77,0x9B6F,0x9D06, - 0x9D09,0x9D03,0x9EA9,0x9EBE,0x9ECE,0x58A8,0x9F52,0x5112, - 0x5118,0x5114,0x5110,0x5115,0x5180,0x51AA,0x51DD,0x5291, - 0x5293,0x52F3,0x5659,0x566B,0x5679,0x5669,0x5664,0x5678, - 0x566A,0x5668,0x5665,0x5671,0x566F,0x566C,0x5662,0x5676, - 0x58C1,0x58BE,0x58C7,0x58C5,0x596E,0x5B1D,0x5B34,0x5B78, - 0x5BF0,0x5C0E,0x5F4A,0x61B2,0x6191,0x61A9,0x618A,0x61CD, - 0x61B6,0x61BE,0x61CA,0x61C8,0x6230,0x64C5,0x64C1,0x64CB, - 0x64BB,0x64BC,0x64DA,0x64C4,0x64C7,0x64C2,0x64CD,0x64BF, - 0x64D2,0x64D4,0x64BE,0x6574,0x66C6,0x66C9,0x66B9,0x66C4, - 0x66C7,0x66B8,0x6A3D,0x6A38,0x6A3A,0x6A59,0x6A6B,0x6A58, - 0x6A39,0x6A44,0x6A62,0x6A61,0x6A4B,0x6A47, - /* Range 0x7121 - 0x717E, array index: 0x1322 */ - 0x6A35,0x6A5F,0x6A48,0x6B59,0x6B77,0x6C05,0x6FC2,0x6FB1, - 0x6FA1,0x6FC3,0x6FA4,0x6FC1,0x6FA7,0x6FB3,0x6FC0,0x6FB9, - 0x6FB6,0x6FA6,0x6FA0,0x6FB4,0x71BE,0x71C9,0x71D0,0x71D2, - 0x71C8,0x71D5,0x71B9,0x71CE,0x71D9,0x71DC,0x71C3,0x71C4, - 0x7368,0x749C,0x74A3,0x7498,0x749F,0x749E,0x74E2,0x750C, - 0x750D,0x7634,0x7638,0x763A,0x76E7,0x76E5,0x77A0,0x779E, - 0x779F,0x77A5,0x78E8,0x78DA,0x78EC,0x78E7,0x79A6,0x7A4D, - 0x7A4E,0x7A46,0x7A4C,0x7A4B,0x7ABA,0x7BD9,0x7C11,0x7BC9, - 0x7BE4,0x7BDB,0x7BE1,0x7BE9,0x7BE6,0x7CD5,0x7CD6,0x7E0A, - 0x7E11,0x7E08,0x7E1B,0x7E23,0x7E1E,0x7E1D,0x7E09,0x7E10, - 0x7F79,0x7FB2,0x7FF0,0x7FF1,0x7FEE,0x8028,0x81B3,0x81A9, - 0x81A8,0x81FB,0x8208,0x8258,0x8259,0x854A, - /* Range 0x7221 - 0x727E, array index: 0x1380 */ - 0x8559,0x8548,0x8568,0x8569,0x8543,0x8549,0x856D,0x856A, - 0x855E,0x8783,0x879F,0x879E,0x87A2,0x878D,0x8861,0x892A, - 0x8932,0x8925,0x892B,0x8921,0x89AA,0x89A6,0x8AE6,0x8AFA, - 0x8AEB,0x8AF1,0x8B00,0x8ADC,0x8AE7,0x8AEE,0x8AFE,0x8B01, - 0x8B02,0x8AF7,0x8AED,0x8AF3,0x8AF6,0x8AFC,0x8C6B,0x8C6D, - 0x8C93,0x8CF4,0x8E44,0x8E31,0x8E34,0x8E42,0x8E39,0x8E35, - 0x8F3B,0x8F2F,0x8F38,0x8F33,0x8FA8,0x8FA6,0x9075,0x9074, - 0x9078,0x9072,0x907C,0x907A,0x9134,0x9192,0x9320,0x9336, - 0x92F8,0x9333,0x932F,0x9322,0x92FC,0x932B,0x9304,0x931A, - 0x9310,0x9326,0x9321,0x9315,0x932E,0x9319,0x95BB,0x96A7, - 0x96A8,0x96AA,0x96D5,0x970E,0x9711,0x9716,0x970D,0x9713, - 0x970F,0x975B,0x975C,0x9766,0x9798,0x9830, - /* Range 0x7321 - 0x737E, array index: 0x13DE */ - 0x9838,0x983B,0x9837,0x982D,0x9839,0x9824,0x9910,0x9928, - 0x991E,0x991B,0x9921,0x991A,0x99ED,0x99E2,0x99F1,0x9AB8, - 0x9ABC,0x9AFB,0x9AED,0x9B28,0x9B91,0x9D15,0x9D23,0x9D26, - 0x9D28,0x9D12,0x9D1B,0x9ED8,0x9ED4,0x9F8D,0x9F9C,0x512A, - 0x511F,0x5121,0x5132,0x52F5,0x568E,0x5680,0x5690,0x5685, - 0x5687,0x568F,0x58D5,0x58D3,0x58D1,0x58CE,0x5B30,0x5B2A, - 0x5B24,0x5B7A,0x5C37,0x5C68,0x5DBC,0x5DBA,0x5DBD,0x5DB8, - 0x5E6B,0x5F4C,0x5FBD,0x61C9,0x61C2,0x61C7,0x61E6,0x61CB, - 0x6232,0x6234,0x64CE,0x64CA,0x64D8,0x64E0,0x64F0,0x64E6, - 0x64EC,0x64F1,0x64E2,0x64ED,0x6582,0x6583,0x66D9,0x66D6, - 0x6A80,0x6A94,0x6A84,0x6AA2,0x6A9C,0x6ADB,0x6AA3,0x6A7E, - 0x6A97,0x6A90,0x6AA0,0x6B5C,0x6BAE,0x6BDA, - /* Range 0x7421 - 0x747E, array index: 0x143C */ - 0x6C08,0x6FD8,0x6FF1,0x6FDF,0x6FE0,0x6FDB,0x6FE4,0x6FEB, - 0x6FEF,0x6F80,0x6FEC,0x6FE1,0x6FE9,0x6FD5,0x6FEE,0x6FF0, - 0x71E7,0x71DF,0x71EE,0x71E6,0x71E5,0x71ED,0x71EC,0x71F4, - 0x71E0,0x7235,0x7246,0x7370,0x7372,0x74A9,0x74B0,0x74A6, - 0x74A8,0x7646,0x7642,0x764C,0x76EA,0x77B3,0x77AA,0x77B0, - 0x77AC,0x77A7,0x77AD,0x77EF,0x78F7,0x78FA,0x78F4,0x78EF, - 0x7901,0x79A7,0x79AA,0x7A57,0x7ABF,0x7C07,0x7C0D,0x7BFE, - 0x7BF7,0x7C0C,0x7BE0,0x7CE0,0x7CDC,0x7CDE,0x7CE2,0x7CDF, - 0x7CD9,0x7CDD,0x7E2E,0x7E3E,0x7E46,0x7E37,0x7E32,0x7E43, - 0x7E2B,0x7E3D,0x7E31,0x7E45,0x7E41,0x7E34,0x7E39,0x7E48, - 0x7E35,0x7E3F,0x7E2F,0x7F44,0x7FF3,0x7FFC,0x8071,0x8072, - 0x8070,0x806F,0x8073,0x81C6,0x81C3,0x81BA, - /* Range 0x7521 - 0x757E, array index: 0x149A */ - 0x81C2,0x81C0,0x81BF,0x81BD,0x81C9,0x81BE,0x81E8,0x8209, - 0x8271,0x85AA,0x8584,0x857E,0x859C,0x8591,0x8594,0x85AF, - 0x859B,0x8587,0x85A8,0x858A,0x85A6,0x8667,0x87C0,0x87D1, - 0x87B3,0x87D2,0x87C6,0x87AB,0x87BB,0x87BA,0x87C8,0x87CB, - 0x893B,0x8936,0x8944,0x8938,0x893D,0x89AC,0x8B0E,0x8B17, - 0x8B19,0x8B1B,0x8B0A,0x8B20,0x8B1D,0x8B04,0x8B10,0x8C41, - 0x8C3F,0x8C73,0x8CFA,0x8CFD,0x8CFC,0x8CF8,0x8CFB,0x8DA8, - 0x8E49,0x8E4B,0x8E48,0x8E4A,0x8F44,0x8F3E,0x8F42,0x8F45, - 0x8F3F,0x907F,0x907D,0x9084,0x9081,0x9082,0x9080,0x9139, - 0x91A3,0x919E,0x919C,0x934D,0x9382,0x9328,0x9375,0x934A, - 0x9365,0x934B,0x9318,0x937E,0x936C,0x935B,0x9370,0x935A, - 0x9354,0x95CA,0x95CB,0x95CC,0x95C8,0x95C6, - /* Range 0x7621 - 0x767E, array index: 0x14F8 */ - 0x96B1,0x96B8,0x96D6,0x971C,0x971E,0x97A0,0x97D3,0x9846, - 0x98B6,0x9935,0x9A01,0x99FF,0x9BAE,0x9BAB,0x9BAA,0x9BAD, - 0x9D3B,0x9D3F,0x9E8B,0x9ECF,0x9EDE,0x9EDC,0x9EDD,0x9EDB, - 0x9F3E,0x9F4B,0x53E2,0x5695,0x56AE,0x58D9,0x58D8,0x5B38, - 0x5F5E,0x61E3,0x6233,0x64F4,0x64F2,0x64FE,0x6506,0x64FA, - 0x64FB,0x64F7,0x65B7,0x66DC,0x6726,0x6AB3,0x6AAC,0x6AC3, - 0x6ABB,0x6AB8,0x6AC2,0x6AAE,0x6AAF,0x6B5F,0x6B78,0x6BAF, - 0x7009,0x700B,0x6FFE,0x7006,0x6FFA,0x7011,0x700F,0x71FB, - 0x71FC,0x71FE,0x71F8,0x7377,0x7375,0x74A7,0x74BF,0x7515, - 0x7656,0x7658,0x7652,0x77BD,0x77BF,0x77BB,0x77BC,0x790E, - 0x79AE,0x7A61,0x7A62,0x7A60,0x7AC4,0x7AC5,0x7C2B,0x7C27, - 0x7C2A,0x7C1E,0x7C23,0x7C21,0x7CE7,0x7E54, - /* Range 0x7721 - 0x777E, array index: 0x1556 */ - 0x7E55,0x7E5E,0x7E5A,0x7E61,0x7E52,0x7E59,0x7F48,0x7FF9, - 0x7FFB,0x8077,0x8076,0x81CD,0x81CF,0x820A,0x85CF,0x85A9, - 0x85CD,0x85D0,0x85C9,0x85B0,0x85BA,0x85B9,0x87EF,0x87EC, - 0x87F2,0x87E0,0x8986,0x89B2,0x89F4,0x8B28,0x8B39,0x8B2C, - 0x8B2B,0x8C50,0x8D05,0x8E59,0x8E63,0x8E66,0x8E64,0x8E5F, - 0x8E55,0x8EC0,0x8F49,0x8F4D,0x9087,0x9083,0x9088,0x91AB, - 0x91AC,0x91D0,0x9394,0x938A,0x9396,0x93A2,0x93B3,0x93AE, - 0x93AC,0x93B0,0x9398,0x939A,0x9397,0x95D4,0x95D6,0x95D0, - 0x95D5,0x96E2,0x96DC,0x96D9,0x96DB,0x96DE,0x9724,0x97A3, - 0x97A6,0x97AD,0x97F9,0x984D,0x984F,0x984C,0x984E,0x9853, - 0x98BA,0x993E,0x993F,0x993D,0x992E,0x99A5,0x9A0E,0x9AC1, - 0x9B03,0x9B06,0x9B4F,0x9B4E,0x9B4D,0x9BCA, - /* Range 0x7821 - 0x787E, array index: 0x15B4 */ - 0x9BC9,0x9BFD,0x9BC8,0x9BC0,0x9D51,0x9D5D,0x9D60,0x9EE0, - 0x9F15,0x9F2C,0x5133,0x56A5,0x56A8,0x58DE,0x58DF,0x58E2, - 0x5BF5,0x9F90,0x5EEC,0x61F2,0x61F7,0x61F6,0x61F5,0x6500, - 0x650F,0x66E0,0x66DD,0x6AE5,0x6ADD,0x6ADA,0x6AD3,0x701B, - 0x701F,0x7028,0x701A,0x701D,0x7015,0x7018,0x7206,0x720D, - 0x7258,0x72A2,0x7378,0x737A,0x74BD,0x74CA,0x74E3,0x7587, - 0x7586,0x765F,0x7661,0x77C7,0x7919,0x79B1,0x7A6B,0x7A69, - 0x7C3E,0x7C3F,0x7C38,0x7C3D,0x7C37,0x7C40,0x7E6B,0x7E6D, - 0x7E79,0x7E69,0x7E6A,0x7E73,0x7F85,0x7FB6,0x7FB9,0x7FB8, - 0x81D8,0x85E9,0x85DD,0x85EA,0x85D5,0x85E4,0x85E5,0x85F7, - 0x87FB,0x8805,0x880D,0x87F9,0x87FE,0x8960,0x895F,0x8956, - 0x895E,0x8B41,0x8B5C,0x8B58,0x8B49,0x8B5A, - /* Range 0x7921 - 0x797E, array index: 0x1612 */ - 0x8B4E,0x8B4F,0x8B46,0x8B59,0x8D08,0x8D0A,0x8E7C,0x8E72, - 0x8E87,0x8E76,0x8E6C,0x8E7A,0x8E74,0x8F54,0x8F4E,0x8FAD, - 0x908A,0x908B,0x91B1,0x91AE,0x93E1,0x93D1,0x93DF,0x93C3, - 0x93C8,0x93DC,0x93DD,0x93D6,0x93E2,0x93CD,0x93D8,0x93E4, - 0x93D7,0x93E8,0x95DC,0x96B4,0x96E3,0x972A,0x9727,0x9761, - 0x97DC,0x97FB,0x985E,0x9858,0x985B,0x98BC,0x9945,0x9949, - 0x9A16,0x9A19,0x9B0D,0x9BE8,0x9BE7,0x9BD6,0x9BDB,0x9D89, - 0x9D61,0x9D72,0x9D6A,0x9D6C,0x9E92,0x9E97,0x9E93,0x9EB4, - 0x52F8,0x56B7,0x56B6,0x56B4,0x56BC,0x58E4,0x5B40,0x5B43, - 0x5B7D,0x5BF6,0x5DC9,0x61F8,0x61FA,0x6518,0x6514,0x6519, - 0x66E6,0x6727,0x6AEC,0x703E,0x7030,0x7032,0x7210,0x737B, - 0x74CF,0x7662,0x7665,0x7926,0x792A,0x792C, - /* Range 0x7A21 - 0x7A7E, array index: 0x1670 */ - 0x792B,0x7AC7,0x7AF6,0x7C4C,0x7C43,0x7C4D,0x7CEF,0x7CF0, - 0x8FAE,0x7E7D,0x7E7C,0x7E82,0x7F4C,0x8000,0x81DA,0x8266, - 0x85FB,0x85F9,0x8611,0x85FA,0x8606,0x860B,0x8607,0x860A, - 0x8814,0x8815,0x8964,0x89BA,0x89F8,0x8B70,0x8B6C,0x8B66, - 0x8B6F,0x8B5F,0x8B6B,0x8D0F,0x8D0D,0x8E89,0x8E81,0x8E85, - 0x8E82,0x91B4,0x91CB,0x9418,0x9403,0x93FD,0x95E1,0x9730, - 0x98C4,0x9952,0x9951,0x99A8,0x9A2B,0x9A30,0x9A37,0x9A35, - 0x9C13,0x9C0D,0x9E79,0x9EB5,0x9EE8,0x9F2F,0x9F5F,0x9F63, - 0x9F61,0x5137,0x5138,0x56C1,0x56C0,0x56C2,0x5914,0x5C6C, - 0x5DCD,0x61FC,0x61FE,0x651D,0x651C,0x6595,0x66E9,0x6AFB, - 0x6B04,0x6AFA,0x6BB2,0x704C,0x721B,0x72A7,0x74D6,0x74D4, - 0x7669,0x77D3,0x7C50,0x7E8F,0x7E8C,0x7FBC, - /* Range 0x7B21 - 0x7B7E, array index: 0x16CE */ - 0x8617,0x862D,0x861A,0x8823,0x8822,0x8821,0x881F,0x896A, - 0x896C,0x89BD,0x8B74,0x8B77,0x8B7D,0x8D13,0x8E8A,0x8E8D, - 0x8E8B,0x8F5F,0x8FAF,0x91BA,0x942E,0x9433,0x9435,0x943A, - 0x9438,0x9432,0x942B,0x95E2,0x9738,0x9739,0x9732,0x97FF, - 0x9867,0x9865,0x9957,0x9A45,0x9A43,0x9A40,0x9A3E,0x9ACF, - 0x9B54,0x9B51,0x9C2D,0x9C25,0x9DAF,0x9DB4,0x9DC2,0x9DB8, - 0x9E9D,0x9EEF,0x9F19,0x9F5C,0x9F66,0x9F67,0x513C,0x513B, - 0x56C8,0x56CA,0x56C9,0x5B7F,0x5DD4,0x5DD2,0x5F4E,0x61FF, - 0x6524,0x6B0A,0x6B61,0x7051,0x7058,0x7380,0x74E4,0x758A, - 0x766E,0x766C,0x79B3,0x7C60,0x7C5F,0x807E,0x807D,0x81DF, - 0x8972,0x896F,0x89FC,0x8B80,0x8D16,0x8D17,0x8E91,0x8E93, - 0x8F61,0x9148,0x9444,0x9451,0x9452,0x973D, - /* Range 0x7C21 - 0x7C7E, array index: 0x172C */ - 0x973E,0x97C3,0x97C1,0x986B,0x9955,0x9A55,0x9A4D,0x9AD2, - 0x9B1A,0x9C49,0x9C31,0x9C3E,0x9C3B,0x9DD3,0x9DD7,0x9F34, - 0x9F6C,0x9F6A,0x9F94,0x56CC,0x5DD6,0x6200,0x6523,0x652B, - 0x652A,0x66EC,0x6B10,0x74DA,0x7ACA,0x7C64,0x7C63,0x7C65, - 0x7E93,0x7E96,0x7E94,0x81E2,0x8638,0x863F,0x8831,0x8B8A, - 0x9090,0x908F,0x9463,0x9460,0x9464,0x9768,0x986F,0x995C, - 0x9A5A,0x9A5B,0x9A57,0x9AD3,0x9AD4,0x9AD1,0x9C54,0x9C57, - 0x9C56,0x9DE5,0x9E9F,0x9EF4,0x56D1,0x58E9,0x652C,0x705E, - 0x7671,0x7672,0x77D7,0x7F50,0x7F88,0x8836,0x8839,0x8862, - 0x8B93,0x8B92,0x8B96,0x8277,0x8D1B,0x91C0,0x946A,0x9742, - 0x9748,0x9744,0x97C6,0x9870,0x9A5F,0x9B22,0x9B58,0x9C5F, - 0x9DF9,0x9DFA,0x9E7C,0x9E7D,0x9F07,0x9F77, - /* Range 0x7D21 - 0x7D4B, array index: 0x178A */ - 0x9F72,0x5EF3,0x6B16,0x7063,0x7C6C,0x7C6E,0x883B,0x89C0, - 0x8EA1,0x91C1,0x9472,0x9470,0x9871,0x995E,0x9AD6,0x9B23, - 0x9ECC,0x7064,0x77DA,0x8B9A,0x9477,0x97C9,0x9A62,0x9A65, - 0x7E9C,0x8B9C,0x8EAA,0x91C5,0x947D,0x947E,0x947C,0x9C77, - 0x9C78,0x9EF7,0x8C54,0x947F,0x9E1A,0x7228,0x9A6A,0x9B31, - 0x9E1B,0x9E1E,0x7C72, - /* Unranged codes (66 codes) */ -}; - -#endif /* ICONV_TO_UCS_CCS_CNS11643_PLANE1 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> cns11643_plane1 speed-optimized table (50176 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE1) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_speed_cns11643_plane1[] = -{ - /* Heading Block */ - 0x0100,INVBLK,0x0200,0x0300,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - 0x0400,0x0500,0x0600,INVBLK,0x0700,0x0800,0x0900,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - 0x0A00,0x0B00,0x0C00,0x0D00,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,0x0E00,0x0F00, - 0x1000,0x1100,0x1200,0x1300,0x1400,0x1500,0x1600,0x1700, - 0x1800,0x1900,0x1A00,0x1B00,0x1C00,0x1D00,0x1E00,0x1F00, - 0x2000,0x2100,0x2200,0x2300,0x2400,0x2500,0x2600,0x2700, - 0x2800,0x2900,0x2A00,0x2B00,0x2C00,0x2D00,0x2E00,0x2F00, - 0x3000,0x3100,0x3200,0x3300,0x3400,0x3500,0x3600,0x3700, - 0x3800,0x3900,0x3A00,0x3B00,0x3C00,0x3D00,0x3E00,0x3F00, - 0x4000,0x4100,0x4200,0x4300,0x4400,0x4500,0x4600,0x4700, - 0x4800,0x4900,0x4A00,0x4B00,0x4C00,0x4D00,0x4E00,0x4F00, - 0x5000,0x5100,0x5200,0x5300,0x5400,0x5500,0x5600,0x5700, - 0x5800,0x5900,0x5A00,0x5B00,0x5C00,0x5D00,0x5E00,0x5F00, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,0x6000,0x6100, - /* Block 1, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2170, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2278,0x2234,INVALC,INVALC,INVALC,INVALC,INVALC,0x2131, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2232, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2233, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 3, Array index 0x0200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x256F, - INVALC,0x256D,0x256E,0x2570,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x256C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 4, Array index 0x0300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2475,0x2476,0x2477,0x2478,0x2479,0x247A,0x247B, - 0x247C,0x247D,0x247E,0x2521,0x2522,0x2523,0x2524,0x2525, - 0x2526,0x2527,INVALC,0x2528,0x2529,0x252A,0x252B,0x252C, - 0x252D,0x252E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x252F,0x2530,0x2531,0x2532,0x2533,0x2534,0x2535, - 0x2536,0x2537,0x2538,0x2539,0x253A,0x253B,0x253C,0x253D, - 0x253E,0x253F,INVALC,0x2540,0x2541,0x2542,0x2543,0x2544, - 0x2545,0x2546,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 33, Array index 0x0400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2139,0x2137,INVALC,0x225D,INVALC, - 0x2164,0x2165,INVALC,INVALC,0x2166,0x2167,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x212D,0x212C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x216A,INVALC,INVALC,0x216B,INVALC,INVALC, - INVALC,INVALC,INVALC,0x216F,INVALC,INVALC,0x2223,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 34, Array index 0x0500 */ - INVALC,INVALC,INVALC,0x226A,INVALC,0x2222,INVALC,INVALC, - INVALC,0x226B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x242B,0x242C,0x242D,0x242E,0x242F,0x2430,0x2431,0x2432, - 0x2433,0x2434,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2635,0x2636,0x2637,0x2638,0x2639,0x263A,0x263B,0x263C, - 0x263D,0x263E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2258,0x2255,0x2257,0x2256,INVALC,INVALC,0x2259,0x225A, - 0x225C,0x225B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 35, Array index 0x0600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2261,INVALC,INVALC, - INVALC,INVALC,0x2235,INVALC,INVALC,INVALC,0x223C,0x2249, - 0x2248,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2245,0x2246,0x224D,INVALC,INVALC,0x224E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2250,0x224F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2244,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x223D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x223B,0x223E,INVALC,INVALC,INVALC,INVALC,0x2239,0x223A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2247,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x224A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 37, Array index 0x0700 */ - 0x4221,0x4222,0x4223,0x4224,0x4225,0x4226,0x4227,0x4228, - 0x4229,0x422A,0x422B,0x422C,0x422D,0x422E,0x422F,0x4230, - 0x4231,0x4232,0x4233,0x4234,0x4235,0x4236,0x4237,0x4238, - 0x4239,0x423A,0x423B,0x423C,0x423D,0x423E,0x423F,0x4240, - INVALC,0x4241,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2621,0x2622,0x2623,0x2624,0x2625,0x2626,0x2627,0x2628, - 0x2629,0x262A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x262B,0x262C,0x262D,0x262E, - 0x262F,0x2630,0x2631,0x2632,0x2633,0x2634,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 38, Array index 0x0800 */ - 0x2339,INVALC,0x233A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x233C,INVALC,INVALC,INVALC, - 0x233D,INVALC,INVALC,INVALC,0x233E,INVALC,INVALC,INVALC, - 0x233F,INVALC,INVALC,INVALC,0x2337,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2336,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2335,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2334,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2333,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2344,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2345,INVALC, - INVALC,0x2347,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2346,INVALC,INVALC,0x2340,0x2341,0x2343, - 0x2342,0x234C,0x234D,0x234E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2324,0x2325,0x2326,0x2327,0x2328,0x2329,0x232A, - 0x232B,0x2332,0x2331,0x2330,0x232F,0x232E,0x232D,0x232C, - INVALC,INVALC,INVALC,INVALC,0x2338,0x233B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x217C,0x217B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2175,0x2174,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x217E,0x217D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x217A,0x2179, - INVALC,INVALC,INVALC,0x2172,INVALC,INVALC,0x2176,0x2173, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2348,0x2349,0x234B,0x234A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 39, Array index 0x0900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x2178,0x2177,INVALC, - INVALC,0x2254,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2251,0x2253,0x2252,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 49, Array index 0x0A00 */ - 0x2121,0x2123,0x2124,0x2171,INVALC,INVALC,INVALC,INVALC, - 0x2152,0x2153,0x214E,0x214F,0x2156,0x2157,0x215A,0x215B, - 0x214A,0x214B,0x2265,INVALC,0x2146,0x2147,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2168,0x2169,INVALC, - INVALC,0x2435,0x2436,0x2437,0x2438,0x2439,0x243A,0x243B, - 0x243C,0x243D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2126,INVALC,INVALC,INVALC,INVALC, - /* Block 50, Array index 0x0B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x2547,0x2548,0x2549, - 0x254A,0x254B,0x254C,0x254D,0x254E,0x254F,0x2550,0x2551, - 0x2552,0x2553,0x2554,0x2555,0x2556,0x2557,0x2558,0x2559, - 0x255A,0x255B,0x255C,0x255D,0x255E,0x255F,0x2560,0x2561, - 0x2562,0x2563,0x2564,0x2565,0x2566,0x2567,0x2568,0x2569, - 0x256A,0x256B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 51, Array index 0x0C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2221,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 52, Array index 0x0D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2275,0x2276, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2270,0x2271,0x2272,INVALC, - INVALC,0x2274,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2277,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2273,INVALC, - INVALC,0x224C,0x224B,INVALC,INVALC,0x226F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 79, Array index 0x0E00 */ - 0x4421,0x4423,INVALC,0x4424,INVALC,INVALC,INVALC,INVALC, - 0x4437,0x4435,0x4438,0x4436,INVALC,0x4462,INVALC,INVALC, - 0x4461,0x4460,INVALC,INVALC,0x4562,0x4561,0x4560,INVALC, - 0x4563,0x455F,INVALC,INVALC,INVALC,INVALC,0x4722,0x4723, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B64,INVALC, - INVALC,INVALC,INVALC,0x4439,INVALC,0x4463,INVALC,INVALC, - 0x4464,INVALC,0x486B,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x443A,0x4465,INVALC,0x4564,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4425,INVALC,0x443C,INVALC,INVALC, - 0x443D,INVALC,INVALC,0x4466,INVALC,0x4565,0x4567,0x4566, - INVALC,INVALC,0x4724,0x4725,INVALC,INVALC,0x4B65,INVALC, - 0x537D,0x4422,INVALC,INVALC,INVALC,0x4426,0x443F,0x443E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4726,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4B66,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5871,INVALC, - INVALC,INVALC,0x632A,INVALC,INVALC,INVALC,0x4427,INVALC, - 0x4468,INVALC,INVALC,0x4B67,0x4428,INVALC,0x4440,INVALC, - INVALC,0x4469,0x446B,INVALC,0x446C,0x446A,INVALC,INVALC, - INVALC,0x4727,INVALC,0x4B68,INVALC,INVALC,0x4B69,0x4F67, - INVALC,0x4441,0x446D,INVALC,0x4728,0x472A,0x4729,INVALC, - 0x486C,INVALC,INVALC,0x4B6A,0x4B6B,0x4F68,0x4F69,INVALC, - INVALC,INVALC,INVALC,0x537E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4429,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x446F,0x446E,INVALC,0x4470,0x4476,INVALC,0x4471,0x4472, - INVALC,INVALC,0x4474,0x4475,INVALC,0x4473,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x456A,0x456B,0x456C,0x456D, - 0x4569,0x4570,INVALC,INVALC,INVALC,INVALC,0x4571,0x4623, - INVALC,INVALC,INVALC,0x456E,0x456F,0x4568,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4737,INVALC,0x4734,0x4738,INVALC,INVALC,0x4735,INVALC, - INVALC,INVALC,INVALC,0x4736,INVALC,0x4739,INVALC,0x472B, - /* Block 80, Array index 0x0F00 */ - INVALC,0x473A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x472C,0x472E,0x473B,INVALC,0x4730,INVALC,0x4733, - 0x4731,0x4732,INVALC,INVALC,INVALC,0x472F,INVALC,INVALC, - INVALC,0x472D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4924, - 0x4875,INVALC,INVALC,INVALC,0x4872,INVALC,0x4926,INVALC, - 0x487A,INVALC,0x4879,INVALC,0x487D,0x4878,INVALC,INVALC, - INVALC,INVALC,INVALC,0x487B,INVALC,INVALC,0x487E,0x486F, - 0x4929,INVALC,INVALC,INVALC,INVALC,0x486D,0x4925,0x486E, - 0x4876,0x4877,INVALC,INVALC,0x487C,0x4874,INVALC,0x4870, - INVALC,0x4927,0x492A,0x4873,0x4922,0x4928,0x4871,INVALC, - 0x4923,INVALC,INVALC,0x4921,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4B79,INVALC,INVALC,0x4B71,INVALC,INVALC,0x4B6C, - 0x4B76,INVALC,INVALC,0x4B6F,INVALC,0x4B77,INVALC,INVALC, - INVALC,INVALC,0x4C21,0x4B7A,INVALC,INVALC,0x4B7C,0x4B70, - INVALC,INVALC,INVALC,0x4B75,INVALC,INVALC,0x4B74,INVALC, - 0x4B78,INVALC,INVALC,0x4B73,INVALC,0x4B6E,INVALC,0x4B7D, - INVALC,0x4B7E,INVALC,INVALC,INVALC,INVALC,0x4B7B,INVALC, - INVALC,INVALC,INVALC,0x4B72,INVALC,0x4B6D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F78,0x4F6C, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4F6B,0x4F73,0x5021, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F6D, - INVALC,INVALC,0x4F7B,0x4F72,0x4F7A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F76,INVALC,INVALC,INVALC,0x4F7D,0x4F70, - 0x4F79,0x4F6F,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F77, - 0x4F74,INVALC,0x4F7C,INVALC,INVALC,0x4F71,0x4F7E,0x4F75, - 0x4F6E,0x4F6A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x543A,0x5424, - INVALC,0x5434,INVALC,0x5439,INVALC,INVALC,INVALC,INVALC, - 0x5427,INVALC,0x5430,INVALC,INVALC,INVALC,0x543D,INVALC, - /* Block 81, Array index 0x1000 */ - 0x5431,INVALC,INVALC,INVALC,INVALC,INVALC,0x542A,INVALC, - INVALC,0x543F,INVALC,0x5436,0x5421,0x5422,INVALC,0x5924, - INVALC,0x542F,0x542E,INVALC,0x5432,INVALC,0x5429,INVALC, - 0x5438,0x5437,0x542D,INVALC,INVALC,INVALC,INVALC,0x542C, - INVALC,0x5435,INVALC,0x5423,INVALC,0x5426,0x5425,INVALC, - 0x5433,0x5428,0x543C,0x543E,INVALC,0x543B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x542B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5876,INVALC,INVALC,INVALC,0x5875, - INVALC,0x5879,INVALC,INVALC,0x5877,INVALC,0x587C,0x5923, - INVALC,INVALC,INVALC,INVALC,INVALC,0x587D,INVALC,INVALC, - INVALC,INVALC,0x5878,INVALC,0x5874,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x587A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5926,INVALC,0x5925, - INVALC,INVALC,INVALC,INVALC,0x5921,0x587E,0x587B,0x5922, - INVALC,INVALC,0x5872,INVALC,INVALC,0x5873,INVALC,INVALC, - 0x5E2E,INVALC,INVALC,INVALC,INVALC,0x5E2B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E2A,INVALC,INVALC, - INVALC,0x5E2D,INVALC,INVALC,INVALC,INVALC,0x5E2F,INVALC, - 0x5E30,0x5E2C,0x5E31,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5E29,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6331,0x632B,INVALC,0x6334, - INVALC,INVALC,0x632D,0x632E,INVALC,0x632C,INVALC,0x6332, - INVALC,INVALC,INVALC,0x6333,INVALC,INVALC,0x6330,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x632F,INVALC,0x6335, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x677C,0x6779, - INVALC,0x677A,INVALC,INVALC,INVALC,0x6778,0x6775,INVALC, - INVALC,INVALC,0x6777,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6774,INVALC,0x6772, - INVALC,0x677D,INVALC,INVALC,INVALC,0x6776,0x6773,INVALC, - INVALC,0x677B,INVALC,INVALC,INVALC,0x6C23,INVALC,INVALC, - INVALC,0x6C24,INVALC,0x6C22,INVALC,INVALC,INVALC,INVALC, - /* Block 82, Array index 0x1100 */ - 0x6C21,INVALC,0x6C25,INVALC,0x6B7E,0x6C28,INVALC,INVALC, - 0x6C26,0x6C27,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7033,INVALC,0x7030,INVALC,0x7032,0x7034,INVALC,INVALC, - 0x7031,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7341, - INVALC,0x7342,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7340,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7343,0x782B,INVALC,INVALC,INVALC,0x7A62, - 0x7A63,INVALC,INVALC,0x7B58,0x7B57,INVALC,INVALC,0x442A, - 0x4442,0x4478,INVALC,0x4477,0x4573,0x4572,0x473E,0x473D, - 0x473F,0x473C,INVALC,0x492C,0x492B,0x492D,INVALC,INVALC, - INVALC,INVALC,0x4C23,INVALC,0x4C22,0x4C24,INVALC,0x5022, - INVALC,0x2279,INVALC,0x227A,0x5927,0x227C,0x227B,INVALC, - INVALC,0x227D,0x677E,0x227E,INVALC,0x442B,INVALC,0x4479, - 0x4740,0x4C25,INVALC,0x442C,0x447C,0x447A,0x447B,INVALC, - INVALC,0x4741,INVALC,INVALC,INVALC,0x492E,0x4C27,0x4C26, - 0x4C28,INVALC,INVALC,INVALC,0x5440,INVALC,INVALC,INVALC, - 0x7035,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4574,0x4575,INVALC,INVALC,0x4742,INVALC,INVALC, - INVALC,0x5024,0x5023,INVALC,INVALC,0x5928,INVALC,0x447D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5025,INVALC,0x5443,INVALC,0x5441,0x5442,INVALC,INVALC, - INVALC,INVALC,0x7036,INVALC,0x4576,INVALC,INVALC,INVALC, - 0x4743,INVALC,INVALC,INVALC,INVALC,INVALC,0x492F,0x4930, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4C29,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5446,INVALC, - INVALC,INVALC,INVALC,0x5447,0x5445,0x5444,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6C29,0x7037,INVALC,INVALC, - 0x442D,0x443B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5929,0x5E33,INVALC,0x6821,INVALC,INVALC,0x447E,INVALC, - 0x4579,0x4577,0x4578,INVALC,INVALC,0x4C2A,INVALC,INVALC, - /* Block 83, Array index 0x1200 */ - 0x442E,0x442F,INVALC,0x4443,INVALC,INVALC,0x4521,0x4522, - 0x4523,INVALC,0x457A,INVALC,INVALC,INVALC,0x4747,INVALC, - INVALC,0x4745,0x4746,INVALC,INVALC,INVALC,0x4748,0x4744, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4F4F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4932,0x4931,INVALC,INVALC, - 0x4935,0x4933,0x4934,INVALC,INVALC,INVALC,0x4C30,INVALC, - 0x4C2F,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C31,0x4C2D, - 0x4C2C,INVALC,0x4C2E,0x4C2B,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C32,INVALC,0x5027,INVALC,INVALC,INVALC,0x502C, - INVALC,INVALC,0x5028,0x502B,0x502A,0x5029,0x5026,INVALC, - INVALC,INVALC,INVALC,INVALC,0x544A,INVALC,0x5448,INVALC, - INVALC,INVALC,INVALC,0x544B,0x5449,0x544C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5E37,0x592A,INVALC,INVALC,INVALC,INVALC,0x592B, - INVALC,INVALC,0x5E34,INVALC,0x5E35,0x5E36,INVALC,0x6337, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6338,INVALC,0x6336, - INVALC,INVALC,0x6823,0x6822,INVALC,INVALC,INVALC,0x6C2A, - 0x6C2B,0x6C2C,0x6C2E,INVALC,INVALC,0x6C2D,INVALC,INVALC, - INVALC,0x7038,INVALC,0x7039,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4430,INVALC,INVALC,INVALC,0x457C, - 0x457B,INVALC,INVALC,0x4749,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4937,0x4938,0x4936,0x4939,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4C34,INVALC,INVALC,0x4C33,INVALC, - INVALC,0x5030,INVALC,0x502F,INVALC,INVALC,INVALC,0x502D, - INVALC,0x502E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x592C,INVALC,INVALC,0x592F,INVALC,0x5B2B, - 0x592E,0x592D,INVALC,0x5E3A,INVALC,0x5E39,0x5E38,0x6339, - INVALC,INVALC,0x633C,0x633D,0x633B,INVALC,0x633A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6C2F,INVALC,INVALC,0x703A,INVALC,0x7344,INVALC,INVALC, - 0x7961,INVALC,0x4444,0x4524,INVALC,INVALC,0x4525,0x4526, - /* Block 84, Array index 0x1300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x457D,0x457E,INVALC, - 0x474A,INVALC,INVALC,INVALC,INVALC,0x5031,INVALC,0x5931, - 0x5930,INVALC,INVALC,INVALC,INVALC,0x4431,0x4527,0x4621, - INVALC,0x5932,INVALC,INVALC,INVALC,0x4622,INVALC,INVALC, - 0x474C,0x474B,INVALC,0x493A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x544D,INVALC,INVALC,INVALC,INVALC,0x633E, - INVALC,0x6824,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4528,INVALC,INVALC,INVALC,INVALC,0x5935,0x5933, - 0x5934,0x4432,INVALC,0x4445,0x243F,0x452B,INVALC,0x452A, - 0x4529,0x4625,0x4624,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C38,0x4C35,0x4C37,0x4C36,INVALC,INVALC,0x5032, - INVALC,INVALC,0x5E3B,INVALC,0x4433,INVALC,0x452C,INVALC, - 0x4627,0x4626,INVALC,INVALC,INVALC,INVALC,0x4C39,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4629,0x4628, - 0x474D,0x474E,INVALC,0x493B,INVALC,0x493C,INVALC,0x4C3A, - 0x4C3B,0x4C3C,INVALC,0x5033,INVALC,INVALC,INVALC,0x544E, - INVALC,INVALC,INVALC,INVALC,0x452D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5034,INVALC,INVALC,0x5450,INVALC,0x544F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E3C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6825,INVALC,INVALC, - INVALC,INVALC,0x6C30,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x462A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5936,INVALC,INVALC,INVALC,INVALC, - 0x4434,0x4446,0x452F,0x452E,INVALC,0x4530,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4C3E,INVALC,0x4C3D,0x4C3F, - INVALC,INVALC,INVALC,0x5035,INVALC,INVALC,INVALC,0x5451, - INVALC,INVALC,0x763B,0x4447,0x462C,0x463B,0x4636,INVALC, - 0x4631,0x4630,0x4637,0x4635,0x462E,0x463C,0x462F,0x462B, - 0x463A,0x4639,0x4638,0x462D,INVALC,0x4634,INVALC,INVALC, - 0x4633,INVALC,INVALC,0x463D,0x4632,INVALC,INVALC,INVALC, - /* Block 85, Array index 0x1400 */ - INVALC,0x4754,INVALC,0x475A,0x4756,INVALC,0x475C,INVALC, - 0x4759,0x474F,0x4752,0x4755,0x4751,0x4758,0x475B,0x4750, - 0x4753,0x4757,0x475D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4949,INVALC,0x493D,0x493F,0x4957, - 0x4952,INVALC,INVALC,INVALC,INVALC,INVALC,0x4941,0x4943, - INVALC,0x494A,INVALC,0x4956,0x4958,0x493E,0x494F,INVALC, - INVALC,0x4955,INVALC,0x4946,INVALC,0x4950,0x4951,INVALC, - 0x494E,0x494C,INVALC,0x494D,0x4953,INVALC,0x4940,INVALC, - 0x4954,INVALC,0x4948,0x4945,INVALC,INVALC,0x4944,INVALC, - 0x4947,INVALC,0x494B,INVALC,INVALC,INVALC,0x4942,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4C51,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4C52,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C4D,INVALC,0x4C40,INVALC,0x4C41,0x4C4E,0x4C47, - 0x4C43,INVALC,INVALC,0x4C46,0x4C4B,0x4C54,INVALC,INVALC, - 0x4C45,INVALC,INVALC,INVALC,0x4C48,INVALC,0x4C4A,INVALC, - INVALC,INVALC,INVALC,0x4C53,0x4C4F,INVALC,0x4C55,INVALC, - 0x4C4C,INVALC,0x4C49,INVALC,INVALC,0x4C44,0x4C42,INVALC, - INVALC,INVALC,0x4C50,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x503C,0x504A, - 0x5038,0x5049,0x5041,0x5046,0x5036,INVALC,INVALC,0x5045, - INVALC,0x5047,INVALC,0x503D,INVALC,INVALC,INVALC,INVALC, - 0x503B,INVALC,INVALC,0x5048,INVALC,0x5040,INVALC,0x504B, - 0x5037,0x5042,0x503F,INVALC,0x5043,INVALC,INVALC,0x503E, - 0x5044,0x503A,INVALC,INVALC,INVALC,INVALC,0x5039,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x545E,INVALC,INVALC,INVALC,0x5457,0x5462,INVALC, - 0x5452,0x545C,0x5461,INVALC,INVALC,0x545D,0x5460,INVALC, - INVALC,INVALC,0x5458,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x545A,INVALC,0x5456,0x5465,INVALC,INVALC, - /* Block 86, Array index 0x1500 */ - INVALC,0x5454,INVALC,INVALC,INVALC,INVALC,0x5459,0x5464, - INVALC,0x545F,INVALC,INVALC,INVALC,INVALC,INVALC,0x5466, - 0x5453,INVALC,INVALC,INVALC,0x545B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5463, - INVALC,INVALC,INVALC,INVALC,0x5949,INVALC,0x5947,0x5944, - INVALC,0x5940,INVALC,0x594B,INVALC,INVALC,INVALC,0x5455, - 0x5946,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E4E,INVALC, - INVALC,0x594C,INVALC,0x593E,0x593B,INVALC,0x5938,INVALC, - INVALC,INVALC,0x593F,INVALC,INVALC,INVALC,INVALC,0x5942, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5943,0x5941,0x594D, - INVALC,INVALC,INVALC,INVALC,0x5948,INVALC,0x593C,0x5A76, - INVALC,0x593D,INVALC,0x594A,0x5945,INVALC,0x593A,INVALC, - INVALC,INVALC,0x5939,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5E3D,0x5E40,INVALC,0x5E54,INVALC, - 0x5E3E,INVALC,0x5E44,0x5E4A,0x6143,INVALC,INVALC,0x5E48, - INVALC,0x5E55,0x5E41,0x5E49,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E47,INVALC,INVALC,INVALC, - 0x5E43,0x5E57,0x5E50,INVALC,0x5E45,0x5E42,INVALC,0x5E4D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E3F, - INVALC,INVALC,0x5E46,0x5E56,0x5E52,INVALC,0x5E4C,INVALC, - INVALC,0x5E53,0x5E4F,0x5E4B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5E51,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x634C,0x634D,0x6345, - INVALC,0x634F,INVALC,INVALC,INVALC,INVALC,0x6343,INVALC, - INVALC,0x6346,INVALC,0x6341,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x634A,INVALC,0x6344,INVALC,INVALC,0x633F, - INVALC,0x634B,INVALC,0x6347,0x6348,0x634E,0x6342,0x2321, - 0x6340,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6349, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6835,0x6830, - INVALC,INVALC,INVALC,INVALC,INVALC,0x682A,0x6826,INVALC, - /* Block 87, Array index 0x1600 */ - 0x6827,INVALC,INVALC,INVALC,INVALC,INVALC,0x682C,INVALC, - 0x6833,0x682D,INVALC,INVALC,INVALC,0x682E,0x682F,INVALC, - 0x6834,INVALC,INVALC,INVALC,0x682B,INVALC,0x6831,0x6829, - INVALC,INVALC,INVALC,0x6828,INVALC,INVALC,INVALC,0x6832, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6C37,INVALC,INVALC,INVALC,INVALC,0x6C31,0x6C3D, - 0x6C3E,INVALC,0x6C34,INVALC,0x6C36,INVALC,0x6C3C,INVALC, - INVALC,0x6C33,INVALC,0x6C32,INVALC,INVALC,INVALC,0x6C35, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6C39,INVALC, - INVALC,INVALC,INVALC,0x6C38,INVALC,INVALC,INVALC,0x6C3A, - INVALC,0x703B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7047,INVALC,0x703F,0x7043,INVALC,INVALC, - 0x7042,0x703E,0x7041,0x703C,0x7046,INVALC,INVALC,0x7045, - INVALC,0x7044,INVALC,INVALC,0x6C3B,INVALC,0x7048,INVALC, - 0x7040,0x703D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7346,INVALC,INVALC,INVALC,INVALC,0x7348,INVALC,0x7349, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7345,0x734A, - 0x7347,INVALC,INVALC,INVALC,INVALC,0x763C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x782C,INVALC,INVALC, - 0x782D,INVALC,INVALC,INVALC,INVALC,INVALC,0x763D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7964,INVALC,0x7963,0x7962, - INVALC,INVALC,INVALC,INVALC,0x7965,INVALC,INVALC,INVALC, - 0x7A65,0x7A64,0x7A66,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7B59,0x7B5B,0x7B5A,INVALC,0x7C34,INVALC,INVALC,INVALC, - INVALC,0x7C5D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x463F,0x463E,INVALC,0x4760,0x475F,INVALC, - 0x475E,INVALC,INVALC,INVALC,0x495B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4959,0x495C,INVALC,INVALC,INVALC,INVALC, - 0x495A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4C56,INVALC,INVALC,INVALC,INVALC,0x504C, - /* Block 88, Array index 0x1700 */ - INVALC,INVALC,INVALC,0x5467,0x5468,INVALC,INVALC,INVALC, - 0x594E,0x5950,INVALC,0x594F,INVALC,0x5E58,INVALC,INVALC, - INVALC,INVALC,0x6350,0x6351,INVALC,INVALC,0x6837,INVALC, - 0x6836,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4448, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4763,0x4767,INVALC,INVALC,0x4765,0x4764,INVALC,0x4766, - 0x4762,INVALC,INVALC,0x4761,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4966,INVALC,INVALC,0x4963,INVALC, - 0x495F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4961, - INVALC,INVALC,0x495D,INVALC,INVALC,0x4960,0x4962,0x4965, - 0x4964,0x495E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C5B,INVALC,INVALC,0x4C5D,INVALC,0x4C5C,INVALC, - INVALC,0x4C5A,0x4C59,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C58, - INVALC,INVALC,INVALC,INVALC,0x4C5E,INVALC,INVALC,INVALC, - INVALC,INVALC,0x504D,0x4C57,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x504E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5054,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x504F,INVALC,0x5051,0x5050,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5053,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5469,0x546C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x546B,INVALC,INVALC,0x5052,INVALC, - INVALC,INVALC,INVALC,INVALC,0x546A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5951, - 0x5955,INVALC,INVALC,INVALC,0x5956,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x595A, - INVALC,0x595B,0x5957,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 89, Array index 0x1800 */ - INVALC,INVALC,0x5958,INVALC,INVALC,0x5952,0x5954,INVALC, - INVALC,0x546D,0x5953,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E60,INVALC,INVALC, - 0x5E61,0x5E5F,INVALC,INVALC,0x5E5C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5E5A,INVALC,INVALC,INVALC,INVALC,0x5E59, - 0x5E5D,0x5E5E,INVALC,INVALC,0x5E5B,0x5959,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x635B,0x635E,0x6359,INVALC,INVALC,INVALC, - INVALC,0x6353,0x635D,INVALC,0x6357,INVALC,INVALC,0x6355, - 0x6354,INVALC,0x6356,INVALC,INVALC,INVALC,0x6352,INVALC, - INVALC,INVALC,0x635C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6358,INVALC,0x635A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6838,INVALC,INVALC, - INVALC,0x683D,INVALC,INVALC,INVALC,0x683F,0x6839,INVALC, - 0x6C3F,INVALC,INVALC,0x683A,INVALC,0x683E,INVALC,INVALC, - INVALC,INVALC,0x683C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x683B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6C43,INVALC,0x6C41,0x6C40, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6C46,INVALC, - 0x702E,0x6C45,INVALC,INVALC,INVALC,INVALC,0x6C44,INVALC, - INVALC,INVALC,INVALC,0x6C42,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x704A,INVALC, - INVALC,0x7049,INVALC,INVALC,INVALC,0x704C,INVALC,0x704B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x734E,INVALC, - INVALC,0x734D,INVALC,0x734C,INVALC,0x734B,INVALC,INVALC, - 0x763F,0x763E,INVALC,INVALC,INVALC,INVALC,0x782E,0x782F, - INVALC,INVALC,0x7830,INVALC,0x7966,INVALC,INVALC,INVALC, - INVALC,0x7C5E,INVALC,0x4449,0x4531,INVALC,INVALC,0x4967, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5E62,0x5E63,INVALC,INVALC,0x6840,INVALC,INVALC, - /* Block 90, Array index 0x1900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x546E, - INVALC,INVALC,INVALC,INVALC,0x7A67,0x444A,0x4640,INVALC, - INVALC,0x4768,0x4769,INVALC,0x4C5F,INVALC,INVALC,INVALC, - 0x595C,INVALC,0x6842,INVALC,0x6843,0x6841,INVALC,0x444B, - INVALC,0x4532,0x4534,0x4533,INVALC,0x4535,0x4641,INVALC, - INVALC,0x4642,INVALC,INVALC,INVALC,INVALC,INVALC,0x476A, - 0x476B,INVALC,INVALC,INVALC,INVALC,INVALC,0x4968,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4C63,INVALC,INVALC,0x4C61, - 0x4C62,0x4C60,INVALC,INVALC,INVALC,INVALC,0x5058,0x5057, - 0x5059,0x5056,INVALC,INVALC,0x4C64,0x5055,INVALC,0x546F, - 0x5470,INVALC,0x5471,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5E64,INVALC,0x595D,INVALC,INVALC,INVALC,INVALC,0x635F, - INVALC,0x6845,0x6844,INVALC,INVALC,0x6C47,0x704D,INVALC, - INVALC,INVALC,INVALC,0x444C,0x4643,INVALC,0x4644,INVALC, - 0x476D,0x4770,INVALC,INVALC,INVALC,0x476F,INVALC,INVALC, - INVALC,0x4772,0x4771,0x476E,0x476C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4973,INVALC,INVALC,0x4970,INVALC,INVALC, - INVALC,INVALC,0x496A,0x4972,INVALC,INVALC,0x496F,INVALC, - INVALC,0x496E,INVALC,INVALC,INVALC,0x4969,0x496C,INVALC, - INVALC,INVALC,INVALC,0x496D,0x4971,0x4974,INVALC,INVALC, - 0x496B,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C69,0x4C71, - INVALC,INVALC,INVALC,0x4C72,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C68,INVALC,0x4C66,INVALC,INVALC,0x4C65,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4C74,0x4C6B,INVALC, - INVALC,INVALC,0x4C70,0x4C6E,INVALC,0x4C6D,INVALC,INVALC, - 0x4C6C,0x4C6A,0x4C73,0x4C6F,0x4C67,INVALC,INVALC,INVALC, - 0x505B,INVALC,0x5062,INVALC,0x505A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x505D,INVALC,0x5060,0x5063,INVALC, - 0x505E,INVALC,0x5061,INVALC,0x5478,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5065,INVALC,INVALC,INVALC,0x505C, - /* Block 91, Array index 0x1A00 */ - INVALC,0x5064,INVALC,0x505F,INVALC,INVALC,INVALC,INVALC, - INVALC,0x547E,INVALC,INVALC,0x547D,INVALC,INVALC,INVALC, - INVALC,0x5472,INVALC,0x5477,INVALC,INVALC,INVALC,INVALC, - 0x5473,INVALC,INVALC,0x5476,0x5474,INVALC,INVALC,0x5475, - 0x5479,INVALC,INVALC,0x547A,INVALC,0x547C,INVALC,INVALC, - INVALC,0x547B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x595E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5964,INVALC,INVALC,INVALC, - 0x5963,0x595F,INVALC,INVALC,INVALC,INVALC,0x5967,INVALC, - INVALC,0x5960,0x5968,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5966,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5965,INVALC,INVALC,INVALC,0x5961,INVALC, - INVALC,INVALC,0x5962,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E65, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E67, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5E68,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5E66,0x5E69,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E6A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6368,0x6366,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6365,0x6364,0x6363,INVALC, - INVALC,0x6360,0x6367,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6361,INVALC,INVALC,0x6362,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x684A,0x6849, - 0x684B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6846,INVALC,0x684C,INVALC,INVALC,0x6847,INVALC, - INVALC,0x6848,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6C4B,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6C49,INVALC,INVALC,INVALC,INVALC, - /* Block 92, Array index 0x1B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6C4D,0x6C48,INVALC,0x6C4A,0x6C4C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x704E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7351,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7350,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x734F,INVALC,INVALC,INVALC,0x704F,INVALC,INVALC,INVALC, - 0x7640,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7967,INVALC,INVALC,0x7968,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x444D,0x444E,INVALC,0x444F,0x4536,0x4645,INVALC,0x4773, - 0x4774,INVALC,0x4977,0x4978,0x4976,0x4975,INVALC,0x4C75, - INVALC,INVALC,INVALC,0x4C77,0x4C76,INVALC,INVALC,INVALC, - INVALC,0x5066,INVALC,0x5521,INVALC,INVALC,INVALC,INVALC, - 0x5969,0x5E6C,INVALC,0x5E6B,INVALC,0x684D,INVALC,INVALC, - 0x7050,INVALC,0x7352,INVALC,INVALC,0x7969,INVALC,0x7B5C, - INVALC,INVALC,INVALC,0x4646,INVALC,0x4777,INVALC,0x4775, - 0x4776,0x4778,INVALC,0x497A,0x4979,INVALC,INVALC,0x497B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C78, - 0x4C7A,0x4C7C,0x4C79,0x4C7D,0x4C7B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x506A,0x5067,0x5069,0x506B,0x5068,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5527,INVALC, - 0x5523,INVALC,INVALC,0x5524,0x5526,0x5528,0x5525,INVALC, - 0x552A,0x5529,INVALC,INVALC,INVALC,INVALC,INVALC,0x596E, - INVALC,INVALC,0x596D,INVALC,0x596C,0x596B,0x596F,0x596A, - INVALC,INVALC,INVALC,INVALC,0x5E6E,INVALC,INVALC,INVALC, - 0x5E70,INVALC,0x5E6D,0x5E6F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x684E,0x6856, - INVALC,0x6850,0x6854,INVALC,0x6855,0x6851,0x6852,0x684F, - 0x6853,0x6C50,INVALC,0x6C51,0x6C4F,INVALC,0x6C4E,INVALC, - 0x7051,INVALC,INVALC,INVALC,INVALC,0x7831,0x796A,INVALC, - 0x4450,INVALC,0x4779,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 93, Array index 0x1C00 */ - INVALC,0x506C,INVALC,INVALC,0x552B,INVALC,INVALC,0x5972, - 0x5971,0x5970,0x5E71,0x5E72,INVALC,0x6857,0x7052,0x4451, - INVALC,0x4537,INVALC,INVALC,INVALC,INVALC,0x477A,INVALC, - INVALC,INVALC,0x4C7E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4452,INVALC,0x4538,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x497C,INVALC,INVALC,INVALC, - INVALC,0x5E73,INVALC,INVALC,INVALC,INVALC,INVALC,0x7353, - 0x4453,0x4467,0x4539,INVALC,0x4647,INVALC,0x4A22,0x4A21, - 0x497D,0x497E,INVALC,INVALC,INVALC,0x4D22,0x4D23,INVALC, - 0x4D21,INVALC,INVALC,0x5070,INVALC,0x506F,0x506D,0x506E, - 0x552E,0x552C,INVALC,INVALC,INVALC,0x552D,INVALC,INVALC, - 0x5522,INVALC,INVALC,INVALC,0x5974,0x5975,INVALC,INVALC, - 0x5973,INVALC,0x6858,INVALC,0x6C52,0x6C53,INVALC,INVALC, - 0x7354,INVALC,INVALC,INVALC,0x7A68,INVALC,INVALC,0x453A, - INVALC,0x4454,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x477B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4A26,INVALC,INVALC,INVALC, - 0x4A23,0x4A24,INVALC,INVALC,0x4A25,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D25,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D27,INVALC,0x4D28,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D29,INVALC,0x4D2A,INVALC,INVALC,INVALC,0x4D24, - 0x4D26,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5072,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5071,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5533,INVALC,0x5532,INVALC,INVALC,0x552F,INVALC,INVALC, - 0x5534,INVALC,INVALC,INVALC,0x5537,INVALC,0x5535,INVALC, - INVALC,INVALC,INVALC,0x5531,INVALC,0x5530,INVALC,INVALC, - /* Block 94, Array index 0x1D00 */ - INVALC,0x5536,INVALC,INVALC,INVALC,INVALC,0x5977,0x5976, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5978,INVALC, - INVALC,0x597C,INVALC,INVALC,0x597E,INVALC,0x597A,0x5A24, - INVALC,0x5A21,INVALC,0x5979,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x597B,INVALC,0x5A22,INVALC,INVALC,0x5A23, - INVALC,0x597D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E76,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E77, - INVALC,INVALC,INVALC,INVALC,0x5E74,INVALC,INVALC,INVALC, - 0x5E75,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6369,INVALC,INVALC,INVALC,INVALC,INVALC,0x636A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6859,INVALC,INVALC,0x685A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6C55,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6C54,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7358,INVALC,0x7356,INVALC,0x7355,0x7357,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x796B,INVALC,INVALC,INVALC,0x7A69,INVALC,INVALC, - INVALC,INVALC,0x7B5E,INVALC,0x7B5D,INVALC,0x7C35,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4455,0x477C,INVALC, - INVALC,0x4B56,0x5A25,INVALC,INVALC,0x4456,0x464A,0x4649, - 0x4648,INVALC,INVALC,0x4A27,INVALC,INVALC,0x5538,INVALC, - INVALC,0x4457,0x4458,0x4459,0x453B,INVALC,INVALC,0x5073, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E78,0x445A,INVALC, - /* Block 95, Array index 0x1E00 */ - INVALC,INVALC,0x464B,0x464C,INVALC,INVALC,0x477D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4A28,INVALC,INVALC,INVALC, - INVALC,0x4D30,INVALC,INVALC,INVALC,0x4D2E,0x4D2D,INVALC, - 0x4D2B,INVALC,0x4D2C,0x4D2F,INVALC,0x5074,INVALC,0x5076, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5075,INVALC,INVALC, - INVALC,INVALC,INVALC,0x553A,INVALC,0x5539,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5A28,INVALC,INVALC,0x5A27,0x5A29, - 0x5A26,INVALC,INVALC,INVALC,INVALC,0x5E7A,INVALC,INVALC, - 0x5E7B,INVALC,INVALC,0x5E7C,INVALC,0x5E79,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x636B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x685F,0x685D,INVALC,0x685E, - INVALC,INVALC,INVALC,0x685B,INVALC,INVALC,INVALC,0x6C57, - INVALC,0x6C58,0x6C56,0x685C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7359,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x445B,0x464D,0x4821,INVALC,0x477E,INVALC, - 0x4D31,0x636C,INVALC,0x453C,0x464E,0x5077,0x5E7D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A2A, - INVALC,INVALC,0x4A2B,INVALC,INVALC,INVALC,INVALC,0x4A29, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4D35,0x4D36,0x4D33, - INVALC,INVALC,0x4D32,INVALC,0x4D34,INVALC,INVALC,INVALC, - 0x5078,INVALC,INVALC,INVALC,INVALC,INVALC,0x5079,0x553D, - INVALC,INVALC,INVALC,0x553B,INVALC,0x553C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5A2D,0x5A2C,0x5A2A, - 0x5A2B,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A2E,INVALC, - INVALC,0x5F21,0x5F22,INVALC,0x5F23,INVALC,INVALC,INVALC, - 0x636E,0x636D,0x5E7E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6860,INVALC,INVALC,0x6861,INVALC, - INVALC,INVALC,0x6C5A,INVALC,INVALC,0x6C5C,INVALC,0x6C5B, - 0x6C5E,INVALC,0x6C59,0x6C5D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7833,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7D22,INVALC,INVALC,0x4D37,0x4A2C, - INVALC,INVALC,0x507A,INVALC,INVALC,INVALC,0x445C,0x453D, - /* Block 96, Array index 0x1F00 */ - INVALC,0x464F,INVALC,INVALC,0x4A2D,INVALC,INVALC,INVALC, - 0x507B,INVALC,0x6862,0x445D,INVALC,INVALC,INVALC,0x4822, - INVALC,INVALC,0x636F,0x445E,0x453E,0x453F,INVALC,0x4651, - 0x4650,INVALC,INVALC,0x4823,INVALC,INVALC,INVALC,0x4A2E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D38,0x4D39, - INVALC,0x4D3A,INVALC,INVALC,INVALC,0x507C,INVALC,INVALC, - INVALC,0x553E,INVALC,INVALC,INVALC,0x5A2F,INVALC,0x5A30, - INVALC,INVALC,INVALC,INVALC,0x5F24,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6863,INVALC, - 0x6C5F,INVALC,0x7053,INVALC,0x735A,INVALC,0x7B5F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A31, - INVALC,0x6370,INVALC,INVALC,INVALC,INVALC,0x7641,INVALC, - INVALC,INVALC,0x4A30,INVALC,0x4A2F,0x507D,INVALC,INVALC, - INVALC,0x5A33,0x5D29,0x5A34,0x5A32,0x5F25,INVALC,INVALC, - 0x6864,0x6C60,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A31, - INVALC,0x4A32,INVALC,INVALC,0x4D3E,INVALC,INVALC,0x4D3D, - 0x4D3B,0x4D3C,INVALC,INVALC,INVALC,0x5121,INVALC,0x5124, - 0x507E,0x5126,0x5122,0x5123,0x5125,INVALC,INVALC,INVALC, - 0x5541,0x5540,0x553F,INVALC,INVALC,INVALC,INVALC,0x5A35, - 0x5A38,0x5A36,INVALC,INVALC,0x5A3B,INVALC,0x5A37,INVALC, - 0x5A3A,0x5A39,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5F28,0x5F26,0x5F27,INVALC,0x6371,INVALC,0x6372,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6C62,INVALC,0x6C61, - INVALC,0x6865,INVALC,INVALC,INVALC,0x735B,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4540,INVALC,0x4652,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4A34,0x4A36,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4825,0x4A35, - 0x4A33,0x4824,INVALC,INVALC,INVALC,0x4D3F,INVALC,INVALC, - 0x4D40,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4A3A,0x4A38,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A37,INVALC,INVALC,INVALC,0x4D42,INVALC,INVALC, - 0x4A39,INVALC,INVALC,INVALC,INVALC,0x4D41,INVALC,0x4D43, - /* Block 97, Array index 0x2000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x512B,0x4D44, - INVALC,INVALC,0x5127,INVALC,0x4D45,0x4D4A,0x4D48,INVALC, - INVALC,INVALC,INVALC,0x4D4F,INVALC,0x5128,INVALC,INVALC, - 0x5129,0x4D4B,INVALC,INVALC,INVALC,0x512A,INVALC,0x4D4C, - 0x512C,0x4D4D,0x4D49,0x4D4E,INVALC,INVALC,INVALC,0x4D46, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4D47,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5132,INVALC,INVALC,0x5131,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x512D,INVALC,INVALC, - 0x5545,INVALC,INVALC,INVALC,INVALC,0x5546,INVALC,INVALC, - INVALC,0x5542,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5130,0x5543,0x5136,0x5544,INVALC,INVALC, - 0x512F,0x5548,0x5135,0x5134,0x5133,0x5547,INVALC,0x5549, - 0x512E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A3C, - INVALC,INVALC,INVALC,INVALC,0x554A,0x5550,INVALC,INVALC, - INVALC,0x5A3E,INVALC,INVALC,0x554F,0x554D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x554E,INVALC,0x5551,INVALC, - INVALC,INVALC,0x554C,INVALC,INVALC,INVALC,INVALC,0x554B, - 0x5A3F,INVALC,INVALC,0x5A3D,INVALC,INVALC,INVALC,INVALC, - 0x5A40,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5F2B,INVALC,0x5A42,0x5A47,0x5F2C,INVALC, - 0x5A4E,INVALC,INVALC,0x5A46,0x5A49,0x5A44,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5A45,0x5A4C,0x5A50, - INVALC,INVALC,INVALC,0x5A41,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F29,INVALC,INVALC,INVALC,0x5A4B,INVALC,INVALC, - 0x5A4A,INVALC,0x5A4F,INVALC,0x5A48,INVALC,INVALC,0x5A4D, - 0x5F2D,0x5F2A,INVALC,INVALC,INVALC,INVALC,0x5A43,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5F32,0x5F36,INVALC,0x6377,0x5F34,INVALC,0x5F38,INVALC, - INVALC,0x6379,0x5F30,0x5F33,INVALC,INVALC,INVALC,INVALC, - /* Block 98, Array index 0x2100 */ - 0x5F3A,0x637A,INVALC,INVALC,INVALC,INVALC,0x6426,INVALC, - 0x637B,0x5F39,INVALC,INVALC,INVALC,0x6425,0x5F37,0x6374, - INVALC,INVALC,0x5F3B,INVALC,INVALC,0x5F31,INVALC,INVALC, - INVALC,INVALC,0x6373,0x6378,0x5F2E,INVALC,INVALC,0x6376, - INVALC,INVALC,INVALC,0x5F2F,INVALC,INVALC,INVALC,0x6424, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6423,INVALC,INVALC,0x6427, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6422,0x6867, - INVALC,INVALC,INVALC,INVALC,0x637E,INVALC,INVALC,0x6866, - 0x6375,INVALC,INVALC,0x6868,0x637D,0x6421,0x637C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6C67,INVALC,INVALC, - 0x686E,INVALC,0x686D,INVALC,INVALC,0x6C66,INVALC,0x686C, - INVALC,INVALC,0x686A,0x686B,INVALC,INVALC,INVALC,0x6C64, - 0x5F35,INVALC,INVALC,0x6C6B,INVALC,INVALC,0x6C65,INVALC, - 0x6C6A,INVALC,INVALC,INVALC,INVALC,0x686F,0x6C63,0x6869, - INVALC,INVALC,INVALC,INVALC,0x6C69,INVALC,0x6C6C,INVALC, - INVALC,INVALC,0x6C68,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7057,INVALC,INVALC,INVALC,0x6C70,INVALC, - 0x6C6E,0x7055,INVALC,INVALC,0x6C74,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6C72,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6C73,INVALC,INVALC,0x6C6D, - INVALC,0x7056,INVALC,0x6C6F,0x6C71,INVALC,0x6C75,INVALC, - INVALC,INVALC,0x7054,INVALC,INVALC,INVALC,0x7059,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x705A,INVALC, - INVALC,INVALC,0x735D,INVALC,INVALC,INVALC,INVALC,0x735E, - 0x705C,0x735C,0x705B,0x7360,INVALC,0x7058,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7642,INVALC,INVALC,0x735F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7834,INVALC,INVALC,0x7837,0x7836,0x7835, - 0x796C,INVALC,0x796D,INVALC,0x7A6A,INVALC,0x7A6B,0x7B60, - /* Block 99, Array index 0x2200 */ - 0x7C36,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4541,INVALC,0x4653,INVALC,0x4827,0x4828,0x4826,INVALC, - 0x4829,0x4A3C,0x4A3B,INVALC,INVALC,0x4D51,0x4D50,INVALC, - INVALC,INVALC,0x5A51,0x5A52,INVALC,INVALC,INVALC,0x5F3C, - INVALC,0x6428,0x6429,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6870,INVALC,INVALC,INVALC,0x6C76,INVALC, - 0x705D,INVALC,0x7361,0x7643,0x7362,INVALC,0x4542,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D53,0x4D52, - 0x4D54,0x5137,INVALC,INVALC,INVALC,INVALC,INVALC,0x5552, - 0x5A53,0x5F3D,INVALC,0x4543,INVALC,0x445F,0x4544,INVALC, - INVALC,0x4657,0x4656,0x4654,0x4655,INVALC,INVALC,INVALC, - 0x482C,INVALC,INVALC,0x482B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x482A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4A43,0x4A4C,0x4A4A, - INVALC,INVALC,INVALC,0x4A48,INVALC,INVALC,0x4A41,INVALC, - INVALC,0x4A47,INVALC,INVALC,0x4A45,INVALC,0x4A46,0x4D55, - 0x4A40,INVALC,INVALC,INVALC,0x4A3D,INVALC,0x4A50,INVALC, - INVALC,0x4A42,0x4A44,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A4F,0x4A49,0x4A4E,INVALC,0x4A4D,0x4A3F,0x4A3E, - 0x4A4B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4D63,INVALC,INVALC,0x4D5E,0x4D71,INVALC,INVALC,INVALC, - INVALC,0x4D6C,INVALC,INVALC,INVALC,0x4D6A,INVALC,INVALC, - INVALC,0x4D5B,INVALC,INVALC,0x4D65,0x4D64,INVALC,0x4D59, - INVALC,INVALC,0x4D5A,INVALC,0x4D58,INVALC,0x4D70,0x4D68, - 0x4D62,0x4D56,INVALC,0x4D61,0x4D57,0x4D69,0x4D72,INVALC, - 0x4D66,INVALC,0x4D5C,0x4D5F,0x4D60,INVALC,0x4D6E,0x4D6F, - 0x4D6D,0x4D67,0x4D6B,0x4D5D,0x5138,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5144,0x513C,0x513E,0x5143, - INVALC,0x5141,INVALC,0x5553,0x5146,INVALC,INVALC,0x5142, - INVALC,INVALC,INVALC,INVALC,0x513B,0x513F,0x5145,0x5555, - /* Block 100, Array index 0x2300 */ - INVALC,0x513D,0x5148,INVALC,INVALC,INVALC,INVALC,0x5140, - 0x5554,0x513A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5147,INVALC,INVALC,INVALC,INVALC,0x5139,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5563,INVALC,0x5561,0x5562,INVALC,INVALC,INVALC,0x5558, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x555E,INVALC,INVALC,0x5560,0x5557,INVALC, - INVALC,INVALC,0x555A,INVALC,INVALC,INVALC,0x555B,INVALC, - INVALC,0x555D,INVALC,INVALC,0x5565,0x5564,0x5556,0x555C, - 0x555F,INVALC,INVALC,INVALC,INVALC,0x5559,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A5B, - 0x5A6F,0x5A6E,INVALC,0x5A63,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5A5E,0x5A56,INVALC,INVALC,INVALC,0x5F4D,0x5A5A, - INVALC,INVALC,0x5A70,0x5A6D,INVALC,INVALC,INVALC,INVALC, - 0x5A6C,INVALC,INVALC,0x5A61,0x5A65,INVALC,INVALC,INVALC, - 0x5A66,0x5A60,INVALC,INVALC,0x5F3F,INVALC,INVALC,0x5A6B, - INVALC,INVALC,0x5A6A,INVALC,INVALC,INVALC,0x5A57,INVALC, - 0x5A5C,0x5A67,INVALC,0x5A62,INVALC,INVALC,INVALC,INVALC, - 0x5A54,0x5A68,0x5A58,0x5F3E,INVALC,0x5A59,INVALC,0x5A55, - 0x5A64,0x5A5F,0x5A5D,INVALC,0x5A69,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5F41,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F44,INVALC, - INVALC,0x5F43,INVALC,INVALC,INVALC,0x5F45,INVALC,0x5F40, - 0x5F48,INVALC,0x5F46,INVALC,INVALC,INVALC,0x5F4A,INVALC, - INVALC,INVALC,0x5F52,0x5F50,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F49,INVALC,0x5F47,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F42,0x5F4F,INVALC,INVALC,0x5F4B,0x5F4C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5F4E,INVALC,INVALC,INVALC, - INVALC,0x5F53,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 101, Array index 0x2400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6438,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6434,INVALC,0x6431, - INVALC,INVALC,INVALC,0x642A,0x6433,INVALC,0x6436,0x6437, - INVALC,INVALC,INVALC,INVALC,0x6432,INVALC,0x642C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x642D,INVALC,0x6430,0x642E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x687A,INVALC,0x6435,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x642F,0x642B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6878,0x5F51,INVALC,0x6873,INVALC,INVALC,INVALC, - 0x6872,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6876, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6879, - INVALC,0x6C77,INVALC,INVALC,INVALC,0x687B,INVALC,0x6C78, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6875,0x6C79,0x6877,0x687C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6871, - 0x6C7C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6C7D,INVALC,0x6D25,0x6D22,INVALC,0x6D23,INVALC,INVALC, - INVALC,0x6D2B,0x6D29,INVALC,INVALC,INVALC,0x6C7A,INVALC, - INVALC,INVALC,0x6D2C,INVALC,0x6874,0x6D21,INVALC,INVALC, - INVALC,0x6D24,INVALC,0x6D28,0x6D2A,0x6D27,0x6D26,INVALC, - 0x6C7E,INVALC,0x6C7B,0x6D2D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7061,0x7062,INVALC,0x706B,0x7068, - INVALC,0x705F,0x7066,INVALC,0x7064,0x705E,INVALC,0x7065, - INVALC,INVALC,0x7364,0x7060,INVALC,0x7067,0x7363,INVALC, - INVALC,INVALC,0x7069,INVALC,0x706A,INVALC,INVALC,INVALC, - 0x7365,INVALC,0x7063,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7366,INVALC,0x736B,INVALC,INVALC,INVALC,0x7368,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7369,0x736C,INVALC,INVALC, - 0x7367,0x736A,0x7645,INVALC,0x7644,INVALC,INVALC,0x764A, - INVALC,INVALC,0x7648,0x7649,INVALC,INVALC,0x7646,INVALC, - /* Block 102, Array index 0x2500 */ - 0x7838,INVALC,INVALC,INVALC,INVALC,INVALC,0x7647,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7839, - INVALC,INVALC,INVALC,INVALC,0x796F,INVALC,INVALC,INVALC, - 0x796E,0x7970,INVALC,INVALC,0x7A6D,0x7A6C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7C37,0x7B61,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7C39,0x7C38,0x7C5F,INVALC,INVALC,0x4545, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x482D,INVALC, - 0x4A53,0x4A51,INVALC,0x4A52,INVALC,INVALC,0x4D73,0x5149, - INVALC,INVALC,INVALC,INVALC,INVALC,0x514A,INVALC,INVALC, - 0x5566,0x5567,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A77, - INVALC,0x5A73,INVALC,INVALC,0x5A7A,0x5A79,0x5A72,0x5A75, - 0x5A78,0x5A74,INVALC,INVALC,INVALC,0x5A71,0x5F54,INVALC, - INVALC,INVALC,0x5F56,0x5F57,INVALC,INVALC,0x5F55,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6439,INVALC,INVALC,INVALC, - INVALC,INVALC,0x687D,INVALC,0x706C,0x6D2E,INVALC,0x6D2F, - 0x6D30,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x736D,0x736E,INVALC,INVALC,INVALC,0x4546, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5F59,0x5F58,INVALC,INVALC,INVALC,0x7A6E,INVALC,0x4547, - INVALC,0x5568,INVALC,0x5A7C,0x5A7B,INVALC,INVALC,0x643A, - INVALC,0x687E,INVALC,INVALC,0x4548,0x4658,INVALC,0x4D74, - INVALC,INVALC,INVALC,0x514B,0x5A7D,INVALC,INVALC,0x5F5A, - 0x643B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x764B, - INVALC,0x4549,INVALC,INVALC,0x4D75,0x514C,INVALC,INVALC, - INVALC,0x5569,INVALC,INVALC,INVALC,0x556A,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5B21,0x5B22,INVALC,0x5B23,0x5A7E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6922,0x6921, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x514D,INVALC,INVALC,0x454A,0x4659,INVALC, - 0x482F,0x482E,INVALC,INVALC,0x4830,0x4831,INVALC,INVALC, - INVALC,0x4A54,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D76,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 103, Array index 0x2600 */ - 0x4D7D,INVALC,0x4D7B,INVALC,INVALC,INVALC,0x4D7A,0x4E23, - INVALC,INVALC,0x4E22,INVALC,0x4D79,INVALC,0x4D7C,0x4D7E, - INVALC,INVALC,INVALC,0x4D78,0x4D77,0x4E21,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5153, - 0x5150,INVALC,INVALC,INVALC,0x5156,0x514E,INVALC,0x5151, - 0x5154,INVALC,INVALC,INVALC,INVALC,0x514F,INVALC,0x5152, - INVALC,0x5155,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5572,0x556B,0x556E,INVALC,0x5571,INVALC,INVALC, - INVALC,0x556C,INVALC,INVALC,0x5570,INVALC,INVALC,0x556D, - INVALC,INVALC,0x556F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5B25,INVALC,INVALC,0x5B24,0x5B29,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5B26,INVALC,0x5B28,INVALC, - 0x5B27,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F5B,0x5F5F, - 0x5F5C,INVALC,INVALC,INVALC,0x5F5D,INVALC,0x5F5E,0x5F63, - INVALC,INVALC,0x5F61,INVALC,INVALC,INVALC,0x5F62,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6441,INVALC,INVALC,0x643E, - 0x643F,0x643D,INVALC,INVALC,INVALC,0x6443,INVALC,INVALC, - INVALC,0x5F60,INVALC,INVALC,INVALC,INVALC,0x6440,0x643C, - 0x6442,INVALC,INVALC,INVALC,INVALC,0x6925,INVALC,INVALC, - INVALC,INVALC,0x6923,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6924,INVALC,INVALC,0x6D32,INVALC,INVALC,0x6D31,INVALC, - INVALC,0x6D34,INVALC,INVALC,0x6D33,INVALC,INVALC,INVALC, - 0x7072,0x706F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7070,INVALC,0x706D,0x7071, - INVALC,0x706E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7370,INVALC, - INVALC,0x736F,INVALC,INVALC,0x764C,0x783B,INVALC,INVALC, - 0x783A,INVALC,INVALC,INVALC,INVALC,INVALC,0x7971,INVALC, - INVALC,0x7A6F,INVALC,INVALC,0x7C3A,INVALC,INVALC,INVALC, - 0x454B,INVALC,0x4832,0x4833,0x4A55,INVALC,INVALC,0x5157, - 0x5573,0x5B2A,INVALC,INVALC,0x5937,INVALC,0x5F64,0x5F65, - /* Block 104, Array index 0x2700 */ - 0x5E32,INVALC,INVALC,0x6444,INVALC,INVALC,INVALC,INVALC, - 0x454C,0x4834,INVALC,0x4E25,INVALC,0x4E24,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5574,0x5575,INVALC,0x5576, - INVALC,INVALC,INVALC,0x5B2C,INVALC,0x5F67,INVALC,0x5F66, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x764D,0x7972, - 0x454D,INVALC,0x465C,0x465D,0x465B,0x465E,0x465A,INVALC, - INVALC,0x4837,INVALC,INVALC,0x4836,0x4838,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4835,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A5F,INVALC, - INVALC,0x4A5E,INVALC,INVALC,INVALC,INVALC,0x4A57,0x4A58, - 0x4A59,0x4A5A,INVALC,0x4A61,INVALC,INVALC,0x4A5C,0x4A62, - INVALC,INVALC,INVALC,INVALC,0x4A5B,INVALC,0x4A5D,0x4A56, - 0x4A60,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4E3A,INVALC,INVALC,0x4E26,INVALC,0x4E30, - 0x4E31,0x4E29,0x4E3B,0x4E2B,INVALC,0x4E36,INVALC,0x4E2C, - INVALC,INVALC,INVALC,INVALC,0x4E39,INVALC,0x4E34,0x4E32, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E2D, - INVALC,0x4E33,INVALC,0x4E27,INVALC,INVALC,INVALC,INVALC, - 0x4E35,INVALC,INVALC,0x4E38,INVALC,0x4E28,INVALC,0x4E2F, - INVALC,INVALC,0x4E37,INVALC,0x4E2A,0x4E2E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x515F, - 0x516C,INVALC,INVALC,INVALC,0x5165,INVALC,0x515E,INVALC, - 0x5168,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5163,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5169, - 0x515C,0x5164,0x5170,0x5159,0x515B,INVALC,INVALC,INVALC, - INVALC,0x516D,0x5166,INVALC,INVALC,0x516F,0x516A,INVALC, - INVALC,INVALC,0x516E,INVALC,INVALC,0x5167,INVALC,INVALC, - INVALC,0x5161,INVALC,INVALC,0x515D,INVALC,INVALC,0x5162, - INVALC,0x515A,INVALC,0x516B,0x5627,0x5160,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5158, - /* Block 105, Array index 0x2800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x562E,INVALC,INVALC,INVALC,0x5623, - 0x562F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5577,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5621,0x562C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5578,0x557C,INVALC,INVALC,0x562A,0x5626,INVALC,INVALC, - 0x5629,0x5630,0x557D,0x562B,INVALC,0x562D,0x557A,INVALC, - 0x5579,INVALC,INVALC,INVALC,0x5624,INVALC,INVALC,INVALC, - 0x5628,0x5625,INVALC,0x557B,0x557E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B33,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B32, - INVALC,0x5B2D,0x5B42,0x5B38,INVALC,0x5B3C,0x5B3B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5B30,0x5B3D,INVALC,INVALC,0x5B36, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5B3E,INVALC,0x5B40, - INVALC,0x5B41,0x5B2F,INVALC,INVALC,INVALC,INVALC,0x5B35, - 0x5B3F,INVALC,INVALC,INVALC,INVALC,0x5B3A,INVALC,0x5B2E, - 0x5B37,0x5B34,INVALC,0x5622,INVALC,0x5B31,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5B39,INVALC,INVALC,INVALC, - INVALC,0x5F7B,INVALC,0x5F76,INVALC,0x5F77,INVALC,INVALC, - INVALC,INVALC,0x5F73,INVALC,INVALC,0x5F69,INVALC,0x5F6C, - 0x5F6B,INVALC,0x5F7C,INVALC,INVALC,INVALC,INVALC,0x5F6E, - 0x5F6A,INVALC,INVALC,0x5F75,INVALC,INVALC,INVALC,0x5F71, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F70,INVALC, - INVALC,INVALC,0x5F74,INVALC,INVALC,0x5F6F,INVALC,INVALC, - INVALC,0x5F72,0x5F68,0x5F7E,INVALC,INVALC,INVALC,INVALC, - /* Block 106, Array index 0x2900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F6D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F78,0x5F7A,INVALC, - INVALC,INVALC,0x5F79,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x644C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x644E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6452,0x644A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6447,0x6457,INVALC,0x6455,0x6451,INVALC, - 0x6449,INVALC,INVALC,0x6456,INVALC,INVALC,INVALC,INVALC, - 0x644F,INVALC,INVALC,0x6450,INVALC,0x6446,0x5F7D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x644B,INVALC,0x6448, - INVALC,0x6453,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x644D,INVALC,INVALC,INVALC,0x6454,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6445,0x6928,INVALC,INVALC, - INVALC,INVALC,INVALC,0x692D,0x6926,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6938,INVALC,INVALC,0x6936,INVALC, - 0x6927,INVALC,INVALC,0x6930,INVALC,0x6934,0x692A,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6931,INVALC,INVALC,0x692E, - INVALC,INVALC,INVALC,0x692F,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6929,INVALC,0x6937,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x692C,0x6935,0x6933,INVALC,INVALC, - 0x6932,INVALC,INVALC,0x692B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6D37,INVALC,INVALC,INVALC,INVALC,0x6D42,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6D3F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6D3B,INVALC,INVALC, - /* Block 107, Array index 0x2A00 */ - INVALC,0x6D38,0x6D40,INVALC,INVALC,0x6D41,INVALC,INVALC, - INVALC,INVALC,0x6D3E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6D43,INVALC,0x6D3D,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6D3A,INVALC,INVALC,INVALC,INVALC,0x6D39,0x6D36, - INVALC,0x6D3C,INVALC,0x6D35,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7121,INVALC,INVALC, - 0x7074,0x7079,0x7075,INVALC,INVALC,0x7073,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x707A,INVALC,INVALC,0x707E, - 0x7123,INVALC,INVALC,0x707D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7078,0x7076,INVALC,INVALC,INVALC,INVALC,INVALC,0x7122, - INVALC,0x707C,0x707B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7077,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7378,INVALC, - 0x7371,INVALC,INVALC,INVALC,0x7373,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x737A,INVALC,INVALC,INVALC,0x7372,INVALC,INVALC,0x7379, - INVALC,INVALC,INVALC,INVALC,0x7375,INVALC,INVALC,INVALC, - 0x737B,INVALC,0x7374,0x7377,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x764F,INVALC,0x7654,0x7655, - INVALC,INVALC,INVALC,0x764E,INVALC,INVALC,INVALC,INVALC, - 0x7652,INVALC,INVALC,0x7651,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7653,0x7650,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x783F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x783E,0x7376,INVALC,0x783D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x783C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7973,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7A72,0x7A70,INVALC,INVALC,INVALC,INVALC, - /* Block 108, Array index 0x2B00 */ - INVALC,INVALC,INVALC,INVALC,0x7A71,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7B62,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7C3B,INVALC,INVALC,INVALC,INVALC,INVALC,0x7D23,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x454E,0x4839,INVALC,0x4E3C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5B43,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6022,INVALC,INVALC,0x6023,0x6021,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6458, - INVALC,0x6939,INVALC,INVALC,0x693A,INVALC,0x6D45,INVALC, - 0x6D44,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7124,INVALC,INVALC,0x737C,INVALC,INVALC,0x7656, - INVALC,0x7B63,0x454F,0x465F,0x483A,0x4A63,0x4E3D,0x4E3E, - INVALC,INVALC,0x5171,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6459,INVALC,INVALC,INVALC,INVALC,0x7125, - 0x7657,0x4550,INVALC,0x483B,INVALC,INVALC,INVALC,0x4E3F, - INVALC,INVALC,INVALC,0x5172,INVALC,INVALC,0x5173,INVALC, - INVALC,0x5632,0x5631,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6025,INVALC, - 0x6024,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6D46,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x737D,0x7658, - INVALC,INVALC,0x7A73,INVALC,INVALC,0x5174,INVALC,0x5633, - INVALC,INVALC,0x5B44,INVALC,0x6026,INVALC,INVALC,0x645B, - 0x645A,INVALC,INVALC,INVALC,INVALC,0x6D47,0x6D48,INVALC, - INVALC,INVALC,INVALC,0x4551,INVALC,0x4660,INVALC,0x4A64, - INVALC,INVALC,0x5175,0x645C,0x4552,INVALC,INVALC,0x5176, - INVALC,INVALC,0x737E,0x4553,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5B45,0x5B46,INVALC,INVALC,0x6027, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x645D,INVALC,INVALC, - /* Block 109, Array index 0x2C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x7126,INVALC,INVALC, - 0x7421,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4554, - 0x4662,0x4661,INVALC,0x4E40,INVALC,INVALC,0x483C,INVALC, - INVALC,INVALC,INVALC,0x4E41,INVALC,INVALC,INVALC,0x5177, - INVALC,INVALC,INVALC,0x5634,0x5638,INVALC,0x5637,0x5635, - 0x5636,INVALC,INVALC,0x5B47,0x602A,INVALC,0x6028,0x6029, - INVALC,INVALC,INVALC,0x693B,0x4555,INVALC,INVALC,INVALC, - 0x4663,INVALC,INVALC,INVALC,INVALC,INVALC,0x4666,INVALC, - 0x4665,0x4664,0x4A65,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4846,0x4847,INVALC, - 0x4842,INVALC,INVALC,INVALC,INVALC,0x4843,INVALC,0x483E, - INVALC,0x483F,INVALC,0x4845,INVALC,0x483D,0x4A66,0x4840, - 0x4841,0x4844,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4A72,INVALC,0x4A6D,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4A70,INVALC,0x4A77,INVALC,0x4A79,INVALC,0x4A7B,INVALC, - INVALC,INVALC,0x4A6E,INVALC,INVALC,0x4A75,0x4A78,INVALC, - INVALC,0x4A68,0x4B21,0x4A76,INVALC,0x4A6B,0x4A7A,INVALC, - 0x4A69,0x4A6A,INVALC,INVALC,0x4A71,0x4A7C,INVALC,INVALC, - 0x4A6F,INVALC,0x4A74,INVALC,0x4A7D,INVALC,0x4A73,INVALC, - 0x4A7E,0x4A67,INVALC,0x4A6C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4E4D,0x4E5D,INVALC,0x4E54,INVALC, - INVALC,0x4E45,INVALC,0x4E48,INVALC,INVALC,INVALC,INVALC, - 0x4E50,0x4E52,INVALC,0x4E59,0x4E4B,0x4E49,0x4E4A,0x4E58, - INVALC,0x4E53,INVALC,INVALC,0x4E51,0x4E56,INVALC,INVALC, - INVALC,0x5178,0x4E5C,INVALC,0x4E46,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4E4F,INVALC,0x4E4E,0x4E60,0x4E55, - INVALC,INVALC,INVALC,0x4E5B,0x4E5F,INVALC,INVALC,INVALC, - 0x4E61,0x4E5A,0x4E4C,0x4E42,INVALC,0x4E47,INVALC,INVALC, - 0x4E43,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E5E, - 0x5639,0x4E57,INVALC,0x4E44,INVALC,0x5229,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 110, Array index 0x2D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5179,0x517E,INVALC,0x5230,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5223, - INVALC,INVALC,INVALC,0x5228,INVALC,INVALC,0x5222,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x517D,INVALC,0x522B, - INVALC,0x522D,0x517B,0x5231,INVALC,INVALC,0x522E,INVALC, - INVALC,0x5221,0x517A,INVALC,INVALC,0x522F,0x5227,INVALC, - 0x522C,0x522A,INVALC,0x5224,INVALC,0x5225,0x5226,INVALC, - INVALC,0x517C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5641,0x5646,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x564D,0x563E,INVALC, - INVALC,0x5648,0x563A,INVALC,0x5643,INVALC,0x5645,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5647,INVALC,INVALC,0x5640, - 0x563F,0x564B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x564C,INVALC,0x563D, - 0x563C,0x5644,0x564A,INVALC,0x5649,INVALC,0x5B48,INVALC, - INVALC,INVALC,INVALC,0x5642,0x564E,0x563B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5B6A,INVALC,INVALC,INVALC,0x5B57,0x5B55, - INVALC,INVALC,0x5B4C,INVALC,INVALC,0x5B60,INVALC,INVALC, - 0x5B5A,INVALC,INVALC,INVALC,0x5B49,INVALC,INVALC,0x5B6C, - INVALC,INVALC,INVALC,INVALC,0x5B69,0x5B5D,0x5B68,0x5B53, - INVALC,INVALC,INVALC,0x5B54,0x5B4E,INVALC,INVALC,INVALC, - INVALC,0x5B56,0x5B5E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5B63,0x5B4B,0x5B61,INVALC,INVALC,INVALC,0x5B58,INVALC, - INVALC,0x5B4D,INVALC,INVALC,0x5B4F,INVALC,0x5B6D,INVALC, - 0x5B67,INVALC,0x5B64,0x5B62,0x5B6B,INVALC,0x5B66,INVALC, - INVALC,0x5B65,INVALC,0x5B4A,INVALC,0x5B5C,INVALC,0x5B5B, - INVALC,0x5B59,0x5B51,0x5B50,INVALC,INVALC,INVALC,INVALC, - /* Block 111, Array index 0x2E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x5B52,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6047,0x5B5F,0x6035,INVALC,0x6043,INVALC,INVALC, - 0x6032,0x602E,INVALC,0x6034,0x6038,0x6033,0x603C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6041,0x603B,INVALC,0x602B, - INVALC,INVALC,0x602F,INVALC,0x603E,INVALC,INVALC,INVALC, - 0x602C,INVALC,0x6040,INVALC,INVALC,INVALC,0x6044,INVALC, - INVALC,INVALC,INVALC,0x6042,0x604A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6031,INVALC,INVALC,0x603F,0x6048,INVALC, - INVALC,INVALC,INVALC,INVALC,0x602D,INVALC,0x6039,INVALC, - 0x6037,INVALC,INVALC,0x6036,INVALC,INVALC,INVALC,0x604D, - INVALC,INVALC,INVALC,0x6049,INVALC,INVALC,INVALC,0x6030, - INVALC,0x604C,INVALC,INVALC,INVALC,INVALC,0x603A,0x603D, - INVALC,INVALC,0x604B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6046,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6463,INVALC,INVALC,INVALC,INVALC,INVALC,0x646D,INVALC, - 0x6468,INVALC,INVALC,INVALC,0x646E,0x6464,INVALC,INVALC, - INVALC,INVALC,0x645E,INVALC,INVALC,0x6467,INVALC,0x6472, - INVALC,INVALC,0x6471,0x646B,INVALC,INVALC,INVALC,0x645F, - INVALC,INVALC,INVALC,INVALC,0x6473,INVALC,0x6461,INVALC, - INVALC,INVALC,0x646A,INVALC,0x6469,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6462,INVALC,0x646F,0x6466,INVALC,0x6465, - INVALC,INVALC,INVALC,0x6045,0x6957,INVALC,INVALC,INVALC, - INVALC,0x646C,INVALC,0x6460,0x6470,0x6D5A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6954,INVALC,INVALC,0x6949, - INVALC,INVALC,0x6956,INVALC,0x6940,INVALC,INVALC,0x6958, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x693E,0x6948, - /* Block 112, Array index 0x2F00 */ - INVALC,0x6955,0x6946,INVALC,INVALC,INVALC,0x694A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6945, - INVALC,INVALC,INVALC,0x693F,0x693D,0x694F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6943,INVALC,0x6947,0x694E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6941,0x6953,0x6950,0x6944,INVALC,INVALC,0x6951, - INVALC,0x694B,0x694D,0x693C,INVALC,INVALC,INVALC,INVALC, - 0x694C,INVALC,INVALC,INVALC,INVALC,INVALC,0x6942,0x6D49, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6D4C,INVALC,INVALC,0x6D4E,INVALC,INVALC,INVALC, - 0x6D59,INVALC,INVALC,0x6D51,INVALC,INVALC,INVALC,0x6D5D, - 0x6D5C,INVALC,INVALC,INVALC,0x6D57,INVALC,0x6D4D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6D50,0x6D53,0x6D5B, - 0x6D56,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6D52,INVALC,0x6D55,INVALC,0x6D4A,INVALC,INVALC,INVALC, - 0x742A,INVALC,INVALC,INVALC,0x6D4B,INVALC,0x6D4F,INVALC, - 0x6952,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D54,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D58, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7133,0x7129,INVALC,INVALC,0x712B,INVALC,0x7132,0x712D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7128,INVALC,0x712E,0x7134,INVALC,0x7131,INVALC, - INVALC,0x7130,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x712F,0x712C,0x7127,0x712A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x742E,INVALC,INVALC, - 0x7422,INVALC,INVALC,0x7426,INVALC,INVALC,INVALC,0x7424, - 0x7425,0x742C,INVALC,INVALC,0x7427,INVALC,INVALC,INVALC, - INVALC,0x742D,INVALC,0x7428,0x742B,INVALC,0x742F,0x7429, - 0x7430,0x7423,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x765D,INVALC,INVALC,INVALC,0x765B,INVALC, - /* Block 113, Array index 0x3000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x765C,INVALC, - INVALC,0x7659,INVALC,0x765A,INVALC,INVALC,INVALC,0x765F, - INVALC,0x765E,INVALC,INVALC,INVALC,0x7845,INVALC,INVALC, - 0x7846,INVALC,0x7843,0x7840,INVALC,0x7844,INVALC,0x7841, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7842,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7975,INVALC,0x7976,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7974,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7A74,INVALC,INVALC,INVALC, - INVALC,0x7B64,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7B65,INVALC,INVALC,INVALC,INVALC,INVALC,0x7C60,INVALC, - INVALC,INVALC,INVALC,0x7D24,0x7D32,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4556,INVALC,INVALC,INVALC,INVALC, - 0x4848,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B22,INVALC, - 0x4B25,INVALC,INVALC,INVALC,0x4B23,0x4B24,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4E65,INVALC,INVALC,INVALC,0x4E63,INVALC, - INVALC,INVALC,0x4E64,INVALC,INVALC,0x4E62,INVALC,INVALC, - INVALC,0x4E66,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x523A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5232,0x5235,0x5237,0x5239,0x5236, - INVALC,INVALC,INVALC,0x5234,INVALC,INVALC,INVALC,INVALC, - 0x5238,INVALC,0x5233,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5653,INVALC,0x564F,INVALC,INVALC,INVALC,INVALC,0x5654, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5650,0x5652,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5651,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B72, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5B6E,INVALC,INVALC,INVALC,0x5B71,INVALC,INVALC, - /* Block 114, Array index 0x3100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5B6F,0x5B70,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x604E,0x604F,INVALC,0x6055,INVALC,INVALC,INVALC, - INVALC,0x6052,INVALC,INVALC,INVALC,INVALC,0x6050,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6051,INVALC,INVALC,INVALC,INVALC,INVALC,0x6053,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6522,INVALC, - INVALC,0x6478,INVALC,INVALC,0x647D,INVALC,0x6474,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6524,INVALC, - INVALC,0x6475,INVALC,INVALC,0x647A,INVALC,0x6521,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6477,0x647E,0x647C,0x6479, - 0x6523,0x6476,INVALC,INVALC,0x647B,INVALC,0x6054,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x695B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x695D,INVALC,INVALC,INVALC, - INVALC,INVALC,0x695C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x695E,INVALC,0x6959,INVALC,INVALC,INVALC, - INVALC,0x695A,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D5E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6D61,INVALC,INVALC,INVALC,0x6D5F,INVALC,INVALC,INVALC, - INVALC,0x6D60,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x713B,INVALC,INVALC,INVALC,INVALC,0x7135,INVALC, - INVALC,INVALC,INVALC,0x713F,0x7140,INVALC,INVALC,INVALC, - 0x7139,0x7136,INVALC,INVALC,INVALC,INVALC,0x713C,INVALC, - 0x7137,INVALC,0x7138,INVALC,INVALC,0x713A,INVALC,INVALC, - INVALC,0x713D,INVALC,INVALC,0x713E,INVALC,INVALC,0x7432, - 0x7439,INVALC,INVALC,INVALC,INVALC,0x7435,0x7434,0x7431, - INVALC,INVALC,INVALC,INVALC,0x7437,0x7436,0x7433,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7438,INVALC,INVALC,INVALC, - 0x7663,INVALC,INVALC,0x7660,0x7661,INVALC,0x7662,INVALC, - /* Block 115, Array index 0x3200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7847,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7848,INVALC,INVALC, - 0x7977,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7A75,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7D46,INVALC,0x4557,INVALC,0x4E67,0x4E68,INVALC,INVALC, - 0x523B,INVALC,INVALC,INVALC,INVALC,0x743A,0x4558,INVALC, - 0x4E69,0x5655,0x6525,0x4559,INVALC,0x5B73,0x695F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x743B,0x455A, - 0x4E6A,INVALC,INVALC,INVALC,0x6056,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6526,INVALC,INVALC,INVALC,0x6D62,INVALC, - 0x7849,0x455B,INVALC,0x455C,INVALC,0x484A,INVALC,0x4849, - 0x4B28,0x4B27,0x4B26,INVALC,INVALC,INVALC,INVALC,0x4E6B, - INVALC,0x4E6C,INVALC,INVALC,INVALC,INVALC,INVALC,0x523D, - INVALC,INVALC,0x523C,INVALC,0x523E,INVALC,INVALC,INVALC, - INVALC,0x5656,INVALC,INVALC,INVALC,0x5B74,INVALC,INVALC, - 0x6058,0x5B75,INVALC,INVALC,0x6057,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6960,INVALC,INVALC,INVALC,0x6961,INVALC, - INVALC,INVALC,INVALC,0x6D63,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x784A,INVALC,INVALC,INVALC,INVALC,0x7A76, - INVALC,INVALC,INVALC,INVALC,0x455D,INVALC,INVALC,0x4667, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4E6D,INVALC,0x4B2A,INVALC,0x4B29,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E6E,INVALC, - 0x4E71,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E70, - INVALC,0x4E6F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5240,0x5241,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x523F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x565B, - 0x565A,0x5658,INVALC,INVALC,0x5657,0x5659,INVALC,INVALC, - /* Block 116, Array index 0x3300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5B79,INVALC,INVALC,0x5B78,INVALC, - INVALC,0x5B7A,INVALC,0x5B77,0x5B76,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x605A,INVALC,INVALC, - INVALC,0x605C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x605B,INVALC,0x6059,0x6527, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x652A,0x6529, - INVALC,INVALC,INVALC,INVALC,0x6962,0x6528,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D64,INVALC, - 0x6963,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D65, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7141,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x743C,INVALC,0x743D,INVALC,INVALC,0x7665,INVALC,0x7664, - 0x784B,INVALC,0x784C,0x7978,INVALC,INVALC,INVALC,INVALC, - 0x7B66,INVALC,INVALC,INVALC,0x4668,INVALC,0x565C,0x5B7B, - INVALC,0x4669,INVALC,0x455E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B2B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E74, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E76,INVALC,INVALC, - 0x4E73,0x4E72,INVALC,0x4E75,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5245,0x5248,INVALC,INVALC,INVALC,0x5242, - INVALC,INVALC,INVALC,0x5244,INVALC,INVALC,INVALC,INVALC, - 0x5247,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5243,INVALC,INVALC,0x5246,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5662,INVALC, - 0x5660,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5661,INVALC,INVALC,0x565D,0x565F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C22,INVALC, - /* Block 117, Array index 0x3400 */ - INVALC,INVALC,INVALC,0x5B7E,INVALC,0x5B7C,0x5C21,INVALC, - INVALC,0x565E,0x5B7D,INVALC,INVALC,0x5C23,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6066,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6060,INVALC,INVALC,0x6061,0x6067,INVALC, - 0x6068,INVALC,0x605E,INVALC,INVALC,INVALC,INVALC,0x6065, - INVALC,INVALC,INVALC,0x605F,0x6064,0x6062,0x6063,INVALC, - INVALC,INVALC,0x605D,INVALC,INVALC,INVALC,INVALC,0x6531, - INVALC,0x6530,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x652D,INVALC,INVALC, - INVALC,0x6532,0x652C,0x6533,0x6534,INVALC,0x652F,0x652E, - INVALC,INVALC,INVALC,0x6965,0x6964,INVALC,INVALC,INVALC, - INVALC,0x6D66,0x6966,INVALC,INVALC,0x6968,INVALC,0x652B, - 0x6967,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D69,INVALC, - 0x6D6A,INVALC,INVALC,0x6D68,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6D67,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7144,INVALC,INVALC,INVALC,0x7142,INVALC,0x7146,0x7145, - INVALC,INVALC,INVALC,0x7143,INVALC,INVALC,0x7440,0x7666, - 0x7441,0x743E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x743F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x784D,INVALC,0x7667, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x784E,INVALC,INVALC,INVALC,INVALC,0x7979, - INVALC,INVALC,INVALC,INVALC,0x7A78,INVALC,0x7A77,INVALC, - INVALC,INVALC,0x7C3C,INVALC,0x466A,INVALC,INVALC,INVALC, - 0x5C24,INVALC,0x7147,0x784F,0x7B67,INVALC,0x466B,INVALC, - INVALC,0x2322,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C25,0x5C26, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 118, Array index 0x3500 */ - INVALC,INVALC,INVALC,INVALC,0x6969,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7148,0x7149,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7668,INVALC,INVALC, - 0x466C,INVALC,0x5249,INVALC,0x5C27,INVALC,INVALC,0x466D, - INVALC,INVALC,0x5C28,INVALC,INVALC,0x6069,0x606A,INVALC, - 0x466E,0x466F,INVALC,0x4B2D,0x4B2C,0x524A,INVALC,INVALC, - 0x4670,0x4671,0x4672,0x4673,INVALC,INVALC,INVALC,0x4B2E, - 0x4B2F,INVALC,INVALC,INVALC,INVALC,0x4E77,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x524E,0x524C,INVALC,0x524D,0x524B, - INVALC,INVALC,INVALC,INVALC,0x5663,INVALC,INVALC,INVALC, - INVALC,0x5667,0x5666,INVALC,0x5665,0x5664,INVALC,INVALC, - INVALC,INVALC,0x5C2B,INVALC,INVALC,0x5C29,0x5C2A,INVALC, - INVALC,INVALC,0x606C,0x606B,INVALC,INVALC,INVALC,INVALC, - 0x5C2C,INVALC,INVALC,INVALC,INVALC,INVALC,0x6535,INVALC, - 0x6536,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D6B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7851,0x7850, - INVALC,INVALC,0x7B68,0x4674,INVALC,INVALC,INVALC,0x5C2D, - INVALC,0x696A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E79,0x4E7A,INVALC,INVALC,0x4E78,INVALC,INVALC, - INVALC,INVALC,0x5252,0x5253,0x5250,0x5251,INVALC,INVALC, - INVALC,INVALC,INVALC,0x524F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x566B,0x566C,INVALC,0x5C30,INVALC,INVALC, - 0x5671,0x566F,INVALC,INVALC,0x566E,0x566D,0x5668,INVALC, - INVALC,INVALC,0x5670,INVALC,INVALC,0x5669,INVALC,0x566A, - INVALC,INVALC,0x5C31,INVALC,INVALC,0x5C32,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5C2E,0x5C2F,INVALC,INVALC, - 0x6071,0x6070,INVALC,0x606E,INVALC,INVALC,0x6072,INVALC, - 0x6073,INVALC,0x606D,0x606F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6538,0x653B,0x653A,0x653F,0x653E,INVALC,INVALC,INVALC, - INVALC,INVALC,0x653C,INVALC,INVALC,INVALC,INVALC,0x653D, - /* Block 119, Array index 0x3600 */ - 0x6537,0x6539,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x696E,INVALC,0x696D,INVALC,0x696C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x696F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D6E, - 0x6D6C,0x6D71,0x6D72,INVALC,0x6D6F,INVALC,0x6D70,0x696B, - INVALC,0x6D6D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x714A,INVALC,INVALC,INVALC, - 0x714B,INVALC,0x714C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7443,INVALC,INVALC,INVALC,0x7442,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7444,INVALC,INVALC,INVALC, - INVALC,INVALC,0x766B,INVALC,INVALC,INVALC,0x7669,INVALC, - 0x766A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7852, - INVALC,0x7853,0x797A,INVALC,INVALC,0x797B,INVALC,INVALC, - INVALC,0x7A79,INVALC,INVALC,0x7B6A,INVALC,0x7B69,INVALC, - INVALC,0x7C61,0x7C62,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5254,INVALC,INVALC,0x6074,0x6075,0x4675,0x484B,INVALC, - INVALC,INVALC,0x4B30,INVALC,0x4E7B,INVALC,0x5255,0x5256, - 0x5257,INVALC,INVALC,0x5672,INVALC,INVALC,0x5C33,INVALC, - INVALC,INVALC,INVALC,0x6077,INVALC,INVALC,0x6076,INVALC, - INVALC,INVALC,0x6D73,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4676,INVALC, - 0x5673,INVALC,INVALC,INVALC,0x6078,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6D74,INVALC,INVALC,INVALC,INVALC,0x4677, - INVALC,INVALC,0x4E7C,0x525A,INVALC,0x525B,0x5259,INVALC, - 0x5258,INVALC,0x5674,INVALC,INVALC,0x5675,0x5676,INVALC, - INVALC,INVALC,0x5C35,INVALC,0x5C34,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C36,0x6079,INVALC,0x6540,0x6541, - INVALC,0x6970,INVALC,0x6971,0x6D75,0x714E,INVALC,0x714D, - INVALC,INVALC,0x7445,INVALC,INVALC,INVALC,0x4678,0x4B31, - INVALC,INVALC,0x4E7D,INVALC,0x4E7E,INVALC,INVALC,INVALC, - 0x525E,0x525D,INVALC,INVALC,0x5262,INVALC,0x5261,INVALC, - /* Block 120, Array index 0x3700 */ - INVALC,0x525C,INVALC,INVALC,INVALC,INVALC,INVALC,0x5263, - INVALC,0x525F,INVALC,0x5260,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5678, - 0x5679,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x567A,0x5677,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C3A,0x5C37, - 0x5C3B,INVALC,0x5C3C,INVALC,0x5C39,INVALC,0x5C38,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x607A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6542,0x654A,INVALC,0x6545,INVALC, - INVALC,0x6975,0x654D,0x6546,INVALC,0x654B,0x6544,INVALC, - 0x654C,INVALC,0x6548,0x6543,0x6549,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6547,INVALC,INVALC,INVALC,0x6973,INVALC,0x6974, - INVALC,INVALC,INVALC,INVALC,0x6972,INVALC,INVALC,0x6D77, - INVALC,INVALC,INVALC,0x6D7A,0x6D78,INVALC,0x6D76,INVALC, - INVALC,0x6D79,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7150,0x7151, - 0x714F,INVALC,INVALC,INVALC,INVALC,0x7152,INVALC,0x744A, - INVALC,INVALC,0x7447,INVALC,0x7449,0x744B,INVALC,INVALC, - 0x7448,INVALC,INVALC,0x7446,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x766E,0x766F,0x766C,INVALC,0x766D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7854, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7A7A,INVALC,INVALC,INVALC,0x7C63, - INVALC,INVALC,0x7D33,0x4679,0x5264,INVALC,INVALC,INVALC, - INVALC,INVALC,0x467A,0x4B32,INVALC,0x4F21,INVALC,INVALC, - INVALC,0x567B,INVALC,INVALC,INVALC,0x607B,0x654E,0x744C, - INVALC,INVALC,INVALC,0x467B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4F22,INVALC,INVALC, - /* Block 121, Array index 0x3800 */ - INVALC,INVALC,0x5265,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5267,0x5268,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5266,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5721,INVALC,0x5727, - 0x5726,INVALC,INVALC,INVALC,INVALC,0x5724,INVALC,0x567D, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5725,INVALC,INVALC, - 0x567C,INVALC,0x5728,INVALC,0x5722,INVALC,INVALC,0x5723, - 0x567E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C3E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C3F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x607C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C3D,0x607D,INVALC,INVALC,0x607E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6555,INVALC,INVALC,0x6558, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6554,INVALC,INVALC,0x6553,INVALC,0x654F,INVALC, - INVALC,0x6556,INVALC,0x6557,INVALC,INVALC,INVALC,0x6551, - 0x6552,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6977, - INVALC,INVALC,INVALC,0x697B,INVALC,INVALC,INVALC,0x6978, - INVALC,0x697A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6550,INVALC,INVALC,0x6979,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6D7D,INVALC,0x6E23,INVALC,0x6E21,INVALC, - INVALC,0x6976,INVALC,INVALC,INVALC,0x6D7C,INVALC,INVALC, - INVALC,INVALC,0x6D7E,0x6D7B,INVALC,INVALC,INVALC,INVALC, - 0x6E24,INVALC,INVALC,INVALC,INVALC,0x6E22,INVALC,INVALC, - INVALC,INVALC,0x7154,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7156, - 0x7153,INVALC,INVALC,INVALC,0x7155,INVALC,INVALC,0x7450, - INVALC,INVALC,INVALC,INVALC,0x744F,INVALC,INVALC,0x744D, - INVALC,INVALC,0x744E,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 122, Array index 0x3900 */ - INVALC,0x7451,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7670,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7855,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x797C,INVALC, - INVALC,INVALC,0x797D,0x7A21,0x797E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x467C,INVALC,INVALC,INVALC,0x4F23,INVALC, - 0x4F24,0x4F25,INVALC,INVALC,INVALC,INVALC,0x5269,0x526C, - 0x526B,0x526A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x572A,INVALC,INVALC,INVALC,INVALC,0x5729,0x572D,0x5730, - INVALC,INVALC,0x5731,INVALC,INVALC,0x572F,0x572E,0x572C, - 0x572B,INVALC,INVALC,INVALC,INVALC,0x5C40,INVALC,INVALC, - 0x5C41,INVALC,INVALC,INVALC,INVALC,0x5C42,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6559,INVALC,INVALC,INVALC,INVALC,0x655A, - INVALC,0x655B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x697E,0x697C,0x697D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7157,0x7452, - INVALC,INVALC,0x7453,INVALC,INVALC,INVALC,0x7671,INVALC, - INVALC,0x7856,INVALC,0x7B6B,INVALC,INVALC,INVALC,INVALC, - INVALC,0x526D,0x526E,INVALC,INVALC,0x655D,0x467D,0x4B35, - 0x4B34,0x4B33,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4F27,0x4F26,INVALC,0x5271,INVALC,INVALC,INVALC,INVALC, - INVALC,0x526F,0x5270,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5738,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5735, - INVALC,INVALC,INVALC,0x5733,0x5732,INVALC,0x5736,0x5734, - INVALC,0x5737,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C43,INVALC,INVALC,INVALC,INVALC, - /* Block 123, Array index 0x3A00 */ - 0x6125,INVALC,INVALC,INVALC,INVALC,0x6124,INVALC,INVALC, - 0x6122,INVALC,INVALC,0x6123,INVALC,0x6121,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6561,INVALC,INVALC,INVALC, - INVALC,INVALC,0x655F,INVALC,0x655E,INVALC,0x6563,0x6562, - 0x6560,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A21,INVALC, - INVALC,0x6A22,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E29, - INVALC,INVALC,INVALC,0x6E2A,0x6E26,0x6E28,INVALC,0x6E25, - 0x6E27,INVALC,INVALC,INVALC,INVALC,INVALC,0x715A,INVALC, - INVALC,INVALC,INVALC,0x715C,0x715B,0x7158,0x7159,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7454, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7674,0x7672,0x7673,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7858,INVALC,0x7857,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x467E,INVALC,0x4B36,INVALC, - INVALC,0x4F29,0x4F28,INVALC,INVALC,INVALC,INVALC,0x5272, - INVALC,0x5273,INVALC,INVALC,0x5739,INVALC,INVALC,INVALC, - 0x573A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5C44,INVALC,INVALC,0x5C45,0x6128,0x6127, - 0x6126,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6564, - 0x6565,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A24,0x6A23,INVALC,INVALC,INVALC,0x6E2C,0x6E2B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x715D,INVALC,INVALC,INVALC,INVALC,0x7455, - INVALC,INVALC,INVALC,INVALC,0x7675,0x7676,INVALC,0x7A22, - INVALC,INVALC,0x7C3D,0x4721,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x573B,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D7E, - 0x5D7D,INVALC,INVALC,0x612A,INVALC,0x6129,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6A25,INVALC,0x6A26, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7A23,INVALC, - INVALC,0x484C,0x4F2A,INVALC,INVALC,0x5275,INVALC,0x5274, - /* Block 124, Array index 0x3B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x573C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x573D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C4B,INVALC,0x5C48,INVALC,INVALC,0x5C4C,INVALC, - 0x5C46,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C4A,INVALC, - 0x5C47,INVALC,INVALC,INVALC,0x5C49,INVALC,0x5C4D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x612D,INVALC, - INVALC,0x612B,INVALC,0x6132,INVALC,0x6131,INVALC,0x6133, - 0x612E,0x6134,0x612F,INVALC,0x6130,INVALC,0x612C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6568,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x656A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6569,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6A2A,INVALC,0x6566, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6A31,INVALC,INVALC,0x6A30, - INVALC,INVALC,INVALC,0x6A29,INVALC,INVALC,INVALC,0x6A2E, - INVALC,INVALC,INVALC,INVALC,0x6A2D,0x6A28,INVALC,0x6A2B, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6A2C,INVALC,INVALC, - 0x6E34,0x6A27,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6E2D,INVALC,INVALC, - INVALC,0x6E2E,INVALC,INVALC,0x6E30,INVALC,INVALC,INVALC, - 0x6A2F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6567,0x6E33,INVALC,INVALC,0x6E2F,INVALC,0x6E31,0x6E32, - INVALC,0x7160,INVALC,INVALC,0x6E35,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x715E,INVALC,0x7162,INVALC,INVALC,INVALC,INVALC, - 0x745B,0x7163,INVALC,INVALC,0x7161,INVALC,0x7165,INVALC, - INVALC,0x7164,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7459, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7458,INVALC, - /* Block 125, Array index 0x3C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7456, - INVALC,INVALC,INVALC,INVALC,0x745A,0x7457,INVALC,INVALC, - INVALC,0x715F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x767A,INVALC, - INVALC,0x767C,INVALC,0x767B,INVALC,INVALC,INVALC,0x7678, - INVALC,INVALC,0x7679,0x7677,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x785D, - 0x785B,INVALC,INVALC,INVALC,INVALC,0x785C,0x7859,0x785A, - 0x785E,INVALC,INVALC,0x7A25,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7A24,0x7A26,INVALC,INVALC, - 0x7A7B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7B6D, - 0x7B6C,INVALC,INVALC,0x7C3F,0x7C3E,0x7C40,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7D25,INVALC,0x7D26,INVALC, - INVALC,INVALC,0x7D4B,0x484D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5276,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x573E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5C4E,INVALC,INVALC,0x5C50,INVALC,0x5C4F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6135, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6136,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x656B,INVALC,0x656C,INVALC,0x656D,INVALC,INVALC, - INVALC,0x6A32,INVALC,INVALC,INVALC,0x6A33,0x6A34,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6E36,INVALC,INVALC,INVALC,0x2323,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7166,0x7167,INVALC, - INVALC,0x7461,INVALC,INVALC,0x745D,0x7462,0x745E,0x7460, - 0x745C,INVALC,0x745F,INVALC,INVALC,INVALC,INVALC,0x767D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7A27, - 0x7A28,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x484E,INVALC,INVALC,0x4B37,INVALC,INVALC,0x4F2B,INVALC, - /* Block 126, Array index 0x3D00 */ - 0x5279,INVALC,0x5277,INVALC,0x527C,0x5278,0x527D,0x527B, - INVALC,0x527A,0x5742,0x5741,INVALC,0x574A,INVALC,INVALC, - 0x5746,INVALC,INVALC,INVALC,0x5745,0x5747,INVALC,0x5740, - INVALC,0x574B,0x5748,0x574C,0x5749,INVALC,INVALC,INVALC, - 0x5743,0x573F,0x5744,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x613B,INVALC,INVALC,0x5C54,0x5C5B, - 0x5C58,0x5C5E,0x5C5D,0x5C59,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C55,INVALC,INVALC,0x5C56,INVALC,INVALC,INVALC, - 0x5C57,INVALC,0x5C5C,0x5C52,0x5C5A,INVALC,0x5C51,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6138,INVALC,INVALC,INVALC,INVALC,0x613A,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6573,INVALC,INVALC,0x6137,INVALC, - INVALC,0x613E,0x6140,INVALC,INVALC,INVALC,0x613F,INVALC, - 0x6139,INVALC,INVALC,INVALC,INVALC,INVALC,0x613C,INVALC, - 0x6141,0x5C53,0x613D,0x6142,INVALC,INVALC,INVALC,INVALC, - INVALC,0x656F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6571,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6572, - INVALC,0x6570,INVALC,0x656E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6A37,INVALC,0x6E43,INVALC, - 0x6A3A,INVALC,0x6A40,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6A47,0x6A44,INVALC,INVALC, - 0x6A36,0x6A3E,0x6A3D,INVALC,0x6A3C,0x6A42,INVALC,INVALC, - 0x6A43,INVALC,0x6A3F,0x6A35,INVALC,0x6A38,0x6A39,0x6A41, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A46, - INVALC,INVALC,0x6A3B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6A45,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6E3B,0x6E44,0x6E40,INVALC,INVALC,0x6E3D,0x6E41,INVALC, - 0x6E37,INVALC,INVALC,0x6E3F,INVALC,INVALC,INVALC,INVALC, - 0x6E3E,0x6E42,INVALC,INVALC,0x6E3C,INVALC,INVALC,0x6E39, - INVALC,INVALC,0x6E45,INVALC,0x6E38,INVALC,INVALC,INVALC, - INVALC,0x6E46,INVALC,0x6E3A,INVALC,INVALC,INVALC,INVALC, - /* Block 127, Array index 0x3E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x716A,0x716F,0x7168,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7170,0x7169,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x716B,INVALC,0x716E,0x716D,INVALC, - INVALC,INVALC,INVALC,0x716C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7469,INVALC,INVALC,0x7463,0x7473, - INVALC,0x746B,0x7467,INVALC,0x746E,0x7471,INVALC,0x7466, - INVALC,0x746F,INVALC,INVALC,INVALC,0x746A,0x7464,0x7472, - INVALC,0x746D,INVALC,0x7468,INVALC,0x746C,0x7465,INVALC, - 0x7470,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7725,INVALC,0x767E,0x7721,INVALC,INVALC, - INVALC,0x7726,0x7723,INVALC,INVALC,INVALC,0x7722,INVALC, - INVALC,0x7724,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7862,0x7863,0x785F,INVALC,0x7860,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7864,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7861,INVALC,INVALC,0x7A2B,0x7A2A,INVALC,INVALC, - INVALC,INVALC,0x7A2C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7A7D,INVALC,INVALC,0x7A7C, - INVALC,INVALC,INVALC,0x7C41,0x7C43,INVALC,0x7C42,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7D39,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 128, Array index 0x3F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x484F,INVALC, - 0x527E,INVALC,0x574D,INVALC,INVALC,0x5C5F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7474,INVALC,INVALC,INVALC, - 0x7727,INVALC,INVALC,INVALC,0x7A2D,INVALC,INVALC,INVALC, - 0x7C64,INVALC,INVALC,INVALC,0x4F2C,0x4B38,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x574E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6575,0x6576,INVALC,INVALC,INVALC,0x6574,INVALC, - 0x6A48,INVALC,0x6577,INVALC,INVALC,0x6E47,INVALC,0x6E48, - INVALC,0x7171,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7865,INVALC,INVALC, - 0x7C65,INVALC,0x4850,0x4F2E,0x4F2D,INVALC,0x5321,INVALC, - INVALC,INVALC,INVALC,INVALC,0x574F,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5C61,INVALC,INVALC,INVALC,0x5C60,INVALC, - INVALC,INVALC,INVALC,INVALC,0x657A,INVALC,INVALC,INVALC, - 0x6579,0x6578,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E49, - INVALC,INVALC,0x7172,INVALC,INVALC,INVALC,0x7866,INVALC, - 0x7868,0x7867,INVALC,INVALC,0x7A7E,0x4851,INVALC,0x5322, - INVALC,0x5751,INVALC,INVALC,INVALC,0x5750,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5C62,INVALC,0x5C63,INVALC, - INVALC,INVALC,0x5C64,INVALC,0x6144,0x6145,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A4B, - 0x6A49,0x6A4A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6E4A,INVALC,INVALC,INVALC,INVALC,0x7175,INVALC, - 0x7173,0x7174,INVALC,0x7475,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7728,INVALC,0x7729,0x7476,INVALC,INVALC,INVALC, - /* Block 129, Array index 0x4000 */ - 0x7A2E,0x4852,INVALC,0x4853,0x5753,0x4F2F,0x5752,INVALC, - INVALC,INVALC,INVALC,0x6146,0x4854,0x5324,INVALC,INVALC, - 0x5323,0x5325,0x4855,INVALC,INVALC,0x5755,INVALC,0x5757, - 0x5754,0x5756,INVALC,INVALC,0x5C65,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E4B,INVALC, - 0x7176,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4856,INVALC,INVALC,0x5326,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5758,INVALC,0x5759, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C67,INVALC, - INVALC,INVALC,0x5C66,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6147,INVALC,INVALC,INVALC,0x657B,INVALC, - 0x657C,INVALC,0x6A4D,INVALC,INVALC,INVALC,0x6A4C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x747A, - 0x7479,0x7477,0x7478,0x747B,INVALC,INVALC,0x772B,0x772A, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7B6F,0x7B6E,0x4857, - INVALC,INVALC,INVALC,INVALC,0x657E,0x6148,0x657D,0x6A4E, - INVALC,0x4858,INVALC,0x4859,0x485A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4B3A,INVALC,INVALC,0x4B39,INVALC, - 0x4B3C,INVALC,0x4B3E,0x4B3D,INVALC,0x4B3B,INVALC,INVALC, - INVALC,0x4F34,0x4F32,INVALC,INVALC,0x4F31,INVALC,INVALC, - INVALC,0x4F36,0x4F38,0x4F35,INVALC,INVALC,INVALC,0x4F39, - INVALC,0x4F33,0x4B3F,INVALC,0x4F37,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F30,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x532A,0x532B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x532C,INVALC,0x532F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5327,INVALC, - INVALC,INVALC,0x5329,0x532E,INVALC,0x5332,0x5330,INVALC, - INVALC,0x532D,INVALC,INVALC,0x5331,0x5328,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x575E,INVALC,0x5767, - 0x575C,0x575A,INVALC,0x5762,0x575F,INVALC,INVALC,INVALC, - 0x5761,INVALC,INVALC,INVALC,0x5766,0x5764,INVALC,INVALC, - /* Block 130, Array index 0x4100 */ - INVALC,INVALC,0x575B,INVALC,INVALC,0x575D,0x5760,INVALC, - 0x5763,INVALC,0x5765,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C69,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C6A,0x5C6E,INVALC,INVALC,INVALC, - INVALC,0x5C6C,INVALC,0x5C6B,INVALC,INVALC,INVALC,0x5C68, - 0x5C6D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x614E,INVALC,INVALC,INVALC,INVALC,0x6150,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x614F,INVALC, - INVALC,INVALC,INVALC,0x614B,0x6151,INVALC,0x614D,INVALC, - 0x6A4F,0x614C,INVALC,0x6152,0x614A,0x6149,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6624,0x662A,INVALC, - INVALC,INVALC,INVALC,0x6627,INVALC,INVALC,0x6625,INVALC, - 0x6622,0x6621,INVALC,0x6626,0x6153,INVALC,INVALC,INVALC, - 0x6623,0x6628,0x6629,INVALC,INVALC,INVALC,INVALC,0x6A54, - 0x6A50,INVALC,0x6A55,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6A52,INVALC,0x6A53,INVALC,INVALC,INVALC,INVALC,0x6A51, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6E51,INVALC,0x6E50,0x6E4C,0x6E4D,0x6E4E,INVALC,INVALC, - 0x6E4F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7179,0x7178,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7177,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x747E,INVALC,INVALC,0x7524,0x7526,0x7523, - 0x7522,INVALC,0x7521,0x747D,INVALC,INVALC,0x747C,INVALC, - INVALC,0x7525,INVALC,INVALC,INVALC,0x772C,INVALC,0x772D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7869,INVALC,0x7A2F,INVALC,INVALC,INVALC,INVALC,0x7B70, - INVALC,INVALC,0x7C44,0x485B,INVALC,0x4F3A,INVALC,0x6A56, - 0x7527,INVALC,0x485C,INVALC,0x5769,0x5768,INVALC,INVALC, - INVALC,INVALC,INVALC,0x485D,0x5333,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6A57,0x717A,0x485E,INVALC,0x4F3B,INVALC, - /* Block 131, Array index 0x4200 */ - 0x576A,INVALC,0x5C6F,INVALC,INVALC,0x662B,INVALC,0x6A58, - 0x717B,0x7528,0x772E,INVALC,0x485F,0x4F3C,INVALC,INVALC, - 0x576B,INVALC,0x6154,INVALC,0x6A59,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4860,0x6155,INVALC,0x6A5A,0x4861, - INVALC,INVALC,0x5334,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x576E,INVALC,0x576C,0x576D,0x576F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5C70,0x5C72,0x5C71, - INVALC,0x5C73,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x662C, - INVALC,INVALC,INVALC,0x6A5B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x717C,0x717D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7A30,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4862,0x4B40, - INVALC,0x7529,0x4863,INVALC,INVALC,INVALC,INVALC,0x7C6C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4864,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4B42,INVALC,0x4B43,INVALC,INVALC, - INVALC,INVALC,0x4B41,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F3F,INVALC,INVALC,INVALC,0x4F3E,INVALC,0x4F42, - INVALC,INVALC,INVALC,0x4F49,INVALC,0x4F46,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4F45,0x4F40,INVALC,0x4F47, - 0x4F4A,0x4F44,INVALC,0x4F3D,INVALC,INVALC,INVALC,0x4F4C, - 0x4F48,0x4F43,INVALC,0x5770,INVALC,0x4F41,0x4F4B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5345,0x533F,0x5347,0x5344,INVALC,INVALC,0x5340, - INVALC,INVALC,INVALC,0x5339,0x5343,INVALC,0x5346,0x5348, - INVALC,INVALC,INVALC,0x5338,INVALC,0x533C,0x533A,0x5335, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5349, - INVALC,0x5341,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 132, Array index 0x4300 */ - INVALC,0x5342,0x533D,0x5336,0x533B,0x5337,0x534A,INVALC, - INVALC,0x533E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x577E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5823,INVALC,INVALC,0x5771,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5822,0x577B,INVALC,0x5779,0x5778,0x577D,INVALC, - 0x5775,0x577C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5821,INVALC,INVALC,0x5824,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5777,0x5774,INVALC,INVALC,INVALC,INVALC,0x577A, - 0x5776,INVALC,0x5772,INVALC,0x5773,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D23, - 0x5C77,INVALC,INVALC,0x5D24,0x5D25,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D26,INVALC, - INVALC,0x5D21,0x5C7D,INVALC,INVALC,INVALC,0x5C74,INVALC, - INVALC,INVALC,0x5C7C,0x5C7E,INVALC,INVALC,0x5C79,INVALC, - 0x5C76,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C75,INVALC, - 0x5D22,INVALC,0x5C78,INVALC,INVALC,INVALC,INVALC,0x5D27, - INVALC,INVALC,INVALC,0x5C7B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5C7A,INVALC,INVALC, - INVALC,0x615D,INVALC,INVALC,INVALC,0x615B,INVALC,INVALC, - INVALC,INVALC,0x6168,INVALC,0x6165,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x616E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x616C,INVALC,INVALC,0x616F, - 0x615A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6156,INVALC,INVALC,INVALC,INVALC,INVALC,0x615E, - 0x6163,0x615F,0x6167,INVALC,0x6160,INVALC,INVALC,INVALC, - 0x6158,INVALC,INVALC,INVALC,INVALC,0x6166,INVALC,INVALC, - /* Block 133, Array index 0x4400 */ - INVALC,INVALC,INVALC,0x6157,0x616B,INVALC,INVALC,0x616D, - INVALC,INVALC,0x6162,0x615C,0x6164,0x6159,0x616A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x655C,INVALC,INVALC,INVALC, - INVALC,0x6630,INVALC,INVALC,INVALC,0x6638,INVALC,INVALC, - 0x6169,INVALC,INVALC,INVALC,0x6637,0x662F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x663D,INVALC, - INVALC,0x6634,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6161, - INVALC,INVALC,INVALC,0x6636,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6639,INVALC,0x663A,INVALC,INVALC,0x6632,INVALC, - INVALC,0x663B,INVALC,0x6633,0x6635,0x663C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6631,INVALC,0x662E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x662D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6A68,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A60,INVALC,INVALC,0x6A63,INVALC,0x6A61,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6A62,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6A65,INVALC,INVALC,INVALC,0x6A69,INVALC,INVALC,0x6A5D, - 0x6A66,INVALC,INVALC,INVALC,0x6A5F,INVALC,0x6A5E,INVALC, - INVALC,0x6A5C,0x6A6B,0x6A64,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A6A,INVALC,0x6A67,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6E5D,INVALC,0x6E55,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E5F, - /* Block 134, Array index 0x4500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E60,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6E59,INVALC,0x6E58,0x6E5C,INVALC,INVALC,0x6E52, - INVALC,INVALC,0x6E54,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6E5B,INVALC,0x6E5A,INVALC,0x6E5E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6E56,0x6E57,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6E53,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7225,INVALC,INVALC,INVALC,INVALC, - 0x7222,0x7226,0x717E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7221,INVALC,INVALC,INVALC,INVALC,0x7229,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7223,0x7224,0x7228,INVALC,INVALC,0x7227,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x752C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x752B,INVALC,INVALC,0x7532, - INVALC,INVALC,0x7534,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x752E,INVALC,INVALC,0x752F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7531,0x752D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7535,INVALC, - 0x7533,0x7730,0x752A,INVALC,INVALC,INVALC,INVALC,0x7530, - 0x7734,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7736,0x7735,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7733,INVALC,INVALC,INVALC,0x7731,INVALC,0x772F, - 0x7732,INVALC,INVALC,INVALC,INVALC,0x786D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x786B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x786E,0x786F,INVALC,INVALC, - INVALC,0x786A,0x786C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7870, - INVALC,0x7A32,0x7A34,0x7A31,INVALC,INVALC,INVALC,INVALC, - /* Block 135, Array index 0x4600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7A35,0x7A37, - INVALC,INVALC,0x7A38,0x7A36,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7A33,INVALC,INVALC,INVALC,INVALC,INVALC,0x7B21, - INVALC,INVALC,0x7B23,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7B22,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7C45,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7C46, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F4D,INVALC, - 0x534B,INVALC,INVALC,INVALC,0x5825,0x5D28,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6170,0x663F,INVALC,0x663E,0x6640, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7536, - INVALC,INVALC,INVALC,0x4865,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F4E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x534C,0x534E,0x534D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5826,INVALC,0x582B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5828,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x582D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x582C,0x5829,INVALC,INVALC,INVALC, - INVALC,0x582A,0x5827,INVALC,INVALC,INVALC,INVALC,0x5D32, - INVALC,0x5D31,INVALC,INVALC,INVALC,0x5D2E,0x5D2C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5D2B,INVALC,INVALC,INVALC,0x5D2D,INVALC,0x5D2F,0x5D2A, - INVALC,0x5D33,INVALC,0x5D30,INVALC,INVALC,INVALC,INVALC, - 0x6177,INVALC,INVALC,INVALC,0x6174,INVALC,INVALC,INVALC, - INVALC,0x6172,INVALC,0x6175,INVALC,INVALC,0x6178,0x6171, - INVALC,INVALC,INVALC,INVALC,0x6176,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6173,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6641,INVALC,0x6647,INVALC,INVALC,0x6646,INVALC, - /* Block 136, Array index 0x4700 */ - 0x6645,INVALC,0x6648,0x6649,INVALC,INVALC,0x664A,0x6644, - 0x6643,INVALC,0x664B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6642,INVALC,INVALC,INVALC,INVALC, - 0x6A72,INVALC,INVALC,INVALC,0x6A6D,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6A6F,INVALC,INVALC,0x6A70,INVALC,INVALC, - INVALC,0x6A75,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6A71,INVALC,INVALC,0x6A74, - INVALC,INVALC,INVALC,0x6A6E,INVALC,INVALC,INVALC,0x6A6C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6E6A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6E6B,INVALC,0x6A73,INVALC,0x6E69, - INVALC,0x6E68,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6E64,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E65,INVALC, - 0x6E67,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6E62,INVALC,0x6E63,INVALC, - 0x6E66,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6E61,0x722A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x722E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x722C,0x722B, - INVALC,INVALC,0x722D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x753C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7539,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x753E,0x753D,INVALC,INVALC,INVALC,INVALC, - 0x7537,INVALC,INVALC,INVALC,INVALC,INVALC,0x753B,INVALC, - 0x753F,INVALC,INVALC,0x7540,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7538,0x753A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x773A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7738,INVALC,INVALC,0x7737, - INVALC,INVALC,0x7739,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7874,INVALC,0x7871,INVALC,INVALC,0x7875,INVALC, - /* Block 137, Array index 0x4800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x7872,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7873,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7A39,0x7A3A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7B27, - INVALC,0x7B26,0x7B25,0x7B24,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7C47,INVALC,INVALC,INVALC,INVALC,0x7C66,INVALC, - INVALC,0x7C67,INVALC,0x7D27,INVALC,INVALC,INVALC,INVALC, - 0x4866,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4867,0x534F,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D34,INVALC,INVALC,INVALC,0x6179, - INVALC,0x664C,INVALC,0x6E6C,INVALC,0x6E6D,INVALC,INVALC, - INVALC,0x722F,0x7C68,0x4868,INVALC,INVALC,INVALC,INVALC, - 0x4F50,INVALC,INVALC,0x5350,INVALC,INVALC,INVALC,INVALC, - 0x582E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x582F, - INVALC,0x5833,INVALC,INVALC,INVALC,0x5832,INVALC,INVALC, - INVALC,0x5830,0x5831,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5D36,INVALC,INVALC,0x5D3B,INVALC,0x5D3A,INVALC,INVALC, - INVALC,INVALC,0x5D38,INVALC,INVALC,INVALC,0x5D39,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D35,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D37,INVALC,INVALC,INVALC,INVALC, - INVALC,0x617C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x617A,0x617B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6654,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6656,INVALC,0x664E,0x6655,INVALC,INVALC, - 0x6651,0x664F,INVALC,INVALC,0x6650,0x6652,INVALC,0x664D, - INVALC,0x6653,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6A7C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A7E, - INVALC,INVALC,INVALC,0x6A76,0x6A78,INVALC,INVALC,INVALC, - 0x6A7A,0x6A79,INVALC,INVALC,INVALC,0x6A7B,INVALC,INVALC, - /* Block 138, Array index 0x4900 */ - INVALC,INVALC,0x6A77,INVALC,INVALC,INVALC,INVALC,0x6E6F, - INVALC,INVALC,0x6E73,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6E6E,INVALC,0x6E70,0x6E71,INVALC,0x6E72,INVALC,INVALC, - INVALC,INVALC,0x6A7D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7234,INVALC,INVALC,INVALC,0x7232,INVALC,INVALC, - INVALC,INVALC,0x7230,0x7233,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7231,INVALC,INVALC,INVALC,0x7542,INVALC, - 0x7544,INVALC,INVALC,0x7541,INVALC,0x7545,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7543,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7878,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7879,0x7877, - 0x7876,INVALC,INVALC,INVALC,0x7A3B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7B28,INVALC,0x7B29,INVALC,INVALC,0x7B72, - INVALC,INVALC,0x7B71,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4869, - INVALC,0x5351,INVALC,0x617D,INVALC,INVALC,0x773B,INVALC, - INVALC,INVALC,INVALC,0x4B44,INVALC,INVALC,INVALC,0x5D3D, - INVALC,INVALC,INVALC,0x5D3C,INVALC,INVALC,0x617E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6657,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7236,INVALC, - INVALC,INVALC,0x7235,INVALC,0x7546,INVALC,INVALC,INVALC, - INVALC,INVALC,0x773C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7A3C,INVALC,INVALC,0x7B2A,INVALC,INVALC, - 0x7D28,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4B45,INVALC,0x5352,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6658,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x773D,INVALC,INVALC,INVALC, - 0x7A3D,INVALC,INVALC,INVALC,0x7B73,INVALC,INVALC,INVALC, - /* Block 139, Array index 0x4A00 */ - 0x4B46,INVALC,0x5354,0x5355,INVALC,INVALC,INVALC,INVALC, - 0x5353,INVALC,0x5839,INVALC,0x5837,INVALC,0x5836,0x583D, - 0x5835,0x583E,INVALC,0x583B,INVALC,0x5838,0x583C,0x583A, - 0x5834,INVALC,INVALC,0x5D45,INVALC,0x5D3F,INVALC,0x5D44, - INVALC,INVALC,0x5D46,0x5D40,INVALC,0x5D41,INVALC,INVALC, - INVALC,INVALC,0x5D3E,INVALC,INVALC,0x5D43,INVALC,INVALC, - INVALC,0x5D42,INVALC,INVALC,0x622B,INVALC,0x622D,INVALC, - INVALC,INVALC,0x622C,0x6221,0x6225,INVALC,0x666B,INVALC, - INVALC,0x6226,INVALC,INVALC,INVALC,INVALC,0x622A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6229,INVALC,INVALC,INVALC,0x6227,0x6223,0x622E,INVALC, - INVALC,INVALC,INVALC,0x6228,INVALC,INVALC,0x6224,INVALC, - 0x6222,INVALC,0x6666,0x6661,INVALC,INVALC,0x665C,INVALC, - 0x666C,0x665D,INVALC,0x6659,0x6668,0x6665,0x6667,INVALC, - 0x665E,0x6663,0x665A,0x665B,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6669,INVALC,0x666A,0x6660,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6664,INVALC,0x665F, - INVALC,INVALC,INVALC,INVALC,0x6B22,0x6B25,INVALC,INVALC, - INVALC,0x6B2D,INVALC,0x6B27,INVALC,0x6E78,INVALC,INVALC, - 0x6B2C,INVALC,0x6B2E,INVALC,INVALC,INVALC,0x6B23,INVALC, - 0x6662,0x6B26,INVALC,0x6B24,0x6B28,0x6B2A,0x6B21,0x6B2F, - 0x6B2B,INVALC,0x6B29,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F21,INVALC,0x6E7B,INVALC,INVALC,INVALC,0x6F24,INVALC, - INVALC,0x6F25,INVALC,INVALC,0x6E74,INVALC,INVALC,0x6E7E, - INVALC,INVALC,0x6E7D,INVALC,0x6E77,INVALC,INVALC,0x6E76, - INVALC,0x6E7C,INVALC,0x6E79,INVALC,0x6F23,INVALC,INVALC, - INVALC,INVALC,0x6E75,INVALC,INVALC,INVALC,0x6F22,INVALC, - INVALC,INVALC,INVALC,0x6F26,0x723C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7237,0x723D, - INVALC,INVALC,INVALC,0x7239,INVALC,0x7243,0x723E,INVALC, - INVALC,0x723A,INVALC,0x7244,INVALC,INVALC,0x7245,0x7242, - 0x6E7A,INVALC,0x7238,INVALC,0x7246,INVALC,0x723F,INVALC, - /* Block 140, Array index 0x4B00 */ - 0x723B,0x7240,0x7241,INVALC,0x754E,INVALC,INVALC,INVALC, - INVALC,INVALC,0x754B,INVALC,INVALC,INVALC,0x7547,INVALC, - 0x754F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7548, - INVALC,0x7549,INVALC,0x754A,INVALC,0x754D,INVALC,INVALC, - 0x754C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x773E,INVALC,INVALC,0x7741,0x7740,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x773F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x787A,INVALC,INVALC,INVALC,INVALC,0x7923,INVALC, - INVALC,0x787D,INVALC,INVALC,INVALC,INVALC,0x7921,0x7922, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x787C,0x7924,0x787E,INVALC,0x787B,INVALC,INVALC,0x7A42, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7A40,INVALC, - INVALC,INVALC,INVALC,0x7A43,0x7A3F,INVALC,INVALC,0x7A41, - 0x7A3E,INVALC,INVALC,INVALC,0x7B2B,INVALC,INVALC,0x7B2C, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7B2D,INVALC,INVALC, - 0x7B74,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7C48,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7C6A,0x7C69,INVALC,INVALC,0x7C6B,INVALC, - INVALC,INVALC,0x7D34,INVALC,0x7D3A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 141, Array index 0x4C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B47, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7551, - INVALC,0x7550,INVALC,INVALC,INVALC,INVALC,0x4B48,INVALC, - 0x583F,0x5D47,INVALC,INVALC,0x6F27,INVALC,0x6F28,INVALC, - 0x7742,INVALC,INVALC,INVALC,0x7D43,0x4B49,INVALC,INVALC, - INVALC,INVALC,0x5D48,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x622F,0x666D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6B30,0x7247,0x6F29,0x7248,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7552,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5841,0x5840,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6230,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x666F,0x666E,INVALC,0x6B32,0x6B31,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7249,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4B4A,0x5356,INVALC, - 0x5357,0x5842,0x5843,INVALC,INVALC,INVALC,INVALC,0x5D4E, - 0x5D4C,0x5D49,0x5D4D,0x5D4B,0x5D4A,INVALC,INVALC,0x6231, - INVALC,INVALC,0x6674,0x6233,0x6238,INVALC,0x623A,0x6239, - 0x623C,INVALC,INVALC,0x6236,0x6232,0x6234,INVALC,0x623B, - 0x6237,0x6235,0x6676,0x6675,0x6673,0x6677,INVALC,0x6671, - 0x6672,INVALC,0x6670,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B34,0x6B35,0x6B33,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6F32,INVALC,0x6F2B,INVALC, - 0x6F2A,0x6F34,0x6F30,0x6F31,0x6F2D,INVALC,0x6F2C,INVALC, - INVALC,INVALC,0x6F33,INVALC,0x6F2E,0x6F2F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x724A,INVALC,INVALC,INVALC, - 0x7556,INVALC,0x7553,0x7557,0x7555,0x7554,INVALC,INVALC, - /* Block 142, Array index 0x4D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x7743,INVALC,INVALC, - 0x7925,INVALC,0x7926,INVALC,INVALC,0x7A45,INVALC,0x7A44, - INVALC,INVALC,INVALC,0x7B2E,INVALC,INVALC,0x7B75,0x7B76, - INVALC,INVALC,INVALC,0x7C6D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4B4B,INVALC,0x5D50,0x5D4F, - INVALC,INVALC,INVALC,0x6B36,INVALC,0x6F35,INVALC,INVALC, - 0x4B4C,INVALC,INVALC,0x5359,0x5358,INVALC,INVALC,0x5844, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x623F,INVALC,INVALC,INVALC,0x623E,INVALC,INVALC, - INVALC,INVALC,0x623D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6B38,INVALC,INVALC, - INVALC,0x6B37,INVALC,INVALC,INVALC,INVALC,INVALC,0x6F36, - INVALC,INVALC,INVALC,0x6F37,INVALC,INVALC,INVALC,INVALC, - 0x7558,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4B4D,0x535A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D52,INVALC,INVALC,INVALC,0x5D51,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6247,INVALC, - INVALC,INVALC,INVALC,0x6242,0x6245,INVALC,0x6240,INVALC, - INVALC,0x6244,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6243,0x6246,INVALC,0x6241,INVALC,0x6679, - INVALC,0x6678,INVALC,INVALC,0x6721,INVALC,0x6722,INVALC, - 0x667A,INVALC,0x667E,INVALC,INVALC,INVALC,INVALC,0x667B, - INVALC,INVALC,INVALC,0x667C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x667D,INVALC,0x6B39,INVALC,INVALC,INVALC, - /* Block 143, Array index 0x4E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6F3C, - 0x6F39,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6F3A,0x6F40,0x6F3E, - INVALC,0x6F3F,0x6F3B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6F3D,INVALC,0x6F38,INVALC,INVALC,INVALC,INVALC, - INVALC,0x724C,INVALC,INVALC,0x724D,0x7250,INVALC,INVALC, - INVALC,0x724F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x724E,INVALC,0x724B,INVALC,INVALC,INVALC, - 0x755B,0x7559,0x755C,0x755A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7749,INVALC,INVALC, - INVALC,0x7744,INVALC,INVALC,INVALC,INVALC,INVALC,0x7748, - INVALC,INVALC,INVALC,0x7745,0x7747,INVALC,0x7746,INVALC, - INVALC,INVALC,INVALC,INVALC,0x792B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7928,INVALC,0x792D,INVALC,0x792A,INVALC, - INVALC,INVALC,0x792C,INVALC,0x7927,INVALC,INVALC,INVALC, - INVALC,0x7A47,0x7A49,INVALC,INVALC,0x7A48,INVALC,0x7929, - INVALC,0x7A46,0x7B2F,0x7B31,INVALC,0x7B30,INVALC,INVALC, - INVALC,0x7B77,INVALC,0x7B78,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7D29,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7D3B,0x4B4E,0x5845,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6723,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6F41,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x774A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4B4F,0x4F51,0x535C,0x535B,INVALC,0x5848, - INVALC,INVALC,0x5846,INVALC,0x5847,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D53,INVALC,INVALC,INVALC,0x5D54, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6249,INVALC,INVALC,0x6248,0x624A,INVALC,0x6726,INVALC, - /* Block 144, Array index 0x4F00 */ - INVALC,INVALC,INVALC,0x6724,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6725,0x6727,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6B3B,0x6B3D,0x6B3A,0x6B3C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6F43,0x6F48,0x6F42,0x6F49,0x6F44, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6F4A,0x6F46,INVALC, - INVALC,0x6F45,0x6F47,INVALC,INVALC,INVALC,INVALC,0x7252, - INVALC,INVALC,INVALC,0x7254,INVALC,INVALC,INVALC,INVALC, - 0x7253,INVALC,INVALC,0x7251,INVALC,INVALC,0x755E,0x7561, - INVALC,INVALC,0x755F,INVALC,0x755D,0x7560,INVALC,INVALC, - INVALC,0x774B,INVALC,INVALC,INVALC,0x774C,0x792F,INVALC, - INVALC,INVALC,INVALC,INVALC,0x792E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7B32, - INVALC,0x7B79,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4B50,0x624B,INVALC,INVALC,0x6728, - INVALC,INVALC,INVALC,0x6B3E,INVALC,INVALC,0x7256,INVALC, - 0x7255,INVALC,INVALC,INVALC,INVALC,0x7930,0x7A29,0x7B33, - 0x4B51,0x5849,0x6729,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4B52,INVALC,0x4B55,0x4B54,0x4B53,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F52,INVALC, - INVALC,0x4F54,INVALC,INVALC,0x4F53,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x535F,INVALC,0x5364,0x5361,0x535E,INVALC, - 0x5365,INVALC,0x5360,0x5363,INVALC,0x5362,INVALC,INVALC, - 0x535D,INVALC,INVALC,INVALC,0x584F,INVALC,INVALC,0x584C, - 0x5853,INVALC,0x584E,INVALC,INVALC,0x5851,INVALC,INVALC, - /* Block 145, Array index 0x5000 */ - 0x584D,0x584A,INVALC,0x5850,INVALC,0x5852,0x584B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5D56,INVALC,0x5D60, - 0x5D5C,INVALC,INVALC,INVALC,0x5D64,0x5D5D,0x5D62,0x5D58, - INVALC,0x5D55,0x5D57,0x5D63,INVALC,0x5D5B,0x5D5E,0x5D5A, - 0x5D5F,INVALC,0x5D61,0x5D59,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x624C,INVALC, - INVALC,0x624E,0x6250,INVALC,INVALC,0x624D,0x6251,INVALC, - 0x624F,INVALC,INVALC,INVALC,0x672F,INVALC,0x6737,INVALC, - INVALC,0x6738,0x672D,INVALC,INVALC,INVALC,INVALC,0x6732, - INVALC,INVALC,0x672B,0x672A,INVALC,0x6735,0x6734,0x6733, - 0x6731,0x6736,INVALC,0x672C,0x672E,0x6730,INVALC,INVALC, - 0x6B40,0x6B43,INVALC,0x6B47,0x6B41,0x6B46,0x6B44,INVALC, - 0x6B3F,INVALC,0x6B45,0x6B42,INVALC,INVALC,INVALC,INVALC, - 0x6F4D,0x6F4B,INVALC,INVALC,INVALC,0x6F4E,0x6F4C,INVALC, - INVALC,INVALC,0x725A,INVALC,0x7258,0x7257,INVALC,0x6F4F, - 0x7259,INVALC,0x725C,INVALC,0x725B,0x7563,INVALC,0x7562, - 0x7567,0x7565,0x7566,0x774E,0x7564,INVALC,INVALC,0x774D, - 0x774F,INVALC,0x7931,0x7932,INVALC,INVALC,INVALC,0x7C4A, - 0x7C49,0x4B57,INVALC,INVALC,INVALC,0x5854,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4B58,0x4B5B,INVALC,INVALC,0x4B5A,INVALC, - INVALC,INVALC,0x4B59,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F57,INVALC,INVALC,INVALC,0x4F55,0x4F58,INVALC, - 0x4F56,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5368,INVALC,0x5369,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5366,INVALC,INVALC,INVALC,0x5367,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5856,INVALC,INVALC, - INVALC,0x5855,0x5857,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5D65,INVALC,INVALC,INVALC,INVALC,0x5D66,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6253,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5D67,0x6255,INVALC, - /* Block 146, Array index 0x5100 */ - INVALC,INVALC,0x6252,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6254,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6739,INVALC,INVALC,INVALC,INVALC,0x673A, - 0x6B49,0x6B48,INVALC,INVALC,INVALC,INVALC,0x6B4A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6F52, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6F51,INVALC,INVALC, - 0x6F50,0x6F53,INVALC,INVALC,0x725D,INVALC,INVALC,INVALC, - INVALC,0x7568,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7B7A,0x4B5C,0x536B,0x536A,0x585A,0x5859,INVALC,INVALC, - INVALC,INVALC,0x5858,INVALC,INVALC,INVALC,INVALC,0x5D68, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6256,INVALC,0x6257,INVALC,INVALC, - INVALC,0x673D,0x673C,INVALC,0x673B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6B4E,0x6B4B,INVALC,0x6B4D, - 0x6B4C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6F57,INVALC,INVALC,INVALC,0x6F54, - INVALC,0x6F55,INVALC,0x6F56,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x725E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x756B,INVALC,0x756A,INVALC, - INVALC,INVALC,INVALC,0x7569,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7750,0x7751,INVALC,0x7934,INVALC, - INVALC,0x7933,INVALC,INVALC,0x7A4A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7B34,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7C6E,0x7D2A,INVALC,INVALC,INVALC,0x7D3C,0x4B5D,0x4F59, - INVALC,0x673E,INVALC,0x7A4B,0x4B5E,0x536C,0x5D69,0x6258, - 0x7752,0x4F5A,INVALC,INVALC,INVALC,INVALC,INVALC,0x585D, - 0x585B,0x585F,INVALC,INVALC,0x585E,0x585C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D6C,INVALC,INVALC,0x5D6B,0x5D6D, - INVALC,0x5D6F,INVALC,INVALC,INVALC,0x5D6E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5D6A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 147, Array index 0x5200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6260, - INVALC,0x625C,INVALC,INVALC,INVALC,0x625E,INVALC,INVALC, - 0x625F,0x6261,INVALC,INVALC,0x6259,0x625A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x625D,INVALC, - INVALC,INVALC,INVALC,0x625B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6749,INVALC,INVALC,0x673F, - 0x6741,0x674D,INVALC,INVALC,INVALC,0x6742,0x6744,0x674E, - 0x6743,INVALC,INVALC,INVALC,INVALC,0x674C,INVALC,INVALC, - INVALC,0x674A,INVALC,0x6746,INVALC,0x674B,INVALC,INVALC, - INVALC,0x6748,INVALC,INVALC,INVALC,INVALC,INVALC,0x6740, - INVALC,INVALC,0x674F,0x6745,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6747,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6B4F,INVALC,INVALC,0x6B55,0x6B59,INVALC,INVALC,INVALC, - 0x6B51,INVALC,INVALC,INVALC,INVALC,0x6B52,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B5A,INVALC,0x6B56,INVALC,INVALC,0x6B54,INVALC, - 0x6B53,INVALC,INVALC,INVALC,0x6B57,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6B58,INVALC,INVALC,INVALC,0x6B50,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6F63,0x6F5E,INVALC,INVALC,INVALC,0x6F5A, - INVALC,INVALC,INVALC,0x6F59,0x6F5F,INVALC,INVALC,INVALC, - INVALC,0x6F5D,INVALC,INVALC,INVALC,0x6F58,INVALC,0x6F61, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6F60,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6F5C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6F5B,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F62,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7261,INVALC,INVALC,INVALC,0x7265,INVALC,INVALC,INVALC, - /* Block 148, Array index 0x5300 */ - INVALC,INVALC,INVALC,INVALC,0x7267,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7269,INVALC,INVALC,INVALC,INVALC,0x726C,INVALC,INVALC, - 0x7573,0x726E,0x7268,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x725F,0x726B,0x7264,INVALC,INVALC,INVALC,0x726A,INVALC, - 0x756E,INVALC,INVALC,0x7266,INVALC,INVALC,0x726D,0x7263, - INVALC,INVALC,INVALC,0x7262,INVALC,INVALC,0x7260,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7570,0x7572,INVALC,0x756C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7579,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7578,0x7576,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7571,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7575,INVALC,INVALC,INVALC, - 0x7577,INVALC,INVALC,INVALC,INVALC,0x756F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7574,INVALC, - INVALC,INVALC,0x756D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7754,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7753,INVALC,0x7755,0x775D, - 0x775B,INVALC,0x775C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7756,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7759,INVALC,0x7758,INVALC, - 0x775A,INVALC,INVALC,0x7757,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7938,INVALC,INVALC,INVALC,INVALC, - 0x7939,INVALC,INVALC,INVALC,INVALC,0x793E,INVALC,INVALC, - INVALC,0x7936,INVALC,INVALC,INVALC,INVALC,0x793C,0x7941, - 0x793F,INVALC,INVALC,INVALC,0x793A,0x793B,INVALC,0x7937, - INVALC,0x7935,0x793D,INVALC,0x7940,INVALC,INVALC,INVALC, - 0x7942,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7A4E,INVALC,INVALC, - /* Block 149, Array index 0x5400 */ - INVALC,INVALC,INVALC,0x7A4D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7A4C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7B3B,INVALC,INVALC,0x7B35,INVALC, - INVALC,INVALC,0x7B3A,0x7B36,INVALC,0x7B37,INVALC,INVALC, - 0x7B39,INVALC,0x7B38,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7B7B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7B7C,0x7B7D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7C4C,INVALC,INVALC,0x7C4B,0x7C4D,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7C6F,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7D2C,INVALC,0x7D2B,INVALC,INVALC,INVALC,INVALC,0x7D35, - INVALC,INVALC,INVALC,INVALC,0x7D3F,0x7D3D,0x7D3E,0x7D44, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 150, Array index 0x5500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F5B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4F5C,INVALC,0x536D,0x5860,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D70,INVALC,0x6264,INVALC,INVALC,0x6268,0x6263, - INVALC,0x6265,0x6267,0x6266,0x6262,INVALC,INVALC,INVALC, - 0x6750,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B5B,INVALC,0x6B5E,0x6B60,0x6B5F,INVALC,INVALC, - 0x6B5C,0x6B5D,INVALC,INVALC,INVALC,0x6F64,INVALC,INVALC, - INVALC,0x6F65,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x726F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x757E,INVALC, - 0x757D,INVALC,0x757A,0x757B,0x757C,INVALC,INVALC,INVALC, - 0x7760,INVALC,INVALC,INVALC,0x775E,0x7761,0x775F,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7943,INVALC,INVALC,INVALC, - INVALC,0x7A4F,0x7B3C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 151, Array index 0x5600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4F5D,INVALC,INVALC,INVALC, - INVALC,0x486A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4B62,INVALC,0x4B63,INVALC,0x4B60,INVALC, - INVALC,0x4B61,0x4B5F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4F60,INVALC,INVALC,INVALC,0x4F5F, - 0x4F5E,INVALC,0x4F62,INVALC,0x4F61,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x536F,0x5370,0x5371,INVALC,INVALC, - 0x536E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5867,INVALC,INVALC,0x5864,INVALC,0x5865,0x5868,INVALC, - INVALC,0x5863,0x5861,0x5862,0x5866,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D71,INVALC,0x5D79,INVALC,INVALC,INVALC, - 0x5D75,INVALC,0x6270,0x5D73,0x5D76,0x5D72,0x5D77,0x5D78, - 0x5D74,INVALC,INVALC,INVALC,INVALC,0x626C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6271,0x626D,0x626E,INVALC, - INVALC,INVALC,0x6269,0x626B,INVALC,0x626F,0x626A,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6752,0x6753,INVALC,INVALC, - 0x6751,0x6B61,INVALC,0x6B63,0x6B62,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7270, - 0x7271,INVALC,0x7272,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7621,INVALC,INVALC,0x7944,INVALC,INVALC,INVALC, - 0x7622,0x4F63,INVALC,0x5869,INVALC,INVALC,INVALC,INVALC, - 0x5D7A,0x6272,INVALC,INVALC,0x6274,0x6273,0x6275,0x6276, - INVALC,0x6756,0x6757,0x6755,0x6B64,0x6754,INVALC,INVALC, - INVALC,INVALC,0x6B65,INVALC,INVALC,0x7273,0x7623,INVALC, - INVALC,0x7764,INVALC,0x7765,0x7763,INVALC,0x7766,INVALC, - INVALC,INVALC,0x7762,0x7945,INVALC,INVALC,INVALC,INVALC, - 0x4F64,0x5D7C,0x5D7B,INVALC,INVALC,INVALC,INVALC,0x6277, - INVALC,INVALC,0x6278,INVALC,INVALC,INVALC,0x675B,0x6758, - INVALC,0x675A,INVALC,0x6759,INVALC,INVALC,INVALC,INVALC, - /* Block 152, Array index 0x5700 */ - 0x6B66,INVALC,INVALC,INVALC,0x6F66,INVALC,0x6F67,0x6F68, - INVALC,0x6F69,INVALC,INVALC,INVALC,0x7277,0x7274,0x7279, - INVALC,0x7275,INVALC,0x7278,INVALC,INVALC,0x7276,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7624,INVALC,0x7625,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7767,INVALC,INVALC,0x7947, - INVALC,INVALC,0x7946,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7A50,INVALC,0x7B3F,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7B3D,0x7B3E,INVALC,INVALC,INVALC,0x7B7E,0x7C21,INVALC, - INVALC,INVALC,0x7C70,INVALC,0x7C72,INVALC,INVALC,INVALC, - 0x7C71,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F65,INVALC,INVALC,INVALC,0x675C,INVALC, - INVALC,INVALC,INVALC,0x727A,0x727B,INVALC,0x4F66,INVALC, - 0x6F6A,0x7948,0x5372,INVALC,INVALC,INVALC,0x727C,INVALC, - 0x7C4E,0x5373,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x675D,INVALC,0x675E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6B67,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6B68,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6F6C,INVALC,0x6F6B,INVALC,0x6F6D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x727D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7626,INVALC,INVALC,0x7768,INVALC,INVALC,0x7769,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x776A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7C23,INVALC,0x7C22,INVALC,INVALC,0x7C73,INVALC, - INVALC,0x7D36,INVALC,0x5374,0x6279,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7627,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7949,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5375,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5376,INVALC,INVALC,0x6B69,INVALC, - INVALC,0x776B,INVALC,0x794A,INVALC,INVALC,INVALC,0x7B40, - /* Block 153, Array index 0x5800 */ - INVALC,0x5377,0x5E21,0x5E22,INVALC,0x627A,0x627B,INVALC, - 0x627C,INVALC,0x6762,INVALC,0x6764,INVALC,INVALC,INVALC, - 0x675F,0x6760,0x6763,0x6761,INVALC,INVALC,INVALC,0x6B6A, - 0x6B6B,INVALC,INVALC,INVALC,0x6F70,INVALC,INVALC,INVALC, - INVALC,0x6F6E,INVALC,INVALC,0x7326,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6F6F,INVALC,0x7324,INVALC,INVALC, - 0x727E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7323, - 0x7321,0x7325,INVALC,0x7322,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7628,INVALC, - INVALC,INVALC,INVALC,INVALC,0x776E,0x776C,0x776F,0x776D, - INVALC,INVALC,INVALC,0x7770,INVALC,INVALC,INVALC,INVALC, - 0x794C,INVALC,INVALC,0x794D,INVALC,INVALC,0x794B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7B42,INVALC,0x7B41, - INVALC,INVALC,INVALC,0x7C24,INVALC,INVALC,INVALC,0x7C4F, - 0x7C74,0x7D2D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5378,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B6C, - INVALC,0x6B6D,INVALC,0x6F71,INVALC,INVALC,0x7629,INVALC, - INVALC,INVALC,0x7771,INVALC,0x794E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7A51,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5379,INVALC,INVALC,INVALC,0x537A, - INVALC,INVALC,0x586A,INVALC,INVALC,INVALC,INVALC,0x627D, - INVALC,0x6322,0x627E,INVALC,INVALC,0x6324,INVALC,0x6321, - INVALC,INVALC,0x6323,INVALC,0x6766,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6765,0x6767,0x6768,INVALC, - /* Block 154, Array index 0x5900 */ - INVALC,INVALC,INVALC,0x6B6E,INVALC,0x6B6F,INVALC,INVALC, - INVALC,0x6B71,0x6F72,INVALC,0x6B70,INVALC,INVALC,INVALC, - 0x7327,INVALC,0x6F74,0x6F73,INVALC,INVALC,INVALC,INVALC, - 0x6F75,INVALC,0x732C,0x732A,INVALC,INVALC,0x7329,INVALC, - INVALC,0x732B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7328,INVALC,INVALC,INVALC,INVALC,INVALC,0x7775,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x762A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7774,0x7772,0x7773, - INVALC,INVALC,INVALC,INVALC,INVALC,0x794F,INVALC,INVALC, - INVALC,0x7950,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7A53,0x7A52,INVALC,INVALC,0x7C25,INVALC,0x7B43, - INVALC,INVALC,INVALC,INVALC,0x7C50,INVALC,0x7D2E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x537B,INVALC, - INVALC,0x537C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7776,INVALC,INVALC, - 0x7A54,INVALC,INVALC,INVALC,0x586B,0x6326,0x6325,INVALC, - INVALC,0x676A,INVALC,0x6769,0x676B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B72,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F77,0x6F7A,0x6F7C,INVALC,INVALC,0x6F7B,INVALC,INVALC, - INVALC,0x6F7D,INVALC,0x6F79,INVALC,0x6F76,INVALC,0x6F78, - INVALC,INVALC,0x732E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x732D,INVALC,INVALC, - INVALC,0x732F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x762C, - /* Block 155, Array index 0x5A00 */ - INVALC,0x762B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7777,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7951,INVALC, - INVALC,0x7952,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7A55,INVALC,INVALC,INVALC,INVALC, - 0x7A56,INVALC,INVALC,INVALC,INVALC,0x7A58,INVALC,0x7A57, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7B47,INVALC, - 0x7B46,INVALC,INVALC,0x7B45,INVALC,0x7B44,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7C27,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7C26,INVALC,0x7C53, - INVALC,INVALC,0x7C51,0x7C52,INVALC,INVALC,INVALC,0x7C75, - INVALC,INVALC,0x7D37,INVALC,INVALC,0x7D38,INVALC,INVALC, - INVALC,INVALC,0x7D47,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x586C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B73, - 0x6B74,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6F7E, - 0x7330,INVALC,INVALC,INVALC,0x7331,INVALC,INVALC,INVALC, - INVALC,0x7778,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7B48, - INVALC,0x7C56,0x7C28,0x7C54,0x7C55,INVALC,0x7D2F,INVALC, - 0x586D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x676C,INVALC,INVALC,INVALC,INVALC,0x6B75,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7333,0x7021,0x7022, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7332,INVALC,INVALC,INVALC,INVALC, - /* Block 156, Array index 0x5B00 */ - INVALC,INVALC,INVALC,0x7779,INVALC,INVALC,0x777A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7953,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7C29,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7C76,0x7D30,INVALC,0x586E,INVALC,0x7023, - 0x7334,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7D48,0x586F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5870,INVALC,INVALC,INVALC, - INVALC,0x6B76,0x6B77,INVALC,0x7025,0x7024,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x777D,0x777C,0x777B, - INVALC,0x7B4A,INVALC,INVALC,0x7B49,INVALC,INVALC,INVALC, - 0x7C77,INVALC,0x5E23,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7027, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7026, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7335,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x762F,0x762E,INVALC,0x7630,0x762D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7824,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7823,0x7821,0x777E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7956,INVALC, - INVALC,INVALC,INVALC,0x7957,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7955, - 0x7954,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7822,INVALC,INVALC, - /* Block 157, Array index 0x5C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7A5A,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7A59,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7B4C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7B4B,INVALC,INVALC, - INVALC,0x7C2B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7C2D,INVALC,INVALC,0x7C2C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7C2A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7C57,INVALC,0x7C59,0x7C58, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7C78, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7D40, - 0x7D41,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E24,INVALC,INVALC, - INVALC,0x676D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6B7A,0x6B78,INVALC,0x6B79,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 158, Array index 0x5D00 */ - INVALC,INVALC,INVALC,0x702A,INVALC,INVALC,0x7028,INVALC, - INVALC,0x7029,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x733A,INVALC,INVALC,0x7336,INVALC,INVALC, - INVALC,INVALC,INVALC,0x733B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7337,INVALC,INVALC,0x7338,INVALC, - 0x7339,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7631,INVALC,INVALC,INVALC,0x7632, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7825,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7826,INVALC,INVALC, - 0x7827,0x7959,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x795B,INVALC,0x795C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x795A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7958,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7B4D, - INVALC,INVALC,INVALC,INVALC,0x7B4E,INVALC,INVALC,INVALC, - 0x7B50,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7B4F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7C2E,INVALC,INVALC,INVALC,0x7C2F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7C5A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7C79,0x7C7A,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 159, Array index 0x5E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7D45,0x7D49,INVALC,INVALC,0x7D4A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E25,INVALC,INVALC, - INVALC,0x7A5B,INVALC,INVALC,0x7C7B,0x7C7C,INVALC,0x5E26, - INVALC,INVALC,0x676E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7633,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x795D,0x795F,INVALC,INVALC,INVALC,0x795E, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7B51,INVALC,0x7C5B, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E27,INVALC,INVALC, - INVALC,0x702B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7960,0x7A5C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5E28,0x6B7B,INVALC,0x702C,INVALC, - INVALC,INVALC,INVALC,0x6327,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7D31,0x6328,0x702D,0x7634, - INVALC,0x6329,INVALC,INVALC,0x733D,INVALC,INVALC,INVALC, - 0x733C,INVALC,INVALC,0x7638,0x7636,0x7637,0x7635,INVALC, - 0x7828,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7A5D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7B52, - INVALC,INVALC,INVALC,INVALC,0x7C5C,INVALC,INVALC,0x7D42, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 160, Array index 0x5F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7C7D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x676F,INVALC, - INVALC,INVALC,INVALC,0x6770,INVALC,0x7829,INVALC,INVALC, - INVALC,0x7B53,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6771,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x782A,INVALC,INVALC,0x7A5E, - INVALC,INVALC,INVALC,INVALC,0x7C30,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6B7C,INVALC,INVALC,0x7639,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6B7D,0x763A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x702F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7B54,INVALC,INVALC,0x7A5F, - INVALC,0x7A61,INVALC,0x7A60,INVALC,INVALC,0x7B55,0x7B56, - INVALC,INVALC,0x7C32,INVALC,0x7C31,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7D21,INVALC,INVALC,INVALC,INVALC,0x7C7E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x733E,INVALC,INVALC, - 0x7832,INVALC,INVALC,INVALC,0x7C33,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x733F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 255, Array index 0x6000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x212B,0x2136,0x2138,INVALC,INVALC,0x2140,0x2141,0x2144, - 0x2145,0x2148,0x2149,0x214C,0x214D,0x2150,0x2151,0x2154, - 0x2155,0x2158,0x2159,0x215C,0x215D,INVALC,INVALC,INVALC, - INVALC,0x2227,0x2228,0x222B,0x222C,0x2229,0x222A,INVALC, - 0x212E,0x212F,0x2130,INVALC,0x2132,0x2133,0x2134,0x2135, - INVALC,0x215E,0x215F,0x2160,0x2161,0x2162,0x2163,0x222D, - 0x222E,0x222F,0x223F,0x2240,0x2241,0x2243,0x2242,INVALC, - 0x2262,0x226C,0x226D,0x226E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 256, Array index 0x6100 */ - INVALC,0x212A,INVALC,0x216C,0x2263,0x2268,0x216D,INVALC, - 0x213E,0x213F,0x216E,0x2230,0x2122,0x2231,0x2125,0x225F, - 0x2421,0x2422,0x2423,0x2424,0x2425,0x2426,0x2427,0x2428, - 0x2429,0x242A,0x2128,0x2127,0x2236,0x2238,0x2237,0x2129, - 0x2269,0x2441,0x2442,0x2443,0x2444,0x2445,0x2446,0x2447, - 0x2448,0x2449,0x244A,0x244B,0x244C,0x244D,0x244E,0x244F, - 0x2450,0x2451,0x2452,0x2453,0x2454,0x2455,0x2456,0x2457, - 0x2458,0x2459,0x245A,INVALC,0x2260,INVALC,INVALC,0x2225, - INVALC,0x245B,0x245C,0x245D,0x245E,0x245F,0x2460,0x2461, - 0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,0x2469, - 0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471, - 0x2472,0x2473,0x2474,0x2142,0x225E,0x2143,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2266,0x2267,INVALC,INVALC,INVALC,0x2264,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, -}; - -#endif /* ICONV_FROM_UCS_CCS_CNS11643_PLANE1 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> cns11643_plane1 size-optimized table (22050 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE1) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_size_cns11643_plane1[] = -{ - 0x017D, /* Ranges number */ - 0x0DA3, /* Unranged codes number */ - 0x0FCB, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0x02C7, 0x02CB, 0x047A, - /* Array index: 0x0006 */ 0x0391, 0x03A9, 0x047F, - /* Array index: 0x0009 */ 0x03B1, 0x03C9, 0x0498, - /* Array index: 0x000C */ 0x2160, 0x2169, 0x04B1, - /* Array index: 0x000F */ 0x2170, 0x2179, 0x04BB, - /* Array index: 0x0012 */ 0x2190, 0x2199, 0x04C5, - /* Array index: 0x0015 */ 0x221E, 0x2220, 0x04CF, - /* Array index: 0x0018 */ 0x2229, 0x222B, 0x04D2, - /* Array index: 0x001B */ 0x2400, 0x2421, 0x04D5, - /* Array index: 0x001E */ 0x2460, 0x2469, 0x04F7, - /* Array index: 0x0021 */ 0x2474, 0x247D, 0x0501, - /* Array index: 0x0024 */ 0x256D, 0x2573, 0x050B, - /* Array index: 0x0027 */ 0x2581, 0x258F, 0x0512, - /* Array index: 0x002A */ 0x25E2, 0x25E5, 0x0521, - /* Array index: 0x002D */ 0x2640, 0x2642, 0x0525, - /* Array index: 0x0030 */ 0x3000, 0x3003, 0x0528, - /* Array index: 0x0033 */ 0x3008, 0x3015, 0x052C, - /* Array index: 0x0036 */ 0x301D, 0x3029, 0x053A, - /* Array index: 0x0039 */ 0x3105, 0x3129, 0x0547, - /* Array index: 0x003C */ 0x339C, 0x339E, 0x056C, - /* Array index: 0x003F */ 0x4E08, 0x4E19, 0x056F, - /* Array index: 0x0042 */ 0x4E4B, 0x4E53, 0x0581, - /* Array index: 0x0045 */ 0x4E5D, 0x4E5F, 0x058A, - /* Array index: 0x0048 */ 0x4E91, 0x4E95, 0x058D, - /* Array index: 0x004B */ 0x4E9E, 0x4EAE, 0x0592, - /* Array index: 0x004E */ 0x4EC0, 0x4ECD, 0x05A3, - /* Array index: 0x0051 */ 0x4ED4, 0x4ED9, 0x05B1, - /* Array index: 0x0054 */ 0x4EE3, 0x4EE5, 0x05B7, - /* Array index: 0x0057 */ 0x4F09, 0x4F11, 0x05BA, - /* Array index: 0x005A */ 0x4F46, 0x4F48, 0x05C3, - /* Array index: 0x005D */ 0x4F4D, 0x4F60, 0x05C6, - /* Array index: 0x0060 */ 0x4FB5, 0x4FB7, 0x05DA, - /* Array index: 0x0063 */ 0x4FC2, 0x4FC4, 0x05DD, - /* Array index: 0x0066 */ 0x4FCE, 0x4FD1, 0x05E0, - /* Array index: 0x0069 */ 0x4FDD, 0x4FE1, 0x05E4, - /* Array index: 0x006C */ 0x5009, 0x501A, 0x05E9, - /* Array index: 0x006F */ 0x5025, 0x502D, 0x05FB, - /* Array index: 0x0072 */ 0x5074, 0x5077, 0x0604, - /* Array index: 0x0075 */ 0x5096, 0x509A, 0x0608, - /* Array index: 0x0078 */ 0x513B, 0x514D, 0x060D, - /* Array index: 0x007B */ 0x5159, 0x516E, 0x0620, - /* Array index: 0x007E */ 0x5175, 0x5178, 0x0636, - /* Array index: 0x0081 */ 0x51CB, 0x51CD, 0x063A, - /* Array index: 0x0084 */ 0x51F6, 0x51FA, 0x063D, - /* Array index: 0x0087 */ 0x5206, 0x520A, 0x0642, - /* Array index: 0x008A */ 0x5224, 0x522A, 0x0647, - /* Array index: 0x008D */ 0x5236, 0x523B, 0x064E, - /* Array index: 0x0090 */ 0x524A, 0x524E, 0x0654, - /* Array index: 0x0093 */ 0x525B, 0x525D, 0x0659, - /* Array index: 0x0096 */ 0x5287, 0x528A, 0x065C, - /* Array index: 0x0099 */ 0x52A9, 0x52AC, 0x0660, - /* Array index: 0x009C */ 0x52D5, 0x52E6, 0x0664, - /* Array index: 0x009F */ 0x5315, 0x5319, 0x0676, - /* Array index: 0x00A2 */ 0x533E, 0x534A, 0x067B, - /* Array index: 0x00A5 */ 0x5351, 0x5354, 0x0688, - /* Array index: 0x00A8 */ 0x536E, 0x537B, 0x068C, - /* Array index: 0x00AB */ 0x53C8, 0x53CD, 0x069A, - /* Array index: 0x00AE */ 0x53E2, 0x53F5, 0x06A0, - /* Array index: 0x00B1 */ 0x5406, 0x5412, 0x06B4, - /* Array index: 0x00B4 */ 0x541B, 0x5420, 0x06C1, - /* Array index: 0x00B7 */ 0x5429, 0x542E, 0x06C7, - /* Array index: 0x00BA */ 0x5435, 0x5443, 0x06CD, - /* Array index: 0x00BD */ 0x5473, 0x547D, 0x06DC, - /* Array index: 0x00C0 */ 0x54A6, 0x54AC, 0x06E7, - /* Array index: 0x00C3 */ 0x54BD, 0x54C9, 0x06EE, - /* Array index: 0x00C6 */ 0x54E5, 0x54EE, 0x06FB, - /* Array index: 0x00C9 */ 0x5555, 0x5557, 0x0705, - /* Array index: 0x00CC */ 0x5580, 0x5584, 0x0708, - /* Array index: 0x00CF */ 0x5587, 0x558B, 0x070D, - /* Array index: 0x00D2 */ 0x5598, 0x559F, 0x0712, - /* Array index: 0x00D5 */ 0x55AA, 0x55B3, 0x071A, - /* Array index: 0x00D8 */ 0x55C5, 0x55C9, 0x0724, - /* Array index: 0x00DB */ 0x55E1, 0x55E8, 0x0729, - /* Array index: 0x00DE */ 0x562E, 0x5636, 0x0731, - /* Array index: 0x00E1 */ 0x5664, 0x566C, 0x073A, - /* Array index: 0x00E4 */ 0x568E, 0x5690, 0x0743, - /* Array index: 0x00E7 */ 0x56C0, 0x56C2, 0x0746, - /* Array index: 0x00EA */ 0x56C8, 0x56CC, 0x0749, - /* Array index: 0x00ED */ 0x56DA, 0x56E0, 0x074E, - /* Array index: 0x00F0 */ 0x572C, 0x5730, 0x0755, - /* Array index: 0x00F3 */ 0x574D, 0x5751, 0x075A, - /* Array index: 0x00F6 */ 0x582F, 0x5835, 0x075F, - /* Array index: 0x00F9 */ 0x584A, 0x584C, 0x0766, - /* Array index: 0x00FC */ 0x5914, 0x591C, 0x0769, - /* Array index: 0x00FF */ 0x5927, 0x592E, 0x0772, - /* Array index: 0x0102 */ 0x5947, 0x5949, 0x077A, - /* Array index: 0x0105 */ 0x594E, 0x595A, 0x077D, - /* Array index: 0x0108 */ 0x5981, 0x5984, 0x078A, - /* Array index: 0x010B */ 0x59A3, 0x59A5, 0x078E, - /* Array index: 0x010E */ 0x59D0, 0x59D4, 0x0791, - /* Array index: 0x0111 */ 0x5ABC, 0x5AC2, 0x0796, - /* Array index: 0x0114 */ 0x5AD6, 0x5AD8, 0x079D, - /* Array index: 0x0117 */ 0x5B08, 0x5B0C, 0x07A0, - /* Array index: 0x011A */ 0x5B50, 0x5B5F, 0x07A5, - /* Array index: 0x011D */ 0x5B85, 0x5B8C, 0x07B5, - /* Array index: 0x0120 */ 0x5B97, 0x5B9C, 0x07BD, - /* Array index: 0x0123 */ 0x5BA2, 0x5BA6, 0x07C3, - /* Array index: 0x0126 */ 0x5BB3, 0x5BB9, 0x07C8, - /* Array index: 0x0129 */ 0x5BC2, 0x5BC7, 0x07CF, - /* Array index: 0x012C */ 0x5BDE, 0x5BF0, 0x07D5, - /* Array index: 0x012F */ 0x5C07, 0x5C11, 0x07E8, - /* Array index: 0x0132 */ 0x5C37, 0x5C41, 0x07F3, - /* Array index: 0x0135 */ 0x5C4B, 0x5C51, 0x07FE, - /* Array index: 0x0138 */ 0x5DE1, 0x5DE8, 0x0805, - /* Array index: 0x013B */ 0x5DF1, 0x5DF4, 0x080D, - /* Array index: 0x013E */ 0x5E36, 0x5E38, 0x0811, - /* Array index: 0x0141 */ 0x5E5F, 0x5E63, 0x0814, - /* Array index: 0x0144 */ 0x5E72, 0x5E7E, 0x0819, - /* Array index: 0x0147 */ 0x5E95, 0x5E97, 0x0826, - /* Array index: 0x014A */ 0x5EB5, 0x5EB8, 0x0829, - /* Array index: 0x014D */ 0x5EC8, 0x5ECA, 0x082D, - /* Array index: 0x0150 */ 0x5EDF, 0x5EE3, 0x0830, - /* Array index: 0x0153 */ 0x5F12, 0x5F18, 0x0835, - /* Array index: 0x0156 */ 0x5F69, 0x5F71, 0x083C, - /* Array index: 0x0159 */ 0x5F7F, 0x5F81, 0x0845, - /* Array index: 0x015C */ 0x5F85, 0x5F92, 0x0848, - /* Array index: 0x015F */ 0x5F97, 0x5F99, 0x0856, - /* Array index: 0x0162 */ 0x5FA8, 0x5FAE, 0x0859, - /* Array index: 0x0165 */ 0x5FD6, 0x5FD9, 0x0860, - /* Array index: 0x0168 */ 0x6012, 0x6016, 0x0864, - /* Array index: 0x016B */ 0x6025, 0x602B, 0x0869, - /* Array index: 0x016E */ 0x6062, 0x6070, 0x0870, - /* Array index: 0x0171 */ 0x60B2, 0x60BD, 0x087F, - /* Array index: 0x0174 */ 0x60C5, 0x60C7, 0x088B, - /* Array index: 0x0177 */ 0x60DF, 0x60E1, 0x088E, - /* Array index: 0x017A */ 0x60F0, 0x60FB, 0x0891, - /* Array index: 0x017D */ 0x610D, 0x610F, 0x089D, - /* Array index: 0x0180 */ 0x611A, 0x611C, 0x08A0, - /* Array index: 0x0183 */ 0x6147, 0x614E, 0x08A3, - /* Array index: 0x0186 */ 0x6175, 0x6177, 0x08AB, - /* Array index: 0x0189 */ 0x61C7, 0x61CD, 0x08AE, - /* Array index: 0x018C */ 0x61F5, 0x6200, 0x08B5, - /* Array index: 0x018F */ 0x620A, 0x6216, 0x08C1, - /* Array index: 0x0192 */ 0x6230, 0x6236, 0x08CE, - /* Array index: 0x0195 */ 0x623E, 0x6241, 0x08D5, - /* Array index: 0x0198 */ 0x6247, 0x6254, 0x08D9, - /* Array index: 0x019B */ 0x626D, 0x626F, 0x08E7, - /* Array index: 0x019E */ 0x627C, 0x6280, 0x08EA, - /* Array index: 0x01A1 */ 0x6291, 0x6298, 0x08EF, - /* Array index: 0x01A4 */ 0x62C4, 0x62DC, 0x08F7, - /* Array index: 0x01A7 */ 0x62EC, 0x62F4, 0x0910, - /* Array index: 0x01AA */ 0x62FC, 0x6302, 0x0919, - /* Array index: 0x01AD */ 0x6307, 0x6309, 0x0920, - /* Array index: 0x01B0 */ 0x634C, 0x6350, 0x0923, - /* Array index: 0x01B3 */ 0x6367, 0x636B, 0x0928, - /* Array index: 0x01B6 */ 0x63A0, 0x63AC, 0x092D, - /* Array index: 0x01B9 */ 0x6413, 0x6417, 0x093A, - /* Array index: 0x01BC */ 0x6478, 0x647B, 0x093F, - /* Array index: 0x01BF */ 0x64A9, 0x64B3, 0x0943, - /* Array index: 0x01C2 */ 0x64BB, 0x64CE, 0x094E, - /* Array index: 0x01C5 */ 0x64EC, 0x64F4, 0x0962, - /* Array index: 0x01C8 */ 0x652A, 0x652C, 0x096B, - /* Array index: 0x01CB */ 0x6554, 0x6559, 0x096E, - /* Array index: 0x01CE */ 0x6574, 0x6578, 0x0974, - /* Array index: 0x01D1 */ 0x65CB, 0x65CF, 0x0979, - /* Array index: 0x01D4 */ 0x65E5, 0x65ED, 0x097E, - /* Array index: 0x01D7 */ 0x6613, 0x6615, 0x0987, - /* Array index: 0x01DA */ 0x6624, 0x6628, 0x098A, - /* Array index: 0x01DD */ 0x6641, 0x6645, 0x098F, - /* Array index: 0x01E0 */ 0x666E, 0x6670, 0x0994, - /* Array index: 0x01E3 */ 0x6687, 0x6689, 0x0997, - /* Array index: 0x01E6 */ 0x6696, 0x6698, 0x099A, - /* Array index: 0x01E9 */ 0x66F0, 0x66F9, 0x099D, - /* Array index: 0x01EC */ 0x66FC, 0x6700, 0x09A7, - /* Array index: 0x01EF */ 0x6726, 0x672E, 0x09AC, - /* Array index: 0x01F2 */ 0x674E, 0x6757, 0x09B5, - /* Array index: 0x01F5 */ 0x675C, 0x6760, 0x09BF, - /* Array index: 0x01F8 */ 0x676D, 0x6777, 0x09C4, - /* Array index: 0x01FB */ 0x67CF, 0x67D4, 0x09CF, - /* Array index: 0x01FE */ 0x67F1, 0x67F5, 0x09D5, - /* Array index: 0x0201 */ 0x683C, 0x6848, 0x09DA, - /* Array index: 0x0204 */ 0x6850, 0x6854, 0x09E7, - /* Array index: 0x0207 */ 0x687F, 0x6886, 0x09EC, - /* Array index: 0x020A */ 0x68AD, 0x68B5, 0x09F4, - /* Array index: 0x020D */ 0x68F9, 0x68FB, 0x09FD, - /* Array index: 0x0210 */ 0x695A, 0x6960, 0x0A00, - /* Array index: 0x0213 */ 0x69CB, 0x69CD, 0x0A07, - /* Array index: 0x0216 */ 0x6A38, 0x6A3A, 0x0A0A, - /* Array index: 0x0219 */ 0x6B5F, 0x6B67, 0x0A0D, - /* Array index: 0x021C */ 0x6B77, 0x6B7B, 0x0A16, - /* Array index: 0x021F */ 0x6BD2, 0x6BD4, 0x0A1B, - /* Array index: 0x0222 */ 0x6C0F, 0x6C13, 0x0A1E, - /* Array index: 0x0225 */ 0x6C23, 0x6C2F, 0x0A23, - /* Array index: 0x0228 */ 0x6C3E, 0x6C42, 0x0A30, - /* Array index: 0x022B */ 0x6C5B, 0x6C61, 0x0A35, - /* Array index: 0x022E */ 0x6C7D, 0x6C8D, 0x0A3C, - /* Array index: 0x0231 */ 0x6CB8, 0x6CC5, 0x0A4D, - /* Array index: 0x0234 */ 0x6CD3, 0x6CD7, 0x0A5B, - /* Array index: 0x0237 */ 0x6CE0, 0x6CE5, 0x0A60, - /* Array index: 0x023A */ 0x6CEF, 0x6CF5, 0x0A66, - /* Array index: 0x023D */ 0x6D27, 0x6D2B, 0x0A6D, - /* Array index: 0x0240 */ 0x6D35, 0x6D3E, 0x0A72, - /* Array index: 0x0243 */ 0x6D77, 0x6D79, 0x0A7C, - /* Array index: 0x0246 */ 0x6D85, 0x6D8E, 0x0A7F, - /* Array index: 0x0249 */ 0x6D93, 0x6D95, 0x0A89, - /* Array index: 0x024C */ 0x6DC4, 0x6DC7, 0x0A8C, - /* Array index: 0x024F */ 0x6DD8, 0x6DDA, 0x0A90, - /* Array index: 0x0252 */ 0x6DE8, 0x6DEE, 0x0A93, - /* Array index: 0x0255 */ 0x6DF7, 0x6DFB, 0x0A9A, - /* Array index: 0x0258 */ 0x6E19, 0x6E26, 0x0A9F, - /* Array index: 0x025B */ 0x6ED1, 0x6ED5, 0x0AAD, - /* Array index: 0x025E */ 0x6EFE, 0x6F02, 0x0AB2, - /* Array index: 0x0261 */ 0x6F13, 0x6F15, 0x0AB7, - /* Array index: 0x0264 */ 0x6F29, 0x6F2C, 0x0ABA, - /* Array index: 0x0267 */ 0x6F2F, 0x6F33, 0x0ABE, - /* Array index: 0x026A */ 0x6F6D, 0x6F70, 0x0AC3, - /* Array index: 0x026D */ 0x6FC0, 0x6FC3, 0x0AC7, - /* Array index: 0x0270 */ 0x6FDF, 0x6FE1, 0x0ACB, - /* Array index: 0x0273 */ 0x6FEB, 0x6FF1, 0x0ACE, - /* Array index: 0x0276 */ 0x70AB, 0x70AF, 0x0AD5, - /* Array index: 0x0279 */ 0x7164, 0x7169, 0x0ADA, - /* Array index: 0x027C */ 0x71E5, 0x71E7, 0x0AE0, - /* Array index: 0x027F */ 0x71EC, 0x71EE, 0x0AE3, - /* Array index: 0x0282 */ 0x7235, 0x723E, 0x0AE6, - /* Array index: 0x0285 */ 0x7246, 0x7248, 0x0AF0, - /* Array index: 0x0288 */ 0x725D, 0x7262, 0x0AF3, - /* Array index: 0x028B */ 0x72F7, 0x72FD, 0x0AF9, - /* Array index: 0x028E */ 0x7377, 0x737B, 0x0B00, - /* Array index: 0x0291 */ 0x7433, 0x7436, 0x0B05, - /* Array index: 0x0294 */ 0x7459, 0x745F, 0x0B09, - /* Array index: 0x0297 */ 0x74A6, 0x74A9, 0x0B10, - /* Array index: 0x029A */ 0x74E0, 0x74E6, 0x0B14, - /* Array index: 0x029D */ 0x7525, 0x7533, 0x0B1B, - /* Array index: 0x02A0 */ 0x754B, 0x754F, 0x0B2A, - /* Array index: 0x02A3 */ 0x7559, 0x755D, 0x0B2F, - /* Array index: 0x02A6 */ 0x75A2, 0x75A5, 0x0B34, - /* Array index: 0x02A9 */ 0x75B8, 0x75BE, 0x0B38, - /* Array index: 0x02AC */ 0x75F0, 0x75F4, 0x0B3F, - /* Array index: 0x02AF */ 0x75FF, 0x7601, 0x0B44, - /* Array index: 0x02B2 */ 0x761F, 0x7629, 0x0B47, - /* Array index: 0x02B5 */ 0x767B, 0x767E, 0x0B52, - /* Array index: 0x02B8 */ 0x7684, 0x7688, 0x0B56, - /* Array index: 0x02BB */ 0x76C2, 0x76CE, 0x0B5B, - /* Array index: 0x02BE */ 0x76DB, 0x76E7, 0x0B68, - /* Array index: 0x02C1 */ 0x7736, 0x773E, 0x0B75, - /* Array index: 0x02C4 */ 0x7761, 0x776C, 0x0B7E, - /* Array index: 0x02C7 */ 0x779E, 0x77A0, 0x0B8A, - /* Array index: 0x02CA */ 0x77BB, 0x77BF, 0x0B8D, - /* Array index: 0x02CD */ 0x77DA, 0x77DC, 0x0B92, - /* Array index: 0x02D0 */ 0x77ED, 0x77EF, 0x0B95, - /* Array index: 0x02D3 */ 0x792A, 0x792C, 0x0B98, - /* Array index: 0x02D6 */ 0x7946, 0x7949, 0x0B9B, - /* Array index: 0x02D9 */ 0x7955, 0x7957, 0x0B9F, - /* Array index: 0x02DC */ 0x795D, 0x7960, 0x0BA2, - /* Array index: 0x02DF */ 0x798D, 0x798F, 0x0BA6, - /* Array index: 0x02E2 */ 0x79B9, 0x79C1, 0x0BA9, - /* Array index: 0x02E5 */ 0x79E3, 0x79E9, 0x0BB2, - /* Array index: 0x02E8 */ 0x7A1C, 0x7A20, 0x0BB9, - /* Array index: 0x02EB */ 0x7A3B, 0x7A40, 0x0BBE, - /* Array index: 0x02EE */ 0x7A4B, 0x7A4E, 0x0BC4, - /* Array index: 0x02F1 */ 0x7A60, 0x7A62, 0x0BC8, - /* Array index: 0x02F4 */ 0x7A95, 0x7A98, 0x0BCB, - /* Array index: 0x02F7 */ 0x7B4D, 0x7B56, 0x0BCF, - /* Array index: 0x02FA */ 0x7C3D, 0x7C40, 0x0BD9, - /* Array index: 0x02FD */ 0x7C5F, 0x7C65, 0x0BDD, - /* Array index: 0x0300 */ 0x7CDC, 0x7CE2, 0x0BE4, - /* Array index: 0x0303 */ 0x7D02, 0x7D0D, 0x0BEB, - /* Array index: 0x0306 */ 0x7D17, 0x7D22, 0x0BF7, - /* Array index: 0x0309 */ 0x7D2E, 0x7D33, 0x0C03, - /* Array index: 0x030C */ 0x7D40, 0x7D46, 0x0C09, - /* Array index: 0x030F */ 0x7D6E, 0x7D73, 0x0C10, - /* Array index: 0x0312 */ 0x7DAC, 0x7DB5, 0x0C16, - /* Array index: 0x0315 */ 0x7DBA, 0x7DBF, 0x0C20, - /* Array index: 0x0318 */ 0x7DD8, 0x7DE0, 0x0C26, - /* Array index: 0x031B */ 0x7E08, 0x7E0A, 0x0C2F, - /* Array index: 0x031E */ 0x7E2E, 0x7E48, 0x0C32, - /* Array index: 0x0321 */ 0x7E69, 0x7E6D, 0x0C4D, - /* Array index: 0x0324 */ 0x7F88, 0x7F8E, 0x0C52, - /* Array index: 0x0327 */ 0x7FDF, 0x7FE1, 0x0C59, - /* Array index: 0x032A */ 0x8000, 0x8006, 0x0C5C, - /* Array index: 0x032D */ 0x800B, 0x8012, 0x0C63, - /* Array index: 0x0330 */ 0x8015, 0x8019, 0x0C6B, - /* Array index: 0x0333 */ 0x806F, 0x8077, 0x0C70, - /* Array index: 0x0336 */ 0x807D, 0x807F, 0x0C79, - /* Array index: 0x0339 */ 0x8084, 0x808C, 0x0C7C, - /* Array index: 0x033C */ 0x80A9, 0x80AB, 0x0C85, - /* Array index: 0x033F */ 0x80DA, 0x80DE, 0x0C88, - /* Array index: 0x0342 */ 0x80ED, 0x80F4, 0x0C8D, - /* Array index: 0x0345 */ 0x8150, 0x8155, 0x0C95, - /* Array index: 0x0348 */ 0x8170, 0x817A, 0x0C9B, - /* Array index: 0x034B */ 0x8198, 0x819D, 0x0CA6, - /* Array index: 0x034E */ 0x81BD, 0x81C3, 0x0CAC, - /* Array index: 0x0351 */ 0x81FA, 0x8202, 0x0CB3, - /* Array index: 0x0354 */ 0x8205, 0x820D, 0x0CBC, - /* Array index: 0x0357 */ 0x821B, 0x821F, 0x0CC5, - /* Array index: 0x035A */ 0x8228, 0x822C, 0x0CCA, - /* Array index: 0x035D */ 0x8235, 0x8239, 0x0CCF, - /* Array index: 0x0360 */ 0x826E, 0x8272, 0x0CD4, - /* Array index: 0x0363 */ 0x82AC, 0x82BE, 0x0CD9, - /* Array index: 0x0366 */ 0x82D1, 0x82D4, 0x0CEC, - /* Array index: 0x0369 */ 0x82DB, 0x82DF, 0x0CF0, - /* Array index: 0x036C */ 0x82E3, 0x82E7, 0x0CF5, - /* Array index: 0x036F */ 0x8301, 0x8306, 0x0CFA, - /* Array index: 0x0372 */ 0x8331, 0x8339, 0x0D00, - /* Array index: 0x0375 */ 0x83EF, 0x83F4, 0x0D09, - /* Array index: 0x0378 */ 0x840A, 0x840E, 0x0D0F, - /* Array index: 0x037B */ 0x8469, 0x846D, 0x0D14, - /* Array index: 0x037E */ 0x84C9, 0x84CB, 0x0D19, - /* Array index: 0x0381 */ 0x8548, 0x854A, 0x0D1C, - /* Array index: 0x0384 */ 0x8568, 0x856A, 0x0D1F, - /* Array index: 0x0387 */ 0x85A6, 0x85AA, 0x0D22, - /* Array index: 0x038A */ 0x85F7, 0x85FB, 0x0D27, - /* Array index: 0x038D */ 0x865B, 0x865F, 0x0D2C, - /* Array index: 0x0390 */ 0x8679, 0x867B, 0x0D31, - /* Array index: 0x0393 */ 0x8702, 0x870A, 0x0D34, - /* Array index: 0x0396 */ 0x881F, 0x8823, 0x0D3D, - /* Array index: 0x0399 */ 0x8861, 0x8863, 0x0D42, - /* Array index: 0x039C */ 0x895E, 0x8960, 0x0D45, - /* Array index: 0x039F */ 0x8A0C, 0x8A18, 0x0D48, - /* Array index: 0x03A2 */ 0x8A3A, 0x8A3E, 0x0D55, - /* Array index: 0x03A5 */ 0x8A54, 0x8A56, 0x0D5A, - /* Array index: 0x03A8 */ 0x8A68, 0x8A73, 0x0D5D, - /* Array index: 0x03AB */ 0x8AA0, 0x8AAA, 0x0D69, - /* Array index: 0x03AE */ 0x8AF6, 0x8B04, 0x0D74, - /* Array index: 0x03B1 */ 0x8B58, 0x8B5C, 0x0D83, - /* Array index: 0x03B4 */ 0x8C6A, 0x8C6D, 0x0D88, - /* Array index: 0x03B7 */ 0x8C89, 0x8C8D, 0x0D8C, - /* Array index: 0x03BA */ 0x8C9D, 0x8CA2, 0x0D91, - /* Array index: 0x03BD */ 0x8CA7, 0x8CAC, 0x0D97, - /* Array index: 0x03C0 */ 0x8CB2, 0x8CCA, 0x0D9D, - /* Array index: 0x03C3 */ 0x8CD1, 0x8CD3, 0x0DB6, - /* Array index: 0x03C6 */ 0x8CDE, 0x8CE6, 0x0DB9, - /* Array index: 0x03C9 */ 0x8CF8, 0x8CFD, 0x0DC2, - /* Array index: 0x03CC */ 0x8E1D, 0x8E22, 0x0DC8, - /* Array index: 0x03CF */ 0x8E48, 0x8E4B, 0x0DCE, - /* Array index: 0x03D2 */ 0x8E87, 0x8E8D, 0x0DD2, - /* Array index: 0x03D5 */ 0x8EAA, 0x8EAC, 0x0DD9, - /* Array index: 0x03D8 */ 0x8ECA, 0x8ECF, 0x0DDC, - /* Array index: 0x03DB */ 0x8F12, 0x8F15, 0x0DE2, - /* Array index: 0x03DE */ 0x8F1B, 0x8F1F, 0x0DE6, - /* Array index: 0x03E1 */ 0x8FAD, 0x8FB2, 0x0DEB, - /* Array index: 0x03E4 */ 0x8FC2, 0x8FC6, 0x0DF1, - /* Array index: 0x03E7 */ 0x8FE2, 0x8FED, 0x0DF6, - /* Array index: 0x03EA */ 0x9014, 0x9023, 0x0E02, - /* Array index: 0x03ED */ 0x904A, 0x9063, 0x0E12, - /* Array index: 0x03F0 */ 0x9074, 0x9091, 0x0E2C, - /* Array index: 0x03F3 */ 0x9117, 0x9119, 0x0E4A, - /* Array index: 0x03F6 */ 0x9148, 0x914D, 0x0E4D, - /* Array index: 0x03F9 */ 0x9174, 0x9178, 0x0E53, - /* Array index: 0x03FC */ 0x91C5, 0x91D1, 0x0E58, - /* Array index: 0x03FF */ 0x91D7, 0x91DD, 0x0E65, - /* Array index: 0x0402 */ 0x9237, 0x9240, 0x0E6C, - /* Array index: 0x0405 */ 0x9318, 0x931A, 0x0E76, - /* Array index: 0x0408 */ 0x9320, 0x9322, 0x0E79, - /* Array index: 0x040B */ 0x9394, 0x939A, 0x0E7C, - /* Array index: 0x040E */ 0x93D6, 0x93D8, 0x0E83, - /* Array index: 0x0411 */ 0x947C, 0x947F, 0x0E86, - /* Array index: 0x0414 */ 0x958E, 0x9594, 0x0E8A, - /* Array index: 0x0417 */ 0x95A1, 0x95A9, 0x0E91, - /* Array index: 0x041A */ 0x95C8, 0x95CC, 0x0E9A, - /* Array index: 0x041D */ 0x95D4, 0x95D6, 0x0E9F, - /* Array index: 0x0420 */ 0x964B, 0x964D, 0x0EA2, - /* Array index: 0x0423 */ 0x965D, 0x9664, 0x0EA5, - /* Array index: 0x0426 */ 0x9670, 0x9678, 0x0EAD, - /* Array index: 0x0429 */ 0x9684, 0x9686, 0x0EB6, - /* Array index: 0x042C */ 0x968A, 0x968E, 0x0EB9, - /* Array index: 0x042F */ 0x9698, 0x969C, 0x0EBE, - /* Array index: 0x0432 */ 0x96C0, 0x96CD, 0x0EC3, - /* Array index: 0x0435 */ 0x96E8, 0x96EA, 0x0ED1, - /* Array index: 0x0438 */ 0x970D, 0x9713, 0x0ED4, - /* Array index: 0x043B */ 0x975E, 0x9762, 0x0EDB, - /* Array index: 0x043E */ 0x97FF, 0x9813, 0x0EE0, - /* Array index: 0x0441 */ 0x9837, 0x983B, 0x0EF5, - /* Array index: 0x0444 */ 0x984C, 0x984F, 0x0EFA, - /* Array index: 0x0447 */ 0x986F, 0x9871, 0x0EFE, - /* Array index: 0x044A */ 0x98FC, 0x98FE, 0x0F01, - /* Array index: 0x044D */ 0x993D, 0x993F, 0x0F04, - /* Array index: 0x0450 */ 0x99AC, 0x99AE, 0x0F07, - /* Array index: 0x0453 */ 0x99D0, 0x99D2, 0x0F0A, - /* Array index: 0x0456 */ 0x9ACF, 0x9AD8, 0x0F0D, - /* Array index: 0x0459 */ 0x9AED, 0x9AEF, 0x0F17, - /* Array index: 0x045C */ 0x9B41, 0x9B45, 0x0F1A, - /* Array index: 0x045F */ 0x9B4D, 0x9B51, 0x0F1F, - /* Array index: 0x0462 */ 0x9BAA, 0x9BAE, 0x0F24, - /* Array index: 0x0465 */ 0x9BC8, 0x9BCA, 0x0F29, - /* Array index: 0x0468 */ 0x9ECC, 0x9ED1, 0x0F2C, - /* Array index: 0x046B */ 0x9EDB, 0x9EE0, 0x0F32, - /* Array index: 0x046E */ 0xFE30, 0xFE44, 0x0F38, - /* Array index: 0x0471 */ 0xFE49, 0xFE6B, 0x0F4D, - /* Array index: 0x0474 */ 0xFF01, 0xFF3C, 0x0F70, - /* Array index: 0x0477 */ 0xFF3F, 0xFF5D, 0x0FAC, - /* Ranges content */ - /* Range 0x02C7 - 0x02CB, array index: 0x047A */ - 0x256F,INVALC,0x256D,0x256E,0x2570, - /* Range 0x0391 - 0x03A9, array index: 0x047F */ - 0x2475,0x2476,0x2477,0x2478,0x2479,0x247A,0x247B,0x247C, - 0x247D,0x247E,0x2521,0x2522,0x2523,0x2524,0x2525,0x2526, - 0x2527,INVALC,0x2528,0x2529,0x252A,0x252B,0x252C,0x252D, - 0x252E, - /* Range 0x03B1 - 0x03C9, array index: 0x0498 */ - 0x252F,0x2530,0x2531,0x2532,0x2533,0x2534,0x2535,0x2536, - 0x2537,0x2538,0x2539,0x253A,0x253B,0x253C,0x253D,0x253E, - 0x253F,INVALC,0x2540,0x2541,0x2542,0x2543,0x2544,0x2545, - 0x2546, - /* Range 0x2160 - 0x2169, array index: 0x04B1 */ - 0x242B,0x242C,0x242D,0x242E,0x242F,0x2430,0x2431,0x2432, - 0x2433,0x2434, - /* Range 0x2170 - 0x2179, array index: 0x04BB */ - 0x2635,0x2636,0x2637,0x2638,0x2639,0x263A,0x263B,0x263C, - 0x263D,0x263E, - /* Range 0x2190 - 0x2199, array index: 0x04C5 */ - 0x2258,0x2255,0x2257,0x2256,INVALC,INVALC,0x2259,0x225A, - 0x225C,0x225B, - /* Range 0x221E - 0x2220, array index: 0x04CF */ - 0x223C,0x2249,0x2248, - /* Range 0x2229 - 0x222B, array index: 0x04D2 */ - 0x2245,0x2246,0x224D, - /* Range 0x2400 - 0x2421, array index: 0x04D5 */ - 0x4221,0x4222,0x4223,0x4224,0x4225,0x4226,0x4227,0x4228, - 0x4229,0x422A,0x422B,0x422C,0x422D,0x422E,0x422F,0x4230, - 0x4231,0x4232,0x4233,0x4234,0x4235,0x4236,0x4237,0x4238, - 0x4239,0x423A,0x423B,0x423C,0x423D,0x423E,0x423F,0x4240, - INVALC,0x4241, - /* Range 0x2460 - 0x2469, array index: 0x04F7 */ - 0x2621,0x2622,0x2623,0x2624,0x2625,0x2626,0x2627,0x2628, - 0x2629,0x262A, - /* Range 0x2474 - 0x247D, array index: 0x0501 */ - 0x262B,0x262C,0x262D,0x262E,0x262F,0x2630,0x2631,0x2632, - 0x2633,0x2634, - /* Range 0x256D - 0x2573, array index: 0x050B */ - 0x2340,0x2341,0x2343,0x2342,0x234C,0x234D,0x234E, - /* Range 0x2581 - 0x258F, array index: 0x0512 */ - 0x2324,0x2325,0x2326,0x2327,0x2328,0x2329,0x232A,0x232B, - 0x2332,0x2331,0x2330,0x232F,0x232E,0x232D,0x232C, - /* Range 0x25E2 - 0x25E5, array index: 0x0521 */ - 0x2348,0x2349,0x234B,0x234A, - /* Range 0x2640 - 0x2642, array index: 0x0525 */ - 0x2251,0x2253,0x2252, - /* Range 0x3000 - 0x3003, array index: 0x0528 */ - 0x2121,0x2123,0x2124,0x2171, - /* Range 0x3008 - 0x3015, array index: 0x052C */ - 0x2152,0x2153,0x214E,0x214F,0x2156,0x2157,0x215A,0x215B, - 0x214A,0x214B,0x2265,INVALC,0x2146,0x2147, - /* Range 0x301D - 0x3029, array index: 0x053A */ - 0x2168,0x2169,INVALC,INVALC,0x2435,0x2436,0x2437,0x2438, - 0x2439,0x243A,0x243B,0x243C,0x243D, - /* Range 0x3105 - 0x3129, array index: 0x0547 */ - 0x2547,0x2548,0x2549,0x254A,0x254B,0x254C,0x254D,0x254E, - 0x254F,0x2550,0x2551,0x2552,0x2553,0x2554,0x2555,0x2556, - 0x2557,0x2558,0x2559,0x255A,0x255B,0x255C,0x255D,0x255E, - 0x255F,0x2560,0x2561,0x2562,0x2563,0x2564,0x2565,0x2566, - 0x2567,0x2568,0x2569,0x256A,0x256B, - /* Range 0x339C - 0x339E, array index: 0x056C */ - 0x2270,0x2271,0x2272, - /* Range 0x4E08 - 0x4E19, array index: 0x056F */ - 0x4437,0x4435,0x4438,0x4436,INVALC,0x4462,INVALC,INVALC, - 0x4461,0x4460,INVALC,INVALC,0x4562,0x4561,0x4560,INVALC, - 0x4563,0x455F, - /* Range 0x4E4B - 0x4E53, array index: 0x0581 */ - 0x4466,INVALC,0x4565,0x4567,0x4566,INVALC,INVALC,0x4724, - 0x4725, - /* Range 0x4E5D - 0x4E5F, array index: 0x058A */ - 0x4426,0x443F,0x443E, - /* Range 0x4E91 - 0x4E95, array index: 0x058D */ - 0x4469,0x446B,INVALC,0x446C,0x446A, - /* Range 0x4E9E - 0x4EAE, array index: 0x0592 */ - 0x4B69,0x4F67,INVALC,0x4441,0x446D,INVALC,0x4728,0x472A, - 0x4729,INVALC,0x486C,INVALC,INVALC,0x4B6A,0x4B6B,0x4F68, - 0x4F69, - /* Range 0x4EC0 - 0x4ECD, array index: 0x05A3 */ - 0x446F,0x446E,INVALC,0x4470,0x4476,INVALC,0x4471,0x4472, - INVALC,INVALC,0x4474,0x4475,INVALC,0x4473, - /* Range 0x4ED4 - 0x4ED9, array index: 0x05B1 */ - 0x456A,0x456B,0x456C,0x456D,0x4569,0x4570, - /* Range 0x4EE3 - 0x4EE5, array index: 0x05B7 */ - 0x456E,0x456F,0x4568, - /* Range 0x4F09 - 0x4F11, array index: 0x05BA */ - 0x472C,0x472E,0x473B,INVALC,0x4730,INVALC,0x4733,0x4731, - 0x4732, - /* Range 0x4F46 - 0x4F48, array index: 0x05C3 */ - 0x487E,0x486F,0x4929, - /* Range 0x4F4D - 0x4F60, array index: 0x05C6 */ - 0x486D,0x4925,0x486E,0x4876,0x4877,INVALC,INVALC,0x487C, - 0x4874,INVALC,0x4870,INVALC,0x4927,0x492A,0x4873,0x4922, - 0x4928,0x4871,INVALC,0x4923, - /* Range 0x4FB5 - 0x4FB7, array index: 0x05DA */ - 0x4F6B,0x4F73,0x5021, - /* Range 0x4FC2 - 0x4FC4, array index: 0x05DD */ - 0x4F7B,0x4F72,0x4F7A, - /* Range 0x4FCE - 0x4FD1, array index: 0x05E0 */ - 0x4F7D,0x4F70,0x4F79,0x4F6F, - /* Range 0x4FDD - 0x4FE1, array index: 0x05E4 */ - 0x4F71,0x4F7E,0x4F75,0x4F6E,0x4F6A, - /* Range 0x5009 - 0x501A, array index: 0x05E9 */ - 0x543F,INVALC,0x5436,0x5421,0x5422,INVALC,0x5924,INVALC, - 0x542F,0x542E,INVALC,0x5432,INVALC,0x5429,INVALC,0x5438, - 0x5437,0x542D, - /* Range 0x5025 - 0x502D, array index: 0x05FB */ - 0x5426,0x5425,INVALC,0x5433,0x5428,0x543C,0x543E,INVALC, - 0x543B, - /* Range 0x5074 - 0x5077, array index: 0x0604 */ - 0x5921,0x587E,0x587B,0x5922, - /* Range 0x5096 - 0x509A, array index: 0x0608 */ - 0x5E2F,INVALC,0x5E30,0x5E2C,0x5E31, - /* Range 0x513B - 0x514D, array index: 0x060D */ - 0x7B58,0x7B57,INVALC,INVALC,0x442A,0x4442,0x4478,INVALC, - 0x4477,0x4573,0x4572,0x473E,0x473D,0x473F,0x473C,INVALC, - 0x492C,0x492B,0x492D, - /* Range 0x5159 - 0x516E, array index: 0x0620 */ - 0x2279,INVALC,0x227A,0x5927,0x227C,0x227B,INVALC,INVALC, - 0x227D,0x677E,0x227E,INVALC,0x442B,INVALC,0x4479,0x4740, - 0x4C25,INVALC,0x442C,0x447C,0x447A,0x447B, - /* Range 0x5175 - 0x5178, array index: 0x0636 */ - 0x492E,0x4C27,0x4C26,0x4C28, - /* Range 0x51CB - 0x51CD, array index: 0x063A */ - 0x5447,0x5445,0x5444, - /* Range 0x51F6 - 0x51FA, array index: 0x063D */ - 0x447E,INVALC,0x4579,0x4577,0x4578, - /* Range 0x5206 - 0x520A, array index: 0x0642 */ - 0x4521,0x4522,0x4523,INVALC,0x457A, - /* Range 0x5224 - 0x522A, array index: 0x0647 */ - 0x4932,0x4931,INVALC,INVALC,0x4935,0x4933,0x4934, - /* Range 0x5236 - 0x523B, array index: 0x064E */ - 0x4C31,0x4C2D,0x4C2C,INVALC,0x4C2E,0x4C2B, - /* Range 0x524A - 0x524E, array index: 0x0654 */ - 0x5028,0x502B,0x502A,0x5029,0x5026, - /* Range 0x525B - 0x525D, array index: 0x0659 */ - 0x544B,0x5449,0x544C, - /* Range 0x5287 - 0x528A, array index: 0x065C */ - 0x6C2A,0x6C2B,0x6C2C,0x6C2E, - /* Range 0x52A9 - 0x52AC, array index: 0x0660 */ - 0x4937,0x4938,0x4936,0x4939, - /* Range 0x52D5 - 0x52E6, array index: 0x0664 */ - 0x592F,INVALC,0x5B2B,0x592E,0x592D,INVALC,0x5E3A,INVALC, - 0x5E39,0x5E38,0x6339,INVALC,INVALC,0x633C,0x633D,0x633B, - INVALC,0x633A, - /* Range 0x5315 - 0x5319, array index: 0x0676 */ - 0x4431,0x4527,0x4621,INVALC,0x5932, - /* Range 0x533E - 0x534A, array index: 0x067B */ - 0x5935,0x5933,0x5934,0x4432,INVALC,0x4445,0x243F,0x452B, - INVALC,0x452A,0x4529,0x4625,0x4624, - /* Range 0x5351 - 0x5354, array index: 0x0688 */ - 0x4C38,0x4C35,0x4C37,0x4C36, - /* Range 0x536E - 0x537B, array index: 0x068C */ - 0x4629,0x4628,0x474D,0x474E,INVALC,0x493B,INVALC,0x493C, - INVALC,0x4C3A,0x4C3B,0x4C3C,INVALC,0x5033, - /* Range 0x53C8 - 0x53CD, array index: 0x069A */ - 0x4434,0x4446,0x452F,0x452E,INVALC,0x4530, - /* Range 0x53E2 - 0x53F5, array index: 0x06A0 */ - 0x763B,0x4447,0x462C,0x463B,0x4636,INVALC,0x4631,0x4630, - 0x4637,0x4635,0x462E,0x463C,0x462F,0x462B,0x463A,0x4639, - 0x4638,0x462D,INVALC,0x4634, - /* Range 0x5406 - 0x5412, array index: 0x06B4 */ - 0x475C,INVALC,0x4759,0x474F,0x4752,0x4755,0x4751,0x4758, - 0x475B,0x4750,0x4753,0x4757,0x475D, - /* Range 0x541B - 0x5420, array index: 0x06C1 */ - 0x4949,INVALC,0x493D,0x493F,0x4957,0x4952, - /* Range 0x5429 - 0x542E, array index: 0x06C7 */ - 0x494A,INVALC,0x4956,0x4958,0x493E,0x494F, - /* Range 0x5435 - 0x5443, array index: 0x06CD */ - 0x4950,0x4951,INVALC,0x494E,0x494C,INVALC,0x494D,0x4953, - INVALC,0x4940,INVALC,0x4954,INVALC,0x4948,0x4945, - /* Range 0x5473 - 0x547D, array index: 0x06DC */ - 0x4C40,INVALC,0x4C41,0x4C4E,0x4C47,0x4C43,INVALC,INVALC, - 0x4C46,0x4C4B,0x4C54, - /* Range 0x54A6 - 0x54AC, array index: 0x06E7 */ - 0x503C,0x504A,0x5038,0x5049,0x5041,0x5046,0x5036, - /* Range 0x54BD - 0x54C9, array index: 0x06EE */ - 0x5040,INVALC,0x504B,0x5037,0x5042,0x503F,INVALC,0x5043, - INVALC,INVALC,0x503E,0x5044,0x503A, - /* Range 0x54E5 - 0x54EE, array index: 0x06FB */ - 0x5457,0x5462,INVALC,0x5452,0x545C,0x5461,INVALC,INVALC, - 0x545D,0x5460, - /* Range 0x5555 - 0x5557, array index: 0x0705 */ - 0x5943,0x5941,0x594D, - /* Range 0x5580 - 0x5584, array index: 0x0708 */ - 0x5E3E,INVALC,0x5E44,0x5E4A,0x6143, - /* Range 0x5587 - 0x558B, array index: 0x070D */ - 0x5E48,INVALC,0x5E55,0x5E41,0x5E49, - /* Range 0x5598 - 0x559F, array index: 0x0712 */ - 0x5E43,0x5E57,0x5E50,INVALC,0x5E45,0x5E42,INVALC,0x5E4D, - /* Range 0x55AA - 0x55B3, array index: 0x071A */ - 0x5E46,0x5E56,0x5E52,INVALC,0x5E4C,INVALC,INVALC,0x5E53, - 0x5E4F,0x5E4B, - /* Range 0x55C5 - 0x55C9, array index: 0x0724 */ - 0x634C,0x634D,0x6345,INVALC,0x634F, - /* Range 0x55E1 - 0x55E8, array index: 0x0729 */ - 0x634B,INVALC,0x6347,0x6348,0x634E,0x6342,0x2321,0x6340, - /* Range 0x562E - 0x5636, array index: 0x0731 */ - 0x6C31,0x6C3D,0x6C3E,INVALC,0x6C34,INVALC,0x6C36,INVALC, - 0x6C3C, - /* Range 0x5664 - 0x566C, array index: 0x073A */ - 0x703F,0x7043,INVALC,INVALC,0x7042,0x703E,0x7041,0x703C, - 0x7046, - /* Range 0x568E - 0x5690, array index: 0x0743 */ - 0x7345,0x734A,0x7347, - /* Range 0x56C0 - 0x56C2, array index: 0x0746 */ - 0x7A65,0x7A64,0x7A66, - /* Range 0x56C8 - 0x56CC, array index: 0x0749 */ - 0x7B59,0x7B5B,0x7B5A,INVALC,0x7C34, - /* Range 0x56DA - 0x56E0, array index: 0x074E */ - 0x463F,0x463E,INVALC,0x4760,0x475F,INVALC,0x475E, - /* Range 0x572C - 0x5730, array index: 0x0755 */ - 0x4765,0x4764,INVALC,0x4766,0x4762, - /* Range 0x574D - 0x5751, array index: 0x075A */ - 0x4960,0x4962,0x4965,0x4964,0x495E, - /* Range 0x582F - 0x5835, array index: 0x075F */ - 0x5E59,0x5E5D,0x5E5E,INVALC,INVALC,0x5E5B,0x5959, - /* Range 0x584A - 0x584C, array index: 0x0766 */ - 0x635B,0x635E,0x6359, - /* Range 0x5914 - 0x591C, array index: 0x0769 */ - 0x7A67,0x444A,0x4640,INVALC,INVALC,0x4768,0x4769,INVALC, - 0x4C5F, - /* Range 0x5927 - 0x592E, array index: 0x0772 */ - 0x444B,INVALC,0x4532,0x4534,0x4533,INVALC,0x4535,0x4641, - /* Range 0x5947 - 0x5949, array index: 0x077A */ - 0x4C61,0x4C62,0x4C60, - /* Range 0x594E - 0x595A, array index: 0x077D */ - 0x5058,0x5057,0x5059,0x5056,INVALC,INVALC,0x4C64,0x5055, - INVALC,0x546F,0x5470,INVALC,0x5471, - /* Range 0x5981 - 0x5984, array index: 0x078A */ - 0x4772,0x4771,0x476E,0x476C, - /* Range 0x59A3 - 0x59A5, array index: 0x078E */ - 0x496D,0x4971,0x4974, - /* Range 0x59D0 - 0x59D4, array index: 0x0791 */ - 0x4C6C,0x4C6A,0x4C73,0x4C6F,0x4C67, - /* Range 0x5ABC - 0x5AC2, array index: 0x0796 */ - 0x6365,0x6364,0x6363,INVALC,INVALC,0x6360,0x6367, - /* Range 0x5AD6 - 0x5AD8, array index: 0x079D */ - 0x684A,0x6849,0x684B, - /* Range 0x5B08 - 0x5B0C, array index: 0x07A0 */ - 0x6C4D,0x6C48,INVALC,0x6C4A,0x6C4C, - /* Range 0x5B50 - 0x5B5F, array index: 0x07A5 */ - 0x444D,0x444E,INVALC,0x444F,0x4536,0x4645,INVALC,0x4773, - 0x4774,INVALC,0x4977,0x4978,0x4976,0x4975,INVALC,0x4C75, - /* Range 0x5B85 - 0x5B8C, array index: 0x07B5 */ - 0x4777,INVALC,0x4775,0x4776,0x4778,INVALC,0x497A,0x4979, - /* Range 0x5B97 - 0x5B9C, array index: 0x07BD */ - 0x4C78,0x4C7A,0x4C7C,0x4C79,0x4C7D,0x4C7B, - /* Range 0x5BA2 - 0x5BA6, array index: 0x07C3 */ - 0x506A,0x5067,0x5069,0x506B,0x5068, - /* Range 0x5BB3 - 0x5BB9, array index: 0x07C8 */ - 0x5524,0x5526,0x5528,0x5525,INVALC,0x552A,0x5529, - /* Range 0x5BC2 - 0x5BC7, array index: 0x07CF */ - 0x596D,INVALC,0x596C,0x596B,0x596F,0x596A, - /* Range 0x5BDE - 0x5BF0, array index: 0x07D5 */ - 0x684E,0x6856,INVALC,0x6850,0x6854,INVALC,0x6855,0x6851, - 0x6852,0x684F,0x6853,0x6C50,INVALC,0x6C51,0x6C4F,INVALC, - 0x6C4E,INVALC,0x7051, - /* Range 0x5C07 - 0x5C11, array index: 0x07E8 */ - 0x5972,0x5971,0x5970,0x5E71,0x5E72,INVALC,0x6857,0x7052, - 0x4451,INVALC,0x4537, - /* Range 0x5C37 - 0x5C41, array index: 0x07F3 */ - 0x7353,0x4453,0x4467,0x4539,INVALC,0x4647,INVALC,0x4A22, - 0x4A21,0x497D,0x497E, - /* Range 0x5C4B - 0x5C51, array index: 0x07FE */ - 0x5070,INVALC,0x506F,0x506D,0x506E,0x552E,0x552C, - /* Range 0x5DE1 - 0x5DE8, array index: 0x0805 */ - 0x4B56,0x5A25,INVALC,INVALC,0x4456,0x464A,0x4649,0x4648, - /* Range 0x5DF1 - 0x5DF4, array index: 0x080D */ - 0x4457,0x4458,0x4459,0x453B, - /* Range 0x5E36 - 0x5E38, array index: 0x0811 */ - 0x5A27,0x5A29,0x5A26, - /* Range 0x5E5F - 0x5E63, array index: 0x0814 */ - 0x6C57,INVALC,0x6C58,0x6C56,0x685C, - /* Range 0x5E72 - 0x5E7E, array index: 0x0819 */ - 0x445B,0x464D,0x4821,INVALC,0x477E,INVALC,0x4D31,0x636C, - INVALC,0x453C,0x464E,0x5077,0x5E7D, - /* Range 0x5E95 - 0x5E97, array index: 0x0826 */ - 0x4D35,0x4D36,0x4D33, - /* Range 0x5EB5 - 0x5EB8, array index: 0x0829 */ - 0x5A2D,0x5A2C,0x5A2A,0x5A2B, - /* Range 0x5EC8 - 0x5ECA, array index: 0x082D */ - 0x636E,0x636D,0x5E7E, - /* Range 0x5EDF - 0x5EE3, array index: 0x0830 */ - 0x6C5B,0x6C5E,INVALC,0x6C59,0x6C5D, - /* Range 0x5F12 - 0x5F18, array index: 0x0835 */ - 0x636F,0x445E,0x453E,0x453F,INVALC,0x4651,0x4650, - /* Range 0x5F69 - 0x5F71, array index: 0x083C */ - 0x5A33,0x5D29,0x5A34,0x5A32,0x5F25,INVALC,INVALC,0x6864, - 0x6C60, - /* Range 0x5F7F - 0x5F81, array index: 0x0845 */ - 0x4D3D,0x4D3B,0x4D3C, - /* Range 0x5F85 - 0x5F92, array index: 0x0848 */ - 0x5121,INVALC,0x5124,0x507E,0x5126,0x5122,0x5123,0x5125, - INVALC,INVALC,INVALC,0x5541,0x5540,0x553F, - /* Range 0x5F97 - 0x5F99, array index: 0x0856 */ - 0x5A35,0x5A38,0x5A36, - /* Range 0x5FA8 - 0x5FAE, array index: 0x0859 */ - 0x5F28,0x5F26,0x5F27,INVALC,0x6371,INVALC,0x6372, - /* Range 0x5FD6 - 0x5FD9, array index: 0x0860 */ - 0x4825,0x4A35,0x4A33,0x4824, - /* Range 0x6012 - 0x6016, array index: 0x0864 */ - 0x5127,INVALC,0x4D45,0x4D4A,0x4D48, - /* Range 0x6025 - 0x602B, array index: 0x0869 */ - 0x512A,INVALC,0x4D4C,0x512C,0x4D4D,0x4D49,0x4D4E, - /* Range 0x6062 - 0x6070, array index: 0x0870 */ - 0x5130,0x5543,0x5136,0x5544,INVALC,INVALC,0x512F,0x5548, - 0x5135,0x5134,0x5133,0x5547,INVALC,0x5549,0x512E, - /* Range 0x60B2 - 0x60BD, array index: 0x087F */ - 0x5F2B,INVALC,0x5A42,0x5A47,0x5F2C,INVALC,0x5A4E,INVALC, - INVALC,0x5A46,0x5A49,0x5A44, - /* Range 0x60C5 - 0x60C7, array index: 0x088B */ - 0x5A45,0x5A4C,0x5A50, - /* Range 0x60DF - 0x60E1, array index: 0x088E */ - 0x5A4D,0x5F2D,0x5F2A, - /* Range 0x60F0 - 0x60FB, array index: 0x0891 */ - 0x5F32,0x5F36,INVALC,0x6377,0x5F34,INVALC,0x5F38,INVALC, - INVALC,0x6379,0x5F30,0x5F33, - /* Range 0x610D - 0x610F, array index: 0x089D */ - 0x6425,0x5F37,0x6374, - /* Range 0x611A - 0x611C, array index: 0x08A0 */ - 0x6373,0x6378,0x5F2E, - /* Range 0x6147 - 0x614E, array index: 0x08A3 */ - 0x6866,0x6375,INVALC,INVALC,0x6868,0x637D,0x6421,0x637C, - /* Range 0x6175 - 0x6177, array index: 0x08AB */ - 0x686F,0x6C63,0x6869, - /* Range 0x61C7 - 0x61CD, array index: 0x08AE */ - 0x735E,0x705C,0x735C,0x705B,0x7360,INVALC,0x7058, - /* Range 0x61F5 - 0x6200, array index: 0x08B5 */ - 0x7837,0x7836,0x7835,0x796C,INVALC,0x796D,INVALC,0x7A6A, - INVALC,0x7A6B,0x7B60,0x7C36, - /* Range 0x620A - 0x6216, array index: 0x08C1 */ - 0x4653,INVALC,0x4827,0x4828,0x4826,INVALC,0x4829,0x4A3C, - 0x4A3B,INVALC,INVALC,0x4D51,0x4D50, - /* Range 0x6230 - 0x6236, array index: 0x08CE */ - 0x705D,INVALC,0x7361,0x7643,0x7362,INVALC,0x4542, - /* Range 0x623E - 0x6241, array index: 0x08D5 */ - 0x4D53,0x4D52,0x4D54,0x5137, - /* Range 0x6247 - 0x6254, array index: 0x08D9 */ - 0x5552,0x5A53,0x5F3D,INVALC,0x4543,INVALC,0x445F,0x4544, - INVALC,INVALC,0x4657,0x4656,0x4654,0x4655, - /* Range 0x626D - 0x626F, array index: 0x08E7 */ - 0x4A43,0x4A4C,0x4A4A, - /* Range 0x627C - 0x6280, array index: 0x08EA */ - 0x4A45,INVALC,0x4A46,0x4D55,0x4A40, - /* Range 0x6291 - 0x6298, array index: 0x08EF */ - 0x4A4F,0x4A49,0x4A4E,INVALC,0x4A4D,0x4A3F,0x4A3E,0x4A4B, - /* Range 0x62C4 - 0x62DC, array index: 0x08F7 */ - 0x4D58,INVALC,0x4D70,0x4D68,0x4D62,0x4D56,INVALC,0x4D61, - 0x4D57,0x4D69,0x4D72,INVALC,0x4D66,INVALC,0x4D5C,0x4D5F, - 0x4D60,INVALC,0x4D6E,0x4D6F,0x4D6D,0x4D67,0x4D6B,0x4D5D, - 0x5138, - /* Range 0x62EC - 0x62F4, array index: 0x0910 */ - 0x5144,0x513C,0x513E,0x5143,INVALC,0x5141,INVALC,0x5553, - 0x5146, - /* Range 0x62FC - 0x6302, array index: 0x0919 */ - 0x513B,0x513F,0x5145,0x5555,INVALC,0x513D,0x5148, - /* Range 0x6307 - 0x6309, array index: 0x0920 */ - 0x5140,0x5554,0x513A, - /* Range 0x634C - 0x6350, array index: 0x0923 */ - 0x5565,0x5564,0x5556,0x555C,0x555F, - /* Range 0x6367 - 0x636B, array index: 0x0928 */ - 0x5A5B,0x5A6F,0x5A6E,INVALC,0x5A63, - /* Range 0x63A0 - 0x63AC, array index: 0x092D */ - 0x5A54,0x5A68,0x5A58,0x5F3E,INVALC,0x5A59,INVALC,0x5A55, - 0x5A64,0x5A5F,0x5A5D,INVALC,0x5A69, - /* Range 0x6413 - 0x6417, array index: 0x093A */ - 0x642A,0x6433,INVALC,0x6436,0x6437, - /* Range 0x6478 - 0x647B, array index: 0x093F */ - 0x6875,0x6C79,0x6877,0x687C, - /* Range 0x64A9 - 0x64B3, array index: 0x0943 */ - 0x6D24,INVALC,0x6D28,0x6D2A,0x6D27,0x6D26,INVALC,0x6C7E, - INVALC,0x6C7B,0x6D2D, - /* Range 0x64BB - 0x64CE, array index: 0x094E */ - 0x7061,0x7062,INVALC,0x706B,0x7068,INVALC,0x705F,0x7066, - INVALC,0x7064,0x705E,INVALC,0x7065,INVALC,INVALC,0x7364, - 0x7060,INVALC,0x7067,0x7363, - /* Range 0x64EC - 0x64F4, array index: 0x0962 */ - 0x7369,0x736C,INVALC,INVALC,0x7367,0x736A,0x7645,INVALC, - 0x7644, - /* Range 0x652A - 0x652C, array index: 0x096B */ - 0x7C39,0x7C38,0x7C5F, - /* Range 0x6554 - 0x6559, array index: 0x096E */ - 0x5A7A,0x5A79,0x5A72,0x5A75,0x5A78,0x5A74, - /* Range 0x6574 - 0x6578, array index: 0x0974 */ - 0x706C,0x6D2E,INVALC,0x6D2F,0x6D30, - /* Range 0x65CB - 0x65CF, array index: 0x0979 */ - 0x5B21,0x5B22,INVALC,0x5B23,0x5A7E, - /* Range 0x65E5 - 0x65ED, array index: 0x097E */ - 0x454A,0x4659,INVALC,0x482F,0x482E,INVALC,INVALC,0x4830, - 0x4831, - /* Range 0x6613 - 0x6615, array index: 0x0987 */ - 0x4D78,0x4D77,0x4E21, - /* Range 0x6624 - 0x6628, array index: 0x098A */ - 0x5156,0x514E,INVALC,0x5151,0x5154, - /* Range 0x6641 - 0x6645, array index: 0x098F */ - 0x5572,0x556B,0x556E,INVALC,0x5571, - /* Range 0x666E - 0x6670, array index: 0x0994 */ - 0x5F5B,0x5F5F,0x5F5C, - /* Range 0x6687 - 0x6689, array index: 0x0997 */ - 0x643E,0x643F,0x643D, - /* Range 0x6696 - 0x6698, array index: 0x099A */ - 0x6440,0x643C,0x6442, - /* Range 0x66F0 - 0x66F9, array index: 0x099D */ - 0x454B,INVALC,0x4832,0x4833,0x4A55,INVALC,INVALC,0x5157, - 0x5573,0x5B2A, - /* Range 0x66FC - 0x6700, array index: 0x09A7 */ - 0x5937,INVALC,0x5F64,0x5F65,0x5E32, - /* Range 0x6726 - 0x672E, array index: 0x09AC */ - 0x764D,0x7972,0x454D,INVALC,0x465C,0x465D,0x465B,0x465E, - 0x465A, - /* Range 0x674E - 0x6757, array index: 0x09B5 */ - 0x4A57,0x4A58,0x4A59,0x4A5A,INVALC,0x4A61,INVALC,INVALC, - 0x4A5C,0x4A62, - /* Range 0x675C - 0x6760, array index: 0x09BF */ - 0x4A5B,INVALC,0x4A5D,0x4A56,0x4A60, - /* Range 0x676D - 0x6777, array index: 0x09C4 */ - 0x4E26,INVALC,0x4E30,0x4E31,0x4E29,0x4E3B,0x4E2B,INVALC, - 0x4E36,INVALC,0x4E2C, - /* Range 0x67CF - 0x67D4, array index: 0x09CF */ - 0x5169,0x515C,0x5164,0x5170,0x5159,0x515B, - /* Range 0x67F1 - 0x67F5, array index: 0x09D5 */ - 0x515A,INVALC,0x516B,0x5627,0x5160, - /* Range 0x683C - 0x6848, array index: 0x09DA */ - 0x562A,0x5626,INVALC,INVALC,0x5629,0x5630,0x557D,0x562B, - INVALC,0x562D,0x557A,INVALC,0x5579, - /* Range 0x6850 - 0x6854, array index: 0x09E7 */ - 0x5628,0x5625,INVALC,0x557B,0x557E, - /* Range 0x687F - 0x6886, array index: 0x09EC */ - 0x5B32,INVALC,0x5B2D,0x5B42,0x5B38,INVALC,0x5B3C,0x5B3B, - /* Range 0x68AD - 0x68B5, array index: 0x09F4 */ - 0x5B3A,INVALC,0x5B2E,0x5B37,0x5B34,INVALC,0x5622,INVALC, - 0x5B31, - /* Range 0x68F9 - 0x68FB, array index: 0x09FD */ - 0x5F72,0x5F68,0x5F7E, - /* Range 0x695A - 0x6960, array index: 0x0A00 */ - 0x6447,0x6457,INVALC,0x6455,0x6451,INVALC,0x6449, - /* Range 0x69CB - 0x69CD, array index: 0x0A07 */ - 0x692C,0x6935,0x6933, - /* Range 0x6A38 - 0x6A3A, array index: 0x0A0A */ - 0x7074,0x7079,0x7075, - /* Range 0x6B5F - 0x6B67, array index: 0x0A0D */ - 0x7656,INVALC,0x7B63,0x454F,0x465F,0x483A,0x4A63,0x4E3D, - 0x4E3E, - /* Range 0x6B77 - 0x6B7B, array index: 0x0A16 */ - 0x7125,0x7657,0x4550,INVALC,0x483B, - /* Range 0x6BD2 - 0x6BD4, array index: 0x0A1B */ - 0x5175,0x645C,0x4552, - /* Range 0x6C0F - 0x6C13, array index: 0x0A1E */ - 0x4554,0x4662,0x4661,INVALC,0x4E40, - /* Range 0x6C23 - 0x6C2F, array index: 0x0A23 */ - 0x5634,0x5638,INVALC,0x5637,0x5635,0x5636,INVALC,INVALC, - 0x5B47,0x602A,INVALC,0x6028,0x6029, - /* Range 0x6C3E - 0x6C42, array index: 0x0A30 */ - 0x4666,INVALC,0x4665,0x4664,0x4A65, - /* Range 0x6C5B - 0x6C61, array index: 0x0A35 */ - 0x4845,INVALC,0x483D,0x4A66,0x4840,0x4841,0x4844, - /* Range 0x6C7D - 0x6C8D, array index: 0x0A3C */ - 0x4A75,0x4A78,INVALC,INVALC,0x4A68,0x4B21,0x4A76,INVALC, - 0x4A6B,0x4A7A,INVALC,0x4A69,0x4A6A,INVALC,INVALC,0x4A71, - 0x4A7C, - /* Range 0x6CB8 - 0x6CC5, array index: 0x0A4D */ - 0x4E50,0x4E52,INVALC,0x4E59,0x4E4B,0x4E49,0x4E4A,0x4E58, - INVALC,0x4E53,INVALC,INVALC,0x4E51,0x4E56, - /* Range 0x6CD3 - 0x6CD7, array index: 0x0A5B */ - 0x4E4F,INVALC,0x4E4E,0x4E60,0x4E55, - /* Range 0x6CE0 - 0x6CE5, array index: 0x0A60 */ - 0x4E61,0x4E5A,0x4E4C,0x4E42,INVALC,0x4E47, - /* Range 0x6CEF - 0x6CF5, array index: 0x0A66 */ - 0x4E5E,0x5639,0x4E57,INVALC,0x4E44,INVALC,0x5229, - /* Range 0x6D27 - 0x6D2B, array index: 0x0A6D */ - 0x522B,INVALC,0x522D,0x517B,0x5231, - /* Range 0x6D35 - 0x6D3E, array index: 0x0A72 */ - 0x522F,0x5227,INVALC,0x522C,0x522A,INVALC,0x5224,INVALC, - 0x5225,0x5226, - /* Range 0x6D77 - 0x6D79, array index: 0x0A7C */ - 0x5640,0x563F,0x564B, - /* Range 0x6D85 - 0x6D8E, array index: 0x0A7F */ - 0x564C,INVALC,0x563D,0x563C,0x5644,0x564A,INVALC,0x5649, - INVALC,0x5B48, - /* Range 0x6D93 - 0x6D95, array index: 0x0A89 */ - 0x5642,0x564E,0x563B, - /* Range 0x6DC4 - 0x6DC7, array index: 0x0A8C */ - 0x5B69,0x5B5D,0x5B68,0x5B53, - /* Range 0x6DD8 - 0x6DDA, array index: 0x0A90 */ - 0x5B63,0x5B4B,0x5B61, - /* Range 0x6DE8 - 0x6DEE, array index: 0x0A93 */ - 0x5B67,INVALC,0x5B64,0x5B62,0x5B6B,INVALC,0x5B66, - /* Range 0x6DF7 - 0x6DFB, array index: 0x0A9A */ - 0x5B5B,INVALC,0x5B59,0x5B51,0x5B50, - /* Range 0x6E19 - 0x6E26, array index: 0x0A9F */ - 0x6047,0x5B5F,0x6035,INVALC,0x6043,INVALC,INVALC,0x6032, - 0x602E,INVALC,0x6034,0x6038,0x6033,0x603C, - /* Range 0x6ED1 - 0x6ED5, array index: 0x0AAD */ - 0x646C,INVALC,0x6460,0x6470,0x6D5A, - /* Range 0x6EFE - 0x6F02, array index: 0x0AB2 */ - 0x693E,0x6948,INVALC,0x6955,0x6946, - /* Range 0x6F13 - 0x6F15, array index: 0x0AB7 */ - 0x693F,0x693D,0x694F, - /* Range 0x6F29 - 0x6F2C, array index: 0x0ABA */ - 0x6941,0x6953,0x6950,0x6944, - /* Range 0x6F2F - 0x6F33, array index: 0x0ABE */ - 0x6951,INVALC,0x694B,0x694D,0x693C, - /* Range 0x6F6D - 0x6F70, array index: 0x0AC3 */ - 0x6D50,0x6D53,0x6D5B,0x6D56, - /* Range 0x6FC0 - 0x6FC3, array index: 0x0AC7 */ - 0x712F,0x712C,0x7127,0x712A, - /* Range 0x6FDF - 0x6FE1, array index: 0x0ACB */ - 0x7424,0x7425,0x742C, - /* Range 0x6FEB - 0x6FF1, array index: 0x0ACE */ - 0x7428,0x742B,INVALC,0x742F,0x7429,0x7430,0x7423, - /* Range 0x70AB - 0x70AF, array index: 0x0AD5 */ - 0x5232,0x5235,0x5237,0x5239,0x5236, - /* Range 0x7164 - 0x7169, array index: 0x0ADA */ - 0x6477,0x647E,0x647C,0x6479,0x6523,0x6476, - /* Range 0x71E5 - 0x71E7, array index: 0x0AE0 */ - 0x7435,0x7434,0x7431, - /* Range 0x71EC - 0x71EE, array index: 0x0AE3 */ - 0x7437,0x7436,0x7433, - /* Range 0x7235 - 0x723E, array index: 0x0AE6 */ - 0x743A,0x4558,INVALC,0x4E69,0x5655,0x6525,0x4559,INVALC, - 0x5B73,0x695F, - /* Range 0x7246 - 0x7248, array index: 0x0AF0 */ - 0x743B,0x455A,0x4E6A, - /* Range 0x725D - 0x7262, array index: 0x0AF3 */ - 0x484A,INVALC,0x4849,0x4B28,0x4B27,0x4B26, - /* Range 0x72F7 - 0x72FD, array index: 0x0AF9 */ - 0x565B,0x565A,0x5658,INVALC,INVALC,0x5657,0x5659, - /* Range 0x7377 - 0x737B, array index: 0x0B00 */ - 0x7664,0x784B,INVALC,0x784C,0x7978, - /* Range 0x7433 - 0x7436, array index: 0x0B05 */ - 0x605F,0x6064,0x6062,0x6063, - /* Range 0x7459 - 0x745F, array index: 0x0B09 */ - 0x6532,0x652C,0x6533,0x6534,INVALC,0x652F,0x652E, - /* Range 0x74A6 - 0x74A9, array index: 0x0B10 */ - 0x7440,0x7666,0x7441,0x743E, - /* Range 0x74E0 - 0x74E6, array index: 0x0B14 */ - 0x5C24,INVALC,0x7147,0x784F,0x7B67,INVALC,0x466B, - /* Range 0x7525 - 0x7533, array index: 0x0B1B */ - 0x6069,0x606A,INVALC,0x466E,0x466F,INVALC,0x4B2D,0x4B2C, - 0x524A,INVALC,INVALC,0x4670,0x4671,0x4672,0x4673, - /* Range 0x754B - 0x754F, array index: 0x0B2A */ - 0x524E,0x524C,INVALC,0x524D,0x524B, - /* Range 0x7559 - 0x755D, array index: 0x0B2F */ - 0x5667,0x5666,INVALC,0x5665,0x5664, - /* Range 0x75A2 - 0x75A5, array index: 0x0B34 */ - 0x5252,0x5253,0x5250,0x5251, - /* Range 0x75B8 - 0x75BE, array index: 0x0B38 */ - 0x5671,0x566F,INVALC,INVALC,0x566E,0x566D,0x5668, - /* Range 0x75F0 - 0x75F4, array index: 0x0B3F */ - 0x6538,0x653B,0x653A,0x653F,0x653E, - /* Range 0x75FF - 0x7601, array index: 0x0B44 */ - 0x653D,0x6537,0x6539, - /* Range 0x761F - 0x7629, array index: 0x0B47 */ - 0x6D6E,0x6D6C,0x6D71,0x6D72,INVALC,0x6D6F,INVALC,0x6D70, - 0x696B,INVALC,0x6D6D, - /* Range 0x767B - 0x767E, array index: 0x0B52 */ - 0x6074,0x6075,0x4675,0x484B, - /* Range 0x7684 - 0x7688, array index: 0x0B56 */ - 0x4E7B,INVALC,0x5255,0x5256,0x5257, - /* Range 0x76C2 - 0x76CE, array index: 0x0B5B */ - 0x4E7C,0x525A,INVALC,0x525B,0x5259,INVALC,0x5258,INVALC, - 0x5674,INVALC,INVALC,0x5675,0x5676, - /* Range 0x76DB - 0x76E7, array index: 0x0B68 */ - 0x5C36,0x6079,INVALC,0x6540,0x6541,INVALC,0x6970,INVALC, - 0x6971,0x6D75,0x714E,INVALC,0x714D, - /* Range 0x7736 - 0x773E, array index: 0x0B75 */ - 0x5C3A,0x5C37,0x5C3B,INVALC,0x5C3C,INVALC,0x5C39,INVALC, - 0x5C38, - /* Range 0x7761 - 0x776C, array index: 0x0B7E */ - 0x6975,0x654D,0x6546,INVALC,0x654B,0x6544,INVALC,0x654C, - INVALC,0x6548,0x6543,0x6549, - /* Range 0x779E - 0x77A0, array index: 0x0B8A */ - 0x7150,0x7151,0x714F, - /* Range 0x77BB - 0x77BF, array index: 0x0B8D */ - 0x766E,0x766F,0x766C,INVALC,0x766D, - /* Range 0x77DA - 0x77DC, array index: 0x0B92 */ - 0x7D33,0x4679,0x5264, - /* Range 0x77ED - 0x77EF, array index: 0x0B95 */ - 0x607B,0x654E,0x744C, - /* Range 0x792A - 0x792C, array index: 0x0B98 */ - 0x797D,0x7A21,0x797E, - /* Range 0x7946 - 0x7949, array index: 0x0B9B */ - 0x5269,0x526C,0x526B,0x526A, - /* Range 0x7955 - 0x7957, array index: 0x0B9F */ - 0x5729,0x572D,0x5730, - /* Range 0x795D - 0x7960, array index: 0x0BA2 */ - 0x572F,0x572E,0x572C,0x572B, - /* Range 0x798D - 0x798F, array index: 0x0BA6 */ - 0x697E,0x697C,0x697D, - /* Range 0x79B9 - 0x79C1, array index: 0x0BA9 */ - 0x526D,0x526E,INVALC,INVALC,0x655D,0x467D,0x4B35,0x4B34, - 0x4B33, - /* Range 0x79E3 - 0x79E9, array index: 0x0BB2 */ - 0x5733,0x5732,INVALC,0x5736,0x5734,INVALC,0x5737, - /* Range 0x7A1C - 0x7A20, array index: 0x0BB9 */ - 0x655E,INVALC,0x6563,0x6562,0x6560, - /* Range 0x7A3B - 0x7A40, array index: 0x0BBE */ - 0x6E2A,0x6E26,0x6E28,INVALC,0x6E25,0x6E27, - /* Range 0x7A4B - 0x7A4E, array index: 0x0BC4 */ - 0x715C,0x715B,0x7158,0x7159, - /* Range 0x7A60 - 0x7A62, array index: 0x0BC8 */ - 0x7674,0x7672,0x7673, - /* Range 0x7A95 - 0x7A98, array index: 0x0BCB */ - 0x5C45,0x6128,0x6127,0x6126, - /* Range 0x7B4D - 0x7B56, array index: 0x0BCF */ - 0x6131,INVALC,0x6133,0x612E,0x6134,0x612F,INVALC,0x6130, - INVALC,0x612C, - /* Range 0x7C3D - 0x7C40, array index: 0x0BD9 */ - 0x785C,0x7859,0x785A,0x785E, - /* Range 0x7C5F - 0x7C65, array index: 0x0BDD */ - 0x7B6D,0x7B6C,INVALC,INVALC,0x7C3F,0x7C3E,0x7C40, - /* Range 0x7CDC - 0x7CE2, array index: 0x0BE4 */ - 0x745D,0x7462,0x745E,0x7460,0x745C,INVALC,0x745F, - /* Range 0x7D02 - 0x7D0D, array index: 0x0BEB */ - 0x5277,INVALC,0x527C,0x5278,0x527D,0x527B,INVALC,0x527A, - 0x5742,0x5741,INVALC,0x574A, - /* Range 0x7D17 - 0x7D22, array index: 0x0BF7 */ - 0x5740,INVALC,0x574B,0x5748,0x574C,0x5749,INVALC,INVALC, - INVALC,0x5743,0x573F,0x5744, - /* Range 0x7D2E - 0x7D33, array index: 0x0C03 */ - 0x5C54,0x5C5B,0x5C58,0x5C5E,0x5C5D,0x5C59, - /* Range 0x7D40 - 0x7D46, array index: 0x0C09 */ - 0x5C57,INVALC,0x5C5C,0x5C52,0x5C5A,INVALC,0x5C51, - /* Range 0x7D6E - 0x7D73, array index: 0x0C10 */ - 0x613C,INVALC,0x6141,0x5C53,0x613D,0x6142, - /* Range 0x7DAC - 0x7DB5, array index: 0x0C16 */ - 0x6A47,0x6A44,INVALC,INVALC,0x6A36,0x6A3E,0x6A3D,INVALC, - 0x6A3C,0x6A42, - /* Range 0x7DBA - 0x7DBF, array index: 0x0C20 */ - 0x6A3F,0x6A35,INVALC,0x6A38,0x6A39,0x6A41, - /* Range 0x7DD8 - 0x7DE0, array index: 0x0C26 */ - 0x6E3B,0x6E44,0x6E40,INVALC,INVALC,0x6E3D,0x6E41,INVALC, - 0x6E37, - /* Range 0x7E08 - 0x7E0A, array index: 0x0C2F */ - 0x716A,0x716F,0x7168, - /* Range 0x7E2E - 0x7E48, array index: 0x0C32 */ - 0x7463,0x7473,INVALC,0x746B,0x7467,INVALC,0x746E,0x7471, - INVALC,0x7466,INVALC,0x746F,INVALC,INVALC,INVALC,0x746A, - 0x7464,0x7472,INVALC,0x746D,INVALC,0x7468,INVALC,0x746C, - 0x7465,INVALC,0x7470, - /* Range 0x7E69 - 0x7E6D, array index: 0x0C4D */ - 0x7862,0x7863,0x785F,INVALC,0x7860, - /* Range 0x7F88 - 0x7F8E, array index: 0x0C52 */ - 0x7C65,INVALC,0x4850,0x4F2E,0x4F2D,INVALC,0x5321, - /* Range 0x7FDF - 0x7FE1, array index: 0x0C59 */ - 0x6A4B,0x6A49,0x6A4A, - /* Range 0x8000 - 0x8006, array index: 0x0C5C */ - 0x7A2E,0x4852,INVALC,0x4853,0x5753,0x4F2F,0x5752, - /* Range 0x800B - 0x8012, array index: 0x0C63 */ - 0x6146,0x4854,0x5324,INVALC,INVALC,0x5323,0x5325,0x4855, - /* Range 0x8015 - 0x8019, array index: 0x0C6B */ - 0x5755,INVALC,0x5757,0x5754,0x5756, - /* Range 0x806F - 0x8077, array index: 0x0C70 */ - 0x747A,0x7479,0x7477,0x7478,0x747B,INVALC,INVALC,0x772B, - 0x772A, - /* Range 0x807D - 0x807F, array index: 0x0C79 */ - 0x7B6F,0x7B6E,0x4857, - /* Range 0x8084 - 0x808C, array index: 0x0C7C */ - 0x657E,0x6148,0x657D,0x6A4E,INVALC,0x4858,INVALC,0x4859, - 0x485A, - /* Range 0x80A9 - 0x80AB, array index: 0x0C85 */ - 0x4F36,0x4F38,0x4F35, - /* Range 0x80DA - 0x80DE, array index: 0x0C88 */ - 0x5329,0x532E,INVALC,0x5332,0x5330, - /* Range 0x80ED - 0x80F4, array index: 0x0C8D */ - 0x575E,INVALC,0x5767,0x575C,0x575A,INVALC,0x5762,0x575F, - /* Range 0x8150 - 0x8155, array index: 0x0C95 */ - 0x6A4F,0x614C,INVALC,0x6152,0x614A,0x6149, - /* Range 0x8170 - 0x817A, array index: 0x0C9B */ - 0x6622,0x6621,INVALC,0x6626,0x6153,INVALC,INVALC,INVALC, - 0x6623,0x6628,0x6629, - /* Range 0x8198 - 0x819D, array index: 0x0CA6 */ - 0x6E51,INVALC,0x6E50,0x6E4C,0x6E4D,0x6E4E, - /* Range 0x81BD - 0x81C3, array index: 0x0CAC */ - 0x7524,0x7526,0x7523,0x7522,INVALC,0x7521,0x747D, - /* Range 0x81FA - 0x8202, array index: 0x0CB3 */ - 0x6A57,0x717A,0x485E,INVALC,0x4F3B,INVALC,0x576A,INVALC, - 0x5C6F, - /* Range 0x8205 - 0x820D, array index: 0x0CBC */ - 0x662B,INVALC,0x6A58,0x717B,0x7528,0x772E,INVALC,0x485F, - 0x4F3C, - /* Range 0x821B - 0x821F, array index: 0x0CC5 */ - 0x4860,0x6155,INVALC,0x6A5A,0x4861, - /* Range 0x8228 - 0x822C, array index: 0x0CCA */ - 0x576E,INVALC,0x576C,0x576D,0x576F, - /* Range 0x8235 - 0x8239, array index: 0x0CCF */ - 0x5C70,0x5C72,0x5C71,INVALC,0x5C73, - /* Range 0x826E - 0x8272, array index: 0x0CD4 */ - 0x4862,0x4B40,INVALC,0x7529,0x4863, - /* Range 0x82AC - 0x82BE, array index: 0x0CD9 */ - 0x4F45,0x4F40,INVALC,0x4F47,0x4F4A,0x4F44,INVALC,0x4F3D, - INVALC,INVALC,INVALC,0x4F4C,0x4F48,0x4F43,INVALC,0x5770, - INVALC,0x4F41,0x4F4B, - /* Range 0x82D1 - 0x82D4, array index: 0x0CEC */ - 0x5345,0x533F,0x5347,0x5344, - /* Range 0x82DB - 0x82DF, array index: 0x0CF0 */ - 0x5339,0x5343,INVALC,0x5346,0x5348, - /* Range 0x82E3 - 0x82E7, array index: 0x0CF5 */ - 0x5338,INVALC,0x533C,0x533A,0x5335, - /* Range 0x8301 - 0x8306, array index: 0x0CFA */ - 0x5342,0x533D,0x5336,0x533B,0x5337,0x534A, - /* Range 0x8331 - 0x8339, array index: 0x0D00 */ - 0x5822,0x577B,INVALC,0x5779,0x5778,0x577D,INVALC,0x5775, - 0x577C, - /* Range 0x83EF - 0x83F4, array index: 0x0D09 */ - 0x615E,0x6163,0x615F,0x6167,INVALC,0x6160, - /* Range 0x840A - 0x840E, array index: 0x0D0F */ - 0x6162,0x615C,0x6164,0x6159,0x616A, - /* Range 0x8469 - 0x846D, array index: 0x0D14 */ - 0x663B,INVALC,0x6633,0x6635,0x663C, - /* Range 0x84C9 - 0x84CB, array index: 0x0D19 */ - 0x6A5C,0x6A6B,0x6A64, - /* Range 0x8548 - 0x854A, array index: 0x0D1C */ - 0x7222,0x7226,0x717E, - /* Range 0x8568 - 0x856A, array index: 0x0D1F */ - 0x7223,0x7224,0x7228, - /* Range 0x85A6 - 0x85AA, array index: 0x0D22 */ - 0x7535,INVALC,0x7533,0x7730,0x752A, - /* Range 0x85F7 - 0x85FB, array index: 0x0D27 */ - 0x7870,INVALC,0x7A32,0x7A34,0x7A31, - /* Range 0x865B - 0x865F, array index: 0x0D2C */ - 0x6170,0x663F,INVALC,0x663E,0x6640, - /* Range 0x8679 - 0x867B, array index: 0x0D31 */ - 0x534C,0x534E,0x534D, - /* Range 0x8702 - 0x870A, array index: 0x0D34 */ - 0x6648,0x6649,INVALC,INVALC,0x664A,0x6644,0x6643,INVALC, - 0x664B, - /* Range 0x881F - 0x8823, array index: 0x0D3D */ - 0x7B27,INVALC,0x7B26,0x7B25,0x7B24, - /* Range 0x8861 - 0x8863, array index: 0x0D42 */ - 0x722F,0x7C68,0x4868, - /* Range 0x895E - 0x8960, array index: 0x0D45 */ - 0x7879,0x7877,0x7876, - /* Range 0x8A0C - 0x8A18, array index: 0x0D48 */ - 0x5837,INVALC,0x5836,0x583D,0x5835,0x583E,INVALC,0x583B, - INVALC,0x5838,0x583C,0x583A,0x5834, - /* Range 0x8A3A - 0x8A3E, array index: 0x0D55 */ - 0x622C,0x6221,0x6225,INVALC,0x666B, - /* Range 0x8A54 - 0x8A56, array index: 0x0D5A */ - 0x6227,0x6223,0x622E, - /* Range 0x8A68 - 0x8A73, array index: 0x0D5D */ - 0x666C,0x665D,INVALC,0x6659,0x6668,0x6665,0x6667,INVALC, - 0x665E,0x6663,0x665A,0x665B, - /* Range 0x8AA0 - 0x8AAA, array index: 0x0D69 */ - 0x6662,0x6B26,INVALC,0x6B24,0x6B28,0x6B2A,0x6B21,0x6B2F, - 0x6B2B,INVALC,0x6B29, - /* Range 0x8AF6 - 0x8B04, array index: 0x0D74 */ - 0x7245,0x7242,0x6E7A,INVALC,0x7238,INVALC,0x7246,INVALC, - 0x723F,INVALC,0x723B,0x7240,0x7241,INVALC,0x754E, - /* Range 0x8B58 - 0x8B5C, array index: 0x0D83 */ - 0x787C,0x7924,0x787E,INVALC,0x787B, - /* Range 0x8C6A - 0x8C6D, array index: 0x0D88 */ - 0x6B30,0x7247,0x6F29,0x7248, - /* Range 0x8C89 - 0x8C8D, array index: 0x0D8C */ - 0x666F,0x666E,INVALC,0x6B32,0x6B31, - /* Range 0x8C9D - 0x8CA2, array index: 0x0D91 */ - 0x4B4A,0x5356,INVALC,0x5357,0x5842,0x5843, - /* Range 0x8CA7 - 0x8CAC, array index: 0x0D97 */ - 0x5D4E,0x5D4C,0x5D49,0x5D4D,0x5D4B,0x5D4A, - /* Range 0x8CB2 - 0x8CCA, array index: 0x0D9D */ - 0x6674,0x6233,0x6238,INVALC,0x623A,0x6239,0x623C,INVALC, - INVALC,0x6236,0x6232,0x6234,INVALC,0x623B,0x6237,0x6235, - 0x6676,0x6675,0x6673,0x6677,INVALC,0x6671,0x6672,INVALC, - 0x6670, - /* Range 0x8CD1 - 0x8CD3, array index: 0x0DB6 */ - 0x6B34,0x6B35,0x6B33, - /* Range 0x8CDE - 0x8CE6, array index: 0x0DB9 */ - 0x6F2B,INVALC,0x6F2A,0x6F34,0x6F30,0x6F31,0x6F2D,INVALC, - 0x6F2C, - /* Range 0x8CF8 - 0x8CFD, array index: 0x0DC2 */ - 0x7556,INVALC,0x7553,0x7557,0x7555,0x7554, - /* Range 0x8E1D - 0x8E22, array index: 0x0DC8 */ - 0x6F3A,0x6F40,0x6F3E,INVALC,0x6F3F,0x6F3B, - /* Range 0x8E48 - 0x8E4B, array index: 0x0DCE */ - 0x755B,0x7559,0x755C,0x755A, - /* Range 0x8E87 - 0x8E8D, array index: 0x0DD2 */ - 0x7929,INVALC,0x7A46,0x7B2F,0x7B31,INVALC,0x7B30, - /* Range 0x8EAA - 0x8EAC, array index: 0x0DD9 */ - 0x7D3B,0x4B4E,0x5845, - /* Range 0x8ECA - 0x8ECF, array index: 0x0DDC */ - 0x4B4F,0x4F51,0x535C,0x535B,INVALC,0x5848, - /* Range 0x8F12 - 0x8F15, array index: 0x0DE2 */ - 0x6B3B,0x6B3D,0x6B3A,0x6B3C, - /* Range 0x8F1B - 0x8F1F, array index: 0x0DE6 */ - 0x6F43,0x6F48,0x6F42,0x6F49,0x6F44, - /* Range 0x8FAD - 0x8FB2, array index: 0x0DEB */ - 0x7930,0x7A29,0x7B33,0x4B51,0x5849,0x6729, - /* Range 0x8FC2 - 0x8FC6, array index: 0x0DF1 */ - 0x4B52,INVALC,0x4B55,0x4B54,0x4B53, - /* Range 0x8FE2 - 0x8FED, array index: 0x0DF6 */ - 0x535F,INVALC,0x5364,0x5361,0x535E,INVALC,0x5365,INVALC, - 0x5360,0x5363,INVALC,0x5362, - /* Range 0x9014 - 0x9023, array index: 0x0E02 */ - 0x5D64,0x5D5D,0x5D62,0x5D58,INVALC,0x5D55,0x5D57,0x5D63, - INVALC,0x5D5B,0x5D5E,0x5D5A,0x5D5F,INVALC,0x5D61,0x5D59, - /* Range 0x904A - 0x9063, array index: 0x0E12 */ - 0x672B,0x672A,INVALC,0x6735,0x6734,0x6733,0x6731,0x6736, - INVALC,0x672C,0x672E,0x6730,INVALC,INVALC,0x6B40,0x6B43, - INVALC,0x6B47,0x6B41,0x6B46,0x6B44,INVALC,0x6B3F,INVALC, - 0x6B45,0x6B42, - /* Range 0x9074 - 0x9091, array index: 0x0E2C */ - 0x7258,0x7257,INVALC,0x6F4F,0x7259,INVALC,0x725C,INVALC, - 0x725B,0x7563,INVALC,0x7562,0x7567,0x7565,0x7566,0x774E, - 0x7564,INVALC,INVALC,0x774D,0x774F,INVALC,0x7931,0x7932, - INVALC,INVALC,INVALC,0x7C4A,0x7C49,0x4B57, - /* Range 0x9117 - 0x9119, array index: 0x0E4A */ - 0x673A,0x6B49,0x6B48, - /* Range 0x9148 - 0x914D, array index: 0x0E4D */ - 0x7B7A,0x4B5C,0x536B,0x536A,0x585A,0x5859, - /* Range 0x9174 - 0x9178, array index: 0x0E53 */ - 0x6B4E,0x6B4B,INVALC,0x6B4D,0x6B4C, - /* Range 0x91C5 - 0x91D1, array index: 0x0E58 */ - 0x7D3C,0x4B5D,0x4F59,INVALC,0x673E,INVALC,0x7A4B,0x4B5E, - 0x536C,0x5D69,0x6258,0x7752,0x4F5A, - /* Range 0x91D7 - 0x91DD, array index: 0x0E65 */ - 0x585D,0x585B,0x585F,INVALC,INVALC,0x585E,0x585C, - /* Range 0x9237 - 0x9240, array index: 0x0E6C */ - 0x673F,0x6741,0x674D,INVALC,INVALC,INVALC,0x6742,0x6744, - 0x674E,0x6743, - /* Range 0x9318 - 0x931A, array index: 0x0E76 */ - 0x7573,0x726E,0x7268, - /* Range 0x9320 - 0x9322, array index: 0x0E79 */ - 0x725F,0x726B,0x7264, - /* Range 0x9394 - 0x939A, array index: 0x0E7C */ - 0x7753,INVALC,0x7755,0x775D,0x775B,INVALC,0x775C, - /* Range 0x93D6 - 0x93D8, array index: 0x0E83 */ - 0x793C,0x7941,0x793F, - /* Range 0x947C - 0x947F, array index: 0x0E86 */ - 0x7D3F,0x7D3D,0x7D3E,0x7D44, - /* Range 0x958E - 0x9594, array index: 0x0E8A */ - 0x6268,0x6263,INVALC,0x6265,0x6267,0x6266,0x6262, - /* Range 0x95A1 - 0x95A9, array index: 0x0E91 */ - 0x6B5B,INVALC,0x6B5E,0x6B60,0x6B5F,INVALC,INVALC,0x6B5C, - 0x6B5D, - /* Range 0x95C8 - 0x95CC, array index: 0x0E9A */ - 0x757D,INVALC,0x757A,0x757B,0x757C, - /* Range 0x95D4 - 0x95D6, array index: 0x0E9F */ - 0x775E,0x7761,0x775F, - /* Range 0x964B - 0x964D, array index: 0x0EA2 */ - 0x536F,0x5370,0x5371, - /* Range 0x965D - 0x9664, array index: 0x0EA5 */ - 0x5865,0x5868,INVALC,INVALC,0x5863,0x5861,0x5862,0x5866, - /* Range 0x9670 - 0x9678, array index: 0x0EAD */ - 0x5D75,INVALC,0x6270,0x5D73,0x5D76,0x5D72,0x5D77,0x5D78, - 0x5D74, - /* Range 0x9684 - 0x9686, array index: 0x0EB6 */ - 0x6271,0x626D,0x626E, - /* Range 0x968A - 0x968E, array index: 0x0EB9 */ - 0x6269,0x626B,INVALC,0x626F,0x626A, - /* Range 0x9698 - 0x969C, array index: 0x0EBE */ - 0x6751,0x6B61,INVALC,0x6B63,0x6B62, - /* Range 0x96C0 - 0x96CD, array index: 0x0EC3 */ - 0x5D7A,0x6272,INVALC,INVALC,0x6274,0x6273,0x6275,0x6276, - INVALC,0x6756,0x6757,0x6755,0x6B64,0x6754, - /* Range 0x96E8 - 0x96EA, array index: 0x0ED1 */ - 0x4F64,0x5D7C,0x5D7B, - /* Range 0x970D - 0x9713, array index: 0x0ED4 */ - 0x7277,0x7274,0x7279,INVALC,0x7275,INVALC,0x7278, - /* Range 0x975E - 0x9762, array index: 0x0EDB */ - 0x4F66,INVALC,0x6F6A,0x7948,0x5372, - /* Range 0x97FF - 0x9813, array index: 0x0EE0 */ - 0x7B40,INVALC,0x5377,0x5E21,0x5E22,INVALC,0x627A,0x627B, - INVALC,0x627C,INVALC,0x6762,INVALC,0x6764,INVALC,INVALC, - INVALC,0x675F,0x6760,0x6763,0x6761, - /* Range 0x9837 - 0x983B, array index: 0x0EF5 */ - 0x7323,0x7321,0x7325,INVALC,0x7322, - /* Range 0x984C - 0x984F, array index: 0x0EFA */ - 0x776E,0x776C,0x776F,0x776D, - /* Range 0x986F - 0x9871, array index: 0x0EFE */ - 0x7C4F,0x7C74,0x7D2D, - /* Range 0x98FC - 0x98FE, array index: 0x0F01 */ - 0x6765,0x6767,0x6768, - /* Range 0x993D - 0x993F, array index: 0x0F04 */ - 0x7774,0x7772,0x7773, - /* Range 0x99AC - 0x99AE, array index: 0x0F07 */ - 0x586B,0x6326,0x6325, - /* Range 0x99D0 - 0x99D2, array index: 0x0F0A */ - 0x6F77,0x6F7A,0x6F7C, - /* Range 0x9ACF - 0x9AD8, array index: 0x0F0D */ - 0x7B48,INVALC,0x7C56,0x7C28,0x7C54,0x7C55,INVALC,0x7D2F, - INVALC,0x586D, - /* Range 0x9AED - 0x9AEF, array index: 0x0F17 */ - 0x7333,0x7021,0x7022, - /* Range 0x9B41 - 0x9B45, array index: 0x0F1A */ - 0x6B76,0x6B77,INVALC,0x7025,0x7024, - /* Range 0x9B4D - 0x9B51, array index: 0x0F1F */ - 0x777D,0x777C,0x777B,INVALC,0x7B4A, - /* Range 0x9BAA - 0x9BAE, array index: 0x0F24 */ - 0x762F,0x762E,INVALC,0x7630,0x762D, - /* Range 0x9BC8 - 0x9BCA, array index: 0x0F29 */ - 0x7823,0x7821,0x777E, - /* Range 0x9ECC - 0x9ED1, array index: 0x0F2C */ - 0x7D31,0x6328,0x702D,0x7634,INVALC,0x6329, - /* Range 0x9EDB - 0x9EE0, array index: 0x0F32 */ - 0x7638,0x7636,0x7637,0x7635,INVALC,0x7828, - /* Range 0xFE30 - 0xFE44, array index: 0x0F38 */ - 0x212B,0x2136,0x2138,INVALC,INVALC,0x2140,0x2141,0x2144, - 0x2145,0x2148,0x2149,0x214C,0x214D,0x2150,0x2151,0x2154, - 0x2155,0x2158,0x2159,0x215C,0x215D, - /* Range 0xFE49 - 0xFE6B, array index: 0x0F4D */ - 0x2227,0x2228,0x222B,0x222C,0x2229,0x222A,INVALC,0x212E, - 0x212F,0x2130,INVALC,0x2132,0x2133,0x2134,0x2135,INVALC, - 0x215E,0x215F,0x2160,0x2161,0x2162,0x2163,0x222D,0x222E, - 0x222F,0x223F,0x2240,0x2241,0x2243,0x2242,INVALC,0x2262, - 0x226C,0x226D,0x226E, - /* Range 0xFF01 - 0xFF3C, array index: 0x0F70 */ - 0x212A,INVALC,0x216C,0x2263,0x2268,0x216D,INVALC,0x213E, - 0x213F,0x216E,0x2230,0x2122,0x2231,0x2125,0x225F,0x2421, - 0x2422,0x2423,0x2424,0x2425,0x2426,0x2427,0x2428,0x2429, - 0x242A,0x2128,0x2127,0x2236,0x2238,0x2237,0x2129,0x2269, - 0x2441,0x2442,0x2443,0x2444,0x2445,0x2446,0x2447,0x2448, - 0x2449,0x244A,0x244B,0x244C,0x244D,0x244E,0x244F,0x2450, - 0x2451,0x2452,0x2453,0x2454,0x2455,0x2456,0x2457,0x2458, - 0x2459,0x245A,INVALC,0x2260, - /* Range 0xFF3F - 0xFF5D, array index: 0x0FAC */ - 0x2225,INVALC,0x245B,0x245C,0x245D,0x245E,0x245F,0x2460, - 0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468, - 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470, - 0x2471,0x2472,0x2473,0x2474,0x2142,0x225E,0x2143, - /* Unranged codes (381 codes) */ - /* Array index: 0x0FCB */ 0x00A7,0x2170, - /* Array index: 0x0FCB */ 0x00B0,0x2278, - /* Array index: 0x0FCB */ 0x00B1,0x2234, - /* Array index: 0x0FCB */ 0x00B7,0x2131, - /* Array index: 0x0FCB */ 0x00D7,0x2232, - /* Array index: 0x0FCB */ 0x00F7,0x2233, - /* Array index: 0x0FCB */ 0x02D9,0x256C, - /* Array index: 0x0FCB */ 0x2013,0x2139, - /* Array index: 0x0FCB */ 0x2014,0x2137, - /* Array index: 0x0FCB */ 0x2016,0x225D, - /* Array index: 0x0FCB */ 0x2018,0x2164, - /* Array index: 0x0FCB */ 0x2019,0x2165, - /* Array index: 0x0FCB */ 0x201C,0x2166, - /* Array index: 0x0FCB */ 0x201D,0x2167, - /* Array index: 0x0FCB */ 0x2025,0x212D, - /* Array index: 0x0FCB */ 0x2026,0x212C, - /* Array index: 0x0FCB */ 0x2032,0x216A, - /* Array index: 0x0FCB */ 0x2035,0x216B, - /* Array index: 0x0FCB */ 0x203B,0x216F, - /* Array index: 0x0FCB */ 0x203E,0x2223, - /* Array index: 0x0FCB */ 0x2103,0x226A, - /* Array index: 0x0FCB */ 0x2105,0x2222, - /* Array index: 0x0FCB */ 0x2109,0x226B, - /* Array index: 0x0FCB */ 0x2215,0x2261, - /* Array index: 0x0FCB */ 0x221A,0x2235, - /* Array index: 0x0FCB */ 0x222E,0x224E, - /* Array index: 0x0FCB */ 0x2234,0x2250, - /* Array index: 0x0FCB */ 0x2235,0x224F, - /* Array index: 0x0FCB */ 0x223C,0x2244, - /* Array index: 0x0FCB */ 0x2252,0x223D, - /* Array index: 0x0FCB */ 0x2260,0x223B, - /* Array index: 0x0FCB */ 0x2261,0x223E, - /* Array index: 0x0FCB */ 0x2266,0x2239, - /* Array index: 0x0FCB */ 0x2267,0x223A, - /* Array index: 0x0FCB */ 0x22A5,0x2247, - /* Array index: 0x0FCB */ 0x22BF,0x224A, - /* Array index: 0x0FCB */ 0x2500,0x2339, - /* Array index: 0x0FCB */ 0x2502,0x233A, - /* Array index: 0x0FCB */ 0x250C,0x233C, - /* Array index: 0x0FCB */ 0x2510,0x233D, - /* Array index: 0x0FCB */ 0x2514,0x233E, - /* Array index: 0x0FCB */ 0x2518,0x233F, - /* Array index: 0x0FCB */ 0x251C,0x2337, - /* Array index: 0x0FCB */ 0x2524,0x2336, - /* Array index: 0x0FCB */ 0x252C,0x2335, - /* Array index: 0x0FCB */ 0x2534,0x2334, - /* Array index: 0x0FCB */ 0x253C,0x2333, - /* Array index: 0x0FCB */ 0x2550,0x2344, - /* Array index: 0x0FCB */ 0x255E,0x2345, - /* Array index: 0x0FCB */ 0x2561,0x2347, - /* Array index: 0x0FCB */ 0x256A,0x2346, - /* Array index: 0x0FCB */ 0x2594,0x2338, - /* Array index: 0x0FCB */ 0x2595,0x233B, - /* Array index: 0x0FCB */ 0x25A0,0x217C, - /* Array index: 0x0FCB */ 0x25A1,0x217B, - /* Array index: 0x0FCB */ 0x25B2,0x2175, - /* Array index: 0x0FCB */ 0x25B3,0x2174, - /* Array index: 0x0FCB */ 0x25BC,0x217E, - /* Array index: 0x0FCB */ 0x25BD,0x217D, - /* Array index: 0x0FCB */ 0x25C6,0x217A, - /* Array index: 0x0FCB */ 0x25C7,0x2179, - /* Array index: 0x0FCB */ 0x25CB,0x2172, - /* Array index: 0x0FCB */ 0x25CE,0x2176, - /* Array index: 0x0FCB */ 0x25CF,0x2173, - /* Array index: 0x0FCB */ 0x2605,0x2178, - /* Array index: 0x0FCB */ 0x2606,0x2177, - /* Array index: 0x0FCB */ 0x2609,0x2254, - /* Array index: 0x0FCB */ 0x30FB,0x2126, - /* Array index: 0x0FCB */ 0x32A3,0x2221, - /* Array index: 0x0FCB */ 0x338E,0x2275, - /* Array index: 0x0FCB */ 0x338F,0x2276, - /* Array index: 0x0FCB */ 0x33A1,0x2274, - /* Array index: 0x0FCB */ 0x33C4,0x2277, - /* Array index: 0x0FCB */ 0x33CE,0x2273, - /* Array index: 0x0FCB */ 0x33D1,0x224C, - /* Array index: 0x0FCB */ 0x33D2,0x224B, - /* Array index: 0x0FCB */ 0x33D5,0x226F, - /* Array index: 0x0FCB */ 0x4E00,0x4421, - /* Array index: 0x0FCB */ 0x4E01,0x4423, - /* Array index: 0x0FCB */ 0x4E03,0x4424, - /* Array index: 0x0FCB */ 0x4E1E,0x4722, - /* Array index: 0x0FCB */ 0x4E1F,0x4723, - /* Array index: 0x0FCB */ 0x4E26,0x4B64, - /* Array index: 0x0FCB */ 0x4E2B,0x4439, - /* Array index: 0x0FCB */ 0x4E2D,0x4463, - /* Array index: 0x0FCB */ 0x4E30,0x4464, - /* Array index: 0x0FCB */ 0x4E32,0x486B, - /* Array index: 0x0FCB */ 0x4E38,0x443A, - /* Array index: 0x0FCB */ 0x4E39,0x4465, - /* Array index: 0x0FCB */ 0x4E3B,0x4564, - /* Array index: 0x0FCB */ 0x4E43,0x4425, - /* Array index: 0x0FCB */ 0x4E45,0x443C, - /* Array index: 0x0FCB */ 0x4E48,0x443D, - /* Array index: 0x0FCB */ 0x4E56,0x4B65, - /* Array index: 0x0FCB */ 0x4E58,0x537D, - /* Array index: 0x0FCB */ 0x4E59,0x4422, - /* Array index: 0x0FCB */ 0x4E69,0x4726, - /* Array index: 0x0FCB */ 0x4E73,0x4B66, - /* Array index: 0x0FCB */ 0x4E7E,0x5871, - /* Array index: 0x0FCB */ 0x4E82,0x632A, - /* Array index: 0x0FCB */ 0x4E86,0x4427, - /* Array index: 0x0FCB */ 0x4E88,0x4468, - /* Array index: 0x0FCB */ 0x4E8B,0x4B67, - /* Array index: 0x0FCB */ 0x4E8C,0x4428, - /* Array index: 0x0FCB */ 0x4E8E,0x4440, - /* Array index: 0x0FCB */ 0x4E99,0x4727, - /* Array index: 0x0FCB */ 0x4E9B,0x4B68, - /* Array index: 0x0FCB */ 0x4EB3,0x537E, - /* Array index: 0x0FCB */ 0x4EBA,0x4429, - /* Array index: 0x0FCB */ 0x4EDE,0x4571, - /* Array index: 0x0FCB */ 0x4EDF,0x4623, - /* Array index: 0x0FCB */ 0x4EF0,0x4737, - /* Array index: 0x0FCB */ 0x4EF2,0x4734, - /* Array index: 0x0FCB */ 0x4EF3,0x4738, - /* Array index: 0x0FCB */ 0x4EF6,0x4735, - /* Array index: 0x0FCB */ 0x4EFB,0x4736, - /* Array index: 0x0FCB */ 0x4EFD,0x4739, - /* Array index: 0x0FCB */ 0x4EFF,0x472B, - /* Array index: 0x0FCB */ 0x4F01,0x473A, - /* Array index: 0x0FCB */ 0x4F15,0x472F, - /* Array index: 0x0FCB */ 0x4F19,0x472D, - /* Array index: 0x0FCB */ 0x4F2F,0x4924, - /* Array index: 0x0FCB */ 0x4F30,0x4875, - /* Array index: 0x0FCB */ 0x4F34,0x4872, - /* Array index: 0x0FCB */ 0x4F36,0x4926, - /* Array index: 0x0FCB */ 0x4F38,0x487A, - /* Array index: 0x0FCB */ 0x4F3A,0x4879, - /* Array index: 0x0FCB */ 0x4F3C,0x487D, - /* Array index: 0x0FCB */ 0x4F3D,0x4878, - /* Array index: 0x0FCB */ 0x4F43,0x487B, - /* Array index: 0x0FCB */ 0x4F63,0x4921, - /* Array index: 0x0FCB */ 0x4F69,0x4B79, - /* Array index: 0x0FCB */ 0x4F6C,0x4B71, - /* Array index: 0x0FCB */ 0x4F6F,0x4B6C, - /* Array index: 0x0FCB */ 0x4F70,0x4B76, - /* Array index: 0x0FCB */ 0x4F73,0x4B6F, - /* Array index: 0x0FCB */ 0x4F75,0x4B77, - /* Array index: 0x0FCB */ 0x4F7A,0x4C21, - /* Array index: 0x0FCB */ 0x4F7B,0x4B7A, - /* Array index: 0x0FCB */ 0x4F7E,0x4B7C, - /* Array index: 0x0FCB */ 0x4F7F,0x4B70, - /* Array index: 0x0FCB */ 0x4F83,0x4B75, - /* Array index: 0x0FCB */ 0x4F86,0x4B74, - /* Array index: 0x0FCB */ 0x4F88,0x4B78, - /* Array index: 0x0FCB */ 0x4F8B,0x4B73, - /* Array index: 0x0FCB */ 0x4F8D,0x4B6E, - /* Array index: 0x0FCB */ 0x4F8F,0x4B7D, - /* Array index: 0x0FCB */ 0x4F91,0x4B7E, - /* Array index: 0x0FCB */ 0x4F96,0x4B7B, - /* Array index: 0x0FCB */ 0x4F9B,0x4B72, - /* Array index: 0x0FCB */ 0x4F9D,0x4B6D, - /* Array index: 0x0FCB */ 0x4FAE,0x4F78, - /* Array index: 0x0FCB */ 0x4FAF,0x4F6C, - /* Array index: 0x0FCB */ 0x4FBF,0x4F6D, - /* Array index: 0x0FCB */ 0x4FCA,0x4F76, - /* Array index: 0x0FCB */ 0x4FD7,0x4F77, - /* Array index: 0x0FCB */ 0x4FD8,0x4F74, - /* Array index: 0x0FCB */ 0x4FDA,0x4F7C, - /* Array index: 0x0FCB */ 0x4FEE,0x543A, - /* Array index: 0x0FCB */ 0x4FEF,0x5424, - /* Array index: 0x0FCB */ 0x4FF1,0x5434, - /* Array index: 0x0FCB */ 0x4FF3,0x5439, - /* Array index: 0x0FCB */ 0x4FF8,0x5427, - /* Array index: 0x0FCB */ 0x4FFA,0x5430, - /* Array index: 0x0FCB */ 0x4FFE,0x543D, - /* Array index: 0x0FCB */ 0x5000,0x5431, - /* Array index: 0x0FCB */ 0x5006,0x542A, - /* Array index: 0x0FCB */ 0x501F,0x542C, - /* Array index: 0x0FCB */ 0x5021,0x5435, - /* Array index: 0x0FCB */ 0x5023,0x5423, - /* Array index: 0x0FCB */ 0x503C,0x542B, - /* Array index: 0x0FCB */ 0x5043,0x5876, - /* Array index: 0x0FCB */ 0x5047,0x5875, - /* Array index: 0x0FCB */ 0x5049,0x5879, - /* Array index: 0x0FCB */ 0x504C,0x5877, - /* Array index: 0x0FCB */ 0x504E,0x587C, - /* Array index: 0x0FCB */ 0x504F,0x5923, - /* Array index: 0x0FCB */ 0x5055,0x587D, - /* Array index: 0x0FCB */ 0x505A,0x5878, - /* Array index: 0x0FCB */ 0x505C,0x5874, - /* Array index: 0x0FCB */ 0x5065,0x587A, - /* Array index: 0x0FCB */ 0x506D,0x5926, - /* Array index: 0x0FCB */ 0x506F,0x5925, - /* Array index: 0x0FCB */ 0x507A,0x5872, - /* Array index: 0x0FCB */ 0x507D,0x5873, - /* Array index: 0x0FCB */ 0x5080,0x5E2E, - /* Array index: 0x0FCB */ 0x5085,0x5E2B, - /* Array index: 0x0FCB */ 0x508D,0x5E2A, - /* Array index: 0x0FCB */ 0x5091,0x5E2D, - /* Array index: 0x0FCB */ 0x50A2,0x5E29, - /* Array index: 0x0FCB */ 0x50AC,0x6331, - /* Array index: 0x0FCB */ 0x50AD,0x632B, - /* Array index: 0x0FCB */ 0x50AF,0x6334, - /* Array index: 0x0FCB */ 0x50B2,0x632D, - /* Array index: 0x0FCB */ 0x50B3,0x632E, - /* Array index: 0x0FCB */ 0x50B5,0x632C, - /* Array index: 0x0FCB */ 0x50B7,0x6332, - /* Array index: 0x0FCB */ 0x50BB,0x6333, - /* Array index: 0x0FCB */ 0x50BE,0x6330, - /* Array index: 0x0FCB */ 0x50C5,0x632F, - /* Array index: 0x0FCB */ 0x50C7,0x6335, - /* Array index: 0x0FCB */ 0x50CE,0x677C, - /* Array index: 0x0FCB */ 0x50CF,0x6779, - /* Array index: 0x0FCB */ 0x50D1,0x677A, - /* Array index: 0x0FCB */ 0x50D5,0x6778, - /* Array index: 0x0FCB */ 0x50D6,0x6775, - /* Array index: 0x0FCB */ 0x50DA,0x6777, - /* Array index: 0x0FCB */ 0x50E5,0x6774, - /* Array index: 0x0FCB */ 0x50E7,0x6772, - /* Array index: 0x0FCB */ 0x50E9,0x677D, - /* Array index: 0x0FCB */ 0x50ED,0x6776, - /* Array index: 0x0FCB */ 0x50EE,0x6773, - /* Array index: 0x0FCB */ 0x50F1,0x677B, - /* Array index: 0x0FCB */ 0x50F5,0x6C23, - /* Array index: 0x0FCB */ 0x50F9,0x6C24, - /* Array index: 0x0FCB */ 0x50FB,0x6C22, - /* Array index: 0x0FCB */ 0x5100,0x6C21, - /* Array index: 0x0FCB */ 0x5102,0x6C25, - /* Array index: 0x0FCB */ 0x5104,0x6B7E, - /* Array index: 0x0FCB */ 0x5105,0x6C28, - /* Array index: 0x0FCB */ 0x5108,0x6C26, - /* Array index: 0x0FCB */ 0x5109,0x6C27, - /* Array index: 0x0FCB */ 0x5110,0x7033, - /* Array index: 0x0FCB */ 0x5112,0x7030, - /* Array index: 0x0FCB */ 0x5114,0x7032, - /* Array index: 0x0FCB */ 0x5115,0x7034, - /* Array index: 0x0FCB */ 0x5118,0x7031, - /* Array index: 0x0FCB */ 0x511F,0x7341, - /* Array index: 0x0FCB */ 0x5121,0x7342, - /* Array index: 0x0FCB */ 0x512A,0x7340, - /* Array index: 0x0FCB */ 0x5132,0x7343, - /* Array index: 0x0FCB */ 0x5133,0x782B, - /* Array index: 0x0FCB */ 0x5137,0x7A62, - /* Array index: 0x0FCB */ 0x5138,0x7A63, - /* Array index: 0x0FCB */ 0x5152,0x4C23, - /* Array index: 0x0FCB */ 0x5154,0x4C22, - /* Array index: 0x0FCB */ 0x5155,0x4C24, - /* Array index: 0x0FCB */ 0x5157,0x5022, - /* Array index: 0x0FCB */ 0x5171,0x4741, - /* Array index: 0x0FCB */ 0x517C,0x5440, - /* Array index: 0x0FCB */ 0x5180,0x7035, - /* Array index: 0x0FCB */ 0x5189,0x4574, - /* Array index: 0x0FCB */ 0x518A,0x4575, - /* Array index: 0x0FCB */ 0x518D,0x4742, - /* Array index: 0x0FCB */ 0x5191,0x5024, - /* Array index: 0x0FCB */ 0x5192,0x5023, - /* Array index: 0x0FCB */ 0x5195,0x5928, - /* Array index: 0x0FCB */ 0x5197,0x447D, - /* Array index: 0x0FCB */ 0x51A0,0x5025, - /* Array index: 0x0FCB */ 0x51A2,0x5443, - /* Array index: 0x0FCB */ 0x51A4,0x5441, - /* Array index: 0x0FCB */ 0x51A5,0x5442, - /* Array index: 0x0FCB */ 0x51AA,0x7036, - /* Array index: 0x0FCB */ 0x51AC,0x4576, - /* Array index: 0x0FCB */ 0x51B0,0x4743, - /* Array index: 0x0FCB */ 0x51B6,0x492F, - /* Array index: 0x0FCB */ 0x51B7,0x4930, - /* Array index: 0x0FCB */ 0x51BD,0x4C29, - /* Array index: 0x0FCB */ 0x51C6,0x5446, - /* Array index: 0x0FCB */ 0x51DC,0x6C29, - /* Array index: 0x0FCB */ 0x51DD,0x7037, - /* Array index: 0x0FCB */ 0x51E0,0x442D, - /* Array index: 0x0FCB */ 0x51E1,0x443B, - /* Array index: 0x0FCB */ 0x51F0,0x5929, - /* Array index: 0x0FCB */ 0x51F1,0x5E33, - /* Array index: 0x0FCB */ 0x51F3,0x6821, - /* Array index: 0x0FCB */ 0x51FD,0x4C2A, - /* Array index: 0x0FCB */ 0x5200,0x442E, - /* Array index: 0x0FCB */ 0x5201,0x442F, - /* Array index: 0x0FCB */ 0x5203,0x4443, - /* Array index: 0x0FCB */ 0x520E,0x4747, - /* Array index: 0x0FCB */ 0x5211,0x4745, - /* Array index: 0x0FCB */ 0x5212,0x4746, - /* Array index: 0x0FCB */ 0x5216,0x4748, - /* Array index: 0x0FCB */ 0x5217,0x4744, - /* Array index: 0x0FCB */ 0x521D,0x4F4F, - /* Array index: 0x0FCB */ 0x522E,0x4C30, - /* Array index: 0x0FCB */ 0x5230,0x4C2F, - /* Array index: 0x0FCB */ 0x5241,0x4C32, - /* Array index: 0x0FCB */ 0x5243,0x5027, - /* Array index: 0x0FCB */ 0x5247,0x502C, - /* Array index: 0x0FCB */ 0x5254,0x544A, - /* Array index: 0x0FCB */ 0x5256,0x5448, - /* Array index: 0x0FCB */ 0x5269,0x5E37, - /* Array index: 0x0FCB */ 0x526A,0x592A, - /* Array index: 0x0FCB */ 0x526F,0x592B, - /* Array index: 0x0FCB */ 0x5272,0x5E34, - /* Array index: 0x0FCB */ 0x5274,0x5E35, - /* Array index: 0x0FCB */ 0x5275,0x5E36, - /* Array index: 0x0FCB */ 0x5277,0x6337, - /* Array index: 0x0FCB */ 0x527D,0x6338, - /* Array index: 0x0FCB */ 0x527F,0x6336, - /* Array index: 0x0FCB */ 0x5282,0x6823, - /* Array index: 0x0FCB */ 0x5283,0x6822, - /* Array index: 0x0FCB */ 0x528D,0x6C2D, - /* Array index: 0x0FCB */ 0x5291,0x7038, - /* Array index: 0x0FCB */ 0x5293,0x7039, - /* Array index: 0x0FCB */ 0x529B,0x4430, - /* Array index: 0x0FCB */ 0x529F,0x457C, - /* Array index: 0x0FCB */ 0x52A0,0x457B, - /* Array index: 0x0FCB */ 0x52A3,0x4749, - /* Array index: 0x0FCB */ 0x52BB,0x4C34, - /* Array index: 0x0FCB */ 0x52BE,0x4C33, - /* Array index: 0x0FCB */ 0x52C1,0x5030, - /* Array index: 0x0FCB */ 0x52C3,0x502F, - /* Array index: 0x0FCB */ 0x52C7,0x502D, - /* Array index: 0x0FCB */ 0x52C9,0x502E, - /* Array index: 0x0FCB */ 0x52D2,0x592C, - /* Array index: 0x0FCB */ 0x52F0,0x6C2F, - /* Array index: 0x0FCB */ 0x52F3,0x703A, - /* Array index: 0x0FCB */ 0x52F5,0x7344, - /* Array index: 0x0FCB */ 0x52F8,0x7961, - /* Array index: 0x0FCB */ 0x52FA,0x4444, - /* Array index: 0x0FCB */ 0x52FB,0x4524, - /* Array index: 0x0FCB */ 0x52FE,0x4525, - /* Array index: 0x0FCB */ 0x52FF,0x4526, - /* Array index: 0x0FCB */ 0x5305,0x457D, - /* Array index: 0x0FCB */ 0x5306,0x457E, - /* Array index: 0x0FCB */ 0x5308,0x474A, - /* Array index: 0x0FCB */ 0x530D,0x5031, - /* Array index: 0x0FCB */ 0x530F,0x5931, - /* Array index: 0x0FCB */ 0x5310,0x5930, - /* Array index: 0x0FCB */ 0x531D,0x4622, - /* Array index: 0x0FCB */ 0x5320,0x474C, - /* Array index: 0x0FCB */ 0x5321,0x474B, - /* Array index: 0x0FCB */ 0x5323,0x493A, - /* Array index: 0x0FCB */ 0x532A,0x544D, - /* Array index: 0x0FCB */ 0x532F,0x633E, - /* Array index: 0x0FCB */ 0x5331,0x6824, - /* Array index: 0x0FCB */ 0x5339,0x4528, - /* Array index: 0x0FCB */ 0x5357,0x5032, - /* Array index: 0x0FCB */ 0x535A,0x5E3B, - /* Array index: 0x0FCB */ 0x535C,0x4433, - /* Array index: 0x0FCB */ 0x535E,0x452C, - /* Array index: 0x0FCB */ 0x5360,0x4627, - /* Array index: 0x0FCB */ 0x5361,0x4626, - /* Array index: 0x0FCB */ 0x5366,0x4C39, - /* Array index: 0x0FCB */ 0x537F,0x544E, - /* Array index: 0x0FCB */ 0x5384,0x452D, - /* Array index: 0x0FCB */ 0x539A,0x5034, - /* Array index: 0x0FCB */ 0x539D,0x5450, - /* Array index: 0x0FCB */ 0x539F,0x544F, - /* Array index: 0x0FCB */ 0x53A5,0x5E3C, - /* Array index: 0x0FCB */ 0x53AD,0x6825, - /* Array index: 0x0FCB */ 0x53B2,0x6C30, - /* Array index: 0x0FCB */ 0x53BB,0x462A, - /* Array index: 0x0FCB */ 0x53C3,0x5936, - /* Array index: 0x0FCB */ 0x53D4,0x4C3E, - /* Array index: 0x0FCB */ 0x53D6,0x4C3D, - /* Array index: 0x0FCB */ 0x53D7,0x4C3F, - /* Array index: 0x0FCB */ 0x53DB,0x5035, - /* Array index: 0x0FCB */ 0x53DF,0x5451, - /* Array index: 0x0FCB */ 0x53F8,0x4633, - /* Array index: 0x0FCB */ 0x53FB,0x463D, - /* Array index: 0x0FCB */ 0x53FC,0x4632, - /* Array index: 0x0FCB */ 0x5401,0x4754, - /* Array index: 0x0FCB */ 0x5403,0x475A, - /* Array index: 0x0FCB */ 0x5404,0x4756, - /* Array index: 0x0FCB */ 0x5426,0x4941, - /* Array index: 0x0FCB */ 0x5427,0x4943, - /* Array index: 0x0FCB */ 0x5431,0x4955, - /* Array index: 0x0FCB */ 0x5433,0x4946, - /* Array index: 0x0FCB */ 0x5446,0x4944, - /* Array index: 0x0FCB */ 0x5448,0x4947, - /* Array index: 0x0FCB */ 0x544A,0x494B, - /* Array index: 0x0FCB */ 0x544E,0x4942, - /* Array index: 0x0FCB */ 0x5462,0x4C51, - /* Array index: 0x0FCB */ 0x5468,0x4C52, - /* Array index: 0x0FCB */ 0x5471,0x4C4D, - /* Array index: 0x0FCB */ 0x5480,0x4C45, - /* Array index: 0x0FCB */ 0x5484,0x4C48, - /* Array index: 0x0FCB */ 0x5486,0x4C4A, - /* Array index: 0x0FCB */ 0x548B,0x4C53, - /* Array index: 0x0FCB */ 0x548C,0x4C4F, - /* Array index: 0x0FCB */ 0x548E,0x4C55, - /* Array index: 0x0FCB */ 0x5490,0x4C4C, - /* Array index: 0x0FCB */ 0x5492,0x4C49, - /* Array index: 0x0FCB */ 0x5495,0x4C44, - /* Array index: 0x0FCB */ 0x5496,0x4C42, - /* Array index: 0x0FCB */ 0x549A,0x4C50, - /* Array index: 0x0FCB */ 0x54AF,0x5045, - /* Array index: 0x0FCB */ 0x54B1,0x5047, - /* Array index: 0x0FCB */ 0x54B3,0x503D, - /* Array index: 0x0FCB */ 0x54B8,0x503B, - /* Array index: 0x0FCB */ 0x54BB,0x5048, - /* Array index: 0x0FCB */ 0x54CE,0x5039, - /* Array index: 0x0FCB */ 0x54E1,0x545E, - /* Array index: 0x0FCB */ 0x54F2,0x5458, - /* Array index: 0x0FCB */ 0x54FA,0x545A, - /* Array index: 0x0FCB */ 0x54FC,0x5456, - /* Array index: 0x0FCB */ 0x54FD,0x5465, - /* Array index: 0x0FCB */ 0x5501,0x5454, - /* Array index: 0x0FCB */ 0x5506,0x5459, - /* Array index: 0x0FCB */ 0x5507,0x5464, - /* Array index: 0x0FCB */ 0x5509,0x545F, - /* Array index: 0x0FCB */ 0x550F,0x5466, - /* Array index: 0x0FCB */ 0x5510,0x5453, - /* Array index: 0x0FCB */ 0x5514,0x545B, - /* Array index: 0x0FCB */ 0x5527,0x5463, - /* Array index: 0x0FCB */ 0x552C,0x5949, - /* Array index: 0x0FCB */ 0x552E,0x5947, - /* Array index: 0x0FCB */ 0x552F,0x5944, - /* Array index: 0x0FCB */ 0x5531,0x5940, - /* Array index: 0x0FCB */ 0x5533,0x594B, - /* Array index: 0x0FCB */ 0x5537,0x5455, - /* Array index: 0x0FCB */ 0x5538,0x5946, - /* Array index: 0x0FCB */ 0x553E,0x5E4E, - /* Array index: 0x0FCB */ 0x5541,0x594C, - /* Array index: 0x0FCB */ 0x5543,0x593E, - /* Array index: 0x0FCB */ 0x5544,0x593B, - /* Array index: 0x0FCB */ 0x5546,0x5938, - /* Array index: 0x0FCB */ 0x554A,0x593F, - /* Array index: 0x0FCB */ 0x554F,0x5942, - /* Array index: 0x0FCB */ 0x555C,0x5948, - /* Array index: 0x0FCB */ 0x555E,0x593C, - /* Array index: 0x0FCB */ 0x555F,0x5A76, - /* Array index: 0x0FCB */ 0x5561,0x593D, - /* Array index: 0x0FCB */ 0x5563,0x594A, - /* Array index: 0x0FCB */ 0x5564,0x5945, - /* Array index: 0x0FCB */ 0x5566,0x593A, - /* Array index: 0x0FCB */ 0x556A,0x5939, - /* Array index: 0x0FCB */ 0x557B,0x5E3D, - /* Array index: 0x0FCB */ 0x557C,0x5E40, - /* Array index: 0x0FCB */ 0x557E,0x5E54, - /* Array index: 0x0FCB */ 0x5594,0x5E47, - /* Array index: 0x0FCB */ 0x55A7,0x5E3F, - /* Array index: 0x0FCB */ 0x55BB,0x5E51, - /* Array index: 0x0FCB */ 0x55CE,0x6343, - /* Array index: 0x0FCB */ 0x55D1,0x6346, - /* Array index: 0x0FCB */ 0x55D3,0x6341, - /* Array index: 0x0FCB */ 0x55DA,0x634A, - /* Array index: 0x0FCB */ 0x55DC,0x6344, - /* Array index: 0x0FCB */ 0x55DF,0x633F, - /* Array index: 0x0FCB */ 0x55EF,0x6349, - /* Array index: 0x0FCB */ 0x55F6,0x6835, - /* Array index: 0x0FCB */ 0x55F7,0x6830, - /* Array index: 0x0FCB */ 0x55FD,0x682A, - /* Array index: 0x0FCB */ 0x55FE,0x6826, - /* Array index: 0x0FCB */ 0x5600,0x6827, - /* Array index: 0x0FCB */ 0x5606,0x682C, - /* Array index: 0x0FCB */ 0x5608,0x6833, - /* Array index: 0x0FCB */ 0x5609,0x682D, - /* Array index: 0x0FCB */ 0x560D,0x682E, - /* Array index: 0x0FCB */ 0x560E,0x682F, - /* Array index: 0x0FCB */ 0x5610,0x6834, - /* Array index: 0x0FCB */ 0x5614,0x682B, - /* Array index: 0x0FCB */ 0x5616,0x6831, - /* Array index: 0x0FCB */ 0x5617,0x6829, - /* Array index: 0x0FCB */ 0x561B,0x6828, - /* Array index: 0x0FCB */ 0x561F,0x6832, - /* Array index: 0x0FCB */ 0x5629,0x6C37, - /* Array index: 0x0FCB */ 0x5639,0x6C33, - /* Array index: 0x0FCB */ 0x563B,0x6C32, - /* Array index: 0x0FCB */ 0x563F,0x6C35, - /* Array index: 0x0FCB */ 0x564E,0x6C39, - /* Array index: 0x0FCB */ 0x5653,0x6C38, - /* Array index: 0x0FCB */ 0x5657,0x6C3A, - /* Array index: 0x0FCB */ 0x5659,0x703B, - /* Array index: 0x0FCB */ 0x5662,0x7047, - /* Array index: 0x0FCB */ 0x566F,0x7045, - /* Array index: 0x0FCB */ 0x5671,0x7044, - /* Array index: 0x0FCB */ 0x5674,0x6C3B, - /* Array index: 0x0FCB */ 0x5676,0x7048, - /* Array index: 0x0FCB */ 0x5678,0x7040, - /* Array index: 0x0FCB */ 0x5679,0x703D, - /* Array index: 0x0FCB */ 0x5680,0x7346, - /* Array index: 0x0FCB */ 0x5685,0x7348, - /* Array index: 0x0FCB */ 0x5687,0x7349, - /* Array index: 0x0FCB */ 0x5695,0x763C, - /* Array index: 0x0FCB */ 0x56A5,0x782C, - /* Array index: 0x0FCB */ 0x56A8,0x782D, - /* Array index: 0x0FCB */ 0x56AE,0x763D, - /* Array index: 0x0FCB */ 0x56B4,0x7964, - /* Array index: 0x0FCB */ 0x56B6,0x7963, - /* Array index: 0x0FCB */ 0x56B7,0x7962, - /* Array index: 0x0FCB */ 0x56BC,0x7965, - /* Array index: 0x0FCB */ 0x56D1,0x7C5D, - /* Array index: 0x0FCB */ 0x56E4,0x495B, - /* Array index: 0x0FCB */ 0x56EA,0x4959, - /* Array index: 0x0FCB */ 0x56EB,0x495C, - /* Array index: 0x0FCB */ 0x56F0,0x495A, - /* Array index: 0x0FCB */ 0x56FA,0x4C56, - /* Array index: 0x0FCB */ 0x56FF,0x504C, - /* Array index: 0x0FCB */ 0x5703,0x5467, - /* Array index: 0x0FCB */ 0x5704,0x5468, - /* Array index: 0x0FCB */ 0x5708,0x594E, - /* Array index: 0x0FCB */ 0x5709,0x5950, - /* Array index: 0x0FCB */ 0x570B,0x594F, - /* Array index: 0x0FCB */ 0x570D,0x5E58, - /* Array index: 0x0FCB */ 0x5712,0x6350, - /* Array index: 0x0FCB */ 0x5713,0x6351, - /* Array index: 0x0FCB */ 0x5716,0x6837, - /* Array index: 0x0FCB */ 0x5718,0x6836, - /* Array index: 0x0FCB */ 0x571F,0x4448, - /* Array index: 0x0FCB */ 0x5728,0x4763, - /* Array index: 0x0FCB */ 0x5729,0x4767, - /* Array index: 0x0FCB */ 0x5733,0x4761, - /* Array index: 0x0FCB */ 0x573B,0x4966, - /* Array index: 0x0FCB */ 0x573E,0x4963, - /* Array index: 0x0FCB */ 0x5740,0x495F, - /* Array index: 0x0FCB */ 0x5747,0x4961, - /* Array index: 0x0FCB */ 0x574A,0x495D, - /* Array index: 0x0FCB */ 0x5761,0x4C5B, - /* Array index: 0x0FCB */ 0x5764,0x4C5D, - /* Array index: 0x0FCB */ 0x5766,0x4C5C, - /* Array index: 0x0FCB */ 0x5769,0x4C5A, - /* Array index: 0x0FCB */ 0x576A,0x4C59, - /* Array index: 0x0FCB */ 0x5777,0x4C58, - /* Array index: 0x0FCB */ 0x577C,0x4C5E, - /* Array index: 0x0FCB */ 0x5782,0x504D, - /* Array index: 0x0FCB */ 0x5783,0x4C57, - /* Array index: 0x0FCB */ 0x578B,0x504E, - /* Array index: 0x0FCB */ 0x5793,0x5054, - /* Array index: 0x0FCB */ 0x57A0,0x504F, - /* Array index: 0x0FCB */ 0x57A2,0x5051, - /* Array index: 0x0FCB */ 0x57A3,0x5050, - /* Array index: 0x0FCB */ 0x57AE,0x5053, - /* Array index: 0x0FCB */ 0x57C2,0x5469, - /* Array index: 0x0FCB */ 0x57C3,0x546C, - /* Array index: 0x0FCB */ 0x57CB,0x546B, - /* Array index: 0x0FCB */ 0x57CE,0x5052, - /* Array index: 0x0FCB */ 0x57D4,0x546A, - /* Array index: 0x0FCB */ 0x57DF,0x5951, - /* Array index: 0x0FCB */ 0x57E0,0x5955, - /* Array index: 0x0FCB */ 0x57E4,0x5956, - /* Array index: 0x0FCB */ 0x57F7,0x595A, - /* Array index: 0x0FCB */ 0x57F9,0x595B, - /* Array index: 0x0FCB */ 0x57FA,0x5957, - /* Array index: 0x0FCB */ 0x5802,0x5958, - /* Array index: 0x0FCB */ 0x5805,0x5952, - /* Array index: 0x0FCB */ 0x5806,0x5954, - /* Array index: 0x0FCB */ 0x5809,0x546D, - /* Array index: 0x0FCB */ 0x580A,0x5953, - /* Array index: 0x0FCB */ 0x581D,0x5E60, - /* Array index: 0x0FCB */ 0x5820,0x5E61, - /* Array index: 0x0FCB */ 0x5821,0x5E5F, - /* Array index: 0x0FCB */ 0x5824,0x5E5C, - /* Array index: 0x0FCB */ 0x582A,0x5E5A, - /* Array index: 0x0FCB */ 0x5851,0x6353, - /* Array index: 0x0FCB */ 0x5852,0x635D, - /* Array index: 0x0FCB */ 0x5854,0x6357, - /* Array index: 0x0FCB */ 0x5857,0x6355, - /* Array index: 0x0FCB */ 0x5858,0x6354, - /* Array index: 0x0FCB */ 0x585A,0x6356, - /* Array index: 0x0FCB */ 0x585E,0x6352, - /* Array index: 0x0FCB */ 0x5862,0x635C, - /* Array index: 0x0FCB */ 0x586B,0x6358, - /* Array index: 0x0FCB */ 0x586D,0x635A, - /* Array index: 0x0FCB */ 0x5875,0x6838, - /* Array index: 0x0FCB */ 0x5879,0x683D, - /* Array index: 0x0FCB */ 0x587D,0x683F, - /* Array index: 0x0FCB */ 0x587E,0x6839, - /* Array index: 0x0FCB */ 0x5880,0x6C3F, - /* Array index: 0x0FCB */ 0x5883,0x683A, - /* Array index: 0x0FCB */ 0x5885,0x683E, - /* Array index: 0x0FCB */ 0x588A,0x683C, - /* Array index: 0x0FCB */ 0x5893,0x683B, - /* Array index: 0x0FCB */ 0x589C,0x6C43, - /* Array index: 0x0FCB */ 0x589E,0x6C41, - /* Array index: 0x0FCB */ 0x589F,0x6C40, - /* Array index: 0x0FCB */ 0x58A6,0x6C46, - /* Array index: 0x0FCB */ 0x58A8,0x702E, - /* Array index: 0x0FCB */ 0x58A9,0x6C45, - /* Array index: 0x0FCB */ 0x58AE,0x6C44, - /* Array index: 0x0FCB */ 0x58B3,0x6C42, - /* Array index: 0x0FCB */ 0x58BE,0x704A, - /* Array index: 0x0FCB */ 0x58C1,0x7049, - /* Array index: 0x0FCB */ 0x58C5,0x704C, - /* Array index: 0x0FCB */ 0x58C7,0x704B, - /* Array index: 0x0FCB */ 0x58CE,0x734E, - /* Array index: 0x0FCB */ 0x58D1,0x734D, - /* Array index: 0x0FCB */ 0x58D3,0x734C, - /* Array index: 0x0FCB */ 0x58D5,0x734B, - /* Array index: 0x0FCB */ 0x58D8,0x763F, - /* Array index: 0x0FCB */ 0x58D9,0x763E, - /* Array index: 0x0FCB */ 0x58DE,0x782E, - /* Array index: 0x0FCB */ 0x58DF,0x782F, - /* Array index: 0x0FCB */ 0x58E2,0x7830, - /* Array index: 0x0FCB */ 0x58E4,0x7966, - /* Array index: 0x0FCB */ 0x58E9,0x7C5E, - /* Array index: 0x0FCB */ 0x58EB,0x4449, - /* Array index: 0x0FCB */ 0x58EC,0x4531, - /* Array index: 0x0FCB */ 0x58EF,0x4967, - /* Array index: 0x0FCB */ 0x58F9,0x5E62, - /* Array index: 0x0FCB */ 0x58FA,0x5E63, - /* Array index: 0x0FCB */ 0x58FD,0x6840, - /* Array index: 0x0FCB */ 0x590F,0x546E, - /* Array index: 0x0FCB */ 0x5920,0x595C, - /* Array index: 0x0FCB */ 0x5922,0x6842, - /* Array index: 0x0FCB */ 0x5924,0x6843, - /* Array index: 0x0FCB */ 0x5925,0x6841, - /* Array index: 0x0FCB */ 0x5931,0x4642, - /* Array index: 0x0FCB */ 0x5937,0x476A, - /* Array index: 0x0FCB */ 0x5938,0x476B, - /* Array index: 0x0FCB */ 0x593E,0x4968, - /* Array index: 0x0FCB */ 0x5944,0x4C63, - /* Array index: 0x0FCB */ 0x5960,0x5E64, - /* Array index: 0x0FCB */ 0x5962,0x595D, - /* Array index: 0x0FCB */ 0x5967,0x635F, - /* Array index: 0x0FCB */ 0x5969,0x6845, - /* Array index: 0x0FCB */ 0x596A,0x6844, - /* Array index: 0x0FCB */ 0x596D,0x6C47, - /* Array index: 0x0FCB */ 0x596E,0x704D, - /* Array index: 0x0FCB */ 0x5973,0x444C, - /* Array index: 0x0FCB */ 0x5974,0x4643, - /* Array index: 0x0FCB */ 0x5976,0x4644, - /* Array index: 0x0FCB */ 0x5978,0x476D, - /* Array index: 0x0FCB */ 0x5979,0x4770, - /* Array index: 0x0FCB */ 0x597D,0x476F, - /* Array index: 0x0FCB */ 0x598A,0x4973, - /* Array index: 0x0FCB */ 0x598D,0x4970, - /* Array index: 0x0FCB */ 0x5992,0x496A, - /* Array index: 0x0FCB */ 0x5993,0x4972, - /* Array index: 0x0FCB */ 0x5996,0x496F, - /* Array index: 0x0FCB */ 0x5999,0x496E, - /* Array index: 0x0FCB */ 0x599D,0x4969, - /* Array index: 0x0FCB */ 0x599E,0x496C, - /* Array index: 0x0FCB */ 0x59A8,0x496B, - /* Array index: 0x0FCB */ 0x59AE,0x4C69, - /* Array index: 0x0FCB */ 0x59AF,0x4C71, - /* Array index: 0x0FCB */ 0x59B3,0x4C72, - /* Array index: 0x0FCB */ 0x59B9,0x4C68, - /* Array index: 0x0FCB */ 0x59BB,0x4C66, - /* Array index: 0x0FCB */ 0x59BE,0x4C65, - /* Array index: 0x0FCB */ 0x59C5,0x4C74, - /* Array index: 0x0FCB */ 0x59C6,0x4C6B, - /* Array index: 0x0FCB */ 0x59CA,0x4C70, - /* Array index: 0x0FCB */ 0x59CB,0x4C6E, - /* Array index: 0x0FCB */ 0x59CD,0x4C6D, - /* Array index: 0x0FCB */ 0x59D8,0x505B, - /* Array index: 0x0FCB */ 0x59DA,0x5062, - /* Array index: 0x0FCB */ 0x59DC,0x505A, - /* Array index: 0x0FCB */ 0x59E3,0x505D, - /* Array index: 0x0FCB */ 0x59E5,0x5060, - /* Array index: 0x0FCB */ 0x59E6,0x5063, - /* Array index: 0x0FCB */ 0x59E8,0x505E, - /* Array index: 0x0FCB */ 0x59EA,0x5061, - /* Array index: 0x0FCB */ 0x59EC,0x5478, - /* Array index: 0x0FCB */ 0x59FB,0x5065, - /* Array index: 0x0FCB */ 0x59FF,0x505C, - /* Array index: 0x0FCB */ 0x5A01,0x5064, - /* Array index: 0x0FCB */ 0x5A03,0x505F, - /* Array index: 0x0FCB */ 0x5A09,0x547E, - /* Array index: 0x0FCB */ 0x5A0C,0x547D, - /* Array index: 0x0FCB */ 0x5A11,0x5472, - /* Array index: 0x0FCB */ 0x5A13,0x5477, - /* Array index: 0x0FCB */ 0x5A18,0x5473, - /* Array index: 0x0FCB */ 0x5A1B,0x5476, - /* Array index: 0x0FCB */ 0x5A1C,0x5474, - /* Array index: 0x0FCB */ 0x5A1F,0x5475, - /* Array index: 0x0FCB */ 0x5A20,0x5479, - /* Array index: 0x0FCB */ 0x5A23,0x547A, - /* Array index: 0x0FCB */ 0x5A25,0x547C, - /* Array index: 0x0FCB */ 0x5A29,0x547B, - /* Array index: 0x0FCB */ 0x5A36,0x595E, - /* Array index: 0x0FCB */ 0x5A3C,0x5964, - /* Array index: 0x0FCB */ 0x5A40,0x5963, - /* Array index: 0x0FCB */ 0x5A41,0x595F, - /* Array index: 0x0FCB */ 0x5A46,0x5967, - /* Array index: 0x0FCB */ 0x5A49,0x5960, - /* Array index: 0x0FCB */ 0x5A4A,0x5968, - /* Array index: 0x0FCB */ 0x5A5A,0x5966, - /* Array index: 0x0FCB */ 0x5A62,0x5965, - /* Array index: 0x0FCB */ 0x5A66,0x5961, - /* Array index: 0x0FCB */ 0x5A6A,0x5962, - /* Array index: 0x0FCB */ 0x5A77,0x5E65, - /* Array index: 0x0FCB */ 0x5A7F,0x5E67, - /* Array index: 0x0FCB */ 0x5A92,0x5E68, - /* Array index: 0x0FCB */ 0x5A9A,0x5E66, - /* Array index: 0x0FCB */ 0x5A9B,0x5E69, - /* Array index: 0x0FCB */ 0x5AA7,0x5E6A, - /* Array index: 0x0FCB */ 0x5AB2,0x6368, - /* Array index: 0x0FCB */ 0x5AB3,0x6366, - /* Array index: 0x0FCB */ 0x5AC9,0x6361, - /* Array index: 0x0FCB */ 0x5ACC,0x6362, - /* Array index: 0x0FCB */ 0x5AE1,0x6846, - /* Array index: 0x0FCB */ 0x5AE3,0x684C, - /* Array index: 0x0FCB */ 0x5AE6,0x6847, - /* Array index: 0x0FCB */ 0x5AE9,0x6848, - /* Array index: 0x0FCB */ 0x5AF5,0x6C4B, - /* Array index: 0x0FCB */ 0x5AFB,0x6C49, - /* Array index: 0x0FCB */ 0x5B1D,0x704E, - /* Array index: 0x0FCB */ 0x5B24,0x7351, - /* Array index: 0x0FCB */ 0x5B2A,0x7350, - /* Array index: 0x0FCB */ 0x5B30,0x734F, - /* Array index: 0x0FCB */ 0x5B34,0x704F, - /* Array index: 0x0FCB */ 0x5B38,0x7640, - /* Array index: 0x0FCB */ 0x5B40,0x7967, - /* Array index: 0x0FCB */ 0x5B43,0x7968, - /* Array index: 0x0FCB */ 0x5B63,0x4C77, - /* Array index: 0x0FCB */ 0x5B64,0x4C76, - /* Array index: 0x0FCB */ 0x5B69,0x5066, - /* Array index: 0x0FCB */ 0x5B6B,0x5521, - /* Array index: 0x0FCB */ 0x5B70,0x5969, - /* Array index: 0x0FCB */ 0x5B71,0x5E6C, - /* Array index: 0x0FCB */ 0x5B73,0x5E6B, - /* Array index: 0x0FCB */ 0x5B75,0x684D, - /* Array index: 0x0FCB */ 0x5B78,0x7050, - /* Array index: 0x0FCB */ 0x5B7A,0x7352, - /* Array index: 0x0FCB */ 0x5B7D,0x7969, - /* Array index: 0x0FCB */ 0x5B7F,0x7B5C, - /* Array index: 0x0FCB */ 0x5B83,0x4646, - /* Array index: 0x0FCB */ 0x5B8F,0x497B, - /* Array index: 0x0FCB */ 0x5BAE,0x5527, - /* Array index: 0x0FCB */ 0x5BB0,0x5523, - /* Array index: 0x0FCB */ 0x5BBF,0x596E, - /* Array index: 0x0FCB */ 0x5BCC,0x5E6E, - /* Array index: 0x0FCB */ 0x5BD0,0x5E70, - /* Array index: 0x0FCB */ 0x5BD2,0x5E6D, - /* Array index: 0x0FCB */ 0x5BD3,0x5E6F, - /* Array index: 0x0FCB */ 0x5BF5,0x7831, - /* Array index: 0x0FCB */ 0x5BF6,0x796A, - /* Array index: 0x0FCB */ 0x5BF8,0x4450, - /* Array index: 0x0FCB */ 0x5BFA,0x4779, - /* Array index: 0x0FCB */ 0x5C01,0x506C, - /* Array index: 0x0FCB */ 0x5C04,0x552B, - /* Array index: 0x0FCB */ 0x5C16,0x477A, - /* Array index: 0x0FCB */ 0x5C1A,0x4C7E, - /* Array index: 0x0FCB */ 0x5C22,0x4452, - /* Array index: 0x0FCB */ 0x5C24,0x4538, - /* Array index: 0x0FCB */ 0x5C2C,0x497C, - /* Array index: 0x0FCB */ 0x5C31,0x5E73, - /* Array index: 0x0FCB */ 0x5C45,0x4D22, - /* Array index: 0x0FCB */ 0x5C46,0x4D23, - /* Array index: 0x0FCB */ 0x5C48,0x4D21, - /* Array index: 0x0FCB */ 0x5C55,0x552D, - /* Array index: 0x0FCB */ 0x5C58,0x5522, - /* Array index: 0x0FCB */ 0x5C5C,0x5974, - /* Array index: 0x0FCB */ 0x5C5D,0x5975, - /* Array index: 0x0FCB */ 0x5C60,0x5973, - /* Array index: 0x0FCB */ 0x5C62,0x6858, - /* Array index: 0x0FCB */ 0x5C64,0x6C52, - /* Array index: 0x0FCB */ 0x5C65,0x6C53, - /* Array index: 0x0FCB */ 0x5C68,0x7354, - /* Array index: 0x0FCB */ 0x5C6C,0x7A68, - /* Array index: 0x0FCB */ 0x5C6F,0x453A, - /* Array index: 0x0FCB */ 0x5C71,0x4454, - /* Array index: 0x0FCB */ 0x5C79,0x477B, - /* Array index: 0x0FCB */ 0x5C8C,0x4A26, - /* Array index: 0x0FCB */ 0x5C90,0x4A23, - /* Array index: 0x0FCB */ 0x5C91,0x4A24, - /* Array index: 0x0FCB */ 0x5C94,0x4A25, - /* Array index: 0x0FCB */ 0x5CA1,0x4D25, - /* Array index: 0x0FCB */ 0x5CA9,0x4D27, - /* Array index: 0x0FCB */ 0x5CAB,0x4D28, - /* Array index: 0x0FCB */ 0x5CB1,0x4D29, - /* Array index: 0x0FCB */ 0x5CB3,0x4D2A, - /* Array index: 0x0FCB */ 0x5CB7,0x4D24, - /* Array index: 0x0FCB */ 0x5CB8,0x4D26, - /* Array index: 0x0FCB */ 0x5CD2,0x5072, - /* Array index: 0x0FCB */ 0x5CD9,0x5071, - /* Array index: 0x0FCB */ 0x5CE8,0x5533, - /* Array index: 0x0FCB */ 0x5CEA,0x5532, - /* Array index: 0x0FCB */ 0x5CED,0x552F, - /* Array index: 0x0FCB */ 0x5CF0,0x5534, - /* Array index: 0x0FCB */ 0x5CF4,0x5537, - /* Array index: 0x0FCB */ 0x5CF6,0x5535, - /* Array index: 0x0FCB */ 0x5CFB,0x5531, - /* Array index: 0x0FCB */ 0x5CFD,0x5530, - /* Array index: 0x0FCB */ 0x5D01,0x5536, - /* Array index: 0x0FCB */ 0x5D06,0x5977, - /* Array index: 0x0FCB */ 0x5D07,0x5976, - /* Array index: 0x0FCB */ 0x5D0E,0x5978, - /* Array index: 0x0FCB */ 0x5D11,0x597C, - /* Array index: 0x0FCB */ 0x5D14,0x597E, - /* Array index: 0x0FCB */ 0x5D16,0x597A, - /* Array index: 0x0FCB */ 0x5D17,0x5A24, - /* Array index: 0x0FCB */ 0x5D19,0x5A21, - /* Array index: 0x0FCB */ 0x5D1B,0x5979, - /* Array index: 0x0FCB */ 0x5D22,0x597B, - /* Array index: 0x0FCB */ 0x5D24,0x5A22, - /* Array index: 0x0FCB */ 0x5D27,0x5A23, - /* Array index: 0x0FCB */ 0x5D29,0x597D, - /* Array index: 0x0FCB */ 0x5D34,0x5E76, - /* Array index: 0x0FCB */ 0x5D47,0x5E77, - /* Array index: 0x0FCB */ 0x5D4C,0x5E74, - /* Array index: 0x0FCB */ 0x5D50,0x5E75, - /* Array index: 0x0FCB */ 0x5D69,0x6369, - /* Array index: 0x0FCB */ 0x5D6F,0x636A, - /* Array index: 0x0FCB */ 0x5D84,0x6859, - /* Array index: 0x0FCB */ 0x5D87,0x685A, - /* Array index: 0x0FCB */ 0x5D94,0x6C55, - /* Array index: 0x0FCB */ 0x5D9D,0x6C54, - /* Array index: 0x0FCB */ 0x5DB8,0x7358, - /* Array index: 0x0FCB */ 0x5DBA,0x7356, - /* Array index: 0x0FCB */ 0x5DBC,0x7355, - /* Array index: 0x0FCB */ 0x5DBD,0x7357, - /* Array index: 0x0FCB */ 0x5DC9,0x796B, - /* Array index: 0x0FCB */ 0x5DCD,0x7A69, - /* Array index: 0x0FCB */ 0x5DD2,0x7B5E, - /* Array index: 0x0FCB */ 0x5DD4,0x7B5D, - /* Array index: 0x0FCB */ 0x5DD6,0x7C35, - /* Array index: 0x0FCB */ 0x5DDD,0x4455, - /* Array index: 0x0FCB */ 0x5DDE,0x477C, - /* Array index: 0x0FCB */ 0x5DEB,0x4A27, - /* Array index: 0x0FCB */ 0x5DEE,0x5538, - /* Array index: 0x0FCB */ 0x5DF7,0x5073, - /* Array index: 0x0FCB */ 0x5DFD,0x5E78, - /* Array index: 0x0FCB */ 0x5DFE,0x445A, - /* Array index: 0x0FCB */ 0x5E02,0x464B, - /* Array index: 0x0FCB */ 0x5E03,0x464C, - /* Array index: 0x0FCB */ 0x5E06,0x477D, - /* Array index: 0x0FCB */ 0x5E0C,0x4A28, - /* Array index: 0x0FCB */ 0x5E11,0x4D30, - /* Array index: 0x0FCB */ 0x5E15,0x4D2E, - /* Array index: 0x0FCB */ 0x5E16,0x4D2D, - /* Array index: 0x0FCB */ 0x5E18,0x4D2B, - /* Array index: 0x0FCB */ 0x5E1A,0x4D2C, - /* Array index: 0x0FCB */ 0x5E1B,0x4D2F, - /* Array index: 0x0FCB */ 0x5E1D,0x5074, - /* Array index: 0x0FCB */ 0x5E1F,0x5076, - /* Array index: 0x0FCB */ 0x5E25,0x5075, - /* Array index: 0x0FCB */ 0x5E2B,0x553A, - /* Array index: 0x0FCB */ 0x5E2D,0x5539, - /* Array index: 0x0FCB */ 0x5E33,0x5A28, - /* Array index: 0x0FCB */ 0x5E3D,0x5E7A, - /* Array index: 0x0FCB */ 0x5E40,0x5E7B, - /* Array index: 0x0FCB */ 0x5E43,0x5E7C, - /* Array index: 0x0FCB */ 0x5E45,0x5E79, - /* Array index: 0x0FCB */ 0x5E4C,0x636B, - /* Array index: 0x0FCB */ 0x5E54,0x685F, - /* Array index: 0x0FCB */ 0x5E55,0x685D, - /* Array index: 0x0FCB */ 0x5E57,0x685E, - /* Array index: 0x0FCB */ 0x5E5B,0x685B, - /* Array index: 0x0FCB */ 0x5E6B,0x7359, - /* Array index: 0x0FCB */ 0x5E87,0x4A2A, - /* Array index: 0x0FCB */ 0x5E8A,0x4A2B, - /* Array index: 0x0FCB */ 0x5E8F,0x4A29, - /* Array index: 0x0FCB */ 0x5E9A,0x4D32, - /* Array index: 0x0FCB */ 0x5E9C,0x4D34, - /* Array index: 0x0FCB */ 0x5EA0,0x5078, - /* Array index: 0x0FCB */ 0x5EA6,0x5079, - /* Array index: 0x0FCB */ 0x5EA7,0x553D, - /* Array index: 0x0FCB */ 0x5EAB,0x553B, - /* Array index: 0x0FCB */ 0x5EAD,0x553C, - /* Array index: 0x0FCB */ 0x5EBE,0x5A2E, - /* Array index: 0x0FCB */ 0x5EC1,0x5F21, - /* Array index: 0x0FCB */ 0x5EC2,0x5F22, - /* Array index: 0x0FCB */ 0x5EC4,0x5F23, - /* Array index: 0x0FCB */ 0x5ED3,0x6860, - /* Array index: 0x0FCB */ 0x5ED6,0x6861, - /* Array index: 0x0FCB */ 0x5EDA,0x6C5A, - /* Array index: 0x0FCB */ 0x5EDD,0x6C5C, - /* Array index: 0x0FCB */ 0x5EEC,0x7833, - /* Array index: 0x0FCB */ 0x5EF3,0x7D22, - /* Array index: 0x0FCB */ 0x5EF6,0x4D37, - /* Array index: 0x0FCB */ 0x5EF7,0x4A2C, - /* Array index: 0x0FCB */ 0x5EFA,0x507A, - /* Array index: 0x0FCB */ 0x5EFE,0x445C, - /* Array index: 0x0FCB */ 0x5EFF,0x453D, - /* Array index: 0x0FCB */ 0x5F01,0x464F, - /* Array index: 0x0FCB */ 0x5F04,0x4A2D, - /* Array index: 0x0FCB */ 0x5F08,0x507B, - /* Array index: 0x0FCB */ 0x5F0A,0x6862, - /* Array index: 0x0FCB */ 0x5F0B,0x445D, - /* Array index: 0x0FCB */ 0x5F0F,0x4822, - /* Array index: 0x0FCB */ 0x5F1B,0x4823, - /* Array index: 0x0FCB */ 0x5F1F,0x4A2E, - /* Array index: 0x0FCB */ 0x5F26,0x4D38, - /* Array index: 0x0FCB */ 0x5F27,0x4D39, - /* Array index: 0x0FCB */ 0x5F29,0x4D3A, - /* Array index: 0x0FCB */ 0x5F2D,0x507C, - /* Array index: 0x0FCB */ 0x5F31,0x553E, - /* Array index: 0x0FCB */ 0x5F35,0x5A2F, - /* Array index: 0x0FCB */ 0x5F37,0x5A30, - /* Array index: 0x0FCB */ 0x5F3C,0x5F24, - /* Array index: 0x0FCB */ 0x5F46,0x6863, - /* Array index: 0x0FCB */ 0x5F48,0x6C5F, - /* Array index: 0x0FCB */ 0x5F4A,0x7053, - /* Array index: 0x0FCB */ 0x5F4C,0x735A, - /* Array index: 0x0FCB */ 0x5F4E,0x7B5F, - /* Array index: 0x0FCB */ 0x5F57,0x5A31, - /* Array index: 0x0FCB */ 0x5F59,0x6370, - /* Array index: 0x0FCB */ 0x5F5E,0x7641, - /* Array index: 0x0FCB */ 0x5F62,0x4A30, - /* Array index: 0x0FCB */ 0x5F64,0x4A2F, - /* Array index: 0x0FCB */ 0x5F65,0x507D, - /* Array index: 0x0FCB */ 0x5F77,0x4A31, - /* Array index: 0x0FCB */ 0x5F79,0x4A32, - /* Array index: 0x0FCB */ 0x5F7C,0x4D3E, - /* Array index: 0x0FCB */ 0x5F9C,0x5A3B, - /* Array index: 0x0FCB */ 0x5F9E,0x5A37, - /* Array index: 0x0FCB */ 0x5FA0,0x5A3A, - /* Array index: 0x0FCB */ 0x5FA1,0x5A39, - /* Array index: 0x0FCB */ 0x5FB5,0x6C62, - /* Array index: 0x0FCB */ 0x5FB7,0x6C61, - /* Array index: 0x0FCB */ 0x5FB9,0x6865, - /* Array index: 0x0FCB */ 0x5FBD,0x735B, - /* Array index: 0x0FCB */ 0x5FC3,0x4540, - /* Array index: 0x0FCB */ 0x5FC5,0x4652, - /* Array index: 0x0FCB */ 0x5FCC,0x4A34, - /* Array index: 0x0FCB */ 0x5FCD,0x4A36, - /* Array index: 0x0FCB */ 0x5FDD,0x4D3F, - /* Array index: 0x0FCB */ 0x5FE0,0x4D40, - /* Array index: 0x0FCB */ 0x5FEA,0x4A3A, - /* Array index: 0x0FCB */ 0x5FEB,0x4A38, - /* Array index: 0x0FCB */ 0x5FF1,0x4A37, - /* Array index: 0x0FCB */ 0x5FF5,0x4D42, - /* Array index: 0x0FCB */ 0x5FF8,0x4A39, - /* Array index: 0x0FCB */ 0x5FFD,0x4D41, - /* Array index: 0x0FCB */ 0x5FFF,0x4D43, - /* Array index: 0x0FCB */ 0x600E,0x512B, - /* Array index: 0x0FCB */ 0x600F,0x4D44, - /* Array index: 0x0FCB */ 0x601B,0x4D4F, - /* Array index: 0x0FCB */ 0x601D,0x5128, - /* Array index: 0x0FCB */ 0x6020,0x5129, - /* Array index: 0x0FCB */ 0x6021,0x4D4B, - /* Array index: 0x0FCB */ 0x602F,0x4D46, - /* Array index: 0x0FCB */ 0x6035,0x4D47, - /* Array index: 0x0FCB */ 0x6043,0x5132, - /* Array index: 0x0FCB */ 0x6046,0x5131, - /* Array index: 0x0FCB */ 0x604D,0x512D, - /* Array index: 0x0FCB */ 0x6050,0x5545, - /* Array index: 0x0FCB */ 0x6055,0x5546, - /* Array index: 0x0FCB */ 0x6059,0x5542, - /* Array index: 0x0FCB */ 0x607F,0x5A3C, - /* Array index: 0x0FCB */ 0x6084,0x554A, - /* Array index: 0x0FCB */ 0x6085,0x5550, - /* Array index: 0x0FCB */ 0x6089,0x5A3E, - /* Array index: 0x0FCB */ 0x608C,0x554F, - /* Array index: 0x0FCB */ 0x608D,0x554D, - /* Array index: 0x0FCB */ 0x6094,0x554E, - /* Array index: 0x0FCB */ 0x6096,0x5551, - /* Array index: 0x0FCB */ 0x609A,0x554C, - /* Array index: 0x0FCB */ 0x609F,0x554B, - /* Array index: 0x0FCB */ 0x60A0,0x5A3F, - /* Array index: 0x0FCB */ 0x60A3,0x5A3D, - /* Array index: 0x0FCB */ 0x60A8,0x5A40, - /* Array index: 0x0FCB */ 0x60CB,0x5A41, - /* Array index: 0x0FCB */ 0x60D1,0x5F29, - /* Array index: 0x0FCB */ 0x60D5,0x5A4B, - /* Array index: 0x0FCB */ 0x60D8,0x5A4A, - /* Array index: 0x0FCB */ 0x60DA,0x5A4F, - /* Array index: 0x0FCB */ 0x60DC,0x5A48, - /* Array index: 0x0FCB */ 0x60E6,0x5A43, - /* Array index: 0x0FCB */ 0x6100,0x5F3A, - /* Array index: 0x0FCB */ 0x6101,0x637A, - /* Array index: 0x0FCB */ 0x6106,0x6426, - /* Array index: 0x0FCB */ 0x6108,0x637B, - /* Array index: 0x0FCB */ 0x6109,0x5F39, - /* Array index: 0x0FCB */ 0x6112,0x5F3B, - /* Array index: 0x0FCB */ 0x6115,0x5F31, - /* Array index: 0x0FCB */ 0x611F,0x6376, - /* Array index: 0x0FCB */ 0x6123,0x5F2F, - /* Array index: 0x0FCB */ 0x6127,0x6424, - /* Array index: 0x0FCB */ 0x6134,0x6423, - /* Array index: 0x0FCB */ 0x6137,0x6427, - /* Array index: 0x0FCB */ 0x613E,0x6422, - /* Array index: 0x0FCB */ 0x613F,0x6867, - /* Array index: 0x0FCB */ 0x6144,0x637E, - /* Array index: 0x0FCB */ 0x6155,0x6C67, - /* Array index: 0x0FCB */ 0x6158,0x686E, - /* Array index: 0x0FCB */ 0x615A,0x686D, - /* Array index: 0x0FCB */ 0x615D,0x6C66, - /* Array index: 0x0FCB */ 0x615F,0x686C, - /* Array index: 0x0FCB */ 0x6162,0x686A, - /* Array index: 0x0FCB */ 0x6163,0x686B, - /* Array index: 0x0FCB */ 0x6167,0x6C64, - /* Array index: 0x0FCB */ 0x6168,0x5F35, - /* Array index: 0x0FCB */ 0x616B,0x6C6B, - /* Array index: 0x0FCB */ 0x616E,0x6C65, - /* Array index: 0x0FCB */ 0x6170,0x6C6A, - /* Array index: 0x0FCB */ 0x617C,0x6C69, - /* Array index: 0x0FCB */ 0x617E,0x6C6C, - /* Array index: 0x0FCB */ 0x6182,0x6C68, - /* Array index: 0x0FCB */ 0x618A,0x7057, - /* Array index: 0x0FCB */ 0x618E,0x6C70, - /* Array index: 0x0FCB */ 0x6190,0x6C6E, - /* Array index: 0x0FCB */ 0x6191,0x7055, - /* Array index: 0x0FCB */ 0x6194,0x6C74, - /* Array index: 0x0FCB */ 0x619A,0x6C72, - /* Array index: 0x0FCB */ 0x61A4,0x6C73, - /* Array index: 0x0FCB */ 0x61A7,0x6C6D, - /* Array index: 0x0FCB */ 0x61A9,0x7056, - /* Array index: 0x0FCB */ 0x61AB,0x6C6F, - /* Array index: 0x0FCB */ 0x61AC,0x6C71, - /* Array index: 0x0FCB */ 0x61AE,0x6C75, - /* Array index: 0x0FCB */ 0x61B2,0x7054, - /* Array index: 0x0FCB */ 0x61B6,0x7059, - /* Array index: 0x0FCB */ 0x61BE,0x705A, - /* Array index: 0x0FCB */ 0x61C2,0x735D, - /* Array index: 0x0FCB */ 0x61E3,0x7642, - /* Array index: 0x0FCB */ 0x61E6,0x735F, - /* Array index: 0x0FCB */ 0x61F2,0x7834, - /* Array index: 0x0FCB */ 0x6208,0x4541, - /* Array index: 0x0FCB */ 0x621A,0x5A51, - /* Array index: 0x0FCB */ 0x621B,0x5A52, - /* Array index: 0x0FCB */ 0x621F,0x5F3C, - /* Array index: 0x0FCB */ 0x6221,0x6428, - /* Array index: 0x0FCB */ 0x6222,0x6429, - /* Array index: 0x0FCB */ 0x622A,0x6870, - /* Array index: 0x0FCB */ 0x622E,0x6C76, - /* Array index: 0x0FCB */ 0x6258,0x482C, - /* Array index: 0x0FCB */ 0x625B,0x482B, - /* Array index: 0x0FCB */ 0x6263,0x482A, - /* Array index: 0x0FCB */ 0x6273,0x4A48, - /* Array index: 0x0FCB */ 0x6276,0x4A41, - /* Array index: 0x0FCB */ 0x6279,0x4A47, - /* Array index: 0x0FCB */ 0x6284,0x4A3D, - /* Array index: 0x0FCB */ 0x6286,0x4A50, - /* Array index: 0x0FCB */ 0x6289,0x4A42, - /* Array index: 0x0FCB */ 0x628A,0x4A44, - /* Array index: 0x0FCB */ 0x62A8,0x4D63, - /* Array index: 0x0FCB */ 0x62AB,0x4D5E, - /* Array index: 0x0FCB */ 0x62AC,0x4D71, - /* Array index: 0x0FCB */ 0x62B1,0x4D6C, - /* Array index: 0x0FCB */ 0x62B5,0x4D6A, - /* Array index: 0x0FCB */ 0x62B9,0x4D5B, - /* Array index: 0x0FCB */ 0x62BC,0x4D65, - /* Array index: 0x0FCB */ 0x62BD,0x4D64, - /* Array index: 0x0FCB */ 0x62BF,0x4D59, - /* Array index: 0x0FCB */ 0x62C2,0x4D5A, - /* Array index: 0x0FCB */ 0x62F7,0x5142, - /* Array index: 0x0FCB */ 0x6311,0x5147, - /* Array index: 0x0FCB */ 0x6316,0x5139, - /* Array index: 0x0FCB */ 0x6328,0x5563, - /* Array index: 0x0FCB */ 0x632A,0x5561, - /* Array index: 0x0FCB */ 0x632B,0x5562, - /* Array index: 0x0FCB */ 0x632F,0x5558, - /* Array index: 0x0FCB */ 0x633A,0x555E, - /* Array index: 0x0FCB */ 0x633D,0x5560, - /* Array index: 0x0FCB */ 0x633E,0x5557, - /* Array index: 0x0FCB */ 0x6342,0x555A, - /* Array index: 0x0FCB */ 0x6346,0x555B, - /* Array index: 0x0FCB */ 0x6349,0x555D, - /* Array index: 0x0FCB */ 0x6355,0x5559, - /* Array index: 0x0FCB */ 0x6371,0x5A5E, - /* Array index: 0x0FCB */ 0x6372,0x5A56, - /* Array index: 0x0FCB */ 0x6376,0x5F4D, - /* Array index: 0x0FCB */ 0x6377,0x5A5A, - /* Array index: 0x0FCB */ 0x637A,0x5A70, - /* Array index: 0x0FCB */ 0x637B,0x5A6D, - /* Array index: 0x0FCB */ 0x6380,0x5A6C, - /* Array index: 0x0FCB */ 0x6383,0x5A61, - /* Array index: 0x0FCB */ 0x6384,0x5A65, - /* Array index: 0x0FCB */ 0x6388,0x5A66, - /* Array index: 0x0FCB */ 0x6389,0x5A60, - /* Array index: 0x0FCB */ 0x638C,0x5F3F, - /* Array index: 0x0FCB */ 0x638F,0x5A6B, - /* Array index: 0x0FCB */ 0x6392,0x5A6A, - /* Array index: 0x0FCB */ 0x6396,0x5A57, - /* Array index: 0x0FCB */ 0x6398,0x5A5C, - /* Array index: 0x0FCB */ 0x6399,0x5A67, - /* Array index: 0x0FCB */ 0x639B,0x5A62, - /* Array index: 0x0FCB */ 0x63C0,0x5F41, - /* Array index: 0x0FCB */ 0x63C6,0x5F44, - /* Array index: 0x0FCB */ 0x63C9,0x5F43, - /* Array index: 0x0FCB */ 0x63CD,0x5F45, - /* Array index: 0x0FCB */ 0x63CF,0x5F40, - /* Array index: 0x0FCB */ 0x63D0,0x5F48, - /* Array index: 0x0FCB */ 0x63D2,0x5F46, - /* Array index: 0x0FCB */ 0x63D6,0x5F4A, - /* Array index: 0x0FCB */ 0x63DA,0x5F52, - /* Array index: 0x0FCB */ 0x63DB,0x5F50, - /* Array index: 0x0FCB */ 0x63E1,0x5F49, - /* Array index: 0x0FCB */ 0x63E3,0x5F47, - /* Array index: 0x0FCB */ 0x63E9,0x5F42, - /* Array index: 0x0FCB */ 0x63EA,0x5F4F, - /* Array index: 0x0FCB */ 0x63ED,0x5F4B, - /* Array index: 0x0FCB */ 0x63EE,0x5F4C, - /* Array index: 0x0FCB */ 0x63F4,0x5F4E, - /* Array index: 0x0FCB */ 0x63F9,0x5F53, - /* Array index: 0x0FCB */ 0x6406,0x6438, - /* Array index: 0x0FCB */ 0x640D,0x6434, - /* Array index: 0x0FCB */ 0x640F,0x6431, - /* Array index: 0x0FCB */ 0x641C,0x6432, - /* Array index: 0x0FCB */ 0x641E,0x642C, - /* Array index: 0x0FCB */ 0x642A,0x642D, - /* Array index: 0x0FCB */ 0x642C,0x6430, - /* Array index: 0x0FCB */ 0x642D,0x642E, - /* Array index: 0x0FCB */ 0x6434,0x687A, - /* Array index: 0x0FCB */ 0x6436,0x6435, - /* Array index: 0x0FCB */ 0x643D,0x642F, - /* Array index: 0x0FCB */ 0x643E,0x642B, - /* Array index: 0x0FCB */ 0x6451,0x6878, - /* Array index: 0x0FCB */ 0x6452,0x5F51, - /* Array index: 0x0FCB */ 0x6454,0x6873, - /* Array index: 0x0FCB */ 0x6458,0x6872, - /* Array index: 0x0FCB */ 0x645F,0x6876, - /* Array index: 0x0FCB */ 0x6467,0x6879, - /* Array index: 0x0FCB */ 0x6469,0x6C77, - /* Array index: 0x0FCB */ 0x646D,0x687B, - /* Array index: 0x0FCB */ 0x646F,0x6C78, - /* Array index: 0x0FCB */ 0x6487,0x6871, - /* Array index: 0x0FCB */ 0x6488,0x6C7C, - /* Array index: 0x0FCB */ 0x6490,0x6C7D, - /* Array index: 0x0FCB */ 0x6492,0x6D25, - /* Array index: 0x0FCB */ 0x6493,0x6D22, - /* Array index: 0x0FCB */ 0x6495,0x6D23, - /* Array index: 0x0FCB */ 0x6499,0x6D2B, - /* Array index: 0x0FCB */ 0x649A,0x6D29, - /* Array index: 0x0FCB */ 0x649E,0x6C7A, - /* Array index: 0x0FCB */ 0x64A2,0x6D2C, - /* Array index: 0x0FCB */ 0x64A4,0x6874, - /* Array index: 0x0FCB */ 0x64A5,0x6D21, - /* Array index: 0x0FCB */ 0x64D2,0x7069, - /* Array index: 0x0FCB */ 0x64D4,0x706A, - /* Array index: 0x0FCB */ 0x64D8,0x7365, - /* Array index: 0x0FCB */ 0x64DA,0x7063, - /* Array index: 0x0FCB */ 0x64E0,0x7366, - /* Array index: 0x0FCB */ 0x64E2,0x736B, - /* Array index: 0x0FCB */ 0x64E6,0x7368, - /* Array index: 0x0FCB */ 0x64F7,0x764A, - /* Array index: 0x0FCB */ 0x64FA,0x7648, - /* Array index: 0x0FCB */ 0x64FB,0x7649, - /* Array index: 0x0FCB */ 0x64FE,0x7646, - /* Array index: 0x0FCB */ 0x6500,0x7838, - /* Array index: 0x0FCB */ 0x6506,0x7647, - /* Array index: 0x0FCB */ 0x650F,0x7839, - /* Array index: 0x0FCB */ 0x6514,0x796F, - /* Array index: 0x0FCB */ 0x6518,0x796E, - /* Array index: 0x0FCB */ 0x6519,0x7970, - /* Array index: 0x0FCB */ 0x651C,0x7A6D, - /* Array index: 0x0FCB */ 0x651D,0x7A6C, - /* Array index: 0x0FCB */ 0x6523,0x7C37, - /* Array index: 0x0FCB */ 0x6524,0x7B61, - /* Array index: 0x0FCB */ 0x652F,0x4545, - /* Array index: 0x0FCB */ 0x6536,0x482D, - /* Array index: 0x0FCB */ 0x6538,0x4A53, - /* Array index: 0x0FCB */ 0x6539,0x4A51, - /* Array index: 0x0FCB */ 0x653B,0x4A52, - /* Array index: 0x0FCB */ 0x653E,0x4D73, - /* Array index: 0x0FCB */ 0x653F,0x5149, - /* Array index: 0x0FCB */ 0x6545,0x514A, - /* Array index: 0x0FCB */ 0x6548,0x5566, - /* Array index: 0x0FCB */ 0x6549,0x5567, - /* Array index: 0x0FCB */ 0x654F,0x5A77, - /* Array index: 0x0FCB */ 0x6551,0x5A73, - /* Array index: 0x0FCB */ 0x655D,0x5A71, - /* Array index: 0x0FCB */ 0x655E,0x5F54, - /* Array index: 0x0FCB */ 0x6562,0x5F56, - /* Array index: 0x0FCB */ 0x6563,0x5F57, - /* Array index: 0x0FCB */ 0x6566,0x5F55, - /* Array index: 0x0FCB */ 0x656C,0x6439, - /* Array index: 0x0FCB */ 0x6572,0x687D, - /* Array index: 0x0FCB */ 0x6582,0x736D, - /* Array index: 0x0FCB */ 0x6583,0x736E, - /* Array index: 0x0FCB */ 0x6587,0x4546, - /* Array index: 0x0FCB */ 0x6590,0x5F59, - /* Array index: 0x0FCB */ 0x6591,0x5F58, - /* Array index: 0x0FCB */ 0x6595,0x7A6E, - /* Array index: 0x0FCB */ 0x6597,0x4547, - /* Array index: 0x0FCB */ 0x6599,0x5568, - /* Array index: 0x0FCB */ 0x659B,0x5A7C, - /* Array index: 0x0FCB */ 0x659C,0x5A7B, - /* Array index: 0x0FCB */ 0x659F,0x643A, - /* Array index: 0x0FCB */ 0x65A1,0x687E, - /* Array index: 0x0FCB */ 0x65A4,0x4548, - /* Array index: 0x0FCB */ 0x65A5,0x4658, - /* Array index: 0x0FCB */ 0x65A7,0x4D74, - /* Array index: 0x0FCB */ 0x65AB,0x514B, - /* Array index: 0x0FCB */ 0x65AC,0x5A7D, - /* Array index: 0x0FCB */ 0x65AF,0x5F5A, - /* Array index: 0x0FCB */ 0x65B0,0x643B, - /* Array index: 0x0FCB */ 0x65B7,0x764B, - /* Array index: 0x0FCB */ 0x65B9,0x4549, - /* Array index: 0x0FCB */ 0x65BC,0x4D75, - /* Array index: 0x0FCB */ 0x65BD,0x514C, - /* Array index: 0x0FCB */ 0x65C1,0x5569, - /* Array index: 0x0FCB */ 0x65C5,0x556A, - /* Array index: 0x0FCB */ 0x65D6,0x6922, - /* Array index: 0x0FCB */ 0x65D7,0x6921, - /* Array index: 0x0FCB */ 0x65E2,0x514D, - /* Array index: 0x0FCB */ 0x65F1,0x4A54, - /* Array index: 0x0FCB */ 0x65FA,0x4D76, - /* Array index: 0x0FCB */ 0x6600,0x4D7D, - /* Array index: 0x0FCB */ 0x6602,0x4D7B, - /* Array index: 0x0FCB */ 0x6606,0x4D7A, - /* Array index: 0x0FCB */ 0x6607,0x4E23, - /* Array index: 0x0FCB */ 0x660A,0x4E22, - /* Array index: 0x0FCB */ 0x660C,0x4D79, - /* Array index: 0x0FCB */ 0x660E,0x4D7C, - /* Array index: 0x0FCB */ 0x660F,0x4D7E, - /* Array index: 0x0FCB */ 0x661F,0x5153, - /* Array index: 0x0FCB */ 0x6620,0x5150, - /* Array index: 0x0FCB */ 0x662D,0x514F, - /* Array index: 0x0FCB */ 0x662F,0x5152, - /* Array index: 0x0FCB */ 0x6631,0x5155, - /* Array index: 0x0FCB */ 0x6649,0x556C, - /* Array index: 0x0FCB */ 0x664C,0x5570, - /* Array index: 0x0FCB */ 0x664F,0x556D, - /* Array index: 0x0FCB */ 0x6652,0x556F, - /* Array index: 0x0FCB */ 0x665A,0x5B25, - /* Array index: 0x0FCB */ 0x665D,0x5B24, - /* Array index: 0x0FCB */ 0x665E,0x5B29, - /* Array index: 0x0FCB */ 0x6664,0x5B26, - /* Array index: 0x0FCB */ 0x6666,0x5B28, - /* Array index: 0x0FCB */ 0x6668,0x5B27, - /* Array index: 0x0FCB */ 0x6674,0x5F5D, - /* Array index: 0x0FCB */ 0x6676,0x5F5E, - /* Array index: 0x0FCB */ 0x6677,0x5F63, - /* Array index: 0x0FCB */ 0x667A,0x5F61, - /* Array index: 0x0FCB */ 0x667E,0x5F62, - /* Array index: 0x0FCB */ 0x6684,0x6441, - /* Array index: 0x0FCB */ 0x668D,0x6443, - /* Array index: 0x0FCB */ 0x6691,0x5F60, - /* Array index: 0x0FCB */ 0x669D,0x6925, - /* Array index: 0x0FCB */ 0x66A2,0x6923, - /* Array index: 0x0FCB */ 0x66A8,0x6924, - /* Array index: 0x0FCB */ 0x66AB,0x6D32, - /* Array index: 0x0FCB */ 0x66AE,0x6D31, - /* Array index: 0x0FCB */ 0x66B1,0x6D34, - /* Array index: 0x0FCB */ 0x66B4,0x6D33, - /* Array index: 0x0FCB */ 0x66B8,0x7072, - /* Array index: 0x0FCB */ 0x66B9,0x706F, - /* Array index: 0x0FCB */ 0x66C4,0x7070, - /* Array index: 0x0FCB */ 0x66C6,0x706D, - /* Array index: 0x0FCB */ 0x66C7,0x7071, - /* Array index: 0x0FCB */ 0x66C9,0x706E, - /* Array index: 0x0FCB */ 0x66D6,0x7370, - /* Array index: 0x0FCB */ 0x66D9,0x736F, - /* Array index: 0x0FCB */ 0x66DC,0x764C, - /* Array index: 0x0FCB */ 0x66DD,0x783B, - /* Array index: 0x0FCB */ 0x66E0,0x783A, - /* Array index: 0x0FCB */ 0x66E6,0x7971, - /* Array index: 0x0FCB */ 0x66E9,0x7A6F, - /* Array index: 0x0FCB */ 0x66EC,0x7C3A, - /* Array index: 0x0FCB */ 0x6703,0x6444, - /* Array index: 0x0FCB */ 0x6708,0x454C, - /* Array index: 0x0FCB */ 0x6709,0x4834, - /* Array index: 0x0FCB */ 0x670B,0x4E25, - /* Array index: 0x0FCB */ 0x670D,0x4E24, - /* Array index: 0x0FCB */ 0x6714,0x5574, - /* Array index: 0x0FCB */ 0x6715,0x5575, - /* Array index: 0x0FCB */ 0x6717,0x5576, - /* Array index: 0x0FCB */ 0x671B,0x5B2C, - /* Array index: 0x0FCB */ 0x671D,0x5F67, - /* Array index: 0x0FCB */ 0x671F,0x5F66, - /* Array index: 0x0FCB */ 0x6731,0x4837, - /* Array index: 0x0FCB */ 0x6734,0x4836, - /* Array index: 0x0FCB */ 0x6735,0x4838, - /* Array index: 0x0FCB */ 0x673D,0x4835, - /* Array index: 0x0FCB */ 0x6746,0x4A5F, - /* Array index: 0x0FCB */ 0x6749,0x4A5E, - /* Array index: 0x0FCB */ 0x676A,0x4E3A, - /* Array index: 0x0FCB */ 0x677C,0x4E39, - /* Array index: 0x0FCB */ 0x677E,0x4E34, - /* Array index: 0x0FCB */ 0x677F,0x4E32, - /* Array index: 0x0FCB */ 0x6787,0x4E2D, - /* Array index: 0x0FCB */ 0x6789,0x4E33, - /* Array index: 0x0FCB */ 0x678B,0x4E27, - /* Array index: 0x0FCB */ 0x6790,0x4E35, - /* Array index: 0x0FCB */ 0x6793,0x4E38, - /* Array index: 0x0FCB */ 0x6795,0x4E28, - /* Array index: 0x0FCB */ 0x6797,0x4E2F, - /* Array index: 0x0FCB */ 0x679A,0x4E37, - /* Array index: 0x0FCB */ 0x679C,0x4E2A, - /* Array index: 0x0FCB */ 0x679D,0x4E2E, - /* Array index: 0x0FCB */ 0x67AF,0x515F, - /* Array index: 0x0FCB */ 0x67B0,0x516C, - /* Array index: 0x0FCB */ 0x67B4,0x5165, - /* Array index: 0x0FCB */ 0x67B6,0x515E, - /* Array index: 0x0FCB */ 0x67B8,0x5168, - /* Array index: 0x0FCB */ 0x67C4,0x5163, - /* Array index: 0x0FCB */ 0x67D9,0x516D, - /* Array index: 0x0FCB */ 0x67DA,0x5166, - /* Array index: 0x0FCB */ 0x67DD,0x516F, - /* Array index: 0x0FCB */ 0x67DE,0x516A, - /* Array index: 0x0FCB */ 0x67E2,0x516E, - /* Array index: 0x0FCB */ 0x67E5,0x5167, - /* Array index: 0x0FCB */ 0x67E9,0x5161, - /* Array index: 0x0FCB */ 0x67EC,0x515D, - /* Array index: 0x0FCB */ 0x67EF,0x5162, - /* Array index: 0x0FCB */ 0x67FF,0x5158, - /* Array index: 0x0FCB */ 0x6813,0x562E, - /* Array index: 0x0FCB */ 0x6817,0x5623, - /* Array index: 0x0FCB */ 0x6818,0x562F, - /* Array index: 0x0FCB */ 0x6821,0x5577, - /* Array index: 0x0FCB */ 0x6829,0x5621, - /* Array index: 0x0FCB */ 0x682A,0x562C, - /* Array index: 0x0FCB */ 0x6838,0x5578, - /* Array index: 0x0FCB */ 0x6839,0x557C, - /* Array index: 0x0FCB */ 0x684C,0x5624, - /* Array index: 0x0FCB */ 0x6876,0x5B33, - /* Array index: 0x0FCB */ 0x6893,0x5B30, - /* Array index: 0x0FCB */ 0x6894,0x5B3D, - /* Array index: 0x0FCB */ 0x6897,0x5B36, - /* Array index: 0x0FCB */ 0x689D,0x5B3E, - /* Array index: 0x0FCB */ 0x689F,0x5B40, - /* Array index: 0x0FCB */ 0x68A1,0x5B41, - /* Array index: 0x0FCB */ 0x68A2,0x5B2F, - /* Array index: 0x0FCB */ 0x68A7,0x5B35, - /* Array index: 0x0FCB */ 0x68A8,0x5B3F, - /* Array index: 0x0FCB */ 0x68C4,0x5B39, - /* Array index: 0x0FCB */ 0x68C9,0x5F7B, - /* Array index: 0x0FCB */ 0x68CB,0x5F76, - /* Array index: 0x0FCB */ 0x68CD,0x5F77, - /* Array index: 0x0FCB */ 0x68D2,0x5F73, - /* Array index: 0x0FCB */ 0x68D5,0x5F69, - /* Array index: 0x0FCB */ 0x68D7,0x5F6C, - /* Array index: 0x0FCB */ 0x68D8,0x5F6B, - /* Array index: 0x0FCB */ 0x68DA,0x5F7C, - /* Array index: 0x0FCB */ 0x68DF,0x5F6E, - /* Array index: 0x0FCB */ 0x68E0,0x5F6A, - /* Array index: 0x0FCB */ 0x68E3,0x5F75, - /* Array index: 0x0FCB */ 0x68E7,0x5F71, - /* Array index: 0x0FCB */ 0x68EE,0x5F70, - /* Array index: 0x0FCB */ 0x68F2,0x5F74, - /* Array index: 0x0FCB */ 0x68F5,0x5F6F, - /* Array index: 0x0FCB */ 0x6905,0x5F6D, - /* Array index: 0x0FCB */ 0x690D,0x5F78, - /* Array index: 0x0FCB */ 0x690E,0x5F7A, - /* Array index: 0x0FCB */ 0x6912,0x5F79, - /* Array index: 0x0FCB */ 0x6930,0x644C, - /* Array index: 0x0FCB */ 0x694A,0x644E, - /* Array index: 0x0FCB */ 0x6953,0x6452, - /* Array index: 0x0FCB */ 0x6954,0x644A, - /* Array index: 0x0FCB */ 0x6963,0x6456, - /* Array index: 0x0FCB */ 0x6968,0x644F, - /* Array index: 0x0FCB */ 0x696B,0x6450, - /* Array index: 0x0FCB */ 0x696D,0x6446, - /* Array index: 0x0FCB */ 0x696E,0x5F7D, - /* Array index: 0x0FCB */ 0x6975,0x644B, - /* Array index: 0x0FCB */ 0x6977,0x6448, - /* Array index: 0x0FCB */ 0x6979,0x6453, - /* Array index: 0x0FCB */ 0x6982,0x644D, - /* Array index: 0x0FCB */ 0x6986,0x6454, - /* Array index: 0x0FCB */ 0x6994,0x6445, - /* Array index: 0x0FCB */ 0x6995,0x6928, - /* Array index: 0x0FCB */ 0x699B,0x692D, - /* Array index: 0x0FCB */ 0x699C,0x6926, - /* Array index: 0x0FCB */ 0x69A3,0x6938, - /* Array index: 0x0FCB */ 0x69A6,0x6936, - /* Array index: 0x0FCB */ 0x69A8,0x6927, - /* Array index: 0x0FCB */ 0x69AB,0x6930, - /* Array index: 0x0FCB */ 0x69AD,0x6934, - /* Array index: 0x0FCB */ 0x69AE,0x692A, - /* Array index: 0x0FCB */ 0x69B4,0x6931, - /* Array index: 0x0FCB */ 0x69B7,0x692E, - /* Array index: 0x0FCB */ 0x69BB,0x692F, - /* Array index: 0x0FCB */ 0x69C1,0x6929, - /* Array index: 0x0FCB */ 0x69C3,0x6937, - /* Array index: 0x0FCB */ 0x69D0,0x6932, - /* Array index: 0x0FCB */ 0x69D3,0x692B, - /* Array index: 0x0FCB */ 0x69E8,0x6D37, - /* Array index: 0x0FCB */ 0x69ED,0x6D42, - /* Array index: 0x0FCB */ 0x69F3,0x6D3F, - /* Array index: 0x0FCB */ 0x69FD,0x6D3B, - /* Array index: 0x0FCB */ 0x6A01,0x6D38, - /* Array index: 0x0FCB */ 0x6A02,0x6D40, - /* Array index: 0x0FCB */ 0x6A05,0x6D41, - /* Array index: 0x0FCB */ 0x6A0A,0x6D3E, - /* Array index: 0x0FCB */ 0x6A11,0x6D43, - /* Array index: 0x0FCB */ 0x6A13,0x6D3D, - /* Array index: 0x0FCB */ 0x6A19,0x6D3A, - /* Array index: 0x0FCB */ 0x6A1E,0x6D39, - /* Array index: 0x0FCB */ 0x6A1F,0x6D36, - /* Array index: 0x0FCB */ 0x6A21,0x6D3C, - /* Array index: 0x0FCB */ 0x6A23,0x6D35, - /* Array index: 0x0FCB */ 0x6A35,0x7121, - /* Array index: 0x0FCB */ 0x6A3D,0x7073, - /* Array index: 0x0FCB */ 0x6A44,0x707A, - /* Array index: 0x0FCB */ 0x6A47,0x707E, - /* Array index: 0x0FCB */ 0x6A48,0x7123, - /* Array index: 0x0FCB */ 0x6A4B,0x707D, - /* Array index: 0x0FCB */ 0x6A58,0x7078, - /* Array index: 0x0FCB */ 0x6A59,0x7076, - /* Array index: 0x0FCB */ 0x6A5F,0x7122, - /* Array index: 0x0FCB */ 0x6A61,0x707C, - /* Array index: 0x0FCB */ 0x6A62,0x707B, - /* Array index: 0x0FCB */ 0x6A6B,0x7077, - /* Array index: 0x0FCB */ 0x6A7E,0x7378, - /* Array index: 0x0FCB */ 0x6A80,0x7371, - /* Array index: 0x0FCB */ 0x6A84,0x7373, - /* Array index: 0x0FCB */ 0x6A90,0x737A, - /* Array index: 0x0FCB */ 0x6A94,0x7372, - /* Array index: 0x0FCB */ 0x6A97,0x7379, - /* Array index: 0x0FCB */ 0x6A9C,0x7375, - /* Array index: 0x0FCB */ 0x6AA0,0x737B, - /* Array index: 0x0FCB */ 0x6AA2,0x7374, - /* Array index: 0x0FCB */ 0x6AA3,0x7377, - /* Array index: 0x0FCB */ 0x6AAC,0x764F, - /* Array index: 0x0FCB */ 0x6AAE,0x7654, - /* Array index: 0x0FCB */ 0x6AAF,0x7655, - /* Array index: 0x0FCB */ 0x6AB3,0x764E, - /* Array index: 0x0FCB */ 0x6AB8,0x7652, - /* Array index: 0x0FCB */ 0x6ABB,0x7651, - /* Array index: 0x0FCB */ 0x6AC2,0x7653, - /* Array index: 0x0FCB */ 0x6AC3,0x7650, - /* Array index: 0x0FCB */ 0x6AD3,0x783F, - /* Array index: 0x0FCB */ 0x6ADA,0x783E, - /* Array index: 0x0FCB */ 0x6ADB,0x7376, - /* Array index: 0x0FCB */ 0x6ADD,0x783D, - /* Array index: 0x0FCB */ 0x6AE5,0x783C, - /* Array index: 0x0FCB */ 0x6AEC,0x7973, - /* Array index: 0x0FCB */ 0x6AFA,0x7A72, - /* Array index: 0x0FCB */ 0x6AFB,0x7A70, - /* Array index: 0x0FCB */ 0x6B04,0x7A71, - /* Array index: 0x0FCB */ 0x6B0A,0x7B62, - /* Array index: 0x0FCB */ 0x6B10,0x7C3B, - /* Array index: 0x0FCB */ 0x6B16,0x7D23, - /* Array index: 0x0FCB */ 0x6B20,0x454E, - /* Array index: 0x0FCB */ 0x6B21,0x4839, - /* Array index: 0x0FCB */ 0x6B23,0x4E3C, - /* Array index: 0x0FCB */ 0x6B32,0x5B43, - /* Array index: 0x0FCB */ 0x6B3A,0x6022, - /* Array index: 0x0FCB */ 0x6B3D,0x6023, - /* Array index: 0x0FCB */ 0x6B3E,0x6021, - /* Array index: 0x0FCB */ 0x6B47,0x6458, - /* Array index: 0x0FCB */ 0x6B49,0x6939, - /* Array index: 0x0FCB */ 0x6B4C,0x693A, - /* Array index: 0x0FCB */ 0x6B4E,0x6D45, - /* Array index: 0x0FCB */ 0x6B50,0x6D44, - /* Array index: 0x0FCB */ 0x6B59,0x7124, - /* Array index: 0x0FCB */ 0x6B5C,0x737C, - /* Array index: 0x0FCB */ 0x6B6A,0x5171, - /* Array index: 0x0FCB */ 0x6B72,0x6459, - /* Array index: 0x0FCB */ 0x6B7F,0x4E3F, - /* Array index: 0x0FCB */ 0x6B83,0x5172, - /* Array index: 0x0FCB */ 0x6B86,0x5173, - /* Array index: 0x0FCB */ 0x6B89,0x5632, - /* Array index: 0x0FCB */ 0x6B8A,0x5631, - /* Array index: 0x0FCB */ 0x6B96,0x6025, - /* Array index: 0x0FCB */ 0x6B98,0x6024, - /* Array index: 0x0FCB */ 0x6BA4,0x6D46, - /* Array index: 0x0FCB */ 0x6BAE,0x737D, - /* Array index: 0x0FCB */ 0x6BAF,0x7658, - /* Array index: 0x0FCB */ 0x6BB2,0x7A73, - /* Array index: 0x0FCB */ 0x6BB5,0x5174, - /* Array index: 0x0FCB */ 0x6BB7,0x5633, - /* Array index: 0x0FCB */ 0x6BBA,0x5B44, - /* Array index: 0x0FCB */ 0x6BBC,0x6026, - /* Array index: 0x0FCB */ 0x6BBF,0x645B, - /* Array index: 0x0FCB */ 0x6BC0,0x645A, - /* Array index: 0x0FCB */ 0x6BC5,0x6D47, - /* Array index: 0x0FCB */ 0x6BC6,0x6D48, - /* Array index: 0x0FCB */ 0x6BCB,0x4551, - /* Array index: 0x0FCB */ 0x6BCD,0x4660, - /* Array index: 0x0FCB */ 0x6BCF,0x4A64, - /* Array index: 0x0FCB */ 0x6BD7,0x5176, - /* Array index: 0x0FCB */ 0x6BDA,0x737E, - /* Array index: 0x0FCB */ 0x6BDB,0x4553, - /* Array index: 0x0FCB */ 0x6BEB,0x5B45, - /* Array index: 0x0FCB */ 0x6BEC,0x5B46, - /* Array index: 0x0FCB */ 0x6BEF,0x6027, - /* Array index: 0x0FCB */ 0x6BFD,0x645D, - /* Array index: 0x0FCB */ 0x6C05,0x7126, - /* Array index: 0x0FCB */ 0x6C08,0x7421, - /* Array index: 0x0FCB */ 0x6C16,0x483C, - /* Array index: 0x0FCB */ 0x6C1B,0x4E41, - /* Array index: 0x0FCB */ 0x6C1F,0x5177, - /* Array index: 0x0FCB */ 0x6C33,0x693B, - /* Array index: 0x0FCB */ 0x6C34,0x4555, - /* Array index: 0x0FCB */ 0x6C38,0x4663, - /* Array index: 0x0FCB */ 0x6C4D,0x4846, - /* Array index: 0x0FCB */ 0x6C4E,0x4847, - /* Array index: 0x0FCB */ 0x6C50,0x4842, - /* Array index: 0x0FCB */ 0x6C55,0x4843, - /* Array index: 0x0FCB */ 0x6C57,0x483E, - /* Array index: 0x0FCB */ 0x6C59,0x483F, - /* Array index: 0x0FCB */ 0x6C68,0x4A72, - /* Array index: 0x0FCB */ 0x6C6A,0x4A6D, - /* Array index: 0x0FCB */ 0x6C70,0x4A70, - /* Array index: 0x0FCB */ 0x6C72,0x4A77, - /* Array index: 0x0FCB */ 0x6C74,0x4A79, - /* Array index: 0x0FCB */ 0x6C76,0x4A7B, - /* Array index: 0x0FCB */ 0x6C7A,0x4A6E, - /* Array index: 0x0FCB */ 0x6C90,0x4A6F, - /* Array index: 0x0FCB */ 0x6C92,0x4A74, - /* Array index: 0x0FCB */ 0x6C94,0x4A7D, - /* Array index: 0x0FCB */ 0x6C96,0x4A73, - /* Array index: 0x0FCB */ 0x6C98,0x4A7E, - /* Array index: 0x0FCB */ 0x6C99,0x4A67, - /* Array index: 0x0FCB */ 0x6C9B,0x4A6C, - /* Array index: 0x0FCB */ 0x6CAB,0x4E4D, - /* Array index: 0x0FCB */ 0x6CAC,0x4E5D, - /* Array index: 0x0FCB */ 0x6CAE,0x4E54, - /* Array index: 0x0FCB */ 0x6CB1,0x4E45, - /* Array index: 0x0FCB */ 0x6CB3,0x4E48, - /* Array index: 0x0FCB */ 0x6CC9,0x5178, - /* Array index: 0x0FCB */ 0x6CCA,0x4E5C, - /* Array index: 0x0FCB */ 0x6CCC,0x4E46, - /* Array index: 0x0FCB */ 0x6CDB,0x4E5B, - /* Array index: 0x0FCB */ 0x6CDC,0x4E5F, - /* Array index: 0x0FCB */ 0x6CE8,0x4E43, - /* Array index: 0x0FCB */ 0x6D0B,0x5179, - /* Array index: 0x0FCB */ 0x6D0C,0x517E, - /* Array index: 0x0FCB */ 0x6D0E,0x5230, - /* Array index: 0x0FCB */ 0x6D17,0x5223, - /* Array index: 0x0FCB */ 0x6D1B,0x5228, - /* Array index: 0x0FCB */ 0x6D1E,0x5222, - /* Array index: 0x0FCB */ 0x6D25,0x517D, - /* Array index: 0x0FCB */ 0x6D2E,0x522E, - /* Array index: 0x0FCB */ 0x6D31,0x5221, - /* Array index: 0x0FCB */ 0x6D32,0x517A, - /* Array index: 0x0FCB */ 0x6D41,0x517C, - /* Array index: 0x0FCB */ 0x6D59,0x5641, - /* Array index: 0x0FCB */ 0x6D5A,0x5646, - /* Array index: 0x0FCB */ 0x6D65,0x564D, - /* Array index: 0x0FCB */ 0x6D66,0x563E, - /* Array index: 0x0FCB */ 0x6D69,0x5648, - /* Array index: 0x0FCB */ 0x6D6A,0x563A, - /* Array index: 0x0FCB */ 0x6D6C,0x5643, - /* Array index: 0x0FCB */ 0x6D6E,0x5645, - /* Array index: 0x0FCB */ 0x6D74,0x5647, - /* Array index: 0x0FCB */ 0x6DAA,0x5B6A, - /* Array index: 0x0FCB */ 0x6DAE,0x5B57, - /* Array index: 0x0FCB */ 0x6DAF,0x5B55, - /* Array index: 0x0FCB */ 0x6DB2,0x5B4C, - /* Array index: 0x0FCB */ 0x6DB5,0x5B60, - /* Array index: 0x0FCB */ 0x6DB8,0x5B5A, - /* Array index: 0x0FCB */ 0x6DBC,0x5B49, - /* Array index: 0x0FCB */ 0x6DBF,0x5B6C, - /* Array index: 0x0FCB */ 0x6DCB,0x5B54, - /* Array index: 0x0FCB */ 0x6DCC,0x5B4E, - /* Array index: 0x0FCB */ 0x6DD1,0x5B56, - /* Array index: 0x0FCB */ 0x6DD2,0x5B5E, - /* Array index: 0x0FCB */ 0x6DDE,0x5B58, - /* Array index: 0x0FCB */ 0x6DE1,0x5B4D, - /* Array index: 0x0FCB */ 0x6DE4,0x5B4F, - /* Array index: 0x0FCB */ 0x6DE6,0x5B6D, - /* Array index: 0x0FCB */ 0x6DF1,0x5B65, - /* Array index: 0x0FCB */ 0x6DF3,0x5B4A, - /* Array index: 0x0FCB */ 0x6DF5,0x5B5C, - /* Array index: 0x0FCB */ 0x6E05,0x5B52, - /* Array index: 0x0FCB */ 0x6E2C,0x6041, - /* Array index: 0x0FCB */ 0x6E2D,0x603B, - /* Array index: 0x0FCB */ 0x6E2F,0x602B, - /* Array index: 0x0FCB */ 0x6E32,0x602F, - /* Array index: 0x0FCB */ 0x6E34,0x603E, - /* Array index: 0x0FCB */ 0x6E38,0x602C, - /* Array index: 0x0FCB */ 0x6E3A,0x6040, - /* Array index: 0x0FCB */ 0x6E3E,0x6044, - /* Array index: 0x0FCB */ 0x6E43,0x6042, - /* Array index: 0x0FCB */ 0x6E44,0x604A, - /* Array index: 0x0FCB */ 0x6E4A,0x6031, - /* Array index: 0x0FCB */ 0x6E4D,0x603F, - /* Array index: 0x0FCB */ 0x6E4E,0x6048, - /* Array index: 0x0FCB */ 0x6E54,0x602D, - /* Array index: 0x0FCB */ 0x6E56,0x6039, - /* Array index: 0x0FCB */ 0x6E58,0x6037, - /* Array index: 0x0FCB */ 0x6E5B,0x6036, - /* Array index: 0x0FCB */ 0x6E5F,0x604D, - /* Array index: 0x0FCB */ 0x6E63,0x6049, - /* Array index: 0x0FCB */ 0x6E67,0x6030, - /* Array index: 0x0FCB */ 0x6E69,0x604C, - /* Array index: 0x0FCB */ 0x6E6E,0x603A, - /* Array index: 0x0FCB */ 0x6E6F,0x603D, - /* Array index: 0x0FCB */ 0x6E72,0x604B, - /* Array index: 0x0FCB */ 0x6E89,0x6046, - /* Array index: 0x0FCB */ 0x6E90,0x6463, - /* Array index: 0x0FCB */ 0x6E96,0x646D, - /* Array index: 0x0FCB */ 0x6E98,0x6468, - /* Array index: 0x0FCB */ 0x6E9C,0x646E, - /* Array index: 0x0FCB */ 0x6E9D,0x6464, - /* Array index: 0x0FCB */ 0x6EA2,0x645E, - /* Array index: 0x0FCB */ 0x6EA5,0x6467, - /* Array index: 0x0FCB */ 0x6EA7,0x6472, - /* Array index: 0x0FCB */ 0x6EAA,0x6471, - /* Array index: 0x0FCB */ 0x6EAB,0x646B, - /* Array index: 0x0FCB */ 0x6EAF,0x645F, - /* Array index: 0x0FCB */ 0x6EB4,0x6473, - /* Array index: 0x0FCB */ 0x6EB6,0x6461, - /* Array index: 0x0FCB */ 0x6EBA,0x646A, - /* Array index: 0x0FCB */ 0x6EBC,0x6469, - /* Array index: 0x0FCB */ 0x6EC2,0x6462, - /* Array index: 0x0FCB */ 0x6EC4,0x646F, - /* Array index: 0x0FCB */ 0x6EC5,0x6466, - /* Array index: 0x0FCB */ 0x6EC7,0x6465, - /* Array index: 0x0FCB */ 0x6ECB,0x6045, - /* Array index: 0x0FCB */ 0x6ECC,0x6957, - /* Array index: 0x0FCB */ 0x6EEC,0x6954, - /* Array index: 0x0FCB */ 0x6EEF,0x6949, - /* Array index: 0x0FCB */ 0x6EF2,0x6956, - /* Array index: 0x0FCB */ 0x6EF4,0x6940, - /* Array index: 0x0FCB */ 0x6EF7,0x6958, - /* Array index: 0x0FCB */ 0x6F06,0x694A, - /* Array index: 0x0FCB */ 0x6F0F,0x6945, - /* Array index: 0x0FCB */ 0x6F20,0x6943, - /* Array index: 0x0FCB */ 0x6F22,0x6947, - /* Array index: 0x0FCB */ 0x6F23,0x694E, - /* Array index: 0x0FCB */ 0x6F38,0x694C, - /* Array index: 0x0FCB */ 0x6F3E,0x6942, - /* Array index: 0x0FCB */ 0x6F3F,0x6D49, - /* Array index: 0x0FCB */ 0x6F51,0x6D4C, - /* Array index: 0x0FCB */ 0x6F54,0x6D4E, - /* Array index: 0x0FCB */ 0x6F58,0x6D59, - /* Array index: 0x0FCB */ 0x6F5B,0x6D51, - /* Array index: 0x0FCB */ 0x6F5F,0x6D5D, - /* Array index: 0x0FCB */ 0x6F60,0x6D5C, - /* Array index: 0x0FCB */ 0x6F64,0x6D57, - /* Array index: 0x0FCB */ 0x6F66,0x6D4D, - /* Array index: 0x0FCB */ 0x6F78,0x6D52, - /* Array index: 0x0FCB */ 0x6F7A,0x6D55, - /* Array index: 0x0FCB */ 0x6F7C,0x6D4A, - /* Array index: 0x0FCB */ 0x6F80,0x742A, - /* Array index: 0x0FCB */ 0x6F84,0x6D4B, - /* Array index: 0x0FCB */ 0x6F86,0x6D4F, - /* Array index: 0x0FCB */ 0x6F88,0x6952, - /* Array index: 0x0FCB */ 0x6F8E,0x6D54, - /* Array index: 0x0FCB */ 0x6F97,0x6D58, - /* Array index: 0x0FCB */ 0x6FA0,0x7133, - /* Array index: 0x0FCB */ 0x6FA1,0x7129, - /* Array index: 0x0FCB */ 0x6FA4,0x712B, - /* Array index: 0x0FCB */ 0x6FA6,0x7132, - /* Array index: 0x0FCB */ 0x6FA7,0x712D, - /* Array index: 0x0FCB */ 0x6FB1,0x7128, - /* Array index: 0x0FCB */ 0x6FB3,0x712E, - /* Array index: 0x0FCB */ 0x6FB4,0x7134, - /* Array index: 0x0FCB */ 0x6FB6,0x7131, - /* Array index: 0x0FCB */ 0x6FB9,0x7130, - /* Array index: 0x0FCB */ 0x6FD5,0x742E, - /* Array index: 0x0FCB */ 0x6FD8,0x7422, - /* Array index: 0x0FCB */ 0x6FDB,0x7426, - /* Array index: 0x0FCB */ 0x6FE4,0x7427, - /* Array index: 0x0FCB */ 0x6FE9,0x742D, - /* Array index: 0x0FCB */ 0x6FFA,0x765D, - /* Array index: 0x0FCB */ 0x6FFE,0x765B, - /* Array index: 0x0FCB */ 0x7006,0x765C, - /* Array index: 0x0FCB */ 0x7009,0x7659, - /* Array index: 0x0FCB */ 0x700B,0x765A, - /* Array index: 0x0FCB */ 0x700F,0x765F, - /* Array index: 0x0FCB */ 0x7011,0x765E, - /* Array index: 0x0FCB */ 0x7015,0x7845, - /* Array index: 0x0FCB */ 0x7018,0x7846, - /* Array index: 0x0FCB */ 0x701A,0x7843, - /* Array index: 0x0FCB */ 0x701B,0x7840, - /* Array index: 0x0FCB */ 0x701D,0x7844, - /* Array index: 0x0FCB */ 0x701F,0x7841, - /* Array index: 0x0FCB */ 0x7028,0x7842, - /* Array index: 0x0FCB */ 0x7030,0x7975, - /* Array index: 0x0FCB */ 0x7032,0x7976, - /* Array index: 0x0FCB */ 0x703E,0x7974, - /* Array index: 0x0FCB */ 0x704C,0x7A74, - /* Array index: 0x0FCB */ 0x7051,0x7B64, - /* Array index: 0x0FCB */ 0x7058,0x7B65, - /* Array index: 0x0FCB */ 0x705E,0x7C60, - /* Array index: 0x0FCB */ 0x7063,0x7D24, - /* Array index: 0x0FCB */ 0x7064,0x7D32, - /* Array index: 0x0FCB */ 0x706B,0x4556, - /* Array index: 0x0FCB */ 0x7070,0x4848, - /* Array index: 0x0FCB */ 0x7076,0x4B22, - /* Array index: 0x0FCB */ 0x7078,0x4B25, - /* Array index: 0x0FCB */ 0x707C,0x4B23, - /* Array index: 0x0FCB */ 0x707D,0x4B24, - /* Array index: 0x0FCB */ 0x708A,0x4E65, - /* Array index: 0x0FCB */ 0x708E,0x4E63, - /* Array index: 0x0FCB */ 0x7092,0x4E64, - /* Array index: 0x0FCB */ 0x7095,0x4E62, - /* Array index: 0x0FCB */ 0x7099,0x4E66, - /* Array index: 0x0FCB */ 0x70A4,0x523A, - /* Array index: 0x0FCB */ 0x70B3,0x5234, - /* Array index: 0x0FCB */ 0x70B8,0x5238, - /* Array index: 0x0FCB */ 0x70BA,0x5233, - /* Array index: 0x0FCB */ 0x70C8,0x5653, - /* Array index: 0x0FCB */ 0x70CA,0x564F, - /* Array index: 0x0FCB */ 0x70CF,0x5654, - /* Array index: 0x0FCB */ 0x70D8,0x5650, - /* Array index: 0x0FCB */ 0x70D9,0x5652, - /* Array index: 0x0FCB */ 0x70E4,0x5651, - /* Array index: 0x0FCB */ 0x70EF,0x5B72, - /* Array index: 0x0FCB */ 0x70F9,0x5B6E, - /* Array index: 0x0FCB */ 0x70FD,0x5B71, - /* Array index: 0x0FCB */ 0x7109,0x5B6F, - /* Array index: 0x0FCB */ 0x710A,0x5B70, - /* Array index: 0x0FCB */ 0x7119,0x604E, - /* Array index: 0x0FCB */ 0x711A,0x604F, - /* Array index: 0x0FCB */ 0x711C,0x6055, - /* Array index: 0x0FCB */ 0x7121,0x6052, - /* Array index: 0x0FCB */ 0x7126,0x6050, - /* Array index: 0x0FCB */ 0x7130,0x6051, - /* Array index: 0x0FCB */ 0x7136,0x6053, - /* Array index: 0x0FCB */ 0x7146,0x6522, - /* Array index: 0x0FCB */ 0x7149,0x6478, - /* Array index: 0x0FCB */ 0x714C,0x647D, - /* Array index: 0x0FCB */ 0x714E,0x6474, - /* Array index: 0x0FCB */ 0x7156,0x6524, - /* Array index: 0x0FCB */ 0x7159,0x6475, - /* Array index: 0x0FCB */ 0x715C,0x647A, - /* Array index: 0x0FCB */ 0x715E,0x6521, - /* Array index: 0x0FCB */ 0x716C,0x647B, - /* Array index: 0x0FCB */ 0x716E,0x6054, - /* Array index: 0x0FCB */ 0x717D,0x695B, - /* Array index: 0x0FCB */ 0x7184,0x695D, - /* Array index: 0x0FCB */ 0x718A,0x695C, - /* Array index: 0x0FCB */ 0x7192,0x695E, - /* Array index: 0x0FCB */ 0x7194,0x6959, - /* Array index: 0x0FCB */ 0x7199,0x695A, - /* Array index: 0x0FCB */ 0x719F,0x6D5E, - /* Array index: 0x0FCB */ 0x71A8,0x6D61, - /* Array index: 0x0FCB */ 0x71AC,0x6D5F, - /* Array index: 0x0FCB */ 0x71B1,0x6D60, - /* Array index: 0x0FCB */ 0x71B9,0x713B, - /* Array index: 0x0FCB */ 0x71BE,0x7135, - /* Array index: 0x0FCB */ 0x71C3,0x713F, - /* Array index: 0x0FCB */ 0x71C4,0x7140, - /* Array index: 0x0FCB */ 0x71C8,0x7139, - /* Array index: 0x0FCB */ 0x71C9,0x7136, - /* Array index: 0x0FCB */ 0x71CE,0x713C, - /* Array index: 0x0FCB */ 0x71D0,0x7137, - /* Array index: 0x0FCB */ 0x71D2,0x7138, - /* Array index: 0x0FCB */ 0x71D5,0x713A, - /* Array index: 0x0FCB */ 0x71D9,0x713D, - /* Array index: 0x0FCB */ 0x71DC,0x713E, - /* Array index: 0x0FCB */ 0x71DF,0x7432, - /* Array index: 0x0FCB */ 0x71E0,0x7439, - /* Array index: 0x0FCB */ 0x71F4,0x7438, - /* Array index: 0x0FCB */ 0x71F8,0x7663, - /* Array index: 0x0FCB */ 0x71FB,0x7660, - /* Array index: 0x0FCB */ 0x71FC,0x7661, - /* Array index: 0x0FCB */ 0x71FE,0x7662, - /* Array index: 0x0FCB */ 0x7206,0x7847, - /* Array index: 0x0FCB */ 0x720D,0x7848, - /* Array index: 0x0FCB */ 0x7210,0x7977, - /* Array index: 0x0FCB */ 0x721B,0x7A75, - /* Array index: 0x0FCB */ 0x7228,0x7D46, - /* Array index: 0x0FCB */ 0x722A,0x4557, - /* Array index: 0x0FCB */ 0x722C,0x4E67, - /* Array index: 0x0FCB */ 0x722D,0x4E68, - /* Array index: 0x0FCB */ 0x7230,0x523B, - /* Array index: 0x0FCB */ 0x724C,0x6056, - /* Array index: 0x0FCB */ 0x7252,0x6526, - /* Array index: 0x0FCB */ 0x7256,0x6D62, - /* Array index: 0x0FCB */ 0x7258,0x7849, - /* Array index: 0x0FCB */ 0x7259,0x455B, - /* Array index: 0x0FCB */ 0x725B,0x455C, - /* Array index: 0x0FCB */ 0x7267,0x4E6B, - /* Array index: 0x0FCB */ 0x7269,0x4E6C, - /* Array index: 0x0FCB */ 0x726F,0x523D, - /* Array index: 0x0FCB */ 0x7272,0x523C, - /* Array index: 0x0FCB */ 0x7274,0x523E, - /* Array index: 0x0FCB */ 0x7279,0x5656, - /* Array index: 0x0FCB */ 0x727D,0x5B74, - /* Array index: 0x0FCB */ 0x7280,0x6058, - /* Array index: 0x0FCB */ 0x7281,0x5B75, - /* Array index: 0x0FCB */ 0x7284,0x6057, - /* Array index: 0x0FCB */ 0x7292,0x6960, - /* Array index: 0x0FCB */ 0x7296,0x6961, - /* Array index: 0x0FCB */ 0x729B,0x6D63, - /* Array index: 0x0FCB */ 0x72A2,0x784A, - /* Array index: 0x0FCB */ 0x72A7,0x7A76, - /* Array index: 0x0FCB */ 0x72AC,0x455D, - /* Array index: 0x0FCB */ 0x72AF,0x4667, - /* Array index: 0x0FCB */ 0x72C0,0x4E6D, - /* Array index: 0x0FCB */ 0x72C2,0x4B2A, - /* Array index: 0x0FCB */ 0x72C4,0x4B29, - /* Array index: 0x0FCB */ 0x72CE,0x4E6E, - /* Array index: 0x0FCB */ 0x72D0,0x4E71, - /* Array index: 0x0FCB */ 0x72D7,0x4E70, - /* Array index: 0x0FCB */ 0x72D9,0x4E6F, - /* Array index: 0x0FCB */ 0x72E0,0x5240, - /* Array index: 0x0FCB */ 0x72E1,0x5241, - /* Array index: 0x0FCB */ 0x72E9,0x523F, - /* Array index: 0x0FCB */ 0x7313,0x5B79, - /* Array index: 0x0FCB */ 0x7316,0x5B78, - /* Array index: 0x0FCB */ 0x7319,0x5B7A, - /* Array index: 0x0FCB */ 0x731B,0x5B77, - /* Array index: 0x0FCB */ 0x731C,0x5B76, - /* Array index: 0x0FCB */ 0x7325,0x605A, - /* Array index: 0x0FCB */ 0x7329,0x605C, - /* Array index: 0x0FCB */ 0x7334,0x605B, - /* Array index: 0x0FCB */ 0x7336,0x6059, - /* Array index: 0x0FCB */ 0x7337,0x6527, - /* Array index: 0x0FCB */ 0x733E,0x652A, - /* Array index: 0x0FCB */ 0x733F,0x6529, - /* Array index: 0x0FCB */ 0x7344,0x6962, - /* Array index: 0x0FCB */ 0x7345,0x6528, - /* Array index: 0x0FCB */ 0x734E,0x6D64, - /* Array index: 0x0FCB */ 0x7350,0x6963, - /* Array index: 0x0FCB */ 0x7357,0x6D65, - /* Array index: 0x0FCB */ 0x7368,0x7141, - /* Array index: 0x0FCB */ 0x7370,0x743C, - /* Array index: 0x0FCB */ 0x7372,0x743D, - /* Array index: 0x0FCB */ 0x7375,0x7665, - /* Array index: 0x0FCB */ 0x7380,0x7B66, - /* Array index: 0x0FCB */ 0x7384,0x4668, - /* Array index: 0x0FCB */ 0x7386,0x565C, - /* Array index: 0x0FCB */ 0x7387,0x5B7B, - /* Array index: 0x0FCB */ 0x7389,0x4669, - /* Array index: 0x0FCB */ 0x738B,0x455E, - /* Array index: 0x0FCB */ 0x7396,0x4B2B, - /* Array index: 0x0FCB */ 0x739F,0x4E74, - /* Array index: 0x0FCB */ 0x73A5,0x4E76, - /* Array index: 0x0FCB */ 0x73A8,0x4E73, - /* Array index: 0x0FCB */ 0x73A9,0x4E72, - /* Array index: 0x0FCB */ 0x73AB,0x4E75, - /* Array index: 0x0FCB */ 0x73B2,0x5245, - /* Array index: 0x0FCB */ 0x73B3,0x5248, - /* Array index: 0x0FCB */ 0x73B7,0x5242, - /* Array index: 0x0FCB */ 0x73BB,0x5244, - /* Array index: 0x0FCB */ 0x73C0,0x5247, - /* Array index: 0x0FCB */ 0x73CA,0x5243, - /* Array index: 0x0FCB */ 0x73CD,0x5246, - /* Array index: 0x0FCB */ 0x73DE,0x5662, - /* Array index: 0x0FCB */ 0x73E0,0x5660, - /* Array index: 0x0FCB */ 0x73EA,0x5661, - /* Array index: 0x0FCB */ 0x73ED,0x565D, - /* Array index: 0x0FCB */ 0x73EE,0x565F, - /* Array index: 0x0FCB */ 0x73FE,0x5C22, - /* Array index: 0x0FCB */ 0x7403,0x5B7E, - /* Array index: 0x0FCB */ 0x7405,0x5B7C, - /* Array index: 0x0FCB */ 0x7406,0x5C21, - /* Array index: 0x0FCB */ 0x7409,0x565E, - /* Array index: 0x0FCB */ 0x740A,0x5B7D, - /* Array index: 0x0FCB */ 0x740D,0x5C23, - /* Array index: 0x0FCB */ 0x741B,0x6066, - /* Array index: 0x0FCB */ 0x7422,0x6060, - /* Array index: 0x0FCB */ 0x7425,0x6061, - /* Array index: 0x0FCB */ 0x7426,0x6067, - /* Array index: 0x0FCB */ 0x7428,0x6068, - /* Array index: 0x0FCB */ 0x742A,0x605E, - /* Array index: 0x0FCB */ 0x742F,0x6065, - /* Array index: 0x0FCB */ 0x743A,0x605D, - /* Array index: 0x0FCB */ 0x743F,0x6531, - /* Array index: 0x0FCB */ 0x7441,0x6530, - /* Array index: 0x0FCB */ 0x7455,0x652D, - /* Array index: 0x0FCB */ 0x7463,0x6965, - /* Array index: 0x0FCB */ 0x7464,0x6964, - /* Array index: 0x0FCB */ 0x7469,0x6D66, - /* Array index: 0x0FCB */ 0x746A,0x6966, - /* Array index: 0x0FCB */ 0x746D,0x6968, - /* Array index: 0x0FCB */ 0x746F,0x652B, - /* Array index: 0x0FCB */ 0x7470,0x6967, - /* Array index: 0x0FCB */ 0x747E,0x6D69, - /* Array index: 0x0FCB */ 0x7480,0x6D6A, - /* Array index: 0x0FCB */ 0x7483,0x6D68, - /* Array index: 0x0FCB */ 0x748B,0x6D67, - /* Array index: 0x0FCB */ 0x7498,0x7144, - /* Array index: 0x0FCB */ 0x749C,0x7142, - /* Array index: 0x0FCB */ 0x749E,0x7146, - /* Array index: 0x0FCB */ 0x749F,0x7145, - /* Array index: 0x0FCB */ 0x74A3,0x7143, - /* Array index: 0x0FCB */ 0x74B0,0x743F, - /* Array index: 0x0FCB */ 0x74BD,0x784D, - /* Array index: 0x0FCB */ 0x74BF,0x7667, - /* Array index: 0x0FCB */ 0x74CA,0x784E, - /* Array index: 0x0FCB */ 0x74CF,0x7979, - /* Array index: 0x0FCB */ 0x74D4,0x7A78, - /* Array index: 0x0FCB */ 0x74D6,0x7A77, - /* Array index: 0x0FCB */ 0x74DA,0x7C3C, - /* Array index: 0x0FCB */ 0x74DC,0x466A, - /* Array index: 0x0FCB */ 0x74E9,0x2322, - /* Array index: 0x0FCB */ 0x74F6,0x5C25, - /* Array index: 0x0FCB */ 0x74F7,0x5C26, - /* Array index: 0x0FCB */ 0x7504,0x6969, - /* Array index: 0x0FCB */ 0x750C,0x7148, - /* Array index: 0x0FCB */ 0x750D,0x7149, - /* Array index: 0x0FCB */ 0x7515,0x7668, - /* Array index: 0x0FCB */ 0x7518,0x466C, - /* Array index: 0x0FCB */ 0x751A,0x5249, - /* Array index: 0x0FCB */ 0x751C,0x5C27, - /* Array index: 0x0FCB */ 0x751F,0x466D, - /* Array index: 0x0FCB */ 0x7522,0x5C28, - /* Array index: 0x0FCB */ 0x7537,0x4B2E, - /* Array index: 0x0FCB */ 0x7538,0x4B2F, - /* Array index: 0x0FCB */ 0x753D,0x4E77, - /* Array index: 0x0FCB */ 0x7554,0x5663, - /* Array index: 0x0FCB */ 0x7562,0x5C2B, - /* Array index: 0x0FCB */ 0x7565,0x5C29, - /* Array index: 0x0FCB */ 0x7566,0x5C2A, - /* Array index: 0x0FCB */ 0x756A,0x606C, - /* Array index: 0x0FCB */ 0x756B,0x606B, - /* Array index: 0x0FCB */ 0x7570,0x5C2C, - /* Array index: 0x0FCB */ 0x7576,0x6535, - /* Array index: 0x0FCB */ 0x7578,0x6536, - /* Array index: 0x0FCB */ 0x757F,0x6D6B, - /* Array index: 0x0FCB */ 0x7586,0x7851, - /* Array index: 0x0FCB */ 0x7587,0x7850, - /* Array index: 0x0FCB */ 0x758A,0x7B68, - /* Array index: 0x0FCB */ 0x758B,0x4674, - /* Array index: 0x0FCB */ 0x758F,0x5C2D, - /* Array index: 0x0FCB */ 0x7591,0x696A, - /* Array index: 0x0FCB */ 0x7599,0x4E79, - /* Array index: 0x0FCB */ 0x759A,0x4E7A, - /* Array index: 0x0FCB */ 0x759D,0x4E78, - /* Array index: 0x0FCB */ 0x75AB,0x524F, - /* Array index: 0x0FCB */ 0x75B2,0x566B, - /* Array index: 0x0FCB */ 0x75B3,0x566C, - /* Array index: 0x0FCB */ 0x75B5,0x5C30, - /* Array index: 0x0FCB */ 0x75C2,0x5670, - /* Array index: 0x0FCB */ 0x75C5,0x5669, - /* Array index: 0x0FCB */ 0x75C7,0x566A, - /* Array index: 0x0FCB */ 0x75CA,0x5C31, - /* Array index: 0x0FCB */ 0x75CD,0x5C32, - /* Array index: 0x0FCB */ 0x75D4,0x5C2E, - /* Array index: 0x0FCB */ 0x75D5,0x5C2F, - /* Array index: 0x0FCB */ 0x75D8,0x6071, - /* Array index: 0x0FCB */ 0x75D9,0x6070, - /* Array index: 0x0FCB */ 0x75DB,0x606E, - /* Array index: 0x0FCB */ 0x75DE,0x6072, - /* Array index: 0x0FCB */ 0x75E0,0x6073, - /* Array index: 0x0FCB */ 0x75E2,0x606D, - /* Array index: 0x0FCB */ 0x75E3,0x606F, - /* Array index: 0x0FCB */ 0x75FA,0x653C, - /* Array index: 0x0FCB */ 0x7609,0x696E, - /* Array index: 0x0FCB */ 0x760B,0x696D, - /* Array index: 0x0FCB */ 0x760D,0x696C, - /* Array index: 0x0FCB */ 0x7613,0x696F, - /* Array index: 0x0FCB */ 0x7634,0x714A, - /* Array index: 0x0FCB */ 0x7638,0x714B, - /* Array index: 0x0FCB */ 0x763A,0x714C, - /* Array index: 0x0FCB */ 0x7642,0x7443, - /* Array index: 0x0FCB */ 0x7646,0x7442, - /* Array index: 0x0FCB */ 0x764C,0x7444, - /* Array index: 0x0FCB */ 0x7652,0x766B, - /* Array index: 0x0FCB */ 0x7656,0x7669, - /* Array index: 0x0FCB */ 0x7658,0x766A, - /* Array index: 0x0FCB */ 0x765F,0x7852, - /* Array index: 0x0FCB */ 0x7661,0x7853, - /* Array index: 0x0FCB */ 0x7662,0x797A, - /* Array index: 0x0FCB */ 0x7665,0x797B, - /* Array index: 0x0FCB */ 0x7669,0x7A79, - /* Array index: 0x0FCB */ 0x766C,0x7B6A, - /* Array index: 0x0FCB */ 0x766E,0x7B69, - /* Array index: 0x0FCB */ 0x7671,0x7C61, - /* Array index: 0x0FCB */ 0x7672,0x7C62, - /* Array index: 0x0FCB */ 0x7678,0x5254, - /* Array index: 0x0FCB */ 0x7682,0x4B30, - /* Array index: 0x0FCB */ 0x768B,0x5672, - /* Array index: 0x0FCB */ 0x768E,0x5C33, - /* Array index: 0x0FCB */ 0x7693,0x6077, - /* Array index: 0x0FCB */ 0x7696,0x6076, - /* Array index: 0x0FCB */ 0x769A,0x6D73, - /* Array index: 0x0FCB */ 0x76AE,0x4676, - /* Array index: 0x0FCB */ 0x76B0,0x5673, - /* Array index: 0x0FCB */ 0x76B4,0x6078, - /* Array index: 0x0FCB */ 0x76BA,0x6D74, - /* Array index: 0x0FCB */ 0x76BF,0x4677, - /* Array index: 0x0FCB */ 0x76D2,0x5C35, - /* Array index: 0x0FCB */ 0x76D4,0x5C34, - /* Array index: 0x0FCB */ 0x76EA,0x7445, - /* Array index: 0x0FCB */ 0x76EE,0x4678, - /* Array index: 0x0FCB */ 0x76EF,0x4B31, - /* Array index: 0x0FCB */ 0x76F2,0x4E7D, - /* Array index: 0x0FCB */ 0x76F4,0x4E7E, - /* Array index: 0x0FCB */ 0x76F8,0x525E, - /* Array index: 0x0FCB */ 0x76F9,0x525D, - /* Array index: 0x0FCB */ 0x76FC,0x5262, - /* Array index: 0x0FCB */ 0x76FE,0x5261, - /* Array index: 0x0FCB */ 0x7701,0x525C, - /* Array index: 0x0FCB */ 0x7707,0x5263, - /* Array index: 0x0FCB */ 0x7709,0x525F, - /* Array index: 0x0FCB */ 0x770B,0x5260, - /* Array index: 0x0FCB */ 0x771F,0x5678, - /* Array index: 0x0FCB */ 0x7720,0x5679, - /* Array index: 0x0FCB */ 0x7728,0x567A, - /* Array index: 0x0FCB */ 0x7729,0x5677, - /* Array index: 0x0FCB */ 0x774F,0x607A, - /* Array index: 0x0FCB */ 0x775B,0x6542, - /* Array index: 0x0FCB */ 0x775C,0x654A, - /* Array index: 0x0FCB */ 0x775E,0x6545, - /* Array index: 0x0FCB */ 0x7779,0x6547, - /* Array index: 0x0FCB */ 0x777D,0x6973, - /* Array index: 0x0FCB */ 0x777F,0x6974, - /* Array index: 0x0FCB */ 0x7784,0x6972, - /* Array index: 0x0FCB */ 0x7787,0x6D77, - /* Array index: 0x0FCB */ 0x778B,0x6D7A, - /* Array index: 0x0FCB */ 0x778C,0x6D78, - /* Array index: 0x0FCB */ 0x778E,0x6D76, - /* Array index: 0x0FCB */ 0x7791,0x6D79, - /* Array index: 0x0FCB */ 0x77A5,0x7152, - /* Array index: 0x0FCB */ 0x77A7,0x744A, - /* Array index: 0x0FCB */ 0x77AA,0x7447, - /* Array index: 0x0FCB */ 0x77AC,0x7449, - /* Array index: 0x0FCB */ 0x77AD,0x744B, - /* Array index: 0x0FCB */ 0x77B0,0x7448, - /* Array index: 0x0FCB */ 0x77B3,0x7446, - /* Array index: 0x0FCB */ 0x77C7,0x7854, - /* Array index: 0x0FCB */ 0x77D3,0x7A7A, - /* Array index: 0x0FCB */ 0x77D7,0x7C63, - /* Array index: 0x0FCB */ 0x77E2,0x467A, - /* Array index: 0x0FCB */ 0x77E3,0x4B32, - /* Array index: 0x0FCB */ 0x77E5,0x4F21, - /* Array index: 0x0FCB */ 0x77E9,0x567B, - /* Array index: 0x0FCB */ 0x77F3,0x467B, - /* Array index: 0x0FCB */ 0x77FD,0x4F22, - /* Array index: 0x0FCB */ 0x7802,0x5265, - /* Array index: 0x0FCB */ 0x780C,0x5267, - /* Array index: 0x0FCB */ 0x780D,0x5268, - /* Array index: 0x0FCB */ 0x7814,0x5266, - /* Array index: 0x0FCB */ 0x781D,0x5721, - /* Array index: 0x0FCB */ 0x781F,0x5727, - /* Array index: 0x0FCB */ 0x7820,0x5726, - /* Array index: 0x0FCB */ 0x7825,0x5724, - /* Array index: 0x0FCB */ 0x7827,0x567D, - /* Array index: 0x0FCB */ 0x782D,0x5725, - /* Array index: 0x0FCB */ 0x7830,0x567C, - /* Array index: 0x0FCB */ 0x7832,0x5728, - /* Array index: 0x0FCB */ 0x7834,0x5722, - /* Array index: 0x0FCB */ 0x7837,0x5723, - /* Array index: 0x0FCB */ 0x7838,0x567E, - /* Array index: 0x0FCB */ 0x7843,0x5C3E, - /* Array index: 0x0FCB */ 0x784E,0x5C3F, - /* Array index: 0x0FCB */ 0x785D,0x607C, - /* Array index: 0x0FCB */ 0x786B,0x5C3D, - /* Array index: 0x0FCB */ 0x786C,0x607D, - /* Array index: 0x0FCB */ 0x786F,0x607E, - /* Array index: 0x0FCB */ 0x787C,0x6555, - /* Array index: 0x0FCB */ 0x787F,0x6558, - /* Array index: 0x0FCB */ 0x7889,0x6554, - /* Array index: 0x0FCB */ 0x788C,0x6553, - /* Array index: 0x0FCB */ 0x788E,0x654F, - /* Array index: 0x0FCB */ 0x7891,0x6556, - /* Array index: 0x0FCB */ 0x7893,0x6557, - /* Array index: 0x0FCB */ 0x7897,0x6551, - /* Array index: 0x0FCB */ 0x7898,0x6552, - /* Array index: 0x0FCB */ 0x789F,0x6977, - /* Array index: 0x0FCB */ 0x78A3,0x697B, - /* Array index: 0x0FCB */ 0x78A7,0x6978, - /* Array index: 0x0FCB */ 0x78A9,0x697A, - /* Array index: 0x0FCB */ 0x78B0,0x6550, - /* Array index: 0x0FCB */ 0x78B3,0x6979, - /* Array index: 0x0FCB */ 0x78BA,0x6D7D, - /* Array index: 0x0FCB */ 0x78BC,0x6E23, - /* Array index: 0x0FCB */ 0x78BE,0x6E21, - /* Array index: 0x0FCB */ 0x78C1,0x6976, - /* Array index: 0x0FCB */ 0x78C5,0x6D7C, - /* Array index: 0x0FCB */ 0x78CA,0x6D7E, - /* Array index: 0x0FCB */ 0x78CB,0x6D7B, - /* Array index: 0x0FCB */ 0x78D0,0x6E24, - /* Array index: 0x0FCB */ 0x78D5,0x6E22, - /* Array index: 0x0FCB */ 0x78DA,0x7154, - /* Array index: 0x0FCB */ 0x78E7,0x7156, - /* Array index: 0x0FCB */ 0x78E8,0x7153, - /* Array index: 0x0FCB */ 0x78EC,0x7155, - /* Array index: 0x0FCB */ 0x78EF,0x7450, - /* Array index: 0x0FCB */ 0x78F4,0x744F, - /* Array index: 0x0FCB */ 0x78F7,0x744D, - /* Array index: 0x0FCB */ 0x78FA,0x744E, - /* Array index: 0x0FCB */ 0x7901,0x7451, - /* Array index: 0x0FCB */ 0x790E,0x7670, - /* Array index: 0x0FCB */ 0x7919,0x7855, - /* Array index: 0x0FCB */ 0x7926,0x797C, - /* Array index: 0x0FCB */ 0x793A,0x467C, - /* Array index: 0x0FCB */ 0x793E,0x4F23, - /* Array index: 0x0FCB */ 0x7940,0x4F24, - /* Array index: 0x0FCB */ 0x7941,0x4F25, - /* Array index: 0x0FCB */ 0x7950,0x572A, - /* Array index: 0x0FCB */ 0x795A,0x5731, - /* Array index: 0x0FCB */ 0x7965,0x5C40, - /* Array index: 0x0FCB */ 0x7968,0x5C41, - /* Array index: 0x0FCB */ 0x796D,0x5C42, - /* Array index: 0x0FCB */ 0x797A,0x6559, - /* Array index: 0x0FCB */ 0x797F,0x655A, - /* Array index: 0x0FCB */ 0x7981,0x655B, - /* Array index: 0x0FCB */ 0x79A6,0x7157, - /* Array index: 0x0FCB */ 0x79A7,0x7452, - /* Array index: 0x0FCB */ 0x79AA,0x7453, - /* Array index: 0x0FCB */ 0x79AE,0x7671, - /* Array index: 0x0FCB */ 0x79B1,0x7856, - /* Array index: 0x0FCB */ 0x79B3,0x7B6B, - /* Array index: 0x0FCB */ 0x79C8,0x4F27, - /* Array index: 0x0FCB */ 0x79C9,0x4F26, - /* Array index: 0x0FCB */ 0x79CB,0x5271, - /* Array index: 0x0FCB */ 0x79D1,0x526F, - /* Array index: 0x0FCB */ 0x79D2,0x5270, - /* Array index: 0x0FCB */ 0x79D8,0x5738, - /* Array index: 0x0FCB */ 0x79DF,0x5735, - /* Array index: 0x0FCB */ 0x79FB,0x5C43, - /* Array index: 0x0FCB */ 0x7A00,0x6125, - /* Array index: 0x0FCB */ 0x7A05,0x6124, - /* Array index: 0x0FCB */ 0x7A08,0x6122, - /* Array index: 0x0FCB */ 0x7A0B,0x6123, - /* Array index: 0x0FCB */ 0x7A0D,0x6121, - /* Array index: 0x0FCB */ 0x7A14,0x6561, - /* Array index: 0x0FCB */ 0x7A1A,0x655F, - /* Array index: 0x0FCB */ 0x7A2E,0x6A21, - /* Array index: 0x0FCB */ 0x7A31,0x6A22, - /* Array index: 0x0FCB */ 0x7A37,0x6E29, - /* Array index: 0x0FCB */ 0x7A46,0x715A, - /* Array index: 0x0FCB */ 0x7A57,0x7454, - /* Array index: 0x0FCB */ 0x7A69,0x7858, - /* Array index: 0x0FCB */ 0x7A6B,0x7857, - /* Array index: 0x0FCB */ 0x7A74,0x467E, - /* Array index: 0x0FCB */ 0x7A76,0x4B36, - /* Array index: 0x0FCB */ 0x7A79,0x4F29, - /* Array index: 0x0FCB */ 0x7A7A,0x4F28, - /* Array index: 0x0FCB */ 0x7A7F,0x5272, - /* Array index: 0x0FCB */ 0x7A81,0x5273, - /* Array index: 0x0FCB */ 0x7A84,0x5739, - /* Array index: 0x0FCB */ 0x7A88,0x573A, - /* Array index: 0x0FCB */ 0x7A92,0x5C44, - /* Array index: 0x0FCB */ 0x7A9F,0x6564, - /* Array index: 0x0FCB */ 0x7AA0,0x6565, - /* Array index: 0x0FCB */ 0x7AA9,0x6A24, - /* Array index: 0x0FCB */ 0x7AAA,0x6A23, - /* Array index: 0x0FCB */ 0x7AAE,0x6E2C, - /* Array index: 0x0FCB */ 0x7AAF,0x6E2B, - /* Array index: 0x0FCB */ 0x7ABA,0x715D, - /* Array index: 0x0FCB */ 0x7ABF,0x7455, - /* Array index: 0x0FCB */ 0x7AC4,0x7675, - /* Array index: 0x0FCB */ 0x7AC5,0x7676, - /* Array index: 0x0FCB */ 0x7AC7,0x7A22, - /* Array index: 0x0FCB */ 0x7ACA,0x7C3D, - /* Array index: 0x0FCB */ 0x7ACB,0x4721, - /* Array index: 0x0FCB */ 0x7AD9,0x573B, - /* Array index: 0x0FCB */ 0x7ADF,0x5D7E, - /* Array index: 0x0FCB */ 0x7AE0,0x5D7D, - /* Array index: 0x0FCB */ 0x7AE3,0x612A, - /* Array index: 0x0FCB */ 0x7AE5,0x6129, - /* Array index: 0x0FCB */ 0x7AED,0x6A25, - /* Array index: 0x0FCB */ 0x7AEF,0x6A26, - /* Array index: 0x0FCB */ 0x7AF6,0x7A23, - /* Array index: 0x0FCB */ 0x7AF9,0x484C, - /* Array index: 0x0FCB */ 0x7AFA,0x4F2A, - /* Array index: 0x0FCB */ 0x7AFD,0x5275, - /* Array index: 0x0FCB */ 0x7AFF,0x5274, - /* Array index: 0x0FCB */ 0x7B06,0x573C, - /* Array index: 0x0FCB */ 0x7B11,0x573D, - /* Array index: 0x0FCB */ 0x7B19,0x5C4B, - /* Array index: 0x0FCB */ 0x7B1B,0x5C48, - /* Array index: 0x0FCB */ 0x7B1E,0x5C4C, - /* Array index: 0x0FCB */ 0x7B20,0x5C46, - /* Array index: 0x0FCB */ 0x7B26,0x5C4A, - /* Array index: 0x0FCB */ 0x7B28,0x5C47, - /* Array index: 0x0FCB */ 0x7B2C,0x5C49, - /* Array index: 0x0FCB */ 0x7B2E,0x5C4D, - /* Array index: 0x0FCB */ 0x7B46,0x612D, - /* Array index: 0x0FCB */ 0x7B49,0x612B, - /* Array index: 0x0FCB */ 0x7B4B,0x6132, - /* Array index: 0x0FCB */ 0x7B60,0x6568, - /* Array index: 0x0FCB */ 0x7B67,0x656A, - /* Array index: 0x0FCB */ 0x7B6E,0x6569, - /* Array index: 0x0FCB */ 0x7B75,0x6A2A, - /* Array index: 0x0FCB */ 0x7B77,0x6566, - /* Array index: 0x0FCB */ 0x7B84,0x6A31, - /* Array index: 0x0FCB */ 0x7B87,0x6A30, - /* Array index: 0x0FCB */ 0x7B8B,0x6A29, - /* Array index: 0x0FCB */ 0x7B8F,0x6A2E, - /* Array index: 0x0FCB */ 0x7B94,0x6A2D, - /* Array index: 0x0FCB */ 0x7B95,0x6A28, - /* Array index: 0x0FCB */ 0x7B97,0x6A2B, - /* Array index: 0x0FCB */ 0x7B9D,0x6A2C, - /* Array index: 0x0FCB */ 0x7BA0,0x6E34, - /* Array index: 0x0FCB */ 0x7BA1,0x6A27, - /* Array index: 0x0FCB */ 0x7BAD,0x6E2D, - /* Array index: 0x0FCB */ 0x7BB1,0x6E2E, - /* Array index: 0x0FCB */ 0x7BB4,0x6E30, - /* Array index: 0x0FCB */ 0x7BB8,0x6A2F, - /* Array index: 0x0FCB */ 0x7BC0,0x6567, - /* Array index: 0x0FCB */ 0x7BC1,0x6E33, - /* Array index: 0x0FCB */ 0x7BC4,0x6E2F, - /* Array index: 0x0FCB */ 0x7BC6,0x6E31, - /* Array index: 0x0FCB */ 0x7BC7,0x6E32, - /* Array index: 0x0FCB */ 0x7BC9,0x7160, - /* Array index: 0x0FCB */ 0x7BCC,0x6E35, - /* Array index: 0x0FCB */ 0x7BD9,0x715E, - /* Array index: 0x0FCB */ 0x7BDB,0x7162, - /* Array index: 0x0FCB */ 0x7BE0,0x745B, - /* Array index: 0x0FCB */ 0x7BE1,0x7163, - /* Array index: 0x0FCB */ 0x7BE4,0x7161, - /* Array index: 0x0FCB */ 0x7BE6,0x7165, - /* Array index: 0x0FCB */ 0x7BE9,0x7164, - /* Array index: 0x0FCB */ 0x7BF7,0x7459, - /* Array index: 0x0FCB */ 0x7BFE,0x7458, - /* Array index: 0x0FCB */ 0x7C07,0x7456, - /* Array index: 0x0FCB */ 0x7C0C,0x745A, - /* Array index: 0x0FCB */ 0x7C0D,0x7457, - /* Array index: 0x0FCB */ 0x7C11,0x715F, - /* Array index: 0x0FCB */ 0x7C1E,0x767A, - /* Array index: 0x0FCB */ 0x7C21,0x767C, - /* Array index: 0x0FCB */ 0x7C23,0x767B, - /* Array index: 0x0FCB */ 0x7C27,0x7678, - /* Array index: 0x0FCB */ 0x7C2A,0x7679, - /* Array index: 0x0FCB */ 0x7C2B,0x7677, - /* Array index: 0x0FCB */ 0x7C37,0x785D, - /* Array index: 0x0FCB */ 0x7C38,0x785B, - /* Array index: 0x0FCB */ 0x7C43,0x7A25, - /* Array index: 0x0FCB */ 0x7C4C,0x7A24, - /* Array index: 0x0FCB */ 0x7C4D,0x7A26, - /* Array index: 0x0FCB */ 0x7C50,0x7A7B, - /* Array index: 0x0FCB */ 0x7C6C,0x7D25, - /* Array index: 0x0FCB */ 0x7C6E,0x7D26, - /* Array index: 0x0FCB */ 0x7C72,0x7D4B, - /* Array index: 0x0FCB */ 0x7C73,0x484D, - /* Array index: 0x0FCB */ 0x7C7D,0x5276, - /* Array index: 0x0FCB */ 0x7C89,0x573E, - /* Array index: 0x0FCB */ 0x7C92,0x5C4E, - /* Array index: 0x0FCB */ 0x7C95,0x5C50, - /* Array index: 0x0FCB */ 0x7C97,0x5C4F, - /* Array index: 0x0FCB */ 0x7C9F,0x6135, - /* Array index: 0x0FCB */ 0x7CA5,0x6136, - /* Array index: 0x0FCB */ 0x7CB1,0x656B, - /* Array index: 0x0FCB */ 0x7CB3,0x656C, - /* Array index: 0x0FCB */ 0x7CB5,0x656D, - /* Array index: 0x0FCB */ 0x7CB9,0x6A32, - /* Array index: 0x0FCB */ 0x7CBD,0x6A33, - /* Array index: 0x0FCB */ 0x7CBE,0x6A34, - /* Array index: 0x0FCB */ 0x7CCA,0x6E36, - /* Array index: 0x0FCB */ 0x7CCE,0x2323, - /* Array index: 0x0FCB */ 0x7CD5,0x7166, - /* Array index: 0x0FCB */ 0x7CD6,0x7167, - /* Array index: 0x0FCB */ 0x7CD9,0x7461, - /* Array index: 0x0FCB */ 0x7CE7,0x767D, - /* Array index: 0x0FCB */ 0x7CEF,0x7A27, - /* Array index: 0x0FCB */ 0x7CF0,0x7A28, - /* Array index: 0x0FCB */ 0x7CF8,0x484E, - /* Array index: 0x0FCB */ 0x7CFB,0x4B37, - /* Array index: 0x0FCB */ 0x7CFE,0x4F2B, - /* Array index: 0x0FCB */ 0x7D00,0x5279, - /* Array index: 0x0FCB */ 0x7D10,0x5746, - /* Array index: 0x0FCB */ 0x7D14,0x5745, - /* Array index: 0x0FCB */ 0x7D15,0x5747, - /* Array index: 0x0FCB */ 0x7D2B,0x613B, - /* Array index: 0x0FCB */ 0x7D39,0x5C55, - /* Array index: 0x0FCB */ 0x7D3C,0x5C56, - /* Array index: 0x0FCB */ 0x7D50,0x6138, - /* Array index: 0x0FCB */ 0x7D55,0x613A, - /* Array index: 0x0FCB */ 0x7D5B,0x6573, - /* Array index: 0x0FCB */ 0x7D5E,0x6137, - /* Array index: 0x0FCB */ 0x7D61,0x613E, - /* Array index: 0x0FCB */ 0x7D62,0x6140, - /* Array index: 0x0FCB */ 0x7D66,0x613F, - /* Array index: 0x0FCB */ 0x7D68,0x6139, - /* Array index: 0x0FCB */ 0x7D79,0x656F, - /* Array index: 0x0FCB */ 0x7D81,0x6571, - /* Array index: 0x0FCB */ 0x7D8F,0x6572, - /* Array index: 0x0FCB */ 0x7D91,0x6570, - /* Array index: 0x0FCB */ 0x7D93,0x656E, - /* Array index: 0x0FCB */ 0x7D9C,0x6A37, - /* Array index: 0x0FCB */ 0x7D9E,0x6E43, - /* Array index: 0x0FCB */ 0x7DA0,0x6A3A, - /* Array index: 0x0FCB */ 0x7DA2,0x6A40, - /* Array index: 0x0FCB */ 0x7DB8,0x6A43, - /* Array index: 0x0FCB */ 0x7DC7,0x6A46, - /* Array index: 0x0FCB */ 0x7DCA,0x6A3B, - /* Array index: 0x0FCB */ 0x7DD2,0x6A45, - /* Array index: 0x0FCB */ 0x7DE3,0x6E3F, - /* Array index: 0x0FCB */ 0x7DE8,0x6E3E, - /* Array index: 0x0FCB */ 0x7DE9,0x6E42, - /* Array index: 0x0FCB */ 0x7DEC,0x6E3C, - /* Array index: 0x0FCB */ 0x7DEF,0x6E39, - /* Array index: 0x0FCB */ 0x7DF2,0x6E45, - /* Array index: 0x0FCB */ 0x7DF4,0x6E38, - /* Array index: 0x0FCB */ 0x7DF9,0x6E46, - /* Array index: 0x0FCB */ 0x7DFB,0x6E3A, - /* Array index: 0x0FCB */ 0x7E10,0x7170, - /* Array index: 0x0FCB */ 0x7E11,0x7169, - /* Array index: 0x0FCB */ 0x7E1B,0x716B, - /* Array index: 0x0FCB */ 0x7E1D,0x716E, - /* Array index: 0x0FCB */ 0x7E1E,0x716D, - /* Array index: 0x0FCB */ 0x7E23,0x716C, - /* Array index: 0x0FCB */ 0x7E2B,0x7469, - /* Array index: 0x0FCB */ 0x7E52,0x7725, - /* Array index: 0x0FCB */ 0x7E54,0x767E, - /* Array index: 0x0FCB */ 0x7E55,0x7721, - /* Array index: 0x0FCB */ 0x7E59,0x7726, - /* Array index: 0x0FCB */ 0x7E5A,0x7723, - /* Array index: 0x0FCB */ 0x7E5E,0x7722, - /* Array index: 0x0FCB */ 0x7E61,0x7724, - /* Array index: 0x0FCB */ 0x7E73,0x7864, - /* Array index: 0x0FCB */ 0x7E79,0x7861, - /* Array index: 0x0FCB */ 0x7E7C,0x7A2B, - /* Array index: 0x0FCB */ 0x7E7D,0x7A2A, - /* Array index: 0x0FCB */ 0x7E82,0x7A2C, - /* Array index: 0x0FCB */ 0x7E8C,0x7A7D, - /* Array index: 0x0FCB */ 0x7E8F,0x7A7C, - /* Array index: 0x0FCB */ 0x7E93,0x7C41, - /* Array index: 0x0FCB */ 0x7E94,0x7C43, - /* Array index: 0x0FCB */ 0x7E96,0x7C42, - /* Array index: 0x0FCB */ 0x7E9C,0x7D39, - /* Array index: 0x0FCB */ 0x7F36,0x484F, - /* Array index: 0x0FCB */ 0x7F38,0x527E, - /* Array index: 0x0FCB */ 0x7F3A,0x574D, - /* Array index: 0x0FCB */ 0x7F3D,0x5C5F, - /* Array index: 0x0FCB */ 0x7F44,0x7474, - /* Array index: 0x0FCB */ 0x7F48,0x7727, - /* Array index: 0x0FCB */ 0x7F4C,0x7A2D, - /* Array index: 0x0FCB */ 0x7F50,0x7C64, - /* Array index: 0x0FCB */ 0x7F54,0x4F2C, - /* Array index: 0x0FCB */ 0x7F55,0x4B38, - /* Array index: 0x0FCB */ 0x7F5F,0x574E, - /* Array index: 0x0FCB */ 0x7F69,0x6575, - /* Array index: 0x0FCB */ 0x7F6A,0x6576, - /* Array index: 0x0FCB */ 0x7F6E,0x6574, - /* Array index: 0x0FCB */ 0x7F70,0x6A48, - /* Array index: 0x0FCB */ 0x7F72,0x6577, - /* Array index: 0x0FCB */ 0x7F75,0x6E47, - /* Array index: 0x0FCB */ 0x7F77,0x6E48, - /* Array index: 0x0FCB */ 0x7F79,0x7171, - /* Array index: 0x0FCB */ 0x7F85,0x7865, - /* Array index: 0x0FCB */ 0x7F94,0x574F, - /* Array index: 0x0FCB */ 0x7F9A,0x5C61, - /* Array index: 0x0FCB */ 0x7F9E,0x5C60, - /* Array index: 0x0FCB */ 0x7FA4,0x657A, - /* Array index: 0x0FCB */ 0x7FA8,0x6579, - /* Array index: 0x0FCB */ 0x7FA9,0x6578, - /* Array index: 0x0FCB */ 0x7FAF,0x6E49, - /* Array index: 0x0FCB */ 0x7FB2,0x7172, - /* Array index: 0x0FCB */ 0x7FB6,0x7866, - /* Array index: 0x0FCB */ 0x7FB8,0x7868, - /* Array index: 0x0FCB */ 0x7FB9,0x7867, - /* Array index: 0x0FCB */ 0x7FBC,0x7A7E, - /* Array index: 0x0FCB */ 0x7FBD,0x4851, - /* Array index: 0x0FCB */ 0x7FBF,0x5322, - /* Array index: 0x0FCB */ 0x7FC1,0x5751, - /* Array index: 0x0FCB */ 0x7FC5,0x5750, - /* Array index: 0x0FCB */ 0x7FCC,0x5C62, - /* Array index: 0x0FCB */ 0x7FCE,0x5C63, - /* Array index: 0x0FCB */ 0x7FD2,0x5C64, - /* Array index: 0x0FCB */ 0x7FD4,0x6144, - /* Array index: 0x0FCB */ 0x7FD5,0x6145, - /* Array index: 0x0FCB */ 0x7FE9,0x6E4A, - /* Array index: 0x0FCB */ 0x7FEE,0x7175, - /* Array index: 0x0FCB */ 0x7FF0,0x7173, - /* Array index: 0x0FCB */ 0x7FF1,0x7174, - /* Array index: 0x0FCB */ 0x7FF3,0x7475, - /* Array index: 0x0FCB */ 0x7FF9,0x7728, - /* Array index: 0x0FCB */ 0x7FFB,0x7729, - /* Array index: 0x0FCB */ 0x7FFC,0x7476, - /* Array index: 0x0FCB */ 0x801C,0x5C65, - /* Array index: 0x0FCB */ 0x8026,0x6E4B, - /* Array index: 0x0FCB */ 0x8028,0x7176, - /* Array index: 0x0FCB */ 0x8033,0x4856, - /* Array index: 0x0FCB */ 0x8036,0x5326, - /* Array index: 0x0FCB */ 0x803D,0x5758, - /* Array index: 0x0FCB */ 0x803F,0x5759, - /* Array index: 0x0FCB */ 0x8046,0x5C67, - /* Array index: 0x0FCB */ 0x804A,0x5C66, - /* Array index: 0x0FCB */ 0x8052,0x6147, - /* Array index: 0x0FCB */ 0x8056,0x657B, - /* Array index: 0x0FCB */ 0x8058,0x657C, - /* Array index: 0x0FCB */ 0x805A,0x6A4D, - /* Array index: 0x0FCB */ 0x805E,0x6A4C, - /* Array index: 0x0FCB */ 0x8093,0x4B3A, - /* Array index: 0x0FCB */ 0x8096,0x4B39, - /* Array index: 0x0FCB */ 0x8098,0x4B3C, - /* Array index: 0x0FCB */ 0x809A,0x4B3E, - /* Array index: 0x0FCB */ 0x809B,0x4B3D, - /* Array index: 0x0FCB */ 0x809D,0x4B3B, - /* Array index: 0x0FCB */ 0x80A1,0x4F34, - /* Array index: 0x0FCB */ 0x80A2,0x4F32, - /* Array index: 0x0FCB */ 0x80A5,0x4F31, - /* Array index: 0x0FCB */ 0x80AF,0x4F39, - /* Array index: 0x0FCB */ 0x80B1,0x4F33, - /* Array index: 0x0FCB */ 0x80B2,0x4B3F, - /* Array index: 0x0FCB */ 0x80B4,0x4F37, - /* Array index: 0x0FCB */ 0x80BA,0x4F30, - /* Array index: 0x0FCB */ 0x80C3,0x532A, - /* Array index: 0x0FCB */ 0x80C4,0x532B, - /* Array index: 0x0FCB */ 0x80CC,0x532C, - /* Array index: 0x0FCB */ 0x80CE,0x532F, - /* Array index: 0x0FCB */ 0x80D6,0x5327, - /* Array index: 0x0FCB */ 0x80E1,0x532D, - /* Array index: 0x0FCB */ 0x80E4,0x5331, - /* Array index: 0x0FCB */ 0x80E5,0x5328, - /* Array index: 0x0FCB */ 0x80F8,0x5761, - /* Array index: 0x0FCB */ 0x80FC,0x5766, - /* Array index: 0x0FCB */ 0x80FD,0x5764, - /* Array index: 0x0FCB */ 0x8102,0x575B, - /* Array index: 0x0FCB */ 0x8105,0x575D, - /* Array index: 0x0FCB */ 0x8106,0x5760, - /* Array index: 0x0FCB */ 0x8108,0x5763, - /* Array index: 0x0FCB */ 0x810A,0x5765, - /* Array index: 0x0FCB */ 0x8116,0x5C69, - /* Array index: 0x0FCB */ 0x8123,0x5C6A, - /* Array index: 0x0FCB */ 0x8124,0x5C6E, - /* Array index: 0x0FCB */ 0x8129,0x5C6C, - /* Array index: 0x0FCB */ 0x812B,0x5C6B, - /* Array index: 0x0FCB */ 0x812F,0x5C68, - /* Array index: 0x0FCB */ 0x8130,0x5C6D, - /* Array index: 0x0FCB */ 0x8139,0x614E, - /* Array index: 0x0FCB */ 0x813E,0x6150, - /* Array index: 0x0FCB */ 0x8146,0x614F, - /* Array index: 0x0FCB */ 0x814B,0x614B, - /* Array index: 0x0FCB */ 0x814C,0x6151, - /* Array index: 0x0FCB */ 0x814E,0x614D, - /* Array index: 0x0FCB */ 0x8165,0x6624, - /* Array index: 0x0FCB */ 0x8166,0x662A, - /* Array index: 0x0FCB */ 0x816B,0x6627, - /* Array index: 0x0FCB */ 0x816E,0x6625, - /* Array index: 0x0FCB */ 0x817F,0x6A54, - /* Array index: 0x0FCB */ 0x8180,0x6A50, - /* Array index: 0x0FCB */ 0x8182,0x6A55, - /* Array index: 0x0FCB */ 0x8188,0x6A52, - /* Array index: 0x0FCB */ 0x818A,0x6A53, - /* Array index: 0x0FCB */ 0x818F,0x6A51, - /* Array index: 0x0FCB */ 0x81A0,0x6E4F, - /* Array index: 0x0FCB */ 0x81A8,0x7179, - /* Array index: 0x0FCB */ 0x81A9,0x7178, - /* Array index: 0x0FCB */ 0x81B3,0x7177, - /* Array index: 0x0FCB */ 0x81BA,0x747E, - /* Array index: 0x0FCB */ 0x81C6,0x747C, - /* Array index: 0x0FCB */ 0x81C9,0x7525, - /* Array index: 0x0FCB */ 0x81CD,0x772C, - /* Array index: 0x0FCB */ 0x81CF,0x772D, - /* Array index: 0x0FCB */ 0x81D8,0x7869, - /* Array index: 0x0FCB */ 0x81DA,0x7A2F, - /* Array index: 0x0FCB */ 0x81DF,0x7B70, - /* Array index: 0x0FCB */ 0x81E2,0x7C44, - /* Array index: 0x0FCB */ 0x81E3,0x485B, - /* Array index: 0x0FCB */ 0x81E5,0x4F3A, - /* Array index: 0x0FCB */ 0x81E7,0x6A56, - /* Array index: 0x0FCB */ 0x81E8,0x7527, - /* Array index: 0x0FCB */ 0x81EA,0x485C, - /* Array index: 0x0FCB */ 0x81EC,0x5769, - /* Array index: 0x0FCB */ 0x81ED,0x5768, - /* Array index: 0x0FCB */ 0x81F3,0x485D, - /* Array index: 0x0FCB */ 0x81F4,0x5333, - /* Array index: 0x0FCB */ 0x8210,0x576B, - /* Array index: 0x0FCB */ 0x8212,0x6154, - /* Array index: 0x0FCB */ 0x8214,0x6A59, - /* Array index: 0x0FCB */ 0x8222,0x5334, - /* Array index: 0x0FCB */ 0x8247,0x662C, - /* Array index: 0x0FCB */ 0x824B,0x6A5B, - /* Array index: 0x0FCB */ 0x8258,0x717C, - /* Array index: 0x0FCB */ 0x8259,0x717D, - /* Array index: 0x0FCB */ 0x8266,0x7A30, - /* Array index: 0x0FCB */ 0x8277,0x7C6C, - /* Array index: 0x0FCB */ 0x827E,0x4864, - /* Array index: 0x0FCB */ 0x828B,0x4B42, - /* Array index: 0x0FCB */ 0x828D,0x4B43, - /* Array index: 0x0FCB */ 0x8292,0x4B41, - /* Array index: 0x0FCB */ 0x8299,0x4F3F, - /* Array index: 0x0FCB */ 0x829D,0x4F3E, - /* Array index: 0x0FCB */ 0x829F,0x4F42, - /* Array index: 0x0FCB */ 0x82A3,0x4F49, - /* Array index: 0x0FCB */ 0x82A5,0x4F46, - /* Array index: 0x0FCB */ 0x82D7,0x5340, - /* Array index: 0x0FCB */ 0x82EF,0x5349, - /* Array index: 0x0FCB */ 0x82F1,0x5341, - /* Array index: 0x0FCB */ 0x8309,0x533E, - /* Array index: 0x0FCB */ 0x8317,0x577E, - /* Array index: 0x0FCB */ 0x8328,0x5823, - /* Array index: 0x0FCB */ 0x832B,0x5771, - /* Array index: 0x0FCB */ 0x8340,0x5821, - /* Array index: 0x0FCB */ 0x8343,0x5824, - /* Array index: 0x0FCB */ 0x8349,0x5777, - /* Array index: 0x0FCB */ 0x834A,0x5774, - /* Array index: 0x0FCB */ 0x834F,0x577A, - /* Array index: 0x0FCB */ 0x8350,0x5776, - /* Array index: 0x0FCB */ 0x8352,0x5772, - /* Array index: 0x0FCB */ 0x8354,0x5773, - /* Array index: 0x0FCB */ 0x8377,0x5D23, - /* Array index: 0x0FCB */ 0x8378,0x5C77, - /* Array index: 0x0FCB */ 0x837B,0x5D24, - /* Array index: 0x0FCB */ 0x837C,0x5D25, - /* Array index: 0x0FCB */ 0x8386,0x5D26, - /* Array index: 0x0FCB */ 0x8389,0x5D21, - /* Array index: 0x0FCB */ 0x838A,0x5C7D, - /* Array index: 0x0FCB */ 0x838E,0x5C74, - /* Array index: 0x0FCB */ 0x8392,0x5C7C, - /* Array index: 0x0FCB */ 0x8393,0x5C7E, - /* Array index: 0x0FCB */ 0x8396,0x5C79, - /* Array index: 0x0FCB */ 0x8398,0x5C76, - /* Array index: 0x0FCB */ 0x839E,0x5C75, - /* Array index: 0x0FCB */ 0x83A0,0x5D22, - /* Array index: 0x0FCB */ 0x83A2,0x5C78, - /* Array index: 0x0FCB */ 0x83A7,0x5D27, - /* Array index: 0x0FCB */ 0x83AB,0x5C7B, - /* Array index: 0x0FCB */ 0x83BD,0x5C7A, - /* Array index: 0x0FCB */ 0x83C1,0x615D, - /* Array index: 0x0FCB */ 0x83C5,0x615B, - /* Array index: 0x0FCB */ 0x83CA,0x6168, - /* Array index: 0x0FCB */ 0x83CC,0x6165, - /* Array index: 0x0FCB */ 0x83D4,0x616E, - /* Array index: 0x0FCB */ 0x83DC,0x616C, - /* Array index: 0x0FCB */ 0x83DF,0x616F, - /* Array index: 0x0FCB */ 0x83E0,0x615A, - /* Array index: 0x0FCB */ 0x83E9,0x6156, - /* Array index: 0x0FCB */ 0x83F8,0x6158, - /* Array index: 0x0FCB */ 0x83FD,0x6166, - /* Array index: 0x0FCB */ 0x8403,0x6157, - /* Array index: 0x0FCB */ 0x8404,0x616B, - /* Array index: 0x0FCB */ 0x8407,0x616D, - /* Array index: 0x0FCB */ 0x842C,0x655C, - /* Array index: 0x0FCB */ 0x8431,0x6630, - /* Array index: 0x0FCB */ 0x8435,0x6638, - /* Array index: 0x0FCB */ 0x8438,0x6169, - /* Array index: 0x0FCB */ 0x843C,0x6637, - /* Array index: 0x0FCB */ 0x843D,0x662F, - /* Array index: 0x0FCB */ 0x8446,0x663D, - /* Array index: 0x0FCB */ 0x8449,0x6634, - /* Array index: 0x0FCB */ 0x8457,0x6161, - /* Array index: 0x0FCB */ 0x845B,0x6636, - /* Array index: 0x0FCB */ 0x8461,0x6639, - /* Array index: 0x0FCB */ 0x8463,0x663A, - /* Array index: 0x0FCB */ 0x8466,0x6632, - /* Array index: 0x0FCB */ 0x8475,0x6631, - /* Array index: 0x0FCB */ 0x8477,0x662E, - /* Array index: 0x0FCB */ 0x8482,0x662D, - /* Array index: 0x0FCB */ 0x8490,0x6A68, - /* Array index: 0x0FCB */ 0x8499,0x6A60, - /* Array index: 0x0FCB */ 0x849C,0x6A63, - /* Array index: 0x0FCB */ 0x849E,0x6A61, - /* Array index: 0x0FCB */ 0x84B2,0x6A62, - /* Array index: 0x0FCB */ 0x84B8,0x6A65, - /* Array index: 0x0FCB */ 0x84BC,0x6A69, - /* Array index: 0x0FCB */ 0x84BF,0x6A5D, - /* Array index: 0x0FCB */ 0x84C0,0x6A66, - /* Array index: 0x0FCB */ 0x84C4,0x6A5F, - /* Array index: 0x0FCB */ 0x84C6,0x6A5E, - /* Array index: 0x0FCB */ 0x84D1,0x6A6A, - /* Array index: 0x0FCB */ 0x84D3,0x6A67, - /* Array index: 0x0FCB */ 0x84EC,0x6E5D, - /* Array index: 0x0FCB */ 0x84EE,0x6E55, - /* Array index: 0x0FCB */ 0x84FF,0x6E5F, - /* Array index: 0x0FCB */ 0x8506,0x6E60, - /* Array index: 0x0FCB */ 0x8511,0x6E59, - /* Array index: 0x0FCB */ 0x8513,0x6E58, - /* Array index: 0x0FCB */ 0x8514,0x6E5C, - /* Array index: 0x0FCB */ 0x8517,0x6E52, - /* Array index: 0x0FCB */ 0x851A,0x6E54, - /* Array index: 0x0FCB */ 0x8521,0x6E5B, - /* Array index: 0x0FCB */ 0x8523,0x6E5A, - /* Array index: 0x0FCB */ 0x8525,0x6E5E, - /* Array index: 0x0FCB */ 0x852C,0x6E56, - /* Array index: 0x0FCB */ 0x852D,0x6E57, - /* Array index: 0x0FCB */ 0x853D,0x6E53, - /* Array index: 0x0FCB */ 0x8543,0x7225, - /* Array index: 0x0FCB */ 0x8559,0x7221, - /* Array index: 0x0FCB */ 0x855E,0x7229, - /* Array index: 0x0FCB */ 0x856D,0x7227, - /* Array index: 0x0FCB */ 0x857E,0x752C, - /* Array index: 0x0FCB */ 0x8584,0x752B, - /* Array index: 0x0FCB */ 0x8587,0x7532, - /* Array index: 0x0FCB */ 0x858A,0x7534, - /* Array index: 0x0FCB */ 0x8591,0x752E, - /* Array index: 0x0FCB */ 0x8594,0x752F, - /* Array index: 0x0FCB */ 0x859B,0x7531, - /* Array index: 0x0FCB */ 0x859C,0x752D, - /* Array index: 0x0FCB */ 0x85AF,0x7530, - /* Array index: 0x0FCB */ 0x85B0,0x7734, - /* Array index: 0x0FCB */ 0x85B9,0x7736, - /* Array index: 0x0FCB */ 0x85BA,0x7735, - /* Array index: 0x0FCB */ 0x85C9,0x7733, - /* Array index: 0x0FCB */ 0x85CD,0x7731, - /* Array index: 0x0FCB */ 0x85CF,0x772F, - /* Array index: 0x0FCB */ 0x85D0,0x7732, - /* Array index: 0x0FCB */ 0x85D5,0x786D, - /* Array index: 0x0FCB */ 0x85DD,0x786B, - /* Array index: 0x0FCB */ 0x85E4,0x786E, - /* Array index: 0x0FCB */ 0x85E5,0x786F, - /* Array index: 0x0FCB */ 0x85E9,0x786A, - /* Array index: 0x0FCB */ 0x85EA,0x786C, - /* Array index: 0x0FCB */ 0x8606,0x7A35, - /* Array index: 0x0FCB */ 0x8607,0x7A37, - /* Array index: 0x0FCB */ 0x860A,0x7A38, - /* Array index: 0x0FCB */ 0x860B,0x7A36, - /* Array index: 0x0FCB */ 0x8611,0x7A33, - /* Array index: 0x0FCB */ 0x8617,0x7B21, - /* Array index: 0x0FCB */ 0x861A,0x7B23, - /* Array index: 0x0FCB */ 0x862D,0x7B22, - /* Array index: 0x0FCB */ 0x8638,0x7C45, - /* Array index: 0x0FCB */ 0x863F,0x7C46, - /* Array index: 0x0FCB */ 0x864E,0x4F4D, - /* Array index: 0x0FCB */ 0x8650,0x534B, - /* Array index: 0x0FCB */ 0x8654,0x5825, - /* Array index: 0x0FCB */ 0x8655,0x5D28, - /* Array index: 0x0FCB */ 0x8667,0x7536, - /* Array index: 0x0FCB */ 0x866B,0x4865, - /* Array index: 0x0FCB */ 0x8671,0x4F4E, - /* Array index: 0x0FCB */ 0x868A,0x5826, - /* Array index: 0x0FCB */ 0x868C,0x582B, - /* Array index: 0x0FCB */ 0x8693,0x5828, - /* Array index: 0x0FCB */ 0x869C,0x582D, - /* Array index: 0x0FCB */ 0x86A3,0x582C, - /* Array index: 0x0FCB */ 0x86A4,0x5829, - /* Array index: 0x0FCB */ 0x86A9,0x582A, - /* Array index: 0x0FCB */ 0x86AA,0x5827, - /* Array index: 0x0FCB */ 0x86AF,0x5D32, - /* Array index: 0x0FCB */ 0x86B1,0x5D31, - /* Array index: 0x0FCB */ 0x86B5,0x5D2E, - /* Array index: 0x0FCB */ 0x86B6,0x5D2C, - /* Array index: 0x0FCB */ 0x86C0,0x5D2B, - /* Array index: 0x0FCB */ 0x86C4,0x5D2D, - /* Array index: 0x0FCB */ 0x86C6,0x5D2F, - /* Array index: 0x0FCB */ 0x86C7,0x5D2A, - /* Array index: 0x0FCB */ 0x86C9,0x5D33, - /* Array index: 0x0FCB */ 0x86CB,0x5D30, - /* Array index: 0x0FCB */ 0x86D0,0x6177, - /* Array index: 0x0FCB */ 0x86D4,0x6174, - /* Array index: 0x0FCB */ 0x86D9,0x6172, - /* Array index: 0x0FCB */ 0x86DB,0x6175, - /* Array index: 0x0FCB */ 0x86DE,0x6178, - /* Array index: 0x0FCB */ 0x86DF,0x6171, - /* Array index: 0x0FCB */ 0x86E4,0x6176, - /* Array index: 0x0FCB */ 0x86ED,0x6173, - /* Array index: 0x0FCB */ 0x86F9,0x6641, - /* Array index: 0x0FCB */ 0x86FB,0x6647, - /* Array index: 0x0FCB */ 0x86FE,0x6646, - /* Array index: 0x0FCB */ 0x8700,0x6645, - /* Array index: 0x0FCB */ 0x8713,0x6642, - /* Array index: 0x0FCB */ 0x8718,0x6A72, - /* Array index: 0x0FCB */ 0x871C,0x6A6D, - /* Array index: 0x0FCB */ 0x8722,0x6A6F, - /* Array index: 0x0FCB */ 0x8725,0x6A70, - /* Array index: 0x0FCB */ 0x8729,0x6A75, - /* Array index: 0x0FCB */ 0x8734,0x6A71, - /* Array index: 0x0FCB */ 0x8737,0x6A74, - /* Array index: 0x0FCB */ 0x873B,0x6A6E, - /* Array index: 0x0FCB */ 0x873F,0x6A6C, - /* Array index: 0x0FCB */ 0x874C,0x6E6A, - /* Array index: 0x0FCB */ 0x8753,0x6E6B, - /* Array index: 0x0FCB */ 0x8755,0x6A73, - /* Array index: 0x0FCB */ 0x8757,0x6E69, - /* Array index: 0x0FCB */ 0x8759,0x6E68, - /* Array index: 0x0FCB */ 0x8760,0x6E64, - /* Array index: 0x0FCB */ 0x8766,0x6E65, - /* Array index: 0x0FCB */ 0x8768,0x6E67, - /* Array index: 0x0FCB */ 0x8774,0x6E62, - /* Array index: 0x0FCB */ 0x8776,0x6E63, - /* Array index: 0x0FCB */ 0x8778,0x6E66, - /* Array index: 0x0FCB */ 0x8782,0x6E61, - /* Array index: 0x0FCB */ 0x8783,0x722A, - /* Array index: 0x0FCB */ 0x878D,0x722E, - /* Array index: 0x0FCB */ 0x879E,0x722C, - /* Array index: 0x0FCB */ 0x879F,0x722B, - /* Array index: 0x0FCB */ 0x87A2,0x722D, - /* Array index: 0x0FCB */ 0x87AB,0x753C, - /* Array index: 0x0FCB */ 0x87B3,0x7539, - /* Array index: 0x0FCB */ 0x87BA,0x753E, - /* Array index: 0x0FCB */ 0x87BB,0x753D, - /* Array index: 0x0FCB */ 0x87C0,0x7537, - /* Array index: 0x0FCB */ 0x87C6,0x753B, - /* Array index: 0x0FCB */ 0x87C8,0x753F, - /* Array index: 0x0FCB */ 0x87CB,0x7540, - /* Array index: 0x0FCB */ 0x87D1,0x7538, - /* Array index: 0x0FCB */ 0x87D2,0x753A, - /* Array index: 0x0FCB */ 0x87E0,0x773A, - /* Array index: 0x0FCB */ 0x87EC,0x7738, - /* Array index: 0x0FCB */ 0x87EF,0x7737, - /* Array index: 0x0FCB */ 0x87F2,0x7739, - /* Array index: 0x0FCB */ 0x87F9,0x7874, - /* Array index: 0x0FCB */ 0x87FB,0x7871, - /* Array index: 0x0FCB */ 0x87FE,0x7875, - /* Array index: 0x0FCB */ 0x8805,0x7872, - /* Array index: 0x0FCB */ 0x880D,0x7873, - /* Array index: 0x0FCB */ 0x8814,0x7A39, - /* Array index: 0x0FCB */ 0x8815,0x7A3A, - /* Array index: 0x0FCB */ 0x8831,0x7C47, - /* Array index: 0x0FCB */ 0x8836,0x7C66, - /* Array index: 0x0FCB */ 0x8839,0x7C67, - /* Array index: 0x0FCB */ 0x883B,0x7D27, - /* Array index: 0x0FCB */ 0x8840,0x4866, - /* Array index: 0x0FCB */ 0x884C,0x4867, - /* Array index: 0x0FCB */ 0x884D,0x534F, - /* Array index: 0x0FCB */ 0x8853,0x5D34, - /* Array index: 0x0FCB */ 0x8857,0x6179, - /* Array index: 0x0FCB */ 0x8859,0x664C, - /* Array index: 0x0FCB */ 0x885B,0x6E6C, - /* Array index: 0x0FCB */ 0x885D,0x6E6D, - /* Array index: 0x0FCB */ 0x8868,0x4F50, - /* Array index: 0x0FCB */ 0x886B,0x5350, - /* Array index: 0x0FCB */ 0x8870,0x582E, - /* Array index: 0x0FCB */ 0x8877,0x582F, - /* Array index: 0x0FCB */ 0x8879,0x5833, - /* Array index: 0x0FCB */ 0x887D,0x5832, - /* Array index: 0x0FCB */ 0x8881,0x5830, - /* Array index: 0x0FCB */ 0x8882,0x5831, - /* Array index: 0x0FCB */ 0x8888,0x5D36, - /* Array index: 0x0FCB */ 0x888B,0x5D3B, - /* Array index: 0x0FCB */ 0x888D,0x5D3A, - /* Array index: 0x0FCB */ 0x8892,0x5D38, - /* Array index: 0x0FCB */ 0x8896,0x5D39, - /* Array index: 0x0FCB */ 0x889E,0x5D35, - /* Array index: 0x0FCB */ 0x88AB,0x5D37, - /* Array index: 0x0FCB */ 0x88B1,0x617C, - /* Array index: 0x0FCB */ 0x88C1,0x617A, - /* Array index: 0x0FCB */ 0x88C2,0x617B, - /* Array index: 0x0FCB */ 0x88CA,0x6654, - /* Array index: 0x0FCB */ 0x88D2,0x6656, - /* Array index: 0x0FCB */ 0x88D4,0x664E, - /* Array index: 0x0FCB */ 0x88D5,0x6655, - /* Array index: 0x0FCB */ 0x88D8,0x6651, - /* Array index: 0x0FCB */ 0x88D9,0x664F, - /* Array index: 0x0FCB */ 0x88DC,0x6650, - /* Array index: 0x0FCB */ 0x88DD,0x6652, - /* Array index: 0x0FCB */ 0x88DF,0x664D, - /* Array index: 0x0FCB */ 0x88E1,0x6653, - /* Array index: 0x0FCB */ 0x88E8,0x6A7C, - /* Array index: 0x0FCB */ 0x88EF,0x6A7E, - /* Array index: 0x0FCB */ 0x88F3,0x6A76, - /* Array index: 0x0FCB */ 0x88F4,0x6A78, - /* Array index: 0x0FCB */ 0x88F8,0x6A7A, - /* Array index: 0x0FCB */ 0x88F9,0x6A79, - /* Array index: 0x0FCB */ 0x88FD,0x6A7B, - /* Array index: 0x0FCB */ 0x8902,0x6A77, - /* Array index: 0x0FCB */ 0x8907,0x6E6F, - /* Array index: 0x0FCB */ 0x890A,0x6E73, - /* Array index: 0x0FCB */ 0x8910,0x6E6E, - /* Array index: 0x0FCB */ 0x8912,0x6E70, - /* Array index: 0x0FCB */ 0x8913,0x6E71, - /* Array index: 0x0FCB */ 0x8915,0x6E72, - /* Array index: 0x0FCB */ 0x891A,0x6A7D, - /* Array index: 0x0FCB */ 0x8921,0x7234, - /* Array index: 0x0FCB */ 0x8925,0x7232, - /* Array index: 0x0FCB */ 0x892A,0x7230, - /* Array index: 0x0FCB */ 0x892B,0x7233, - /* Array index: 0x0FCB */ 0x8932,0x7231, - /* Array index: 0x0FCB */ 0x8936,0x7542, - /* Array index: 0x0FCB */ 0x8938,0x7544, - /* Array index: 0x0FCB */ 0x893B,0x7541, - /* Array index: 0x0FCB */ 0x893D,0x7545, - /* Array index: 0x0FCB */ 0x8944,0x7543, - /* Array index: 0x0FCB */ 0x8956,0x7878, - /* Array index: 0x0FCB */ 0x8964,0x7A3B, - /* Array index: 0x0FCB */ 0x896A,0x7B28, - /* Array index: 0x0FCB */ 0x896C,0x7B29, - /* Array index: 0x0FCB */ 0x896F,0x7B72, - /* Array index: 0x0FCB */ 0x8972,0x7B71, - /* Array index: 0x0FCB */ 0x897F,0x4869, - /* Array index: 0x0FCB */ 0x8981,0x5351, - /* Array index: 0x0FCB */ 0x8983,0x617D, - /* Array index: 0x0FCB */ 0x8986,0x773B, - /* Array index: 0x0FCB */ 0x898B,0x4B44, - /* Array index: 0x0FCB */ 0x898F,0x5D3D, - /* Array index: 0x0FCB */ 0x8993,0x5D3C, - /* Array index: 0x0FCB */ 0x8996,0x617E, - /* Array index: 0x0FCB */ 0x899C,0x6657, - /* Array index: 0x0FCB */ 0x89A6,0x7236, - /* Array index: 0x0FCB */ 0x89AA,0x7235, - /* Array index: 0x0FCB */ 0x89AC,0x7546, - /* Array index: 0x0FCB */ 0x89B2,0x773C, - /* Array index: 0x0FCB */ 0x89BA,0x7A3C, - /* Array index: 0x0FCB */ 0x89BD,0x7B2A, - /* Array index: 0x0FCB */ 0x89C0,0x7D28, - /* Array index: 0x0FCB */ 0x89D2,0x4B45, - /* Array index: 0x0FCB */ 0x89D4,0x5352, - /* Array index: 0x0FCB */ 0x89E3,0x6658, - /* Array index: 0x0FCB */ 0x89F4,0x773D, - /* Array index: 0x0FCB */ 0x89F8,0x7A3D, - /* Array index: 0x0FCB */ 0x89FC,0x7B73, - /* Array index: 0x0FCB */ 0x8A00,0x4B46, - /* Array index: 0x0FCB */ 0x8A02,0x5354, - /* Array index: 0x0FCB */ 0x8A03,0x5355, - /* Array index: 0x0FCB */ 0x8A08,0x5353, - /* Array index: 0x0FCB */ 0x8A0A,0x5839, - /* Array index: 0x0FCB */ 0x8A1B,0x5D45, - /* Array index: 0x0FCB */ 0x8A1D,0x5D3F, - /* Array index: 0x0FCB */ 0x8A1F,0x5D44, - /* Array index: 0x0FCB */ 0x8A22,0x5D46, - /* Array index: 0x0FCB */ 0x8A23,0x5D40, - /* Array index: 0x0FCB */ 0x8A25,0x5D41, - /* Array index: 0x0FCB */ 0x8A2A,0x5D3E, - /* Array index: 0x0FCB */ 0x8A2D,0x5D43, - /* Array index: 0x0FCB */ 0x8A31,0x5D42, - /* Array index: 0x0FCB */ 0x8A34,0x622B, - /* Array index: 0x0FCB */ 0x8A36,0x622D, - /* Array index: 0x0FCB */ 0x8A41,0x6226, - /* Array index: 0x0FCB */ 0x8A46,0x622A, - /* Array index: 0x0FCB */ 0x8A50,0x6229, - /* Array index: 0x0FCB */ 0x8A5B,0x6228, - /* Array index: 0x0FCB */ 0x8A5E,0x6224, - /* Array index: 0x0FCB */ 0x8A60,0x6222, - /* Array index: 0x0FCB */ 0x8A62,0x6666, - /* Array index: 0x0FCB */ 0x8A63,0x6661, - /* Array index: 0x0FCB */ 0x8A66,0x665C, - /* Array index: 0x0FCB */ 0x8A79,0x6669, - /* Array index: 0x0FCB */ 0x8A7B,0x666A, - /* Array index: 0x0FCB */ 0x8A7C,0x6660, - /* Array index: 0x0FCB */ 0x8A85,0x6664, - /* Array index: 0x0FCB */ 0x8A87,0x665F, - /* Array index: 0x0FCB */ 0x8A8C,0x6B22, - /* Array index: 0x0FCB */ 0x8A8D,0x6B25, - /* Array index: 0x0FCB */ 0x8A91,0x6B2D, - /* Array index: 0x0FCB */ 0x8A93,0x6B27, - /* Array index: 0x0FCB */ 0x8A95,0x6E78, - /* Array index: 0x0FCB */ 0x8A98,0x6B2C, - /* Array index: 0x0FCB */ 0x8A9A,0x6B2E, - /* Array index: 0x0FCB */ 0x8A9E,0x6B23, - /* Array index: 0x0FCB */ 0x8AB0,0x6F21, - /* Array index: 0x0FCB */ 0x8AB2,0x6E7B, - /* Array index: 0x0FCB */ 0x8AB6,0x6F24, - /* Array index: 0x0FCB */ 0x8AB9,0x6F25, - /* Array index: 0x0FCB */ 0x8ABC,0x6E74, - /* Array index: 0x0FCB */ 0x8ABF,0x6E7E, - /* Array index: 0x0FCB */ 0x8AC2,0x6E7D, - /* Array index: 0x0FCB */ 0x8AC4,0x6E77, - /* Array index: 0x0FCB */ 0x8AC7,0x6E76, - /* Array index: 0x0FCB */ 0x8AC9,0x6E7C, - /* Array index: 0x0FCB */ 0x8ACB,0x6E79, - /* Array index: 0x0FCB */ 0x8ACD,0x6F23, - /* Array index: 0x0FCB */ 0x8AD2,0x6E75, - /* Array index: 0x0FCB */ 0x8AD6,0x6F22, - /* Array index: 0x0FCB */ 0x8ADB,0x6F26, - /* Array index: 0x0FCB */ 0x8ADC,0x723C, - /* Array index: 0x0FCB */ 0x8AE6,0x7237, - /* Array index: 0x0FCB */ 0x8AE7,0x723D, - /* Array index: 0x0FCB */ 0x8AEB,0x7239, - /* Array index: 0x0FCB */ 0x8AED,0x7243, - /* Array index: 0x0FCB */ 0x8AEE,0x723E, - /* Array index: 0x0FCB */ 0x8AF1,0x723A, - /* Array index: 0x0FCB */ 0x8AF3,0x7244, - /* Array index: 0x0FCB */ 0x8B0A,0x754B, - /* Array index: 0x0FCB */ 0x8B0E,0x7547, - /* Array index: 0x0FCB */ 0x8B10,0x754F, - /* Array index: 0x0FCB */ 0x8B17,0x7548, - /* Array index: 0x0FCB */ 0x8B19,0x7549, - /* Array index: 0x0FCB */ 0x8B1B,0x754A, - /* Array index: 0x0FCB */ 0x8B1D,0x754D, - /* Array index: 0x0FCB */ 0x8B20,0x754C, - /* Array index: 0x0FCB */ 0x8B28,0x773E, - /* Array index: 0x0FCB */ 0x8B2B,0x7741, - /* Array index: 0x0FCB */ 0x8B2C,0x7740, - /* Array index: 0x0FCB */ 0x8B39,0x773F, - /* Array index: 0x0FCB */ 0x8B41,0x787A, - /* Array index: 0x0FCB */ 0x8B46,0x7923, - /* Array index: 0x0FCB */ 0x8B49,0x787D, - /* Array index: 0x0FCB */ 0x8B4E,0x7921, - /* Array index: 0x0FCB */ 0x8B4F,0x7922, - /* Array index: 0x0FCB */ 0x8B5F,0x7A42, - /* Array index: 0x0FCB */ 0x8B66,0x7A40, - /* Array index: 0x0FCB */ 0x8B6B,0x7A43, - /* Array index: 0x0FCB */ 0x8B6C,0x7A3F, - /* Array index: 0x0FCB */ 0x8B6F,0x7A41, - /* Array index: 0x0FCB */ 0x8B70,0x7A3E, - /* Array index: 0x0FCB */ 0x8B74,0x7B2B, - /* Array index: 0x0FCB */ 0x8B77,0x7B2C, - /* Array index: 0x0FCB */ 0x8B7D,0x7B2D, - /* Array index: 0x0FCB */ 0x8B80,0x7B74, - /* Array index: 0x0FCB */ 0x8B8A,0x7C48, - /* Array index: 0x0FCB */ 0x8B92,0x7C6A, - /* Array index: 0x0FCB */ 0x8B93,0x7C69, - /* Array index: 0x0FCB */ 0x8B96,0x7C6B, - /* Array index: 0x0FCB */ 0x8B9A,0x7D34, - /* Array index: 0x0FCB */ 0x8B9C,0x7D3A, - /* Array index: 0x0FCB */ 0x8C37,0x4B47, - /* Array index: 0x0FCB */ 0x8C3F,0x7551, - /* Array index: 0x0FCB */ 0x8C41,0x7550, - /* Array index: 0x0FCB */ 0x8C46,0x4B48, - /* Array index: 0x0FCB */ 0x8C48,0x583F, - /* Array index: 0x0FCB */ 0x8C49,0x5D47, - /* Array index: 0x0FCB */ 0x8C4C,0x6F27, - /* Array index: 0x0FCB */ 0x8C4E,0x6F28, - /* Array index: 0x0FCB */ 0x8C50,0x7742, - /* Array index: 0x0FCB */ 0x8C54,0x7D43, - /* Array index: 0x0FCB */ 0x8C55,0x4B49, - /* Array index: 0x0FCB */ 0x8C5A,0x5D48, - /* Array index: 0x0FCB */ 0x8C61,0x622F, - /* Array index: 0x0FCB */ 0x8C62,0x666D, - /* Array index: 0x0FCB */ 0x8C73,0x7552, - /* Array index: 0x0FCB */ 0x8C79,0x5841, - /* Array index: 0x0FCB */ 0x8C7A,0x5840, - /* Array index: 0x0FCB */ 0x8C82,0x6230, - /* Array index: 0x0FCB */ 0x8C93,0x7249, - /* Array index: 0x0FCB */ 0x8CAF,0x6231, - /* Array index: 0x0FCB */ 0x8CDC,0x6F32, - /* Array index: 0x0FCB */ 0x8CEA,0x6F33, - /* Array index: 0x0FCB */ 0x8CEC,0x6F2E, - /* Array index: 0x0FCB */ 0x8CED,0x6F2F, - /* Array index: 0x0FCB */ 0x8CF4,0x724A, - /* Array index: 0x0FCB */ 0x8D05,0x7743, - /* Array index: 0x0FCB */ 0x8D08,0x7925, - /* Array index: 0x0FCB */ 0x8D0A,0x7926, - /* Array index: 0x0FCB */ 0x8D0D,0x7A45, - /* Array index: 0x0FCB */ 0x8D0F,0x7A44, - /* Array index: 0x0FCB */ 0x8D13,0x7B2E, - /* Array index: 0x0FCB */ 0x8D16,0x7B75, - /* Array index: 0x0FCB */ 0x8D17,0x7B76, - /* Array index: 0x0FCB */ 0x8D1B,0x7C6D, - /* Array index: 0x0FCB */ 0x8D64,0x4B4B, - /* Array index: 0x0FCB */ 0x8D66,0x5D50, - /* Array index: 0x0FCB */ 0x8D67,0x5D4F, - /* Array index: 0x0FCB */ 0x8D6B,0x6B36, - /* Array index: 0x0FCB */ 0x8D6D,0x6F35, - /* Array index: 0x0FCB */ 0x8D70,0x4B4C, - /* Array index: 0x0FCB */ 0x8D73,0x5359, - /* Array index: 0x0FCB */ 0x8D74,0x5358, - /* Array index: 0x0FCB */ 0x8D77,0x5844, - /* Array index: 0x0FCB */ 0x8D81,0x623F, - /* Array index: 0x0FCB */ 0x8D85,0x623E, - /* Array index: 0x0FCB */ 0x8D8A,0x623D, - /* Array index: 0x0FCB */ 0x8D95,0x6B38, - /* Array index: 0x0FCB */ 0x8D99,0x6B37, - /* Array index: 0x0FCB */ 0x8D9F,0x6F36, - /* Array index: 0x0FCB */ 0x8DA3,0x6F37, - /* Array index: 0x0FCB */ 0x8DA8,0x7558, - /* Array index: 0x0FCB */ 0x8DB3,0x4B4D, - /* Array index: 0x0FCB */ 0x8DB4,0x535A, - /* Array index: 0x0FCB */ 0x8DBA,0x5D52, - /* Array index: 0x0FCB */ 0x8DBE,0x5D51, - /* Array index: 0x0FCB */ 0x8DC6,0x6247, - /* Array index: 0x0FCB */ 0x8DCB,0x6242, - /* Array index: 0x0FCB */ 0x8DCC,0x6245, - /* Array index: 0x0FCB */ 0x8DCE,0x6240, - /* Array index: 0x0FCB */ 0x8DD1,0x6244, - /* Array index: 0x0FCB */ 0x8DDA,0x6243, - /* Array index: 0x0FCB */ 0x8DDB,0x6246, - /* Array index: 0x0FCB */ 0x8DDD,0x6241, - /* Array index: 0x0FCB */ 0x8DDF,0x6679, - /* Array index: 0x0FCB */ 0x8DE1,0x6678, - /* Array index: 0x0FCB */ 0x8DE4,0x6721, - /* Array index: 0x0FCB */ 0x8DE6,0x6722, - /* Array index: 0x0FCB */ 0x8DE8,0x667A, - /* Array index: 0x0FCB */ 0x8DEA,0x667E, - /* Array index: 0x0FCB */ 0x8DEF,0x667B, - /* Array index: 0x0FCB */ 0x8DF3,0x667C, - /* Array index: 0x0FCB */ 0x8DFA,0x667D, - /* Array index: 0x0FCB */ 0x8DFC,0x6B39, - /* Array index: 0x0FCB */ 0x8E0F,0x6F3C, - /* Array index: 0x0FCB */ 0x8E10,0x6F39, - /* Array index: 0x0FCB */ 0x8E29,0x6F3D, - /* Array index: 0x0FCB */ 0x8E2B,0x6F38, - /* Array index: 0x0FCB */ 0x8E31,0x724C, - /* Array index: 0x0FCB */ 0x8E34,0x724D, - /* Array index: 0x0FCB */ 0x8E35,0x7250, - /* Array index: 0x0FCB */ 0x8E39,0x724F, - /* Array index: 0x0FCB */ 0x8E42,0x724E, - /* Array index: 0x0FCB */ 0x8E44,0x724B, - /* Array index: 0x0FCB */ 0x8E55,0x7749, - /* Array index: 0x0FCB */ 0x8E59,0x7744, - /* Array index: 0x0FCB */ 0x8E5F,0x7748, - /* Array index: 0x0FCB */ 0x8E63,0x7745, - /* Array index: 0x0FCB */ 0x8E64,0x7747, - /* Array index: 0x0FCB */ 0x8E66,0x7746, - /* Array index: 0x0FCB */ 0x8E6C,0x792B, - /* Array index: 0x0FCB */ 0x8E72,0x7928, - /* Array index: 0x0FCB */ 0x8E74,0x792D, - /* Array index: 0x0FCB */ 0x8E76,0x792A, - /* Array index: 0x0FCB */ 0x8E7A,0x792C, - /* Array index: 0x0FCB */ 0x8E7C,0x7927, - /* Array index: 0x0FCB */ 0x8E81,0x7A47, - /* Array index: 0x0FCB */ 0x8E82,0x7A49, - /* Array index: 0x0FCB */ 0x8E85,0x7A48, - /* Array index: 0x0FCB */ 0x8E91,0x7B77, - /* Array index: 0x0FCB */ 0x8E93,0x7B78, - /* Array index: 0x0FCB */ 0x8EA1,0x7D29, - /* Array index: 0x0FCB */ 0x8EB2,0x6723, - /* Array index: 0x0FCB */ 0x8EBA,0x6F41, - /* Array index: 0x0FCB */ 0x8EC0,0x774A, - /* Array index: 0x0FCB */ 0x8ED2,0x5846, - /* Array index: 0x0FCB */ 0x8ED4,0x5847, - /* Array index: 0x0FCB */ 0x8EDB,0x5D53, - /* Array index: 0x0FCB */ 0x8EDF,0x5D54, - /* Array index: 0x0FCB */ 0x8EF8,0x6249, - /* Array index: 0x0FCB */ 0x8EFB,0x6248, - /* Array index: 0x0FCB */ 0x8EFC,0x624A, - /* Array index: 0x0FCB */ 0x8EFE,0x6726, - /* Array index: 0x0FCB */ 0x8F03,0x6724, - /* Array index: 0x0FCB */ 0x8F09,0x6725, - /* Array index: 0x0FCB */ 0x8F0A,0x6727, - /* Array index: 0x0FCB */ 0x8F25,0x6F4A, - /* Array index: 0x0FCB */ 0x8F26,0x6F46, - /* Array index: 0x0FCB */ 0x8F29,0x6F45, - /* Array index: 0x0FCB */ 0x8F2A,0x6F47, - /* Array index: 0x0FCB */ 0x8F2F,0x7252, - /* Array index: 0x0FCB */ 0x8F33,0x7254, - /* Array index: 0x0FCB */ 0x8F38,0x7253, - /* Array index: 0x0FCB */ 0x8F3B,0x7251, - /* Array index: 0x0FCB */ 0x8F3E,0x755E, - /* Array index: 0x0FCB */ 0x8F3F,0x7561, - /* Array index: 0x0FCB */ 0x8F42,0x755F, - /* Array index: 0x0FCB */ 0x8F44,0x755D, - /* Array index: 0x0FCB */ 0x8F45,0x7560, - /* Array index: 0x0FCB */ 0x8F49,0x774B, - /* Array index: 0x0FCB */ 0x8F4D,0x774C, - /* Array index: 0x0FCB */ 0x8F4E,0x792F, - /* Array index: 0x0FCB */ 0x8F54,0x792E, - /* Array index: 0x0FCB */ 0x8F5F,0x7B32, - /* Array index: 0x0FCB */ 0x8F61,0x7B79, - /* Array index: 0x0FCB */ 0x8F9B,0x4B50, - /* Array index: 0x0FCB */ 0x8F9C,0x624B, - /* Array index: 0x0FCB */ 0x8F9F,0x6728, - /* Array index: 0x0FCB */ 0x8FA3,0x6B3E, - /* Array index: 0x0FCB */ 0x8FA6,0x7256, - /* Array index: 0x0FCB */ 0x8FA8,0x7255, - /* Array index: 0x0FCB */ 0x8FCE,0x4F52, - /* Array index: 0x0FCB */ 0x8FD1,0x4F54, - /* Array index: 0x0FCB */ 0x8FD4,0x4F53, - /* Array index: 0x0FCB */ 0x8FF0,0x535D, - /* Array index: 0x0FCB */ 0x8FF4,0x584F, - /* Array index: 0x0FCB */ 0x8FF7,0x584C, - /* Array index: 0x0FCB */ 0x8FF8,0x5853, - /* Array index: 0x0FCB */ 0x8FFA,0x584E, - /* Array index: 0x0FCB */ 0x8FFD,0x5851, - /* Array index: 0x0FCB */ 0x9000,0x584D, - /* Array index: 0x0FCB */ 0x9001,0x584A, - /* Array index: 0x0FCB */ 0x9003,0x5850, - /* Array index: 0x0FCB */ 0x9005,0x5852, - /* Array index: 0x0FCB */ 0x9006,0x584B, - /* Array index: 0x0FCB */ 0x900D,0x5D56, - /* Array index: 0x0FCB */ 0x900F,0x5D60, - /* Array index: 0x0FCB */ 0x9010,0x5D5C, - /* Array index: 0x0FCB */ 0x902E,0x624C, - /* Array index: 0x0FCB */ 0x9031,0x624E, - /* Array index: 0x0FCB */ 0x9032,0x6250, - /* Array index: 0x0FCB */ 0x9035,0x624D, - /* Array index: 0x0FCB */ 0x9036,0x6251, - /* Array index: 0x0FCB */ 0x9038,0x624F, - /* Array index: 0x0FCB */ 0x903C,0x672F, - /* Array index: 0x0FCB */ 0x903E,0x6737, - /* Array index: 0x0FCB */ 0x9041,0x6738, - /* Array index: 0x0FCB */ 0x9042,0x672D, - /* Array index: 0x0FCB */ 0x9047,0x6732, - /* Array index: 0x0FCB */ 0x9068,0x6F4D, - /* Array index: 0x0FCB */ 0x9069,0x6F4B, - /* Array index: 0x0FCB */ 0x906D,0x6F4E, - /* Array index: 0x0FCB */ 0x906E,0x6F4C, - /* Array index: 0x0FCB */ 0x9072,0x725A, - /* Array index: 0x0FCB */ 0x9095,0x5854, - /* Array index: 0x0FCB */ 0x90A2,0x4B58, - /* Array index: 0x0FCB */ 0x90A3,0x4B5B, - /* Array index: 0x0FCB */ 0x90A6,0x4B5A, - /* Array index: 0x0FCB */ 0x90AA,0x4B59, - /* Array index: 0x0FCB */ 0x90B1,0x4F57, - /* Array index: 0x0FCB */ 0x90B5,0x4F55, - /* Array index: 0x0FCB */ 0x90B6,0x4F58, - /* Array index: 0x0FCB */ 0x90B8,0x4F56, - /* Array index: 0x0FCB */ 0x90C1,0x5368, - /* Array index: 0x0FCB */ 0x90C3,0x5369, - /* Array index: 0x0FCB */ 0x90CA,0x5366, - /* Array index: 0x0FCB */ 0x90CE,0x5367, - /* Array index: 0x0FCB */ 0x90DD,0x5856, - /* Array index: 0x0FCB */ 0x90E1,0x5855, - /* Array index: 0x0FCB */ 0x90E2,0x5857, - /* Array index: 0x0FCB */ 0x90E8,0x5D65, - /* Array index: 0x0FCB */ 0x90ED,0x5D66, - /* Array index: 0x0FCB */ 0x90F5,0x6253, - /* Array index: 0x0FCB */ 0x90FD,0x5D67, - /* Array index: 0x0FCB */ 0x90FE,0x6255, - /* Array index: 0x0FCB */ 0x9102,0x6252, - /* Array index: 0x0FCB */ 0x9109,0x6254, - /* Array index: 0x0FCB */ 0x9112,0x6739, - /* Array index: 0x0FCB */ 0x911E,0x6B4A, - /* Array index: 0x0FCB */ 0x9127,0x6F52, - /* Array index: 0x0FCB */ 0x912D,0x6F51, - /* Array index: 0x0FCB */ 0x9130,0x6F50, - /* Array index: 0x0FCB */ 0x9131,0x6F53, - /* Array index: 0x0FCB */ 0x9134,0x725D, - /* Array index: 0x0FCB */ 0x9139,0x7568, - /* Array index: 0x0FCB */ 0x9152,0x5858, - /* Array index: 0x0FCB */ 0x9157,0x5D68, - /* Array index: 0x0FCB */ 0x9163,0x6256, - /* Array index: 0x0FCB */ 0x9165,0x6257, - /* Array index: 0x0FCB */ 0x9169,0x673D, - /* Array index: 0x0FCB */ 0x916A,0x673C, - /* Array index: 0x0FCB */ 0x916C,0x673B, - /* Array index: 0x0FCB */ 0x9183,0x6F57, - /* Array index: 0x0FCB */ 0x9187,0x6F54, - /* Array index: 0x0FCB */ 0x9189,0x6F55, - /* Array index: 0x0FCB */ 0x918B,0x6F56, - /* Array index: 0x0FCB */ 0x9192,0x725E, - /* Array index: 0x0FCB */ 0x919C,0x756B, - /* Array index: 0x0FCB */ 0x919E,0x756A, - /* Array index: 0x0FCB */ 0x91A3,0x7569, - /* Array index: 0x0FCB */ 0x91AB,0x7750, - /* Array index: 0x0FCB */ 0x91AC,0x7751, - /* Array index: 0x0FCB */ 0x91AE,0x7934, - /* Array index: 0x0FCB */ 0x91B1,0x7933, - /* Array index: 0x0FCB */ 0x91B4,0x7A4A, - /* Array index: 0x0FCB */ 0x91BA,0x7B34, - /* Array index: 0x0FCB */ 0x91C0,0x7C6E, - /* Array index: 0x0FCB */ 0x91C1,0x7D2A, - /* Array index: 0x0FCB */ 0x91E3,0x5D6C, - /* Array index: 0x0FCB */ 0x91E6,0x5D6B, - /* Array index: 0x0FCB */ 0x91E7,0x5D6D, - /* Array index: 0x0FCB */ 0x91E9,0x5D6F, - /* Array index: 0x0FCB */ 0x91ED,0x5D6E, - /* Array index: 0x0FCB */ 0x91F5,0x5D6A, - /* Array index: 0x0FCB */ 0x9207,0x6260, - /* Array index: 0x0FCB */ 0x9209,0x625C, - /* Array index: 0x0FCB */ 0x920D,0x625E, - /* Array index: 0x0FCB */ 0x9210,0x625F, - /* Array index: 0x0FCB */ 0x9211,0x6261, - /* Array index: 0x0FCB */ 0x9214,0x6259, - /* Array index: 0x0FCB */ 0x9215,0x625A, - /* Array index: 0x0FCB */ 0x921E,0x625D, - /* Array index: 0x0FCB */ 0x9223,0x625B, - /* Array index: 0x0FCB */ 0x9234,0x6749, - /* Array index: 0x0FCB */ 0x9245,0x674C, - /* Array index: 0x0FCB */ 0x9249,0x674A, - /* Array index: 0x0FCB */ 0x924B,0x6746, - /* Array index: 0x0FCB */ 0x924D,0x674B, - /* Array index: 0x0FCB */ 0x9251,0x6748, - /* Array index: 0x0FCB */ 0x9257,0x6740, - /* Array index: 0x0FCB */ 0x925A,0x674F, - /* Array index: 0x0FCB */ 0x925B,0x6745, - /* Array index: 0x0FCB */ 0x9264,0x6747, - /* Array index: 0x0FCB */ 0x9278,0x6B4F, - /* Array index: 0x0FCB */ 0x927B,0x6B55, - /* Array index: 0x0FCB */ 0x927C,0x6B59, - /* Array index: 0x0FCB */ 0x9280,0x6B51, - /* Array index: 0x0FCB */ 0x9285,0x6B52, - /* Array index: 0x0FCB */ 0x9291,0x6B5A, - /* Array index: 0x0FCB */ 0x9293,0x6B56, - /* Array index: 0x0FCB */ 0x9296,0x6B54, - /* Array index: 0x0FCB */ 0x9298,0x6B53, - /* Array index: 0x0FCB */ 0x929C,0x6B57, - /* Array index: 0x0FCB */ 0x92A8,0x6B58, - /* Array index: 0x0FCB */ 0x92AC,0x6B50, - /* Array index: 0x0FCB */ 0x92B2,0x6F63, - /* Array index: 0x0FCB */ 0x92B3,0x6F5E, - /* Array index: 0x0FCB */ 0x92B7,0x6F5A, - /* Array index: 0x0FCB */ 0x92BB,0x6F59, - /* Array index: 0x0FCB */ 0x92BC,0x6F5F, - /* Array index: 0x0FCB */ 0x92C1,0x6F5D, - /* Array index: 0x0FCB */ 0x92C5,0x6F58, - /* Array index: 0x0FCB */ 0x92C7,0x6F61, - /* Array index: 0x0FCB */ 0x92D2,0x6F60, - /* Array index: 0x0FCB */ 0x92E4,0x6F5C, - /* Array index: 0x0FCB */ 0x92EA,0x6F5B, - /* Array index: 0x0FCB */ 0x92F0,0x6F62, - /* Array index: 0x0FCB */ 0x92F8,0x7261, - /* Array index: 0x0FCB */ 0x92FC,0x7265, - /* Array index: 0x0FCB */ 0x9304,0x7267, - /* Array index: 0x0FCB */ 0x9310,0x7269, - /* Array index: 0x0FCB */ 0x9315,0x726C, - /* Array index: 0x0FCB */ 0x9326,0x726A, - /* Array index: 0x0FCB */ 0x9328,0x756E, - /* Array index: 0x0FCB */ 0x932B,0x7266, - /* Array index: 0x0FCB */ 0x932E,0x726D, - /* Array index: 0x0FCB */ 0x932F,0x7263, - /* Array index: 0x0FCB */ 0x9333,0x7262, - /* Array index: 0x0FCB */ 0x9336,0x7260, - /* Array index: 0x0FCB */ 0x934A,0x7570, - /* Array index: 0x0FCB */ 0x934B,0x7572, - /* Array index: 0x0FCB */ 0x934D,0x756C, - /* Array index: 0x0FCB */ 0x9354,0x7579, - /* Array index: 0x0FCB */ 0x935A,0x7578, - /* Array index: 0x0FCB */ 0x935B,0x7576, - /* Array index: 0x0FCB */ 0x9365,0x7571, - /* Array index: 0x0FCB */ 0x936C,0x7575, - /* Array index: 0x0FCB */ 0x9370,0x7577, - /* Array index: 0x0FCB */ 0x9375,0x756F, - /* Array index: 0x0FCB */ 0x937E,0x7574, - /* Array index: 0x0FCB */ 0x9382,0x756D, - /* Array index: 0x0FCB */ 0x938A,0x7754, - /* Array index: 0x0FCB */ 0x93A2,0x7756, - /* Array index: 0x0FCB */ 0x93AC,0x7759, - /* Array index: 0x0FCB */ 0x93AE,0x7758, - /* Array index: 0x0FCB */ 0x93B0,0x775A, - /* Array index: 0x0FCB */ 0x93B3,0x7757, - /* Array index: 0x0FCB */ 0x93C3,0x7938, - /* Array index: 0x0FCB */ 0x93C8,0x7939, - /* Array index: 0x0FCB */ 0x93CD,0x793E, - /* Array index: 0x0FCB */ 0x93D1,0x7936, - /* Array index: 0x0FCB */ 0x93DC,0x793A, - /* Array index: 0x0FCB */ 0x93DD,0x793B, - /* Array index: 0x0FCB */ 0x93DF,0x7937, - /* Array index: 0x0FCB */ 0x93E1,0x7935, - /* Array index: 0x0FCB */ 0x93E2,0x793D, - /* Array index: 0x0FCB */ 0x93E4,0x7940, - /* Array index: 0x0FCB */ 0x93E8,0x7942, - /* Array index: 0x0FCB */ 0x93FD,0x7A4E, - /* Array index: 0x0FCB */ 0x9403,0x7A4D, - /* Array index: 0x0FCB */ 0x9418,0x7A4C, - /* Array index: 0x0FCB */ 0x942B,0x7B3B, - /* Array index: 0x0FCB */ 0x942E,0x7B35, - /* Array index: 0x0FCB */ 0x9432,0x7B3A, - /* Array index: 0x0FCB */ 0x9433,0x7B36, - /* Array index: 0x0FCB */ 0x9435,0x7B37, - /* Array index: 0x0FCB */ 0x9438,0x7B39, - /* Array index: 0x0FCB */ 0x943A,0x7B38, - /* Array index: 0x0FCB */ 0x9444,0x7B7B, - /* Array index: 0x0FCB */ 0x9451,0x7B7C, - /* Array index: 0x0FCB */ 0x9452,0x7B7D, - /* Array index: 0x0FCB */ 0x9460,0x7C4C, - /* Array index: 0x0FCB */ 0x9463,0x7C4B, - /* Array index: 0x0FCB */ 0x9464,0x7C4D, - /* Array index: 0x0FCB */ 0x946A,0x7C6F, - /* Array index: 0x0FCB */ 0x9470,0x7D2C, - /* Array index: 0x0FCB */ 0x9472,0x7D2B, - /* Array index: 0x0FCB */ 0x9477,0x7D35, - /* Array index: 0x0FCB */ 0x9577,0x4F5B, - /* Array index: 0x0FCB */ 0x9580,0x4F5C, - /* Array index: 0x0FCB */ 0x9582,0x536D, - /* Array index: 0x0FCB */ 0x9583,0x5860, - /* Array index: 0x0FCB */ 0x9589,0x5D70, - /* Array index: 0x0FCB */ 0x958B,0x6264, - /* Array index: 0x0FCB */ 0x9598,0x6750, - /* Array index: 0x0FCB */ 0x95AD,0x6F64, - /* Array index: 0x0FCB */ 0x95B1,0x6F65, - /* Array index: 0x0FCB */ 0x95BB,0x726F, - /* Array index: 0x0FCB */ 0x95C6,0x757E, - /* Array index: 0x0FCB */ 0x95D0,0x7760, - /* Array index: 0x0FCB */ 0x95DC,0x7943, - /* Array index: 0x0FCB */ 0x95E1,0x7A4F, - /* Array index: 0x0FCB */ 0x95E2,0x7B3C, - /* Array index: 0x0FCB */ 0x961C,0x4F5D, - /* Array index: 0x0FCB */ 0x9621,0x486A, - /* Array index: 0x0FCB */ 0x962A,0x4B62, - /* Array index: 0x0FCB */ 0x962C,0x4B63, - /* Array index: 0x0FCB */ 0x962E,0x4B60, - /* Array index: 0x0FCB */ 0x9631,0x4B61, - /* Array index: 0x0FCB */ 0x9632,0x4B5F, - /* Array index: 0x0FCB */ 0x963B,0x4F60, - /* Array index: 0x0FCB */ 0x963F,0x4F5F, - /* Array index: 0x0FCB */ 0x9640,0x4F5E, - /* Array index: 0x0FCB */ 0x9642,0x4F62, - /* Array index: 0x0FCB */ 0x9644,0x4F61, - /* Array index: 0x0FCB */ 0x9650,0x536E, - /* Array index: 0x0FCB */ 0x9658,0x5867, - /* Array index: 0x0FCB */ 0x965B,0x5864, - /* Array index: 0x0FCB */ 0x966A,0x5D71, - /* Array index: 0x0FCB */ 0x966C,0x5D79, - /* Array index: 0x0FCB */ 0x967D,0x626C, - /* Array index: 0x0FCB */ 0x9694,0x6752, - /* Array index: 0x0FCB */ 0x9695,0x6753, - /* Array index: 0x0FCB */ 0x96A7,0x7270, - /* Array index: 0x0FCB */ 0x96A8,0x7271, - /* Array index: 0x0FCB */ 0x96AA,0x7272, - /* Array index: 0x0FCB */ 0x96B1,0x7621, - /* Array index: 0x0FCB */ 0x96B4,0x7944, - /* Array index: 0x0FCB */ 0x96B8,0x7622, - /* Array index: 0x0FCB */ 0x96B9,0x4F63, - /* Array index: 0x0FCB */ 0x96BB,0x5869, - /* Array index: 0x0FCB */ 0x96D2,0x6B65, - /* Array index: 0x0FCB */ 0x96D5,0x7273, - /* Array index: 0x0FCB */ 0x96D6,0x7623, - /* Array index: 0x0FCB */ 0x96D9,0x7764, - /* Array index: 0x0FCB */ 0x96DB,0x7765, - /* Array index: 0x0FCB */ 0x96DC,0x7763, - /* Array index: 0x0FCB */ 0x96DE,0x7766, - /* Array index: 0x0FCB */ 0x96E2,0x7762, - /* Array index: 0x0FCB */ 0x96E3,0x7945, - /* Array index: 0x0FCB */ 0x96EF,0x6277, - /* Array index: 0x0FCB */ 0x96F2,0x6278, - /* Array index: 0x0FCB */ 0x96F6,0x675B, - /* Array index: 0x0FCB */ 0x96F7,0x6758, - /* Array index: 0x0FCB */ 0x96F9,0x675A, - /* Array index: 0x0FCB */ 0x96FB,0x6759, - /* Array index: 0x0FCB */ 0x9700,0x6B66, - /* Array index: 0x0FCB */ 0x9704,0x6F66, - /* Array index: 0x0FCB */ 0x9706,0x6F67, - /* Array index: 0x0FCB */ 0x9707,0x6F68, - /* Array index: 0x0FCB */ 0x9709,0x6F69, - /* Array index: 0x0FCB */ 0x9716,0x7276, - /* Array index: 0x0FCB */ 0x971C,0x7624, - /* Array index: 0x0FCB */ 0x971E,0x7625, - /* Array index: 0x0FCB */ 0x9724,0x7767, - /* Array index: 0x0FCB */ 0x9727,0x7947, - /* Array index: 0x0FCB */ 0x972A,0x7946, - /* Array index: 0x0FCB */ 0x9730,0x7A50, - /* Array index: 0x0FCB */ 0x9732,0x7B3F, - /* Array index: 0x0FCB */ 0x9738,0x7B3D, - /* Array index: 0x0FCB */ 0x9739,0x7B3E, - /* Array index: 0x0FCB */ 0x973D,0x7B7E, - /* Array index: 0x0FCB */ 0x973E,0x7C21, - /* Array index: 0x0FCB */ 0x9742,0x7C70, - /* Array index: 0x0FCB */ 0x9744,0x7C72, - /* Array index: 0x0FCB */ 0x9748,0x7C71, - /* Array index: 0x0FCB */ 0x9752,0x4F65, - /* Array index: 0x0FCB */ 0x9756,0x675C, - /* Array index: 0x0FCB */ 0x975B,0x727A, - /* Array index: 0x0FCB */ 0x975C,0x727B, - /* Array index: 0x0FCB */ 0x9766,0x727C, - /* Array index: 0x0FCB */ 0x9768,0x7C4E, - /* Array index: 0x0FCB */ 0x9769,0x5373, - /* Array index: 0x0FCB */ 0x9774,0x675D, - /* Array index: 0x0FCB */ 0x9776,0x675E, - /* Array index: 0x0FCB */ 0x977C,0x6B67, - /* Array index: 0x0FCB */ 0x9785,0x6B68, - /* Array index: 0x0FCB */ 0x978B,0x6F6C, - /* Array index: 0x0FCB */ 0x978D,0x6F6B, - /* Array index: 0x0FCB */ 0x978F,0x6F6D, - /* Array index: 0x0FCB */ 0x9798,0x727D, - /* Array index: 0x0FCB */ 0x97A0,0x7626, - /* Array index: 0x0FCB */ 0x97A3,0x7768, - /* Array index: 0x0FCB */ 0x97A6,0x7769, - /* Array index: 0x0FCB */ 0x97AD,0x776A, - /* Array index: 0x0FCB */ 0x97C1,0x7C23, - /* Array index: 0x0FCB */ 0x97C3,0x7C22, - /* Array index: 0x0FCB */ 0x97C6,0x7C73, - /* Array index: 0x0FCB */ 0x97C9,0x7D36, - /* Array index: 0x0FCB */ 0x97CB,0x5374, - /* Array index: 0x0FCB */ 0x97CC,0x6279, - /* Array index: 0x0FCB */ 0x97D3,0x7627, - /* Array index: 0x0FCB */ 0x97DC,0x7949, - /* Array index: 0x0FCB */ 0x97ED,0x5375, - /* Array index: 0x0FCB */ 0x97F3,0x5376, - /* Array index: 0x0FCB */ 0x97F6,0x6B69, - /* Array index: 0x0FCB */ 0x97F9,0x776B, - /* Array index: 0x0FCB */ 0x97FB,0x794A, - /* Array index: 0x0FCB */ 0x9817,0x6B6A, - /* Array index: 0x0FCB */ 0x9818,0x6B6B, - /* Array index: 0x0FCB */ 0x981C,0x6F70, - /* Array index: 0x0FCB */ 0x9821,0x6F6E, - /* Array index: 0x0FCB */ 0x9824,0x7326, - /* Array index: 0x0FCB */ 0x982B,0x6F6F, - /* Array index: 0x0FCB */ 0x982D,0x7324, - /* Array index: 0x0FCB */ 0x9830,0x727E, - /* Array index: 0x0FCB */ 0x9846,0x7628, - /* Array index: 0x0FCB */ 0x9853,0x7770, - /* Array index: 0x0FCB */ 0x9858,0x794C, - /* Array index: 0x0FCB */ 0x985B,0x794D, - /* Array index: 0x0FCB */ 0x985E,0x794B, - /* Array index: 0x0FCB */ 0x9865,0x7B42, - /* Array index: 0x0FCB */ 0x9867,0x7B41, - /* Array index: 0x0FCB */ 0x986B,0x7C24, - /* Array index: 0x0FCB */ 0x98A8,0x5378, - /* Array index: 0x0FCB */ 0x98AF,0x6B6C, - /* Array index: 0x0FCB */ 0x98B1,0x6B6D, - /* Array index: 0x0FCB */ 0x98B3,0x6F71, - /* Array index: 0x0FCB */ 0x98B6,0x7629, - /* Array index: 0x0FCB */ 0x98BA,0x7771, - /* Array index: 0x0FCB */ 0x98BC,0x794E, - /* Array index: 0x0FCB */ 0x98C4,0x7A51, - /* Array index: 0x0FCB */ 0x98DB,0x5379, - /* Array index: 0x0FCB */ 0x98DF,0x537A, - /* Array index: 0x0FCB */ 0x98E2,0x586A, - /* Array index: 0x0FCB */ 0x98E7,0x627D, - /* Array index: 0x0FCB */ 0x98E9,0x6322, - /* Array index: 0x0FCB */ 0x98EA,0x627E, - /* Array index: 0x0FCB */ 0x98ED,0x6324, - /* Array index: 0x0FCB */ 0x98EF,0x6321, - /* Array index: 0x0FCB */ 0x98F2,0x6323, - /* Array index: 0x0FCB */ 0x98F4,0x6766, - /* Array index: 0x0FCB */ 0x9903,0x6B6E, - /* Array index: 0x0FCB */ 0x9905,0x6B6F, - /* Array index: 0x0FCB */ 0x9909,0x6B71, - /* Array index: 0x0FCB */ 0x990A,0x6F72, - /* Array index: 0x0FCB */ 0x990C,0x6B70, - /* Array index: 0x0FCB */ 0x9910,0x7327, - /* Array index: 0x0FCB */ 0x9912,0x6F74, - /* Array index: 0x0FCB */ 0x9913,0x6F73, - /* Array index: 0x0FCB */ 0x9918,0x6F75, - /* Array index: 0x0FCB */ 0x991A,0x732C, - /* Array index: 0x0FCB */ 0x991B,0x732A, - /* Array index: 0x0FCB */ 0x991E,0x7329, - /* Array index: 0x0FCB */ 0x9921,0x732B, - /* Array index: 0x0FCB */ 0x9928,0x7328, - /* Array index: 0x0FCB */ 0x992E,0x7775, - /* Array index: 0x0FCB */ 0x9935,0x762A, - /* Array index: 0x0FCB */ 0x9945,0x794F, - /* Array index: 0x0FCB */ 0x9949,0x7950, - /* Array index: 0x0FCB */ 0x9951,0x7A53, - /* Array index: 0x0FCB */ 0x9952,0x7A52, - /* Array index: 0x0FCB */ 0x9955,0x7C25, - /* Array index: 0x0FCB */ 0x9957,0x7B43, - /* Array index: 0x0FCB */ 0x995C,0x7C50, - /* Array index: 0x0FCB */ 0x995E,0x7D2E, - /* Array index: 0x0FCB */ 0x9996,0x537B, - /* Array index: 0x0FCB */ 0x9999,0x537C, - /* Array index: 0x0FCB */ 0x99A5,0x7776, - /* Array index: 0x0FCB */ 0x99A8,0x7A54, - /* Array index: 0x0FCB */ 0x99B1,0x676A, - /* Array index: 0x0FCB */ 0x99B3,0x6769, - /* Array index: 0x0FCB */ 0x99B4,0x676B, - /* Array index: 0x0FCB */ 0x99C1,0x6B72, - /* Array index: 0x0FCB */ 0x99D5,0x6F7B, - /* Array index: 0x0FCB */ 0x99D9,0x6F7D, - /* Array index: 0x0FCB */ 0x99DB,0x6F79, - /* Array index: 0x0FCB */ 0x99DD,0x6F76, - /* Array index: 0x0FCB */ 0x99DF,0x6F78, - /* Array index: 0x0FCB */ 0x99E2,0x732E, - /* Array index: 0x0FCB */ 0x99ED,0x732D, - /* Array index: 0x0FCB */ 0x99F1,0x732F, - /* Array index: 0x0FCB */ 0x99FF,0x762C, - /* Array index: 0x0FCB */ 0x9A01,0x762B, - /* Array index: 0x0FCB */ 0x9A0E,0x7777, - /* Array index: 0x0FCB */ 0x9A16,0x7951, - /* Array index: 0x0FCB */ 0x9A19,0x7952, - /* Array index: 0x0FCB */ 0x9A2B,0x7A55, - /* Array index: 0x0FCB */ 0x9A30,0x7A56, - /* Array index: 0x0FCB */ 0x9A35,0x7A58, - /* Array index: 0x0FCB */ 0x9A37,0x7A57, - /* Array index: 0x0FCB */ 0x9A3E,0x7B47, - /* Array index: 0x0FCB */ 0x9A40,0x7B46, - /* Array index: 0x0FCB */ 0x9A43,0x7B45, - /* Array index: 0x0FCB */ 0x9A45,0x7B44, - /* Array index: 0x0FCB */ 0x9A4D,0x7C27, - /* Array index: 0x0FCB */ 0x9A55,0x7C26, - /* Array index: 0x0FCB */ 0x9A57,0x7C53, - /* Array index: 0x0FCB */ 0x9A5A,0x7C51, - /* Array index: 0x0FCB */ 0x9A5B,0x7C52, - /* Array index: 0x0FCB */ 0x9A5F,0x7C75, - /* Array index: 0x0FCB */ 0x9A62,0x7D37, - /* Array index: 0x0FCB */ 0x9A65,0x7D38, - /* Array index: 0x0FCB */ 0x9A6A,0x7D47, - /* Array index: 0x0FCB */ 0x9AA8,0x586C, - /* Array index: 0x0FCB */ 0x9AAF,0x6B73, - /* Array index: 0x0FCB */ 0x9AB0,0x6B74, - /* Array index: 0x0FCB */ 0x9AB7,0x6F7E, - /* Array index: 0x0FCB */ 0x9AB8,0x7330, - /* Array index: 0x0FCB */ 0x9ABC,0x7331, - /* Array index: 0x0FCB */ 0x9AC1,0x7778, - /* Array index: 0x0FCB */ 0x9AE1,0x676C, - /* Array index: 0x0FCB */ 0x9AE6,0x6B75, - /* Array index: 0x0FCB */ 0x9AFB,0x7332, - /* Array index: 0x0FCB */ 0x9B03,0x7779, - /* Array index: 0x0FCB */ 0x9B06,0x777A, - /* Array index: 0x0FCB */ 0x9B0D,0x7953, - /* Array index: 0x0FCB */ 0x9B1A,0x7C29, - /* Array index: 0x0FCB */ 0x9B22,0x7C76, - /* Array index: 0x0FCB */ 0x9B23,0x7D30, - /* Array index: 0x0FCB */ 0x9B25,0x586E, - /* Array index: 0x0FCB */ 0x9B27,0x7023, - /* Array index: 0x0FCB */ 0x9B28,0x7334, - /* Array index: 0x0FCB */ 0x9B31,0x7D48, - /* Array index: 0x0FCB */ 0x9B32,0x586F, - /* Array index: 0x0FCB */ 0x9B3C,0x5870, - /* Array index: 0x0FCB */ 0x9B54,0x7B49, - /* Array index: 0x0FCB */ 0x9B58,0x7C77, - /* Array index: 0x0FCB */ 0x9B5A,0x5E23, - /* Array index: 0x0FCB */ 0x9B6F,0x7027, - /* Array index: 0x0FCB */ 0x9B77,0x7026, - /* Array index: 0x0FCB */ 0x9B91,0x7335, - /* Array index: 0x0FCB */ 0x9BC0,0x7824, - /* Array index: 0x0FCB */ 0x9BD6,0x7956, - /* Array index: 0x0FCB */ 0x9BDB,0x7957, - /* Array index: 0x0FCB */ 0x9BE7,0x7955, - /* Array index: 0x0FCB */ 0x9BE8,0x7954, - /* Array index: 0x0FCB */ 0x9BFD,0x7822, - /* Array index: 0x0FCB */ 0x9C0D,0x7A5A, - /* Array index: 0x0FCB */ 0x9C13,0x7A59, - /* Array index: 0x0FCB */ 0x9C25,0x7B4C, - /* Array index: 0x0FCB */ 0x9C2D,0x7B4B, - /* Array index: 0x0FCB */ 0x9C31,0x7C2B, - /* Array index: 0x0FCB */ 0x9C3B,0x7C2D, - /* Array index: 0x0FCB */ 0x9C3E,0x7C2C, - /* Array index: 0x0FCB */ 0x9C49,0x7C2A, - /* Array index: 0x0FCB */ 0x9C54,0x7C57, - /* Array index: 0x0FCB */ 0x9C56,0x7C59, - /* Array index: 0x0FCB */ 0x9C57,0x7C58, - /* Array index: 0x0FCB */ 0x9C5F,0x7C78, - /* Array index: 0x0FCB */ 0x9C77,0x7D40, - /* Array index: 0x0FCB */ 0x9C78,0x7D41, - /* Array index: 0x0FCB */ 0x9CE5,0x5E24, - /* Array index: 0x0FCB */ 0x9CE9,0x676D, - /* Array index: 0x0FCB */ 0x9CF3,0x6B7A, - /* Array index: 0x0FCB */ 0x9CF4,0x6B78, - /* Array index: 0x0FCB */ 0x9CF6,0x6B79, - /* Array index: 0x0FCB */ 0x9D03,0x702A, - /* Array index: 0x0FCB */ 0x9D06,0x7028, - /* Array index: 0x0FCB */ 0x9D09,0x7029, - /* Array index: 0x0FCB */ 0x9D12,0x733A, - /* Array index: 0x0FCB */ 0x9D15,0x7336, - /* Array index: 0x0FCB */ 0x9D1B,0x733B, - /* Array index: 0x0FCB */ 0x9D23,0x7337, - /* Array index: 0x0FCB */ 0x9D26,0x7338, - /* Array index: 0x0FCB */ 0x9D28,0x7339, - /* Array index: 0x0FCB */ 0x9D3B,0x7631, - /* Array index: 0x0FCB */ 0x9D3F,0x7632, - /* Array index: 0x0FCB */ 0x9D51,0x7825, - /* Array index: 0x0FCB */ 0x9D5D,0x7826, - /* Array index: 0x0FCB */ 0x9D60,0x7827, - /* Array index: 0x0FCB */ 0x9D61,0x7959, - /* Array index: 0x0FCB */ 0x9D6A,0x795B, - /* Array index: 0x0FCB */ 0x9D6C,0x795C, - /* Array index: 0x0FCB */ 0x9D72,0x795A, - /* Array index: 0x0FCB */ 0x9D89,0x7958, - /* Array index: 0x0FCB */ 0x9DAF,0x7B4D, - /* Array index: 0x0FCB */ 0x9DB4,0x7B4E, - /* Array index: 0x0FCB */ 0x9DB8,0x7B50, - /* Array index: 0x0FCB */ 0x9DC2,0x7B4F, - /* Array index: 0x0FCB */ 0x9DD3,0x7C2E, - /* Array index: 0x0FCB */ 0x9DD7,0x7C2F, - /* Array index: 0x0FCB */ 0x9DE5,0x7C5A, - /* Array index: 0x0FCB */ 0x9DF9,0x7C79, - /* Array index: 0x0FCB */ 0x9DFA,0x7C7A, - /* Array index: 0x0FCB */ 0x9E1A,0x7D45, - /* Array index: 0x0FCB */ 0x9E1B,0x7D49, - /* Array index: 0x0FCB */ 0x9E1E,0x7D4A, - /* Array index: 0x0FCB */ 0x9E75,0x5E25, - /* Array index: 0x0FCB */ 0x9E79,0x7A5B, - /* Array index: 0x0FCB */ 0x9E7C,0x7C7B, - /* Array index: 0x0FCB */ 0x9E7D,0x7C7C, - /* Array index: 0x0FCB */ 0x9E7F,0x5E26, - /* Array index: 0x0FCB */ 0x9E82,0x676E, - /* Array index: 0x0FCB */ 0x9E8B,0x7633, - /* Array index: 0x0FCB */ 0x9E92,0x795D, - /* Array index: 0x0FCB */ 0x9E93,0x795F, - /* Array index: 0x0FCB */ 0x9E97,0x795E, - /* Array index: 0x0FCB */ 0x9E9D,0x7B51, - /* Array index: 0x0FCB */ 0x9E9F,0x7C5B, - /* Array index: 0x0FCB */ 0x9EA5,0x5E27, - /* Array index: 0x0FCB */ 0x9EA9,0x702B, - /* Array index: 0x0FCB */ 0x9EB4,0x7960, - /* Array index: 0x0FCB */ 0x9EB5,0x7A5C, - /* Array index: 0x0FCB */ 0x9EBB,0x5E28, - /* Array index: 0x0FCB */ 0x9EBC,0x6B7B, - /* Array index: 0x0FCB */ 0x9EBE,0x702C, - /* Array index: 0x0FCB */ 0x9EC3,0x6327, - /* Array index: 0x0FCB */ 0x9ED4,0x733D, - /* Array index: 0x0FCB */ 0x9ED8,0x733C, - /* Array index: 0x0FCB */ 0x9EE8,0x7A5D, - /* Array index: 0x0FCB */ 0x9EEF,0x7B52, - /* Array index: 0x0FCB */ 0x9EF4,0x7C5C, - /* Array index: 0x0FCB */ 0x9EF7,0x7D42, - /* Array index: 0x0FCB */ 0x9F07,0x7C7D, - /* Array index: 0x0FCB */ 0x9F0E,0x676F, - /* Array index: 0x0FCB */ 0x9F13,0x6770, - /* Array index: 0x0FCB */ 0x9F15,0x7829, - /* Array index: 0x0FCB */ 0x9F19,0x7B53, - /* Array index: 0x0FCB */ 0x9F20,0x6771, - /* Array index: 0x0FCB */ 0x9F2C,0x782A, - /* Array index: 0x0FCB */ 0x9F2F,0x7A5E, - /* Array index: 0x0FCB */ 0x9F34,0x7C30, - /* Array index: 0x0FCB */ 0x9F3B,0x6B7C, - /* Array index: 0x0FCB */ 0x9F3E,0x7639, - /* Array index: 0x0FCB */ 0x9F4A,0x6B7D, - /* Array index: 0x0FCB */ 0x9F4B,0x763A, - /* Array index: 0x0FCB */ 0x9F52,0x702F, - /* Array index: 0x0FCB */ 0x9F5C,0x7B54, - /* Array index: 0x0FCB */ 0x9F5F,0x7A5F, - /* Array index: 0x0FCB */ 0x9F61,0x7A61, - /* Array index: 0x0FCB */ 0x9F63,0x7A60, - /* Array index: 0x0FCB */ 0x9F66,0x7B55, - /* Array index: 0x0FCB */ 0x9F67,0x7B56, - /* Array index: 0x0FCB */ 0x9F6A,0x7C32, - /* Array index: 0x0FCB */ 0x9F6C,0x7C31, - /* Array index: 0x0FCB */ 0x9F72,0x7D21, - /* Array index: 0x0FCB */ 0x9F77,0x7C7E, - /* Array index: 0x0FCB */ 0x9F8D,0x733E, - /* Array index: 0x0FCB */ 0x9F90,0x7832, - /* Array index: 0x0FCB */ 0x9F94,0x7C33, - /* Array index: 0x0FCB */ 0x9F9C,0x733F, - /* Array index: 0x0FCB */ 0xFFE0,0x2266, - /* Array index: 0x0FCB */ 0xFFE1,0x2267, - /* Array index: 0x0FCB */ 0xFFE5,0x2264, -}; - -#endif /* ICONV_FROM_UCS_CCS_CNS11643_PLANE1 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * cns11643_plane1 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_cns11643_plane1 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_CNS11643_PLANE1, /* CCS name */ - TABLE_16BIT, /* Table bits */ -#if defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE1) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&from_ucs_size_cns11643_plane1, /* UCS -> cns11643_plane1 table size-optimized table */ -#elif defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE1) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&from_ucs_speed_cns11643_plane1, /* UCS -> cns11643_plane1 table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE1) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&to_ucs_size_cns11643_plane1 /* cns11643_plane1 -> UCS table speed-optimized table */ -#elif defined (ICONV_TO_UCS_CCS_CNS11643_PLANE1) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&to_ucs_speed_cns11643_plane1 /* cns11643_plane1 -> UCS table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_CNS11643_PLANE1) || ... */ - diff --git a/lib/iconv/ccs/cns11643_plane14.c b/lib/iconv/ccs/cns11643_plane14.c deleted file mode 100644 index 507cdef..0000000 --- a/lib/iconv/ccs/cns11643_plane14.c +++ /dev/null @@ -1,10763 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for cns11643_plane14 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE14) \ - || defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE14) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -/* - * 16-bit cns11643_plane14 -> UCS speed-optimized table (36864 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE14) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_speed_cns11643_plane14[] = -{ - /* Heading Block */ - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,0x0100,0x0200,0x0300,0x0400,0x0500,0x0600,0x0700, - 0x0800,0x0900,0x0A00,0x0B00,0x0C00,0x0D00,0x0E00,0x0F00, - 0x1000,0x1100,0x1200,0x1300,0x1400,0x1500,0x1600,0x1700, - 0x1800,0x1900,0x1A00,0x1B00,0x1C00,0x1D00,0x1E00,0x1F00, - 0x2000,0x2100,0x2200,0x2300,0x2400,0x2500,0x2600,0x2700, - 0x2800,0x2900,0x2A00,0x2B00,0x2C00,0x2D00,0x2E00,0x2F00, - 0x3000,0x3100,0x3200,0x3300,0x3400,0x3500,0x3600,0x3700, - 0x3800,0x3900,0x3A00,0x3B00,0x3C00,0x3D00,0x3E00,0x3F00, - 0x4000,0x4100,0x4200,0x4300,0x4400,0x4500,0x4600,0x4700, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - /* Block 34, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E28,0x4E36,0x4E3F,0x4E85,0x4E05,0x4E04,0x5182, - 0x5196,0x5338,0x5369,0x53B6,0x4E2A,0x4E87,0x4E49,0x51E2, - 0x4E46,0x4E8F,0x4EBC,0x4EBE,0x5166,0x51E3,0x5204,0x529C, - INVALC,0x5902,0x590A,0x5B80,0x5DDB,0x5E7A,0x5E7F,0x5EF4, - 0x5F50,0x5F51,0x5F61,0x961D,INVALC,0x4E63,0x4E62,0x4EA3, - 0x5185,0x4EC5,0x4ECF,0x4ECE,0x4ECC,0x5184,0x5186,INVALC, - INVALC,0x51E4,0x5205,0x529E,0x529D,0x52FD,0x5300,0x533A, - INVALC,0x5346,0x535D,0x5386,0x53B7,INVALC,0x53CC,INVALC, - 0x53CE,0x5721,INVALC,0x5E00,0x5F0C,0x6237,0x6238,0x6534, - 0x6535,0x65E0,INVALC,0x738D,0x4E97,0x4EE0,INVALC,INVALC, - 0x4EE7,INVALC,0x4EE6,INVALC,INVALC,INVALC,INVALC,0x56D8, - 0x518B,0x518C,0x5199,0x51E5,INVALC,0x520B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 35, Array index 0x0200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5304,0x5303,0x5307,INVALC,0x531E,0x535F, - 0x536D,0x5389,0x53BA,0x53D0,INVALC,0x53F6,0x53F7,0x53F9, - INVALC,0x53F4,INVALC,INVALC,0x5724,0x5904,0x5918,0x5932, - 0x5930,0x5934,INVALC,0x5975,INVALC,0x5B82,0x5BF9,0x5C14, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E81, - 0x5E83,0x5F0D,0x5F52,INVALC,0x5FCA,0x5FC7,0x6239,INVALC, - 0x624F,0x65E7,0x672F,0x6B7A,0x6C39,INVALC,INVALC,0x6C37, - 0x6C44,0x6C45,0x738C,0x7592,0x7676,0x9093,0x9092,INVALC, - INVALC,0x4E21,0x4E20,0x4E22,0x4E68,0x4E89,0x4E98,0x4EF9, - 0x4EEF,INVALC,INVALC,0x4EF8,0x4F06,0x4F03,0x4EFC,0x4EEE, - 0x4F16,INVALC,0x4F28,0x4F1C,0x4F07,0x4F1A,0x4EFA,0x4F17, - 0x514A,INVALC,0x5172,INVALC,0x51B4,0x51B3,0x51B2,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 36, Array index 0x0300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x51E8,INVALC,0x5214,0x520F,0x5215,0x5218, - 0x52A8,INVALC,0x534B,0x534F,INVALC,0x5350,INVALC,0x538B, - INVALC,0x53BE,INVALC,0x53D2,0x5416,0x53FF,INVALC,0x5400, - INVALC,0x5405,0x5413,0x5415,INVALC,INVALC,0x56E3,0x5735, - 0x5736,0x5731,0x5732,0x58EE,0x5905,0x4E54,INVALC,0x5936, - INVALC,INVALC,INVALC,0x597A,INVALC,0x5986,INVALC,INVALC, - 0x5B86,0x5F53,0x5C18,INVALC,0x5C3D,0x5C78,INVALC,INVALC, - INVALC,INVALC,0x5C80,INVALC,0x5E08,INVALC,INVALC,INVALC, - INVALC,0x5EF5,0x5F0E,INVALC,INVALC,INVALC,0x5FD3,0x5FDA, - INVALC,0x5FDB,INVALC,0x620F,0x625D,0x625F,0x6267,0x6257, - 0x9F50,INVALC,0x65EB,0x65EA,INVALC,0x6737,INVALC,0x6732, - 0x6736,0x6B22,0x6BCE,INVALC,0x6C58,0x6C51,0x6C77,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 37, Array index 0x0400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6C3C,INVALC,0x6C5A,INVALC,0x6C53,0x706F,0x7072, - 0x706E,INVALC,INVALC,0x7073,0x72B1,0x72B2,INVALC,0x738F, - INVALC,INVALC,INVALC,0x793C,INVALC,0x808D,0x808E,INVALC, - 0x827B,INVALC,0x8D71,0x8FB9,0x9096,0x909A,INVALC,0x4E24, - 0x4E71,INVALC,0x4E9C,0x4F45,0x4F4A,0x4F39,0x4F37,INVALC, - 0x4F32,0x4F42,INVALC,0x4F44,0x4F4B,INVALC,0x4F40,0x4F35, - 0x4F31,0x5151,INVALC,0x5150,0x514E,INVALC,INVALC,0x519D, - INVALC,0x51B5,0x51B8,0x51EC,0x5223,0x5227,0x5226,0x521F, - 0x522B,0x5220,0x52B4,0x52B3,INVALC,0x5325,0x533B,0x5374, - INVALC,INVALC,INVALC,INVALC,INVALC,0x544D,INVALC,INVALC, - 0x543A,INVALC,INVALC,0x5444,0x544C,0x5423,0x541A,0x5432, - 0x544B,0x5421,INVALC,0x5434,0x5449,0x5450,0x5422,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 38, Array index 0x0500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x543F,0x5451,0x545A,0x542F,INVALC,0x56E9,0x56F2, - 0x56F3,0x56EF,0x56ED,0x56EC,0x56E6,0x5748,INVALC,0x5744, - 0x573F,0x573C,0x5753,0x5756,INVALC,0x575F,0x5743,0x5758, - 0x5757,INVALC,INVALC,INVALC,0x5746,INVALC,0x573D,INVALC, - 0x5742,0x5754,0x5755,0x58F1,0x58F2,0x58F0,0x590B,0x9EA6, - 0x56F1,0x593D,INVALC,0x5994,0x598C,INVALC,0x599C,INVALC, - INVALC,0x599F,INVALC,0x599B,INVALC,0x5989,0x599A,INVALC, - 0x6588,INVALC,0x5B8D,INVALC,0x5BFE,0x5BFF,0x5BFD,0x5C2B, - INVALC,0x5C84,0x5C8E,0x5C9C,INVALC,INVALC,0x5C85,0x5DF5, - 0x5E09,INVALC,INVALC,0x5E0B,INVALC,0x5E92,0x5E90,0x5F03, - INVALC,0x5F1E,0x5F63,INVALC,0x5FE7,0x5FFE,0x5FE6,0x5FDC, - 0x5FCE,INVALC,0x5FFC,0x5FDF,0x5FEC,0x5FF6,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 39, Array index 0x0600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5FF2,0x5FF0,0x5FF9,INVALC,0x6213,INVALC,INVALC, - 0x623B,0x623C,0x6282,INVALC,INVALC,INVALC,0x6278,0x628B, - INVALC,0x629E,0x62A5,0x629B,0x629C,0x6299,0x628D,0x6285, - 0x629D,0x6275,INVALC,INVALC,INVALC,0x65F6,INVALC,INVALC, - INVALC,0x66F5,0x675B,INVALC,0x6754,0x6752,INVALC,0x6758, - 0x6744,0x674A,0x6761,INVALC,0x6C7F,0x6C91,0x6C9E,INVALC, - 0x6C6E,0x6C7C,0x6C9F,0x6C75,INVALC,0x6C56,0x6CA2,0x6C79, - INVALC,0x6CA1,INVALC,0x6CAA,0x6CA0,INVALC,0x7079,0x7077, - 0x707E,INVALC,0x7075,0x707B,0x7264,INVALC,0x72BB,0x72BC, - 0x72C7,0x72B9,0x72BE,0x72B6,INVALC,INVALC,0x7398,INVALC, - INVALC,INVALC,INVALC,0x7593,0x7680,INVALC,0x7683,0x76C0, - 0x76C1,INVALC,INVALC,0x77F4,0x77F5,INVALC,0x7ACC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 40, Array index 0x0700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7ACD,0x7CFA,0x809F,0x8091,0x8097,0x8094,INVALC, - 0x8286,0x828C,INVALC,0x8295,INVALC,0x866C,INVALC,0x8FB5, - 0x8FBE,0x8FC7,INVALC,0x8FC1,0x90A9,0x90A4,INVALC,INVALC, - INVALC,0x90A8,0x9627,0x9626,0x962B,0x9633,0x9634,0x9629, - 0x4E3D,INVALC,0x4E9D,0x4F93,0x4F8A,INVALC,INVALC,0x4F6D, - 0x4F8E,0x4FA0,0x4FA2,0x4FA1,0x4F9F,0x4FA3,INVALC,0x4F72, - INVALC,0x4F8C,0x5156,INVALC,INVALC,0x5190,INVALC,INVALC, - INVALC,0x51ED,0x51FE,0x522F,INVALC,0x523C,0x5234,0x5239, - 0x52B9,0x52B5,0x52BF,0x5355,INVALC,0x5376,0x537A,0x5393, - INVALC,0x53C1,0x53C2,0x53D5,0x5485,INVALC,0x545F,0x5493, - 0x5489,0x5479,0x9EFE,0x548F,0x5469,0x546D,INVALC,0x5494, - 0x546A,0x548A,INVALC,0x56FD,0x56FB,0x56F8,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 41, Array index 0x0800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x56FC,0x56F6,0x5765,0x5781,0x5763,0x5767,INVALC, - 0x576E,0x5778,0x577F,INVALC,INVALC,0x58F3,0x594B,0x594C, - INVALC,INVALC,INVALC,0x59AD,INVALC,0x59C4,INVALC,0x59C2, - 0x59B0,INVALC,INVALC,INVALC,INVALC,0x59BF,INVALC,0x59C9, - 0x59B8,0x59AC,INVALC,INVALC,INVALC,0x59B7,0x59D7,INVALC, - 0x5B60,INVALC,0x5B96,0x5B9E,0x5B94,0x5B9F,0x5B9D,INVALC, - 0x5C00,0x5C19,INVALC,INVALC,0x5C49,0x5C4A,INVALC,0x5CBB, - 0x5CC1,INVALC,INVALC,INVALC,0x5CB9,0x5C9E,0x5CB4,0x5CBA, - 0x5DF6,0x5E13,0x5E12,0x5E77,INVALC,0x5E98,INVALC,0x5E99, - 0x5E9D,0x5EF8,INVALC,0x5EF9,INVALC,0x5F06,0x5F21,INVALC, - 0x5F25,0x5F55,INVALC,INVALC,INVALC,0x5F84,0x5F83,0x6030, - 0x6007,INVALC,0x6036,INVALC,INVALC,INVALC,0x5FE9,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 42, Array index 0x0900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x603D,0x6008,INVALC,INVALC,0x62BA,0x62B2,INVALC, - 0x62B7,0x62E4,0x62A7,INVALC,INVALC,INVALC,0x62D5,0x62E1, - 0x62DD,0x62A6,0x62C1,0x62C5,0x62C0,0x62DF,0x62E0,0x62DE, - INVALC,0x6589,INVALC,0x65A6,0x65BA,INVALC,0x65FF,INVALC, - 0x6617,0x6618,0x6601,0x65FE,INVALC,0x670C,INVALC,0x676B, - 0x6796,0x6782,0x678A,INVALC,0x67A3,INVALC,0x67A2,0x678F, - INVALC,0x67F9,0x6780,0x6B26,0x6B27,0x6B68,0x6B69,INVALC, - 0x6B81,0x6BB4,0x6BD1,INVALC,INVALC,0x6C1C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6C97,0x6C6C,0x6CDF,INVALC,0x6CEA, - INVALC,0x6CE4,0x6CD8,0x6CB2,0x6CCE,0x6CC8,INVALC,0x708B, - 0x7088,0x7090,0x708F,INVALC,0x7087,0x7089,0x708D,0x7081, - INVALC,0x708C,INVALC,INVALC,0x7240,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 43, Array index 0x0A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7265,0x7266,0x7268,INVALC,INVALC,0x72CD,0x72D3, - 0x72DB,INVALC,0x72CF,0x73A7,0x73A3,0x739E,INVALC,0x73AF, - INVALC,INVALC,0x73AA,0x739C,INVALC,0x7542,0x7544,0x753B, - 0x7541,INVALC,0x759B,0x759E,INVALC,0x79C4,0x79C3,0x79C6, - INVALC,INVALC,0x79C7,INVALC,0x79CA,INVALC,INVALC,0x7ACF, - 0x7C76,0x7C74,0x7CFF,0x7CFC,INVALC,INVALC,0x7F59,0x80A8, - INVALC,INVALC,0x80B0,INVALC,0x80B3,INVALC,0x80A4,0x80B6, - 0x80A7,0x80AC,INVALC,0x80A6,0x5367,0x820E,0x82C4,0x833E, - 0x829C,INVALC,INVALC,INVALC,INVALC,INVALC,0x82AA,INVALC, - 0x82C9,INVALC,INVALC,0x82A6,0x82B2,INVALC,INVALC,INVALC, - 0x8FCC,0x8FD9,0x8FCA,0x8FD8,0x8FCF,0x90B7,INVALC,0x90AD, - 0x90B9,0x9637,INVALC,0x9641,0x963E,0x96B6,0x9751,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 44, Array index 0x0B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9763,0x4E57,0x4E79,0x4EB2,0x4EB0,0x4EAF,0x4EB1, - 0x4FD2,0x4FD5,INVALC,0x4FBE,0x4FB8,0x4FB0,0x4FB1,0x4FC8, - INVALC,INVALC,0x4FC6,0x4FCC,0x4FE5,0x4FE3,0x4FB4,0x516A, - INVALC,0x519F,INVALC,0x51C1,INVALC,0x51C2,0x51C3,0x5245, - 0x5248,INVALC,INVALC,0x524F,INVALC,INVALC,0x52C5,0x52CA, - 0x52C4,0x5327,0x5358,0x537D,INVALC,0x53DD,0x53DC,0x53DA, - 0x53D9,0x54B9,INVALC,0x54D0,0x54B4,0x54CA,INVALC,0x54A3, - 0x54DA,0x54A4,INVALC,0x54B2,0x549E,0x549F,0x54B5,INVALC, - INVALC,0x54CD,INVALC,0x54CC,INVALC,0x5700,0x57AC,0x5791, - 0x578E,0x578D,0x5792,0x57A1,0x5790,0x57A6,0x57A8,INVALC, - 0x579C,0x5796,0x57A7,INVALC,INVALC,INVALC,INVALC,0x58F5, - INVALC,0x5909,0x5908,INVALC,0x5952,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 45, Array index 0x0C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x59DF,INVALC,0x59EB,0x59EF,0x59F0,0x59D5,0x5A0D, - 0x5A04,0x59F9,0x5A02,0x59F8,0x59E2,0x59D9,0x59E7,0x5B6A, - INVALC,INVALC,0x5BAB,INVALC,0x5C1B,0x5C2F,INVALC,0x663C, - INVALC,INVALC,INVALC,0x5CD1,0x5CDC,0x5CE6,0x5CE1,0x5CCD, - INVALC,0x5CE2,0x5CDD,0x5CE5,0x5DFB,0x5DFA,0x5E1E,INVALC, - 0x5EA1,INVALC,INVALC,0x5EFC,0x5EFB,0x5F2F,INVALC,INVALC, - 0x5F66,INVALC,INVALC,INVALC,0x605C,INVALC,0x604E,0x6051, - INVALC,INVALC,0x6023,0x6031,0x607C,0x6052,INVALC,0x6060, - 0x604A,0x6061,INVALC,0x6218,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x631F,0x6317,0x62EA,0x6321,0x6304, - 0x6305,INVALC,0x6531,0x6544,0x6540,INVALC,0x6542,0x65BE, - INVALC,0x6629,0x661B,INVALC,0x6623,0x662C,0x661A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 46, Array index 0x0D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6630,0x663B,0x661E,0x6637,0x6638,INVALC,0x670E, - INVALC,INVALC,0x67E8,0x67D6,INVALC,0x67C7,0x67BC,0x6852, - 0x67BF,0x67D5,0x67FE,0x8363,0x67FB,INVALC,0x67B1,0x6801, - 0x6805,0x6800,0x67D7,INVALC,0x6B2A,0x6B6B,INVALC,INVALC, - INVALC,INVALC,0x6BE1,INVALC,INVALC,0x6D23,0x6CFF,0x6D14, - 0x6D05,0x6D13,0x6D06,0x6D21,INVALC,0x6D15,0x6CAF,0x6CF4, - 0x6D02,0x6D45,INVALC,0x6D26,INVALC,0x6D44,INVALC,0x6D24, - 0x70A5,INVALC,0x70A3,INVALC,0x70A2,0x70BB,0x70A0,0x70AA, - INVALC,INVALC,0x70A8,0x70B6,0x70B2,0x70A7,INVALC,INVALC, - 0x70B9,0x722E,INVALC,0x723C,INVALC,0x726D,INVALC,INVALC, - 0x72E7,0x72ED,INVALC,0x72EC,0x72E5,0x72E2,INVALC,0x73C4, - 0x73BD,0x73CF,0x73C9,0x73C1,0x73D0,INVALC,0x73CE,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 47, Array index 0x0E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x74ED,0x74EB,INVALC,0x74EF,0x7549,0x7550,0x7546, - 0x754A,INVALC,0x754D,0x75A6,INVALC,INVALC,INVALC,0x75A8, - INVALC,INVALC,0x76C7,0x76FF,INVALC,0x76FD,0x77E6,0x780A, - INVALC,0x7804,0x780B,0x7807,INVALC,0x7815,0x7808,INVALC, - 0x79D3,0x79D4,0x79D0,0x79D7,0x7A7C,INVALC,INVALC,0x7A7D, - 0x7A83,0x7A82,INVALC,0x7AD4,0x7AD5,0x7AD3,0x7AD0,0x7AD2, - 0x7AFE,0x7AFC,0x7C77,0x7C7C,0x7C7B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7F8F,0x80D3,INVALC, - 0x80CB,0x80D2,INVALC,0x8109,0x80E2,0x80DF,0x80C6,INVALC, - 0x8224,0x82F7,0x82D8,0x82DD,INVALC,INVALC,0x82F8,0x82FC, - INVALC,INVALC,0x82E9,INVALC,0x82EE,INVALC,0x82D0,0x830E, - 0x82E2,0x830B,0x82FD,0x5179,0x8676,INVALC,0x8678,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 48, Array index 0x0F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x8675,0x867D,INVALC,0x8842,0x8866, - INVALC,0x898C,0x8A05,INVALC,0x8A06,INVALC,0x8C9F,INVALC, - 0x8FF1,0x8FE7,0x8FE9,0x8FEF,0x90C2,0x90BC,INVALC,0x90C6, - 0x90C0,INVALC,INVALC,0x90CD,0x90C9,INVALC,0x90C4,INVALC, - 0x9581,INVALC,0x9CEC,0x5032,0x4FF9,0x501D,0x4FFF,0x5004, - 0x4FF0,0x5003,INVALC,0x5002,0x4FFC,0x4FF2,0x5024,0x5008, - 0x5036,0x502E,INVALC,0x5010,0x5038,0x5039,0x4FFD,0x5056, - 0x4FFB,0x51A3,0x51A6,0x51A1,INVALC,INVALC,0x51C7,0x51C9, - 0x5260,0x5264,0x5259,0x5265,0x5267,0x5257,0x5263,INVALC, - 0x5253,INVALC,0x52CF,INVALC,0x52CE,0x52D0,0x52D1,0x52CC, - INVALC,INVALC,INVALC,0x550D,0x54F4,INVALC,0x5513,0x54EF, - 0x54F5,0x54F9,0x5502,0x5500,INVALC,INVALC,0x5518,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 49, Array index 0x1000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x54F0,0x54F6,INVALC,INVALC,0x5519,INVALC,0x5705, - 0x57C9,INVALC,0x57B7,0x57CD,INVALC,INVALC,INVALC,0x57BE, - 0x57BB,INVALC,0x57DB,0x57C8,0x57C4,0x57C5,0x57D1,0x57CA, - 0x57C0,INVALC,INVALC,0x5A21,0x5A2A,INVALC,0x5A1D,INVALC, - 0x5A0B,INVALC,INVALC,INVALC,INVALC,0x5A22,INVALC,INVALC, - 0x5A24,INVALC,0x5A14,0x5A31,INVALC,0x5A2F,0x5A1A,0x5A12, - INVALC,INVALC,0x5A26,INVALC,INVALC,0x5BBC,0x5BBB,0x5BB7, - 0x5C05,0x5C06,0x5C52,0x5C53,INVALC,INVALC,0x5CFA,0x5CEB, - INVALC,0x5CF3,0x5CF5,0x5CE9,0x5CEF,INVALC,0x5E2A,0x5E30, - 0x5E2E,0x5E2C,0x5E2F,0x5EAF,0x5EA9,INVALC,0x5EFD,0x5F32, - 0x5F8E,0x5F93,0x5F8F,0x604F,0x6099,INVALC,0x607E,INVALC, - 0x6074,0x604B,0x6073,0x6075,INVALC,INVALC,0x6056,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 50, Array index 0x1100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x60A9,0x608B,0x60A6,INVALC,0x6093,0x60AE,0x609E, - 0x60A7,0x6245,INVALC,INVALC,0x632E,INVALC,0x6352,0x6330, - 0x635B,INVALC,0x6319,0x631B,INVALC,0x6331,0x635D,0x6337, - 0x6335,0x6353,INVALC,0x635C,0x633F,0x654B,INVALC,INVALC, - 0x658B,INVALC,0x659A,0x6650,0x6646,0x664E,0x6640,INVALC, - 0x664B,0x6648,INVALC,0x6660,0x6644,0x664D,INVALC,0x6837, - 0x6824,INVALC,INVALC,0x681B,0x6836,INVALC,0x682C,0x6819, - 0x6856,0x6847,0x683E,0x681E,INVALC,0x6815,0x6822,0x6827, - 0x6859,0x6858,0x6855,0x6830,0x6823,0x6B2E,0x6B2B,0x6B30, - 0x6B6C,INVALC,0x6B8B,INVALC,0x6BE9,0x6BEA,0x6BE5,0x6D6B, - INVALC,INVALC,0x6D73,0x6D57,INVALC,INVALC,0x6D5D,0x6D56, - 0x6D8F,0x6D5B,0x6D1C,0x6D9A,0x6D9B,0x6D99,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 51, Array index 0x1200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6D81,0x6D71,INVALC,INVALC,0x6D72,0x6D5C,0x6D96, - 0x70C4,0x70DB,0x70CC,0x70D0,0x70E3,0x70DF,INVALC,0x70D6, - 0x70EE,0x70D5,INVALC,INVALC,INVALC,INVALC,0x727A,INVALC, - 0x72F5,0x7302,INVALC,INVALC,0x73E2,0x73EC,0x73D5,0x73F9, - 0x73DF,0x73E6,INVALC,INVALC,INVALC,INVALC,0x73E4,0x73E1, - 0x74F3,INVALC,INVALC,INVALC,INVALC,0x7556,0x7555,0x7558, - 0x7557,0x755E,0x75C3,INVALC,INVALC,0x75B4,INVALC,0x75B1, - INVALC,INVALC,0x76CB,0x76CC,0x772A,INVALC,0x7716,0x770F, - INVALC,INVALC,0x773F,0x772B,0x770E,0x7724,INVALC,0x7721, - 0x7718,0x77DD,INVALC,INVALC,0x7824,0x7836,INVALC,0x7958, - 0x7959,INVALC,0x7962,0x79DA,0x79D9,INVALC,0x79E1,0x79E5, - 0x79E8,0x79DB,INVALC,0x79E2,0x79F0,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 52, Array index 0x1300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7ADA,0x7ADD,INVALC,0x7ADB,0x7ADC, - INVALC,INVALC,0x7B0D,0x7B0B,0x7B14,0x7C8E,0x7C86,INVALC, - 0x7C87,0x7C83,0x7C8B,INVALC,INVALC,INVALC,INVALC,0x7D24, - INVALC,INVALC,INVALC,0x7D25,0x7F62,0x7F93,0x7F99,0x7F97, - INVALC,INVALC,0x7FC4,0x7FC6,0x800A,INVALC,INVALC,0x8040, - 0x803C,0x803B,0x80F6,0x80FF,0x80EE,0x8104,0x8103,0x8107, - INVALC,INVALC,0x80F7,INVALC,INVALC,0x822D,INVALC,0x8227, - 0x8229,0x831F,0x8357,INVALC,INVALC,INVALC,INVALC,0x8321, - INVALC,INVALC,0x8318,0x8358,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8684,0x869F,0x869B,0x8689,0x86A6,0x8692,0x868F, - 0x86A0,0x884F,0x8878,0x887A,0x886E,0x887B,0x8884,0x8873, - INVALC,INVALC,0x8A0D,0x8A0B,0x8A19,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 53, Array index 0x1400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x8FF9,0x9009,0x9008, - INVALC,0x90DE,0x9151,INVALC,INVALC,0x91DB,0x91DF,0x91DE, - 0x91D6,0x91E0,0x9585,0x9660,0x9659,INVALC,0x9656,INVALC, - INVALC,0x96BD,INVALC,INVALC,0x5042,0x5059,INVALC,0x5044, - 0x5066,0x5052,0x5054,0x5071,0x5050,0x507B,0x507C,0x5058, - INVALC,INVALC,0x5079,0x506C,0x5078,0x51A8,0x51D1,0x51CF, - 0x5268,0x5276,0x52D4,INVALC,0x53A0,0x53C4,INVALC,0x5558, - 0x554C,0x5568,INVALC,0x5549,INVALC,INVALC,0x555D,0x5529, - INVALC,0x5554,0x5553,INVALC,0x555A,INVALC,0x553A,0x553F, - 0x552B,0x57EA,INVALC,0x57EF,INVALC,INVALC,0x57DD,0x57FE, - INVALC,0x57DE,0x57E6,INVALC,0x57E8,0x57FF,0x5803,0x58F7, - 0x68A6,0x591F,INVALC,0x595B,0x595D,0x595E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 54, Array index 0x1500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5A2B,INVALC,0x5A3B,INVALC,INVALC,0x5A61, - 0x5A3A,0x5A6E,0x5A4B,0x5A6B,INVALC,INVALC,0x5A45,0x5A4E, - 0x5A68,0x5A3D,0x5A71,0x5A3F,0x5A6F,0x5A75,INVALC,0x5A73, - 0x5A2C,0x5A59,0x5A54,0x5A4F,0x5A63,INVALC,INVALC,0x5BC8, - INVALC,0x5BC3,INVALC,0x5C5B,0x5C61,INVALC,0x5D21,0x5D0A, - 0x5D09,INVALC,0x5D2C,0x5D08,INVALC,INVALC,0x5D2A,0x5D15, - INVALC,0x5D10,0x5D13,INVALC,0x5D2F,0x5D18,INVALC,0x5DE3, - 0x5E39,0x5E35,0x5E3A,0x5E32,INVALC,INVALC,INVALC,INVALC, - 0x5EBB,0x5EBA,0x5F34,0x5F39,INVALC,INVALC,INVALC,INVALC, - 0x6098,INVALC,0x60D0,INVALC,INVALC,INVALC,0x60D7,0x60AA, - INVALC,0x60A1,0x60A4,INVALC,0x60EE,INVALC,0x60E7,INVALC, - INVALC,0x60DE,INVALC,INVALC,0x637E,0x638B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 55, Array index 0x1600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6379,0x6386,0x6393,INVALC,0x6373,0x636A, - INVALC,0x636C,INVALC,0x637F,INVALC,0x63B2,0x63BA,INVALC, - INVALC,0x6366,0x6374,INVALC,0x655A,INVALC,0x654E,0x654D, - 0x658D,0x658E,0x65AD,INVALC,0x65C7,0x65CA,INVALC,0x65C9, - INVALC,0x65E3,0x6657,INVALC,0x6663,0x6667,0x671A,0x6719, - 0x6716,INVALC,INVALC,0x689E,0x68B6,0x6898,0x6873,INVALC, - 0x689A,0x688E,0x68B7,0x68DB,0x68A5,0x686C,0x68C1,0x6884, - INVALC,INVALC,0x6895,0x687A,0x6899,INVALC,0x68B8,0x68B9, - 0x6870,INVALC,0x6B35,INVALC,0x6B90,0x6BBB,0x6BED,INVALC, - INVALC,INVALC,0x6DC1,0x6DC3,0x6DCE,INVALC,INVALC,0x6DAD, - 0x6E04,INVALC,0x6DB9,INVALC,0x6DE7,INVALC,0x6E08,0x6E06, - INVALC,0x6E0A,0x6DB0,INVALC,0x6DF8,0x6E0C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 56, Array index 0x1700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6DB1,INVALC,0x6E02,0x6E07,0x6E09,0x6E01,0x6E17, - 0x6DFF,0x6E12,INVALC,INVALC,0x7103,0x7107,0x7101,0x70F5, - 0x70F1,0x7108,0x70F2,0x710F,INVALC,0x70FE,INVALC,INVALC, - INVALC,0x731A,0x7310,0x730E,0x7402,0x73F3,INVALC,INVALC, - 0x73FB,INVALC,INVALC,INVALC,0x751B,0x7523,0x7561,0x7568, - INVALC,0x7567,0x75D3,INVALC,INVALC,0x7690,INVALC,INVALC, - 0x76D5,0x76D7,0x76D6,0x7730,INVALC,0x7726,INVALC,0x7740, - INVALC,0x771E,INVALC,INVALC,INVALC,0x7847,INVALC,0x784B, - 0x7851,0x784F,0x7842,0x7846,INVALC,0x796E,0x796C,0x79F2, - INVALC,0x79F1,0x79F5,0x79F3,0x79F9,INVALC,INVALC,INVALC, - 0x7A9A,0x7A93,0x7A91,0x7AE1,INVALC,INVALC,0x7B21,0x7B1C, - 0x7B16,0x7B17,0x7B36,0x7B1F,INVALC,0x7C93,0x7C99,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 57, Array index 0x1800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7C9A,0x7C9C,INVALC,0x7D49,INVALC,0x7D34,0x7D37, - INVALC,0x7D2D,INVALC,0x7D4C,INVALC,INVALC,0x7D48,INVALC, - INVALC,0x7F3B,INVALC,INVALC,INVALC,INVALC,0x8008,0x801A, - INVALC,0x801D,INVALC,0x8049,0x8045,0x8044,0x7C9B,INVALC, - INVALC,0x812A,0x812E,INVALC,INVALC,0x8131,INVALC,0x811A, - 0x8134,0x8117,INVALC,INVALC,INVALC,0x831D,0x8371,0x8384, - 0x8380,0x8372,0x83A1,INVALC,0x8379,0x8391,INVALC,0x839F, - 0x83AD,INVALC,INVALC,0x8323,INVALC,0x8385,0x839C,0x83B7, - 0x8658,0x865A,INVALC,0x8657,0x86B2,INVALC,0x86AE,INVALC, - INVALC,INVALC,0x8845,0x889C,0x8894,0x88A3,0x888F,0x88A5, - 0x88A9,0x88A6,0x888A,0x88A0,0x8890,0x8992,0x8991,0x8994, - INVALC,0x8A26,0x8A32,0x8A28,INVALC,INVALC,0x8A1C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 58, Array index 0x1900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x8A2B,0x8A20,INVALC,0x8A29,INVALC,INVALC, - INVALC,0x8A21,0x8C3A,INVALC,0x8C5B,0x8C58,0x8C7C,INVALC, - 0x8CA6,0x8CAE,0x8CAD,0x8D65,INVALC,0x8D7E,INVALC,0x8D7C, - 0x8D7F,0x8D7A,0x8DBD,INVALC,INVALC,0x8DC0,0x8DBB,0x8EAD, - 0x8EAF,0x8ED6,INVALC,INVALC,INVALC,INVALC,INVALC,0x8ED9, - INVALC,INVALC,0x9012,0x900E,0x9025,INVALC,0x9013,0x90EE, - INVALC,0x90AB,0x90F7,INVALC,0x9159,0x9154,0x91F2,0x91F0, - 0x91E5,0x91F6,INVALC,INVALC,0x9587,INVALC,0x965A,INVALC, - INVALC,0x966E,INVALC,INVALC,INVALC,0x9679,INVALC,0x98E1, - 0x98E6,INVALC,0x9EC4,0x9ED2,0x4E80,INVALC,0x4E81,0x508F, - 0x5097,0x5088,0x5089,INVALC,INVALC,0x5081,0x5160,INVALC, - INVALC,0x5E42,0x51D3,INVALC,INVALC,0x51D2,0x51D6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 59, Array index 0x1A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5273,INVALC,0x5270,INVALC,INVALC,INVALC,0x53A8, - 0x53A6,0x53C5,0x5597,0x55DE,INVALC,INVALC,0x5596,0x55B4, - INVALC,0x5585,INVALC,0x559B,0x55A0,INVALC,0x5559,INVALC, - 0x5586,INVALC,INVALC,0x55AF,0x557A,INVALC,INVALC,INVALC, - 0x559E,INVALC,0x55A9,0x570F,0x570E,0x581A,INVALC,0x581F, - INVALC,0x583C,0x5818,0x583E,0x5826,INVALC,0x583A,INVALC, - 0x5822,INVALC,0x58FB,0x5963,0x5964,INVALC,0x5AA8,0x5AA3, - 0x5A82,0x5A88,0x5AA1,0x5A85,0x5A98,INVALC,0x5A99,INVALC, - 0x5A89,0x5A81,0x5A96,0x5A80,INVALC,INVALC,0x5A91,INVALC, - INVALC,INVALC,INVALC,0x5ACF,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5A87,0x5AA0,INVALC,0x5A79,INVALC,0x5A86, - 0x5AAB,0x5AAA,0x5AA4,0x5A8D,0x5A7E,INVALC,0x5BD5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 60, Array index 0x1B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5C1E,0x5C5F,0x5C5E,0x5D44, - 0x5D3E,INVALC,0x5D48,0x5D1C,INVALC,0x5D5B,0x5D4D,INVALC, - INVALC,0x5D57,INVALC,0x5D53,0x5D4F,INVALC,0x5D3B,0x5D46, - INVALC,INVALC,0x5E46,0x5E47,INVALC,0x5E48,0x5EC0,0x5EBD, - 0x5EBF,INVALC,0x5F11,INVALC,0x5F3E,0x5F3B,INVALC,0x5F3A, - INVALC,INVALC,INVALC,0x5FA7,INVALC,0x60EA,INVALC,0x6107, - 0x6122,0x610C,INVALC,INVALC,0x60B3,0x60D6,0x60D2,INVALC, - 0x60E3,0x60E5,0x60E9,INVALC,INVALC,0x6111,0x60FD,INVALC, - INVALC,0x611E,0x6120,0x6121,0x621E,INVALC,0x63E2,0x63DE, - 0x63E6,INVALC,INVALC,INVALC,INVALC,0x63F8,INVALC,0x63FE, - 0x63C1,0x63BF,0x63F7,0x63D1,0x655F,0x6560,0x6561,INVALC, - INVALC,0x65D1,INVALC,INVALC,0x667D,0x666B,0x667F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 61, Array index 0x1C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6673,0x6681,0x666D,0x6669,INVALC, - INVALC,0x671E,0x68ED,INVALC,INVALC,INVALC,INVALC,0x6903, - INVALC,0x68FE,0x68E5,0x691E,0x6902,INVALC,INVALC,0x6909, - 0x68CA,0x6900,INVALC,0x6901,0x6918,0x68E2,0x68CF,INVALC, - 0x692E,0x68C5,0x68FF,INVALC,0x691C,0x68C3,INVALC,0x6B6F, - INVALC,0x6B6E,INVALC,0x6BBE,INVALC,0x6BF4,0x6C2D,INVALC, - 0x6DB6,0x6E75,0x6E1E,INVALC,0x6E18,INVALC,0x6E48,INVALC, - 0x6E4F,INVALC,0x6E42,0x6E6A,0x6E70,0x6DFE,INVALC,INVALC, - 0x6E6D,INVALC,0x6E7B,0x6E7E,0x6E59,INVALC,0x6E57,INVALC, - 0x6E80,0x6E50,INVALC,0x6E29,0x6E76,0x6E2A,0x6E4C,0x712A, - INVALC,0x7135,0x712C,0x7137,0x711D,INVALC,INVALC,0x7138, - INVALC,0x7134,0x712B,0x7133,0x7127,0x7124,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 62, Array index 0x1D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x712D,0x7232,0x7283,0x7282,0x7287,0x7306,0x7324, - 0x7338,0x732A,0x732C,0x732B,INVALC,0x732F,0x7328,0x7417, - INVALC,INVALC,0x7419,0x7438,INVALC,0x741F,0x7414,0x743C, - 0x73F7,0x741C,0x7415,0x7418,0x7439,0x74F9,0x7524,INVALC, - INVALC,INVALC,0x756E,0x756D,0x7571,0x758E,INVALC,0x75E5, - INVALC,INVALC,INVALC,INVALC,0x7694,0x76B3,INVALC,0x76D9, - INVALC,0x7748,0x7749,0x7743,INVALC,INVALC,0x7742,0x77DF, - INVALC,0x7863,0x7876,INVALC,0x785F,0x7866,0x7966,0x7971, - INVALC,INVALC,0x7976,0x7984,0x7975,0x79FF,0x7A07,INVALC, - 0x7A0E,0x7A09,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7AE7,0x7AE2,0x7B55,INVALC,INVALC,0x7B43,0x7B57,0x7B6C, - 0x7B42,0x7B53,INVALC,0x7B41,INVALC,INVALC,0x7CA7,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 63, Array index 0x1E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7CA0,0x7CA6,0x7CA4,0x7D74,INVALC,0x7D59,INVALC, - 0x7D60,0x7D57,0x7D6C,0x7D7E,0x7D64,INVALC,0x7D5A,0x7D5D, - INVALC,INVALC,INVALC,0x7D76,0x7D4D,0x7D75,INVALC,0x7FD3, - 0x7FD6,INVALC,INVALC,0x8060,0x804E,0x8145,0x813B,INVALC, - 0x8148,0x8142,0x8149,0x8140,0x8114,0x8141,INVALC,0x81EF, - 0x81F6,0x8203,INVALC,0x83ED,INVALC,0x83DA,0x8418,0x83D2, - 0x8408,INVALC,0x8400,INVALC,INVALC,INVALC,0x8417,0x8346, - 0x8414,0x83D3,0x8405,0x841F,0x8402,0x8416,0x83CD,0x83E6, - INVALC,0x865D,0x86D5,0x86E1,INVALC,INVALC,INVALC,INVALC, - 0x86EE,0x8847,0x8846,INVALC,INVALC,0x88BB,INVALC,0x88BF, - 0x88B4,INVALC,0x88B5,INVALC,0x899A,0x8A43,INVALC,INVALC, - 0x8A5A,INVALC,INVALC,INVALC,0x8A35,0x8A38,0x8A42,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 64, Array index 0x1F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8A49,0x8A5D,0x8A4B,0x8A3D,INVALC,INVALC,INVALC, - INVALC,0x8C60,0x8C5E,0x8C7F,0x8C7E,0x8C83,INVALC,0x8CB1, - 0x8D87,INVALC,INVALC,0x8D88,0x8D83,INVALC,INVALC,0x8D86, - 0x8D8B,0x8D82,0x8DCA,0x8DD2,INVALC,INVALC,0x8DD4,0x8DC9, - 0x8EB0,INVALC,INVALC,INVALC,0x8EF2,0x8EE4,0x8EF3,0x8EEA, - INVALC,0x8EFD,INVALC,0x8F9D,0x902B,0x902A,INVALC,0x9028, - 0x9029,0x902C,INVALC,INVALC,0x903A,0x9030,0x9037,0x903B, - INVALC,0x910A,INVALC,INVALC,INVALC,0x91FE,0x9220,INVALC, - 0x920B,INVALC,0x9218,0x9222,INVALC,0x921B,0x9208,INVALC, - 0x920E,0x9213,INVALC,INVALC,0x9595,INVALC,INVALC,INVALC, - 0x968C,0x967B,0x967F,0x9681,INVALC,0x9682,INVALC,INVALC, - INVALC,INVALC,INVALC,0x96EE,0x96ED,INVALC,0x96EC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 65, Array index 0x2000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x975F,0x976F,INVALC,0x976D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x98F0,INVALC,INVALC,INVALC,0x9AA9, - INVALC,INVALC,0x9AE0,0x4EB7,INVALC,INVALC,0x50CC,0x50BC, - INVALC,0x50AA,0x50B9,INVALC,0x50AB,0x50C3,0x50CD,0x517E, - 0x527E,0x5279,INVALC,INVALC,0x52E1,0x52E0,0x52E7,0x5380, - 0x53AB,0x53AA,0x53A9,0x53E0,0x55EA,INVALC,0x55D7,INVALC, - INVALC,0x55C1,0x5715,INVALC,0x586C,INVALC,0x585C,0x5850, - 0x5861,0x586A,0x5869,0x5856,0x5860,0x5866,0x585F,0x5923, - 0x5966,0x5968,INVALC,INVALC,0x5ACE,INVALC,0x5AC5,0x5AC3, - INVALC,INVALC,0x5AD0,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5B74,0x5B76,0x5BDC,0x5BD7,0x5BDA,0x5BDB,INVALC, - 0x5C20,0x5D6D,0x5D66,INVALC,0x5D64,0x5D6E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 66, Array index 0x2100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D60,0x5F42,0x5F5A,0x5F6E,INVALC,INVALC,0x6130, - 0x613A,0x612A,0x6143,0x6119,0x6131,INVALC,0x613D,INVALC, - INVALC,INVALC,0x6408,0x6432,0x6438,INVALC,0x6431,INVALC, - 0x6419,INVALC,0x6411,INVALC,INVALC,0x6429,0x641D,INVALC, - INVALC,INVALC,0x643C,INVALC,0x6446,0x6447,INVALC,INVALC, - 0x643A,0x6407,INVALC,0x656B,INVALC,0x6570,0x656D,INVALC, - 0x65E4,0x6693,INVALC,INVALC,INVALC,INVALC,0x668F,INVALC, - INVALC,0x6692,INVALC,0x668E,INVALC,0x6946,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6931,INVALC,INVALC, - 0x693E,INVALC,0x697C,0x6943,INVALC,0x6973,INVALC,0x6955, - INVALC,INVALC,0x6985,0x694D,0x6950,0x6947,0x6967,0x6936, - 0x6964,0x6961,INVALC,0x697D,0x6B44,0x6B40,0x6B71,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 67, Array index 0x2200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B73,0x6B9C,INVALC,INVALC,INVALC,0x6BC1,INVALC, - 0x6BFA,0x6C31,0x6C32,INVALC,INVALC,0x6EB8,0x6EA8,INVALC, - 0x6E91,0x6EBB,INVALC,0x6E9A,INVALC,INVALC,0x6EA9,INVALC, - INVALC,0x6EB5,0x6E6C,0x6EE8,INVALC,0x6EDD,0x6EDA,0x6EE6, - 0x6EAC,INVALC,INVALC,INVALC,0x6ED9,0x6EE3,0x6EE9,0x6EDB, - INVALC,0x716F,INVALC,INVALC,0x7148,INVALC,0x714A,0x716B, - INVALC,0x714F,0x7157,0x7174,INVALC,INVALC,INVALC,0x7145, - 0x7151,0x716D,INVALC,0x7251,0x7250,0x724E,INVALC,0x7341, - INVALC,0x732E,0x7346,INVALC,0x7427,INVALC,0x7448,0x7453, - 0x743D,INVALC,0x745D,0x7456,INVALC,0x741E,0x7447,0x7443, - 0x7458,0x7449,INVALC,0x744C,0x7445,0x743E,INVALC,0x7501, - 0x751E,INVALC,INVALC,0x757A,0x75EE,0x7602,0x7697,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 68, Array index 0x2300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7698,INVALC,INVALC,INVALC,0x775D,0x7764,0x7753, - 0x7758,0x7882,0x7890,0x788A,INVALC,0x787A,0x787D,INVALC, - 0x788B,0x7878,INVALC,INVALC,0x788D,0x7888,0x7892,0x7881, - 0x797E,0x7983,INVALC,INVALC,INVALC,0x7980,INVALC,INVALC, - INVALC,0x7A0F,INVALC,INVALC,0x7A1D,INVALC,0x7AA1,0x7AA4, - INVALC,0x7AE9,0x7AEA,INVALC,0x7B62,0x7B6B,INVALC,0x7B5E, - INVALC,0x7B79,INVALC,INVALC,0x7B6F,0x7B68,INVALC,INVALC, - 0x7CAE,INVALC,INVALC,INVALC,0x7CB0,INVALC,0x7D90,INVALC, - 0x7D8A,INVALC,0x7D8B,0x7D99,0x7D95,INVALC,0x7D87,0x7D78, - 0x7D97,0x7D89,0x7D98,INVALC,INVALC,INVALC,0x7FA3,INVALC, - INVALC,INVALC,0x7FDD,0x8057,INVALC,0x8163,0x816A,0x816C, - INVALC,INVALC,INVALC,0x815D,0x8175,INVALC,0x815F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 69, Array index 0x2400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x817D,0x816D,INVALC,INVALC,0x8241,0x844F, - 0x8484,INVALC,0x847F,INVALC,0x8448,0x842A,0x847B,0x8472, - 0x8464,0x842E,0x845C,0x8453,INVALC,0x8441,0x84C8,INVALC, - 0x8462,0x8480,0x843E,0x8483,0x8471,INVALC,0x844A,0x8455, - 0x8458,INVALC,INVALC,INVALC,0x86FC,0x86FD,0x8715,INVALC, - 0x8716,0x86FF,INVALC,INVALC,INVALC,0x8858,0x88CF,0x88E0, - INVALC,INVALC,INVALC,INVALC,0x89E7,0x8A6A,0x8A80,INVALC, - 0x8A6F,0x8A65,INVALC,0x8A78,0x8A7D,0x8A88,INVALC,INVALC, - 0x8A64,0x8A7E,INVALC,0x8A67,0x8C63,0x8C88,INVALC,0x8CCD, - INVALC,0x8CC9,INVALC,0x8DED,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x8EB1,INVALC,INVALC,0x8F04,0x8F9E, - 0x8FA0,0x9043,0x9046,0x9048,0x9045,0x9040,0x904C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 70, Array index 0x2500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x910C,0x9113,0x9115,INVALC,0x916B, - 0x9167,0x925D,0x9255,0x9235,INVALC,0x9259,0x922F,0x923C, - 0x928F,0x925C,0x926A,0x9262,0x925F,0x926B,0x926E,0x923B, - 0x9244,0x9241,0x959A,INVALC,0x9599,INVALC,INVALC,INVALC, - 0x968F,INVALC,0x9696,INVALC,INVALC,INVALC,0x96F4,0x96FC, - INVALC,0x9755,INVALC,0x9779,INVALC,INVALC,INVALC,0x97EE, - 0x97F5,INVALC,0x980B,INVALC,0x98F3,INVALC,INVALC,0x98F7, - 0x98FF,0x98F5,INVALC,0x98EC,0x98F1,INVALC,INVALC,0x999A, - INVALC,0x9AE2,0x9B3D,0x9B5D,0x9CE8,INVALC,0x9CEB,0x9CEF, - 0x9CEE,0x9E81,0x9F14,0x50D0,0x50D9,0x50DC,0x50D8,INVALC, - 0x50E1,0x50EB,INVALC,INVALC,0x50F4,0x50E2,0x50DE,INVALC, - INVALC,INVALC,0x51F4,INVALC,INVALC,INVALC,0x52ED,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 71, Array index 0x2600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x52EA,INVALC,0x5332,INVALC,0x53AE,0x53B0,INVALC, - 0x55FB,0x5603,0x560B,INVALC,0x5607,INVALC,0x55F8,INVALC, - 0x5628,0x561E,INVALC,0x5618,0x5611,0x5651,0x5605,0x5717, - 0x5892,INVALC,0x588C,INVALC,0x5878,0x5884,0x5873,0x58AD, - 0x5897,0x5895,0x5877,0x5872,0x5896,0x588D,0x5910,INVALC, - 0x596C,INVALC,0x5AE7,INVALC,0x5AE4,INVALC,INVALC,0x5AEF, - 0x5626,INVALC,INVALC,0x5AF0,0x5D7B,INVALC,0x5D83,INVALC, - INVALC,0x5D8B,0x5D8C,INVALC,0x5D78,0x5E52,INVALC,INVALC, - 0x5ED0,0x5ECF,INVALC,0x5FB3,0x5FB4,INVALC,INVALC,INVALC, - 0x617B,INVALC,0x616F,0x6181,0x613C,0x6142,0x6138,0x6133, - INVALC,0x6160,0x6169,0x617D,0x6186,0x622C,0x6228,INVALC, - 0x644C,INVALC,0x6457,0x647C,INVALC,INVALC,0x6455,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 72, Array index 0x2700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6462,0x6471,0x646A,0x6456,0x643B,0x6481,INVALC, - 0x644F,0x647E,0x6464,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6571,INVALC,INVALC,0x66A5,0x669A,0x669C,INVALC,0x66A6, - INVALC,0x66A4,0x698F,0x69C5,0x69C8,0x6992,0x69B2,INVALC, - INVALC,INVALC,0x69E3,0x69C0,0x69D6,0x69D1,0x699F,0x69A2, - 0x69D2,INVALC,INVALC,INVALC,0x69E1,0x69D5,0x699D,INVALC, - INVALC,0x6998,INVALC,0x6B74,0x6BA1,INVALC,0x6EF0,0x6EF3, - INVALC,INVALC,0x6F1B,0x6F0C,0x6F1D,0x6F34,0x6F28,0x6F17, - INVALC,0x6F44,0x6F42,0x6F04,0x6F11,0x6EFA,0x6F4A,0x7191, - 0x718E,INVALC,0x718B,0x718D,0x717F,0x718C,0x717E,0x717C, - 0x7183,INVALC,0x7188,INVALC,INVALC,0x7294,INVALC,0x7355, - 0x7353,0x734F,0x7354,0x746C,0x7465,0x7466,0x7461,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 73, Array index 0x2800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x746B,0x7468,0x7476,INVALC,0x7460,INVALC,0x7474, - 0x7506,0x760E,INVALC,0x7607,INVALC,INVALC,0x76B9,INVALC, - 0x76B7,0x76E2,INVALC,0x7774,0x7777,0x7776,0x7775,INVALC, - 0x7778,0x7771,INVALC,0x777A,0x715B,0x777B,0x78A6,0x78AE, - 0x78B8,INVALC,INVALC,INVALC,0x78B1,0x78AF,INVALC,0x7989, - 0x7987,INVALC,INVALC,0x7A29,INVALC,0x7A2A,INVALC,0x7A2D, - 0x7A2C,INVALC,0x7A32,INVALC,0x7AEC,0x7AF0,0x7B81,0x7B9E, - 0x7B83,INVALC,0x7B92,INVALC,0x7BA3,0x7B9F,0x7B93,INVALC, - 0x7B86,0x7CB8,0x7CB7,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7DC8,0x7DB6,INVALC,0x7DD1,INVALC,0x7DA8,0x7DAB,INVALC, - 0x7DB3,0x7DCD,INVALC,0x7DCF,0x7DA4,INVALC,INVALC,0x7F41, - 0x7F6F,0x7F71,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 74, Array index 0x2900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x8023,0x805B,INVALC,0x8061,0x805F,0x8181, - INVALC,INVALC,0x8184,0x8213,INVALC,0x824A,0x824C,INVALC, - INVALC,INVALC,0x84BD,0x8495,INVALC,0x8492,0x84C3,INVALC, - 0x8496,0x84A5,0x84B5,0x84B3,0x84A3,0x84E4,0x84D8,0x84D5, - INVALC,0x84B7,0x84AD,0x84DA,0x8493,0x8736,INVALC,INVALC, - INVALC,0x873D,0x872B,0x8747,0x8739,INVALC,0x8745,0x871D, - INVALC,0x88FF,0x88EA,INVALC,0x88F5,INVALC,0x8900,0x88ED, - 0x8903,0x88E9,INVALC,INVALC,0x89EA,INVALC,0x8A9B,0x8A8E, - 0x8AA2,INVALC,0x8A9C,0x8A94,0x8A90,0x8AA9,0x8AAC,INVALC, - 0x8A9F,INVALC,INVALC,0x8A9D,INVALC,0x8C67,INVALC,INVALC, - 0x8CD0,0x8CD6,0x8CD4,0x8D98,0x8D9A,0x8D97,INVALC,INVALC, - INVALC,0x8E0B,0x8E08,0x8E01,0x8EB4,0x8EB3,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 75, Array index 0x2A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8FA1,0x8FA2,INVALC,0x905A,INVALC,0x9061,0x905F, - INVALC,INVALC,0x9125,0x917B,0x9176,0x917C,INVALC,0x9289, - 0x92F6,0x92B1,0x92AD,0x9292,0x9281,0x9284,INVALC,0x92AE, - 0x9290,0x929E,INVALC,INVALC,INVALC,0x95A2,0x95A7,INVALC, - INVALC,INVALC,INVALC,INVALC,0x96A0,0x969D,0x969F,0x96D0, - INVALC,0x96D1,INVALC,INVALC,0x9759,INVALC,0x9764,INVALC, - INVALC,INVALC,0x9819,INVALC,0x9814,0x9815,0x981A,INVALC, - INVALC,INVALC,INVALC,0x9906,INVALC,0x98F8,0x9901,INVALC, - 0x99BE,0x99BC,0x99B7,0x99B6,0x99C0,INVALC,0x99B8,INVALC, - INVALC,INVALC,0x99C4,INVALC,0x99BF,INVALC,0x9ADA,0x9AE4, - 0x9AE9,0x9AE8,0x9AEA,0x9AE5,INVALC,0x9B26,INVALC,INVALC, - 0x9B40,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 76, Array index 0x2B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x9EBD,INVALC,INVALC,INVALC,INVALC,0x510E, - INVALC,0x50F7,INVALC,0x50FC,0x510D,0x5101,0x51DA,0x51D9, - 0x51DB,0x5286,0x528E,0x52EE,0x5333,0x53B1,INVALC,0x5647, - 0x562D,0x5654,INVALC,0x564B,0x5652,0x5631,0x5644,0x5656, - 0x5650,0x562B,INVALC,0x564D,0x5637,0x564F,0x58A2,0x58B7, - INVALC,0x58B2,INVALC,0x58AA,0x58B5,0x58B0,INVALC,0x58B4, - 0x58A4,0x58A7,INVALC,0x5926,0x5AFE,INVALC,0x5B04,INVALC, - 0x5AFC,INVALC,0x5B06,0x5B0A,0x5AFA,0x5B0D,0x5B00,0x5B0E, - INVALC,INVALC,INVALC,0x5D91,INVALC,0x5D8F,0x5D90,0x5D98, - 0x5DA4,0x5D9B,0x5DA3,0x5D96,0x5DE4,0x5E5A,INVALC,INVALC, - 0x5E5E,INVALC,0x5FB8,0x6157,0x615C,0x61A6,0x6195,0x6188, - INVALC,0x61A3,0x618F,INVALC,0x6164,INVALC,0x6159,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 77, Array index 0x2C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6178,INVALC,0x6185,0x6187,0x619E,INVALC,INVALC, - 0x6198,0x619C,INVALC,INVALC,0x622F,0x6480,0x649B,0x648E, - 0x648D,0x6494,0x64C6,INVALC,0x64A8,0x6483,INVALC,0x64B9, - 0x6486,0x64B4,0x64AF,0x6491,INVALC,0x64AA,0x64A1,0x64A7, - 0x66B6,0x66B3,INVALC,0x66BC,0x66AC,INVALC,0x66AD,0x6A0E, - INVALC,0x6A1C,0x6A1A,INVALC,INVALC,0x6A0B,INVALC,0x69EF, - 0x6A0C,0x69F0,0x6A22,INVALC,0x69D8,INVALC,0x6A12,0x69FA, - INVALC,0x6A2A,INVALC,0x6A10,INVALC,INVALC,0x6A29,0x69F9, - 0x69EA,0x6A2C,0x6A24,INVALC,0x69E9,0x6B52,0x6B4F,0x6B53, - INVALC,INVALC,0x6F10,0x6F65,0x6F75,INVALC,INVALC,INVALC, - INVALC,0x6FD0,INVALC,0x6F5C,0x6F3D,0x6F71,INVALC,0x6F91, - 0x6F0B,0x6F79,0x6F81,0x6F8F,INVALC,0x6F59,0x6F74,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 78, Array index 0x2D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x71AE,INVALC,0x71A3,0x71AD,INVALC,INVALC, - 0x71AB,0x71A6,0x71A2,INVALC,0x52F2,0x7257,0x7255,0x7299, - 0x734B,0x747A,INVALC,INVALC,INVALC,0x748C,0x7484,INVALC, - INVALC,0x7482,0x7493,0x747B,INVALC,0x7509,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x778A,INVALC,0x7790,INVALC, - 0x78C6,0x78D3,0x78C0,0x78D2,0x78C7,0x78C2,INVALC,0x799F, - 0x799D,0x799E,INVALC,0x7A41,INVALC,0x7A38,0x7A3A,0x7A42, - INVALC,INVALC,0x7A3E,0x7AB0,0x7BAE,0x7BB3,INVALC,INVALC, - 0x7BBF,INVALC,INVALC,0x7BCD,INVALC,0x7BB2,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7CC4,0x7CCD,0x7CC2, - 0x7CC6,0x7CC3,0x7CC9,0x7CC7,INVALC,0x7DF8,INVALC,0x7DED, - 0x7DE2,INVALC,INVALC,INVALC,0x7DDC,0x7E02,0x7E01,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 79, Array index 0x2E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7DD6,INVALC,0x7DE4,0x7DFE,INVALC,0x7E00, - 0x7DFC,0x7DFD,INVALC,0x7DF5,0x7DFF,INVALC,0x7DEB,0x7DE5, - 0x7F78,0x7FAE,0x7FE7,INVALC,0x8065,0x806A,0x8066,0x8068, - 0x806B,0x8194,0x81A1,0x8192,0x8196,0x8193,INVALC,INVALC, - 0x8501,INVALC,0x84F8,INVALC,0x84F5,INVALC,0x8504,INVALC, - INVALC,INVALC,INVALC,0x851B,0x8503,0x8533,0x8534,0x84ED, - INVALC,INVALC,0x8535,INVALC,0x8505,INVALC,INVALC,INVALC, - INVALC,0x877D,INVALC,INVALC,INVALC,0x8771,INVALC,0x885C, - 0x88E6,0x890F,0x891B,INVALC,0x89A9,0x89A5,0x89EE,0x8AB1, - INVALC,0x8ACC,0x8ACE,INVALC,0x8AB7,INVALC,0x8AB5,0x8AE9, - 0x8AB4,INVALC,0x8AB3,0x8AC1,0x8AAF,0x8ACA,0x8AD0,INVALC, - INVALC,INVALC,0x8C8E,INVALC,INVALC,0x8CE9,0x8CDB,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 80, Array index 0x2F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x8CEB,0x8DA4,INVALC,0x8DA2,0x8D9D,INVALC, - INVALC,INVALC,INVALC,0x8E2A,0x8E28,INVALC,INVALC,0x8EB8, - 0x8EB6,0x8EB9,0x8EB7,0x8F22,0x8F2B,0x8F27,0x8F19,0x8FA4, - INVALC,0x8FB3,INVALC,0x9071,0x906A,INVALC,INVALC,0x9188, - 0x918C,0x92BF,0x92B8,0x92BE,0x92DC,0x92E5,INVALC,INVALC, - 0x92D4,0x92D6,INVALC,0x92DA,0x92ED,0x92F3,0x92DB,INVALC, - 0x92B9,0x92E2,0x92EB,0x95AF,INVALC,0x95B2,0x95B3,INVALC, - INVALC,INVALC,0x96A3,0x96A5,INVALC,INVALC,INVALC,INVALC, - 0x970A,INVALC,0x9787,0x9789,0x978C,0x97EF,0x982A,0x9822, - INVALC,0x981F,INVALC,0x9919,INVALC,0x99CA,0x99DA,INVALC, - INVALC,INVALC,0x99DE,0x99C8,0x99E0,INVALC,0x9AB6,0x9AB5, - INVALC,0x9AF4,INVALC,0x9B6B,0x9B69,0x9B72,0x9B63,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 81, Array index 0x3000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x9D0D,INVALC,0x9D01,0x9D0C,INVALC,0x9CF8, - INVALC,INVALC,0x9CFE,0x9D02,0x9E84,INVALC,0x9EAB,0x9EAA, - 0x511D,0x5116,INVALC,0x512B,0x511E,0x511B,0x5290,0x5294, - 0x5314,INVALC,INVALC,0x5667,INVALC,0x567B,INVALC,0x565F, - 0x5661,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x58C3,0x58CA,0x58BB,0x58C0,0x58C4,0x5901,0x5B1F,0x5B18, - 0x5B11,0x5B15,INVALC,0x5B12,0x5B1C,INVALC,0x5B22,0x5B79, - 0x5DA6,INVALC,0x5DB3,0x5DAB,0x5EEA,INVALC,0x5F5B,INVALC, - INVALC,0x61B7,0x61CE,0x61B9,0x61BD,0x61CF,0x61C0,0x6199, - 0x6197,INVALC,0x61BB,0x61D0,0x61C4,0x6231,INVALC,0x64D3, - 0x64C0,INVALC,INVALC,INVALC,INVALC,0x64DC,0x64D1,0x64C8, - INVALC,0x64D5,0x66C3,INVALC,INVALC,0x66BF,0x66C5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 82, Array index 0x3100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x66CD,0x66C1,0x6706,INVALC,0x6724,0x6A63, - 0x6A42,0x6A52,INVALC,0x6A43,0x6A33,INVALC,0x6A6C,0x6A57, - INVALC,0x6A4C,0x6A6E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6A37,INVALC,0x6A71,0x6A4A,0x6A36,INVALC,0x6A53,INVALC, - 0x6A45,0x6A70,INVALC,INVALC,0x6A5C,0x6B58,0x6B57,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6FBB,INVALC,INVALC, - 0x6FBE,INVALC,INVALC,INVALC,0x6FB5,0x6FD3,0x6F9F,INVALC, - 0x6FB7,0x6FF5,0x71B7,INVALC,0x71BB,INVALC,0x71D1,INVALC, - 0x71BA,INVALC,0x71B6,0x71CC,INVALC,INVALC,0x71D3,0x749B, - INVALC,INVALC,0x7496,0x74A2,0x749D,0x750A,0x750E,INVALC, - 0x7581,0x762C,0x7637,0x7636,0x763B,INVALC,0x76A1,INVALC, - INVALC,0x7798,INVALC,0x7796,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 83, Array index 0x3200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x78D6,0x78EB,INVALC,0x78DC,INVALC,0x79A5,0x79A9, - 0x9834,0x7A53,0x7A45,INVALC,0x7A4F,INVALC,0x7ABD,0x7ABB, - 0x7AF1,INVALC,INVALC,0x7BEC,0x7BED,INVALC,INVALC,0x7CD3, - INVALC,0x7CE1,INVALC,0x7E19,INVALC,INVALC,INVALC,0x7E27, - 0x7E26,INVALC,INVALC,0x806E,0x81AF,INVALC,INVALC,0x81AD, - INVALC,0x81AA,0x8218,INVALC,INVALC,INVALC,INVALC,0x856F, - 0x854C,INVALC,0x8542,INVALC,0x855C,0x8570,0x855F,INVALC, - 0x855A,0x854B,0x853F,0x878A,INVALC,0x878B,0x87A1,0x878E, - INVALC,INVALC,0x8799,0x885E,0x885F,0x8924,0x89A7,0x8AEA, - 0x8AFD,0x8AF9,0x8AE3,0x8AE5,INVALC,INVALC,0x8AEC,INVALC, - INVALC,INVALC,INVALC,0x8CF2,INVALC,0x8CEF,INVALC,0x8DA6, - INVALC,INVALC,INVALC,0x8E3B,0x8E43,INVALC,0x8E32,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 84, Array index 0x3300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8F31,0x8F30,INVALC,0x8F2D,0x8F3C,0x8FA7,0x8FA5, - INVALC,INVALC,INVALC,0x9137,0x9195,0x918E,INVALC,0x9196, - INVALC,0x9345,0x930A,INVALC,INVALC,0x92FD,0x9317,0x931C, - 0x9307,0x9331,0x9332,0x932C,0x9330,0x9303,0x9305,INVALC, - 0x95C2,INVALC,0x95B8,INVALC,0x95C1,INVALC,INVALC,INVALC, - 0x96AB,0x96B7,INVALC,INVALC,0x9715,0x9714,INVALC,INVALC, - 0x970C,0x9717,INVALC,0x9793,INVALC,0x97D2,INVALC,INVALC, - 0x9836,0x9831,0x9833,0x983C,0x982E,0x983A,INVALC,0x983D, - INVALC,0x98B5,0x9922,0x9923,0x9920,0x991C,0x991D,INVALC, - 0x99A0,INVALC,0x99EF,0x99E8,0x99EB,INVALC,INVALC,INVALC, - 0x99E1,0x99E6,INVALC,INVALC,0x9AF8,0x9AF5,INVALC,INVALC, - 0x9B83,0x9B94,0x9B84,INVALC,0x9B8B,0x9B8F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 85, Array index 0x3400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9B8C,INVALC,0x9B89,INVALC,0x9B8E,INVALC,INVALC, - INVALC,0x9D24,0x9D0F,INVALC,0x9D13,0x9D0A,INVALC,INVALC, - INVALC,INVALC,0x9D2A,0x9D1A,INVALC,0x9D27,0x9D16,0x9D21, - INVALC,0x9E85,0x9EAC,0x9EC6,0x9EC5,0x9ED7,0x9F53,INVALC, - 0x5128,0x5127,0x51DF,INVALC,0x5335,0x53B3,INVALC,0x568A, - 0x567D,0x5689,INVALC,0x58CD,0x58D0,INVALC,0x5B2B,0x5B33, - 0x5B29,0x5B35,0x5B31,0x5B37,0x5C36,0x5DBE,INVALC,0x5DB9, - INVALC,0x5DBB,INVALC,0x61E2,0x61DB,0x61DD,0x61DC,0x61DA, - INVALC,0x61D9,INVALC,INVALC,0x64DF,INVALC,INVALC,0x64E1, - INVALC,0x64EE,INVALC,0x65B5,0x66D4,0x66D5,INVALC,0x66D0, - 0x66D1,0x66CE,0x66D7,INVALC,INVALC,0x6A7D,0x6A8A,INVALC, - 0x6AA7,INVALC,0x6A99,0x6A82,0x6A88,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 86, Array index 0x3500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A86,INVALC,0x6A98,0x6A9D,INVALC,INVALC,0x6A8F, - INVALC,0x6AAA,INVALC,0x6B5D,INVALC,0x6C0A,INVALC,0x6FD7, - 0x6FD6,0x6FE5,INVALC,INVALC,INVALC,0x6FD9,0x6FDA,0x6FEA, - INVALC,0x6FF6,INVALC,INVALC,0x71E3,INVALC,0x71E9,INVALC, - 0x71EB,0x71EF,0x71F3,0x71EA,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7371,INVALC,0x74AE,INVALC,0x74B3,INVALC,0x74AC, - INVALC,INVALC,0x7583,0x7645,0x764E,0x7644,0x76A3,0x76A5, - 0x77A6,0x77A4,INVALC,0x77A9,0x77AF,INVALC,INVALC,INVALC, - 0x78F0,0x78F8,0x78F1,INVALC,0x7A49,INVALC,INVALC,INVALC, - 0x7AC2,0x7AF2,0x7AF3,0x7BFA,INVALC,0x7BF6,0x7BFC,0x7C18, - 0x7C08,0x7C12,INVALC,INVALC,0x7CDB,0x7CDA,INVALC,INVALC, - INVALC,0x7E2C,0x7E4D,INVALC,INVALC,0x7F46,0x7FF6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 87, Array index 0x3600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x802B,0x8074,0x81B8,0x81C8,INVALC,INVALC,INVALC, - 0x8592,0x8593,INVALC,0x857F,0x85AB,0x8597,INVALC,INVALC, - 0x85AC,INVALC,INVALC,INVALC,0x87CE,INVALC,0x87CD,INVALC, - INVALC,0x87C1,0x87B1,0x87C7,INVALC,0x8940,INVALC,0x893F, - 0x8939,INVALC,0x8943,INVALC,INVALC,INVALC,0x89AB,INVALC, - 0x8B1F,0x8B09,0x8B0C,INVALC,INVALC,0x8C40,INVALC,0x8C96, - INVALC,0x8CF6,0x8CF7,INVALC,0x8E46,0x8E4F,INVALC,INVALC, - INVALC,0x8F3D,0x8F41,0x9366,0x9378,0x935D,0x9369,0x9374, - 0x937D,0x936E,0x9372,0x9373,0x9362,0x9348,0x9353,0x935F, - 0x9368,INVALC,0x937F,0x936B,INVALC,0x95C4,INVALC,0x96AF, - 0x96AD,0x96B2,INVALC,INVALC,0x971A,0x971B,INVALC,INVALC, - INVALC,INVALC,0x979B,0x979F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 88, Array index 0x3700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x9840,INVALC, - 0x9847,INVALC,0x98B7,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x99A2,INVALC,INVALC,0x9A00,0x99F3,INVALC,INVALC,0x99F5, - INVALC,INVALC,0x9ABD,0x9B00,0x9B02,INVALC,0x9B34,0x9B49, - 0x9B9F,INVALC,0x9BA3,0x9BCD,0x9B99,0x9B9D,INVALC,INVALC, - 0x9D39,INVALC,0x9D44,INVALC,INVALC,0x9D35,INVALC,INVALC, - 0x9EAF,INVALC,0x512F,INVALC,INVALC,0x9F8E,INVALC,0x569F, - 0x569B,0x569E,0x5696,0x5694,0x56A0,INVALC,0x5B3B,INVALC, - INVALC,0x5B3A,0x5DC1,0x5F4D,0x5F5D,0x61F3,INVALC,INVALC, - INVALC,INVALC,0x64F6,0x64E5,0x64EA,0x64E7,0x6505,INVALC, - 0x64F9,INVALC,INVALC,INVALC,0x6AAB,0x6AED,0x6AB2,0x6AB0, - 0x6AB5,0x6ABE,0x6AC1,0x6AC8,INVALC,0x6AC0,0x6ABC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 89, Array index 0x3800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6AB1,0x6AC4,0x6ABF,INVALC,INVALC,0x7008,0x7003, - 0x6FFD,0x7010,0x7002,0x7013,INVALC,0x71FA,0x7200,0x74B9, - 0x74BC,INVALC,0x765B,0x7651,0x764F,0x76EB,0x77B8,INVALC, - 0x77B9,0x77C1,0x77C0,0x77BE,0x790B,INVALC,0x7907,0x790A, - 0x7908,INVALC,0x790D,0x7906,0x7915,0x79AF,INVALC,INVALC, - INVALC,0x7AF5,INVALC,INVALC,0x7C2E,INVALC,0x7C1B,INVALC, - 0x7C1A,0x7C24,INVALC,INVALC,0x7CE6,0x7CE3,INVALC,INVALC, - 0x7E5D,0x7E4F,0x7E66,0x7E5B,0x7F47,0x7FB4,INVALC,INVALC, - INVALC,0x7FFA,0x802E,INVALC,INVALC,0x81CE,INVALC,INVALC, - 0x8219,INVALC,INVALC,0x85CC,0x85B2,INVALC,0x85BB,0x85C1, - INVALC,INVALC,INVALC,0x87E9,0x87EE,0x87F0,0x87D6,0x880E, - 0x87DA,0x8948,0x894A,0x894E,0x894D,0x89B1,0x89B0,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 90, Array index 0x3900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x89B3,INVALC,0x8B38,0x8B32,INVALC,0x8B2D,INVALC, - 0x8B34,INVALC,0x8B29,0x8C74,INVALC,INVALC,0x8D03,INVALC, - INVALC,0x8DA9,0x8E58,INVALC,INVALC,0x8EBF,0x8EC1,0x8F4A, - 0x8FAC,INVALC,0x9089,0x913D,0x913C,0x91A9,0x93A0,INVALC, - 0x9390,INVALC,0x9393,0x938B,0x93AD,0x93BB,0x93B8,INVALC, - INVALC,0x939C,0x95D8,0x95D7,INVALC,INVALC,INVALC,0x975D, - 0x97A9,0x97DA,INVALC,INVALC,INVALC,INVALC,0x9854,INVALC, - 0x9855,0x984B,INVALC,0x983F,0x98B9,INVALC,INVALC,INVALC, - INVALC,0x9938,0x9936,0x9940,INVALC,0x993B,0x9939,0x99A4, - INVALC,INVALC,0x9A08,0x9A0C,INVALC,0x9A10,INVALC,0x9B07, - INVALC,0x9BD2,INVALC,0x9BC2,0x9BBB,0x9BCC,0x9BCB,INVALC, - INVALC,0x9D4D,0x9D63,0x9D4E,INVALC,0x9D50,0x9D55,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 91, Array index 0x3A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x9D5E,INVALC,0x9E90,0x9EB2,0x9EB1,INVALC, - 0x9ECA,0x9F02,0x9F27,0x9F26,INVALC,0x56AF,0x58E0,0x58DC, - INVALC,0x5B39,INVALC,INVALC,0x5B7C,0x5BF3,INVALC,INVALC, - 0x5C6B,0x5DC4,0x650B,0x6508,0x650A,INVALC,INVALC,0x65DC, - INVALC,INVALC,0x66E1,0x66DF,0x6ACE,0x6AD4,0x6AE3,0x6AD7, - 0x6AE2,INVALC,INVALC,INVALC,INVALC,0x6AD8,0x6AD5,0x6AD2, - INVALC,INVALC,0x701E,0x702C,0x7025,0x6FF3,0x7204,0x7208, - 0x7215,INVALC,0x74C4,0x74C9,0x74C7,0x74C8,0x76A9,0x77C6, - 0x77C5,0x7918,0x791A,0x7920,INVALC,0x7A66,0x7A64,0x7A6A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7C35,0x7C34, - INVALC,INVALC,0x7E6C,INVALC,0x7E6E,0x7E71,INVALC,0x81D4, - 0x81D6,0x821A,0x8262,0x8265,0x8276,0x85DB,0x85D6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 92, Array index 0x3B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x85E7,INVALC,INVALC,0x85F4,INVALC,0x87FD, - 0x87D5,0x8807,INVALC,0x880F,0x87F8,INVALC,INVALC,0x8987, - INVALC,0x89B5,0x89F5,INVALC,0x8B3F,0x8B43,0x8B4C,INVALC, - 0x8D0B,0x8E6B,0x8E68,0x8E70,0x8E75,0x8E77,INVALC,0x8EC3, - INVALC,0x93E9,0x93EA,0x93CB,0x93C5,0x93C6,INVALC,0x93ED, - 0x93D3,INVALC,0x93E5,INVALC,INVALC,0x93DB,0x93EB,0x93E0, - 0x93C1,INVALC,INVALC,0x95DD,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x97B2,0x97B4,0x97B1, - 0x97B5,0x97F2,INVALC,INVALC,INVALC,0x9856,INVALC,INVALC, - INVALC,0x9944,INVALC,0x9A26,0x9A1F,0x9A18,0x9A21,0x9A17, - INVALC,0x9B09,INVALC,INVALC,0x9BC5,0x9BDF,INVALC,0x9BE3, - INVALC,0x9BE9,0x9BEE,INVALC,INVALC,0x9D66,0x9D7A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 93, Array index 0x3C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x9D6E,0x9D91,0x9D83,0x9D76,0x9D7E,0x9D6D, - INVALC,0x9E95,0x9EE3,INVALC,INVALC,0x9F03,0x9F04,INVALC, - 0x9F17,INVALC,0x5136,INVALC,0x5336,INVALC,0x5B42,INVALC, - INVALC,0x5B44,0x5B46,0x5B7E,0x5DCA,0x5DC8,0x5DCC,0x5EF0, - INVALC,0x6585,0x66E5,0x66E7,INVALC,INVALC,INVALC,0x6AF4, - INVALC,0x6AE9,INVALC,INVALC,INVALC,INVALC,INVALC,0x703D, - INVALC,0x7036,INVALC,0x7216,INVALC,0x7212,0x720F,0x7217, - 0x7211,0x720B,INVALC,INVALC,0x74CD,0x74D0,0x74CC,0x74CE, - 0x74D1,INVALC,0x7589,INVALC,0x7A6F,0x7C4B,0x7C44,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7E7F,0x8B71,INVALC,0x802F, - 0x807A,0x807B,0x807C,INVALC,INVALC,INVALC,0x85FC,0x8610, - 0x8602,INVALC,INVALC,0x85EE,0x8603,INVALC,0x860D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 94, Array index 0x3D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8613,0x8608,0x860F,0x8818,0x8812,INVALC,INVALC, - 0x8967,0x8965,0x89BB,0x8B69,0x8B62,INVALC,0x8B6E,INVALC, - 0x8B61,INVALC,0x8B64,0x8B4D,0x8C51,INVALC,INVALC,0x8E83, - 0x8EC6,INVALC,0x941F,INVALC,0x9404,0x9417,0x9408,0x9405, - INVALC,0x93F3,0x941E,0x9402,0x941A,0x941B,0x9427,0x941C, - INVALC,0x96B5,INVALC,INVALC,0x9733,INVALC,0x9734,0x9731, - 0x97B8,0x97BA,INVALC,0x97FC,INVALC,INVALC,0x98C3,INVALC, - 0x994D,INVALC,0x9A2F,INVALC,INVALC,INVALC,0x9AC9,INVALC, - 0x9AC8,0x9AC4,0x9B2A,0x9B38,0x9B50,INVALC,0x9C0A,0x9BFB, - 0x9C04,0x9BFC,0x9BFE,INVALC,INVALC,INVALC,0x9C02,0x9BF6, - 0x9C1B,0x9BF9,0x9C15,0x9C10,0x9BFF,0x9C00,0x9C0C,INVALC, - INVALC,0x9D95,0x9DA5,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 95, Array index 0x3E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9E98,0x9EC1,INVALC,0x9F5A,0x5164,0x56BB,INVALC, - 0x58E6,0x5B49,0x5BF7,INVALC,INVALC,0x5DD0,INVALC,0x5FC2, - INVALC,0x6511,INVALC,0x6AFF,0x6AFE,0x6AFD,INVALC,0x6B01, - INVALC,INVALC,0x704B,0x704D,0x7047,0x74D3,0x7668,0x7667, - INVALC,INVALC,0x77D1,0x7930,0x7932,0x792E,INVALC,0x9F9D, - 0x7AC9,0x7AC8,INVALC,0x7C56,0x7C51,INVALC,INVALC,INVALC, - 0x7E85,0x7E89,0x7E8E,0x7E84,INVALC,0x826A,0x862B,0x862F, - 0x8628,INVALC,0x8616,0x8615,0x861D,0x881A,INVALC,INVALC, - INVALC,0x89BC,0x8B75,0x8B7C,INVALC,0x8D11,0x8D12,0x8F5C, - 0x91BB,INVALC,0x93F4,INVALC,INVALC,0x942D,INVALC,INVALC, - 0x96E4,0x9737,0x9736,0x9767,0x97BE,0x97BD,0x97E2,0x9868, - 0x9866,0x98C8,0x98CA,0x98C7,0x98DC,INVALC,0x994F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 96, Array index 0x3F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x99A9,0x9A3C,INVALC,0x9A3B,0x9ACE,INVALC,0x9B14, - 0x9B53,INVALC,0x9C2E,INVALC,0x9C1F,INVALC,INVALC,INVALC, - INVALC,0x9DB0,0x9DBD,INVALC,INVALC,0x9DAE,0x9DC4,0x9E7B, - INVALC,INVALC,0x9E9E,INVALC,0x9F05,INVALC,0x9F69,0x9FA1, - 0x56C7,0x571D,0x5B4A,0x5DD3,INVALC,0x5F72,0x6202,INVALC, - 0x6235,0x6527,0x651E,0x651F,INVALC,INVALC,0x6B07,0x6B06, - INVALC,INVALC,0x7054,0x721C,0x7220,0x7AF8,INVALC,0x7C5D, - 0x7C58,INVALC,0x7E92,0x7F4E,INVALC,INVALC,INVALC,0x8827, - INVALC,0x8B81,0x8B83,INVALC,0x8C44,INVALC,INVALC,INVALC, - INVALC,0x9442,0x944D,0x9454,0x944E,INVALC,0x9443,INVALC, - INVALC,0x973C,0x9740,0x97C0,INVALC,INVALC,INVALC,INVALC, - 0x995A,0x9A51,INVALC,0x9ADD,INVALC,INVALC,0x9C38,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 97, Array index 0x4000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x9C45,0x9C3A,INVALC,0x9C35,INVALC,INVALC, - INVALC,0x9EF1,INVALC,0x9F93,0x529A,INVALC,INVALC,0x8641, - 0x5DD7,INVALC,0x6528,INVALC,INVALC,INVALC,0x7053,0x7059, - INVALC,0x7221,INVALC,0x766F,0x7937,0x79B5,0x7C62,0x7C5E, - 0x7CF5,INVALC,INVALC,0x863D,INVALC,0x882D,0x8989,0x8B8D, - 0x8B87,0x8B90,0x8D1A,0x8E99,INVALC,INVALC,INVALC,0x945F, - INVALC,INVALC,0x9456,0x9461,0x945B,0x945A,0x945C,0x9465, - INVALC,0x9741,INVALC,INVALC,0x986E,0x986C,0x986D,INVALC, - 0x99AA,0x9A5C,0x9A58,0x9ADE,INVALC,0x9C4F,0x9C51,INVALC, - 0x9C53,INVALC,INVALC,INVALC,0x9DFC,0x9F39,INVALC,0x513E, - INVALC,0x56D2,INVALC,0x5B4F,0x6B14,INVALC,0x7A72,0x7A73, - INVALC,INVALC,INVALC,0x8B91,INVALC,INVALC,0x91BF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 98, Array index 0x4100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x946C,INVALC,INVALC,0x96E6,0x9745,INVALC, - 0x97C8,0x97E4,0x995D,INVALC,0x9B21,INVALC,0x9B2C,0x9B57, - INVALC,INVALC,0x9C5D,0x9C61,0x9C65,0x9E08,INVALC,INVALC, - INVALC,INVALC,INVALC,0x9F45,INVALC,INVALC,0x6205,0x66EF, - 0x6B1B,0x6B1D,0x7225,0x7224,0x7C6D,INVALC,0x8642,0x8649, - INVALC,0x8978,0x898A,0x8B97,INVALC,0x8C9B,0x8D1C,INVALC, - 0x8EA2,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9C6C,INVALC,0x9C6F,INVALC,0x9E0E,INVALC,0x9F08, - 0x9F1D,0x9FA3,INVALC,INVALC,0x5F60,0x6B1C,INVALC,INVALC, - INVALC,0x7CF3,INVALC,0x8B9B,0x8EA7,0x91C4,INVALC,0x947A, - INVALC,INVALC,0x9A61,0x9A63,0x9AD7,0x9C76,INVALC,0x9FA5, - INVALC,0x7067,INVALC,0x72AB,0x864A,0x897D,0x8B9D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 99, Array index 0x4200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8C53,0x8F65,0x947B,INVALC,0x98CD,0x98DD,INVALC, - 0x9B30,0x9E16,INVALC,INVALC,INVALC,INVALC,INVALC,0x96E7, - 0x9E18,0x9EA2,INVALC,0x9F7C,INVALC,0x7E9E,0x9484,INVALC, - 0x9E1C,INVALC,0x7C71,0x97CA,INVALC,INVALC,INVALC,0x9EA3, - INVALC,0x9C7B,0x9F97,INVALC,INVALC,0x9750,INVALC,INVALC, - INVALC,0x5727,0x5C13,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5FC8,INVALC,INVALC,INVALC,INVALC,INVALC,0x6765, - INVALC,INVALC,0x52BD,INVALC,0x5B66,INVALC,0x65F9,0x6788, - 0x6CE6,0x6CCB,INVALC,0x4FBD,0x5F8D,INVALC,0x6018,0x6048, - INVALC,0x6B29,0x70A6,INVALC,0x7706,INVALC,INVALC,INVALC, - 0x5A10,0x5CFC,0x5CFE,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x70C9,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 100, Array index 0x4300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x9579,INVALC,0x96BA,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7B29,0x8128,INVALC, - 0x8A2E,INVALC,INVALC,INVALC,0x9AD9,INVALC,0x582B,0x5845, - INVALC,0x63FA,INVALC,INVALC,INVALC,0x6E86,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5867,INVALC,0x5BDD,0x656E,INVALC, - INVALC,INVALC,0x8C87,INVALC,0x50D2,0x50DF,INVALC,INVALC, - INVALC,INVALC,0x69BA,INVALC,0x6B9D,INVALC,0x8059,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6F8A,INVALC,INVALC,0x7BC3,0x7BC2, - INVALC,INVALC,INVALC,INVALC,0x90F6,INVALC,0x9823,INVALC, - INVALC,INVALC,INVALC,INVALC,0x71CD,0x7499,INVALC,INVALC, - INVALC,INVALC,INVALC,0x9842,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 101, Array index 0x4400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7F84,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x8D0E,INVALC,0x9861,INVALC,INVALC,0x8B73,INVALC,0x9C27, - INVALC,0x9458,0x77D6,0x9B2D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4F66,0x4F68,0x4FE7,0x503F,INVALC,0x50A6,0x510F,0x523E, - 0x5324,0x5365,0x539B,0x517F,0x54CB,0x5573,0x5571,0x556B, - 0x55F4,0x5622,0x5620,0x5692,0x56BA,0x5691,0x56B0,0x5759, - 0x578A,0x580F,0x5812,0x5813,0x5847,0x589B,0x5900,0x594D, - 0x5AD1,0x5AD3,0x5B67,0x5C57,0x5C77,0x5CD5,0x5D75,0x5D8E, - 0x5DA5,0x5DB6,0x5DBF,0x5E65,0x5ECD,0x5EED,0x5F94,0x5F9A, - 0x5FBA,0x6125,0x6150,0x62A3,0x6360,0x6364,0x63B6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 102, Array index 0x4500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6403,0x64B6,0x651A,0x7A25,0x5C21,0x66E2,0x6702, - 0x67A4,0x67AC,0x6810,0x6806,0x685E,0x685A,0x692C,0x6929, - 0x6A2D,0x6A77,0x6A7A,0x6ACA,0x6AE6,0x6AF5,0x6B0D,0x6B0E, - 0x6BDC,0x6BDD,0x6BF6,0x6C1E,0x6C63,0x6DA5,0x6E0F,0x6E8A, - 0x6E84,0x6E8B,0x6E7C,0x6F4C,0x6F48,0x6F49,0x6F9D,0x6F99, - 0x6FF8,0x702E,0x702D,0x705C,0x79CC,0x70BF,0x70EA,0x70E5, - 0x7111,0x7112,0x713F,0x7139,0x713B,0x713D,0x7177,0x7175, - 0x7176,0x7171,0x7196,0x7193,0x71B4,0x71DD,0x71DE,0x720E, - 0x5911,0x7218,0x7347,0x7348,0x73EF,0x7412,0x743B,0x74A4, - 0x748D,0x74B4,0x7673,0x7677,0x76BC,0x7819,0x781B,0x783D, - 0x7853,0x7854,0x7858,0x78B7,0x78D8,0x78EE,0x7922,0x794D, - 0x7986,0x7999,0x79A3,0x79BC,0x7AA7,0x7B37,0x7B59,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 103, Array index 0x4600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7BD0,0x7C2F,0x7C32,0x7C42,0x7C4E,0x7C68,0x7CA9, - 0x7CED,0x7DD0,0x7E07,0x7DD3,0x7E64,0x7F40,INVALC,0x8041, - 0x8063,0x80BB,0x6711,0x6725,0x8248,0x8310,0x8362,0x8312, - 0x8421,0x841E,0x84E2,0x84DE,0x84E1,0x8573,0x85D4,0x85F5, - 0x8637,0x8645,0x8672,0x874A,0x87A9,0x87A5,0x87F5,0x8834, - 0x8850,0x8887,0x8954,0x8984,0x8B03,0x8C52,0x8CD8,0x8D0C, - 0x8D18,0x8DB0,0x8EBC,0x8ED5,0x8FAA,0x909C,INVALC,0x915C, - 0x922B,0x9221,0x9273,0x92F4,0x92F5,0x933F,0x9342,0x9386, - 0x93BE,0x93BC,0x93BD,0x93F1,0x93F2,0x93EF,0x9422,0x9423, - 0x9424,0x9467,0x9466,0x9597,0x95CE,0x95E7,0x973B,0x974D, - 0x98E4,0x9942,0x9B1D,0x9B98,INVALC,0x9D49,0x6449,0x5E71, - 0x5E85,0x61D3,0x990E,0x8002,0x781E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 104, Array index 0x4700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5528,0x5572,0x55BA,0x55F0,0x55EE,0x56B8,0x56B9, - 0x56C4,0x8053,0x92B0,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, -}; - -#endif /* ICONV_TO_UCS_CCS_CNS11643_PLANE14 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit cns11643_plane14 -> UCS size-optimized table (12822 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE14) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_size_cns11643_plane14[] = -{ - 0x00DE, /* Ranges number */ - 0x01A6, /* Unranged codes number */ - 0x15BF, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0x2121, 0x216D, 0x029D, - /* Array index: 0x0006 */ 0x2177, 0x217D, 0x02EA, - /* Array index: 0x0009 */ 0x2222, 0x223F, 0x02F1, - /* Array index: 0x000C */ 0x2247, 0x227E, 0x030F, - /* Array index: 0x000F */ 0x2322, 0x2347, 0x0347, - /* Array index: 0x0012 */ 0x2350, 0x2355, 0x036D, - /* Array index: 0x0015 */ 0x2369, 0x237E, 0x0373, - /* Array index: 0x0018 */ 0x2423, 0x242F, 0x0389, - /* Array index: 0x001B */ 0x2438, 0x2454, 0x0396, - /* Array index: 0x001E */ 0x2457, 0x2467, 0x03B3, - /* Array index: 0x0021 */ 0x2473, 0x247E, 0x03C4, - /* Array index: 0x0024 */ 0x2521, 0x2538, 0x03D0, - /* Array index: 0x0027 */ 0x253E, 0x254E, 0x03E8, - /* Array index: 0x002A */ 0x255A, 0x2568, 0x03F9, - /* Array index: 0x002D */ 0x256B, 0x257D, 0x0408, - /* Array index: 0x0030 */ 0x2621, 0x262A, 0x041B, - /* Array index: 0x0033 */ 0x262E, 0x2639, 0x0425, - /* Array index: 0x0036 */ 0x2641, 0x266B, 0x0431, - /* Array index: 0x0039 */ 0x2673, 0x267E, 0x045C, - /* Array index: 0x003C */ 0x2721, 0x2752, 0x0468, - /* Array index: 0x003F */ 0x2759, 0x277D, 0x049A, - /* Array index: 0x0042 */ 0x2821, 0x282F, 0x04BF, - /* Array index: 0x0045 */ 0x283D, 0x2841, 0x04CE, - /* Array index: 0x0048 */ 0x2848, 0x287A, 0x04D3, - /* Array index: 0x004B */ 0x2925, 0x295A, 0x0506, - /* Array index: 0x004E */ 0x2963, 0x2979, 0x053C, - /* Array index: 0x0051 */ 0x2A21, 0x2A3F, 0x0553, - /* Array index: 0x0054 */ 0x2A47, 0x2A4F, 0x0572, - /* Array index: 0x0057 */ 0x2A54, 0x2A60, 0x057B, - /* Array index: 0x005A */ 0x2A70, 0x2A7E, 0x0588, - /* Array index: 0x005D */ 0x2B21, 0x2B40, 0x0597, - /* Array index: 0x0060 */ 0x2B46, 0x2B5E, 0x05B7, - /* Array index: 0x0063 */ 0x2B63, 0x2B72, 0x05D0, - /* Array index: 0x0066 */ 0x2C21, 0x2C2F, 0x05E0, - /* Array index: 0x0069 */ 0x2C3B, 0x2C4D, 0x05EF, - /* Array index: 0x006C */ 0x2C56, 0x2C63, 0x0602, - /* Array index: 0x006F */ 0x2C6B, 0x2C7E, 0x0610, - /* Array index: 0x0072 */ 0x2D21, 0x2D3D, 0x0624, - /* Array index: 0x0075 */ 0x2D45, 0x2D7E, 0x0641, - /* Array index: 0x0078 */ 0x2E21, 0x2E2B, 0x067B, - /* Array index: 0x007B */ 0x2E32, 0x2E54, 0x0686, - /* Array index: 0x007E */ 0x2E5D, 0x2E6F, 0x06A9, - /* Array index: 0x0081 */ 0x2E74, 0x2E7E, 0x06BC, - /* Array index: 0x0084 */ 0x2F23, 0x2F6F, 0x06C7, - /* Array index: 0x0087 */ 0x2F73, 0x2F7B, 0x0714, - /* Array index: 0x008A */ 0x3027, 0x302B, 0x071D, - /* Array index: 0x008D */ 0x302F, 0x3040, 0x0722, - /* Array index: 0x0090 */ 0x304A, 0x304F, 0x0734, - /* Array index: 0x0093 */ 0x3055, 0x307B, 0x073A, - /* Array index: 0x0096 */ 0x3121, 0x3129, 0x0761, - /* Array index: 0x0099 */ 0x312C, 0x313D, 0x076A, - /* Array index: 0x009C */ 0x3140, 0x317D, 0x077C, - /* Array index: 0x009F */ 0x3221, 0x3231, 0x07BA, - /* Array index: 0x00A2 */ 0x3238, 0x3241, 0x07CB, - /* Array index: 0x00A5 */ 0x3246, 0x3248, 0x07D5, - /* Array index: 0x00A8 */ 0x324D, 0x3252, 0x07D8, - /* Array index: 0x00AB */ 0x325A, 0x327C, 0x07DE, - /* Array index: 0x00AE */ 0x3323, 0x3332, 0x0801, - /* Array index: 0x00B1 */ 0x333B, 0x334F, 0x0811, - /* Array index: 0x00B4 */ 0x3355, 0x335A, 0x0826, - /* Array index: 0x00B7 */ 0x3369, 0x337C, 0x082C, - /* Array index: 0x00BA */ 0x3425, 0x3436, 0x0840, - /* Array index: 0x00BD */ 0x343C, 0x347D, 0x0852, - /* Array index: 0x00C0 */ 0x3527, 0x353C, 0x0894, - /* Array index: 0x00C3 */ 0x3543, 0x355B, 0x08AA, - /* Array index: 0x00C6 */ 0x3560, 0x3563, 0x08C3, - /* Array index: 0x00C9 */ 0x356E, 0x3576, 0x08C7, - /* Array index: 0x00CC */ 0x3622, 0x367D, 0x08D0, - /* Array index: 0x00CF */ 0x3721, 0x373D, 0x092C, - /* Array index: 0x00D2 */ 0x3744, 0x374A, 0x0949, - /* Array index: 0x00D5 */ 0x3750, 0x3759, 0x0950, - /* Array index: 0x00D8 */ 0x375D, 0x377E, 0x095A, - /* Array index: 0x00DB */ 0x3839, 0x3842, 0x097C, - /* Array index: 0x00DE */ 0x3845, 0x3858, 0x0986, - /* Array index: 0x00E1 */ 0x385B, 0x387B, 0x099A, - /* Array index: 0x00E4 */ 0x3929, 0x3941, 0x09BB, - /* Array index: 0x00E7 */ 0x394A, 0x3959, 0x09D4, - /* Array index: 0x00EA */ 0x3967, 0x397E, 0x09E4, - /* Array index: 0x00ED */ 0x3A27, 0x3A3C, 0x09FC, - /* Array index: 0x00F0 */ 0x3A40, 0x3A63, 0x0A12, - /* Array index: 0x00F3 */ 0x3A75, 0x3A7E, 0x0A36, - /* Array index: 0x00F6 */ 0x3B24, 0x3B2E, 0x0A40, - /* Array index: 0x00F9 */ 0x3B33, 0x3B47, 0x0A4B, - /* Array index: 0x00FC */ 0x3B4D, 0x3B68, 0x0A60, - /* Array index: 0x00FF */ 0x3B6D, 0x3B76, 0x0A7C, - /* Array index: 0x0102 */ 0x3B7C, 0x3B7E, 0x0A86, - /* Array index: 0x0105 */ 0x3C23, 0x3C2A, 0x0A89, - /* Array index: 0x0108 */ 0x3C2F, 0x3C5D, 0x0A91, - /* Array index: 0x010B */ 0x3C60, 0x3C74, 0x0AC0, - /* Array index: 0x010E */ 0x3C77, 0x3C7D, 0x0AD5, - /* Array index: 0x0111 */ 0x3D21, 0x3D47, 0x0ADC, - /* Array index: 0x0114 */ 0x3D4F, 0x3D69, 0x0B03, - /* Array index: 0x0117 */ 0x3D70, 0x3D7B, 0x0B1E, - /* Array index: 0x011A */ 0x3E21, 0x3E63, 0x0B2A, - /* Array index: 0x011D */ 0x3E68, 0x3E6A, 0x0B6D, - /* Array index: 0x0120 */ 0x3E7C, 0x3E7E, 0x0B70, - /* Array index: 0x0123 */ 0x3F21, 0x3F24, 0x0B73, - /* Array index: 0x0126 */ 0x3F29, 0x3F59, 0x0B77, - /* Array index: 0x0129 */ 0x3F62, 0x3F69, 0x0BA8, - /* Array index: 0x012C */ 0x3F70, 0x3F75, 0x0BB0, - /* Array index: 0x012F */ 0x4036, 0x4061, 0x0BB6, - /* Array index: 0x0132 */ 0x4071, 0x407D, 0x0BE2, - /* Array index: 0x0135 */ 0x4121, 0x413E, 0x0BEF, - /* Array index: 0x0138 */ 0x414D, 0x4151, 0x0C0D, - /* Array index: 0x013B */ 0x4172, 0x417E, 0x0C12, - /* Array index: 0x013E */ 0x4226, 0x4233, 0x0C1F, - /* Array index: 0x0141 */ 0x4239, 0x4249, 0x0C2D, - /* Array index: 0x0144 */ 0x424E, 0x427E, 0x0C3E, - /* Array index: 0x0147 */ 0x4325, 0x4339, 0x0C6F, - /* Array index: 0x014A */ 0x4346, 0x4355, 0x0C84, - /* Array index: 0x014D */ 0x4360, 0x436A, 0x0C94, - /* Array index: 0x0150 */ 0x4372, 0x4377, 0x0C9F, - /* Array index: 0x0153 */ 0x4422, 0x444F, 0x0CA5, - /* Array index: 0x0156 */ 0x4454, 0x446B, 0x0CD3, - /* Array index: 0x0159 */ 0x4476, 0x447E, 0x0CEB, - /* Array index: 0x015C */ 0x4523, 0x453C, 0x0CF4, - /* Array index: 0x015F */ 0x4557, 0x455C, 0x0D0E, - /* Array index: 0x0162 */ 0x455F, 0x4576, 0x0D14, - /* Array index: 0x0165 */ 0x4625, 0x4664, 0x0D2C, - /* Array index: 0x0168 */ 0x4668, 0x467B, 0x0D6C, - /* Array index: 0x016B */ 0x4721, 0x472A, 0x0D80, - /* Array index: 0x016E */ 0x4733, 0x474E, 0x0D8A, - /* Array index: 0x0171 */ 0x4753, 0x4772, 0x0DA6, - /* Array index: 0x0174 */ 0x4775, 0x477E, 0x0DC6, - /* Array index: 0x0177 */ 0x4821, 0x482B, 0x0DD0, - /* Array index: 0x017A */ 0x4830, 0x4840, 0x0DDB, - /* Array index: 0x017D */ 0x4844, 0x4848, 0x0DEC, - /* Array index: 0x0180 */ 0x4852, 0x4862, 0x0DF1, - /* Array index: 0x0183 */ 0x486D, 0x4879, 0x0E02, - /* Array index: 0x0186 */ 0x4922, 0x492E, 0x0E0F, - /* Array index: 0x0189 */ 0x4932, 0x4959, 0x0E1C, - /* Array index: 0x018C */ 0x495C, 0x4968, 0x0E44, - /* Array index: 0x018F */ 0x4970, 0x497D, 0x0E51, - /* Array index: 0x0192 */ 0x4A26, 0x4A39, 0x0E5F, - /* Array index: 0x0195 */ 0x4A44, 0x4A49, 0x0E73, - /* Array index: 0x0198 */ 0x4A52, 0x4A56, 0x0E79, - /* Array index: 0x019B */ 0x4A5D, 0x4A66, 0x0E7E, - /* Array index: 0x019E */ 0x4A6C, 0x4A75, 0x0E88, - /* Array index: 0x01A1 */ 0x4B29, 0x4B5F, 0x0E92, - /* Array index: 0x01A4 */ 0x4B63, 0x4B6D, 0x0EC9, - /* Array index: 0x01A7 */ 0x4B70, 0x4B7E, 0x0ED4, - /* Array index: 0x01AA */ 0x4C21, 0x4C4A, 0x0EE3, - /* Array index: 0x01AD */ 0x4C4D, 0x4C6C, 0x0F0D, - /* Array index: 0x01B0 */ 0x4C71, 0x4C7E, 0x0F2D, - /* Array index: 0x01B3 */ 0x4D24, 0x4D31, 0x0F3B, - /* Array index: 0x01B6 */ 0x4D35, 0x4D3D, 0x0F49, - /* Array index: 0x01B9 */ 0x4D46, 0x4D5D, 0x0F52, - /* Array index: 0x01BC */ 0x4D6D, 0x4D7E, 0x0F6A, - /* Array index: 0x01BF */ 0x4E24, 0x4E3D, 0x0F7C, - /* Array index: 0x01C2 */ 0x4E4B, 0x4E4F, 0x0F96, - /* Array index: 0x01C5 */ 0x4E5D, 0x4E76, 0x0F9B, - /* Array index: 0x01C8 */ 0x4F22, 0x4F26, 0x0FB5, - /* Array index: 0x01CB */ 0x4F2B, 0x4F56, 0x0FBA, - /* Array index: 0x01CE */ 0x4F60, 0x4F7E, 0x0FE6, - /* Array index: 0x01D1 */ 0x502A, 0x5038, 0x1005, - /* Array index: 0x01D4 */ 0x5048, 0x5070, 0x1014, - /* Array index: 0x01D7 */ 0x5075, 0x507E, 0x103D, - /* Array index: 0x01DA */ 0x5122, 0x5132, 0x1047, - /* Array index: 0x01DD */ 0x5138, 0x5146, 0x1058, - /* Array index: 0x01E0 */ 0x5154, 0x5176, 0x1067, - /* Array index: 0x01E3 */ 0x5224, 0x5234, 0x108A, - /* Array index: 0x01E6 */ 0x5252, 0x526B, 0x109B, - /* Array index: 0x01E9 */ 0x5321, 0x5344, 0x10B5, - /* Array index: 0x01EC */ 0x5358, 0x536C, 0x10D9, - /* Array index: 0x01EF */ 0x5374, 0x537D, 0x10EE, - /* Array index: 0x01F2 */ 0x5429, 0x542D, 0x10F8, - /* Array index: 0x01F5 */ 0x5432, 0x5461, 0x10FD, - /* Array index: 0x01F8 */ 0x5469, 0x547C, 0x112D, - /* Array index: 0x01FB */ 0x552D, 0x5539, 0x1141, - /* Array index: 0x01FE */ 0x553E, 0x5543, 0x114E, - /* Array index: 0x0201 */ 0x5552, 0x5575, 0x1154, - /* Array index: 0x0204 */ 0x5621, 0x5624, 0x1178, - /* Array index: 0x0207 */ 0x5628, 0x562D, 0x117C, - /* Array index: 0x020A */ 0x5639, 0x5642, 0x1182, - /* Array index: 0x020D */ 0x5646, 0x564A, 0x118C, - /* Array index: 0x0210 */ 0x5651, 0x5675, 0x1191, - /* Array index: 0x0213 */ 0x573A, 0x5745, 0x11B6, - /* Array index: 0x0216 */ 0x5755, 0x5765, 0x11C2, - /* Array index: 0x0219 */ 0x576A, 0x577E, 0x11D3, - /* Array index: 0x021C */ 0x5821, 0x5845, 0x11E8, - /* Array index: 0x021F */ 0x5854, 0x585D, 0x120D, - /* Array index: 0x0222 */ 0x586B, 0x587E, 0x1217, - /* Array index: 0x0225 */ 0x5931, 0x5951, 0x122B, - /* Array index: 0x0228 */ 0x5958, 0x595C, 0x124C, - /* Array index: 0x022B */ 0x5961, 0x597E, 0x1251, - /* Array index: 0x022E */ 0x5A22, 0x5A3C, 0x126F, - /* Array index: 0x0231 */ 0x5A42, 0x5A48, 0x128A, - /* Array index: 0x0234 */ 0x5A4D, 0x5A67, 0x1291, - /* Array index: 0x0237 */ 0x5A74, 0x5A7E, 0x12AC, - /* Array index: 0x023A */ 0x5B25, 0x5B2C, 0x12B7, - /* Array index: 0x023D */ 0x5B31, 0x5B50, 0x12BF, - /* Array index: 0x0240 */ 0x5B5D, 0x5B61, 0x12DF, - /* Array index: 0x0243 */ 0x5B69, 0x5B7E, 0x12E4, - /* Array index: 0x0246 */ 0x5C22, 0x5C43, 0x12FA, - /* Array index: 0x0249 */ 0x5C53, 0x5C66, 0x131C, - /* Array index: 0x024C */ 0x5C6C, 0x5C7E, 0x1330, - /* Array index: 0x024F */ 0x5D21, 0x5D49, 0x1343, - /* Array index: 0x0252 */ 0x5D4C, 0x5D53, 0x136C, - /* Array index: 0x0255 */ 0x5D5E, 0x5D7A, 0x1374, - /* Array index: 0x0258 */ 0x5E21, 0x5E2A, 0x1391, - /* Array index: 0x025B */ 0x5E31, 0x5E6A, 0x139B, - /* Array index: 0x025E */ 0x5E70, 0x5E7E, 0x13D5, - /* Array index: 0x0261 */ 0x5F21, 0x5F2C, 0x13E4, - /* Array index: 0x0264 */ 0x5F31, 0x5F37, 0x13F0, - /* Array index: 0x0267 */ 0x5F3C, 0x5F5B, 0x13F7, - /* Array index: 0x026A */ 0x5F69, 0x5F73, 0x1417, - /* Array index: 0x026D */ 0x6039, 0x6040, 0x1422, - /* Array index: 0x0270 */ 0x6043, 0x604B, 0x142A, - /* Array index: 0x0273 */ 0x6052, 0x6068, 0x1433, - /* Array index: 0x0276 */ 0x6073, 0x6077, 0x144A, - /* Array index: 0x0279 */ 0x6125, 0x6135, 0x144F, - /* Array index: 0x027C */ 0x613E, 0x6150, 0x1460, - /* Array index: 0x027F */ 0x615D, 0x6165, 0x1473, - /* Array index: 0x0282 */ 0x6169, 0x617E, 0x147C, - /* Array index: 0x0285 */ 0x6221, 0x6229, 0x1492, - /* Array index: 0x0288 */ 0x622F, 0x623B, 0x149B, - /* Array index: 0x028B */ 0x625C, 0x6272, 0x14A8, - /* Array index: 0x028E */ 0x642F, 0x6433, 0x14BF, - /* Array index: 0x0291 */ 0x6448, 0x647E, 0x14C4, - /* Array index: 0x0294 */ 0x6521, 0x657E, 0x14FB, - /* Array index: 0x0297 */ 0x6621, 0x667C, 0x1559, - /* Array index: 0x029A */ 0x6721, 0x672A, 0x15B5, - /* Ranges content */ - /* Range 0x2121 - 0x216D, array index: 0x029D */ - 0x4E28,0x4E36,0x4E3F,0x4E85,0x4E05,0x4E04,0x5182,0x5196, - 0x5338,0x5369,0x53B6,0x4E2A,0x4E87,0x4E49,0x51E2,0x4E46, - 0x4E8F,0x4EBC,0x4EBE,0x5166,0x51E3,0x5204,0x529C,INVALC, - 0x5902,0x590A,0x5B80,0x5DDB,0x5E7A,0x5E7F,0x5EF4,0x5F50, - 0x5F51,0x5F61,0x961D,INVALC,0x4E63,0x4E62,0x4EA3,0x5185, - 0x4EC5,0x4ECF,0x4ECE,0x4ECC,0x5184,0x5186,INVALC,INVALC, - 0x51E4,0x5205,0x529E,0x529D,0x52FD,0x5300,0x533A,INVALC, - 0x5346,0x535D,0x5386,0x53B7,INVALC,0x53CC,INVALC,0x53CE, - 0x5721,INVALC,0x5E00,0x5F0C,0x6237,0x6238,0x6534,0x6535, - 0x65E0,INVALC,0x738D,0x4E97,0x4EE0, - /* Range 0x2177 - 0x217D, array index: 0x02EA */ - 0x56D8,0x518B,0x518C,0x5199,0x51E5,INVALC,0x520B, - /* Range 0x2222 - 0x223F, array index: 0x02F1 */ - 0x5304,0x5303,0x5307,INVALC,0x531E,0x535F,0x536D,0x5389, - 0x53BA,0x53D0,INVALC,0x53F6,0x53F7,0x53F9,INVALC,0x53F4, - INVALC,INVALC,0x5724,0x5904,0x5918,0x5932,0x5930,0x5934, - INVALC,0x5975,INVALC,0x5B82,0x5BF9,0x5C14, - /* Range 0x2247 - 0x227E, array index: 0x030F */ - 0x5E81,0x5E83,0x5F0D,0x5F52,INVALC,0x5FCA,0x5FC7,0x6239, - INVALC,0x624F,0x65E7,0x672F,0x6B7A,0x6C39,INVALC,INVALC, - 0x6C37,0x6C44,0x6C45,0x738C,0x7592,0x7676,0x9093,0x9092, - INVALC,INVALC,0x4E21,0x4E20,0x4E22,0x4E68,0x4E89,0x4E98, - 0x4EF9,0x4EEF,INVALC,INVALC,0x4EF8,0x4F06,0x4F03,0x4EFC, - 0x4EEE,0x4F16,INVALC,0x4F28,0x4F1C,0x4F07,0x4F1A,0x4EFA, - 0x4F17,0x514A,INVALC,0x5172,INVALC,0x51B4,0x51B3,0x51B2, - /* Range 0x2322 - 0x2347, array index: 0x0347 */ - 0x51E8,INVALC,0x5214,0x520F,0x5215,0x5218,0x52A8,INVALC, - 0x534B,0x534F,INVALC,0x5350,INVALC,0x538B,INVALC,0x53BE, - INVALC,0x53D2,0x5416,0x53FF,INVALC,0x5400,INVALC,0x5405, - 0x5413,0x5415,INVALC,INVALC,0x56E3,0x5735,0x5736,0x5731, - 0x5732,0x58EE,0x5905,0x4E54,INVALC,0x5936, - /* Range 0x2350 - 0x2355, array index: 0x036D */ - 0x5B86,0x5F53,0x5C18,INVALC,0x5C3D,0x5C78, - /* Range 0x2369 - 0x237E, array index: 0x0373 */ - 0x5FDB,INVALC,0x620F,0x625D,0x625F,0x6267,0x6257,0x9F50, - INVALC,0x65EB,0x65EA,INVALC,0x6737,INVALC,0x6732,0x6736, - 0x6B22,0x6BCE,INVALC,0x6C58,0x6C51,0x6C77, - /* Range 0x2423 - 0x242F, array index: 0x0389 */ - 0x6C5A,INVALC,0x6C53,0x706F,0x7072,0x706E,INVALC,INVALC, - 0x7073,0x72B1,0x72B2,INVALC,0x738F, - /* Range 0x2438 - 0x2454, array index: 0x0396 */ - 0x827B,INVALC,0x8D71,0x8FB9,0x9096,0x909A,INVALC,0x4E24, - 0x4E71,INVALC,0x4E9C,0x4F45,0x4F4A,0x4F39,0x4F37,INVALC, - 0x4F32,0x4F42,INVALC,0x4F44,0x4F4B,INVALC,0x4F40,0x4F35, - 0x4F31,0x5151,INVALC,0x5150,0x514E, - /* Range 0x2457 - 0x2467, array index: 0x03B3 */ - 0x519D,INVALC,0x51B5,0x51B8,0x51EC,0x5223,0x5227,0x5226, - 0x521F,0x522B,0x5220,0x52B4,0x52B3,INVALC,0x5325,0x533B, - 0x5374, - /* Range 0x2473 - 0x247E, array index: 0x03C4 */ - 0x5444,0x544C,0x5423,0x541A,0x5432,0x544B,0x5421,INVALC, - 0x5434,0x5449,0x5450,0x5422, - /* Range 0x2521 - 0x2538, array index: 0x03D0 */ - 0x543F,0x5451,0x545A,0x542F,INVALC,0x56E9,0x56F2,0x56F3, - 0x56EF,0x56ED,0x56EC,0x56E6,0x5748,INVALC,0x5744,0x573F, - 0x573C,0x5753,0x5756,INVALC,0x575F,0x5743,0x5758,0x5757, - /* Range 0x253E - 0x254E, array index: 0x03E8 */ - 0x573D,INVALC,0x5742,0x5754,0x5755,0x58F1,0x58F2,0x58F0, - 0x590B,0x9EA6,0x56F1,0x593D,INVALC,0x5994,0x598C,INVALC, - 0x599C, - /* Range 0x255A - 0x2568, array index: 0x03F9 */ - 0x5B8D,INVALC,0x5BFE,0x5BFF,0x5BFD,0x5C2B,INVALC,0x5C84, - 0x5C8E,0x5C9C,INVALC,INVALC,0x5C85,0x5DF5,0x5E09, - /* Range 0x256B - 0x257D, array index: 0x0408 */ - 0x5E0B,INVALC,0x5E92,0x5E90,0x5F03,INVALC,0x5F1E,0x5F63, - INVALC,0x5FE7,0x5FFE,0x5FE6,0x5FDC,0x5FCE,INVALC,0x5FFC, - 0x5FDF,0x5FEC,0x5FF6, - /* Range 0x2621 - 0x262A, array index: 0x041B */ - 0x5FF2,0x5FF0,0x5FF9,INVALC,0x6213,INVALC,INVALC,0x623B, - 0x623C,0x6282, - /* Range 0x262E - 0x2639, array index: 0x0425 */ - 0x6278,0x628B,INVALC,0x629E,0x62A5,0x629B,0x629C,0x6299, - 0x628D,0x6285,0x629D,0x6275, - /* Range 0x2641 - 0x266B, array index: 0x0431 */ - 0x66F5,0x675B,INVALC,0x6754,0x6752,INVALC,0x6758,0x6744, - 0x674A,0x6761,INVALC,0x6C7F,0x6C91,0x6C9E,INVALC,0x6C6E, - 0x6C7C,0x6C9F,0x6C75,INVALC,0x6C56,0x6CA2,0x6C79,INVALC, - 0x6CA1,INVALC,0x6CAA,0x6CA0,INVALC,0x7079,0x7077,0x707E, - INVALC,0x7075,0x707B,0x7264,INVALC,0x72BB,0x72BC,0x72C7, - 0x72B9,0x72BE,0x72B6, - /* Range 0x2673 - 0x267E, array index: 0x045C */ - 0x7593,0x7680,INVALC,0x7683,0x76C0,0x76C1,INVALC,INVALC, - 0x77F4,0x77F5,INVALC,0x7ACC, - /* Range 0x2721 - 0x2752, array index: 0x0468 */ - 0x7ACD,0x7CFA,0x809F,0x8091,0x8097,0x8094,INVALC,0x8286, - 0x828C,INVALC,0x8295,INVALC,0x866C,INVALC,0x8FB5,0x8FBE, - 0x8FC7,INVALC,0x8FC1,0x90A9,0x90A4,INVALC,INVALC,INVALC, - 0x90A8,0x9627,0x9626,0x962B,0x9633,0x9634,0x9629,0x4E3D, - INVALC,0x4E9D,0x4F93,0x4F8A,INVALC,INVALC,0x4F6D,0x4F8E, - 0x4FA0,0x4FA2,0x4FA1,0x4F9F,0x4FA3,INVALC,0x4F72,INVALC, - 0x4F8C,0x5156, - /* Range 0x2759 - 0x277D, array index: 0x049A */ - 0x51ED,0x51FE,0x522F,INVALC,0x523C,0x5234,0x5239,0x52B9, - 0x52B5,0x52BF,0x5355,INVALC,0x5376,0x537A,0x5393,INVALC, - 0x53C1,0x53C2,0x53D5,0x5485,INVALC,0x545F,0x5493,0x5489, - 0x5479,0x9EFE,0x548F,0x5469,0x546D,INVALC,0x5494,0x546A, - 0x548A,INVALC,0x56FD,0x56FB,0x56F8, - /* Range 0x2821 - 0x282F, array index: 0x04BF */ - 0x56FC,0x56F6,0x5765,0x5781,0x5763,0x5767,INVALC,0x576E, - 0x5778,0x577F,INVALC,INVALC,0x58F3,0x594B,0x594C, - /* Range 0x283D - 0x2841, array index: 0x04CE */ - 0x59BF,INVALC,0x59C9,0x59B8,0x59AC, - /* Range 0x2848 - 0x287A, array index: 0x04D3 */ - 0x5B60,INVALC,0x5B96,0x5B9E,0x5B94,0x5B9F,0x5B9D,INVALC, - 0x5C00,0x5C19,INVALC,INVALC,0x5C49,0x5C4A,INVALC,0x5CBB, - 0x5CC1,INVALC,INVALC,INVALC,0x5CB9,0x5C9E,0x5CB4,0x5CBA, - 0x5DF6,0x5E13,0x5E12,0x5E77,INVALC,0x5E98,INVALC,0x5E99, - 0x5E9D,0x5EF8,INVALC,0x5EF9,INVALC,0x5F06,0x5F21,INVALC, - 0x5F25,0x5F55,INVALC,INVALC,INVALC,0x5F84,0x5F83,0x6030, - 0x6007,INVALC,0x6036, - /* Range 0x2925 - 0x295A, array index: 0x0506 */ - 0x62BA,0x62B2,INVALC,0x62B7,0x62E4,0x62A7,INVALC,INVALC, - INVALC,0x62D5,0x62E1,0x62DD,0x62A6,0x62C1,0x62C5,0x62C0, - 0x62DF,0x62E0,0x62DE,INVALC,0x6589,INVALC,0x65A6,0x65BA, - INVALC,0x65FF,INVALC,0x6617,0x6618,0x6601,0x65FE,INVALC, - 0x670C,INVALC,0x676B,0x6796,0x6782,0x678A,INVALC,0x67A3, - INVALC,0x67A2,0x678F,INVALC,0x67F9,0x6780,0x6B26,0x6B27, - 0x6B68,0x6B69,INVALC,0x6B81,0x6BB4,0x6BD1, - /* Range 0x2963 - 0x2979, array index: 0x053C */ - 0x6C97,0x6C6C,0x6CDF,INVALC,0x6CEA,INVALC,0x6CE4,0x6CD8, - 0x6CB2,0x6CCE,0x6CC8,INVALC,0x708B,0x7088,0x7090,0x708F, - INVALC,0x7087,0x7089,0x708D,0x7081,INVALC,0x708C, - /* Range 0x2A21 - 0x2A3F, array index: 0x0553 */ - 0x7265,0x7266,0x7268,INVALC,INVALC,0x72CD,0x72D3,0x72DB, - INVALC,0x72CF,0x73A7,0x73A3,0x739E,INVALC,0x73AF,INVALC, - INVALC,0x73AA,0x739C,INVALC,0x7542,0x7544,0x753B,0x7541, - INVALC,0x759B,0x759E,INVALC,0x79C4,0x79C3,0x79C6, - /* Range 0x2A47 - 0x2A4F, array index: 0x0572 */ - 0x7ACF,0x7C76,0x7C74,0x7CFF,0x7CFC,INVALC,INVALC,0x7F59, - 0x80A8, - /* Range 0x2A54 - 0x2A60, array index: 0x057B */ - 0x80B3,INVALC,0x80A4,0x80B6,0x80A7,0x80AC,INVALC,0x80A6, - 0x5367,0x820E,0x82C4,0x833E,0x829C, - /* Range 0x2A70 - 0x2A7E, array index: 0x0588 */ - 0x8FCC,0x8FD9,0x8FCA,0x8FD8,0x8FCF,0x90B7,INVALC,0x90AD, - 0x90B9,0x9637,INVALC,0x9641,0x963E,0x96B6,0x9751, - /* Range 0x2B21 - 0x2B40, array index: 0x0597 */ - 0x9763,0x4E57,0x4E79,0x4EB2,0x4EB0,0x4EAF,0x4EB1,0x4FD2, - 0x4FD5,INVALC,0x4FBE,0x4FB8,0x4FB0,0x4FB1,0x4FC8,INVALC, - INVALC,0x4FC6,0x4FCC,0x4FE5,0x4FE3,0x4FB4,0x516A,INVALC, - 0x519F,INVALC,0x51C1,INVALC,0x51C2,0x51C3,0x5245,0x5248, - /* Range 0x2B46 - 0x2B5E, array index: 0x05B7 */ - 0x52C5,0x52CA,0x52C4,0x5327,0x5358,0x537D,INVALC,0x53DD, - 0x53DC,0x53DA,0x53D9,0x54B9,INVALC,0x54D0,0x54B4,0x54CA, - INVALC,0x54A3,0x54DA,0x54A4,INVALC,0x54B2,0x549E,0x549F, - 0x54B5, - /* Range 0x2B63 - 0x2B72, array index: 0x05D0 */ - 0x54CC,INVALC,0x5700,0x57AC,0x5791,0x578E,0x578D,0x5792, - 0x57A1,0x5790,0x57A6,0x57A8,INVALC,0x579C,0x5796,0x57A7, - /* Range 0x2C21 - 0x2C2F, array index: 0x05E0 */ - 0x59DF,INVALC,0x59EB,0x59EF,0x59F0,0x59D5,0x5A0D,0x5A04, - 0x59F9,0x5A02,0x59F8,0x59E2,0x59D9,0x59E7,0x5B6A, - /* Range 0x2C3B - 0x2C4D, array index: 0x05EF */ - 0x5CD1,0x5CDC,0x5CE6,0x5CE1,0x5CCD,INVALC,0x5CE2,0x5CDD, - 0x5CE5,0x5DFB,0x5DFA,0x5E1E,INVALC,0x5EA1,INVALC,INVALC, - 0x5EFC,0x5EFB,0x5F2F, - /* Range 0x2C56 - 0x2C63, array index: 0x0602 */ - 0x604E,0x6051,INVALC,INVALC,0x6023,0x6031,0x607C,0x6052, - INVALC,0x6060,0x604A,0x6061,INVALC,0x6218, - /* Range 0x2C6B - 0x2C7E, array index: 0x0610 */ - 0x631F,0x6317,0x62EA,0x6321,0x6304,0x6305,INVALC,0x6531, - 0x6544,0x6540,INVALC,0x6542,0x65BE,INVALC,0x6629,0x661B, - INVALC,0x6623,0x662C,0x661A, - /* Range 0x2D21 - 0x2D3D, array index: 0x0624 */ - 0x6630,0x663B,0x661E,0x6637,0x6638,INVALC,0x670E,INVALC, - INVALC,0x67E8,0x67D6,INVALC,0x67C7,0x67BC,0x6852,0x67BF, - 0x67D5,0x67FE,0x8363,0x67FB,INVALC,0x67B1,0x6801,0x6805, - 0x6800,0x67D7,INVALC,0x6B2A,0x6B6B, - /* Range 0x2D45 - 0x2D7E, array index: 0x0641 */ - 0x6D23,0x6CFF,0x6D14,0x6D05,0x6D13,0x6D06,0x6D21,INVALC, - 0x6D15,0x6CAF,0x6CF4,0x6D02,0x6D45,INVALC,0x6D26,INVALC, - 0x6D44,INVALC,0x6D24,0x70A5,INVALC,0x70A3,INVALC,0x70A2, - 0x70BB,0x70A0,0x70AA,INVALC,INVALC,0x70A8,0x70B6,0x70B2, - 0x70A7,INVALC,INVALC,0x70B9,0x722E,INVALC,0x723C,INVALC, - 0x726D,INVALC,INVALC,0x72E7,0x72ED,INVALC,0x72EC,0x72E5, - 0x72E2,INVALC,0x73C4,0x73BD,0x73CF,0x73C9,0x73C1,0x73D0, - INVALC,0x73CE, - /* Range 0x2E21 - 0x2E2B, array index: 0x067B */ - 0x74ED,0x74EB,INVALC,0x74EF,0x7549,0x7550,0x7546,0x754A, - INVALC,0x754D,0x75A6, - /* Range 0x2E32 - 0x2E54, array index: 0x0686 */ - 0x76C7,0x76FF,INVALC,0x76FD,0x77E6,0x780A,INVALC,0x7804, - 0x780B,0x7807,INVALC,0x7815,0x7808,INVALC,0x79D3,0x79D4, - 0x79D0,0x79D7,0x7A7C,INVALC,INVALC,0x7A7D,0x7A83,0x7A82, - INVALC,0x7AD4,0x7AD5,0x7AD3,0x7AD0,0x7AD2,0x7AFE,0x7AFC, - 0x7C77,0x7C7C,0x7C7B, - /* Range 0x2E5D - 0x2E6F, array index: 0x06A9 */ - 0x7F8F,0x80D3,INVALC,0x80CB,0x80D2,INVALC,0x8109,0x80E2, - 0x80DF,0x80C6,INVALC,0x8224,0x82F7,0x82D8,0x82DD,INVALC, - INVALC,0x82F8,0x82FC, - /* Range 0x2E74 - 0x2E7E, array index: 0x06BC */ - 0x82EE,INVALC,0x82D0,0x830E,0x82E2,0x830B,0x82FD,0x5179, - 0x8676,INVALC,0x8678, - /* Range 0x2F23 - 0x2F6F, array index: 0x06C7 */ - 0x8675,0x867D,INVALC,0x8842,0x8866,INVALC,0x898C,0x8A05, - INVALC,0x8A06,INVALC,0x8C9F,INVALC,0x8FF1,0x8FE7,0x8FE9, - 0x8FEF,0x90C2,0x90BC,INVALC,0x90C6,0x90C0,INVALC,INVALC, - 0x90CD,0x90C9,INVALC,0x90C4,INVALC,0x9581,INVALC,0x9CEC, - 0x5032,0x4FF9,0x501D,0x4FFF,0x5004,0x4FF0,0x5003,INVALC, - 0x5002,0x4FFC,0x4FF2,0x5024,0x5008,0x5036,0x502E,INVALC, - 0x5010,0x5038,0x5039,0x4FFD,0x5056,0x4FFB,0x51A3,0x51A6, - 0x51A1,INVALC,INVALC,0x51C7,0x51C9,0x5260,0x5264,0x5259, - 0x5265,0x5267,0x5257,0x5263,INVALC,0x5253,INVALC,0x52CF, - INVALC,0x52CE,0x52D0,0x52D1,0x52CC, - /* Range 0x2F73 - 0x2F7B, array index: 0x0714 */ - 0x550D,0x54F4,INVALC,0x5513,0x54EF,0x54F5,0x54F9,0x5502, - 0x5500, - /* Range 0x3027 - 0x302B, array index: 0x071D */ - 0x5705,0x57C9,INVALC,0x57B7,0x57CD, - /* Range 0x302F - 0x3040, array index: 0x0722 */ - 0x57BE,0x57BB,INVALC,0x57DB,0x57C8,0x57C4,0x57C5,0x57D1, - 0x57CA,0x57C0,INVALC,INVALC,0x5A21,0x5A2A,INVALC,0x5A1D, - INVALC,0x5A0B, - /* Range 0x304A - 0x304F, array index: 0x0734 */ - 0x5A14,0x5A31,INVALC,0x5A2F,0x5A1A,0x5A12, - /* Range 0x3055 - 0x307B, array index: 0x073A */ - 0x5BBC,0x5BBB,0x5BB7,0x5C05,0x5C06,0x5C52,0x5C53,INVALC, - INVALC,0x5CFA,0x5CEB,INVALC,0x5CF3,0x5CF5,0x5CE9,0x5CEF, - INVALC,0x5E2A,0x5E30,0x5E2E,0x5E2C,0x5E2F,0x5EAF,0x5EA9, - INVALC,0x5EFD,0x5F32,0x5F8E,0x5F93,0x5F8F,0x604F,0x6099, - INVALC,0x607E,INVALC,0x6074,0x604B,0x6073,0x6075, - /* Range 0x3121 - 0x3129, array index: 0x0761 */ - 0x60A9,0x608B,0x60A6,INVALC,0x6093,0x60AE,0x609E,0x60A7, - 0x6245, - /* Range 0x312C - 0x313D, array index: 0x076A */ - 0x632E,INVALC,0x6352,0x6330,0x635B,INVALC,0x6319,0x631B, - INVALC,0x6331,0x635D,0x6337,0x6335,0x6353,INVALC,0x635C, - 0x633F,0x654B, - /* Range 0x3140 - 0x317D, array index: 0x077C */ - 0x658B,INVALC,0x659A,0x6650,0x6646,0x664E,0x6640,INVALC, - 0x664B,0x6648,INVALC,0x6660,0x6644,0x664D,INVALC,0x6837, - 0x6824,INVALC,INVALC,0x681B,0x6836,INVALC,0x682C,0x6819, - 0x6856,0x6847,0x683E,0x681E,INVALC,0x6815,0x6822,0x6827, - 0x6859,0x6858,0x6855,0x6830,0x6823,0x6B2E,0x6B2B,0x6B30, - 0x6B6C,INVALC,0x6B8B,INVALC,0x6BE9,0x6BEA,0x6BE5,0x6D6B, - INVALC,INVALC,0x6D73,0x6D57,INVALC,INVALC,0x6D5D,0x6D56, - 0x6D8F,0x6D5B,0x6D1C,0x6D9A,0x6D9B,0x6D99, - /* Range 0x3221 - 0x3231, array index: 0x07BA */ - 0x6D81,0x6D71,INVALC,INVALC,0x6D72,0x6D5C,0x6D96,0x70C4, - 0x70DB,0x70CC,0x70D0,0x70E3,0x70DF,INVALC,0x70D6,0x70EE, - 0x70D5, - /* Range 0x3238 - 0x3241, array index: 0x07CB */ - 0x72F5,0x7302,INVALC,INVALC,0x73E2,0x73EC,0x73D5,0x73F9, - 0x73DF,0x73E6, - /* Range 0x3246 - 0x3248, array index: 0x07D5 */ - 0x73E4,0x73E1,0x74F3, - /* Range 0x324D - 0x3252, array index: 0x07D8 */ - 0x7556,0x7555,0x7558,0x7557,0x755E,0x75C3, - /* Range 0x325A - 0x327C, array index: 0x07DE */ - 0x76CB,0x76CC,0x772A,INVALC,0x7716,0x770F,INVALC,INVALC, - 0x773F,0x772B,0x770E,0x7724,INVALC,0x7721,0x7718,0x77DD, - INVALC,INVALC,0x7824,0x7836,INVALC,0x7958,0x7959,INVALC, - 0x7962,0x79DA,0x79D9,INVALC,0x79E1,0x79E5,0x79E8,0x79DB, - INVALC,0x79E2,0x79F0, - /* Range 0x3323 - 0x3332, array index: 0x0801 */ - 0x7ADA,0x7ADD,INVALC,0x7ADB,0x7ADC,INVALC,INVALC,0x7B0D, - 0x7B0B,0x7B14,0x7C8E,0x7C86,INVALC,0x7C87,0x7C83,0x7C8B, - /* Range 0x333B - 0x334F, array index: 0x0811 */ - 0x7D25,0x7F62,0x7F93,0x7F99,0x7F97,INVALC,INVALC,0x7FC4, - 0x7FC6,0x800A,INVALC,INVALC,0x8040,0x803C,0x803B,0x80F6, - 0x80FF,0x80EE,0x8104,0x8103,0x8107, - /* Range 0x3355 - 0x335A, array index: 0x0826 */ - 0x822D,INVALC,0x8227,0x8229,0x831F,0x8357, - /* Range 0x3369 - 0x337C, array index: 0x082C */ - 0x8684,0x869F,0x869B,0x8689,0x86A6,0x8692,0x868F,0x86A0, - 0x884F,0x8878,0x887A,0x886E,0x887B,0x8884,0x8873,INVALC, - INVALC,0x8A0D,0x8A0B,0x8A19, - /* Range 0x3425 - 0x3436, array index: 0x0840 */ - 0x8FF9,0x9009,0x9008,INVALC,0x90DE,0x9151,INVALC,INVALC, - 0x91DB,0x91DF,0x91DE,0x91D6,0x91E0,0x9585,0x9660,0x9659, - INVALC,0x9656, - /* Range 0x343C - 0x347D, array index: 0x0852 */ - 0x5042,0x5059,INVALC,0x5044,0x5066,0x5052,0x5054,0x5071, - 0x5050,0x507B,0x507C,0x5058,INVALC,INVALC,0x5079,0x506C, - 0x5078,0x51A8,0x51D1,0x51CF,0x5268,0x5276,0x52D4,INVALC, - 0x53A0,0x53C4,INVALC,0x5558,0x554C,0x5568,INVALC,0x5549, - INVALC,INVALC,0x555D,0x5529,INVALC,0x5554,0x5553,INVALC, - 0x555A,INVALC,0x553A,0x553F,0x552B,0x57EA,INVALC,0x57EF, - INVALC,INVALC,0x57DD,0x57FE,INVALC,0x57DE,0x57E6,INVALC, - 0x57E8,0x57FF,0x5803,0x58F7,0x68A6,0x591F,INVALC,0x595B, - 0x595D,0x595E, - /* Range 0x3527 - 0x353C, array index: 0x0894 */ - 0x5A61,0x5A3A,0x5A6E,0x5A4B,0x5A6B,INVALC,INVALC,0x5A45, - 0x5A4E,0x5A68,0x5A3D,0x5A71,0x5A3F,0x5A6F,0x5A75,INVALC, - 0x5A73,0x5A2C,0x5A59,0x5A54,0x5A4F,0x5A63, - /* Range 0x3543 - 0x355B, array index: 0x08AA */ - 0x5C5B,0x5C61,INVALC,0x5D21,0x5D0A,0x5D09,INVALC,0x5D2C, - 0x5D08,INVALC,INVALC,0x5D2A,0x5D15,INVALC,0x5D10,0x5D13, - INVALC,0x5D2F,0x5D18,INVALC,0x5DE3,0x5E39,0x5E35,0x5E3A, - 0x5E32, - /* Range 0x3560 - 0x3563, array index: 0x08C3 */ - 0x5EBB,0x5EBA,0x5F34,0x5F39, - /* Range 0x356E - 0x3576, array index: 0x08C7 */ - 0x60D7,0x60AA,INVALC,0x60A1,0x60A4,INVALC,0x60EE,INVALC, - 0x60E7, - /* Range 0x3622 - 0x367D, array index: 0x08D0 */ - 0x6379,0x6386,0x6393,INVALC,0x6373,0x636A,INVALC,0x636C, - INVALC,0x637F,INVALC,0x63B2,0x63BA,INVALC,INVALC,0x6366, - 0x6374,INVALC,0x655A,INVALC,0x654E,0x654D,0x658D,0x658E, - 0x65AD,INVALC,0x65C7,0x65CA,INVALC,0x65C9,INVALC,0x65E3, - 0x6657,INVALC,0x6663,0x6667,0x671A,0x6719,0x6716,INVALC, - INVALC,0x689E,0x68B6,0x6898,0x6873,INVALC,0x689A,0x688E, - 0x68B7,0x68DB,0x68A5,0x686C,0x68C1,0x6884,INVALC,INVALC, - 0x6895,0x687A,0x6899,INVALC,0x68B8,0x68B9,0x6870,INVALC, - 0x6B35,INVALC,0x6B90,0x6BBB,0x6BED,INVALC,INVALC,INVALC, - 0x6DC1,0x6DC3,0x6DCE,INVALC,INVALC,0x6DAD,0x6E04,INVALC, - 0x6DB9,INVALC,0x6DE7,INVALC,0x6E08,0x6E06,INVALC,0x6E0A, - 0x6DB0,INVALC,0x6DF8,0x6E0C, - /* Range 0x3721 - 0x373D, array index: 0x092C */ - 0x6DB1,INVALC,0x6E02,0x6E07,0x6E09,0x6E01,0x6E17,0x6DFF, - 0x6E12,INVALC,INVALC,0x7103,0x7107,0x7101,0x70F5,0x70F1, - 0x7108,0x70F2,0x710F,INVALC,0x70FE,INVALC,INVALC,INVALC, - 0x731A,0x7310,0x730E,0x7402,0x73F3, - /* Range 0x3744 - 0x374A, array index: 0x0949 */ - 0x751B,0x7523,0x7561,0x7568,INVALC,0x7567,0x75D3, - /* Range 0x3750 - 0x3759, array index: 0x0950 */ - 0x76D5,0x76D7,0x76D6,0x7730,INVALC,0x7726,INVALC,0x7740, - INVALC,0x771E, - /* Range 0x375D - 0x377E, array index: 0x095A */ - 0x7847,INVALC,0x784B,0x7851,0x784F,0x7842,0x7846,INVALC, - 0x796E,0x796C,0x79F2,INVALC,0x79F1,0x79F5,0x79F3,0x79F9, - INVALC,INVALC,INVALC,0x7A9A,0x7A93,0x7A91,0x7AE1,INVALC, - INVALC,0x7B21,0x7B1C,0x7B16,0x7B17,0x7B36,0x7B1F,INVALC, - 0x7C93,0x7C99, - /* Range 0x3839 - 0x3842, array index: 0x097C */ - 0x801D,INVALC,0x8049,0x8045,0x8044,0x7C9B,INVALC,INVALC, - 0x812A,0x812E, - /* Range 0x3845 - 0x3858, array index: 0x0986 */ - 0x8131,INVALC,0x811A,0x8134,0x8117,INVALC,INVALC,INVALC, - 0x831D,0x8371,0x8384,0x8380,0x8372,0x83A1,INVALC,0x8379, - 0x8391,INVALC,0x839F,0x83AD, - /* Range 0x385B - 0x387B, array index: 0x099A */ - 0x8323,INVALC,0x8385,0x839C,0x83B7,0x8658,0x865A,INVALC, - 0x8657,0x86B2,INVALC,0x86AE,INVALC,INVALC,INVALC,0x8845, - 0x889C,0x8894,0x88A3,0x888F,0x88A5,0x88A9,0x88A6,0x888A, - 0x88A0,0x8890,0x8992,0x8991,0x8994,INVALC,0x8A26,0x8A32, - 0x8A28, - /* Range 0x3929 - 0x3941, array index: 0x09BB */ - 0x8A21,0x8C3A,INVALC,0x8C5B,0x8C58,0x8C7C,INVALC,0x8CA6, - 0x8CAE,0x8CAD,0x8D65,INVALC,0x8D7E,INVALC,0x8D7C,0x8D7F, - 0x8D7A,0x8DBD,INVALC,INVALC,0x8DC0,0x8DBB,0x8EAD,0x8EAF, - 0x8ED6, - /* Range 0x394A - 0x3959, array index: 0x09D4 */ - 0x9012,0x900E,0x9025,INVALC,0x9013,0x90EE,INVALC,0x90AB, - 0x90F7,INVALC,0x9159,0x9154,0x91F2,0x91F0,0x91E5,0x91F6, - /* Range 0x3967 - 0x397E, array index: 0x09E4 */ - 0x98E1,0x98E6,INVALC,0x9EC4,0x9ED2,0x4E80,INVALC,0x4E81, - 0x508F,0x5097,0x5088,0x5089,INVALC,INVALC,0x5081,0x5160, - INVALC,INVALC,0x5E42,0x51D3,INVALC,INVALC,0x51D2,0x51D6, - /* Range 0x3A27 - 0x3A3C, array index: 0x09FC */ - 0x53A8,0x53A6,0x53C5,0x5597,0x55DE,INVALC,INVALC,0x5596, - 0x55B4,INVALC,0x5585,INVALC,0x559B,0x55A0,INVALC,0x5559, - INVALC,0x5586,INVALC,INVALC,0x55AF,0x557A, - /* Range 0x3A40 - 0x3A63, array index: 0x0A12 */ - 0x559E,INVALC,0x55A9,0x570F,0x570E,0x581A,INVALC,0x581F, - INVALC,0x583C,0x5818,0x583E,0x5826,INVALC,0x583A,INVALC, - 0x5822,INVALC,0x58FB,0x5963,0x5964,INVALC,0x5AA8,0x5AA3, - 0x5A82,0x5A88,0x5AA1,0x5A85,0x5A98,INVALC,0x5A99,INVALC, - 0x5A89,0x5A81,0x5A96,0x5A80, - /* Range 0x3A75 - 0x3A7E, array index: 0x0A36 */ - 0x5A79,INVALC,0x5A86,0x5AAB,0x5AAA,0x5AA4,0x5A8D,0x5A7E, - INVALC,0x5BD5, - /* Range 0x3B24 - 0x3B2E, array index: 0x0A40 */ - 0x5C1E,0x5C5F,0x5C5E,0x5D44,0x5D3E,INVALC,0x5D48,0x5D1C, - INVALC,0x5D5B,0x5D4D, - /* Range 0x3B33 - 0x3B47, array index: 0x0A4B */ - 0x5D53,0x5D4F,INVALC,0x5D3B,0x5D46,INVALC,INVALC,0x5E46, - 0x5E47,INVALC,0x5E48,0x5EC0,0x5EBD,0x5EBF,INVALC,0x5F11, - INVALC,0x5F3E,0x5F3B,INVALC,0x5F3A, - /* Range 0x3B4D - 0x3B68, array index: 0x0A60 */ - 0x60EA,INVALC,0x6107,0x6122,0x610C,INVALC,INVALC,0x60B3, - 0x60D6,0x60D2,INVALC,0x60E3,0x60E5,0x60E9,INVALC,INVALC, - 0x6111,0x60FD,INVALC,INVALC,0x611E,0x6120,0x6121,0x621E, - INVALC,0x63E2,0x63DE,0x63E6, - /* Range 0x3B6D - 0x3B76, array index: 0x0A7C */ - 0x63F8,INVALC,0x63FE,0x63C1,0x63BF,0x63F7,0x63D1,0x655F, - 0x6560,0x6561, - /* Range 0x3B7C - 0x3B7E, array index: 0x0A86 */ - 0x667D,0x666B,0x667F, - /* Range 0x3C23 - 0x3C2A, array index: 0x0A89 */ - 0x6673,0x6681,0x666D,0x6669,INVALC,INVALC,0x671E,0x68ED, - /* Range 0x3C2F - 0x3C5D, array index: 0x0A91 */ - 0x6903,INVALC,0x68FE,0x68E5,0x691E,0x6902,INVALC,INVALC, - 0x6909,0x68CA,0x6900,INVALC,0x6901,0x6918,0x68E2,0x68CF, - INVALC,0x692E,0x68C5,0x68FF,INVALC,0x691C,0x68C3,INVALC, - 0x6B6F,INVALC,0x6B6E,INVALC,0x6BBE,INVALC,0x6BF4,0x6C2D, - INVALC,0x6DB6,0x6E75,0x6E1E,INVALC,0x6E18,INVALC,0x6E48, - INVALC,0x6E4F,INVALC,0x6E42,0x6E6A,0x6E70,0x6DFE, - /* Range 0x3C60 - 0x3C74, array index: 0x0AC0 */ - 0x6E6D,INVALC,0x6E7B,0x6E7E,0x6E59,INVALC,0x6E57,INVALC, - 0x6E80,0x6E50,INVALC,0x6E29,0x6E76,0x6E2A,0x6E4C,0x712A, - INVALC,0x7135,0x712C,0x7137,0x711D, - /* Range 0x3C77 - 0x3C7D, array index: 0x0AD5 */ - 0x7138,INVALC,0x7134,0x712B,0x7133,0x7127,0x7124, - /* Range 0x3D21 - 0x3D47, array index: 0x0ADC */ - 0x712D,0x7232,0x7283,0x7282,0x7287,0x7306,0x7324,0x7338, - 0x732A,0x732C,0x732B,INVALC,0x732F,0x7328,0x7417,INVALC, - INVALC,0x7419,0x7438,INVALC,0x741F,0x7414,0x743C,0x73F7, - 0x741C,0x7415,0x7418,0x7439,0x74F9,0x7524,INVALC,INVALC, - INVALC,0x756E,0x756D,0x7571,0x758E,INVALC,0x75E5, - /* Range 0x3D4F - 0x3D69, array index: 0x0B03 */ - 0x76D9,INVALC,0x7748,0x7749,0x7743,INVALC,INVALC,0x7742, - 0x77DF,INVALC,0x7863,0x7876,INVALC,0x785F,0x7866,0x7966, - 0x7971,INVALC,INVALC,0x7976,0x7984,0x7975,0x79FF,0x7A07, - INVALC,0x7A0E,0x7A09, - /* Range 0x3D70 - 0x3D7B, array index: 0x0B1E */ - 0x7AE7,0x7AE2,0x7B55,INVALC,INVALC,0x7B43,0x7B57,0x7B6C, - 0x7B42,0x7B53,INVALC,0x7B41, - /* Range 0x3E21 - 0x3E63, array index: 0x0B2A */ - 0x7CA0,0x7CA6,0x7CA4,0x7D74,INVALC,0x7D59,INVALC,0x7D60, - 0x7D57,0x7D6C,0x7D7E,0x7D64,INVALC,0x7D5A,0x7D5D,INVALC, - INVALC,INVALC,0x7D76,0x7D4D,0x7D75,INVALC,0x7FD3,0x7FD6, - INVALC,INVALC,0x8060,0x804E,0x8145,0x813B,INVALC,0x8148, - 0x8142,0x8149,0x8140,0x8114,0x8141,INVALC,0x81EF,0x81F6, - 0x8203,INVALC,0x83ED,INVALC,0x83DA,0x8418,0x83D2,0x8408, - INVALC,0x8400,INVALC,INVALC,INVALC,0x8417,0x8346,0x8414, - 0x83D3,0x8405,0x841F,0x8402,0x8416,0x83CD,0x83E6,INVALC, - 0x865D,0x86D5,0x86E1, - /* Range 0x3E68 - 0x3E6A, array index: 0x0B6D */ - 0x86EE,0x8847,0x8846, - /* Range 0x3E7C - 0x3E7E, array index: 0x0B70 */ - 0x8A35,0x8A38,0x8A42, - /* Range 0x3F21 - 0x3F24, array index: 0x0B73 */ - 0x8A49,0x8A5D,0x8A4B,0x8A3D, - /* Range 0x3F29 - 0x3F59, array index: 0x0B77 */ - 0x8C60,0x8C5E,0x8C7F,0x8C7E,0x8C83,INVALC,0x8CB1,0x8D87, - INVALC,INVALC,0x8D88,0x8D83,INVALC,INVALC,0x8D86,0x8D8B, - 0x8D82,0x8DCA,0x8DD2,INVALC,INVALC,0x8DD4,0x8DC9,0x8EB0, - INVALC,INVALC,INVALC,0x8EF2,0x8EE4,0x8EF3,0x8EEA,INVALC, - 0x8EFD,INVALC,0x8F9D,0x902B,0x902A,INVALC,0x9028,0x9029, - 0x902C,INVALC,INVALC,0x903A,0x9030,0x9037,0x903B,INVALC, - 0x910A, - /* Range 0x3F62 - 0x3F69, array index: 0x0BA8 */ - 0x9218,0x9222,INVALC,0x921B,0x9208,INVALC,0x920E,0x9213, - /* Range 0x3F70 - 0x3F75, array index: 0x0BB0 */ - 0x968C,0x967B,0x967F,0x9681,INVALC,0x9682, - /* Range 0x4036 - 0x4061, array index: 0x0BB6 */ - 0x50CC,0x50BC,INVALC,0x50AA,0x50B9,INVALC,0x50AB,0x50C3, - 0x50CD,0x517E,0x527E,0x5279,INVALC,INVALC,0x52E1,0x52E0, - 0x52E7,0x5380,0x53AB,0x53AA,0x53A9,0x53E0,0x55EA,INVALC, - 0x55D7,INVALC,INVALC,0x55C1,0x5715,INVALC,0x586C,INVALC, - 0x585C,0x5850,0x5861,0x586A,0x5869,0x5856,0x5860,0x5866, - 0x585F,0x5923,0x5966,0x5968, - /* Range 0x4071 - 0x407D, array index: 0x0BE2 */ - 0x5B74,0x5B76,0x5BDC,0x5BD7,0x5BDA,0x5BDB,INVALC,0x5C20, - 0x5D6D,0x5D66,INVALC,0x5D64,0x5D6E, - /* Range 0x4121 - 0x413E, array index: 0x0BEF */ - 0x5D60,0x5F42,0x5F5A,0x5F6E,INVALC,INVALC,0x6130,0x613A, - 0x612A,0x6143,0x6119,0x6131,INVALC,0x613D,INVALC,INVALC, - INVALC,0x6408,0x6432,0x6438,INVALC,0x6431,INVALC,0x6419, - INVALC,0x6411,INVALC,INVALC,0x6429,0x641D, - /* Range 0x414D - 0x4151, array index: 0x0C0D */ - 0x6570,0x656D,INVALC,0x65E4,0x6693, - /* Range 0x4172 - 0x417E, array index: 0x0C12 */ - 0x6985,0x694D,0x6950,0x6947,0x6967,0x6936,0x6964,0x6961, - INVALC,0x697D,0x6B44,0x6B40,0x6B71, - /* Range 0x4226 - 0x4233, array index: 0x0C1F */ - 0x6BC1,INVALC,0x6BFA,0x6C31,0x6C32,INVALC,INVALC,0x6EB8, - 0x6EA8,INVALC,0x6E91,0x6EBB,INVALC,0x6E9A, - /* Range 0x4239 - 0x4249, array index: 0x0C2D */ - 0x6EB5,0x6E6C,0x6EE8,INVALC,0x6EDD,0x6EDA,0x6EE6,0x6EAC, - INVALC,INVALC,INVALC,0x6ED9,0x6EE3,0x6EE9,0x6EDB,INVALC, - 0x716F, - /* Range 0x424E - 0x427E, array index: 0x0C3E */ - 0x714A,0x716B,INVALC,0x714F,0x7157,0x7174,INVALC,INVALC, - INVALC,0x7145,0x7151,0x716D,INVALC,0x7251,0x7250,0x724E, - INVALC,0x7341,INVALC,0x732E,0x7346,INVALC,0x7427,INVALC, - 0x7448,0x7453,0x743D,INVALC,0x745D,0x7456,INVALC,0x741E, - 0x7447,0x7443,0x7458,0x7449,INVALC,0x744C,0x7445,0x743E, - INVALC,0x7501,0x751E,INVALC,INVALC,0x757A,0x75EE,0x7602, - 0x7697, - /* Range 0x4325 - 0x4339, array index: 0x0C6F */ - 0x775D,0x7764,0x7753,0x7758,0x7882,0x7890,0x788A,INVALC, - 0x787A,0x787D,INVALC,0x788B,0x7878,INVALC,INVALC,0x788D, - 0x7888,0x7892,0x7881,0x797E,0x7983, - /* Range 0x4346 - 0x4355, array index: 0x0C84 */ - 0x7AA1,0x7AA4,INVALC,0x7AE9,0x7AEA,INVALC,0x7B62,0x7B6B, - INVALC,0x7B5E,INVALC,0x7B79,INVALC,INVALC,0x7B6F,0x7B68, - /* Range 0x4360 - 0x436A, array index: 0x0C94 */ - 0x7D8A,INVALC,0x7D8B,0x7D99,0x7D95,INVALC,0x7D87,0x7D78, - 0x7D97,0x7D89,0x7D98, - /* Range 0x4372 - 0x4377, array index: 0x0C9F */ - 0x7FDD,0x8057,INVALC,0x8163,0x816A,0x816C, - /* Range 0x4422 - 0x444F, array index: 0x0CA5 */ - 0x817D,0x816D,INVALC,INVALC,0x8241,0x844F,0x8484,INVALC, - 0x847F,INVALC,0x8448,0x842A,0x847B,0x8472,0x8464,0x842E, - 0x845C,0x8453,INVALC,0x8441,0x84C8,INVALC,0x8462,0x8480, - 0x843E,0x8483,0x8471,INVALC,0x844A,0x8455,0x8458,INVALC, - INVALC,INVALC,0x86FC,0x86FD,0x8715,INVALC,0x8716,0x86FF, - INVALC,INVALC,INVALC,0x8858,0x88CF,0x88E0, - /* Range 0x4454 - 0x446B, array index: 0x0CD3 */ - 0x89E7,0x8A6A,0x8A80,INVALC,0x8A6F,0x8A65,INVALC,0x8A78, - 0x8A7D,0x8A88,INVALC,INVALC,0x8A64,0x8A7E,INVALC,0x8A67, - 0x8C63,0x8C88,INVALC,0x8CCD,INVALC,0x8CC9,INVALC,0x8DED, - /* Range 0x4476 - 0x447E, array index: 0x0CEB */ - 0x8F04,0x8F9E,0x8FA0,0x9043,0x9046,0x9048,0x9045,0x9040, - 0x904C, - /* Range 0x4523 - 0x453C, array index: 0x0CF4 */ - 0x910C,0x9113,0x9115,INVALC,0x916B,0x9167,0x925D,0x9255, - 0x9235,INVALC,0x9259,0x922F,0x923C,0x928F,0x925C,0x926A, - 0x9262,0x925F,0x926B,0x926E,0x923B,0x9244,0x9241,0x959A, - INVALC,0x9599, - /* Range 0x4557 - 0x455C, array index: 0x0D0E */ - 0x98F7,0x98FF,0x98F5,INVALC,0x98EC,0x98F1, - /* Range 0x455F - 0x4576, array index: 0x0D14 */ - 0x999A,INVALC,0x9AE2,0x9B3D,0x9B5D,0x9CE8,INVALC,0x9CEB, - 0x9CEF,0x9CEE,0x9E81,0x9F14,0x50D0,0x50D9,0x50DC,0x50D8, - INVALC,0x50E1,0x50EB,INVALC,INVALC,0x50F4,0x50E2,0x50DE, - /* Range 0x4625 - 0x4664, array index: 0x0D2C */ - 0x53AE,0x53B0,INVALC,0x55FB,0x5603,0x560B,INVALC,0x5607, - INVALC,0x55F8,INVALC,0x5628,0x561E,INVALC,0x5618,0x5611, - 0x5651,0x5605,0x5717,0x5892,INVALC,0x588C,INVALC,0x5878, - 0x5884,0x5873,0x58AD,0x5897,0x5895,0x5877,0x5872,0x5896, - 0x588D,0x5910,INVALC,0x596C,INVALC,0x5AE7,INVALC,0x5AE4, - INVALC,INVALC,0x5AEF,0x5626,INVALC,INVALC,0x5AF0,0x5D7B, - INVALC,0x5D83,INVALC,INVALC,0x5D8B,0x5D8C,INVALC,0x5D78, - 0x5E52,INVALC,INVALC,0x5ED0,0x5ECF,INVALC,0x5FB3,0x5FB4, - /* Range 0x4668 - 0x467B, array index: 0x0D6C */ - 0x617B,INVALC,0x616F,0x6181,0x613C,0x6142,0x6138,0x6133, - INVALC,0x6160,0x6169,0x617D,0x6186,0x622C,0x6228,INVALC, - 0x644C,INVALC,0x6457,0x647C, - /* Range 0x4721 - 0x472A, array index: 0x0D80 */ - 0x6462,0x6471,0x646A,0x6456,0x643B,0x6481,INVALC,0x644F, - 0x647E,0x6464, - /* Range 0x4733 - 0x474E, array index: 0x0D8A */ - 0x66A5,0x669A,0x669C,INVALC,0x66A6,INVALC,0x66A4,0x698F, - 0x69C5,0x69C8,0x6992,0x69B2,INVALC,INVALC,INVALC,0x69E3, - 0x69C0,0x69D6,0x69D1,0x699F,0x69A2,0x69D2,INVALC,INVALC, - INVALC,0x69E1,0x69D5,0x699D, - /* Range 0x4753 - 0x4772, array index: 0x0DA6 */ - 0x6B74,0x6BA1,INVALC,0x6EF0,0x6EF3,INVALC,INVALC,0x6F1B, - 0x6F0C,0x6F1D,0x6F34,0x6F28,0x6F17,INVALC,0x6F44,0x6F42, - 0x6F04,0x6F11,0x6EFA,0x6F4A,0x7191,0x718E,INVALC,0x718B, - 0x718D,0x717F,0x718C,0x717E,0x717C,0x7183,INVALC,0x7188, - /* Range 0x4775 - 0x477E, array index: 0x0DC6 */ - 0x7294,INVALC,0x7355,0x7353,0x734F,0x7354,0x746C,0x7465, - 0x7466,0x7461, - /* Range 0x4821 - 0x482B, array index: 0x0DD0 */ - 0x746B,0x7468,0x7476,INVALC,0x7460,INVALC,0x7474,0x7506, - 0x760E,INVALC,0x7607, - /* Range 0x4830 - 0x4840, array index: 0x0DDB */ - 0x76B7,0x76E2,INVALC,0x7774,0x7777,0x7776,0x7775,INVALC, - 0x7778,0x7771,INVALC,0x777A,0x715B,0x777B,0x78A6,0x78AE, - 0x78B8, - /* Range 0x4844 - 0x4848, array index: 0x0DEC */ - 0x78B1,0x78AF,INVALC,0x7989,0x7987, - /* Range 0x4852 - 0x4862, array index: 0x0DF1 */ - 0x7A32,INVALC,0x7AEC,0x7AF0,0x7B81,0x7B9E,0x7B83,INVALC, - 0x7B92,INVALC,0x7BA3,0x7B9F,0x7B93,INVALC,0x7B86,0x7CB8, - 0x7CB7, - /* Range 0x486D - 0x4879, array index: 0x0E02 */ - 0x7DA8,0x7DAB,INVALC,0x7DB3,0x7DCD,INVALC,0x7DCF,0x7DA4, - INVALC,INVALC,0x7F41,0x7F6F,0x7F71, - /* Range 0x4922 - 0x492E, array index: 0x0E0F */ - 0x8023,0x805B,INVALC,0x8061,0x805F,0x8181,INVALC,INVALC, - 0x8184,0x8213,INVALC,0x824A,0x824C, - /* Range 0x4932 - 0x4959, array index: 0x0E1C */ - 0x84BD,0x8495,INVALC,0x8492,0x84C3,INVALC,0x8496,0x84A5, - 0x84B5,0x84B3,0x84A3,0x84E4,0x84D8,0x84D5,INVALC,0x84B7, - 0x84AD,0x84DA,0x8493,0x8736,INVALC,INVALC,INVALC,0x873D, - 0x872B,0x8747,0x8739,INVALC,0x8745,0x871D,INVALC,0x88FF, - 0x88EA,INVALC,0x88F5,INVALC,0x8900,0x88ED,0x8903,0x88E9, - /* Range 0x495C - 0x4968, array index: 0x0E44 */ - 0x89EA,INVALC,0x8A9B,0x8A8E,0x8AA2,INVALC,0x8A9C,0x8A94, - 0x8A90,0x8AA9,0x8AAC,INVALC,0x8A9F, - /* Range 0x4970 - 0x497D, array index: 0x0E51 */ - 0x8CD0,0x8CD6,0x8CD4,0x8D98,0x8D9A,0x8D97,INVALC,INVALC, - INVALC,0x8E0B,0x8E08,0x8E01,0x8EB4,0x8EB3, - /* Range 0x4A26 - 0x4A39, array index: 0x0E5F */ - 0x9061,0x905F,INVALC,INVALC,0x9125,0x917B,0x9176,0x917C, - INVALC,0x9289,0x92F6,0x92B1,0x92AD,0x9292,0x9281,0x9284, - INVALC,0x92AE,0x9290,0x929E, - /* Range 0x4A44 - 0x4A49, array index: 0x0E73 */ - 0x96A0,0x969D,0x969F,0x96D0,INVALC,0x96D1, - /* Range 0x4A52 - 0x4A56, array index: 0x0E79 */ - 0x9819,INVALC,0x9814,0x9815,0x981A, - /* Range 0x4A5D - 0x4A66, array index: 0x0E7E */ - 0x98F8,0x9901,INVALC,0x99BE,0x99BC,0x99B7,0x99B6,0x99C0, - INVALC,0x99B8, - /* Range 0x4A6C - 0x4A75, array index: 0x0E88 */ - 0x99BF,INVALC,0x9ADA,0x9AE4,0x9AE9,0x9AE8,0x9AEA,0x9AE5, - INVALC,0x9B26, - /* Range 0x4B29 - 0x4B5F, array index: 0x0E92 */ - 0x50F7,INVALC,0x50FC,0x510D,0x5101,0x51DA,0x51D9,0x51DB, - 0x5286,0x528E,0x52EE,0x5333,0x53B1,INVALC,0x5647,0x562D, - 0x5654,INVALC,0x564B,0x5652,0x5631,0x5644,0x5656,0x5650, - 0x562B,INVALC,0x564D,0x5637,0x564F,0x58A2,0x58B7,INVALC, - 0x58B2,INVALC,0x58AA,0x58B5,0x58B0,INVALC,0x58B4,0x58A4, - 0x58A7,INVALC,0x5926,0x5AFE,INVALC,0x5B04,INVALC,0x5AFC, - INVALC,0x5B06,0x5B0A,0x5AFA,0x5B0D,0x5B00,0x5B0E, - /* Range 0x4B63 - 0x4B6D, array index: 0x0EC9 */ - 0x5D91,INVALC,0x5D8F,0x5D90,0x5D98,0x5DA4,0x5D9B,0x5DA3, - 0x5D96,0x5DE4,0x5E5A, - /* Range 0x4B70 - 0x4B7E, array index: 0x0ED4 */ - 0x5E5E,INVALC,0x5FB8,0x6157,0x615C,0x61A6,0x6195,0x6188, - INVALC,0x61A3,0x618F,INVALC,0x6164,INVALC,0x6159, - /* Range 0x4C21 - 0x4C4A, array index: 0x0EE3 */ - 0x6178,INVALC,0x6185,0x6187,0x619E,INVALC,INVALC,0x6198, - 0x619C,INVALC,INVALC,0x622F,0x6480,0x649B,0x648E,0x648D, - 0x6494,0x64C6,INVALC,0x64A8,0x6483,INVALC,0x64B9,0x6486, - 0x64B4,0x64AF,0x6491,INVALC,0x64AA,0x64A1,0x64A7,0x66B6, - 0x66B3,INVALC,0x66BC,0x66AC,INVALC,0x66AD,0x6A0E,INVALC, - 0x6A1C,0x6A1A, - /* Range 0x4C4D - 0x4C6C, array index: 0x0F0D */ - 0x6A0B,INVALC,0x69EF,0x6A0C,0x69F0,0x6A22,INVALC,0x69D8, - INVALC,0x6A12,0x69FA,INVALC,0x6A2A,INVALC,0x6A10,INVALC, - INVALC,0x6A29,0x69F9,0x69EA,0x6A2C,0x6A24,INVALC,0x69E9, - 0x6B52,0x6B4F,0x6B53,INVALC,INVALC,0x6F10,0x6F65,0x6F75, - /* Range 0x4C71 - 0x4C7E, array index: 0x0F2D */ - 0x6FD0,INVALC,0x6F5C,0x6F3D,0x6F71,INVALC,0x6F91,0x6F0B, - 0x6F79,0x6F81,0x6F8F,INVALC,0x6F59,0x6F74, - /* Range 0x4D24 - 0x4D31, array index: 0x0F3B */ - 0x71A3,0x71AD,INVALC,INVALC,0x71AB,0x71A6,0x71A2,INVALC, - 0x52F2,0x7257,0x7255,0x7299,0x734B,0x747A, - /* Range 0x4D35 - 0x4D3D, array index: 0x0F49 */ - 0x748C,0x7484,INVALC,INVALC,0x7482,0x7493,0x747B,INVALC, - 0x7509, - /* Range 0x4D46 - 0x4D5D, array index: 0x0F52 */ - 0x7790,INVALC,0x78C6,0x78D3,0x78C0,0x78D2,0x78C7,0x78C2, - INVALC,0x799F,0x799D,0x799E,INVALC,0x7A41,INVALC,0x7A38, - 0x7A3A,0x7A42,INVALC,INVALC,0x7A3E,0x7AB0,0x7BAE,0x7BB3, - /* Range 0x4D6D - 0x4D7E, array index: 0x0F6A */ - 0x7CC4,0x7CCD,0x7CC2,0x7CC6,0x7CC3,0x7CC9,0x7CC7,INVALC, - 0x7DF8,INVALC,0x7DED,0x7DE2,INVALC,INVALC,INVALC,0x7DDC, - 0x7E02,0x7E01, - /* Range 0x4E24 - 0x4E3D, array index: 0x0F7C */ - 0x7DE4,0x7DFE,INVALC,0x7E00,0x7DFC,0x7DFD,INVALC,0x7DF5, - 0x7DFF,INVALC,0x7DEB,0x7DE5,0x7F78,0x7FAE,0x7FE7,INVALC, - 0x8065,0x806A,0x8066,0x8068,0x806B,0x8194,0x81A1,0x8192, - 0x8196,0x8193, - /* Range 0x4E4B - 0x4E4F, array index: 0x0F96 */ - 0x851B,0x8503,0x8533,0x8534,0x84ED, - /* Range 0x4E5D - 0x4E76, array index: 0x0F9B */ - 0x8771,INVALC,0x885C,0x88E6,0x890F,0x891B,INVALC,0x89A9, - 0x89A5,0x89EE,0x8AB1,INVALC,0x8ACC,0x8ACE,INVALC,0x8AB7, - INVALC,0x8AB5,0x8AE9,0x8AB4,INVALC,0x8AB3,0x8AC1,0x8AAF, - 0x8ACA,0x8AD0, - /* Range 0x4F22 - 0x4F26, array index: 0x0FB5 */ - 0x8CEB,0x8DA4,INVALC,0x8DA2,0x8D9D, - /* Range 0x4F2B - 0x4F56, array index: 0x0FBA */ - 0x8E2A,0x8E28,INVALC,INVALC,0x8EB8,0x8EB6,0x8EB9,0x8EB7, - 0x8F22,0x8F2B,0x8F27,0x8F19,0x8FA4,INVALC,0x8FB3,INVALC, - 0x9071,0x906A,INVALC,INVALC,0x9188,0x918C,0x92BF,0x92B8, - 0x92BE,0x92DC,0x92E5,INVALC,INVALC,0x92D4,0x92D6,INVALC, - 0x92DA,0x92ED,0x92F3,0x92DB,INVALC,0x92B9,0x92E2,0x92EB, - 0x95AF,INVALC,0x95B2,0x95B3, - /* Range 0x4F60 - 0x4F7E, array index: 0x0FE6 */ - 0x970A,INVALC,0x9787,0x9789,0x978C,0x97EF,0x982A,0x9822, - INVALC,0x981F,INVALC,0x9919,INVALC,0x99CA,0x99DA,INVALC, - INVALC,INVALC,0x99DE,0x99C8,0x99E0,INVALC,0x9AB6,0x9AB5, - INVALC,0x9AF4,INVALC,0x9B6B,0x9B69,0x9B72,0x9B63, - /* Range 0x502A - 0x5038, array index: 0x1005 */ - 0x9CFE,0x9D02,0x9E84,INVALC,0x9EAB,0x9EAA,0x511D,0x5116, - INVALC,0x512B,0x511E,0x511B,0x5290,0x5294,0x5314, - /* Range 0x5048 - 0x5070, array index: 0x1014 */ - 0x58C3,0x58CA,0x58BB,0x58C0,0x58C4,0x5901,0x5B1F,0x5B18, - 0x5B11,0x5B15,INVALC,0x5B12,0x5B1C,INVALC,0x5B22,0x5B79, - 0x5DA6,INVALC,0x5DB3,0x5DAB,0x5EEA,INVALC,0x5F5B,INVALC, - INVALC,0x61B7,0x61CE,0x61B9,0x61BD,0x61CF,0x61C0,0x6199, - 0x6197,INVALC,0x61BB,0x61D0,0x61C4,0x6231,INVALC,0x64D3, - 0x64C0, - /* Range 0x5075 - 0x507E, array index: 0x103D */ - 0x64DC,0x64D1,0x64C8,INVALC,0x64D5,0x66C3,INVALC,INVALC, - 0x66BF,0x66C5, - /* Range 0x5122 - 0x5132, array index: 0x1047 */ - 0x66CD,0x66C1,0x6706,INVALC,0x6724,0x6A63,0x6A42,0x6A52, - INVALC,0x6A43,0x6A33,INVALC,0x6A6C,0x6A57,INVALC,0x6A4C, - 0x6A6E, - /* Range 0x5138 - 0x5146, array index: 0x1058 */ - 0x6A37,INVALC,0x6A71,0x6A4A,0x6A36,INVALC,0x6A53,INVALC, - 0x6A45,0x6A70,INVALC,INVALC,0x6A5C,0x6B58,0x6B57, - /* Range 0x5154 - 0x5176, array index: 0x1067 */ - 0x6FB5,0x6FD3,0x6F9F,INVALC,0x6FB7,0x6FF5,0x71B7,INVALC, - 0x71BB,INVALC,0x71D1,INVALC,0x71BA,INVALC,0x71B6,0x71CC, - INVALC,INVALC,0x71D3,0x749B,INVALC,INVALC,0x7496,0x74A2, - 0x749D,0x750A,0x750E,INVALC,0x7581,0x762C,0x7637,0x7636, - 0x763B,INVALC,0x76A1, - /* Range 0x5224 - 0x5234, array index: 0x108A */ - 0x78DC,INVALC,0x79A5,0x79A9,0x9834,0x7A53,0x7A45,INVALC, - 0x7A4F,INVALC,0x7ABD,0x7ABB,0x7AF1,INVALC,INVALC,0x7BEC, - 0x7BED, - /* Range 0x5252 - 0x526B, array index: 0x109B */ - 0x8542,INVALC,0x855C,0x8570,0x855F,INVALC,0x855A,0x854B, - 0x853F,0x878A,INVALC,0x878B,0x87A1,0x878E,INVALC,INVALC, - 0x8799,0x885E,0x885F,0x8924,0x89A7,0x8AEA,0x8AFD,0x8AF9, - 0x8AE3,0x8AE5, - /* Range 0x5321 - 0x5344, array index: 0x10B5 */ - 0x8F31,0x8F30,INVALC,0x8F2D,0x8F3C,0x8FA7,0x8FA5,INVALC, - INVALC,INVALC,0x9137,0x9195,0x918E,INVALC,0x9196,INVALC, - 0x9345,0x930A,INVALC,INVALC,0x92FD,0x9317,0x931C,0x9307, - 0x9331,0x9332,0x932C,0x9330,0x9303,0x9305,INVALC,0x95C2, - INVALC,0x95B8,INVALC,0x95C1, - /* Range 0x5358 - 0x536C, array index: 0x10D9 */ - 0x9836,0x9831,0x9833,0x983C,0x982E,0x983A,INVALC,0x983D, - INVALC,0x98B5,0x9922,0x9923,0x9920,0x991C,0x991D,INVALC, - 0x99A0,INVALC,0x99EF,0x99E8,0x99EB, - /* Range 0x5374 - 0x537D, array index: 0x10EE */ - 0x9AF8,0x9AF5,INVALC,INVALC,0x9B83,0x9B94,0x9B84,INVALC, - 0x9B8B,0x9B8F, - /* Range 0x5429 - 0x542D, array index: 0x10F8 */ - 0x9D24,0x9D0F,INVALC,0x9D13,0x9D0A, - /* Range 0x5432 - 0x5461, array index: 0x10FD */ - 0x9D2A,0x9D1A,INVALC,0x9D27,0x9D16,0x9D21,INVALC,0x9E85, - 0x9EAC,0x9EC6,0x9EC5,0x9ED7,0x9F53,INVALC,0x5128,0x5127, - 0x51DF,INVALC,0x5335,0x53B3,INVALC,0x568A,0x567D,0x5689, - INVALC,0x58CD,0x58D0,INVALC,0x5B2B,0x5B33,0x5B29,0x5B35, - 0x5B31,0x5B37,0x5C36,0x5DBE,INVALC,0x5DB9,INVALC,0x5DBB, - INVALC,0x61E2,0x61DB,0x61DD,0x61DC,0x61DA,INVALC,0x61D9, - /* Range 0x5469 - 0x547C, array index: 0x112D */ - 0x64EE,INVALC,0x65B5,0x66D4,0x66D5,INVALC,0x66D0,0x66D1, - 0x66CE,0x66D7,INVALC,INVALC,0x6A7D,0x6A8A,INVALC,0x6AA7, - INVALC,0x6A99,0x6A82,0x6A88, - /* Range 0x552D - 0x5539, array index: 0x1141 */ - 0x6C0A,INVALC,0x6FD7,0x6FD6,0x6FE5,INVALC,INVALC,INVALC, - 0x6FD9,0x6FDA,0x6FEA,INVALC,0x6FF6, - /* Range 0x553E - 0x5543, array index: 0x114E */ - 0x71E9,INVALC,0x71EB,0x71EF,0x71F3,0x71EA, - /* Range 0x5552 - 0x5575, array index: 0x1154 */ - 0x7583,0x7645,0x764E,0x7644,0x76A3,0x76A5,0x77A6,0x77A4, - INVALC,0x77A9,0x77AF,INVALC,INVALC,INVALC,0x78F0,0x78F8, - 0x78F1,INVALC,0x7A49,INVALC,INVALC,INVALC,0x7AC2,0x7AF2, - 0x7AF3,0x7BFA,INVALC,0x7BF6,0x7BFC,0x7C18,0x7C08,0x7C12, - INVALC,INVALC,0x7CDB,0x7CDA, - /* Range 0x5621 - 0x5624, array index: 0x1178 */ - 0x802B,0x8074,0x81B8,0x81C8, - /* Range 0x5628 - 0x562D, array index: 0x117C */ - 0x8592,0x8593,INVALC,0x857F,0x85AB,0x8597, - /* Range 0x5639 - 0x5642, array index: 0x1182 */ - 0x87C1,0x87B1,0x87C7,INVALC,0x8940,INVALC,0x893F,0x8939, - INVALC,0x8943, - /* Range 0x5646 - 0x564A, array index: 0x118C */ - 0x89AB,INVALC,0x8B1F,0x8B09,0x8B0C, - /* Range 0x5651 - 0x5675, array index: 0x1191 */ - 0x8CF6,0x8CF7,INVALC,0x8E46,0x8E4F,INVALC,INVALC,INVALC, - 0x8F3D,0x8F41,0x9366,0x9378,0x935D,0x9369,0x9374,0x937D, - 0x936E,0x9372,0x9373,0x9362,0x9348,0x9353,0x935F,0x9368, - INVALC,0x937F,0x936B,INVALC,0x95C4,INVALC,0x96AF,0x96AD, - 0x96B2,INVALC,INVALC,0x971A,0x971B, - /* Range 0x573A - 0x5745, array index: 0x11B6 */ - 0x9ABD,0x9B00,0x9B02,INVALC,0x9B34,0x9B49,0x9B9F,INVALC, - 0x9BA3,0x9BCD,0x9B99,0x9B9D, - /* Range 0x5755 - 0x5765, array index: 0x11C2 */ - 0x9F8E,INVALC,0x569F,0x569B,0x569E,0x5696,0x5694,0x56A0, - INVALC,0x5B3B,INVALC,INVALC,0x5B3A,0x5DC1,0x5F4D,0x5F5D, - 0x61F3, - /* Range 0x576A - 0x577E, array index: 0x11D3 */ - 0x64F6,0x64E5,0x64EA,0x64E7,0x6505,INVALC,0x64F9,INVALC, - INVALC,INVALC,0x6AAB,0x6AED,0x6AB2,0x6AB0,0x6AB5,0x6ABE, - 0x6AC1,0x6AC8,INVALC,0x6AC0,0x6ABC, - /* Range 0x5821 - 0x5845, array index: 0x11E8 */ - 0x6AB1,0x6AC4,0x6ABF,INVALC,INVALC,0x7008,0x7003,0x6FFD, - 0x7010,0x7002,0x7013,INVALC,0x71FA,0x7200,0x74B9,0x74BC, - INVALC,0x765B,0x7651,0x764F,0x76EB,0x77B8,INVALC,0x77B9, - 0x77C1,0x77C0,0x77BE,0x790B,INVALC,0x7907,0x790A,0x7908, - INVALC,0x790D,0x7906,0x7915,0x79AF, - /* Range 0x5854 - 0x585D, array index: 0x120D */ - 0x7CE6,0x7CE3,INVALC,INVALC,0x7E5D,0x7E4F,0x7E66,0x7E5B, - 0x7F47,0x7FB4, - /* Range 0x586B - 0x587E, array index: 0x1217 */ - 0x85CC,0x85B2,INVALC,0x85BB,0x85C1,INVALC,INVALC,INVALC, - 0x87E9,0x87EE,0x87F0,0x87D6,0x880E,0x87DA,0x8948,0x894A, - 0x894E,0x894D,0x89B1,0x89B0, - /* Range 0x5931 - 0x5951, array index: 0x122B */ - 0x8DA9,0x8E58,INVALC,INVALC,0x8EBF,0x8EC1,0x8F4A,0x8FAC, - INVALC,0x9089,0x913D,0x913C,0x91A9,0x93A0,INVALC,0x9390, - INVALC,0x9393,0x938B,0x93AD,0x93BB,0x93B8,INVALC,INVALC, - 0x939C,0x95D8,0x95D7,INVALC,INVALC,INVALC,0x975D,0x97A9, - 0x97DA, - /* Range 0x5958 - 0x595C, array index: 0x124C */ - 0x9855,0x984B,INVALC,0x983F,0x98B9, - /* Range 0x5961 - 0x597E, array index: 0x1251 */ - 0x9938,0x9936,0x9940,INVALC,0x993B,0x9939,0x99A4,INVALC, - INVALC,0x9A08,0x9A0C,INVALC,0x9A10,INVALC,0x9B07,INVALC, - 0x9BD2,INVALC,0x9BC2,0x9BBB,0x9BCC,0x9BCB,INVALC,INVALC, - 0x9D4D,0x9D63,0x9D4E,INVALC,0x9D50,0x9D55, - /* Range 0x5A22 - 0x5A3C, array index: 0x126F */ - 0x9D5E,INVALC,0x9E90,0x9EB2,0x9EB1,INVALC,0x9ECA,0x9F02, - 0x9F27,0x9F26,INVALC,0x56AF,0x58E0,0x58DC,INVALC,0x5B39, - INVALC,INVALC,0x5B7C,0x5BF3,INVALC,INVALC,0x5C6B,0x5DC4, - 0x650B,0x6508,0x650A, - /* Range 0x5A42 - 0x5A48, array index: 0x128A */ - 0x66E1,0x66DF,0x6ACE,0x6AD4,0x6AE3,0x6AD7,0x6AE2, - /* Range 0x5A4D - 0x5A67, array index: 0x1291 */ - 0x6AD8,0x6AD5,0x6AD2,INVALC,INVALC,0x701E,0x702C,0x7025, - 0x6FF3,0x7204,0x7208,0x7215,INVALC,0x74C4,0x74C9,0x74C7, - 0x74C8,0x76A9,0x77C6,0x77C5,0x7918,0x791A,0x7920,INVALC, - 0x7A66,0x7A64,0x7A6A, - /* Range 0x5A74 - 0x5A7E, array index: 0x12AC */ - 0x7E6E,0x7E71,INVALC,0x81D4,0x81D6,0x821A,0x8262,0x8265, - 0x8276,0x85DB,0x85D6, - /* Range 0x5B25 - 0x5B2C, array index: 0x12B7 */ - 0x85F4,INVALC,0x87FD,0x87D5,0x8807,INVALC,0x880F,0x87F8, - /* Range 0x5B31 - 0x5B50, array index: 0x12BF */ - 0x89B5,0x89F5,INVALC,0x8B3F,0x8B43,0x8B4C,INVALC,0x8D0B, - 0x8E6B,0x8E68,0x8E70,0x8E75,0x8E77,INVALC,0x8EC3,INVALC, - 0x93E9,0x93EA,0x93CB,0x93C5,0x93C6,INVALC,0x93ED,0x93D3, - INVALC,0x93E5,INVALC,INVALC,0x93DB,0x93EB,0x93E0,0x93C1, - /* Range 0x5B5D - 0x5B61, array index: 0x12DF */ - 0x97B2,0x97B4,0x97B1,0x97B5,0x97F2, - /* Range 0x5B69 - 0x5B7E, array index: 0x12E4 */ - 0x9944,INVALC,0x9A26,0x9A1F,0x9A18,0x9A21,0x9A17,INVALC, - 0x9B09,INVALC,INVALC,0x9BC5,0x9BDF,INVALC,0x9BE3,INVALC, - 0x9BE9,0x9BEE,INVALC,INVALC,0x9D66,0x9D7A, - /* Range 0x5C22 - 0x5C43, array index: 0x12FA */ - 0x9D6E,0x9D91,0x9D83,0x9D76,0x9D7E,0x9D6D,INVALC,0x9E95, - 0x9EE3,INVALC,INVALC,0x9F03,0x9F04,INVALC,0x9F17,INVALC, - 0x5136,INVALC,0x5336,INVALC,0x5B42,INVALC,INVALC,0x5B44, - 0x5B46,0x5B7E,0x5DCA,0x5DC8,0x5DCC,0x5EF0,INVALC,0x6585, - 0x66E5,0x66E7, - /* Range 0x5C53 - 0x5C66, array index: 0x131C */ - 0x7216,INVALC,0x7212,0x720F,0x7217,0x7211,0x720B,INVALC, - INVALC,0x74CD,0x74D0,0x74CC,0x74CE,0x74D1,INVALC,0x7589, - INVALC,0x7A6F,0x7C4B,0x7C44, - /* Range 0x5C6C - 0x5C7E, array index: 0x1330 */ - 0x7E7F,0x8B71,INVALC,0x802F,0x807A,0x807B,0x807C,INVALC, - INVALC,INVALC,0x85FC,0x8610,0x8602,INVALC,INVALC,0x85EE, - 0x8603,INVALC,0x860D, - /* Range 0x5D21 - 0x5D49, array index: 0x1343 */ - 0x8613,0x8608,0x860F,0x8818,0x8812,INVALC,INVALC,0x8967, - 0x8965,0x89BB,0x8B69,0x8B62,INVALC,0x8B6E,INVALC,0x8B61, - INVALC,0x8B64,0x8B4D,0x8C51,INVALC,INVALC,0x8E83,0x8EC6, - INVALC,0x941F,INVALC,0x9404,0x9417,0x9408,0x9405,INVALC, - 0x93F3,0x941E,0x9402,0x941A,0x941B,0x9427,0x941C,INVALC, - 0x96B5, - /* Range 0x5D4C - 0x5D53, array index: 0x136C */ - 0x9733,INVALC,0x9734,0x9731,0x97B8,0x97BA,INVALC,0x97FC, - /* Range 0x5D5E - 0x5D7A, array index: 0x1374 */ - 0x9AC9,INVALC,0x9AC8,0x9AC4,0x9B2A,0x9B38,0x9B50,INVALC, - 0x9C0A,0x9BFB,0x9C04,0x9BFC,0x9BFE,INVALC,INVALC,INVALC, - 0x9C02,0x9BF6,0x9C1B,0x9BF9,0x9C15,0x9C10,0x9BFF,0x9C00, - 0x9C0C,INVALC,INVALC,0x9D95,0x9DA5, - /* Range 0x5E21 - 0x5E2A, array index: 0x1391 */ - 0x9E98,0x9EC1,INVALC,0x9F5A,0x5164,0x56BB,INVALC,0x58E6, - 0x5B49,0x5BF7, - /* Range 0x5E31 - 0x5E6A, array index: 0x139B */ - 0x6511,INVALC,0x6AFF,0x6AFE,0x6AFD,INVALC,0x6B01,INVALC, - INVALC,0x704B,0x704D,0x7047,0x74D3,0x7668,0x7667,INVALC, - INVALC,0x77D1,0x7930,0x7932,0x792E,INVALC,0x9F9D,0x7AC9, - 0x7AC8,INVALC,0x7C56,0x7C51,INVALC,INVALC,INVALC,0x7E85, - 0x7E89,0x7E8E,0x7E84,INVALC,0x826A,0x862B,0x862F,0x8628, - INVALC,0x8616,0x8615,0x861D,0x881A,INVALC,INVALC,INVALC, - 0x89BC,0x8B75,0x8B7C,INVALC,0x8D11,0x8D12,0x8F5C,0x91BB, - INVALC,0x93F4, - /* Range 0x5E70 - 0x5E7E, array index: 0x13D5 */ - 0x96E4,0x9737,0x9736,0x9767,0x97BE,0x97BD,0x97E2,0x9868, - 0x9866,0x98C8,0x98CA,0x98C7,0x98DC,INVALC,0x994F, - /* Range 0x5F21 - 0x5F2C, array index: 0x13E4 */ - 0x99A9,0x9A3C,INVALC,0x9A3B,0x9ACE,INVALC,0x9B14,0x9B53, - INVALC,0x9C2E,INVALC,0x9C1F, - /* Range 0x5F31 - 0x5F37, array index: 0x13F0 */ - 0x9DB0,0x9DBD,INVALC,INVALC,0x9DAE,0x9DC4,0x9E7B, - /* Range 0x5F3C - 0x5F5B, array index: 0x13F7 */ - 0x9F05,INVALC,0x9F69,0x9FA1,0x56C7,0x571D,0x5B4A,0x5DD3, - INVALC,0x5F72,0x6202,INVALC,0x6235,0x6527,0x651E,0x651F, - INVALC,INVALC,0x6B07,0x6B06,INVALC,INVALC,0x7054,0x721C, - 0x7220,0x7AF8,INVALC,0x7C5D,0x7C58,INVALC,0x7E92,0x7F4E, - /* Range 0x5F69 - 0x5F73, array index: 0x1417 */ - 0x9442,0x944D,0x9454,0x944E,INVALC,0x9443,INVALC,INVALC, - 0x973C,0x9740,0x97C0, - /* Range 0x6039 - 0x6040, array index: 0x1422 */ - 0x7221,INVALC,0x766F,0x7937,0x79B5,0x7C62,0x7C5E,0x7CF5, - /* Range 0x6043 - 0x604B, array index: 0x142A */ - 0x863D,INVALC,0x882D,0x8989,0x8B8D,0x8B87,0x8B90,0x8D1A, - 0x8E99, - /* Range 0x6052 - 0x6068, array index: 0x1433 */ - 0x9456,0x9461,0x945B,0x945A,0x945C,0x9465,INVALC,0x9741, - INVALC,INVALC,0x986E,0x986C,0x986D,INVALC,0x99AA,0x9A5C, - 0x9A58,0x9ADE,INVALC,0x9C4F,0x9C51,INVALC,0x9C53, - /* Range 0x6073 - 0x6077, array index: 0x144A */ - 0x5B4F,0x6B14,INVALC,0x7A72,0x7A73, - /* Range 0x6125 - 0x6135, array index: 0x144F */ - 0x96E6,0x9745,INVALC,0x97C8,0x97E4,0x995D,INVALC,0x9B21, - INVALC,0x9B2C,0x9B57,INVALC,INVALC,0x9C5D,0x9C61,0x9C65, - 0x9E08, - /* Range 0x613E - 0x6150, array index: 0x1460 */ - 0x6205,0x66EF,0x6B1B,0x6B1D,0x7225,0x7224,0x7C6D,INVALC, - 0x8642,0x8649,INVALC,0x8978,0x898A,0x8B97,INVALC,0x8C9B, - 0x8D1C,INVALC,0x8EA2, - /* Range 0x615D - 0x6165, array index: 0x1473 */ - 0x9E0E,INVALC,0x9F08,0x9F1D,0x9FA3,INVALC,INVALC,0x5F60, - 0x6B1C, - /* Range 0x6169 - 0x617E, array index: 0x147C */ - 0x7CF3,INVALC,0x8B9B,0x8EA7,0x91C4,INVALC,0x947A,INVALC, - INVALC,0x9A61,0x9A63,0x9AD7,0x9C76,INVALC,0x9FA5,INVALC, - 0x7067,INVALC,0x72AB,0x864A,0x897D,0x8B9D, - /* Range 0x6221 - 0x6229, array index: 0x1492 */ - 0x8C53,0x8F65,0x947B,INVALC,0x98CD,0x98DD,INVALC,0x9B30, - 0x9E16, - /* Range 0x622F - 0x623B, array index: 0x149B */ - 0x96E7,0x9E18,0x9EA2,INVALC,0x9F7C,INVALC,0x7E9E,0x9484, - INVALC,0x9E1C,INVALC,0x7C71,0x97CA, - /* Range 0x625C - 0x6272, array index: 0x14A8 */ - 0x5B66,INVALC,0x65F9,0x6788,0x6CE6,0x6CCB,INVALC,0x4FBD, - 0x5F8D,INVALC,0x6018,0x6048,INVALC,0x6B29,0x70A6,INVALC, - 0x7706,INVALC,INVALC,INVALC,0x5A10,0x5CFC,0x5CFE, - /* Range 0x642F - 0x6433, array index: 0x14BF */ - 0x9C27,INVALC,0x9458,0x77D6,0x9B2D, - /* Range 0x6448 - 0x647E, array index: 0x14C4 */ - 0x4F66,0x4F68,0x4FE7,0x503F,INVALC,0x50A6,0x510F,0x523E, - 0x5324,0x5365,0x539B,0x517F,0x54CB,0x5573,0x5571,0x556B, - 0x55F4,0x5622,0x5620,0x5692,0x56BA,0x5691,0x56B0,0x5759, - 0x578A,0x580F,0x5812,0x5813,0x5847,0x589B,0x5900,0x594D, - 0x5AD1,0x5AD3,0x5B67,0x5C57,0x5C77,0x5CD5,0x5D75,0x5D8E, - 0x5DA5,0x5DB6,0x5DBF,0x5E65,0x5ECD,0x5EED,0x5F94,0x5F9A, - 0x5FBA,0x6125,0x6150,0x62A3,0x6360,0x6364,0x63B6, - /* Range 0x6521 - 0x657E, array index: 0x14FB */ - 0x6403,0x64B6,0x651A,0x7A25,0x5C21,0x66E2,0x6702,0x67A4, - 0x67AC,0x6810,0x6806,0x685E,0x685A,0x692C,0x6929,0x6A2D, - 0x6A77,0x6A7A,0x6ACA,0x6AE6,0x6AF5,0x6B0D,0x6B0E,0x6BDC, - 0x6BDD,0x6BF6,0x6C1E,0x6C63,0x6DA5,0x6E0F,0x6E8A,0x6E84, - 0x6E8B,0x6E7C,0x6F4C,0x6F48,0x6F49,0x6F9D,0x6F99,0x6FF8, - 0x702E,0x702D,0x705C,0x79CC,0x70BF,0x70EA,0x70E5,0x7111, - 0x7112,0x713F,0x7139,0x713B,0x713D,0x7177,0x7175,0x7176, - 0x7171,0x7196,0x7193,0x71B4,0x71DD,0x71DE,0x720E,0x5911, - 0x7218,0x7347,0x7348,0x73EF,0x7412,0x743B,0x74A4,0x748D, - 0x74B4,0x7673,0x7677,0x76BC,0x7819,0x781B,0x783D,0x7853, - 0x7854,0x7858,0x78B7,0x78D8,0x78EE,0x7922,0x794D,0x7986, - 0x7999,0x79A3,0x79BC,0x7AA7,0x7B37,0x7B59, - /* Range 0x6621 - 0x667C, array index: 0x1559 */ - 0x7BD0,0x7C2F,0x7C32,0x7C42,0x7C4E,0x7C68,0x7CA9,0x7CED, - 0x7DD0,0x7E07,0x7DD3,0x7E64,0x7F40,INVALC,0x8041,0x8063, - 0x80BB,0x6711,0x6725,0x8248,0x8310,0x8362,0x8312,0x8421, - 0x841E,0x84E2,0x84DE,0x84E1,0x8573,0x85D4,0x85F5,0x8637, - 0x8645,0x8672,0x874A,0x87A9,0x87A5,0x87F5,0x8834,0x8850, - 0x8887,0x8954,0x8984,0x8B03,0x8C52,0x8CD8,0x8D0C,0x8D18, - 0x8DB0,0x8EBC,0x8ED5,0x8FAA,0x909C,INVALC,0x915C,0x922B, - 0x9221,0x9273,0x92F4,0x92F5,0x933F,0x9342,0x9386,0x93BE, - 0x93BC,0x93BD,0x93F1,0x93F2,0x93EF,0x9422,0x9423,0x9424, - 0x9467,0x9466,0x9597,0x95CE,0x95E7,0x973B,0x974D,0x98E4, - 0x9942,0x9B1D,0x9B98,INVALC,0x9D49,0x6449,0x5E71,0x5E85, - 0x61D3,0x990E,0x8002,0x781E, - /* Range 0x6721 - 0x672A, array index: 0x15B5 */ - 0x5528,0x5572,0x55BA,0x55F0,0x55EE,0x56B8,0x56B9,0x56C4, - 0x8053,0x92B0, - /* Unranged codes (222 codes) */ - /* Array index: 0x15BF */ 0x2170,0x4EE7, - /* Array index: 0x15BF */ 0x2172,0x4EE6, - /* Array index: 0x15BF */ 0x234B,0x597A, - /* Array index: 0x15BF */ 0x234D,0x5986, - /* Array index: 0x15BF */ 0x235A,0x5C80, - /* Array index: 0x15BF */ 0x235C,0x5E08, - /* Array index: 0x15BF */ 0x2361,0x5EF5, - /* Array index: 0x15BF */ 0x2362,0x5F0E, - /* Array index: 0x15BF */ 0x2366,0x5FD3, - /* Array index: 0x15BF */ 0x2367,0x5FDA, - /* Array index: 0x15BF */ 0x2421,0x6C3C, - /* Array index: 0x15BF */ 0x2433,0x793C, - /* Array index: 0x15BF */ 0x2435,0x808D, - /* Array index: 0x15BF */ 0x2436,0x808E, - /* Array index: 0x15BF */ 0x246D,0x544D, - /* Array index: 0x15BF */ 0x2470,0x543A, - /* Array index: 0x15BF */ 0x253C,0x5746, - /* Array index: 0x15BF */ 0x2551,0x599F, - /* Array index: 0x15BF */ 0x2553,0x599B, - /* Array index: 0x15BF */ 0x2555,0x5989, - /* Array index: 0x15BF */ 0x2556,0x599A, - /* Array index: 0x15BF */ 0x2558,0x6588, - /* Array index: 0x15BF */ 0x263D,0x65F6, - /* Array index: 0x15BF */ 0x266E,0x7398, - /* Array index: 0x15BF */ 0x2755,0x5190, - /* Array index: 0x15BF */ 0x2833,0x59AD, - /* Array index: 0x15BF */ 0x2835,0x59C4, - /* Array index: 0x15BF */ 0x2837,0x59C2, - /* Array index: 0x15BF */ 0x2838,0x59B0, - /* Array index: 0x15BF */ 0x2845,0x59B7, - /* Array index: 0x15BF */ 0x2846,0x59D7, - /* Array index: 0x15BF */ 0x287E,0x5FE9, - /* Array index: 0x15BF */ 0x2921,0x603D, - /* Array index: 0x15BF */ 0x2922,0x6008, - /* Array index: 0x15BF */ 0x295D,0x6C1C, - /* Array index: 0x15BF */ 0x297C,0x7240, - /* Array index: 0x15BF */ 0x2A42,0x79C7, - /* Array index: 0x15BF */ 0x2A44,0x79CA, - /* Array index: 0x15BF */ 0x2A52,0x80B0, - /* Array index: 0x15BF */ 0x2A66,0x82AA, - /* Array index: 0x15BF */ 0x2A68,0x82C9, - /* Array index: 0x15BF */ 0x2A6B,0x82A6, - /* Array index: 0x15BF */ 0x2A6C,0x82B2, - /* Array index: 0x15BF */ 0x2B43,0x524F, - /* Array index: 0x15BF */ 0x2B61,0x54CD, - /* Array index: 0x15BF */ 0x2B77,0x58F5, - /* Array index: 0x15BF */ 0x2B79,0x5909, - /* Array index: 0x15BF */ 0x2B7A,0x5908, - /* Array index: 0x15BF */ 0x2B7C,0x5952, - /* Array index: 0x15BF */ 0x2C32,0x5BAB, - /* Array index: 0x15BF */ 0x2C34,0x5C1B, - /* Array index: 0x15BF */ 0x2C35,0x5C2F, - /* Array index: 0x15BF */ 0x2C37,0x663C, - /* Array index: 0x15BF */ 0x2C50,0x5F66, - /* Array index: 0x15BF */ 0x2C54,0x605C, - /* Array index: 0x15BF */ 0x2D42,0x6BE1, - /* Array index: 0x15BF */ 0x2E2F,0x75A8, - /* Array index: 0x15BF */ 0x2E72,0x82E9, - /* Array index: 0x15BF */ 0x2F7E,0x5518, - /* Array index: 0x15BF */ 0x3021,0x54F0, - /* Array index: 0x15BF */ 0x3022,0x54F6, - /* Array index: 0x15BF */ 0x3025,0x5519, - /* Array index: 0x15BF */ 0x3045,0x5A22, - /* Array index: 0x15BF */ 0x3048,0x5A24, - /* Array index: 0x15BF */ 0x3052,0x5A26, - /* Array index: 0x15BF */ 0x307E,0x6056, - /* Array index: 0x15BF */ 0x3236,0x727A, - /* Array index: 0x15BF */ 0x3255,0x75B4, - /* Array index: 0x15BF */ 0x3257,0x75B1, - /* Array index: 0x15BF */ 0x3337,0x7D24, - /* Array index: 0x15BF */ 0x3352,0x80F7, - /* Array index: 0x15BF */ 0x335F,0x8321, - /* Array index: 0x15BF */ 0x3362,0x8318, - /* Array index: 0x15BF */ 0x3363,0x8358, - /* Array index: 0x15BF */ 0x3439,0x96BD, - /* Array index: 0x15BF */ 0x3522,0x5A2B, - /* Array index: 0x15BF */ 0x3524,0x5A3B, - /* Array index: 0x15BF */ 0x353F,0x5BC8, - /* Array index: 0x15BF */ 0x3541,0x5BC3, - /* Array index: 0x15BF */ 0x3568,0x6098, - /* Array index: 0x15BF */ 0x356A,0x60D0, - /* Array index: 0x15BF */ 0x3579,0x60DE, - /* Array index: 0x15BF */ 0x357C,0x637E, - /* Array index: 0x15BF */ 0x357D,0x638B, - /* Array index: 0x15BF */ 0x3740,0x73FB, - /* Array index: 0x15BF */ 0x374D,0x7690, - /* Array index: 0x15BF */ 0x3821,0x7C9A, - /* Array index: 0x15BF */ 0x3822,0x7C9C, - /* Array index: 0x15BF */ 0x3824,0x7D49, - /* Array index: 0x15BF */ 0x3826,0x7D34, - /* Array index: 0x15BF */ 0x3827,0x7D37, - /* Array index: 0x15BF */ 0x3829,0x7D2D, - /* Array index: 0x15BF */ 0x382B,0x7D4C, - /* Array index: 0x15BF */ 0x382E,0x7D48, - /* Array index: 0x15BF */ 0x3831,0x7F3B, - /* Array index: 0x15BF */ 0x3836,0x8008, - /* Array index: 0x15BF */ 0x3837,0x801A, - /* Array index: 0x15BF */ 0x387E,0x8A1C, - /* Array index: 0x15BF */ 0x3922,0x8A2B, - /* Array index: 0x15BF */ 0x3923,0x8A20, - /* Array index: 0x15BF */ 0x3925,0x8A29, - /* Array index: 0x15BF */ 0x3947,0x8ED9, - /* Array index: 0x15BF */ 0x395C,0x9587, - /* Array index: 0x15BF */ 0x395E,0x965A, - /* Array index: 0x15BF */ 0x3961,0x966E, - /* Array index: 0x15BF */ 0x3965,0x9679, - /* Array index: 0x15BF */ 0x3A21,0x5273, - /* Array index: 0x15BF */ 0x3A23,0x5270, - /* Array index: 0x15BF */ 0x3A66,0x5A91, - /* Array index: 0x15BF */ 0x3A6B,0x5ACF, - /* Array index: 0x15BF */ 0x3A72,0x5A87, - /* Array index: 0x15BF */ 0x3A73,0x5AA0, - /* Array index: 0x15BF */ 0x3B31,0x5D57, - /* Array index: 0x15BF */ 0x3B4B,0x5FA7, - /* Array index: 0x15BF */ 0x3B79,0x65D1, - /* Array index: 0x15BF */ 0x3D4C,0x7694, - /* Array index: 0x15BF */ 0x3D4D,0x76B3, - /* Array index: 0x15BF */ 0x3D7E,0x7CA7, - /* Array index: 0x15BF */ 0x3E6D,0x88BB, - /* Array index: 0x15BF */ 0x3E6F,0x88BF, - /* Array index: 0x15BF */ 0x3E70,0x88B4, - /* Array index: 0x15BF */ 0x3E72,0x88B5, - /* Array index: 0x15BF */ 0x3E74,0x899A, - /* Array index: 0x15BF */ 0x3E75,0x8A43, - /* Array index: 0x15BF */ 0x3E78,0x8A5A, - /* Array index: 0x15BF */ 0x3F5D,0x91FE, - /* Array index: 0x15BF */ 0x3F5E,0x9220, - /* Array index: 0x15BF */ 0x3F60,0x920B, - /* Array index: 0x15BF */ 0x3F6C,0x9595, - /* Array index: 0x15BF */ 0x3F7B,0x96EE, - /* Array index: 0x15BF */ 0x3F7C,0x96ED, - /* Array index: 0x15BF */ 0x3F7E,0x96EC, - /* Array index: 0x15BF */ 0x4021,0x975F, - /* Array index: 0x15BF */ 0x4022,0x976F, - /* Array index: 0x15BF */ 0x4024,0x976D, - /* Array index: 0x15BF */ 0x402B,0x98F0, - /* Array index: 0x15BF */ 0x402F,0x9AA9, - /* Array index: 0x15BF */ 0x4032,0x9AE0, - /* Array index: 0x15BF */ 0x4033,0x4EB7, - /* Array index: 0x15BF */ 0x4064,0x5ACE, - /* Array index: 0x15BF */ 0x4066,0x5AC5, - /* Array index: 0x15BF */ 0x4067,0x5AC3, - /* Array index: 0x15BF */ 0x406A,0x5AD0, - /* Array index: 0x15BF */ 0x4142,0x643C, - /* Array index: 0x15BF */ 0x4144,0x6446, - /* Array index: 0x15BF */ 0x4145,0x6447, - /* Array index: 0x15BF */ 0x4148,0x643A, - /* Array index: 0x15BF */ 0x4149,0x6407, - /* Array index: 0x15BF */ 0x414B,0x656B, - /* Array index: 0x15BF */ 0x4156,0x668F, - /* Array index: 0x15BF */ 0x4159,0x6692, - /* Array index: 0x15BF */ 0x415B,0x668E, - /* Array index: 0x15BF */ 0x415D,0x6946, - /* Array index: 0x15BF */ 0x4165,0x6931, - /* Array index: 0x15BF */ 0x4168,0x693E, - /* Array index: 0x15BF */ 0x416A,0x697C, - /* Array index: 0x15BF */ 0x416B,0x6943, - /* Array index: 0x15BF */ 0x416D,0x6973, - /* Array index: 0x15BF */ 0x416F,0x6955, - /* Array index: 0x15BF */ 0x4221,0x6B73, - /* Array index: 0x15BF */ 0x4222,0x6B9C, - /* Array index: 0x15BF */ 0x4236,0x6EA9, - /* Array index: 0x15BF */ 0x424C,0x7148, - /* Array index: 0x15BF */ 0x4321,0x7698, - /* Array index: 0x15BF */ 0x433D,0x7980, - /* Array index: 0x15BF */ 0x4341,0x7A0F, - /* Array index: 0x15BF */ 0x4344,0x7A1D, - /* Array index: 0x15BF */ 0x4358,0x7CAE, - /* Array index: 0x15BF */ 0x435C,0x7CB0, - /* Array index: 0x15BF */ 0x435E,0x7D90, - /* Array index: 0x15BF */ 0x436E,0x7FA3, - /* Array index: 0x15BF */ 0x437B,0x815D, - /* Array index: 0x15BF */ 0x437C,0x8175, - /* Array index: 0x15BF */ 0x437E,0x815F, - /* Array index: 0x15BF */ 0x4473,0x8EB1, - /* Array index: 0x15BF */ 0x4540,0x968F, - /* Array index: 0x15BF */ 0x4542,0x9696, - /* Array index: 0x15BF */ 0x4546,0x96F4, - /* Array index: 0x15BF */ 0x4547,0x96FC, - /* Array index: 0x15BF */ 0x4549,0x9755, - /* Array index: 0x15BF */ 0x454B,0x9779, - /* Array index: 0x15BF */ 0x454F,0x97EE, - /* Array index: 0x15BF */ 0x4550,0x97F5, - /* Array index: 0x15BF */ 0x4552,0x980B, - /* Array index: 0x15BF */ 0x4554,0x98F3, - /* Array index: 0x15BF */ 0x457A,0x51F4, - /* Array index: 0x15BF */ 0x457E,0x52ED, - /* Array index: 0x15BF */ 0x4621,0x52EA, - /* Array index: 0x15BF */ 0x4623,0x5332, - /* Array index: 0x15BF */ 0x467E,0x6455, - /* Array index: 0x15BF */ 0x4730,0x6571, - /* Array index: 0x15BF */ 0x4751,0x6998, - /* Array index: 0x15BF */ 0x482E,0x76B9, - /* Array index: 0x15BF */ 0x484B,0x7A29, - /* Array index: 0x15BF */ 0x484D,0x7A2A, - /* Array index: 0x15BF */ 0x484F,0x7A2D, - /* Array index: 0x15BF */ 0x4850,0x7A2C, - /* Array index: 0x15BF */ 0x4868,0x7DC8, - /* Array index: 0x15BF */ 0x4869,0x7DB6, - /* Array index: 0x15BF */ 0x486B,0x7DD1, - /* Array index: 0x15BF */ 0x496B,0x8A9D, - /* Array index: 0x15BF */ 0x496D,0x8C67, - /* Array index: 0x15BF */ 0x4A21,0x8FA1, - /* Array index: 0x15BF */ 0x4A22,0x8FA2, - /* Array index: 0x15BF */ 0x4A24,0x905A, - /* Array index: 0x15BF */ 0x4A3D,0x95A2, - /* Array index: 0x15BF */ 0x4A3E,0x95A7, - /* Array index: 0x15BF */ 0x4A4C,0x9759, - /* Array index: 0x15BF */ 0x4A4E,0x9764, - /* Array index: 0x15BF */ 0x4A5B,0x9906, - /* Array index: 0x15BF */ 0x4A6A,0x99C4, - /* Array index: 0x15BF */ 0x4A78,0x9B40, - /* Array index: 0x15BF */ 0x4B22,0x9EBD, - /* Array index: 0x15BF */ 0x4B27,0x510E, - /* Array index: 0x15BF */ 0x4D22,0x71AE, - /* Array index: 0x15BF */ 0x4D44,0x778A, - /* Array index: 0x15BF */ 0x4D60,0x7BBF, - /* Array index: 0x15BF */ 0x4D63,0x7BCD, - /* Array index: 0x15BF */ 0x4D65,0x7BB2, - /* Array index: 0x15BF */ 0x4E22,0x7DD6, - /* Array index: 0x15BF */ 0x4E40,0x8501, - /* Array index: 0x15BF */ 0x4E42,0x84F8, - /* Array index: 0x15BF */ 0x4E44,0x84F5, - /* Array index: 0x15BF */ 0x4E46,0x8504, - /* Array index: 0x15BF */ 0x4E52,0x8535, - /* Array index: 0x15BF */ 0x4E54,0x8505, - /* Array index: 0x15BF */ 0x4E59,0x877D, - /* Array index: 0x15BF */ 0x4E7A,0x8C8E, - /* Array index: 0x15BF */ 0x4E7D,0x8CE9, - /* Array index: 0x15BF */ 0x4E7E,0x8CDB, - /* Array index: 0x15BF */ 0x4F5A,0x96A3, - /* Array index: 0x15BF */ 0x4F5B,0x96A5, - /* Array index: 0x15BF */ 0x5022,0x9D0D, - /* Array index: 0x15BF */ 0x5024,0x9D01, - /* Array index: 0x15BF */ 0x5025,0x9D0C, - /* Array index: 0x15BF */ 0x5027,0x9CF8, - /* Array index: 0x15BF */ 0x503B,0x5667, - /* Array index: 0x15BF */ 0x503D,0x567B, - /* Array index: 0x15BF */ 0x503F,0x565F, - /* Array index: 0x15BF */ 0x5040,0x5661, - /* Array index: 0x15BF */ 0x514D,0x6FBB, - /* Array index: 0x15BF */ 0x5150,0x6FBE, - /* Array index: 0x15BF */ 0x5179,0x7798, - /* Array index: 0x15BF */ 0x517B,0x7796, - /* Array index: 0x15BF */ 0x5221,0x78D6, - /* Array index: 0x15BF */ 0x5222,0x78EB, - /* Array index: 0x15BF */ 0x5237,0x7CD3, - /* Array index: 0x15BF */ 0x5239,0x7CE1, - /* Array index: 0x15BF */ 0x523B,0x7E19, - /* Array index: 0x15BF */ 0x523F,0x7E27, - /* Array index: 0x15BF */ 0x5240,0x7E26, - /* Array index: 0x15BF */ 0x5243,0x806E, - /* Array index: 0x15BF */ 0x5244,0x81AF, - /* Array index: 0x15BF */ 0x5247,0x81AD, - /* Array index: 0x15BF */ 0x5249,0x81AA, - /* Array index: 0x15BF */ 0x524A,0x8218, - /* Array index: 0x15BF */ 0x524F,0x856F, - /* Array index: 0x15BF */ 0x5250,0x854C, - /* Array index: 0x15BF */ 0x526E,0x8AEC, - /* Array index: 0x15BF */ 0x5273,0x8CF2, - /* Array index: 0x15BF */ 0x5275,0x8CEF, - /* Array index: 0x15BF */ 0x5277,0x8DA6, - /* Array index: 0x15BF */ 0x527B,0x8E3B, - /* Array index: 0x15BF */ 0x527C,0x8E43, - /* Array index: 0x15BF */ 0x527E,0x8E32, - /* Array index: 0x15BF */ 0x5348,0x96AB, - /* Array index: 0x15BF */ 0x5349,0x96B7, - /* Array index: 0x15BF */ 0x534C,0x9715, - /* Array index: 0x15BF */ 0x534D,0x9714, - /* Array index: 0x15BF */ 0x5350,0x970C, - /* Array index: 0x15BF */ 0x5351,0x9717, - /* Array index: 0x15BF */ 0x5353,0x9793, - /* Array index: 0x15BF */ 0x5355,0x97D2, - /* Array index: 0x15BF */ 0x5370,0x99E1, - /* Array index: 0x15BF */ 0x5371,0x99E6, - /* Array index: 0x15BF */ 0x5421,0x9B8C, - /* Array index: 0x15BF */ 0x5423,0x9B89, - /* Array index: 0x15BF */ 0x5425,0x9B8E, - /* Array index: 0x15BF */ 0x5464,0x64DF, - /* Array index: 0x15BF */ 0x5467,0x64E1, - /* Array index: 0x15BF */ 0x5521,0x6A86, - /* Array index: 0x15BF */ 0x5523,0x6A98, - /* Array index: 0x15BF */ 0x5524,0x6A9D, - /* Array index: 0x15BF */ 0x5527,0x6A8F, - /* Array index: 0x15BF */ 0x5529,0x6AAA, - /* Array index: 0x15BF */ 0x552B,0x6B5D, - /* Array index: 0x15BF */ 0x553C,0x71E3, - /* Array index: 0x15BF */ 0x5549,0x7371, - /* Array index: 0x15BF */ 0x554B,0x74AE, - /* Array index: 0x15BF */ 0x554D,0x74B3, - /* Array index: 0x15BF */ 0x554F,0x74AC, - /* Array index: 0x15BF */ 0x5579,0x7E2C, - /* Array index: 0x15BF */ 0x557A,0x7E4D, - /* Array index: 0x15BF */ 0x557D,0x7F46, - /* Array index: 0x15BF */ 0x557E,0x7FF6, - /* Array index: 0x15BF */ 0x5630,0x85AC, - /* Array index: 0x15BF */ 0x5634,0x87CE, - /* Array index: 0x15BF */ 0x5636,0x87CD, - /* Array index: 0x15BF */ 0x564D,0x8C40, - /* Array index: 0x15BF */ 0x564F,0x8C96, - /* Array index: 0x15BF */ 0x567A,0x979B, - /* Array index: 0x15BF */ 0x567B,0x979F, - /* Array index: 0x15BF */ 0x5726,0x9840, - /* Array index: 0x15BF */ 0x5728,0x9847, - /* Array index: 0x15BF */ 0x572A,0x98B7, - /* Array index: 0x15BF */ 0x5730,0x99A2, - /* Array index: 0x15BF */ 0x5733,0x9A00, - /* Array index: 0x15BF */ 0x5734,0x99F3, - /* Array index: 0x15BF */ 0x5737,0x99F5, - /* Array index: 0x15BF */ 0x5748,0x9D39, - /* Array index: 0x15BF */ 0x574A,0x9D44, - /* Array index: 0x15BF */ 0x574D,0x9D35, - /* Array index: 0x15BF */ 0x5750,0x9EAF, - /* Array index: 0x15BF */ 0x5752,0x512F, - /* Array index: 0x15BF */ 0x5849,0x7AF5, - /* Array index: 0x15BF */ 0x584C,0x7C2E, - /* Array index: 0x15BF */ 0x584E,0x7C1B, - /* Array index: 0x15BF */ 0x5850,0x7C1A, - /* Array index: 0x15BF */ 0x5851,0x7C24, - /* Array index: 0x15BF */ 0x5861,0x7FFA, - /* Array index: 0x15BF */ 0x5862,0x802E, - /* Array index: 0x15BF */ 0x5865,0x81CE, - /* Array index: 0x15BF */ 0x5868,0x8219, - /* Array index: 0x15BF */ 0x5921,0x89B3, - /* Array index: 0x15BF */ 0x5923,0x8B38, - /* Array index: 0x15BF */ 0x5924,0x8B32, - /* Array index: 0x15BF */ 0x5926,0x8B2D, - /* Array index: 0x15BF */ 0x5928,0x8B34, - /* Array index: 0x15BF */ 0x592A,0x8B29, - /* Array index: 0x15BF */ 0x592B,0x8C74, - /* Array index: 0x15BF */ 0x592E,0x8D03, - /* Array index: 0x15BF */ 0x5956,0x9854, - /* Array index: 0x15BF */ 0x5A3F,0x65DC, - /* Array index: 0x15BF */ 0x5A6E,0x7C35, - /* Array index: 0x15BF */ 0x5A6F,0x7C34, - /* Array index: 0x15BF */ 0x5A72,0x7E6C, - /* Array index: 0x15BF */ 0x5B22,0x85E7, - /* Array index: 0x15BF */ 0x5B2F,0x8987, - /* Array index: 0x15BF */ 0x5B53,0x95DD, - /* Array index: 0x15BF */ 0x5B65,0x9856, - /* Array index: 0x15BF */ 0x5C47,0x6AF4, - /* Array index: 0x15BF */ 0x5C49,0x6AE9, - /* Array index: 0x15BF */ 0x5C4F,0x703D, - /* Array index: 0x15BF */ 0x5C51,0x7036, - /* Array index: 0x15BF */ 0x5D56,0x98C3, - /* Array index: 0x15BF */ 0x5D58,0x994D, - /* Array index: 0x15BF */ 0x5D5A,0x9A2F, - /* Array index: 0x15BF */ 0x5E2D,0x5DD0, - /* Array index: 0x15BF */ 0x5E2F,0x5FC2, - /* Array index: 0x15BF */ 0x5E6D,0x942D, - /* Array index: 0x15BF */ 0x5F3A,0x9E9E, - /* Array index: 0x15BF */ 0x5F5F,0x8827, - /* Array index: 0x15BF */ 0x5F61,0x8B81, - /* Array index: 0x15BF */ 0x5F62,0x8B83, - /* Array index: 0x15BF */ 0x5F64,0x8C44, - /* Array index: 0x15BF */ 0x5F78,0x995A, - /* Array index: 0x15BF */ 0x5F79,0x9A51, - /* Array index: 0x15BF */ 0x5F7B,0x9ADD, - /* Array index: 0x15BF */ 0x5F7E,0x9C38, - /* Array index: 0x15BF */ 0x6022,0x9C45, - /* Array index: 0x15BF */ 0x6023,0x9C3A, - /* Array index: 0x15BF */ 0x6025,0x9C35, - /* Array index: 0x15BF */ 0x6029,0x9EF1, - /* Array index: 0x15BF */ 0x602B,0x9F93, - /* Array index: 0x15BF */ 0x602C,0x529A, - /* Array index: 0x15BF */ 0x602F,0x8641, - /* Array index: 0x15BF */ 0x6030,0x5DD7, - /* Array index: 0x15BF */ 0x6032,0x6528, - /* Array index: 0x15BF */ 0x6036,0x7053, - /* Array index: 0x15BF */ 0x6037,0x7059, - /* Array index: 0x15BF */ 0x604F,0x945F, - /* Array index: 0x15BF */ 0x606C,0x9DFC, - /* Array index: 0x15BF */ 0x606D,0x9F39, - /* Array index: 0x15BF */ 0x606F,0x513E, - /* Array index: 0x15BF */ 0x6071,0x56D2, - /* Array index: 0x15BF */ 0x607B,0x8B91, - /* Array index: 0x15BF */ 0x607E,0x91BF, - /* Array index: 0x15BF */ 0x6122,0x946C, - /* Array index: 0x15BF */ 0x613B,0x9F45, - /* Array index: 0x15BF */ 0x6159,0x9C6C, - /* Array index: 0x15BF */ 0x615B,0x9C6F, - /* Array index: 0x15BF */ 0x623F,0x9EA3, - /* Array index: 0x15BF */ 0x6241,0x9C7B, - /* Array index: 0x15BF */ 0x6242,0x9F97, - /* Array index: 0x15BF */ 0x6245,0x9750, - /* Array index: 0x15BF */ 0x6249,0x5727, - /* Array index: 0x15BF */ 0x624A,0x5C13, - /* Array index: 0x15BF */ 0x6251,0x5FC8, - /* Array index: 0x15BF */ 0x6257,0x6765, - /* Array index: 0x15BF */ 0x625A,0x52BD, - /* Array index: 0x15BF */ 0x6279,0x70C9, - /* Array index: 0x15BF */ 0x6323,0x9579, - /* Array index: 0x15BF */ 0x6325,0x96BA, - /* Array index: 0x15BF */ 0x632D,0x7B29, - /* Array index: 0x15BF */ 0x632E,0x8128, - /* Array index: 0x15BF */ 0x6330,0x8A2E, - /* Array index: 0x15BF */ 0x6334,0x9AD9, - /* Array index: 0x15BF */ 0x6336,0x582B, - /* Array index: 0x15BF */ 0x6337,0x5845, - /* Array index: 0x15BF */ 0x6339,0x63FA, - /* Array index: 0x15BF */ 0x633D,0x6E86, - /* Array index: 0x15BF */ 0x6343,0x5867, - /* Array index: 0x15BF */ 0x6345,0x5BDD, - /* Array index: 0x15BF */ 0x6346,0x656E, - /* Array index: 0x15BF */ 0x634A,0x8C87, - /* Array index: 0x15BF */ 0x634C,0x50D2, - /* Array index: 0x15BF */ 0x634D,0x50DF, - /* Array index: 0x15BF */ 0x6352,0x69BA, - /* Array index: 0x15BF */ 0x6354,0x6B9D, - /* Array index: 0x15BF */ 0x6356,0x8059, - /* Array index: 0x15BF */ 0x6363,0x6F8A, - /* Array index: 0x15BF */ 0x6366,0x7BC3, - /* Array index: 0x15BF */ 0x6367,0x7BC2, - /* Array index: 0x15BF */ 0x636C,0x90F6, - /* Array index: 0x15BF */ 0x636E,0x9823, - /* Array index: 0x15BF */ 0x6374,0x71CD, - /* Array index: 0x15BF */ 0x6375,0x7499, - /* Array index: 0x15BF */ 0x637B,0x9842, - /* Array index: 0x15BF */ 0x6422,0x7F84, - /* Array index: 0x15BF */ 0x6428,0x8D0E, - /* Array index: 0x15BF */ 0x642A,0x9861, - /* Array index: 0x15BF */ 0x642D,0x8B73, -}; - -#endif /* ICONV_TO_UCS_CCS_CNS11643_PLANE14 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> cns11643_plane14 speed-optimized table (42496 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE14) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_speed_cns11643_plane14[] = -{ - /* Heading Block */ - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,0x0100,0x0200, - 0x0300,0x0400,0x0500,0x0600,0x0700,0x0800,0x0900,0x0A00, - 0x0B00,0x0C00,0x0D00,0x0E00,0x0F00,0x1000,0x1100,0x1200, - 0x1300,0x1400,0x1500,0x1600,0x1700,0x1800,0x1900,0x1A00, - 0x1B00,0x1C00,0x1D00,0x1E00,0x1F00,0x2000,0x2100,0x2200, - 0x2300,0x2400,0x2500,0x2600,0x2700,0x2800,0x2900,0x2A00, - 0x2B00,0x2C00,0x2D00,0x2E00,0x2F00,0x3000,0x3100,0x3200, - 0x3300,0x3400,0x3500,0x3600,0x3700,0x3800,0x3900,0x3A00, - 0x3B00,0x3C00,0x3D00,0x3E00,0x3F00,0x4000,0x4100,0x4200, - 0x4300,0x4400,0x4500,0x4600,0x4700,0x4800,0x4900,0x4A00, - 0x4B00,0x4C00,0x4D00,0x4E00,0x4F00,0x5000,0x5100,0x5200, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - /* Block 79, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,0x2126,0x2125,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2262,0x2261,0x2263,INVALC,0x243F,INVALC,INVALC,INVALC, - 0x2121,INVALC,0x212C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2122,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2740,INVALC,0x2123, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2130,INVALC, - INVALC,0x212E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2345,INVALC,INVALC,0x2B22, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2146,0x2145,INVALC,INVALC,INVALC,INVALC, - 0x2264,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2440,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2B23,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x396C,0x396E,INVALC,INVALC,INVALC,0x2124,INVALC,0x212D, - INVALC,0x2265,INVALC,INVALC,INVALC,INVALC,INVALC,0x2131, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x216C, - 0x2266,INVALC,INVALC,INVALC,0x2442,0x2742,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2147,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2B26, - 0x2B25,0x2B27,0x2B24,INVALC,INVALC,INVALC,INVALC,0x4033, - INVALC,INVALC,INVALC,INVALC,0x2132,INVALC,0x2133,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2149,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x214C,INVALC,0x214B,0x214A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x216D,INVALC,INVALC,INVALC,INVALC,INVALC,0x2172,0x2170, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x226F,0x2268, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x226B,0x2267,0x2276,INVALC,0x226E,INVALC,INVALC,INVALC, - /* Block 80, Array index 0x0200 */ - INVALC,INVALC,INVALC,0x226D,INVALC,INVALC,0x226C,0x2274, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2270,0x2277, - INVALC,INVALC,0x2275,INVALC,0x2273,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2272,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2450,0x2448,INVALC,INVALC,0x244F,INVALC,0x2446, - INVALC,0x2445,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x244E,INVALC,0x2449,INVALC,0x244B,0x2443,INVALC,INVALC, - INVALC,INVALC,0x2444,0x244C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6448,INVALC, - 0x6449,INVALC,INVALC,INVALC,INVALC,0x2747,INVALC,INVALC, - INVALC,INVALC,0x274F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2744,INVALC,0x2751,INVALC,0x2748,INVALC, - INVALC,INVALC,INVALC,0x2743,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x274C, - 0x2749,0x274B,0x274A,0x274D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2B2D,0x2B2E,INVALC,INVALC,0x2B36,INVALC,INVALC,INVALC, - 0x2B2C,INVALC,INVALC,INVALC,INVALC,0x6263,0x2B2B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2B32,INVALC, - 0x2B2F,INVALC,INVALC,INVALC,0x2B33,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2B28,INVALC,INVALC,0x2B29,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2B35,INVALC,0x2B34,INVALC,0x644A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2F48,INVALC,0x2F4D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2F44,INVALC,0x2F58,0x2F4C,0x2F56,INVALC,0x2F46, - /* Block 81, Array index 0x0300 */ - INVALC,INVALC,0x2F4B,0x2F49,0x2F47,INVALC,INVALC,INVALC, - 0x2F4F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2F53,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2F45,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2F4E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2F51,INVALC, - INVALC,INVALC,0x2F43,INVALC,INVALC,INVALC,0x2F50,INVALC, - 0x2F54,0x2F55,INVALC,INVALC,INVALC,INVALC,INVALC,0x644B, - INVALC,INVALC,0x343C,INVALC,0x343F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3444,INVALC,0x3441,INVALC,0x3442,INVALC,0x2F57,INVALC, - 0x3447,0x343D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3440,INVALC, - INVALC,INVALC,INVALC,INVALC,0x344B,INVALC,INVALC,INVALC, - INVALC,0x3443,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x344C,0x344A,INVALC,0x3445,0x3446,INVALC,INVALC,INVALC, - INVALC,0x3975,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3971,0x3972,INVALC,INVALC,INVALC,INVALC,INVALC,0x396F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3970, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x644D,INVALC, - INVALC,INVALC,0x4039,0x403C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x403A,INVALC,INVALC,0x4037,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x403D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4036,0x403E,INVALC,INVALC, - 0x456B,INVALC,0x634C,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x456E,0x456C,INVALC,INVALC,0x456D,INVALC,0x4576,0x634D, - INVALC,0x4570,0x4575,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4571,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4574,INVALC,INVALC,0x4B29, - INVALC,INVALC,INVALC,INVALC,0x4B2B,INVALC,INVALC,INVALC, - /* Block 82, Array index 0x0400 */ - INVALC,0x4B2D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4B2C,0x4B27,0x644E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5031,INVALC, - INVALC,INVALC,INVALC,0x5035,INVALC,0x5030,0x5034,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5441, - 0x5440,INVALC,INVALC,0x5033,INVALC,INVALC,INVALC,0x5752, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C32,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x606F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2278,INVALC,INVALC,INVALC,0x2454,INVALC, - 0x2453,0x2451,INVALC,INVALC,INVALC,INVALC,0x2752,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3976,INVALC,INVALC,INVALC,0x5E25,INVALC,0x2134,INVALC, - INVALC,INVALC,0x2B37,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x227A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2E7B,INVALC,INVALC,INVALC,INVALC,0x403F,0x6453, - INVALC,INVALC,0x2127,INVALC,0x214D,0x2148,0x214E,INVALC, - INVALC,INVALC,INVALC,0x2178,0x2179,INVALC,INVALC,INVALC, - 0x2755,INVALC,INVALC,INVALC,INVALC,INVALC,0x2128,INVALC, - INVALC,0x217A,INVALC,INVALC,INVALC,0x2457,INVALC,0x2B39, - INVALC,0x2F5B,INVALC,0x2F59,INVALC,INVALC,0x2F5A,INVALC, - 0x344D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x227E,0x227D,0x227C,0x2459,INVALC,INVALC, - 0x245A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2B3B,0x2B3D,0x2B3E,INVALC,INVALC,INVALC,0x2F5E, - INVALC,0x2F5F,INVALC,INVALC,INVALC,INVALC,INVALC,0x344F, - INVALC,0x344E,0x397D,0x397A,INVALC,INVALC,0x397E,INVALC, - INVALC,0x4B2F,0x4B2E,0x4B30,INVALC,INVALC,INVALC,0x5442, - INVALC,INVALC,0x212F,0x2135,0x2151,0x217B,INVALC,INVALC, - 0x2322,INVALC,INVALC,INVALC,0x245B,0x2759,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x457A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x275A,INVALC, - /* Block 83, Array index 0x0500 */ - INVALC,INVALC,INVALC,INVALC,0x2136,0x2152,INVALC,INVALC, - INVALC,INVALC,INVALC,0x217D,INVALC,INVALC,INVALC,0x2325, - INVALC,INVALC,INVALC,INVALC,0x2324,0x2326,INVALC,INVALC, - 0x2327,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x245F, - 0x2461,INVALC,INVALC,0x245C,INVALC,INVALC,0x245E,0x245D, - INVALC,INVALC,INVALC,0x2460,INVALC,INVALC,INVALC,0x275B, - INVALC,INVALC,INVALC,INVALC,0x275E,INVALC,INVALC,INVALC, - INVALC,0x275F,INVALC,INVALC,0x275D,INVALC,0x644F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2B3F,INVALC,INVALC, - 0x2B40,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2B43, - INVALC,INVALC,INVALC,0x2F68,INVALC,INVALC,INVALC,0x2F65, - INVALC,0x2F62,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2F60,INVALC,INVALC,0x2F66,0x2F61,0x2F63,INVALC,0x2F64, - 0x3450,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A23,INVALC,INVALC,0x3A21,INVALC,INVALC,0x3451,INVALC, - INVALC,0x4041,INVALC,INVALC,INVALC,INVALC,0x4040,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B31,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B32,INVALC, - 0x5036,INVALC,INVALC,INVALC,0x5037,INVALC,INVALC,INVALC, - INVALC,INVALC,0x602C,INVALC,0x2137,0x2154,0x2153,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2328,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2463,0x2462,0x2761,INVALC,INVALC, - INVALC,0x2760,INVALC,INVALC,INVALC,0x625A,INVALC,0x2762, - INVALC,INVALC,INVALC,INVALC,0x2B48,0x2B46,INVALC,INVALC, - INVALC,INVALC,0x2B47,INVALC,0x2F6F,INVALC,0x2F6C,0x2F6A, - 0x2F6D,0x2F6E,INVALC,INVALC,0x3452,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4045,0x4044,INVALC,INVALC,INVALC,INVALC,INVALC,0x4046, - INVALC,INVALC,0x4621,INVALC,INVALC,0x457E,0x4B33,INVALC, - INVALC,INVALC,0x4D2C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2155,INVALC,INVALC, - /* Block 84, Array index 0x0600 */ - 0x2156,INVALC,INVALC,0x2223,0x2222,INVALC,INVALC,0x2224, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5038,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2226,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6450,0x2465,INVALC,0x2B49, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4623,0x4B34,INVALC,0x5444,0x5C34,INVALC, - 0x2129,INVALC,0x2157,0x2466,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2159,INVALC, - INVALC,INVALC,INVALC,0x232A,INVALC,INVALC,INVALC,0x232B, - 0x232D,INVALC,INVALC,INVALC,INVALC,0x2763,INVALC,INVALC, - 0x2B4A,INVALC,INVALC,INVALC,INVALC,0x215A,INVALC,0x2227, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6451,INVALC,0x2A5C, - INVALC,0x212A,INVALC,INVALC,INVALC,0x2228,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2467,INVALC,0x2765,INVALC, - INVALC,INVALC,0x2766,INVALC,INVALC,0x2B4B,INVALC,INVALC, - 0x4047,INVALC,INVALC,INVALC,INVALC,INVALC,0x215B,INVALC, - INVALC,0x2229,INVALC,0x232F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2767,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6452,INVALC,INVALC,INVALC,INVALC, - 0x3454,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A28,INVALC, - 0x3A27,0x404A,0x4049,0x4048,INVALC,INVALC,0x4625,INVALC, - 0x4626,0x4B35,INVALC,0x5445,INVALC,INVALC,0x212B,0x215C, - INVALC,INVALC,0x222A,INVALC,INVALC,INVALC,0x2331,INVALC, - INVALC,0x2769,0x276A,INVALC,0x3455,0x3A29,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x215E,INVALC,0x2160,INVALC, - 0x222B,INVALC,0x2333,INVALC,INVALC,0x276B,INVALC,INVALC, - INVALC,0x2B50,0x2B4F,INVALC,0x2B4E,0x2B4D,INVALC,INVALC, - 0x404B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2231,INVALC,0x222D,0x222E, - INVALC,0x222F,INVALC,INVALC,INVALC,INVALC,INVALC,0x2335, - /* Block 85, Array index 0x0700 */ - 0x2337,INVALC,INVALC,INVALC,INVALC,0x2339,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x233A,INVALC,0x233B,0x2334,INVALC, - INVALC,INVALC,0x2476,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2479,0x247E,0x2475,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2524, - INVALC,INVALC,0x2477,INVALC,0x247B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2470,INVALC,INVALC,INVALC,INVALC,0x2521, - INVALC,INVALC,INVALC,INVALC,0x2473,INVALC,INVALC,INVALC, - INVALC,0x247C,INVALC,0x2478,0x2474,0x246D,INVALC,INVALC, - 0x247D,0x2522,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2523,INVALC,INVALC,INVALC,INVALC,0x276E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2774,0x2778,INVALC,INVALC,0x2775,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2771,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x276C,INVALC,INVALC, - INVALC,0x2770,0x2779,INVALC,INVALC,INVALC,INVALC,0x2773, - INVALC,INVALC,INVALC,0x276F,0x2777,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2B5C,0x2B5D, - INVALC,INVALC,INVALC,0x2B57,0x2B59,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2B5B,INVALC,0x2B54,0x2B5E,INVALC,INVALC, - INVALC,0x2B51,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2B55,0x6454,0x2B63,0x2B61,INVALC,INVALC, - 0x2B53,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2B58,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2F77, - 0x3021,INVALC,INVALC,INVALC,0x2F74,0x2F78,0x3022,INVALC, - INVALC,0x2F79,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 86, Array index 0x0800 */ - 0x2F7B,INVALC,0x2F7A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2F73,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2F76,INVALC,INVALC,INVALC,INVALC, - 0x2F7E,0x3025,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6721,0x345F,INVALC,0x3468,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3466,INVALC,INVALC,INVALC,INVALC,0x3467, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x345B,INVALC,INVALC,0x3458,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3462,0x3461,INVALC,INVALC,INVALC, - 0x3457,0x3A36,0x3464,INVALC,INVALC,0x345E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3459,INVALC,INVALC,0x6457,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6456,0x6722,0x6455,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3A3C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3A31,0x3A38,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A2E,0x3A2A, - INVALC,INVALC,INVALC,0x3A33,INVALC,INVALC,0x3A40,INVALC, - 0x3A34,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3A42,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A3B, - INVALC,INVALC,INVALC,INVALC,0x3A2F,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6723,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4051,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x404E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A2B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x404C,INVALC,INVALC,INVALC,0x6725,INVALC, - 0x6724,INVALC,INVALC,INVALC,0x6458,INVALC,INVALC,INVALC, - 0x462E,INVALC,INVALC,0x4628,INVALC,INVALC,INVALC,INVALC, - /* Block 87, Array index 0x0900 */ - INVALC,INVALC,INVALC,0x4629,INVALC,0x4636,INVALC,0x462C, - INVALC,INVALC,INVALC,0x462A,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4634,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4633,INVALC,INVALC,INVALC,INVALC,INVALC,0x4631,INVALC, - 0x645A,INVALC,0x6459,INVALC,INVALC,INVALC,0x4650,INVALC, - 0x4630,INVALC,INVALC,0x4B41,INVALC,0x4B38,INVALC,INVALC, - INVALC,0x4B3D,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B44, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4B3E,INVALC,INVALC,0x4B37, - INVALC,INVALC,INVALC,0x4B3B,INVALC,0x4B43,INVALC,0x4B45, - 0x4B40,0x4635,0x4B3C,INVALC,0x4B39,INVALC,0x4B3F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x503F, - INVALC,0x5040,INVALC,INVALC,INVALC,INVALC,INVALC,0x503B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x503D,INVALC,0x5448,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5449,0x5447,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x645D,0x645B,INVALC,0x575B,INVALC,0x575A,INVALC, - INVALC,INVALC,INVALC,0x5758,INVALC,INVALC,0x5759,0x5757, - 0x575C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A2D, - 0x645E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6726,0x6727,0x645C,0x5E26,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6728,INVALC,INVALC,0x5F40, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6071,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2177,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x233E,INVALC,INVALC,0x252C,INVALC, - INVALC,0x2526,INVALC,INVALC,0x252B,0x252A,INVALC,0x2529, - INVALC,0x2548,0x2527,0x2528,INVALC,INVALC,0x2822,INVALC, - 0x277D,INVALC,INVALC,0x277C,0x2821,0x277B,INVALC,INVALC, - /* Block 88, Array index 0x0A00 */ - 0x2B65,INVALC,INVALC,INVALC,INVALC,0x3027,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A44,0x3A43, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4052,INVALC,0x4637, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F41,INVALC,INVALC, - INVALC,0x2161,INVALC,INVALC,0x2234,INVALC,INVALC,0x6249, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2341,0x2342,INVALC,INVALC,0x233F,0x2340,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2531,0x253E,INVALC,0x2530, - INVALC,INVALC,0x2540,0x2536,0x252F,INVALC,0x253C,INVALC, - 0x252D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2532,0x2541,0x2542,0x2533,0x2538, - 0x2537,0x645F,INVALC,INVALC,INVALC,INVALC,INVALC,0x2535, - INVALC,INVALC,INVALC,0x2825,INVALC,0x2823,INVALC,0x2826, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2828,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2829,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x282A, - INVALC,0x2824,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6460,INVALC,INVALC,0x2B69,0x2B68,INVALC, - 0x2B6C,0x2B67,0x2B6A,INVALC,INVALC,INVALC,0x2B71,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2B70,INVALC,INVALC,INVALC, - INVALC,0x2B6B,INVALC,INVALC,INVALC,INVALC,0x2B6D,0x2B72, - 0x2B6E,INVALC,INVALC,INVALC,0x2B66,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x302A, - INVALC,INVALC,INVALC,0x3030,INVALC,INVALC,0x302F,INVALC, - 0x3038,INVALC,INVALC,INVALC,0x3034,0x3035,INVALC,INVALC, - 0x3033,0x3028,0x3037,INVALC,INVALC,0x302B,INVALC,INVALC, - INVALC,0x3036,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3032,INVALC,0x346E,0x3471,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3472,INVALC, - 0x3474,INVALC,0x3469,INVALC,INVALC,INVALC,INVALC,0x346B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x346F,0x3475, - /* Block 89, Array index 0x0B00 */ - INVALC,INVALC,INVALC,0x3476,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6461, - INVALC,INVALC,0x6462,0x6463,INVALC,INVALC,INVALC,INVALC, - 0x3A4A,INVALC,0x3A45,INVALC,INVALC,INVALC,INVALC,0x3A47, - INVALC,INVALC,0x3A50,INVALC,INVALC,INVALC,0x3A4C,INVALC, - INVALC,INVALC,INVALC,0x6336,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3A4E,INVALC,0x3A49,INVALC,0x3A4B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6337,INVALC,0x6464, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4057,INVALC,INVALC,INVALC,INVALC,INVALC,0x405B,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4056,INVALC,INVALC,0x405E, - 0x405C,0x4058,INVALC,INVALC,INVALC,INVALC,0x405D,0x6343, - INVALC,0x405A,0x4059,INVALC,0x4054,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4643,0x463E,INVALC,INVALC,INVALC,0x4642, - 0x463C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x463D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x463A,0x4645,INVALC,INVALC, - INVALC,INVALC,0x4638,INVALC,INVALC,0x4641,0x4644,0x4640, - INVALC,INVALC,INVALC,0x6465,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4B46,INVALC,0x4B50,INVALC,INVALC,0x4B51, - INVALC,INVALC,0x4B4B,INVALC,INVALC,0x463F,INVALC,INVALC, - 0x4B4D,INVALC,0x4B49,INVALC,0x4B4F,0x4B4C,INVALC,0x4B47, - INVALC,INVALC,INVALC,0x504A,INVALC,INVALC,INVALC,INVALC, - 0x504B,INVALC,INVALC,0x5048,0x504C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5049,INVALC,INVALC,0x544B,INVALC,INVALC, - 0x544C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5A2F,INVALC,INVALC,INVALC, - 0x5A2E,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E28,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2343,INVALC, - 0x2545,0x2543,0x2544,0x282D,INVALC,0x2B77,INVALC,0x3477, - INVALC,INVALC,INVALC,0x3A52,INVALC,INVALC,INVALC,INVALC, - /* Block 90, Array index 0x0C00 */ - 0x6466,0x504D,0x2139,INVALC,0x2235,0x2344,INVALC,INVALC, - 0x2B7A,0x2B79,0x213A,0x2546,INVALC,INVALC,INVALC,INVALC, - 0x4646,0x6560,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2236,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3479, - INVALC,INVALC,INVALC,0x405F,INVALC,INVALC,0x4B53,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2238,INVALC,0x2237,INVALC,0x2239,INVALC,0x2347,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2549,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x282E,0x282F,0x6467,INVALC,INVALC, - INVALC,INVALC,0x2B7C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x347B,INVALC,0x347C,0x347D,INVALC, - INVALC,INVALC,INVALC,0x3A53,0x3A54,INVALC,0x4060,INVALC, - 0x4061,INVALC,INVALC,INVALC,0x4648,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x223B,INVALC,INVALC, - INVALC,INVALC,0x234B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x234D,INVALC, - INVALC,0x2555,INVALC,INVALC,0x254C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x254B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2556,0x2553,0x254E,INVALC,INVALC,0x2551, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2841,0x2833,INVALC,INVALC, - 0x2838,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2845, - 0x2840,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x283D, - INVALC,INVALC,0x2837,INVALC,0x2835,INVALC,INVALC,INVALC, - INVALC,0x283F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2C26,INVALC,0x2846, - INVALC,0x2C2D,INVALC,INVALC,INVALC,INVALC,INVALC,0x2C21, - INVALC,INVALC,0x2C2C,INVALC,INVALC,INVALC,INVALC,0x2C2E, - INVALC,INVALC,INVALC,0x2C23,INVALC,INVALC,INVALC,0x2C24, - 0x2C25,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2C2B,0x2C29,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 91, Array index 0x0D00 */ - INVALC,INVALC,0x2C2A,INVALC,0x2C28,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3040,INVALC,0x2C27,INVALC,INVALC, - 0x6270,INVALC,0x304F,INVALC,0x304A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x304E,INVALC,INVALC,0x303E,INVALC,INVALC, - INVALC,0x303B,0x3045,INVALC,0x3048,INVALC,0x3052,INVALC, - INVALC,INVALC,0x303C,0x3522,0x3538,INVALC,INVALC,0x304D, - INVALC,0x304B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3528,0x3524,INVALC,0x3531,INVALC,0x3533, - INVALC,INVALC,INVALC,INVALC,INVALC,0x352E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x352A,INVALC,INVALC,0x352F,0x353B, - INVALC,INVALC,INVALC,INVALC,0x353A,INVALC,INVALC,INVALC, - INVALC,0x3539,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3527,INVALC,0x353C,INVALC,INVALC,INVALC,INVALC, - 0x3530,INVALC,INVALC,0x352B,INVALC,INVALC,0x3529,0x3534, - INVALC,0x3532,INVALC,0x3537,INVALC,0x3535,INVALC,INVALC, - INVALC,0x3A75,INVALC,INVALC,INVALC,INVALC,0x3A7C,INVALC, - 0x3A63,0x3A61,0x3A58,INVALC,INVALC,0x3A5B,0x3A77,0x3A72, - 0x3A59,0x3A60,INVALC,INVALC,INVALC,0x3A7B,INVALC,INVALC, - INVALC,0x3A66,INVALC,INVALC,INVALC,INVALC,0x3A62,INVALC, - 0x3A5C,0x3A5E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A73,0x3A5A,INVALC,0x3A57,0x3A7A,INVALC,INVALC,INVALC, - 0x3A56,INVALC,0x3A79,0x3A78,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4067,INVALC,0x4066,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4064,0x3A6B, - 0x406A,0x6468,INVALC,0x6469,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x464C,INVALC,INVALC,0x464A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x464F, - 0x4653,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4B5C,INVALC,0x4B58,INVALC,0x4B54,INVALC, - /* Block 92, Array index 0x0E00 */ - 0x4B5E,INVALC,INVALC,INVALC,0x4B56,INVALC,0x4B5A,INVALC, - INVALC,INVALC,0x4B5B,INVALC,INVALC,0x4B5D,0x4B5F,INVALC, - INVALC,0x5050,0x5053,INVALC,INVALC,0x5051,INVALC,INVALC, - 0x504F,INVALC,INVALC,INVALC,0x5054,INVALC,INVALC,0x504E, - INVALC,INVALC,0x5056,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5450,INVALC,0x544E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5452,INVALC,0x544F,INVALC,0x5451,INVALC,0x5453, - INVALC,0x5A31,0x5761,0x575E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5C36,INVALC,0x5C39,INVALC,0x5C3A,INVALC, - INVALC,0x5E29,0x5F42,INVALC,INVALC,INVALC,INVALC,0x6073, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2848,INVALC,INVALC,INVALC,INVALC,INVALC,0x625C,0x646A, - INVALC,INVALC,0x2C2F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4071,INVALC,0x4072,INVALC, - INVALC,0x5057,INVALC,INVALC,0x5A34,INVALC,0x5C3B,INVALC, - 0x213B,INVALC,0x223D,INVALC,INVALC,INVALC,0x2350,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x255A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x284C,INVALC,0x284A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x284E,0x284B,0x284D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2C32,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3057, - INVALC,INVALC,INVALC,0x3056,0x3055,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3541,INVALC,INVALC,INVALC,INVALC, - 0x353F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3A7E,INVALC,0x4074, - INVALC,INVALC,0x4075,0x4076,0x4073,0x6345,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5A35,INVALC,INVALC,INVALC,0x5E2A, - INVALC,0x223E,INVALC,INVALC,INVALC,0x255E,0x255C,0x255D, - /* Block 93, Array index 0x0F00 */ - 0x2850,INVALC,INVALC,INVALC,INVALC,0x3058,0x3059,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x624A,0x223F,INVALC,INVALC,INVALC, - 0x2352,0x2851,INVALC,0x2C34,INVALC,INVALC,0x3B24,INVALC, - 0x4078,0x6525,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x255F,INVALC,INVALC,INVALC,0x2C35, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5454,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2354,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2854,0x2855,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x305A,0x305B,INVALC,INVALC,INVALC,0x646B, - INVALC,INVALC,INVALC,0x3543,INVALC,INVALC,0x3B26,0x3B25, - INVALC,0x3544,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5A38,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x646C, - 0x2355,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x235A,INVALC,INVALC,INVALC,0x2561,0x2566,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2562,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2563,INVALC,0x285D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x285E,INVALC,INVALC,INVALC, - INVALC,0x285C,0x285F,0x2857,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2858,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2C3F,INVALC,INVALC, - INVALC,0x2C3B,INVALC,INVALC,INVALC,0x646D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2C3C,0x2C42,INVALC,INVALC, - INVALC,0x2C3E,0x2C41,INVALC,INVALC,0x2C43,0x2C3D,INVALC, - INVALC,0x3063,INVALC,0x305F,INVALC,INVALC,INVALC,0x3064, - INVALC,INVALC,INVALC,0x3061,INVALC,0x3062,INVALC,INVALC, - INVALC,INVALC,0x305E,INVALC,0x6271,INVALC,0x6272,INVALC, - /* Block 94, Array index 0x1000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x354B,0x3548,0x3547,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3551,INVALC,INVALC,0x3552,INVALC,0x354F,INVALC,INVALC, - 0x3555,INVALC,INVALC,INVALC,0x3B2B,INVALC,INVALC,INVALC, - INVALC,0x3546,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x354E,INVALC,0x354A,INVALC,INVALC,0x3554, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3B36,INVALC,INVALC,0x3B28,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3B27,INVALC,0x3B37,INVALC, - 0x3B2A,INVALC,INVALC,INVALC,INVALC,0x3B2E,INVALC,0x3B34, - INVALC,INVALC,INVALC,0x3B33,INVALC,INVALC,INVALC,0x3B31, - INVALC,INVALC,INVALC,0x3B2D,INVALC,INVALC,INVALC,INVALC, - 0x4121,INVALC,INVALC,INVALC,0x407C,INVALC,0x407A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4079,0x407D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x646E,INVALC,INVALC, - 0x465C,INVALC,INVALC,0x4654,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4656,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4659,0x465A,INVALC,0x646F,0x4B65, - 0x4B66,0x4B63,INVALC,INVALC,INVALC,INVALC,0x4B6B,INVALC, - 0x4B67,INVALC,INVALC,0x4B69,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4B6A,0x4B68,0x6470,0x5058,INVALC, - INVALC,INVALC,INVALC,0x505B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x505A,INVALC,INVALC,0x6471,INVALC, - INVALC,0x5457,INVALC,0x5459,INVALC,INVALC,0x5455,0x6472, - INVALC,0x5762,INVALC,INVALC,0x5A39,INVALC,INVALC,INVALC, - 0x5C3D,INVALC,0x5C3C,INVALC,0x5C3E,INVALC,INVALC,INVALC, - 0x5E2D,INVALC,INVALC,0x5F43,INVALC,INVALC,INVALC,0x6030, - INVALC,INVALC,INVALC,0x213C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3557,0x4B6C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2567,0x2860,INVALC, - INVALC,INVALC,0x2C45,0x2C44,INVALC,INVALC,INVALC,INVALC, - /* Block 95, Array index 0x1100 */ - 0x2163,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x235C,0x2568,INVALC,0x256B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2862,0x2861,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2C46,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3066,INVALC,0x3069,INVALC,0x3068,0x306A, - 0x3067,INVALC,0x355B,INVALC,INVALC,0x3559,INVALC,INVALC, - INVALC,0x3558,0x355A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3979,INVALC,INVALC,INVALC,0x3B3A,0x3B3B, - 0x3B3D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x465D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4B6D,INVALC,INVALC,INVALC,0x4B70,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6473,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6677,INVALC,INVALC,INVALC,INVALC,INVALC,0x2863, - INVALC,INVALC,0x213D,INVALC,INVALC,INVALC,INVALC,0x213E, - INVALC,0x2247,INVALC,0x2248,INVALC,0x6678,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x256E,INVALC,0x256D,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2865,0x2867,INVALC,INVALC,INVALC,0x2868,INVALC,INVALC, - INVALC,0x2C48,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x306C,INVALC,INVALC,INVALC,INVALC,INVALC,0x306B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3561,0x3560,INVALC,0x3B3F,INVALC,0x3B40, - 0x3B3E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6474,INVALC,0x4661, - 0x4660,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x505C,INVALC,INVALC,0x6475,INVALC,INVALC, - 0x5C3F,INVALC,INVALC,INVALC,0x213F,0x2361,INVALC,INVALC, - 0x2869,0x286B,INVALC,0x2C4C,0x2C4B,0x306E,INVALC,INVALC, - /* Block 96, Array index 0x1200 */ - INVALC,INVALC,INVALC,0x256F,INVALC,INVALC,0x286D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2164,0x2249,0x2362,INVALC, - INVALC,0x3B42,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2571,INVALC, - INVALC,0x286E,INVALC,INVALC,INVALC,0x2870,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2C4D, - INVALC,INVALC,0x306F,INVALC,0x3562,INVALC,INVALC,INVALC, - INVALC,0x3563,0x3B47,0x3B45,INVALC,INVALC,0x3B44,INVALC, - INVALC,INVALC,0x4122,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5763,INVALC,INVALC, - 0x2140,0x2141,0x224A,0x2351,INVALC,0x2871,INVALC,INVALC, - INVALC,INVALC,0x4123,0x505E,INVALC,0x5764,INVALC,INVALC, - 0x6164,0x2142,INVALC,0x2572,INVALC,INVALC,0x2C50,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4124,INVALC, - INVALC,INVALC,0x5F45,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2876,0x2875,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6264,0x3070,0x3072, - INVALC,INVALC,INVALC,0x3071,0x6476,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6477,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3B4B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4663,0x4664,INVALC,INVALC,INVALC, - 0x4B72,INVALC,0x6478,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5E2F,INVALC,INVALC,INVALC,INVALC,0x224D, - 0x6251,INVALC,0x224C,INVALC,INVALC,INVALC,0x2578,INVALC, - INVALC,INVALC,INVALC,0x2366,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2367,0x2369,0x2577,INVALC,INVALC,0x257B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2576,0x2574, - INVALC,0x287E,INVALC,INVALC,0x257C,INVALC,INVALC,INVALC, - 0x2622,INVALC,0x2621,INVALC,INVALC,INVALC,0x257D,INVALC, - INVALC,0x2623,INVALC,INVALC,0x257A,INVALC,0x2575,INVALC, - /* Block 97, Array index 0x1300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2878, - 0x2922,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6266,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2C5A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2877,0x2C5B,INVALC,INVALC,INVALC,INVALC,0x287A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2921,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6267,INVALC,0x2C60,0x3079,INVALC,INVALC,0x2C56,0x3073, - INVALC,0x2C57,0x2C5D,INVALC,INVALC,INVALC,0x307E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2C54,INVALC,INVALC,INVALC, - 0x2C5F,0x2C61,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x307A,0x3078,0x307B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2C5C,INVALC,0x3076,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3122,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3125,INVALC,INVALC,INVALC,INVALC, - 0x3568,0x3074,INVALC,INVALC,INVALC,INVALC,0x3127,INVALC, - INVALC,0x3571,INVALC,INVALC,0x3572,INVALC,0x3123,0x3128, - INVALC,0x3121,0x356F,INVALC,INVALC,INVALC,0x3126,INVALC, - INVALC,INVALC,INVALC,0x3B54,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x356A,INVALC,0x3B56,INVALC,INVALC,INVALC,0x3B55,0x356E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3579,INVALC, - INVALC,INVALC,INVALC,0x3B58,INVALC,0x3B59,INVALC,0x3576, - INVALC,0x3B5A,0x3B4D,INVALC,INVALC,INVALC,0x3574,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3B5E,INVALC,INVALC, - /* Block 98, Array index 0x1400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3B4F, - INVALC,INVALC,INVALC,INVALC,0x3B51,INVALC,INVALC,INVALC, - INVALC,0x3B5D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x412B,INVALC,INVALC,INVALC,INVALC,0x3B61,INVALC, - 0x3B62,0x3B63,0x3B50,INVALC,INVALC,0x6479,INVALC,INVALC, - INVALC,INVALC,0x4129,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4127,0x412C,INVALC,0x466F,INVALC,INVALC,INVALC,INVALC, - 0x466E,INVALC,0x4128,INVALC,0x466C,0x412E,INVALC,INVALC, - INVALC,INVALC,0x466D,0x412A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x647A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B73, - INVALC,0x4B7E,INVALC,INVALC,0x4B74,INVALC,INVALC,INVALC, - 0x4671,INVALC,INVALC,INVALC,0x4B7C,INVALC,INVALC,INVALC, - INVALC,0x4672,INVALC,INVALC,INVALC,INVALC,INVALC,0x466A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4C21,INVALC,INVALC,0x4668,INVALC,0x4673,INVALC,INVALC, - INVALC,0x466B,INVALC,INVALC,INVALC,0x4C23,0x4674,0x4C24, - 0x4B77,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B7A, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4B76,INVALC,0x5068, - 0x4C28,0x5067,INVALC,INVALC,0x4C29,INVALC,0x4C25,INVALC, - INVALC,INVALC,INVALC,0x4B79,INVALC,INVALC,0x4B75,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5061, - INVALC,0x5063,INVALC,0x506A,INVALC,0x5064,INVALC,INVALC, - 0x5066,INVALC,INVALC,INVALC,0x506C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5062,0x5065, - 0x506B,INVALC,INVALC,0x6679,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5461,0x545F,0x545C,0x545E,0x545D,INVALC,INVALC, - INVALC,INVALC,0x545B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5765,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 99, Array index 0x1500 */ - INVALC,INVALC,0x5F46,INVALC,INVALC,0x613E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x236B, - INVALC,INVALC,INVALC,0x2625,INVALC,INVALC,INVALC,INVALC, - 0x2C63,INVALC,INVALC,INVALC,INVALC,INVALC,0x3B64,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4676,INVALC,INVALC,INVALC,0x4675,INVALC,INVALC,0x4C2C, - INVALC,0x506D,INVALC,INVALC,INVALC,0x5F48,INVALC,0x2165, - 0x2166,0x224E,INVALC,0x2628,0x2629,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3129,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2250, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x236F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x236C,INVALC,0x236D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x236E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2639,INVALC,INVALC, - 0x262E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x262A,INVALC,INVALC,0x2637,INVALC,INVALC, - INVALC,INVALC,INVALC,0x262F,INVALC,0x2636,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2635,INVALC,0x2633,0x2634,0x2638,0x2631,INVALC, - INVALC,INVALC,INVALC,0x647B,INVALC,0x2632,0x2931,0x292A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2926,INVALC,INVALC,INVALC,INVALC,0x2928, - INVALC,INVALC,0x2925,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2934,0x2932,INVALC,INVALC,INVALC,0x2933,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x292E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2930,0x2937,0x2935, - 0x2936,0x292F,INVALC,INVALC,0x2929,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2C6D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 100, Array index 0x1600 */ - INVALC,INVALC,INVALC,INVALC,0x2C6F,0x2C70,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2C6C, - INVALC,0x3132,INVALC,0x3133,INVALC,INVALC,INVALC,0x2C6B, - INVALC,0x2C6E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x312C,INVALC, - 0x312F,0x3135,INVALC,INVALC,INVALC,0x3138,INVALC,0x3137, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x313C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x312E,0x3139,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3130,0x313B,0x3136,INVALC,INVALC, - 0x647C,INVALC,INVALC,INVALC,0x647D,INVALC,0x3631,INVALC, - INVALC,INVALC,0x3627,INVALC,0x3629,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3626,0x3632,INVALC,INVALC,INVALC, - INVALC,0x3622,INVALC,INVALC,INVALC,INVALC,0x357C,0x362B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3623,INVALC, - INVALC,INVALC,INVALC,0x357D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3624,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x362D,INVALC,INVALC,INVALC,0x647E,INVALC, - INVALC,INVALC,0x362E,INVALC,INVALC,INVALC,INVALC,0x3B71, - INVALC,0x3B70,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3B73,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3B67,INVALC, - INVALC,INVALC,0x3B66,INVALC,INVALC,INVALC,0x3B68,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3B72, - 0x3B6D,INVALC,0x6339,INVALC,INVALC,INVALC,0x3B6F,INVALC, - /* Block 101, Array index 0x1700 */ - INVALC,INVALC,INVALC,0x6521,INVALC,INVALC,INVALC,0x4149, - 0x4132,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x413A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4138,INVALC,INVALC,INVALC,0x413E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x413D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4136,0x4133,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4134,INVALC,0x4148,0x4725,0x4142,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4144,0x4145, - INVALC,0x6676,INVALC,INVALC,0x4678,INVALC,INVALC,0x4728, - INVALC,INVALC,INVALC,INVALC,INVALC,0x467E,0x4724,0x467A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4721,INVALC,0x472A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4723,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4722,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x467B,INVALC,0x4729,INVALC, - 0x4C2D,0x4726,INVALC,0x4C35,INVALC,INVALC,0x4C38,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4C30,0x4C2F,INVALC, - INVALC,0x4C3B,INVALC,INVALC,0x4C31,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4C2E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C3E,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C3F, - 0x4C34,INVALC,0x4C3D,INVALC,INVALC,INVALC,INVALC,0x4C3A, - INVALC,INVALC,INVALC,INVALC,0x4C39,INVALC,0x6522,INVALC, - INVALC,0x4C37,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5070,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C32,INVALC, - 0x5077,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5076,INVALC,0x506F,INVALC,0x5079,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5075,INVALC,INVALC,0x5464, - INVALC,0x5467,INVALC,INVALC,INVALC,0x576B,INVALC,0x576D, - INVALC,INVALC,0x576C,INVALC,INVALC,INVALC,0x5469,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x576A,INVALC, - INVALC,0x5770,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 102, Array index 0x1800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x576E,INVALC,INVALC, - 0x5A3B,INVALC,0x5A3C,0x5A3A,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5E31,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6523,INVALC,INVALC,INVALC,0x5F4A,0x5F4B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F49, - 0x6032,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2C72,INVALC,INVALC,0x2167,0x2168,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2C74,INVALC,0x2C76,INVALC,0x2C73,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x313D,INVALC,0x3637,0x3636,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3634,INVALC,INVALC,INVALC,INVALC,0x3B74, - 0x3B75,0x3B76,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x414B,INVALC,0x414E,0x6346,INVALC, - 0x414D,0x4730,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5C41,INVALC,INVALC, - 0x2558,0x2939,INVALC,0x3140,INVALC,0x3638,0x3639,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3142,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x293B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x363A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x546B,INVALC,INVALC, - INVALC,INVALC,0x293C,INVALC,INVALC,INVALC,0x2C77,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x363C, - INVALC,0x363F,0x363D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3B79,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5A3F,INVALC,INVALC,INVALC, - 0x2169,INVALC,INVALC,0x3641,0x4150,INVALC,INVALC,0x2251, - INVALC,INVALC,0x2373,0x2372,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x263D,INVALC, - INVALC,0x625E,INVALC,INVALC,INVALC,INVALC,0x2943,0x293E, - /* Block 103, Array index 0x1900 */ - INVALC,0x2942,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2940, - 0x2941,INVALC,0x2C7E,0x2C7A,INVALC,INVALC,0x2D23,INVALC, - INVALC,INVALC,INVALC,0x2C7C,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2C79,INVALC,INVALC,0x2C7D,INVALC,INVALC,INVALC, - 0x2D21,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2D24, - 0x2D25,INVALC,INVALC,0x2D22,0x2C37,INVALC,INVALC,INVALC, - 0x3146,INVALC,INVALC,INVALC,0x314C,INVALC,0x3144,INVALC, - 0x3149,INVALC,INVALC,0x3148,INVALC,0x314D,0x3145,INVALC, - 0x3143,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3642, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x314B,INVALC,INVALC,0x3644,INVALC,INVALC,INVALC,0x3645, - INVALC,0x3C26,INVALC,0x3B7D,INVALC,0x3C25,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3C23,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3B7C,INVALC,0x3B7E, - INVALC,0x3C24,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x415B,0x4156, - INVALC,INVALC,0x4159,0x4151,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4734,INVALC,0x4735,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4739,0x4733,0x4737,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4C44,0x4C46,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4C41,INVALC,INVALC,0x4C40,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4C43,INVALC,INVALC,0x507D, - INVALC,0x5123,INVALC,0x507A,INVALC,0x507E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5122,0x5471,INVALC, - 0x546F,0x5470,INVALC,INVALC,0x546C,0x546D,INVALC,0x5472, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A43, - INVALC,0x5A42,0x6526,INVALC,INVALC,0x5C42,INVALC,0x5C43, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x613F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2641,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 104, Array index 0x1A00 */ - INVALC,INVALC,0x6527,INVALC,INVALC,INVALC,0x5124,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2945,INVALC,0x2D27,INVALC, - INVALC,0x6632,INVALC,INVALC,INVALC,INVALC,0x3648,INVALC, - INVALC,0x3647,0x3646,INVALC,INVALC,INVALC,0x3C29,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5126,0x6633,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2252, - INVALC,INVALC,0x2377,INVALC,INVALC,INVALC,0x2378,0x2375, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2648,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2649,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2645,INVALC,0x2644,INVALC,INVALC,INVALC, - 0x2647,INVALC,INVALC,0x2642,INVALC,INVALC,INVALC,INVALC, - INVALC,0x264A,INVALC,INVALC,INVALC,0x6257,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2947,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2952,INVALC,0x2949,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x625F,INVALC,0x294A,INVALC,INVALC,INVALC,INVALC,0x294F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2948,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x294E,0x294C,0x6528,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6529,INVALC,INVALC,INVALC, - INVALC,0x2D36,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2D2E,INVALC,INVALC,0x2D30, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2D2D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2D31,0x2D2B,0x2D3A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2D2A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2951,INVALC,0x2D34,INVALC,INVALC,0x2D32,INVALC, - /* Block 105, Array index 0x1B00 */ - 0x2D39,0x2D37,INVALC,INVALC,INVALC,0x2D38,0x652B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x652A,INVALC,INVALC,INVALC,INVALC,0x315D,INVALC,INVALC, - INVALC,0x3157,INVALC,0x3153,INVALC,INVALC,0x315B,INVALC, - INVALC,INVALC,0x315E,0x3164,0x3150,INVALC,INVALC,0x315F, - INVALC,INVALC,INVALC,INVALC,0x3156,INVALC,INVALC,INVALC, - 0x3163,INVALC,INVALC,INVALC,INVALC,INVALC,0x3154,0x314F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x315A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3159, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2D2F,INVALC,INVALC,0x3162,0x3158,INVALC, - 0x3161,0x3160,0x652D,INVALC,INVALC,INVALC,0x652C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3655,INVALC,INVALC,INVALC, - 0x3660,INVALC,INVALC,0x364E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x365B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3657,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3651,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x365A,INVALC,INVALC, - 0x364D,0x365C,0x3650,INVALC,INVALC,INVALC,0x364B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3654,0x3478,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x364C,0x3652, - 0x365E,0x365F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3656,INVALC,0x3C45,INVALC,0x3C41,INVALC,INVALC, - INVALC,INVALC,0x3C38,INVALC,INVALC,INVALC,INVALC,0x3C3E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3653,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3C3D,INVALC,INVALC,0x3C32,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3C2A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3C31,0x3C42, - /* Block 106, Array index 0x1C00 */ - 0x3C39,0x3C3B,0x3C34,0x3C2F,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3C37,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C3C,INVALC,INVALC,INVALC,0x3C44,INVALC,0x3C33,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x652F,INVALC,INVALC,0x652E,INVALC,0x3C40,INVALC, - INVALC,0x4165,INVALC,INVALC,INVALC,INVALC,0x4177,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4168,INVALC, - INVALC,INVALC,INVALC,0x416B,INVALC,INVALC,0x415D,0x4175, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4173,INVALC,INVALC, - 0x4174,INVALC,INVALC,INVALC,INVALC,0x416F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4179,INVALC,INVALC,0x4178,INVALC,INVALC,0x4176, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x416D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x416A,0x417B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4172,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x473A, - INVALC,INVALC,0x473D,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4751,INVALC,INVALC,INVALC,INVALC,0x474E,INVALC,0x4746, - INVALC,INVALC,0x4747,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x473E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6352,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4743,INVALC,INVALC,INVALC,INVALC,0x473B,INVALC,INVALC, - 0x473C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4745,0x4748,INVALC,INVALC,0x474D,0x4744,INVALC, - 0x4C54,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x474C,INVALC,0x4742,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C64,0x4C60,INVALC,INVALC,INVALC,INVALC,0x4C4F, - 0x4C51,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C5F,0x4C57,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 107, Array index 0x1D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4C4D,0x4C50,INVALC,0x4C47,INVALC, - 0x4C5B,INVALC,0x4C56,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4C4A,INVALC,0x4C49,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4C52,INVALC,0x4C62,INVALC,INVALC,INVALC, - INVALC,0x4C5E,0x4C59,INVALC,0x4C61,0x6530,INVALC,INVALC, - INVALC,INVALC,INVALC,0x512C,INVALC,INVALC,0x513C,0x5138, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5128,0x512B,INVALC,0x5140,INVALC,INVALC, - INVALC,INVALC,0x513B,INVALC,0x5131,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5129,0x513E,INVALC,INVALC,INVALC,0x512F, - INVALC,INVALC,INVALC,INVALC,0x5144,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5127,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x512E,INVALC,0x5132,INVALC, - 0x5141,0x513A,INVALC,INVALC,INVALC,INVALC,INVALC,0x6531, - INVALC,INVALC,0x6532,INVALC,INVALC,0x5475,INVALC,INVALC, - INVALC,INVALC,0x547B,INVALC,INVALC,INVALC,0x5521,INVALC, - 0x547C,INVALC,0x5476,INVALC,INVALC,INVALC,INVALC,0x5527, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5523,0x547A,INVALC,INVALC,INVALC,0x5524,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5478, - INVALC,INVALC,0x5529,0x5774,INVALC,INVALC,INVALC,INVALC, - 0x5777,0x5821,0x5776,INVALC,INVALC,0x5778,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x577E,INVALC,0x5779,0x5823, - 0x577D,0x577A,INVALC,INVALC,0x5822,INVALC,INVALC,INVALC, - 0x577B,INVALC,0x6533,INVALC,INVALC,INVALC,0x5A44,INVALC, - INVALC,INVALC,0x5A4F,INVALC,0x5A45,0x5A4E,INVALC,0x5A47, - 0x5A4D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5A48,0x5A46,INVALC,INVALC,0x6534,INVALC, - INVALC,0x5C49,INVALC,INVALC,INVALC,0x5775,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5C47,0x6535,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E35,0x5E34,0x5E33, - /* Block 108, Array index 0x1E00 */ - INVALC,0x5E37,INVALC,INVALC,INVALC,INVALC,0x5F4F,0x5F4E, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6536,0x6537,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6074,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6140,0x6165,0x6141,INVALC,INVALC, - INVALC,INVALC,0x2379,INVALC,INVALC,INVALC,0x2953,0x2954, - INVALC,0x6269,0x2D3C,0x3166,INVALC,INVALC,0x3165,INVALC, - 0x3167,INVALC,INVALC,INVALC,INVALC,0x3662,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x417D,INVALC,INVALC,INVALC,0x417C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C66, - INVALC,INVALC,0x4C65,0x4C67,INVALC,INVALC,INVALC,0x5146, - 0x5145,INVALC,INVALC,INVALC,INVALC,0x552B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2955,0x2956,INVALC,0x2D3D,0x3168,INVALC,0x3C49,0x3C47, - INVALC,0x417E,INVALC,0x4221,0x4753,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2253,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2958,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x316A,INVALC,INVALC,INVALC,INVALC, - 0x3664,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4222,0x6354,INVALC,INVALC, - INVALC,0x4754,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2959,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3665,INVALC,INVALC,0x3C4B,INVALC, - INVALC,0x4226,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x237A,INVALC, - INVALC,0x295A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6538,0x6539,INVALC,INVALC, - INVALC,0x2D42,INVALC,INVALC,INVALC,0x316E,INVALC,INVALC, - INVALC,0x316C,0x316D,INVALC,INVALC,0x3666,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C4D,INVALC,0x653A,INVALC, - INVALC,INVALC,0x4228,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 109, Array index 0x1F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x552D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x295D,INVALC,0x653B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3C4E,INVALC,INVALC, - INVALC,0x4229,0x422A,INVALC,INVALC,INVALC,INVALC,0x2257, - INVALC,0x2254,INVALC,INVALC,0x2421,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2258,0x2259,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x237D,INVALC,0x2425,INVALC,INVALC,0x2655,INVALC, - 0x237C,INVALC,0x2423,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x653C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2964,INVALC,0x2650,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2653,INVALC,0x237E, - INVALC,0x2657,INVALC,INVALC,0x2651,INVALC,INVALC,0x264C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x264D,INVALC,INVALC,INVALC,INVALC,INVALC,0x2963, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x264E,0x2652, - 0x265C,0x2659,0x2656,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x265B,INVALC,INVALC,INVALC,INVALC,0x2D4E, - INVALC,INVALC,0x296B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x296D,INVALC,INVALC,0x6261,INVALC,INVALC,0x296C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x296A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2965, - INVALC,INVALC,INVALC,INVALC,0x2969,INVALC,0x6260,INVALC, - INVALC,INVALC,0x2967,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2D4F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2D46, - /* Block 110, Array index 0x2000 */ - INVALC,INVALC,0x2D50,INVALC,INVALC,0x2D48,0x2D4A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2D49,0x2D47,0x2D4D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x317A,INVALC,INVALC,INVALC, - INVALC,0x2D4B,INVALC,0x2D45,0x2D57,INVALC,0x2D53,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2D55,0x2D51,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3177,0x3173, - INVALC,INVALC,INVALC,0x3179,0x3226,0x3176,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x316F,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3222,0x3225,0x3172,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3221,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3178, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3227,INVALC, - INVALC,0x317D,0x317B,0x317C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x653D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x366F,INVALC,INVALC, - 0x367A,0x3721,INVALC,INVALC,INVALC,INVALC,0x3C50,INVALC, - INVALC,0x3672,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x366A,INVALC,0x366B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x366C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3674, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x367C,INVALC,INVALC,INVALC,INVALC,INVALC,0x3C5D,0x3728, - /* Block 111, Array index 0x2100 */ - INVALC,0x3726,0x3723,INVALC,0x3670,INVALC,0x3677,0x3724, - 0x3676,0x3725,0x3679,INVALC,0x367D,INVALC,INVALC,0x653E, - INVALC,INVALC,0x3729,INVALC,INVALC,INVALC,INVALC,0x3727, - 0x3C54,INVALC,INVALC,INVALC,INVALC,INVALC,0x3C52,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3C6B,0x3C6D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3C5A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C56,INVALC,INVALC,INVALC,0x3C6E,INVALC,INVALC,0x3C58, - 0x3C69,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3C66, - INVALC,0x3C64,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3C5B,INVALC,0x423A,0x3C60,INVALC,INVALC, - 0x3C5C,INVALC,INVALC,INVALC,INVALC,0x3C51,0x3C6C,INVALC, - INVALC,INVALC,INVALC,0x3C62,0x6542,INVALC,0x3C63,INVALC, - 0x3C68,INVALC,INVALC,INVALC,0x6540,INVALC,0x633D,INVALC, - INVALC,INVALC,0x653F,0x6541,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4230,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4233,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x422E,0x4236,INVALC,INVALC,0x4240,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4239,INVALC,INVALC, - 0x422D,INVALC,INVALC,0x4231,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4244,0x423E,0x4247,INVALC,0x423D,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4245,INVALC,INVALC,0x423F,INVALC, - 0x423B,0x4246,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4756,INVALC,INVALC,0x4757,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4765,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 112, Array index 0x2200 */ - INVALC,INVALC,INVALC,INVALC,0x4763,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4C78,0x475B,INVALC,INVALC,INVALC, - 0x4C6A,0x4764,INVALC,INVALC,INVALC,INVALC,INVALC,0x475F, - INVALC,INVALC,INVALC,0x475A,INVALC,0x475C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x475E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x475D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4C74,INVALC,INVALC, - INVALC,INVALC,0x4762,INVALC,0x4761,INVALC,INVALC,INVALC, - 0x6544,0x6545,0x4766,INVALC,0x6543,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C7D,INVALC,INVALC,0x4C73,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4C6B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C75,INVALC,INVALC,0x4C7E,0x4C6C,INVALC,INVALC, - INVALC,0x4C79,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C7A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6363,INVALC,INVALC,INVALC,INVALC,0x4C7B, - INVALC,0x4C77,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6547,INVALC,INVALC,INVALC,0x6546,INVALC,0x5156, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5154,INVALC,0x5158, - INVALC,INVALC,INVALC,0x514D,INVALC,INVALC,0x5150,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4C71,INVALC,INVALC,0x5155,INVALC,INVALC,0x5530,0x552F, - INVALC,0x5535,0x5536,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5531,INVALC,INVALC, - INVALC,INVALC,0x5537,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5A55,INVALC,0x5159,0x5539,INVALC, - 0x6548,INVALC,INVALC,INVALC,INVALC,0x5828,INVALC,INVALC, - /* Block 113, Array index 0x2300 */ - INVALC,INVALC,0x582A,0x5827,INVALC,INVALC,INVALC,INVALC, - 0x5826,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5829,INVALC,INVALC,0x582B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A52,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5A54,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5A53,0x654A,0x6549,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C51,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5C4F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E3C, - INVALC,INVALC,INVALC,0x5E3A,INVALC,0x5E3B,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6036,0x5F52,INVALC,INVALC,INVALC, - INVALC,0x6037,INVALC,INVALC,0x654B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6179, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2428,0x2426, - INVALC,INVALC,0x2427,0x242B,INVALC,0x2662,INVALC,0x265F, - INVALC,0x265E,INVALC,0x2663,INVALC,INVALC,0x2660,INVALC, - INVALC,0x2977,INVALC,INVALC,INVALC,INVALC,INVALC,0x2974, - 0x2970,0x2975,INVALC,0x296F,0x2979,0x2976,INVALC,0x2972, - 0x2971,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2D5E,INVALC,0x2D5C,0x2D5A,INVALC,0x2D58,0x626A,0x2D65, - 0x2D62,INVALC,0x2D5F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2D64,INVALC,INVALC,INVALC,0x2D63,INVALC, - INVALC,0x2D68,INVALC,0x2D5D,INVALC,INVALC,INVALC,0x654D, - INVALC,INVALC,INVALC,INVALC,0x3228,INVALC,INVALC,INVALC, - INVALC,0x6279,INVALC,INVALC,0x322A,INVALC,INVALC,INVALC, - 0x322B,INVALC,INVALC,INVALC,INVALC,0x3231,0x322F,INVALC, - INVALC,INVALC,INVALC,0x3229,INVALC,INVALC,INVALC,0x322D, - INVALC,INVALC,INVALC,0x322C,INVALC,0x654F,INVALC,INVALC, - INVALC,INVALC,0x654E,INVALC,INVALC,INVALC,0x3230,INVALC, - INVALC,0x3730,0x3732,INVALC,INVALC,0x372F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3735,INVALC, - /* Block 114, Array index 0x2400 */ - INVALC,0x372E,INVALC,0x372C,INVALC,INVALC,INVALC,0x372D, - 0x3731,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3733, - INVALC,0x6550,0x6551,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3C74,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C7D,INVALC,INVALC,0x3C7C, - INVALC,INVALC,0x3C6F,0x3C7A,0x3C72,0x3D21,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3C7B,0x3C79,0x3C71,INVALC,0x3C73, - 0x3C77,0x6553,INVALC,0x6554,INVALC,0x6555,INVALC,0x6552, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4257,INVALC,INVALC, - 0x424C,INVALC,0x424E,INVALC,INVALC,INVALC,INVALC,0x4251, - INVALC,0x4258,INVALC,INVALC,INVALC,INVALC,INVALC,0x4252, - INVALC,INVALC,INVALC,0x483C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x424F,INVALC,0x4259,INVALC,0x4249, - INVALC,0x6559,INVALC,INVALC,0x4253,0x6557,0x6558,0x6556, - INVALC,INVALC,INVALC,INVALC,0x476F,INVALC,0x476E,0x476C, - INVALC,INVALC,INVALC,0x4770,INVALC,INVALC,INVALC,INVALC, - 0x4772,INVALC,INVALC,0x476A,0x476D,0x476B,0x4768,INVALC, - INVALC,0x4767,INVALC,0x655B,INVALC,INVALC,0x655A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D2A,0x4D24,INVALC,INVALC,0x4D29,INVALC, - INVALC,INVALC,INVALC,0x4D28,INVALC,0x4D25,0x4D22,INVALC, - INVALC,INVALC,INVALC,INVALC,0x655C,INVALC,0x5162,0x515A, - INVALC,INVALC,0x5160,0x515C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5163,0x6374,INVALC,INVALC, - INVALC,0x515E,INVALC,0x5166,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x655D,0x655E,INVALC, - INVALC,INVALC,INVALC,0x553C,INVALC,INVALC,INVALC,INVALC, - INVALC,0x553E,0x5543,0x5540,INVALC,INVALC,INVALC,0x5541, - INVALC,INVALC,INVALC,0x5542,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x582D,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 115, Array index 0x2500 */ - 0x582E,INVALC,INVALC,INVALC,0x5A56,INVALC,INVALC,INVALC, - 0x5A57,INVALC,INVALC,0x5C59,INVALC,INVALC,0x655F,0x5C56, - INVALC,0x5C58,0x5C55,INVALC,INVALC,0x5A58,0x5C53,0x5C57, - 0x6561,INVALC,INVALC,INVALC,0x5F53,INVALC,INVALC,INVALC, - 0x5F54,0x6039,INVALC,INVALC,0x6143,0x6142,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2D69,INVALC, - INVALC,INVALC,0x3D22,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2D6B,INVALC,INVALC,INVALC, - 0x297C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x425D,INVALC, - 0x425C,0x425B,INVALC,INVALC,INVALC,0x4D2E,INVALC,0x4D2D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2664,0x2A21,0x2A22,INVALC, - 0x2A23,INVALC,INVALC,INVALC,INVALC,0x2D6D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3236,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3D24,0x3D23,INVALC,INVALC,INVALC,0x3D25, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4775,INVALC,INVALC,INVALC, - INVALC,0x4D2F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x617B,INVALC,INVALC,INVALC,INVALC, - INVALC,0x242C,0x242D,INVALC,INVALC,INVALC,0x266B,INVALC, - INVALC,0x2669,INVALC,0x2666,0x2667,INVALC,0x266A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2668, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2A26,INVALC,0x2A2A, - INVALC,INVALC,INVALC,0x2A27,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2A28,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2D75,INVALC,INVALC,0x2D74,INVALC,0x2D70, - INVALC,INVALC,INVALC,INVALC,0x2D73,0x2D71,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3238,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 116, Array index 0x2600 */ - INVALC,INVALC,0x3239,INVALC,INVALC,INVALC,0x3D26,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x373B,INVALC, - 0x373A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3739,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D27,INVALC,INVALC,INVALC, - 0x3D2E,INVALC,0x3D29,0x3D2B,0x3D2A,INVALC,0x4261,0x3D2D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D28,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x425F,INVALC,INVALC,INVALC,INVALC,0x4262,0x6562, - 0x6563,INVALC,INVALC,0x4D30,INVALC,INVALC,INVALC,0x4779, - INVALC,INVALC,INVALC,0x4778,0x477A,0x4777,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5549,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x225A,0x216B,INVALC,0x242F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x266E,INVALC,INVALC,INVALC,0x2A33,INVALC,0x2A2D,INVALC, - INVALC,INVALC,INVALC,0x2A2C,INVALC,INVALC,INVALC,0x2A2B, - INVALC,INVALC,0x2A32,INVALC,INVALC,INVALC,INVALC,0x2A2F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2D78,INVALC,INVALC, - INVALC,0x2D7B,INVALC,INVALC,0x2D77,INVALC,INVALC,INVALC, - INVALC,0x2D7A,INVALC,INVALC,INVALC,INVALC,0x2D7E,0x2D79, - 0x2D7C,INVALC,INVALC,INVALC,INVALC,0x323E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3240, - INVALC,0x3247,0x323C,INVALC,0x3246,INVALC,0x3241,INVALC, - INVALC,INVALC,INVALC,INVALC,0x323D,INVALC,INVALC,0x6564, - INVALC,INVALC,INVALC,0x373D,INVALC,INVALC,INVALC,0x3D38, - INVALC,0x323F,INVALC,0x3740,INVALC,INVALC,INVALC,INVALC, - /* Block 117, Array index 0x2700 */ - INVALC,INVALC,0x373C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6565,INVALC,0x3D36,0x3D3A,INVALC,0x3D2F, - 0x3D3B,0x3D32,INVALC,INVALC,0x3D39,INVALC,0x426D,0x3D35, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4264, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D33,0x3D3C,INVALC,0x6566,0x3D37,0x4268,0x4275,INVALC, - INVALC,INVALC,INVALC,0x426F,INVALC,0x4274,INVALC,0x426E, - 0x4266,0x4271,INVALC,INVALC,0x4273,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4267,INVALC,INVALC,0x426B,INVALC, - 0x4270,INVALC,INVALC,INVALC,INVALC,0x426A,INVALC,INVALC, - 0x4825,0x477E,INVALC,INVALC,INVALC,0x477C,0x477D,INVALC, - 0x4822,INVALC,INVALC,0x4821,0x477B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4827,INVALC,0x4823,INVALC, - INVALC,INVALC,0x4D31,0x4D3B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D39,INVALC,0x4D36,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4D35,0x6568,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4D3A,INVALC,INVALC,0x516A,INVALC, - INVALC,0x6375,INVALC,0x5167,INVALC,0x516C,INVALC,INVALC, - INVALC,INVALC,0x516B,INVALC,0x6567,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x554F,INVALC,0x554B,INVALC, - INVALC,INVALC,INVALC,0x554D,0x6569,INVALC,INVALC,INVALC, - INVALC,0x582F,INVALC,INVALC,0x5830,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5A5A,INVALC,INVALC,0x5A5C, - 0x5A5D,0x5A5B,INVALC,INVALC,0x5C5E,0x5C5C,0x5C5F,INVALC, - 0x5C5D,0x5C60,INVALC,0x5E3D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2E22,INVALC,0x2E21,INVALC,0x2E24, - INVALC,INVALC,INVALC,0x3248,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3D3D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 118, Array index 0x2800 */ - INVALC,0x4277,INVALC,INVALC,INVALC,INVALC,0x4828,INVALC, - INVALC,0x4D3D,0x516D,INVALC,INVALC,INVALC,0x516E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3744,INVALC,INVALC,0x4278,INVALC, - INVALC,INVALC,INVALC,0x3745,0x3D3E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2A37,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2A38,0x2A35,INVALC,0x2A36,INVALC,0x2E27,INVALC, - INVALC,0x2E25,0x2E28,INVALC,INVALC,0x2E2A,INVALC,INVALC, - 0x2E26,INVALC,INVALC,INVALC,INVALC,0x324E,0x324D,0x3250, - 0x324F,INVALC,INVALC,INVALC,INVALC,INVALC,0x3251,INVALC, - INVALC,0x3746,INVALC,INVALC,INVALC,INVALC,INVALC,0x3749, - 0x3747,INVALC,INVALC,INVALC,INVALC,0x3D43,0x3D42,INVALC, - INVALC,0x3D44,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x427B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5170,INVALC,0x5552,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C62,INVALC,INVALC,INVALC,INVALC,0x3D45,INVALC, - INVALC,INVALC,0x225B,0x2673,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2A3A,INVALC,INVALC,0x2A3B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2E2B,INVALC, - 0x2E2F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3257,INVALC,INVALC,0x3255,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3252,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x374A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3D47,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x427C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 119, Array index 0x2900 */ - INVALC,INVALC,0x427D,INVALC,INVALC,INVALC,INVALC,0x482B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4829,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5171,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5173,0x5172, - INVALC,INVALC,INVALC,0x5174,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5555,0x5553,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5554,0x5834, - INVALC,0x5833,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5832,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E3F, - 0x5E3E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x603B, - INVALC,INVALC,INVALC,0x656A,INVALC,INVALC,0x225C,0x656B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2674,INVALC,INVALC,0x2676,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x374D,INVALC,INVALC,INVALC,0x3D4C,INVALC,INVALC,0x427E, - 0x4321,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5176,INVALC,0x5556,INVALC,0x5557,INVALC,INVALC, - INVALC,0x5A5E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3D4D,INVALC,INVALC,INVALC,0x4830, - INVALC,0x482E,INVALC,INVALC,0x656C,INVALC,INVALC,INVALC, - 0x2677,0x2678,INVALC,INVALC,INVALC,INVALC,INVALC,0x2E32, - INVALC,INVALC,INVALC,0x325A,0x325B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3750,0x3752,0x3751, - INVALC,0x3D4F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4831,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5835,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2E35,INVALC,0x2E33, - /* Block 120, Array index 0x2A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x626C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3264,0x325F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x325E,INVALC, - 0x3268,INVALC,INVALC,INVALC,INVALC,INVALC,0x3759,INVALC, - INVALC,0x3267,INVALC,INVALC,0x3265,INVALC,0x3755,INVALC, - INVALC,INVALC,0x325C,0x3263,INVALC,INVALC,INVALC,INVALC, - 0x3753,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3262, - 0x3757,INVALC,0x3D56,0x3D53,INVALC,INVALC,INVALC,INVALC, - 0x3D51,0x3D52,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4327,INVALC,INVALC,INVALC,INVALC, - 0x4328,INVALC,INVALC,INVALC,INVALC,0x4325,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4326,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4839,INVALC,INVALC,0x4833,0x4836,0x4835,0x4834, - 0x4838,INVALC,0x483B,0x483D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D44,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4D46,INVALC,INVALC,INVALC,INVALC,INVALC,0x517B,INVALC, - 0x5179,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5559,INVALC,0x5558,INVALC, - INVALC,0x555B,INVALC,INVALC,INVALC,INVALC,INVALC,0x555C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5836,0x5838,INVALC,INVALC,INVALC,INVALC,0x583B,INVALC, - 0x583A,0x5839,INVALC,INVALC,INVALC,0x5A60,0x5A5F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5E42,INVALC,INVALC,INVALC,INVALC,0x6432,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3269,INVALC,0x3D57, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2E36,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x267B,0x267C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 121, Array index 0x2B00 */ - INVALC,INVALC,INVALC,INVALC,0x2E39,INVALC,INVALC,0x2E3B, - 0x2E3E,INVALC,0x2E37,0x2E3A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2E3D,INVALC,INVALC, - INVALC,0x656D,INVALC,0x656E,INVALC,INVALC,0x667C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x326C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x326D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x656F,INVALC,INVALC, - INVALC,INVALC,0x3762,INVALC,INVALC,INVALC,0x3763,0x375D, - INVALC,INVALC,INVALC,0x375F,INVALC,INVALC,INVALC,0x3761, - INVALC,0x3760,INVALC,0x6570,0x6571,INVALC,INVALC,INVALC, - 0x6572,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D5C, - INVALC,INVALC,INVALC,0x3D59,INVALC,INVALC,0x3D5D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D5A,INVALC, - 0x4331,INVALC,0x432D,INVALC,INVALC,0x432E,INVALC,INVALC, - INVALC,0x4337,0x4329,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4335,INVALC,0x432B,0x4330,INVALC,0x4334,INVALC,INVALC, - 0x432A,INVALC,0x4336,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x483E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x483F,0x4845, - INVALC,0x4844,INVALC,INVALC,INVALC,INVALC,INVALC,0x6573, - 0x4840,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4D4A,INVALC,0x4D4D,INVALC,INVALC,INVALC,0x4D48,0x4D4C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D4B,0x4D49,INVALC,INVALC,0x5221,INVALC, - 0x6574,INVALC,INVALC,INVALC,0x5224,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5222,INVALC,INVALC,0x6575,INVALC, - 0x5560,0x5562,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5561,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 122, Array index 0x2C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5843,0x583E, - 0x5840,INVALC,0x583F,0x583C,INVALC,0x5842,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5844,INVALC,INVALC, - 0x5A61,INVALC,0x5A62,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5A63,INVALC,0x6576,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E45,INVALC, - 0x5E43,INVALC,0x5E44,INVALC,INVALC,INVALC,INVALC,0x603C, - INVALC,INVALC,INVALC,INVALC,0x2433,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6577,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x326F,0x3270,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3272,INVALC,INVALC,INVALC,0x3D5E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3766,INVALC,0x3765,INVALC, - INVALC,0x3D5F,INVALC,INVALC,INVALC,0x3D64,0x3D62,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4338,INVALC, - 0x433D,INVALC,INVALC,0x4339,0x3D63,INVALC,0x6578,0x4848, - INVALC,0x4847,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6579,INVALC,INVALC,INVALC,0x4D50,0x4D51,0x4D4F, - INVALC,INVALC,INVALC,0x657A,INVALC,0x5226,INVALC,INVALC, - INVALC,0x5227,INVALC,INVALC,INVALC,INVALC,INVALC,0x5845, - INVALC,INVALC,INVALC,INVALC,INVALC,0x603D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x657B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2A3E,0x2A3D,INVALC,0x2A3F,0x2A42, - INVALC,INVALC,0x2A44,INVALC,0x654C,INVALC,INVALC,INVALC, - 0x2E42,INVALC,INVALC,0x2E40,0x2E41,INVALC,INVALC,0x2E43, - INVALC,0x3274,0x3273,0x3279,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3276,0x327B,INVALC,INVALC,0x3277,INVALC,INVALC, - 0x3278,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x327C,0x3769,0x3767,0x376B,INVALC,0x376A,INVALC,INVALC, - INVALC,0x376C,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D65, - /* Block 123, Array index 0x2D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D66, - INVALC,0x3D69,INVALC,INVALC,INVALC,INVALC,0x3D68,0x4341, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4344,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6524,INVALC,INVALC, - INVALC,0x484B,0x484D,INVALC,0x4850,0x484F,INVALC,INVALC, - INVALC,INVALC,0x4852,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4D55,INVALC,0x4D56,INVALC,INVALC,INVALC,0x4D5A,INVALC, - INVALC,0x4D53,0x4D57,INVALC,INVALC,0x522A,INVALC,INVALC, - INVALC,0x5564,INVALC,INVALC,INVALC,INVALC,INVALC,0x522C, - INVALC,INVALC,INVALC,0x5229,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5A66,INVALC,0x5A65,INVALC, - INVALC,INVALC,0x5A67,INVALC,INVALC,INVALC,INVALC,0x5C64, - INVALC,INVALC,0x6076,0x6077,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2E44,0x2E47,INVALC,INVALC, - INVALC,INVALC,0x2E49,0x2E48,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3772,INVALC,0x3771,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3770,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4346,INVALC,INVALC,0x4347,INVALC,INVALC,0x657C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4D5B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x522F,INVALC,0x522E,INVALC,INVALC, - INVALC,INVALC,0x5568,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5E49,0x5E48,INVALC,INVALC,0x267E,0x2721,INVALC,0x2A47, - 0x2E4E,INVALC,0x2E4F,0x2E4D,0x2E4B,0x2E4C,INVALC,INVALC, - INVALC,INVALC,0x3323,0x3326,0x3327,0x3324,INVALC,INVALC, - INVALC,0x3773,0x3D71,INVALC,INVALC,INVALC,INVALC,0x3D70, - INVALC,0x4349,0x434A,INVALC,0x4854,INVALC,INVALC,INVALC, - 0x4855,0x5230,0x5569,0x556A,INVALC,0x5849,INVALC,INVALC, - 0x5F55,INVALC,INVALC,INVALC,0x2E51,INVALC,0x2E50,INVALC, - /* Block 124, Array index 0x2E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x332B,INVALC,0x332A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x332C,INVALC,0x3778,0x3779, - INVALC,INVALC,INVALC,INVALC,0x3777,INVALC,INVALC,0x377B, - INVALC,0x3776,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x632D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x377A,0x657D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3D7B,0x3D78,0x3D75,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3D79,INVALC,0x3D72,INVALC,0x3D76, - INVALC,0x657E,INVALC,INVALC,INVALC,INVALC,0x434F,INVALC, - INVALC,INVALC,0x434C,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4355,INVALC,INVALC,0x434D,0x3D77,INVALC,INVALC,0x4354, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4351,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4856,INVALC,0x4858,INVALC,INVALC,0x4860,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x485A,0x485E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4857,0x485D, - INVALC,INVALC,INVALC,0x485C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D5C,INVALC, - INVALC,INVALC,0x4D65,0x4D5D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D60, - INVALC,INVALC,0x6367,0x6366,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4D63,INVALC,INVALC, - 0x6621,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5233,0x5234,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x556D,INVALC, - INVALC,INVALC,0x556B,INVALC,0x556E,INVALC,INVALC,INVALC, - /* Block 125, Array index 0x2F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5570,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5571,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x556F,INVALC,0x5850,0x584E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5851,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x584C,0x6622, - INVALC,INVALC,0x6623,INVALC,0x5A6F,0x5A6E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6624,INVALC,0x5C66,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C65,INVALC,INVALC,0x6625,INVALC, - INVALC,0x5E4C,INVALC,INVALC,INVALC,INVALC,0x5E4B,INVALC, - 0x5F58,INVALC,INVALC,INVALC,INVALC,0x5F57,0x603F,INVALC, - INVALC,INVALC,0x603E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6626,INVALC,INVALC,INVALC,INVALC,0x6144,INVALC,INVALC, - INVALC,0x623A,INVALC,INVALC,0x2A49,INVALC,0x2A48,0x2E52, - INVALC,INVALC,INVALC,0x2E54,0x2E53,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3331,INVALC,INVALC,0x332E,0x3330, - INVALC,INVALC,INVALC,0x3332,INVALC,INVALC,0x332D,INVALC, - INVALC,INVALC,INVALC,0x377D,INVALC,INVALC,INVALC,INVALC, - INVALC,0x377E,0x3821,0x383E,0x3822,INVALC,INVALC,INVALC, - 0x3E21,INVALC,INVALC,INVALC,0x3E23,INVALC,0x3E22,0x3D7E, - INVALC,0x6627,INVALC,INVALC,INVALC,INVALC,0x4358,INVALC, - 0x435C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4862, - 0x4861,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D6F,0x4D71,0x4D6D,INVALC,0x4D70,0x4D73, - INVALC,0x4D72,INVALC,INVALC,INVALC,0x4D6E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5237,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5575,0x5574,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5239,INVALC,0x5855,INVALC,INVALC,0x5854,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6628,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6169,INVALC,0x6040,INVALC,INVALC, - INVALC,INVALC,0x2722,INVALC,0x2A4B,INVALC,INVALC,0x2A4A, - /* Block 126, Array index 0x3000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3337,0x333B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3829,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3826,INVALC,INVALC,0x3827, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x382E,0x3824,INVALC,INVALC,0x382B,0x3E34,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3E29, - INVALC,0x3E26,0x3E2E,INVALC,INVALC,0x3E2F,INVALC,INVALC, - 0x3E28,INVALC,INVALC,INVALC,0x3E2C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E2A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E24,0x3E35,0x3E33,INVALC, - 0x4367,INVALC,INVALC,INVALC,INVALC,INVALC,0x3E2B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4366, - INVALC,0x4369,0x4360,0x4362,INVALC,INVALC,INVALC,INVALC, - 0x435E,INVALC,INVALC,INVALC,INVALC,0x4364,INVALC,0x4368, - 0x436A,0x4363,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4874,INVALC,INVALC,INVALC, - 0x486D,INVALC,INVALC,0x486E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4870,INVALC,INVALC,0x4869,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4868,INVALC,INVALC,INVALC,INVALC,0x4871,INVALC,0x4873, - 0x6629,0x486B,INVALC,0x662B,INVALC,INVALC,0x4E22,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4D7C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D78,INVALC,0x4E24,0x4E2F,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4E2E,INVALC,0x4D77,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E2B,INVALC,INVALC, - 0x4D75,INVALC,INVALC,INVALC,0x4E28,0x4E29,0x4E25,0x4E2C, - /* Block 127, Array index 0x3100 */ - 0x4E27,0x4D7E,0x4D7D,INVALC,INVALC,INVALC,INVALC,0x662A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x523B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5240,0x523F, - INVALC,INVALC,INVALC,INVALC,0x5579,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x557A,INVALC,0x5859, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x585B,INVALC,0x5858,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x662C,INVALC,0x585A,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5A72,INVALC,0x5A74,INVALC, - INVALC,0x5A75,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C6C, - INVALC,INVALC,INVALC,INVALC,0x5E53,0x5E50,INVALC,INVALC, - INVALC,0x5E51,INVALC,INVALC,INVALC,INVALC,0x5E52,INVALC, - INVALC,INVALC,0x5F5A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6235,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 128, Array index 0x3200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3831,INVALC,INVALC,INVALC,INVALC, - 0x662D,0x4877,INVALC,INVALC,INVALC,INVALC,0x557D,0x585C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F5B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2A4E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x333C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4878, - INVALC,0x4879,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4E30,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6422,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2E5D, - INVALC,INVALC,INVALC,0x333D,INVALC,INVALC,INVALC,0x333F, - INVALC,0x333E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x436E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E31,INVALC, - INVALC,INVALC,INVALC,INVALC,0x585D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3342,INVALC,0x3343,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3E37,INVALC,INVALC,0x3E38,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4372,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E32, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x557E,INVALC, - INVALC,INVALC,0x5861,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 129, Array index 0x3300 */ - INVALC,INVALC,0x667B,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3836,INVALC,0x3344,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3837,INVALC,INVALC,0x3839,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4922,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5621,INVALC,INVALC,0x5862,0x5C6F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3349,0x3348,INVALC,INVALC,INVALC, - 0x3347,0x662F,INVALC,INVALC,0x383D,0x383C,INVALC,INVALC, - INVALC,0x383B,INVALC,INVALC,INVALC,INVALC,0x3E3C,INVALC, - INVALC,INVALC,INVALC,0x6729,INVALC,INVALC,INVALC,0x4373, - INVALC,0x6356,INVALC,0x4923,INVALC,INVALC,INVALC,0x4926, - 0x3E3B,0x4925,INVALC,0x6630,INVALC,0x4E34,0x4E36,INVALC, - 0x4E37,INVALC,0x4E35,0x4E38,INVALC,INVALC,0x5243,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5622,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5C70,0x5C71,0x5C72,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2435,0x2436,INVALC, - INVALC,0x2724,INVALC,INVALC,0x2726,INVALC,INVALC,0x2725, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2723, - INVALC,INVALC,INVALC,INVALC,0x2A56,INVALC,0x2A5B,0x2A58, - 0x2A4F,INVALC,INVALC,INVALC,0x2A59,INVALC,INVALC,INVALC, - 0x2A52,INVALC,INVALC,0x2A54,INVALC,INVALC,0x2A57,INVALC, - INVALC,INVALC,INVALC,0x6631,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2E66,INVALC, - INVALC,INVALC,INVALC,0x2E60,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2E61,0x2E5E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2E65, - INVALC,INVALC,0x2E64,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x334C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x334A,0x3352, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x334B, - /* Block 130, Array index 0x3400 */ - INVALC,INVALC,INVALC,0x334E,0x334D,INVALC,INVALC,0x334F, - INVALC,0x2E63,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E44,INVALC,INVALC,0x3849, - INVALC,INVALC,0x3847,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x632E,INVALC,0x3841,INVALC,INVALC,INVALC,0x3842,INVALC, - INVALC,0x3845,INVALC,INVALC,0x3848,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3E3E,INVALC,INVALC,INVALC,INVALC, - 0x3E43,0x3E45,0x3E41,INVALC,INVALC,0x3E3D,INVALC,INVALC, - 0x3E40,0x3E42,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x437B,INVALC,0x437E, - INVALC,INVALC,INVALC,0x4375,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4376,INVALC,0x4377,0x4423,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x437C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4422,INVALC,INVALC, - INVALC,0x4927,INVALC,INVALC,0x492A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4E3B,0x4E3D,0x4E39,INVALC,0x4E3C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E3A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5249,INVALC,INVALC,0x5247,INVALC,0x5244, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5623,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5624,INVALC,INVALC,INVALC,INVALC,INVALC,0x5865,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5A77,INVALC,0x5A78,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3E47, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3E48,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 131, Array index 0x3500 */ - INVALC,INVALC,INVALC,0x3E49,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2A5D,INVALC, - INVALC,INVALC,INVALC,0x492B,INVALC,INVALC,INVALC,INVALC, - 0x524A,0x5868,0x5A79,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2E68,INVALC,INVALC,0x3357, - INVALC,0x3358,INVALC,INVALC,INVALC,0x3355,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4426,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6634,INVALC,0x492D,INVALC,0x492E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5A7A,INVALC,INVALC,0x5A7B,INVALC,INVALC, - INVALC,INVALC,0x5E55,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A7C,INVALC, - INVALC,INVALC,INVALC,0x2438,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2728,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2729,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x272B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2A60,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2A6B,INVALC, - INVALC,INVALC,0x2A66,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2A6C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2A5E,INVALC,INVALC,INVALC, - INVALC,0x2A68,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2E76,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2E6A,INVALC,INVALC,INVALC,INVALC,0x2E6B,INVALC,INVALC, - INVALC,INVALC,0x2E78,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2E72,INVALC,INVALC,INVALC,INVALC,0x2E74,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2E69, - 0x2E6E,INVALC,INVALC,INVALC,0x2E6F,0x2E7A,INVALC,INVALC, - /* Block 132, Array index 0x3600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2E79,INVALC,INVALC,0x2E77,INVALC, - 0x6635,INVALC,0x6637,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3362,INVALC,INVALC,INVALC,INVALC,0x384D,INVALC,0x3359, - INVALC,0x335F,INVALC,0x385B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2A5F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3E57,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x335A, - 0x3363,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6636,0x2D33,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x384E,0x3851,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3854,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3850,INVALC,INVALC,INVALC,0x384F,0x385D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3855,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x385E,INVALC,INVALC,0x3857, - INVALC,0x3852,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3858,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x385F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3E5E,INVALC,INVALC, - INVALC,INVALC,0x3E4F,0x3E59,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3E4D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3E5F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3E4B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 133, Array index 0x3700 */ - 0x3E52,INVALC,0x3E5C,INVALC,INVALC,0x3E5A,INVALC,INVALC, - 0x3E50,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E58,INVALC,0x3E5D,0x3E56, - 0x3E4E,INVALC,INVALC,INVALC,INVALC,INVALC,0x6639,0x3E5B, - INVALC,0x6638,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x442D,INVALC,INVALC,INVALC,0x4431,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x443A,INVALC, - INVALC,0x4435,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x442C,INVALC,0x443E,INVALC,INVALC,INVALC,INVALC,0x4427, - INVALC,INVALC,INVALC,0x4433,INVALC,0x443F,INVALC,INVALC, - 0x4440,INVALC,INVALC,INVALC,0x4432,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4438,INVALC,0x4430,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x443C,0x442F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x442E,INVALC,INVALC,INVALC,0x442A, - 0x4439,INVALC,INVALC,0x443B,0x4428,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4935,0x4944,INVALC,0x4933,0x4938,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x493C,INVALC,0x4939,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4942,INVALC,INVALC, - INVALC,INVALC,INVALC,0x493B,INVALC,0x493A,INVALC,0x4941, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4932,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4936,INVALC,INVALC,INVALC,INVALC, - 0x4436,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x493F,INVALC,INVALC, - 0x493E,INVALC,0x4943,INVALC,INVALC,INVALC,0x663B,INVALC, - INVALC,0x663C,0x663A,INVALC,0x493D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E4F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E44,INVALC,INVALC, - 0x4E42,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 134, Array index 0x3800 */ - INVALC,0x4E40,INVALC,0x4E4C,0x4E46,0x4E54,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4E4B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4E4D,0x4E4E,0x4E52,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x525A, - INVALC,INVALC,0x5252,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5259,0x5250,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5258,INVALC,0x5254,INVALC,INVALC,0x5256, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x524F, - 0x5255,INVALC,INVALC,0x663D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x562B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5628,0x5629,INVALC,INVALC,INVALC,0x562D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x562C,0x5630,INVALC,INVALC,INVALC, - INVALC,INVALC,0x586C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x586E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x586F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x586B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x663E,INVALC,0x5A7E,INVALC, - INVALC,INVALC,INVALC,0x5A7D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B22, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C7B,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5B25,0x663F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5C76,INVALC,INVALC,INVALC, - /* Block 135, Array index 0x3900 */ - INVALC,INVALC,0x5C78,0x5C7C,INVALC,INVALC,INVALC,INVALC, - 0x5D22,INVALC,INVALC,INVALC,INVALC,0x5C7E,INVALC,0x5D23, - 0x5C77,INVALC,INVALC,0x5D21,INVALC,0x5E5B,0x5E5A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E5C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5E58,INVALC,INVALC,0x5E56,INVALC,INVALC,INVALC,0x5E57, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6640, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6043,INVALC,INVALC, - INVALC,0x602F,0x6146,INVALC,INVALC,0x6641,INVALC,INVALC, - INVALC,0x6147,0x617C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3863, - 0x3860,INVALC,0x3861,INVALC,INVALC,0x3E61,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x272D,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6642,INVALC,INVALC,0x2F23,0x2E7C,INVALC, - 0x2E7E,INVALC,INVALC,INVALC,INVALC,0x2F24,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3369,INVALC,INVALC,INVALC, - INVALC,0x336C,INVALC,INVALC,INVALC,INVALC,INVALC,0x336F, - INVALC,INVALC,0x336E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x336B,INVALC,INVALC,INVALC,0x336A, - 0x3370,INVALC,INVALC,INVALC,INVALC,INVALC,0x336D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3866,INVALC, - INVALC,INVALC,0x3864,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3E62,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3E63,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3E68,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4444,0x4445,INVALC,0x4449, - /* Block 136, Array index 0x3A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4446,0x4448,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x494F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x494A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4945,INVALC, - INVALC,0x494C,INVALC,INVALC,INVALC,0x4949,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x494E,INVALC,0x494B, - INVALC,INVALC,0x6643,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E5D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E59,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x525B,0x525D,INVALC,INVALC,0x525F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5262,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x525E,INVALC,INVALC,INVALC,0x6645,INVALC,INVALC, - INVALC,0x6644,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x563A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5639,INVALC,INVALC,INVALC,INVALC,INVALC,0x563B, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5636,0x5634,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5B28,0x5876,INVALC, - INVALC,INVALC,0x5878,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5873,INVALC,INVALC,INVALC,INVALC,0x5874,INVALC, - 0x5875,INVALC,INVALC,INVALC,INVALC,0x6646,INVALC,INVALC, - 0x5B2C,INVALC,INVALC,INVALC,INVALC,0x5B27,INVALC,INVALC, - /* Block 137, Array index 0x3B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B29, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5877,0x5B2B, - INVALC,INVALC,0x5D25,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5D24,INVALC,0x5E5D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F5F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6045,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6647,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2F26,INVALC,INVALC,0x386A,0x3E6A,0x3E69, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3371, - 0x6648,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x444D,INVALC,INVALC,INVALC,0x4E5F,INVALC,0x5263,0x5264, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2F27,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3374,INVALC, - INVALC,INVALC,INVALC,0x3377,INVALC,INVALC,INVALC,INVALC, - 0x3372,INVALC,0x3373,0x3375,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3376,INVALC,INVALC,0x6649, - INVALC,INVALC,0x3872,INVALC,INVALC,INVALC,INVALC,0x386E, - 0x3874,INVALC,INVALC,INVALC,0x386C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x386B,INVALC,INVALC,INVALC, - 0x3873,INVALC,INVALC,0x386D,INVALC,0x386F,0x3871,INVALC, - INVALC,0x3870,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E70,0x3E72,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3E6D,INVALC,INVALC,INVALC,0x3E6F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x444E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x444F,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E60,INVALC, - INVALC,0x4959,0x4952,INVALC,INVALC,0x4957,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4954,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4951, - /* Block 138, Array index 0x3C00 */ - 0x4956,INVALC,INVALC,0x4958,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E61, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4E62,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5265,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5640,INVALC,INVALC,INVALC,INVALC,INVALC,0x563F, - 0x563D,INVALC,INVALC,0x5642,INVALC,INVALC,INVALC,INVALC, - 0x5879,INVALC,0x587A,INVALC,INVALC,0x587C,0x587B,INVALC, - INVALC,INVALC,INVALC,INVALC,0x664A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5D29,INVALC,0x5D28, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6149,INVALC,INVALC,INVALC,INVALC,0x617D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x664B,INVALC,INVALC,0x5B2F, - INVALC,0x6046,0x614A,INVALC,0x2F29,INVALC,INVALC,INVALC, - INVALC,0x3876,0x3875,INVALC,0x3877,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3E74,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E65,INVALC,0x5266, - INVALC,0x4E64,INVALC,0x5646,INVALC,INVALC,INVALC,INVALC, - 0x587E,0x587D,INVALC,0x5921,INVALC,0x5B31,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D2A,0x5E61,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4454, - INVALC,INVALC,0x495C,INVALC,INVALC,INVALC,0x4E66,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5B32,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 139, Array index 0x3D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x2F2A,0x2F2C,INVALC, - INVALC,INVALC,INVALC,0x337B,INVALC,0x337A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x337C,INVALC,INVALC,0x387E,INVALC,INVALC,INVALC, - 0x3923,0x3929,INVALC,INVALC,INVALC,INVALC,0x3879,INVALC, - 0x387B,0x3925,INVALC,0x3922,INVALC,INVALC,0x6330,INVALC, - INVALC,INVALC,0x387A,INVALC,INVALC,0x3E7C,INVALC,INVALC, - 0x3E7D,INVALC,INVALC,INVALC,INVALC,0x3F24,INVALC,INVALC, - INVALC,INVALC,0x3E7E,0x3E75,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3F21,INVALC,0x3F23,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3E78,INVALC,INVALC,0x3F22,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4460,0x4459,INVALC,0x4463, - INVALC,INVALC,0x4455,INVALC,INVALC,INVALC,INVALC,0x4458, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x445B,INVALC,INVALC,INVALC,INVALC,0x445C,0x4461,INVALC, - 0x4456,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x445D,INVALC,INVALC,INVALC,INVALC,INVALC,0x495F,INVALC, - 0x4964,INVALC,INVALC,INVALC,0x4963,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x495E,0x4962,0x496B,INVALC,0x4968, - INVALC,INVALC,0x4960,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4965,INVALC,INVALC,0x4966,INVALC,INVALC,0x4E74, - INVALC,0x4E67,INVALC,0x4E72,0x4E70,0x4E6E,INVALC,0x4E6C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E73,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4E75,INVALC,0x4E69,INVALC,0x4E6A,INVALC, - 0x4E76,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x526A,INVALC,0x526B,INVALC,INVALC, - INVALC,0x4E6F,0x5267,INVALC,0x526E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5269,INVALC,INVALC,INVALC,0x5268,INVALC,INVALC, - /* Block 140, Array index 0x3E00 */ - INVALC,INVALC,INVALC,0x664C,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5649,INVALC,INVALC,0x564A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5648, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x592A,INVALC,INVALC,INVALC,0x5926,INVALC,INVALC, - INVALC,INVALC,0x5924,INVALC,0x5928,INVALC,INVALC,INVALC, - 0x5923,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B34, - INVALC,INVALC,INVALC,0x5B35,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5B36,0x5D33,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D30,0x5D2C,INVALC,0x5D32,INVALC,INVALC,INVALC, - INVALC,0x5D2B,INVALC,INVALC,INVALC,INVALC,0x5D2E,INVALC, - INVALC,0x5C6D,INVALC,0x642D,INVALC,0x5E62,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E63,INVALC,INVALC,INVALC, - INVALC,0x5F61,INVALC,0x5F62,INVALC,INVALC,INVALC,0x6048, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6047,INVALC,INVALC, - 0x6049,0x607B,INVALC,INVALC,INVALC,INVALC,INVALC,0x614B, - INVALC,INVALC,INVALC,0x616B,INVALC,0x617E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 141, Array index 0x3F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x392A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x564D,INVALC,INVALC,INVALC,0x5F64,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D34,0x664D,0x6221,INVALC,INVALC,INVALC,INVALC, - 0x392D,INVALC,INVALC,0x392C,INVALC,INVALC,0x3F2A,INVALC, - 0x3F29,INVALC,INVALC,0x4464,INVALC,INVALC,INVALC,0x496D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x592B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x392E,INVALC,0x3F2C,0x3F2B, - INVALC,INVALC,INVALC,0x3F2D,INVALC,INVALC,INVALC,0x634A, - 0x4465,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E7A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x564F,INVALC, - INVALC,INVALC,INVALC,0x614D,INVALC,INVALC,INVALC,0x2F2E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3930,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3932,0x3931,INVALC, - INVALC,0x3F2F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4469,INVALC,INVALC,INVALC,0x4467,INVALC,INVALC, - 0x4970,INVALC,INVALC,INVALC,0x4972,INVALC,0x4971,INVALC, - 0x664E,INVALC,INVALC,0x4E7E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E7D,INVALC,0x4F22,INVALC,INVALC,INVALC,0x5275, - INVALC,INVALC,0x5273,INVALC,INVALC,INVALC,0x5651,0x5652, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 142, Array index 0x4000 */ - INVALC,INVALC,INVALC,0x592E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5B38,0x664F,INVALC,0x6428,INVALC, - INVALC,0x5E65,0x5E66,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6650,INVALC,0x604A,INVALC,0x614E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3933,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x243A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3939,INVALC,0x3937,INVALC,0x3935,0x3938, - INVALC,INVALC,0x3F39,0x3F34,INVALC,INVALC,0x3F37,0x3F30, - 0x3F33,INVALC,INVALC,0x3F38,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4975, - 0x4973,INVALC,0x4974,INVALC,INVALC,0x4F26,INVALC,INVALC, - INVALC,INVALC,0x4F25,INVALC,0x4F23,INVALC,0x5277,INVALC, - INVALC,0x5931,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6651,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x393E,INVALC,0x393A,INVALC,INVALC, - 0x393D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3F3F,0x3F3A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3F3B,INVALC,0x3F3E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x446B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 143, Array index 0x4100 */ - INVALC,0x497B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x497A,INVALC,INVALC,0x4979,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4F2C,INVALC,0x4F2B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x527E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x527B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x527C,INVALC,INVALC,0x5654,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5655, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5932,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5B3A,INVALC,INVALC,0x5B39,INVALC,INVALC,INVALC,INVALC, - 0x5B3B,INVALC,INVALC,INVALC,INVALC,0x5B3C,INVALC,0x5B3D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D37,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x604B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6150,INVALC,INVALC,INVALC,INVALC,0x616C, - INVALC,INVALC,INVALC,INVALC,INVALC,0x393F,INVALC,0x3940, - 0x3F40,0x4473,INVALC,0x497D,0x497C,INVALC,0x4F30,0x4F32, - 0x4F2F,0x4F31,INVALC,INVALC,0x6652,INVALC,INVALC,0x5935, - INVALC,0x5936,INVALC,0x5B3F,INVALC,INVALC,0x5D38,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6653,0x3941,INVALC, - INVALC,0x3947,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F45,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3F47,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3F44,0x3F46,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3F49,INVALC,INVALC, - /* Block 144, Array index 0x4200 */ - INVALC,INVALC,INVALC,INVALC,0x4476,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F36,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F33,INVALC,INVALC,INVALC,INVALC,0x4F35, - INVALC,INVALC,INVALC,0x4F34,INVALC,0x5324,INVALC,INVALC, - 0x5322,0x5321,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5325,0x5659,INVALC,INVALC, - INVALC,0x565A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5937,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E67,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6222,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3F4B,0x4477,INVALC, - 0x4478,0x4A21,0x4A22,INVALC,0x4F37,0x5327,INVALC,0x5326, - INVALC,INVALC,0x6654,INVALC,0x5938,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4F39,INVALC,0x272F,INVALC,INVALC, - INVALC,0x243B,INVALC,INVALC,INVALC,INVALC,0x2730,INVALC, - INVALC,0x2733,INVALC,INVALC,INVALC,INVALC,INVALC,0x2731, - INVALC,INVALC,0x2A72,INVALC,0x2A70,INVALC,INVALC,0x2A74, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2A73,0x2A71,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2F31, - INVALC,0x2F32,INVALC,INVALC,INVALC,INVALC,INVALC,0x2F33, - INVALC,0x2F30,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3425,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 145, Array index 0x4300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3427,0x3426,INVALC,INVALC,INVALC,INVALC,0x394B,INVALC, - INVALC,INVALC,0x394A,0x394E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x394C,INVALC,INVALC, - 0x3F4F,0x3F50,0x3F4D,0x3F4C,0x3F51,INVALC,INVALC,INVALC, - 0x3F55,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3F56, - INVALC,INVALC,0x3F54,0x3F57,INVALC,INVALC,INVALC,INVALC, - 0x447D,INVALC,INVALC,0x4479,INVALC,0x447C,0x447A,INVALC, - 0x447B,INVALC,INVALC,INVALC,0x447E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4A24,INVALC,INVALC,INVALC,INVALC,0x4A27, - INVALC,0x4A26,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F3C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F3B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x593A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x225E,0x225D,INVALC,INVALC,0x243C,INVALC, - INVALC,INVALC,0x243D,INVALC,0x6655,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2735,INVALC,INVALC,INVALC, - 0x2739,0x2734,INVALC,0x3951,INVALC,0x2A77,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2A75, - INVALC,0x2A78,INVALC,INVALC,0x2F35,INVALC,INVALC,INVALC, - 0x2F38,INVALC,0x2F34,INVALC,0x2F3E,INVALC,0x2F37,INVALC, - INVALC,0x2F3C,INVALC,INVALC,INVALC,0x2F3B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3429,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x394F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x636C,0x3952, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 146, Array index 0x4400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3F59,INVALC,0x4523,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4524,INVALC,0x4525,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4A2A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x532B, - INVALC,INVALC,INVALC,INVALC,0x593C,0x593B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x342A,INVALC,INVALC,0x3955,INVALC,INVALC,INVALC, - INVALC,0x3954,INVALC,INVALC,0x6657,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4528, - INVALC,INVALC,INVALC,0x4527,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A2C,INVALC, - INVALC,INVALC,INVALC,0x4A2B,0x4A2D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4F3F,INVALC,INVALC,INVALC,0x4F40,INVALC,0x532D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x532C,0x532F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x593D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5E68,INVALC,INVALC,INVALC,0x607E, - INVALC,INVALC,INVALC,INVALC,0x616D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3430,INVALC, - INVALC,INVALC,INVALC,0x342D,INVALC,INVALC,0x342F,0x342E, - 0x3431,INVALC,INVALC,INVALC,INVALC,0x3958,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3957,INVALC,0x3956,INVALC,INVALC,INVALC,0x3959,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3F5D,INVALC, - /* Block 147, Array index 0x4500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3F66,INVALC,INVALC,0x3F60,INVALC,INVALC,0x3F68,INVALC, - INVALC,INVALC,INVALC,0x3F69,INVALC,INVALC,INVALC,INVALC, - 0x3F62,INVALC,INVALC,0x3F65,INVALC,INVALC,INVALC,INVALC, - 0x3F5E,0x6659,0x3F63,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6658,INVALC,INVALC,INVALC,0x452E, - INVALC,INVALC,INVALC,INVALC,INVALC,0x452B,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4537,0x452F,INVALC,INVALC,INVALC, - INVALC,0x4539,INVALC,INVALC,0x4538,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x452A,INVALC,INVALC, - INVALC,0x452D,INVALC,INVALC,0x4531,0x4529,INVALC,0x4534, - INVALC,INVALC,0x4533,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4532,0x4535,INVALC,INVALC,0x4536,INVALC, - INVALC,INVALC,INVALC,0x665A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A34,INVALC,INVALC,0x4A35,INVALC,INVALC,INVALC, - INVALC,0x4A2F,INVALC,INVALC,INVALC,INVALC,INVALC,0x4530, - 0x4A38,INVALC,0x4A33,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A39,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4A32,0x4A37,INVALC, - 0x672A,0x4A31,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4F42,0x4F50,INVALC,INVALC,INVALC,INVALC,0x4F43,0x4F41, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4F48,INVALC,0x4F49,INVALC, - INVALC,INVALC,0x4F4B,0x4F4E,0x4F44,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F51,INVALC,INVALC,0x4F45,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4F52,INVALC,0x4F4C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4F4D,0x665B,0x665C,0x4A30,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5335,INVALC,INVALC, - /* Block 148, Array index 0x4600 */ - INVALC,INVALC,INVALC,0x533D,INVALC,0x533E,INVALC,0x5338, - INVALC,INVALC,0x5332,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5336, - INVALC,INVALC,INVALC,INVALC,0x5337,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x533B,INVALC,INVALC,INVALC, - 0x533C,0x5339,0x533A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x665D, - INVALC,INVALC,0x665E,INVALC,INVALC,0x5331,INVALC,INVALC, - 0x5665,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5666,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x565D,INVALC,0x5667, - INVALC,INVALC,0x5664,INVALC,INVALC,INVALC,0x565B,INVALC, - 0x5668,0x565E,INVALC,0x566B,INVALC,INVALC,0x5661,INVALC, - INVALC,INVALC,0x5662,0x5663,0x565F,INVALC,INVALC,INVALC, - 0x565C,INVALC,INVALC,INVALC,INVALC,0x5660,INVALC,0x566A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x665F,INVALC, - INVALC,INVALC,INVALC,0x5943,INVALC,INVALC,INVALC,INVALC, - 0x5940,INVALC,INVALC,0x5942,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5949,INVALC,INVALC,INVALC, - 0x593E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5944,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5946,INVALC,INVALC,0x5945,0x6661,0x6662,0x6660,INVALC, - INVALC,0x5B50,INVALC,INVALC,INVALC,0x5B44,0x5B45,INVALC, - INVALC,INVALC,INVALC,0x5B43,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5B48,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5B4D,INVALC,INVALC,INVALC,INVALC, - 0x5B4F,INVALC,INVALC,INVALC,INVALC,0x5B4A,INVALC,INVALC, - INVALC,0x5B41,0x5B42,0x5B4E,INVALC,0x5B47,INVALC,0x6665, - INVALC,0x6663,0x6664,0x5D41,0x5E6A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 149, Array index 0x4700 */ - INVALC,INVALC,0x5D43,INVALC,0x5D3C,0x5D3F,INVALC,INVALC, - 0x5D3E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D3D, - INVALC,INVALC,0x5D44,0x5D45,0x5D47,INVALC,0x5D42,0x5D3A, - INVALC,INVALC,0x6666,0x6667,0x6668,INVALC,INVALC,0x5D46, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E6D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5F69,0x5F6E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F6A,0x5F6C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5F6B,INVALC,0x6052,INVALC, - 0x6431,INVALC,0x6055,0x6054,0x6056,INVALC,INVALC,0x604F, - INVALC,0x6053,INVALC,INVALC,INVALC,0x6057,0x666A,0x6669, - INVALC,INVALC,INVALC,INVALC,0x6122,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x616F,0x6223,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6236,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 150, Array index 0x4800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6323,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2F40,INVALC,INVALC,INVALC,0x3432,INVALC,0x395C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3F6C,INVALC,0x666B, - INVALC,0x453C,0x453A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4A3D,INVALC,INVALC,INVALC,INVALC,0x4A3E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F53, - INVALC,INVALC,0x4F55,0x4F56,INVALC,INVALC,INVALC,INVALC, - 0x5342,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5344,0x5340,INVALC,0x566D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x666C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x594B, - 0x594A,INVALC,INVALC,INVALC,INVALC,0x5B53,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x666D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 151, Array index 0x4900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2143,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x273B,0x273A, - INVALC,0x273F,INVALC,0x273C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x273D,0x273E,INVALC,INVALC,0x2A79, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2A7C,INVALC, - INVALC,0x2A7B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3436,INVALC, - INVALC,0x3434,0x395E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3433,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3961,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3965,INVALC,0x3F71,INVALC,INVALC,INVALC,0x3F72, - INVALC,0x3F73,0x3F75,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F70,INVALC,INVALC,0x4540, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4542,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4A45,INVALC,0x4A46, - 0x4A44,INVALC,INVALC,0x4F5A,INVALC,0x4F5B,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5348,INVALC,0x5670,INVALC,0x566F, - INVALC,INVALC,0x5671,INVALC,INVALC,0x5D49,0x2A7D,0x5349, - INVALC,INVALC,0x6325,INVALC,INVALC,0x3439,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4A47,0x4A49,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E70,INVALC,0x6125,0x622F, - INVALC,INVALC,INVALC,INVALC,0x3F7E,0x3F7C,0x3F7B,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4546,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4547,INVALC,INVALC,INVALC, - /* Block 152, Array index 0x4A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F60,INVALC,0x5350,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x534D,0x534C,INVALC,0x5351, - INVALC,INVALC,0x5674,0x5675,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D4F,INVALC,0x5D4C,0x5D4E,INVALC,0x5E72,0x5E71, - INVALC,INVALC,INVALC,0x666E,0x5F71,INVALC,INVALC,INVALC, - 0x5F72,0x6059,INVALC,INVALC,INVALC,0x6126,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x666F,INVALC,INVALC, - 0x6245,0x2A7E,INVALC,INVALC,INVALC,0x4549,INVALC,INVALC, - INVALC,0x4A4C,INVALC,INVALC,INVALC,0x594F,INVALC,0x4021, - INVALC,INVALC,INVALC,0x2B21,0x4A4E,INVALC,INVALC,0x5E73, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4024,INVALC,0x4022, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x454B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F62, - INVALC,0x4F63,INVALC,INVALC,0x4F64,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5353,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x567A,INVALC,INVALC,INVALC,0x567B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5950,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5B5F,0x5B5D,INVALC,0x5B5E,0x5B60,INVALC,INVALC, - 0x5D50,INVALC,0x5D51,INVALC,INVALC,0x5E75,0x5E74,INVALC, - 0x5F73,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6128,INVALC,0x623B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5355,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5951,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5E76,INVALC,0x6129,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x454F,0x4F65, - INVALC,INVALC,0x5B61,INVALC,INVALC,0x4550,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5D53,INVALC,INVALC,INVALC, - /* Block 153, Array index 0x4B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4552,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4A54,0x4A55,INVALC,INVALC, - INVALC,0x4A52,0x4A56,INVALC,INVALC,INVALC,INVALC,0x4F69, - INVALC,INVALC,0x4F67,0x636E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F66,INVALC,INVALC,INVALC,0x535C,INVALC, - INVALC,0x5359,INVALC,0x535A,0x5228,INVALC,0x5358,INVALC, - INVALC,INVALC,0x535D,INVALC,0x535B,0x535F,INVALC,0x595B, - 0x5726,INVALC,0x637B,INVALC,INVALC,INVALC,INVALC,0x5728, - INVALC,INVALC,INVALC,0x5959,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5956,0x5958,0x5B65,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x642A,INVALC,INVALC,INVALC,INVALC,0x5E78,INVALC, - 0x5E77,INVALC,INVALC,INVALC,0x605D,0x605E,0x605C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5361,INVALC,0x572A, - INVALC,0x595C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D56,INVALC,INVALC,INVALC,0x5E7B, - 0x5E79,INVALC,0x5E7A,INVALC,INVALC,0x6225,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E7C,0x6226,INVALC,INVALC, - INVALC,0x3967,INVALC,INVALC,0x6670,INVALC,0x3968,INVALC, - INVALC,INVALC,INVALC,INVALC,0x455B,INVALC,INVALC,INVALC, - 0x402B,0x455C,INVALC,0x4554,INVALC,0x4559,INVALC,0x4557, - 0x4A5D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4558, - /* Block 154, Array index 0x4C00 */ - INVALC,0x4A5E,INVALC,INVALC,INVALC,INVALC,0x4A5B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x667A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F6B,INVALC,INVALC,0x5365,0x5366,INVALC,INVALC, - 0x5364,INVALC,0x5362,0x5363,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5962,INVALC, - 0x5961,0x5966,INVALC,0x5965,INVALC,INVALC,INVALC,INVALC, - 0x5963,INVALC,0x6671,INVALC,0x5B69,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5D58,INVALC,0x5E7E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5F78,INVALC,INVALC,0x612A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x455F,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5368,INVALC,0x5730,INVALC,0x5967,INVALC,INVALC,INVALC, - INVALC,0x5F21,0x6060,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A63,0x4A62, - 0x4A66,INVALC,INVALC,INVALC,0x4A61,INVALC,0x4A60,0x4A6C, - 0x4A64,INVALC,INVALC,INVALC,0x4A6A,INVALC,INVALC,INVALC, - 0x4F73,INVALC,0x4F6D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F6E,INVALC,INVALC,INVALC,0x4F72,INVALC, - 0x4F74,0x5370,INVALC,INVALC,INVALC,INVALC,0x5371,INVALC, - 0x536B,INVALC,INVALC,0x536C,INVALC,INVALC,INVALC,0x536A, - INVALC,INVALC,INVALC,0x5734,INVALC,0x5737,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 155, Array index 0x4D00 */ - 0x5733,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x596A,INVALC,INVALC,INVALC,0x596B,INVALC,INVALC,INVALC, - 0x596D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B6F, - 0x5B6D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B6C, - INVALC,0x5B6E,INVALC,INVALC,INVALC,INVALC,0x5B6B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D5A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5F24,0x5F22,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F79,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6062,INVALC,INVALC,INVALC,0x6061,INVALC,INVALC,INVALC, - INVALC,0x6172,INVALC,0x6173,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x402F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4F77,0x4F76,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x573A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5D61,INVALC,INVALC,INVALC, - 0x5D60,0x5D5E,INVALC,INVALC,INVALC,INVALC,0x5F25,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6174, - INVALC,0x6334,0x4A6E,INVALC,INVALC,0x5F7B,0x6063,INVALC, - 0x4032,INVALC,0x4561,INVALC,0x4A6F,0x4A73,INVALC,INVALC, - 0x4A71,0x4A70,0x4A72,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4F79,0x5375,INVALC,INVALC, - 0x5374,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 156, Array index 0x4E00 */ - 0x573B,INVALC,0x573C,INVALC,INVALC,INVALC,INVALC,0x596F, - INVALC,0x5B71,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5F27,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6672,INVALC,INVALC, - INVALC,0x612C,INVALC,INVALC,INVALC,INVALC,0x4A75,INVALC, - INVALC,INVALC,0x5D62,INVALC,0x612E,0x6433,INVALC,INVALC, - 0x6228,INVALC,INVALC,INVALC,0x573E,INVALC,INVALC,INVALC, - 0x5D63,INVALC,INVALC,INVALC,INVALC,0x4562,INVALC,INVALC, - 0x4A78,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x573F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5D64,INVALC,INVALC,0x5F28,INVALC,INVALC,INVALC,0x612F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4563,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4F7E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F7C,INVALC,0x4F7B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F7D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5378,0x537A,INVALC,INVALC,INVALC, - INVALC,0x5423,INVALC,0x537C,0x5421,INVALC,0x5425,0x537D, - INVALC,INVALC,INVALC,INVALC,0x5379,INVALC,INVALC,INVALC, - 0x6673,0x5744,INVALC,INVALC,INVALC,0x5745,INVALC,0x5740, - INVALC,INVALC,INVALC,0x5742,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5974,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5973,INVALC,INVALC,0x5B74,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5976,0x5975,0x5743,INVALC,INVALC, - INVALC,INVALC,0x5971,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B75, - INVALC,INVALC,INVALC,0x5B77,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5B79,INVALC,INVALC,INVALC,INVALC,0x5B7A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D6F,INVALC, - INVALC,0x5D71,INVALC,0x5D67,0x5D69,INVALC,0x5D6A,0x5D74, - /* Block 157, Array index 0x4F00 */ - 0x5D75,INVALC,0x5D6E,INVALC,0x5D68,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D66,INVALC,0x5D76,INVALC,INVALC,INVALC, - 0x5D73,INVALC,INVALC,INVALC,INVALC,0x5D72,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D70,INVALC,INVALC,INVALC,0x5F2C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x642F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F2A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6025,INVALC,INVALC, - 0x5F7E,INVALC,0x6023,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6022,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6065, - INVALC,0x6066,INVALC,0x6068,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6132,INVALC,INVALC, - INVALC,0x6133,INVALC,INVALC,INVALC,0x6134,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6159,INVALC,INVALC,0x615B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6175,INVALC, - INVALC,INVALC,INVALC,0x6241,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4564,INVALC,INVALC,0x4566,0x2F42,INVALC,0x4568,0x4567, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5027,INVALC,INVALC,INVALC,INVALC,INVALC,0x502A,INVALC, - /* Block 158, Array index 0x5000 */ - INVALC,0x5024,0x502B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x542D,INVALC,0x5025,0x5022,INVALC,0x542A, - INVALC,INVALC,INVALC,0x542C,INVALC,INVALC,0x5436,INVALC, - INVALC,INVALC,0x5433,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5437,INVALC,INVALC,0x5429,INVALC,INVALC,0x5435, - INVALC,INVALC,0x5432,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x574D,INVALC,INVALC, - INVALC,0x5748,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x574A,INVALC,INVALC,INVALC, - INVALC,0x6675,INVALC,INVALC,INVALC,0x5979,0x597B,INVALC, - 0x597D,INVALC,INVALC,INVALC,INVALC,0x597E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A22,INVALC, - INVALC,INVALC,INVALC,0x597A,INVALC,INVALC,0x5B7D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5C27,0x5C22,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C25,INVALC, - INVALC,INVALC,0x5B7E,INVALC,INVALC,INVALC,0x5C26,INVALC, - INVALC,INVALC,INVALC,0x5C24,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C23,INVALC,INVALC,INVALC,0x5D79,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5D7A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F35,INVALC, - 0x5F31,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F32,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5F36,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x606C,INVALC,INVALC,INVALC, - /* Block 159, Array index 0x5100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6135,INVALC,INVALC,INVALC,INVALC,INVALC,0x615D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6229,INVALC, - 0x6230,INVALC,INVALC,INVALC,0x6238,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5F37,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4569,INVALC,INVALC,0x502C,0x5439,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5A24,INVALC,INVALC,INVALC,INVALC,0x5C29,INVALC,INVALC, - 0x5E21,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F3A,INVALC, - INVALC,INVALC,0x6231,0x623F,INVALC,INVALC,0x2547,INVALC, - INVALC,INVALC,0x502F,0x502E,0x543A,INVALC,INVALC,0x5750, - INVALC,0x5A26,0x5A25,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4B22,INVALC,INVALC, - INVALC,0x5E22,INVALC,INVALC,0x396A,0x543C,0x543B,INVALC, - INVALC,INVALC,0x5A28,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x396B,INVALC,INVALC,INVALC,INVALC,0x543D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C2A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6029,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2772,INVALC, - /* Block 160, Array index 0x5200 */ - INVALC,INVALC,0x5A29,0x5C2D,0x5C2E,0x5F3C,INVALC,INVALC, - 0x615F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x456A,INVALC,INVALC,0x5C30, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6160,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A2B,0x5A2A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x606D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x613B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2370,INVALC,INVALC,0x543E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5E24,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F3E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6233,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5755,INVALC, - INVALC,INVALC,INVALC,0x602B,INVALC,INVALC,INVALC,0x6242, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E47,INVALC,INVALC, - INVALC,0x5F3F,INVALC,0x6161,INVALC,0x6177,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, -}; - -#endif /* ICONV_FROM_UCS_CCS_CNS11643_PLANE14 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> cns11643_plane14 size-optimized table (16576 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE14) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_size_cns11643_plane14[] = -{ - 0x00C5, /* Ranges number */ - 0x0D04, /* Unranged codes number */ - 0x0658, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0x4E20, 0x4E24, 0x0252, - /* Array index: 0x0006 */ 0x4EAF, 0x4EB2, 0x0257, - /* Array index: 0x0009 */ 0x4EF8, 0x4EFC, 0x025B, - /* Array index: 0x000C */ 0x4F9F, 0x4FA3, 0x0260, - /* Array index: 0x000F */ 0x4FF9, 0x5004, 0x0265, - /* Array index: 0x0012 */ 0x5078, 0x507C, 0x0271, - /* Array index: 0x0015 */ 0x50DE, 0x50E2, 0x0276, - /* Array index: 0x0018 */ 0x510D, 0x510F, 0x027B, - /* Array index: 0x001B */ 0x5182, 0x5186, 0x027E, - /* Array index: 0x001E */ 0x51B2, 0x51B5, 0x0283, - /* Array index: 0x0021 */ 0x51C1, 0x51C3, 0x0287, - /* Array index: 0x0024 */ 0x51CF, 0x51D3, 0x028A, - /* Array index: 0x0027 */ 0x51D9, 0x51DB, 0x028F, - /* Array index: 0x002A */ 0x51E2, 0x51E5, 0x0292, - /* Array index: 0x002D */ 0x5263, 0x5268, 0x0296, - /* Array index: 0x0030 */ 0x529A, 0x529E, 0x029C, - /* Array index: 0x0033 */ 0x52B3, 0x52B5, 0x02A1, - /* Array index: 0x0036 */ 0x52CC, 0x52D1, 0x02A4, - /* Array index: 0x0039 */ 0x5332, 0x533B, 0x02AA, - /* Array index: 0x003C */ 0x53A6, 0x53AB, 0x02B4, - /* Array index: 0x003F */ 0x53C1, 0x53C5, 0x02BA, - /* Array index: 0x0042 */ 0x53D9, 0x53DD, 0x02BF, - /* Array index: 0x0045 */ 0x5421, 0x5423, 0x02C4, - /* Array index: 0x0048 */ 0x5449, 0x5451, 0x02C7, - /* Array index: 0x004B */ 0x54CA, 0x54CD, 0x02D0, - /* Array index: 0x004E */ 0x54F4, 0x54F6, 0x02D4, - /* Array index: 0x0051 */ 0x5558, 0x555A, 0x02D7, - /* Array index: 0x0054 */ 0x5571, 0x5573, 0x02DA, - /* Array index: 0x0057 */ 0x564D, 0x5656, 0x02DD, - /* Array index: 0x005A */ 0x569E, 0x56A0, 0x02E7, - /* Array index: 0x005D */ 0x56B8, 0x56BB, 0x02EA, - /* Array index: 0x0060 */ 0x56EF, 0x56F3, 0x02EE, - /* Array index: 0x0063 */ 0x56FB, 0x56FD, 0x02F3, - /* Array index: 0x0066 */ 0x5742, 0x5748, 0x02F6, - /* Array index: 0x0069 */ 0x5753, 0x5759, 0x02FD, - /* Array index: 0x006C */ 0x578D, 0x5792, 0x0304, - /* Array index: 0x006F */ 0x57A6, 0x57A8, 0x030A, - /* Array index: 0x0072 */ 0x57C4, 0x57CA, 0x030D, - /* Array index: 0x0075 */ 0x585F, 0x5861, 0x0314, - /* Array index: 0x0078 */ 0x5866, 0x586C, 0x0317, - /* Array index: 0x007B */ 0x5895, 0x5897, 0x031E, - /* Array index: 0x007E */ 0x58EE, 0x58F7, 0x0321, - /* Array index: 0x0081 */ 0x5900, 0x590B, 0x032B, - /* Array index: 0x0084 */ 0x594B, 0x594D, 0x0337, - /* Array index: 0x0087 */ 0x599A, 0x599C, 0x033A, - /* Array index: 0x008A */ 0x5A2A, 0x5A2C, 0x033D, - /* Array index: 0x008D */ 0x5A7E, 0x5A89, 0x0340, - /* Array index: 0x0090 */ 0x5AA0, 0x5AA4, 0x034C, - /* Array index: 0x0093 */ 0x5ACE, 0x5AD3, 0x0351, - /* Array index: 0x0096 */ 0x5B37, 0x5B3B, 0x0357, - /* Array index: 0x0099 */ 0x5B9D, 0x5B9F, 0x035C, - /* Array index: 0x009C */ 0x5BDA, 0x5BDD, 0x035F, - /* Array index: 0x009F */ 0x5BFD, 0x5C00, 0x0363, - /* Array index: 0x00A2 */ 0x5CB9, 0x5CBB, 0x0367, - /* Array index: 0x00A5 */ 0x5D08, 0x5D0A, 0x036A, - /* Array index: 0x00A8 */ 0x5D8B, 0x5D91, 0x036D, - /* Array index: 0x00AB */ 0x5DA3, 0x5DA6, 0x0374, - /* Array index: 0x00AE */ 0x5E2C, 0x5E32, 0x0378, - /* Array index: 0x00B1 */ 0x5E46, 0x5E48, 0x037F, - /* Array index: 0x00B4 */ 0x5EF8, 0x5EFD, 0x0382, - /* Array index: 0x00B7 */ 0x5F0C, 0x5F0E, 0x0388, - /* Array index: 0x00BA */ 0x5F39, 0x5F3B, 0x038B, - /* Array index: 0x00BD */ 0x5F50, 0x5F55, 0x038E, - /* Array index: 0x00C0 */ 0x5F8D, 0x5F8F, 0x0394, - /* Array index: 0x00C3 */ 0x5FDA, 0x5FDC, 0x0397, - /* Array index: 0x00C6 */ 0x604E, 0x6052, 0x039A, - /* Array index: 0x00C9 */ 0x6073, 0x6075, 0x039F, - /* Array index: 0x00CC */ 0x60A6, 0x60AA, 0x03A2, - /* Array index: 0x00CF */ 0x611E, 0x6122, 0x03A7, - /* Array index: 0x00D2 */ 0x6185, 0x6188, 0x03AC, - /* Array index: 0x00D5 */ 0x6195, 0x6199, 0x03B0, - /* Array index: 0x00D8 */ 0x61CE, 0x61D0, 0x03B5, - /* Array index: 0x00DB */ 0x61D9, 0x61DD, 0x03B8, - /* Array index: 0x00DE */ 0x6235, 0x623C, 0x03BD, - /* Array index: 0x00E1 */ 0x6299, 0x629E, 0x03C5, - /* Array index: 0x00E4 */ 0x62A3, 0x62A7, 0x03CB, - /* Array index: 0x00E7 */ 0x62DD, 0x62E1, 0x03D0, - /* Array index: 0x00EA */ 0x635B, 0x635D, 0x03D5, - /* Array index: 0x00ED */ 0x6438, 0x643C, 0x03D8, - /* Array index: 0x00F0 */ 0x6455, 0x6457, 0x03DD, - /* Array index: 0x00F3 */ 0x655F, 0x6561, 0x03E0, - /* Array index: 0x00F6 */ 0x656D, 0x6571, 0x03E3, - /* Array index: 0x00F9 */ 0x6617, 0x661B, 0x03E8, - /* Array index: 0x00FC */ 0x66A4, 0x66A6, 0x03ED, - /* Array index: 0x00FF */ 0x66CD, 0x66D7, 0x03F0, - /* Array index: 0x0102 */ 0x67A2, 0x67A4, 0x03FB, - /* Array index: 0x0105 */ 0x67D5, 0x67D7, 0x03FE, - /* Array index: 0x0108 */ 0x6822, 0x6824, 0x0401, - /* Array index: 0x010B */ 0x6855, 0x685A, 0x0404, - /* Array index: 0x010E */ 0x6898, 0x689A, 0x040A, - /* Array index: 0x0111 */ 0x68B6, 0x68B9, 0x040D, - /* Array index: 0x0114 */ 0x68FE, 0x6903, 0x0411, - /* Array index: 0x0117 */ 0x6A29, 0x6A2D, 0x0417, - /* Array index: 0x011A */ 0x6AB0, 0x6AB2, 0x041C, - /* Array index: 0x011D */ 0x6ABC, 0x6AC1, 0x041F, - /* Array index: 0x0120 */ 0x6AD4, 0x6AD8, 0x0425, - /* Array index: 0x0123 */ 0x6AFD, 0x6B01, 0x042A, - /* Array index: 0x0126 */ 0x6B1B, 0x6B1D, 0x042F, - /* Array index: 0x0129 */ 0x6B26, 0x6B2B, 0x0432, - /* Array index: 0x012C */ 0x6B68, 0x6B74, 0x0438, - /* Array index: 0x012F */ 0x6C9E, 0x6CA2, 0x0445, - /* Array index: 0x0132 */ 0x6D13, 0x6D15, 0x044A, - /* Array index: 0x0135 */ 0x6D5B, 0x6D5D, 0x044D, - /* Array index: 0x0138 */ 0x6D71, 0x6D73, 0x0450, - /* Array index: 0x013B */ 0x6D99, 0x6D9B, 0x0453, - /* Array index: 0x013E */ 0x6DFE, 0x6E0C, 0x0456, - /* Array index: 0x0141 */ 0x6ED9, 0x6EDD, 0x0465, - /* Array index: 0x0144 */ 0x6F48, 0x6F4C, 0x046A, - /* Array index: 0x0147 */ 0x6FD6, 0x6FDA, 0x046F, - /* Array index: 0x014A */ 0x702C, 0x702E, 0x0474, - /* Array index: 0x014D */ 0x7087, 0x7090, 0x0477, - /* Array index: 0x0150 */ 0x70A2, 0x70AA, 0x0481, - /* Array index: 0x0153 */ 0x712A, 0x712D, 0x048A, - /* Array index: 0x0156 */ 0x7133, 0x713F, 0x048E, - /* Array index: 0x0159 */ 0x7174, 0x7177, 0x049B, - /* Array index: 0x015C */ 0x718B, 0x718E, 0x049F, - /* Array index: 0x015F */ 0x71E9, 0x71EB, 0x04A3, - /* Array index: 0x0162 */ 0x720E, 0x7218, 0x04A6, - /* Array index: 0x0165 */ 0x7264, 0x7268, 0x04B1, - /* Array index: 0x0168 */ 0x7328, 0x732F, 0x04B6, - /* Array index: 0x016B */ 0x7346, 0x7348, 0x04BE, - /* Array index: 0x016E */ 0x7353, 0x7355, 0x04C1, - /* Array index: 0x0171 */ 0x73CE, 0x73D0, 0x04C4, - /* Array index: 0x0174 */ 0x7414, 0x7419, 0x04C7, - /* Array index: 0x0177 */ 0x7438, 0x743E, 0x04CD, - /* Array index: 0x017A */ 0x7445, 0x7449, 0x04D4, - /* Array index: 0x017D */ 0x74C7, 0x74D3, 0x04D9, - /* Array index: 0x0180 */ 0x7555, 0x7558, 0x04E6, - /* Array index: 0x0183 */ 0x76D5, 0x76D9, 0x04EA, - /* Array index: 0x0186 */ 0x773F, 0x7743, 0x04EF, - /* Array index: 0x0189 */ 0x7774, 0x777B, 0x04F4, - /* Array index: 0x018C */ 0x7807, 0x780B, 0x04FC, - /* Array index: 0x018F */ 0x7906, 0x790D, 0x0501, - /* Array index: 0x0192 */ 0x7983, 0x7989, 0x0509, - /* Array index: 0x0195 */ 0x799D, 0x799F, 0x0510, - /* Array index: 0x0198 */ 0x79C3, 0x79C7, 0x0513, - /* Array index: 0x019B */ 0x79D7, 0x79DB, 0x0518, - /* Array index: 0x019E */ 0x79F0, 0x79F5, 0x051D, - /* Array index: 0x01A1 */ 0x7A29, 0x7A2D, 0x0523, - /* Array index: 0x01A4 */ 0x7ACC, 0x7AD5, 0x0528, - /* Array index: 0x01A7 */ 0x7ADA, 0x7ADD, 0x0532, - /* Array index: 0x01AA */ 0x7AF0, 0x7AF5, 0x0536, - /* Array index: 0x01AD */ 0x7B41, 0x7B43, 0x053C, - /* Array index: 0x01B0 */ 0x7C99, 0x7C9C, 0x053F, - /* Array index: 0x01B3 */ 0x7CC2, 0x7CC9, 0x0543, - /* Array index: 0x01B6 */ 0x7D74, 0x7D78, 0x054B, - /* Array index: 0x01B9 */ 0x7D87, 0x7D8B, 0x0550, - /* Array index: 0x01BC */ 0x7D95, 0x7D99, 0x0555, - /* Array index: 0x01BF */ 0x7DCD, 0x7DD3, 0x055A, - /* Array index: 0x01C2 */ 0x7DFC, 0x7E02, 0x0561, - /* Array index: 0x01C5 */ 0x805F, 0x806B, 0x0568, - /* Array index: 0x01C8 */ 0x807A, 0x807C, 0x0575, - /* Array index: 0x01CB */ 0x80A4, 0x80A8, 0x0578, - /* Array index: 0x01CE */ 0x8140, 0x8142, 0x057D, - /* Array index: 0x01D1 */ 0x8192, 0x8196, 0x0580, - /* Array index: 0x01D4 */ 0x8218, 0x821A, 0x0585, - /* Array index: 0x01D7 */ 0x8414, 0x8418, 0x0588, - /* Array index: 0x01DA */ 0x8492, 0x8496, 0x058D, - /* Array index: 0x01DD */ 0x8501, 0x8505, 0x0592, - /* Array index: 0x01E0 */ 0x8533, 0x8535, 0x0597, - /* Array index: 0x01E3 */ 0x8845, 0x8847, 0x059A, - /* Array index: 0x01E6 */ 0x8A9B, 0x8A9F, 0x059D, - /* Array index: 0x01E9 */ 0x8AB1, 0x8AB7, 0x05A2, - /* Array index: 0x01EC */ 0x8C51, 0x8C53, 0x05A9, - /* Array index: 0x01EF */ 0x8D82, 0x8D88, 0x05AC, - /* Array index: 0x01F2 */ 0x8EAD, 0x8EB9, 0x05B3, - /* Array index: 0x01F5 */ 0x8F9D, 0x8FA7, 0x05C0, - /* Array index: 0x01F8 */ 0x9028, 0x902C, 0x05CB, - /* Array index: 0x01FB */ 0x91DE, 0x91E0, 0x05D0, - /* Array index: 0x01FE */ 0x9220, 0x9222, 0x05D3, - /* Array index: 0x0201 */ 0x92AD, 0x92B1, 0x05D6, - /* Array index: 0x0204 */ 0x92DA, 0x92DC, 0x05DB, - /* Array index: 0x0207 */ 0x92F3, 0x92F6, 0x05DE, - /* Array index: 0x020A */ 0x9330, 0x9332, 0x05E2, - /* Array index: 0x020D */ 0x9372, 0x9374, 0x05E5, - /* Array index: 0x0210 */ 0x93BB, 0x93BE, 0x05E8, - /* Array index: 0x0213 */ 0x93E9, 0x93F4, 0x05EC, - /* Array index: 0x0216 */ 0x941A, 0x9424, 0x05F8, - /* Array index: 0x0219 */ 0x9458, 0x945C, 0x0603, - /* Array index: 0x021C */ 0x9465, 0x9467, 0x0608, - /* Array index: 0x021F */ 0x96B5, 0x96B7, 0x060B, - /* Array index: 0x0222 */ 0x96EC, 0x96EE, 0x060E, - /* Array index: 0x0225 */ 0x9733, 0x9737, 0x0611, - /* Array index: 0x0228 */ 0x97B1, 0x97B5, 0x0616, - /* Array index: 0x022B */ 0x983C, 0x9842, 0x061B, - /* Array index: 0x022E */ 0x9854, 0x9856, 0x0622, - /* Array index: 0x0231 */ 0x986C, 0x986E, 0x0625, - /* Array index: 0x0234 */ 0x99B6, 0x99B8, 0x0628, - /* Array index: 0x0237 */ 0x99BC, 0x99C0, 0x062B, - /* Array index: 0x023A */ 0x9AE4, 0x9AEA, 0x0630, - /* Array index: 0x023D */ 0x9B8B, 0x9B8F, 0x0637, - /* Array index: 0x0240 */ 0x9BCB, 0x9BCD, 0x063C, - /* Array index: 0x0243 */ 0x9BFB, 0x9C04, 0x063F, - /* Array index: 0x0246 */ 0x9CEB, 0x9CEF, 0x0649, - /* Array index: 0x0249 */ 0x9EAA, 0x9EAC, 0x064E, - /* Array index: 0x024C */ 0x9EC4, 0x9EC6, 0x0651, - /* Array index: 0x024F */ 0x9F02, 0x9F05, 0x0654, - /* Ranges content */ - /* Range 0x4E20 - 0x4E24, array index: 0x0252 */ - 0x2262,0x2261,0x2263,INVALC,0x243F, - /* Range 0x4EAF - 0x4EB2, array index: 0x0257 */ - 0x2B26,0x2B25,0x2B27,0x2B24, - /* Range 0x4EF8 - 0x4EFC, array index: 0x025B */ - 0x226B,0x2267,0x2276,INVALC,0x226E, - /* Range 0x4F9F - 0x4FA3, array index: 0x0260 */ - 0x274C,0x2749,0x274B,0x274A,0x274D, - /* Range 0x4FF9 - 0x5004, array index: 0x0265 */ - 0x2F44,INVALC,0x2F58,0x2F4C,0x2F56,INVALC,0x2F46,INVALC, - INVALC,0x2F4B,0x2F49,0x2F47, - /* Range 0x5078 - 0x507C, array index: 0x0271 */ - 0x344C,0x344A,INVALC,0x3445,0x3446, - /* Range 0x50DE - 0x50E2, array index: 0x0276 */ - 0x4576,0x634D,INVALC,0x4570,0x4575, - /* Range 0x510D - 0x510F, array index: 0x027B */ - 0x4B2C,0x4B27,0x644E, - /* Range 0x5182 - 0x5186, array index: 0x027E */ - 0x2127,INVALC,0x214D,0x2148,0x214E, - /* Range 0x51B2 - 0x51B5, array index: 0x0283 */ - 0x227E,0x227D,0x227C,0x2459, - /* Range 0x51C1 - 0x51C3, array index: 0x0287 */ - 0x2B3B,0x2B3D,0x2B3E, - /* Range 0x51CF - 0x51D3, array index: 0x028A */ - 0x344F,INVALC,0x344E,0x397D,0x397A, - /* Range 0x51D9 - 0x51DB, array index: 0x028F */ - 0x4B2F,0x4B2E,0x4B30, - /* Range 0x51E2 - 0x51E5, array index: 0x0292 */ - 0x212F,0x2135,0x2151,0x217B, - /* Range 0x5263 - 0x5268, array index: 0x0296 */ - 0x2F66,0x2F61,0x2F63,INVALC,0x2F64,0x3450, - /* Range 0x529A - 0x529E, array index: 0x029C */ - 0x602C,INVALC,0x2137,0x2154,0x2153, - /* Range 0x52B3 - 0x52B5, array index: 0x02A1 */ - 0x2463,0x2462,0x2761, - /* Range 0x52CC - 0x52D1, array index: 0x02A4 */ - 0x2F6F,INVALC,0x2F6C,0x2F6A,0x2F6D,0x2F6E, - /* Range 0x5332 - 0x533B, array index: 0x02AA */ - 0x4623,0x4B34,INVALC,0x5444,0x5C34,INVALC,0x2129,INVALC, - 0x2157,0x2466, - /* Range 0x53A6 - 0x53AB, array index: 0x02B4 */ - 0x3A28,INVALC,0x3A27,0x404A,0x4049,0x4048, - /* Range 0x53C1 - 0x53C5, array index: 0x02BA */ - 0x2769,0x276A,INVALC,0x3455,0x3A29, - /* Range 0x53D9 - 0x53DD, array index: 0x02BF */ - 0x2B50,0x2B4F,INVALC,0x2B4E,0x2B4D, - /* Range 0x5421 - 0x5423, array index: 0x02C4 */ - 0x2479,0x247E,0x2475, - /* Range 0x5449 - 0x5451, array index: 0x02C7 */ - 0x247C,INVALC,0x2478,0x2474,0x246D,INVALC,INVALC,0x247D, - 0x2522, - /* Range 0x54CA - 0x54CD, array index: 0x02D0 */ - 0x2B55,0x6454,0x2B63,0x2B61, - /* Range 0x54F4 - 0x54F6, array index: 0x02D4 */ - 0x2F74,0x2F78,0x3022, - /* Range 0x5558 - 0x555A, array index: 0x02D7 */ - 0x3457,0x3A36,0x3464, - /* Range 0x5571 - 0x5573, array index: 0x02DA */ - 0x6456,0x6722,0x6455, - /* Range 0x564D - 0x5656, array index: 0x02DD */ - 0x4B43,INVALC,0x4B45,0x4B40,0x4635,0x4B3C,INVALC,0x4B39, - INVALC,0x4B3F, - /* Range 0x569E - 0x56A0, array index: 0x02E7 */ - 0x5759,0x5757,0x575C, - /* Range 0x56B8 - 0x56BB, array index: 0x02EA */ - 0x6726,0x6727,0x645C,0x5E26, - /* Range 0x56EF - 0x56F3, array index: 0x02EE */ - 0x2529,INVALC,0x2548,0x2527,0x2528, - /* Range 0x56FB - 0x56FD, array index: 0x02F3 */ - 0x277C,0x2821,0x277B, - /* Range 0x5742 - 0x5748, array index: 0x02F6 */ - 0x2540,0x2536,0x252F,INVALC,0x253C,INVALC,0x252D, - /* Range 0x5753 - 0x5759, array index: 0x02FD */ - 0x2532,0x2541,0x2542,0x2533,0x2538,0x2537,0x645F, - /* Range 0x578D - 0x5792, array index: 0x0304 */ - 0x2B69,0x2B68,INVALC,0x2B6C,0x2B67,0x2B6A, - /* Range 0x57A6 - 0x57A8, array index: 0x030A */ - 0x2B6D,0x2B72,0x2B6E, - /* Range 0x57C4 - 0x57CA, array index: 0x030D */ - 0x3034,0x3035,INVALC,INVALC,0x3033,0x3028,0x3037, - /* Range 0x585F - 0x5861, array index: 0x0314 */ - 0x405E,0x405C,0x4058, - /* Range 0x5866 - 0x586C, array index: 0x0317 */ - 0x405D,0x6343,INVALC,0x405A,0x4059,INVALC,0x4054, - /* Range 0x5895 - 0x5897, array index: 0x031E */ - 0x4641,0x4644,0x4640, - /* Range 0x58EE - 0x58F7, array index: 0x0321 */ - 0x2343,INVALC,0x2545,0x2543,0x2544,0x282D,INVALC,0x2B77, - INVALC,0x3477, - /* Range 0x5900 - 0x590B, array index: 0x032B */ - 0x6466,0x504D,0x2139,INVALC,0x2235,0x2344,INVALC,INVALC, - 0x2B7A,0x2B79,0x213A,0x2546, - /* Range 0x594B - 0x594D, array index: 0x0337 */ - 0x282E,0x282F,0x6467, - /* Range 0x599A - 0x599C, array index: 0x033A */ - 0x2556,0x2553,0x254E, - /* Range 0x5A2A - 0x5A2C, array index: 0x033D */ - 0x303C,0x3522,0x3538, - /* Range 0x5A7E - 0x5A89, array index: 0x0340 */ - 0x3A7C,INVALC,0x3A63,0x3A61,0x3A58,INVALC,INVALC,0x3A5B, - 0x3A77,0x3A72,0x3A59,0x3A60, - /* Range 0x5AA0 - 0x5AA4, array index: 0x034C */ - 0x3A73,0x3A5A,INVALC,0x3A57,0x3A7A, - /* Range 0x5ACE - 0x5AD3, array index: 0x0351 */ - 0x4064,0x3A6B,0x406A,0x6468,INVALC,0x6469, - /* Range 0x5B37 - 0x5B3B, array index: 0x0357 */ - 0x5453,INVALC,0x5A31,0x5761,0x575E, - /* Range 0x5B9D - 0x5B9F, array index: 0x035C */ - 0x284E,0x284B,0x284D, - /* Range 0x5BDA - 0x5BDD, array index: 0x035F */ - 0x4075,0x4076,0x4073,0x6345, - /* Range 0x5BFD - 0x5C00, array index: 0x0363 */ - 0x255E,0x255C,0x255D,0x2850, - /* Range 0x5CB9 - 0x5CBB, array index: 0x0367 */ - 0x285C,0x285F,0x2857, - /* Range 0x5D08 - 0x5D0A, array index: 0x036A */ - 0x354B,0x3548,0x3547, - /* Range 0x5D8B - 0x5D91, array index: 0x036D */ - 0x4659,0x465A,INVALC,0x646F,0x4B65,0x4B66,0x4B63, - /* Range 0x5DA3 - 0x5DA6, array index: 0x0374 */ - 0x4B6A,0x4B68,0x6470,0x5058, - /* Range 0x5E2C - 0x5E32, array index: 0x0378 */ - 0x3069,INVALC,0x3068,0x306A,0x3067,INVALC,0x355B, - /* Range 0x5E46 - 0x5E48, array index: 0x037F */ - 0x3B3A,0x3B3B,0x3B3D, - /* Range 0x5EF8 - 0x5EFD, array index: 0x0382 */ - 0x2869,0x286B,INVALC,0x2C4C,0x2C4B,0x306E, - /* Range 0x5F0C - 0x5F0E, array index: 0x0388 */ - 0x2164,0x2249,0x2362, - /* Range 0x5F39 - 0x5F3B, array index: 0x038B */ - 0x3563,0x3B47,0x3B45, - /* Range 0x5F50 - 0x5F55, array index: 0x038E */ - 0x2140,0x2141,0x224A,0x2351,INVALC,0x2871, - /* Range 0x5F8D - 0x5F8F, array index: 0x0394 */ - 0x6264,0x3070,0x3072, - /* Range 0x5FDA - 0x5FDC, array index: 0x0397 */ - 0x2367,0x2369,0x2577, - /* Range 0x604E - 0x6052, array index: 0x039A */ - 0x2C56,0x3073,INVALC,0x2C57,0x2C5D, - /* Range 0x6073 - 0x6075, array index: 0x039F */ - 0x307A,0x3078,0x307B, - /* Range 0x60A6 - 0x60AA, array index: 0x03A2 */ - 0x3123,0x3128,INVALC,0x3121,0x356F, - /* Range 0x611E - 0x6122, array index: 0x03A7 */ - 0x3B61,INVALC,0x3B62,0x3B63,0x3B50, - /* Range 0x6185 - 0x6188, array index: 0x03AC */ - 0x4C23,0x4674,0x4C24,0x4B77, - /* Range 0x6195 - 0x6199, array index: 0x03B0 */ - 0x4B76,INVALC,0x5068,0x4C28,0x5067, - /* Range 0x61CE - 0x61D0, array index: 0x03B5 */ - 0x5062,0x5065,0x506B, - /* Range 0x61D9 - 0x61DD, array index: 0x03B8 */ - 0x5461,0x545F,0x545C,0x545E,0x545D, - /* Range 0x6235 - 0x623C, array index: 0x03BD */ - 0x5F48,INVALC,0x2165,0x2166,0x224E,INVALC,0x2628,0x2629, - /* Range 0x6299 - 0x629E, array index: 0x03C5 */ - 0x2635,INVALC,0x2633,0x2634,0x2638,0x2631, - /* Range 0x62A3 - 0x62A7, array index: 0x03CB */ - 0x647B,INVALC,0x2632,0x2931,0x292A, - /* Range 0x62DD - 0x62E1, array index: 0x03D0 */ - 0x2930,0x2937,0x2935,0x2936,0x292F, - /* Range 0x635B - 0x635D, array index: 0x03D5 */ - 0x3130,0x313B,0x3136, - /* Range 0x6438 - 0x643C, array index: 0x03D8 */ - 0x4134,INVALC,0x4148,0x4725,0x4142, - /* Range 0x6455 - 0x6457, array index: 0x03DD */ - 0x467E,0x4724,0x467A, - /* Range 0x655F - 0x6561, array index: 0x03E0 */ - 0x3B74,0x3B75,0x3B76, - /* Range 0x656D - 0x6571, array index: 0x03E3 */ - 0x414E,0x6346,INVALC,0x414D,0x4730, - /* Range 0x6617 - 0x661B, array index: 0x03E8 */ - 0x2940,0x2941,INVALC,0x2C7E,0x2C7A, - /* Range 0x66A4 - 0x66A6, array index: 0x03ED */ - 0x4739,0x4733,0x4737, - /* Range 0x66CD - 0x66D7, array index: 0x03F0 */ - 0x5122,0x5471,INVALC,0x546F,0x5470,INVALC,INVALC,0x546C, - 0x546D,INVALC,0x5472, - /* Range 0x67A2 - 0x67A4, array index: 0x03FB */ - 0x294E,0x294C,0x6528, - /* Range 0x67D5 - 0x67D7, array index: 0x03FE */ - 0x2D31,0x2D2B,0x2D3A, - /* Range 0x6822 - 0x6824, array index: 0x0401 */ - 0x315E,0x3164,0x3150, - /* Range 0x6855 - 0x685A, array index: 0x0404 */ - 0x3162,0x3158,INVALC,0x3161,0x3160,0x652D, - /* Range 0x6898 - 0x689A, array index: 0x040A */ - 0x364D,0x365C,0x3650, - /* Range 0x68B6 - 0x68B9, array index: 0x040D */ - 0x364C,0x3652,0x365E,0x365F, - /* Range 0x68FE - 0x6903, array index: 0x0411 */ - 0x3C31,0x3C42,0x3C39,0x3C3B,0x3C34,0x3C2F, - /* Range 0x6A29 - 0x6A2D, array index: 0x0417 */ - 0x4C5E,0x4C59,INVALC,0x4C61,0x6530, - /* Range 0x6AB0 - 0x6AB2, array index: 0x041C */ - 0x5777,0x5821,0x5776, - /* Range 0x6ABC - 0x6AC1, array index: 0x041F */ - 0x577E,INVALC,0x5779,0x5823,0x577D,0x577A, - /* Range 0x6AD4 - 0x6AD8, array index: 0x0425 */ - 0x5A45,0x5A4E,INVALC,0x5A47,0x5A4D, - /* Range 0x6AFD - 0x6B01, array index: 0x042A */ - 0x5E35,0x5E34,0x5E33,INVALC,0x5E37, - /* Range 0x6B1B - 0x6B1D, array index: 0x042F */ - 0x6140,0x6165,0x6141, - /* Range 0x6B26 - 0x6B2B, array index: 0x0432 */ - 0x2953,0x2954,INVALC,0x6269,0x2D3C,0x3166, - /* Range 0x6B68 - 0x6B74, array index: 0x0438 */ - 0x2955,0x2956,INVALC,0x2D3D,0x3168,INVALC,0x3C49,0x3C47, - INVALC,0x417E,INVALC,0x4221,0x4753, - /* Range 0x6C9E - 0x6CA2, array index: 0x0445 */ - 0x264E,0x2652,0x265C,0x2659,0x2656, - /* Range 0x6D13 - 0x6D15, array index: 0x044A */ - 0x2D49,0x2D47,0x2D4D, - /* Range 0x6D5B - 0x6D5D, array index: 0x044D */ - 0x3179,0x3226,0x3176, - /* Range 0x6D71 - 0x6D73, array index: 0x0450 */ - 0x3222,0x3225,0x3172, - /* Range 0x6D99 - 0x6D9B, array index: 0x0453 */ - 0x317D,0x317B,0x317C, - /* Range 0x6DFE - 0x6E0C, array index: 0x0456 */ - 0x3C5D,0x3728,INVALC,0x3726,0x3723,INVALC,0x3670,INVALC, - 0x3677,0x3724,0x3676,0x3725,0x3679,INVALC,0x367D, - /* Range 0x6ED9 - 0x6EDD, array index: 0x0465 */ - 0x4244,0x423E,0x4247,INVALC,0x423D, - /* Range 0x6F48 - 0x6F4C, array index: 0x046A */ - 0x6544,0x6545,0x4766,INVALC,0x6543, - /* Range 0x6FD6 - 0x6FDA, array index: 0x046F */ - 0x5530,0x552F,INVALC,0x5535,0x5536, - /* Range 0x702C - 0x702E, array index: 0x0474 */ - 0x5A53,0x654A,0x6549, - /* Range 0x7087 - 0x7090, array index: 0x0477 */ - 0x2974,0x2970,0x2975,INVALC,0x296F,0x2979,0x2976,INVALC, - 0x2972,0x2971, - /* Range 0x70A2 - 0x70AA, array index: 0x0481 */ - 0x2D5C,0x2D5A,INVALC,0x2D58,0x626A,0x2D65,0x2D62,INVALC, - 0x2D5F, - /* Range 0x712A - 0x712D, array index: 0x048A */ - 0x3C6F,0x3C7A,0x3C72,0x3D21, - /* Range 0x7133 - 0x713F, array index: 0x048E */ - 0x3C7B,0x3C79,0x3C71,INVALC,0x3C73,0x3C77,0x6553,INVALC, - 0x6554,INVALC,0x6555,INVALC,0x6552, - /* Range 0x7174 - 0x7177, array index: 0x049B */ - 0x4253,0x6557,0x6558,0x6556, - /* Range 0x718B - 0x718E, array index: 0x049F */ - 0x476A,0x476D,0x476B,0x4768, - /* Range 0x71E9 - 0x71EB, array index: 0x04A3 */ - 0x553E,0x5543,0x5540, - /* Range 0x720E - 0x7218, array index: 0x04A6 */ - 0x655F,0x5C56,INVALC,0x5C58,0x5C55,INVALC,INVALC,0x5A58, - 0x5C53,0x5C57,0x6561, - /* Range 0x7264 - 0x7268, array index: 0x04B1 */ - 0x2664,0x2A21,0x2A22,INVALC,0x2A23, - /* Range 0x7328 - 0x732F, array index: 0x04B6 */ - 0x3D2E,INVALC,0x3D29,0x3D2B,0x3D2A,INVALC,0x4261,0x3D2D, - /* Range 0x7346 - 0x7348, array index: 0x04BE */ - 0x4262,0x6562,0x6563, - /* Range 0x7353 - 0x7355, array index: 0x04C1 */ - 0x4778,0x477A,0x4777, - /* Range 0x73CE - 0x73D0, array index: 0x04C4 */ - 0x2D7E,0x2D79,0x2D7C, - /* Range 0x7414 - 0x7419, array index: 0x04C7 */ - 0x3D36,0x3D3A,INVALC,0x3D2F,0x3D3B,0x3D32, - /* Range 0x7438 - 0x743E, array index: 0x04CD */ - 0x3D33,0x3D3C,INVALC,0x6566,0x3D37,0x4268,0x4275, - /* Range 0x7445 - 0x7449, array index: 0x04D4 */ - 0x4274,INVALC,0x426E,0x4266,0x4271, - /* Range 0x74C7 - 0x74D3, array index: 0x04D9 */ - 0x5A5C,0x5A5D,0x5A5B,INVALC,INVALC,0x5C5E,0x5C5C,0x5C5F, - INVALC,0x5C5D,0x5C60,INVALC,0x5E3D, - /* Range 0x7555 - 0x7558, array index: 0x04E6 */ - 0x324E,0x324D,0x3250,0x324F, - /* Range 0x76D5 - 0x76D9, array index: 0x04EA */ - 0x3750,0x3752,0x3751,INVALC,0x3D4F, - /* Range 0x773F - 0x7743, array index: 0x04EF */ - 0x3262,0x3757,INVALC,0x3D56,0x3D53, - /* Range 0x7774 - 0x777B, array index: 0x04F4 */ - 0x4833,0x4836,0x4835,0x4834,0x4838,INVALC,0x483B,0x483D, - /* Range 0x7807 - 0x780B, array index: 0x04FC */ - 0x2E3B,0x2E3E,INVALC,0x2E37,0x2E3A, - /* Range 0x7906 - 0x790D, array index: 0x0501 */ - 0x5843,0x583E,0x5840,INVALC,0x583F,0x583C,INVALC,0x5842, - /* Range 0x7983 - 0x7989, array index: 0x0509 */ - 0x4339,0x3D63,INVALC,0x6578,0x4848,INVALC,0x4847, - /* Range 0x799D - 0x799F, array index: 0x0510 */ - 0x4D50,0x4D51,0x4D4F, - /* Range 0x79C3 - 0x79C7, array index: 0x0513 */ - 0x2A3E,0x2A3D,INVALC,0x2A3F,0x2A42, - /* Range 0x79D7 - 0x79DB, array index: 0x0518 */ - 0x2E43,INVALC,0x3274,0x3273,0x3279, - /* Range 0x79F0 - 0x79F5, array index: 0x051D */ - 0x327C,0x3769,0x3767,0x376B,INVALC,0x376A, - /* Range 0x7A29 - 0x7A2D, array index: 0x0523 */ - 0x484B,0x484D,INVALC,0x4850,0x484F, - /* Range 0x7ACC - 0x7AD5, array index: 0x0528 */ - 0x267E,0x2721,INVALC,0x2A47,0x2E4E,INVALC,0x2E4F,0x2E4D, - 0x2E4B,0x2E4C, - /* Range 0x7ADA - 0x7ADD, array index: 0x0532 */ - 0x3323,0x3326,0x3327,0x3324, - /* Range 0x7AF0 - 0x7AF5, array index: 0x0536 */ - 0x4855,0x5230,0x5569,0x556A,INVALC,0x5849, - /* Range 0x7B41 - 0x7B43, array index: 0x053C */ - 0x3D7B,0x3D78,0x3D75, - /* Range 0x7C99 - 0x7C9C, array index: 0x053F */ - 0x377E,0x3821,0x383E,0x3822, - /* Range 0x7CC2 - 0x7CC9, array index: 0x0543 */ - 0x4D6F,0x4D71,0x4D6D,INVALC,0x4D70,0x4D73,INVALC,0x4D72, - /* Range 0x7D74 - 0x7D78, array index: 0x054B */ - 0x3E24,0x3E35,0x3E33,INVALC,0x4367, - /* Range 0x7D87 - 0x7D8B, array index: 0x0550 */ - 0x4366,INVALC,0x4369,0x4360,0x4362, - /* Range 0x7D95 - 0x7D99, array index: 0x0555 */ - 0x4364,INVALC,0x4368,0x436A,0x4363, - /* Range 0x7DCD - 0x7DD3, array index: 0x055A */ - 0x4871,INVALC,0x4873,0x6629,0x486B,INVALC,0x662B, - /* Range 0x7DFC - 0x7E02, array index: 0x0561 */ - 0x4E28,0x4E29,0x4E25,0x4E2C,0x4E27,0x4D7E,0x4D7D, - /* Range 0x805F - 0x806B, array index: 0x0568 */ - 0x4926,0x3E3B,0x4925,INVALC,0x6630,INVALC,0x4E34,0x4E36, - INVALC,0x4E37,INVALC,0x4E35,0x4E38, - /* Range 0x807A - 0x807C, array index: 0x0575 */ - 0x5C70,0x5C71,0x5C72, - /* Range 0x80A4 - 0x80A8, array index: 0x0578 */ - 0x2A56,INVALC,0x2A5B,0x2A58,0x2A4F, - /* Range 0x8140 - 0x8142, array index: 0x057D */ - 0x3E43,0x3E45,0x3E41, - /* Range 0x8192 - 0x8196, array index: 0x0580 */ - 0x4E3B,0x4E3D,0x4E39,INVALC,0x4E3C, - /* Range 0x8218 - 0x821A, array index: 0x0585 */ - 0x524A,0x5868,0x5A79, - /* Range 0x8414 - 0x8418, array index: 0x0588 */ - 0x3E58,INVALC,0x3E5D,0x3E56,0x3E4E, - /* Range 0x8492 - 0x8496, array index: 0x058D */ - 0x4935,0x4944,INVALC,0x4933,0x4938, - /* Range 0x8501 - 0x8505, array index: 0x0592 */ - 0x4E40,INVALC,0x4E4C,0x4E46,0x4E54, - /* Range 0x8533 - 0x8535, array index: 0x0597 */ - 0x4E4D,0x4E4E,0x4E52, - /* Range 0x8845 - 0x8847, array index: 0x059A */ - 0x386A,0x3E6A,0x3E69, - /* Range 0x8A9B - 0x8A9F, array index: 0x059D */ - 0x495E,0x4962,0x496B,INVALC,0x4968, - /* Range 0x8AB1 - 0x8AB7, array index: 0x05A2 */ - 0x4E67,INVALC,0x4E72,0x4E70,0x4E6E,INVALC,0x4E6C, - /* Range 0x8C51 - 0x8C53, array index: 0x05A9 */ - 0x5D34,0x664D,0x6221, - /* Range 0x8D82 - 0x8D88, array index: 0x05AC */ - 0x3F39,0x3F34,INVALC,INVALC,0x3F37,0x3F30,0x3F33, - /* Range 0x8EAD - 0x8EB9, array index: 0x05B3 */ - 0x393F,INVALC,0x3940,0x3F40,0x4473,INVALC,0x497D,0x497C, - INVALC,0x4F30,0x4F32,0x4F2F,0x4F31, - /* Range 0x8F9D - 0x8FA7, array index: 0x05C0 */ - 0x3F4B,0x4477,INVALC,0x4478,0x4A21,0x4A22,INVALC,0x4F37, - 0x5327,INVALC,0x5326, - /* Range 0x9028 - 0x902C, array index: 0x05CB */ - 0x3F4F,0x3F50,0x3F4D,0x3F4C,0x3F51, - /* Range 0x91DE - 0x91E0, array index: 0x05D0 */ - 0x342F,0x342E,0x3431, - /* Range 0x9220 - 0x9222, array index: 0x05D3 */ - 0x3F5E,0x6659,0x3F63, - /* Range 0x92AD - 0x92B1, array index: 0x05D6 */ - 0x4A32,0x4A37,INVALC,0x672A,0x4A31, - /* Range 0x92DA - 0x92DC, array index: 0x05DB */ - 0x4F4B,0x4F4E,0x4F44, - /* Range 0x92F3 - 0x92F6, array index: 0x05DE */ - 0x4F4D,0x665B,0x665C,0x4A30, - /* Range 0x9330 - 0x9332, array index: 0x05E2 */ - 0x533C,0x5339,0x533A, - /* Range 0x9372 - 0x9374, array index: 0x05E5 */ - 0x5662,0x5663,0x565F, - /* Range 0x93BB - 0x93BE, array index: 0x05E8 */ - 0x5945,0x6661,0x6662,0x6660, - /* Range 0x93E9 - 0x93F4, array index: 0x05EC */ - 0x5B41,0x5B42,0x5B4E,INVALC,0x5B47,INVALC,0x6665,INVALC, - 0x6663,0x6664,0x5D41,0x5E6A, - /* Range 0x941A - 0x9424, array index: 0x05F8 */ - 0x5D44,0x5D45,0x5D47,INVALC,0x5D42,0x5D3A,INVALC,INVALC, - 0x6666,0x6667,0x6668, - /* Range 0x9458 - 0x945C, array index: 0x0603 */ - 0x6431,INVALC,0x6055,0x6054,0x6056, - /* Range 0x9465 - 0x9467, array index: 0x0608 */ - 0x6057,0x666A,0x6669, - /* Range 0x96B5 - 0x96B7, array index: 0x060B */ - 0x5D49,0x2A7D,0x5349, - /* Range 0x96EC - 0x96EE, array index: 0x060E */ - 0x3F7E,0x3F7C,0x3F7B, - /* Range 0x9733 - 0x9737, array index: 0x0611 */ - 0x5D4C,0x5D4E,INVALC,0x5E72,0x5E71, - /* Range 0x97B1 - 0x97B5, array index: 0x0616 */ - 0x5B5F,0x5B5D,INVALC,0x5B5E,0x5B60, - /* Range 0x983C - 0x9842, array index: 0x061B */ - 0x535B,0x535F,INVALC,0x595B,0x5726,INVALC,0x637B, - /* Range 0x9854 - 0x9856, array index: 0x0622 */ - 0x5956,0x5958,0x5B65, - /* Range 0x986C - 0x986E, array index: 0x0625 */ - 0x605D,0x605E,0x605C, - /* Range 0x99B6 - 0x99B8, array index: 0x0628 */ - 0x4A63,0x4A62,0x4A66, - /* Range 0x99BC - 0x99C0, array index: 0x062B */ - 0x4A61,INVALC,0x4A60,0x4A6C,0x4A64, - /* Range 0x9AE4 - 0x9AEA, array index: 0x0630 */ - 0x4A6F,0x4A73,INVALC,INVALC,0x4A71,0x4A70,0x4A72, - /* Range 0x9B8B - 0x9B8F, array index: 0x0637 */ - 0x537C,0x5421,INVALC,0x5425,0x537D, - /* Range 0x9BCB - 0x9BCD, array index: 0x063C */ - 0x5976,0x5975,0x5743, - /* Range 0x9BFB - 0x9C04, array index: 0x063F */ - 0x5D67,0x5D69,INVALC,0x5D6A,0x5D74,0x5D75,INVALC,0x5D6E, - INVALC,0x5D68, - /* Range 0x9CEB - 0x9CEF, array index: 0x0649 */ - 0x4566,0x2F42,INVALC,0x4568,0x4567, - /* Range 0x9EAA - 0x9EAC, array index: 0x064E */ - 0x502F,0x502E,0x543A, - /* Range 0x9EC4 - 0x9EC6, array index: 0x0651 */ - 0x396A,0x543C,0x543B, - /* Range 0x9F02 - 0x9F05, array index: 0x0654 */ - 0x5A29,0x5C2D,0x5C2E,0x5F3C, - /* Unranged codes (197 codes) */ - /* Array index: 0x0658 */ 0x4E04,0x2126, - /* Array index: 0x0658 */ 0x4E05,0x2125, - /* Array index: 0x0658 */ 0x4E28,0x2121, - /* Array index: 0x0658 */ 0x4E2A,0x212C, - /* Array index: 0x0658 */ 0x4E36,0x2122, - /* Array index: 0x0658 */ 0x4E3D,0x2740, - /* Array index: 0x0658 */ 0x4E3F,0x2123, - /* Array index: 0x0658 */ 0x4E46,0x2130, - /* Array index: 0x0658 */ 0x4E49,0x212E, - /* Array index: 0x0658 */ 0x4E54,0x2345, - /* Array index: 0x0658 */ 0x4E57,0x2B22, - /* Array index: 0x0658 */ 0x4E62,0x2146, - /* Array index: 0x0658 */ 0x4E63,0x2145, - /* Array index: 0x0658 */ 0x4E68,0x2264, - /* Array index: 0x0658 */ 0x4E71,0x2440, - /* Array index: 0x0658 */ 0x4E79,0x2B23, - /* Array index: 0x0658 */ 0x4E80,0x396C, - /* Array index: 0x0658 */ 0x4E81,0x396E, - /* Array index: 0x0658 */ 0x4E85,0x2124, - /* Array index: 0x0658 */ 0x4E87,0x212D, - /* Array index: 0x0658 */ 0x4E89,0x2265, - /* Array index: 0x0658 */ 0x4E8F,0x2131, - /* Array index: 0x0658 */ 0x4E97,0x216C, - /* Array index: 0x0658 */ 0x4E98,0x2266, - /* Array index: 0x0658 */ 0x4E9C,0x2442, - /* Array index: 0x0658 */ 0x4E9D,0x2742, - /* Array index: 0x0658 */ 0x4EA3,0x2147, - /* Array index: 0x0658 */ 0x4EB7,0x4033, - /* Array index: 0x0658 */ 0x4EBC,0x2132, - /* Array index: 0x0658 */ 0x4EBE,0x2133, - /* Array index: 0x0658 */ 0x4EC5,0x2149, - /* Array index: 0x0658 */ 0x4ECC,0x214C, - /* Array index: 0x0658 */ 0x4ECE,0x214B, - /* Array index: 0x0658 */ 0x4ECF,0x214A, - /* Array index: 0x0658 */ 0x4EE0,0x216D, - /* Array index: 0x0658 */ 0x4EE6,0x2172, - /* Array index: 0x0658 */ 0x4EE7,0x2170, - /* Array index: 0x0658 */ 0x4EEE,0x226F, - /* Array index: 0x0658 */ 0x4EEF,0x2268, - /* Array index: 0x0658 */ 0x4F03,0x226D, - /* Array index: 0x0658 */ 0x4F06,0x226C, - /* Array index: 0x0658 */ 0x4F07,0x2274, - /* Array index: 0x0658 */ 0x4F16,0x2270, - /* Array index: 0x0658 */ 0x4F17,0x2277, - /* Array index: 0x0658 */ 0x4F1A,0x2275, - /* Array index: 0x0658 */ 0x4F1C,0x2273, - /* Array index: 0x0658 */ 0x4F28,0x2272, - /* Array index: 0x0658 */ 0x4F31,0x2450, - /* Array index: 0x0658 */ 0x4F32,0x2448, - /* Array index: 0x0658 */ 0x4F35,0x244F, - /* Array index: 0x0658 */ 0x4F37,0x2446, - /* Array index: 0x0658 */ 0x4F39,0x2445, - /* Array index: 0x0658 */ 0x4F40,0x244E, - /* Array index: 0x0658 */ 0x4F42,0x2449, - /* Array index: 0x0658 */ 0x4F44,0x244B, - /* Array index: 0x0658 */ 0x4F45,0x2443, - /* Array index: 0x0658 */ 0x4F4A,0x2444, - /* Array index: 0x0658 */ 0x4F4B,0x244C, - /* Array index: 0x0658 */ 0x4F66,0x6448, - /* Array index: 0x0658 */ 0x4F68,0x6449, - /* Array index: 0x0658 */ 0x4F6D,0x2747, - /* Array index: 0x0658 */ 0x4F72,0x274F, - /* Array index: 0x0658 */ 0x4F8A,0x2744, - /* Array index: 0x0658 */ 0x4F8C,0x2751, - /* Array index: 0x0658 */ 0x4F8E,0x2748, - /* Array index: 0x0658 */ 0x4F93,0x2743, - /* Array index: 0x0658 */ 0x4FB0,0x2B2D, - /* Array index: 0x0658 */ 0x4FB1,0x2B2E, - /* Array index: 0x0658 */ 0x4FB4,0x2B36, - /* Array index: 0x0658 */ 0x4FB8,0x2B2C, - /* Array index: 0x0658 */ 0x4FBD,0x6263, - /* Array index: 0x0658 */ 0x4FBE,0x2B2B, - /* Array index: 0x0658 */ 0x4FC6,0x2B32, - /* Array index: 0x0658 */ 0x4FC8,0x2B2F, - /* Array index: 0x0658 */ 0x4FCC,0x2B33, - /* Array index: 0x0658 */ 0x4FD2,0x2B28, - /* Array index: 0x0658 */ 0x4FD5,0x2B29, - /* Array index: 0x0658 */ 0x4FE3,0x2B35, - /* Array index: 0x0658 */ 0x4FE5,0x2B34, - /* Array index: 0x0658 */ 0x4FE7,0x644A, - /* Array index: 0x0658 */ 0x4FF0,0x2F48, - /* Array index: 0x0658 */ 0x4FF2,0x2F4D, - /* Array index: 0x0658 */ 0x5008,0x2F4F, - /* Array index: 0x0658 */ 0x5010,0x2F53, - /* Array index: 0x0658 */ 0x501D,0x2F45, - /* Array index: 0x0658 */ 0x5024,0x2F4E, - /* Array index: 0x0658 */ 0x502E,0x2F51, - /* Array index: 0x0658 */ 0x5032,0x2F43, - /* Array index: 0x0658 */ 0x5036,0x2F50, - /* Array index: 0x0658 */ 0x5038,0x2F54, - /* Array index: 0x0658 */ 0x5039,0x2F55, - /* Array index: 0x0658 */ 0x503F,0x644B, - /* Array index: 0x0658 */ 0x5042,0x343C, - /* Array index: 0x0658 */ 0x5044,0x343F, - /* Array index: 0x0658 */ 0x5050,0x3444, - /* Array index: 0x0658 */ 0x5052,0x3441, - /* Array index: 0x0658 */ 0x5054,0x3442, - /* Array index: 0x0658 */ 0x5056,0x2F57, - /* Array index: 0x0658 */ 0x5058,0x3447, - /* Array index: 0x0658 */ 0x5059,0x343D, - /* Array index: 0x0658 */ 0x5066,0x3440, - /* Array index: 0x0658 */ 0x506C,0x344B, - /* Array index: 0x0658 */ 0x5071,0x3443, - /* Array index: 0x0658 */ 0x5081,0x3975, - /* Array index: 0x0658 */ 0x5088,0x3971, - /* Array index: 0x0658 */ 0x5089,0x3972, - /* Array index: 0x0658 */ 0x508F,0x396F, - /* Array index: 0x0658 */ 0x5097,0x3970, - /* Array index: 0x0658 */ 0x50A6,0x644D, - /* Array index: 0x0658 */ 0x50AA,0x4039, - /* Array index: 0x0658 */ 0x50AB,0x403C, - /* Array index: 0x0658 */ 0x50B9,0x403A, - /* Array index: 0x0658 */ 0x50BC,0x4037, - /* Array index: 0x0658 */ 0x50C3,0x403D, - /* Array index: 0x0658 */ 0x50CC,0x4036, - /* Array index: 0x0658 */ 0x50CD,0x403E, - /* Array index: 0x0658 */ 0x50D0,0x456B, - /* Array index: 0x0658 */ 0x50D2,0x634C, - /* Array index: 0x0658 */ 0x50D8,0x456E, - /* Array index: 0x0658 */ 0x50D9,0x456C, - /* Array index: 0x0658 */ 0x50DC,0x456D, - /* Array index: 0x0658 */ 0x50EB,0x4571, - /* Array index: 0x0658 */ 0x50F4,0x4574, - /* Array index: 0x0658 */ 0x50F7,0x4B29, - /* Array index: 0x0658 */ 0x50FC,0x4B2B, - /* Array index: 0x0658 */ 0x5101,0x4B2D, - /* Array index: 0x0658 */ 0x5116,0x5031, - /* Array index: 0x0658 */ 0x511B,0x5035, - /* Array index: 0x0658 */ 0x511D,0x5030, - /* Array index: 0x0658 */ 0x511E,0x5034, - /* Array index: 0x0658 */ 0x5127,0x5441, - /* Array index: 0x0658 */ 0x5128,0x5440, - /* Array index: 0x0658 */ 0x512B,0x5033, - /* Array index: 0x0658 */ 0x512F,0x5752, - /* Array index: 0x0658 */ 0x5136,0x5C32, - /* Array index: 0x0658 */ 0x513E,0x606F, - /* Array index: 0x0658 */ 0x514A,0x2278, - /* Array index: 0x0658 */ 0x514E,0x2454, - /* Array index: 0x0658 */ 0x5150,0x2453, - /* Array index: 0x0658 */ 0x5151,0x2451, - /* Array index: 0x0658 */ 0x5156,0x2752, - /* Array index: 0x0658 */ 0x5160,0x3976, - /* Array index: 0x0658 */ 0x5164,0x5E25, - /* Array index: 0x0658 */ 0x5166,0x2134, - /* Array index: 0x0658 */ 0x516A,0x2B37, - /* Array index: 0x0658 */ 0x5172,0x227A, - /* Array index: 0x0658 */ 0x5179,0x2E7B, - /* Array index: 0x0658 */ 0x517E,0x403F, - /* Array index: 0x0658 */ 0x517F,0x6453, - /* Array index: 0x0658 */ 0x518B,0x2178, - /* Array index: 0x0658 */ 0x518C,0x2179, - /* Array index: 0x0658 */ 0x5190,0x2755, - /* Array index: 0x0658 */ 0x5196,0x2128, - /* Array index: 0x0658 */ 0x5199,0x217A, - /* Array index: 0x0658 */ 0x519D,0x2457, - /* Array index: 0x0658 */ 0x519F,0x2B39, - /* Array index: 0x0658 */ 0x51A1,0x2F5B, - /* Array index: 0x0658 */ 0x51A3,0x2F59, - /* Array index: 0x0658 */ 0x51A6,0x2F5A, - /* Array index: 0x0658 */ 0x51A8,0x344D, - /* Array index: 0x0658 */ 0x51B8,0x245A, - /* Array index: 0x0658 */ 0x51C7,0x2F5E, - /* Array index: 0x0658 */ 0x51C9,0x2F5F, - /* Array index: 0x0658 */ 0x51D6,0x397E, - /* Array index: 0x0658 */ 0x51DF,0x5442, - /* Array index: 0x0658 */ 0x51E8,0x2322, - /* Array index: 0x0658 */ 0x51EC,0x245B, - /* Array index: 0x0658 */ 0x51ED,0x2759, - /* Array index: 0x0658 */ 0x51F4,0x457A, - /* Array index: 0x0658 */ 0x51FE,0x275A, - /* Array index: 0x0658 */ 0x5204,0x2136, - /* Array index: 0x0658 */ 0x5205,0x2152, - /* Array index: 0x0658 */ 0x520B,0x217D, - /* Array index: 0x0658 */ 0x520F,0x2325, - /* Array index: 0x0658 */ 0x5214,0x2324, - /* Array index: 0x0658 */ 0x5215,0x2326, - /* Array index: 0x0658 */ 0x5218,0x2327, - /* Array index: 0x0658 */ 0x521F,0x245F, - /* Array index: 0x0658 */ 0x5220,0x2461, - /* Array index: 0x0658 */ 0x5223,0x245C, - /* Array index: 0x0658 */ 0x5226,0x245E, - /* Array index: 0x0658 */ 0x5227,0x245D, - /* Array index: 0x0658 */ 0x522B,0x2460, - /* Array index: 0x0658 */ 0x522F,0x275B, - /* Array index: 0x0658 */ 0x5234,0x275E, - /* Array index: 0x0658 */ 0x5239,0x275F, - /* Array index: 0x0658 */ 0x523C,0x275D, - /* Array index: 0x0658 */ 0x523E,0x644F, - /* Array index: 0x0658 */ 0x5245,0x2B3F, - /* Array index: 0x0658 */ 0x5248,0x2B40, - /* Array index: 0x0658 */ 0x524F,0x2B43, - /* Array index: 0x0658 */ 0x5253,0x2F68, - /* Array index: 0x0658 */ 0x5257,0x2F65, - /* Array index: 0x0658 */ 0x5259,0x2F62, - /* Array index: 0x0658 */ 0x5260,0x2F60, - /* Array index: 0x0658 */ 0x5270,0x3A23, - /* Array index: 0x0658 */ 0x5273,0x3A21, - /* Array index: 0x0658 */ 0x5276,0x3451, - /* Array index: 0x0658 */ 0x5279,0x4041, - /* Array index: 0x0658 */ 0x527E,0x4040, - /* Array index: 0x0658 */ 0x5286,0x4B31, - /* Array index: 0x0658 */ 0x528E,0x4B32, - /* Array index: 0x0658 */ 0x5290,0x5036, - /* Array index: 0x0658 */ 0x5294,0x5037, - /* Array index: 0x0658 */ 0x52A8,0x2328, - /* Array index: 0x0658 */ 0x52B9,0x2760, - /* Array index: 0x0658 */ 0x52BD,0x625A, - /* Array index: 0x0658 */ 0x52BF,0x2762, - /* Array index: 0x0658 */ 0x52C4,0x2B48, - /* Array index: 0x0658 */ 0x52C5,0x2B46, - /* Array index: 0x0658 */ 0x52CA,0x2B47, - /* Array index: 0x0658 */ 0x52D4,0x3452, - /* Array index: 0x0658 */ 0x52E0,0x4045, - /* Array index: 0x0658 */ 0x52E1,0x4044, - /* Array index: 0x0658 */ 0x52E7,0x4046, - /* Array index: 0x0658 */ 0x52EA,0x4621, - /* Array index: 0x0658 */ 0x52ED,0x457E, - /* Array index: 0x0658 */ 0x52EE,0x4B33, - /* Array index: 0x0658 */ 0x52F2,0x4D2C, - /* Array index: 0x0658 */ 0x52FD,0x2155, - /* Array index: 0x0658 */ 0x5300,0x2156, - /* Array index: 0x0658 */ 0x5303,0x2223, - /* Array index: 0x0658 */ 0x5304,0x2222, - /* Array index: 0x0658 */ 0x5307,0x2224, - /* Array index: 0x0658 */ 0x5314,0x5038, - /* Array index: 0x0658 */ 0x531E,0x2226, - /* Array index: 0x0658 */ 0x5324,0x6450, - /* Array index: 0x0658 */ 0x5325,0x2465, - /* Array index: 0x0658 */ 0x5327,0x2B49, - /* Array index: 0x0658 */ 0x5346,0x2159, - /* Array index: 0x0658 */ 0x534B,0x232A, - /* Array index: 0x0658 */ 0x534F,0x232B, - /* Array index: 0x0658 */ 0x5350,0x232D, - /* Array index: 0x0658 */ 0x5355,0x2763, - /* Array index: 0x0658 */ 0x5358,0x2B4A, - /* Array index: 0x0658 */ 0x535D,0x215A, - /* Array index: 0x0658 */ 0x535F,0x2227, - /* Array index: 0x0658 */ 0x5365,0x6451, - /* Array index: 0x0658 */ 0x5367,0x2A5C, - /* Array index: 0x0658 */ 0x5369,0x212A, - /* Array index: 0x0658 */ 0x536D,0x2228, - /* Array index: 0x0658 */ 0x5374,0x2467, - /* Array index: 0x0658 */ 0x5376,0x2765, - /* Array index: 0x0658 */ 0x537A,0x2766, - /* Array index: 0x0658 */ 0x537D,0x2B4B, - /* Array index: 0x0658 */ 0x5380,0x4047, - /* Array index: 0x0658 */ 0x5386,0x215B, - /* Array index: 0x0658 */ 0x5389,0x2229, - /* Array index: 0x0658 */ 0x538B,0x232F, - /* Array index: 0x0658 */ 0x5393,0x2767, - /* Array index: 0x0658 */ 0x539B,0x6452, - /* Array index: 0x0658 */ 0x53A0,0x3454, - /* Array index: 0x0658 */ 0x53AE,0x4625, - /* Array index: 0x0658 */ 0x53B0,0x4626, - /* Array index: 0x0658 */ 0x53B1,0x4B35, - /* Array index: 0x0658 */ 0x53B3,0x5445, - /* Array index: 0x0658 */ 0x53B6,0x212B, - /* Array index: 0x0658 */ 0x53B7,0x215C, - /* Array index: 0x0658 */ 0x53BA,0x222A, - /* Array index: 0x0658 */ 0x53BE,0x2331, - /* Array index: 0x0658 */ 0x53CC,0x215E, - /* Array index: 0x0658 */ 0x53CE,0x2160, - /* Array index: 0x0658 */ 0x53D0,0x222B, - /* Array index: 0x0658 */ 0x53D2,0x2333, - /* Array index: 0x0658 */ 0x53D5,0x276B, - /* Array index: 0x0658 */ 0x53E0,0x404B, - /* Array index: 0x0658 */ 0x53F4,0x2231, - /* Array index: 0x0658 */ 0x53F6,0x222D, - /* Array index: 0x0658 */ 0x53F7,0x222E, - /* Array index: 0x0658 */ 0x53F9,0x222F, - /* Array index: 0x0658 */ 0x53FF,0x2335, - /* Array index: 0x0658 */ 0x5400,0x2337, - /* Array index: 0x0658 */ 0x5405,0x2339, - /* Array index: 0x0658 */ 0x5413,0x233A, - /* Array index: 0x0658 */ 0x5415,0x233B, - /* Array index: 0x0658 */ 0x5416,0x2334, - /* Array index: 0x0658 */ 0x541A,0x2476, - /* Array index: 0x0658 */ 0x542F,0x2524, - /* Array index: 0x0658 */ 0x5432,0x2477, - /* Array index: 0x0658 */ 0x5434,0x247B, - /* Array index: 0x0658 */ 0x543A,0x2470, - /* Array index: 0x0658 */ 0x543F,0x2521, - /* Array index: 0x0658 */ 0x5444,0x2473, - /* Array index: 0x0658 */ 0x545A,0x2523, - /* Array index: 0x0658 */ 0x545F,0x276E, - /* Array index: 0x0658 */ 0x5469,0x2774, - /* Array index: 0x0658 */ 0x546A,0x2778, - /* Array index: 0x0658 */ 0x546D,0x2775, - /* Array index: 0x0658 */ 0x5479,0x2771, - /* Array index: 0x0658 */ 0x5485,0x276C, - /* Array index: 0x0658 */ 0x5489,0x2770, - /* Array index: 0x0658 */ 0x548A,0x2779, - /* Array index: 0x0658 */ 0x548F,0x2773, - /* Array index: 0x0658 */ 0x5493,0x276F, - /* Array index: 0x0658 */ 0x5494,0x2777, - /* Array index: 0x0658 */ 0x549E,0x2B5C, - /* Array index: 0x0658 */ 0x549F,0x2B5D, - /* Array index: 0x0658 */ 0x54A3,0x2B57, - /* Array index: 0x0658 */ 0x54A4,0x2B59, - /* Array index: 0x0658 */ 0x54B2,0x2B5B, - /* Array index: 0x0658 */ 0x54B4,0x2B54, - /* Array index: 0x0658 */ 0x54B5,0x2B5E, - /* Array index: 0x0658 */ 0x54B9,0x2B51, - /* Array index: 0x0658 */ 0x54D0,0x2B53, - /* Array index: 0x0658 */ 0x54DA,0x2B58, - /* Array index: 0x0658 */ 0x54EF,0x2F77, - /* Array index: 0x0658 */ 0x54F0,0x3021, - /* Array index: 0x0658 */ 0x54F9,0x2F79, - /* Array index: 0x0658 */ 0x5500,0x2F7B, - /* Array index: 0x0658 */ 0x5502,0x2F7A, - /* Array index: 0x0658 */ 0x550D,0x2F73, - /* Array index: 0x0658 */ 0x5513,0x2F76, - /* Array index: 0x0658 */ 0x5518,0x2F7E, - /* Array index: 0x0658 */ 0x5519,0x3025, - /* Array index: 0x0658 */ 0x5528,0x6721, - /* Array index: 0x0658 */ 0x5529,0x345F, - /* Array index: 0x0658 */ 0x552B,0x3468, - /* Array index: 0x0658 */ 0x553A,0x3466, - /* Array index: 0x0658 */ 0x553F,0x3467, - /* Array index: 0x0658 */ 0x5549,0x345B, - /* Array index: 0x0658 */ 0x554C,0x3458, - /* Array index: 0x0658 */ 0x5553,0x3462, - /* Array index: 0x0658 */ 0x5554,0x3461, - /* Array index: 0x0658 */ 0x555D,0x345E, - /* Array index: 0x0658 */ 0x5568,0x3459, - /* Array index: 0x0658 */ 0x556B,0x6457, - /* Array index: 0x0658 */ 0x557A,0x3A3C, - /* Array index: 0x0658 */ 0x5585,0x3A31, - /* Array index: 0x0658 */ 0x5586,0x3A38, - /* Array index: 0x0658 */ 0x5596,0x3A2E, - /* Array index: 0x0658 */ 0x5597,0x3A2A, - /* Array index: 0x0658 */ 0x559B,0x3A33, - /* Array index: 0x0658 */ 0x559E,0x3A40, - /* Array index: 0x0658 */ 0x55A0,0x3A34, - /* Array index: 0x0658 */ 0x55A9,0x3A42, - /* Array index: 0x0658 */ 0x55AF,0x3A3B, - /* Array index: 0x0658 */ 0x55B4,0x3A2F, - /* Array index: 0x0658 */ 0x55BA,0x6723, - /* Array index: 0x0658 */ 0x55C1,0x4051, - /* Array index: 0x0658 */ 0x55D7,0x404E, - /* Array index: 0x0658 */ 0x55DE,0x3A2B, - /* Array index: 0x0658 */ 0x55EA,0x404C, - /* Array index: 0x0658 */ 0x55EE,0x6725, - /* Array index: 0x0658 */ 0x55F0,0x6724, - /* Array index: 0x0658 */ 0x55F4,0x6458, - /* Array index: 0x0658 */ 0x55F8,0x462E, - /* Array index: 0x0658 */ 0x55FB,0x4628, - /* Array index: 0x0658 */ 0x5603,0x4629, - /* Array index: 0x0658 */ 0x5605,0x4636, - /* Array index: 0x0658 */ 0x5607,0x462C, - /* Array index: 0x0658 */ 0x560B,0x462A, - /* Array index: 0x0658 */ 0x5611,0x4634, - /* Array index: 0x0658 */ 0x5618,0x4633, - /* Array index: 0x0658 */ 0x561E,0x4631, - /* Array index: 0x0658 */ 0x5620,0x645A, - /* Array index: 0x0658 */ 0x5622,0x6459, - /* Array index: 0x0658 */ 0x5626,0x4650, - /* Array index: 0x0658 */ 0x5628,0x4630, - /* Array index: 0x0658 */ 0x562B,0x4B41, - /* Array index: 0x0658 */ 0x562D,0x4B38, - /* Array index: 0x0658 */ 0x5631,0x4B3D, - /* Array index: 0x0658 */ 0x5637,0x4B44, - /* Array index: 0x0658 */ 0x5644,0x4B3E, - /* Array index: 0x0658 */ 0x5647,0x4B37, - /* Array index: 0x0658 */ 0x564B,0x4B3B, - /* Array index: 0x0658 */ 0x565F,0x503F, - /* Array index: 0x0658 */ 0x5661,0x5040, - /* Array index: 0x0658 */ 0x5667,0x503B, - /* Array index: 0x0658 */ 0x567B,0x503D, - /* Array index: 0x0658 */ 0x567D,0x5448, - /* Array index: 0x0658 */ 0x5689,0x5449, - /* Array index: 0x0658 */ 0x568A,0x5447, - /* Array index: 0x0658 */ 0x5691,0x645D, - /* Array index: 0x0658 */ 0x5692,0x645B, - /* Array index: 0x0658 */ 0x5694,0x575B, - /* Array index: 0x0658 */ 0x5696,0x575A, - /* Array index: 0x0658 */ 0x569B,0x5758, - /* Array index: 0x0658 */ 0x56AF,0x5A2D, - /* Array index: 0x0658 */ 0x56B0,0x645E, - /* Array index: 0x0658 */ 0x56C4,0x6728, - /* Array index: 0x0658 */ 0x56C7,0x5F40, - /* Array index: 0x0658 */ 0x56D2,0x6071, - /* Array index: 0x0658 */ 0x56D8,0x2177, - /* Array index: 0x0658 */ 0x56E3,0x233E, - /* Array index: 0x0658 */ 0x56E6,0x252C, - /* Array index: 0x0658 */ 0x56E9,0x2526, - /* Array index: 0x0658 */ 0x56EC,0x252B, - /* Array index: 0x0658 */ 0x56ED,0x252A, - /* Array index: 0x0658 */ 0x56F6,0x2822, - /* Array index: 0x0658 */ 0x56F8,0x277D, - /* Array index: 0x0658 */ 0x5700,0x2B65, - /* Array index: 0x0658 */ 0x5705,0x3027, - /* Array index: 0x0658 */ 0x570E,0x3A44, - /* Array index: 0x0658 */ 0x570F,0x3A43, - /* Array index: 0x0658 */ 0x5715,0x4052, - /* Array index: 0x0658 */ 0x5717,0x4637, - /* Array index: 0x0658 */ 0x571D,0x5F41, - /* Array index: 0x0658 */ 0x5721,0x2161, - /* Array index: 0x0658 */ 0x5724,0x2234, - /* Array index: 0x0658 */ 0x5727,0x6249, - /* Array index: 0x0658 */ 0x5731,0x2341, - /* Array index: 0x0658 */ 0x5732,0x2342, - /* Array index: 0x0658 */ 0x5735,0x233F, - /* Array index: 0x0658 */ 0x5736,0x2340, - /* Array index: 0x0658 */ 0x573C,0x2531, - /* Array index: 0x0658 */ 0x573D,0x253E, - /* Array index: 0x0658 */ 0x573F,0x2530, - /* Array index: 0x0658 */ 0x575F,0x2535, - /* Array index: 0x0658 */ 0x5763,0x2825, - /* Array index: 0x0658 */ 0x5765,0x2823, - /* Array index: 0x0658 */ 0x5767,0x2826, - /* Array index: 0x0658 */ 0x576E,0x2828, - /* Array index: 0x0658 */ 0x5778,0x2829, - /* Array index: 0x0658 */ 0x577F,0x282A, - /* Array index: 0x0658 */ 0x5781,0x2824, - /* Array index: 0x0658 */ 0x578A,0x6460, - /* Array index: 0x0658 */ 0x5796,0x2B71, - /* Array index: 0x0658 */ 0x579C,0x2B70, - /* Array index: 0x0658 */ 0x57A1,0x2B6B, - /* Array index: 0x0658 */ 0x57AC,0x2B66, - /* Array index: 0x0658 */ 0x57B7,0x302A, - /* Array index: 0x0658 */ 0x57BB,0x3030, - /* Array index: 0x0658 */ 0x57BE,0x302F, - /* Array index: 0x0658 */ 0x57C0,0x3038, - /* Array index: 0x0658 */ 0x57CD,0x302B, - /* Array index: 0x0658 */ 0x57D1,0x3036, - /* Array index: 0x0658 */ 0x57DB,0x3032, - /* Array index: 0x0658 */ 0x57DD,0x346E, - /* Array index: 0x0658 */ 0x57DE,0x3471, - /* Array index: 0x0658 */ 0x57E6,0x3472, - /* Array index: 0x0658 */ 0x57E8,0x3474, - /* Array index: 0x0658 */ 0x57EA,0x3469, - /* Array index: 0x0658 */ 0x57EF,0x346B, - /* Array index: 0x0658 */ 0x57FE,0x346F, - /* Array index: 0x0658 */ 0x57FF,0x3475, - /* Array index: 0x0658 */ 0x5803,0x3476, - /* Array index: 0x0658 */ 0x580F,0x6461, - /* Array index: 0x0658 */ 0x5812,0x6462, - /* Array index: 0x0658 */ 0x5813,0x6463, - /* Array index: 0x0658 */ 0x5818,0x3A4A, - /* Array index: 0x0658 */ 0x581A,0x3A45, - /* Array index: 0x0658 */ 0x581F,0x3A47, - /* Array index: 0x0658 */ 0x5822,0x3A50, - /* Array index: 0x0658 */ 0x5826,0x3A4C, - /* Array index: 0x0658 */ 0x582B,0x6336, - /* Array index: 0x0658 */ 0x583A,0x3A4E, - /* Array index: 0x0658 */ 0x583C,0x3A49, - /* Array index: 0x0658 */ 0x583E,0x3A4B, - /* Array index: 0x0658 */ 0x5845,0x6337, - /* Array index: 0x0658 */ 0x5847,0x6464, - /* Array index: 0x0658 */ 0x5850,0x4057, - /* Array index: 0x0658 */ 0x5856,0x405B, - /* Array index: 0x0658 */ 0x585C,0x4056, - /* Array index: 0x0658 */ 0x5872,0x4643, - /* Array index: 0x0658 */ 0x5873,0x463E, - /* Array index: 0x0658 */ 0x5877,0x4642, - /* Array index: 0x0658 */ 0x5878,0x463C, - /* Array index: 0x0658 */ 0x5884,0x463D, - /* Array index: 0x0658 */ 0x588C,0x463A, - /* Array index: 0x0658 */ 0x588D,0x4645, - /* Array index: 0x0658 */ 0x5892,0x4638, - /* Array index: 0x0658 */ 0x589B,0x6465, - /* Array index: 0x0658 */ 0x58A2,0x4B46, - /* Array index: 0x0658 */ 0x58A4,0x4B50, - /* Array index: 0x0658 */ 0x58A7,0x4B51, - /* Array index: 0x0658 */ 0x58AA,0x4B4B, - /* Array index: 0x0658 */ 0x58AD,0x463F, - /* Array index: 0x0658 */ 0x58B0,0x4B4D, - /* Array index: 0x0658 */ 0x58B2,0x4B49, - /* Array index: 0x0658 */ 0x58B4,0x4B4F, - /* Array index: 0x0658 */ 0x58B5,0x4B4C, - /* Array index: 0x0658 */ 0x58B7,0x4B47, - /* Array index: 0x0658 */ 0x58BB,0x504A, - /* Array index: 0x0658 */ 0x58C0,0x504B, - /* Array index: 0x0658 */ 0x58C3,0x5048, - /* Array index: 0x0658 */ 0x58C4,0x504C, - /* Array index: 0x0658 */ 0x58CA,0x5049, - /* Array index: 0x0658 */ 0x58CD,0x544B, - /* Array index: 0x0658 */ 0x58D0,0x544C, - /* Array index: 0x0658 */ 0x58DC,0x5A2F, - /* Array index: 0x0658 */ 0x58E0,0x5A2E, - /* Array index: 0x0658 */ 0x58E6,0x5E28, - /* Array index: 0x0658 */ 0x58FB,0x3A52, - /* Array index: 0x0658 */ 0x5910,0x4646, - /* Array index: 0x0658 */ 0x5911,0x6560, - /* Array index: 0x0658 */ 0x5918,0x2236, - /* Array index: 0x0658 */ 0x591F,0x3479, - /* Array index: 0x0658 */ 0x5923,0x405F, - /* Array index: 0x0658 */ 0x5926,0x4B53, - /* Array index: 0x0658 */ 0x5930,0x2238, - /* Array index: 0x0658 */ 0x5932,0x2237, - /* Array index: 0x0658 */ 0x5934,0x2239, - /* Array index: 0x0658 */ 0x5936,0x2347, - /* Array index: 0x0658 */ 0x593D,0x2549, - /* Array index: 0x0658 */ 0x5952,0x2B7C, - /* Array index: 0x0658 */ 0x595B,0x347B, - /* Array index: 0x0658 */ 0x595D,0x347C, - /* Array index: 0x0658 */ 0x595E,0x347D, - /* Array index: 0x0658 */ 0x5963,0x3A53, - /* Array index: 0x0658 */ 0x5964,0x3A54, - /* Array index: 0x0658 */ 0x5966,0x4060, - /* Array index: 0x0658 */ 0x5968,0x4061, - /* Array index: 0x0658 */ 0x596C,0x4648, - /* Array index: 0x0658 */ 0x5975,0x223B, - /* Array index: 0x0658 */ 0x597A,0x234B, - /* Array index: 0x0658 */ 0x5986,0x234D, - /* Array index: 0x0658 */ 0x5989,0x2555, - /* Array index: 0x0658 */ 0x598C,0x254C, - /* Array index: 0x0658 */ 0x5994,0x254B, - /* Array index: 0x0658 */ 0x599F,0x2551, - /* Array index: 0x0658 */ 0x59AC,0x2841, - /* Array index: 0x0658 */ 0x59AD,0x2833, - /* Array index: 0x0658 */ 0x59B0,0x2838, - /* Array index: 0x0658 */ 0x59B7,0x2845, - /* Array index: 0x0658 */ 0x59B8,0x2840, - /* Array index: 0x0658 */ 0x59BF,0x283D, - /* Array index: 0x0658 */ 0x59C2,0x2837, - /* Array index: 0x0658 */ 0x59C4,0x2835, - /* Array index: 0x0658 */ 0x59C9,0x283F, - /* Array index: 0x0658 */ 0x59D5,0x2C26, - /* Array index: 0x0658 */ 0x59D7,0x2846, - /* Array index: 0x0658 */ 0x59D9,0x2C2D, - /* Array index: 0x0658 */ 0x59DF,0x2C21, - /* Array index: 0x0658 */ 0x59E2,0x2C2C, - /* Array index: 0x0658 */ 0x59E7,0x2C2E, - /* Array index: 0x0658 */ 0x59EB,0x2C23, - /* Array index: 0x0658 */ 0x59EF,0x2C24, - /* Array index: 0x0658 */ 0x59F0,0x2C25, - /* Array index: 0x0658 */ 0x59F8,0x2C2B, - /* Array index: 0x0658 */ 0x59F9,0x2C29, - /* Array index: 0x0658 */ 0x5A02,0x2C2A, - /* Array index: 0x0658 */ 0x5A04,0x2C28, - /* Array index: 0x0658 */ 0x5A0B,0x3040, - /* Array index: 0x0658 */ 0x5A0D,0x2C27, - /* Array index: 0x0658 */ 0x5A10,0x6270, - /* Array index: 0x0658 */ 0x5A12,0x304F, - /* Array index: 0x0658 */ 0x5A14,0x304A, - /* Array index: 0x0658 */ 0x5A1A,0x304E, - /* Array index: 0x0658 */ 0x5A1D,0x303E, - /* Array index: 0x0658 */ 0x5A21,0x303B, - /* Array index: 0x0658 */ 0x5A22,0x3045, - /* Array index: 0x0658 */ 0x5A24,0x3048, - /* Array index: 0x0658 */ 0x5A26,0x3052, - /* Array index: 0x0658 */ 0x5A2F,0x304D, - /* Array index: 0x0658 */ 0x5A31,0x304B, - /* Array index: 0x0658 */ 0x5A3A,0x3528, - /* Array index: 0x0658 */ 0x5A3B,0x3524, - /* Array index: 0x0658 */ 0x5A3D,0x3531, - /* Array index: 0x0658 */ 0x5A3F,0x3533, - /* Array index: 0x0658 */ 0x5A45,0x352E, - /* Array index: 0x0658 */ 0x5A4B,0x352A, - /* Array index: 0x0658 */ 0x5A4E,0x352F, - /* Array index: 0x0658 */ 0x5A4F,0x353B, - /* Array index: 0x0658 */ 0x5A54,0x353A, - /* Array index: 0x0658 */ 0x5A59,0x3539, - /* Array index: 0x0658 */ 0x5A61,0x3527, - /* Array index: 0x0658 */ 0x5A63,0x353C, - /* Array index: 0x0658 */ 0x5A68,0x3530, - /* Array index: 0x0658 */ 0x5A6B,0x352B, - /* Array index: 0x0658 */ 0x5A6E,0x3529, - /* Array index: 0x0658 */ 0x5A6F,0x3534, - /* Array index: 0x0658 */ 0x5A71,0x3532, - /* Array index: 0x0658 */ 0x5A73,0x3537, - /* Array index: 0x0658 */ 0x5A75,0x3535, - /* Array index: 0x0658 */ 0x5A79,0x3A75, - /* Array index: 0x0658 */ 0x5A8D,0x3A7B, - /* Array index: 0x0658 */ 0x5A91,0x3A66, - /* Array index: 0x0658 */ 0x5A96,0x3A62, - /* Array index: 0x0658 */ 0x5A98,0x3A5C, - /* Array index: 0x0658 */ 0x5A99,0x3A5E, - /* Array index: 0x0658 */ 0x5AA8,0x3A56, - /* Array index: 0x0658 */ 0x5AAA,0x3A79, - /* Array index: 0x0658 */ 0x5AAB,0x3A78, - /* Array index: 0x0658 */ 0x5AC3,0x4067, - /* Array index: 0x0658 */ 0x5AC5,0x4066, - /* Array index: 0x0658 */ 0x5AE4,0x464C, - /* Array index: 0x0658 */ 0x5AE7,0x464A, - /* Array index: 0x0658 */ 0x5AEF,0x464F, - /* Array index: 0x0658 */ 0x5AF0,0x4653, - /* Array index: 0x0658 */ 0x5AFA,0x4B5C, - /* Array index: 0x0658 */ 0x5AFC,0x4B58, - /* Array index: 0x0658 */ 0x5AFE,0x4B54, - /* Array index: 0x0658 */ 0x5B00,0x4B5E, - /* Array index: 0x0658 */ 0x5B04,0x4B56, - /* Array index: 0x0658 */ 0x5B06,0x4B5A, - /* Array index: 0x0658 */ 0x5B0A,0x4B5B, - /* Array index: 0x0658 */ 0x5B0D,0x4B5D, - /* Array index: 0x0658 */ 0x5B0E,0x4B5F, - /* Array index: 0x0658 */ 0x5B11,0x5050, - /* Array index: 0x0658 */ 0x5B12,0x5053, - /* Array index: 0x0658 */ 0x5B15,0x5051, - /* Array index: 0x0658 */ 0x5B18,0x504F, - /* Array index: 0x0658 */ 0x5B1C,0x5054, - /* Array index: 0x0658 */ 0x5B1F,0x504E, - /* Array index: 0x0658 */ 0x5B22,0x5056, - /* Array index: 0x0658 */ 0x5B29,0x5450, - /* Array index: 0x0658 */ 0x5B2B,0x544E, - /* Array index: 0x0658 */ 0x5B31,0x5452, - /* Array index: 0x0658 */ 0x5B33,0x544F, - /* Array index: 0x0658 */ 0x5B35,0x5451, - /* Array index: 0x0658 */ 0x5B42,0x5C36, - /* Array index: 0x0658 */ 0x5B44,0x5C39, - /* Array index: 0x0658 */ 0x5B46,0x5C3A, - /* Array index: 0x0658 */ 0x5B49,0x5E29, - /* Array index: 0x0658 */ 0x5B4A,0x5F42, - /* Array index: 0x0658 */ 0x5B4F,0x6073, - /* Array index: 0x0658 */ 0x5B60,0x2848, - /* Array index: 0x0658 */ 0x5B66,0x625C, - /* Array index: 0x0658 */ 0x5B67,0x646A, - /* Array index: 0x0658 */ 0x5B6A,0x2C2F, - /* Array index: 0x0658 */ 0x5B74,0x4071, - /* Array index: 0x0658 */ 0x5B76,0x4072, - /* Array index: 0x0658 */ 0x5B79,0x5057, - /* Array index: 0x0658 */ 0x5B7C,0x5A34, - /* Array index: 0x0658 */ 0x5B7E,0x5C3B, - /* Array index: 0x0658 */ 0x5B80,0x213B, - /* Array index: 0x0658 */ 0x5B82,0x223D, - /* Array index: 0x0658 */ 0x5B86,0x2350, - /* Array index: 0x0658 */ 0x5B8D,0x255A, - /* Array index: 0x0658 */ 0x5B94,0x284C, - /* Array index: 0x0658 */ 0x5B96,0x284A, - /* Array index: 0x0658 */ 0x5BAB,0x2C32, - /* Array index: 0x0658 */ 0x5BB7,0x3057, - /* Array index: 0x0658 */ 0x5BBB,0x3056, - /* Array index: 0x0658 */ 0x5BBC,0x3055, - /* Array index: 0x0658 */ 0x5BC3,0x3541, - /* Array index: 0x0658 */ 0x5BC8,0x353F, - /* Array index: 0x0658 */ 0x5BD5,0x3A7E, - /* Array index: 0x0658 */ 0x5BD7,0x4074, - /* Array index: 0x0658 */ 0x5BF3,0x5A35, - /* Array index: 0x0658 */ 0x5BF7,0x5E2A, - /* Array index: 0x0658 */ 0x5BF9,0x223E, - /* Array index: 0x0658 */ 0x5C05,0x3058, - /* Array index: 0x0658 */ 0x5C06,0x3059, - /* Array index: 0x0658 */ 0x5C13,0x624A, - /* Array index: 0x0658 */ 0x5C14,0x223F, - /* Array index: 0x0658 */ 0x5C18,0x2352, - /* Array index: 0x0658 */ 0x5C19,0x2851, - /* Array index: 0x0658 */ 0x5C1B,0x2C34, - /* Array index: 0x0658 */ 0x5C1E,0x3B24, - /* Array index: 0x0658 */ 0x5C20,0x4078, - /* Array index: 0x0658 */ 0x5C21,0x6525, - /* Array index: 0x0658 */ 0x5C2B,0x255F, - /* Array index: 0x0658 */ 0x5C2F,0x2C35, - /* Array index: 0x0658 */ 0x5C36,0x5454, - /* Array index: 0x0658 */ 0x5C3D,0x2354, - /* Array index: 0x0658 */ 0x5C49,0x2854, - /* Array index: 0x0658 */ 0x5C4A,0x2855, - /* Array index: 0x0658 */ 0x5C52,0x305A, - /* Array index: 0x0658 */ 0x5C53,0x305B, - /* Array index: 0x0658 */ 0x5C57,0x646B, - /* Array index: 0x0658 */ 0x5C5B,0x3543, - /* Array index: 0x0658 */ 0x5C5E,0x3B26, - /* Array index: 0x0658 */ 0x5C5F,0x3B25, - /* Array index: 0x0658 */ 0x5C61,0x3544, - /* Array index: 0x0658 */ 0x5C6B,0x5A38, - /* Array index: 0x0658 */ 0x5C77,0x646C, - /* Array index: 0x0658 */ 0x5C78,0x2355, - /* Array index: 0x0658 */ 0x5C80,0x235A, - /* Array index: 0x0658 */ 0x5C84,0x2561, - /* Array index: 0x0658 */ 0x5C85,0x2566, - /* Array index: 0x0658 */ 0x5C8E,0x2562, - /* Array index: 0x0658 */ 0x5C9C,0x2563, - /* Array index: 0x0658 */ 0x5C9E,0x285D, - /* Array index: 0x0658 */ 0x5CB4,0x285E, - /* Array index: 0x0658 */ 0x5CC1,0x2858, - /* Array index: 0x0658 */ 0x5CCD,0x2C3F, - /* Array index: 0x0658 */ 0x5CD1,0x2C3B, - /* Array index: 0x0658 */ 0x5CD5,0x646D, - /* Array index: 0x0658 */ 0x5CDC,0x2C3C, - /* Array index: 0x0658 */ 0x5CDD,0x2C42, - /* Array index: 0x0658 */ 0x5CE1,0x2C3E, - /* Array index: 0x0658 */ 0x5CE2,0x2C41, - /* Array index: 0x0658 */ 0x5CE5,0x2C43, - /* Array index: 0x0658 */ 0x5CE6,0x2C3D, - /* Array index: 0x0658 */ 0x5CE9,0x3063, - /* Array index: 0x0658 */ 0x5CEB,0x305F, - /* Array index: 0x0658 */ 0x5CEF,0x3064, - /* Array index: 0x0658 */ 0x5CF3,0x3061, - /* Array index: 0x0658 */ 0x5CF5,0x3062, - /* Array index: 0x0658 */ 0x5CFA,0x305E, - /* Array index: 0x0658 */ 0x5CFC,0x6271, - /* Array index: 0x0658 */ 0x5CFE,0x6272, - /* Array index: 0x0658 */ 0x5D10,0x3551, - /* Array index: 0x0658 */ 0x5D13,0x3552, - /* Array index: 0x0658 */ 0x5D15,0x354F, - /* Array index: 0x0658 */ 0x5D18,0x3555, - /* Array index: 0x0658 */ 0x5D1C,0x3B2B, - /* Array index: 0x0658 */ 0x5D21,0x3546, - /* Array index: 0x0658 */ 0x5D2A,0x354E, - /* Array index: 0x0658 */ 0x5D2C,0x354A, - /* Array index: 0x0658 */ 0x5D2F,0x3554, - /* Array index: 0x0658 */ 0x5D3B,0x3B36, - /* Array index: 0x0658 */ 0x5D3E,0x3B28, - /* Array index: 0x0658 */ 0x5D44,0x3B27, - /* Array index: 0x0658 */ 0x5D46,0x3B37, - /* Array index: 0x0658 */ 0x5D48,0x3B2A, - /* Array index: 0x0658 */ 0x5D4D,0x3B2E, - /* Array index: 0x0658 */ 0x5D4F,0x3B34, - /* Array index: 0x0658 */ 0x5D53,0x3B33, - /* Array index: 0x0658 */ 0x5D57,0x3B31, - /* Array index: 0x0658 */ 0x5D5B,0x3B2D, - /* Array index: 0x0658 */ 0x5D60,0x4121, - /* Array index: 0x0658 */ 0x5D64,0x407C, - /* Array index: 0x0658 */ 0x5D66,0x407A, - /* Array index: 0x0658 */ 0x5D6D,0x4079, - /* Array index: 0x0658 */ 0x5D6E,0x407D, - /* Array index: 0x0658 */ 0x5D75,0x646E, - /* Array index: 0x0658 */ 0x5D78,0x465C, - /* Array index: 0x0658 */ 0x5D7B,0x4654, - /* Array index: 0x0658 */ 0x5D83,0x4656, - /* Array index: 0x0658 */ 0x5D96,0x4B6B, - /* Array index: 0x0658 */ 0x5D98,0x4B67, - /* Array index: 0x0658 */ 0x5D9B,0x4B69, - /* Array index: 0x0658 */ 0x5DAB,0x505B, - /* Array index: 0x0658 */ 0x5DB3,0x505A, - /* Array index: 0x0658 */ 0x5DB6,0x6471, - /* Array index: 0x0658 */ 0x5DB9,0x5457, - /* Array index: 0x0658 */ 0x5DBB,0x5459, - /* Array index: 0x0658 */ 0x5DBE,0x5455, - /* Array index: 0x0658 */ 0x5DBF,0x6472, - /* Array index: 0x0658 */ 0x5DC1,0x5762, - /* Array index: 0x0658 */ 0x5DC4,0x5A39, - /* Array index: 0x0658 */ 0x5DC8,0x5C3D, - /* Array index: 0x0658 */ 0x5DCA,0x5C3C, - /* Array index: 0x0658 */ 0x5DCC,0x5C3E, - /* Array index: 0x0658 */ 0x5DD0,0x5E2D, - /* Array index: 0x0658 */ 0x5DD3,0x5F43, - /* Array index: 0x0658 */ 0x5DD7,0x6030, - /* Array index: 0x0658 */ 0x5DDB,0x213C, - /* Array index: 0x0658 */ 0x5DE3,0x3557, - /* Array index: 0x0658 */ 0x5DE4,0x4B6C, - /* Array index: 0x0658 */ 0x5DF5,0x2567, - /* Array index: 0x0658 */ 0x5DF6,0x2860, - /* Array index: 0x0658 */ 0x5DFA,0x2C45, - /* Array index: 0x0658 */ 0x5DFB,0x2C44, - /* Array index: 0x0658 */ 0x5E00,0x2163, - /* Array index: 0x0658 */ 0x5E08,0x235C, - /* Array index: 0x0658 */ 0x5E09,0x2568, - /* Array index: 0x0658 */ 0x5E0B,0x256B, - /* Array index: 0x0658 */ 0x5E12,0x2862, - /* Array index: 0x0658 */ 0x5E13,0x2861, - /* Array index: 0x0658 */ 0x5E1E,0x2C46, - /* Array index: 0x0658 */ 0x5E2A,0x3066, - /* Array index: 0x0658 */ 0x5E35,0x3559, - /* Array index: 0x0658 */ 0x5E39,0x3558, - /* Array index: 0x0658 */ 0x5E3A,0x355A, - /* Array index: 0x0658 */ 0x5E42,0x3979, - /* Array index: 0x0658 */ 0x5E52,0x465D, - /* Array index: 0x0658 */ 0x5E5A,0x4B6D, - /* Array index: 0x0658 */ 0x5E5E,0x4B70, - /* Array index: 0x0658 */ 0x5E65,0x6473, - /* Array index: 0x0658 */ 0x5E71,0x6677, - /* Array index: 0x0658 */ 0x5E77,0x2863, - /* Array index: 0x0658 */ 0x5E7A,0x213D, - /* Array index: 0x0658 */ 0x5E7F,0x213E, - /* Array index: 0x0658 */ 0x5E81,0x2247, - /* Array index: 0x0658 */ 0x5E83,0x2248, - /* Array index: 0x0658 */ 0x5E85,0x6678, - /* Array index: 0x0658 */ 0x5E90,0x256E, - /* Array index: 0x0658 */ 0x5E92,0x256D, - /* Array index: 0x0658 */ 0x5E98,0x2865, - /* Array index: 0x0658 */ 0x5E99,0x2867, - /* Array index: 0x0658 */ 0x5E9D,0x2868, - /* Array index: 0x0658 */ 0x5EA1,0x2C48, - /* Array index: 0x0658 */ 0x5EA9,0x306C, - /* Array index: 0x0658 */ 0x5EAF,0x306B, - /* Array index: 0x0658 */ 0x5EBA,0x3561, - /* Array index: 0x0658 */ 0x5EBB,0x3560, - /* Array index: 0x0658 */ 0x5EBD,0x3B3F, - /* Array index: 0x0658 */ 0x5EBF,0x3B40, - /* Array index: 0x0658 */ 0x5EC0,0x3B3E, - /* Array index: 0x0658 */ 0x5ECD,0x6474, - /* Array index: 0x0658 */ 0x5ECF,0x4661, - /* Array index: 0x0658 */ 0x5ED0,0x4660, - /* Array index: 0x0658 */ 0x5EEA,0x505C, - /* Array index: 0x0658 */ 0x5EED,0x6475, - /* Array index: 0x0658 */ 0x5EF0,0x5C3F, - /* Array index: 0x0658 */ 0x5EF4,0x213F, - /* Array index: 0x0658 */ 0x5EF5,0x2361, - /* Array index: 0x0658 */ 0x5F03,0x256F, - /* Array index: 0x0658 */ 0x5F06,0x286D, - /* Array index: 0x0658 */ 0x5F11,0x3B42, - /* Array index: 0x0658 */ 0x5F1E,0x2571, - /* Array index: 0x0658 */ 0x5F21,0x286E, - /* Array index: 0x0658 */ 0x5F25,0x2870, - /* Array index: 0x0658 */ 0x5F2F,0x2C4D, - /* Array index: 0x0658 */ 0x5F32,0x306F, - /* Array index: 0x0658 */ 0x5F34,0x3562, - /* Array index: 0x0658 */ 0x5F3E,0x3B44, - /* Array index: 0x0658 */ 0x5F42,0x4122, - /* Array index: 0x0658 */ 0x5F4D,0x5763, - /* Array index: 0x0658 */ 0x5F5A,0x4123, - /* Array index: 0x0658 */ 0x5F5B,0x505E, - /* Array index: 0x0658 */ 0x5F5D,0x5764, - /* Array index: 0x0658 */ 0x5F60,0x6164, - /* Array index: 0x0658 */ 0x5F61,0x2142, - /* Array index: 0x0658 */ 0x5F63,0x2572, - /* Array index: 0x0658 */ 0x5F66,0x2C50, - /* Array index: 0x0658 */ 0x5F6E,0x4124, - /* Array index: 0x0658 */ 0x5F72,0x5F45, - /* Array index: 0x0658 */ 0x5F83,0x2876, - /* Array index: 0x0658 */ 0x5F84,0x2875, - /* Array index: 0x0658 */ 0x5F93,0x3071, - /* Array index: 0x0658 */ 0x5F94,0x6476, - /* Array index: 0x0658 */ 0x5F9A,0x6477, - /* Array index: 0x0658 */ 0x5FA7,0x3B4B, - /* Array index: 0x0658 */ 0x5FB3,0x4663, - /* Array index: 0x0658 */ 0x5FB4,0x4664, - /* Array index: 0x0658 */ 0x5FB8,0x4B72, - /* Array index: 0x0658 */ 0x5FBA,0x6478, - /* Array index: 0x0658 */ 0x5FC2,0x5E2F, - /* Array index: 0x0658 */ 0x5FC7,0x224D, - /* Array index: 0x0658 */ 0x5FC8,0x6251, - /* Array index: 0x0658 */ 0x5FCA,0x224C, - /* Array index: 0x0658 */ 0x5FCE,0x2578, - /* Array index: 0x0658 */ 0x5FD3,0x2366, - /* Array index: 0x0658 */ 0x5FDF,0x257B, - /* Array index: 0x0658 */ 0x5FE6,0x2576, - /* Array index: 0x0658 */ 0x5FE7,0x2574, - /* Array index: 0x0658 */ 0x5FE9,0x287E, - /* Array index: 0x0658 */ 0x5FEC,0x257C, - /* Array index: 0x0658 */ 0x5FF0,0x2622, - /* Array index: 0x0658 */ 0x5FF2,0x2621, - /* Array index: 0x0658 */ 0x5FF6,0x257D, - /* Array index: 0x0658 */ 0x5FF9,0x2623, - /* Array index: 0x0658 */ 0x5FFC,0x257A, - /* Array index: 0x0658 */ 0x5FFE,0x2575, - /* Array index: 0x0658 */ 0x6007,0x2878, - /* Array index: 0x0658 */ 0x6008,0x2922, - /* Array index: 0x0658 */ 0x6018,0x6266, - /* Array index: 0x0658 */ 0x6023,0x2C5A, - /* Array index: 0x0658 */ 0x6030,0x2877, - /* Array index: 0x0658 */ 0x6031,0x2C5B, - /* Array index: 0x0658 */ 0x6036,0x287A, - /* Array index: 0x0658 */ 0x603D,0x2921, - /* Array index: 0x0658 */ 0x6048,0x6267, - /* Array index: 0x0658 */ 0x604A,0x2C60, - /* Array index: 0x0658 */ 0x604B,0x3079, - /* Array index: 0x0658 */ 0x6056,0x307E, - /* Array index: 0x0658 */ 0x605C,0x2C54, - /* Array index: 0x0658 */ 0x6060,0x2C5F, - /* Array index: 0x0658 */ 0x6061,0x2C61, - /* Array index: 0x0658 */ 0x607C,0x2C5C, - /* Array index: 0x0658 */ 0x607E,0x3076, - /* Array index: 0x0658 */ 0x608B,0x3122, - /* Array index: 0x0658 */ 0x6093,0x3125, - /* Array index: 0x0658 */ 0x6098,0x3568, - /* Array index: 0x0658 */ 0x6099,0x3074, - /* Array index: 0x0658 */ 0x609E,0x3127, - /* Array index: 0x0658 */ 0x60A1,0x3571, - /* Array index: 0x0658 */ 0x60A4,0x3572, - /* Array index: 0x0658 */ 0x60AE,0x3126, - /* Array index: 0x0658 */ 0x60B3,0x3B54, - /* Array index: 0x0658 */ 0x60D0,0x356A, - /* Array index: 0x0658 */ 0x60D2,0x3B56, - /* Array index: 0x0658 */ 0x60D6,0x3B55, - /* Array index: 0x0658 */ 0x60D7,0x356E, - /* Array index: 0x0658 */ 0x60DE,0x3579, - /* Array index: 0x0658 */ 0x60E3,0x3B58, - /* Array index: 0x0658 */ 0x60E5,0x3B59, - /* Array index: 0x0658 */ 0x60E7,0x3576, - /* Array index: 0x0658 */ 0x60E9,0x3B5A, - /* Array index: 0x0658 */ 0x60EA,0x3B4D, - /* Array index: 0x0658 */ 0x60EE,0x3574, - /* Array index: 0x0658 */ 0x60FD,0x3B5E, - /* Array index: 0x0658 */ 0x6107,0x3B4F, - /* Array index: 0x0658 */ 0x610C,0x3B51, - /* Array index: 0x0658 */ 0x6111,0x3B5D, - /* Array index: 0x0658 */ 0x6119,0x412B, - /* Array index: 0x0658 */ 0x6125,0x6479, - /* Array index: 0x0658 */ 0x612A,0x4129, - /* Array index: 0x0658 */ 0x6130,0x4127, - /* Array index: 0x0658 */ 0x6131,0x412C, - /* Array index: 0x0658 */ 0x6133,0x466F, - /* Array index: 0x0658 */ 0x6138,0x466E, - /* Array index: 0x0658 */ 0x613A,0x4128, - /* Array index: 0x0658 */ 0x613C,0x466C, - /* Array index: 0x0658 */ 0x613D,0x412E, - /* Array index: 0x0658 */ 0x6142,0x466D, - /* Array index: 0x0658 */ 0x6143,0x412A, - /* Array index: 0x0658 */ 0x6150,0x647A, - /* Array index: 0x0658 */ 0x6157,0x4B73, - /* Array index: 0x0658 */ 0x6159,0x4B7E, - /* Array index: 0x0658 */ 0x615C,0x4B74, - /* Array index: 0x0658 */ 0x6160,0x4671, - /* Array index: 0x0658 */ 0x6164,0x4B7C, - /* Array index: 0x0658 */ 0x6169,0x4672, - /* Array index: 0x0658 */ 0x616F,0x466A, - /* Array index: 0x0658 */ 0x6178,0x4C21, - /* Array index: 0x0658 */ 0x617B,0x4668, - /* Array index: 0x0658 */ 0x617D,0x4673, - /* Array index: 0x0658 */ 0x6181,0x466B, - /* Array index: 0x0658 */ 0x618F,0x4B7A, - /* Array index: 0x0658 */ 0x619C,0x4C29, - /* Array index: 0x0658 */ 0x619E,0x4C25, - /* Array index: 0x0658 */ 0x61A3,0x4B79, - /* Array index: 0x0658 */ 0x61A6,0x4B75, - /* Array index: 0x0658 */ 0x61B7,0x5061, - /* Array index: 0x0658 */ 0x61B9,0x5063, - /* Array index: 0x0658 */ 0x61BB,0x506A, - /* Array index: 0x0658 */ 0x61BD,0x5064, - /* Array index: 0x0658 */ 0x61C0,0x5066, - /* Array index: 0x0658 */ 0x61C4,0x506C, - /* Array index: 0x0658 */ 0x61D3,0x6679, - /* Array index: 0x0658 */ 0x61E2,0x545B, - /* Array index: 0x0658 */ 0x61F3,0x5765, - /* Array index: 0x0658 */ 0x6202,0x5F46, - /* Array index: 0x0658 */ 0x6205,0x613E, - /* Array index: 0x0658 */ 0x620F,0x236B, - /* Array index: 0x0658 */ 0x6213,0x2625, - /* Array index: 0x0658 */ 0x6218,0x2C63, - /* Array index: 0x0658 */ 0x621E,0x3B64, - /* Array index: 0x0658 */ 0x6228,0x4676, - /* Array index: 0x0658 */ 0x622C,0x4675, - /* Array index: 0x0658 */ 0x622F,0x4C2C, - /* Array index: 0x0658 */ 0x6231,0x506D, - /* Array index: 0x0658 */ 0x6245,0x3129, - /* Array index: 0x0658 */ 0x624F,0x2250, - /* Array index: 0x0658 */ 0x6257,0x236F, - /* Array index: 0x0658 */ 0x625D,0x236C, - /* Array index: 0x0658 */ 0x625F,0x236D, - /* Array index: 0x0658 */ 0x6267,0x236E, - /* Array index: 0x0658 */ 0x6275,0x2639, - /* Array index: 0x0658 */ 0x6278,0x262E, - /* Array index: 0x0658 */ 0x6282,0x262A, - /* Array index: 0x0658 */ 0x6285,0x2637, - /* Array index: 0x0658 */ 0x628B,0x262F, - /* Array index: 0x0658 */ 0x628D,0x2636, - /* Array index: 0x0658 */ 0x62B2,0x2926, - /* Array index: 0x0658 */ 0x62B7,0x2928, - /* Array index: 0x0658 */ 0x62BA,0x2925, - /* Array index: 0x0658 */ 0x62C0,0x2934, - /* Array index: 0x0658 */ 0x62C1,0x2932, - /* Array index: 0x0658 */ 0x62C5,0x2933, - /* Array index: 0x0658 */ 0x62D5,0x292E, - /* Array index: 0x0658 */ 0x62E4,0x2929, - /* Array index: 0x0658 */ 0x62EA,0x2C6D, - /* Array index: 0x0658 */ 0x6304,0x2C6F, - /* Array index: 0x0658 */ 0x6305,0x2C70, - /* Array index: 0x0658 */ 0x6317,0x2C6C, - /* Array index: 0x0658 */ 0x6319,0x3132, - /* Array index: 0x0658 */ 0x631B,0x3133, - /* Array index: 0x0658 */ 0x631F,0x2C6B, - /* Array index: 0x0658 */ 0x6321,0x2C6E, - /* Array index: 0x0658 */ 0x632E,0x312C, - /* Array index: 0x0658 */ 0x6330,0x312F, - /* Array index: 0x0658 */ 0x6331,0x3135, - /* Array index: 0x0658 */ 0x6335,0x3138, - /* Array index: 0x0658 */ 0x6337,0x3137, - /* Array index: 0x0658 */ 0x633F,0x313C, - /* Array index: 0x0658 */ 0x6352,0x312E, - /* Array index: 0x0658 */ 0x6353,0x3139, - /* Array index: 0x0658 */ 0x6360,0x647C, - /* Array index: 0x0658 */ 0x6364,0x647D, - /* Array index: 0x0658 */ 0x6366,0x3631, - /* Array index: 0x0658 */ 0x636A,0x3627, - /* Array index: 0x0658 */ 0x636C,0x3629, - /* Array index: 0x0658 */ 0x6373,0x3626, - /* Array index: 0x0658 */ 0x6374,0x3632, - /* Array index: 0x0658 */ 0x6379,0x3622, - /* Array index: 0x0658 */ 0x637E,0x357C, - /* Array index: 0x0658 */ 0x637F,0x362B, - /* Array index: 0x0658 */ 0x6386,0x3623, - /* Array index: 0x0658 */ 0x638B,0x357D, - /* Array index: 0x0658 */ 0x6393,0x3624, - /* Array index: 0x0658 */ 0x63B2,0x362D, - /* Array index: 0x0658 */ 0x63B6,0x647E, - /* Array index: 0x0658 */ 0x63BA,0x362E, - /* Array index: 0x0658 */ 0x63BF,0x3B71, - /* Array index: 0x0658 */ 0x63C1,0x3B70, - /* Array index: 0x0658 */ 0x63D1,0x3B73, - /* Array index: 0x0658 */ 0x63DE,0x3B67, - /* Array index: 0x0658 */ 0x63E2,0x3B66, - /* Array index: 0x0658 */ 0x63E6,0x3B68, - /* Array index: 0x0658 */ 0x63F7,0x3B72, - /* Array index: 0x0658 */ 0x63F8,0x3B6D, - /* Array index: 0x0658 */ 0x63FA,0x6339, - /* Array index: 0x0658 */ 0x63FE,0x3B6F, - /* Array index: 0x0658 */ 0x6403,0x6521, - /* Array index: 0x0658 */ 0x6407,0x4149, - /* Array index: 0x0658 */ 0x6408,0x4132, - /* Array index: 0x0658 */ 0x6411,0x413A, - /* Array index: 0x0658 */ 0x6419,0x4138, - /* Array index: 0x0658 */ 0x641D,0x413E, - /* Array index: 0x0658 */ 0x6429,0x413D, - /* Array index: 0x0658 */ 0x6431,0x4136, - /* Array index: 0x0658 */ 0x6432,0x4133, - /* Array index: 0x0658 */ 0x6446,0x4144, - /* Array index: 0x0658 */ 0x6447,0x4145, - /* Array index: 0x0658 */ 0x6449,0x6676, - /* Array index: 0x0658 */ 0x644C,0x4678, - /* Array index: 0x0658 */ 0x644F,0x4728, - /* Array index: 0x0658 */ 0x6462,0x4721, - /* Array index: 0x0658 */ 0x6464,0x472A, - /* Array index: 0x0658 */ 0x646A,0x4723, - /* Array index: 0x0658 */ 0x6471,0x4722, - /* Array index: 0x0658 */ 0x647C,0x467B, - /* Array index: 0x0658 */ 0x647E,0x4729, - /* Array index: 0x0658 */ 0x6480,0x4C2D, - /* Array index: 0x0658 */ 0x6481,0x4726, - /* Array index: 0x0658 */ 0x6483,0x4C35, - /* Array index: 0x0658 */ 0x6486,0x4C38, - /* Array index: 0x0658 */ 0x648D,0x4C30, - /* Array index: 0x0658 */ 0x648E,0x4C2F, - /* Array index: 0x0658 */ 0x6491,0x4C3B, - /* Array index: 0x0658 */ 0x6494,0x4C31, - /* Array index: 0x0658 */ 0x649B,0x4C2E, - /* Array index: 0x0658 */ 0x64A1,0x4C3E, - /* Array index: 0x0658 */ 0x64A7,0x4C3F, - /* Array index: 0x0658 */ 0x64A8,0x4C34, - /* Array index: 0x0658 */ 0x64AA,0x4C3D, - /* Array index: 0x0658 */ 0x64AF,0x4C3A, - /* Array index: 0x0658 */ 0x64B4,0x4C39, - /* Array index: 0x0658 */ 0x64B6,0x6522, - /* Array index: 0x0658 */ 0x64B9,0x4C37, - /* Array index: 0x0658 */ 0x64C0,0x5070, - /* Array index: 0x0658 */ 0x64C6,0x4C32, - /* Array index: 0x0658 */ 0x64C8,0x5077, - /* Array index: 0x0658 */ 0x64D1,0x5076, - /* Array index: 0x0658 */ 0x64D3,0x506F, - /* Array index: 0x0658 */ 0x64D5,0x5079, - /* Array index: 0x0658 */ 0x64DC,0x5075, - /* Array index: 0x0658 */ 0x64DF,0x5464, - /* Array index: 0x0658 */ 0x64E1,0x5467, - /* Array index: 0x0658 */ 0x64E5,0x576B, - /* Array index: 0x0658 */ 0x64E7,0x576D, - /* Array index: 0x0658 */ 0x64EA,0x576C, - /* Array index: 0x0658 */ 0x64EE,0x5469, - /* Array index: 0x0658 */ 0x64F6,0x576A, - /* Array index: 0x0658 */ 0x64F9,0x5770, - /* Array index: 0x0658 */ 0x6505,0x576E, - /* Array index: 0x0658 */ 0x6508,0x5A3B, - /* Array index: 0x0658 */ 0x650A,0x5A3C, - /* Array index: 0x0658 */ 0x650B,0x5A3A, - /* Array index: 0x0658 */ 0x6511,0x5E31, - /* Array index: 0x0658 */ 0x651A,0x6523, - /* Array index: 0x0658 */ 0x651E,0x5F4A, - /* Array index: 0x0658 */ 0x651F,0x5F4B, - /* Array index: 0x0658 */ 0x6527,0x5F49, - /* Array index: 0x0658 */ 0x6528,0x6032, - /* Array index: 0x0658 */ 0x6531,0x2C72, - /* Array index: 0x0658 */ 0x6534,0x2167, - /* Array index: 0x0658 */ 0x6535,0x2168, - /* Array index: 0x0658 */ 0x6540,0x2C74, - /* Array index: 0x0658 */ 0x6542,0x2C76, - /* Array index: 0x0658 */ 0x6544,0x2C73, - /* Array index: 0x0658 */ 0x654B,0x313D, - /* Array index: 0x0658 */ 0x654D,0x3637, - /* Array index: 0x0658 */ 0x654E,0x3636, - /* Array index: 0x0658 */ 0x655A,0x3634, - /* Array index: 0x0658 */ 0x656B,0x414B, - /* Array index: 0x0658 */ 0x6585,0x5C41, - /* Array index: 0x0658 */ 0x6588,0x2558, - /* Array index: 0x0658 */ 0x6589,0x2939, - /* Array index: 0x0658 */ 0x658B,0x3140, - /* Array index: 0x0658 */ 0x658D,0x3638, - /* Array index: 0x0658 */ 0x658E,0x3639, - /* Array index: 0x0658 */ 0x659A,0x3142, - /* Array index: 0x0658 */ 0x65A6,0x293B, - /* Array index: 0x0658 */ 0x65AD,0x363A, - /* Array index: 0x0658 */ 0x65B5,0x546B, - /* Array index: 0x0658 */ 0x65BA,0x293C, - /* Array index: 0x0658 */ 0x65BE,0x2C77, - /* Array index: 0x0658 */ 0x65C7,0x363C, - /* Array index: 0x0658 */ 0x65C9,0x363F, - /* Array index: 0x0658 */ 0x65CA,0x363D, - /* Array index: 0x0658 */ 0x65D1,0x3B79, - /* Array index: 0x0658 */ 0x65DC,0x5A3F, - /* Array index: 0x0658 */ 0x65E0,0x2169, - /* Array index: 0x0658 */ 0x65E3,0x3641, - /* Array index: 0x0658 */ 0x65E4,0x4150, - /* Array index: 0x0658 */ 0x65E7,0x2251, - /* Array index: 0x0658 */ 0x65EA,0x2373, - /* Array index: 0x0658 */ 0x65EB,0x2372, - /* Array index: 0x0658 */ 0x65F6,0x263D, - /* Array index: 0x0658 */ 0x65F9,0x625E, - /* Array index: 0x0658 */ 0x65FE,0x2943, - /* Array index: 0x0658 */ 0x65FF,0x293E, - /* Array index: 0x0658 */ 0x6601,0x2942, - /* Array index: 0x0658 */ 0x661E,0x2D23, - /* Array index: 0x0658 */ 0x6623,0x2C7C, - /* Array index: 0x0658 */ 0x6629,0x2C79, - /* Array index: 0x0658 */ 0x662C,0x2C7D, - /* Array index: 0x0658 */ 0x6630,0x2D21, - /* Array index: 0x0658 */ 0x6637,0x2D24, - /* Array index: 0x0658 */ 0x6638,0x2D25, - /* Array index: 0x0658 */ 0x663B,0x2D22, - /* Array index: 0x0658 */ 0x663C,0x2C37, - /* Array index: 0x0658 */ 0x6640,0x3146, - /* Array index: 0x0658 */ 0x6644,0x314C, - /* Array index: 0x0658 */ 0x6646,0x3144, - /* Array index: 0x0658 */ 0x6648,0x3149, - /* Array index: 0x0658 */ 0x664B,0x3148, - /* Array index: 0x0658 */ 0x664D,0x314D, - /* Array index: 0x0658 */ 0x664E,0x3145, - /* Array index: 0x0658 */ 0x6650,0x3143, - /* Array index: 0x0658 */ 0x6657,0x3642, - /* Array index: 0x0658 */ 0x6660,0x314B, - /* Array index: 0x0658 */ 0x6663,0x3644, - /* Array index: 0x0658 */ 0x6667,0x3645, - /* Array index: 0x0658 */ 0x6669,0x3C26, - /* Array index: 0x0658 */ 0x666B,0x3B7D, - /* Array index: 0x0658 */ 0x666D,0x3C25, - /* Array index: 0x0658 */ 0x6673,0x3C23, - /* Array index: 0x0658 */ 0x667D,0x3B7C, - /* Array index: 0x0658 */ 0x667F,0x3B7E, - /* Array index: 0x0658 */ 0x6681,0x3C24, - /* Array index: 0x0658 */ 0x668E,0x415B, - /* Array index: 0x0658 */ 0x668F,0x4156, - /* Array index: 0x0658 */ 0x6692,0x4159, - /* Array index: 0x0658 */ 0x6693,0x4151, - /* Array index: 0x0658 */ 0x669A,0x4734, - /* Array index: 0x0658 */ 0x669C,0x4735, - /* Array index: 0x0658 */ 0x66AC,0x4C44, - /* Array index: 0x0658 */ 0x66AD,0x4C46, - /* Array index: 0x0658 */ 0x66B3,0x4C41, - /* Array index: 0x0658 */ 0x66B6,0x4C40, - /* Array index: 0x0658 */ 0x66BC,0x4C43, - /* Array index: 0x0658 */ 0x66BF,0x507D, - /* Array index: 0x0658 */ 0x66C1,0x5123, - /* Array index: 0x0658 */ 0x66C3,0x507A, - /* Array index: 0x0658 */ 0x66C5,0x507E, - /* Array index: 0x0658 */ 0x66DF,0x5A43, - /* Array index: 0x0658 */ 0x66E1,0x5A42, - /* Array index: 0x0658 */ 0x66E2,0x6526, - /* Array index: 0x0658 */ 0x66E5,0x5C42, - /* Array index: 0x0658 */ 0x66E7,0x5C43, - /* Array index: 0x0658 */ 0x66EF,0x613F, - /* Array index: 0x0658 */ 0x66F5,0x2641, - /* Array index: 0x0658 */ 0x6702,0x6527, - /* Array index: 0x0658 */ 0x6706,0x5124, - /* Array index: 0x0658 */ 0x670C,0x2945, - /* Array index: 0x0658 */ 0x670E,0x2D27, - /* Array index: 0x0658 */ 0x6711,0x6632, - /* Array index: 0x0658 */ 0x6716,0x3648, - /* Array index: 0x0658 */ 0x6719,0x3647, - /* Array index: 0x0658 */ 0x671A,0x3646, - /* Array index: 0x0658 */ 0x671E,0x3C29, - /* Array index: 0x0658 */ 0x6724,0x5126, - /* Array index: 0x0658 */ 0x6725,0x6633, - /* Array index: 0x0658 */ 0x672F,0x2252, - /* Array index: 0x0658 */ 0x6732,0x2377, - /* Array index: 0x0658 */ 0x6736,0x2378, - /* Array index: 0x0658 */ 0x6737,0x2375, - /* Array index: 0x0658 */ 0x6744,0x2648, - /* Array index: 0x0658 */ 0x674A,0x2649, - /* Array index: 0x0658 */ 0x6752,0x2645, - /* Array index: 0x0658 */ 0x6754,0x2644, - /* Array index: 0x0658 */ 0x6758,0x2647, - /* Array index: 0x0658 */ 0x675B,0x2642, - /* Array index: 0x0658 */ 0x6761,0x264A, - /* Array index: 0x0658 */ 0x6765,0x6257, - /* Array index: 0x0658 */ 0x676B,0x2947, - /* Array index: 0x0658 */ 0x6780,0x2952, - /* Array index: 0x0658 */ 0x6782,0x2949, - /* Array index: 0x0658 */ 0x6788,0x625F, - /* Array index: 0x0658 */ 0x678A,0x294A, - /* Array index: 0x0658 */ 0x678F,0x294F, - /* Array index: 0x0658 */ 0x6796,0x2948, - /* Array index: 0x0658 */ 0x67AC,0x6529, - /* Array index: 0x0658 */ 0x67B1,0x2D36, - /* Array index: 0x0658 */ 0x67BC,0x2D2E, - /* Array index: 0x0658 */ 0x67BF,0x2D30, - /* Array index: 0x0658 */ 0x67C7,0x2D2D, - /* Array index: 0x0658 */ 0x67E8,0x2D2A, - /* Array index: 0x0658 */ 0x67F9,0x2951, - /* Array index: 0x0658 */ 0x67FB,0x2D34, - /* Array index: 0x0658 */ 0x67FE,0x2D32, - /* Array index: 0x0658 */ 0x6800,0x2D39, - /* Array index: 0x0658 */ 0x6801,0x2D37, - /* Array index: 0x0658 */ 0x6805,0x2D38, - /* Array index: 0x0658 */ 0x6806,0x652B, - /* Array index: 0x0658 */ 0x6810,0x652A, - /* Array index: 0x0658 */ 0x6815,0x315D, - /* Array index: 0x0658 */ 0x6819,0x3157, - /* Array index: 0x0658 */ 0x681B,0x3153, - /* Array index: 0x0658 */ 0x681E,0x315B, - /* Array index: 0x0658 */ 0x6827,0x315F, - /* Array index: 0x0658 */ 0x682C,0x3156, - /* Array index: 0x0658 */ 0x6830,0x3163, - /* Array index: 0x0658 */ 0x6836,0x3154, - /* Array index: 0x0658 */ 0x6837,0x314F, - /* Array index: 0x0658 */ 0x683E,0x315A, - /* Array index: 0x0658 */ 0x6847,0x3159, - /* Array index: 0x0658 */ 0x6852,0x2D2F, - /* Array index: 0x0658 */ 0x685E,0x652C, - /* Array index: 0x0658 */ 0x686C,0x3655, - /* Array index: 0x0658 */ 0x6870,0x3660, - /* Array index: 0x0658 */ 0x6873,0x364E, - /* Array index: 0x0658 */ 0x687A,0x365B, - /* Array index: 0x0658 */ 0x6884,0x3657, - /* Array index: 0x0658 */ 0x688E,0x3651, - /* Array index: 0x0658 */ 0x6895,0x365A, - /* Array index: 0x0658 */ 0x689E,0x364B, - /* Array index: 0x0658 */ 0x68A5,0x3654, - /* Array index: 0x0658 */ 0x68A6,0x3478, - /* Array index: 0x0658 */ 0x68C1,0x3656, - /* Array index: 0x0658 */ 0x68C3,0x3C45, - /* Array index: 0x0658 */ 0x68C5,0x3C41, - /* Array index: 0x0658 */ 0x68CA,0x3C38, - /* Array index: 0x0658 */ 0x68CF,0x3C3E, - /* Array index: 0x0658 */ 0x68DB,0x3653, - /* Array index: 0x0658 */ 0x68E2,0x3C3D, - /* Array index: 0x0658 */ 0x68E5,0x3C32, - /* Array index: 0x0658 */ 0x68ED,0x3C2A, - /* Array index: 0x0658 */ 0x6909,0x3C37, - /* Array index: 0x0658 */ 0x6918,0x3C3C, - /* Array index: 0x0658 */ 0x691C,0x3C44, - /* Array index: 0x0658 */ 0x691E,0x3C33, - /* Array index: 0x0658 */ 0x6929,0x652F, - /* Array index: 0x0658 */ 0x692C,0x652E, - /* Array index: 0x0658 */ 0x692E,0x3C40, - /* Array index: 0x0658 */ 0x6931,0x4165, - /* Array index: 0x0658 */ 0x6936,0x4177, - /* Array index: 0x0658 */ 0x693E,0x4168, - /* Array index: 0x0658 */ 0x6943,0x416B, - /* Array index: 0x0658 */ 0x6946,0x415D, - /* Array index: 0x0658 */ 0x6947,0x4175, - /* Array index: 0x0658 */ 0x694D,0x4173, - /* Array index: 0x0658 */ 0x6950,0x4174, - /* Array index: 0x0658 */ 0x6955,0x416F, - /* Array index: 0x0658 */ 0x6961,0x4179, - /* Array index: 0x0658 */ 0x6964,0x4178, - /* Array index: 0x0658 */ 0x6967,0x4176, - /* Array index: 0x0658 */ 0x6973,0x416D, - /* Array index: 0x0658 */ 0x697C,0x416A, - /* Array index: 0x0658 */ 0x697D,0x417B, - /* Array index: 0x0658 */ 0x6985,0x4172, - /* Array index: 0x0658 */ 0x698F,0x473A, - /* Array index: 0x0658 */ 0x6992,0x473D, - /* Array index: 0x0658 */ 0x6998,0x4751, - /* Array index: 0x0658 */ 0x699D,0x474E, - /* Array index: 0x0658 */ 0x699F,0x4746, - /* Array index: 0x0658 */ 0x69A2,0x4747, - /* Array index: 0x0658 */ 0x69B2,0x473E, - /* Array index: 0x0658 */ 0x69BA,0x6352, - /* Array index: 0x0658 */ 0x69C0,0x4743, - /* Array index: 0x0658 */ 0x69C5,0x473B, - /* Array index: 0x0658 */ 0x69C8,0x473C, - /* Array index: 0x0658 */ 0x69D1,0x4745, - /* Array index: 0x0658 */ 0x69D2,0x4748, - /* Array index: 0x0658 */ 0x69D5,0x474D, - /* Array index: 0x0658 */ 0x69D6,0x4744, - /* Array index: 0x0658 */ 0x69D8,0x4C54, - /* Array index: 0x0658 */ 0x69E1,0x474C, - /* Array index: 0x0658 */ 0x69E3,0x4742, - /* Array index: 0x0658 */ 0x69E9,0x4C64, - /* Array index: 0x0658 */ 0x69EA,0x4C60, - /* Array index: 0x0658 */ 0x69EF,0x4C4F, - /* Array index: 0x0658 */ 0x69F0,0x4C51, - /* Array index: 0x0658 */ 0x69F9,0x4C5F, - /* Array index: 0x0658 */ 0x69FA,0x4C57, - /* Array index: 0x0658 */ 0x6A0B,0x4C4D, - /* Array index: 0x0658 */ 0x6A0C,0x4C50, - /* Array index: 0x0658 */ 0x6A0E,0x4C47, - /* Array index: 0x0658 */ 0x6A10,0x4C5B, - /* Array index: 0x0658 */ 0x6A12,0x4C56, - /* Array index: 0x0658 */ 0x6A1A,0x4C4A, - /* Array index: 0x0658 */ 0x6A1C,0x4C49, - /* Array index: 0x0658 */ 0x6A22,0x4C52, - /* Array index: 0x0658 */ 0x6A24,0x4C62, - /* Array index: 0x0658 */ 0x6A33,0x512C, - /* Array index: 0x0658 */ 0x6A36,0x513C, - /* Array index: 0x0658 */ 0x6A37,0x5138, - /* Array index: 0x0658 */ 0x6A42,0x5128, - /* Array index: 0x0658 */ 0x6A43,0x512B, - /* Array index: 0x0658 */ 0x6A45,0x5140, - /* Array index: 0x0658 */ 0x6A4A,0x513B, - /* Array index: 0x0658 */ 0x6A4C,0x5131, - /* Array index: 0x0658 */ 0x6A52,0x5129, - /* Array index: 0x0658 */ 0x6A53,0x513E, - /* Array index: 0x0658 */ 0x6A57,0x512F, - /* Array index: 0x0658 */ 0x6A5C,0x5144, - /* Array index: 0x0658 */ 0x6A63,0x5127, - /* Array index: 0x0658 */ 0x6A6C,0x512E, - /* Array index: 0x0658 */ 0x6A6E,0x5132, - /* Array index: 0x0658 */ 0x6A70,0x5141, - /* Array index: 0x0658 */ 0x6A71,0x513A, - /* Array index: 0x0658 */ 0x6A77,0x6531, - /* Array index: 0x0658 */ 0x6A7A,0x6532, - /* Array index: 0x0658 */ 0x6A7D,0x5475, - /* Array index: 0x0658 */ 0x6A82,0x547B, - /* Array index: 0x0658 */ 0x6A86,0x5521, - /* Array index: 0x0658 */ 0x6A88,0x547C, - /* Array index: 0x0658 */ 0x6A8A,0x5476, - /* Array index: 0x0658 */ 0x6A8F,0x5527, - /* Array index: 0x0658 */ 0x6A98,0x5523, - /* Array index: 0x0658 */ 0x6A99,0x547A, - /* Array index: 0x0658 */ 0x6A9D,0x5524, - /* Array index: 0x0658 */ 0x6AA7,0x5478, - /* Array index: 0x0658 */ 0x6AAA,0x5529, - /* Array index: 0x0658 */ 0x6AAB,0x5774, - /* Array index: 0x0658 */ 0x6AB5,0x5778, - /* Array index: 0x0658 */ 0x6AC4,0x5822, - /* Array index: 0x0658 */ 0x6AC8,0x577B, - /* Array index: 0x0658 */ 0x6ACA,0x6533, - /* Array index: 0x0658 */ 0x6ACE,0x5A44, - /* Array index: 0x0658 */ 0x6AD2,0x5A4F, - /* Array index: 0x0658 */ 0x6AE2,0x5A48, - /* Array index: 0x0658 */ 0x6AE3,0x5A46, - /* Array index: 0x0658 */ 0x6AE6,0x6534, - /* Array index: 0x0658 */ 0x6AE9,0x5C49, - /* Array index: 0x0658 */ 0x6AED,0x5775, - /* Array index: 0x0658 */ 0x6AF4,0x5C47, - /* Array index: 0x0658 */ 0x6AF5,0x6535, - /* Array index: 0x0658 */ 0x6B06,0x5F4F, - /* Array index: 0x0658 */ 0x6B07,0x5F4E, - /* Array index: 0x0658 */ 0x6B0D,0x6536, - /* Array index: 0x0658 */ 0x6B0E,0x6537, - /* Array index: 0x0658 */ 0x6B14,0x6074, - /* Array index: 0x0658 */ 0x6B22,0x2379, - /* Array index: 0x0658 */ 0x6B2E,0x3165, - /* Array index: 0x0658 */ 0x6B30,0x3167, - /* Array index: 0x0658 */ 0x6B35,0x3662, - /* Array index: 0x0658 */ 0x6B40,0x417D, - /* Array index: 0x0658 */ 0x6B44,0x417C, - /* Array index: 0x0658 */ 0x6B4F,0x4C66, - /* Array index: 0x0658 */ 0x6B52,0x4C65, - /* Array index: 0x0658 */ 0x6B53,0x4C67, - /* Array index: 0x0658 */ 0x6B57,0x5146, - /* Array index: 0x0658 */ 0x6B58,0x5145, - /* Array index: 0x0658 */ 0x6B5D,0x552B, - /* Array index: 0x0658 */ 0x6B7A,0x2253, - /* Array index: 0x0658 */ 0x6B81,0x2958, - /* Array index: 0x0658 */ 0x6B8B,0x316A, - /* Array index: 0x0658 */ 0x6B90,0x3664, - /* Array index: 0x0658 */ 0x6B9C,0x4222, - /* Array index: 0x0658 */ 0x6B9D,0x6354, - /* Array index: 0x0658 */ 0x6BA1,0x4754, - /* Array index: 0x0658 */ 0x6BB4,0x2959, - /* Array index: 0x0658 */ 0x6BBB,0x3665, - /* Array index: 0x0658 */ 0x6BBE,0x3C4B, - /* Array index: 0x0658 */ 0x6BC1,0x4226, - /* Array index: 0x0658 */ 0x6BCE,0x237A, - /* Array index: 0x0658 */ 0x6BD1,0x295A, - /* Array index: 0x0658 */ 0x6BDC,0x6538, - /* Array index: 0x0658 */ 0x6BDD,0x6539, - /* Array index: 0x0658 */ 0x6BE1,0x2D42, - /* Array index: 0x0658 */ 0x6BE5,0x316E, - /* Array index: 0x0658 */ 0x6BE9,0x316C, - /* Array index: 0x0658 */ 0x6BEA,0x316D, - /* Array index: 0x0658 */ 0x6BED,0x3666, - /* Array index: 0x0658 */ 0x6BF4,0x3C4D, - /* Array index: 0x0658 */ 0x6BF6,0x653A, - /* Array index: 0x0658 */ 0x6BFA,0x4228, - /* Array index: 0x0658 */ 0x6C0A,0x552D, - /* Array index: 0x0658 */ 0x6C1C,0x295D, - /* Array index: 0x0658 */ 0x6C1E,0x653B, - /* Array index: 0x0658 */ 0x6C2D,0x3C4E, - /* Array index: 0x0658 */ 0x6C31,0x4229, - /* Array index: 0x0658 */ 0x6C32,0x422A, - /* Array index: 0x0658 */ 0x6C37,0x2257, - /* Array index: 0x0658 */ 0x6C39,0x2254, - /* Array index: 0x0658 */ 0x6C3C,0x2421, - /* Array index: 0x0658 */ 0x6C44,0x2258, - /* Array index: 0x0658 */ 0x6C45,0x2259, - /* Array index: 0x0658 */ 0x6C51,0x237D, - /* Array index: 0x0658 */ 0x6C53,0x2425, - /* Array index: 0x0658 */ 0x6C56,0x2655, - /* Array index: 0x0658 */ 0x6C58,0x237C, - /* Array index: 0x0658 */ 0x6C5A,0x2423, - /* Array index: 0x0658 */ 0x6C63,0x653C, - /* Array index: 0x0658 */ 0x6C6C,0x2964, - /* Array index: 0x0658 */ 0x6C6E,0x2650, - /* Array index: 0x0658 */ 0x6C75,0x2653, - /* Array index: 0x0658 */ 0x6C77,0x237E, - /* Array index: 0x0658 */ 0x6C79,0x2657, - /* Array index: 0x0658 */ 0x6C7C,0x2651, - /* Array index: 0x0658 */ 0x6C7F,0x264C, - /* Array index: 0x0658 */ 0x6C91,0x264D, - /* Array index: 0x0658 */ 0x6C97,0x2963, - /* Array index: 0x0658 */ 0x6CAA,0x265B, - /* Array index: 0x0658 */ 0x6CAF,0x2D4E, - /* Array index: 0x0658 */ 0x6CB2,0x296B, - /* Array index: 0x0658 */ 0x6CC8,0x296D, - /* Array index: 0x0658 */ 0x6CCB,0x6261, - /* Array index: 0x0658 */ 0x6CCE,0x296C, - /* Array index: 0x0658 */ 0x6CD8,0x296A, - /* Array index: 0x0658 */ 0x6CDF,0x2965, - /* Array index: 0x0658 */ 0x6CE4,0x2969, - /* Array index: 0x0658 */ 0x6CE6,0x6260, - /* Array index: 0x0658 */ 0x6CEA,0x2967, - /* Array index: 0x0658 */ 0x6CF4,0x2D4F, - /* Array index: 0x0658 */ 0x6CFF,0x2D46, - /* Array index: 0x0658 */ 0x6D02,0x2D50, - /* Array index: 0x0658 */ 0x6D05,0x2D48, - /* Array index: 0x0658 */ 0x6D06,0x2D4A, - /* Array index: 0x0658 */ 0x6D1C,0x317A, - /* Array index: 0x0658 */ 0x6D21,0x2D4B, - /* Array index: 0x0658 */ 0x6D23,0x2D45, - /* Array index: 0x0658 */ 0x6D24,0x2D57, - /* Array index: 0x0658 */ 0x6D26,0x2D53, - /* Array index: 0x0658 */ 0x6D44,0x2D55, - /* Array index: 0x0658 */ 0x6D45,0x2D51, - /* Array index: 0x0658 */ 0x6D56,0x3177, - /* Array index: 0x0658 */ 0x6D57,0x3173, - /* Array index: 0x0658 */ 0x6D6B,0x316F, - /* Array index: 0x0658 */ 0x6D81,0x3221, - /* Array index: 0x0658 */ 0x6D8F,0x3178, - /* Array index: 0x0658 */ 0x6D96,0x3227, - /* Array index: 0x0658 */ 0x6DA5,0x653D, - /* Array index: 0x0658 */ 0x6DAD,0x366F, - /* Array index: 0x0658 */ 0x6DB0,0x367A, - /* Array index: 0x0658 */ 0x6DB1,0x3721, - /* Array index: 0x0658 */ 0x6DB6,0x3C50, - /* Array index: 0x0658 */ 0x6DB9,0x3672, - /* Array index: 0x0658 */ 0x6DC1,0x366A, - /* Array index: 0x0658 */ 0x6DC3,0x366B, - /* Array index: 0x0658 */ 0x6DCE,0x366C, - /* Array index: 0x0658 */ 0x6DE7,0x3674, - /* Array index: 0x0658 */ 0x6DF8,0x367C, - /* Array index: 0x0658 */ 0x6E0F,0x653E, - /* Array index: 0x0658 */ 0x6E12,0x3729, - /* Array index: 0x0658 */ 0x6E17,0x3727, - /* Array index: 0x0658 */ 0x6E18,0x3C54, - /* Array index: 0x0658 */ 0x6E1E,0x3C52, - /* Array index: 0x0658 */ 0x6E29,0x3C6B, - /* Array index: 0x0658 */ 0x6E2A,0x3C6D, - /* Array index: 0x0658 */ 0x6E42,0x3C5A, - /* Array index: 0x0658 */ 0x6E48,0x3C56, - /* Array index: 0x0658 */ 0x6E4C,0x3C6E, - /* Array index: 0x0658 */ 0x6E4F,0x3C58, - /* Array index: 0x0658 */ 0x6E50,0x3C69, - /* Array index: 0x0658 */ 0x6E57,0x3C66, - /* Array index: 0x0658 */ 0x6E59,0x3C64, - /* Array index: 0x0658 */ 0x6E6A,0x3C5B, - /* Array index: 0x0658 */ 0x6E6C,0x423A, - /* Array index: 0x0658 */ 0x6E6D,0x3C60, - /* Array index: 0x0658 */ 0x6E70,0x3C5C, - /* Array index: 0x0658 */ 0x6E75,0x3C51, - /* Array index: 0x0658 */ 0x6E76,0x3C6C, - /* Array index: 0x0658 */ 0x6E7B,0x3C62, - /* Array index: 0x0658 */ 0x6E7C,0x6542, - /* Array index: 0x0658 */ 0x6E7E,0x3C63, - /* Array index: 0x0658 */ 0x6E80,0x3C68, - /* Array index: 0x0658 */ 0x6E84,0x6540, - /* Array index: 0x0658 */ 0x6E86,0x633D, - /* Array index: 0x0658 */ 0x6E8A,0x653F, - /* Array index: 0x0658 */ 0x6E8B,0x6541, - /* Array index: 0x0658 */ 0x6E91,0x4230, - /* Array index: 0x0658 */ 0x6E9A,0x4233, - /* Array index: 0x0658 */ 0x6EA8,0x422E, - /* Array index: 0x0658 */ 0x6EA9,0x4236, - /* Array index: 0x0658 */ 0x6EAC,0x4240, - /* Array index: 0x0658 */ 0x6EB5,0x4239, - /* Array index: 0x0658 */ 0x6EB8,0x422D, - /* Array index: 0x0658 */ 0x6EBB,0x4231, - /* Array index: 0x0658 */ 0x6EE3,0x4245, - /* Array index: 0x0658 */ 0x6EE6,0x423F, - /* Array index: 0x0658 */ 0x6EE8,0x423B, - /* Array index: 0x0658 */ 0x6EE9,0x4246, - /* Array index: 0x0658 */ 0x6EF0,0x4756, - /* Array index: 0x0658 */ 0x6EF3,0x4757, - /* Array index: 0x0658 */ 0x6EFA,0x4765, - /* Array index: 0x0658 */ 0x6F04,0x4763, - /* Array index: 0x0658 */ 0x6F0B,0x4C78, - /* Array index: 0x0658 */ 0x6F0C,0x475B, - /* Array index: 0x0658 */ 0x6F10,0x4C6A, - /* Array index: 0x0658 */ 0x6F11,0x4764, - /* Array index: 0x0658 */ 0x6F17,0x475F, - /* Array index: 0x0658 */ 0x6F1B,0x475A, - /* Array index: 0x0658 */ 0x6F1D,0x475C, - /* Array index: 0x0658 */ 0x6F28,0x475E, - /* Array index: 0x0658 */ 0x6F34,0x475D, - /* Array index: 0x0658 */ 0x6F3D,0x4C74, - /* Array index: 0x0658 */ 0x6F42,0x4762, - /* Array index: 0x0658 */ 0x6F44,0x4761, - /* Array index: 0x0658 */ 0x6F59,0x4C7D, - /* Array index: 0x0658 */ 0x6F5C,0x4C73, - /* Array index: 0x0658 */ 0x6F65,0x4C6B, - /* Array index: 0x0658 */ 0x6F71,0x4C75, - /* Array index: 0x0658 */ 0x6F74,0x4C7E, - /* Array index: 0x0658 */ 0x6F75,0x4C6C, - /* Array index: 0x0658 */ 0x6F79,0x4C79, - /* Array index: 0x0658 */ 0x6F81,0x4C7A, - /* Array index: 0x0658 */ 0x6F8A,0x6363, - /* Array index: 0x0658 */ 0x6F8F,0x4C7B, - /* Array index: 0x0658 */ 0x6F91,0x4C77, - /* Array index: 0x0658 */ 0x6F99,0x6547, - /* Array index: 0x0658 */ 0x6F9D,0x6546, - /* Array index: 0x0658 */ 0x6F9F,0x5156, - /* Array index: 0x0658 */ 0x6FB5,0x5154, - /* Array index: 0x0658 */ 0x6FB7,0x5158, - /* Array index: 0x0658 */ 0x6FBB,0x514D, - /* Array index: 0x0658 */ 0x6FBE,0x5150, - /* Array index: 0x0658 */ 0x6FD0,0x4C71, - /* Array index: 0x0658 */ 0x6FD3,0x5155, - /* Array index: 0x0658 */ 0x6FE5,0x5531, - /* Array index: 0x0658 */ 0x6FEA,0x5537, - /* Array index: 0x0658 */ 0x6FF3,0x5A55, - /* Array index: 0x0658 */ 0x6FF5,0x5159, - /* Array index: 0x0658 */ 0x6FF6,0x5539, - /* Array index: 0x0658 */ 0x6FF8,0x6548, - /* Array index: 0x0658 */ 0x6FFD,0x5828, - /* Array index: 0x0658 */ 0x7002,0x582A, - /* Array index: 0x0658 */ 0x7003,0x5827, - /* Array index: 0x0658 */ 0x7008,0x5826, - /* Array index: 0x0658 */ 0x7010,0x5829, - /* Array index: 0x0658 */ 0x7013,0x582B, - /* Array index: 0x0658 */ 0x701E,0x5A52, - /* Array index: 0x0658 */ 0x7025,0x5A54, - /* Array index: 0x0658 */ 0x7036,0x5C51, - /* Array index: 0x0658 */ 0x703D,0x5C4F, - /* Array index: 0x0658 */ 0x7047,0x5E3C, - /* Array index: 0x0658 */ 0x704B,0x5E3A, - /* Array index: 0x0658 */ 0x704D,0x5E3B, - /* Array index: 0x0658 */ 0x7053,0x6036, - /* Array index: 0x0658 */ 0x7054,0x5F52, - /* Array index: 0x0658 */ 0x7059,0x6037, - /* Array index: 0x0658 */ 0x705C,0x654B, - /* Array index: 0x0658 */ 0x7067,0x6179, - /* Array index: 0x0658 */ 0x706E,0x2428, - /* Array index: 0x0658 */ 0x706F,0x2426, - /* Array index: 0x0658 */ 0x7072,0x2427, - /* Array index: 0x0658 */ 0x7073,0x242B, - /* Array index: 0x0658 */ 0x7075,0x2662, - /* Array index: 0x0658 */ 0x7077,0x265F, - /* Array index: 0x0658 */ 0x7079,0x265E, - /* Array index: 0x0658 */ 0x707B,0x2663, - /* Array index: 0x0658 */ 0x707E,0x2660, - /* Array index: 0x0658 */ 0x7081,0x2977, - /* Array index: 0x0658 */ 0x70A0,0x2D5E, - /* Array index: 0x0658 */ 0x70B2,0x2D64, - /* Array index: 0x0658 */ 0x70B6,0x2D63, - /* Array index: 0x0658 */ 0x70B9,0x2D68, - /* Array index: 0x0658 */ 0x70BB,0x2D5D, - /* Array index: 0x0658 */ 0x70BF,0x654D, - /* Array index: 0x0658 */ 0x70C4,0x3228, - /* Array index: 0x0658 */ 0x70C9,0x6279, - /* Array index: 0x0658 */ 0x70CC,0x322A, - /* Array index: 0x0658 */ 0x70D0,0x322B, - /* Array index: 0x0658 */ 0x70D5,0x3231, - /* Array index: 0x0658 */ 0x70D6,0x322F, - /* Array index: 0x0658 */ 0x70DB,0x3229, - /* Array index: 0x0658 */ 0x70DF,0x322D, - /* Array index: 0x0658 */ 0x70E3,0x322C, - /* Array index: 0x0658 */ 0x70E5,0x654F, - /* Array index: 0x0658 */ 0x70EA,0x654E, - /* Array index: 0x0658 */ 0x70EE,0x3230, - /* Array index: 0x0658 */ 0x70F1,0x3730, - /* Array index: 0x0658 */ 0x70F2,0x3732, - /* Array index: 0x0658 */ 0x70F5,0x372F, - /* Array index: 0x0658 */ 0x70FE,0x3735, - /* Array index: 0x0658 */ 0x7101,0x372E, - /* Array index: 0x0658 */ 0x7103,0x372C, - /* Array index: 0x0658 */ 0x7107,0x372D, - /* Array index: 0x0658 */ 0x7108,0x3731, - /* Array index: 0x0658 */ 0x710F,0x3733, - /* Array index: 0x0658 */ 0x7111,0x6550, - /* Array index: 0x0658 */ 0x7112,0x6551, - /* Array index: 0x0658 */ 0x711D,0x3C74, - /* Array index: 0x0658 */ 0x7124,0x3C7D, - /* Array index: 0x0658 */ 0x7127,0x3C7C, - /* Array index: 0x0658 */ 0x7145,0x4257, - /* Array index: 0x0658 */ 0x7148,0x424C, - /* Array index: 0x0658 */ 0x714A,0x424E, - /* Array index: 0x0658 */ 0x714F,0x4251, - /* Array index: 0x0658 */ 0x7151,0x4258, - /* Array index: 0x0658 */ 0x7157,0x4252, - /* Array index: 0x0658 */ 0x715B,0x483C, - /* Array index: 0x0658 */ 0x716B,0x424F, - /* Array index: 0x0658 */ 0x716D,0x4259, - /* Array index: 0x0658 */ 0x716F,0x4249, - /* Array index: 0x0658 */ 0x7171,0x6559, - /* Array index: 0x0658 */ 0x717C,0x476F, - /* Array index: 0x0658 */ 0x717E,0x476E, - /* Array index: 0x0658 */ 0x717F,0x476C, - /* Array index: 0x0658 */ 0x7183,0x4770, - /* Array index: 0x0658 */ 0x7188,0x4772, - /* Array index: 0x0658 */ 0x7191,0x4767, - /* Array index: 0x0658 */ 0x7193,0x655B, - /* Array index: 0x0658 */ 0x7196,0x655A, - /* Array index: 0x0658 */ 0x71A2,0x4D2A, - /* Array index: 0x0658 */ 0x71A3,0x4D24, - /* Array index: 0x0658 */ 0x71A6,0x4D29, - /* Array index: 0x0658 */ 0x71AB,0x4D28, - /* Array index: 0x0658 */ 0x71AD,0x4D25, - /* Array index: 0x0658 */ 0x71AE,0x4D22, - /* Array index: 0x0658 */ 0x71B4,0x655C, - /* Array index: 0x0658 */ 0x71B6,0x5162, - /* Array index: 0x0658 */ 0x71B7,0x515A, - /* Array index: 0x0658 */ 0x71BA,0x5160, - /* Array index: 0x0658 */ 0x71BB,0x515C, - /* Array index: 0x0658 */ 0x71CC,0x5163, - /* Array index: 0x0658 */ 0x71CD,0x6374, - /* Array index: 0x0658 */ 0x71D1,0x515E, - /* Array index: 0x0658 */ 0x71D3,0x5166, - /* Array index: 0x0658 */ 0x71DD,0x655D, - /* Array index: 0x0658 */ 0x71DE,0x655E, - /* Array index: 0x0658 */ 0x71E3,0x553C, - /* Array index: 0x0658 */ 0x71EF,0x5541, - /* Array index: 0x0658 */ 0x71F3,0x5542, - /* Array index: 0x0658 */ 0x71FA,0x582D, - /* Array index: 0x0658 */ 0x7200,0x582E, - /* Array index: 0x0658 */ 0x7204,0x5A56, - /* Array index: 0x0658 */ 0x7208,0x5A57, - /* Array index: 0x0658 */ 0x720B,0x5C59, - /* Array index: 0x0658 */ 0x721C,0x5F53, - /* Array index: 0x0658 */ 0x7220,0x5F54, - /* Array index: 0x0658 */ 0x7221,0x6039, - /* Array index: 0x0658 */ 0x7224,0x6143, - /* Array index: 0x0658 */ 0x7225,0x6142, - /* Array index: 0x0658 */ 0x722E,0x2D69, - /* Array index: 0x0658 */ 0x7232,0x3D22, - /* Array index: 0x0658 */ 0x723C,0x2D6B, - /* Array index: 0x0658 */ 0x7240,0x297C, - /* Array index: 0x0658 */ 0x724E,0x425D, - /* Array index: 0x0658 */ 0x7250,0x425C, - /* Array index: 0x0658 */ 0x7251,0x425B, - /* Array index: 0x0658 */ 0x7255,0x4D2E, - /* Array index: 0x0658 */ 0x7257,0x4D2D, - /* Array index: 0x0658 */ 0x726D,0x2D6D, - /* Array index: 0x0658 */ 0x727A,0x3236, - /* Array index: 0x0658 */ 0x7282,0x3D24, - /* Array index: 0x0658 */ 0x7283,0x3D23, - /* Array index: 0x0658 */ 0x7287,0x3D25, - /* Array index: 0x0658 */ 0x7294,0x4775, - /* Array index: 0x0658 */ 0x7299,0x4D2F, - /* Array index: 0x0658 */ 0x72AB,0x617B, - /* Array index: 0x0658 */ 0x72B1,0x242C, - /* Array index: 0x0658 */ 0x72B2,0x242D, - /* Array index: 0x0658 */ 0x72B6,0x266B, - /* Array index: 0x0658 */ 0x72B9,0x2669, - /* Array index: 0x0658 */ 0x72BB,0x2666, - /* Array index: 0x0658 */ 0x72BC,0x2667, - /* Array index: 0x0658 */ 0x72BE,0x266A, - /* Array index: 0x0658 */ 0x72C7,0x2668, - /* Array index: 0x0658 */ 0x72CD,0x2A26, - /* Array index: 0x0658 */ 0x72CF,0x2A2A, - /* Array index: 0x0658 */ 0x72D3,0x2A27, - /* Array index: 0x0658 */ 0x72DB,0x2A28, - /* Array index: 0x0658 */ 0x72E2,0x2D75, - /* Array index: 0x0658 */ 0x72E5,0x2D74, - /* Array index: 0x0658 */ 0x72E7,0x2D70, - /* Array index: 0x0658 */ 0x72EC,0x2D73, - /* Array index: 0x0658 */ 0x72ED,0x2D71, - /* Array index: 0x0658 */ 0x72F5,0x3238, - /* Array index: 0x0658 */ 0x7302,0x3239, - /* Array index: 0x0658 */ 0x7306,0x3D26, - /* Array index: 0x0658 */ 0x730E,0x373B, - /* Array index: 0x0658 */ 0x7310,0x373A, - /* Array index: 0x0658 */ 0x731A,0x3739, - /* Array index: 0x0658 */ 0x7324,0x3D27, - /* Array index: 0x0658 */ 0x7338,0x3D28, - /* Array index: 0x0658 */ 0x7341,0x425F, - /* Array index: 0x0658 */ 0x734B,0x4D30, - /* Array index: 0x0658 */ 0x734F,0x4779, - /* Array index: 0x0658 */ 0x7371,0x5549, - /* Array index: 0x0658 */ 0x738C,0x225A, - /* Array index: 0x0658 */ 0x738D,0x216B, - /* Array index: 0x0658 */ 0x738F,0x242F, - /* Array index: 0x0658 */ 0x7398,0x266E, - /* Array index: 0x0658 */ 0x739C,0x2A33, - /* Array index: 0x0658 */ 0x739E,0x2A2D, - /* Array index: 0x0658 */ 0x73A3,0x2A2C, - /* Array index: 0x0658 */ 0x73A7,0x2A2B, - /* Array index: 0x0658 */ 0x73AA,0x2A32, - /* Array index: 0x0658 */ 0x73AF,0x2A2F, - /* Array index: 0x0658 */ 0x73BD,0x2D78, - /* Array index: 0x0658 */ 0x73C1,0x2D7B, - /* Array index: 0x0658 */ 0x73C4,0x2D77, - /* Array index: 0x0658 */ 0x73C9,0x2D7A, - /* Array index: 0x0658 */ 0x73D5,0x323E, - /* Array index: 0x0658 */ 0x73DF,0x3240, - /* Array index: 0x0658 */ 0x73E1,0x3247, - /* Array index: 0x0658 */ 0x73E2,0x323C, - /* Array index: 0x0658 */ 0x73E4,0x3246, - /* Array index: 0x0658 */ 0x73E6,0x3241, - /* Array index: 0x0658 */ 0x73EC,0x323D, - /* Array index: 0x0658 */ 0x73EF,0x6564, - /* Array index: 0x0658 */ 0x73F3,0x373D, - /* Array index: 0x0658 */ 0x73F7,0x3D38, - /* Array index: 0x0658 */ 0x73F9,0x323F, - /* Array index: 0x0658 */ 0x73FB,0x3740, - /* Array index: 0x0658 */ 0x7402,0x373C, - /* Array index: 0x0658 */ 0x7412,0x6565, - /* Array index: 0x0658 */ 0x741C,0x3D39, - /* Array index: 0x0658 */ 0x741E,0x426D, - /* Array index: 0x0658 */ 0x741F,0x3D35, - /* Array index: 0x0658 */ 0x7427,0x4264, - /* Array index: 0x0658 */ 0x7443,0x426F, - /* Array index: 0x0658 */ 0x744C,0x4273, - /* Array index: 0x0658 */ 0x7453,0x4267, - /* Array index: 0x0658 */ 0x7456,0x426B, - /* Array index: 0x0658 */ 0x7458,0x4270, - /* Array index: 0x0658 */ 0x745D,0x426A, - /* Array index: 0x0658 */ 0x7460,0x4825, - /* Array index: 0x0658 */ 0x7461,0x477E, - /* Array index: 0x0658 */ 0x7465,0x477C, - /* Array index: 0x0658 */ 0x7466,0x477D, - /* Array index: 0x0658 */ 0x7468,0x4822, - /* Array index: 0x0658 */ 0x746B,0x4821, - /* Array index: 0x0658 */ 0x746C,0x477B, - /* Array index: 0x0658 */ 0x7474,0x4827, - /* Array index: 0x0658 */ 0x7476,0x4823, - /* Array index: 0x0658 */ 0x747A,0x4D31, - /* Array index: 0x0658 */ 0x747B,0x4D3B, - /* Array index: 0x0658 */ 0x7482,0x4D39, - /* Array index: 0x0658 */ 0x7484,0x4D36, - /* Array index: 0x0658 */ 0x748C,0x4D35, - /* Array index: 0x0658 */ 0x748D,0x6568, - /* Array index: 0x0658 */ 0x7493,0x4D3A, - /* Array index: 0x0658 */ 0x7496,0x516A, - /* Array index: 0x0658 */ 0x7499,0x6375, - /* Array index: 0x0658 */ 0x749B,0x5167, - /* Array index: 0x0658 */ 0x749D,0x516C, - /* Array index: 0x0658 */ 0x74A2,0x516B, - /* Array index: 0x0658 */ 0x74A4,0x6567, - /* Array index: 0x0658 */ 0x74AC,0x554F, - /* Array index: 0x0658 */ 0x74AE,0x554B, - /* Array index: 0x0658 */ 0x74B3,0x554D, - /* Array index: 0x0658 */ 0x74B4,0x6569, - /* Array index: 0x0658 */ 0x74B9,0x582F, - /* Array index: 0x0658 */ 0x74BC,0x5830, - /* Array index: 0x0658 */ 0x74C4,0x5A5A, - /* Array index: 0x0658 */ 0x74EB,0x2E22, - /* Array index: 0x0658 */ 0x74ED,0x2E21, - /* Array index: 0x0658 */ 0x74EF,0x2E24, - /* Array index: 0x0658 */ 0x74F3,0x3248, - /* Array index: 0x0658 */ 0x74F9,0x3D3D, - /* Array index: 0x0658 */ 0x7501,0x4277, - /* Array index: 0x0658 */ 0x7506,0x4828, - /* Array index: 0x0658 */ 0x7509,0x4D3D, - /* Array index: 0x0658 */ 0x750A,0x516D, - /* Array index: 0x0658 */ 0x750E,0x516E, - /* Array index: 0x0658 */ 0x751B,0x3744, - /* Array index: 0x0658 */ 0x751E,0x4278, - /* Array index: 0x0658 */ 0x7523,0x3745, - /* Array index: 0x0658 */ 0x7524,0x3D3E, - /* Array index: 0x0658 */ 0x753B,0x2A37, - /* Array index: 0x0658 */ 0x7541,0x2A38, - /* Array index: 0x0658 */ 0x7542,0x2A35, - /* Array index: 0x0658 */ 0x7544,0x2A36, - /* Array index: 0x0658 */ 0x7546,0x2E27, - /* Array index: 0x0658 */ 0x7549,0x2E25, - /* Array index: 0x0658 */ 0x754A,0x2E28, - /* Array index: 0x0658 */ 0x754D,0x2E2A, - /* Array index: 0x0658 */ 0x7550,0x2E26, - /* Array index: 0x0658 */ 0x755E,0x3251, - /* Array index: 0x0658 */ 0x7561,0x3746, - /* Array index: 0x0658 */ 0x7567,0x3749, - /* Array index: 0x0658 */ 0x7568,0x3747, - /* Array index: 0x0658 */ 0x756D,0x3D43, - /* Array index: 0x0658 */ 0x756E,0x3D42, - /* Array index: 0x0658 */ 0x7571,0x3D44, - /* Array index: 0x0658 */ 0x757A,0x427B, - /* Array index: 0x0658 */ 0x7581,0x5170, - /* Array index: 0x0658 */ 0x7583,0x5552, - /* Array index: 0x0658 */ 0x7589,0x5C62, - /* Array index: 0x0658 */ 0x758E,0x3D45, - /* Array index: 0x0658 */ 0x7592,0x225B, - /* Array index: 0x0658 */ 0x7593,0x2673, - /* Array index: 0x0658 */ 0x759B,0x2A3A, - /* Array index: 0x0658 */ 0x759E,0x2A3B, - /* Array index: 0x0658 */ 0x75A6,0x2E2B, - /* Array index: 0x0658 */ 0x75A8,0x2E2F, - /* Array index: 0x0658 */ 0x75B1,0x3257, - /* Array index: 0x0658 */ 0x75B4,0x3255, - /* Array index: 0x0658 */ 0x75C3,0x3252, - /* Array index: 0x0658 */ 0x75D3,0x374A, - /* Array index: 0x0658 */ 0x75E5,0x3D47, - /* Array index: 0x0658 */ 0x75EE,0x427C, - /* Array index: 0x0658 */ 0x7602,0x427D, - /* Array index: 0x0658 */ 0x7607,0x482B, - /* Array index: 0x0658 */ 0x760E,0x4829, - /* Array index: 0x0658 */ 0x762C,0x5171, - /* Array index: 0x0658 */ 0x7636,0x5173, - /* Array index: 0x0658 */ 0x7637,0x5172, - /* Array index: 0x0658 */ 0x763B,0x5174, - /* Array index: 0x0658 */ 0x7644,0x5555, - /* Array index: 0x0658 */ 0x7645,0x5553, - /* Array index: 0x0658 */ 0x764E,0x5554, - /* Array index: 0x0658 */ 0x764F,0x5834, - /* Array index: 0x0658 */ 0x7651,0x5833, - /* Array index: 0x0658 */ 0x765B,0x5832, - /* Array index: 0x0658 */ 0x7667,0x5E3F, - /* Array index: 0x0658 */ 0x7668,0x5E3E, - /* Array index: 0x0658 */ 0x766F,0x603B, - /* Array index: 0x0658 */ 0x7673,0x656A, - /* Array index: 0x0658 */ 0x7676,0x225C, - /* Array index: 0x0658 */ 0x7677,0x656B, - /* Array index: 0x0658 */ 0x7680,0x2674, - /* Array index: 0x0658 */ 0x7683,0x2676, - /* Array index: 0x0658 */ 0x7690,0x374D, - /* Array index: 0x0658 */ 0x7694,0x3D4C, - /* Array index: 0x0658 */ 0x7697,0x427E, - /* Array index: 0x0658 */ 0x7698,0x4321, - /* Array index: 0x0658 */ 0x76A1,0x5176, - /* Array index: 0x0658 */ 0x76A3,0x5556, - /* Array index: 0x0658 */ 0x76A5,0x5557, - /* Array index: 0x0658 */ 0x76A9,0x5A5E, - /* Array index: 0x0658 */ 0x76B3,0x3D4D, - /* Array index: 0x0658 */ 0x76B7,0x4830, - /* Array index: 0x0658 */ 0x76B9,0x482E, - /* Array index: 0x0658 */ 0x76BC,0x656C, - /* Array index: 0x0658 */ 0x76C0,0x2677, - /* Array index: 0x0658 */ 0x76C1,0x2678, - /* Array index: 0x0658 */ 0x76C7,0x2E32, - /* Array index: 0x0658 */ 0x76CB,0x325A, - /* Array index: 0x0658 */ 0x76CC,0x325B, - /* Array index: 0x0658 */ 0x76E2,0x4831, - /* Array index: 0x0658 */ 0x76EB,0x5835, - /* Array index: 0x0658 */ 0x76FD,0x2E35, - /* Array index: 0x0658 */ 0x76FF,0x2E33, - /* Array index: 0x0658 */ 0x7706,0x626C, - /* Array index: 0x0658 */ 0x770E,0x3264, - /* Array index: 0x0658 */ 0x770F,0x325F, - /* Array index: 0x0658 */ 0x7716,0x325E, - /* Array index: 0x0658 */ 0x7718,0x3268, - /* Array index: 0x0658 */ 0x771E,0x3759, - /* Array index: 0x0658 */ 0x7721,0x3267, - /* Array index: 0x0658 */ 0x7724,0x3265, - /* Array index: 0x0658 */ 0x7726,0x3755, - /* Array index: 0x0658 */ 0x772A,0x325C, - /* Array index: 0x0658 */ 0x772B,0x3263, - /* Array index: 0x0658 */ 0x7730,0x3753, - /* Array index: 0x0658 */ 0x7748,0x3D51, - /* Array index: 0x0658 */ 0x7749,0x3D52, - /* Array index: 0x0658 */ 0x7753,0x4327, - /* Array index: 0x0658 */ 0x7758,0x4328, - /* Array index: 0x0658 */ 0x775D,0x4325, - /* Array index: 0x0658 */ 0x7764,0x4326, - /* Array index: 0x0658 */ 0x7771,0x4839, - /* Array index: 0x0658 */ 0x778A,0x4D44, - /* Array index: 0x0658 */ 0x7790,0x4D46, - /* Array index: 0x0658 */ 0x7796,0x517B, - /* Array index: 0x0658 */ 0x7798,0x5179, - /* Array index: 0x0658 */ 0x77A4,0x5559, - /* Array index: 0x0658 */ 0x77A6,0x5558, - /* Array index: 0x0658 */ 0x77A9,0x555B, - /* Array index: 0x0658 */ 0x77AF,0x555C, - /* Array index: 0x0658 */ 0x77B8,0x5836, - /* Array index: 0x0658 */ 0x77B9,0x5838, - /* Array index: 0x0658 */ 0x77BE,0x583B, - /* Array index: 0x0658 */ 0x77C0,0x583A, - /* Array index: 0x0658 */ 0x77C1,0x5839, - /* Array index: 0x0658 */ 0x77C5,0x5A60, - /* Array index: 0x0658 */ 0x77C6,0x5A5F, - /* Array index: 0x0658 */ 0x77D1,0x5E42, - /* Array index: 0x0658 */ 0x77D6,0x6432, - /* Array index: 0x0658 */ 0x77DD,0x3269, - /* Array index: 0x0658 */ 0x77DF,0x3D57, - /* Array index: 0x0658 */ 0x77E6,0x2E36, - /* Array index: 0x0658 */ 0x77F4,0x267B, - /* Array index: 0x0658 */ 0x77F5,0x267C, - /* Array index: 0x0658 */ 0x7804,0x2E39, - /* Array index: 0x0658 */ 0x7815,0x2E3D, - /* Array index: 0x0658 */ 0x7819,0x656D, - /* Array index: 0x0658 */ 0x781B,0x656E, - /* Array index: 0x0658 */ 0x781E,0x667C, - /* Array index: 0x0658 */ 0x7824,0x326C, - /* Array index: 0x0658 */ 0x7836,0x326D, - /* Array index: 0x0658 */ 0x783D,0x656F, - /* Array index: 0x0658 */ 0x7842,0x3762, - /* Array index: 0x0658 */ 0x7846,0x3763, - /* Array index: 0x0658 */ 0x7847,0x375D, - /* Array index: 0x0658 */ 0x784B,0x375F, - /* Array index: 0x0658 */ 0x784F,0x3761, - /* Array index: 0x0658 */ 0x7851,0x3760, - /* Array index: 0x0658 */ 0x7853,0x6570, - /* Array index: 0x0658 */ 0x7854,0x6571, - /* Array index: 0x0658 */ 0x7858,0x6572, - /* Array index: 0x0658 */ 0x785F,0x3D5C, - /* Array index: 0x0658 */ 0x7863,0x3D59, - /* Array index: 0x0658 */ 0x7866,0x3D5D, - /* Array index: 0x0658 */ 0x7876,0x3D5A, - /* Array index: 0x0658 */ 0x7878,0x4331, - /* Array index: 0x0658 */ 0x787A,0x432D, - /* Array index: 0x0658 */ 0x787D,0x432E, - /* Array index: 0x0658 */ 0x7881,0x4337, - /* Array index: 0x0658 */ 0x7882,0x4329, - /* Array index: 0x0658 */ 0x7888,0x4335, - /* Array index: 0x0658 */ 0x788A,0x432B, - /* Array index: 0x0658 */ 0x788B,0x4330, - /* Array index: 0x0658 */ 0x788D,0x4334, - /* Array index: 0x0658 */ 0x7890,0x432A, - /* Array index: 0x0658 */ 0x7892,0x4336, - /* Array index: 0x0658 */ 0x78A6,0x483E, - /* Array index: 0x0658 */ 0x78AE,0x483F, - /* Array index: 0x0658 */ 0x78AF,0x4845, - /* Array index: 0x0658 */ 0x78B1,0x4844, - /* Array index: 0x0658 */ 0x78B7,0x6573, - /* Array index: 0x0658 */ 0x78B8,0x4840, - /* Array index: 0x0658 */ 0x78C0,0x4D4A, - /* Array index: 0x0658 */ 0x78C2,0x4D4D, - /* Array index: 0x0658 */ 0x78C6,0x4D48, - /* Array index: 0x0658 */ 0x78C7,0x4D4C, - /* Array index: 0x0658 */ 0x78D2,0x4D4B, - /* Array index: 0x0658 */ 0x78D3,0x4D49, - /* Array index: 0x0658 */ 0x78D6,0x5221, - /* Array index: 0x0658 */ 0x78D8,0x6574, - /* Array index: 0x0658 */ 0x78DC,0x5224, - /* Array index: 0x0658 */ 0x78EB,0x5222, - /* Array index: 0x0658 */ 0x78EE,0x6575, - /* Array index: 0x0658 */ 0x78F0,0x5560, - /* Array index: 0x0658 */ 0x78F1,0x5562, - /* Array index: 0x0658 */ 0x78F8,0x5561, - /* Array index: 0x0658 */ 0x7915,0x5844, - /* Array index: 0x0658 */ 0x7918,0x5A61, - /* Array index: 0x0658 */ 0x791A,0x5A62, - /* Array index: 0x0658 */ 0x7920,0x5A63, - /* Array index: 0x0658 */ 0x7922,0x6576, - /* Array index: 0x0658 */ 0x792E,0x5E45, - /* Array index: 0x0658 */ 0x7930,0x5E43, - /* Array index: 0x0658 */ 0x7932,0x5E44, - /* Array index: 0x0658 */ 0x7937,0x603C, - /* Array index: 0x0658 */ 0x793C,0x2433, - /* Array index: 0x0658 */ 0x794D,0x6577, - /* Array index: 0x0658 */ 0x7958,0x326F, - /* Array index: 0x0658 */ 0x7959,0x3270, - /* Array index: 0x0658 */ 0x7962,0x3272, - /* Array index: 0x0658 */ 0x7966,0x3D5E, - /* Array index: 0x0658 */ 0x796C,0x3766, - /* Array index: 0x0658 */ 0x796E,0x3765, - /* Array index: 0x0658 */ 0x7971,0x3D5F, - /* Array index: 0x0658 */ 0x7975,0x3D64, - /* Array index: 0x0658 */ 0x7976,0x3D62, - /* Array index: 0x0658 */ 0x797E,0x4338, - /* Array index: 0x0658 */ 0x7980,0x433D, - /* Array index: 0x0658 */ 0x7999,0x6579, - /* Array index: 0x0658 */ 0x79A3,0x657A, - /* Array index: 0x0658 */ 0x79A5,0x5226, - /* Array index: 0x0658 */ 0x79A9,0x5227, - /* Array index: 0x0658 */ 0x79AF,0x5845, - /* Array index: 0x0658 */ 0x79B5,0x603D, - /* Array index: 0x0658 */ 0x79BC,0x657B, - /* Array index: 0x0658 */ 0x79CA,0x2A44, - /* Array index: 0x0658 */ 0x79CC,0x654C, - /* Array index: 0x0658 */ 0x79D0,0x2E42, - /* Array index: 0x0658 */ 0x79D3,0x2E40, - /* Array index: 0x0658 */ 0x79D4,0x2E41, - /* Array index: 0x0658 */ 0x79E1,0x3276, - /* Array index: 0x0658 */ 0x79E2,0x327B, - /* Array index: 0x0658 */ 0x79E5,0x3277, - /* Array index: 0x0658 */ 0x79E8,0x3278, - /* Array index: 0x0658 */ 0x79F9,0x376C, - /* Array index: 0x0658 */ 0x79FF,0x3D65, - /* Array index: 0x0658 */ 0x7A07,0x3D66, - /* Array index: 0x0658 */ 0x7A09,0x3D69, - /* Array index: 0x0658 */ 0x7A0E,0x3D68, - /* Array index: 0x0658 */ 0x7A0F,0x4341, - /* Array index: 0x0658 */ 0x7A1D,0x4344, - /* Array index: 0x0658 */ 0x7A25,0x6524, - /* Array index: 0x0658 */ 0x7A32,0x4852, - /* Array index: 0x0658 */ 0x7A38,0x4D55, - /* Array index: 0x0658 */ 0x7A3A,0x4D56, - /* Array index: 0x0658 */ 0x7A3E,0x4D5A, - /* Array index: 0x0658 */ 0x7A41,0x4D53, - /* Array index: 0x0658 */ 0x7A42,0x4D57, - /* Array index: 0x0658 */ 0x7A45,0x522A, - /* Array index: 0x0658 */ 0x7A49,0x5564, - /* Array index: 0x0658 */ 0x7A4F,0x522C, - /* Array index: 0x0658 */ 0x7A53,0x5229, - /* Array index: 0x0658 */ 0x7A64,0x5A66, - /* Array index: 0x0658 */ 0x7A66,0x5A65, - /* Array index: 0x0658 */ 0x7A6A,0x5A67, - /* Array index: 0x0658 */ 0x7A6F,0x5C64, - /* Array index: 0x0658 */ 0x7A72,0x6076, - /* Array index: 0x0658 */ 0x7A73,0x6077, - /* Array index: 0x0658 */ 0x7A7C,0x2E44, - /* Array index: 0x0658 */ 0x7A7D,0x2E47, - /* Array index: 0x0658 */ 0x7A82,0x2E49, - /* Array index: 0x0658 */ 0x7A83,0x2E48, - /* Array index: 0x0658 */ 0x7A91,0x3772, - /* Array index: 0x0658 */ 0x7A93,0x3771, - /* Array index: 0x0658 */ 0x7A9A,0x3770, - /* Array index: 0x0658 */ 0x7AA1,0x4346, - /* Array index: 0x0658 */ 0x7AA4,0x4347, - /* Array index: 0x0658 */ 0x7AA7,0x657C, - /* Array index: 0x0658 */ 0x7AB0,0x4D5B, - /* Array index: 0x0658 */ 0x7ABB,0x522F, - /* Array index: 0x0658 */ 0x7ABD,0x522E, - /* Array index: 0x0658 */ 0x7AC2,0x5568, - /* Array index: 0x0658 */ 0x7AC8,0x5E49, - /* Array index: 0x0658 */ 0x7AC9,0x5E48, - /* Array index: 0x0658 */ 0x7AE1,0x3773, - /* Array index: 0x0658 */ 0x7AE2,0x3D71, - /* Array index: 0x0658 */ 0x7AE7,0x3D70, - /* Array index: 0x0658 */ 0x7AE9,0x4349, - /* Array index: 0x0658 */ 0x7AEA,0x434A, - /* Array index: 0x0658 */ 0x7AEC,0x4854, - /* Array index: 0x0658 */ 0x7AF8,0x5F55, - /* Array index: 0x0658 */ 0x7AFC,0x2E51, - /* Array index: 0x0658 */ 0x7AFE,0x2E50, - /* Array index: 0x0658 */ 0x7B0B,0x332B, - /* Array index: 0x0658 */ 0x7B0D,0x332A, - /* Array index: 0x0658 */ 0x7B14,0x332C, - /* Array index: 0x0658 */ 0x7B16,0x3778, - /* Array index: 0x0658 */ 0x7B17,0x3779, - /* Array index: 0x0658 */ 0x7B1C,0x3777, - /* Array index: 0x0658 */ 0x7B1F,0x377B, - /* Array index: 0x0658 */ 0x7B21,0x3776, - /* Array index: 0x0658 */ 0x7B29,0x632D, - /* Array index: 0x0658 */ 0x7B36,0x377A, - /* Array index: 0x0658 */ 0x7B37,0x657D, - /* Array index: 0x0658 */ 0x7B53,0x3D79, - /* Array index: 0x0658 */ 0x7B55,0x3D72, - /* Array index: 0x0658 */ 0x7B57,0x3D76, - /* Array index: 0x0658 */ 0x7B59,0x657E, - /* Array index: 0x0658 */ 0x7B5E,0x434F, - /* Array index: 0x0658 */ 0x7B62,0x434C, - /* Array index: 0x0658 */ 0x7B68,0x4355, - /* Array index: 0x0658 */ 0x7B6B,0x434D, - /* Array index: 0x0658 */ 0x7B6C,0x3D77, - /* Array index: 0x0658 */ 0x7B6F,0x4354, - /* Array index: 0x0658 */ 0x7B79,0x4351, - /* Array index: 0x0658 */ 0x7B81,0x4856, - /* Array index: 0x0658 */ 0x7B83,0x4858, - /* Array index: 0x0658 */ 0x7B86,0x4860, - /* Array index: 0x0658 */ 0x7B92,0x485A, - /* Array index: 0x0658 */ 0x7B93,0x485E, - /* Array index: 0x0658 */ 0x7B9E,0x4857, - /* Array index: 0x0658 */ 0x7B9F,0x485D, - /* Array index: 0x0658 */ 0x7BA3,0x485C, - /* Array index: 0x0658 */ 0x7BAE,0x4D5C, - /* Array index: 0x0658 */ 0x7BB2,0x4D65, - /* Array index: 0x0658 */ 0x7BB3,0x4D5D, - /* Array index: 0x0658 */ 0x7BBF,0x4D60, - /* Array index: 0x0658 */ 0x7BC2,0x6367, - /* Array index: 0x0658 */ 0x7BC3,0x6366, - /* Array index: 0x0658 */ 0x7BCD,0x4D63, - /* Array index: 0x0658 */ 0x7BD0,0x6621, - /* Array index: 0x0658 */ 0x7BEC,0x5233, - /* Array index: 0x0658 */ 0x7BED,0x5234, - /* Array index: 0x0658 */ 0x7BF6,0x556D, - /* Array index: 0x0658 */ 0x7BFA,0x556B, - /* Array index: 0x0658 */ 0x7BFC,0x556E, - /* Array index: 0x0658 */ 0x7C08,0x5570, - /* Array index: 0x0658 */ 0x7C12,0x5571, - /* Array index: 0x0658 */ 0x7C18,0x556F, - /* Array index: 0x0658 */ 0x7C1A,0x5850, - /* Array index: 0x0658 */ 0x7C1B,0x584E, - /* Array index: 0x0658 */ 0x7C24,0x5851, - /* Array index: 0x0658 */ 0x7C2E,0x584C, - /* Array index: 0x0658 */ 0x7C2F,0x6622, - /* Array index: 0x0658 */ 0x7C32,0x6623, - /* Array index: 0x0658 */ 0x7C34,0x5A6F, - /* Array index: 0x0658 */ 0x7C35,0x5A6E, - /* Array index: 0x0658 */ 0x7C42,0x6624, - /* Array index: 0x0658 */ 0x7C44,0x5C66, - /* Array index: 0x0658 */ 0x7C4B,0x5C65, - /* Array index: 0x0658 */ 0x7C4E,0x6625, - /* Array index: 0x0658 */ 0x7C51,0x5E4C, - /* Array index: 0x0658 */ 0x7C56,0x5E4B, - /* Array index: 0x0658 */ 0x7C58,0x5F58, - /* Array index: 0x0658 */ 0x7C5D,0x5F57, - /* Array index: 0x0658 */ 0x7C5E,0x603F, - /* Array index: 0x0658 */ 0x7C62,0x603E, - /* Array index: 0x0658 */ 0x7C68,0x6626, - /* Array index: 0x0658 */ 0x7C6D,0x6144, - /* Array index: 0x0658 */ 0x7C71,0x623A, - /* Array index: 0x0658 */ 0x7C74,0x2A49, - /* Array index: 0x0658 */ 0x7C76,0x2A48, - /* Array index: 0x0658 */ 0x7C77,0x2E52, - /* Array index: 0x0658 */ 0x7C7B,0x2E54, - /* Array index: 0x0658 */ 0x7C7C,0x2E53, - /* Array index: 0x0658 */ 0x7C83,0x3331, - /* Array index: 0x0658 */ 0x7C86,0x332E, - /* Array index: 0x0658 */ 0x7C87,0x3330, - /* Array index: 0x0658 */ 0x7C8B,0x3332, - /* Array index: 0x0658 */ 0x7C8E,0x332D, - /* Array index: 0x0658 */ 0x7C93,0x377D, - /* Array index: 0x0658 */ 0x7CA0,0x3E21, - /* Array index: 0x0658 */ 0x7CA4,0x3E23, - /* Array index: 0x0658 */ 0x7CA6,0x3E22, - /* Array index: 0x0658 */ 0x7CA7,0x3D7E, - /* Array index: 0x0658 */ 0x7CA9,0x6627, - /* Array index: 0x0658 */ 0x7CAE,0x4358, - /* Array index: 0x0658 */ 0x7CB0,0x435C, - /* Array index: 0x0658 */ 0x7CB7,0x4862, - /* Array index: 0x0658 */ 0x7CB8,0x4861, - /* Array index: 0x0658 */ 0x7CCD,0x4D6E, - /* Array index: 0x0658 */ 0x7CD3,0x5237, - /* Array index: 0x0658 */ 0x7CDA,0x5575, - /* Array index: 0x0658 */ 0x7CDB,0x5574, - /* Array index: 0x0658 */ 0x7CE1,0x5239, - /* Array index: 0x0658 */ 0x7CE3,0x5855, - /* Array index: 0x0658 */ 0x7CE6,0x5854, - /* Array index: 0x0658 */ 0x7CED,0x6628, - /* Array index: 0x0658 */ 0x7CF3,0x6169, - /* Array index: 0x0658 */ 0x7CF5,0x6040, - /* Array index: 0x0658 */ 0x7CFA,0x2722, - /* Array index: 0x0658 */ 0x7CFC,0x2A4B, - /* Array index: 0x0658 */ 0x7CFF,0x2A4A, - /* Array index: 0x0658 */ 0x7D24,0x3337, - /* Array index: 0x0658 */ 0x7D25,0x333B, - /* Array index: 0x0658 */ 0x7D2D,0x3829, - /* Array index: 0x0658 */ 0x7D34,0x3826, - /* Array index: 0x0658 */ 0x7D37,0x3827, - /* Array index: 0x0658 */ 0x7D48,0x382E, - /* Array index: 0x0658 */ 0x7D49,0x3824, - /* Array index: 0x0658 */ 0x7D4C,0x382B, - /* Array index: 0x0658 */ 0x7D4D,0x3E34, - /* Array index: 0x0658 */ 0x7D57,0x3E29, - /* Array index: 0x0658 */ 0x7D59,0x3E26, - /* Array index: 0x0658 */ 0x7D5A,0x3E2E, - /* Array index: 0x0658 */ 0x7D5D,0x3E2F, - /* Array index: 0x0658 */ 0x7D60,0x3E28, - /* Array index: 0x0658 */ 0x7D64,0x3E2C, - /* Array index: 0x0658 */ 0x7D6C,0x3E2A, - /* Array index: 0x0658 */ 0x7D7E,0x3E2B, - /* Array index: 0x0658 */ 0x7D90,0x435E, - /* Array index: 0x0658 */ 0x7DA4,0x4874, - /* Array index: 0x0658 */ 0x7DA8,0x486D, - /* Array index: 0x0658 */ 0x7DAB,0x486E, - /* Array index: 0x0658 */ 0x7DB3,0x4870, - /* Array index: 0x0658 */ 0x7DB6,0x4869, - /* Array index: 0x0658 */ 0x7DC8,0x4868, - /* Array index: 0x0658 */ 0x7DD6,0x4E22, - /* Array index: 0x0658 */ 0x7DDC,0x4D7C, - /* Array index: 0x0658 */ 0x7DE2,0x4D78, - /* Array index: 0x0658 */ 0x7DE4,0x4E24, - /* Array index: 0x0658 */ 0x7DE5,0x4E2F, - /* Array index: 0x0658 */ 0x7DEB,0x4E2E, - /* Array index: 0x0658 */ 0x7DED,0x4D77, - /* Array index: 0x0658 */ 0x7DF5,0x4E2B, - /* Array index: 0x0658 */ 0x7DF8,0x4D75, - /* Array index: 0x0658 */ 0x7E07,0x662A, - /* Array index: 0x0658 */ 0x7E19,0x523B, - /* Array index: 0x0658 */ 0x7E26,0x5240, - /* Array index: 0x0658 */ 0x7E27,0x523F, - /* Array index: 0x0658 */ 0x7E2C,0x5579, - /* Array index: 0x0658 */ 0x7E4D,0x557A, - /* Array index: 0x0658 */ 0x7E4F,0x5859, - /* Array index: 0x0658 */ 0x7E5B,0x585B, - /* Array index: 0x0658 */ 0x7E5D,0x5858, - /* Array index: 0x0658 */ 0x7E64,0x662C, - /* Array index: 0x0658 */ 0x7E66,0x585A, - /* Array index: 0x0658 */ 0x7E6C,0x5A72, - /* Array index: 0x0658 */ 0x7E6E,0x5A74, - /* Array index: 0x0658 */ 0x7E71,0x5A75, - /* Array index: 0x0658 */ 0x7E7F,0x5C6C, - /* Array index: 0x0658 */ 0x7E84,0x5E53, - /* Array index: 0x0658 */ 0x7E85,0x5E50, - /* Array index: 0x0658 */ 0x7E89,0x5E51, - /* Array index: 0x0658 */ 0x7E8E,0x5E52, - /* Array index: 0x0658 */ 0x7E92,0x5F5A, - /* Array index: 0x0658 */ 0x7E9E,0x6235, - /* Array index: 0x0658 */ 0x7F3B,0x3831, - /* Array index: 0x0658 */ 0x7F40,0x662D, - /* Array index: 0x0658 */ 0x7F41,0x4877, - /* Array index: 0x0658 */ 0x7F46,0x557D, - /* Array index: 0x0658 */ 0x7F47,0x585C, - /* Array index: 0x0658 */ 0x7F4E,0x5F5B, - /* Array index: 0x0658 */ 0x7F59,0x2A4E, - /* Array index: 0x0658 */ 0x7F62,0x333C, - /* Array index: 0x0658 */ 0x7F6F,0x4878, - /* Array index: 0x0658 */ 0x7F71,0x4879, - /* Array index: 0x0658 */ 0x7F78,0x4E30, - /* Array index: 0x0658 */ 0x7F84,0x6422, - /* Array index: 0x0658 */ 0x7F8F,0x2E5D, - /* Array index: 0x0658 */ 0x7F93,0x333D, - /* Array index: 0x0658 */ 0x7F97,0x333F, - /* Array index: 0x0658 */ 0x7F99,0x333E, - /* Array index: 0x0658 */ 0x7FA3,0x436E, - /* Array index: 0x0658 */ 0x7FAE,0x4E31, - /* Array index: 0x0658 */ 0x7FB4,0x585D, - /* Array index: 0x0658 */ 0x7FC4,0x3342, - /* Array index: 0x0658 */ 0x7FC6,0x3343, - /* Array index: 0x0658 */ 0x7FD3,0x3E37, - /* Array index: 0x0658 */ 0x7FD6,0x3E38, - /* Array index: 0x0658 */ 0x7FDD,0x4372, - /* Array index: 0x0658 */ 0x7FE7,0x4E32, - /* Array index: 0x0658 */ 0x7FF6,0x557E, - /* Array index: 0x0658 */ 0x7FFA,0x5861, - /* Array index: 0x0658 */ 0x8002,0x667B, - /* Array index: 0x0658 */ 0x8008,0x3836, - /* Array index: 0x0658 */ 0x800A,0x3344, - /* Array index: 0x0658 */ 0x801A,0x3837, - /* Array index: 0x0658 */ 0x801D,0x3839, - /* Array index: 0x0658 */ 0x8023,0x4922, - /* Array index: 0x0658 */ 0x802B,0x5621, - /* Array index: 0x0658 */ 0x802E,0x5862, - /* Array index: 0x0658 */ 0x802F,0x5C6F, - /* Array index: 0x0658 */ 0x803B,0x3349, - /* Array index: 0x0658 */ 0x803C,0x3348, - /* Array index: 0x0658 */ 0x8040,0x3347, - /* Array index: 0x0658 */ 0x8041,0x662F, - /* Array index: 0x0658 */ 0x8044,0x383D, - /* Array index: 0x0658 */ 0x8045,0x383C, - /* Array index: 0x0658 */ 0x8049,0x383B, - /* Array index: 0x0658 */ 0x804E,0x3E3C, - /* Array index: 0x0658 */ 0x8053,0x6729, - /* Array index: 0x0658 */ 0x8057,0x4373, - /* Array index: 0x0658 */ 0x8059,0x6356, - /* Array index: 0x0658 */ 0x805B,0x4923, - /* Array index: 0x0658 */ 0x806E,0x5243, - /* Array index: 0x0658 */ 0x8074,0x5622, - /* Array index: 0x0658 */ 0x808D,0x2435, - /* Array index: 0x0658 */ 0x808E,0x2436, - /* Array index: 0x0658 */ 0x8091,0x2724, - /* Array index: 0x0658 */ 0x8094,0x2726, - /* Array index: 0x0658 */ 0x8097,0x2725, - /* Array index: 0x0658 */ 0x809F,0x2723, - /* Array index: 0x0658 */ 0x80AC,0x2A59, - /* Array index: 0x0658 */ 0x80B0,0x2A52, - /* Array index: 0x0658 */ 0x80B3,0x2A54, - /* Array index: 0x0658 */ 0x80B6,0x2A57, - /* Array index: 0x0658 */ 0x80BB,0x6631, - /* Array index: 0x0658 */ 0x80C6,0x2E66, - /* Array index: 0x0658 */ 0x80CB,0x2E60, - /* Array index: 0x0658 */ 0x80D2,0x2E61, - /* Array index: 0x0658 */ 0x80D3,0x2E5E, - /* Array index: 0x0658 */ 0x80DF,0x2E65, - /* Array index: 0x0658 */ 0x80E2,0x2E64, - /* Array index: 0x0658 */ 0x80EE,0x334C, - /* Array index: 0x0658 */ 0x80F6,0x334A, - /* Array index: 0x0658 */ 0x80F7,0x3352, - /* Array index: 0x0658 */ 0x80FF,0x334B, - /* Array index: 0x0658 */ 0x8103,0x334E, - /* Array index: 0x0658 */ 0x8104,0x334D, - /* Array index: 0x0658 */ 0x8107,0x334F, - /* Array index: 0x0658 */ 0x8109,0x2E63, - /* Array index: 0x0658 */ 0x8114,0x3E44, - /* Array index: 0x0658 */ 0x8117,0x3849, - /* Array index: 0x0658 */ 0x811A,0x3847, - /* Array index: 0x0658 */ 0x8128,0x632E, - /* Array index: 0x0658 */ 0x812A,0x3841, - /* Array index: 0x0658 */ 0x812E,0x3842, - /* Array index: 0x0658 */ 0x8131,0x3845, - /* Array index: 0x0658 */ 0x8134,0x3848, - /* Array index: 0x0658 */ 0x813B,0x3E3E, - /* Array index: 0x0658 */ 0x8145,0x3E3D, - /* Array index: 0x0658 */ 0x8148,0x3E40, - /* Array index: 0x0658 */ 0x8149,0x3E42, - /* Array index: 0x0658 */ 0x815D,0x437B, - /* Array index: 0x0658 */ 0x815F,0x437E, - /* Array index: 0x0658 */ 0x8163,0x4375, - /* Array index: 0x0658 */ 0x816A,0x4376, - /* Array index: 0x0658 */ 0x816C,0x4377, - /* Array index: 0x0658 */ 0x816D,0x4423, - /* Array index: 0x0658 */ 0x8175,0x437C, - /* Array index: 0x0658 */ 0x817D,0x4422, - /* Array index: 0x0658 */ 0x8181,0x4927, - /* Array index: 0x0658 */ 0x8184,0x492A, - /* Array index: 0x0658 */ 0x81A1,0x4E3A, - /* Array index: 0x0658 */ 0x81AA,0x5249, - /* Array index: 0x0658 */ 0x81AD,0x5247, - /* Array index: 0x0658 */ 0x81AF,0x5244, - /* Array index: 0x0658 */ 0x81B8,0x5623, - /* Array index: 0x0658 */ 0x81C8,0x5624, - /* Array index: 0x0658 */ 0x81CE,0x5865, - /* Array index: 0x0658 */ 0x81D4,0x5A77, - /* Array index: 0x0658 */ 0x81D6,0x5A78, - /* Array index: 0x0658 */ 0x81EF,0x3E47, - /* Array index: 0x0658 */ 0x81F6,0x3E48, - /* Array index: 0x0658 */ 0x8203,0x3E49, - /* Array index: 0x0658 */ 0x820E,0x2A5D, - /* Array index: 0x0658 */ 0x8213,0x492B, - /* Array index: 0x0658 */ 0x8224,0x2E68, - /* Array index: 0x0658 */ 0x8227,0x3357, - /* Array index: 0x0658 */ 0x8229,0x3358, - /* Array index: 0x0658 */ 0x822D,0x3355, - /* Array index: 0x0658 */ 0x8241,0x4426, - /* Array index: 0x0658 */ 0x8248,0x6634, - /* Array index: 0x0658 */ 0x824A,0x492D, - /* Array index: 0x0658 */ 0x824C,0x492E, - /* Array index: 0x0658 */ 0x8262,0x5A7A, - /* Array index: 0x0658 */ 0x8265,0x5A7B, - /* Array index: 0x0658 */ 0x826A,0x5E55, - /* Array index: 0x0658 */ 0x8276,0x5A7C, - /* Array index: 0x0658 */ 0x827B,0x2438, - /* Array index: 0x0658 */ 0x8286,0x2728, - /* Array index: 0x0658 */ 0x828C,0x2729, - /* Array index: 0x0658 */ 0x8295,0x272B, - /* Array index: 0x0658 */ 0x829C,0x2A60, - /* Array index: 0x0658 */ 0x82A6,0x2A6B, - /* Array index: 0x0658 */ 0x82AA,0x2A66, - /* Array index: 0x0658 */ 0x82B2,0x2A6C, - /* Array index: 0x0658 */ 0x82C4,0x2A5E, - /* Array index: 0x0658 */ 0x82C9,0x2A68, - /* Array index: 0x0658 */ 0x82D0,0x2E76, - /* Array index: 0x0658 */ 0x82D8,0x2E6A, - /* Array index: 0x0658 */ 0x82DD,0x2E6B, - /* Array index: 0x0658 */ 0x82E2,0x2E78, - /* Array index: 0x0658 */ 0x82E9,0x2E72, - /* Array index: 0x0658 */ 0x82EE,0x2E74, - /* Array index: 0x0658 */ 0x82F7,0x2E69, - /* Array index: 0x0658 */ 0x82F8,0x2E6E, - /* Array index: 0x0658 */ 0x82FC,0x2E6F, - /* Array index: 0x0658 */ 0x82FD,0x2E7A, - /* Array index: 0x0658 */ 0x830B,0x2E79, - /* Array index: 0x0658 */ 0x830E,0x2E77, - /* Array index: 0x0658 */ 0x8310,0x6635, - /* Array index: 0x0658 */ 0x8312,0x6637, - /* Array index: 0x0658 */ 0x8318,0x3362, - /* Array index: 0x0658 */ 0x831D,0x384D, - /* Array index: 0x0658 */ 0x831F,0x3359, - /* Array index: 0x0658 */ 0x8321,0x335F, - /* Array index: 0x0658 */ 0x8323,0x385B, - /* Array index: 0x0658 */ 0x833E,0x2A5F, - /* Array index: 0x0658 */ 0x8346,0x3E57, - /* Array index: 0x0658 */ 0x8357,0x335A, - /* Array index: 0x0658 */ 0x8358,0x3363, - /* Array index: 0x0658 */ 0x8362,0x6636, - /* Array index: 0x0658 */ 0x8363,0x2D33, - /* Array index: 0x0658 */ 0x8371,0x384E, - /* Array index: 0x0658 */ 0x8372,0x3851, - /* Array index: 0x0658 */ 0x8379,0x3854, - /* Array index: 0x0658 */ 0x8380,0x3850, - /* Array index: 0x0658 */ 0x8384,0x384F, - /* Array index: 0x0658 */ 0x8385,0x385D, - /* Array index: 0x0658 */ 0x8391,0x3855, - /* Array index: 0x0658 */ 0x839C,0x385E, - /* Array index: 0x0658 */ 0x839F,0x3857, - /* Array index: 0x0658 */ 0x83A1,0x3852, - /* Array index: 0x0658 */ 0x83AD,0x3858, - /* Array index: 0x0658 */ 0x83B7,0x385F, - /* Array index: 0x0658 */ 0x83CD,0x3E5E, - /* Array index: 0x0658 */ 0x83D2,0x3E4F, - /* Array index: 0x0658 */ 0x83D3,0x3E59, - /* Array index: 0x0658 */ 0x83DA,0x3E4D, - /* Array index: 0x0658 */ 0x83E6,0x3E5F, - /* Array index: 0x0658 */ 0x83ED,0x3E4B, - /* Array index: 0x0658 */ 0x8400,0x3E52, - /* Array index: 0x0658 */ 0x8402,0x3E5C, - /* Array index: 0x0658 */ 0x8405,0x3E5A, - /* Array index: 0x0658 */ 0x8408,0x3E50, - /* Array index: 0x0658 */ 0x841E,0x6639, - /* Array index: 0x0658 */ 0x841F,0x3E5B, - /* Array index: 0x0658 */ 0x8421,0x6638, - /* Array index: 0x0658 */ 0x842A,0x442D, - /* Array index: 0x0658 */ 0x842E,0x4431, - /* Array index: 0x0658 */ 0x843E,0x443A, - /* Array index: 0x0658 */ 0x8441,0x4435, - /* Array index: 0x0658 */ 0x8448,0x442C, - /* Array index: 0x0658 */ 0x844A,0x443E, - /* Array index: 0x0658 */ 0x844F,0x4427, - /* Array index: 0x0658 */ 0x8453,0x4433, - /* Array index: 0x0658 */ 0x8455,0x443F, - /* Array index: 0x0658 */ 0x8458,0x4440, - /* Array index: 0x0658 */ 0x845C,0x4432, - /* Array index: 0x0658 */ 0x8462,0x4438, - /* Array index: 0x0658 */ 0x8464,0x4430, - /* Array index: 0x0658 */ 0x8471,0x443C, - /* Array index: 0x0658 */ 0x8472,0x442F, - /* Array index: 0x0658 */ 0x847B,0x442E, - /* Array index: 0x0658 */ 0x847F,0x442A, - /* Array index: 0x0658 */ 0x8480,0x4439, - /* Array index: 0x0658 */ 0x8483,0x443B, - /* Array index: 0x0658 */ 0x8484,0x4428, - /* Array index: 0x0658 */ 0x84A3,0x493C, - /* Array index: 0x0658 */ 0x84A5,0x4939, - /* Array index: 0x0658 */ 0x84AD,0x4942, - /* Array index: 0x0658 */ 0x84B3,0x493B, - /* Array index: 0x0658 */ 0x84B5,0x493A, - /* Array index: 0x0658 */ 0x84B7,0x4941, - /* Array index: 0x0658 */ 0x84BD,0x4932, - /* Array index: 0x0658 */ 0x84C3,0x4936, - /* Array index: 0x0658 */ 0x84C8,0x4436, - /* Array index: 0x0658 */ 0x84D5,0x493F, - /* Array index: 0x0658 */ 0x84D8,0x493E, - /* Array index: 0x0658 */ 0x84DA,0x4943, - /* Array index: 0x0658 */ 0x84DE,0x663B, - /* Array index: 0x0658 */ 0x84E1,0x663C, - /* Array index: 0x0658 */ 0x84E2,0x663A, - /* Array index: 0x0658 */ 0x84E4,0x493D, - /* Array index: 0x0658 */ 0x84ED,0x4E4F, - /* Array index: 0x0658 */ 0x84F5,0x4E44, - /* Array index: 0x0658 */ 0x84F8,0x4E42, - /* Array index: 0x0658 */ 0x851B,0x4E4B, - /* Array index: 0x0658 */ 0x853F,0x525A, - /* Array index: 0x0658 */ 0x8542,0x5252, - /* Array index: 0x0658 */ 0x854B,0x5259, - /* Array index: 0x0658 */ 0x854C,0x5250, - /* Array index: 0x0658 */ 0x855A,0x5258, - /* Array index: 0x0658 */ 0x855C,0x5254, - /* Array index: 0x0658 */ 0x855F,0x5256, - /* Array index: 0x0658 */ 0x856F,0x524F, - /* Array index: 0x0658 */ 0x8570,0x5255, - /* Array index: 0x0658 */ 0x8573,0x663D, - /* Array index: 0x0658 */ 0x857F,0x562B, - /* Array index: 0x0658 */ 0x8592,0x5628, - /* Array index: 0x0658 */ 0x8593,0x5629, - /* Array index: 0x0658 */ 0x8597,0x562D, - /* Array index: 0x0658 */ 0x85AB,0x562C, - /* Array index: 0x0658 */ 0x85AC,0x5630, - /* Array index: 0x0658 */ 0x85B2,0x586C, - /* Array index: 0x0658 */ 0x85BB,0x586E, - /* Array index: 0x0658 */ 0x85C1,0x586F, - /* Array index: 0x0658 */ 0x85CC,0x586B, - /* Array index: 0x0658 */ 0x85D4,0x663E, - /* Array index: 0x0658 */ 0x85D6,0x5A7E, - /* Array index: 0x0658 */ 0x85DB,0x5A7D, - /* Array index: 0x0658 */ 0x85E7,0x5B22, - /* Array index: 0x0658 */ 0x85EE,0x5C7B, - /* Array index: 0x0658 */ 0x85F4,0x5B25, - /* Array index: 0x0658 */ 0x85F5,0x663F, - /* Array index: 0x0658 */ 0x85FC,0x5C76, - /* Array index: 0x0658 */ 0x8602,0x5C78, - /* Array index: 0x0658 */ 0x8603,0x5C7C, - /* Array index: 0x0658 */ 0x8608,0x5D22, - /* Array index: 0x0658 */ 0x860D,0x5C7E, - /* Array index: 0x0658 */ 0x860F,0x5D23, - /* Array index: 0x0658 */ 0x8610,0x5C77, - /* Array index: 0x0658 */ 0x8613,0x5D21, - /* Array index: 0x0658 */ 0x8615,0x5E5B, - /* Array index: 0x0658 */ 0x8616,0x5E5A, - /* Array index: 0x0658 */ 0x861D,0x5E5C, - /* Array index: 0x0658 */ 0x8628,0x5E58, - /* Array index: 0x0658 */ 0x862B,0x5E56, - /* Array index: 0x0658 */ 0x862F,0x5E57, - /* Array index: 0x0658 */ 0x8637,0x6640, - /* Array index: 0x0658 */ 0x863D,0x6043, - /* Array index: 0x0658 */ 0x8641,0x602F, - /* Array index: 0x0658 */ 0x8642,0x6146, - /* Array index: 0x0658 */ 0x8645,0x6641, - /* Array index: 0x0658 */ 0x8649,0x6147, - /* Array index: 0x0658 */ 0x864A,0x617C, - /* Array index: 0x0658 */ 0x8657,0x3863, - /* Array index: 0x0658 */ 0x8658,0x3860, - /* Array index: 0x0658 */ 0x865A,0x3861, - /* Array index: 0x0658 */ 0x865D,0x3E61, - /* Array index: 0x0658 */ 0x866C,0x272D, - /* Array index: 0x0658 */ 0x8672,0x6642, - /* Array index: 0x0658 */ 0x8675,0x2F23, - /* Array index: 0x0658 */ 0x8676,0x2E7C, - /* Array index: 0x0658 */ 0x8678,0x2E7E, - /* Array index: 0x0658 */ 0x867D,0x2F24, - /* Array index: 0x0658 */ 0x8684,0x3369, - /* Array index: 0x0658 */ 0x8689,0x336C, - /* Array index: 0x0658 */ 0x868F,0x336F, - /* Array index: 0x0658 */ 0x8692,0x336E, - /* Array index: 0x0658 */ 0x869B,0x336B, - /* Array index: 0x0658 */ 0x869F,0x336A, - /* Array index: 0x0658 */ 0x86A0,0x3370, - /* Array index: 0x0658 */ 0x86A6,0x336D, - /* Array index: 0x0658 */ 0x86AE,0x3866, - /* Array index: 0x0658 */ 0x86B2,0x3864, - /* Array index: 0x0658 */ 0x86D5,0x3E62, - /* Array index: 0x0658 */ 0x86E1,0x3E63, - /* Array index: 0x0658 */ 0x86EE,0x3E68, - /* Array index: 0x0658 */ 0x86FC,0x4444, - /* Array index: 0x0658 */ 0x86FD,0x4445, - /* Array index: 0x0658 */ 0x86FF,0x4449, - /* Array index: 0x0658 */ 0x8715,0x4446, - /* Array index: 0x0658 */ 0x8716,0x4448, - /* Array index: 0x0658 */ 0x871D,0x494F, - /* Array index: 0x0658 */ 0x872B,0x494A, - /* Array index: 0x0658 */ 0x8736,0x4945, - /* Array index: 0x0658 */ 0x8739,0x494C, - /* Array index: 0x0658 */ 0x873D,0x4949, - /* Array index: 0x0658 */ 0x8745,0x494E, - /* Array index: 0x0658 */ 0x8747,0x494B, - /* Array index: 0x0658 */ 0x874A,0x6643, - /* Array index: 0x0658 */ 0x8771,0x4E5D, - /* Array index: 0x0658 */ 0x877D,0x4E59, - /* Array index: 0x0658 */ 0x878A,0x525B, - /* Array index: 0x0658 */ 0x878B,0x525D, - /* Array index: 0x0658 */ 0x878E,0x525F, - /* Array index: 0x0658 */ 0x8799,0x5262, - /* Array index: 0x0658 */ 0x87A1,0x525E, - /* Array index: 0x0658 */ 0x87A5,0x6645, - /* Array index: 0x0658 */ 0x87A9,0x6644, - /* Array index: 0x0658 */ 0x87B1,0x563A, - /* Array index: 0x0658 */ 0x87C1,0x5639, - /* Array index: 0x0658 */ 0x87C7,0x563B, - /* Array index: 0x0658 */ 0x87CD,0x5636, - /* Array index: 0x0658 */ 0x87CE,0x5634, - /* Array index: 0x0658 */ 0x87D5,0x5B28, - /* Array index: 0x0658 */ 0x87D6,0x5876, - /* Array index: 0x0658 */ 0x87DA,0x5878, - /* Array index: 0x0658 */ 0x87E9,0x5873, - /* Array index: 0x0658 */ 0x87EE,0x5874, - /* Array index: 0x0658 */ 0x87F0,0x5875, - /* Array index: 0x0658 */ 0x87F5,0x6646, - /* Array index: 0x0658 */ 0x87F8,0x5B2C, - /* Array index: 0x0658 */ 0x87FD,0x5B27, - /* Array index: 0x0658 */ 0x8807,0x5B29, - /* Array index: 0x0658 */ 0x880E,0x5877, - /* Array index: 0x0658 */ 0x880F,0x5B2B, - /* Array index: 0x0658 */ 0x8812,0x5D25, - /* Array index: 0x0658 */ 0x8818,0x5D24, - /* Array index: 0x0658 */ 0x881A,0x5E5D, - /* Array index: 0x0658 */ 0x8827,0x5F5F, - /* Array index: 0x0658 */ 0x882D,0x6045, - /* Array index: 0x0658 */ 0x8834,0x6647, - /* Array index: 0x0658 */ 0x8842,0x2F26, - /* Array index: 0x0658 */ 0x884F,0x3371, - /* Array index: 0x0658 */ 0x8850,0x6648, - /* Array index: 0x0658 */ 0x8858,0x444D, - /* Array index: 0x0658 */ 0x885C,0x4E5F, - /* Array index: 0x0658 */ 0x885E,0x5263, - /* Array index: 0x0658 */ 0x885F,0x5264, - /* Array index: 0x0658 */ 0x8866,0x2F27, - /* Array index: 0x0658 */ 0x886E,0x3374, - /* Array index: 0x0658 */ 0x8873,0x3377, - /* Array index: 0x0658 */ 0x8878,0x3372, - /* Array index: 0x0658 */ 0x887A,0x3373, - /* Array index: 0x0658 */ 0x887B,0x3375, - /* Array index: 0x0658 */ 0x8884,0x3376, - /* Array index: 0x0658 */ 0x8887,0x6649, - /* Array index: 0x0658 */ 0x888A,0x3872, - /* Array index: 0x0658 */ 0x888F,0x386E, - /* Array index: 0x0658 */ 0x8890,0x3874, - /* Array index: 0x0658 */ 0x8894,0x386C, - /* Array index: 0x0658 */ 0x889C,0x386B, - /* Array index: 0x0658 */ 0x88A0,0x3873, - /* Array index: 0x0658 */ 0x88A3,0x386D, - /* Array index: 0x0658 */ 0x88A5,0x386F, - /* Array index: 0x0658 */ 0x88A6,0x3871, - /* Array index: 0x0658 */ 0x88A9,0x3870, - /* Array index: 0x0658 */ 0x88B4,0x3E70, - /* Array index: 0x0658 */ 0x88B5,0x3E72, - /* Array index: 0x0658 */ 0x88BB,0x3E6D, - /* Array index: 0x0658 */ 0x88BF,0x3E6F, - /* Array index: 0x0658 */ 0x88CF,0x444E, - /* Array index: 0x0658 */ 0x88E0,0x444F, - /* Array index: 0x0658 */ 0x88E6,0x4E60, - /* Array index: 0x0658 */ 0x88E9,0x4959, - /* Array index: 0x0658 */ 0x88EA,0x4952, - /* Array index: 0x0658 */ 0x88ED,0x4957, - /* Array index: 0x0658 */ 0x88F5,0x4954, - /* Array index: 0x0658 */ 0x88FF,0x4951, - /* Array index: 0x0658 */ 0x8900,0x4956, - /* Array index: 0x0658 */ 0x8903,0x4958, - /* Array index: 0x0658 */ 0x890F,0x4E61, - /* Array index: 0x0658 */ 0x891B,0x4E62, - /* Array index: 0x0658 */ 0x8924,0x5265, - /* Array index: 0x0658 */ 0x8939,0x5640, - /* Array index: 0x0658 */ 0x893F,0x563F, - /* Array index: 0x0658 */ 0x8940,0x563D, - /* Array index: 0x0658 */ 0x8943,0x5642, - /* Array index: 0x0658 */ 0x8948,0x5879, - /* Array index: 0x0658 */ 0x894A,0x587A, - /* Array index: 0x0658 */ 0x894D,0x587C, - /* Array index: 0x0658 */ 0x894E,0x587B, - /* Array index: 0x0658 */ 0x8954,0x664A, - /* Array index: 0x0658 */ 0x8965,0x5D29, - /* Array index: 0x0658 */ 0x8967,0x5D28, - /* Array index: 0x0658 */ 0x8978,0x6149, - /* Array index: 0x0658 */ 0x897D,0x617D, - /* Array index: 0x0658 */ 0x8984,0x664B, - /* Array index: 0x0658 */ 0x8987,0x5B2F, - /* Array index: 0x0658 */ 0x8989,0x6046, - /* Array index: 0x0658 */ 0x898A,0x614A, - /* Array index: 0x0658 */ 0x898C,0x2F29, - /* Array index: 0x0658 */ 0x8991,0x3876, - /* Array index: 0x0658 */ 0x8992,0x3875, - /* Array index: 0x0658 */ 0x8994,0x3877, - /* Array index: 0x0658 */ 0x899A,0x3E74, - /* Array index: 0x0658 */ 0x89A5,0x4E65, - /* Array index: 0x0658 */ 0x89A7,0x5266, - /* Array index: 0x0658 */ 0x89A9,0x4E64, - /* Array index: 0x0658 */ 0x89AB,0x5646, - /* Array index: 0x0658 */ 0x89B0,0x587E, - /* Array index: 0x0658 */ 0x89B1,0x587D, - /* Array index: 0x0658 */ 0x89B3,0x5921, - /* Array index: 0x0658 */ 0x89B5,0x5B31, - /* Array index: 0x0658 */ 0x89BB,0x5D2A, - /* Array index: 0x0658 */ 0x89BC,0x5E61, - /* Array index: 0x0658 */ 0x89E7,0x4454, - /* Array index: 0x0658 */ 0x89EA,0x495C, - /* Array index: 0x0658 */ 0x89EE,0x4E66, - /* Array index: 0x0658 */ 0x89F5,0x5B32, - /* Array index: 0x0658 */ 0x8A05,0x2F2A, - /* Array index: 0x0658 */ 0x8A06,0x2F2C, - /* Array index: 0x0658 */ 0x8A0B,0x337B, - /* Array index: 0x0658 */ 0x8A0D,0x337A, - /* Array index: 0x0658 */ 0x8A19,0x337C, - /* Array index: 0x0658 */ 0x8A1C,0x387E, - /* Array index: 0x0658 */ 0x8A20,0x3923, - /* Array index: 0x0658 */ 0x8A21,0x3929, - /* Array index: 0x0658 */ 0x8A26,0x3879, - /* Array index: 0x0658 */ 0x8A28,0x387B, - /* Array index: 0x0658 */ 0x8A29,0x3925, - /* Array index: 0x0658 */ 0x8A2B,0x3922, - /* Array index: 0x0658 */ 0x8A2E,0x6330, - /* Array index: 0x0658 */ 0x8A32,0x387A, - /* Array index: 0x0658 */ 0x8A35,0x3E7C, - /* Array index: 0x0658 */ 0x8A38,0x3E7D, - /* Array index: 0x0658 */ 0x8A3D,0x3F24, - /* Array index: 0x0658 */ 0x8A42,0x3E7E, - /* Array index: 0x0658 */ 0x8A43,0x3E75, - /* Array index: 0x0658 */ 0x8A49,0x3F21, - /* Array index: 0x0658 */ 0x8A4B,0x3F23, - /* Array index: 0x0658 */ 0x8A5A,0x3E78, - /* Array index: 0x0658 */ 0x8A5D,0x3F22, - /* Array index: 0x0658 */ 0x8A64,0x4460, - /* Array index: 0x0658 */ 0x8A65,0x4459, - /* Array index: 0x0658 */ 0x8A67,0x4463, - /* Array index: 0x0658 */ 0x8A6A,0x4455, - /* Array index: 0x0658 */ 0x8A6F,0x4458, - /* Array index: 0x0658 */ 0x8A78,0x445B, - /* Array index: 0x0658 */ 0x8A7D,0x445C, - /* Array index: 0x0658 */ 0x8A7E,0x4461, - /* Array index: 0x0658 */ 0x8A80,0x4456, - /* Array index: 0x0658 */ 0x8A88,0x445D, - /* Array index: 0x0658 */ 0x8A8E,0x495F, - /* Array index: 0x0658 */ 0x8A90,0x4964, - /* Array index: 0x0658 */ 0x8A94,0x4963, - /* Array index: 0x0658 */ 0x8AA2,0x4960, - /* Array index: 0x0658 */ 0x8AA9,0x4965, - /* Array index: 0x0658 */ 0x8AAC,0x4966, - /* Array index: 0x0658 */ 0x8AAF,0x4E74, - /* Array index: 0x0658 */ 0x8AC1,0x4E73, - /* Array index: 0x0658 */ 0x8ACA,0x4E75, - /* Array index: 0x0658 */ 0x8ACC,0x4E69, - /* Array index: 0x0658 */ 0x8ACE,0x4E6A, - /* Array index: 0x0658 */ 0x8AD0,0x4E76, - /* Array index: 0x0658 */ 0x8AE3,0x526A, - /* Array index: 0x0658 */ 0x8AE5,0x526B, - /* Array index: 0x0658 */ 0x8AE9,0x4E6F, - /* Array index: 0x0658 */ 0x8AEA,0x5267, - /* Array index: 0x0658 */ 0x8AEC,0x526E, - /* Array index: 0x0658 */ 0x8AF9,0x5269, - /* Array index: 0x0658 */ 0x8AFD,0x5268, - /* Array index: 0x0658 */ 0x8B03,0x664C, - /* Array index: 0x0658 */ 0x8B09,0x5649, - /* Array index: 0x0658 */ 0x8B0C,0x564A, - /* Array index: 0x0658 */ 0x8B1F,0x5648, - /* Array index: 0x0658 */ 0x8B29,0x592A, - /* Array index: 0x0658 */ 0x8B2D,0x5926, - /* Array index: 0x0658 */ 0x8B32,0x5924, - /* Array index: 0x0658 */ 0x8B34,0x5928, - /* Array index: 0x0658 */ 0x8B38,0x5923, - /* Array index: 0x0658 */ 0x8B3F,0x5B34, - /* Array index: 0x0658 */ 0x8B43,0x5B35, - /* Array index: 0x0658 */ 0x8B4C,0x5B36, - /* Array index: 0x0658 */ 0x8B4D,0x5D33, - /* Array index: 0x0658 */ 0x8B61,0x5D30, - /* Array index: 0x0658 */ 0x8B62,0x5D2C, - /* Array index: 0x0658 */ 0x8B64,0x5D32, - /* Array index: 0x0658 */ 0x8B69,0x5D2B, - /* Array index: 0x0658 */ 0x8B6E,0x5D2E, - /* Array index: 0x0658 */ 0x8B71,0x5C6D, - /* Array index: 0x0658 */ 0x8B73,0x642D, - /* Array index: 0x0658 */ 0x8B75,0x5E62, - /* Array index: 0x0658 */ 0x8B7C,0x5E63, - /* Array index: 0x0658 */ 0x8B81,0x5F61, - /* Array index: 0x0658 */ 0x8B83,0x5F62, - /* Array index: 0x0658 */ 0x8B87,0x6048, - /* Array index: 0x0658 */ 0x8B8D,0x6047, - /* Array index: 0x0658 */ 0x8B90,0x6049, - /* Array index: 0x0658 */ 0x8B91,0x607B, - /* Array index: 0x0658 */ 0x8B97,0x614B, - /* Array index: 0x0658 */ 0x8B9B,0x616B, - /* Array index: 0x0658 */ 0x8B9D,0x617E, - /* Array index: 0x0658 */ 0x8C3A,0x392A, - /* Array index: 0x0658 */ 0x8C40,0x564D, - /* Array index: 0x0658 */ 0x8C44,0x5F64, - /* Array index: 0x0658 */ 0x8C58,0x392D, - /* Array index: 0x0658 */ 0x8C5B,0x392C, - /* Array index: 0x0658 */ 0x8C5E,0x3F2A, - /* Array index: 0x0658 */ 0x8C60,0x3F29, - /* Array index: 0x0658 */ 0x8C63,0x4464, - /* Array index: 0x0658 */ 0x8C67,0x496D, - /* Array index: 0x0658 */ 0x8C74,0x592B, - /* Array index: 0x0658 */ 0x8C7C,0x392E, - /* Array index: 0x0658 */ 0x8C7E,0x3F2C, - /* Array index: 0x0658 */ 0x8C7F,0x3F2B, - /* Array index: 0x0658 */ 0x8C83,0x3F2D, - /* Array index: 0x0658 */ 0x8C87,0x634A, - /* Array index: 0x0658 */ 0x8C88,0x4465, - /* Array index: 0x0658 */ 0x8C8E,0x4E7A, - /* Array index: 0x0658 */ 0x8C96,0x564F, - /* Array index: 0x0658 */ 0x8C9B,0x614D, - /* Array index: 0x0658 */ 0x8C9F,0x2F2E, - /* Array index: 0x0658 */ 0x8CA6,0x3930, - /* Array index: 0x0658 */ 0x8CAD,0x3932, - /* Array index: 0x0658 */ 0x8CAE,0x3931, - /* Array index: 0x0658 */ 0x8CB1,0x3F2F, - /* Array index: 0x0658 */ 0x8CC9,0x4469, - /* Array index: 0x0658 */ 0x8CCD,0x4467, - /* Array index: 0x0658 */ 0x8CD0,0x4970, - /* Array index: 0x0658 */ 0x8CD4,0x4972, - /* Array index: 0x0658 */ 0x8CD6,0x4971, - /* Array index: 0x0658 */ 0x8CD8,0x664E, - /* Array index: 0x0658 */ 0x8CDB,0x4E7E, - /* Array index: 0x0658 */ 0x8CE9,0x4E7D, - /* Array index: 0x0658 */ 0x8CEB,0x4F22, - /* Array index: 0x0658 */ 0x8CEF,0x5275, - /* Array index: 0x0658 */ 0x8CF2,0x5273, - /* Array index: 0x0658 */ 0x8CF6,0x5651, - /* Array index: 0x0658 */ 0x8CF7,0x5652, - /* Array index: 0x0658 */ 0x8D03,0x592E, - /* Array index: 0x0658 */ 0x8D0B,0x5B38, - /* Array index: 0x0658 */ 0x8D0C,0x664F, - /* Array index: 0x0658 */ 0x8D0E,0x6428, - /* Array index: 0x0658 */ 0x8D11,0x5E65, - /* Array index: 0x0658 */ 0x8D12,0x5E66, - /* Array index: 0x0658 */ 0x8D18,0x6650, - /* Array index: 0x0658 */ 0x8D1A,0x604A, - /* Array index: 0x0658 */ 0x8D1C,0x614E, - /* Array index: 0x0658 */ 0x8D65,0x3933, - /* Array index: 0x0658 */ 0x8D71,0x243A, - /* Array index: 0x0658 */ 0x8D7A,0x3939, - /* Array index: 0x0658 */ 0x8D7C,0x3937, - /* Array index: 0x0658 */ 0x8D7E,0x3935, - /* Array index: 0x0658 */ 0x8D7F,0x3938, - /* Array index: 0x0658 */ 0x8D8B,0x3F38, - /* Array index: 0x0658 */ 0x8D97,0x4975, - /* Array index: 0x0658 */ 0x8D98,0x4973, - /* Array index: 0x0658 */ 0x8D9A,0x4974, - /* Array index: 0x0658 */ 0x8D9D,0x4F26, - /* Array index: 0x0658 */ 0x8DA2,0x4F25, - /* Array index: 0x0658 */ 0x8DA4,0x4F23, - /* Array index: 0x0658 */ 0x8DA6,0x5277, - /* Array index: 0x0658 */ 0x8DA9,0x5931, - /* Array index: 0x0658 */ 0x8DB0,0x6651, - /* Array index: 0x0658 */ 0x8DBB,0x393E, - /* Array index: 0x0658 */ 0x8DBD,0x393A, - /* Array index: 0x0658 */ 0x8DC0,0x393D, - /* Array index: 0x0658 */ 0x8DC9,0x3F3F, - /* Array index: 0x0658 */ 0x8DCA,0x3F3A, - /* Array index: 0x0658 */ 0x8DD2,0x3F3B, - /* Array index: 0x0658 */ 0x8DD4,0x3F3E, - /* Array index: 0x0658 */ 0x8DED,0x446B, - /* Array index: 0x0658 */ 0x8E01,0x497B, - /* Array index: 0x0658 */ 0x8E08,0x497A, - /* Array index: 0x0658 */ 0x8E0B,0x4979, - /* Array index: 0x0658 */ 0x8E28,0x4F2C, - /* Array index: 0x0658 */ 0x8E2A,0x4F2B, - /* Array index: 0x0658 */ 0x8E32,0x527E, - /* Array index: 0x0658 */ 0x8E3B,0x527B, - /* Array index: 0x0658 */ 0x8E43,0x527C, - /* Array index: 0x0658 */ 0x8E46,0x5654, - /* Array index: 0x0658 */ 0x8E4F,0x5655, - /* Array index: 0x0658 */ 0x8E58,0x5932, - /* Array index: 0x0658 */ 0x8E68,0x5B3A, - /* Array index: 0x0658 */ 0x8E6B,0x5B39, - /* Array index: 0x0658 */ 0x8E70,0x5B3B, - /* Array index: 0x0658 */ 0x8E75,0x5B3C, - /* Array index: 0x0658 */ 0x8E77,0x5B3D, - /* Array index: 0x0658 */ 0x8E83,0x5D37, - /* Array index: 0x0658 */ 0x8E99,0x604B, - /* Array index: 0x0658 */ 0x8EA2,0x6150, - /* Array index: 0x0658 */ 0x8EA7,0x616C, - /* Array index: 0x0658 */ 0x8EBC,0x6652, - /* Array index: 0x0658 */ 0x8EBF,0x5935, - /* Array index: 0x0658 */ 0x8EC1,0x5936, - /* Array index: 0x0658 */ 0x8EC3,0x5B3F, - /* Array index: 0x0658 */ 0x8EC6,0x5D38, - /* Array index: 0x0658 */ 0x8ED5,0x6653, - /* Array index: 0x0658 */ 0x8ED6,0x3941, - /* Array index: 0x0658 */ 0x8ED9,0x3947, - /* Array index: 0x0658 */ 0x8EE4,0x3F45, - /* Array index: 0x0658 */ 0x8EEA,0x3F47, - /* Array index: 0x0658 */ 0x8EF2,0x3F44, - /* Array index: 0x0658 */ 0x8EF3,0x3F46, - /* Array index: 0x0658 */ 0x8EFD,0x3F49, - /* Array index: 0x0658 */ 0x8F04,0x4476, - /* Array index: 0x0658 */ 0x8F19,0x4F36, - /* Array index: 0x0658 */ 0x8F22,0x4F33, - /* Array index: 0x0658 */ 0x8F27,0x4F35, - /* Array index: 0x0658 */ 0x8F2B,0x4F34, - /* Array index: 0x0658 */ 0x8F2D,0x5324, - /* Array index: 0x0658 */ 0x8F30,0x5322, - /* Array index: 0x0658 */ 0x8F31,0x5321, - /* Array index: 0x0658 */ 0x8F3C,0x5325, - /* Array index: 0x0658 */ 0x8F3D,0x5659, - /* Array index: 0x0658 */ 0x8F41,0x565A, - /* Array index: 0x0658 */ 0x8F4A,0x5937, - /* Array index: 0x0658 */ 0x8F5C,0x5E67, - /* Array index: 0x0658 */ 0x8F65,0x6222, - /* Array index: 0x0658 */ 0x8FAA,0x6654, - /* Array index: 0x0658 */ 0x8FAC,0x5938, - /* Array index: 0x0658 */ 0x8FB3,0x4F39, - /* Array index: 0x0658 */ 0x8FB5,0x272F, - /* Array index: 0x0658 */ 0x8FB9,0x243B, - /* Array index: 0x0658 */ 0x8FBE,0x2730, - /* Array index: 0x0658 */ 0x8FC1,0x2733, - /* Array index: 0x0658 */ 0x8FC7,0x2731, - /* Array index: 0x0658 */ 0x8FCA,0x2A72, - /* Array index: 0x0658 */ 0x8FCC,0x2A70, - /* Array index: 0x0658 */ 0x8FCF,0x2A74, - /* Array index: 0x0658 */ 0x8FD8,0x2A73, - /* Array index: 0x0658 */ 0x8FD9,0x2A71, - /* Array index: 0x0658 */ 0x8FE7,0x2F31, - /* Array index: 0x0658 */ 0x8FE9,0x2F32, - /* Array index: 0x0658 */ 0x8FEF,0x2F33, - /* Array index: 0x0658 */ 0x8FF1,0x2F30, - /* Array index: 0x0658 */ 0x8FF9,0x3425, - /* Array index: 0x0658 */ 0x9008,0x3427, - /* Array index: 0x0658 */ 0x9009,0x3426, - /* Array index: 0x0658 */ 0x900E,0x394B, - /* Array index: 0x0658 */ 0x9012,0x394A, - /* Array index: 0x0658 */ 0x9013,0x394E, - /* Array index: 0x0658 */ 0x9025,0x394C, - /* Array index: 0x0658 */ 0x9030,0x3F55, - /* Array index: 0x0658 */ 0x9037,0x3F56, - /* Array index: 0x0658 */ 0x903A,0x3F54, - /* Array index: 0x0658 */ 0x903B,0x3F57, - /* Array index: 0x0658 */ 0x9040,0x447D, - /* Array index: 0x0658 */ 0x9043,0x4479, - /* Array index: 0x0658 */ 0x9045,0x447C, - /* Array index: 0x0658 */ 0x9046,0x447A, - /* Array index: 0x0658 */ 0x9048,0x447B, - /* Array index: 0x0658 */ 0x904C,0x447E, - /* Array index: 0x0658 */ 0x905A,0x4A24, - /* Array index: 0x0658 */ 0x905F,0x4A27, - /* Array index: 0x0658 */ 0x9061,0x4A26, - /* Array index: 0x0658 */ 0x906A,0x4F3C, - /* Array index: 0x0658 */ 0x9071,0x4F3B, - /* Array index: 0x0658 */ 0x9089,0x593A, - /* Array index: 0x0658 */ 0x9092,0x225E, - /* Array index: 0x0658 */ 0x9093,0x225D, - /* Array index: 0x0658 */ 0x9096,0x243C, - /* Array index: 0x0658 */ 0x909A,0x243D, - /* Array index: 0x0658 */ 0x909C,0x6655, - /* Array index: 0x0658 */ 0x90A4,0x2735, - /* Array index: 0x0658 */ 0x90A8,0x2739, - /* Array index: 0x0658 */ 0x90A9,0x2734, - /* Array index: 0x0658 */ 0x90AB,0x3951, - /* Array index: 0x0658 */ 0x90AD,0x2A77, - /* Array index: 0x0658 */ 0x90B7,0x2A75, - /* Array index: 0x0658 */ 0x90B9,0x2A78, - /* Array index: 0x0658 */ 0x90BC,0x2F35, - /* Array index: 0x0658 */ 0x90C0,0x2F38, - /* Array index: 0x0658 */ 0x90C2,0x2F34, - /* Array index: 0x0658 */ 0x90C4,0x2F3E, - /* Array index: 0x0658 */ 0x90C6,0x2F37, - /* Array index: 0x0658 */ 0x90C9,0x2F3C, - /* Array index: 0x0658 */ 0x90CD,0x2F3B, - /* Array index: 0x0658 */ 0x90DE,0x3429, - /* Array index: 0x0658 */ 0x90EE,0x394F, - /* Array index: 0x0658 */ 0x90F6,0x636C, - /* Array index: 0x0658 */ 0x90F7,0x3952, - /* Array index: 0x0658 */ 0x910A,0x3F59, - /* Array index: 0x0658 */ 0x910C,0x4523, - /* Array index: 0x0658 */ 0x9113,0x4524, - /* Array index: 0x0658 */ 0x9115,0x4525, - /* Array index: 0x0658 */ 0x9125,0x4A2A, - /* Array index: 0x0658 */ 0x9137,0x532B, - /* Array index: 0x0658 */ 0x913C,0x593C, - /* Array index: 0x0658 */ 0x913D,0x593B, - /* Array index: 0x0658 */ 0x9151,0x342A, - /* Array index: 0x0658 */ 0x9154,0x3955, - /* Array index: 0x0658 */ 0x9159,0x3954, - /* Array index: 0x0658 */ 0x915C,0x6657, - /* Array index: 0x0658 */ 0x9167,0x4528, - /* Array index: 0x0658 */ 0x916B,0x4527, - /* Array index: 0x0658 */ 0x9176,0x4A2C, - /* Array index: 0x0658 */ 0x917B,0x4A2B, - /* Array index: 0x0658 */ 0x917C,0x4A2D, - /* Array index: 0x0658 */ 0x9188,0x4F3F, - /* Array index: 0x0658 */ 0x918C,0x4F40, - /* Array index: 0x0658 */ 0x918E,0x532D, - /* Array index: 0x0658 */ 0x9195,0x532C, - /* Array index: 0x0658 */ 0x9196,0x532F, - /* Array index: 0x0658 */ 0x91A9,0x593D, - /* Array index: 0x0658 */ 0x91BB,0x5E68, - /* Array index: 0x0658 */ 0x91BF,0x607E, - /* Array index: 0x0658 */ 0x91C4,0x616D, - /* Array index: 0x0658 */ 0x91D6,0x3430, - /* Array index: 0x0658 */ 0x91DB,0x342D, - /* Array index: 0x0658 */ 0x91E5,0x3958, - /* Array index: 0x0658 */ 0x91F0,0x3957, - /* Array index: 0x0658 */ 0x91F2,0x3956, - /* Array index: 0x0658 */ 0x91F6,0x3959, - /* Array index: 0x0658 */ 0x91FE,0x3F5D, - /* Array index: 0x0658 */ 0x9208,0x3F66, - /* Array index: 0x0658 */ 0x920B,0x3F60, - /* Array index: 0x0658 */ 0x920E,0x3F68, - /* Array index: 0x0658 */ 0x9213,0x3F69, - /* Array index: 0x0658 */ 0x9218,0x3F62, - /* Array index: 0x0658 */ 0x921B,0x3F65, - /* Array index: 0x0658 */ 0x922B,0x6658, - /* Array index: 0x0658 */ 0x922F,0x452E, - /* Array index: 0x0658 */ 0x9235,0x452B, - /* Array index: 0x0658 */ 0x923B,0x4537, - /* Array index: 0x0658 */ 0x923C,0x452F, - /* Array index: 0x0658 */ 0x9241,0x4539, - /* Array index: 0x0658 */ 0x9244,0x4538, - /* Array index: 0x0658 */ 0x9255,0x452A, - /* Array index: 0x0658 */ 0x9259,0x452D, - /* Array index: 0x0658 */ 0x925C,0x4531, - /* Array index: 0x0658 */ 0x925D,0x4529, - /* Array index: 0x0658 */ 0x925F,0x4534, - /* Array index: 0x0658 */ 0x9262,0x4533, - /* Array index: 0x0658 */ 0x926A,0x4532, - /* Array index: 0x0658 */ 0x926B,0x4535, - /* Array index: 0x0658 */ 0x926E,0x4536, - /* Array index: 0x0658 */ 0x9273,0x665A, - /* Array index: 0x0658 */ 0x9281,0x4A34, - /* Array index: 0x0658 */ 0x9284,0x4A35, - /* Array index: 0x0658 */ 0x9289,0x4A2F, - /* Array index: 0x0658 */ 0x928F,0x4530, - /* Array index: 0x0658 */ 0x9290,0x4A38, - /* Array index: 0x0658 */ 0x9292,0x4A33, - /* Array index: 0x0658 */ 0x929E,0x4A39, - /* Array index: 0x0658 */ 0x92B8,0x4F42, - /* Array index: 0x0658 */ 0x92B9,0x4F50, - /* Array index: 0x0658 */ 0x92BE,0x4F43, - /* Array index: 0x0658 */ 0x92BF,0x4F41, - /* Array index: 0x0658 */ 0x92D4,0x4F48, - /* Array index: 0x0658 */ 0x92D6,0x4F49, - /* Array index: 0x0658 */ 0x92E2,0x4F51, - /* Array index: 0x0658 */ 0x92E5,0x4F45, - /* Array index: 0x0658 */ 0x92EB,0x4F52, - /* Array index: 0x0658 */ 0x92ED,0x4F4C, - /* Array index: 0x0658 */ 0x92FD,0x5335, - /* Array index: 0x0658 */ 0x9303,0x533D, - /* Array index: 0x0658 */ 0x9305,0x533E, - /* Array index: 0x0658 */ 0x9307,0x5338, - /* Array index: 0x0658 */ 0x930A,0x5332, - /* Array index: 0x0658 */ 0x9317,0x5336, - /* Array index: 0x0658 */ 0x931C,0x5337, - /* Array index: 0x0658 */ 0x932C,0x533B, - /* Array index: 0x0658 */ 0x933F,0x665D, - /* Array index: 0x0658 */ 0x9342,0x665E, - /* Array index: 0x0658 */ 0x9345,0x5331, - /* Array index: 0x0658 */ 0x9348,0x5665, - /* Array index: 0x0658 */ 0x9353,0x5666, - /* Array index: 0x0658 */ 0x935D,0x565D, - /* Array index: 0x0658 */ 0x935F,0x5667, - /* Array index: 0x0658 */ 0x9362,0x5664, - /* Array index: 0x0658 */ 0x9366,0x565B, - /* Array index: 0x0658 */ 0x9368,0x5668, - /* Array index: 0x0658 */ 0x9369,0x565E, - /* Array index: 0x0658 */ 0x936B,0x566B, - /* Array index: 0x0658 */ 0x936E,0x5661, - /* Array index: 0x0658 */ 0x9378,0x565C, - /* Array index: 0x0658 */ 0x937D,0x5660, - /* Array index: 0x0658 */ 0x937F,0x566A, - /* Array index: 0x0658 */ 0x9386,0x665F, - /* Array index: 0x0658 */ 0x938B,0x5943, - /* Array index: 0x0658 */ 0x9390,0x5940, - /* Array index: 0x0658 */ 0x9393,0x5942, - /* Array index: 0x0658 */ 0x939C,0x5949, - /* Array index: 0x0658 */ 0x93A0,0x593E, - /* Array index: 0x0658 */ 0x93AD,0x5944, - /* Array index: 0x0658 */ 0x93B8,0x5946, - /* Array index: 0x0658 */ 0x93C1,0x5B50, - /* Array index: 0x0658 */ 0x93C5,0x5B44, - /* Array index: 0x0658 */ 0x93C6,0x5B45, - /* Array index: 0x0658 */ 0x93CB,0x5B43, - /* Array index: 0x0658 */ 0x93D3,0x5B48, - /* Array index: 0x0658 */ 0x93DB,0x5B4D, - /* Array index: 0x0658 */ 0x93E0,0x5B4F, - /* Array index: 0x0658 */ 0x93E5,0x5B4A, - /* Array index: 0x0658 */ 0x9402,0x5D43, - /* Array index: 0x0658 */ 0x9404,0x5D3C, - /* Array index: 0x0658 */ 0x9405,0x5D3F, - /* Array index: 0x0658 */ 0x9408,0x5D3E, - /* Array index: 0x0658 */ 0x9417,0x5D3D, - /* Array index: 0x0658 */ 0x9427,0x5D46, - /* Array index: 0x0658 */ 0x942D,0x5E6D, - /* Array index: 0x0658 */ 0x9442,0x5F69, - /* Array index: 0x0658 */ 0x9443,0x5F6E, - /* Array index: 0x0658 */ 0x944D,0x5F6A, - /* Array index: 0x0658 */ 0x944E,0x5F6C, - /* Array index: 0x0658 */ 0x9454,0x5F6B, - /* Array index: 0x0658 */ 0x9456,0x6052, - /* Array index: 0x0658 */ 0x945F,0x604F, - /* Array index: 0x0658 */ 0x9461,0x6053, - /* Array index: 0x0658 */ 0x946C,0x6122, - /* Array index: 0x0658 */ 0x947A,0x616F, - /* Array index: 0x0658 */ 0x947B,0x6223, - /* Array index: 0x0658 */ 0x9484,0x6236, - /* Array index: 0x0658 */ 0x9579,0x6323, - /* Array index: 0x0658 */ 0x9581,0x2F40, - /* Array index: 0x0658 */ 0x9585,0x3432, - /* Array index: 0x0658 */ 0x9587,0x395C, - /* Array index: 0x0658 */ 0x9595,0x3F6C, - /* Array index: 0x0658 */ 0x9597,0x666B, - /* Array index: 0x0658 */ 0x9599,0x453C, - /* Array index: 0x0658 */ 0x959A,0x453A, - /* Array index: 0x0658 */ 0x95A2,0x4A3D, - /* Array index: 0x0658 */ 0x95A7,0x4A3E, - /* Array index: 0x0658 */ 0x95AF,0x4F53, - /* Array index: 0x0658 */ 0x95B2,0x4F55, - /* Array index: 0x0658 */ 0x95B3,0x4F56, - /* Array index: 0x0658 */ 0x95B8,0x5342, - /* Array index: 0x0658 */ 0x95C1,0x5344, - /* Array index: 0x0658 */ 0x95C2,0x5340, - /* Array index: 0x0658 */ 0x95C4,0x566D, - /* Array index: 0x0658 */ 0x95CE,0x666C, - /* Array index: 0x0658 */ 0x95D7,0x594B, - /* Array index: 0x0658 */ 0x95D8,0x594A, - /* Array index: 0x0658 */ 0x95DD,0x5B53, - /* Array index: 0x0658 */ 0x95E7,0x666D, - /* Array index: 0x0658 */ 0x961D,0x2143, - /* Array index: 0x0658 */ 0x9626,0x273B, - /* Array index: 0x0658 */ 0x9627,0x273A, - /* Array index: 0x0658 */ 0x9629,0x273F, - /* Array index: 0x0658 */ 0x962B,0x273C, - /* Array index: 0x0658 */ 0x9633,0x273D, - /* Array index: 0x0658 */ 0x9634,0x273E, - /* Array index: 0x0658 */ 0x9637,0x2A79, - /* Array index: 0x0658 */ 0x963E,0x2A7C, - /* Array index: 0x0658 */ 0x9641,0x2A7B, - /* Array index: 0x0658 */ 0x9656,0x3436, - /* Array index: 0x0658 */ 0x9659,0x3434, - /* Array index: 0x0658 */ 0x965A,0x395E, - /* Array index: 0x0658 */ 0x9660,0x3433, - /* Array index: 0x0658 */ 0x966E,0x3961, - /* Array index: 0x0658 */ 0x9679,0x3965, - /* Array index: 0x0658 */ 0x967B,0x3F71, - /* Array index: 0x0658 */ 0x967F,0x3F72, - /* Array index: 0x0658 */ 0x9681,0x3F73, - /* Array index: 0x0658 */ 0x9682,0x3F75, - /* Array index: 0x0658 */ 0x968C,0x3F70, - /* Array index: 0x0658 */ 0x968F,0x4540, - /* Array index: 0x0658 */ 0x9696,0x4542, - /* Array index: 0x0658 */ 0x969D,0x4A45, - /* Array index: 0x0658 */ 0x969F,0x4A46, - /* Array index: 0x0658 */ 0x96A0,0x4A44, - /* Array index: 0x0658 */ 0x96A3,0x4F5A, - /* Array index: 0x0658 */ 0x96A5,0x4F5B, - /* Array index: 0x0658 */ 0x96AB,0x5348, - /* Array index: 0x0658 */ 0x96AD,0x5670, - /* Array index: 0x0658 */ 0x96AF,0x566F, - /* Array index: 0x0658 */ 0x96B2,0x5671, - /* Array index: 0x0658 */ 0x96BA,0x6325, - /* Array index: 0x0658 */ 0x96BD,0x3439, - /* Array index: 0x0658 */ 0x96D0,0x4A47, - /* Array index: 0x0658 */ 0x96D1,0x4A49, - /* Array index: 0x0658 */ 0x96E4,0x5E70, - /* Array index: 0x0658 */ 0x96E6,0x6125, - /* Array index: 0x0658 */ 0x96E7,0x622F, - /* Array index: 0x0658 */ 0x96F4,0x4546, - /* Array index: 0x0658 */ 0x96FC,0x4547, - /* Array index: 0x0658 */ 0x970A,0x4F60, - /* Array index: 0x0658 */ 0x970C,0x5350, - /* Array index: 0x0658 */ 0x9714,0x534D, - /* Array index: 0x0658 */ 0x9715,0x534C, - /* Array index: 0x0658 */ 0x9717,0x5351, - /* Array index: 0x0658 */ 0x971A,0x5674, - /* Array index: 0x0658 */ 0x971B,0x5675, - /* Array index: 0x0658 */ 0x9731,0x5D4F, - /* Array index: 0x0658 */ 0x973B,0x666E, - /* Array index: 0x0658 */ 0x973C,0x5F71, - /* Array index: 0x0658 */ 0x9740,0x5F72, - /* Array index: 0x0658 */ 0x9741,0x6059, - /* Array index: 0x0658 */ 0x9745,0x6126, - /* Array index: 0x0658 */ 0x974D,0x666F, - /* Array index: 0x0658 */ 0x9750,0x6245, - /* Array index: 0x0658 */ 0x9751,0x2A7E, - /* Array index: 0x0658 */ 0x9755,0x4549, - /* Array index: 0x0658 */ 0x9759,0x4A4C, - /* Array index: 0x0658 */ 0x975D,0x594F, - /* Array index: 0x0658 */ 0x975F,0x4021, - /* Array index: 0x0658 */ 0x9763,0x2B21, - /* Array index: 0x0658 */ 0x9764,0x4A4E, - /* Array index: 0x0658 */ 0x9767,0x5E73, - /* Array index: 0x0658 */ 0x976D,0x4024, - /* Array index: 0x0658 */ 0x976F,0x4022, - /* Array index: 0x0658 */ 0x9779,0x454B, - /* Array index: 0x0658 */ 0x9787,0x4F62, - /* Array index: 0x0658 */ 0x9789,0x4F63, - /* Array index: 0x0658 */ 0x978C,0x4F64, - /* Array index: 0x0658 */ 0x9793,0x5353, - /* Array index: 0x0658 */ 0x979B,0x567A, - /* Array index: 0x0658 */ 0x979F,0x567B, - /* Array index: 0x0658 */ 0x97A9,0x5950, - /* Array index: 0x0658 */ 0x97B8,0x5D50, - /* Array index: 0x0658 */ 0x97BA,0x5D51, - /* Array index: 0x0658 */ 0x97BD,0x5E75, - /* Array index: 0x0658 */ 0x97BE,0x5E74, - /* Array index: 0x0658 */ 0x97C0,0x5F73, - /* Array index: 0x0658 */ 0x97C8,0x6128, - /* Array index: 0x0658 */ 0x97CA,0x623B, - /* Array index: 0x0658 */ 0x97D2,0x5355, - /* Array index: 0x0658 */ 0x97DA,0x5951, - /* Array index: 0x0658 */ 0x97E2,0x5E76, - /* Array index: 0x0658 */ 0x97E4,0x6129, - /* Array index: 0x0658 */ 0x97EE,0x454F, - /* Array index: 0x0658 */ 0x97EF,0x4F65, - /* Array index: 0x0658 */ 0x97F2,0x5B61, - /* Array index: 0x0658 */ 0x97F5,0x4550, - /* Array index: 0x0658 */ 0x97FC,0x5D53, - /* Array index: 0x0658 */ 0x980B,0x4552, - /* Array index: 0x0658 */ 0x9814,0x4A54, - /* Array index: 0x0658 */ 0x9815,0x4A55, - /* Array index: 0x0658 */ 0x9819,0x4A52, - /* Array index: 0x0658 */ 0x981A,0x4A56, - /* Array index: 0x0658 */ 0x981F,0x4F69, - /* Array index: 0x0658 */ 0x9822,0x4F67, - /* Array index: 0x0658 */ 0x9823,0x636E, - /* Array index: 0x0658 */ 0x982A,0x4F66, - /* Array index: 0x0658 */ 0x982E,0x535C, - /* Array index: 0x0658 */ 0x9831,0x5359, - /* Array index: 0x0658 */ 0x9833,0x535A, - /* Array index: 0x0658 */ 0x9834,0x5228, - /* Array index: 0x0658 */ 0x9836,0x5358, - /* Array index: 0x0658 */ 0x983A,0x535D, - /* Array index: 0x0658 */ 0x9847,0x5728, - /* Array index: 0x0658 */ 0x984B,0x5959, - /* Array index: 0x0658 */ 0x9861,0x642A, - /* Array index: 0x0658 */ 0x9866,0x5E78, - /* Array index: 0x0658 */ 0x9868,0x5E77, - /* Array index: 0x0658 */ 0x98B5,0x5361, - /* Array index: 0x0658 */ 0x98B7,0x572A, - /* Array index: 0x0658 */ 0x98B9,0x595C, - /* Array index: 0x0658 */ 0x98C3,0x5D56, - /* Array index: 0x0658 */ 0x98C7,0x5E7B, - /* Array index: 0x0658 */ 0x98C8,0x5E79, - /* Array index: 0x0658 */ 0x98CA,0x5E7A, - /* Array index: 0x0658 */ 0x98CD,0x6225, - /* Array index: 0x0658 */ 0x98DC,0x5E7C, - /* Array index: 0x0658 */ 0x98DD,0x6226, - /* Array index: 0x0658 */ 0x98E1,0x3967, - /* Array index: 0x0658 */ 0x98E4,0x6670, - /* Array index: 0x0658 */ 0x98E6,0x3968, - /* Array index: 0x0658 */ 0x98EC,0x455B, - /* Array index: 0x0658 */ 0x98F0,0x402B, - /* Array index: 0x0658 */ 0x98F1,0x455C, - /* Array index: 0x0658 */ 0x98F3,0x4554, - /* Array index: 0x0658 */ 0x98F5,0x4559, - /* Array index: 0x0658 */ 0x98F7,0x4557, - /* Array index: 0x0658 */ 0x98F8,0x4A5D, - /* Array index: 0x0658 */ 0x98FF,0x4558, - /* Array index: 0x0658 */ 0x9901,0x4A5E, - /* Array index: 0x0658 */ 0x9906,0x4A5B, - /* Array index: 0x0658 */ 0x990E,0x667A, - /* Array index: 0x0658 */ 0x9919,0x4F6B, - /* Array index: 0x0658 */ 0x991C,0x5365, - /* Array index: 0x0658 */ 0x991D,0x5366, - /* Array index: 0x0658 */ 0x9920,0x5364, - /* Array index: 0x0658 */ 0x9922,0x5362, - /* Array index: 0x0658 */ 0x9923,0x5363, - /* Array index: 0x0658 */ 0x9936,0x5962, - /* Array index: 0x0658 */ 0x9938,0x5961, - /* Array index: 0x0658 */ 0x9939,0x5966, - /* Array index: 0x0658 */ 0x993B,0x5965, - /* Array index: 0x0658 */ 0x9940,0x5963, - /* Array index: 0x0658 */ 0x9942,0x6671, - /* Array index: 0x0658 */ 0x9944,0x5B69, - /* Array index: 0x0658 */ 0x994D,0x5D58, - /* Array index: 0x0658 */ 0x994F,0x5E7E, - /* Array index: 0x0658 */ 0x995A,0x5F78, - /* Array index: 0x0658 */ 0x995D,0x612A, - /* Array index: 0x0658 */ 0x999A,0x455F, - /* Array index: 0x0658 */ 0x99A0,0x5368, - /* Array index: 0x0658 */ 0x99A2,0x5730, - /* Array index: 0x0658 */ 0x99A4,0x5967, - /* Array index: 0x0658 */ 0x99A9,0x5F21, - /* Array index: 0x0658 */ 0x99AA,0x6060, - /* Array index: 0x0658 */ 0x99C4,0x4A6A, - /* Array index: 0x0658 */ 0x99C8,0x4F73, - /* Array index: 0x0658 */ 0x99CA,0x4F6D, - /* Array index: 0x0658 */ 0x99DA,0x4F6E, - /* Array index: 0x0658 */ 0x99DE,0x4F72, - /* Array index: 0x0658 */ 0x99E0,0x4F74, - /* Array index: 0x0658 */ 0x99E1,0x5370, - /* Array index: 0x0658 */ 0x99E6,0x5371, - /* Array index: 0x0658 */ 0x99E8,0x536B, - /* Array index: 0x0658 */ 0x99EB,0x536C, - /* Array index: 0x0658 */ 0x99EF,0x536A, - /* Array index: 0x0658 */ 0x99F3,0x5734, - /* Array index: 0x0658 */ 0x99F5,0x5737, - /* Array index: 0x0658 */ 0x9A00,0x5733, - /* Array index: 0x0658 */ 0x9A08,0x596A, - /* Array index: 0x0658 */ 0x9A0C,0x596B, - /* Array index: 0x0658 */ 0x9A10,0x596D, - /* Array index: 0x0658 */ 0x9A17,0x5B6F, - /* Array index: 0x0658 */ 0x9A18,0x5B6D, - /* Array index: 0x0658 */ 0x9A1F,0x5B6C, - /* Array index: 0x0658 */ 0x9A21,0x5B6E, - /* Array index: 0x0658 */ 0x9A26,0x5B6B, - /* Array index: 0x0658 */ 0x9A2F,0x5D5A, - /* Array index: 0x0658 */ 0x9A3B,0x5F24, - /* Array index: 0x0658 */ 0x9A3C,0x5F22, - /* Array index: 0x0658 */ 0x9A51,0x5F79, - /* Array index: 0x0658 */ 0x9A58,0x6062, - /* Array index: 0x0658 */ 0x9A5C,0x6061, - /* Array index: 0x0658 */ 0x9A61,0x6172, - /* Array index: 0x0658 */ 0x9A63,0x6173, - /* Array index: 0x0658 */ 0x9AA9,0x402F, - /* Array index: 0x0658 */ 0x9AB5,0x4F77, - /* Array index: 0x0658 */ 0x9AB6,0x4F76, - /* Array index: 0x0658 */ 0x9ABD,0x573A, - /* Array index: 0x0658 */ 0x9AC4,0x5D61, - /* Array index: 0x0658 */ 0x9AC8,0x5D60, - /* Array index: 0x0658 */ 0x9AC9,0x5D5E, - /* Array index: 0x0658 */ 0x9ACE,0x5F25, - /* Array index: 0x0658 */ 0x9AD7,0x6174, - /* Array index: 0x0658 */ 0x9AD9,0x6334, - /* Array index: 0x0658 */ 0x9ADA,0x4A6E, - /* Array index: 0x0658 */ 0x9ADD,0x5F7B, - /* Array index: 0x0658 */ 0x9ADE,0x6063, - /* Array index: 0x0658 */ 0x9AE0,0x4032, - /* Array index: 0x0658 */ 0x9AE2,0x4561, - /* Array index: 0x0658 */ 0x9AF4,0x4F79, - /* Array index: 0x0658 */ 0x9AF5,0x5375, - /* Array index: 0x0658 */ 0x9AF8,0x5374, - /* Array index: 0x0658 */ 0x9B00,0x573B, - /* Array index: 0x0658 */ 0x9B02,0x573C, - /* Array index: 0x0658 */ 0x9B07,0x596F, - /* Array index: 0x0658 */ 0x9B09,0x5B71, - /* Array index: 0x0658 */ 0x9B14,0x5F27, - /* Array index: 0x0658 */ 0x9B1D,0x6672, - /* Array index: 0x0658 */ 0x9B21,0x612C, - /* Array index: 0x0658 */ 0x9B26,0x4A75, - /* Array index: 0x0658 */ 0x9B2A,0x5D62, - /* Array index: 0x0658 */ 0x9B2C,0x612E, - /* Array index: 0x0658 */ 0x9B2D,0x6433, - /* Array index: 0x0658 */ 0x9B30,0x6228, - /* Array index: 0x0658 */ 0x9B34,0x573E, - /* Array index: 0x0658 */ 0x9B38,0x5D63, - /* Array index: 0x0658 */ 0x9B3D,0x4562, - /* Array index: 0x0658 */ 0x9B40,0x4A78, - /* Array index: 0x0658 */ 0x9B49,0x573F, - /* Array index: 0x0658 */ 0x9B50,0x5D64, - /* Array index: 0x0658 */ 0x9B53,0x5F28, - /* Array index: 0x0658 */ 0x9B57,0x612F, - /* Array index: 0x0658 */ 0x9B5D,0x4563, - /* Array index: 0x0658 */ 0x9B63,0x4F7E, - /* Array index: 0x0658 */ 0x9B69,0x4F7C, - /* Array index: 0x0658 */ 0x9B6B,0x4F7B, - /* Array index: 0x0658 */ 0x9B72,0x4F7D, - /* Array index: 0x0658 */ 0x9B83,0x5378, - /* Array index: 0x0658 */ 0x9B84,0x537A, - /* Array index: 0x0658 */ 0x9B89,0x5423, - /* Array index: 0x0658 */ 0x9B94,0x5379, - /* Array index: 0x0658 */ 0x9B98,0x6673, - /* Array index: 0x0658 */ 0x9B99,0x5744, - /* Array index: 0x0658 */ 0x9B9D,0x5745, - /* Array index: 0x0658 */ 0x9B9F,0x5740, - /* Array index: 0x0658 */ 0x9BA3,0x5742, - /* Array index: 0x0658 */ 0x9BBB,0x5974, - /* Array index: 0x0658 */ 0x9BC2,0x5973, - /* Array index: 0x0658 */ 0x9BC5,0x5B74, - /* Array index: 0x0658 */ 0x9BD2,0x5971, - /* Array index: 0x0658 */ 0x9BDF,0x5B75, - /* Array index: 0x0658 */ 0x9BE3,0x5B77, - /* Array index: 0x0658 */ 0x9BE9,0x5B79, - /* Array index: 0x0658 */ 0x9BEE,0x5B7A, - /* Array index: 0x0658 */ 0x9BF6,0x5D6F, - /* Array index: 0x0658 */ 0x9BF9,0x5D71, - /* Array index: 0x0658 */ 0x9C0A,0x5D66, - /* Array index: 0x0658 */ 0x9C0C,0x5D76, - /* Array index: 0x0658 */ 0x9C10,0x5D73, - /* Array index: 0x0658 */ 0x9C15,0x5D72, - /* Array index: 0x0658 */ 0x9C1B,0x5D70, - /* Array index: 0x0658 */ 0x9C1F,0x5F2C, - /* Array index: 0x0658 */ 0x9C27,0x642F, - /* Array index: 0x0658 */ 0x9C2E,0x5F2A, - /* Array index: 0x0658 */ 0x9C35,0x6025, - /* Array index: 0x0658 */ 0x9C38,0x5F7E, - /* Array index: 0x0658 */ 0x9C3A,0x6023, - /* Array index: 0x0658 */ 0x9C45,0x6022, - /* Array index: 0x0658 */ 0x9C4F,0x6065, - /* Array index: 0x0658 */ 0x9C51,0x6066, - /* Array index: 0x0658 */ 0x9C53,0x6068, - /* Array index: 0x0658 */ 0x9C5D,0x6132, - /* Array index: 0x0658 */ 0x9C61,0x6133, - /* Array index: 0x0658 */ 0x9C65,0x6134, - /* Array index: 0x0658 */ 0x9C6C,0x6159, - /* Array index: 0x0658 */ 0x9C6F,0x615B, - /* Array index: 0x0658 */ 0x9C76,0x6175, - /* Array index: 0x0658 */ 0x9C7B,0x6241, - /* Array index: 0x0658 */ 0x9CE8,0x4564, - /* Array index: 0x0658 */ 0x9CF8,0x5027, - /* Array index: 0x0658 */ 0x9CFE,0x502A, - /* Array index: 0x0658 */ 0x9D01,0x5024, - /* Array index: 0x0658 */ 0x9D02,0x502B, - /* Array index: 0x0658 */ 0x9D0A,0x542D, - /* Array index: 0x0658 */ 0x9D0C,0x5025, - /* Array index: 0x0658 */ 0x9D0D,0x5022, - /* Array index: 0x0658 */ 0x9D0F,0x542A, - /* Array index: 0x0658 */ 0x9D13,0x542C, - /* Array index: 0x0658 */ 0x9D16,0x5436, - /* Array index: 0x0658 */ 0x9D1A,0x5433, - /* Array index: 0x0658 */ 0x9D21,0x5437, - /* Array index: 0x0658 */ 0x9D24,0x5429, - /* Array index: 0x0658 */ 0x9D27,0x5435, - /* Array index: 0x0658 */ 0x9D2A,0x5432, - /* Array index: 0x0658 */ 0x9D35,0x574D, - /* Array index: 0x0658 */ 0x9D39,0x5748, - /* Array index: 0x0658 */ 0x9D44,0x574A, - /* Array index: 0x0658 */ 0x9D49,0x6675, - /* Array index: 0x0658 */ 0x9D4D,0x5979, - /* Array index: 0x0658 */ 0x9D4E,0x597B, - /* Array index: 0x0658 */ 0x9D50,0x597D, - /* Array index: 0x0658 */ 0x9D55,0x597E, - /* Array index: 0x0658 */ 0x9D5E,0x5A22, - /* Array index: 0x0658 */ 0x9D63,0x597A, - /* Array index: 0x0658 */ 0x9D66,0x5B7D, - /* Array index: 0x0658 */ 0x9D6D,0x5C27, - /* Array index: 0x0658 */ 0x9D6E,0x5C22, - /* Array index: 0x0658 */ 0x9D76,0x5C25, - /* Array index: 0x0658 */ 0x9D7A,0x5B7E, - /* Array index: 0x0658 */ 0x9D7E,0x5C26, - /* Array index: 0x0658 */ 0x9D83,0x5C24, - /* Array index: 0x0658 */ 0x9D91,0x5C23, - /* Array index: 0x0658 */ 0x9D95,0x5D79, - /* Array index: 0x0658 */ 0x9DA5,0x5D7A, - /* Array index: 0x0658 */ 0x9DAE,0x5F35, - /* Array index: 0x0658 */ 0x9DB0,0x5F31, - /* Array index: 0x0658 */ 0x9DBD,0x5F32, - /* Array index: 0x0658 */ 0x9DC4,0x5F36, - /* Array index: 0x0658 */ 0x9DFC,0x606C, - /* Array index: 0x0658 */ 0x9E08,0x6135, - /* Array index: 0x0658 */ 0x9E0E,0x615D, - /* Array index: 0x0658 */ 0x9E16,0x6229, - /* Array index: 0x0658 */ 0x9E18,0x6230, - /* Array index: 0x0658 */ 0x9E1C,0x6238, - /* Array index: 0x0658 */ 0x9E7B,0x5F37, - /* Array index: 0x0658 */ 0x9E81,0x4569, - /* Array index: 0x0658 */ 0x9E84,0x502C, - /* Array index: 0x0658 */ 0x9E85,0x5439, - /* Array index: 0x0658 */ 0x9E90,0x5A24, - /* Array index: 0x0658 */ 0x9E95,0x5C29, - /* Array index: 0x0658 */ 0x9E98,0x5E21, - /* Array index: 0x0658 */ 0x9E9E,0x5F3A, - /* Array index: 0x0658 */ 0x9EA2,0x6231, - /* Array index: 0x0658 */ 0x9EA3,0x623F, - /* Array index: 0x0658 */ 0x9EA6,0x2547, - /* Array index: 0x0658 */ 0x9EAF,0x5750, - /* Array index: 0x0658 */ 0x9EB1,0x5A26, - /* Array index: 0x0658 */ 0x9EB2,0x5A25, - /* Array index: 0x0658 */ 0x9EBD,0x4B22, - /* Array index: 0x0658 */ 0x9EC1,0x5E22, - /* Array index: 0x0658 */ 0x9ECA,0x5A28, - /* Array index: 0x0658 */ 0x9ED2,0x396B, - /* Array index: 0x0658 */ 0x9ED7,0x543D, - /* Array index: 0x0658 */ 0x9EE3,0x5C2A, - /* Array index: 0x0658 */ 0x9EF1,0x6029, - /* Array index: 0x0658 */ 0x9EFE,0x2772, - /* Array index: 0x0658 */ 0x9F08,0x615F, - /* Array index: 0x0658 */ 0x9F14,0x456A, - /* Array index: 0x0658 */ 0x9F17,0x5C30, - /* Array index: 0x0658 */ 0x9F1D,0x6160, - /* Array index: 0x0658 */ 0x9F26,0x5A2B, - /* Array index: 0x0658 */ 0x9F27,0x5A2A, - /* Array index: 0x0658 */ 0x9F39,0x606D, - /* Array index: 0x0658 */ 0x9F45,0x613B, - /* Array index: 0x0658 */ 0x9F50,0x2370, - /* Array index: 0x0658 */ 0x9F53,0x543E, - /* Array index: 0x0658 */ 0x9F5A,0x5E24, - /* Array index: 0x0658 */ 0x9F69,0x5F3E, - /* Array index: 0x0658 */ 0x9F7C,0x6233, - /* Array index: 0x0658 */ 0x9F8E,0x5755, - /* Array index: 0x0658 */ 0x9F93,0x602B, - /* Array index: 0x0658 */ 0x9F97,0x6242, - /* Array index: 0x0658 */ 0x9F9D,0x5E47, - /* Array index: 0x0658 */ 0x9FA1,0x5F3F, - /* Array index: 0x0658 */ 0x9FA3,0x6161, - /* Array index: 0x0658 */ 0x9FA5,0x6177, -}; - -#endif /* ICONV_FROM_UCS_CCS_CNS11643_PLANE14 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * cns11643_plane14 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_cns11643_plane14 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_CNS11643_PLANE14, /* CCS name */ - TABLE_16BIT, /* Table bits */ -#if defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE14) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&from_ucs_size_cns11643_plane14, /* UCS -> cns11643_plane14 table size-optimized table */ -#elif defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE14) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&from_ucs_speed_cns11643_plane14, /* UCS -> cns11643_plane14 table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE14) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&to_ucs_size_cns11643_plane14 /* cns11643_plane14 -> UCS table speed-optimized table */ -#elif defined (ICONV_TO_UCS_CCS_CNS11643_PLANE14) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&to_ucs_speed_cns11643_plane14 /* cns11643_plane14 -> UCS table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_CNS11643_PLANE14) || ... */ - diff --git a/lib/iconv/ccs/cns11643_plane2.c b/lib/iconv/ccs/cns11643_plane2.c deleted file mode 100644 index 15c287f..0000000 --- a/lib/iconv/ccs/cns11643_plane2.c +++ /dev/null @@ -1,11948 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for cns11643_plane2 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE2) \ - || defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE2) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -/* - * 16-bit cns11643_plane2 -> UCS speed-optimized table (42496 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE2) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_speed_cns11643_plane2[] = -{ - /* Heading Block */ - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,0x0100,0x0200,0x0300,0x0400,0x0500,0x0600,0x0700, - 0x0800,0x0900,0x0A00,0x0B00,0x0C00,0x0D00,0x0E00,0x0F00, - 0x1000,0x1100,0x1200,0x1300,0x1400,0x1500,0x1600,0x1700, - 0x1800,0x1900,0x1A00,0x1B00,0x1C00,0x1D00,0x1E00,0x1F00, - 0x2000,0x2100,0x2200,0x2300,0x2400,0x2500,0x2600,0x2700, - 0x2800,0x2900,0x2A00,0x2B00,0x2C00,0x2D00,0x2E00,0x2F00, - 0x3000,0x3100,0x3200,0x3300,0x3400,0x3500,0x3600,0x3700, - 0x3800,0x3900,0x3A00,0x3B00,0x3C00,0x3D00,0x3E00,0x3F00, - 0x4000,0x4100,0x4200,0x4300,0x4400,0x4500,0x4600,0x4700, - 0x4800,0x4900,0x4A00,0x4B00,0x4C00,0x4D00,0x4E00,0x4F00, - 0x5000,0x5100,0x5200,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - /* Block 34, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E42,0x4E5C,0x51F5,0x531A,0x5382,0x4E07,0x4E0C, - 0x4E47,0x4E8D,0x56D7,0x5C6E,0x5F73,0x4E0F,0x5187,0x4E0E, - 0x4E2E,0x4E93,0x4EC2,0x4EC9,0x4EC8,0x5198,0x52FC,0x536C, - 0x53B9,0x5720,0x5903,0x592C,0x5C10,0x5DFF,0x65E1,0x6BB3, - 0x6BCC,0x6C14,0x723F,0x4E31,0x4E3C,0x4EE8,0x4EDC,0x4EE9, - 0x4EE1,0x4EDD,0x4EDA,0x520C,0x5209,0x531C,0x534C,0x5722, - 0x5723,0x5917,0x592F,0x5B81,0x5B84,0x5C12,0x5C3B,0x5C74, - 0x5C73,0x5E04,0x5E80,0x5E82,0x5FC9,0x6209,0x6250,0x6C15, - 0x6C36,0x6C43,0x6C3F,0x6C3B,0x72AE,0x72B0,0x738A,0x79B8, - 0x808A,0x961E,0x4F0E,0x4F18,0x4F2C,0x4EF5,0x4F14,0x4EF1, - 0x4F00,0x4EF7,0x4F08,0x4F1D,0x4F02,0x4F05,0x4F22,0x4F13, - 0x4F04,0x4EF4,0x4F12,0x51B1,0x5213,0x5210,0x52A6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 35, Array index 0x0200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5322,0x531F,0x534D,0x538A,0x5407,0x56E1,0x56DF, - 0x572E,0x572A,0x5734,0x593C,0x5980,0x597C,0x5985,0x597B, - 0x597E,0x5977,0x597F,0x5B56,0x5C15,0x5C25,0x5C7C,0x5C7A, - 0x5C7B,0x5C7E,0x5DDF,0x5E75,0x5E84,0x5F02,0x5F1A,0x5F74, - 0x5FD5,0x5FD4,0x5FCF,0x625C,0x625E,0x6264,0x6261,0x6266, - 0x6262,0x6259,0x6260,0x625A,0x6265,0x6537,0x65EF,0x65EE, - 0x673E,0x6739,0x6738,0x673B,0x673A,0x673F,0x673C,0x6733, - 0x6C18,0x6C46,0x6C52,0x6C5C,0x6C4F,0x6C4A,0x6C54,0x6C4B, - 0x6C4C,0x7071,0x725E,0x72B4,0x72B5,0x738E,0x752A,0x767F, - 0x7A75,0x7F51,0x8278,0x827C,0x8280,0x827D,0x827F,0x864D, - 0x897E,0x9099,0x9097,0x9098,0x909B,0x9094,0x9622,0x9624, - 0x9620,0x9623,0x4F56,0x4F3B,0x4F62,0x4F49,0x4F53,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 36, Array index 0x0300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F64,0x4F3E,0x4F67,0x4F52,0x4F5F,0x4F41,0x4F58, - 0x4F2D,0x4F33,0x4F3F,0x4F61,0x518F,0x51B9,0x521C,0x521E, - 0x5221,0x52AD,0x52AE,0x5309,0x5363,0x5372,0x538E,0x538F, - 0x5430,0x5437,0x542A,0x5454,0x5445,0x5419,0x541C,0x5425, - 0x5418,0x543D,0x544F,0x5441,0x5428,0x5424,0x5447,0x56EE, - 0x56E7,0x56E5,0x5741,0x5745,0x574C,0x5749,0x574B,0x5752, - 0x5906,0x5940,0x59A6,0x5998,0x59A0,0x5997,0x598E,0x59A2, - 0x5990,0x598F,0x59A7,0x59A1,0x5B8E,0x5B92,0x5C28,0x5C2A, - 0x5C8D,0x5C8F,0x5C88,0x5C8B,0x5C89,0x5C92,0x5C8A,0x5C86, - 0x5C93,0x5C95,0x5DE0,0x5E0A,0x5E0E,0x5E8B,0x5E89,0x5E8C, - 0x5E88,0x5E8D,0x5F05,0x5F1D,0x5F78,0x5F76,0x5FD2,0x5FD1, - 0x5FD0,0x5FED,0x5FE8,0x5FEE,0x5FF3,0x5FE1,0x5FE4,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 37, Array index 0x0400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5FE3,0x5FFA,0x5FEF,0x5FF7,0x5FFB,0x6000,0x5FF4, - 0x623A,0x6283,0x628C,0x628E,0x628F,0x6294,0x6287,0x6271, - 0x627B,0x627A,0x6270,0x6281,0x6288,0x6277,0x627D,0x6272, - 0x6274,0x65F0,0x65F4,0x65F3,0x65F2,0x65F5,0x6745,0x6747, - 0x6759,0x6755,0x674C,0x6748,0x675D,0x674D,0x675A,0x674B, - 0x6BD0,0x6C19,0x6C1A,0x6C78,0x6C67,0x6C6B,0x6C84,0x6C8B, - 0x6C8F,0x6C71,0x6C6F,0x6C69,0x6C9A,0x6C6D,0x6C87,0x6C95, - 0x6C9C,0x6C66,0x6C73,0x6C65,0x6C7B,0x6C8E,0x7074,0x707A, - 0x7263,0x72BF,0x72BD,0x72C3,0x72C6,0x72C1,0x72BA,0x72C5, - 0x7395,0x7397,0x7393,0x7394,0x7392,0x753A,0x7539,0x7594, - 0x7595,0x7681,0x793D,0x8034,0x8095,0x8099,0x8090,0x8092, - 0x809C,0x8290,0x828F,0x8285,0x828E,0x8291,0x8293,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 38, Array index 0x0500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x828A,0x8283,0x8284,0x8C78,0x8FC9,0x8FBF,0x909F, - 0x90A1,0x90A5,0x909E,0x90A7,0x90A0,0x9630,0x9628,0x962F, - 0x962D,0x4E33,0x4F98,0x4F7C,0x4F85,0x4F7D,0x4F80,0x4F87, - 0x4F76,0x4F74,0x4F89,0x4F84,0x4F77,0x4F4C,0x4F97,0x4F6A, - 0x4F9A,0x4F79,0x4F81,0x4F78,0x4F90,0x4F9C,0x4F94,0x4F9E, - 0x4F92,0x4F82,0x4F95,0x4F6B,0x4F6E,0x519E,0x51BC,0x51BE, - 0x5235,0x5232,0x5233,0x5246,0x5231,0x52BC,0x530A,0x530B, - 0x533C,0x5392,0x5394,0x5487,0x547F,0x5481,0x5491,0x5482, - 0x5488,0x546B,0x547A,0x547E,0x5465,0x546C,0x5474,0x5466, - 0x548D,0x546F,0x5461,0x5460,0x5498,0x5463,0x5467,0x5464, - 0x56F7,0x56F9,0x576F,0x5772,0x576D,0x576B,0x5771,0x5770, - 0x5776,0x5780,0x5775,0x577B,0x5773,0x5774,0x5762,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 39, Array index 0x0600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5768,0x577D,0x590C,0x5945,0x59B5,0x59BA,0x59CF, - 0x59CE,0x59B2,0x59CC,0x59C1,0x59B6,0x59BC,0x59C3,0x59D6, - 0x59B1,0x59BD,0x59C0,0x59C8,0x59B4,0x59C7,0x5B62,0x5B65, - 0x5B93,0x5B95,0x5C44,0x5C47,0x5CAE,0x5CA4,0x5CA0,0x5CB5, - 0x5CAF,0x5CA8,0x5CAC,0x5C9F,0x5CA3,0x5CAD,0x5CA2,0x5CAA, - 0x5CA7,0x5C9D,0x5CA5,0x5CB6,0x5CB0,0x5CA6,0x5E17,0x5E14, - 0x5E19,0x5F28,0x5F22,0x5F23,0x5F24,0x5F54,0x5F82,0x5F7E, - 0x5F7D,0x5FDE,0x5FE5,0x602D,0x6026,0x6019,0x6032,0x600B, - 0x6034,0x600A,0x6017,0x6033,0x601A,0x601E,0x602C,0x6022, - 0x600D,0x6010,0x602E,0x6013,0x6011,0x600C,0x6009,0x601C, - 0x6214,0x623D,0x62AD,0x62B4,0x62D1,0x62BE,0x62AA,0x62B6, - 0x62CA,0x62AE,0x62B3,0x62AF,0x62BB,0x62A9,0x62B0,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 40, Array index 0x0700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x62B8,0x653D,0x65A8,0x65BB,0x6609,0x65FC,0x6604, - 0x6612,0x6608,0x65FB,0x6603,0x660B,0x660D,0x6605,0x65FD, - 0x6611,0x6610,0x66F6,0x670A,0x6785,0x676C,0x678E,0x6792, - 0x6776,0x677B,0x6798,0x6786,0x6784,0x6774,0x678D,0x678C, - 0x677A,0x679F,0x6791,0x6799,0x6783,0x677D,0x6781,0x6778, - 0x6779,0x6794,0x6B25,0x6B80,0x6B7E,0x6BDE,0x6C1D,0x6C93, - 0x6CEC,0x6CEB,0x6CEE,0x6CD9,0x6CB6,0x6CD4,0x6CAD,0x6CE7, - 0x6CB7,0x6CD0,0x6CC2,0x6CBA,0x6CC3,0x6CC6,0x6CED,0x6CF2, - 0x6CD2,0x6CDD,0x6CB4,0x6C8A,0x6C9D,0x6C80,0x6CDE,0x6CC0, - 0x6D30,0x6CCD,0x6CC7,0x6CB0,0x6CF9,0x6CCF,0x6CE9,0x6CD1, - 0x7094,0x7098,0x7085,0x7093,0x7086,0x7084,0x7091,0x7096, - 0x7082,0x709A,0x7083,0x726A,0x72D6,0x72CB,0x72D8,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 41, Array index 0x0800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x72C9,0x72DC,0x72D2,0x72D4,0x72DA,0x72CC,0x72D1, - 0x73A4,0x73A1,0x73AD,0x73A6,0x73A2,0x73A0,0x73AC,0x739D, - 0x74DD,0x74E8,0x753F,0x7540,0x753E,0x758C,0x7598,0x76AF, - 0x76F3,0x76F1,0x76F0,0x76F5,0x77F8,0x77FC,0x77F9,0x77FB, - 0x77FA,0x77F7,0x7942,0x793F,0x79C5,0x7A78,0x7A7B,0x7AFB, - 0x7C75,0x7CFD,0x8035,0x808F,0x80AE,0x80A3,0x80B8,0x80B5, - 0x80AD,0x8220,0x82A0,0x82C0,0x82AB,0x829A,0x8298,0x829B, - 0x82B5,0x82A7,0x82AE,0x82BC,0x829E,0x82BA,0x82B4,0x82A8, - 0x82A1,0x82A9,0x82C2,0x82A4,0x82C3,0x82B6,0x82A2,0x8670, - 0x866F,0x866D,0x866E,0x8C56,0x8FD2,0x8FCB,0x8FD3,0x8FCD, - 0x8FD6,0x8FD5,0x8FD7,0x90B2,0x90B4,0x90AF,0x90B3,0x90B0, - 0x9639,0x963D,0x963C,0x963A,0x9643,0x4FCD,0x4FC5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 42, Array index 0x0900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4FD3,0x4FB2,0x4FC9,0x4FCB,0x4FC1,0x4FD4,0x4FDC, - 0x4FD9,0x4FBB,0x4FB3,0x4FDB,0x4FC7,0x4FD6,0x4FBA,0x4FC0, - 0x4FB9,0x4FEC,0x5244,0x5249,0x52C0,0x52C2,0x533D,0x537C, - 0x5397,0x5396,0x5399,0x5398,0x54BA,0x54A1,0x54AD,0x54A5, - 0x54CF,0x54C3,0x830D,0x54B7,0x54AE,0x54D6,0x54B6,0x54C5, - 0x54C6,0x54A0,0x5470,0x54BC,0x54A2,0x54BE,0x5472,0x54DE, - 0x54B0,0x57B5,0x579E,0x579F,0x57A4,0x578C,0x5797,0x579D, - 0x579B,0x5794,0x5798,0x578F,0x5799,0x57A5,0x579A,0x5795, - 0x58F4,0x590D,0x5953,0x59E1,0x59DE,0x59EE,0x5A00,0x59F1, - 0x59DD,0x59FA,0x59FD,0x59FC,0x59F6,0x59E4,0x59F2,0x59F7, - 0x59DB,0x59E9,0x59F3,0x59F5,0x59E0,0x59FE,0x59F4,0x59ED, - 0x5BA8,0x5C4C,0x5CD0,0x5CD8,0x5CCC,0x5CD7,0x5CCB,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 43, Array index 0x0A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5CDB,0x5CDE,0x5CDA,0x5CC9,0x5CC7,0x5CCA,0x5CD6, - 0x5CD3,0x5CD4,0x5CCF,0x5CC8,0x5CC6,0x5CCE,0x5CDF,0x5CF8, - 0x5DF9,0x5E21,0x5E22,0x5E23,0x5E20,0x5E24,0x5EB0,0x5EA4, - 0x5EA2,0x5E9B,0x5EA3,0x5EA5,0x5F07,0x5F2E,0x5F56,0x5F86, - 0x6037,0x6039,0x6054,0x6072,0x605E,0x6045,0x6053,0x6047, - 0x6049,0x605B,0x604C,0x6040,0x6042,0x605F,0x6024,0x6044, - 0x6058,0x6066,0x606E,0x6242,0x6243,0x62CF,0x630D,0x630B, - 0x62F5,0x630E,0x6303,0x62EB,0x62F9,0x630F,0x630C,0x62F8, - 0x62F6,0x6300,0x6313,0x6314,0x62FA,0x6315,0x62FB,0x62F0, - 0x6541,0x6543,0x65AA,0x65BF,0x6636,0x6621,0x6632,0x6635, - 0x661C,0x6626,0x6622,0x6633,0x662B,0x663A,0x661D,0x6634, - 0x6639,0x662E,0x670F,0x6710,0x67C1,0x67F2,0x67C8,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 44, Array index 0x0B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x67BA,0x67DC,0x67BB,0x67F8,0x67D8,0x67C0,0x67B7, - 0x67C5,0x67EB,0x67E4,0x67DF,0x67B5,0x67CD,0x67B3,0x67F7, - 0x67F6,0x67EE,0x67E3,0x67C2,0x67B9,0x67CE,0x67E7,0x67F0, - 0x67B2,0x67FC,0x67C6,0x67ED,0x67CC,0x67AE,0x67E6,0x67DB, - 0x67FA,0x67C9,0x67CA,0x67C3,0x67EA,0x67CB,0x6B28,0x6B82, - 0x6B84,0x6BB6,0x6BD6,0x6BD8,0x6BE0,0x6C20,0x6C21,0x6D28, - 0x6D34,0x6D2D,0x6D1F,0x6D3C,0x6D3F,0x6D12,0x6D0A,0x6CDA, - 0x6D33,0x6D04,0x6D19,0x6D3A,0x6D1A,0x6D11,0x6D00,0x6D1D, - 0x6D42,0x6D01,0x6D18,0x6D37,0x6D03,0x6D0F,0x6D40,0x6D07, - 0x6D20,0x6D2C,0x6D08,0x6D22,0x6D09,0x6D10,0x70B7,0x709F, - 0x70BE,0x70B1,0x70B0,0x70A1,0x70B4,0x70B5,0x70A9,0x7241, - 0x7249,0x724A,0x726C,0x7270,0x7273,0x726E,0x72CA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 45, Array index 0x0C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x72E4,0x72E8,0x72EB,0x72DF,0x72EA,0x72E6,0x72E3, - 0x7385,0x73CC,0x73C2,0x73C8,0x73C5,0x73B9,0x73B6,0x73B5, - 0x73B4,0x73EB,0x73BF,0x73C7,0x73BE,0x73C3,0x73C6,0x73B8, - 0x73CB,0x74EC,0x74EE,0x752E,0x7547,0x7548,0x75A7,0x75AA, - 0x7679,0x76C4,0x7708,0x7703,0x7704,0x7705,0x770A,0x76F7, - 0x76FB,0x76FA,0x77E7,0x77E8,0x7806,0x7811,0x7812,0x7805, - 0x7810,0x780F,0x780E,0x7809,0x7803,0x7813,0x794A,0x794C, - 0x794B,0x7945,0x7944,0x79D5,0x79CD,0x79CF,0x79D6,0x79CE, - 0x7A80,0x7A7E,0x7AD1,0x7B00,0x7B01,0x7C7A,0x7C78,0x7C79, - 0x7C7F,0x7C80,0x7C81,0x7D03,0x7D08,0x7D01,0x7F58,0x7F91, - 0x7F8D,0x7FBE,0x8007,0x800E,0x800F,0x8014,0x8037,0x80D8, - 0x80C7,0x80E0,0x80D1,0x80C8,0x80C2,0x80D0,0x80C5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 46, Array index 0x0D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x80E3,0x80D9,0x80DC,0x80CA,0x80D5,0x80C9,0x80CF, - 0x80D7,0x80E6,0x80CD,0x81FF,0x8221,0x8294,0x82D9,0x82FE, - 0x82F9,0x8307,0x82E8,0x8300,0x82D5,0x833A,0x82EB,0x82D6, - 0x82F4,0x82EC,0x82E1,0x82F2,0x82F5,0x830C,0x82FB,0x82F6, - 0x82F0,0x82EA,0x82E4,0x82E0,0x82FA,0x82F3,0x82ED,0x8677, - 0x8674,0x867C,0x8673,0x8841,0x884E,0x8867,0x886A,0x8869, - 0x89D3,0x8A04,0x8A07,0x8D72,0x8FE3,0x8FE1,0x8FEE,0x8FE0, - 0x90F1,0x90BD,0x90BF,0x90D5,0x90C5,0x90BE,0x90C7,0x90CB, - 0x90C8,0x91D4,0x91D3,0x9654,0x964F,0x9651,0x9653,0x964A, - 0x964E,0x501E,0x5005,0x5007,0x5013,0x5022,0x5030,0x501B, - 0x4FF5,0x4FF4,0x5033,0x5037,0x502C,0x4FF6,0x4FF7,0x5017, - 0x501C,0x5020,0x5027,0x5035,0x502F,0x5031,0x500E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 47, Array index 0x0E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x515A,0x5194,0x5193,0x51CA,0x51C4,0x51C5,0x51C8, - 0x51CE,0x5261,0x525A,0x5252,0x525E,0x525F,0x5255,0x5262, - 0x52CD,0x530E,0x539E,0x5526,0x54E2,0x5517,0x5512,0x54E7, - 0x54F3,0x54E4,0x551A,0x54FF,0x5504,0x5508,0x54EB,0x5511, - 0x5505,0x54F1,0x550A,0x54FB,0x54F7,0x54F8,0x54E0,0x550E, - 0x5503,0x550B,0x5701,0x5702,0x57CC,0x5832,0x57D5,0x57D2, - 0x57BA,0x57C6,0x57BD,0x57BC,0x57B8,0x57B6,0x57BF,0x57C7, - 0x57D0,0x57B9,0x57C1,0x590E,0x594A,0x5A19,0x5A16,0x5A2D, - 0x5A2E,0x5A15,0x5A0F,0x5A17,0x5A0A,0x5A1E,0x5A33,0x5B6C, - 0x5BA7,0x5BAD,0x5BAC,0x5C03,0x5C56,0x5C54,0x5CEC,0x5CFF, - 0x5CEE,0x5CF1,0x5CF7,0x5D00,0x5CF9,0x5E29,0x5E28,0x5EA8, - 0x5EAE,0x5EAA,0x5EAC,0x5F33,0x5F30,0x5F67,0x605D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 48, Array index 0x0F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x605A,0x6067,0x6041,0x60A2,0x6088,0x6080,0x6092, - 0x6081,0x609D,0x6083,0x6095,0x609B,0x6097,0x6087,0x609C, - 0x608E,0x6219,0x6246,0x62F2,0x6310,0x6356,0x632C,0x6344, - 0x6345,0x6336,0x6343,0x63E4,0x6339,0x634B,0x634A,0x633C, - 0x6329,0x6341,0x6334,0x6358,0x6354,0x6359,0x632D,0x6347, - 0x6333,0x635A,0x6351,0x6338,0x6357,0x6340,0x6348,0x654A, - 0x6546,0x65C6,0x65C3,0x65C4,0x65C2,0x664A,0x665F,0x6647, - 0x6651,0x6712,0x6713,0x681F,0x681A,0x6849,0x6832,0x6833, - 0x683B,0x684B,0x684F,0x6816,0x6831,0x681C,0x6835,0x682B, - 0x682D,0x682F,0x684E,0x6844,0x6834,0x681D,0x6812,0x6814, - 0x6826,0x6828,0x682E,0x684D,0x683A,0x6825,0x6820,0x6B2C, - 0x6B2F,0x6B2D,0x6B31,0x6B34,0x6B6D,0x8082,0x6B88,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 49, Array index 0x1000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6BE6,0x6BE4,0x6BE8,0x6BE3,0x6BE2,0x6BE7,0x6C25, - 0x6D7A,0x6D63,0x6D64,0x6D76,0x6D0D,0x6D61,0x6D92,0x6D58, - 0x6D62,0x6D6D,0x6D6F,0x6D91,0x6D8D,0x6DEF,0x6D7F,0x6D86, - 0x6D5E,0x6D67,0x6D60,0x6D97,0x6D70,0x6D7C,0x6D5F,0x6D82, - 0x6D98,0x6D2F,0x6D68,0x6D8B,0x6D7E,0x6D80,0x6D84,0x6D16, - 0x6D83,0x6D7B,0x6D7D,0x6D75,0x6D90,0x70DC,0x70D3,0x70D1, - 0x70DD,0x70CB,0x7F39,0x70E2,0x70D7,0x70D2,0x70DE,0x70E0, - 0x70D4,0x70CD,0x70C5,0x70C6,0x70C7,0x70DA,0x70CE,0x70E1, - 0x7242,0x7278,0x7277,0x7276,0x7300,0x72FA,0x72F4,0x72FE, - 0x72F6,0x72F3,0x72FB,0x7301,0x73D3,0x73D9,0x73E5,0x73D6, - 0x73BC,0x73E7,0x73E3,0x73E9,0x73DC,0x73D2,0x73DB,0x73D4, - 0x73DD,0x73DA,0x73D7,0x73D8,0x73E8,0x74DE,0x74DF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 50, Array index 0x1100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x74F4,0x74F5,0x7521,0x755B,0x755F,0x75B0,0x75C1, - 0x75BB,0x75C4,0x75C0,0x75BF,0x75B6,0x75BA,0x768A,0x76C9, - 0x771D,0x771B,0x7710,0x7713,0x7712,0x7723,0x7711,0x7715, - 0x7719,0x771A,0x7722,0x7727,0x7823,0x782C,0x7822,0x7835, - 0x782F,0x7828,0x782E,0x782B,0x7821,0x7829,0x7833,0x782A, - 0x7831,0x7954,0x795B,0x794F,0x795C,0x7953,0x7952,0x7951, - 0x79EB,0x79EC,0x79E0,0x79EE,0x79ED,0x79EA,0x79DC,0x79DE, - 0x79DD,0x7A86,0x7A89,0x7A85,0x7A8B,0x7A8C,0x7A8A,0x7A87, - 0x7AD8,0x7B10,0x7B04,0x7B13,0x7B05,0x7B0F,0x7B08,0x7B0A, - 0x7B0E,0x7B09,0x7B12,0x7C84,0x7C91,0x7C8A,0x7C8C,0x7C88, - 0x7C8D,0x7C85,0x7D1E,0x7D1D,0x7D11,0x7D0E,0x7D18,0x7D16, - 0x7D13,0x7D1F,0x7D12,0x7D0F,0x7D0C,0x7F5C,0x7F61,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 51, Array index 0x1200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7F5E,0x7F60,0x7F5D,0x7F5B,0x7F96,0x7F92,0x7FC3, - 0x7FC2,0x7FC0,0x8016,0x803E,0x8039,0x80FA,0x80F2,0x80F9, - 0x80F5,0x8101,0x80FB,0x8100,0x8201,0x822F,0x8225,0x8333, - 0x832D,0x8344,0x8319,0x8351,0x8325,0x8356,0x833F,0x8341, - 0x8326,0x831C,0x8322,0x8342,0x834E,0x831B,0x832A,0x8308, - 0x833C,0x834D,0x8316,0x8324,0x8320,0x8337,0x832F,0x8329, - 0x8347,0x8345,0x834C,0x8353,0x831E,0x832C,0x834B,0x8327, - 0x8348,0x8653,0x8652,0x86A2,0x86A8,0x8696,0x868D,0x8691, - 0x869E,0x8687,0x8697,0x8686,0x868B,0x869A,0x8685,0x86A5, - 0x8699,0x86A1,0x86A7,0x8695,0x8698,0x868E,0x869D,0x8690, - 0x8694,0x8843,0x8844,0x886D,0x8875,0x8876,0x8872,0x8880, - 0x8871,0x887F,0x886F,0x8883,0x887E,0x8874,0x887C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 52, Array index 0x1300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8A12,0x8C47,0x8C57,0x8C7B,0x8CA4,0x8CA3,0x8D76, - 0x8D78,0x8DB5,0x8DB7,0x8DB6,0x8ED1,0x8ED3,0x8FFE,0x8FF5, - 0x9002,0x8FFF,0x8FFB,0x9004,0x8FFC,0x8FF6,0x90D6,0x90E0, - 0x90D9,0x90DA,0x90E3,0x90DF,0x90E5,0x90D8,0x90DB,0x90D7, - 0x90DC,0x90E4,0x9150,0x914E,0x914F,0x91D5,0x91E2,0x91DA, - 0x965C,0x965F,0x96BC,0x98E3,0x9ADF,0x9B2F,0x4E7F,0x5070, - 0x506A,0x5061,0x505E,0x5060,0x5053,0x504B,0x505D,0x5072, - 0x5048,0x504D,0x5041,0x505B,0x504A,0x5062,0x5015,0x5045, - 0x505F,0x5069,0x506B,0x5063,0x5064,0x5046,0x5040,0x506E, - 0x5073,0x5057,0x5051,0x51D0,0x526B,0x526D,0x526C,0x526E, - 0x52D6,0x52D3,0x532D,0x539C,0x5575,0x5576,0x553C,0x554D, - 0x5550,0x5534,0x552A,0x5551,0x5562,0x5536,0x5535,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 53, Array index 0x1400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5530,0x5552,0x5545,0x550C,0x5532,0x5565,0x554E, - 0x5539,0x5548,0x552D,0x553B,0x5540,0x554B,0x570A,0x5707, - 0x57FB,0x5814,0x57E2,0x57F6,0x57DC,0x57F4,0x5800,0x57ED, - 0x57FD,0x5808,0x57F8,0x580B,0x57F3,0x57CF,0x5807,0x57EE, - 0x57E3,0x57F2,0x57E5,0x57EC,0x57E1,0x580E,0x57FC,0x5810, - 0x57E7,0x5801,0x580C,0x57F1,0x57E9,0x57F0,0x580D,0x5804, - 0x595C,0x5A60,0x5A58,0x5A55,0x5A67,0x5A5E,0x5A38,0x5A35, - 0x5A6D,0x5A50,0x5A5F,0x5A65,0x5A6C,0x5A53,0x5A64,0x5A57, - 0x5A43,0x5A5D,0x5A52,0x5A44,0x5A5B,0x5A48,0x5A8E,0x5A3E, - 0x5A4D,0x5A39,0x5A4C,0x5A70,0x5A69,0x5A47,0x5A51,0x5A56, - 0x5A42,0x5A5C,0x5B72,0x5B6E,0x5BC1,0x5BC0,0x5C59,0x5D1E, - 0x5D0B,0x5D1D,0x5D1A,0x5D20,0x5D0C,0x5D28,0x5D0D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 54, Array index 0x1500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D26,0x5D25,0x5D0F,0x5D30,0x5D12,0x5D23,0x5D1F, - 0x5D2E,0x5E3E,0x5E34,0x5EB1,0x5EB4,0x5EB9,0x5EB2,0x5EB3, - 0x5F36,0x5F38,0x5F9B,0x5F96,0x5F9F,0x608A,0x6090,0x6086, - 0x60BE,0x60B0,0x60BA,0x60D3,0x60D4,0x60CF,0x60E4,0x60D9, - 0x60DD,0x60C8,0x60B1,0x60DB,0x60B7,0x60CA,0x60BF,0x60C3, - 0x60CD,0x60C0,0x6332,0x6365,0x638A,0x6382,0x637D,0x63BD, - 0x639E,0x63AD,0x639D,0x6397,0x63AB,0x638E,0x636F,0x6387, - 0x6390,0x636E,0x63AF,0x6375,0x639C,0x636D,0x63AE,0x637C, - 0x63A4,0x633B,0x639F,0x6378,0x6385,0x6381,0x6391,0x638D, - 0x6370,0x6553,0x65CD,0x6665,0x6661,0x665B,0x6659,0x665C, - 0x6662,0x6718,0x6879,0x6887,0x6890,0x689C,0x686D,0x686E, - 0x68AE,0x68AB,0x6956,0x686F,0x68A3,0x68AC,0x68A9,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 55, Array index 0x1600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6875,0x6874,0x68B2,0x688F,0x6877,0x6892,0x687C, - 0x686B,0x6872,0x68AA,0x6880,0x6871,0x687E,0x689B,0x6896, - 0x688B,0x68A0,0x6889,0x68A4,0x6878,0x687B,0x6891,0x688C, - 0x688A,0x687D,0x6B36,0x6B33,0x6B37,0x6B38,0x6B91,0x6B8F, - 0x6B8D,0x6B8E,0x6B8C,0x6C2A,0x6DC0,0x6DAB,0x6DB4,0x6DB3, - 0x6E74,0x6DAC,0x6DE9,0x6DE2,0x6DB7,0x6DF6,0x6DD4,0x6E00, - 0x6DC8,0x6DE0,0x6DDF,0x6DD6,0x6DBE,0x6DE5,0x6DDC,0x6DDD, - 0x6DDB,0x6DF4,0x6DCA,0x6DBD,0x6DED,0x6DF0,0x6DBA,0x6DD5, - 0x6DC2,0x6DCF,0x6DC9,0x6DD0,0x6DF2,0x6DD3,0x6DFD,0x6DD7, - 0x6DCD,0x6DE3,0x6DBB,0x70FA,0x710D,0x70F7,0x7117,0x70F4, - 0x710C,0x70F0,0x7104,0x70F3,0x7110,0x70FC,0x70FF,0x7106, - 0x7113,0x7100,0x70F8,0x70F6,0x710B,0x7102,0x710E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 56, Array index 0x1700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x727E,0x727B,0x727C,0x727F,0x731D,0x7317,0x7307, - 0x7311,0x7318,0x730A,0x7308,0x72FF,0x730F,0x731E,0x7388, - 0x73F6,0x73F8,0x73F5,0x7404,0x7401,0x73FD,0x7407,0x7400, - 0x73FA,0x73FC,0x73FF,0x740C,0x740B,0x73F4,0x7408,0x7564, - 0x7563,0x75CE,0x75D2,0x75CF,0x75CB,0x75CC,0x75D1,0x75D0, - 0x768F,0x7689,0x76D3,0x7739,0x772F,0x772D,0x7731,0x7732, - 0x7734,0x7733,0x773D,0x7725,0x773B,0x7735,0x7848,0x7852, - 0x7849,0x784D,0x784A,0x784C,0x7826,0x7845,0x7850,0x7964, - 0x7967,0x7969,0x796A,0x7963,0x796B,0x7961,0x79BB,0x79FA, - 0x79F8,0x79F6,0x79F7,0x7A8F,0x7A94,0x7A90,0x7B35,0x7B3B, - 0x7B34,0x7B25,0x7B30,0x7B22,0x7B24,0x7B33,0x7B18,0x7B2A, - 0x7B1D,0x7B31,0x7B2B,0x7B2D,0x7B2F,0x7B32,0x7B38,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 57, Array index 0x1800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7B1A,0x7B23,0x7C94,0x7C98,0x7C96,0x7CA3,0x7D35, - 0x7D3D,0x7D38,0x7D36,0x7D3A,0x7D45,0x7D2C,0x7D29,0x7D41, - 0x7D47,0x7D3E,0x7D3F,0x7D4A,0x7D3B,0x7D28,0x7F63,0x7F95, - 0x7F9C,0x7F9D,0x7F9B,0x7FCA,0x7FCB,0x7FCD,0x7FD0,0x7FD1, - 0x7FC7,0x7FCF,0x7FC9,0x801F,0x801E,0x801B,0x8047,0x8043, - 0x8048,0x8118,0x8125,0x8119,0x811B,0x812D,0x811F,0x812C, - 0x811E,0x8121,0x8115,0x8127,0x811D,0x8122,0x8211,0x8238, - 0x8233,0x823A,0x8234,0x8232,0x8274,0x8390,0x83A3,0x83A8, - 0x838D,0x837A,0x8373,0x83A4,0x8374,0x838F,0x8381,0x8395, - 0x8399,0x8375,0x8394,0x83A9,0x837D,0x8383,0x838C,0x839D, - 0x839B,0x83AA,0x838B,0x837E,0x83A5,0x83AF,0x8388,0x8397, - 0x83B0,0x837F,0x83A6,0x8387,0x83AE,0x8376,0x8659,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 58, Array index 0x1900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8656,0x86BF,0x86B7,0x86C2,0x86C1,0x86C5,0x86BA, - 0x86B0,0x86C8,0x86B9,0x86B3,0x86B8,0x86CC,0x86B4,0x86BB, - 0x86BC,0x86C3,0x86BD,0x86BE,0x8852,0x8889,0x8895,0x88A8, - 0x88A2,0x88AA,0x889A,0x8891,0x88A1,0x889F,0x8898,0x88A7, - 0x8899,0x889B,0x8897,0x88A4,0x88AC,0x888C,0x8893,0x888E, - 0x8982,0x89D6,0x89D9,0x89D5,0x8A30,0x8A27,0x8A2C,0x8A1E, - 0x8C39,0x8C3B,0x8C5C,0x8C5D,0x8C7D,0x8CA5,0x8D7D,0x8D7B, - 0x8D79,0x8DBC,0x8DC2,0x8DB9,0x8DBF,0x8DC1,0x8ED8,0x8EDE, - 0x8EDD,0x8EDC,0x8ED7,0x8EE0,0x8EE1,0x9024,0x900B,0x9011, - 0x901C,0x900C,0x9021,0x90EF,0x90EA,0x90F0,0x90F4,0x90F2, - 0x90F3,0x90D4,0x90EB,0x90EC,0x90E9,0x9156,0x9158,0x915A, - 0x9153,0x9155,0x91EC,0x91F4,0x91F1,0x91F3,0x91F8,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 59, Array index 0x1A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x91E4,0x91F9,0x91EA,0x91EB,0x91F7,0x91E8,0x91EE, - 0x957A,0x9586,0x9588,0x967C,0x966D,0x966B,0x9671,0x966F, - 0x96BF,0x976A,0x9804,0x98E5,0x9997,0x509B,0x5095,0x5094, - 0x509E,0x508B,0x50A3,0x5083,0x508C,0x508E,0x509D,0x5068, - 0x509C,0x5092,0x5082,0x5087,0x515F,0x51D4,0x5312,0x5311, - 0x53A4,0x53A7,0x5591,0x55A8,0x55A5,0x55AD,0x5577,0x5645, - 0x55A2,0x5593,0x5588,0x558F,0x55B5,0x5581,0x55A3,0x5592, - 0x55A4,0x557D,0x558C,0x55A6,0x557F,0x5595,0x55A1,0x558E, - 0x570C,0x5829,0x5837,0x5819,0x581E,0x5827,0x5823,0x5828, - 0x57F5,0x5848,0x5825,0x581C,0x581B,0x5833,0x583F,0x5836, - 0x582E,0x5839,0x5838,0x582D,0x582C,0x583B,0x5961,0x5AAF, - 0x5A94,0x5A9F,0x5A7A,0x5AA2,0x5A9E,0x5A78,0x5AA6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 60, Array index 0x1B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5A7C,0x5AA5,0x5AAC,0x5A95,0x5AAE,0x5A37,0x5A84, - 0x5A8A,0x5A97,0x5A83,0x5A8B,0x5AA9,0x5A7B,0x5A7D,0x5A8C, - 0x5A9C,0x5A8F,0x5A93,0x5A9D,0x5BEA,0x5BCD,0x5BCB,0x5BD4, - 0x5BD1,0x5BCA,0x5BCE,0x5C0C,0x5C30,0x5D37,0x5D43,0x5D6B, - 0x5D41,0x5D4B,0x5D3F,0x5D35,0x5D51,0x5D4E,0x5D55,0x5D33, - 0x5D3A,0x5D52,0x5D3D,0x5D31,0x5D59,0x5D42,0x5D39,0x5D49, - 0x5D38,0x5D3C,0x5D32,0x5D36,0x5D40,0x5D45,0x5E44,0x5E41, - 0x5F58,0x5FA6,0x5FA5,0x5FAB,0x60C9,0x60B9,0x60CC,0x60E2, - 0x60CE,0x60C4,0x6114,0x60F2,0x610A,0x6116,0x6105,0x60F5, - 0x6113,0x60F8,0x60FC,0x60FE,0x60C1,0x6103,0x6118,0x611D, - 0x6110,0x60FF,0x6104,0x610B,0x624A,0x6394,0x63B1,0x63B0, - 0x63CE,0x63E5,0x63E8,0x63EF,0x63C3,0x649D,0x63F3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 61, Array index 0x1C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x63CA,0x63E0,0x63F6,0x63D5,0x63F2,0x63F5,0x6461, - 0x63DF,0x63BE,0x63DD,0x63DC,0x63C4,0x63D8,0x63D3,0x63C2, - 0x63C7,0x63CC,0x63CB,0x63C8,0x63F0,0x63D7,0x63D9,0x6532, - 0x6567,0x656A,0x6564,0x655C,0x6568,0x6565,0x658C,0x659D, - 0x659E,0x65AE,0x65D0,0x65D2,0x667C,0x666C,0x667B,0x6680, - 0x6671,0x6679,0x666A,0x6672,0x6701,0x690C,0x68D3,0x6904, - 0x68DC,0x692A,0x68EC,0x68EA,0x68F1,0x690F,0x68D6,0x68F7, - 0x68EB,0x68E4,0x68F6,0x6913,0x6910,0x68F3,0x68E1,0x6907, - 0x68CC,0x6908,0x6970,0x68B4,0x6911,0x68EF,0x68C6,0x6914, - 0x68F8,0x68D0,0x68FD,0x68FC,0x68E8,0x690B,0x690A,0x6917, - 0x68CE,0x68C8,0x68DD,0x68DE,0x68E6,0x68F4,0x68D1,0x6906, - 0x68D4,0x68E9,0x6915,0x6925,0x68C7,0x6B39,0x6B3B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 62, Array index 0x1D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B3F,0x6B3C,0x6B94,0x6B97,0x6B99,0x6B95,0x6BBD, - 0x6BF0,0x6BF2,0x6BF3,0x6C30,0x6DFC,0x6E46,0x6E47,0x6E1F, - 0x6E49,0x6E88,0x6E3C,0x6E3D,0x6E45,0x6E62,0x6E2B,0x6E3F, - 0x6E41,0x6E5D,0x6E73,0x6E1C,0x6E33,0x6E4B,0x6E40,0x6E51, - 0x6E3B,0x6E03,0x6E2E,0x6E5E,0x6E68,0x6E5C,0x6E61,0x6E31, - 0x6E28,0x6E60,0x6E71,0x6E6B,0x6E39,0x6E22,0x6E30,0x6E53, - 0x6E65,0x6E27,0x6E78,0x6E64,0x6E77,0x6E55,0x6E79,0x6E52, - 0x6E66,0x6E35,0x6E36,0x6E5A,0x7120,0x711E,0x712F,0x70FB, - 0x712E,0x7131,0x7123,0x7125,0x7122,0x7132,0x711F,0x7128, - 0x713A,0x711B,0x724B,0x725A,0x7288,0x7289,0x7286,0x7285, - 0x728B,0x7312,0x730B,0x7330,0x7322,0x7331,0x7333,0x7327, - 0x7332,0x732D,0x7326,0x7323,0x7335,0x730C,0x742E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 63, Array index 0x1E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x742C,0x7430,0x742B,0x7416,0x741A,0x7421,0x742D, - 0x7431,0x7424,0x7423,0x741D,0x7429,0x7420,0x7432,0x74FB, - 0x752F,0x756F,0x756C,0x75E7,0x75DA,0x75E1,0x75E6,0x75DD, - 0x75DF,0x75E4,0x75D7,0x7695,0x7692,0x76DA,0x7746,0x7747, - 0x7744,0x774D,0x7745,0x774A,0x774E,0x774B,0x774C,0x77DE, - 0x77EC,0x7860,0x7864,0x7865,0x785C,0x786D,0x7871,0x786A, - 0x786E,0x7870,0x7869,0x7868,0x785E,0x7862,0x7974,0x7973, - 0x7972,0x7970,0x7A02,0x7A0A,0x7A03,0x7A0C,0x7A04,0x7A99, - 0x7AE6,0x7AE4,0x7B4A,0x7B47,0x7B44,0x7B48,0x7B4C,0x7B4E, - 0x7B40,0x7B58,0x7B45,0x7CA2,0x7C9E,0x7CA8,0x7CA1,0x7D58, - 0x7D6F,0x7D63,0x7D53,0x7D56,0x7D67,0x7D6A,0x7D4F,0x7D6D, - 0x7D5C,0x7D6B,0x7D52,0x7D54,0x7D69,0x7D51,0x7D5F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 64, Array index 0x1F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7D4E,0x7F3E,0x7F3F,0x7F65,0x7F66,0x7FA2,0x7FA0, - 0x7FA1,0x7FD7,0x8051,0x804F,0x8050,0x80FE,0x80D4,0x8143, - 0x814A,0x8152,0x814F,0x8147,0x813D,0x814D,0x813A,0x81E6, - 0x81EE,0x81F7,0x81F8,0x81F9,0x8204,0x823C,0x823D,0x823F, - 0x8275,0x833B,0x83CF,0x83F9,0x8423,0x83C0,0x83E8,0x8412, - 0x83E7,0x83E4,0x83FC,0x83F6,0x8410,0x83C6,0x83C8,0x83EB, - 0x83E3,0x83BF,0x8401,0x83DD,0x83E5,0x83D8,0x83FF,0x83E1, - 0x83CB,0x83CE,0x83D6,0x83F5,0x83C9,0x8409,0x840F,0x83DE, - 0x8411,0x8406,0x83C2,0x83F3,0x83D5,0x83FA,0x83C7,0x83D1, - 0x83EA,0x8413,0x839A,0x83C3,0x83EC,0x83EE,0x83C4,0x83FB, - 0x83D7,0x83E2,0x841B,0x83DB,0x83FE,0x86D8,0x86E2,0x86E6, - 0x86D3,0x86E3,0x86DA,0x86EA,0x86DD,0x86EB,0x86DC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 65, Array index 0x2000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x86EC,0x86E9,0x86D7,0x86E8,0x86D1,0x8848,0x8856, - 0x8855,0x88BA,0x88D7,0x88B9,0x88B8,0x88C0,0x88BE,0x88B6, - 0x88BC,0x88B7,0x88BD,0x88B2,0x8901,0x88C9,0x8995,0x8998, - 0x8997,0x89DD,0x89DA,0x89DB,0x8A4E,0x8A4D,0x8A39,0x8A59, - 0x8A40,0x8A57,0x8A58,0x8A44,0x8A45,0x8A52,0x8A48,0x8A51, - 0x8A4A,0x8A4C,0x8A4F,0x8C5F,0x8C81,0x8C80,0x8CBA,0x8CBE, - 0x8CB0,0x8CB9,0x8CB5,0x8D84,0x8D80,0x8D89,0x8DD8,0x8DD3, - 0x8DCD,0x8DC7,0x8DD6,0x8DDC,0x8DCF,0x8DD5,0x8DD9,0x8DC8, - 0x8DD7,0x8DC5,0x8EEF,0x8EF7,0x8EFA,0x8EF9,0x8EE6,0x8EEE, - 0x8EE5,0x8EF5,0x8EE7,0x8EE8,0x8EF6,0x8EEB,0x8EF1,0x8EEC, - 0x8EF4,0x8EE9,0x902D,0x9034,0x902F,0x9106,0x912C,0x9104, - 0x90FF,0x90FC,0x9108,0x90F9,0x90FB,0x9101,0x9100,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 66, Array index 0x2100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9107,0x9105,0x9103,0x9161,0x9164,0x915F,0x9162, - 0x9160,0x9201,0x920A,0x9225,0x9203,0x921A,0x9226,0x920F, - 0x920C,0x9200,0x9212,0x91FF,0x91FD,0x9206,0x9204,0x9227, - 0x9202,0x921C,0x9224,0x9219,0x9217,0x9205,0x9216,0x957B, - 0x958D,0x958C,0x9590,0x9687,0x967E,0x9688,0x9689,0x9683, - 0x9680,0x96C2,0x96C8,0x96C3,0x96F1,0x96F0,0x976C,0x9770, - 0x976E,0x9807,0x98A9,0x98EB,0x9CE6,0x9EF9,0x4E83,0x4E84, - 0x4EB6,0x50BD,0x50BF,0x50C6,0x50AE,0x50C4,0x50CA,0x50B4, - 0x50C8,0x50C2,0x50B0,0x50C1,0x50BA,0x50B1,0x50CB,0x50C9, - 0x50B6,0x50B8,0x51D7,0x527A,0x5278,0x527B,0x527C,0x55C3, - 0x55DB,0x55CC,0x55D0,0x55CB,0x55CA,0x55DD,0x55C0,0x55D4, - 0x55C4,0x55E9,0x55BF,0x55D2,0x558D,0x55CF,0x55D5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 67, Array index 0x2200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x55E2,0x55D6,0x55C8,0x55F2,0x55CD,0x55D9,0x55C2, - 0x5714,0x5853,0x5868,0x5864,0x584F,0x584D,0x5849,0x586F, - 0x5855,0x584E,0x585D,0x5859,0x5865,0x585B,0x583D,0x5863, - 0x5871,0x58FC,0x5AC7,0x5AC4,0x5ACB,0x5ABA,0x5AB8,0x5AB1, - 0x5AB5,0x5AB0,0x5ABF,0x5AC8,0x5ABB,0x5AC6,0x5AB7,0x5AC0, - 0x5ACA,0x5AB4,0x5AB6,0x5ACD,0x5AB9,0x5A90,0x5BD6,0x5BD8, - 0x5BD9,0x5C1F,0x5C33,0x5D71,0x5D63,0x5D4A,0x5D65,0x5D72, - 0x5D6C,0x5D5E,0x5D68,0x5D67,0x5D62,0x5DF0,0x5E4F,0x5E4E, - 0x5E4A,0x5E4D,0x5E4B,0x5EC5,0x5ECC,0x5EC6,0x5ECB,0x5EC7, - 0x5F40,0x5FAF,0x5FAD,0x60F7,0x6149,0x614A,0x612B,0x6145, - 0x6136,0x6132,0x612E,0x6146,0x612F,0x614F,0x6129,0x6140, - 0x6220,0x9168,0x6223,0x6225,0x6224,0x63C5,0x63F1,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 68, Array index 0x2300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x63EB,0x6410,0x6412,0x6409,0x6420,0x6424,0x6433, - 0x6443,0x641F,0x6415,0x6418,0x6439,0x6437,0x6422,0x6423, - 0x640C,0x6426,0x6430,0x6428,0x6441,0x6435,0x642F,0x640A, - 0x641A,0x6440,0x6425,0x6427,0x640B,0x63E7,0x641B,0x642E, - 0x6421,0x640E,0x656F,0x6592,0x65D3,0x6686,0x668C,0x6695, - 0x6690,0x668B,0x668A,0x6699,0x6694,0x6678,0x6720,0x6966, - 0x695F,0x6938,0x694E,0x6962,0x6971,0x693F,0x6945,0x696A, - 0x6939,0x6942,0x6957,0x6959,0x697A,0x6948,0x6949,0x6935, - 0x696C,0x6933,0x693D,0x6965,0x68F0,0x6978,0x6934,0x6969, - 0x6940,0x696F,0x6944,0x6976,0x6958,0x6941,0x6974,0x694C, - 0x693B,0x694B,0x6937,0x695C,0x694F,0x6951,0x6932,0x6952, - 0x692F,0x697B,0x693C,0x6B46,0x6B45,0x6B43,0x6B42,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 69, Array index 0x2400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B48,0x6B41,0x6B9B,0x6BFB,0x6BFC,0x6BF9,0x6BF7, - 0x6BF8,0x6E9B,0x6ED6,0x6EC8,0x6E8F,0x6EC0,0x6E9F,0x6E93, - 0x6E94,0x6EA0,0x6EB1,0x6EB9,0x6EC6,0x6ED2,0x6EBD,0x6EC1, - 0x6E9E,0x6EC9,0x6EB7,0x6EB0,0x6ECD,0x6EA6,0x6ECF,0x6EB2, - 0x6EBE,0x6EC3,0x6EDC,0x6ED8,0x6E99,0x6E92,0x6E8E,0x6E8D, - 0x6EA4,0x6EA1,0x6EBF,0x6EB3,0x6ED0,0x6ECA,0x6E97,0x6EAE, - 0x6EA3,0x7147,0x7154,0x7152,0x7163,0x7160,0x7141,0x715D, - 0x7162,0x7172,0x7178,0x716A,0x7161,0x7142,0x7158,0x7143, - 0x714B,0x7170,0x715F,0x7150,0x7153,0x7144,0x714D,0x715A, - 0x724F,0x728D,0x728C,0x7291,0x7290,0x728E,0x733C,0x7342, - 0x733B,0x733A,0x7340,0x734A,0x7349,0x7444,0x744A,0x744B, - 0x7452,0x7451,0x7457,0x7440,0x744F,0x7450,0x744E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 70, Array index 0x2500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7442,0x7446,0x744D,0x7454,0x74E1,0x74FF,0x74FE, - 0x74FD,0x751D,0x7579,0x7577,0x6983,0x75EF,0x760F,0x7603, - 0x75F7,0x75FE,0x75FC,0x75F9,0x75F8,0x7610,0x75FB,0x75F6, - 0x75ED,0x75F5,0x75FD,0x7699,0x76B5,0x76DD,0x7755,0x775F, - 0x7760,0x7752,0x7756,0x775A,0x7769,0x7767,0x7754,0x7759, - 0x776D,0x77E0,0x7887,0x789A,0x7894,0x788F,0x7884,0x7895, - 0x7885,0x7886,0x78A1,0x7883,0x7879,0x7899,0x7880,0x7896, - 0x787B,0x797C,0x7982,0x797D,0x7979,0x7A11,0x7A18,0x7A19, - 0x7A12,0x7A17,0x7A15,0x7A22,0x7A13,0x7A1B,0x7A10,0x7AA3, - 0x7AA2,0x7A9E,0x7AEB,0x7B66,0x7B64,0x7B6D,0x7B74,0x7B69, - 0x7B72,0x7B65,0x7B73,0x7B71,0x7B70,0x7B61,0x7B78,0x7B76, - 0x7B63,0x7CB2,0x7CB4,0x7CAF,0x7D88,0x7D86,0x7D80,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 71, Array index 0x2600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7D8D,0x7D7F,0x7D85,0x7D7A,0x7D8E,0x7D7B,0x7D83, - 0x7D7C,0x7D8C,0x7D94,0x7D84,0x7D7D,0x7D92,0x7F6D,0x7F6B, - 0x7F67,0x7F68,0x7F6C,0x7FA6,0x7FA5,0x7FA7,0x7FDB,0x7FDC, - 0x8021,0x8164,0x8160,0x8177,0x815C,0x8169,0x815B,0x8162, - 0x8172,0x6721,0x815E,0x8176,0x8167,0x816F,0x8144,0x8161, - 0x821D,0x8249,0x8244,0x8240,0x8242,0x8245,0x84F1,0x843F, - 0x8456,0x8476,0x8479,0x848F,0x848D,0x8465,0x8451,0x8440, - 0x8486,0x8467,0x8430,0x844D,0x847D,0x845A,0x8459,0x8474, - 0x8473,0x845D,0x8507,0x845E,0x8437,0x843A,0x8434,0x847A, - 0x8443,0x8478,0x8432,0x8445,0x8429,0x83D9,0x844B,0x842F, - 0x8442,0x842D,0x845F,0x8470,0x8439,0x844E,0x844C,0x8452, - 0x846F,0x84C5,0x848E,0x843B,0x8447,0x8436,0x8433,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 72, Array index 0x2700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8468,0x847E,0x8444,0x842B,0x8460,0x8454,0x846E, - 0x8450,0x870B,0x8704,0x86F7,0x870C,0x86FA,0x86D6,0x86F5, - 0x874D,0x86F8,0x870E,0x8709,0x8701,0x86F6,0x870D,0x8705, - 0x88D6,0x88CB,0x88CD,0x88CE,0x88DE,0x88DB,0x88DA,0x88CC, - 0x88D0,0x8985,0x899B,0x89DF,0x89E5,0x89E4,0x89E1,0x89E0, - 0x89E2,0x89DC,0x89E6,0x8A76,0x8A86,0x8A7F,0x8A61,0x8A3F, - 0x8A77,0x8A82,0x8A84,0x8A75,0x8A83,0x8A81,0x8A74,0x8A7A, - 0x8C3C,0x8C4B,0x8C4A,0x8C65,0x8C64,0x8C66,0x8C86,0x8C84, - 0x8C85,0x8CCC,0x8D68,0x8D69,0x8D91,0x8D8C,0x8D8E,0x8D8F, - 0x8D8D,0x8D93,0x8D94,0x8D90,0x8D92,0x8DF0,0x8DE0,0x8DEC, - 0x8DF1,0x8DEE,0x8DD0,0x8DE9,0x8DE3,0x8DE2,0x8DE7,0x8DF2, - 0x8DEB,0x8DF4,0x8F06,0x8EFF,0x8F01,0x8F00,0x8F05,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 73, Array index 0x2800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8F07,0x8F08,0x8F02,0x8F0B,0x9052,0x903F,0x9044, - 0x9049,0x903D,0x9110,0x910D,0x910F,0x9111,0x9116,0x9114, - 0x910B,0x910E,0x916E,0x916F,0x9248,0x9252,0x9230,0x923A, - 0x9266,0x9233,0x9265,0x925E,0x9283,0x922E,0x924A,0x9246, - 0x926D,0x926C,0x924F,0x9260,0x9267,0x926F,0x9236,0x9261, - 0x9270,0x9231,0x9254,0x9263,0x9250,0x9272,0x924E,0x9253, - 0x924C,0x9256,0x9232,0x959F,0x959C,0x959E,0x959B,0x9692, - 0x9693,0x9691,0x9697,0x96CE,0x96FA,0x96FD,0x96F8,0x96F5, - 0x9773,0x9777,0x9778,0x9772,0x980F,0x980D,0x980E,0x98AC, - 0x98F6,0x98F9,0x99AF,0x99B2,0x99B0,0x99B5,0x9AAD,0x9AAB, - 0x9B5B,0x9CEA,0x9CED,0x9CE7,0x9E80,0x9EFD,0x50E6,0x50D4, - 0x50D7,0x50E8,0x50F3,0x50DB,0x50EA,0x50DD,0x50E4,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 74, Array index 0x2900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x50D3,0x50EC,0x50F0,0x50EF,0x50E3,0x50E0,0x51D8, - 0x5280,0x5281,0x52E9,0x52EB,0x5330,0x53AC,0x5627,0x5615, - 0x560C,0x5612,0x55FC,0x560F,0x561C,0x5601,0x5613,0x5602, - 0x55FA,0x561D,0x5604,0x55FF,0x55F9,0x5889,0x587C,0x5890, - 0x5898,0x5886,0x5881,0x587F,0x5874,0x588B,0x587A,0x5887, - 0x5891,0x588E,0x5876,0x5882,0x5888,0x587B,0x5894,0x588F, - 0x58FE,0x596B,0x5ADC,0x5AEE,0x5AE5,0x5AD5,0x5AEA,0x5ADA, - 0x5AED,0x5AEB,0x5AF3,0x5AE2,0x5AE0,0x5ADB,0x5AEC,0x5ADE, - 0x5ADD,0x5AD9,0x5AE8,0x5ADF,0x5B77,0x5BE0,0x5BE3,0x5C63, - 0x5D82,0x5D80,0x5D7D,0x5D86,0x5D7A,0x5D81,0x5D77,0x5D8A, - 0x5D89,0x5D88,0x5D7E,0x5D7C,0x5D8D,0x5D79,0x5D7F,0x5E58, - 0x5E59,0x5E53,0x5ED8,0x5ED1,0x5ED7,0x5ECE,0x5EDC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 75, Array index 0x2A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5ED5,0x5ED9,0x5ED2,0x5ED4,0x5F44,0x5F43,0x5F6F, - 0x5FB6,0x612C,0x6128,0x6141,0x615E,0x6171,0x6173,0x6152, - 0x6153,0x6172,0x616C,0x6180,0x6174,0x6154,0x617A,0x615B, - 0x6165,0x613B,0x616A,0x6161,0x6156,0x6229,0x6227,0x622B, - 0x642B,0x644D,0x645B,0x645D,0x6474,0x6476,0x6472,0x6473, - 0x647D,0x6475,0x6466,0x64A6,0x644E,0x6482,0x645E,0x645C, - 0x644B,0x6453,0x6460,0x6450,0x647F,0x643F,0x646C,0x646B, - 0x6459,0x6465,0x6477,0x6573,0x65A0,0x66A1,0x66A0,0x669F, - 0x6705,0x6704,0x6722,0x69B1,0x69B6,0x69C9,0x69A0,0x69CE, - 0x6996,0x69B0,0x69AC,0x69BC,0x6991,0x6999,0x698E,0x69A7, - 0x698D,0x69A9,0x69BE,0x69AF,0x69BF,0x69C4,0x69BD,0x69A4, - 0x69D4,0x69B9,0x69CA,0x699A,0x69CF,0x69B3,0x6993,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 76, Array index 0x2B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x69AA,0x69A1,0x699E,0x69D9,0x6997,0x6990,0x69C2, - 0x69B5,0x69A5,0x69C6,0x6B4A,0x6B4D,0x6B4B,0x6B9E,0x6B9F, - 0x6BA0,0x6BC3,0x6BC4,0x6BFE,0x6ECE,0x6EF5,0x6EF1,0x6F03, - 0x6F25,0x6EF8,0x6F37,0x6EFB,0x6F2E,0x6F09,0x6F4E,0x6F19, - 0x6F1A,0x6F27,0x6F18,0x6F3B,0x6F12,0x6EED,0x6F0A,0x6F36, - 0x6F73,0x6EF9,0x6EEE,0x6F2D,0x6F40,0x6F30,0x6F3C,0x6F35, - 0x6EEB,0x6F07,0x6F0E,0x6F43,0x6F05,0x6EFD,0x6EF6,0x6F39, - 0x6F1C,0x6EFC,0x6F3A,0x6F1F,0x6F0D,0x6F1E,0x6F08,0x6F21, - 0x7187,0x7190,0x7189,0x7180,0x7185,0x7182,0x718F,0x717B, - 0x7186,0x7181,0x7197,0x7244,0x7253,0x7297,0x7295,0x7293, - 0x7343,0x734D,0x7351,0x734C,0x7462,0x7473,0x7471,0x7475, - 0x7472,0x7467,0x746E,0x7500,0x7502,0x7503,0x757D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 77, Array index 0x2C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7590,0x7616,0x7608,0x760C,0x7615,0x7611,0x760A, - 0x7614,0x76B8,0x7781,0x777C,0x7785,0x7782,0x776E,0x7780, - 0x776F,0x777E,0x7783,0x78B2,0x78AA,0x78B4,0x78AD,0x78A8, - 0x787E,0x78AB,0x789E,0x78A5,0x78A0,0x78AC,0x78A2,0x78A4, - 0x7998,0x798A,0x798B,0x7996,0x7995,0x7994,0x7993,0x7997, - 0x7988,0x7992,0x7990,0x7A2B,0x7A4A,0x7A30,0x7A2F,0x7A28, - 0x7A26,0x7AA8,0x7AAB,0x7AAC,0x7AEE,0x7B88,0x7B9C,0x7B8A, - 0x7B91,0x7B90,0x7B96,0x7B8D,0x7B8C,0x7B9B,0x7B8E,0x7B85, - 0x7B98,0x5284,0x7B99,0x7BA4,0x7B82,0x7CBB,0x7CBF,0x7CBC, - 0x7CBA,0x7DA7,0x7DB7,0x7DC2,0x7DA3,0x7DAA,0x7DC1,0x7DC0, - 0x7DC5,0x7D9D,0x7DCE,0x7DC4,0x7DC6,0x7DCB,0x7DCC,0x7DAF, - 0x7DB9,0x7D96,0x7DBC,0x7D9F,0x7DA6,0x7DAE,0x7DA9,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 78, Array index 0x2D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7DA1,0x7DC9,0x7F73,0x7FE2,0x7FE3,0x7FE5,0x7FDE, - 0x8024,0x805D,0x805C,0x8189,0x8186,0x8183,0x8187,0x818D, - 0x818C,0x818B,0x8215,0x8497,0x84A4,0x84A1,0x849F,0x84BA, - 0x84CE,0x84C2,0x84AC,0x84AE,0x84AB,0x84B9,0x84B4,0x84C1, - 0x84CD,0x84AA,0x849A,0x84B1,0x84D0,0x849D,0x84A7,0x84BB, - 0x84A2,0x8494,0x84C7,0x84CC,0x849B,0x84A9,0x84AF,0x84A8, - 0x84D6,0x8498,0x84B6,0x84CF,0x84A0,0x84D7,0x84D4,0x84D2, - 0x84DB,0x84B0,0x8491,0x8661,0x8733,0x8723,0x8728,0x876B, - 0x8740,0x872E,0x871E,0x8721,0x8719,0x871B,0x8743,0x872C, - 0x8741,0x873E,0x8746,0x8720,0x8732,0x872A,0x872D,0x873C, - 0x8712,0x873A,0x8731,0x8735,0x8742,0x8726,0x8727,0x8738, - 0x8724,0x871A,0x8730,0x8711,0x88F7,0x88E7,0x88F1,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 79, Array index 0x2E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x88F2,0x88FA,0x88FE,0x88EE,0x88FC,0x88F6,0x88FB, - 0x88F0,0x88EC,0x88EB,0x899D,0x89A1,0x899F,0x899E,0x89E9, - 0x89EB,0x89E8,0x8AAB,0x8A99,0x8A8B,0x8A92,0x8A8F,0x8A96, - 0x8C3D,0x8C68,0x8C69,0x8CD5,0x8CCF,0x8CD7,0x8D96,0x8E09, - 0x8E02,0x8DFF,0x8E0D,0x8DFD,0x8E0A,0x8E03,0x8E07,0x8E06, - 0x8E05,0x8DFE,0x8E00,0x8E04,0x8F10,0x8F11,0x8F0E,0x8F0D, - 0x9123,0x911C,0x9120,0x9122,0x911F,0x911D,0x911A,0x9124, - 0x9121,0x911B,0x917A,0x9172,0x9179,0x9173,0x92A5,0x92A4, - 0x9276,0x929B,0x927A,0x92A0,0x9294,0x92AA,0x928D,0x92A6, - 0x929A,0x92AB,0x9279,0x9297,0x927F,0x92A3,0x92EE,0x928E, - 0x9282,0x9295,0x92A2,0x927D,0x9288,0x92A1,0x928A,0x9286, - 0x928C,0x9299,0x92A7,0x927E,0x9287,0x92A9,0x929D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 80, Array index 0x2F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x928B,0x922D,0x969E,0x96A1,0x96FF,0x9758,0x977D, - 0x977A,0x977E,0x9783,0x9780,0x9782,0x977B,0x9784,0x9781, - 0x977F,0x97CE,0x97CD,0x9816,0x98AD,0x98AE,0x9902,0x9900, - 0x9907,0x999D,0x999C,0x99C3,0x99B9,0x99BB,0x99BA,0x99C2, - 0x99BD,0x99C7,0x9AB1,0x9AE3,0x9AE7,0x9B3E,0x9B3F,0x9B60, - 0x9B61,0x9B5F,0x9CF1,0x9CF2,0x9CF5,0x9EA7,0x50FF,0x5103, - 0x5130,0x50F8,0x5106,0x5107,0x50F6,0x50FE,0x510B,0x510C, - 0x50FD,0x510A,0x528B,0x528C,0x52F1,0x52EF,0x5648,0x5642, - 0x564C,0x5635,0x5641,0x564A,0x5649,0x5646,0x5658,0x565A, - 0x5640,0x5633,0x563D,0x562C,0x563E,0x5638,0x562A,0x563A, - 0x571A,0x58AB,0x589D,0x58B1,0x58A0,0x58A3,0x58AF,0x58AC, - 0x58A5,0x58A1,0x58FF,0x5AFF,0x5AF4,0x5AFD,0x5AF7,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 81, Array index 0x3000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5AF6,0x5B03,0x5AF8,0x5B02,0x5AF9,0x5B01,0x5B07, - 0x5B05,0x5B0F,0x5C67,0x5D99,0x5D97,0x5D9F,0x5D92,0x5DA2, - 0x5D93,0x5D95,0x5DA0,0x5D9C,0x5DA1,0x5D9A,0x5D9E,0x5E69, - 0x5E5D,0x5E60,0x5E5C,0x7DF3,0x5EDB,0x5EDE,0x5EE1,0x5F49, - 0x5FB2,0x618B,0x6183,0x6179,0x61B1,0x61B0,0x61A2,0x6189, - 0x619B,0x6193,0x61AF,0x61AD,0x619F,0x6192,0x61AA,0x61A1, - 0x618D,0x6166,0x61B3,0x622D,0x646E,0x6470,0x6496,0x64A0, - 0x6485,0x6497,0x649C,0x648F,0x648B,0x648A,0x648C,0x64A3, - 0x649F,0x6468,0x64B1,0x6498,0x6576,0x657A,0x6579,0x657B, - 0x65B2,0x65B3,0x66B5,0x66B0,0x66A9,0x66B2,0x66B7,0x66AA, - 0x66AF,0x6A00,0x6A06,0x6A17,0x69E5,0x69F8,0x6A15,0x69F1, - 0x69E4,0x6A20,0x69FF,0x69EC,0x69E2,0x6A1B,0x6A1D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 82, Array index 0x3100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x69FE,0x6A27,0x69F2,0x69EE,0x6A14,0x69F7,0x69E7, - 0x6A40,0x6A08,0x69E6,0x69FB,0x6A0D,0x69FC,0x69EB,0x6A09, - 0x6A04,0x6A18,0x6A25,0x6A0F,0x69F6,0x6A26,0x6A07,0x69F4, - 0x6A16,0x6B51,0x6BA5,0x6BA3,0x6BA2,0x6BA6,0x6C01,0x6C00, - 0x6BFF,0x6C02,0x6F41,0x6F26,0x6F7E,0x6F87,0x6FC6,0x6F92, - 0x6F8D,0x6F89,0x6F8C,0x6F62,0x6F4F,0x6F85,0x6F5A,0x6F96, - 0x6F76,0x6F6C,0x6F82,0x6F55,0x6F72,0x6F52,0x6F50,0x6F57, - 0x6F94,0x6F93,0x6F5D,0x6F00,0x6F61,0x6F6B,0x6F7D,0x6F67, - 0x6F90,0x6F53,0x6F8B,0x6F69,0x6F7F,0x6F95,0x6F63,0x6F77, - 0x6F6A,0x6F7B,0x71B2,0x71AF,0x719B,0x71B0,0x71A0,0x719A, - 0x71A9,0x71B5,0x719D,0x71A5,0x719E,0x71A4,0x71A1,0x71AA, - 0x719C,0x71A7,0x71B3,0x7298,0x729A,0x7358,0x7352,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 83, Array index 0x3200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x735E,0x735F,0x7360,0x735D,0x735B,0x7361,0x735A, - 0x7359,0x7362,0x7487,0x7489,0x748A,0x7486,0x7481,0x747D, - 0x7485,0x7488,0x747C,0x7479,0x7508,0x7507,0x757E,0x7625, - 0x761E,0x7619,0x761D,0x761C,0x7623,0x761A,0x7628,0x761B, - 0x769C,0x769D,0x769E,0x769B,0x778D,0x778F,0x7789,0x7788, - 0x78CD,0x78BB,0x78CF,0x78CC,0x78D1,0x78CE,0x78D4,0x78C8, - 0x78C3,0x78C4,0x78C9,0x799A,0x79A1,0x79A0,0x799C,0x79A2, - 0x799B,0x6B76,0x7A39,0x7AB2,0x7AB4,0x7AB3,0x7BB7,0x7BCB, - 0x7BBE,0x7BAC,0x7BCE,0x7BAF,0x7BB9,0x7BCA,0x7BB5,0x7CC5, - 0x7CC8,0x7CCC,0x7CCB,0x7DF7,0x7DDB,0x7DEA,0x7DE7,0x7DD7, - 0x7DE1,0x7E03,0x7DFA,0x7DE6,0x7DF6,0x7DF1,0x7DF0,0x7DEE, - 0x7DDF,0x7F76,0x7FAC,0x7FB0,0x7FAD,0x7FED,0x7FEB,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 84, Array index 0x3300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7FEA,0x7FEC,0x7FE6,0x7FE8,0x8064,0x8067,0x81A3, - 0x819F,0x819E,0x8195,0x81A2,0x8199,0x8197,0x8216,0x824F, - 0x8253,0x8252,0x8250,0x824E,0x8251,0x8524,0x853B,0x850F, - 0x8500,0x8529,0x850E,0x8509,0x850D,0x851F,0x850A,0x8527, - 0x851C,0x84FB,0x852B,0x84FA,0x8508,0x850C,0x84F4,0x852A, - 0x84F2,0x8515,0x84F7,0x84EB,0x84F3,0x84FC,0x8512,0x84EA, - 0x84E9,0x8516,0x84FE,0x8528,0x851D,0x852E,0x8502,0x84FD, - 0x851E,0x84F6,0x8531,0x8526,0x84E7,0x84E8,0x84F0,0x84EF, - 0x84F9,0x8518,0x8520,0x8530,0x850B,0x8519,0x852F,0x8662, - 0x8756,0x8763,0x8764,0x8777,0x87E1,0x8773,0x8758,0x8754, - 0x875B,0x8752,0x8761,0x875A,0x8751,0x875E,0x876D,0x876A, - 0x8750,0x874E,0x875F,0x875D,0x876F,0x876C,0x877A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 85, Array index 0x3400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x876E,0x875C,0x8765,0x874F,0x877B,0x8775,0x8762, - 0x8767,0x8769,0x885A,0x8905,0x890C,0x8914,0x890B,0x8917, - 0x8918,0x8919,0x8906,0x8916,0x8911,0x890E,0x8909,0x89A2, - 0x89A4,0x89A3,0x89ED,0x89F0,0x89EC,0x8ACF,0x8AC6,0x8AB8, - 0x8AD3,0x8AD1,0x8AD4,0x8AD5,0x8ABB,0x8AD7,0x8ABE,0x8AC0, - 0x8AC5,0x8AD8,0x8AC3,0x8ABA,0x8ABD,0x8AD9,0x8C3E,0x8C4D, - 0x8C8F,0x8CE5,0x8CDF,0x8CD9,0x8CE8,0x8CDA,0x8CDD,0x8CE7, - 0x8DA0,0x8D9C,0x8DA1,0x8D9B,0x8E20,0x8E23,0x8E25,0x8E24, - 0x8E2E,0x8E15,0x8E1B,0x8E16,0x8E11,0x8E19,0x8E26,0x8E27, - 0x8E14,0x8E12,0x8E18,0x8E13,0x8E1C,0x8E17,0x8E1A,0x8F2C, - 0x8F24,0x8F18,0x8F1A,0x8F20,0x8F23,0x8F16,0x8F17,0x9073, - 0x9070,0x906F,0x9067,0x906B,0x912F,0x912B,0x9129,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 86, Array index 0x3500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x912A,0x9132,0x9126,0x912E,0x9185,0x9186,0x918A, - 0x9181,0x9182,0x9184,0x9180,0x92D0,0x92C3,0x92C4,0x92C0, - 0x92D9,0x92B6,0x92CF,0x92F1,0x92DF,0x92D8,0x92E9,0x92D7, - 0x92DD,0x92CC,0x92EF,0x92C2,0x92E8,0x92CA,0x92C8,0x92CE, - 0x92E6,0x92CD,0x92D5,0x92C9,0x92E0,0x92DE,0x92E7,0x92D1, - 0x92D3,0x92B5,0x92E1,0x9325,0x92C6,0x92B4,0x957C,0x95AC, - 0x95AB,0x95AE,0x95B0,0x96A4,0x96A2,0x96D3,0x9705,0x9708, - 0x9702,0x975A,0x978A,0x978E,0x9788,0x97D0,0x97CF,0x981E, - 0x981D,0x9826,0x9829,0x9828,0x9820,0x981B,0x9827,0x98B2, - 0x9908,0x98FA,0x9911,0x9914,0x9916,0x9917,0x9915,0x99DC, - 0x99CD,0x99CF,0x99D3,0x99D4,0x99CE,0x99C9,0x99D6,0x99D8, - 0x99CB,0x99D7,0x99CC,0x9AB3,0x9AEC,0x9AEB,0x9AF3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 87, Array index 0x3600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9AF2,0x9AF1,0x9B46,0x9B43,0x9B67,0x9B74,0x9B71, - 0x9B66,0x9B76,0x9B75,0x9B70,0x9B68,0x9B64,0x9B6C,0x9CFC, - 0x9CFA,0x9CFD,0x9CFF,0x9CF7,0x9D07,0x9D00,0x9CF9,0x9CFB, - 0x9D08,0x9D05,0x9D04,0x9E83,0x9ED3,0x9F0F,0x9F10,0x511C, - 0x5113,0x5117,0x511A,0x5111,0x51DE,0x5334,0x53E1,0x5670, - 0x5660,0x566E,0x5673,0x5666,0x5663,0x566D,0x5672,0x565E, - 0x5677,0x571C,0x571B,0x58C8,0x58BD,0x58C9,0x58BF,0x58BA, - 0x58C2,0x58BC,0x58C6,0x5B17,0x5B19,0x5B1B,0x5B21,0x5B14, - 0x5B13,0x5B10,0x5B16,0x5B28,0x5B1A,0x5B20,0x5B1E,0x5BEF, - 0x5DAC,0x5DB1,0x5DA9,0x5DA7,0x5DB5,0x5DB0,0x5DAE,0x5DAA, - 0x5DA8,0x5DB2,0x5DAD,0x5DAF,0x5DB4,0x5E67,0x5E68,0x5E66, - 0x5E6F,0x5EE9,0x5EE7,0x5EE6,0x5EE8,0x5EE5,0x5F4B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 88, Array index 0x3700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5FBC,0x5FBB,0x619D,0x61A8,0x6196,0x61C5,0x61B4, - 0x61C6,0x61C1,0x61CC,0x61BA,0x61BF,0x61B8,0x618C,0x64D7, - 0x64D6,0x64D0,0x64CF,0x64C9,0x64BD,0x6489,0x64C3,0x64DB, - 0x64F3,0x64D9,0x6533,0x657F,0x657C,0x65A2,0x66C8,0x66BE, - 0x66C0,0x66CA,0x66CB,0x66CF,0x66BD,0x66BB,0x66BA,0x66CC, - 0x6723,0x6A34,0x6A66,0x6A49,0x6A67,0x6A32,0x6A68,0x6A3E, - 0x6A5D,0x6A6D,0x6A76,0x6A5B,0x6A51,0x6A28,0x6A5A,0x6A3B, - 0x6A3F,0x6A41,0x6A6A,0x6A64,0x6A50,0x6A4F,0x6A54,0x6A6F, - 0x6A69,0x6A60,0x6A3C,0x6A5E,0x6A56,0x6A55,0x6A4D,0x6A4E, - 0x6A46,0x6B55,0x6B54,0x6B56,0x6BA7,0x6BAA,0x6BAB,0x6BC8, - 0x6BC7,0x6C04,0x6C03,0x6C06,0x6FAD,0x6FCB,0x6FA3,0x6FC7, - 0x6FBC,0x6FCE,0x6FC8,0x6F5E,0x6FC4,0x6FBD,0x6F9E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 89, Array index 0x3800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6FCA,0x6FA8,0x7004,0x6FA5,0x6FAE,0x6FBA,0x6FAC, - 0x6FAA,0x6FCF,0x6FBF,0x6FB8,0x6FA2,0x6FC9,0x6FAB,0x6FCD, - 0x6FAF,0x6FB2,0x6FB0,0x71C5,0x71C2,0x71BF,0x71B8,0x71D6, - 0x71C0,0x71C1,0x71CB,0x71D4,0x71CA,0x71C7,0x71CF,0x71BD, - 0x71D8,0x71BC,0x71C6,0x71DA,0x71DB,0x729D,0x729E,0x7369, - 0x7366,0x7367,0x736C,0x7365,0x736B,0x736A,0x747F,0x749A, - 0x74A0,0x7494,0x7492,0x7495,0x74A1,0x750B,0x7580,0x762F, - 0x762D,0x7631,0x763D,0x7633,0x763C,0x7635,0x7632,0x7630, - 0x76BB,0x76E6,0x779A,0x779D,0x77A1,0x779C,0x779B,0x77A2, - 0x77A3,0x7795,0x7799,0x7797,0x78DD,0x78E9,0x78E5,0x78EA, - 0x78DE,0x78E3,0x78DB,0x78E1,0x78E2,0x78ED,0x78DF,0x78E0, - 0x79A4,0x7A44,0x7A48,0x7A47,0x7AB6,0x7AB8,0x7AB5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 90, Array index 0x3900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7AB1,0x7AB7,0x7BDE,0x7BE3,0x7BE7,0x7BDD,0x7BD5, - 0x7BE5,0x7BDA,0x7BE8,0x7BF9,0x7BD4,0x7BEA,0x7BE2,0x7BDC, - 0x7BEB,0x7BD8,0x7BDF,0x7CD2,0x7CD4,0x7CD7,0x7CD0,0x7CD1, - 0x7E12,0x7E21,0x7E17,0x7E0C,0x7E1F,0x7E20,0x7E13,0x7E0E, - 0x7E1C,0x7E15,0x7E1A,0x7E22,0x7E0B,0x7E0F,0x7E16,0x7E0D, - 0x7E14,0x7E25,0x7E24,0x7F43,0x7F7B,0x7F7C,0x7F7A,0x7FB1, - 0x7FEF,0x802A,0x8029,0x806C,0x81B1,0x81A6,0x81AE,0x81B9, - 0x81B5,0x81AB,0x81B0,0x81AC,0x81B4,0x81B2,0x81B7,0x81A7, - 0x81F2,0x8255,0x8256,0x8257,0x8556,0x8545,0x856B,0x854D, - 0x8553,0x8561,0x8558,0x8540,0x8546,0x8564,0x8541,0x8562, - 0x8544,0x8551,0x8547,0x8563,0x853E,0x855B,0x8571,0x854E, - 0x856E,0x8575,0x8555,0x8567,0x8560,0x858C,0x8566,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 91, Array index 0x3A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x855D,0x8554,0x8565,0x856C,0x8663,0x8665,0x8664, - 0x87A4,0x879B,0x878F,0x8797,0x8793,0x8792,0x8788,0x8781, - 0x8796,0x8798,0x8779,0x8787,0x87A3,0x8785,0x8790,0x8791, - 0x879D,0x8784,0x8794,0x879C,0x879A,0x8789,0x891E,0x8926, - 0x8930,0x892D,0x892E,0x8927,0x8931,0x8922,0x8929,0x8923, - 0x892F,0x892C,0x891F,0x89F1,0x8AE0,0x8AE2,0x8AF2,0x8AF4, - 0x8AF5,0x8ADD,0x8B14,0x8AE4,0x8ADF,0x8AF0,0x8AC8,0x8ADE, - 0x8AE1,0x8AE8,0x8AFF,0x8AEF,0x8AFB,0x8C91,0x8C92,0x8C90, - 0x8CF5,0x8CEE,0x8CF1,0x8CF0,0x8CF3,0x8D6C,0x8D6E,0x8DA5, - 0x8DA7,0x8E33,0x8E3E,0x8E38,0x8E40,0x8E45,0x8E36,0x8E3C, - 0x8E3D,0x8E41,0x8E30,0x8E3F,0x8EBD,0x8F36,0x8F2E,0x8F35, - 0x8F32,0x8F39,0x8F37,0x8F34,0x9076,0x9079,0x907B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 92, Array index 0x3B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9086,0x90FA,0x9133,0x9135,0x9136,0x9193,0x9190, - 0x9191,0x918D,0x918F,0x9327,0x931E,0x9308,0x931F,0x9306, - 0x930F,0x937A,0x9338,0x933C,0x931B,0x9323,0x9312,0x9301, - 0x9346,0x932D,0x930E,0x930D,0x92CB,0x931D,0x92FA,0x9313, - 0x92F9,0x92F7,0x9334,0x9302,0x9324,0x92FF,0x9329,0x9339, - 0x9335,0x932A,0x9314,0x930C,0x930B,0x92FE,0x9309,0x9300, - 0x92FB,0x9316,0x95BC,0x95CD,0x95BE,0x95B9,0x95BA,0x95B6, - 0x95BF,0x95B5,0x95BD,0x96A9,0x96D4,0x970B,0x9712,0x9710, - 0x9799,0x9797,0x9794,0x97F0,0x97F8,0x9835,0x982F,0x9832, - 0x9924,0x991F,0x9927,0x9929,0x999E,0x99EE,0x99EC,0x99E5, - 0x99E4,0x99F0,0x99E3,0x99EA,0x99E9,0x99E7,0x9AB9,0x9ABF, - 0x9AB4,0x9ABB,0x9AF6,0x9AFA,0x9AF9,0x9AF7,0x9B33,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 93, Array index 0x3C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9B80,0x9B85,0x9B87,0x9B7C,0x9B7E,0x9B7B,0x9B82, - 0x9B93,0x9B92,0x9B90,0x9B7A,0x9B95,0x9B7D,0x9B88,0x9D25, - 0x9D17,0x9D20,0x9D1E,0x9D14,0x9D29,0x9D1D,0x9D18,0x9D22, - 0x9D10,0x9D19,0x9D1F,0x9E88,0x9E86,0x9E87,0x9EAE,0x9EAD, - 0x9ED5,0x9ED6,0x9EFA,0x9F12,0x9F3D,0x5126,0x5125,0x5122, - 0x5124,0x5120,0x5129,0x52F4,0x5693,0x568C,0x568D,0x5686, - 0x5684,0x5683,0x567E,0x5682,0x567F,0x5681,0x58D6,0x58D4, - 0x58CF,0x58D2,0x5B2D,0x5B25,0x5B32,0x5B23,0x5B2C,0x5B27, - 0x5B26,0x5B2F,0x5B2E,0x5B7B,0x5BF1,0x5BF2,0x5DB7,0x5E6C, - 0x5E6A,0x5FBE,0x61C3,0x61B5,0x61BC,0x61E7,0x61E0,0x61E5, - 0x61E4,0x61E8,0x61DE,0x64EF,0x64E9,0x64E3,0x64EB,0x64E4, - 0x64E8,0x6581,0x6580,0x65B6,0x65DA,0x66D2,0x6A8D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 94, Array index 0x3D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A96,0x6A81,0x6AA5,0x6A89,0x6A9F,0x6A9B,0x6AA1, - 0x6A9E,0x6A87,0x6A93,0x6A8E,0x6A95,0x6A83,0x6AA8,0x6AA4, - 0x6A91,0x6A7F,0x6AA6,0x6A9A,0x6A85,0x6A8C,0x6A92,0x6B5B, - 0x6BAD,0x6C09,0x6FCC,0x6FA9,0x6FF4,0x6FD4,0x6FE3,0x6FDC, - 0x6FED,0x6FE7,0x6FE6,0x6FDE,0x6FF2,0x6FDD,0x6FE2,0x6FE8, - 0x71E1,0x71F1,0x71E8,0x71F2,0x71E4,0x71F0,0x71E2,0x7373, - 0x736E,0x736F,0x7497,0x74B2,0x74AB,0x7490,0x74AA,0x74AD, - 0x74B1,0x74A5,0x74AF,0x7510,0x7511,0x7512,0x750F,0x7584, - 0x7643,0x7648,0x7649,0x7647,0x76A4,0x76E9,0x77B5,0x77AB, - 0x77B2,0x77B7,0x77B6,0x77B4,0x77B1,0x77A8,0x77F0,0x78F3, - 0x78FD,0x7902,0x78FB,0x78FC,0x78FF,0x78F2,0x7905,0x78F9, - 0x78FE,0x7904,0x79AB,0x79A8,0x7A5C,0x7A5B,0x7A56,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 95, Array index 0x3E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7A58,0x7A54,0x7A5A,0x7ABE,0x7AC0,0x7AC1,0x7C05, - 0x7C0F,0x7BF2,0x7C00,0x7BFF,0x7BFB,0x7C0E,0x7BF4,0x7C0B, - 0x7BF3,0x7C02,0x7C09,0x7C03,0x7C01,0x7BF8,0x7BFD,0x7C06, - 0x7BF0,0x7BF1,0x7C10,0x7C0A,0x7CE8,0x7E2D,0x7E3C,0x7E42, - 0x7E33,0x9848,0x7E38,0x7E2A,0x7E49,0x7E40,0x7E47,0x7E29, - 0x7E4C,0x7E30,0x7E3B,0x7E36,0x7E44,0x7E3A,0x7F45,0x7F7F, - 0x7F7E,0x7F7D,0x7FF4,0x7FF2,0x802C,0x81BB,0x81C4,0x81CC, - 0x81CA,0x81C5,0x81C7,0x81BC,0x81E9,0x825B,0x825A,0x825C, - 0x8583,0x8580,0x858F,0x85A7,0x8595,0x85A0,0x858B,0x85A3, - 0x857B,0x85A4,0x859A,0x859E,0x8577,0x857C,0x8589,0x85A1, - 0x857A,0x8578,0x8557,0x858E,0x8596,0x8586,0x858D,0x8599, - 0x859D,0x8581,0x85A2,0x8582,0x8588,0x8585,0x8579,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 96, Array index 0x3F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8576,0x8598,0x8590,0x859F,0x8668,0x87BE,0x87AA, - 0x87AD,0x87C5,0x87B0,0x87AC,0x87B9,0x87B5,0x87BC,0x87AE, - 0x87C9,0x87C3,0x87C2,0x87CC,0x87B7,0x87AF,0x87C4,0x87CA, - 0x87B4,0x87B6,0x87BF,0x87B8,0x87BD,0x87DE,0x87B2,0x8935, - 0x8933,0x893C,0x893E,0x8941,0x8952,0x8937,0x8942,0x89AD, - 0x89AF,0x89AE,0x89F2,0x89F3,0x8B1E,0x8B18,0x8B16,0x8B11, - 0x8B05,0x8B0B,0x8B22,0x8B0F,0x8B12,0x8B15,0x8B07,0x8B0D, - 0x8B08,0x8B06,0x8B1C,0x8B13,0x8B1A,0x8C4F,0x8C70,0x8C72, - 0x8C71,0x8C6F,0x8C95,0x8C94,0x8CF9,0x8D6F,0x8E4E,0x8E4D, - 0x8E53,0x8E50,0x8E4C,0x8E47,0x8F43,0x8F40,0x9085,0x907E, - 0x9138,0x919A,0x91A2,0x919B,0x9199,0x919F,0x91A1,0x919D, - 0x91A0,0x93A1,0x9383,0x93AF,0x9364,0x9356,0x9347,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 97, Array index 0x4000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x937C,0x9358,0x935C,0x9376,0x9349,0x9350,0x9351, - 0x9360,0x936D,0x938F,0x934C,0x936A,0x9379,0x9357,0x9355, - 0x9352,0x934F,0x9371,0x9377,0x937B,0x9361,0x935E,0x9363, - 0x9367,0x934E,0x9359,0x95C7,0x95C0,0x95C9,0x95C3,0x95C5, - 0x95B7,0x96AE,0x96B0,0x96AC,0x9720,0x971F,0x9718,0x971D, - 0x9719,0x979A,0x97A1,0x979C,0x979E,0x979D,0x97D5,0x97D4, - 0x97F1,0x9841,0x9844,0x984A,0x9849,0x9845,0x9843,0x9925, - 0x992B,0x992C,0x992A,0x9933,0x9932,0x992F,0x992D,0x9931, - 0x9930,0x9998,0x99A3,0x99A1,0x9A02,0x99FA,0x99F4,0x99F7, - 0x99F9,0x99F8,0x99F6,0x99FB,0x99FD,0x99FE,0x99FC,0x9A03, - 0x9ABE,0x9AFE,0x9AFD,0x9B01,0x9AFC,0x9B48,0x9B9A,0x9BA8, - 0x9B9E,0x9B9B,0x9BA6,0x9BA1,0x9BA5,0x9BA4,0x9B86,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 98, Array index 0x4100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9BA2,0x9BA0,0x9BAF,0x9D33,0x9D41,0x9D67,0x9D36, - 0x9D2E,0x9D2F,0x9D31,0x9D38,0x9D30,0x9D45,0x9D42,0x9D43, - 0x9D3E,0x9D37,0x9D40,0x9D3D,0x7FF5,0x9D2D,0x9E8A,0x9E89, - 0x9E8D,0x9EB0,0x9EC8,0x9EDA,0x9EFB,0x9EFF,0x9F24,0x9F23, - 0x9F22,0x9F54,0x9FA0,0x5131,0x512D,0x512E,0x5698,0x569C, - 0x5697,0x569A,0x569D,0x5699,0x5970,0x5B3C,0x5C69,0x5C6A, - 0x5DC0,0x5E6D,0x5E6E,0x61D8,0x61DF,0x61ED,0x61EE,0x61F1, - 0x61EA,0x61F0,0x61EB,0x61D6,0x61E9,0x64FF,0x6504,0x64FD, - 0x64F8,0x6501,0x6503,0x64FC,0x6594,0x65DB,0x66DA,0x66DB, - 0x66D8,0x6AC5,0x6AB9,0x6ABD,0x6AE1,0x6AC6,0x6ABA,0x6AB6, - 0x6AB7,0x6AC7,0x6AB4,0x6AAD,0x6B5E,0x6BC9,0x6C0B,0x7007, - 0x700C,0x700D,0x7001,0x7005,0x7014,0x700E,0x6FFF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 99, Array index 0x4200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7000,0x6FFB,0x7026,0x6FFC,0x6FF7,0x700A,0x7201, - 0x71FF,0x71F9,0x7203,0x71FD,0x7376,0x74B8,0x74C0,0x74B5, - 0x74C1,0x74BE,0x74B6,0x74BB,0x74C2,0x7514,0x7513,0x765C, - 0x7664,0x7659,0x7650,0x7653,0x7657,0x765A,0x76A6,0x76BD, - 0x76EC,0x77C2,0x77BA,0x790C,0x7913,0x7914,0x7909,0x7910, - 0x7912,0x7911,0x79AD,0x79AC,0x7A5F,0x7C1C,0x7C29,0x7C19, - 0x7C20,0x7C1F,0x7C2D,0x7C1D,0x7C26,0x7C28,0x7C22,0x7C25, - 0x7C30,0x7E5C,0x7E50,0x7E56,0x7E63,0x7E58,0x7E62,0x7E5F, - 0x7E51,0x7E60,0x7E57,0x7E53,0x7FB5,0x7FB3,0x7FF7,0x7FF8, - 0x8075,0x81D1,0x81D2,0x81D0,0x825F,0x825E,0x85B4,0x85C6, - 0x85C0,0x85C3,0x85C2,0x85B3,0x85B5,0x85BD,0x85C7,0x85C4, - 0x85BF,0x85CB,0x85CE,0x85C8,0x85C5,0x85B1,0x85B6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 100, Array index 0x4300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x85D2,0x8624,0x85B8,0x85B7,0x85BE,0x8669,0x87E7, - 0x87E6,0x87E2,0x87DB,0x87EB,0x87EA,0x87E5,0x87DF,0x87F3, - 0x87E4,0x87D4,0x87DC,0x87D3,0x87ED,0x87D8,0x87E3,0x87D7, - 0x87D9,0x8801,0x87F4,0x87E8,0x87DD,0x8953,0x894B,0x894F, - 0x894C,0x8946,0x8950,0x8951,0x8949,0x8B2A,0x8B27,0x8B23, - 0x8B33,0x8B30,0x8B35,0x8B47,0x8B2F,0x8B3C,0x8B3E,0x8B31, - 0x8B25,0x8B37,0x8B26,0x8B36,0x8B2E,0x8B24,0x8B3B,0x8B3D, - 0x8B3A,0x8C42,0x8C75,0x8C99,0x8C98,0x8C97,0x8CFE,0x8D04, - 0x8D02,0x8D00,0x8E5C,0x8E62,0x8E60,0x8E57,0x8E56,0x8E5E, - 0x8E65,0x8E67,0x8E5B,0x8E5A,0x8E61,0x8E5D,0x8E69,0x8E54, - 0x8F46,0x8F47,0x8F48,0x8F4B,0x9128,0x913A,0x913B,0x913E, - 0x91A8,0x91A5,0x91A7,0x91AF,0x91AA,0x93B5,0x938C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 101, Array index 0x4400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9392,0x93B7,0x939B,0x939D,0x9389,0x93A7,0x938E, - 0x93AA,0x939E,0x93A6,0x9395,0x9388,0x9399,0x939F,0x9380, - 0x938D,0x93B1,0x9391,0x93B2,0x93A4,0x93A8,0x93B4,0x93A3, - 0x95D2,0x95D3,0x95D1,0x96B3,0x96D7,0x96DA,0x5DC2,0x96DF, - 0x96D8,0x96DD,0x9723,0x9722,0x9725,0x97AC,0x97AE,0x97A8, - 0x97AB,0x97A4,0x97AA,0x97A2,0x97A5,0x97D7,0x97D9,0x97D6, - 0x97D8,0x97FA,0x9850,0x9851,0x9852,0x98B8,0x9941,0x993C, - 0x993A,0x9A0F,0x9A0B,0x9A09,0x9A0D,0x9A04,0x9A11,0x9A0A, - 0x9A05,0x9A07,0x9A06,0x9AC0,0x9ADC,0x9B08,0x9B04,0x9B05, - 0x9B29,0x9B35,0x9B4A,0x9B4C,0x9B4B,0x9BC7,0x9BC6,0x9BC3, - 0x9BBF,0x9BC1,0x9BB5,0x9BB8,0x9BD3,0x9BB6,0x9BC4,0x9BB9, - 0x9BBD,0x9D5C,0x9D53,0x9D4F,0x9D4A,0x9D5B,0x9D4B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 102, Array index 0x4500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9D59,0x9D56,0x9D4C,0x9D57,0x9D52,0x9D54,0x9D5F, - 0x9D58,0x9D5A,0x9E8E,0x9E8C,0x9EDF,0x9F01,0x9F00,0x9F16, - 0x9F25,0x9F2B,0x9F2A,0x9F29,0x9F28,0x9F4C,0x9F55,0x5134, - 0x5135,0x5296,0x52F7,0x53B4,0x56AB,0x56AD,0x56A6,0x56A7, - 0x56AA,0x56AC,0x58DA,0x58DD,0x58DB,0x5912,0x5B3D,0x5B3E, - 0x5B3F,0x5DC3,0x5E70,0x5FBF,0x61FB,0x6507,0x6510,0x650D, - 0x6509,0x650C,0x650E,0x6584,0x65DE,0x65DD,0x66DE,0x6AE7, - 0x6AE0,0x6ACC,0x6AD1,0x6AD9,0x6ACB,0x6ADF,0x6ADC,0x6AD0, - 0x6AEB,0x6ACF,0x6ACD,0x6ADE,0x6B60,0x6BB0,0x6C0C,0x7019, - 0x7027,0x7020,0x7016,0x702B,0x7021,0x7022,0x7023,0x7029, - 0x7017,0x7024,0x701C,0x720C,0x720A,0x7207,0x7202,0x7205, - 0x72A5,0x72A6,0x72A4,0x72A3,0x72A1,0x74CB,0x74C5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 103, Array index 0x4600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x74B7,0x74C3,0x7516,0x7660,0x77C9,0x77CA,0x77C4, - 0x77F1,0x791D,0x791B,0x7921,0x791C,0x7917,0x791E,0x79B0, - 0x7A67,0x7A68,0x7C33,0x7C3C,0x7C39,0x7C2C,0x7C3B,0x7CEC, - 0x7CEA,0x7E76,0x7E75,0x7E78,0x7E70,0x7E77,0x7E6F,0x7E7A, - 0x7E72,0x7E74,0x7E68,0x7F4B,0x7F4A,0x7F83,0x7F86,0x7FB7, - 0x7FFD,0x7FFE,0x8078,0x81D7,0x81D5,0x820B,0x8264,0x8261, - 0x8263,0x85EB,0x85F1,0x85ED,0x85D9,0x85E1,0x85E8,0x85DA, - 0x85D7,0x85EC,0x85F2,0x85F8,0x85D8,0x85DF,0x85E3,0x85DC, - 0x85D1,0x85F0,0x85E6,0x85EF,0x85DE,0x85E2,0x8800,0x87FA, - 0x8803,0x87F6,0x87F7,0x8809,0x880C,0x880B,0x8806,0x87FC, - 0x8808,0x87FF,0x880A,0x8802,0x8962,0x895A,0x895B,0x8957, - 0x8961,0x895C,0x8958,0x895D,0x8959,0x8988,0x89B7,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 104, Array index 0x4700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x89B6,0x89F6,0x8B50,0x8B48,0x8B4A,0x8B40,0x8B53, - 0x8B56,0x8B54,0x8B4B,0x8B55,0x8B51,0x8B42,0x8B52,0x8B57, - 0x8C43,0x8C77,0x8C76,0x8C9A,0x8D06,0x8D07,0x8D09,0x8DAC, - 0x8DAA,0x8DAD,0x8DAB,0x8E6D,0x8E78,0x8E73,0x8E6A,0x8E6F, - 0x8E7B,0x8EC2,0x8F52,0x8F51,0x8F4F,0x8F50,0x8F53,0x8FB4, - 0x9140,0x913F,0x91B0,0x91AD,0x93DE,0x93C7,0x93CF,0x93C2, - 0x93DA,0x93D0,0x93F9,0x93EC,0x93CC,0x93D9,0x93A9,0x93E6, - 0x93CA,0x93D4,0x93EE,0x93E3,0x93D5,0x93C4,0x93CE,0x93C0, - 0x93D2,0x93A5,0x93E7,0x957D,0x95DA,0x95DB,0x96E1,0x9729, - 0x972B,0x972C,0x9728,0x9726,0x97B3,0x97B7,0x97B6,0x97DD, - 0x97DE,0x97DF,0x985C,0x9859,0x985D,0x9857,0x98BF,0x98BD, - 0x98BB,0x98BE,0x9948,0x9947,0x9943,0x99A6,0x99A7,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 105, Array index 0x4800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9A1A,0x9A15,0x9A25,0x9A1D,0x9A24,0x9A1B,0x9A22, - 0x9A20,0x9A27,0x9A23,0x9A1E,0x9A1C,0x9A14,0x9AC2,0x9B0B, - 0x9B0A,0x9B0E,0x9B0C,0x9B37,0x9BEA,0x9BEB,0x9BE0,0x9BDE, - 0x9BE4,0x9BE6,0x9BE2,0x9BF0,0x9BD4,0x9BD7,0x9BEC,0x9BDC, - 0x9BD9,0x9BE5,0x9BD5,0x9BE1,0x9BDA,0x9D77,0x9D81,0x9D8A, - 0x9D84,0x9D88,0x9D71,0x9D80,0x9D78,0x9D86,0x9D8B,0x9D8C, - 0x9D7D,0x9D6B,0x9D74,0x9D75,0x9D70,0x9D69,0x9D85,0x9D73, - 0x9D7B,0x9D82,0x9D6F,0x9D79,0x9D7F,0x9D87,0x9D68,0x9E94, - 0x9E91,0x9EC0,0x9EFC,0x9F2D,0x9F40,0x9F41,0x9F4D,0x9F56, - 0x9F57,0x9F58,0x5337,0x56B2,0x56B5,0x56B3,0x58E3,0x5B45, - 0x5DC6,0x5DC7,0x5EEE,0x5EEF,0x5FC0,0x5FC1,0x61F9,0x6517, - 0x6516,0x6515,0x6513,0x65DF,0x66E8,0x66E3,0x66E4,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 106, Array index 0x4900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6AF3,0x6AF0,0x6AEA,0x6AE8,0x6AF9,0x6AF1,0x6AEE, - 0x6AEF,0x703C,0x7035,0x702F,0x7037,0x7034,0x7031,0x7042, - 0x7038,0x703F,0x703A,0x7039,0x702A,0x7040,0x703B,0x7033, - 0x7041,0x7213,0x7214,0x72A8,0x737D,0x737C,0x74BA,0x76AB, - 0x76AA,0x76BE,0x76ED,0x77CC,0x77CE,0x77CF,0x77CD,0x77F2, - 0x7925,0x7923,0x7927,0x7928,0x7924,0x7929,0x79B2,0x7A6E, - 0x7A6C,0x7A6D,0x7AF7,0x7C49,0x7C48,0x7C4A,0x7C47,0x7C45, - 0x7CEE,0x7E7B,0x7E7E,0x7E81,0x7E80,0x7FBA,0x7FFF,0x8079, - 0x81DB,0x81D9,0x8268,0x8269,0x8622,0x85FF,0x8601,0x85FE, - 0x861B,0x8600,0x85F6,0x8604,0x8609,0x8605,0x860C,0x85FD, - 0x8819,0x8810,0x8811,0x8817,0x8813,0x8816,0x8963,0x8966, - 0x89B9,0x89F7,0x8B60,0x8B6A,0x8B5D,0x8B68,0x8B63,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 107, Array index 0x4A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8B65,0x8B67,0x8B6D,0x8DAE,0x8E86,0x8E88,0x8E84, - 0x8F59,0x8F56,0x8F57,0x8F55,0x8F58,0x8F5A,0x908D,0x9143, - 0x9141,0x91B7,0x91B5,0x91B2,0x91B3,0x940B,0x9413,0x93FB, - 0x9420,0x940F,0x9414,0x93FE,0x9415,0x9410,0x9428,0x9419, - 0x940D,0x93F5,0x9400,0x93F7,0x9407,0x940E,0x9416,0x9412, - 0x93FA,0x9409,0x93F8,0x943C,0x940A,0x93FF,0x93FC,0x940C, - 0x93F6,0x9411,0x9406,0x95DE,0x95E0,0x95DF,0x972E,0x972F, - 0x97B9,0x97BB,0x97FD,0x97FE,0x9860,0x9862,0x9863,0x985F, - 0x98C1,0x98C2,0x9950,0x994E,0x9959,0x994C,0x994B,0x9953, - 0x9A32,0x9A34,0x9A31,0x9A2C,0x9A2A,0x9A36,0x9A29,0x9A2E, - 0x9A38,0x9A2D,0x9AC7,0x9ACA,0x9AC6,0x9B10,0x9B12,0x9B11, - 0x9C0B,0x9C08,0x9BF7,0x9C05,0x9C12,0x9BF8,0x9C40,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 108, Array index 0x4B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9C07,0x9C0E,0x9C06,0x9C17,0x9C14,0x9C09,0x9D9F, - 0x9D99,0x9DA4,0x9D9D,0x9D92,0x9D98,0x9D90,0x9D9B,0x9DA0, - 0x9D94,0x9D9C,0x9DAA,0x9D97,0x9DA1,0x9D9A,0x9DA2,0x9DA8, - 0x9D9E,0x9DA3,0x9DBF,0x9DA9,0x9D96,0x9DA6,0x9DA7,0x9E99, - 0x9E9B,0x9E9A,0x9EE5,0x9EE4,0x9EE7,0x9EE6,0x9F30,0x9F2E, - 0x9F5B,0x9F60,0x9F5E,0x9F5D,0x9F59,0x9F91,0x513A,0x5139, - 0x5298,0x5297,0x56C3,0x56BD,0x56BE,0x5B48,0x5B47,0x5DCB, - 0x5DCF,0x5EF1,0x61FD,0x651B,0x6B02,0x6AFC,0x6B03,0x6AF8, - 0x6B00,0x7043,0x7044,0x704A,0x7048,0x7049,0x7045,0x7046, - 0x721D,0x721A,0x7219,0x737E,0x7517,0x766A,0x77D0,0x792D, - 0x7931,0x792F,0x7C54,0x7C53,0x7CF2,0x7E8A,0x7E87,0x7E88, - 0x7E8B,0x7E86,0x7E8D,0x7F4D,0x7FBB,0x8030,0x81DD,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 109, Array index 0x4C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8618,0x862A,0x8626,0x861F,0x8623,0x861C,0x8619, - 0x8627,0x862E,0x8621,0x8620,0x8629,0x861E,0x8625,0x8829, - 0x881D,0x881B,0x8820,0x8824,0x881C,0x882B,0x884A,0x896D, - 0x8969,0x896E,0x896B,0x89FA,0x8B79,0x8B78,0x8B45,0x8B7A, - 0x8B7B,0x8D10,0x8D14,0x8DAF,0x8E8E,0x8E8C,0x8F5E,0x8F5B, - 0x8F5D,0x9146,0x9144,0x9145,0x91B9,0x943F,0x943B,0x9436, - 0x9429,0x943D,0x9430,0x9439,0x942A,0x9437,0x942C,0x9440, - 0x9431,0x95E5,0x95E4,0x95E3,0x9735,0x973A,0x97BF,0x97E1, - 0x9864,0x98C9,0x98C6,0x98C0,0x9958,0x9956,0x9A39,0x9A3D, - 0x9A46,0x9A44,0x9A42,0x9A41,0x9A3A,0x9A3F,0x9ACD,0x9B15, - 0x9B17,0x9B18,0x9B16,0x9B3A,0x9B52,0x9C2B,0x9C1D,0x9C1C, - 0x9C2C,0x9C23,0x9C28,0x9C29,0x9C24,0x9C21,0x9DB7,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 110, Array index 0x4D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9DB6,0x9DBC,0x9DC1,0x9DC7,0x9DCA,0x9DCF,0x9DBE, - 0x9DC5,0x9DC3,0x9DBB,0x9DB5,0x9DCE,0x9DB9,0x9DBA,0x9DAC, - 0x9DC8,0x9DB1,0x9DAD,0x9DCC,0x9DB3,0x9DCD,0x9DB2,0x9E7A, - 0x9E9C,0x9EEB,0x9EEE,0x9EED,0x9F1B,0x9F18,0x9F1A,0x9F31, - 0x9F4E,0x9F65,0x9F64,0x9F92,0x4EB9,0x56C6,0x56C5,0x56CB, - 0x5971,0x5B4B,0x5B4C,0x5DD5,0x5DD1,0x5EF2,0x6521,0x6520, - 0x6526,0x6522,0x6B0B,0x6B08,0x6B09,0x6C0D,0x7055,0x7056, - 0x7057,0x7052,0x721E,0x721F,0x72A9,0x737F,0x74D8,0x74D5, - 0x74D9,0x74D7,0x766D,0x76AD,0x7935,0x79B4,0x7A70,0x7A71, - 0x7C57,0x7C5C,0x7C59,0x7C5B,0x7C5A,0x7CF4,0x7CF1,0x7E91, - 0x7F4F,0x7F87,0x81DE,0x826B,0x8634,0x8635,0x8633,0x862C, - 0x8632,0x8636,0x882C,0x8828,0x8826,0x882A,0x8825,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 111, Array index 0x4E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8971,0x89BF,0x89BE,0x89FB,0x8B7E,0x8B84,0x8B82, - 0x8B86,0x8B85,0x8B7F,0x8D15,0x8E95,0x8E94,0x8E9A,0x8E92, - 0x8E90,0x8E96,0x8E97,0x8F60,0x8F62,0x9147,0x944C,0x9450, - 0x944A,0x944B,0x944F,0x9447,0x9445,0x9448,0x9449,0x9446, - 0x973F,0x97E3,0x986A,0x9869,0x98CB,0x9954,0x995B,0x9A4E, - 0x9A53,0x9A54,0x9A4C,0x9A4F,0x9A48,0x9A4A,0x9A49,0x9A52, - 0x9A50,0x9AD0,0x9B19,0x9B2B,0x9B3B,0x9B56,0x9B55,0x9C46, - 0x9C48,0x9C3F,0x9C44,0x9C39,0x9C33,0x9C41,0x9C3C,0x9C37, - 0x9C34,0x9C32,0x9C3D,0x9C36,0x9DDB,0x9DD2,0x9DDE,0x9DDA, - 0x9DCB,0x9DD0,0x9DDC,0x9DD1,0x9DDF,0x9DE9,0x9DD9,0x9DD8, - 0x9DD6,0x9DF5,0x9DD5,0x9DDD,0x9EB6,0x9EF0,0x9F35,0x9F33, - 0x9F32,0x9F42,0x9F6B,0x9F95,0x9FA2,0x513D,0x5299,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 112, Array index 0x4F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x58E8,0x58E7,0x5972,0x5B4D,0x5DD8,0x882F,0x5F4F, - 0x6201,0x6203,0x6204,0x6529,0x6525,0x6596,0x66EB,0x6B11, - 0x6B12,0x6B0F,0x6BCA,0x705B,0x705A,0x7222,0x7382,0x7381, - 0x7383,0x7670,0x77D4,0x7C67,0x7C66,0x7E95,0x826C,0x863A, - 0x8640,0x8639,0x863C,0x8631,0x863B,0x863E,0x8830,0x8832, - 0x882E,0x8833,0x8976,0x8974,0x8973,0x89FE,0x8B8C,0x8B8E, - 0x8B8B,0x8B88,0x8C45,0x8D19,0x8E98,0x8F64,0x8F63,0x91BC, - 0x9462,0x9455,0x945D,0x9457,0x945E,0x97C4,0x97C5,0x9800, - 0x9A56,0x9A59,0x9B1E,0x9B1F,0x9B20,0x9C52,0x9C58,0x9C50, - 0x9C4A,0x9C4D,0x9C4B,0x9C55,0x9C59,0x9C4C,0x9C4E,0x9DFB, - 0x9DF7,0x9DEF,0x9DE3,0x9DEB,0x9DF8,0x9DE4,0x9DF6,0x9DE1, - 0x9DEE,0x9DE6,0x9DF2,0x9DF0,0x9DE2,0x9DEC,0x9DF4,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 113, Array index 0x5000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9DF3,0x9DE8,0x9DED,0x9EC2,0x9ED0,0x9EF2,0x9EF3, - 0x9F06,0x9F1C,0x9F38,0x9F37,0x9F36,0x9F43,0x9F4F,0x9F71, - 0x9F70,0x9F6E,0x9F6F,0x56D3,0x56CD,0x5B4E,0x5C6D,0x652D, - 0x66ED,0x66EE,0x6B13,0x705F,0x7061,0x705D,0x7060,0x7223, - 0x74DB,0x74E5,0x77D5,0x7938,0x79B7,0x79B6,0x7C6A,0x7E97, - 0x7F89,0x826D,0x8643,0x8838,0x8837,0x8835,0x884B,0x8B94, - 0x8B95,0x8E9E,0x8E9F,0x8EA0,0x8E9D,0x91BE,0x91BD,0x91C2, - 0x946B,0x9468,0x9469,0x96E5,0x9746,0x9743,0x9747,0x97C7, - 0x97E5,0x9A5E,0x9AD5,0x9B59,0x9C63,0x9C67,0x9C66,0x9C62, - 0x9C5E,0x9C60,0x9E02,0x9DFE,0x9E07,0x9E03,0x9E06,0x9E05, - 0x9E00,0x9E01,0x9E09,0x9DFF,0x9DFD,0x9E04,0x9EA0,0x9F1E, - 0x9F46,0x9F74,0x9F75,0x9F76,0x56D4,0x652E,0x65B8,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 114, Array index 0x5100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B18,0x6B19,0x6B17,0x6B1A,0x7062,0x7226,0x72AA, - 0x77D8,0x77D9,0x7939,0x7C69,0x7C6B,0x7CF6,0x7E9A,0x7E98, - 0x7E9B,0x7E99,0x81E0,0x81E1,0x8646,0x8647,0x8648,0x8979, - 0x897A,0x897C,0x897B,0x89FF,0x8B98,0x8B99,0x8EA5,0x8EA4, - 0x8EA3,0x946E,0x946D,0x946F,0x9471,0x9473,0x9749,0x9872, - 0x995F,0x9C68,0x9C6E,0x9C6D,0x9E0B,0x9E0D,0x9E10,0x9E0F, - 0x9E12,0x9E11,0x9EA1,0x9EF5,0x9F09,0x9F47,0x9F78,0x9F7B, - 0x9F7A,0x9F79,0x571E,0x7066,0x7C6F,0x883C,0x8DB2,0x8EA6, - 0x91C3,0x9474,0x9478,0x9476,0x9475,0x9A60,0x9B2E,0x9C74, - 0x9C73,0x9C71,0x9C75,0x9E14,0x9E13,0x9EF6,0x9F0A,0x9FA4, - 0x7068,0x7065,0x7CF7,0x866A,0x883E,0x883D,0x883F,0x8B9E, - 0x8C9C,0x8EA9,0x8EC9,0x974B,0x9873,0x9874,0x98CC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 115, Array index 0x5200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9961,0x99AB,0x9A64,0x9A66,0x9A67,0x9B24,0x9E15, - 0x9E17,0x9F48,0x6207,0x6B1E,0x7227,0x864C,0x8EA8,0x9482, - 0x9480,0x9481,0x9A69,0x9A68,0x9E19,0x864B,0x8B9F,0x9483, - 0x9C79,0x9EB7,0x7675,0x9A6B,0x9C7A,0x9E1D,0x7069,0x706A, - 0x7229,0x9EA4,0x9F7E,0x9F49,0x9F98,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, -}; - -#endif /* ICONV_TO_UCS_CCS_CNS11643_PLANE2 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit cns11643_plane2 -> UCS size-optimized table (15798 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE2) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_size_cns11643_plane2[] = -{ - 0x0052, /* Ranges number */ - 0x0000, /* Unranged codes number */ - 0x1EDB, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0x2121, 0x217E, 0x00F9, - /* Array index: 0x0006 */ 0x2221, 0x227E, 0x0157, - /* Array index: 0x0009 */ 0x2321, 0x237E, 0x01B5, - /* Array index: 0x000C */ 0x2421, 0x247E, 0x0213, - /* Array index: 0x000F */ 0x2521, 0x257E, 0x0271, - /* Array index: 0x0012 */ 0x2621, 0x267E, 0x02CF, - /* Array index: 0x0015 */ 0x2721, 0x277E, 0x032D, - /* Array index: 0x0018 */ 0x2821, 0x287E, 0x038B, - /* Array index: 0x001B */ 0x2921, 0x297E, 0x03E9, - /* Array index: 0x001E */ 0x2A21, 0x2A7E, 0x0447, - /* Array index: 0x0021 */ 0x2B21, 0x2B7E, 0x04A5, - /* Array index: 0x0024 */ 0x2C21, 0x2C7E, 0x0503, - /* Array index: 0x0027 */ 0x2D21, 0x2D7E, 0x0561, - /* Array index: 0x002A */ 0x2E21, 0x2E7E, 0x05BF, - /* Array index: 0x002D */ 0x2F21, 0x2F7E, 0x061D, - /* Array index: 0x0030 */ 0x3021, 0x307E, 0x067B, - /* Array index: 0x0033 */ 0x3121, 0x317E, 0x06D9, - /* Array index: 0x0036 */ 0x3221, 0x327E, 0x0737, - /* Array index: 0x0039 */ 0x3321, 0x337E, 0x0795, - /* Array index: 0x003C */ 0x3421, 0x347E, 0x07F3, - /* Array index: 0x003F */ 0x3521, 0x357E, 0x0851, - /* Array index: 0x0042 */ 0x3621, 0x367E, 0x08AF, - /* Array index: 0x0045 */ 0x3721, 0x377E, 0x090D, - /* Array index: 0x0048 */ 0x3821, 0x387E, 0x096B, - /* Array index: 0x004B */ 0x3921, 0x397E, 0x09C9, - /* Array index: 0x004E */ 0x3A21, 0x3A7E, 0x0A27, - /* Array index: 0x0051 */ 0x3B21, 0x3B7E, 0x0A85, - /* Array index: 0x0054 */ 0x3C21, 0x3C7E, 0x0AE3, - /* Array index: 0x0057 */ 0x3D21, 0x3D7E, 0x0B41, - /* Array index: 0x005A */ 0x3E21, 0x3E7E, 0x0B9F, - /* Array index: 0x005D */ 0x3F21, 0x3F7E, 0x0BFD, - /* Array index: 0x0060 */ 0x4021, 0x407E, 0x0C5B, - /* Array index: 0x0063 */ 0x4121, 0x417E, 0x0CB9, - /* Array index: 0x0066 */ 0x4221, 0x427E, 0x0D17, - /* Array index: 0x0069 */ 0x4321, 0x437E, 0x0D75, - /* Array index: 0x006C */ 0x4421, 0x447E, 0x0DD3, - /* Array index: 0x006F */ 0x4521, 0x457E, 0x0E31, - /* Array index: 0x0072 */ 0x4621, 0x467E, 0x0E8F, - /* Array index: 0x0075 */ 0x4721, 0x477E, 0x0EED, - /* Array index: 0x0078 */ 0x4821, 0x487E, 0x0F4B, - /* Array index: 0x007B */ 0x4921, 0x497E, 0x0FA9, - /* Array index: 0x007E */ 0x4A21, 0x4A7E, 0x1007, - /* Array index: 0x0081 */ 0x4B21, 0x4B7E, 0x1065, - /* Array index: 0x0084 */ 0x4C21, 0x4C7E, 0x10C3, - /* Array index: 0x0087 */ 0x4D21, 0x4D7E, 0x1121, - /* Array index: 0x008A */ 0x4E21, 0x4E7E, 0x117F, - /* Array index: 0x008D */ 0x4F21, 0x4F7E, 0x11DD, - /* Array index: 0x0090 */ 0x5021, 0x507E, 0x123B, - /* Array index: 0x0093 */ 0x5121, 0x517E, 0x1299, - /* Array index: 0x0096 */ 0x5221, 0x527E, 0x12F7, - /* Array index: 0x0099 */ 0x5321, 0x537E, 0x1355, - /* Array index: 0x009C */ 0x5421, 0x547E, 0x13B3, - /* Array index: 0x009F */ 0x5521, 0x557E, 0x1411, - /* Array index: 0x00A2 */ 0x5621, 0x567E, 0x146F, - /* Array index: 0x00A5 */ 0x5721, 0x577E, 0x14CD, - /* Array index: 0x00A8 */ 0x5821, 0x587E, 0x152B, - /* Array index: 0x00AB */ 0x5921, 0x597E, 0x1589, - /* Array index: 0x00AE */ 0x5A21, 0x5A7E, 0x15E7, - /* Array index: 0x00B1 */ 0x5B21, 0x5B7E, 0x1645, - /* Array index: 0x00B4 */ 0x5C21, 0x5C7E, 0x16A3, - /* Array index: 0x00B7 */ 0x5D21, 0x5D7E, 0x1701, - /* Array index: 0x00BA */ 0x5E21, 0x5E7E, 0x175F, - /* Array index: 0x00BD */ 0x5F21, 0x5F7E, 0x17BD, - /* Array index: 0x00C0 */ 0x6021, 0x607E, 0x181B, - /* Array index: 0x00C3 */ 0x6121, 0x617E, 0x1879, - /* Array index: 0x00C6 */ 0x6221, 0x627E, 0x18D7, - /* Array index: 0x00C9 */ 0x6321, 0x637E, 0x1935, - /* Array index: 0x00CC */ 0x6421, 0x647E, 0x1993, - /* Array index: 0x00CF */ 0x6521, 0x657E, 0x19F1, - /* Array index: 0x00D2 */ 0x6621, 0x667E, 0x1A4F, - /* Array index: 0x00D5 */ 0x6721, 0x677E, 0x1AAD, - /* Array index: 0x00D8 */ 0x6821, 0x687E, 0x1B0B, - /* Array index: 0x00DB */ 0x6921, 0x697E, 0x1B69, - /* Array index: 0x00DE */ 0x6A21, 0x6A7E, 0x1BC7, - /* Array index: 0x00E1 */ 0x6B21, 0x6B7E, 0x1C25, - /* Array index: 0x00E4 */ 0x6C21, 0x6C7E, 0x1C83, - /* Array index: 0x00E7 */ 0x6D21, 0x6D7E, 0x1CE1, - /* Array index: 0x00EA */ 0x6E21, 0x6E7E, 0x1D3F, - /* Array index: 0x00ED */ 0x6F21, 0x6F7E, 0x1D9D, - /* Array index: 0x00F0 */ 0x7021, 0x707E, 0x1DFB, - /* Array index: 0x00F3 */ 0x7121, 0x717E, 0x1E59, - /* Array index: 0x00F6 */ 0x7221, 0x7244, 0x1EB7, - /* Ranges content */ - /* Range 0x2121 - 0x217E, array index: 0x00F9 */ - 0x4E42,0x4E5C,0x51F5,0x531A,0x5382,0x4E07,0x4E0C,0x4E47, - 0x4E8D,0x56D7,0x5C6E,0x5F73,0x4E0F,0x5187,0x4E0E,0x4E2E, - 0x4E93,0x4EC2,0x4EC9,0x4EC8,0x5198,0x52FC,0x536C,0x53B9, - 0x5720,0x5903,0x592C,0x5C10,0x5DFF,0x65E1,0x6BB3,0x6BCC, - 0x6C14,0x723F,0x4E31,0x4E3C,0x4EE8,0x4EDC,0x4EE9,0x4EE1, - 0x4EDD,0x4EDA,0x520C,0x5209,0x531C,0x534C,0x5722,0x5723, - 0x5917,0x592F,0x5B81,0x5B84,0x5C12,0x5C3B,0x5C74,0x5C73, - 0x5E04,0x5E80,0x5E82,0x5FC9,0x6209,0x6250,0x6C15,0x6C36, - 0x6C43,0x6C3F,0x6C3B,0x72AE,0x72B0,0x738A,0x79B8,0x808A, - 0x961E,0x4F0E,0x4F18,0x4F2C,0x4EF5,0x4F14,0x4EF1,0x4F00, - 0x4EF7,0x4F08,0x4F1D,0x4F02,0x4F05,0x4F22,0x4F13,0x4F04, - 0x4EF4,0x4F12,0x51B1,0x5213,0x5210,0x52A6, - /* Range 0x2221 - 0x227E, array index: 0x0157 */ - 0x5322,0x531F,0x534D,0x538A,0x5407,0x56E1,0x56DF,0x572E, - 0x572A,0x5734,0x593C,0x5980,0x597C,0x5985,0x597B,0x597E, - 0x5977,0x597F,0x5B56,0x5C15,0x5C25,0x5C7C,0x5C7A,0x5C7B, - 0x5C7E,0x5DDF,0x5E75,0x5E84,0x5F02,0x5F1A,0x5F74,0x5FD5, - 0x5FD4,0x5FCF,0x625C,0x625E,0x6264,0x6261,0x6266,0x6262, - 0x6259,0x6260,0x625A,0x6265,0x6537,0x65EF,0x65EE,0x673E, - 0x6739,0x6738,0x673B,0x673A,0x673F,0x673C,0x6733,0x6C18, - 0x6C46,0x6C52,0x6C5C,0x6C4F,0x6C4A,0x6C54,0x6C4B,0x6C4C, - 0x7071,0x725E,0x72B4,0x72B5,0x738E,0x752A,0x767F,0x7A75, - 0x7F51,0x8278,0x827C,0x8280,0x827D,0x827F,0x864D,0x897E, - 0x9099,0x9097,0x9098,0x909B,0x9094,0x9622,0x9624,0x9620, - 0x9623,0x4F56,0x4F3B,0x4F62,0x4F49,0x4F53, - /* Range 0x2321 - 0x237E, array index: 0x01B5 */ - 0x4F64,0x4F3E,0x4F67,0x4F52,0x4F5F,0x4F41,0x4F58,0x4F2D, - 0x4F33,0x4F3F,0x4F61,0x518F,0x51B9,0x521C,0x521E,0x5221, - 0x52AD,0x52AE,0x5309,0x5363,0x5372,0x538E,0x538F,0x5430, - 0x5437,0x542A,0x5454,0x5445,0x5419,0x541C,0x5425,0x5418, - 0x543D,0x544F,0x5441,0x5428,0x5424,0x5447,0x56EE,0x56E7, - 0x56E5,0x5741,0x5745,0x574C,0x5749,0x574B,0x5752,0x5906, - 0x5940,0x59A6,0x5998,0x59A0,0x5997,0x598E,0x59A2,0x5990, - 0x598F,0x59A7,0x59A1,0x5B8E,0x5B92,0x5C28,0x5C2A,0x5C8D, - 0x5C8F,0x5C88,0x5C8B,0x5C89,0x5C92,0x5C8A,0x5C86,0x5C93, - 0x5C95,0x5DE0,0x5E0A,0x5E0E,0x5E8B,0x5E89,0x5E8C,0x5E88, - 0x5E8D,0x5F05,0x5F1D,0x5F78,0x5F76,0x5FD2,0x5FD1,0x5FD0, - 0x5FED,0x5FE8,0x5FEE,0x5FF3,0x5FE1,0x5FE4, - /* Range 0x2421 - 0x247E, array index: 0x0213 */ - 0x5FE3,0x5FFA,0x5FEF,0x5FF7,0x5FFB,0x6000,0x5FF4,0x623A, - 0x6283,0x628C,0x628E,0x628F,0x6294,0x6287,0x6271,0x627B, - 0x627A,0x6270,0x6281,0x6288,0x6277,0x627D,0x6272,0x6274, - 0x65F0,0x65F4,0x65F3,0x65F2,0x65F5,0x6745,0x6747,0x6759, - 0x6755,0x674C,0x6748,0x675D,0x674D,0x675A,0x674B,0x6BD0, - 0x6C19,0x6C1A,0x6C78,0x6C67,0x6C6B,0x6C84,0x6C8B,0x6C8F, - 0x6C71,0x6C6F,0x6C69,0x6C9A,0x6C6D,0x6C87,0x6C95,0x6C9C, - 0x6C66,0x6C73,0x6C65,0x6C7B,0x6C8E,0x7074,0x707A,0x7263, - 0x72BF,0x72BD,0x72C3,0x72C6,0x72C1,0x72BA,0x72C5,0x7395, - 0x7397,0x7393,0x7394,0x7392,0x753A,0x7539,0x7594,0x7595, - 0x7681,0x793D,0x8034,0x8095,0x8099,0x8090,0x8092,0x809C, - 0x8290,0x828F,0x8285,0x828E,0x8291,0x8293, - /* Range 0x2521 - 0x257E, array index: 0x0271 */ - 0x828A,0x8283,0x8284,0x8C78,0x8FC9,0x8FBF,0x909F,0x90A1, - 0x90A5,0x909E,0x90A7,0x90A0,0x9630,0x9628,0x962F,0x962D, - 0x4E33,0x4F98,0x4F7C,0x4F85,0x4F7D,0x4F80,0x4F87,0x4F76, - 0x4F74,0x4F89,0x4F84,0x4F77,0x4F4C,0x4F97,0x4F6A,0x4F9A, - 0x4F79,0x4F81,0x4F78,0x4F90,0x4F9C,0x4F94,0x4F9E,0x4F92, - 0x4F82,0x4F95,0x4F6B,0x4F6E,0x519E,0x51BC,0x51BE,0x5235, - 0x5232,0x5233,0x5246,0x5231,0x52BC,0x530A,0x530B,0x533C, - 0x5392,0x5394,0x5487,0x547F,0x5481,0x5491,0x5482,0x5488, - 0x546B,0x547A,0x547E,0x5465,0x546C,0x5474,0x5466,0x548D, - 0x546F,0x5461,0x5460,0x5498,0x5463,0x5467,0x5464,0x56F7, - 0x56F9,0x576F,0x5772,0x576D,0x576B,0x5771,0x5770,0x5776, - 0x5780,0x5775,0x577B,0x5773,0x5774,0x5762, - /* Range 0x2621 - 0x267E, array index: 0x02CF */ - 0x5768,0x577D,0x590C,0x5945,0x59B5,0x59BA,0x59CF,0x59CE, - 0x59B2,0x59CC,0x59C1,0x59B6,0x59BC,0x59C3,0x59D6,0x59B1, - 0x59BD,0x59C0,0x59C8,0x59B4,0x59C7,0x5B62,0x5B65,0x5B93, - 0x5B95,0x5C44,0x5C47,0x5CAE,0x5CA4,0x5CA0,0x5CB5,0x5CAF, - 0x5CA8,0x5CAC,0x5C9F,0x5CA3,0x5CAD,0x5CA2,0x5CAA,0x5CA7, - 0x5C9D,0x5CA5,0x5CB6,0x5CB0,0x5CA6,0x5E17,0x5E14,0x5E19, - 0x5F28,0x5F22,0x5F23,0x5F24,0x5F54,0x5F82,0x5F7E,0x5F7D, - 0x5FDE,0x5FE5,0x602D,0x6026,0x6019,0x6032,0x600B,0x6034, - 0x600A,0x6017,0x6033,0x601A,0x601E,0x602C,0x6022,0x600D, - 0x6010,0x602E,0x6013,0x6011,0x600C,0x6009,0x601C,0x6214, - 0x623D,0x62AD,0x62B4,0x62D1,0x62BE,0x62AA,0x62B6,0x62CA, - 0x62AE,0x62B3,0x62AF,0x62BB,0x62A9,0x62B0, - /* Range 0x2721 - 0x277E, array index: 0x032D */ - 0x62B8,0x653D,0x65A8,0x65BB,0x6609,0x65FC,0x6604,0x6612, - 0x6608,0x65FB,0x6603,0x660B,0x660D,0x6605,0x65FD,0x6611, - 0x6610,0x66F6,0x670A,0x6785,0x676C,0x678E,0x6792,0x6776, - 0x677B,0x6798,0x6786,0x6784,0x6774,0x678D,0x678C,0x677A, - 0x679F,0x6791,0x6799,0x6783,0x677D,0x6781,0x6778,0x6779, - 0x6794,0x6B25,0x6B80,0x6B7E,0x6BDE,0x6C1D,0x6C93,0x6CEC, - 0x6CEB,0x6CEE,0x6CD9,0x6CB6,0x6CD4,0x6CAD,0x6CE7,0x6CB7, - 0x6CD0,0x6CC2,0x6CBA,0x6CC3,0x6CC6,0x6CED,0x6CF2,0x6CD2, - 0x6CDD,0x6CB4,0x6C8A,0x6C9D,0x6C80,0x6CDE,0x6CC0,0x6D30, - 0x6CCD,0x6CC7,0x6CB0,0x6CF9,0x6CCF,0x6CE9,0x6CD1,0x7094, - 0x7098,0x7085,0x7093,0x7086,0x7084,0x7091,0x7096,0x7082, - 0x709A,0x7083,0x726A,0x72D6,0x72CB,0x72D8, - /* Range 0x2821 - 0x287E, array index: 0x038B */ - 0x72C9,0x72DC,0x72D2,0x72D4,0x72DA,0x72CC,0x72D1,0x73A4, - 0x73A1,0x73AD,0x73A6,0x73A2,0x73A0,0x73AC,0x739D,0x74DD, - 0x74E8,0x753F,0x7540,0x753E,0x758C,0x7598,0x76AF,0x76F3, - 0x76F1,0x76F0,0x76F5,0x77F8,0x77FC,0x77F9,0x77FB,0x77FA, - 0x77F7,0x7942,0x793F,0x79C5,0x7A78,0x7A7B,0x7AFB,0x7C75, - 0x7CFD,0x8035,0x808F,0x80AE,0x80A3,0x80B8,0x80B5,0x80AD, - 0x8220,0x82A0,0x82C0,0x82AB,0x829A,0x8298,0x829B,0x82B5, - 0x82A7,0x82AE,0x82BC,0x829E,0x82BA,0x82B4,0x82A8,0x82A1, - 0x82A9,0x82C2,0x82A4,0x82C3,0x82B6,0x82A2,0x8670,0x866F, - 0x866D,0x866E,0x8C56,0x8FD2,0x8FCB,0x8FD3,0x8FCD,0x8FD6, - 0x8FD5,0x8FD7,0x90B2,0x90B4,0x90AF,0x90B3,0x90B0,0x9639, - 0x963D,0x963C,0x963A,0x9643,0x4FCD,0x4FC5, - /* Range 0x2921 - 0x297E, array index: 0x03E9 */ - 0x4FD3,0x4FB2,0x4FC9,0x4FCB,0x4FC1,0x4FD4,0x4FDC,0x4FD9, - 0x4FBB,0x4FB3,0x4FDB,0x4FC7,0x4FD6,0x4FBA,0x4FC0,0x4FB9, - 0x4FEC,0x5244,0x5249,0x52C0,0x52C2,0x533D,0x537C,0x5397, - 0x5396,0x5399,0x5398,0x54BA,0x54A1,0x54AD,0x54A5,0x54CF, - 0x54C3,0x830D,0x54B7,0x54AE,0x54D6,0x54B6,0x54C5,0x54C6, - 0x54A0,0x5470,0x54BC,0x54A2,0x54BE,0x5472,0x54DE,0x54B0, - 0x57B5,0x579E,0x579F,0x57A4,0x578C,0x5797,0x579D,0x579B, - 0x5794,0x5798,0x578F,0x5799,0x57A5,0x579A,0x5795,0x58F4, - 0x590D,0x5953,0x59E1,0x59DE,0x59EE,0x5A00,0x59F1,0x59DD, - 0x59FA,0x59FD,0x59FC,0x59F6,0x59E4,0x59F2,0x59F7,0x59DB, - 0x59E9,0x59F3,0x59F5,0x59E0,0x59FE,0x59F4,0x59ED,0x5BA8, - 0x5C4C,0x5CD0,0x5CD8,0x5CCC,0x5CD7,0x5CCB, - /* Range 0x2A21 - 0x2A7E, array index: 0x0447 */ - 0x5CDB,0x5CDE,0x5CDA,0x5CC9,0x5CC7,0x5CCA,0x5CD6,0x5CD3, - 0x5CD4,0x5CCF,0x5CC8,0x5CC6,0x5CCE,0x5CDF,0x5CF8,0x5DF9, - 0x5E21,0x5E22,0x5E23,0x5E20,0x5E24,0x5EB0,0x5EA4,0x5EA2, - 0x5E9B,0x5EA3,0x5EA5,0x5F07,0x5F2E,0x5F56,0x5F86,0x6037, - 0x6039,0x6054,0x6072,0x605E,0x6045,0x6053,0x6047,0x6049, - 0x605B,0x604C,0x6040,0x6042,0x605F,0x6024,0x6044,0x6058, - 0x6066,0x606E,0x6242,0x6243,0x62CF,0x630D,0x630B,0x62F5, - 0x630E,0x6303,0x62EB,0x62F9,0x630F,0x630C,0x62F8,0x62F6, - 0x6300,0x6313,0x6314,0x62FA,0x6315,0x62FB,0x62F0,0x6541, - 0x6543,0x65AA,0x65BF,0x6636,0x6621,0x6632,0x6635,0x661C, - 0x6626,0x6622,0x6633,0x662B,0x663A,0x661D,0x6634,0x6639, - 0x662E,0x670F,0x6710,0x67C1,0x67F2,0x67C8, - /* Range 0x2B21 - 0x2B7E, array index: 0x04A5 */ - 0x67BA,0x67DC,0x67BB,0x67F8,0x67D8,0x67C0,0x67B7,0x67C5, - 0x67EB,0x67E4,0x67DF,0x67B5,0x67CD,0x67B3,0x67F7,0x67F6, - 0x67EE,0x67E3,0x67C2,0x67B9,0x67CE,0x67E7,0x67F0,0x67B2, - 0x67FC,0x67C6,0x67ED,0x67CC,0x67AE,0x67E6,0x67DB,0x67FA, - 0x67C9,0x67CA,0x67C3,0x67EA,0x67CB,0x6B28,0x6B82,0x6B84, - 0x6BB6,0x6BD6,0x6BD8,0x6BE0,0x6C20,0x6C21,0x6D28,0x6D34, - 0x6D2D,0x6D1F,0x6D3C,0x6D3F,0x6D12,0x6D0A,0x6CDA,0x6D33, - 0x6D04,0x6D19,0x6D3A,0x6D1A,0x6D11,0x6D00,0x6D1D,0x6D42, - 0x6D01,0x6D18,0x6D37,0x6D03,0x6D0F,0x6D40,0x6D07,0x6D20, - 0x6D2C,0x6D08,0x6D22,0x6D09,0x6D10,0x70B7,0x709F,0x70BE, - 0x70B1,0x70B0,0x70A1,0x70B4,0x70B5,0x70A9,0x7241,0x7249, - 0x724A,0x726C,0x7270,0x7273,0x726E,0x72CA, - /* Range 0x2C21 - 0x2C7E, array index: 0x0503 */ - 0x72E4,0x72E8,0x72EB,0x72DF,0x72EA,0x72E6,0x72E3,0x7385, - 0x73CC,0x73C2,0x73C8,0x73C5,0x73B9,0x73B6,0x73B5,0x73B4, - 0x73EB,0x73BF,0x73C7,0x73BE,0x73C3,0x73C6,0x73B8,0x73CB, - 0x74EC,0x74EE,0x752E,0x7547,0x7548,0x75A7,0x75AA,0x7679, - 0x76C4,0x7708,0x7703,0x7704,0x7705,0x770A,0x76F7,0x76FB, - 0x76FA,0x77E7,0x77E8,0x7806,0x7811,0x7812,0x7805,0x7810, - 0x780F,0x780E,0x7809,0x7803,0x7813,0x794A,0x794C,0x794B, - 0x7945,0x7944,0x79D5,0x79CD,0x79CF,0x79D6,0x79CE,0x7A80, - 0x7A7E,0x7AD1,0x7B00,0x7B01,0x7C7A,0x7C78,0x7C79,0x7C7F, - 0x7C80,0x7C81,0x7D03,0x7D08,0x7D01,0x7F58,0x7F91,0x7F8D, - 0x7FBE,0x8007,0x800E,0x800F,0x8014,0x8037,0x80D8,0x80C7, - 0x80E0,0x80D1,0x80C8,0x80C2,0x80D0,0x80C5, - /* Range 0x2D21 - 0x2D7E, array index: 0x0561 */ - 0x80E3,0x80D9,0x80DC,0x80CA,0x80D5,0x80C9,0x80CF,0x80D7, - 0x80E6,0x80CD,0x81FF,0x8221,0x8294,0x82D9,0x82FE,0x82F9, - 0x8307,0x82E8,0x8300,0x82D5,0x833A,0x82EB,0x82D6,0x82F4, - 0x82EC,0x82E1,0x82F2,0x82F5,0x830C,0x82FB,0x82F6,0x82F0, - 0x82EA,0x82E4,0x82E0,0x82FA,0x82F3,0x82ED,0x8677,0x8674, - 0x867C,0x8673,0x8841,0x884E,0x8867,0x886A,0x8869,0x89D3, - 0x8A04,0x8A07,0x8D72,0x8FE3,0x8FE1,0x8FEE,0x8FE0,0x90F1, - 0x90BD,0x90BF,0x90D5,0x90C5,0x90BE,0x90C7,0x90CB,0x90C8, - 0x91D4,0x91D3,0x9654,0x964F,0x9651,0x9653,0x964A,0x964E, - 0x501E,0x5005,0x5007,0x5013,0x5022,0x5030,0x501B,0x4FF5, - 0x4FF4,0x5033,0x5037,0x502C,0x4FF6,0x4FF7,0x5017,0x501C, - 0x5020,0x5027,0x5035,0x502F,0x5031,0x500E, - /* Range 0x2E21 - 0x2E7E, array index: 0x05BF */ - 0x515A,0x5194,0x5193,0x51CA,0x51C4,0x51C5,0x51C8,0x51CE, - 0x5261,0x525A,0x5252,0x525E,0x525F,0x5255,0x5262,0x52CD, - 0x530E,0x539E,0x5526,0x54E2,0x5517,0x5512,0x54E7,0x54F3, - 0x54E4,0x551A,0x54FF,0x5504,0x5508,0x54EB,0x5511,0x5505, - 0x54F1,0x550A,0x54FB,0x54F7,0x54F8,0x54E0,0x550E,0x5503, - 0x550B,0x5701,0x5702,0x57CC,0x5832,0x57D5,0x57D2,0x57BA, - 0x57C6,0x57BD,0x57BC,0x57B8,0x57B6,0x57BF,0x57C7,0x57D0, - 0x57B9,0x57C1,0x590E,0x594A,0x5A19,0x5A16,0x5A2D,0x5A2E, - 0x5A15,0x5A0F,0x5A17,0x5A0A,0x5A1E,0x5A33,0x5B6C,0x5BA7, - 0x5BAD,0x5BAC,0x5C03,0x5C56,0x5C54,0x5CEC,0x5CFF,0x5CEE, - 0x5CF1,0x5CF7,0x5D00,0x5CF9,0x5E29,0x5E28,0x5EA8,0x5EAE, - 0x5EAA,0x5EAC,0x5F33,0x5F30,0x5F67,0x605D, - /* Range 0x2F21 - 0x2F7E, array index: 0x061D */ - 0x605A,0x6067,0x6041,0x60A2,0x6088,0x6080,0x6092,0x6081, - 0x609D,0x6083,0x6095,0x609B,0x6097,0x6087,0x609C,0x608E, - 0x6219,0x6246,0x62F2,0x6310,0x6356,0x632C,0x6344,0x6345, - 0x6336,0x6343,0x63E4,0x6339,0x634B,0x634A,0x633C,0x6329, - 0x6341,0x6334,0x6358,0x6354,0x6359,0x632D,0x6347,0x6333, - 0x635A,0x6351,0x6338,0x6357,0x6340,0x6348,0x654A,0x6546, - 0x65C6,0x65C3,0x65C4,0x65C2,0x664A,0x665F,0x6647,0x6651, - 0x6712,0x6713,0x681F,0x681A,0x6849,0x6832,0x6833,0x683B, - 0x684B,0x684F,0x6816,0x6831,0x681C,0x6835,0x682B,0x682D, - 0x682F,0x684E,0x6844,0x6834,0x681D,0x6812,0x6814,0x6826, - 0x6828,0x682E,0x684D,0x683A,0x6825,0x6820,0x6B2C,0x6B2F, - 0x6B2D,0x6B31,0x6B34,0x6B6D,0x8082,0x6B88, - /* Range 0x3021 - 0x307E, array index: 0x067B */ - 0x6BE6,0x6BE4,0x6BE8,0x6BE3,0x6BE2,0x6BE7,0x6C25,0x6D7A, - 0x6D63,0x6D64,0x6D76,0x6D0D,0x6D61,0x6D92,0x6D58,0x6D62, - 0x6D6D,0x6D6F,0x6D91,0x6D8D,0x6DEF,0x6D7F,0x6D86,0x6D5E, - 0x6D67,0x6D60,0x6D97,0x6D70,0x6D7C,0x6D5F,0x6D82,0x6D98, - 0x6D2F,0x6D68,0x6D8B,0x6D7E,0x6D80,0x6D84,0x6D16,0x6D83, - 0x6D7B,0x6D7D,0x6D75,0x6D90,0x70DC,0x70D3,0x70D1,0x70DD, - 0x70CB,0x7F39,0x70E2,0x70D7,0x70D2,0x70DE,0x70E0,0x70D4, - 0x70CD,0x70C5,0x70C6,0x70C7,0x70DA,0x70CE,0x70E1,0x7242, - 0x7278,0x7277,0x7276,0x7300,0x72FA,0x72F4,0x72FE,0x72F6, - 0x72F3,0x72FB,0x7301,0x73D3,0x73D9,0x73E5,0x73D6,0x73BC, - 0x73E7,0x73E3,0x73E9,0x73DC,0x73D2,0x73DB,0x73D4,0x73DD, - 0x73DA,0x73D7,0x73D8,0x73E8,0x74DE,0x74DF, - /* Range 0x3121 - 0x317E, array index: 0x06D9 */ - 0x74F4,0x74F5,0x7521,0x755B,0x755F,0x75B0,0x75C1,0x75BB, - 0x75C4,0x75C0,0x75BF,0x75B6,0x75BA,0x768A,0x76C9,0x771D, - 0x771B,0x7710,0x7713,0x7712,0x7723,0x7711,0x7715,0x7719, - 0x771A,0x7722,0x7727,0x7823,0x782C,0x7822,0x7835,0x782F, - 0x7828,0x782E,0x782B,0x7821,0x7829,0x7833,0x782A,0x7831, - 0x7954,0x795B,0x794F,0x795C,0x7953,0x7952,0x7951,0x79EB, - 0x79EC,0x79E0,0x79EE,0x79ED,0x79EA,0x79DC,0x79DE,0x79DD, - 0x7A86,0x7A89,0x7A85,0x7A8B,0x7A8C,0x7A8A,0x7A87,0x7AD8, - 0x7B10,0x7B04,0x7B13,0x7B05,0x7B0F,0x7B08,0x7B0A,0x7B0E, - 0x7B09,0x7B12,0x7C84,0x7C91,0x7C8A,0x7C8C,0x7C88,0x7C8D, - 0x7C85,0x7D1E,0x7D1D,0x7D11,0x7D0E,0x7D18,0x7D16,0x7D13, - 0x7D1F,0x7D12,0x7D0F,0x7D0C,0x7F5C,0x7F61, - /* Range 0x3221 - 0x327E, array index: 0x0737 */ - 0x7F5E,0x7F60,0x7F5D,0x7F5B,0x7F96,0x7F92,0x7FC3,0x7FC2, - 0x7FC0,0x8016,0x803E,0x8039,0x80FA,0x80F2,0x80F9,0x80F5, - 0x8101,0x80FB,0x8100,0x8201,0x822F,0x8225,0x8333,0x832D, - 0x8344,0x8319,0x8351,0x8325,0x8356,0x833F,0x8341,0x8326, - 0x831C,0x8322,0x8342,0x834E,0x831B,0x832A,0x8308,0x833C, - 0x834D,0x8316,0x8324,0x8320,0x8337,0x832F,0x8329,0x8347, - 0x8345,0x834C,0x8353,0x831E,0x832C,0x834B,0x8327,0x8348, - 0x8653,0x8652,0x86A2,0x86A8,0x8696,0x868D,0x8691,0x869E, - 0x8687,0x8697,0x8686,0x868B,0x869A,0x8685,0x86A5,0x8699, - 0x86A1,0x86A7,0x8695,0x8698,0x868E,0x869D,0x8690,0x8694, - 0x8843,0x8844,0x886D,0x8875,0x8876,0x8872,0x8880,0x8871, - 0x887F,0x886F,0x8883,0x887E,0x8874,0x887C, - /* Range 0x3321 - 0x337E, array index: 0x0795 */ - 0x8A12,0x8C47,0x8C57,0x8C7B,0x8CA4,0x8CA3,0x8D76,0x8D78, - 0x8DB5,0x8DB7,0x8DB6,0x8ED1,0x8ED3,0x8FFE,0x8FF5,0x9002, - 0x8FFF,0x8FFB,0x9004,0x8FFC,0x8FF6,0x90D6,0x90E0,0x90D9, - 0x90DA,0x90E3,0x90DF,0x90E5,0x90D8,0x90DB,0x90D7,0x90DC, - 0x90E4,0x9150,0x914E,0x914F,0x91D5,0x91E2,0x91DA,0x965C, - 0x965F,0x96BC,0x98E3,0x9ADF,0x9B2F,0x4E7F,0x5070,0x506A, - 0x5061,0x505E,0x5060,0x5053,0x504B,0x505D,0x5072,0x5048, - 0x504D,0x5041,0x505B,0x504A,0x5062,0x5015,0x5045,0x505F, - 0x5069,0x506B,0x5063,0x5064,0x5046,0x5040,0x506E,0x5073, - 0x5057,0x5051,0x51D0,0x526B,0x526D,0x526C,0x526E,0x52D6, - 0x52D3,0x532D,0x539C,0x5575,0x5576,0x553C,0x554D,0x5550, - 0x5534,0x552A,0x5551,0x5562,0x5536,0x5535, - /* Range 0x3421 - 0x347E, array index: 0x07F3 */ - 0x5530,0x5552,0x5545,0x550C,0x5532,0x5565,0x554E,0x5539, - 0x5548,0x552D,0x553B,0x5540,0x554B,0x570A,0x5707,0x57FB, - 0x5814,0x57E2,0x57F6,0x57DC,0x57F4,0x5800,0x57ED,0x57FD, - 0x5808,0x57F8,0x580B,0x57F3,0x57CF,0x5807,0x57EE,0x57E3, - 0x57F2,0x57E5,0x57EC,0x57E1,0x580E,0x57FC,0x5810,0x57E7, - 0x5801,0x580C,0x57F1,0x57E9,0x57F0,0x580D,0x5804,0x595C, - 0x5A60,0x5A58,0x5A55,0x5A67,0x5A5E,0x5A38,0x5A35,0x5A6D, - 0x5A50,0x5A5F,0x5A65,0x5A6C,0x5A53,0x5A64,0x5A57,0x5A43, - 0x5A5D,0x5A52,0x5A44,0x5A5B,0x5A48,0x5A8E,0x5A3E,0x5A4D, - 0x5A39,0x5A4C,0x5A70,0x5A69,0x5A47,0x5A51,0x5A56,0x5A42, - 0x5A5C,0x5B72,0x5B6E,0x5BC1,0x5BC0,0x5C59,0x5D1E,0x5D0B, - 0x5D1D,0x5D1A,0x5D20,0x5D0C,0x5D28,0x5D0D, - /* Range 0x3521 - 0x357E, array index: 0x0851 */ - 0x5D26,0x5D25,0x5D0F,0x5D30,0x5D12,0x5D23,0x5D1F,0x5D2E, - 0x5E3E,0x5E34,0x5EB1,0x5EB4,0x5EB9,0x5EB2,0x5EB3,0x5F36, - 0x5F38,0x5F9B,0x5F96,0x5F9F,0x608A,0x6090,0x6086,0x60BE, - 0x60B0,0x60BA,0x60D3,0x60D4,0x60CF,0x60E4,0x60D9,0x60DD, - 0x60C8,0x60B1,0x60DB,0x60B7,0x60CA,0x60BF,0x60C3,0x60CD, - 0x60C0,0x6332,0x6365,0x638A,0x6382,0x637D,0x63BD,0x639E, - 0x63AD,0x639D,0x6397,0x63AB,0x638E,0x636F,0x6387,0x6390, - 0x636E,0x63AF,0x6375,0x639C,0x636D,0x63AE,0x637C,0x63A4, - 0x633B,0x639F,0x6378,0x6385,0x6381,0x6391,0x638D,0x6370, - 0x6553,0x65CD,0x6665,0x6661,0x665B,0x6659,0x665C,0x6662, - 0x6718,0x6879,0x6887,0x6890,0x689C,0x686D,0x686E,0x68AE, - 0x68AB,0x6956,0x686F,0x68A3,0x68AC,0x68A9, - /* Range 0x3621 - 0x367E, array index: 0x08AF */ - 0x6875,0x6874,0x68B2,0x688F,0x6877,0x6892,0x687C,0x686B, - 0x6872,0x68AA,0x6880,0x6871,0x687E,0x689B,0x6896,0x688B, - 0x68A0,0x6889,0x68A4,0x6878,0x687B,0x6891,0x688C,0x688A, - 0x687D,0x6B36,0x6B33,0x6B37,0x6B38,0x6B91,0x6B8F,0x6B8D, - 0x6B8E,0x6B8C,0x6C2A,0x6DC0,0x6DAB,0x6DB4,0x6DB3,0x6E74, - 0x6DAC,0x6DE9,0x6DE2,0x6DB7,0x6DF6,0x6DD4,0x6E00,0x6DC8, - 0x6DE0,0x6DDF,0x6DD6,0x6DBE,0x6DE5,0x6DDC,0x6DDD,0x6DDB, - 0x6DF4,0x6DCA,0x6DBD,0x6DED,0x6DF0,0x6DBA,0x6DD5,0x6DC2, - 0x6DCF,0x6DC9,0x6DD0,0x6DF2,0x6DD3,0x6DFD,0x6DD7,0x6DCD, - 0x6DE3,0x6DBB,0x70FA,0x710D,0x70F7,0x7117,0x70F4,0x710C, - 0x70F0,0x7104,0x70F3,0x7110,0x70FC,0x70FF,0x7106,0x7113, - 0x7100,0x70F8,0x70F6,0x710B,0x7102,0x710E, - /* Range 0x3721 - 0x377E, array index: 0x090D */ - 0x727E,0x727B,0x727C,0x727F,0x731D,0x7317,0x7307,0x7311, - 0x7318,0x730A,0x7308,0x72FF,0x730F,0x731E,0x7388,0x73F6, - 0x73F8,0x73F5,0x7404,0x7401,0x73FD,0x7407,0x7400,0x73FA, - 0x73FC,0x73FF,0x740C,0x740B,0x73F4,0x7408,0x7564,0x7563, - 0x75CE,0x75D2,0x75CF,0x75CB,0x75CC,0x75D1,0x75D0,0x768F, - 0x7689,0x76D3,0x7739,0x772F,0x772D,0x7731,0x7732,0x7734, - 0x7733,0x773D,0x7725,0x773B,0x7735,0x7848,0x7852,0x7849, - 0x784D,0x784A,0x784C,0x7826,0x7845,0x7850,0x7964,0x7967, - 0x7969,0x796A,0x7963,0x796B,0x7961,0x79BB,0x79FA,0x79F8, - 0x79F6,0x79F7,0x7A8F,0x7A94,0x7A90,0x7B35,0x7B3B,0x7B34, - 0x7B25,0x7B30,0x7B22,0x7B24,0x7B33,0x7B18,0x7B2A,0x7B1D, - 0x7B31,0x7B2B,0x7B2D,0x7B2F,0x7B32,0x7B38, - /* Range 0x3821 - 0x387E, array index: 0x096B */ - 0x7B1A,0x7B23,0x7C94,0x7C98,0x7C96,0x7CA3,0x7D35,0x7D3D, - 0x7D38,0x7D36,0x7D3A,0x7D45,0x7D2C,0x7D29,0x7D41,0x7D47, - 0x7D3E,0x7D3F,0x7D4A,0x7D3B,0x7D28,0x7F63,0x7F95,0x7F9C, - 0x7F9D,0x7F9B,0x7FCA,0x7FCB,0x7FCD,0x7FD0,0x7FD1,0x7FC7, - 0x7FCF,0x7FC9,0x801F,0x801E,0x801B,0x8047,0x8043,0x8048, - 0x8118,0x8125,0x8119,0x811B,0x812D,0x811F,0x812C,0x811E, - 0x8121,0x8115,0x8127,0x811D,0x8122,0x8211,0x8238,0x8233, - 0x823A,0x8234,0x8232,0x8274,0x8390,0x83A3,0x83A8,0x838D, - 0x837A,0x8373,0x83A4,0x8374,0x838F,0x8381,0x8395,0x8399, - 0x8375,0x8394,0x83A9,0x837D,0x8383,0x838C,0x839D,0x839B, - 0x83AA,0x838B,0x837E,0x83A5,0x83AF,0x8388,0x8397,0x83B0, - 0x837F,0x83A6,0x8387,0x83AE,0x8376,0x8659, - /* Range 0x3921 - 0x397E, array index: 0x09C9 */ - 0x8656,0x86BF,0x86B7,0x86C2,0x86C1,0x86C5,0x86BA,0x86B0, - 0x86C8,0x86B9,0x86B3,0x86B8,0x86CC,0x86B4,0x86BB,0x86BC, - 0x86C3,0x86BD,0x86BE,0x8852,0x8889,0x8895,0x88A8,0x88A2, - 0x88AA,0x889A,0x8891,0x88A1,0x889F,0x8898,0x88A7,0x8899, - 0x889B,0x8897,0x88A4,0x88AC,0x888C,0x8893,0x888E,0x8982, - 0x89D6,0x89D9,0x89D5,0x8A30,0x8A27,0x8A2C,0x8A1E,0x8C39, - 0x8C3B,0x8C5C,0x8C5D,0x8C7D,0x8CA5,0x8D7D,0x8D7B,0x8D79, - 0x8DBC,0x8DC2,0x8DB9,0x8DBF,0x8DC1,0x8ED8,0x8EDE,0x8EDD, - 0x8EDC,0x8ED7,0x8EE0,0x8EE1,0x9024,0x900B,0x9011,0x901C, - 0x900C,0x9021,0x90EF,0x90EA,0x90F0,0x90F4,0x90F2,0x90F3, - 0x90D4,0x90EB,0x90EC,0x90E9,0x9156,0x9158,0x915A,0x9153, - 0x9155,0x91EC,0x91F4,0x91F1,0x91F3,0x91F8, - /* Range 0x3A21 - 0x3A7E, array index: 0x0A27 */ - 0x91E4,0x91F9,0x91EA,0x91EB,0x91F7,0x91E8,0x91EE,0x957A, - 0x9586,0x9588,0x967C,0x966D,0x966B,0x9671,0x966F,0x96BF, - 0x976A,0x9804,0x98E5,0x9997,0x509B,0x5095,0x5094,0x509E, - 0x508B,0x50A3,0x5083,0x508C,0x508E,0x509D,0x5068,0x509C, - 0x5092,0x5082,0x5087,0x515F,0x51D4,0x5312,0x5311,0x53A4, - 0x53A7,0x5591,0x55A8,0x55A5,0x55AD,0x5577,0x5645,0x55A2, - 0x5593,0x5588,0x558F,0x55B5,0x5581,0x55A3,0x5592,0x55A4, - 0x557D,0x558C,0x55A6,0x557F,0x5595,0x55A1,0x558E,0x570C, - 0x5829,0x5837,0x5819,0x581E,0x5827,0x5823,0x5828,0x57F5, - 0x5848,0x5825,0x581C,0x581B,0x5833,0x583F,0x5836,0x582E, - 0x5839,0x5838,0x582D,0x582C,0x583B,0x5961,0x5AAF,0x5A94, - 0x5A9F,0x5A7A,0x5AA2,0x5A9E,0x5A78,0x5AA6, - /* Range 0x3B21 - 0x3B7E, array index: 0x0A85 */ - 0x5A7C,0x5AA5,0x5AAC,0x5A95,0x5AAE,0x5A37,0x5A84,0x5A8A, - 0x5A97,0x5A83,0x5A8B,0x5AA9,0x5A7B,0x5A7D,0x5A8C,0x5A9C, - 0x5A8F,0x5A93,0x5A9D,0x5BEA,0x5BCD,0x5BCB,0x5BD4,0x5BD1, - 0x5BCA,0x5BCE,0x5C0C,0x5C30,0x5D37,0x5D43,0x5D6B,0x5D41, - 0x5D4B,0x5D3F,0x5D35,0x5D51,0x5D4E,0x5D55,0x5D33,0x5D3A, - 0x5D52,0x5D3D,0x5D31,0x5D59,0x5D42,0x5D39,0x5D49,0x5D38, - 0x5D3C,0x5D32,0x5D36,0x5D40,0x5D45,0x5E44,0x5E41,0x5F58, - 0x5FA6,0x5FA5,0x5FAB,0x60C9,0x60B9,0x60CC,0x60E2,0x60CE, - 0x60C4,0x6114,0x60F2,0x610A,0x6116,0x6105,0x60F5,0x6113, - 0x60F8,0x60FC,0x60FE,0x60C1,0x6103,0x6118,0x611D,0x6110, - 0x60FF,0x6104,0x610B,0x624A,0x6394,0x63B1,0x63B0,0x63CE, - 0x63E5,0x63E8,0x63EF,0x63C3,0x649D,0x63F3, - /* Range 0x3C21 - 0x3C7E, array index: 0x0AE3 */ - 0x63CA,0x63E0,0x63F6,0x63D5,0x63F2,0x63F5,0x6461,0x63DF, - 0x63BE,0x63DD,0x63DC,0x63C4,0x63D8,0x63D3,0x63C2,0x63C7, - 0x63CC,0x63CB,0x63C8,0x63F0,0x63D7,0x63D9,0x6532,0x6567, - 0x656A,0x6564,0x655C,0x6568,0x6565,0x658C,0x659D,0x659E, - 0x65AE,0x65D0,0x65D2,0x667C,0x666C,0x667B,0x6680,0x6671, - 0x6679,0x666A,0x6672,0x6701,0x690C,0x68D3,0x6904,0x68DC, - 0x692A,0x68EC,0x68EA,0x68F1,0x690F,0x68D6,0x68F7,0x68EB, - 0x68E4,0x68F6,0x6913,0x6910,0x68F3,0x68E1,0x6907,0x68CC, - 0x6908,0x6970,0x68B4,0x6911,0x68EF,0x68C6,0x6914,0x68F8, - 0x68D0,0x68FD,0x68FC,0x68E8,0x690B,0x690A,0x6917,0x68CE, - 0x68C8,0x68DD,0x68DE,0x68E6,0x68F4,0x68D1,0x6906,0x68D4, - 0x68E9,0x6915,0x6925,0x68C7,0x6B39,0x6B3B, - /* Range 0x3D21 - 0x3D7E, array index: 0x0B41 */ - 0x6B3F,0x6B3C,0x6B94,0x6B97,0x6B99,0x6B95,0x6BBD,0x6BF0, - 0x6BF2,0x6BF3,0x6C30,0x6DFC,0x6E46,0x6E47,0x6E1F,0x6E49, - 0x6E88,0x6E3C,0x6E3D,0x6E45,0x6E62,0x6E2B,0x6E3F,0x6E41, - 0x6E5D,0x6E73,0x6E1C,0x6E33,0x6E4B,0x6E40,0x6E51,0x6E3B, - 0x6E03,0x6E2E,0x6E5E,0x6E68,0x6E5C,0x6E61,0x6E31,0x6E28, - 0x6E60,0x6E71,0x6E6B,0x6E39,0x6E22,0x6E30,0x6E53,0x6E65, - 0x6E27,0x6E78,0x6E64,0x6E77,0x6E55,0x6E79,0x6E52,0x6E66, - 0x6E35,0x6E36,0x6E5A,0x7120,0x711E,0x712F,0x70FB,0x712E, - 0x7131,0x7123,0x7125,0x7122,0x7132,0x711F,0x7128,0x713A, - 0x711B,0x724B,0x725A,0x7288,0x7289,0x7286,0x7285,0x728B, - 0x7312,0x730B,0x7330,0x7322,0x7331,0x7333,0x7327,0x7332, - 0x732D,0x7326,0x7323,0x7335,0x730C,0x742E, - /* Range 0x3E21 - 0x3E7E, array index: 0x0B9F */ - 0x742C,0x7430,0x742B,0x7416,0x741A,0x7421,0x742D,0x7431, - 0x7424,0x7423,0x741D,0x7429,0x7420,0x7432,0x74FB,0x752F, - 0x756F,0x756C,0x75E7,0x75DA,0x75E1,0x75E6,0x75DD,0x75DF, - 0x75E4,0x75D7,0x7695,0x7692,0x76DA,0x7746,0x7747,0x7744, - 0x774D,0x7745,0x774A,0x774E,0x774B,0x774C,0x77DE,0x77EC, - 0x7860,0x7864,0x7865,0x785C,0x786D,0x7871,0x786A,0x786E, - 0x7870,0x7869,0x7868,0x785E,0x7862,0x7974,0x7973,0x7972, - 0x7970,0x7A02,0x7A0A,0x7A03,0x7A0C,0x7A04,0x7A99,0x7AE6, - 0x7AE4,0x7B4A,0x7B47,0x7B44,0x7B48,0x7B4C,0x7B4E,0x7B40, - 0x7B58,0x7B45,0x7CA2,0x7C9E,0x7CA8,0x7CA1,0x7D58,0x7D6F, - 0x7D63,0x7D53,0x7D56,0x7D67,0x7D6A,0x7D4F,0x7D6D,0x7D5C, - 0x7D6B,0x7D52,0x7D54,0x7D69,0x7D51,0x7D5F, - /* Range 0x3F21 - 0x3F7E, array index: 0x0BFD */ - 0x7D4E,0x7F3E,0x7F3F,0x7F65,0x7F66,0x7FA2,0x7FA0,0x7FA1, - 0x7FD7,0x8051,0x804F,0x8050,0x80FE,0x80D4,0x8143,0x814A, - 0x8152,0x814F,0x8147,0x813D,0x814D,0x813A,0x81E6,0x81EE, - 0x81F7,0x81F8,0x81F9,0x8204,0x823C,0x823D,0x823F,0x8275, - 0x833B,0x83CF,0x83F9,0x8423,0x83C0,0x83E8,0x8412,0x83E7, - 0x83E4,0x83FC,0x83F6,0x8410,0x83C6,0x83C8,0x83EB,0x83E3, - 0x83BF,0x8401,0x83DD,0x83E5,0x83D8,0x83FF,0x83E1,0x83CB, - 0x83CE,0x83D6,0x83F5,0x83C9,0x8409,0x840F,0x83DE,0x8411, - 0x8406,0x83C2,0x83F3,0x83D5,0x83FA,0x83C7,0x83D1,0x83EA, - 0x8413,0x839A,0x83C3,0x83EC,0x83EE,0x83C4,0x83FB,0x83D7, - 0x83E2,0x841B,0x83DB,0x83FE,0x86D8,0x86E2,0x86E6,0x86D3, - 0x86E3,0x86DA,0x86EA,0x86DD,0x86EB,0x86DC, - /* Range 0x4021 - 0x407E, array index: 0x0C5B */ - 0x86EC,0x86E9,0x86D7,0x86E8,0x86D1,0x8848,0x8856,0x8855, - 0x88BA,0x88D7,0x88B9,0x88B8,0x88C0,0x88BE,0x88B6,0x88BC, - 0x88B7,0x88BD,0x88B2,0x8901,0x88C9,0x8995,0x8998,0x8997, - 0x89DD,0x89DA,0x89DB,0x8A4E,0x8A4D,0x8A39,0x8A59,0x8A40, - 0x8A57,0x8A58,0x8A44,0x8A45,0x8A52,0x8A48,0x8A51,0x8A4A, - 0x8A4C,0x8A4F,0x8C5F,0x8C81,0x8C80,0x8CBA,0x8CBE,0x8CB0, - 0x8CB9,0x8CB5,0x8D84,0x8D80,0x8D89,0x8DD8,0x8DD3,0x8DCD, - 0x8DC7,0x8DD6,0x8DDC,0x8DCF,0x8DD5,0x8DD9,0x8DC8,0x8DD7, - 0x8DC5,0x8EEF,0x8EF7,0x8EFA,0x8EF9,0x8EE6,0x8EEE,0x8EE5, - 0x8EF5,0x8EE7,0x8EE8,0x8EF6,0x8EEB,0x8EF1,0x8EEC,0x8EF4, - 0x8EE9,0x902D,0x9034,0x902F,0x9106,0x912C,0x9104,0x90FF, - 0x90FC,0x9108,0x90F9,0x90FB,0x9101,0x9100, - /* Range 0x4121 - 0x417E, array index: 0x0CB9 */ - 0x9107,0x9105,0x9103,0x9161,0x9164,0x915F,0x9162,0x9160, - 0x9201,0x920A,0x9225,0x9203,0x921A,0x9226,0x920F,0x920C, - 0x9200,0x9212,0x91FF,0x91FD,0x9206,0x9204,0x9227,0x9202, - 0x921C,0x9224,0x9219,0x9217,0x9205,0x9216,0x957B,0x958D, - 0x958C,0x9590,0x9687,0x967E,0x9688,0x9689,0x9683,0x9680, - 0x96C2,0x96C8,0x96C3,0x96F1,0x96F0,0x976C,0x9770,0x976E, - 0x9807,0x98A9,0x98EB,0x9CE6,0x9EF9,0x4E83,0x4E84,0x4EB6, - 0x50BD,0x50BF,0x50C6,0x50AE,0x50C4,0x50CA,0x50B4,0x50C8, - 0x50C2,0x50B0,0x50C1,0x50BA,0x50B1,0x50CB,0x50C9,0x50B6, - 0x50B8,0x51D7,0x527A,0x5278,0x527B,0x527C,0x55C3,0x55DB, - 0x55CC,0x55D0,0x55CB,0x55CA,0x55DD,0x55C0,0x55D4,0x55C4, - 0x55E9,0x55BF,0x55D2,0x558D,0x55CF,0x55D5, - /* Range 0x4221 - 0x427E, array index: 0x0D17 */ - 0x55E2,0x55D6,0x55C8,0x55F2,0x55CD,0x55D9,0x55C2,0x5714, - 0x5853,0x5868,0x5864,0x584F,0x584D,0x5849,0x586F,0x5855, - 0x584E,0x585D,0x5859,0x5865,0x585B,0x583D,0x5863,0x5871, - 0x58FC,0x5AC7,0x5AC4,0x5ACB,0x5ABA,0x5AB8,0x5AB1,0x5AB5, - 0x5AB0,0x5ABF,0x5AC8,0x5ABB,0x5AC6,0x5AB7,0x5AC0,0x5ACA, - 0x5AB4,0x5AB6,0x5ACD,0x5AB9,0x5A90,0x5BD6,0x5BD8,0x5BD9, - 0x5C1F,0x5C33,0x5D71,0x5D63,0x5D4A,0x5D65,0x5D72,0x5D6C, - 0x5D5E,0x5D68,0x5D67,0x5D62,0x5DF0,0x5E4F,0x5E4E,0x5E4A, - 0x5E4D,0x5E4B,0x5EC5,0x5ECC,0x5EC6,0x5ECB,0x5EC7,0x5F40, - 0x5FAF,0x5FAD,0x60F7,0x6149,0x614A,0x612B,0x6145,0x6136, - 0x6132,0x612E,0x6146,0x612F,0x614F,0x6129,0x6140,0x6220, - 0x9168,0x6223,0x6225,0x6224,0x63C5,0x63F1, - /* Range 0x4321 - 0x437E, array index: 0x0D75 */ - 0x63EB,0x6410,0x6412,0x6409,0x6420,0x6424,0x6433,0x6443, - 0x641F,0x6415,0x6418,0x6439,0x6437,0x6422,0x6423,0x640C, - 0x6426,0x6430,0x6428,0x6441,0x6435,0x642F,0x640A,0x641A, - 0x6440,0x6425,0x6427,0x640B,0x63E7,0x641B,0x642E,0x6421, - 0x640E,0x656F,0x6592,0x65D3,0x6686,0x668C,0x6695,0x6690, - 0x668B,0x668A,0x6699,0x6694,0x6678,0x6720,0x6966,0x695F, - 0x6938,0x694E,0x6962,0x6971,0x693F,0x6945,0x696A,0x6939, - 0x6942,0x6957,0x6959,0x697A,0x6948,0x6949,0x6935,0x696C, - 0x6933,0x693D,0x6965,0x68F0,0x6978,0x6934,0x6969,0x6940, - 0x696F,0x6944,0x6976,0x6958,0x6941,0x6974,0x694C,0x693B, - 0x694B,0x6937,0x695C,0x694F,0x6951,0x6932,0x6952,0x692F, - 0x697B,0x693C,0x6B46,0x6B45,0x6B43,0x6B42, - /* Range 0x4421 - 0x447E, array index: 0x0DD3 */ - 0x6B48,0x6B41,0x6B9B,0x6BFB,0x6BFC,0x6BF9,0x6BF7,0x6BF8, - 0x6E9B,0x6ED6,0x6EC8,0x6E8F,0x6EC0,0x6E9F,0x6E93,0x6E94, - 0x6EA0,0x6EB1,0x6EB9,0x6EC6,0x6ED2,0x6EBD,0x6EC1,0x6E9E, - 0x6EC9,0x6EB7,0x6EB0,0x6ECD,0x6EA6,0x6ECF,0x6EB2,0x6EBE, - 0x6EC3,0x6EDC,0x6ED8,0x6E99,0x6E92,0x6E8E,0x6E8D,0x6EA4, - 0x6EA1,0x6EBF,0x6EB3,0x6ED0,0x6ECA,0x6E97,0x6EAE,0x6EA3, - 0x7147,0x7154,0x7152,0x7163,0x7160,0x7141,0x715D,0x7162, - 0x7172,0x7178,0x716A,0x7161,0x7142,0x7158,0x7143,0x714B, - 0x7170,0x715F,0x7150,0x7153,0x7144,0x714D,0x715A,0x724F, - 0x728D,0x728C,0x7291,0x7290,0x728E,0x733C,0x7342,0x733B, - 0x733A,0x7340,0x734A,0x7349,0x7444,0x744A,0x744B,0x7452, - 0x7451,0x7457,0x7440,0x744F,0x7450,0x744E, - /* Range 0x4521 - 0x457E, array index: 0x0E31 */ - 0x7442,0x7446,0x744D,0x7454,0x74E1,0x74FF,0x74FE,0x74FD, - 0x751D,0x7579,0x7577,0x6983,0x75EF,0x760F,0x7603,0x75F7, - 0x75FE,0x75FC,0x75F9,0x75F8,0x7610,0x75FB,0x75F6,0x75ED, - 0x75F5,0x75FD,0x7699,0x76B5,0x76DD,0x7755,0x775F,0x7760, - 0x7752,0x7756,0x775A,0x7769,0x7767,0x7754,0x7759,0x776D, - 0x77E0,0x7887,0x789A,0x7894,0x788F,0x7884,0x7895,0x7885, - 0x7886,0x78A1,0x7883,0x7879,0x7899,0x7880,0x7896,0x787B, - 0x797C,0x7982,0x797D,0x7979,0x7A11,0x7A18,0x7A19,0x7A12, - 0x7A17,0x7A15,0x7A22,0x7A13,0x7A1B,0x7A10,0x7AA3,0x7AA2, - 0x7A9E,0x7AEB,0x7B66,0x7B64,0x7B6D,0x7B74,0x7B69,0x7B72, - 0x7B65,0x7B73,0x7B71,0x7B70,0x7B61,0x7B78,0x7B76,0x7B63, - 0x7CB2,0x7CB4,0x7CAF,0x7D88,0x7D86,0x7D80, - /* Range 0x4621 - 0x467E, array index: 0x0E8F */ - 0x7D8D,0x7D7F,0x7D85,0x7D7A,0x7D8E,0x7D7B,0x7D83,0x7D7C, - 0x7D8C,0x7D94,0x7D84,0x7D7D,0x7D92,0x7F6D,0x7F6B,0x7F67, - 0x7F68,0x7F6C,0x7FA6,0x7FA5,0x7FA7,0x7FDB,0x7FDC,0x8021, - 0x8164,0x8160,0x8177,0x815C,0x8169,0x815B,0x8162,0x8172, - 0x6721,0x815E,0x8176,0x8167,0x816F,0x8144,0x8161,0x821D, - 0x8249,0x8244,0x8240,0x8242,0x8245,0x84F1,0x843F,0x8456, - 0x8476,0x8479,0x848F,0x848D,0x8465,0x8451,0x8440,0x8486, - 0x8467,0x8430,0x844D,0x847D,0x845A,0x8459,0x8474,0x8473, - 0x845D,0x8507,0x845E,0x8437,0x843A,0x8434,0x847A,0x8443, - 0x8478,0x8432,0x8445,0x8429,0x83D9,0x844B,0x842F,0x8442, - 0x842D,0x845F,0x8470,0x8439,0x844E,0x844C,0x8452,0x846F, - 0x84C5,0x848E,0x843B,0x8447,0x8436,0x8433, - /* Range 0x4721 - 0x477E, array index: 0x0EED */ - 0x8468,0x847E,0x8444,0x842B,0x8460,0x8454,0x846E,0x8450, - 0x870B,0x8704,0x86F7,0x870C,0x86FA,0x86D6,0x86F5,0x874D, - 0x86F8,0x870E,0x8709,0x8701,0x86F6,0x870D,0x8705,0x88D6, - 0x88CB,0x88CD,0x88CE,0x88DE,0x88DB,0x88DA,0x88CC,0x88D0, - 0x8985,0x899B,0x89DF,0x89E5,0x89E4,0x89E1,0x89E0,0x89E2, - 0x89DC,0x89E6,0x8A76,0x8A86,0x8A7F,0x8A61,0x8A3F,0x8A77, - 0x8A82,0x8A84,0x8A75,0x8A83,0x8A81,0x8A74,0x8A7A,0x8C3C, - 0x8C4B,0x8C4A,0x8C65,0x8C64,0x8C66,0x8C86,0x8C84,0x8C85, - 0x8CCC,0x8D68,0x8D69,0x8D91,0x8D8C,0x8D8E,0x8D8F,0x8D8D, - 0x8D93,0x8D94,0x8D90,0x8D92,0x8DF0,0x8DE0,0x8DEC,0x8DF1, - 0x8DEE,0x8DD0,0x8DE9,0x8DE3,0x8DE2,0x8DE7,0x8DF2,0x8DEB, - 0x8DF4,0x8F06,0x8EFF,0x8F01,0x8F00,0x8F05, - /* Range 0x4821 - 0x487E, array index: 0x0F4B */ - 0x8F07,0x8F08,0x8F02,0x8F0B,0x9052,0x903F,0x9044,0x9049, - 0x903D,0x9110,0x910D,0x910F,0x9111,0x9116,0x9114,0x910B, - 0x910E,0x916E,0x916F,0x9248,0x9252,0x9230,0x923A,0x9266, - 0x9233,0x9265,0x925E,0x9283,0x922E,0x924A,0x9246,0x926D, - 0x926C,0x924F,0x9260,0x9267,0x926F,0x9236,0x9261,0x9270, - 0x9231,0x9254,0x9263,0x9250,0x9272,0x924E,0x9253,0x924C, - 0x9256,0x9232,0x959F,0x959C,0x959E,0x959B,0x9692,0x9693, - 0x9691,0x9697,0x96CE,0x96FA,0x96FD,0x96F8,0x96F5,0x9773, - 0x9777,0x9778,0x9772,0x980F,0x980D,0x980E,0x98AC,0x98F6, - 0x98F9,0x99AF,0x99B2,0x99B0,0x99B5,0x9AAD,0x9AAB,0x9B5B, - 0x9CEA,0x9CED,0x9CE7,0x9E80,0x9EFD,0x50E6,0x50D4,0x50D7, - 0x50E8,0x50F3,0x50DB,0x50EA,0x50DD,0x50E4, - /* Range 0x4921 - 0x497E, array index: 0x0FA9 */ - 0x50D3,0x50EC,0x50F0,0x50EF,0x50E3,0x50E0,0x51D8,0x5280, - 0x5281,0x52E9,0x52EB,0x5330,0x53AC,0x5627,0x5615,0x560C, - 0x5612,0x55FC,0x560F,0x561C,0x5601,0x5613,0x5602,0x55FA, - 0x561D,0x5604,0x55FF,0x55F9,0x5889,0x587C,0x5890,0x5898, - 0x5886,0x5881,0x587F,0x5874,0x588B,0x587A,0x5887,0x5891, - 0x588E,0x5876,0x5882,0x5888,0x587B,0x5894,0x588F,0x58FE, - 0x596B,0x5ADC,0x5AEE,0x5AE5,0x5AD5,0x5AEA,0x5ADA,0x5AED, - 0x5AEB,0x5AF3,0x5AE2,0x5AE0,0x5ADB,0x5AEC,0x5ADE,0x5ADD, - 0x5AD9,0x5AE8,0x5ADF,0x5B77,0x5BE0,0x5BE3,0x5C63,0x5D82, - 0x5D80,0x5D7D,0x5D86,0x5D7A,0x5D81,0x5D77,0x5D8A,0x5D89, - 0x5D88,0x5D7E,0x5D7C,0x5D8D,0x5D79,0x5D7F,0x5E58,0x5E59, - 0x5E53,0x5ED8,0x5ED1,0x5ED7,0x5ECE,0x5EDC, - /* Range 0x4A21 - 0x4A7E, array index: 0x1007 */ - 0x5ED5,0x5ED9,0x5ED2,0x5ED4,0x5F44,0x5F43,0x5F6F,0x5FB6, - 0x612C,0x6128,0x6141,0x615E,0x6171,0x6173,0x6152,0x6153, - 0x6172,0x616C,0x6180,0x6174,0x6154,0x617A,0x615B,0x6165, - 0x613B,0x616A,0x6161,0x6156,0x6229,0x6227,0x622B,0x642B, - 0x644D,0x645B,0x645D,0x6474,0x6476,0x6472,0x6473,0x647D, - 0x6475,0x6466,0x64A6,0x644E,0x6482,0x645E,0x645C,0x644B, - 0x6453,0x6460,0x6450,0x647F,0x643F,0x646C,0x646B,0x6459, - 0x6465,0x6477,0x6573,0x65A0,0x66A1,0x66A0,0x669F,0x6705, - 0x6704,0x6722,0x69B1,0x69B6,0x69C9,0x69A0,0x69CE,0x6996, - 0x69B0,0x69AC,0x69BC,0x6991,0x6999,0x698E,0x69A7,0x698D, - 0x69A9,0x69BE,0x69AF,0x69BF,0x69C4,0x69BD,0x69A4,0x69D4, - 0x69B9,0x69CA,0x699A,0x69CF,0x69B3,0x6993, - /* Range 0x4B21 - 0x4B7E, array index: 0x1065 */ - 0x69AA,0x69A1,0x699E,0x69D9,0x6997,0x6990,0x69C2,0x69B5, - 0x69A5,0x69C6,0x6B4A,0x6B4D,0x6B4B,0x6B9E,0x6B9F,0x6BA0, - 0x6BC3,0x6BC4,0x6BFE,0x6ECE,0x6EF5,0x6EF1,0x6F03,0x6F25, - 0x6EF8,0x6F37,0x6EFB,0x6F2E,0x6F09,0x6F4E,0x6F19,0x6F1A, - 0x6F27,0x6F18,0x6F3B,0x6F12,0x6EED,0x6F0A,0x6F36,0x6F73, - 0x6EF9,0x6EEE,0x6F2D,0x6F40,0x6F30,0x6F3C,0x6F35,0x6EEB, - 0x6F07,0x6F0E,0x6F43,0x6F05,0x6EFD,0x6EF6,0x6F39,0x6F1C, - 0x6EFC,0x6F3A,0x6F1F,0x6F0D,0x6F1E,0x6F08,0x6F21,0x7187, - 0x7190,0x7189,0x7180,0x7185,0x7182,0x718F,0x717B,0x7186, - 0x7181,0x7197,0x7244,0x7253,0x7297,0x7295,0x7293,0x7343, - 0x734D,0x7351,0x734C,0x7462,0x7473,0x7471,0x7475,0x7472, - 0x7467,0x746E,0x7500,0x7502,0x7503,0x757D, - /* Range 0x4C21 - 0x4C7E, array index: 0x10C3 */ - 0x7590,0x7616,0x7608,0x760C,0x7615,0x7611,0x760A,0x7614, - 0x76B8,0x7781,0x777C,0x7785,0x7782,0x776E,0x7780,0x776F, - 0x777E,0x7783,0x78B2,0x78AA,0x78B4,0x78AD,0x78A8,0x787E, - 0x78AB,0x789E,0x78A5,0x78A0,0x78AC,0x78A2,0x78A4,0x7998, - 0x798A,0x798B,0x7996,0x7995,0x7994,0x7993,0x7997,0x7988, - 0x7992,0x7990,0x7A2B,0x7A4A,0x7A30,0x7A2F,0x7A28,0x7A26, - 0x7AA8,0x7AAB,0x7AAC,0x7AEE,0x7B88,0x7B9C,0x7B8A,0x7B91, - 0x7B90,0x7B96,0x7B8D,0x7B8C,0x7B9B,0x7B8E,0x7B85,0x7B98, - 0x5284,0x7B99,0x7BA4,0x7B82,0x7CBB,0x7CBF,0x7CBC,0x7CBA, - 0x7DA7,0x7DB7,0x7DC2,0x7DA3,0x7DAA,0x7DC1,0x7DC0,0x7DC5, - 0x7D9D,0x7DCE,0x7DC4,0x7DC6,0x7DCB,0x7DCC,0x7DAF,0x7DB9, - 0x7D96,0x7DBC,0x7D9F,0x7DA6,0x7DAE,0x7DA9, - /* Range 0x4D21 - 0x4D7E, array index: 0x1121 */ - 0x7DA1,0x7DC9,0x7F73,0x7FE2,0x7FE3,0x7FE5,0x7FDE,0x8024, - 0x805D,0x805C,0x8189,0x8186,0x8183,0x8187,0x818D,0x818C, - 0x818B,0x8215,0x8497,0x84A4,0x84A1,0x849F,0x84BA,0x84CE, - 0x84C2,0x84AC,0x84AE,0x84AB,0x84B9,0x84B4,0x84C1,0x84CD, - 0x84AA,0x849A,0x84B1,0x84D0,0x849D,0x84A7,0x84BB,0x84A2, - 0x8494,0x84C7,0x84CC,0x849B,0x84A9,0x84AF,0x84A8,0x84D6, - 0x8498,0x84B6,0x84CF,0x84A0,0x84D7,0x84D4,0x84D2,0x84DB, - 0x84B0,0x8491,0x8661,0x8733,0x8723,0x8728,0x876B,0x8740, - 0x872E,0x871E,0x8721,0x8719,0x871B,0x8743,0x872C,0x8741, - 0x873E,0x8746,0x8720,0x8732,0x872A,0x872D,0x873C,0x8712, - 0x873A,0x8731,0x8735,0x8742,0x8726,0x8727,0x8738,0x8724, - 0x871A,0x8730,0x8711,0x88F7,0x88E7,0x88F1, - /* Range 0x4E21 - 0x4E7E, array index: 0x117F */ - 0x88F2,0x88FA,0x88FE,0x88EE,0x88FC,0x88F6,0x88FB,0x88F0, - 0x88EC,0x88EB,0x899D,0x89A1,0x899F,0x899E,0x89E9,0x89EB, - 0x89E8,0x8AAB,0x8A99,0x8A8B,0x8A92,0x8A8F,0x8A96,0x8C3D, - 0x8C68,0x8C69,0x8CD5,0x8CCF,0x8CD7,0x8D96,0x8E09,0x8E02, - 0x8DFF,0x8E0D,0x8DFD,0x8E0A,0x8E03,0x8E07,0x8E06,0x8E05, - 0x8DFE,0x8E00,0x8E04,0x8F10,0x8F11,0x8F0E,0x8F0D,0x9123, - 0x911C,0x9120,0x9122,0x911F,0x911D,0x911A,0x9124,0x9121, - 0x911B,0x917A,0x9172,0x9179,0x9173,0x92A5,0x92A4,0x9276, - 0x929B,0x927A,0x92A0,0x9294,0x92AA,0x928D,0x92A6,0x929A, - 0x92AB,0x9279,0x9297,0x927F,0x92A3,0x92EE,0x928E,0x9282, - 0x9295,0x92A2,0x927D,0x9288,0x92A1,0x928A,0x9286,0x928C, - 0x9299,0x92A7,0x927E,0x9287,0x92A9,0x929D, - /* Range 0x4F21 - 0x4F7E, array index: 0x11DD */ - 0x928B,0x922D,0x969E,0x96A1,0x96FF,0x9758,0x977D,0x977A, - 0x977E,0x9783,0x9780,0x9782,0x977B,0x9784,0x9781,0x977F, - 0x97CE,0x97CD,0x9816,0x98AD,0x98AE,0x9902,0x9900,0x9907, - 0x999D,0x999C,0x99C3,0x99B9,0x99BB,0x99BA,0x99C2,0x99BD, - 0x99C7,0x9AB1,0x9AE3,0x9AE7,0x9B3E,0x9B3F,0x9B60,0x9B61, - 0x9B5F,0x9CF1,0x9CF2,0x9CF5,0x9EA7,0x50FF,0x5103,0x5130, - 0x50F8,0x5106,0x5107,0x50F6,0x50FE,0x510B,0x510C,0x50FD, - 0x510A,0x528B,0x528C,0x52F1,0x52EF,0x5648,0x5642,0x564C, - 0x5635,0x5641,0x564A,0x5649,0x5646,0x5658,0x565A,0x5640, - 0x5633,0x563D,0x562C,0x563E,0x5638,0x562A,0x563A,0x571A, - 0x58AB,0x589D,0x58B1,0x58A0,0x58A3,0x58AF,0x58AC,0x58A5, - 0x58A1,0x58FF,0x5AFF,0x5AF4,0x5AFD,0x5AF7, - /* Range 0x5021 - 0x507E, array index: 0x123B */ - 0x5AF6,0x5B03,0x5AF8,0x5B02,0x5AF9,0x5B01,0x5B07,0x5B05, - 0x5B0F,0x5C67,0x5D99,0x5D97,0x5D9F,0x5D92,0x5DA2,0x5D93, - 0x5D95,0x5DA0,0x5D9C,0x5DA1,0x5D9A,0x5D9E,0x5E69,0x5E5D, - 0x5E60,0x5E5C,0x7DF3,0x5EDB,0x5EDE,0x5EE1,0x5F49,0x5FB2, - 0x618B,0x6183,0x6179,0x61B1,0x61B0,0x61A2,0x6189,0x619B, - 0x6193,0x61AF,0x61AD,0x619F,0x6192,0x61AA,0x61A1,0x618D, - 0x6166,0x61B3,0x622D,0x646E,0x6470,0x6496,0x64A0,0x6485, - 0x6497,0x649C,0x648F,0x648B,0x648A,0x648C,0x64A3,0x649F, - 0x6468,0x64B1,0x6498,0x6576,0x657A,0x6579,0x657B,0x65B2, - 0x65B3,0x66B5,0x66B0,0x66A9,0x66B2,0x66B7,0x66AA,0x66AF, - 0x6A00,0x6A06,0x6A17,0x69E5,0x69F8,0x6A15,0x69F1,0x69E4, - 0x6A20,0x69FF,0x69EC,0x69E2,0x6A1B,0x6A1D, - /* Range 0x5121 - 0x517E, array index: 0x1299 */ - 0x69FE,0x6A27,0x69F2,0x69EE,0x6A14,0x69F7,0x69E7,0x6A40, - 0x6A08,0x69E6,0x69FB,0x6A0D,0x69FC,0x69EB,0x6A09,0x6A04, - 0x6A18,0x6A25,0x6A0F,0x69F6,0x6A26,0x6A07,0x69F4,0x6A16, - 0x6B51,0x6BA5,0x6BA3,0x6BA2,0x6BA6,0x6C01,0x6C00,0x6BFF, - 0x6C02,0x6F41,0x6F26,0x6F7E,0x6F87,0x6FC6,0x6F92,0x6F8D, - 0x6F89,0x6F8C,0x6F62,0x6F4F,0x6F85,0x6F5A,0x6F96,0x6F76, - 0x6F6C,0x6F82,0x6F55,0x6F72,0x6F52,0x6F50,0x6F57,0x6F94, - 0x6F93,0x6F5D,0x6F00,0x6F61,0x6F6B,0x6F7D,0x6F67,0x6F90, - 0x6F53,0x6F8B,0x6F69,0x6F7F,0x6F95,0x6F63,0x6F77,0x6F6A, - 0x6F7B,0x71B2,0x71AF,0x719B,0x71B0,0x71A0,0x719A,0x71A9, - 0x71B5,0x719D,0x71A5,0x719E,0x71A4,0x71A1,0x71AA,0x719C, - 0x71A7,0x71B3,0x7298,0x729A,0x7358,0x7352, - /* Range 0x5221 - 0x527E, array index: 0x12F7 */ - 0x735E,0x735F,0x7360,0x735D,0x735B,0x7361,0x735A,0x7359, - 0x7362,0x7487,0x7489,0x748A,0x7486,0x7481,0x747D,0x7485, - 0x7488,0x747C,0x7479,0x7508,0x7507,0x757E,0x7625,0x761E, - 0x7619,0x761D,0x761C,0x7623,0x761A,0x7628,0x761B,0x769C, - 0x769D,0x769E,0x769B,0x778D,0x778F,0x7789,0x7788,0x78CD, - 0x78BB,0x78CF,0x78CC,0x78D1,0x78CE,0x78D4,0x78C8,0x78C3, - 0x78C4,0x78C9,0x799A,0x79A1,0x79A0,0x799C,0x79A2,0x799B, - 0x6B76,0x7A39,0x7AB2,0x7AB4,0x7AB3,0x7BB7,0x7BCB,0x7BBE, - 0x7BAC,0x7BCE,0x7BAF,0x7BB9,0x7BCA,0x7BB5,0x7CC5,0x7CC8, - 0x7CCC,0x7CCB,0x7DF7,0x7DDB,0x7DEA,0x7DE7,0x7DD7,0x7DE1, - 0x7E03,0x7DFA,0x7DE6,0x7DF6,0x7DF1,0x7DF0,0x7DEE,0x7DDF, - 0x7F76,0x7FAC,0x7FB0,0x7FAD,0x7FED,0x7FEB, - /* Range 0x5321 - 0x537E, array index: 0x1355 */ - 0x7FEA,0x7FEC,0x7FE6,0x7FE8,0x8064,0x8067,0x81A3,0x819F, - 0x819E,0x8195,0x81A2,0x8199,0x8197,0x8216,0x824F,0x8253, - 0x8252,0x8250,0x824E,0x8251,0x8524,0x853B,0x850F,0x8500, - 0x8529,0x850E,0x8509,0x850D,0x851F,0x850A,0x8527,0x851C, - 0x84FB,0x852B,0x84FA,0x8508,0x850C,0x84F4,0x852A,0x84F2, - 0x8515,0x84F7,0x84EB,0x84F3,0x84FC,0x8512,0x84EA,0x84E9, - 0x8516,0x84FE,0x8528,0x851D,0x852E,0x8502,0x84FD,0x851E, - 0x84F6,0x8531,0x8526,0x84E7,0x84E8,0x84F0,0x84EF,0x84F9, - 0x8518,0x8520,0x8530,0x850B,0x8519,0x852F,0x8662,0x8756, - 0x8763,0x8764,0x8777,0x87E1,0x8773,0x8758,0x8754,0x875B, - 0x8752,0x8761,0x875A,0x8751,0x875E,0x876D,0x876A,0x8750, - 0x874E,0x875F,0x875D,0x876F,0x876C,0x877A, - /* Range 0x5421 - 0x547E, array index: 0x13B3 */ - 0x876E,0x875C,0x8765,0x874F,0x877B,0x8775,0x8762,0x8767, - 0x8769,0x885A,0x8905,0x890C,0x8914,0x890B,0x8917,0x8918, - 0x8919,0x8906,0x8916,0x8911,0x890E,0x8909,0x89A2,0x89A4, - 0x89A3,0x89ED,0x89F0,0x89EC,0x8ACF,0x8AC6,0x8AB8,0x8AD3, - 0x8AD1,0x8AD4,0x8AD5,0x8ABB,0x8AD7,0x8ABE,0x8AC0,0x8AC5, - 0x8AD8,0x8AC3,0x8ABA,0x8ABD,0x8AD9,0x8C3E,0x8C4D,0x8C8F, - 0x8CE5,0x8CDF,0x8CD9,0x8CE8,0x8CDA,0x8CDD,0x8CE7,0x8DA0, - 0x8D9C,0x8DA1,0x8D9B,0x8E20,0x8E23,0x8E25,0x8E24,0x8E2E, - 0x8E15,0x8E1B,0x8E16,0x8E11,0x8E19,0x8E26,0x8E27,0x8E14, - 0x8E12,0x8E18,0x8E13,0x8E1C,0x8E17,0x8E1A,0x8F2C,0x8F24, - 0x8F18,0x8F1A,0x8F20,0x8F23,0x8F16,0x8F17,0x9073,0x9070, - 0x906F,0x9067,0x906B,0x912F,0x912B,0x9129, - /* Range 0x5521 - 0x557E, array index: 0x1411 */ - 0x912A,0x9132,0x9126,0x912E,0x9185,0x9186,0x918A,0x9181, - 0x9182,0x9184,0x9180,0x92D0,0x92C3,0x92C4,0x92C0,0x92D9, - 0x92B6,0x92CF,0x92F1,0x92DF,0x92D8,0x92E9,0x92D7,0x92DD, - 0x92CC,0x92EF,0x92C2,0x92E8,0x92CA,0x92C8,0x92CE,0x92E6, - 0x92CD,0x92D5,0x92C9,0x92E0,0x92DE,0x92E7,0x92D1,0x92D3, - 0x92B5,0x92E1,0x9325,0x92C6,0x92B4,0x957C,0x95AC,0x95AB, - 0x95AE,0x95B0,0x96A4,0x96A2,0x96D3,0x9705,0x9708,0x9702, - 0x975A,0x978A,0x978E,0x9788,0x97D0,0x97CF,0x981E,0x981D, - 0x9826,0x9829,0x9828,0x9820,0x981B,0x9827,0x98B2,0x9908, - 0x98FA,0x9911,0x9914,0x9916,0x9917,0x9915,0x99DC,0x99CD, - 0x99CF,0x99D3,0x99D4,0x99CE,0x99C9,0x99D6,0x99D8,0x99CB, - 0x99D7,0x99CC,0x9AB3,0x9AEC,0x9AEB,0x9AF3, - /* Range 0x5621 - 0x567E, array index: 0x146F */ - 0x9AF2,0x9AF1,0x9B46,0x9B43,0x9B67,0x9B74,0x9B71,0x9B66, - 0x9B76,0x9B75,0x9B70,0x9B68,0x9B64,0x9B6C,0x9CFC,0x9CFA, - 0x9CFD,0x9CFF,0x9CF7,0x9D07,0x9D00,0x9CF9,0x9CFB,0x9D08, - 0x9D05,0x9D04,0x9E83,0x9ED3,0x9F0F,0x9F10,0x511C,0x5113, - 0x5117,0x511A,0x5111,0x51DE,0x5334,0x53E1,0x5670,0x5660, - 0x566E,0x5673,0x5666,0x5663,0x566D,0x5672,0x565E,0x5677, - 0x571C,0x571B,0x58C8,0x58BD,0x58C9,0x58BF,0x58BA,0x58C2, - 0x58BC,0x58C6,0x5B17,0x5B19,0x5B1B,0x5B21,0x5B14,0x5B13, - 0x5B10,0x5B16,0x5B28,0x5B1A,0x5B20,0x5B1E,0x5BEF,0x5DAC, - 0x5DB1,0x5DA9,0x5DA7,0x5DB5,0x5DB0,0x5DAE,0x5DAA,0x5DA8, - 0x5DB2,0x5DAD,0x5DAF,0x5DB4,0x5E67,0x5E68,0x5E66,0x5E6F, - 0x5EE9,0x5EE7,0x5EE6,0x5EE8,0x5EE5,0x5F4B, - /* Range 0x5721 - 0x577E, array index: 0x14CD */ - 0x5FBC,0x5FBB,0x619D,0x61A8,0x6196,0x61C5,0x61B4,0x61C6, - 0x61C1,0x61CC,0x61BA,0x61BF,0x61B8,0x618C,0x64D7,0x64D6, - 0x64D0,0x64CF,0x64C9,0x64BD,0x6489,0x64C3,0x64DB,0x64F3, - 0x64D9,0x6533,0x657F,0x657C,0x65A2,0x66C8,0x66BE,0x66C0, - 0x66CA,0x66CB,0x66CF,0x66BD,0x66BB,0x66BA,0x66CC,0x6723, - 0x6A34,0x6A66,0x6A49,0x6A67,0x6A32,0x6A68,0x6A3E,0x6A5D, - 0x6A6D,0x6A76,0x6A5B,0x6A51,0x6A28,0x6A5A,0x6A3B,0x6A3F, - 0x6A41,0x6A6A,0x6A64,0x6A50,0x6A4F,0x6A54,0x6A6F,0x6A69, - 0x6A60,0x6A3C,0x6A5E,0x6A56,0x6A55,0x6A4D,0x6A4E,0x6A46, - 0x6B55,0x6B54,0x6B56,0x6BA7,0x6BAA,0x6BAB,0x6BC8,0x6BC7, - 0x6C04,0x6C03,0x6C06,0x6FAD,0x6FCB,0x6FA3,0x6FC7,0x6FBC, - 0x6FCE,0x6FC8,0x6F5E,0x6FC4,0x6FBD,0x6F9E, - /* Range 0x5821 - 0x587E, array index: 0x152B */ - 0x6FCA,0x6FA8,0x7004,0x6FA5,0x6FAE,0x6FBA,0x6FAC,0x6FAA, - 0x6FCF,0x6FBF,0x6FB8,0x6FA2,0x6FC9,0x6FAB,0x6FCD,0x6FAF, - 0x6FB2,0x6FB0,0x71C5,0x71C2,0x71BF,0x71B8,0x71D6,0x71C0, - 0x71C1,0x71CB,0x71D4,0x71CA,0x71C7,0x71CF,0x71BD,0x71D8, - 0x71BC,0x71C6,0x71DA,0x71DB,0x729D,0x729E,0x7369,0x7366, - 0x7367,0x736C,0x7365,0x736B,0x736A,0x747F,0x749A,0x74A0, - 0x7494,0x7492,0x7495,0x74A1,0x750B,0x7580,0x762F,0x762D, - 0x7631,0x763D,0x7633,0x763C,0x7635,0x7632,0x7630,0x76BB, - 0x76E6,0x779A,0x779D,0x77A1,0x779C,0x779B,0x77A2,0x77A3, - 0x7795,0x7799,0x7797,0x78DD,0x78E9,0x78E5,0x78EA,0x78DE, - 0x78E3,0x78DB,0x78E1,0x78E2,0x78ED,0x78DF,0x78E0,0x79A4, - 0x7A44,0x7A48,0x7A47,0x7AB6,0x7AB8,0x7AB5, - /* Range 0x5921 - 0x597E, array index: 0x1589 */ - 0x7AB1,0x7AB7,0x7BDE,0x7BE3,0x7BE7,0x7BDD,0x7BD5,0x7BE5, - 0x7BDA,0x7BE8,0x7BF9,0x7BD4,0x7BEA,0x7BE2,0x7BDC,0x7BEB, - 0x7BD8,0x7BDF,0x7CD2,0x7CD4,0x7CD7,0x7CD0,0x7CD1,0x7E12, - 0x7E21,0x7E17,0x7E0C,0x7E1F,0x7E20,0x7E13,0x7E0E,0x7E1C, - 0x7E15,0x7E1A,0x7E22,0x7E0B,0x7E0F,0x7E16,0x7E0D,0x7E14, - 0x7E25,0x7E24,0x7F43,0x7F7B,0x7F7C,0x7F7A,0x7FB1,0x7FEF, - 0x802A,0x8029,0x806C,0x81B1,0x81A6,0x81AE,0x81B9,0x81B5, - 0x81AB,0x81B0,0x81AC,0x81B4,0x81B2,0x81B7,0x81A7,0x81F2, - 0x8255,0x8256,0x8257,0x8556,0x8545,0x856B,0x854D,0x8553, - 0x8561,0x8558,0x8540,0x8546,0x8564,0x8541,0x8562,0x8544, - 0x8551,0x8547,0x8563,0x853E,0x855B,0x8571,0x854E,0x856E, - 0x8575,0x8555,0x8567,0x8560,0x858C,0x8566, - /* Range 0x5A21 - 0x5A7E, array index: 0x15E7 */ - 0x855D,0x8554,0x8565,0x856C,0x8663,0x8665,0x8664,0x87A4, - 0x879B,0x878F,0x8797,0x8793,0x8792,0x8788,0x8781,0x8796, - 0x8798,0x8779,0x8787,0x87A3,0x8785,0x8790,0x8791,0x879D, - 0x8784,0x8794,0x879C,0x879A,0x8789,0x891E,0x8926,0x8930, - 0x892D,0x892E,0x8927,0x8931,0x8922,0x8929,0x8923,0x892F, - 0x892C,0x891F,0x89F1,0x8AE0,0x8AE2,0x8AF2,0x8AF4,0x8AF5, - 0x8ADD,0x8B14,0x8AE4,0x8ADF,0x8AF0,0x8AC8,0x8ADE,0x8AE1, - 0x8AE8,0x8AFF,0x8AEF,0x8AFB,0x8C91,0x8C92,0x8C90,0x8CF5, - 0x8CEE,0x8CF1,0x8CF0,0x8CF3,0x8D6C,0x8D6E,0x8DA5,0x8DA7, - 0x8E33,0x8E3E,0x8E38,0x8E40,0x8E45,0x8E36,0x8E3C,0x8E3D, - 0x8E41,0x8E30,0x8E3F,0x8EBD,0x8F36,0x8F2E,0x8F35,0x8F32, - 0x8F39,0x8F37,0x8F34,0x9076,0x9079,0x907B, - /* Range 0x5B21 - 0x5B7E, array index: 0x1645 */ - 0x9086,0x90FA,0x9133,0x9135,0x9136,0x9193,0x9190,0x9191, - 0x918D,0x918F,0x9327,0x931E,0x9308,0x931F,0x9306,0x930F, - 0x937A,0x9338,0x933C,0x931B,0x9323,0x9312,0x9301,0x9346, - 0x932D,0x930E,0x930D,0x92CB,0x931D,0x92FA,0x9313,0x92F9, - 0x92F7,0x9334,0x9302,0x9324,0x92FF,0x9329,0x9339,0x9335, - 0x932A,0x9314,0x930C,0x930B,0x92FE,0x9309,0x9300,0x92FB, - 0x9316,0x95BC,0x95CD,0x95BE,0x95B9,0x95BA,0x95B6,0x95BF, - 0x95B5,0x95BD,0x96A9,0x96D4,0x970B,0x9712,0x9710,0x9799, - 0x9797,0x9794,0x97F0,0x97F8,0x9835,0x982F,0x9832,0x9924, - 0x991F,0x9927,0x9929,0x999E,0x99EE,0x99EC,0x99E5,0x99E4, - 0x99F0,0x99E3,0x99EA,0x99E9,0x99E7,0x9AB9,0x9ABF,0x9AB4, - 0x9ABB,0x9AF6,0x9AFA,0x9AF9,0x9AF7,0x9B33, - /* Range 0x5C21 - 0x5C7E, array index: 0x16A3 */ - 0x9B80,0x9B85,0x9B87,0x9B7C,0x9B7E,0x9B7B,0x9B82,0x9B93, - 0x9B92,0x9B90,0x9B7A,0x9B95,0x9B7D,0x9B88,0x9D25,0x9D17, - 0x9D20,0x9D1E,0x9D14,0x9D29,0x9D1D,0x9D18,0x9D22,0x9D10, - 0x9D19,0x9D1F,0x9E88,0x9E86,0x9E87,0x9EAE,0x9EAD,0x9ED5, - 0x9ED6,0x9EFA,0x9F12,0x9F3D,0x5126,0x5125,0x5122,0x5124, - 0x5120,0x5129,0x52F4,0x5693,0x568C,0x568D,0x5686,0x5684, - 0x5683,0x567E,0x5682,0x567F,0x5681,0x58D6,0x58D4,0x58CF, - 0x58D2,0x5B2D,0x5B25,0x5B32,0x5B23,0x5B2C,0x5B27,0x5B26, - 0x5B2F,0x5B2E,0x5B7B,0x5BF1,0x5BF2,0x5DB7,0x5E6C,0x5E6A, - 0x5FBE,0x61C3,0x61B5,0x61BC,0x61E7,0x61E0,0x61E5,0x61E4, - 0x61E8,0x61DE,0x64EF,0x64E9,0x64E3,0x64EB,0x64E4,0x64E8, - 0x6581,0x6580,0x65B6,0x65DA,0x66D2,0x6A8D, - /* Range 0x5D21 - 0x5D7E, array index: 0x1701 */ - 0x6A96,0x6A81,0x6AA5,0x6A89,0x6A9F,0x6A9B,0x6AA1,0x6A9E, - 0x6A87,0x6A93,0x6A8E,0x6A95,0x6A83,0x6AA8,0x6AA4,0x6A91, - 0x6A7F,0x6AA6,0x6A9A,0x6A85,0x6A8C,0x6A92,0x6B5B,0x6BAD, - 0x6C09,0x6FCC,0x6FA9,0x6FF4,0x6FD4,0x6FE3,0x6FDC,0x6FED, - 0x6FE7,0x6FE6,0x6FDE,0x6FF2,0x6FDD,0x6FE2,0x6FE8,0x71E1, - 0x71F1,0x71E8,0x71F2,0x71E4,0x71F0,0x71E2,0x7373,0x736E, - 0x736F,0x7497,0x74B2,0x74AB,0x7490,0x74AA,0x74AD,0x74B1, - 0x74A5,0x74AF,0x7510,0x7511,0x7512,0x750F,0x7584,0x7643, - 0x7648,0x7649,0x7647,0x76A4,0x76E9,0x77B5,0x77AB,0x77B2, - 0x77B7,0x77B6,0x77B4,0x77B1,0x77A8,0x77F0,0x78F3,0x78FD, - 0x7902,0x78FB,0x78FC,0x78FF,0x78F2,0x7905,0x78F9,0x78FE, - 0x7904,0x79AB,0x79A8,0x7A5C,0x7A5B,0x7A56, - /* Range 0x5E21 - 0x5E7E, array index: 0x175F */ - 0x7A58,0x7A54,0x7A5A,0x7ABE,0x7AC0,0x7AC1,0x7C05,0x7C0F, - 0x7BF2,0x7C00,0x7BFF,0x7BFB,0x7C0E,0x7BF4,0x7C0B,0x7BF3, - 0x7C02,0x7C09,0x7C03,0x7C01,0x7BF8,0x7BFD,0x7C06,0x7BF0, - 0x7BF1,0x7C10,0x7C0A,0x7CE8,0x7E2D,0x7E3C,0x7E42,0x7E33, - 0x9848,0x7E38,0x7E2A,0x7E49,0x7E40,0x7E47,0x7E29,0x7E4C, - 0x7E30,0x7E3B,0x7E36,0x7E44,0x7E3A,0x7F45,0x7F7F,0x7F7E, - 0x7F7D,0x7FF4,0x7FF2,0x802C,0x81BB,0x81C4,0x81CC,0x81CA, - 0x81C5,0x81C7,0x81BC,0x81E9,0x825B,0x825A,0x825C,0x8583, - 0x8580,0x858F,0x85A7,0x8595,0x85A0,0x858B,0x85A3,0x857B, - 0x85A4,0x859A,0x859E,0x8577,0x857C,0x8589,0x85A1,0x857A, - 0x8578,0x8557,0x858E,0x8596,0x8586,0x858D,0x8599,0x859D, - 0x8581,0x85A2,0x8582,0x8588,0x8585,0x8579, - /* Range 0x5F21 - 0x5F7E, array index: 0x17BD */ - 0x8576,0x8598,0x8590,0x859F,0x8668,0x87BE,0x87AA,0x87AD, - 0x87C5,0x87B0,0x87AC,0x87B9,0x87B5,0x87BC,0x87AE,0x87C9, - 0x87C3,0x87C2,0x87CC,0x87B7,0x87AF,0x87C4,0x87CA,0x87B4, - 0x87B6,0x87BF,0x87B8,0x87BD,0x87DE,0x87B2,0x8935,0x8933, - 0x893C,0x893E,0x8941,0x8952,0x8937,0x8942,0x89AD,0x89AF, - 0x89AE,0x89F2,0x89F3,0x8B1E,0x8B18,0x8B16,0x8B11,0x8B05, - 0x8B0B,0x8B22,0x8B0F,0x8B12,0x8B15,0x8B07,0x8B0D,0x8B08, - 0x8B06,0x8B1C,0x8B13,0x8B1A,0x8C4F,0x8C70,0x8C72,0x8C71, - 0x8C6F,0x8C95,0x8C94,0x8CF9,0x8D6F,0x8E4E,0x8E4D,0x8E53, - 0x8E50,0x8E4C,0x8E47,0x8F43,0x8F40,0x9085,0x907E,0x9138, - 0x919A,0x91A2,0x919B,0x9199,0x919F,0x91A1,0x919D,0x91A0, - 0x93A1,0x9383,0x93AF,0x9364,0x9356,0x9347, - /* Range 0x6021 - 0x607E, array index: 0x181B */ - 0x937C,0x9358,0x935C,0x9376,0x9349,0x9350,0x9351,0x9360, - 0x936D,0x938F,0x934C,0x936A,0x9379,0x9357,0x9355,0x9352, - 0x934F,0x9371,0x9377,0x937B,0x9361,0x935E,0x9363,0x9367, - 0x934E,0x9359,0x95C7,0x95C0,0x95C9,0x95C3,0x95C5,0x95B7, - 0x96AE,0x96B0,0x96AC,0x9720,0x971F,0x9718,0x971D,0x9719, - 0x979A,0x97A1,0x979C,0x979E,0x979D,0x97D5,0x97D4,0x97F1, - 0x9841,0x9844,0x984A,0x9849,0x9845,0x9843,0x9925,0x992B, - 0x992C,0x992A,0x9933,0x9932,0x992F,0x992D,0x9931,0x9930, - 0x9998,0x99A3,0x99A1,0x9A02,0x99FA,0x99F4,0x99F7,0x99F9, - 0x99F8,0x99F6,0x99FB,0x99FD,0x99FE,0x99FC,0x9A03,0x9ABE, - 0x9AFE,0x9AFD,0x9B01,0x9AFC,0x9B48,0x9B9A,0x9BA8,0x9B9E, - 0x9B9B,0x9BA6,0x9BA1,0x9BA5,0x9BA4,0x9B86, - /* Range 0x6121 - 0x617E, array index: 0x1879 */ - 0x9BA2,0x9BA0,0x9BAF,0x9D33,0x9D41,0x9D67,0x9D36,0x9D2E, - 0x9D2F,0x9D31,0x9D38,0x9D30,0x9D45,0x9D42,0x9D43,0x9D3E, - 0x9D37,0x9D40,0x9D3D,0x7FF5,0x9D2D,0x9E8A,0x9E89,0x9E8D, - 0x9EB0,0x9EC8,0x9EDA,0x9EFB,0x9EFF,0x9F24,0x9F23,0x9F22, - 0x9F54,0x9FA0,0x5131,0x512D,0x512E,0x5698,0x569C,0x5697, - 0x569A,0x569D,0x5699,0x5970,0x5B3C,0x5C69,0x5C6A,0x5DC0, - 0x5E6D,0x5E6E,0x61D8,0x61DF,0x61ED,0x61EE,0x61F1,0x61EA, - 0x61F0,0x61EB,0x61D6,0x61E9,0x64FF,0x6504,0x64FD,0x64F8, - 0x6501,0x6503,0x64FC,0x6594,0x65DB,0x66DA,0x66DB,0x66D8, - 0x6AC5,0x6AB9,0x6ABD,0x6AE1,0x6AC6,0x6ABA,0x6AB6,0x6AB7, - 0x6AC7,0x6AB4,0x6AAD,0x6B5E,0x6BC9,0x6C0B,0x7007,0x700C, - 0x700D,0x7001,0x7005,0x7014,0x700E,0x6FFF, - /* Range 0x6221 - 0x627E, array index: 0x18D7 */ - 0x7000,0x6FFB,0x7026,0x6FFC,0x6FF7,0x700A,0x7201,0x71FF, - 0x71F9,0x7203,0x71FD,0x7376,0x74B8,0x74C0,0x74B5,0x74C1, - 0x74BE,0x74B6,0x74BB,0x74C2,0x7514,0x7513,0x765C,0x7664, - 0x7659,0x7650,0x7653,0x7657,0x765A,0x76A6,0x76BD,0x76EC, - 0x77C2,0x77BA,0x790C,0x7913,0x7914,0x7909,0x7910,0x7912, - 0x7911,0x79AD,0x79AC,0x7A5F,0x7C1C,0x7C29,0x7C19,0x7C20, - 0x7C1F,0x7C2D,0x7C1D,0x7C26,0x7C28,0x7C22,0x7C25,0x7C30, - 0x7E5C,0x7E50,0x7E56,0x7E63,0x7E58,0x7E62,0x7E5F,0x7E51, - 0x7E60,0x7E57,0x7E53,0x7FB5,0x7FB3,0x7FF7,0x7FF8,0x8075, - 0x81D1,0x81D2,0x81D0,0x825F,0x825E,0x85B4,0x85C6,0x85C0, - 0x85C3,0x85C2,0x85B3,0x85B5,0x85BD,0x85C7,0x85C4,0x85BF, - 0x85CB,0x85CE,0x85C8,0x85C5,0x85B1,0x85B6, - /* Range 0x6321 - 0x637E, array index: 0x1935 */ - 0x85D2,0x8624,0x85B8,0x85B7,0x85BE,0x8669,0x87E7,0x87E6, - 0x87E2,0x87DB,0x87EB,0x87EA,0x87E5,0x87DF,0x87F3,0x87E4, - 0x87D4,0x87DC,0x87D3,0x87ED,0x87D8,0x87E3,0x87D7,0x87D9, - 0x8801,0x87F4,0x87E8,0x87DD,0x8953,0x894B,0x894F,0x894C, - 0x8946,0x8950,0x8951,0x8949,0x8B2A,0x8B27,0x8B23,0x8B33, - 0x8B30,0x8B35,0x8B47,0x8B2F,0x8B3C,0x8B3E,0x8B31,0x8B25, - 0x8B37,0x8B26,0x8B36,0x8B2E,0x8B24,0x8B3B,0x8B3D,0x8B3A, - 0x8C42,0x8C75,0x8C99,0x8C98,0x8C97,0x8CFE,0x8D04,0x8D02, - 0x8D00,0x8E5C,0x8E62,0x8E60,0x8E57,0x8E56,0x8E5E,0x8E65, - 0x8E67,0x8E5B,0x8E5A,0x8E61,0x8E5D,0x8E69,0x8E54,0x8F46, - 0x8F47,0x8F48,0x8F4B,0x9128,0x913A,0x913B,0x913E,0x91A8, - 0x91A5,0x91A7,0x91AF,0x91AA,0x93B5,0x938C, - /* Range 0x6421 - 0x647E, array index: 0x1993 */ - 0x9392,0x93B7,0x939B,0x939D,0x9389,0x93A7,0x938E,0x93AA, - 0x939E,0x93A6,0x9395,0x9388,0x9399,0x939F,0x9380,0x938D, - 0x93B1,0x9391,0x93B2,0x93A4,0x93A8,0x93B4,0x93A3,0x95D2, - 0x95D3,0x95D1,0x96B3,0x96D7,0x96DA,0x5DC2,0x96DF,0x96D8, - 0x96DD,0x9723,0x9722,0x9725,0x97AC,0x97AE,0x97A8,0x97AB, - 0x97A4,0x97AA,0x97A2,0x97A5,0x97D7,0x97D9,0x97D6,0x97D8, - 0x97FA,0x9850,0x9851,0x9852,0x98B8,0x9941,0x993C,0x993A, - 0x9A0F,0x9A0B,0x9A09,0x9A0D,0x9A04,0x9A11,0x9A0A,0x9A05, - 0x9A07,0x9A06,0x9AC0,0x9ADC,0x9B08,0x9B04,0x9B05,0x9B29, - 0x9B35,0x9B4A,0x9B4C,0x9B4B,0x9BC7,0x9BC6,0x9BC3,0x9BBF, - 0x9BC1,0x9BB5,0x9BB8,0x9BD3,0x9BB6,0x9BC4,0x9BB9,0x9BBD, - 0x9D5C,0x9D53,0x9D4F,0x9D4A,0x9D5B,0x9D4B, - /* Range 0x6521 - 0x657E, array index: 0x19F1 */ - 0x9D59,0x9D56,0x9D4C,0x9D57,0x9D52,0x9D54,0x9D5F,0x9D58, - 0x9D5A,0x9E8E,0x9E8C,0x9EDF,0x9F01,0x9F00,0x9F16,0x9F25, - 0x9F2B,0x9F2A,0x9F29,0x9F28,0x9F4C,0x9F55,0x5134,0x5135, - 0x5296,0x52F7,0x53B4,0x56AB,0x56AD,0x56A6,0x56A7,0x56AA, - 0x56AC,0x58DA,0x58DD,0x58DB,0x5912,0x5B3D,0x5B3E,0x5B3F, - 0x5DC3,0x5E70,0x5FBF,0x61FB,0x6507,0x6510,0x650D,0x6509, - 0x650C,0x650E,0x6584,0x65DE,0x65DD,0x66DE,0x6AE7,0x6AE0, - 0x6ACC,0x6AD1,0x6AD9,0x6ACB,0x6ADF,0x6ADC,0x6AD0,0x6AEB, - 0x6ACF,0x6ACD,0x6ADE,0x6B60,0x6BB0,0x6C0C,0x7019,0x7027, - 0x7020,0x7016,0x702B,0x7021,0x7022,0x7023,0x7029,0x7017, - 0x7024,0x701C,0x720C,0x720A,0x7207,0x7202,0x7205,0x72A5, - 0x72A6,0x72A4,0x72A3,0x72A1,0x74CB,0x74C5, - /* Range 0x6621 - 0x667E, array index: 0x1A4F */ - 0x74B7,0x74C3,0x7516,0x7660,0x77C9,0x77CA,0x77C4,0x77F1, - 0x791D,0x791B,0x7921,0x791C,0x7917,0x791E,0x79B0,0x7A67, - 0x7A68,0x7C33,0x7C3C,0x7C39,0x7C2C,0x7C3B,0x7CEC,0x7CEA, - 0x7E76,0x7E75,0x7E78,0x7E70,0x7E77,0x7E6F,0x7E7A,0x7E72, - 0x7E74,0x7E68,0x7F4B,0x7F4A,0x7F83,0x7F86,0x7FB7,0x7FFD, - 0x7FFE,0x8078,0x81D7,0x81D5,0x820B,0x8264,0x8261,0x8263, - 0x85EB,0x85F1,0x85ED,0x85D9,0x85E1,0x85E8,0x85DA,0x85D7, - 0x85EC,0x85F2,0x85F8,0x85D8,0x85DF,0x85E3,0x85DC,0x85D1, - 0x85F0,0x85E6,0x85EF,0x85DE,0x85E2,0x8800,0x87FA,0x8803, - 0x87F6,0x87F7,0x8809,0x880C,0x880B,0x8806,0x87FC,0x8808, - 0x87FF,0x880A,0x8802,0x8962,0x895A,0x895B,0x8957,0x8961, - 0x895C,0x8958,0x895D,0x8959,0x8988,0x89B7, - /* Range 0x6721 - 0x677E, array index: 0x1AAD */ - 0x89B6,0x89F6,0x8B50,0x8B48,0x8B4A,0x8B40,0x8B53,0x8B56, - 0x8B54,0x8B4B,0x8B55,0x8B51,0x8B42,0x8B52,0x8B57,0x8C43, - 0x8C77,0x8C76,0x8C9A,0x8D06,0x8D07,0x8D09,0x8DAC,0x8DAA, - 0x8DAD,0x8DAB,0x8E6D,0x8E78,0x8E73,0x8E6A,0x8E6F,0x8E7B, - 0x8EC2,0x8F52,0x8F51,0x8F4F,0x8F50,0x8F53,0x8FB4,0x9140, - 0x913F,0x91B0,0x91AD,0x93DE,0x93C7,0x93CF,0x93C2,0x93DA, - 0x93D0,0x93F9,0x93EC,0x93CC,0x93D9,0x93A9,0x93E6,0x93CA, - 0x93D4,0x93EE,0x93E3,0x93D5,0x93C4,0x93CE,0x93C0,0x93D2, - 0x93A5,0x93E7,0x957D,0x95DA,0x95DB,0x96E1,0x9729,0x972B, - 0x972C,0x9728,0x9726,0x97B3,0x97B7,0x97B6,0x97DD,0x97DE, - 0x97DF,0x985C,0x9859,0x985D,0x9857,0x98BF,0x98BD,0x98BB, - 0x98BE,0x9948,0x9947,0x9943,0x99A6,0x99A7, - /* Range 0x6821 - 0x687E, array index: 0x1B0B */ - 0x9A1A,0x9A15,0x9A25,0x9A1D,0x9A24,0x9A1B,0x9A22,0x9A20, - 0x9A27,0x9A23,0x9A1E,0x9A1C,0x9A14,0x9AC2,0x9B0B,0x9B0A, - 0x9B0E,0x9B0C,0x9B37,0x9BEA,0x9BEB,0x9BE0,0x9BDE,0x9BE4, - 0x9BE6,0x9BE2,0x9BF0,0x9BD4,0x9BD7,0x9BEC,0x9BDC,0x9BD9, - 0x9BE5,0x9BD5,0x9BE1,0x9BDA,0x9D77,0x9D81,0x9D8A,0x9D84, - 0x9D88,0x9D71,0x9D80,0x9D78,0x9D86,0x9D8B,0x9D8C,0x9D7D, - 0x9D6B,0x9D74,0x9D75,0x9D70,0x9D69,0x9D85,0x9D73,0x9D7B, - 0x9D82,0x9D6F,0x9D79,0x9D7F,0x9D87,0x9D68,0x9E94,0x9E91, - 0x9EC0,0x9EFC,0x9F2D,0x9F40,0x9F41,0x9F4D,0x9F56,0x9F57, - 0x9F58,0x5337,0x56B2,0x56B5,0x56B3,0x58E3,0x5B45,0x5DC6, - 0x5DC7,0x5EEE,0x5EEF,0x5FC0,0x5FC1,0x61F9,0x6517,0x6516, - 0x6515,0x6513,0x65DF,0x66E8,0x66E3,0x66E4, - /* Range 0x6921 - 0x697E, array index: 0x1B69 */ - 0x6AF3,0x6AF0,0x6AEA,0x6AE8,0x6AF9,0x6AF1,0x6AEE,0x6AEF, - 0x703C,0x7035,0x702F,0x7037,0x7034,0x7031,0x7042,0x7038, - 0x703F,0x703A,0x7039,0x702A,0x7040,0x703B,0x7033,0x7041, - 0x7213,0x7214,0x72A8,0x737D,0x737C,0x74BA,0x76AB,0x76AA, - 0x76BE,0x76ED,0x77CC,0x77CE,0x77CF,0x77CD,0x77F2,0x7925, - 0x7923,0x7927,0x7928,0x7924,0x7929,0x79B2,0x7A6E,0x7A6C, - 0x7A6D,0x7AF7,0x7C49,0x7C48,0x7C4A,0x7C47,0x7C45,0x7CEE, - 0x7E7B,0x7E7E,0x7E81,0x7E80,0x7FBA,0x7FFF,0x8079,0x81DB, - 0x81D9,0x8268,0x8269,0x8622,0x85FF,0x8601,0x85FE,0x861B, - 0x8600,0x85F6,0x8604,0x8609,0x8605,0x860C,0x85FD,0x8819, - 0x8810,0x8811,0x8817,0x8813,0x8816,0x8963,0x8966,0x89B9, - 0x89F7,0x8B60,0x8B6A,0x8B5D,0x8B68,0x8B63, - /* Range 0x6A21 - 0x6A7E, array index: 0x1BC7 */ - 0x8B65,0x8B67,0x8B6D,0x8DAE,0x8E86,0x8E88,0x8E84,0x8F59, - 0x8F56,0x8F57,0x8F55,0x8F58,0x8F5A,0x908D,0x9143,0x9141, - 0x91B7,0x91B5,0x91B2,0x91B3,0x940B,0x9413,0x93FB,0x9420, - 0x940F,0x9414,0x93FE,0x9415,0x9410,0x9428,0x9419,0x940D, - 0x93F5,0x9400,0x93F7,0x9407,0x940E,0x9416,0x9412,0x93FA, - 0x9409,0x93F8,0x943C,0x940A,0x93FF,0x93FC,0x940C,0x93F6, - 0x9411,0x9406,0x95DE,0x95E0,0x95DF,0x972E,0x972F,0x97B9, - 0x97BB,0x97FD,0x97FE,0x9860,0x9862,0x9863,0x985F,0x98C1, - 0x98C2,0x9950,0x994E,0x9959,0x994C,0x994B,0x9953,0x9A32, - 0x9A34,0x9A31,0x9A2C,0x9A2A,0x9A36,0x9A29,0x9A2E,0x9A38, - 0x9A2D,0x9AC7,0x9ACA,0x9AC6,0x9B10,0x9B12,0x9B11,0x9C0B, - 0x9C08,0x9BF7,0x9C05,0x9C12,0x9BF8,0x9C40, - /* Range 0x6B21 - 0x6B7E, array index: 0x1C25 */ - 0x9C07,0x9C0E,0x9C06,0x9C17,0x9C14,0x9C09,0x9D9F,0x9D99, - 0x9DA4,0x9D9D,0x9D92,0x9D98,0x9D90,0x9D9B,0x9DA0,0x9D94, - 0x9D9C,0x9DAA,0x9D97,0x9DA1,0x9D9A,0x9DA2,0x9DA8,0x9D9E, - 0x9DA3,0x9DBF,0x9DA9,0x9D96,0x9DA6,0x9DA7,0x9E99,0x9E9B, - 0x9E9A,0x9EE5,0x9EE4,0x9EE7,0x9EE6,0x9F30,0x9F2E,0x9F5B, - 0x9F60,0x9F5E,0x9F5D,0x9F59,0x9F91,0x513A,0x5139,0x5298, - 0x5297,0x56C3,0x56BD,0x56BE,0x5B48,0x5B47,0x5DCB,0x5DCF, - 0x5EF1,0x61FD,0x651B,0x6B02,0x6AFC,0x6B03,0x6AF8,0x6B00, - 0x7043,0x7044,0x704A,0x7048,0x7049,0x7045,0x7046,0x721D, - 0x721A,0x7219,0x737E,0x7517,0x766A,0x77D0,0x792D,0x7931, - 0x792F,0x7C54,0x7C53,0x7CF2,0x7E8A,0x7E87,0x7E88,0x7E8B, - 0x7E86,0x7E8D,0x7F4D,0x7FBB,0x8030,0x81DD, - /* Range 0x6C21 - 0x6C7E, array index: 0x1C83 */ - 0x8618,0x862A,0x8626,0x861F,0x8623,0x861C,0x8619,0x8627, - 0x862E,0x8621,0x8620,0x8629,0x861E,0x8625,0x8829,0x881D, - 0x881B,0x8820,0x8824,0x881C,0x882B,0x884A,0x896D,0x8969, - 0x896E,0x896B,0x89FA,0x8B79,0x8B78,0x8B45,0x8B7A,0x8B7B, - 0x8D10,0x8D14,0x8DAF,0x8E8E,0x8E8C,0x8F5E,0x8F5B,0x8F5D, - 0x9146,0x9144,0x9145,0x91B9,0x943F,0x943B,0x9436,0x9429, - 0x943D,0x9430,0x9439,0x942A,0x9437,0x942C,0x9440,0x9431, - 0x95E5,0x95E4,0x95E3,0x9735,0x973A,0x97BF,0x97E1,0x9864, - 0x98C9,0x98C6,0x98C0,0x9958,0x9956,0x9A39,0x9A3D,0x9A46, - 0x9A44,0x9A42,0x9A41,0x9A3A,0x9A3F,0x9ACD,0x9B15,0x9B17, - 0x9B18,0x9B16,0x9B3A,0x9B52,0x9C2B,0x9C1D,0x9C1C,0x9C2C, - 0x9C23,0x9C28,0x9C29,0x9C24,0x9C21,0x9DB7, - /* Range 0x6D21 - 0x6D7E, array index: 0x1CE1 */ - 0x9DB6,0x9DBC,0x9DC1,0x9DC7,0x9DCA,0x9DCF,0x9DBE,0x9DC5, - 0x9DC3,0x9DBB,0x9DB5,0x9DCE,0x9DB9,0x9DBA,0x9DAC,0x9DC8, - 0x9DB1,0x9DAD,0x9DCC,0x9DB3,0x9DCD,0x9DB2,0x9E7A,0x9E9C, - 0x9EEB,0x9EEE,0x9EED,0x9F1B,0x9F18,0x9F1A,0x9F31,0x9F4E, - 0x9F65,0x9F64,0x9F92,0x4EB9,0x56C6,0x56C5,0x56CB,0x5971, - 0x5B4B,0x5B4C,0x5DD5,0x5DD1,0x5EF2,0x6521,0x6520,0x6526, - 0x6522,0x6B0B,0x6B08,0x6B09,0x6C0D,0x7055,0x7056,0x7057, - 0x7052,0x721E,0x721F,0x72A9,0x737F,0x74D8,0x74D5,0x74D9, - 0x74D7,0x766D,0x76AD,0x7935,0x79B4,0x7A70,0x7A71,0x7C57, - 0x7C5C,0x7C59,0x7C5B,0x7C5A,0x7CF4,0x7CF1,0x7E91,0x7F4F, - 0x7F87,0x81DE,0x826B,0x8634,0x8635,0x8633,0x862C,0x8632, - 0x8636,0x882C,0x8828,0x8826,0x882A,0x8825, - /* Range 0x6E21 - 0x6E7E, array index: 0x1D3F */ - 0x8971,0x89BF,0x89BE,0x89FB,0x8B7E,0x8B84,0x8B82,0x8B86, - 0x8B85,0x8B7F,0x8D15,0x8E95,0x8E94,0x8E9A,0x8E92,0x8E90, - 0x8E96,0x8E97,0x8F60,0x8F62,0x9147,0x944C,0x9450,0x944A, - 0x944B,0x944F,0x9447,0x9445,0x9448,0x9449,0x9446,0x973F, - 0x97E3,0x986A,0x9869,0x98CB,0x9954,0x995B,0x9A4E,0x9A53, - 0x9A54,0x9A4C,0x9A4F,0x9A48,0x9A4A,0x9A49,0x9A52,0x9A50, - 0x9AD0,0x9B19,0x9B2B,0x9B3B,0x9B56,0x9B55,0x9C46,0x9C48, - 0x9C3F,0x9C44,0x9C39,0x9C33,0x9C41,0x9C3C,0x9C37,0x9C34, - 0x9C32,0x9C3D,0x9C36,0x9DDB,0x9DD2,0x9DDE,0x9DDA,0x9DCB, - 0x9DD0,0x9DDC,0x9DD1,0x9DDF,0x9DE9,0x9DD9,0x9DD8,0x9DD6, - 0x9DF5,0x9DD5,0x9DDD,0x9EB6,0x9EF0,0x9F35,0x9F33,0x9F32, - 0x9F42,0x9F6B,0x9F95,0x9FA2,0x513D,0x5299, - /* Range 0x6F21 - 0x6F7E, array index: 0x1D9D */ - 0x58E8,0x58E7,0x5972,0x5B4D,0x5DD8,0x882F,0x5F4F,0x6201, - 0x6203,0x6204,0x6529,0x6525,0x6596,0x66EB,0x6B11,0x6B12, - 0x6B0F,0x6BCA,0x705B,0x705A,0x7222,0x7382,0x7381,0x7383, - 0x7670,0x77D4,0x7C67,0x7C66,0x7E95,0x826C,0x863A,0x8640, - 0x8639,0x863C,0x8631,0x863B,0x863E,0x8830,0x8832,0x882E, - 0x8833,0x8976,0x8974,0x8973,0x89FE,0x8B8C,0x8B8E,0x8B8B, - 0x8B88,0x8C45,0x8D19,0x8E98,0x8F64,0x8F63,0x91BC,0x9462, - 0x9455,0x945D,0x9457,0x945E,0x97C4,0x97C5,0x9800,0x9A56, - 0x9A59,0x9B1E,0x9B1F,0x9B20,0x9C52,0x9C58,0x9C50,0x9C4A, - 0x9C4D,0x9C4B,0x9C55,0x9C59,0x9C4C,0x9C4E,0x9DFB,0x9DF7, - 0x9DEF,0x9DE3,0x9DEB,0x9DF8,0x9DE4,0x9DF6,0x9DE1,0x9DEE, - 0x9DE6,0x9DF2,0x9DF0,0x9DE2,0x9DEC,0x9DF4, - /* Range 0x7021 - 0x707E, array index: 0x1DFB */ - 0x9DF3,0x9DE8,0x9DED,0x9EC2,0x9ED0,0x9EF2,0x9EF3,0x9F06, - 0x9F1C,0x9F38,0x9F37,0x9F36,0x9F43,0x9F4F,0x9F71,0x9F70, - 0x9F6E,0x9F6F,0x56D3,0x56CD,0x5B4E,0x5C6D,0x652D,0x66ED, - 0x66EE,0x6B13,0x705F,0x7061,0x705D,0x7060,0x7223,0x74DB, - 0x74E5,0x77D5,0x7938,0x79B7,0x79B6,0x7C6A,0x7E97,0x7F89, - 0x826D,0x8643,0x8838,0x8837,0x8835,0x884B,0x8B94,0x8B95, - 0x8E9E,0x8E9F,0x8EA0,0x8E9D,0x91BE,0x91BD,0x91C2,0x946B, - 0x9468,0x9469,0x96E5,0x9746,0x9743,0x9747,0x97C7,0x97E5, - 0x9A5E,0x9AD5,0x9B59,0x9C63,0x9C67,0x9C66,0x9C62,0x9C5E, - 0x9C60,0x9E02,0x9DFE,0x9E07,0x9E03,0x9E06,0x9E05,0x9E00, - 0x9E01,0x9E09,0x9DFF,0x9DFD,0x9E04,0x9EA0,0x9F1E,0x9F46, - 0x9F74,0x9F75,0x9F76,0x56D4,0x652E,0x65B8, - /* Range 0x7121 - 0x717E, array index: 0x1E59 */ - 0x6B18,0x6B19,0x6B17,0x6B1A,0x7062,0x7226,0x72AA,0x77D8, - 0x77D9,0x7939,0x7C69,0x7C6B,0x7CF6,0x7E9A,0x7E98,0x7E9B, - 0x7E99,0x81E0,0x81E1,0x8646,0x8647,0x8648,0x8979,0x897A, - 0x897C,0x897B,0x89FF,0x8B98,0x8B99,0x8EA5,0x8EA4,0x8EA3, - 0x946E,0x946D,0x946F,0x9471,0x9473,0x9749,0x9872,0x995F, - 0x9C68,0x9C6E,0x9C6D,0x9E0B,0x9E0D,0x9E10,0x9E0F,0x9E12, - 0x9E11,0x9EA1,0x9EF5,0x9F09,0x9F47,0x9F78,0x9F7B,0x9F7A, - 0x9F79,0x571E,0x7066,0x7C6F,0x883C,0x8DB2,0x8EA6,0x91C3, - 0x9474,0x9478,0x9476,0x9475,0x9A60,0x9B2E,0x9C74,0x9C73, - 0x9C71,0x9C75,0x9E14,0x9E13,0x9EF6,0x9F0A,0x9FA4,0x7068, - 0x7065,0x7CF7,0x866A,0x883E,0x883D,0x883F,0x8B9E,0x8C9C, - 0x8EA9,0x8EC9,0x974B,0x9873,0x9874,0x98CC, - /* Range 0x7221 - 0x7244, array index: 0x1EB7 */ - 0x9961,0x99AB,0x9A64,0x9A66,0x9A67,0x9B24,0x9E15,0x9E17, - 0x9F48,0x6207,0x6B1E,0x7227,0x864C,0x8EA8,0x9482,0x9480, - 0x9481,0x9A69,0x9A68,0x9E19,0x864B,0x8B9F,0x9483,0x9C79, - 0x9EB7,0x7675,0x9A6B,0x9C7A,0x9E1D,0x7069,0x706A,0x7229, - 0x9EA4,0x9F7E,0x9F49,0x9F98, - /* Unranged codes (82 codes) */ -}; - -#endif /* ICONV_TO_UCS_CCS_CNS11643_PLANE2 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> cns11643_plane2 speed-optimized table (42496 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE2) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_speed_cns11643_plane2[] = -{ - /* Heading Block */ - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,0x0100,0x0200, - 0x0300,0x0400,0x0500,0x0600,0x0700,0x0800,0x0900,0x0A00, - 0x0B00,0x0C00,0x0D00,0x0E00,0x0F00,0x1000,0x1100,0x1200, - 0x1300,0x1400,0x1500,0x1600,0x1700,0x1800,0x1900,0x1A00, - 0x1B00,0x1C00,0x1D00,0x1E00,0x1F00,0x2000,0x2100,0x2200, - 0x2300,0x2400,0x2500,0x2600,0x2700,0x2800,0x2900,0x2A00, - 0x2B00,0x2C00,0x2D00,0x2E00,0x2F00,0x3000,0x3100,0x3200, - 0x3300,0x3400,0x3500,0x3600,0x3700,0x3800,0x3900,0x3A00, - 0x3B00,0x3C00,0x3D00,0x3E00,0x3F00,0x4000,0x4100,0x4200, - 0x4300,0x4400,0x4500,0x4600,0x4700,0x4800,0x4900,0x4A00, - 0x4B00,0x4C00,0x4D00,0x4E00,0x4F00,0x5000,0x5100,0x5200, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - /* Block 79, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2126, - INVALC,INVALC,INVALC,INVALC,0x2127,INVALC,0x212F,0x212D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2130,INVALC, - INVALC,0x2143,INVALC,0x2531,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2144,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2121,INVALC,INVALC,INVALC,INVALC,0x2128, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2122,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x334E, - INVALC,INVALC,INVALC,0x4156,0x4157,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2129,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2131,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4158,INVALC, - INVALC,0x6D44,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2132,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2134,0x2133,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x214A,INVALC,0x2146,0x2149,INVALC,INVALC, - INVALC,0x2148,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2145,0x2147,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x216F,INVALC,INVALC,0x2179,0x216D,INVALC,0x2171, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 80, Array index 0x0200 */ - 0x2170,INVALC,0x2174,INVALC,0x2178,0x2175,INVALC,INVALC, - 0x2172,INVALC,INVALC,INVALC,INVALC,INVALC,0x216A,INVALC, - INVALC,INVALC,0x217A,0x2177,0x216E,INVALC,INVALC,INVALC, - 0x216B,INVALC,INVALC,INVALC,INVALC,0x2173,INVALC,INVALC, - INVALC,INVALC,0x2176,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x216C,0x2328,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2329,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x227B,INVALC,INVALC,0x2322,0x232A, - INVALC,0x2326,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x227D,INVALC,INVALC,0x253D,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2324,0x227E,INVALC,INVALC,0x227A,INVALC, - 0x2327,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2325, - INVALC,0x232B,0x227C,INVALC,0x2321,INVALC,INVALC,0x2323, - INVALC,INVALC,0x253F,0x254B,INVALC,INVALC,0x254C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2539,INVALC,0x2538,0x253C, - 0x2543,0x2541,INVALC,INVALC,0x2533,0x2535,INVALC,INVALC, - 0x2536,0x2542,0x2549,INVALC,0x253B,0x2534,INVALC,0x2537, - INVALC,0x253A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2544,INVALC,0x2548,INVALC,0x2546,0x254A,INVALC,0x253E, - 0x2532,INVALC,0x2540,INVALC,0x2545,INVALC,0x2547,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2922,0x292A,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2930,0x292E,0x2929,INVALC,INVALC,INVALC,INVALC, - 0x292F,0x2925,INVALC,INVALC,INVALC,0x287E,INVALC,0x292C, - INVALC,0x2923,INVALC,0x2924,INVALC,0x287D,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2921,0x2926,INVALC,0x292D,INVALC, - INVALC,0x2928,INVALC,0x292B,0x2927,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2931,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2D71,0x2D70,0x2D75,0x2D76, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 81, Array index 0x0300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x2D6A,INVALC,0x2D6B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2D7E,INVALC, - INVALC,INVALC,INVALC,0x2D6C,INVALC,0x335E,INVALC,0x2D77, - INVALC,INVALC,INVALC,0x2D6F,0x2D78,INVALC,0x2D69,INVALC, - 0x2D79,INVALC,0x2D6D,INVALC,INVALC,INVALC,INVALC,0x2D7A, - INVALC,INVALC,INVALC,INVALC,0x2D74,INVALC,INVALC,0x2D7C, - 0x2D6E,0x2D7D,INVALC,0x2D72,INVALC,0x2D7B,INVALC,0x2D73, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3366,0x335A,INVALC,INVALC,INVALC,0x335F,0x3365,INVALC, - 0x3358,INVALC,0x335C,0x3355,INVALC,0x3359,INVALC,INVALC, - INVALC,0x336A,INVALC,0x3354,INVALC,INVALC,INVALC,0x3369, - INVALC,INVALC,INVALC,0x335B,INVALC,0x3356,0x3352,0x3360, - 0x3353,0x3351,0x335D,0x3363,0x3364,INVALC,INVALC,INVALC, - 0x3A3F,0x3361,0x3350,0x3362,INVALC,INVALC,0x3367,INVALC, - 0x334F,INVALC,0x3357,0x3368,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3A42,0x3A3B,INVALC,INVALC,INVALC,0x3A43, - INVALC,INVALC,INVALC,0x3A39,0x3A3C,INVALC,0x3A3D,INVALC, - INVALC,INVALC,0x3A41,INVALC,0x3A37,0x3A36,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3A35,0x3A40,0x3A3E,0x3A38,INVALC, - INVALC,INVALC,INVALC,0x3A3A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x415C,INVALC, - 0x4162,0x4165,INVALC,INVALC,0x415F,INVALC,0x4168,INVALC, - 0x4169,INVALC,0x4164,INVALC,INVALC,0x4159,INVALC,0x415A, - INVALC,0x4163,0x4161,INVALC,0x415D,INVALC,0x415B,INVALC, - 0x4160,0x4167,0x415E,0x4166,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4921,0x4877,INVALC,INVALC,0x4878, - INVALC,INVALC,INVALC,0x487B,INVALC,0x487D,INVALC,INVALC, - 0x4926,INVALC,INVALC,0x4925,0x487E,INVALC,0x4876,INVALC, - 0x4879,INVALC,0x487C,INVALC,0x4922,INVALC,INVALC,0x4924, - 0x4923,INVALC,INVALC,0x487A,INVALC,INVALC,0x4F54,INVALC, - 0x4F51,INVALC,INVALC,INVALC,INVALC,0x4F58,0x4F55,0x4F4E, - /* Block 82, Array index 0x0400 */ - INVALC,INVALC,INVALC,0x4F4F,INVALC,INVALC,0x4F52,0x4F53, - INVALC,INVALC,0x4F59,0x4F56,0x4F57,INVALC,INVALC,INVALC, - INVALC,0x5643,INVALC,0x5640,INVALC,INVALC,INVALC,0x5641, - INVALC,INVALC,0x5642,INVALC,0x563F,INVALC,INVALC,INVALC, - 0x5C49,INVALC,0x5C47,INVALC,0x5C48,0x5C46,0x5C45,INVALC, - INVALC,0x5C4A,INVALC,INVALC,INVALC,0x6144,0x6145,INVALC, - 0x4F50,0x6143,INVALC,INVALC,0x6537,0x6538,INVALC,INVALC, - INVALC,0x6B4F,0x6B4E,INVALC,INVALC,0x6E7D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2E21,INVALC,INVALC,INVALC,INVALC,0x3A44, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x212E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x232C, - INVALC,INVALC,INVALC,0x2E23,0x2E22,INVALC,INVALC,INVALC, - 0x2135,INVALC,INVALC,INVALC,INVALC,INVALC,0x254D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x217B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x232D,INVALC,INVALC,0x254E,INVALC,0x254F,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2E25,0x2E26,INVALC,INVALC, - 0x2E27,INVALC,0x2E24,INVALC,INVALC,INVALC,0x2E28,INVALC, - 0x336B,INVALC,INVALC,INVALC,0x3A45,INVALC,INVALC,0x416A, - 0x4927,INVALC,INVALC,INVALC,INVALC,INVALC,0x5644,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2123,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 83, Array index 0x0500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x214C,INVALC,INVALC,0x214B,INVALC,INVALC,INVALC, - 0x217D,INVALC,INVALC,0x217C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x232E,INVALC,0x232F,INVALC, - INVALC,0x2330,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2554,0x2551,0x2552,INVALC,0x2550,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2932,INVALC,0x2553,INVALC, - INVALC,0x2933,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2E2B,INVALC,INVALC,0x2E2E,INVALC,INVALC, - INVALC,INVALC,0x2E2A,INVALC,INVALC,INVALC,0x2E2C,0x2E2D, - INVALC,0x2E29,0x2E2F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x336C,0x336E,0x336D,0x336F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x416C,INVALC,0x416B,0x416D,0x416E,INVALC,INVALC,INVALC, - 0x4928,0x4929,INVALC,INVALC,0x4C61,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4F5A,0x4F5B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6539,0x6B51, - 0x6B50,0x6E7E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x217E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2331,0x2332,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2555,INVALC,INVALC,INVALC, - 0x2934,INVALC,0x2935,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2E30,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3371,INVALC,INVALC,0x3370,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x492A,INVALC,0x492B,INVALC,INVALC,INVALC,0x4F5D, - INVALC,0x4F5C,INVALC,INVALC,0x5C4B,INVALC,INVALC,0x653A, - INVALC,INVALC,INVALC,INVALC,0x2136,INVALC,INVALC,INVALC, - /* Block 84, Array index 0x0600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2333,0x2556,0x2557,INVALC,INVALC,0x2E31,INVALC, - INVALC,0x3A47,0x3A46,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2124,INVALC,0x214D,INVALC,INVALC,0x2222, - INVALC,INVALC,0x2221,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3372,INVALC,INVALC, - 0x492C,INVALC,INVALC,INVALC,0x5645,INVALC,INVALC,0x686A, - INVALC,INVALC,INVALC,INVALC,0x2558,0x2936,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x214E,0x2223,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2334,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2137,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2335,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2937,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2125,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2224,INVALC,INVALC,INVALC,0x2336,0x2337, - INVALC,INVALC,0x2559,INVALC,0x255A,INVALC,0x2939,0x2938, - 0x293B,0x293A,INVALC,INVALC,0x3373,INVALC,0x2E32,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A48,INVALC,INVALC,0x3A49, - INVALC,INVALC,INVALC,INVALC,0x492D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x653B,INVALC,INVALC,INVALC, - INVALC,0x2138,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5646,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 85, Array index 0x0700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2225, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2340,0x233D,INVALC,INVALC,0x233E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2345,0x233F,INVALC,INVALC, - 0x2344,INVALC,0x233A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2338,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2339, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2341,INVALC,INVALC, - INVALC,0x2343,INVALC,INVALC,INVALC,0x233C,INVALC,0x2346, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2342, - INVALC,INVALC,INVALC,INVALC,0x233B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x256B,0x256A,INVALC,0x256D,0x256F,0x2564,0x2567,0x256E, - INVALC,INVALC,INVALC,0x2561,0x2565,INVALC,INVALC,0x2569, - 0x294A,INVALC,0x294E,INVALC,0x2566,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2562,INVALC,INVALC,INVALC,0x2563,0x255C, - INVALC,0x255D,0x255F,INVALC,INVALC,INVALC,INVALC,0x255B, - 0x2560,INVALC,INVALC,INVALC,INVALC,0x2568,INVALC,INVALC, - INVALC,0x255E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x256C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2949,0x293D,0x294C,INVALC,INVALC,0x293F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x293E,0x2944,INVALC, - 0x2950,INVALC,INVALC,INVALC,INVALC,INVALC,0x2946,0x2943, - INVALC,INVALC,0x293C,INVALC,0x294B,INVALC,0x294D,INVALC, - INVALC,INVALC,INVALC,0x2941,INVALC,0x2947,0x2948,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2940, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2945,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x294F,INVALC, - 0x2E46,INVALC,0x2E34,INVALC,0x2E39,INVALC,INVALC,0x2E37, - INVALC,INVALC,INVALC,0x2E3E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2E41,INVALC,0x2E38,INVALC,INVALC,INVALC,0x2E44, - 0x2E45,INVALC,INVALC,0x2E43,INVALC,INVALC,INVALC,0x2E3B, - /* Block 86, Array index 0x0800 */ - INVALC,INVALC,INVALC,0x2E48,0x2E3C,0x2E40,INVALC,INVALC, - 0x2E3D,INVALC,0x2E42,0x2E49,0x3424,INVALC,0x2E47,INVALC, - INVALC,0x2E3F,0x2E36,INVALC,INVALC,INVALC,INVALC,0x2E35, - INVALC,INVALC,0x2E3A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2E33,INVALC, - INVALC,INVALC,0x337A,INVALC,INVALC,0x342A,INVALC,INVALC, - 0x3421,INVALC,0x3425,INVALC,0x3379,0x337E,0x337D,INVALC, - INVALC,0x3428,INVALC,0x342B,0x3376,INVALC,INVALC,INVALC, - 0x342C,INVALC,INVALC,INVALC,INVALC,0x3423,INVALC,INVALC, - 0x3429,INVALC,INVALC,0x342D,INVALC,0x3377,0x3427,INVALC, - 0x3378,0x337B,0x3422,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x337C,INVALC,INVALC,0x3426,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3374,0x3375,0x3A4E, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3A59,INVALC,0x3A5C, - INVALC,0x3A55,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A52,INVALC,INVALC,INVALC,0x3A5A,0x417C,0x3A5F,0x3A53, - INVALC,0x3A4A,0x3A57,0x3A51,INVALC,0x3A5D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3A5E,0x3A50,0x3A56,0x3A58,0x3A4C,0x3A5B,INVALC, - 0x3A4B,INVALC,INVALC,INVALC,INVALC,0x3A4D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3A54,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x417A, - 0x4176,INVALC,0x4227,0x416F,0x4178,INVALC,INVALC,INVALC, - 0x4223,INVALC,0x4174,0x4173,0x4171,0x4225,INVALC,0x417D, - 0x4172,INVALC,0x417B,INVALC,0x4177,0x417E,0x4222,INVALC, - INVALC,0x4226,INVALC,0x4170,INVALC,0x4175,INVALC,INVALC, - INVALC,INVALC,0x4221,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4179,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4224,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x493C,0x4938,INVALC,0x4932,INVALC,INVALC,0x493B, - /* Block 87, Array index 0x0900 */ - INVALC,0x4935,0x4937,INVALC,0x493A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4930,INVALC,INVALC,0x4933, - INVALC,INVALC,0x4931,0x4936,INVALC,0x492F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4934,0x4939,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x492E, - INVALC,INVALC,0x4F6E,INVALC,0x4F6B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4F69,INVALC,0x4F61,INVALC,INVALC, - 0x4F6D,INVALC,0x4F6F,INVALC,INVALC,0x4F6A,0x4F6C,INVALC, - 0x4F68,0x4F62,0x4F5F,INVALC,INVALC,0x3A4F,0x4F65,INVALC, - 0x4F5E,0x4F64,0x4F63,INVALC,0x4F60,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4F66,INVALC,0x4F67,INVALC,INVALC,INVALC,0x564F,INVALC, - 0x5648,INVALC,INVALC,0x564C,INVALC,INVALC,0x564B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x564D,0x5649,INVALC, - 0x5647,INVALC,0x564E,0x564A,INVALC,INVALC,INVALC,0x5650, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C52,0x5C54, - INVALC,0x5C55,0x5C53,0x5C51,0x5C50,INVALC,0x5C4F,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5C4D,0x5C4E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C4C,INVALC,INVALC,INVALC,0x6148, - 0x6146,0x614B,0x6149,INVALC,0x6147,0x614A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x653E,0x653F, - INVALC,INVALC,0x6540,0x653C,0x6541,0x653D,INVALC,INVALC, - INVALC,INVALC,0x686B,0x686D,INVALC,0x686C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6B53,0x6B54,INVALC, - INVALC,INVALC,INVALC,0x6B52,INVALC,0x6D46,0x6D45,INVALC, - INVALC,INVALC,INVALC,0x6D47,INVALC,0x7034,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7033,0x707C,INVALC,INVALC,0x212A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2227, - INVALC,0x2226,INVALC,INVALC,INVALC,0x2349,INVALC,0x2348, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2347,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2570, - INVALC,0x2571,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 88, Array index 0x0A00 */ - INVALC,0x2E4A,0x2E4B,INVALC,INVALC,INVALC,INVALC,0x342F, - INVALC,INVALC,0x342E,INVALC,0x3A60,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4228,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F70,0x5652,0x5651,INVALC,0x715A,INVALC, - 0x2139,INVALC,0x214F,0x2150,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2229,INVALC,INVALC,INVALC,0x2228,INVALC, - INVALC,INVALC,INVALC,INVALC,0x222A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x234A,INVALC,INVALC,INVALC,0x234B,INVALC,INVALC, - INVALC,0x234D,INVALC,0x234E,0x234C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x234F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x257E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2621,INVALC,INVALC,0x2575,INVALC,0x2574,INVALC,0x2572, - 0x2577,0x2576,0x2573,0x257C,0x257D,0x257A,0x2578,INVALC, - INVALC,INVALC,INVALC,0x257B,INVALC,0x2622,INVALC,INVALC, - 0x2579,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2955,INVALC,INVALC,0x295B, - INVALC,INVALC,INVALC,INVALC,0x2959,0x295F,INVALC,0x2956, - 0x295A,0x295C,0x295E,0x2958,INVALC,0x2957,0x2952,0x2953, - INVALC,INVALC,INVALC,INVALC,0x2954,0x295D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2951,0x2E55,INVALC, - 0x2E54,0x2E59,0x2E50,INVALC,0x2E53,0x2E52,INVALC,0x2E56, - INVALC,0x2E5A,INVALC,INVALC,INVALC,INVALC,0x2E51,0x2E57, - INVALC,INVALC,INVALC,INVALC,0x2E4C,INVALC,INVALC,0x343D, - 0x2E58,INVALC,0x2E4F,INVALC,INVALC,0x2E4E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3434,INVALC,INVALC,INVALC, - INVALC,0x3444,0x3432,0x3440,INVALC,0x3442,INVALC,0x3448, - INVALC,0x344C,INVALC,INVALC,0x3443,0x3437,0x343F,INVALC, - 0x344D,0x344B,0x3441,0x343C,0x3435,0x3A68,0x3433,INVALC, - 0x343A,INVALC,INVALC,0x3430,0x3446,0x3438,INVALC,INVALC, - /* Block 89, Array index 0x0B00 */ - 0x3436,0x3449,INVALC,INVALC,0x344F,INVALC,INVALC,0x343E, - 0x3439,INVALC,INVALC,0x343B,0x344A,0x344E,0x3445,INVALC, - 0x3447,INVALC,INVALC,INVALC,0x3431,INVALC,INVALC,INVALC, - INVALC,0x3A63,INVALC,0x3A6C,0x3A6B,INVALC,0x3A64,INVALC, - INVALC,INVALC,INVALC,0x3A66,INVALC,0x3A6A,INVALC,0x3A65, - 0x3A67,0x3A61,INVALC,INVALC,0x3A74,0x3A73,0x3A70,INVALC, - INVALC,INVALC,0x2E4D,0x3A6D,INVALC,INVALC,0x3A6F,0x3A62, - 0x3A72,0x3A71,INVALC,0x3A75,INVALC,0x4236,INVALC,0x3A6E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A69,0x422E,INVALC,INVALC,INVALC,0x422D,0x4231,0x422C, - INVALC,INVALC,INVALC,0x4229,INVALC,0x4230,INVALC,INVALC, - INVALC,0x4233,INVALC,0x4235,INVALC,0x4232,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4237,0x422B,0x4234,INVALC,INVALC, - 0x422A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x422F, - INVALC,0x4238,INVALC,INVALC,0x4944,INVALC,0x494A,INVALC, - INVALC,INVALC,0x4946,0x494D,0x493E,INVALC,INVALC,0x4943, - INVALC,0x4942,0x494B,INVALC,INVALC,INVALC,0x4941,0x4947, - 0x494C,0x493D,INVALC,0x4945,INVALC,INVALC,0x4949,0x494F, - 0x493F,0x4948,INVALC,INVALC,0x494E,INVALC,INVALC,INVALC, - 0x4940,INVALC,INVALC,INVALC,INVALC,0x4F72,INVALC,INVALC, - 0x4F74,0x4F79,INVALC,0x4F75,INVALC,0x4F78,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4F71,0x4F77,INVALC,INVALC,0x4F76, - INVALC,0x4F73,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5657,INVALC,0x5659,0x5654,INVALC,0x5656, - INVALC,INVALC,0x5658,INVALC,INVALC,INVALC,0x565A,INVALC, - 0x5653,0x5655,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C58, - INVALC,INVALC,0x5C59,INVALC,0x5C57,INVALC,0x5C56,INVALC, - INVALC,INVALC,0x6542,0x6544,INVALC,0x6543,INVALC,INVALC, - INVALC,INVALC,INVALC,0x686E,INVALC,INVALC,INVALC,0x6F22, - 0x6F21,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2960,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4239,INVALC,0x4950,0x4F7A, - /* Block 90, Array index 0x0C00 */ - INVALC,INVALC,INVALC,0x213A,INVALC,INVALC,0x2350,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2623,0x2961,0x2E5B,INVALC, - INVALC,INVALC,0x6545,INVALC,INVALC,INVALC,INVALC,0x2151, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x213B,INVALC,INVALC,0x2152, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x222B,INVALC,INVALC,INVALC, - 0x2351,INVALC,INVALC,INVALC,INVALC,0x2624,INVALC,INVALC, - INVALC,INVALC,0x2E5C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2962,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3450,INVALC,INVALC,INVALC, - INVALC,0x3A76,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4951,INVALC,INVALC,INVALC,INVALC, - 0x614C,0x6D48,0x6F23,INVALC,INVALC,INVALC,INVALC,0x2231, - INVALC,INVALC,INVALC,0x222F,0x222D,INVALC,0x2230,0x2232, - 0x222C,INVALC,INVALC,INVALC,INVALC,0x222E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2356,0x2359, - 0x2358,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2355, - 0x2353,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2354,0x235B,0x2357,INVALC,INVALC,INVALC,0x2352,0x235A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2630,0x2629,INVALC,0x2634,0x2625,0x262C,INVALC, - INVALC,INVALC,0x2626,INVALC,0x262D,0x2631,INVALC,INVALC, - 0x2632,0x262B,INVALC,0x262E,INVALC,INVALC,INVALC,0x2635, - 0x2633,INVALC,INVALC,INVALC,0x262A,INVALC,0x2628,0x2627, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x262F,INVALC, - INVALC,INVALC,INVALC,0x2970,INVALC,0x2968,0x2964,INVALC, - 0x2974,0x2963,INVALC,INVALC,0x296D,INVALC,INVALC,INVALC, - INVALC,0x2971,INVALC,INVALC,INVALC,0x2977,0x2965,INVALC, - INVALC,0x2967,0x296E,0x2972,0x2976,0x2973,0x296C,0x296F, - INVALC,INVALC,0x2969,INVALC,0x296B,0x296A,0x2975,INVALC, - /* Block 91, Array index 0x0D00 */ - 0x2966,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2E64,INVALC,INVALC,INVALC,INVALC,0x2E62, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2E61,0x2E5E,0x2E63, - INVALC,0x2E5D,INVALC,INVALC,INVALC,INVALC,0x2E65,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2E5F,0x2E60,INVALC, - INVALC,INVALC,INVALC,0x2E66,INVALC,0x3457,INVALC,0x3B26, - 0x3456,0x3469,INVALC,INVALC,INVALC,INVALC,0x3467,INVALC, - INVALC,INVALC,0x3470,0x3460,0x3463,INVALC,INVALC,0x346D, - 0x3465,INVALC,INVALC,INVALC,0x346A,0x3468,INVALC,INVALC, - 0x3459,0x346E,0x3462,0x345D,INVALC,0x3453,0x346F,0x345F, - 0x3452,INVALC,INVALC,0x3464,0x3471,0x3461,0x3455,0x345A, - 0x3451,INVALC,INVALC,INVALC,0x345E,0x345B,INVALC,0x3454, - INVALC,0x346C,INVALC,INVALC,0x345C,0x3458,INVALC,INVALC, - 0x346B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A7D,INVALC,0x3A7A,0x3B2D,0x3B21,0x3B2E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3B2A,0x3B27,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3B28,0x3B2B,0x3B2F,INVALC,0x3466,0x3B31, - 0x424D,INVALC,INVALC,0x3B32,0x3A78,0x3B24,INVALC,0x3B29, - INVALC,INVALC,INVALC,INVALC,0x3B30,0x3B33,0x3A7C,0x3A79, - INVALC,INVALC,0x3A7B,INVALC,INVALC,0x3B22,0x3A7E,INVALC, - INVALC,0x3B2C,INVALC,INVALC,0x3B23,INVALC,0x3B25,0x3A77, - 0x4241,0x423F,INVALC,INVALC,0x4249,0x4240,0x424A,0x4246, - 0x423E,0x424C,0x423D,0x4244,INVALC,INVALC,INVALC,0x4242, - 0x4247,INVALC,INVALC,INVALC,0x423B,INVALC,0x4245,0x423A, - 0x4243,INVALC,0x4248,0x423C,INVALC,0x424B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4955,INVALC,INVALC, - INVALC,0x4961,0x4957,0x495D,0x4952,0x4960,0x495F,0x4963, - 0x495C,INVALC,0x495B,INVALC,INVALC,0x4954,INVALC,INVALC, - 0x4962,INVALC,0x4956,0x4959,0x495E,0x4958,0x4953,INVALC, - INVALC,INVALC,INVALC,0x495A,0x4F7C,INVALC,0x5021,0x4F7E, - 0x5023,0x5025,INVALC,INVALC,INVALC,0x4F7D,INVALC,0x4F7B, - /* Block 92, Array index 0x0E00 */ - INVALC,0x5026,0x5024,0x5022,INVALC,0x5028,INVALC,0x5027, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5029, - 0x5661,INVALC,INVALC,0x5660,0x565F,INVALC,0x5662,0x565B, - INVALC,0x565C,0x5664,0x565D,INVALC,INVALC,0x5666,INVALC, - 0x5665,0x565E,INVALC,0x5C5D,INVALC,0x5C5B,0x5C60,0x5C5F, - 0x5663,INVALC,INVALC,INVALC,0x5C5E,0x5C5A,0x5C62,0x5C61, - INVALC,INVALC,0x5C5C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x614D,0x6546,0x6547,0x6548, - INVALC,INVALC,INVALC,INVALC,INVALC,0x686F,INVALC,0x6B56, - 0x6B55,INVALC,INVALC,0x6D49,0x6D4A,0x6F24,0x7035,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2233,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2636,INVALC,INVALC,0x2637,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2E67,INVALC,0x3473,INVALC, - INVALC,INVALC,0x3472,INVALC,INVALC,INVALC,INVALC,0x4964, - INVALC,INVALC,INVALC,0x5C63,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2153,INVALC,INVALC,0x2154,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x235C,INVALC, - INVALC,INVALC,0x235D,0x2638,INVALC,0x2639,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2E68, - 0x2978,INVALC,INVALC,INVALC,0x2E6A,0x2E69,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3475,0x3474,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3B39,0x3B36,INVALC,0x3B35,0x3B3A,INVALC, - INVALC,0x3B38,INVALC,INVALC,0x3B37,INVALC,0x424E,INVALC, - 0x424F,0x4250,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4965,INVALC,INVALC,0x4966,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3B34,INVALC,INVALC,INVALC,INVALC,0x5667, - INVALC,0x5C64,0x5C65,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 93, Array index 0x0F00 */ - INVALC,INVALC,INVALC,0x2E6B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3B3B,INVALC,INVALC,INVALC, - 0x213C,INVALC,0x2155,INVALC,INVALC,0x2234,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4251, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2235,INVALC,INVALC, - 0x235E,INVALC,0x235F,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B3C,INVALC,INVALC,0x4252,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2156,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x263A,INVALC,INVALC,0x263B, - INVALC,INVALC,INVALC,INVALC,0x2979,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2E6D,INVALC,0x2E6C,INVALC, - INVALC,0x3476,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4967,INVALC,INVALC,INVALC,0x502A, - INVALC,0x614E,0x614F,INVALC,INVALC,0x7036,0x212B,INVALC, - INVALC,INVALC,INVALC,0x2158,0x2157,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2237,0x2238,0x2236,INVALC,0x2239,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2367,INVALC, - 0x2362,0x2364,0x2366,0x2363,INVALC,0x2360,INVALC,0x2361, - INVALC,INVALC,0x2365,0x2368,INVALC,0x2369,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2649,INVALC,0x2643, - 0x263E,INVALC,0x2646,0x2644,0x263D,0x264A,0x264D,0x2648, - 0x2641,INVALC,0x2647,INVALC,0x2642,0x2645,0x263C,0x2640, - 0x264C,INVALC,INVALC,INVALC,INVALC,0x263F,0x264B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2A2C,0x2A25, - 0x2A2B,0x2A24,0x2A26,0x297E,0x297C,INVALC,0x2A2D,0x2A2A, - 0x297A,INVALC,INVALC,0x2A28,0x2A29,INVALC,0x2A27,0x297D, - 0x297B,INVALC,0x2A23,0x2A21,INVALC,INVALC,0x2A22,0x2A2E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2E6E,INVALC,0x2E70,INVALC, - INVALC,0x2E71,INVALC,INVALC,INVALC,INVALC,INVALC,0x2E72, - 0x2A2F,0x2E74,INVALC,INVALC,INVALC,INVALC,INVALC,0x2E6F, - /* Block 94, Array index 0x1000 */ - 0x2E73,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3478,0x347C,0x347E,INVALC,0x3523, - INVALC,INVALC,0x3525,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x347A,INVALC,INVALC,0x3479,0x3477,0x3527, - 0x347B,INVALC,INVALC,0x3526,INVALC,0x3522,0x3521,INVALC, - 0x347D,INVALC,INVALC,INVALC,INVALC,INVALC,0x3528,INVALC, - 0x3524,0x3B4B,0x3B52,0x3B47,INVALC,0x3B43,0x3B53,0x3B3D, - 0x3B50,0x3B4E,0x3B48,INVALC,0x3B51,0x3B4A,INVALC,0x3B42, - 0x3B54,0x3B40,0x3B4D,0x3B3E,INVALC,0x3B55,INVALC,INVALC, - INVALC,0x3B4F,0x4255,0x3B41,INVALC,INVALC,0x3B45,INVALC, - INVALC,0x3B44,0x3B49,INVALC,INVALC,0x3B46,INVALC,INVALC, - INVALC,0x3B4C,INVALC,INVALC,INVALC,INVALC,0x4259,INVALC, - INVALC,INVALC,0x425C,0x4254,INVALC,0x4256,INVALC,0x425B, - 0x425A,INVALC,INVALC,0x3B3F,0x4258,INVALC,INVALC,INVALC, - INVALC,0x4253,0x4257,INVALC,INVALC,INVALC,INVALC,0x496E, - INVALC,0x4975,0x496C,INVALC,0x4973,0x496A,0x4972,0x4976, - 0x4969,0x496D,0x4968,INVALC,INVALC,INVALC,0x496B,INVALC, - 0x4971,0x4970,0x496F,INVALC,INVALC,0x4974,INVALC,INVALC, - INVALC,INVALC,0x502E,0x5030,INVALC,0x5031,INVALC,0x502C, - INVALC,0x502B,0x5035,INVALC,0x5033,INVALC,0x5036,0x502D, - 0x5032,0x5034,0x502F,INVALC,INVALC,INVALC,INVALC,0x566B, - 0x5670,0x566A,0x566F,INVALC,0x5668,0x5672,0x566E,0x5673, - 0x566D,0x5669,0x5671,INVALC,0x5674,0x566C,INVALC,0x5C66, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6150,INVALC,0x643E,0x6549,INVALC,INVALC,0x6870,0x6871, - INVALC,INVALC,INVALC,0x6B57,INVALC,INVALC,INVALC,0x6B58, - INVALC,0x6D4C,INVALC,INVALC,INVALC,0x6D4B,INVALC,INVALC, - 0x6F25,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x223A, - 0x236A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x425D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2A30,INVALC,INVALC,INVALC,INVALC,INVALC,0x213D, - /* Block 95, Array index 0x1100 */ - INVALC,INVALC,INVALC,INVALC,0x2159,INVALC,INVALC,INVALC, - INVALC,INVALC,0x236B,INVALC,INVALC,INVALC,0x236C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x264F,INVALC,INVALC,0x264E, - INVALC,0x2650,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2A34,0x2A31,0x2A32,0x2A33,0x2A35,INVALC,INVALC,INVALC, - 0x2E76,0x2E75,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x352A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3529,INVALC, - INVALC,0x3B57,INVALC,INVALC,0x3B56,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4260,0x4262,INVALC,0x4261,0x425F,0x425E, - INVALC,INVALC,INVALC,0x4979,INVALC,INVALC,INVALC,INVALC, - 0x4977,0x4978,INVALC,INVALC,0x503A,0x5038,INVALC,INVALC, - 0x5039,INVALC,INVALC,INVALC,INVALC,INVALC,0x5677,0x5675, - 0x5676,0x5037,0x5C68,INVALC,0x5C67,0x6151,0x6152,0x5678, - 0x654A,INVALC,INVALC,INVALC,INVALC,0x223B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x215A,INVALC,0x215B,INVALC,0x223C,INVALC,INVALC,INVALC, - 0x2370,0x236E,INVALC,0x236D,0x236F,0x2371,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2A39,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2A38,0x2A3A,0x2A37,0x2A3B,INVALC,INVALC, - 0x2E77,INVALC,0x2E79,INVALC,0x2E7A,INVALC,0x2E78,INVALC, - 0x2A36,0x352B,0x352E,0x352F,0x352C,INVALC,INVALC,INVALC, - INVALC,0x352D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4263,0x4265,0x4267, - INVALC,INVALC,INVALC,0x4266,0x4264,INVALC,0x497D,INVALC, - INVALC,0x497B,0x4A23,INVALC,0x4A24,0x4A21,INVALC,0x497C, - 0x497A,0x4A22,INVALC,0x503C,0x497E,INVALC,0x503D,INVALC, - INVALC,0x503E,INVALC,INVALC,INVALC,0x567D,0x567B,0x567A, - 0x567C,0x5679,INVALC,INVALC,INVALC,INVALC,0x6872,0x6873, - INVALC,0x6B59,0x6D4D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 96, Array index 0x1200 */ - INVALC,INVALC,0x223D,INVALC,INVALC,0x2372,INVALC,0x2A3C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x223E,INVALC,INVALC,0x2373,INVALC,INVALC, - INVALC,INVALC,0x2652,0x2653,0x2654,INVALC,INVALC,INVALC, - 0x2651,INVALC,INVALC,INVALC,INVALC,INVALC,0x2A3D,INVALC, - 0x2E7C,INVALC,INVALC,0x2E7B,INVALC,INVALC,0x3530,INVALC, - 0x3531,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4268,INVALC,INVALC,0x4A26,0x4A25,INVALC,INVALC,INVALC, - INVALC,0x503F,INVALC,0x567E,INVALC,INVALC,INVALC,0x6F27, - INVALC,INVALC,INVALC,INVALC,0x2655,INVALC,0x2A3E,INVALC, - 0x3B58,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2E7D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A27, - INVALC,INVALC,INVALC,0x212C,0x223F,INVALC,0x2375,INVALC, - 0x2374,INVALC,INVALC,INVALC,INVALC,0x2658,0x2657,INVALC, - INVALC,INVALC,0x2656,INVALC,INVALC,INVALC,0x2A3F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3533,INVALC, - INVALC,INVALC,INVALC,0x3532,INVALC,INVALC,INVALC,0x3534, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3B5A,0x3B59,INVALC, - INVALC,INVALC,INVALC,0x3B5B,INVALC,0x426A,INVALC,0x4269, - INVALC,INVALC,0x5040,INVALC,INVALC,INVALC,0x4A28,INVALC, - INVALC,INVALC,INVALC,0x5722,0x5721,INVALC,0x5C69,0x654B, - 0x6874,0x6875,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x215C,INVALC,INVALC,INVALC,INVALC,INVALC,0x2242, - 0x2378,0x2377,0x2376,INVALC,0x2241,0x2240,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2659,INVALC, - INVALC,0x237D,INVALC,0x2421,0x237E,0x265A,INVALC,INVALC, - 0x237A,INVALC,INVALC,INVALC,INVALC,0x2379,0x237B,0x2423, - INVALC,INVALC,INVALC,0x237C,0x2427,INVALC,INVALC,0x2424, - INVALC,INVALC,0x2422,0x2425,INVALC,INVALC,INVALC,INVALC, - /* Block 97, Array index 0x1300 */ - 0x2426,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x266E,0x2661,0x265F,0x266D,0x2668,INVALC,INVALC, - 0x2669,0x266C,INVALC,0x266B,INVALC,INVALC,INVALC,0x2662, - INVALC,0x265D,0x2664,INVALC,0x266F,INVALC,0x2665,INVALC, - INVALC,INVALC,0x2667,INVALC,0x2A4E,INVALC,0x265C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2666,0x265B,0x266A,INVALC, - INVALC,INVALC,0x265E,0x2663,0x2660,INVALC,INVALC,0x2A40, - INVALC,0x2A41,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2A4B,0x2F23,0x2A4C,INVALC,0x2A4F,0x2A45,INVALC,0x2A47, - INVALC,0x2A48,INVALC,INVALC,0x2A4A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2A46,0x2A42,INVALC,INVALC,INVALC, - 0x2A50,INVALC,0x2F21,0x2A49,INVALC,0x2E7E,0x2A44,0x2A4D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2A51,0x2F22, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2A52,INVALC, - INVALC,INVALC,0x2A43,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2F26,0x2F28,INVALC,0x2F2A,INVALC,INVALC,0x3537,0x2F2E, - 0x2F25,INVALC,0x3535,INVALC,INVALC,INVALC,0x2F30,INVALC, - 0x3536,INVALC,0x2F27,INVALC,INVALC,0x2F2B,INVALC,0x2F2D, - INVALC,INVALC,INVALC,0x2F2C,0x2F2F,0x2F29,INVALC,INVALC, - INVALC,INVALC,0x2F24,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3539,0x3542,INVALC,INVALC,INVALC,INVALC,INVALC,0x3544, - INVALC,0x3B5D,0x353A,INVALC,INVALC,INVALC,0x3538,0x3546, - 0x3549,0x3B6C,INVALC,0x3547,0x3B61,INVALC,INVALC,INVALC, - 0x3541,0x3B5C,0x3545,INVALC,0x3B5E,0x3548,0x3B60,0x353D, - INVALC,INVALC,INVALC,0x353B,0x353C,INVALC,INVALC,INVALC, - INVALC,0x353F,INVALC,0x3543,INVALC,0x3540,INVALC,INVALC, - INVALC,INVALC,0x3B5F,INVALC,0x353E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3B63,INVALC,INVALC,0x3B67,INVALC,0x426B, - 0x3B69,INVALC,INVALC,INVALC,0x3B6A,INVALC,0x3B6B,0x3B71, - /* Block 98, Array index 0x1400 */ - INVALC,INVALC,INVALC,0x3B6D,0x3B72,0x3B66,INVALC,INVALC, - INVALC,INVALC,0x3B64,0x3B73,INVALC,INVALC,INVALC,INVALC, - 0x3B70,INVALC,INVALC,0x3B68,0x3B62,INVALC,0x3B65,INVALC, - 0x3B6E,INVALC,INVALC,INVALC,INVALC,0x3B6F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4A2A,0x4276,INVALC,0x426E,0x4A29,INVALC,0x4272,0x4274, - INVALC,INVALC,0x4271,INVALC,INVALC,INVALC,0x4270,INVALC, - INVALC,INVALC,INVALC,0x4A39,INVALC,INVALC,INVALC,INVALC, - 0x4277,0x4A2B,INVALC,INVALC,INVALC,0x426F,0x4273,INVALC, - INVALC,0x426C,0x426D,INVALC,INVALC,INVALC,INVALC,0x4275, - INVALC,INVALC,0x4A2F,0x4A30,0x4A35,INVALC,0x4A3C,INVALC, - INVALC,INVALC,INVALC,0x4A37,INVALC,INVALC,0x4A2C,INVALC, - INVALC,0x4A3B,INVALC,INVALC,INVALC,0x4A38,0x5051,INVALC, - INVALC,INVALC,0x4A3A,INVALC,0x4A32,INVALC,INVALC,INVALC, - INVALC,0x4A2D,0x4A31,0x4A2E,0x4A34,INVALC,INVALC,INVALC, - INVALC,0x5043,0x4A36,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4A33,INVALC,INVALC,0x5042,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5047,INVALC,0x5041,0x572E,0x5050,INVALC,INVALC, - INVALC,INVALC,0x504D,0x5049,INVALC,INVALC,0x5725,INVALC, - INVALC,INVALC,INVALC,0x5048,INVALC,0x5723,INVALC,0x504C, - INVALC,0x504F,0x5046,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5724,INVALC,0x504E,INVALC,INVALC,0x504B,INVALC,0x504A, - 0x5045,0x5044,INVALC,0x5052,0x5727,0x5C6B,INVALC,INVALC, - 0x572D,INVALC,0x572B,INVALC,0x5C6C,INVALC,INVALC,0x572C, - INVALC,0x5729,INVALC,0x5C6A,INVALC,0x5726,0x5728,INVALC, - INVALC,INVALC,INVALC,INVALC,0x572A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x615B,INVALC, - 0x6153,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C72,0x6154, - 0x5C6E,INVALC,INVALC,INVALC,0x5C70,0x5C6F,INVALC,0x5C6D, - 0x5C71,0x615C,0x6158,0x615A,INVALC,0x6155,0x6156,INVALC, - 0x6159,0x6157,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6876,INVALC,0x654C,INVALC,0x6B5A,INVALC,INVALC, - /* Block 99, Array index 0x1500 */ - INVALC,0x6F28,INVALC,0x6F29,0x6F2A,INVALC,INVALC,0x722A, - INVALC,0x215D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2670,INVALC,INVALC,INVALC, - INVALC,0x2F31,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4278,INVALC,INVALC,0x427A,0x427C,0x427B,INVALC,0x4A3E, - INVALC,0x4A3D,INVALC,0x4A3F,INVALC,0x5053,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2428,INVALC,INVALC,0x2671,INVALC,INVALC, - INVALC,INVALC,0x2A53,0x2A54,INVALC,INVALC,0x2F32,INVALC, - INVALC,INVALC,0x3B74,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x215E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2249,0x224B,INVALC,0x2243,INVALC,0x2244,INVALC, - 0x224A,0x2246,0x2248,INVALC,0x2245,0x224C,0x2247,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2432,0x242F,0x2437,INVALC,0x2438,INVALC,INVALC,0x2435, - INVALC,INVALC,0x2431,0x2430,INVALC,0x2436,INVALC,INVALC, - INVALC,0x2433,INVALC,0x2429,INVALC,INVALC,INVALC,0x242E, - 0x2434,INVALC,INVALC,INVALC,0x242A,INVALC,0x242B,0x242C, - INVALC,INVALC,INVALC,INVALC,0x242D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x267D,0x2676,INVALC,INVALC,0x2672,0x2679,0x267B, - 0x267E,INVALC,INVALC,0x267A,0x2673,INVALC,0x2677,INVALC, - 0x2721,INVALC,INVALC,0x267C,INVALC,INVALC,0x2675,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2678,INVALC,INVALC,INVALC,INVALC,0x2A55, - INVALC,0x2674,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2A5B,INVALC,INVALC,INVALC,INVALC, - 0x2A67,INVALC,0x2F33,INVALC,INVALC,0x2A58,0x2A60,INVALC, - 0x2A5F,0x2A5C,0x2A64,0x2A66,INVALC,INVALC,INVALC,INVALC, - /* Block 100, Array index 0x1600 */ - 0x2A61,INVALC,INVALC,0x2A5A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2A57,0x2A5E,0x2A56,0x2A59,0x2A5D, - 0x2F34,INVALC,INVALC,0x2A62,0x2A63,0x2A65,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2F40,INVALC,INVALC,0x2F36,0x2F46,INVALC,INVALC, - INVALC,INVALC,0x354A,0x2F48,0x2F42,INVALC,0x2F39,INVALC, - 0x2F4B,0x2F3C,INVALC,0x3561,0x2F3F,INVALC,INVALC,INVALC, - 0x2F4D,0x2F41,INVALC,0x2F3A,0x2F37,0x2F38,INVALC,0x2F47, - 0x2F4E,INVALC,0x2F3E,0x2F3D,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2F4A,INVALC,INVALC,0x2F44,INVALC,0x2F35,0x2F4C, - 0x2F43,0x2F45,0x2F49,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x354B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x355D,0x3559,0x3556, - 0x3568,INVALC,INVALC,INVALC,INVALC,0x355B,INVALC,INVALC, - 0x3563,INVALC,INVALC,INVALC,0x355F,0x354E,INVALC,INVALC, - INVALC,0x3565,0x354D,INVALC,INVALC,0x3564,INVALC,0x3557, - INVALC,INVALC,0x354C,INVALC,INVALC,0x3567,0x3555,INVALC, - 0x3558,0x3566,INVALC,INVALC,0x3B75,INVALC,INVALC,0x3553, - INVALC,INVALC,INVALC,INVALC,0x355C,0x3552,0x3550,0x3562, - INVALC,INVALC,INVALC,INVALC,0x3560,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3554,INVALC,0x3551,0x355E,0x355A, - 0x3B77,0x3B76,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x354F,0x3C29,INVALC, - INVALC,INVALC,0x3C2F,0x3B7C,0x3C2C,0x427D,INVALC,0x3C30, - 0x3C33,INVALC,0x3C21,0x3C32,0x3C31,INVALC,0x3B78,INVALC, - INVALC,INVALC,INVALC,0x3C2E,INVALC,0x3C24,INVALC,0x3C35, - 0x3C2D,0x3C36,INVALC,INVALC,0x3C2B,0x3C2A,INVALC,0x3C28, - 0x3C22,INVALC,INVALC,INVALC,0x2F3B,0x3B79,INVALC,0x433D, - 0x3B7A,INVALC,INVALC,0x4321,INVALC,INVALC,INVALC,0x3B7B, - 0x3C34,0x427E,0x3C25,0x3B7E,INVALC,0x3C26,0x3C23,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 101, Array index 0x1700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4324,0x4337,0x433C,0x4330,INVALC,0x4341,INVALC, - 0x4322,INVALC,0x4323,INVALC,INVALC,0x432A,INVALC,INVALC, - 0x432B,INVALC,0x4338,0x433E,INVALC,INVALC,INVALC,0x4329, - 0x4325,0x4340,0x432E,0x432F,0x4326,0x433A,0x4331,0x433B, - 0x4333,INVALC,INVALC,0x4A40,INVALC,INVALC,0x433F,0x4336, - 0x4332,INVALC,INVALC,0x4327,INVALC,0x4335,INVALC,0x432D, - INVALC,0x432C,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A55, - 0x4339,0x4334,INVALC,0x4328,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4A50,INVALC,0x4A41,0x4A4C,INVALC, - 0x4A53,INVALC,INVALC,0x4A51,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A58,INVALC,0x4A42,0x4A4F,0x4A43,0x4A4E,INVALC, - 0x4A52,0x3C27,INVALC,INVALC,INVALC,0x4A59,0x4A4A,INVALC, - 0x5061,INVALC,INVALC,0x4A57,0x4A56,INVALC,0x5054,INVALC, - 0x5055,INVALC,0x4A46,0x4A47,0x4A44,0x4A49,0x4A45,0x4A5A, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4A48,INVALC,0x4A54, - INVALC,INVALC,0x4A4D,INVALC,INVALC,0x5058,INVALC,INVALC, - INVALC,0x5735,0x505D,0x505C,0x505E,INVALC,INVALC,0x505B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5056,0x5059, - 0x5063,INVALC,INVALC,INVALC,0x505A,0x3B7D,INVALC,0x5060, - 0x5057,INVALC,INVALC,0x505F,INVALC,INVALC,0x4A4B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5062,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5734,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5736,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5733,INVALC,INVALC,INVALC,INVALC,INVALC,0x5732, - 0x5731,INVALC,INVALC,INVALC,INVALC,INVALC,0x5730,0x572F, - INVALC,0x5739,INVALC,0x5737,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C75,0x5C77,INVALC,INVALC,INVALC, - 0x5C78,0x5C74,INVALC,0x5C76,INVALC,INVALC,INVALC,0x5C73, - INVALC,INVALC,INVALC,0x5738,INVALC,INVALC,INVALC,INVALC, - 0x6160,INVALC,INVALC,INVALC,0x6163,0x615F,INVALC,0x615D, - /* Block 102, Array index 0x1800 */ - INVALC,0x6161,INVALC,0x6162,0x615E,INVALC,INVALC,0x654D, - INVALC,0x6550,INVALC,INVALC,0x6551,0x654F,0x6552,INVALC, - 0x654E,INVALC,INVALC,0x687A,INVALC,0x6879,0x6878,0x6877, - INVALC,INVALC,INVALC,0x6B5B,INVALC,INVALC,INVALC,INVALC, - 0x6D4F,0x6D4E,0x6D51,INVALC,INVALC,0x6F2C,0x6D50,INVALC, - INVALC,0x6F2B,INVALC,INVALC,INVALC,0x7037,0x707D,INVALC, - INVALC,INVALC,0x3C37,0x573A,INVALC,INVALC,INVALC,0x224D, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2722,INVALC,INVALC, - INVALC,0x2A68,INVALC,0x2A69,INVALC,INVALC,0x2F50,INVALC, - INVALC,INVALC,0x2F4F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3569,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C3B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C3A,0x3C3D,INVALC,0x3C38, - 0x3C3C,INVALC,0x3C39,INVALC,INVALC,INVALC,INVALC,0x4342, - INVALC,INVALC,INVALC,0x4A5B,INVALC,INVALC,0x5064,INVALC, - INVALC,0x5066,0x5065,0x5067,0x573C,INVALC,INVALC,0x573B, - 0x5C7A,0x5C79,INVALC,INVALC,0x6553,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C3E,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4343,INVALC,0x6164,INVALC,0x6F2D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3C3F,0x3C40,INVALC, - 0x4A5C,INVALC,0x573D,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2723,INVALC,0x2A6A,INVALC,INVALC,INVALC,0x3C41,INVALC, - INVALC,INVALC,0x5068,0x5069,INVALC,INVALC,0x5C7B,INVALC, - 0x707E,INVALC,INVALC,0x2724,INVALC,INVALC,INVALC,0x2A6B, - INVALC,INVALC,0x2F54,0x2F52,0x2F53,INVALC,0x2F51,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x356A,INVALC,INVALC, - 0x3C42,INVALC,0x3C43,0x4344,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5C7C,0x6165,INVALC,0x6555,0x6554,0x687B, - INVALC,0x213E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x224F,0x224E, - 0x2439,INVALC,0x243C,0x243B,0x243A,0x243D,INVALC,INVALC, - INVALC,INVALC,INVALC,0x272A,0x2726,0x272F,INVALC,INVALC, - /* Block 103, Array index 0x1900 */ - INVALC,INVALC,INVALC,0x272B,0x2727,0x272E,INVALC,INVALC, - 0x2729,0x2725,INVALC,0x272C,INVALC,0x272D,INVALC,INVALC, - 0x2731,0x2730,0x2728,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2A70,0x2A76,INVALC,INVALC, - INVALC,0x2A6D,0x2A72,INVALC,INVALC,INVALC,0x2A71,INVALC, - INVALC,INVALC,INVALC,0x2A74,INVALC,INVALC,0x2A79,INVALC, - INVALC,INVALC,0x2A6E,0x2A73,0x2A77,0x2A6F,0x2A6C,INVALC, - INVALC,0x2A78,0x2A75,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2F57, - INVALC,INVALC,0x2F55,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2F58,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x356E,INVALC,0x356D,0x356F,INVALC,INVALC,0x2F56, - INVALC,0x356C,0x3570,INVALC,INVALC,0x356B,INVALC,INVALC, - INVALC,INVALC,0x3C4A,INVALC,0x3C45,INVALC,INVALC,INVALC, - INVALC,0x3C48,0x3C4B,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x434D,0x3C49,INVALC,0x3C46,0x3C44,INVALC,INVALC,INVALC, - 0x3C47,INVALC,INVALC,INVALC,INVALC,INVALC,0x4345,INVALC, - INVALC,INVALC,0x434A,0x4349,0x4346,INVALC,INVALC,INVALC, - 0x4348,INVALC,INVALC,INVALC,0x434C,0x4347,INVALC,INVALC, - INVALC,0x434B,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A5F, - 0x4A5E,0x4A5D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x506C,0x506F,INVALC,INVALC,INVALC,INVALC,0x5070, - 0x506B,INVALC,0x506D,INVALC,INVALC,0x506A,INVALC,0x506E, - INVALC,INVALC,0x5746,0x5745,INVALC,0x5744,0x573F,INVALC, - 0x5740,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x573E,INVALC,0x5741,0x5742,0x5747,INVALC,INVALC,0x5743, - INVALC,INVALC,0x5C7D,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6168,INVALC,0x6166,0x6167,INVALC,INVALC,0x6556,INVALC, - INVALC,INVALC,INVALC,0x687D,0x687E,INVALC,INVALC,INVALC, - 0x687C,INVALC,INVALC,0x6F2E,INVALC,0x7038,0x7039,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2732,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 104, Array index 0x1A00 */ - INVALC,0x3C4C,INVALC,INVALC,0x4A61,0x4A60,INVALC,INVALC, - INVALC,INVALC,0x2733,INVALC,INVALC,INVALC,INVALC,0x2A7A, - 0x2A7B,INVALC,0x2F59,0x2F5A,INVALC,INVALC,INVALC,INVALC, - 0x3571,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x434E,0x4641,0x4A62,0x5748,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2257,INVALC,INVALC,INVALC,INVALC, - 0x2252,0x2251,0x2254,0x2253,0x2256,INVALC,0x2250,0x2255, - INVALC,INVALC,INVALC,INVALC,INVALC,0x243E,INVALC,0x243F, - 0x2443,INVALC,INVALC,0x2447,0x2442,0x2445,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2441,INVALC,INVALC, - INVALC,0x2440,0x2446,INVALC,INVALC,0x2444,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2735,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x273D,INVALC,0x2738,INVALC, - 0x2747,0x2748,0x2740,0x2739,INVALC,0x2745,INVALC,INVALC, - INVALC,0x2746,INVALC,0x2744,0x273C,0x2734,0x273B,INVALC, - INVALC,INVALC,INVALC,INVALC,0x273F,0x273E,0x2736,INVALC, - INVALC,0x2742,0x2737,INVALC,0x2749,INVALC,INVALC,INVALC, - 0x273A,0x2743,INVALC,INVALC,INVALC,INVALC,INVALC,0x2741, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2B3D,INVALC, - INVALC,INVALC,0x2B38,0x2B2E,INVALC,0x2B2C,INVALC,0x2B27, - INVALC,0x2B34,0x2B21,0x2B23,INVALC,INVALC,INVALC,INVALC, - 0x2B26,0x2A7C,0x2B33,0x2B43,INVALC,0x2B28,0x2B3A,INVALC, - 0x2A7E,0x2B41,0x2B42,0x2B45,0x2B3C,0x2B2D,0x2B35,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2B25,INVALC,INVALC,0x2B3F,0x2B22,INVALC,INVALC,0x2B2B, - INVALC,INVALC,INVALC,0x2B32,0x2B2A,INVALC,0x2B3E,0x2B36, - INVALC,INVALC,0x2B44,0x2B29,INVALC,0x2B3B,0x2B31,INVALC, - 0x2B37,INVALC,0x2A7D,INVALC,INVALC,INVALC,0x2B30,0x2B2F, - 0x2B24,INVALC,0x2B40,INVALC,0x2B39,INVALC,INVALC,INVALC, - /* Block 105, Array index 0x1B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2F6E,INVALC,0x2F6F,INVALC,0x2F63,INVALC, - INVALC,INVALC,0x2F5C,INVALC,0x2F65,0x2F6D,INVALC,0x2F5B, - 0x2F76,INVALC,INVALC,INVALC,INVALC,0x2F75,0x2F70,INVALC, - 0x2F71,INVALC,INVALC,0x2F67,INVALC,0x2F68,0x2F72,0x2F69, - INVALC,0x2F64,0x2F5E,0x2F5F,0x2F6C,0x2F66,INVALC,INVALC, - INVALC,INVALC,0x2F74,0x2F60,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2F6B,INVALC,INVALC,INVALC, - INVALC,0x2F5D,INVALC,0x2F61,INVALC,0x2F73,0x2F6A,0x2F62, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3628,INVALC,0x3576,0x3577,0x357B, - INVALC,0x362C,0x3629,INVALC,0x3622,0x3621,INVALC,0x3625, - 0x3634,0x3572,INVALC,0x3635,0x3627,0x3639,0x362D,INVALC, - 0x362B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3573, - INVALC,0x3632,0x3638,0x3630,0x3637,INVALC,INVALC,0x3624, - 0x3574,0x3636,0x3626,INVALC,INVALC,INVALC,0x362F,INVALC, - INVALC,INVALC,INVALC,0x362E,0x3575,INVALC,INVALC,INVALC, - 0x3631,INVALC,INVALC,0x357C,0x3633,INVALC,INVALC,INVALC, - INVALC,0x357E,0x362A,0x3579,0x357D,INVALC,0x3578,INVALC, - INVALC,INVALC,0x3623,INVALC,0x3C63,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3C66,0x3C7C, - 0x3C71,INVALC,INVALC,INVALC,0x3C60,INVALC,0x3C70,INVALC, - 0x3C69,0x3C76,INVALC,0x3C4E,0x3C78,INVALC,0x3C56,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C50,0x3C72,0x3C73,INVALC, - INVALC,0x3C5E,INVALC,INVALC,0x3C59,INVALC,0x3C74,INVALC, - 0x3C6C,0x3C79,0x3C53,0x3C58,0x3C52,INVALC,INVALC,0x3C65, - 0x4364,0x3C54,INVALC,0x3C5D,0x3C75,INVALC,0x3C5A,0x3C57, - 0x3C68,INVALC,INVALC,INVALC,0x3C6B,0x3C6A,INVALC,INVALC, - /* Block 106, Array index 0x1C00 */ - INVALC,INVALC,INVALC,INVALC,0x3C4F,INVALC,0x3C77,0x3C5F, - 0x3C61,INVALC,0x3C6E,0x3C6D,0x3C4D,INVALC,INVALC,0x3C55, - 0x3C5C,0x3C64,INVALC,0x3C5B,0x3C67,0x3C7A,INVALC,0x3C6F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3C7B,INVALC,INVALC, - INVALC,INVALC,0x3C51,INVALC,INVALC,INVALC,INVALC,0x4378, - INVALC,INVALC,0x4376,0x4361,0x4366,0x435F,INVALC,0x4372, - 0x4351,0x4358,INVALC,0x4370,0x437A,0x4362,INVALC,0x4355, - 0x4368,0x436D,0x4359,INVALC,0x436A,0x4356,INVALC,INVALC, - 0x435D,0x435E,INVALC,0x4371,0x436F,INVALC,0x4352,0x4374, - INVALC,0x4375,0x4377,INVALC,INVALC,INVALC,0x357A,0x435A, - 0x436C,0x435B,INVALC,INVALC,0x4373,INVALC,INVALC,0x4350, - INVALC,INVALC,0x4353,INVALC,INVALC,0x4363,0x434F,INVALC, - INVALC,0x4367,0x4357,INVALC,0x4360,INVALC,INVALC,0x4369, - 0x3C62,0x4354,INVALC,INVALC,0x436E,INVALC,0x436B,INVALC, - 0x4365,INVALC,0x435C,0x4379,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x452C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4A70,0x4A6E,INVALC, - 0x4B26,0x4A6C,INVALC,0x4A7E,INVALC,INVALC,0x4A68,0x4B25, - INVALC,0x4A6D,0x4A7B,INVALC,INVALC,INVALC,0x4B23,INVALC, - 0x4A66,0x4B22,INVALC,INVALC,0x4A77,0x4B29,INVALC,0x4A6F, - INVALC,0x4A71,0x4B21,INVALC,0x4A6A,INVALC,INVALC,0x4A73, - 0x4A69,0x4A63,INVALC,0x4A7D,INVALC,0x4B28,0x4A64,INVALC, - INVALC,0x4A79,INVALC,INVALC,0x4A6B,0x4A76,0x4A72,0x4A74, - INVALC,INVALC,0x4B27,INVALC,0x4A75,INVALC,0x4B2A,INVALC, - INVALC,0x4A65,0x4A7A,INVALC,INVALC,INVALC,0x4A67,0x4A7C, - INVALC,INVALC,INVALC,INVALC,0x4A78,INVALC,INVALC,INVALC, - INVALC,0x4B24,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x507C,INVALC,0x5078,0x5074,0x512A,0x5127, - INVALC,INVALC,INVALC,0x512E,0x507B,INVALC,0x5124,INVALC, - INVALC,0x5077,0x5123,INVALC,0x5137,INVALC,0x5134,0x5126, - 0x5075,INVALC,INVALC,0x512B,0x512D,INVALC,0x5121,0x507A, - /* Block 107, Array index 0x1D00 */ - 0x5071,INVALC,INVALC,INVALC,0x5130,INVALC,0x5072,0x5136, - 0x5129,0x512F,INVALC,INVALC,INVALC,0x512C,INVALC,0x5133, - INVALC,INVALC,INVALC,INVALC,0x5125,0x5076,0x5138,0x5073, - 0x5131,INVALC,INVALC,0x507D,INVALC,0x507E,INVALC,INVALC, - 0x5079,INVALC,INVALC,INVALC,INVALC,0x5132,0x5135,0x5122, - 0x5755,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x574D,INVALC,0x5749,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5757,0x5762,INVALC,0x574F,0x5758, - 0x5128,0x5759,INVALC,INVALC,INVALC,INVALC,0x5768,INVALC, - INVALC,0x574B,INVALC,INVALC,INVALC,0x5766,0x5767,0x575D, - 0x575C,0x5754,INVALC,INVALC,0x575E,0x5765,0x5764,INVALC, - INVALC,INVALC,0x5756,0x5753,INVALC,0x5750,0x5763,INVALC, - 0x5761,INVALC,INVALC,INVALC,0x575B,INVALC,0x574A,0x574C, - 0x574E,0x5760,0x575A,INVALC,INVALC,0x5751,INVALC,0x575F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5752,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D31, - INVALC,0x5D22,INVALC,0x5D2D,INVALC,0x5D34,INVALC,0x5D29, - INVALC,0x5D24,INVALC,INVALC,0x5D35,0x5C7E,0x5D2B,INVALC, - INVALC,0x5D30,0x5D36,0x5D2A,INVALC,0x5D2C,0x5D21,INVALC, - INVALC,INVALC,0x5D33,0x5D26,INVALC,INVALC,0x5D28,0x5D25, - INVALC,0x5D27,INVALC,INVALC,0x5D2F,0x5D23,0x5D32,INVALC, - 0x5D2E,INVALC,INVALC,INVALC,INVALC,0x6173,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6172,INVALC,0x616F,0x6170, - INVALC,0x616A,0x616E,INVALC,INVALC,0x616B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6169,0x616D,0x6171, - INVALC,INVALC,INVALC,0x655C,0x6559,0x6562,INVALC,0x6561, - 0x655F,0x655A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x655B,INVALC,INVALC,0x655E,INVALC,0x6563,0x655D, - 0x6558,0x616C,INVALC,INVALC,INVALC,INVALC,INVALC,0x6557, - 0x6924,INVALC,0x6923,0x6560,INVALC,INVALC,0x6927,0x6928, - 0x6922,0x6926,INVALC,0x6921,INVALC,INVALC,INVALC,INVALC, - 0x6B5F,0x6925,INVALC,INVALC,0x6B5D,INVALC,INVALC,INVALC, - /* Block 108, Array index 0x1E00 */ - 0x6B60,INVALC,0x6B5C,0x6B5E,INVALC,INVALC,INVALC,INVALC, - 0x6D53,0x6D54,INVALC,0x6D52,INVALC,INVALC,INVALC,0x6F31, - INVALC,0x6F2F,0x6F30,0x703A,INVALC,INVALC,INVALC,0x7123, - 0x7121,0x7122,0x7124,INVALC,INVALC,INVALC,0x722B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x274A,INVALC,INVALC, - 0x2B46,INVALC,INVALC,INVALC,0x2F77,0x2F79,INVALC,0x2F78, - INVALC,0x2F7A,INVALC,0x363B,0x2F7B,INVALC,0x363A,0x363C, - 0x363D,0x3C7D,INVALC,0x3C7E,0x3D22,INVALC,INVALC,0x3D21, - INVALC,0x4422,0x437E,0x437D,INVALC,0x437C,0x437B,INVALC, - 0x4421,INVALC,0x4B2B,0x4B2D,INVALC,0x4B2C,INVALC,INVALC, - INVALC,0x5139,INVALC,INVALC,0x576A,0x5769,0x576B,INVALC, - INVALC,INVALC,INVALC,0x5D37,INVALC,INVALC,0x6174,INVALC, - 0x6564,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2F7C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5259,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x274C,INVALC, - 0x274B,INVALC,0x2B47,INVALC,0x2B48,INVALC,INVALC,INVALC, - 0x2F7E,INVALC,INVALC,INVALC,0x3642,0x3640,0x3641,0x363F, - INVALC,0x363E,INVALC,INVALC,0x3D23,0x3D26,INVALC,0x3D24, - INVALC,0x3D25,INVALC,0x4423,INVALC,INVALC,0x4B2E,0x4B2F, - 0x4B30,INVALC,0x513C,0x513B,INVALC,0x513A,0x513D,0x576C, - INVALC,INVALC,0x576D,0x576E,INVALC,0x5D38,INVALC,INVALC, - 0x6565,INVALC,INVALC,0x213F,INVALC,INVALC,0x2B49,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3D27,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4B31,0x4B32,INVALC,INVALC,0x5770, - 0x576F,0x6175,0x6F32,INVALC,0x2140,INVALC,INVALC,INVALC, - 0x2448,INVALC,INVALC,INVALC,INVALC,INVALC,0x2B4A,INVALC, - 0x2B4B,INVALC,INVALC,INVALC,INVALC,INVALC,0x274D,INVALC, - 0x2B4C,INVALC,0x3025,0x3024,0x3022,INVALC,0x3021,0x3026, - 0x3023,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D28,INVALC,0x3D29,0x3D2A,INVALC,INVALC,INVALC,0x4427, - 0x4428,0x4426,INVALC,0x4424,0x4425,INVALC,0x4B33,0x5140, - /* Block 109, Array index 0x1F00 */ - 0x513F,0x513E,0x5141,0x5772,0x5771,INVALC,0x5773,INVALC, - INVALC,0x5D39,INVALC,0x6176,0x6566,0x6D55,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2141,0x215F,INVALC,INVALC, - 0x2258,0x2449,0x244A,INVALC,INVALC,0x274E,INVALC,INVALC, - 0x2B4D,0x2B4E,INVALC,INVALC,INVALC,0x3027,INVALC,INVALC, - INVALC,INVALC,0x3643,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D2B,INVALC,INVALC,INVALC,INVALC,INVALC,0x2160,INVALC, - INVALC,INVALC,INVALC,0x2163,INVALC,INVALC,INVALC,0x2162, - INVALC,INVALC,INVALC,0x2161,INVALC,INVALC,0x2259,INVALC, - INVALC,INVALC,0x225D,0x225F,0x2260,INVALC,INVALC,0x225C, - INVALC,INVALC,0x225A,INVALC,0x225E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x225B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x245B,0x2459,0x244C, - INVALC,0x2453,INVALC,0x244D,INVALC,0x2455,INVALC,0x2452, - INVALC,0x2451,INVALC,0x245A,INVALC,INVALC,INVALC,INVALC, - 0x244B,INVALC,INVALC,0x245C,INVALC,INVALC,INVALC,INVALC, - 0x2765,INVALC,INVALC,INVALC,0x244E,INVALC,INVALC,0x2456, - INVALC,INVALC,0x2763,0x244F,INVALC,INVALC,0x245D,0x2450, - INVALC,INVALC,INVALC,0x274F,INVALC,0x2457,INVALC,INVALC, - INVALC,INVALC,0x2454,INVALC,0x2458,0x2764,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2756,INVALC,INVALC, - 0x276B,INVALC,INVALC,INVALC,0x2762,INVALC,0x2754,0x2758, - INVALC,INVALC,0x275B,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2767,INVALC,0x275A,0x275C,INVALC,INVALC,0x275D,0x276A, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2769,INVALC,0x276D, - 0x2759,0x276F,0x2760,INVALC,0x2755,INVALC,INVALC,INVALC, - INVALC,0x2753,0x2B57,INVALC,INVALC,0x2761,0x2766,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2757, - INVALC,0x276E,INVALC,0x2751,0x2750,0x275E,0x2752,INVALC, - INVALC,INVALC,0x275F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x276C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 110, Array index 0x2000 */ - 0x2B5E,0x2B61,INVALC,0x2B64,0x2B59,INVALC,INVALC,0x2B67, - 0x2B6A,0x2B6C,0x2B56,INVALC,INVALC,0x302C,INVALC,0x2B65, - 0x2B6D,0x2B5D,0x2B55,INVALC,INVALC,INVALC,0x3047,INVALC, - 0x2B62,0x2B5A,0x2B5C,INVALC,INVALC,0x2B5F,INVALC,0x2B52, - 0x2B68,INVALC,0x2B6B,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2B4F,INVALC,INVALC,INVALC,0x2B69,0x2B51,INVALC,0x3041, - 0x2768,INVALC,INVALC,0x2B58,0x2B50,INVALC,INVALC,0x2B63, - INVALC,INVALC,0x2B5B,INVALC,0x2B53,INVALC,INVALC,0x2B54, - 0x2B66,INVALC,0x2B60,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x302F,INVALC,INVALC,INVALC,INVALC,INVALC,0x3038,0x303E, - 0x303A,0x302D,0x3030,0x3029,0x302A,INVALC,INVALC,0x3039, - 0x3042,INVALC,INVALC,INVALC,INVALC,0x3031,INVALC,0x3032, - 0x303C,INVALC,INVALC,INVALC,INVALC,0x304B,0x302B,INVALC, - INVALC,INVALC,0x3028,0x3049,0x303D,0x304A,0x3044,0x3036, - 0x3045,INVALC,0x303F,0x3048,0x3046,INVALC,0x3037,INVALC, - INVALC,INVALC,INVALC,0x3043,INVALC,0x3034,INVALC,INVALC, - 0x304C,0x3033,0x302E,INVALC,INVALC,INVALC,INVALC,0x303B, - 0x3040,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3645,0x3649,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3647,0x3646,INVALC,INVALC,0x364C, - INVALC,INVALC,0x365E,0x366A,INVALC,0x365B,0x3654,INVALC, - 0x3644,INVALC,0x3660,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3650,0x3662,0x365A,INVALC,INVALC,0x3668,INVALC,0x3661, - 0x3663,INVALC,INVALC,0x3665,0x364E,0x365F,0x3653,0x3667, - INVALC,INVALC,INVALC,0x3658,0x3656,0x3657,INVALC,0x3652, - 0x3651,INVALC,0x364B,0x3669,INVALC,0x3655,INVALC,INVALC, - INVALC,0x364A,INVALC,INVALC,INVALC,0x365C,INVALC,0x3035, - 0x365D,INVALC,0x3664,INVALC,0x3659,INVALC,0x364D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D2C,0x3666,INVALC,INVALC, - /* Block 111, Array index 0x2100 */ - 0x364F,INVALC,INVALC,0x3D41,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D3B,INVALC,INVALC,0x3D2F, - INVALC,INVALC,0x3D4D,INVALC,INVALC,INVALC,INVALC,0x3D51, - 0x3D48,INVALC,INVALC,0x3D36,INVALC,INVALC,0x3D42,INVALC, - 0x3D4E,0x3D47,INVALC,0x3D3C,INVALC,0x3D59,0x3D5A,INVALC, - INVALC,0x3D4C,INVALC,0x3D40,0x3D32,0x3D33,INVALC,0x3D37, - 0x3D3E,0x3D38,INVALC,INVALC,INVALC,0x3D34,0x3D2D,0x3D2E, - INVALC,0x3D30,INVALC,0x3D3D,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3D3F,0x3D57,0x3D4F,INVALC,0x3D55,INVALC,INVALC, - INVALC,INVALC,0x3D5B,INVALC,0x3D45,0x3D39,0x3D43,INVALC, - 0x3D49,0x3D46,0x3D35,INVALC,0x3D53,0x3D50,0x3D58,INVALC, - 0x3D44,INVALC,INVALC,0x3D4B,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3D4A,INVALC,0x3D3A,0x3648,INVALC,INVALC,0x3D54, - 0x3D52,0x3D56,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D31,INVALC,INVALC,INVALC,INVALC,0x4447,0x4446,0x442C, - INVALC,INVALC,0x4445,0x442F,0x4430,INVALC,INVALC,0x444E, - INVALC,0x4444,INVALC,0x4429,INVALC,INVALC,0x4438,0x442E, - 0x4431,0x4449,INVALC,0x4450,0x4448,INVALC,0x443D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x444F,INVALC, - 0x443B,0x4432,0x443F,0x444B,INVALC,INVALC,INVALC,0x443A, - INVALC,0x4433,INVALC,INVALC,INVALC,0x4436,0x4440,0x444A, - 0x442D,0x4437,INVALC,0x4441,INVALC,INVALC,0x4434,INVALC, - 0x442B,0x4439,0x444D,INVALC,INVALC,0x443C,0x4B34,0x443E, - 0x444C,INVALC,0x4435,INVALC,INVALC,INVALC,0x442A,INVALC, - 0x4443,INVALC,INVALC,INVALC,0x4442,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4B50,INVALC,0x4B45,0x4B4A,INVALC, - INVALC,0x4B36,INVALC,INVALC,INVALC,0x4B35,0x4B56,INVALC, - 0x4B39,0x4B49,INVALC,0x4B3B,0x4B59,0x4B55,INVALC,INVALC, - /* Block 112, Array index 0x2200 */ - 0x515B,INVALC,INVALC,0x4B37,INVALC,0x4B54,INVALC,0x4B51, - 0x4B5E,0x4B3D,0x4B46,INVALC,INVALC,0x4B5C,0x4B52,INVALC, - INVALC,INVALC,0x4B44,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4B42,0x4B3F,0x4B40,INVALC,0x4B58,INVALC,0x4B5D,0x4B5B, - INVALC,0x4B5F,INVALC,INVALC,INVALC,0x4B38,0x5143,0x4B41, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4B4B,0x4B3C,INVALC, - 0x4B4D,INVALC,INVALC,INVALC,INVALC,0x4B4F,0x4B47,0x4B3A, - INVALC,0x4B57,0x4B5A,0x4B43,0x4B4E,INVALC,INVALC,INVALC, - 0x4B4C,0x5142,INVALC,0x4B53,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B3E,0x514C, - 0x5156,INVALC,0x5155,0x5161,INVALC,0x5153,INVALC,0x5157, - INVALC,INVALC,0x514E,INVALC,INVALC,0x515A,0x577B,INVALC, - INVALC,0x515C,0x514B,0x5166,INVALC,INVALC,INVALC,0x515F, - INVALC,0x5163,0x5168,0x515D,0x5151,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5154,0x4B48,INVALC,INVALC,0x5150,0x5167, - INVALC,INVALC,INVALC,0x5169,INVALC,0x515E,0x5144,0x5164, - INVALC,INVALC,0x5152,INVALC,INVALC,0x514D,INVALC,0x5145, - INVALC,0x5149,INVALC,0x5162,0x514A,0x5148,INVALC,INVALC, - 0x5160,INVALC,0x5147,0x5159,0x5158,0x5165,0x514F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x577E,INVALC, - INVALC,INVALC,0x582C,0x5776,INVALC,0x5824,INVALC,INVALC, - 0x5822,0x5D3B,0x5828,0x582E,0x5827,0x5774,0x5825,0x5830, - 0x5832,INVALC,0x5831,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x582B,INVALC,0x5826,INVALC,0x5778,0x577D,INVALC,0x582A, - INVALC,INVALC,INVALC,INVALC,0x577C,INVALC,0x5146,0x5777, - 0x577A,0x582D,0x5821,0x5775,0x5D3A,0x582F,0x5779,0x5829, - INVALC,INVALC,INVALC,INVALC,0x5D3D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5D3F,0x5D45,0x5D43,INVALC, - INVALC,INVALC,0x5D46,0x5D3E,INVALC,INVALC,0x5D42,0x5D41, - 0x5D47,INVALC,INVALC,INVALC,INVALC,0x5D40,INVALC,INVALC, - INVALC,INVALC,0x5D44,INVALC,0x5D3C,INVALC,INVALC,0x6225, - INVALC,INVALC,INVALC,0x6222,0x6224,INVALC,INVALC,0x617E, - /* Block 113, Array index 0x2300 */ - 0x6221,0x617A,INVALC,INVALC,0x5823,0x617B,INVALC,0x6177, - INVALC,INVALC,0x6226,INVALC,0x6178,0x6179,0x617D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x617C,INVALC,0x656A,0x6570, - INVALC,0x6567,INVALC,INVALC,0x6572,INVALC,INVALC,INVALC, - 0x6569,0x656C,0x656D,0x656E,0x6571,INVALC,0x6223,0x6568, - INVALC,0x656F,0x6934,0x656B,INVALC,INVALC,INVALC,0x692B, - INVALC,0x692E,INVALC,0x6937,0x692D,0x692A,INVALC,0x692C, - 0x6930,0x6933,0x6932,0x6936,0x6929,INVALC,INVALC,0x6931, - 0x6935,0x6938,0x692F,0x6B61,0x6B62,0x6B66,0x6B67,INVALC, - 0x6B64,0x6B65,0x6B63,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6D59,INVALC,INVALC,0x6D56,0x6D57,0x6D58, - INVALC,INVALC,0x6F34,0x6F33,INVALC,0x703D,INVALC,0x703B, - 0x703E,0x703C,0x7125,INVALC,INVALC,0x7171,0x715B,INVALC, - 0x7170,0x723E,0x723F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2261,INVALC,INVALC,0x245E,INVALC,INVALC,INVALC, - INVALC,INVALC,0x245F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2778,0x277A,0x2775,0x2772,0x2774,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2776,INVALC,0x2773,0x2770,INVALC,0x2777,INVALC, - 0x2771,INVALC,0x2779,INVALC,INVALC,INVALC,INVALC,0x2B6F, - INVALC,0x2B73,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2B76,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2B72,0x2B71,INVALC,INVALC,0x2B74,0x2B75,INVALC,0x2B6E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2B70,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x305A,0x305B,0x305C, - INVALC,INVALC,INVALC,0x3051,INVALC,0x3059,0x305E,INVALC, - INVALC,0x304F,0x3055,0x304E,0x3058,INVALC,INVALC,0x3054, - INVALC,INVALC,0x305D,INVALC,0x304D,0x3050,0x3056,INVALC, - 0x3057,0x305F,0x3053,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3671,INVALC,INVALC,0x3673,0x366F,INVALC,0x367B,0x366D, - 0x367A,INVALC,0x366B,0x3D5F,0x3675,INVALC,INVALC,0x3676, - /* Block 114, Array index 0x2400 */ - 0x3679,INVALC,0x367D,INVALC,0x3672,INVALC,0x3677,INVALC, - INVALC,INVALC,INVALC,0x367C,0x3670,0x366C,0x367E,INVALC, - 0x3674,INVALC,INVALC,0x3678,INVALC,INVALC,INVALC,0x366E, - INVALC,INVALC,INVALC,0x3D69,INVALC,INVALC,0x3D5D,0x3D66, - 0x3D5C,INVALC,0x3D64,0x3D62,INVALC,0x3D63,INVALC,INVALC, - 0x3D67,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D60,0x3D5E, - INVALC,0x3D61,0x3D65,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3D68,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4456,0x445D,0x445F,0x4465,INVALC,INVALC,0x4451, - INVALC,INVALC,INVALC,0x4460,INVALC,0x4466,INVALC,INVALC, - 0x4463,INVALC,0x4453,0x4464,0x4452,INVALC,INVALC,INVALC, - 0x445E,INVALC,0x4467,INVALC,INVALC,0x4457,INVALC,0x4462, - 0x4455,0x445C,0x4458,0x4454,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x445B,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4461,INVALC,0x4459,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x445A,INVALC,INVALC,0x4B67,INVALC,INVALC,INVALC,INVALC, - 0x4B63,0x4B69,0x4B65,INVALC,INVALC,0x4B64,0x4B68,0x4B60, - INVALC,0x4B62,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B66, - 0x4B61,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B6A, - INVALC,INVALC,0x516F,0x516C,0x5178,0x5172,0x5174,INVALC, - 0x516E,0x5176,INVALC,INVALC,0x5175,0x5173,INVALC,0x5179, - INVALC,0x5170,0x5177,INVALC,INVALC,INVALC,INVALC,0x516B, - 0x516D,INVALC,0x516A,0x517A,INVALC,0x5171,INVALC,INVALC, - 0x5836,INVALC,INVALC,INVALC,0x5841,0x583F,INVALC,0x5835, - 0x5838,0x5839,0x5834,INVALC,INVALC,0x5833,0x5842,0x583D, - INVALC,INVALC,0x583C,0x583A,INVALC,INVALC,INVALC,0x583E, - INVALC,INVALC,INVALC,INVALC,0x583B,INVALC,0x5837,INVALC, - 0x5840,INVALC,0x5843,0x5844,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D48,0x5D4E,INVALC,0x5D4C,INVALC,INVALC,INVALC, - 0x5D4A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5D4D,0x5D49,0x5D4B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6229,INVALC,INVALC,INVALC,0x622B,INVALC,0x6228, - /* Block 115, Array index 0x2500 */ - INVALC,0x6227,0x6576,0x622A,INVALC,0x6577,INVALC,0x6575, - INVALC,INVALC,0x6574,INVALC,0x6573,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6939,0x693A,INVALC,INVALC,INVALC, - INVALC,0x6B6A,0x6B69,INVALC,INVALC,0x6B68,0x6D5A,0x6D5B, - INVALC,INVALC,0x6F35,0x703F,INVALC,INVALC,0x7126,0x722C, - INVALC,0x7240,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2142, - INVALC,0x2B77,0x3060,INVALC,0x4B6B,INVALC,INVALC,INVALC, - INVALC,0x2B78,0x2B79,0x3D6A,INVALC,INVALC,INVALC,0x4468, - INVALC,INVALC,INVALC,0x4B6C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3D6B,INVALC,INVALC,INVALC,0x2262,INVALC, - INVALC,INVALC,INVALC,0x2460,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x277B,INVALC,0x2B7A,INVALC,0x2B7D,INVALC, - 0x2B7B,INVALC,INVALC,0x2B7C,INVALC,INVALC,0x3063,0x3062, - 0x3061,INVALC,INVALC,0x3722,0x3723,INVALC,0x3721,0x3724, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3D6F,0x3D6E,INVALC, - 0x3D6C,0x3D6D,INVALC,0x3D70,0x446A,0x4469,0x446D,INVALC, - 0x446C,0x446B,INVALC,0x4B6F,INVALC,0x4B6E,INVALC,0x4B6D, - 0x517B,INVALC,0x517C,INVALC,INVALC,0x5845,0x5846,INVALC, - INVALC,0x657C,INVALC,0x657B,0x657A,0x6578,0x6579,INVALC, - 0x693B,0x6D5C,0x7127,INVALC,INVALC,INVALC,0x2164,INVALC, - 0x2165,INVALC,INVALC,INVALC,0x2263,0x2264,INVALC,INVALC, - INVALC,INVALC,0x2466,INVALC,INVALC,0x2462,INVALC,0x2461, - INVALC,0x2465,INVALC,0x2463,INVALC,0x2467,0x2464,INVALC, - INVALC,0x2821,0x2B7E,0x277D,0x2826,INVALC,INVALC,INVALC, - INVALC,0x2827,0x2823,INVALC,0x2824,INVALC,0x277C,INVALC, - 0x277E,INVALC,0x2825,INVALC,0x2822,INVALC,INVALC,0x2C24, - INVALC,INVALC,INVALC,0x2C27,0x2C21,INVALC,0x2C26,INVALC, - 0x2C22,INVALC,0x2C25,0x2C23,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3069,0x3066,INVALC,0x3068,INVALC, - INVALC,INVALC,0x3065,0x306A,INVALC,INVALC,0x3067,0x372C, - /* Block 116, Array index 0x2600 */ - 0x3064,0x306B,INVALC,INVALC,INVALC,INVALC,INVALC,0x3727, - 0x372B,INVALC,0x372A,0x3D72,0x3D7D,INVALC,INVALC,0x372D, - INVALC,0x3728,0x3D71,INVALC,INVALC,INVALC,INVALC,0x3726, - 0x3729,INVALC,INVALC,INVALC,INVALC,0x3725,0x372E,INVALC, - INVALC,INVALC,0x3D74,0x3D7B,INVALC,INVALC,0x3D7A,0x3D77, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3D79,INVALC,INVALC, - 0x3D73,0x3D75,0x3D78,0x3D76,INVALC,0x3D7C,INVALC,INVALC, - INVALC,INVALC,0x4471,0x4470,0x446E,INVALC,INVALC,INVALC, - 0x4472,INVALC,0x446F,0x4B70,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4474,0x4473,INVALC,0x4B73,0x4B71,INVALC,INVALC, - INVALC,0x4B72,0x517E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x517D,0x5228,0x5227,0x5225,INVALC,0x5224,0x5221,0x5222, - 0x5223,0x5226,0x5229,INVALC,INVALC,0x584B,0x5848,0x5849, - INVALC,0x5847,0x584D,0x584C,0x584A,INVALC,0x5D50,0x5D51, - INVALC,INVALC,INVALC,0x5D4F,INVALC,INVALC,0x622C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x693D,0x693C,0x6B6B,0x6D5D, - INVALC,0x6F37,0x6F36,0x6F38,INVALC,0x2C28,INVALC,INVALC, - 0x372F,INVALC,0x2166,INVALC,INVALC,INVALC,0x2265,INVALC, - INVALC,INVALC,0x246C,0x246A,0x246B,0x2468,INVALC,0x2469, - INVALC,INVALC,INVALC,INVALC,INVALC,0x282F,INVALC,INVALC, - 0x282D,0x2829,0x282C,INVALC,0x2828,INVALC,0x282B,INVALC, - INVALC,INVALC,INVALC,INVALC,0x282E,0x282A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2C30,0x2C2F,0x2C2E,INVALC, - 0x2C37,0x2C2D,INVALC,INVALC,0x3070,INVALC,0x2C34,0x2C32, - INVALC,INVALC,0x2C2A,0x2C35,INVALC,0x2C2C,0x2C36,0x2C33, - 0x2C2B,INVALC,INVALC,0x2C38,0x2C29,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3075,0x306C,0x3077,INVALC,0x306F,0x307A, - 0x307B,0x306D,0x3079,0x3076,0x3074,0x3078,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3072,INVALC,0x306E,INVALC,0x3071, - 0x307C,0x3073,INVALC,0x2C31,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x373D,0x3732,0x3730,INVALC, - 0x3731,INVALC,0x3738,INVALC,0x3739,0x3735,INVALC,0x373A, - /* Block 117, Array index 0x2700 */ - 0x3737,0x3734,INVALC,INVALC,0x3733,INVALC,INVALC,0x3736, - 0x373E,INVALC,INVALC,0x373C,0x373B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3E24,INVALC, - INVALC,INVALC,0x3E25,INVALC,INVALC,0x3E2B,INVALC,INVALC, - 0x3E2D,0x3E26,INVALC,0x3E2A,0x3E29,INVALC,INVALC,INVALC, - INVALC,0x3E2C,INVALC,0x3E23,0x3E21,0x3E27,0x3D7E,INVALC, - 0x3E22,0x3E28,0x3E2E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x447B,INVALC,0x4521,INVALC,0x4475,INVALC,0x4522,INVALC, - INVALC,INVALC,0x4476,0x4477,INVALC,0x4523,0x447E,0x447C, - 0x447D,0x4479,0x4478,INVALC,0x4524,INVALC,INVALC,0x447A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4B74,INVALC,INVALC,INVALC,INVALC,0x4B79, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B7A,INVALC, - INVALC,0x4B76,0x4B78,0x4B75,INVALC,0x4B77,INVALC,INVALC, - INVALC,0x5233,INVALC,INVALC,0x5232,0x522F,INVALC,0x584E, - INVALC,0x522E,INVALC,INVALC,INVALC,0x5230,0x522D,0x522A, - 0x5231,0x522B,0x522C,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5D55,INVALC,0x5852,INVALC,0x5851,0x5853,INVALC,0x5D52, - INVALC,INVALC,0x584F,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5850,0x5854,INVALC,INVALC,INVALC,0x5D59,INVALC,INVALC, - INVALC,INVALC,0x5D56,0x5D54,INVALC,0x5D57,INVALC,0x5D5A, - INVALC,0x5D58,0x5D53,INVALC,INVALC,0x622F,0x6232,0x6621, - 0x622D,INVALC,0x693E,0x6233,INVALC,INVALC,0x6231,INVALC, - 0x622E,0x6230,0x6234,0x6622,INVALC,0x657E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x657D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6D5F,INVALC,0x6D61, - 0x6D5E,0x6D60,INVALC,0x7040,INVALC,0x2830,0x307D,0x307E, - INVALC,0x4525,INVALC,INVALC,INVALC,0x7041,INVALC,INVALC, - 0x2831,INVALC,INVALC,INVALC,0x2C39,INVALC,0x2C3A,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3121,0x3122,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3E2F,INVALC,0x4528,0x4527,0x4526, - /* Block 118, Array index 0x2800 */ - 0x4B7B,INVALC,0x4B7C,0x4B7D,INVALC,INVALC,INVALC,0x5235, - 0x5234,INVALC,INVALC,0x5855,INVALC,INVALC,INVALC,0x5D5E, - 0x5D5B,0x5D5C,0x5D5D,0x6236,0x6235,INVALC,0x6623,0x6B6C, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4529,INVALC,INVALC, - INVALC,0x3123,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2266,INVALC,INVALC,INVALC,0x2C3B,0x3E30, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x246E,0x246D,INVALC,INVALC,INVALC,0x2834,0x2832, - 0x2833,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2C3C, - 0x2C3D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3124,INVALC,INVALC,INVALC,0x3125, - INVALC,INVALC,INVALC,0x3740,0x373F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E32,INVALC,INVALC,0x3E31, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x452B, - INVALC,0x452A,INVALC,INVALC,INVALC,0x4B7E,0x5236,INVALC, - 0x5856,INVALC,INVALC,INVALC,0x5D5F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2835,INVALC,INVALC,INVALC, - 0x4C21,INVALC,INVALC,INVALC,0x246F,0x2470,INVALC,INVALC, - 0x2836,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2C3E, - INVALC,INVALC,0x2C3F,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3126,INVALC,INVALC,INVALC,INVALC,INVALC,0x312C,INVALC, - INVALC,INVALC,0x312D,0x3128,INVALC,INVALC,INVALC,0x312B, - 0x312A,0x3127,INVALC,INVALC,0x3129,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3744,0x3745,INVALC,0x3741,0x3743, - 0x3747,0x3746,0x3742,INVALC,INVALC,INVALC,INVALC,0x3E3A, - INVALC,INVALC,0x3E34,INVALC,INVALC,0x3E37,INVALC,0x3E38, - INVALC,0x3E35,INVALC,INVALC,0x3E39,INVALC,0x3E36,0x3E33, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4538,INVALC,0x452D, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4539,0x4537,0x4530, - 0x4534,0x4533,INVALC,0x4536,0x4532,0x453A,0x4531,INVALC, - /* Block 119, Array index 0x2900 */ - INVALC,INVALC,INVALC,0x452F,INVALC,INVALC,INVALC,INVALC, - 0x4C23,INVALC,0x4C27,INVALC,0x4C24,INVALC,INVALC,0x452E, - 0x4535,0x4C26,INVALC,INVALC,0x4C28,0x4C25,0x4C22,INVALC, - INVALC,0x5239,0x523D,0x523F,0x523B,0x523A,0x5238,INVALC, - INVALC,INVALC,INVALC,0x523C,INVALC,0x5237,INVALC,INVALC, - 0x523E,INVALC,INVALC,INVALC,INVALC,0x5858,INVALC,0x5857, - 0x585F,0x5859,0x585E,0x585B,INVALC,0x585D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x585C,0x585A,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D60,INVALC,INVALC,INVALC,0x5D63, - 0x5D61,0x5D62,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x623A,INVALC,INVALC,0x623B,INVALC,INVALC,INVALC,0x623C, - INVALC,0x6239,0x623D,INVALC,0x6237,INVALC,INVALC,INVALC, - 0x6624,INVALC,INVALC,INVALC,0x6238,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6B6D,INVALC,INVALC,0x6D62,INVALC,INVALC, - 0x6F39,INVALC,INVALC,INVALC,INVALC,0x723A,INVALC,INVALC, - INVALC,0x2C40,INVALC,INVALC,INVALC,INVALC,INVALC,0x2267, - INVALC,0x2471,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3749,0x312E,INVALC,INVALC,INVALC,INVALC,0x3748, - INVALC,INVALC,0x3E3C,INVALC,INVALC,0x3E3B,INVALC,INVALC, - INVALC,0x453B,INVALC,0x5243,0x5240,0x5241,0x5242,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5D64,INVALC,0x623E,INVALC, - INVALC,INVALC,0x6940,0x693F,INVALC,0x6D63,INVALC,0x2837, - INVALC,INVALC,INVALC,INVALC,INVALC,0x453C,INVALC,INVALC, - 0x4C29,INVALC,INVALC,0x5860,INVALC,0x623F,0x6941,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2C41,INVALC,INVALC,INVALC, - INVALC,0x312F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x374A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3E3D,INVALC,INVALC,0x453D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5861,INVALC, - INVALC,0x5D65,INVALC,INVALC,0x6240,0x6942,INVALC,INVALC, - 0x283A,0x2839,INVALC,0x2838,INVALC,0x283B,INVALC,0x2C47, - INVALC,INVALC,0x2C49,0x2C48,INVALC,INVALC,INVALC,INVALC, - /* Block 120, Array index 0x2A00 */ - INVALC,INVALC,INVALC,0x2C43,0x2C44,0x2C45,INVALC,INVALC, - 0x2C42,INVALC,0x2C46,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3132,0x3136,0x3134,0x3133,INVALC,0x3137,INVALC,INVALC, - INVALC,0x3138,0x3139,0x3131,INVALC,0x3130,INVALC,INVALC, - INVALC,INVALC,0x313A,0x3135,INVALC,0x3753,INVALC,0x313B, - INVALC,INVALC,INVALC,INVALC,INVALC,0x374D,INVALC,0x374C, - INVALC,0x374E,0x374F,0x3751,0x3750,0x3755,INVALC,INVALC, - INVALC,0x374B,INVALC,0x3754,INVALC,0x3752,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E40,0x3E42,0x3E3E,0x3E3F, - INVALC,INVALC,0x3E43,0x3E45,0x3E46,0x3E41,0x3E44,INVALC, - INVALC,INVALC,0x4541,INVALC,0x4546,0x453E,0x4542,INVALC, - INVALC,0x4547,0x4543,INVALC,INVALC,INVALC,INVALC,0x453F, - 0x4540,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4545, - INVALC,0x4544,INVALC,INVALC,INVALC,0x4548,0x4C2E,0x4C30, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4C2B,INVALC,0x4C31,INVALC, - 0x4C2F,0x4C2A,0x4C2D,0x4C32,INVALC,0x4C2C,INVALC,INVALC, - 0x5247,0x5246,INVALC,INVALC,INVALC,0x5244,INVALC,0x5245, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5869,INVALC,0x586B, - INVALC,0x586A,0x5862,0x5866,0x5865,0x5863,INVALC,INVALC, - INVALC,0x5864,0x5867,0x5868,INVALC,INVALC,INVALC,INVALC, - 0x5D6D,INVALC,INVALC,0x5D67,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D6C,0x5D68,INVALC,0x5D6B,0x5D66,0x5D6A,0x5D69, - INVALC,INVALC,0x6242,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6241,INVALC,0x6627,INVALC,INVALC,INVALC, - INVALC,0x6625,0x6626,INVALC,0x6943,0x6946,0x6944,0x6945, - 0x6B6E,INVALC,INVALC,INVALC,0x6F3A,0x7042,INVALC,INVALC, - 0x7128,0x7129,INVALC,INVALC,INVALC,INVALC,0x3E47,INVALC, - 0x4549,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2C4A, - 0x2C4B,INVALC,INVALC,INVALC,0x3E48,INVALC,INVALC,INVALC, - 0x5D6E,0x6628,0x6947,INVALC,INVALC,INVALC,INVALC,0x2841, - 0x283C,0x283E,0x2840,0x283F,0x283D,INVALC,INVALC,INVALC, - /* Block 121, Array index 0x2B00 */ - INVALC,INVALC,INVALC,0x2C54,INVALC,0x2C4F,0x2C4C,INVALC, - INVALC,0x2C53,INVALC,INVALC,INVALC,INVALC,0x2C52,0x2C51, - 0x2C50,0x2C4D,0x2C4E,0x2C55,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3144,0x313E,0x313C,INVALC,INVALC,0x375C,INVALC, - 0x3141,0x3145,0x3147,0x3143,0x313D,INVALC,0x3142,0x3140, - INVALC,0x3148,INVALC,0x3146,INVALC,0x313F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x375D,INVALC,INVALC, - 0x3756,0x3758,0x375A,INVALC,0x375B,0x3759,INVALC,INVALC, - 0x375E,INVALC,0x3757,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E4C,INVALC,0x3E54,INVALC, - 0x3E49,INVALC,0x3E55,INVALC,0x3E4A,0x3E4B,INVALC,INVALC, - 0x3E53,0x3E52,0x3E4F,INVALC,INVALC,0x3E4D,0x3E50,INVALC, - 0x3E51,0x3E4E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4554,INVALC,0x4558,INVALC,INVALC,0x4C38,INVALC, - 0x4556,INVALC,INVALC,0x4553,0x454E,0x4550,0x4551,0x454A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x454D, - INVALC,INVALC,INVALC,INVALC,0x454C,0x454F,0x4557,INVALC, - INVALC,0x4555,0x454B,INVALC,INVALC,INVALC,0x4C3A,INVALC, - 0x4C3C,0x4552,0x4C3E,INVALC,0x4C3F,0x4C3B,INVALC,INVALC, - 0x4C37,INVALC,0x4C34,0x4C39,0x4C3D,0x4C36,INVALC,INVALC, - INVALC,INVALC,0x4C33,INVALC,0x4C35,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5249,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5250,0x5251,INVALC,INVALC,INVALC, - 0x524F,0x5252,INVALC,INVALC,0x524B,0x5248,0x524D,0x524A, - INVALC,0x524C,INVALC,INVALC,0x524E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5872,INVALC,0x586C,0x5870,0x5876, - 0x5877,0x5873,0x5874,0x5871,INVALC,0x586E,INVALC,INVALC, - INVALC,0x586D,0x586F,INVALC,INVALC,0x5875,INVALC,INVALC, - INVALC,INVALC,0x5D75,0x5D6F,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D77,INVALC,0x5D72,0x5D73,0x5D70,0x5D78,0x5D74, - /* Block 122, Array index 0x2C00 */ - INVALC,INVALC,0x5D71,INVALC,0x5D79,0x5D76,INVALC,INVALC, - INVALC,0x6246,INVALC,INVALC,0x6243,INVALC,INVALC,INVALC, - 0x6247,0x6249,0x6248,0x6244,0x6245,INVALC,INVALC,0x662D, - INVALC,INVALC,INVALC,0x662A,0x662C,0x6629,0x662E,INVALC, - INVALC,0x662B,INVALC,0x6949,0x694C,0x6948,INVALC,0x694A, - 0x694B,0x694D,INVALC,INVALC,INVALC,0x6B6F,INVALC,0x6B71, - INVALC,0x6B70,INVALC,INVALC,INVALC,0x6D64,INVALC,INVALC, - 0x7043,0x712A,INVALC,INVALC,INVALC,0x2472,INVALC,0x2843, - INVALC,INVALC,0x2842,INVALC,0x2C5A,0x2C59,INVALC,INVALC, - INVALC,INVALC,0x2C56,0x2C58,0x2C57,INVALC,INVALC,0x314B, - INVALC,0x314F,0x314E,0x314D,0x3149,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x314A,0x314C,INVALC,INVALC,INVALC, - INVALC,0x3765,INVALC,0x3763,0x375F,INVALC,INVALC,0x3760, - INVALC,0x3761,0x3762,0x3764,INVALC,INVALC,INVALC,INVALC, - 0x3E59,INVALC,0x3E58,0x3E57,0x3E56,INVALC,INVALC,INVALC, - INVALC,0x455C,INVALC,INVALC,0x4559,0x455B,INVALC,INVALC, - INVALC,INVALC,0x455A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4C48,INVALC,0x4C41,0x4C42,INVALC,INVALC,INVALC,INVALC, - 0x4C4A,INVALC,0x4C49,0x4C46,0x4C45,0x4C44,0x4C43,0x4C47, - 0x4C40,INVALC,0x5253,0x5258,0x5256,INVALC,INVALC,INVALC, - 0x5255,0x5254,0x5257,INVALC,0x5878,INVALC,INVALC,INVALC, - 0x5D7B,INVALC,INVALC,0x5D7A,0x624B,0x624A,INVALC,INVALC, - 0x662F,INVALC,0x694E,INVALC,0x6D65,INVALC,0x7045,0x7044, - 0x2167,INVALC,INVALC,0x3766,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2844,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2C5C,0x2C5F,0x2C5D, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2C5B,0x2C5E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3156,0x3158,0x3157,INVALC, - 0x3152,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3155,0x3150,0x3151,0x3154,0x3153,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3769,0x376A, - 0x3768,INVALC,0x3767,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 123, Array index 0x2D00 */ - INVALC,INVALC,0x3E5A,0x3E5C,0x3E5E,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3E5B,INVALC,0x3E5D,INVALC,INVALC,INVALC, - 0x4566,0x455D,0x4560,0x4564,INVALC,0x4562,INVALC,0x4561, - 0x455E,0x455F,INVALC,0x4565,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4563,INVALC,INVALC,INVALC,0x4C50,INVALC, - 0x4C4F,INVALC,INVALC,0x4C4B,INVALC,INVALC,INVALC,0x4C4E, - 0x4C4D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x525A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5879,INVALC,INVALC,0x587B, - 0x587A,INVALC,0x4C4C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E22,INVALC,0x5D7E,INVALC, - 0x5E21,INVALC,0x5E23,0x5D7D,0x5D7C,INVALC,INVALC,0x624C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6630, - 0x6631,INVALC,INVALC,INVALC,0x6950,0x6951,0x694F,INVALC, - 0x6D66,0x6D67,INVALC,INVALC,INVALC,0x2268,INVALC,INVALC, - 0x2845,INVALC,INVALC,0x2846,INVALC,INVALC,0x2C61,INVALC, - 0x2C60,INVALC,INVALC,INVALC,INVALC,0x315B,0x3159,0x315F, - INVALC,0x315A,0x315E,0x315C,0x315D,INVALC,INVALC,0x376B, - 0x376D,INVALC,INVALC,INVALC,0x376C,INVALC,INVALC,INVALC, - INVALC,0x3E5F,INVALC,INVALC,INVALC,INVALC,0x4569,INVALC, - INVALC,INVALC,0x4568,0x4567,INVALC,INVALC,INVALC,INVALC, - 0x4C51,INVALC,INVALC,0x4C52,0x4C53,INVALC,INVALC,INVALC, - INVALC,0x5921,0x525B,0x525D,0x525C,0x587E,0x587C,0x5922, - 0x587D,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E24,INVALC, - 0x5E25,0x5E26,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2C62,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3160,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E61,INVALC,0x3E60,INVALC, - INVALC,INVALC,INVALC,0x456A,INVALC,INVALC,0x4C54,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6952, - INVALC,INVALC,INVALC,0x2847,INVALC,INVALC,INVALC,INVALC, - /* Block 124, Array index 0x2E00 */ - 0x2C63,0x2C64,INVALC,INVALC,0x3162,0x3164,INVALC,INVALC, - 0x3166,0x3169,0x3167,INVALC,INVALC,INVALC,0x3168,0x3165, - 0x3161,INVALC,0x316A,0x3163,INVALC,INVALC,INVALC,INVALC, - 0x3776,INVALC,0x3821,INVALC,INVALC,0x3778,INVALC,INVALC, - INVALC,INVALC,0x3773,0x3822,0x3774,0x3771,INVALC,INVALC, - INVALC,INVALC,0x3777,0x377A,INVALC,0x377B,INVALC,0x377C, - 0x3772,0x3779,0x377D,0x3775,0x3770,0x376E,INVALC,INVALC, - 0x377E,INVALC,INVALC,0x376F,INVALC,INVALC,INVALC,INVALC, - 0x3E68,INVALC,INVALC,INVALC,0x3E64,0x3E6A,INVALC,0x3E63, - 0x3E65,INVALC,0x3E62,INVALC,0x3E66,INVALC,0x3E67,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3E69,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4575,INVALC,0x4578,0x456C,0x4571,0x456B,INVALC, - INVALC,0x456F,INVALC,INVALC,INVALC,0x456D,INVALC,INVALC, - 0x4574,0x4573,0x4570,0x4572,0x456E,INVALC,0x4577,INVALC, - 0x4576,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4C64,INVALC,INVALC,0x4C5F,INVALC,INVALC, - 0x4C55,INVALC,0x4C57,INVALC,0x4C5C,0x4C5B,0x4C5E,INVALC, - 0x4C59,0x4C58,INVALC,INVALC,INVALC,INVALC,0x4C5A,INVALC, - 0x4C60,0x4C62,INVALC,0x4C5D,0x4C56,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4C63,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5261,INVALC,INVALC,0x5263, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5266,INVALC,0x525E, - INVALC,0x5264,INVALC,INVALC,INVALC,INVALC,0x5260,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5265,0x525F,INVALC,INVALC,0x5262,INVALC, - INVALC,INVALC,INVALC,INVALC,0x592C,0x5927,INVALC,INVALC, - 0x5931,INVALC,0x5929,INVALC,0x592F,0x5926,0x5923,0x5932, - INVALC,INVALC,0x592E,0x5924,INVALC,0x5928,INVALC,0x5925, - 0x592A,INVALC,0x592D,0x5930,INVALC,INVALC,INVALC,INVALC, - 0x5E38,0x5E39,0x5E29,0x5E30,0x5E2E,INVALC,INVALC,INVALC, - 0x5E35,0x592B,INVALC,0x5E2C,INVALC,0x5E36,INVALC,0x5E2B, - /* Block 125, Array index 0x2F00 */ - 0x5E2A,0x5E34,0x5E31,0x5E33,INVALC,0x5E27,0x5E37,INVALC, - INVALC,0x5E32,0x5E3B,0x5E2F,INVALC,INVALC,0x5E2D,0x5E28, - 0x5E3A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x624F,INVALC,INVALC,0x624D,0x6253,INVALC,0x6251, - 0x6250,INVALC,0x6256,INVALC,INVALC,0x6257,0x6254,INVALC, - 0x6255,0x624E,INVALC,INVALC,0x6635,0x6252,INVALC,INVALC, - 0x6258,INVALC,INVALC,0x6632,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6634,INVALC,0x6636,0x6633,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6957,INVALC,0x6956, - 0x6954,0x6953,0x6955,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6B73,0x6B72,INVALC,INVALC,0x6D68, - INVALC,0x6D6A,0x6D6C,0x6D6B,0x6D69,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6F3C,0x6F3B, - INVALC,0x712B,0x7046,0x712C,INVALC,INVALC,INVALC,0x715C, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2848,INVALC,INVALC, - 0x2C66,0x2C67,0x2C65,INVALC,INVALC,INVALC,INVALC,0x2C68, - 0x2C69,0x2C6A,INVALC,INVALC,0x316B,0x3171,INVALC,INVALC, - 0x316F,INVALC,0x316D,INVALC,0x316E,0x3170,INVALC,INVALC, - INVALC,0x316C,INVALC,INVALC,0x3823,INVALC,0x3825,INVALC, - 0x3824,INVALC,INVALC,INVALC,INVALC,INVALC,0x3E6C,INVALC, - INVALC,0x3E6E,0x3E6B,0x3826,INVALC,INVALC,INVALC,INVALC, - 0x3E6D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x457B, - INVALC,INVALC,0x4579,INVALC,0x457A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4C68,0x4C65,0x4C67,INVALC,INVALC,0x4C66, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5267,INVALC,INVALC, - 0x5268,INVALC,INVALC,0x526A,0x5269,INVALC,INVALC,INVALC, - 0x5936,0x5937,0x5933,INVALC,0x5934,INVALC,INVALC,0x5935, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5E3C,INVALC,0x6638,INVALC,0x6637,INVALC,0x6958,INVALC, - INVALC,0x6D6E,0x6B74,INVALC,0x6D6D,INVALC,0x712D,0x7172, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2849,INVALC,INVALC, - /* Block 126, Array index 0x3000 */ - INVALC,0x2C6D,INVALC,0x2C6B,INVALC,INVALC,INVALC,INVALC, - 0x2C6C,INVALC,INVALC,INVALC,0x317C,INVALC,0x3175,0x317B, - INVALC,0x3174,0x317A,0x3178,INVALC,INVALC,0x3177,INVALC, - 0x3176,INVALC,INVALC,INVALC,INVALC,0x3173,0x3172,0x3179, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3835,0x382E,INVALC,INVALC,0x382D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3827,0x382A,INVALC, - 0x3829,INVALC,0x382B,0x3834,INVALC,0x3828,0x3831,0x3832, - INVALC,0x382F,INVALC,INVALC,INVALC,0x382C,INVALC,0x3830, - INVALC,INVALC,0x3833,INVALC,INVALC,INVALC,0x3F21,0x3E76, - INVALC,0x3E7D,0x3E7A,0x3E72,0x3E7B,INVALC,0x3E73,INVALC, - 0x3E6F,INVALC,INVALC,INVALC,0x3E78,INVALC,INVALC,0x3E7E, - INVALC,INVALC,INVALC,0x3E71,INVALC,INVALC,INVALC,0x3E74, - INVALC,0x3E7C,0x3E75,0x3E79,INVALC,0x3E77,INVALC,0x3E70, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4624,0x4626,0x4628,0x462C,INVALC,0x4622, - 0x457E,INVALC,INVALC,0x4627,0x462B,0x4623,0x457D,INVALC, - 0x457C,INVALC,INVALC,INVALC,0x4629,0x4621,0x4625,INVALC, - INVALC,INVALC,0x462D,INVALC,0x462A,INVALC,0x4C79,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4C71,INVALC,0x4C7B, - INVALC,0x4D21,INVALC,0x4C6C,INVALC,INVALC,0x4C7C,0x4C69, - INVALC,0x4C7E,0x4C6D,INVALC,INVALC,INVALC,0x4C7D,0x4C77, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C6A, - INVALC,0x4C78,INVALC,INVALC,0x4C7A,INVALC,INVALC,INVALC, - 0x4C6F,0x4C6E,0x4C6B,INVALC,0x4C73,0x4C70,0x4C74,INVALC, - INVALC,0x4D22,INVALC,0x4C75,0x4C76,INVALC,0x4C72,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x526F, - INVALC,INVALC,INVALC,0x526C,INVALC,INVALC,INVALC,0x5278, - INVALC,0x5270,INVALC,INVALC,INVALC,INVALC,0x5273,0x526E, - INVALC,INVALC,0x526D,INVALC,INVALC,INVALC,0x5277,INVALC, - 0x5276,0x5275,INVALC,0x503B,INVALC,INVALC,0x5274,0x526B, - INVALC,INVALC,0x5272,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 127, Array index 0x3100 */ - INVALC,INVALC,INVALC,0x5271,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5944,0x593B,0x5947,0x593F,0x5945, - INVALC,INVALC,0x5938,0x593E,0x5948,0x5941,0x5946,0x593A, - INVALC,INVALC,0x5942,INVALC,0x5940,INVALC,INVALC,0x593C, - 0x593D,0x5939,0x5943,INVALC,0x594A,0x5949,INVALC,INVALC, - INVALC,0x5E47,0x5E43,INVALC,INVALC,0x5E3D,INVALC,INVALC, - 0x5E49,INVALC,INVALC,0x5E40,INVALC,INVALC,0x5E4B,INVALC, - 0x5E42,INVALC,0x5E4D,0x5E4A,0x5E3E,INVALC,INVALC,INVALC, - 0x5E45,INVALC,0x5E3F,INVALC,0x5E4C,INVALC,INVALC,0x5E46, - INVALC,0x5E44,INVALC,INVALC,0x5E48,INVALC,INVALC,INVALC, - 0x625A,0x6260,INVALC,0x6263,INVALC,INVALC,0x625B,0x6262, - 0x625D,INVALC,INVALC,INVALC,0x6259,INVALC,INVALC,0x625F, - 0x6261,INVALC,0x625E,0x625C,INVALC,INVALC,INVALC,INVALC, - 0x6642,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x663E, - 0x663C,INVALC,0x6640,INVALC,0x6641,0x663A,0x6639,0x663D, - 0x663B,INVALC,0x663F,0x6959,INVALC,INVALC,0x695A,INVALC, - 0x695C,0x695B,INVALC,INVALC,INVALC,INVALC,0x6B79,0x6B76, - 0x6B77,INVALC,0x6B75,0x6B78,INVALC,0x6B7A,INVALC,INVALC, - INVALC,0x6D6F,INVALC,INVALC,INVALC,0x6F3D,INVALC,0x7047, - 0x712F,0x7131,0x712E,0x7130,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 128, Array index 0x3200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3052,INVALC,INVALC,INVALC,INVALC,0x3F22,0x3F23, - INVALC,INVALC,INVALC,0x594B,INVALC,0x5E4E,INVALC,INVALC, - INVALC,INVALC,0x6644,0x6643,INVALC,0x6B7B,INVALC,0x6D70, - INVALC,0x2269,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2C6E,INVALC,INVALC,0x3224,0x317D,0x3223,0x3221,INVALC, - 0x3222,0x317E,INVALC,0x3836,INVALC,0x3F24,0x3F25,0x4630, - 0x4631,INVALC,INVALC,0x462F,0x4632,0x462E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4D23,INVALC,INVALC,0x5279,INVALC, - INVALC,INVALC,0x594E,0x594C,0x594D,0x5E51,0x5E50,0x5E4F, - INVALC,INVALC,INVALC,0x6645,INVALC,INVALC,0x6646,0x6D71, - INVALC,0x7048,INVALC,INVALC,INVALC,0x2C70,INVALC,INVALC, - INVALC,0x2C6F,0x3226,INVALC,INVALC,0x3837,0x3225,INVALC, - INVALC,INVALC,INVALC,0x383A,0x3838,0x3839,INVALC,INVALC, - 0x3F27,0x3F28,0x3F26,INVALC,INVALC,0x4634,0x4633,0x4635, - INVALC,INVALC,INVALC,INVALC,0x527A,0x527C,INVALC,INVALC, - 0x527B,0x594F,INVALC,0x6265,INVALC,0x6264,INVALC,0x6647, - INVALC,INVALC,0x695D,0x6B7C,INVALC,INVALC,0x2C71,INVALC, - 0x3229,INVALC,0x3228,0x3227,INVALC,INVALC,INVALC,0x3840, - INVALC,0x3842,0x383B,0x383C,INVALC,0x383D,INVALC,0x3841, - 0x383E,0x383F,INVALC,INVALC,INVALC,INVALC,INVALC,0x3F29, - INVALC,INVALC,INVALC,0x4636,0x4637,INVALC,0x4D27,INVALC, - INVALC,INVALC,0x4D24,0x4D25,INVALC,0x4D26,0x5323,INVALC, - 0x5324,INVALC,0x5321,0x527E,0x5322,0x527D,INVALC,0x5950, - INVALC,INVALC,0x5E53,INVALC,0x5E52,0x6134,INVALC,0x6266, - 0x6267,INVALC,INVALC,INVALC,INVALC,0x6648,0x6649,0x695E, - /* Block 129, Array index 0x3300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2C72, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2C73,0x2C74, - INVALC,INVALC,INVALC,INVALC,0x2C75,INVALC,0x322A,INVALC, - INVALC,INVALC,INVALC,0x3845,INVALC,INVALC,0x3844,0x3843, - INVALC,0x4638,INVALC,INVALC,0x4D28,INVALC,INVALC,INVALC, - INVALC,0x5952,0x5951,INVALC,0x5E54,INVALC,INVALC,INVALC, - 0x6B7D,INVALC,INVALC,INVALC,0x2473,0x284A,INVALC,0x2C76, - INVALC,0x322C,INVALC,INVALC,INVALC,INVALC,0x322B,INVALC, - INVALC,INVALC,INVALC,0x3847,INVALC,INVALC,INVALC,0x3846, - 0x3848,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3F2B, - 0x3F2C,0x3F2A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4D2A,0x4D29,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5325,INVALC,INVALC,0x5326, - INVALC,INVALC,INVALC,INVALC,0x5953,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6268,INVALC,INVALC, - 0x664A,0x695F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2F7D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2168,INVALC,INVALC,INVALC,INVALC,0x284B, - 0x2476,INVALC,0x2477,INVALC,INVALC,0x2474,INVALC,INVALC, - INVALC,0x2475,INVALC,INVALC,0x2478,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x284D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2850,0x284C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x284F,INVALC,INVALC, - 0x284E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2C7C,INVALC,INVALC,0x2C7E,INVALC,0x2C78, - 0x2C7B,0x2D26,0x2D24,INVALC,INVALC,0x2D2A,INVALC,0x2D27, - 0x2C7D,0x2C7A,INVALC,INVALC,0x3F2E,0x2D25,INVALC,0x2D28, - 0x2C77,0x2D22,INVALC,INVALC,0x2D23,INVALC,INVALC,INVALC, - 0x2C79,INVALC,INVALC,0x2D21,INVALC,INVALC,0x2D29,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x322E,INVALC,INVALC,0x3230,INVALC,INVALC, - INVALC,0x322F,0x322D,0x3232,INVALC,INVALC,0x3F2D,INVALC, - /* Block 130, Array index 0x3400 */ - 0x3233,0x3231,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3852,INVALC,INVALC, - 0x3849,0x384B,INVALC,0x384C,INVALC,0x3854,0x3850,0x384E, - INVALC,0x3851,0x3855,INVALC,INVALC,0x384A,INVALC,0x3853, - INVALC,INVALC,INVALC,INVALC,0x384F,0x384D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3F36,INVALC,INVALC,0x3F34,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3F2F,0x4646,INVALC,INVALC,0x3F33, - INVALC,INVALC,0x3F30,INVALC,INVALC,0x3F35,INVALC,0x3F32, - INVALC,INVALC,0x3F31,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x463E,0x463C,INVALC,0x4642,INVALC, - 0x463A,0x4647,0x463F,INVALC,0x4639,INVALC,INVALC,0x4644, - INVALC,0x463D,INVALC,INVALC,INVALC,INVALC,INVALC,0x4645, - INVALC,INVALC,0x4640,INVALC,INVALC,INVALC,0x4643,0x463B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4D2D,INVALC,INVALC,0x4D2C,0x4D2E, - INVALC,0x4D2B,INVALC,0x4D31,0x4D30,0x4D2F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x532A,INVALC,0x532D, - INVALC,0x532C,INVALC,INVALC,INVALC,INVALC,0x5329,0x5328, - INVALC,INVALC,0x532B,0x5327,INVALC,INVALC,0x5955,0x595F, - INVALC,INVALC,INVALC,0x5959,0x595B,INVALC,0x5956,INVALC, - 0x595A,0x5954,0x595D,INVALC,0x595C,0x5958,INVALC,0x595E, - INVALC,0x5957,INVALC,0x5E55,0x5E5B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E56,0x5E59,INVALC,0x5E5A, - INVALC,INVALC,0x5E58,INVALC,0x5E57,INVALC,INVALC,INVALC, - 0x626B,0x6269,0x626A,INVALC,INVALC,0x664C,INVALC,0x664B, - INVALC,0x6961,INVALC,0x6960,INVALC,0x6B7E,0x6D72,INVALC, - 0x7132,0x7133,INVALC,INVALC,INVALC,INVALC,0x3F37,INVALC, - INVALC,0x5E5C,INVALC,INVALC,INVALC,INVALC,0x3F38,INVALC, - INVALC,INVALC,0x5960,INVALC,INVALC,INVALC,INVALC,0x3F39, - 0x3F3A,0x3F3B,INVALC,INVALC,INVALC,INVALC,INVALC,0x2D2B, - /* Block 131, Array index 0x3500 */ - INVALC,0x3234,INVALC,INVALC,0x3F3C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x664D,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3856,INVALC,INVALC,INVALC,0x4D32,0x532E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4648,INVALC,INVALC, - 0x2851,0x2D2C,INVALC,INVALC,INVALC,0x3236,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3235, - INVALC,INVALC,0x385B,0x3858,0x385A,INVALC,INVALC,INVALC, - 0x3857,INVALC,0x3859,INVALC,0x3F3D,0x3F3E,INVALC,0x3F3F, - 0x464B,INVALC,0x464C,INVALC,0x464A,0x464D,INVALC,INVALC, - INVALC,0x4649,INVALC,INVALC,INVALC,INVALC,0x5333,0x532F, - 0x5332,0x5334,0x5331,0x5330,INVALC,0x5961,0x5962,0x5963, - INVALC,INVALC,0x5E5E,0x5E5D,0x5E5F,INVALC,0x626D,0x626C, - INVALC,0x664F,INVALC,0x6650,0x664E,INVALC,INVALC,INVALC, - 0x6962,0x6963,INVALC,0x6D73,0x6F3E,0x7049,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x385C,0x3F40,INVALC,INVALC, - 0x226A,INVALC,INVALC,INVALC,0x226B,0x226D,INVALC,0x226E, - 0x226C,INVALC,INVALC,0x2522,0x2523,0x247B,INVALC,INVALC, - INVALC,INVALC,0x2521,INVALC,INVALC,INVALC,0x247C,0x247A, - 0x2479,0x247D,INVALC,0x247E,0x2D2D,INVALC,INVALC,INVALC, - 0x2856,INVALC,0x2855,0x2857,INVALC,INVALC,0x285C,INVALC, - 0x2852,0x2860,0x2866,INVALC,0x2863,INVALC,INVALC,0x2859, - 0x285F,0x2861,INVALC,0x2854,INVALC,INVALC,0x285A,INVALC, - INVALC,INVALC,INVALC,INVALC,0x285E,0x2858,0x2865,INVALC, - INVALC,INVALC,0x285D,INVALC,0x285B,INVALC,INVALC,INVALC, - 0x2853,INVALC,0x2862,0x2864,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2D34,0x2D37,INVALC, - INVALC,0x2D2E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2D43,0x2D3A,INVALC,INVALC,0x2D42,INVALC,INVALC,INVALC, - 0x2D32,INVALC,0x2D41,0x2D36,0x2D39,0x2D46,INVALC,INVALC, - 0x2D40,INVALC,0x2D3B,0x2D45,0x2D38,0x2D3C,0x2D3F,INVALC, - INVALC,0x2D30,0x2D44,0x2D3E,INVALC,INVALC,0x2D2F,INVALC, - /* Block 132, Array index 0x3600 */ - 0x2D33,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2D31, - 0x3247,INVALC,INVALC,INVALC,0x2D3D,0x2942,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x324A,INVALC, - INVALC,0x323A,INVALC,0x3245,0x3241,INVALC,0x3254,INVALC, - 0x324C,INVALC,0x3242,INVALC,0x324B,0x323C,0x3240,0x3257, - INVALC,0x324F,0x3246,INVALC,0x3255,0x3238,INVALC,0x324E, - INVALC,INVALC,INVALC,0x3237,INVALC,INVALC,INVALC,0x324D, - INVALC,INVALC,0x2D35,0x3F41,0x3248,INVALC,INVALC,0x323E, - INVALC,0x323F,0x3243,INVALC,0x3239,0x3251,INVALC,0x3250, - 0x3258,INVALC,INVALC,0x3256,0x3252,0x3249,0x3244,INVALC, - INVALC,0x323B,INVALC,0x3253,INVALC,INVALC,0x323D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3862,0x3864,0x3869,0x387D,INVALC, - INVALC,INVALC,0x3861,INVALC,INVALC,0x386C,0x3873,0x3879, - INVALC,0x3866,INVALC,0x386D,INVALC,INVALC,INVALC,0x387B, - 0x3876,INVALC,INVALC,0x3872,0x386E,0x3860,INVALC,0x3865, - 0x385D,INVALC,INVALC,INVALC,0x386A,0x3867,INVALC,0x3877, - INVALC,0x3868,0x3F6A,0x3870,INVALC,0x386F,INVALC,INVALC, - INVALC,INVALC,INVALC,0x385E,0x3863,0x3874,0x387A,INVALC, - 0x385F,0x386B,0x3871,INVALC,INVALC,INVALC,0x387C,0x3875, - 0x3878,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3F51, - 0x3F45,INVALC,0x3F62,0x3F6B,0x3F6E,INVALC,0x3F4D,0x3F66, - 0x3F4E,0x3F5C,INVALC,0x3F58,INVALC,INVALC,0x3F59,0x3F42, - INVALC,0x3F67,INVALC,INVALC,INVALC,0x3F64,0x3F5A,0x3F70, - 0x3F55,0x466D,INVALC,0x3F73,INVALC,0x3F53,0x3F5F,INVALC, - INVALC,0x3F57,0x3F71,0x3F50,0x3F49,0x3F54,INVALC,0x3F48, - 0x3F46,INVALC,0x3F68,0x3F4F,0x3F6C,INVALC,0x3F6D,INVALC, - INVALC,INVALC,INVALC,0x3F63,INVALC,0x3F5B,0x3F4B,INVALC, - INVALC,0x3F43,0x3F65,0x3F6F,0x3F4A,INVALC,0x3F74,0x3F56, - /* Block 133, Array index 0x3700 */ - INVALC,0x3F52,INVALC,INVALC,INVALC,INVALC,0x3F61,INVALC, - INVALC,0x3F5D,INVALC,INVALC,INVALC,INVALC,INVALC,0x3F5E, - 0x3F4C,0x3F60,0x3F47,0x3F69,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3F72,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3F44,INVALC,INVALC,INVALC,INVALC, - INVALC,0x466C,INVALC,0x4724,INVALC,0x4671,INVALC,0x466F, - 0x465A,INVALC,0x466A,0x467E,0x4666,INVALC,0x467D,0x4664, - INVALC,0x4674,0x4665,0x467B,INVALC,INVALC,INVALC,0x464F, - 0x4657,INVALC,0x4670,0x4668,0x4723,0x466B,INVALC,0x467C, - INVALC,INVALC,INVALC,0x466E,0x4676,0x465B,0x4675,INVALC, - 0x4728,0x4656,0x4677,INVALC,0x4726,INVALC,0x4650,INVALC, - INVALC,0x465E,0x465D,INVALC,INVALC,0x4661,0x4663,0x4672, - 0x4725,INVALC,INVALC,INVALC,INVALC,0x4655,INVALC,0x4659, - 0x4721,INVALC,INVALC,INVALC,INVALC,INVALC,0x4727,0x4678, - 0x4673,INVALC,INVALC,0x4660,0x465F,INVALC,0x4651,INVALC, - 0x4669,0x4652,0x4667,INVALC,INVALC,0x465C,0x4722,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4658,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4654,0x467A,0x4653, - INVALC,0x4D5A,INVALC,INVALC,0x4D49,INVALC,INVALC,0x4D33, - 0x4D51,INVALC,0x4D42,0x4D4C,INVALC,0x4D45,INVALC,0x4D36, - 0x4D54,0x4D35,0x4D48,INVALC,0x4D34,INVALC,INVALC,0x4D46, - 0x4D4F,0x4D4D,0x4D41,0x4D3C,0x4D3A,INVALC,0x4D3B,0x4D4E, - 0x4D59,0x4D43,INVALC,INVALC,0x4D3E,INVALC,0x4D52,INVALC, - INVALC,0x4D3D,0x4D37,0x4D47,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D3F,0x4D39,INVALC,INVALC,0x4679,INVALC,0x4D4A, - INVALC,INVALC,INVALC,INVALC,0x4D4B,0x4D40,0x4D38,0x4D53, - 0x4D44,INVALC,0x4D57,INVALC,0x4D56,INVALC,0x4D50,0x4D55, - INVALC,INVALC,INVALC,0x4D58,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x535C, - 0x535D,0x5350,0x534F,0x534B,INVALC,INVALC,INVALC,0x535F, - 0x535E,0x464E,0x5348,0x534C,0x5346,INVALC,0x5359,0x534A, - INVALC,0x5360,0x5343,0x5341,0x534D,0x5357,0x5352,INVALC, - /* Block 134, Array index 0x3800 */ - 0x5338,INVALC,0x5356,INVALC,INVALC,INVALC,INVALC,0x4662, - 0x5344,0x533B,0x533E,0x5364,0x5345,0x533C,0x533A,0x5337, - INVALC,INVALC,0x534E,INVALC,INVALC,0x5349,0x5351,INVALC, - 0x5361,0x5365,INVALC,INVALC,0x5340,0x5354,0x5358,0x533D, - 0x5362,INVALC,INVALC,INVALC,0x5335,INVALC,0x535B,0x533F, - 0x5353,0x5339,0x5347,0x5342,INVALC,INVALC,0x5355,0x5366, - 0x5363,0x535A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5336,INVALC,INVALC,0x5974,INVALC, - 0x596B,0x596E,INVALC,INVALC,0x5970,0x5965,0x596C,0x5972, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5967,0x5977,INVALC, - INVALC,0x5971,INVALC,0x5968,0x5A22,0x597A,0x5964,0x5E72, - 0x596A,INVALC,INVALC,0x5975,INVALC,0x5A21,INVALC,INVALC, - 0x597C,0x5969,0x596F,0x5973,0x596D,0x5A23,0x597E,0x597B, - INVALC,INVALC,INVALC,0x5966,0x5A24,INVALC,0x5978,INVALC, - INVALC,0x5976,INVALC,INVALC,INVALC,0x5979,0x5F21,0x5E6C, - 0x5E71,0x5E7E,0x5E70,0x5E68,0x5E6D,INVALC,INVALC,INVALC, - 0x5E61,0x5E79,0x5E7B,0x5E60,INVALC,0x5E7D,0x5E75,INVALC, - 0x5E7C,0x5E6E,INVALC,0x5E66,0x597D,0x5E76,0x5E73,0x5E62, - 0x5F23,INVALC,INVALC,INVALC,INVALC,0x5E64,0x5E74,INVALC, - 0x5F22,0x5E77,0x5E6A,INVALC,INVALC,0x5E78,0x5E6B,0x5F24, - 0x5E65,0x5E6F,0x5E7A,0x5E67,0x5E69,INVALC,INVALC,0x5E63, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x627D,INVALC,0x6273,0x626E,0x6274,0x627E,0x6324, - 0x6323,INVALC,INVALC,INVALC,INVALC,0x6275,0x6325,0x6278, - 0x6270,INVALC,0x6272,0x6271,0x6277,0x627C,0x626F,0x6276, - 0x627B,INVALC,INVALC,0x6279,INVALC,INVALC,0x627A,INVALC, - INVALC,0x6660,0x6321,INVALC,INVALC,INVALC,INVALC,0x6658, - 0x665C,0x6654,0x6657,INVALC,0x665F,INVALC,0x6664,0x665D, - INVALC,0x6655,0x6665,0x665E,INVALC,INVALC,0x6662,INVALC, - 0x6656,INVALC,INVALC,0x6651,0x6659,0x6653,INVALC,0x6663, - 0x6661,0x6652,0x665A,INVALC,INVALC,INVALC,0x696A,INVALC, - 0x665B,INVALC,INVALC,INVALC,INVALC,0x696F,0x6967,0x6965, - /* Block 135, Array index 0x3900 */ - 0x6969,0x6966,INVALC,INVALC,0x696B,0x696D,INVALC,INVALC, - INVALC,0x696C,INVALC,INVALC,0x696E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6C21,0x6C27,INVALC,0x6968,0x6C26,INVALC,0x6C2D,0x6C24, - 0x6C2B,0x6C2A,0x6964,0x6C25,0x6322,0x6C2E,0x6C23,0x6C28, - INVALC,0x6C2C,0x6C22,INVALC,0x6D77,INVALC,0x6C29,INVALC, - INVALC,0x6F43,0x6D78,0x6D76,0x6D74,0x6D75,0x6D79,INVALC, - INVALC,0x6F41,0x6F3F,0x6F44,0x6F42,INVALC,0x6F45,INVALC, - 0x6F40,INVALC,INVALC,0x704A,INVALC,INVALC,0x7134,0x7135, - 0x7136,INVALC,INVALC,0x7235,0x722D,0x226F,INVALC,INVALC, - INVALC,INVALC,0x325A,0x3259,INVALC,INVALC,0x3921,INVALC, - INVALC,0x387E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D5B,0x5367,0x5A25,0x5A27,0x5A26,INVALC,INVALC, - 0x5F25,0x6326,0x7173,INVALC,INVALC,0x2869,0x286A,0x2868, - 0x2867,INVALC,INVALC,0x2D4A,0x2D48,INVALC,INVALC,0x2D47, - INVALC,INVALC,INVALC,INVALC,0x2D49,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3266,0x3263,0x3261, - INVALC,INVALC,INVALC,0x3264,INVALC,0x325E,0x326D,INVALC, - 0x326F,0x325F,INVALC,INVALC,0x3270,0x326B,0x325D,0x3262, - 0x326C,0x3268,0x3265,INVALC,INVALC,0x326E,0x3260,INVALC, - INVALC,0x3269,0x325B,INVALC,INVALC,0x3267,INVALC,0x326A, - 0x325C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3928,INVALC,INVALC,0x392B,0x392E,INVALC,INVALC,0x3923, - 0x392C,0x392A,0x3927,0x392F,0x3930,0x3932,0x3933,0x3922, - INVALC,0x3925,0x3924,0x3931,INVALC,0x3926,INVALC,INVALC, - 0x3929,INVALC,INVALC,INVALC,0x392D,INVALC,INVALC,INVALC, - INVALC,0x4025,INVALC,0x3F78,INVALC,INVALC,0x472E,0x4023, - 0x3F75,INVALC,0x3F7A,INVALC,0x3F7E,0x3F7C,INVALC,INVALC, - INVALC,INVALC,0x3F76,0x3F79,INVALC,INVALC,0x3F77,INVALC, - 0x4024,0x4022,0x3F7B,0x3F7D,0x4021,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x472F,0x4735,0x472B, - 0x4731,INVALC,0x472D,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 136, Array index 0x3A00 */ - INVALC,0x4734,INVALC,INVALC,0x472A,0x4737,INVALC,INVALC, - INVALC,0x4733,INVALC,0x4729,0x472C,0x4736,0x4732,INVALC, - INVALC,0x4D7B,0x4D70,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D64,0x4D79,0x4D65,INVALC,INVALC,0x4D62,INVALC, - 0x4D6B,0x4D63,INVALC,0x4D5D,0x4D78,INVALC,0x4D75,0x4D76, - 0x4D5E,INVALC,0x4D6D,INVALC,0x4D67,0x4D6E,0x4D61,INVALC, - 0x4D7A,0x4D72,0x4D6C,0x4D5C,INVALC,0x4D73,INVALC,INVALC, - 0x4D77,INVALC,0x4D71,INVALC,0x4D6F,INVALC,0x4D69,INVALC, - 0x4D60,0x4D68,0x4D74,0x4D66,INVALC,INVALC,0x4D6A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4730,0x5379,0x5424, - 0x5378,0x5374,0x5371,INVALC,0x536F,INVALC,0x5368,INVALC, - 0x536E,INVALC,0x5373,0x5370,0x5422,0x537B,0x5375,0x537A, - INVALC,0x5372,0x5427,0x5369,0x536A,0x5423,INVALC,0x5428, - INVALC,0x5429,0x5377,0x4D5F,0x537D,0x5376,0x5421,0x537C, - INVALC,INVALC,INVALC,0x536D,INVALC,0x5426,INVALC,0x536B, - INVALC,0x5A32,0x537E,0x5425,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5A2F,INVALC,INVALC,0x5A39,0x5A35,INVALC,0x5A33, - 0x5A2E,0x5A3D,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A2A, - 0x5A36,0x5A37,0x5A2D,0x5A2C,0x5A3A,INVALC,0x5A30,0x5A2B, - 0x5A31,INVALC,0x5A3C,0x5A29,0x5A3B,0x5A38,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5A34,0x5A28,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5F27,INVALC,0x5F2B,0x5F28,0x5F2F,0x5F35, - 0x5F2A,INVALC,0x5F3E,INVALC,0x5F38,0x5F2D,0x5F39,0x5F34, - 0x5F3B,0x5F2C,INVALC,INVALC,0x5F2E,0x5F3C,0x5F26,0x5F3A, - INVALC,INVALC,0x5F32,0x5F31,0x5F36,0x5F29,INVALC,INVALC, - INVALC,0x5F30,0x5F37,INVALC,0x5F33,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6333,0x6331,INVALC,INVALC,0x6337, - 0x6335,0x6338,INVALC,0x632A,0x6332,0x633C,0x5F3D,0x632E, - INVALC,0x536C,0x6329,0x6336,0x6330,0x632D,0x6328,0x6327, - 0x633B,INVALC,0x632C,0x632B,INVALC,0x6334,INVALC,INVALC, - INVALC,INVALC,INVALC,0x632F,0x633A,INVALC,0x6669,0x666A, - INVALC,INVALC,0x6667,INVALC,0x666F,INVALC,INVALC,0x6671, - /* Block 137, Array index 0x3B00 */ - 0x6666,0x6339,0x6673,0x6668,INVALC,INVALC,0x666E,INVALC, - 0x6670,0x666B,0x6672,0x666D,0x666C,INVALC,INVALC,INVALC, - 0x6971,0x6972,INVALC,0x6974,INVALC,INVALC,0x6975,0x6973, - INVALC,0x6970,INVALC,0x6C31,0x6C34,0x6C30,INVALC,INVALC, - 0x6C32,INVALC,INVALC,INVALC,0x6C33,0x6D7E,0x6D7C,INVALC, - 0x6D7B,0x6C2F,0x6D7D,0x6C35,0x6D7A,INVALC,0x6F48,0x6F26, - 0x6F46,INVALC,0x6F47,0x6F49,INVALC,0x704D,INVALC,0x704C, - 0x704B,INVALC,INVALC,INVALC,0x715D,0x7175,0x7174,0x7176, - INVALC,0x2D4B,INVALC,0x3271,0x3272,INVALC,INVALC,INVALC, - 0x4026,INVALC,0x6C36,0x704E,INVALC,INVALC,0x2D4C,INVALC, - INVALC,INVALC,0x3934,INVALC,INVALC,0x4028,0x4027,INVALC, - INVALC,INVALC,0x542A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2D4D, - INVALC,0x2D4F,0x2D4E,INVALC,INVALC,0x3273,INVALC,0x327A, - INVALC,0x3278,0x3276,INVALC,0x327D,0x3274,0x3275,INVALC, - INVALC,INVALC,INVALC,INVALC,0x327E,INVALC,0x327C,0x3279, - 0x3277,INVALC,INVALC,0x327B,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3935,INVALC,INVALC,0x3945,INVALC,0x3947,INVALC, - INVALC,0x393B,INVALC,0x3946,INVALC,0x3936,INVALC,0x3942, - 0x393E,0x3940,0x393A,0x3941,INVALC,INVALC,INVALC,0x393D, - INVALC,0x393C,0x3938,INVALC,0x3943,INVALC,INVALC,0x393F, - 0x3937,INVALC,0x3939,INVALC,0x3944,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4033,INVALC,INVALC,INVALC,0x402F,0x4031, - 0x402C,0x402B,0x4029,INVALC,0x4030,0x4032,0x402E,INVALC, - 0x402D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4035,INVALC,0x4739,0x473F,0x473A,0x473B,INVALC, - 0x4740,INVALC,INVALC,INVALC,INVALC,INVALC,0x4738,0x402A, - INVALC,INVALC,0x473E,0x473D,INVALC,INVALC,0x473C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D7D, - INVALC,INVALC,INVALC,0x4E2A,0x4E29,INVALC,0x4E24,INVALC, - 0x4E28,0x4D7E,0x4E21,INVALC,INVALC,INVALC,0x4E26,0x4D7C, - INVALC,INVALC,0x4E22,0x4E27,0x4E25,INVALC,0x4E23,INVALC, - /* Block 138, Array index 0x3C00 */ - INVALC,0x4034,INVALC,INVALC,INVALC,0x542B,0x5432,INVALC, - INVALC,0x5436,INVALC,0x542E,0x542C,INVALC,0x5435,INVALC, - INVALC,0x5434,INVALC,INVALC,0x542D,INVALC,0x5433,0x542F, - 0x5430,0x5431,INVALC,INVALC,INVALC,INVALC,0x5A3E,0x5A4A, - INVALC,INVALC,0x5A45,0x5A47,INVALC,INVALC,0x5A3F,0x5A43, - INVALC,0x5A46,INVALC,INVALC,0x5A49,0x5A41,0x5A42,0x5A48, - 0x5A40,0x5A44,INVALC,0x5F40,INVALC,0x5F3F,INVALC,0x5F45, - INVALC,INVALC,INVALC,INVALC,0x5F41,INVALC,0x5F42,INVALC, - INVALC,0x5F43,0x5F46,INVALC,INVALC,INVALC,0x6341,INVALC, - INVALC,0x6344,INVALC,0x633E,0x6340,INVALC,INVALC,0x633F, - 0x6342,0x6343,0x5F44,0x633D,INVALC,INVALC,INVALC,0x6677, - 0x667A,0x667C,0x6675,0x6676,0x6679,0x667B,INVALC,INVALC, - INVALC,0x6678,0x6674,0x6976,INVALC,INVALC,0x6977,INVALC, - INVALC,0x6C38,INVALC,0x6C3A,INVALC,0x6C37,0x6C39,INVALC, - INVALC,0x6E21,INVALC,0x6F4C,0x6F4B,INVALC,0x6F4A,INVALC, - INVALC,0x7137,0x7138,0x713A,0x7139,INVALC,0x2270,INVALC, - INVALC,INVALC,0x3948,INVALC,INVALC,0x4741,INVALC,INVALC, - 0x667D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4036,INVALC,0x4038, - 0x4037,INVALC,INVALC,0x4742,INVALC,0x4E2B,0x4E2E,0x4E2D, - INVALC,0x4E2C,0x5437,0x5439,0x5438,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F47,0x5F49,0x5F48, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6721,0x667E, - INVALC,0x6978,INVALC,INVALC,INVALC,INVALC,0x6E23,0x6E22, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2D50,INVALC,0x394B,0x3949,INVALC, - INVALC,0x394A,0x403A,0x403B,0x4749,0x4039,INVALC,0x4743, - 0x4747,0x4746,0x4748,INVALC,0x4745,0x4744,0x474A,INVALC, - 0x4E31,0x4E2F,INVALC,0x4E30,0x543C,0x543A,INVALC,INVALC, - 0x543B,0x5A4B,0x5F4A,0x5F4B,INVALC,INVALC,0x6722,0x6979, - INVALC,INVALC,0x6C3B,0x6E24,INVALC,INVALC,0x6F4D,0x713B, - /* Block 139, Array index 0x3D00 */ - INVALC,INVALC,INVALC,INVALC,0x2D51,INVALC,INVALC,0x2D52, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3321,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x394F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x394D, - INVALC,INVALC,INVALC,INVALC,0x394E,INVALC,INVALC,INVALC, - 0x394C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x403E,INVALC,INVALC,INVALC,INVALC,INVALC,0x474F, - 0x4040,INVALC,INVALC,INVALC,0x4043,0x4044,INVALC,INVALC, - 0x4046,INVALC,0x4048,INVALC,0x4049,0x403D,0x403C,0x404A, - INVALC,0x4047,0x4045,INVALC,INVALC,INVALC,INVALC,0x4041, - 0x4042,0x403F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x474E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4756,0x4753,0x474B,0x4750, - INVALC,INVALC,0x4757,INVALC,INVALC,INVALC,INVALC,0x474D, - INVALC,0x4755,0x4751,0x4754,0x4752,INVALC,0x474C,INVALC, - INVALC,INVALC,INVALC,0x4E34,INVALC,INVALC,INVALC,0x4E36, - INVALC,INVALC,0x4E35,INVALC,INVALC,INVALC,0x4E37,INVALC, - INVALC,0x4E33,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4E32,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x543F,INVALC,0x544B,0x5444,INVALC,0x544C,0x5446,INVALC, - 0x5447,INVALC,INVALC,0x544A,INVALC,0x5448,0x543E,INVALC, - 0x5A56,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x543D, - INVALC,0x5441,INVALC,0x5440,0x5442,0x5443,INVALC,0x5445, - 0x5449,0x544D,INVALC,INVALC,INVALC,0x5A51,0x5A57,0x5A54, - 0x5A4C,0x5A58,0x5A4D,INVALC,0x5A53,INVALC,INVALC,INVALC, - 0x5A59,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A5B, - 0x5A55,INVALC,0x5A4E,INVALC,0x5A4F,0x5A50,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5A5C,INVALC,INVALC,INVALC,0x5A5A, - /* Block 140, Array index 0x3E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F50,0x5F59,0x5F56, - 0x5F58,INVALC,INVALC,0x5F51,INVALC,0x5F57,INVALC,0x5F53, - INVALC,0x5F4F,0x5F54,0x5F5B,0x5A52,0x5F55,0x5F4E,INVALC, - 0x5F4D,INVALC,0x5F5C,INVALC,0x5F5A,INVALC,0x5F4C,INVALC, - INVALC,INVALC,0x5F52,0x6347,0x6355,0x6350,0x6352,0x6346, - INVALC,INVALC,0x6345,INVALC,INVALC,INVALC,0x6354,0x634C, - 0x6349,0x634F,INVALC,0x6348,INVALC,0x634A,0x6353,0x6351, - INVALC,INVALC,0x6358,0x6356,0x634D,0x6357,0x634E,INVALC, - 0x6726,INVALC,0x672D,INVALC,INVALC,0x6C3E,INVALC,0x634B, - 0x6724,INVALC,0x6725,0x672A,INVALC,INVALC,INVALC,INVALC, - 0x6723,0x672C,0x672E,0x6727,0x6729,0x672B,0x6728,0x672F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x697C,INVALC,INVALC, - 0x697A,INVALC,INVALC,0x697E,INVALC,0x6A21,INVALC,0x6A22, - 0x697D,INVALC,0x697B,INVALC,INVALC,0x6A23,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6C3D,0x6C3C,0x6C3F,0x6C40,INVALC,INVALC,0x6E25,0x6E2A, - INVALC,INVALC,0x6E27,INVALC,0x6E26,0x6E29,0x6E28,INVALC, - 0x6F51,INVALC,INVALC,0x6F50,0x6F4E,INVALC,0x6F4F,INVALC, - INVALC,INVALC,INVALC,INVALC,0x704F,0x7050,INVALC,INVALC, - 0x713C,0x713D,INVALC,INVALC,INVALC,INVALC,0x7177,0x7236, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 141, Array index 0x3F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3950,INVALC,0x3951,0x4758,0x4E38,0x544E,INVALC, - INVALC,INVALC,0x6359,0x6730,INVALC,0x6F52,INVALC,0x3322, - INVALC,INVALC,0x475A,0x4759,INVALC,0x544F,INVALC,0x5F5D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x286B,0x3323, - INVALC,INVALC,INVALC,INVALC,0x3952,0x3953,INVALC,0x404B, - INVALC,INVALC,INVALC,INVALC,0x475C,0x475B,0x475D,INVALC, - 0x4E39,0x4E3A,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F61, - 0x5F5E,0x5F60,0x5F5F,INVALC,INVALC,0x635A,0x6732,0x6731, - 0x2524,INVALC,INVALC,0x3324,INVALC,0x3954,INVALC,INVALC, - 0x404D,0x404C,INVALC,INVALC,0x475F,0x4760,0x475E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5450, - 0x5A5F,0x5A5D,0x5A5E,INVALC,0x5F63,0x5F62,INVALC,0x635D, - 0x635C,0x635B,0x6733,INVALC,0x7178,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3326,0x3325,0x3955,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4050,INVALC,INVALC,INVALC,INVALC,0x4052,INVALC,INVALC, - INVALC,0x4051,0x404E,INVALC,INVALC,INVALC,0x404F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4761,INVALC,INVALC,0x4E3C, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E3B,INVALC,0x4E3D, - INVALC,0x5453,0x5455,INVALC,INVALC,0x5456,INVALC,0x5452, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5451,INVALC,0x5457, - 0x5454,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A61,INVALC, - 0x5A63,0x5A62,INVALC,0x5A64,INVALC,0x5A60,INVALC,INVALC, - INVALC,0x5F64,INVALC,INVALC,INVALC,INVALC,0x635E,INVALC, - /* Block 142, Array index 0x4000 */ - 0x6361,INVALC,0x6360,INVALC,0x635F,INVALC,0x6734,0x6735, - INVALC,0x6736,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6C41,INVALC,INVALC,INVALC,0x6C42,0x6E2B,INVALC,INVALC, - INVALC,0x6F53,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4762,0x4763,INVALC,INVALC,0x5A65,INVALC,0x5A66,0x5F65, - INVALC,INVALC,0x2D53,INVALC,INVALC,INVALC,0x3327,INVALC, - 0x3328,0x3958,INVALC,0x3957,INVALC,0x3956,INVALC,INVALC, - 0x4054,INVALC,INVALC,INVALC,0x4053,INVALC,INVALC,INVALC, - INVALC,0x4055,INVALC,INVALC,0x4765,0x4768,0x4766,0x4767, - 0x476B,0x4764,0x476C,0x4769,0x476A,INVALC,0x4E3E,INVALC, - INVALC,INVALC,INVALC,0x545B,0x5459,INVALC,INVALC,INVALC, - 0x5458,0x545A,INVALC,INVALC,INVALC,0x5A67,INVALC,0x5A68, - INVALC,INVALC,0x6738,0x673A,0x6737,0x6739,0x6A24,0x6C43, - INVALC,INVALC,0x715E,INVALC,INVALC,0x3329,0x332B,0x332A, - INVALC,0x395B,INVALC,INVALC,0x3959,INVALC,INVALC,0x395C, - INVALC,0x395D,0x395A,INVALC,INVALC,0x4061,INVALC,0x4059, - 0x405F,INVALC,INVALC,INVALC,INVALC,0x4058,INVALC,0x405C, - 0x4772,INVALC,INVALC,0x4057,INVALC,0x405D,0x405A,0x4060, - 0x4056,0x405E,INVALC,INVALC,0x405B,INVALC,INVALC,INVALC, - 0x476E,INVALC,0x4775,0x4774,INVALC,INVALC,INVALC,0x4776, - INVALC,0x4773,INVALC,0x4778,0x476F,INVALC,0x4771,INVALC, - 0x476D,0x4770,0x4777,INVALC,0x4779,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E43,0x4E49,0x4E41, - /* Block 143, Array index 0x4100 */ - 0x4E4A,INVALC,0x4E40,0x4E45,0x4E4B,0x4E48,0x4E47,0x4E46, - INVALC,0x4E3F,0x4E44,INVALC,INVALC,0x4E42,INVALC,INVALC, - INVALC,0x5464,0x5469,0x546B,0x5468,0x5461,0x5463,0x546D, - 0x546A,0x5465,0x546E,0x5462,0x546C,INVALC,INVALC,INVALC, - 0x545C,INVALC,INVALC,0x545D,0x545F,0x545E,0x5466,0x5467, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5460,INVALC, - 0x5A72,INVALC,INVALC,0x5A69,INVALC,INVALC,0x5A6E,INVALC, - 0x5A6B,INVALC,INVALC,INVALC,0x5A6F,0x5A70,0x5A6A,0x5A73, - 0x5A6C,0x5A71,INVALC,INVALC,INVALC,0x5A6D,INVALC,0x5F6B, - INVALC,INVALC,INVALC,INVALC,0x5F6A,0x5F67,0x5F66,INVALC, - 0x5F69,INVALC,INVALC,0x5F68,0x636F,INVALC,0x6366,0x6365, - INVALC,INVALC,0x636B,0x636A,0x6362,0x636D,0x6367,INVALC, - 0x6364,0x636C,0x6363,INVALC,INVALC,0x6368,INVALC,0x6369, - INVALC,0x636E,0x673E,INVALC,INVALC,0x673B,INVALC,0x673F, - INVALC,INVALC,INVALC,0x673D,INVALC,INVALC,INVALC,INVALC, - 0x673C,INVALC,INVALC,0x6740,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6A27,INVALC,0x6A25,INVALC, - 0x6A26,INVALC,INVALC,INVALC,0x6C45,INVALC,0x6C44,INVALC, - 0x6E30,INVALC,0x6E2F,INVALC,0x6E2D,0x6E2C,0x6E31,0x6E32, - 0x6F54,INVALC,0x6E2E,INVALC,INVALC,0x7054,0x7051,0x7052, - 0x7053,INVALC,INVALC,0x7140,0x713F,0x713E,0x715F,INVALC, - 0x722E,0x7179,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5A74,INVALC,INVALC, - INVALC,INVALC,0x6741,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x717A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x332C,INVALC,0x332D,INVALC,INVALC,INVALC,0x3962, - 0x395E,INVALC,INVALC,INVALC,0x3961,0x3960,0x395F,INVALC, - 0x3963,0x3964,INVALC,INVALC,INVALC,0x4068,0x4066,0x406A, - 0x406B,0x4071,INVALC,0x406D,0x406F,INVALC,0x4067,0x4062, - INVALC,0x406E,INVALC,INVALC,0x4070,0x4069,0x406C,0x4063, - INVALC,0x4065,0x4064,INVALC,INVALC,INVALC,INVALC,0x477B, - /* Block 144, Array index 0x4200 */ - 0x477D,0x477C,0x4823,INVALC,INVALC,0x477E,0x477A,0x4821, - 0x4822,INVALC,INVALC,0x4824,INVALC,0x4E4F,0x4E4E,INVALC, - 0x4E4C,0x4E4D,INVALC,INVALC,INVALC,INVALC,0x5475,0x5476, - 0x5471,INVALC,0x5472,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5473,INVALC,INVALC,0x5474,0x5470,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x546F,INVALC,0x5A76,INVALC, - INVALC,INVALC,0x5A78,INVALC,0x5A7B,0x5A77,0x5A75,0x5A7A, - INVALC,0x5A79,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5F6D,INVALC,INVALC,0x5F6C,INVALC,INVALC,0x6370,0x6371, - 0x6372,INVALC,INVALC,0x6373,INVALC,INVALC,INVALC,0x6744, - 0x6745,0x6743,0x6742,0x6746,INVALC,0x6A2B,0x6A29,0x6A2A, - 0x6A2C,0x6A28,0x6A2D,0x6C47,INVALC,0x6C48,0x6C46,INVALC, - 0x6E33,INVALC,0x6E34,0x6F56,0x6F55,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6747,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2526, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2525,INVALC,0x286D,INVALC,0x286F,INVALC,INVALC, - INVALC,INVALC,0x286C,0x286E,INVALC,0x2871,0x2870,0x2872, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2D57,0x2D55,INVALC,0x2D54,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2D56,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x332F,0x3335,INVALC, - INVALC,INVALC,INVALC,0x3332,0x3334,INVALC,0x332E,0x3331, - /* Block 145, Array index 0x4300 */ - INVALC,INVALC,0x3330,INVALC,0x3333,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3966,0x3969,INVALC,INVALC,INVALC, - INVALC,0x3967,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3968,INVALC,INVALC,INVALC, - INVALC,0x396A,INVALC,INVALC,0x3965,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4072,INVALC,0x4074, - INVALC,INVALC,INVALC,INVALC,0x4073,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4829,INVALC,0x4826, - INVALC,INVALC,INVALC,INVALC,0x4827,INVALC,INVALC,INVALC, - INVALC,0x4828,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4825,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x547A, - INVALC,INVALC,INVALC,0x547B,INVALC,INVALC,INVALC,0x5479, - 0x5478,INVALC,INVALC,0x5477,INVALC,INVALC,0x5A7C,INVALC, - INVALC,0x5A7D,INVALC,0x5A7E,INVALC,INVALC,0x5F6F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F6E,0x5B21,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6A2E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2275,INVALC,INVALC,0x2272, - 0x2273,0x2271,INVALC,0x2274,INVALC,INVALC,0x252A,0x2527, - 0x252C,0x2528,INVALC,INVALC,INVALC,0x2529,INVALC,0x252B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2875, - 0x2877,INVALC,0x2873,0x2876,0x2874,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2D59,0x2D5D,0x2D5A, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2D5C,INVALC,0x2D5E, - 0x2D60,INVALC,INVALC,0x2D5F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3971,0x2D5B,0x3336,0x333F, - 0x333D,0x3338,0x3339,0x333E,0x3340,INVALC,INVALC,0x333B, - 0x3337,INVALC,INVALC,0x333A,0x3341,0x333C,INVALC,INVALC, - INVALC,0x3974,0x396C,0x3972,0x3973,INVALC,INVALC,0x396B, - 0x396D,0x2D58,0x396F,0x3970,0x396E,INVALC,INVALC,INVALC, - INVALC,0x407B,0x5B22,0x407C,0x4079,INVALC,INVALC,0x4078, - /* Block 146, Array index 0x4400 */ - 0x407E,0x407D,INVALC,0x4123,0x4077,0x4122,0x4075,0x4121, - 0x407A,INVALC,INVALC,0x4830,INVALC,0x482B,0x4831,0x482C, - 0x482A,0x482D,INVALC,INVALC,0x482F,INVALC,0x482E,INVALC, - INVALC,INVALC,0x4E56,0x4E59,0x4E51,0x4E55,INVALC,0x4E54, - 0x4E52,0x4E58,0x4E53,0x4E50,0x4E57,INVALC,0x5523,INVALC, - 0x6374,0x547E,0x5521,0x547D,0x4076,INVALC,0x5524,0x547C, - INVALC,INVALC,0x5522,0x5B23,INVALC,0x5B24,0x5B25,INVALC, - 0x5F70,INVALC,0x6375,0x6376,INVALC,INVALC,0x6377,0x6749, - 0x6748,0x6A30,INVALC,0x6A2F,0x6C4A,0x6C4B,0x6C49,0x6E35, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3343,0x3344, - 0x3342,INVALC,INVALC,0x3978,INVALC,0x3979,0x3975,INVALC, - 0x3976,INVALC,0x3977,INVALC,INVALC,INVALC,INVALC,0x4126, - 0x4128,0x4124,0x4127,INVALC,0x4125,INVALC,INVALC,INVALC, - 0x4279,INVALC,INVALC,INVALC,INVALC,INVALC,0x4832,0x4833, - INVALC,INVALC,0x4E5B,0x4E5D,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E5C,0x4E5A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x552B,0x5528,0x5529,INVALC,0x552A,0x5525,0x5526,INVALC, - INVALC,INVALC,0x5527,INVALC,INVALC,0x5B29,INVALC,0x5B2A, - 0x5B27,0x5B28,INVALC,0x5B26,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F74,0x5F71,0x5F73,INVALC,0x5F77,INVALC,0x5F75, - 0x5F78,0x5F76,0x5F72,INVALC,INVALC,0x6379,INVALC,0x637A, - 0x6378,INVALC,0x637C,INVALC,INVALC,0x674B,INVALC,0x637B, - 0x674A,INVALC,0x6A33,0x6A34,INVALC,0x6A32,INVALC,0x6A31, - INVALC,0x6C4C,INVALC,INVALC,0x6F57,0x7056,0x7055,INVALC, - INVALC,INVALC,0x7057,0x7160,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2D62,0x2D61,0x3345,INVALC,INVALC, - INVALC,INVALC,0x3347,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3346,INVALC,0x3A21,INVALC,INVALC,INVALC, - 0x3A26,INVALC,0x3A23,0x3A24,0x397A,INVALC,0x3A27,INVALC, - INVALC,0x397C,INVALC,0x397D,0x397B,INVALC,INVALC,0x3A25, - 0x397E,0x3A22,INVALC,INVALC,INVALC,0x4134,INVALC,0x4133, - /* Block 147, Array index 0x4500 */ - 0x4131,0x4129,0x4138,0x412C,0x4136,0x413D,0x4135,INVALC, - INVALC,INVALC,0x412A,INVALC,0x4130,INVALC,INVALC,0x412F, - INVALC,INVALC,0x4132,INVALC,INVALC,INVALC,0x413E,0x413C, - INVALC,0x413B,0x412D,INVALC,0x4139,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x413A,0x412B,0x412E,0x4137, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4F22,0x483D,INVALC, - 0x4836,0x4849,0x4852,0x4839,INVALC,INVALC,0x4846,INVALC, - INVALC,INVALC,0x4837,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x483F,INVALC, - 0x4834,INVALC,0x483E,INVALC,0x4850,INVALC,0x484E,0x4842, - 0x484C,INVALC,0x4835,0x484F,0x484A,INVALC,0x4851,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x483B,INVALC, - 0x4843,0x4847,INVALC,0x484B,INVALC,0x483A,0x4838,0x4844, - INVALC,INVALC,INVALC,INVALC,0x4841,0x4840,INVALC,0x4845, - 0x4848,INVALC,0x484D,INVALC,INVALC,INVALC,0x4E60,INVALC, - INVALC,0x4E6A,0x4E62,INVALC,INVALC,0x4E73,0x4E7B,0x4E6C, - INVALC,INVALC,0x4E70,0x483C,INVALC,INVALC,0x4E77,0x4E7C, - 0x4E74,INVALC,0x4E76,0x4F21,0x4E78,0x4E66,0x4E6F,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4E64,0x4E71,INVALC,0x4E6B, - INVALC,0x4E79,0x4E68,0x4E61,INVALC,0x4E7E,INVALC,INVALC, - 0x4E63,0x4E75,0x4E72,0x4E6D,0x4E5F,0x4E5E,0x4E67,0x4E7A, - INVALC,0x4E7D,0x4E65,0x4E69,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x554D,0x5549,0x5531,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x552F,INVALC,0x553B,0x552D,0x552E,INVALC,0x554C,INVALC, - 0x553E,0x5543,0x553D,0x5B3C,0x5539,0x5541,0x553F,0x5532, - 0x552C,0x5547,INVALC,0x5548,INVALC,0x5542,INVALC,0x5537, - 0x5535,0x5530,INVALC,INVALC,INVALC,0x5538,0x5545,0x5534, - 0x5544,0x554A,INVALC,INVALC,INVALC,INVALC,0x5540,0x5546, - 0x553C,0x5536,INVALC,INVALC,INVALC,INVALC,0x4E6E,0x553A, - INVALC,0x5533,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B41, - INVALC,0x5B40,0x5B3E,0x5B50,INVALC,INVALC,0x5B4D,0x5B45, - /* Block 148, Array index 0x4600 */ - 0x5B4F,0x5B37,0x5B43,INVALC,INVALC,INVALC,0x5B2F,INVALC, - 0x5B2D,0x5B4E,INVALC,0x5B4C,0x5B4B,0x5B3B,0x5B3A,0x5B30, - INVALC,INVALC,0x5B36,0x5B3F,0x5B4A,INVALC,0x5B51,INVALC, - INVALC,INVALC,INVALC,0x5B34,INVALC,0x5B3D,0x5B2C,0x5B2E, - INVALC,INVALC,INVALC,0x5B35,0x5B44,0x554B,INVALC,0x5B2B, - INVALC,0x5B46,0x5B49,INVALC,INVALC,0x5B39,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5B42,0x5B48,INVALC,INVALC, - 0x5B32,0x5B47,INVALC,INVALC,0x5B33,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B38,0x5F7E, - INVALC,0x6025,INVALC,INVALC,0x602B,INVALC,0x6039,0x6031, - 0x6026,0x6027,0x6030,INVALC,INVALC,0x602F,0x5F7D,0x602E, - 0x6022,0x603A,INVALC,INVALC,0x6023,INVALC,0x6036,INVALC, - 0x6028,0x6035,INVALC,0x6037,0x5F7C,INVALC,INVALC,0x6038, - INVALC,INVALC,0x602C,INVALC,INVALC,0x6029,INVALC,INVALC, - INVALC,0x6032,INVALC,INVALC,INVALC,INVALC,0x6024,0x6033, - INVALC,0x602D,0x5B31,0x6034,0x6021,INVALC,INVALC,INVALC, - 0x642F,INVALC,INVALC,0x5F7A,INVALC,INVALC,INVALC,INVALC, - 0x642C,0x6425,INVALC,INVALC,0x637E,0x6430,0x6427,0x602A, - INVALC,0x6432,0x6421,INVALC,INVALC,0x642B,INVALC,INVALC, - INVALC,0x642D,INVALC,0x6423,INVALC,0x6424,0x6429,0x642E, - INVALC,0x5F79,INVALC,0x6437,0x6434,0x6761,0x642A,0x6426, - 0x6435,0x6756,0x6428,INVALC,INVALC,INVALC,INVALC,0x5F7B, - INVALC,0x6431,0x6433,INVALC,0x6436,0x637D,INVALC,0x6422, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x675F,INVALC,0x674F,INVALC,0x675D,INVALC,INVALC,0x674D, - INVALC,INVALC,0x6758,INVALC,0x6754,INVALC,0x675E,0x674E, - 0x6751,INVALC,0x6760,INVALC,0x6759,0x675C,INVALC,INVALC, - INVALC,0x6755,0x6750,INVALC,INVALC,INVALC,0x674C,INVALC, - INVALC,INVALC,INVALC,0x675B,INVALC,INVALC,0x6757,0x6762, - INVALC,INVALC,INVALC,INVALC,0x6753,INVALC,0x675A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6A41,0x6A50,0x6A43, - 0x6A4A,0x6752,0x6A48,0x6A37,0x6A4E,INVALC,0x6A3B,0x6A4D, - /* Block 149, Array index 0x4700 */ - 0x6A42,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A52,0x6A44, - INVALC,0x6A49,0x6A4C,0x6A35,0x6A4F,0x6A40,0x6A45,0x6A39, - 0x6A3D,0x6A51,0x6A47,0x6A36,0x6A3A,0x6A3C,0x6A46,INVALC, - INVALC,0x6A3F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6A38,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6A3E,0x6C50,0x6C54,INVALC,0x6C56,INVALC,INVALC,INVALC, - 0x6C52,0x6C58,INVALC,INVALC,INVALC,INVALC,0x6C4F,0x6C55, - INVALC,0x6C53,INVALC,0x6C4E,0x6A4B,0x6C51,INVALC,0x6C4D, - 0x6C57,INVALC,INVALC,INVALC,INVALC,0x6E3C,0x6E3F,0x6E3B, - 0x6E3D,0x6E3E,0x6E38,0x6E39,0x6E36,INVALC,INVALC,0x6E3A, - 0x6E37,INVALC,INVALC,INVALC,INVALC,0x6F59,INVALC,0x6F5B, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6F5A,0x6F5C,INVALC, - INVALC,INVALC,0x6F58,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7059,0x705A,INVALC,0x7058,INVALC,0x7142,0x7141,0x7143, - INVALC,0x7144,INVALC,0x7145,0x7161,0x7164,0x7163,INVALC, - 0x7162,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7230,0x7231,0x722F,0x7237,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 150, Array index 0x4800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3A28,0x413F,0x554E,0x6763,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A29,INVALC, - 0x3A2A,INVALC,INVALC,INVALC,0x4141,0x4140,INVALC,INVALC, - 0x4142,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4856,0x4854,INVALC,0x4855,0x4853, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5550,0x554F,INVALC,0x5551,INVALC, - 0x5552,INVALC,INVALC,INVALC,INVALC,0x5B59,0x5B57,0x6040, - INVALC,0x5B55,0x5B56,INVALC,0x5B52,0x5B5A,0x5B54,0x5B58, - 0x603C,INVALC,INVALC,0x603E,INVALC,0x603F,INVALC,0x603B, - INVALC,0x603D,INVALC,INVALC,INVALC,0x5B53,INVALC,INVALC, - INVALC,0x643A,0x6438,0x6439,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6764,0x6765,INVALC,INVALC,0x6A53,0x6A55, - 0x6A54,INVALC,INVALC,0x6C5B,0x6C5A,0x6C59,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 151, Array index 0x4900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2169,INVALC, - 0x2278,INVALC,0x2276,0x2279,0x2277,INVALC,INVALC,INVALC, - 0x252E,INVALC,INVALC,INVALC,INVALC,0x2530,INVALC,0x252F, - 0x252D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2878,0x287B,INVALC,0x287A,0x2879,INVALC,INVALC, - INVALC,INVALC,INVALC,0x287C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2D67,INVALC,INVALC,INVALC,0x2D68,0x2D64, - INVALC,0x2D65,INVALC,0x2D66,0x2D63,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3348,INVALC,INVALC,0x3349, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3A2D,INVALC,0x3A2C,INVALC,0x3A2F, - INVALC,0x3A2E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A2B,INVALC,0x4144,INVALC, - 0x4148,INVALC,INVALC,0x4147,INVALC,INVALC,INVALC,0x4143, - 0x4145,0x4146,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4859,0x4857,0x4858,INVALC,INVALC,INVALC,0x485A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F23,INVALC, - INVALC,0x4F24,0x5554,INVALC,0x5553,INVALC,INVALC,INVALC, - INVALC,0x5B5B,INVALC,INVALC,0x6043,INVALC,0x6041,INVALC, - 0x6042,INVALC,INVALC,0x643B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x334A,INVALC,INVALC,0x3A30, - INVALC,INVALC,0x4149,0x414B,INVALC,INVALC,INVALC,INVALC, - 0x414A,INVALC,INVALC,INVALC,INVALC,INVALC,0x485B,INVALC, - INVALC,INVALC,INVALC,0x5555,0x5B5C,INVALC,INVALC,0x643C, - 0x6440,INVALC,0x643D,INVALC,INVALC,0x6441,INVALC,0x643F, - INVALC,0x6766,INVALC,INVALC,INVALC,0x705B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x414D,0x414C,INVALC,INVALC,INVALC,0x485F,INVALC,INVALC, - 0x485E,INVALC,0x485C,INVALC,INVALC,0x485D,INVALC,0x4F25, - /* Block 152, Array index 0x4A00 */ - INVALC,INVALC,0x5558,INVALC,INVALC,0x5556,INVALC,INVALC, - 0x5557,INVALC,INVALC,0x5B5D,INVALC,INVALC,INVALC,INVALC, - 0x5B5F,INVALC,0x5B5E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6046,0x6048,INVALC,INVALC,INVALC,0x6047,INVALC,0x6045, - 0x6044,INVALC,0x6443,0x6442,INVALC,0x6444,0x676B,INVALC, - 0x676A,0x6767,INVALC,0x6768,0x6769,INVALC,0x6A56,0x6A57, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6C5C,INVALC,INVALC, - INVALC,INVALC,0x6C5D,INVALC,INVALC,INVALC,INVALC,0x6E40, - INVALC,INVALC,INVALC,0x705D,INVALC,INVALC,0x705C,0x705E, - INVALC,0x7146,INVALC,0x717B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4F26,INVALC,0x5559,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3A31,INVALC,0x414E,INVALC,0x4150,INVALC, - 0x414F,INVALC,0x4863,0x4860,INVALC,INVALC,INVALC,0x4861, - 0x4862,INVALC,0x4F28,0x4F2D,INVALC,0x4F27,0x4F29,0x4F30, - 0x4F2B,0x4F2F,0x4F2C,0x4F2A,0x4F2E,INVALC,INVALC,INVALC, - 0x555C,INVALC,0x555A,INVALC,INVALC,INVALC,0x555B,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5B62,INVALC,INVALC,0x5B61, - INVALC,0x5B60,0x6049,INVALC,0x604B,0x604D,0x604C,INVALC, - INVALC,0x604A,0x644B,INVALC,0x6449,0x644C,INVALC,INVALC, - 0x6447,INVALC,0x644A,0x6448,0x6445,INVALC,0x6446,INVALC, - INVALC,INVALC,INVALC,0x676C,INVALC,INVALC,0x676E,0x676D, - INVALC,0x6A58,INVALC,0x6A59,INVALC,INVALC,INVALC,0x6C5E, - INVALC,INVALC,INVALC,INVALC,0x6F5D,0x6F5E,INVALC,0x705F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4F32,0x4F31,0x555E, - 0x555D,INVALC,INVALC,INVALC,0x604F,0x604E,0x644F,0x644D, - 0x6450,0x644E,INVALC,INVALC,INVALC,0x676F,0x6770,0x6771, - INVALC,0x6C5F,INVALC,0x6E41,INVALC,0x7060,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5B63,0x6050,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5B64,INVALC,0x6451,INVALC,INVALC,0x6A5A,0x6A5B,INVALC, - /* Block 153, Array index 0x4B00 */ - 0x6F5F,INVALC,INVALC,INVALC,0x3A32,INVALC,INVALC,0x4151, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4865,0x4866,0x4864, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F33,INVALC, - INVALC,INVALC,INVALC,0x5565,INVALC,0x5560,0x555F,INVALC, - 0x5564,INVALC,INVALC,INVALC,INVALC,INVALC,0x5561,0x5566, - 0x5563,0x5562,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B66, - INVALC,INVALC,0x5B67,INVALC,INVALC,0x5B65,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6051,INVALC,0x6056,0x6052,0x6055,INVALC,INVALC, - 0x5E41,0x6054,0x6053,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6452,0x6453,0x6454,INVALC,INVALC,INVALC,INVALC,0x6775, - INVALC,0x6773,INVALC,INVALC,0x6772,0x6774,INVALC,0x6A5F, - 0x6A5C,INVALC,0x6A5D,0x6A5E,0x6C60,INVALC,INVALC,INVALC, - INVALC,0x6E43,0x6E42,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7147,0x717C,0x717D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4152,INVALC,INVALC,0x4867,0x4F34,0x4F35,INVALC, - INVALC,INVALC,0x5567,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6455,INVALC,INVALC,0x6778,INVALC,0x6777,0x6779,0x6776, - 0x6C63,0x6A60,0x6A61,INVALC,INVALC,INVALC,0x6C62,INVALC, - INVALC,0x6C61,INVALC,0x6E44,0x717E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x334B,INVALC,0x3A33,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4153,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4868,INVALC, - INVALC,0x4869,0x5569,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 154, Array index 0x4C00 */ - 0x4F37,INVALC,0x4F36,INVALC,INVALC,INVALC,INVALC,0x4F38, - 0x5568,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x556A,INVALC,INVALC,0x556B,0x556E,0x556C,0x556D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B69, - INVALC,INVALC,INVALC,INVALC,0x5B68,0x6057,INVALC,0x5B6A, - INVALC,0x5B6B,0x605A,0x6058,0x6059,0x605E,INVALC,0x605D, - 0x6060,0x605F,0x605C,0x605B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6458,INVALC,0x6457,INVALC,INVALC,INVALC, - INVALC,0x6456,INVALC,0x677C,INVALC,INVALC,INVALC,0x677B, - 0x677A,INVALC,INVALC,0x6A66,0x6A65,INVALC,0x6A63,INVALC, - 0x6A62,INVALC,INVALC,0x6A67,0x6E45,INVALC,0x6C65,INVALC, - 0x6C64,0x6A64,INVALC,0x6E46,INVALC,INVALC,INVALC,0x7148, - INVALC,0x7221,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A34, - 0x6061,INVALC,INVALC,INVALC,0x4F3A,0x4F39,0x5B6C,INVALC, - INVALC,0x6063,INVALC,0x6062,INVALC,INVALC,0x677D,0x677E, - INVALC,INVALC,INVALC,0x7222,INVALC,INVALC,INVALC,0x486A, - 0x486C,INVALC,0x486B,INVALC,INVALC,0x486D,INVALC,INVALC, - INVALC,0x4F3C,0x4F3E,0x4F3D,INVALC,0x4F40,INVALC,INVALC, - INVALC,INVALC,0x4F3F,0x4F3B,INVALC,INVALC,INVALC,0x4F41, - INVALC,0x5575,INVALC,0x5578,0x557A,0x5570,0x5574,0x5571, - INVALC,INVALC,INVALC,0x5572,0x5573,INVALC,0x5576,0x5579, - 0x5577,INVALC,INVALC,INVALC,0x556F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5B72,0x5B70,0x5B6F,INVALC,0x5B75, - INVALC,0x5B74,0x5B73,INVALC,0x5B6E,INVALC,0x5B6D,INVALC, - 0x5B71,INVALC,INVALC,INVALC,0x6066,INVALC,0x606A,0x6067, - 0x6069,0x6068,0x6065,0x606B,0x606E,0x606C,0x606D,INVALC, - /* Block 155, Array index 0x4D00 */ - INVALC,INVALC,0x6064,0x606F,0x645D,0x6460,0x6462,0x6461, - INVALC,0x645B,0x645F,0x645A,INVALC,0x645C,INVALC,0x6459, - INVALC,0x645E,INVALC,INVALC,0x682D,0x6822,INVALC,INVALC, - INVALC,INVALC,0x6821,0x6826,0x682C,0x6824,0x682B,INVALC, - 0x6828,INVALC,0x6827,0x682A,0x6825,0x6823,INVALC,0x6829, - INVALC,0x6A6E,0x6A6C,INVALC,0x6A6B,0x6A71,0x6A6F,INVALC, - INVALC,0x6A6A,0x6A68,INVALC,0x6A69,INVALC,0x6A6D,INVALC, - 0x6A70,0x6C66,0x6C6C,INVALC,INVALC,0x6C67,INVALC,0x6C6D, - INVALC,0x6C6B,0x6C6A,INVALC,0x6C69,INVALC,0x6C68,INVALC, - 0x6E4C,0x6E4E,0x6E4D,INVALC,0x6E4A,INVALC,0x6E47,0x6E4B, - 0x6E50,INVALC,0x6E4F,0x6E48,0x6E49,INVALC,0x6F60,INVALC, - INVALC,0x6F61,INVALC,INVALC,INVALC,INVALC,0x7061,INVALC, - 0x7165,INVALC,INVALC,INVALC,0x7223,INVALC,0x7224,0x7225, - 0x7233,0x7232,INVALC,0x723B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x486F,INVALC,0x486E,INVALC,INVALC, - INVALC,0x4F42,INVALC,0x557B,0x5B78,INVALC,INVALC,INVALC, - INVALC,0x5B76,INVALC,0x5B79,INVALC,INVALC,0x6070,0x5B77, - 0x6463,INVALC,0x682E,INVALC,INVALC,INVALC,0x6A74,0x6A72, - INVALC,INVALC,0x6A73,INVALC,INVALC,0x6C6E,INVALC,INVALC, - 0x6E51,INVALC,INVALC,INVALC,INVALC,0x7062,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6464,INVALC,INVALC,0x334C, - INVALC,INVALC,INVALC,0x4F43,INVALC,INVALC,INVALC,0x4F44, - INVALC,INVALC,INVALC,0x557D,0x557C,INVALC,INVALC,INVALC, - INVALC,0x5622,0x5621,0x557E,INVALC,INVALC,0x5B7A,0x5B7D, - INVALC,0x5B7C,0x5B7B,INVALC,0x6074,0x6072,0x6071,INVALC, - /* Block 156, Array index 0x4E00 */ - INVALC,0x6073,INVALC,INVALC,0x6466,0x6467,INVALC,INVALC, - 0x6465,INVALC,0x6830,0x682F,0x6832,INVALC,0x6831,INVALC, - 0x6A75,0x6A77,0x6A76,INVALC,INVALC,0x6C6F,0x6C72,0x6C70, - 0x6C71,0x6E52,INVALC,INVALC,INVALC,INVALC,0x6F62,0x6F63, - 0x6F64,INVALC,INVALC,INVALC,0x7226,INVALC,INVALC,INVALC, - INVALC,0x6468,INVALC,0x6E53,INVALC,INVALC,0x7166,0x334D, - INVALC,INVALC,INVALC,0x5B7E,INVALC,0x6469,INVALC,0x6833, - INVALC,INVALC,0x6C73,0x6E54,INVALC,INVALC,0x4F45,0x4F46, - INVALC,INVALC,INVALC,0x5624,INVALC,INVALC,0x5623,INVALC, - 0x6075,INVALC,0x646A,0x646C,0x646B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6C74,INVALC,INVALC,0x6E56,0x6E55,INVALC, - INVALC,0x7063,INVALC,0x4870,INVALC,INVALC,INVALC,0x4F49, - 0x4F47,0x4F48,INVALC,INVALC,0x562D,INVALC,0x5628,0x5625, - 0x562C,INVALC,INVALC,INVALC,0x562E,INVALC,INVALC,INVALC, - 0x562B,0x5627,INVALC,INVALC,0x5626,0x562A,0x5629,INVALC, - INVALC,INVALC,0x5C2B,0x5C26,0x5C24,0x5C2D,0x5C25,INVALC, - 0x5C21,INVALC,0x5C27,INVALC,INVALC,0x5C22,0x607E,0x5C23, - 0x5C2E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5C2A,INVALC,0x5C29,0x5C28,INVALC,0x5C2C,INVALC,INVALC, - INVALC,INVALC,0x6076,0x6079,INVALC,INVALC,0x6078,INVALC, - 0x6122,0x607B,0x6121,INVALC,0x607D,0x607C,0x607A,INVALC, - 0x6077,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6123, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6472,0x6475,INVALC, - 0x6473,0x6477,INVALC,INVALC,INVALC,0x6478,INVALC,0x6470, - INVALC,0x6471,INVALC,0x646F,0x6476,INVALC,0x646E,0x646D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6474,0x683C,0x6842,INVALC,0x683D, - INVALC,0x6840,0x6844,INVALC,0x683F,INVALC,0x6837,INVALC, - 0x6836,0x6843,0x683A,INVALC,0x6838,0x6841,0x6839,INVALC, - INVALC,INVALC,0x6834,0x6835,0x683E,INVALC,INVALC,INVALC, - 0x683B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A7A, - 0x6A7D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 157, Array index 0x4F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x6A7B,0x6B23,0x6B21, - 0x6A79,0x6B26,INVALC,0x6A78,INVALC,INVALC,0x6B22,INVALC, - INVALC,INVALC,0x6A7C,INVALC,0x6B25,INVALC,INVALC,0x6B24, - INVALC,INVALC,INVALC,INVALC,0x6C77,0x6C76,INVALC,INVALC, - INVALC,0x6C7D,INVALC,0x6C79,0x6C7C,INVALC,INVALC,INVALC, - 0x6C7A,0x6C7B,INVALC,0x6C75,0x6C78,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6E61,0x6E5C,0x6E60,INVALC,0x6E63,0x6E5F, - INVALC,0x6E5B,INVALC,INVALC,0x6E5E,0x6E62,INVALC,0x6E59, - 0x6A7E,0x6E5D,INVALC,INVALC,0x6E5A,INVALC,0x6E57,INVALC, - 0x6E58,INVALC,0x6F68,0x6F6A,0x6F6D,0x6F69,0x6F6E,INVALC, - 0x6F67,INVALC,0x6F65,INVALC,INVALC,0x6F6B,INVALC,INVALC, - 0x6F66,0x6F6C,INVALC,INVALC,INVALC,INVALC,0x7068,INVALC, - 0x7069,INVALC,0x7067,0x7064,INVALC,INVALC,0x7066,0x7065, - 0x7149,INVALC,INVALC,INVALC,INVALC,0x714B,0x714A,INVALC, - INVALC,0x7169,INVALC,0x7168,0x7167,0x716A,INVALC,INVALC, - INVALC,0x7238,0x723C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4154,0x4873, - INVALC,INVALC,0x4871,INVALC,INVALC,0x4872,INVALC,INVALC, - INVALC,0x4F4A,0x4F4B,INVALC,INVALC,0x4F4C,INVALC,0x5633, - INVALC,0x5636,0x5630,0x5637,0x562F,0x5631,INVALC,0x5632, - /* Block 158, Array index 0x5000 */ - 0x5635,INVALC,INVALC,INVALC,0x563A,0x5639,INVALC,0x5634, - 0x5638,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5C38,INVALC,INVALC,INVALC,0x5C33,INVALC,INVALC,0x5C30, - 0x5C36,0x5C39,INVALC,INVALC,INVALC,0x5C35,0x5C32,0x5C3A, - 0x5C31,INVALC,0x5C37,INVALC,INVALC,0x5C2F,INVALC,INVALC, - INVALC,0x5C34,INVALC,INVALC,INVALC,0x6135,0x6128,0x6129, - 0x612C,0x612A,INVALC,0x6124,INVALC,INVALC,0x6127,0x6131, - 0x612B,INVALC,INVALC,INVALC,INVALC,0x6133,0x6130,INVALC, - 0x6132,0x6125,0x612E,0x612F,INVALC,0x612D,INVALC,INVALC, - INVALC,INVALC,0x647C,0x647E,0x6523,INVALC,INVALC,0x647B, - INVALC,INVALC,0x6525,0x647A,0x6526,INVALC,0x6522,0x6524, - 0x6528,0x6521,0x6529,0x647D,0x6479,INVALC,INVALC,0x6527, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6126, - 0x685E,0x6855,INVALC,0x6851,INVALC,INVALC,INVALC,0x685A, - 0x6854,0x684A,INVALC,0x6857,0x6852,0x6853,INVALC,0x6845, - 0x684C,0x685B,INVALC,0x6858,INVALC,0x6850,INVALC,0x685C, - 0x684B,0x6846,0x6859,INVALC,0x6848,0x6856,0x684D,0x685D, - 0x6849,INVALC,0x6847,0x684E,0x684F,INVALC,INVALC,INVALC, - 0x6B2D,INVALC,0x6B2B,INVALC,0x6B30,INVALC,0x6B3C,0x6B33, - 0x6B2C,0x6B28,0x6B35,0x6B2E,0x6B31,0x6B2A,0x6B38,0x6B27, - 0x6B2F,0x6B34,0x6B36,0x6B39,0x6B29,INVALC,0x6B3D,0x6B3E, - 0x6B37,0x6B3B,0x6B32,INVALC,0x6D2F,0x6D32,INVALC,INVALC, - INVALC,0x6D31,0x6D36,0x6D34,INVALC,0x6D2B,0x6D21,0x6C7E, - INVALC,0x6D2D,0x6D2E,0x6D2A,0x6D22,INVALC,0x6D27,0x6B3A, - INVALC,0x6D23,INVALC,0x6D29,INVALC,0x6D28,INVALC,0x6D24, - 0x6D30,INVALC,0x6D25,0x6E68,0x6D33,0x6D35,0x6D2C,0x6D26, - 0x6E69,0x6E6B,0x6E65,INVALC,INVALC,0x6E72,0x6E70,INVALC, - 0x6E6F,0x6E6E,0x6E67,0x6E64,0x6E6A,0x6E73,0x6E66,0x6E6C, - INVALC,0x6F77,0x6F7C,0x6F72,0x6F75,INVALC,0x6F79,INVALC, - 0x7022,0x6E6D,INVALC,0x6F73,0x6F7D,0x7023,0x6F78,0x6F71, - 0x6F7B,INVALC,0x6F7A,0x7021,0x6F7E,0x6E71,0x6F76,0x6F70, - 0x6F74,INVALC,INVALC,0x6F6F,INVALC,0x7074,0x706B,0x7073, - /* Block 159, Array index 0x5100 */ - 0x7070,0x7071,0x706A,0x706D,0x7075,0x706F,0x706E,0x706C, - INVALC,0x7072,INVALC,0x714C,INVALC,0x714D,INVALC,0x714F, - 0x714E,0x7151,0x7150,0x716C,0x716B,0x7227,INVALC,0x7228, - INVALC,0x7234,INVALC,INVALC,INVALC,0x723D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6D37,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4874,INVALC,INVALC,0x563B,INVALC,INVALC,0x5C3C,0x5C3D, - 0x5C3B,0x6137,0x6136,INVALC,0x652B,0x6138,0x652A,INVALC, - INVALC,0x6860,INVALC,INVALC,0x685F,INVALC,INVALC,INVALC, - INVALC,0x6B3F,0x6B41,0x6B40,0x6D38,INVALC,INVALC,INVALC, - 0x7076,0x7152,INVALC,INVALC,0x7241,INVALC,INVALC,0x4F4D, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5C3F,0x5C3E,INVALC, - 0x6139,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E74,0x7239, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6861,INVALC,0x7024,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x613A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7025,INVALC,INVALC,0x563C,INVALC,0x5C40,0x5C41,INVALC, - INVALC,INVALC,0x613B,INVALC,INVALC,INVALC,INVALC,0x652C, - INVALC,INVALC,INVALC,INVALC,0x6B43,0x6B42,0x6B45,0x6B44, - INVALC,INVALC,INVALC,0x6D39,INVALC,0x6D3B,0x6D3A,INVALC, - 0x6E75,INVALC,0x7026,0x7027,INVALC,0x7153,0x716D,INVALC, - INVALC,0x4155,0x5C42,0x613C,0x6862,0x4875,INVALC,0x613D, - /* Block 160, Array index 0x5200 */ - 0x652E,0x652D,INVALC,INVALC,INVALC,INVALC,0x7028,INVALC, - INVALC,0x7154,0x716E,INVALC,INVALC,INVALC,INVALC,0x563D, - 0x563E,INVALC,0x5C43,INVALC,INVALC,INVALC,0x652F,INVALC, - 0x6D3D,INVALC,0x6D3E,0x6D3C,0x7029,INVALC,0x7077,INVALC, - INVALC,INVALC,0x6140,0x613F,0x613E,0x6530,INVALC,INVALC, - 0x6534,0x6533,0x6532,0x6531,INVALC,0x6863,0x6B47,INVALC, - 0x6B46,0x6D3F,0x6E78,0x6E77,INVALC,0x6E76,0x702C,0x702B, - 0x702A,INVALC,INVALC,INVALC,INVALC,0x5C44,INVALC,INVALC, - 0x6864,0x6865,0x6E79,0x702D,INVALC,INVALC,0x7078,0x7155, - 0x7229,0x7243,INVALC,INVALC,0x6535,0x6866,0x6D40,0x702E, - INVALC,INVALC,INVALC,INVALC,0x6141,0x6536,0x6867,0x6868, - 0x6869,0x6B4C,INVALC,0x6B48,INVALC,0x6B4B,0x6B4A,INVALC, - 0x6B49,INVALC,INVALC,INVALC,0x6D42,0x6D41,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6E7A,INVALC,INVALC,0x7031,0x7032, - 0x7030,0x702F,INVALC,INVALC,0x7079,0x707A,0x707B,INVALC, - 0x7156,0x7159,0x7158,0x7157,INVALC,INVALC,0x7242,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B4D,0x6D43,INVALC,INVALC,0x6E7B,INVALC,INVALC, - 0x7244,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6142,INVALC,0x6E7C,INVALC,0x716F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, -}; - -#endif /* ICONV_FROM_UCS_CCS_CNS11643_PLANE2 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> cns11643_plane2 size-optimized table (27768 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE2) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_size_cns11643_plane2[] = -{ - 0x027E, /* Ranges number */ - 0x0B48, /* Unranged codes number */ - 0x1FAC, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0x4F12, 0x4F14, 0x077D, - /* Array index: 0x0006 */ 0x4F74, 0x4F89, 0x0780, - /* Array index: 0x0009 */ 0x4F94, 0x4F9E, 0x0796, - /* Array index: 0x000C */ 0x4FB9, 0x4FBB, 0x07A1, - /* Array index: 0x000F */ 0x4FF4, 0x4FF7, 0x07A4, - /* Array index: 0x0012 */ 0x502F, 0x5037, 0x07A8, - /* Array index: 0x0015 */ 0x505B, 0x506B, 0x07B1, - /* Array index: 0x0018 */ 0x509B, 0x509E, 0x07C2, - /* Array index: 0x001B */ 0x50C6, 0x50CB, 0x07C6, - /* Array index: 0x001E */ 0x50FD, 0x50FF, 0x07CC, - /* Array index: 0x0021 */ 0x5106, 0x510C, 0x07CF, - /* Array index: 0x0024 */ 0x5122, 0x5126, 0x07D6, - /* Array index: 0x0027 */ 0x512D, 0x5135, 0x07DB, - /* Array index: 0x002A */ 0x5231, 0x5235, 0x07E4, - /* Array index: 0x002D */ 0x525E, 0x5262, 0x07E9, - /* Array index: 0x0030 */ 0x526B, 0x526E, 0x07EE, - /* Array index: 0x0033 */ 0x5278, 0x527C, 0x07F2, - /* Array index: 0x0036 */ 0x5296, 0x5299, 0x07F7, - /* Array index: 0x0039 */ 0x5309, 0x530B, 0x07FB, - /* Array index: 0x003C */ 0x5394, 0x5399, 0x07FE, - /* Array index: 0x003F */ 0x5460, 0x5467, 0x0804, - /* Array index: 0x0042 */ 0x547E, 0x5482, 0x080C, - /* Array index: 0x0045 */ 0x54A0, 0x54A2, 0x0811, - /* Array index: 0x0048 */ 0x5503, 0x5505, 0x0814, - /* Array index: 0x004B */ 0x5508, 0x5512, 0x0817, - /* Array index: 0x004E */ 0x5532, 0x5536, 0x0822, - /* Array index: 0x0051 */ 0x554D, 0x5552, 0x0827, - /* Array index: 0x0054 */ 0x5575, 0x5577, 0x082D, - /* Array index: 0x0057 */ 0x558C, 0x5595, 0x0830, - /* Array index: 0x005A */ 0x55A1, 0x55A8, 0x083A, - /* Array index: 0x005D */ 0x55BF, 0x55C4, 0x0842, - /* Array index: 0x0060 */ 0x55C8, 0x55D6, 0x0848, - /* Array index: 0x0063 */ 0x563D, 0x564C, 0x0857, - /* Array index: 0x0066 */ 0x567E, 0x5686, 0x0867, - /* Array index: 0x0069 */ 0x5697, 0x569D, 0x0870, - /* Array index: 0x006C */ 0x56A6, 0x56AD, 0x0877, - /* Array index: 0x006F */ 0x571A, 0x5723, 0x087F, - /* Array index: 0x0072 */ 0x576D, 0x5776, 0x0889, - /* Array index: 0x0075 */ 0x5794, 0x579F, 0x0893, - /* Array index: 0x0078 */ 0x57B5, 0x57C1, 0x089F, - /* Array index: 0x007B */ 0x57E1, 0x5801, 0x08AC, - /* Array index: 0x007E */ 0x5807, 0x5810, 0x08CD, - /* Array index: 0x0081 */ 0x5825, 0x582E, 0x08D7, - /* Array index: 0x0084 */ 0x5832, 0x583F, 0x08E1, - /* Array index: 0x0087 */ 0x584D, 0x584F, 0x08EF, - /* Array index: 0x008A */ 0x5863, 0x5865, 0x08F2, - /* Array index: 0x008D */ 0x587A, 0x587C, 0x08F5, - /* Array index: 0x0090 */ 0x5886, 0x5891, 0x08F8, - /* Array index: 0x0093 */ 0x590C, 0x590E, 0x0904, - /* Array index: 0x0096 */ 0x5970, 0x5972, 0x0907, - /* Array index: 0x0099 */ 0x597B, 0x5980, 0x090A, - /* Array index: 0x009C */ 0x598E, 0x5990, 0x0910, - /* Array index: 0x009F */ 0x59A0, 0x59A2, 0x0913, - /* Array index: 0x00A2 */ 0x59B1, 0x59B6, 0x0916, - /* Array index: 0x00A5 */ 0x59DD, 0x59E1, 0x091C, - /* Array index: 0x00A8 */ 0x59ED, 0x59F7, 0x0921, - /* Array index: 0x00AB */ 0x59FA, 0x5A00, 0x092C, - /* Array index: 0x00AE */ 0x5A15, 0x5A19, 0x0933, - /* Array index: 0x00B1 */ 0x5A35, 0x5A39, 0x0938, - /* Array index: 0x00B4 */ 0x5A42, 0x5A48, 0x093D, - /* Array index: 0x00B7 */ 0x5A4C, 0x5A60, 0x0944, - /* Array index: 0x00BA */ 0x5A78, 0x5A7D, 0x0959, - /* Array index: 0x00BD */ 0x5A8A, 0x5A97, 0x095F, - /* Array index: 0x00C0 */ 0x5A9C, 0x5A9F, 0x096D, - /* Array index: 0x00C3 */ 0x5AAC, 0x5ABB, 0x0971, - /* Array index: 0x00C6 */ 0x5AC4, 0x5ACD, 0x0981, - /* Array index: 0x00C9 */ 0x5AD9, 0x5AE2, 0x098B, - /* Array index: 0x00CC */ 0x5AE8, 0x5AEE, 0x0995, - /* Array index: 0x00CF */ 0x5AF3, 0x5AF9, 0x099C, - /* Array index: 0x00D2 */ 0x5AFF, 0x5B07, 0x09A3, - /* Array index: 0x00D5 */ 0x5B13, 0x5B1B, 0x09AC, - /* Array index: 0x00D8 */ 0x5B23, 0x5B2F, 0x09B5, - /* Array index: 0x00DB */ 0x5B3C, 0x5B3F, 0x09C2, - /* Array index: 0x00DE */ 0x5B47, 0x5B4E, 0x09C6, - /* Array index: 0x00E1 */ 0x5BCA, 0x5BCE, 0x09CE, - /* Array index: 0x00E4 */ 0x5C7A, 0x5C7E, 0x09D3, - /* Array index: 0x00E7 */ 0x5C86, 0x5C95, 0x09D8, - /* Array index: 0x00EA */ 0x5C9F, 0x5CB0, 0x09E8, - /* Array index: 0x00ED */ 0x5CC6, 0x5CDF, 0x09FA, - /* Array index: 0x00F0 */ 0x5CF7, 0x5CF9, 0x0A14, - /* Array index: 0x00F3 */ 0x5D0B, 0x5D0F, 0x0A17, - /* Array index: 0x00F6 */ 0x5D1D, 0x5D20, 0x0A1C, - /* Array index: 0x00F9 */ 0x5D2E, 0x5D4B, 0x0A20, - /* Array index: 0x00FC */ 0x5D79, 0x5D82, 0x0A3E, - /* Array index: 0x00FF */ 0x5D86, 0x5D8A, 0x0A48, - /* Array index: 0x0102 */ 0x5D9C, 0x5DA2, 0x0A4D, - /* Array index: 0x0105 */ 0x5DA7, 0x5DB7, 0x0A54, - /* Array index: 0x0108 */ 0x5E20, 0x5E24, 0x0A65, - /* Array index: 0x010B */ 0x5E4A, 0x5E4F, 0x0A6A, - /* Array index: 0x010E */ 0x5E66, 0x5E70, 0x0A70, - /* Array index: 0x0111 */ 0x5E88, 0x5E8D, 0x0A7B, - /* Array index: 0x0114 */ 0x5EA2, 0x5EA5, 0x0A81, - /* Array index: 0x0117 */ 0x5EAE, 0x5EB4, 0x0A85, - /* Array index: 0x011A */ 0x5EC5, 0x5EC7, 0x0A8C, - /* Array index: 0x011D */ 0x5ED1, 0x5EDE, 0x0A8F, - /* Array index: 0x0120 */ 0x5EE5, 0x5EE9, 0x0A9D, - /* Array index: 0x0123 */ 0x5EEE, 0x5EF2, 0x0AA2, - /* Array index: 0x0126 */ 0x5F22, 0x5F24, 0x0AA7, - /* Array index: 0x0129 */ 0x5FBB, 0x5FC1, 0x0AAA, - /* Array index: 0x012C */ 0x5FCF, 0x5FD5, 0x0AB1, - /* Array index: 0x012F */ 0x5FE1, 0x5FE5, 0x0AB8, - /* Array index: 0x0132 */ 0x5FED, 0x5FEF, 0x0ABD, - /* Array index: 0x0135 */ 0x6009, 0x6013, 0x0AC0, - /* Array index: 0x0138 */ 0x602C, 0x6034, 0x0ACB, - /* Array index: 0x013B */ 0x6040, 0x6049, 0x0AD4, - /* Array index: 0x013E */ 0x605A, 0x605F, 0x0ADE, - /* Array index: 0x0141 */ 0x6086, 0x608A, 0x0AE4, - /* Array index: 0x0144 */ 0x609B, 0x609D, 0x0AE9, - /* Array index: 0x0147 */ 0x60BE, 0x60CF, 0x0AEC, - /* Array index: 0x014A */ 0x6103, 0x6105, 0x0AFE, - /* Array index: 0x014D */ 0x6128, 0x612F, 0x0B01, - /* Array index: 0x0150 */ 0x6152, 0x6156, 0x0B09, - /* Array index: 0x0153 */ 0x6171, 0x6174, 0x0B0E, - /* Array index: 0x0156 */ 0x6189, 0x618D, 0x0B12, - /* Array index: 0x0159 */ 0x61AD, 0x61B5, 0x0B17, - /* Array index: 0x015C */ 0x61DE, 0x61E0, 0x0B20, - /* Array index: 0x015F */ 0x61E4, 0x61F1, 0x0B23, - /* Array index: 0x0162 */ 0x6223, 0x622D, 0x0B31, - /* Array index: 0x0165 */ 0x625E, 0x6266, 0x0B3C, - /* Array index: 0x0168 */ 0x6270, 0x6274, 0x0B45, - /* Array index: 0x016B */ 0x62A9, 0x62B8, 0x0B4A, - /* Array index: 0x016E */ 0x62F5, 0x62FB, 0x0B5A, - /* Array index: 0x0171 */ 0x630B, 0x6315, 0x0B61, - /* Array index: 0x0174 */ 0x6332, 0x633C, 0x0B6C, - /* Array index: 0x0177 */ 0x6340, 0x634B, 0x0B77, - /* Array index: 0x017A */ 0x6354, 0x635A, 0x0B83, - /* Array index: 0x017D */ 0x636D, 0x6370, 0x0B8A, - /* Array index: 0x0180 */ 0x638D, 0x6391, 0x0B8E, - /* Array index: 0x0183 */ 0x639C, 0x639F, 0x0B93, - /* Array index: 0x0186 */ 0x63AB, 0x63B1, 0x0B97, - /* Array index: 0x0189 */ 0x63C2, 0x63CE, 0x0B9E, - /* Array index: 0x018C */ 0x63D5, 0x63E0, 0x0BAB, - /* Array index: 0x018F */ 0x63E4, 0x63E8, 0x0BB7, - /* Array index: 0x0192 */ 0x63EF, 0x63F6, 0x0BBC, - /* Array index: 0x0195 */ 0x6409, 0x6412, 0x0BC4, - /* Array index: 0x0198 */ 0x641F, 0x6428, 0x0BCE, - /* Array index: 0x019B */ 0x642E, 0x6430, 0x0BD8, - /* Array index: 0x019E */ 0x643F, 0x6443, 0x0BDB, - /* Array index: 0x01A1 */ 0x6459, 0x6461, 0x0BE0, - /* Array index: 0x01A4 */ 0x6470, 0x6477, 0x0BE9, - /* Array index: 0x01A7 */ 0x6489, 0x648C, 0x0BF1, - /* Array index: 0x01AA */ 0x6496, 0x6498, 0x0BF5, - /* Array index: 0x01AD */ 0x649C, 0x64A0, 0x0BF8, - /* Array index: 0x01B0 */ 0x650C, 0x6510, 0x0BFD, - /* Array index: 0x01B3 */ 0x6513, 0x6517, 0x0C02, - /* Array index: 0x01B6 */ 0x6520, 0x6526, 0x0C07, - /* Array index: 0x01B9 */ 0x6564, 0x656A, 0x0C0E, - /* Array index: 0x01BC */ 0x6579, 0x6581, 0x0C15, - /* Array index: 0x01BF */ 0x65C2, 0x65C6, 0x0C1E, - /* Array index: 0x01C2 */ 0x65DA, 0x65E1, 0x0C23, - /* Array index: 0x01C5 */ 0x65EE, 0x65F5, 0x0C2B, - /* Array index: 0x01C8 */ 0x65FB, 0x65FD, 0x0C33, - /* Array index: 0x01CB */ 0x6603, 0x6612, 0x0C36, - /* Array index: 0x01CE */ 0x6632, 0x663A, 0x0C46, - /* Array index: 0x01D1 */ 0x6678, 0x667C, 0x0C4F, - /* Array index: 0x01D4 */ 0x668A, 0x668C, 0x0C54, - /* Array index: 0x01D7 */ 0x669F, 0x66A1, 0x0C57, - /* Array index: 0x01DA */ 0x66BA, 0x66C0, 0x0C5A, - /* Array index: 0x01DD */ 0x66C8, 0x66CC, 0x0C61, - /* Array index: 0x01E0 */ 0x670F, 0x6713, 0x0C66, - /* Array index: 0x01E3 */ 0x6720, 0x6723, 0x0C6B, - /* Array index: 0x01E6 */ 0x6738, 0x673F, 0x0C6F, - /* Array index: 0x01E9 */ 0x6747, 0x674D, 0x0C77, - /* Array index: 0x01EC */ 0x6776, 0x677D, 0x0C7E, - /* Array index: 0x01EF */ 0x6781, 0x6786, 0x0C86, - /* Array index: 0x01F2 */ 0x678C, 0x6794, 0x0C8C, - /* Array index: 0x01F5 */ 0x67B7, 0x67BB, 0x0C95, - /* Array index: 0x01F8 */ 0x67C0, 0x67CE, 0x0C9A, - /* Array index: 0x01FB */ 0x67E3, 0x67FC, 0x0CA9, - /* Array index: 0x01FE */ 0x681C, 0x6820, 0x0CC3, - /* Array index: 0x0201 */ 0x682B, 0x6835, 0x0CC8, - /* Array index: 0x0204 */ 0x684B, 0x684F, 0x0CD3, - /* Array index: 0x0207 */ 0x686B, 0x6880, 0x0CD8, - /* Array index: 0x020A */ 0x6887, 0x6892, 0x0CEE, - /* Array index: 0x020D */ 0x68A9, 0x68AE, 0x0CFA, - /* Array index: 0x0210 */ 0x68C6, 0x68C8, 0x0D00, - /* Array index: 0x0213 */ 0x68D0, 0x68D6, 0x0D03, - /* Array index: 0x0216 */ 0x68DC, 0x68DE, 0x0D0A, - /* Array index: 0x0219 */ 0x68E6, 0x68F8, 0x0D0D, - /* Array index: 0x021C */ 0x6904, 0x6917, 0x0D20, - /* Array index: 0x021F */ 0x6932, 0x6959, 0x0D34, - /* Array index: 0x0222 */ 0x696F, 0x6971, 0x0D5C, - /* Array index: 0x0225 */ 0x698D, 0x699A, 0x0D5F, - /* Array index: 0x0228 */ 0x69AF, 0x69B6, 0x0D6D, - /* Array index: 0x022B */ 0x69BC, 0x69BF, 0x0D75, - /* Array index: 0x022E */ 0x69E2, 0x69E7, 0x0D79, - /* Array index: 0x0231 */ 0x69F4, 0x6A00, 0x0D7F, - /* Array index: 0x0234 */ 0x6A04, 0x6A09, 0x0D8C, - /* Array index: 0x0237 */ 0x6A14, 0x6A18, 0x0D92, - /* Array index: 0x023A */ 0x6A25, 0x6A28, 0x0D97, - /* Array index: 0x023D */ 0x6A3B, 0x6A41, 0x0D9B, - /* Array index: 0x0240 */ 0x6A4D, 0x6A56, 0x0DA2, - /* Array index: 0x0243 */ 0x6A5A, 0x6A60, 0x0DAC, - /* Array index: 0x0246 */ 0x6A64, 0x6A6A, 0x0DB3, - /* Array index: 0x0249 */ 0x6A8C, 0x6A96, 0x0DBA, - /* Array index: 0x024C */ 0x6AA4, 0x6AA8, 0x0DC5, - /* Array index: 0x024F */ 0x6AB6, 0x6ABA, 0x0DCA, - /* Array index: 0x0252 */ 0x6AC5, 0x6AD1, 0x0DCF, - /* Array index: 0x0255 */ 0x6ADC, 0x6AE1, 0x0DDC, - /* Array index: 0x0258 */ 0x6AE7, 0x6AF3, 0x0DE2, - /* Array index: 0x025B */ 0x6B0F, 0x6B1A, 0x0DEF, - /* Array index: 0x025E */ 0x6B33, 0x6B3C, 0x0DFB, - /* Array index: 0x0261 */ 0x6B3F, 0x6B4D, 0x0E05, - /* Array index: 0x0264 */ 0x6B54, 0x6B56, 0x0E14, - /* Array index: 0x0267 */ 0x6B8C, 0x6BAD, 0x0E17, - /* Array index: 0x026A */ 0x6BC3, 0x6BCC, 0x0E39, - /* Array index: 0x026D */ 0x6BE0, 0x6BE8, 0x0E43, - /* Array index: 0x0270 */ 0x6BF7, 0x6C06, 0x0E4C, - /* Array index: 0x0273 */ 0x6C09, 0x6C0D, 0x0E5C, - /* Array index: 0x0276 */ 0x6C14, 0x6C1A, 0x0E61, - /* Array index: 0x0279 */ 0x6C4A, 0x6C4C, 0x0E68, - /* Array index: 0x027C */ 0x6C65, 0x6C73, 0x0E6B, - /* Array index: 0x027F */ 0x6CCD, 0x6CD4, 0x0E7A, - /* Array index: 0x0282 */ 0x6CE9, 0x6CEE, 0x0E82, - /* Array index: 0x0285 */ 0x6D00, 0x6D0A, 0x0E88, - /* Array index: 0x0288 */ 0x6D0D, 0x6D12, 0x0E93, - /* Array index: 0x028B */ 0x6D16, 0x6D1A, 0x0E99, - /* Array index: 0x028E */ 0x6D2C, 0x6D34, 0x0E9E, - /* Array index: 0x0291 */ 0x6D5E, 0x6D68, 0x0EA7, - /* Array index: 0x0294 */ 0x6D7A, 0x6D86, 0x0EB2, - /* Array index: 0x0297 */ 0x6D90, 0x6D92, 0x0EBF, - /* Array index: 0x029A */ 0x6DBA, 0x6DC2, 0x0EC2, - /* Array index: 0x029D */ 0x6DC8, 0x6DCA, 0x0ECB, - /* Array index: 0x02A0 */ 0x6DCF, 0x6DE5, 0x0ECE, - /* Array index: 0x02A3 */ 0x6E39, 0x6E4B, 0x0EE5, - /* Array index: 0x02A6 */ 0x6E51, 0x6E55, 0x0EF8, - /* Array index: 0x02A9 */ 0x6E5A, 0x6E68, 0x0EFD, - /* Array index: 0x02AC */ 0x6E73, 0x6E79, 0x0F0C, - /* Array index: 0x02AF */ 0x6E8D, 0x6E94, 0x0F13, - /* Array index: 0x02B2 */ 0x6E9E, 0x6EA6, 0x0F1B, - /* Array index: 0x02B5 */ 0x6EAE, 0x6EB3, 0x0F24, - /* Array index: 0x02B8 */ 0x6EBD, 0x6EC3, 0x0F2A, - /* Array index: 0x02BB */ 0x6EC6, 0x6ED2, 0x0F31, - /* Array index: 0x02BE */ 0x6EF5, 0x6EFD, 0x0F3E, - /* Array index: 0x02C1 */ 0x6F05, 0x6F0E, 0x0F47, - /* Array index: 0x02C4 */ 0x6F18, 0x6F27, 0x0F51, - /* Array index: 0x02C7 */ 0x6F35, 0x6F3C, 0x0F61, - /* Array index: 0x02CA */ 0x6F4E, 0x6F57, 0x0F69, - /* Array index: 0x02CD */ 0x6F5D, 0x6F63, 0x0F73, - /* Array index: 0x02D0 */ 0x6F67, 0x6F6C, 0x0F7A, - /* Array index: 0x02D3 */ 0x6F7B, 0x6F7F, 0x0F80, - /* Array index: 0x02D6 */ 0x6F89, 0x6F8D, 0x0F85, - /* Array index: 0x02D9 */ 0x6F90, 0x6F96, 0x0F8A, - /* Array index: 0x02DC */ 0x6FA8, 0x6FB2, 0x0F91, - /* Array index: 0x02DF */ 0x6FC4, 0x6FCF, 0x0F9C, - /* Array index: 0x02E2 */ 0x6FDC, 0x6FDE, 0x0FA8, - /* Array index: 0x02E5 */ 0x6FE2, 0x6FE8, 0x0FAB, - /* Array index: 0x02E8 */ 0x6FFB, 0x7007, 0x0FB2, - /* Array index: 0x02EB */ 0x700A, 0x700E, 0x0FBF, - /* Array index: 0x02EE */ 0x7020, 0x702B, 0x0FC4, - /* Array index: 0x02F1 */ 0x7031, 0x704A, 0x0FD0, - /* Array index: 0x02F4 */ 0x7055, 0x706A, 0x0FEA, - /* Array index: 0x02F7 */ 0x7082, 0x7086, 0x1000, - /* Array index: 0x02FA */ 0x70C5, 0x70C7, 0x1005, - /* Array index: 0x02FD */ 0x70CD, 0x70D4, 0x1008, - /* Array index: 0x0300 */ 0x70DA, 0x70E2, 0x1010, - /* Array index: 0x0303 */ 0x70F3, 0x7106, 0x1019, - /* Array index: 0x0306 */ 0x710B, 0x7110, 0x102D, - /* Array index: 0x0309 */ 0x711E, 0x7125, 0x1033, - /* Array index: 0x030C */ 0x712E, 0x7132, 0x103B, - /* Array index: 0x030F */ 0x7141, 0x7144, 0x1040, - /* Array index: 0x0312 */ 0x7150, 0x7154, 0x1044, - /* Array index: 0x0315 */ 0x715D, 0x7163, 0x1049, - /* Array index: 0x0318 */ 0x7180, 0x7189, 0x1050, - /* Array index: 0x031B */ 0x719A, 0x71AA, 0x105A, - /* Array index: 0x031E */ 0x71AF, 0x71B5, 0x106B, - /* Array index: 0x0321 */ 0x71BC, 0x71CB, 0x1072, - /* Array index: 0x0324 */ 0x71F0, 0x71F2, 0x1082, - /* Array index: 0x0327 */ 0x71FF, 0x7207, 0x1085, - /* Array index: 0x032A */ 0x7219, 0x7229, 0x108E, - /* Array index: 0x032D */ 0x7249, 0x724B, 0x109F, - /* Array index: 0x0330 */ 0x7276, 0x727F, 0x10A2, - /* Array index: 0x0333 */ 0x7285, 0x729E, 0x10AC, - /* Array index: 0x0336 */ 0x72A1, 0x72AA, 0x10C6, - /* Array index: 0x0339 */ 0x72C5, 0x72CC, 0x10D0, - /* Array index: 0x033C */ 0x72FA, 0x7301, 0x10D8, - /* Array index: 0x033F */ 0x7307, 0x730C, 0x10E0, - /* Array index: 0x0342 */ 0x7330, 0x7335, 0x10E6, - /* Array index: 0x0345 */ 0x733A, 0x733C, 0x10EC, - /* Array index: 0x0348 */ 0x7349, 0x734D, 0x10EF, - /* Array index: 0x034B */ 0x7358, 0x736F, 0x10F4, - /* Array index: 0x034E */ 0x737C, 0x7385, 0x110C, - /* Array index: 0x0351 */ 0x7392, 0x7397, 0x1116, - /* Array index: 0x0354 */ 0x73A0, 0x73A6, 0x111C, - /* Array index: 0x0357 */ 0x73B4, 0x73B9, 0x1123, - /* Array index: 0x035A */ 0x73C2, 0x73CC, 0x1129, - /* Array index: 0x035D */ 0x73D2, 0x73DD, 0x1134, - /* Array index: 0x0360 */ 0x73E5, 0x73EB, 0x1140, - /* Array index: 0x0363 */ 0x73F4, 0x7401, 0x1147, - /* Array index: 0x0366 */ 0x7420, 0x7424, 0x1155, - /* Array index: 0x0369 */ 0x7429, 0x7432, 0x115A, - /* Array index: 0x036C */ 0x744A, 0x7454, 0x1164, - /* Array index: 0x036F */ 0x7471, 0x7475, 0x116F, - /* Array index: 0x0372 */ 0x7485, 0x748A, 0x1174, - /* Array index: 0x0375 */ 0x74B1, 0x74BB, 0x117A, - /* Array index: 0x0378 */ 0x74BE, 0x74C5, 0x1185, - /* Array index: 0x037B */ 0x74D5, 0x74E1, 0x118D, - /* Array index: 0x037E */ 0x74FB, 0x7503, 0x119A, - /* Array index: 0x0381 */ 0x750F, 0x7517, 0x11A3, - /* Array index: 0x0384 */ 0x753E, 0x7540, 0x11AC, - /* Array index: 0x0387 */ 0x75BF, 0x75C1, 0x11AF, - /* Array index: 0x038A */ 0x75CB, 0x75D2, 0x11B2, - /* Array index: 0x038D */ 0x75F5, 0x75FE, 0x11BA, - /* Array index: 0x0390 */ 0x760F, 0x761E, 0x11C4, - /* Array index: 0x0393 */ 0x762D, 0x7635, 0x11D4, - /* Array index: 0x0396 */ 0x7647, 0x7649, 0x11DD, - /* Array index: 0x0399 */ 0x7699, 0x769E, 0x11E0, - /* Array index: 0x039C */ 0x7703, 0x7705, 0x11E6, - /* Array index: 0x039F */ 0x7710, 0x771D, 0x11E9, - /* Array index: 0x03A2 */ 0x772F, 0x7735, 0x11F7, - /* Array index: 0x03A5 */ 0x7744, 0x774E, 0x11FE, - /* Array index: 0x03A8 */ 0x7752, 0x775A, 0x1209, - /* Array index: 0x03AB */ 0x776D, 0x776F, 0x1212, - /* Array index: 0x03AE */ 0x777E, 0x7789, 0x1215, - /* Array index: 0x03B1 */ 0x7797, 0x77A3, 0x1221, - /* Array index: 0x03B4 */ 0x77B1, 0x77B7, 0x122E, - /* Array index: 0x03B7 */ 0x77C9, 0x77D0, 0x1235, - /* Array index: 0x03BA */ 0x77F0, 0x77F2, 0x123D, - /* Array index: 0x03BD */ 0x77F7, 0x77FC, 0x1240, - /* Array index: 0x03C0 */ 0x780E, 0x7813, 0x1246, - /* Array index: 0x03C3 */ 0x7821, 0x7823, 0x124C, - /* Array index: 0x03C6 */ 0x7826, 0x7835, 0x124F, - /* Array index: 0x03C9 */ 0x7848, 0x784D, 0x125F, - /* Array index: 0x03CC */ 0x7864, 0x7871, 0x1265, - /* Array index: 0x03CF */ 0x7883, 0x7887, 0x1273, - /* Array index: 0x03D2 */ 0x7894, 0x789A, 0x1278, - /* Array index: 0x03D5 */ 0x789E, 0x78A5, 0x127F, - /* Array index: 0x03D8 */ 0x78A8, 0x78AD, 0x1287, - /* Array index: 0x03DB */ 0x78C8, 0x78D1, 0x128D, - /* Array index: 0x03DE */ 0x78DB, 0x78E5, 0x1297, - /* Array index: 0x03E1 */ 0x78F9, 0x78FF, 0x12A2, - /* Array index: 0x03E4 */ 0x7910, 0x7914, 0x12A9, - /* Array index: 0x03E7 */ 0x791B, 0x791E, 0x12AE, - /* Array index: 0x03EA */ 0x7921, 0x7929, 0x12B2, - /* Array index: 0x03ED */ 0x794A, 0x794C, 0x12BB, - /* Array index: 0x03F0 */ 0x794F, 0x7954, 0x12BE, - /* Array index: 0x03F3 */ 0x7967, 0x796B, 0x12C4, - /* Array index: 0x03F6 */ 0x7970, 0x7974, 0x12C9, - /* Array index: 0x03F9 */ 0x7990, 0x79A4, 0x12CE, - /* Array index: 0x03FC */ 0x79AB, 0x79AD, 0x12E3, - /* Array index: 0x03FF */ 0x79B4, 0x79B8, 0x12E6, - /* Array index: 0x0402 */ 0x79CD, 0x79CF, 0x12EB, - /* Array index: 0x0405 */ 0x79DC, 0x79E0, 0x12EE, - /* Array index: 0x0408 */ 0x79EA, 0x79EE, 0x12F3, - /* Array index: 0x040B */ 0x79F6, 0x79FA, 0x12F8, - /* Array index: 0x040E */ 0x7A02, 0x7A04, 0x12FD, - /* Array index: 0x0411 */ 0x7A10, 0x7A1B, 0x1300, - /* Array index: 0x0414 */ 0x7A58, 0x7A5C, 0x130C, - /* Array index: 0x0417 */ 0x7A6C, 0x7A71, 0x1311, - /* Array index: 0x041A */ 0x7A85, 0x7A90, 0x1317, - /* Array index: 0x041D */ 0x7AB1, 0x7AB8, 0x1323, - /* Array index: 0x0420 */ 0x7B04, 0x7B13, 0x132B, - /* Array index: 0x0423 */ 0x7B22, 0x7B25, 0x133B, - /* Array index: 0x0426 */ 0x7B2D, 0x7B35, 0x133F, - /* Array index: 0x0429 */ 0x7B44, 0x7B4E, 0x1348, - /* Array index: 0x042C */ 0x7B61, 0x7B66, 0x1353, - /* Array index: 0x042F */ 0x7B70, 0x7B78, 0x1359, - /* Array index: 0x0432 */ 0x7B8A, 0x7B91, 0x1362, - /* Array index: 0x0435 */ 0x7B98, 0x7B9C, 0x136A, - /* Array index: 0x0438 */ 0x7BDA, 0x7BEB, 0x136F, - /* Array index: 0x043B */ 0x7BF0, 0x7BF4, 0x1381, - /* Array index: 0x043E */ 0x7BFD, 0x7C10, 0x1386, - /* Array index: 0x0441 */ 0x7C1C, 0x7C2D, 0x139A, - /* Array index: 0x0444 */ 0x7C45, 0x7C4A, 0x13AC, - /* Array index: 0x0447 */ 0x7C57, 0x7C5C, 0x13B2, - /* Array index: 0x044A */ 0x7C66, 0x7C6B, 0x13B8, - /* Array index: 0x044D */ 0x7C78, 0x7C7A, 0x13BE, - /* Array index: 0x0450 */ 0x7C7F, 0x7C85, 0x13C1, - /* Array index: 0x0453 */ 0x7CA1, 0x7CA3, 0x13C8, - /* Array index: 0x0456 */ 0x7CBA, 0x7CBC, 0x13CB, - /* Array index: 0x0459 */ 0x7CD0, 0x7CD4, 0x13CE, - /* Array index: 0x045C */ 0x7D0E, 0x7D13, 0x13D3, - /* Array index: 0x045F */ 0x7D1D, 0x7D1F, 0x13D9, - /* Array index: 0x0462 */ 0x7D3A, 0x7D41, 0x13DC, - /* Array index: 0x0465 */ 0x7D4E, 0x7D58, 0x13E4, - /* Array index: 0x0468 */ 0x7D67, 0x7D6F, 0x13EF, - /* Array index: 0x046B */ 0x7D7A, 0x7D8E, 0x13F8, - /* Array index: 0x046E */ 0x7DA6, 0x7DAA, 0x140D, - /* Array index: 0x0471 */ 0x7DC0, 0x7DC6, 0x1412, - /* Array index: 0x0474 */ 0x7E0B, 0x7E17, 0x1419, - /* Array index: 0x0477 */ 0x7E1F, 0x7E25, 0x1426, - /* Array index: 0x047A */ 0x7E38, 0x7E3C, 0x142D, - /* Array index: 0x047D */ 0x7E56, 0x7E58, 0x1432, - /* Array index: 0x0480 */ 0x7E5F, 0x7E63, 0x1435, - /* Array index: 0x0483 */ 0x7E72, 0x7E7B, 0x143A, - /* Array index: 0x0486 */ 0x7E86, 0x7E8D, 0x1444, - /* Array index: 0x0489 */ 0x7E95, 0x7E9B, 0x144C, - /* Array index: 0x048C */ 0x7F5B, 0x7F6D, 0x1453, - /* Array index: 0x048F */ 0x7F7A, 0x7F7F, 0x1466, - /* Array index: 0x0492 */ 0x7F9B, 0x7FA7, 0x146C, - /* Array index: 0x0495 */ 0x7FC7, 0x7FD1, 0x1479, - /* Array index: 0x0498 */ 0x7FE2, 0x7FEF, 0x1484, - /* Array index: 0x049B */ 0x7FF4, 0x7FF8, 0x1492, - /* Array index: 0x049E */ 0x7FFD, 0x7FFF, 0x1497, - /* Array index: 0x04A1 */ 0x804F, 0x8051, 0x149A, - /* Array index: 0x04A4 */ 0x80C5, 0x80CA, 0x149D, - /* Array index: 0x04A7 */ 0x80CD, 0x80D9, 0x14A3, - /* Array index: 0x04AA */ 0x80F9, 0x80FB, 0x14B0, - /* Array index: 0x04AD */ 0x811B, 0x8122, 0x14B3, - /* Array index: 0x04B0 */ 0x815E, 0x8164, 0x14BB, - /* Array index: 0x04B3 */ 0x8189, 0x818D, 0x14C2, - /* Array index: 0x04B6 */ 0x81AE, 0x81BC, 0x14C7, - /* Array index: 0x04B9 */ 0x81D0, 0x81D2, 0x14D6, - /* Array index: 0x04BC */ 0x81DD, 0x81E1, 0x14D9, - /* Array index: 0x04BF */ 0x81F7, 0x81F9, 0x14DE, - /* Array index: 0x04C2 */ 0x8232, 0x8234, 0x14E1, - /* Array index: 0x04C5 */ 0x823C, 0x8245, 0x14E4, - /* Array index: 0x04C8 */ 0x824E, 0x8264, 0x14EE, - /* Array index: 0x04CB */ 0x8268, 0x826D, 0x1505, - /* Array index: 0x04CE */ 0x827C, 0x8285, 0x150B, - /* Array index: 0x04D1 */ 0x828E, 0x8294, 0x1515, - /* Array index: 0x04D4 */ 0x829E, 0x82AB, 0x151C, - /* Array index: 0x04D7 */ 0x82B4, 0x82B6, 0x152A, - /* Array index: 0x04DA */ 0x82E8, 0x82ED, 0x152D, - /* Array index: 0x04DD */ 0x82F0, 0x82FB, 0x1533, - /* Array index: 0x04E0 */ 0x8322, 0x832F, 0x153F, - /* Array index: 0x04E3 */ 0x833A, 0x833C, 0x154D, - /* Array index: 0x04E6 */ 0x8341, 0x834E, 0x1550, - /* Array index: 0x04E9 */ 0x8373, 0x8376, 0x155E, - /* Array index: 0x04EC */ 0x837D, 0x8383, 0x1562, - /* Array index: 0x04EF */ 0x8387, 0x8390, 0x1569, - /* Array index: 0x04F2 */ 0x8397, 0x839D, 0x1573, - /* Array index: 0x04F5 */ 0x83A3, 0x83B0, 0x157A, - /* Array index: 0x04F8 */ 0x83BF, 0x83EE, 0x1588, - /* Array index: 0x04FB */ 0x83F5, 0x8401, 0x15B8, - /* Array index: 0x04FE */ 0x840F, 0x8413, 0x15C5, - /* Array index: 0x0501 */ 0x842F, 0x843B, 0x15CA, - /* Array index: 0x0504 */ 0x843F, 0x8460, 0x15D7, - /* Array index: 0x0507 */ 0x846E, 0x847E, 0x15F9, - /* Array index: 0x050A */ 0x848D, 0x8491, 0x160A, - /* Array index: 0x050D */ 0x8497, 0x84B1, 0x160F, - /* Array index: 0x0510 */ 0x84B9, 0x84BB, 0x162A, - /* Array index: 0x0513 */ 0x84CC, 0x84D7, 0x162D, - /* Array index: 0x0516 */ 0x84E7, 0x8502, 0x1639, - /* Array index: 0x0519 */ 0x8507, 0x850F, 0x1655, - /* Array index: 0x051C */ 0x8515, 0x8520, 0x165E, - /* Array index: 0x051F */ 0x8524, 0x8531, 0x166A, - /* Array index: 0x0522 */ 0x8540, 0x8547, 0x1678, - /* Array index: 0x0525 */ 0x8551, 0x8558, 0x1680, - /* Array index: 0x0528 */ 0x8560, 0x8567, 0x1688, - /* Array index: 0x052B */ 0x8575, 0x8590, 0x1690, - /* Array index: 0x052E */ 0x8595, 0x85A4, 0x16AC, - /* Array index: 0x0531 */ 0x85B1, 0x85B8, 0x16BC, - /* Array index: 0x0534 */ 0x85BD, 0x85C8, 0x16C4, - /* Array index: 0x0537 */ 0x85D7, 0x85E3, 0x16D0, - /* Array index: 0x053A */ 0x85EB, 0x85F2, 0x16DD, - /* Array index: 0x053D */ 0x85FD, 0x8605, 0x16E5, - /* Array index: 0x0540 */ 0x8618, 0x8640, 0x16EE, - /* Array index: 0x0543 */ 0x8646, 0x864D, 0x1717, - /* Array index: 0x0546 */ 0x8661, 0x8674, 0x171F, - /* Array index: 0x0549 */ 0x8685, 0x8687, 0x1733, - /* Array index: 0x054C */ 0x868D, 0x86A2, 0x1736, - /* Array index: 0x054F */ 0x86B3, 0x86C5, 0x174C, - /* Array index: 0x0552 */ 0x86D6, 0x86DD, 0x175F, - /* Array index: 0x0555 */ 0x86E6, 0x86EC, 0x1767, - /* Array index: 0x0558 */ 0x86F5, 0x86FA, 0x176E, - /* Array index: 0x055B */ 0x8709, 0x8712, 0x1774, - /* Array index: 0x055E */ 0x8719, 0x871B, 0x177E, - /* Array index: 0x0561 */ 0x8720, 0x8735, 0x1781, - /* Array index: 0x0564 */ 0x873E, 0x8743, 0x1797, - /* Array index: 0x0567 */ 0x874D, 0x876F, 0x179D, - /* Array index: 0x056A */ 0x8777, 0x877B, 0x17C0, - /* Array index: 0x056D */ 0x8784, 0x8789, 0x17C5, - /* Array index: 0x0570 */ 0x878F, 0x879D, 0x17CB, - /* Array index: 0x0573 */ 0x87AA, 0x87C5, 0x17DA, - /* Array index: 0x0576 */ 0x87D3, 0x87ED, 0x17F6, - /* Array index: 0x0579 */ 0x87F3, 0x87F7, 0x1811, - /* Array index: 0x057C */ 0x87FF, 0x8803, 0x1816, - /* Array index: 0x057F */ 0x8806, 0x880C, 0x181B, - /* Array index: 0x0582 */ 0x8819, 0x881D, 0x1822, - /* Array index: 0x0585 */ 0x8824, 0x8844, 0x1827, - /* Array index: 0x0588 */ 0x8871, 0x8876, 0x1848, - /* Array index: 0x058B */ 0x887C, 0x8880, 0x184E, - /* Array index: 0x058E */ 0x8895, 0x889B, 0x1853, - /* Array index: 0x0591 */ 0x88B6, 0x88C0, 0x185A, - /* Array index: 0x0594 */ 0x88C9, 0x88D0, 0x1865, - /* Array index: 0x0597 */ 0x88EE, 0x88F2, 0x186D, - /* Array index: 0x059A */ 0x88F6, 0x88FE, 0x1872, - /* Array index: 0x059D */ 0x8914, 0x8919, 0x187B, - /* Array index: 0x05A0 */ 0x892C, 0x8937, 0x1881, - /* Array index: 0x05A3 */ 0x894B, 0x8963, 0x188D, - /* Array index: 0x05A6 */ 0x8979, 0x897E, 0x18A6, - /* Array index: 0x05A9 */ 0x899B, 0x89A4, 0x18AC, - /* Array index: 0x05AC */ 0x89AD, 0x89AF, 0x18B6, - /* Array index: 0x05AF */ 0x89D5, 0x89FF, 0x18B9, - /* Array index: 0x05B2 */ 0x8A4A, 0x8A52, 0x18E4, - /* Array index: 0x05B5 */ 0x8A57, 0x8A59, 0x18ED, - /* Array index: 0x05B8 */ 0x8A74, 0x8A77, 0x18F0, - /* Array index: 0x05BB */ 0x8A7F, 0x8A86, 0x18F4, - /* Array index: 0x05BE */ 0x8ABA, 0x8AC0, 0x18FC, - /* Array index: 0x05C1 */ 0x8AD1, 0x8AE4, 0x1903, - /* Array index: 0x05C4 */ 0x8B05, 0x8B08, 0x1917, - /* Array index: 0x05C7 */ 0x8B0F, 0x8B27, 0x191B, - /* Array index: 0x05CA */ 0x8B2E, 0x8B42, 0x1934, - /* Array index: 0x05CD */ 0x8B47, 0x8B4B, 0x1949, - /* Array index: 0x05D0 */ 0x8B50, 0x8B57, 0x194E, - /* Array index: 0x05D3 */ 0x8B78, 0x8B7F, 0x1956, - /* Array index: 0x05D6 */ 0x8B82, 0x8B8E, 0x195E, - /* Array index: 0x05D9 */ 0x8C39, 0x8C3E, 0x196B, - /* Array index: 0x05DC */ 0x8C64, 0x8C69, 0x1971, - /* Array index: 0x05DF */ 0x8C6F, 0x8C78, 0x1977, - /* Array index: 0x05E2 */ 0x8C80, 0x8C86, 0x1981, - /* Array index: 0x05E5 */ 0x8C8F, 0x8C9C, 0x1988, - /* Array index: 0x05E8 */ 0x8CA3, 0x8CA5, 0x1996, - /* Array index: 0x05EB */ 0x8D8C, 0x8D96, 0x1999, - /* Array index: 0x05EE */ 0x8DAA, 0x8DAF, 0x19A4, - /* Array index: 0x05F1 */ 0x8DB5, 0x8DB9, 0x19AA, - /* Array index: 0x05F4 */ 0x8DD3, 0x8DD9, 0x19AF, - /* Array index: 0x05F7 */ 0x8DEE, 0x8DF4, 0x19B6, - /* Array index: 0x05FA */ 0x8DFD, 0x8E0A, 0x19BD, - /* Array index: 0x05FD */ 0x8E11, 0x8E1C, 0x19CB, - /* Array index: 0x0600 */ 0x8E23, 0x8E27, 0x19D7, - /* Array index: 0x0603 */ 0x8E3C, 0x8E41, 0x19DC, - /* Array index: 0x0606 */ 0x8E4C, 0x8E62, 0x19E2, - /* Array index: 0x0609 */ 0x8E92, 0x8EA9, 0x19F9, - /* Array index: 0x060C */ 0x8EDC, 0x8EFA, 0x1A11, - /* Array index: 0x060F */ 0x8EFF, 0x8F08, 0x1A30, - /* Array index: 0x0612 */ 0x8F0D, 0x8F11, 0x1A3A, - /* Array index: 0x0615 */ 0x8F16, 0x8F1A, 0x1A3F, - /* Array index: 0x0618 */ 0x8F32, 0x8F39, 0x1A44, - /* Array index: 0x061B */ 0x8F46, 0x8F48, 0x1A4C, - /* Array index: 0x061E */ 0x8F4F, 0x8F64, 0x1A4F, - /* Array index: 0x0621 */ 0x8FD2, 0x8FD7, 0x1A65, - /* Array index: 0x0624 */ 0x8FFB, 0x8FFF, 0x1A6B, - /* Array index: 0x0627 */ 0x9097, 0x90A1, 0x1A70, - /* Array index: 0x062A */ 0x90AF, 0x90B4, 0x1A7B, - /* Array index: 0x062D */ 0x90BD, 0x90BF, 0x1A81, - /* Array index: 0x0630 */ 0x90D4, 0x90F4, 0x1A84, - /* Array index: 0x0633 */ 0x90F9, 0x9108, 0x1AA5, - /* Array index: 0x0636 */ 0x910B, 0x9111, 0x1AB5, - /* Array index: 0x0639 */ 0x911A, 0x9147, 0x1ABC, - /* Array index: 0x063C */ 0x914E, 0x9150, 0x1AEA, - /* Array index: 0x063F */ 0x915F, 0x9164, 0x1AED, - /* Array index: 0x0642 */ 0x9180, 0x9186, 0x1AF3, - /* Array index: 0x0645 */ 0x918D, 0x9193, 0x1AFA, - /* Array index: 0x0648 */ 0x9199, 0x91A2, 0x1B01, - /* Array index: 0x064B */ 0x91AF, 0x91BE, 0x1B0B, - /* Array index: 0x064E */ 0x91D3, 0x91D5, 0x1B1B, - /* Array index: 0x0651 */ 0x91E8, 0x91EE, 0x1B1E, - /* Array index: 0x0654 */ 0x91F3, 0x91F9, 0x1B25, - /* Array index: 0x0657 */ 0x91FD, 0x9206, 0x1B2C, - /* Array index: 0x065A */ 0x9216, 0x921C, 0x1B36, - /* Array index: 0x065D */ 0x9224, 0x9227, 0x1B3D, - /* Array index: 0x0660 */ 0x922D, 0x9233, 0x1B41, - /* Array index: 0x0663 */ 0x924C, 0x9256, 0x1B48, - /* Array index: 0x0666 */ 0x9263, 0x9267, 0x1B53, - /* Array index: 0x0669 */ 0x926C, 0x9272, 0x1B58, - /* Array index: 0x066C */ 0x9279, 0x928E, 0x1B5F, - /* Array index: 0x066F */ 0x9297, 0x92AB, 0x1B75, - /* Array index: 0x0672 */ 0x92B4, 0x92B6, 0x1B8A, - /* Array index: 0x0675 */ 0x92C0, 0x92E1, 0x1B8D, - /* Array index: 0x0678 */ 0x92E6, 0x92E9, 0x1BAF, - /* Array index: 0x067B */ 0x92F7, 0x9302, 0x1BB3, - /* Array index: 0x067E */ 0x9308, 0x9316, 0x1BBF, - /* Array index: 0x0681 */ 0x931B, 0x932A, 0x1BCE, - /* Array index: 0x0684 */ 0x934C, 0x9359, 0x1BDE, - /* Array index: 0x0687 */ 0x9360, 0x9364, 0x1BEC, - /* Array index: 0x068A */ 0x9376, 0x937C, 0x1BF1, - /* Array index: 0x068D */ 0x9388, 0x9392, 0x1BF8, - /* Array index: 0x0690 */ 0x939B, 0x93AA, 0x1C03, - /* Array index: 0x0693 */ 0x93B1, 0x93B7, 0x1C13, - /* Array index: 0x0696 */ 0x93CC, 0x93D5, 0x1C1A, - /* Array index: 0x0699 */ 0x93F5, 0x9400, 0x1C24, - /* Array index: 0x069C */ 0x9406, 0x9416, 0x1C30, - /* Array index: 0x069F */ 0x9428, 0x942C, 0x1C41, - /* Array index: 0x06A2 */ 0x9439, 0x9440, 0x1C46, - /* Array index: 0x06A5 */ 0x9445, 0x9450, 0x1C4E, - /* Array index: 0x06A8 */ 0x946B, 0x9478, 0x1C5A, - /* Array index: 0x06AB */ 0x9480, 0x9483, 0x1C68, - /* Array index: 0x06AE */ 0x957A, 0x957D, 0x1C6C, - /* Array index: 0x06B1 */ 0x959B, 0x959F, 0x1C70, - /* Array index: 0x06B4 */ 0x95B5, 0x95C0, 0x1C75, - /* Array index: 0x06B7 */ 0x95D1, 0x95D3, 0x1C81, - /* Array index: 0x06BA */ 0x95DA, 0x95E5, 0x1C84, - /* Array index: 0x06BD */ 0x9620, 0x9624, 0x1C90, - /* Array index: 0x06C0 */ 0x9639, 0x963D, 0x1C95, - /* Array index: 0x06C3 */ 0x9687, 0x9689, 0x1C9A, - /* Array index: 0x06C6 */ 0x9691, 0x9693, 0x1C9D, - /* Array index: 0x06C9 */ 0x971F, 0x972F, 0x1CA0, - /* Array index: 0x06CC */ 0x9777, 0x9784, 0x1CB1, - /* Array index: 0x06CF */ 0x9799, 0x97A5, 0x1CBF, - /* Array index: 0x06D2 */ 0x97A8, 0x97AE, 0x1CCC, - /* Array index: 0x06D5 */ 0x97CD, 0x97E5, 0x1CD3, - /* Array index: 0x06D8 */ 0x980D, 0x980F, 0x1CEC, - /* Array index: 0x06DB */ 0x9826, 0x9829, 0x1CEF, - /* Array index: 0x06DE */ 0x9841, 0x984A, 0x1CF3, - /* Array index: 0x06E1 */ 0x9850, 0x9852, 0x1CFD, - /* Array index: 0x06E4 */ 0x985C, 0x9864, 0x1D00, - /* Array index: 0x06E7 */ 0x9872, 0x9874, 0x1D09, - /* Array index: 0x06EA */ 0x98AC, 0x98AE, 0x1D0C, - /* Array index: 0x06ED */ 0x98BB, 0x98C2, 0x1D0F, - /* Array index: 0x06F0 */ 0x9914, 0x9917, 0x1D17, - /* Array index: 0x06F3 */ 0x9927, 0x9933, 0x1D1B, - /* Array index: 0x06F6 */ 0x999C, 0x999E, 0x1D28, - /* Array index: 0x06F9 */ 0x99B9, 0x99BD, 0x1D2B, - /* Array index: 0x06FC */ 0x99C9, 0x99CF, 0x1D30, - /* Array index: 0x06FF */ 0x99D3, 0x99D8, 0x1D37, - /* Array index: 0x0702 */ 0x99E3, 0x99F0, 0x1D3D, - /* Array index: 0x0705 */ 0x99F4, 0x9A15, 0x1D4B, - /* Array index: 0x0708 */ 0x9A1A, 0x9A3A, 0x1D6D, - /* Array index: 0x070B */ 0x9A46, 0x9A56, 0x1D8E, - /* Array index: 0x070E */ 0x9A64, 0x9A6B, 0x1D9F, - /* Array index: 0x0711 */ 0x9ABE, 0x9AC2, 0x1DA7, - /* Array index: 0x0714 */ 0x9AF1, 0x9AFE, 0x1DAC, - /* Array index: 0x0717 */ 0x9B08, 0x9B19, 0x1DBA, - /* Array index: 0x071A */ 0x9B1E, 0x9B20, 0x1DCC, - /* Array index: 0x071D */ 0x9B48, 0x9B4C, 0x1DCF, - /* Array index: 0x0720 */ 0x9B5F, 0x9B61, 0x1DD4, - /* Array index: 0x0723 */ 0x9B64, 0x9B68, 0x1DD7, - /* Array index: 0x0726 */ 0x9B70, 0x9B88, 0x1DDC, - /* Array index: 0x0729 */ 0x9B9E, 0x9BA8, 0x1DF5, - /* Array index: 0x072C */ 0x9BB5, 0x9BB9, 0x1E00, - /* Array index: 0x072F */ 0x9BC3, 0x9BC7, 0x1E05, - /* Array index: 0x0732 */ 0x9BD3, 0x9BEC, 0x1E0A, - /* Array index: 0x0735 */ 0x9C05, 0x9C0B, 0x1E24, - /* Array index: 0x0738 */ 0x9C28, 0x9C2C, 0x1E2B, - /* Array index: 0x073B */ 0x9C32, 0x9C41, 0x1E30, - /* Array index: 0x073E */ 0x9C48, 0x9C52, 0x1E40, - /* Array index: 0x0741 */ 0x9C62, 0x9C68, 0x1E4B, - /* Array index: 0x0744 */ 0x9C71, 0x9C75, 0x1E52, - /* Array index: 0x0747 */ 0x9CF7, 0x9D00, 0x1E57, - /* Array index: 0x074A */ 0x9D04, 0x9D08, 0x1E61, - /* Array index: 0x074D */ 0x9D17, 0x9D22, 0x1E66, - /* Array index: 0x0750 */ 0x9D2D, 0x9D38, 0x1E72, - /* Array index: 0x0753 */ 0x9D3D, 0x9D45, 0x1E7E, - /* Array index: 0x0756 */ 0x9D4A, 0x9D4C, 0x1E87, - /* Array index: 0x0759 */ 0x9D52, 0x9D5C, 0x1E8A, - /* Array index: 0x075C */ 0x9D67, 0x9D8C, 0x1E95, - /* Array index: 0x075F */ 0x9D94, 0x9DF8, 0x1EBB, - /* Array index: 0x0762 */ 0x9DFB, 0x9E19, 0x1F20, - /* Array index: 0x0765 */ 0x9E86, 0x9E8E, 0x1F3F, - /* Array index: 0x0768 */ 0x9E99, 0x9E9C, 0x1F48, - /* Array index: 0x076B */ 0x9EE4, 0x9EE7, 0x1F4C, - /* Array index: 0x076E */ 0x9EF2, 0x9F01, 0x1F50, - /* Array index: 0x0771 */ 0x9F18, 0x9F38, 0x1F60, - /* Array index: 0x0774 */ 0x9F40, 0x9F4F, 0x1F81, - /* Array index: 0x0777 */ 0x9F54, 0x9F60, 0x1F91, - /* Array index: 0x077A */ 0x9F6E, 0x9F7B, 0x1F9E, - /* Ranges content */ - /* Range 0x4F12 - 0x4F14, array index: 0x077D */ - 0x217A,0x2177,0x216E, - /* Range 0x4F74 - 0x4F89, array index: 0x0780 */ - 0x2539,INVALC,0x2538,0x253C,0x2543,0x2541,INVALC,INVALC, - 0x2533,0x2535,INVALC,INVALC,0x2536,0x2542,0x2549,INVALC, - 0x253B,0x2534,INVALC,0x2537,INVALC,0x253A, - /* Range 0x4F94 - 0x4F9E, array index: 0x0796 */ - 0x2546,0x254A,INVALC,0x253E,0x2532,INVALC,0x2540,INVALC, - 0x2545,INVALC,0x2547, - /* Range 0x4FB9 - 0x4FBB, array index: 0x07A1 */ - 0x2930,0x292E,0x2929, - /* Range 0x4FF4 - 0x4FF7, array index: 0x07A4 */ - 0x2D71,0x2D70,0x2D75,0x2D76, - /* Range 0x502F - 0x5037, array index: 0x07A8 */ - 0x2D7C,0x2D6E,0x2D7D,INVALC,0x2D72,INVALC,0x2D7B,INVALC, - 0x2D73, - /* Range 0x505B - 0x506B, array index: 0x07B1 */ - 0x335B,INVALC,0x3356,0x3352,0x3360,0x3353,0x3351,0x335D, - 0x3363,0x3364,INVALC,INVALC,INVALC,0x3A3F,0x3361,0x3350, - 0x3362, - /* Range 0x509B - 0x509E, array index: 0x07C2 */ - 0x3A35,0x3A40,0x3A3E,0x3A38, - /* Range 0x50C6 - 0x50CB, array index: 0x07C6 */ - 0x415B,INVALC,0x4160,0x4167,0x415E,0x4166, - /* Range 0x50FD - 0x50FF, array index: 0x07CC */ - 0x4F58,0x4F55,0x4F4E, - /* Range 0x5106 - 0x510C, array index: 0x07CF */ - 0x4F52,0x4F53,INVALC,INVALC,0x4F59,0x4F56,0x4F57, - /* Range 0x5122 - 0x5126, array index: 0x07D6 */ - 0x5C47,INVALC,0x5C48,0x5C46,0x5C45, - /* Range 0x512D - 0x5135, array index: 0x07DB */ - 0x6144,0x6145,INVALC,0x4F50,0x6143,INVALC,INVALC,0x6537, - 0x6538, - /* Range 0x5231 - 0x5235, array index: 0x07E4 */ - 0x2554,0x2551,0x2552,INVALC,0x2550, - /* Range 0x525E - 0x5262, array index: 0x07E9 */ - 0x2E2C,0x2E2D,INVALC,0x2E29,0x2E2F, - /* Range 0x526B - 0x526E, array index: 0x07EE */ - 0x336C,0x336E,0x336D,0x336F, - /* Range 0x5278 - 0x527C, array index: 0x07F2 */ - 0x416C,INVALC,0x416B,0x416D,0x416E, - /* Range 0x5296 - 0x5299, array index: 0x07F7 */ - 0x6539,0x6B51,0x6B50,0x6E7E, - /* Range 0x5309 - 0x530B, array index: 0x07FB */ - 0x2333,0x2556,0x2557, - /* Range 0x5394 - 0x5399, array index: 0x07FE */ - 0x255A,INVALC,0x2939,0x2938,0x293B,0x293A, - /* Range 0x5460 - 0x5467, array index: 0x0804 */ - 0x256B,0x256A,INVALC,0x256D,0x256F,0x2564,0x2567,0x256E, - /* Range 0x547E - 0x5482, array index: 0x080C */ - 0x2563,0x255C,INVALC,0x255D,0x255F, - /* Range 0x54A0 - 0x54A2, array index: 0x0811 */ - 0x2949,0x293D,0x294C, - /* Range 0x5503 - 0x5505, array index: 0x0814 */ - 0x2E48,0x2E3C,0x2E40, - /* Range 0x5508 - 0x5512, array index: 0x0817 */ - 0x2E3D,INVALC,0x2E42,0x2E49,0x3424,INVALC,0x2E47,INVALC, - INVALC,0x2E3F,0x2E36, - /* Range 0x5532 - 0x5536, array index: 0x0822 */ - 0x3425,INVALC,0x3379,0x337E,0x337D, - /* Range 0x554D - 0x5552, array index: 0x0827 */ - 0x3377,0x3427,INVALC,0x3378,0x337B,0x3422, - /* Range 0x5575 - 0x5577, array index: 0x082D */ - 0x3374,0x3375,0x3A4E, - /* Range 0x558C - 0x5595, array index: 0x0830 */ - 0x3A5A,0x417C,0x3A5F,0x3A53,INVALC,0x3A4A,0x3A57,0x3A51, - INVALC,0x3A5D, - /* Range 0x55A1 - 0x55A8, array index: 0x083A */ - 0x3A5E,0x3A50,0x3A56,0x3A58,0x3A4C,0x3A5B,INVALC,0x3A4B, - /* Range 0x55BF - 0x55C4, array index: 0x0842 */ - 0x417A,0x4176,INVALC,0x4227,0x416F,0x4178, - /* Range 0x55C8 - 0x55D6, array index: 0x0848 */ - 0x4223,INVALC,0x4174,0x4173,0x4171,0x4225,INVALC,0x417D, - 0x4172,INVALC,0x417B,INVALC,0x4177,0x417E,0x4222, - /* Range 0x563D - 0x564C, array index: 0x0857 */ - 0x4F6A,0x4F6C,INVALC,0x4F68,0x4F62,0x4F5F,INVALC,INVALC, - 0x3A4F,0x4F65,INVALC,0x4F5E,0x4F64,0x4F63,INVALC,0x4F60, - /* Range 0x567E - 0x5686, array index: 0x0867 */ - 0x5C52,0x5C54,INVALC,0x5C55,0x5C53,0x5C51,0x5C50,INVALC, - 0x5C4F, - /* Range 0x5697 - 0x569D, array index: 0x0870 */ - 0x6148,0x6146,0x614B,0x6149,INVALC,0x6147,0x614A, - /* Range 0x56A6 - 0x56AD, array index: 0x0877 */ - 0x653E,0x653F,INVALC,INVALC,0x6540,0x653C,0x6541,0x653D, - /* Range 0x571A - 0x5723, array index: 0x087F */ - 0x4F70,0x5652,0x5651,INVALC,0x715A,INVALC,0x2139,INVALC, - 0x214F,0x2150, - /* Range 0x576D - 0x5776, array index: 0x0889 */ - 0x2574,INVALC,0x2572,0x2577,0x2576,0x2573,0x257C,0x257D, - 0x257A,0x2578, - /* Range 0x5794 - 0x579F, array index: 0x0893 */ - 0x2959,0x295F,INVALC,0x2956,0x295A,0x295C,0x295E,0x2958, - INVALC,0x2957,0x2952,0x2953, - /* Range 0x57B5 - 0x57C1, array index: 0x089F */ - 0x2951,0x2E55,INVALC,0x2E54,0x2E59,0x2E50,INVALC,0x2E53, - 0x2E52,INVALC,0x2E56,INVALC,0x2E5A, - /* Range 0x57E1 - 0x5801, array index: 0x08AC */ - 0x3444,0x3432,0x3440,INVALC,0x3442,INVALC,0x3448,INVALC, - 0x344C,INVALC,INVALC,0x3443,0x3437,0x343F,INVALC,0x344D, - 0x344B,0x3441,0x343C,0x3435,0x3A68,0x3433,INVALC,0x343A, - INVALC,INVALC,0x3430,0x3446,0x3438,INVALC,INVALC,0x3436, - 0x3449, - /* Range 0x5807 - 0x5810, array index: 0x08CD */ - 0x343E,0x3439,INVALC,INVALC,0x343B,0x344A,0x344E,0x3445, - INVALC,0x3447, - /* Range 0x5825 - 0x582E, array index: 0x08D7 */ - 0x3A6A,INVALC,0x3A65,0x3A67,0x3A61,INVALC,INVALC,0x3A74, - 0x3A73,0x3A70, - /* Range 0x5832 - 0x583F, array index: 0x08E1 */ - 0x2E4D,0x3A6D,INVALC,INVALC,0x3A6F,0x3A62,0x3A72,0x3A71, - INVALC,0x3A75,INVALC,0x4236,INVALC,0x3A6E, - /* Range 0x584D - 0x584F, array index: 0x08EF */ - 0x422D,0x4231,0x422C, - /* Range 0x5863 - 0x5865, array index: 0x08F2 */ - 0x4237,0x422B,0x4234, - /* Range 0x587A - 0x587C, array index: 0x08F5 */ - 0x4946,0x494D,0x493E, - /* Range 0x5886 - 0x5891, array index: 0x08F8 */ - 0x4941,0x4947,0x494C,0x493D,INVALC,0x4945,INVALC,INVALC, - 0x4949,0x494F,0x493F,0x4948, - /* Range 0x590C - 0x590E, array index: 0x0904 */ - 0x2623,0x2961,0x2E5B, - /* Range 0x5970 - 0x5972, array index: 0x0907 */ - 0x614C,0x6D48,0x6F23, - /* Range 0x597B - 0x5980, array index: 0x090A */ - 0x222F,0x222D,INVALC,0x2230,0x2232,0x222C, - /* Range 0x598E - 0x5990, array index: 0x0910 */ - 0x2356,0x2359,0x2358, - /* Range 0x59A0 - 0x59A2, array index: 0x0913 */ - 0x2354,0x235B,0x2357, - /* Range 0x59B1 - 0x59B6, array index: 0x0916 */ - 0x2630,0x2629,INVALC,0x2634,0x2625,0x262C, - /* Range 0x59DD - 0x59E1, array index: 0x091C */ - 0x2968,0x2964,INVALC,0x2974,0x2963, - /* Range 0x59ED - 0x59F7, array index: 0x0921 */ - 0x2977,0x2965,INVALC,INVALC,0x2967,0x296E,0x2972,0x2976, - 0x2973,0x296C,0x296F, - /* Range 0x59FA - 0x5A00, array index: 0x092C */ - 0x2969,INVALC,0x296B,0x296A,0x2975,INVALC,0x2966, - /* Range 0x5A15 - 0x5A19, array index: 0x0933 */ - 0x2E61,0x2E5E,0x2E63,INVALC,0x2E5D, - /* Range 0x5A35 - 0x5A39, array index: 0x0938 */ - 0x3457,INVALC,0x3B26,0x3456,0x3469, - /* Range 0x5A42 - 0x5A48, array index: 0x093D */ - 0x3470,0x3460,0x3463,INVALC,INVALC,0x346D,0x3465, - /* Range 0x5A4C - 0x5A60, array index: 0x0944 */ - 0x346A,0x3468,INVALC,INVALC,0x3459,0x346E,0x3462,0x345D, - INVALC,0x3453,0x346F,0x345F,0x3452,INVALC,INVALC,0x3464, - 0x3471,0x3461,0x3455,0x345A,0x3451, - /* Range 0x5A78 - 0x5A7D, array index: 0x0959 */ - 0x3A7D,INVALC,0x3A7A,0x3B2D,0x3B21,0x3B2E, - /* Range 0x5A8A - 0x5A97, array index: 0x095F */ - 0x3B28,0x3B2B,0x3B2F,INVALC,0x3466,0x3B31,0x424D,INVALC, - INVALC,0x3B32,0x3A78,0x3B24,INVALC,0x3B29, - /* Range 0x5A9C - 0x5A9F, array index: 0x096D */ - 0x3B30,0x3B33,0x3A7C,0x3A79, - /* Range 0x5AAC - 0x5ABB, array index: 0x0971 */ - 0x3B23,INVALC,0x3B25,0x3A77,0x4241,0x423F,INVALC,INVALC, - 0x4249,0x4240,0x424A,0x4246,0x423E,0x424C,0x423D,0x4244, - /* Range 0x5AC4 - 0x5ACD, array index: 0x0981 */ - 0x423B,INVALC,0x4245,0x423A,0x4243,INVALC,0x4248,0x423C, - INVALC,0x424B, - /* Range 0x5AD9 - 0x5AE2, array index: 0x098B */ - 0x4961,0x4957,0x495D,0x4952,0x4960,0x495F,0x4963,0x495C, - INVALC,0x495B, - /* Range 0x5AE8 - 0x5AEE, array index: 0x0995 */ - 0x4962,INVALC,0x4956,0x4959,0x495E,0x4958,0x4953, - /* Range 0x5AF3 - 0x5AF9, array index: 0x099C */ - 0x495A,0x4F7C,INVALC,0x5021,0x4F7E,0x5023,0x5025, - /* Range 0x5AFF - 0x5B07, array index: 0x09A3 */ - 0x4F7B,INVALC,0x5026,0x5024,0x5022,INVALC,0x5028,INVALC, - 0x5027, - /* Range 0x5B13 - 0x5B1B, array index: 0x09AC */ - 0x5660,0x565F,INVALC,0x5662,0x565B,INVALC,0x565C,0x5664, - 0x565D, - /* Range 0x5B23 - 0x5B2F, array index: 0x09B5 */ - 0x5C5D,INVALC,0x5C5B,0x5C60,0x5C5F,0x5663,INVALC,INVALC, - INVALC,0x5C5E,0x5C5A,0x5C62,0x5C61, - /* Range 0x5B3C - 0x5B3F, array index: 0x09C2 */ - 0x614D,0x6546,0x6547,0x6548, - /* Range 0x5B47 - 0x5B4E, array index: 0x09C6 */ - 0x6B56,0x6B55,INVALC,INVALC,0x6D49,0x6D4A,0x6F24,0x7035, - /* Range 0x5BCA - 0x5BCE, array index: 0x09CE */ - 0x3B39,0x3B36,INVALC,0x3B35,0x3B3A, - /* Range 0x5C7A - 0x5C7E, array index: 0x09D3 */ - 0x2237,0x2238,0x2236,INVALC,0x2239, - /* Range 0x5C86 - 0x5C95, array index: 0x09D8 */ - 0x2367,INVALC,0x2362,0x2364,0x2366,0x2363,INVALC,0x2360, - INVALC,0x2361,INVALC,INVALC,0x2365,0x2368,INVALC,0x2369, - /* Range 0x5C9F - 0x5CB0, array index: 0x09E8 */ - 0x2643,0x263E,INVALC,0x2646,0x2644,0x263D,0x264A,0x264D, - 0x2648,0x2641,INVALC,0x2647,INVALC,0x2642,0x2645,0x263C, - 0x2640,0x264C, - /* Range 0x5CC6 - 0x5CDF, array index: 0x09FA */ - 0x2A2C,0x2A25,0x2A2B,0x2A24,0x2A26,0x297E,0x297C,INVALC, - 0x2A2D,0x2A2A,0x297A,INVALC,INVALC,0x2A28,0x2A29,INVALC, - 0x2A27,0x297D,0x297B,INVALC,0x2A23,0x2A21,INVALC,INVALC, - 0x2A22,0x2A2E, - /* Range 0x5CF7 - 0x5CF9, array index: 0x0A14 */ - 0x2E72,0x2A2F,0x2E74, - /* Range 0x5D0B - 0x5D0F, array index: 0x0A17 */ - 0x3478,0x347C,0x347E,INVALC,0x3523, - /* Range 0x5D1D - 0x5D20, array index: 0x0A1C */ - 0x3479,0x3477,0x3527,0x347B, - /* Range 0x5D2E - 0x5D4B, array index: 0x0A20 */ - 0x3528,INVALC,0x3524,0x3B4B,0x3B52,0x3B47,INVALC,0x3B43, - 0x3B53,0x3B3D,0x3B50,0x3B4E,0x3B48,INVALC,0x3B51,0x3B4A, - INVALC,0x3B42,0x3B54,0x3B40,0x3B4D,0x3B3E,INVALC,0x3B55, - INVALC,INVALC,INVALC,0x3B4F,0x4255,0x3B41, - /* Range 0x5D79 - 0x5D82, array index: 0x0A3E */ - 0x4975,0x496C,INVALC,0x4973,0x496A,0x4972,0x4976,0x4969, - 0x496D,0x4968, - /* Range 0x5D86 - 0x5D8A, array index: 0x0A48 */ - 0x496B,INVALC,0x4971,0x4970,0x496F, - /* Range 0x5D9C - 0x5DA2, array index: 0x0A4D */ - 0x5033,INVALC,0x5036,0x502D,0x5032,0x5034,0x502F, - /* Range 0x5DA7 - 0x5DB7, array index: 0x0A54 */ - 0x566B,0x5670,0x566A,0x566F,INVALC,0x5668,0x5672,0x566E, - 0x5673,0x566D,0x5669,0x5671,INVALC,0x5674,0x566C,INVALC, - 0x5C66, - /* Range 0x5E20 - 0x5E24, array index: 0x0A65 */ - 0x2A34,0x2A31,0x2A32,0x2A33,0x2A35, - /* Range 0x5E4A - 0x5E4F, array index: 0x0A6A */ - 0x4260,0x4262,INVALC,0x4261,0x425F,0x425E, - /* Range 0x5E66 - 0x5E70, array index: 0x0A70 */ - 0x5677,0x5675,0x5676,0x5037,0x5C68,INVALC,0x5C67,0x6151, - 0x6152,0x5678,0x654A, - /* Range 0x5E88 - 0x5E8D, array index: 0x0A7B */ - 0x2370,0x236E,INVALC,0x236D,0x236F,0x2371, - /* Range 0x5EA2 - 0x5EA5, array index: 0x0A81 */ - 0x2A38,0x2A3A,0x2A37,0x2A3B, - /* Range 0x5EAE - 0x5EB4, array index: 0x0A85 */ - 0x2E78,INVALC,0x2A36,0x352B,0x352E,0x352F,0x352C, - /* Range 0x5EC5 - 0x5EC7, array index: 0x0A8C */ - 0x4263,0x4265,0x4267, - /* Range 0x5ED1 - 0x5EDE, array index: 0x0A8F */ - 0x497B,0x4A23,INVALC,0x4A24,0x4A21,INVALC,0x497C,0x497A, - 0x4A22,INVALC,0x503C,0x497E,INVALC,0x503D, - /* Range 0x5EE5 - 0x5EE9, array index: 0x0A9D */ - 0x567D,0x567B,0x567A,0x567C,0x5679, - /* Range 0x5EEE - 0x5EF2, array index: 0x0AA2 */ - 0x6872,0x6873,INVALC,0x6B59,0x6D4D, - /* Range 0x5F22 - 0x5F24, array index: 0x0AA7 */ - 0x2652,0x2653,0x2654, - /* Range 0x5FBB - 0x5FC1, array index: 0x0AAA */ - 0x5722,0x5721,INVALC,0x5C69,0x654B,0x6874,0x6875, - /* Range 0x5FCF - 0x5FD5, array index: 0x0AB1 */ - 0x2242,0x2378,0x2377,0x2376,INVALC,0x2241,0x2240, - /* Range 0x5FE1 - 0x5FE5, array index: 0x0AB8 */ - 0x237D,INVALC,0x2421,0x237E,0x265A, - /* Range 0x5FED - 0x5FEF, array index: 0x0ABD */ - 0x2379,0x237B,0x2423, - /* Range 0x6009 - 0x6013, array index: 0x0AC0 */ - 0x266E,0x2661,0x265F,0x266D,0x2668,INVALC,INVALC,0x2669, - 0x266C,INVALC,0x266B, - /* Range 0x602C - 0x6034, array index: 0x0ACB */ - 0x2666,0x265B,0x266A,INVALC,INVALC,INVALC,0x265E,0x2663, - 0x2660, - /* Range 0x6040 - 0x6049, array index: 0x0AD4 */ - 0x2A4B,0x2F23,0x2A4C,INVALC,0x2A4F,0x2A45,INVALC,0x2A47, - INVALC,0x2A48, - /* Range 0x605A - 0x605F, array index: 0x0ADE */ - 0x2F21,0x2A49,INVALC,0x2E7E,0x2A44,0x2A4D, - /* Range 0x6086 - 0x608A, array index: 0x0AE4 */ - 0x3537,0x2F2E,0x2F25,INVALC,0x3535, - /* Range 0x609B - 0x609D, array index: 0x0AE9 */ - 0x2F2C,0x2F2F,0x2F29, - /* Range 0x60BE - 0x60CF, array index: 0x0AEC */ - 0x3538,0x3546,0x3549,0x3B6C,INVALC,0x3547,0x3B61,INVALC, - INVALC,INVALC,0x3541,0x3B5C,0x3545,INVALC,0x3B5E,0x3548, - 0x3B60,0x353D, - /* Range 0x6103 - 0x6105, array index: 0x0AFE */ - 0x3B6D,0x3B72,0x3B66, - /* Range 0x6128 - 0x612F, array index: 0x0B01 */ - 0x4A2A,0x4276,INVALC,0x426E,0x4A29,INVALC,0x4272,0x4274, - /* Range 0x6152 - 0x6156, array index: 0x0B09 */ - 0x4A2F,0x4A30,0x4A35,INVALC,0x4A3C, - /* Range 0x6171 - 0x6174, array index: 0x0B0E */ - 0x4A2D,0x4A31,0x4A2E,0x4A34, - /* Range 0x6189 - 0x618D, array index: 0x0B12 */ - 0x5047,INVALC,0x5041,0x572E,0x5050, - /* Range 0x61AD - 0x61B5, array index: 0x0B17 */ - 0x504B,INVALC,0x504A,0x5045,0x5044,INVALC,0x5052,0x5727, - 0x5C6B, - /* Range 0x61DE - 0x61E0, array index: 0x0B20 */ - 0x5C72,0x6154,0x5C6E, - /* Range 0x61E4 - 0x61F1, array index: 0x0B23 */ - 0x5C70,0x5C6F,INVALC,0x5C6D,0x5C71,0x615C,0x6158,0x615A, - INVALC,0x6155,0x6156,INVALC,0x6159,0x6157, - /* Range 0x6223 - 0x622D, array index: 0x0B31 */ - 0x427A,0x427C,0x427B,INVALC,0x4A3E,INVALC,0x4A3D,INVALC, - 0x4A3F,INVALC,0x5053, - /* Range 0x625E - 0x6266, array index: 0x0B3C */ - 0x2244,INVALC,0x224A,0x2246,0x2248,INVALC,0x2245,0x224C, - 0x2247, - /* Range 0x6270 - 0x6274, array index: 0x0B45 */ - 0x2432,0x242F,0x2437,INVALC,0x2438, - /* Range 0x62A9 - 0x62B8, array index: 0x0B4A */ - 0x267D,0x2676,INVALC,INVALC,0x2672,0x2679,0x267B,0x267E, - INVALC,INVALC,0x267A,0x2673,INVALC,0x2677,INVALC,0x2721, - /* Range 0x62F5 - 0x62FB, array index: 0x0B5A */ - 0x2A58,0x2A60,INVALC,0x2A5F,0x2A5C,0x2A64,0x2A66, - /* Range 0x630B - 0x6315, array index: 0x0B61 */ - 0x2A57,0x2A5E,0x2A56,0x2A59,0x2A5D,0x2F34,INVALC,INVALC, - 0x2A62,0x2A63,0x2A65, - /* Range 0x6332 - 0x633C, array index: 0x0B6C */ - 0x354A,0x2F48,0x2F42,INVALC,0x2F39,INVALC,0x2F4B,0x2F3C, - INVALC,0x3561,0x2F3F, - /* Range 0x6340 - 0x634B, array index: 0x0B77 */ - 0x2F4D,0x2F41,INVALC,0x2F3A,0x2F37,0x2F38,INVALC,0x2F47, - 0x2F4E,INVALC,0x2F3E,0x2F3D, - /* Range 0x6354 - 0x635A, array index: 0x0B83 */ - 0x2F44,INVALC,0x2F35,0x2F4C,0x2F43,0x2F45,0x2F49, - /* Range 0x636D - 0x6370, array index: 0x0B8A */ - 0x355D,0x3559,0x3556,0x3568, - /* Range 0x638D - 0x6391, array index: 0x0B8E */ - 0x3567,0x3555,INVALC,0x3558,0x3566, - /* Range 0x639C - 0x639F, array index: 0x0B93 */ - 0x355C,0x3552,0x3550,0x3562, - /* Range 0x63AB - 0x63B1, array index: 0x0B97 */ - 0x3554,INVALC,0x3551,0x355E,0x355A,0x3B77,0x3B76, - /* Range 0x63C2 - 0x63CE, array index: 0x0B9E */ - 0x3C2F,0x3B7C,0x3C2C,0x427D,INVALC,0x3C30,0x3C33,INVALC, - 0x3C21,0x3C32,0x3C31,INVALC,0x3B78, - /* Range 0x63D5 - 0x63E0, array index: 0x0BAB */ - 0x3C24,INVALC,0x3C35,0x3C2D,0x3C36,INVALC,INVALC,0x3C2B, - 0x3C2A,INVALC,0x3C28,0x3C22, - /* Range 0x63E4 - 0x63E8, array index: 0x0BB7 */ - 0x2F3B,0x3B79,INVALC,0x433D,0x3B7A, - /* Range 0x63EF - 0x63F6, array index: 0x0BBC */ - 0x3B7B,0x3C34,0x427E,0x3C25,0x3B7E,INVALC,0x3C26,0x3C23, - /* Range 0x6409 - 0x6412, array index: 0x0BC4 */ - 0x4324,0x4337,0x433C,0x4330,INVALC,0x4341,INVALC,0x4322, - INVALC,0x4323, - /* Range 0x641F - 0x6428, array index: 0x0BCE */ - 0x4329,0x4325,0x4340,0x432E,0x432F,0x4326,0x433A,0x4331, - 0x433B,0x4333, - /* Range 0x642E - 0x6430, array index: 0x0BD8 */ - 0x433F,0x4336,0x4332, - /* Range 0x643F - 0x6443, array index: 0x0BDB */ - 0x4A55,0x4339,0x4334,INVALC,0x4328, - /* Range 0x6459 - 0x6461, array index: 0x0BE0 */ - 0x4A58,INVALC,0x4A42,0x4A4F,0x4A43,0x4A4E,INVALC,0x4A52, - 0x3C27, - /* Range 0x6470 - 0x6477, array index: 0x0BE9 */ - 0x5055,INVALC,0x4A46,0x4A47,0x4A44,0x4A49,0x4A45,0x4A5A, - /* Range 0x6489 - 0x648C, array index: 0x0BF1 */ - 0x5735,0x505D,0x505C,0x505E, - /* Range 0x6496 - 0x6498, array index: 0x0BF5 */ - 0x5056,0x5059,0x5063, - /* Range 0x649C - 0x64A0, array index: 0x0BF8 */ - 0x505A,0x3B7D,INVALC,0x5060,0x5057, - /* Range 0x650C - 0x6510, array index: 0x0BFD */ - 0x6551,0x654F,0x6552,INVALC,0x654E, - /* Range 0x6513 - 0x6517, array index: 0x0C02 */ - 0x687A,INVALC,0x6879,0x6878,0x6877, - /* Range 0x6520 - 0x6526, array index: 0x0C07 */ - 0x6D4F,0x6D4E,0x6D51,INVALC,INVALC,0x6F2C,0x6D50, - /* Range 0x6564 - 0x656A, array index: 0x0C0E */ - 0x3C3A,0x3C3D,INVALC,0x3C38,0x3C3C,INVALC,0x3C39, - /* Range 0x6579 - 0x6581, array index: 0x0C15 */ - 0x5066,0x5065,0x5067,0x573C,INVALC,INVALC,0x573B,0x5C7A, - 0x5C79, - /* Range 0x65C2 - 0x65C6, array index: 0x0C1E */ - 0x2F54,0x2F52,0x2F53,INVALC,0x2F51, - /* Range 0x65DA - 0x65E1, array index: 0x0C23 */ - 0x5C7C,0x6165,INVALC,0x6555,0x6554,0x687B,INVALC,0x213E, - /* Range 0x65EE - 0x65F5, array index: 0x0C2B */ - 0x224F,0x224E,0x2439,INVALC,0x243C,0x243B,0x243A,0x243D, - /* Range 0x65FB - 0x65FD, array index: 0x0C33 */ - 0x272A,0x2726,0x272F, - /* Range 0x6603 - 0x6612, array index: 0x0C36 */ - 0x272B,0x2727,0x272E,INVALC,INVALC,0x2729,0x2725,INVALC, - 0x272C,INVALC,0x272D,INVALC,INVALC,0x2731,0x2730,0x2728, - /* Range 0x6632 - 0x663A, array index: 0x0C46 */ - 0x2A6E,0x2A73,0x2A77,0x2A6F,0x2A6C,INVALC,INVALC,0x2A78, - 0x2A75, - /* Range 0x6678 - 0x667C, array index: 0x0C4F */ - 0x434D,0x3C49,INVALC,0x3C46,0x3C44, - /* Range 0x668A - 0x668C, array index: 0x0C54 */ - 0x434A,0x4349,0x4346, - /* Range 0x669F - 0x66A1, array index: 0x0C57 */ - 0x4A5F,0x4A5E,0x4A5D, - /* Range 0x66BA - 0x66C0, array index: 0x0C5A */ - 0x5746,0x5745,INVALC,0x5744,0x573F,INVALC,0x5740, - /* Range 0x66C8 - 0x66CC, array index: 0x0C61 */ - 0x573E,INVALC,0x5741,0x5742,0x5747, - /* Range 0x670F - 0x6713, array index: 0x0C66 */ - 0x2A7A,0x2A7B,INVALC,0x2F59,0x2F5A, - /* Range 0x6720 - 0x6723, array index: 0x0C6B */ - 0x434E,0x4641,0x4A62,0x5748, - /* Range 0x6738 - 0x673F, array index: 0x0C6F */ - 0x2252,0x2251,0x2254,0x2253,0x2256,INVALC,0x2250,0x2255, - /* Range 0x6747 - 0x674D, array index: 0x0C77 */ - 0x243F,0x2443,INVALC,INVALC,0x2447,0x2442,0x2445, - /* Range 0x6776 - 0x677D, array index: 0x0C7E */ - 0x2738,INVALC,0x2747,0x2748,0x2740,0x2739,INVALC,0x2745, - /* Range 0x6781 - 0x6786, array index: 0x0C86 */ - 0x2746,INVALC,0x2744,0x273C,0x2734,0x273B, - /* Range 0x678C - 0x6794, array index: 0x0C8C */ - 0x273F,0x273E,0x2736,INVALC,INVALC,0x2742,0x2737,INVALC, - 0x2749, - /* Range 0x67B7 - 0x67BB, array index: 0x0C95 */ - 0x2B27,INVALC,0x2B34,0x2B21,0x2B23, - /* Range 0x67C0 - 0x67CE, array index: 0x0C9A */ - 0x2B26,0x2A7C,0x2B33,0x2B43,INVALC,0x2B28,0x2B3A,INVALC, - 0x2A7E,0x2B41,0x2B42,0x2B45,0x2B3C,0x2B2D,0x2B35, - /* Range 0x67E3 - 0x67FC, array index: 0x0CA9 */ - 0x2B32,0x2B2A,INVALC,0x2B3E,0x2B36,INVALC,INVALC,0x2B44, - 0x2B29,INVALC,0x2B3B,0x2B31,INVALC,0x2B37,INVALC,0x2A7D, - INVALC,INVALC,INVALC,0x2B30,0x2B2F,0x2B24,INVALC,0x2B40, - INVALC,0x2B39, - /* Range 0x681C - 0x6820, array index: 0x0CC3 */ - 0x2F65,0x2F6D,INVALC,0x2F5B,0x2F76, - /* Range 0x682B - 0x6835, array index: 0x0CC8 */ - 0x2F67,INVALC,0x2F68,0x2F72,0x2F69,INVALC,0x2F64,0x2F5E, - 0x2F5F,0x2F6C,0x2F66, - /* Range 0x684B - 0x684F, array index: 0x0CD3 */ - 0x2F61,INVALC,0x2F73,0x2F6A,0x2F62, - /* Range 0x686B - 0x6880, array index: 0x0CD8 */ - 0x3628,INVALC,0x3576,0x3577,0x357B,INVALC,0x362C,0x3629, - INVALC,0x3622,0x3621,INVALC,0x3625,0x3634,0x3572,INVALC, - 0x3635,0x3627,0x3639,0x362D,INVALC,0x362B, - /* Range 0x6887 - 0x6892, array index: 0x0CEE */ - 0x3573,INVALC,0x3632,0x3638,0x3630,0x3637,INVALC,INVALC, - 0x3624,0x3574,0x3636,0x3626, - /* Range 0x68A9 - 0x68AE, array index: 0x0CFA */ - 0x357E,0x362A,0x3579,0x357D,INVALC,0x3578, - /* Range 0x68C6 - 0x68C8, array index: 0x0D00 */ - 0x3C66,0x3C7C,0x3C71, - /* Range 0x68D0 - 0x68D6, array index: 0x0D03 */ - 0x3C69,0x3C76,INVALC,0x3C4E,0x3C78,INVALC,0x3C56, - /* Range 0x68DC - 0x68DE, array index: 0x0D0A */ - 0x3C50,0x3C72,0x3C73, - /* Range 0x68E6 - 0x68F8, array index: 0x0D0D */ - 0x3C74,INVALC,0x3C6C,0x3C79,0x3C53,0x3C58,0x3C52,INVALC, - INVALC,0x3C65,0x4364,0x3C54,INVALC,0x3C5D,0x3C75,INVALC, - 0x3C5A,0x3C57,0x3C68, - /* Range 0x6904 - 0x6917, array index: 0x0D20 */ - 0x3C4F,INVALC,0x3C77,0x3C5F,0x3C61,INVALC,0x3C6E,0x3C6D, - 0x3C4D,INVALC,INVALC,0x3C55,0x3C5C,0x3C64,INVALC,0x3C5B, - 0x3C67,0x3C7A,INVALC,0x3C6F, - /* Range 0x6932 - 0x6959, array index: 0x0D34 */ - 0x4376,0x4361,0x4366,0x435F,INVALC,0x4372,0x4351,0x4358, - INVALC,0x4370,0x437A,0x4362,INVALC,0x4355,0x4368,0x436D, - 0x4359,INVALC,0x436A,0x4356,INVALC,INVALC,0x435D,0x435E, - INVALC,0x4371,0x436F,INVALC,0x4352,0x4374,INVALC,0x4375, - 0x4377,INVALC,INVALC,INVALC,0x357A,0x435A,0x436C,0x435B, - /* Range 0x696F - 0x6971, array index: 0x0D5C */ - 0x4369,0x3C62,0x4354, - /* Range 0x698D - 0x699A, array index: 0x0D5F */ - 0x4A70,0x4A6E,INVALC,0x4B26,0x4A6C,INVALC,0x4A7E,INVALC, - INVALC,0x4A68,0x4B25,INVALC,0x4A6D,0x4A7B, - /* Range 0x69AF - 0x69B6, array index: 0x0D6D */ - 0x4A73,0x4A69,0x4A63,INVALC,0x4A7D,INVALC,0x4B28,0x4A64, - /* Range 0x69BC - 0x69BF, array index: 0x0D75 */ - 0x4A6B,0x4A76,0x4A72,0x4A74, - /* Range 0x69E2 - 0x69E7, array index: 0x0D79 */ - 0x507C,INVALC,0x5078,0x5074,0x512A,0x5127, - /* Range 0x69F4 - 0x6A00, array index: 0x0D7F */ - 0x5137,INVALC,0x5134,0x5126,0x5075,INVALC,INVALC,0x512B, - 0x512D,INVALC,0x5121,0x507A,0x5071, - /* Range 0x6A04 - 0x6A09, array index: 0x0D8C */ - 0x5130,INVALC,0x5072,0x5136,0x5129,0x512F, - /* Range 0x6A14 - 0x6A18, array index: 0x0D92 */ - 0x5125,0x5076,0x5138,0x5073,0x5131, - /* Range 0x6A25 - 0x6A28, array index: 0x0D97 */ - 0x5132,0x5135,0x5122,0x5755, - /* Range 0x6A3B - 0x6A41, array index: 0x0D9B */ - 0x5757,0x5762,INVALC,0x574F,0x5758,0x5128,0x5759, - /* Range 0x6A4D - 0x6A56, array index: 0x0DA2 */ - 0x5766,0x5767,0x575D,0x575C,0x5754,INVALC,INVALC,0x575E, - 0x5765,0x5764, - /* Range 0x6A5A - 0x6A60, array index: 0x0DAC */ - 0x5756,0x5753,INVALC,0x5750,0x5763,INVALC,0x5761, - /* Range 0x6A64 - 0x6A6A, array index: 0x0DB3 */ - 0x575B,INVALC,0x574A,0x574C,0x574E,0x5760,0x575A, - /* Range 0x6A8C - 0x6A96, array index: 0x0DBA */ - 0x5D35,0x5C7E,0x5D2B,INVALC,INVALC,0x5D30,0x5D36,0x5D2A, - INVALC,0x5D2C,0x5D21, - /* Range 0x6AA4 - 0x6AA8, array index: 0x0DC5 */ - 0x5D2F,0x5D23,0x5D32,INVALC,0x5D2E, - /* Range 0x6AB6 - 0x6ABA, array index: 0x0DCA */ - 0x616F,0x6170,INVALC,0x616A,0x616E, - /* Range 0x6AC5 - 0x6AD1, array index: 0x0DCF */ - 0x6169,0x616D,0x6171,INVALC,INVALC,INVALC,0x655C,0x6559, - 0x6562,INVALC,0x6561,0x655F,0x655A, - /* Range 0x6ADC - 0x6AE1, array index: 0x0DDC */ - 0x655E,INVALC,0x6563,0x655D,0x6558,0x616C, - /* Range 0x6AE7 - 0x6AF3, array index: 0x0DE2 */ - 0x6557,0x6924,INVALC,0x6923,0x6560,INVALC,INVALC,0x6927, - 0x6928,0x6922,0x6926,INVALC,0x6921, - /* Range 0x6B0F - 0x6B1A, array index: 0x0DEF */ - 0x6F31,INVALC,0x6F2F,0x6F30,0x703A,INVALC,INVALC,INVALC, - 0x7123,0x7121,0x7122,0x7124, - /* Range 0x6B33 - 0x6B3C, array index: 0x0DFB */ - 0x363B,0x2F7B,INVALC,0x363A,0x363C,0x363D,0x3C7D,INVALC, - 0x3C7E,0x3D22, - /* Range 0x6B3F - 0x6B4D, array index: 0x0E05 */ - 0x3D21,INVALC,0x4422,0x437E,0x437D,INVALC,0x437C,0x437B, - INVALC,0x4421,INVALC,0x4B2B,0x4B2D,INVALC,0x4B2C, - /* Range 0x6B54 - 0x6B56, array index: 0x0E14 */ - 0x576A,0x5769,0x576B, - /* Range 0x6B8C - 0x6BAD, array index: 0x0E17 */ - 0x3642,0x3640,0x3641,0x363F,INVALC,0x363E,INVALC,INVALC, - 0x3D23,0x3D26,INVALC,0x3D24,INVALC,0x3D25,INVALC,0x4423, - INVALC,INVALC,0x4B2E,0x4B2F,0x4B30,INVALC,0x513C,0x513B, - INVALC,0x513A,0x513D,0x576C,INVALC,INVALC,0x576D,0x576E, - INVALC,0x5D38, - /* Range 0x6BC3 - 0x6BCC, array index: 0x0E39 */ - 0x4B31,0x4B32,INVALC,INVALC,0x5770,0x576F,0x6175,0x6F32, - INVALC,0x2140, - /* Range 0x6BE0 - 0x6BE8, array index: 0x0E43 */ - 0x2B4C,INVALC,0x3025,0x3024,0x3022,INVALC,0x3021,0x3026, - 0x3023, - /* Range 0x6BF7 - 0x6C06, array index: 0x0E4C */ - 0x4427,0x4428,0x4426,INVALC,0x4424,0x4425,INVALC,0x4B33, - 0x5140,0x513F,0x513E,0x5141,0x5772,0x5771,INVALC,0x5773, - /* Range 0x6C09 - 0x6C0D, array index: 0x0E5C */ - 0x5D39,INVALC,0x6176,0x6566,0x6D55, - /* Range 0x6C14 - 0x6C1A, array index: 0x0E61 */ - 0x2141,0x215F,INVALC,INVALC,0x2258,0x2449,0x244A, - /* Range 0x6C4A - 0x6C4C, array index: 0x0E68 */ - 0x225D,0x225F,0x2260, - /* Range 0x6C65 - 0x6C73, array index: 0x0E6B */ - 0x245B,0x2459,0x244C,INVALC,0x2453,INVALC,0x244D,INVALC, - 0x2455,INVALC,0x2452,INVALC,0x2451,INVALC,0x245A, - /* Range 0x6CCD - 0x6CD4, array index: 0x0E7A */ - 0x2769,INVALC,0x276D,0x2759,0x276F,0x2760,INVALC,0x2755, - /* Range 0x6CE9 - 0x6CEE, array index: 0x0E82 */ - 0x276E,INVALC,0x2751,0x2750,0x275E,0x2752, - /* Range 0x6D00 - 0x6D0A, array index: 0x0E88 */ - 0x2B5E,0x2B61,INVALC,0x2B64,0x2B59,INVALC,INVALC,0x2B67, - 0x2B6A,0x2B6C,0x2B56, - /* Range 0x6D0D - 0x6D12, array index: 0x0E93 */ - 0x302C,INVALC,0x2B65,0x2B6D,0x2B5D,0x2B55, - /* Range 0x6D16 - 0x6D1A, array index: 0x0E99 */ - 0x3047,INVALC,0x2B62,0x2B5A,0x2B5C, - /* Range 0x6D2C - 0x6D34, array index: 0x0E9E */ - 0x2B69,0x2B51,INVALC,0x3041,0x2768,INVALC,INVALC,0x2B58, - 0x2B50, - /* Range 0x6D5E - 0x6D68, array index: 0x0EA7 */ - 0x3038,0x303E,0x303A,0x302D,0x3030,0x3029,0x302A,INVALC, - INVALC,0x3039,0x3042, - /* Range 0x6D7A - 0x6D86, array index: 0x0EB2 */ - 0x3028,0x3049,0x303D,0x304A,0x3044,0x3036,0x3045,INVALC, - 0x303F,0x3048,0x3046,INVALC,0x3037, - /* Range 0x6D90 - 0x6D92, array index: 0x0EBF */ - 0x304C,0x3033,0x302E, - /* Range 0x6DBA - 0x6DC2, array index: 0x0EC2 */ - 0x365E,0x366A,INVALC,0x365B,0x3654,INVALC,0x3644,INVALC, - 0x3660, - /* Range 0x6DC8 - 0x6DCA, array index: 0x0ECB */ - 0x3650,0x3662,0x365A, - /* Range 0x6DCF - 0x6DE5, array index: 0x0ECE */ - 0x3661,0x3663,INVALC,INVALC,0x3665,0x364E,0x365F,0x3653, - 0x3667,INVALC,INVALC,INVALC,0x3658,0x3656,0x3657,INVALC, - 0x3652,0x3651,INVALC,0x364B,0x3669,INVALC,0x3655, - /* Range 0x6E39 - 0x6E4B, array index: 0x0EE5 */ - 0x3D4C,INVALC,0x3D40,0x3D32,0x3D33,INVALC,0x3D37,0x3D3E, - 0x3D38,INVALC,INVALC,INVALC,0x3D34,0x3D2D,0x3D2E,INVALC, - 0x3D30,INVALC,0x3D3D, - /* Range 0x6E51 - 0x6E55, array index: 0x0EF8 */ - 0x3D3F,0x3D57,0x3D4F,INVALC,0x3D55, - /* Range 0x6E5A - 0x6E68, array index: 0x0EFD */ - 0x3D5B,INVALC,0x3D45,0x3D39,0x3D43,INVALC,0x3D49,0x3D46, - 0x3D35,INVALC,0x3D53,0x3D50,0x3D58,INVALC,0x3D44, - /* Range 0x6E73 - 0x6E79, array index: 0x0F0C */ - 0x3D3A,0x3648,INVALC,INVALC,0x3D54,0x3D52,0x3D56, - /* Range 0x6E8D - 0x6E94, array index: 0x0F13 */ - 0x4447,0x4446,0x442C,INVALC,INVALC,0x4445,0x442F,0x4430, - /* Range 0x6E9E - 0x6EA6, array index: 0x0F1B */ - 0x4438,0x442E,0x4431,0x4449,INVALC,0x4450,0x4448,INVALC, - 0x443D, - /* Range 0x6EAE - 0x6EB3, array index: 0x0F24 */ - 0x444F,INVALC,0x443B,0x4432,0x443F,0x444B, - /* Range 0x6EBD - 0x6EC3, array index: 0x0F2A */ - 0x4436,0x4440,0x444A,0x442D,0x4437,INVALC,0x4441, - /* Range 0x6EC6 - 0x6ED2, array index: 0x0F31 */ - 0x4434,INVALC,0x442B,0x4439,0x444D,INVALC,INVALC,0x443C, - 0x4B34,0x443E,0x444C,INVALC,0x4435, - /* Range 0x6EF5 - 0x6EFD, array index: 0x0F3E */ - 0x4B35,0x4B56,INVALC,0x4B39,0x4B49,INVALC,0x4B3B,0x4B59, - 0x4B55, - /* Range 0x6F05 - 0x6F0E, array index: 0x0F47 */ - 0x4B54,INVALC,0x4B51,0x4B5E,0x4B3D,0x4B46,INVALC,INVALC, - 0x4B5C,0x4B52, - /* Range 0x6F18 - 0x6F27, array index: 0x0F51 */ - 0x4B42,0x4B3F,0x4B40,INVALC,0x4B58,INVALC,0x4B5D,0x4B5B, - INVALC,0x4B5F,INVALC,INVALC,INVALC,0x4B38,0x5143,0x4B41, - /* Range 0x6F35 - 0x6F3C, array index: 0x0F61 */ - 0x4B4F,0x4B47,0x4B3A,INVALC,0x4B57,0x4B5A,0x4B43,0x4B4E, - /* Range 0x6F4E - 0x6F57, array index: 0x0F69 */ - 0x4B3E,0x514C,0x5156,INVALC,0x5155,0x5161,INVALC,0x5153, - INVALC,0x5157, - /* Range 0x6F5D - 0x6F63, array index: 0x0F73 */ - 0x515A,0x577B,INVALC,INVALC,0x515C,0x514B,0x5166, - /* Range 0x6F67 - 0x6F6C, array index: 0x0F7A */ - 0x515F,INVALC,0x5163,0x5168,0x515D,0x5151, - /* Range 0x6F7B - 0x6F7F, array index: 0x0F80 */ - 0x5169,INVALC,0x515E,0x5144,0x5164, - /* Range 0x6F89 - 0x6F8D, array index: 0x0F85 */ - 0x5149,INVALC,0x5162,0x514A,0x5148, - /* Range 0x6F90 - 0x6F96, array index: 0x0F8A */ - 0x5160,INVALC,0x5147,0x5159,0x5158,0x5165,0x514F, - /* Range 0x6FA8 - 0x6FB2, array index: 0x0F91 */ - 0x5822,0x5D3B,0x5828,0x582E,0x5827,0x5774,0x5825,0x5830, - 0x5832,INVALC,0x5831, - /* Range 0x6FC4 - 0x6FCF, array index: 0x0F9C */ - 0x577C,INVALC,0x5146,0x5777,0x577A,0x582D,0x5821,0x5775, - 0x5D3A,0x582F,0x5779,0x5829, - /* Range 0x6FDC - 0x6FDE, array index: 0x0FA8 */ - 0x5D3F,0x5D45,0x5D43, - /* Range 0x6FE2 - 0x6FE8, array index: 0x0FAB */ - 0x5D46,0x5D3E,INVALC,INVALC,0x5D42,0x5D41,0x5D47, - /* Range 0x6FFB - 0x7007, array index: 0x0FB2 */ - 0x6222,0x6224,INVALC,INVALC,0x617E,0x6221,0x617A,INVALC, - INVALC,0x5823,0x617B,INVALC,0x6177, - /* Range 0x700A - 0x700E, array index: 0x0FBF */ - 0x6226,INVALC,0x6178,0x6179,0x617D, - /* Range 0x7020 - 0x702B, array index: 0x0FC4 */ - 0x6569,0x656C,0x656D,0x656E,0x6571,INVALC,0x6223,0x6568, - INVALC,0x656F,0x6934,0x656B, - /* Range 0x7031 - 0x704A, array index: 0x0FD0 */ - 0x692E,INVALC,0x6937,0x692D,0x692A,INVALC,0x692C,0x6930, - 0x6933,0x6932,0x6936,0x6929,INVALC,INVALC,0x6931,0x6935, - 0x6938,0x692F,0x6B61,0x6B62,0x6B66,0x6B67,INVALC,0x6B64, - 0x6B65,0x6B63, - /* Range 0x7055 - 0x706A, array index: 0x0FEA */ - 0x6D56,0x6D57,0x6D58,INVALC,INVALC,0x6F34,0x6F33,INVALC, - 0x703D,INVALC,0x703B,0x703E,0x703C,0x7125,INVALC,INVALC, - 0x7171,0x715B,INVALC,0x7170,0x723E,0x723F, - /* Range 0x7082 - 0x7086, array index: 0x1000 */ - 0x2778,0x277A,0x2775,0x2772,0x2774, - /* Range 0x70C5 - 0x70C7, array index: 0x1005 */ - 0x305A,0x305B,0x305C, - /* Range 0x70CD - 0x70D4, array index: 0x1008 */ - 0x3059,0x305E,INVALC,INVALC,0x304F,0x3055,0x304E,0x3058, - /* Range 0x70DA - 0x70E2, array index: 0x1010 */ - 0x305D,INVALC,0x304D,0x3050,0x3056,INVALC,0x3057,0x305F, - 0x3053, - /* Range 0x70F3 - 0x7106, array index: 0x1019 */ - 0x3673,0x366F,INVALC,0x367B,0x366D,0x367A,INVALC,0x366B, - 0x3D5F,0x3675,INVALC,INVALC,0x3676,0x3679,INVALC,0x367D, - INVALC,0x3672,INVALC,0x3677, - /* Range 0x710B - 0x7110, array index: 0x102D */ - 0x367C,0x3670,0x366C,0x367E,INVALC,0x3674, - /* Range 0x711E - 0x7125, array index: 0x1033 */ - 0x3D5D,0x3D66,0x3D5C,INVALC,0x3D64,0x3D62,INVALC,0x3D63, - /* Range 0x712E - 0x7132, array index: 0x103B */ - 0x3D60,0x3D5E,INVALC,0x3D61,0x3D65, - /* Range 0x7141 - 0x7144, array index: 0x1040 */ - 0x4456,0x445D,0x445F,0x4465, - /* Range 0x7150 - 0x7154, array index: 0x1044 */ - 0x4463,INVALC,0x4453,0x4464,0x4452, - /* Range 0x715D - 0x7163, array index: 0x1049 */ - 0x4457,INVALC,0x4462,0x4455,0x445C,0x4458,0x4454, - /* Range 0x7180 - 0x7189, array index: 0x1050 */ - 0x4B63,0x4B69,0x4B65,INVALC,INVALC,0x4B64,0x4B68,0x4B60, - INVALC,0x4B62, - /* Range 0x719A - 0x71AA, array index: 0x105A */ - 0x516F,0x516C,0x5178,0x5172,0x5174,INVALC,0x516E,0x5176, - INVALC,INVALC,0x5175,0x5173,INVALC,0x5179,INVALC,0x5170, - 0x5177, - /* Range 0x71AF - 0x71B5, array index: 0x106B */ - 0x516B,0x516D,INVALC,0x516A,0x517A,INVALC,0x5171, - /* Range 0x71BC - 0x71CB, array index: 0x1072 */ - 0x5841,0x583F,INVALC,0x5835,0x5838,0x5839,0x5834,INVALC, - INVALC,0x5833,0x5842,0x583D,INVALC,INVALC,0x583C,0x583A, - /* Range 0x71F0 - 0x71F2, array index: 0x1082 */ - 0x5D4D,0x5D49,0x5D4B, - /* Range 0x71FF - 0x7207, array index: 0x1085 */ - 0x6228,INVALC,0x6227,0x6576,0x622A,INVALC,0x6577,INVALC, - 0x6575, - /* Range 0x7219 - 0x7229, array index: 0x108E */ - 0x6B6A,0x6B69,INVALC,INVALC,0x6B68,0x6D5A,0x6D5B,INVALC, - INVALC,0x6F35,0x703F,INVALC,INVALC,0x7126,0x722C,INVALC, - 0x7240, - /* Range 0x7249 - 0x724B, array index: 0x109F */ - 0x2B78,0x2B79,0x3D6A, - /* Range 0x7276 - 0x727F, array index: 0x10A2 */ - 0x3063,0x3062,0x3061,INVALC,INVALC,0x3722,0x3723,INVALC, - 0x3721,0x3724, - /* Range 0x7285 - 0x729E, array index: 0x10AC */ - 0x3D6F,0x3D6E,INVALC,0x3D6C,0x3D6D,INVALC,0x3D70,0x446A, - 0x4469,0x446D,INVALC,0x446C,0x446B,INVALC,0x4B6F,INVALC, - 0x4B6E,INVALC,0x4B6D,0x517B,INVALC,0x517C,INVALC,INVALC, - 0x5845,0x5846, - /* Range 0x72A1 - 0x72AA, array index: 0x10C6 */ - 0x657C,INVALC,0x657B,0x657A,0x6578,0x6579,INVALC,0x693B, - 0x6D5C,0x7127, - /* Range 0x72C5 - 0x72CC, array index: 0x10D0 */ - 0x2467,0x2464,INVALC,INVALC,0x2821,0x2B7E,0x277D,0x2826, - /* Range 0x72FA - 0x7301, array index: 0x10D8 */ - 0x3065,0x306A,INVALC,INVALC,0x3067,0x372C,0x3064,0x306B, - /* Range 0x7307 - 0x730C, array index: 0x10E0 */ - 0x3727,0x372B,INVALC,0x372A,0x3D72,0x3D7D, - /* Range 0x7330 - 0x7335, array index: 0x10E6 */ - 0x3D73,0x3D75,0x3D78,0x3D76,INVALC,0x3D7C, - /* Range 0x733A - 0x733C, array index: 0x10EC */ - 0x4471,0x4470,0x446E, - /* Range 0x7349 - 0x734D, array index: 0x10EF */ - 0x4474,0x4473,INVALC,0x4B73,0x4B71, - /* Range 0x7358 - 0x736F, array index: 0x10F4 */ - 0x517D,0x5228,0x5227,0x5225,INVALC,0x5224,0x5221,0x5222, - 0x5223,0x5226,0x5229,INVALC,INVALC,0x584B,0x5848,0x5849, - INVALC,0x5847,0x584D,0x584C,0x584A,INVALC,0x5D50,0x5D51, - /* Range 0x737C - 0x7385, array index: 0x110C */ - 0x693D,0x693C,0x6B6B,0x6D5D,INVALC,0x6F37,0x6F36,0x6F38, - INVALC,0x2C28, - /* Range 0x7392 - 0x7397, array index: 0x1116 */ - 0x246C,0x246A,0x246B,0x2468,INVALC,0x2469, - /* Range 0x73A0 - 0x73A6, array index: 0x111C */ - 0x282D,0x2829,0x282C,INVALC,0x2828,INVALC,0x282B, - /* Range 0x73B4 - 0x73B9, array index: 0x1123 */ - 0x2C30,0x2C2F,0x2C2E,INVALC,0x2C37,0x2C2D, - /* Range 0x73C2 - 0x73CC, array index: 0x1129 */ - 0x2C2A,0x2C35,INVALC,0x2C2C,0x2C36,0x2C33,0x2C2B,INVALC, - INVALC,0x2C38,0x2C29, - /* Range 0x73D2 - 0x73DD, array index: 0x1134 */ - 0x3075,0x306C,0x3077,INVALC,0x306F,0x307A,0x307B,0x306D, - 0x3079,0x3076,0x3074,0x3078, - /* Range 0x73E5 - 0x73EB, array index: 0x1140 */ - 0x306E,INVALC,0x3071,0x307C,0x3073,INVALC,0x2C31, - /* Range 0x73F4 - 0x7401, array index: 0x1147 */ - 0x373D,0x3732,0x3730,INVALC,0x3731,INVALC,0x3738,INVALC, - 0x3739,0x3735,INVALC,0x373A,0x3737,0x3734, - /* Range 0x7420 - 0x7424, array index: 0x1155 */ - 0x3E2D,0x3E26,INVALC,0x3E2A,0x3E29, - /* Range 0x7429 - 0x7432, array index: 0x115A */ - 0x3E2C,INVALC,0x3E23,0x3E21,0x3E27,0x3D7E,INVALC,0x3E22, - 0x3E28,0x3E2E, - /* Range 0x744A - 0x7454, array index: 0x1164 */ - 0x4476,0x4477,INVALC,0x4523,0x447E,0x447C,0x447D,0x4479, - 0x4478,INVALC,0x4524, - /* Range 0x7471 - 0x7475, array index: 0x116F */ - 0x4B76,0x4B78,0x4B75,INVALC,0x4B77, - /* Range 0x7485 - 0x748A, array index: 0x1174 */ - 0x5230,0x522D,0x522A,0x5231,0x522B,0x522C, - /* Range 0x74B1 - 0x74BB, array index: 0x117A */ - 0x5D58,0x5D53,INVALC,INVALC,0x622F,0x6232,0x6621,0x622D, - INVALC,0x693E,0x6233, - /* Range 0x74BE - 0x74C5, array index: 0x1185 */ - 0x6231,INVALC,0x622E,0x6230,0x6234,0x6622,INVALC,0x657E, - /* Range 0x74D5 - 0x74E1, array index: 0x118D */ - 0x6D5F,INVALC,0x6D61,0x6D5E,0x6D60,INVALC,0x7040,INVALC, - 0x2830,0x307D,0x307E,INVALC,0x4525, - /* Range 0x74FB - 0x7503, array index: 0x119A */ - 0x3E2F,INVALC,0x4528,0x4527,0x4526,0x4B7B,INVALC,0x4B7C, - 0x4B7D, - /* Range 0x750F - 0x7517, array index: 0x11A3 */ - 0x5D5E,0x5D5B,0x5D5C,0x5D5D,0x6236,0x6235,INVALC,0x6623, - 0x6B6C, - /* Range 0x753E - 0x7540, array index: 0x11AC */ - 0x2834,0x2832,0x2833, - /* Range 0x75BF - 0x75C1, array index: 0x11AF */ - 0x312B,0x312A,0x3127, - /* Range 0x75CB - 0x75D2, array index: 0x11B2 */ - 0x3744,0x3745,INVALC,0x3741,0x3743,0x3747,0x3746,0x3742, - /* Range 0x75F5 - 0x75FE, array index: 0x11BA */ - 0x4539,0x4537,0x4530,0x4534,0x4533,INVALC,0x4536,0x4532, - 0x453A,0x4531, - /* Range 0x760F - 0x761E, array index: 0x11C4 */ - 0x452E,0x4535,0x4C26,INVALC,INVALC,0x4C28,0x4C25,0x4C22, - INVALC,INVALC,0x5239,0x523D,0x523F,0x523B,0x523A,0x5238, - /* Range 0x762D - 0x7635, array index: 0x11D4 */ - 0x5858,INVALC,0x5857,0x585F,0x5859,0x585E,0x585B,INVALC, - 0x585D, - /* Range 0x7647 - 0x7649, array index: 0x11DD */ - 0x5D63,0x5D61,0x5D62, - /* Range 0x7699 - 0x769E, array index: 0x11E0 */ - 0x453B,INVALC,0x5243,0x5240,0x5241,0x5242, - /* Range 0x7703 - 0x7705, array index: 0x11E6 */ - 0x2C43,0x2C44,0x2C45, - /* Range 0x7710 - 0x771D, array index: 0x11E9 */ - 0x3132,0x3136,0x3134,0x3133,INVALC,0x3137,INVALC,INVALC, - INVALC,0x3138,0x3139,0x3131,INVALC,0x3130, - /* Range 0x772F - 0x7735, array index: 0x11F7 */ - 0x374C,INVALC,0x374E,0x374F,0x3751,0x3750,0x3755, - /* Range 0x7744 - 0x774E, array index: 0x11FE */ - 0x3E40,0x3E42,0x3E3E,0x3E3F,INVALC,INVALC,0x3E43,0x3E45, - 0x3E46,0x3E41,0x3E44, - /* Range 0x7752 - 0x775A, array index: 0x1209 */ - 0x4541,INVALC,0x4546,0x453E,0x4542,INVALC,INVALC,0x4547, - 0x4543, - /* Range 0x776D - 0x776F, array index: 0x1212 */ - 0x4548,0x4C2E,0x4C30, - /* Range 0x777E - 0x7789, array index: 0x1215 */ - 0x4C31,INVALC,0x4C2F,0x4C2A,0x4C2D,0x4C32,INVALC,0x4C2C, - INVALC,INVALC,0x5247,0x5246, - /* Range 0x7797 - 0x77A3, array index: 0x1221 */ - 0x586B,INVALC,0x586A,0x5862,0x5866,0x5865,0x5863,INVALC, - INVALC,INVALC,0x5864,0x5867,0x5868, - /* Range 0x77B1 - 0x77B7, array index: 0x122E */ - 0x5D6C,0x5D68,INVALC,0x5D6B,0x5D66,0x5D6A,0x5D69, - /* Range 0x77C9 - 0x77D0, array index: 0x1235 */ - 0x6625,0x6626,INVALC,0x6943,0x6946,0x6944,0x6945,0x6B6E, - /* Range 0x77F0 - 0x77F2, array index: 0x123D */ - 0x5D6E,0x6628,0x6947, - /* Range 0x77F7 - 0x77FC, array index: 0x1240 */ - 0x2841,0x283C,0x283E,0x2840,0x283F,0x283D, - /* Range 0x780E - 0x7813, array index: 0x1246 */ - 0x2C52,0x2C51,0x2C50,0x2C4D,0x2C4E,0x2C55, - /* Range 0x7821 - 0x7823, array index: 0x124C */ - 0x3144,0x313E,0x313C, - /* Range 0x7826 - 0x7835, array index: 0x124F */ - 0x375C,INVALC,0x3141,0x3145,0x3147,0x3143,0x313D,INVALC, - 0x3142,0x3140,INVALC,0x3148,INVALC,0x3146,INVALC,0x313F, - /* Range 0x7848 - 0x784D, array index: 0x125F */ - 0x3756,0x3758,0x375A,INVALC,0x375B,0x3759, - /* Range 0x7864 - 0x7871, array index: 0x1265 */ - 0x3E4A,0x3E4B,INVALC,INVALC,0x3E53,0x3E52,0x3E4F,INVALC, - INVALC,0x3E4D,0x3E50,INVALC,0x3E51,0x3E4E, - /* Range 0x7883 - 0x7887, array index: 0x1273 */ - 0x4553,0x454E,0x4550,0x4551,0x454A, - /* Range 0x7894 - 0x789A, array index: 0x1278 */ - 0x454C,0x454F,0x4557,INVALC,INVALC,0x4555,0x454B, - /* Range 0x789E - 0x78A5, array index: 0x127F */ - 0x4C3A,INVALC,0x4C3C,0x4552,0x4C3E,INVALC,0x4C3F,0x4C3B, - /* Range 0x78A8 - 0x78AD, array index: 0x1287 */ - 0x4C37,INVALC,0x4C34,0x4C39,0x4C3D,0x4C36, - /* Range 0x78C8 - 0x78D1, array index: 0x128D */ - 0x524F,0x5252,INVALC,INVALC,0x524B,0x5248,0x524D,0x524A, - INVALC,0x524C, - /* Range 0x78DB - 0x78E5, array index: 0x1297 */ - 0x5872,INVALC,0x586C,0x5870,0x5876,0x5877,0x5873,0x5874, - 0x5871,INVALC,0x586E, - /* Range 0x78F9 - 0x78FF, array index: 0x12A2 */ - 0x5D77,INVALC,0x5D72,0x5D73,0x5D70,0x5D78,0x5D74, - /* Range 0x7910 - 0x7914, array index: 0x12A9 */ - 0x6247,0x6249,0x6248,0x6244,0x6245, - /* Range 0x791B - 0x791E, array index: 0x12AE */ - 0x662A,0x662C,0x6629,0x662E, - /* Range 0x7921 - 0x7929, array index: 0x12B2 */ - 0x662B,INVALC,0x6949,0x694C,0x6948,INVALC,0x694A,0x694B, - 0x694D, - /* Range 0x794A - 0x794C, array index: 0x12BB */ - 0x2C56,0x2C58,0x2C57, - /* Range 0x794F - 0x7954, array index: 0x12BE */ - 0x314B,INVALC,0x314F,0x314E,0x314D,0x3149, - /* Range 0x7967 - 0x796B, array index: 0x12C4 */ - 0x3760,INVALC,0x3761,0x3762,0x3764, - /* Range 0x7970 - 0x7974, array index: 0x12C9 */ - 0x3E59,INVALC,0x3E58,0x3E57,0x3E56, - /* Range 0x7990 - 0x79A4, array index: 0x12CE */ - 0x4C4A,INVALC,0x4C49,0x4C46,0x4C45,0x4C44,0x4C43,0x4C47, - 0x4C40,INVALC,0x5253,0x5258,0x5256,INVALC,INVALC,INVALC, - 0x5255,0x5254,0x5257,INVALC,0x5878, - /* Range 0x79AB - 0x79AD, array index: 0x12E3 */ - 0x5D7A,0x624B,0x624A, - /* Range 0x79B4 - 0x79B8, array index: 0x12E6 */ - 0x6D65,INVALC,0x7045,0x7044,0x2167, - /* Range 0x79CD - 0x79CF, array index: 0x12EB */ - 0x2C5C,0x2C5F,0x2C5D, - /* Range 0x79DC - 0x79E0, array index: 0x12EE */ - 0x3156,0x3158,0x3157,INVALC,0x3152, - /* Range 0x79EA - 0x79EE, array index: 0x12F3 */ - 0x3155,0x3150,0x3151,0x3154,0x3153, - /* Range 0x79F6 - 0x79FA, array index: 0x12F8 */ - 0x3769,0x376A,0x3768,INVALC,0x3767, - /* Range 0x7A02 - 0x7A04, array index: 0x12FD */ - 0x3E5A,0x3E5C,0x3E5E, - /* Range 0x7A10 - 0x7A1B, array index: 0x1300 */ - 0x4566,0x455D,0x4560,0x4564,INVALC,0x4562,INVALC,0x4561, - 0x455E,0x455F,INVALC,0x4565, - /* Range 0x7A58 - 0x7A5C, array index: 0x130C */ - 0x5E21,INVALC,0x5E23,0x5D7D,0x5D7C, - /* Range 0x7A6C - 0x7A71, array index: 0x1311 */ - 0x6950,0x6951,0x694F,INVALC,0x6D66,0x6D67, - /* Range 0x7A85 - 0x7A90, array index: 0x1317 */ - 0x315B,0x3159,0x315F,INVALC,0x315A,0x315E,0x315C,0x315D, - INVALC,INVALC,0x376B,0x376D, - /* Range 0x7AB1 - 0x7AB8, array index: 0x1323 */ - 0x5921,0x525B,0x525D,0x525C,0x587E,0x587C,0x5922,0x587D, - /* Range 0x7B04 - 0x7B13, array index: 0x132B */ - 0x3162,0x3164,INVALC,INVALC,0x3166,0x3169,0x3167,INVALC, - INVALC,INVALC,0x3168,0x3165,0x3161,INVALC,0x316A,0x3163, - /* Range 0x7B22 - 0x7B25, array index: 0x133B */ - 0x3773,0x3822,0x3774,0x3771, - /* Range 0x7B2D - 0x7B35, array index: 0x133F */ - 0x377B,INVALC,0x377C,0x3772,0x3779,0x377D,0x3775,0x3770, - 0x376E, - /* Range 0x7B44 - 0x7B4E, array index: 0x1348 */ - 0x3E64,0x3E6A,INVALC,0x3E63,0x3E65,INVALC,0x3E62,INVALC, - 0x3E66,INVALC,0x3E67, - /* Range 0x7B61 - 0x7B66, array index: 0x1353 */ - 0x4575,INVALC,0x4578,0x456C,0x4571,0x456B, - /* Range 0x7B70 - 0x7B78, array index: 0x1359 */ - 0x4574,0x4573,0x4570,0x4572,0x456E,INVALC,0x4577,INVALC, - 0x4576, - /* Range 0x7B8A - 0x7B91, array index: 0x1362 */ - 0x4C57,INVALC,0x4C5C,0x4C5B,0x4C5E,INVALC,0x4C59,0x4C58, - /* Range 0x7B98 - 0x7B9C, array index: 0x136A */ - 0x4C60,0x4C62,INVALC,0x4C5D,0x4C56, - /* Range 0x7BDA - 0x7BEB, array index: 0x136F */ - 0x5929,INVALC,0x592F,0x5926,0x5923,0x5932,INVALC,INVALC, - 0x592E,0x5924,INVALC,0x5928,INVALC,0x5925,0x592A,INVALC, - 0x592D,0x5930, - /* Range 0x7BF0 - 0x7BF4, array index: 0x1381 */ - 0x5E38,0x5E39,0x5E29,0x5E30,0x5E2E, - /* Range 0x7BFD - 0x7C10, array index: 0x1386 */ - 0x5E36,INVALC,0x5E2B,0x5E2A,0x5E34,0x5E31,0x5E33,INVALC, - 0x5E27,0x5E37,INVALC,INVALC,0x5E32,0x5E3B,0x5E2F,INVALC, - INVALC,0x5E2D,0x5E28,0x5E3A, - /* Range 0x7C1C - 0x7C2D, array index: 0x139A */ - 0x624D,0x6253,INVALC,0x6251,0x6250,INVALC,0x6256,INVALC, - INVALC,0x6257,0x6254,INVALC,0x6255,0x624E,INVALC,INVALC, - 0x6635,0x6252, - /* Range 0x7C45 - 0x7C4A, array index: 0x13AC */ - 0x6957,INVALC,0x6956,0x6954,0x6953,0x6955, - /* Range 0x7C57 - 0x7C5C, array index: 0x13B2 */ - 0x6D68,INVALC,0x6D6A,0x6D6C,0x6D6B,0x6D69, - /* Range 0x7C66 - 0x7C6B, array index: 0x13B8 */ - 0x6F3C,0x6F3B,INVALC,0x712B,0x7046,0x712C, - /* Range 0x7C78 - 0x7C7A, array index: 0x13BE */ - 0x2C66,0x2C67,0x2C65, - /* Range 0x7C7F - 0x7C85, array index: 0x13C1 */ - 0x2C68,0x2C69,0x2C6A,INVALC,INVALC,0x316B,0x3171, - /* Range 0x7CA1 - 0x7CA3, array index: 0x13C8 */ - 0x3E6E,0x3E6B,0x3826, - /* Range 0x7CBA - 0x7CBC, array index: 0x13CB */ - 0x4C68,0x4C65,0x4C67, - /* Range 0x7CD0 - 0x7CD4, array index: 0x13CE */ - 0x5936,0x5937,0x5933,INVALC,0x5934, - /* Range 0x7D0E - 0x7D13, array index: 0x13D3 */ - 0x3175,0x317B,INVALC,0x3174,0x317A,0x3178, - /* Range 0x7D1D - 0x7D1F, array index: 0x13D9 */ - 0x3173,0x3172,0x3179, - /* Range 0x7D3A - 0x7D41, array index: 0x13DC */ - 0x382B,0x3834,INVALC,0x3828,0x3831,0x3832,INVALC,0x382F, - /* Range 0x7D4E - 0x7D58, array index: 0x13E4 */ - 0x3F21,0x3E76,INVALC,0x3E7D,0x3E7A,0x3E72,0x3E7B,INVALC, - 0x3E73,INVALC,0x3E6F, - /* Range 0x7D67 - 0x7D6F, array index: 0x13EF */ - 0x3E74,INVALC,0x3E7C,0x3E75,0x3E79,INVALC,0x3E77,INVALC, - 0x3E70, - /* Range 0x7D7A - 0x7D8E, array index: 0x13F8 */ - 0x4624,0x4626,0x4628,0x462C,INVALC,0x4622,0x457E,INVALC, - INVALC,0x4627,0x462B,0x4623,0x457D,INVALC,0x457C,INVALC, - INVALC,INVALC,0x4629,0x4621,0x4625, - /* Range 0x7DA6 - 0x7DAA, array index: 0x140D */ - 0x4C7C,0x4C69,INVALC,0x4C7E,0x4C6D, - /* Range 0x7DC0 - 0x7DC6, array index: 0x1412 */ - 0x4C6F,0x4C6E,0x4C6B,INVALC,0x4C73,0x4C70,0x4C74, - /* Range 0x7E0B - 0x7E17, array index: 0x1419 */ - 0x5944,0x593B,0x5947,0x593F,0x5945,INVALC,INVALC,0x5938, - 0x593E,0x5948,0x5941,0x5946,0x593A, - /* Range 0x7E1F - 0x7E25, array index: 0x1426 */ - 0x593C,0x593D,0x5939,0x5943,INVALC,0x594A,0x5949, - /* Range 0x7E38 - 0x7E3C, array index: 0x142D */ - 0x5E42,INVALC,0x5E4D,0x5E4A,0x5E3E, - /* Range 0x7E56 - 0x7E58, array index: 0x1432 */ - 0x625B,0x6262,0x625D, - /* Range 0x7E5F - 0x7E63, array index: 0x1435 */ - 0x625F,0x6261,INVALC,0x625E,0x625C, - /* Range 0x7E72 - 0x7E7B, array index: 0x143A */ - 0x6640,INVALC,0x6641,0x663A,0x6639,0x663D,0x663B,INVALC, - 0x663F,0x6959, - /* Range 0x7E86 - 0x7E8D, array index: 0x1444 */ - 0x6B79,0x6B76,0x6B77,INVALC,0x6B75,0x6B78,INVALC,0x6B7A, - /* Range 0x7E95 - 0x7E9B, array index: 0x144C */ - 0x6F3D,INVALC,0x7047,0x712F,0x7131,0x712E,0x7130, - /* Range 0x7F5B - 0x7F6D, array index: 0x1453 */ - 0x3224,0x317D,0x3223,0x3221,INVALC,0x3222,0x317E,INVALC, - 0x3836,INVALC,0x3F24,0x3F25,0x4630,0x4631,INVALC,INVALC, - 0x462F,0x4632,0x462E, - /* Range 0x7F7A - 0x7F7F, array index: 0x1466 */ - 0x594E,0x594C,0x594D,0x5E51,0x5E50,0x5E4F, - /* Range 0x7F9B - 0x7FA7, array index: 0x146C */ - 0x383A,0x3838,0x3839,INVALC,INVALC,0x3F27,0x3F28,0x3F26, - INVALC,INVALC,0x4634,0x4633,0x4635, - /* Range 0x7FC7 - 0x7FD1, array index: 0x1479 */ - 0x3840,INVALC,0x3842,0x383B,0x383C,INVALC,0x383D,INVALC, - 0x3841,0x383E,0x383F, - /* Range 0x7FE2 - 0x7FEF, array index: 0x1484 */ - 0x4D24,0x4D25,INVALC,0x4D26,0x5323,INVALC,0x5324,INVALC, - 0x5321,0x527E,0x5322,0x527D,INVALC,0x5950, - /* Range 0x7FF4 - 0x7FF8, array index: 0x1492 */ - 0x5E52,0x6134,INVALC,0x6266,0x6267, - /* Range 0x7FFD - 0x7FFF, array index: 0x1497 */ - 0x6648,0x6649,0x695E, - /* Range 0x804F - 0x8051, array index: 0x149A */ - 0x3F2B,0x3F2C,0x3F2A, - /* Range 0x80C5 - 0x80CA, array index: 0x149D */ - 0x2C7E,INVALC,0x2C78,0x2C7B,0x2D26,0x2D24, - /* Range 0x80CD - 0x80D9, array index: 0x14A3 */ - 0x2D2A,INVALC,0x2D27,0x2C7D,0x2C7A,INVALC,INVALC,0x3F2E, - 0x2D25,INVALC,0x2D28,0x2C77,0x2D22, - /* Range 0x80F9 - 0x80FB, array index: 0x14B0 */ - 0x322F,0x322D,0x3232, - /* Range 0x811B - 0x8122, array index: 0x14B3 */ - 0x384C,INVALC,0x3854,0x3850,0x384E,INVALC,0x3851,0x3855, - /* Range 0x815E - 0x8164, array index: 0x14BB */ - 0x4642,INVALC,0x463A,0x4647,0x463F,INVALC,0x4639, - /* Range 0x8189 - 0x818D, array index: 0x14C2 */ - 0x4D2B,INVALC,0x4D31,0x4D30,0x4D2F, - /* Range 0x81AE - 0x81BC, array index: 0x14C7 */ - 0x5956,INVALC,0x595A,0x5954,0x595D,INVALC,0x595C,0x5958, - INVALC,0x595E,INVALC,0x5957,INVALC,0x5E55,0x5E5B, - /* Range 0x81D0 - 0x81D2, array index: 0x14D6 */ - 0x626B,0x6269,0x626A, - /* Range 0x81DD - 0x81E1, array index: 0x14D9 */ - 0x6B7E,0x6D72,INVALC,0x7132,0x7133, - /* Range 0x81F7 - 0x81F9, array index: 0x14DE */ - 0x3F39,0x3F3A,0x3F3B, - /* Range 0x8232 - 0x8234, array index: 0x14E1 */ - 0x385B,0x3858,0x385A, - /* Range 0x823C - 0x8245, array index: 0x14E4 */ - 0x3F3D,0x3F3E,INVALC,0x3F3F,0x464B,INVALC,0x464C,INVALC, - 0x464A,0x464D, - /* Range 0x824E - 0x8264, array index: 0x14EE */ - 0x5333,0x532F,0x5332,0x5334,0x5331,0x5330,INVALC,0x5961, - 0x5962,0x5963,INVALC,INVALC,0x5E5E,0x5E5D,0x5E5F,INVALC, - 0x626D,0x626C,INVALC,0x664F,INVALC,0x6650,0x664E, - /* Range 0x8268 - 0x826D, array index: 0x1505 */ - 0x6962,0x6963,INVALC,0x6D73,0x6F3E,0x7049, - /* Range 0x827C - 0x8285, array index: 0x150B */ - 0x226B,0x226D,INVALC,0x226E,0x226C,INVALC,INVALC,0x2522, - 0x2523,0x247B, - /* Range 0x828E - 0x8294, array index: 0x1515 */ - 0x247C,0x247A,0x2479,0x247D,INVALC,0x247E,0x2D2D, - /* Range 0x829E - 0x82AB, array index: 0x151C */ - 0x285C,INVALC,0x2852,0x2860,0x2866,INVALC,0x2863,INVALC, - INVALC,0x2859,0x285F,0x2861,INVALC,0x2854, - /* Range 0x82B4 - 0x82B6, array index: 0x152A */ - 0x285E,0x2858,0x2865, - /* Range 0x82E8 - 0x82ED, array index: 0x152D */ - 0x2D32,INVALC,0x2D41,0x2D36,0x2D39,0x2D46, - /* Range 0x82F0 - 0x82FB, array index: 0x1533 */ - 0x2D40,INVALC,0x2D3B,0x2D45,0x2D38,0x2D3C,0x2D3F,INVALC, - INVALC,0x2D30,0x2D44,0x2D3E, - /* Range 0x8322 - 0x832F, array index: 0x153F */ - 0x3242,INVALC,0x324B,0x323C,0x3240,0x3257,INVALC,0x324F, - 0x3246,INVALC,0x3255,0x3238,INVALC,0x324E, - /* Range 0x833A - 0x833C, array index: 0x154D */ - 0x2D35,0x3F41,0x3248, - /* Range 0x8341 - 0x834E, array index: 0x1550 */ - 0x323F,0x3243,INVALC,0x3239,0x3251,INVALC,0x3250,0x3258, - INVALC,INVALC,0x3256,0x3252,0x3249,0x3244, - /* Range 0x8373 - 0x8376, array index: 0x155E */ - 0x3862,0x3864,0x3869,0x387D, - /* Range 0x837D - 0x8383, array index: 0x1562 */ - 0x386C,0x3873,0x3879,INVALC,0x3866,INVALC,0x386D, - /* Range 0x8387 - 0x8390, array index: 0x1569 */ - 0x387B,0x3876,INVALC,INVALC,0x3872,0x386E,0x3860,INVALC, - 0x3865,0x385D, - /* Range 0x8397 - 0x839D, array index: 0x1573 */ - 0x3877,INVALC,0x3868,0x3F6A,0x3870,INVALC,0x386F, - /* Range 0x83A3 - 0x83B0, array index: 0x157A */ - 0x385E,0x3863,0x3874,0x387A,INVALC,0x385F,0x386B,0x3871, - INVALC,INVALC,INVALC,0x387C,0x3875,0x3878, - /* Range 0x83BF - 0x83EE, array index: 0x1588 */ - 0x3F51,0x3F45,INVALC,0x3F62,0x3F6B,0x3F6E,INVALC,0x3F4D, - 0x3F66,0x3F4E,0x3F5C,INVALC,0x3F58,INVALC,INVALC,0x3F59, - 0x3F42,INVALC,0x3F67,INVALC,INVALC,INVALC,0x3F64,0x3F5A, - 0x3F70,0x3F55,0x466D,INVALC,0x3F73,INVALC,0x3F53,0x3F5F, - INVALC,INVALC,0x3F57,0x3F71,0x3F50,0x3F49,0x3F54,INVALC, - 0x3F48,0x3F46,INVALC,0x3F68,0x3F4F,0x3F6C,INVALC,0x3F6D, - /* Range 0x83F5 - 0x8401, array index: 0x15B8 */ - 0x3F5B,0x3F4B,INVALC,INVALC,0x3F43,0x3F65,0x3F6F,0x3F4A, - INVALC,0x3F74,0x3F56,INVALC,0x3F52, - /* Range 0x840F - 0x8413, array index: 0x15C5 */ - 0x3F5E,0x3F4C,0x3F60,0x3F47,0x3F69, - /* Range 0x842F - 0x843B, array index: 0x15CA */ - 0x466F,0x465A,INVALC,0x466A,0x467E,0x4666,INVALC,0x467D, - 0x4664,INVALC,0x4674,0x4665,0x467B, - /* Range 0x843F - 0x8460, array index: 0x15D7 */ - 0x464F,0x4657,INVALC,0x4670,0x4668,0x4723,0x466B,INVALC, - 0x467C,INVALC,INVALC,INVALC,0x466E,0x4676,0x465B,0x4675, - INVALC,0x4728,0x4656,0x4677,INVALC,0x4726,INVALC,0x4650, - INVALC,INVALC,0x465E,0x465D,INVALC,INVALC,0x4661,0x4663, - 0x4672,0x4725, - /* Range 0x846E - 0x847E, array index: 0x15F9 */ - 0x4727,0x4678,0x4673,INVALC,INVALC,0x4660,0x465F,INVALC, - 0x4651,INVALC,0x4669,0x4652,0x4667,INVALC,INVALC,0x465C, - 0x4722, - /* Range 0x848D - 0x8491, array index: 0x160A */ - 0x4654,0x467A,0x4653,INVALC,0x4D5A, - /* Range 0x8497 - 0x84B1, array index: 0x160F */ - 0x4D33,0x4D51,INVALC,0x4D42,0x4D4C,INVALC,0x4D45,INVALC, - 0x4D36,0x4D54,0x4D35,0x4D48,INVALC,0x4D34,INVALC,INVALC, - 0x4D46,0x4D4F,0x4D4D,0x4D41,0x4D3C,0x4D3A,INVALC,0x4D3B, - 0x4D4E,0x4D59,0x4D43, - /* Range 0x84B9 - 0x84BB, array index: 0x162A */ - 0x4D3D,0x4D37,0x4D47, - /* Range 0x84CC - 0x84D7, array index: 0x162D */ - 0x4D4B,0x4D40,0x4D38,0x4D53,0x4D44,INVALC,0x4D57,INVALC, - 0x4D56,INVALC,0x4D50,0x4D55, - /* Range 0x84E7 - 0x8502, array index: 0x1639 */ - 0x535C,0x535D,0x5350,0x534F,0x534B,INVALC,INVALC,INVALC, - 0x535F,0x535E,0x464E,0x5348,0x534C,0x5346,INVALC,0x5359, - 0x534A,INVALC,0x5360,0x5343,0x5341,0x534D,0x5357,0x5352, - INVALC,0x5338,INVALC,0x5356, - /* Range 0x8507 - 0x850F, array index: 0x1655 */ - 0x4662,0x5344,0x533B,0x533E,0x5364,0x5345,0x533C,0x533A, - 0x5337, - /* Range 0x8515 - 0x8520, array index: 0x165E */ - 0x5349,0x5351,INVALC,0x5361,0x5365,INVALC,INVALC,0x5340, - 0x5354,0x5358,0x533D,0x5362, - /* Range 0x8524 - 0x8531, array index: 0x166A */ - 0x5335,INVALC,0x535B,0x533F,0x5353,0x5339,0x5347,0x5342, - INVALC,INVALC,0x5355,0x5366,0x5363,0x535A, - /* Range 0x8540 - 0x8547, array index: 0x1678 */ - 0x596B,0x596E,INVALC,INVALC,0x5970,0x5965,0x596C,0x5972, - /* Range 0x8551 - 0x8558, array index: 0x1680 */ - 0x5971,INVALC,0x5968,0x5A22,0x597A,0x5964,0x5E72,0x596A, - /* Range 0x8560 - 0x8567, array index: 0x1688 */ - 0x597C,0x5969,0x596F,0x5973,0x596D,0x5A23,0x597E,0x597B, - /* Range 0x8575 - 0x8590, array index: 0x1690 */ - 0x5979,0x5F21,0x5E6C,0x5E71,0x5E7E,0x5E70,0x5E68,0x5E6D, - INVALC,INVALC,INVALC,0x5E61,0x5E79,0x5E7B,0x5E60,INVALC, - 0x5E7D,0x5E75,INVALC,0x5E7C,0x5E6E,INVALC,0x5E66,0x597D, - 0x5E76,0x5E73,0x5E62,0x5F23, - /* Range 0x8595 - 0x85A4, array index: 0x16AC */ - 0x5E64,0x5E74,INVALC,0x5F22,0x5E77,0x5E6A,INVALC,INVALC, - 0x5E78,0x5E6B,0x5F24,0x5E65,0x5E6F,0x5E7A,0x5E67,0x5E69, - /* Range 0x85B1 - 0x85B8, array index: 0x16BC */ - 0x627D,INVALC,0x6273,0x626E,0x6274,0x627E,0x6324,0x6323, - /* Range 0x85BD - 0x85C8, array index: 0x16C4 */ - 0x6275,0x6325,0x6278,0x6270,INVALC,0x6272,0x6271,0x6277, - 0x627C,0x626F,0x6276,0x627B, - /* Range 0x85D7 - 0x85E3, array index: 0x16D0 */ - 0x6658,0x665C,0x6654,0x6657,INVALC,0x665F,INVALC,0x6664, - 0x665D,INVALC,0x6655,0x6665,0x665E, - /* Range 0x85EB - 0x85F2, array index: 0x16DD */ - 0x6651,0x6659,0x6653,INVALC,0x6663,0x6661,0x6652,0x665A, - /* Range 0x85FD - 0x8605, array index: 0x16E5 */ - 0x696F,0x6967,0x6965,0x6969,0x6966,INVALC,INVALC,0x696B, - 0x696D, - /* Range 0x8618 - 0x8640, array index: 0x16EE */ - 0x6C21,0x6C27,INVALC,0x6968,0x6C26,INVALC,0x6C2D,0x6C24, - 0x6C2B,0x6C2A,0x6964,0x6C25,0x6322,0x6C2E,0x6C23,0x6C28, - INVALC,0x6C2C,0x6C22,INVALC,0x6D77,INVALC,0x6C29,INVALC, - INVALC,0x6F43,0x6D78,0x6D76,0x6D74,0x6D75,0x6D79,INVALC, - INVALC,0x6F41,0x6F3F,0x6F44,0x6F42,INVALC,0x6F45,INVALC, - 0x6F40, - /* Range 0x8646 - 0x864D, array index: 0x1717 */ - 0x7134,0x7135,0x7136,INVALC,INVALC,0x7235,0x722D,0x226F, - /* Range 0x8661 - 0x8674, array index: 0x171F */ - 0x4D5B,0x5367,0x5A25,0x5A27,0x5A26,INVALC,INVALC,0x5F25, - 0x6326,0x7173,INVALC,INVALC,0x2869,0x286A,0x2868,0x2867, - INVALC,INVALC,0x2D4A,0x2D48, - /* Range 0x8685 - 0x8687, array index: 0x1733 */ - 0x3266,0x3263,0x3261, - /* Range 0x868D - 0x86A2, array index: 0x1736 */ - 0x325E,0x326D,INVALC,0x326F,0x325F,INVALC,INVALC,0x3270, - 0x326B,0x325D,0x3262,0x326C,0x3268,0x3265,INVALC,INVALC, - 0x326E,0x3260,INVALC,INVALC,0x3269,0x325B, - /* Range 0x86B3 - 0x86C5, array index: 0x174C */ - 0x392B,0x392E,INVALC,INVALC,0x3923,0x392C,0x392A,0x3927, - 0x392F,0x3930,0x3932,0x3933,0x3922,INVALC,0x3925,0x3924, - 0x3931,INVALC,0x3926, - /* Range 0x86D6 - 0x86DD, array index: 0x175F */ - 0x472E,0x4023,0x3F75,INVALC,0x3F7A,INVALC,0x3F7E,0x3F7C, - /* Range 0x86E6 - 0x86EC, array index: 0x1767 */ - 0x3F77,INVALC,0x4024,0x4022,0x3F7B,0x3F7D,0x4021, - /* Range 0x86F5 - 0x86FA, array index: 0x176E */ - 0x472F,0x4735,0x472B,0x4731,INVALC,0x472D, - /* Range 0x8709 - 0x8712, array index: 0x1774 */ - 0x4733,INVALC,0x4729,0x472C,0x4736,0x4732,INVALC,INVALC, - 0x4D7B,0x4D70, - /* Range 0x8719 - 0x871B, array index: 0x177E */ - 0x4D64,0x4D79,0x4D65, - /* Range 0x8720 - 0x8735, array index: 0x1781 */ - 0x4D6B,0x4D63,INVALC,0x4D5D,0x4D78,INVALC,0x4D75,0x4D76, - 0x4D5E,INVALC,0x4D6D,INVALC,0x4D67,0x4D6E,0x4D61,INVALC, - 0x4D7A,0x4D72,0x4D6C,0x4D5C,INVALC,0x4D73, - /* Range 0x873E - 0x8743, array index: 0x1797 */ - 0x4D69,INVALC,0x4D60,0x4D68,0x4D74,0x4D66, - /* Range 0x874D - 0x876F, array index: 0x179D */ - 0x4730,0x5379,0x5424,0x5378,0x5374,0x5371,INVALC,0x536F, - INVALC,0x5368,INVALC,0x536E,INVALC,0x5373,0x5370,0x5422, - 0x537B,0x5375,0x537A,INVALC,0x5372,0x5427,0x5369,0x536A, - 0x5423,INVALC,0x5428,INVALC,0x5429,0x5377,0x4D5F,0x537D, - 0x5376,0x5421,0x537C, - /* Range 0x8777 - 0x877B, array index: 0x17C0 */ - 0x536B,INVALC,0x5A32,0x537E,0x5425, - /* Range 0x8784 - 0x8789, array index: 0x17C5 */ - 0x5A39,0x5A35,INVALC,0x5A33,0x5A2E,0x5A3D, - /* Range 0x878F - 0x879D, array index: 0x17CB */ - 0x5A2A,0x5A36,0x5A37,0x5A2D,0x5A2C,0x5A3A,INVALC,0x5A30, - 0x5A2B,0x5A31,INVALC,0x5A3C,0x5A29,0x5A3B,0x5A38, - /* Range 0x87AA - 0x87C5, array index: 0x17DA */ - 0x5F27,INVALC,0x5F2B,0x5F28,0x5F2F,0x5F35,0x5F2A,INVALC, - 0x5F3E,INVALC,0x5F38,0x5F2D,0x5F39,0x5F34,0x5F3B,0x5F2C, - INVALC,INVALC,0x5F2E,0x5F3C,0x5F26,0x5F3A,INVALC,INVALC, - 0x5F32,0x5F31,0x5F36,0x5F29, - /* Range 0x87D3 - 0x87ED, array index: 0x17F6 */ - 0x6333,0x6331,INVALC,INVALC,0x6337,0x6335,0x6338,INVALC, - 0x632A,0x6332,0x633C,0x5F3D,0x632E,INVALC,0x536C,0x6329, - 0x6336,0x6330,0x632D,0x6328,0x6327,0x633B,INVALC,0x632C, - 0x632B,INVALC,0x6334, - /* Range 0x87F3 - 0x87F7, array index: 0x1811 */ - 0x632F,0x633A,INVALC,0x6669,0x666A, - /* Range 0x87FF - 0x8803, array index: 0x1816 */ - 0x6671,0x6666,0x6339,0x6673,0x6668, - /* Range 0x8806 - 0x880C, array index: 0x181B */ - 0x666E,INVALC,0x6670,0x666B,0x6672,0x666D,0x666C, - /* Range 0x8819 - 0x881D, array index: 0x1822 */ - 0x6970,INVALC,0x6C31,0x6C34,0x6C30, - /* Range 0x8824 - 0x8844, array index: 0x1827 */ - 0x6C33,0x6D7E,0x6D7C,INVALC,0x6D7B,0x6C2F,0x6D7D,0x6C35, - 0x6D7A,INVALC,0x6F48,0x6F26,0x6F46,INVALC,0x6F47,0x6F49, - INVALC,0x704D,INVALC,0x704C,0x704B,INVALC,INVALC,INVALC, - 0x715D,0x7175,0x7174,0x7176,INVALC,0x2D4B,INVALC,0x3271, - 0x3272, - /* Range 0x8871 - 0x8876, array index: 0x1848 */ - 0x3278,0x3276,INVALC,0x327D,0x3274,0x3275, - /* Range 0x887C - 0x8880, array index: 0x184E */ - 0x327E,INVALC,0x327C,0x3279,0x3277, - /* Range 0x8895 - 0x889B, array index: 0x1853 */ - 0x3936,INVALC,0x3942,0x393E,0x3940,0x393A,0x3941, - /* Range 0x88B6 - 0x88C0, array index: 0x185A */ - 0x402F,0x4031,0x402C,0x402B,0x4029,INVALC,0x4030,0x4032, - 0x402E,INVALC,0x402D, - /* Range 0x88C9 - 0x88D0, array index: 0x1865 */ - 0x4035,INVALC,0x4739,0x473F,0x473A,0x473B,INVALC,0x4740, - /* Range 0x88EE - 0x88F2, array index: 0x186D */ - 0x4E24,INVALC,0x4E28,0x4D7E,0x4E21, - /* Range 0x88F6 - 0x88FE, array index: 0x1872 */ - 0x4E26,0x4D7C,INVALC,INVALC,0x4E22,0x4E27,0x4E25,INVALC, - 0x4E23, - /* Range 0x8914 - 0x8919, array index: 0x187B */ - 0x542D,INVALC,0x5433,0x542F,0x5430,0x5431, - /* Range 0x892C - 0x8937, array index: 0x1881 */ - 0x5A49,0x5A41,0x5A42,0x5A48,0x5A40,0x5A44,INVALC,0x5F40, - INVALC,0x5F3F,INVALC,0x5F45, - /* Range 0x894B - 0x8963, array index: 0x188D */ - 0x633E,0x6340,INVALC,INVALC,0x633F,0x6342,0x6343,0x5F44, - 0x633D,INVALC,INVALC,INVALC,0x6677,0x667A,0x667C,0x6675, - 0x6676,0x6679,0x667B,INVALC,INVALC,INVALC,0x6678,0x6674, - 0x6976, - /* Range 0x8979 - 0x897E, array index: 0x18A6 */ - 0x7137,0x7138,0x713A,0x7139,INVALC,0x2270, - /* Range 0x899B - 0x89A4, array index: 0x18AC */ - 0x4742,INVALC,0x4E2B,0x4E2E,0x4E2D,INVALC,0x4E2C,0x5437, - 0x5439,0x5438, - /* Range 0x89AD - 0x89AF, array index: 0x18B6 */ - 0x5F47,0x5F49,0x5F48, - /* Range 0x89D5 - 0x89FF, array index: 0x18B9 */ - 0x394B,0x3949,INVALC,INVALC,0x394A,0x403A,0x403B,0x4749, - 0x4039,INVALC,0x4743,0x4747,0x4746,0x4748,INVALC,0x4745, - 0x4744,0x474A,INVALC,0x4E31,0x4E2F,INVALC,0x4E30,0x543C, - 0x543A,INVALC,INVALC,0x543B,0x5A4B,0x5F4A,0x5F4B,INVALC, - INVALC,0x6722,0x6979,INVALC,INVALC,0x6C3B,0x6E24,INVALC, - INVALC,0x6F4D,0x713B, - /* Range 0x8A4A - 0x8A52, array index: 0x18E4 */ - 0x4048,INVALC,0x4049,0x403D,0x403C,0x404A,INVALC,0x4047, - 0x4045, - /* Range 0x8A57 - 0x8A59, array index: 0x18ED */ - 0x4041,0x4042,0x403F, - /* Range 0x8A74 - 0x8A77, array index: 0x18F0 */ - 0x4756,0x4753,0x474B,0x4750, - /* Range 0x8A7F - 0x8A86, array index: 0x18F4 */ - 0x474D,INVALC,0x4755,0x4751,0x4754,0x4752,INVALC,0x474C, - /* Range 0x8ABA - 0x8AC0, array index: 0x18FC */ - 0x544B,0x5444,INVALC,0x544C,0x5446,INVALC,0x5447, - /* Range 0x8AD1 - 0x8AE4, array index: 0x1903 */ - 0x5441,INVALC,0x5440,0x5442,0x5443,INVALC,0x5445,0x5449, - 0x544D,INVALC,INVALC,INVALC,0x5A51,0x5A57,0x5A54,0x5A4C, - 0x5A58,0x5A4D,INVALC,0x5A53, - /* Range 0x8B05 - 0x8B08, array index: 0x1917 */ - 0x5F50,0x5F59,0x5F56,0x5F58, - /* Range 0x8B0F - 0x8B27, array index: 0x191B */ - 0x5F53,INVALC,0x5F4F,0x5F54,0x5F5B,0x5A52,0x5F55,0x5F4E, - INVALC,0x5F4D,INVALC,0x5F5C,INVALC,0x5F5A,INVALC,0x5F4C, - INVALC,INVALC,INVALC,0x5F52,0x6347,0x6355,0x6350,0x6352, - 0x6346, - /* Range 0x8B2E - 0x8B42, array index: 0x1934 */ - 0x6354,0x634C,0x6349,0x634F,INVALC,0x6348,INVALC,0x634A, - 0x6353,0x6351,INVALC,INVALC,0x6358,0x6356,0x634D,0x6357, - 0x634E,INVALC,0x6726,INVALC,0x672D, - /* Range 0x8B47 - 0x8B4B, array index: 0x1949 */ - 0x634B,0x6724,INVALC,0x6725,0x672A, - /* Range 0x8B50 - 0x8B57, array index: 0x194E */ - 0x6723,0x672C,0x672E,0x6727,0x6729,0x672B,0x6728,0x672F, - /* Range 0x8B78 - 0x8B7F, array index: 0x1956 */ - 0x6C3D,0x6C3C,0x6C3F,0x6C40,INVALC,INVALC,0x6E25,0x6E2A, - /* Range 0x8B82 - 0x8B8E, array index: 0x195E */ - 0x6E27,INVALC,0x6E26,0x6E29,0x6E28,INVALC,0x6F51,INVALC, - INVALC,0x6F50,0x6F4E,INVALC,0x6F4F, - /* Range 0x8C39 - 0x8C3E, array index: 0x196B */ - 0x3950,INVALC,0x3951,0x4758,0x4E38,0x544E, - /* Range 0x8C64 - 0x8C69, array index: 0x1971 */ - 0x475C,0x475B,0x475D,INVALC,0x4E39,0x4E3A, - /* Range 0x8C6F - 0x8C78, array index: 0x1977 */ - 0x5F61,0x5F5E,0x5F60,0x5F5F,INVALC,INVALC,0x635A,0x6732, - 0x6731,0x2524, - /* Range 0x8C80 - 0x8C86, array index: 0x1981 */ - 0x404D,0x404C,INVALC,INVALC,0x475F,0x4760,0x475E, - /* Range 0x8C8F - 0x8C9C, array index: 0x1988 */ - 0x5450,0x5A5F,0x5A5D,0x5A5E,INVALC,0x5F63,0x5F62,INVALC, - 0x635D,0x635C,0x635B,0x6733,INVALC,0x7178, - /* Range 0x8CA3 - 0x8CA5, array index: 0x1996 */ - 0x3326,0x3325,0x3955, - /* Range 0x8D8C - 0x8D96, array index: 0x1999 */ - 0x4765,0x4768,0x4766,0x4767,0x476B,0x4764,0x476C,0x4769, - 0x476A,INVALC,0x4E3E, - /* Range 0x8DAA - 0x8DAF, array index: 0x19A4 */ - 0x6738,0x673A,0x6737,0x6739,0x6A24,0x6C43, - /* Range 0x8DB5 - 0x8DB9, array index: 0x19AA */ - 0x3329,0x332B,0x332A,INVALC,0x395B, - /* Range 0x8DD3 - 0x8DD9, array index: 0x19AF */ - 0x4057,INVALC,0x405D,0x405A,0x4060,0x4056,0x405E, - /* Range 0x8DEE - 0x8DF4, array index: 0x19B6 */ - 0x4771,INVALC,0x476D,0x4770,0x4777,INVALC,0x4779, - /* Range 0x8DFD - 0x8E0A, array index: 0x19BD */ - 0x4E43,0x4E49,0x4E41,0x4E4A,INVALC,0x4E40,0x4E45,0x4E4B, - 0x4E48,0x4E47,0x4E46,INVALC,0x4E3F,0x4E44, - /* Range 0x8E11 - 0x8E1C, array index: 0x19CB */ - 0x5464,0x5469,0x546B,0x5468,0x5461,0x5463,0x546D,0x546A, - 0x5465,0x546E,0x5462,0x546C, - /* Range 0x8E23 - 0x8E27, array index: 0x19D7 */ - 0x545D,0x545F,0x545E,0x5466,0x5467, - /* Range 0x8E3C - 0x8E41, array index: 0x19DC */ - 0x5A6F,0x5A70,0x5A6A,0x5A73,0x5A6C,0x5A71, - /* Range 0x8E4C - 0x8E62, array index: 0x19E2 */ - 0x5F6A,0x5F67,0x5F66,INVALC,0x5F69,INVALC,INVALC,0x5F68, - 0x636F,INVALC,0x6366,0x6365,INVALC,INVALC,0x636B,0x636A, - 0x6362,0x636D,0x6367,INVALC,0x6364,0x636C,0x6363, - /* Range 0x8E92 - 0x8EA9, array index: 0x19F9 */ - 0x6E2F,INVALC,0x6E2D,0x6E2C,0x6E31,0x6E32,0x6F54,INVALC, - 0x6E2E,INVALC,INVALC,0x7054,0x7051,0x7052,0x7053,INVALC, - INVALC,0x7140,0x713F,0x713E,0x715F,INVALC,0x722E,0x7179, - /* Range 0x8EDC - 0x8EFA, array index: 0x1A11 */ - 0x3961,0x3960,0x395F,INVALC,0x3963,0x3964,INVALC,INVALC, - INVALC,0x4068,0x4066,0x406A,0x406B,0x4071,INVALC,0x406D, - 0x406F,INVALC,0x4067,0x4062,INVALC,0x406E,INVALC,INVALC, - 0x4070,0x4069,0x406C,0x4063,INVALC,0x4065,0x4064, - /* Range 0x8EFF - 0x8F08, array index: 0x1A30 */ - 0x477B,0x477D,0x477C,0x4823,INVALC,INVALC,0x477E,0x477A, - 0x4821,0x4822, - /* Range 0x8F0D - 0x8F11, array index: 0x1A3A */ - 0x4E4F,0x4E4E,INVALC,0x4E4C,0x4E4D, - /* Range 0x8F16 - 0x8F1A, array index: 0x1A3F */ - 0x5475,0x5476,0x5471,INVALC,0x5472, - /* Range 0x8F32 - 0x8F39, array index: 0x1A44 */ - 0x5A78,INVALC,0x5A7B,0x5A77,0x5A75,0x5A7A,INVALC,0x5A79, - /* Range 0x8F46 - 0x8F48, array index: 0x1A4C */ - 0x6370,0x6371,0x6372, - /* Range 0x8F4F - 0x8F64, array index: 0x1A4F */ - 0x6744,0x6745,0x6743,0x6742,0x6746,INVALC,0x6A2B,0x6A29, - 0x6A2A,0x6A2C,0x6A28,0x6A2D,0x6C47,INVALC,0x6C48,0x6C46, - INVALC,0x6E33,INVALC,0x6E34,0x6F56,0x6F55, - /* Range 0x8FD2 - 0x8FD7, array index: 0x1A65 */ - 0x286C,0x286E,INVALC,0x2871,0x2870,0x2872, - /* Range 0x8FFB - 0x8FFF, array index: 0x1A6B */ - 0x3332,0x3334,INVALC,0x332E,0x3331, - /* Range 0x9097 - 0x90A1, array index: 0x1A70 */ - 0x2272,0x2273,0x2271,INVALC,0x2274,INVALC,INVALC,0x252A, - 0x2527,0x252C,0x2528, - /* Range 0x90AF - 0x90B4, array index: 0x1A7B */ - 0x2875,0x2877,INVALC,0x2873,0x2876,0x2874, - /* Range 0x90BD - 0x90BF, array index: 0x1A81 */ - 0x2D59,0x2D5D,0x2D5A, - /* Range 0x90D4 - 0x90F4, array index: 0x1A84 */ - 0x3971,0x2D5B,0x3336,0x333F,0x333D,0x3338,0x3339,0x333E, - 0x3340,INVALC,INVALC,0x333B,0x3337,INVALC,INVALC,0x333A, - 0x3341,0x333C,INVALC,INVALC,INVALC,0x3974,0x396C,0x3972, - 0x3973,INVALC,INVALC,0x396B,0x396D,0x2D58,0x396F,0x3970, - 0x396E, - /* Range 0x90F9 - 0x9108, array index: 0x1AA5 */ - 0x407B,0x5B22,0x407C,0x4079,INVALC,INVALC,0x4078,0x407E, - 0x407D,INVALC,0x4123,0x4077,0x4122,0x4075,0x4121,0x407A, - /* Range 0x910B - 0x9111, array index: 0x1AB5 */ - 0x4830,INVALC,0x482B,0x4831,0x482C,0x482A,0x482D, - /* Range 0x911A - 0x9147, array index: 0x1ABC */ - 0x4E56,0x4E59,0x4E51,0x4E55,INVALC,0x4E54,0x4E52,0x4E58, - 0x4E53,0x4E50,0x4E57,INVALC,0x5523,INVALC,0x6374,0x547E, - 0x5521,0x547D,0x4076,INVALC,0x5524,0x547C,INVALC,INVALC, - 0x5522,0x5B23,INVALC,0x5B24,0x5B25,INVALC,0x5F70,INVALC, - 0x6375,0x6376,INVALC,INVALC,0x6377,0x6749,0x6748,0x6A30, - INVALC,0x6A2F,0x6C4A,0x6C4B,0x6C49,0x6E35, - /* Range 0x914E - 0x9150, array index: 0x1AEA */ - 0x3343,0x3344,0x3342, - /* Range 0x915F - 0x9164, array index: 0x1AED */ - 0x4126,0x4128,0x4124,0x4127,INVALC,0x4125, - /* Range 0x9180 - 0x9186, array index: 0x1AF3 */ - 0x552B,0x5528,0x5529,INVALC,0x552A,0x5525,0x5526, - /* Range 0x918D - 0x9193, array index: 0x1AFA */ - 0x5B29,INVALC,0x5B2A,0x5B27,0x5B28,INVALC,0x5B26, - /* Range 0x9199 - 0x91A2, array index: 0x1B01 */ - 0x5F74,0x5F71,0x5F73,INVALC,0x5F77,INVALC,0x5F75,0x5F78, - 0x5F76,0x5F72, - /* Range 0x91AF - 0x91BE, array index: 0x1B0B */ - 0x637B,0x674A,INVALC,0x6A33,0x6A34,INVALC,0x6A32,INVALC, - 0x6A31,INVALC,0x6C4C,INVALC,INVALC,0x6F57,0x7056,0x7055, - /* Range 0x91D3 - 0x91D5, array index: 0x1B1B */ - 0x2D62,0x2D61,0x3345, - /* Range 0x91E8 - 0x91EE, array index: 0x1B1E */ - 0x3A26,INVALC,0x3A23,0x3A24,0x397A,INVALC,0x3A27, - /* Range 0x91F3 - 0x91F9, array index: 0x1B25 */ - 0x397D,0x397B,INVALC,INVALC,0x3A25,0x397E,0x3A22, - /* Range 0x91FD - 0x9206, array index: 0x1B2C */ - 0x4134,INVALC,0x4133,0x4131,0x4129,0x4138,0x412C,0x4136, - 0x413D,0x4135, - /* Range 0x9216 - 0x921C, array index: 0x1B36 */ - 0x413E,0x413C,INVALC,0x413B,0x412D,INVALC,0x4139, - /* Range 0x9224 - 0x9227, array index: 0x1B3D */ - 0x413A,0x412B,0x412E,0x4137, - /* Range 0x922D - 0x9233, array index: 0x1B41 */ - 0x4F22,0x483D,INVALC,0x4836,0x4849,0x4852,0x4839, - /* Range 0x924C - 0x9256, array index: 0x1B48 */ - 0x4850,INVALC,0x484E,0x4842,0x484C,INVALC,0x4835,0x484F, - 0x484A,INVALC,0x4851, - /* Range 0x9263 - 0x9267, array index: 0x1B53 */ - 0x484B,INVALC,0x483A,0x4838,0x4844, - /* Range 0x926C - 0x9272, array index: 0x1B58 */ - 0x4841,0x4840,INVALC,0x4845,0x4848,INVALC,0x484D, - /* Range 0x9279 - 0x928E, array index: 0x1B5F */ - 0x4E6A,0x4E62,INVALC,INVALC,0x4E73,0x4E7B,0x4E6C,INVALC, - INVALC,0x4E70,0x483C,INVALC,INVALC,0x4E77,0x4E7C,0x4E74, - INVALC,0x4E76,0x4F21,0x4E78,0x4E66,0x4E6F, - /* Range 0x9297 - 0x92AB, array index: 0x1B75 */ - 0x4E6B,INVALC,0x4E79,0x4E68,0x4E61,INVALC,0x4E7E,INVALC, - INVALC,0x4E63,0x4E75,0x4E72,0x4E6D,0x4E5F,0x4E5E,0x4E67, - 0x4E7A,INVALC,0x4E7D,0x4E65,0x4E69, - /* Range 0x92B4 - 0x92B6, array index: 0x1B8A */ - 0x554D,0x5549,0x5531, - /* Range 0x92C0 - 0x92E1, array index: 0x1B8D */ - 0x552F,INVALC,0x553B,0x552D,0x552E,INVALC,0x554C,INVALC, - 0x553E,0x5543,0x553D,0x5B3C,0x5539,0x5541,0x553F,0x5532, - 0x552C,0x5547,INVALC,0x5548,INVALC,0x5542,INVALC,0x5537, - 0x5535,0x5530,INVALC,INVALC,INVALC,0x5538,0x5545,0x5534, - 0x5544,0x554A, - /* Range 0x92E6 - 0x92E9, array index: 0x1BAF */ - 0x5540,0x5546,0x553C,0x5536, - /* Range 0x92F7 - 0x9302, array index: 0x1BB3 */ - 0x5B41,INVALC,0x5B40,0x5B3E,0x5B50,INVALC,INVALC,0x5B4D, - 0x5B45,0x5B4F,0x5B37,0x5B43, - /* Range 0x9308 - 0x9316, array index: 0x1BBF */ - 0x5B2D,0x5B4E,INVALC,0x5B4C,0x5B4B,0x5B3B,0x5B3A,0x5B30, - INVALC,INVALC,0x5B36,0x5B3F,0x5B4A,INVALC,0x5B51, - /* Range 0x931B - 0x932A, array index: 0x1BCE */ - 0x5B34,INVALC,0x5B3D,0x5B2C,0x5B2E,INVALC,INVALC,INVALC, - 0x5B35,0x5B44,0x554B,INVALC,0x5B2B,INVALC,0x5B46,0x5B49, - /* Range 0x934C - 0x9359, array index: 0x1BDE */ - 0x602B,INVALC,0x6039,0x6031,0x6026,0x6027,0x6030,INVALC, - INVALC,0x602F,0x5F7D,0x602E,0x6022,0x603A, - /* Range 0x9360 - 0x9364, array index: 0x1BEC */ - 0x6028,0x6035,INVALC,0x6037,0x5F7C, - /* Range 0x9376 - 0x937C, array index: 0x1BF1 */ - 0x6024,0x6033,INVALC,0x602D,0x5B31,0x6034,0x6021, - /* Range 0x9388 - 0x9392, array index: 0x1BF8 */ - 0x642C,0x6425,INVALC,INVALC,0x637E,0x6430,0x6427,0x602A, - INVALC,0x6432,0x6421, - /* Range 0x939B - 0x93AA, array index: 0x1C03 */ - 0x6423,INVALC,0x6424,0x6429,0x642E,INVALC,0x5F79,INVALC, - 0x6437,0x6434,0x6761,0x642A,0x6426,0x6435,0x6756,0x6428, - /* Range 0x93B1 - 0x93B7, array index: 0x1C13 */ - 0x6431,0x6433,INVALC,0x6436,0x637D,INVALC,0x6422, - /* Range 0x93CC - 0x93D5, array index: 0x1C1A */ - 0x6754,INVALC,0x675E,0x674E,0x6751,INVALC,0x6760,INVALC, - 0x6759,0x675C, - /* Range 0x93F5 - 0x9400, array index: 0x1C24 */ - 0x6A41,0x6A50,0x6A43,0x6A4A,0x6752,0x6A48,0x6A37,0x6A4E, - INVALC,0x6A3B,0x6A4D,0x6A42, - /* Range 0x9406 - 0x9416, array index: 0x1C30 */ - 0x6A52,0x6A44,INVALC,0x6A49,0x6A4C,0x6A35,0x6A4F,0x6A40, - 0x6A45,0x6A39,0x6A3D,0x6A51,0x6A47,0x6A36,0x6A3A,0x6A3C, - 0x6A46, - /* Range 0x9428 - 0x942C, array index: 0x1C41 */ - 0x6A3E,0x6C50,0x6C54,INVALC,0x6C56, - /* Range 0x9439 - 0x9440, array index: 0x1C46 */ - 0x6C53,INVALC,0x6C4E,0x6A4B,0x6C51,INVALC,0x6C4D,0x6C57, - /* Range 0x9445 - 0x9450, array index: 0x1C4E */ - 0x6E3C,0x6E3F,0x6E3B,0x6E3D,0x6E3E,0x6E38,0x6E39,0x6E36, - INVALC,INVALC,0x6E3A,0x6E37, - /* Range 0x946B - 0x9478, array index: 0x1C5A */ - 0x7058,INVALC,0x7142,0x7141,0x7143,INVALC,0x7144,INVALC, - 0x7145,0x7161,0x7164,0x7163,INVALC,0x7162, - /* Range 0x9480 - 0x9483, array index: 0x1C68 */ - 0x7230,0x7231,0x722F,0x7237, - /* Range 0x957A - 0x957D, array index: 0x1C6C */ - 0x3A28,0x413F,0x554E,0x6763, - /* Range 0x959B - 0x959F, array index: 0x1C70 */ - 0x4856,0x4854,INVALC,0x4855,0x4853, - /* Range 0x95B5 - 0x95C0, array index: 0x1C75 */ - 0x5B59,0x5B57,0x6040,INVALC,0x5B55,0x5B56,INVALC,0x5B52, - 0x5B5A,0x5B54,0x5B58,0x603C, - /* Range 0x95D1 - 0x95D3, array index: 0x1C81 */ - 0x643A,0x6438,0x6439, - /* Range 0x95DA - 0x95E5, array index: 0x1C84 */ - 0x6764,0x6765,INVALC,INVALC,0x6A53,0x6A55,0x6A54,INVALC, - INVALC,0x6C5B,0x6C5A,0x6C59, - /* Range 0x9620 - 0x9624, array index: 0x1C90 */ - 0x2278,INVALC,0x2276,0x2279,0x2277, - /* Range 0x9639 - 0x963D, array index: 0x1C95 */ - 0x2878,0x287B,INVALC,0x287A,0x2879, - /* Range 0x9687 - 0x9689, array index: 0x1C9A */ - 0x4143,0x4145,0x4146, - /* Range 0x9691 - 0x9693, array index: 0x1C9D */ - 0x4859,0x4857,0x4858, - /* Range 0x971F - 0x972F, array index: 0x1CA0 */ - 0x6045,0x6044,INVALC,0x6443,0x6442,INVALC,0x6444,0x676B, - INVALC,0x676A,0x6767,INVALC,0x6768,0x6769,INVALC,0x6A56, - 0x6A57, - /* Range 0x9777 - 0x9784, array index: 0x1CB1 */ - 0x4861,0x4862,INVALC,0x4F28,0x4F2D,INVALC,0x4F27,0x4F29, - 0x4F30,0x4F2B,0x4F2F,0x4F2C,0x4F2A,0x4F2E, - /* Range 0x9799 - 0x97A5, array index: 0x1CBF */ - 0x5B60,0x6049,INVALC,0x604B,0x604D,0x604C,INVALC,INVALC, - 0x604A,0x644B,INVALC,0x6449,0x644C, - /* Range 0x97A8 - 0x97AE, array index: 0x1CCC */ - 0x6447,INVALC,0x644A,0x6448,0x6445,INVALC,0x6446, - /* Range 0x97CD - 0x97E5, array index: 0x1CD3 */ - 0x4F32,0x4F31,0x555E,0x555D,INVALC,INVALC,INVALC,0x604F, - 0x604E,0x644F,0x644D,0x6450,0x644E,INVALC,INVALC,INVALC, - 0x676F,0x6770,0x6771,INVALC,0x6C5F,INVALC,0x6E41,INVALC, - 0x7060, - /* Range 0x980D - 0x980F, array index: 0x1CEC */ - 0x4865,0x4866,0x4864, - /* Range 0x9826 - 0x9829, array index: 0x1CEF */ - 0x5561,0x5566,0x5563,0x5562, - /* Range 0x9841 - 0x984A, array index: 0x1CF3 */ - 0x6051,INVALC,0x6056,0x6052,0x6055,INVALC,INVALC,0x5E41, - 0x6054,0x6053, - /* Range 0x9850 - 0x9852, array index: 0x1CFD */ - 0x6452,0x6453,0x6454, - /* Range 0x985C - 0x9864, array index: 0x1D00 */ - 0x6772,0x6774,INVALC,0x6A5F,0x6A5C,INVALC,0x6A5D,0x6A5E, - 0x6C60, - /* Range 0x9872 - 0x9874, array index: 0x1D09 */ - 0x7147,0x717C,0x717D, - /* Range 0x98AC - 0x98AE, array index: 0x1D0C */ - 0x4867,0x4F34,0x4F35, - /* Range 0x98BB - 0x98C2, array index: 0x1D0F */ - 0x6778,INVALC,0x6777,0x6779,0x6776,0x6C63,0x6A60,0x6A61, - /* Range 0x9914 - 0x9917, array index: 0x1D17 */ - 0x556B,0x556E,0x556C,0x556D, - /* Range 0x9927 - 0x9933, array index: 0x1D1B */ - 0x5B6A,INVALC,0x5B6B,0x605A,0x6058,0x6059,0x605E,INVALC, - 0x605D,0x6060,0x605F,0x605C,0x605B, - /* Range 0x999C - 0x999E, array index: 0x1D28 */ - 0x4F3A,0x4F39,0x5B6C, - /* Range 0x99B9 - 0x99BD, array index: 0x1D2B */ - 0x4F3C,0x4F3E,0x4F3D,INVALC,0x4F40, - /* Range 0x99C9 - 0x99CF, array index: 0x1D30 */ - 0x5575,INVALC,0x5578,0x557A,0x5570,0x5574,0x5571, - /* Range 0x99D3 - 0x99D8, array index: 0x1D37 */ - 0x5572,0x5573,INVALC,0x5576,0x5579,0x5577, - /* Range 0x99E3 - 0x99F0, array index: 0x1D3D */ - 0x5B72,0x5B70,0x5B6F,INVALC,0x5B75,INVALC,0x5B74,0x5B73, - INVALC,0x5B6E,INVALC,0x5B6D,INVALC,0x5B71, - /* Range 0x99F4 - 0x9A15, array index: 0x1D4B */ - 0x6066,INVALC,0x606A,0x6067,0x6069,0x6068,0x6065,0x606B, - 0x606E,0x606C,0x606D,INVALC,INVALC,INVALC,0x6064,0x606F, - 0x645D,0x6460,0x6462,0x6461,INVALC,0x645B,0x645F,0x645A, - INVALC,0x645C,INVALC,0x6459,INVALC,0x645E,INVALC,INVALC, - 0x682D,0x6822, - /* Range 0x9A1A - 0x9A3A, array index: 0x1D6D */ - 0x6821,0x6826,0x682C,0x6824,0x682B,INVALC,0x6828,INVALC, - 0x6827,0x682A,0x6825,0x6823,INVALC,0x6829,INVALC,0x6A6E, - 0x6A6C,INVALC,0x6A6B,0x6A71,0x6A6F,INVALC,INVALC,0x6A6A, - 0x6A68,INVALC,0x6A69,INVALC,0x6A6D,INVALC,0x6A70,0x6C66, - 0x6C6C, - /* Range 0x9A46 - 0x9A56, array index: 0x1D8E */ - 0x6C68,INVALC,0x6E4C,0x6E4E,0x6E4D,INVALC,0x6E4A,INVALC, - 0x6E47,0x6E4B,0x6E50,INVALC,0x6E4F,0x6E48,0x6E49,INVALC, - 0x6F60, - /* Range 0x9A64 - 0x9A6B, array index: 0x1D9F */ - 0x7223,INVALC,0x7224,0x7225,0x7233,0x7232,INVALC,0x723B, - /* Range 0x9ABE - 0x9AC2, array index: 0x1DA7 */ - 0x6070,0x5B77,0x6463,INVALC,0x682E, - /* Range 0x9AF1 - 0x9AFE, array index: 0x1DAC */ - 0x5622,0x5621,0x557E,INVALC,INVALC,0x5B7A,0x5B7D,INVALC, - 0x5B7C,0x5B7B,INVALC,0x6074,0x6072,0x6071, - /* Range 0x9B08 - 0x9B19, array index: 0x1DBA */ - 0x6465,INVALC,0x6830,0x682F,0x6832,INVALC,0x6831,INVALC, - 0x6A75,0x6A77,0x6A76,INVALC,INVALC,0x6C6F,0x6C72,0x6C70, - 0x6C71,0x6E52, - /* Range 0x9B1E - 0x9B20, array index: 0x1DCC */ - 0x6F62,0x6F63,0x6F64, - /* Range 0x9B48 - 0x9B4C, array index: 0x1DCF */ - 0x6075,INVALC,0x646A,0x646C,0x646B, - /* Range 0x9B5F - 0x9B61, array index: 0x1DD4 */ - 0x4F49,0x4F47,0x4F48, - /* Range 0x9B64 - 0x9B68, array index: 0x1DD7 */ - 0x562D,INVALC,0x5628,0x5625,0x562C, - /* Range 0x9B70 - 0x9B88, array index: 0x1DDC */ - 0x562B,0x5627,INVALC,INVALC,0x5626,0x562A,0x5629,INVALC, - INVALC,INVALC,0x5C2B,0x5C26,0x5C24,0x5C2D,0x5C25,INVALC, - 0x5C21,INVALC,0x5C27,INVALC,INVALC,0x5C22,0x607E,0x5C23, - 0x5C2E, - /* Range 0x9B9E - 0x9BA8, array index: 0x1DF5 */ - 0x6078,INVALC,0x6122,0x607B,0x6121,INVALC,0x607D,0x607C, - 0x607A,INVALC,0x6077, - /* Range 0x9BB5 - 0x9BB9, array index: 0x1E00 */ - 0x6472,0x6475,INVALC,0x6473,0x6477, - /* Range 0x9BC3 - 0x9BC7, array index: 0x1E05 */ - 0x646F,0x6476,INVALC,0x646E,0x646D, - /* Range 0x9BD3 - 0x9BEC, array index: 0x1E0A */ - 0x6474,0x683C,0x6842,INVALC,0x683D,INVALC,0x6840,0x6844, - INVALC,0x683F,INVALC,0x6837,INVALC,0x6836,0x6843,0x683A, - INVALC,0x6838,0x6841,0x6839,INVALC,INVALC,INVALC,0x6834, - 0x6835,0x683E, - /* Range 0x9C05 - 0x9C0B, array index: 0x1E24 */ - 0x6A7B,0x6B23,0x6B21,0x6A79,0x6B26,INVALC,0x6A78, - /* Range 0x9C28 - 0x9C2C, array index: 0x1E2B */ - 0x6C7A,0x6C7B,INVALC,0x6C75,0x6C78, - /* Range 0x9C32 - 0x9C41, array index: 0x1E30 */ - 0x6E61,0x6E5C,0x6E60,INVALC,0x6E63,0x6E5F,INVALC,0x6E5B, - INVALC,INVALC,0x6E5E,0x6E62,INVALC,0x6E59,0x6A7E,0x6E5D, - /* Range 0x9C48 - 0x9C52, array index: 0x1E40 */ - 0x6E58,INVALC,0x6F68,0x6F6A,0x6F6D,0x6F69,0x6F6E,INVALC, - 0x6F67,INVALC,0x6F65, - /* Range 0x9C62 - 0x9C68, array index: 0x1E4B */ - 0x7067,0x7064,INVALC,INVALC,0x7066,0x7065,0x7149, - /* Range 0x9C71 - 0x9C75, array index: 0x1E52 */ - 0x7169,INVALC,0x7168,0x7167,0x716A, - /* Range 0x9CF7 - 0x9D00, array index: 0x1E57 */ - 0x5633,INVALC,0x5636,0x5630,0x5637,0x562F,0x5631,INVALC, - 0x5632,0x5635, - /* Range 0x9D04 - 0x9D08, array index: 0x1E61 */ - 0x563A,0x5639,INVALC,0x5634,0x5638, - /* Range 0x9D17 - 0x9D22, array index: 0x1E66 */ - 0x5C30,0x5C36,0x5C39,INVALC,INVALC,INVALC,0x5C35,0x5C32, - 0x5C3A,0x5C31,INVALC,0x5C37, - /* Range 0x9D2D - 0x9D38, array index: 0x1E72 */ - 0x6135,0x6128,0x6129,0x612C,0x612A,INVALC,0x6124,INVALC, - INVALC,0x6127,0x6131,0x612B, - /* Range 0x9D3D - 0x9D45, array index: 0x1E7E */ - 0x6133,0x6130,INVALC,0x6132,0x6125,0x612E,0x612F,INVALC, - 0x612D, - /* Range 0x9D4A - 0x9D4C, array index: 0x1E87 */ - 0x647C,0x647E,0x6523, - /* Range 0x9D52 - 0x9D5C, array index: 0x1E8A */ - 0x6525,0x647A,0x6526,INVALC,0x6522,0x6524,0x6528,0x6521, - 0x6529,0x647D,0x6479, - /* Range 0x9D67 - 0x9D8C, array index: 0x1E95 */ - 0x6126,0x685E,0x6855,INVALC,0x6851,INVALC,INVALC,INVALC, - 0x685A,0x6854,0x684A,INVALC,0x6857,0x6852,0x6853,INVALC, - 0x6845,0x684C,0x685B,INVALC,0x6858,INVALC,0x6850,INVALC, - 0x685C,0x684B,0x6846,0x6859,INVALC,0x6848,0x6856,0x684D, - 0x685D,0x6849,INVALC,0x6847,0x684E,0x684F, - /* Range 0x9D94 - 0x9DF8, array index: 0x1EBB */ - 0x6B30,INVALC,0x6B3C,0x6B33,0x6B2C,0x6B28,0x6B35,0x6B2E, - 0x6B31,0x6B2A,0x6B38,0x6B27,0x6B2F,0x6B34,0x6B36,0x6B39, - 0x6B29,INVALC,0x6B3D,0x6B3E,0x6B37,0x6B3B,0x6B32,INVALC, - 0x6D2F,0x6D32,INVALC,INVALC,INVALC,0x6D31,0x6D36,0x6D34, - INVALC,0x6D2B,0x6D21,0x6C7E,INVALC,0x6D2D,0x6D2E,0x6D2A, - 0x6D22,INVALC,0x6D27,0x6B3A,INVALC,0x6D23,INVALC,0x6D29, - INVALC,0x6D28,INVALC,0x6D24,0x6D30,INVALC,0x6D25,0x6E68, - 0x6D33,0x6D35,0x6D2C,0x6D26,0x6E69,0x6E6B,0x6E65,INVALC, - INVALC,0x6E72,0x6E70,INVALC,0x6E6F,0x6E6E,0x6E67,0x6E64, - 0x6E6A,0x6E73,0x6E66,0x6E6C,INVALC,0x6F77,0x6F7C,0x6F72, - 0x6F75,INVALC,0x6F79,INVALC,0x7022,0x6E6D,INVALC,0x6F73, - 0x6F7D,0x7023,0x6F78,0x6F71,0x6F7B,INVALC,0x6F7A,0x7021, - 0x6F7E,0x6E71,0x6F76,0x6F70,0x6F74, - /* Range 0x9DFB - 0x9E19, array index: 0x1F20 */ - 0x6F6F,INVALC,0x7074,0x706B,0x7073,0x7070,0x7071,0x706A, - 0x706D,0x7075,0x706F,0x706E,0x706C,INVALC,0x7072,INVALC, - 0x714C,INVALC,0x714D,INVALC,0x714F,0x714E,0x7151,0x7150, - 0x716C,0x716B,0x7227,INVALC,0x7228,INVALC,0x7234, - /* Range 0x9E86 - 0x9E8E, array index: 0x1F3F */ - 0x5C3C,0x5C3D,0x5C3B,0x6137,0x6136,INVALC,0x652B,0x6138, - 0x652A, - /* Range 0x9E99 - 0x9E9C, array index: 0x1F48 */ - 0x6B3F,0x6B41,0x6B40,0x6D38, - /* Range 0x9EE4 - 0x9EE7, array index: 0x1F4C */ - 0x6B43,0x6B42,0x6B45,0x6B44, - /* Range 0x9EF2 - 0x9F01, array index: 0x1F50 */ - 0x7026,0x7027,INVALC,0x7153,0x716D,INVALC,INVALC,0x4155, - 0x5C42,0x613C,0x6862,0x4875,INVALC,0x613D,0x652E,0x652D, - /* Range 0x9F18 - 0x9F38, array index: 0x1F60 */ - 0x6D3D,INVALC,0x6D3E,0x6D3C,0x7029,INVALC,0x7077,INVALC, - INVALC,INVALC,0x6140,0x613F,0x613E,0x6530,INVALC,INVALC, - 0x6534,0x6533,0x6532,0x6531,INVALC,0x6863,0x6B47,INVALC, - 0x6B46,0x6D3F,0x6E78,0x6E77,INVALC,0x6E76,0x702C,0x702B, - 0x702A, - /* Range 0x9F40 - 0x9F4F, array index: 0x1F81 */ - 0x6864,0x6865,0x6E79,0x702D,INVALC,INVALC,0x7078,0x7155, - 0x7229,0x7243,INVALC,INVALC,0x6535,0x6866,0x6D40,0x702E, - /* Range 0x9F54 - 0x9F60, array index: 0x1F91 */ - 0x6141,0x6536,0x6867,0x6868,0x6869,0x6B4C,INVALC,0x6B48, - INVALC,0x6B4B,0x6B4A,INVALC,0x6B49, - /* Range 0x9F6E - 0x9F7B, array index: 0x1F9E */ - 0x7031,0x7032,0x7030,0x702F,INVALC,INVALC,0x7079,0x707A, - 0x707B,INVALC,0x7156,0x7159,0x7158,0x7157, - /* Unranged codes (638 codes) */ - /* Array index: 0x1FAC */ 0x4E07,0x2126, - /* Array index: 0x1FAC */ 0x4E0C,0x2127, - /* Array index: 0x1FAC */ 0x4E0E,0x212F, - /* Array index: 0x1FAC */ 0x4E0F,0x212D, - /* Array index: 0x1FAC */ 0x4E2E,0x2130, - /* Array index: 0x1FAC */ 0x4E31,0x2143, - /* Array index: 0x1FAC */ 0x4E33,0x2531, - /* Array index: 0x1FAC */ 0x4E3C,0x2144, - /* Array index: 0x1FAC */ 0x4E42,0x2121, - /* Array index: 0x1FAC */ 0x4E47,0x2128, - /* Array index: 0x1FAC */ 0x4E5C,0x2122, - /* Array index: 0x1FAC */ 0x4E7F,0x334E, - /* Array index: 0x1FAC */ 0x4E83,0x4156, - /* Array index: 0x1FAC */ 0x4E84,0x4157, - /* Array index: 0x1FAC */ 0x4E8D,0x2129, - /* Array index: 0x1FAC */ 0x4E93,0x2131, - /* Array index: 0x1FAC */ 0x4EB6,0x4158, - /* Array index: 0x1FAC */ 0x4EB9,0x6D44, - /* Array index: 0x1FAC */ 0x4EC2,0x2132, - /* Array index: 0x1FAC */ 0x4EC8,0x2134, - /* Array index: 0x1FAC */ 0x4EC9,0x2133, - /* Array index: 0x1FAC */ 0x4EDA,0x214A, - /* Array index: 0x1FAC */ 0x4EDC,0x2146, - /* Array index: 0x1FAC */ 0x4EDD,0x2149, - /* Array index: 0x1FAC */ 0x4EE1,0x2148, - /* Array index: 0x1FAC */ 0x4EE8,0x2145, - /* Array index: 0x1FAC */ 0x4EE9,0x2147, - /* Array index: 0x1FAC */ 0x4EF1,0x216F, - /* Array index: 0x1FAC */ 0x4EF4,0x2179, - /* Array index: 0x1FAC */ 0x4EF5,0x216D, - /* Array index: 0x1FAC */ 0x4EF7,0x2171, - /* Array index: 0x1FAC */ 0x4F00,0x2170, - /* Array index: 0x1FAC */ 0x4F02,0x2174, - /* Array index: 0x1FAC */ 0x4F04,0x2178, - /* Array index: 0x1FAC */ 0x4F05,0x2175, - /* Array index: 0x1FAC */ 0x4F08,0x2172, - /* Array index: 0x1FAC */ 0x4F0E,0x216A, - /* Array index: 0x1FAC */ 0x4F18,0x216B, - /* Array index: 0x1FAC */ 0x4F1D,0x2173, - /* Array index: 0x1FAC */ 0x4F22,0x2176, - /* Array index: 0x1FAC */ 0x4F2C,0x216C, - /* Array index: 0x1FAC */ 0x4F2D,0x2328, - /* Array index: 0x1FAC */ 0x4F33,0x2329, - /* Array index: 0x1FAC */ 0x4F3B,0x227B, - /* Array index: 0x1FAC */ 0x4F3E,0x2322, - /* Array index: 0x1FAC */ 0x4F3F,0x232A, - /* Array index: 0x1FAC */ 0x4F41,0x2326, - /* Array index: 0x1FAC */ 0x4F49,0x227D, - /* Array index: 0x1FAC */ 0x4F4C,0x253D, - /* Array index: 0x1FAC */ 0x4F52,0x2324, - /* Array index: 0x1FAC */ 0x4F53,0x227E, - /* Array index: 0x1FAC */ 0x4F56,0x227A, - /* Array index: 0x1FAC */ 0x4F58,0x2327, - /* Array index: 0x1FAC */ 0x4F5F,0x2325, - /* Array index: 0x1FAC */ 0x4F61,0x232B, - /* Array index: 0x1FAC */ 0x4F62,0x227C, - /* Array index: 0x1FAC */ 0x4F64,0x2321, - /* Array index: 0x1FAC */ 0x4F67,0x2323, - /* Array index: 0x1FAC */ 0x4F6A,0x253F, - /* Array index: 0x1FAC */ 0x4F6B,0x254B, - /* Array index: 0x1FAC */ 0x4F6E,0x254C, - /* Array index: 0x1FAC */ 0x4F90,0x2544, - /* Array index: 0x1FAC */ 0x4F92,0x2548, - /* Array index: 0x1FAC */ 0x4FB2,0x2922, - /* Array index: 0x1FAC */ 0x4FB3,0x292A, - /* Array index: 0x1FAC */ 0x4FC0,0x292F, - /* Array index: 0x1FAC */ 0x4FC1,0x2925, - /* Array index: 0x1FAC */ 0x4FC5,0x287E, - /* Array index: 0x1FAC */ 0x4FC7,0x292C, - /* Array index: 0x1FAC */ 0x4FC9,0x2923, - /* Array index: 0x1FAC */ 0x4FCB,0x2924, - /* Array index: 0x1FAC */ 0x4FCD,0x287D, - /* Array index: 0x1FAC */ 0x4FD3,0x2921, - /* Array index: 0x1FAC */ 0x4FD4,0x2926, - /* Array index: 0x1FAC */ 0x4FD6,0x292D, - /* Array index: 0x1FAC */ 0x4FD9,0x2928, - /* Array index: 0x1FAC */ 0x4FDB,0x292B, - /* Array index: 0x1FAC */ 0x4FDC,0x2927, - /* Array index: 0x1FAC */ 0x4FEC,0x2931, - /* Array index: 0x1FAC */ 0x5005,0x2D6A, - /* Array index: 0x1FAC */ 0x5007,0x2D6B, - /* Array index: 0x1FAC */ 0x500E,0x2D7E, - /* Array index: 0x1FAC */ 0x5013,0x2D6C, - /* Array index: 0x1FAC */ 0x5015,0x335E, - /* Array index: 0x1FAC */ 0x5017,0x2D77, - /* Array index: 0x1FAC */ 0x501B,0x2D6F, - /* Array index: 0x1FAC */ 0x501C,0x2D78, - /* Array index: 0x1FAC */ 0x501E,0x2D69, - /* Array index: 0x1FAC */ 0x5020,0x2D79, - /* Array index: 0x1FAC */ 0x5022,0x2D6D, - /* Array index: 0x1FAC */ 0x5027,0x2D7A, - /* Array index: 0x1FAC */ 0x502C,0x2D74, - /* Array index: 0x1FAC */ 0x5040,0x3366, - /* Array index: 0x1FAC */ 0x5041,0x335A, - /* Array index: 0x1FAC */ 0x5045,0x335F, - /* Array index: 0x1FAC */ 0x5046,0x3365, - /* Array index: 0x1FAC */ 0x5048,0x3358, - /* Array index: 0x1FAC */ 0x504A,0x335C, - /* Array index: 0x1FAC */ 0x504B,0x3355, - /* Array index: 0x1FAC */ 0x504D,0x3359, - /* Array index: 0x1FAC */ 0x5051,0x336A, - /* Array index: 0x1FAC */ 0x5053,0x3354, - /* Array index: 0x1FAC */ 0x5057,0x3369, - /* Array index: 0x1FAC */ 0x506E,0x3367, - /* Array index: 0x1FAC */ 0x5070,0x334F, - /* Array index: 0x1FAC */ 0x5072,0x3357, - /* Array index: 0x1FAC */ 0x5073,0x3368, - /* Array index: 0x1FAC */ 0x5082,0x3A42, - /* Array index: 0x1FAC */ 0x5083,0x3A3B, - /* Array index: 0x1FAC */ 0x5087,0x3A43, - /* Array index: 0x1FAC */ 0x508B,0x3A39, - /* Array index: 0x1FAC */ 0x508C,0x3A3C, - /* Array index: 0x1FAC */ 0x508E,0x3A3D, - /* Array index: 0x1FAC */ 0x5092,0x3A41, - /* Array index: 0x1FAC */ 0x5094,0x3A37, - /* Array index: 0x1FAC */ 0x5095,0x3A36, - /* Array index: 0x1FAC */ 0x50A3,0x3A3A, - /* Array index: 0x1FAC */ 0x50AE,0x415C, - /* Array index: 0x1FAC */ 0x50B0,0x4162, - /* Array index: 0x1FAC */ 0x50B1,0x4165, - /* Array index: 0x1FAC */ 0x50B4,0x415F, - /* Array index: 0x1FAC */ 0x50B6,0x4168, - /* Array index: 0x1FAC */ 0x50B8,0x4169, - /* Array index: 0x1FAC */ 0x50BA,0x4164, - /* Array index: 0x1FAC */ 0x50BD,0x4159, - /* Array index: 0x1FAC */ 0x50BF,0x415A, - /* Array index: 0x1FAC */ 0x50C1,0x4163, - /* Array index: 0x1FAC */ 0x50C2,0x4161, - /* Array index: 0x1FAC */ 0x50C4,0x415D, - /* Array index: 0x1FAC */ 0x50D3,0x4921, - /* Array index: 0x1FAC */ 0x50D4,0x4877, - /* Array index: 0x1FAC */ 0x50D7,0x4878, - /* Array index: 0x1FAC */ 0x50DB,0x487B, - /* Array index: 0x1FAC */ 0x50DD,0x487D, - /* Array index: 0x1FAC */ 0x50E0,0x4926, - /* Array index: 0x1FAC */ 0x50E3,0x4925, - /* Array index: 0x1FAC */ 0x50E4,0x487E, - /* Array index: 0x1FAC */ 0x50E6,0x4876, - /* Array index: 0x1FAC */ 0x50E8,0x4879, - /* Array index: 0x1FAC */ 0x50EA,0x487C, - /* Array index: 0x1FAC */ 0x50EC,0x4922, - /* Array index: 0x1FAC */ 0x50EF,0x4924, - /* Array index: 0x1FAC */ 0x50F0,0x4923, - /* Array index: 0x1FAC */ 0x50F3,0x487A, - /* Array index: 0x1FAC */ 0x50F6,0x4F54, - /* Array index: 0x1FAC */ 0x50F8,0x4F51, - /* Array index: 0x1FAC */ 0x5103,0x4F4F, - /* Array index: 0x1FAC */ 0x5111,0x5643, - /* Array index: 0x1FAC */ 0x5113,0x5640, - /* Array index: 0x1FAC */ 0x5117,0x5641, - /* Array index: 0x1FAC */ 0x511A,0x5642, - /* Array index: 0x1FAC */ 0x511C,0x563F, - /* Array index: 0x1FAC */ 0x5120,0x5C49, - /* Array index: 0x1FAC */ 0x5129,0x5C4A, - /* Array index: 0x1FAC */ 0x5139,0x6B4F, - /* Array index: 0x1FAC */ 0x513A,0x6B4E, - /* Array index: 0x1FAC */ 0x513D,0x6E7D, - /* Array index: 0x1FAC */ 0x515A,0x2E21, - /* Array index: 0x1FAC */ 0x515F,0x3A44, - /* Array index: 0x1FAC */ 0x5187,0x212E, - /* Array index: 0x1FAC */ 0x518F,0x232C, - /* Array index: 0x1FAC */ 0x5193,0x2E23, - /* Array index: 0x1FAC */ 0x5194,0x2E22, - /* Array index: 0x1FAC */ 0x5198,0x2135, - /* Array index: 0x1FAC */ 0x519E,0x254D, - /* Array index: 0x1FAC */ 0x51B1,0x217B, - /* Array index: 0x1FAC */ 0x51B9,0x232D, - /* Array index: 0x1FAC */ 0x51BC,0x254E, - /* Array index: 0x1FAC */ 0x51BE,0x254F, - /* Array index: 0x1FAC */ 0x51C4,0x2E25, - /* Array index: 0x1FAC */ 0x51C5,0x2E26, - /* Array index: 0x1FAC */ 0x51C8,0x2E27, - /* Array index: 0x1FAC */ 0x51CA,0x2E24, - /* Array index: 0x1FAC */ 0x51CE,0x2E28, - /* Array index: 0x1FAC */ 0x51D0,0x336B, - /* Array index: 0x1FAC */ 0x51D4,0x3A45, - /* Array index: 0x1FAC */ 0x51D7,0x416A, - /* Array index: 0x1FAC */ 0x51D8,0x4927, - /* Array index: 0x1FAC */ 0x51DE,0x5644, - /* Array index: 0x1FAC */ 0x51F5,0x2123, - /* Array index: 0x1FAC */ 0x5209,0x214C, - /* Array index: 0x1FAC */ 0x520C,0x214B, - /* Array index: 0x1FAC */ 0x5210,0x217D, - /* Array index: 0x1FAC */ 0x5213,0x217C, - /* Array index: 0x1FAC */ 0x521C,0x232E, - /* Array index: 0x1FAC */ 0x521E,0x232F, - /* Array index: 0x1FAC */ 0x5221,0x2330, - /* Array index: 0x1FAC */ 0x5244,0x2932, - /* Array index: 0x1FAC */ 0x5246,0x2553, - /* Array index: 0x1FAC */ 0x5249,0x2933, - /* Array index: 0x1FAC */ 0x5252,0x2E2B, - /* Array index: 0x1FAC */ 0x5255,0x2E2E, - /* Array index: 0x1FAC */ 0x525A,0x2E2A, - /* Array index: 0x1FAC */ 0x5280,0x4928, - /* Array index: 0x1FAC */ 0x5281,0x4929, - /* Array index: 0x1FAC */ 0x5284,0x4C61, - /* Array index: 0x1FAC */ 0x528B,0x4F5A, - /* Array index: 0x1FAC */ 0x528C,0x4F5B, - /* Array index: 0x1FAC */ 0x52A6,0x217E, - /* Array index: 0x1FAC */ 0x52AD,0x2331, - /* Array index: 0x1FAC */ 0x52AE,0x2332, - /* Array index: 0x1FAC */ 0x52BC,0x2555, - /* Array index: 0x1FAC */ 0x52C0,0x2934, - /* Array index: 0x1FAC */ 0x52C2,0x2935, - /* Array index: 0x1FAC */ 0x52CD,0x2E30, - /* Array index: 0x1FAC */ 0x52D3,0x3371, - /* Array index: 0x1FAC */ 0x52D6,0x3370, - /* Array index: 0x1FAC */ 0x52E9,0x492A, - /* Array index: 0x1FAC */ 0x52EB,0x492B, - /* Array index: 0x1FAC */ 0x52EF,0x4F5D, - /* Array index: 0x1FAC */ 0x52F1,0x4F5C, - /* Array index: 0x1FAC */ 0x52F4,0x5C4B, - /* Array index: 0x1FAC */ 0x52F7,0x653A, - /* Array index: 0x1FAC */ 0x52FC,0x2136, - /* Array index: 0x1FAC */ 0x530E,0x2E31, - /* Array index: 0x1FAC */ 0x5311,0x3A47, - /* Array index: 0x1FAC */ 0x5312,0x3A46, - /* Array index: 0x1FAC */ 0x531A,0x2124, - /* Array index: 0x1FAC */ 0x531C,0x214D, - /* Array index: 0x1FAC */ 0x531F,0x2222, - /* Array index: 0x1FAC */ 0x5322,0x2221, - /* Array index: 0x1FAC */ 0x532D,0x3372, - /* Array index: 0x1FAC */ 0x5330,0x492C, - /* Array index: 0x1FAC */ 0x5334,0x5645, - /* Array index: 0x1FAC */ 0x5337,0x686A, - /* Array index: 0x1FAC */ 0x533C,0x2558, - /* Array index: 0x1FAC */ 0x533D,0x2936, - /* Array index: 0x1FAC */ 0x534C,0x214E, - /* Array index: 0x1FAC */ 0x534D,0x2223, - /* Array index: 0x1FAC */ 0x5363,0x2334, - /* Array index: 0x1FAC */ 0x536C,0x2137, - /* Array index: 0x1FAC */ 0x5372,0x2335, - /* Array index: 0x1FAC */ 0x537C,0x2937, - /* Array index: 0x1FAC */ 0x5382,0x2125, - /* Array index: 0x1FAC */ 0x538A,0x2224, - /* Array index: 0x1FAC */ 0x538E,0x2336, - /* Array index: 0x1FAC */ 0x538F,0x2337, - /* Array index: 0x1FAC */ 0x5392,0x2559, - /* Array index: 0x1FAC */ 0x539C,0x3373, - /* Array index: 0x1FAC */ 0x539E,0x2E32, - /* Array index: 0x1FAC */ 0x53A4,0x3A48, - /* Array index: 0x1FAC */ 0x53A7,0x3A49, - /* Array index: 0x1FAC */ 0x53AC,0x492D, - /* Array index: 0x1FAC */ 0x53B4,0x653B, - /* Array index: 0x1FAC */ 0x53B9,0x2138, - /* Array index: 0x1FAC */ 0x53E1,0x5646, - /* Array index: 0x1FAC */ 0x5407,0x2225, - /* Array index: 0x1FAC */ 0x5418,0x2340, - /* Array index: 0x1FAC */ 0x5419,0x233D, - /* Array index: 0x1FAC */ 0x541C,0x233E, - /* Array index: 0x1FAC */ 0x5424,0x2345, - /* Array index: 0x1FAC */ 0x5425,0x233F, - /* Array index: 0x1FAC */ 0x5428,0x2344, - /* Array index: 0x1FAC */ 0x542A,0x233A, - /* Array index: 0x1FAC */ 0x5430,0x2338, - /* Array index: 0x1FAC */ 0x5437,0x2339, - /* Array index: 0x1FAC */ 0x543D,0x2341, - /* Array index: 0x1FAC */ 0x5441,0x2343, - /* Array index: 0x1FAC */ 0x5445,0x233C, - /* Array index: 0x1FAC */ 0x5447,0x2346, - /* Array index: 0x1FAC */ 0x544F,0x2342, - /* Array index: 0x1FAC */ 0x5454,0x233B, - /* Array index: 0x1FAC */ 0x546B,0x2561, - /* Array index: 0x1FAC */ 0x546C,0x2565, - /* Array index: 0x1FAC */ 0x546F,0x2569, - /* Array index: 0x1FAC */ 0x5470,0x294A, - /* Array index: 0x1FAC */ 0x5472,0x294E, - /* Array index: 0x1FAC */ 0x5474,0x2566, - /* Array index: 0x1FAC */ 0x547A,0x2562, - /* Array index: 0x1FAC */ 0x5487,0x255B, - /* Array index: 0x1FAC */ 0x5488,0x2560, - /* Array index: 0x1FAC */ 0x548D,0x2568, - /* Array index: 0x1FAC */ 0x5491,0x255E, - /* Array index: 0x1FAC */ 0x5498,0x256C, - /* Array index: 0x1FAC */ 0x54A5,0x293F, - /* Array index: 0x1FAC */ 0x54AD,0x293E, - /* Array index: 0x1FAC */ 0x54AE,0x2944, - /* Array index: 0x1FAC */ 0x54B0,0x2950, - /* Array index: 0x1FAC */ 0x54B6,0x2946, - /* Array index: 0x1FAC */ 0x54B7,0x2943, - /* Array index: 0x1FAC */ 0x54BA,0x293C, - /* Array index: 0x1FAC */ 0x54BC,0x294B, - /* Array index: 0x1FAC */ 0x54BE,0x294D, - /* Array index: 0x1FAC */ 0x54C3,0x2941, - /* Array index: 0x1FAC */ 0x54C5,0x2947, - /* Array index: 0x1FAC */ 0x54C6,0x2948, - /* Array index: 0x1FAC */ 0x54CF,0x2940, - /* Array index: 0x1FAC */ 0x54D6,0x2945, - /* Array index: 0x1FAC */ 0x54DE,0x294F, - /* Array index: 0x1FAC */ 0x54E0,0x2E46, - /* Array index: 0x1FAC */ 0x54E2,0x2E34, - /* Array index: 0x1FAC */ 0x54E4,0x2E39, - /* Array index: 0x1FAC */ 0x54E7,0x2E37, - /* Array index: 0x1FAC */ 0x54EB,0x2E3E, - /* Array index: 0x1FAC */ 0x54F1,0x2E41, - /* Array index: 0x1FAC */ 0x54F3,0x2E38, - /* Array index: 0x1FAC */ 0x54F7,0x2E44, - /* Array index: 0x1FAC */ 0x54F8,0x2E45, - /* Array index: 0x1FAC */ 0x54FB,0x2E43, - /* Array index: 0x1FAC */ 0x54FF,0x2E3B, - /* Array index: 0x1FAC */ 0x5517,0x2E35, - /* Array index: 0x1FAC */ 0x551A,0x2E3A, - /* Array index: 0x1FAC */ 0x5526,0x2E33, - /* Array index: 0x1FAC */ 0x552A,0x337A, - /* Array index: 0x1FAC */ 0x552D,0x342A, - /* Array index: 0x1FAC */ 0x5530,0x3421, - /* Array index: 0x1FAC */ 0x5539,0x3428, - /* Array index: 0x1FAC */ 0x553B,0x342B, - /* Array index: 0x1FAC */ 0x553C,0x3376, - /* Array index: 0x1FAC */ 0x5540,0x342C, - /* Array index: 0x1FAC */ 0x5545,0x3423, - /* Array index: 0x1FAC */ 0x5548,0x3429, - /* Array index: 0x1FAC */ 0x554B,0x342D, - /* Array index: 0x1FAC */ 0x5562,0x337C, - /* Array index: 0x1FAC */ 0x5565,0x3426, - /* Array index: 0x1FAC */ 0x557D,0x3A59, - /* Array index: 0x1FAC */ 0x557F,0x3A5C, - /* Array index: 0x1FAC */ 0x5581,0x3A55, - /* Array index: 0x1FAC */ 0x5588,0x3A52, - /* Array index: 0x1FAC */ 0x55AD,0x3A4D, - /* Array index: 0x1FAC */ 0x55B5,0x3A54, - /* Array index: 0x1FAC */ 0x55D9,0x4226, - /* Array index: 0x1FAC */ 0x55DB,0x4170, - /* Array index: 0x1FAC */ 0x55DD,0x4175, - /* Array index: 0x1FAC */ 0x55E2,0x4221, - /* Array index: 0x1FAC */ 0x55E9,0x4179, - /* Array index: 0x1FAC */ 0x55F2,0x4224, - /* Array index: 0x1FAC */ 0x55F9,0x493C, - /* Array index: 0x1FAC */ 0x55FA,0x4938, - /* Array index: 0x1FAC */ 0x55FC,0x4932, - /* Array index: 0x1FAC */ 0x55FF,0x493B, - /* Array index: 0x1FAC */ 0x5601,0x4935, - /* Array index: 0x1FAC */ 0x5602,0x4937, - /* Array index: 0x1FAC */ 0x5604,0x493A, - /* Array index: 0x1FAC */ 0x560C,0x4930, - /* Array index: 0x1FAC */ 0x560F,0x4933, - /* Array index: 0x1FAC */ 0x5612,0x4931, - /* Array index: 0x1FAC */ 0x5613,0x4936, - /* Array index: 0x1FAC */ 0x5615,0x492F, - /* Array index: 0x1FAC */ 0x561C,0x4934, - /* Array index: 0x1FAC */ 0x561D,0x4939, - /* Array index: 0x1FAC */ 0x5627,0x492E, - /* Array index: 0x1FAC */ 0x562A,0x4F6E, - /* Array index: 0x1FAC */ 0x562C,0x4F6B, - /* Array index: 0x1FAC */ 0x5633,0x4F69, - /* Array index: 0x1FAC */ 0x5635,0x4F61, - /* Array index: 0x1FAC */ 0x5638,0x4F6D, - /* Array index: 0x1FAC */ 0x563A,0x4F6F, - /* Array index: 0x1FAC */ 0x5658,0x4F66, - /* Array index: 0x1FAC */ 0x565A,0x4F67, - /* Array index: 0x1FAC */ 0x565E,0x564F, - /* Array index: 0x1FAC */ 0x5660,0x5648, - /* Array index: 0x1FAC */ 0x5663,0x564C, - /* Array index: 0x1FAC */ 0x5666,0x564B, - /* Array index: 0x1FAC */ 0x566D,0x564D, - /* Array index: 0x1FAC */ 0x566E,0x5649, - /* Array index: 0x1FAC */ 0x5670,0x5647, - /* Array index: 0x1FAC */ 0x5672,0x564E, - /* Array index: 0x1FAC */ 0x5673,0x564A, - /* Array index: 0x1FAC */ 0x5677,0x5650, - /* Array index: 0x1FAC */ 0x568C,0x5C4D, - /* Array index: 0x1FAC */ 0x568D,0x5C4E, - /* Array index: 0x1FAC */ 0x5693,0x5C4C, - /* Array index: 0x1FAC */ 0x56B2,0x686B, - /* Array index: 0x1FAC */ 0x56B3,0x686D, - /* Array index: 0x1FAC */ 0x56B5,0x686C, - /* Array index: 0x1FAC */ 0x56BD,0x6B53, - /* Array index: 0x1FAC */ 0x56BE,0x6B54, - /* Array index: 0x1FAC */ 0x56C3,0x6B52, - /* Array index: 0x1FAC */ 0x56C5,0x6D46, - /* Array index: 0x1FAC */ 0x56C6,0x6D45, - /* Array index: 0x1FAC */ 0x56CB,0x6D47, - /* Array index: 0x1FAC */ 0x56CD,0x7034, - /* Array index: 0x1FAC */ 0x56D3,0x7033, - /* Array index: 0x1FAC */ 0x56D4,0x707C, - /* Array index: 0x1FAC */ 0x56D7,0x212A, - /* Array index: 0x1FAC */ 0x56DF,0x2227, - /* Array index: 0x1FAC */ 0x56E1,0x2226, - /* Array index: 0x1FAC */ 0x56E5,0x2349, - /* Array index: 0x1FAC */ 0x56E7,0x2348, - /* Array index: 0x1FAC */ 0x56EE,0x2347, - /* Array index: 0x1FAC */ 0x56F7,0x2570, - /* Array index: 0x1FAC */ 0x56F9,0x2571, - /* Array index: 0x1FAC */ 0x5701,0x2E4A, - /* Array index: 0x1FAC */ 0x5702,0x2E4B, - /* Array index: 0x1FAC */ 0x5707,0x342F, - /* Array index: 0x1FAC */ 0x570A,0x342E, - /* Array index: 0x1FAC */ 0x570C,0x3A60, - /* Array index: 0x1FAC */ 0x5714,0x4228, - /* Array index: 0x1FAC */ 0x572A,0x2229, - /* Array index: 0x1FAC */ 0x572E,0x2228, - /* Array index: 0x1FAC */ 0x5734,0x222A, - /* Array index: 0x1FAC */ 0x5741,0x234A, - /* Array index: 0x1FAC */ 0x5745,0x234B, - /* Array index: 0x1FAC */ 0x5749,0x234D, - /* Array index: 0x1FAC */ 0x574B,0x234E, - /* Array index: 0x1FAC */ 0x574C,0x234C, - /* Array index: 0x1FAC */ 0x5752,0x234F, - /* Array index: 0x1FAC */ 0x5762,0x257E, - /* Array index: 0x1FAC */ 0x5768,0x2621, - /* Array index: 0x1FAC */ 0x576B,0x2575, - /* Array index: 0x1FAC */ 0x577B,0x257B, - /* Array index: 0x1FAC */ 0x577D,0x2622, - /* Array index: 0x1FAC */ 0x5780,0x2579, - /* Array index: 0x1FAC */ 0x578C,0x2955, - /* Array index: 0x1FAC */ 0x578F,0x295B, - /* Array index: 0x1FAC */ 0x57A4,0x2954, - /* Array index: 0x1FAC */ 0x57A5,0x295D, - /* Array index: 0x1FAC */ 0x57C6,0x2E51, - /* Array index: 0x1FAC */ 0x57C7,0x2E57, - /* Array index: 0x1FAC */ 0x57CC,0x2E4C, - /* Array index: 0x1FAC */ 0x57CF,0x343D, - /* Array index: 0x1FAC */ 0x57D0,0x2E58, - /* Array index: 0x1FAC */ 0x57D2,0x2E4F, - /* Array index: 0x1FAC */ 0x57D5,0x2E4E, - /* Array index: 0x1FAC */ 0x57DC,0x3434, - /* Array index: 0x1FAC */ 0x5804,0x344F, - /* Array index: 0x1FAC */ 0x5814,0x3431, - /* Array index: 0x1FAC */ 0x5819,0x3A63, - /* Array index: 0x1FAC */ 0x581B,0x3A6C, - /* Array index: 0x1FAC */ 0x581C,0x3A6B, - /* Array index: 0x1FAC */ 0x581E,0x3A64, - /* Array index: 0x1FAC */ 0x5823,0x3A66, - /* Array index: 0x1FAC */ 0x5848,0x3A69, - /* Array index: 0x1FAC */ 0x5849,0x422E, - /* Array index: 0x1FAC */ 0x5853,0x4229, - /* Array index: 0x1FAC */ 0x5855,0x4230, - /* Array index: 0x1FAC */ 0x5859,0x4233, - /* Array index: 0x1FAC */ 0x585B,0x4235, - /* Array index: 0x1FAC */ 0x585D,0x4232, - /* Array index: 0x1FAC */ 0x5868,0x422A, - /* Array index: 0x1FAC */ 0x586F,0x422F, - /* Array index: 0x1FAC */ 0x5871,0x4238, - /* Array index: 0x1FAC */ 0x5874,0x4944, - /* Array index: 0x1FAC */ 0x5876,0x494A, - /* Array index: 0x1FAC */ 0x587F,0x4943, - /* Array index: 0x1FAC */ 0x5881,0x4942, - /* Array index: 0x1FAC */ 0x5882,0x494B, - /* Array index: 0x1FAC */ 0x5894,0x494E, - /* Array index: 0x1FAC */ 0x5898,0x4940, - /* Array index: 0x1FAC */ 0x589D,0x4F72, - /* Array index: 0x1FAC */ 0x58A0,0x4F74, - /* Array index: 0x1FAC */ 0x58A1,0x4F79, - /* Array index: 0x1FAC */ 0x58A3,0x4F75, - /* Array index: 0x1FAC */ 0x58A5,0x4F78, - /* Array index: 0x1FAC */ 0x58AB,0x4F71, - /* Array index: 0x1FAC */ 0x58AC,0x4F77, - /* Array index: 0x1FAC */ 0x58AF,0x4F76, - /* Array index: 0x1FAC */ 0x58B1,0x4F73, - /* Array index: 0x1FAC */ 0x58BA,0x5657, - /* Array index: 0x1FAC */ 0x58BC,0x5659, - /* Array index: 0x1FAC */ 0x58BD,0x5654, - /* Array index: 0x1FAC */ 0x58BF,0x5656, - /* Array index: 0x1FAC */ 0x58C2,0x5658, - /* Array index: 0x1FAC */ 0x58C6,0x565A, - /* Array index: 0x1FAC */ 0x58C8,0x5653, - /* Array index: 0x1FAC */ 0x58C9,0x5655, - /* Array index: 0x1FAC */ 0x58CF,0x5C58, - /* Array index: 0x1FAC */ 0x58D2,0x5C59, - /* Array index: 0x1FAC */ 0x58D4,0x5C57, - /* Array index: 0x1FAC */ 0x58D6,0x5C56, - /* Array index: 0x1FAC */ 0x58DA,0x6542, - /* Array index: 0x1FAC */ 0x58DB,0x6544, - /* Array index: 0x1FAC */ 0x58DD,0x6543, - /* Array index: 0x1FAC */ 0x58E3,0x686E, - /* Array index: 0x1FAC */ 0x58E7,0x6F22, - /* Array index: 0x1FAC */ 0x58E8,0x6F21, - /* Array index: 0x1FAC */ 0x58F4,0x2960, - /* Array index: 0x1FAC */ 0x58FC,0x4239, - /* Array index: 0x1FAC */ 0x58FE,0x4950, - /* Array index: 0x1FAC */ 0x58FF,0x4F7A, - /* Array index: 0x1FAC */ 0x5903,0x213A, - /* Array index: 0x1FAC */ 0x5906,0x2350, - /* Array index: 0x1FAC */ 0x5912,0x6545, - /* Array index: 0x1FAC */ 0x5917,0x2151, - /* Array index: 0x1FAC */ 0x592C,0x213B, - /* Array index: 0x1FAC */ 0x592F,0x2152, - /* Array index: 0x1FAC */ 0x593C,0x222B, - /* Array index: 0x1FAC */ 0x5940,0x2351, - /* Array index: 0x1FAC */ 0x5945,0x2624, - /* Array index: 0x1FAC */ 0x594A,0x2E5C, - /* Array index: 0x1FAC */ 0x5953,0x2962, - /* Array index: 0x1FAC */ 0x595C,0x3450, - /* Array index: 0x1FAC */ 0x5961,0x3A76, - /* Array index: 0x1FAC */ 0x596B,0x4951, - /* Array index: 0x1FAC */ 0x5977,0x2231, - /* Array index: 0x1FAC */ 0x5985,0x222E, - /* Array index: 0x1FAC */ 0x5997,0x2355, - /* Array index: 0x1FAC */ 0x5998,0x2353, - /* Array index: 0x1FAC */ 0x59A6,0x2352, - /* Array index: 0x1FAC */ 0x59A7,0x235A, - /* Array index: 0x1FAC */ 0x59BA,0x2626, - /* Array index: 0x1FAC */ 0x59BC,0x262D, - /* Array index: 0x1FAC */ 0x59BD,0x2631, - /* Array index: 0x1FAC */ 0x59C0,0x2632, - /* Array index: 0x1FAC */ 0x59C1,0x262B, - /* Array index: 0x1FAC */ 0x59C3,0x262E, - /* Array index: 0x1FAC */ 0x59C7,0x2635, - /* Array index: 0x1FAC */ 0x59C8,0x2633, - /* Array index: 0x1FAC */ 0x59CC,0x262A, - /* Array index: 0x1FAC */ 0x59CE,0x2628, - /* Array index: 0x1FAC */ 0x59CF,0x2627, - /* Array index: 0x1FAC */ 0x59D6,0x262F, - /* Array index: 0x1FAC */ 0x59DB,0x2970, - /* Array index: 0x1FAC */ 0x59E4,0x296D, - /* Array index: 0x1FAC */ 0x59E9,0x2971, - /* Array index: 0x1FAC */ 0x5A0A,0x2E64, - /* Array index: 0x1FAC */ 0x5A0F,0x2E62, - /* Array index: 0x1FAC */ 0x5A1E,0x2E65, - /* Array index: 0x1FAC */ 0x5A2D,0x2E5F, - /* Array index: 0x1FAC */ 0x5A2E,0x2E60, - /* Array index: 0x1FAC */ 0x5A33,0x2E66, - /* Array index: 0x1FAC */ 0x5A3E,0x3467, - /* Array index: 0x1FAC */ 0x5A64,0x345E, - /* Array index: 0x1FAC */ 0x5A65,0x345B, - /* Array index: 0x1FAC */ 0x5A67,0x3454, - /* Array index: 0x1FAC */ 0x5A69,0x346C, - /* Array index: 0x1FAC */ 0x5A6C,0x345C, - /* Array index: 0x1FAC */ 0x5A6D,0x3458, - /* Array index: 0x1FAC */ 0x5A70,0x346B, - /* Array index: 0x1FAC */ 0x5A83,0x3B2A, - /* Array index: 0x1FAC */ 0x5A84,0x3B27, - /* Array index: 0x1FAC */ 0x5AA2,0x3A7B, - /* Array index: 0x1FAC */ 0x5AA5,0x3B22, - /* Array index: 0x1FAC */ 0x5AA6,0x3A7E, - /* Array index: 0x1FAC */ 0x5AA9,0x3B2C, - /* Array index: 0x1FAC */ 0x5ABF,0x4242, - /* Array index: 0x1FAC */ 0x5AC0,0x4247, - /* Array index: 0x1FAC */ 0x5AD5,0x4955, - /* Array index: 0x1FAC */ 0x5AE5,0x4954, - /* Array index: 0x1FAC */ 0x5AFD,0x4F7D, - /* Array index: 0x1FAC */ 0x5B0F,0x5029, - /* Array index: 0x1FAC */ 0x5B10,0x5661, - /* Array index: 0x1FAC */ 0x5B1E,0x5666, - /* Array index: 0x1FAC */ 0x5B20,0x5665, - /* Array index: 0x1FAC */ 0x5B21,0x565E, - /* Array index: 0x1FAC */ 0x5B32,0x5C5C, - /* Array index: 0x1FAC */ 0x5B45,0x686F, - /* Array index: 0x1FAC */ 0x5B56,0x2233, - /* Array index: 0x1FAC */ 0x5B62,0x2636, - /* Array index: 0x1FAC */ 0x5B65,0x2637, - /* Array index: 0x1FAC */ 0x5B6C,0x2E67, - /* Array index: 0x1FAC */ 0x5B6E,0x3473, - /* Array index: 0x1FAC */ 0x5B72,0x3472, - /* Array index: 0x1FAC */ 0x5B77,0x4964, - /* Array index: 0x1FAC */ 0x5B7B,0x5C63, - /* Array index: 0x1FAC */ 0x5B81,0x2153, - /* Array index: 0x1FAC */ 0x5B84,0x2154, - /* Array index: 0x1FAC */ 0x5B8E,0x235C, - /* Array index: 0x1FAC */ 0x5B92,0x235D, - /* Array index: 0x1FAC */ 0x5B93,0x2638, - /* Array index: 0x1FAC */ 0x5B95,0x2639, - /* Array index: 0x1FAC */ 0x5BA7,0x2E68, - /* Array index: 0x1FAC */ 0x5BA8,0x2978, - /* Array index: 0x1FAC */ 0x5BAC,0x2E6A, - /* Array index: 0x1FAC */ 0x5BAD,0x2E69, - /* Array index: 0x1FAC */ 0x5BC0,0x3475, - /* Array index: 0x1FAC */ 0x5BC1,0x3474, - /* Array index: 0x1FAC */ 0x5BD1,0x3B38, - /* Array index: 0x1FAC */ 0x5BD4,0x3B37, - /* Array index: 0x1FAC */ 0x5BD6,0x424E, - /* Array index: 0x1FAC */ 0x5BD8,0x424F, - /* Array index: 0x1FAC */ 0x5BD9,0x4250, - /* Array index: 0x1FAC */ 0x5BE0,0x4965, - /* Array index: 0x1FAC */ 0x5BE3,0x4966, - /* Array index: 0x1FAC */ 0x5BEA,0x3B34, - /* Array index: 0x1FAC */ 0x5BEF,0x5667, - /* Array index: 0x1FAC */ 0x5BF1,0x5C64, - /* Array index: 0x1FAC */ 0x5BF2,0x5C65, - /* Array index: 0x1FAC */ 0x5C03,0x2E6B, - /* Array index: 0x1FAC */ 0x5C0C,0x3B3B, - /* Array index: 0x1FAC */ 0x5C10,0x213C, - /* Array index: 0x1FAC */ 0x5C12,0x2155, - /* Array index: 0x1FAC */ 0x5C15,0x2234, - /* Array index: 0x1FAC */ 0x5C1F,0x4251, - /* Array index: 0x1FAC */ 0x5C25,0x2235, - /* Array index: 0x1FAC */ 0x5C28,0x235E, - /* Array index: 0x1FAC */ 0x5C2A,0x235F, - /* Array index: 0x1FAC */ 0x5C30,0x3B3C, - /* Array index: 0x1FAC */ 0x5C33,0x4252, - /* Array index: 0x1FAC */ 0x5C3B,0x2156, - /* Array index: 0x1FAC */ 0x5C44,0x263A, - /* Array index: 0x1FAC */ 0x5C47,0x263B, - /* Array index: 0x1FAC */ 0x5C4C,0x2979, - /* Array index: 0x1FAC */ 0x5C54,0x2E6D, - /* Array index: 0x1FAC */ 0x5C56,0x2E6C, - /* Array index: 0x1FAC */ 0x5C59,0x3476, - /* Array index: 0x1FAC */ 0x5C63,0x4967, - /* Array index: 0x1FAC */ 0x5C67,0x502A, - /* Array index: 0x1FAC */ 0x5C69,0x614E, - /* Array index: 0x1FAC */ 0x5C6A,0x614F, - /* Array index: 0x1FAC */ 0x5C6D,0x7036, - /* Array index: 0x1FAC */ 0x5C6E,0x212B, - /* Array index: 0x1FAC */ 0x5C73,0x2158, - /* Array index: 0x1FAC */ 0x5C74,0x2157, - /* Array index: 0x1FAC */ 0x5C9D,0x2649, - /* Array index: 0x1FAC */ 0x5CB5,0x263F, - /* Array index: 0x1FAC */ 0x5CB6,0x264B, - /* Array index: 0x1FAC */ 0x5CEC,0x2E6E, - /* Array index: 0x1FAC */ 0x5CEE,0x2E70, - /* Array index: 0x1FAC */ 0x5CF1,0x2E71, - /* Array index: 0x1FAC */ 0x5CFF,0x2E6F, - /* Array index: 0x1FAC */ 0x5D00,0x2E73, - /* Array index: 0x1FAC */ 0x5D12,0x3525, - /* Array index: 0x1FAC */ 0x5D1A,0x347A, - /* Array index: 0x1FAC */ 0x5D23,0x3526, - /* Array index: 0x1FAC */ 0x5D25,0x3522, - /* Array index: 0x1FAC */ 0x5D26,0x3521, - /* Array index: 0x1FAC */ 0x5D28,0x347D, - /* Array index: 0x1FAC */ 0x5D4E,0x3B45, - /* Array index: 0x1FAC */ 0x5D51,0x3B44, - /* Array index: 0x1FAC */ 0x5D52,0x3B49, - /* Array index: 0x1FAC */ 0x5D55,0x3B46, - /* Array index: 0x1FAC */ 0x5D59,0x3B4C, - /* Array index: 0x1FAC */ 0x5D5E,0x4259, - /* Array index: 0x1FAC */ 0x5D62,0x425C, - /* Array index: 0x1FAC */ 0x5D63,0x4254, - /* Array index: 0x1FAC */ 0x5D65,0x4256, - /* Array index: 0x1FAC */ 0x5D67,0x425B, - /* Array index: 0x1FAC */ 0x5D68,0x425A, - /* Array index: 0x1FAC */ 0x5D6B,0x3B3F, - /* Array index: 0x1FAC */ 0x5D6C,0x4258, - /* Array index: 0x1FAC */ 0x5D71,0x4253, - /* Array index: 0x1FAC */ 0x5D72,0x4257, - /* Array index: 0x1FAC */ 0x5D77,0x496E, - /* Array index: 0x1FAC */ 0x5D8D,0x4974, - /* Array index: 0x1FAC */ 0x5D92,0x502E, - /* Array index: 0x1FAC */ 0x5D93,0x5030, - /* Array index: 0x1FAC */ 0x5D95,0x5031, - /* Array index: 0x1FAC */ 0x5D97,0x502C, - /* Array index: 0x1FAC */ 0x5D99,0x502B, - /* Array index: 0x1FAC */ 0x5D9A,0x5035, - /* Array index: 0x1FAC */ 0x5DC0,0x6150, - /* Array index: 0x1FAC */ 0x5DC2,0x643E, - /* Array index: 0x1FAC */ 0x5DC3,0x6549, - /* Array index: 0x1FAC */ 0x5DC6,0x6870, - /* Array index: 0x1FAC */ 0x5DC7,0x6871, - /* Array index: 0x1FAC */ 0x5DCB,0x6B57, - /* Array index: 0x1FAC */ 0x5DCF,0x6B58, - /* Array index: 0x1FAC */ 0x5DD1,0x6D4C, - /* Array index: 0x1FAC */ 0x5DD5,0x6D4B, - /* Array index: 0x1FAC */ 0x5DD8,0x6F25, - /* Array index: 0x1FAC */ 0x5DDF,0x223A, - /* Array index: 0x1FAC */ 0x5DE0,0x236A, - /* Array index: 0x1FAC */ 0x5DF0,0x425D, - /* Array index: 0x1FAC */ 0x5DF9,0x2A30, - /* Array index: 0x1FAC */ 0x5DFF,0x213D, - /* Array index: 0x1FAC */ 0x5E04,0x2159, - /* Array index: 0x1FAC */ 0x5E0A,0x236B, - /* Array index: 0x1FAC */ 0x5E0E,0x236C, - /* Array index: 0x1FAC */ 0x5E14,0x264F, - /* Array index: 0x1FAC */ 0x5E17,0x264E, - /* Array index: 0x1FAC */ 0x5E19,0x2650, - /* Array index: 0x1FAC */ 0x5E28,0x2E76, - /* Array index: 0x1FAC */ 0x5E29,0x2E75, - /* Array index: 0x1FAC */ 0x5E34,0x352A, - /* Array index: 0x1FAC */ 0x5E3E,0x3529, - /* Array index: 0x1FAC */ 0x5E41,0x3B57, - /* Array index: 0x1FAC */ 0x5E44,0x3B56, - /* Array index: 0x1FAC */ 0x5E53,0x4979, - /* Array index: 0x1FAC */ 0x5E58,0x4977, - /* Array index: 0x1FAC */ 0x5E59,0x4978, - /* Array index: 0x1FAC */ 0x5E5C,0x503A, - /* Array index: 0x1FAC */ 0x5E5D,0x5038, - /* Array index: 0x1FAC */ 0x5E60,0x5039, - /* Array index: 0x1FAC */ 0x5E75,0x223B, - /* Array index: 0x1FAC */ 0x5E80,0x215A, - /* Array index: 0x1FAC */ 0x5E82,0x215B, - /* Array index: 0x1FAC */ 0x5E84,0x223C, - /* Array index: 0x1FAC */ 0x5E9B,0x2A39, - /* Array index: 0x1FAC */ 0x5EA8,0x2E77, - /* Array index: 0x1FAC */ 0x5EAA,0x2E79, - /* Array index: 0x1FAC */ 0x5EAC,0x2E7A, - /* Array index: 0x1FAC */ 0x5EB9,0x352D, - /* Array index: 0x1FAC */ 0x5ECB,0x4266, - /* Array index: 0x1FAC */ 0x5ECC,0x4264, - /* Array index: 0x1FAC */ 0x5ECE,0x497D, - /* Array index: 0x1FAC */ 0x5EE1,0x503E, - /* Array index: 0x1FAC */ 0x5F02,0x223D, - /* Array index: 0x1FAC */ 0x5F05,0x2372, - /* Array index: 0x1FAC */ 0x5F07,0x2A3C, - /* Array index: 0x1FAC */ 0x5F1A,0x223E, - /* Array index: 0x1FAC */ 0x5F1D,0x2373, - /* Array index: 0x1FAC */ 0x5F28,0x2651, - /* Array index: 0x1FAC */ 0x5F2E,0x2A3D, - /* Array index: 0x1FAC */ 0x5F30,0x2E7C, - /* Array index: 0x1FAC */ 0x5F33,0x2E7B, - /* Array index: 0x1FAC */ 0x5F36,0x3530, - /* Array index: 0x1FAC */ 0x5F38,0x3531, - /* Array index: 0x1FAC */ 0x5F40,0x4268, - /* Array index: 0x1FAC */ 0x5F43,0x4A26, - /* Array index: 0x1FAC */ 0x5F44,0x4A25, - /* Array index: 0x1FAC */ 0x5F49,0x503F, - /* Array index: 0x1FAC */ 0x5F4B,0x567E, - /* Array index: 0x1FAC */ 0x5F4F,0x6F27, - /* Array index: 0x1FAC */ 0x5F54,0x2655, - /* Array index: 0x1FAC */ 0x5F56,0x2A3E, - /* Array index: 0x1FAC */ 0x5F58,0x3B58, - /* Array index: 0x1FAC */ 0x5F67,0x2E7D, - /* Array index: 0x1FAC */ 0x5F6F,0x4A27, - /* Array index: 0x1FAC */ 0x5F73,0x212C, - /* Array index: 0x1FAC */ 0x5F74,0x223F, - /* Array index: 0x1FAC */ 0x5F76,0x2375, - /* Array index: 0x1FAC */ 0x5F78,0x2374, - /* Array index: 0x1FAC */ 0x5F7D,0x2658, - /* Array index: 0x1FAC */ 0x5F7E,0x2657, - /* Array index: 0x1FAC */ 0x5F82,0x2656, - /* Array index: 0x1FAC */ 0x5F86,0x2A3F, - /* Array index: 0x1FAC */ 0x5F96,0x3533, - /* Array index: 0x1FAC */ 0x5F9B,0x3532, - /* Array index: 0x1FAC */ 0x5F9F,0x3534, - /* Array index: 0x1FAC */ 0x5FA5,0x3B5A, - /* Array index: 0x1FAC */ 0x5FA6,0x3B59, - /* Array index: 0x1FAC */ 0x5FAB,0x3B5B, - /* Array index: 0x1FAC */ 0x5FAD,0x426A, - /* Array index: 0x1FAC */ 0x5FAF,0x4269, - /* Array index: 0x1FAC */ 0x5FB2,0x5040, - /* Array index: 0x1FAC */ 0x5FB6,0x4A28, - /* Array index: 0x1FAC */ 0x5FC9,0x215C, - /* Array index: 0x1FAC */ 0x5FDE,0x2659, - /* Array index: 0x1FAC */ 0x5FE8,0x237A, - /* Array index: 0x1FAC */ 0x5FF3,0x237C, - /* Array index: 0x1FAC */ 0x5FF4,0x2427, - /* Array index: 0x1FAC */ 0x5FF7,0x2424, - /* Array index: 0x1FAC */ 0x5FFA,0x2422, - /* Array index: 0x1FAC */ 0x5FFB,0x2425, - /* Array index: 0x1FAC */ 0x6000,0x2426, - /* Array index: 0x1FAC */ 0x6017,0x2662, - /* Array index: 0x1FAC */ 0x6019,0x265D, - /* Array index: 0x1FAC */ 0x601A,0x2664, - /* Array index: 0x1FAC */ 0x601C,0x266F, - /* Array index: 0x1FAC */ 0x601E,0x2665, - /* Array index: 0x1FAC */ 0x6022,0x2667, - /* Array index: 0x1FAC */ 0x6024,0x2A4E, - /* Array index: 0x1FAC */ 0x6026,0x265C, - /* Array index: 0x1FAC */ 0x6037,0x2A40, - /* Array index: 0x1FAC */ 0x6039,0x2A41, - /* Array index: 0x1FAC */ 0x604C,0x2A4A, - /* Array index: 0x1FAC */ 0x6053,0x2A46, - /* Array index: 0x1FAC */ 0x6054,0x2A42, - /* Array index: 0x1FAC */ 0x6058,0x2A50, - /* Array index: 0x1FAC */ 0x6066,0x2A51, - /* Array index: 0x1FAC */ 0x6067,0x2F22, - /* Array index: 0x1FAC */ 0x606E,0x2A52, - /* Array index: 0x1FAC */ 0x6072,0x2A43, - /* Array index: 0x1FAC */ 0x6080,0x2F26, - /* Array index: 0x1FAC */ 0x6081,0x2F28, - /* Array index: 0x1FAC */ 0x6083,0x2F2A, - /* Array index: 0x1FAC */ 0x608E,0x2F30, - /* Array index: 0x1FAC */ 0x6090,0x3536, - /* Array index: 0x1FAC */ 0x6092,0x2F27, - /* Array index: 0x1FAC */ 0x6095,0x2F2B, - /* Array index: 0x1FAC */ 0x6097,0x2F2D, - /* Array index: 0x1FAC */ 0x60A2,0x2F24, - /* Array index: 0x1FAC */ 0x60B0,0x3539, - /* Array index: 0x1FAC */ 0x60B1,0x3542, - /* Array index: 0x1FAC */ 0x60B7,0x3544, - /* Array index: 0x1FAC */ 0x60B9,0x3B5D, - /* Array index: 0x1FAC */ 0x60BA,0x353A, - /* Array index: 0x1FAC */ 0x60D3,0x353B, - /* Array index: 0x1FAC */ 0x60D4,0x353C, - /* Array index: 0x1FAC */ 0x60D9,0x353F, - /* Array index: 0x1FAC */ 0x60DB,0x3543, - /* Array index: 0x1FAC */ 0x60DD,0x3540, - /* Array index: 0x1FAC */ 0x60E2,0x3B5F, - /* Array index: 0x1FAC */ 0x60E4,0x353E, - /* Array index: 0x1FAC */ 0x60F2,0x3B63, - /* Array index: 0x1FAC */ 0x60F5,0x3B67, - /* Array index: 0x1FAC */ 0x60F7,0x426B, - /* Array index: 0x1FAC */ 0x60F8,0x3B69, - /* Array index: 0x1FAC */ 0x60FC,0x3B6A, - /* Array index: 0x1FAC */ 0x60FE,0x3B6B, - /* Array index: 0x1FAC */ 0x60FF,0x3B71, - /* Array index: 0x1FAC */ 0x610A,0x3B64, - /* Array index: 0x1FAC */ 0x610B,0x3B73, - /* Array index: 0x1FAC */ 0x6110,0x3B70, - /* Array index: 0x1FAC */ 0x6113,0x3B68, - /* Array index: 0x1FAC */ 0x6114,0x3B62, - /* Array index: 0x1FAC */ 0x6116,0x3B65, - /* Array index: 0x1FAC */ 0x6118,0x3B6E, - /* Array index: 0x1FAC */ 0x611D,0x3B6F, - /* Array index: 0x1FAC */ 0x6132,0x4271, - /* Array index: 0x1FAC */ 0x6136,0x4270, - /* Array index: 0x1FAC */ 0x613B,0x4A39, - /* Array index: 0x1FAC */ 0x6140,0x4277, - /* Array index: 0x1FAC */ 0x6141,0x4A2B, - /* Array index: 0x1FAC */ 0x6145,0x426F, - /* Array index: 0x1FAC */ 0x6146,0x4273, - /* Array index: 0x1FAC */ 0x6149,0x426C, - /* Array index: 0x1FAC */ 0x614A,0x426D, - /* Array index: 0x1FAC */ 0x614F,0x4275, - /* Array index: 0x1FAC */ 0x615B,0x4A37, - /* Array index: 0x1FAC */ 0x615E,0x4A2C, - /* Array index: 0x1FAC */ 0x6161,0x4A3B, - /* Array index: 0x1FAC */ 0x6165,0x4A38, - /* Array index: 0x1FAC */ 0x6166,0x5051, - /* Array index: 0x1FAC */ 0x616A,0x4A3A, - /* Array index: 0x1FAC */ 0x616C,0x4A32, - /* Array index: 0x1FAC */ 0x6179,0x5043, - /* Array index: 0x1FAC */ 0x617A,0x4A36, - /* Array index: 0x1FAC */ 0x6180,0x4A33, - /* Array index: 0x1FAC */ 0x6183,0x5042, - /* Array index: 0x1FAC */ 0x6192,0x504D, - /* Array index: 0x1FAC */ 0x6193,0x5049, - /* Array index: 0x1FAC */ 0x6196,0x5725, - /* Array index: 0x1FAC */ 0x619B,0x5048, - /* Array index: 0x1FAC */ 0x619D,0x5723, - /* Array index: 0x1FAC */ 0x619F,0x504C, - /* Array index: 0x1FAC */ 0x61A1,0x504F, - /* Array index: 0x1FAC */ 0x61A2,0x5046, - /* Array index: 0x1FAC */ 0x61A8,0x5724, - /* Array index: 0x1FAC */ 0x61AA,0x504E, - /* Array index: 0x1FAC */ 0x61B8,0x572D, - /* Array index: 0x1FAC */ 0x61BA,0x572B, - /* Array index: 0x1FAC */ 0x61BC,0x5C6C, - /* Array index: 0x1FAC */ 0x61BF,0x572C, - /* Array index: 0x1FAC */ 0x61C1,0x5729, - /* Array index: 0x1FAC */ 0x61C3,0x5C6A, - /* Array index: 0x1FAC */ 0x61C5,0x5726, - /* Array index: 0x1FAC */ 0x61C6,0x5728, - /* Array index: 0x1FAC */ 0x61CC,0x572A, - /* Array index: 0x1FAC */ 0x61D6,0x615B, - /* Array index: 0x1FAC */ 0x61D8,0x6153, - /* Array index: 0x1FAC */ 0x61F9,0x6876, - /* Array index: 0x1FAC */ 0x61FB,0x654C, - /* Array index: 0x1FAC */ 0x61FD,0x6B5A, - /* Array index: 0x1FAC */ 0x6201,0x6F28, - /* Array index: 0x1FAC */ 0x6203,0x6F29, - /* Array index: 0x1FAC */ 0x6204,0x6F2A, - /* Array index: 0x1FAC */ 0x6207,0x722A, - /* Array index: 0x1FAC */ 0x6209,0x215D, - /* Array index: 0x1FAC */ 0x6214,0x2670, - /* Array index: 0x1FAC */ 0x6219,0x2F31, - /* Array index: 0x1FAC */ 0x6220,0x4278, - /* Array index: 0x1FAC */ 0x623A,0x2428, - /* Array index: 0x1FAC */ 0x623D,0x2671, - /* Array index: 0x1FAC */ 0x6242,0x2A53, - /* Array index: 0x1FAC */ 0x6243,0x2A54, - /* Array index: 0x1FAC */ 0x6246,0x2F32, - /* Array index: 0x1FAC */ 0x624A,0x3B74, - /* Array index: 0x1FAC */ 0x6250,0x215E, - /* Array index: 0x1FAC */ 0x6259,0x2249, - /* Array index: 0x1FAC */ 0x625A,0x224B, - /* Array index: 0x1FAC */ 0x625C,0x2243, - /* Array index: 0x1FAC */ 0x6277,0x2435, - /* Array index: 0x1FAC */ 0x627A,0x2431, - /* Array index: 0x1FAC */ 0x627B,0x2430, - /* Array index: 0x1FAC */ 0x627D,0x2436, - /* Array index: 0x1FAC */ 0x6281,0x2433, - /* Array index: 0x1FAC */ 0x6283,0x2429, - /* Array index: 0x1FAC */ 0x6287,0x242E, - /* Array index: 0x1FAC */ 0x6288,0x2434, - /* Array index: 0x1FAC */ 0x628C,0x242A, - /* Array index: 0x1FAC */ 0x628E,0x242B, - /* Array index: 0x1FAC */ 0x628F,0x242C, - /* Array index: 0x1FAC */ 0x6294,0x242D, - /* Array index: 0x1FAC */ 0x62BB,0x267C, - /* Array index: 0x1FAC */ 0x62BE,0x2675, - /* Array index: 0x1FAC */ 0x62CA,0x2678, - /* Array index: 0x1FAC */ 0x62CF,0x2A55, - /* Array index: 0x1FAC */ 0x62D1,0x2674, - /* Array index: 0x1FAC */ 0x62EB,0x2A5B, - /* Array index: 0x1FAC */ 0x62F0,0x2A67, - /* Array index: 0x1FAC */ 0x62F2,0x2F33, - /* Array index: 0x1FAC */ 0x6300,0x2A61, - /* Array index: 0x1FAC */ 0x6303,0x2A5A, - /* Array index: 0x1FAC */ 0x6329,0x2F40, - /* Array index: 0x1FAC */ 0x632C,0x2F36, - /* Array index: 0x1FAC */ 0x632D,0x2F46, - /* Array index: 0x1FAC */ 0x6351,0x2F4A, - /* Array index: 0x1FAC */ 0x6365,0x354B, - /* Array index: 0x1FAC */ 0x6375,0x355B, - /* Array index: 0x1FAC */ 0x6378,0x3563, - /* Array index: 0x1FAC */ 0x637C,0x355F, - /* Array index: 0x1FAC */ 0x637D,0x354E, - /* Array index: 0x1FAC */ 0x6381,0x3565, - /* Array index: 0x1FAC */ 0x6382,0x354D, - /* Array index: 0x1FAC */ 0x6385,0x3564, - /* Array index: 0x1FAC */ 0x6387,0x3557, - /* Array index: 0x1FAC */ 0x638A,0x354C, - /* Array index: 0x1FAC */ 0x6394,0x3B75, - /* Array index: 0x1FAC */ 0x6397,0x3553, - /* Array index: 0x1FAC */ 0x63A4,0x3560, - /* Array index: 0x1FAC */ 0x63BD,0x354F, - /* Array index: 0x1FAC */ 0x63BE,0x3C29, - /* Array index: 0x1FAC */ 0x63D3,0x3C2E, - /* Array index: 0x1FAC */ 0x63EB,0x4321, - /* Array index: 0x1FAC */ 0x6415,0x432A, - /* Array index: 0x1FAC */ 0x6418,0x432B, - /* Array index: 0x1FAC */ 0x641A,0x4338, - /* Array index: 0x1FAC */ 0x641B,0x433E, - /* Array index: 0x1FAC */ 0x642B,0x4A40, - /* Array index: 0x1FAC */ 0x6433,0x4327, - /* Array index: 0x1FAC */ 0x6435,0x4335, - /* Array index: 0x1FAC */ 0x6437,0x432D, - /* Array index: 0x1FAC */ 0x6439,0x432C, - /* Array index: 0x1FAC */ 0x644B,0x4A50, - /* Array index: 0x1FAC */ 0x644D,0x4A41, - /* Array index: 0x1FAC */ 0x644E,0x4A4C, - /* Array index: 0x1FAC */ 0x6450,0x4A53, - /* Array index: 0x1FAC */ 0x6453,0x4A51, - /* Array index: 0x1FAC */ 0x6465,0x4A59, - /* Array index: 0x1FAC */ 0x6466,0x4A4A, - /* Array index: 0x1FAC */ 0x6468,0x5061, - /* Array index: 0x1FAC */ 0x646B,0x4A57, - /* Array index: 0x1FAC */ 0x646C,0x4A56, - /* Array index: 0x1FAC */ 0x646E,0x5054, - /* Array index: 0x1FAC */ 0x647D,0x4A48, - /* Array index: 0x1FAC */ 0x647F,0x4A54, - /* Array index: 0x1FAC */ 0x6482,0x4A4D, - /* Array index: 0x1FAC */ 0x6485,0x5058, - /* Array index: 0x1FAC */ 0x648F,0x505B, - /* Array index: 0x1FAC */ 0x64A3,0x505F, - /* Array index: 0x1FAC */ 0x64A6,0x4A4B, - /* Array index: 0x1FAC */ 0x64B1,0x5062, - /* Array index: 0x1FAC */ 0x64BD,0x5734, - /* Array index: 0x1FAC */ 0x64C3,0x5736, - /* Array index: 0x1FAC */ 0x64C9,0x5733, - /* Array index: 0x1FAC */ 0x64CF,0x5732, - /* Array index: 0x1FAC */ 0x64D0,0x5731, - /* Array index: 0x1FAC */ 0x64D6,0x5730, - /* Array index: 0x1FAC */ 0x64D7,0x572F, - /* Array index: 0x1FAC */ 0x64D9,0x5739, - /* Array index: 0x1FAC */ 0x64DB,0x5737, - /* Array index: 0x1FAC */ 0x64E3,0x5C75, - /* Array index: 0x1FAC */ 0x64E4,0x5C77, - /* Array index: 0x1FAC */ 0x64E8,0x5C78, - /* Array index: 0x1FAC */ 0x64E9,0x5C74, - /* Array index: 0x1FAC */ 0x64EB,0x5C76, - /* Array index: 0x1FAC */ 0x64EF,0x5C73, - /* Array index: 0x1FAC */ 0x64F3,0x5738, - /* Array index: 0x1FAC */ 0x64F8,0x6160, - /* Array index: 0x1FAC */ 0x64FC,0x6163, - /* Array index: 0x1FAC */ 0x64FD,0x615F, - /* Array index: 0x1FAC */ 0x64FF,0x615D, - /* Array index: 0x1FAC */ 0x6501,0x6161, - /* Array index: 0x1FAC */ 0x6503,0x6162, - /* Array index: 0x1FAC */ 0x6504,0x615E, - /* Array index: 0x1FAC */ 0x6507,0x654D, - /* Array index: 0x1FAC */ 0x6509,0x6550, - /* Array index: 0x1FAC */ 0x651B,0x6B5B, - /* Array index: 0x1FAC */ 0x6529,0x6F2B, - /* Array index: 0x1FAC */ 0x652D,0x7037, - /* Array index: 0x1FAC */ 0x652E,0x707D, - /* Array index: 0x1FAC */ 0x6532,0x3C37, - /* Array index: 0x1FAC */ 0x6533,0x573A, - /* Array index: 0x1FAC */ 0x6537,0x224D, - /* Array index: 0x1FAC */ 0x653D,0x2722, - /* Array index: 0x1FAC */ 0x6541,0x2A68, - /* Array index: 0x1FAC */ 0x6543,0x2A69, - /* Array index: 0x1FAC */ 0x6546,0x2F50, - /* Array index: 0x1FAC */ 0x654A,0x2F4F, - /* Array index: 0x1FAC */ 0x6553,0x3569, - /* Array index: 0x1FAC */ 0x655C,0x3C3B, - /* Array index: 0x1FAC */ 0x656F,0x4342, - /* Array index: 0x1FAC */ 0x6573,0x4A5B, - /* Array index: 0x1FAC */ 0x6576,0x5064, - /* Array index: 0x1FAC */ 0x6584,0x6553, - /* Array index: 0x1FAC */ 0x658C,0x3C3E, - /* Array index: 0x1FAC */ 0x6592,0x4343, - /* Array index: 0x1FAC */ 0x6594,0x6164, - /* Array index: 0x1FAC */ 0x6596,0x6F2D, - /* Array index: 0x1FAC */ 0x659D,0x3C3F, - /* Array index: 0x1FAC */ 0x659E,0x3C40, - /* Array index: 0x1FAC */ 0x65A0,0x4A5C, - /* Array index: 0x1FAC */ 0x65A2,0x573D, - /* Array index: 0x1FAC */ 0x65A8,0x2723, - /* Array index: 0x1FAC */ 0x65AA,0x2A6A, - /* Array index: 0x1FAC */ 0x65AE,0x3C41, - /* Array index: 0x1FAC */ 0x65B2,0x5068, - /* Array index: 0x1FAC */ 0x65B3,0x5069, - /* Array index: 0x1FAC */ 0x65B6,0x5C7B, - /* Array index: 0x1FAC */ 0x65B8,0x707E, - /* Array index: 0x1FAC */ 0x65BB,0x2724, - /* Array index: 0x1FAC */ 0x65BF,0x2A6B, - /* Array index: 0x1FAC */ 0x65CD,0x356A, - /* Array index: 0x1FAC */ 0x65D0,0x3C42, - /* Array index: 0x1FAC */ 0x65D2,0x3C43, - /* Array index: 0x1FAC */ 0x65D3,0x4344, - /* Array index: 0x1FAC */ 0x661C,0x2A70, - /* Array index: 0x1FAC */ 0x661D,0x2A76, - /* Array index: 0x1FAC */ 0x6621,0x2A6D, - /* Array index: 0x1FAC */ 0x6622,0x2A72, - /* Array index: 0x1FAC */ 0x6626,0x2A71, - /* Array index: 0x1FAC */ 0x662B,0x2A74, - /* Array index: 0x1FAC */ 0x662E,0x2A79, - /* Array index: 0x1FAC */ 0x6647,0x2F57, - /* Array index: 0x1FAC */ 0x664A,0x2F55, - /* Array index: 0x1FAC */ 0x6651,0x2F58, - /* Array index: 0x1FAC */ 0x6659,0x356E, - /* Array index: 0x1FAC */ 0x665B,0x356D, - /* Array index: 0x1FAC */ 0x665C,0x356F, - /* Array index: 0x1FAC */ 0x665F,0x2F56, - /* Array index: 0x1FAC */ 0x6661,0x356C, - /* Array index: 0x1FAC */ 0x6662,0x3570, - /* Array index: 0x1FAC */ 0x6665,0x356B, - /* Array index: 0x1FAC */ 0x666A,0x3C4A, - /* Array index: 0x1FAC */ 0x666C,0x3C45, - /* Array index: 0x1FAC */ 0x6671,0x3C48, - /* Array index: 0x1FAC */ 0x6672,0x3C4B, - /* Array index: 0x1FAC */ 0x6680,0x3C47, - /* Array index: 0x1FAC */ 0x6686,0x4345, - /* Array index: 0x1FAC */ 0x6690,0x4348, - /* Array index: 0x1FAC */ 0x6694,0x434C, - /* Array index: 0x1FAC */ 0x6695,0x4347, - /* Array index: 0x1FAC */ 0x6699,0x434B, - /* Array index: 0x1FAC */ 0x66A9,0x506C, - /* Array index: 0x1FAC */ 0x66AA,0x506F, - /* Array index: 0x1FAC */ 0x66AF,0x5070, - /* Array index: 0x1FAC */ 0x66B0,0x506B, - /* Array index: 0x1FAC */ 0x66B2,0x506D, - /* Array index: 0x1FAC */ 0x66B5,0x506A, - /* Array index: 0x1FAC */ 0x66B7,0x506E, - /* Array index: 0x1FAC */ 0x66CF,0x5743, - /* Array index: 0x1FAC */ 0x66D2,0x5C7D, - /* Array index: 0x1FAC */ 0x66D8,0x6168, - /* Array index: 0x1FAC */ 0x66DA,0x6166, - /* Array index: 0x1FAC */ 0x66DB,0x6167, - /* Array index: 0x1FAC */ 0x66DE,0x6556, - /* Array index: 0x1FAC */ 0x66E3,0x687D, - /* Array index: 0x1FAC */ 0x66E4,0x687E, - /* Array index: 0x1FAC */ 0x66E8,0x687C, - /* Array index: 0x1FAC */ 0x66EB,0x6F2E, - /* Array index: 0x1FAC */ 0x66ED,0x7038, - /* Array index: 0x1FAC */ 0x66EE,0x7039, - /* Array index: 0x1FAC */ 0x66F6,0x2732, - /* Array index: 0x1FAC */ 0x6701,0x3C4C, - /* Array index: 0x1FAC */ 0x6704,0x4A61, - /* Array index: 0x1FAC */ 0x6705,0x4A60, - /* Array index: 0x1FAC */ 0x670A,0x2733, - /* Array index: 0x1FAC */ 0x6718,0x3571, - /* Array index: 0x1FAC */ 0x6733,0x2257, - /* Array index: 0x1FAC */ 0x6745,0x243E, - /* Array index: 0x1FAC */ 0x6755,0x2441, - /* Array index: 0x1FAC */ 0x6759,0x2440, - /* Array index: 0x1FAC */ 0x675A,0x2446, - /* Array index: 0x1FAC */ 0x675D,0x2444, - /* Array index: 0x1FAC */ 0x676C,0x2735, - /* Array index: 0x1FAC */ 0x6774,0x273D, - /* Array index: 0x1FAC */ 0x6798,0x273A, - /* Array index: 0x1FAC */ 0x6799,0x2743, - /* Array index: 0x1FAC */ 0x679F,0x2741, - /* Array index: 0x1FAC */ 0x67AE,0x2B3D, - /* Array index: 0x1FAC */ 0x67B2,0x2B38, - /* Array index: 0x1FAC */ 0x67B3,0x2B2E, - /* Array index: 0x1FAC */ 0x67B5,0x2B2C, - /* Array index: 0x1FAC */ 0x67D8,0x2B25, - /* Array index: 0x1FAC */ 0x67DB,0x2B3F, - /* Array index: 0x1FAC */ 0x67DC,0x2B22, - /* Array index: 0x1FAC */ 0x67DF,0x2B2B, - /* Array index: 0x1FAC */ 0x6812,0x2F6E, - /* Array index: 0x1FAC */ 0x6814,0x2F6F, - /* Array index: 0x1FAC */ 0x6816,0x2F63, - /* Array index: 0x1FAC */ 0x681A,0x2F5C, - /* Array index: 0x1FAC */ 0x6825,0x2F75, - /* Array index: 0x1FAC */ 0x6826,0x2F70, - /* Array index: 0x1FAC */ 0x6828,0x2F71, - /* Array index: 0x1FAC */ 0x683A,0x2F74, - /* Array index: 0x1FAC */ 0x683B,0x2F60, - /* Array index: 0x1FAC */ 0x6844,0x2F6B, - /* Array index: 0x1FAC */ 0x6849,0x2F5D, - /* Array index: 0x1FAC */ 0x6896,0x362F, - /* Array index: 0x1FAC */ 0x689B,0x362E, - /* Array index: 0x1FAC */ 0x689C,0x3575, - /* Array index: 0x1FAC */ 0x68A0,0x3631, - /* Array index: 0x1FAC */ 0x68A3,0x357C, - /* Array index: 0x1FAC */ 0x68A4,0x3633, - /* Array index: 0x1FAC */ 0x68B2,0x3623, - /* Array index: 0x1FAC */ 0x68B4,0x3C63, - /* Array index: 0x1FAC */ 0x68CC,0x3C60, - /* Array index: 0x1FAC */ 0x68CE,0x3C70, - /* Array index: 0x1FAC */ 0x68E1,0x3C5E, - /* Array index: 0x1FAC */ 0x68E4,0x3C59, - /* Array index: 0x1FAC */ 0x68FC,0x3C6B, - /* Array index: 0x1FAC */ 0x68FD,0x3C6A, - /* Array index: 0x1FAC */ 0x6925,0x3C7B, - /* Array index: 0x1FAC */ 0x692A,0x3C51, - /* Array index: 0x1FAC */ 0x692F,0x4378, - /* Array index: 0x1FAC */ 0x695C,0x4373, - /* Array index: 0x1FAC */ 0x695F,0x4350, - /* Array index: 0x1FAC */ 0x6962,0x4353, - /* Array index: 0x1FAC */ 0x6965,0x4363, - /* Array index: 0x1FAC */ 0x6966,0x434F, - /* Array index: 0x1FAC */ 0x6969,0x4367, - /* Array index: 0x1FAC */ 0x696A,0x4357, - /* Array index: 0x1FAC */ 0x696C,0x4360, - /* Array index: 0x1FAC */ 0x6974,0x436E, - /* Array index: 0x1FAC */ 0x6976,0x436B, - /* Array index: 0x1FAC */ 0x6978,0x4365, - /* Array index: 0x1FAC */ 0x697A,0x435C, - /* Array index: 0x1FAC */ 0x697B,0x4379, - /* Array index: 0x1FAC */ 0x6983,0x452C, - /* Array index: 0x1FAC */ 0x699E,0x4B23, - /* Array index: 0x1FAC */ 0x69A0,0x4A66, - /* Array index: 0x1FAC */ 0x69A1,0x4B22, - /* Array index: 0x1FAC */ 0x69A4,0x4A77, - /* Array index: 0x1FAC */ 0x69A5,0x4B29, - /* Array index: 0x1FAC */ 0x69A7,0x4A6F, - /* Array index: 0x1FAC */ 0x69A9,0x4A71, - /* Array index: 0x1FAC */ 0x69AA,0x4B21, - /* Array index: 0x1FAC */ 0x69AC,0x4A6A, - /* Array index: 0x1FAC */ 0x69B9,0x4A79, - /* Array index: 0x1FAC */ 0x69C2,0x4B27, - /* Array index: 0x1FAC */ 0x69C4,0x4A75, - /* Array index: 0x1FAC */ 0x69C6,0x4B2A, - /* Array index: 0x1FAC */ 0x69C9,0x4A65, - /* Array index: 0x1FAC */ 0x69CA,0x4A7A, - /* Array index: 0x1FAC */ 0x69CE,0x4A67, - /* Array index: 0x1FAC */ 0x69CF,0x4A7C, - /* Array index: 0x1FAC */ 0x69D4,0x4A78, - /* Array index: 0x1FAC */ 0x69D9,0x4B24, - /* Array index: 0x1FAC */ 0x69EB,0x512E, - /* Array index: 0x1FAC */ 0x69EC,0x507B, - /* Array index: 0x1FAC */ 0x69EE,0x5124, - /* Array index: 0x1FAC */ 0x69F1,0x5077, - /* Array index: 0x1FAC */ 0x69F2,0x5123, - /* Array index: 0x1FAC */ 0x6A0D,0x512C, - /* Array index: 0x1FAC */ 0x6A0F,0x5133, - /* Array index: 0x1FAC */ 0x6A1B,0x507D, - /* Array index: 0x1FAC */ 0x6A1D,0x507E, - /* Array index: 0x1FAC */ 0x6A20,0x5079, - /* Array index: 0x1FAC */ 0x6A32,0x574D, - /* Array index: 0x1FAC */ 0x6A34,0x5749, - /* Array index: 0x1FAC */ 0x6A46,0x5768, - /* Array index: 0x1FAC */ 0x6A49,0x574B, - /* Array index: 0x1FAC */ 0x6A6D,0x5751, - /* Array index: 0x1FAC */ 0x6A6F,0x575F, - /* Array index: 0x1FAC */ 0x6A76,0x5752, - /* Array index: 0x1FAC */ 0x6A7F,0x5D31, - /* Array index: 0x1FAC */ 0x6A81,0x5D22, - /* Array index: 0x1FAC */ 0x6A83,0x5D2D, - /* Array index: 0x1FAC */ 0x6A85,0x5D34, - /* Array index: 0x1FAC */ 0x6A87,0x5D29, - /* Array index: 0x1FAC */ 0x6A89,0x5D24, - /* Array index: 0x1FAC */ 0x6A9A,0x5D33, - /* Array index: 0x1FAC */ 0x6A9B,0x5D26, - /* Array index: 0x1FAC */ 0x6A9E,0x5D28, - /* Array index: 0x1FAC */ 0x6A9F,0x5D25, - /* Array index: 0x1FAC */ 0x6AA1,0x5D27, - /* Array index: 0x1FAC */ 0x6AAD,0x6173, - /* Array index: 0x1FAC */ 0x6AB4,0x6172, - /* Array index: 0x1FAC */ 0x6ABD,0x616B, - /* Array index: 0x1FAC */ 0x6AD9,0x655B, - /* Array index: 0x1FAC */ 0x6AF8,0x6B5F, - /* Array index: 0x1FAC */ 0x6AF9,0x6925, - /* Array index: 0x1FAC */ 0x6AFC,0x6B5D, - /* Array index: 0x1FAC */ 0x6B00,0x6B60, - /* Array index: 0x1FAC */ 0x6B02,0x6B5C, - /* Array index: 0x1FAC */ 0x6B03,0x6B5E, - /* Array index: 0x1FAC */ 0x6B08,0x6D53, - /* Array index: 0x1FAC */ 0x6B09,0x6D54, - /* Array index: 0x1FAC */ 0x6B0B,0x6D52, - /* Array index: 0x1FAC */ 0x6B1E,0x722B, - /* Array index: 0x1FAC */ 0x6B25,0x274A, - /* Array index: 0x1FAC */ 0x6B28,0x2B46, - /* Array index: 0x1FAC */ 0x6B2C,0x2F77, - /* Array index: 0x1FAC */ 0x6B2D,0x2F79, - /* Array index: 0x1FAC */ 0x6B2F,0x2F78, - /* Array index: 0x1FAC */ 0x6B31,0x2F7A, - /* Array index: 0x1FAC */ 0x6B51,0x5139, - /* Array index: 0x1FAC */ 0x6B5B,0x5D37, - /* Array index: 0x1FAC */ 0x6B5E,0x6174, - /* Array index: 0x1FAC */ 0x6B60,0x6564, - /* Array index: 0x1FAC */ 0x6B6D,0x2F7C, - /* Array index: 0x1FAC */ 0x6B76,0x5259, - /* Array index: 0x1FAC */ 0x6B7E,0x274C, - /* Array index: 0x1FAC */ 0x6B80,0x274B, - /* Array index: 0x1FAC */ 0x6B82,0x2B47, - /* Array index: 0x1FAC */ 0x6B84,0x2B48, - /* Array index: 0x1FAC */ 0x6B88,0x2F7E, - /* Array index: 0x1FAC */ 0x6BB0,0x6565, - /* Array index: 0x1FAC */ 0x6BB3,0x213F, - /* Array index: 0x1FAC */ 0x6BB6,0x2B49, - /* Array index: 0x1FAC */ 0x6BBD,0x3D27, - /* Array index: 0x1FAC */ 0x6BD0,0x2448, - /* Array index: 0x1FAC */ 0x6BD6,0x2B4A, - /* Array index: 0x1FAC */ 0x6BD8,0x2B4B, - /* Array index: 0x1FAC */ 0x6BDE,0x274D, - /* Array index: 0x1FAC */ 0x6BF0,0x3D28, - /* Array index: 0x1FAC */ 0x6BF2,0x3D29, - /* Array index: 0x1FAC */ 0x6BF3,0x3D2A, - /* Array index: 0x1FAC */ 0x6C1D,0x274E, - /* Array index: 0x1FAC */ 0x6C20,0x2B4D, - /* Array index: 0x1FAC */ 0x6C21,0x2B4E, - /* Array index: 0x1FAC */ 0x6C25,0x3027, - /* Array index: 0x1FAC */ 0x6C2A,0x3643, - /* Array index: 0x1FAC */ 0x6C30,0x3D2B, - /* Array index: 0x1FAC */ 0x6C36,0x2160, - /* Array index: 0x1FAC */ 0x6C3B,0x2163, - /* Array index: 0x1FAC */ 0x6C3F,0x2162, - /* Array index: 0x1FAC */ 0x6C43,0x2161, - /* Array index: 0x1FAC */ 0x6C46,0x2259, - /* Array index: 0x1FAC */ 0x6C4F,0x225C, - /* Array index: 0x1FAC */ 0x6C52,0x225A, - /* Array index: 0x1FAC */ 0x6C54,0x225E, - /* Array index: 0x1FAC */ 0x6C5C,0x225B, - /* Array index: 0x1FAC */ 0x6C78,0x244B, - /* Array index: 0x1FAC */ 0x6C7B,0x245C, - /* Array index: 0x1FAC */ 0x6C80,0x2765, - /* Array index: 0x1FAC */ 0x6C84,0x244E, - /* Array index: 0x1FAC */ 0x6C87,0x2456, - /* Array index: 0x1FAC */ 0x6C8A,0x2763, - /* Array index: 0x1FAC */ 0x6C8B,0x244F, - /* Array index: 0x1FAC */ 0x6C8E,0x245D, - /* Array index: 0x1FAC */ 0x6C8F,0x2450, - /* Array index: 0x1FAC */ 0x6C93,0x274F, - /* Array index: 0x1FAC */ 0x6C95,0x2457, - /* Array index: 0x1FAC */ 0x6C9A,0x2454, - /* Array index: 0x1FAC */ 0x6C9C,0x2458, - /* Array index: 0x1FAC */ 0x6C9D,0x2764, - /* Array index: 0x1FAC */ 0x6CAD,0x2756, - /* Array index: 0x1FAC */ 0x6CB0,0x276B, - /* Array index: 0x1FAC */ 0x6CB4,0x2762, - /* Array index: 0x1FAC */ 0x6CB6,0x2754, - /* Array index: 0x1FAC */ 0x6CB7,0x2758, - /* Array index: 0x1FAC */ 0x6CBA,0x275B, - /* Array index: 0x1FAC */ 0x6CC0,0x2767, - /* Array index: 0x1FAC */ 0x6CC2,0x275A, - /* Array index: 0x1FAC */ 0x6CC3,0x275C, - /* Array index: 0x1FAC */ 0x6CC6,0x275D, - /* Array index: 0x1FAC */ 0x6CC7,0x276A, - /* Array index: 0x1FAC */ 0x6CD9,0x2753, - /* Array index: 0x1FAC */ 0x6CDA,0x2B57, - /* Array index: 0x1FAC */ 0x6CDD,0x2761, - /* Array index: 0x1FAC */ 0x6CDE,0x2766, - /* Array index: 0x1FAC */ 0x6CE7,0x2757, - /* Array index: 0x1FAC */ 0x6CF2,0x275F, - /* Array index: 0x1FAC */ 0x6CF9,0x276C, - /* Array index: 0x1FAC */ 0x6D1D,0x2B5F, - /* Array index: 0x1FAC */ 0x6D1F,0x2B52, - /* Array index: 0x1FAC */ 0x6D20,0x2B68, - /* Array index: 0x1FAC */ 0x6D22,0x2B6B, - /* Array index: 0x1FAC */ 0x6D28,0x2B4F, - /* Array index: 0x1FAC */ 0x6D37,0x2B63, - /* Array index: 0x1FAC */ 0x6D3A,0x2B5B, - /* Array index: 0x1FAC */ 0x6D3C,0x2B53, - /* Array index: 0x1FAC */ 0x6D3F,0x2B54, - /* Array index: 0x1FAC */ 0x6D40,0x2B66, - /* Array index: 0x1FAC */ 0x6D42,0x2B60, - /* Array index: 0x1FAC */ 0x6D58,0x302F, - /* Array index: 0x1FAC */ 0x6D6D,0x3031, - /* Array index: 0x1FAC */ 0x6D6F,0x3032, - /* Array index: 0x1FAC */ 0x6D70,0x303C, - /* Array index: 0x1FAC */ 0x6D75,0x304B, - /* Array index: 0x1FAC */ 0x6D76,0x302B, - /* Array index: 0x1FAC */ 0x6D8B,0x3043, - /* Array index: 0x1FAC */ 0x6D8D,0x3034, - /* Array index: 0x1FAC */ 0x6D97,0x303B, - /* Array index: 0x1FAC */ 0x6D98,0x3040, - /* Array index: 0x1FAC */ 0x6DAB,0x3645, - /* Array index: 0x1FAC */ 0x6DAC,0x3649, - /* Array index: 0x1FAC */ 0x6DB3,0x3647, - /* Array index: 0x1FAC */ 0x6DB4,0x3646, - /* Array index: 0x1FAC */ 0x6DB7,0x364C, - /* Array index: 0x1FAC */ 0x6DCD,0x3668, - /* Array index: 0x1FAC */ 0x6DE9,0x364A, - /* Array index: 0x1FAC */ 0x6DED,0x365C, - /* Array index: 0x1FAC */ 0x6DEF,0x3035, - /* Array index: 0x1FAC */ 0x6DF0,0x365D, - /* Array index: 0x1FAC */ 0x6DF2,0x3664, - /* Array index: 0x1FAC */ 0x6DF4,0x3659, - /* Array index: 0x1FAC */ 0x6DF6,0x364D, - /* Array index: 0x1FAC */ 0x6DFC,0x3D2C, - /* Array index: 0x1FAC */ 0x6DFD,0x3666, - /* Array index: 0x1FAC */ 0x6E00,0x364F, - /* Array index: 0x1FAC */ 0x6E03,0x3D41, - /* Array index: 0x1FAC */ 0x6E1C,0x3D3B, - /* Array index: 0x1FAC */ 0x6E1F,0x3D2F, - /* Array index: 0x1FAC */ 0x6E22,0x3D4D, - /* Array index: 0x1FAC */ 0x6E27,0x3D51, - /* Array index: 0x1FAC */ 0x6E28,0x3D48, - /* Array index: 0x1FAC */ 0x6E2B,0x3D36, - /* Array index: 0x1FAC */ 0x6E2E,0x3D42, - /* Array index: 0x1FAC */ 0x6E30,0x3D4E, - /* Array index: 0x1FAC */ 0x6E31,0x3D47, - /* Array index: 0x1FAC */ 0x6E33,0x3D3C, - /* Array index: 0x1FAC */ 0x6E35,0x3D59, - /* Array index: 0x1FAC */ 0x6E36,0x3D5A, - /* Array index: 0x1FAC */ 0x6E6B,0x3D4B, - /* Array index: 0x1FAC */ 0x6E71,0x3D4A, - /* Array index: 0x1FAC */ 0x6E88,0x3D31, - /* Array index: 0x1FAC */ 0x6E97,0x444E, - /* Array index: 0x1FAC */ 0x6E99,0x4444, - /* Array index: 0x1FAC */ 0x6E9B,0x4429, - /* Array index: 0x1FAC */ 0x6EB7,0x443A, - /* Array index: 0x1FAC */ 0x6EB9,0x4433, - /* Array index: 0x1FAC */ 0x6ED6,0x442A, - /* Array index: 0x1FAC */ 0x6ED8,0x4443, - /* Array index: 0x1FAC */ 0x6EDC,0x4442, - /* Array index: 0x1FAC */ 0x6EEB,0x4B50, - /* Array index: 0x1FAC */ 0x6EED,0x4B45, - /* Array index: 0x1FAC */ 0x6EEE,0x4B4A, - /* Array index: 0x1FAC */ 0x6EF1,0x4B36, - /* Array index: 0x1FAC */ 0x6F00,0x515B, - /* Array index: 0x1FAC */ 0x6F03,0x4B37, - /* Array index: 0x1FAC */ 0x6F12,0x4B44, - /* Array index: 0x1FAC */ 0x6F2D,0x4B4B, - /* Array index: 0x1FAC */ 0x6F2E,0x4B3C, - /* Array index: 0x1FAC */ 0x6F30,0x4B4D, - /* Array index: 0x1FAC */ 0x6F40,0x4B4C, - /* Array index: 0x1FAC */ 0x6F41,0x5142, - /* Array index: 0x1FAC */ 0x6F43,0x4B53, - /* Array index: 0x1FAC */ 0x6F5A,0x514E, - /* Array index: 0x1FAC */ 0x6F72,0x5154, - /* Array index: 0x1FAC */ 0x6F73,0x4B48, - /* Array index: 0x1FAC */ 0x6F76,0x5150, - /* Array index: 0x1FAC */ 0x6F77,0x5167, - /* Array index: 0x1FAC */ 0x6F82,0x5152, - /* Array index: 0x1FAC */ 0x6F85,0x514D, - /* Array index: 0x1FAC */ 0x6F87,0x5145, - /* Array index: 0x1FAC */ 0x6F9E,0x577E, - /* Array index: 0x1FAC */ 0x6FA2,0x582C, - /* Array index: 0x1FAC */ 0x6FA3,0x5776, - /* Array index: 0x1FAC */ 0x6FA5,0x5824, - /* Array index: 0x1FAC */ 0x6FB8,0x582B, - /* Array index: 0x1FAC */ 0x6FBA,0x5826, - /* Array index: 0x1FAC */ 0x6FBC,0x5778, - /* Array index: 0x1FAC */ 0x6FBD,0x577D, - /* Array index: 0x1FAC */ 0x6FBF,0x582A, - /* Array index: 0x1FAC */ 0x6FD4,0x5D3D, - /* Array index: 0x1FAC */ 0x6FED,0x5D40, - /* Array index: 0x1FAC */ 0x6FF2,0x5D44, - /* Array index: 0x1FAC */ 0x6FF4,0x5D3C, - /* Array index: 0x1FAC */ 0x6FF7,0x6225, - /* Array index: 0x1FAC */ 0x7014,0x617C, - /* Array index: 0x1FAC */ 0x7016,0x656A, - /* Array index: 0x1FAC */ 0x7017,0x6570, - /* Array index: 0x1FAC */ 0x7019,0x6567, - /* Array index: 0x1FAC */ 0x701C,0x6572, - /* Array index: 0x1FAC */ 0x702F,0x692B, - /* Array index: 0x1FAC */ 0x7052,0x6D59, - /* Array index: 0x1FAC */ 0x7071,0x2261, - /* Array index: 0x1FAC */ 0x7074,0x245E, - /* Array index: 0x1FAC */ 0x707A,0x245F, - /* Array index: 0x1FAC */ 0x7091,0x2776, - /* Array index: 0x1FAC */ 0x7093,0x2773, - /* Array index: 0x1FAC */ 0x7094,0x2770, - /* Array index: 0x1FAC */ 0x7096,0x2777, - /* Array index: 0x1FAC */ 0x7098,0x2771, - /* Array index: 0x1FAC */ 0x709A,0x2779, - /* Array index: 0x1FAC */ 0x709F,0x2B6F, - /* Array index: 0x1FAC */ 0x70A1,0x2B73, - /* Array index: 0x1FAC */ 0x70A9,0x2B76, - /* Array index: 0x1FAC */ 0x70B0,0x2B72, - /* Array index: 0x1FAC */ 0x70B1,0x2B71, - /* Array index: 0x1FAC */ 0x70B4,0x2B74, - /* Array index: 0x1FAC */ 0x70B5,0x2B75, - /* Array index: 0x1FAC */ 0x70B7,0x2B6E, - /* Array index: 0x1FAC */ 0x70BE,0x2B70, - /* Array index: 0x1FAC */ 0x70CB,0x3051, - /* Array index: 0x1FAC */ 0x70D7,0x3054, - /* Array index: 0x1FAC */ 0x70F0,0x3671, - /* Array index: 0x1FAC */ 0x7113,0x3678, - /* Array index: 0x1FAC */ 0x7117,0x366E, - /* Array index: 0x1FAC */ 0x711B,0x3D69, - /* Array index: 0x1FAC */ 0x7128,0x3D67, - /* Array index: 0x1FAC */ 0x713A,0x3D68, - /* Array index: 0x1FAC */ 0x7147,0x4451, - /* Array index: 0x1FAC */ 0x714B,0x4460, - /* Array index: 0x1FAC */ 0x714D,0x4466, - /* Array index: 0x1FAC */ 0x7158,0x445E, - /* Array index: 0x1FAC */ 0x715A,0x4467, - /* Array index: 0x1FAC */ 0x716A,0x445B, - /* Array index: 0x1FAC */ 0x7170,0x4461, - /* Array index: 0x1FAC */ 0x7172,0x4459, - /* Array index: 0x1FAC */ 0x7178,0x445A, - /* Array index: 0x1FAC */ 0x717B,0x4B67, - /* Array index: 0x1FAC */ 0x718F,0x4B66, - /* Array index: 0x1FAC */ 0x7190,0x4B61, - /* Array index: 0x1FAC */ 0x7197,0x4B6A, - /* Array index: 0x1FAC */ 0x71B8,0x5836, - /* Array index: 0x1FAC */ 0x71CF,0x583E, - /* Array index: 0x1FAC */ 0x71D4,0x583B, - /* Array index: 0x1FAC */ 0x71D6,0x5837, - /* Array index: 0x1FAC */ 0x71D8,0x5840, - /* Array index: 0x1FAC */ 0x71DA,0x5843, - /* Array index: 0x1FAC */ 0x71DB,0x5844, - /* Array index: 0x1FAC */ 0x71E1,0x5D48, - /* Array index: 0x1FAC */ 0x71E2,0x5D4E, - /* Array index: 0x1FAC */ 0x71E4,0x5D4C, - /* Array index: 0x1FAC */ 0x71E8,0x5D4A, - /* Array index: 0x1FAC */ 0x71F9,0x6229, - /* Array index: 0x1FAC */ 0x71FD,0x622B, - /* Array index: 0x1FAC */ 0x720A,0x6574, - /* Array index: 0x1FAC */ 0x720C,0x6573, - /* Array index: 0x1FAC */ 0x7213,0x6939, - /* Array index: 0x1FAC */ 0x7214,0x693A, - /* Array index: 0x1FAC */ 0x723F,0x2142, - /* Array index: 0x1FAC */ 0x7241,0x2B77, - /* Array index: 0x1FAC */ 0x7242,0x3060, - /* Array index: 0x1FAC */ 0x7244,0x4B6B, - /* Array index: 0x1FAC */ 0x724F,0x4468, - /* Array index: 0x1FAC */ 0x7253,0x4B6C, - /* Array index: 0x1FAC */ 0x725A,0x3D6B, - /* Array index: 0x1FAC */ 0x725E,0x2262, - /* Array index: 0x1FAC */ 0x7263,0x2460, - /* Array index: 0x1FAC */ 0x726A,0x277B, - /* Array index: 0x1FAC */ 0x726C,0x2B7A, - /* Array index: 0x1FAC */ 0x726E,0x2B7D, - /* Array index: 0x1FAC */ 0x7270,0x2B7B, - /* Array index: 0x1FAC */ 0x7273,0x2B7C, - /* Array index: 0x1FAC */ 0x72AE,0x2164, - /* Array index: 0x1FAC */ 0x72B0,0x2165, - /* Array index: 0x1FAC */ 0x72B4,0x2263, - /* Array index: 0x1FAC */ 0x72B5,0x2264, - /* Array index: 0x1FAC */ 0x72BA,0x2466, - /* Array index: 0x1FAC */ 0x72BD,0x2462, - /* Array index: 0x1FAC */ 0x72BF,0x2461, - /* Array index: 0x1FAC */ 0x72C1,0x2465, - /* Array index: 0x1FAC */ 0x72C3,0x2463, - /* Array index: 0x1FAC */ 0x72D1,0x2827, - /* Array index: 0x1FAC */ 0x72D2,0x2823, - /* Array index: 0x1FAC */ 0x72D4,0x2824, - /* Array index: 0x1FAC */ 0x72D6,0x277C, - /* Array index: 0x1FAC */ 0x72D8,0x277E, - /* Array index: 0x1FAC */ 0x72DA,0x2825, - /* Array index: 0x1FAC */ 0x72DC,0x2822, - /* Array index: 0x1FAC */ 0x72DF,0x2C24, - /* Array index: 0x1FAC */ 0x72E3,0x2C27, - /* Array index: 0x1FAC */ 0x72E4,0x2C21, - /* Array index: 0x1FAC */ 0x72E6,0x2C26, - /* Array index: 0x1FAC */ 0x72E8,0x2C22, - /* Array index: 0x1FAC */ 0x72EA,0x2C25, - /* Array index: 0x1FAC */ 0x72EB,0x2C23, - /* Array index: 0x1FAC */ 0x72F3,0x3069, - /* Array index: 0x1FAC */ 0x72F4,0x3066, - /* Array index: 0x1FAC */ 0x72F6,0x3068, - /* Array index: 0x1FAC */ 0x730F,0x372D, - /* Array index: 0x1FAC */ 0x7311,0x3728, - /* Array index: 0x1FAC */ 0x7312,0x3D71, - /* Array index: 0x1FAC */ 0x7317,0x3726, - /* Array index: 0x1FAC */ 0x7318,0x3729, - /* Array index: 0x1FAC */ 0x731D,0x3725, - /* Array index: 0x1FAC */ 0x731E,0x372E, - /* Array index: 0x1FAC */ 0x7322,0x3D74, - /* Array index: 0x1FAC */ 0x7323,0x3D7B, - /* Array index: 0x1FAC */ 0x7326,0x3D7A, - /* Array index: 0x1FAC */ 0x7327,0x3D77, - /* Array index: 0x1FAC */ 0x732D,0x3D79, - /* Array index: 0x1FAC */ 0x7340,0x4472, - /* Array index: 0x1FAC */ 0x7342,0x446F, - /* Array index: 0x1FAC */ 0x7343,0x4B70, - /* Array index: 0x1FAC */ 0x7351,0x4B72, - /* Array index: 0x1FAC */ 0x7352,0x517E, - /* Array index: 0x1FAC */ 0x7373,0x5D4F, - /* Array index: 0x1FAC */ 0x7376,0x622C, - /* Array index: 0x1FAC */ 0x7388,0x372F, - /* Array index: 0x1FAC */ 0x738A,0x2166, - /* Array index: 0x1FAC */ 0x738E,0x2265, - /* Array index: 0x1FAC */ 0x739D,0x282F, - /* Array index: 0x1FAC */ 0x73AC,0x282E, - /* Array index: 0x1FAC */ 0x73AD,0x282A, - /* Array index: 0x1FAC */ 0x73BC,0x3070, - /* Array index: 0x1FAC */ 0x73BE,0x2C34, - /* Array index: 0x1FAC */ 0x73BF,0x2C32, - /* Array index: 0x1FAC */ 0x73E3,0x3072, - /* Array index: 0x1FAC */ 0x7404,0x3733, - /* Array index: 0x1FAC */ 0x7407,0x3736, - /* Array index: 0x1FAC */ 0x7408,0x373E, - /* Array index: 0x1FAC */ 0x740B,0x373C, - /* Array index: 0x1FAC */ 0x740C,0x373B, - /* Array index: 0x1FAC */ 0x7416,0x3E24, - /* Array index: 0x1FAC */ 0x741A,0x3E25, - /* Array index: 0x1FAC */ 0x741D,0x3E2B, - /* Array index: 0x1FAC */ 0x7440,0x447B, - /* Array index: 0x1FAC */ 0x7442,0x4521, - /* Array index: 0x1FAC */ 0x7444,0x4475, - /* Array index: 0x1FAC */ 0x7446,0x4522, - /* Array index: 0x1FAC */ 0x7457,0x447A, - /* Array index: 0x1FAC */ 0x7462,0x4B74, - /* Array index: 0x1FAC */ 0x7467,0x4B79, - /* Array index: 0x1FAC */ 0x746E,0x4B7A, - /* Array index: 0x1FAC */ 0x7479,0x5233, - /* Array index: 0x1FAC */ 0x747C,0x5232, - /* Array index: 0x1FAC */ 0x747D,0x522F, - /* Array index: 0x1FAC */ 0x747F,0x584E, - /* Array index: 0x1FAC */ 0x7481,0x522E, - /* Array index: 0x1FAC */ 0x7490,0x5D55, - /* Array index: 0x1FAC */ 0x7492,0x5852, - /* Array index: 0x1FAC */ 0x7494,0x5851, - /* Array index: 0x1FAC */ 0x7495,0x5853, - /* Array index: 0x1FAC */ 0x7497,0x5D52, - /* Array index: 0x1FAC */ 0x749A,0x584F, - /* Array index: 0x1FAC */ 0x74A0,0x5850, - /* Array index: 0x1FAC */ 0x74A1,0x5854, - /* Array index: 0x1FAC */ 0x74A5,0x5D59, - /* Array index: 0x1FAC */ 0x74AA,0x5D56, - /* Array index: 0x1FAC */ 0x74AB,0x5D54, - /* Array index: 0x1FAC */ 0x74AD,0x5D57, - /* Array index: 0x1FAC */ 0x74AF,0x5D5A, - /* Array index: 0x1FAC */ 0x74CB,0x657D, - /* Array index: 0x1FAC */ 0x74E5,0x7041, - /* Array index: 0x1FAC */ 0x74E8,0x2831, - /* Array index: 0x1FAC */ 0x74EC,0x2C39, - /* Array index: 0x1FAC */ 0x74EE,0x2C3A, - /* Array index: 0x1FAC */ 0x74F4,0x3121, - /* Array index: 0x1FAC */ 0x74F5,0x3122, - /* Array index: 0x1FAC */ 0x7507,0x5235, - /* Array index: 0x1FAC */ 0x7508,0x5234, - /* Array index: 0x1FAC */ 0x750B,0x5855, - /* Array index: 0x1FAC */ 0x751D,0x4529, - /* Array index: 0x1FAC */ 0x7521,0x3123, - /* Array index: 0x1FAC */ 0x752A,0x2266, - /* Array index: 0x1FAC */ 0x752E,0x2C3B, - /* Array index: 0x1FAC */ 0x752F,0x3E30, - /* Array index: 0x1FAC */ 0x7539,0x246E, - /* Array index: 0x1FAC */ 0x753A,0x246D, - /* Array index: 0x1FAC */ 0x7547,0x2C3C, - /* Array index: 0x1FAC */ 0x7548,0x2C3D, - /* Array index: 0x1FAC */ 0x755B,0x3124, - /* Array index: 0x1FAC */ 0x755F,0x3125, - /* Array index: 0x1FAC */ 0x7563,0x3740, - /* Array index: 0x1FAC */ 0x7564,0x373F, - /* Array index: 0x1FAC */ 0x756C,0x3E32, - /* Array index: 0x1FAC */ 0x756F,0x3E31, - /* Array index: 0x1FAC */ 0x7577,0x452B, - /* Array index: 0x1FAC */ 0x7579,0x452A, - /* Array index: 0x1FAC */ 0x757D,0x4B7E, - /* Array index: 0x1FAC */ 0x757E,0x5236, - /* Array index: 0x1FAC */ 0x7580,0x5856, - /* Array index: 0x1FAC */ 0x7584,0x5D5F, - /* Array index: 0x1FAC */ 0x758C,0x2835, - /* Array index: 0x1FAC */ 0x7590,0x4C21, - /* Array index: 0x1FAC */ 0x7594,0x246F, - /* Array index: 0x1FAC */ 0x7595,0x2470, - /* Array index: 0x1FAC */ 0x7598,0x2836, - /* Array index: 0x1FAC */ 0x75A7,0x2C3E, - /* Array index: 0x1FAC */ 0x75AA,0x2C3F, - /* Array index: 0x1FAC */ 0x75B0,0x3126, - /* Array index: 0x1FAC */ 0x75B6,0x312C, - /* Array index: 0x1FAC */ 0x75BA,0x312D, - /* Array index: 0x1FAC */ 0x75BB,0x3128, - /* Array index: 0x1FAC */ 0x75C4,0x3129, - /* Array index: 0x1FAC */ 0x75D7,0x3E3A, - /* Array index: 0x1FAC */ 0x75DA,0x3E34, - /* Array index: 0x1FAC */ 0x75DD,0x3E37, - /* Array index: 0x1FAC */ 0x75DF,0x3E38, - /* Array index: 0x1FAC */ 0x75E1,0x3E35, - /* Array index: 0x1FAC */ 0x75E4,0x3E39, - /* Array index: 0x1FAC */ 0x75E6,0x3E36, - /* Array index: 0x1FAC */ 0x75E7,0x3E33, - /* Array index: 0x1FAC */ 0x75ED,0x4538, - /* Array index: 0x1FAC */ 0x75EF,0x452D, - /* Array index: 0x1FAC */ 0x7603,0x452F, - /* Array index: 0x1FAC */ 0x7608,0x4C23, - /* Array index: 0x1FAC */ 0x760A,0x4C27, - /* Array index: 0x1FAC */ 0x760C,0x4C24, - /* Array index: 0x1FAC */ 0x7623,0x523C, - /* Array index: 0x1FAC */ 0x7625,0x5237, - /* Array index: 0x1FAC */ 0x7628,0x523E, - /* Array index: 0x1FAC */ 0x763C,0x585C, - /* Array index: 0x1FAC */ 0x763D,0x585A, - /* Array index: 0x1FAC */ 0x7643,0x5D60, - /* Array index: 0x1FAC */ 0x7650,0x623A, - /* Array index: 0x1FAC */ 0x7653,0x623B, - /* Array index: 0x1FAC */ 0x7657,0x623C, - /* Array index: 0x1FAC */ 0x7659,0x6239, - /* Array index: 0x1FAC */ 0x765A,0x623D, - /* Array index: 0x1FAC */ 0x765C,0x6237, - /* Array index: 0x1FAC */ 0x7660,0x6624, - /* Array index: 0x1FAC */ 0x7664,0x6238, - /* Array index: 0x1FAC */ 0x766A,0x6B6D, - /* Array index: 0x1FAC */ 0x766D,0x6D62, - /* Array index: 0x1FAC */ 0x7670,0x6F39, - /* Array index: 0x1FAC */ 0x7675,0x723A, - /* Array index: 0x1FAC */ 0x7679,0x2C40, - /* Array index: 0x1FAC */ 0x767F,0x2267, - /* Array index: 0x1FAC */ 0x7681,0x2471, - /* Array index: 0x1FAC */ 0x7689,0x3749, - /* Array index: 0x1FAC */ 0x768A,0x312E, - /* Array index: 0x1FAC */ 0x768F,0x3748, - /* Array index: 0x1FAC */ 0x7692,0x3E3C, - /* Array index: 0x1FAC */ 0x7695,0x3E3B, - /* Array index: 0x1FAC */ 0x76A4,0x5D64, - /* Array index: 0x1FAC */ 0x76A6,0x623E, - /* Array index: 0x1FAC */ 0x76AA,0x6940, - /* Array index: 0x1FAC */ 0x76AB,0x693F, - /* Array index: 0x1FAC */ 0x76AD,0x6D63, - /* Array index: 0x1FAC */ 0x76AF,0x2837, - /* Array index: 0x1FAC */ 0x76B5,0x453C, - /* Array index: 0x1FAC */ 0x76B8,0x4C29, - /* Array index: 0x1FAC */ 0x76BB,0x5860, - /* Array index: 0x1FAC */ 0x76BD,0x623F, - /* Array index: 0x1FAC */ 0x76BE,0x6941, - /* Array index: 0x1FAC */ 0x76C4,0x2C41, - /* Array index: 0x1FAC */ 0x76C9,0x312F, - /* Array index: 0x1FAC */ 0x76D3,0x374A, - /* Array index: 0x1FAC */ 0x76DA,0x3E3D, - /* Array index: 0x1FAC */ 0x76DD,0x453D, - /* Array index: 0x1FAC */ 0x76E6,0x5861, - /* Array index: 0x1FAC */ 0x76E9,0x5D65, - /* Array index: 0x1FAC */ 0x76EC,0x6240, - /* Array index: 0x1FAC */ 0x76ED,0x6942, - /* Array index: 0x1FAC */ 0x76F0,0x283A, - /* Array index: 0x1FAC */ 0x76F1,0x2839, - /* Array index: 0x1FAC */ 0x76F3,0x2838, - /* Array index: 0x1FAC */ 0x76F5,0x283B, - /* Array index: 0x1FAC */ 0x76F7,0x2C47, - /* Array index: 0x1FAC */ 0x76FA,0x2C49, - /* Array index: 0x1FAC */ 0x76FB,0x2C48, - /* Array index: 0x1FAC */ 0x7708,0x2C42, - /* Array index: 0x1FAC */ 0x770A,0x2C46, - /* Array index: 0x1FAC */ 0x7722,0x313A, - /* Array index: 0x1FAC */ 0x7723,0x3135, - /* Array index: 0x1FAC */ 0x7725,0x3753, - /* Array index: 0x1FAC */ 0x7727,0x313B, - /* Array index: 0x1FAC */ 0x772D,0x374D, - /* Array index: 0x1FAC */ 0x7739,0x374B, - /* Array index: 0x1FAC */ 0x773B,0x3754, - /* Array index: 0x1FAC */ 0x773D,0x3752, - /* Array index: 0x1FAC */ 0x775F,0x453F, - /* Array index: 0x1FAC */ 0x7760,0x4540, - /* Array index: 0x1FAC */ 0x7767,0x4545, - /* Array index: 0x1FAC */ 0x7769,0x4544, - /* Array index: 0x1FAC */ 0x777C,0x4C2B, - /* Array index: 0x1FAC */ 0x778D,0x5244, - /* Array index: 0x1FAC */ 0x778F,0x5245, - /* Array index: 0x1FAC */ 0x7795,0x5869, - /* Array index: 0x1FAC */ 0x77A8,0x5D6D, - /* Array index: 0x1FAC */ 0x77AB,0x5D67, - /* Array index: 0x1FAC */ 0x77BA,0x6242, - /* Array index: 0x1FAC */ 0x77C2,0x6241, - /* Array index: 0x1FAC */ 0x77C4,0x6627, - /* Array index: 0x1FAC */ 0x77D4,0x6F3A, - /* Array index: 0x1FAC */ 0x77D5,0x7042, - /* Array index: 0x1FAC */ 0x77D8,0x7128, - /* Array index: 0x1FAC */ 0x77D9,0x7129, - /* Array index: 0x1FAC */ 0x77DE,0x3E47, - /* Array index: 0x1FAC */ 0x77E0,0x4549, - /* Array index: 0x1FAC */ 0x77E7,0x2C4A, - /* Array index: 0x1FAC */ 0x77E8,0x2C4B, - /* Array index: 0x1FAC */ 0x77EC,0x3E48, - /* Array index: 0x1FAC */ 0x7803,0x2C54, - /* Array index: 0x1FAC */ 0x7805,0x2C4F, - /* Array index: 0x1FAC */ 0x7806,0x2C4C, - /* Array index: 0x1FAC */ 0x7809,0x2C53, - /* Array index: 0x1FAC */ 0x7845,0x375D, - /* Array index: 0x1FAC */ 0x7850,0x375E, - /* Array index: 0x1FAC */ 0x7852,0x3757, - /* Array index: 0x1FAC */ 0x785C,0x3E4C, - /* Array index: 0x1FAC */ 0x785E,0x3E54, - /* Array index: 0x1FAC */ 0x7860,0x3E49, - /* Array index: 0x1FAC */ 0x7862,0x3E55, - /* Array index: 0x1FAC */ 0x7879,0x4554, - /* Array index: 0x1FAC */ 0x787B,0x4558, - /* Array index: 0x1FAC */ 0x787E,0x4C38, - /* Array index: 0x1FAC */ 0x7880,0x4556, - /* Array index: 0x1FAC */ 0x788F,0x454D, - /* Array index: 0x1FAC */ 0x78B2,0x4C33, - /* Array index: 0x1FAC */ 0x78B4,0x4C35, - /* Array index: 0x1FAC */ 0x78BB,0x5249, - /* Array index: 0x1FAC */ 0x78C3,0x5250, - /* Array index: 0x1FAC */ 0x78C4,0x5251, - /* Array index: 0x1FAC */ 0x78D4,0x524E, - /* Array index: 0x1FAC */ 0x78E9,0x586D, - /* Array index: 0x1FAC */ 0x78EA,0x586F, - /* Array index: 0x1FAC */ 0x78ED,0x5875, - /* Array index: 0x1FAC */ 0x78F2,0x5D75, - /* Array index: 0x1FAC */ 0x78F3,0x5D6F, - /* Array index: 0x1FAC */ 0x7902,0x5D71, - /* Array index: 0x1FAC */ 0x7904,0x5D79, - /* Array index: 0x1FAC */ 0x7905,0x5D76, - /* Array index: 0x1FAC */ 0x7909,0x6246, - /* Array index: 0x1FAC */ 0x790C,0x6243, - /* Array index: 0x1FAC */ 0x7917,0x662D, - /* Array index: 0x1FAC */ 0x792D,0x6B6F, - /* Array index: 0x1FAC */ 0x792F,0x6B71, - /* Array index: 0x1FAC */ 0x7931,0x6B70, - /* Array index: 0x1FAC */ 0x7935,0x6D64, - /* Array index: 0x1FAC */ 0x7938,0x7043, - /* Array index: 0x1FAC */ 0x7939,0x712A, - /* Array index: 0x1FAC */ 0x793D,0x2472, - /* Array index: 0x1FAC */ 0x793F,0x2843, - /* Array index: 0x1FAC */ 0x7942,0x2842, - /* Array index: 0x1FAC */ 0x7944,0x2C5A, - /* Array index: 0x1FAC */ 0x7945,0x2C59, - /* Array index: 0x1FAC */ 0x795B,0x314A, - /* Array index: 0x1FAC */ 0x795C,0x314C, - /* Array index: 0x1FAC */ 0x7961,0x3765, - /* Array index: 0x1FAC */ 0x7963,0x3763, - /* Array index: 0x1FAC */ 0x7964,0x375F, - /* Array index: 0x1FAC */ 0x7979,0x455C, - /* Array index: 0x1FAC */ 0x797C,0x4559, - /* Array index: 0x1FAC */ 0x797D,0x455B, - /* Array index: 0x1FAC */ 0x7982,0x455A, - /* Array index: 0x1FAC */ 0x7988,0x4C48, - /* Array index: 0x1FAC */ 0x798A,0x4C41, - /* Array index: 0x1FAC */ 0x798B,0x4C42, - /* Array index: 0x1FAC */ 0x79A8,0x5D7B, - /* Array index: 0x1FAC */ 0x79B0,0x662F, - /* Array index: 0x1FAC */ 0x79B2,0x694E, - /* Array index: 0x1FAC */ 0x79BB,0x3766, - /* Array index: 0x1FAC */ 0x79C5,0x2844, - /* Array index: 0x1FAC */ 0x79D5,0x2C5B, - /* Array index: 0x1FAC */ 0x79D6,0x2C5E, - /* Array index: 0x1FAC */ 0x7A0A,0x3E5B, - /* Array index: 0x1FAC */ 0x7A0C,0x3E5D, - /* Array index: 0x1FAC */ 0x7A22,0x4563, - /* Array index: 0x1FAC */ 0x7A26,0x4C50, - /* Array index: 0x1FAC */ 0x7A28,0x4C4F, - /* Array index: 0x1FAC */ 0x7A2B,0x4C4B, - /* Array index: 0x1FAC */ 0x7A2F,0x4C4E, - /* Array index: 0x1FAC */ 0x7A30,0x4C4D, - /* Array index: 0x1FAC */ 0x7A39,0x525A, - /* Array index: 0x1FAC */ 0x7A44,0x5879, - /* Array index: 0x1FAC */ 0x7A47,0x587B, - /* Array index: 0x1FAC */ 0x7A48,0x587A, - /* Array index: 0x1FAC */ 0x7A4A,0x4C4C, - /* Array index: 0x1FAC */ 0x7A54,0x5E22, - /* Array index: 0x1FAC */ 0x7A56,0x5D7E, - /* Array index: 0x1FAC */ 0x7A5F,0x624C, - /* Array index: 0x1FAC */ 0x7A67,0x6630, - /* Array index: 0x1FAC */ 0x7A68,0x6631, - /* Array index: 0x1FAC */ 0x7A75,0x2268, - /* Array index: 0x1FAC */ 0x7A78,0x2845, - /* Array index: 0x1FAC */ 0x7A7B,0x2846, - /* Array index: 0x1FAC */ 0x7A7E,0x2C61, - /* Array index: 0x1FAC */ 0x7A80,0x2C60, - /* Array index: 0x1FAC */ 0x7A94,0x376C, - /* Array index: 0x1FAC */ 0x7A99,0x3E5F, - /* Array index: 0x1FAC */ 0x7A9E,0x4569, - /* Array index: 0x1FAC */ 0x7AA2,0x4568, - /* Array index: 0x1FAC */ 0x7AA3,0x4567, - /* Array index: 0x1FAC */ 0x7AA8,0x4C51, - /* Array index: 0x1FAC */ 0x7AAB,0x4C52, - /* Array index: 0x1FAC */ 0x7AAC,0x4C53, - /* Array index: 0x1FAC */ 0x7ABE,0x5E24, - /* Array index: 0x1FAC */ 0x7AC0,0x5E25, - /* Array index: 0x1FAC */ 0x7AC1,0x5E26, - /* Array index: 0x1FAC */ 0x7AD1,0x2C62, - /* Array index: 0x1FAC */ 0x7AD8,0x3160, - /* Array index: 0x1FAC */ 0x7AE4,0x3E61, - /* Array index: 0x1FAC */ 0x7AE6,0x3E60, - /* Array index: 0x1FAC */ 0x7AEB,0x456A, - /* Array index: 0x1FAC */ 0x7AEE,0x4C54, - /* Array index: 0x1FAC */ 0x7AF7,0x6952, - /* Array index: 0x1FAC */ 0x7AFB,0x2847, - /* Array index: 0x1FAC */ 0x7B00,0x2C63, - /* Array index: 0x1FAC */ 0x7B01,0x2C64, - /* Array index: 0x1FAC */ 0x7B18,0x3776, - /* Array index: 0x1FAC */ 0x7B1A,0x3821, - /* Array index: 0x1FAC */ 0x7B1D,0x3778, - /* Array index: 0x1FAC */ 0x7B2A,0x3777, - /* Array index: 0x1FAC */ 0x7B2B,0x377A, - /* Array index: 0x1FAC */ 0x7B38,0x377E, - /* Array index: 0x1FAC */ 0x7B3B,0x376F, - /* Array index: 0x1FAC */ 0x7B40,0x3E68, - /* Array index: 0x1FAC */ 0x7B58,0x3E69, - /* Array index: 0x1FAC */ 0x7B69,0x456F, - /* Array index: 0x1FAC */ 0x7B6D,0x456D, - /* Array index: 0x1FAC */ 0x7B82,0x4C64, - /* Array index: 0x1FAC */ 0x7B85,0x4C5F, - /* Array index: 0x1FAC */ 0x7B88,0x4C55, - /* Array index: 0x1FAC */ 0x7B96,0x4C5A, - /* Array index: 0x1FAC */ 0x7BA4,0x4C63, - /* Array index: 0x1FAC */ 0x7BAC,0x5261, - /* Array index: 0x1FAC */ 0x7BAF,0x5263, - /* Array index: 0x1FAC */ 0x7BB5,0x5266, - /* Array index: 0x1FAC */ 0x7BB7,0x525E, - /* Array index: 0x1FAC */ 0x7BB9,0x5264, - /* Array index: 0x1FAC */ 0x7BBE,0x5260, - /* Array index: 0x1FAC */ 0x7BCA,0x5265, - /* Array index: 0x1FAC */ 0x7BCB,0x525F, - /* Array index: 0x1FAC */ 0x7BCE,0x5262, - /* Array index: 0x1FAC */ 0x7BD4,0x592C, - /* Array index: 0x1FAC */ 0x7BD5,0x5927, - /* Array index: 0x1FAC */ 0x7BD8,0x5931, - /* Array index: 0x1FAC */ 0x7BF8,0x5E35, - /* Array index: 0x1FAC */ 0x7BF9,0x592B, - /* Array index: 0x1FAC */ 0x7BFB,0x5E2C, - /* Array index: 0x1FAC */ 0x7C19,0x624F, - /* Array index: 0x1FAC */ 0x7C30,0x6258, - /* Array index: 0x1FAC */ 0x7C33,0x6632, - /* Array index: 0x1FAC */ 0x7C39,0x6634, - /* Array index: 0x1FAC */ 0x7C3B,0x6636, - /* Array index: 0x1FAC */ 0x7C3C,0x6633, - /* Array index: 0x1FAC */ 0x7C53,0x6B73, - /* Array index: 0x1FAC */ 0x7C54,0x6B72, - /* Array index: 0x1FAC */ 0x7C6F,0x715C, - /* Array index: 0x1FAC */ 0x7C75,0x2848, - /* Array index: 0x1FAC */ 0x7C88,0x316F, - /* Array index: 0x1FAC */ 0x7C8A,0x316D, - /* Array index: 0x1FAC */ 0x7C8C,0x316E, - /* Array index: 0x1FAC */ 0x7C8D,0x3170, - /* Array index: 0x1FAC */ 0x7C91,0x316C, - /* Array index: 0x1FAC */ 0x7C94,0x3823, - /* Array index: 0x1FAC */ 0x7C96,0x3825, - /* Array index: 0x1FAC */ 0x7C98,0x3824, - /* Array index: 0x1FAC */ 0x7C9E,0x3E6C, - /* Array index: 0x1FAC */ 0x7CA8,0x3E6D, - /* Array index: 0x1FAC */ 0x7CAF,0x457B, - /* Array index: 0x1FAC */ 0x7CB2,0x4579, - /* Array index: 0x1FAC */ 0x7CB4,0x457A, - /* Array index: 0x1FAC */ 0x7CBF,0x4C66, - /* Array index: 0x1FAC */ 0x7CC5,0x5267, - /* Array index: 0x1FAC */ 0x7CC8,0x5268, - /* Array index: 0x1FAC */ 0x7CCB,0x526A, - /* Array index: 0x1FAC */ 0x7CCC,0x5269, - /* Array index: 0x1FAC */ 0x7CD7,0x5935, - /* Array index: 0x1FAC */ 0x7CE8,0x5E3C, - /* Array index: 0x1FAC */ 0x7CEA,0x6638, - /* Array index: 0x1FAC */ 0x7CEC,0x6637, - /* Array index: 0x1FAC */ 0x7CEE,0x6958, - /* Array index: 0x1FAC */ 0x7CF1,0x6D6E, - /* Array index: 0x1FAC */ 0x7CF2,0x6B74, - /* Array index: 0x1FAC */ 0x7CF4,0x6D6D, - /* Array index: 0x1FAC */ 0x7CF6,0x712D, - /* Array index: 0x1FAC */ 0x7CF7,0x7172, - /* Array index: 0x1FAC */ 0x7CFD,0x2849, - /* Array index: 0x1FAC */ 0x7D01,0x2C6D, - /* Array index: 0x1FAC */ 0x7D03,0x2C6B, - /* Array index: 0x1FAC */ 0x7D08,0x2C6C, - /* Array index: 0x1FAC */ 0x7D0C,0x317C, - /* Array index: 0x1FAC */ 0x7D16,0x3177, - /* Array index: 0x1FAC */ 0x7D18,0x3176, - /* Array index: 0x1FAC */ 0x7D28,0x3835, - /* Array index: 0x1FAC */ 0x7D29,0x382E, - /* Array index: 0x1FAC */ 0x7D2C,0x382D, - /* Array index: 0x1FAC */ 0x7D35,0x3827, - /* Array index: 0x1FAC */ 0x7D36,0x382A, - /* Array index: 0x1FAC */ 0x7D38,0x3829, - /* Array index: 0x1FAC */ 0x7D45,0x382C, - /* Array index: 0x1FAC */ 0x7D47,0x3830, - /* Array index: 0x1FAC */ 0x7D4A,0x3833, - /* Array index: 0x1FAC */ 0x7D5C,0x3E78, - /* Array index: 0x1FAC */ 0x7D5F,0x3E7E, - /* Array index: 0x1FAC */ 0x7D63,0x3E71, - /* Array index: 0x1FAC */ 0x7D92,0x462D, - /* Array index: 0x1FAC */ 0x7D94,0x462A, - /* Array index: 0x1FAC */ 0x7D96,0x4C79, - /* Array index: 0x1FAC */ 0x7D9D,0x4C71, - /* Array index: 0x1FAC */ 0x7D9F,0x4C7B, - /* Array index: 0x1FAC */ 0x7DA1,0x4D21, - /* Array index: 0x1FAC */ 0x7DA3,0x4C6C, - /* Array index: 0x1FAC */ 0x7DAE,0x4C7D, - /* Array index: 0x1FAC */ 0x7DAF,0x4C77, - /* Array index: 0x1FAC */ 0x7DB7,0x4C6A, - /* Array index: 0x1FAC */ 0x7DB9,0x4C78, - /* Array index: 0x1FAC */ 0x7DBC,0x4C7A, - /* Array index: 0x1FAC */ 0x7DC9,0x4D22, - /* Array index: 0x1FAC */ 0x7DCB,0x4C75, - /* Array index: 0x1FAC */ 0x7DCC,0x4C76, - /* Array index: 0x1FAC */ 0x7DCE,0x4C72, - /* Array index: 0x1FAC */ 0x7DD7,0x526F, - /* Array index: 0x1FAC */ 0x7DDB,0x526C, - /* Array index: 0x1FAC */ 0x7DDF,0x5278, - /* Array index: 0x1FAC */ 0x7DE1,0x5270, - /* Array index: 0x1FAC */ 0x7DE6,0x5273, - /* Array index: 0x1FAC */ 0x7DE7,0x526E, - /* Array index: 0x1FAC */ 0x7DEA,0x526D, - /* Array index: 0x1FAC */ 0x7DEE,0x5277, - /* Array index: 0x1FAC */ 0x7DF0,0x5276, - /* Array index: 0x1FAC */ 0x7DF1,0x5275, - /* Array index: 0x1FAC */ 0x7DF3,0x503B, - /* Array index: 0x1FAC */ 0x7DF6,0x5274, - /* Array index: 0x1FAC */ 0x7DF7,0x526B, - /* Array index: 0x1FAC */ 0x7DFA,0x5272, - /* Array index: 0x1FAC */ 0x7E03,0x5271, - /* Array index: 0x1FAC */ 0x7E1A,0x5942, - /* Array index: 0x1FAC */ 0x7E1C,0x5940, - /* Array index: 0x1FAC */ 0x7E29,0x5E47, - /* Array index: 0x1FAC */ 0x7E2A,0x5E43, - /* Array index: 0x1FAC */ 0x7E2D,0x5E3D, - /* Array index: 0x1FAC */ 0x7E30,0x5E49, - /* Array index: 0x1FAC */ 0x7E33,0x5E40, - /* Array index: 0x1FAC */ 0x7E36,0x5E4B, - /* Array index: 0x1FAC */ 0x7E40,0x5E45, - /* Array index: 0x1FAC */ 0x7E42,0x5E3F, - /* Array index: 0x1FAC */ 0x7E44,0x5E4C, - /* Array index: 0x1FAC */ 0x7E47,0x5E46, - /* Array index: 0x1FAC */ 0x7E49,0x5E44, - /* Array index: 0x1FAC */ 0x7E4C,0x5E48, - /* Array index: 0x1FAC */ 0x7E50,0x625A, - /* Array index: 0x1FAC */ 0x7E51,0x6260, - /* Array index: 0x1FAC */ 0x7E53,0x6263, - /* Array index: 0x1FAC */ 0x7E5C,0x6259, - /* Array index: 0x1FAC */ 0x7E68,0x6642, - /* Array index: 0x1FAC */ 0x7E6F,0x663E, - /* Array index: 0x1FAC */ 0x7E70,0x663C, - /* Array index: 0x1FAC */ 0x7E7E,0x695A, - /* Array index: 0x1FAC */ 0x7E80,0x695C, - /* Array index: 0x1FAC */ 0x7E81,0x695B, - /* Array index: 0x1FAC */ 0x7E91,0x6D6F, - /* Array index: 0x1FAC */ 0x7F39,0x3052, - /* Array index: 0x1FAC */ 0x7F3E,0x3F22, - /* Array index: 0x1FAC */ 0x7F3F,0x3F23, - /* Array index: 0x1FAC */ 0x7F43,0x594B, - /* Array index: 0x1FAC */ 0x7F45,0x5E4E, - /* Array index: 0x1FAC */ 0x7F4A,0x6644, - /* Array index: 0x1FAC */ 0x7F4B,0x6643, - /* Array index: 0x1FAC */ 0x7F4D,0x6B7B, - /* Array index: 0x1FAC */ 0x7F4F,0x6D70, - /* Array index: 0x1FAC */ 0x7F51,0x2269, - /* Array index: 0x1FAC */ 0x7F58,0x2C6E, - /* Array index: 0x1FAC */ 0x7F73,0x4D23, - /* Array index: 0x1FAC */ 0x7F76,0x5279, - /* Array index: 0x1FAC */ 0x7F83,0x6645, - /* Array index: 0x1FAC */ 0x7F86,0x6646, - /* Array index: 0x1FAC */ 0x7F87,0x6D71, - /* Array index: 0x1FAC */ 0x7F89,0x7048, - /* Array index: 0x1FAC */ 0x7F8D,0x2C70, - /* Array index: 0x1FAC */ 0x7F91,0x2C6F, - /* Array index: 0x1FAC */ 0x7F92,0x3226, - /* Array index: 0x1FAC */ 0x7F95,0x3837, - /* Array index: 0x1FAC */ 0x7F96,0x3225, - /* Array index: 0x1FAC */ 0x7FAC,0x527A, - /* Array index: 0x1FAC */ 0x7FAD,0x527C, - /* Array index: 0x1FAC */ 0x7FB0,0x527B, - /* Array index: 0x1FAC */ 0x7FB1,0x594F, - /* Array index: 0x1FAC */ 0x7FB3,0x6265, - /* Array index: 0x1FAC */ 0x7FB5,0x6264, - /* Array index: 0x1FAC */ 0x7FB7,0x6647, - /* Array index: 0x1FAC */ 0x7FBA,0x695D, - /* Array index: 0x1FAC */ 0x7FBB,0x6B7C, - /* Array index: 0x1FAC */ 0x7FBE,0x2C71, - /* Array index: 0x1FAC */ 0x7FC0,0x3229, - /* Array index: 0x1FAC */ 0x7FC2,0x3228, - /* Array index: 0x1FAC */ 0x7FC3,0x3227, - /* Array index: 0x1FAC */ 0x7FD7,0x3F29, - /* Array index: 0x1FAC */ 0x7FDB,0x4636, - /* Array index: 0x1FAC */ 0x7FDC,0x4637, - /* Array index: 0x1FAC */ 0x7FDE,0x4D27, - /* Array index: 0x1FAC */ 0x7FF2,0x5E53, - /* Array index: 0x1FAC */ 0x8007,0x2C72, - /* Array index: 0x1FAC */ 0x800E,0x2C73, - /* Array index: 0x1FAC */ 0x800F,0x2C74, - /* Array index: 0x1FAC */ 0x8014,0x2C75, - /* Array index: 0x1FAC */ 0x8016,0x322A, - /* Array index: 0x1FAC */ 0x801B,0x3845, - /* Array index: 0x1FAC */ 0x801E,0x3844, - /* Array index: 0x1FAC */ 0x801F,0x3843, - /* Array index: 0x1FAC */ 0x8021,0x4638, - /* Array index: 0x1FAC */ 0x8024,0x4D28, - /* Array index: 0x1FAC */ 0x8029,0x5952, - /* Array index: 0x1FAC */ 0x802A,0x5951, - /* Array index: 0x1FAC */ 0x802C,0x5E54, - /* Array index: 0x1FAC */ 0x8030,0x6B7D, - /* Array index: 0x1FAC */ 0x8034,0x2473, - /* Array index: 0x1FAC */ 0x8035,0x284A, - /* Array index: 0x1FAC */ 0x8037,0x2C76, - /* Array index: 0x1FAC */ 0x8039,0x322C, - /* Array index: 0x1FAC */ 0x803E,0x322B, - /* Array index: 0x1FAC */ 0x8043,0x3847, - /* Array index: 0x1FAC */ 0x8047,0x3846, - /* Array index: 0x1FAC */ 0x8048,0x3848, - /* Array index: 0x1FAC */ 0x805C,0x4D2A, - /* Array index: 0x1FAC */ 0x805D,0x4D29, - /* Array index: 0x1FAC */ 0x8064,0x5325, - /* Array index: 0x1FAC */ 0x8067,0x5326, - /* Array index: 0x1FAC */ 0x806C,0x5953, - /* Array index: 0x1FAC */ 0x8075,0x6268, - /* Array index: 0x1FAC */ 0x8078,0x664A, - /* Array index: 0x1FAC */ 0x8079,0x695F, - /* Array index: 0x1FAC */ 0x8082,0x2F7D, - /* Array index: 0x1FAC */ 0x808A,0x2168, - /* Array index: 0x1FAC */ 0x808F,0x284B, - /* Array index: 0x1FAC */ 0x8090,0x2476, - /* Array index: 0x1FAC */ 0x8092,0x2477, - /* Array index: 0x1FAC */ 0x8095,0x2474, - /* Array index: 0x1FAC */ 0x8099,0x2475, - /* Array index: 0x1FAC */ 0x809C,0x2478, - /* Array index: 0x1FAC */ 0x80A3,0x284D, - /* Array index: 0x1FAC */ 0x80AD,0x2850, - /* Array index: 0x1FAC */ 0x80AE,0x284C, - /* Array index: 0x1FAC */ 0x80B5,0x284F, - /* Array index: 0x1FAC */ 0x80B8,0x284E, - /* Array index: 0x1FAC */ 0x80C2,0x2C7C, - /* Array index: 0x1FAC */ 0x80DC,0x2D23, - /* Array index: 0x1FAC */ 0x80E0,0x2C79, - /* Array index: 0x1FAC */ 0x80E3,0x2D21, - /* Array index: 0x1FAC */ 0x80E6,0x2D29, - /* Array index: 0x1FAC */ 0x80F2,0x322E, - /* Array index: 0x1FAC */ 0x80F5,0x3230, - /* Array index: 0x1FAC */ 0x80FE,0x3F2D, - /* Array index: 0x1FAC */ 0x8100,0x3233, - /* Array index: 0x1FAC */ 0x8101,0x3231, - /* Array index: 0x1FAC */ 0x8115,0x3852, - /* Array index: 0x1FAC */ 0x8118,0x3849, - /* Array index: 0x1FAC */ 0x8119,0x384B, - /* Array index: 0x1FAC */ 0x8125,0x384A, - /* Array index: 0x1FAC */ 0x8127,0x3853, - /* Array index: 0x1FAC */ 0x812C,0x384F, - /* Array index: 0x1FAC */ 0x812D,0x384D, - /* Array index: 0x1FAC */ 0x813A,0x3F36, - /* Array index: 0x1FAC */ 0x813D,0x3F34, - /* Array index: 0x1FAC */ 0x8143,0x3F2F, - /* Array index: 0x1FAC */ 0x8144,0x4646, - /* Array index: 0x1FAC */ 0x8147,0x3F33, - /* Array index: 0x1FAC */ 0x814A,0x3F30, - /* Array index: 0x1FAC */ 0x814D,0x3F35, - /* Array index: 0x1FAC */ 0x814F,0x3F32, - /* Array index: 0x1FAC */ 0x8152,0x3F31, - /* Array index: 0x1FAC */ 0x815B,0x463E, - /* Array index: 0x1FAC */ 0x815C,0x463C, - /* Array index: 0x1FAC */ 0x8167,0x4644, - /* Array index: 0x1FAC */ 0x8169,0x463D, - /* Array index: 0x1FAC */ 0x816F,0x4645, - /* Array index: 0x1FAC */ 0x8172,0x4640, - /* Array index: 0x1FAC */ 0x8176,0x4643, - /* Array index: 0x1FAC */ 0x8177,0x463B, - /* Array index: 0x1FAC */ 0x8183,0x4D2D, - /* Array index: 0x1FAC */ 0x8186,0x4D2C, - /* Array index: 0x1FAC */ 0x8187,0x4D2E, - /* Array index: 0x1FAC */ 0x8195,0x532A, - /* Array index: 0x1FAC */ 0x8197,0x532D, - /* Array index: 0x1FAC */ 0x8199,0x532C, - /* Array index: 0x1FAC */ 0x819E,0x5329, - /* Array index: 0x1FAC */ 0x819F,0x5328, - /* Array index: 0x1FAC */ 0x81A2,0x532B, - /* Array index: 0x1FAC */ 0x81A3,0x5327, - /* Array index: 0x1FAC */ 0x81A6,0x5955, - /* Array index: 0x1FAC */ 0x81A7,0x595F, - /* Array index: 0x1FAC */ 0x81AB,0x5959, - /* Array index: 0x1FAC */ 0x81AC,0x595B, - /* Array index: 0x1FAC */ 0x81C4,0x5E56, - /* Array index: 0x1FAC */ 0x81C5,0x5E59, - /* Array index: 0x1FAC */ 0x81C7,0x5E5A, - /* Array index: 0x1FAC */ 0x81CA,0x5E58, - /* Array index: 0x1FAC */ 0x81CC,0x5E57, - /* Array index: 0x1FAC */ 0x81D5,0x664C, - /* Array index: 0x1FAC */ 0x81D7,0x664B, - /* Array index: 0x1FAC */ 0x81D9,0x6961, - /* Array index: 0x1FAC */ 0x81DB,0x6960, - /* Array index: 0x1FAC */ 0x81E6,0x3F37, - /* Array index: 0x1FAC */ 0x81E9,0x5E5C, - /* Array index: 0x1FAC */ 0x81EE,0x3F38, - /* Array index: 0x1FAC */ 0x81F2,0x5960, - /* Array index: 0x1FAC */ 0x81FF,0x2D2B, - /* Array index: 0x1FAC */ 0x8201,0x3234, - /* Array index: 0x1FAC */ 0x8204,0x3F3C, - /* Array index: 0x1FAC */ 0x820B,0x664D, - /* Array index: 0x1FAC */ 0x8211,0x3856, - /* Array index: 0x1FAC */ 0x8215,0x4D32, - /* Array index: 0x1FAC */ 0x8216,0x532E, - /* Array index: 0x1FAC */ 0x821D,0x4648, - /* Array index: 0x1FAC */ 0x8220,0x2851, - /* Array index: 0x1FAC */ 0x8221,0x2D2C, - /* Array index: 0x1FAC */ 0x8225,0x3236, - /* Array index: 0x1FAC */ 0x822F,0x3235, - /* Array index: 0x1FAC */ 0x8238,0x3857, - /* Array index: 0x1FAC */ 0x823A,0x3859, - /* Array index: 0x1FAC */ 0x8249,0x4649, - /* Array index: 0x1FAC */ 0x8274,0x385C, - /* Array index: 0x1FAC */ 0x8275,0x3F40, - /* Array index: 0x1FAC */ 0x8278,0x226A, - /* Array index: 0x1FAC */ 0x828A,0x2521, - /* Array index: 0x1FAC */ 0x8298,0x2856, - /* Array index: 0x1FAC */ 0x829A,0x2855, - /* Array index: 0x1FAC */ 0x829B,0x2857, - /* Array index: 0x1FAC */ 0x82AE,0x285A, - /* Array index: 0x1FAC */ 0x82BA,0x285D, - /* Array index: 0x1FAC */ 0x82BC,0x285B, - /* Array index: 0x1FAC */ 0x82C0,0x2853, - /* Array index: 0x1FAC */ 0x82C2,0x2862, - /* Array index: 0x1FAC */ 0x82C3,0x2864, - /* Array index: 0x1FAC */ 0x82D5,0x2D34, - /* Array index: 0x1FAC */ 0x82D6,0x2D37, - /* Array index: 0x1FAC */ 0x82D9,0x2D2E, - /* Array index: 0x1FAC */ 0x82E0,0x2D43, - /* Array index: 0x1FAC */ 0x82E1,0x2D3A, - /* Array index: 0x1FAC */ 0x82E4,0x2D42, - /* Array index: 0x1FAC */ 0x82FE,0x2D2F, - /* Array index: 0x1FAC */ 0x8300,0x2D33, - /* Array index: 0x1FAC */ 0x8307,0x2D31, - /* Array index: 0x1FAC */ 0x8308,0x3247, - /* Array index: 0x1FAC */ 0x830C,0x2D3D, - /* Array index: 0x1FAC */ 0x830D,0x2942, - /* Array index: 0x1FAC */ 0x8316,0x324A, - /* Array index: 0x1FAC */ 0x8319,0x323A, - /* Array index: 0x1FAC */ 0x831B,0x3245, - /* Array index: 0x1FAC */ 0x831C,0x3241, - /* Array index: 0x1FAC */ 0x831E,0x3254, - /* Array index: 0x1FAC */ 0x8320,0x324C, - /* Array index: 0x1FAC */ 0x8333,0x3237, - /* Array index: 0x1FAC */ 0x8337,0x324D, - /* Array index: 0x1FAC */ 0x833F,0x323E, - /* Array index: 0x1FAC */ 0x8351,0x323B, - /* Array index: 0x1FAC */ 0x8353,0x3253, - /* Array index: 0x1FAC */ 0x8356,0x323D, - /* Array index: 0x1FAC */ 0x837A,0x3861, - /* Array index: 0x1FAC */ 0x8394,0x386A, - /* Array index: 0x1FAC */ 0x8395,0x3867, - /* Array index: 0x1FAC */ 0x83F3,0x3F63, - /* Array index: 0x1FAC */ 0x8406,0x3F61, - /* Array index: 0x1FAC */ 0x8409,0x3F5D, - /* Array index: 0x1FAC */ 0x841B,0x3F72, - /* Array index: 0x1FAC */ 0x8423,0x3F44, - /* Array index: 0x1FAC */ 0x8429,0x466C, - /* Array index: 0x1FAC */ 0x842B,0x4724, - /* Array index: 0x1FAC */ 0x842D,0x4671, - /* Array index: 0x1FAC */ 0x8465,0x4655, - /* Array index: 0x1FAC */ 0x8467,0x4659, - /* Array index: 0x1FAC */ 0x8468,0x4721, - /* Array index: 0x1FAC */ 0x8486,0x4658, - /* Array index: 0x1FAC */ 0x8494,0x4D49, - /* Array index: 0x1FAC */ 0x84B4,0x4D3E, - /* Array index: 0x1FAC */ 0x84B6,0x4D52, - /* Array index: 0x1FAC */ 0x84C1,0x4D3F, - /* Array index: 0x1FAC */ 0x84C2,0x4D39, - /* Array index: 0x1FAC */ 0x84C5,0x4679, - /* Array index: 0x1FAC */ 0x84C7,0x4D4A, - /* Array index: 0x1FAC */ 0x84DB,0x4D58, - /* Array index: 0x1FAC */ 0x8512,0x534E, - /* Array index: 0x1FAC */ 0x853B,0x5336, - /* Array index: 0x1FAC */ 0x853E,0x5974, - /* Array index: 0x1FAC */ 0x854D,0x5967, - /* Array index: 0x1FAC */ 0x854E,0x5977, - /* Array index: 0x1FAC */ 0x855B,0x5975, - /* Array index: 0x1FAC */ 0x855D,0x5A21, - /* Array index: 0x1FAC */ 0x856B,0x5966, - /* Array index: 0x1FAC */ 0x856C,0x5A24, - /* Array index: 0x1FAC */ 0x856E,0x5978, - /* Array index: 0x1FAC */ 0x8571,0x5976, - /* Array index: 0x1FAC */ 0x85A7,0x5E63, - /* Array index: 0x1FAC */ 0x85CB,0x6279, - /* Array index: 0x1FAC */ 0x85CE,0x627A, - /* Array index: 0x1FAC */ 0x85D1,0x6660, - /* Array index: 0x1FAC */ 0x85D2,0x6321, - /* Array index: 0x1FAC */ 0x85E6,0x6662, - /* Array index: 0x1FAC */ 0x85E8,0x6656, - /* Array index: 0x1FAC */ 0x85F6,0x696A, - /* Array index: 0x1FAC */ 0x85F8,0x665B, - /* Array index: 0x1FAC */ 0x8609,0x696C, - /* Array index: 0x1FAC */ 0x860C,0x696E, - /* Array index: 0x1FAC */ 0x8643,0x704A, - /* Array index: 0x1FAC */ 0x8652,0x325A, - /* Array index: 0x1FAC */ 0x8653,0x3259, - /* Array index: 0x1FAC */ 0x8656,0x3921, - /* Array index: 0x1FAC */ 0x8659,0x387E, - /* Array index: 0x1FAC */ 0x8677,0x2D47, - /* Array index: 0x1FAC */ 0x867C,0x2D49, - /* Array index: 0x1FAC */ 0x868B,0x3264, - /* Array index: 0x1FAC */ 0x86A5,0x3267, - /* Array index: 0x1FAC */ 0x86A7,0x326A, - /* Array index: 0x1FAC */ 0x86A8,0x325C, - /* Array index: 0x1FAC */ 0x86B0,0x3928, - /* Array index: 0x1FAC */ 0x86C8,0x3929, - /* Array index: 0x1FAC */ 0x86CC,0x392D, - /* Array index: 0x1FAC */ 0x86D1,0x4025, - /* Array index: 0x1FAC */ 0x86D3,0x3F78, - /* Array index: 0x1FAC */ 0x86E2,0x3F76, - /* Array index: 0x1FAC */ 0x86E3,0x3F79, - /* Array index: 0x1FAC */ 0x8701,0x4734, - /* Array index: 0x1FAC */ 0x8704,0x472A, - /* Array index: 0x1FAC */ 0x8705,0x4737, - /* Array index: 0x1FAC */ 0x871E,0x4D62, - /* Array index: 0x1FAC */ 0x8738,0x4D77, - /* Array index: 0x1FAC */ 0x873A,0x4D71, - /* Array index: 0x1FAC */ 0x873C,0x4D6F, - /* Array index: 0x1FAC */ 0x8746,0x4D6A, - /* Array index: 0x1FAC */ 0x8773,0x536D, - /* Array index: 0x1FAC */ 0x8775,0x5426, - /* Array index: 0x1FAC */ 0x8781,0x5A2F, - /* Array index: 0x1FAC */ 0x87A3,0x5A34, - /* Array index: 0x1FAC */ 0x87A4,0x5A28, - /* Array index: 0x1FAC */ 0x87C9,0x5F30, - /* Array index: 0x1FAC */ 0x87CA,0x5F37, - /* Array index: 0x1FAC */ 0x87CC,0x5F33, - /* Array index: 0x1FAC */ 0x87FA,0x6667, - /* Array index: 0x1FAC */ 0x87FC,0x666F, - /* Array index: 0x1FAC */ 0x8810,0x6971, - /* Array index: 0x1FAC */ 0x8811,0x6972, - /* Array index: 0x1FAC */ 0x8813,0x6974, - /* Array index: 0x1FAC */ 0x8816,0x6975, - /* Array index: 0x1FAC */ 0x8817,0x6973, - /* Array index: 0x1FAC */ 0x8820,0x6C32, - /* Array index: 0x1FAC */ 0x8848,0x4026, - /* Array index: 0x1FAC */ 0x884A,0x6C36, - /* Array index: 0x1FAC */ 0x884B,0x704E, - /* Array index: 0x1FAC */ 0x884E,0x2D4C, - /* Array index: 0x1FAC */ 0x8852,0x3934, - /* Array index: 0x1FAC */ 0x8855,0x4028, - /* Array index: 0x1FAC */ 0x8856,0x4027, - /* Array index: 0x1FAC */ 0x885A,0x542A, - /* Array index: 0x1FAC */ 0x8867,0x2D4D, - /* Array index: 0x1FAC */ 0x8869,0x2D4F, - /* Array index: 0x1FAC */ 0x886A,0x2D4E, - /* Array index: 0x1FAC */ 0x886D,0x3273, - /* Array index: 0x1FAC */ 0x886F,0x327A, - /* Array index: 0x1FAC */ 0x8883,0x327B, - /* Array index: 0x1FAC */ 0x8889,0x3935, - /* Array index: 0x1FAC */ 0x888C,0x3945, - /* Array index: 0x1FAC */ 0x888E,0x3947, - /* Array index: 0x1FAC */ 0x8891,0x393B, - /* Array index: 0x1FAC */ 0x8893,0x3946, - /* Array index: 0x1FAC */ 0x889F,0x393D, - /* Array index: 0x1FAC */ 0x88A1,0x393C, - /* Array index: 0x1FAC */ 0x88A2,0x3938, - /* Array index: 0x1FAC */ 0x88A4,0x3943, - /* Array index: 0x1FAC */ 0x88A7,0x393F, - /* Array index: 0x1FAC */ 0x88A8,0x3937, - /* Array index: 0x1FAC */ 0x88AA,0x3939, - /* Array index: 0x1FAC */ 0x88AC,0x3944, - /* Array index: 0x1FAC */ 0x88B2,0x4033, - /* Array index: 0x1FAC */ 0x88D6,0x4738, - /* Array index: 0x1FAC */ 0x88D7,0x402A, - /* Array index: 0x1FAC */ 0x88DA,0x473E, - /* Array index: 0x1FAC */ 0x88DB,0x473D, - /* Array index: 0x1FAC */ 0x88DE,0x473C, - /* Array index: 0x1FAC */ 0x88E7,0x4D7D, - /* Array index: 0x1FAC */ 0x88EB,0x4E2A, - /* Array index: 0x1FAC */ 0x88EC,0x4E29, - /* Array index: 0x1FAC */ 0x8901,0x4034, - /* Array index: 0x1FAC */ 0x8905,0x542B, - /* Array index: 0x1FAC */ 0x8906,0x5432, - /* Array index: 0x1FAC */ 0x8909,0x5436, - /* Array index: 0x1FAC */ 0x890B,0x542E, - /* Array index: 0x1FAC */ 0x890C,0x542C, - /* Array index: 0x1FAC */ 0x890E,0x5435, - /* Array index: 0x1FAC */ 0x8911,0x5434, - /* Array index: 0x1FAC */ 0x891E,0x5A3E, - /* Array index: 0x1FAC */ 0x891F,0x5A4A, - /* Array index: 0x1FAC */ 0x8922,0x5A45, - /* Array index: 0x1FAC */ 0x8923,0x5A47, - /* Array index: 0x1FAC */ 0x8926,0x5A3F, - /* Array index: 0x1FAC */ 0x8927,0x5A43, - /* Array index: 0x1FAC */ 0x8929,0x5A46, - /* Array index: 0x1FAC */ 0x893C,0x5F41, - /* Array index: 0x1FAC */ 0x893E,0x5F42, - /* Array index: 0x1FAC */ 0x8941,0x5F43, - /* Array index: 0x1FAC */ 0x8942,0x5F46, - /* Array index: 0x1FAC */ 0x8946,0x6341, - /* Array index: 0x1FAC */ 0x8949,0x6344, - /* Array index: 0x1FAC */ 0x8966,0x6977, - /* Array index: 0x1FAC */ 0x8969,0x6C38, - /* Array index: 0x1FAC */ 0x896B,0x6C3A, - /* Array index: 0x1FAC */ 0x896D,0x6C37, - /* Array index: 0x1FAC */ 0x896E,0x6C39, - /* Array index: 0x1FAC */ 0x8971,0x6E21, - /* Array index: 0x1FAC */ 0x8973,0x6F4C, - /* Array index: 0x1FAC */ 0x8974,0x6F4B, - /* Array index: 0x1FAC */ 0x8976,0x6F4A, - /* Array index: 0x1FAC */ 0x8982,0x3948, - /* Array index: 0x1FAC */ 0x8985,0x4741, - /* Array index: 0x1FAC */ 0x8988,0x667D, - /* Array index: 0x1FAC */ 0x8995,0x4036, - /* Array index: 0x1FAC */ 0x8997,0x4038, - /* Array index: 0x1FAC */ 0x8998,0x4037, - /* Array index: 0x1FAC */ 0x89B6,0x6721, - /* Array index: 0x1FAC */ 0x89B7,0x667E, - /* Array index: 0x1FAC */ 0x89B9,0x6978, - /* Array index: 0x1FAC */ 0x89BE,0x6E23, - /* Array index: 0x1FAC */ 0x89BF,0x6E22, - /* Array index: 0x1FAC */ 0x89D3,0x2D50, - /* Array index: 0x1FAC */ 0x8A04,0x2D51, - /* Array index: 0x1FAC */ 0x8A07,0x2D52, - /* Array index: 0x1FAC */ 0x8A12,0x3321, - /* Array index: 0x1FAC */ 0x8A1E,0x394F, - /* Array index: 0x1FAC */ 0x8A27,0x394D, - /* Array index: 0x1FAC */ 0x8A2C,0x394E, - /* Array index: 0x1FAC */ 0x8A30,0x394C, - /* Array index: 0x1FAC */ 0x8A39,0x403E, - /* Array index: 0x1FAC */ 0x8A3F,0x474F, - /* Array index: 0x1FAC */ 0x8A40,0x4040, - /* Array index: 0x1FAC */ 0x8A44,0x4043, - /* Array index: 0x1FAC */ 0x8A45,0x4044, - /* Array index: 0x1FAC */ 0x8A48,0x4046, - /* Array index: 0x1FAC */ 0x8A61,0x474E, - /* Array index: 0x1FAC */ 0x8A7A,0x4757, - /* Array index: 0x1FAC */ 0x8A8B,0x4E34, - /* Array index: 0x1FAC */ 0x8A8F,0x4E36, - /* Array index: 0x1FAC */ 0x8A92,0x4E35, - /* Array index: 0x1FAC */ 0x8A96,0x4E37, - /* Array index: 0x1FAC */ 0x8A99,0x4E33, - /* Array index: 0x1FAC */ 0x8AAB,0x4E32, - /* Array index: 0x1FAC */ 0x8AB8,0x543F, - /* Array index: 0x1FAC */ 0x8AC3,0x544A, - /* Array index: 0x1FAC */ 0x8AC5,0x5448, - /* Array index: 0x1FAC */ 0x8AC6,0x543E, - /* Array index: 0x1FAC */ 0x8AC8,0x5A56, - /* Array index: 0x1FAC */ 0x8ACF,0x543D, - /* Array index: 0x1FAC */ 0x8AE8,0x5A59, - /* Array index: 0x1FAC */ 0x8AEF,0x5A5B, - /* Array index: 0x1FAC */ 0x8AF0,0x5A55, - /* Array index: 0x1FAC */ 0x8AF2,0x5A4E, - /* Array index: 0x1FAC */ 0x8AF4,0x5A4F, - /* Array index: 0x1FAC */ 0x8AF5,0x5A50, - /* Array index: 0x1FAC */ 0x8AFB,0x5A5C, - /* Array index: 0x1FAC */ 0x8AFF,0x5A5A, - /* Array index: 0x1FAC */ 0x8B0B,0x5F51, - /* Array index: 0x1FAC */ 0x8B0D,0x5F57, - /* Array index: 0x1FAC */ 0x8B2A,0x6345, - /* Array index: 0x1FAC */ 0x8B45,0x6C3E, - /* Array index: 0x1FAC */ 0x8B5D,0x697C, - /* Array index: 0x1FAC */ 0x8B60,0x697A, - /* Array index: 0x1FAC */ 0x8B63,0x697E, - /* Array index: 0x1FAC */ 0x8B65,0x6A21, - /* Array index: 0x1FAC */ 0x8B67,0x6A22, - /* Array index: 0x1FAC */ 0x8B68,0x697D, - /* Array index: 0x1FAC */ 0x8B6A,0x697B, - /* Array index: 0x1FAC */ 0x8B6D,0x6A23, - /* Array index: 0x1FAC */ 0x8B94,0x704F, - /* Array index: 0x1FAC */ 0x8B95,0x7050, - /* Array index: 0x1FAC */ 0x8B98,0x713C, - /* Array index: 0x1FAC */ 0x8B99,0x713D, - /* Array index: 0x1FAC */ 0x8B9E,0x7177, - /* Array index: 0x1FAC */ 0x8B9F,0x7236, - /* Array index: 0x1FAC */ 0x8C42,0x6359, - /* Array index: 0x1FAC */ 0x8C43,0x6730, - /* Array index: 0x1FAC */ 0x8C45,0x6F52, - /* Array index: 0x1FAC */ 0x8C47,0x3322, - /* Array index: 0x1FAC */ 0x8C4A,0x475A, - /* Array index: 0x1FAC */ 0x8C4B,0x4759, - /* Array index: 0x1FAC */ 0x8C4D,0x544F, - /* Array index: 0x1FAC */ 0x8C4F,0x5F5D, - /* Array index: 0x1FAC */ 0x8C56,0x286B, - /* Array index: 0x1FAC */ 0x8C57,0x3323, - /* Array index: 0x1FAC */ 0x8C5C,0x3952, - /* Array index: 0x1FAC */ 0x8C5D,0x3953, - /* Array index: 0x1FAC */ 0x8C5F,0x404B, - /* Array index: 0x1FAC */ 0x8C7B,0x3324, - /* Array index: 0x1FAC */ 0x8C7D,0x3954, - /* Array index: 0x1FAC */ 0x8CB0,0x4050, - /* Array index: 0x1FAC */ 0x8CB5,0x4052, - /* Array index: 0x1FAC */ 0x8CB9,0x4051, - /* Array index: 0x1FAC */ 0x8CBA,0x404E, - /* Array index: 0x1FAC */ 0x8CBE,0x404F, - /* Array index: 0x1FAC */ 0x8CCC,0x4761, - /* Array index: 0x1FAC */ 0x8CCF,0x4E3C, - /* Array index: 0x1FAC */ 0x8CD5,0x4E3B, - /* Array index: 0x1FAC */ 0x8CD7,0x4E3D, - /* Array index: 0x1FAC */ 0x8CD9,0x5453, - /* Array index: 0x1FAC */ 0x8CDA,0x5455, - /* Array index: 0x1FAC */ 0x8CDD,0x5456, - /* Array index: 0x1FAC */ 0x8CDF,0x5452, - /* Array index: 0x1FAC */ 0x8CE5,0x5451, - /* Array index: 0x1FAC */ 0x8CE7,0x5457, - /* Array index: 0x1FAC */ 0x8CE8,0x5454, - /* Array index: 0x1FAC */ 0x8CEE,0x5A61, - /* Array index: 0x1FAC */ 0x8CF0,0x5A63, - /* Array index: 0x1FAC */ 0x8CF1,0x5A62, - /* Array index: 0x1FAC */ 0x8CF3,0x5A64, - /* Array index: 0x1FAC */ 0x8CF5,0x5A60, - /* Array index: 0x1FAC */ 0x8CF9,0x5F64, - /* Array index: 0x1FAC */ 0x8CFE,0x635E, - /* Array index: 0x1FAC */ 0x8D00,0x6361, - /* Array index: 0x1FAC */ 0x8D02,0x6360, - /* Array index: 0x1FAC */ 0x8D04,0x635F, - /* Array index: 0x1FAC */ 0x8D06,0x6734, - /* Array index: 0x1FAC */ 0x8D07,0x6735, - /* Array index: 0x1FAC */ 0x8D09,0x6736, - /* Array index: 0x1FAC */ 0x8D10,0x6C41, - /* Array index: 0x1FAC */ 0x8D14,0x6C42, - /* Array index: 0x1FAC */ 0x8D15,0x6E2B, - /* Array index: 0x1FAC */ 0x8D19,0x6F53, - /* Array index: 0x1FAC */ 0x8D68,0x4762, - /* Array index: 0x1FAC */ 0x8D69,0x4763, - /* Array index: 0x1FAC */ 0x8D6C,0x5A65, - /* Array index: 0x1FAC */ 0x8D6E,0x5A66, - /* Array index: 0x1FAC */ 0x8D6F,0x5F65, - /* Array index: 0x1FAC */ 0x8D72,0x2D53, - /* Array index: 0x1FAC */ 0x8D76,0x3327, - /* Array index: 0x1FAC */ 0x8D78,0x3328, - /* Array index: 0x1FAC */ 0x8D79,0x3958, - /* Array index: 0x1FAC */ 0x8D7B,0x3957, - /* Array index: 0x1FAC */ 0x8D7D,0x3956, - /* Array index: 0x1FAC */ 0x8D80,0x4054, - /* Array index: 0x1FAC */ 0x8D84,0x4053, - /* Array index: 0x1FAC */ 0x8D89,0x4055, - /* Array index: 0x1FAC */ 0x8D9B,0x545B, - /* Array index: 0x1FAC */ 0x8D9C,0x5459, - /* Array index: 0x1FAC */ 0x8DA0,0x5458, - /* Array index: 0x1FAC */ 0x8DA1,0x545A, - /* Array index: 0x1FAC */ 0x8DA5,0x5A67, - /* Array index: 0x1FAC */ 0x8DA7,0x5A68, - /* Array index: 0x1FAC */ 0x8DB2,0x715E, - /* Array index: 0x1FAC */ 0x8DBC,0x3959, - /* Array index: 0x1FAC */ 0x8DBF,0x395C, - /* Array index: 0x1FAC */ 0x8DC1,0x395D, - /* Array index: 0x1FAC */ 0x8DC2,0x395A, - /* Array index: 0x1FAC */ 0x8DC5,0x4061, - /* Array index: 0x1FAC */ 0x8DC7,0x4059, - /* Array index: 0x1FAC */ 0x8DC8,0x405F, - /* Array index: 0x1FAC */ 0x8DCD,0x4058, - /* Array index: 0x1FAC */ 0x8DCF,0x405C, - /* Array index: 0x1FAC */ 0x8DD0,0x4772, - /* Array index: 0x1FAC */ 0x8DDC,0x405B, - /* Array index: 0x1FAC */ 0x8DE0,0x476E, - /* Array index: 0x1FAC */ 0x8DE2,0x4775, - /* Array index: 0x1FAC */ 0x8DE3,0x4774, - /* Array index: 0x1FAC */ 0x8DE7,0x4776, - /* Array index: 0x1FAC */ 0x8DE9,0x4773, - /* Array index: 0x1FAC */ 0x8DEB,0x4778, - /* Array index: 0x1FAC */ 0x8DEC,0x476F, - /* Array index: 0x1FAC */ 0x8E0D,0x4E42, - /* Array index: 0x1FAC */ 0x8E20,0x545C, - /* Array index: 0x1FAC */ 0x8E2E,0x5460, - /* Array index: 0x1FAC */ 0x8E30,0x5A72, - /* Array index: 0x1FAC */ 0x8E33,0x5A69, - /* Array index: 0x1FAC */ 0x8E36,0x5A6E, - /* Array index: 0x1FAC */ 0x8E38,0x5A6B, - /* Array index: 0x1FAC */ 0x8E45,0x5A6D, - /* Array index: 0x1FAC */ 0x8E47,0x5F6B, - /* Array index: 0x1FAC */ 0x8E65,0x6368, - /* Array index: 0x1FAC */ 0x8E67,0x6369, - /* Array index: 0x1FAC */ 0x8E69,0x636E, - /* Array index: 0x1FAC */ 0x8E6A,0x673E, - /* Array index: 0x1FAC */ 0x8E6D,0x673B, - /* Array index: 0x1FAC */ 0x8E6F,0x673F, - /* Array index: 0x1FAC */ 0x8E73,0x673D, - /* Array index: 0x1FAC */ 0x8E78,0x673C, - /* Array index: 0x1FAC */ 0x8E7B,0x6740, - /* Array index: 0x1FAC */ 0x8E84,0x6A27, - /* Array index: 0x1FAC */ 0x8E86,0x6A25, - /* Array index: 0x1FAC */ 0x8E88,0x6A26, - /* Array index: 0x1FAC */ 0x8E8C,0x6C45, - /* Array index: 0x1FAC */ 0x8E8E,0x6C44, - /* Array index: 0x1FAC */ 0x8E90,0x6E30, - /* Array index: 0x1FAC */ 0x8EBD,0x5A74, - /* Array index: 0x1FAC */ 0x8EC2,0x6741, - /* Array index: 0x1FAC */ 0x8EC9,0x717A, - /* Array index: 0x1FAC */ 0x8ED1,0x332C, - /* Array index: 0x1FAC */ 0x8ED3,0x332D, - /* Array index: 0x1FAC */ 0x8ED7,0x3962, - /* Array index: 0x1FAC */ 0x8ED8,0x395E, - /* Array index: 0x1FAC */ 0x8F0B,0x4824, - /* Array index: 0x1FAC */ 0x8F20,0x5473, - /* Array index: 0x1FAC */ 0x8F23,0x5474, - /* Array index: 0x1FAC */ 0x8F24,0x5470, - /* Array index: 0x1FAC */ 0x8F2C,0x546F, - /* Array index: 0x1FAC */ 0x8F2E,0x5A76, - /* Array index: 0x1FAC */ 0x8F40,0x5F6D, - /* Array index: 0x1FAC */ 0x8F43,0x5F6C, - /* Array index: 0x1FAC */ 0x8F4B,0x6373, - /* Array index: 0x1FAC */ 0x8FB4,0x6747, - /* Array index: 0x1FAC */ 0x8FBF,0x2526, - /* Array index: 0x1FAC */ 0x8FC9,0x2525, - /* Array index: 0x1FAC */ 0x8FCB,0x286D, - /* Array index: 0x1FAC */ 0x8FCD,0x286F, - /* Array index: 0x1FAC */ 0x8FE0,0x2D57, - /* Array index: 0x1FAC */ 0x8FE1,0x2D55, - /* Array index: 0x1FAC */ 0x8FE3,0x2D54, - /* Array index: 0x1FAC */ 0x8FEE,0x2D56, - /* Array index: 0x1FAC */ 0x8FF5,0x332F, - /* Array index: 0x1FAC */ 0x8FF6,0x3335, - /* Array index: 0x1FAC */ 0x9002,0x3330, - /* Array index: 0x1FAC */ 0x9004,0x3333, - /* Array index: 0x1FAC */ 0x900B,0x3966, - /* Array index: 0x1FAC */ 0x900C,0x3969, - /* Array index: 0x1FAC */ 0x9011,0x3967, - /* Array index: 0x1FAC */ 0x901C,0x3968, - /* Array index: 0x1FAC */ 0x9021,0x396A, - /* Array index: 0x1FAC */ 0x9024,0x3965, - /* Array index: 0x1FAC */ 0x902D,0x4072, - /* Array index: 0x1FAC */ 0x902F,0x4074, - /* Array index: 0x1FAC */ 0x9034,0x4073, - /* Array index: 0x1FAC */ 0x903D,0x4829, - /* Array index: 0x1FAC */ 0x903F,0x4826, - /* Array index: 0x1FAC */ 0x9044,0x4827, - /* Array index: 0x1FAC */ 0x9049,0x4828, - /* Array index: 0x1FAC */ 0x9052,0x4825, - /* Array index: 0x1FAC */ 0x9067,0x547A, - /* Array index: 0x1FAC */ 0x906B,0x547B, - /* Array index: 0x1FAC */ 0x906F,0x5479, - /* Array index: 0x1FAC */ 0x9070,0x5478, - /* Array index: 0x1FAC */ 0x9073,0x5477, - /* Array index: 0x1FAC */ 0x9076,0x5A7C, - /* Array index: 0x1FAC */ 0x9079,0x5A7D, - /* Array index: 0x1FAC */ 0x907B,0x5A7E, - /* Array index: 0x1FAC */ 0x907E,0x5F6F, - /* Array index: 0x1FAC */ 0x9085,0x5F6E, - /* Array index: 0x1FAC */ 0x9086,0x5B21, - /* Array index: 0x1FAC */ 0x908D,0x6A2E, - /* Array index: 0x1FAC */ 0x9094,0x2275, - /* Array index: 0x1FAC */ 0x90A5,0x2529, - /* Array index: 0x1FAC */ 0x90A7,0x252B, - /* Array index: 0x1FAC */ 0x90C5,0x2D5C, - /* Array index: 0x1FAC */ 0x90C7,0x2D5E, - /* Array index: 0x1FAC */ 0x90C8,0x2D60, - /* Array index: 0x1FAC */ 0x90CB,0x2D5F, - /* Array index: 0x1FAC */ 0x9114,0x482F, - /* Array index: 0x1FAC */ 0x9116,0x482E, - /* Array index: 0x1FAC */ 0x9153,0x3978, - /* Array index: 0x1FAC */ 0x9155,0x3979, - /* Array index: 0x1FAC */ 0x9156,0x3975, - /* Array index: 0x1FAC */ 0x9158,0x3976, - /* Array index: 0x1FAC */ 0x915A,0x3977, - /* Array index: 0x1FAC */ 0x9168,0x4279, - /* Array index: 0x1FAC */ 0x916E,0x4832, - /* Array index: 0x1FAC */ 0x916F,0x4833, - /* Array index: 0x1FAC */ 0x9172,0x4E5B, - /* Array index: 0x1FAC */ 0x9173,0x4E5D, - /* Array index: 0x1FAC */ 0x9179,0x4E5C, - /* Array index: 0x1FAC */ 0x917A,0x4E5A, - /* Array index: 0x1FAC */ 0x918A,0x5527, - /* Array index: 0x1FAC */ 0x91A5,0x6379, - /* Array index: 0x1FAC */ 0x91A7,0x637A, - /* Array index: 0x1FAC */ 0x91A8,0x6378, - /* Array index: 0x1FAC */ 0x91AA,0x637C, - /* Array index: 0x1FAC */ 0x91AD,0x674B, - /* Array index: 0x1FAC */ 0x91C2,0x7057, - /* Array index: 0x1FAC */ 0x91C3,0x7160, - /* Array index: 0x1FAC */ 0x91DA,0x3347, - /* Array index: 0x1FAC */ 0x91E2,0x3346, - /* Array index: 0x1FAC */ 0x91E4,0x3A21, - /* Array index: 0x1FAC */ 0x91F1,0x397C, - /* Array index: 0x1FAC */ 0x920A,0x412A, - /* Array index: 0x1FAC */ 0x920C,0x4130, - /* Array index: 0x1FAC */ 0x920F,0x412F, - /* Array index: 0x1FAC */ 0x9212,0x4132, - /* Array index: 0x1FAC */ 0x9236,0x4846, - /* Array index: 0x1FAC */ 0x923A,0x4837, - /* Array index: 0x1FAC */ 0x9246,0x483F, - /* Array index: 0x1FAC */ 0x9248,0x4834, - /* Array index: 0x1FAC */ 0x924A,0x483E, - /* Array index: 0x1FAC */ 0x925E,0x483B, - /* Array index: 0x1FAC */ 0x9260,0x4843, - /* Array index: 0x1FAC */ 0x9261,0x4847, - /* Array index: 0x1FAC */ 0x9276,0x4E60, - /* Array index: 0x1FAC */ 0x9294,0x4E64, - /* Array index: 0x1FAC */ 0x9295,0x4E71, - /* Array index: 0x1FAC */ 0x92EE,0x4E6E, - /* Array index: 0x1FAC */ 0x92EF,0x553A, - /* Array index: 0x1FAC */ 0x92F1,0x5533, - /* Array index: 0x1FAC */ 0x9306,0x5B2F, - /* Array index: 0x1FAC */ 0x932D,0x5B39, - /* Array index: 0x1FAC */ 0x9334,0x5B42, - /* Array index: 0x1FAC */ 0x9335,0x5B48, - /* Array index: 0x1FAC */ 0x9338,0x5B32, - /* Array index: 0x1FAC */ 0x9339,0x5B47, - /* Array index: 0x1FAC */ 0x933C,0x5B33, - /* Array index: 0x1FAC */ 0x9346,0x5B38, - /* Array index: 0x1FAC */ 0x9347,0x5F7E, - /* Array index: 0x1FAC */ 0x9349,0x6025, - /* Array index: 0x1FAC */ 0x935C,0x6023, - /* Array index: 0x1FAC */ 0x935E,0x6036, - /* Array index: 0x1FAC */ 0x9367,0x6038, - /* Array index: 0x1FAC */ 0x936A,0x602C, - /* Array index: 0x1FAC */ 0x936D,0x6029, - /* Array index: 0x1FAC */ 0x9371,0x6032, - /* Array index: 0x1FAC */ 0x9380,0x642F, - /* Array index: 0x1FAC */ 0x9383,0x5F7A, - /* Array index: 0x1FAC */ 0x9395,0x642B, - /* Array index: 0x1FAC */ 0x9399,0x642D, - /* Array index: 0x1FAC */ 0x93AF,0x5F7B, - /* Array index: 0x1FAC */ 0x93C0,0x675F, - /* Array index: 0x1FAC */ 0x93C2,0x674F, - /* Array index: 0x1FAC */ 0x93C4,0x675D, - /* Array index: 0x1FAC */ 0x93C7,0x674D, - /* Array index: 0x1FAC */ 0x93CA,0x6758, - /* Array index: 0x1FAC */ 0x93D9,0x6755, - /* Array index: 0x1FAC */ 0x93DA,0x6750, - /* Array index: 0x1FAC */ 0x93DE,0x674C, - /* Array index: 0x1FAC */ 0x93E3,0x675B, - /* Array index: 0x1FAC */ 0x93E6,0x6757, - /* Array index: 0x1FAC */ 0x93E7,0x6762, - /* Array index: 0x1FAC */ 0x93EC,0x6753, - /* Array index: 0x1FAC */ 0x93EE,0x675A, - /* Array index: 0x1FAC */ 0x9419,0x6A3F, - /* Array index: 0x1FAC */ 0x9420,0x6A38, - /* Array index: 0x1FAC */ 0x9430,0x6C52, - /* Array index: 0x1FAC */ 0x9431,0x6C58, - /* Array index: 0x1FAC */ 0x9436,0x6C4F, - /* Array index: 0x1FAC */ 0x9437,0x6C55, - /* Array index: 0x1FAC */ 0x9455,0x6F59, - /* Array index: 0x1FAC */ 0x9457,0x6F5B, - /* Array index: 0x1FAC */ 0x945D,0x6F5A, - /* Array index: 0x1FAC */ 0x945E,0x6F5C, - /* Array index: 0x1FAC */ 0x9462,0x6F58, - /* Array index: 0x1FAC */ 0x9468,0x7059, - /* Array index: 0x1FAC */ 0x9469,0x705A, - /* Array index: 0x1FAC */ 0x9586,0x3A29, - /* Array index: 0x1FAC */ 0x9588,0x3A2A, - /* Array index: 0x1FAC */ 0x958C,0x4141, - /* Array index: 0x1FAC */ 0x958D,0x4140, - /* Array index: 0x1FAC */ 0x9590,0x4142, - /* Array index: 0x1FAC */ 0x95AB,0x5550, - /* Array index: 0x1FAC */ 0x95AC,0x554F, - /* Array index: 0x1FAC */ 0x95AE,0x5551, - /* Array index: 0x1FAC */ 0x95B0,0x5552, - /* Array index: 0x1FAC */ 0x95C3,0x603E, - /* Array index: 0x1FAC */ 0x95C5,0x603F, - /* Array index: 0x1FAC */ 0x95C7,0x603B, - /* Array index: 0x1FAC */ 0x95C9,0x603D, - /* Array index: 0x1FAC */ 0x95CD,0x5B53, - /* Array index: 0x1FAC */ 0x961E,0x2169, - /* Array index: 0x1FAC */ 0x9628,0x252E, - /* Array index: 0x1FAC */ 0x962D,0x2530, - /* Array index: 0x1FAC */ 0x962F,0x252F, - /* Array index: 0x1FAC */ 0x9630,0x252D, - /* Array index: 0x1FAC */ 0x9643,0x287C, - /* Array index: 0x1FAC */ 0x964A,0x2D67, - /* Array index: 0x1FAC */ 0x964E,0x2D68, - /* Array index: 0x1FAC */ 0x964F,0x2D64, - /* Array index: 0x1FAC */ 0x9651,0x2D65, - /* Array index: 0x1FAC */ 0x9653,0x2D66, - /* Array index: 0x1FAC */ 0x9654,0x2D63, - /* Array index: 0x1FAC */ 0x965C,0x3348, - /* Array index: 0x1FAC */ 0x965F,0x3349, - /* Array index: 0x1FAC */ 0x966B,0x3A2D, - /* Array index: 0x1FAC */ 0x966D,0x3A2C, - /* Array index: 0x1FAC */ 0x966F,0x3A2F, - /* Array index: 0x1FAC */ 0x9671,0x3A2E, - /* Array index: 0x1FAC */ 0x967C,0x3A2B, - /* Array index: 0x1FAC */ 0x967E,0x4144, - /* Array index: 0x1FAC */ 0x9680,0x4148, - /* Array index: 0x1FAC */ 0x9683,0x4147, - /* Array index: 0x1FAC */ 0x9697,0x485A, - /* Array index: 0x1FAC */ 0x969E,0x4F23, - /* Array index: 0x1FAC */ 0x96A1,0x4F24, - /* Array index: 0x1FAC */ 0x96A2,0x5554, - /* Array index: 0x1FAC */ 0x96A4,0x5553, - /* Array index: 0x1FAC */ 0x96A9,0x5B5B, - /* Array index: 0x1FAC */ 0x96AC,0x6043, - /* Array index: 0x1FAC */ 0x96AE,0x6041, - /* Array index: 0x1FAC */ 0x96B0,0x6042, - /* Array index: 0x1FAC */ 0x96B3,0x643B, - /* Array index: 0x1FAC */ 0x96BC,0x334A, - /* Array index: 0x1FAC */ 0x96BF,0x3A30, - /* Array index: 0x1FAC */ 0x96C2,0x4149, - /* Array index: 0x1FAC */ 0x96C3,0x414B, - /* Array index: 0x1FAC */ 0x96C8,0x414A, - /* Array index: 0x1FAC */ 0x96CE,0x485B, - /* Array index: 0x1FAC */ 0x96D3,0x5555, - /* Array index: 0x1FAC */ 0x96D4,0x5B5C, - /* Array index: 0x1FAC */ 0x96D7,0x643C, - /* Array index: 0x1FAC */ 0x96D8,0x6440, - /* Array index: 0x1FAC */ 0x96DA,0x643D, - /* Array index: 0x1FAC */ 0x96DD,0x6441, - /* Array index: 0x1FAC */ 0x96DF,0x643F, - /* Array index: 0x1FAC */ 0x96E1,0x6766, - /* Array index: 0x1FAC */ 0x96E5,0x705B, - /* Array index: 0x1FAC */ 0x96F0,0x414D, - /* Array index: 0x1FAC */ 0x96F1,0x414C, - /* Array index: 0x1FAC */ 0x96F5,0x485F, - /* Array index: 0x1FAC */ 0x96F8,0x485E, - /* Array index: 0x1FAC */ 0x96FA,0x485C, - /* Array index: 0x1FAC */ 0x96FD,0x485D, - /* Array index: 0x1FAC */ 0x96FF,0x4F25, - /* Array index: 0x1FAC */ 0x9702,0x5558, - /* Array index: 0x1FAC */ 0x9705,0x5556, - /* Array index: 0x1FAC */ 0x9708,0x5557, - /* Array index: 0x1FAC */ 0x970B,0x5B5D, - /* Array index: 0x1FAC */ 0x9710,0x5B5F, - /* Array index: 0x1FAC */ 0x9712,0x5B5E, - /* Array index: 0x1FAC */ 0x9718,0x6046, - /* Array index: 0x1FAC */ 0x9719,0x6048, - /* Array index: 0x1FAC */ 0x971D,0x6047, - /* Array index: 0x1FAC */ 0x9735,0x6C5C, - /* Array index: 0x1FAC */ 0x973A,0x6C5D, - /* Array index: 0x1FAC */ 0x973F,0x6E40, - /* Array index: 0x1FAC */ 0x9743,0x705D, - /* Array index: 0x1FAC */ 0x9746,0x705C, - /* Array index: 0x1FAC */ 0x9747,0x705E, - /* Array index: 0x1FAC */ 0x9749,0x7146, - /* Array index: 0x1FAC */ 0x974B,0x717B, - /* Array index: 0x1FAC */ 0x9758,0x4F26, - /* Array index: 0x1FAC */ 0x975A,0x5559, - /* Array index: 0x1FAC */ 0x976A,0x3A31, - /* Array index: 0x1FAC */ 0x976C,0x414E, - /* Array index: 0x1FAC */ 0x976E,0x4150, - /* Array index: 0x1FAC */ 0x9770,0x414F, - /* Array index: 0x1FAC */ 0x9772,0x4863, - /* Array index: 0x1FAC */ 0x9773,0x4860, - /* Array index: 0x1FAC */ 0x9788,0x555C, - /* Array index: 0x1FAC */ 0x978A,0x555A, - /* Array index: 0x1FAC */ 0x978E,0x555B, - /* Array index: 0x1FAC */ 0x9794,0x5B62, - /* Array index: 0x1FAC */ 0x9797,0x5B61, - /* Array index: 0x1FAC */ 0x97B3,0x676C, - /* Array index: 0x1FAC */ 0x97B6,0x676E, - /* Array index: 0x1FAC */ 0x97B7,0x676D, - /* Array index: 0x1FAC */ 0x97B9,0x6A58, - /* Array index: 0x1FAC */ 0x97BB,0x6A59, - /* Array index: 0x1FAC */ 0x97BF,0x6C5E, - /* Array index: 0x1FAC */ 0x97C4,0x6F5D, - /* Array index: 0x1FAC */ 0x97C5,0x6F5E, - /* Array index: 0x1FAC */ 0x97C7,0x705F, - /* Array index: 0x1FAC */ 0x97F0,0x5B63, - /* Array index: 0x1FAC */ 0x97F1,0x6050, - /* Array index: 0x1FAC */ 0x97F8,0x5B64, - /* Array index: 0x1FAC */ 0x97FA,0x6451, - /* Array index: 0x1FAC */ 0x97FD,0x6A5A, - /* Array index: 0x1FAC */ 0x97FE,0x6A5B, - /* Array index: 0x1FAC */ 0x9800,0x6F5F, - /* Array index: 0x1FAC */ 0x9804,0x3A32, - /* Array index: 0x1FAC */ 0x9807,0x4151, - /* Array index: 0x1FAC */ 0x9816,0x4F33, - /* Array index: 0x1FAC */ 0x981B,0x5565, - /* Array index: 0x1FAC */ 0x981D,0x5560, - /* Array index: 0x1FAC */ 0x981E,0x555F, - /* Array index: 0x1FAC */ 0x9820,0x5564, - /* Array index: 0x1FAC */ 0x982F,0x5B66, - /* Array index: 0x1FAC */ 0x9832,0x5B67, - /* Array index: 0x1FAC */ 0x9835,0x5B65, - /* Array index: 0x1FAC */ 0x9857,0x6775, - /* Array index: 0x1FAC */ 0x9859,0x6773, - /* Array index: 0x1FAC */ 0x9869,0x6E43, - /* Array index: 0x1FAC */ 0x986A,0x6E42, - /* Array index: 0x1FAC */ 0x98A9,0x4152, - /* Array index: 0x1FAC */ 0x98B2,0x5567, - /* Array index: 0x1FAC */ 0x98B8,0x6455, - /* Array index: 0x1FAC */ 0x98C6,0x6C62, - /* Array index: 0x1FAC */ 0x98C9,0x6C61, - /* Array index: 0x1FAC */ 0x98CB,0x6E44, - /* Array index: 0x1FAC */ 0x98CC,0x717E, - /* Array index: 0x1FAC */ 0x98E3,0x334B, - /* Array index: 0x1FAC */ 0x98E5,0x3A33, - /* Array index: 0x1FAC */ 0x98EB,0x4153, - /* Array index: 0x1FAC */ 0x98F6,0x4868, - /* Array index: 0x1FAC */ 0x98F9,0x4869, - /* Array index: 0x1FAC */ 0x98FA,0x5569, - /* Array index: 0x1FAC */ 0x9900,0x4F37, - /* Array index: 0x1FAC */ 0x9902,0x4F36, - /* Array index: 0x1FAC */ 0x9907,0x4F38, - /* Array index: 0x1FAC */ 0x9908,0x5568, - /* Array index: 0x1FAC */ 0x9911,0x556A, - /* Array index: 0x1FAC */ 0x991F,0x5B69, - /* Array index: 0x1FAC */ 0x9924,0x5B68, - /* Array index: 0x1FAC */ 0x9925,0x6057, - /* Array index: 0x1FAC */ 0x993A,0x6458, - /* Array index: 0x1FAC */ 0x993C,0x6457, - /* Array index: 0x1FAC */ 0x9941,0x6456, - /* Array index: 0x1FAC */ 0x9943,0x677C, - /* Array index: 0x1FAC */ 0x9947,0x677B, - /* Array index: 0x1FAC */ 0x9948,0x677A, - /* Array index: 0x1FAC */ 0x994B,0x6A66, - /* Array index: 0x1FAC */ 0x994C,0x6A65, - /* Array index: 0x1FAC */ 0x994E,0x6A63, - /* Array index: 0x1FAC */ 0x9950,0x6A62, - /* Array index: 0x1FAC */ 0x9953,0x6A67, - /* Array index: 0x1FAC */ 0x9954,0x6E45, - /* Array index: 0x1FAC */ 0x9956,0x6C65, - /* Array index: 0x1FAC */ 0x9958,0x6C64, - /* Array index: 0x1FAC */ 0x9959,0x6A64, - /* Array index: 0x1FAC */ 0x995B,0x6E46, - /* Array index: 0x1FAC */ 0x995F,0x7148, - /* Array index: 0x1FAC */ 0x9961,0x7221, - /* Array index: 0x1FAC */ 0x9997,0x3A34, - /* Array index: 0x1FAC */ 0x9998,0x6061, - /* Array index: 0x1FAC */ 0x99A1,0x6063, - /* Array index: 0x1FAC */ 0x99A3,0x6062, - /* Array index: 0x1FAC */ 0x99A6,0x677D, - /* Array index: 0x1FAC */ 0x99A7,0x677E, - /* Array index: 0x1FAC */ 0x99AB,0x7222, - /* Array index: 0x1FAC */ 0x99AF,0x486A, - /* Array index: 0x1FAC */ 0x99B0,0x486C, - /* Array index: 0x1FAC */ 0x99B2,0x486B, - /* Array index: 0x1FAC */ 0x99B5,0x486D, - /* Array index: 0x1FAC */ 0x99C2,0x4F3F, - /* Array index: 0x1FAC */ 0x99C3,0x4F3B, - /* Array index: 0x1FAC */ 0x99C7,0x4F41, - /* Array index: 0x1FAC */ 0x99DC,0x556F, - /* Array index: 0x1FAC */ 0x9A3D,0x6C67, - /* Array index: 0x1FAC */ 0x9A3F,0x6C6D, - /* Array index: 0x1FAC */ 0x9A41,0x6C6B, - /* Array index: 0x1FAC */ 0x9A42,0x6C6A, - /* Array index: 0x1FAC */ 0x9A44,0x6C69, - /* Array index: 0x1FAC */ 0x9A59,0x6F61, - /* Array index: 0x1FAC */ 0x9A5E,0x7061, - /* Array index: 0x1FAC */ 0x9A60,0x7165, - /* Array index: 0x1FAC */ 0x9AAB,0x486F, - /* Array index: 0x1FAC */ 0x9AAD,0x486E, - /* Array index: 0x1FAC */ 0x9AB1,0x4F42, - /* Array index: 0x1FAC */ 0x9AB3,0x557B, - /* Array index: 0x1FAC */ 0x9AB4,0x5B78, - /* Array index: 0x1FAC */ 0x9AB9,0x5B76, - /* Array index: 0x1FAC */ 0x9ABB,0x5B79, - /* Array index: 0x1FAC */ 0x9AC6,0x6A74, - /* Array index: 0x1FAC */ 0x9AC7,0x6A72, - /* Array index: 0x1FAC */ 0x9ACA,0x6A73, - /* Array index: 0x1FAC */ 0x9ACD,0x6C6E, - /* Array index: 0x1FAC */ 0x9AD0,0x6E51, - /* Array index: 0x1FAC */ 0x9AD5,0x7062, - /* Array index: 0x1FAC */ 0x9ADC,0x6464, - /* Array index: 0x1FAC */ 0x9ADF,0x334C, - /* Array index: 0x1FAC */ 0x9AE3,0x4F43, - /* Array index: 0x1FAC */ 0x9AE7,0x4F44, - /* Array index: 0x1FAC */ 0x9AEB,0x557D, - /* Array index: 0x1FAC */ 0x9AEC,0x557C, - /* Array index: 0x1FAC */ 0x9B01,0x6073, - /* Array index: 0x1FAC */ 0x9B04,0x6466, - /* Array index: 0x1FAC */ 0x9B05,0x6467, - /* Array index: 0x1FAC */ 0x9B24,0x7226, - /* Array index: 0x1FAC */ 0x9B29,0x6468, - /* Array index: 0x1FAC */ 0x9B2B,0x6E53, - /* Array index: 0x1FAC */ 0x9B2E,0x7166, - /* Array index: 0x1FAC */ 0x9B2F,0x334D, - /* Array index: 0x1FAC */ 0x9B33,0x5B7E, - /* Array index: 0x1FAC */ 0x9B35,0x6469, - /* Array index: 0x1FAC */ 0x9B37,0x6833, - /* Array index: 0x1FAC */ 0x9B3A,0x6C73, - /* Array index: 0x1FAC */ 0x9B3B,0x6E54, - /* Array index: 0x1FAC */ 0x9B3E,0x4F45, - /* Array index: 0x1FAC */ 0x9B3F,0x4F46, - /* Array index: 0x1FAC */ 0x9B43,0x5624, - /* Array index: 0x1FAC */ 0x9B46,0x5623, - /* Array index: 0x1FAC */ 0x9B52,0x6C74, - /* Array index: 0x1FAC */ 0x9B55,0x6E56, - /* Array index: 0x1FAC */ 0x9B56,0x6E55, - /* Array index: 0x1FAC */ 0x9B59,0x7063, - /* Array index: 0x1FAC */ 0x9B5B,0x4870, - /* Array index: 0x1FAC */ 0x9B6C,0x562E, - /* Array index: 0x1FAC */ 0x9B90,0x5C2A, - /* Array index: 0x1FAC */ 0x9B92,0x5C29, - /* Array index: 0x1FAC */ 0x9B93,0x5C28, - /* Array index: 0x1FAC */ 0x9B95,0x5C2C, - /* Array index: 0x1FAC */ 0x9B9A,0x6076, - /* Array index: 0x1FAC */ 0x9B9B,0x6079, - /* Array index: 0x1FAC */ 0x9BAF,0x6123, - /* Array index: 0x1FAC */ 0x9BBD,0x6478, - /* Array index: 0x1FAC */ 0x9BBF,0x6470, - /* Array index: 0x1FAC */ 0x9BC1,0x6471, - /* Array index: 0x1FAC */ 0x9BF0,0x683B, - /* Array index: 0x1FAC */ 0x9BF7,0x6A7A, - /* Array index: 0x1FAC */ 0x9BF8,0x6A7D, - /* Array index: 0x1FAC */ 0x9C0E,0x6B22, - /* Array index: 0x1FAC */ 0x9C12,0x6A7C, - /* Array index: 0x1FAC */ 0x9C14,0x6B25, - /* Array index: 0x1FAC */ 0x9C17,0x6B24, - /* Array index: 0x1FAC */ 0x9C1C,0x6C77, - /* Array index: 0x1FAC */ 0x9C1D,0x6C76, - /* Array index: 0x1FAC */ 0x9C21,0x6C7D, - /* Array index: 0x1FAC */ 0x9C23,0x6C79, - /* Array index: 0x1FAC */ 0x9C24,0x6C7C, - /* Array index: 0x1FAC */ 0x9C44,0x6E5A, - /* Array index: 0x1FAC */ 0x9C46,0x6E57, - /* Array index: 0x1FAC */ 0x9C55,0x6F6B, - /* Array index: 0x1FAC */ 0x9C58,0x6F66, - /* Array index: 0x1FAC */ 0x9C59,0x6F6C, - /* Array index: 0x1FAC */ 0x9C5E,0x7068, - /* Array index: 0x1FAC */ 0x9C60,0x7069, - /* Array index: 0x1FAC */ 0x9C6D,0x714B, - /* Array index: 0x1FAC */ 0x9C6E,0x714A, - /* Array index: 0x1FAC */ 0x9C79,0x7238, - /* Array index: 0x1FAC */ 0x9C7A,0x723C, - /* Array index: 0x1FAC */ 0x9CE6,0x4154, - /* Array index: 0x1FAC */ 0x9CE7,0x4873, - /* Array index: 0x1FAC */ 0x9CEA,0x4871, - /* Array index: 0x1FAC */ 0x9CED,0x4872, - /* Array index: 0x1FAC */ 0x9CF1,0x4F4A, - /* Array index: 0x1FAC */ 0x9CF2,0x4F4B, - /* Array index: 0x1FAC */ 0x9CF5,0x4F4C, - /* Array index: 0x1FAC */ 0x9D10,0x5C38, - /* Array index: 0x1FAC */ 0x9D14,0x5C33, - /* Array index: 0x1FAC */ 0x9D25,0x5C2F, - /* Array index: 0x1FAC */ 0x9D29,0x5C34, - /* Array index: 0x1FAC */ 0x9D4F,0x647B, - /* Array index: 0x1FAC */ 0x9D5F,0x6527, - /* Array index: 0x1FAC */ 0x9D90,0x6B2D, - /* Array index: 0x1FAC */ 0x9D92,0x6B2B, - /* Array index: 0x1FAC */ 0x9E1D,0x723D, - /* Array index: 0x1FAC */ 0x9E7A,0x6D37, - /* Array index: 0x1FAC */ 0x9E80,0x4874, - /* Array index: 0x1FAC */ 0x9E83,0x563B, - /* Array index: 0x1FAC */ 0x9E91,0x6860, - /* Array index: 0x1FAC */ 0x9E94,0x685F, - /* Array index: 0x1FAC */ 0x9EA0,0x7076, - /* Array index: 0x1FAC */ 0x9EA1,0x7152, - /* Array index: 0x1FAC */ 0x9EA4,0x7241, - /* Array index: 0x1FAC */ 0x9EA7,0x4F4D, - /* Array index: 0x1FAC */ 0x9EAD,0x5C3F, - /* Array index: 0x1FAC */ 0x9EAE,0x5C3E, - /* Array index: 0x1FAC */ 0x9EB0,0x6139, - /* Array index: 0x1FAC */ 0x9EB6,0x6E74, - /* Array index: 0x1FAC */ 0x9EB7,0x7239, - /* Array index: 0x1FAC */ 0x9EC0,0x6861, - /* Array index: 0x1FAC */ 0x9EC2,0x7024, - /* Array index: 0x1FAC */ 0x9EC8,0x613A, - /* Array index: 0x1FAC */ 0x9ED0,0x7025, - /* Array index: 0x1FAC */ 0x9ED3,0x563C, - /* Array index: 0x1FAC */ 0x9ED5,0x5C40, - /* Array index: 0x1FAC */ 0x9ED6,0x5C41, - /* Array index: 0x1FAC */ 0x9EDA,0x613B, - /* Array index: 0x1FAC */ 0x9EDF,0x652C, - /* Array index: 0x1FAC */ 0x9EEB,0x6D39, - /* Array index: 0x1FAC */ 0x9EED,0x6D3B, - /* Array index: 0x1FAC */ 0x9EEE,0x6D3A, - /* Array index: 0x1FAC */ 0x9EF0,0x6E75, - /* Array index: 0x1FAC */ 0x9F06,0x7028, - /* Array index: 0x1FAC */ 0x9F09,0x7154, - /* Array index: 0x1FAC */ 0x9F0A,0x716E, - /* Array index: 0x1FAC */ 0x9F0F,0x563D, - /* Array index: 0x1FAC */ 0x9F10,0x563E, - /* Array index: 0x1FAC */ 0x9F12,0x5C43, - /* Array index: 0x1FAC */ 0x9F16,0x652F, - /* Array index: 0x1FAC */ 0x9F3D,0x5C44, - /* Array index: 0x1FAC */ 0x9F64,0x6D42, - /* Array index: 0x1FAC */ 0x9F65,0x6D41, - /* Array index: 0x1FAC */ 0x9F6B,0x6E7A, - /* Array index: 0x1FAC */ 0x9F7E,0x7242, - /* Array index: 0x1FAC */ 0x9F91,0x6B4D, - /* Array index: 0x1FAC */ 0x9F92,0x6D43, - /* Array index: 0x1FAC */ 0x9F95,0x6E7B, - /* Array index: 0x1FAC */ 0x9F98,0x7244, - /* Array index: 0x1FAC */ 0x9FA0,0x6142, - /* Array index: 0x1FAC */ 0x9FA2,0x6E7C, - /* Array index: 0x1FAC */ 0x9FA4,0x716F, -}; - -#endif /* ICONV_FROM_UCS_CCS_CNS11643_PLANE2 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * cns11643_plane2 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_cns11643_plane2 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_CNS11643_PLANE2, /* CCS name */ - TABLE_16BIT, /* Table bits */ -#if defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE2) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&from_ucs_size_cns11643_plane2, /* UCS -> cns11643_plane2 table size-optimized table */ -#elif defined (ICONV_FROM_UCS_CCS_CNS11643_PLANE2) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&from_ucs_speed_cns11643_plane2, /* UCS -> cns11643_plane2 table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -#if defined (ICONV_TO_UCS_CCS_CNS11643_PLANE2) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&to_ucs_size_cns11643_plane2 /* cns11643_plane2 -> UCS table speed-optimized table */ -#elif defined (ICONV_TO_UCS_CCS_CNS11643_PLANE2) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&to_ucs_speed_cns11643_plane2 /* cns11643_plane2 -> UCS table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_CNS11643_PLANE2) || ... */ - diff --git a/lib/iconv/ccs/cp775.c b/lib/iconv/ccs/cp775.c deleted file mode 100644 index f7c4af5..0000000 --- a/lib/iconv/ccs/cp775.c +++ /dev/null @@ -1,341 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for cp775 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_CP775) \ - || defined (ICONV_FROM_UCS_CCS_CP775) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit cp775 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_CP775) - -static const __uint16_t -to_ucs_speed_cp775[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0106,0x00FC,0x00E9,0x0101,0x00E4,0x0123,0x00E5,0x0107, - 0x0142,0x0113,0x0156,0x0157,0x012B,0x0179,0x00C4,0x00C5, - 0x00C9,0x00E6,0x00C6,0x014D,0x00F6,0x0122,0x00A2,0x015A, - 0x015B,0x00D6,0x00DC,0x00F8,0x00A3,0x00D8,0x00D7,0x00A4, - 0x0100,0x012A,0x00F3,0x017B,0x017C,0x017A,0x201D,0x00A6, - 0x00A9,0x00AE,0x00AC,0x00BD,0x00BC,0x0141,0x00AB,0x00BB, - 0x2591,0x2592,0x2593,0x2502,0x2524,0x0104,0x010C,0x0118, - 0x0116,0x2563,0x2551,0x2557,0x255D,0x012E,0x0160,0x2510, - 0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x0172,0x016A, - 0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x017D, - 0x0105,0x010D,0x0119,0x0117,0x012F,0x0161,0x0173,0x016B, - 0x017E,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580, - 0x00D3,0x00DF,0x014C,0x0143,0x00F5,0x00D5,0x00B5,0x0144, - 0x0136,0x0137,0x013B,0x013C,0x0146,0x0112,0x0145,0x2019, - 0x00AD,0x00B1,0x201C,0x00BE,0x00B6,0x00A7,0x00F7,0x201E, - 0x00B0,0x2219,0x00B7,0x00B9,0x00B3,0x00B2,0x25A0,0x00A0, - -}; - -#endif /* ICONV_TO_UCS_CCS_CP775 */ - -/* - * 8-bit UCS -> cp775 speed-optimized table (1794 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_CP775) - -static const unsigned char -from_ucs_speed_cp775[] = -{ - W(0x00A0), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0402),W(INVBLK),W(0x0502),W(INVBLK), - W(INVBLK),W(0x0602),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x96,0x9C,0x9F,0xFF,0xA7,0xF5, - 0xFF,0xA8,0xFF,0xAE,0xAA,0xF0,0xA9,0xFF, - 0xF8,0xF1,0xFD,0xFC,0xFF,0xE6,0xF4,0xFA, - 0xFF,0xFB,0xFF,0xAF,0xAC,0xAB,0xF3,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x8E,0x8F,0x92,0xFF, - 0xFF,0x90,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xE0,0xFF,0xE5,0x99,0x9E, - 0x9D,0xFF,0xFF,0xFF,0x9A,0xFF,0xFF,0xE1, - 0xFF,0xFF,0xFF,0xFF,0x84,0x86,0x91,0xFF, - 0xFF,0x82,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xA2,0xFF,0xE4,0x94,0xF6, - 0x9B,0xFF,0xFF,0xFF,0x81,0xFF,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xA0,0x83,0xFF,0xFF,0xB5,0xD0,0x80,0x87, - 0xFF,0xFF,0xFF,0xFF,0xB6,0xD1,0xFF,0xFF, - 0xFF,0xFF,0xED,0x89,0xFF,0xFF,0xB8,0xD3, - 0xB7,0xD2,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x95,0x85,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xA1,0x8C,0xFF,0xFF,0xBD,0xD4, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE8,0xE9, - 0xFF,0xFF,0xFF,0xEA,0xEB,0xFF,0xFF,0xFF, - 0xFF,0xAD,0x88,0xE3,0xE7,0xEE,0xEC,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xE2,0x93,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8A,0x8B, - 0xFF,0xFF,0x97,0x98,0xFF,0xFF,0xFF,0xFF, - 0xBE,0xD5,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xC7,0xD7,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xC6,0xD6,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x8D,0xA5,0xA3,0xA4,0xCF,0xD8,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xEF,0xFF,0xFF,0xF2,0xA6,0xF7,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 35, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xF9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 38, Array index 0x0602 */ - 0xC4,0xFF,0xB3,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xDA,0xFF,0xFF,0xFF, - 0xBF,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF, - 0xD9,0xFF,0xFF,0xFF,0xC3,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xB4,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC2,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC1,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC5,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xCD,0xBA,0xFF,0xFF,0xC9,0xFF,0xFF,0xBB, - 0xFF,0xFF,0xC8,0xFF,0xFF,0xBC,0xFF,0xFF, - 0xCC,0xFF,0xFF,0xB9,0xFF,0xFF,0xCB,0xFF, - 0xFF,0xCA,0xFF,0xFF,0xCE,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xDF,0xFF,0xFF,0xFF,0xDC,0xFF,0xFF,0xFF, - 0xDB,0xFF,0xFF,0xFF,0xDD,0xFF,0xFF,0xFF, - 0xDE,0xB0,0xB1,0xB2,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_CP775 */ - -/* - * cp775 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_cp775 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_CP775, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_CP775) - (__uint16_t *)&from_ucs_speed_cp775, /* UCS -> cp775 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_CP775) - (__uint16_t *)&to_ucs_speed_cp775 /* cp775 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_CP775) || ... */ - diff --git a/lib/iconv/ccs/cp850.c b/lib/iconv/ccs/cp850.c deleted file mode 100644 index 57f5906..0000000 --- a/lib/iconv/ccs/cp850.c +++ /dev/null @@ -1,308 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for cp850 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_CP850) \ - || defined (ICONV_FROM_UCS_CCS_CP850) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit cp850 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_CP850) - -static const __uint16_t -to_ucs_speed_cp850[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x00E0,0x00E5,0x00E7, - 0x00EA,0x00EB,0x00E8,0x00EF,0x00EE,0x00EC,0x00C4,0x00C5, - 0x00C9,0x00E6,0x00C6,0x00F4,0x00F6,0x00F2,0x00FB,0x00F9, - 0x00FF,0x00D6,0x00DC,0x00F8,0x00A3,0x00D8,0x00D7,0x0192, - 0x00E1,0x00ED,0x00F3,0x00FA,0x00F1,0x00D1,0x00AA,0x00BA, - 0x00BF,0x00AE,0x00AC,0x00BD,0x00BC,0x00A1,0x00AB,0x00BB, - 0x2591,0x2592,0x2593,0x2502,0x2524,0x00C1,0x00C2,0x00C0, - 0x00A9,0x2563,0x2551,0x2557,0x255D,0x00A2,0x00A5,0x2510, - 0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x00E3,0x00C3, - 0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x00A4, - 0x00F0,0x00D0,0x00CA,0x00CB,0x00C8,0x0131,0x00CD,0x00CE, - 0x00CF,0x2518,0x250C,0x2588,0x2584,0x00A6,0x00CC,0x2580, - 0x00D3,0x00DF,0x00D4,0x00D2,0x00F5,0x00D5,0x00B5,0x00FE, - 0x00DE,0x00DA,0x00DB,0x00D9,0x00FD,0x00DD,0x00AF,0x00B4, - 0x00AD,0x00B1,0x2017,0x00BE,0x00B6,0x00A7,0x00F7,0x00B8, - 0x00B0,0x00A8,0x00B7,0x00B9,0x00B3,0x00B2,0x25A0,0x00A0, - -}; - -#endif /* ICONV_TO_UCS_CCS_CP850 */ - -/* - * 8-bit UCS -> cp850 speed-optimized table (1538 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_CP850) - -static const unsigned char -from_ucs_speed_cp850[] = -{ - W(0x00A0), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0402),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(0x0502),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xAD,0xBD,0x9C,0xCF,0xBE,0xDD,0xF5, - 0xF9,0xB8,0xA6,0xAE,0xAA,0xF0,0xA9,0xEE, - 0xF8,0xF1,0xFD,0xFC,0xEF,0xE6,0xF4,0xFA, - 0xF7,0xFB,0xA7,0xAF,0xAC,0xAB,0xF3,0xA8, - 0xB7,0xB5,0xB6,0xC7,0x8E,0x8F,0x92,0x80, - 0xD4,0x90,0xD2,0xD3,0xDE,0xD6,0xD7,0xD8, - 0xD1,0xA5,0xE3,0xE0,0xE2,0xE5,0x99,0x9E, - 0x9D,0xEB,0xE9,0xEA,0x9A,0xED,0xE8,0xE1, - 0x85,0xA0,0x83,0xC6,0x84,0x86,0x91,0x87, - 0x8A,0x82,0x88,0x89,0x8D,0xA1,0x8C,0x8B, - 0xD0,0xA4,0x95,0xA2,0x93,0xE4,0x94,0xF6, - 0x9B,0x97,0xA3,0x96,0x81,0xEC,0xE7,0x98, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xD5,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x9F,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF2, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 38, Array index 0x0502 */ - 0xC4,0xFF,0xB3,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xDA,0xFF,0xFF,0xFF, - 0xBF,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF, - 0xD9,0xFF,0xFF,0xFF,0xC3,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xB4,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC2,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC1,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC5,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xCD,0xBA,0xFF,0xFF,0xC9,0xFF,0xFF,0xBB, - 0xFF,0xFF,0xC8,0xFF,0xFF,0xBC,0xFF,0xFF, - 0xCC,0xFF,0xFF,0xB9,0xFF,0xFF,0xCB,0xFF, - 0xFF,0xCA,0xFF,0xFF,0xCE,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xDF,0xFF,0xFF,0xFF,0xDC,0xFF,0xFF,0xFF, - 0xDB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xB0,0xB1,0xB2,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_CP850 */ - -/* - * cp850 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_cp850 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_CP850, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_CP850) - (__uint16_t *)&from_ucs_speed_cp850, /* UCS -> cp850 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_CP850) - (__uint16_t *)&to_ucs_speed_cp850 /* cp850 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_CP850) || ... */ - diff --git a/lib/iconv/ccs/cp852.c b/lib/iconv/ccs/cp852.c deleted file mode 100644 index c622da4..0000000 --- a/lib/iconv/ccs/cp852.c +++ /dev/null @@ -1,308 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for cp852 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_CP852) \ - || defined (ICONV_FROM_UCS_CCS_CP852) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit cp852 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_CP852) - -static const __uint16_t -to_ucs_speed_cp852[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x016F,0x0107,0x00E7, - 0x0142,0x00EB,0x0150,0x0151,0x00EE,0x0179,0x00C4,0x0106, - 0x00C9,0x0139,0x013A,0x00F4,0x00F6,0x013D,0x013E,0x015A, - 0x015B,0x00D6,0x00DC,0x0164,0x0165,0x0141,0x00D7,0x010D, - 0x00E1,0x00ED,0x00F3,0x00FA,0x0104,0x0105,0x017D,0x017E, - 0x0118,0x0119,0x00AC,0x017A,0x010C,0x015F,0x00AB,0x00BB, - 0x2591,0x2592,0x2593,0x2502,0x2524,0x00C1,0x00C2,0x011A, - 0x015E,0x2563,0x2551,0x2557,0x255D,0x017B,0x017C,0x2510, - 0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x0102,0x0103, - 0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x00A4, - 0x0111,0x0110,0x010E,0x00CB,0x010F,0x0147,0x00CD,0x00CE, - 0x011B,0x2518,0x250C,0x2588,0x2584,0x0162,0x016E,0x2580, - 0x00D3,0x00DF,0x00D4,0x0143,0x0144,0x0148,0x0160,0x0161, - 0x0154,0x00DA,0x0155,0x0170,0x00FD,0x00DD,0x0163,0x00B4, - 0x00AD,0x02DD,0x02DB,0x02C7,0x02D8,0x00A7,0x00F7,0x00B8, - 0x00B0,0x00A8,0x02D9,0x0171,0x0158,0x0159,0x25A0,0x00A0, - -}; - -#endif /* ICONV_TO_UCS_CCS_CP852 */ - -/* - * 8-bit UCS -> cp852 speed-optimized table (1538 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_CP852) - -static const unsigned char -from_ucs_speed_cp852[] = -{ - W(0x00A0), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(0x0402),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(0x0502),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,0xF5, - 0xF9,0xFF,0xFF,0xAE,0xAA,0xF0,0xFF,0xFF, - 0xF8,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF, - 0xF7,0xFF,0xFF,0xAF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xB5,0xB6,0xFF,0x8E,0xFF,0xFF,0x80, - 0xFF,0x90,0xFF,0xD3,0xFF,0xD6,0xD7,0xFF, - 0xFF,0xFF,0xFF,0xE0,0xE2,0xFF,0x99,0x9E, - 0xFF,0xFF,0xE9,0xFF,0x9A,0xED,0xFF,0xE1, - 0xFF,0xA0,0x83,0xFF,0x84,0xFF,0xFF,0x87, - 0xFF,0x82,0xFF,0x89,0xFF,0xA1,0x8C,0xFF, - 0xFF,0xFF,0xFF,0xA2,0x93,0xFF,0x94,0xF6, - 0xFF,0xFF,0xA3,0xFF,0x81,0xEC,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xC6,0xC7,0xA4,0xA5,0x8F,0x86, - 0xFF,0xFF,0xFF,0xFF,0xAC,0x9F,0xD2,0xD4, - 0xD1,0xD0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA8,0xA9,0xB7,0xD8,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x91,0x92,0xFF,0xFF,0x95,0x96,0xFF, - 0xFF,0x9D,0x88,0xE3,0xE4,0xFF,0xFF,0xD5, - 0xE5,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x8A,0x8B,0xFF,0xFF,0xE8,0xEA,0xFF,0xFF, - 0xFC,0xFD,0x97,0x98,0xFF,0xFF,0xB8,0xAD, - 0xE6,0xE7,0xDD,0xEE,0x9B,0x9C,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDE,0x85, - 0xEB,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x8D,0xAB,0xBD,0xBE,0xA6,0xA7,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 3, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xF4,0xFA,0xFF,0xF2,0xFF,0xF1,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 38, Array index 0x0502 */ - 0xC4,0xFF,0xB3,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xDA,0xFF,0xFF,0xFF, - 0xBF,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF, - 0xD9,0xFF,0xFF,0xFF,0xC3,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xB4,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC2,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC1,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC5,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xCD,0xBA,0xFF,0xFF,0xC9,0xFF,0xFF,0xBB, - 0xFF,0xFF,0xC8,0xFF,0xFF,0xBC,0xFF,0xFF, - 0xCC,0xFF,0xFF,0xB9,0xFF,0xFF,0xCB,0xFF, - 0xFF,0xCA,0xFF,0xFF,0xCE,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xDF,0xFF,0xFF,0xFF,0xDC,0xFF,0xFF,0xFF, - 0xDB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xB0,0xB1,0xB2,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_CP852 */ - -/* - * cp852 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_cp852 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_CP852, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_CP852) - (__uint16_t *)&from_ucs_speed_cp852, /* UCS -> cp852 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_CP852) - (__uint16_t *)&to_ucs_speed_cp852 /* cp852 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_CP852) || ... */ - diff --git a/lib/iconv/ccs/cp855.c b/lib/iconv/ccs/cp855.c deleted file mode 100644 index 41c52ed..0000000 --- a/lib/iconv/ccs/cp855.c +++ /dev/null @@ -1,308 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for cp855 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_CP855) \ - || defined (ICONV_FROM_UCS_CCS_CP855) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit cp855 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_CP855) - -static const __uint16_t -to_ucs_speed_cp855[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0452,0x0402,0x0453,0x0403,0x0451,0x0401,0x0454,0x0404, - 0x0455,0x0405,0x0456,0x0406,0x0457,0x0407,0x0458,0x0408, - 0x0459,0x0409,0x045A,0x040A,0x045B,0x040B,0x045C,0x040C, - 0x045E,0x040E,0x045F,0x040F,0x044E,0x042E,0x044A,0x042A, - 0x0430,0x0410,0x0431,0x0411,0x0446,0x0426,0x0434,0x0414, - 0x0435,0x0415,0x0444,0x0424,0x0433,0x0413,0x00AB,0x00BB, - 0x2591,0x2592,0x2593,0x2502,0x2524,0x0445,0x0425,0x0438, - 0x0418,0x2563,0x2551,0x2557,0x255D,0x0439,0x0419,0x2510, - 0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x043A,0x041A, - 0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x00A4, - 0x043B,0x041B,0x043C,0x041C,0x043D,0x041D,0x043E,0x041E, - 0x043F,0x2518,0x250C,0x2588,0x2584,0x041F,0x044F,0x2580, - 0x042F,0x0440,0x0420,0x0441,0x0421,0x0442,0x0422,0x0443, - 0x0423,0x0436,0x0416,0x0432,0x0412,0x044C,0x042C,0x2116, - 0x00AD,0x044B,0x042B,0x0437,0x0417,0x0448,0x0428,0x044D, - 0x042D,0x0449,0x0429,0x0447,0x0427,0x00A7,0x25A0,0x00A0, - -}; - -#endif /* ICONV_TO_UCS_CCS_CP855 */ - -/* - * 8-bit UCS -> cp855 speed-optimized table (1538 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_CP855) - -static const unsigned char -from_ucs_speed_cp855[] = -{ - W(0x00A0), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0302),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(0x0402),W(INVBLK),W(INVBLK), - W(INVBLK),W(0x0502),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,0xFD, - 0xFF,0xFF,0xFF,0xAE,0xFF,0xF0,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xAF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 5, Array index 0x0302 */ - 0xFF,0x85,0x81,0x83,0x87,0x89,0x8B,0x8D, - 0x8F,0x91,0x93,0x95,0x97,0xFF,0x99,0x9B, - 0xA1,0xA3,0xEC,0xAD,0xA7,0xA9,0xEA,0xF4, - 0xB8,0xBE,0xC7,0xD1,0xD3,0xD5,0xD7,0xDD, - 0xE2,0xE4,0xE6,0xE8,0xAB,0xB6,0xA5,0xFC, - 0xF6,0xFA,0x9F,0xF2,0xEE,0xF8,0x9D,0xE0, - 0xA0,0xA2,0xEB,0xAC,0xA6,0xA8,0xE9,0xF3, - 0xB7,0xBD,0xC6,0xD0,0xD2,0xD4,0xD6,0xD8, - 0xE1,0xE3,0xE5,0xE7,0xAA,0xB5,0xA4,0xFB, - 0xF5,0xF9,0x9E,0xF1,0xED,0xF7,0x9C,0xDE, - 0xFF,0x84,0x80,0x82,0x86,0x88,0x8A,0x8C, - 0x8E,0x90,0x92,0x94,0x96,0xFF,0x98,0x9A, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 38, Array index 0x0502 */ - 0xC4,0xFF,0xB3,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xDA,0xFF,0xFF,0xFF, - 0xBF,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF, - 0xD9,0xFF,0xFF,0xFF,0xC3,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xB4,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC2,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC1,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC5,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xCD,0xBA,0xFF,0xFF,0xC9,0xFF,0xFF,0xBB, - 0xFF,0xFF,0xC8,0xFF,0xFF,0xBC,0xFF,0xFF, - 0xCC,0xFF,0xFF,0xB9,0xFF,0xFF,0xCB,0xFF, - 0xFF,0xCA,0xFF,0xFF,0xCE,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xDF,0xFF,0xFF,0xFF,0xDC,0xFF,0xFF,0xFF, - 0xDB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xB0,0xB1,0xB2,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_CP855 */ - -/* - * cp855 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_cp855 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_CP855, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_CP855) - (__uint16_t *)&from_ucs_speed_cp855, /* UCS -> cp855 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_CP855) - (__uint16_t *)&to_ucs_speed_cp855 /* cp855 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_CP855) || ... */ - diff --git a/lib/iconv/ccs/cp866.c b/lib/iconv/ccs/cp866.c deleted file mode 100644 index c1dacd8..0000000 --- a/lib/iconv/ccs/cp866.c +++ /dev/null @@ -1,341 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for cp866 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_CP866) \ - || defined (ICONV_FROM_UCS_CCS_CP866) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit cp866 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_CP866) - -static const __uint16_t -to_ucs_speed_cp866[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, - 0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, - 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, - 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, - 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, - 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, - 0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556, - 0x2555,0x2563,0x2551,0x2557,0x255D,0x255C,0x255B,0x2510, - 0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x255E,0x255F, - 0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x2567, - 0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256B, - 0x256A,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580, - 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, - 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F, - 0x0401,0x0451,0x0404,0x0454,0x0407,0x0457,0x040E,0x045E, - 0x00B0,0x2219,0x00B7,0x221A,0x2116,0x00A4,0x25A0,0x00A0, - -}; - -#endif /* ICONV_TO_UCS_CCS_CP866 */ - -/* - * 8-bit UCS -> cp866 speed-optimized table (1794 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_CP866) - -static const unsigned char -from_ucs_speed_cp866[] = -{ - W(0x00A0), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0302),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(0x0402),W(0x0502),W(INVBLK), - W(INVBLK),W(0x0602),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 5, Array index 0x0302 */ - 0xFF,0xF0,0xFF,0xFF,0xF2,0xFF,0xFF,0xF4, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF6,0xFF, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xFF,0xF1,0xFF,0xFF,0xF3,0xFF,0xFF,0xF5, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 35, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xF9,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 38, Array index 0x0602 */ - 0xC4,0xFF,0xB3,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xDA,0xFF,0xFF,0xFF, - 0xBF,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF, - 0xD9,0xFF,0xFF,0xFF,0xC3,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xB4,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC2,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC1,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC5,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xCD,0xBA,0xD5,0xD6,0xC9,0xB8,0xB7,0xBB, - 0xD4,0xD3,0xC8,0xBE,0xBD,0xBC,0xC6,0xC7, - 0xCC,0xB5,0xB6,0xB9,0xD1,0xD2,0xCB,0xCF, - 0xD0,0xCA,0xD8,0xD7,0xCE,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xDF,0xFF,0xFF,0xFF,0xDC,0xFF,0xFF,0xFF, - 0xDB,0xFF,0xFF,0xFF,0xDD,0xFF,0xFF,0xFF, - 0xDE,0xB0,0xB1,0xB2,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_CP866 */ - -/* - * cp866 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_cp866 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_CP866, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_CP866) - (__uint16_t *)&from_ucs_speed_cp866, /* UCS -> cp866 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_CP866) - (__uint16_t *)&to_ucs_speed_cp866 /* cp866 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_CP866) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_1.c b/lib/iconv/ccs/iso_8859_1.c deleted file mode 100644 index 775bca6..0000000 --- a/lib/iconv/ccs/iso_8859_1.c +++ /dev/null @@ -1,209 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_1 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_1) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_1) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_1 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_1) - -static const __uint16_t -to_ucs_speed_iso_8859_1[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, - 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, - 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, - 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, - 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, - 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, - 0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, - 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, - 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, - 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, - 0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, - 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_1 */ - -/* - * 8-bit UCS -> iso_8859_1 speed-optimized table (770 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_1) - -static const unsigned char -from_ucs_speed_iso_8859_1[] = -{ - W(0x00FF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7, - 0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, - 0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_1 */ - -/* - * iso_8859_1 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_1 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_1, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_1) - (__uint16_t *)&from_ucs_speed_iso_8859_1, /* UCS -> iso_8859_1 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_1) - (__uint16_t *)&to_ucs_speed_iso_8859_1 /* iso_8859_1 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_1) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_10.c b/lib/iconv/ccs/iso_8859_10.c deleted file mode 100644 index b221a6a..0000000 --- a/lib/iconv/ccs/iso_8859_10.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_10 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_10) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_10) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_10 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_10) - -static const __uint16_t -to_ucs_speed_iso_8859_10[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,0x0104,0x0112,0x0122,0x012A,0x0128,0x0136,0x00A7, - 0x013B,0x0110,0x0160,0x0166,0x017D,0x00AD,0x016A,0x014A, - 0x00B0,0x0105,0x0113,0x0123,0x012B,0x0129,0x0137,0x00B7, - 0x013C,0x0111,0x0161,0x0167,0x017E,0x2015,0x016B,0x014B, - 0x0100,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x012E, - 0x010C,0x00C9,0x0118,0x00CB,0x0116,0x00CD,0x00CE,0x00CF, - 0x00D0,0x0145,0x014C,0x00D3,0x00D4,0x00D5,0x00D6,0x0168, - 0x00D8,0x0172,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, - 0x0101,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x012F, - 0x010D,0x00E9,0x0119,0x00EB,0x0117,0x00ED,0x00EE,0x00EF, - 0x00F0,0x0146,0x014D,0x00F3,0x00F4,0x00F5,0x00F6,0x0169, - 0x00F8,0x0173,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x0138, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_10 */ - -/* - * 8-bit UCS -> iso_8859_10 speed-optimized table (1282 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_10) - -static const unsigned char -from_ucs_speed_iso_8859_10[] = -{ - W(0x0138), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0402),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA7, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xAD,0xFF,0xFF, - 0xB0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB7, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xFF, - 0xFF,0xC9,0xFF,0xCB,0xFF,0xCD,0xCE,0xCF, - 0xD0,0xFF,0xFF,0xD3,0xD4,0xD5,0xD6,0xFF, - 0xD8,0xFF,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, - 0xFF,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xFF, - 0xFF,0xE9,0xFF,0xEB,0xFF,0xED,0xEE,0xEF, - 0xF0,0xFF,0xFF,0xF3,0xF4,0xF5,0xF6,0xFF, - 0xF8,0xFF,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, - /* Block 2, Array index 0x0302 */ - 0xC0,0xE0,0xFF,0xFF,0xA1,0xB1,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC8,0xE8,0xFF,0xFF, - 0xA9,0xB9,0xA2,0xB2,0xFF,0xFF,0xCC,0xEC, - 0xCA,0xEA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xA3,0xB3,0xFF,0xFF,0xFF,0xFF, - 0xA5,0xB5,0xA4,0xB4,0xFF,0xFF,0xC7,0xE7, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA6,0xB6, - 0xFF,0xFF,0xFF,0xA8,0xB8,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xD1,0xF1,0xFF, - 0xFF,0xFF,0xAF,0xBF,0xD2,0xF2,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xAA,0xBA,0xFF,0xFF,0xFF,0xFF,0xAB,0xBB, - 0xD7,0xF7,0xAE,0xBE,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xD9,0xF9,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xAC,0xBC,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xBD,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_10 */ - -/* - * iso_8859_10 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_10 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_10, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_10) - (__uint16_t *)&from_ucs_speed_iso_8859_10, /* UCS -> iso_8859_10 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_10) - (__uint16_t *)&to_ucs_speed_iso_8859_10 /* iso_8859_10 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_10) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_11.c b/lib/iconv/ccs/iso_8859_11.c deleted file mode 100644 index ebb5ec6..0000000 --- a/lib/iconv/ccs/iso_8859_11.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_11 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_11) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_11) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_11 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_11) - -static const __uint16_t -to_ucs_speed_iso_8859_11[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07, - 0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F, - 0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17, - 0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F, - 0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27, - 0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F, - 0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37, - 0x0E38,0x0E39,0x0E3A,INVALC,INVALC,INVALC,INVALC,0x0E3F, - 0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47, - 0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F, - 0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57, - 0x0E58,0x0E59,0x0E5A,0x0E5B,INVALC,INVALC,INVALC,INVALC, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_11 */ - -/* - * 8-bit UCS -> iso_8859_11 speed-optimized table (1026 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_11) - -static const unsigned char -from_ucs_speed_iso_8859_11[] = -{ - W(0xFFFF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(0x0302),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 15, Array index 0x0302 */ - 0xFF,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7, - 0xD8,0xD9,0xDA,0xFF,0xFF,0xFF,0xFF,0xDF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, - 0xF8,0xF9,0xFA,0xFB,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_11 */ - -/* - * iso_8859_11 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_11 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_11, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_11) - (__uint16_t *)&from_ucs_speed_iso_8859_11, /* UCS -> iso_8859_11 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_11) - (__uint16_t *)&to_ucs_speed_iso_8859_11 /* iso_8859_11 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_11) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_13.c b/lib/iconv/ccs/iso_8859_13.c deleted file mode 100644 index 3905cef..0000000 --- a/lib/iconv/ccs/iso_8859_13.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_13 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_13) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_13) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_13 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_13) - -static const __uint16_t -to_ucs_speed_iso_8859_13[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,0x201D,0x00A2,0x00A3,0x00A4,0x201E,0x00A6,0x00A7, - 0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6, - 0x00B0,0x00B1,0x00B2,0x00B3,0x201C,0x00B5,0x00B6,0x00B7, - 0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6, - 0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112, - 0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B, - 0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7, - 0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF, - 0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113, - 0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C, - 0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7, - 0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x2019, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_13 */ - -/* - * 8-bit UCS -> iso_8859_13 speed-optimized table (1282 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_13) - -static const unsigned char -from_ucs_speed_iso_8859_13[] = -{ - W(0x2019), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0402),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xFF,0xA2,0xA3,0xA4,0xFF,0xA6,0xA7, - 0xFF,0xA9,0xFF,0xAB,0xAC,0xAD,0xAE,0xFF, - 0xB0,0xB1,0xB2,0xB3,0xFF,0xB5,0xB6,0xB7, - 0xFF,0xB9,0xFF,0xBB,0xBC,0xBD,0xBE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC4,0xC5,0xAF,0xFF, - 0xFF,0xC9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xD3,0xFF,0xD5,0xD6,0xD7, - 0xA8,0xFF,0xFF,0xFF,0xDC,0xFF,0xFF,0xDF, - 0xFF,0xFF,0xFF,0xFF,0xE4,0xE5,0xBF,0xFF, - 0xFF,0xE9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xF3,0xFF,0xF5,0xF6,0xF7, - 0xB8,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xC2,0xE2,0xFF,0xFF,0xC0,0xE0,0xC3,0xE3, - 0xFF,0xFF,0xFF,0xFF,0xC8,0xE8,0xFF,0xFF, - 0xFF,0xFF,0xC7,0xE7,0xFF,0xFF,0xCB,0xEB, - 0xC6,0xE6,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xCC,0xEC,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xCE,0xEE,0xFF,0xFF,0xC1,0xE1, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCD,0xED, - 0xFF,0xFF,0xFF,0xCF,0xEF,0xFF,0xFF,0xFF, - 0xFF,0xD9,0xF9,0xD1,0xF1,0xD2,0xF2,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xD4,0xF4,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xBA, - 0xFF,0xFF,0xDA,0xFA,0xFF,0xFF,0xFF,0xFF, - 0xD0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xDB,0xFB,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xD8,0xF8,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xCA,0xEA,0xDD,0xFD,0xDE,0xFE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xB4,0xA1,0xA5,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_13 */ - -/* - * iso_8859_13 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_13 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_13, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_13) - (__uint16_t *)&from_ucs_speed_iso_8859_13, /* UCS -> iso_8859_13 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_13) - (__uint16_t *)&to_ucs_speed_iso_8859_13 /* iso_8859_13 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_13) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_14.c b/lib/iconv/ccs/iso_8859_14.c deleted file mode 100644 index 114d2df..0000000 --- a/lib/iconv/ccs/iso_8859_14.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_14 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_14) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_14) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_14 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_14) - -static const __uint16_t -to_ucs_speed_iso_8859_14[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,0x1E02,0x1E03,0x00A3,0x010A,0x010B,0x1E0A,0x00A7, - 0x1E80,0x00A9,0x1E82,0x1E0B,0x1EF2,0x00AD,0x00AE,0x0178, - 0x1E1E,0x1E1F,0x0120,0x0121,0x1E40,0x1E41,0x00B6,0x1E56, - 0x1E81,0x1E57,0x1E83,0x1E60,0x1EF3,0x1E84,0x1E85,0x1E61, - 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, - 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, - 0x0174,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x1E6A, - 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x0176,0x00DF, - 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, - 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, - 0x0175,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x1E6B, - 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x0177,0x00FF, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_14 */ - -/* - * 8-bit UCS -> iso_8859_14 speed-optimized table (1282 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_14) - -static const unsigned char -from_ucs_speed_iso_8859_14[] = -{ - W(0x00FF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(0x0402),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xFF,0xFF,0xA3,0xFF,0xFF,0xFF,0xA7, - 0xFF,0xA9,0xFF,0xFF,0xFF,0xAD,0xAE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB6,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xFF,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xFF, - 0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xFF,0xDF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xFF,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xFF, - 0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xA4,0xA5,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xB2,0xB3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xD0,0xF0,0xDE,0xFE, - 0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 31, Array index 0x0402 */ - 0xFF,0xFF,0xA1,0xA2,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xA6,0xAB,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB0,0xB1, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xB4,0xB5,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB7,0xB9, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xBB,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xD7,0xF7,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA8,0xB8,0xAA,0xBA,0xBD,0xBE,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xAC,0xBC,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_14 */ - -/* - * iso_8859_14 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_14 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_14, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_14) - (__uint16_t *)&from_ucs_speed_iso_8859_14, /* UCS -> iso_8859_14 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_14) - (__uint16_t *)&to_ucs_speed_iso_8859_14 /* iso_8859_14 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_14) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_15.c b/lib/iconv/ccs/iso_8859_15.c deleted file mode 100644 index 52dff02..0000000 --- a/lib/iconv/ccs/iso_8859_15.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_15 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_15) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_15) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_15 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_15) - -static const __uint16_t -to_ucs_speed_iso_8859_15[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,0x00A1,0x00A2,0x00A3,0x20AC,0x00A5,0x0160,0x00A7, - 0x0161,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, - 0x00B0,0x00B1,0x00B2,0x00B3,0x017D,0x00B5,0x00B6,0x00B7, - 0x017E,0x00B9,0x00BA,0x00BB,0x0152,0x0153,0x0178,0x00BF, - 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, - 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, - 0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, - 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, - 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, - 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, - 0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, - 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_15 */ - -/* - * 8-bit UCS -> iso_8859_15 speed-optimized table (1282 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_15) - -static const unsigned char -from_ucs_speed_iso_8859_15[] = -{ - W(0x00FF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0402),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xA1,0xA2,0xA3,0xFF,0xA5,0xFF,0xA7, - 0xFF,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, - 0xB0,0xB1,0xB2,0xB3,0xFF,0xB5,0xB6,0xB7, - 0xFF,0xB9,0xBA,0xBB,0xFF,0xFF,0xFF,0xBF, - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7, - 0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, - 0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xBC,0xBD,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA6,0xA8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xBE,0xFF,0xFF,0xFF,0xFF,0xB4,0xB8,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xA4,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_15 */ - -/* - * iso_8859_15 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_15 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_15, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_15) - (__uint16_t *)&from_ucs_speed_iso_8859_15, /* UCS -> iso_8859_15 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_15) - (__uint16_t *)&to_ucs_speed_iso_8859_15 /* iso_8859_15 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_15) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_2.c b/lib/iconv/ccs/iso_8859_2.c deleted file mode 100644 index ecb374e..0000000 --- a/lib/iconv/ccs/iso_8859_2.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_2 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_2) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_2) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_2 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_2) - -static const __uint16_t -to_ucs_speed_iso_8859_2[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7, - 0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B, - 0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7, - 0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C, - 0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, - 0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, - 0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, - 0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, - 0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, - 0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, - 0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, - 0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_2 */ - -/* - * 8-bit UCS -> iso_8859_2 speed-optimized table (1282 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_2) - -static const unsigned char -from_ucs_speed_iso_8859_2[] = -{ - W(0x02D9), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(0x0402),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xFF,0xFF,0xFF,0xA4,0xFF,0xFF,0xA7, - 0xA8,0xFF,0xFF,0xFF,0xFF,0xAD,0xFF,0xFF, - 0xB0,0xFF,0xFF,0xFF,0xB4,0xFF,0xFF,0xFF, - 0xB8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xC1,0xC2,0xFF,0xC4,0xFF,0xFF,0xC7, - 0xFF,0xC9,0xFF,0xCB,0xFF,0xCD,0xCE,0xFF, - 0xFF,0xFF,0xFF,0xD3,0xD4,0xFF,0xD6,0xD7, - 0xFF,0xFF,0xDA,0xFF,0xDC,0xDD,0xFF,0xDF, - 0xFF,0xE1,0xE2,0xFF,0xE4,0xFF,0xFF,0xE7, - 0xFF,0xE9,0xFF,0xEB,0xFF,0xED,0xEE,0xFF, - 0xFF,0xFF,0xFF,0xF3,0xF4,0xFF,0xF6,0xF7, - 0xFF,0xFF,0xFA,0xFF,0xFC,0xFD,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xC3,0xE3,0xA1,0xB1,0xC6,0xE6, - 0xFF,0xFF,0xFF,0xFF,0xC8,0xE8,0xCF,0xEF, - 0xD0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xCA,0xEA,0xCC,0xEC,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xC5,0xE5,0xFF,0xFF,0xA5,0xB5,0xFF, - 0xFF,0xA3,0xB3,0xD1,0xF1,0xFF,0xFF,0xD2, - 0xF2,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xD5,0xF5,0xFF,0xFF,0xC0,0xE0,0xFF,0xFF, - 0xD8,0xF8,0xA6,0xB6,0xFF,0xFF,0xAA,0xBA, - 0xA9,0xB9,0xDE,0xFE,0xAB,0xBB,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD9,0xF9, - 0xDB,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xAC,0xBC,0xAF,0xBF,0xAE,0xBE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 3, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB7, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA2,0xFF,0xFF,0xB2,0xFF,0xBD,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_2 */ - -/* - * iso_8859_2 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_2 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_2, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_2) - (__uint16_t *)&from_ucs_speed_iso_8859_2, /* UCS -> iso_8859_2 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_2) - (__uint16_t *)&to_ucs_speed_iso_8859_2 /* iso_8859_2 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_2) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_3.c b/lib/iconv/ccs/iso_8859_3.c deleted file mode 100644 index 6f80034..0000000 --- a/lib/iconv/ccs/iso_8859_3.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_3 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_3) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_3) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_3 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_3) - -static const __uint16_t -to_ucs_speed_iso_8859_3[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,0x0126,0x02D8,0x00A3,0x00A4,INVALC,0x0124,0x00A7, - 0x00A8,0x0130,0x015E,0x011E,0x0134,0x00AD,INVALC,0x017B, - 0x00B0,0x0127,0x00B2,0x00B3,0x00B4,0x00B5,0x0125,0x00B7, - 0x00B8,0x0131,0x015F,0x011F,0x0135,0x00BD,INVALC,0x017C, - 0x00C0,0x00C1,0x00C2,INVALC,0x00C4,0x010A,0x0108,0x00C7, - 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, - INVALC,0x00D1,0x00D2,0x00D3,0x00D4,0x0120,0x00D6,0x00D7, - 0x011C,0x00D9,0x00DA,0x00DB,0x00DC,0x016C,0x015C,0x00DF, - 0x00E0,0x00E1,0x00E2,INVALC,0x00E4,0x010B,0x0109,0x00E7, - 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, - INVALC,0x00F1,0x00F2,0x00F3,0x00F4,0x0121,0x00F6,0x00F7, - 0x011D,0x00F9,0x00FA,0x00FB,0x00FC,0x016D,0x015D,0x02D9, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_3 */ - -/* - * 8-bit UCS -> iso_8859_3 speed-optimized table (1282 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_3) - -static const unsigned char -from_ucs_speed_iso_8859_3[] = -{ - W(0x02D9), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(0x0402),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xFF,0xFF,0xA3,0xA4,0xFF,0xFF,0xA7, - 0xA8,0xFF,0xFF,0xFF,0xFF,0xAD,0xFF,0xFF, - 0xB0,0xFF,0xB2,0xB3,0xB4,0xB5,0xFF,0xB7, - 0xB8,0xFF,0xFF,0xFF,0xFF,0xBD,0xFF,0xFF, - 0xC0,0xC1,0xC2,0xFF,0xC4,0xFF,0xFF,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xFF,0xD1,0xD2,0xD3,0xD4,0xFF,0xD6,0xD7, - 0xFF,0xD9,0xDA,0xDB,0xDC,0xFF,0xFF,0xDF, - 0xE0,0xE1,0xE2,0xFF,0xE4,0xFF,0xFF,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xFF,0xF1,0xF2,0xF3,0xF4,0xFF,0xF6,0xF7, - 0xFF,0xF9,0xFA,0xFB,0xFC,0xFF,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xC6,0xE6,0xC5,0xE5,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xD8,0xF8,0xAB,0xBB, - 0xD5,0xF5,0xFF,0xFF,0xA6,0xB6,0xA1,0xB1, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA9,0xB9,0xFF,0xFF,0xAC,0xBC,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xDE,0xFE,0xAA,0xBA, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xDD,0xFD,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xAF,0xBF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 3, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA2,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_3 */ - -/* - * iso_8859_3 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_3 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_3, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_3) - (__uint16_t *)&from_ucs_speed_iso_8859_3, /* UCS -> iso_8859_3 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_3) - (__uint16_t *)&to_ucs_speed_iso_8859_3 /* iso_8859_3 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_3) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_4.c b/lib/iconv/ccs/iso_8859_4.c deleted file mode 100644 index b080e2d..0000000 --- a/lib/iconv/ccs/iso_8859_4.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_4 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_4) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_4) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_4 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_4) - -static const __uint16_t -to_ucs_speed_iso_8859_4[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,0x0104,0x0138,0x0156,0x00A4,0x0128,0x013B,0x00A7, - 0x00A8,0x0160,0x0112,0x0122,0x0166,0x00AD,0x017D,0x00AF, - 0x00B0,0x0105,0x02DB,0x0157,0x00B4,0x0129,0x013C,0x02C7, - 0x00B8,0x0161,0x0113,0x0123,0x0167,0x014A,0x017E,0x014B, - 0x0100,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x012E, - 0x010C,0x00C9,0x0118,0x00CB,0x0116,0x00CD,0x00CE,0x012A, - 0x0110,0x0145,0x014C,0x0136,0x00D4,0x00D5,0x00D6,0x00D7, - 0x00D8,0x0172,0x00DA,0x00DB,0x00DC,0x0168,0x016A,0x00DF, - 0x0101,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x012F, - 0x010D,0x00E9,0x0119,0x00EB,0x0117,0x00ED,0x00EE,0x012B, - 0x0111,0x0146,0x014D,0x0137,0x00F4,0x00F5,0x00F6,0x00F7, - 0x00F8,0x0173,0x00FA,0x00FB,0x00FC,0x0169,0x016B,0x02D9, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_4 */ - -/* - * 8-bit UCS -> iso_8859_4 speed-optimized table (1282 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_4) - -static const unsigned char -from_ucs_speed_iso_8859_4[] = -{ - W(0x02D9), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(0x0402),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xFF,0xFF,0xFF,0xA4,0xFF,0xFF,0xA7, - 0xA8,0xFF,0xFF,0xFF,0xFF,0xAD,0xFF,0xAF, - 0xB0,0xFF,0xFF,0xFF,0xB4,0xFF,0xFF,0xFF, - 0xB8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xFF, - 0xFF,0xC9,0xFF,0xCB,0xFF,0xCD,0xCE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xD4,0xD5,0xD6,0xD7, - 0xD8,0xFF,0xDA,0xDB,0xDC,0xFF,0xFF,0xDF, - 0xFF,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xFF, - 0xFF,0xE9,0xFF,0xEB,0xFF,0xED,0xEE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xF4,0xF5,0xF6,0xF7, - 0xF8,0xFF,0xFA,0xFB,0xFC,0xFF,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xC0,0xE0,0xFF,0xFF,0xA1,0xB1,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC8,0xE8,0xFF,0xFF, - 0xD0,0xF0,0xAA,0xBA,0xFF,0xFF,0xCC,0xEC, - 0xCA,0xEA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xAB,0xBB,0xFF,0xFF,0xFF,0xFF, - 0xA5,0xB5,0xCF,0xEF,0xFF,0xFF,0xC7,0xE7, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD3,0xF3, - 0xA2,0xFF,0xFF,0xA6,0xB6,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xD1,0xF1,0xFF, - 0xFF,0xFF,0xBD,0xBF,0xD2,0xF2,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA3,0xB3, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA9,0xB9,0xFF,0xFF,0xFF,0xFF,0xAC,0xBC, - 0xDD,0xFD,0xDE,0xFE,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xD9,0xF9,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xAE,0xBE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 3, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB7, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xB2,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_4 */ - -/* - * iso_8859_4 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_4 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_4, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_4) - (__uint16_t *)&from_ucs_speed_iso_8859_4, /* UCS -> iso_8859_4 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_4) - (__uint16_t *)&to_ucs_speed_iso_8859_4 /* iso_8859_4 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_4) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_5.c b/lib/iconv/ccs/iso_8859_5.c deleted file mode 100644 index b4b0c3f..0000000 --- a/lib/iconv/ccs/iso_8859_5.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_5 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_5) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_5) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_5 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_5) - -static const __uint16_t -to_ucs_speed_iso_8859_5[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,0x0401,0x0402,0x0403,0x0404,0x0405,0x0406,0x0407, - 0x0408,0x0409,0x040A,0x040B,0x040C,0x00AD,0x040E,0x040F, - 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, - 0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, - 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, - 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, - 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, - 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, - 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, - 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F, - 0x2116,0x0451,0x0452,0x0453,0x0454,0x0455,0x0456,0x0457, - 0x0458,0x0459,0x045A,0x045B,0x045C,0x00A7,0x045E,0x045F, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_5 */ - -/* - * 8-bit UCS -> iso_8859_5 speed-optimized table (1282 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_5) - -static const unsigned char -from_ucs_speed_iso_8859_5[] = -{ - W(0x045F), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0302),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(0x0402),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xAD,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 5, Array index 0x0302 */ - 0xFF,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xAA,0xAB,0xAC,0xFF,0xAE,0xAF, - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7, - 0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xFF,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, - 0xF8,0xF9,0xFA,0xFB,0xFC,0xFF,0xFE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_5 */ - -/* - * iso_8859_5 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_5 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_5, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_5) - (__uint16_t *)&from_ucs_speed_iso_8859_5, /* UCS -> iso_8859_5 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_5) - (__uint16_t *)&to_ucs_speed_iso_8859_5 /* iso_8859_5 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_5) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_6.c b/lib/iconv/ccs/iso_8859_6.c deleted file mode 100644 index 9967841..0000000 --- a/lib/iconv/ccs/iso_8859_6.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_6 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_6) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_6) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_6 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_6) - -static const __uint16_t -to_ucs_speed_iso_8859_6[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,INVALC,INVALC,INVALC,0x00A4,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x060C,0x00AD,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x061B,INVALC,INVALC,INVALC,0x061F, - INVALC,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627, - 0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F, - 0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x0637, - 0x0638,0x0639,0x063A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x0640,0x0641,0x0642,0x0643,0x0644,0x0645,0x0646,0x0647, - 0x0648,0x0649,0x064A,0x064B,0x064C,0x064D,0x064E,0x064F, - 0x0650,0x0651,0x0652,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_6 */ - -/* - * 8-bit UCS -> iso_8859_6 speed-optimized table (1026 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_6) - -static const unsigned char -from_ucs_speed_iso_8859_6[] = -{ - W(0xFFFF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(0x0302),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xFF,0xFF,0xFF,0xA4,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xAD,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 7, Array index 0x0302 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xAC,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xBB,0xFF,0xFF,0xFF,0xBF, - 0xFF,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7, - 0xD8,0xD9,0xDA,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xF0,0xF1,0xF2,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_6 */ - -/* - * iso_8859_6 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_6 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_6, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_6) - (__uint16_t *)&from_ucs_speed_iso_8859_6, /* UCS -> iso_8859_6 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_6) - (__uint16_t *)&to_ucs_speed_iso_8859_6 /* iso_8859_6 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_6) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_7.c b/lib/iconv/ccs/iso_8859_7.c deleted file mode 100644 index 41d3400..0000000 --- a/lib/iconv/ccs/iso_8859_7.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_7 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_7) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_7) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_7 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_7) - -static const __uint16_t -to_ucs_speed_iso_8859_7[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,0x2018,0x2019,0x00A3,INVALC,INVALC,0x00A6,0x00A7, - 0x00A8,0x00A9,INVALC,0x00AB,0x00AC,0x00AD,INVALC,0x2015, - 0x00B0,0x00B1,0x00B2,0x00B3,0x0384,0x0385,0x0386,0x00B7, - 0x0388,0x0389,0x038A,0x00BB,0x038C,0x00BD,0x038E,0x038F, - 0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, - 0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F, - 0x03A0,0x03A1,INVALC,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7, - 0x03A8,0x03A9,0x03AA,0x03AB,0x03AC,0x03AD,0x03AE,0x03AF, - 0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7, - 0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF, - 0x03C0,0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7, - 0x03C8,0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,INVALC, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_7 */ - -/* - * 8-bit UCS -> iso_8859_7 speed-optimized table (1282 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_7) - -static const unsigned char -from_ucs_speed_iso_8859_7[] = -{ - W(0xFFFF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(0x0302), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0402),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xFF,0xFF,0xA3,0xFF,0xFF,0xA6,0xA7, - 0xA8,0xA9,0xFF,0xAB,0xAC,0xAD,0xFF,0xFF, - 0xB0,0xB1,0xB2,0xB3,0xFF,0xFF,0xFF,0xB7, - 0xFF,0xFF,0xFF,0xBB,0xFF,0xBD,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 4, Array index 0x0302 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xB4,0xB5,0xB6,0xFF, - 0xB8,0xB9,0xBA,0xFF,0xBC,0xFF,0xBE,0xBF, - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xD0,0xD1,0xFF,0xD3,0xD4,0xD5,0xD6,0xD7, - 0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, - 0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xAF,0xFF,0xFF, - 0xA1,0xA2,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_7 */ - -/* - * iso_8859_7 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_7 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_7, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_7) - (__uint16_t *)&from_ucs_speed_iso_8859_7, /* UCS -> iso_8859_7 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_7) - (__uint16_t *)&to_ucs_speed_iso_8859_7 /* iso_8859_7 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_7) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_8.c b/lib/iconv/ccs/iso_8859_8.c deleted file mode 100644 index 029a4b8..0000000 --- a/lib/iconv/ccs/iso_8859_8.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_8 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_8) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_8) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_8 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_8) - -static const __uint16_t -to_ucs_speed_iso_8859_8[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,INVALC,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, - 0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, - 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, - 0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2017, - 0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7, - 0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF, - 0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7, - 0x05E8,0x05E9,0x05EA,INVALC,INVALC,0x200E,0x200F,INVALC, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_8 */ - -/* - * 8-bit UCS -> iso_8859_8 speed-optimized table (1282 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_8) - -static const unsigned char -from_ucs_speed_iso_8859_8[] = -{ - W(0xFFFF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(0x0302),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0402),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xFF,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xFF,0xAB,0xAC,0xAD,0xAE,0xAF, - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xB9,0xFF,0xBB,0xBC,0xBD,0xBE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBA, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 6, Array index 0x0302 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, - 0xF8,0xF9,0xFA,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFE, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_8 */ - -/* - * iso_8859_8 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_8 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_8, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_8) - (__uint16_t *)&from_ucs_speed_iso_8859_8, /* UCS -> iso_8859_8 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_8) - (__uint16_t *)&to_ucs_speed_iso_8859_8 /* iso_8859_8 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_8) || ... */ - diff --git a/lib/iconv/ccs/iso_8859_9.c b/lib/iconv/ccs/iso_8859_9.c deleted file mode 100644 index b787b98..0000000 --- a/lib/iconv/ccs/iso_8859_9.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_8859_9 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_8859_9) \ - || defined (ICONV_FROM_UCS_CCS_ISO_8859_9) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_8859_9 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_9) - -static const __uint16_t -to_ucs_speed_iso_8859_9[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, - 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, - 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, - 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, - 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, - 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, - 0x011E,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, - 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0130,0x015E,0x00DF, - 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, - 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, - 0x011F,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, - 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x0131,0x015F,0x00FF, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_9 */ - -/* - * 8-bit UCS -> iso_8859_9 speed-optimized table (1026 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_9) - -static const unsigned char -from_ucs_speed_iso_8859_9[] = -{ - W(0x00FF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xFF,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7, - 0xD8,0xD9,0xDA,0xDB,0xDC,0xFF,0xFF,0xDF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xFF,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, - 0xF8,0xF9,0xFA,0xFB,0xFC,0xFF,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD0,0xF0, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xDD,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDE,0xFE, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_8859_9 */ - -/* - * iso_8859_9 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_8859_9 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_8859_9, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_8859_9) - (__uint16_t *)&from_ucs_speed_iso_8859_9, /* UCS -> iso_8859_9 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_8859_9) - (__uint16_t *)&to_ucs_speed_iso_8859_9 /* iso_8859_9 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_8859_9) || ... */ - diff --git a/lib/iconv/ccs/iso_ir_111.c b/lib/iconv/ccs/iso_ir_111.c deleted file mode 100644 index 7d05ef4..0000000 --- a/lib/iconv/ccs/iso_ir_111.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for iso_ir_111 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_ISO_IR_111) \ - || defined (ICONV_FROM_UCS_CCS_ISO_IR_111) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit iso_ir_111 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_ISO_IR_111) - -static const __uint16_t -to_ucs_speed_iso_ir_111[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, - 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, - 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, - 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, - 0x00A0,0x0452,0x0453,0x0451,0x0454,0x0455,0x0456,0x0457, - 0x0458,0x0459,0x045A,0x045B,0x045C,0x00AD,0x045E,0x045F, - 0x2116,0x0402,0x0403,0x0401,0x0404,0x0405,0x0406,0x0407, - 0x0408,0x0409,0x040A,0x040B,0x040C,0x00A4,0x040E,0x040F, - 0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433, - 0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, - 0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432, - 0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A, - 0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413, - 0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, - 0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412, - 0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A, - -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_IR_111 */ - -/* - * 8-bit UCS -> iso_ir_111 speed-optimized table (1282 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_ISO_IR_111) - -static const unsigned char -from_ucs_speed_iso_ir_111[] = -{ - W(0x042A), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0302),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(0x0402),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, - 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, - 0xA0,0xFF,0xFF,0xFF,0xBD,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xAD,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 5, Array index 0x0302 */ - 0xFF,0xB3,0xB1,0xB2,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xB9,0xBA,0xBB,0xBC,0xFF,0xBE,0xBF, - 0xE1,0xE2,0xF7,0xE7,0xE4,0xE5,0xF6,0xFA, - 0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0, - 0xF2,0xF3,0xF4,0xF5,0xE6,0xE8,0xE3,0xFE, - 0xFB,0xFD,0xFF,0xF9,0xF8,0xFC,0xE0,0xF1, - 0xC1,0xC2,0xD7,0xC7,0xC4,0xC5,0xD6,0xDA, - 0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0, - 0xD2,0xD3,0xD4,0xD5,0xC6,0xC8,0xC3,0xDE, - 0xDB,0xDD,0xDF,0xD9,0xD8,0xDC,0xC0,0xD1, - 0xFF,0xA3,0xA1,0xA2,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xAA,0xAB,0xAC,0xFF,0xAE,0xAF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB0,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_ISO_IR_111 */ - -/* - * iso_ir_111 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_iso_ir_111 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_ISO_IR_111, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_ISO_IR_111) - (__uint16_t *)&from_ucs_speed_iso_ir_111, /* UCS -> iso_ir_111 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_ISO_IR_111) - (__uint16_t *)&to_ucs_speed_iso_ir_111 /* iso_ir_111 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_ISO_IR_111) || ... */ - diff --git a/lib/iconv/ccs/jis_x0201_1976.c b/lib/iconv/ccs/jis_x0201_1976.c deleted file mode 100644 index ca94986..0000000 --- a/lib/iconv/ccs/jis_x0201_1976.c +++ /dev/null @@ -1,209 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for jis_x0201_1976 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_JIS_X0201_1976) \ - || defined (ICONV_FROM_UCS_CCS_JIS_X0201_1976) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit jis_x0201_1976 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_JIS_X0201_1976) - -static const __uint16_t -to_ucs_speed_jis_x0201_1976[] = -{ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xFF61,0xFF62,0xFF63,0xFF64,0xFF65,0xFF66,0xFF67, - 0xFF68,0xFF69,0xFF6A,0xFF6B,0xFF6C,0xFF6D,0xFF6E,0xFF6F, - 0xFF70,0xFF71,0xFF72,0xFF73,0xFF74,0xFF75,0xFF76,0xFF77, - 0xFF78,0xFF79,0xFF7A,0xFF7B,0xFF7C,0xFF7D,0xFF7E,0xFF7F, - 0xFF80,0xFF81,0xFF82,0xFF83,0xFF84,0xFF85,0xFF86,0xFF87, - 0xFF88,0xFF89,0xFF8A,0xFF8B,0xFF8C,0xFF8D,0xFF8E,0xFF8F, - 0xFF90,0xFF91,0xFF92,0xFF93,0xFF94,0xFF95,0xFF96,0xFF97, - 0xFF98,0xFF99,0xFF9A,0xFF9B,0xFF9C,0xFF9D,0xFF9E,0xFF9F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - -}; - -#endif /* ICONV_TO_UCS_CCS_JIS_X0201_1976 */ - -/* - * 8-bit UCS -> jis_x0201_1976 speed-optimized table (770 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_JIS_X0201_1976) - -static const unsigned char -from_ucs_speed_jis_x0201_1976[] = -{ - W(0xFFFF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(0x0202), - /* Block 256, Array index 0x0202 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7, - 0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_JIS_X0201_1976 */ - -/* - * jis_x0201_1976 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_jis_x0201_1976 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_JIS_X0201_1976, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_JIS_X0201_1976) - (__uint16_t *)&from_ucs_speed_jis_x0201_1976, /* UCS -> jis_x0201_1976 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_JIS_X0201_1976) - (__uint16_t *)&to_ucs_speed_jis_x0201_1976 /* jis_x0201_1976 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_JIS_X0201_1976) || ... */ - diff --git a/lib/iconv/ccs/jis_x0208_1990.c b/lib/iconv/ccs/jis_x0208_1990.c deleted file mode 100644 index 070e0e4..0000000 --- a/lib/iconv/ccs/jis_x0208_1990.c +++ /dev/null @@ -1,12161 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for jis_x0208_1990 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_JIS_X0208_1990) \ - || defined (ICONV_FROM_UCS_CCS_JIS_X0208_1990) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -/* - * 16-bit jis_x0208_1990 -> UCS speed-optimized table (39936 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_JIS_X0208_1990) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_speed_jis_x0208_1990[] = -{ - /* Heading Block */ - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,0x0100,0x0200,0x0300,0x0400,0x0500,0x0600,0x0700, - 0x0800,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - 0x0900,0x0A00,0x0B00,0x0C00,0x0D00,0x0E00,0x0F00,0x1000, - 0x1100,0x1200,0x1300,0x1400,0x1500,0x1600,0x1700,0x1800, - 0x1900,0x1A00,0x1B00,0x1C00,0x1D00,0x1E00,0x1F00,0x2000, - 0x2100,0x2200,0x2300,0x2400,0x2500,0x2600,0x2700,0x2800, - 0x2900,0x2A00,0x2B00,0x2C00,0x2D00,0x2E00,0x2F00,0x3000, - 0x3100,0x3200,0x3300,0x3400,0x3500,0x3600,0x3700,0x3800, - 0x3900,0x3A00,0x3B00,0x3C00,0x3D00,0x3E00,0x3F00,0x4000, - 0x4100,0x4200,0x4300,0x4400,0x4500,0x4600,0x4700,0x4800, - 0x4900,0x4A00,0x4B00,0x4C00,0x4D00,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - /* Block 34, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3000,0x3001,0x3002,0xFF0C,0xFF0E,0x30FB,0xFF1A, - 0xFF1B,0xFF1F,0xFF01,0x309B,0x309C,0x00B4,0xFF40,0x00A8, - 0xFF3E,0xFFE3,0xFF3F,0x30FD,0x30FE,0x309D,0x309E,0x3003, - 0x4EDD,0x3005,0x3006,0x3007,0x30FC,0x2015,0x2010,0xFF0F, - 0x005C,0x301C,0x2016,0xFF5C,0x2026,0x2025,0x2018,0x2019, - 0x201C,0x201D,0xFF08,0xFF09,0x3014,0x3015,0xFF3B,0xFF3D, - 0xFF5B,0xFF5D,0x3008,0x3009,0x300A,0x300B,0x300C,0x300D, - 0x300E,0x300F,0x3010,0x3011,0xFF0B,0x2212,0x00B1,0x00D7, - 0x00F7,0xFF1D,0x2260,0xFF1C,0xFF1E,0x2266,0x2267,0x221E, - 0x2234,0x2642,0x2640,0x00B0,0x2032,0x2033,0x2103,0xFFE5, - 0xFF04,0x00A2,0x00A3,0xFF05,0xFF03,0xFF06,0xFF0A,0xFF20, - 0x00A7,0x2606,0x2605,0x25CB,0x25CF,0x25CE,0x25C7,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 35, Array index 0x0200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x25C6,0x25A1,0x25A0,0x25B3,0x25B2,0x25BD,0x25BC, - 0x203B,0x3012,0x2192,0x2190,0x2191,0x2193,0x3013,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2208,0x220B,0x2286,0x2287,0x2282,0x2283, - 0x222A,0x2229,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2227,0x2228,0x00AC,0x21D2,0x21D4,0x2200, - 0x2203,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2220,0x22A5,0x2312,0x2202, - 0x2207,0x2261,0x2252,0x226A,0x226B,0x221A,0x223D,0x221D, - 0x2235,0x222B,0x222C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x212B,0x2030,0x266F,0x266D,0x266A,0x2020, - 0x2021,0x00B6,INVALC,INVALC,INVALC,INVALC,0x25EF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 36, Array index 0x0300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0xFF10,0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17, - 0xFF18,0xFF19,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27, - 0xFF28,0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F, - 0xFF30,0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37, - 0xFF38,0xFF39,0xFF3A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47, - 0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F, - 0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57, - 0xFF58,0xFF59,0xFF5A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 37, Array index 0x0400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047, - 0x3048,0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,0x304F, - 0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057, - 0x3058,0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,0x305F, - 0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067, - 0x3068,0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F, - 0x3070,0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077, - 0x3078,0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,0x307F, - 0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087, - 0x3088,0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F, - 0x3090,0x3091,0x3092,0x3093,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 38, Array index 0x0500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7, - 0x30A8,0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF, - 0x30B0,0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7, - 0x30B8,0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF, - 0x30C0,0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7, - 0x30C8,0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF, - 0x30D0,0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7, - 0x30D8,0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF, - 0x30E0,0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7, - 0x30E8,0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF, - 0x30F0,0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 39, Array index 0x0600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, - 0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F, - 0x03A0,0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8, - 0x03A9,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7, - 0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF, - 0x03C0,0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8, - 0x03C9,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 40, Array index 0x0700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401, - 0x0416,0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D, - 0x041E,0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425, - 0x0426,0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D, - 0x042E,0x042F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451, - 0x0436,0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D, - 0x043E,0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445, - 0x0446,0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D, - 0x044E,0x044F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 41, Array index 0x0800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2500,0x2502,0x250C,0x2510,0x2518,0x2514,0x251C, - 0x252C,0x2524,0x2534,0x253C,0x2501,0x2503,0x250F,0x2513, - 0x251B,0x2517,0x2523,0x2533,0x252B,0x253B,0x254B,0x2520, - 0x252F,0x2528,0x2537,0x253F,0x251D,0x2530,0x2525,0x2538, - 0x2542,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 49, Array index 0x0900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E9C,0x5516,0x5A03,0x963F,0x54C0,0x611B,0x6328, - 0x59F6,0x9022,0x8475,0x831C,0x7A50,0x60AA,0x63E1,0x6E25, - 0x65ED,0x8466,0x82A6,0x9BF5,0x6893,0x5727,0x65A1,0x6271, - 0x5B9B,0x59D0,0x867B,0x98F4,0x7D62,0x7DBE,0x9B8E,0x6216, - 0x7C9F,0x88B7,0x5B89,0x5EB5,0x6309,0x6697,0x6848,0x95C7, - 0x978D,0x674F,0x4EE5,0x4F0A,0x4F4D,0x4F9D,0x5049,0x56F2, - 0x5937,0x59D4,0x5A01,0x5C09,0x60DF,0x610F,0x6170,0x6613, - 0x6905,0x70BA,0x754F,0x7570,0x79FB,0x7DAD,0x7DEF,0x80C3, - 0x840E,0x8863,0x8B02,0x9055,0x907A,0x533B,0x4E95,0x4EA5, - 0x57DF,0x80B2,0x90C1,0x78EF,0x4E00,0x58F1,0x6EA2,0x9038, - 0x7A32,0x8328,0x828B,0x9C2F,0x5141,0x5370,0x54BD,0x54E1, - 0x56E0,0x59FB,0x5F15,0x98F2,0x6DEB,0x80E4,0x852D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 50, Array index 0x0A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9662,0x9670,0x96A0,0x97FB,0x540B,0x53F3,0x5B87, - 0x70CF,0x7FBD,0x8FC2,0x96E8,0x536F,0x9D5C,0x7ABA,0x4E11, - 0x7893,0x81FC,0x6E26,0x5618,0x5504,0x6B1D,0x851A,0x9C3B, - 0x59E5,0x53A9,0x6D66,0x74DC,0x958F,0x5642,0x4E91,0x904B, - 0x96F2,0x834F,0x990C,0x53E1,0x55B6,0x5B30,0x5F71,0x6620, - 0x66F3,0x6804,0x6C38,0x6CF3,0x6D29,0x745B,0x76C8,0x7A4E, - 0x9834,0x82F1,0x885B,0x8A60,0x92ED,0x6DB2,0x75AB,0x76CA, - 0x99C5,0x60A6,0x8B01,0x8D8A,0x95B2,0x698E,0x53AD,0x5186, - 0x5712,0x5830,0x5944,0x5BB4,0x5EF6,0x6028,0x63A9,0x63F4, - 0x6CBF,0x6F14,0x708E,0x7114,0x7159,0x71D5,0x733F,0x7E01, - 0x8276,0x82D1,0x8597,0x9060,0x925B,0x9D1B,0x5869,0x65BC, - 0x6C5A,0x7525,0x51F9,0x592E,0x5965,0x5F80,0x5FDC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 51, Array index 0x0B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x62BC,0x65FA,0x6A2A,0x6B27,0x6BB4,0x738B,0x7FC1, - 0x8956,0x9D2C,0x9D0E,0x9EC4,0x5CA1,0x6C96,0x837B,0x5104, - 0x5C4B,0x61B6,0x81C6,0x6876,0x7261,0x4E59,0x4FFA,0x5378, - 0x6069,0x6E29,0x7A4F,0x97F3,0x4E0B,0x5316,0x4EEE,0x4F55, - 0x4F3D,0x4FA1,0x4F73,0x52A0,0x53EF,0x5609,0x590F,0x5AC1, - 0x5BB6,0x5BE1,0x79D1,0x6687,0x679C,0x67B6,0x6B4C,0x6CB3, - 0x706B,0x73C2,0x798D,0x79BE,0x7A3C,0x7B87,0x82B1,0x82DB, - 0x8304,0x8377,0x83EF,0x83D3,0x8766,0x8AB2,0x5629,0x8CA8, - 0x8FE6,0x904E,0x971E,0x868A,0x4FC4,0x5CE8,0x6211,0x7259, - 0x753B,0x81E5,0x82BD,0x86FE,0x8CC0,0x96C5,0x9913,0x99D5, - 0x4ECB,0x4F1A,0x89E3,0x56DE,0x584A,0x58CA,0x5EFB,0x5FEB, - 0x602A,0x6094,0x6062,0x61D0,0x6212,0x62D0,0x6539,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 52, Array index 0x0C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9B41,0x6666,0x68B0,0x6D77,0x7070,0x754C,0x7686, - 0x7D75,0x82A5,0x87F9,0x958B,0x968E,0x8C9D,0x51F1,0x52BE, - 0x5916,0x54B3,0x5BB3,0x5D16,0x6168,0x6982,0x6DAF,0x788D, - 0x84CB,0x8857,0x8A72,0x93A7,0x9AB8,0x6D6C,0x99A8,0x86D9, - 0x57A3,0x67FF,0x86CE,0x920E,0x5283,0x5687,0x5404,0x5ED3, - 0x62E1,0x64B9,0x683C,0x6838,0x6BBB,0x7372,0x78BA,0x7A6B, - 0x899A,0x89D2,0x8D6B,0x8F03,0x90ED,0x95A3,0x9694,0x9769, - 0x5B66,0x5CB3,0x697D,0x984D,0x984E,0x639B,0x7B20,0x6A2B, - 0x6A7F,0x68B6,0x9C0D,0x6F5F,0x5272,0x559D,0x6070,0x62EC, - 0x6D3B,0x6E07,0x6ED1,0x845B,0x8910,0x8F44,0x4E14,0x9C39, - 0x53F6,0x691B,0x6A3A,0x9784,0x682A,0x515C,0x7AC3,0x84B2, - 0x91DC,0x938C,0x565B,0x9D28,0x6822,0x8305,0x8431,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 53, Array index 0x0D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7CA5,0x5208,0x82C5,0x74E6,0x4E7E,0x4F83,0x51A0, - 0x5BD2,0x520A,0x52D8,0x52E7,0x5DFB,0x559A,0x582A,0x59E6, - 0x5B8C,0x5B98,0x5BDB,0x5E72,0x5E79,0x60A3,0x611F,0x6163, - 0x61BE,0x63DB,0x6562,0x67D1,0x6853,0x68FA,0x6B3E,0x6B53, - 0x6C57,0x6F22,0x6F97,0x6F45,0x74B0,0x7518,0x76E3,0x770B, - 0x7AFF,0x7BA1,0x7C21,0x7DE9,0x7F36,0x7FF0,0x809D,0x8266, - 0x839E,0x89B3,0x8ACC,0x8CAB,0x9084,0x9451,0x9593,0x9591, - 0x95A2,0x9665,0x97D3,0x9928,0x8218,0x4E38,0x542B,0x5CB8, - 0x5DCC,0x73A9,0x764C,0x773C,0x5CA9,0x7FEB,0x8D0B,0x96C1, - 0x9811,0x9854,0x9858,0x4F01,0x4F0E,0x5371,0x559C,0x5668, - 0x57FA,0x5947,0x5B09,0x5BC4,0x5C90,0x5E0C,0x5E7E,0x5FCC, - 0x63EE,0x673A,0x65D7,0x65E2,0x671F,0x68CB,0x68C4,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 54, Array index 0x0E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A5F,0x5E30,0x6BC5,0x6C17,0x6C7D,0x757F,0x7948, - 0x5B63,0x7A00,0x7D00,0x5FBD,0x898F,0x8A18,0x8CB4,0x8D77, - 0x8ECC,0x8F1D,0x98E2,0x9A0E,0x9B3C,0x4E80,0x507D,0x5100, - 0x5993,0x5B9C,0x622F,0x6280,0x64EC,0x6B3A,0x72A0,0x7591, - 0x7947,0x7FA9,0x87FB,0x8ABC,0x8B70,0x63AC,0x83CA,0x97A0, - 0x5409,0x5403,0x55AB,0x6854,0x6A58,0x8A70,0x7827,0x6775, - 0x9ECD,0x5374,0x5BA2,0x811A,0x8650,0x9006,0x4E18,0x4E45, - 0x4EC7,0x4F11,0x53CA,0x5438,0x5BAE,0x5F13,0x6025,0x6551, - 0x673D,0x6C42,0x6C72,0x6CE3,0x7078,0x7403,0x7A76,0x7AAE, - 0x7B08,0x7D1A,0x7CFE,0x7D66,0x65E7,0x725B,0x53BB,0x5C45, - 0x5DE8,0x62D2,0x62E0,0x6319,0x6E20,0x865A,0x8A31,0x8DDD, - 0x92F8,0x6F01,0x79A6,0x9B5A,0x4EA8,0x4EAB,0x4EAC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 55, Array index 0x0F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F9B,0x4FA0,0x50D1,0x5147,0x7AF6,0x5171,0x51F6, - 0x5354,0x5321,0x537F,0x53EB,0x55AC,0x5883,0x5CE1,0x5F37, - 0x5F4A,0x602F,0x6050,0x606D,0x631F,0x6559,0x6A4B,0x6CC1, - 0x72C2,0x72ED,0x77EF,0x80F8,0x8105,0x8208,0x854E,0x90F7, - 0x93E1,0x97FF,0x9957,0x9A5A,0x4EF0,0x51DD,0x5C2D,0x6681, - 0x696D,0x5C40,0x66F2,0x6975,0x7389,0x6850,0x7C81,0x50C5, - 0x52E4,0x5747,0x5DFE,0x9326,0x65A4,0x6B23,0x6B3D,0x7434, - 0x7981,0x79BD,0x7B4B,0x7DCA,0x82B9,0x83CC,0x887F,0x895F, - 0x8B39,0x8FD1,0x91D1,0x541F,0x9280,0x4E5D,0x5036,0x53E5, - 0x533A,0x72D7,0x7396,0x77E9,0x82E6,0x8EAF,0x99C6,0x99C8, - 0x99D2,0x5177,0x611A,0x865E,0x55B0,0x7A7A,0x5076,0x5BD3, - 0x9047,0x9685,0x4E32,0x6ADB,0x91E7,0x5C51,0x5C48,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 56, Array index 0x1000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6398,0x7A9F,0x6C93,0x9774,0x8F61,0x7AAA,0x718A, - 0x9688,0x7C82,0x6817,0x7E70,0x6851,0x936C,0x52F2,0x541B, - 0x85AB,0x8A13,0x7FA4,0x8ECD,0x90E1,0x5366,0x8888,0x7941, - 0x4FC2,0x50BE,0x5211,0x5144,0x5553,0x572D,0x73EA,0x578B, - 0x5951,0x5F62,0x5F84,0x6075,0x6176,0x6167,0x61A9,0x63B2, - 0x643A,0x656C,0x666F,0x6842,0x6E13,0x7566,0x7A3D,0x7CFB, - 0x7D4C,0x7D99,0x7E4B,0x7F6B,0x830E,0x834A,0x86CD,0x8A08, - 0x8A63,0x8B66,0x8EFD,0x981A,0x9D8F,0x82B8,0x8FCE,0x9BE8, - 0x5287,0x621F,0x6483,0x6FC0,0x9699,0x6841,0x5091,0x6B20, - 0x6C7A,0x6F54,0x7A74,0x7D50,0x8840,0x8A23,0x6708,0x4EF6, - 0x5039,0x5026,0x5065,0x517C,0x5238,0x5263,0x55A7,0x570F, - 0x5805,0x5ACC,0x5EFA,0x61B2,0x61F8,0x62F3,0x6372,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 57, Array index 0x1100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x691C,0x6A29,0x727D,0x72AC,0x732E,0x7814,0x786F, - 0x7D79,0x770C,0x80A9,0x898B,0x8B19,0x8CE2,0x8ED2,0x9063, - 0x9375,0x967A,0x9855,0x9A13,0x9E78,0x5143,0x539F,0x53B3, - 0x5E7B,0x5F26,0x6E1B,0x6E90,0x7384,0x73FE,0x7D43,0x8237, - 0x8A00,0x8AFA,0x9650,0x4E4E,0x500B,0x53E4,0x547C,0x56FA, - 0x59D1,0x5B64,0x5DF1,0x5EAB,0x5F27,0x6238,0x6545,0x67AF, - 0x6E56,0x72D0,0x7CCA,0x88B4,0x80A1,0x80E1,0x83F0,0x864E, - 0x8A87,0x8DE8,0x9237,0x96C7,0x9867,0x9F13,0x4E94,0x4E92, - 0x4F0D,0x5348,0x5449,0x543E,0x5A2F,0x5F8C,0x5FA1,0x609F, - 0x68A7,0x6A8E,0x745A,0x7881,0x8A9E,0x8AA4,0x8B77,0x9190, - 0x4E5E,0x9BC9,0x4EA4,0x4F7C,0x4FAF,0x5019,0x5016,0x5149, - 0x516C,0x529F,0x52B9,0x52FE,0x539A,0x53E3,0x5411,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 58, Array index 0x1200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x540E,0x5589,0x5751,0x57A2,0x597D,0x5B54,0x5B5D, - 0x5B8F,0x5DE5,0x5DE7,0x5DF7,0x5E78,0x5E83,0x5E9A,0x5EB7, - 0x5F18,0x6052,0x614C,0x6297,0x62D8,0x63A7,0x653B,0x6602, - 0x6643,0x66F4,0x676D,0x6821,0x6897,0x69CB,0x6C5F,0x6D2A, - 0x6D69,0x6E2F,0x6E9D,0x7532,0x7687,0x786C,0x7A3F,0x7CE0, - 0x7D05,0x7D18,0x7D5E,0x7DB1,0x8015,0x8003,0x80AF,0x80B1, - 0x8154,0x818F,0x822A,0x8352,0x884C,0x8861,0x8B1B,0x8CA2, - 0x8CFC,0x90CA,0x9175,0x9271,0x783F,0x92FC,0x95A4,0x964D, - 0x9805,0x9999,0x9AD8,0x9D3B,0x525B,0x52AB,0x53F7,0x5408, - 0x58D5,0x62F7,0x6FE0,0x8C6A,0x8F5F,0x9EB9,0x514B,0x523B, - 0x544A,0x56FD,0x7A40,0x9177,0x9D60,0x9ED2,0x7344,0x6F09, - 0x8170,0x7511,0x5FFD,0x60DA,0x9AA8,0x72DB,0x8FBC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 59, Array index 0x1300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B64,0x9803,0x4ECA,0x56F0,0x5764,0x58BE,0x5A5A, - 0x6068,0x61C7,0x660F,0x6606,0x6839,0x68B1,0x6DF7,0x75D5, - 0x7D3A,0x826E,0x9B42,0x4E9B,0x4F50,0x53C9,0x5506,0x5D6F, - 0x5DE6,0x5DEE,0x67FB,0x6C99,0x7473,0x7802,0x8A50,0x9396, - 0x88DF,0x5750,0x5EA7,0x632B,0x50B5,0x50AC,0x518D,0x6700, - 0x54C9,0x585E,0x59BB,0x5BB0,0x5F69,0x624D,0x63A1,0x683D, - 0x6B73,0x6E08,0x707D,0x91C7,0x7280,0x7815,0x7826,0x796D, - 0x658E,0x7D30,0x83DC,0x88C1,0x8F09,0x969B,0x5264,0x5728, - 0x6750,0x7F6A,0x8CA1,0x51B4,0x5742,0x962A,0x583A,0x698A, - 0x80B4,0x54B2,0x5D0E,0x57FC,0x7895,0x9DFA,0x4F5C,0x524A, - 0x548B,0x643E,0x6628,0x6714,0x67F5,0x7A84,0x7B56,0x7D22, - 0x932F,0x685C,0x9BAD,0x7B39,0x5319,0x518A,0x5237,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 60, Array index 0x1400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5BDF,0x62F6,0x64AE,0x64E6,0x672D,0x6BBA,0x85A9, - 0x96D1,0x7690,0x9BD6,0x634C,0x9306,0x9BAB,0x76BF,0x6652, - 0x4E09,0x5098,0x53C2,0x5C71,0x60E8,0x6492,0x6563,0x685F, - 0x71E6,0x73CA,0x7523,0x7B97,0x7E82,0x8695,0x8B83,0x8CDB, - 0x9178,0x9910,0x65AC,0x66AB,0x6B8B,0x4ED5,0x4ED4,0x4F3A, - 0x4F7F,0x523A,0x53F8,0x53F2,0x55E3,0x56DB,0x58EB,0x59CB, - 0x59C9,0x59FF,0x5B50,0x5C4D,0x5E02,0x5E2B,0x5FD7,0x601D, - 0x6307,0x652F,0x5B5C,0x65AF,0x65BD,0x65E8,0x679D,0x6B62, - 0x6B7B,0x6C0F,0x7345,0x7949,0x79C1,0x7CF8,0x7D19,0x7D2B, - 0x80A2,0x8102,0x81F3,0x8996,0x8A5E,0x8A69,0x8A66,0x8A8C, - 0x8AEE,0x8CC7,0x8CDC,0x96CC,0x98FC,0x6B6F,0x4E8B,0x4F3C, - 0x4F8D,0x5150,0x5B57,0x5BFA,0x6148,0x6301,0x6642,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 61, Array index 0x1500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B21,0x6ECB,0x6CBB,0x723E,0x74BD,0x75D4,0x78C1, - 0x793A,0x800C,0x8033,0x81EA,0x8494,0x8F9E,0x6C50,0x9E7F, - 0x5F0F,0x8B58,0x9D2B,0x7AFA,0x8EF8,0x5B8D,0x96EB,0x4E03, - 0x53F1,0x57F7,0x5931,0x5AC9,0x5BA4,0x6089,0x6E7F,0x6F06, - 0x75BE,0x8CEA,0x5B9F,0x8500,0x7BE0,0x5072,0x67F4,0x829D, - 0x5C61,0x854A,0x7E1E,0x820E,0x5199,0x5C04,0x6368,0x8D66, - 0x659C,0x716E,0x793E,0x7D17,0x8005,0x8B1D,0x8ECA,0x906E, - 0x86C7,0x90AA,0x501F,0x52FA,0x5C3A,0x6753,0x707C,0x7235, - 0x914C,0x91C8,0x932B,0x82E5,0x5BC2,0x5F31,0x60F9,0x4E3B, - 0x53D6,0x5B88,0x624B,0x6731,0x6B8A,0x72E9,0x73E0,0x7A2E, - 0x816B,0x8DA3,0x9152,0x9996,0x5112,0x53D7,0x546A,0x5BFF, - 0x6388,0x6A39,0x7DAC,0x9700,0x56DA,0x53CE,0x5468,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 62, Array index 0x1600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5B97,0x5C31,0x5DDE,0x4FEE,0x6101,0x62FE,0x6D32, - 0x79C0,0x79CB,0x7D42,0x7E4D,0x7FD2,0x81ED,0x821F,0x8490, - 0x8846,0x8972,0x8B90,0x8E74,0x8F2F,0x9031,0x914B,0x916C, - 0x96C6,0x919C,0x4EC0,0x4F4F,0x5145,0x5341,0x5F93,0x620E, - 0x67D4,0x6C41,0x6E0B,0x7363,0x7E26,0x91CD,0x9283,0x53D4, - 0x5919,0x5BBF,0x6DD1,0x795D,0x7E2E,0x7C9B,0x587E,0x719F, - 0x51FA,0x8853,0x8FF0,0x4FCA,0x5CFB,0x6625,0x77AC,0x7AE3, - 0x821C,0x99FF,0x51C6,0x5FAA,0x65EC,0x696F,0x6B89,0x6DF3, - 0x6E96,0x6F64,0x76FE,0x7D14,0x5DE1,0x9075,0x9187,0x9806, - 0x51E6,0x521D,0x6240,0x6691,0x66D9,0x6E1A,0x5EB6,0x7DD2, - 0x7F72,0x66F8,0x85AF,0x85F7,0x8AF8,0x52A9,0x53D9,0x5973, - 0x5E8F,0x5F90,0x6055,0x92E4,0x9664,0x50B7,0x511F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 63, Array index 0x1700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x52DD,0x5320,0x5347,0x53EC,0x54E8,0x5546,0x5531, - 0x5617,0x5968,0x59BE,0x5A3C,0x5BB5,0x5C06,0x5C0F,0x5C11, - 0x5C1A,0x5E84,0x5E8A,0x5EE0,0x5F70,0x627F,0x6284,0x62DB, - 0x638C,0x6377,0x6607,0x660C,0x662D,0x6676,0x677E,0x68A2, - 0x6A1F,0x6A35,0x6CBC,0x6D88,0x6E09,0x6E58,0x713C,0x7126, - 0x7167,0x75C7,0x7701,0x785D,0x7901,0x7965,0x79F0,0x7AE0, - 0x7B11,0x7CA7,0x7D39,0x8096,0x83D6,0x848B,0x8549,0x885D, - 0x88F3,0x8A1F,0x8A3C,0x8A54,0x8A73,0x8C61,0x8CDE,0x91A4, - 0x9266,0x937E,0x9418,0x969C,0x9798,0x4E0A,0x4E08,0x4E1E, - 0x4E57,0x5197,0x5270,0x57CE,0x5834,0x58CC,0x5B22,0x5E38, - 0x60C5,0x64FE,0x6761,0x6756,0x6D44,0x72B6,0x7573,0x7A63, - 0x84B8,0x8B72,0x91B8,0x9320,0x5631,0x57F4,0x98FE,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 64, Array index 0x1800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x62ED,0x690D,0x6B96,0x71ED,0x7E54,0x8077,0x8272, - 0x89E6,0x98DF,0x8755,0x8FB1,0x5C3B,0x4F38,0x4FE1,0x4FB5, - 0x5507,0x5A20,0x5BDD,0x5BE9,0x5FC3,0x614E,0x632F,0x65B0, - 0x664B,0x68EE,0x699B,0x6D78,0x6DF1,0x7533,0x75B9,0x771F, - 0x795E,0x79E6,0x7D33,0x81E3,0x82AF,0x85AA,0x89AA,0x8A3A, - 0x8EAB,0x8F9B,0x9032,0x91DD,0x9707,0x4EBA,0x4EC1,0x5203, - 0x5875,0x58EC,0x5C0B,0x751A,0x5C3D,0x814E,0x8A0A,0x8FC5, - 0x9663,0x976D,0x7B25,0x8ACF,0x9808,0x9162,0x56F3,0x53A8, - 0x9017,0x5439,0x5782,0x5E25,0x63A8,0x6C34,0x708A,0x7761, - 0x7C8B,0x7FE0,0x8870,0x9042,0x9154,0x9310,0x9318,0x968F, - 0x745E,0x9AC4,0x5D07,0x5D69,0x6570,0x67A2,0x8DA8,0x96DB, - 0x636E,0x6749,0x6919,0x83C5,0x9817,0x96C0,0x88FE,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 65, Array index 0x1900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6F84,0x647A,0x5BF8,0x4E16,0x702C,0x755D,0x662F, - 0x51C4,0x5236,0x52E2,0x59D3,0x5F81,0x6027,0x6210,0x653F, - 0x6574,0x661F,0x6674,0x68F2,0x6816,0x6B63,0x6E05,0x7272, - 0x751F,0x76DB,0x7CBE,0x8056,0x58F0,0x88FD,0x897F,0x8AA0, - 0x8A93,0x8ACB,0x901D,0x9192,0x9752,0x9759,0x6589,0x7A0E, - 0x8106,0x96BB,0x5E2D,0x60DC,0x621A,0x65A5,0x6614,0x6790, - 0x77F3,0x7A4D,0x7C4D,0x7E3E,0x810A,0x8CAC,0x8D64,0x8DE1, - 0x8E5F,0x78A9,0x5207,0x62D9,0x63A5,0x6442,0x6298,0x8A2D, - 0x7A83,0x7BC0,0x8AAC,0x96EA,0x7D76,0x820C,0x8749,0x4ED9, - 0x5148,0x5343,0x5360,0x5BA3,0x5C02,0x5C16,0x5DDD,0x6226, - 0x6247,0x64B0,0x6813,0x6834,0x6CC9,0x6D45,0x6D17,0x67D3, - 0x6F5C,0x714E,0x717D,0x65CB,0x7A7F,0x7BAD,0x7DDA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 66, Array index 0x1A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7E4A,0x7FA8,0x817A,0x821B,0x8239,0x85A6,0x8A6E, - 0x8CCE,0x8DF5,0x9078,0x9077,0x92AD,0x9291,0x9583,0x9BAE, - 0x524D,0x5584,0x6F38,0x7136,0x5168,0x7985,0x7E55,0x81B3, - 0x7CCE,0x564C,0x5851,0x5CA8,0x63AA,0x66FE,0x66FD,0x695A, - 0x72D9,0x758F,0x758E,0x790E,0x7956,0x79DF,0x7C97,0x7D20, - 0x7D44,0x8607,0x8A34,0x963B,0x9061,0x9F20,0x50E7,0x5275, - 0x53CC,0x53E2,0x5009,0x55AA,0x58EE,0x594F,0x723D,0x5B8B, - 0x5C64,0x531D,0x60E3,0x60F3,0x635C,0x6383,0x633F,0x63BB, - 0x64CD,0x65E9,0x66F9,0x5DE3,0x69CD,0x69FD,0x6F15,0x71E5, - 0x4E89,0x75E9,0x76F8,0x7A93,0x7CDF,0x7DCF,0x7D9C,0x8061, - 0x8349,0x8358,0x846C,0x84BC,0x85FB,0x88C5,0x8D70,0x9001, - 0x906D,0x9397,0x971C,0x9A12,0x50CF,0x5897,0x618E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 67, Array index 0x1B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x81D3,0x8535,0x8D08,0x9020,0x4FC3,0x5074,0x5247, - 0x5373,0x606F,0x6349,0x675F,0x6E2C,0x8DB3,0x901F,0x4FD7, - 0x5C5E,0x8CCA,0x65CF,0x7D9A,0x5352,0x8896,0x5176,0x63C3, - 0x5B58,0x5B6B,0x5C0A,0x640D,0x6751,0x905C,0x4ED6,0x591A, - 0x592A,0x6C70,0x8A51,0x553E,0x5815,0x59A5,0x60F0,0x6253, - 0x67C1,0x8235,0x6955,0x9640,0x99C4,0x9A28,0x4F53,0x5806, - 0x5BFE,0x8010,0x5CB1,0x5E2F,0x5F85,0x6020,0x614B,0x6234, - 0x66FF,0x6CF0,0x6EDE,0x80CE,0x817F,0x82D4,0x888B,0x8CB8, - 0x9000,0x902E,0x968A,0x9EDB,0x9BDB,0x4EE3,0x53F0,0x5927, - 0x7B2C,0x918D,0x984C,0x9DF9,0x6EDD,0x7027,0x5353,0x5544, - 0x5B85,0x6258,0x629E,0x62D3,0x6CA2,0x6FEF,0x7422,0x8A17, - 0x9438,0x6FC1,0x8AFE,0x8338,0x51E7,0x86F8,0x53EA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 68, Array index 0x1C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x53E9,0x4F46,0x9054,0x8FB0,0x596A,0x8131,0x5DFD, - 0x7AEA,0x8FBF,0x68DA,0x8C37,0x72F8,0x9C48,0x6A3D,0x8AB0, - 0x4E39,0x5358,0x5606,0x5766,0x62C5,0x63A2,0x65E6,0x6B4E, - 0x6DE1,0x6E5B,0x70AD,0x77ED,0x7AEF,0x7BAA,0x7DBB,0x803D, - 0x80C6,0x86CB,0x8A95,0x935B,0x56E3,0x58C7,0x5F3E,0x65AD, - 0x6696,0x6A80,0x6BB5,0x7537,0x8AC7,0x5024,0x77E5,0x5730, - 0x5F1B,0x6065,0x667A,0x6C60,0x75F4,0x7A1A,0x7F6E,0x81F4, - 0x8718,0x9045,0x99B3,0x7BC9,0x755C,0x7AF9,0x7B51,0x84C4, - 0x9010,0x79E9,0x7A92,0x8336,0x5AE1,0x7740,0x4E2D,0x4EF2, - 0x5B99,0x5FE0,0x62BD,0x663C,0x67F1,0x6CE8,0x866B,0x8877, - 0x8A3B,0x914E,0x92F3,0x99D0,0x6A17,0x7026,0x732A,0x82E7, - 0x8457,0x8CAF,0x4E01,0x5146,0x51CB,0x558B,0x5BF5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 69, Array index 0x1D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5E16,0x5E33,0x5E81,0x5F14,0x5F35,0x5F6B,0x5FB4, - 0x61F2,0x6311,0x66A2,0x671D,0x6F6E,0x7252,0x753A,0x773A, - 0x8074,0x8139,0x8178,0x8776,0x8ABF,0x8ADC,0x8D85,0x8DF3, - 0x929A,0x9577,0x9802,0x9CE5,0x52C5,0x6357,0x76F4,0x6715, - 0x6C88,0x73CD,0x8CC3,0x93AE,0x9673,0x6D25,0x589C,0x690E, - 0x69CC,0x8FFD,0x939A,0x75DB,0x901A,0x585A,0x6802,0x63B4, - 0x69FB,0x4F43,0x6F2C,0x67D8,0x8FBB,0x8526,0x7DB4,0x9354, - 0x693F,0x6F70,0x576A,0x58F7,0x5B2C,0x7D2C,0x722A,0x540A, - 0x91E3,0x9DB4,0x4EAD,0x4F4E,0x505C,0x5075,0x5243,0x8C9E, - 0x5448,0x5824,0x5B9A,0x5E1D,0x5E95,0x5EAD,0x5EF7,0x5F1F, - 0x608C,0x62B5,0x633A,0x63D0,0x68AF,0x6C40,0x7887,0x798E, - 0x7A0B,0x7DE0,0x8247,0x8A02,0x8AE6,0x8E44,0x9013,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 70, Array index 0x1E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x90B8,0x912D,0x91D8,0x9F0E,0x6CE5,0x6458,0x64E2, - 0x6575,0x6EF4,0x7684,0x7B1B,0x9069,0x93D1,0x6EBA,0x54F2, - 0x5FB9,0x64A4,0x8F4D,0x8FED,0x9244,0x5178,0x586B,0x5929, - 0x5C55,0x5E97,0x6DFB,0x7E8F,0x751C,0x8CBC,0x8EE2,0x985B, - 0x70B9,0x4F1D,0x6BBF,0x6FB1,0x7530,0x96FB,0x514E,0x5410, - 0x5835,0x5857,0x59AC,0x5C60,0x5F92,0x6597,0x675C,0x6E21, - 0x767B,0x83DF,0x8CED,0x9014,0x90FD,0x934D,0x7825,0x783A, - 0x52AA,0x5EA6,0x571F,0x5974,0x6012,0x5012,0x515A,0x51AC, - 0x51CD,0x5200,0x5510,0x5854,0x5858,0x5957,0x5B95,0x5CF6, - 0x5D8B,0x60BC,0x6295,0x642D,0x6771,0x6843,0x68BC,0x68DF, - 0x76D7,0x6DD8,0x6E6F,0x6D9B,0x706F,0x71C8,0x5F53,0x75D8, - 0x7977,0x7B49,0x7B54,0x7B52,0x7CD6,0x7D71,0x5230,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 71, Array index 0x1F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8463,0x8569,0x85E4,0x8A0E,0x8B04,0x8C46,0x8E0F, - 0x9003,0x900F,0x9419,0x9676,0x982D,0x9A30,0x95D8,0x50CD, - 0x52D5,0x540C,0x5802,0x5C0E,0x61A7,0x649E,0x6D1E,0x77B3, - 0x7AE5,0x80F4,0x8404,0x9053,0x9285,0x5CE0,0x9D07,0x533F, - 0x5F97,0x5FB3,0x6D9C,0x7279,0x7763,0x79BF,0x7BE4,0x6BD2, - 0x72EC,0x8AAD,0x6803,0x6A61,0x51F8,0x7A81,0x6934,0x5C4A, - 0x9CF6,0x82EB,0x5BC5,0x9149,0x701E,0x5678,0x5C6F,0x60C7, - 0x6566,0x6C8C,0x8C5A,0x9041,0x9813,0x5451,0x66C7,0x920D, - 0x5948,0x90A3,0x5185,0x4E4D,0x51EA,0x8599,0x8B0E,0x7058, - 0x637A,0x934B,0x6962,0x99B4,0x7E04,0x7577,0x5357,0x6960, - 0x8EDF,0x96E3,0x6C5D,0x4E8C,0x5C3C,0x5F10,0x8FE9,0x5302, - 0x8CD1,0x8089,0x8679,0x5EFF,0x65E5,0x4E73,0x5165,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 72, Array index 0x2000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5982,0x5C3F,0x97EE,0x4EFB,0x598A,0x5FCD,0x8A8D, - 0x6FE1,0x79B0,0x7962,0x5BE7,0x8471,0x732B,0x71B1,0x5E74, - 0x5FF5,0x637B,0x649A,0x71C3,0x7C98,0x4E43,0x5EFC,0x4E4B, - 0x57DC,0x56A2,0x60A9,0x6FC3,0x7D0D,0x80FD,0x8133,0x81BF, - 0x8FB2,0x8997,0x86A4,0x5DF4,0x628A,0x64AD,0x8987,0x6777, - 0x6CE2,0x6D3E,0x7436,0x7834,0x5A46,0x7F75,0x82AD,0x99AC, - 0x4FF3,0x5EC3,0x62DD,0x6392,0x6557,0x676F,0x76C3,0x724C, - 0x80CC,0x80BA,0x8F29,0x914D,0x500D,0x57F9,0x5A92,0x6885, - 0x6973,0x7164,0x72FD,0x8CB7,0x58F2,0x8CE0,0x966A,0x9019, - 0x877F,0x79E4,0x77E7,0x8429,0x4F2F,0x5265,0x535A,0x62CD, - 0x67CF,0x6CCA,0x767D,0x7B94,0x7C95,0x8236,0x8584,0x8FEB, - 0x66DD,0x6F20,0x7206,0x7E1B,0x83AB,0x99C1,0x9EA6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 73, Array index 0x2100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x51FD,0x7BB1,0x7872,0x7BB8,0x8087,0x7B48,0x6AE8, - 0x5E61,0x808C,0x7551,0x7560,0x516B,0x9262,0x6E8C,0x767A, - 0x9197,0x9AEA,0x4F10,0x7F70,0x629C,0x7B4F,0x95A5,0x9CE9, - 0x567A,0x5859,0x86E4,0x96BC,0x4F34,0x5224,0x534A,0x53CD, - 0x53DB,0x5E06,0x642C,0x6591,0x677F,0x6C3E,0x6C4E,0x7248, - 0x72AF,0x73ED,0x7554,0x7E41,0x822C,0x85E9,0x8CA9,0x7BC4, - 0x91C6,0x7169,0x9812,0x98EF,0x633D,0x6669,0x756A,0x76E4, - 0x78D0,0x8543,0x86EE,0x532A,0x5351,0x5426,0x5983,0x5E87, - 0x5F7C,0x60B2,0x6249,0x6279,0x62AB,0x6590,0x6BD4,0x6CCC, - 0x75B2,0x76AE,0x7891,0x79D8,0x7DCB,0x7F77,0x80A5,0x88AB, - 0x8AB9,0x8CBB,0x907F,0x975E,0x98DB,0x6A0B,0x7C38,0x5099, - 0x5C3E,0x5FAE,0x6787,0x6BD8,0x7435,0x7709,0x7F8E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 74, Array index 0x2200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9F3B,0x67CA,0x7A17,0x5339,0x758B,0x9AED,0x5F66, - 0x819D,0x83F1,0x8098,0x5F3C,0x5FC5,0x7562,0x7B46,0x903C, - 0x6867,0x59EB,0x5A9B,0x7D10,0x767E,0x8B2C,0x4FF5,0x5F6A, - 0x6A19,0x6C37,0x6F02,0x74E2,0x7968,0x8868,0x8A55,0x8C79, - 0x5EDF,0x63CF,0x75C5,0x79D2,0x82D7,0x9328,0x92F2,0x849C, - 0x86ED,0x9C2D,0x54C1,0x5F6C,0x658C,0x6D5C,0x7015,0x8CA7, - 0x8CD3,0x983B,0x654F,0x74F6,0x4E0D,0x4ED8,0x57E0,0x592B, - 0x5A66,0x5BCC,0x51A8,0x5E03,0x5E9C,0x6016,0x6276,0x6577, - 0x65A7,0x666E,0x6D6E,0x7236,0x7B26,0x8150,0x819A,0x8299, - 0x8B5C,0x8CA0,0x8CE6,0x8D74,0x961C,0x9644,0x4FAE,0x64AB, - 0x6B66,0x821E,0x8461,0x856A,0x90E8,0x5C01,0x6953,0x98A8, - 0x847A,0x8557,0x4F0F,0x526F,0x5FA9,0x5E45,0x670D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 75, Array index 0x2300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x798F,0x8179,0x8907,0x8986,0x6DF5,0x5F17,0x6255, - 0x6CB8,0x4ECF,0x7269,0x9B92,0x5206,0x543B,0x5674,0x58B3, - 0x61A4,0x626E,0x711A,0x596E,0x7C89,0x7CDE,0x7D1B,0x96F0, - 0x6587,0x805E,0x4E19,0x4F75,0x5175,0x5840,0x5E63,0x5E73, - 0x5F0A,0x67C4,0x4E26,0x853D,0x9589,0x965B,0x7C73,0x9801, - 0x50FB,0x58C1,0x7656,0x78A7,0x5225,0x77A5,0x8511,0x7B86, - 0x504F,0x5909,0x7247,0x7BC7,0x7DE8,0x8FBA,0x8FD4,0x904D, - 0x4FBF,0x52C9,0x5A29,0x5F01,0x97AD,0x4FDD,0x8217,0x92EA, - 0x5703,0x6355,0x6B69,0x752B,0x88DC,0x8F14,0x7A42,0x52DF, - 0x5893,0x6155,0x620A,0x66AE,0x6BCD,0x7C3F,0x83E9,0x5023, - 0x4FF8,0x5305,0x5446,0x5831,0x5949,0x5B9D,0x5CF0,0x5CEF, - 0x5D29,0x5E96,0x62B1,0x6367,0x653E,0x65B9,0x670B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 76, Array index 0x2400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6CD5,0x6CE1,0x70F9,0x7832,0x7E2B,0x80DE,0x82B3, - 0x840C,0x84EC,0x8702,0x8912,0x8A2A,0x8C4A,0x90A6,0x92D2, - 0x98FD,0x9CF3,0x9D6C,0x4E4F,0x4EA1,0x508D,0x5256,0x574A, - 0x59A8,0x5E3D,0x5FD8,0x5FD9,0x623F,0x66B4,0x671B,0x67D0, - 0x68D2,0x5192,0x7D21,0x80AA,0x81A8,0x8B00,0x8C8C,0x8CBF, - 0x927E,0x9632,0x5420,0x982C,0x5317,0x50D5,0x535C,0x58A8, - 0x64B2,0x6734,0x7267,0x7766,0x7A46,0x91E6,0x52C3,0x6CA1, - 0x6B86,0x5800,0x5E4C,0x5954,0x672C,0x7FFB,0x51E1,0x76C6, - 0x6469,0x78E8,0x9B54,0x9EBB,0x57CB,0x59B9,0x6627,0x679A, - 0x6BCE,0x54E9,0x69D9,0x5E55,0x819C,0x6795,0x9BAA,0x67FE, - 0x9C52,0x685D,0x4EA6,0x4FE3,0x53C8,0x62B9,0x672B,0x6CAB, - 0x8FC4,0x4FAD,0x7E6D,0x9EBF,0x4E07,0x6162,0x6E80,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 77, Array index 0x2500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6F2B,0x8513,0x5473,0x672A,0x9B45,0x5DF3,0x7B95, - 0x5CAC,0x5BC6,0x871C,0x6E4A,0x84D1,0x7A14,0x8108,0x5999, - 0x7C8D,0x6C11,0x7720,0x52D9,0x5922,0x7121,0x725F,0x77DB, - 0x9727,0x9D61,0x690B,0x5A7F,0x5A18,0x51A5,0x540D,0x547D, - 0x660E,0x76DF,0x8FF7,0x9298,0x9CF4,0x59EA,0x725D,0x6EC5, - 0x514D,0x68C9,0x7DBF,0x7DEC,0x9762,0x9EBA,0x6478,0x6A21, - 0x8302,0x5984,0x5B5F,0x6BDB,0x731B,0x76F2,0x7DB2,0x8017, - 0x8499,0x5132,0x6728,0x9ED9,0x76EE,0x6762,0x52FF,0x9905, - 0x5C24,0x623B,0x7C7E,0x8CB0,0x554F,0x60B6,0x7D0B,0x9580, - 0x5301,0x4E5F,0x51B6,0x591C,0x723A,0x8036,0x91CE,0x5F25, - 0x77E2,0x5384,0x5F79,0x7D04,0x85AC,0x8A33,0x8E8D,0x9756, - 0x67F3,0x85AE,0x9453,0x6109,0x6108,0x6CB9,0x7652,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 78, Array index 0x2600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8AED,0x8F38,0x552F,0x4F51,0x512A,0x52C7,0x53CB, - 0x5BA5,0x5E7D,0x60A0,0x6182,0x63D6,0x6709,0x67DA,0x6E67, - 0x6D8C,0x7336,0x7337,0x7531,0x7950,0x88D5,0x8A98,0x904A, - 0x9091,0x90F5,0x96C4,0x878D,0x5915,0x4E88,0x4F59,0x4E0E, - 0x8A89,0x8F3F,0x9810,0x50AD,0x5E7C,0x5996,0x5BB9,0x5EB8, - 0x63DA,0x63FA,0x64C1,0x66DC,0x694A,0x69D8,0x6D0B,0x6EB6, - 0x7194,0x7528,0x7AAF,0x7F8A,0x8000,0x8449,0x84C9,0x8981, - 0x8B21,0x8E0A,0x9065,0x967D,0x990A,0x617E,0x6291,0x6B32, - 0x6C83,0x6D74,0x7FCC,0x7FFC,0x6DC0,0x7F85,0x87BA,0x88F8, - 0x6765,0x83B1,0x983C,0x96F7,0x6D1B,0x7D61,0x843D,0x916A, - 0x4E71,0x5375,0x5D50,0x6B04,0x6FEB,0x85CD,0x862D,0x89A7, - 0x5229,0x540F,0x5C65,0x674E,0x68A8,0x7406,0x7483,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 79, Array index 0x2700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x75E2,0x88CF,0x88E1,0x91CC,0x96E2,0x9678,0x5F8B, - 0x7387,0x7ACB,0x844E,0x63A0,0x7565,0x5289,0x6D41,0x6E9C, - 0x7409,0x7559,0x786B,0x7C92,0x9686,0x7ADC,0x9F8D,0x4FB6, - 0x616E,0x65C5,0x865C,0x4E86,0x4EAE,0x50DA,0x4E21,0x51CC, - 0x5BEE,0x6599,0x6881,0x6DBC,0x731F,0x7642,0x77AD,0x7A1C, - 0x7CE7,0x826F,0x8AD2,0x907C,0x91CF,0x9675,0x9818,0x529B, - 0x7DD1,0x502B,0x5398,0x6797,0x6DCB,0x71D0,0x7433,0x81E8, - 0x8F2A,0x96A3,0x9C57,0x9E9F,0x7460,0x5841,0x6D99,0x7D2F, - 0x985E,0x4EE4,0x4F36,0x4F8B,0x51B7,0x52B1,0x5DBA,0x601C, - 0x73B2,0x793C,0x82D3,0x9234,0x96B7,0x96F6,0x970A,0x9E97, - 0x9F62,0x66A6,0x6B74,0x5217,0x52A3,0x70C8,0x88C2,0x5EC9, - 0x604B,0x6190,0x6F23,0x7149,0x7C3E,0x7DF4,0x806F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 80, Array index 0x2800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x84EE,0x9023,0x932C,0x5442,0x9B6F,0x6AD3,0x7089, - 0x8CC2,0x8DEF,0x9732,0x52B4,0x5A41,0x5ECA,0x5F04,0x6717, - 0x697C,0x6994,0x6D6A,0x6F0F,0x7262,0x72FC,0x7BED,0x8001, - 0x807E,0x874B,0x90CE,0x516D,0x9E93,0x7984,0x808B,0x9332, - 0x8AD6,0x502D,0x548C,0x8A71,0x6B6A,0x8CC4,0x8107,0x60D1, - 0x67A0,0x9DF2,0x4E99,0x4E98,0x9C10,0x8A6B,0x85C1,0x8568, - 0x6900,0x6E7E,0x7897,0x8155,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 81, Array index 0x2900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F0C,0x4E10,0x4E15,0x4E2A,0x4E31,0x4E36,0x4E3C, - 0x4E3F,0x4E42,0x4E56,0x4E58,0x4E82,0x4E85,0x8C6B,0x4E8A, - 0x8212,0x5F0D,0x4E8E,0x4E9E,0x4E9F,0x4EA0,0x4EA2,0x4EB0, - 0x4EB3,0x4EB6,0x4ECE,0x4ECD,0x4EC4,0x4EC6,0x4EC2,0x4ED7, - 0x4EDE,0x4EED,0x4EDF,0x4EF7,0x4F09,0x4F5A,0x4F30,0x4F5B, - 0x4F5D,0x4F57,0x4F47,0x4F76,0x4F88,0x4F8F,0x4F98,0x4F7B, - 0x4F69,0x4F70,0x4F91,0x4F6F,0x4F86,0x4F96,0x5118,0x4FD4, - 0x4FDF,0x4FCE,0x4FD8,0x4FDB,0x4FD1,0x4FDA,0x4FD0,0x4FE4, - 0x4FE5,0x501A,0x5028,0x5014,0x502A,0x5025,0x5005,0x4F1C, - 0x4FF6,0x5021,0x5029,0x502C,0x4FFE,0x4FEF,0x5011,0x5006, - 0x5043,0x5047,0x6703,0x5055,0x5050,0x5048,0x505A,0x5056, - 0x506C,0x5078,0x5080,0x509A,0x5085,0x50B4,0x50B2,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 82, Array index 0x2A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x50C9,0x50CA,0x50B3,0x50C2,0x50D6,0x50DE,0x50E5, - 0x50ED,0x50E3,0x50EE,0x50F9,0x50F5,0x5109,0x5101,0x5102, - 0x5116,0x5115,0x5114,0x511A,0x5121,0x513A,0x5137,0x513C, - 0x513B,0x513F,0x5140,0x5152,0x514C,0x5154,0x5162,0x7AF8, - 0x5169,0x516A,0x516E,0x5180,0x5182,0x56D8,0x518C,0x5189, - 0x518F,0x5191,0x5193,0x5195,0x5196,0x51A4,0x51A6,0x51A2, - 0x51A9,0x51AA,0x51AB,0x51B3,0x51B1,0x51B2,0x51B0,0x51B5, - 0x51BD,0x51C5,0x51C9,0x51DB,0x51E0,0x8655,0x51E9,0x51ED, - 0x51F0,0x51F5,0x51FE,0x5204,0x520B,0x5214,0x520E,0x5227, - 0x522A,0x522E,0x5233,0x5239,0x524F,0x5244,0x524B,0x524C, - 0x525E,0x5254,0x526A,0x5274,0x5269,0x5273,0x527F,0x527D, - 0x528D,0x5294,0x5292,0x5271,0x5288,0x5291,0x8FA8,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 83, Array index 0x2B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8FA7,0x52AC,0x52AD,0x52BC,0x52B5,0x52C1,0x52CD, - 0x52D7,0x52DE,0x52E3,0x52E6,0x98ED,0x52E0,0x52F3,0x52F5, - 0x52F8,0x52F9,0x5306,0x5308,0x7538,0x530D,0x5310,0x530F, - 0x5315,0x531A,0x5323,0x532F,0x5331,0x5333,0x5338,0x5340, - 0x5346,0x5345,0x4E17,0x5349,0x534D,0x51D6,0x535E,0x5369, - 0x536E,0x5918,0x537B,0x5377,0x5382,0x5396,0x53A0,0x53A6, - 0x53A5,0x53AE,0x53B0,0x53B6,0x53C3,0x7C12,0x96D9,0x53DF, - 0x66FC,0x71EE,0x53EE,0x53E8,0x53ED,0x53FA,0x5401,0x543D, - 0x5440,0x542C,0x542D,0x543C,0x542E,0x5436,0x5429,0x541D, - 0x544E,0x548F,0x5475,0x548E,0x545F,0x5471,0x5477,0x5470, - 0x5492,0x547B,0x5480,0x5476,0x5484,0x5490,0x5486,0x54C7, - 0x54A2,0x54B8,0x54A5,0x54AC,0x54C4,0x54C8,0x54A8,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 84, Array index 0x2C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x54AB,0x54C2,0x54A4,0x54BE,0x54BC,0x54D8,0x54E5, - 0x54E6,0x550F,0x5514,0x54FD,0x54EE,0x54ED,0x54FA,0x54E2, - 0x5539,0x5540,0x5563,0x554C,0x552E,0x555C,0x5545,0x5556, - 0x5557,0x5538,0x5533,0x555D,0x5599,0x5580,0x54AF,0x558A, - 0x559F,0x557B,0x557E,0x5598,0x559E,0x55AE,0x557C,0x5583, - 0x55A9,0x5587,0x55A8,0x55DA,0x55C5,0x55DF,0x55C4,0x55DC, - 0x55E4,0x55D4,0x5614,0x55F7,0x5616,0x55FE,0x55FD,0x561B, - 0x55F9,0x564E,0x5650,0x71DF,0x5634,0x5636,0x5632,0x5638, - 0x566B,0x5664,0x562F,0x566C,0x566A,0x5686,0x5680,0x568A, - 0x56A0,0x5694,0x568F,0x56A5,0x56AE,0x56B6,0x56B4,0x56C2, - 0x56BC,0x56C1,0x56C3,0x56C0,0x56C8,0x56CE,0x56D1,0x56D3, - 0x56D7,0x56EE,0x56F9,0x5700,0x56FF,0x5704,0x5709,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 85, Array index 0x2D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5708,0x570B,0x570D,0x5713,0x5718,0x5716,0x55C7, - 0x571C,0x5726,0x5737,0x5738,0x574E,0x573B,0x5740,0x574F, - 0x5769,0x57C0,0x5788,0x5761,0x577F,0x5789,0x5793,0x57A0, - 0x57B3,0x57A4,0x57AA,0x57B0,0x57C3,0x57C6,0x57D4,0x57D2, - 0x57D3,0x580A,0x57D6,0x57E3,0x580B,0x5819,0x581D,0x5872, - 0x5821,0x5862,0x584B,0x5870,0x6BC0,0x5852,0x583D,0x5879, - 0x5885,0x58B9,0x589F,0x58AB,0x58BA,0x58DE,0x58BB,0x58B8, - 0x58AE,0x58C5,0x58D3,0x58D1,0x58D7,0x58D9,0x58D8,0x58E5, - 0x58DC,0x58E4,0x58DF,0x58EF,0x58FA,0x58F9,0x58FB,0x58FC, - 0x58FD,0x5902,0x590A,0x5910,0x591B,0x68A6,0x5925,0x592C, - 0x592D,0x5932,0x5938,0x593E,0x7AD2,0x5955,0x5950,0x594E, - 0x595A,0x5958,0x5962,0x5960,0x5967,0x596C,0x5969,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 86, Array index 0x2E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5978,0x5981,0x599D,0x4F5E,0x4FAB,0x59A3,0x59B2, - 0x59C6,0x59E8,0x59DC,0x598D,0x59D9,0x59DA,0x5A25,0x5A1F, - 0x5A11,0x5A1C,0x5A09,0x5A1A,0x5A40,0x5A6C,0x5A49,0x5A35, - 0x5A36,0x5A62,0x5A6A,0x5A9A,0x5ABC,0x5ABE,0x5ACB,0x5AC2, - 0x5ABD,0x5AE3,0x5AD7,0x5AE6,0x5AE9,0x5AD6,0x5AFA,0x5AFB, - 0x5B0C,0x5B0B,0x5B16,0x5B32,0x5AD0,0x5B2A,0x5B36,0x5B3E, - 0x5B43,0x5B45,0x5B40,0x5B51,0x5B55,0x5B5A,0x5B5B,0x5B65, - 0x5B69,0x5B70,0x5B73,0x5B75,0x5B78,0x6588,0x5B7A,0x5B80, - 0x5B83,0x5BA6,0x5BB8,0x5BC3,0x5BC7,0x5BC9,0x5BD4,0x5BD0, - 0x5BE4,0x5BE6,0x5BE2,0x5BDE,0x5BE5,0x5BEB,0x5BF0,0x5BF6, - 0x5BF3,0x5C05,0x5C07,0x5C08,0x5C0D,0x5C13,0x5C20,0x5C22, - 0x5C28,0x5C38,0x5C39,0x5C41,0x5C46,0x5C4E,0x5C53,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 87, Array index 0x2F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C50,0x5C4F,0x5B71,0x5C6C,0x5C6E,0x4E62,0x5C76, - 0x5C79,0x5C8C,0x5C91,0x5C94,0x599B,0x5CAB,0x5CBB,0x5CB6, - 0x5CBC,0x5CB7,0x5CC5,0x5CBE,0x5CC7,0x5CD9,0x5CE9,0x5CFD, - 0x5CFA,0x5CED,0x5D8C,0x5CEA,0x5D0B,0x5D15,0x5D17,0x5D5C, - 0x5D1F,0x5D1B,0x5D11,0x5D14,0x5D22,0x5D1A,0x5D19,0x5D18, - 0x5D4C,0x5D52,0x5D4E,0x5D4B,0x5D6C,0x5D73,0x5D76,0x5D87, - 0x5D84,0x5D82,0x5DA2,0x5D9D,0x5DAC,0x5DAE,0x5DBD,0x5D90, - 0x5DB7,0x5DBC,0x5DC9,0x5DCD,0x5DD3,0x5DD2,0x5DD6,0x5DDB, - 0x5DEB,0x5DF2,0x5DF5,0x5E0B,0x5E1A,0x5E19,0x5E11,0x5E1B, - 0x5E36,0x5E37,0x5E44,0x5E43,0x5E40,0x5E4E,0x5E57,0x5E54, - 0x5E5F,0x5E62,0x5E64,0x5E47,0x5E75,0x5E76,0x5E7A,0x9EBC, - 0x5E7F,0x5EA0,0x5EC1,0x5EC2,0x5EC8,0x5ED0,0x5ECF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 88, Array index 0x3000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5ED6,0x5EE3,0x5EDD,0x5EDA,0x5EDB,0x5EE2,0x5EE1, - 0x5EE8,0x5EE9,0x5EEC,0x5EF1,0x5EF3,0x5EF0,0x5EF4,0x5EF8, - 0x5EFE,0x5F03,0x5F09,0x5F5D,0x5F5C,0x5F0B,0x5F11,0x5F16, - 0x5F29,0x5F2D,0x5F38,0x5F41,0x5F48,0x5F4C,0x5F4E,0x5F2F, - 0x5F51,0x5F56,0x5F57,0x5F59,0x5F61,0x5F6D,0x5F73,0x5F77, - 0x5F83,0x5F82,0x5F7F,0x5F8A,0x5F88,0x5F91,0x5F87,0x5F9E, - 0x5F99,0x5F98,0x5FA0,0x5FA8,0x5FAD,0x5FBC,0x5FD6,0x5FFB, - 0x5FE4,0x5FF8,0x5FF1,0x5FDD,0x60B3,0x5FFF,0x6021,0x6060, - 0x6019,0x6010,0x6029,0x600E,0x6031,0x601B,0x6015,0x602B, - 0x6026,0x600F,0x603A,0x605A,0x6041,0x606A,0x6077,0x605F, - 0x604A,0x6046,0x604D,0x6063,0x6043,0x6064,0x6042,0x606C, - 0x606B,0x6059,0x6081,0x608D,0x60E7,0x6083,0x609A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 89, Array index 0x3100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6084,0x609B,0x6096,0x6097,0x6092,0x60A7,0x608B, - 0x60E1,0x60B8,0x60E0,0x60D3,0x60B4,0x5FF0,0x60BD,0x60C6, - 0x60B5,0x60D8,0x614D,0x6115,0x6106,0x60F6,0x60F7,0x6100, - 0x60F4,0x60FA,0x6103,0x6121,0x60FB,0x60F1,0x610D,0x610E, - 0x6147,0x613E,0x6128,0x6127,0x614A,0x613F,0x613C,0x612C, - 0x6134,0x613D,0x6142,0x6144,0x6173,0x6177,0x6158,0x6159, - 0x615A,0x616B,0x6174,0x616F,0x6165,0x6171,0x615F,0x615D, - 0x6153,0x6175,0x6199,0x6196,0x6187,0x61AC,0x6194,0x619A, - 0x618A,0x6191,0x61AB,0x61AE,0x61CC,0x61CA,0x61C9,0x61F7, - 0x61C8,0x61C3,0x61C6,0x61BA,0x61CB,0x7F79,0x61CD,0x61E6, - 0x61E3,0x61F6,0x61FA,0x61F4,0x61FF,0x61FD,0x61FC,0x61FE, - 0x6200,0x6208,0x6209,0x620D,0x620C,0x6214,0x621B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 90, Array index 0x3200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x621E,0x6221,0x622A,0x622E,0x6230,0x6232,0x6233, - 0x6241,0x624E,0x625E,0x6263,0x625B,0x6260,0x6268,0x627C, - 0x6282,0x6289,0x627E,0x6292,0x6293,0x6296,0x62D4,0x6283, - 0x6294,0x62D7,0x62D1,0x62BB,0x62CF,0x62FF,0x62C6,0x64D4, - 0x62C8,0x62DC,0x62CC,0x62CA,0x62C2,0x62C7,0x629B,0x62C9, - 0x630C,0x62EE,0x62F1,0x6327,0x6302,0x6308,0x62EF,0x62F5, - 0x6350,0x633E,0x634D,0x641C,0x634F,0x6396,0x638E,0x6380, - 0x63AB,0x6376,0x63A3,0x638F,0x6389,0x639F,0x63B5,0x636B, - 0x6369,0x63BE,0x63E9,0x63C0,0x63C6,0x63E3,0x63C9,0x63D2, - 0x63F6,0x63C4,0x6416,0x6434,0x6406,0x6413,0x6426,0x6436, - 0x651D,0x6417,0x6428,0x640F,0x6467,0x646F,0x6476,0x644E, - 0x652A,0x6495,0x6493,0x64A5,0x64A9,0x6488,0x64BC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 91, Array index 0x3300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x64DA,0x64D2,0x64C5,0x64C7,0x64BB,0x64D8,0x64C2, - 0x64F1,0x64E7,0x8209,0x64E0,0x64E1,0x62AC,0x64E3,0x64EF, - 0x652C,0x64F6,0x64F4,0x64F2,0x64FA,0x6500,0x64FD,0x6518, - 0x651C,0x6505,0x6524,0x6523,0x652B,0x6534,0x6535,0x6537, - 0x6536,0x6538,0x754B,0x6548,0x6556,0x6555,0x654D,0x6558, - 0x655E,0x655D,0x6572,0x6578,0x6582,0x6583,0x8B8A,0x659B, - 0x659F,0x65AB,0x65B7,0x65C3,0x65C6,0x65C1,0x65C4,0x65CC, - 0x65D2,0x65DB,0x65D9,0x65E0,0x65E1,0x65F1,0x6772,0x660A, - 0x6603,0x65FB,0x6773,0x6635,0x6636,0x6634,0x661C,0x664F, - 0x6644,0x6649,0x6641,0x665E,0x665D,0x6664,0x6667,0x6668, - 0x665F,0x6662,0x6670,0x6683,0x6688,0x668E,0x6689,0x6684, - 0x6698,0x669D,0x66C1,0x66B9,0x66C9,0x66BE,0x66BC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 92, Array index 0x3400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x66C4,0x66B8,0x66D6,0x66DA,0x66E0,0x663F,0x66E6, - 0x66E9,0x66F0,0x66F5,0x66F7,0x670F,0x6716,0x671E,0x6726, - 0x6727,0x9738,0x672E,0x673F,0x6736,0x6741,0x6738,0x6737, - 0x6746,0x675E,0x6760,0x6759,0x6763,0x6764,0x6789,0x6770, - 0x67A9,0x677C,0x676A,0x678C,0x678B,0x67A6,0x67A1,0x6785, - 0x67B7,0x67EF,0x67B4,0x67EC,0x67B3,0x67E9,0x67B8,0x67E4, - 0x67DE,0x67DD,0x67E2,0x67EE,0x67B9,0x67CE,0x67C6,0x67E7, - 0x6A9C,0x681E,0x6846,0x6829,0x6840,0x684D,0x6832,0x684E, - 0x68B3,0x682B,0x6859,0x6863,0x6877,0x687F,0x689F,0x688F, - 0x68AD,0x6894,0x689D,0x689B,0x6883,0x6AAE,0x68B9,0x6874, - 0x68B5,0x68A0,0x68BA,0x690F,0x688D,0x687E,0x6901,0x68CA, - 0x6908,0x68D8,0x6922,0x6926,0x68E1,0x690C,0x68CD,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 93, Array index 0x3500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x68D4,0x68E7,0x68D5,0x6936,0x6912,0x6904,0x68D7, - 0x68E3,0x6925,0x68F9,0x68E0,0x68EF,0x6928,0x692A,0x691A, - 0x6923,0x6921,0x68C6,0x6979,0x6977,0x695C,0x6978,0x696B, - 0x6954,0x697E,0x696E,0x6939,0x6974,0x693D,0x6959,0x6930, - 0x6961,0x695E,0x695D,0x6981,0x696A,0x69B2,0x69AE,0x69D0, - 0x69BF,0x69C1,0x69D3,0x69BE,0x69CE,0x5BE8,0x69CA,0x69DD, - 0x69BB,0x69C3,0x69A7,0x6A2E,0x6991,0x69A0,0x699C,0x6995, - 0x69B4,0x69DE,0x69E8,0x6A02,0x6A1B,0x69FF,0x6B0A,0x69F9, - 0x69F2,0x69E7,0x6A05,0x69B1,0x6A1E,0x69ED,0x6A14,0x69EB, - 0x6A0A,0x6A12,0x6AC1,0x6A23,0x6A13,0x6A44,0x6A0C,0x6A72, - 0x6A36,0x6A78,0x6A47,0x6A62,0x6A59,0x6A66,0x6A48,0x6A38, - 0x6A22,0x6A90,0x6A8D,0x6AA0,0x6A84,0x6AA2,0x6AA3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 94, Array index 0x3600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A97,0x8617,0x6ABB,0x6AC3,0x6AC2,0x6AB8,0x6AB3, - 0x6AAC,0x6ADE,0x6AD1,0x6ADF,0x6AAA,0x6ADA,0x6AEA,0x6AFB, - 0x6B05,0x8616,0x6AFA,0x6B12,0x6B16,0x9B31,0x6B1F,0x6B38, - 0x6B37,0x76DC,0x6B39,0x98EE,0x6B47,0x6B43,0x6B49,0x6B50, - 0x6B59,0x6B54,0x6B5B,0x6B5F,0x6B61,0x6B78,0x6B79,0x6B7F, - 0x6B80,0x6B84,0x6B83,0x6B8D,0x6B98,0x6B95,0x6B9E,0x6BA4, - 0x6BAA,0x6BAB,0x6BAF,0x6BB2,0x6BB1,0x6BB3,0x6BB7,0x6BBC, - 0x6BC6,0x6BCB,0x6BD3,0x6BDF,0x6BEC,0x6BEB,0x6BF3,0x6BEF, - 0x9EBE,0x6C08,0x6C13,0x6C14,0x6C1B,0x6C24,0x6C23,0x6C5E, - 0x6C55,0x6C62,0x6C6A,0x6C82,0x6C8D,0x6C9A,0x6C81,0x6C9B, - 0x6C7E,0x6C68,0x6C73,0x6C92,0x6C90,0x6CC4,0x6CF1,0x6CD3, - 0x6CBD,0x6CD7,0x6CC5,0x6CDD,0x6CAE,0x6CB1,0x6CBE,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 95, Array index 0x3700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6CBA,0x6CDB,0x6CEF,0x6CD9,0x6CEA,0x6D1F,0x884D, - 0x6D36,0x6D2B,0x6D3D,0x6D38,0x6D19,0x6D35,0x6D33,0x6D12, - 0x6D0C,0x6D63,0x6D93,0x6D64,0x6D5A,0x6D79,0x6D59,0x6D8E, - 0x6D95,0x6FE4,0x6D85,0x6DF9,0x6E15,0x6E0A,0x6DB5,0x6DC7, - 0x6DE6,0x6DB8,0x6DC6,0x6DEC,0x6DDE,0x6DCC,0x6DE8,0x6DD2, - 0x6DC5,0x6DFA,0x6DD9,0x6DE4,0x6DD5,0x6DEA,0x6DEE,0x6E2D, - 0x6E6E,0x6E2E,0x6E19,0x6E72,0x6E5F,0x6E3E,0x6E23,0x6E6B, - 0x6E2B,0x6E76,0x6E4D,0x6E1F,0x6E43,0x6E3A,0x6E4E,0x6E24, - 0x6EFF,0x6E1D,0x6E38,0x6E82,0x6EAA,0x6E98,0x6EC9,0x6EB7, - 0x6ED3,0x6EBD,0x6EAF,0x6EC4,0x6EB2,0x6ED4,0x6ED5,0x6E8F, - 0x6EA5,0x6EC2,0x6E9F,0x6F41,0x6F11,0x704C,0x6EEC,0x6EF8, - 0x6EFE,0x6F3F,0x6EF2,0x6F31,0x6EEF,0x6F32,0x6ECC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 96, Array index 0x3800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6F3E,0x6F13,0x6EF7,0x6F86,0x6F7A,0x6F78,0x6F81, - 0x6F80,0x6F6F,0x6F5B,0x6FF3,0x6F6D,0x6F82,0x6F7C,0x6F58, - 0x6F8E,0x6F91,0x6FC2,0x6F66,0x6FB3,0x6FA3,0x6FA1,0x6FA4, - 0x6FB9,0x6FC6,0x6FAA,0x6FDF,0x6FD5,0x6FEC,0x6FD4,0x6FD8, - 0x6FF1,0x6FEE,0x6FDB,0x7009,0x700B,0x6FFA,0x7011,0x7001, - 0x700F,0x6FFE,0x701B,0x701A,0x6F74,0x701D,0x7018,0x701F, - 0x7030,0x703E,0x7032,0x7051,0x7063,0x7099,0x7092,0x70AF, - 0x70F1,0x70AC,0x70B8,0x70B3,0x70AE,0x70DF,0x70CB,0x70DD, - 0x70D9,0x7109,0x70FD,0x711C,0x7119,0x7165,0x7155,0x7188, - 0x7166,0x7162,0x714C,0x7156,0x716C,0x718F,0x71FB,0x7184, - 0x7195,0x71A8,0x71AC,0x71D7,0x71B9,0x71BE,0x71D2,0x71C9, - 0x71D4,0x71CE,0x71E0,0x71EC,0x71E7,0x71F5,0x71FC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 97, Array index 0x3900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x71F9,0x71FF,0x720D,0x7210,0x721B,0x7228,0x722D, - 0x722C,0x7230,0x7232,0x723B,0x723C,0x723F,0x7240,0x7246, - 0x724B,0x7258,0x7274,0x727E,0x7282,0x7281,0x7287,0x7292, - 0x7296,0x72A2,0x72A7,0x72B9,0x72B2,0x72C3,0x72C6,0x72C4, - 0x72CE,0x72D2,0x72E2,0x72E0,0x72E1,0x72F9,0x72F7,0x500F, - 0x7317,0x730A,0x731C,0x7316,0x731D,0x7334,0x732F,0x7329, - 0x7325,0x733E,0x734E,0x734F,0x9ED8,0x7357,0x736A,0x7368, - 0x7370,0x7378,0x7375,0x737B,0x737A,0x73C8,0x73B3,0x73CE, - 0x73BB,0x73C0,0x73E5,0x73EE,0x73DE,0x74A2,0x7405,0x746F, - 0x7425,0x73F8,0x7432,0x743A,0x7455,0x743F,0x745F,0x7459, - 0x7441,0x745C,0x7469,0x7470,0x7463,0x746A,0x7476,0x747E, - 0x748B,0x749E,0x74A7,0x74CA,0x74CF,0x74D4,0x73F1,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 98, Array index 0x3A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x74E0,0x74E3,0x74E7,0x74E9,0x74EE,0x74F2,0x74F0, - 0x74F1,0x74F8,0x74F7,0x7504,0x7503,0x7505,0x750C,0x750E, - 0x750D,0x7515,0x7513,0x751E,0x7526,0x752C,0x753C,0x7544, - 0x754D,0x754A,0x7549,0x755B,0x7546,0x755A,0x7569,0x7564, - 0x7567,0x756B,0x756D,0x7578,0x7576,0x7586,0x7587,0x7574, - 0x758A,0x7589,0x7582,0x7594,0x759A,0x759D,0x75A5,0x75A3, - 0x75C2,0x75B3,0x75C3,0x75B5,0x75BD,0x75B8,0x75BC,0x75B1, - 0x75CD,0x75CA,0x75D2,0x75D9,0x75E3,0x75DE,0x75FE,0x75FF, - 0x75FC,0x7601,0x75F0,0x75FA,0x75F2,0x75F3,0x760B,0x760D, - 0x7609,0x761F,0x7627,0x7620,0x7621,0x7622,0x7624,0x7634, - 0x7630,0x763B,0x7647,0x7648,0x7646,0x765C,0x7658,0x7661, - 0x7662,0x7668,0x7669,0x766A,0x7667,0x766C,0x7670,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 99, Array index 0x3B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7672,0x7676,0x7678,0x767C,0x7680,0x7683,0x7688, - 0x768B,0x768E,0x7696,0x7693,0x7699,0x769A,0x76B0,0x76B4, - 0x76B8,0x76B9,0x76BA,0x76C2,0x76CD,0x76D6,0x76D2,0x76DE, - 0x76E1,0x76E5,0x76E7,0x76EA,0x862F,0x76FB,0x7708,0x7707, - 0x7704,0x7729,0x7724,0x771E,0x7725,0x7726,0x771B,0x7737, - 0x7738,0x7747,0x775A,0x7768,0x776B,0x775B,0x7765,0x777F, - 0x777E,0x7779,0x778E,0x778B,0x7791,0x77A0,0x779E,0x77B0, - 0x77B6,0x77B9,0x77BF,0x77BC,0x77BD,0x77BB,0x77C7,0x77CD, - 0x77D7,0x77DA,0x77DC,0x77E3,0x77EE,0x77FC,0x780C,0x7812, - 0x7926,0x7820,0x792A,0x7845,0x788E,0x7874,0x7886,0x787C, - 0x789A,0x788C,0x78A3,0x78B5,0x78AA,0x78AF,0x78D1,0x78C6, - 0x78CB,0x78D4,0x78BE,0x78BC,0x78C5,0x78CA,0x78EC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 100, Array index 0x3C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x78E7,0x78DA,0x78FD,0x78F4,0x7907,0x7912,0x7911, - 0x7919,0x792C,0x792B,0x7940,0x7960,0x7957,0x795F,0x795A, - 0x7955,0x7953,0x797A,0x797F,0x798A,0x799D,0x79A7,0x9F4B, - 0x79AA,0x79AE,0x79B3,0x79B9,0x79BA,0x79C9,0x79D5,0x79E7, - 0x79EC,0x79E1,0x79E3,0x7A08,0x7A0D,0x7A18,0x7A19,0x7A20, - 0x7A1F,0x7980,0x7A31,0x7A3B,0x7A3E,0x7A37,0x7A43,0x7A57, - 0x7A49,0x7A61,0x7A62,0x7A69,0x9F9D,0x7A70,0x7A79,0x7A7D, - 0x7A88,0x7A97,0x7A95,0x7A98,0x7A96,0x7AA9,0x7AC8,0x7AB0, - 0x7AB6,0x7AC5,0x7AC4,0x7ABF,0x9083,0x7AC7,0x7ACA,0x7ACD, - 0x7ACF,0x7AD5,0x7AD3,0x7AD9,0x7ADA,0x7ADD,0x7AE1,0x7AE2, - 0x7AE6,0x7AED,0x7AF0,0x7B02,0x7B0F,0x7B0A,0x7B06,0x7B33, - 0x7B18,0x7B19,0x7B1E,0x7B35,0x7B28,0x7B36,0x7B50,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 101, Array index 0x3D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7B7A,0x7B04,0x7B4D,0x7B0B,0x7B4C,0x7B45,0x7B75, - 0x7B65,0x7B74,0x7B67,0x7B70,0x7B71,0x7B6C,0x7B6E,0x7B9D, - 0x7B98,0x7B9F,0x7B8D,0x7B9C,0x7B9A,0x7B8B,0x7B92,0x7B8F, - 0x7B5D,0x7B99,0x7BCB,0x7BC1,0x7BCC,0x7BCF,0x7BB4,0x7BC6, - 0x7BDD,0x7BE9,0x7C11,0x7C14,0x7BE6,0x7BE5,0x7C60,0x7C00, - 0x7C07,0x7C13,0x7BF3,0x7BF7,0x7C17,0x7C0D,0x7BF6,0x7C23, - 0x7C27,0x7C2A,0x7C1F,0x7C37,0x7C2B,0x7C3D,0x7C4C,0x7C43, - 0x7C54,0x7C4F,0x7C40,0x7C50,0x7C58,0x7C5F,0x7C64,0x7C56, - 0x7C65,0x7C6C,0x7C75,0x7C83,0x7C90,0x7CA4,0x7CAD,0x7CA2, - 0x7CAB,0x7CA1,0x7CA8,0x7CB3,0x7CB2,0x7CB1,0x7CAE,0x7CB9, - 0x7CBD,0x7CC0,0x7CC5,0x7CC2,0x7CD8,0x7CD2,0x7CDC,0x7CE2, - 0x9B3B,0x7CEF,0x7CF2,0x7CF4,0x7CF6,0x7CFA,0x7D06,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 102, Array index 0x3E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7D02,0x7D1C,0x7D15,0x7D0A,0x7D45,0x7D4B,0x7D2E, - 0x7D32,0x7D3F,0x7D35,0x7D46,0x7D73,0x7D56,0x7D4E,0x7D72, - 0x7D68,0x7D6E,0x7D4F,0x7D63,0x7D93,0x7D89,0x7D5B,0x7D8F, - 0x7D7D,0x7D9B,0x7DBA,0x7DAE,0x7DA3,0x7DB5,0x7DC7,0x7DBD, - 0x7DAB,0x7E3D,0x7DA2,0x7DAF,0x7DDC,0x7DB8,0x7D9F,0x7DB0, - 0x7DD8,0x7DDD,0x7DE4,0x7DDE,0x7DFB,0x7DF2,0x7DE1,0x7E05, - 0x7E0A,0x7E23,0x7E21,0x7E12,0x7E31,0x7E1F,0x7E09,0x7E0B, - 0x7E22,0x7E46,0x7E66,0x7E3B,0x7E35,0x7E39,0x7E43,0x7E37, - 0x7E32,0x7E3A,0x7E67,0x7E5D,0x7E56,0x7E5E,0x7E59,0x7E5A, - 0x7E79,0x7E6A,0x7E69,0x7E7C,0x7E7B,0x7E83,0x7DD5,0x7E7D, - 0x8FAE,0x7E7F,0x7E88,0x7E89,0x7E8C,0x7E92,0x7E90,0x7E93, - 0x7E94,0x7E96,0x7E8E,0x7E9B,0x7E9C,0x7F38,0x7F3A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 103, Array index 0x3F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7F45,0x7F4C,0x7F4D,0x7F4E,0x7F50,0x7F51,0x7F55, - 0x7F54,0x7F58,0x7F5F,0x7F60,0x7F68,0x7F69,0x7F67,0x7F78, - 0x7F82,0x7F86,0x7F83,0x7F88,0x7F87,0x7F8C,0x7F94,0x7F9E, - 0x7F9D,0x7F9A,0x7FA3,0x7FAF,0x7FB2,0x7FB9,0x7FAE,0x7FB6, - 0x7FB8,0x8B71,0x7FC5,0x7FC6,0x7FCA,0x7FD5,0x7FD4,0x7FE1, - 0x7FE6,0x7FE9,0x7FF3,0x7FF9,0x98DC,0x8006,0x8004,0x800B, - 0x8012,0x8018,0x8019,0x801C,0x8021,0x8028,0x803F,0x803B, - 0x804A,0x8046,0x8052,0x8058,0x805A,0x805F,0x8062,0x8068, - 0x8073,0x8072,0x8070,0x8076,0x8079,0x807D,0x807F,0x8084, - 0x8086,0x8085,0x809B,0x8093,0x809A,0x80AD,0x5190,0x80AC, - 0x80DB,0x80E5,0x80D9,0x80DD,0x80C4,0x80DA,0x80D6,0x8109, - 0x80EF,0x80F1,0x811B,0x8129,0x8123,0x812F,0x814B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 104, Array index 0x4000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x968B,0x8146,0x813E,0x8153,0x8151,0x80FC,0x8171, - 0x816E,0x8165,0x8166,0x8174,0x8183,0x8188,0x818A,0x8180, - 0x8182,0x81A0,0x8195,0x81A4,0x81A3,0x815F,0x8193,0x81A9, - 0x81B0,0x81B5,0x81BE,0x81B8,0x81BD,0x81C0,0x81C2,0x81BA, - 0x81C9,0x81CD,0x81D1,0x81D9,0x81D8,0x81C8,0x81DA,0x81DF, - 0x81E0,0x81E7,0x81FA,0x81FB,0x81FE,0x8201,0x8202,0x8205, - 0x8207,0x820A,0x820D,0x8210,0x8216,0x8229,0x822B,0x8238, - 0x8233,0x8240,0x8259,0x8258,0x825D,0x825A,0x825F,0x8264, - 0x8262,0x8268,0x826A,0x826B,0x822E,0x8271,0x8277,0x8278, - 0x827E,0x828D,0x8292,0x82AB,0x829F,0x82BB,0x82AC,0x82E1, - 0x82E3,0x82DF,0x82D2,0x82F4,0x82F3,0x82FA,0x8393,0x8303, - 0x82FB,0x82F9,0x82DE,0x8306,0x82DC,0x8309,0x82D9,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 105, Array index 0x4100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8335,0x8334,0x8316,0x8332,0x8331,0x8340,0x8339, - 0x8350,0x8345,0x832F,0x832B,0x8317,0x8318,0x8385,0x839A, - 0x83AA,0x839F,0x83A2,0x8396,0x8323,0x838E,0x8387,0x838A, - 0x837C,0x83B5,0x8373,0x8375,0x83A0,0x8389,0x83A8,0x83F4, - 0x8413,0x83EB,0x83CE,0x83FD,0x8403,0x83D8,0x840B,0x83C1, - 0x83F7,0x8407,0x83E0,0x83F2,0x840D,0x8422,0x8420,0x83BD, - 0x8438,0x8506,0x83FB,0x846D,0x842A,0x843C,0x855A,0x8484, - 0x8477,0x846B,0x84AD,0x846E,0x8482,0x8469,0x8446,0x842C, - 0x846F,0x8479,0x8435,0x84CA,0x8462,0x84B9,0x84BF,0x849F, - 0x84D9,0x84CD,0x84BB,0x84DA,0x84D0,0x84C1,0x84C6,0x84D6, - 0x84A1,0x8521,0x84FF,0x84F4,0x8517,0x8518,0x852C,0x851F, - 0x8515,0x8514,0x84FC,0x8540,0x8563,0x8558,0x8548,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 106, Array index 0x4200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8541,0x8602,0x854B,0x8555,0x8580,0x85A4,0x8588, - 0x8591,0x858A,0x85A8,0x856D,0x8594,0x859B,0x85EA,0x8587, - 0x859C,0x8577,0x857E,0x8590,0x85C9,0x85BA,0x85CF,0x85B9, - 0x85D0,0x85D5,0x85DD,0x85E5,0x85DC,0x85F9,0x860A,0x8613, - 0x860B,0x85FE,0x85FA,0x8606,0x8622,0x861A,0x8630,0x863F, - 0x864D,0x4E55,0x8654,0x865F,0x8667,0x8671,0x8693,0x86A3, - 0x86A9,0x86AA,0x868B,0x868C,0x86B6,0x86AF,0x86C4,0x86C6, - 0x86B0,0x86C9,0x8823,0x86AB,0x86D4,0x86DE,0x86E9,0x86EC, - 0x86DF,0x86DB,0x86EF,0x8712,0x8706,0x8708,0x8700,0x8703, - 0x86FB,0x8711,0x8709,0x870D,0x86F9,0x870A,0x8734,0x873F, - 0x8737,0x873B,0x8725,0x8729,0x871A,0x8760,0x875F,0x8778, - 0x874C,0x874E,0x8774,0x8757,0x8768,0x876E,0x8759,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 107, Array index 0x4300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8753,0x8763,0x876A,0x8805,0x87A2,0x879F,0x8782, - 0x87AF,0x87CB,0x87BD,0x87C0,0x87D0,0x96D6,0x87AB,0x87C4, - 0x87B3,0x87C7,0x87C6,0x87BB,0x87EF,0x87F2,0x87E0,0x880F, - 0x880D,0x87FE,0x87F6,0x87F7,0x880E,0x87D2,0x8811,0x8816, - 0x8815,0x8822,0x8821,0x8831,0x8836,0x8839,0x8827,0x883B, - 0x8844,0x8842,0x8852,0x8859,0x885E,0x8862,0x886B,0x8881, - 0x887E,0x889E,0x8875,0x887D,0x88B5,0x8872,0x8882,0x8897, - 0x8892,0x88AE,0x8899,0x88A2,0x888D,0x88A4,0x88B0,0x88BF, - 0x88B1,0x88C3,0x88C4,0x88D4,0x88D8,0x88D9,0x88DD,0x88F9, - 0x8902,0x88FC,0x88F4,0x88E8,0x88F2,0x8904,0x890C,0x890A, - 0x8913,0x8943,0x891E,0x8925,0x892A,0x892B,0x8941,0x8944, - 0x893B,0x8936,0x8938,0x894C,0x891D,0x8960,0x895E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 108, Array index 0x4400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8966,0x8964,0x896D,0x896A,0x896F,0x8974,0x8977, - 0x897E,0x8983,0x8988,0x898A,0x8993,0x8998,0x89A1,0x89A9, - 0x89A6,0x89AC,0x89AF,0x89B2,0x89BA,0x89BD,0x89BF,0x89C0, - 0x89DA,0x89DC,0x89DD,0x89E7,0x89F4,0x89F8,0x8A03,0x8A16, - 0x8A10,0x8A0C,0x8A1B,0x8A1D,0x8A25,0x8A36,0x8A41,0x8A5B, - 0x8A52,0x8A46,0x8A48,0x8A7C,0x8A6D,0x8A6C,0x8A62,0x8A85, - 0x8A82,0x8A84,0x8AA8,0x8AA1,0x8A91,0x8AA5,0x8AA6,0x8A9A, - 0x8AA3,0x8AC4,0x8ACD,0x8AC2,0x8ADA,0x8AEB,0x8AF3,0x8AE7, - 0x8AE4,0x8AF1,0x8B14,0x8AE0,0x8AE2,0x8AF7,0x8ADE,0x8ADB, - 0x8B0C,0x8B07,0x8B1A,0x8AE1,0x8B16,0x8B10,0x8B17,0x8B20, - 0x8B33,0x97AB,0x8B26,0x8B2B,0x8B3E,0x8B28,0x8B41,0x8B4C, - 0x8B4F,0x8B4E,0x8B49,0x8B56,0x8B5B,0x8B5A,0x8B6B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 109, Array index 0x4500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8B5F,0x8B6C,0x8B6F,0x8B74,0x8B7D,0x8B80,0x8B8C, - 0x8B8E,0x8B92,0x8B93,0x8B96,0x8B99,0x8B9A,0x8C3A,0x8C41, - 0x8C3F,0x8C48,0x8C4C,0x8C4E,0x8C50,0x8C55,0x8C62,0x8C6C, - 0x8C78,0x8C7A,0x8C82,0x8C89,0x8C85,0x8C8A,0x8C8D,0x8C8E, - 0x8C94,0x8C7C,0x8C98,0x621D,0x8CAD,0x8CAA,0x8CBD,0x8CB2, - 0x8CB3,0x8CAE,0x8CB6,0x8CC8,0x8CC1,0x8CE4,0x8CE3,0x8CDA, - 0x8CFD,0x8CFA,0x8CFB,0x8D04,0x8D05,0x8D0A,0x8D07,0x8D0F, - 0x8D0D,0x8D10,0x9F4E,0x8D13,0x8CCD,0x8D14,0x8D16,0x8D67, - 0x8D6D,0x8D71,0x8D73,0x8D81,0x8D99,0x8DC2,0x8DBE,0x8DBA, - 0x8DCF,0x8DDA,0x8DD6,0x8DCC,0x8DDB,0x8DCB,0x8DEA,0x8DEB, - 0x8DDF,0x8DE3,0x8DFC,0x8E08,0x8E09,0x8DFF,0x8E1D,0x8E1E, - 0x8E10,0x8E1F,0x8E42,0x8E35,0x8E30,0x8E34,0x8E4A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 110, Array index 0x4600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8E47,0x8E49,0x8E4C,0x8E50,0x8E48,0x8E59,0x8E64, - 0x8E60,0x8E2A,0x8E63,0x8E55,0x8E76,0x8E72,0x8E7C,0x8E81, - 0x8E87,0x8E85,0x8E84,0x8E8B,0x8E8A,0x8E93,0x8E91,0x8E94, - 0x8E99,0x8EAA,0x8EA1,0x8EAC,0x8EB0,0x8EC6,0x8EB1,0x8EBE, - 0x8EC5,0x8EC8,0x8ECB,0x8EDB,0x8EE3,0x8EFC,0x8EFB,0x8EEB, - 0x8EFE,0x8F0A,0x8F05,0x8F15,0x8F12,0x8F19,0x8F13,0x8F1C, - 0x8F1F,0x8F1B,0x8F0C,0x8F26,0x8F33,0x8F3B,0x8F39,0x8F45, - 0x8F42,0x8F3E,0x8F4C,0x8F49,0x8F46,0x8F4E,0x8F57,0x8F5C, - 0x8F62,0x8F63,0x8F64,0x8F9C,0x8F9F,0x8FA3,0x8FAD,0x8FAF, - 0x8FB7,0x8FDA,0x8FE5,0x8FE2,0x8FEA,0x8FEF,0x9087,0x8FF4, - 0x9005,0x8FF9,0x8FFA,0x9011,0x9015,0x9021,0x900D,0x901E, - 0x9016,0x900B,0x9027,0x9036,0x9035,0x9039,0x8FF8,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 111, Array index 0x4700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x904F,0x9050,0x9051,0x9052,0x900E,0x9049,0x903E, - 0x9056,0x9058,0x905E,0x9068,0x906F,0x9076,0x96A8,0x9072, - 0x9082,0x907D,0x9081,0x9080,0x908A,0x9089,0x908F,0x90A8, - 0x90AF,0x90B1,0x90B5,0x90E2,0x90E4,0x6248,0x90DB,0x9102, - 0x9112,0x9119,0x9132,0x9130,0x914A,0x9156,0x9158,0x9163, - 0x9165,0x9169,0x9173,0x9172,0x918B,0x9189,0x9182,0x91A2, - 0x91AB,0x91AF,0x91AA,0x91B5,0x91B4,0x91BA,0x91C0,0x91C1, - 0x91C9,0x91CB,0x91D0,0x91D6,0x91DF,0x91E1,0x91DB,0x91FC, - 0x91F5,0x91F6,0x921E,0x91FF,0x9214,0x922C,0x9215,0x9211, - 0x925E,0x9257,0x9245,0x9249,0x9264,0x9248,0x9295,0x923F, - 0x924B,0x9250,0x929C,0x9296,0x9293,0x929B,0x925A,0x92CF, - 0x92B9,0x92B7,0x92E9,0x930F,0x92FA,0x9344,0x932E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 112, Array index 0x4800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9319,0x9322,0x931A,0x9323,0x933A,0x9335,0x933B, - 0x935C,0x9360,0x937C,0x936E,0x9356,0x93B0,0x93AC,0x93AD, - 0x9394,0x93B9,0x93D6,0x93D7,0x93E8,0x93E5,0x93D8,0x93C3, - 0x93DD,0x93D0,0x93C8,0x93E4,0x941A,0x9414,0x9413,0x9403, - 0x9407,0x9410,0x9436,0x942B,0x9435,0x9421,0x943A,0x9441, - 0x9452,0x9444,0x945B,0x9460,0x9462,0x945E,0x946A,0x9229, - 0x9470,0x9475,0x9477,0x947D,0x945A,0x947C,0x947E,0x9481, - 0x947F,0x9582,0x9587,0x958A,0x9594,0x9596,0x9598,0x9599, - 0x95A0,0x95A8,0x95A7,0x95AD,0x95BC,0x95BB,0x95B9,0x95BE, - 0x95CA,0x6FF6,0x95C3,0x95CD,0x95CC,0x95D5,0x95D4,0x95D6, - 0x95DC,0x95E1,0x95E5,0x95E2,0x9621,0x9628,0x962E,0x962F, - 0x9642,0x964C,0x964F,0x964B,0x9677,0x965C,0x965E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 113, Array index 0x4900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x965D,0x965F,0x9666,0x9672,0x966C,0x968D,0x9698, - 0x9695,0x9697,0x96AA,0x96A7,0x96B1,0x96B2,0x96B0,0x96B4, - 0x96B6,0x96B8,0x96B9,0x96CE,0x96CB,0x96C9,0x96CD,0x894D, - 0x96DC,0x970D,0x96D5,0x96F9,0x9704,0x9706,0x9708,0x9713, - 0x970E,0x9711,0x970F,0x9716,0x9719,0x9724,0x972A,0x9730, - 0x9739,0x973D,0x973E,0x9744,0x9746,0x9748,0x9742,0x9749, - 0x975C,0x9760,0x9764,0x9766,0x9768,0x52D2,0x976B,0x9771, - 0x9779,0x9785,0x977C,0x9781,0x977A,0x9786,0x978B,0x978F, - 0x9790,0x979C,0x97A8,0x97A6,0x97A3,0x97B3,0x97B4,0x97C3, - 0x97C6,0x97C8,0x97CB,0x97DC,0x97ED,0x9F4F,0x97F2,0x7ADF, - 0x97F6,0x97F5,0x980F,0x980C,0x9838,0x9824,0x9821,0x9837, - 0x983D,0x9846,0x984F,0x984B,0x986B,0x986F,0x9870,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 114, Array index 0x4A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9871,0x9874,0x9873,0x98AA,0x98AF,0x98B1,0x98B6, - 0x98C4,0x98C3,0x98C6,0x98E9,0x98EB,0x9903,0x9909,0x9912, - 0x9914,0x9918,0x9921,0x991D,0x991E,0x9924,0x9920,0x992C, - 0x992E,0x993D,0x993E,0x9942,0x9949,0x9945,0x9950,0x994B, - 0x9951,0x9952,0x994C,0x9955,0x9997,0x9998,0x99A5,0x99AD, - 0x99AE,0x99BC,0x99DF,0x99DB,0x99DD,0x99D8,0x99D1,0x99ED, - 0x99EE,0x99F1,0x99F2,0x99FB,0x99F8,0x9A01,0x9A0F,0x9A05, - 0x99E2,0x9A19,0x9A2B,0x9A37,0x9A45,0x9A42,0x9A40,0x9A43, - 0x9A3E,0x9A55,0x9A4D,0x9A5B,0x9A57,0x9A5F,0x9A62,0x9A65, - 0x9A64,0x9A69,0x9A6B,0x9A6A,0x9AAD,0x9AB0,0x9ABC,0x9AC0, - 0x9ACF,0x9AD1,0x9AD3,0x9AD4,0x9ADE,0x9ADF,0x9AE2,0x9AE3, - 0x9AE6,0x9AEF,0x9AEB,0x9AEE,0x9AF4,0x9AF1,0x9AF7,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 115, Array index 0x4B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9AFB,0x9B06,0x9B18,0x9B1A,0x9B1F,0x9B22,0x9B23, - 0x9B25,0x9B27,0x9B28,0x9B29,0x9B2A,0x9B2E,0x9B2F,0x9B32, - 0x9B44,0x9B43,0x9B4F,0x9B4D,0x9B4E,0x9B51,0x9B58,0x9B74, - 0x9B93,0x9B83,0x9B91,0x9B96,0x9B97,0x9B9F,0x9BA0,0x9BA8, - 0x9BB4,0x9BC0,0x9BCA,0x9BB9,0x9BC6,0x9BCF,0x9BD1,0x9BD2, - 0x9BE3,0x9BE2,0x9BE4,0x9BD4,0x9BE1,0x9C3A,0x9BF2,0x9BF1, - 0x9BF0,0x9C15,0x9C14,0x9C09,0x9C13,0x9C0C,0x9C06,0x9C08, - 0x9C12,0x9C0A,0x9C04,0x9C2E,0x9C1B,0x9C25,0x9C24,0x9C21, - 0x9C30,0x9C47,0x9C32,0x9C46,0x9C3E,0x9C5A,0x9C60,0x9C67, - 0x9C76,0x9C78,0x9CE7,0x9CEC,0x9CF0,0x9D09,0x9D08,0x9CEB, - 0x9D03,0x9D06,0x9D2A,0x9D26,0x9DAF,0x9D23,0x9D1F,0x9D44, - 0x9D15,0x9D12,0x9D41,0x9D3F,0x9D3E,0x9D46,0x9D48,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 116, Array index 0x4C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9D5D,0x9D5E,0x9D64,0x9D51,0x9D50,0x9D59,0x9D72, - 0x9D89,0x9D87,0x9DAB,0x9D6F,0x9D7A,0x9D9A,0x9DA4,0x9DA9, - 0x9DB2,0x9DC4,0x9DC1,0x9DBB,0x9DB8,0x9DBA,0x9DC6,0x9DCF, - 0x9DC2,0x9DD9,0x9DD3,0x9DF8,0x9DE6,0x9DED,0x9DEF,0x9DFD, - 0x9E1A,0x9E1B,0x9E1E,0x9E75,0x9E79,0x9E7D,0x9E81,0x9E88, - 0x9E8B,0x9E8C,0x9E92,0x9E95,0x9E91,0x9E9D,0x9EA5,0x9EA9, - 0x9EB8,0x9EAA,0x9EAD,0x9761,0x9ECC,0x9ECE,0x9ECF,0x9ED0, - 0x9ED4,0x9EDC,0x9EDE,0x9EDD,0x9EE0,0x9EE5,0x9EE8,0x9EEF, - 0x9EF4,0x9EF6,0x9EF7,0x9EF9,0x9EFB,0x9EFC,0x9EFD,0x9F07, - 0x9F08,0x76B7,0x9F15,0x9F21,0x9F2C,0x9F3E,0x9F4A,0x9F52, - 0x9F54,0x9F63,0x9F5F,0x9F60,0x9F61,0x9F66,0x9F67,0x9F6C, - 0x9F6A,0x9F77,0x9F72,0x9F76,0x9F95,0x9F9C,0x9FA0,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 117, Array index 0x4D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x582F,0x69C7,0x9059,0x7464,0x51DC,0x7199,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, -}; - -#endif /* ICONV_TO_UCS_CCS_JIS_X0208_1990 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit jis_x0208_1990 -> UCS size-optimized table (14276 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_JIS_X0208_1990) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_size_jis_x0208_1990[] = -{ - 0x0055, /* Ranges number */ - 0x0001, /* Unranged codes number */ - 0x1BE0, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0x2121, 0x217E, 0x0102, - /* Array index: 0x0006 */ 0x2221, 0x222E, 0x0160, - /* Array index: 0x0009 */ 0x223A, 0x2241, 0x016E, - /* Array index: 0x000C */ 0x224A, 0x2250, 0x0176, - /* Array index: 0x000F */ 0x225C, 0x226A, 0x017D, - /* Array index: 0x0012 */ 0x2272, 0x2279, 0x018C, - /* Array index: 0x0015 */ 0x2330, 0x2339, 0x0194, - /* Array index: 0x0018 */ 0x2341, 0x235A, 0x019E, - /* Array index: 0x001B */ 0x2361, 0x237A, 0x01B8, - /* Array index: 0x001E */ 0x2421, 0x2473, 0x01D2, - /* Array index: 0x0021 */ 0x2521, 0x2576, 0x0225, - /* Array index: 0x0024 */ 0x2621, 0x2638, 0x027B, - /* Array index: 0x0027 */ 0x2641, 0x2658, 0x0293, - /* Array index: 0x002A */ 0x2721, 0x2741, 0x02AB, - /* Array index: 0x002D */ 0x2751, 0x2771, 0x02CC, - /* Array index: 0x0030 */ 0x2821, 0x2840, 0x02ED, - /* Array index: 0x0033 */ 0x3021, 0x307E, 0x030D, - /* Array index: 0x0036 */ 0x3121, 0x317E, 0x036B, - /* Array index: 0x0039 */ 0x3221, 0x327E, 0x03C9, - /* Array index: 0x003C */ 0x3321, 0x337E, 0x0427, - /* Array index: 0x003F */ 0x3421, 0x347E, 0x0485, - /* Array index: 0x0042 */ 0x3521, 0x357E, 0x04E3, - /* Array index: 0x0045 */ 0x3621, 0x367E, 0x0541, - /* Array index: 0x0048 */ 0x3721, 0x377E, 0x059F, - /* Array index: 0x004B */ 0x3821, 0x387E, 0x05FD, - /* Array index: 0x004E */ 0x3921, 0x397E, 0x065B, - /* Array index: 0x0051 */ 0x3A21, 0x3A7E, 0x06B9, - /* Array index: 0x0054 */ 0x3B21, 0x3B7E, 0x0717, - /* Array index: 0x0057 */ 0x3C21, 0x3C7E, 0x0775, - /* Array index: 0x005A */ 0x3D21, 0x3D7E, 0x07D3, - /* Array index: 0x005D */ 0x3E21, 0x3E7E, 0x0831, - /* Array index: 0x0060 */ 0x3F21, 0x3F7E, 0x088F, - /* Array index: 0x0063 */ 0x4021, 0x407E, 0x08ED, - /* Array index: 0x0066 */ 0x4121, 0x417E, 0x094B, - /* Array index: 0x0069 */ 0x4221, 0x427E, 0x09A9, - /* Array index: 0x006C */ 0x4321, 0x437E, 0x0A07, - /* Array index: 0x006F */ 0x4421, 0x447E, 0x0A65, - /* Array index: 0x0072 */ 0x4521, 0x457E, 0x0AC3, - /* Array index: 0x0075 */ 0x4621, 0x467E, 0x0B21, - /* Array index: 0x0078 */ 0x4721, 0x477E, 0x0B7F, - /* Array index: 0x007B */ 0x4821, 0x487E, 0x0BDD, - /* Array index: 0x007E */ 0x4921, 0x497E, 0x0C3B, - /* Array index: 0x0081 */ 0x4A21, 0x4A7E, 0x0C99, - /* Array index: 0x0084 */ 0x4B21, 0x4B7E, 0x0CF7, - /* Array index: 0x0087 */ 0x4C21, 0x4C7E, 0x0D55, - /* Array index: 0x008A */ 0x4D21, 0x4D7E, 0x0DB3, - /* Array index: 0x008D */ 0x4E21, 0x4E7E, 0x0E11, - /* Array index: 0x0090 */ 0x4F21, 0x4F53, 0x0E6F, - /* Array index: 0x0093 */ 0x5021, 0x507E, 0x0EA2, - /* Array index: 0x0096 */ 0x5121, 0x517E, 0x0F00, - /* Array index: 0x0099 */ 0x5221, 0x527E, 0x0F5E, - /* Array index: 0x009C */ 0x5321, 0x537E, 0x0FBC, - /* Array index: 0x009F */ 0x5421, 0x547E, 0x101A, - /* Array index: 0x00A2 */ 0x5521, 0x557E, 0x1078, - /* Array index: 0x00A5 */ 0x5621, 0x567E, 0x10D6, - /* Array index: 0x00A8 */ 0x5721, 0x577E, 0x1134, - /* Array index: 0x00AB */ 0x5821, 0x587E, 0x1192, - /* Array index: 0x00AE */ 0x5921, 0x597E, 0x11F0, - /* Array index: 0x00B1 */ 0x5A21, 0x5A7E, 0x124E, - /* Array index: 0x00B4 */ 0x5B21, 0x5B7E, 0x12AC, - /* Array index: 0x00B7 */ 0x5C21, 0x5C7E, 0x130A, - /* Array index: 0x00BA */ 0x5D21, 0x5D7E, 0x1368, - /* Array index: 0x00BD */ 0x5E21, 0x5E7E, 0x13C6, - /* Array index: 0x00C0 */ 0x5F21, 0x5F7E, 0x1424, - /* Array index: 0x00C3 */ 0x6021, 0x607E, 0x1482, - /* Array index: 0x00C6 */ 0x6121, 0x617E, 0x14E0, - /* Array index: 0x00C9 */ 0x6221, 0x627E, 0x153E, - /* Array index: 0x00CC */ 0x6321, 0x637E, 0x159C, - /* Array index: 0x00CF */ 0x6421, 0x647E, 0x15FA, - /* Array index: 0x00D2 */ 0x6521, 0x657E, 0x1658, - /* Array index: 0x00D5 */ 0x6621, 0x667E, 0x16B6, - /* Array index: 0x00D8 */ 0x6721, 0x677E, 0x1714, - /* Array index: 0x00DB */ 0x6821, 0x687E, 0x1772, - /* Array index: 0x00DE */ 0x6921, 0x697E, 0x17D0, - /* Array index: 0x00E1 */ 0x6A21, 0x6A7E, 0x182E, - /* Array index: 0x00E4 */ 0x6B21, 0x6B7E, 0x188C, - /* Array index: 0x00E7 */ 0x6C21, 0x6C7E, 0x18EA, - /* Array index: 0x00EA */ 0x6D21, 0x6D7E, 0x1948, - /* Array index: 0x00ED */ 0x6E21, 0x6E7E, 0x19A6, - /* Array index: 0x00F0 */ 0x6F21, 0x6F7E, 0x1A04, - /* Array index: 0x00F3 */ 0x7021, 0x707E, 0x1A62, - /* Array index: 0x00F6 */ 0x7121, 0x717E, 0x1AC0, - /* Array index: 0x00F9 */ 0x7221, 0x727E, 0x1B1E, - /* Array index: 0x00FC */ 0x7321, 0x737E, 0x1B7C, - /* Array index: 0x00FF */ 0x7421, 0x7426, 0x1BDA, - /* Ranges content */ - /* Range 0x2121 - 0x217E, array index: 0x0102 */ - 0x3000,0x3001,0x3002,0xFF0C,0xFF0E,0x30FB,0xFF1A,0xFF1B, - 0xFF1F,0xFF01,0x309B,0x309C,0x00B4,0xFF40,0x00A8,0xFF3E, - 0xFFE3,0xFF3F,0x30FD,0x30FE,0x309D,0x309E,0x3003,0x4EDD, - 0x3005,0x3006,0x3007,0x30FC,0x2015,0x2010,0xFF0F,0x005C, - 0x301C,0x2016,0xFF5C,0x2026,0x2025,0x2018,0x2019,0x201C, - 0x201D,0xFF08,0xFF09,0x3014,0x3015,0xFF3B,0xFF3D,0xFF5B, - 0xFF5D,0x3008,0x3009,0x300A,0x300B,0x300C,0x300D,0x300E, - 0x300F,0x3010,0x3011,0xFF0B,0x2212,0x00B1,0x00D7,0x00F7, - 0xFF1D,0x2260,0xFF1C,0xFF1E,0x2266,0x2267,0x221E,0x2234, - 0x2642,0x2640,0x00B0,0x2032,0x2033,0x2103,0xFFE5,0xFF04, - 0x00A2,0x00A3,0xFF05,0xFF03,0xFF06,0xFF0A,0xFF20,0x00A7, - 0x2606,0x2605,0x25CB,0x25CF,0x25CE,0x25C7, - /* Range 0x2221 - 0x222E, array index: 0x0160 */ - 0x25C6,0x25A1,0x25A0,0x25B3,0x25B2,0x25BD,0x25BC,0x203B, - 0x3012,0x2192,0x2190,0x2191,0x2193,0x3013, - /* Range 0x223A - 0x2241, array index: 0x016E */ - 0x2208,0x220B,0x2286,0x2287,0x2282,0x2283,0x222A,0x2229, - /* Range 0x224A - 0x2250, array index: 0x0176 */ - 0x2227,0x2228,0x00AC,0x21D2,0x21D4,0x2200,0x2203, - /* Range 0x225C - 0x226A, array index: 0x017D */ - 0x2220,0x22A5,0x2312,0x2202,0x2207,0x2261,0x2252,0x226A, - 0x226B,0x221A,0x223D,0x221D,0x2235,0x222B,0x222C, - /* Range 0x2272 - 0x2279, array index: 0x018C */ - 0x212B,0x2030,0x266F,0x266D,0x266A,0x2020,0x2021,0x00B6, - /* Range 0x2330 - 0x2339, array index: 0x0194 */ - 0xFF10,0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17, - 0xFF18,0xFF19, - /* Range 0x2341 - 0x235A, array index: 0x019E */ - 0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28, - 0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30, - 0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38, - 0xFF39,0xFF3A, - /* Range 0x2361 - 0x237A, array index: 0x01B8 */ - 0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,0xFF48, - 0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F,0xFF50, - 0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57,0xFF58, - 0xFF59,0xFF5A, - /* Range 0x2421 - 0x2473, array index: 0x01D2 */ - 0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,0x3048, - 0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,0x304F,0x3050, - 0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,0x3058, - 0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,0x305F,0x3060, - 0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,0x3068, - 0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F,0x3070, - 0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077,0x3078, - 0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,0x307F,0x3080, - 0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087,0x3088, - 0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F,0x3090, - 0x3091,0x3092,0x3093, - /* Range 0x2521 - 0x2576, array index: 0x0225 */ - 0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7,0x30A8, - 0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,0x30B0, - 0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,0x30B8, - 0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,0x30C0, - 0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,0x30C8, - 0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF,0x30D0, - 0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7,0x30D8, - 0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,0x30E0, - 0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7,0x30E8, - 0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF,0x30F0, - 0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6, - /* Range 0x2621 - 0x2638, array index: 0x027B */ - 0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398, - 0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0, - 0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9, - /* Range 0x2641 - 0x2658, array index: 0x0293 */ - 0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8, - 0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0, - 0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9, - /* Range 0x2721 - 0x2741, array index: 0x02AB */ - 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401,0x0416, - 0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, - 0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426, - 0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E, - 0x042F, - /* Range 0x2751 - 0x2771, array index: 0x02CC */ - 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,0x0436, - 0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, - 0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446, - 0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E, - 0x044F, - /* Range 0x2821 - 0x2840, array index: 0x02ED */ - 0x2500,0x2502,0x250C,0x2510,0x2518,0x2514,0x251C,0x252C, - 0x2524,0x2534,0x253C,0x2501,0x2503,0x250F,0x2513,0x251B, - 0x2517,0x2523,0x2533,0x252B,0x253B,0x254B,0x2520,0x252F, - 0x2528,0x2537,0x253F,0x251D,0x2530,0x2525,0x2538,0x2542, - /* Range 0x3021 - 0x307E, array index: 0x030D */ - 0x4E9C,0x5516,0x5A03,0x963F,0x54C0,0x611B,0x6328,0x59F6, - 0x9022,0x8475,0x831C,0x7A50,0x60AA,0x63E1,0x6E25,0x65ED, - 0x8466,0x82A6,0x9BF5,0x6893,0x5727,0x65A1,0x6271,0x5B9B, - 0x59D0,0x867B,0x98F4,0x7D62,0x7DBE,0x9B8E,0x6216,0x7C9F, - 0x88B7,0x5B89,0x5EB5,0x6309,0x6697,0x6848,0x95C7,0x978D, - 0x674F,0x4EE5,0x4F0A,0x4F4D,0x4F9D,0x5049,0x56F2,0x5937, - 0x59D4,0x5A01,0x5C09,0x60DF,0x610F,0x6170,0x6613,0x6905, - 0x70BA,0x754F,0x7570,0x79FB,0x7DAD,0x7DEF,0x80C3,0x840E, - 0x8863,0x8B02,0x9055,0x907A,0x533B,0x4E95,0x4EA5,0x57DF, - 0x80B2,0x90C1,0x78EF,0x4E00,0x58F1,0x6EA2,0x9038,0x7A32, - 0x8328,0x828B,0x9C2F,0x5141,0x5370,0x54BD,0x54E1,0x56E0, - 0x59FB,0x5F15,0x98F2,0x6DEB,0x80E4,0x852D, - /* Range 0x3121 - 0x317E, array index: 0x036B */ - 0x9662,0x9670,0x96A0,0x97FB,0x540B,0x53F3,0x5B87,0x70CF, - 0x7FBD,0x8FC2,0x96E8,0x536F,0x9D5C,0x7ABA,0x4E11,0x7893, - 0x81FC,0x6E26,0x5618,0x5504,0x6B1D,0x851A,0x9C3B,0x59E5, - 0x53A9,0x6D66,0x74DC,0x958F,0x5642,0x4E91,0x904B,0x96F2, - 0x834F,0x990C,0x53E1,0x55B6,0x5B30,0x5F71,0x6620,0x66F3, - 0x6804,0x6C38,0x6CF3,0x6D29,0x745B,0x76C8,0x7A4E,0x9834, - 0x82F1,0x885B,0x8A60,0x92ED,0x6DB2,0x75AB,0x76CA,0x99C5, - 0x60A6,0x8B01,0x8D8A,0x95B2,0x698E,0x53AD,0x5186,0x5712, - 0x5830,0x5944,0x5BB4,0x5EF6,0x6028,0x63A9,0x63F4,0x6CBF, - 0x6F14,0x708E,0x7114,0x7159,0x71D5,0x733F,0x7E01,0x8276, - 0x82D1,0x8597,0x9060,0x925B,0x9D1B,0x5869,0x65BC,0x6C5A, - 0x7525,0x51F9,0x592E,0x5965,0x5F80,0x5FDC, - /* Range 0x3221 - 0x327E, array index: 0x03C9 */ - 0x62BC,0x65FA,0x6A2A,0x6B27,0x6BB4,0x738B,0x7FC1,0x8956, - 0x9D2C,0x9D0E,0x9EC4,0x5CA1,0x6C96,0x837B,0x5104,0x5C4B, - 0x61B6,0x81C6,0x6876,0x7261,0x4E59,0x4FFA,0x5378,0x6069, - 0x6E29,0x7A4F,0x97F3,0x4E0B,0x5316,0x4EEE,0x4F55,0x4F3D, - 0x4FA1,0x4F73,0x52A0,0x53EF,0x5609,0x590F,0x5AC1,0x5BB6, - 0x5BE1,0x79D1,0x6687,0x679C,0x67B6,0x6B4C,0x6CB3,0x706B, - 0x73C2,0x798D,0x79BE,0x7A3C,0x7B87,0x82B1,0x82DB,0x8304, - 0x8377,0x83EF,0x83D3,0x8766,0x8AB2,0x5629,0x8CA8,0x8FE6, - 0x904E,0x971E,0x868A,0x4FC4,0x5CE8,0x6211,0x7259,0x753B, - 0x81E5,0x82BD,0x86FE,0x8CC0,0x96C5,0x9913,0x99D5,0x4ECB, - 0x4F1A,0x89E3,0x56DE,0x584A,0x58CA,0x5EFB,0x5FEB,0x602A, - 0x6094,0x6062,0x61D0,0x6212,0x62D0,0x6539, - /* Range 0x3321 - 0x337E, array index: 0x0427 */ - 0x9B41,0x6666,0x68B0,0x6D77,0x7070,0x754C,0x7686,0x7D75, - 0x82A5,0x87F9,0x958B,0x968E,0x8C9D,0x51F1,0x52BE,0x5916, - 0x54B3,0x5BB3,0x5D16,0x6168,0x6982,0x6DAF,0x788D,0x84CB, - 0x8857,0x8A72,0x93A7,0x9AB8,0x6D6C,0x99A8,0x86D9,0x57A3, - 0x67FF,0x86CE,0x920E,0x5283,0x5687,0x5404,0x5ED3,0x62E1, - 0x64B9,0x683C,0x6838,0x6BBB,0x7372,0x78BA,0x7A6B,0x899A, - 0x89D2,0x8D6B,0x8F03,0x90ED,0x95A3,0x9694,0x9769,0x5B66, - 0x5CB3,0x697D,0x984D,0x984E,0x639B,0x7B20,0x6A2B,0x6A7F, - 0x68B6,0x9C0D,0x6F5F,0x5272,0x559D,0x6070,0x62EC,0x6D3B, - 0x6E07,0x6ED1,0x845B,0x8910,0x8F44,0x4E14,0x9C39,0x53F6, - 0x691B,0x6A3A,0x9784,0x682A,0x515C,0x7AC3,0x84B2,0x91DC, - 0x938C,0x565B,0x9D28,0x6822,0x8305,0x8431, - /* Range 0x3421 - 0x347E, array index: 0x0485 */ - 0x7CA5,0x5208,0x82C5,0x74E6,0x4E7E,0x4F83,0x51A0,0x5BD2, - 0x520A,0x52D8,0x52E7,0x5DFB,0x559A,0x582A,0x59E6,0x5B8C, - 0x5B98,0x5BDB,0x5E72,0x5E79,0x60A3,0x611F,0x6163,0x61BE, - 0x63DB,0x6562,0x67D1,0x6853,0x68FA,0x6B3E,0x6B53,0x6C57, - 0x6F22,0x6F97,0x6F45,0x74B0,0x7518,0x76E3,0x770B,0x7AFF, - 0x7BA1,0x7C21,0x7DE9,0x7F36,0x7FF0,0x809D,0x8266,0x839E, - 0x89B3,0x8ACC,0x8CAB,0x9084,0x9451,0x9593,0x9591,0x95A2, - 0x9665,0x97D3,0x9928,0x8218,0x4E38,0x542B,0x5CB8,0x5DCC, - 0x73A9,0x764C,0x773C,0x5CA9,0x7FEB,0x8D0B,0x96C1,0x9811, - 0x9854,0x9858,0x4F01,0x4F0E,0x5371,0x559C,0x5668,0x57FA, - 0x5947,0x5B09,0x5BC4,0x5C90,0x5E0C,0x5E7E,0x5FCC,0x63EE, - 0x673A,0x65D7,0x65E2,0x671F,0x68CB,0x68C4, - /* Range 0x3521 - 0x357E, array index: 0x04E3 */ - 0x6A5F,0x5E30,0x6BC5,0x6C17,0x6C7D,0x757F,0x7948,0x5B63, - 0x7A00,0x7D00,0x5FBD,0x898F,0x8A18,0x8CB4,0x8D77,0x8ECC, - 0x8F1D,0x98E2,0x9A0E,0x9B3C,0x4E80,0x507D,0x5100,0x5993, - 0x5B9C,0x622F,0x6280,0x64EC,0x6B3A,0x72A0,0x7591,0x7947, - 0x7FA9,0x87FB,0x8ABC,0x8B70,0x63AC,0x83CA,0x97A0,0x5409, - 0x5403,0x55AB,0x6854,0x6A58,0x8A70,0x7827,0x6775,0x9ECD, - 0x5374,0x5BA2,0x811A,0x8650,0x9006,0x4E18,0x4E45,0x4EC7, - 0x4F11,0x53CA,0x5438,0x5BAE,0x5F13,0x6025,0x6551,0x673D, - 0x6C42,0x6C72,0x6CE3,0x7078,0x7403,0x7A76,0x7AAE,0x7B08, - 0x7D1A,0x7CFE,0x7D66,0x65E7,0x725B,0x53BB,0x5C45,0x5DE8, - 0x62D2,0x62E0,0x6319,0x6E20,0x865A,0x8A31,0x8DDD,0x92F8, - 0x6F01,0x79A6,0x9B5A,0x4EA8,0x4EAB,0x4EAC, - /* Range 0x3621 - 0x367E, array index: 0x0541 */ - 0x4F9B,0x4FA0,0x50D1,0x5147,0x7AF6,0x5171,0x51F6,0x5354, - 0x5321,0x537F,0x53EB,0x55AC,0x5883,0x5CE1,0x5F37,0x5F4A, - 0x602F,0x6050,0x606D,0x631F,0x6559,0x6A4B,0x6CC1,0x72C2, - 0x72ED,0x77EF,0x80F8,0x8105,0x8208,0x854E,0x90F7,0x93E1, - 0x97FF,0x9957,0x9A5A,0x4EF0,0x51DD,0x5C2D,0x6681,0x696D, - 0x5C40,0x66F2,0x6975,0x7389,0x6850,0x7C81,0x50C5,0x52E4, - 0x5747,0x5DFE,0x9326,0x65A4,0x6B23,0x6B3D,0x7434,0x7981, - 0x79BD,0x7B4B,0x7DCA,0x82B9,0x83CC,0x887F,0x895F,0x8B39, - 0x8FD1,0x91D1,0x541F,0x9280,0x4E5D,0x5036,0x53E5,0x533A, - 0x72D7,0x7396,0x77E9,0x82E6,0x8EAF,0x99C6,0x99C8,0x99D2, - 0x5177,0x611A,0x865E,0x55B0,0x7A7A,0x5076,0x5BD3,0x9047, - 0x9685,0x4E32,0x6ADB,0x91E7,0x5C51,0x5C48, - /* Range 0x3721 - 0x377E, array index: 0x059F */ - 0x6398,0x7A9F,0x6C93,0x9774,0x8F61,0x7AAA,0x718A,0x9688, - 0x7C82,0x6817,0x7E70,0x6851,0x936C,0x52F2,0x541B,0x85AB, - 0x8A13,0x7FA4,0x8ECD,0x90E1,0x5366,0x8888,0x7941,0x4FC2, - 0x50BE,0x5211,0x5144,0x5553,0x572D,0x73EA,0x578B,0x5951, - 0x5F62,0x5F84,0x6075,0x6176,0x6167,0x61A9,0x63B2,0x643A, - 0x656C,0x666F,0x6842,0x6E13,0x7566,0x7A3D,0x7CFB,0x7D4C, - 0x7D99,0x7E4B,0x7F6B,0x830E,0x834A,0x86CD,0x8A08,0x8A63, - 0x8B66,0x8EFD,0x981A,0x9D8F,0x82B8,0x8FCE,0x9BE8,0x5287, - 0x621F,0x6483,0x6FC0,0x9699,0x6841,0x5091,0x6B20,0x6C7A, - 0x6F54,0x7A74,0x7D50,0x8840,0x8A23,0x6708,0x4EF6,0x5039, - 0x5026,0x5065,0x517C,0x5238,0x5263,0x55A7,0x570F,0x5805, - 0x5ACC,0x5EFA,0x61B2,0x61F8,0x62F3,0x6372, - /* Range 0x3821 - 0x387E, array index: 0x05FD */ - 0x691C,0x6A29,0x727D,0x72AC,0x732E,0x7814,0x786F,0x7D79, - 0x770C,0x80A9,0x898B,0x8B19,0x8CE2,0x8ED2,0x9063,0x9375, - 0x967A,0x9855,0x9A13,0x9E78,0x5143,0x539F,0x53B3,0x5E7B, - 0x5F26,0x6E1B,0x6E90,0x7384,0x73FE,0x7D43,0x8237,0x8A00, - 0x8AFA,0x9650,0x4E4E,0x500B,0x53E4,0x547C,0x56FA,0x59D1, - 0x5B64,0x5DF1,0x5EAB,0x5F27,0x6238,0x6545,0x67AF,0x6E56, - 0x72D0,0x7CCA,0x88B4,0x80A1,0x80E1,0x83F0,0x864E,0x8A87, - 0x8DE8,0x9237,0x96C7,0x9867,0x9F13,0x4E94,0x4E92,0x4F0D, - 0x5348,0x5449,0x543E,0x5A2F,0x5F8C,0x5FA1,0x609F,0x68A7, - 0x6A8E,0x745A,0x7881,0x8A9E,0x8AA4,0x8B77,0x9190,0x4E5E, - 0x9BC9,0x4EA4,0x4F7C,0x4FAF,0x5019,0x5016,0x5149,0x516C, - 0x529F,0x52B9,0x52FE,0x539A,0x53E3,0x5411, - /* Range 0x3921 - 0x397E, array index: 0x065B */ - 0x540E,0x5589,0x5751,0x57A2,0x597D,0x5B54,0x5B5D,0x5B8F, - 0x5DE5,0x5DE7,0x5DF7,0x5E78,0x5E83,0x5E9A,0x5EB7,0x5F18, - 0x6052,0x614C,0x6297,0x62D8,0x63A7,0x653B,0x6602,0x6643, - 0x66F4,0x676D,0x6821,0x6897,0x69CB,0x6C5F,0x6D2A,0x6D69, - 0x6E2F,0x6E9D,0x7532,0x7687,0x786C,0x7A3F,0x7CE0,0x7D05, - 0x7D18,0x7D5E,0x7DB1,0x8015,0x8003,0x80AF,0x80B1,0x8154, - 0x818F,0x822A,0x8352,0x884C,0x8861,0x8B1B,0x8CA2,0x8CFC, - 0x90CA,0x9175,0x9271,0x783F,0x92FC,0x95A4,0x964D,0x9805, - 0x9999,0x9AD8,0x9D3B,0x525B,0x52AB,0x53F7,0x5408,0x58D5, - 0x62F7,0x6FE0,0x8C6A,0x8F5F,0x9EB9,0x514B,0x523B,0x544A, - 0x56FD,0x7A40,0x9177,0x9D60,0x9ED2,0x7344,0x6F09,0x8170, - 0x7511,0x5FFD,0x60DA,0x9AA8,0x72DB,0x8FBC, - /* Range 0x3A21 - 0x3A7E, array index: 0x06B9 */ - 0x6B64,0x9803,0x4ECA,0x56F0,0x5764,0x58BE,0x5A5A,0x6068, - 0x61C7,0x660F,0x6606,0x6839,0x68B1,0x6DF7,0x75D5,0x7D3A, - 0x826E,0x9B42,0x4E9B,0x4F50,0x53C9,0x5506,0x5D6F,0x5DE6, - 0x5DEE,0x67FB,0x6C99,0x7473,0x7802,0x8A50,0x9396,0x88DF, - 0x5750,0x5EA7,0x632B,0x50B5,0x50AC,0x518D,0x6700,0x54C9, - 0x585E,0x59BB,0x5BB0,0x5F69,0x624D,0x63A1,0x683D,0x6B73, - 0x6E08,0x707D,0x91C7,0x7280,0x7815,0x7826,0x796D,0x658E, - 0x7D30,0x83DC,0x88C1,0x8F09,0x969B,0x5264,0x5728,0x6750, - 0x7F6A,0x8CA1,0x51B4,0x5742,0x962A,0x583A,0x698A,0x80B4, - 0x54B2,0x5D0E,0x57FC,0x7895,0x9DFA,0x4F5C,0x524A,0x548B, - 0x643E,0x6628,0x6714,0x67F5,0x7A84,0x7B56,0x7D22,0x932F, - 0x685C,0x9BAD,0x7B39,0x5319,0x518A,0x5237, - /* Range 0x3B21 - 0x3B7E, array index: 0x0717 */ - 0x5BDF,0x62F6,0x64AE,0x64E6,0x672D,0x6BBA,0x85A9,0x96D1, - 0x7690,0x9BD6,0x634C,0x9306,0x9BAB,0x76BF,0x6652,0x4E09, - 0x5098,0x53C2,0x5C71,0x60E8,0x6492,0x6563,0x685F,0x71E6, - 0x73CA,0x7523,0x7B97,0x7E82,0x8695,0x8B83,0x8CDB,0x9178, - 0x9910,0x65AC,0x66AB,0x6B8B,0x4ED5,0x4ED4,0x4F3A,0x4F7F, - 0x523A,0x53F8,0x53F2,0x55E3,0x56DB,0x58EB,0x59CB,0x59C9, - 0x59FF,0x5B50,0x5C4D,0x5E02,0x5E2B,0x5FD7,0x601D,0x6307, - 0x652F,0x5B5C,0x65AF,0x65BD,0x65E8,0x679D,0x6B62,0x6B7B, - 0x6C0F,0x7345,0x7949,0x79C1,0x7CF8,0x7D19,0x7D2B,0x80A2, - 0x8102,0x81F3,0x8996,0x8A5E,0x8A69,0x8A66,0x8A8C,0x8AEE, - 0x8CC7,0x8CDC,0x96CC,0x98FC,0x6B6F,0x4E8B,0x4F3C,0x4F8D, - 0x5150,0x5B57,0x5BFA,0x6148,0x6301,0x6642, - /* Range 0x3C21 - 0x3C7E, array index: 0x0775 */ - 0x6B21,0x6ECB,0x6CBB,0x723E,0x74BD,0x75D4,0x78C1,0x793A, - 0x800C,0x8033,0x81EA,0x8494,0x8F9E,0x6C50,0x9E7F,0x5F0F, - 0x8B58,0x9D2B,0x7AFA,0x8EF8,0x5B8D,0x96EB,0x4E03,0x53F1, - 0x57F7,0x5931,0x5AC9,0x5BA4,0x6089,0x6E7F,0x6F06,0x75BE, - 0x8CEA,0x5B9F,0x8500,0x7BE0,0x5072,0x67F4,0x829D,0x5C61, - 0x854A,0x7E1E,0x820E,0x5199,0x5C04,0x6368,0x8D66,0x659C, - 0x716E,0x793E,0x7D17,0x8005,0x8B1D,0x8ECA,0x906E,0x86C7, - 0x90AA,0x501F,0x52FA,0x5C3A,0x6753,0x707C,0x7235,0x914C, - 0x91C8,0x932B,0x82E5,0x5BC2,0x5F31,0x60F9,0x4E3B,0x53D6, - 0x5B88,0x624B,0x6731,0x6B8A,0x72E9,0x73E0,0x7A2E,0x816B, - 0x8DA3,0x9152,0x9996,0x5112,0x53D7,0x546A,0x5BFF,0x6388, - 0x6A39,0x7DAC,0x9700,0x56DA,0x53CE,0x5468, - /* Range 0x3D21 - 0x3D7E, array index: 0x07D3 */ - 0x5B97,0x5C31,0x5DDE,0x4FEE,0x6101,0x62FE,0x6D32,0x79C0, - 0x79CB,0x7D42,0x7E4D,0x7FD2,0x81ED,0x821F,0x8490,0x8846, - 0x8972,0x8B90,0x8E74,0x8F2F,0x9031,0x914B,0x916C,0x96C6, - 0x919C,0x4EC0,0x4F4F,0x5145,0x5341,0x5F93,0x620E,0x67D4, - 0x6C41,0x6E0B,0x7363,0x7E26,0x91CD,0x9283,0x53D4,0x5919, - 0x5BBF,0x6DD1,0x795D,0x7E2E,0x7C9B,0x587E,0x719F,0x51FA, - 0x8853,0x8FF0,0x4FCA,0x5CFB,0x6625,0x77AC,0x7AE3,0x821C, - 0x99FF,0x51C6,0x5FAA,0x65EC,0x696F,0x6B89,0x6DF3,0x6E96, - 0x6F64,0x76FE,0x7D14,0x5DE1,0x9075,0x9187,0x9806,0x51E6, - 0x521D,0x6240,0x6691,0x66D9,0x6E1A,0x5EB6,0x7DD2,0x7F72, - 0x66F8,0x85AF,0x85F7,0x8AF8,0x52A9,0x53D9,0x5973,0x5E8F, - 0x5F90,0x6055,0x92E4,0x9664,0x50B7,0x511F, - /* Range 0x3E21 - 0x3E7E, array index: 0x0831 */ - 0x52DD,0x5320,0x5347,0x53EC,0x54E8,0x5546,0x5531,0x5617, - 0x5968,0x59BE,0x5A3C,0x5BB5,0x5C06,0x5C0F,0x5C11,0x5C1A, - 0x5E84,0x5E8A,0x5EE0,0x5F70,0x627F,0x6284,0x62DB,0x638C, - 0x6377,0x6607,0x660C,0x662D,0x6676,0x677E,0x68A2,0x6A1F, - 0x6A35,0x6CBC,0x6D88,0x6E09,0x6E58,0x713C,0x7126,0x7167, - 0x75C7,0x7701,0x785D,0x7901,0x7965,0x79F0,0x7AE0,0x7B11, - 0x7CA7,0x7D39,0x8096,0x83D6,0x848B,0x8549,0x885D,0x88F3, - 0x8A1F,0x8A3C,0x8A54,0x8A73,0x8C61,0x8CDE,0x91A4,0x9266, - 0x937E,0x9418,0x969C,0x9798,0x4E0A,0x4E08,0x4E1E,0x4E57, - 0x5197,0x5270,0x57CE,0x5834,0x58CC,0x5B22,0x5E38,0x60C5, - 0x64FE,0x6761,0x6756,0x6D44,0x72B6,0x7573,0x7A63,0x84B8, - 0x8B72,0x91B8,0x9320,0x5631,0x57F4,0x98FE, - /* Range 0x3F21 - 0x3F7E, array index: 0x088F */ - 0x62ED,0x690D,0x6B96,0x71ED,0x7E54,0x8077,0x8272,0x89E6, - 0x98DF,0x8755,0x8FB1,0x5C3B,0x4F38,0x4FE1,0x4FB5,0x5507, - 0x5A20,0x5BDD,0x5BE9,0x5FC3,0x614E,0x632F,0x65B0,0x664B, - 0x68EE,0x699B,0x6D78,0x6DF1,0x7533,0x75B9,0x771F,0x795E, - 0x79E6,0x7D33,0x81E3,0x82AF,0x85AA,0x89AA,0x8A3A,0x8EAB, - 0x8F9B,0x9032,0x91DD,0x9707,0x4EBA,0x4EC1,0x5203,0x5875, - 0x58EC,0x5C0B,0x751A,0x5C3D,0x814E,0x8A0A,0x8FC5,0x9663, - 0x976D,0x7B25,0x8ACF,0x9808,0x9162,0x56F3,0x53A8,0x9017, - 0x5439,0x5782,0x5E25,0x63A8,0x6C34,0x708A,0x7761,0x7C8B, - 0x7FE0,0x8870,0x9042,0x9154,0x9310,0x9318,0x968F,0x745E, - 0x9AC4,0x5D07,0x5D69,0x6570,0x67A2,0x8DA8,0x96DB,0x636E, - 0x6749,0x6919,0x83C5,0x9817,0x96C0,0x88FE, - /* Range 0x4021 - 0x407E, array index: 0x08ED */ - 0x6F84,0x647A,0x5BF8,0x4E16,0x702C,0x755D,0x662F,0x51C4, - 0x5236,0x52E2,0x59D3,0x5F81,0x6027,0x6210,0x653F,0x6574, - 0x661F,0x6674,0x68F2,0x6816,0x6B63,0x6E05,0x7272,0x751F, - 0x76DB,0x7CBE,0x8056,0x58F0,0x88FD,0x897F,0x8AA0,0x8A93, - 0x8ACB,0x901D,0x9192,0x9752,0x9759,0x6589,0x7A0E,0x8106, - 0x96BB,0x5E2D,0x60DC,0x621A,0x65A5,0x6614,0x6790,0x77F3, - 0x7A4D,0x7C4D,0x7E3E,0x810A,0x8CAC,0x8D64,0x8DE1,0x8E5F, - 0x78A9,0x5207,0x62D9,0x63A5,0x6442,0x6298,0x8A2D,0x7A83, - 0x7BC0,0x8AAC,0x96EA,0x7D76,0x820C,0x8749,0x4ED9,0x5148, - 0x5343,0x5360,0x5BA3,0x5C02,0x5C16,0x5DDD,0x6226,0x6247, - 0x64B0,0x6813,0x6834,0x6CC9,0x6D45,0x6D17,0x67D3,0x6F5C, - 0x714E,0x717D,0x65CB,0x7A7F,0x7BAD,0x7DDA, - /* Range 0x4121 - 0x417E, array index: 0x094B */ - 0x7E4A,0x7FA8,0x817A,0x821B,0x8239,0x85A6,0x8A6E,0x8CCE, - 0x8DF5,0x9078,0x9077,0x92AD,0x9291,0x9583,0x9BAE,0x524D, - 0x5584,0x6F38,0x7136,0x5168,0x7985,0x7E55,0x81B3,0x7CCE, - 0x564C,0x5851,0x5CA8,0x63AA,0x66FE,0x66FD,0x695A,0x72D9, - 0x758F,0x758E,0x790E,0x7956,0x79DF,0x7C97,0x7D20,0x7D44, - 0x8607,0x8A34,0x963B,0x9061,0x9F20,0x50E7,0x5275,0x53CC, - 0x53E2,0x5009,0x55AA,0x58EE,0x594F,0x723D,0x5B8B,0x5C64, - 0x531D,0x60E3,0x60F3,0x635C,0x6383,0x633F,0x63BB,0x64CD, - 0x65E9,0x66F9,0x5DE3,0x69CD,0x69FD,0x6F15,0x71E5,0x4E89, - 0x75E9,0x76F8,0x7A93,0x7CDF,0x7DCF,0x7D9C,0x8061,0x8349, - 0x8358,0x846C,0x84BC,0x85FB,0x88C5,0x8D70,0x9001,0x906D, - 0x9397,0x971C,0x9A12,0x50CF,0x5897,0x618E, - /* Range 0x4221 - 0x427E, array index: 0x09A9 */ - 0x81D3,0x8535,0x8D08,0x9020,0x4FC3,0x5074,0x5247,0x5373, - 0x606F,0x6349,0x675F,0x6E2C,0x8DB3,0x901F,0x4FD7,0x5C5E, - 0x8CCA,0x65CF,0x7D9A,0x5352,0x8896,0x5176,0x63C3,0x5B58, - 0x5B6B,0x5C0A,0x640D,0x6751,0x905C,0x4ED6,0x591A,0x592A, - 0x6C70,0x8A51,0x553E,0x5815,0x59A5,0x60F0,0x6253,0x67C1, - 0x8235,0x6955,0x9640,0x99C4,0x9A28,0x4F53,0x5806,0x5BFE, - 0x8010,0x5CB1,0x5E2F,0x5F85,0x6020,0x614B,0x6234,0x66FF, - 0x6CF0,0x6EDE,0x80CE,0x817F,0x82D4,0x888B,0x8CB8,0x9000, - 0x902E,0x968A,0x9EDB,0x9BDB,0x4EE3,0x53F0,0x5927,0x7B2C, - 0x918D,0x984C,0x9DF9,0x6EDD,0x7027,0x5353,0x5544,0x5B85, - 0x6258,0x629E,0x62D3,0x6CA2,0x6FEF,0x7422,0x8A17,0x9438, - 0x6FC1,0x8AFE,0x8338,0x51E7,0x86F8,0x53EA, - /* Range 0x4321 - 0x437E, array index: 0x0A07 */ - 0x53E9,0x4F46,0x9054,0x8FB0,0x596A,0x8131,0x5DFD,0x7AEA, - 0x8FBF,0x68DA,0x8C37,0x72F8,0x9C48,0x6A3D,0x8AB0,0x4E39, - 0x5358,0x5606,0x5766,0x62C5,0x63A2,0x65E6,0x6B4E,0x6DE1, - 0x6E5B,0x70AD,0x77ED,0x7AEF,0x7BAA,0x7DBB,0x803D,0x80C6, - 0x86CB,0x8A95,0x935B,0x56E3,0x58C7,0x5F3E,0x65AD,0x6696, - 0x6A80,0x6BB5,0x7537,0x8AC7,0x5024,0x77E5,0x5730,0x5F1B, - 0x6065,0x667A,0x6C60,0x75F4,0x7A1A,0x7F6E,0x81F4,0x8718, - 0x9045,0x99B3,0x7BC9,0x755C,0x7AF9,0x7B51,0x84C4,0x9010, - 0x79E9,0x7A92,0x8336,0x5AE1,0x7740,0x4E2D,0x4EF2,0x5B99, - 0x5FE0,0x62BD,0x663C,0x67F1,0x6CE8,0x866B,0x8877,0x8A3B, - 0x914E,0x92F3,0x99D0,0x6A17,0x7026,0x732A,0x82E7,0x8457, - 0x8CAF,0x4E01,0x5146,0x51CB,0x558B,0x5BF5, - /* Range 0x4421 - 0x447E, array index: 0x0A65 */ - 0x5E16,0x5E33,0x5E81,0x5F14,0x5F35,0x5F6B,0x5FB4,0x61F2, - 0x6311,0x66A2,0x671D,0x6F6E,0x7252,0x753A,0x773A,0x8074, - 0x8139,0x8178,0x8776,0x8ABF,0x8ADC,0x8D85,0x8DF3,0x929A, - 0x9577,0x9802,0x9CE5,0x52C5,0x6357,0x76F4,0x6715,0x6C88, - 0x73CD,0x8CC3,0x93AE,0x9673,0x6D25,0x589C,0x690E,0x69CC, - 0x8FFD,0x939A,0x75DB,0x901A,0x585A,0x6802,0x63B4,0x69FB, - 0x4F43,0x6F2C,0x67D8,0x8FBB,0x8526,0x7DB4,0x9354,0x693F, - 0x6F70,0x576A,0x58F7,0x5B2C,0x7D2C,0x722A,0x540A,0x91E3, - 0x9DB4,0x4EAD,0x4F4E,0x505C,0x5075,0x5243,0x8C9E,0x5448, - 0x5824,0x5B9A,0x5E1D,0x5E95,0x5EAD,0x5EF7,0x5F1F,0x608C, - 0x62B5,0x633A,0x63D0,0x68AF,0x6C40,0x7887,0x798E,0x7A0B, - 0x7DE0,0x8247,0x8A02,0x8AE6,0x8E44,0x9013, - /* Range 0x4521 - 0x457E, array index: 0x0AC3 */ - 0x90B8,0x912D,0x91D8,0x9F0E,0x6CE5,0x6458,0x64E2,0x6575, - 0x6EF4,0x7684,0x7B1B,0x9069,0x93D1,0x6EBA,0x54F2,0x5FB9, - 0x64A4,0x8F4D,0x8FED,0x9244,0x5178,0x586B,0x5929,0x5C55, - 0x5E97,0x6DFB,0x7E8F,0x751C,0x8CBC,0x8EE2,0x985B,0x70B9, - 0x4F1D,0x6BBF,0x6FB1,0x7530,0x96FB,0x514E,0x5410,0x5835, - 0x5857,0x59AC,0x5C60,0x5F92,0x6597,0x675C,0x6E21,0x767B, - 0x83DF,0x8CED,0x9014,0x90FD,0x934D,0x7825,0x783A,0x52AA, - 0x5EA6,0x571F,0x5974,0x6012,0x5012,0x515A,0x51AC,0x51CD, - 0x5200,0x5510,0x5854,0x5858,0x5957,0x5B95,0x5CF6,0x5D8B, - 0x60BC,0x6295,0x642D,0x6771,0x6843,0x68BC,0x68DF,0x76D7, - 0x6DD8,0x6E6F,0x6D9B,0x706F,0x71C8,0x5F53,0x75D8,0x7977, - 0x7B49,0x7B54,0x7B52,0x7CD6,0x7D71,0x5230, - /* Range 0x4621 - 0x467E, array index: 0x0B21 */ - 0x8463,0x8569,0x85E4,0x8A0E,0x8B04,0x8C46,0x8E0F,0x9003, - 0x900F,0x9419,0x9676,0x982D,0x9A30,0x95D8,0x50CD,0x52D5, - 0x540C,0x5802,0x5C0E,0x61A7,0x649E,0x6D1E,0x77B3,0x7AE5, - 0x80F4,0x8404,0x9053,0x9285,0x5CE0,0x9D07,0x533F,0x5F97, - 0x5FB3,0x6D9C,0x7279,0x7763,0x79BF,0x7BE4,0x6BD2,0x72EC, - 0x8AAD,0x6803,0x6A61,0x51F8,0x7A81,0x6934,0x5C4A,0x9CF6, - 0x82EB,0x5BC5,0x9149,0x701E,0x5678,0x5C6F,0x60C7,0x6566, - 0x6C8C,0x8C5A,0x9041,0x9813,0x5451,0x66C7,0x920D,0x5948, - 0x90A3,0x5185,0x4E4D,0x51EA,0x8599,0x8B0E,0x7058,0x637A, - 0x934B,0x6962,0x99B4,0x7E04,0x7577,0x5357,0x6960,0x8EDF, - 0x96E3,0x6C5D,0x4E8C,0x5C3C,0x5F10,0x8FE9,0x5302,0x8CD1, - 0x8089,0x8679,0x5EFF,0x65E5,0x4E73,0x5165, - /* Range 0x4721 - 0x477E, array index: 0x0B7F */ - 0x5982,0x5C3F,0x97EE,0x4EFB,0x598A,0x5FCD,0x8A8D,0x6FE1, - 0x79B0,0x7962,0x5BE7,0x8471,0x732B,0x71B1,0x5E74,0x5FF5, - 0x637B,0x649A,0x71C3,0x7C98,0x4E43,0x5EFC,0x4E4B,0x57DC, - 0x56A2,0x60A9,0x6FC3,0x7D0D,0x80FD,0x8133,0x81BF,0x8FB2, - 0x8997,0x86A4,0x5DF4,0x628A,0x64AD,0x8987,0x6777,0x6CE2, - 0x6D3E,0x7436,0x7834,0x5A46,0x7F75,0x82AD,0x99AC,0x4FF3, - 0x5EC3,0x62DD,0x6392,0x6557,0x676F,0x76C3,0x724C,0x80CC, - 0x80BA,0x8F29,0x914D,0x500D,0x57F9,0x5A92,0x6885,0x6973, - 0x7164,0x72FD,0x8CB7,0x58F2,0x8CE0,0x966A,0x9019,0x877F, - 0x79E4,0x77E7,0x8429,0x4F2F,0x5265,0x535A,0x62CD,0x67CF, - 0x6CCA,0x767D,0x7B94,0x7C95,0x8236,0x8584,0x8FEB,0x66DD, - 0x6F20,0x7206,0x7E1B,0x83AB,0x99C1,0x9EA6, - /* Range 0x4821 - 0x487E, array index: 0x0BDD */ - 0x51FD,0x7BB1,0x7872,0x7BB8,0x8087,0x7B48,0x6AE8,0x5E61, - 0x808C,0x7551,0x7560,0x516B,0x9262,0x6E8C,0x767A,0x9197, - 0x9AEA,0x4F10,0x7F70,0x629C,0x7B4F,0x95A5,0x9CE9,0x567A, - 0x5859,0x86E4,0x96BC,0x4F34,0x5224,0x534A,0x53CD,0x53DB, - 0x5E06,0x642C,0x6591,0x677F,0x6C3E,0x6C4E,0x7248,0x72AF, - 0x73ED,0x7554,0x7E41,0x822C,0x85E9,0x8CA9,0x7BC4,0x91C6, - 0x7169,0x9812,0x98EF,0x633D,0x6669,0x756A,0x76E4,0x78D0, - 0x8543,0x86EE,0x532A,0x5351,0x5426,0x5983,0x5E87,0x5F7C, - 0x60B2,0x6249,0x6279,0x62AB,0x6590,0x6BD4,0x6CCC,0x75B2, - 0x76AE,0x7891,0x79D8,0x7DCB,0x7F77,0x80A5,0x88AB,0x8AB9, - 0x8CBB,0x907F,0x975E,0x98DB,0x6A0B,0x7C38,0x5099,0x5C3E, - 0x5FAE,0x6787,0x6BD8,0x7435,0x7709,0x7F8E, - /* Range 0x4921 - 0x497E, array index: 0x0C3B */ - 0x9F3B,0x67CA,0x7A17,0x5339,0x758B,0x9AED,0x5F66,0x819D, - 0x83F1,0x8098,0x5F3C,0x5FC5,0x7562,0x7B46,0x903C,0x6867, - 0x59EB,0x5A9B,0x7D10,0x767E,0x8B2C,0x4FF5,0x5F6A,0x6A19, - 0x6C37,0x6F02,0x74E2,0x7968,0x8868,0x8A55,0x8C79,0x5EDF, - 0x63CF,0x75C5,0x79D2,0x82D7,0x9328,0x92F2,0x849C,0x86ED, - 0x9C2D,0x54C1,0x5F6C,0x658C,0x6D5C,0x7015,0x8CA7,0x8CD3, - 0x983B,0x654F,0x74F6,0x4E0D,0x4ED8,0x57E0,0x592B,0x5A66, - 0x5BCC,0x51A8,0x5E03,0x5E9C,0x6016,0x6276,0x6577,0x65A7, - 0x666E,0x6D6E,0x7236,0x7B26,0x8150,0x819A,0x8299,0x8B5C, - 0x8CA0,0x8CE6,0x8D74,0x961C,0x9644,0x4FAE,0x64AB,0x6B66, - 0x821E,0x8461,0x856A,0x90E8,0x5C01,0x6953,0x98A8,0x847A, - 0x8557,0x4F0F,0x526F,0x5FA9,0x5E45,0x670D, - /* Range 0x4A21 - 0x4A7E, array index: 0x0C99 */ - 0x798F,0x8179,0x8907,0x8986,0x6DF5,0x5F17,0x6255,0x6CB8, - 0x4ECF,0x7269,0x9B92,0x5206,0x543B,0x5674,0x58B3,0x61A4, - 0x626E,0x711A,0x596E,0x7C89,0x7CDE,0x7D1B,0x96F0,0x6587, - 0x805E,0x4E19,0x4F75,0x5175,0x5840,0x5E63,0x5E73,0x5F0A, - 0x67C4,0x4E26,0x853D,0x9589,0x965B,0x7C73,0x9801,0x50FB, - 0x58C1,0x7656,0x78A7,0x5225,0x77A5,0x8511,0x7B86,0x504F, - 0x5909,0x7247,0x7BC7,0x7DE8,0x8FBA,0x8FD4,0x904D,0x4FBF, - 0x52C9,0x5A29,0x5F01,0x97AD,0x4FDD,0x8217,0x92EA,0x5703, - 0x6355,0x6B69,0x752B,0x88DC,0x8F14,0x7A42,0x52DF,0x5893, - 0x6155,0x620A,0x66AE,0x6BCD,0x7C3F,0x83E9,0x5023,0x4FF8, - 0x5305,0x5446,0x5831,0x5949,0x5B9D,0x5CF0,0x5CEF,0x5D29, - 0x5E96,0x62B1,0x6367,0x653E,0x65B9,0x670B, - /* Range 0x4B21 - 0x4B7E, array index: 0x0CF7 */ - 0x6CD5,0x6CE1,0x70F9,0x7832,0x7E2B,0x80DE,0x82B3,0x840C, - 0x84EC,0x8702,0x8912,0x8A2A,0x8C4A,0x90A6,0x92D2,0x98FD, - 0x9CF3,0x9D6C,0x4E4F,0x4EA1,0x508D,0x5256,0x574A,0x59A8, - 0x5E3D,0x5FD8,0x5FD9,0x623F,0x66B4,0x671B,0x67D0,0x68D2, - 0x5192,0x7D21,0x80AA,0x81A8,0x8B00,0x8C8C,0x8CBF,0x927E, - 0x9632,0x5420,0x982C,0x5317,0x50D5,0x535C,0x58A8,0x64B2, - 0x6734,0x7267,0x7766,0x7A46,0x91E6,0x52C3,0x6CA1,0x6B86, - 0x5800,0x5E4C,0x5954,0x672C,0x7FFB,0x51E1,0x76C6,0x6469, - 0x78E8,0x9B54,0x9EBB,0x57CB,0x59B9,0x6627,0x679A,0x6BCE, - 0x54E9,0x69D9,0x5E55,0x819C,0x6795,0x9BAA,0x67FE,0x9C52, - 0x685D,0x4EA6,0x4FE3,0x53C8,0x62B9,0x672B,0x6CAB,0x8FC4, - 0x4FAD,0x7E6D,0x9EBF,0x4E07,0x6162,0x6E80, - /* Range 0x4C21 - 0x4C7E, array index: 0x0D55 */ - 0x6F2B,0x8513,0x5473,0x672A,0x9B45,0x5DF3,0x7B95,0x5CAC, - 0x5BC6,0x871C,0x6E4A,0x84D1,0x7A14,0x8108,0x5999,0x7C8D, - 0x6C11,0x7720,0x52D9,0x5922,0x7121,0x725F,0x77DB,0x9727, - 0x9D61,0x690B,0x5A7F,0x5A18,0x51A5,0x540D,0x547D,0x660E, - 0x76DF,0x8FF7,0x9298,0x9CF4,0x59EA,0x725D,0x6EC5,0x514D, - 0x68C9,0x7DBF,0x7DEC,0x9762,0x9EBA,0x6478,0x6A21,0x8302, - 0x5984,0x5B5F,0x6BDB,0x731B,0x76F2,0x7DB2,0x8017,0x8499, - 0x5132,0x6728,0x9ED9,0x76EE,0x6762,0x52FF,0x9905,0x5C24, - 0x623B,0x7C7E,0x8CB0,0x554F,0x60B6,0x7D0B,0x9580,0x5301, - 0x4E5F,0x51B6,0x591C,0x723A,0x8036,0x91CE,0x5F25,0x77E2, - 0x5384,0x5F79,0x7D04,0x85AC,0x8A33,0x8E8D,0x9756,0x67F3, - 0x85AE,0x9453,0x6109,0x6108,0x6CB9,0x7652, - /* Range 0x4D21 - 0x4D7E, array index: 0x0DB3 */ - 0x8AED,0x8F38,0x552F,0x4F51,0x512A,0x52C7,0x53CB,0x5BA5, - 0x5E7D,0x60A0,0x6182,0x63D6,0x6709,0x67DA,0x6E67,0x6D8C, - 0x7336,0x7337,0x7531,0x7950,0x88D5,0x8A98,0x904A,0x9091, - 0x90F5,0x96C4,0x878D,0x5915,0x4E88,0x4F59,0x4E0E,0x8A89, - 0x8F3F,0x9810,0x50AD,0x5E7C,0x5996,0x5BB9,0x5EB8,0x63DA, - 0x63FA,0x64C1,0x66DC,0x694A,0x69D8,0x6D0B,0x6EB6,0x7194, - 0x7528,0x7AAF,0x7F8A,0x8000,0x8449,0x84C9,0x8981,0x8B21, - 0x8E0A,0x9065,0x967D,0x990A,0x617E,0x6291,0x6B32,0x6C83, - 0x6D74,0x7FCC,0x7FFC,0x6DC0,0x7F85,0x87BA,0x88F8,0x6765, - 0x83B1,0x983C,0x96F7,0x6D1B,0x7D61,0x843D,0x916A,0x4E71, - 0x5375,0x5D50,0x6B04,0x6FEB,0x85CD,0x862D,0x89A7,0x5229, - 0x540F,0x5C65,0x674E,0x68A8,0x7406,0x7483, - /* Range 0x4E21 - 0x4E7E, array index: 0x0E11 */ - 0x75E2,0x88CF,0x88E1,0x91CC,0x96E2,0x9678,0x5F8B,0x7387, - 0x7ACB,0x844E,0x63A0,0x7565,0x5289,0x6D41,0x6E9C,0x7409, - 0x7559,0x786B,0x7C92,0x9686,0x7ADC,0x9F8D,0x4FB6,0x616E, - 0x65C5,0x865C,0x4E86,0x4EAE,0x50DA,0x4E21,0x51CC,0x5BEE, - 0x6599,0x6881,0x6DBC,0x731F,0x7642,0x77AD,0x7A1C,0x7CE7, - 0x826F,0x8AD2,0x907C,0x91CF,0x9675,0x9818,0x529B,0x7DD1, - 0x502B,0x5398,0x6797,0x6DCB,0x71D0,0x7433,0x81E8,0x8F2A, - 0x96A3,0x9C57,0x9E9F,0x7460,0x5841,0x6D99,0x7D2F,0x985E, - 0x4EE4,0x4F36,0x4F8B,0x51B7,0x52B1,0x5DBA,0x601C,0x73B2, - 0x793C,0x82D3,0x9234,0x96B7,0x96F6,0x970A,0x9E97,0x9F62, - 0x66A6,0x6B74,0x5217,0x52A3,0x70C8,0x88C2,0x5EC9,0x604B, - 0x6190,0x6F23,0x7149,0x7C3E,0x7DF4,0x806F, - /* Range 0x4F21 - 0x4F53, array index: 0x0E6F */ - 0x84EE,0x9023,0x932C,0x5442,0x9B6F,0x6AD3,0x7089,0x8CC2, - 0x8DEF,0x9732,0x52B4,0x5A41,0x5ECA,0x5F04,0x6717,0x697C, - 0x6994,0x6D6A,0x6F0F,0x7262,0x72FC,0x7BED,0x8001,0x807E, - 0x874B,0x90CE,0x516D,0x9E93,0x7984,0x808B,0x9332,0x8AD6, - 0x502D,0x548C,0x8A71,0x6B6A,0x8CC4,0x8107,0x60D1,0x67A0, - 0x9DF2,0x4E99,0x4E98,0x9C10,0x8A6B,0x85C1,0x8568,0x6900, - 0x6E7E,0x7897,0x8155, - /* Range 0x5021 - 0x507E, array index: 0x0EA2 */ - 0x5F0C,0x4E10,0x4E15,0x4E2A,0x4E31,0x4E36,0x4E3C,0x4E3F, - 0x4E42,0x4E56,0x4E58,0x4E82,0x4E85,0x8C6B,0x4E8A,0x8212, - 0x5F0D,0x4E8E,0x4E9E,0x4E9F,0x4EA0,0x4EA2,0x4EB0,0x4EB3, - 0x4EB6,0x4ECE,0x4ECD,0x4EC4,0x4EC6,0x4EC2,0x4ED7,0x4EDE, - 0x4EED,0x4EDF,0x4EF7,0x4F09,0x4F5A,0x4F30,0x4F5B,0x4F5D, - 0x4F57,0x4F47,0x4F76,0x4F88,0x4F8F,0x4F98,0x4F7B,0x4F69, - 0x4F70,0x4F91,0x4F6F,0x4F86,0x4F96,0x5118,0x4FD4,0x4FDF, - 0x4FCE,0x4FD8,0x4FDB,0x4FD1,0x4FDA,0x4FD0,0x4FE4,0x4FE5, - 0x501A,0x5028,0x5014,0x502A,0x5025,0x5005,0x4F1C,0x4FF6, - 0x5021,0x5029,0x502C,0x4FFE,0x4FEF,0x5011,0x5006,0x5043, - 0x5047,0x6703,0x5055,0x5050,0x5048,0x505A,0x5056,0x506C, - 0x5078,0x5080,0x509A,0x5085,0x50B4,0x50B2, - /* Range 0x5121 - 0x517E, array index: 0x0F00 */ - 0x50C9,0x50CA,0x50B3,0x50C2,0x50D6,0x50DE,0x50E5,0x50ED, - 0x50E3,0x50EE,0x50F9,0x50F5,0x5109,0x5101,0x5102,0x5116, - 0x5115,0x5114,0x511A,0x5121,0x513A,0x5137,0x513C,0x513B, - 0x513F,0x5140,0x5152,0x514C,0x5154,0x5162,0x7AF8,0x5169, - 0x516A,0x516E,0x5180,0x5182,0x56D8,0x518C,0x5189,0x518F, - 0x5191,0x5193,0x5195,0x5196,0x51A4,0x51A6,0x51A2,0x51A9, - 0x51AA,0x51AB,0x51B3,0x51B1,0x51B2,0x51B0,0x51B5,0x51BD, - 0x51C5,0x51C9,0x51DB,0x51E0,0x8655,0x51E9,0x51ED,0x51F0, - 0x51F5,0x51FE,0x5204,0x520B,0x5214,0x520E,0x5227,0x522A, - 0x522E,0x5233,0x5239,0x524F,0x5244,0x524B,0x524C,0x525E, - 0x5254,0x526A,0x5274,0x5269,0x5273,0x527F,0x527D,0x528D, - 0x5294,0x5292,0x5271,0x5288,0x5291,0x8FA8, - /* Range 0x5221 - 0x527E, array index: 0x0F5E */ - 0x8FA7,0x52AC,0x52AD,0x52BC,0x52B5,0x52C1,0x52CD,0x52D7, - 0x52DE,0x52E3,0x52E6,0x98ED,0x52E0,0x52F3,0x52F5,0x52F8, - 0x52F9,0x5306,0x5308,0x7538,0x530D,0x5310,0x530F,0x5315, - 0x531A,0x5323,0x532F,0x5331,0x5333,0x5338,0x5340,0x5346, - 0x5345,0x4E17,0x5349,0x534D,0x51D6,0x535E,0x5369,0x536E, - 0x5918,0x537B,0x5377,0x5382,0x5396,0x53A0,0x53A6,0x53A5, - 0x53AE,0x53B0,0x53B6,0x53C3,0x7C12,0x96D9,0x53DF,0x66FC, - 0x71EE,0x53EE,0x53E8,0x53ED,0x53FA,0x5401,0x543D,0x5440, - 0x542C,0x542D,0x543C,0x542E,0x5436,0x5429,0x541D,0x544E, - 0x548F,0x5475,0x548E,0x545F,0x5471,0x5477,0x5470,0x5492, - 0x547B,0x5480,0x5476,0x5484,0x5490,0x5486,0x54C7,0x54A2, - 0x54B8,0x54A5,0x54AC,0x54C4,0x54C8,0x54A8, - /* Range 0x5321 - 0x537E, array index: 0x0FBC */ - 0x54AB,0x54C2,0x54A4,0x54BE,0x54BC,0x54D8,0x54E5,0x54E6, - 0x550F,0x5514,0x54FD,0x54EE,0x54ED,0x54FA,0x54E2,0x5539, - 0x5540,0x5563,0x554C,0x552E,0x555C,0x5545,0x5556,0x5557, - 0x5538,0x5533,0x555D,0x5599,0x5580,0x54AF,0x558A,0x559F, - 0x557B,0x557E,0x5598,0x559E,0x55AE,0x557C,0x5583,0x55A9, - 0x5587,0x55A8,0x55DA,0x55C5,0x55DF,0x55C4,0x55DC,0x55E4, - 0x55D4,0x5614,0x55F7,0x5616,0x55FE,0x55FD,0x561B,0x55F9, - 0x564E,0x5650,0x71DF,0x5634,0x5636,0x5632,0x5638,0x566B, - 0x5664,0x562F,0x566C,0x566A,0x5686,0x5680,0x568A,0x56A0, - 0x5694,0x568F,0x56A5,0x56AE,0x56B6,0x56B4,0x56C2,0x56BC, - 0x56C1,0x56C3,0x56C0,0x56C8,0x56CE,0x56D1,0x56D3,0x56D7, - 0x56EE,0x56F9,0x5700,0x56FF,0x5704,0x5709, - /* Range 0x5421 - 0x547E, array index: 0x101A */ - 0x5708,0x570B,0x570D,0x5713,0x5718,0x5716,0x55C7,0x571C, - 0x5726,0x5737,0x5738,0x574E,0x573B,0x5740,0x574F,0x5769, - 0x57C0,0x5788,0x5761,0x577F,0x5789,0x5793,0x57A0,0x57B3, - 0x57A4,0x57AA,0x57B0,0x57C3,0x57C6,0x57D4,0x57D2,0x57D3, - 0x580A,0x57D6,0x57E3,0x580B,0x5819,0x581D,0x5872,0x5821, - 0x5862,0x584B,0x5870,0x6BC0,0x5852,0x583D,0x5879,0x5885, - 0x58B9,0x589F,0x58AB,0x58BA,0x58DE,0x58BB,0x58B8,0x58AE, - 0x58C5,0x58D3,0x58D1,0x58D7,0x58D9,0x58D8,0x58E5,0x58DC, - 0x58E4,0x58DF,0x58EF,0x58FA,0x58F9,0x58FB,0x58FC,0x58FD, - 0x5902,0x590A,0x5910,0x591B,0x68A6,0x5925,0x592C,0x592D, - 0x5932,0x5938,0x593E,0x7AD2,0x5955,0x5950,0x594E,0x595A, - 0x5958,0x5962,0x5960,0x5967,0x596C,0x5969, - /* Range 0x5521 - 0x557E, array index: 0x1078 */ - 0x5978,0x5981,0x599D,0x4F5E,0x4FAB,0x59A3,0x59B2,0x59C6, - 0x59E8,0x59DC,0x598D,0x59D9,0x59DA,0x5A25,0x5A1F,0x5A11, - 0x5A1C,0x5A09,0x5A1A,0x5A40,0x5A6C,0x5A49,0x5A35,0x5A36, - 0x5A62,0x5A6A,0x5A9A,0x5ABC,0x5ABE,0x5ACB,0x5AC2,0x5ABD, - 0x5AE3,0x5AD7,0x5AE6,0x5AE9,0x5AD6,0x5AFA,0x5AFB,0x5B0C, - 0x5B0B,0x5B16,0x5B32,0x5AD0,0x5B2A,0x5B36,0x5B3E,0x5B43, - 0x5B45,0x5B40,0x5B51,0x5B55,0x5B5A,0x5B5B,0x5B65,0x5B69, - 0x5B70,0x5B73,0x5B75,0x5B78,0x6588,0x5B7A,0x5B80,0x5B83, - 0x5BA6,0x5BB8,0x5BC3,0x5BC7,0x5BC9,0x5BD4,0x5BD0,0x5BE4, - 0x5BE6,0x5BE2,0x5BDE,0x5BE5,0x5BEB,0x5BF0,0x5BF6,0x5BF3, - 0x5C05,0x5C07,0x5C08,0x5C0D,0x5C13,0x5C20,0x5C22,0x5C28, - 0x5C38,0x5C39,0x5C41,0x5C46,0x5C4E,0x5C53, - /* Range 0x5621 - 0x567E, array index: 0x10D6 */ - 0x5C50,0x5C4F,0x5B71,0x5C6C,0x5C6E,0x4E62,0x5C76,0x5C79, - 0x5C8C,0x5C91,0x5C94,0x599B,0x5CAB,0x5CBB,0x5CB6,0x5CBC, - 0x5CB7,0x5CC5,0x5CBE,0x5CC7,0x5CD9,0x5CE9,0x5CFD,0x5CFA, - 0x5CED,0x5D8C,0x5CEA,0x5D0B,0x5D15,0x5D17,0x5D5C,0x5D1F, - 0x5D1B,0x5D11,0x5D14,0x5D22,0x5D1A,0x5D19,0x5D18,0x5D4C, - 0x5D52,0x5D4E,0x5D4B,0x5D6C,0x5D73,0x5D76,0x5D87,0x5D84, - 0x5D82,0x5DA2,0x5D9D,0x5DAC,0x5DAE,0x5DBD,0x5D90,0x5DB7, - 0x5DBC,0x5DC9,0x5DCD,0x5DD3,0x5DD2,0x5DD6,0x5DDB,0x5DEB, - 0x5DF2,0x5DF5,0x5E0B,0x5E1A,0x5E19,0x5E11,0x5E1B,0x5E36, - 0x5E37,0x5E44,0x5E43,0x5E40,0x5E4E,0x5E57,0x5E54,0x5E5F, - 0x5E62,0x5E64,0x5E47,0x5E75,0x5E76,0x5E7A,0x9EBC,0x5E7F, - 0x5EA0,0x5EC1,0x5EC2,0x5EC8,0x5ED0,0x5ECF, - /* Range 0x5721 - 0x577E, array index: 0x1134 */ - 0x5ED6,0x5EE3,0x5EDD,0x5EDA,0x5EDB,0x5EE2,0x5EE1,0x5EE8, - 0x5EE9,0x5EEC,0x5EF1,0x5EF3,0x5EF0,0x5EF4,0x5EF8,0x5EFE, - 0x5F03,0x5F09,0x5F5D,0x5F5C,0x5F0B,0x5F11,0x5F16,0x5F29, - 0x5F2D,0x5F38,0x5F41,0x5F48,0x5F4C,0x5F4E,0x5F2F,0x5F51, - 0x5F56,0x5F57,0x5F59,0x5F61,0x5F6D,0x5F73,0x5F77,0x5F83, - 0x5F82,0x5F7F,0x5F8A,0x5F88,0x5F91,0x5F87,0x5F9E,0x5F99, - 0x5F98,0x5FA0,0x5FA8,0x5FAD,0x5FBC,0x5FD6,0x5FFB,0x5FE4, - 0x5FF8,0x5FF1,0x5FDD,0x60B3,0x5FFF,0x6021,0x6060,0x6019, - 0x6010,0x6029,0x600E,0x6031,0x601B,0x6015,0x602B,0x6026, - 0x600F,0x603A,0x605A,0x6041,0x606A,0x6077,0x605F,0x604A, - 0x6046,0x604D,0x6063,0x6043,0x6064,0x6042,0x606C,0x606B, - 0x6059,0x6081,0x608D,0x60E7,0x6083,0x609A, - /* Range 0x5821 - 0x587E, array index: 0x1192 */ - 0x6084,0x609B,0x6096,0x6097,0x6092,0x60A7,0x608B,0x60E1, - 0x60B8,0x60E0,0x60D3,0x60B4,0x5FF0,0x60BD,0x60C6,0x60B5, - 0x60D8,0x614D,0x6115,0x6106,0x60F6,0x60F7,0x6100,0x60F4, - 0x60FA,0x6103,0x6121,0x60FB,0x60F1,0x610D,0x610E,0x6147, - 0x613E,0x6128,0x6127,0x614A,0x613F,0x613C,0x612C,0x6134, - 0x613D,0x6142,0x6144,0x6173,0x6177,0x6158,0x6159,0x615A, - 0x616B,0x6174,0x616F,0x6165,0x6171,0x615F,0x615D,0x6153, - 0x6175,0x6199,0x6196,0x6187,0x61AC,0x6194,0x619A,0x618A, - 0x6191,0x61AB,0x61AE,0x61CC,0x61CA,0x61C9,0x61F7,0x61C8, - 0x61C3,0x61C6,0x61BA,0x61CB,0x7F79,0x61CD,0x61E6,0x61E3, - 0x61F6,0x61FA,0x61F4,0x61FF,0x61FD,0x61FC,0x61FE,0x6200, - 0x6208,0x6209,0x620D,0x620C,0x6214,0x621B, - /* Range 0x5921 - 0x597E, array index: 0x11F0 */ - 0x621E,0x6221,0x622A,0x622E,0x6230,0x6232,0x6233,0x6241, - 0x624E,0x625E,0x6263,0x625B,0x6260,0x6268,0x627C,0x6282, - 0x6289,0x627E,0x6292,0x6293,0x6296,0x62D4,0x6283,0x6294, - 0x62D7,0x62D1,0x62BB,0x62CF,0x62FF,0x62C6,0x64D4,0x62C8, - 0x62DC,0x62CC,0x62CA,0x62C2,0x62C7,0x629B,0x62C9,0x630C, - 0x62EE,0x62F1,0x6327,0x6302,0x6308,0x62EF,0x62F5,0x6350, - 0x633E,0x634D,0x641C,0x634F,0x6396,0x638E,0x6380,0x63AB, - 0x6376,0x63A3,0x638F,0x6389,0x639F,0x63B5,0x636B,0x6369, - 0x63BE,0x63E9,0x63C0,0x63C6,0x63E3,0x63C9,0x63D2,0x63F6, - 0x63C4,0x6416,0x6434,0x6406,0x6413,0x6426,0x6436,0x651D, - 0x6417,0x6428,0x640F,0x6467,0x646F,0x6476,0x644E,0x652A, - 0x6495,0x6493,0x64A5,0x64A9,0x6488,0x64BC, - /* Range 0x5A21 - 0x5A7E, array index: 0x124E */ - 0x64DA,0x64D2,0x64C5,0x64C7,0x64BB,0x64D8,0x64C2,0x64F1, - 0x64E7,0x8209,0x64E0,0x64E1,0x62AC,0x64E3,0x64EF,0x652C, - 0x64F6,0x64F4,0x64F2,0x64FA,0x6500,0x64FD,0x6518,0x651C, - 0x6505,0x6524,0x6523,0x652B,0x6534,0x6535,0x6537,0x6536, - 0x6538,0x754B,0x6548,0x6556,0x6555,0x654D,0x6558,0x655E, - 0x655D,0x6572,0x6578,0x6582,0x6583,0x8B8A,0x659B,0x659F, - 0x65AB,0x65B7,0x65C3,0x65C6,0x65C1,0x65C4,0x65CC,0x65D2, - 0x65DB,0x65D9,0x65E0,0x65E1,0x65F1,0x6772,0x660A,0x6603, - 0x65FB,0x6773,0x6635,0x6636,0x6634,0x661C,0x664F,0x6644, - 0x6649,0x6641,0x665E,0x665D,0x6664,0x6667,0x6668,0x665F, - 0x6662,0x6670,0x6683,0x6688,0x668E,0x6689,0x6684,0x6698, - 0x669D,0x66C1,0x66B9,0x66C9,0x66BE,0x66BC, - /* Range 0x5B21 - 0x5B7E, array index: 0x12AC */ - 0x66C4,0x66B8,0x66D6,0x66DA,0x66E0,0x663F,0x66E6,0x66E9, - 0x66F0,0x66F5,0x66F7,0x670F,0x6716,0x671E,0x6726,0x6727, - 0x9738,0x672E,0x673F,0x6736,0x6741,0x6738,0x6737,0x6746, - 0x675E,0x6760,0x6759,0x6763,0x6764,0x6789,0x6770,0x67A9, - 0x677C,0x676A,0x678C,0x678B,0x67A6,0x67A1,0x6785,0x67B7, - 0x67EF,0x67B4,0x67EC,0x67B3,0x67E9,0x67B8,0x67E4,0x67DE, - 0x67DD,0x67E2,0x67EE,0x67B9,0x67CE,0x67C6,0x67E7,0x6A9C, - 0x681E,0x6846,0x6829,0x6840,0x684D,0x6832,0x684E,0x68B3, - 0x682B,0x6859,0x6863,0x6877,0x687F,0x689F,0x688F,0x68AD, - 0x6894,0x689D,0x689B,0x6883,0x6AAE,0x68B9,0x6874,0x68B5, - 0x68A0,0x68BA,0x690F,0x688D,0x687E,0x6901,0x68CA,0x6908, - 0x68D8,0x6922,0x6926,0x68E1,0x690C,0x68CD, - /* Range 0x5C21 - 0x5C7E, array index: 0x130A */ - 0x68D4,0x68E7,0x68D5,0x6936,0x6912,0x6904,0x68D7,0x68E3, - 0x6925,0x68F9,0x68E0,0x68EF,0x6928,0x692A,0x691A,0x6923, - 0x6921,0x68C6,0x6979,0x6977,0x695C,0x6978,0x696B,0x6954, - 0x697E,0x696E,0x6939,0x6974,0x693D,0x6959,0x6930,0x6961, - 0x695E,0x695D,0x6981,0x696A,0x69B2,0x69AE,0x69D0,0x69BF, - 0x69C1,0x69D3,0x69BE,0x69CE,0x5BE8,0x69CA,0x69DD,0x69BB, - 0x69C3,0x69A7,0x6A2E,0x6991,0x69A0,0x699C,0x6995,0x69B4, - 0x69DE,0x69E8,0x6A02,0x6A1B,0x69FF,0x6B0A,0x69F9,0x69F2, - 0x69E7,0x6A05,0x69B1,0x6A1E,0x69ED,0x6A14,0x69EB,0x6A0A, - 0x6A12,0x6AC1,0x6A23,0x6A13,0x6A44,0x6A0C,0x6A72,0x6A36, - 0x6A78,0x6A47,0x6A62,0x6A59,0x6A66,0x6A48,0x6A38,0x6A22, - 0x6A90,0x6A8D,0x6AA0,0x6A84,0x6AA2,0x6AA3, - /* Range 0x5D21 - 0x5D7E, array index: 0x1368 */ - 0x6A97,0x8617,0x6ABB,0x6AC3,0x6AC2,0x6AB8,0x6AB3,0x6AAC, - 0x6ADE,0x6AD1,0x6ADF,0x6AAA,0x6ADA,0x6AEA,0x6AFB,0x6B05, - 0x8616,0x6AFA,0x6B12,0x6B16,0x9B31,0x6B1F,0x6B38,0x6B37, - 0x76DC,0x6B39,0x98EE,0x6B47,0x6B43,0x6B49,0x6B50,0x6B59, - 0x6B54,0x6B5B,0x6B5F,0x6B61,0x6B78,0x6B79,0x6B7F,0x6B80, - 0x6B84,0x6B83,0x6B8D,0x6B98,0x6B95,0x6B9E,0x6BA4,0x6BAA, - 0x6BAB,0x6BAF,0x6BB2,0x6BB1,0x6BB3,0x6BB7,0x6BBC,0x6BC6, - 0x6BCB,0x6BD3,0x6BDF,0x6BEC,0x6BEB,0x6BF3,0x6BEF,0x9EBE, - 0x6C08,0x6C13,0x6C14,0x6C1B,0x6C24,0x6C23,0x6C5E,0x6C55, - 0x6C62,0x6C6A,0x6C82,0x6C8D,0x6C9A,0x6C81,0x6C9B,0x6C7E, - 0x6C68,0x6C73,0x6C92,0x6C90,0x6CC4,0x6CF1,0x6CD3,0x6CBD, - 0x6CD7,0x6CC5,0x6CDD,0x6CAE,0x6CB1,0x6CBE, - /* Range 0x5E21 - 0x5E7E, array index: 0x13C6 */ - 0x6CBA,0x6CDB,0x6CEF,0x6CD9,0x6CEA,0x6D1F,0x884D,0x6D36, - 0x6D2B,0x6D3D,0x6D38,0x6D19,0x6D35,0x6D33,0x6D12,0x6D0C, - 0x6D63,0x6D93,0x6D64,0x6D5A,0x6D79,0x6D59,0x6D8E,0x6D95, - 0x6FE4,0x6D85,0x6DF9,0x6E15,0x6E0A,0x6DB5,0x6DC7,0x6DE6, - 0x6DB8,0x6DC6,0x6DEC,0x6DDE,0x6DCC,0x6DE8,0x6DD2,0x6DC5, - 0x6DFA,0x6DD9,0x6DE4,0x6DD5,0x6DEA,0x6DEE,0x6E2D,0x6E6E, - 0x6E2E,0x6E19,0x6E72,0x6E5F,0x6E3E,0x6E23,0x6E6B,0x6E2B, - 0x6E76,0x6E4D,0x6E1F,0x6E43,0x6E3A,0x6E4E,0x6E24,0x6EFF, - 0x6E1D,0x6E38,0x6E82,0x6EAA,0x6E98,0x6EC9,0x6EB7,0x6ED3, - 0x6EBD,0x6EAF,0x6EC4,0x6EB2,0x6ED4,0x6ED5,0x6E8F,0x6EA5, - 0x6EC2,0x6E9F,0x6F41,0x6F11,0x704C,0x6EEC,0x6EF8,0x6EFE, - 0x6F3F,0x6EF2,0x6F31,0x6EEF,0x6F32,0x6ECC, - /* Range 0x5F21 - 0x5F7E, array index: 0x1424 */ - 0x6F3E,0x6F13,0x6EF7,0x6F86,0x6F7A,0x6F78,0x6F81,0x6F80, - 0x6F6F,0x6F5B,0x6FF3,0x6F6D,0x6F82,0x6F7C,0x6F58,0x6F8E, - 0x6F91,0x6FC2,0x6F66,0x6FB3,0x6FA3,0x6FA1,0x6FA4,0x6FB9, - 0x6FC6,0x6FAA,0x6FDF,0x6FD5,0x6FEC,0x6FD4,0x6FD8,0x6FF1, - 0x6FEE,0x6FDB,0x7009,0x700B,0x6FFA,0x7011,0x7001,0x700F, - 0x6FFE,0x701B,0x701A,0x6F74,0x701D,0x7018,0x701F,0x7030, - 0x703E,0x7032,0x7051,0x7063,0x7099,0x7092,0x70AF,0x70F1, - 0x70AC,0x70B8,0x70B3,0x70AE,0x70DF,0x70CB,0x70DD,0x70D9, - 0x7109,0x70FD,0x711C,0x7119,0x7165,0x7155,0x7188,0x7166, - 0x7162,0x714C,0x7156,0x716C,0x718F,0x71FB,0x7184,0x7195, - 0x71A8,0x71AC,0x71D7,0x71B9,0x71BE,0x71D2,0x71C9,0x71D4, - 0x71CE,0x71E0,0x71EC,0x71E7,0x71F5,0x71FC, - /* Range 0x6021 - 0x607E, array index: 0x1482 */ - 0x71F9,0x71FF,0x720D,0x7210,0x721B,0x7228,0x722D,0x722C, - 0x7230,0x7232,0x723B,0x723C,0x723F,0x7240,0x7246,0x724B, - 0x7258,0x7274,0x727E,0x7282,0x7281,0x7287,0x7292,0x7296, - 0x72A2,0x72A7,0x72B9,0x72B2,0x72C3,0x72C6,0x72C4,0x72CE, - 0x72D2,0x72E2,0x72E0,0x72E1,0x72F9,0x72F7,0x500F,0x7317, - 0x730A,0x731C,0x7316,0x731D,0x7334,0x732F,0x7329,0x7325, - 0x733E,0x734E,0x734F,0x9ED8,0x7357,0x736A,0x7368,0x7370, - 0x7378,0x7375,0x737B,0x737A,0x73C8,0x73B3,0x73CE,0x73BB, - 0x73C0,0x73E5,0x73EE,0x73DE,0x74A2,0x7405,0x746F,0x7425, - 0x73F8,0x7432,0x743A,0x7455,0x743F,0x745F,0x7459,0x7441, - 0x745C,0x7469,0x7470,0x7463,0x746A,0x7476,0x747E,0x748B, - 0x749E,0x74A7,0x74CA,0x74CF,0x74D4,0x73F1, - /* Range 0x6121 - 0x617E, array index: 0x14E0 */ - 0x74E0,0x74E3,0x74E7,0x74E9,0x74EE,0x74F2,0x74F0,0x74F1, - 0x74F8,0x74F7,0x7504,0x7503,0x7505,0x750C,0x750E,0x750D, - 0x7515,0x7513,0x751E,0x7526,0x752C,0x753C,0x7544,0x754D, - 0x754A,0x7549,0x755B,0x7546,0x755A,0x7569,0x7564,0x7567, - 0x756B,0x756D,0x7578,0x7576,0x7586,0x7587,0x7574,0x758A, - 0x7589,0x7582,0x7594,0x759A,0x759D,0x75A5,0x75A3,0x75C2, - 0x75B3,0x75C3,0x75B5,0x75BD,0x75B8,0x75BC,0x75B1,0x75CD, - 0x75CA,0x75D2,0x75D9,0x75E3,0x75DE,0x75FE,0x75FF,0x75FC, - 0x7601,0x75F0,0x75FA,0x75F2,0x75F3,0x760B,0x760D,0x7609, - 0x761F,0x7627,0x7620,0x7621,0x7622,0x7624,0x7634,0x7630, - 0x763B,0x7647,0x7648,0x7646,0x765C,0x7658,0x7661,0x7662, - 0x7668,0x7669,0x766A,0x7667,0x766C,0x7670, - /* Range 0x6221 - 0x627E, array index: 0x153E */ - 0x7672,0x7676,0x7678,0x767C,0x7680,0x7683,0x7688,0x768B, - 0x768E,0x7696,0x7693,0x7699,0x769A,0x76B0,0x76B4,0x76B8, - 0x76B9,0x76BA,0x76C2,0x76CD,0x76D6,0x76D2,0x76DE,0x76E1, - 0x76E5,0x76E7,0x76EA,0x862F,0x76FB,0x7708,0x7707,0x7704, - 0x7729,0x7724,0x771E,0x7725,0x7726,0x771B,0x7737,0x7738, - 0x7747,0x775A,0x7768,0x776B,0x775B,0x7765,0x777F,0x777E, - 0x7779,0x778E,0x778B,0x7791,0x77A0,0x779E,0x77B0,0x77B6, - 0x77B9,0x77BF,0x77BC,0x77BD,0x77BB,0x77C7,0x77CD,0x77D7, - 0x77DA,0x77DC,0x77E3,0x77EE,0x77FC,0x780C,0x7812,0x7926, - 0x7820,0x792A,0x7845,0x788E,0x7874,0x7886,0x787C,0x789A, - 0x788C,0x78A3,0x78B5,0x78AA,0x78AF,0x78D1,0x78C6,0x78CB, - 0x78D4,0x78BE,0x78BC,0x78C5,0x78CA,0x78EC, - /* Range 0x6321 - 0x637E, array index: 0x159C */ - 0x78E7,0x78DA,0x78FD,0x78F4,0x7907,0x7912,0x7911,0x7919, - 0x792C,0x792B,0x7940,0x7960,0x7957,0x795F,0x795A,0x7955, - 0x7953,0x797A,0x797F,0x798A,0x799D,0x79A7,0x9F4B,0x79AA, - 0x79AE,0x79B3,0x79B9,0x79BA,0x79C9,0x79D5,0x79E7,0x79EC, - 0x79E1,0x79E3,0x7A08,0x7A0D,0x7A18,0x7A19,0x7A20,0x7A1F, - 0x7980,0x7A31,0x7A3B,0x7A3E,0x7A37,0x7A43,0x7A57,0x7A49, - 0x7A61,0x7A62,0x7A69,0x9F9D,0x7A70,0x7A79,0x7A7D,0x7A88, - 0x7A97,0x7A95,0x7A98,0x7A96,0x7AA9,0x7AC8,0x7AB0,0x7AB6, - 0x7AC5,0x7AC4,0x7ABF,0x9083,0x7AC7,0x7ACA,0x7ACD,0x7ACF, - 0x7AD5,0x7AD3,0x7AD9,0x7ADA,0x7ADD,0x7AE1,0x7AE2,0x7AE6, - 0x7AED,0x7AF0,0x7B02,0x7B0F,0x7B0A,0x7B06,0x7B33,0x7B18, - 0x7B19,0x7B1E,0x7B35,0x7B28,0x7B36,0x7B50, - /* Range 0x6421 - 0x647E, array index: 0x15FA */ - 0x7B7A,0x7B04,0x7B4D,0x7B0B,0x7B4C,0x7B45,0x7B75,0x7B65, - 0x7B74,0x7B67,0x7B70,0x7B71,0x7B6C,0x7B6E,0x7B9D,0x7B98, - 0x7B9F,0x7B8D,0x7B9C,0x7B9A,0x7B8B,0x7B92,0x7B8F,0x7B5D, - 0x7B99,0x7BCB,0x7BC1,0x7BCC,0x7BCF,0x7BB4,0x7BC6,0x7BDD, - 0x7BE9,0x7C11,0x7C14,0x7BE6,0x7BE5,0x7C60,0x7C00,0x7C07, - 0x7C13,0x7BF3,0x7BF7,0x7C17,0x7C0D,0x7BF6,0x7C23,0x7C27, - 0x7C2A,0x7C1F,0x7C37,0x7C2B,0x7C3D,0x7C4C,0x7C43,0x7C54, - 0x7C4F,0x7C40,0x7C50,0x7C58,0x7C5F,0x7C64,0x7C56,0x7C65, - 0x7C6C,0x7C75,0x7C83,0x7C90,0x7CA4,0x7CAD,0x7CA2,0x7CAB, - 0x7CA1,0x7CA8,0x7CB3,0x7CB2,0x7CB1,0x7CAE,0x7CB9,0x7CBD, - 0x7CC0,0x7CC5,0x7CC2,0x7CD8,0x7CD2,0x7CDC,0x7CE2,0x9B3B, - 0x7CEF,0x7CF2,0x7CF4,0x7CF6,0x7CFA,0x7D06, - /* Range 0x6521 - 0x657E, array index: 0x1658 */ - 0x7D02,0x7D1C,0x7D15,0x7D0A,0x7D45,0x7D4B,0x7D2E,0x7D32, - 0x7D3F,0x7D35,0x7D46,0x7D73,0x7D56,0x7D4E,0x7D72,0x7D68, - 0x7D6E,0x7D4F,0x7D63,0x7D93,0x7D89,0x7D5B,0x7D8F,0x7D7D, - 0x7D9B,0x7DBA,0x7DAE,0x7DA3,0x7DB5,0x7DC7,0x7DBD,0x7DAB, - 0x7E3D,0x7DA2,0x7DAF,0x7DDC,0x7DB8,0x7D9F,0x7DB0,0x7DD8, - 0x7DDD,0x7DE4,0x7DDE,0x7DFB,0x7DF2,0x7DE1,0x7E05,0x7E0A, - 0x7E23,0x7E21,0x7E12,0x7E31,0x7E1F,0x7E09,0x7E0B,0x7E22, - 0x7E46,0x7E66,0x7E3B,0x7E35,0x7E39,0x7E43,0x7E37,0x7E32, - 0x7E3A,0x7E67,0x7E5D,0x7E56,0x7E5E,0x7E59,0x7E5A,0x7E79, - 0x7E6A,0x7E69,0x7E7C,0x7E7B,0x7E83,0x7DD5,0x7E7D,0x8FAE, - 0x7E7F,0x7E88,0x7E89,0x7E8C,0x7E92,0x7E90,0x7E93,0x7E94, - 0x7E96,0x7E8E,0x7E9B,0x7E9C,0x7F38,0x7F3A, - /* Range 0x6621 - 0x667E, array index: 0x16B6 */ - 0x7F45,0x7F4C,0x7F4D,0x7F4E,0x7F50,0x7F51,0x7F55,0x7F54, - 0x7F58,0x7F5F,0x7F60,0x7F68,0x7F69,0x7F67,0x7F78,0x7F82, - 0x7F86,0x7F83,0x7F88,0x7F87,0x7F8C,0x7F94,0x7F9E,0x7F9D, - 0x7F9A,0x7FA3,0x7FAF,0x7FB2,0x7FB9,0x7FAE,0x7FB6,0x7FB8, - 0x8B71,0x7FC5,0x7FC6,0x7FCA,0x7FD5,0x7FD4,0x7FE1,0x7FE6, - 0x7FE9,0x7FF3,0x7FF9,0x98DC,0x8006,0x8004,0x800B,0x8012, - 0x8018,0x8019,0x801C,0x8021,0x8028,0x803F,0x803B,0x804A, - 0x8046,0x8052,0x8058,0x805A,0x805F,0x8062,0x8068,0x8073, - 0x8072,0x8070,0x8076,0x8079,0x807D,0x807F,0x8084,0x8086, - 0x8085,0x809B,0x8093,0x809A,0x80AD,0x5190,0x80AC,0x80DB, - 0x80E5,0x80D9,0x80DD,0x80C4,0x80DA,0x80D6,0x8109,0x80EF, - 0x80F1,0x811B,0x8129,0x8123,0x812F,0x814B, - /* Range 0x6721 - 0x677E, array index: 0x1714 */ - 0x968B,0x8146,0x813E,0x8153,0x8151,0x80FC,0x8171,0x816E, - 0x8165,0x8166,0x8174,0x8183,0x8188,0x818A,0x8180,0x8182, - 0x81A0,0x8195,0x81A4,0x81A3,0x815F,0x8193,0x81A9,0x81B0, - 0x81B5,0x81BE,0x81B8,0x81BD,0x81C0,0x81C2,0x81BA,0x81C9, - 0x81CD,0x81D1,0x81D9,0x81D8,0x81C8,0x81DA,0x81DF,0x81E0, - 0x81E7,0x81FA,0x81FB,0x81FE,0x8201,0x8202,0x8205,0x8207, - 0x820A,0x820D,0x8210,0x8216,0x8229,0x822B,0x8238,0x8233, - 0x8240,0x8259,0x8258,0x825D,0x825A,0x825F,0x8264,0x8262, - 0x8268,0x826A,0x826B,0x822E,0x8271,0x8277,0x8278,0x827E, - 0x828D,0x8292,0x82AB,0x829F,0x82BB,0x82AC,0x82E1,0x82E3, - 0x82DF,0x82D2,0x82F4,0x82F3,0x82FA,0x8393,0x8303,0x82FB, - 0x82F9,0x82DE,0x8306,0x82DC,0x8309,0x82D9, - /* Range 0x6821 - 0x687E, array index: 0x1772 */ - 0x8335,0x8334,0x8316,0x8332,0x8331,0x8340,0x8339,0x8350, - 0x8345,0x832F,0x832B,0x8317,0x8318,0x8385,0x839A,0x83AA, - 0x839F,0x83A2,0x8396,0x8323,0x838E,0x8387,0x838A,0x837C, - 0x83B5,0x8373,0x8375,0x83A0,0x8389,0x83A8,0x83F4,0x8413, - 0x83EB,0x83CE,0x83FD,0x8403,0x83D8,0x840B,0x83C1,0x83F7, - 0x8407,0x83E0,0x83F2,0x840D,0x8422,0x8420,0x83BD,0x8438, - 0x8506,0x83FB,0x846D,0x842A,0x843C,0x855A,0x8484,0x8477, - 0x846B,0x84AD,0x846E,0x8482,0x8469,0x8446,0x842C,0x846F, - 0x8479,0x8435,0x84CA,0x8462,0x84B9,0x84BF,0x849F,0x84D9, - 0x84CD,0x84BB,0x84DA,0x84D0,0x84C1,0x84C6,0x84D6,0x84A1, - 0x8521,0x84FF,0x84F4,0x8517,0x8518,0x852C,0x851F,0x8515, - 0x8514,0x84FC,0x8540,0x8563,0x8558,0x8548, - /* Range 0x6921 - 0x697E, array index: 0x17D0 */ - 0x8541,0x8602,0x854B,0x8555,0x8580,0x85A4,0x8588,0x8591, - 0x858A,0x85A8,0x856D,0x8594,0x859B,0x85EA,0x8587,0x859C, - 0x8577,0x857E,0x8590,0x85C9,0x85BA,0x85CF,0x85B9,0x85D0, - 0x85D5,0x85DD,0x85E5,0x85DC,0x85F9,0x860A,0x8613,0x860B, - 0x85FE,0x85FA,0x8606,0x8622,0x861A,0x8630,0x863F,0x864D, - 0x4E55,0x8654,0x865F,0x8667,0x8671,0x8693,0x86A3,0x86A9, - 0x86AA,0x868B,0x868C,0x86B6,0x86AF,0x86C4,0x86C6,0x86B0, - 0x86C9,0x8823,0x86AB,0x86D4,0x86DE,0x86E9,0x86EC,0x86DF, - 0x86DB,0x86EF,0x8712,0x8706,0x8708,0x8700,0x8703,0x86FB, - 0x8711,0x8709,0x870D,0x86F9,0x870A,0x8734,0x873F,0x8737, - 0x873B,0x8725,0x8729,0x871A,0x8760,0x875F,0x8778,0x874C, - 0x874E,0x8774,0x8757,0x8768,0x876E,0x8759, - /* Range 0x6A21 - 0x6A7E, array index: 0x182E */ - 0x8753,0x8763,0x876A,0x8805,0x87A2,0x879F,0x8782,0x87AF, - 0x87CB,0x87BD,0x87C0,0x87D0,0x96D6,0x87AB,0x87C4,0x87B3, - 0x87C7,0x87C6,0x87BB,0x87EF,0x87F2,0x87E0,0x880F,0x880D, - 0x87FE,0x87F6,0x87F7,0x880E,0x87D2,0x8811,0x8816,0x8815, - 0x8822,0x8821,0x8831,0x8836,0x8839,0x8827,0x883B,0x8844, - 0x8842,0x8852,0x8859,0x885E,0x8862,0x886B,0x8881,0x887E, - 0x889E,0x8875,0x887D,0x88B5,0x8872,0x8882,0x8897,0x8892, - 0x88AE,0x8899,0x88A2,0x888D,0x88A4,0x88B0,0x88BF,0x88B1, - 0x88C3,0x88C4,0x88D4,0x88D8,0x88D9,0x88DD,0x88F9,0x8902, - 0x88FC,0x88F4,0x88E8,0x88F2,0x8904,0x890C,0x890A,0x8913, - 0x8943,0x891E,0x8925,0x892A,0x892B,0x8941,0x8944,0x893B, - 0x8936,0x8938,0x894C,0x891D,0x8960,0x895E, - /* Range 0x6B21 - 0x6B7E, array index: 0x188C */ - 0x8966,0x8964,0x896D,0x896A,0x896F,0x8974,0x8977,0x897E, - 0x8983,0x8988,0x898A,0x8993,0x8998,0x89A1,0x89A9,0x89A6, - 0x89AC,0x89AF,0x89B2,0x89BA,0x89BD,0x89BF,0x89C0,0x89DA, - 0x89DC,0x89DD,0x89E7,0x89F4,0x89F8,0x8A03,0x8A16,0x8A10, - 0x8A0C,0x8A1B,0x8A1D,0x8A25,0x8A36,0x8A41,0x8A5B,0x8A52, - 0x8A46,0x8A48,0x8A7C,0x8A6D,0x8A6C,0x8A62,0x8A85,0x8A82, - 0x8A84,0x8AA8,0x8AA1,0x8A91,0x8AA5,0x8AA6,0x8A9A,0x8AA3, - 0x8AC4,0x8ACD,0x8AC2,0x8ADA,0x8AEB,0x8AF3,0x8AE7,0x8AE4, - 0x8AF1,0x8B14,0x8AE0,0x8AE2,0x8AF7,0x8ADE,0x8ADB,0x8B0C, - 0x8B07,0x8B1A,0x8AE1,0x8B16,0x8B10,0x8B17,0x8B20,0x8B33, - 0x97AB,0x8B26,0x8B2B,0x8B3E,0x8B28,0x8B41,0x8B4C,0x8B4F, - 0x8B4E,0x8B49,0x8B56,0x8B5B,0x8B5A,0x8B6B, - /* Range 0x6C21 - 0x6C7E, array index: 0x18EA */ - 0x8B5F,0x8B6C,0x8B6F,0x8B74,0x8B7D,0x8B80,0x8B8C,0x8B8E, - 0x8B92,0x8B93,0x8B96,0x8B99,0x8B9A,0x8C3A,0x8C41,0x8C3F, - 0x8C48,0x8C4C,0x8C4E,0x8C50,0x8C55,0x8C62,0x8C6C,0x8C78, - 0x8C7A,0x8C82,0x8C89,0x8C85,0x8C8A,0x8C8D,0x8C8E,0x8C94, - 0x8C7C,0x8C98,0x621D,0x8CAD,0x8CAA,0x8CBD,0x8CB2,0x8CB3, - 0x8CAE,0x8CB6,0x8CC8,0x8CC1,0x8CE4,0x8CE3,0x8CDA,0x8CFD, - 0x8CFA,0x8CFB,0x8D04,0x8D05,0x8D0A,0x8D07,0x8D0F,0x8D0D, - 0x8D10,0x9F4E,0x8D13,0x8CCD,0x8D14,0x8D16,0x8D67,0x8D6D, - 0x8D71,0x8D73,0x8D81,0x8D99,0x8DC2,0x8DBE,0x8DBA,0x8DCF, - 0x8DDA,0x8DD6,0x8DCC,0x8DDB,0x8DCB,0x8DEA,0x8DEB,0x8DDF, - 0x8DE3,0x8DFC,0x8E08,0x8E09,0x8DFF,0x8E1D,0x8E1E,0x8E10, - 0x8E1F,0x8E42,0x8E35,0x8E30,0x8E34,0x8E4A, - /* Range 0x6D21 - 0x6D7E, array index: 0x1948 */ - 0x8E47,0x8E49,0x8E4C,0x8E50,0x8E48,0x8E59,0x8E64,0x8E60, - 0x8E2A,0x8E63,0x8E55,0x8E76,0x8E72,0x8E7C,0x8E81,0x8E87, - 0x8E85,0x8E84,0x8E8B,0x8E8A,0x8E93,0x8E91,0x8E94,0x8E99, - 0x8EAA,0x8EA1,0x8EAC,0x8EB0,0x8EC6,0x8EB1,0x8EBE,0x8EC5, - 0x8EC8,0x8ECB,0x8EDB,0x8EE3,0x8EFC,0x8EFB,0x8EEB,0x8EFE, - 0x8F0A,0x8F05,0x8F15,0x8F12,0x8F19,0x8F13,0x8F1C,0x8F1F, - 0x8F1B,0x8F0C,0x8F26,0x8F33,0x8F3B,0x8F39,0x8F45,0x8F42, - 0x8F3E,0x8F4C,0x8F49,0x8F46,0x8F4E,0x8F57,0x8F5C,0x8F62, - 0x8F63,0x8F64,0x8F9C,0x8F9F,0x8FA3,0x8FAD,0x8FAF,0x8FB7, - 0x8FDA,0x8FE5,0x8FE2,0x8FEA,0x8FEF,0x9087,0x8FF4,0x9005, - 0x8FF9,0x8FFA,0x9011,0x9015,0x9021,0x900D,0x901E,0x9016, - 0x900B,0x9027,0x9036,0x9035,0x9039,0x8FF8, - /* Range 0x6E21 - 0x6E7E, array index: 0x19A6 */ - 0x904F,0x9050,0x9051,0x9052,0x900E,0x9049,0x903E,0x9056, - 0x9058,0x905E,0x9068,0x906F,0x9076,0x96A8,0x9072,0x9082, - 0x907D,0x9081,0x9080,0x908A,0x9089,0x908F,0x90A8,0x90AF, - 0x90B1,0x90B5,0x90E2,0x90E4,0x6248,0x90DB,0x9102,0x9112, - 0x9119,0x9132,0x9130,0x914A,0x9156,0x9158,0x9163,0x9165, - 0x9169,0x9173,0x9172,0x918B,0x9189,0x9182,0x91A2,0x91AB, - 0x91AF,0x91AA,0x91B5,0x91B4,0x91BA,0x91C0,0x91C1,0x91C9, - 0x91CB,0x91D0,0x91D6,0x91DF,0x91E1,0x91DB,0x91FC,0x91F5, - 0x91F6,0x921E,0x91FF,0x9214,0x922C,0x9215,0x9211,0x925E, - 0x9257,0x9245,0x9249,0x9264,0x9248,0x9295,0x923F,0x924B, - 0x9250,0x929C,0x9296,0x9293,0x929B,0x925A,0x92CF,0x92B9, - 0x92B7,0x92E9,0x930F,0x92FA,0x9344,0x932E, - /* Range 0x6F21 - 0x6F7E, array index: 0x1A04 */ - 0x9319,0x9322,0x931A,0x9323,0x933A,0x9335,0x933B,0x935C, - 0x9360,0x937C,0x936E,0x9356,0x93B0,0x93AC,0x93AD,0x9394, - 0x93B9,0x93D6,0x93D7,0x93E8,0x93E5,0x93D8,0x93C3,0x93DD, - 0x93D0,0x93C8,0x93E4,0x941A,0x9414,0x9413,0x9403,0x9407, - 0x9410,0x9436,0x942B,0x9435,0x9421,0x943A,0x9441,0x9452, - 0x9444,0x945B,0x9460,0x9462,0x945E,0x946A,0x9229,0x9470, - 0x9475,0x9477,0x947D,0x945A,0x947C,0x947E,0x9481,0x947F, - 0x9582,0x9587,0x958A,0x9594,0x9596,0x9598,0x9599,0x95A0, - 0x95A8,0x95A7,0x95AD,0x95BC,0x95BB,0x95B9,0x95BE,0x95CA, - 0x6FF6,0x95C3,0x95CD,0x95CC,0x95D5,0x95D4,0x95D6,0x95DC, - 0x95E1,0x95E5,0x95E2,0x9621,0x9628,0x962E,0x962F,0x9642, - 0x964C,0x964F,0x964B,0x9677,0x965C,0x965E, - /* Range 0x7021 - 0x707E, array index: 0x1A62 */ - 0x965D,0x965F,0x9666,0x9672,0x966C,0x968D,0x9698,0x9695, - 0x9697,0x96AA,0x96A7,0x96B1,0x96B2,0x96B0,0x96B4,0x96B6, - 0x96B8,0x96B9,0x96CE,0x96CB,0x96C9,0x96CD,0x894D,0x96DC, - 0x970D,0x96D5,0x96F9,0x9704,0x9706,0x9708,0x9713,0x970E, - 0x9711,0x970F,0x9716,0x9719,0x9724,0x972A,0x9730,0x9739, - 0x973D,0x973E,0x9744,0x9746,0x9748,0x9742,0x9749,0x975C, - 0x9760,0x9764,0x9766,0x9768,0x52D2,0x976B,0x9771,0x9779, - 0x9785,0x977C,0x9781,0x977A,0x9786,0x978B,0x978F,0x9790, - 0x979C,0x97A8,0x97A6,0x97A3,0x97B3,0x97B4,0x97C3,0x97C6, - 0x97C8,0x97CB,0x97DC,0x97ED,0x9F4F,0x97F2,0x7ADF,0x97F6, - 0x97F5,0x980F,0x980C,0x9838,0x9824,0x9821,0x9837,0x983D, - 0x9846,0x984F,0x984B,0x986B,0x986F,0x9870, - /* Range 0x7121 - 0x717E, array index: 0x1AC0 */ - 0x9871,0x9874,0x9873,0x98AA,0x98AF,0x98B1,0x98B6,0x98C4, - 0x98C3,0x98C6,0x98E9,0x98EB,0x9903,0x9909,0x9912,0x9914, - 0x9918,0x9921,0x991D,0x991E,0x9924,0x9920,0x992C,0x992E, - 0x993D,0x993E,0x9942,0x9949,0x9945,0x9950,0x994B,0x9951, - 0x9952,0x994C,0x9955,0x9997,0x9998,0x99A5,0x99AD,0x99AE, - 0x99BC,0x99DF,0x99DB,0x99DD,0x99D8,0x99D1,0x99ED,0x99EE, - 0x99F1,0x99F2,0x99FB,0x99F8,0x9A01,0x9A0F,0x9A05,0x99E2, - 0x9A19,0x9A2B,0x9A37,0x9A45,0x9A42,0x9A40,0x9A43,0x9A3E, - 0x9A55,0x9A4D,0x9A5B,0x9A57,0x9A5F,0x9A62,0x9A65,0x9A64, - 0x9A69,0x9A6B,0x9A6A,0x9AAD,0x9AB0,0x9ABC,0x9AC0,0x9ACF, - 0x9AD1,0x9AD3,0x9AD4,0x9ADE,0x9ADF,0x9AE2,0x9AE3,0x9AE6, - 0x9AEF,0x9AEB,0x9AEE,0x9AF4,0x9AF1,0x9AF7, - /* Range 0x7221 - 0x727E, array index: 0x1B1E */ - 0x9AFB,0x9B06,0x9B18,0x9B1A,0x9B1F,0x9B22,0x9B23,0x9B25, - 0x9B27,0x9B28,0x9B29,0x9B2A,0x9B2E,0x9B2F,0x9B32,0x9B44, - 0x9B43,0x9B4F,0x9B4D,0x9B4E,0x9B51,0x9B58,0x9B74,0x9B93, - 0x9B83,0x9B91,0x9B96,0x9B97,0x9B9F,0x9BA0,0x9BA8,0x9BB4, - 0x9BC0,0x9BCA,0x9BB9,0x9BC6,0x9BCF,0x9BD1,0x9BD2,0x9BE3, - 0x9BE2,0x9BE4,0x9BD4,0x9BE1,0x9C3A,0x9BF2,0x9BF1,0x9BF0, - 0x9C15,0x9C14,0x9C09,0x9C13,0x9C0C,0x9C06,0x9C08,0x9C12, - 0x9C0A,0x9C04,0x9C2E,0x9C1B,0x9C25,0x9C24,0x9C21,0x9C30, - 0x9C47,0x9C32,0x9C46,0x9C3E,0x9C5A,0x9C60,0x9C67,0x9C76, - 0x9C78,0x9CE7,0x9CEC,0x9CF0,0x9D09,0x9D08,0x9CEB,0x9D03, - 0x9D06,0x9D2A,0x9D26,0x9DAF,0x9D23,0x9D1F,0x9D44,0x9D15, - 0x9D12,0x9D41,0x9D3F,0x9D3E,0x9D46,0x9D48, - /* Range 0x7321 - 0x737E, array index: 0x1B7C */ - 0x9D5D,0x9D5E,0x9D64,0x9D51,0x9D50,0x9D59,0x9D72,0x9D89, - 0x9D87,0x9DAB,0x9D6F,0x9D7A,0x9D9A,0x9DA4,0x9DA9,0x9DB2, - 0x9DC4,0x9DC1,0x9DBB,0x9DB8,0x9DBA,0x9DC6,0x9DCF,0x9DC2, - 0x9DD9,0x9DD3,0x9DF8,0x9DE6,0x9DED,0x9DEF,0x9DFD,0x9E1A, - 0x9E1B,0x9E1E,0x9E75,0x9E79,0x9E7D,0x9E81,0x9E88,0x9E8B, - 0x9E8C,0x9E92,0x9E95,0x9E91,0x9E9D,0x9EA5,0x9EA9,0x9EB8, - 0x9EAA,0x9EAD,0x9761,0x9ECC,0x9ECE,0x9ECF,0x9ED0,0x9ED4, - 0x9EDC,0x9EDE,0x9EDD,0x9EE0,0x9EE5,0x9EE8,0x9EEF,0x9EF4, - 0x9EF6,0x9EF7,0x9EF9,0x9EFB,0x9EFC,0x9EFD,0x9F07,0x9F08, - 0x76B7,0x9F15,0x9F21,0x9F2C,0x9F3E,0x9F4A,0x9F52,0x9F54, - 0x9F63,0x9F5F,0x9F60,0x9F61,0x9F66,0x9F67,0x9F6C,0x9F6A, - 0x9F77,0x9F72,0x9F76,0x9F95,0x9F9C,0x9FA0, - /* Range 0x7421 - 0x7426, array index: 0x1BDA */ - 0x582F,0x69C7,0x9059,0x7464,0x51DC,0x7199, - /* Unranged codes (85 codes) */ - /* Array index: 0x1BE0 */ 0x227E,0x25EF, -}; - -#endif /* ICONV_TO_UCS_CCS_JIS_X0208_1990 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> jis_x0208_1990 speed-optimized table (48128 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_JIS_X0208_1990) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_speed_jis_x0208_1990[] = -{ - /* Heading Block */ - 0x0100,INVBLK,INVBLK,0x0200,0x0300,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - 0x0400,0x0500,0x0600,0x0700,INVBLK,0x0800,0x0900,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - 0x0A00,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,0x0B00,0x0C00, - 0x0D00,0x0E00,0x0F00,0x1000,0x1100,0x1200,0x1300,0x1400, - 0x1500,0x1600,0x1700,0x1800,0x1900,0x1A00,0x1B00,0x1C00, - 0x1D00,0x1E00,0x1F00,0x2000,0x2100,0x2200,0x2300,0x2400, - 0x2500,0x2600,0x2700,0x2800,0x2900,0x2A00,0x2B00,0x2C00, - 0x2D00,0x2E00,0x2F00,0x3000,0x3100,0x3200,0x3300,0x3400, - 0x3500,0x3600,0x3700,0x3800,0x3900,0x3A00,0x3B00,0x3C00, - 0x3D00,0x3E00,0x3F00,0x4000,0x4100,0x4200,0x4300,0x4400, - 0x4500,0x4600,0x4700,0x4800,0x4900,0x4A00,0x4B00,0x4C00, - 0x4D00,0x4E00,0x4F00,0x5000,0x5100,0x5200,0x5300,0x5400, - 0x5500,0x5600,0x5700,0x5800,0x5900,0x5A00,0x5B00,0x5C00, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,0x5D00, - /* Block 1, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2140,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2171,0x2172,INVALC,INVALC,INVALC,0x2178, - 0x212F,INVALC,INVALC,INVALC,0x224C,INVALC,INVALC,INVALC, - 0x216B,0x215E,INVALC,INVALC,0x212D,INVALC,0x2279,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x215F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2160, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 4, Array index 0x0200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2621,0x2622,0x2623,0x2624,0x2625,0x2626,0x2627, - 0x2628,0x2629,0x262A,0x262B,0x262C,0x262D,0x262E,0x262F, - 0x2630,0x2631,INVALC,0x2632,0x2633,0x2634,0x2635,0x2636, - 0x2637,0x2638,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2641,0x2642,0x2643,0x2644,0x2645,0x2646,0x2647, - 0x2648,0x2649,0x264A,0x264B,0x264C,0x264D,0x264E,0x264F, - 0x2650,0x2651,INVALC,0x2652,0x2653,0x2654,0x2655,0x2656, - 0x2657,0x2658,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 5, Array index 0x0300 */ - INVALC,0x2727,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2721,0x2722,0x2723,0x2724,0x2725,0x2726,0x2728,0x2729, - 0x272A,0x272B,0x272C,0x272D,0x272E,0x272F,0x2730,0x2731, - 0x2732,0x2733,0x2734,0x2735,0x2736,0x2737,0x2738,0x2739, - 0x273A,0x273B,0x273C,0x273D,0x273E,0x273F,0x2740,0x2741, - 0x2751,0x2752,0x2753,0x2754,0x2755,0x2756,0x2758,0x2759, - 0x275A,0x275B,0x275C,0x275D,0x275E,0x275F,0x2760,0x2761, - 0x2762,0x2763,0x2764,0x2765,0x2766,0x2767,0x2768,0x2769, - 0x276A,0x276B,0x276C,0x276D,0x276E,0x276F,0x2770,0x2771, - INVALC,0x2757,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 33, Array index 0x0400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x213E,INVALC,INVALC,INVALC,INVALC,0x213D,0x2142,INVALC, - 0x2146,0x2147,INVALC,INVALC,0x2148,0x2149,INVALC,INVALC, - 0x2277,0x2278,INVALC,INVALC,INVALC,0x2145,0x2144,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2273,INVALC,0x216C,0x216D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2228,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 34, Array index 0x0500 */ - INVALC,INVALC,INVALC,0x216E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2272,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x222B,0x222C,0x222A,0x222D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x224D,INVALC,0x224E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 35, Array index 0x0600 */ - 0x224F,INVALC,0x225F,0x2250,INVALC,INVALC,INVALC,0x2260, - 0x223A,INVALC,INVALC,0x223B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x215D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2265,INVALC,INVALC,0x2267,0x2167,INVALC, - 0x225C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x224A, - 0x224B,0x2241,0x2240,0x2269,0x226A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2168,0x2268,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2266,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2262,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2162,0x2261,INVALC,INVALC,INVALC,INVALC,0x2165,0x2166, - INVALC,INVALC,0x2263,0x2264,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x223E,0x223F,INVALC,INVALC,0x223C,0x223D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x225D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 36, Array index 0x0700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x225E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 38, Array index 0x0800 */ - 0x2821,0x282C,0x2822,0x282D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2823,INVALC,INVALC,0x282E, - 0x2824,INVALC,INVALC,0x282F,0x2826,INVALC,INVALC,0x2831, - 0x2825,INVALC,INVALC,0x2830,0x2827,0x283C,INVALC,INVALC, - 0x2837,INVALC,INVALC,0x2832,0x2829,0x283E,INVALC,INVALC, - 0x2839,INVALC,INVALC,0x2834,0x2828,INVALC,INVALC,0x2838, - 0x283D,INVALC,INVALC,0x2833,0x282A,INVALC,INVALC,0x283A, - 0x283F,INVALC,INVALC,0x2835,0x282B,INVALC,INVALC,0x283B, - INVALC,INVALC,0x2840,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2836,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2223,0x2222,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2225,0x2224,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2227,0x2226,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2221,0x217E, - INVALC,INVALC,INVALC,0x217B,INVALC,INVALC,0x217D,0x217C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x227E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 39, Array index 0x0900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x217A,0x2179,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x216A,INVALC,0x2169,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2276,INVALC,INVALC,0x2275,INVALC,0x2274, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 49, Array index 0x0A00 */ - 0x2121,0x2122,0x2123,0x2137,INVALC,0x2139,0x213A,0x213B, - 0x2152,0x2153,0x2154,0x2155,0x2156,0x2157,0x2158,0x2159, - 0x215A,0x215B,0x2229,0x222E,0x214C,0x214D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2141,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2421,0x2422,0x2423,0x2424,0x2425,0x2426,0x2427, - 0x2428,0x2429,0x242A,0x242B,0x242C,0x242D,0x242E,0x242F, - 0x2430,0x2431,0x2432,0x2433,0x2434,0x2435,0x2436,0x2437, - 0x2438,0x2439,0x243A,0x243B,0x243C,0x243D,0x243E,0x243F, - 0x2440,0x2441,0x2442,0x2443,0x2444,0x2445,0x2446,0x2447, - 0x2448,0x2449,0x244A,0x244B,0x244C,0x244D,0x244E,0x244F, - 0x2450,0x2451,0x2452,0x2453,0x2454,0x2455,0x2456,0x2457, - 0x2458,0x2459,0x245A,0x245B,0x245C,0x245D,0x245E,0x245F, - 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467, - 0x2468,0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F, - 0x2470,0x2471,0x2472,0x2473,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x212B,0x212C,0x2135,0x2136,INVALC, - INVALC,0x2521,0x2522,0x2523,0x2524,0x2525,0x2526,0x2527, - 0x2528,0x2529,0x252A,0x252B,0x252C,0x252D,0x252E,0x252F, - 0x2530,0x2531,0x2532,0x2533,0x2534,0x2535,0x2536,0x2537, - 0x2538,0x2539,0x253A,0x253B,0x253C,0x253D,0x253E,0x253F, - 0x2540,0x2541,0x2542,0x2543,0x2544,0x2545,0x2546,0x2547, - 0x2548,0x2549,0x254A,0x254B,0x254C,0x254D,0x254E,0x254F, - 0x2550,0x2551,0x2552,0x2553,0x2554,0x2555,0x2556,0x2557, - 0x2558,0x2559,0x255A,0x255B,0x255C,0x255D,0x255E,0x255F, - 0x2560,0x2561,0x2562,0x2563,0x2564,0x2565,0x2566,0x2567, - 0x2568,0x2569,0x256A,0x256B,0x256C,0x256D,0x256E,0x256F, - 0x2570,0x2571,0x2572,0x2573,0x2574,0x2575,0x2576,INVALC, - INVALC,INVALC,INVALC,0x2126,0x213C,0x2133,0x2134,INVALC, - /* Block 79, Array index 0x0B00 */ - 0x306C,0x437A,INVALC,0x3C37,INVALC,INVALC,INVALC,0x4B7C, - 0x3E66,0x3B30,0x3E65,0x323C,INVALC,0x4954,0x4D3F,INVALC, - 0x5022,0x312F,INVALC,INVALC,0x336E,0x5023,0x4024,0x5242, - 0x3556,0x4A3A,INVALC,INVALC,INVALC,INVALC,0x3E67,INVALC, - INVALC,0x4E3E,INVALC,INVALC,INVALC,INVALC,0x4A42,INVALC, - INVALC,INVALC,0x5024,INVALC,INVALC,0x4366,INVALC,INVALC, - INVALC,0x5025,0x367A,INVALC,INVALC,INVALC,0x5026,INVALC, - 0x345D,0x4330,INVALC,0x3C67,0x5027,INVALC,INVALC,0x5028, - INVALC,INVALC,0x5029,0x4735,INVALC,0x3557,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4737,INVALC,0x4663,0x3843,0x4B33, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6949,0x502A,0x3E68, - 0x502B,0x3235,INVALC,INVALC,INVALC,0x3665,0x3870,0x4C69, - INVALC,INVALC,0x5626,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D70,INVALC,0x467D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3425,INVALC, - 0x3535,INVALC,0x502C,INVALC,INVALC,0x502D,0x4E3B,INVALC, - 0x4D3D,0x4168,0x502F,0x3B76,0x4673,INVALC,0x5032,INVALC, - INVALC,0x313E,0x385F,INVALC,0x385E,0x3066,INVALC,INVALC, - 0x4F4B,0x4F4A,INVALC,0x3A33,0x3021,INVALC,0x5033,0x5034, - 0x5035,0x4B34,0x5036,INVALC,0x3872,0x3067,0x4B72,INVALC, - 0x357C,INVALC,INVALC,0x357D,0x357E,0x4462,0x4E3C,INVALC, - 0x5037,INVALC,INVALC,0x5038,INVALC,INVALC,0x5039,INVALC, - INVALC,INVALC,0x3F4D,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D3A,0x3F4E,0x503E,INVALC,0x503C,INVALC,0x503D,0x3558, - INVALC,INVALC,0x3A23,0x3270,INVALC,0x503B,0x503A,0x4A29, - INVALC,INVALC,INVALC,INVALC,0x3B46,0x3B45,0x423E,0x503F, - 0x4955,0x4067,INVALC,INVALC,INVALC,0x2138,0x5040,0x5042, - INVALC,INVALC,INVALC,0x4265,0x4E61,0x304A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5041,0x323E,INVALC, - 0x3644,INVALC,0x4367,INVALC,INVALC,INVALC,0x376F,0x5043, - INVALC,INVALC,INVALC,0x4724,INVALC,INVALC,INVALC,INVALC, - /* Block 80, Array index 0x0C00 */ - INVALC,0x346B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5044,0x304B,INVALC,INVALC,0x3860,0x346C,0x497A, - 0x4832,0x3559,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3271,INVALC,0x5067,0x4541,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x476C, - 0x5046,INVALC,INVALC,INVALC,0x483C,INVALC,0x4E62,INVALC, - 0x3F2D,INVALC,0x3B47,INVALC,0x3B77,0x3240,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4451,INVALC,INVALC,0x4322,0x504A, - INVALC,INVALC,INVALC,INVALC,INVALC,0x304C,0x4463,0x3D3B, - 0x3A34,0x4D24,INVALC,0x424E,INVALC,0x323F,INVALC,0x5049, - INVALC,0x4D3E,0x5045,0x5047,0x3A6E,0x5048,0x5524,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5050,INVALC,INVALC,INVALC,INVALC,INVALC,0x5053, - 0x5051,INVALC,INVALC,0x3242,INVALC,0x4A3B,0x504B,INVALC, - INVALC,INVALC,INVALC,0x504F,0x3873,INVALC,INVALC,0x3B48, - INVALC,INVALC,INVALC,0x3426,INVALC,INVALC,0x5054,INVALC, - 0x504C,INVALC,INVALC,0x4E63,INVALC,0x3B78,INVALC,0x504D, - INVALC,0x5052,INVALC,INVALC,INVALC,INVALC,0x5055,INVALC, - 0x504E,INVALC,INVALC,0x3621,INVALC,0x304D,INVALC,INVALC, - 0x3622,0x3241,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5525,INVALC,0x4B79,0x496E,0x3874, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3F2F,0x4E37,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A58, - INVALC,INVALC,0x3738,0x4225,0x3264,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3D53,INVALC,INVALC,INVALC,0x5059,INVALC, - 0x505E,0x505C,INVALC,INVALC,0x5057,INVALC,INVALC,0x422F, - 0x505A,INVALC,0x505D,0x505B,INVALC,0x4A5D,INVALC,0x5058, - INVALC,0x3F2E,INVALC,0x4B73,0x505F,0x5060,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D24,0x506D, - INVALC,INVALC,INVALC,0x4750,INVALC,0x4936,0x5068,INVALC, - 0x4A70,INVALC,0x3236,INVALC,INVALC,INVALC,0x506C,INVALC, - /* Block 81, Array index 0x0D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x5066,0x506F,INVALC, - INVALC,0x4152,INVALC,0x3844,INVALC,0x475C,INVALC,0x6047, - INVALC,0x506E,0x455D,INVALC,0x5063,INVALC,0x3876,INVALC, - INVALC,0x3875,0x5061,INVALC,INVALC,INVALC,INVALC,0x3C5A, - INVALC,0x5069,INVALC,0x4A6F,0x434D,0x5065,0x3771,INVALC, - 0x5062,0x506A,0x5064,0x4E51,0x506B,0x4F41,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3666,INVALC, - INVALC,0x3770,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5070,INVALC,INVALC,INVALC,0x5071, - 0x5075,0x304E,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A50, - 0x5074,INVALC,INVALC,INVALC,INVALC,0x5073,0x5077,INVALC, - INVALC,INVALC,0x5076,INVALC,0x4464,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3772,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5078,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3C45,INVALC,0x4226,0x4465,0x3676,INVALC, - 0x5079,INVALC,INVALC,INVALC,INVALC,0x3536,INVALC,INVALC, - 0x507A,INVALC,INVALC,INVALC,INVALC,0x507C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4B35,INVALC,INVALC, - INVALC,0x3766,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B31,0x4877,0x507B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A45,0x4D43,INVALC,INVALC, - INVALC,INVALC,0x507E,0x5123,0x507D,0x3A44,INVALC,0x3D7D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3739,INVALC, - INVALC,INVALC,0x5124,INVALC,INVALC,0x364F,INVALC,INVALC, - INVALC,0x5121,0x5122,INVALC,INVALC,0x462F,INVALC,0x417C, - INVALC,0x3623,INVALC,INVALC,INVALC,0x4B4D,0x5125,INVALC, - INVALC,INVALC,0x4E3D,INVALC,INVALC,INVALC,0x5126,INVALC, - INVALC,INVALC,INVALC,0x5129,INVALC,0x5127,INVALC,0x414E, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5128,0x512A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x512C,INVALC,INVALC, - INVALC,0x512B,INVALC,0x4A48,INVALC,INVALC,INVALC,INVALC, - /* Block 82, Array index 0x0E00 */ - 0x3537,0x512E,0x512F,INVALC,0x322F,INVALC,INVALC,INVALC, - INVALC,0x512D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3C74,INVALC,0x5132,0x5131,0x5130,INVALC, - 0x5056,INVALC,0x5133,INVALC,INVALC,INVALC,INVALC,0x3D7E, - INVALC,0x5134,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D25,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4C59,INVALC,INVALC,INVALC,INVALC,0x5136, - INVALC,INVALC,0x5135,0x5138,0x5137,INVALC,INVALC,0x5139, - 0x513A,0x3074,INVALC,0x3835,0x373B,0x3D3C,0x437B,0x3624, - 0x4068,0x3877,INVALC,0x396E,0x513C,0x4C48,0x4546,INVALC, - 0x3B79,INVALC,0x513B,INVALC,0x513D,INVALC,INVALC,INVALC, - INVALC,INVALC,0x455E,INVALC,0x3375,INVALC,INVALC,INVALC, - INVALC,INVALC,0x513E,INVALC,INVALC,0x467E,INVALC,INVALC, - 0x4134,0x5140,0x5141,0x482C,0x3878,0x4F3B,0x5142,INVALC, - INVALC,0x3626,INVALC,INVALC,INVALC,0x4A3C,0x4236,0x3671, - 0x4535,INVALC,INVALC,INVALC,0x3773,INVALC,INVALC,INVALC, - 0x5143,INVALC,0x5144,INVALC,INVALC,0x4662,0x315F,INVALC, - INVALC,0x5147,0x3A7D,INVALC,0x5146,0x3A46,INVALC,0x5148, - 0x666E,0x5149,0x4B41,0x514A,INVALC,0x514B,0x514C,0x3E69, - INVALC,0x3C4C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3427,INVALC,0x514F,INVALC,0x514D,0x4C3D,0x514E,INVALC, - 0x495A,0x5150,0x5151,0x5152,0x455F,INVALC,INVALC,INVALC, - 0x5156,0x5154,0x5155,0x5153,0x3A63,0x5157,0x4C6A,0x4E64, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5158,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4028,0x5159,0x3D5A,INVALC, - INVALC,0x515A,INVALC,0x437C,0x4E3F,0x4560,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5245,INVALC, - INVALC,INVALC,INVALC,0x515B,0x7425,0x3645,INVALC,INVALC, - 0x515C,0x4B5E,INVALC,INVALC,INVALC,INVALC,0x3D68,0x427C, - INVALC,0x515E,0x4664,INVALC,INVALC,0x515F,INVALC,INVALC, - 0x5160,0x332E,INVALC,INVALC,INVALC,0x5161,0x3627,INVALC, - 0x464C,0x317A,0x3D50,INVALC,INVALC,0x4821,0x5162,INVALC, - /* Block 83, Array index 0x0F00 */ - 0x4561,INVALC,INVALC,0x3F4F,0x5163,INVALC,0x4A2C,0x405A, - 0x3422,INVALC,0x3429,0x5164,INVALC,INVALC,0x5166,INVALC, - INVALC,0x373A,INVALC,INVALC,0x5165,INVALC,INVALC,0x4E73, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3D69,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x483D,0x4A4C,INVALC,0x5167, - INVALC,0x4D78,0x5168,INVALC,INVALC,INVALC,0x5169,INVALC, - 0x457E,INVALC,INVALC,0x516A,INVALC,INVALC,0x4029,0x3A7E, - 0x3774,0x516B,0x3B49,0x396F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4466,0x516D,INVALC,INVALC,0x4227, - INVALC,INVALC,0x3A6F,0x516E,0x516F,0x4130,INVALC,0x516C, - INVALC,INVALC,INVALC,INVALC,0x5171,INVALC,0x4B36,INVALC, - INVALC,INVALC,INVALC,0x3964,INVALC,INVALC,0x5170,INVALC, - INVALC,INVALC,INVALC,0x3775,0x3A5E,0x476D,INVALC,INVALC, - INVALC,0x5174,0x5172,INVALC,INVALC,INVALC,INVALC,0x497B, - 0x3E6A,0x517B,0x3364,0x5175,0x5173,0x414F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5177,INVALC,0x5176, - INVALC,INVALC,INVALC,0x3344,INVALC,INVALC,INVALC,0x3760, - 0x517C,0x4E2D,INVALC,INVALC,INVALC,0x5178,INVALC,INVALC, - INVALC,0x517D,0x517A,INVALC,0x5179,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4E4F,INVALC,INVALC,INVALC,0x3879, - 0x3243,INVALC,INVALC,0x4E74,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3D75,0x4558,0x3965,0x5222,0x5223,INVALC,INVALC, - INVALC,0x4E65,INVALC,INVALC,0x4F2B,0x5225,INVALC,INVALC, - INVALC,0x387A,INVALC,INVALC,0x5224,INVALC,0x332F,INVALC, - INVALC,0x5226,INVALC,0x4B56,INVALC,0x443C,INVALC,0x4D26, - INVALC,0x4A59,INVALC,INVALC,INVALC,0x5227,INVALC,INVALC, - INVALC,INVALC,0x7055,INVALC,INVALC,0x4630,INVALC,0x5228, - 0x342A,0x4C33,INVALC,INVALC,INVALC,0x3E21,0x5229,0x4A67, - 0x522D,INVALC,0x402A,0x522A,0x3650,INVALC,0x522B,0x342B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x372E,0x522E,INVALC,0x522F,INVALC,INVALC, - 0x5230,0x5231,0x3C5B,INVALC,INVALC,INVALC,0x387B,0x4C5E, - /* Block 84, Array index 0x1000 */ - INVALC,0x4C68,0x4677,INVALC,INVALC,0x4A71,0x5232,INVALC, - 0x5233,INVALC,INVALC,INVALC,INVALC,0x5235,INVALC,0x5237, - 0x5236,INVALC,INVALC,INVALC,INVALC,0x5238,0x323D,0x4B4C, - INVALC,0x3A7C,0x5239,INVALC,INVALC,0x4159,INVALC,INVALC, - 0x3E22,0x3629,INVALC,0x523A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x485B,INVALC,INVALC,INVALC,INVALC,0x523B, - INVALC,0x523C,INVALC,0x523D,INVALC,INVALC,INVALC,INVALC, - 0x523E,0x4924,0x3668,0x3065,INVALC,INVALC,INVALC,0x463F, - 0x523F,0x3D3D,INVALC,0x4069,INVALC,0x5241,0x5240,0x3E23, - 0x3861,0x5243,0x483E,INVALC,INVALC,0x5244,INVALC,INVALC, - INVALC,0x485C,0x4234,0x426E,0x3628,INVALC,INVALC,0x466E, - 0x4331,INVALC,0x476E,INVALC,0x4B4E,INVALC,0x5246,INVALC, - 0x406A,INVALC,INVALC,INVALC,INVALC,INVALC,0x3735,INVALC, - INVALC,0x5247,INVALC,INVALC,INVALC,INVALC,0x5248,0x312C, - 0x3075,0x346D,INVALC,0x4228,0x3551,0x4D71,INVALC,0x524B, - 0x3237,INVALC,INVALC,0x524A,INVALC,INVALC,INVALC,0x362A, - INVALC,INVALC,0x524C,INVALC,0x4C71,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x524D,INVALC, - 0x4E52,INVALC,0x387C,INVALC,INVALC,INVALC,INVALC,0x3836, - 0x524E,INVALC,INVALC,INVALC,INVALC,0x5250,0x524F,INVALC, - 0x3F5F,0x3139,INVALC,INVALC,INVALC,0x315E,0x5251,INVALC, - 0x5252,INVALC,INVALC,0x3837,INVALC,INVALC,0x5253,INVALC, - INVALC,INVALC,INVALC,0x356E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3B32,0x5254,INVALC,INVALC,INVALC,INVALC, - 0x4B74,0x3A35,0x355A,0x4D27,0x4150,0x483F,0x3C7D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D47,INVALC,0x3C68,0x3C75, - INVALC,0x3D76,INVALC,0x4840,INVALC,INVALC,INVALC,0x5257, - INVALC,0x3143,0x4151,0x387D,0x3845,0x3667,INVALC,INVALC, - 0x525B,0x4321,0x427E,0x362B,0x3E24,0x525C,0x525A,0x3244, - 0x4266,0x3C38,0x3B4B,0x3126,INVALC,INVALC,0x3370,0x3966, - 0x3B4A,INVALC,0x525D,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 85, Array index 0x1100 */ - INVALC,0x525E,INVALC,0x3549,0x3346,INVALC,INVALC,INVALC, - 0x3967,0x3548,0x445F,0x3125,0x4631,0x4C3E,0x3921,0x4D79, - 0x4547,0x387E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x372F,INVALC,0x5267,INVALC,0x3663, - 0x4B4A,INVALC,INVALC,INVALC,INVALC,INVALC,0x485D,INVALC, - INVALC,0x5266,INVALC,0x345E,0x5261,0x5262,0x5264,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5265,INVALC, - 0x355B,0x3F61,INVALC,0x4A2D,0x5263,0x525F,0x3863,INVALC, - 0x5260,INVALC,0x4F24,INVALC,INVALC,INVALC,0x4A72,INVALC, - 0x4468,0x3862,0x3970,INVALC,INVALC,INVALC,0x5268,INVALC, - INVALC,0x465D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x526C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C7E,INVALC,0x3C76,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x526F,0x526D,INVALC,0x4C23,INVALC,0x526A,0x5273,0x526E, - INVALC,INVALC,INVALC,0x5271,0x3846,0x4C3F,INVALC,INVALC, - 0x5272,INVALC,INVALC,INVALC,0x5274,INVALC,0x5276,INVALC, - INVALC,INVALC,INVALC,0x3A70,0x4F42,INVALC,0x526B,0x5269, - 0x5275,INVALC,0x5270,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5278,INVALC,0x5323,0x527A,INVALC,INVALC, - 0x527E,INVALC,INVALC,0x5321,0x527B,INVALC,INVALC,0x533E, - INVALC,INVALC,0x3A69,0x3331,INVALC,INVALC,INVALC,INVALC, - 0x5279,INVALC,INVALC,INVALC,0x5325,0x3076,0x5324,INVALC, - 0x3025,0x494A,0x5322,INVALC,0x527C,INVALC,INVALC,0x5277, - 0x527D,0x3A48,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5326,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3077,0x532F,INVALC,INVALC,0x5327,0x5328,INVALC, - 0x3E25,0x4B69,INVALC,INVALC,INVALC,0x532D,0x532C,INVALC, - INVALC,INVALC,0x452F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x532E,INVALC,INVALC,0x532B,INVALC,INVALC, - /* Block 86, Array index 0x1200 */ - INVALC,INVALC,INVALC,INVALC,0x3134,INVALC,0x3A36,0x3F30, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5329, - 0x4562,INVALC,INVALC,INVALC,0x532A,INVALC,0x3022,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5334,0x4D23, - INVALC,0x3E27,INVALC,0x533A,INVALC,INVALC,INVALC,INVALC, - 0x5339,0x5330,INVALC,INVALC,INVALC,INVALC,0x4243,INVALC, - 0x5331,INVALC,INVALC,INVALC,0x426F,0x5336,0x3E26,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5333,INVALC,INVALC,0x4C64, - INVALC,INVALC,INVALC,0x373C,INVALC,INVALC,0x5337,0x5338, - INVALC,INVALC,INVALC,INVALC,0x5335,0x533B,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5332,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5341,0x5346,INVALC,0x5342,INVALC, - 0x533D,INVALC,INVALC,0x5347,0x4131,INVALC,INVALC,0x5349, - INVALC,0x3922,0x533F,0x437D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5343,0x533C,0x342D,INVALC,0x346E,0x3365,0x5344,0x5340, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3776, - 0x534A,0x5348,0x4153,0x354A,0x362C,INVALC,0x5345,INVALC, - 0x3674,INVALC,INVALC,INVALC,INVALC,INVALC,0x3144,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x534E,0x534C,INVALC,0x5427, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5351,INVALC,INVALC,INVALC, - INVALC,INVALC,0x534B,INVALC,0x534F,INVALC,INVALC,0x534D, - INVALC,INVALC,INVALC,0x3B4C,0x5350,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5353, - INVALC,0x5358,INVALC,INVALC,INVALC,0x5356,0x5355,INVALC, - /* Block 87, Array index 0x1300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4332,INVALC, - INVALC,0x3245,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5352,INVALC,0x5354,0x3E28, - 0x3133,INVALC,INVALC,0x5357,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x325E,INVALC,INVALC,INVALC,INVALC,INVALC,0x5362, - INVALC,0x3E7C,0x535E,INVALC,0x535C,INVALC,0x535D,INVALC, - 0x535F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x313D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4139,INVALC,0x5359,INVALC, - 0x535A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x337A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5361,INVALC,INVALC,INVALC, - 0x346F,INVALC,0x5364,0x5360,0x5363,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4A2E,INVALC,INVALC,INVALC, - 0x4655,INVALC,0x4838,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5366,INVALC,INVALC,INVALC,INVALC,INVALC,0x5365,0x3345, - INVALC,INVALC,0x5367,INVALC,INVALC,INVALC,INVALC,0x536A, - INVALC,INVALC,INVALC,INVALC,0x5369,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5368,INVALC,0x4739,INVALC,INVALC,0x536B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x536C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x536E,INVALC,0x536D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5370,INVALC,INVALC,INVALC, - 0x5373,0x5371,0x536F,0x5372,INVALC,INVALC,INVALC,INVALC, - 0x5374,INVALC,INVALC,INVALC,INVALC,INVALC,0x5375,INVALC, - INVALC,0x5376,INVALC,0x5377,INVALC,INVALC,INVALC,0x5378, - 0x5145,INVALC,0x3C7C,0x3B4D,INVALC,INVALC,0x3273,INVALC, - 0x3078,INVALC,INVALC,0x4344,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5379,INVALC, - 0x3A24,INVALC,0x304F,0x3F5E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x537A,0x3847,INVALC,INVALC,0x3971,INVALC,0x537C, - /* Block 88, Array index 0x1400 */ - 0x537B,INVALC,INVALC,0x4A60,0x537D,INVALC,INVALC,INVALC, - 0x5421,0x537E,INVALC,0x5422,INVALC,0x5423,INVALC,0x3777, - INVALC,INVALC,0x3160,0x5424,INVALC,INVALC,0x5426,INVALC, - 0x5425,INVALC,INVALC,INVALC,0x5428,INVALC,INVALC,0x455A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5429,0x3035, - 0x3A5F,INVALC,INVALC,INVALC,INVALC,0x373D,INVALC,INVALC, - 0x434F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x542A, - 0x542B,INVALC,INVALC,0x542D,INVALC,INVALC,INVALC,INVALC, - 0x542E,INVALC,0x3A64,INVALC,INVALC,INVALC,INVALC,0x3651, - INVALC,INVALC,0x4B37,INVALC,INVALC,INVALC,0x542C,0x542F, - 0x3A41,0x3923,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5433,INVALC,INVALC,0x3A25,INVALC,0x4333,INVALC, - INVALC,0x5430,0x445A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5434, - INVALC,INVALC,0x3F62,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5432,0x5435,INVALC,0x373F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5436,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5437,INVALC,0x3924,0x3340,0x5439,INVALC,INVALC,INVALC, - INVALC,INVALC,0x543A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x543B,INVALC,INVALC,0x5438,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5431,INVALC,INVALC,0x543C,INVALC,INVALC,0x543D,INVALC, - INVALC,INVALC,INVALC,0x4B64,INVALC,INVALC,0x3E6B,INVALC, - INVALC,INVALC,0x543F,0x5440,0x543E,INVALC,0x5442,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4738,INVALC,INVALC,0x3068, - 0x4956,INVALC,INVALC,0x5443,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E7D,INVALC,INVALC,0x3C39, - INVALC,0x475D,0x3470,INVALC,0x3A6B,INVALC,INVALC,INVALC, - /* Block 89, Array index 0x1500 */ - 0x4B59,INVALC,0x4632,INVALC,INVALC,0x3778,0x424F,INVALC, - INVALC,INVALC,0x5441,0x5444,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4244,INVALC,INVALC, - INVALC,0x5445,INVALC,INVALC,INVALC,0x5446,INVALC,INVALC, - INVALC,0x5448,INVALC,INVALC,0x4469,INVALC,INVALC,INVALC, - INVALC,INVALC,0x342E,INVALC,INVALC,INVALC,INVALC,0x7421, - 0x3161,0x4A73,INVALC,INVALC,0x3E6C,0x4548,INVALC,INVALC, - INVALC,INVALC,0x3A66,INVALC,INVALC,0x544E,INVALC,INVALC, - 0x4A3D,0x4E5D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3274,0x544A,INVALC,INVALC,INVALC,INVALC, - INVALC,0x413A,0x544D,INVALC,0x4563,INVALC,INVALC,0x4549, - 0x4564,0x4839,0x444D,INVALC,INVALC,INVALC,0x3A49,INVALC, - INVALC,INVALC,0x5449,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3176,INVALC,0x4536,INVALC,INVALC,INVALC,INVALC, - 0x544B,INVALC,0x5447,INVALC,INVALC,0x3F50,INVALC,INVALC, - INVALC,0x544F,INVALC,INVALC,INVALC,INVALC,0x3D4E,INVALC, - INVALC,INVALC,INVALC,0x362D,INVALC,0x5450,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4A68,INVALC,INVALC,INVALC,0x417D, - INVALC,INVALC,INVALC,INVALC,0x4446,INVALC,INVALC,0x5452, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4B4F,INVALC,INVALC,0x5453,INVALC,INVALC,0x5458,INVALC, - INVALC,INVALC,INVALC,0x4A2F,INVALC,INVALC,INVALC,INVALC, - 0x5457,0x5451,0x5454,0x5456,INVALC,INVALC,0x3A26,INVALC, - INVALC,0x4A49,INVALC,INVALC,INVALC,0x5459,INVALC,0x4345, - INVALC,INVALC,0x3275,INVALC,0x3E6D,INVALC,INVALC,INVALC, - INVALC,0x545B,INVALC,0x545A,INVALC,0x3968,INVALC,0x545C, - 0x545E,0x545D,INVALC,INVALC,0x5460,INVALC,0x5455,0x5462, - INVALC,INVALC,INVALC,INVALC,0x5461,0x545F,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3B4E,0x3F51,INVALC,0x4154,0x5463, - 0x403C,0x306D,0x4764,INVALC,INVALC,INVALC,INVALC,0x445B, - INVALC,0x5465,0x5464,0x5466,0x5467,0x5468,INVALC,INVALC, - /* Block 90, Array index 0x1600 */ - INVALC,INVALC,0x5469,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A51,0x546A,INVALC,INVALC,INVALC,INVALC,0x3246, - 0x546B,INVALC,INVALC,INVALC,INVALC,0x4D3C,0x3330,INVALC, - 0x5249,0x3D48,0x423F,0x546C,0x4C6B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4C34,INVALC,INVALC,0x546E,INVALC,0x4267, - INVALC,0x4537,0x4240,0x4957,0x546F,0x5470,0x317B,INVALC, - INVALC,0x3C3A,0x5471,INVALC,INVALC,INVALC,INVALC,0x3050, - 0x5472,INVALC,INVALC,INVALC,INVALC,INVALC,0x5473,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3162,INVALC,INVALC,0x3471, - 0x4660,0x4A74,INVALC,INVALC,INVALC,INVALC,0x5477,0x4155, - 0x5476,0x3740,INVALC,INVALC,0x4B5B,0x5475,INVALC,0x4565, - 0x5479,INVALC,0x5478,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x547B,INVALC,0x547A,INVALC,INVALC,0x317C,INVALC,0x547C, - 0x3E29,0x547E,0x4325,INVALC,0x547D,INVALC,0x4A33,INVALC, - INVALC,INVALC,INVALC,0x3D77,0x455B,INVALC,INVALC,INVALC, - 0x5521,INVALC,INVALC,INVALC,INVALC,0x3925,INVALC,INVALC, - INVALC,0x5522,0x4721,0x485E,0x4C51,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4725,INVALC,INVALC,0x552B,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3538,INVALC,INVALC,0x4D45,INVALC, - INVALC,0x4C2F,INVALC,0x562C,INVALC,0x5523,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5526,INVALC,0x4245,INVALC,INVALC, - 0x4B38,INVALC,INVALC,INVALC,0x454A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5527,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4B65,INVALC,0x3A4A,INVALC,INVALC,0x3E2A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5528,INVALC, - INVALC,0x3B50,INVALC,0x3B4F,INVALC,INVALC,INVALC,INVALC, - 0x3039,0x3848,INVALC,0x402B,0x3051,INVALC,INVALC,INVALC, - INVALC,0x552C,0x552D,INVALC,0x552A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3138,0x342F,INVALC, - 0x5529,INVALC,0x4C45,0x4931,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3028,INVALC, - INVALC,INVALC,INVALC,0x3079,INVALC,INVALC,INVALC,0x3B51, - /* Block 91, Array index 0x1700 */ - INVALC,0x3052,INVALC,0x3023,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5532,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5530,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4C3C,INVALC,0x5533,INVALC,0x5531,INVALC,INVALC,0x552F, - 0x3F31,INVALC,INVALC,INVALC,INVALC,0x552E,INVALC,INVALC, - INVALC,0x4A5A,INVALC,INVALC,INVALC,INVALC,INVALC,0x3864, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5537,0x5538,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E2B,INVALC,INVALC,INVALC, - 0x5534,0x4F2C,INVALC,INVALC,INVALC,INVALC,0x474C,INVALC, - INVALC,0x5536,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3A27,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5539,INVALC,INVALC,INVALC,0x4958,INVALC, - INVALC,INVALC,0x553A,INVALC,0x5535,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C3B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x475E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x553B,0x4932,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x553C,0x5540,0x553D,INVALC, - INVALC,0x3247,0x553F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3C3B,INVALC,0x553E,0x3779,INVALC,INVALC,INVALC, - 0x554C,INVALC,INVALC,INVALC,INVALC,INVALC,0x5545,0x5542, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4364,INVALC,0x5541,INVALC,INVALC,0x5543,INVALC, - INVALC,0x5544,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5546,0x5547,INVALC,INVALC,INVALC,INVALC, - /* Block 92, Array index 0x1800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3472,INVALC,0x5549,0x5548,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x554A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3E6E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x554D,INVALC,0x445C,INVALC,INVALC,INVALC, - 0x3145,INVALC,0x554B,INVALC,INVALC,INVALC,0x554E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x554F,INVALC, - 0x5552,INVALC,INVALC,0x5550,INVALC,0x5551,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B52,0x5553,INVALC,INVALC,0x3926,0x5554,INVALC,0x3B7A, - 0x4238,INVALC,0x5555,0x5556,0x3B5A,0x3927,INVALC,0x4C52, - INVALC,INVALC,INVALC,0x3528,0x3849,0x5557,0x3358,INVALC, - INVALC,0x5558,INVALC,0x4239,INVALC,INVALC,INVALC,INVALC, - 0x5559,0x5623,INVALC,0x555A,INVALC,0x555B,INVALC,INVALC, - 0x555C,INVALC,0x555E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x555F,INVALC,INVALC,0x5560,INVALC,0x4270,INVALC,0x3127, - 0x3C69,0x3042,INVALC,0x4157,0x3430,0x3C35,INVALC,0x3928, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4566,INVALC,0x3D21, - 0x3431,0x4368,0x446A,0x3038,0x3539,0x4A75,INVALC,0x3C42, - INVALC,INVALC,0x3552,0x406B,0x3C3C,0x4D28,0x5561,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x355C,INVALC, - 0x3A4B,INVALC,INVALC,0x3332,0x3163,0x3E2C,0x3248,INVALC, - 0x5562,0x4D46,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D49, - INVALC,INVALC,0x3C64,0x5563,0x3473,0x4652,0x4C29,0x5564, - INVALC,0x5565,INVALC,INVALC,0x4959,INVALC,INVALC,INVALC, - 0x5567,INVALC,0x3428,0x3677,0x5566,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3432,INVALC,0x3F32,0x556B,0x3B21, - INVALC,0x3249,0x556A,INVALC,0x5568,0x556C,0x5569,0x472B, - 0x5C4D,0x3F33,INVALC,0x556D,INVALC,INVALC,0x4E40,INVALC, - 0x556E,INVALC,INVALC,0x5570,INVALC,0x437E,0x556F,INVALC, - 0x4023,INVALC,0x3B7B,INVALC,INVALC,INVALC,0x4250,0x3C77, - /* Block 93, Array index 0x1900 */ - INVALC,0x4975,0x406C,INVALC,0x3C4D,0x5571,0x3E2D,0x5572, - 0x5573,0x3053,0x423A,0x3F52,INVALC,0x5574,0x4633,0x3E2E, - INVALC,0x3E2F,INVALC,0x5575,INVALC,INVALC,0x406D,INVALC, - INVALC,INVALC,0x3E30,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5576,INVALC,0x5577,INVALC,0x4C60,INVALC,INVALC,INVALC, - 0x5578,INVALC,INVALC,INVALC,INVALC,0x3646,INVALC,INVALC, - INVALC,0x3D22,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5579,0x557A,0x3C5C,0x3F2C,0x4674,0x3F54,0x4878,0x4722, - 0x3649,0x557B,INVALC,INVALC,INVALC,0x356F,0x557C,INVALC, - 0x367E,INVALC,0x464F,0x3230,INVALC,0x3B53,0x557D,0x5622, - 0x5621,0x367D,INVALC,0x557E,INVALC,0x4538,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4230,INVALC, - 0x454B,0x3C48,INVALC,INVALC,0x4158,0x4D7A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5624,INVALC,0x5625,0x4656, - INVALC,0x3B33,INVALC,INVALC,INVALC,INVALC,0x5627,INVALC, - INVALC,0x5628,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5629,INVALC,INVALC,INVALC, - 0x3474,0x562A,INVALC,INVALC,0x562B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x322C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x413B,0x3464,INVALC,0x562D,0x4C28,INVALC,INVALC,INVALC, - INVALC,0x4252,INVALC,0x3359,INVALC,INVALC,0x562F,0x5631, - 0x345F,INVALC,INVALC,0x562E,0x5630,INVALC,0x5633,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5632,INVALC,0x5634, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5635,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x463D,0x362E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3265,0x5636,0x563B,INVALC,INVALC,0x5639,INVALC,0x4A77, - 0x4A76,INVALC,INVALC,INVALC,INVALC,INVALC,0x4567,INVALC, - INVALC,INVALC,0x5638,0x3D54,INVALC,0x5637,INVALC,INVALC, - /* Block 94, Array index 0x1A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3F72, - INVALC,INVALC,INVALC,0x563C,INVALC,INVALC,0x3A6A,INVALC, - INVALC,0x5642,INVALC,INVALC,0x5643,0x563D,0x3333,0x563E, - 0x5647,0x5646,0x5645,0x5641,INVALC,INVALC,INVALC,0x5640, - INVALC,INVALC,0x5644,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A78,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x564B,0x5648,INVALC,0x564A,INVALC, - 0x4D72,INVALC,0x5649,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x563F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3F73,INVALC,INVALC,0x564C,INVALC,INVALC,0x3A37, - INVALC,INVALC,INVALC,0x564D,INVALC,INVALC,0x564E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5651,INVALC,0x5650,INVALC,INVALC,0x564F, - INVALC,INVALC,INVALC,0x4568,0x563A,INVALC,INVALC,INVALC, - 0x5657,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5653,INVALC,INVALC, - INVALC,INVALC,0x5652,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5654,INVALC,0x5655,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5658, - INVALC,INVALC,0x4E66,INVALC,0x5659,0x5656,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x565A,INVALC,INVALC,0x3460,0x565B,INVALC,INVALC, - INVALC,INVALC,0x565D,0x565C,INVALC,INVALC,0x565E,INVALC, - INVALC,INVALC,INVALC,0x565F,INVALC,0x406E,0x3D23,INVALC, - INVALC,0x3D64,INVALC,0x4163,INVALC,0x3929,0x3A38,0x392A, - 0x3570,INVALC,INVALC,0x5660,INVALC,INVALC,0x3A39,INVALC, - INVALC,0x384A,0x5661,0x4C26,0x4743,0x5662,INVALC,0x392B, - INVALC,INVALC,INVALC,0x342C,INVALC,0x4327,0x3652,INVALC, - /* Block 95, Array index 0x1B00 */ - INVALC,INVALC,0x3B54,0x495B,INVALC,INVALC,0x4841,INVALC, - INVALC,INVALC,INVALC,0x5663,0x3475,INVALC,INVALC,INVALC, - INVALC,0x5666,INVALC,INVALC,INVALC,INVALC,0x4421,INVALC, - INVALC,0x5665,0x5664,0x5667,INVALC,0x446B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3F63,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3B55,INVALC,0x404A,INVALC,0x4253, - 0x3522,INVALC,INVALC,0x4422,INVALC,INVALC,0x5668,0x5669, - 0x3E6F,INVALC,INVALC,INVALC,INVALC,0x4B39,INVALC,INVALC, - 0x566C,INVALC,INVALC,0x566B,0x566A,0x497D,INVALC,0x5673, - INVALC,INVALC,INVALC,INVALC,0x4B5A,INVALC,0x566D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x566F,0x4B6B,INVALC,0x566E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5670, - INVALC,0x4828,0x5671,0x4A3E,0x5672,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3433,0x4A3F,0x472F,0x5674,0x5675,INVALC, - 0x392C,0x3434,0x5676,0x3838,0x4D44,0x4D29,0x3476,0x5678, - INVALC,0x4423,INVALC,0x392D,0x3E31,INVALC,INVALC,0x485F, - INVALC,INVALC,0x3E32,INVALC,INVALC,INVALC,INVALC,0x3D78, - INVALC,INVALC,INVALC,INVALC,INVALC,0x446C,0x4A79,0x4539, - INVALC,INVALC,0x392E,INVALC,0x495C,INVALC,INVALC,INVALC, - 0x5679,INVALC,INVALC,INVALC,INVALC,INVALC,0x4559,0x3A42, - INVALC,INVALC,INVALC,0x384B,INVALC,0x446D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3043,0x3D6E,0x392F, - 0x4D47,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x567A,0x567B,0x4751,INVALC,INVALC,INVALC,INVALC, - 0x567C,0x4E77,0x4F2D,INVALC,INVALC,INVALC,INVALC,0x567E, - 0x567D,INVALC,INVALC,0x3347,INVALC,INVALC,0x5721,INVALC, - INVALC,INVALC,0x5724,0x5725,INVALC,0x5723,INVALC,0x4940, - 0x3E33,0x5727,0x5726,0x5722,INVALC,INVALC,INVALC,INVALC, - 0x5728,0x5729,INVALC,INVALC,0x572A,INVALC,INVALC,INVALC, - 0x572D,0x572B,INVALC,0x572C,0x572E,INVALC,0x3164,0x446E, - 0x572F,INVALC,0x377A,0x3276,0x4736,INVALC,0x5730,0x467B, - /* Block 96, Array index 0x1C00 */ - INVALC,0x4A5B,INVALC,0x5731,0x4F2E,INVALC,INVALC,INVALC, - INVALC,0x5732,0x4A40,0x5735,0x5021,0x5031,INVALC,0x3C30, - 0x4675,0x5736,INVALC,0x355D,0x4424,0x307A,0x5737,0x4A26, - 0x3930,INVALC,INVALC,0x4350,INVALC,INVALC,INVALC,0x446F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4C6F,0x3839,0x384C, - INVALC,0x5738,INVALC,INVALC,INVALC,0x5739,INVALC,0x573F, - INVALC,0x3C65,INVALC,INVALC,INVALC,0x4425,INVALC,0x362F, - 0x573A,INVALC,INVALC,INVALC,0x492B,INVALC,0x4346,INVALC, - INVALC,0x573B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x573C,INVALC,0x3630,INVALC,0x573D,INVALC,0x573E,INVALC, - INVALC,0x5740,INVALC,0x4576,INVALC,INVALC,0x5741,0x5742, - INVALC,0x5743,INVALC,INVALC,0x5734,0x5733,INVALC,INVALC, - INVALC,0x5744,0x3741,INVALC,INVALC,INVALC,0x4927,INVALC, - INVALC,0x3A4C,0x4937,0x4426,0x494B,0x5745,INVALC,INVALC, - 0x3E34,0x3146,INVALC,0x5746,INVALC,INVALC,INVALC,0x5747, - INVALC,0x4C72,INVALC,INVALC,0x4860,INVALC,INVALC,0x574A, - 0x317D,0x402C,0x5749,0x5748,0x3742,0x4254,INVALC,0x574E, - 0x574C,INVALC,0x574B,0x4E27,0x3865,INVALC,INVALC,INVALC, - 0x3D79,0x574D,0x454C,0x3D3E,INVALC,INVALC,INVALC,0x4640, - 0x5751,0x5750,INVALC,INVALC,INVALC,INVALC,0x574F,INVALC, - 0x5752,0x3866,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5753,0x497C,0x3D5B,INVALC,INVALC,0x5754,0x4879,INVALC, - INVALC,INVALC,INVALC,0x4641,0x4427,INVALC,INVALC,INVALC, - INVALC,0x4530,INVALC,INVALC,0x5755,0x352B,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3F34,INVALC,0x492C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3477,0x4726,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5756,0x3B56, - 0x4B3A,0x4B3B,INVALC,INVALC,0x317E,0x575B,INVALC,INVALC, - 0x4369,INVALC,INVALC,INVALC,0x5758,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3277,INVALC,INVALC,INVALC,INVALC, - 0x582D,0x575A,INVALC,INVALC,INVALC,0x4730,INVALC,INVALC, - 0x5759,INVALC,INVALC,0x5757,INVALC,0x397A,INVALC,0x575D, - /* Block 97, Array index 0x1D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5763,0x5769, - 0x5761,INVALC,0x455C,INVALC,INVALC,0x5766,0x495D,INVALC, - INVALC,0x5760,INVALC,0x5765,0x4E67,0x3B57,INVALC,INVALC, - 0x4255,0x575E,INVALC,INVALC,INVALC,0x355E,0x5768,0x402D, - 0x3165,0x5762,0x3278,0x5767,INVALC,INVALC,INVALC,0x3631, - INVALC,0x5764,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x576A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x576C,0x5776,0x5774,INVALC,INVALC,0x5771,INVALC, - INVALC,INVALC,0x5770,0x4E78,INVALC,0x5772,INVALC,INVALC, - 0x3632,INVALC,0x3931,INVALC,INVALC,0x3D7A,INVALC,INVALC, - INVALC,0x5779,0x576B,INVALC,INVALC,INVALC,INVALC,0x576F, - 0x575F,INVALC,0x327A,0x5773,0x5775,0x4351,INVALC,INVALC, - 0x3A28,0x3238,0x576D,0x5778,0x5777,0x3633,INVALC,0x4229, - 0x3366,INVALC,INVALC,INVALC,INVALC,0x3743,INVALC,0x576E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x577A,INVALC,0x577D,0x5821,INVALC,INVALC,INVALC, - INVALC,0x3C3D,INVALC,0x5827,0x4470,0x577B,INVALC,INVALC, - INVALC,INVALC,0x5825,INVALC,0x3279,INVALC,0x5823,0x5824, - INVALC,INVALC,0x577E,0x5822,INVALC,INVALC,INVALC,0x3867, - 0x4D2A,INVALC,INVALC,0x3435,INVALC,INVALC,0x3159,0x5826, - INVALC,0x473A,0x302D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4861,0x575C,0x582C,0x5830,0x4C65,INVALC, - 0x5829,INVALC,INVALC,INVALC,0x4569,0x582E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3E70,0x582F,0x4657, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F47,INVALC,0x582B,INVALC,INVALC,INVALC,INVALC, - 0x5831,INVALC,0x397B,INVALC,0x404B,INVALC,INVALC,0x3054, - 0x582A,0x5828,INVALC,0x415A,INVALC,INVALC,INVALC,0x577C, - 0x3B34,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4246,0x583D,INVALC,0x415B,0x5838,INVALC,0x5835,0x5836, - INVALC,0x3C66,0x5839,0x583C,INVALC,INVALC,INVALC,INVALC, - /* Block 98, Array index 0x1E00 */ - 0x5837,0x3D25,INVALC,0x583A,INVALC,INVALC,0x5834,INVALC, - 0x4C7C,0x4C7B,INVALC,INVALC,INVALC,0x583E,0x583F,0x3055, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5833,INVALC,INVALC, - INVALC,INVALC,0x3672,0x3026,INVALC,INVALC,INVALC,0x3436, - INVALC,0x583B,INVALC,INVALC,INVALC,INVALC,INVALC,0x5843, - 0x5842,INVALC,INVALC,INVALC,0x5847,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5848,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5846,0x5849,0x5841,0x5845, - INVALC,INVALC,0x584A,INVALC,0x584B,INVALC,INVALC,0x5840, - 0x3B7C,INVALC,0x5844,0x4256,0x3932,0x5832,0x3F35,INVALC, - INVALC,INVALC,INVALC,0x5858,INVALC,0x4A69,INVALC,INVALC, - 0x584E,0x584F,0x5850,INVALC,INVALC,0x5857,INVALC,0x5856, - INVALC,INVALC,0x4B7D,0x3437,INVALC,0x5854,INVALC,0x3745, - 0x3334,INVALC,INVALC,0x5851,INVALC,INVALC,0x4E38,0x5853, - 0x3056,0x5855,INVALC,0x584C,0x5852,0x5859,0x3744,0x584D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D5D,INVALC, - INVALC,INVALC,0x4D2B,INVALC,INVALC,INVALC,INVALC,0x585C, - INVALC,INVALC,0x5860,INVALC,INVALC,INVALC,0x417E,INVALC, - 0x4E79,0x5861,INVALC,INVALC,0x585E,INVALC,0x585B,INVALC, - INVALC,0x585A,0x585F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4A30,INVALC,INVALC,0x4634, - INVALC,0x3746,INVALC,0x5862,0x585D,INVALC,0x5863,INVALC, - INVALC,INVALC,0x377B,INVALC,INVALC,INVALC,0x3231,INVALC, - INVALC,INVALC,0x586B,INVALC,INVALC,INVALC,0x3438,INVALC, - INVALC,INVALC,INVALC,0x5869,INVALC,INVALC,0x586A,0x3A29, - 0x5868,0x5866,0x5865,0x586C,0x5864,0x586E,INVALC,INVALC, - 0x327B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5870,INVALC,INVALC,0x586F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4428,INVALC,0x5873,INVALC,0x5871,0x5867, - 0x377C,INVALC,0x5872,INVALC,0x5876,0x5875,0x5877,0x5874, - /* Block 99, Array index 0x1F00 */ - 0x5878,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5879,0x587A,0x4A6A,INVALC,0x587C,0x587B,0x3D3F,INVALC, - 0x402E,0x3266,0x327C,INVALC,0x587D,INVALC,0x303F,INVALC, - INVALC,INVALC,0x404C,0x587E,INVALC,0x6C43,0x5921,0x3761, - INVALC,0x5922,INVALC,INVALC,INVALC,INVALC,0x406F,INVALC, - INVALC,INVALC,0x5923,INVALC,INVALC,INVALC,0x5924,0x353A, - 0x5925,INVALC,0x5926,0x5927,0x4257,INVALC,INVALC,INVALC, - 0x384D,INVALC,INVALC,0x4C61,INVALC,INVALC,INVALC,0x4B3C, - 0x3D6A,0x5928,INVALC,INVALC,INVALC,INVALC,INVALC,0x4070, - 0x6E3D,0x4862,INVALC,0x3C6A,INVALC,0x3A4D,0x5929,INVALC, - INVALC,INVALC,INVALC,0x4247,INVALC,0x4A27,INVALC,INVALC, - 0x4271,INVALC,INVALC,0x592C,INVALC,INVALC,0x592A,INVALC, - 0x592D,INVALC,INVALC,0x592B,INVALC,INVALC,INVALC,INVALC, - 0x592E,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A31,INVALC, - INVALC,0x3037,INVALC,INVALC,INVALC,INVALC,0x495E,INVALC, - INVALC,0x4863,INVALC,INVALC,0x592F,INVALC,0x5932,0x3E35, - 0x353B,INVALC,0x5930,0x5937,0x3E36,INVALC,INVALC,INVALC, - INVALC,0x5931,0x4744,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D5E,0x5933,0x5934,0x5938,0x456A,0x5935,0x3933, - 0x405E,INVALC,INVALC,0x5946,0x4834,INVALC,0x4272,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4864,0x5A2D,INVALC,INVALC,INVALC, - INVALC,0x4A7A,INVALC,INVALC,INVALC,0x4471,INVALC,INVALC, - INVALC,0x4B75,INVALC,0x593B,0x3221,0x436A,INVALC,INVALC, - INVALC,INVALC,0x5944,INVALC,INVALC,0x4334,0x593E,0x5945, - 0x5940,0x5947,0x5943,INVALC,0x5942,0x476F,INVALC,0x593C, - 0x327D,0x593A,0x3571,0x4273,0x5936,INVALC,INVALC,0x5939, - 0x3934,0x405B,INVALC,0x3E37,0x5941,0x4752,INVALC,INVALC, - 0x3572,0x3348,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3367,0x3F21,0x5949,0x594E, - INVALC,0x594A,INVALC,0x377D,INVALC,0x594F,0x3B22,0x3969, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D26,0x593D, - /* Block 100, Array index 0x2000 */ - INVALC,0x3B7D,0x594C,INVALC,INVALC,INVALC,INVALC,0x3B58, - 0x594D,0x3044,INVALC,INVALC,0x5948,INVALC,INVALC,INVALC, - INVALC,0x4429,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3573,INVALC,INVALC,INVALC,INVALC,INVALC,0x3634, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x594B, - 0x3027,INVALC,INVALC,0x3A43,INVALC,INVALC,INVALC,0x3F36, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4472,INVALC,INVALC,0x4854,0x5951,0x415E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x422A,INVALC,INVALC,0x3B2B,0x5952,INVALC,0x5954, - 0x5950,INVALC,INVALC,INVALC,INVALC,0x4A61,INVALC,0x443D, - INVALC,INVALC,INVALC,INVALC,0x415C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A7B, - 0x3C4E,0x5960,INVALC,0x595F,INVALC,INVALC,0x3F78,INVALC, - INVALC,INVALC,0x377E,INVALC,INVALC,INVALC,0x5959,0x3E39, - INVALC,INVALC,0x4668,0x4731,INVALC,INVALC,INVALC,INVALC, - 0x5957,INVALC,INVALC,0x415D,INVALC,INVALC,INVALC,INVALC, - 0x3C78,0x595C,INVALC,INVALC,0x3E38,INVALC,0x5956,0x595B, - INVALC,INVALC,0x4753,INVALC,INVALC,INVALC,0x5955,INVALC, - 0x3721,INVALC,INVALC,0x335D,INVALC,INVALC,INVALC,0x595D, - 0x4E2B,0x3A4E,0x4335,0x595A,INVALC,0x405C,INVALC,0x3935, - 0x3F64,0x3166,0x413C,0x5958,0x3545,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3747,INVALC,0x444F,0x595E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x415F,INVALC,INVALC,0x5961,INVALC, - 0x5963,INVALC,INVALC,0x4237,0x5969,INVALC,0x5964,INVALC, - INVALC,0x5966,INVALC,INVALC,INVALC,INVALC,INVALC,0x4941, - 0x4473,INVALC,0x5967,INVALC,INVALC,INVALC,0x4D2C,INVALC, - INVALC,INVALC,0x4D48,0x3439,INVALC,INVALC,INVALC,INVALC, - INVALC,0x302E,INVALC,0x5965,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5962,INVALC,INVALC,INVALC,INVALC,0x3478,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3167,INVALC,0x5968,INVALC, - INVALC,INVALC,0x4D49,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 101, Array index 0x2100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x596C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x423B,INVALC,0x5973, - INVALC,INVALC,INVALC,0x596D,INVALC,INVALC,0x596A,0x5971, - INVALC,INVALC,INVALC,INVALC,0x5953,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x596E,INVALC, - 0x5972,INVALC,INVALC,INVALC,0x4842,0x456B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x596B,INVALC,0x596F,INVALC, - INVALC,INVALC,0x3748,INVALC,INVALC,INVALC,0x3A71,INVALC, - INVALC,INVALC,0x405D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5977,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4526,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5974, - INVALC,0x4B60,INVALC,INVALC,INVALC,INVALC,INVALC,0x5975, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5976,INVALC, - 0x4C4E,INVALC,0x4022,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3762,INVALC,INVALC,INVALC,INVALC, - 0x597D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3B35,0x597A,INVALC,0x5979,INVALC,INVALC, - INVALC,INVALC,0x4732,INVALC,INVALC,INVALC,0x4635,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4531,0x597B,INVALC,INVALC, - INVALC,0x597C,INVALC,0x496F,INVALC,0x4745,0x3B23,INVALC, - 0x4071,INVALC,0x4B50,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3349,INVALC,0x5A25,0x597E,INVALC,INVALC,INVALC, - INVALC,0x4D4A,0x5A27,INVALC,INVALC,0x5A23,INVALC,0x5A24, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4160,INVALC,INVALC, - INVALC,INVALC,0x5A22,INVALC,0x593F,INVALC,INVALC,INVALC, - 0x5A26,INVALC,0x5A21,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5A2B,0x5A2C,0x4527,0x5A2E,INVALC,INVALC,0x3B24,0x5A29, - INVALC,INVALC,INVALC,INVALC,0x353C,INVALC,INVALC,0x5A2F, - INVALC,0x5A28,0x5A33,INVALC,0x5A32,INVALC,0x5A31,INVALC, - INVALC,INVALC,0x5A34,INVALC,INVALC,0x5A36,0x3E71,INVALC, - /* Block 102, Array index 0x2200 */ - 0x5A35,INVALC,INVALC,INVALC,INVALC,0x5A39,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5A37,INVALC,INVALC,INVALC,0x5A38,0x5970,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5A3B,0x5A3A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5978,0x5A3C,0x5A30,INVALC,INVALC,0x3B59, - INVALC,INVALC,INVALC,INVALC,0x5A3D,0x5A3E,0x5A40,0x5A3F, - 0x5A41,0x327E,INVALC,0x3936,INVALC,INVALC,0x4A7C,0x402F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x384E,INVALC,INVALC, - 0x5A43,INVALC,INVALC,INVALC,INVALC,0x5A46,INVALC,0x4952, - INVALC,0x355F,INVALC,INVALC,INVALC,0x5A45,0x5A44,0x4754, - 0x5A47,0x3635,INVALC,INVALC,INVALC,0x5A49,0x5A48,INVALC, - INVALC,INVALC,0x343A,0x3B36,INVALC,INVALC,0x4658,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3749,INVALC,INVALC,INVALC, - 0x3F74,INVALC,0x5A4A,INVALC,0x4030,0x4528,INVALC,0x495F, - 0x5A4B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5A4C,0x5A4D,INVALC,INVALC,INVALC,0x4A38, - 0x555D,0x4046,INVALC,INVALC,0x494C,INVALC,0x3A58,INVALC, - 0x4865,0x4843,INVALC,INVALC,INVALC,INVALC,INVALC,0x454D, - INVALC,0x4E41,INVALC,0x5A4F,0x3C50,INVALC,INVALC,0x5A50, - INVALC,0x3036,INVALC,INVALC,0x3654,0x404D,INVALC,0x4960, - INVALC,INVALC,INVALC,0x5A51,0x3B42,0x4347,INVALC,0x3B5B, - 0x3F37,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A52, - INVALC,0x4A7D,INVALC,INVALC,0x3177,0x3B5C,INVALC,INVALC, - INVALC,0x5A55,INVALC,0x5A53,0x5A56,0x4E39,0x5A54,INVALC, - INVALC,INVALC,INVALC,0x407B,0x5A57,INVALC,INVALC,0x4232, - INVALC,INVALC,0x5A58,INVALC,INVALC,INVALC,INVALC,0x347A, - INVALC,0x5A5A,INVALC,0x5A59,INVALC,INVALC,INVALC,INVALC, - 0x5A5B,0x5A5C,0x347B,INVALC,INVALC,0x467C,0x4336,0x356C, - 0x3B5D,0x4161,INVALC,INVALC,0x3D5C,0x3030,INVALC,INVALC, - INVALC,0x5A5D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3222,0x5A61,INVALC,INVALC,INVALC,INVALC, - /* Block 103, Array index 0x2300 */ - INVALC,INVALC,0x3937,0x5A60,INVALC,INVALC,0x3A2B,0x3E3A, - INVALC,INVALC,0x5A5F,INVALC,0x3E3B,INVALC,0x4C40,0x3A2A, - INVALC,INVALC,INVALC,0x3057,0x404E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5A66,INVALC,INVALC,0x4031, - 0x3147,INVALC,INVALC,INVALC,INVALC,0x3D55,INVALC,0x4B66, - 0x3A72,INVALC,INVALC,INVALC,INVALC,0x3E3C,INVALC,0x4027, - INVALC,INVALC,INVALC,INVALC,0x5A65,0x5A63,0x5A64,INVALC, - INVALC,INVALC,INVALC,INVALC,0x436B,INVALC,INVALC,0x5B26, - INVALC,0x5A6A,0x3B7E,0x3938,0x5A68,INVALC,INVALC,INVALC, - INVALC,0x5A69,INVALC,0x3F38,INVALC,INVALC,INVALC,0x5A67, - INVALC,INVALC,0x3B2F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5A6C,0x5A6B,0x5A70, - INVALC,INVALC,0x5A71,INVALC,0x5A6D,INVALC,0x3322,0x5A6E, - 0x5A6F,0x4855,INVALC,INVALC,INVALC,INVALC,0x4961,0x374A, - 0x5A72,INVALC,INVALC,INVALC,0x4032,INVALC,0x3E3D,INVALC, - INVALC,INVALC,0x4352,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3647,INVALC,0x5A73,0x5A77,INVALC,INVALC,0x324B, - 0x5A74,0x5A76,INVALC,INVALC,INVALC,INVALC,0x5A75,INVALC, - INVALC,0x3D6B,INVALC,INVALC,INVALC,INVALC,0x4348,0x3045, - 0x5A78,INVALC,INVALC,INVALC,INVALC,0x5A79,INVALC,INVALC, - INVALC,INVALC,0x442A,INVALC,INVALC,INVALC,0x4E71,INVALC, - INVALC,INVALC,INVALC,0x3B43,INVALC,INVALC,0x4A6B,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4B3D,INVALC,INVALC,INVALC, - 0x5B22,0x5A7B,INVALC,INVALC,0x5A7E,INVALC,0x5A7D,INVALC, - INVALC,0x5A7A,INVALC,INVALC,0x5B21,INVALC,INVALC,0x465E, - INVALC,0x5A7C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B23,INVALC, - INVALC,0x3D6C,0x5B24,INVALC,0x4D4B,0x4778,INVALC,INVALC, - 0x5B25,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B27,INVALC, - INVALC,0x5B28,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5B29,INVALC,0x364A,0x3148,0x3939,0x5B2A,INVALC,0x5B2B, - 0x3D71,0x4162,INVALC,INVALC,0x5258,0x413E,0x413D,0x4258, - /* Block 104, Array index 0x2400 */ - 0x3A47,INVALC,INVALC,0x5072,INVALC,INVALC,INVALC,INVALC, - 0x376E,0x4D2D,INVALC,0x4A7E,INVALC,0x497E,INVALC,0x5B2C, - INVALC,INVALC,INVALC,INVALC,0x3A73,0x443F,0x5B2D,0x4F2F, - INVALC,INVALC,INVALC,0x4B3E,INVALC,0x442B,0x5B2E,0x347C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B2F,0x5B30, - 0x4C5A,INVALC,0x4C24,0x4B76,0x4B5C,0x3B25,0x5B32,INVALC, - INVALC,0x3C6B,INVALC,INVALC,0x4B51,INVALC,0x5B34,0x5B37, - 0x5B36,INVALC,0x3479,INVALC,INVALC,0x3560,INVALC,0x5B33, - INVALC,0x5B35,INVALC,INVALC,INVALC,INVALC,0x5B38,INVALC, - INVALC,0x3F79,INVALC,INVALC,INVALC,INVALC,0x4D7B,0x3049, - 0x3A60,0x423C,INVALC,0x3C5D,INVALC,INVALC,0x3E73,INVALC, - INVALC,0x5B3B,INVALC,INVALC,0x454E,INVALC,0x5B39,0x422B, - 0x5B3A,0x3E72,0x4C5D,0x5B3C,0x5B3D,0x4D68,INVALC,INVALC, - INVALC,INVALC,0x5B42,INVALC,INVALC,0x393A,INVALC,0x4755, - 0x5B3F,0x456C,0x5A5E,0x5A62,INVALC,0x354F,INVALC,0x4747, - INVALC,INVALC,INVALC,INVALC,0x5B41,INVALC,0x3E3E,0x4844, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5B47,INVALC,0x487A, - INVALC,0x5B3E,INVALC,0x5B44,0x5B43,INVALC,INVALC,INVALC, - 0x404F,INVALC,INVALC,INVALC,INVALC,0x4B6D,INVALC,0x4E53, - INVALC,INVALC,0x4B67,INVALC,0x324C,0x3B5E,INVALC,INVALC, - 0x4F48,0x5B46,0x3F75,INVALC,INVALC,INVALC,0x5B45,INVALC, - INVALC,0x5B40,INVALC,INVALC,INVALC,INVALC,INVALC,0x384F, - INVALC,INVALC,INVALC,0x5B4C,0x5B4A,INVALC,0x324D,0x5B48, - 0x5B4E,0x5B54,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4248,INVALC,INVALC,0x4A41,INVALC,0x5B56,INVALC, - INVALC,INVALC,0x4922,INVALC,INVALC,INVALC,0x5B55,0x4770, - 0x4B3F,0x343B,INVALC,0x4077,0x3D40,INVALC,INVALC,INVALC, - 0x4453,INVALC,0x4D2E,INVALC,INVALC,0x5B51,0x5B50,INVALC, - INVALC,INVALC,0x5B52,INVALC,0x5B4F,INVALC,INVALC,0x5B57, - INVALC,0x5B4D,INVALC,INVALC,0x5B4B,INVALC,0x5B53,0x5B49, - INVALC,0x436C,INVALC,0x4C78,0x3C46,0x3A74,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3A3A,INVALC,INVALC,0x4B6F,0x3341, - /* Block 105, Array index 0x2500 */ - INVALC,INVALC,0x444E,0x464A,0x3149,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4072,INVALC,INVALC,0x4034,0x372A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B59,INVALC, - INVALC,0x393B,0x337C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5B5B,0x3374,0x5B61,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5B5E,INVALC,0x4073,INVALC,INVALC,INVALC, - 0x334B,0x3A2C,INVALC,INVALC,0x334A,0x3A4F,INVALC,INVALC, - 0x5B5C,0x3765,0x374B,0x456D,INVALC,INVALC,0x5B5A,INVALC, - 0x3046,INVALC,INVALC,INVALC,INVALC,0x5B5D,0x5B5F,INVALC, - 0x364D,0x372C,INVALC,0x343C,0x354B,INVALC,INVALC,INVALC, - INVALC,0x5B62,INVALC,INVALC,0x3A79,0x4B71,INVALC,0x3B37, - INVALC,INVALC,INVALC,0x5B63,INVALC,INVALC,INVALC,0x4930, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5B6F,INVALC,0x3233,0x5B64, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B75,0x5B65, - INVALC,0x4E42,INVALC,0x5B6C,INVALC,0x475F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5B74,INVALC,0x5B67, - INVALC,INVALC,INVALC,0x3034,0x5B69,INVALC,INVALC,0x393C, - INVALC,INVALC,INVALC,0x5B6B,INVALC,0x5B6A,INVALC,0x5B66, - 0x5B71,INVALC,0x3E3F,INVALC,INVALC,INVALC,0x546D,0x3868, - 0x4D7C,INVALC,INVALC,INVALC,INVALC,0x5B68,INVALC,0x4474, - 0x3323,0x3A2D,INVALC,0x5B60,INVALC,0x5B70,0x3361,INVALC, - INVALC,0x5B6E,0x5B72,INVALC,0x456E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x347E,INVALC,0x5C32,INVALC, - INVALC,0x4C49,0x5B77,0x347D,INVALC,0x5B7E,INVALC,INVALC, - INVALC,INVALC,0x4B40,INVALC,0x5C21,0x5C23,INVALC,0x5C27, - 0x5B79,INVALC,0x432A,INVALC,INVALC,INVALC,INVALC,0x456F, - 0x5C2B,0x5B7C,INVALC,0x5C28,INVALC,INVALC,INVALC,0x5C22, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3F39,0x5C2C, - INVALC,INVALC,0x4033,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C2A,0x343D,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 106, Array index 0x2600 */ - 0x4F50,0x5B76,INVALC,INVALC,0x5C26,0x3058,INVALC,INVALC, - 0x5B78,INVALC,INVALC,0x4C3A,0x5B7D,0x3F22,0x4447,0x5B73, - INVALC,INVALC,0x5C25,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3F7A,0x5C2F,0x3371,0x3821,INVALC,INVALC,INVALC, - INVALC,0x5C31,0x5B7A,0x5C30,INVALC,0x5C29,0x5B7B,INVALC, - 0x5C2D,INVALC,0x5C2E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5C3F,INVALC,INVALC,INVALC,0x464E,INVALC,0x5C24,INVALC, - INVALC,0x5C3B,INVALC,INVALC,INVALC,0x5C3D,INVALC,0x4458, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D4C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4976,0x5C38,0x424A,INVALC,INVALC, - INVALC,0x5C3E,0x413F,INVALC,0x5C35,0x5C42,0x5C41,INVALC, - 0x466F,0x5C40,0x466A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5C44,0x5C37,INVALC,0x3648,0x5C3A,0x3D5D, - INVALC,INVALC,INVALC,0x4760,0x5C3C,0x364B,INVALC,0x5C34, - 0x5C36,0x5C33,INVALC,INVALC,0x4F30,0x335A,0x5C39,INVALC, - INVALC,0x5C43,0x3335,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3A67,INVALC,INVALC,INVALC,0x315D,INVALC, - INVALC,0x5C54,INVALC,INVALC,0x4F31,0x5C57,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3F3A,0x5C56,INVALC,INVALC,INVALC, - 0x5C55,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C52, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C46,INVALC, - INVALC,0x5C63,0x5C45,INVALC,0x5C58,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C50,INVALC,INVALC,0x5C4B,0x5C48, - INVALC,0x5C49,INVALC,0x5C51,INVALC,INVALC,INVALC,0x7422, - INVALC,INVALC,0x5C4E,0x393D,0x4448,0x4164,0x5C4C,INVALC, - 0x5C47,INVALC,INVALC,0x5C4A,INVALC,INVALC,INVALC,INVALC, - 0x4D4D,0x4B6A,INVALC,INVALC,INVALC,0x5C4F,0x5C59,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C61, - 0x5C5A,INVALC,INVALC,0x5C67,INVALC,0x5C65,INVALC,INVALC, - INVALC,INVALC,0x5C60,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C5F,INVALC,0x4450,INVALC,0x4165,INVALC,0x5C5D, - /* Block 107, Array index 0x2700 */ - INVALC,INVALC,0x5C5B,INVALC,INVALC,0x5C62,INVALC,INVALC, - INVALC,INVALC,0x5C68,0x4875,0x5C6E,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5C69,0x5C6C,0x5C66,INVALC,INVALC,0x4374, - INVALC,0x4938,INVALC,0x5C5C,INVALC,INVALC,0x5C64,0x3E40, - INVALC,0x4C4F,0x5C78,0x5C6B,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3822,0x3223,0x335F,INVALC,INVALC,0x5C53,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3E41,0x5C70,INVALC, - 0x5C77,0x3C79,0x3372,INVALC,INVALC,0x432E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5C6D,INVALC,INVALC,0x5C72, - 0x5C76,INVALC,INVALC,0x3636,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x354C,0x5C74,INVALC,INVALC,INVALC,INVALC,INVALC,0x3521, - INVALC,0x464B,0x5C73,INVALC,INVALC,INVALC,0x5C75,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5C6F,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5C71,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3360, - 0x4349,INVALC,INVALC,INVALC,0x5C7C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5C7A,0x3869,INVALC, - 0x5C79,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D21, - INVALC,INVALC,INVALC,INVALC,0x5B58,INVALC,INVALC,INVALC, - 0x5C7B,INVALC,0x5C7D,0x5C7E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D2C,INVALC,0x5D28,INVALC,0x5B6D,INVALC, - INVALC,INVALC,INVALC,0x5D27,INVALC,INVALC,INVALC,INVALC, - 0x5D26,INVALC,INVALC,0x5D23,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C6A,0x5D25,0x5D24,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D2A,INVALC,0x4F26,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D2D,0x367B,INVALC,INVALC,0x5D29,0x5D2B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4827,INVALC,0x5D2E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D32,0x5D2F,INVALC,INVALC,INVALC,INVALC, - /* Block 108, Array index 0x2800 */ - INVALC,INVALC,INVALC,INVALC,0x4D73,0x5D30,INVALC,INVALC, - INVALC,INVALC,0x5C5E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D33,INVALC,INVALC,INVALC,0x5D34,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3135,INVALC,0x5D36, - 0x3767,0x3C21,INVALC,0x3655,INVALC,INVALC,INVALC,0x3224, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D5F,INVALC,INVALC,INVALC,INVALC,0x5D38, - 0x5D37,0x5D3A,0x353D,INVALC,INVALC,0x3656,0x343E,INVALC, - INVALC,INVALC,INVALC,0x5D3D,INVALC,INVALC,INVALC,0x5D3C, - INVALC,0x5D3E,INVALC,INVALC,0x324E,INVALC,0x4337,INVALC, - 0x5D3F,INVALC,INVALC,0x343F,0x5D41,INVALC,INVALC,INVALC, - INVALC,0x5D40,INVALC,0x5D42,INVALC,INVALC,INVALC,0x5D43, - INVALC,0x5D44,0x3B5F,0x4035,0x3A21,INVALC,0x4970,INVALC, - INVALC,0x4A62,0x4F44,INVALC,INVALC,INVALC,INVALC,0x3B75, - INVALC,INVALC,INVALC,0x3A50,0x4E72,INVALC,INVALC,INVALC, - 0x5D45,0x5D46,INVALC,0x3B60,INVALC,INVALC,INVALC,0x5D47, - 0x5D48,INVALC,INVALC,0x5D4A,0x5D49,INVALC,0x4B58,INVALC, - INVALC,0x3D5E,0x3C6C,0x3B44,INVALC,0x5D4B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5D4D,0x3F23,INVALC, - 0x5D4C,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D4E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5D4F,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D50,0x5D51,INVALC,INVALC,INVALC,0x5D52, - INVALC,0x5D54,0x5D53,0x5D55,0x3225,0x434A,INVALC,0x5D56, - INVALC,INVALC,0x3B26,0x334C,0x5D57,INVALC,INVALC,0x4542, - 0x544C,INVALC,INVALC,INVALC,INVALC,0x3523,0x5D58,INVALC, - INVALC,INVALC,INVALC,0x5D59,INVALC,0x4A6C,0x4B68,INVALC, - INVALC,INVALC,0x4647,0x5D5A,0x4866,INVALC,INVALC,INVALC, - 0x487B,INVALC,INVALC,0x4C53,INVALC,INVALC,INVALC,0x5D5B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D5D,0x5D5C,INVALC,INVALC,0x5D5F, - INVALC,INVALC,INVALC,0x5D5E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 109, Array index 0x2900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5D61,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3B61, - INVALC,0x4C31,INVALC,0x5D62,0x5D63,INVALC,INVALC,0x3524, - INVALC,INVALC,INVALC,0x5D64,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D66,0x5D65,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F65,INVALC,INVALC,0x4939, - 0x314A,INVALC,INVALC,INVALC,INVALC,INVALC,0x4845,INVALC, - 0x4475,0x3D41,0x3561,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4846,INVALC, - 0x3C2E,INVALC,INVALC,INVALC,INVALC,0x5D68,INVALC,0x3440, - INVALC,INVALC,0x3178,INVALC,INVALC,0x4672,0x5D67,0x393E, - 0x4353,INVALC,0x5D69,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5D71,INVALC,0x5D6A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4241,INVALC,0x3562,0x5D72,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3768,INVALC,INVALC,0x3525,0x5D70,INVALC, - INVALC,0x5D6E,0x5D6B,0x4D60,INVALC,INVALC,INVALC,INVALC, - 0x4440,INVALC,INVALC,INVALC,0x4659,0x5D6C,INVALC,INVALC, - 0x5D74,INVALC,0x5D73,0x3723,INVALC,INVALC,0x322D,INVALC, - INVALC,0x3A3B,0x5D6D,0x5D6F,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4B57,0x4274,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4B77,INVALC,INVALC,0x5D7C,INVALC, - INVALC,0x5D7D,INVALC,0x324F,INVALC,INVALC,INVALC,INVALC, - 0x4A28,0x4C7D,0x5E21,0x3C23,0x3E42,0x5D78,0x5D7E,0x3168, - INVALC,0x3637,INVALC,INVALC,0x5D75,0x5D7A,INVALC,INVALC, - INVALC,0x4074,0x4771,INVALC,0x4867,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D77,INVALC,0x4B21,INVALC,0x5D79, - INVALC,0x5E24,INVALC,0x5E22,INVALC,0x5D7B,INVALC,INVALC, - INVALC,0x4B22,0x4748,0x3563,INVALC,0x4525,INVALC,INVALC, - 0x436D,INVALC,0x5E25,INVALC,INVALC,INVALC,INVALC,0x5E23, - 0x4259,0x5D76,INVALC,0x314B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 110, Array index 0x2A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4D4E,0x5E30,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5E2F,INVALC,INVALC,INVALC,INVALC,0x4076, - INVALC,0x5E2C,INVALC,0x4D6C,INVALC,INVALC,0x4636,0x5E26, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4445,INVALC,INVALC, - INVALC,0x314C,0x393F,0x5E29,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3D27,0x5E2E,INVALC,0x5E2D,0x5E28,INVALC, - 0x5E2B,INVALC,INVALC,0x3368,INVALC,0x5E2A,0x4749,INVALC, - INVALC,0x4E2E,INVALC,INVALC,0x3E74,0x4075,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5E36,0x5E34,INVALC,0x494D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5E31,0x5E33,INVALC,0x313A,INVALC, - INVALC,0x3940,0x4F32,INVALC,0x333D,INVALC,0x4962,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4D61,INVALC,INVALC,0x3324, - 0x3F3B,0x5E35,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E3A,INVALC,INVALC, - 0x3E43,INVALC,INVALC,INVALC,0x4D30,INVALC,0x5E37,INVALC, - INVALC,INVALC,INVALC,0x5E32,INVALC,0x5E38,INVALC,INVALC, - INVALC,0x4E5E,INVALC,0x4573,0x4642,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3336, - INVALC,INVALC,0x3155,INVALC,INVALC,0x5E3E,INVALC,INVALC, - 0x5E41,INVALC,INVALC,INVALC,0x4E43,INVALC,INVALC,INVALC, - 0x4D64,INVALC,INVALC,INVALC,INVALC,0x5E48,0x5E42,0x5E3F, - INVALC,INVALC,INVALC,0x4E54,0x5E45,INVALC,INVALC,INVALC, - INVALC,0x3D4A,0x5E47,INVALC,INVALC,0x5E4C,INVALC,INVALC, - 0x4571,0x5E4A,INVALC,INVALC,INVALC,INVALC,0x5E44,INVALC, - INVALC,0x4338,INVALC,INVALC,0x5E4B,INVALC,0x5E40,INVALC, - 0x5E46,INVALC,0x5E4D,0x307C,0x5E43,INVALC,0x5E4E,INVALC, - INVALC,0x3F3C,INVALC,0x3D5F,INVALC,0x4A25,INVALC,0x3A2E, - INVALC,0x5E3B,0x5E49,0x453A,INVALC,INVALC,INVALC,INVALC, - /* Block 111, Array index 0x2B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x4036,INVALC,0x3369, - 0x3A51,0x3E44,0x5E3D,0x3D42,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x374C,INVALC,0x5E3C,INVALC,INVALC, - INVALC,0x5E52,0x3D6D,0x383A,INVALC,0x5E61,INVALC,0x5E5B, - 0x3574,0x454F,INVALC,0x5E56,0x5E5F,0x302F,0x3132,INVALC, - INVALC,0x3239,INVALC,0x5E58,0x422C,0x5E4F,0x5E51,0x3941, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5E62,INVALC,0x5E5D,INVALC,INVALC,INVALC,0x5E55,INVALC, - INVALC,INVALC,INVALC,0x5E5C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4C2B,INVALC,INVALC,0x5E5A,0x5E5E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3850,INVALC, - 0x3E45,INVALC,INVALC,0x4339,INVALC,INVALC,INVALC,0x5E54, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D2F, - INVALC,INVALC,INVALC,0x5E57,INVALC,INVALC,0x5E50,0x4572, - INVALC,INVALC,0x5E53,INVALC,INVALC,INVALC,0x5E59,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F51,0x3C3E, - 0x4B7E,INVALC,0x5E63,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x482E,INVALC,INVALC,0x5E6F, - 0x383B,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D60,INVALC, - 0x5E65,INVALC,INVALC,INVALC,0x4E2F,0x3942,INVALC,0x5E72, - INVALC,INVALC,0x306E,INVALC,INVALC,0x5E70,INVALC,INVALC, - INVALC,INVALC,0x5E64,INVALC,INVALC,INVALC,INVALC,0x5E6A, - INVALC,INVALC,0x5E6C,INVALC,INVALC,INVALC,0x4D4F,0x5E67, - INVALC,INVALC,0x452E,INVALC,INVALC,0x5E69,INVALC,INVALC, - INVALC,INVALC,0x5E71,INVALC,0x5E6B,0x4C47,INVALC,INVALC, - INVALC,0x5E66,INVALC,0x3C22,0x5E7E,INVALC,INVALC,INVALC, - INVALC,0x336A,INVALC,0x5E68,0x5E6D,0x5E6E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x426C,0x425A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E76,INVALC,INVALC,0x5E7C, - INVALC,INVALC,0x5E7A,INVALC,0x4529,INVALC,INVALC,0x5F23, - 0x5E77,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E78,0x5E60, - /* Block 112, Array index 0x2C00 */ - INVALC,0x3579,0x493A,INVALC,INVALC,INVALC,0x3C3F,INVALC, - INVALC,0x3977,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F33, - INVALC,0x5E74,INVALC,0x5F22,0x3169,0x4166,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4779,INVALC,0x3441,0x4E7A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4C21,0x4452,INVALC,INVALC,INVALC, - INVALC,0x5E7B,0x5E7D,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4132,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F21,0x5E79, - INVALC,0x5E73,INVALC,INVALC,INVALC,0x3443,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3769,INVALC,INVALC,INVALC, - 0x5F2F,INVALC,INVALC,0x5F2A,0x4078,INVALC,INVALC,0x3363, - INVALC,INVALC,INVALC,INVALC,0x3D61,INVALC,0x5F33,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F2C,0x442C,0x5F29, - 0x4459,INVALC,INVALC,INVALC,0x5F4C,INVALC,INVALC,INVALC, - 0x5F26,INVALC,0x5F25,INVALC,0x5F2E,INVALC,INVALC,INVALC, - 0x5F28,0x5F27,0x5F2D,INVALC,0x4021,INVALC,0x5F24,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F30,INVALC, - INVALC,0x5F31,INVALC,INVALC,INVALC,INVALC,INVALC,0x3442, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F36,INVALC,0x5F35,0x5F37,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5F3A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4543,INVALC,0x5F34,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F38,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3763,0x4279,0x5F32,0x473B,INVALC,INVALC,0x5F39,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5F3E,0x5F3C,INVALC,INVALC, - 0x5F3F,INVALC,INVALC,0x5F42,INVALC,INVALC,INVALC,0x5F3B, - 0x396A,0x4728,INVALC,INVALC,0x5E39,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4D74,0x5F3D,INVALC,0x5F41,0x4275, - INVALC,0x5F40,INVALC,0x5F2B,INVALC,INVALC,0x6F69,INVALC, - INVALC,INVALC,0x5F45,INVALC,INVALC,INVALC,0x5F49,INVALC, - /* Block 113, Array index 0x2D00 */ - INVALC,0x5F47,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F43,INVALC,0x5F44,INVALC,INVALC,INVALC,0x5F48, - INVALC,0x5F46,INVALC,INVALC,INVALC,0x494E,INVALC,INVALC, - 0x5F4E,INVALC,0x5F4B,0x5F4A,INVALC,0x5F4D,0x4654,0x5F4F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4375,0x426D, - INVALC,INVALC,INVALC,INVALC,0x4025,INVALC,INVALC,INVALC, - 0x5F50,INVALC,0x5F52,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F51,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E75,INVALC,INVALC,INVALC, - INVALC,0x5F53,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4667,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5F54,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3250,INVALC,INVALC,INVALC,0x4574, - 0x3325,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3564,INVALC,INVALC,INVALC,0x3C5E,0x3A52,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F27,0x3F66,INVALC,INVALC,INVALC,0x316A,INVALC, - INVALC,INVALC,0x5F56,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F55,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5F59,0x433A,0x5F5C,0x5F57, - INVALC,INVALC,INVALC,0x5F5B,INVALC,INVALC,INVALC,INVALC, - 0x5F5A,0x4540,0x3059,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4E75,INVALC,INVALC,0x5F5E,INVALC,INVALC,INVALC,0x3128, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F60,INVALC,INVALC,INVALC,0x5F5F,INVALC,0x5F5D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F58,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4B23,INVALC,INVALC,INVALC,0x5F62,INVALC,INVALC, - /* Block 114, Array index 0x2E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F61,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x316B,INVALC,INVALC,INVALC, - INVALC,0x5F64,0x4A32,INVALC,0x5F63,INVALC,INVALC,INVALC, - INVALC,0x4C35,INVALC,INVALC,INVALC,INVALC,0x3E47,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4133,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E46,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E7B,INVALC,INVALC,0x5F6A,INVALC,0x4079,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F66,0x5F6B,INVALC, - INVALC,0x316C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5F69,INVALC,0x4761,0x5F65,0x5F68,0x3E48, - INVALC,0x4851,INVALC,INVALC,0x5F6C,INVALC,0x3C51,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x407A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5F6F,INVALC,INVALC,INVALC, - 0x5F67,INVALC,0x3727,INVALC,INVALC,INVALC,INVALC,0x5F6D, - INVALC,INVALC,INVALC,INVALC,0x4D50,0x5F70,INVALC,INVALC, - INVALC,0x7426,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D4F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5F71,INVALC,INVALC,INVALC,0x5F72,INVALC,INVALC,INVALC, - INVALC,0x472E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F74,INVALC,INVALC,INVALC,INVALC,0x5F75,INVALC, - INVALC,INVALC,INVALC,0x4733,INVALC,INVALC,INVALC,INVALC, - 0x4575,0x5F77,INVALC,INVALC,INVALC,INVALC,0x5F79,INVALC, - 0x4E55,INVALC,0x5F76,INVALC,0x5F78,0x316D,INVALC,0x5F73, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x535B, - 0x5F7A,INVALC,INVALC,INVALC,INVALC,0x4167,0x3B38,0x5F7C, - INVALC,INVALC,INVALC,INVALC,0x5F7B,0x3F24,0x5259,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F7D,INVALC,INVALC, - INVALC,0x6021,INVALC,0x5F6E,0x5F7E,INVALC,INVALC,0x6022, - /* Block 115, Array index 0x2F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x477A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6023,INVALC,INVALC, - 0x6024,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6025,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6026,INVALC,0x445E,INVALC,0x6028,0x6027,INVALC,INVALC, - 0x6029,INVALC,0x602A,INVALC,INVALC,0x3C5F,0x4963,INVALC, - INVALC,INVALC,0x4C6C,0x602B,0x602C,0x4156,0x3C24,0x602D, - 0x602E,INVALC,INVALC,INVALC,INVALC,INVALC,0x602F,0x4A52, - 0x4847,INVALC,INVALC,0x6030,0x4757,INVALC,INVALC,INVALC, - INVALC,INVALC,0x442D,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6031,0x3267,INVALC,0x356D,INVALC,0x4C46,INVALC,0x4C36, - INVALC,0x3234,0x4F34,INVALC,INVALC,INVALC,INVALC,0x4B52, - INVALC,0x4A2A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4037,INVALC,0x6032,INVALC,INVALC,INVALC, - INVALC,0x4643,INVALC,INVALC,INVALC,0x3823,0x6033,INVALC, - 0x3A54,0x6035,0x6034,INVALC,INVALC,INVALC,INVALC,0x6036, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6037,INVALC,INVALC,INVALC,0x6038,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x353E,INVALC,0x6039,INVALC,INVALC,INVALC,INVALC,0x603A, - INVALC,INVALC,INVALC,INVALC,0x3824,INVALC,INVALC,0x4848, - INVALC,INVALC,0x603C,INVALC,INVALC,INVALC,0x3E75,INVALC, - INVALC,0x603B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3638,0x603D,0x603F,INVALC,0x603E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6040,INVALC, - 0x3851,INVALC,0x6041,INVALC,INVALC,INVALC,INVALC,0x3669, - INVALC,0x4140,INVALC,0x397D,INVALC,INVALC,INVALC,INVALC, - 0x6043,0x6044,0x6042,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3C6D,INVALC,INVALC,0x4648,0x3639,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6046, - 0x432C,0x6045,INVALC,INVALC,0x4F35,0x4762,INVALC,INVALC, - /* Block 116, Array index 0x3000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6049,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x604B,0x6048, - INVALC,INVALC,INVALC,0x4C54,0x604A,0x604C,INVALC,0x4E44, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6050,INVALC,INVALC, - INVALC,0x604F,0x4376,0x472D,INVALC,INVALC,0x3825,0x604E, - INVALC,INVALC,INVALC,INVALC,0x604D,INVALC,0x4D31,0x4D32, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6051,0x316E, - INVALC,INVALC,INVALC,INVALC,0x3976,0x3B62,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6052,0x6053, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6055, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3D43,INVALC,INVALC,INVALC,INVALC, - 0x6057,INVALC,0x6056,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6058,INVALC,0x334D,INVALC,INVALC,0x605A,INVALC,INVALC, - 0x6059,INVALC,0x605C,0x605B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x383C,INVALC,INVALC,0x4E28, - INVALC,0x364C,INVALC,0x3226,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x366A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3461,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4E68,0x605E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6060,INVALC,INVALC,INVALC,INVALC, - 0x6061,INVALC,0x3251,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x605D,INVALC,0x3B39,INVALC,INVALC,0x4441,0x605F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6064,INVALC, - 0x3C6E,INVALC,INVALC,INVALC,INVALC,0x6062,INVALC,INVALC, - INVALC,INVALC,0x373E,INVALC,INVALC,0x4849,0x6063,INVALC, - INVALC,0x607E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6069,INVALC,INVALC,INVALC,INVALC,INVALC,0x383D,INVALC, - /* Block 117, Array index 0x3100 */ - INVALC,INVALC,INVALC,0x3565,INVALC,0x6066,0x4D7D,INVALC, - INVALC,0x4E30,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4276,INVALC,INVALC,0x6068,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x606A,0x4E56,0x3657,0x487C,0x474A,INVALC, - INVALC,INVALC,0x606B,INVALC,INVALC,INVALC,INVALC,0x606D, - INVALC,0x6070,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x606C,INVALC,INVALC, - INVALC,0x606F,0x386A,0x314D,0x6071,INVALC,0x3F70,0x606E, - 0x4E5C,INVALC,INVALC,0x6074,0x7424,INVALC,INVALC,INVALC, - INVALC,0x6072,0x6075,INVALC,INVALC,INVALC,INVALC,0x6067, - 0x6073,INVALC,INVALC,0x3A3C,INVALC,INVALC,0x6076,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6077,INVALC, - INVALC,INVALC,INVALC,0x4D7E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6078,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6079,INVALC, - INVALC,INVALC,0x6065,INVALC,INVALC,INVALC,INVALC,0x607A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3444,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3C25,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x607B,INVALC,INVALC,INVALC,INVALC,0x607C, - INVALC,INVALC,INVALC,INVALC,0x607D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x313B,INVALC,INVALC,INVALC, - 0x6121,INVALC,0x493B,0x6122,INVALC,INVALC,0x3424,0x6123, - INVALC,0x6124,INVALC,INVALC,INVALC,INVALC,0x6125,INVALC, - 0x6127,0x6128,0x6126,INVALC,INVALC,INVALC,0x4953,0x612A, - 0x6129,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 118, Array index 0x3200 */ - INVALC,INVALC,INVALC,0x612C,0x612B,0x612D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x612E,0x6130,0x612F,INVALC, - INVALC,0x3979,INVALC,0x6132,INVALC,0x6131,INVALC,INVALC, - 0x3445,INVALC,0x3F53,INVALC,0x453C,INVALC,0x6133,0x4038, - INVALC,INVALC,INVALC,0x3B3A,INVALC,0x3179,0x6134,INVALC, - 0x4D51,INVALC,INVALC,0x4A63,0x6135,INVALC,INVALC,INVALC, - 0x4544,0x4D33,0x3943,0x3F3D,INVALC,INVALC,INVALC,0x434B, - 0x5234,INVALC,0x442E,0x3268,0x6136,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6137,INVALC,0x613C,INVALC, - INVALC,0x613A,0x6139,0x5A42,0x3326,0x6138,INVALC,0x305A, - INVALC,0x482A,INVALC,INVALC,0x484A,INVALC,INVALC,INVALC, - INVALC,0x4E31,0x613D,0x613B,0x435C,0x4026,INVALC,INVALC, - 0x482B,INVALC,0x492D,INVALC,0x613F,0x4E2C,0x374D,0x6140, - INVALC,0x613E,0x4856,0x6141,INVALC,0x6142,INVALC,INVALC, - 0x305B,INVALC,INVALC,0x3E76,0x6147,INVALC,0x6144,0x466D, - 0x6143,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3526, - INVALC,INVALC,0x614A,INVALC,INVALC,INVALC,0x6145,0x6146, - INVALC,0x6149,0x6148,0x4925,INVALC,INVALC,0x4142,0x4141, - INVALC,0x353F,INVALC,INVALC,0x614B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x614C,INVALC,INVALC,0x614D,INVALC,INVALC, - INVALC,INVALC,INVALC,0x614F,INVALC,0x614E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3156,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6157,0x4868,0x6151,INVALC,0x6153,INVALC,INVALC, - 0x6155,0x3F3E,INVALC,INVALC,0x6156,0x6154,0x3C40,INVALC, - INVALC,INVALC,0x6150,0x6152,INVALC,0x4942,INVALC,0x3E49, - INVALC,INVALC,0x6159,INVALC,INVALC,0x6158,INVALC,INVALC, - INVALC,INVALC,0x615A,INVALC,0x3C26,0x3A2F,INVALC,INVALC, - 0x4577,0x615B,INVALC,0x444B,INVALC,INVALC,0x615D,INVALC, - INVALC,INVALC,0x4E21,0x615C,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4169,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6162,INVALC,0x6164,0x6165,0x4354,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6163,INVALC,0x6160,INVALC,0x615E,0x615F, - /* Block 119, Array index 0x3300 */ - INVALC,0x6161,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6168,INVALC,0x6166,INVALC,0x6167,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6169, - 0x616B,0x616C,0x616D,INVALC,0x616E,INVALC,INVALC,0x616A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6170,INVALC,INVALC,INVALC,0x616F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6171,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4E45,INVALC,INVALC,INVALC,0x6174,0x6172, - 0x6173,INVALC,INVALC,INVALC,0x3462,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4C7E,INVALC,INVALC,INVALC,0x4A4A,INVALC, - 0x6176,INVALC,INVALC,INVALC,0x6175,INVALC,INVALC,INVALC, - INVALC,0x6177,0x6178,INVALC,INVALC,INVALC,INVALC,0x617C, - 0x6179,0x617A,0x617B,INVALC,0x617D,INVALC,INVALC,INVALC, - 0x617E,INVALC,0x6221,INVALC,INVALC,INVALC,0x6222,INVALC, - 0x6223,INVALC,0x482F,0x4550,0x6224,0x4772,0x4934,INVALC, - 0x6225,INVALC,INVALC,0x6226,0x452A,INVALC,0x3327,0x3944, - 0x6227,INVALC,INVALC,0x6228,INVALC,INVALC,0x6229,INVALC, - 0x3B29,INVALC,INVALC,0x622B,INVALC,INVALC,0x622A,INVALC, - INVALC,0x622C,0x622D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4869,INVALC, - 0x622E,INVALC,INVALC,INVALC,0x622F,INVALC,INVALC,0x7369, - 0x6230,0x6231,0x6232,INVALC,INVALC,INVALC,INVALC,0x3B2E, - INVALC,INVALC,0x6233,0x4756,INVALC,INVALC,0x4B5F,INVALC, - 0x314E,INVALC,0x3157,INVALC,INVALC,0x6234,INVALC,INVALC, - INVALC,INVALC,0x6236,INVALC,INVALC,INVALC,0x6235,0x4570, - INVALC,INVALC,INVALC,0x4039,0x5D39,INVALC,0x6237,0x4C41, - INVALC,0x6238,INVALC,0x3446,0x4857,0x6239,INVALC,0x623A, - INVALC,INVALC,0x623B,INVALC,INVALC,INVALC,0x4C5C,INVALC, - INVALC,INVALC,0x4C55,INVALC,0x443E,INVALC,INVALC,INVALC, - 0x416A,INVALC,INVALC,0x623D,INVALC,INVALC,0x3D62,INVALC, - /* Block 120, Array index 0x3400 */ - INVALC,0x3E4A,INVALC,INVALC,0x6240,INVALC,INVALC,0x623F, - 0x623E,0x487D,INVALC,0x3447,0x3829,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6246,INVALC,INVALC,0x6243,0x3F3F, - 0x4C32,INVALC,INVALC,INVALC,0x6242,0x6244,0x6245,INVALC, - INVALC,0x6241,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6247, - 0x6248,INVALC,0x442F,INVALC,0x3463,INVALC,INVALC,INVALC, - 0x4365,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6249, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x624A,0x624D,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3F67,INVALC,0x4644,INVALC,0x624E,0x4B53,INVALC, - 0x624B,INVALC,INVALC,0x624C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6251,INVALC,INVALC,INVALC,INVALC,0x6250,0x624F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6253,INVALC,INVALC,0x6252,INVALC, - INVALC,0x6254,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6256,INVALC, - 0x6255,INVALC,INVALC,INVALC,INVALC,0x4A4D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D56,0x4E46,INVALC,INVALC, - 0x6257,INVALC,INVALC,0x4637,INVALC,INVALC,0x6258,INVALC, - INVALC,0x6259,INVALC,0x625D,0x625B,0x625C,INVALC,0x625A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x625E, - INVALC,INVALC,INVALC,INVALC,INVALC,0x625F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6260, - INVALC,INVALC,0x6261,0x4C37,0x6262,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4C70,0x6263,INVALC,0x434E,INVALC,0x476A, - INVALC,0x366B,INVALC,INVALC,INVALC,0x433B,0x6264,0x363A, - INVALC,INVALC,INVALC,0x4050,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6265,INVALC,INVALC,INVALC, - /* Block 121, Array index 0x3500 */ - INVALC,INVALC,0x3A3D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6266,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6267,INVALC,0x3826,0x3A55,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6269,INVALC,INVALC,INVALC,INVALC,0x4556,0x3A56,0x354E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4B24,INVALC,0x474B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4557,INVALC,INVALC,INVALC,INVALC,0x395C, - INVALC,INVALC,INVALC,INVALC,INVALC,0x626B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3E4B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4E32,0x3945,INVALC,INVALC,0x3827, - INVALC,INVALC,0x4823,INVALC,0x626D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x626F,INVALC,INVALC,INVALC, - INVALC,0x386B,INVALC,INVALC,INVALC,INVALC,0x626E,0x4476, - INVALC,INVALC,INVALC,INVALC,0x6271,0x3337,0x626C,INVALC, - INVALC,0x486A,INVALC,0x3130,INVALC,0x3A6C,INVALC,0x4F52, - INVALC,INVALC,0x6270,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6272,INVALC,INVALC,INVALC,0x4A4B, - INVALC,0x4059,0x6274,INVALC,INVALC,INVALC,INVALC,0x6275, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6273,INVALC,INVALC, - INVALC,INVALC,0x334E,INVALC,0x627B,INVALC,0x627A,INVALC, - INVALC,0x3C27,INVALC,INVALC,INVALC,0x627C,0x6277,INVALC, - INVALC,INVALC,0x627D,0x6278,INVALC,INVALC,INVALC,INVALC, - 0x4858,0x6276,INVALC,INVALC,0x6279,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6322,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6321, - 0x4B61,INVALC,INVALC,INVALC,0x627E,INVALC,INVALC,0x306B, - INVALC,INVALC,INVALC,INVALC,0x6324,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6323,INVALC,INVALC, - /* Block 122, Array index 0x3600 */ - INVALC,0x3E4C,INVALC,INVALC,INVALC,INVALC,INVALC,0x6325, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4143,INVALC, - INVALC,0x6327,0x6326,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6328,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6268,INVALC, - INVALC,INVALC,0x626A,0x632A,0x6329,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3C28,INVALC,0x4E69,INVALC,0x3C52,INVALC, - 0x632B,0x3737,INVALC,INVALC,INVALC,INVALC,INVALC,0x3540, - 0x3527,0x3B63,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4D34,INVALC,INVALC,0x6331,INVALC,0x6330,0x4144,0x632D, - INVALC,INVALC,0x632F,INVALC,INVALC,0x3D4B,0x3F40,0x632E, - 0x632C,INVALC,0x472A,INVALC,INVALC,0x3E4D,INVALC,INVALC, - 0x493C,INVALC,INVALC,INVALC,INVALC,0x3A57,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4578, - INVALC,INVALC,0x6332,INVALC,INVALC,INVALC,INVALC,0x6333, - 0x6349,0x3658,INVALC,INVALC,0x4F3D,0x4135,INVALC,INVALC, - INVALC,INVALC,0x6334,INVALC,INVALC,0x3252,0x4477,0x4A21, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6335,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x357A,0x6336, - INVALC,INVALC,0x6338,INVALC,INVALC,INVALC,0x6339,INVALC, - 0x4729,INVALC,INVALC,0x633A,INVALC,INVALC,INVALC,INVALC, - INVALC,0x633B,0x633C,INVALC,INVALC,0x3659,0x3253,0x4645, - 0x3D28,0x3B64,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x633D,INVALC,0x3D29,INVALC,INVALC,INVALC,INVALC, - INVALC,0x324A,0x4943,INVALC,INVALC,0x633E,INVALC,INVALC, - 0x486B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4145, - INVALC,0x6341,INVALC,0x6342,0x4769,INVALC,0x3F41,0x633F, - INVALC,0x4361,INVALC,INVALC,0x6340,INVALC,INVALC,INVALC, - 0x3E4E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x305C,INVALC,INVALC,INVALC,INVALC, - /* Block 123, Array index 0x3700 */ - 0x3529,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6343,INVALC,INVALC,0x4478,INVALC,0x6344,0x4047,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4C2D,INVALC,INVALC,0x4923, - 0x6345,0x6346,0x4355,INVALC,0x4E47,INVALC,INVALC,0x6348, - 0x6347,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3C6F,INVALC, - INVALC,0x634A,0x3070,INVALC,INVALC,INVALC,INVALC,0x634D, - INVALC,INVALC,INVALC,0x634B,0x3254,0x374E,0x634C,0x3946, - 0x3972,INVALC,0x4A66,0x634E,INVALC,INVALC,0x4B54,INVALC, - INVALC,0x6350,INVALC,INVALC,INVALC,0x4051,0x314F,0x323A, - 0x302C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x634F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6351,0x6352,0x3E77,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6353,INVALC,0x334F,INVALC,INVALC,INVALC,INVALC, - 0x6355,INVALC,INVALC,INVALC,0x376A,INVALC,0x3566,INVALC, - INVALC,0x6356,0x3675,INVALC,INVALC,0x6357,INVALC,0x407C, - INVALC,0x464D,INVALC,0x4060,0x3A75,INVALC,INVALC,INVALC, - 0x6358,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4362,0x416B,INVALC,0x635A,0x635C,0x6359, - 0x635B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3722, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x635D,0x3726,INVALC,INVALC,INVALC,0x3567,0x4D52, - 0x635F,INVALC,INVALC,INVALC,INVALC,INVALC,0x6360,INVALC, - INVALC,INVALC,0x312E,INVALC,INVALC,INVALC,INVALC,0x6363, - INVALC,INVALC,INVALC,0x3376,0x6362,0x6361,INVALC,0x6365, - 0x635E,INVALC,0x6366,0x4E29,INVALC,0x6367,INVALC,0x6368, - INVALC,INVALC,0x5474,0x636A,INVALC,0x6369,INVALC,INVALC, - INVALC,0x636B,0x636C,INVALC,0x4E35,0x636D,INVALC,0x706F, - 0x3E4F,0x636E,0x636F,0x3D57,INVALC,0x4638,0x6370,INVALC, - INVALC,INVALC,0x4328,INVALC,INVALC,0x6371,INVALC,0x433C, - 0x6372,INVALC,INVALC,INVALC,INVALC,INVALC,0x3625,INVALC, - 0x513F,0x435D,0x3C33,INVALC,INVALC,INVALC,INVALC,0x3448, - /* Block 124, Array index 0x3800 */ - INVALC,INVALC,0x6373,INVALC,0x6422,INVALC,0x6376,INVALC, - 0x3568,INVALC,0x6375,0x6424,INVALC,INVALC,INVALC,0x6374, - INVALC,0x3E50,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6378,0x6379,INVALC,0x452B,INVALC,INVALC,0x637A,INVALC, - 0x335E,INVALC,INVALC,INVALC,INVALC,0x3F5A,0x4964,INVALC, - 0x637C,INVALC,INVALC,INVALC,0x4268,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6377,INVALC,0x637B,0x637D,INVALC, - INVALC,0x3A7B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6426,0x492E,INVALC, - 0x4826,0x4579,INVALC,0x365A,0x6425,0x6423,INVALC,0x4835, - 0x637E,0x435E,0x457B,INVALC,0x457A,INVALC,0x3A76,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6438,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6428,INVALC,0x642A, - INVALC,INVALC,INVALC,INVALC,0x642D,INVALC,0x642E,INVALC, - 0x642B,0x642C,INVALC,INVALC,0x6429,0x6427,INVALC,INVALC, - INVALC,INVALC,0x6421,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A4F,0x3255, - INVALC,INVALC,INVALC,0x6435,INVALC,0x6432,INVALC,0x6437, - INVALC,INVALC,0x6436,INVALC,0x4773,0x4C27,INVALC,0x3B3B, - 0x6430,0x6439,0x6434,INVALC,0x6433,0x642F,INVALC,0x6431, - INVALC,0x3449,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x433D,INVALC,INVALC,0x407D,INVALC,INVALC, - INVALC,0x4822,INVALC,INVALC,0x643E,INVALC,INVALC,INVALC, - 0x4824,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4061,0x643B,INVALC,INVALC,0x484F,INVALC,0x643F,0x4A53, - INVALC,0x435B,INVALC,0x643A,0x643C,INVALC,INVALC,0x643D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6440,INVALC,INVALC, - 0x3C44,INVALC,INVALC,INVALC,0x4646,0x6445,0x6444,INVALC, - INVALC,0x6441,INVALC,INVALC,INVALC,0x4F36,INVALC,INVALC, - INVALC,INVALC,INVALC,0x644A,INVALC,INVALC,0x644E,0x644B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 125, Array index 0x3900 */ - 0x6447,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6448, - INVALC,INVALC,INVALC,INVALC,INVALC,0x644D,INVALC,INVALC, - INVALC,0x6442,0x5255,0x6449,0x6443,INVALC,INVALC,0x644C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6452, - INVALC,0x344A,INVALC,0x644F,INVALC,INVALC,INVALC,0x6450, - INVALC,INVALC,0x6451,0x6454,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6453, - 0x4876,INVALC,INVALC,INVALC,INVALC,0x6455,0x4E7C,0x4A6D, - 0x645A,INVALC,INVALC,0x6457,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6456,0x4052,INVALC,0x6459, - 0x645B,INVALC,INVALC,INVALC,0x6458,INVALC,0x645F,INVALC, - 0x645C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x645D, - 0x6446,INVALC,INVALC,INVALC,0x645E,0x6460,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6461,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4A46,INVALC,0x6462,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C62,INVALC, - INVALC,0x364E,0x3729,0x6463,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A34,INVALC,0x3F68,INVALC,0x4C30,INVALC,INVALC, - 0x6464,INVALC,0x4E33,INVALC,INVALC,0x4774,INVALC,0x4146, - 0x4734,INVALC,INVALC,0x3D4D,INVALC,INVALC,INVALC,0x3040, - INVALC,0x6469,0x6467,INVALC,0x6465,0x3421,INVALC,0x3E51, - 0x646A,INVALC,INVALC,0x6468,INVALC,0x6466,0x646E,INVALC, - INVALC,0x646D,0x646C,0x646B,INVALC,INVALC,INVALC,INVALC, - INVALC,0x646F,INVALC,INVALC,INVALC,0x6470,0x403A,INVALC, - 0x6471,INVALC,0x6473,INVALC,INVALC,0x6472,INVALC,INVALC, - INVALC,INVALC,0x3852,INVALC,INVALC,INVALC,0x4138,INVALC, - INVALC,INVALC,0x6475,INVALC,INVALC,INVALC,0x457C,INVALC, - 0x6474,INVALC,INVALC,INVALC,0x6476,INVALC,0x4A35,0x416C, - 0x3947,INVALC,0x6477,INVALC,INVALC,INVALC,INVALC,0x4E48, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6479, - INVALC,INVALC,0x647A,INVALC,0x647B,INVALC,0x647C,INVALC, - 0x3B65,INVALC,0x647D,0x374F,INVALC,INVALC,0x356A,INVALC, - /* Block 126, Array index 0x3A00 */ - 0x352A,INVALC,0x6521,INVALC,0x4C73,0x3948,0x647E,INVALC, - INVALC,INVALC,0x6524,0x4C66,INVALC,0x473C,INVALC,INVALC, - 0x4933,INVALC,INVALC,INVALC,0x3D63,0x6523,INVALC,0x3C53, - 0x3949,0x3B66,0x3569,0x4A36,0x6522,INVALC,INVALC,INVALC, - 0x4147,0x4B42,0x3A77,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3B67,0x445D,INVALC,0x6527,0x4E5F, - 0x3A59,INVALC,0x6528,0x3F42,INVALC,0x652A,INVALC,INVALC, - INVALC,0x3E52,0x3A30,INVALC,INVALC,INVALC,INVALC,0x6529, - INVALC,INVALC,0x3D2A,0x383E,0x4148,0x6525,0x652B,INVALC, - INVALC,INVALC,INVALC,0x6526,0x3750,INVALC,0x652E,0x6532, - 0x376B,INVALC,INVALC,INVALC,INVALC,INVALC,0x652D,INVALC, - INVALC,INVALC,INVALC,0x6536,INVALC,INVALC,0x394A,INVALC, - INVALC,0x4D6D,0x303C,0x6533,INVALC,INVALC,0x356B,INVALC, - 0x6530,INVALC,INVALC,INVALC,INVALC,INVALC,0x6531,INVALC, - INVALC,0x457D,0x652F,0x652C,INVALC,0x3328,0x4064,INVALC, - INVALC,0x3828,INVALC,INVALC,INVALC,0x6538,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6535,INVALC,INVALC,INVALC,INVALC,INVALC,0x6537, - INVALC,INVALC,INVALC,0x6534,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3751,0x4233,0x6539,0x416E,INVALC,INVALC,0x6546, - INVALC,INVALC,0x6542,0x653C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6540,0x3C7A,0x305D,0x653B,0x6543, - 0x6547,0x394B,0x4C56,INVALC,0x4456,0x653D,INVALC,INVALC, - 0x6545,INVALC,0x653A,0x433E,INVALC,0x653F,0x303D,0x4C4A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x653E, - INVALC,INVALC,0x365B,0x486C,INVALC,INVALC,INVALC,0x416D, - INVALC,0x4E50,0x3D6F,INVALC,INVALC,0x656E,INVALC,INVALC, - 0x6548,INVALC,0x407E,INVALC,0x6544,0x6549,0x654B,INVALC, - 0x4479,0x654E,INVALC,INVALC,0x654A,INVALC,INVALC,INVALC, - 0x4A54,0x344B,INVALC,INVALC,0x4C4B,INVALC,INVALC,0x305E, - INVALC,INVALC,0x654D,INVALC,0x4E7D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x654C,INVALC,INVALC,INVALC,INVALC, - /* Block 127, Array index 0x3B00 */ - INVALC,0x316F,INVALC,INVALC,0x466C,0x654F,INVALC,INVALC, - INVALC,0x6556,0x6550,0x6557,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6553,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x477B,INVALC,INVALC,0x3C4A,0x6555, - INVALC,0x6552,0x6558,0x6551,INVALC,INVALC,0x3D44,INVALC, - INVALC,INVALC,INVALC,0x4B25,INVALC,INVALC,0x3D4C,INVALC, - INVALC,0x6554,0x6560,INVALC,INVALC,0x655C,INVALC,0x655F, - INVALC,0x655D,0x6561,0x655B,INVALC,0x6541,0x4053,INVALC, - INVALC,0x484B,INVALC,0x655E,INVALC,INVALC,0x6559,INVALC, - INVALC,INVALC,0x4121,0x3752,INVALC,0x3D2B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F25,0x4136,0x6564,INVALC, - INVALC,0x6566,0x6567,INVALC,INVALC,0x6563,0x6565,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x655A,0x6562, - INVALC,0x656A,0x6569,INVALC,INVALC,0x4B7A,INVALC,INVALC, - 0x372B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6568,INVALC,0x656C,0x656B,0x656F,INVALC,0x6571, - INVALC,INVALC,0x3B3C,0x656D,INVALC,INVALC,INVALC,INVALC, - 0x6572,0x6573,INVALC,INVALC,0x6574,INVALC,0x657A,0x453B, - 0x6576,INVALC,0x6575,0x6577,0x6578,INVALC,0x6579,INVALC, - INVALC,INVALC,INVALC,0x657B,0x657C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 128, Array index 0x3C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x344C,INVALC, - 0x657D,INVALC,0x657E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6621,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6622,0x6623,0x6624,INVALC, - 0x6625,0x6626,INVALC,INVALC,0x6628,0x6627,INVALC,INVALC, - 0x6629,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x662A, - 0x662B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x662E, - 0x662C,0x662D,0x3A61,0x3753,INVALC,INVALC,0x4356,INVALC, - 0x4833,INVALC,0x3D70,INVALC,INVALC,0x474D,INVALC,0x486D, - 0x662F,0x586D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6630,0x6632,INVALC,0x4D65,0x6631,0x6634, - 0x6633,INVALC,0x4D53,INVALC,0x6635,INVALC,0x487E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6636,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6639,INVALC,INVALC,0x6638,0x6637,INVALC, - INVALC,INVALC,INVALC,0x663A,0x3732,INVALC,INVALC,INVALC, - 0x4122,0x3541,INVALC,INVALC,INVALC,INVALC,0x663E,0x663B, - INVALC,INVALC,0x663C,INVALC,INVALC,INVALC,0x663F,INVALC, - 0x6640,0x663D,INVALC,INVALC,INVALC,0x3129,INVALC,INVALC, - INVALC,0x3227,INVALC,INVALC,INVALC,0x6642,0x6643,INVALC, - INVALC,INVALC,0x6644,INVALC,0x4D62,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3D2C,INVALC,0x6646,0x6645,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3F69,0x6647,INVALC,INVALC,INVALC,INVALC,0x6648,INVALC, - INVALC,0x6649,INVALC,0x3465,INVALC,INVALC,INVALC,INVALC, - 0x344D,INVALC,INVALC,0x664A,INVALC,INVALC,INVALC,INVALC, - INVALC,0x664B,INVALC,0x4B5D,0x4D63,INVALC,INVALC,INVALC, - /* Block 129, Array index 0x3D00 */ - 0x4D54,0x4F37,INVALC,0x394D,0x664E,0x3C54,0x664D,INVALC, - INVALC,INVALC,INVALC,0x664F,0x3C29,INVALC,INVALC,INVALC, - 0x4251,INVALC,0x6650,INVALC,INVALC,0x394C,INVALC,0x4C57, - 0x6651,0x6652,INVALC,INVALC,0x6653,INVALC,INVALC,INVALC, - INVALC,0x6654,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6655,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3C2A,INVALC,INVALC,0x4C6D,INVALC, - INVALC,INVALC,INVALC,0x6657,INVALC,0x433F,INVALC,0x6656, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6659,INVALC, - INVALC,INVALC,0x6658,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x665A,INVALC,INVALC,INVALC,0x403B,INVALC, - 0x665B,INVALC,0x665C,INVALC,INVALC,INVALC,0x4A39,0x665D, - INVALC,0x416F,0x665E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x665F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E7E, - 0x6662,INVALC,0x6661,0x6660,0x4430,INVALC,0x6663,0x3F26, - INVALC,0x6664,INVALC,INVALC,INVALC,0x6665,0x4F38,0x6666, - INVALC,INVALC,INVALC,INVALC,0x6667,0x6669,0x6668,0x4825, - INVALC,0x4679,INVALC,0x4F3E,0x4829,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x666B,INVALC,INVALC,0x3E53,INVALC, - 0x492A,INVALC,0x666C,0x666A,INVALC,0x344E,INVALC,INVALC, - INVALC,0x3854,0x3B68,INVALC,INVALC,0x486E,INVALC,INVALC, - INVALC,0x382A,0x4B43,INVALC,0x666F,0x666D,INVALC,0x394E, - INVALC,0x394F,0x3069,INVALC,0x3A68,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4759,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x305F,0x6674,INVALC,0x4340,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4758,INVALC,0x425B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6676,INVALC, - INVALC,0x6672,0x6675,0x6670,INVALC,0x6673,0x4B26,INVALC, - INVALC,0x3855,INVALC,INVALC,0x307D,0x6671,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6678, - INVALC,0x6679,INVALC,INVALC,0x4639,INVALC,INVALC,INVALC, - 0x363B,INVALC,INVALC,INVALC,0x6726,0x473D,INVALC,INVALC, - /* Block 130, Array index 0x3E00 */ - INVALC,INVALC,0x3B69,INVALC,INVALC,0x363C,0x4048,0x4F46, - 0x4C2E,0x6677,0x4054,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3553,0x667A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x667C,INVALC,INVALC,INVALC,INVALC, - INVALC,0x667B,INVALC,INVALC,INVALC,INVALC,INVALC,0x667D, - INVALC,0x4326,INVALC,0x473E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4431,INVALC,INVALC,INVALC,INVALC,0x6723,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6722,INVALC, - INVALC,INVALC,INVALC,0x667E,INVALC,INVALC,0x3F55,INVALC, - 0x4965,0x6725,INVALC,0x6724,0x3950,0x4F53,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6735, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6729,0x672A,INVALC, - INVALC,INVALC,INVALC,0x3C70,INVALC,INVALC,0x6728,INVALC, - 0x3978,0x6727,INVALC,INVALC,0x672B,INVALC,INVALC,INVALC, - 0x4432,0x4A22,0x4123,INVALC,INVALC,INVALC,INVALC,0x425C, - 0x672F,INVALC,0x6730,0x672C,INVALC,INVALC,INVALC,INVALC, - 0x672D,INVALC,0x672E,INVALC,INVALC,INVALC,INVALC,0x3951, - INVALC,INVALC,INVALC,0x6736,INVALC,0x6732,INVALC,INVALC, - INVALC,INVALC,0x4966,INVALC,0x4B6C,0x4928,INVALC,INVALC, - 0x6731,INVALC,INVALC,0x6734,0x6733,INVALC,INVALC,INVALC, - 0x4B44,0x6737,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6738,INVALC,INVALC,0x4137,INVALC,0x6739,INVALC,INVALC, - 0x673B,INVALC,0x673F,INVALC,INVALC,0x673C,0x673A,0x473F, - 0x673D,INVALC,0x673E,INVALC,INVALC,INVALC,0x3232,INVALC, - 0x6745,0x6740,INVALC,INVALC,INVALC,0x6741,INVALC,INVALC, - INVALC,0x6742,INVALC,0x4221,INVALC,INVALC,INVALC,INVALC, - 0x6744,0x6743,0x6746,INVALC,INVALC,INVALC,INVALC,0x6747, - 0x6748,INVALC,INVALC,0x3F43,INVALC,0x3269,INVALC,0x6749, - 0x4E57,INVALC,0x3C2B,INVALC,INVALC,0x3D2D,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3B6A,0x4357,INVALC,INVALC,INVALC, - INVALC,INVALC,0x674A,0x674B,0x3131,INVALC,0x674C,INVALC, - /* Block 131, Array index 0x3F00 */ - INVALC,0x674D,0x674E,INVALC,INVALC,0x674F,INVALC,0x6750, - 0x363D,0x5A2A,0x6751,INVALC,0x4065,0x6752,0x3C4B,INVALC, - 0x6753,INVALC,0x5030,INVALC,INVALC,INVALC,0x6754,0x4A5E, - 0x345C,INVALC,INVALC,0x4124,0x3D58,INVALC,0x4971,0x3D2E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6755,0x3952,0x6756,0x484C,INVALC,0x6764,INVALC, - INVALC,INVALC,INVALC,0x6758,INVALC,0x4249,0x4775,0x383F, - 0x6757,0x4125,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6759,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x447A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x675B,0x675A,0x675D,INVALC,INVALC,0x675C,INVALC,0x675E, - INVALC,INVALC,0x6760,INVALC,0x675F,INVALC,0x344F,INVALC, - 0x6761,INVALC,0x6762,0x6763,INVALC,INVALC,0x3A31,0x4E49, - INVALC,0x6765,0x3F27,INVALC,INVALC,INVALC,0x3170,0x6766, - 0x6767,INVALC,INVALC,INVALC,INVALC,INVALC,0x6768,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3072,INVALC,0x6769,INVALC,INVALC, - INVALC,INVALC,0x676A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4967,INVALC,INVALC,INVALC,0x3C47,INVALC,0x676C, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3329,0x3032,INVALC, - INVALC,INVALC,INVALC,0x676B,0x676E,0x474E,INVALC,0x3F44, - INVALC,0x3256,INVALC,0x4B27,INVALC,INVALC,INVALC,INVALC, - 0x375D,0x365C,INVALC,0x676D,INVALC,0x326A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3423,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3171,0x6772,0x4E6A,0x425D,INVALC,INVALC,0x4944, - INVALC,0x677E,INVALC,0x3257,0x677C,INVALC,0x677A,0x6771, - INVALC,0x676F,INVALC,0x6770,INVALC,0x3C63,0x366C,0x4377, - INVALC,INVALC,INVALC,0x4651,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3151,INVALC,0x6774,0x6773,INVALC,INVALC,INVALC, - INVALC,0x6779,0x6775,0x6778,INVALC,INVALC,INVALC,INVALC, - /* Block 132, Array index 0x4000 */ - INVALC,INVALC,0x4C50,0x6777,0x3258,0x337D,0x677B,INVALC, - INVALC,0x677D,INVALC,INVALC,INVALC,INVALC,0x3754,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6823,0x682C, - 0x682D,INVALC,INVALC,INVALC,0x302B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6834,INVALC,INVALC,INVALC,INVALC, - 0x3071,INVALC,INVALC,0x682B,INVALC,INVALC,INVALC,0x682A, - INVALC,0x6825,0x6824,INVALC,0x6822,0x6821,0x4363,INVALC, - 0x427B,0x6827,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6826,INVALC,INVALC,INVALC,INVALC,0x6829,INVALC,INVALC, - INVALC,0x4170,0x3755,INVALC,INVALC,INVALC,INVALC,0x3141, - 0x6828,INVALC,0x3953,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4171,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x683A,INVALC,0x683B,INVALC,0x3259, - INVALC,INVALC,INVALC,0x322E,0x6838,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x682E,INVALC,0x6836, - INVALC,0x683D,0x6837,INVALC,INVALC,INVALC,0x6835,INVALC, - INVALC,INVALC,INVALC,0x6776,INVALC,INVALC,0x6833,INVALC, - INVALC,INVALC,0x682F,INVALC,INVALC,INVALC,0x3450,0x6831, - 0x683C,INVALC,0x6832,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x683E,INVALC,0x6830,0x477C,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D69,INVALC,INVALC,INVALC,0x6839,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x684F,INVALC,INVALC, - INVALC,0x6847,INVALC,INVALC,INVALC,0x3F7B,INVALC,INVALC, - INVALC,INVALC,0x3546,INVALC,0x365D,INVALC,0x6842,INVALC, - INVALC,INVALC,INVALC,0x325B,INVALC,INVALC,0x3E54,INVALC, - 0x6845,INVALC,INVALC,INVALC,0x3A5A,INVALC,INVALC,0x4551, - 0x684A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A6E,INVALC,0x6841,INVALC,INVALC,INVALC,0x325A, - 0x3856,0x4929,0x684B,INVALC,0x683F,INVALC,INVALC,0x6848, - INVALC,INVALC,INVALC,0x6852,INVALC,0x6843,INVALC,INVALC, - /* Block 133, Array index 0x4100 */ - INVALC,INVALC,INVALC,0x6844,0x463A,INVALC,INVALC,0x6849, - INVALC,INVALC,INVALC,0x6846,0x4B28,0x684C,0x3060,INVALC, - INVALC,INVALC,INVALC,0x6840,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x684E,INVALC,0x684D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x476B,0x6854,INVALC,0x685F,INVALC,INVALC,INVALC, - INVALC,0x337E,INVALC,INVALC,INVALC,0x6862,INVALC,INVALC, - 0x6850,INVALC,INVALC,INVALC,0x6855,0x4D6E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x685E,INVALC, - INVALC,0x4D55,INVALC,INVALC,INVALC,INVALC,0x4E2A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4378, - INVALC,INVALC,INVALC,0x336B,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4972,0x6864,0x4621,INVALC,INVALC,0x3031,INVALC, - INVALC,0x685D,INVALC,0x6859,0x4172,0x6853,0x685B,0x6860, - INVALC,0x472C,INVALC,INVALC,INVALC,0x302A,INVALC,0x6858, - INVALC,0x6861,0x4978,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x685C,INVALC,0x6857,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3E55,INVALC,INVALC,INVALC,INVALC, - 0x3D2F,INVALC,INVALC,INVALC,0x3C2C,INVALC,INVALC,INVALC, - INVALC,0x4C58,INVALC,INVALC,0x4947,INVALC,INVALC,0x6867, - INVALC,0x6870,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x685A,INVALC,INVALC, - INVALC,INVALC,0x3377,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3E78,0x6865,INVALC,0x686A,0x4173,INVALC,INVALC,0x6866, - INVALC,0x686D,INVALC,INVALC,0x435F,INVALC,0x686E,INVALC, - INVALC,0x4D56,0x6863,0x3338,INVALC,0x6869,INVALC,INVALC, - 0x686C,0x4C2C,INVALC,INVALC,INVALC,INVALC,0x686F,INVALC, - INVALC,0x6868,0x686B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4B29,INVALC,0x4F21,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6873,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x687A,INVALC,INVALC,0x6872, - /* Block 134, Array index 0x4200 */ - 0x3C43,INVALC,INVALC,INVALC,INVALC,INVALC,0x6851,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A4E,INVALC,0x4C22,0x6879,0x6878,INVALC,0x6874, - 0x6875,INVALC,0x3136,INVALC,INVALC,INVALC,INVALC,0x6877, - INVALC,0x6871,INVALC,INVALC,INVALC,INVALC,0x4455,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6876,0x307E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4222,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4A43,INVALC,INVALC, - 0x687B,0x6921,INVALC,0x4859,INVALC,INVALC,INVALC,INVALC, - 0x687E,0x3E56,0x3C49,0x6923,INVALC,INVALC,0x363E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6924,INVALC,0x4979, - 0x687D,INVALC,0x6856,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x687C,INVALC,INVALC,INVALC,INVALC, - 0x4F4F,0x4622,0x4973,INVALC,INVALC,0x692B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6931, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6932,INVALC, - 0x6925,INVALC,INVALC,INVALC,0x4776,INVALC,INVALC,0x692F, - 0x6927,INVALC,0x6929,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6933,0x6928,INVALC,INVALC,0x692C,INVALC,INVALC,0x3172, - INVALC,0x4665,INVALC,0x692D,0x6930,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6926,INVALC,0x4126,INVALC, - 0x692A,0x3B27,0x3F45,0x3730,0x4C74,INVALC,0x4C79,0x3D72, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6937,0x6935,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F4E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6934,INVALC,INVALC,INVALC,0x4D75,INVALC,0x6936, - 0x6938,INVALC,INVALC,INVALC,INVALC,0x6939,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x693C,0x693A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4623,0x693B,INVALC,INVALC, - INVALC,0x484D,0x692E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D73, - INVALC,0x693D,0x6942,0x4174,INVALC,INVALC,0x6941,INVALC, - /* Block 135, Array index 0x4300 */ - INVALC,INVALC,0x6922,INVALC,INVALC,INVALC,0x6943,0x4149, - INVALC,INVALC,0x693E,0x6940,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x693F,INVALC,INVALC,0x5D31,0x5D22, - INVALC,INVALC,0x6945,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6944,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4D76,INVALC,0x623C, - 0x6946,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6947, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6948,0x3857,INVALC, - 0x3554,INVALC,INVALC,INVALC,0x694A,0x515D,INVALC,INVALC, - INVALC,INVALC,0x3575,INVALC,0x4E3A,INVALC,0x3673,0x694B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x694C, - INVALC,INVALC,INVALC,0x436E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x694D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x467A,INVALC,0x303A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3263,0x6952,0x6953,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x694E,INVALC,0x3B3D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x694F,0x4742,INVALC,INVALC,INVALC, - INVALC,0x6950,0x6951,0x695B,INVALC,INVALC,INVALC,0x6955, - 0x6958,INVALC,INVALC,INVALC,INVALC,INVALC,0x6954,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6956,INVALC,0x6957,0x3C58, - INVALC,0x6959,INVALC,0x4341,INVALC,0x3756,0x3342,INVALC, - INVALC,INVALC,INVALC,INVALC,0x695C,INVALC,INVALC,INVALC, - INVALC,0x333F,INVALC,0x6961,INVALC,INVALC,0x695D,0x6960, - INVALC,INVALC,INVALC,INVALC,0x483A,INVALC,INVALC,INVALC, - INVALC,0x695E,INVALC,INVALC,0x695F,0x4948,0x485A,0x6962, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x427D,0x696C,INVALC,0x6968,INVALC,INVALC,0x326B,INVALC, - /* Block 136, Array index 0x4400 */ - 0x6966,INVALC,0x4B2A,0x6967,INVALC,INVALC,0x6964,INVALC, - 0x6965,0x696A,0x696D,INVALC,INVALC,0x696B,INVALC,INVALC, - INVALC,0x6969,0x6963,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4358,INVALC,0x6974,INVALC,0x4C2A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6972,INVALC,INVALC, - INVALC,0x6973,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x696E,INVALC,INVALC,0x6970, - INVALC,INVALC,INVALC,0x6971,INVALC,INVALC,INVALC,0x696F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4066,INVALC,0x4F39,0x6978,INVALC,0x6979,INVALC, - INVALC,INVALC,INVALC,0x6A21,INVALC,0x3F2A,INVALC,0x697B, - INVALC,0x697E,INVALC,INVALC,INVALC,INVALC,INVALC,0x6976, - 0x6975,INVALC,INVALC,0x6A22,INVALC,INVALC,0x325C,INVALC, - 0x697C,INVALC,0x6A23,INVALC,INVALC,INVALC,0x697D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x697A,INVALC,0x4433,INVALC, - 0x6977,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4768, - INVALC,INVALC,0x6A27,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4D3B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A26, - INVALC,INVALC,0x6A25,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6A2E,INVALC,INVALC,INVALC,0x6A28, - INVALC,INVALC,INVALC,0x6A30,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D66,0x6A33,INVALC,0x6A2A,INVALC,INVALC, - 0x6A2B,INVALC,INVALC,INVALC,0x6A2F,INVALC,0x6A32,0x6A31, - INVALC,INVALC,INVALC,0x6A29,INVALC,INVALC,INVALC,INVALC, - 0x6A2C,INVALC,0x6A3D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6A36,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A34, - INVALC,INVALC,0x6A35,INVALC,INVALC,INVALC,0x6A3A,0x6A3B, - INVALC,0x332A,INVALC,0x3542,INVALC,INVALC,0x6A39,INVALC, - /* Block 137, Array index 0x4500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x6A24,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6A38,0x6A3C,0x6A37, - INVALC,0x6A3E,INVALC,INVALC,INVALC,0x6A40,0x6A3F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A42,0x6A41,0x695A,INVALC,INVALC,INVALC,0x6A46, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A43,INVALC,INVALC,INVALC,INVALC,0x6A44,INVALC, - INVALC,0x6A45,INVALC,0x6A47,INVALC,INVALC,INVALC,INVALC, - 0x376C,INVALC,0x6A49,INVALC,0x6A48,INVALC,0x3D30,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3954,0x5E27,INVALC,INVALC, - INVALC,INVALC,0x6A4A,0x3D51,INVALC,INVALC,INVALC,0x3339, - INVALC,0x6A4B,INVALC,0x3152,INVALC,0x3E57,0x6A4C,INVALC, - INVALC,0x3955,0x6A4D,0x3061,INVALC,INVALC,INVALC,INVALC, - 0x493D,INVALC,INVALC,0x6A4E,INVALC,INVALC,INVALC,INVALC, - 0x3F6A,INVALC,0x6A55,INVALC,INVALC,0x6A52,INVALC,0x436F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6A53,0x6A50,0x365E, - INVALC,0x6A4F,0x6A56,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3736,INVALC,INVALC,0x425E,INVALC,0x6A5C,INVALC,INVALC, - INVALC,INVALC,0x6A58,INVALC,INVALC,INVALC,0x4235,0x6A57, - INVALC,0x6A5A,INVALC,INVALC,INVALC,INVALC,0x6A51,INVALC, - INVALC,INVALC,0x6A5B,INVALC,0x6A5D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x486F,INVALC,INVALC,0x6A59,INVALC, - 0x6A5E,0x6A60,INVALC,INVALC,0x3853,0x6A54,INVALC,0x3041, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A5F, - INVALC,0x3A5B,0x4E76,0x6A61,0x6A62,0x4175,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E22, - INVALC,INVALC,INVALC,INVALC,0x6A63,0x4D35,INVALC,INVALC, - 0x6A64,0x6A65,INVALC,INVALC,0x4A64,0x6A66,INVALC,0x3A40, - INVALC,0x4E23,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6A6B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6A6C,0x3E58,0x6A6A,INVALC,INVALC,INVALC, - 0x4D67,0x6A67,INVALC,INVALC,0x6A69,0x403D,0x3F7E,INVALC, - /* Block 138, Array index 0x4600 */ - INVALC,INVALC,0x6A68,INVALC,0x6A6D,INVALC,INVALC,0x4A23, - INVALC,INVALC,0x6A6F,INVALC,0x6A6E,INVALC,INVALC,INVALC, - 0x336C,INVALC,0x4B2B,0x6A70,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6A7C,0x6A72,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6A73,INVALC,INVALC, - INVALC,INVALC,0x6A74,0x6A75,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A79,INVALC, - 0x6A7A,INVALC,INVALC,0x6A78,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A76,INVALC,0x6A71,0x6A77,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6A7B,0x7037,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3228,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A7E,0x365F, - 0x6A7D,INVALC,INVALC,INVALC,0x6B22,INVALC,0x6B21,INVALC, - INVALC,INVALC,0x6B24,INVALC,INVALC,0x6B23,INVALC,0x6B25, - INVALC,INVALC,0x3D31,INVALC,0x6B26,INVALC,INVALC,0x6B27, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B28,0x403E, - INVALC,0x4D57,INVALC,0x6B29,INVALC,INVALC,0x4A24,0x4746, - 0x6B2A,INVALC,0x6B2B,0x382B,INVALC,INVALC,INVALC,0x352C, - INVALC,INVALC,INVALC,0x6B2C,INVALC,INVALC,0x3B6B,0x4741, - 0x6B2D,INVALC,0x3350,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B2E,INVALC,INVALC,INVALC,INVALC,0x6B30,0x4D77, - INVALC,0x6B2F,0x3F46,INVALC,0x6B31,INVALC,INVALC,0x6B32, - INVALC,INVALC,0x6B33,0x3451,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6B34,INVALC,INVALC,0x6B35,INVALC,0x6B36, - 0x6B37,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3351,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6B38,INVALC,0x6B39,0x6B3A,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3272,INVALC,INVALC,0x3F28,0x6B3B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6B3C,INVALC,INVALC,INVALC, - 0x6B3D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 139, Array index 0x4700 */ - 0x3840,INVALC,0x447B,0x6B3E,INVALC,INVALC,INVALC,INVALC, - 0x3757,INVALC,0x3F56,INVALC,0x6B41,INVALC,0x4624,INVALC, - 0x6B40,INVALC,INVALC,0x3731,INVALC,INVALC,0x6B3F,0x4277, - 0x352D,INVALC,INVALC,0x6B42,INVALC,0x6B43,INVALC,0x3E59, - INVALC,INVALC,INVALC,0x376D,INVALC,0x6B44,INVALC,INVALC, - INVALC,INVALC,0x4B2C,INVALC,INVALC,0x405F,INVALC,INVALC, - INVALC,0x3576,INVALC,0x4C75,0x414A,INVALC,0x6B45,INVALC, - INVALC,INVALC,0x3F47,0x4370,0x3E5A,INVALC,INVALC,INVALC, - INVALC,0x6B46,INVALC,INVALC,INVALC,INVALC,0x6B49,INVALC, - 0x6B4A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A3E,0x4242,0x6B48,INVALC,0x3E5B,0x493E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6B47,INVALC,INVALC,0x3B6C,INVALC, - 0x3153,INVALC,0x6B4E,0x3758,INVALC,INVALC,0x3B6E,INVALC, - INVALC,0x3B6D,INVALC,0x4F4D,0x6B4D,0x6B4C,0x4127,INVALC, - 0x354D,0x4F43,0x333A,0x3E5C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6B4B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6B50,INVALC,0x6B51,0x6B4F,INVALC,0x3858, - INVALC,0x4D40,INVALC,INVALC,0x3B6F,0x4727,INVALC,INVALC, - INVALC,0x6B54,INVALC,0x4040,INVALC,0x4342,INVALC,INVALC, - 0x4D36,INVALC,0x6B57,INVALC,INVALC,INVALC,0x386C,INVALC, - 0x403F,0x6B53,INVALC,0x6B58,0x386D,0x6B55,0x6B56,INVALC, - 0x6B52,INVALC,INVALC,INVALC,0x4062,0x4649,INVALC,INVALC, - 0x432F,INVALC,0x325D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4870,INVALC,INVALC,0x3543,INVALC,INVALC,0x4434, - INVALC,INVALC,0x6B5B,INVALC,0x6B59,INVALC,INVALC,0x434C, - INVALC,INVALC,INVALC,0x4041,0x3452,0x6B5A,INVALC,0x3F5B, - INVALC,INVALC,0x4E4A,INVALC,INVALC,INVALC,0x4F40,INVALC, - INVALC,INVALC,0x6B5C,0x6B67,0x4435,INVALC,0x6B66,INVALC, - 0x6B63,0x6B6B,0x6B64,INVALC,0x6B60,INVALC,0x447C,0x6B5F, - INVALC,INVALC,INVALC,0x6B5D,INVALC,0x4D21,0x3B70,INVALC, - INVALC,0x6B61,INVALC,0x6B5E,INVALC,INVALC,INVALC,0x6B65, - 0x3D74,INVALC,0x3841,INVALC,INVALC,INVALC,0x427A,INVALC, - /* Block 140, Array index 0x4800 */ - 0x4B45,0x315A,0x3062,INVALC,0x4625,INVALC,INVALC,0x6B69, - INVALC,INVALC,INVALC,INVALC,0x6B68,INVALC,0x4666,INVALC, - 0x6B6D,INVALC,INVALC,INVALC,0x6B62,INVALC,0x6B6C,0x6B6E, - INVALC,0x382C,0x6B6A,0x3956,INVALC,0x3C55,INVALC,INVALC, - 0x6B6F,0x4D58,INVALC,INVALC,INVALC,INVALC,0x6B72,INVALC, - 0x6B75,INVALC,INVALC,0x6B73,0x4935,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6B70,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3660,INVALC,INVALC,INVALC,INVALC,0x6B74,INVALC, - INVALC,0x6B76,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B7A,INVALC,INVALC,0x6B77,INVALC,0x6B79,0x6B78, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B7B,INVALC, - 0x3C31,INVALC,0x6B7D,0x6B7C,0x4968,INVALC,INVALC,0x6C21, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3759,INVALC, - INVALC,INVALC,INVALC,0x6B7E,0x6C22,INVALC,INVALC,0x6C23, - 0x3544,0x6641,0x3E79,INVALC,0x6C24,INVALC,INVALC,0x386E, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6C25,INVALC,INVALC, - 0x6C26,INVALC,INVALC,0x3B3E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5A4E,INVALC,0x6C27,INVALC,0x6C28,INVALC, - 0x3D32,INVALC,0x6C29,0x6C2A,INVALC,INVALC,0x6C2B,INVALC, - INVALC,0x6C2C,0x6C2D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 141, Array index 0x4900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x432B, - INVALC,INVALC,0x6C2E,INVALC,INVALC,INVALC,INVALC,0x6C30, - INVALC,0x6C2F,INVALC,INVALC,INVALC,INVALC,0x4626,INVALC, - 0x6C31,INVALC,0x4B2D,INVALC,0x6C32,INVALC,0x6C33,INVALC, - 0x6C34,INVALC,INVALC,INVALC,INVALC,0x6C35,INVALC,INVALC, - INVALC,INVALC,0x465A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3E5D,0x6C36,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x396B,0x502E,0x6C37,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6C38,0x493F,0x6C39,INVALC,0x6C41,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6C3A,INVALC,INVALC,0x6C3C,INVALC,INVALC, - INVALC,0x6C3B,0x6C3D,INVALC,0x4B46,0x6C3E,0x6C3F,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6C40,INVALC,INVALC,INVALC, - 0x6C42,INVALC,INVALC,INVALC,INVALC,0x332D,0x4467,INVALC, - 0x4969,0x3A62,0x3957,INVALC,INVALC,INVALC,INVALC,0x494F, - 0x325F,0x484E,0x6C45,0x3453,0x4055,0x6C44,0x6C49,0x4379, - 0x4C63,INVALC,0x6C47,0x6C48,0x352E,INVALC,0x6C4A,0x4763, - 0x425F,INVALC,INVALC,0x4871,0x453D,0x6C46,INVALC,0x4B47, - 0x326C,0x6C4C,0x4F28,0x4442,0x4F45,INVALC,INVALC,0x3B71, - 0x6C4B,INVALC,0x4231,INVALC,INVALC,0x6C5C,0x4128,INVALC, - INVALC,0x4678,INVALC,0x4950,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6C4F,0x3B3F,0x3B72,INVALC,0x3E5E,INVALC, - 0x4765,INVALC,0x382D,0x6C4E,0x6C4D,INVALC,0x496A,INVALC, - INVALC,INVALC,0x3C41,INVALC,INVALC,0x4552,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6C51,0x6C52,0x3958,0x6C50,INVALC,INVALC, - /* Block 142, Array index 0x4A00 */ - INVALC,INVALC,INVALC,INVALC,0x6C53,0x6C54,INVALC,0x6C56, - 0x4223,INVALC,0x6C55,0x3466,INVALC,0x6C58,INVALC,0x6C57, - 0x6C59,INVALC,INVALC,0x6C5B,0x6C5D,INVALC,0x6C5E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4056,INVALC,0x3C4F,0x6C5F, - INVALC,INVALC,INVALC,0x3352,INVALC,0x6C60,INVALC,INVALC, - 0x4176,0x6C61,INVALC,0x6C62,0x496B,INVALC,INVALC,0x352F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6C63,INVALC,INVALC,INVALC,0x4436,INVALC,INVALC, - INVALC,INVALC,0x315B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6C64,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3C71,INVALC,INVALC,INVALC,INVALC, - 0x3F76,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x422D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6C67,INVALC,INVALC,INVALC,0x6C66,INVALC, - INVALC,INVALC,0x6C65,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6C6D,0x6C6B,INVALC,INVALC,0x6C68, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6C6A,INVALC, - INVALC,INVALC,0x6C69,0x6C6C,INVALC,0x3577,INVALC,0x6C70, - INVALC,0x4057,INVALC,0x6C71,INVALC,INVALC,INVALC,INVALC, - 0x3859,INVALC,0x6C6E,0x6C6F,INVALC,INVALC,INVALC,0x4F29, - INVALC,INVALC,INVALC,0x4437,INVALC,0x4129,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6C72,INVALC,INVALC,0x6C75, - /* Block 143, Array index 0x4B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6C73,0x6C74,0x4D59,INVALC,INVALC,INVALC,INVALC,0x4627, - 0x6C78,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6C76,0x6C77,0x6C79, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6D29,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6C7C,INVALC,INVALC,INVALC,0x6C7D,0x6C7B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6C7A,INVALC,0x447D,INVALC,INVALC,0x6D21, - 0x6D25,0x6D22,0x6C7E,INVALC,0x6D23,INVALC,INVALC,INVALC, - 0x6D24,INVALC,INVALC,INVALC,INVALC,0x6D2B,INVALC,INVALC, - INVALC,0x6D26,INVALC,INVALC,INVALC,INVALC,INVALC,0x4058, - 0x6D28,INVALC,INVALC,0x6D2A,0x6D27,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6D2D,INVALC,0x3D33,INVALC,0x6D2C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6D2E,INVALC,INVALC,INVALC, - INVALC,0x6D2F,INVALC,INVALC,0x6D32,0x6D31,INVALC,0x6D30, - INVALC,INVALC,0x6D34,0x6D33,INVALC,0x4C76,INVALC,INVALC, - INVALC,0x6D36,INVALC,0x6D35,0x6D37,INVALC,INVALC,INVALC, - INVALC,0x6D38,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6D3A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6D39,0x3F48,0x6D3B,INVALC,INVALC,0x366D, - 0x6D3C,0x6D3E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D3F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6D40,0x6D3D,INVALC, - 0x6D41,INVALC,0x3C56,0x6D42,0x3530,0x3733,INVALC,INVALC, - INVALC,INVALC,0x382E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6D43,INVALC,INVALC,INVALC,0x4670, - INVALC,INVALC,0x453E,0x6D44,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6D47,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C34,INVALC,INVALC,0x6D46,0x6D45,0x375A,0x6D48,INVALC, - /* Block 144, Array index 0x4C00 */ - INVALC,INVALC,INVALC,0x3353,INVALC,0x6D4A,INVALC,INVALC, - INVALC,0x3A5C,0x6D49,INVALC,0x6D52,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6D4C,0x6D4E,0x4A65,0x6D4B,INVALC,INVALC, - INVALC,0x6D4D,INVALC,0x6D51,0x6D4F,0x3531,INVALC,0x6D50, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D53,INVALC, - INVALC,0x475A,0x4E58,INVALC,INVALC,INVALC,INVALC,0x3D34, - INVALC,INVALC,INVALC,0x6D54,INVALC,INVALC,INVALC,INVALC, - 0x4D22,0x6D56,INVALC,0x6D55,INVALC,INVALC,0x6D59,0x4D41, - INVALC,INVALC,0x6D58,INVALC,0x336D,0x6D57,0x6D5C,INVALC, - INVALC,0x6D5B,INVALC,INVALC,0x6D5A,0x4532,0x6D5D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D5E, - INVALC,INVALC,INVALC,INVALC,0x6D5F,INVALC,INVALC,0x396C, - INVALC,0x3725,0x6D60,0x6D61,0x6D62,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3F49,0x6D63,INVALC,0x3C2D,0x6D64, - INVALC,INVALC,INVALC,0x6D65,INVALC,INVALC,INVALC,0x5221, - 0x517E,INVALC,INVALC,INVALC,INVALC,0x6D66,0x6570,0x6D67, - 0x4324,0x3F2B,0x4740,INVALC,INVALC,INVALC,INVALC,0x6D68, - INVALC,INVALC,0x4A55,0x4454,0x397E,INVALC,INVALC,0x4329, - INVALC,INVALC,0x312A,INVALC,0x4B78,0x3F57,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x375E,INVALC, - INVALC,0x3661,INVALC,INVALC,0x4A56,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6D69,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6D6B,INVALC,INVALC,0x6D6A,0x3260,INVALC, - INVALC,0x4676,0x6D6C,0x4777,INVALC,0x4533,INVALC,0x6D6D, - 0x3D52,INVALC,INVALC,INVALC,0x6D6F,INVALC,INVALC,0x4C42, - 0x6D7E,0x6D71,0x6D72,INVALC,INVALC,0x4449,INVALC,INVALC, - /* Block 145, Array index 0x4D00 */ - 0x4260,0x4177,INVALC,0x4628,INVALC,0x6D70,0x3555,INVALC, - INVALC,INVALC,INVALC,0x6D79,INVALC,0x6D76,0x6E25,0x4629, - 0x4360,0x6D73,INVALC,0x447E,0x4553,0x6D74,0x6D78,0x3F60, - INVALC,0x4767,0x444C,INVALC,INVALC,0x4042,0x6D77,0x422E, - 0x4224,0x6D75,0x3029,0x4F22,INVALC,INVALC,INVALC,0x6D7A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4261,INVALC, - INVALC,0x3D35,0x3F4A,INVALC,INVALC,0x6D7C,0x6D7B,INVALC, - 0x306F,0x6D7D,INVALC,INVALC,0x492F,INVALC,0x6E27,INVALC, - INVALC,0x465B,0x3F6B,INVALC,INVALC,0x4359,INVALC,0x3678, - INVALC,0x6E26,0x4D37,0x313F,INVALC,0x4A57,0x3261,0x6E21, - 0x6E22,0x6E23,0x6E24,0x463B,0x4323,0x3063,0x6E28,INVALC, - 0x6E29,0x7423,INVALC,INVALC,0x423D,INVALC,0x6E2A,INVALC, - 0x3173,0x414C,INVALC,0x382F,INVALC,0x4D5A,INVALC,INVALC, - 0x6E2B,0x452C,INVALC,INVALC,INVALC,0x4178,0x3C57,0x6E2C, - INVALC,INVALC,0x6E2F,INVALC,INVALC,0x3D65,0x6E2D,0x412B, - 0x412A,INVALC,0x3064,INVALC,0x4E4B,0x6E31,INVALC,0x4872, - 0x6E33,0x6E32,0x6E30,0x6364,0x3454,INVALC,INVALC,0x6D6E, - INVALC,0x6E35,0x6E34,INVALC,INVALC,INVALC,INVALC,0x6E36, - INVALC,0x4D38,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4661,INVALC,INVALC,0x4B2E,INVALC, - 0x6E37,INVALC,0x3C59,INVALC,INVALC,INVALC,INVALC,0x6E38, - INVALC,0x6E39,INVALC,INVALC,INVALC,0x6E3A,INVALC,INVALC, - 0x4521,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x306A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3959,INVALC,INVALC,INVALC,0x4F3A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6E3E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3734,0x6E3B,INVALC,0x6E3C,INVALC,INVALC,INVALC, - 0x4974,INVALC,INVALC,INVALC,INVALC,0x3354,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4D39,INVALC,0x363F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4554,INVALC,INVALC, - /* Block 146, Array index 0x4E00 */ - INVALC,INVALC,0x6E3F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6E40,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6E41,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4522,INVALC,INVALC, - 0x6E43,INVALC,0x6E42,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4653,0x6E44,0x3D36,0x3C60,0x475B,0x4371,INVALC, - INVALC,INVALC,0x3C72,INVALC,0x3F6C,INVALC,0x6E45,INVALC, - 0x6E46,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3F5D,0x6E47,INVALC,0x6E48,INVALC,INVALC, - INVALC,0x6E49,0x4D6F,INVALC,0x3D37,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6E4B,0x6E4A,INVALC,0x395A,INVALC,0x3973, - 0x3B40,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6E4E,INVALC,INVALC,INVALC,INVALC,0x3D66, - INVALC,0x6E4D,INVALC,0x6E4C,INVALC,0x4269,INVALC,INVALC, - 0x386F,INVALC,0x4043,INVALC,INVALC,INVALC,INVALC,0x4830, - INVALC,INVALC,INVALC,INVALC,0x3D39,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6E4F,INVALC,0x3E5F,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6E52,0x6E50,INVALC,INVALC,INVALC,0x6E51, - INVALC,INVALC,INVALC,INVALC,0x6E54,0x6E53,INVALC,INVALC, - 0x3E7A,INVALC,0x6E55,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6E56,0x6E57,INVALC,INVALC,INVALC,INVALC,0x4850,0x3A53, - 0x3C61,0x6E58,INVALC,0x6E59,0x4E24,0x3D45,0x4C6E,0x4E4C, - 0x6E5A,0x3662,INVALC,INVALC,INVALC,INVALC,0x6E5B,INVALC, - 0x4523,INVALC,INVALC,0x6E5E,0x3378,0x3F4B,INVALC,0x6E5C, - INVALC,0x6E5D,INVALC,0x4460,INVALC,INVALC,0x4B55,0x367C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6E60,0x6E61,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6E5F,INVALC,INVALC,0x6E63, - /* Block 147, Array index 0x4F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x465F,0x3343,INVALC, - INVALC,0x6E67,INVALC,INVALC,0x6E64,0x6E66,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E62,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6F4F,INVALC,INVALC,0x6E65,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4E6B,INVALC,INVALC,0x385A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E6F, - INVALC,INVALC,INVALC,INVALC,0x4534,0x6E6A,INVALC,INVALC, - 0x6E6D,0x6E6B,INVALC,0x6E70,INVALC,INVALC,INVALC,INVALC, - 0x6E71,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E69, - INVALC,INVALC,0x6E76,0x3174,INVALC,INVALC,0x6E68,INVALC, - INVALC,INVALC,0x482D,INVALC,0x6E6C,INVALC,0x3E60,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x395B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B48,INVALC, - 0x3664,INVALC,INVALC,0x3D46,INVALC,0x463C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x412D,INVALC,0x6E74,INVALC,0x6E6E,0x6E73,INVALC, - 0x4C43,INVALC,0x4438,0x6E75,0x6E72,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x412C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E79, - INVALC,0x6E78,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E77, - INVALC,INVALC,0x4B2F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D7B,INVALC,INVALC,INVALC, - INVALC,0x6E7A,0x4A5F,INVALC,INVALC,0x3154,INVALC,INVALC, - INVALC,INVALC,0x4946,0x4372,INVALC,INVALC,INVALC,INVALC, - 0x3578,INVALC,0x6E7C,INVALC,0x395D,INVALC,INVALC,INVALC, - /* Block 148, Array index 0x5000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3B2C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E7B, - 0x3F6D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3F6E,0x6F21,0x6F23,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3E7B,INVALC,0x6F22,0x6F24,INVALC,INVALC,0x3653,INVALC, - 0x4945,INVALC,INVALC,0x3C62,0x4F23,INVALC,0x6E7E,0x3A78, - INVALC,INVALC,0x4F3F,INVALC,INVALC,0x6F26,INVALC,INVALC, - INVALC,INVALC,0x6F25,0x6F27,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6E7D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4669,INVALC,0x4555,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4457,INVALC,0x6F2C,INVALC, - INVALC,INVALC,INVALC,0x4343,0x6F28,INVALC,INVALC,INVALC, - 0x6F29,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x372D,INVALC,0x6F2B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3830,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6F2A,INVALC,0x3E61,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3379,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6F30,INVALC,0x3A3F,0x4179, - INVALC,INVALC,0x444A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x333B, - INVALC,INVALC,INVALC,INVALC,0x6F2E,0x6F2F,0x4443,INVALC, - 0x6F2D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6F31,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6F37,INVALC,INVALC,INVALC,INVALC, - 0x6F3A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F39,0x452D,INVALC,INVALC,INVALC,INVALC,0x6F32,0x6F33, - 0x6F36,INVALC,INVALC,INVALC,INVALC,0x6F38,INVALC,INVALC, - INVALC,0x3640,INVALC,INVALC,0x6F3B,0x6F35,INVALC,INVALC, - 0x6F34,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 149, Array index 0x5100 */ - INVALC,INVALC,INVALC,0x6F3F,INVALC,INVALC,INVALC,0x6F40, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F41,INVALC,INVALC,0x6F3E,0x6F3D,INVALC,INVALC,INVALC, - 0x3E62,0x462A,0x6F3C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6F45,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6F43,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6F44,0x6F42,INVALC, - 0x4278,INVALC,0x6F46,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6F47,INVALC,INVALC,0x6F49,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3455,0x6F48,0x4C7A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6F54,0x6F4A,INVALC,INVALC,0x6F4D,INVALC, - 0x6F4B,INVALC,0x6F4C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6F4E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F50,INVALC,INVALC,INVALC,INVALC,0x6F51,INVALC,0x6F52, - INVALC,INVALC,INVALC,INVALC,0x6F55,0x6F53,0x6F56,0x6F58, - INVALC,0x6F57,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 150, Array index 0x5200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4439, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4C67,INVALC,0x6F59,0x412E,INVALC,INVALC,INVALC,0x6F5A, - INVALC,0x4A44,0x6F5B,0x332B,INVALC,INVALC,INVALC,0x313C, - INVALC,0x3457,INVALC,0x3456,0x6F5C,INVALC,0x6F5D,INVALC, - 0x6F5E,0x6F5F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F60,INVALC,0x3458,0x3355,0x395E,0x4836,INVALC,0x6F62, - 0x6F61,INVALC,INVALC,INVALC,INVALC,0x6F63,INVALC,INVALC, - INVALC,INVALC,0x315C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6F66,INVALC,0x6F65,0x6F64,INVALC,0x6F67,INVALC, - INVALC,INVALC,INVALC,0x6F6A,INVALC,INVALC,INVALC,0x3047, - INVALC,INVALC,0x6F68,INVALC,0x6F6C,0x6F6B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6F6E,0x6F6D,0x6F6F,INVALC, - 0x462E,INVALC,INVALC,INVALC,0x6F70,INVALC,INVALC,INVALC, - INVALC,0x6F71,0x6F73,INVALC,INVALC,0x6F72,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 151, Array index 0x5300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x496C,INVALC,INVALC,INVALC, - INVALC,0x6F74,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F75,INVALC,0x3A65,INVALC,INVALC,INVALC,0x6F76,0x6F77, - INVALC,INVALC,0x4B49,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x414B,INVALC,INVALC,INVALC,0x3024, - 0x424B,INVALC,0x6F78,INVALC,0x496D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6F7B,0x6F79,0x395F,INVALC,0x6F7A, - 0x3842,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4A45,0x6F7D,0x7021,0x6F7E,0x7022, - INVALC,INVALC,0x3121,0x3F58,0x3D7C,0x3459,0x7023,INVALC, - INVALC,INVALC,0x4766,INVALC,0x7025,INVALC,INVALC,INVALC, - 0x3122,INVALC,0x7024,0x4444,INVALC,0x4E4D,0x462B,0x6F7C, - 0x4E26,INVALC,0x3831,INVALC,INVALC,0x4D5B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3679,0x4E34,INVALC, - 0x3728,INVALC,0x4262,0x6721,INVALC,0x7026,0x332C,0x3F6F, - INVALC,INVALC,INVALC,INVALC,0x3356,0x7028,INVALC,0x7029, - 0x7027,0x3764,INVALC,0x3A5D,0x3E63,INVALC,INVALC,INVALC, - 0x3123,INVALC,INVALC,0x4E59,INVALC,INVALC,INVALC,0x702B, - 0x6E2E,INVALC,0x702A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x702E,0x702C,0x702D,INVALC,0x702F,INVALC,0x7030,0x4E6C, - 0x7031,0x7032,INVALC,0x4049,0x483B,INVALC,INVALC,INVALC, - 0x3F7D,0x3467,INVALC,INVALC,0x4D3A,0x326D,0x3D38,0x385B, - INVALC,0x7035,INVALC,0x7034,0x3B73,0x7036,0x7033,INVALC, - INVALC,0x3B28,INVALC,INVALC,INVALC,0x703A,0x6A2D,INVALC, - INVALC,0x5256,INVALC,0x3F77,0x7038,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4E25,0x4671,INVALC,INVALC,INVALC,INVALC, - 0x312B,INVALC,0x4063,0x3C36,INVALC,INVALC,INVALC,INVALC, - 0x4A37,INVALC,0x3140,INVALC,INVALC,INVALC,0x4E6D,0x4D6B, - INVALC,0x703B,INVALC,0x4545,INVALC,INVALC,INVALC,INVALC, - /* Block 152, Array index 0x5400 */ - 0x3C7B,INVALC,INVALC,INVALC,0x703C,INVALC,0x703D,0x3F4C, - 0x703E,INVALC,0x4E6E,INVALC,INVALC,0x7039,0x7040,0x7042, - INVALC,0x7041,INVALC,0x703F,INVALC,INVALC,0x7043,INVALC, - INVALC,0x7044,INVALC,INVALC,0x417A,INVALC,0x3262,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7045,INVALC,INVALC,0x4C38, - INVALC,INVALC,0x7046,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7047,INVALC,0x4F2A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5B31,0x7048,INVALC,INVALC,INVALC,0x7049,0x704A,INVALC, - INVALC,INVALC,0x704E,INVALC,0x704B,INVALC,0x704C,INVALC, - 0x704D,0x704F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4044,INVALC,INVALC,INVALC,0x4C77,INVALC, - INVALC,0x4045,INVALC,INVALC,0x7050,INVALC,0x4873,INVALC, - 0x7051,0x7353,0x4C4C,INVALC,0x7052,INVALC,0x7053,INVALC, - 0x7054,0x3357,INVALC,0x7056,INVALC,0x3F59,INVALC,INVALC, - INVALC,0x7057,INVALC,INVALC,0x3724,INVALC,INVALC,INVALC, - INVALC,0x7058,0x705C,INVALC,0x705A,INVALC,INVALC,INVALC, - INVALC,0x705B,INVALC,INVALC,0x3373,0x7059,0x705D,INVALC, - INVALC,INVALC,INVALC,0x705E,INVALC,0x3048,INVALC,0x705F, - 0x7060,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3E64,INVALC,INVALC,INVALC,0x7061,INVALC,INVALC,INVALC, - 0x3547,INVALC,INVALC,0x7064,INVALC,INVALC,0x7063,INVALC, - 0x7062,INVALC,INVALC,0x6B71,INVALC,0x4A5C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7065,0x7066,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7067,INVALC,INVALC,0x7068,INVALC, - 0x7069,INVALC,INVALC,0x706A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x345A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x706B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x706C,0x4723,INVALC, - INVALC,INVALC,0x706E,0x323B,INVALC,0x7071,0x7070,INVALC, - INVALC,INVALC,INVALC,0x3124,INVALC,INVALC,INVALC,0x3641, - /* Block 153, Array index 0x5500 */ - INVALC,0x4A47,0x443A,0x3A22,INVALC,0x3960,0x3D67,INVALC, - 0x3F5C,INVALC,INVALC,INVALC,0x7073,INVALC,INVALC,0x7072, - 0x4D42,0x3468,0x4852,0x465C,INVALC,INVALC,INVALC,0x3F7C, - 0x4E4E,INVALC,0x375B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7076,INVALC,INVALC,0x7075,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4B4B,0x462C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3150,INVALC,INVALC,0x7077, - 0x7074,INVALC,INVALC,0x4951,0x4D6A,0x7078,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7079,INVALC, - INVALC,INVALC,INVALC,0x707B,0x426A,0x335B,0x335C,0x707A, - INVALC,INVALC,INVALC,INVALC,0x3469,0x3832,INVALC,INVALC, - 0x346A,INVALC,INVALC,0x453F,INVALC,INVALC,0x4E60,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x385C, - INVALC,INVALC,INVALC,0x707C,INVALC,INVALC,INVALC,0x707D, - 0x707E,0x7121,INVALC,0x7123,0x7122,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4977,INVALC,0x7124,INVALC,INVALC,INVALC,INVALC,0x7125, - INVALC,0x7126,INVALC,INVALC,INVALC,INVALC,0x7127,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7129,0x7128,INVALC,0x712A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4874,0x664C,INVALC,INVALC,0x3F29, - INVALC,INVALC,0x3532,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x712B,INVALC,0x712C,INVALC,0x522C,0x5D3B,0x4853, - INVALC,INVALC,0x307B,INVALC,0x303B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3B74,0x4B30,0x3E7E,INVALC, - /* Block 154, Array index 0x5600 */ - INVALC,INVALC,INVALC,0x712D,INVALC,0x4C5F,INVALC,INVALC, - INVALC,0x712E,0x4D5C,INVALC,0x3142,INVALC,INVALC,INVALC, - 0x3B41,INVALC,0x712F,0x326E,0x7130,INVALC,INVALC,INVALC, - 0x7131,INVALC,INVALC,INVALC,INVALC,0x7133,0x7134,INVALC, - 0x7136,0x7132,INVALC,INVALC,0x7135,INVALC,INVALC,INVALC, - 0x345B,INVALC,INVALC,INVALC,0x7137,INVALC,0x7138,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7139,0x713A,INVALC, - INVALC,INVALC,0x713B,INVALC,INVALC,0x713D,INVALC,INVALC, - INVALC,0x713C,INVALC,0x713F,0x7142,INVALC,INVALC,INVALC, - 0x713E,0x7140,0x7141,INVALC,INVALC,0x7143,INVALC,0x3642, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3C73,0x7144, - 0x7145,0x3961,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7146,INVALC,INVALC, - 0x333E,INVALC,INVALC,INVALC,0x474F,0x7147,0x7148,INVALC, - INVALC,INVALC,INVALC,0x435A,0x466B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7149,INVALC,INVALC,INVALC, - INVALC,0x477D,INVALC,INVALC,0x424C,0x3158,0x366E,INVALC, - 0x366F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4373,0x714E,0x3670,INVALC,INVALC,0x326F,INVALC,INVALC, - 0x714D,INVALC,INVALC,0x714B,INVALC,0x714C,INVALC,0x714A, - INVALC,INVALC,0x7158,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x714F,0x7150,INVALC, - INVALC,0x7151,0x7152,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7154,INVALC,INVALC,0x7153,INVALC,INVALC,INVALC,0x3D59, - /* Block 155, Array index 0x5700 */ - INVALC,0x7155,INVALC,INVALC,INVALC,0x7157,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3533,0x7156, - INVALC,INVALC,0x417B,0x3833,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7159,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x424D,INVALC,INVALC,0x715A,INVALC,INVALC,INVALC,INVALC, - 0x462D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x715B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7160,INVALC, - 0x715E,INVALC,0x715D,0x715F,INVALC,0x715C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7162,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7161,INVALC,0x7164, - INVALC,INVALC,0x3643,0x7163,INVALC,INVALC,INVALC,0x7165, - INVALC,INVALC,0x7166,INVALC,0x7168,0x7167,INVALC,INVALC, - INVALC,0x7169,0x716B,0x716A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x397C,INVALC,INVALC,INVALC,INVALC,0x716C,INVALC,INVALC, - 0x716D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x333C,INVALC,INVALC,INVALC,0x716E,INVALC,INVALC,INVALC, - 0x716F,INVALC,INVALC,INVALC,0x3F71,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7170, - INVALC,0x7171,INVALC,0x7172,0x7173,INVALC,INVALC,INVALC, - 0x3962,INVALC,INVALC,INVALC,INVALC,INVALC,0x7174,0x7175, - INVALC,INVALC,0x7176,0x7177,INVALC,INVALC,0x7178,INVALC, - INVALC,INVALC,0x4831,0x717A,INVALC,0x4926,0x717B,0x7179, - INVALC,0x717D,INVALC,INVALC,0x717C,INVALC,INVALC,0x717E, - INVALC,INVALC,INVALC,0x7221,INVALC,INVALC,INVALC,INVALC, - /* Block 156, Array index 0x5800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7222,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7223,INVALC,0x7224,INVALC,INVALC,INVALC,INVALC,0x7225, - INVALC,INVALC,0x7226,0x7227,INVALC,0x7228,INVALC,0x7229, - 0x722A,0x722B,0x722C,INVALC,INVALC,INVALC,0x722D,0x722E, - INVALC,0x5D35,0x722F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6478,0x3534,INVALC,INVALC,INVALC, - INVALC,0x3321,0x3A32,0x7231,0x7230,0x4C25,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7233,0x7234,0x7232, - INVALC,0x7235,INVALC,INVALC,0x4B62,INVALC,INVALC,INVALC, - 0x7236,INVALC,0x357B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F25, - INVALC,INVALC,INVALC,INVALC,0x7237,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7239,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x303E,INVALC, - INVALC,0x723A,0x4A2B,0x7238,INVALC,INVALC,0x723B,0x723C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x723D, - 0x723E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x723F,INVALC,0x4B6E,0x3B2D,INVALC,0x3A7A,0x412F,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7240,INVALC,INVALC,INVALC, - INVALC,0x7243,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7241,INVALC,INVALC,INVALC,INVALC,INVALC,0x7244,INVALC, - INVALC,0x3871,0x7242,INVALC,INVALC,INVALC,INVALC,0x7245, - INVALC,0x7246,0x7247,INVALC,0x724B,INVALC,0x3B2A,INVALC, - INVALC,INVALC,INVALC,0x4264,INVALC,INVALC,INVALC,INVALC, - INVALC,0x724C,0x7249,0x7248,0x724A,INVALC,INVALC,INVALC, - 0x375F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7250,0x724F,0x724E,INVALC,INVALC,0x3033,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 157, Array index 0x5900 */ - INVALC,INVALC,INVALC,INVALC,0x725A,INVALC,0x7256,INVALC, - 0x7257,0x7253,0x7259,INVALC,0x7255,0x3362,INVALC,INVALC, - 0x4F4C,INVALC,0x7258,0x7254,0x7252,0x7251,INVALC,INVALC, - INVALC,INVALC,INVALC,0x725C,INVALC,INVALC,INVALC,INVALC, - INVALC,0x725F,INVALC,INVALC,0x725E,0x725D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4949,0x725B,0x3073, - 0x7260,INVALC,0x7262,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x336F,0x724D,0x3137,INVALC,INVALC,0x7264,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7263,0x7261, - 0x432D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4B70,INVALC,INVALC,INVALC,INVALC,0x4E5A, - INVALC,INVALC,0x7265,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7266,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7267, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7268,INVALC, - 0x7269,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x443B,INVALC,0x726A, - INVALC,0x4837,INVALC,0x726F,0x726B,INVALC,INVALC,INVALC, - 0x726C,INVALC,INVALC,0x4B31,0x4C44,INVALC,0x4650,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 158, Array index 0x5A00 */ - INVALC,INVALC,INVALC,0x7270,INVALC,INVALC,0x7271,0x463E, - 0x726E,0x726D,INVALC,INVALC,INVALC,INVALC,0x322A,INVALC, - INVALC,INVALC,0x7279,INVALC,INVALC,0x7278,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3175,INVALC,INVALC,INVALC,0x7276, - INVALC,INVALC,INVALC,0x7275,INVALC,INVALC,0x7273,INVALC, - 0x337B,INVALC,0x7272,0x3C32,0x3229,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3963,INVALC,INVALC,0x727C,0x727B, - INVALC,0x727A,INVALC,INVALC,0x7277,INVALC,0x727D,INVALC, - 0x727E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7325,0x7324,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7326,INVALC,INVALC,0x312D,0x7321,0x7322,INVALC, - 0x3974,0x4C39,INVALC,INVALC,0x7323,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4B32,INVALC,INVALC,0x732B, - INVALC,INVALC,0x7327,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x732C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7329, - INVALC,0x7328,INVALC,INVALC,INVALC,INVALC,INVALC,0x375C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x732D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x732E,INVALC,INVALC,INVALC, - INVALC,0x732F,INVALC,0x732A,INVALC,INVALC,INVALC,0x7274, - INVALC,INVALC,0x7330,INVALC,0x4461,INVALC,INVALC,INVALC, - 0x7334,INVALC,0x7335,0x7333,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7332,0x7338,INVALC,0x7331,INVALC,0x7336,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7337, - INVALC,INVALC,INVALC,0x733A,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7339,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x733C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x733D,INVALC,0x733E, - INVALC,INVALC,0x4F49,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x733B,0x426B,0x3A6D,INVALC,INVALC,0x733F,INVALC,INVALC, - /* Block 159, Array index 0x5B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7340,0x7341,INVALC,INVALC,0x7342,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7343,INVALC,INVALC, - 0x3834,0x7344,INVALC,INVALC,INVALC,0x7345,INVALC,0x3C2F, - INVALC,0x7346,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7347,INVALC,INVALC,0x7348,0x7349,INVALC,INVALC,INVALC, - INVALC,0x734C,0x734A,0x4F3C,INVALC,0x734B,INVALC,0x4E6F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x734D,INVALC,0x4E5B, - INVALC,INVALC,INVALC,INVALC,INVALC,0x734E,0x477E,INVALC, - INVALC,0x734F,0x7351,INVALC,INVALC,0x7352,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7350,0x396D,0x4C4D,0x4B63,0x5677,INVALC,0x5D60,0x4B7B, - INVALC,INVALC,INVALC,INVALC,0x322B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7354,0x3550,0x7355,0x7356, - 0x7357,INVALC,0x3975,INVALC,0x7358,INVALC,INVALC,INVALC, - 0x6054,0x4C5B,INVALC,0x4263,0x7359,0x735B,0x735A,INVALC, - 0x735C,INVALC,INVALC,INVALC,INVALC,0x735D,INVALC,INVALC, - 0x735E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x735F, - INVALC,INVALC,INVALC,INVALC,0x7360,INVALC,0x7361,0x7362, - INVALC,0x7363,INVALC,0x7364,0x7365,0x7366,INVALC,INVALC, - /* Block 160, Array index 0x5C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7367, - 0x7368,INVALC,INVALC,INVALC,INVALC,INVALC,0x4524,INVALC, - INVALC,INVALC,INVALC,0x385D,INVALC,0x736A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x414D,0x736B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x736C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4921,INVALC,INVALC,0x736D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x736E,0x6337,INVALC,INVALC,0x6C5A,0x706D, - INVALC,INVALC,0x736F,INVALC,0x7370,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7372, - 0x7373,0x7374,0x4E70,0x7371,INVALC,INVALC,0x7375,0x7376, - INVALC,INVALC,0x7378,INVALC,0x7377,INVALC,INVALC,INVALC, - INVALC,INVALC,0x737A,INVALC,INVALC,INVALC,0x737B,0x7379, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E36,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x737C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x737D,0x6354,INVALC,INVALC, - 0x737E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 256, Array index 0x5D00 */ - INVALC,0x212A,INVALC,0x2174,0x2170,0x2173,0x2175,INVALC, - 0x214A,0x214B,0x2176,0x215C,0x2124,INVALC,0x2125,0x213F, - 0x2330,0x2331,0x2332,0x2333,0x2334,0x2335,0x2336,0x2337, - 0x2338,0x2339,0x2127,0x2128,0x2163,0x2161,0x2164,0x2129, - 0x2177,0x2341,0x2342,0x2343,0x2344,0x2345,0x2346,0x2347, - 0x2348,0x2349,0x234A,0x234B,0x234C,0x234D,0x234E,0x234F, - 0x2350,0x2351,0x2352,0x2353,0x2354,0x2355,0x2356,0x2357, - 0x2358,0x2359,0x235A,0x214E,INVALC,0x214F,0x2130,0x2132, - 0x212E,0x2361,0x2362,0x2363,0x2364,0x2365,0x2366,0x2367, - 0x2368,0x2369,0x236A,0x236B,0x236C,0x236D,0x236E,0x236F, - 0x2370,0x2371,0x2372,0x2373,0x2374,0x2375,0x2376,0x2377, - 0x2378,0x2379,0x237A,0x2150,0x2143,0x2151,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2131,INVALC,0x216F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, -}; - -#endif /* ICONV_FROM_UCS_CCS_JIS_X0208_1990 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> jis_x0208_1990 size-optimized table (25440 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_JIS_X0208_1990) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_size_jis_x0208_1990[] = -{ - 0x01E9, /* Ranges number */ - 0x0E1F, /* Unranged codes number */ - 0x1572, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0x0391, 0x03A9, 0x05BE, - /* Array index: 0x0006 */ 0x03B1, 0x03C9, 0x05D7, - /* Array index: 0x0009 */ 0x0410, 0x0451, 0x05F0, - /* Array index: 0x000C */ 0x2015, 0x2021, 0x0632, - /* Array index: 0x000F */ 0x2190, 0x2193, 0x063F, - /* Array index: 0x0012 */ 0x2227, 0x222C, 0x0643, - /* Array index: 0x0015 */ 0x2500, 0x2503, 0x0649, - /* Array index: 0x0018 */ 0x2517, 0x251D, 0x064D, - /* Array index: 0x001B */ 0x2523, 0x2525, 0x0654, - /* Array index: 0x001E */ 0x3000, 0x3015, 0x0657, - /* Array index: 0x0021 */ 0x3041, 0x3093, 0x066D, - /* Array index: 0x0024 */ 0x309B, 0x30F6, 0x06C0, - /* Array index: 0x0027 */ 0x30FB, 0x30FE, 0x071C, - /* Array index: 0x002A */ 0x4E07, 0x4E19, 0x0720, - /* Array index: 0x002D */ 0x4E38, 0x4E3C, 0x0733, - /* Array index: 0x0030 */ 0x4E4B, 0x4E4F, 0x0738, - /* Array index: 0x0033 */ 0x4E55, 0x4E5F, 0x073D, - /* Array index: 0x0036 */ 0x4E85, 0x4EB0, 0x0748, - /* Array index: 0x0039 */ 0x4EC0, 0x4ECF, 0x0774, - /* Array index: 0x003C */ 0x4ED4, 0x4EE5, 0x0784, - /* Array index: 0x003F */ 0x4F09, 0x4F11, 0x0796, - /* Array index: 0x0042 */ 0x4F4D, 0x4F5E, 0x079F, - /* Array index: 0x0045 */ 0x4FAB, 0x4FAF, 0x07B1, - /* Array index: 0x0048 */ 0x4FC2, 0x4FC4, 0x07B6, - /* Array index: 0x004B */ 0x4FD7, 0x4FE5, 0x07B9, - /* Array index: 0x004E */ 0x5021, 0x502D, 0x07C8, - /* Array index: 0x0051 */ 0x5047, 0x5049, 0x07D5, - /* Array index: 0x0054 */ 0x5072, 0x5078, 0x07D8, - /* Array index: 0x0057 */ 0x5098, 0x509A, 0x07DF, - /* Array index: 0x005A */ 0x50B2, 0x50B7, 0x07E2, - /* Array index: 0x005D */ 0x5100, 0x5104, 0x07E8, - /* Array index: 0x0060 */ 0x5112, 0x511A, 0x07ED, - /* Array index: 0x0063 */ 0x513A, 0x5154, 0x07F6, - /* Array index: 0x0066 */ 0x5168, 0x516E, 0x0811, - /* Array index: 0x0069 */ 0x5175, 0x5178, 0x0818, - /* Array index: 0x006C */ 0x5189, 0x5199, 0x081C, - /* Array index: 0x006F */ 0x51A2, 0x51B7, 0x082D, - /* Array index: 0x0072 */ 0x51C4, 0x51C6, 0x0843, - /* Array index: 0x0075 */ 0x51C9, 0x51CD, 0x0846, - /* Array index: 0x0078 */ 0x51DB, 0x51E1, 0x084B, - /* Array index: 0x007B */ 0x51E6, 0x51EA, 0x0852, - /* Array index: 0x007E */ 0x51F5, 0x520B, 0x0857, - /* Array index: 0x0081 */ 0x5236, 0x523B, 0x086E, - /* Array index: 0x0084 */ 0x524A, 0x524F, 0x0874, - /* Array index: 0x0087 */ 0x5263, 0x5265, 0x087A, - /* Array index: 0x008A */ 0x526F, 0x5275, 0x087D, - /* Array index: 0x008D */ 0x5287, 0x5289, 0x0884, - /* Array index: 0x0090 */ 0x52A9, 0x52AD, 0x0887, - /* Array index: 0x0093 */ 0x52D5, 0x52E7, 0x088C, - /* Array index: 0x0096 */ 0x52F8, 0x52FA, 0x089F, - /* Array index: 0x0099 */ 0x52FE, 0x5308, 0x08A2, - /* Array index: 0x009C */ 0x5315, 0x531A, 0x08AD, - /* Array index: 0x009F */ 0x5338, 0x534A, 0x08B3, - /* Array index: 0x00A2 */ 0x5351, 0x5360, 0x08C6, - /* Array index: 0x00A5 */ 0x536E, 0x5378, 0x08D6, - /* Array index: 0x00A8 */ 0x53A5, 0x53A9, 0x08E1, - /* Array index: 0x00AB */ 0x53C8, 0x53CE, 0x08E6, - /* Array index: 0x00AE */ 0x53DF, 0x53FA, 0x08ED, - /* Array index: 0x00B1 */ 0x5408, 0x5411, 0x0909, - /* Array index: 0x00B4 */ 0x5429, 0x542E, 0x0913, - /* Array index: 0x00B7 */ 0x5438, 0x5442, 0x0919, - /* Array index: 0x00BA */ 0x5446, 0x544A, 0x0924, - /* Array index: 0x00BD */ 0x5473, 0x547D, 0x0929, - /* Array index: 0x00C0 */ 0x548B, 0x5492, 0x0934, - /* Array index: 0x00C3 */ 0x54BC, 0x54C9, 0x093C, - /* Array index: 0x00C6 */ 0x54E5, 0x54E9, 0x094A, - /* Array index: 0x00C9 */ 0x5544, 0x5546, 0x094F, - /* Array index: 0x00CC */ 0x5587, 0x558B, 0x0952, - /* Array index: 0x00CF */ 0x5598, 0x559F, 0x0957, - /* Array index: 0x00D2 */ 0x55A7, 0x55B0, 0x095F, - /* Array index: 0x00D5 */ 0x5614, 0x5618, 0x0969, - /* Array index: 0x00D8 */ 0x5668, 0x566C, 0x096E, - /* Array index: 0x00DB */ 0x56C0, 0x56C3, 0x0973, - /* Array index: 0x00DE */ 0x56D7, 0x56DB, 0x0977, - /* Array index: 0x00E1 */ 0x5726, 0x5728, 0x097C, - /* Array index: 0x00E4 */ 0x574E, 0x5751, 0x097F, - /* Array index: 0x00E7 */ 0x57A0, 0x57A4, 0x0983, - /* Array index: 0x00EA */ 0x57D2, 0x57D6, 0x0988, - /* Array index: 0x00ED */ 0x582F, 0x5835, 0x098D, - /* Array index: 0x00F0 */ 0x5857, 0x585A, 0x0994, - /* Array index: 0x00F3 */ 0x58B8, 0x58BB, 0x0998, - /* Array index: 0x00F6 */ 0x58D5, 0x58D9, 0x099C, - /* Array index: 0x00F9 */ 0x58EB, 0x58F2, 0x09A1, - /* Array index: 0x00FC */ 0x58F7, 0x58FD, 0x09A9, - /* Array index: 0x00FF */ 0x5915, 0x591C, 0x09B0, - /* Array index: 0x0102 */ 0x5927, 0x5932, 0x09B8, - /* Array index: 0x0105 */ 0x5947, 0x5949, 0x09C4, - /* Array index: 0x0108 */ 0x594E, 0x595A, 0x09C7, - /* Array index: 0x010B */ 0x5965, 0x596E, 0x09D4, - /* Array index: 0x010E */ 0x5981, 0x5984, 0x09DE, - /* Array index: 0x0111 */ 0x59D0, 0x59D4, 0x09E2, - /* Array index: 0x0114 */ 0x5ABC, 0x5AC2, 0x09E7, - /* Array index: 0x0117 */ 0x5B54, 0x5B66, 0x09EE, - /* Array index: 0x011A */ 0x5B85, 0x5B8F, 0x0A01, - /* Array index: 0x011D */ 0x5B95, 0x5BA6, 0x0A0C, - /* Array index: 0x0120 */ 0x5BB3, 0x5BB9, 0x0A1E, - /* Array index: 0x0123 */ 0x5BC2, 0x5BC9, 0x0A25, - /* Array index: 0x0126 */ 0x5BD0, 0x5BD4, 0x0A2D, - /* Array index: 0x0129 */ 0x5BDB, 0x5BEB, 0x0A32, - /* Array index: 0x012C */ 0x5BFE, 0x5C13, 0x0A43, - /* Array index: 0x012F */ 0x5C38, 0x5C41, 0x0A59, - /* Array index: 0x0132 */ 0x5C4A, 0x5C55, 0x0A63, - /* Array index: 0x0135 */ 0x5CA8, 0x5CAC, 0x0A6F, - /* Array index: 0x0138 */ 0x5CB6, 0x5CBE, 0x0A74, - /* Array index: 0x013B */ 0x5CE8, 0x5CEA, 0x0A7D, - /* Array index: 0x013E */ 0x5D14, 0x5D1B, 0x0A80, - /* Array index: 0x0141 */ 0x5DE3, 0x5DE8, 0x0A88, - /* Array index: 0x0144 */ 0x5DF1, 0x5DF7, 0x0A8E, - /* Array index: 0x0147 */ 0x5E19, 0x5E1D, 0x0A95, - /* Array index: 0x014A */ 0x5E36, 0x5E38, 0x0A9A, - /* Array index: 0x014D */ 0x5E43, 0x5E47, 0x0A9D, - /* Array index: 0x0150 */ 0x5E5F, 0x5E64, 0x0AA2, - /* Array index: 0x0153 */ 0x5E72, 0x5E84, 0x0AA8, - /* Array index: 0x0156 */ 0x5E95, 0x5E97, 0x0ABB, - /* Array index: 0x0159 */ 0x5EB5, 0x5EB8, 0x0ABE, - /* Array index: 0x015C */ 0x5EC1, 0x5EC3, 0x0AC2, - /* Array index: 0x015F */ 0x5EC8, 0x5ECA, 0x0AC5, - /* Array index: 0x0162 */ 0x5EDD, 0x5EE3, 0x0AC8, - /* Array index: 0x0165 */ 0x5EF0, 0x5F04, 0x0ACF, - /* Array index: 0x0168 */ 0x5F09, 0x5F18, 0x0AE4, - /* Array index: 0x016B */ 0x5F25, 0x5F29, 0x0AF4, - /* Array index: 0x016E */ 0x5F69, 0x5F73, 0x0AF9, - /* Array index: 0x0171 */ 0x5F7F, 0x5F99, 0x0B04, - /* Array index: 0x0174 */ 0x5FA8, 0x5FAE, 0x0B1F, - /* Array index: 0x0177 */ 0x5FD6, 0x5FDD, 0x0B26, - /* Array index: 0x017A */ 0x600E, 0x6016, 0x0B2E, - /* Array index: 0x017D */ 0x6019, 0x602B, 0x0B37, - /* Array index: 0x0180 */ 0x6041, 0x6043, 0x0B4A, - /* Array index: 0x0183 */ 0x605F, 0x6070, 0x0B4D, - /* Array index: 0x0186 */ 0x6089, 0x608D, 0x0B5F, - /* Array index: 0x0189 */ 0x60A6, 0x60AA, 0x0B64, - /* Array index: 0x018C */ 0x60B2, 0x60B8, 0x0B69, - /* Array index: 0x018F */ 0x60C5, 0x60C7, 0x0B70, - /* Array index: 0x0192 */ 0x60DF, 0x60E3, 0x0B73, - /* Array index: 0x0195 */ 0x60F0, 0x60FB, 0x0B78, - /* Array index: 0x0198 */ 0x610D, 0x610F, 0x0B84, - /* Array index: 0x019B */ 0x613C, 0x613F, 0x0B87, - /* Array index: 0x019E */ 0x6147, 0x614E, 0x0B8B, - /* Array index: 0x01A1 */ 0x6158, 0x615A, 0x0B93, - /* Array index: 0x01A4 */ 0x616E, 0x6177, 0x0B96, - /* Array index: 0x01A7 */ 0x61C6, 0x61CD, 0x0BA0, - /* Array index: 0x01AA */ 0x61F4, 0x6200, 0x0BA8, - /* Array index: 0x01AD */ 0x6208, 0x6216, 0x0BB5, - /* Array index: 0x01B0 */ 0x621A, 0x6221, 0x0BC4, - /* Array index: 0x01B3 */ 0x622E, 0x6234, 0x0BCC, - /* Array index: 0x01B6 */ 0x623F, 0x6241, 0x0BD3, - /* Array index: 0x01B9 */ 0x6247, 0x624E, 0x0BD6, - /* Array index: 0x01BC */ 0x627C, 0x6284, 0x0BDE, - /* Array index: 0x01BF */ 0x6291, 0x629E, 0x0BE7, - /* Array index: 0x01C2 */ 0x62B9, 0x62BD, 0x0BF5, - /* Array index: 0x01C5 */ 0x62C5, 0x62E1, 0x0BFA, - /* Array index: 0x01C8 */ 0x62EC, 0x62F7, 0x0C17, - /* Array index: 0x01CB */ 0x62FE, 0x6302, 0x0C23, - /* Array index: 0x01CE */ 0x6307, 0x6309, 0x0C28, - /* Array index: 0x01D1 */ 0x633D, 0x633F, 0x0C2B, - /* Array index: 0x01D4 */ 0x634C, 0x6350, 0x0C2E, - /* Array index: 0x01D7 */ 0x6367, 0x636B, 0x0C33, - /* Array index: 0x01DA */ 0x639F, 0x63AC, 0x0C38, - /* Array index: 0x01DD */ 0x64E0, 0x64E7, 0x0C46, - /* Array index: 0x01E0 */ 0x652A, 0x652C, 0x0C4E, - /* Array index: 0x01E3 */ 0x6534, 0x653F, 0x0C51, - /* Array index: 0x01E6 */ 0x6555, 0x6559, 0x0C5D, - /* Array index: 0x01E9 */ 0x6574, 0x6578, 0x0C62, - /* Array index: 0x01EC */ 0x6587, 0x6589, 0x0C67, - /* Array index: 0x01EF */ 0x65AB, 0x65B0, 0x0C6A, - /* Array index: 0x01F2 */ 0x65C1, 0x65C6, 0x0C70, - /* Array index: 0x01F5 */ 0x65E0, 0x65ED, 0x0C76, - /* Array index: 0x01F8 */ 0x6634, 0x6636, 0x0C84, - /* Array index: 0x01FB */ 0x663F, 0x6644, 0x0C87, - /* Array index: 0x01FE */ 0x665D, 0x665F, 0x0C8D, - /* Array index: 0x0201 */ 0x6664, 0x6669, 0x0C90, - /* Array index: 0x0204 */ 0x666E, 0x6670, 0x0C96, - /* Array index: 0x0207 */ 0x6683, 0x6689, 0x0C99, - /* Array index: 0x020A */ 0x6696, 0x6698, 0x0CA0, - /* Array index: 0x020D */ 0x66D9, 0x66DD, 0x0CA3, - /* Array index: 0x0210 */ 0x66F0, 0x6700, 0x0CA8, - /* Array index: 0x0213 */ 0x6714, 0x6717, 0x0CB9, - /* Array index: 0x0216 */ 0x671B, 0x671F, 0x0CBD, - /* Array index: 0x0219 */ 0x6726, 0x672E, 0x0CC2, - /* Array index: 0x021C */ 0x6734, 0x673A, 0x0CCB, - /* Array index: 0x021F */ 0x674E, 0x6753, 0x0CD2, - /* Array index: 0x0222 */ 0x675C, 0x6765, 0x0CD8, - /* Array index: 0x0225 */ 0x676D, 0x6777, 0x0CE2, - /* Array index: 0x0228 */ 0x679C, 0x67A2, 0x0CED, - /* Array index: 0x022B */ 0x67B3, 0x67B9, 0x0CF4, - /* Array index: 0x022E */ 0x67CE, 0x67D4, 0x0CFB, - /* Array index: 0x0231 */ 0x67F1, 0x67F5, 0x0D02, - /* Array index: 0x0234 */ 0x67FE, 0x6804, 0x0D07, - /* Array index: 0x0237 */ 0x6829, 0x682B, 0x0D0E, - /* Array index: 0x023A */ 0x683C, 0x6843, 0x0D11, - /* Array index: 0x023D */ 0x684D, 0x6854, 0x0D19, - /* Array index: 0x0240 */ 0x68A6, 0x68A8, 0x0D21, - /* Array index: 0x0243 */ 0x68AD, 0x68BC, 0x0D24, - /* Array index: 0x0246 */ 0x68C9, 0x68CD, 0x0D34, - /* Array index: 0x0249 */ 0x68D4, 0x68DA, 0x0D39, - /* Array index: 0x024C */ 0x68DF, 0x68E3, 0x0D40, - /* Array index: 0x024F */ 0x690B, 0x690F, 0x0D45, - /* Array index: 0x0252 */ 0x6919, 0x691C, 0x0D4A, - /* Array index: 0x0255 */ 0x6921, 0x692A, 0x0D4E, - /* Array index: 0x0258 */ 0x6953, 0x6955, 0x0D58, - /* Array index: 0x025B */ 0x6959, 0x6962, 0x0D5B, - /* Array index: 0x025E */ 0x696A, 0x6982, 0x0D65, - /* Array index: 0x0261 */ 0x69CA, 0x69D0, 0x0D7E, - /* Array index: 0x0264 */ 0x6A0A, 0x6A0C, 0x0D85, - /* Array index: 0x0267 */ 0x6A12, 0x6A14, 0x0D88, - /* Array index: 0x026A */ 0x6A1E, 0x6A23, 0x0D8B, - /* Array index: 0x026D */ 0x6A29, 0x6A2B, 0x0D91, - /* Array index: 0x0270 */ 0x6A35, 0x6A3A, 0x0D94, - /* Array index: 0x0273 */ 0x6AC1, 0x6AC3, 0x0D9A, - /* Array index: 0x0276 */ 0x6B1D, 0x6B23, 0x0D9D, - /* Array index: 0x0279 */ 0x6B37, 0x6B3E, 0x0DA4, - /* Array index: 0x027C */ 0x6B5F, 0x6B6A, 0x0DAC, - /* Array index: 0x027F */ 0x6B89, 0x6B8D, 0x0DB8, - /* Array index: 0x0282 */ 0x6BAF, 0x6BC0, 0x0DBD, - /* Array index: 0x0285 */ 0x6BD2, 0x6BD4, 0x0DCF, - /* Array index: 0x0288 */ 0x6C3E, 0x6C42, 0x0DD2, - /* Array index: 0x028B */ 0x6C5D, 0x6C62, 0x0DD7, - /* Array index: 0x028E */ 0x6C7D, 0x6C83, 0x0DDD, - /* Array index: 0x0291 */ 0x6C99, 0x6C9B, 0x0DE4, - /* Array index: 0x0294 */ 0x6CB8, 0x6CC5, 0x0DE7, - /* Array index: 0x0297 */ 0x6CE1, 0x6CE5, 0x0DF5, - /* Array index: 0x029A */ 0x6CEF, 0x6CF3, 0x0DFA, - /* Array index: 0x029D */ 0x6D29, 0x6D2B, 0x0DFF, - /* Array index: 0x02A0 */ 0x6D32, 0x6D38, 0x0E02, - /* Array index: 0x02A3 */ 0x6D77, 0x6D79, 0x0E09, - /* Array index: 0x02A6 */ 0x6DC5, 0x6DC7, 0x0E0C, - /* Array index: 0x02A9 */ 0x6DE8, 0x6DEE, 0x0E0F, - /* Array index: 0x02AC */ 0x6DF7, 0x6DFB, 0x0E16, - /* Array index: 0x02AF */ 0x6E05, 0x6E0B, 0x0E1B, - /* Array index: 0x02B2 */ 0x6E19, 0x6E26, 0x0E22, - /* Array index: 0x02B5 */ 0x6E29, 0x6E2F, 0x0E30, - /* Array index: 0x02B8 */ 0x6E7E, 0x6E82, 0x0E37, - /* Array index: 0x02BB */ 0x6ED1, 0x6ED5, 0x0E3C, - /* Array index: 0x02BE */ 0x6EFE, 0x6F02, 0x0E41, - /* Array index: 0x02C1 */ 0x6F11, 0x6F15, 0x0E46, - /* Array index: 0x02C4 */ 0x6F6D, 0x6F70, 0x0E4B, - /* Array index: 0x02C7 */ 0x6F80, 0x6F86, 0x0E4F, - /* Array index: 0x02CA */ 0x6FC0, 0x6FC3, 0x0E56, - /* Array index: 0x02CD */ 0x6FDF, 0x6FE1, 0x0E5A, - /* Array index: 0x02D0 */ 0x6FEB, 0x6FF3, 0x0E5D, - /* Array index: 0x02D3 */ 0x701A, 0x701F, 0x0E66, - /* Array index: 0x02D6 */ 0x70AC, 0x70AF, 0x0E6C, - /* Array index: 0x02D9 */ 0x70B8, 0x70BA, 0x0E70, - /* Array index: 0x02DC */ 0x7162, 0x7169, 0x0E73, - /* Array index: 0x02DF */ 0x71E5, 0x71E7, 0x0E7B, - /* Array index: 0x02E2 */ 0x71EC, 0x71EE, 0x0E7E, - /* Array index: 0x02E5 */ 0x723A, 0x7240, 0x0E81, - /* Array index: 0x02E8 */ 0x7246, 0x724C, 0x0E88, - /* Array index: 0x02EB */ 0x727D, 0x7282, 0x0E8F, - /* Array index: 0x02EE */ 0x72C2, 0x72C6, 0x0E95, - /* Array index: 0x02F1 */ 0x72E0, 0x72E2, 0x0E9A, - /* Array index: 0x02F4 */ 0x72F7, 0x72FD, 0x0E9D, - /* Array index: 0x02F7 */ 0x731B, 0x731F, 0x0EA4, - /* Array index: 0x02FA */ 0x7329, 0x732F, 0x0EA9, - /* Array index: 0x02FD */ 0x7432, 0x7436, 0x0EB0, - /* Array index: 0x0300 */ 0x7459, 0x7464, 0x0EB5, - /* Array index: 0x0303 */ 0x74EE, 0x74F8, 0x0EC1, - /* Array index: 0x0306 */ 0x7503, 0x7505, 0x0ECC, - /* Array index: 0x0309 */ 0x750C, 0x750E, 0x0ECF, - /* Array index: 0x030C */ 0x7530, 0x7533, 0x0ED2, - /* Array index: 0x030F */ 0x7537, 0x753C, 0x0ED6, - /* Array index: 0x0312 */ 0x7549, 0x7551, 0x0EDC, - /* Array index: 0x0315 */ 0x7559, 0x755D, 0x0EE5, - /* Array index: 0x0318 */ 0x7562, 0x756D, 0x0EEA, - /* Array index: 0x031B */ 0x7573, 0x7578, 0x0EF6, - /* Array index: 0x031E */ 0x7586, 0x7591, 0x0EFC, - /* Array index: 0x0321 */ 0x75B1, 0x75BE, 0x0F08, - /* Array index: 0x0324 */ 0x75F0, 0x75F4, 0x0F16, - /* Array index: 0x0327 */ 0x761F, 0x7624, 0x0F1B, - /* Array index: 0x032A */ 0x7646, 0x7648, 0x0F21, - /* Array index: 0x032D */ 0x7667, 0x766C, 0x0F24, - /* Array index: 0x0330 */ 0x7678, 0x7688, 0x0F2A, - /* Array index: 0x0333 */ 0x76B7, 0x76BA, 0x0F3B, - /* Array index: 0x0336 */ 0x76DB, 0x76E7, 0x0F3F, - /* Array index: 0x0339 */ 0x7707, 0x770C, 0x0F4C, - /* Array index: 0x033C */ 0x771E, 0x7726, 0x0F52, - /* Array index: 0x033F */ 0x77B9, 0x77BF, 0x0F5B, - /* Array index: 0x0342 */ 0x77DA, 0x77DC, 0x0F62, - /* Array index: 0x0345 */ 0x77ED, 0x77EF, 0x0F65, - /* Array index: 0x0348 */ 0x7825, 0x7827, 0x0F68, - /* Array index: 0x034B */ 0x788C, 0x788E, 0x0F6B, - /* Array index: 0x034E */ 0x792A, 0x792C, 0x0F6E, - /* Array index: 0x0351 */ 0x7947, 0x7949, 0x0F71, - /* Array index: 0x0354 */ 0x7953, 0x7957, 0x0F74, - /* Array index: 0x0357 */ 0x795D, 0x7962, 0x0F79, - /* Array index: 0x035A */ 0x797F, 0x7985, 0x0F7F, - /* Array index: 0x035D */ 0x798D, 0x798F, 0x0F86, - /* Array index: 0x0360 */ 0x79B9, 0x79C1, 0x0F89, - /* Array index: 0x0363 */ 0x79E3, 0x79E9, 0x0F92, - /* Array index: 0x0366 */ 0x7A17, 0x7A20, 0x0F99, - /* Array index: 0x0369 */ 0x7A3B, 0x7A43, 0x0FA3, - /* Array index: 0x036C */ 0x7A4D, 0x7A50, 0x0FAC, - /* Array index: 0x036F */ 0x7A61, 0x7A63, 0x0FB0, - /* Array index: 0x0372 */ 0x7A92, 0x7A98, 0x0FB3, - /* Array index: 0x0375 */ 0x7AAE, 0x7AB0, 0x0FBA, - /* Array index: 0x0378 */ 0x7AC3, 0x7AD5, 0x0FBD, - /* Array index: 0x037B */ 0x7AD9, 0x7AE6, 0x0FD0, - /* Array index: 0x037E */ 0x7AF6, 0x7AFA, 0x0FDE, - /* Array index: 0x0381 */ 0x7B45, 0x7B56, 0x0FE3, - /* Array index: 0x0384 */ 0x7B94, 0x7BA1, 0x0FF5, - /* Array index: 0x0387 */ 0x7BE4, 0x7BE6, 0x1003, - /* Array index: 0x038A */ 0x7C11, 0x7C14, 0x1006, - /* Array index: 0x038D */ 0x7C3D, 0x7C40, 0x100A, - /* Array index: 0x0390 */ 0x7C4C, 0x7C50, 0x100E, - /* Array index: 0x0393 */ 0x7C81, 0x7C83, 0x1013, - /* Array index: 0x0396 */ 0x7CA1, 0x7CA8, 0x1016, - /* Array index: 0x0399 */ 0x7CAD, 0x7CB3, 0x101E, - /* Array index: 0x039C */ 0x7CDC, 0x7CE2, 0x1025, - /* Array index: 0x039F */ 0x7D02, 0x7D06, 0x102C, - /* Array index: 0x03A2 */ 0x7D14, 0x7D22, 0x1031, - /* Array index: 0x03A5 */ 0x7D2B, 0x7D35, 0x1040, - /* Array index: 0x03A8 */ 0x7D42, 0x7D46, 0x104B, - /* Array index: 0x03AB */ 0x7D4B, 0x7D50, 0x1050, - /* Array index: 0x03AE */ 0x7D61, 0x7D63, 0x1056, - /* Array index: 0x03B1 */ 0x7D71, 0x7D76, 0x1059, - /* Array index: 0x03B4 */ 0x7D99, 0x7D9C, 0x105F, - /* Array index: 0x03B7 */ 0x7DAB, 0x7DB5, 0x1063, - /* Array index: 0x03BA */ 0x7DBA, 0x7DBF, 0x106E, - /* Array index: 0x03BD */ 0x7DDA, 0x7DE1, 0x1074, - /* Array index: 0x03C0 */ 0x7E09, 0x7E0B, 0x107C, - /* Array index: 0x03C3 */ 0x7E1E, 0x7E23, 0x107F, - /* Array index: 0x03C6 */ 0x7E37, 0x7E3E, 0x1085, - /* Array index: 0x03C9 */ 0x7E54, 0x7E5E, 0x108D, - /* Array index: 0x03CC */ 0x7E66, 0x7E6A, 0x1098, - /* Array index: 0x03CF */ 0x7E79, 0x7E83, 0x109D, - /* Array index: 0x03D2 */ 0x7E8C, 0x7E96, 0x10A8, - /* Array index: 0x03D5 */ 0x7F4C, 0x7F55, 0x10B3, - /* Array index: 0x03D8 */ 0x7F67, 0x7F6B, 0x10BD, - /* Array index: 0x03DB */ 0x7F75, 0x7F79, 0x10C2, - /* Array index: 0x03DE */ 0x7F82, 0x7F8E, 0x10C7, - /* Array index: 0x03E1 */ 0x8000, 0x8006, 0x10D4, - /* Array index: 0x03E4 */ 0x8015, 0x8019, 0x10DB, - /* Array index: 0x03E7 */ 0x805E, 0x8062, 0x10E0, - /* Array index: 0x03EA */ 0x806F, 0x807F, 0x10E5, - /* Array index: 0x03ED */ 0x8084, 0x808C, 0x10F6, - /* Array index: 0x03F0 */ 0x80A9, 0x80B4, 0x10FF, - /* Array index: 0x03F3 */ 0x80D9, 0x80DE, 0x110B, - /* Array index: 0x03F6 */ 0x8105, 0x810A, 0x1111, - /* Array index: 0x03F9 */ 0x8150, 0x8155, 0x1117, - /* Array index: 0x03FC */ 0x8178, 0x817A, 0x111D, - /* Array index: 0x03FF */ 0x817F, 0x8183, 0x1120, - /* Array index: 0x0402 */ 0x81BD, 0x81C2, 0x1125, - /* Array index: 0x0405 */ 0x81D8, 0x81DA, 0x112B, - /* Array index: 0x0408 */ 0x81FA, 0x8202, 0x112E, - /* Array index: 0x040B */ 0x8205, 0x821F, 0x1137, - /* Array index: 0x040E */ 0x8229, 0x822E, 0x1152, - /* Array index: 0x0411 */ 0x8233, 0x8239, 0x1158, - /* Array index: 0x0414 */ 0x8258, 0x825A, 0x115F, - /* Array index: 0x0417 */ 0x826E, 0x8278, 0x1162, - /* Array index: 0x041A */ 0x82AB, 0x82B3, 0x116D, - /* Array index: 0x041D */ 0x82D1, 0x82D4, 0x1176, - /* Array index: 0x0420 */ 0x82DB, 0x82E7, 0x117A, - /* Array index: 0x0423 */ 0x82F9, 0x82FB, 0x1187, - /* Array index: 0x0426 */ 0x8302, 0x8306, 0x118A, - /* Array index: 0x0429 */ 0x8316, 0x8318, 0x118F, - /* Array index: 0x042C */ 0x8331, 0x8339, 0x1192, - /* Array index: 0x042F */ 0x839E, 0x83A2, 0x119B, - /* Array index: 0x0432 */ 0x83EF, 0x83F4, 0x11A0, - /* Array index: 0x0435 */ 0x840B, 0x840E, 0x11A6, - /* Array index: 0x0438 */ 0x8461, 0x8463, 0x11AA, - /* Array index: 0x043B */ 0x8469, 0x8471, 0x11AD, - /* Array index: 0x043E */ 0x84B8, 0x84BC, 0x11B6, - /* Array index: 0x0441 */ 0x84C9, 0x84D1, 0x11BB, - /* Array index: 0x0444 */ 0x8511, 0x851A, 0x11C4, - /* Array index: 0x0447 */ 0x8548, 0x854B, 0x11CE, - /* Array index: 0x044A */ 0x8568, 0x856A, 0x11D2, - /* Array index: 0x044D */ 0x85A6, 0x85AF, 0x11D5, - /* Array index: 0x0450 */ 0x85F7, 0x85FB, 0x11DF, - /* Array index: 0x0453 */ 0x868A, 0x868C, 0x11E4, - /* Array index: 0x0456 */ 0x86A9, 0x86AB, 0x11E7, - /* Array index: 0x0459 */ 0x86EC, 0x86EF, 0x11EA, - /* Array index: 0x045C */ 0x8706, 0x870A, 0x11EE, - /* Array index: 0x045F */ 0x880D, 0x8811, 0x11F3, - /* Array index: 0x0462 */ 0x8821, 0x8823, 0x11F8, - /* Array index: 0x0465 */ 0x885D, 0x8863, 0x11FB, - /* Array index: 0x0468 */ 0x887D, 0x8882, 0x1202, - /* Array index: 0x046B */ 0x88BF, 0x88C5, 0x1208, - /* Array index: 0x046E */ 0x88F2, 0x88F4, 0x120F, - /* Array index: 0x0471 */ 0x88F8, 0x88FE, 0x1212, - /* Array index: 0x0474 */ 0x895E, 0x8960, 0x1219, - /* Array index: 0x0477 */ 0x8986, 0x898B, 0x121C, - /* Array index: 0x047A */ 0x8996, 0x899A, 0x1222, - /* Array index: 0x047D */ 0x89A6, 0x89AC, 0x1227, - /* Array index: 0x0480 */ 0x8A16, 0x8A18, 0x122E, - /* Array index: 0x0483 */ 0x8A3A, 0x8A3C, 0x1231, - /* Array index: 0x0486 */ 0x8A50, 0x8A55, 0x1234, - /* Array index: 0x0489 */ 0x8A69, 0x8A73, 0x123A, - /* Array index: 0x048C */ 0x8AA0, 0x8AA8, 0x1245, - /* Array index: 0x048F */ 0x8ACB, 0x8ACF, 0x124E, - /* Array index: 0x0492 */ 0x8ADA, 0x8AE7, 0x1253, - /* Array index: 0x0495 */ 0x8AFE, 0x8B04, 0x1261, - /* Array index: 0x0498 */ 0x8B16, 0x8B21, 0x1268, - /* Array index: 0x049B */ 0x8B58, 0x8B5C, 0x1274, - /* Array index: 0x049E */ 0x8B6B, 0x8B74, 0x1279, - /* Array index: 0x04A1 */ 0x8C6A, 0x8C6C, 0x1283, - /* Array index: 0x04A4 */ 0x8C78, 0x8C7C, 0x1286, - /* Array index: 0x04A7 */ 0x8C89, 0x8C8E, 0x128B, - /* Array index: 0x04AA */ 0x8C9D, 0x8CA2, 0x1291, - /* Array index: 0x04AD */ 0x8CA7, 0x8CCE, 0x1297, - /* Array index: 0x04B0 */ 0x8CDA, 0x8CE6, 0x12BF, - /* Array index: 0x04B3 */ 0x8CFA, 0x8CFD, 0x12CC, - /* Array index: 0x04B6 */ 0x8D04, 0x8D16, 0x12D0, - /* Array index: 0x04B9 */ 0x8D70, 0x8D74, 0x12E3, - /* Array index: 0x04BC */ 0x8E08, 0x8E0A, 0x12E8, - /* Array index: 0x04BF */ 0x8E1D, 0x8E1F, 0x12EB, - /* Array index: 0x04C2 */ 0x8E47, 0x8E4C, 0x12EE, - /* Array index: 0x04C5 */ 0x8EAA, 0x8EB1, 0x12F4, - /* Array index: 0x04C8 */ 0x8EC8, 0x8ECD, 0x12FC, - /* Array index: 0x04CB */ 0x8EFB, 0x8EFE, 0x1302, - /* Array index: 0x04CE */ 0x8F12, 0x8F15, 0x1306, - /* Array index: 0x04D1 */ 0x8F19, 0x8F1F, 0x130A, - /* Array index: 0x04D4 */ 0x8F42, 0x8F46, 0x1311, - /* Array index: 0x04D7 */ 0x8F4C, 0x8F4E, 0x1316, - /* Array index: 0x04DA */ 0x8F5F, 0x8F64, 0x1319, - /* Array index: 0x04DD */ 0x8F9B, 0x8F9F, 0x131F, - /* Array index: 0x04E0 */ 0x8FAD, 0x8FB2, 0x1324, - /* Array index: 0x04E3 */ 0x8FBA, 0x8FBC, 0x132A, - /* Array index: 0x04E6 */ 0x8FE5, 0x8FF0, 0x132D, - /* Array index: 0x04E9 */ 0x8FF7, 0x8FFA, 0x1339, - /* Array index: 0x04EC */ 0x900B, 0x9023, 0x133D, - /* Array index: 0x04EF */ 0x9035, 0x9039, 0x1356, - /* Array index: 0x04F2 */ 0x9047, 0x9059, 0x135B, - /* Array index: 0x04F5 */ 0x906D, 0x906F, 0x136E, - /* Array index: 0x04F8 */ 0x9075, 0x9084, 0x1371, - /* Array index: 0x04FB */ 0x9149, 0x914E, 0x1381, - /* Array index: 0x04FE */ 0x91C6, 0x91D1, 0x1387, - /* Array index: 0x0501 */ 0x91DB, 0x91E7, 0x1393, - /* Array index: 0x0504 */ 0x9298, 0x929C, 0x13A0, - /* Array index: 0x0507 */ 0x9318, 0x931A, 0x13A5, - /* Array index: 0x050A */ 0x932B, 0x932F, 0x13A8, - /* Array index: 0x050D */ 0x93AC, 0x93B0, 0x13AD, - /* Array index: 0x0510 */ 0x93D6, 0x93D8, 0x13B2, - /* Array index: 0x0513 */ 0x9418, 0x941A, 0x13B5, - /* Array index: 0x0516 */ 0x9451, 0x9453, 0x13B8, - /* Array index: 0x0519 */ 0x947C, 0x9481, 0x13BB, - /* Array index: 0x051C */ 0x9587, 0x958B, 0x13C1, - /* Array index: 0x051F */ 0x95A0, 0x95A8, 0x13C6, - /* Array index: 0x0522 */ 0x95D4, 0x95D8, 0x13CF, - /* Array index: 0x0525 */ 0x964B, 0x9650, 0x13D4, - /* Array index: 0x0528 */ 0x965B, 0x9666, 0x13DA, - /* Array index: 0x052B */ 0x9672, 0x967A, 0x13E6, - /* Array index: 0x052E */ 0x968A, 0x968F, 0x13EF, - /* Array index: 0x0531 */ 0x9694, 0x969C, 0x13F5, - /* Array index: 0x0534 */ 0x96B0, 0x96BC, 0x13FE, - /* Array index: 0x0537 */ 0x96C0, 0x96CE, 0x140B, - /* Array index: 0x053A */ 0x9704, 0x9713, 0x141A, - /* Array index: 0x053D */ 0x975E, 0x976D, 0x142A, - /* Array index: 0x0540 */ 0x9784, 0x9786, 0x143A, - /* Array index: 0x0543 */ 0x97F2, 0x97F6, 0x143D, - /* Array index: 0x0546 */ 0x97FF, 0x9808, 0x1442, - /* Array index: 0x0549 */ 0x980F, 0x9813, 0x144C, - /* Array index: 0x054C */ 0x9837, 0x983D, 0x1451, - /* Array index: 0x054F */ 0x984B, 0x984F, 0x1458, - /* Array index: 0x0552 */ 0x986F, 0x9874, 0x145D, - /* Array index: 0x0555 */ 0x98EB, 0x98EF, 0x1463, - /* Array index: 0x0558 */ 0x98FC, 0x98FE, 0x1468, - /* Array index: 0x055B */ 0x9910, 0x9914, 0x146B, - /* Array index: 0x055E */ 0x991D, 0x9921, 0x1470, - /* Array index: 0x0561 */ 0x9950, 0x9952, 0x1475, - /* Array index: 0x0564 */ 0x9996, 0x9999, 0x1478, - /* Array index: 0x0567 */ 0x99AC, 0x99AE, 0x147C, - /* Array index: 0x056A */ 0x99C4, 0x99C8, 0x147F, - /* Array index: 0x056D */ 0x99D0, 0x99D2, 0x1484, - /* Array index: 0x0570 */ 0x9A69, 0x9A6B, 0x1487, - /* Array index: 0x0573 */ 0x9AEA, 0x9AF1, 0x148A, - /* Array index: 0x0576 */ 0x9B25, 0x9B2A, 0x1492, - /* Array index: 0x0579 */ 0x9B2E, 0x9B32, 0x1498, - /* Array index: 0x057C */ 0x9B41, 0x9B45, 0x149D, - /* Array index: 0x057F */ 0x9B4D, 0x9B51, 0x14A2, - /* Array index: 0x0582 */ 0x9B91, 0x9B97, 0x14A7, - /* Array index: 0x0585 */ 0x9BAA, 0x9BAE, 0x14AE, - /* Array index: 0x0588 */ 0x9BE1, 0x9BE4, 0x14B3, - /* Array index: 0x058B */ 0x9BF0, 0x9BF2, 0x14B7, - /* Array index: 0x058E */ 0x9C06, 0x9C0D, 0x14BA, - /* Array index: 0x0591 */ 0x9C10, 0x9C15, 0x14C2, - /* Array index: 0x0594 */ 0x9C2D, 0x9C32, 0x14C8, - /* Array index: 0x0597 */ 0x9C39, 0x9C3B, 0x14CE, - /* Array index: 0x059A */ 0x9C46, 0x9C48, 0x14D1, - /* Array index: 0x059D */ 0x9D06, 0x9D09, 0x14D4, - /* Array index: 0x05A0 */ 0x9D28, 0x9D2C, 0x14D8, - /* Array index: 0x05A3 */ 0x9D5C, 0x9D61, 0x14DD, - /* Array index: 0x05A6 */ 0x9DF8, 0x9DFA, 0x14E3, - /* Array index: 0x05A9 */ 0x9E91, 0x9E97, 0x14E6, - /* Array index: 0x05AC */ 0x9EB8, 0x9EBF, 0x14ED, - /* Array index: 0x05AF */ 0x9ECC, 0x9ED4, 0x14F5, - /* Array index: 0x05B2 */ 0x9ED8, 0x9EE0, 0x14FE, - /* Array index: 0x05B5 */ 0x9EF9, 0x9EFD, 0x1507, - /* Array index: 0x05B8 */ 0x9F5F, 0x9F67, 0x150C, - /* Array index: 0x05BB */ 0xFF01, 0xFF5D, 0x1515, - /* Ranges content */ - /* Range 0x0391 - 0x03A9, array index: 0x05BE */ - 0x2621,0x2622,0x2623,0x2624,0x2625,0x2626,0x2627,0x2628, - 0x2629,0x262A,0x262B,0x262C,0x262D,0x262E,0x262F,0x2630, - 0x2631,INVALC,0x2632,0x2633,0x2634,0x2635,0x2636,0x2637, - 0x2638, - /* Range 0x03B1 - 0x03C9, array index: 0x05D7 */ - 0x2641,0x2642,0x2643,0x2644,0x2645,0x2646,0x2647,0x2648, - 0x2649,0x264A,0x264B,0x264C,0x264D,0x264E,0x264F,0x2650, - 0x2651,INVALC,0x2652,0x2653,0x2654,0x2655,0x2656,0x2657, - 0x2658, - /* Range 0x0410 - 0x0451, array index: 0x05F0 */ - 0x2721,0x2722,0x2723,0x2724,0x2725,0x2726,0x2728,0x2729, - 0x272A,0x272B,0x272C,0x272D,0x272E,0x272F,0x2730,0x2731, - 0x2732,0x2733,0x2734,0x2735,0x2736,0x2737,0x2738,0x2739, - 0x273A,0x273B,0x273C,0x273D,0x273E,0x273F,0x2740,0x2741, - 0x2751,0x2752,0x2753,0x2754,0x2755,0x2756,0x2758,0x2759, - 0x275A,0x275B,0x275C,0x275D,0x275E,0x275F,0x2760,0x2761, - 0x2762,0x2763,0x2764,0x2765,0x2766,0x2767,0x2768,0x2769, - 0x276A,0x276B,0x276C,0x276D,0x276E,0x276F,0x2770,0x2771, - INVALC,0x2757, - /* Range 0x2015 - 0x2021, array index: 0x0632 */ - 0x213D,0x2142,INVALC,0x2146,0x2147,INVALC,INVALC,0x2148, - 0x2149,INVALC,INVALC,0x2277,0x2278, - /* Range 0x2190 - 0x2193, array index: 0x063F */ - 0x222B,0x222C,0x222A,0x222D, - /* Range 0x2227 - 0x222C, array index: 0x0643 */ - 0x224A,0x224B,0x2241,0x2240,0x2269,0x226A, - /* Range 0x2500 - 0x2503, array index: 0x0649 */ - 0x2821,0x282C,0x2822,0x282D, - /* Range 0x2517 - 0x251D, array index: 0x064D */ - 0x2831,0x2825,INVALC,INVALC,0x2830,0x2827,0x283C, - /* Range 0x2523 - 0x2525, array index: 0x0654 */ - 0x2832,0x2829,0x283E, - /* Range 0x3000 - 0x3015, array index: 0x0657 */ - 0x2121,0x2122,0x2123,0x2137,INVALC,0x2139,0x213A,0x213B, - 0x2152,0x2153,0x2154,0x2155,0x2156,0x2157,0x2158,0x2159, - 0x215A,0x215B,0x2229,0x222E,0x214C,0x214D, - /* Range 0x3041 - 0x3093, array index: 0x066D */ - 0x2421,0x2422,0x2423,0x2424,0x2425,0x2426,0x2427,0x2428, - 0x2429,0x242A,0x242B,0x242C,0x242D,0x242E,0x242F,0x2430, - 0x2431,0x2432,0x2433,0x2434,0x2435,0x2436,0x2437,0x2438, - 0x2439,0x243A,0x243B,0x243C,0x243D,0x243E,0x243F,0x2440, - 0x2441,0x2442,0x2443,0x2444,0x2445,0x2446,0x2447,0x2448, - 0x2449,0x244A,0x244B,0x244C,0x244D,0x244E,0x244F,0x2450, - 0x2451,0x2452,0x2453,0x2454,0x2455,0x2456,0x2457,0x2458, - 0x2459,0x245A,0x245B,0x245C,0x245D,0x245E,0x245F,0x2460, - 0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468, - 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470, - 0x2471,0x2472,0x2473, - /* Range 0x309B - 0x30F6, array index: 0x06C0 */ - 0x212B,0x212C,0x2135,0x2136,INVALC,INVALC,0x2521,0x2522, - 0x2523,0x2524,0x2525,0x2526,0x2527,0x2528,0x2529,0x252A, - 0x252B,0x252C,0x252D,0x252E,0x252F,0x2530,0x2531,0x2532, - 0x2533,0x2534,0x2535,0x2536,0x2537,0x2538,0x2539,0x253A, - 0x253B,0x253C,0x253D,0x253E,0x253F,0x2540,0x2541,0x2542, - 0x2543,0x2544,0x2545,0x2546,0x2547,0x2548,0x2549,0x254A, - 0x254B,0x254C,0x254D,0x254E,0x254F,0x2550,0x2551,0x2552, - 0x2553,0x2554,0x2555,0x2556,0x2557,0x2558,0x2559,0x255A, - 0x255B,0x255C,0x255D,0x255E,0x255F,0x2560,0x2561,0x2562, - 0x2563,0x2564,0x2565,0x2566,0x2567,0x2568,0x2569,0x256A, - 0x256B,0x256C,0x256D,0x256E,0x256F,0x2570,0x2571,0x2572, - 0x2573,0x2574,0x2575,0x2576, - /* Range 0x30FB - 0x30FE, array index: 0x071C */ - 0x2126,0x213C,0x2133,0x2134, - /* Range 0x4E07 - 0x4E19, array index: 0x0720 */ - 0x4B7C,0x3E66,0x3B30,0x3E65,0x323C,INVALC,0x4954,0x4D3F, - INVALC,0x5022,0x312F,INVALC,INVALC,0x336E,0x5023,0x4024, - 0x5242,0x3556,0x4A3A, - /* Range 0x4E38 - 0x4E3C, array index: 0x0733 */ - 0x345D,0x4330,INVALC,0x3C67,0x5027, - /* Range 0x4E4B - 0x4E4F, array index: 0x0738 */ - 0x4737,INVALC,0x4663,0x3843,0x4B33, - /* Range 0x4E55 - 0x4E5F, array index: 0x073D */ - 0x6949,0x502A,0x3E68,0x502B,0x3235,INVALC,INVALC,INVALC, - 0x3665,0x3870,0x4C69, - /* Range 0x4E85 - 0x4EB0, array index: 0x0748 */ - 0x502D,0x4E3B,INVALC,0x4D3D,0x4168,0x502F,0x3B76,0x4673, - INVALC,0x5032,INVALC,INVALC,0x313E,0x385F,INVALC,0x385E, - 0x3066,INVALC,INVALC,0x4F4B,0x4F4A,INVALC,0x3A33,0x3021, - INVALC,0x5033,0x5034,0x5035,0x4B34,0x5036,INVALC,0x3872, - 0x3067,0x4B72,INVALC,0x357C,INVALC,INVALC,0x357D,0x357E, - 0x4462,0x4E3C,INVALC,0x5037, - /* Range 0x4EC0 - 0x4ECF, array index: 0x0774 */ - 0x3D3A,0x3F4E,0x503E,INVALC,0x503C,INVALC,0x503D,0x3558, - INVALC,INVALC,0x3A23,0x3270,INVALC,0x503B,0x503A,0x4A29, - /* Range 0x4ED4 - 0x4EE5, array index: 0x0784 */ - 0x3B46,0x3B45,0x423E,0x503F,0x4955,0x4067,INVALC,INVALC, - INVALC,0x2138,0x5040,0x5042,INVALC,INVALC,INVALC,0x4265, - 0x4E61,0x304A, - /* Range 0x4F09 - 0x4F11, array index: 0x0796 */ - 0x5044,0x304B,INVALC,INVALC,0x3860,0x346C,0x497A,0x4832, - 0x3559, - /* Range 0x4F4D - 0x4F5E, array index: 0x079F */ - 0x304C,0x4463,0x3D3B,0x3A34,0x4D24,INVALC,0x424E,INVALC, - 0x323F,INVALC,0x5049,INVALC,0x4D3E,0x5045,0x5047,0x3A6E, - 0x5048,0x5524, - /* Range 0x4FAB - 0x4FAF, array index: 0x07B1 */ - 0x5525,INVALC,0x4B79,0x496E,0x3874, - /* Range 0x4FC2 - 0x4FC4, array index: 0x07B6 */ - 0x3738,0x4225,0x3264, - /* Range 0x4FD7 - 0x4FE5, array index: 0x07B9 */ - 0x422F,0x505A,INVALC,0x505D,0x505B,INVALC,0x4A5D,INVALC, - 0x5058,INVALC,0x3F2E,INVALC,0x4B73,0x505F,0x5060, - /* Range 0x5021 - 0x502D, array index: 0x07C8 */ - 0x5069,INVALC,0x4A6F,0x434D,0x5065,0x3771,INVALC,0x5062, - 0x506A,0x5064,0x4E51,0x506B,0x4F41, - /* Range 0x5047 - 0x5049, array index: 0x07D5 */ - 0x5071,0x5075,0x304E, - /* Range 0x5072 - 0x5078, array index: 0x07D8 */ - 0x3C45,INVALC,0x4226,0x4465,0x3676,INVALC,0x5079, - /* Range 0x5098 - 0x509A, array index: 0x07DF */ - 0x3B31,0x4877,0x507B, - /* Range 0x50B2 - 0x50B7, array index: 0x07E2 */ - 0x507E,0x5123,0x507D,0x3A44,INVALC,0x3D7D, - /* Range 0x5100 - 0x5104, array index: 0x07E8 */ - 0x3537,0x512E,0x512F,INVALC,0x322F, - /* Range 0x5112 - 0x511A, array index: 0x07ED */ - 0x3C74,INVALC,0x5132,0x5131,0x5130,INVALC,0x5056,INVALC, - 0x5133, - /* Range 0x513A - 0x5154, array index: 0x07F6 */ - 0x5135,0x5138,0x5137,INVALC,INVALC,0x5139,0x513A,0x3074, - INVALC,0x3835,0x373B,0x3D3C,0x437B,0x3624,0x4068,0x3877, - INVALC,0x396E,0x513C,0x4C48,0x4546,INVALC,0x3B79,INVALC, - 0x513B,INVALC,0x513D, - /* Range 0x5168 - 0x516E, array index: 0x0811 */ - 0x4134,0x5140,0x5141,0x482C,0x3878,0x4F3B,0x5142, - /* Range 0x5175 - 0x5178, array index: 0x0818 */ - 0x4A3C,0x4236,0x3671,0x4535, - /* Range 0x5189 - 0x5199, array index: 0x081C */ - 0x5147,0x3A7D,INVALC,0x5146,0x3A46,INVALC,0x5148,0x666E, - 0x5149,0x4B41,0x514A,INVALC,0x514B,0x514C,0x3E69,INVALC, - 0x3C4C, - /* Range 0x51A2 - 0x51B7, array index: 0x082D */ - 0x514F,INVALC,0x514D,0x4C3D,0x514E,INVALC,0x495A,0x5150, - 0x5151,0x5152,0x455F,INVALC,INVALC,INVALC,0x5156,0x5154, - 0x5155,0x5153,0x3A63,0x5157,0x4C6A,0x4E64, - /* Range 0x51C4 - 0x51C6, array index: 0x0843 */ - 0x4028,0x5159,0x3D5A, - /* Range 0x51C9 - 0x51CD, array index: 0x0846 */ - 0x515A,INVALC,0x437C,0x4E3F,0x4560, - /* Range 0x51DB - 0x51E1, array index: 0x084B */ - 0x515B,0x7425,0x3645,INVALC,INVALC,0x515C,0x4B5E, - /* Range 0x51E6 - 0x51EA, array index: 0x0852 */ - 0x3D68,0x427C,INVALC,0x515E,0x4664, - /* Range 0x51F5 - 0x520B, array index: 0x0857 */ - 0x5161,0x3627,INVALC,0x464C,0x317A,0x3D50,INVALC,INVALC, - 0x4821,0x5162,INVALC,0x4561,INVALC,INVALC,0x3F4F,0x5163, - INVALC,0x4A2C,0x405A,0x3422,INVALC,0x3429,0x5164, - /* Range 0x5236 - 0x523B, array index: 0x086E */ - 0x4029,0x3A7E,0x3774,0x516B,0x3B49,0x396F, - /* Range 0x524A - 0x524F, array index: 0x0874 */ - 0x3A6F,0x516E,0x516F,0x4130,INVALC,0x516C, - /* Range 0x5263 - 0x5265, array index: 0x087A */ - 0x3775,0x3A5E,0x476D, - /* Range 0x526F - 0x5275, array index: 0x087D */ - 0x497B,0x3E6A,0x517B,0x3364,0x5175,0x5173,0x414F, - /* Range 0x5287 - 0x5289, array index: 0x0884 */ - 0x3760,0x517C,0x4E2D, - /* Range 0x52A9 - 0x52AD, array index: 0x0887 */ - 0x3D75,0x4558,0x3965,0x5222,0x5223, - /* Range 0x52D5 - 0x52E7, array index: 0x088C */ - 0x4630,INVALC,0x5228,0x342A,0x4C33,INVALC,INVALC,INVALC, - 0x3E21,0x5229,0x4A67,0x522D,INVALC,0x402A,0x522A,0x3650, - INVALC,0x522B,0x342B, - /* Range 0x52F8 - 0x52FA, array index: 0x089F */ - 0x5230,0x5231,0x3C5B, - /* Range 0x52FE - 0x5308, array index: 0x08A2 */ - 0x387B,0x4C5E,INVALC,0x4C68,0x4677,INVALC,INVALC,0x4A71, - 0x5232,INVALC,0x5233, - /* Range 0x5315 - 0x531A, array index: 0x08AD */ - 0x5238,0x323D,0x4B4C,INVALC,0x3A7C,0x5239, - /* Range 0x5338 - 0x534A, array index: 0x08B3 */ - 0x523E,0x4924,0x3668,0x3065,INVALC,INVALC,INVALC,0x463F, - 0x523F,0x3D3D,INVALC,0x4069,INVALC,0x5241,0x5240,0x3E23, - 0x3861,0x5243,0x483E, - /* Range 0x5351 - 0x5360, array index: 0x08C6 */ - 0x485C,0x4234,0x426E,0x3628,INVALC,INVALC,0x466E,0x4331, - INVALC,0x476E,INVALC,0x4B4E,INVALC,0x5246,INVALC,0x406A, - /* Range 0x536E - 0x5378, array index: 0x08D6 */ - 0x5248,0x312C,0x3075,0x346D,INVALC,0x4228,0x3551,0x4D71, - INVALC,0x524B,0x3237, - /* Range 0x53A5 - 0x53A9, array index: 0x08E1 */ - 0x5250,0x524F,INVALC,0x3F5F,0x3139, - /* Range 0x53C8 - 0x53CE, array index: 0x08E6 */ - 0x4B74,0x3A35,0x355A,0x4D27,0x4150,0x483F,0x3C7D, - /* Range 0x53DF - 0x53FA, array index: 0x08ED */ - 0x5257,INVALC,0x3143,0x4151,0x387D,0x3845,0x3667,INVALC, - INVALC,0x525B,0x4321,0x427E,0x362B,0x3E24,0x525C,0x525A, - 0x3244,0x4266,0x3C38,0x3B4B,0x3126,INVALC,INVALC,0x3370, - 0x3966,0x3B4A,INVALC,0x525D, - /* Range 0x5408 - 0x5411, array index: 0x0909 */ - 0x3967,0x3548,0x445F,0x3125,0x4631,0x4C3E,0x3921,0x4D79, - 0x4547,0x387E, - /* Range 0x5429 - 0x542E, array index: 0x0913 */ - 0x5266,INVALC,0x345E,0x5261,0x5262,0x5264, - /* Range 0x5438 - 0x5442, array index: 0x0919 */ - 0x355B,0x3F61,INVALC,0x4A2D,0x5263,0x525F,0x3863,INVALC, - 0x5260,INVALC,0x4F24, - /* Range 0x5446 - 0x544A, array index: 0x0924 */ - 0x4A72,INVALC,0x4468,0x3862,0x3970, - /* Range 0x5473 - 0x547D, array index: 0x0929 */ - 0x4C23,INVALC,0x526A,0x5273,0x526E,INVALC,INVALC,INVALC, - 0x5271,0x3846,0x4C3F, - /* Range 0x548B - 0x5492, array index: 0x0934 */ - 0x3A70,0x4F42,INVALC,0x526B,0x5269,0x5275,INVALC,0x5270, - /* Range 0x54BC - 0x54C9, array index: 0x093C */ - 0x5325,0x3076,0x5324,INVALC,0x3025,0x494A,0x5322,INVALC, - 0x527C,INVALC,INVALC,0x5277,0x527D,0x3A48, - /* Range 0x54E5 - 0x54E9, array index: 0x094A */ - 0x5327,0x5328,INVALC,0x3E25,0x4B69, - /* Range 0x5544 - 0x5546, array index: 0x094F */ - 0x426F,0x5336,0x3E26, - /* Range 0x5587 - 0x558B, array index: 0x0952 */ - 0x5349,INVALC,0x3922,0x533F,0x437D, - /* Range 0x5598 - 0x559F, array index: 0x0957 */ - 0x5343,0x533C,0x342D,INVALC,0x346E,0x3365,0x5344,0x5340, - /* Range 0x55A7 - 0x55B0, array index: 0x095F */ - 0x3776,0x534A,0x5348,0x4153,0x354A,0x362C,INVALC,0x5345, - INVALC,0x3674, - /* Range 0x5614 - 0x5618, array index: 0x0969 */ - 0x5352,INVALC,0x5354,0x3E28,0x3133, - /* Range 0x5668 - 0x566C, array index: 0x096E */ - 0x346F,INVALC,0x5364,0x5360,0x5363, - /* Range 0x56C0 - 0x56C3, array index: 0x0973 */ - 0x5373,0x5371,0x536F,0x5372, - /* Range 0x56D7 - 0x56DB, array index: 0x0977 */ - 0x5378,0x5145,INVALC,0x3C7C,0x3B4D, - /* Range 0x5726 - 0x5728, array index: 0x097C */ - 0x5429,0x3035,0x3A5F, - /* Range 0x574E - 0x5751, array index: 0x097F */ - 0x542C,0x542F,0x3A41,0x3923, - /* Range 0x57A0 - 0x57A4, array index: 0x0983 */ - 0x5437,INVALC,0x3924,0x3340,0x5439, - /* Range 0x57D2 - 0x57D6, array index: 0x0988 */ - 0x543F,0x5440,0x543E,INVALC,0x5442, - /* Range 0x582F - 0x5835, array index: 0x098D */ - 0x7421,0x3161,0x4A73,INVALC,INVALC,0x3E6C,0x4548, - /* Range 0x5857 - 0x585A, array index: 0x0994 */ - 0x4549,0x4564,0x4839,0x444D, - /* Range 0x58B8 - 0x58BB, array index: 0x0998 */ - 0x5457,0x5451,0x5454,0x5456, - /* Range 0x58D5 - 0x58D9, array index: 0x099C */ - 0x3968,INVALC,0x545C,0x545E,0x545D, - /* Range 0x58EB - 0x58F2, array index: 0x09A1 */ - 0x3B4E,0x3F51,INVALC,0x4154,0x5463,0x403C,0x306D,0x4764, - /* Range 0x58F7 - 0x58FD, array index: 0x09A9 */ - 0x445B,INVALC,0x5465,0x5464,0x5466,0x5467,0x5468, - /* Range 0x5915 - 0x591C, array index: 0x09B0 */ - 0x4D3C,0x3330,INVALC,0x5249,0x3D48,0x423F,0x546C,0x4C6B, - /* Range 0x5927 - 0x5932, array index: 0x09B8 */ - 0x4267,INVALC,0x4537,0x4240,0x4957,0x546F,0x5470,0x317B, - INVALC,INVALC,0x3C3A,0x5471, - /* Range 0x5947 - 0x5949, array index: 0x09C4 */ - 0x3471,0x4660,0x4A74, - /* Range 0x594E - 0x595A, array index: 0x09C7 */ - 0x5477,0x4155,0x5476,0x3740,INVALC,INVALC,0x4B5B,0x5475, - INVALC,0x4565,0x5479,INVALC,0x5478, - /* Range 0x5965 - 0x596E, array index: 0x09D4 */ - 0x317C,INVALC,0x547C,0x3E29,0x547E,0x4325,INVALC,0x547D, - INVALC,0x4A33, - /* Range 0x5981 - 0x5984, array index: 0x09DE */ - 0x5522,0x4721,0x485E,0x4C51, - /* Range 0x59D0 - 0x59D4, array index: 0x09E2 */ - 0x3039,0x3848,INVALC,0x402B,0x3051, - /* Range 0x5ABC - 0x5AC2, array index: 0x09E7 */ - 0x553C,0x5540,0x553D,INVALC,INVALC,0x3247,0x553F, - /* Range 0x5B54 - 0x5B66, array index: 0x09EE */ - 0x3926,0x5554,INVALC,0x3B7A,0x4238,INVALC,0x5555,0x5556, - 0x3B5A,0x3927,INVALC,0x4C52,INVALC,INVALC,INVALC,0x3528, - 0x3849,0x5557,0x3358, - /* Range 0x5B85 - 0x5B8F, array index: 0x0A01 */ - 0x4270,INVALC,0x3127,0x3C69,0x3042,INVALC,0x4157,0x3430, - 0x3C35,INVALC,0x3928, - /* Range 0x5B95 - 0x5BA6, array index: 0x0A0C */ - 0x4566,INVALC,0x3D21,0x3431,0x4368,0x446A,0x3038,0x3539, - 0x4A75,INVALC,0x3C42,INVALC,INVALC,0x3552,0x406B,0x3C3C, - 0x4D28,0x5561, - /* Range 0x5BB3 - 0x5BB9, array index: 0x0A1E */ - 0x3332,0x3163,0x3E2C,0x3248,INVALC,0x5562,0x4D46, - /* Range 0x5BC2 - 0x5BC9, array index: 0x0A25 */ - 0x3C64,0x5563,0x3473,0x4652,0x4C29,0x5564,INVALC,0x5565, - /* Range 0x5BD0 - 0x5BD4, array index: 0x0A2D */ - 0x5567,INVALC,0x3428,0x3677,0x5566, - /* Range 0x5BDB - 0x5BEB, array index: 0x0A32 */ - 0x3432,INVALC,0x3F32,0x556B,0x3B21,INVALC,0x3249,0x556A, - INVALC,0x5568,0x556C,0x5569,0x472B,0x5C4D,0x3F33,INVALC, - 0x556D, - /* Range 0x5BFE - 0x5C13, array index: 0x0A43 */ - 0x4250,0x3C77,INVALC,0x4975,0x406C,INVALC,0x3C4D,0x5571, - 0x3E2D,0x5572,0x5573,0x3053,0x423A,0x3F52,INVALC,0x5574, - 0x4633,0x3E2E,INVALC,0x3E2F,INVALC,0x5575, - /* Range 0x5C38 - 0x5C41, array index: 0x0A59 */ - 0x5579,0x557A,0x3C5C,0x3F2C,0x4674,0x3F54,0x4878,0x4722, - 0x3649,0x557B, - /* Range 0x5C4A - 0x5C55, array index: 0x0A63 */ - 0x464F,0x3230,INVALC,0x3B53,0x557D,0x5622,0x5621,0x367D, - INVALC,0x557E,INVALC,0x4538, - /* Range 0x5CA8 - 0x5CAC, array index: 0x0A6F */ - 0x413B,0x3464,INVALC,0x562D,0x4C28, - /* Range 0x5CB6 - 0x5CBE, array index: 0x0A74 */ - 0x562F,0x5631,0x345F,INVALC,INVALC,0x562E,0x5630,INVALC, - 0x5633, - /* Range 0x5CE8 - 0x5CEA, array index: 0x0A7D */ - 0x3265,0x5636,0x563B, - /* Range 0x5D14 - 0x5D1B, array index: 0x0A80 */ - 0x5643,0x563D,0x3333,0x563E,0x5647,0x5646,0x5645,0x5641, - /* Range 0x5DE3 - 0x5DE8, array index: 0x0A88 */ - 0x4163,INVALC,0x3929,0x3A38,0x392A,0x3570, - /* Range 0x5DF1 - 0x5DF7, array index: 0x0A8E */ - 0x384A,0x5661,0x4C26,0x4743,0x5662,INVALC,0x392B, - /* Range 0x5E19 - 0x5E1D, array index: 0x0A95 */ - 0x5665,0x5664,0x5667,INVALC,0x446B, - /* Range 0x5E36 - 0x5E38, array index: 0x0A9A */ - 0x5668,0x5669,0x3E6F, - /* Range 0x5E43 - 0x5E47, array index: 0x0A9D */ - 0x566B,0x566A,0x497D,INVALC,0x5673, - /* Range 0x5E5F - 0x5E64, array index: 0x0AA2 */ - 0x5670,INVALC,0x4828,0x5671,0x4A3E,0x5672, - /* Range 0x5E72 - 0x5E84, array index: 0x0AA8 */ - 0x3433,0x4A3F,0x472F,0x5674,0x5675,INVALC,0x392C,0x3434, - 0x5676,0x3838,0x4D44,0x4D29,0x3476,0x5678,INVALC,0x4423, - INVALC,0x392D,0x3E31, - /* Range 0x5E95 - 0x5E97, array index: 0x0ABB */ - 0x446C,0x4A79,0x4539, - /* Range 0x5EB5 - 0x5EB8, array index: 0x0ABE */ - 0x3043,0x3D6E,0x392F,0x4D47, - /* Range 0x5EC1 - 0x5EC3, array index: 0x0AC2 */ - 0x567A,0x567B,0x4751, - /* Range 0x5EC8 - 0x5ECA, array index: 0x0AC5 */ - 0x567C,0x4E77,0x4F2D, - /* Range 0x5EDD - 0x5EE3, array index: 0x0AC8 */ - 0x5723,INVALC,0x4940,0x3E33,0x5727,0x5726,0x5722, - /* Range 0x5EF0 - 0x5F04, array index: 0x0ACF */ - 0x572D,0x572B,INVALC,0x572C,0x572E,INVALC,0x3164,0x446E, - 0x572F,INVALC,0x377A,0x3276,0x4736,INVALC,0x5730,0x467B, - INVALC,0x4A5B,INVALC,0x5731,0x4F2E, - /* Range 0x5F09 - 0x5F18, array index: 0x0AE4 */ - 0x5732,0x4A40,0x5735,0x5021,0x5031,INVALC,0x3C30,0x4675, - 0x5736,INVALC,0x355D,0x4424,0x307A,0x5737,0x4A26,0x3930, - /* Range 0x5F25 - 0x5F29, array index: 0x0AF4 */ - 0x4C6F,0x3839,0x384C,INVALC,0x5738, - /* Range 0x5F69 - 0x5F73, array index: 0x0AF9 */ - 0x3A4C,0x4937,0x4426,0x494B,0x5745,INVALC,INVALC,0x3E34, - 0x3146,INVALC,0x5746, - /* Range 0x5F7F - 0x5F99, array index: 0x0B04 */ - 0x574A,0x317D,0x402C,0x5749,0x5748,0x3742,0x4254,INVALC, - 0x574E,0x574C,INVALC,0x574B,0x4E27,0x3865,INVALC,INVALC, - INVALC,0x3D79,0x574D,0x454C,0x3D3E,INVALC,INVALC,INVALC, - 0x4640,0x5751,0x5750, - /* Range 0x5FA8 - 0x5FAE, array index: 0x0B1F */ - 0x5753,0x497C,0x3D5B,INVALC,INVALC,0x5754,0x4879, - /* Range 0x5FD6 - 0x5FDD, array index: 0x0B26 */ - 0x5756,0x3B56,0x4B3A,0x4B3B,INVALC,INVALC,0x317E,0x575B, - /* Range 0x600E - 0x6016, array index: 0x0B2E */ - 0x5763,0x5769,0x5761,INVALC,0x455C,INVALC,INVALC,0x5766, - 0x495D, - /* Range 0x6019 - 0x602B, array index: 0x0B37 */ - 0x5760,INVALC,0x5765,0x4E67,0x3B57,INVALC,INVALC,0x4255, - 0x575E,INVALC,INVALC,INVALC,0x355E,0x5768,0x402D,0x3165, - 0x5762,0x3278,0x5767, - /* Range 0x6041 - 0x6043, array index: 0x0B4A */ - 0x576C,0x5776,0x5774, - /* Range 0x605F - 0x6070, array index: 0x0B4D */ - 0x576F,0x575F,INVALC,0x327A,0x5773,0x5775,0x4351,INVALC, - INVALC,0x3A28,0x3238,0x576D,0x5778,0x5777,0x3633,INVALC, - 0x4229,0x3366, - /* Range 0x6089 - 0x608D, array index: 0x0B5F */ - 0x3C3D,INVALC,0x5827,0x4470,0x577B, - /* Range 0x60A6 - 0x60AA, array index: 0x0B64 */ - 0x3159,0x5826,INVALC,0x473A,0x302D, - /* Range 0x60B2 - 0x60B8, array index: 0x0B69 */ - 0x4861,0x575C,0x582C,0x5830,0x4C65,INVALC,0x5829, - /* Range 0x60C5 - 0x60C7, array index: 0x0B70 */ - 0x3E70,0x582F,0x4657, - /* Range 0x60DF - 0x60E3, array index: 0x0B73 */ - 0x3054,0x582A,0x5828,INVALC,0x415A, - /* Range 0x60F0 - 0x60FB, array index: 0x0B78 */ - 0x4246,0x583D,INVALC,0x415B,0x5838,INVALC,0x5835,0x5836, - INVALC,0x3C66,0x5839,0x583C, - /* Range 0x610D - 0x610F, array index: 0x0B84 */ - 0x583E,0x583F,0x3055, - /* Range 0x613C - 0x613F, array index: 0x0B87 */ - 0x5846,0x5849,0x5841,0x5845, - /* Range 0x6147 - 0x614E, array index: 0x0B8B */ - 0x5840,0x3B7C,INVALC,0x5844,0x4256,0x3932,0x5832,0x3F35, - /* Range 0x6158 - 0x615A, array index: 0x0B93 */ - 0x584E,0x584F,0x5850, - /* Range 0x616E - 0x6177, array index: 0x0B96 */ - 0x4E38,0x5853,0x3056,0x5855,INVALC,0x584C,0x5852,0x5859, - 0x3744,0x584D, - /* Range 0x61C6 - 0x61CD, array index: 0x0BA0 */ - 0x586A,0x3A29,0x5868,0x5866,0x5865,0x586C,0x5864,0x586E, - /* Range 0x61F4 - 0x6200, array index: 0x0BA8 */ - 0x5873,INVALC,0x5871,0x5867,0x377C,INVALC,0x5872,INVALC, - 0x5876,0x5875,0x5877,0x5874,0x5878, - /* Range 0x6208 - 0x6216, array index: 0x0BB5 */ - 0x5879,0x587A,0x4A6A,INVALC,0x587C,0x587B,0x3D3F,INVALC, - 0x402E,0x3266,0x327C,INVALC,0x587D,INVALC,0x303F, - /* Range 0x621A - 0x6221, array index: 0x0BC4 */ - 0x404C,0x587E,INVALC,0x6C43,0x5921,0x3761,INVALC,0x5922, - /* Range 0x622E - 0x6234, array index: 0x0BCC */ - 0x5924,0x353A,0x5925,INVALC,0x5926,0x5927,0x4257, - /* Range 0x623F - 0x6241, array index: 0x0BD3 */ - 0x4B3C,0x3D6A,0x5928, - /* Range 0x6247 - 0x624E, array index: 0x0BD6 */ - 0x4070,0x6E3D,0x4862,INVALC,0x3C6A,INVALC,0x3A4D,0x5929, - /* Range 0x627C - 0x6284, array index: 0x0BDE */ - 0x592F,INVALC,0x5932,0x3E35,0x353B,INVALC,0x5930,0x5937, - 0x3E36, - /* Range 0x6291 - 0x629E, array index: 0x0BE7 */ - 0x4D5E,0x5933,0x5934,0x5938,0x456A,0x5935,0x3933,0x405E, - INVALC,INVALC,0x5946,0x4834,INVALC,0x4272, - /* Range 0x62B9 - 0x62BD, array index: 0x0BF5 */ - 0x4B75,INVALC,0x593B,0x3221,0x436A, - /* Range 0x62C5 - 0x62E1, array index: 0x0BFA */ - 0x4334,0x593E,0x5945,0x5940,0x5947,0x5943,INVALC,0x5942, - 0x476F,INVALC,0x593C,0x327D,0x593A,0x3571,0x4273,0x5936, - INVALC,INVALC,0x5939,0x3934,0x405B,INVALC,0x3E37,0x5941, - 0x4752,INVALC,INVALC,0x3572,0x3348, - /* Range 0x62EC - 0x62F7, array index: 0x0C17 */ - 0x3367,0x3F21,0x5949,0x594E,INVALC,0x594A,INVALC,0x377D, - INVALC,0x594F,0x3B22,0x3969, - /* Range 0x62FE - 0x6302, array index: 0x0C23 */ - 0x3D26,0x593D,INVALC,0x3B7D,0x594C, - /* Range 0x6307 - 0x6309, array index: 0x0C28 */ - 0x3B58,0x594D,0x3044, - /* Range 0x633D - 0x633F, array index: 0x0C2B */ - 0x4854,0x5951,0x415E, - /* Range 0x634C - 0x6350, array index: 0x0C2E */ - 0x3B2B,0x5952,INVALC,0x5954,0x5950, - /* Range 0x6367 - 0x636B, array index: 0x0C33 */ - 0x4A7B,0x3C4E,0x5960,INVALC,0x595F, - /* Range 0x639F - 0x63AC, array index: 0x0C38 */ - 0x595D,0x4E2B,0x3A4E,0x4335,0x595A,INVALC,0x405C,INVALC, - 0x3935,0x3F64,0x3166,0x413C,0x5958,0x3545, - /* Range 0x64E0 - 0x64E7, array index: 0x0C46 */ - 0x5A2B,0x5A2C,0x4527,0x5A2E,INVALC,INVALC,0x3B24,0x5A29, - /* Range 0x652A - 0x652C, array index: 0x0C4E */ - 0x5978,0x5A3C,0x5A30, - /* Range 0x6534 - 0x653F, array index: 0x0C51 */ - 0x5A3D,0x5A3E,0x5A40,0x5A3F,0x5A41,0x327E,INVALC,0x3936, - INVALC,INVALC,0x4A7C,0x402F, - /* Range 0x6555 - 0x6559, array index: 0x0C5D */ - 0x5A45,0x5A44,0x4754,0x5A47,0x3635, - /* Range 0x6574 - 0x6578, array index: 0x0C62 */ - 0x4030,0x4528,INVALC,0x495F,0x5A4B, - /* Range 0x6587 - 0x6589, array index: 0x0C67 */ - 0x4A38,0x555D,0x4046, - /* Range 0x65AB - 0x65B0, array index: 0x0C6A */ - 0x5A51,0x3B42,0x4347,INVALC,0x3B5B,0x3F37, - /* Range 0x65C1 - 0x65C6, array index: 0x0C70 */ - 0x5A55,INVALC,0x5A53,0x5A56,0x4E39,0x5A54, - /* Range 0x65E0 - 0x65ED, array index: 0x0C76 */ - 0x5A5B,0x5A5C,0x347B,INVALC,INVALC,0x467C,0x4336,0x356C, - 0x3B5D,0x4161,INVALC,INVALC,0x3D5C,0x3030, - /* Range 0x6634 - 0x6636, array index: 0x0C84 */ - 0x5A65,0x5A63,0x5A64, - /* Range 0x663F - 0x6644, array index: 0x0C87 */ - 0x5B26,INVALC,0x5A6A,0x3B7E,0x3938,0x5A68, - /* Range 0x665D - 0x665F, array index: 0x0C8D */ - 0x5A6C,0x5A6B,0x5A70, - /* Range 0x6664 - 0x6669, array index: 0x0C90 */ - 0x5A6D,INVALC,0x3322,0x5A6E,0x5A6F,0x4855, - /* Range 0x666E - 0x6670, array index: 0x0C96 */ - 0x4961,0x374A,0x5A72, - /* Range 0x6683 - 0x6689, array index: 0x0C99 */ - 0x5A73,0x5A77,INVALC,INVALC,0x324B,0x5A74,0x5A76, - /* Range 0x6696 - 0x6698, array index: 0x0CA0 */ - 0x4348,0x3045,0x5A78, - /* Range 0x66D9 - 0x66DD, array index: 0x0CA3 */ - 0x3D6C,0x5B24,INVALC,0x4D4B,0x4778, - /* Range 0x66F0 - 0x6700, array index: 0x0CA8 */ - 0x5B29,INVALC,0x364A,0x3148,0x3939,0x5B2A,INVALC,0x5B2B, - 0x3D71,0x4162,INVALC,INVALC,0x5258,0x413E,0x413D,0x4258, - 0x3A47, - /* Range 0x6714 - 0x6717, array index: 0x0CB9 */ - 0x3A73,0x443F,0x5B2D,0x4F2F, - /* Range 0x671B - 0x671F, array index: 0x0CBD */ - 0x4B3E,INVALC,0x442B,0x5B2E,0x347C, - /* Range 0x6726 - 0x672E, array index: 0x0CC2 */ - 0x5B2F,0x5B30,0x4C5A,INVALC,0x4C24,0x4B76,0x4B5C,0x3B25, - 0x5B32, - /* Range 0x6734 - 0x673A, array index: 0x0CCB */ - 0x4B51,INVALC,0x5B34,0x5B37,0x5B36,INVALC,0x3479, - /* Range 0x674E - 0x6753, array index: 0x0CD2 */ - 0x4D7B,0x3049,0x3A60,0x423C,INVALC,0x3C5D, - /* Range 0x675C - 0x6765, array index: 0x0CD8 */ - 0x454E,INVALC,0x5B39,0x422B,0x5B3A,0x3E72,0x4C5D,0x5B3C, - 0x5B3D,0x4D68, - /* Range 0x676D - 0x6777, array index: 0x0CE2 */ - 0x393A,INVALC,0x4755,0x5B3F,0x456C,0x5A5E,0x5A62,INVALC, - 0x354F,INVALC,0x4747, - /* Range 0x679C - 0x67A2, array index: 0x0CED */ - 0x324C,0x3B5E,INVALC,INVALC,0x4F48,0x5B46,0x3F75, - /* Range 0x67B3 - 0x67B9, array index: 0x0CF4 */ - 0x5B4C,0x5B4A,INVALC,0x324D,0x5B48,0x5B4E,0x5B54, - /* Range 0x67CE - 0x67D4, array index: 0x0CFB */ - 0x5B55,0x4770,0x4B3F,0x343B,INVALC,0x4077,0x3D40, - /* Range 0x67F1 - 0x67F5, array index: 0x0D02 */ - 0x436C,INVALC,0x4C78,0x3C46,0x3A74, - /* Range 0x67FE - 0x6804, array index: 0x0D07 */ - 0x4B6F,0x3341,INVALC,INVALC,0x444E,0x464A,0x3149, - /* Range 0x6829 - 0x682B, array index: 0x0D0E */ - 0x5B5B,0x3374,0x5B61, - /* Range 0x683C - 0x6843, array index: 0x0D11 */ - 0x334A,0x3A4F,INVALC,INVALC,0x5B5C,0x3765,0x374B,0x456D, - /* Range 0x684D - 0x6854, array index: 0x0D19 */ - 0x5B5D,0x5B5F,INVALC,0x364D,0x372C,INVALC,0x343C,0x354B, - /* Range 0x68A6 - 0x68A8, array index: 0x0D21 */ - 0x546D,0x3868,0x4D7C, - /* Range 0x68AD - 0x68BC, array index: 0x0D24 */ - 0x5B68,INVALC,0x4474,0x3323,0x3A2D,INVALC,0x5B60,INVALC, - 0x5B70,0x3361,INVALC,INVALC,0x5B6E,0x5B72,INVALC,0x456E, - /* Range 0x68C9 - 0x68CD, array index: 0x0D34 */ - 0x4C49,0x5B77,0x347D,INVALC,0x5B7E, - /* Range 0x68D4 - 0x68DA, array index: 0x0D39 */ - 0x5C21,0x5C23,INVALC,0x5C27,0x5B79,INVALC,0x432A, - /* Range 0x68DF - 0x68E3, array index: 0x0D40 */ - 0x456F,0x5C2B,0x5B7C,INVALC,0x5C28, - /* Range 0x690B - 0x690F, array index: 0x0D45 */ - 0x4C3A,0x5B7D,0x3F22,0x4447,0x5B73, - /* Range 0x6919 - 0x691C, array index: 0x0D4A */ - 0x3F7A,0x5C2F,0x3371,0x3821, - /* Range 0x6921 - 0x692A, array index: 0x0D4E */ - 0x5C31,0x5B7A,0x5C30,INVALC,0x5C29,0x5B7B,INVALC,0x5C2D, - INVALC,0x5C2E, - /* Range 0x6953 - 0x6955, array index: 0x0D58 */ - 0x4976,0x5C38,0x424A, - /* Range 0x6959 - 0x6962, array index: 0x0D5B */ - 0x5C3E,0x413F,INVALC,0x5C35,0x5C42,0x5C41,INVALC,0x466F, - 0x5C40,0x466A, - /* Range 0x696A - 0x6982, array index: 0x0D65 */ - 0x5C44,0x5C37,INVALC,0x3648,0x5C3A,0x3D5D,INVALC,INVALC, - INVALC,0x4760,0x5C3C,0x364B,INVALC,0x5C34,0x5C36,0x5C33, - INVALC,INVALC,0x4F30,0x335A,0x5C39,INVALC,INVALC,0x5C43, - 0x3335, - /* Range 0x69CA - 0x69D0, array index: 0x0D7E */ - 0x5C4E,0x393D,0x4448,0x4164,0x5C4C,INVALC,0x5C47, - /* Range 0x6A0A - 0x6A0C, array index: 0x0D85 */ - 0x5C68,0x4875,0x5C6E, - /* Range 0x6A12 - 0x6A14, array index: 0x0D88 */ - 0x5C69,0x5C6C,0x5C66, - /* Range 0x6A1E - 0x6A23, array index: 0x0D8B */ - 0x5C64,0x3E40,INVALC,0x4C4F,0x5C78,0x5C6B, - /* Range 0x6A29 - 0x6A2B, array index: 0x0D91 */ - 0x3822,0x3223,0x335F, - /* Range 0x6A35 - 0x6A3A, array index: 0x0D94 */ - 0x3E41,0x5C70,INVALC,0x5C77,0x3C79,0x3372, - /* Range 0x6AC1 - 0x6AC3, array index: 0x0D9A */ - 0x5C6A,0x5D25,0x5D24, - /* Range 0x6B1D - 0x6B23, array index: 0x0D9D */ - 0x3135,INVALC,0x5D36,0x3767,0x3C21,INVALC,0x3655, - /* Range 0x6B37 - 0x6B3E, array index: 0x0DA4 */ - 0x5D38,0x5D37,0x5D3A,0x353D,INVALC,INVALC,0x3656,0x343E, - /* Range 0x6B5F - 0x6B6A, array index: 0x0DAC */ - 0x5D43,INVALC,0x5D44,0x3B5F,0x4035,0x3A21,INVALC,0x4970, - INVALC,INVALC,0x4A62,0x4F44, - /* Range 0x6B89 - 0x6B8D, array index: 0x0DB8 */ - 0x3D5E,0x3C6C,0x3B44,INVALC,0x5D4B, - /* Range 0x6BAF - 0x6BC0, array index: 0x0DBD */ - 0x5D52,INVALC,0x5D54,0x5D53,0x5D55,0x3225,0x434A,INVALC, - 0x5D56,INVALC,INVALC,0x3B26,0x334C,0x5D57,INVALC,INVALC, - 0x4542,0x544C, - /* Range 0x6BD2 - 0x6BD4, array index: 0x0DCF */ - 0x4647,0x5D5A,0x4866, - /* Range 0x6C3E - 0x6C42, array index: 0x0DD2 */ - 0x4845,INVALC,0x4475,0x3D41,0x3561, - /* Range 0x6C5D - 0x6C62, array index: 0x0DD7 */ - 0x4672,0x5D67,0x393E,0x4353,INVALC,0x5D69, - /* Range 0x6C7D - 0x6C83, array index: 0x0DDD */ - 0x3525,0x5D70,INVALC,INVALC,0x5D6E,0x5D6B,0x4D60, - /* Range 0x6C99 - 0x6C9B, array index: 0x0DE4 */ - 0x3A3B,0x5D6D,0x5D6F, - /* Range 0x6CB8 - 0x6CC5, array index: 0x0DE7 */ - 0x4A28,0x4C7D,0x5E21,0x3C23,0x3E42,0x5D78,0x5D7E,0x3168, - INVALC,0x3637,INVALC,INVALC,0x5D75,0x5D7A, - /* Range 0x6CE1 - 0x6CE5, array index: 0x0DF5 */ - 0x4B22,0x4748,0x3563,INVALC,0x4525, - /* Range 0x6CEF - 0x6CF3, array index: 0x0DFA */ - 0x5E23,0x4259,0x5D76,INVALC,0x314B, - /* Range 0x6D29 - 0x6D2B, array index: 0x0DFF */ - 0x314C,0x393F,0x5E29, - /* Range 0x6D32 - 0x6D38, array index: 0x0E02 */ - 0x3D27,0x5E2E,INVALC,0x5E2D,0x5E28,INVALC,0x5E2B, - /* Range 0x6D77 - 0x6D79, array index: 0x0E09 */ - 0x3324,0x3F3B,0x5E35, - /* Range 0x6DC5 - 0x6DC7, array index: 0x0E0C */ - 0x5E48,0x5E42,0x5E3F, - /* Range 0x6DE8 - 0x6DEE, array index: 0x0E0F */ - 0x5E46,INVALC,0x5E4D,0x307C,0x5E43,INVALC,0x5E4E, - /* Range 0x6DF7 - 0x6DFB, array index: 0x0E16 */ - 0x3A2E,INVALC,0x5E3B,0x5E49,0x453A, - /* Range 0x6E05 - 0x6E0B, array index: 0x0E1B */ - 0x4036,INVALC,0x3369,0x3A51,0x3E44,0x5E3D,0x3D42, - /* Range 0x6E19 - 0x6E26, array index: 0x0E22 */ - 0x5E52,0x3D6D,0x383A,INVALC,0x5E61,INVALC,0x5E5B,0x3574, - 0x454F,INVALC,0x5E56,0x5E5F,0x302F,0x3132, - /* Range 0x6E29 - 0x6E2F, array index: 0x0E30 */ - 0x3239,INVALC,0x5E58,0x422C,0x5E4F,0x5E51,0x3941, - /* Range 0x6E7E - 0x6E82, array index: 0x0E37 */ - 0x4F51,0x3C3E,0x4B7E,INVALC,0x5E63, - /* Range 0x6ED1 - 0x6ED5, array index: 0x0E3C */ - 0x336A,INVALC,0x5E68,0x5E6D,0x5E6E, - /* Range 0x6EFE - 0x6F02, array index: 0x0E41 */ - 0x5E78,0x5E60,INVALC,0x3579,0x493A, - /* Range 0x6F11 - 0x6F15, array index: 0x0E46 */ - 0x5E74,INVALC,0x5F22,0x3169,0x4166, - /* Range 0x6F6D - 0x6F70, array index: 0x0E4B */ - 0x5F2C,0x442C,0x5F29,0x4459, - /* Range 0x6F80 - 0x6F86, array index: 0x0E4F */ - 0x5F28,0x5F27,0x5F2D,INVALC,0x4021,INVALC,0x5F24, - /* Range 0x6FC0 - 0x6FC3, array index: 0x0E56 */ - 0x3763,0x4279,0x5F32,0x473B, - /* Range 0x6FDF - 0x6FE1, array index: 0x0E5A */ - 0x5F3B,0x396A,0x4728, - /* Range 0x6FEB - 0x6FF3, array index: 0x0E5D */ - 0x4D74,0x5F3D,INVALC,0x5F41,0x4275,INVALC,0x5F40,INVALC, - 0x5F2B, - /* Range 0x701A - 0x701F, array index: 0x0E66 */ - 0x5F4B,0x5F4A,INVALC,0x5F4D,0x4654,0x5F4F, - /* Range 0x70AC - 0x70AF, array index: 0x0E6C */ - 0x5F59,0x433A,0x5F5C,0x5F57, - /* Range 0x70B8 - 0x70BA, array index: 0x0E70 */ - 0x5F5A,0x4540,0x3059, - /* Range 0x7162 - 0x7169, array index: 0x0E73 */ - 0x5F69,INVALC,0x4761,0x5F65,0x5F68,0x3E48,INVALC,0x4851, - /* Range 0x71E5 - 0x71E7, array index: 0x0E7B */ - 0x4167,0x3B38,0x5F7C, - /* Range 0x71EC - 0x71EE, array index: 0x0E7E */ - 0x5F7B,0x3F24,0x5259, - /* Range 0x723A - 0x7240, array index: 0x0E81 */ - 0x4C6C,0x602B,0x602C,0x4156,0x3C24,0x602D,0x602E, - /* Range 0x7246 - 0x724C, array index: 0x0E88 */ - 0x602F,0x4A52,0x4847,INVALC,INVALC,0x6030,0x4757, - /* Range 0x727D - 0x7282, array index: 0x0E8F */ - 0x3823,0x6033,INVALC,0x3A54,0x6035,0x6034, - /* Range 0x72C2 - 0x72C6, array index: 0x0E95 */ - 0x3638,0x603D,0x603F,INVALC,0x603E, - /* Range 0x72E0 - 0x72E2, array index: 0x0E9A */ - 0x6043,0x6044,0x6042, - /* Range 0x72F7 - 0x72FD, array index: 0x0E9D */ - 0x6046,0x432C,0x6045,INVALC,INVALC,0x4F35,0x4762, - /* Range 0x731B - 0x731F, array index: 0x0EA4 */ - 0x4C54,0x604A,0x604C,INVALC,0x4E44, - /* Range 0x7329 - 0x732F, array index: 0x0EA9 */ - 0x604F,0x4376,0x472D,INVALC,INVALC,0x3825,0x604E, - /* Range 0x7432 - 0x7436, array index: 0x0EB0 */ - 0x606A,0x4E56,0x3657,0x487C,0x474A, - /* Range 0x7459 - 0x7464, array index: 0x0EB5 */ - 0x606F,0x386A,0x314D,0x6071,INVALC,0x3F70,0x606E,0x4E5C, - INVALC,INVALC,0x6074,0x7424, - /* Range 0x74EE - 0x74F8, array index: 0x0EC1 */ - 0x6125,INVALC,0x6127,0x6128,0x6126,INVALC,INVALC,INVALC, - 0x4953,0x612A,0x6129, - /* Range 0x7503 - 0x7505, array index: 0x0ECC */ - 0x612C,0x612B,0x612D, - /* Range 0x750C - 0x750E, array index: 0x0ECF */ - 0x612E,0x6130,0x612F, - /* Range 0x7530 - 0x7533, array index: 0x0ED2 */ - 0x4544,0x4D33,0x3943,0x3F3D, - /* Range 0x7537 - 0x753C, array index: 0x0ED6 */ - 0x434B,0x5234,INVALC,0x442E,0x3268,0x6136, - /* Range 0x7549 - 0x7551, array index: 0x0EDC */ - 0x613A,0x6139,0x5A42,0x3326,0x6138,INVALC,0x305A,INVALC, - 0x482A, - /* Range 0x7559 - 0x755D, array index: 0x0EE5 */ - 0x4E31,0x613D,0x613B,0x435C,0x4026, - /* Range 0x7562 - 0x756D, array index: 0x0EEA */ - 0x492D,INVALC,0x613F,0x4E2C,0x374D,0x6140,INVALC,0x613E, - 0x4856,0x6141,INVALC,0x6142, - /* Range 0x7573 - 0x7578, array index: 0x0EF6 */ - 0x3E76,0x6147,INVALC,0x6144,0x466D,0x6143, - /* Range 0x7586 - 0x7591, array index: 0x0EFC */ - 0x6145,0x6146,INVALC,0x6149,0x6148,0x4925,INVALC,INVALC, - 0x4142,0x4141,INVALC,0x353F, - /* Range 0x75B1 - 0x75BE, array index: 0x0F08 */ - 0x6157,0x4868,0x6151,INVALC,0x6153,INVALC,INVALC,0x6155, - 0x3F3E,INVALC,INVALC,0x6156,0x6154,0x3C40, - /* Range 0x75F0 - 0x75F4, array index: 0x0F16 */ - 0x6162,INVALC,0x6164,0x6165,0x4354, - /* Range 0x761F - 0x7624, array index: 0x0F1B */ - 0x6169,0x616B,0x616C,0x616D,INVALC,0x616E, - /* Range 0x7646 - 0x7648, array index: 0x0F21 */ - 0x6174,0x6172,0x6173, - /* Range 0x7667 - 0x766C, array index: 0x0F24 */ - 0x617C,0x6179,0x617A,0x617B,INVALC,0x617D, - /* Range 0x7678 - 0x7688, array index: 0x0F2A */ - 0x6223,INVALC,0x482F,0x4550,0x6224,0x4772,0x4934,INVALC, - 0x6225,INVALC,INVALC,0x6226,0x452A,INVALC,0x3327,0x3944, - 0x6227, - /* Range 0x76B7 - 0x76BA, array index: 0x0F3B */ - 0x7369,0x6230,0x6231,0x6232, - /* Range 0x76DB - 0x76E7, array index: 0x0F3F */ - 0x4039,0x5D39,INVALC,0x6237,0x4C41,INVALC,0x6238,INVALC, - 0x3446,0x4857,0x6239,INVALC,0x623A, - /* Range 0x7707 - 0x770C, array index: 0x0F4C */ - 0x623F,0x623E,0x487D,INVALC,0x3447,0x3829, - /* Range 0x771E - 0x7726, array index: 0x0F52 */ - 0x6243,0x3F3F,0x4C32,INVALC,INVALC,INVALC,0x6242,0x6244, - 0x6245, - /* Range 0x77B9 - 0x77BF, array index: 0x0F5B */ - 0x6259,INVALC,0x625D,0x625B,0x625C,INVALC,0x625A, - /* Range 0x77DA - 0x77DC, array index: 0x0F62 */ - 0x6261,0x4C37,0x6262, - /* Range 0x77ED - 0x77EF, array index: 0x0F65 */ - 0x433B,0x6264,0x363A, - /* Range 0x7825 - 0x7827, array index: 0x0F68 */ - 0x4556,0x3A56,0x354E, - /* Range 0x788C - 0x788E, array index: 0x0F6B */ - 0x6271,0x3337,0x626C, - /* Range 0x792A - 0x792C, array index: 0x0F6E */ - 0x626A,0x632A,0x6329, - /* Range 0x7947 - 0x7949, array index: 0x0F71 */ - 0x3540,0x3527,0x3B63, - /* Range 0x7953 - 0x7957, array index: 0x0F74 */ - 0x6331,INVALC,0x6330,0x4144,0x632D, - /* Range 0x795D - 0x7962, array index: 0x0F79 */ - 0x3D4B,0x3F40,0x632E,0x632C,INVALC,0x472A, - /* Range 0x797F - 0x7985, array index: 0x0F7F */ - 0x6333,0x6349,0x3658,INVALC,INVALC,0x4F3D,0x4135, - /* Range 0x798D - 0x798F, array index: 0x0F86 */ - 0x3252,0x4477,0x4A21, - /* Range 0x79B9 - 0x79C1, array index: 0x0F89 */ - 0x633B,0x633C,INVALC,INVALC,0x3659,0x3253,0x4645,0x3D28, - 0x3B64, - /* Range 0x79E3 - 0x79E9, array index: 0x0F92 */ - 0x6342,0x4769,INVALC,0x3F41,0x633F,INVALC,0x4361, - /* Range 0x7A17 - 0x7A20, array index: 0x0F99 */ - 0x4923,0x6345,0x6346,0x4355,INVALC,0x4E47,INVALC,INVALC, - 0x6348,0x6347, - /* Range 0x7A3B - 0x7A43, array index: 0x0FA3 */ - 0x634B,0x3254,0x374E,0x634C,0x3946,0x3972,INVALC,0x4A66, - 0x634E, - /* Range 0x7A4D - 0x7A50, array index: 0x0FAC */ - 0x4051,0x314F,0x323A,0x302C, - /* Range 0x7A61 - 0x7A63, array index: 0x0FB0 */ - 0x6351,0x6352,0x3E77, - /* Range 0x7A92 - 0x7A98, array index: 0x0FB3 */ - 0x4362,0x416B,INVALC,0x635A,0x635C,0x6359,0x635B, - /* Range 0x7AAE - 0x7AB0, array index: 0x0FBA */ - 0x3567,0x4D52,0x635F, - /* Range 0x7AC3 - 0x7AD5, array index: 0x0FBD */ - 0x3376,0x6362,0x6361,INVALC,0x6365,0x635E,INVALC,0x6366, - 0x4E29,INVALC,0x6367,INVALC,0x6368,INVALC,INVALC,0x5474, - 0x636A,INVALC,0x6369, - /* Range 0x7AD9 - 0x7AE6, array index: 0x0FD0 */ - 0x636B,0x636C,INVALC,0x4E35,0x636D,INVALC,0x706F,0x3E4F, - 0x636E,0x636F,0x3D57,INVALC,0x4638,0x6370, - /* Range 0x7AF6 - 0x7AFA, array index: 0x0FDE */ - 0x3625,INVALC,0x513F,0x435D,0x3C33, - /* Range 0x7B45 - 0x7B56, array index: 0x0FE3 */ - 0x6426,0x492E,INVALC,0x4826,0x4579,INVALC,0x365A,0x6425, - 0x6423,INVALC,0x4835,0x637E,0x435E,0x457B,INVALC,0x457A, - INVALC,0x3A76, - /* Range 0x7B94 - 0x7BA1, array index: 0x0FF5 */ - 0x4773,0x4C27,INVALC,0x3B3B,0x6430,0x6439,0x6434,INVALC, - 0x6433,0x642F,INVALC,0x6431,INVALC,0x3449, - /* Range 0x7BE4 - 0x7BE6, array index: 0x1003 */ - 0x4646,0x6445,0x6444, - /* Range 0x7C11 - 0x7C14, array index: 0x1006 */ - 0x6442,0x5255,0x6449,0x6443, - /* Range 0x7C3D - 0x7C40, array index: 0x100A */ - 0x6455,0x4E7C,0x4A6D,0x645A, - /* Range 0x7C4C - 0x7C50, array index: 0x100E */ - 0x6456,0x4052,INVALC,0x6459,0x645B, - /* Range 0x7C81 - 0x7C83, array index: 0x1013 */ - 0x364E,0x3729,0x6463, - /* Range 0x7CA1 - 0x7CA8, array index: 0x1016 */ - 0x6469,0x6467,INVALC,0x6465,0x3421,INVALC,0x3E51,0x646A, - /* Range 0x7CAD - 0x7CB3, array index: 0x101E */ - 0x6466,0x646E,INVALC,INVALC,0x646D,0x646C,0x646B, - /* Range 0x7CDC - 0x7CE2, array index: 0x1025 */ - 0x6476,INVALC,0x4A35,0x416C,0x3947,INVALC,0x6477, - /* Range 0x7D02 - 0x7D06, array index: 0x102C */ - 0x6521,INVALC,0x4C73,0x3948,0x647E, - /* Range 0x7D14 - 0x7D22, array index: 0x1031 */ - 0x3D63,0x6523,INVALC,0x3C53,0x3949,0x3B66,0x3569,0x4A36, - 0x6522,INVALC,INVALC,INVALC,0x4147,0x4B42,0x3A77, - /* Range 0x7D2B - 0x7D35, array index: 0x1040 */ - 0x3B67,0x445D,INVALC,0x6527,0x4E5F,0x3A59,INVALC,0x6528, - 0x3F42,INVALC,0x652A, - /* Range 0x7D42 - 0x7D46, array index: 0x104B */ - 0x3D2A,0x383E,0x4148,0x6525,0x652B, - /* Range 0x7D4B - 0x7D50, array index: 0x1050 */ - 0x6526,0x3750,INVALC,0x652E,0x6532,0x376B, - /* Range 0x7D61 - 0x7D63, array index: 0x1056 */ - 0x4D6D,0x303C,0x6533, - /* Range 0x7D71 - 0x7D76, array index: 0x1059 */ - 0x457D,0x652F,0x652C,INVALC,0x3328,0x4064, - /* Range 0x7D99 - 0x7D9C, array index: 0x105F */ - 0x3751,0x4233,0x6539,0x416E, - /* Range 0x7DAB - 0x7DB5, array index: 0x1063 */ - 0x6540,0x3C7A,0x305D,0x653B,0x6543,0x6547,0x394B,0x4C56, - INVALC,0x4456,0x653D, - /* Range 0x7DBA - 0x7DBF, array index: 0x106E */ - 0x653A,0x433E,INVALC,0x653F,0x303D,0x4C4A, - /* Range 0x7DDA - 0x7DE1, array index: 0x1074 */ - 0x407E,INVALC,0x6544,0x6549,0x654B,INVALC,0x4479,0x654E, - /* Range 0x7E09 - 0x7E0B, array index: 0x107C */ - 0x6556,0x6550,0x6557, - /* Range 0x7E1E - 0x7E23, array index: 0x107F */ - 0x3C4A,0x6555,INVALC,0x6552,0x6558,0x6551, - /* Range 0x7E37 - 0x7E3E, array index: 0x1085 */ - 0x655F,INVALC,0x655D,0x6561,0x655B,INVALC,0x6541,0x4053, - /* Range 0x7E54 - 0x7E5E, array index: 0x108D */ - 0x3F25,0x4136,0x6564,INVALC,INVALC,0x6566,0x6567,INVALC, - INVALC,0x6563,0x6565, - /* Range 0x7E66 - 0x7E6A, array index: 0x1098 */ - 0x655A,0x6562,INVALC,0x656A,0x6569, - /* Range 0x7E79 - 0x7E83, array index: 0x109D */ - 0x6568,INVALC,0x656C,0x656B,0x656F,INVALC,0x6571,INVALC, - INVALC,0x3B3C,0x656D, - /* Range 0x7E8C - 0x7E96, array index: 0x10A8 */ - 0x6574,INVALC,0x657A,0x453B,0x6576,INVALC,0x6575,0x6577, - 0x6578,INVALC,0x6579, - /* Range 0x7F4C - 0x7F55, array index: 0x10B3 */ - 0x6622,0x6623,0x6624,INVALC,0x6625,0x6626,INVALC,INVALC, - 0x6628,0x6627, - /* Range 0x7F67 - 0x7F6B, array index: 0x10BD */ - 0x662E,0x662C,0x662D,0x3A61,0x3753, - /* Range 0x7F75 - 0x7F79, array index: 0x10C2 */ - 0x474D,INVALC,0x486D,0x662F,0x586D, - /* Range 0x7F82 - 0x7F8E, array index: 0x10C7 */ - 0x6630,0x6632,INVALC,0x4D65,0x6631,0x6634,0x6633,INVALC, - 0x4D53,INVALC,0x6635,INVALC,0x487E, - /* Range 0x8000 - 0x8006, array index: 0x10D4 */ - 0x4D54,0x4F37,INVALC,0x394D,0x664E,0x3C54,0x664D, - /* Range 0x8015 - 0x8019, array index: 0x10DB */ - 0x394C,INVALC,0x4C57,0x6651,0x6652, - /* Range 0x805E - 0x8062, array index: 0x10E0 */ - 0x4A39,0x665D,INVALC,0x416F,0x665E, - /* Range 0x806F - 0x807F, array index: 0x10E5 */ - 0x4E7E,0x6662,INVALC,0x6661,0x6660,0x4430,INVALC,0x6663, - 0x3F26,INVALC,0x6664,INVALC,INVALC,INVALC,0x6665,0x4F38, - 0x6666, - /* Range 0x8084 - 0x808C, array index: 0x10F6 */ - 0x6667,0x6669,0x6668,0x4825,INVALC,0x4679,INVALC,0x4F3E, - 0x4829, - /* Range 0x80A9 - 0x80B4, array index: 0x10FF */ - 0x382A,0x4B43,INVALC,0x666F,0x666D,INVALC,0x394E,INVALC, - 0x394F,0x3069,INVALC,0x3A68, - /* Range 0x80D9 - 0x80DE, array index: 0x110B */ - 0x6672,0x6675,0x6670,INVALC,0x6673,0x4B26, - /* Range 0x8105 - 0x810A, array index: 0x1111 */ - 0x363C,0x4048,0x4F46,0x4C2E,0x6677,0x4054, - /* Range 0x8150 - 0x8155, array index: 0x1117 */ - 0x4965,0x6725,INVALC,0x6724,0x3950,0x4F53, - /* Range 0x8178 - 0x817A, array index: 0x111D */ - 0x4432,0x4A22,0x4123, - /* Range 0x817F - 0x8183, array index: 0x1120 */ - 0x425C,0x672F,INVALC,0x6730,0x672C, - /* Range 0x81BD - 0x81C2, array index: 0x1125 */ - 0x673C,0x673A,0x473F,0x673D,INVALC,0x673E, - /* Range 0x81D8 - 0x81DA, array index: 0x112B */ - 0x6744,0x6743,0x6746, - /* Range 0x81FA - 0x8202, array index: 0x112E */ - 0x674A,0x674B,0x3131,INVALC,0x674C,INVALC,INVALC,0x674D, - 0x674E, - /* Range 0x8205 - 0x821F, array index: 0x1137 */ - 0x674F,INVALC,0x6750,0x363D,0x5A2A,0x6751,INVALC,0x4065, - 0x6752,0x3C4B,INVALC,0x6753,INVALC,0x5030,INVALC,INVALC, - INVALC,0x6754,0x4A5E,0x345C,INVALC,INVALC,0x4124,0x3D58, - INVALC,0x4971,0x3D2E, - /* Range 0x8229 - 0x822E, array index: 0x1152 */ - 0x6755,0x3952,0x6756,0x484C,INVALC,0x6764, - /* Range 0x8233 - 0x8239, array index: 0x1158 */ - 0x6758,INVALC,0x4249,0x4775,0x383F,0x6757,0x4125, - /* Range 0x8258 - 0x825A, array index: 0x115F */ - 0x675B,0x675A,0x675D, - /* Range 0x826E - 0x8278, array index: 0x1162 */ - 0x3A31,0x4E49,INVALC,0x6765,0x3F27,INVALC,INVALC,INVALC, - 0x3170,0x6766,0x6767, - /* Range 0x82AB - 0x82B3, array index: 0x116D */ - 0x676B,0x676E,0x474E,INVALC,0x3F44,INVALC,0x3256,INVALC, - 0x4B27, - /* Range 0x82D1 - 0x82D4, array index: 0x1176 */ - 0x3171,0x6772,0x4E6A,0x425D, - /* Range 0x82DB - 0x82E7, array index: 0x117A */ - 0x3257,0x677C,INVALC,0x677A,0x6771,INVALC,0x676F,INVALC, - 0x6770,INVALC,0x3C63,0x366C,0x4377, - /* Range 0x82F9 - 0x82FB, array index: 0x1187 */ - 0x6779,0x6775,0x6778, - /* Range 0x8302 - 0x8306, array index: 0x118A */ - 0x4C50,0x6777,0x3258,0x337D,0x677B, - /* Range 0x8316 - 0x8318, array index: 0x118F */ - 0x6823,0x682C,0x682D, - /* Range 0x8331 - 0x8339, array index: 0x1192 */ - 0x6825,0x6824,INVALC,0x6822,0x6821,0x4363,INVALC,0x427B, - 0x6827, - /* Range 0x839E - 0x83A2, array index: 0x119B */ - 0x3450,0x6831,0x683C,INVALC,0x6832, - /* Range 0x83EF - 0x83F4, array index: 0x11A0 */ - 0x325A,0x3856,0x4929,0x684B,INVALC,0x683F, - /* Range 0x840B - 0x840E, array index: 0x11A6 */ - 0x6846,0x4B28,0x684C,0x3060, - /* Range 0x8461 - 0x8463, array index: 0x11AA */ - 0x4972,0x6864,0x4621, - /* Range 0x8469 - 0x8471, array index: 0x11AD */ - 0x685D,INVALC,0x6859,0x4172,0x6853,0x685B,0x6860,INVALC, - 0x472C, - /* Range 0x84B8 - 0x84BC, array index: 0x11B6 */ - 0x3E78,0x6865,INVALC,0x686A,0x4173, - /* Range 0x84C9 - 0x84D1, array index: 0x11BB */ - 0x4D56,0x6863,0x3338,INVALC,0x6869,INVALC,INVALC,0x686C, - 0x4C2C, - /* Range 0x8511 - 0x851A, array index: 0x11C4 */ - 0x4A4E,INVALC,0x4C22,0x6879,0x6878,INVALC,0x6874,0x6875, - INVALC,0x3136, - /* Range 0x8548 - 0x854B, array index: 0x11CE */ - 0x687E,0x3E56,0x3C49,0x6923, - /* Range 0x8568 - 0x856A, array index: 0x11D2 */ - 0x4F4F,0x4622,0x4973, - /* Range 0x85A6 - 0x85AF, array index: 0x11D5 */ - 0x4126,INVALC,0x692A,0x3B27,0x3F45,0x3730,0x4C74,INVALC, - 0x4C79,0x3D72, - /* Range 0x85F7 - 0x85FB, array index: 0x11DF */ - 0x3D73,INVALC,0x693D,0x6942,0x4174, - /* Range 0x868A - 0x868C, array index: 0x11E4 */ - 0x3263,0x6952,0x6953, - /* Range 0x86A9 - 0x86AB, array index: 0x11E7 */ - 0x6950,0x6951,0x695B, - /* Range 0x86EC - 0x86EF, array index: 0x11EA */ - 0x695F,0x4948,0x485A,0x6962, - /* Range 0x8706 - 0x870A, array index: 0x11EE */ - 0x6964,INVALC,0x6965,0x696A,0x696D, - /* Range 0x880D - 0x8811, array index: 0x11F3 */ - 0x6A38,0x6A3C,0x6A37,INVALC,0x6A3E, - /* Range 0x8821 - 0x8823, array index: 0x11F8 */ - 0x6A42,0x6A41,0x695A, - /* Range 0x885D - 0x8863, array index: 0x11FB */ - 0x3E57,0x6A4C,INVALC,INVALC,0x3955,0x6A4D,0x3061, - /* Range 0x887D - 0x8882, array index: 0x1202 */ - 0x6A53,0x6A50,0x365E,INVALC,0x6A4F,0x6A56, - /* Range 0x88BF - 0x88C5, array index: 0x1208 */ - 0x6A5F,INVALC,0x3A5B,0x4E76,0x6A61,0x6A62,0x4175, - /* Range 0x88F2 - 0x88F4, array index: 0x120F */ - 0x6A6C,0x3E58,0x6A6A, - /* Range 0x88F8 - 0x88FE, array index: 0x1212 */ - 0x4D67,0x6A67,INVALC,INVALC,0x6A69,0x403D,0x3F7E, - /* Range 0x895E - 0x8960, array index: 0x1219 */ - 0x6A7E,0x365F,0x6A7D, - /* Range 0x8986 - 0x898B, array index: 0x121C */ - 0x4A24,0x4746,0x6B2A,INVALC,0x6B2B,0x382B, - /* Range 0x8996 - 0x899A, array index: 0x1222 */ - 0x3B6B,0x4741,0x6B2D,INVALC,0x3350, - /* Range 0x89A6 - 0x89AC, array index: 0x1227 */ - 0x6B30,0x4D77,INVALC,0x6B2F,0x3F46,INVALC,0x6B31, - /* Range 0x8A16 - 0x8A18, array index: 0x122E */ - 0x6B3F,0x4277,0x352D, - /* Range 0x8A3A - 0x8A3C, array index: 0x1231 */ - 0x3F47,0x4370,0x3E5A, - /* Range 0x8A50 - 0x8A55, array index: 0x1234 */ - 0x3A3E,0x4242,0x6B48,INVALC,0x3E5B,0x493E, - /* Range 0x8A69 - 0x8A73, array index: 0x123A */ - 0x3B6D,INVALC,0x4F4D,0x6B4D,0x6B4C,0x4127,INVALC,0x354D, - 0x4F43,0x333A,0x3E5C, - /* Range 0x8AA0 - 0x8AA8, array index: 0x1245 */ - 0x403F,0x6B53,INVALC,0x6B58,0x386D,0x6B55,0x6B56,INVALC, - 0x6B52, - /* Range 0x8ACB - 0x8ACF, array index: 0x124E */ - 0x4041,0x3452,0x6B5A,INVALC,0x3F5B, - /* Range 0x8ADA - 0x8AE7, array index: 0x1253 */ - 0x6B5C,0x6B67,0x4435,INVALC,0x6B66,INVALC,0x6B63,0x6B6B, - 0x6B64,INVALC,0x6B60,INVALC,0x447C,0x6B5F, - /* Range 0x8AFE - 0x8B04, array index: 0x1261 */ - 0x427A,INVALC,0x4B45,0x315A,0x3062,INVALC,0x4625, - /* Range 0x8B16 - 0x8B21, array index: 0x1268 */ - 0x6B6C,0x6B6E,INVALC,0x382C,0x6B6A,0x3956,INVALC,0x3C55, - INVALC,INVALC,0x6B6F,0x4D58, - /* Range 0x8B58 - 0x8B5C, array index: 0x1274 */ - 0x3C31,INVALC,0x6B7D,0x6B7C,0x4968, - /* Range 0x8B6B - 0x8B74, array index: 0x1279 */ - 0x6B7E,0x6C22,INVALC,INVALC,0x6C23,0x3544,0x6641,0x3E79, - INVALC,0x6C24, - /* Range 0x8C6A - 0x8C6C, array index: 0x1283 */ - 0x396B,0x502E,0x6C37, - /* Range 0x8C78 - 0x8C7C, array index: 0x1286 */ - 0x6C38,0x493F,0x6C39,INVALC,0x6C41, - /* Range 0x8C89 - 0x8C8E, array index: 0x128B */ - 0x6C3B,0x6C3D,INVALC,0x4B46,0x6C3E,0x6C3F, - /* Range 0x8C9D - 0x8CA2, array index: 0x1291 */ - 0x332D,0x4467,INVALC,0x4969,0x3A62,0x3957, - /* Range 0x8CA7 - 0x8CCE, array index: 0x1297 */ - 0x494F,0x325F,0x484E,0x6C45,0x3453,0x4055,0x6C44,0x6C49, - 0x4379,0x4C63,INVALC,0x6C47,0x6C48,0x352E,INVALC,0x6C4A, - 0x4763,0x425F,INVALC,INVALC,0x4871,0x453D,0x6C46,INVALC, - 0x4B47,0x326C,0x6C4C,0x4F28,0x4442,0x4F45,INVALC,INVALC, - 0x3B71,0x6C4B,INVALC,0x4231,INVALC,INVALC,0x6C5C,0x4128, - /* Range 0x8CDA - 0x8CE6, array index: 0x12BF */ - 0x6C4F,0x3B3F,0x3B72,INVALC,0x3E5E,INVALC,0x4765,INVALC, - 0x382D,0x6C4E,0x6C4D,INVALC,0x496A, - /* Range 0x8CFA - 0x8CFD, array index: 0x12CC */ - 0x6C51,0x6C52,0x3958,0x6C50, - /* Range 0x8D04 - 0x8D16, array index: 0x12D0 */ - 0x6C53,0x6C54,INVALC,0x6C56,0x4223,INVALC,0x6C55,0x3466, - INVALC,0x6C58,INVALC,0x6C57,0x6C59,INVALC,INVALC,0x6C5B, - 0x6C5D,INVALC,0x6C5E, - /* Range 0x8D70 - 0x8D74, array index: 0x12E3 */ - 0x4176,0x6C61,INVALC,0x6C62,0x496B, - /* Range 0x8E08 - 0x8E0A, array index: 0x12E8 */ - 0x6C73,0x6C74,0x4D59, - /* Range 0x8E1D - 0x8E1F, array index: 0x12EB */ - 0x6C76,0x6C77,0x6C79, - /* Range 0x8E47 - 0x8E4C, array index: 0x12EE */ - 0x6D21,0x6D25,0x6D22,0x6C7E,INVALC,0x6D23, - /* Range 0x8EAA - 0x8EB1, array index: 0x12F4 */ - 0x6D39,0x3F48,0x6D3B,INVALC,INVALC,0x366D,0x6D3C,0x6D3E, - /* Range 0x8EC8 - 0x8ECD, array index: 0x12FC */ - 0x6D41,INVALC,0x3C56,0x6D42,0x3530,0x3733, - /* Range 0x8EFB - 0x8EFE, array index: 0x1302 */ - 0x6D46,0x6D45,0x375A,0x6D48, - /* Range 0x8F12 - 0x8F15, array index: 0x1306 */ - 0x6D4C,0x6D4E,0x4A65,0x6D4B, - /* Range 0x8F19 - 0x8F1F, array index: 0x130A */ - 0x6D4D,INVALC,0x6D51,0x6D4F,0x3531,INVALC,0x6D50, - /* Range 0x8F42 - 0x8F46, array index: 0x1311 */ - 0x6D58,INVALC,0x336D,0x6D57,0x6D5C, - /* Range 0x8F4C - 0x8F4E, array index: 0x1316 */ - 0x6D5A,0x4532,0x6D5D, - /* Range 0x8F5F - 0x8F64, array index: 0x1319 */ - 0x396C,INVALC,0x3725,0x6D60,0x6D61,0x6D62, - /* Range 0x8F9B - 0x8F9F, array index: 0x131F */ - 0x3F49,0x6D63,INVALC,0x3C2D,0x6D64, - /* Range 0x8FAD - 0x8FB2, array index: 0x1324 */ - 0x6D66,0x6570,0x6D67,0x4324,0x3F2B,0x4740, - /* Range 0x8FBA - 0x8FBC, array index: 0x132A */ - 0x4A55,0x4454,0x397E, - /* Range 0x8FE5 - 0x8FF0, array index: 0x132D */ - 0x6D6A,0x3260,INVALC,INVALC,0x4676,0x6D6C,0x4777,INVALC, - 0x4533,INVALC,0x6D6D,0x3D52, - /* Range 0x8FF7 - 0x8FFA, array index: 0x1339 */ - 0x4C42,0x6D7E,0x6D71,0x6D72, - /* Range 0x900B - 0x9023, array index: 0x133D */ - 0x6D79,INVALC,0x6D76,0x6E25,0x4629,0x4360,0x6D73,INVALC, - 0x447E,0x4553,0x6D74,0x6D78,0x3F60,INVALC,0x4767,0x444C, - INVALC,INVALC,0x4042,0x6D77,0x422E,0x4224,0x6D75,0x3029, - 0x4F22, - /* Range 0x9035 - 0x9039, array index: 0x1356 */ - 0x6D7C,0x6D7B,INVALC,0x306F,0x6D7D, - /* Range 0x9047 - 0x9059, array index: 0x135B */ - 0x3678,INVALC,0x6E26,0x4D37,0x313F,INVALC,0x4A57,0x3261, - 0x6E21,0x6E22,0x6E23,0x6E24,0x463B,0x4323,0x3063,0x6E28, - INVALC,0x6E29,0x7423, - /* Range 0x906D - 0x906F, array index: 0x136E */ - 0x4178,0x3C57,0x6E2C, - /* Range 0x9075 - 0x9084, array index: 0x1371 */ - 0x3D65,0x6E2D,0x412B,0x412A,INVALC,0x3064,INVALC,0x4E4B, - 0x6E31,INVALC,0x4872,0x6E33,0x6E32,0x6E30,0x6364,0x3454, - /* Range 0x9149 - 0x914E, array index: 0x1381 */ - 0x4653,0x6E44,0x3D36,0x3C60,0x475B,0x4371, - /* Range 0x91C6 - 0x91D1, array index: 0x1387 */ - 0x4850,0x3A53,0x3C61,0x6E58,INVALC,0x6E59,0x4E24,0x3D45, - 0x4C6E,0x4E4C,0x6E5A,0x3662, - /* Range 0x91DB - 0x91E7, array index: 0x1393 */ - 0x6E5E,0x3378,0x3F4B,INVALC,0x6E5C,INVALC,0x6E5D,INVALC, - 0x4460,INVALC,INVALC,0x4B55,0x367C, - /* Range 0x9298 - 0x929C, array index: 0x13A0 */ - 0x4C43,INVALC,0x4438,0x6E75,0x6E72, - /* Range 0x9318 - 0x931A, array index: 0x13A5 */ - 0x3F6E,0x6F21,0x6F23, - /* Range 0x932B - 0x932F, array index: 0x13A8 */ - 0x3C62,0x4F23,INVALC,0x6E7E,0x3A78, - /* Range 0x93AC - 0x93B0, array index: 0x13AD */ - 0x6F2E,0x6F2F,0x4443,INVALC,0x6F2D, - /* Range 0x93D6 - 0x93D8, array index: 0x13B2 */ - 0x6F32,0x6F33,0x6F36, - /* Range 0x9418 - 0x941A, array index: 0x13B5 */ - 0x3E62,0x462A,0x6F3C, - /* Range 0x9451 - 0x9453, array index: 0x13B8 */ - 0x3455,0x6F48,0x4C7A, - /* Range 0x947C - 0x9481, array index: 0x13BB */ - 0x6F55,0x6F53,0x6F56,0x6F58,INVALC,0x6F57, - /* Range 0x9587 - 0x958B, array index: 0x13C1 */ - 0x6F5A,INVALC,0x4A44,0x6F5B,0x332B, - /* Range 0x95A0 - 0x95A8, array index: 0x13C6 */ - 0x6F60,INVALC,0x3458,0x3355,0x395E,0x4836,INVALC,0x6F62, - 0x6F61, - /* Range 0x95D4 - 0x95D8, array index: 0x13CF */ - 0x6F6E,0x6F6D,0x6F6F,INVALC,0x462E, - /* Range 0x964B - 0x9650, array index: 0x13D4 */ - 0x6F7B,0x6F79,0x395F,INVALC,0x6F7A,0x3842, - /* Range 0x965B - 0x9666, array index: 0x13DA */ - 0x4A45,0x6F7D,0x7021,0x6F7E,0x7022,INVALC,INVALC,0x3121, - 0x3F58,0x3D7C,0x3459,0x7023, - /* Range 0x9672 - 0x967A, array index: 0x13E6 */ - 0x7024,0x4444,INVALC,0x4E4D,0x462B,0x6F7C,0x4E26,INVALC, - 0x3831, - /* Range 0x968A - 0x968F, array index: 0x13EF */ - 0x4262,0x6721,INVALC,0x7026,0x332C,0x3F6F, - /* Range 0x9694 - 0x969C, array index: 0x13F5 */ - 0x3356,0x7028,INVALC,0x7029,0x7027,0x3764,INVALC,0x3A5D, - 0x3E63, - /* Range 0x96B0 - 0x96BC, array index: 0x13FE */ - 0x702E,0x702C,0x702D,INVALC,0x702F,INVALC,0x7030,0x4E6C, - 0x7031,0x7032,INVALC,0x4049,0x483B, - /* Range 0x96C0 - 0x96CE, array index: 0x140B */ - 0x3F7D,0x3467,INVALC,INVALC,0x4D3A,0x326D,0x3D38,0x385B, - INVALC,0x7035,INVALC,0x7034,0x3B73,0x7036,0x7033, - /* Range 0x9704 - 0x9713, array index: 0x141A */ - 0x703C,INVALC,0x703D,0x3F4C,0x703E,INVALC,0x4E6E,INVALC, - INVALC,0x7039,0x7040,0x7042,INVALC,0x7041,INVALC,0x703F, - /* Range 0x975E - 0x976D, array index: 0x142A */ - 0x4873,INVALC,0x7051,0x7353,0x4C4C,INVALC,0x7052,INVALC, - 0x7053,INVALC,0x7054,0x3357,INVALC,0x7056,INVALC,0x3F59, - /* Range 0x9784 - 0x9786, array index: 0x143A */ - 0x3373,0x7059,0x705D, - /* Range 0x97F2 - 0x97F6, array index: 0x143D */ - 0x706E,0x323B,INVALC,0x7071,0x7070, - /* Range 0x97FF - 0x9808, array index: 0x1442 */ - 0x3641,INVALC,0x4A47,0x443A,0x3A22,INVALC,0x3960,0x3D67, - INVALC,0x3F5C, - /* Range 0x980F - 0x9813, array index: 0x144C */ - 0x7072,0x4D42,0x3468,0x4852,0x465C, - /* Range 0x9837 - 0x983D, array index: 0x1451 */ - 0x7077,0x7074,INVALC,INVALC,0x4951,0x4D6A,0x7078, - /* Range 0x984B - 0x984F, array index: 0x1458 */ - 0x707B,0x426A,0x335B,0x335C,0x707A, - /* Range 0x986F - 0x9874, array index: 0x145D */ - 0x707D,0x707E,0x7121,INVALC,0x7123,0x7122, - /* Range 0x98EB - 0x98EF, array index: 0x1463 */ - 0x712C,INVALC,0x522C,0x5D3B,0x4853, - /* Range 0x98FC - 0x98FE, array index: 0x1468 */ - 0x3B74,0x4B30,0x3E7E, - /* Range 0x9910 - 0x9914, array index: 0x146B */ - 0x3B41,INVALC,0x712F,0x326E,0x7130, - /* Range 0x991D - 0x9921, array index: 0x1470 */ - 0x7133,0x7134,INVALC,0x7136,0x7132, - /* Range 0x9950 - 0x9952, array index: 0x1475 */ - 0x713E,0x7140,0x7141, - /* Range 0x9996 - 0x9999, array index: 0x1478 */ - 0x3C73,0x7144,0x7145,0x3961, - /* Range 0x99AC - 0x99AE, array index: 0x147C */ - 0x474F,0x7147,0x7148, - /* Range 0x99C4 - 0x99C8, array index: 0x147F */ - 0x424C,0x3158,0x366E,INVALC,0x366F, - /* Range 0x99D0 - 0x99D2, array index: 0x1484 */ - 0x4373,0x714E,0x3670, - /* Range 0x9A69 - 0x9A6B, array index: 0x1487 */ - 0x7169,0x716B,0x716A, - /* Range 0x9AEA - 0x9AF1, array index: 0x148A */ - 0x4831,0x717A,INVALC,0x4926,0x717B,0x7179,INVALC,0x717D, - /* Range 0x9B25 - 0x9B2A, array index: 0x1492 */ - 0x7228,INVALC,0x7229,0x722A,0x722B,0x722C, - /* Range 0x9B2E - 0x9B32, array index: 0x1498 */ - 0x722D,0x722E,INVALC,0x5D35,0x722F, - /* Range 0x9B41 - 0x9B45, array index: 0x149D */ - 0x3321,0x3A32,0x7231,0x7230,0x4C25, - /* Range 0x9B4D - 0x9B51, array index: 0x14A2 */ - 0x7233,0x7234,0x7232,INVALC,0x7235, - /* Range 0x9B91 - 0x9B97, array index: 0x14A7 */ - 0x723A,0x4A2B,0x7238,INVALC,INVALC,0x723B,0x723C, - /* Range 0x9BAA - 0x9BAE, array index: 0x14AE */ - 0x4B6E,0x3B2D,INVALC,0x3A7A,0x412F, - /* Range 0x9BE1 - 0x9BE4, array index: 0x14B3 */ - 0x724C,0x7249,0x7248,0x724A, - /* Range 0x9BF0 - 0x9BF2, array index: 0x14B7 */ - 0x7250,0x724F,0x724E, - /* Range 0x9C06 - 0x9C0D, array index: 0x14BA */ - 0x7256,INVALC,0x7257,0x7253,0x7259,INVALC,0x7255,0x3362, - /* Range 0x9C10 - 0x9C15, array index: 0x14C2 */ - 0x4F4C,INVALC,0x7258,0x7254,0x7252,0x7251, - /* Range 0x9C2D - 0x9C32, array index: 0x14C8 */ - 0x4949,0x725B,0x3073,0x7260,INVALC,0x7262, - /* Range 0x9C39 - 0x9C3B, array index: 0x14CE */ - 0x336F,0x724D,0x3137, - /* Range 0x9C46 - 0x9C48, array index: 0x14D1 */ - 0x7263,0x7261,0x432D, - /* Range 0x9D06 - 0x9D09, array index: 0x14D4 */ - 0x7271,0x463E,0x726E,0x726D, - /* Range 0x9D28 - 0x9D2C, array index: 0x14D8 */ - 0x337B,INVALC,0x7272,0x3C32,0x3229, - /* Range 0x9D5C - 0x9D61, array index: 0x14DD */ - 0x312D,0x7321,0x7322,INVALC,0x3974,0x4C39, - /* Range 0x9DF8 - 0x9DFA, array index: 0x14E3 */ - 0x733B,0x426B,0x3A6D, - /* Range 0x9E91 - 0x9E97, array index: 0x14E6 */ - 0x734C,0x734A,0x4F3C,INVALC,0x734B,INVALC,0x4E6F, - /* Range 0x9EB8 - 0x9EBF, array index: 0x14ED */ - 0x7350,0x396D,0x4C4D,0x4B63,0x5677,INVALC,0x5D60,0x4B7B, - /* Range 0x9ECC - 0x9ED4, array index: 0x14F5 */ - 0x7354,0x3550,0x7355,0x7356,0x7357,INVALC,0x3975,INVALC, - 0x7358, - /* Range 0x9ED8 - 0x9EE0, array index: 0x14FE */ - 0x6054,0x4C5B,INVALC,0x4263,0x7359,0x735B,0x735A,INVALC, - 0x735C, - /* Range 0x9EF9 - 0x9EFD, array index: 0x1507 */ - 0x7363,INVALC,0x7364,0x7365,0x7366, - /* Range 0x9F5F - 0x9F67, array index: 0x150C */ - 0x7372,0x7373,0x7374,0x4E70,0x7371,INVALC,INVALC,0x7375, - 0x7376, - /* Range 0xFF01 - 0xFF5D, array index: 0x1515 */ - 0x212A,INVALC,0x2174,0x2170,0x2173,0x2175,INVALC,0x214A, - 0x214B,0x2176,0x215C,0x2124,INVALC,0x2125,0x213F,0x2330, - 0x2331,0x2332,0x2333,0x2334,0x2335,0x2336,0x2337,0x2338, - 0x2339,0x2127,0x2128,0x2163,0x2161,0x2164,0x2129,0x2177, - 0x2341,0x2342,0x2343,0x2344,0x2345,0x2346,0x2347,0x2348, - 0x2349,0x234A,0x234B,0x234C,0x234D,0x234E,0x234F,0x2350, - 0x2351,0x2352,0x2353,0x2354,0x2355,0x2356,0x2357,0x2358, - 0x2359,0x235A,0x214E,INVALC,0x214F,0x2130,0x2132,0x212E, - 0x2361,0x2362,0x2363,0x2364,0x2365,0x2366,0x2367,0x2368, - 0x2369,0x236A,0x236B,0x236C,0x236D,0x236E,0x236F,0x2370, - 0x2371,0x2372,0x2373,0x2374,0x2375,0x2376,0x2377,0x2378, - 0x2379,0x237A,0x2150,0x2143,0x2151, - /* Unranged codes (489 codes) */ - /* Array index: 0x1572 */ 0x005C,0x2140, - /* Array index: 0x1572 */ 0x00A2,0x2171, - /* Array index: 0x1572 */ 0x00A3,0x2172, - /* Array index: 0x1572 */ 0x00A7,0x2178, - /* Array index: 0x1572 */ 0x00A8,0x212F, - /* Array index: 0x1572 */ 0x00AC,0x224C, - /* Array index: 0x1572 */ 0x00B0,0x216B, - /* Array index: 0x1572 */ 0x00B1,0x215E, - /* Array index: 0x1572 */ 0x00B4,0x212D, - /* Array index: 0x1572 */ 0x00B6,0x2279, - /* Array index: 0x1572 */ 0x00D7,0x215F, - /* Array index: 0x1572 */ 0x00F7,0x2160, - /* Array index: 0x1572 */ 0x0401,0x2727, - /* Array index: 0x1572 */ 0x2010,0x213E, - /* Array index: 0x1572 */ 0x2025,0x2145, - /* Array index: 0x1572 */ 0x2026,0x2144, - /* Array index: 0x1572 */ 0x2030,0x2273, - /* Array index: 0x1572 */ 0x2032,0x216C, - /* Array index: 0x1572 */ 0x2033,0x216D, - /* Array index: 0x1572 */ 0x203B,0x2228, - /* Array index: 0x1572 */ 0x2103,0x216E, - /* Array index: 0x1572 */ 0x212B,0x2272, - /* Array index: 0x1572 */ 0x21D2,0x224D, - /* Array index: 0x1572 */ 0x21D4,0x224E, - /* Array index: 0x1572 */ 0x2200,0x224F, - /* Array index: 0x1572 */ 0x2202,0x225F, - /* Array index: 0x1572 */ 0x2203,0x2250, - /* Array index: 0x1572 */ 0x2207,0x2260, - /* Array index: 0x1572 */ 0x2208,0x223A, - /* Array index: 0x1572 */ 0x220B,0x223B, - /* Array index: 0x1572 */ 0x2212,0x215D, - /* Array index: 0x1572 */ 0x221A,0x2265, - /* Array index: 0x1572 */ 0x221D,0x2267, - /* Array index: 0x1572 */ 0x221E,0x2167, - /* Array index: 0x1572 */ 0x2220,0x225C, - /* Array index: 0x1572 */ 0x2234,0x2168, - /* Array index: 0x1572 */ 0x2235,0x2268, - /* Array index: 0x1572 */ 0x223D,0x2266, - /* Array index: 0x1572 */ 0x2252,0x2262, - /* Array index: 0x1572 */ 0x2260,0x2162, - /* Array index: 0x1572 */ 0x2261,0x2261, - /* Array index: 0x1572 */ 0x2266,0x2165, - /* Array index: 0x1572 */ 0x2267,0x2166, - /* Array index: 0x1572 */ 0x226A,0x2263, - /* Array index: 0x1572 */ 0x226B,0x2264, - /* Array index: 0x1572 */ 0x2282,0x223E, - /* Array index: 0x1572 */ 0x2283,0x223F, - /* Array index: 0x1572 */ 0x2286,0x223C, - /* Array index: 0x1572 */ 0x2287,0x223D, - /* Array index: 0x1572 */ 0x22A5,0x225D, - /* Array index: 0x1572 */ 0x2312,0x225E, - /* Array index: 0x1572 */ 0x250C,0x2823, - /* Array index: 0x1572 */ 0x250F,0x282E, - /* Array index: 0x1572 */ 0x2510,0x2824, - /* Array index: 0x1572 */ 0x2513,0x282F, - /* Array index: 0x1572 */ 0x2514,0x2826, - /* Array index: 0x1572 */ 0x2520,0x2837, - /* Array index: 0x1572 */ 0x2528,0x2839, - /* Array index: 0x1572 */ 0x252B,0x2834, - /* Array index: 0x1572 */ 0x252C,0x2828, - /* Array index: 0x1572 */ 0x252F,0x2838, - /* Array index: 0x1572 */ 0x2530,0x283D, - /* Array index: 0x1572 */ 0x2533,0x2833, - /* Array index: 0x1572 */ 0x2534,0x282A, - /* Array index: 0x1572 */ 0x2537,0x283A, - /* Array index: 0x1572 */ 0x2538,0x283F, - /* Array index: 0x1572 */ 0x253B,0x2835, - /* Array index: 0x1572 */ 0x253C,0x282B, - /* Array index: 0x1572 */ 0x253F,0x283B, - /* Array index: 0x1572 */ 0x2542,0x2840, - /* Array index: 0x1572 */ 0x254B,0x2836, - /* Array index: 0x1572 */ 0x25A0,0x2223, - /* Array index: 0x1572 */ 0x25A1,0x2222, - /* Array index: 0x1572 */ 0x25B2,0x2225, - /* Array index: 0x1572 */ 0x25B3,0x2224, - /* Array index: 0x1572 */ 0x25BC,0x2227, - /* Array index: 0x1572 */ 0x25BD,0x2226, - /* Array index: 0x1572 */ 0x25C6,0x2221, - /* Array index: 0x1572 */ 0x25C7,0x217E, - /* Array index: 0x1572 */ 0x25CB,0x217B, - /* Array index: 0x1572 */ 0x25CE,0x217D, - /* Array index: 0x1572 */ 0x25CF,0x217C, - /* Array index: 0x1572 */ 0x25EF,0x227E, - /* Array index: 0x1572 */ 0x2605,0x217A, - /* Array index: 0x1572 */ 0x2606,0x2179, - /* Array index: 0x1572 */ 0x2640,0x216A, - /* Array index: 0x1572 */ 0x2642,0x2169, - /* Array index: 0x1572 */ 0x266A,0x2276, - /* Array index: 0x1572 */ 0x266D,0x2275, - /* Array index: 0x1572 */ 0x266F,0x2274, - /* Array index: 0x1572 */ 0x301C,0x2141, - /* Array index: 0x1572 */ 0x4E00,0x306C, - /* Array index: 0x1572 */ 0x4E01,0x437A, - /* Array index: 0x1572 */ 0x4E03,0x3C37, - /* Array index: 0x1572 */ 0x4E1E,0x3E67, - /* Array index: 0x1572 */ 0x4E21,0x4E3E, - /* Array index: 0x1572 */ 0x4E26,0x4A42, - /* Array index: 0x1572 */ 0x4E2A,0x5024, - /* Array index: 0x1572 */ 0x4E2D,0x4366, - /* Array index: 0x1572 */ 0x4E31,0x5025, - /* Array index: 0x1572 */ 0x4E32,0x367A, - /* Array index: 0x1572 */ 0x4E36,0x5026, - /* Array index: 0x1572 */ 0x4E3F,0x5028, - /* Array index: 0x1572 */ 0x4E42,0x5029, - /* Array index: 0x1572 */ 0x4E43,0x4735, - /* Array index: 0x1572 */ 0x4E45,0x3557, - /* Array index: 0x1572 */ 0x4E62,0x5626, - /* Array index: 0x1572 */ 0x4E71,0x4D70, - /* Array index: 0x1572 */ 0x4E73,0x467D, - /* Array index: 0x1572 */ 0x4E7E,0x3425, - /* Array index: 0x1572 */ 0x4E80,0x3535, - /* Array index: 0x1572 */ 0x4E82,0x502C, - /* Array index: 0x1572 */ 0x4EB3,0x5038, - /* Array index: 0x1572 */ 0x4EB6,0x5039, - /* Array index: 0x1572 */ 0x4EBA,0x3F4D, - /* Array index: 0x1572 */ 0x4EED,0x5041, - /* Array index: 0x1572 */ 0x4EEE,0x323E, - /* Array index: 0x1572 */ 0x4EF0,0x3644, - /* Array index: 0x1572 */ 0x4EF2,0x4367, - /* Array index: 0x1572 */ 0x4EF6,0x376F, - /* Array index: 0x1572 */ 0x4EF7,0x5043, - /* Array index: 0x1572 */ 0x4EFB,0x4724, - /* Array index: 0x1572 */ 0x4F01,0x346B, - /* Array index: 0x1572 */ 0x4F1A,0x3271, - /* Array index: 0x1572 */ 0x4F1C,0x5067, - /* Array index: 0x1572 */ 0x4F1D,0x4541, - /* Array index: 0x1572 */ 0x4F2F,0x476C, - /* Array index: 0x1572 */ 0x4F30,0x5046, - /* Array index: 0x1572 */ 0x4F34,0x483C, - /* Array index: 0x1572 */ 0x4F36,0x4E62, - /* Array index: 0x1572 */ 0x4F38,0x3F2D, - /* Array index: 0x1572 */ 0x4F3A,0x3B47, - /* Array index: 0x1572 */ 0x4F3C,0x3B77, - /* Array index: 0x1572 */ 0x4F3D,0x3240, - /* Array index: 0x1572 */ 0x4F43,0x4451, - /* Array index: 0x1572 */ 0x4F46,0x4322, - /* Array index: 0x1572 */ 0x4F47,0x504A, - /* Array index: 0x1572 */ 0x4F69,0x5050, - /* Array index: 0x1572 */ 0x4F6F,0x5053, - /* Array index: 0x1572 */ 0x4F70,0x5051, - /* Array index: 0x1572 */ 0x4F73,0x3242, - /* Array index: 0x1572 */ 0x4F75,0x4A3B, - /* Array index: 0x1572 */ 0x4F76,0x504B, - /* Array index: 0x1572 */ 0x4F7B,0x504F, - /* Array index: 0x1572 */ 0x4F7C,0x3873, - /* Array index: 0x1572 */ 0x4F7F,0x3B48, - /* Array index: 0x1572 */ 0x4F83,0x3426, - /* Array index: 0x1572 */ 0x4F86,0x5054, - /* Array index: 0x1572 */ 0x4F88,0x504C, - /* Array index: 0x1572 */ 0x4F8B,0x4E63, - /* Array index: 0x1572 */ 0x4F8D,0x3B78, - /* Array index: 0x1572 */ 0x4F8F,0x504D, - /* Array index: 0x1572 */ 0x4F91,0x5052, - /* Array index: 0x1572 */ 0x4F96,0x5055, - /* Array index: 0x1572 */ 0x4F98,0x504E, - /* Array index: 0x1572 */ 0x4F9B,0x3621, - /* Array index: 0x1572 */ 0x4F9D,0x304D, - /* Array index: 0x1572 */ 0x4FA0,0x3622, - /* Array index: 0x1572 */ 0x4FA1,0x3241, - /* Array index: 0x1572 */ 0x4FB5,0x3F2F, - /* Array index: 0x1572 */ 0x4FB6,0x4E37, - /* Array index: 0x1572 */ 0x4FBF,0x4A58, - /* Array index: 0x1572 */ 0x4FCA,0x3D53, - /* Array index: 0x1572 */ 0x4FCE,0x5059, - /* Array index: 0x1572 */ 0x4FD0,0x505E, - /* Array index: 0x1572 */ 0x4FD1,0x505C, - /* Array index: 0x1572 */ 0x4FD4,0x5057, - /* Array index: 0x1572 */ 0x4FEE,0x3D24, - /* Array index: 0x1572 */ 0x4FEF,0x506D, - /* Array index: 0x1572 */ 0x4FF3,0x4750, - /* Array index: 0x1572 */ 0x4FF5,0x4936, - /* Array index: 0x1572 */ 0x4FF6,0x5068, - /* Array index: 0x1572 */ 0x4FF8,0x4A70, - /* Array index: 0x1572 */ 0x4FFA,0x3236, - /* Array index: 0x1572 */ 0x4FFE,0x506C, - /* Array index: 0x1572 */ 0x5005,0x5066, - /* Array index: 0x1572 */ 0x5006,0x506F, - /* Array index: 0x1572 */ 0x5009,0x4152, - /* Array index: 0x1572 */ 0x500B,0x3844, - /* Array index: 0x1572 */ 0x500D,0x475C, - /* Array index: 0x1572 */ 0x500F,0x6047, - /* Array index: 0x1572 */ 0x5011,0x506E, - /* Array index: 0x1572 */ 0x5012,0x455D, - /* Array index: 0x1572 */ 0x5014,0x5063, - /* Array index: 0x1572 */ 0x5016,0x3876, - /* Array index: 0x1572 */ 0x5019,0x3875, - /* Array index: 0x1572 */ 0x501A,0x5061, - /* Array index: 0x1572 */ 0x501F,0x3C5A, - /* Array index: 0x1572 */ 0x5036,0x3666, - /* Array index: 0x1572 */ 0x5039,0x3770, - /* Array index: 0x1572 */ 0x5043,0x5070, - /* Array index: 0x1572 */ 0x504F,0x4A50, - /* Array index: 0x1572 */ 0x5050,0x5074, - /* Array index: 0x1572 */ 0x5055,0x5073, - /* Array index: 0x1572 */ 0x5056,0x5077, - /* Array index: 0x1572 */ 0x505A,0x5076, - /* Array index: 0x1572 */ 0x505C,0x4464, - /* Array index: 0x1572 */ 0x5065,0x3772, - /* Array index: 0x1572 */ 0x506C,0x5078, - /* Array index: 0x1572 */ 0x507D,0x3536, - /* Array index: 0x1572 */ 0x5080,0x507A, - /* Array index: 0x1572 */ 0x5085,0x507C, - /* Array index: 0x1572 */ 0x508D,0x4B35, - /* Array index: 0x1572 */ 0x5091,0x3766, - /* Array index: 0x1572 */ 0x50AC,0x3A45, - /* Array index: 0x1572 */ 0x50AD,0x4D43, - /* Array index: 0x1572 */ 0x50BE,0x3739, - /* Array index: 0x1572 */ 0x50C2,0x5124, - /* Array index: 0x1572 */ 0x50C5,0x364F, - /* Array index: 0x1572 */ 0x50C9,0x5121, - /* Array index: 0x1572 */ 0x50CA,0x5122, - /* Array index: 0x1572 */ 0x50CD,0x462F, - /* Array index: 0x1572 */ 0x50CF,0x417C, - /* Array index: 0x1572 */ 0x50D1,0x3623, - /* Array index: 0x1572 */ 0x50D5,0x4B4D, - /* Array index: 0x1572 */ 0x50D6,0x5125, - /* Array index: 0x1572 */ 0x50DA,0x4E3D, - /* Array index: 0x1572 */ 0x50DE,0x5126, - /* Array index: 0x1572 */ 0x50E3,0x5129, - /* Array index: 0x1572 */ 0x50E5,0x5127, - /* Array index: 0x1572 */ 0x50E7,0x414E, - /* Array index: 0x1572 */ 0x50ED,0x5128, - /* Array index: 0x1572 */ 0x50EE,0x512A, - /* Array index: 0x1572 */ 0x50F5,0x512C, - /* Array index: 0x1572 */ 0x50F9,0x512B, - /* Array index: 0x1572 */ 0x50FB,0x4A48, - /* Array index: 0x1572 */ 0x5109,0x512D, - /* Array index: 0x1572 */ 0x511F,0x3D7E, - /* Array index: 0x1572 */ 0x5121,0x5134, - /* Array index: 0x1572 */ 0x512A,0x4D25, - /* Array index: 0x1572 */ 0x5132,0x4C59, - /* Array index: 0x1572 */ 0x5137,0x5136, - /* Array index: 0x1572 */ 0x515A,0x455E, - /* Array index: 0x1572 */ 0x515C,0x3375, - /* Array index: 0x1572 */ 0x5162,0x513E, - /* Array index: 0x1572 */ 0x5165,0x467E, - /* Array index: 0x1572 */ 0x5171,0x3626, - /* Array index: 0x1572 */ 0x517C,0x3773, - /* Array index: 0x1572 */ 0x5180,0x5143, - /* Array index: 0x1572 */ 0x5182,0x5144, - /* Array index: 0x1572 */ 0x5185,0x4662, - /* Array index: 0x1572 */ 0x5186,0x315F, - /* Array index: 0x1572 */ 0x51A0,0x3427, - /* Array index: 0x1572 */ 0x51BD,0x5158, - /* Array index: 0x1572 */ 0x51D6,0x5245, - /* Array index: 0x1572 */ 0x51ED,0x515F, - /* Array index: 0x1572 */ 0x51F0,0x5160, - /* Array index: 0x1572 */ 0x51F1,0x332E, - /* Array index: 0x1572 */ 0x520E,0x5166, - /* Array index: 0x1572 */ 0x5211,0x373A, - /* Array index: 0x1572 */ 0x5214,0x5165, - /* Array index: 0x1572 */ 0x5217,0x4E73, - /* Array index: 0x1572 */ 0x521D,0x3D69, - /* Array index: 0x1572 */ 0x5224,0x483D, - /* Array index: 0x1572 */ 0x5225,0x4A4C, - /* Array index: 0x1572 */ 0x5227,0x5167, - /* Array index: 0x1572 */ 0x5229,0x4D78, - /* Array index: 0x1572 */ 0x522A,0x5168, - /* Array index: 0x1572 */ 0x522E,0x5169, - /* Array index: 0x1572 */ 0x5230,0x457E, - /* Array index: 0x1572 */ 0x5233,0x516A, - /* Array index: 0x1572 */ 0x5243,0x4466, - /* Array index: 0x1572 */ 0x5244,0x516D, - /* Array index: 0x1572 */ 0x5247,0x4227, - /* Array index: 0x1572 */ 0x5254,0x5171, - /* Array index: 0x1572 */ 0x5256,0x4B36, - /* Array index: 0x1572 */ 0x525B,0x3964, - /* Array index: 0x1572 */ 0x525E,0x5170, - /* Array index: 0x1572 */ 0x5269,0x5174, - /* Array index: 0x1572 */ 0x526A,0x5172, - /* Array index: 0x1572 */ 0x527D,0x5177, - /* Array index: 0x1572 */ 0x527F,0x5176, - /* Array index: 0x1572 */ 0x5283,0x3344, - /* Array index: 0x1572 */ 0x528D,0x5178, - /* Array index: 0x1572 */ 0x5291,0x517D, - /* Array index: 0x1572 */ 0x5292,0x517A, - /* Array index: 0x1572 */ 0x5294,0x5179, - /* Array index: 0x1572 */ 0x529B,0x4E4F, - /* Array index: 0x1572 */ 0x529F,0x3879, - /* Array index: 0x1572 */ 0x52A0,0x3243, - /* Array index: 0x1572 */ 0x52A3,0x4E74, - /* Array index: 0x1572 */ 0x52B1,0x4E65, - /* Array index: 0x1572 */ 0x52B4,0x4F2B, - /* Array index: 0x1572 */ 0x52B5,0x5225, - /* Array index: 0x1572 */ 0x52B9,0x387A, - /* Array index: 0x1572 */ 0x52BC,0x5224, - /* Array index: 0x1572 */ 0x52BE,0x332F, - /* Array index: 0x1572 */ 0x52C1,0x5226, - /* Array index: 0x1572 */ 0x52C3,0x4B56, - /* Array index: 0x1572 */ 0x52C5,0x443C, - /* Array index: 0x1572 */ 0x52C7,0x4D26, - /* Array index: 0x1572 */ 0x52C9,0x4A59, - /* Array index: 0x1572 */ 0x52CD,0x5227, - /* Array index: 0x1572 */ 0x52D2,0x7055, - /* Array index: 0x1572 */ 0x52F2,0x372E, - /* Array index: 0x1572 */ 0x52F3,0x522E, - /* Array index: 0x1572 */ 0x52F5,0x522F, - /* Array index: 0x1572 */ 0x530D,0x5235, - /* Array index: 0x1572 */ 0x530F,0x5237, - /* Array index: 0x1572 */ 0x5310,0x5236, - /* Array index: 0x1572 */ 0x531D,0x4159, - /* Array index: 0x1572 */ 0x5320,0x3E22, - /* Array index: 0x1572 */ 0x5321,0x3629, - /* Array index: 0x1572 */ 0x5323,0x523A, - /* Array index: 0x1572 */ 0x532A,0x485B, - /* Array index: 0x1572 */ 0x532F,0x523B, - /* Array index: 0x1572 */ 0x5331,0x523C, - /* Array index: 0x1572 */ 0x5333,0x523D, - /* Array index: 0x1572 */ 0x534D,0x5244, - /* Array index: 0x1572 */ 0x5366,0x3735, - /* Array index: 0x1572 */ 0x5369,0x5247, - /* Array index: 0x1572 */ 0x537B,0x524A, - /* Array index: 0x1572 */ 0x537F,0x362A, - /* Array index: 0x1572 */ 0x5382,0x524C, - /* Array index: 0x1572 */ 0x5384,0x4C71, - /* Array index: 0x1572 */ 0x5396,0x524D, - /* Array index: 0x1572 */ 0x5398,0x4E52, - /* Array index: 0x1572 */ 0x539A,0x387C, - /* Array index: 0x1572 */ 0x539F,0x3836, - /* Array index: 0x1572 */ 0x53A0,0x524E, - /* Array index: 0x1572 */ 0x53AD,0x315E, - /* Array index: 0x1572 */ 0x53AE,0x5251, - /* Array index: 0x1572 */ 0x53B0,0x5252, - /* Array index: 0x1572 */ 0x53B3,0x3837, - /* Array index: 0x1572 */ 0x53B6,0x5253, - /* Array index: 0x1572 */ 0x53BB,0x356E, - /* Array index: 0x1572 */ 0x53C2,0x3B32, - /* Array index: 0x1572 */ 0x53C3,0x5254, - /* Array index: 0x1572 */ 0x53D4,0x3D47, - /* Array index: 0x1572 */ 0x53D6,0x3C68, - /* Array index: 0x1572 */ 0x53D7,0x3C75, - /* Array index: 0x1572 */ 0x53D9,0x3D76, - /* Array index: 0x1572 */ 0x53DB,0x4840, - /* Array index: 0x1572 */ 0x5401,0x525E, - /* Array index: 0x1572 */ 0x5403,0x3549, - /* Array index: 0x1572 */ 0x5404,0x3346, - /* Array index: 0x1572 */ 0x541B,0x372F, - /* Array index: 0x1572 */ 0x541D,0x5267, - /* Array index: 0x1572 */ 0x541F,0x3663, - /* Array index: 0x1572 */ 0x5420,0x4B4A, - /* Array index: 0x1572 */ 0x5426,0x485D, - /* Array index: 0x1572 */ 0x5436,0x5265, - /* Array index: 0x1572 */ 0x544E,0x5268, - /* Array index: 0x1572 */ 0x5451,0x465D, - /* Array index: 0x1572 */ 0x545F,0x526C, - /* Array index: 0x1572 */ 0x5468,0x3C7E, - /* Array index: 0x1572 */ 0x546A,0x3C76, - /* Array index: 0x1572 */ 0x5470,0x526F, - /* Array index: 0x1572 */ 0x5471,0x526D, - /* Array index: 0x1572 */ 0x5480,0x5272, - /* Array index: 0x1572 */ 0x5484,0x5274, - /* Array index: 0x1572 */ 0x5486,0x5276, - /* Array index: 0x1572 */ 0x54A2,0x5278, - /* Array index: 0x1572 */ 0x54A4,0x5323, - /* Array index: 0x1572 */ 0x54A5,0x527A, - /* Array index: 0x1572 */ 0x54A8,0x527E, - /* Array index: 0x1572 */ 0x54AB,0x5321, - /* Array index: 0x1572 */ 0x54AC,0x527B, - /* Array index: 0x1572 */ 0x54AF,0x533E, - /* Array index: 0x1572 */ 0x54B2,0x3A69, - /* Array index: 0x1572 */ 0x54B3,0x3331, - /* Array index: 0x1572 */ 0x54B8,0x5279, - /* Array index: 0x1572 */ 0x54D8,0x5326, - /* Array index: 0x1572 */ 0x54E1,0x3077, - /* Array index: 0x1572 */ 0x54E2,0x532F, - /* Array index: 0x1572 */ 0x54ED,0x532D, - /* Array index: 0x1572 */ 0x54EE,0x532C, - /* Array index: 0x1572 */ 0x54F2,0x452F, - /* Array index: 0x1572 */ 0x54FA,0x532E, - /* Array index: 0x1572 */ 0x54FD,0x532B, - /* Array index: 0x1572 */ 0x5504,0x3134, - /* Array index: 0x1572 */ 0x5506,0x3A36, - /* Array index: 0x1572 */ 0x5507,0x3F30, - /* Array index: 0x1572 */ 0x550F,0x5329, - /* Array index: 0x1572 */ 0x5510,0x4562, - /* Array index: 0x1572 */ 0x5514,0x532A, - /* Array index: 0x1572 */ 0x5516,0x3022, - /* Array index: 0x1572 */ 0x552E,0x5334, - /* Array index: 0x1572 */ 0x552F,0x4D23, - /* Array index: 0x1572 */ 0x5531,0x3E27, - /* Array index: 0x1572 */ 0x5533,0x533A, - /* Array index: 0x1572 */ 0x5538,0x5339, - /* Array index: 0x1572 */ 0x5539,0x5330, - /* Array index: 0x1572 */ 0x553E,0x4243, - /* Array index: 0x1572 */ 0x5540,0x5331, - /* Array index: 0x1572 */ 0x554C,0x5333, - /* Array index: 0x1572 */ 0x554F,0x4C64, - /* Array index: 0x1572 */ 0x5553,0x373C, - /* Array index: 0x1572 */ 0x5556,0x5337, - /* Array index: 0x1572 */ 0x5557,0x5338, - /* Array index: 0x1572 */ 0x555C,0x5335, - /* Array index: 0x1572 */ 0x555D,0x533B, - /* Array index: 0x1572 */ 0x5563,0x5332, - /* Array index: 0x1572 */ 0x557B,0x5341, - /* Array index: 0x1572 */ 0x557C,0x5346, - /* Array index: 0x1572 */ 0x557E,0x5342, - /* Array index: 0x1572 */ 0x5580,0x533D, - /* Array index: 0x1572 */ 0x5583,0x5347, - /* Array index: 0x1572 */ 0x5584,0x4131, - /* Array index: 0x1572 */ 0x55B6,0x3144, - /* Array index: 0x1572 */ 0x55C4,0x534E, - /* Array index: 0x1572 */ 0x55C5,0x534C, - /* Array index: 0x1572 */ 0x55C7,0x5427, - /* Array index: 0x1572 */ 0x55D4,0x5351, - /* Array index: 0x1572 */ 0x55DA,0x534B, - /* Array index: 0x1572 */ 0x55DC,0x534F, - /* Array index: 0x1572 */ 0x55DF,0x534D, - /* Array index: 0x1572 */ 0x55E3,0x3B4C, - /* Array index: 0x1572 */ 0x55E4,0x5350, - /* Array index: 0x1572 */ 0x55F7,0x5353, - /* Array index: 0x1572 */ 0x55F9,0x5358, - /* Array index: 0x1572 */ 0x55FD,0x5356, - /* Array index: 0x1572 */ 0x55FE,0x5355, - /* Array index: 0x1572 */ 0x5606,0x4332, - /* Array index: 0x1572 */ 0x5609,0x3245, - /* Array index: 0x1572 */ 0x561B,0x5357, - /* Array index: 0x1572 */ 0x5629,0x325E, - /* Array index: 0x1572 */ 0x562F,0x5362, - /* Array index: 0x1572 */ 0x5631,0x3E7C, - /* Array index: 0x1572 */ 0x5632,0x535E, - /* Array index: 0x1572 */ 0x5634,0x535C, - /* Array index: 0x1572 */ 0x5636,0x535D, - /* Array index: 0x1572 */ 0x5638,0x535F, - /* Array index: 0x1572 */ 0x5642,0x313D, - /* Array index: 0x1572 */ 0x564C,0x4139, - /* Array index: 0x1572 */ 0x564E,0x5359, - /* Array index: 0x1572 */ 0x5650,0x535A, - /* Array index: 0x1572 */ 0x565B,0x337A, - /* Array index: 0x1572 */ 0x5664,0x5361, - /* Array index: 0x1572 */ 0x5674,0x4A2E, - /* Array index: 0x1572 */ 0x5678,0x4655, - /* Array index: 0x1572 */ 0x567A,0x4838, - /* Array index: 0x1572 */ 0x5680,0x5366, - /* Array index: 0x1572 */ 0x5686,0x5365, - /* Array index: 0x1572 */ 0x5687,0x3345, - /* Array index: 0x1572 */ 0x568A,0x5367, - /* Array index: 0x1572 */ 0x568F,0x536A, - /* Array index: 0x1572 */ 0x5694,0x5369, - /* Array index: 0x1572 */ 0x56A0,0x5368, - /* Array index: 0x1572 */ 0x56A2,0x4739, - /* Array index: 0x1572 */ 0x56A5,0x536B, - /* Array index: 0x1572 */ 0x56AE,0x536C, - /* Array index: 0x1572 */ 0x56B4,0x536E, - /* Array index: 0x1572 */ 0x56B6,0x536D, - /* Array index: 0x1572 */ 0x56BC,0x5370, - /* Array index: 0x1572 */ 0x56C8,0x5374, - /* Array index: 0x1572 */ 0x56CE,0x5375, - /* Array index: 0x1572 */ 0x56D1,0x5376, - /* Array index: 0x1572 */ 0x56D3,0x5377, - /* Array index: 0x1572 */ 0x56DE,0x3273, - /* Array index: 0x1572 */ 0x56E0,0x3078, - /* Array index: 0x1572 */ 0x56E3,0x4344, - /* Array index: 0x1572 */ 0x56EE,0x5379, - /* Array index: 0x1572 */ 0x56F0,0x3A24, - /* Array index: 0x1572 */ 0x56F2,0x304F, - /* Array index: 0x1572 */ 0x56F3,0x3F5E, - /* Array index: 0x1572 */ 0x56F9,0x537A, - /* Array index: 0x1572 */ 0x56FA,0x3847, - /* Array index: 0x1572 */ 0x56FD,0x3971, - /* Array index: 0x1572 */ 0x56FF,0x537C, - /* Array index: 0x1572 */ 0x5700,0x537B, - /* Array index: 0x1572 */ 0x5703,0x4A60, - /* Array index: 0x1572 */ 0x5704,0x537D, - /* Array index: 0x1572 */ 0x5708,0x5421, - /* Array index: 0x1572 */ 0x5709,0x537E, - /* Array index: 0x1572 */ 0x570B,0x5422, - /* Array index: 0x1572 */ 0x570D,0x5423, - /* Array index: 0x1572 */ 0x570F,0x3777, - /* Array index: 0x1572 */ 0x5712,0x3160, - /* Array index: 0x1572 */ 0x5713,0x5424, - /* Array index: 0x1572 */ 0x5716,0x5426, - /* Array index: 0x1572 */ 0x5718,0x5425, - /* Array index: 0x1572 */ 0x571C,0x5428, - /* Array index: 0x1572 */ 0x571F,0x455A, - /* Array index: 0x1572 */ 0x572D,0x373D, - /* Array index: 0x1572 */ 0x5730,0x434F, - /* Array index: 0x1572 */ 0x5737,0x542A, - /* Array index: 0x1572 */ 0x5738,0x542B, - /* Array index: 0x1572 */ 0x573B,0x542D, - /* Array index: 0x1572 */ 0x5740,0x542E, - /* Array index: 0x1572 */ 0x5742,0x3A64, - /* Array index: 0x1572 */ 0x5747,0x3651, - /* Array index: 0x1572 */ 0x574A,0x4B37, - /* Array index: 0x1572 */ 0x5761,0x5433, - /* Array index: 0x1572 */ 0x5764,0x3A25, - /* Array index: 0x1572 */ 0x5766,0x4333, - /* Array index: 0x1572 */ 0x5769,0x5430, - /* Array index: 0x1572 */ 0x576A,0x445A, - /* Array index: 0x1572 */ 0x577F,0x5434, - /* Array index: 0x1572 */ 0x5782,0x3F62, - /* Array index: 0x1572 */ 0x5788,0x5432, - /* Array index: 0x1572 */ 0x5789,0x5435, - /* Array index: 0x1572 */ 0x578B,0x373F, - /* Array index: 0x1572 */ 0x5793,0x5436, - /* Array index: 0x1572 */ 0x57AA,0x543A, - /* Array index: 0x1572 */ 0x57B0,0x543B, - /* Array index: 0x1572 */ 0x57B3,0x5438, - /* Array index: 0x1572 */ 0x57C0,0x5431, - /* Array index: 0x1572 */ 0x57C3,0x543C, - /* Array index: 0x1572 */ 0x57C6,0x543D, - /* Array index: 0x1572 */ 0x57CB,0x4B64, - /* Array index: 0x1572 */ 0x57CE,0x3E6B, - /* Array index: 0x1572 */ 0x57DC,0x4738, - /* Array index: 0x1572 */ 0x57DF,0x3068, - /* Array index: 0x1572 */ 0x57E0,0x4956, - /* Array index: 0x1572 */ 0x57E3,0x5443, - /* Array index: 0x1572 */ 0x57F4,0x3E7D, - /* Array index: 0x1572 */ 0x57F7,0x3C39, - /* Array index: 0x1572 */ 0x57F9,0x475D, - /* Array index: 0x1572 */ 0x57FA,0x3470, - /* Array index: 0x1572 */ 0x57FC,0x3A6B, - /* Array index: 0x1572 */ 0x5800,0x4B59, - /* Array index: 0x1572 */ 0x5802,0x4632, - /* Array index: 0x1572 */ 0x5805,0x3778, - /* Array index: 0x1572 */ 0x5806,0x424F, - /* Array index: 0x1572 */ 0x580A,0x5441, - /* Array index: 0x1572 */ 0x580B,0x5444, - /* Array index: 0x1572 */ 0x5815,0x4244, - /* Array index: 0x1572 */ 0x5819,0x5445, - /* Array index: 0x1572 */ 0x581D,0x5446, - /* Array index: 0x1572 */ 0x5821,0x5448, - /* Array index: 0x1572 */ 0x5824,0x4469, - /* Array index: 0x1572 */ 0x582A,0x342E, - /* Array index: 0x1572 */ 0x583A,0x3A66, - /* Array index: 0x1572 */ 0x583D,0x544E, - /* Array index: 0x1572 */ 0x5840,0x4A3D, - /* Array index: 0x1572 */ 0x5841,0x4E5D, - /* Array index: 0x1572 */ 0x584A,0x3274, - /* Array index: 0x1572 */ 0x584B,0x544A, - /* Array index: 0x1572 */ 0x5851,0x413A, - /* Array index: 0x1572 */ 0x5852,0x544D, - /* Array index: 0x1572 */ 0x5854,0x4563, - /* Array index: 0x1572 */ 0x585E,0x3A49, - /* Array index: 0x1572 */ 0x5862,0x5449, - /* Array index: 0x1572 */ 0x5869,0x3176, - /* Array index: 0x1572 */ 0x586B,0x4536, - /* Array index: 0x1572 */ 0x5870,0x544B, - /* Array index: 0x1572 */ 0x5872,0x5447, - /* Array index: 0x1572 */ 0x5875,0x3F50, - /* Array index: 0x1572 */ 0x5879,0x544F, - /* Array index: 0x1572 */ 0x587E,0x3D4E, - /* Array index: 0x1572 */ 0x5883,0x362D, - /* Array index: 0x1572 */ 0x5885,0x5450, - /* Array index: 0x1572 */ 0x5893,0x4A68, - /* Array index: 0x1572 */ 0x5897,0x417D, - /* Array index: 0x1572 */ 0x589C,0x4446, - /* Array index: 0x1572 */ 0x589F,0x5452, - /* Array index: 0x1572 */ 0x58A8,0x4B4F, - /* Array index: 0x1572 */ 0x58AB,0x5453, - /* Array index: 0x1572 */ 0x58AE,0x5458, - /* Array index: 0x1572 */ 0x58B3,0x4A2F, - /* Array index: 0x1572 */ 0x58BE,0x3A26, - /* Array index: 0x1572 */ 0x58C1,0x4A49, - /* Array index: 0x1572 */ 0x58C5,0x5459, - /* Array index: 0x1572 */ 0x58C7,0x4345, - /* Array index: 0x1572 */ 0x58CA,0x3275, - /* Array index: 0x1572 */ 0x58CC,0x3E6D, - /* Array index: 0x1572 */ 0x58D1,0x545B, - /* Array index: 0x1572 */ 0x58D3,0x545A, - /* Array index: 0x1572 */ 0x58DC,0x5460, - /* Array index: 0x1572 */ 0x58DE,0x5455, - /* Array index: 0x1572 */ 0x58DF,0x5462, - /* Array index: 0x1572 */ 0x58E4,0x5461, - /* Array index: 0x1572 */ 0x58E5,0x545F, - /* Array index: 0x1572 */ 0x5902,0x5469, - /* Array index: 0x1572 */ 0x5909,0x4A51, - /* Array index: 0x1572 */ 0x590A,0x546A, - /* Array index: 0x1572 */ 0x590F,0x3246, - /* Array index: 0x1572 */ 0x5910,0x546B, - /* Array index: 0x1572 */ 0x5922,0x4C34, - /* Array index: 0x1572 */ 0x5925,0x546E, - /* Array index: 0x1572 */ 0x5937,0x3050, - /* Array index: 0x1572 */ 0x5938,0x5472, - /* Array index: 0x1572 */ 0x593E,0x5473, - /* Array index: 0x1572 */ 0x5944,0x3162, - /* Array index: 0x1572 */ 0x5960,0x547B, - /* Array index: 0x1572 */ 0x5962,0x547A, - /* Array index: 0x1572 */ 0x5973,0x3D77, - /* Array index: 0x1572 */ 0x5974,0x455B, - /* Array index: 0x1572 */ 0x5978,0x5521, - /* Array index: 0x1572 */ 0x597D,0x3925, - /* Array index: 0x1572 */ 0x598A,0x4725, - /* Array index: 0x1572 */ 0x598D,0x552B, - /* Array index: 0x1572 */ 0x5993,0x3538, - /* Array index: 0x1572 */ 0x5996,0x4D45, - /* Array index: 0x1572 */ 0x5999,0x4C2F, - /* Array index: 0x1572 */ 0x599B,0x562C, - /* Array index: 0x1572 */ 0x599D,0x5523, - /* Array index: 0x1572 */ 0x59A3,0x5526, - /* Array index: 0x1572 */ 0x59A5,0x4245, - /* Array index: 0x1572 */ 0x59A8,0x4B38, - /* Array index: 0x1572 */ 0x59AC,0x454A, - /* Array index: 0x1572 */ 0x59B2,0x5527, - /* Array index: 0x1572 */ 0x59B9,0x4B65, - /* Array index: 0x1572 */ 0x59BB,0x3A4A, - /* Array index: 0x1572 */ 0x59BE,0x3E2A, - /* Array index: 0x1572 */ 0x59C6,0x5528, - /* Array index: 0x1572 */ 0x59C9,0x3B50, - /* Array index: 0x1572 */ 0x59CB,0x3B4F, - /* Array index: 0x1572 */ 0x59D9,0x552C, - /* Array index: 0x1572 */ 0x59DA,0x552D, - /* Array index: 0x1572 */ 0x59DC,0x552A, - /* Array index: 0x1572 */ 0x59E5,0x3138, - /* Array index: 0x1572 */ 0x59E6,0x342F, - /* Array index: 0x1572 */ 0x59E8,0x5529, - /* Array index: 0x1572 */ 0x59EA,0x4C45, - /* Array index: 0x1572 */ 0x59EB,0x4931, - /* Array index: 0x1572 */ 0x59F6,0x3028, - /* Array index: 0x1572 */ 0x59FB,0x3079, - /* Array index: 0x1572 */ 0x59FF,0x3B51, - /* Array index: 0x1572 */ 0x5A01,0x3052, - /* Array index: 0x1572 */ 0x5A03,0x3023, - /* Array index: 0x1572 */ 0x5A09,0x5532, - /* Array index: 0x1572 */ 0x5A11,0x5530, - /* Array index: 0x1572 */ 0x5A18,0x4C3C, - /* Array index: 0x1572 */ 0x5A1A,0x5533, - /* Array index: 0x1572 */ 0x5A1C,0x5531, - /* Array index: 0x1572 */ 0x5A1F,0x552F, - /* Array index: 0x1572 */ 0x5A20,0x3F31, - /* Array index: 0x1572 */ 0x5A25,0x552E, - /* Array index: 0x1572 */ 0x5A29,0x4A5A, - /* Array index: 0x1572 */ 0x5A2F,0x3864, - /* Array index: 0x1572 */ 0x5A35,0x5537, - /* Array index: 0x1572 */ 0x5A36,0x5538, - /* Array index: 0x1572 */ 0x5A3C,0x3E2B, - /* Array index: 0x1572 */ 0x5A40,0x5534, - /* Array index: 0x1572 */ 0x5A41,0x4F2C, - /* Array index: 0x1572 */ 0x5A46,0x474C, - /* Array index: 0x1572 */ 0x5A49,0x5536, - /* Array index: 0x1572 */ 0x5A5A,0x3A27, - /* Array index: 0x1572 */ 0x5A62,0x5539, - /* Array index: 0x1572 */ 0x5A66,0x4958, - /* Array index: 0x1572 */ 0x5A6A,0x553A, - /* Array index: 0x1572 */ 0x5A6C,0x5535, - /* Array index: 0x1572 */ 0x5A7F,0x4C3B, - /* Array index: 0x1572 */ 0x5A92,0x475E, - /* Array index: 0x1572 */ 0x5A9A,0x553B, - /* Array index: 0x1572 */ 0x5A9B,0x4932, - /* Array index: 0x1572 */ 0x5AC9,0x3C3B, - /* Array index: 0x1572 */ 0x5ACB,0x553E, - /* Array index: 0x1572 */ 0x5ACC,0x3779, - /* Array index: 0x1572 */ 0x5AD0,0x554C, - /* Array index: 0x1572 */ 0x5AD6,0x5545, - /* Array index: 0x1572 */ 0x5AD7,0x5542, - /* Array index: 0x1572 */ 0x5AE1,0x4364, - /* Array index: 0x1572 */ 0x5AE3,0x5541, - /* Array index: 0x1572 */ 0x5AE6,0x5543, - /* Array index: 0x1572 */ 0x5AE9,0x5544, - /* Array index: 0x1572 */ 0x5AFA,0x5546, - /* Array index: 0x1572 */ 0x5AFB,0x5547, - /* Array index: 0x1572 */ 0x5B09,0x3472, - /* Array index: 0x1572 */ 0x5B0B,0x5549, - /* Array index: 0x1572 */ 0x5B0C,0x5548, - /* Array index: 0x1572 */ 0x5B16,0x554A, - /* Array index: 0x1572 */ 0x5B22,0x3E6E, - /* Array index: 0x1572 */ 0x5B2A,0x554D, - /* Array index: 0x1572 */ 0x5B2C,0x445C, - /* Array index: 0x1572 */ 0x5B30,0x3145, - /* Array index: 0x1572 */ 0x5B32,0x554B, - /* Array index: 0x1572 */ 0x5B36,0x554E, - /* Array index: 0x1572 */ 0x5B3E,0x554F, - /* Array index: 0x1572 */ 0x5B40,0x5552, - /* Array index: 0x1572 */ 0x5B43,0x5550, - /* Array index: 0x1572 */ 0x5B45,0x5551, - /* Array index: 0x1572 */ 0x5B50,0x3B52, - /* Array index: 0x1572 */ 0x5B51,0x5553, - /* Array index: 0x1572 */ 0x5B69,0x5558, - /* Array index: 0x1572 */ 0x5B6B,0x4239, - /* Array index: 0x1572 */ 0x5B70,0x5559, - /* Array index: 0x1572 */ 0x5B71,0x5623, - /* Array index: 0x1572 */ 0x5B73,0x555A, - /* Array index: 0x1572 */ 0x5B75,0x555B, - /* Array index: 0x1572 */ 0x5B78,0x555C, - /* Array index: 0x1572 */ 0x5B7A,0x555E, - /* Array index: 0x1572 */ 0x5B80,0x555F, - /* Array index: 0x1572 */ 0x5B83,0x5560, - /* Array index: 0x1572 */ 0x5BAE,0x355C, - /* Array index: 0x1572 */ 0x5BB0,0x3A4B, - /* Array index: 0x1572 */ 0x5BBF,0x3D49, - /* Array index: 0x1572 */ 0x5BCC,0x4959, - /* Array index: 0x1572 */ 0x5BEE,0x4E40, - /* Array index: 0x1572 */ 0x5BF0,0x556E, - /* Array index: 0x1572 */ 0x5BF3,0x5570, - /* Array index: 0x1572 */ 0x5BF5,0x437E, - /* Array index: 0x1572 */ 0x5BF6,0x556F, - /* Array index: 0x1572 */ 0x5BF8,0x4023, - /* Array index: 0x1572 */ 0x5BFA,0x3B7B, - /* Array index: 0x1572 */ 0x5C16,0x406D, - /* Array index: 0x1572 */ 0x5C1A,0x3E30, - /* Array index: 0x1572 */ 0x5C20,0x5576, - /* Array index: 0x1572 */ 0x5C22,0x5577, - /* Array index: 0x1572 */ 0x5C24,0x4C60, - /* Array index: 0x1572 */ 0x5C28,0x5578, - /* Array index: 0x1572 */ 0x5C2D,0x3646, - /* Array index: 0x1572 */ 0x5C31,0x3D22, - /* Array index: 0x1572 */ 0x5C45,0x356F, - /* Array index: 0x1572 */ 0x5C46,0x557C, - /* Array index: 0x1572 */ 0x5C48,0x367E, - /* Array index: 0x1572 */ 0x5C5E,0x4230, - /* Array index: 0x1572 */ 0x5C60,0x454B, - /* Array index: 0x1572 */ 0x5C61,0x3C48, - /* Array index: 0x1572 */ 0x5C64,0x4158, - /* Array index: 0x1572 */ 0x5C65,0x4D7A, - /* Array index: 0x1572 */ 0x5C6C,0x5624, - /* Array index: 0x1572 */ 0x5C6E,0x5625, - /* Array index: 0x1572 */ 0x5C6F,0x4656, - /* Array index: 0x1572 */ 0x5C71,0x3B33, - /* Array index: 0x1572 */ 0x5C76,0x5627, - /* Array index: 0x1572 */ 0x5C79,0x5628, - /* Array index: 0x1572 */ 0x5C8C,0x5629, - /* Array index: 0x1572 */ 0x5C90,0x3474, - /* Array index: 0x1572 */ 0x5C91,0x562A, - /* Array index: 0x1572 */ 0x5C94,0x562B, - /* Array index: 0x1572 */ 0x5CA1,0x322C, - /* Array index: 0x1572 */ 0x5CB1,0x4252, - /* Array index: 0x1572 */ 0x5CB3,0x3359, - /* Array index: 0x1572 */ 0x5CC5,0x5632, - /* Array index: 0x1572 */ 0x5CC7,0x5634, - /* Array index: 0x1572 */ 0x5CD9,0x5635, - /* Array index: 0x1572 */ 0x5CE0,0x463D, - /* Array index: 0x1572 */ 0x5CE1,0x362E, - /* Array index: 0x1572 */ 0x5CED,0x5639, - /* Array index: 0x1572 */ 0x5CEF,0x4A77, - /* Array index: 0x1572 */ 0x5CF0,0x4A76, - /* Array index: 0x1572 */ 0x5CF6,0x4567, - /* Array index: 0x1572 */ 0x5CFA,0x5638, - /* Array index: 0x1572 */ 0x5CFB,0x3D54, - /* Array index: 0x1572 */ 0x5CFD,0x5637, - /* Array index: 0x1572 */ 0x5D07,0x3F72, - /* Array index: 0x1572 */ 0x5D0B,0x563C, - /* Array index: 0x1572 */ 0x5D0E,0x3A6A, - /* Array index: 0x1572 */ 0x5D11,0x5642, - /* Array index: 0x1572 */ 0x5D1F,0x5640, - /* Array index: 0x1572 */ 0x5D22,0x5644, - /* Array index: 0x1572 */ 0x5D29,0x4A78, - /* Array index: 0x1572 */ 0x5D4B,0x564B, - /* Array index: 0x1572 */ 0x5D4C,0x5648, - /* Array index: 0x1572 */ 0x5D4E,0x564A, - /* Array index: 0x1572 */ 0x5D50,0x4D72, - /* Array index: 0x1572 */ 0x5D52,0x5649, - /* Array index: 0x1572 */ 0x5D5C,0x563F, - /* Array index: 0x1572 */ 0x5D69,0x3F73, - /* Array index: 0x1572 */ 0x5D6C,0x564C, - /* Array index: 0x1572 */ 0x5D6F,0x3A37, - /* Array index: 0x1572 */ 0x5D73,0x564D, - /* Array index: 0x1572 */ 0x5D76,0x564E, - /* Array index: 0x1572 */ 0x5D82,0x5651, - /* Array index: 0x1572 */ 0x5D84,0x5650, - /* Array index: 0x1572 */ 0x5D87,0x564F, - /* Array index: 0x1572 */ 0x5D8B,0x4568, - /* Array index: 0x1572 */ 0x5D8C,0x563A, - /* Array index: 0x1572 */ 0x5D90,0x5657, - /* Array index: 0x1572 */ 0x5D9D,0x5653, - /* Array index: 0x1572 */ 0x5DA2,0x5652, - /* Array index: 0x1572 */ 0x5DAC,0x5654, - /* Array index: 0x1572 */ 0x5DAE,0x5655, - /* Array index: 0x1572 */ 0x5DB7,0x5658, - /* Array index: 0x1572 */ 0x5DBA,0x4E66, - /* Array index: 0x1572 */ 0x5DBC,0x5659, - /* Array index: 0x1572 */ 0x5DBD,0x5656, - /* Array index: 0x1572 */ 0x5DC9,0x565A, - /* Array index: 0x1572 */ 0x5DCC,0x3460, - /* Array index: 0x1572 */ 0x5DCD,0x565B, - /* Array index: 0x1572 */ 0x5DD2,0x565D, - /* Array index: 0x1572 */ 0x5DD3,0x565C, - /* Array index: 0x1572 */ 0x5DD6,0x565E, - /* Array index: 0x1572 */ 0x5DDB,0x565F, - /* Array index: 0x1572 */ 0x5DDD,0x406E, - /* Array index: 0x1572 */ 0x5DDE,0x3D23, - /* Array index: 0x1572 */ 0x5DE1,0x3D64, - /* Array index: 0x1572 */ 0x5DEB,0x5660, - /* Array index: 0x1572 */ 0x5DEE,0x3A39, - /* Array index: 0x1572 */ 0x5DFB,0x342C, - /* Array index: 0x1572 */ 0x5DFD,0x4327, - /* Array index: 0x1572 */ 0x5DFE,0x3652, - /* Array index: 0x1572 */ 0x5E02,0x3B54, - /* Array index: 0x1572 */ 0x5E03,0x495B, - /* Array index: 0x1572 */ 0x5E06,0x4841, - /* Array index: 0x1572 */ 0x5E0B,0x5663, - /* Array index: 0x1572 */ 0x5E0C,0x3475, - /* Array index: 0x1572 */ 0x5E11,0x5666, - /* Array index: 0x1572 */ 0x5E16,0x4421, - /* Array index: 0x1572 */ 0x5E25,0x3F63, - /* Array index: 0x1572 */ 0x5E2B,0x3B55, - /* Array index: 0x1572 */ 0x5E2D,0x404A, - /* Array index: 0x1572 */ 0x5E2F,0x4253, - /* Array index: 0x1572 */ 0x5E30,0x3522, - /* Array index: 0x1572 */ 0x5E33,0x4422, - /* Array index: 0x1572 */ 0x5E3D,0x4B39, - /* Array index: 0x1572 */ 0x5E40,0x566C, - /* Array index: 0x1572 */ 0x5E4C,0x4B5A, - /* Array index: 0x1572 */ 0x5E4E,0x566D, - /* Array index: 0x1572 */ 0x5E54,0x566F, - /* Array index: 0x1572 */ 0x5E55,0x4B6B, - /* Array index: 0x1572 */ 0x5E57,0x566E, - /* Array index: 0x1572 */ 0x5E87,0x485F, - /* Array index: 0x1572 */ 0x5E8A,0x3E32, - /* Array index: 0x1572 */ 0x5E8F,0x3D78, - /* Array index: 0x1572 */ 0x5E9A,0x392E, - /* Array index: 0x1572 */ 0x5E9C,0x495C, - /* Array index: 0x1572 */ 0x5EA0,0x5679, - /* Array index: 0x1572 */ 0x5EA6,0x4559, - /* Array index: 0x1572 */ 0x5EA7,0x3A42, - /* Array index: 0x1572 */ 0x5EAB,0x384B, - /* Array index: 0x1572 */ 0x5EAD,0x446D, - /* Array index: 0x1572 */ 0x5ECF,0x567E, - /* Array index: 0x1572 */ 0x5ED0,0x567D, - /* Array index: 0x1572 */ 0x5ED3,0x3347, - /* Array index: 0x1572 */ 0x5ED6,0x5721, - /* Array index: 0x1572 */ 0x5EDA,0x5724, - /* Array index: 0x1572 */ 0x5EDB,0x5725, - /* Array index: 0x1572 */ 0x5EE8,0x5728, - /* Array index: 0x1572 */ 0x5EE9,0x5729, - /* Array index: 0x1572 */ 0x5EEC,0x572A, - /* Array index: 0x1572 */ 0x5F1B,0x4350, - /* Array index: 0x1572 */ 0x5F1F,0x446F, - /* Array index: 0x1572 */ 0x5F2D,0x5739, - /* Array index: 0x1572 */ 0x5F2F,0x573F, - /* Array index: 0x1572 */ 0x5F31,0x3C65, - /* Array index: 0x1572 */ 0x5F35,0x4425, - /* Array index: 0x1572 */ 0x5F37,0x362F, - /* Array index: 0x1572 */ 0x5F38,0x573A, - /* Array index: 0x1572 */ 0x5F3C,0x492B, - /* Array index: 0x1572 */ 0x5F3E,0x4346, - /* Array index: 0x1572 */ 0x5F41,0x573B, - /* Array index: 0x1572 */ 0x5F48,0x573C, - /* Array index: 0x1572 */ 0x5F4A,0x3630, - /* Array index: 0x1572 */ 0x5F4C,0x573D, - /* Array index: 0x1572 */ 0x5F4E,0x573E, - /* Array index: 0x1572 */ 0x5F51,0x5740, - /* Array index: 0x1572 */ 0x5F53,0x4576, - /* Array index: 0x1572 */ 0x5F56,0x5741, - /* Array index: 0x1572 */ 0x5F57,0x5742, - /* Array index: 0x1572 */ 0x5F59,0x5743, - /* Array index: 0x1572 */ 0x5F5C,0x5734, - /* Array index: 0x1572 */ 0x5F5D,0x5733, - /* Array index: 0x1572 */ 0x5F61,0x5744, - /* Array index: 0x1572 */ 0x5F62,0x3741, - /* Array index: 0x1572 */ 0x5F66,0x4927, - /* Array index: 0x1572 */ 0x5F77,0x5747, - /* Array index: 0x1572 */ 0x5F79,0x4C72, - /* Array index: 0x1572 */ 0x5F7C,0x4860, - /* Array index: 0x1572 */ 0x5F9E,0x574F, - /* Array index: 0x1572 */ 0x5FA0,0x5752, - /* Array index: 0x1572 */ 0x5FA1,0x3866, - /* Array index: 0x1572 */ 0x5FB3,0x4641, - /* Array index: 0x1572 */ 0x5FB4,0x4427, - /* Array index: 0x1572 */ 0x5FB9,0x4530, - /* Array index: 0x1572 */ 0x5FBC,0x5755, - /* Array index: 0x1572 */ 0x5FBD,0x352B, - /* Array index: 0x1572 */ 0x5FC3,0x3F34, - /* Array index: 0x1572 */ 0x5FC5,0x492C, - /* Array index: 0x1572 */ 0x5FCC,0x3477, - /* Array index: 0x1572 */ 0x5FCD,0x4726, - /* Array index: 0x1572 */ 0x5FE0,0x4369, - /* Array index: 0x1572 */ 0x5FE4,0x5758, - /* Array index: 0x1572 */ 0x5FEB,0x3277, - /* Array index: 0x1572 */ 0x5FF0,0x582D, - /* Array index: 0x1572 */ 0x5FF1,0x575A, - /* Array index: 0x1572 */ 0x5FF5,0x4730, - /* Array index: 0x1572 */ 0x5FF8,0x5759, - /* Array index: 0x1572 */ 0x5FFB,0x5757, - /* Array index: 0x1572 */ 0x5FFD,0x397A, - /* Array index: 0x1572 */ 0x5FFF,0x575D, - /* Array index: 0x1572 */ 0x602F,0x3631, - /* Array index: 0x1572 */ 0x6031,0x5764, - /* Array index: 0x1572 */ 0x603A,0x576A, - /* Array index: 0x1572 */ 0x6046,0x5771, - /* Array index: 0x1572 */ 0x604A,0x5770, - /* Array index: 0x1572 */ 0x604B,0x4E78, - /* Array index: 0x1572 */ 0x604D,0x5772, - /* Array index: 0x1572 */ 0x6050,0x3632, - /* Array index: 0x1572 */ 0x6052,0x3931, - /* Array index: 0x1572 */ 0x6055,0x3D7A, - /* Array index: 0x1572 */ 0x6059,0x5779, - /* Array index: 0x1572 */ 0x605A,0x576B, - /* Array index: 0x1572 */ 0x6075,0x3743, - /* Array index: 0x1572 */ 0x6077,0x576E, - /* Array index: 0x1572 */ 0x6081,0x577A, - /* Array index: 0x1572 */ 0x6083,0x577D, - /* Array index: 0x1572 */ 0x6084,0x5821, - /* Array index: 0x1572 */ 0x6092,0x5825, - /* Array index: 0x1572 */ 0x6094,0x3279, - /* Array index: 0x1572 */ 0x6096,0x5823, - /* Array index: 0x1572 */ 0x6097,0x5824, - /* Array index: 0x1572 */ 0x609A,0x577E, - /* Array index: 0x1572 */ 0x609B,0x5822, - /* Array index: 0x1572 */ 0x609F,0x3867, - /* Array index: 0x1572 */ 0x60A0,0x4D2A, - /* Array index: 0x1572 */ 0x60A3,0x3435, - /* Array index: 0x1572 */ 0x60BC,0x4569, - /* Array index: 0x1572 */ 0x60BD,0x582E, - /* Array index: 0x1572 */ 0x60D1,0x4F47, - /* Array index: 0x1572 */ 0x60D3,0x582B, - /* Array index: 0x1572 */ 0x60D8,0x5831, - /* Array index: 0x1572 */ 0x60DA,0x397B, - /* Array index: 0x1572 */ 0x60DC,0x404B, - /* Array index: 0x1572 */ 0x60E7,0x577C, - /* Array index: 0x1572 */ 0x60E8,0x3B34, - /* Array index: 0x1572 */ 0x6100,0x5837, - /* Array index: 0x1572 */ 0x6101,0x3D25, - /* Array index: 0x1572 */ 0x6103,0x583A, - /* Array index: 0x1572 */ 0x6106,0x5834, - /* Array index: 0x1572 */ 0x6108,0x4C7C, - /* Array index: 0x1572 */ 0x6109,0x4C7B, - /* Array index: 0x1572 */ 0x6115,0x5833, - /* Array index: 0x1572 */ 0x611A,0x3672, - /* Array index: 0x1572 */ 0x611B,0x3026, - /* Array index: 0x1572 */ 0x611F,0x3436, - /* Array index: 0x1572 */ 0x6121,0x583B, - /* Array index: 0x1572 */ 0x6127,0x5843, - /* Array index: 0x1572 */ 0x6128,0x5842, - /* Array index: 0x1572 */ 0x612C,0x5847, - /* Array index: 0x1572 */ 0x6134,0x5848, - /* Array index: 0x1572 */ 0x6142,0x584A, - /* Array index: 0x1572 */ 0x6144,0x584B, - /* Array index: 0x1572 */ 0x6153,0x5858, - /* Array index: 0x1572 */ 0x6155,0x4A69, - /* Array index: 0x1572 */ 0x615D,0x5857, - /* Array index: 0x1572 */ 0x615F,0x5856, - /* Array index: 0x1572 */ 0x6162,0x4B7D, - /* Array index: 0x1572 */ 0x6163,0x3437, - /* Array index: 0x1572 */ 0x6165,0x5854, - /* Array index: 0x1572 */ 0x6167,0x3745, - /* Array index: 0x1572 */ 0x6168,0x3334, - /* Array index: 0x1572 */ 0x616B,0x5851, - /* Array index: 0x1572 */ 0x617E,0x4D5D, - /* Array index: 0x1572 */ 0x6182,0x4D2B, - /* Array index: 0x1572 */ 0x6187,0x585C, - /* Array index: 0x1572 */ 0x618A,0x5860, - /* Array index: 0x1572 */ 0x618E,0x417E, - /* Array index: 0x1572 */ 0x6190,0x4E79, - /* Array index: 0x1572 */ 0x6191,0x5861, - /* Array index: 0x1572 */ 0x6194,0x585E, - /* Array index: 0x1572 */ 0x6196,0x585B, - /* Array index: 0x1572 */ 0x6199,0x585A, - /* Array index: 0x1572 */ 0x619A,0x585F, - /* Array index: 0x1572 */ 0x61A4,0x4A30, - /* Array index: 0x1572 */ 0x61A7,0x4634, - /* Array index: 0x1572 */ 0x61A9,0x3746, - /* Array index: 0x1572 */ 0x61AB,0x5862, - /* Array index: 0x1572 */ 0x61AC,0x585D, - /* Array index: 0x1572 */ 0x61AE,0x5863, - /* Array index: 0x1572 */ 0x61B2,0x377B, - /* Array index: 0x1572 */ 0x61B6,0x3231, - /* Array index: 0x1572 */ 0x61BA,0x586B, - /* Array index: 0x1572 */ 0x61BE,0x3438, - /* Array index: 0x1572 */ 0x61C3,0x5869, - /* Array index: 0x1572 */ 0x61D0,0x327B, - /* Array index: 0x1572 */ 0x61E3,0x5870, - /* Array index: 0x1572 */ 0x61E6,0x586F, - /* Array index: 0x1572 */ 0x61F2,0x4428, - /* Array index: 0x1572 */ 0x6226,0x406F, - /* Array index: 0x1572 */ 0x622A,0x5923, - /* Array index: 0x1572 */ 0x6238,0x384D, - /* Array index: 0x1572 */ 0x623B,0x4C61, - /* Array index: 0x1572 */ 0x6253,0x4247, - /* Array index: 0x1572 */ 0x6255,0x4A27, - /* Array index: 0x1572 */ 0x6258,0x4271, - /* Array index: 0x1572 */ 0x625B,0x592C, - /* Array index: 0x1572 */ 0x625E,0x592A, - /* Array index: 0x1572 */ 0x6260,0x592D, - /* Array index: 0x1572 */ 0x6263,0x592B, - /* Array index: 0x1572 */ 0x6268,0x592E, - /* Array index: 0x1572 */ 0x626E,0x4A31, - /* Array index: 0x1572 */ 0x6271,0x3037, - /* Array index: 0x1572 */ 0x6276,0x495E, - /* Array index: 0x1572 */ 0x6279,0x4863, - /* Array index: 0x1572 */ 0x6289,0x5931, - /* Array index: 0x1572 */ 0x628A,0x4744, - /* Array index: 0x1572 */ 0x62AB,0x4864, - /* Array index: 0x1572 */ 0x62AC,0x5A2D, - /* Array index: 0x1572 */ 0x62B1,0x4A7A, - /* Array index: 0x1572 */ 0x62B5,0x4471, - /* Array index: 0x1572 */ 0x62C2,0x5944, - /* Array index: 0x1572 */ 0x630C,0x5948, - /* Array index: 0x1572 */ 0x6311,0x4429, - /* Array index: 0x1572 */ 0x6319,0x3573, - /* Array index: 0x1572 */ 0x631F,0x3634, - /* Array index: 0x1572 */ 0x6327,0x594B, - /* Array index: 0x1572 */ 0x6328,0x3027, - /* Array index: 0x1572 */ 0x632B,0x3A43, - /* Array index: 0x1572 */ 0x632F,0x3F36, - /* Array index: 0x1572 */ 0x633A,0x4472, - /* Array index: 0x1572 */ 0x6349,0x422A, - /* Array index: 0x1572 */ 0x6355,0x4A61, - /* Array index: 0x1572 */ 0x6357,0x443D, - /* Array index: 0x1572 */ 0x635C,0x415C, - /* Array index: 0x1572 */ 0x636E,0x3F78, - /* Array index: 0x1572 */ 0x6372,0x377E, - /* Array index: 0x1572 */ 0x6376,0x5959, - /* Array index: 0x1572 */ 0x6377,0x3E39, - /* Array index: 0x1572 */ 0x637A,0x4668, - /* Array index: 0x1572 */ 0x637B,0x4731, - /* Array index: 0x1572 */ 0x6380,0x5957, - /* Array index: 0x1572 */ 0x6383,0x415D, - /* Array index: 0x1572 */ 0x6388,0x3C78, - /* Array index: 0x1572 */ 0x6389,0x595C, - /* Array index: 0x1572 */ 0x638C,0x3E38, - /* Array index: 0x1572 */ 0x638E,0x5956, - /* Array index: 0x1572 */ 0x638F,0x595B, - /* Array index: 0x1572 */ 0x6392,0x4753, - /* Array index: 0x1572 */ 0x6396,0x5955, - /* Array index: 0x1572 */ 0x6398,0x3721, - /* Array index: 0x1572 */ 0x639B,0x335D, - /* Array index: 0x1572 */ 0x63B2,0x3747, - /* Array index: 0x1572 */ 0x63B4,0x444F, - /* Array index: 0x1572 */ 0x63B5,0x595E, - /* Array index: 0x1572 */ 0x63BB,0x415F, - /* Array index: 0x1572 */ 0x63BE,0x5961, - /* Array index: 0x1572 */ 0x63C0,0x5963, - /* Array index: 0x1572 */ 0x63C3,0x4237, - /* Array index: 0x1572 */ 0x63C4,0x5969, - /* Array index: 0x1572 */ 0x63C6,0x5964, - /* Array index: 0x1572 */ 0x63C9,0x5966, - /* Array index: 0x1572 */ 0x63CF,0x4941, - /* Array index: 0x1572 */ 0x63D0,0x4473, - /* Array index: 0x1572 */ 0x63D2,0x5967, - /* Array index: 0x1572 */ 0x63D6,0x4D2C, - /* Array index: 0x1572 */ 0x63DA,0x4D48, - /* Array index: 0x1572 */ 0x63DB,0x3439, - /* Array index: 0x1572 */ 0x63E1,0x302E, - /* Array index: 0x1572 */ 0x63E3,0x5965, - /* Array index: 0x1572 */ 0x63E9,0x5962, - /* Array index: 0x1572 */ 0x63EE,0x3478, - /* Array index: 0x1572 */ 0x63F4,0x3167, - /* Array index: 0x1572 */ 0x63F6,0x5968, - /* Array index: 0x1572 */ 0x63FA,0x4D49, - /* Array index: 0x1572 */ 0x6406,0x596C, - /* Array index: 0x1572 */ 0x640D,0x423B, - /* Array index: 0x1572 */ 0x640F,0x5973, - /* Array index: 0x1572 */ 0x6413,0x596D, - /* Array index: 0x1572 */ 0x6416,0x596A, - /* Array index: 0x1572 */ 0x6417,0x5971, - /* Array index: 0x1572 */ 0x641C,0x5953, - /* Array index: 0x1572 */ 0x6426,0x596E, - /* Array index: 0x1572 */ 0x6428,0x5972, - /* Array index: 0x1572 */ 0x642C,0x4842, - /* Array index: 0x1572 */ 0x642D,0x456B, - /* Array index: 0x1572 */ 0x6434,0x596B, - /* Array index: 0x1572 */ 0x6436,0x596F, - /* Array index: 0x1572 */ 0x643A,0x3748, - /* Array index: 0x1572 */ 0x643E,0x3A71, - /* Array index: 0x1572 */ 0x6442,0x405D, - /* Array index: 0x1572 */ 0x644E,0x5977, - /* Array index: 0x1572 */ 0x6458,0x4526, - /* Array index: 0x1572 */ 0x6467,0x5974, - /* Array index: 0x1572 */ 0x6469,0x4B60, - /* Array index: 0x1572 */ 0x646F,0x5975, - /* Array index: 0x1572 */ 0x6476,0x5976, - /* Array index: 0x1572 */ 0x6478,0x4C4E, - /* Array index: 0x1572 */ 0x647A,0x4022, - /* Array index: 0x1572 */ 0x6483,0x3762, - /* Array index: 0x1572 */ 0x6488,0x597D, - /* Array index: 0x1572 */ 0x6492,0x3B35, - /* Array index: 0x1572 */ 0x6493,0x597A, - /* Array index: 0x1572 */ 0x6495,0x5979, - /* Array index: 0x1572 */ 0x649A,0x4732, - /* Array index: 0x1572 */ 0x649E,0x4635, - /* Array index: 0x1572 */ 0x64A4,0x4531, - /* Array index: 0x1572 */ 0x64A5,0x597B, - /* Array index: 0x1572 */ 0x64A9,0x597C, - /* Array index: 0x1572 */ 0x64AB,0x496F, - /* Array index: 0x1572 */ 0x64AD,0x4745, - /* Array index: 0x1572 */ 0x64AE,0x3B23, - /* Array index: 0x1572 */ 0x64B0,0x4071, - /* Array index: 0x1572 */ 0x64B2,0x4B50, - /* Array index: 0x1572 */ 0x64B9,0x3349, - /* Array index: 0x1572 */ 0x64BB,0x5A25, - /* Array index: 0x1572 */ 0x64BC,0x597E, - /* Array index: 0x1572 */ 0x64C1,0x4D4A, - /* Array index: 0x1572 */ 0x64C2,0x5A27, - /* Array index: 0x1572 */ 0x64C5,0x5A23, - /* Array index: 0x1572 */ 0x64C7,0x5A24, - /* Array index: 0x1572 */ 0x64CD,0x4160, - /* Array index: 0x1572 */ 0x64D2,0x5A22, - /* Array index: 0x1572 */ 0x64D4,0x593F, - /* Array index: 0x1572 */ 0x64D8,0x5A26, - /* Array index: 0x1572 */ 0x64DA,0x5A21, - /* Array index: 0x1572 */ 0x64EC,0x353C, - /* Array index: 0x1572 */ 0x64EF,0x5A2F, - /* Array index: 0x1572 */ 0x64F1,0x5A28, - /* Array index: 0x1572 */ 0x64F2,0x5A33, - /* Array index: 0x1572 */ 0x64F4,0x5A32, - /* Array index: 0x1572 */ 0x64F6,0x5A31, - /* Array index: 0x1572 */ 0x64FA,0x5A34, - /* Array index: 0x1572 */ 0x64FD,0x5A36, - /* Array index: 0x1572 */ 0x64FE,0x3E71, - /* Array index: 0x1572 */ 0x6500,0x5A35, - /* Array index: 0x1572 */ 0x6505,0x5A39, - /* Array index: 0x1572 */ 0x6518,0x5A37, - /* Array index: 0x1572 */ 0x651C,0x5A38, - /* Array index: 0x1572 */ 0x651D,0x5970, - /* Array index: 0x1572 */ 0x6523,0x5A3B, - /* Array index: 0x1572 */ 0x6524,0x5A3A, - /* Array index: 0x1572 */ 0x652F,0x3B59, - /* Array index: 0x1572 */ 0x6545,0x384E, - /* Array index: 0x1572 */ 0x6548,0x5A43, - /* Array index: 0x1572 */ 0x654D,0x5A46, - /* Array index: 0x1572 */ 0x654F,0x4952, - /* Array index: 0x1572 */ 0x6551,0x355F, - /* Array index: 0x1572 */ 0x655D,0x5A49, - /* Array index: 0x1572 */ 0x655E,0x5A48, - /* Array index: 0x1572 */ 0x6562,0x343A, - /* Array index: 0x1572 */ 0x6563,0x3B36, - /* Array index: 0x1572 */ 0x6566,0x4658, - /* Array index: 0x1572 */ 0x656C,0x3749, - /* Array index: 0x1572 */ 0x6570,0x3F74, - /* Array index: 0x1572 */ 0x6572,0x5A4A, - /* Array index: 0x1572 */ 0x6582,0x5A4C, - /* Array index: 0x1572 */ 0x6583,0x5A4D, - /* Array index: 0x1572 */ 0x658C,0x494C, - /* Array index: 0x1572 */ 0x658E,0x3A58, - /* Array index: 0x1572 */ 0x6590,0x4865, - /* Array index: 0x1572 */ 0x6591,0x4843, - /* Array index: 0x1572 */ 0x6597,0x454D, - /* Array index: 0x1572 */ 0x6599,0x4E41, - /* Array index: 0x1572 */ 0x659B,0x5A4F, - /* Array index: 0x1572 */ 0x659C,0x3C50, - /* Array index: 0x1572 */ 0x659F,0x5A50, - /* Array index: 0x1572 */ 0x65A1,0x3036, - /* Array index: 0x1572 */ 0x65A4,0x3654, - /* Array index: 0x1572 */ 0x65A5,0x404D, - /* Array index: 0x1572 */ 0x65A7,0x4960, - /* Array index: 0x1572 */ 0x65B7,0x5A52, - /* Array index: 0x1572 */ 0x65B9,0x4A7D, - /* Array index: 0x1572 */ 0x65BC,0x3177, - /* Array index: 0x1572 */ 0x65BD,0x3B5C, - /* Array index: 0x1572 */ 0x65CB,0x407B, - /* Array index: 0x1572 */ 0x65CC,0x5A57, - /* Array index: 0x1572 */ 0x65CF,0x4232, - /* Array index: 0x1572 */ 0x65D2,0x5A58, - /* Array index: 0x1572 */ 0x65D7,0x347A, - /* Array index: 0x1572 */ 0x65D9,0x5A5A, - /* Array index: 0x1572 */ 0x65DB,0x5A59, - /* Array index: 0x1572 */ 0x65F1,0x5A5D, - /* Array index: 0x1572 */ 0x65FA,0x3222, - /* Array index: 0x1572 */ 0x65FB,0x5A61, - /* Array index: 0x1572 */ 0x6602,0x3937, - /* Array index: 0x1572 */ 0x6603,0x5A60, - /* Array index: 0x1572 */ 0x6606,0x3A2B, - /* Array index: 0x1572 */ 0x6607,0x3E3A, - /* Array index: 0x1572 */ 0x660A,0x5A5F, - /* Array index: 0x1572 */ 0x660C,0x3E3B, - /* Array index: 0x1572 */ 0x660E,0x4C40, - /* Array index: 0x1572 */ 0x660F,0x3A2A, - /* Array index: 0x1572 */ 0x6613,0x3057, - /* Array index: 0x1572 */ 0x6614,0x404E, - /* Array index: 0x1572 */ 0x661C,0x5A66, - /* Array index: 0x1572 */ 0x661F,0x4031, - /* Array index: 0x1572 */ 0x6620,0x3147, - /* Array index: 0x1572 */ 0x6625,0x3D55, - /* Array index: 0x1572 */ 0x6627,0x4B66, - /* Array index: 0x1572 */ 0x6628,0x3A72, - /* Array index: 0x1572 */ 0x662D,0x3E3C, - /* Array index: 0x1572 */ 0x662F,0x4027, - /* Array index: 0x1572 */ 0x663C,0x436B, - /* Array index: 0x1572 */ 0x6649,0x5A69, - /* Array index: 0x1572 */ 0x664B,0x3F38, - /* Array index: 0x1572 */ 0x664F,0x5A67, - /* Array index: 0x1572 */ 0x6652,0x3B2F, - /* Array index: 0x1572 */ 0x6662,0x5A71, - /* Array index: 0x1572 */ 0x6674,0x4032, - /* Array index: 0x1572 */ 0x6676,0x3E3D, - /* Array index: 0x1572 */ 0x667A,0x4352, - /* Array index: 0x1572 */ 0x6681,0x3647, - /* Array index: 0x1572 */ 0x668E,0x5A75, - /* Array index: 0x1572 */ 0x6691,0x3D6B, - /* Array index: 0x1572 */ 0x669D,0x5A79, - /* Array index: 0x1572 */ 0x66A2,0x442A, - /* Array index: 0x1572 */ 0x66A6,0x4E71, - /* Array index: 0x1572 */ 0x66AB,0x3B43, - /* Array index: 0x1572 */ 0x66AE,0x4A6B, - /* Array index: 0x1572 */ 0x66B4,0x4B3D, - /* Array index: 0x1572 */ 0x66B8,0x5B22, - /* Array index: 0x1572 */ 0x66B9,0x5A7B, - /* Array index: 0x1572 */ 0x66BC,0x5A7E, - /* Array index: 0x1572 */ 0x66BE,0x5A7D, - /* Array index: 0x1572 */ 0x66C1,0x5A7A, - /* Array index: 0x1572 */ 0x66C4,0x5B21, - /* Array index: 0x1572 */ 0x66C7,0x465E, - /* Array index: 0x1572 */ 0x66C9,0x5A7C, - /* Array index: 0x1572 */ 0x66D6,0x5B23, - /* Array index: 0x1572 */ 0x66E0,0x5B25, - /* Array index: 0x1572 */ 0x66E6,0x5B27, - /* Array index: 0x1572 */ 0x66E9,0x5B28, - /* Array index: 0x1572 */ 0x6703,0x5072, - /* Array index: 0x1572 */ 0x6708,0x376E, - /* Array index: 0x1572 */ 0x6709,0x4D2D, - /* Array index: 0x1572 */ 0x670B,0x4A7E, - /* Array index: 0x1572 */ 0x670D,0x497E, - /* Array index: 0x1572 */ 0x670F,0x5B2C, - /* Array index: 0x1572 */ 0x6731,0x3C6B, - /* Array index: 0x1572 */ 0x673D,0x3560, - /* Array index: 0x1572 */ 0x673F,0x5B33, - /* Array index: 0x1572 */ 0x6741,0x5B35, - /* Array index: 0x1572 */ 0x6746,0x5B38, - /* Array index: 0x1572 */ 0x6749,0x3F79, - /* Array index: 0x1572 */ 0x6756,0x3E73, - /* Array index: 0x1572 */ 0x6759,0x5B3B, - /* Array index: 0x1572 */ 0x676A,0x5B42, - /* Array index: 0x1572 */ 0x677C,0x5B41, - /* Array index: 0x1572 */ 0x677E,0x3E3E, - /* Array index: 0x1572 */ 0x677F,0x4844, - /* Array index: 0x1572 */ 0x6785,0x5B47, - /* Array index: 0x1572 */ 0x6787,0x487A, - /* Array index: 0x1572 */ 0x6789,0x5B3E, - /* Array index: 0x1572 */ 0x678B,0x5B44, - /* Array index: 0x1572 */ 0x678C,0x5B43, - /* Array index: 0x1572 */ 0x6790,0x404F, - /* Array index: 0x1572 */ 0x6795,0x4B6D, - /* Array index: 0x1572 */ 0x6797,0x4E53, - /* Array index: 0x1572 */ 0x679A,0x4B67, - /* Array index: 0x1572 */ 0x67A6,0x5B45, - /* Array index: 0x1572 */ 0x67A9,0x5B40, - /* Array index: 0x1572 */ 0x67AF,0x384F, - /* Array index: 0x1572 */ 0x67C1,0x4248, - /* Array index: 0x1572 */ 0x67C4,0x4A41, - /* Array index: 0x1572 */ 0x67C6,0x5B56, - /* Array index: 0x1572 */ 0x67CA,0x4922, - /* Array index: 0x1572 */ 0x67D8,0x4453, - /* Array index: 0x1572 */ 0x67DA,0x4D2E, - /* Array index: 0x1572 */ 0x67DD,0x5B51, - /* Array index: 0x1572 */ 0x67DE,0x5B50, - /* Array index: 0x1572 */ 0x67E2,0x5B52, - /* Array index: 0x1572 */ 0x67E4,0x5B4F, - /* Array index: 0x1572 */ 0x67E7,0x5B57, - /* Array index: 0x1572 */ 0x67E9,0x5B4D, - /* Array index: 0x1572 */ 0x67EC,0x5B4B, - /* Array index: 0x1572 */ 0x67EE,0x5B53, - /* Array index: 0x1572 */ 0x67EF,0x5B49, - /* Array index: 0x1572 */ 0x67FB,0x3A3A, - /* Array index: 0x1572 */ 0x6813,0x4072, - /* Array index: 0x1572 */ 0x6816,0x4034, - /* Array index: 0x1572 */ 0x6817,0x372A, - /* Array index: 0x1572 */ 0x681E,0x5B59, - /* Array index: 0x1572 */ 0x6821,0x393B, - /* Array index: 0x1572 */ 0x6822,0x337C, - /* Array index: 0x1572 */ 0x6832,0x5B5E, - /* Array index: 0x1572 */ 0x6834,0x4073, - /* Array index: 0x1572 */ 0x6838,0x334B, - /* Array index: 0x1572 */ 0x6839,0x3A2C, - /* Array index: 0x1572 */ 0x6846,0x5B5A, - /* Array index: 0x1572 */ 0x6848,0x3046, - /* Array index: 0x1572 */ 0x6859,0x5B62, - /* Array index: 0x1572 */ 0x685C,0x3A79, - /* Array index: 0x1572 */ 0x685D,0x4B71, - /* Array index: 0x1572 */ 0x685F,0x3B37, - /* Array index: 0x1572 */ 0x6863,0x5B63, - /* Array index: 0x1572 */ 0x6867,0x4930, - /* Array index: 0x1572 */ 0x6874,0x5B6F, - /* Array index: 0x1572 */ 0x6876,0x3233, - /* Array index: 0x1572 */ 0x6877,0x5B64, - /* Array index: 0x1572 */ 0x687E,0x5B75, - /* Array index: 0x1572 */ 0x687F,0x5B65, - /* Array index: 0x1572 */ 0x6881,0x4E42, - /* Array index: 0x1572 */ 0x6883,0x5B6C, - /* Array index: 0x1572 */ 0x6885,0x475F, - /* Array index: 0x1572 */ 0x688D,0x5B74, - /* Array index: 0x1572 */ 0x688F,0x5B67, - /* Array index: 0x1572 */ 0x6893,0x3034, - /* Array index: 0x1572 */ 0x6894,0x5B69, - /* Array index: 0x1572 */ 0x6897,0x393C, - /* Array index: 0x1572 */ 0x689B,0x5B6B, - /* Array index: 0x1572 */ 0x689D,0x5B6A, - /* Array index: 0x1572 */ 0x689F,0x5B66, - /* Array index: 0x1572 */ 0x68A0,0x5B71, - /* Array index: 0x1572 */ 0x68A2,0x3E3F, - /* Array index: 0x1572 */ 0x68C4,0x347E, - /* Array index: 0x1572 */ 0x68C6,0x5C32, - /* Array index: 0x1572 */ 0x68D2,0x4B40, - /* Array index: 0x1572 */ 0x68E7,0x5C22, - /* Array index: 0x1572 */ 0x68EE,0x3F39, - /* Array index: 0x1572 */ 0x68EF,0x5C2C, - /* Array index: 0x1572 */ 0x68F2,0x4033, - /* Array index: 0x1572 */ 0x68F9,0x5C2A, - /* Array index: 0x1572 */ 0x68FA,0x343D, - /* Array index: 0x1572 */ 0x6900,0x4F50, - /* Array index: 0x1572 */ 0x6901,0x5B76, - /* Array index: 0x1572 */ 0x6904,0x5C26, - /* Array index: 0x1572 */ 0x6905,0x3058, - /* Array index: 0x1572 */ 0x6908,0x5B78, - /* Array index: 0x1572 */ 0x6912,0x5C25, - /* Array index: 0x1572 */ 0x6930,0x5C3F, - /* Array index: 0x1572 */ 0x6934,0x464E, - /* Array index: 0x1572 */ 0x6936,0x5C24, - /* Array index: 0x1572 */ 0x6939,0x5C3B, - /* Array index: 0x1572 */ 0x693D,0x5C3D, - /* Array index: 0x1572 */ 0x693F,0x4458, - /* Array index: 0x1572 */ 0x694A,0x4D4C, - /* Array index: 0x1572 */ 0x698A,0x3A67, - /* Array index: 0x1572 */ 0x698E,0x315D, - /* Array index: 0x1572 */ 0x6991,0x5C54, - /* Array index: 0x1572 */ 0x6994,0x4F31, - /* Array index: 0x1572 */ 0x6995,0x5C57, - /* Array index: 0x1572 */ 0x699B,0x3F3A, - /* Array index: 0x1572 */ 0x699C,0x5C56, - /* Array index: 0x1572 */ 0x69A0,0x5C55, - /* Array index: 0x1572 */ 0x69A7,0x5C52, - /* Array index: 0x1572 */ 0x69AE,0x5C46, - /* Array index: 0x1572 */ 0x69B1,0x5C63, - /* Array index: 0x1572 */ 0x69B2,0x5C45, - /* Array index: 0x1572 */ 0x69B4,0x5C58, - /* Array index: 0x1572 */ 0x69BB,0x5C50, - /* Array index: 0x1572 */ 0x69BE,0x5C4B, - /* Array index: 0x1572 */ 0x69BF,0x5C48, - /* Array index: 0x1572 */ 0x69C1,0x5C49, - /* Array index: 0x1572 */ 0x69C3,0x5C51, - /* Array index: 0x1572 */ 0x69C7,0x7422, - /* Array index: 0x1572 */ 0x69D3,0x5C4A, - /* Array index: 0x1572 */ 0x69D8,0x4D4D, - /* Array index: 0x1572 */ 0x69D9,0x4B6A, - /* Array index: 0x1572 */ 0x69DD,0x5C4F, - /* Array index: 0x1572 */ 0x69DE,0x5C59, - /* Array index: 0x1572 */ 0x69E7,0x5C61, - /* Array index: 0x1572 */ 0x69E8,0x5C5A, - /* Array index: 0x1572 */ 0x69EB,0x5C67, - /* Array index: 0x1572 */ 0x69ED,0x5C65, - /* Array index: 0x1572 */ 0x69F2,0x5C60, - /* Array index: 0x1572 */ 0x69F9,0x5C5F, - /* Array index: 0x1572 */ 0x69FB,0x4450, - /* Array index: 0x1572 */ 0x69FD,0x4165, - /* Array index: 0x1572 */ 0x69FF,0x5C5D, - /* Array index: 0x1572 */ 0x6A02,0x5C5B, - /* Array index: 0x1572 */ 0x6A05,0x5C62, - /* Array index: 0x1572 */ 0x6A17,0x4374, - /* Array index: 0x1572 */ 0x6A19,0x4938, - /* Array index: 0x1572 */ 0x6A1B,0x5C5C, - /* Array index: 0x1572 */ 0x6A2E,0x5C53, - /* Array index: 0x1572 */ 0x6A3D,0x432E, - /* Array index: 0x1572 */ 0x6A44,0x5C6D, - /* Array index: 0x1572 */ 0x6A47,0x5C72, - /* Array index: 0x1572 */ 0x6A48,0x5C76, - /* Array index: 0x1572 */ 0x6A4B,0x3636, - /* Array index: 0x1572 */ 0x6A58,0x354C, - /* Array index: 0x1572 */ 0x6A59,0x5C74, - /* Array index: 0x1572 */ 0x6A5F,0x3521, - /* Array index: 0x1572 */ 0x6A61,0x464B, - /* Array index: 0x1572 */ 0x6A62,0x5C73, - /* Array index: 0x1572 */ 0x6A66,0x5C75, - /* Array index: 0x1572 */ 0x6A72,0x5C6F, - /* Array index: 0x1572 */ 0x6A78,0x5C71, - /* Array index: 0x1572 */ 0x6A7F,0x3360, - /* Array index: 0x1572 */ 0x6A80,0x4349, - /* Array index: 0x1572 */ 0x6A84,0x5C7C, - /* Array index: 0x1572 */ 0x6A8D,0x5C7A, - /* Array index: 0x1572 */ 0x6A8E,0x3869, - /* Array index: 0x1572 */ 0x6A90,0x5C79, - /* Array index: 0x1572 */ 0x6A97,0x5D21, - /* Array index: 0x1572 */ 0x6A9C,0x5B58, - /* Array index: 0x1572 */ 0x6AA0,0x5C7B, - /* Array index: 0x1572 */ 0x6AA2,0x5C7D, - /* Array index: 0x1572 */ 0x6AA3,0x5C7E, - /* Array index: 0x1572 */ 0x6AAA,0x5D2C, - /* Array index: 0x1572 */ 0x6AAC,0x5D28, - /* Array index: 0x1572 */ 0x6AAE,0x5B6D, - /* Array index: 0x1572 */ 0x6AB3,0x5D27, - /* Array index: 0x1572 */ 0x6AB8,0x5D26, - /* Array index: 0x1572 */ 0x6ABB,0x5D23, - /* Array index: 0x1572 */ 0x6AD1,0x5D2A, - /* Array index: 0x1572 */ 0x6AD3,0x4F26, - /* Array index: 0x1572 */ 0x6ADA,0x5D2D, - /* Array index: 0x1572 */ 0x6ADB,0x367B, - /* Array index: 0x1572 */ 0x6ADE,0x5D29, - /* Array index: 0x1572 */ 0x6ADF,0x5D2B, - /* Array index: 0x1572 */ 0x6AE8,0x4827, - /* Array index: 0x1572 */ 0x6AEA,0x5D2E, - /* Array index: 0x1572 */ 0x6AFA,0x5D32, - /* Array index: 0x1572 */ 0x6AFB,0x5D2F, - /* Array index: 0x1572 */ 0x6B04,0x4D73, - /* Array index: 0x1572 */ 0x6B05,0x5D30, - /* Array index: 0x1572 */ 0x6B0A,0x5C5E, - /* Array index: 0x1572 */ 0x6B12,0x5D33, - /* Array index: 0x1572 */ 0x6B16,0x5D34, - /* Array index: 0x1572 */ 0x6B27,0x3224, - /* Array index: 0x1572 */ 0x6B32,0x4D5F, - /* Array index: 0x1572 */ 0x6B43,0x5D3D, - /* Array index: 0x1572 */ 0x6B47,0x5D3C, - /* Array index: 0x1572 */ 0x6B49,0x5D3E, - /* Array index: 0x1572 */ 0x6B4C,0x324E, - /* Array index: 0x1572 */ 0x6B4E,0x4337, - /* Array index: 0x1572 */ 0x6B50,0x5D3F, - /* Array index: 0x1572 */ 0x6B53,0x343F, - /* Array index: 0x1572 */ 0x6B54,0x5D41, - /* Array index: 0x1572 */ 0x6B59,0x5D40, - /* Array index: 0x1572 */ 0x6B5B,0x5D42, - /* Array index: 0x1572 */ 0x6B6F,0x3B75, - /* Array index: 0x1572 */ 0x6B73,0x3A50, - /* Array index: 0x1572 */ 0x6B74,0x4E72, - /* Array index: 0x1572 */ 0x6B78,0x5D45, - /* Array index: 0x1572 */ 0x6B79,0x5D46, - /* Array index: 0x1572 */ 0x6B7B,0x3B60, - /* Array index: 0x1572 */ 0x6B7F,0x5D47, - /* Array index: 0x1572 */ 0x6B80,0x5D48, - /* Array index: 0x1572 */ 0x6B83,0x5D4A, - /* Array index: 0x1572 */ 0x6B84,0x5D49, - /* Array index: 0x1572 */ 0x6B86,0x4B58, - /* Array index: 0x1572 */ 0x6B95,0x5D4D, - /* Array index: 0x1572 */ 0x6B96,0x3F23, - /* Array index: 0x1572 */ 0x6B98,0x5D4C, - /* Array index: 0x1572 */ 0x6B9E,0x5D4E, - /* Array index: 0x1572 */ 0x6BA4,0x5D4F, - /* Array index: 0x1572 */ 0x6BAA,0x5D50, - /* Array index: 0x1572 */ 0x6BAB,0x5D51, - /* Array index: 0x1572 */ 0x6BC5,0x3523, - /* Array index: 0x1572 */ 0x6BC6,0x5D58, - /* Array index: 0x1572 */ 0x6BCB,0x5D59, - /* Array index: 0x1572 */ 0x6BCD,0x4A6C, - /* Array index: 0x1572 */ 0x6BCE,0x4B68, - /* Array index: 0x1572 */ 0x6BD8,0x487B, - /* Array index: 0x1572 */ 0x6BDB,0x4C53, - /* Array index: 0x1572 */ 0x6BDF,0x5D5B, - /* Array index: 0x1572 */ 0x6BEB,0x5D5D, - /* Array index: 0x1572 */ 0x6BEC,0x5D5C, - /* Array index: 0x1572 */ 0x6BEF,0x5D5F, - /* Array index: 0x1572 */ 0x6BF3,0x5D5E, - /* Array index: 0x1572 */ 0x6C08,0x5D61, - /* Array index: 0x1572 */ 0x6C0F,0x3B61, - /* Array index: 0x1572 */ 0x6C11,0x4C31, - /* Array index: 0x1572 */ 0x6C13,0x5D62, - /* Array index: 0x1572 */ 0x6C14,0x5D63, - /* Array index: 0x1572 */ 0x6C17,0x3524, - /* Array index: 0x1572 */ 0x6C1B,0x5D64, - /* Array index: 0x1572 */ 0x6C23,0x5D66, - /* Array index: 0x1572 */ 0x6C24,0x5D65, - /* Array index: 0x1572 */ 0x6C34,0x3F65, - /* Array index: 0x1572 */ 0x6C37,0x4939, - /* Array index: 0x1572 */ 0x6C38,0x314A, - /* Array index: 0x1572 */ 0x6C4E,0x4846, - /* Array index: 0x1572 */ 0x6C50,0x3C2E, - /* Array index: 0x1572 */ 0x6C55,0x5D68, - /* Array index: 0x1572 */ 0x6C57,0x3440, - /* Array index: 0x1572 */ 0x6C5A,0x3178, - /* Array index: 0x1572 */ 0x6C68,0x5D71, - /* Array index: 0x1572 */ 0x6C6A,0x5D6A, - /* Array index: 0x1572 */ 0x6C70,0x4241, - /* Array index: 0x1572 */ 0x6C72,0x3562, - /* Array index: 0x1572 */ 0x6C73,0x5D72, - /* Array index: 0x1572 */ 0x6C7A,0x3768, - /* Array index: 0x1572 */ 0x6C88,0x4440, - /* Array index: 0x1572 */ 0x6C8C,0x4659, - /* Array index: 0x1572 */ 0x6C8D,0x5D6C, - /* Array index: 0x1572 */ 0x6C90,0x5D74, - /* Array index: 0x1572 */ 0x6C92,0x5D73, - /* Array index: 0x1572 */ 0x6C93,0x3723, - /* Array index: 0x1572 */ 0x6C96,0x322D, - /* Array index: 0x1572 */ 0x6CA1,0x4B57, - /* Array index: 0x1572 */ 0x6CA2,0x4274, - /* Array index: 0x1572 */ 0x6CAB,0x4B77, - /* Array index: 0x1572 */ 0x6CAE,0x5D7C, - /* Array index: 0x1572 */ 0x6CB1,0x5D7D, - /* Array index: 0x1572 */ 0x6CB3,0x324F, - /* Array index: 0x1572 */ 0x6CC9,0x4074, - /* Array index: 0x1572 */ 0x6CCA,0x4771, - /* Array index: 0x1572 */ 0x6CCC,0x4867, - /* Array index: 0x1572 */ 0x6CD3,0x5D77, - /* Array index: 0x1572 */ 0x6CD5,0x4B21, - /* Array index: 0x1572 */ 0x6CD7,0x5D79, - /* Array index: 0x1572 */ 0x6CD9,0x5E24, - /* Array index: 0x1572 */ 0x6CDB,0x5E22, - /* Array index: 0x1572 */ 0x6CDD,0x5D7B, - /* Array index: 0x1572 */ 0x6CE8,0x436D, - /* Array index: 0x1572 */ 0x6CEA,0x5E25, - /* Array index: 0x1572 */ 0x6D0B,0x4D4E, - /* Array index: 0x1572 */ 0x6D0C,0x5E30, - /* Array index: 0x1572 */ 0x6D12,0x5E2F, - /* Array index: 0x1572 */ 0x6D17,0x4076, - /* Array index: 0x1572 */ 0x6D19,0x5E2C, - /* Array index: 0x1572 */ 0x6D1B,0x4D6C, - /* Array index: 0x1572 */ 0x6D1E,0x4636, - /* Array index: 0x1572 */ 0x6D1F,0x5E26, - /* Array index: 0x1572 */ 0x6D25,0x4445, - /* Array index: 0x1572 */ 0x6D3B,0x3368, - /* Array index: 0x1572 */ 0x6D3D,0x5E2A, - /* Array index: 0x1572 */ 0x6D3E,0x4749, - /* Array index: 0x1572 */ 0x6D41,0x4E2E, - /* Array index: 0x1572 */ 0x6D44,0x3E74, - /* Array index: 0x1572 */ 0x6D45,0x4075, - /* Array index: 0x1572 */ 0x6D59,0x5E36, - /* Array index: 0x1572 */ 0x6D5A,0x5E34, - /* Array index: 0x1572 */ 0x6D5C,0x494D, - /* Array index: 0x1572 */ 0x6D63,0x5E31, - /* Array index: 0x1572 */ 0x6D64,0x5E33, - /* Array index: 0x1572 */ 0x6D66,0x313A, - /* Array index: 0x1572 */ 0x6D69,0x3940, - /* Array index: 0x1572 */ 0x6D6A,0x4F32, - /* Array index: 0x1572 */ 0x6D6C,0x333D, - /* Array index: 0x1572 */ 0x6D6E,0x4962, - /* Array index: 0x1572 */ 0x6D74,0x4D61, - /* Array index: 0x1572 */ 0x6D85,0x5E3A, - /* Array index: 0x1572 */ 0x6D88,0x3E43, - /* Array index: 0x1572 */ 0x6D8C,0x4D30, - /* Array index: 0x1572 */ 0x6D8E,0x5E37, - /* Array index: 0x1572 */ 0x6D93,0x5E32, - /* Array index: 0x1572 */ 0x6D95,0x5E38, - /* Array index: 0x1572 */ 0x6D99,0x4E5E, - /* Array index: 0x1572 */ 0x6D9B,0x4573, - /* Array index: 0x1572 */ 0x6D9C,0x4642, - /* Array index: 0x1572 */ 0x6DAF,0x3336, - /* Array index: 0x1572 */ 0x6DB2,0x3155, - /* Array index: 0x1572 */ 0x6DB5,0x5E3E, - /* Array index: 0x1572 */ 0x6DB8,0x5E41, - /* Array index: 0x1572 */ 0x6DBC,0x4E43, - /* Array index: 0x1572 */ 0x6DC0,0x4D64, - /* Array index: 0x1572 */ 0x6DCB,0x4E54, - /* Array index: 0x1572 */ 0x6DCC,0x5E45, - /* Array index: 0x1572 */ 0x6DD1,0x3D4A, - /* Array index: 0x1572 */ 0x6DD2,0x5E47, - /* Array index: 0x1572 */ 0x6DD5,0x5E4C, - /* Array index: 0x1572 */ 0x6DD8,0x4571, - /* Array index: 0x1572 */ 0x6DD9,0x5E4A, - /* Array index: 0x1572 */ 0x6DDE,0x5E44, - /* Array index: 0x1572 */ 0x6DE1,0x4338, - /* Array index: 0x1572 */ 0x6DE4,0x5E4B, - /* Array index: 0x1572 */ 0x6DE6,0x5E40, - /* Array index: 0x1572 */ 0x6DF1,0x3F3C, - /* Array index: 0x1572 */ 0x6DF3,0x3D5F, - /* Array index: 0x1572 */ 0x6DF5,0x4A25, - /* Array index: 0x1572 */ 0x6E13,0x374C, - /* Array index: 0x1572 */ 0x6E15,0x5E3C, - /* Array index: 0x1572 */ 0x6E38,0x5E62, - /* Array index: 0x1572 */ 0x6E3A,0x5E5D, - /* Array index: 0x1572 */ 0x6E3E,0x5E55, - /* Array index: 0x1572 */ 0x6E43,0x5E5C, - /* Array index: 0x1572 */ 0x6E4A,0x4C2B, - /* Array index: 0x1572 */ 0x6E4D,0x5E5A, - /* Array index: 0x1572 */ 0x6E4E,0x5E5E, - /* Array index: 0x1572 */ 0x6E56,0x3850, - /* Array index: 0x1572 */ 0x6E58,0x3E45, - /* Array index: 0x1572 */ 0x6E5B,0x4339, - /* Array index: 0x1572 */ 0x6E5F,0x5E54, - /* Array index: 0x1572 */ 0x6E67,0x4D2F, - /* Array index: 0x1572 */ 0x6E6B,0x5E57, - /* Array index: 0x1572 */ 0x6E6E,0x5E50, - /* Array index: 0x1572 */ 0x6E6F,0x4572, - /* Array index: 0x1572 */ 0x6E72,0x5E53, - /* Array index: 0x1572 */ 0x6E76,0x5E59, - /* Array index: 0x1572 */ 0x6E8C,0x482E, - /* Array index: 0x1572 */ 0x6E8F,0x5E6F, - /* Array index: 0x1572 */ 0x6E90,0x383B, - /* Array index: 0x1572 */ 0x6E96,0x3D60, - /* Array index: 0x1572 */ 0x6E98,0x5E65, - /* Array index: 0x1572 */ 0x6E9C,0x4E2F, - /* Array index: 0x1572 */ 0x6E9D,0x3942, - /* Array index: 0x1572 */ 0x6E9F,0x5E72, - /* Array index: 0x1572 */ 0x6EA2,0x306E, - /* Array index: 0x1572 */ 0x6EA5,0x5E70, - /* Array index: 0x1572 */ 0x6EAA,0x5E64, - /* Array index: 0x1572 */ 0x6EAF,0x5E6A, - /* Array index: 0x1572 */ 0x6EB2,0x5E6C, - /* Array index: 0x1572 */ 0x6EB6,0x4D4F, - /* Array index: 0x1572 */ 0x6EB7,0x5E67, - /* Array index: 0x1572 */ 0x6EBA,0x452E, - /* Array index: 0x1572 */ 0x6EBD,0x5E69, - /* Array index: 0x1572 */ 0x6EC2,0x5E71, - /* Array index: 0x1572 */ 0x6EC4,0x5E6B, - /* Array index: 0x1572 */ 0x6EC5,0x4C47, - /* Array index: 0x1572 */ 0x6EC9,0x5E66, - /* Array index: 0x1572 */ 0x6ECB,0x3C22, - /* Array index: 0x1572 */ 0x6ECC,0x5E7E, - /* Array index: 0x1572 */ 0x6EDD,0x426C, - /* Array index: 0x1572 */ 0x6EDE,0x425A, - /* Array index: 0x1572 */ 0x6EEC,0x5E76, - /* Array index: 0x1572 */ 0x6EEF,0x5E7C, - /* Array index: 0x1572 */ 0x6EF2,0x5E7A, - /* Array index: 0x1572 */ 0x6EF4,0x4529, - /* Array index: 0x1572 */ 0x6EF7,0x5F23, - /* Array index: 0x1572 */ 0x6EF8,0x5E77, - /* Array index: 0x1572 */ 0x6F06,0x3C3F, - /* Array index: 0x1572 */ 0x6F09,0x3977, - /* Array index: 0x1572 */ 0x6F0F,0x4F33, - /* Array index: 0x1572 */ 0x6F20,0x4779, - /* Array index: 0x1572 */ 0x6F22,0x3441, - /* Array index: 0x1572 */ 0x6F23,0x4E7A, - /* Array index: 0x1572 */ 0x6F2B,0x4C21, - /* Array index: 0x1572 */ 0x6F2C,0x4452, - /* Array index: 0x1572 */ 0x6F31,0x5E7B, - /* Array index: 0x1572 */ 0x6F32,0x5E7D, - /* Array index: 0x1572 */ 0x6F38,0x4132, - /* Array index: 0x1572 */ 0x6F3E,0x5F21, - /* Array index: 0x1572 */ 0x6F3F,0x5E79, - /* Array index: 0x1572 */ 0x6F41,0x5E73, - /* Array index: 0x1572 */ 0x6F45,0x3443, - /* Array index: 0x1572 */ 0x6F54,0x3769, - /* Array index: 0x1572 */ 0x6F58,0x5F2F, - /* Array index: 0x1572 */ 0x6F5B,0x5F2A, - /* Array index: 0x1572 */ 0x6F5C,0x4078, - /* Array index: 0x1572 */ 0x6F5F,0x3363, - /* Array index: 0x1572 */ 0x6F64,0x3D61, - /* Array index: 0x1572 */ 0x6F66,0x5F33, - /* Array index: 0x1572 */ 0x6F74,0x5F4C, - /* Array index: 0x1572 */ 0x6F78,0x5F26, - /* Array index: 0x1572 */ 0x6F7A,0x5F25, - /* Array index: 0x1572 */ 0x6F7C,0x5F2E, - /* Array index: 0x1572 */ 0x6F8E,0x5F30, - /* Array index: 0x1572 */ 0x6F91,0x5F31, - /* Array index: 0x1572 */ 0x6F97,0x3442, - /* Array index: 0x1572 */ 0x6FA1,0x5F36, - /* Array index: 0x1572 */ 0x6FA3,0x5F35, - /* Array index: 0x1572 */ 0x6FA4,0x5F37, - /* Array index: 0x1572 */ 0x6FAA,0x5F3A, - /* Array index: 0x1572 */ 0x6FB1,0x4543, - /* Array index: 0x1572 */ 0x6FB3,0x5F34, - /* Array index: 0x1572 */ 0x6FB9,0x5F38, - /* Array index: 0x1572 */ 0x6FC6,0x5F39, - /* Array index: 0x1572 */ 0x6FD4,0x5F3E, - /* Array index: 0x1572 */ 0x6FD5,0x5F3C, - /* Array index: 0x1572 */ 0x6FD8,0x5F3F, - /* Array index: 0x1572 */ 0x6FDB,0x5F42, - /* Array index: 0x1572 */ 0x6FE4,0x5E39, - /* Array index: 0x1572 */ 0x6FF6,0x6F69, - /* Array index: 0x1572 */ 0x6FFA,0x5F45, - /* Array index: 0x1572 */ 0x6FFE,0x5F49, - /* Array index: 0x1572 */ 0x7001,0x5F47, - /* Array index: 0x1572 */ 0x7009,0x5F43, - /* Array index: 0x1572 */ 0x700B,0x5F44, - /* Array index: 0x1572 */ 0x700F,0x5F48, - /* Array index: 0x1572 */ 0x7011,0x5F46, - /* Array index: 0x1572 */ 0x7015,0x494E, - /* Array index: 0x1572 */ 0x7018,0x5F4E, - /* Array index: 0x1572 */ 0x7026,0x4375, - /* Array index: 0x1572 */ 0x7027,0x426D, - /* Array index: 0x1572 */ 0x702C,0x4025, - /* Array index: 0x1572 */ 0x7030,0x5F50, - /* Array index: 0x1572 */ 0x7032,0x5F52, - /* Array index: 0x1572 */ 0x703E,0x5F51, - /* Array index: 0x1572 */ 0x704C,0x5E75, - /* Array index: 0x1572 */ 0x7051,0x5F53, - /* Array index: 0x1572 */ 0x7058,0x4667, - /* Array index: 0x1572 */ 0x7063,0x5F54, - /* Array index: 0x1572 */ 0x706B,0x3250, - /* Array index: 0x1572 */ 0x706F,0x4574, - /* Array index: 0x1572 */ 0x7070,0x3325, - /* Array index: 0x1572 */ 0x7078,0x3564, - /* Array index: 0x1572 */ 0x707C,0x3C5E, - /* Array index: 0x1572 */ 0x707D,0x3A52, - /* Array index: 0x1572 */ 0x7089,0x4F27, - /* Array index: 0x1572 */ 0x708A,0x3F66, - /* Array index: 0x1572 */ 0x708E,0x316A, - /* Array index: 0x1572 */ 0x7092,0x5F56, - /* Array index: 0x1572 */ 0x7099,0x5F55, - /* Array index: 0x1572 */ 0x70B3,0x5F5B, - /* Array index: 0x1572 */ 0x70C8,0x4E75, - /* Array index: 0x1572 */ 0x70CB,0x5F5E, - /* Array index: 0x1572 */ 0x70CF,0x3128, - /* Array index: 0x1572 */ 0x70D9,0x5F60, - /* Array index: 0x1572 */ 0x70DD,0x5F5F, - /* Array index: 0x1572 */ 0x70DF,0x5F5D, - /* Array index: 0x1572 */ 0x70F1,0x5F58, - /* Array index: 0x1572 */ 0x70F9,0x4B23, - /* Array index: 0x1572 */ 0x70FD,0x5F62, - /* Array index: 0x1572 */ 0x7109,0x5F61, - /* Array index: 0x1572 */ 0x7114,0x316B, - /* Array index: 0x1572 */ 0x7119,0x5F64, - /* Array index: 0x1572 */ 0x711A,0x4A32, - /* Array index: 0x1572 */ 0x711C,0x5F63, - /* Array index: 0x1572 */ 0x7121,0x4C35, - /* Array index: 0x1572 */ 0x7126,0x3E47, - /* Array index: 0x1572 */ 0x7136,0x4133, - /* Array index: 0x1572 */ 0x713C,0x3E46, - /* Array index: 0x1572 */ 0x7149,0x4E7B, - /* Array index: 0x1572 */ 0x714C,0x5F6A, - /* Array index: 0x1572 */ 0x714E,0x4079, - /* Array index: 0x1572 */ 0x7155,0x5F66, - /* Array index: 0x1572 */ 0x7156,0x5F6B, - /* Array index: 0x1572 */ 0x7159,0x316C, - /* Array index: 0x1572 */ 0x716C,0x5F6C, - /* Array index: 0x1572 */ 0x716E,0x3C51, - /* Array index: 0x1572 */ 0x717D,0x407A, - /* Array index: 0x1572 */ 0x7184,0x5F6F, - /* Array index: 0x1572 */ 0x7188,0x5F67, - /* Array index: 0x1572 */ 0x718A,0x3727, - /* Array index: 0x1572 */ 0x718F,0x5F6D, - /* Array index: 0x1572 */ 0x7194,0x4D50, - /* Array index: 0x1572 */ 0x7195,0x5F70, - /* Array index: 0x1572 */ 0x7199,0x7426, - /* Array index: 0x1572 */ 0x719F,0x3D4F, - /* Array index: 0x1572 */ 0x71A8,0x5F71, - /* Array index: 0x1572 */ 0x71AC,0x5F72, - /* Array index: 0x1572 */ 0x71B1,0x472E, - /* Array index: 0x1572 */ 0x71B9,0x5F74, - /* Array index: 0x1572 */ 0x71BE,0x5F75, - /* Array index: 0x1572 */ 0x71C3,0x4733, - /* Array index: 0x1572 */ 0x71C8,0x4575, - /* Array index: 0x1572 */ 0x71C9,0x5F77, - /* Array index: 0x1572 */ 0x71CE,0x5F79, - /* Array index: 0x1572 */ 0x71D0,0x4E55, - /* Array index: 0x1572 */ 0x71D2,0x5F76, - /* Array index: 0x1572 */ 0x71D4,0x5F78, - /* Array index: 0x1572 */ 0x71D5,0x316D, - /* Array index: 0x1572 */ 0x71D7,0x5F73, - /* Array index: 0x1572 */ 0x71DF,0x535B, - /* Array index: 0x1572 */ 0x71E0,0x5F7A, - /* Array index: 0x1572 */ 0x71F5,0x5F7D, - /* Array index: 0x1572 */ 0x71F9,0x6021, - /* Array index: 0x1572 */ 0x71FB,0x5F6E, - /* Array index: 0x1572 */ 0x71FC,0x5F7E, - /* Array index: 0x1572 */ 0x71FF,0x6022, - /* Array index: 0x1572 */ 0x7206,0x477A, - /* Array index: 0x1572 */ 0x720D,0x6023, - /* Array index: 0x1572 */ 0x7210,0x6024, - /* Array index: 0x1572 */ 0x721B,0x6025, - /* Array index: 0x1572 */ 0x7228,0x6026, - /* Array index: 0x1572 */ 0x722A,0x445E, - /* Array index: 0x1572 */ 0x722C,0x6028, - /* Array index: 0x1572 */ 0x722D,0x6027, - /* Array index: 0x1572 */ 0x7230,0x6029, - /* Array index: 0x1572 */ 0x7232,0x602A, - /* Array index: 0x1572 */ 0x7235,0x3C5F, - /* Array index: 0x1572 */ 0x7236,0x4963, - /* Array index: 0x1572 */ 0x7252,0x442D, - /* Array index: 0x1572 */ 0x7258,0x6031, - /* Array index: 0x1572 */ 0x7259,0x3267, - /* Array index: 0x1572 */ 0x725B,0x356D, - /* Array index: 0x1572 */ 0x725D,0x4C46, - /* Array index: 0x1572 */ 0x725F,0x4C36, - /* Array index: 0x1572 */ 0x7261,0x3234, - /* Array index: 0x1572 */ 0x7262,0x4F34, - /* Array index: 0x1572 */ 0x7267,0x4B52, - /* Array index: 0x1572 */ 0x7269,0x4A2A, - /* Array index: 0x1572 */ 0x7272,0x4037, - /* Array index: 0x1572 */ 0x7274,0x6032, - /* Array index: 0x1572 */ 0x7279,0x4643, - /* Array index: 0x1572 */ 0x7287,0x6036, - /* Array index: 0x1572 */ 0x7292,0x6037, - /* Array index: 0x1572 */ 0x7296,0x6038, - /* Array index: 0x1572 */ 0x72A0,0x353E, - /* Array index: 0x1572 */ 0x72A2,0x6039, - /* Array index: 0x1572 */ 0x72A7,0x603A, - /* Array index: 0x1572 */ 0x72AC,0x3824, - /* Array index: 0x1572 */ 0x72AF,0x4848, - /* Array index: 0x1572 */ 0x72B2,0x603C, - /* Array index: 0x1572 */ 0x72B6,0x3E75, - /* Array index: 0x1572 */ 0x72B9,0x603B, - /* Array index: 0x1572 */ 0x72CE,0x6040, - /* Array index: 0x1572 */ 0x72D0,0x3851, - /* Array index: 0x1572 */ 0x72D2,0x6041, - /* Array index: 0x1572 */ 0x72D7,0x3669, - /* Array index: 0x1572 */ 0x72D9,0x4140, - /* Array index: 0x1572 */ 0x72DB,0x397D, - /* Array index: 0x1572 */ 0x72E9,0x3C6D, - /* Array index: 0x1572 */ 0x72EC,0x4648, - /* Array index: 0x1572 */ 0x72ED,0x3639, - /* Array index: 0x1572 */ 0x730A,0x6049, - /* Array index: 0x1572 */ 0x7316,0x604B, - /* Array index: 0x1572 */ 0x7317,0x6048, - /* Array index: 0x1572 */ 0x7325,0x6050, - /* Array index: 0x1572 */ 0x7334,0x604D, - /* Array index: 0x1572 */ 0x7336,0x4D31, - /* Array index: 0x1572 */ 0x7337,0x4D32, - /* Array index: 0x1572 */ 0x733E,0x6051, - /* Array index: 0x1572 */ 0x733F,0x316E, - /* Array index: 0x1572 */ 0x7344,0x3976, - /* Array index: 0x1572 */ 0x7345,0x3B62, - /* Array index: 0x1572 */ 0x734E,0x6052, - /* Array index: 0x1572 */ 0x734F,0x6053, - /* Array index: 0x1572 */ 0x7357,0x6055, - /* Array index: 0x1572 */ 0x7363,0x3D43, - /* Array index: 0x1572 */ 0x7368,0x6057, - /* Array index: 0x1572 */ 0x736A,0x6056, - /* Array index: 0x1572 */ 0x7370,0x6058, - /* Array index: 0x1572 */ 0x7372,0x334D, - /* Array index: 0x1572 */ 0x7375,0x605A, - /* Array index: 0x1572 */ 0x7378,0x6059, - /* Array index: 0x1572 */ 0x737A,0x605C, - /* Array index: 0x1572 */ 0x737B,0x605B, - /* Array index: 0x1572 */ 0x7384,0x383C, - /* Array index: 0x1572 */ 0x7387,0x4E28, - /* Array index: 0x1572 */ 0x7389,0x364C, - /* Array index: 0x1572 */ 0x738B,0x3226, - /* Array index: 0x1572 */ 0x7396,0x366A, - /* Array index: 0x1572 */ 0x73A9,0x3461, - /* Array index: 0x1572 */ 0x73B2,0x4E68, - /* Array index: 0x1572 */ 0x73B3,0x605E, - /* Array index: 0x1572 */ 0x73BB,0x6060, - /* Array index: 0x1572 */ 0x73C0,0x6061, - /* Array index: 0x1572 */ 0x73C2,0x3251, - /* Array index: 0x1572 */ 0x73C8,0x605D, - /* Array index: 0x1572 */ 0x73CA,0x3B39, - /* Array index: 0x1572 */ 0x73CD,0x4441, - /* Array index: 0x1572 */ 0x73CE,0x605F, - /* Array index: 0x1572 */ 0x73DE,0x6064, - /* Array index: 0x1572 */ 0x73E0,0x3C6E, - /* Array index: 0x1572 */ 0x73E5,0x6062, - /* Array index: 0x1572 */ 0x73EA,0x373E, - /* Array index: 0x1572 */ 0x73ED,0x4849, - /* Array index: 0x1572 */ 0x73EE,0x6063, - /* Array index: 0x1572 */ 0x73F1,0x607E, - /* Array index: 0x1572 */ 0x73F8,0x6069, - /* Array index: 0x1572 */ 0x73FE,0x383D, - /* Array index: 0x1572 */ 0x7403,0x3565, - /* Array index: 0x1572 */ 0x7405,0x6066, - /* Array index: 0x1572 */ 0x7406,0x4D7D, - /* Array index: 0x1572 */ 0x7409,0x4E30, - /* Array index: 0x1572 */ 0x7422,0x4276, - /* Array index: 0x1572 */ 0x7425,0x6068, - /* Array index: 0x1572 */ 0x743A,0x606B, - /* Array index: 0x1572 */ 0x743F,0x606D, - /* Array index: 0x1572 */ 0x7441,0x6070, - /* Array index: 0x1572 */ 0x7455,0x606C, - /* Array index: 0x1572 */ 0x7469,0x6072, - /* Array index: 0x1572 */ 0x746A,0x6075, - /* Array index: 0x1572 */ 0x746F,0x6067, - /* Array index: 0x1572 */ 0x7470,0x6073, - /* Array index: 0x1572 */ 0x7473,0x3A3C, - /* Array index: 0x1572 */ 0x7476,0x6076, - /* Array index: 0x1572 */ 0x747E,0x6077, - /* Array index: 0x1572 */ 0x7483,0x4D7E, - /* Array index: 0x1572 */ 0x748B,0x6078, - /* Array index: 0x1572 */ 0x749E,0x6079, - /* Array index: 0x1572 */ 0x74A2,0x6065, - /* Array index: 0x1572 */ 0x74A7,0x607A, - /* Array index: 0x1572 */ 0x74B0,0x3444, - /* Array index: 0x1572 */ 0x74BD,0x3C25, - /* Array index: 0x1572 */ 0x74CA,0x607B, - /* Array index: 0x1572 */ 0x74CF,0x607C, - /* Array index: 0x1572 */ 0x74D4,0x607D, - /* Array index: 0x1572 */ 0x74DC,0x313B, - /* Array index: 0x1572 */ 0x74E0,0x6121, - /* Array index: 0x1572 */ 0x74E2,0x493B, - /* Array index: 0x1572 */ 0x74E3,0x6122, - /* Array index: 0x1572 */ 0x74E6,0x3424, - /* Array index: 0x1572 */ 0x74E7,0x6123, - /* Array index: 0x1572 */ 0x74E9,0x6124, - /* Array index: 0x1572 */ 0x7511,0x3979, - /* Array index: 0x1572 */ 0x7513,0x6132, - /* Array index: 0x1572 */ 0x7515,0x6131, - /* Array index: 0x1572 */ 0x7518,0x3445, - /* Array index: 0x1572 */ 0x751A,0x3F53, - /* Array index: 0x1572 */ 0x751C,0x453C, - /* Array index: 0x1572 */ 0x751E,0x6133, - /* Array index: 0x1572 */ 0x751F,0x4038, - /* Array index: 0x1572 */ 0x7523,0x3B3A, - /* Array index: 0x1572 */ 0x7525,0x3179, - /* Array index: 0x1572 */ 0x7526,0x6134, - /* Array index: 0x1572 */ 0x7528,0x4D51, - /* Array index: 0x1572 */ 0x752B,0x4A63, - /* Array index: 0x1572 */ 0x752C,0x6135, - /* Array index: 0x1572 */ 0x7544,0x6137, - /* Array index: 0x1572 */ 0x7546,0x613C, - /* Array index: 0x1572 */ 0x7554,0x484A, - /* Array index: 0x1572 */ 0x7560,0x482B, - /* Array index: 0x1572 */ 0x7570,0x305B, - /* Array index: 0x1572 */ 0x757F,0x3526, - /* Array index: 0x1572 */ 0x7582,0x614A, - /* Array index: 0x1572 */ 0x7594,0x614B, - /* Array index: 0x1572 */ 0x759A,0x614C, - /* Array index: 0x1572 */ 0x759D,0x614D, - /* Array index: 0x1572 */ 0x75A3,0x614F, - /* Array index: 0x1572 */ 0x75A5,0x614E, - /* Array index: 0x1572 */ 0x75AB,0x3156, - /* Array index: 0x1572 */ 0x75C2,0x6150, - /* Array index: 0x1572 */ 0x75C3,0x6152, - /* Array index: 0x1572 */ 0x75C5,0x4942, - /* Array index: 0x1572 */ 0x75C7,0x3E49, - /* Array index: 0x1572 */ 0x75CA,0x6159, - /* Array index: 0x1572 */ 0x75CD,0x6158, - /* Array index: 0x1572 */ 0x75D2,0x615A, - /* Array index: 0x1572 */ 0x75D4,0x3C26, - /* Array index: 0x1572 */ 0x75D5,0x3A2F, - /* Array index: 0x1572 */ 0x75D8,0x4577, - /* Array index: 0x1572 */ 0x75D9,0x615B, - /* Array index: 0x1572 */ 0x75DB,0x444B, - /* Array index: 0x1572 */ 0x75DE,0x615D, - /* Array index: 0x1572 */ 0x75E2,0x4E21, - /* Array index: 0x1572 */ 0x75E3,0x615C, - /* Array index: 0x1572 */ 0x75E9,0x4169, - /* Array index: 0x1572 */ 0x75FA,0x6163, - /* Array index: 0x1572 */ 0x75FC,0x6160, - /* Array index: 0x1572 */ 0x75FE,0x615E, - /* Array index: 0x1572 */ 0x75FF,0x615F, - /* Array index: 0x1572 */ 0x7601,0x6161, - /* Array index: 0x1572 */ 0x7609,0x6168, - /* Array index: 0x1572 */ 0x760B,0x6166, - /* Array index: 0x1572 */ 0x760D,0x6167, - /* Array index: 0x1572 */ 0x7627,0x616A, - /* Array index: 0x1572 */ 0x7630,0x6170, - /* Array index: 0x1572 */ 0x7634,0x616F, - /* Array index: 0x1572 */ 0x763B,0x6171, - /* Array index: 0x1572 */ 0x7642,0x4E45, - /* Array index: 0x1572 */ 0x764C,0x3462, - /* Array index: 0x1572 */ 0x7652,0x4C7E, - /* Array index: 0x1572 */ 0x7656,0x4A4A, - /* Array index: 0x1572 */ 0x7658,0x6176, - /* Array index: 0x1572 */ 0x765C,0x6175, - /* Array index: 0x1572 */ 0x7661,0x6177, - /* Array index: 0x1572 */ 0x7662,0x6178, - /* Array index: 0x1572 */ 0x7670,0x617E, - /* Array index: 0x1572 */ 0x7672,0x6221, - /* Array index: 0x1572 */ 0x7676,0x6222, - /* Array index: 0x1572 */ 0x768B,0x6228, - /* Array index: 0x1572 */ 0x768E,0x6229, - /* Array index: 0x1572 */ 0x7690,0x3B29, - /* Array index: 0x1572 */ 0x7693,0x622B, - /* Array index: 0x1572 */ 0x7696,0x622A, - /* Array index: 0x1572 */ 0x7699,0x622C, - /* Array index: 0x1572 */ 0x769A,0x622D, - /* Array index: 0x1572 */ 0x76AE,0x4869, - /* Array index: 0x1572 */ 0x76B0,0x622E, - /* Array index: 0x1572 */ 0x76B4,0x622F, - /* Array index: 0x1572 */ 0x76BF,0x3B2E, - /* Array index: 0x1572 */ 0x76C2,0x6233, - /* Array index: 0x1572 */ 0x76C3,0x4756, - /* Array index: 0x1572 */ 0x76C6,0x4B5F, - /* Array index: 0x1572 */ 0x76C8,0x314E, - /* Array index: 0x1572 */ 0x76CA,0x3157, - /* Array index: 0x1572 */ 0x76CD,0x6234, - /* Array index: 0x1572 */ 0x76D2,0x6236, - /* Array index: 0x1572 */ 0x76D6,0x6235, - /* Array index: 0x1572 */ 0x76D7,0x4570, - /* Array index: 0x1572 */ 0x76EA,0x623B, - /* Array index: 0x1572 */ 0x76EE,0x4C5C, - /* Array index: 0x1572 */ 0x76F2,0x4C55, - /* Array index: 0x1572 */ 0x76F4,0x443E, - /* Array index: 0x1572 */ 0x76F8,0x416A, - /* Array index: 0x1572 */ 0x76FB,0x623D, - /* Array index: 0x1572 */ 0x76FE,0x3D62, - /* Array index: 0x1572 */ 0x7701,0x3E4A, - /* Array index: 0x1572 */ 0x7704,0x6240, - /* Array index: 0x1572 */ 0x771B,0x6246, - /* Array index: 0x1572 */ 0x7729,0x6241, - /* Array index: 0x1572 */ 0x7737,0x6247, - /* Array index: 0x1572 */ 0x7738,0x6248, - /* Array index: 0x1572 */ 0x773A,0x442F, - /* Array index: 0x1572 */ 0x773C,0x3463, - /* Array index: 0x1572 */ 0x7740,0x4365, - /* Array index: 0x1572 */ 0x7747,0x6249, - /* Array index: 0x1572 */ 0x775A,0x624A, - /* Array index: 0x1572 */ 0x775B,0x624D, - /* Array index: 0x1572 */ 0x7761,0x3F67, - /* Array index: 0x1572 */ 0x7763,0x4644, - /* Array index: 0x1572 */ 0x7765,0x624E, - /* Array index: 0x1572 */ 0x7766,0x4B53, - /* Array index: 0x1572 */ 0x7768,0x624B, - /* Array index: 0x1572 */ 0x776B,0x624C, - /* Array index: 0x1572 */ 0x7779,0x6251, - /* Array index: 0x1572 */ 0x777E,0x6250, - /* Array index: 0x1572 */ 0x777F,0x624F, - /* Array index: 0x1572 */ 0x778B,0x6253, - /* Array index: 0x1572 */ 0x778E,0x6252, - /* Array index: 0x1572 */ 0x7791,0x6254, - /* Array index: 0x1572 */ 0x779E,0x6256, - /* Array index: 0x1572 */ 0x77A0,0x6255, - /* Array index: 0x1572 */ 0x77A5,0x4A4D, - /* Array index: 0x1572 */ 0x77AC,0x3D56, - /* Array index: 0x1572 */ 0x77AD,0x4E46, - /* Array index: 0x1572 */ 0x77B0,0x6257, - /* Array index: 0x1572 */ 0x77B3,0x4637, - /* Array index: 0x1572 */ 0x77B6,0x6258, - /* Array index: 0x1572 */ 0x77C7,0x625E, - /* Array index: 0x1572 */ 0x77CD,0x625F, - /* Array index: 0x1572 */ 0x77D7,0x6260, - /* Array index: 0x1572 */ 0x77E2,0x4C70, - /* Array index: 0x1572 */ 0x77E3,0x6263, - /* Array index: 0x1572 */ 0x77E5,0x434E, - /* Array index: 0x1572 */ 0x77E7,0x476A, - /* Array index: 0x1572 */ 0x77E9,0x366B, - /* Array index: 0x1572 */ 0x77F3,0x4050, - /* Array index: 0x1572 */ 0x77FC,0x6265, - /* Array index: 0x1572 */ 0x7802,0x3A3D, - /* Array index: 0x1572 */ 0x780C,0x6266, - /* Array index: 0x1572 */ 0x7812,0x6267, - /* Array index: 0x1572 */ 0x7814,0x3826, - /* Array index: 0x1572 */ 0x7815,0x3A55, - /* Array index: 0x1572 */ 0x7820,0x6269, - /* Array index: 0x1572 */ 0x7832,0x4B24, - /* Array index: 0x1572 */ 0x7834,0x474B, - /* Array index: 0x1572 */ 0x783A,0x4557, - /* Array index: 0x1572 */ 0x783F,0x395C, - /* Array index: 0x1572 */ 0x7845,0x626B, - /* Array index: 0x1572 */ 0x785D,0x3E4B, - /* Array index: 0x1572 */ 0x786B,0x4E32, - /* Array index: 0x1572 */ 0x786C,0x3945, - /* Array index: 0x1572 */ 0x786F,0x3827, - /* Array index: 0x1572 */ 0x7872,0x4823, - /* Array index: 0x1572 */ 0x7874,0x626D, - /* Array index: 0x1572 */ 0x787C,0x626F, - /* Array index: 0x1572 */ 0x7881,0x386B, - /* Array index: 0x1572 */ 0x7886,0x626E, - /* Array index: 0x1572 */ 0x7887,0x4476, - /* Array index: 0x1572 */ 0x7891,0x486A, - /* Array index: 0x1572 */ 0x7893,0x3130, - /* Array index: 0x1572 */ 0x7895,0x3A6C, - /* Array index: 0x1572 */ 0x7897,0x4F52, - /* Array index: 0x1572 */ 0x789A,0x6270, - /* Array index: 0x1572 */ 0x78A3,0x6272, - /* Array index: 0x1572 */ 0x78A7,0x4A4B, - /* Array index: 0x1572 */ 0x78A9,0x4059, - /* Array index: 0x1572 */ 0x78AA,0x6274, - /* Array index: 0x1572 */ 0x78AF,0x6275, - /* Array index: 0x1572 */ 0x78B5,0x6273, - /* Array index: 0x1572 */ 0x78BA,0x334E, - /* Array index: 0x1572 */ 0x78BC,0x627B, - /* Array index: 0x1572 */ 0x78BE,0x627A, - /* Array index: 0x1572 */ 0x78C1,0x3C27, - /* Array index: 0x1572 */ 0x78C5,0x627C, - /* Array index: 0x1572 */ 0x78C6,0x6277, - /* Array index: 0x1572 */ 0x78CA,0x627D, - /* Array index: 0x1572 */ 0x78CB,0x6278, - /* Array index: 0x1572 */ 0x78D0,0x4858, - /* Array index: 0x1572 */ 0x78D1,0x6276, - /* Array index: 0x1572 */ 0x78D4,0x6279, - /* Array index: 0x1572 */ 0x78DA,0x6322, - /* Array index: 0x1572 */ 0x78E7,0x6321, - /* Array index: 0x1572 */ 0x78E8,0x4B61, - /* Array index: 0x1572 */ 0x78EC,0x627E, - /* Array index: 0x1572 */ 0x78EF,0x306B, - /* Array index: 0x1572 */ 0x78F4,0x6324, - /* Array index: 0x1572 */ 0x78FD,0x6323, - /* Array index: 0x1572 */ 0x7901,0x3E4C, - /* Array index: 0x1572 */ 0x7907,0x6325, - /* Array index: 0x1572 */ 0x790E,0x4143, - /* Array index: 0x1572 */ 0x7911,0x6327, - /* Array index: 0x1572 */ 0x7912,0x6326, - /* Array index: 0x1572 */ 0x7919,0x6328, - /* Array index: 0x1572 */ 0x7926,0x6268, - /* Array index: 0x1572 */ 0x793A,0x3C28, - /* Array index: 0x1572 */ 0x793C,0x4E69, - /* Array index: 0x1572 */ 0x793E,0x3C52, - /* Array index: 0x1572 */ 0x7940,0x632B, - /* Array index: 0x1572 */ 0x7941,0x3737, - /* Array index: 0x1572 */ 0x7950,0x4D34, - /* Array index: 0x1572 */ 0x795A,0x632F, - /* Array index: 0x1572 */ 0x7965,0x3E4D, - /* Array index: 0x1572 */ 0x7968,0x493C, - /* Array index: 0x1572 */ 0x796D,0x3A57, - /* Array index: 0x1572 */ 0x7977,0x4578, - /* Array index: 0x1572 */ 0x797A,0x6332, - /* Array index: 0x1572 */ 0x798A,0x6334, - /* Array index: 0x1572 */ 0x799D,0x6335, - /* Array index: 0x1572 */ 0x79A6,0x357A, - /* Array index: 0x1572 */ 0x79A7,0x6336, - /* Array index: 0x1572 */ 0x79AA,0x6338, - /* Array index: 0x1572 */ 0x79AE,0x6339, - /* Array index: 0x1572 */ 0x79B0,0x4729, - /* Array index: 0x1572 */ 0x79B3,0x633A, - /* Array index: 0x1572 */ 0x79C9,0x633D, - /* Array index: 0x1572 */ 0x79CB,0x3D29, - /* Array index: 0x1572 */ 0x79D1,0x324A, - /* Array index: 0x1572 */ 0x79D2,0x4943, - /* Array index: 0x1572 */ 0x79D5,0x633E, - /* Array index: 0x1572 */ 0x79D8,0x486B, - /* Array index: 0x1572 */ 0x79DF,0x4145, - /* Array index: 0x1572 */ 0x79E1,0x6341, - /* Array index: 0x1572 */ 0x79EC,0x6340, - /* Array index: 0x1572 */ 0x79F0,0x3E4E, - /* Array index: 0x1572 */ 0x79FB,0x305C, - /* Array index: 0x1572 */ 0x7A00,0x3529, - /* Array index: 0x1572 */ 0x7A08,0x6343, - /* Array index: 0x1572 */ 0x7A0B,0x4478, - /* Array index: 0x1572 */ 0x7A0D,0x6344, - /* Array index: 0x1572 */ 0x7A0E,0x4047, - /* Array index: 0x1572 */ 0x7A14,0x4C2D, - /* Array index: 0x1572 */ 0x7A2E,0x3C6F, - /* Array index: 0x1572 */ 0x7A31,0x634A, - /* Array index: 0x1572 */ 0x7A32,0x3070, - /* Array index: 0x1572 */ 0x7A37,0x634D, - /* Array index: 0x1572 */ 0x7A46,0x4B54, - /* Array index: 0x1572 */ 0x7A49,0x6350, - /* Array index: 0x1572 */ 0x7A57,0x634F, - /* Array index: 0x1572 */ 0x7A69,0x6353, - /* Array index: 0x1572 */ 0x7A6B,0x334F, - /* Array index: 0x1572 */ 0x7A70,0x6355, - /* Array index: 0x1572 */ 0x7A74,0x376A, - /* Array index: 0x1572 */ 0x7A76,0x3566, - /* Array index: 0x1572 */ 0x7A79,0x6356, - /* Array index: 0x1572 */ 0x7A7A,0x3675, - /* Array index: 0x1572 */ 0x7A7D,0x6357, - /* Array index: 0x1572 */ 0x7A7F,0x407C, - /* Array index: 0x1572 */ 0x7A81,0x464D, - /* Array index: 0x1572 */ 0x7A83,0x4060, - /* Array index: 0x1572 */ 0x7A84,0x3A75, - /* Array index: 0x1572 */ 0x7A88,0x6358, - /* Array index: 0x1572 */ 0x7A9F,0x3722, - /* Array index: 0x1572 */ 0x7AA9,0x635D, - /* Array index: 0x1572 */ 0x7AAA,0x3726, - /* Array index: 0x1572 */ 0x7AB6,0x6360, - /* Array index: 0x1572 */ 0x7ABA,0x312E, - /* Array index: 0x1572 */ 0x7ABF,0x6363, - /* Array index: 0x1572 */ 0x7AEA,0x4328, - /* Array index: 0x1572 */ 0x7AED,0x6371, - /* Array index: 0x1572 */ 0x7AEF,0x433C, - /* Array index: 0x1572 */ 0x7AF0,0x6372, - /* Array index: 0x1572 */ 0x7AFF,0x3448, - /* Array index: 0x1572 */ 0x7B02,0x6373, - /* Array index: 0x1572 */ 0x7B04,0x6422, - /* Array index: 0x1572 */ 0x7B06,0x6376, - /* Array index: 0x1572 */ 0x7B08,0x3568, - /* Array index: 0x1572 */ 0x7B0A,0x6375, - /* Array index: 0x1572 */ 0x7B0B,0x6424, - /* Array index: 0x1572 */ 0x7B0F,0x6374, - /* Array index: 0x1572 */ 0x7B11,0x3E50, - /* Array index: 0x1572 */ 0x7B18,0x6378, - /* Array index: 0x1572 */ 0x7B19,0x6379, - /* Array index: 0x1572 */ 0x7B1B,0x452B, - /* Array index: 0x1572 */ 0x7B1E,0x637A, - /* Array index: 0x1572 */ 0x7B20,0x335E, - /* Array index: 0x1572 */ 0x7B25,0x3F5A, - /* Array index: 0x1572 */ 0x7B26,0x4964, - /* Array index: 0x1572 */ 0x7B28,0x637C, - /* Array index: 0x1572 */ 0x7B2C,0x4268, - /* Array index: 0x1572 */ 0x7B33,0x6377, - /* Array index: 0x1572 */ 0x7B35,0x637B, - /* Array index: 0x1572 */ 0x7B36,0x637D, - /* Array index: 0x1572 */ 0x7B39,0x3A7B, - /* Array index: 0x1572 */ 0x7B5D,0x6438, - /* Array index: 0x1572 */ 0x7B65,0x6428, - /* Array index: 0x1572 */ 0x7B67,0x642A, - /* Array index: 0x1572 */ 0x7B6C,0x642D, - /* Array index: 0x1572 */ 0x7B6E,0x642E, - /* Array index: 0x1572 */ 0x7B70,0x642B, - /* Array index: 0x1572 */ 0x7B71,0x642C, - /* Array index: 0x1572 */ 0x7B74,0x6429, - /* Array index: 0x1572 */ 0x7B75,0x6427, - /* Array index: 0x1572 */ 0x7B7A,0x6421, - /* Array index: 0x1572 */ 0x7B86,0x4A4F, - /* Array index: 0x1572 */ 0x7B87,0x3255, - /* Array index: 0x1572 */ 0x7B8B,0x6435, - /* Array index: 0x1572 */ 0x7B8D,0x6432, - /* Array index: 0x1572 */ 0x7B8F,0x6437, - /* Array index: 0x1572 */ 0x7B92,0x6436, - /* Array index: 0x1572 */ 0x7BAA,0x433D, - /* Array index: 0x1572 */ 0x7BAD,0x407D, - /* Array index: 0x1572 */ 0x7BB1,0x4822, - /* Array index: 0x1572 */ 0x7BB4,0x643E, - /* Array index: 0x1572 */ 0x7BB8,0x4824, - /* Array index: 0x1572 */ 0x7BC0,0x4061, - /* Array index: 0x1572 */ 0x7BC1,0x643B, - /* Array index: 0x1572 */ 0x7BC4,0x484F, - /* Array index: 0x1572 */ 0x7BC6,0x643F, - /* Array index: 0x1572 */ 0x7BC7,0x4A53, - /* Array index: 0x1572 */ 0x7BC9,0x435B, - /* Array index: 0x1572 */ 0x7BCB,0x643A, - /* Array index: 0x1572 */ 0x7BCC,0x643C, - /* Array index: 0x1572 */ 0x7BCF,0x643D, - /* Array index: 0x1572 */ 0x7BDD,0x6440, - /* Array index: 0x1572 */ 0x7BE0,0x3C44, - /* Array index: 0x1572 */ 0x7BE9,0x6441, - /* Array index: 0x1572 */ 0x7BED,0x4F36, - /* Array index: 0x1572 */ 0x7BF3,0x644A, - /* Array index: 0x1572 */ 0x7BF6,0x644E, - /* Array index: 0x1572 */ 0x7BF7,0x644B, - /* Array index: 0x1572 */ 0x7C00,0x6447, - /* Array index: 0x1572 */ 0x7C07,0x6448, - /* Array index: 0x1572 */ 0x7C0D,0x644D, - /* Array index: 0x1572 */ 0x7C17,0x644C, - /* Array index: 0x1572 */ 0x7C1F,0x6452, - /* Array index: 0x1572 */ 0x7C21,0x344A, - /* Array index: 0x1572 */ 0x7C23,0x644F, - /* Array index: 0x1572 */ 0x7C27,0x6450, - /* Array index: 0x1572 */ 0x7C2A,0x6451, - /* Array index: 0x1572 */ 0x7C2B,0x6454, - /* Array index: 0x1572 */ 0x7C37,0x6453, - /* Array index: 0x1572 */ 0x7C38,0x4876, - /* Array index: 0x1572 */ 0x7C43,0x6457, - /* Array index: 0x1572 */ 0x7C54,0x6458, - /* Array index: 0x1572 */ 0x7C56,0x645F, - /* Array index: 0x1572 */ 0x7C58,0x645C, - /* Array index: 0x1572 */ 0x7C5F,0x645D, - /* Array index: 0x1572 */ 0x7C60,0x6446, - /* Array index: 0x1572 */ 0x7C64,0x645E, - /* Array index: 0x1572 */ 0x7C65,0x6460, - /* Array index: 0x1572 */ 0x7C6C,0x6461, - /* Array index: 0x1572 */ 0x7C73,0x4A46, - /* Array index: 0x1572 */ 0x7C75,0x6462, - /* Array index: 0x1572 */ 0x7C7E,0x4C62, - /* Array index: 0x1572 */ 0x7C89,0x4A34, - /* Array index: 0x1572 */ 0x7C8B,0x3F68, - /* Array index: 0x1572 */ 0x7C8D,0x4C30, - /* Array index: 0x1572 */ 0x7C90,0x6464, - /* Array index: 0x1572 */ 0x7C92,0x4E33, - /* Array index: 0x1572 */ 0x7C95,0x4774, - /* Array index: 0x1572 */ 0x7C97,0x4146, - /* Array index: 0x1572 */ 0x7C98,0x4734, - /* Array index: 0x1572 */ 0x7C9B,0x3D4D, - /* Array index: 0x1572 */ 0x7C9F,0x3040, - /* Array index: 0x1572 */ 0x7CAB,0x6468, - /* Array index: 0x1572 */ 0x7CB9,0x646F, - /* Array index: 0x1572 */ 0x7CBD,0x6470, - /* Array index: 0x1572 */ 0x7CBE,0x403A, - /* Array index: 0x1572 */ 0x7CC0,0x6471, - /* Array index: 0x1572 */ 0x7CC2,0x6473, - /* Array index: 0x1572 */ 0x7CC5,0x6472, - /* Array index: 0x1572 */ 0x7CCA,0x3852, - /* Array index: 0x1572 */ 0x7CCE,0x4138, - /* Array index: 0x1572 */ 0x7CD2,0x6475, - /* Array index: 0x1572 */ 0x7CD6,0x457C, - /* Array index: 0x1572 */ 0x7CD8,0x6474, - /* Array index: 0x1572 */ 0x7CE7,0x4E48, - /* Array index: 0x1572 */ 0x7CEF,0x6479, - /* Array index: 0x1572 */ 0x7CF2,0x647A, - /* Array index: 0x1572 */ 0x7CF4,0x647B, - /* Array index: 0x1572 */ 0x7CF6,0x647C, - /* Array index: 0x1572 */ 0x7CF8,0x3B65, - /* Array index: 0x1572 */ 0x7CFA,0x647D, - /* Array index: 0x1572 */ 0x7CFB,0x374F, - /* Array index: 0x1572 */ 0x7CFE,0x356A, - /* Array index: 0x1572 */ 0x7D00,0x352A, - /* Array index: 0x1572 */ 0x7D0A,0x6524, - /* Array index: 0x1572 */ 0x7D0B,0x4C66, - /* Array index: 0x1572 */ 0x7D0D,0x473C, - /* Array index: 0x1572 */ 0x7D10,0x4933, - /* Array index: 0x1572 */ 0x7D39,0x3E52, - /* Array index: 0x1572 */ 0x7D3A,0x3A30, - /* Array index: 0x1572 */ 0x7D3F,0x6529, - /* Array index: 0x1572 */ 0x7D56,0x652D, - /* Array index: 0x1572 */ 0x7D5B,0x6536, - /* Array index: 0x1572 */ 0x7D5E,0x394A, - /* Array index: 0x1572 */ 0x7D66,0x356B, - /* Array index: 0x1572 */ 0x7D68,0x6530, - /* Array index: 0x1572 */ 0x7D6E,0x6531, - /* Array index: 0x1572 */ 0x7D79,0x3828, - /* Array index: 0x1572 */ 0x7D7D,0x6538, - /* Array index: 0x1572 */ 0x7D89,0x6535, - /* Array index: 0x1572 */ 0x7D8F,0x6537, - /* Array index: 0x1572 */ 0x7D93,0x6534, - /* Array index: 0x1572 */ 0x7D9F,0x6546, - /* Array index: 0x1572 */ 0x7DA2,0x6542, - /* Array index: 0x1572 */ 0x7DA3,0x653C, - /* Array index: 0x1572 */ 0x7DB8,0x6545, - /* Array index: 0x1572 */ 0x7DC7,0x653E, - /* Array index: 0x1572 */ 0x7DCA,0x365B, - /* Array index: 0x1572 */ 0x7DCB,0x486C, - /* Array index: 0x1572 */ 0x7DCF,0x416D, - /* Array index: 0x1572 */ 0x7DD1,0x4E50, - /* Array index: 0x1572 */ 0x7DD2,0x3D6F, - /* Array index: 0x1572 */ 0x7DD5,0x656E, - /* Array index: 0x1572 */ 0x7DD8,0x6548, - /* Array index: 0x1572 */ 0x7DE4,0x654A, - /* Array index: 0x1572 */ 0x7DE8,0x4A54, - /* Array index: 0x1572 */ 0x7DE9,0x344B, - /* Array index: 0x1572 */ 0x7DEC,0x4C4B, - /* Array index: 0x1572 */ 0x7DEF,0x305E, - /* Array index: 0x1572 */ 0x7DF2,0x654D, - /* Array index: 0x1572 */ 0x7DF4,0x4E7D, - /* Array index: 0x1572 */ 0x7DFB,0x654C, - /* Array index: 0x1572 */ 0x7E01,0x316F, - /* Array index: 0x1572 */ 0x7E04,0x466C, - /* Array index: 0x1572 */ 0x7E05,0x654F, - /* Array index: 0x1572 */ 0x7E12,0x6553, - /* Array index: 0x1572 */ 0x7E1B,0x477B, - /* Array index: 0x1572 */ 0x7E26,0x3D44, - /* Array index: 0x1572 */ 0x7E2B,0x4B25, - /* Array index: 0x1572 */ 0x7E2E,0x3D4C, - /* Array index: 0x1572 */ 0x7E31,0x6554, - /* Array index: 0x1572 */ 0x7E32,0x6560, - /* Array index: 0x1572 */ 0x7E35,0x655C, - /* Array index: 0x1572 */ 0x7E41,0x484B, - /* Array index: 0x1572 */ 0x7E43,0x655E, - /* Array index: 0x1572 */ 0x7E46,0x6559, - /* Array index: 0x1572 */ 0x7E4A,0x4121, - /* Array index: 0x1572 */ 0x7E4B,0x3752, - /* Array index: 0x1572 */ 0x7E4D,0x3D2B, - /* Array index: 0x1572 */ 0x7E6D,0x4B7A, - /* Array index: 0x1572 */ 0x7E70,0x372B, - /* Array index: 0x1572 */ 0x7E88,0x6572, - /* Array index: 0x1572 */ 0x7E89,0x6573, - /* Array index: 0x1572 */ 0x7E9B,0x657B, - /* Array index: 0x1572 */ 0x7E9C,0x657C, - /* Array index: 0x1572 */ 0x7F36,0x344C, - /* Array index: 0x1572 */ 0x7F38,0x657D, - /* Array index: 0x1572 */ 0x7F3A,0x657E, - /* Array index: 0x1572 */ 0x7F45,0x6621, - /* Array index: 0x1572 */ 0x7F58,0x6629, - /* Array index: 0x1572 */ 0x7F5F,0x662A, - /* Array index: 0x1572 */ 0x7F60,0x662B, - /* Array index: 0x1572 */ 0x7F6E,0x4356, - /* Array index: 0x1572 */ 0x7F70,0x4833, - /* Array index: 0x1572 */ 0x7F72,0x3D70, - /* Array index: 0x1572 */ 0x7F94,0x6636, - /* Array index: 0x1572 */ 0x7F9A,0x6639, - /* Array index: 0x1572 */ 0x7F9D,0x6638, - /* Array index: 0x1572 */ 0x7F9E,0x6637, - /* Array index: 0x1572 */ 0x7FA3,0x663A, - /* Array index: 0x1572 */ 0x7FA4,0x3732, - /* Array index: 0x1572 */ 0x7FA8,0x4122, - /* Array index: 0x1572 */ 0x7FA9,0x3541, - /* Array index: 0x1572 */ 0x7FAE,0x663E, - /* Array index: 0x1572 */ 0x7FAF,0x663B, - /* Array index: 0x1572 */ 0x7FB2,0x663C, - /* Array index: 0x1572 */ 0x7FB6,0x663F, - /* Array index: 0x1572 */ 0x7FB8,0x6640, - /* Array index: 0x1572 */ 0x7FB9,0x663D, - /* Array index: 0x1572 */ 0x7FBD,0x3129, - /* Array index: 0x1572 */ 0x7FC1,0x3227, - /* Array index: 0x1572 */ 0x7FC5,0x6642, - /* Array index: 0x1572 */ 0x7FC6,0x6643, - /* Array index: 0x1572 */ 0x7FCA,0x6644, - /* Array index: 0x1572 */ 0x7FCC,0x4D62, - /* Array index: 0x1572 */ 0x7FD2,0x3D2C, - /* Array index: 0x1572 */ 0x7FD4,0x6646, - /* Array index: 0x1572 */ 0x7FD5,0x6645, - /* Array index: 0x1572 */ 0x7FE0,0x3F69, - /* Array index: 0x1572 */ 0x7FE1,0x6647, - /* Array index: 0x1572 */ 0x7FE6,0x6648, - /* Array index: 0x1572 */ 0x7FE9,0x6649, - /* Array index: 0x1572 */ 0x7FEB,0x3465, - /* Array index: 0x1572 */ 0x7FF0,0x344D, - /* Array index: 0x1572 */ 0x7FF3,0x664A, - /* Array index: 0x1572 */ 0x7FF9,0x664B, - /* Array index: 0x1572 */ 0x7FFB,0x4B5D, - /* Array index: 0x1572 */ 0x7FFC,0x4D63, - /* Array index: 0x1572 */ 0x800B,0x664F, - /* Array index: 0x1572 */ 0x800C,0x3C29, - /* Array index: 0x1572 */ 0x8010,0x4251, - /* Array index: 0x1572 */ 0x8012,0x6650, - /* Array index: 0x1572 */ 0x801C,0x6653, - /* Array index: 0x1572 */ 0x8021,0x6654, - /* Array index: 0x1572 */ 0x8028,0x6655, - /* Array index: 0x1572 */ 0x8033,0x3C2A, - /* Array index: 0x1572 */ 0x8036,0x4C6D, - /* Array index: 0x1572 */ 0x803B,0x6657, - /* Array index: 0x1572 */ 0x803D,0x433F, - /* Array index: 0x1572 */ 0x803F,0x6656, - /* Array index: 0x1572 */ 0x8046,0x6659, - /* Array index: 0x1572 */ 0x804A,0x6658, - /* Array index: 0x1572 */ 0x8052,0x665A, - /* Array index: 0x1572 */ 0x8056,0x403B, - /* Array index: 0x1572 */ 0x8058,0x665B, - /* Array index: 0x1572 */ 0x805A,0x665C, - /* Array index: 0x1572 */ 0x8068,0x665F, - /* Array index: 0x1572 */ 0x8093,0x666B, - /* Array index: 0x1572 */ 0x8096,0x3E53, - /* Array index: 0x1572 */ 0x8098,0x492A, - /* Array index: 0x1572 */ 0x809A,0x666C, - /* Array index: 0x1572 */ 0x809B,0x666A, - /* Array index: 0x1572 */ 0x809D,0x344E, - /* Array index: 0x1572 */ 0x80A1,0x3854, - /* Array index: 0x1572 */ 0x80A2,0x3B68, - /* Array index: 0x1572 */ 0x80A5,0x486E, - /* Array index: 0x1572 */ 0x80BA,0x4759, - /* Array index: 0x1572 */ 0x80C3,0x305F, - /* Array index: 0x1572 */ 0x80C4,0x6674, - /* Array index: 0x1572 */ 0x80C6,0x4340, - /* Array index: 0x1572 */ 0x80CC,0x4758, - /* Array index: 0x1572 */ 0x80CE,0x425B, - /* Array index: 0x1572 */ 0x80D6,0x6676, - /* Array index: 0x1572 */ 0x80E1,0x3855, - /* Array index: 0x1572 */ 0x80E4,0x307D, - /* Array index: 0x1572 */ 0x80E5,0x6671, - /* Array index: 0x1572 */ 0x80EF,0x6678, - /* Array index: 0x1572 */ 0x80F1,0x6679, - /* Array index: 0x1572 */ 0x80F4,0x4639, - /* Array index: 0x1572 */ 0x80F8,0x363B, - /* Array index: 0x1572 */ 0x80FC,0x6726, - /* Array index: 0x1572 */ 0x80FD,0x473D, - /* Array index: 0x1572 */ 0x8102,0x3B69, - /* Array index: 0x1572 */ 0x811A,0x3553, - /* Array index: 0x1572 */ 0x811B,0x667A, - /* Array index: 0x1572 */ 0x8123,0x667C, - /* Array index: 0x1572 */ 0x8129,0x667B, - /* Array index: 0x1572 */ 0x812F,0x667D, - /* Array index: 0x1572 */ 0x8131,0x4326, - /* Array index: 0x1572 */ 0x8133,0x473E, - /* Array index: 0x1572 */ 0x8139,0x4431, - /* Array index: 0x1572 */ 0x813E,0x6723, - /* Array index: 0x1572 */ 0x8146,0x6722, - /* Array index: 0x1572 */ 0x814B,0x667E, - /* Array index: 0x1572 */ 0x814E,0x3F55, - /* Array index: 0x1572 */ 0x815F,0x6735, - /* Array index: 0x1572 */ 0x8165,0x6729, - /* Array index: 0x1572 */ 0x8166,0x672A, - /* Array index: 0x1572 */ 0x816B,0x3C70, - /* Array index: 0x1572 */ 0x816E,0x6728, - /* Array index: 0x1572 */ 0x8170,0x3978, - /* Array index: 0x1572 */ 0x8171,0x6727, - /* Array index: 0x1572 */ 0x8174,0x672B, - /* Array index: 0x1572 */ 0x8188,0x672D, - /* Array index: 0x1572 */ 0x818A,0x672E, - /* Array index: 0x1572 */ 0x818F,0x3951, - /* Array index: 0x1572 */ 0x8193,0x6736, - /* Array index: 0x1572 */ 0x8195,0x6732, - /* Array index: 0x1572 */ 0x819A,0x4966, - /* Array index: 0x1572 */ 0x819C,0x4B6C, - /* Array index: 0x1572 */ 0x819D,0x4928, - /* Array index: 0x1572 */ 0x81A0,0x6731, - /* Array index: 0x1572 */ 0x81A3,0x6734, - /* Array index: 0x1572 */ 0x81A4,0x6733, - /* Array index: 0x1572 */ 0x81A8,0x4B44, - /* Array index: 0x1572 */ 0x81A9,0x6737, - /* Array index: 0x1572 */ 0x81B0,0x6738, - /* Array index: 0x1572 */ 0x81B3,0x4137, - /* Array index: 0x1572 */ 0x81B5,0x6739, - /* Array index: 0x1572 */ 0x81B8,0x673B, - /* Array index: 0x1572 */ 0x81BA,0x673F, - /* Array index: 0x1572 */ 0x81C6,0x3232, - /* Array index: 0x1572 */ 0x81C8,0x6745, - /* Array index: 0x1572 */ 0x81C9,0x6740, - /* Array index: 0x1572 */ 0x81CD,0x6741, - /* Array index: 0x1572 */ 0x81D1,0x6742, - /* Array index: 0x1572 */ 0x81D3,0x4221, - /* Array index: 0x1572 */ 0x81DF,0x6747, - /* Array index: 0x1572 */ 0x81E0,0x6748, - /* Array index: 0x1572 */ 0x81E3,0x3F43, - /* Array index: 0x1572 */ 0x81E5,0x3269, - /* Array index: 0x1572 */ 0x81E7,0x6749, - /* Array index: 0x1572 */ 0x81E8,0x4E57, - /* Array index: 0x1572 */ 0x81EA,0x3C2B, - /* Array index: 0x1572 */ 0x81ED,0x3D2D, - /* Array index: 0x1572 */ 0x81F3,0x3B6A, - /* Array index: 0x1572 */ 0x81F4,0x4357, - /* Array index: 0x1572 */ 0x8240,0x6759, - /* Array index: 0x1572 */ 0x8247,0x447A, - /* Array index: 0x1572 */ 0x825D,0x675C, - /* Array index: 0x1572 */ 0x825F,0x675E, - /* Array index: 0x1572 */ 0x8262,0x6760, - /* Array index: 0x1572 */ 0x8264,0x675F, - /* Array index: 0x1572 */ 0x8266,0x344F, - /* Array index: 0x1572 */ 0x8268,0x6761, - /* Array index: 0x1572 */ 0x826A,0x6762, - /* Array index: 0x1572 */ 0x826B,0x6763, - /* Array index: 0x1572 */ 0x827E,0x6768, - /* Array index: 0x1572 */ 0x828B,0x3072, - /* Array index: 0x1572 */ 0x828D,0x6769, - /* Array index: 0x1572 */ 0x8292,0x676A, - /* Array index: 0x1572 */ 0x8299,0x4967, - /* Array index: 0x1572 */ 0x829D,0x3C47, - /* Array index: 0x1572 */ 0x829F,0x676C, - /* Array index: 0x1572 */ 0x82A5,0x3329, - /* Array index: 0x1572 */ 0x82A6,0x3032, - /* Array index: 0x1572 */ 0x82B8,0x375D, - /* Array index: 0x1572 */ 0x82B9,0x365C, - /* Array index: 0x1572 */ 0x82BB,0x676D, - /* Array index: 0x1572 */ 0x82BD,0x326A, - /* Array index: 0x1572 */ 0x82C5,0x3423, - /* Array index: 0x1572 */ 0x82D7,0x4944, - /* Array index: 0x1572 */ 0x82D9,0x677E, - /* Array index: 0x1572 */ 0x82EB,0x4651, - /* Array index: 0x1572 */ 0x82F1,0x3151, - /* Array index: 0x1572 */ 0x82F3,0x6774, - /* Array index: 0x1572 */ 0x82F4,0x6773, - /* Array index: 0x1572 */ 0x8309,0x677D, - /* Array index: 0x1572 */ 0x830E,0x3754, - /* Array index: 0x1572 */ 0x831C,0x302B, - /* Array index: 0x1572 */ 0x8323,0x6834, - /* Array index: 0x1572 */ 0x8328,0x3071, - /* Array index: 0x1572 */ 0x832B,0x682B, - /* Array index: 0x1572 */ 0x832F,0x682A, - /* Array index: 0x1572 */ 0x8340,0x6826, - /* Array index: 0x1572 */ 0x8345,0x6829, - /* Array index: 0x1572 */ 0x8349,0x4170, - /* Array index: 0x1572 */ 0x834A,0x3755, - /* Array index: 0x1572 */ 0x834F,0x3141, - /* Array index: 0x1572 */ 0x8350,0x6828, - /* Array index: 0x1572 */ 0x8352,0x3953, - /* Array index: 0x1572 */ 0x8358,0x4171, - /* Array index: 0x1572 */ 0x8373,0x683A, - /* Array index: 0x1572 */ 0x8375,0x683B, - /* Array index: 0x1572 */ 0x8377,0x3259, - /* Array index: 0x1572 */ 0x837B,0x322E, - /* Array index: 0x1572 */ 0x837C,0x6838, - /* Array index: 0x1572 */ 0x8385,0x682E, - /* Array index: 0x1572 */ 0x8387,0x6836, - /* Array index: 0x1572 */ 0x8389,0x683D, - /* Array index: 0x1572 */ 0x838A,0x6837, - /* Array index: 0x1572 */ 0x838E,0x6835, - /* Array index: 0x1572 */ 0x8393,0x6776, - /* Array index: 0x1572 */ 0x8396,0x6833, - /* Array index: 0x1572 */ 0x839A,0x682F, - /* Array index: 0x1572 */ 0x83A8,0x683E, - /* Array index: 0x1572 */ 0x83AA,0x6830, - /* Array index: 0x1572 */ 0x83AB,0x477C, - /* Array index: 0x1572 */ 0x83B1,0x4D69, - /* Array index: 0x1572 */ 0x83B5,0x6839, - /* Array index: 0x1572 */ 0x83BD,0x684F, - /* Array index: 0x1572 */ 0x83C1,0x6847, - /* Array index: 0x1572 */ 0x83C5,0x3F7B, - /* Array index: 0x1572 */ 0x83CA,0x3546, - /* Array index: 0x1572 */ 0x83CC,0x365D, - /* Array index: 0x1572 */ 0x83CE,0x6842, - /* Array index: 0x1572 */ 0x83D3,0x325B, - /* Array index: 0x1572 */ 0x83D6,0x3E54, - /* Array index: 0x1572 */ 0x83D8,0x6845, - /* Array index: 0x1572 */ 0x83DC,0x3A5A, - /* Array index: 0x1572 */ 0x83DF,0x4551, - /* Array index: 0x1572 */ 0x83E0,0x684A, - /* Array index: 0x1572 */ 0x83E9,0x4A6E, - /* Array index: 0x1572 */ 0x83EB,0x6841, - /* Array index: 0x1572 */ 0x83F7,0x6848, - /* Array index: 0x1572 */ 0x83FB,0x6852, - /* Array index: 0x1572 */ 0x83FD,0x6843, - /* Array index: 0x1572 */ 0x8403,0x6844, - /* Array index: 0x1572 */ 0x8404,0x463A, - /* Array index: 0x1572 */ 0x8407,0x6849, - /* Array index: 0x1572 */ 0x8413,0x6840, - /* Array index: 0x1572 */ 0x8420,0x684E, - /* Array index: 0x1572 */ 0x8422,0x684D, - /* Array index: 0x1572 */ 0x8429,0x476B, - /* Array index: 0x1572 */ 0x842A,0x6854, - /* Array index: 0x1572 */ 0x842C,0x685F, - /* Array index: 0x1572 */ 0x8431,0x337E, - /* Array index: 0x1572 */ 0x8435,0x6862, - /* Array index: 0x1572 */ 0x8438,0x6850, - /* Array index: 0x1572 */ 0x843C,0x6855, - /* Array index: 0x1572 */ 0x843D,0x4D6E, - /* Array index: 0x1572 */ 0x8446,0x685E, - /* Array index: 0x1572 */ 0x8449,0x4D55, - /* Array index: 0x1572 */ 0x844E,0x4E2A, - /* Array index: 0x1572 */ 0x8457,0x4378, - /* Array index: 0x1572 */ 0x845B,0x336B, - /* Array index: 0x1572 */ 0x8466,0x3031, - /* Array index: 0x1572 */ 0x8475,0x302A, - /* Array index: 0x1572 */ 0x8477,0x6858, - /* Array index: 0x1572 */ 0x8479,0x6861, - /* Array index: 0x1572 */ 0x847A,0x4978, - /* Array index: 0x1572 */ 0x8482,0x685C, - /* Array index: 0x1572 */ 0x8484,0x6857, - /* Array index: 0x1572 */ 0x848B,0x3E55, - /* Array index: 0x1572 */ 0x8490,0x3D2F, - /* Array index: 0x1572 */ 0x8494,0x3C2C, - /* Array index: 0x1572 */ 0x8499,0x4C58, - /* Array index: 0x1572 */ 0x849C,0x4947, - /* Array index: 0x1572 */ 0x849F,0x6867, - /* Array index: 0x1572 */ 0x84A1,0x6870, - /* Array index: 0x1572 */ 0x84AD,0x685A, - /* Array index: 0x1572 */ 0x84B2,0x3377, - /* Array index: 0x1572 */ 0x84BF,0x6866, - /* Array index: 0x1572 */ 0x84C1,0x686D, - /* Array index: 0x1572 */ 0x84C4,0x435F, - /* Array index: 0x1572 */ 0x84C6,0x686E, - /* Array index: 0x1572 */ 0x84D6,0x686F, - /* Array index: 0x1572 */ 0x84D9,0x6868, - /* Array index: 0x1572 */ 0x84DA,0x686B, - /* Array index: 0x1572 */ 0x84EC,0x4B29, - /* Array index: 0x1572 */ 0x84EE,0x4F21, - /* Array index: 0x1572 */ 0x84F4,0x6873, - /* Array index: 0x1572 */ 0x84FC,0x687A, - /* Array index: 0x1572 */ 0x84FF,0x6872, - /* Array index: 0x1572 */ 0x8500,0x3C43, - /* Array index: 0x1572 */ 0x8506,0x6851, - /* Array index: 0x1572 */ 0x851F,0x6877, - /* Array index: 0x1572 */ 0x8521,0x6871, - /* Array index: 0x1572 */ 0x8526,0x4455, - /* Array index: 0x1572 */ 0x852C,0x6876, - /* Array index: 0x1572 */ 0x852D,0x307E, - /* Array index: 0x1572 */ 0x8535,0x4222, - /* Array index: 0x1572 */ 0x853D,0x4A43, - /* Array index: 0x1572 */ 0x8540,0x687B, - /* Array index: 0x1572 */ 0x8541,0x6921, - /* Array index: 0x1572 */ 0x8543,0x4859, - /* Array index: 0x1572 */ 0x854E,0x363E, - /* Array index: 0x1572 */ 0x8555,0x6924, - /* Array index: 0x1572 */ 0x8557,0x4979, - /* Array index: 0x1572 */ 0x8558,0x687D, - /* Array index: 0x1572 */ 0x855A,0x6856, - /* Array index: 0x1572 */ 0x8563,0x687C, - /* Array index: 0x1572 */ 0x856D,0x692B, - /* Array index: 0x1572 */ 0x8577,0x6931, - /* Array index: 0x1572 */ 0x857E,0x6932, - /* Array index: 0x1572 */ 0x8580,0x6925, - /* Array index: 0x1572 */ 0x8584,0x4776, - /* Array index: 0x1572 */ 0x8587,0x692F, - /* Array index: 0x1572 */ 0x8588,0x6927, - /* Array index: 0x1572 */ 0x858A,0x6929, - /* Array index: 0x1572 */ 0x8590,0x6933, - /* Array index: 0x1572 */ 0x8591,0x6928, - /* Array index: 0x1572 */ 0x8594,0x692C, - /* Array index: 0x1572 */ 0x8597,0x3172, - /* Array index: 0x1572 */ 0x8599,0x4665, - /* Array index: 0x1572 */ 0x859B,0x692D, - /* Array index: 0x1572 */ 0x859C,0x6930, - /* Array index: 0x1572 */ 0x85A4,0x6926, - /* Array index: 0x1572 */ 0x85B9,0x6937, - /* Array index: 0x1572 */ 0x85BA,0x6935, - /* Array index: 0x1572 */ 0x85C1,0x4F4E, - /* Array index: 0x1572 */ 0x85C9,0x6934, - /* Array index: 0x1572 */ 0x85CD,0x4D75, - /* Array index: 0x1572 */ 0x85CF,0x6936, - /* Array index: 0x1572 */ 0x85D0,0x6938, - /* Array index: 0x1572 */ 0x85D5,0x6939, - /* Array index: 0x1572 */ 0x85DC,0x693C, - /* Array index: 0x1572 */ 0x85DD,0x693A, - /* Array index: 0x1572 */ 0x85E4,0x4623, - /* Array index: 0x1572 */ 0x85E5,0x693B, - /* Array index: 0x1572 */ 0x85E9,0x484D, - /* Array index: 0x1572 */ 0x85EA,0x692E, - /* Array index: 0x1572 */ 0x85FE,0x6941, - /* Array index: 0x1572 */ 0x8602,0x6922, - /* Array index: 0x1572 */ 0x8606,0x6943, - /* Array index: 0x1572 */ 0x8607,0x4149, - /* Array index: 0x1572 */ 0x860A,0x693E, - /* Array index: 0x1572 */ 0x860B,0x6940, - /* Array index: 0x1572 */ 0x8613,0x693F, - /* Array index: 0x1572 */ 0x8616,0x5D31, - /* Array index: 0x1572 */ 0x8617,0x5D22, - /* Array index: 0x1572 */ 0x861A,0x6945, - /* Array index: 0x1572 */ 0x8622,0x6944, - /* Array index: 0x1572 */ 0x862D,0x4D76, - /* Array index: 0x1572 */ 0x862F,0x623C, - /* Array index: 0x1572 */ 0x8630,0x6946, - /* Array index: 0x1572 */ 0x863F,0x6947, - /* Array index: 0x1572 */ 0x864D,0x6948, - /* Array index: 0x1572 */ 0x864E,0x3857, - /* Array index: 0x1572 */ 0x8650,0x3554, - /* Array index: 0x1572 */ 0x8654,0x694A, - /* Array index: 0x1572 */ 0x8655,0x515D, - /* Array index: 0x1572 */ 0x865A,0x3575, - /* Array index: 0x1572 */ 0x865C,0x4E3A, - /* Array index: 0x1572 */ 0x865E,0x3673, - /* Array index: 0x1572 */ 0x865F,0x694B, - /* Array index: 0x1572 */ 0x8667,0x694C, - /* Array index: 0x1572 */ 0x866B,0x436E, - /* Array index: 0x1572 */ 0x8671,0x694D, - /* Array index: 0x1572 */ 0x8679,0x467A, - /* Array index: 0x1572 */ 0x867B,0x303A, - /* Array index: 0x1572 */ 0x8693,0x694E, - /* Array index: 0x1572 */ 0x8695,0x3B3D, - /* Array index: 0x1572 */ 0x86A3,0x694F, - /* Array index: 0x1572 */ 0x86A4,0x4742, - /* Array index: 0x1572 */ 0x86AF,0x6955, - /* Array index: 0x1572 */ 0x86B0,0x6958, - /* Array index: 0x1572 */ 0x86B6,0x6954, - /* Array index: 0x1572 */ 0x86C4,0x6956, - /* Array index: 0x1572 */ 0x86C6,0x6957, - /* Array index: 0x1572 */ 0x86C7,0x3C58, - /* Array index: 0x1572 */ 0x86C9,0x6959, - /* Array index: 0x1572 */ 0x86CB,0x4341, - /* Array index: 0x1572 */ 0x86CD,0x3756, - /* Array index: 0x1572 */ 0x86CE,0x3342, - /* Array index: 0x1572 */ 0x86D4,0x695C, - /* Array index: 0x1572 */ 0x86D9,0x333F, - /* Array index: 0x1572 */ 0x86DB,0x6961, - /* Array index: 0x1572 */ 0x86DE,0x695D, - /* Array index: 0x1572 */ 0x86DF,0x6960, - /* Array index: 0x1572 */ 0x86E4,0x483A, - /* Array index: 0x1572 */ 0x86E9,0x695E, - /* Array index: 0x1572 */ 0x86F8,0x427D, - /* Array index: 0x1572 */ 0x86F9,0x696C, - /* Array index: 0x1572 */ 0x86FB,0x6968, - /* Array index: 0x1572 */ 0x86FE,0x326B, - /* Array index: 0x1572 */ 0x8700,0x6966, - /* Array index: 0x1572 */ 0x8702,0x4B2A, - /* Array index: 0x1572 */ 0x8703,0x6967, - /* Array index: 0x1572 */ 0x870D,0x696B, - /* Array index: 0x1572 */ 0x8711,0x6969, - /* Array index: 0x1572 */ 0x8712,0x6963, - /* Array index: 0x1572 */ 0x8718,0x4358, - /* Array index: 0x1572 */ 0x871A,0x6974, - /* Array index: 0x1572 */ 0x871C,0x4C2A, - /* Array index: 0x1572 */ 0x8725,0x6972, - /* Array index: 0x1572 */ 0x8729,0x6973, - /* Array index: 0x1572 */ 0x8734,0x696E, - /* Array index: 0x1572 */ 0x8737,0x6970, - /* Array index: 0x1572 */ 0x873B,0x6971, - /* Array index: 0x1572 */ 0x873F,0x696F, - /* Array index: 0x1572 */ 0x8749,0x4066, - /* Array index: 0x1572 */ 0x874B,0x4F39, - /* Array index: 0x1572 */ 0x874C,0x6978, - /* Array index: 0x1572 */ 0x874E,0x6979, - /* Array index: 0x1572 */ 0x8753,0x6A21, - /* Array index: 0x1572 */ 0x8755,0x3F2A, - /* Array index: 0x1572 */ 0x8757,0x697B, - /* Array index: 0x1572 */ 0x8759,0x697E, - /* Array index: 0x1572 */ 0x875F,0x6976, - /* Array index: 0x1572 */ 0x8760,0x6975, - /* Array index: 0x1572 */ 0x8763,0x6A22, - /* Array index: 0x1572 */ 0x8766,0x325C, - /* Array index: 0x1572 */ 0x8768,0x697C, - /* Array index: 0x1572 */ 0x876A,0x6A23, - /* Array index: 0x1572 */ 0x876E,0x697D, - /* Array index: 0x1572 */ 0x8774,0x697A, - /* Array index: 0x1572 */ 0x8776,0x4433, - /* Array index: 0x1572 */ 0x8778,0x6977, - /* Array index: 0x1572 */ 0x877F,0x4768, - /* Array index: 0x1572 */ 0x8782,0x6A27, - /* Array index: 0x1572 */ 0x878D,0x4D3B, - /* Array index: 0x1572 */ 0x879F,0x6A26, - /* Array index: 0x1572 */ 0x87A2,0x6A25, - /* Array index: 0x1572 */ 0x87AB,0x6A2E, - /* Array index: 0x1572 */ 0x87AF,0x6A28, - /* Array index: 0x1572 */ 0x87B3,0x6A30, - /* Array index: 0x1572 */ 0x87BA,0x4D66, - /* Array index: 0x1572 */ 0x87BB,0x6A33, - /* Array index: 0x1572 */ 0x87BD,0x6A2A, - /* Array index: 0x1572 */ 0x87C0,0x6A2B, - /* Array index: 0x1572 */ 0x87C4,0x6A2F, - /* Array index: 0x1572 */ 0x87C6,0x6A32, - /* Array index: 0x1572 */ 0x87C7,0x6A31, - /* Array index: 0x1572 */ 0x87CB,0x6A29, - /* Array index: 0x1572 */ 0x87D0,0x6A2C, - /* Array index: 0x1572 */ 0x87D2,0x6A3D, - /* Array index: 0x1572 */ 0x87E0,0x6A36, - /* Array index: 0x1572 */ 0x87EF,0x6A34, - /* Array index: 0x1572 */ 0x87F2,0x6A35, - /* Array index: 0x1572 */ 0x87F6,0x6A3A, - /* Array index: 0x1572 */ 0x87F7,0x6A3B, - /* Array index: 0x1572 */ 0x87F9,0x332A, - /* Array index: 0x1572 */ 0x87FB,0x3542, - /* Array index: 0x1572 */ 0x87FE,0x6A39, - /* Array index: 0x1572 */ 0x8805,0x6A24, - /* Array index: 0x1572 */ 0x8815,0x6A40, - /* Array index: 0x1572 */ 0x8816,0x6A3F, - /* Array index: 0x1572 */ 0x8827,0x6A46, - /* Array index: 0x1572 */ 0x8831,0x6A43, - /* Array index: 0x1572 */ 0x8836,0x6A44, - /* Array index: 0x1572 */ 0x8839,0x6A45, - /* Array index: 0x1572 */ 0x883B,0x6A47, - /* Array index: 0x1572 */ 0x8840,0x376C, - /* Array index: 0x1572 */ 0x8842,0x6A49, - /* Array index: 0x1572 */ 0x8844,0x6A48, - /* Array index: 0x1572 */ 0x8846,0x3D30, - /* Array index: 0x1572 */ 0x884C,0x3954, - /* Array index: 0x1572 */ 0x884D,0x5E27, - /* Array index: 0x1572 */ 0x8852,0x6A4A, - /* Array index: 0x1572 */ 0x8853,0x3D51, - /* Array index: 0x1572 */ 0x8857,0x3339, - /* Array index: 0x1572 */ 0x8859,0x6A4B, - /* Array index: 0x1572 */ 0x885B,0x3152, - /* Array index: 0x1572 */ 0x8868,0x493D, - /* Array index: 0x1572 */ 0x886B,0x6A4E, - /* Array index: 0x1572 */ 0x8870,0x3F6A, - /* Array index: 0x1572 */ 0x8872,0x6A55, - /* Array index: 0x1572 */ 0x8875,0x6A52, - /* Array index: 0x1572 */ 0x8877,0x436F, - /* Array index: 0x1572 */ 0x8888,0x3736, - /* Array index: 0x1572 */ 0x888B,0x425E, - /* Array index: 0x1572 */ 0x888D,0x6A5C, - /* Array index: 0x1572 */ 0x8892,0x6A58, - /* Array index: 0x1572 */ 0x8896,0x4235, - /* Array index: 0x1572 */ 0x8897,0x6A57, - /* Array index: 0x1572 */ 0x8899,0x6A5A, - /* Array index: 0x1572 */ 0x889E,0x6A51, - /* Array index: 0x1572 */ 0x88A2,0x6A5B, - /* Array index: 0x1572 */ 0x88A4,0x6A5D, - /* Array index: 0x1572 */ 0x88AB,0x486F, - /* Array index: 0x1572 */ 0x88AE,0x6A59, - /* Array index: 0x1572 */ 0x88B0,0x6A5E, - /* Array index: 0x1572 */ 0x88B1,0x6A60, - /* Array index: 0x1572 */ 0x88B4,0x3853, - /* Array index: 0x1572 */ 0x88B5,0x6A54, - /* Array index: 0x1572 */ 0x88B7,0x3041, - /* Array index: 0x1572 */ 0x88CF,0x4E22, - /* Array index: 0x1572 */ 0x88D4,0x6A63, - /* Array index: 0x1572 */ 0x88D5,0x4D35, - /* Array index: 0x1572 */ 0x88D8,0x6A64, - /* Array index: 0x1572 */ 0x88D9,0x6A65, - /* Array index: 0x1572 */ 0x88DC,0x4A64, - /* Array index: 0x1572 */ 0x88DD,0x6A66, - /* Array index: 0x1572 */ 0x88DF,0x3A40, - /* Array index: 0x1572 */ 0x88E1,0x4E23, - /* Array index: 0x1572 */ 0x88E8,0x6A6B, - /* Array index: 0x1572 */ 0x8902,0x6A68, - /* Array index: 0x1572 */ 0x8904,0x6A6D, - /* Array index: 0x1572 */ 0x8907,0x4A23, - /* Array index: 0x1572 */ 0x890A,0x6A6F, - /* Array index: 0x1572 */ 0x890C,0x6A6E, - /* Array index: 0x1572 */ 0x8910,0x336C, - /* Array index: 0x1572 */ 0x8912,0x4B2B, - /* Array index: 0x1572 */ 0x8913,0x6A70, - /* Array index: 0x1572 */ 0x891D,0x6A7C, - /* Array index: 0x1572 */ 0x891E,0x6A72, - /* Array index: 0x1572 */ 0x8925,0x6A73, - /* Array index: 0x1572 */ 0x892A,0x6A74, - /* Array index: 0x1572 */ 0x892B,0x6A75, - /* Array index: 0x1572 */ 0x8936,0x6A79, - /* Array index: 0x1572 */ 0x8938,0x6A7A, - /* Array index: 0x1572 */ 0x893B,0x6A78, - /* Array index: 0x1572 */ 0x8941,0x6A76, - /* Array index: 0x1572 */ 0x8943,0x6A71, - /* Array index: 0x1572 */ 0x8944,0x6A77, - /* Array index: 0x1572 */ 0x894C,0x6A7B, - /* Array index: 0x1572 */ 0x894D,0x7037, - /* Array index: 0x1572 */ 0x8956,0x3228, - /* Array index: 0x1572 */ 0x8964,0x6B22, - /* Array index: 0x1572 */ 0x8966,0x6B21, - /* Array index: 0x1572 */ 0x896A,0x6B24, - /* Array index: 0x1572 */ 0x896D,0x6B23, - /* Array index: 0x1572 */ 0x896F,0x6B25, - /* Array index: 0x1572 */ 0x8972,0x3D31, - /* Array index: 0x1572 */ 0x8974,0x6B26, - /* Array index: 0x1572 */ 0x8977,0x6B27, - /* Array index: 0x1572 */ 0x897E,0x6B28, - /* Array index: 0x1572 */ 0x897F,0x403E, - /* Array index: 0x1572 */ 0x8981,0x4D57, - /* Array index: 0x1572 */ 0x8983,0x6B29, - /* Array index: 0x1572 */ 0x898F,0x352C, - /* Array index: 0x1572 */ 0x8993,0x6B2C, - /* Array index: 0x1572 */ 0x89A1,0x6B2E, - /* Array index: 0x1572 */ 0x89AF,0x6B32, - /* Array index: 0x1572 */ 0x89B2,0x6B33, - /* Array index: 0x1572 */ 0x89B3,0x3451, - /* Array index: 0x1572 */ 0x89BA,0x6B34, - /* Array index: 0x1572 */ 0x89BD,0x6B35, - /* Array index: 0x1572 */ 0x89BF,0x6B36, - /* Array index: 0x1572 */ 0x89C0,0x6B37, - /* Array index: 0x1572 */ 0x89D2,0x3351, - /* Array index: 0x1572 */ 0x89DA,0x6B38, - /* Array index: 0x1572 */ 0x89DC,0x6B39, - /* Array index: 0x1572 */ 0x89DD,0x6B3A, - /* Array index: 0x1572 */ 0x89E3,0x3272, - /* Array index: 0x1572 */ 0x89E6,0x3F28, - /* Array index: 0x1572 */ 0x89E7,0x6B3B, - /* Array index: 0x1572 */ 0x89F4,0x6B3C, - /* Array index: 0x1572 */ 0x89F8,0x6B3D, - /* Array index: 0x1572 */ 0x8A00,0x3840, - /* Array index: 0x1572 */ 0x8A02,0x447B, - /* Array index: 0x1572 */ 0x8A03,0x6B3E, - /* Array index: 0x1572 */ 0x8A08,0x3757, - /* Array index: 0x1572 */ 0x8A0A,0x3F56, - /* Array index: 0x1572 */ 0x8A0C,0x6B41, - /* Array index: 0x1572 */ 0x8A0E,0x4624, - /* Array index: 0x1572 */ 0x8A10,0x6B40, - /* Array index: 0x1572 */ 0x8A13,0x3731, - /* Array index: 0x1572 */ 0x8A1B,0x6B42, - /* Array index: 0x1572 */ 0x8A1D,0x6B43, - /* Array index: 0x1572 */ 0x8A1F,0x3E59, - /* Array index: 0x1572 */ 0x8A23,0x376D, - /* Array index: 0x1572 */ 0x8A25,0x6B44, - /* Array index: 0x1572 */ 0x8A2A,0x4B2C, - /* Array index: 0x1572 */ 0x8A2D,0x405F, - /* Array index: 0x1572 */ 0x8A31,0x3576, - /* Array index: 0x1572 */ 0x8A33,0x4C75, - /* Array index: 0x1572 */ 0x8A34,0x414A, - /* Array index: 0x1572 */ 0x8A36,0x6B45, - /* Array index: 0x1572 */ 0x8A41,0x6B46, - /* Array index: 0x1572 */ 0x8A46,0x6B49, - /* Array index: 0x1572 */ 0x8A48,0x6B4A, - /* Array index: 0x1572 */ 0x8A5B,0x6B47, - /* Array index: 0x1572 */ 0x8A5E,0x3B6C, - /* Array index: 0x1572 */ 0x8A60,0x3153, - /* Array index: 0x1572 */ 0x8A62,0x6B4E, - /* Array index: 0x1572 */ 0x8A63,0x3758, - /* Array index: 0x1572 */ 0x8A66,0x3B6E, - /* Array index: 0x1572 */ 0x8A7C,0x6B4B, - /* Array index: 0x1572 */ 0x8A82,0x6B50, - /* Array index: 0x1572 */ 0x8A84,0x6B51, - /* Array index: 0x1572 */ 0x8A85,0x6B4F, - /* Array index: 0x1572 */ 0x8A87,0x3858, - /* Array index: 0x1572 */ 0x8A89,0x4D40, - /* Array index: 0x1572 */ 0x8A8C,0x3B6F, - /* Array index: 0x1572 */ 0x8A8D,0x4727, - /* Array index: 0x1572 */ 0x8A91,0x6B54, - /* Array index: 0x1572 */ 0x8A93,0x4040, - /* Array index: 0x1572 */ 0x8A95,0x4342, - /* Array index: 0x1572 */ 0x8A98,0x4D36, - /* Array index: 0x1572 */ 0x8A9A,0x6B57, - /* Array index: 0x1572 */ 0x8A9E,0x386C, - /* Array index: 0x1572 */ 0x8AAC,0x4062, - /* Array index: 0x1572 */ 0x8AAD,0x4649, - /* Array index: 0x1572 */ 0x8AB0,0x432F, - /* Array index: 0x1572 */ 0x8AB2,0x325D, - /* Array index: 0x1572 */ 0x8AB9,0x4870, - /* Array index: 0x1572 */ 0x8ABC,0x3543, - /* Array index: 0x1572 */ 0x8ABF,0x4434, - /* Array index: 0x1572 */ 0x8AC2,0x6B5B, - /* Array index: 0x1572 */ 0x8AC4,0x6B59, - /* Array index: 0x1572 */ 0x8AC7,0x434C, - /* Array index: 0x1572 */ 0x8AD2,0x4E4A, - /* Array index: 0x1572 */ 0x8AD6,0x4F40, - /* Array index: 0x1572 */ 0x8AEB,0x6B5D, - /* Array index: 0x1572 */ 0x8AED,0x4D21, - /* Array index: 0x1572 */ 0x8AEE,0x3B70, - /* Array index: 0x1572 */ 0x8AF1,0x6B61, - /* Array index: 0x1572 */ 0x8AF3,0x6B5E, - /* Array index: 0x1572 */ 0x8AF7,0x6B65, - /* Array index: 0x1572 */ 0x8AF8,0x3D74, - /* Array index: 0x1572 */ 0x8AFA,0x3841, - /* Array index: 0x1572 */ 0x8B07,0x6B69, - /* Array index: 0x1572 */ 0x8B0C,0x6B68, - /* Array index: 0x1572 */ 0x8B0E,0x4666, - /* Array index: 0x1572 */ 0x8B10,0x6B6D, - /* Array index: 0x1572 */ 0x8B14,0x6B62, - /* Array index: 0x1572 */ 0x8B26,0x6B72, - /* Array index: 0x1572 */ 0x8B28,0x6B75, - /* Array index: 0x1572 */ 0x8B2B,0x6B73, - /* Array index: 0x1572 */ 0x8B2C,0x4935, - /* Array index: 0x1572 */ 0x8B33,0x6B70, - /* Array index: 0x1572 */ 0x8B39,0x3660, - /* Array index: 0x1572 */ 0x8B3E,0x6B74, - /* Array index: 0x1572 */ 0x8B41,0x6B76, - /* Array index: 0x1572 */ 0x8B49,0x6B7A, - /* Array index: 0x1572 */ 0x8B4C,0x6B77, - /* Array index: 0x1572 */ 0x8B4E,0x6B79, - /* Array index: 0x1572 */ 0x8B4F,0x6B78, - /* Array index: 0x1572 */ 0x8B56,0x6B7B, - /* Array index: 0x1572 */ 0x8B5F,0x6C21, - /* Array index: 0x1572 */ 0x8B66,0x3759, - /* Array index: 0x1572 */ 0x8B77,0x386E, - /* Array index: 0x1572 */ 0x8B7D,0x6C25, - /* Array index: 0x1572 */ 0x8B80,0x6C26, - /* Array index: 0x1572 */ 0x8B83,0x3B3E, - /* Array index: 0x1572 */ 0x8B8A,0x5A4E, - /* Array index: 0x1572 */ 0x8B8C,0x6C27, - /* Array index: 0x1572 */ 0x8B8E,0x6C28, - /* Array index: 0x1572 */ 0x8B90,0x3D32, - /* Array index: 0x1572 */ 0x8B92,0x6C29, - /* Array index: 0x1572 */ 0x8B93,0x6C2A, - /* Array index: 0x1572 */ 0x8B96,0x6C2B, - /* Array index: 0x1572 */ 0x8B99,0x6C2C, - /* Array index: 0x1572 */ 0x8B9A,0x6C2D, - /* Array index: 0x1572 */ 0x8C37,0x432B, - /* Array index: 0x1572 */ 0x8C3A,0x6C2E, - /* Array index: 0x1572 */ 0x8C3F,0x6C30, - /* Array index: 0x1572 */ 0x8C41,0x6C2F, - /* Array index: 0x1572 */ 0x8C46,0x4626, - /* Array index: 0x1572 */ 0x8C48,0x6C31, - /* Array index: 0x1572 */ 0x8C4A,0x4B2D, - /* Array index: 0x1572 */ 0x8C4C,0x6C32, - /* Array index: 0x1572 */ 0x8C4E,0x6C33, - /* Array index: 0x1572 */ 0x8C50,0x6C34, - /* Array index: 0x1572 */ 0x8C55,0x6C35, - /* Array index: 0x1572 */ 0x8C5A,0x465A, - /* Array index: 0x1572 */ 0x8C61,0x3E5D, - /* Array index: 0x1572 */ 0x8C62,0x6C36, - /* Array index: 0x1572 */ 0x8C82,0x6C3A, - /* Array index: 0x1572 */ 0x8C85,0x6C3C, - /* Array index: 0x1572 */ 0x8C94,0x6C40, - /* Array index: 0x1572 */ 0x8C98,0x6C42, - /* Array index: 0x1572 */ 0x8CD1,0x4678, - /* Array index: 0x1572 */ 0x8CD3,0x4950, - /* Array index: 0x1572 */ 0x8CEA,0x3C41, - /* Array index: 0x1572 */ 0x8CED,0x4552, - /* Array index: 0x1572 */ 0x8D64,0x4056, - /* Array index: 0x1572 */ 0x8D66,0x3C4F, - /* Array index: 0x1572 */ 0x8D67,0x6C5F, - /* Array index: 0x1572 */ 0x8D6B,0x3352, - /* Array index: 0x1572 */ 0x8D6D,0x6C60, - /* Array index: 0x1572 */ 0x8D77,0x352F, - /* Array index: 0x1572 */ 0x8D81,0x6C63, - /* Array index: 0x1572 */ 0x8D85,0x4436, - /* Array index: 0x1572 */ 0x8D8A,0x315B, - /* Array index: 0x1572 */ 0x8D99,0x6C64, - /* Array index: 0x1572 */ 0x8DA3,0x3C71, - /* Array index: 0x1572 */ 0x8DA8,0x3F76, - /* Array index: 0x1572 */ 0x8DB3,0x422D, - /* Array index: 0x1572 */ 0x8DBA,0x6C67, - /* Array index: 0x1572 */ 0x8DBE,0x6C66, - /* Array index: 0x1572 */ 0x8DC2,0x6C65, - /* Array index: 0x1572 */ 0x8DCB,0x6C6D, - /* Array index: 0x1572 */ 0x8DCC,0x6C6B, - /* Array index: 0x1572 */ 0x8DCF,0x6C68, - /* Array index: 0x1572 */ 0x8DD6,0x6C6A, - /* Array index: 0x1572 */ 0x8DDA,0x6C69, - /* Array index: 0x1572 */ 0x8DDB,0x6C6C, - /* Array index: 0x1572 */ 0x8DDD,0x3577, - /* Array index: 0x1572 */ 0x8DDF,0x6C70, - /* Array index: 0x1572 */ 0x8DE1,0x4057, - /* Array index: 0x1572 */ 0x8DE3,0x6C71, - /* Array index: 0x1572 */ 0x8DE8,0x3859, - /* Array index: 0x1572 */ 0x8DEA,0x6C6E, - /* Array index: 0x1572 */ 0x8DEB,0x6C6F, - /* Array index: 0x1572 */ 0x8DEF,0x4F29, - /* Array index: 0x1572 */ 0x8DF3,0x4437, - /* Array index: 0x1572 */ 0x8DF5,0x4129, - /* Array index: 0x1572 */ 0x8DFC,0x6C72, - /* Array index: 0x1572 */ 0x8DFF,0x6C75, - /* Array index: 0x1572 */ 0x8E0F,0x4627, - /* Array index: 0x1572 */ 0x8E10,0x6C78, - /* Array index: 0x1572 */ 0x8E2A,0x6D29, - /* Array index: 0x1572 */ 0x8E30,0x6C7C, - /* Array index: 0x1572 */ 0x8E34,0x6C7D, - /* Array index: 0x1572 */ 0x8E35,0x6C7B, - /* Array index: 0x1572 */ 0x8E42,0x6C7A, - /* Array index: 0x1572 */ 0x8E44,0x447D, - /* Array index: 0x1572 */ 0x8E50,0x6D24, - /* Array index: 0x1572 */ 0x8E55,0x6D2B, - /* Array index: 0x1572 */ 0x8E59,0x6D26, - /* Array index: 0x1572 */ 0x8E5F,0x4058, - /* Array index: 0x1572 */ 0x8E60,0x6D28, - /* Array index: 0x1572 */ 0x8E63,0x6D2A, - /* Array index: 0x1572 */ 0x8E64,0x6D27, - /* Array index: 0x1572 */ 0x8E72,0x6D2D, - /* Array index: 0x1572 */ 0x8E74,0x3D33, - /* Array index: 0x1572 */ 0x8E76,0x6D2C, - /* Array index: 0x1572 */ 0x8E7C,0x6D2E, - /* Array index: 0x1572 */ 0x8E81,0x6D2F, - /* Array index: 0x1572 */ 0x8E84,0x6D32, - /* Array index: 0x1572 */ 0x8E85,0x6D31, - /* Array index: 0x1572 */ 0x8E87,0x6D30, - /* Array index: 0x1572 */ 0x8E8A,0x6D34, - /* Array index: 0x1572 */ 0x8E8B,0x6D33, - /* Array index: 0x1572 */ 0x8E8D,0x4C76, - /* Array index: 0x1572 */ 0x8E91,0x6D36, - /* Array index: 0x1572 */ 0x8E93,0x6D35, - /* Array index: 0x1572 */ 0x8E94,0x6D37, - /* Array index: 0x1572 */ 0x8E99,0x6D38, - /* Array index: 0x1572 */ 0x8EA1,0x6D3A, - /* Array index: 0x1572 */ 0x8EBE,0x6D3F, - /* Array index: 0x1572 */ 0x8EC5,0x6D40, - /* Array index: 0x1572 */ 0x8EC6,0x6D3D, - /* Array index: 0x1572 */ 0x8ED2,0x382E, - /* Array index: 0x1572 */ 0x8EDB,0x6D43, - /* Array index: 0x1572 */ 0x8EDF,0x4670, - /* Array index: 0x1572 */ 0x8EE2,0x453E, - /* Array index: 0x1572 */ 0x8EE3,0x6D44, - /* Array index: 0x1572 */ 0x8EEB,0x6D47, - /* Array index: 0x1572 */ 0x8EF8,0x3C34, - /* Array index: 0x1572 */ 0x8F03,0x3353, - /* Array index: 0x1572 */ 0x8F05,0x6D4A, - /* Array index: 0x1572 */ 0x8F09,0x3A5C, - /* Array index: 0x1572 */ 0x8F0A,0x6D49, - /* Array index: 0x1572 */ 0x8F0C,0x6D52, - /* Array index: 0x1572 */ 0x8F26,0x6D53, - /* Array index: 0x1572 */ 0x8F29,0x475A, - /* Array index: 0x1572 */ 0x8F2A,0x4E58, - /* Array index: 0x1572 */ 0x8F2F,0x3D34, - /* Array index: 0x1572 */ 0x8F33,0x6D54, - /* Array index: 0x1572 */ 0x8F38,0x4D22, - /* Array index: 0x1572 */ 0x8F39,0x6D56, - /* Array index: 0x1572 */ 0x8F3B,0x6D55, - /* Array index: 0x1572 */ 0x8F3E,0x6D59, - /* Array index: 0x1572 */ 0x8F3F,0x4D41, - /* Array index: 0x1572 */ 0x8F49,0x6D5B, - /* Array index: 0x1572 */ 0x8F57,0x6D5E, - /* Array index: 0x1572 */ 0x8F5C,0x6D5F, - /* Array index: 0x1572 */ 0x8FA3,0x6D65, - /* Array index: 0x1572 */ 0x8FA7,0x5221, - /* Array index: 0x1572 */ 0x8FA8,0x517E, - /* Array index: 0x1572 */ 0x8FB7,0x6D68, - /* Array index: 0x1572 */ 0x8FBF,0x4329, - /* Array index: 0x1572 */ 0x8FC2,0x312A, - /* Array index: 0x1572 */ 0x8FC4,0x4B78, - /* Array index: 0x1572 */ 0x8FC5,0x3F57, - /* Array index: 0x1572 */ 0x8FCE,0x375E, - /* Array index: 0x1572 */ 0x8FD1,0x3661, - /* Array index: 0x1572 */ 0x8FD4,0x4A56, - /* Array index: 0x1572 */ 0x8FDA,0x6D69, - /* Array index: 0x1572 */ 0x8FE2,0x6D6B, - /* Array index: 0x1572 */ 0x8FF4,0x6D6F, - /* Array index: 0x1572 */ 0x8FFD,0x4449, - /* Array index: 0x1572 */ 0x9000,0x4260, - /* Array index: 0x1572 */ 0x9001,0x4177, - /* Array index: 0x1572 */ 0x9003,0x4628, - /* Array index: 0x1572 */ 0x9005,0x6D70, - /* Array index: 0x1572 */ 0x9006,0x3555, - /* Array index: 0x1572 */ 0x9027,0x6D7A, - /* Array index: 0x1572 */ 0x902E,0x4261, - /* Array index: 0x1572 */ 0x9031,0x3D35, - /* Array index: 0x1572 */ 0x9032,0x3F4A, - /* Array index: 0x1572 */ 0x903C,0x492F, - /* Array index: 0x1572 */ 0x903E,0x6E27, - /* Array index: 0x1572 */ 0x9041,0x465B, - /* Array index: 0x1572 */ 0x9042,0x3F6B, - /* Array index: 0x1572 */ 0x9045,0x4359, - /* Array index: 0x1572 */ 0x905C,0x423D, - /* Array index: 0x1572 */ 0x905E,0x6E2A, - /* Array index: 0x1572 */ 0x9060,0x3173, - /* Array index: 0x1572 */ 0x9061,0x414C, - /* Array index: 0x1572 */ 0x9063,0x382F, - /* Array index: 0x1572 */ 0x9065,0x4D5A, - /* Array index: 0x1572 */ 0x9068,0x6E2B, - /* Array index: 0x1572 */ 0x9069,0x452C, - /* Array index: 0x1572 */ 0x9072,0x6E2F, - /* Array index: 0x1572 */ 0x9087,0x6D6E, - /* Array index: 0x1572 */ 0x9089,0x6E35, - /* Array index: 0x1572 */ 0x908A,0x6E34, - /* Array index: 0x1572 */ 0x908F,0x6E36, - /* Array index: 0x1572 */ 0x9091,0x4D38, - /* Array index: 0x1572 */ 0x90A3,0x4661, - /* Array index: 0x1572 */ 0x90A6,0x4B2E, - /* Array index: 0x1572 */ 0x90A8,0x6E37, - /* Array index: 0x1572 */ 0x90AA,0x3C59, - /* Array index: 0x1572 */ 0x90AF,0x6E38, - /* Array index: 0x1572 */ 0x90B1,0x6E39, - /* Array index: 0x1572 */ 0x90B5,0x6E3A, - /* Array index: 0x1572 */ 0x90B8,0x4521, - /* Array index: 0x1572 */ 0x90C1,0x306A, - /* Array index: 0x1572 */ 0x90CA,0x3959, - /* Array index: 0x1572 */ 0x90CE,0x4F3A, - /* Array index: 0x1572 */ 0x90DB,0x6E3E, - /* Array index: 0x1572 */ 0x90E1,0x3734, - /* Array index: 0x1572 */ 0x90E2,0x6E3B, - /* Array index: 0x1572 */ 0x90E4,0x6E3C, - /* Array index: 0x1572 */ 0x90E8,0x4974, - /* Array index: 0x1572 */ 0x90ED,0x3354, - /* Array index: 0x1572 */ 0x90F5,0x4D39, - /* Array index: 0x1572 */ 0x90F7,0x363F, - /* Array index: 0x1572 */ 0x90FD,0x4554, - /* Array index: 0x1572 */ 0x9102,0x6E3F, - /* Array index: 0x1572 */ 0x9112,0x6E40, - /* Array index: 0x1572 */ 0x9119,0x6E41, - /* Array index: 0x1572 */ 0x912D,0x4522, - /* Array index: 0x1572 */ 0x9130,0x6E43, - /* Array index: 0x1572 */ 0x9132,0x6E42, - /* Array index: 0x1572 */ 0x9152,0x3C72, - /* Array index: 0x1572 */ 0x9154,0x3F6C, - /* Array index: 0x1572 */ 0x9156,0x6E45, - /* Array index: 0x1572 */ 0x9158,0x6E46, - /* Array index: 0x1572 */ 0x9162,0x3F5D, - /* Array index: 0x1572 */ 0x9163,0x6E47, - /* Array index: 0x1572 */ 0x9165,0x6E48, - /* Array index: 0x1572 */ 0x9169,0x6E49, - /* Array index: 0x1572 */ 0x916A,0x4D6F, - /* Array index: 0x1572 */ 0x916C,0x3D37, - /* Array index: 0x1572 */ 0x9172,0x6E4B, - /* Array index: 0x1572 */ 0x9173,0x6E4A, - /* Array index: 0x1572 */ 0x9175,0x395A, - /* Array index: 0x1572 */ 0x9177,0x3973, - /* Array index: 0x1572 */ 0x9178,0x3B40, - /* Array index: 0x1572 */ 0x9182,0x6E4E, - /* Array index: 0x1572 */ 0x9187,0x3D66, - /* Array index: 0x1572 */ 0x9189,0x6E4D, - /* Array index: 0x1572 */ 0x918B,0x6E4C, - /* Array index: 0x1572 */ 0x918D,0x4269, - /* Array index: 0x1572 */ 0x9190,0x386F, - /* Array index: 0x1572 */ 0x9192,0x4043, - /* Array index: 0x1572 */ 0x9197,0x4830, - /* Array index: 0x1572 */ 0x919C,0x3D39, - /* Array index: 0x1572 */ 0x91A2,0x6E4F, - /* Array index: 0x1572 */ 0x91A4,0x3E5F, - /* Array index: 0x1572 */ 0x91AA,0x6E52, - /* Array index: 0x1572 */ 0x91AB,0x6E50, - /* Array index: 0x1572 */ 0x91AF,0x6E51, - /* Array index: 0x1572 */ 0x91B4,0x6E54, - /* Array index: 0x1572 */ 0x91B5,0x6E53, - /* Array index: 0x1572 */ 0x91B8,0x3E7A, - /* Array index: 0x1572 */ 0x91BA,0x6E55, - /* Array index: 0x1572 */ 0x91C0,0x6E56, - /* Array index: 0x1572 */ 0x91C1,0x6E57, - /* Array index: 0x1572 */ 0x91D6,0x6E5B, - /* Array index: 0x1572 */ 0x91D8,0x4523, - /* Array index: 0x1572 */ 0x91F5,0x6E60, - /* Array index: 0x1572 */ 0x91F6,0x6E61, - /* Array index: 0x1572 */ 0x91FC,0x6E5F, - /* Array index: 0x1572 */ 0x91FF,0x6E63, - /* Array index: 0x1572 */ 0x920D,0x465F, - /* Array index: 0x1572 */ 0x920E,0x3343, - /* Array index: 0x1572 */ 0x9211,0x6E67, - /* Array index: 0x1572 */ 0x9214,0x6E64, - /* Array index: 0x1572 */ 0x9215,0x6E66, - /* Array index: 0x1572 */ 0x921E,0x6E62, - /* Array index: 0x1572 */ 0x9229,0x6F4F, - /* Array index: 0x1572 */ 0x922C,0x6E65, - /* Array index: 0x1572 */ 0x9234,0x4E6B, - /* Array index: 0x1572 */ 0x9237,0x385A, - /* Array index: 0x1572 */ 0x923F,0x6E6F, - /* Array index: 0x1572 */ 0x9244,0x4534, - /* Array index: 0x1572 */ 0x9245,0x6E6A, - /* Array index: 0x1572 */ 0x9248,0x6E6D, - /* Array index: 0x1572 */ 0x9249,0x6E6B, - /* Array index: 0x1572 */ 0x924B,0x6E70, - /* Array index: 0x1572 */ 0x9250,0x6E71, - /* Array index: 0x1572 */ 0x9257,0x6E69, - /* Array index: 0x1572 */ 0x925A,0x6E76, - /* Array index: 0x1572 */ 0x925B,0x3174, - /* Array index: 0x1572 */ 0x925E,0x6E68, - /* Array index: 0x1572 */ 0x9262,0x482D, - /* Array index: 0x1572 */ 0x9264,0x6E6C, - /* Array index: 0x1572 */ 0x9266,0x3E60, - /* Array index: 0x1572 */ 0x9271,0x395B, - /* Array index: 0x1572 */ 0x927E,0x4B48, - /* Array index: 0x1572 */ 0x9280,0x3664, - /* Array index: 0x1572 */ 0x9283,0x3D46, - /* Array index: 0x1572 */ 0x9285,0x463C, - /* Array index: 0x1572 */ 0x9291,0x412D, - /* Array index: 0x1572 */ 0x9293,0x6E74, - /* Array index: 0x1572 */ 0x9295,0x6E6E, - /* Array index: 0x1572 */ 0x9296,0x6E73, - /* Array index: 0x1572 */ 0x92AD,0x412C, - /* Array index: 0x1572 */ 0x92B7,0x6E79, - /* Array index: 0x1572 */ 0x92B9,0x6E78, - /* Array index: 0x1572 */ 0x92CF,0x6E77, - /* Array index: 0x1572 */ 0x92D2,0x4B2F, - /* Array index: 0x1572 */ 0x92E4,0x3D7B, - /* Array index: 0x1572 */ 0x92E9,0x6E7A, - /* Array index: 0x1572 */ 0x92EA,0x4A5F, - /* Array index: 0x1572 */ 0x92ED,0x3154, - /* Array index: 0x1572 */ 0x92F2,0x4946, - /* Array index: 0x1572 */ 0x92F3,0x4372, - /* Array index: 0x1572 */ 0x92F8,0x3578, - /* Array index: 0x1572 */ 0x92FA,0x6E7C, - /* Array index: 0x1572 */ 0x92FC,0x395D, - /* Array index: 0x1572 */ 0x9306,0x3B2C, - /* Array index: 0x1572 */ 0x930F,0x6E7B, - /* Array index: 0x1572 */ 0x9310,0x3F6D, - /* Array index: 0x1572 */ 0x9320,0x3E7B, - /* Array index: 0x1572 */ 0x9322,0x6F22, - /* Array index: 0x1572 */ 0x9323,0x6F24, - /* Array index: 0x1572 */ 0x9326,0x3653, - /* Array index: 0x1572 */ 0x9328,0x4945, - /* Array index: 0x1572 */ 0x9332,0x4F3F, - /* Array index: 0x1572 */ 0x9335,0x6F26, - /* Array index: 0x1572 */ 0x933A,0x6F25, - /* Array index: 0x1572 */ 0x933B,0x6F27, - /* Array index: 0x1572 */ 0x9344,0x6E7D, - /* Array index: 0x1572 */ 0x934B,0x4669, - /* Array index: 0x1572 */ 0x934D,0x4555, - /* Array index: 0x1572 */ 0x9354,0x4457, - /* Array index: 0x1572 */ 0x9356,0x6F2C, - /* Array index: 0x1572 */ 0x935B,0x4343, - /* Array index: 0x1572 */ 0x935C,0x6F28, - /* Array index: 0x1572 */ 0x9360,0x6F29, - /* Array index: 0x1572 */ 0x936C,0x372D, - /* Array index: 0x1572 */ 0x936E,0x6F2B, - /* Array index: 0x1572 */ 0x9375,0x3830, - /* Array index: 0x1572 */ 0x937C,0x6F2A, - /* Array index: 0x1572 */ 0x937E,0x3E61, - /* Array index: 0x1572 */ 0x938C,0x3379, - /* Array index: 0x1572 */ 0x9394,0x6F30, - /* Array index: 0x1572 */ 0x9396,0x3A3F, - /* Array index: 0x1572 */ 0x9397,0x4179, - /* Array index: 0x1572 */ 0x939A,0x444A, - /* Array index: 0x1572 */ 0x93A7,0x333B, - /* Array index: 0x1572 */ 0x93B9,0x6F31, - /* Array index: 0x1572 */ 0x93C3,0x6F37, - /* Array index: 0x1572 */ 0x93C8,0x6F3A, - /* Array index: 0x1572 */ 0x93D0,0x6F39, - /* Array index: 0x1572 */ 0x93D1,0x452D, - /* Array index: 0x1572 */ 0x93DD,0x6F38, - /* Array index: 0x1572 */ 0x93E1,0x3640, - /* Array index: 0x1572 */ 0x93E4,0x6F3B, - /* Array index: 0x1572 */ 0x93E5,0x6F35, - /* Array index: 0x1572 */ 0x93E8,0x6F34, - /* Array index: 0x1572 */ 0x9403,0x6F3F, - /* Array index: 0x1572 */ 0x9407,0x6F40, - /* Array index: 0x1572 */ 0x9410,0x6F41, - /* Array index: 0x1572 */ 0x9413,0x6F3E, - /* Array index: 0x1572 */ 0x9414,0x6F3D, - /* Array index: 0x1572 */ 0x9421,0x6F45, - /* Array index: 0x1572 */ 0x942B,0x6F43, - /* Array index: 0x1572 */ 0x9435,0x6F44, - /* Array index: 0x1572 */ 0x9436,0x6F42, - /* Array index: 0x1572 */ 0x9438,0x4278, - /* Array index: 0x1572 */ 0x943A,0x6F46, - /* Array index: 0x1572 */ 0x9441,0x6F47, - /* Array index: 0x1572 */ 0x9444,0x6F49, - /* Array index: 0x1572 */ 0x945A,0x6F54, - /* Array index: 0x1572 */ 0x945B,0x6F4A, - /* Array index: 0x1572 */ 0x945E,0x6F4D, - /* Array index: 0x1572 */ 0x9460,0x6F4B, - /* Array index: 0x1572 */ 0x9462,0x6F4C, - /* Array index: 0x1572 */ 0x946A,0x6F4E, - /* Array index: 0x1572 */ 0x9470,0x6F50, - /* Array index: 0x1572 */ 0x9475,0x6F51, - /* Array index: 0x1572 */ 0x9477,0x6F52, - /* Array index: 0x1572 */ 0x9577,0x4439, - /* Array index: 0x1572 */ 0x9580,0x4C67, - /* Array index: 0x1572 */ 0x9582,0x6F59, - /* Array index: 0x1572 */ 0x9583,0x412E, - /* Array index: 0x1572 */ 0x958F,0x313C, - /* Array index: 0x1572 */ 0x9591,0x3457, - /* Array index: 0x1572 */ 0x9593,0x3456, - /* Array index: 0x1572 */ 0x9594,0x6F5C, - /* Array index: 0x1572 */ 0x9596,0x6F5D, - /* Array index: 0x1572 */ 0x9598,0x6F5E, - /* Array index: 0x1572 */ 0x9599,0x6F5F, - /* Array index: 0x1572 */ 0x95AD,0x6F63, - /* Array index: 0x1572 */ 0x95B2,0x315C, - /* Array index: 0x1572 */ 0x95B9,0x6F66, - /* Array index: 0x1572 */ 0x95BB,0x6F65, - /* Array index: 0x1572 */ 0x95BC,0x6F64, - /* Array index: 0x1572 */ 0x95BE,0x6F67, - /* Array index: 0x1572 */ 0x95C3,0x6F6A, - /* Array index: 0x1572 */ 0x95C7,0x3047, - /* Array index: 0x1572 */ 0x95CA,0x6F68, - /* Array index: 0x1572 */ 0x95CC,0x6F6C, - /* Array index: 0x1572 */ 0x95CD,0x6F6B, - /* Array index: 0x1572 */ 0x95DC,0x6F70, - /* Array index: 0x1572 */ 0x95E1,0x6F71, - /* Array index: 0x1572 */ 0x95E2,0x6F73, - /* Array index: 0x1572 */ 0x95E5,0x6F72, - /* Array index: 0x1572 */ 0x961C,0x496C, - /* Array index: 0x1572 */ 0x9621,0x6F74, - /* Array index: 0x1572 */ 0x9628,0x6F75, - /* Array index: 0x1572 */ 0x962A,0x3A65, - /* Array index: 0x1572 */ 0x962E,0x6F76, - /* Array index: 0x1572 */ 0x962F,0x6F77, - /* Array index: 0x1572 */ 0x9632,0x4B49, - /* Array index: 0x1572 */ 0x963B,0x414B, - /* Array index: 0x1572 */ 0x963F,0x3024, - /* Array index: 0x1572 */ 0x9640,0x424B, - /* Array index: 0x1572 */ 0x9642,0x6F78, - /* Array index: 0x1572 */ 0x9644,0x496D, - /* Array index: 0x1572 */ 0x966A,0x4766, - /* Array index: 0x1572 */ 0x966C,0x7025, - /* Array index: 0x1572 */ 0x9670,0x3122, - /* Array index: 0x1572 */ 0x967D,0x4D5B, - /* Array index: 0x1572 */ 0x9685,0x3679, - /* Array index: 0x1572 */ 0x9686,0x4E34, - /* Array index: 0x1572 */ 0x9688,0x3728, - /* Array index: 0x1572 */ 0x96A0,0x3123, - /* Array index: 0x1572 */ 0x96A3,0x4E59, - /* Array index: 0x1572 */ 0x96A7,0x702B, - /* Array index: 0x1572 */ 0x96A8,0x6E2E, - /* Array index: 0x1572 */ 0x96AA,0x702A, - /* Array index: 0x1572 */ 0x96D1,0x3B28, - /* Array index: 0x1572 */ 0x96D5,0x703A, - /* Array index: 0x1572 */ 0x96D6,0x6A2D, - /* Array index: 0x1572 */ 0x96D9,0x5256, - /* Array index: 0x1572 */ 0x96DB,0x3F77, - /* Array index: 0x1572 */ 0x96DC,0x7038, - /* Array index: 0x1572 */ 0x96E2,0x4E25, - /* Array index: 0x1572 */ 0x96E3,0x4671, - /* Array index: 0x1572 */ 0x96E8,0x312B, - /* Array index: 0x1572 */ 0x96EA,0x4063, - /* Array index: 0x1572 */ 0x96EB,0x3C36, - /* Array index: 0x1572 */ 0x96F0,0x4A37, - /* Array index: 0x1572 */ 0x96F2,0x3140, - /* Array index: 0x1572 */ 0x96F6,0x4E6D, - /* Array index: 0x1572 */ 0x96F7,0x4D6B, - /* Array index: 0x1572 */ 0x96F9,0x703B, - /* Array index: 0x1572 */ 0x96FB,0x4545, - /* Array index: 0x1572 */ 0x9700,0x3C7B, - /* Array index: 0x1572 */ 0x9716,0x7043, - /* Array index: 0x1572 */ 0x9719,0x7044, - /* Array index: 0x1572 */ 0x971C,0x417A, - /* Array index: 0x1572 */ 0x971E,0x3262, - /* Array index: 0x1572 */ 0x9724,0x7045, - /* Array index: 0x1572 */ 0x9727,0x4C38, - /* Array index: 0x1572 */ 0x972A,0x7046, - /* Array index: 0x1572 */ 0x9730,0x7047, - /* Array index: 0x1572 */ 0x9732,0x4F2A, - /* Array index: 0x1572 */ 0x9738,0x5B31, - /* Array index: 0x1572 */ 0x9739,0x7048, - /* Array index: 0x1572 */ 0x973D,0x7049, - /* Array index: 0x1572 */ 0x973E,0x704A, - /* Array index: 0x1572 */ 0x9742,0x704E, - /* Array index: 0x1572 */ 0x9744,0x704B, - /* Array index: 0x1572 */ 0x9746,0x704C, - /* Array index: 0x1572 */ 0x9748,0x704D, - /* Array index: 0x1572 */ 0x9749,0x704F, - /* Array index: 0x1572 */ 0x9752,0x4044, - /* Array index: 0x1572 */ 0x9756,0x4C77, - /* Array index: 0x1572 */ 0x9759,0x4045, - /* Array index: 0x1572 */ 0x975C,0x7050, - /* Array index: 0x1572 */ 0x9771,0x7057, - /* Array index: 0x1572 */ 0x9774,0x3724, - /* Array index: 0x1572 */ 0x9779,0x7058, - /* Array index: 0x1572 */ 0x977A,0x705C, - /* Array index: 0x1572 */ 0x977C,0x705A, - /* Array index: 0x1572 */ 0x9781,0x705B, - /* Array index: 0x1572 */ 0x978B,0x705E, - /* Array index: 0x1572 */ 0x978D,0x3048, - /* Array index: 0x1572 */ 0x978F,0x705F, - /* Array index: 0x1572 */ 0x9790,0x7060, - /* Array index: 0x1572 */ 0x9798,0x3E64, - /* Array index: 0x1572 */ 0x979C,0x7061, - /* Array index: 0x1572 */ 0x97A0,0x3547, - /* Array index: 0x1572 */ 0x97A3,0x7064, - /* Array index: 0x1572 */ 0x97A6,0x7063, - /* Array index: 0x1572 */ 0x97A8,0x7062, - /* Array index: 0x1572 */ 0x97AB,0x6B71, - /* Array index: 0x1572 */ 0x97AD,0x4A5C, - /* Array index: 0x1572 */ 0x97B3,0x7065, - /* Array index: 0x1572 */ 0x97B4,0x7066, - /* Array index: 0x1572 */ 0x97C3,0x7067, - /* Array index: 0x1572 */ 0x97C6,0x7068, - /* Array index: 0x1572 */ 0x97C8,0x7069, - /* Array index: 0x1572 */ 0x97CB,0x706A, - /* Array index: 0x1572 */ 0x97D3,0x345A, - /* Array index: 0x1572 */ 0x97DC,0x706B, - /* Array index: 0x1572 */ 0x97ED,0x706C, - /* Array index: 0x1572 */ 0x97EE,0x4723, - /* Array index: 0x1572 */ 0x97FB,0x3124, - /* Array index: 0x1572 */ 0x980C,0x7073, - /* Array index: 0x1572 */ 0x9817,0x3F7C, - /* Array index: 0x1572 */ 0x9818,0x4E4E, - /* Array index: 0x1572 */ 0x981A,0x375B, - /* Array index: 0x1572 */ 0x9821,0x7076, - /* Array index: 0x1572 */ 0x9824,0x7075, - /* Array index: 0x1572 */ 0x982C,0x4B4B, - /* Array index: 0x1572 */ 0x982D,0x462C, - /* Array index: 0x1572 */ 0x9834,0x3150, - /* Array index: 0x1572 */ 0x9846,0x7079, - /* Array index: 0x1572 */ 0x9854,0x3469, - /* Array index: 0x1572 */ 0x9855,0x3832, - /* Array index: 0x1572 */ 0x9858,0x346A, - /* Array index: 0x1572 */ 0x985B,0x453F, - /* Array index: 0x1572 */ 0x985E,0x4E60, - /* Array index: 0x1572 */ 0x9867,0x385C, - /* Array index: 0x1572 */ 0x986B,0x707C, - /* Array index: 0x1572 */ 0x98A8,0x4977, - /* Array index: 0x1572 */ 0x98AA,0x7124, - /* Array index: 0x1572 */ 0x98AF,0x7125, - /* Array index: 0x1572 */ 0x98B1,0x7126, - /* Array index: 0x1572 */ 0x98B6,0x7127, - /* Array index: 0x1572 */ 0x98C3,0x7129, - /* Array index: 0x1572 */ 0x98C4,0x7128, - /* Array index: 0x1572 */ 0x98C6,0x712A, - /* Array index: 0x1572 */ 0x98DB,0x4874, - /* Array index: 0x1572 */ 0x98DC,0x664C, - /* Array index: 0x1572 */ 0x98DF,0x3F29, - /* Array index: 0x1572 */ 0x98E2,0x3532, - /* Array index: 0x1572 */ 0x98E9,0x712B, - /* Array index: 0x1572 */ 0x98F2,0x307B, - /* Array index: 0x1572 */ 0x98F4,0x303B, - /* Array index: 0x1572 */ 0x9903,0x712D, - /* Array index: 0x1572 */ 0x9905,0x4C5F, - /* Array index: 0x1572 */ 0x9909,0x712E, - /* Array index: 0x1572 */ 0x990A,0x4D5C, - /* Array index: 0x1572 */ 0x990C,0x3142, - /* Array index: 0x1572 */ 0x9918,0x7131, - /* Array index: 0x1572 */ 0x9924,0x7135, - /* Array index: 0x1572 */ 0x9928,0x345B, - /* Array index: 0x1572 */ 0x992C,0x7137, - /* Array index: 0x1572 */ 0x992E,0x7138, - /* Array index: 0x1572 */ 0x993D,0x7139, - /* Array index: 0x1572 */ 0x993E,0x713A, - /* Array index: 0x1572 */ 0x9942,0x713B, - /* Array index: 0x1572 */ 0x9945,0x713D, - /* Array index: 0x1572 */ 0x9949,0x713C, - /* Array index: 0x1572 */ 0x994B,0x713F, - /* Array index: 0x1572 */ 0x994C,0x7142, - /* Array index: 0x1572 */ 0x9955,0x7143, - /* Array index: 0x1572 */ 0x9957,0x3642, - /* Array index: 0x1572 */ 0x99A5,0x7146, - /* Array index: 0x1572 */ 0x99A8,0x333E, - /* Array index: 0x1572 */ 0x99B3,0x435A, - /* Array index: 0x1572 */ 0x99B4,0x466B, - /* Array index: 0x1572 */ 0x99BC,0x7149, - /* Array index: 0x1572 */ 0x99C1,0x477D, - /* Array index: 0x1572 */ 0x99D5,0x326F, - /* Array index: 0x1572 */ 0x99D8,0x714D, - /* Array index: 0x1572 */ 0x99DB,0x714B, - /* Array index: 0x1572 */ 0x99DD,0x714C, - /* Array index: 0x1572 */ 0x99DF,0x714A, - /* Array index: 0x1572 */ 0x99E2,0x7158, - /* Array index: 0x1572 */ 0x99ED,0x714F, - /* Array index: 0x1572 */ 0x99EE,0x7150, - /* Array index: 0x1572 */ 0x99F1,0x7151, - /* Array index: 0x1572 */ 0x99F2,0x7152, - /* Array index: 0x1572 */ 0x99F8,0x7154, - /* Array index: 0x1572 */ 0x99FB,0x7153, - /* Array index: 0x1572 */ 0x99FF,0x3D59, - /* Array index: 0x1572 */ 0x9A01,0x7155, - /* Array index: 0x1572 */ 0x9A05,0x7157, - /* Array index: 0x1572 */ 0x9A0E,0x3533, - /* Array index: 0x1572 */ 0x9A0F,0x7156, - /* Array index: 0x1572 */ 0x9A12,0x417B, - /* Array index: 0x1572 */ 0x9A13,0x3833, - /* Array index: 0x1572 */ 0x9A19,0x7159, - /* Array index: 0x1572 */ 0x9A28,0x424D, - /* Array index: 0x1572 */ 0x9A2B,0x715A, - /* Array index: 0x1572 */ 0x9A30,0x462D, - /* Array index: 0x1572 */ 0x9A37,0x715B, - /* Array index: 0x1572 */ 0x9A3E,0x7160, - /* Array index: 0x1572 */ 0x9A40,0x715E, - /* Array index: 0x1572 */ 0x9A42,0x715D, - /* Array index: 0x1572 */ 0x9A43,0x715F, - /* Array index: 0x1572 */ 0x9A45,0x715C, - /* Array index: 0x1572 */ 0x9A4D,0x7162, - /* Array index: 0x1572 */ 0x9A55,0x7161, - /* Array index: 0x1572 */ 0x9A57,0x7164, - /* Array index: 0x1572 */ 0x9A5A,0x3643, - /* Array index: 0x1572 */ 0x9A5B,0x7163, - /* Array index: 0x1572 */ 0x9A5F,0x7165, - /* Array index: 0x1572 */ 0x9A62,0x7166, - /* Array index: 0x1572 */ 0x9A64,0x7168, - /* Array index: 0x1572 */ 0x9A65,0x7167, - /* Array index: 0x1572 */ 0x9AA8,0x397C, - /* Array index: 0x1572 */ 0x9AAD,0x716C, - /* Array index: 0x1572 */ 0x9AB0,0x716D, - /* Array index: 0x1572 */ 0x9AB8,0x333C, - /* Array index: 0x1572 */ 0x9ABC,0x716E, - /* Array index: 0x1572 */ 0x9AC0,0x716F, - /* Array index: 0x1572 */ 0x9AC4,0x3F71, - /* Array index: 0x1572 */ 0x9ACF,0x7170, - /* Array index: 0x1572 */ 0x9AD1,0x7171, - /* Array index: 0x1572 */ 0x9AD3,0x7172, - /* Array index: 0x1572 */ 0x9AD4,0x7173, - /* Array index: 0x1572 */ 0x9AD8,0x3962, - /* Array index: 0x1572 */ 0x9ADE,0x7174, - /* Array index: 0x1572 */ 0x9ADF,0x7175, - /* Array index: 0x1572 */ 0x9AE2,0x7176, - /* Array index: 0x1572 */ 0x9AE3,0x7177, - /* Array index: 0x1572 */ 0x9AE6,0x7178, - /* Array index: 0x1572 */ 0x9AF4,0x717C, - /* Array index: 0x1572 */ 0x9AF7,0x717E, - /* Array index: 0x1572 */ 0x9AFB,0x7221, - /* Array index: 0x1572 */ 0x9B06,0x7222, - /* Array index: 0x1572 */ 0x9B18,0x7223, - /* Array index: 0x1572 */ 0x9B1A,0x7224, - /* Array index: 0x1572 */ 0x9B1F,0x7225, - /* Array index: 0x1572 */ 0x9B22,0x7226, - /* Array index: 0x1572 */ 0x9B23,0x7227, - /* Array index: 0x1572 */ 0x9B3B,0x6478, - /* Array index: 0x1572 */ 0x9B3C,0x3534, - /* Array index: 0x1572 */ 0x9B54,0x4B62, - /* Array index: 0x1572 */ 0x9B58,0x7236, - /* Array index: 0x1572 */ 0x9B5A,0x357B, - /* Array index: 0x1572 */ 0x9B6F,0x4F25, - /* Array index: 0x1572 */ 0x9B74,0x7237, - /* Array index: 0x1572 */ 0x9B83,0x7239, - /* Array index: 0x1572 */ 0x9B8E,0x303E, - /* Array index: 0x1572 */ 0x9B9F,0x723D, - /* Array index: 0x1572 */ 0x9BA0,0x723E, - /* Array index: 0x1572 */ 0x9BA8,0x723F, - /* Array index: 0x1572 */ 0x9BB4,0x7240, - /* Array index: 0x1572 */ 0x9BB9,0x7243, - /* Array index: 0x1572 */ 0x9BC0,0x7241, - /* Array index: 0x1572 */ 0x9BC6,0x7244, - /* Array index: 0x1572 */ 0x9BC9,0x3871, - /* Array index: 0x1572 */ 0x9BCA,0x7242, - /* Array index: 0x1572 */ 0x9BCF,0x7245, - /* Array index: 0x1572 */ 0x9BD1,0x7246, - /* Array index: 0x1572 */ 0x9BD2,0x7247, - /* Array index: 0x1572 */ 0x9BD4,0x724B, - /* Array index: 0x1572 */ 0x9BD6,0x3B2A, - /* Array index: 0x1572 */ 0x9BDB,0x4264, - /* Array index: 0x1572 */ 0x9BE8,0x375F, - /* Array index: 0x1572 */ 0x9BF5,0x3033, - /* Array index: 0x1572 */ 0x9C04,0x725A, - /* Array index: 0x1572 */ 0x9C1B,0x725C, - /* Array index: 0x1572 */ 0x9C21,0x725F, - /* Array index: 0x1572 */ 0x9C24,0x725E, - /* Array index: 0x1572 */ 0x9C25,0x725D, - /* Array index: 0x1572 */ 0x9C3E,0x7264, - /* Array index: 0x1572 */ 0x9C52,0x4B70, - /* Array index: 0x1572 */ 0x9C57,0x4E5A, - /* Array index: 0x1572 */ 0x9C5A,0x7265, - /* Array index: 0x1572 */ 0x9C60,0x7266, - /* Array index: 0x1572 */ 0x9C67,0x7267, - /* Array index: 0x1572 */ 0x9C76,0x7268, - /* Array index: 0x1572 */ 0x9C78,0x7269, - /* Array index: 0x1572 */ 0x9CE5,0x443B, - /* Array index: 0x1572 */ 0x9CE7,0x726A, - /* Array index: 0x1572 */ 0x9CE9,0x4837, - /* Array index: 0x1572 */ 0x9CEB,0x726F, - /* Array index: 0x1572 */ 0x9CEC,0x726B, - /* Array index: 0x1572 */ 0x9CF0,0x726C, - /* Array index: 0x1572 */ 0x9CF3,0x4B31, - /* Array index: 0x1572 */ 0x9CF4,0x4C44, - /* Array index: 0x1572 */ 0x9CF6,0x4650, - /* Array index: 0x1572 */ 0x9D03,0x7270, - /* Array index: 0x1572 */ 0x9D0E,0x322A, - /* Array index: 0x1572 */ 0x9D12,0x7279, - /* Array index: 0x1572 */ 0x9D15,0x7278, - /* Array index: 0x1572 */ 0x9D1B,0x3175, - /* Array index: 0x1572 */ 0x9D1F,0x7276, - /* Array index: 0x1572 */ 0x9D23,0x7275, - /* Array index: 0x1572 */ 0x9D26,0x7273, - /* Array index: 0x1572 */ 0x9D3B,0x3963, - /* Array index: 0x1572 */ 0x9D3E,0x727C, - /* Array index: 0x1572 */ 0x9D3F,0x727B, - /* Array index: 0x1572 */ 0x9D41,0x727A, - /* Array index: 0x1572 */ 0x9D44,0x7277, - /* Array index: 0x1572 */ 0x9D46,0x727D, - /* Array index: 0x1572 */ 0x9D48,0x727E, - /* Array index: 0x1572 */ 0x9D50,0x7325, - /* Array index: 0x1572 */ 0x9D51,0x7324, - /* Array index: 0x1572 */ 0x9D59,0x7326, - /* Array index: 0x1572 */ 0x9D64,0x7323, - /* Array index: 0x1572 */ 0x9D6C,0x4B32, - /* Array index: 0x1572 */ 0x9D6F,0x732B, - /* Array index: 0x1572 */ 0x9D72,0x7327, - /* Array index: 0x1572 */ 0x9D7A,0x732C, - /* Array index: 0x1572 */ 0x9D87,0x7329, - /* Array index: 0x1572 */ 0x9D89,0x7328, - /* Array index: 0x1572 */ 0x9D8F,0x375C, - /* Array index: 0x1572 */ 0x9D9A,0x732D, - /* Array index: 0x1572 */ 0x9DA4,0x732E, - /* Array index: 0x1572 */ 0x9DA9,0x732F, - /* Array index: 0x1572 */ 0x9DAB,0x732A, - /* Array index: 0x1572 */ 0x9DAF,0x7274, - /* Array index: 0x1572 */ 0x9DB2,0x7330, - /* Array index: 0x1572 */ 0x9DB4,0x4461, - /* Array index: 0x1572 */ 0x9DB8,0x7334, - /* Array index: 0x1572 */ 0x9DBA,0x7335, - /* Array index: 0x1572 */ 0x9DBB,0x7333, - /* Array index: 0x1572 */ 0x9DC1,0x7332, - /* Array index: 0x1572 */ 0x9DC2,0x7338, - /* Array index: 0x1572 */ 0x9DC4,0x7331, - /* Array index: 0x1572 */ 0x9DC6,0x7336, - /* Array index: 0x1572 */ 0x9DCF,0x7337, - /* Array index: 0x1572 */ 0x9DD3,0x733A, - /* Array index: 0x1572 */ 0x9DD9,0x7339, - /* Array index: 0x1572 */ 0x9DE6,0x733C, - /* Array index: 0x1572 */ 0x9DED,0x733D, - /* Array index: 0x1572 */ 0x9DEF,0x733E, - /* Array index: 0x1572 */ 0x9DF2,0x4F49, - /* Array index: 0x1572 */ 0x9DFD,0x733F, - /* Array index: 0x1572 */ 0x9E1A,0x7340, - /* Array index: 0x1572 */ 0x9E1B,0x7341, - /* Array index: 0x1572 */ 0x9E1E,0x7342, - /* Array index: 0x1572 */ 0x9E75,0x7343, - /* Array index: 0x1572 */ 0x9E78,0x3834, - /* Array index: 0x1572 */ 0x9E79,0x7344, - /* Array index: 0x1572 */ 0x9E7D,0x7345, - /* Array index: 0x1572 */ 0x9E7F,0x3C2F, - /* Array index: 0x1572 */ 0x9E81,0x7346, - /* Array index: 0x1572 */ 0x9E88,0x7347, - /* Array index: 0x1572 */ 0x9E8B,0x7348, - /* Array index: 0x1572 */ 0x9E8C,0x7349, - /* Array index: 0x1572 */ 0x9E9D,0x734D, - /* Array index: 0x1572 */ 0x9E9F,0x4E5B, - /* Array index: 0x1572 */ 0x9EA5,0x734E, - /* Array index: 0x1572 */ 0x9EA6,0x477E, - /* Array index: 0x1572 */ 0x9EA9,0x734F, - /* Array index: 0x1572 */ 0x9EAA,0x7351, - /* Array index: 0x1572 */ 0x9EAD,0x7352, - /* Array index: 0x1572 */ 0x9EC4,0x322B, - /* Array index: 0x1572 */ 0x9EE5,0x735D, - /* Array index: 0x1572 */ 0x9EE8,0x735E, - /* Array index: 0x1572 */ 0x9EEF,0x735F, - /* Array index: 0x1572 */ 0x9EF4,0x7360, - /* Array index: 0x1572 */ 0x9EF6,0x7361, - /* Array index: 0x1572 */ 0x9EF7,0x7362, - /* Array index: 0x1572 */ 0x9F07,0x7367, - /* Array index: 0x1572 */ 0x9F08,0x7368, - /* Array index: 0x1572 */ 0x9F0E,0x4524, - /* Array index: 0x1572 */ 0x9F13,0x385D, - /* Array index: 0x1572 */ 0x9F15,0x736A, - /* Array index: 0x1572 */ 0x9F20,0x414D, - /* Array index: 0x1572 */ 0x9F21,0x736B, - /* Array index: 0x1572 */ 0x9F2C,0x736C, - /* Array index: 0x1572 */ 0x9F3B,0x4921, - /* Array index: 0x1572 */ 0x9F3E,0x736D, - /* Array index: 0x1572 */ 0x9F4A,0x736E, - /* Array index: 0x1572 */ 0x9F4B,0x6337, - /* Array index: 0x1572 */ 0x9F4E,0x6C5A, - /* Array index: 0x1572 */ 0x9F4F,0x706D, - /* Array index: 0x1572 */ 0x9F52,0x736F, - /* Array index: 0x1572 */ 0x9F54,0x7370, - /* Array index: 0x1572 */ 0x9F6A,0x7378, - /* Array index: 0x1572 */ 0x9F6C,0x7377, - /* Array index: 0x1572 */ 0x9F72,0x737A, - /* Array index: 0x1572 */ 0x9F76,0x737B, - /* Array index: 0x1572 */ 0x9F77,0x7379, - /* Array index: 0x1572 */ 0x9F8D,0x4E36, - /* Array index: 0x1572 */ 0x9F95,0x737C, - /* Array index: 0x1572 */ 0x9F9C,0x737D, - /* Array index: 0x1572 */ 0x9F9D,0x6354, - /* Array index: 0x1572 */ 0x9FA0,0x737E, - /* Array index: 0x1572 */ 0xFFE3,0x2131, - /* Array index: 0x1572 */ 0xFFE5,0x216F, -}; - -#endif /* ICONV_FROM_UCS_CCS_JIS_X0208_1990 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * jis_x0208_1990 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_jis_x0208_1990 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_JIS_X0208_1990, /* CCS name */ - TABLE_16BIT, /* Table bits */ -#if defined (ICONV_FROM_UCS_CCS_JIS_X0208_1990) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&from_ucs_size_jis_x0208_1990, /* UCS -> jis_x0208_1990 table size-optimized table */ -#elif defined (ICONV_FROM_UCS_CCS_JIS_X0208_1990) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&from_ucs_speed_jis_x0208_1990, /* UCS -> jis_x0208_1990 table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -#if defined (ICONV_TO_UCS_CCS_JIS_X0208_1990) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&to_ucs_size_jis_x0208_1990 /* jis_x0208_1990 -> UCS table speed-optimized table */ -#elif defined (ICONV_TO_UCS_CCS_JIS_X0208_1990) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&to_ucs_speed_jis_x0208_1990 /* jis_x0208_1990 -> UCS table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_JIS_X0208_1990) || ... */ - diff --git a/lib/iconv/ccs/jis_x0212_1990.c b/lib/iconv/ccs/jis_x0212_1990.c deleted file mode 100644 index 613de7d..0000000 --- a/lib/iconv/ccs/jis_x0212_1990.c +++ /dev/null @@ -1,11385 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for jis_x0212_1990 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_JIS_X0212_1990) \ - || defined (ICONV_FROM_UCS_CCS_JIS_X0212_1990) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -/* - * 16-bit jis_x0212_1990 -> UCS speed-optimized table (35328 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_JIS_X0212_1990) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_speed_jis_x0212_1990[] = -{ - /* Heading Block */ - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,0x0100,INVBLK,INVBLK,INVBLK,0x0200,0x0300, - INVBLK,0x0400,0x0500,0x0600,INVBLK,INVBLK,INVBLK,INVBLK, - 0x0700,0x0800,0x0900,0x0A00,0x0B00,0x0C00,0x0D00,0x0E00, - 0x0F00,0x1000,0x1100,0x1200,0x1300,0x1400,0x1500,0x1600, - 0x1700,0x1800,0x1900,0x1A00,0x1B00,0x1C00,0x1D00,0x1E00, - 0x1F00,0x2000,0x2100,0x2200,0x2300,0x2400,0x2500,0x2600, - 0x2700,0x2800,0x2900,0x2A00,0x2B00,0x2C00,0x2D00,0x2E00, - 0x2F00,0x3000,0x3100,0x3200,0x3300,0x3400,0x3500,0x3600, - 0x3700,0x3800,0x3900,0x3A00,0x3B00,0x3C00,0x3D00,0x3E00, - 0x3F00,0x4000,0x4100,0x4200,0x4300,0x4400,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - /* Block 35, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x02D8, - 0x02C7,0x00B8,0x02D9,0x02DD,0x00AF,0x02DB,0x02DA,0x007E, - 0x0384,0x0385,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x00A1,0x00A6,0x00BF,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x00BA,0x00AA,0x00A9,0x00AE,0x2122, - 0x00A4,0x2116,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 39, Array index 0x0200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x0386,0x0388,0x0389,0x038A,0x03AA,INVALC,0x038C, - INVALC,0x038E,0x03AB,INVALC,0x038F,INVALC,INVALC,INVALC, - INVALC,0x03AC,0x03AD,0x03AE,0x03AF,0x03CA,0x0390,0x03CC, - 0x03C2,0x03CD,0x03CB,0x03B0,0x03CE,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 40, Array index 0x0300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x0402,0x0403,0x0404,0x0405,0x0406,0x0407, - 0x0408,0x0409,0x040A,0x040B,0x040C,0x040E,0x040F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x0452,0x0453,0x0454,0x0455,0x0456,0x0457, - 0x0458,0x0459,0x045A,0x045B,0x045C,0x045E,0x045F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 42, Array index 0x0400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x00C6,0x0110,INVALC,0x0126,INVALC,0x0132,INVALC, - 0x0141,0x013F,INVALC,0x014A,0x00D8,0x0152,INVALC,0x0166, - 0x00DE,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x00E6,0x0111,0x00F0,0x0127,0x0131,0x0133,0x0138, - 0x0142,0x0140,0x0149,0x014B,0x00F8,0x0153,0x00DF,0x0167, - 0x00FE,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 43, Array index 0x0500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x00C1,0x00C0,0x00C4,0x00C2,0x0102,0x01CD,0x0100, - 0x0104,0x00C5,0x00C3,0x0106,0x0108,0x010C,0x00C7,0x010A, - 0x010E,0x00C9,0x00C8,0x00CB,0x00CA,0x011A,0x0116,0x0112, - 0x0118,INVALC,0x011C,0x011E,0x0122,0x0120,0x0124,0x00CD, - 0x00CC,0x00CF,0x00CE,0x01CF,0x0130,0x012A,0x012E,0x0128, - 0x0134,0x0136,0x0139,0x013D,0x013B,0x0143,0x0147,0x0145, - 0x00D1,0x00D3,0x00D2,0x00D6,0x00D4,0x01D1,0x0150,0x014C, - 0x00D5,0x0154,0x0158,0x0156,0x015A,0x015C,0x0160,0x015E, - 0x0164,0x0162,0x00DA,0x00D9,0x00DC,0x00DB,0x016C,0x01D3, - 0x0170,0x016A,0x0172,0x016E,0x0168,0x01D7,0x01DB,0x01D9, - 0x01D5,0x0174,0x00DD,0x0178,0x0176,0x0179,0x017D,0x017B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 44, Array index 0x0600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x00E1,0x00E0,0x00E4,0x00E2,0x0103,0x01CE,0x0101, - 0x0105,0x00E5,0x00E3,0x0107,0x0109,0x010D,0x00E7,0x010B, - 0x010F,0x00E9,0x00E8,0x00EB,0x00EA,0x011B,0x0117,0x0113, - 0x0119,0x01F5,0x011D,0x011F,INVALC,0x0121,0x0125,0x00ED, - 0x00EC,0x00EF,0x00EE,0x01D0,INVALC,0x012B,0x012F,0x0129, - 0x0135,0x0137,0x013A,0x013E,0x013C,0x0144,0x0148,0x0146, - 0x00F1,0x00F3,0x00F2,0x00F6,0x00F4,0x01D2,0x0151,0x014D, - 0x00F5,0x0155,0x0159,0x0157,0x015B,0x015D,0x0161,0x015F, - 0x0165,0x0163,0x00FA,0x00F9,0x00FC,0x00FB,0x016D,0x01D4, - 0x0171,0x016B,0x0173,0x016F,0x0169,0x01D8,0x01DC,0x01DA, - 0x01D6,0x0175,0x00FD,0x00FF,0x0177,0x017A,0x017E,0x017C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 49, Array index 0x0700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E02,0x4E04,0x4E05,0x4E0C,0x4E12,0x4E1F,0x4E23, - 0x4E24,0x4E28,0x4E2B,0x4E2E,0x4E2F,0x4E30,0x4E35,0x4E40, - 0x4E41,0x4E44,0x4E47,0x4E51,0x4E5A,0x4E5C,0x4E63,0x4E68, - 0x4E69,0x4E74,0x4E75,0x4E79,0x4E7F,0x4E8D,0x4E96,0x4E97, - 0x4E9D,0x4EAF,0x4EB9,0x4EC3,0x4ED0,0x4EDA,0x4EDB,0x4EE0, - 0x4EE1,0x4EE2,0x4EE8,0x4EEF,0x4EF1,0x4EF3,0x4EF5,0x4EFD, - 0x4EFE,0x4EFF,0x4F00,0x4F02,0x4F03,0x4F08,0x4F0B,0x4F0C, - 0x4F12,0x4F15,0x4F16,0x4F17,0x4F19,0x4F2E,0x4F31,0x4F60, - 0x4F33,0x4F35,0x4F37,0x4F39,0x4F3B,0x4F3E,0x4F40,0x4F42, - 0x4F48,0x4F49,0x4F4B,0x4F4C,0x4F52,0x4F54,0x4F56,0x4F58, - 0x4F5F,0x4F63,0x4F6A,0x4F6C,0x4F6E,0x4F71,0x4F77,0x4F78, - 0x4F79,0x4F7A,0x4F7D,0x4F7E,0x4F81,0x4F82,0x4F84,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 50, Array index 0x0800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F85,0x4F89,0x4F8A,0x4F8C,0x4F8E,0x4F90,0x4F92, - 0x4F93,0x4F94,0x4F97,0x4F99,0x4F9A,0x4F9E,0x4F9F,0x4FB2, - 0x4FB7,0x4FB9,0x4FBB,0x4FBC,0x4FBD,0x4FBE,0x4FC0,0x4FC1, - 0x4FC5,0x4FC6,0x4FC8,0x4FC9,0x4FCB,0x4FCC,0x4FCD,0x4FCF, - 0x4FD2,0x4FDC,0x4FE0,0x4FE2,0x4FF0,0x4FF2,0x4FFC,0x4FFD, - 0x4FFF,0x5000,0x5001,0x5004,0x5007,0x500A,0x500C,0x500E, - 0x5010,0x5013,0x5017,0x5018,0x501B,0x501C,0x501D,0x501E, - 0x5022,0x5027,0x502E,0x5030,0x5032,0x5033,0x5035,0x5040, - 0x5041,0x5042,0x5045,0x5046,0x504A,0x504C,0x504E,0x5051, - 0x5052,0x5053,0x5057,0x5059,0x505F,0x5060,0x5062,0x5063, - 0x5066,0x5067,0x506A,0x506D,0x5070,0x5071,0x503B,0x5081, - 0x5083,0x5084,0x5086,0x508A,0x508E,0x508F,0x5090,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 51, Array index 0x0900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5092,0x5093,0x5094,0x5096,0x509B,0x509C,0x509E, - 0x509F,0x50A0,0x50A1,0x50A2,0x50AA,0x50AF,0x50B0,0x50B9, - 0x50BA,0x50BD,0x50C0,0x50C3,0x50C4,0x50C7,0x50CC,0x50CE, - 0x50D0,0x50D3,0x50D4,0x50D8,0x50DC,0x50DD,0x50DF,0x50E2, - 0x50E4,0x50E6,0x50E8,0x50E9,0x50EF,0x50F1,0x50F6,0x50FA, - 0x50FE,0x5103,0x5106,0x5107,0x5108,0x510B,0x510C,0x510D, - 0x510E,0x50F2,0x5110,0x5117,0x5119,0x511B,0x511C,0x511D, - 0x511E,0x5123,0x5127,0x5128,0x512C,0x512D,0x512F,0x5131, - 0x5133,0x5134,0x5135,0x5138,0x5139,0x5142,0x514A,0x514F, - 0x5153,0x5155,0x5157,0x5158,0x515F,0x5164,0x5166,0x517E, - 0x5183,0x5184,0x518B,0x518E,0x5198,0x519D,0x51A1,0x51A3, - 0x51AD,0x51B8,0x51BA,0x51BC,0x51BE,0x51BF,0x51C2,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 52, Array index 0x0A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x51C8,0x51CF,0x51D1,0x51D2,0x51D3,0x51D5,0x51D8, - 0x51DE,0x51E2,0x51E5,0x51EE,0x51F2,0x51F3,0x51F4,0x51F7, - 0x5201,0x5202,0x5205,0x5212,0x5213,0x5215,0x5216,0x5218, - 0x5222,0x5228,0x5231,0x5232,0x5235,0x523C,0x5245,0x5249, - 0x5255,0x5257,0x5258,0x525A,0x525C,0x525F,0x5260,0x5261, - 0x5266,0x526E,0x5277,0x5278,0x5279,0x5280,0x5282,0x5285, - 0x528A,0x528C,0x5293,0x5295,0x5296,0x5297,0x5298,0x529A, - 0x529C,0x52A4,0x52A5,0x52A6,0x52A7,0x52AF,0x52B0,0x52B6, - 0x52B7,0x52B8,0x52BA,0x52BB,0x52BD,0x52C0,0x52C4,0x52C6, - 0x52C8,0x52CC,0x52CF,0x52D1,0x52D4,0x52D6,0x52DB,0x52DC, - 0x52E1,0x52E5,0x52E8,0x52E9,0x52EA,0x52EC,0x52F0,0x52F1, - 0x52F4,0x52F6,0x52F7,0x5300,0x5303,0x530A,0x530B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 53, Array index 0x0B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x530C,0x5311,0x5313,0x5318,0x531B,0x531C,0x531E, - 0x531F,0x5325,0x5327,0x5328,0x5329,0x532B,0x532C,0x532D, - 0x5330,0x5332,0x5335,0x533C,0x533D,0x533E,0x5342,0x534C, - 0x534B,0x5359,0x535B,0x5361,0x5363,0x5365,0x536C,0x536D, - 0x5372,0x5379,0x537E,0x5383,0x5387,0x5388,0x538E,0x5393, - 0x5394,0x5399,0x539D,0x53A1,0x53A4,0x53AA,0x53AB,0x53AF, - 0x53B2,0x53B4,0x53B5,0x53B7,0x53B8,0x53BA,0x53BD,0x53C0, - 0x53C5,0x53CF,0x53D2,0x53D3,0x53D5,0x53DA,0x53DD,0x53DE, - 0x53E0,0x53E6,0x53E7,0x53F5,0x5402,0x5413,0x541A,0x5421, - 0x5427,0x5428,0x542A,0x542F,0x5431,0x5434,0x5435,0x5443, - 0x5444,0x5447,0x544D,0x544F,0x545E,0x5462,0x5464,0x5466, - 0x5467,0x5469,0x546B,0x546D,0x546E,0x5474,0x547F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 54, Array index 0x0C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5481,0x5483,0x5485,0x5488,0x5489,0x548D,0x5491, - 0x5495,0x5496,0x549C,0x549F,0x54A1,0x54A6,0x54A7,0x54A9, - 0x54AA,0x54AD,0x54AE,0x54B1,0x54B7,0x54B9,0x54BA,0x54BB, - 0x54BF,0x54C6,0x54CA,0x54CD,0x54CE,0x54E0,0x54EA,0x54EC, - 0x54EF,0x54F6,0x54FC,0x54FE,0x54FF,0x5500,0x5501,0x5505, - 0x5508,0x5509,0x550C,0x550D,0x550E,0x5515,0x552A,0x552B, - 0x5532,0x5535,0x5536,0x553B,0x553C,0x553D,0x5541,0x5547, - 0x5549,0x554A,0x554D,0x5550,0x5551,0x5558,0x555A,0x555B, - 0x555E,0x5560,0x5561,0x5564,0x5566,0x557F,0x5581,0x5582, - 0x5586,0x5588,0x558E,0x558F,0x5591,0x5592,0x5593,0x5594, - 0x5597,0x55A3,0x55A4,0x55AD,0x55B2,0x55BF,0x55C1,0x55C3, - 0x55C6,0x55C9,0x55CB,0x55CC,0x55CE,0x55D1,0x55D2,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 55, Array index 0x0D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x55D3,0x55D7,0x55D8,0x55DB,0x55DE,0x55E2,0x55E9, - 0x55F6,0x55FF,0x5605,0x5608,0x560A,0x560D,0x560E,0x560F, - 0x5610,0x5611,0x5612,0x5619,0x562C,0x5630,0x5633,0x5635, - 0x5637,0x5639,0x563B,0x563C,0x563D,0x563F,0x5640,0x5641, - 0x5643,0x5644,0x5646,0x5649,0x564B,0x564D,0x564F,0x5654, - 0x565E,0x5660,0x5661,0x5662,0x5663,0x5666,0x5669,0x566D, - 0x566F,0x5671,0x5672,0x5675,0x5684,0x5685,0x5688,0x568B, - 0x568C,0x5695,0x5699,0x569A,0x569D,0x569E,0x569F,0x56A6, - 0x56A7,0x56A8,0x56A9,0x56AB,0x56AC,0x56AD,0x56B1,0x56B3, - 0x56B7,0x56BE,0x56C5,0x56C9,0x56CA,0x56CB,0x56CF,0x56D0, - 0x56CC,0x56CD,0x56D9,0x56DC,0x56DD,0x56DF,0x56E1,0x56E4, - 0x56E5,0x56E6,0x56E7,0x56E8,0x56F1,0x56EB,0x56ED,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 56, Array index 0x0E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x56F6,0x56F7,0x5701,0x5702,0x5707,0x570A,0x570C, - 0x5711,0x5715,0x571A,0x571B,0x571D,0x5720,0x5722,0x5723, - 0x5724,0x5725,0x5729,0x572A,0x572C,0x572E,0x572F,0x5733, - 0x5734,0x573D,0x573E,0x573F,0x5745,0x5746,0x574C,0x574D, - 0x5752,0x5762,0x5765,0x5767,0x5768,0x576B,0x576D,0x576E, - 0x576F,0x5770,0x5771,0x5773,0x5774,0x5775,0x5777,0x5779, - 0x577A,0x577B,0x577C,0x577E,0x5781,0x5783,0x578C,0x5794, - 0x5797,0x5799,0x579A,0x579C,0x579D,0x579E,0x579F,0x57A1, - 0x5795,0x57A7,0x57A8,0x57A9,0x57AC,0x57B8,0x57BD,0x57C7, - 0x57C8,0x57CC,0x57CF,0x57D5,0x57DD,0x57DE,0x57E4,0x57E6, - 0x57E7,0x57E9,0x57ED,0x57F0,0x57F5,0x57F6,0x57F8,0x57FD, - 0x57FE,0x57FF,0x5803,0x5804,0x5808,0x5809,0x57E1,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 57, Array index 0x0F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x580C,0x580D,0x581B,0x581E,0x581F,0x5820,0x5826, - 0x5827,0x582D,0x5832,0x5839,0x583F,0x5849,0x584C,0x584D, - 0x584F,0x5850,0x5855,0x585F,0x5861,0x5864,0x5867,0x5868, - 0x5878,0x587C,0x587F,0x5880,0x5881,0x5887,0x5888,0x5889, - 0x588A,0x588C,0x588D,0x588F,0x5890,0x5894,0x5896,0x589D, - 0x58A0,0x58A1,0x58A2,0x58A6,0x58A9,0x58B1,0x58B2,0x58C4, - 0x58BC,0x58C2,0x58C8,0x58CD,0x58CE,0x58D0,0x58D2,0x58D4, - 0x58D6,0x58DA,0x58DD,0x58E1,0x58E2,0x58E9,0x58F3,0x5905, - 0x5906,0x590B,0x590C,0x5912,0x5913,0x5914,0x8641,0x591D, - 0x5921,0x5923,0x5924,0x5928,0x592F,0x5930,0x5933,0x5935, - 0x5936,0x593F,0x5943,0x5946,0x5952,0x5953,0x5959,0x595B, - 0x595D,0x595E,0x595F,0x5961,0x5963,0x596B,0x596D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 58, Array index 0x1000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x596F,0x5972,0x5975,0x5976,0x5979,0x597B,0x597C, - 0x598B,0x598C,0x598E,0x5992,0x5995,0x5997,0x599F,0x59A4, - 0x59A7,0x59AD,0x59AE,0x59AF,0x59B0,0x59B3,0x59B7,0x59BA, - 0x59BC,0x59C1,0x59C3,0x59C4,0x59C8,0x59CA,0x59CD,0x59D2, - 0x59DD,0x59DE,0x59DF,0x59E3,0x59E4,0x59E7,0x59EE,0x59EF, - 0x59F1,0x59F2,0x59F4,0x59F7,0x5A00,0x5A04,0x5A0C,0x5A0D, - 0x5A0E,0x5A12,0x5A13,0x5A1E,0x5A23,0x5A24,0x5A27,0x5A28, - 0x5A2A,0x5A2D,0x5A30,0x5A44,0x5A45,0x5A47,0x5A48,0x5A4C, - 0x5A50,0x5A55,0x5A5E,0x5A63,0x5A65,0x5A67,0x5A6D,0x5A77, - 0x5A7A,0x5A7B,0x5A7E,0x5A8B,0x5A90,0x5A93,0x5A96,0x5A99, - 0x5A9C,0x5A9E,0x5A9F,0x5AA0,0x5AA2,0x5AA7,0x5AAC,0x5AB1, - 0x5AB2,0x5AB3,0x5AB5,0x5AB8,0x5ABA,0x5ABB,0x5ABF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 59, Array index 0x1100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5AC4,0x5AC6,0x5AC8,0x5ACF,0x5ADA,0x5ADC,0x5AE0, - 0x5AE5,0x5AEA,0x5AEE,0x5AF5,0x5AF6,0x5AFD,0x5B00,0x5B01, - 0x5B08,0x5B17,0x5B34,0x5B19,0x5B1B,0x5B1D,0x5B21,0x5B25, - 0x5B2D,0x5B38,0x5B41,0x5B4B,0x5B4C,0x5B52,0x5B56,0x5B5E, - 0x5B68,0x5B6E,0x5B6F,0x5B7C,0x5B7D,0x5B7E,0x5B7F,0x5B81, - 0x5B84,0x5B86,0x5B8A,0x5B8E,0x5B90,0x5B91,0x5B93,0x5B94, - 0x5B96,0x5BA8,0x5BA9,0x5BAC,0x5BAD,0x5BAF,0x5BB1,0x5BB2, - 0x5BB7,0x5BBA,0x5BBC,0x5BC0,0x5BC1,0x5BCD,0x5BCF,0x5BD6, - 0x5BD7,0x5BD8,0x5BD9,0x5BDA,0x5BE0,0x5BEF,0x5BF1,0x5BF4, - 0x5BFD,0x5C0C,0x5C17,0x5C1E,0x5C1F,0x5C23,0x5C26,0x5C29, - 0x5C2B,0x5C2C,0x5C2E,0x5C30,0x5C32,0x5C35,0x5C36,0x5C59, - 0x5C5A,0x5C5C,0x5C62,0x5C63,0x5C67,0x5C68,0x5C69,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 60, Array index 0x1200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C6D,0x5C70,0x5C74,0x5C75,0x5C7A,0x5C7B,0x5C7C, - 0x5C7D,0x5C87,0x5C88,0x5C8A,0x5C8F,0x5C92,0x5C9D,0x5C9F, - 0x5CA0,0x5CA2,0x5CA3,0x5CA6,0x5CAA,0x5CB2,0x5CB4,0x5CB5, - 0x5CBA,0x5CC9,0x5CCB,0x5CD2,0x5CDD,0x5CD7,0x5CEE,0x5CF1, - 0x5CF2,0x5CF4,0x5D01,0x5D06,0x5D0D,0x5D12,0x5D2B,0x5D23, - 0x5D24,0x5D26,0x5D27,0x5D31,0x5D34,0x5D39,0x5D3D,0x5D3F, - 0x5D42,0x5D43,0x5D46,0x5D48,0x5D55,0x5D51,0x5D59,0x5D4A, - 0x5D5F,0x5D60,0x5D61,0x5D62,0x5D64,0x5D6A,0x5D6D,0x5D70, - 0x5D79,0x5D7A,0x5D7E,0x5D7F,0x5D81,0x5D83,0x5D88,0x5D8A, - 0x5D92,0x5D93,0x5D94,0x5D95,0x5D99,0x5D9B,0x5D9F,0x5DA0, - 0x5DA7,0x5DAB,0x5DB0,0x5DB4,0x5DB8,0x5DB9,0x5DC3,0x5DC7, - 0x5DCB,0x5DD0,0x5DCE,0x5DD8,0x5DD9,0x5DE0,0x5DE4,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 61, Array index 0x1300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5DE9,0x5DF8,0x5DF9,0x5E00,0x5E07,0x5E0D,0x5E12, - 0x5E14,0x5E15,0x5E18,0x5E1F,0x5E20,0x5E2E,0x5E28,0x5E32, - 0x5E35,0x5E3E,0x5E4B,0x5E50,0x5E49,0x5E51,0x5E56,0x5E58, - 0x5E5B,0x5E5C,0x5E5E,0x5E68,0x5E6A,0x5E6B,0x5E6C,0x5E6D, - 0x5E6E,0x5E70,0x5E80,0x5E8B,0x5E8E,0x5EA2,0x5EA4,0x5EA5, - 0x5EA8,0x5EAA,0x5EAC,0x5EB1,0x5EB3,0x5EBD,0x5EBE,0x5EBF, - 0x5EC6,0x5ECC,0x5ECB,0x5ECE,0x5ED1,0x5ED2,0x5ED4,0x5ED5, - 0x5EDC,0x5EDE,0x5EE5,0x5EEB,0x5F02,0x5F06,0x5F07,0x5F08, - 0x5F0E,0x5F19,0x5F1C,0x5F1D,0x5F21,0x5F22,0x5F23,0x5F24, - 0x5F28,0x5F2B,0x5F2C,0x5F2E,0x5F30,0x5F34,0x5F36,0x5F3B, - 0x5F3D,0x5F3F,0x5F40,0x5F44,0x5F45,0x5F47,0x5F4D,0x5F50, - 0x5F54,0x5F58,0x5F5B,0x5F60,0x5F63,0x5F64,0x5F67,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 62, Array index 0x1400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F6F,0x5F72,0x5F74,0x5F75,0x5F78,0x5F7A,0x5F7D, - 0x5F7E,0x5F89,0x5F8D,0x5F8F,0x5F96,0x5F9C,0x5F9D,0x5FA2, - 0x5FA7,0x5FAB,0x5FA4,0x5FAC,0x5FAF,0x5FB0,0x5FB1,0x5FB8, - 0x5FC4,0x5FC7,0x5FC8,0x5FC9,0x5FCB,0x5FD0,0x5FD1,0x5FD2, - 0x5FD3,0x5FD4,0x5FDE,0x5FE1,0x5FE2,0x5FE8,0x5FE9,0x5FEA, - 0x5FEC,0x5FED,0x5FEE,0x5FEF,0x5FF2,0x5FF3,0x5FF6,0x5FFA, - 0x5FFC,0x6007,0x600A,0x600D,0x6013,0x6014,0x6017,0x6018, - 0x601A,0x601F,0x6024,0x602D,0x6033,0x6035,0x6040,0x6047, - 0x6048,0x6049,0x604C,0x6051,0x6054,0x6056,0x6057,0x605D, - 0x6061,0x6067,0x6071,0x607E,0x607F,0x6082,0x6086,0x6088, - 0x608A,0x608E,0x6091,0x6093,0x6095,0x6098,0x609D,0x609E, - 0x60A2,0x60A4,0x60A5,0x60A8,0x60B0,0x60B1,0x60B7,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 63, Array index 0x1500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x60BB,0x60BE,0x60C2,0x60C4,0x60C8,0x60C9,0x60CA, - 0x60CB,0x60CE,0x60CF,0x60D4,0x60D5,0x60D9,0x60DB,0x60DD, - 0x60DE,0x60E2,0x60E5,0x60F2,0x60F5,0x60F8,0x60FC,0x60FD, - 0x6102,0x6107,0x610A,0x610C,0x6110,0x6111,0x6112,0x6113, - 0x6114,0x6116,0x6117,0x6119,0x611C,0x611E,0x6122,0x612A, - 0x612B,0x6130,0x6131,0x6135,0x6136,0x6137,0x6139,0x6141, - 0x6145,0x6146,0x6149,0x615E,0x6160,0x616C,0x6172,0x6178, - 0x617B,0x617C,0x617F,0x6180,0x6181,0x6183,0x6184,0x618B, - 0x618D,0x6192,0x6193,0x6197,0x6198,0x619C,0x619D,0x619F, - 0x61A0,0x61A5,0x61A8,0x61AA,0x61AD,0x61B8,0x61B9,0x61BC, - 0x61C0,0x61C1,0x61C2,0x61CE,0x61CF,0x61D5,0x61DC,0x61DD, - 0x61DE,0x61DF,0x61E1,0x61E2,0x61E7,0x61E9,0x61E5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 64, Array index 0x1600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x61EC,0x61ED,0x61EF,0x6201,0x6203,0x6204,0x6207, - 0x6213,0x6215,0x621C,0x6220,0x6222,0x6223,0x6227,0x6229, - 0x622B,0x6239,0x623D,0x6242,0x6243,0x6244,0x6246,0x624C, - 0x6250,0x6251,0x6252,0x6254,0x6256,0x625A,0x625C,0x6264, - 0x626D,0x626F,0x6273,0x627A,0x627D,0x628D,0x628E,0x628F, - 0x6290,0x62A6,0x62A8,0x62B3,0x62B6,0x62B7,0x62BA,0x62BE, - 0x62BF,0x62C4,0x62CE,0x62D5,0x62D6,0x62DA,0x62EA,0x62F2, - 0x62F4,0x62FC,0x62FD,0x6303,0x6304,0x630A,0x630B,0x630D, - 0x6310,0x6313,0x6316,0x6318,0x6329,0x632A,0x632D,0x6335, - 0x6336,0x6339,0x633C,0x6341,0x6342,0x6343,0x6344,0x6346, - 0x634A,0x634B,0x634E,0x6352,0x6353,0x6354,0x6358,0x635B, - 0x6365,0x6366,0x636C,0x636D,0x6371,0x6374,0x6375,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 65, Array index 0x1700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6378,0x637C,0x637D,0x637F,0x6382,0x6384,0x6387, - 0x638A,0x6390,0x6394,0x6395,0x6399,0x639A,0x639E,0x63A4, - 0x63A6,0x63AD,0x63AE,0x63AF,0x63BD,0x63C1,0x63C5,0x63C8, - 0x63CE,0x63D1,0x63D3,0x63D4,0x63D5,0x63DC,0x63E0,0x63E5, - 0x63EA,0x63EC,0x63F2,0x63F3,0x63F5,0x63F8,0x63F9,0x6409, - 0x640A,0x6410,0x6412,0x6414,0x6418,0x641E,0x6420,0x6422, - 0x6424,0x6425,0x6429,0x642A,0x642F,0x6430,0x6435,0x643D, - 0x643F,0x644B,0x644F,0x6451,0x6452,0x6453,0x6454,0x645A, - 0x645B,0x645C,0x645D,0x645F,0x6460,0x6461,0x6463,0x646D, - 0x6473,0x6474,0x647B,0x647D,0x6485,0x6487,0x648F,0x6490, - 0x6491,0x6498,0x6499,0x649B,0x649D,0x649F,0x64A1,0x64A3, - 0x64A6,0x64A8,0x64AC,0x64B3,0x64BD,0x64BE,0x64BF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 66, Array index 0x1800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x64C4,0x64C9,0x64CA,0x64CB,0x64CC,0x64CE,0x64D0, - 0x64D1,0x64D5,0x64D7,0x64E4,0x64E5,0x64E9,0x64EA,0x64ED, - 0x64F0,0x64F5,0x64F7,0x64FB,0x64FF,0x6501,0x6504,0x6508, - 0x6509,0x650A,0x650F,0x6513,0x6514,0x6516,0x6519,0x651B, - 0x651E,0x651F,0x6522,0x6526,0x6529,0x652E,0x6531,0x653A, - 0x653C,0x653D,0x6543,0x6547,0x6549,0x6550,0x6552,0x6554, - 0x655F,0x6560,0x6567,0x656B,0x657A,0x657D,0x6581,0x6585, - 0x658A,0x6592,0x6595,0x6598,0x659D,0x65A0,0x65A3,0x65A6, - 0x65AE,0x65B2,0x65B3,0x65B4,0x65BF,0x65C2,0x65C8,0x65C9, - 0x65CE,0x65D0,0x65D4,0x65D6,0x65D8,0x65DF,0x65F0,0x65F2, - 0x65F4,0x65F5,0x65F9,0x65FE,0x65FF,0x6600,0x6604,0x6608, - 0x6609,0x660D,0x6611,0x6612,0x6615,0x6616,0x661D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 67, Array index 0x1900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x661E,0x6621,0x6622,0x6623,0x6624,0x6626,0x6629, - 0x662A,0x662B,0x662C,0x662E,0x6630,0x6631,0x6633,0x6639, - 0x6637,0x6640,0x6645,0x6646,0x664A,0x664C,0x6651,0x664E, - 0x6657,0x6658,0x6659,0x665B,0x665C,0x6660,0x6661,0x66FB, - 0x666A,0x666B,0x666C,0x667E,0x6673,0x6675,0x667F,0x6677, - 0x6678,0x6679,0x667B,0x6680,0x667C,0x668B,0x668C,0x668D, - 0x6690,0x6692,0x6699,0x669A,0x669B,0x669C,0x669F,0x66A0, - 0x66A4,0x66AD,0x66B1,0x66B2,0x66B5,0x66BB,0x66BF,0x66C0, - 0x66C2,0x66C3,0x66C8,0x66CC,0x66CE,0x66CF,0x66D4,0x66DB, - 0x66DF,0x66E8,0x66EB,0x66EC,0x66EE,0x66FA,0x6705,0x6707, - 0x670E,0x6713,0x6719,0x671C,0x6720,0x6722,0x6733,0x673E, - 0x6745,0x6747,0x6748,0x674C,0x6754,0x6755,0x675D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 68, Array index 0x1A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6766,0x676C,0x676E,0x6774,0x6776,0x677B,0x6781, - 0x6784,0x678E,0x678F,0x6791,0x6793,0x6796,0x6798,0x6799, - 0x679B,0x67B0,0x67B1,0x67B2,0x67B5,0x67BB,0x67BC,0x67BD, - 0x67F9,0x67C0,0x67C2,0x67C3,0x67C5,0x67C8,0x67C9,0x67D2, - 0x67D7,0x67D9,0x67DC,0x67E1,0x67E6,0x67F0,0x67F2,0x67F6, - 0x67F7,0x6852,0x6814,0x6819,0x681D,0x681F,0x6828,0x6827, - 0x682C,0x682D,0x682F,0x6830,0x6831,0x6833,0x683B,0x683F, - 0x6844,0x6845,0x684A,0x684C,0x6855,0x6857,0x6858,0x685B, - 0x686B,0x686E,0x686F,0x6870,0x6871,0x6872,0x6875,0x6879, - 0x687A,0x687B,0x687C,0x6882,0x6884,0x6886,0x6888,0x6896, - 0x6898,0x689A,0x689C,0x68A1,0x68A3,0x68A5,0x68A9,0x68AA, - 0x68AE,0x68B2,0x68BB,0x68C5,0x68C8,0x68CC,0x68CF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 69, Array index 0x1B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x68D0,0x68D1,0x68D3,0x68D6,0x68D9,0x68DC,0x68DD, - 0x68E5,0x68E8,0x68EA,0x68EB,0x68EC,0x68ED,0x68F0,0x68F1, - 0x68F5,0x68F6,0x68FB,0x68FC,0x68FD,0x6906,0x6909,0x690A, - 0x6910,0x6911,0x6913,0x6916,0x6917,0x6931,0x6933,0x6935, - 0x6938,0x693B,0x6942,0x6945,0x6949,0x694E,0x6957,0x695B, - 0x6963,0x6964,0x6965,0x6966,0x6968,0x6969,0x696C,0x6970, - 0x6971,0x6972,0x697A,0x697B,0x697F,0x6980,0x698D,0x6992, - 0x6996,0x6998,0x69A1,0x69A5,0x69A6,0x69A8,0x69AB,0x69AD, - 0x69AF,0x69B7,0x69B8,0x69BA,0x69BC,0x69C5,0x69C8,0x69D1, - 0x69D6,0x69D7,0x69E2,0x69E5,0x69EE,0x69EF,0x69F1,0x69F3, - 0x69F5,0x69FE,0x6A00,0x6A01,0x6A03,0x6A0F,0x6A11,0x6A15, - 0x6A1A,0x6A1D,0x6A20,0x6A24,0x6A28,0x6A30,0x6A32,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 70, Array index 0x1C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A34,0x6A37,0x6A3B,0x6A3E,0x6A3F,0x6A45,0x6A46, - 0x6A49,0x6A4A,0x6A4E,0x6A50,0x6A51,0x6A52,0x6A55,0x6A56, - 0x6A5B,0x6A64,0x6A67,0x6A6A,0x6A71,0x6A73,0x6A7E,0x6A81, - 0x6A83,0x6A86,0x6A87,0x6A89,0x6A8B,0x6A91,0x6A9B,0x6A9D, - 0x6A9E,0x6A9F,0x6AA5,0x6AAB,0x6AAF,0x6AB0,0x6AB1,0x6AB4, - 0x6ABD,0x6ABE,0x6ABF,0x6AC6,0x6AC9,0x6AC8,0x6ACC,0x6AD0, - 0x6AD4,0x6AD5,0x6AD6,0x6ADC,0x6ADD,0x6AE4,0x6AE7,0x6AEC, - 0x6AF0,0x6AF1,0x6AF2,0x6AFC,0x6AFD,0x6B02,0x6B03,0x6B06, - 0x6B07,0x6B09,0x6B0F,0x6B10,0x6B11,0x6B17,0x6B1B,0x6B1E, - 0x6B24,0x6B28,0x6B2B,0x6B2C,0x6B2F,0x6B35,0x6B36,0x6B3B, - 0x6B3F,0x6B46,0x6B4A,0x6B4D,0x6B52,0x6B56,0x6B58,0x6B5D, - 0x6B60,0x6B67,0x6B6B,0x6B6E,0x6B70,0x6B75,0x6B7D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 71, Array index 0x1D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B7E,0x6B82,0x6B85,0x6B97,0x6B9B,0x6B9F,0x6BA0, - 0x6BA2,0x6BA3,0x6BA8,0x6BA9,0x6BAC,0x6BAD,0x6BAE,0x6BB0, - 0x6BB8,0x6BB9,0x6BBD,0x6BBE,0x6BC3,0x6BC4,0x6BC9,0x6BCC, - 0x6BD6,0x6BDA,0x6BE1,0x6BE3,0x6BE6,0x6BE7,0x6BEE,0x6BF1, - 0x6BF7,0x6BF9,0x6BFF,0x6C02,0x6C04,0x6C05,0x6C09,0x6C0D, - 0x6C0E,0x6C10,0x6C12,0x6C19,0x6C1F,0x6C26,0x6C27,0x6C28, - 0x6C2C,0x6C2E,0x6C33,0x6C35,0x6C36,0x6C3A,0x6C3B,0x6C3F, - 0x6C4A,0x6C4B,0x6C4D,0x6C4F,0x6C52,0x6C54,0x6C59,0x6C5B, - 0x6C5C,0x6C6B,0x6C6D,0x6C6F,0x6C74,0x6C76,0x6C78,0x6C79, - 0x6C7B,0x6C85,0x6C86,0x6C87,0x6C89,0x6C94,0x6C95,0x6C97, - 0x6C98,0x6C9C,0x6C9F,0x6CB0,0x6CB2,0x6CB4,0x6CC2,0x6CC6, - 0x6CCD,0x6CCF,0x6CD0,0x6CD1,0x6CD2,0x6CD4,0x6CD6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 72, Array index 0x1E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6CDA,0x6CDC,0x6CE0,0x6CE7,0x6CE9,0x6CEB,0x6CEC, - 0x6CEE,0x6CF2,0x6CF4,0x6D04,0x6D07,0x6D0A,0x6D0E,0x6D0F, - 0x6D11,0x6D13,0x6D1A,0x6D26,0x6D27,0x6D28,0x6C67,0x6D2E, - 0x6D2F,0x6D31,0x6D39,0x6D3C,0x6D3F,0x6D57,0x6D5E,0x6D5F, - 0x6D61,0x6D65,0x6D67,0x6D6F,0x6D70,0x6D7C,0x6D82,0x6D87, - 0x6D91,0x6D92,0x6D94,0x6D96,0x6D97,0x6D98,0x6DAA,0x6DAC, - 0x6DB4,0x6DB7,0x6DB9,0x6DBD,0x6DBF,0x6DC4,0x6DC8,0x6DCA, - 0x6DCE,0x6DCF,0x6DD6,0x6DDB,0x6DDD,0x6DDF,0x6DE0,0x6DE2, - 0x6DE5,0x6DE9,0x6DEF,0x6DF0,0x6DF4,0x6DF6,0x6DFC,0x6E00, - 0x6E04,0x6E1E,0x6E22,0x6E27,0x6E32,0x6E36,0x6E39,0x6E3B, - 0x6E3C,0x6E44,0x6E45,0x6E48,0x6E49,0x6E4B,0x6E4F,0x6E51, - 0x6E52,0x6E53,0x6E54,0x6E57,0x6E5C,0x6E5D,0x6E5E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 73, Array index 0x1F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6E62,0x6E63,0x6E68,0x6E73,0x6E7B,0x6E7D,0x6E8D, - 0x6E93,0x6E99,0x6EA0,0x6EA7,0x6EAD,0x6EAE,0x6EB1,0x6EB3, - 0x6EBB,0x6EBF,0x6EC0,0x6EC1,0x6EC3,0x6EC7,0x6EC8,0x6ECA, - 0x6ECD,0x6ECE,0x6ECF,0x6EEB,0x6EED,0x6EEE,0x6EF9,0x6EFB, - 0x6EFD,0x6F04,0x6F08,0x6F0A,0x6F0C,0x6F0D,0x6F16,0x6F18, - 0x6F1A,0x6F1B,0x6F26,0x6F29,0x6F2A,0x6F2F,0x6F30,0x6F33, - 0x6F36,0x6F3B,0x6F3C,0x6F2D,0x6F4F,0x6F51,0x6F52,0x6F53, - 0x6F57,0x6F59,0x6F5A,0x6F5D,0x6F5E,0x6F61,0x6F62,0x6F68, - 0x6F6C,0x6F7D,0x6F7E,0x6F83,0x6F87,0x6F88,0x6F8B,0x6F8C, - 0x6F8D,0x6F90,0x6F92,0x6F93,0x6F94,0x6F96,0x6F9A,0x6F9F, - 0x6FA0,0x6FA5,0x6FA6,0x6FA7,0x6FA8,0x6FAE,0x6FAF,0x6FB0, - 0x6FB5,0x6FB6,0x6FBC,0x6FC5,0x6FC7,0x6FC8,0x6FCA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 74, Array index 0x2000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6FDA,0x6FDE,0x6FE8,0x6FE9,0x6FF0,0x6FF5,0x6FF9, - 0x6FFC,0x6FFD,0x7000,0x7005,0x7006,0x7007,0x700D,0x7017, - 0x7020,0x7023,0x702F,0x7034,0x7037,0x7039,0x703C,0x7043, - 0x7044,0x7048,0x7049,0x704A,0x704B,0x7054,0x7055,0x705D, - 0x705E,0x704E,0x7064,0x7065,0x706C,0x706E,0x7075,0x7076, - 0x707E,0x7081,0x7085,0x7086,0x7094,0x7095,0x7096,0x7097, - 0x7098,0x709B,0x70A4,0x70AB,0x70B0,0x70B1,0x70B4,0x70B7, - 0x70CA,0x70D1,0x70D3,0x70D4,0x70D5,0x70D6,0x70D8,0x70DC, - 0x70E4,0x70FA,0x7103,0x7104,0x7105,0x7106,0x7107,0x710B, - 0x710C,0x710F,0x711E,0x7120,0x712B,0x712D,0x712F,0x7130, - 0x7131,0x7138,0x7141,0x7145,0x7146,0x7147,0x714A,0x714B, - 0x7150,0x7152,0x7157,0x715A,0x715C,0x715E,0x7160,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 75, Array index 0x2100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7168,0x7179,0x7180,0x7185,0x7187,0x718C,0x7192, - 0x719A,0x719B,0x71A0,0x71A2,0x71AF,0x71B0,0x71B2,0x71B3, - 0x71BA,0x71BF,0x71C0,0x71C1,0x71C4,0x71CB,0x71CC,0x71D3, - 0x71D6,0x71D9,0x71DA,0x71DC,0x71F8,0x71FE,0x7200,0x7207, - 0x7208,0x7209,0x7213,0x7217,0x721A,0x721D,0x721F,0x7224, - 0x722B,0x722F,0x7234,0x7238,0x7239,0x7241,0x7242,0x7243, - 0x7245,0x724E,0x724F,0x7250,0x7253,0x7255,0x7256,0x725A, - 0x725C,0x725E,0x7260,0x7263,0x7268,0x726B,0x726E,0x726F, - 0x7271,0x7277,0x7278,0x727B,0x727C,0x727F,0x7284,0x7289, - 0x728D,0x728E,0x7293,0x729B,0x72A8,0x72AD,0x72AE,0x72B1, - 0x72B4,0x72BE,0x72C1,0x72C7,0x72C9,0x72CC,0x72D5,0x72D6, - 0x72D8,0x72DF,0x72E5,0x72F3,0x72F4,0x72FA,0x72FB,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 76, Array index 0x2200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x72FE,0x7302,0x7304,0x7305,0x7307,0x730B,0x730D, - 0x7312,0x7313,0x7318,0x7319,0x731E,0x7322,0x7324,0x7327, - 0x7328,0x732C,0x7331,0x7332,0x7335,0x733A,0x733B,0x733D, - 0x7343,0x734D,0x7350,0x7352,0x7356,0x7358,0x735D,0x735E, - 0x735F,0x7360,0x7366,0x7367,0x7369,0x736B,0x736C,0x736E, - 0x736F,0x7371,0x7377,0x7379,0x737C,0x7380,0x7381,0x7383, - 0x7385,0x7386,0x738E,0x7390,0x7393,0x7395,0x7397,0x7398, - 0x739C,0x739E,0x739F,0x73A0,0x73A2,0x73A5,0x73A6,0x73AA, - 0x73AB,0x73AD,0x73B5,0x73B7,0x73B9,0x73BC,0x73BD,0x73BF, - 0x73C5,0x73C6,0x73C9,0x73CB,0x73CC,0x73CF,0x73D2,0x73D3, - 0x73D6,0x73D9,0x73DD,0x73E1,0x73E3,0x73E6,0x73E7,0x73E9, - 0x73F4,0x73F5,0x73F7,0x73F9,0x73FA,0x73FB,0x73FD,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 77, Array index 0x2300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x73FF,0x7400,0x7401,0x7404,0x7407,0x740A,0x7411, - 0x741A,0x741B,0x7424,0x7426,0x7428,0x7429,0x742A,0x742B, - 0x742C,0x742D,0x742E,0x742F,0x7430,0x7431,0x7439,0x7440, - 0x7443,0x7444,0x7446,0x7447,0x744B,0x744D,0x7451,0x7452, - 0x7457,0x745D,0x7462,0x7466,0x7467,0x7468,0x746B,0x746D, - 0x746E,0x7471,0x7472,0x7480,0x7481,0x7485,0x7486,0x7487, - 0x7489,0x748F,0x7490,0x7491,0x7492,0x7498,0x7499,0x749A, - 0x749C,0x749F,0x74A0,0x74A1,0x74A3,0x74A6,0x74A8,0x74A9, - 0x74AA,0x74AB,0x74AE,0x74AF,0x74B1,0x74B2,0x74B5,0x74B9, - 0x74BB,0x74BF,0x74C8,0x74C9,0x74CC,0x74D0,0x74D3,0x74D8, - 0x74DA,0x74DB,0x74DE,0x74DF,0x74E4,0x74E8,0x74EA,0x74EB, - 0x74EF,0x74F4,0x74FA,0x74FB,0x74FC,0x74FF,0x7506,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 78, Array index 0x2400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7512,0x7516,0x7517,0x7520,0x7521,0x7524,0x7527, - 0x7529,0x752A,0x752F,0x7536,0x7539,0x753D,0x753E,0x753F, - 0x7540,0x7543,0x7547,0x7548,0x754E,0x7550,0x7552,0x7557, - 0x755E,0x755F,0x7561,0x756F,0x7571,0x7579,0x757A,0x757B, - 0x757C,0x757D,0x757E,0x7581,0x7585,0x7590,0x7592,0x7593, - 0x7595,0x7599,0x759C,0x75A2,0x75A4,0x75B4,0x75BA,0x75BF, - 0x75C0,0x75C1,0x75C4,0x75C6,0x75CC,0x75CE,0x75CF,0x75D7, - 0x75DC,0x75DF,0x75E0,0x75E1,0x75E4,0x75E7,0x75EC,0x75EE, - 0x75EF,0x75F1,0x75F9,0x7600,0x7602,0x7603,0x7604,0x7607, - 0x7608,0x760A,0x760C,0x760F,0x7612,0x7613,0x7615,0x7616, - 0x7619,0x761B,0x761C,0x761D,0x761E,0x7623,0x7625,0x7626, - 0x7629,0x762D,0x7632,0x7633,0x7635,0x7638,0x7639,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 79, Array index 0x2500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x763A,0x763C,0x764A,0x7640,0x7641,0x7643,0x7644, - 0x7645,0x7649,0x764B,0x7655,0x7659,0x765F,0x7664,0x7665, - 0x766D,0x766E,0x766F,0x7671,0x7674,0x7681,0x7685,0x768C, - 0x768D,0x7695,0x769B,0x769C,0x769D,0x769F,0x76A0,0x76A2, - 0x76A3,0x76A4,0x76A5,0x76A6,0x76A7,0x76A8,0x76AA,0x76AD, - 0x76BD,0x76C1,0x76C5,0x76C9,0x76CB,0x76CC,0x76CE,0x76D4, - 0x76D9,0x76E0,0x76E6,0x76E8,0x76EC,0x76F0,0x76F1,0x76F6, - 0x76F9,0x76FC,0x7700,0x7706,0x770A,0x770E,0x7712,0x7714, - 0x7715,0x7717,0x7719,0x771A,0x771C,0x7722,0x7728,0x772D, - 0x772E,0x772F,0x7734,0x7735,0x7736,0x7739,0x773D,0x773E, - 0x7742,0x7745,0x7746,0x774A,0x774D,0x774E,0x774F,0x7752, - 0x7756,0x7757,0x775C,0x775E,0x775F,0x7760,0x7762,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 80, Array index 0x2600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7764,0x7767,0x776A,0x776C,0x7770,0x7772,0x7773, - 0x7774,0x777A,0x777D,0x7780,0x7784,0x778C,0x778D,0x7794, - 0x7795,0x7796,0x779A,0x779F,0x77A2,0x77A7,0x77AA,0x77AE, - 0x77AF,0x77B1,0x77B5,0x77BE,0x77C3,0x77C9,0x77D1,0x77D2, - 0x77D5,0x77D9,0x77DE,0x77DF,0x77E0,0x77E4,0x77E6,0x77EA, - 0x77EC,0x77F0,0x77F1,0x77F4,0x77F8,0x77FB,0x7805,0x7806, - 0x7809,0x780D,0x780E,0x7811,0x781D,0x7821,0x7822,0x7823, - 0x782D,0x782E,0x7830,0x7835,0x7837,0x7843,0x7844,0x7847, - 0x7848,0x784C,0x784E,0x7852,0x785C,0x785E,0x7860,0x7861, - 0x7863,0x7864,0x7868,0x786A,0x786E,0x787A,0x787E,0x788A, - 0x788F,0x7894,0x7898,0x78A1,0x789D,0x789E,0x789F,0x78A4, - 0x78A8,0x78AC,0x78AD,0x78B0,0x78B1,0x78B2,0x78B3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 81, Array index 0x2700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x78BB,0x78BD,0x78BF,0x78C7,0x78C8,0x78C9,0x78CC, - 0x78CE,0x78D2,0x78D3,0x78D5,0x78D6,0x78E4,0x78DB,0x78DF, - 0x78E0,0x78E1,0x78E6,0x78EA,0x78F2,0x78F3,0x7900,0x78F6, - 0x78F7,0x78FA,0x78FB,0x78FF,0x7906,0x790C,0x7910,0x791A, - 0x791C,0x791E,0x791F,0x7920,0x7925,0x7927,0x7929,0x792D, - 0x7931,0x7934,0x7935,0x793B,0x793D,0x793F,0x7944,0x7945, - 0x7946,0x794A,0x794B,0x794F,0x7951,0x7954,0x7958,0x795B, - 0x795C,0x7967,0x7969,0x796B,0x7972,0x7979,0x797B,0x797C, - 0x797E,0x798B,0x798C,0x7991,0x7993,0x7994,0x7995,0x7996, - 0x7998,0x799B,0x799C,0x79A1,0x79A8,0x79A9,0x79AB,0x79AF, - 0x79B1,0x79B4,0x79B8,0x79BB,0x79C2,0x79C4,0x79C7,0x79C8, - 0x79CA,0x79CF,0x79D4,0x79D6,0x79DA,0x79DD,0x79DE,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 82, Array index 0x2800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x79E0,0x79E2,0x79E5,0x79EA,0x79EB,0x79ED,0x79F1, - 0x79F8,0x79FC,0x7A02,0x7A03,0x7A07,0x7A09,0x7A0A,0x7A0C, - 0x7A11,0x7A15,0x7A1B,0x7A1E,0x7A21,0x7A27,0x7A2B,0x7A2D, - 0x7A2F,0x7A30,0x7A34,0x7A35,0x7A38,0x7A39,0x7A3A,0x7A44, - 0x7A45,0x7A47,0x7A48,0x7A4C,0x7A55,0x7A56,0x7A59,0x7A5C, - 0x7A5D,0x7A5F,0x7A60,0x7A65,0x7A67,0x7A6A,0x7A6D,0x7A75, - 0x7A78,0x7A7E,0x7A80,0x7A82,0x7A85,0x7A86,0x7A8A,0x7A8B, - 0x7A90,0x7A91,0x7A94,0x7A9E,0x7AA0,0x7AA3,0x7AAC,0x7AB3, - 0x7AB5,0x7AB9,0x7ABB,0x7ABC,0x7AC6,0x7AC9,0x7ACC,0x7ACE, - 0x7AD1,0x7ADB,0x7AE8,0x7AE9,0x7AEB,0x7AEC,0x7AF1,0x7AF4, - 0x7AFB,0x7AFD,0x7AFE,0x7B07,0x7B14,0x7B1F,0x7B23,0x7B27, - 0x7B29,0x7B2A,0x7B2B,0x7B2D,0x7B2E,0x7B2F,0x7B30,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 83, Array index 0x2900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7B31,0x7B34,0x7B3D,0x7B3F,0x7B40,0x7B41,0x7B47, - 0x7B4E,0x7B55,0x7B60,0x7B64,0x7B66,0x7B69,0x7B6A,0x7B6D, - 0x7B6F,0x7B72,0x7B73,0x7B77,0x7B84,0x7B89,0x7B8E,0x7B90, - 0x7B91,0x7B96,0x7B9B,0x7B9E,0x7BA0,0x7BA5,0x7BAC,0x7BAF, - 0x7BB0,0x7BB2,0x7BB5,0x7BB6,0x7BBA,0x7BBB,0x7BBC,0x7BBD, - 0x7BC2,0x7BC5,0x7BC8,0x7BCA,0x7BD4,0x7BD6,0x7BD7,0x7BD9, - 0x7BDA,0x7BDB,0x7BE8,0x7BEA,0x7BF2,0x7BF4,0x7BF5,0x7BF8, - 0x7BF9,0x7BFA,0x7BFC,0x7BFE,0x7C01,0x7C02,0x7C03,0x7C04, - 0x7C06,0x7C09,0x7C0B,0x7C0C,0x7C0E,0x7C0F,0x7C19,0x7C1B, - 0x7C20,0x7C25,0x7C26,0x7C28,0x7C2C,0x7C31,0x7C33,0x7C34, - 0x7C36,0x7C39,0x7C3A,0x7C46,0x7C4A,0x7C55,0x7C51,0x7C52, - 0x7C53,0x7C59,0x7C5A,0x7C5B,0x7C5C,0x7C5D,0x7C5E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 84, Array index 0x2A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7C61,0x7C63,0x7C67,0x7C69,0x7C6D,0x7C6E,0x7C70, - 0x7C72,0x7C79,0x7C7C,0x7C7D,0x7C86,0x7C87,0x7C8F,0x7C94, - 0x7C9E,0x7CA0,0x7CA6,0x7CB0,0x7CB6,0x7CB7,0x7CBA,0x7CBB, - 0x7CBC,0x7CBF,0x7CC4,0x7CC7,0x7CC8,0x7CC9,0x7CCD,0x7CCF, - 0x7CD3,0x7CD4,0x7CD5,0x7CD7,0x7CD9,0x7CDA,0x7CDD,0x7CE6, - 0x7CE9,0x7CEB,0x7CF5,0x7D03,0x7D07,0x7D08,0x7D09,0x7D0F, - 0x7D11,0x7D12,0x7D13,0x7D16,0x7D1D,0x7D1E,0x7D23,0x7D26, - 0x7D2A,0x7D2D,0x7D31,0x7D3C,0x7D3D,0x7D3E,0x7D40,0x7D41, - 0x7D47,0x7D48,0x7D4D,0x7D51,0x7D53,0x7D57,0x7D59,0x7D5A, - 0x7D5C,0x7D5D,0x7D65,0x7D67,0x7D6A,0x7D70,0x7D78,0x7D7A, - 0x7D7B,0x7D7F,0x7D81,0x7D82,0x7D83,0x7D85,0x7D86,0x7D88, - 0x7D8B,0x7D8C,0x7D8D,0x7D91,0x7D96,0x7D97,0x7D9D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 85, Array index 0x2B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7D9E,0x7DA6,0x7DA7,0x7DAA,0x7DB3,0x7DB6,0x7DB7, - 0x7DB9,0x7DC2,0x7DC3,0x7DC4,0x7DC5,0x7DC6,0x7DCC,0x7DCD, - 0x7DCE,0x7DD7,0x7DD9,0x7E00,0x7DE2,0x7DE5,0x7DE6,0x7DEA, - 0x7DEB,0x7DED,0x7DF1,0x7DF5,0x7DF6,0x7DF9,0x7DFA,0x7E08, - 0x7E10,0x7E11,0x7E15,0x7E17,0x7E1C,0x7E1D,0x7E20,0x7E27, - 0x7E28,0x7E2C,0x7E2D,0x7E2F,0x7E33,0x7E36,0x7E3F,0x7E44, - 0x7E45,0x7E47,0x7E4E,0x7E50,0x7E52,0x7E58,0x7E5F,0x7E61, - 0x7E62,0x7E65,0x7E6B,0x7E6E,0x7E6F,0x7E73,0x7E78,0x7E7E, - 0x7E81,0x7E86,0x7E87,0x7E8A,0x7E8D,0x7E91,0x7E95,0x7E98, - 0x7E9A,0x7E9D,0x7E9E,0x7F3C,0x7F3B,0x7F3D,0x7F3E,0x7F3F, - 0x7F43,0x7F44,0x7F47,0x7F4F,0x7F52,0x7F53,0x7F5B,0x7F5C, - 0x7F5D,0x7F61,0x7F63,0x7F64,0x7F65,0x7F66,0x7F6D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 86, Array index 0x2C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7F71,0x7F7D,0x7F7E,0x7F7F,0x7F80,0x7F8B,0x7F8D, - 0x7F8F,0x7F90,0x7F91,0x7F96,0x7F97,0x7F9C,0x7FA1,0x7FA2, - 0x7FA6,0x7FAA,0x7FAD,0x7FB4,0x7FBC,0x7FBF,0x7FC0,0x7FC3, - 0x7FC8,0x7FCE,0x7FCF,0x7FDB,0x7FDF,0x7FE3,0x7FE5,0x7FE8, - 0x7FEC,0x7FEE,0x7FEF,0x7FF2,0x7FFA,0x7FFD,0x7FFE,0x7FFF, - 0x8007,0x8008,0x800A,0x800D,0x800E,0x800F,0x8011,0x8013, - 0x8014,0x8016,0x801D,0x801E,0x801F,0x8020,0x8024,0x8026, - 0x802C,0x802E,0x8030,0x8034,0x8035,0x8037,0x8039,0x803A, - 0x803C,0x803E,0x8040,0x8044,0x8060,0x8064,0x8066,0x806D, - 0x8071,0x8075,0x8081,0x8088,0x808E,0x809C,0x809E,0x80A6, - 0x80A7,0x80AB,0x80B8,0x80B9,0x80C8,0x80CD,0x80CF,0x80D2, - 0x80D4,0x80D5,0x80D7,0x80D8,0x80E0,0x80ED,0x80EE,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 87, Array index 0x2D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x80F0,0x80F2,0x80F3,0x80F6,0x80F9,0x80FA,0x80FE, - 0x8103,0x810B,0x8116,0x8117,0x8118,0x811C,0x811E,0x8120, - 0x8124,0x8127,0x812C,0x8130,0x8135,0x813A,0x813C,0x8145, - 0x8147,0x814A,0x814C,0x8152,0x8157,0x8160,0x8161,0x8167, - 0x8168,0x8169,0x816D,0x816F,0x8177,0x8181,0x8190,0x8184, - 0x8185,0x8186,0x818B,0x818E,0x8196,0x8198,0x819B,0x819E, - 0x81A2,0x81AE,0x81B2,0x81B4,0x81BB,0x81CB,0x81C3,0x81C5, - 0x81CA,0x81CE,0x81CF,0x81D5,0x81D7,0x81DB,0x81DD,0x81DE, - 0x81E1,0x81E4,0x81EB,0x81EC,0x81F0,0x81F1,0x81F2,0x81F5, - 0x81F6,0x81F8,0x81F9,0x81FD,0x81FF,0x8200,0x8203,0x820F, - 0x8213,0x8214,0x8219,0x821A,0x821D,0x8221,0x8222,0x8228, - 0x8232,0x8234,0x823A,0x8243,0x8244,0x8245,0x8246,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 88, Array index 0x2E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x824B,0x824E,0x824F,0x8251,0x8256,0x825C,0x8260, - 0x8263,0x8267,0x826D,0x8274,0x827B,0x827D,0x827F,0x8280, - 0x8281,0x8283,0x8284,0x8287,0x8289,0x828A,0x828E,0x8291, - 0x8294,0x8296,0x8298,0x829A,0x829B,0x82A0,0x82A1,0x82A3, - 0x82A4,0x82A7,0x82A8,0x82A9,0x82AA,0x82AE,0x82B0,0x82B2, - 0x82B4,0x82B7,0x82BA,0x82BC,0x82BE,0x82BF,0x82C6,0x82D0, - 0x82D5,0x82DA,0x82E0,0x82E2,0x82E4,0x82E8,0x82EA,0x82ED, - 0x82EF,0x82F6,0x82F7,0x82FD,0x82FE,0x8300,0x8301,0x8307, - 0x8308,0x830A,0x830B,0x8354,0x831B,0x831D,0x831E,0x831F, - 0x8321,0x8322,0x832C,0x832D,0x832E,0x8330,0x8333,0x8337, - 0x833A,0x833C,0x833D,0x8342,0x8343,0x8344,0x8347,0x834D, - 0x834E,0x8351,0x8355,0x8356,0x8357,0x8370,0x8378,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 89, Array index 0x2F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x837D,0x837F,0x8380,0x8382,0x8384,0x8386,0x838D, - 0x8392,0x8394,0x8395,0x8398,0x8399,0x839B,0x839C,0x839D, - 0x83A6,0x83A7,0x83A9,0x83AC,0x83BE,0x83BF,0x83C0,0x83C7, - 0x83C9,0x83CF,0x83D0,0x83D1,0x83D4,0x83DD,0x8353,0x83E8, - 0x83EA,0x83F6,0x83F8,0x83F9,0x83FC,0x8401,0x8406,0x840A, - 0x840F,0x8411,0x8415,0x8419,0x83AD,0x842F,0x8439,0x8445, - 0x8447,0x8448,0x844A,0x844D,0x844F,0x8451,0x8452,0x8456, - 0x8458,0x8459,0x845A,0x845C,0x8460,0x8464,0x8465,0x8467, - 0x846A,0x8470,0x8473,0x8474,0x8476,0x8478,0x847C,0x847D, - 0x8481,0x8485,0x8492,0x8493,0x8495,0x849E,0x84A6,0x84A8, - 0x84A9,0x84AA,0x84AF,0x84B1,0x84B4,0x84BA,0x84BD,0x84BE, - 0x84C0,0x84C2,0x84C7,0x84C8,0x84CC,0x84CF,0x84D3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 90, Array index 0x3000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x84DC,0x84E7,0x84EA,0x84EF,0x84F0,0x84F1,0x84F2, - 0x84F7,0x8532,0x84FA,0x84FB,0x84FD,0x8502,0x8503,0x8507, - 0x850C,0x850E,0x8510,0x851C,0x851E,0x8522,0x8523,0x8524, - 0x8525,0x8527,0x852A,0x852B,0x852F,0x8533,0x8534,0x8536, - 0x853F,0x8546,0x854F,0x8550,0x8551,0x8552,0x8553,0x8556, - 0x8559,0x855C,0x855D,0x855E,0x855F,0x8560,0x8561,0x8562, - 0x8564,0x856B,0x856F,0x8579,0x857A,0x857B,0x857D,0x857F, - 0x8581,0x8585,0x8586,0x8589,0x858B,0x858C,0x858F,0x8593, - 0x8598,0x859D,0x859F,0x85A0,0x85A2,0x85A5,0x85A7,0x85B4, - 0x85B6,0x85B7,0x85B8,0x85BC,0x85BD,0x85BE,0x85BF,0x85C2, - 0x85C7,0x85CA,0x85CB,0x85CE,0x85AD,0x85D8,0x85DA,0x85DF, - 0x85E0,0x85E6,0x85E8,0x85ED,0x85F3,0x85F6,0x85FC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 91, Array index 0x3100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x85FF,0x8600,0x8604,0x8605,0x860D,0x860E,0x8610, - 0x8611,0x8612,0x8618,0x8619,0x861B,0x861E,0x8621,0x8627, - 0x8629,0x8636,0x8638,0x863A,0x863C,0x863D,0x8640,0x8642, - 0x8646,0x8652,0x8653,0x8656,0x8657,0x8658,0x8659,0x865D, - 0x8660,0x8661,0x8662,0x8663,0x8664,0x8669,0x866C,0x866F, - 0x8675,0x8676,0x8677,0x867A,0x868D,0x8691,0x8696,0x8698, - 0x869A,0x869C,0x86A1,0x86A6,0x86A7,0x86A8,0x86AD,0x86B1, - 0x86B3,0x86B4,0x86B5,0x86B7,0x86B8,0x86B9,0x86BF,0x86C0, - 0x86C1,0x86C3,0x86C5,0x86D1,0x86D2,0x86D5,0x86D7,0x86DA, - 0x86DC,0x86E0,0x86E3,0x86E5,0x86E7,0x8688,0x86FA,0x86FC, - 0x86FD,0x8704,0x8705,0x8707,0x870B,0x870E,0x870F,0x8710, - 0x8713,0x8714,0x8719,0x871E,0x871F,0x8721,0x8723,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 92, Array index 0x3200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8728,0x872E,0x872F,0x8731,0x8732,0x8739,0x873A, - 0x873C,0x873D,0x873E,0x8740,0x8743,0x8745,0x874D,0x8758, - 0x875D,0x8761,0x8764,0x8765,0x876F,0x8771,0x8772,0x877B, - 0x8783,0x8784,0x8785,0x8786,0x8787,0x8788,0x8789,0x878B, - 0x878C,0x8790,0x8793,0x8795,0x8797,0x8798,0x8799,0x879E, - 0x87A0,0x87A3,0x87A7,0x87AC,0x87AD,0x87AE,0x87B1,0x87B5, - 0x87BE,0x87BF,0x87C1,0x87C8,0x87C9,0x87CA,0x87CE,0x87D5, - 0x87D6,0x87D9,0x87DA,0x87DC,0x87DF,0x87E2,0x87E3,0x87E4, - 0x87EA,0x87EB,0x87ED,0x87F1,0x87F3,0x87F8,0x87FA,0x87FF, - 0x8801,0x8803,0x8806,0x8809,0x880A,0x880B,0x8810,0x8819, - 0x8812,0x8813,0x8814,0x8818,0x881A,0x881B,0x881C,0x881E, - 0x881F,0x8828,0x882D,0x882E,0x8830,0x8832,0x8835,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 93, Array index 0x3300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x883A,0x883C,0x8841,0x8843,0x8845,0x8848,0x8849, - 0x884A,0x884B,0x884E,0x8851,0x8855,0x8856,0x8858,0x885A, - 0x885C,0x885F,0x8860,0x8864,0x8869,0x8871,0x8879,0x887B, - 0x8880,0x8898,0x889A,0x889B,0x889C,0x889F,0x88A0,0x88A8, - 0x88AA,0x88BA,0x88BD,0x88BE,0x88C0,0x88CA,0x88CB,0x88CC, - 0x88CD,0x88CE,0x88D1,0x88D2,0x88D3,0x88DB,0x88DE,0x88E7, - 0x88EF,0x88F0,0x88F1,0x88F5,0x88F7,0x8901,0x8906,0x890D, - 0x890E,0x890F,0x8915,0x8916,0x8918,0x8919,0x891A,0x891C, - 0x8920,0x8926,0x8927,0x8928,0x8930,0x8931,0x8932,0x8935, - 0x8939,0x893A,0x893E,0x8940,0x8942,0x8945,0x8946,0x8949, - 0x894F,0x8952,0x8957,0x895A,0x895B,0x895C,0x8961,0x8962, - 0x8963,0x896B,0x896E,0x8970,0x8973,0x8975,0x897A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 94, Array index 0x3400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x897B,0x897C,0x897D,0x8989,0x898D,0x8990,0x8994, - 0x8995,0x899B,0x899C,0x899F,0x89A0,0x89A5,0x89B0,0x89B4, - 0x89B5,0x89B6,0x89B7,0x89BC,0x89D4,0x89D5,0x89D6,0x89D7, - 0x89D8,0x89E5,0x89E9,0x89EB,0x89ED,0x89F1,0x89F3,0x89F6, - 0x89F9,0x89FD,0x89FF,0x8A04,0x8A05,0x8A07,0x8A0F,0x8A11, - 0x8A12,0x8A14,0x8A15,0x8A1E,0x8A20,0x8A22,0x8A24,0x8A26, - 0x8A2B,0x8A2C,0x8A2F,0x8A35,0x8A37,0x8A3D,0x8A3E,0x8A40, - 0x8A43,0x8A45,0x8A47,0x8A49,0x8A4D,0x8A4E,0x8A53,0x8A56, - 0x8A57,0x8A58,0x8A5C,0x8A5D,0x8A61,0x8A65,0x8A67,0x8A75, - 0x8A76,0x8A77,0x8A79,0x8A7A,0x8A7B,0x8A7E,0x8A7F,0x8A80, - 0x8A83,0x8A86,0x8A8B,0x8A8F,0x8A90,0x8A92,0x8A96,0x8A97, - 0x8A99,0x8A9F,0x8AA7,0x8AA9,0x8AAE,0x8AAF,0x8AB3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 95, Array index 0x3500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8AB6,0x8AB7,0x8ABB,0x8ABE,0x8AC3,0x8AC6,0x8AC8, - 0x8AC9,0x8ACA,0x8AD1,0x8AD3,0x8AD4,0x8AD5,0x8AD7,0x8ADD, - 0x8ADF,0x8AEC,0x8AF0,0x8AF4,0x8AF5,0x8AF6,0x8AFC,0x8AFF, - 0x8B05,0x8B06,0x8B0B,0x8B11,0x8B1C,0x8B1E,0x8B1F,0x8B0A, - 0x8B2D,0x8B30,0x8B37,0x8B3C,0x8B42,0x8B43,0x8B44,0x8B45, - 0x8B46,0x8B48,0x8B52,0x8B53,0x8B54,0x8B59,0x8B4D,0x8B5E, - 0x8B63,0x8B6D,0x8B76,0x8B78,0x8B79,0x8B7C,0x8B7E,0x8B81, - 0x8B84,0x8B85,0x8B8B,0x8B8D,0x8B8F,0x8B94,0x8B95,0x8B9C, - 0x8B9E,0x8B9F,0x8C38,0x8C39,0x8C3D,0x8C3E,0x8C45,0x8C47, - 0x8C49,0x8C4B,0x8C4F,0x8C51,0x8C53,0x8C54,0x8C57,0x8C58, - 0x8C5B,0x8C5D,0x8C59,0x8C63,0x8C64,0x8C66,0x8C68,0x8C69, - 0x8C6D,0x8C73,0x8C75,0x8C76,0x8C7B,0x8C7E,0x8C86,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 96, Array index 0x3600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8C87,0x8C8B,0x8C90,0x8C92,0x8C93,0x8C99,0x8C9B, - 0x8C9C,0x8CA4,0x8CB9,0x8CBA,0x8CC5,0x8CC6,0x8CC9,0x8CCB, - 0x8CCF,0x8CD6,0x8CD5,0x8CD9,0x8CDD,0x8CE1,0x8CE8,0x8CEC, - 0x8CEF,0x8CF0,0x8CF2,0x8CF5,0x8CF7,0x8CF8,0x8CFE,0x8CFF, - 0x8D01,0x8D03,0x8D09,0x8D12,0x8D17,0x8D1B,0x8D65,0x8D69, - 0x8D6C,0x8D6E,0x8D7F,0x8D82,0x8D84,0x8D88,0x8D8D,0x8D90, - 0x8D91,0x8D95,0x8D9E,0x8D9F,0x8DA0,0x8DA6,0x8DAB,0x8DAC, - 0x8DAF,0x8DB2,0x8DB5,0x8DB7,0x8DB9,0x8DBB,0x8DC0,0x8DC5, - 0x8DC6,0x8DC7,0x8DC8,0x8DCA,0x8DCE,0x8DD1,0x8DD4,0x8DD5, - 0x8DD7,0x8DD9,0x8DE4,0x8DE5,0x8DE7,0x8DEC,0x8DF0,0x8DBC, - 0x8DF1,0x8DF2,0x8DF4,0x8DFD,0x8E01,0x8E04,0x8E05,0x8E06, - 0x8E0B,0x8E11,0x8E14,0x8E16,0x8E20,0x8E21,0x8E22,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 97, Array index 0x3700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8E23,0x8E26,0x8E27,0x8E31,0x8E33,0x8E36,0x8E37, - 0x8E38,0x8E39,0x8E3D,0x8E40,0x8E41,0x8E4B,0x8E4D,0x8E4E, - 0x8E4F,0x8E54,0x8E5B,0x8E5C,0x8E5D,0x8E5E,0x8E61,0x8E62, - 0x8E69,0x8E6C,0x8E6D,0x8E6F,0x8E70,0x8E71,0x8E79,0x8E7A, - 0x8E7B,0x8E82,0x8E83,0x8E89,0x8E90,0x8E92,0x8E95,0x8E9A, - 0x8E9B,0x8E9D,0x8E9E,0x8EA2,0x8EA7,0x8EA9,0x8EAD,0x8EAE, - 0x8EB3,0x8EB5,0x8EBA,0x8EBB,0x8EC0,0x8EC1,0x8EC3,0x8EC4, - 0x8EC7,0x8ECF,0x8ED1,0x8ED4,0x8EDC,0x8EE8,0x8EEE,0x8EF0, - 0x8EF1,0x8EF7,0x8EF9,0x8EFA,0x8EED,0x8F00,0x8F02,0x8F07, - 0x8F08,0x8F0F,0x8F10,0x8F16,0x8F17,0x8F18,0x8F1E,0x8F20, - 0x8F21,0x8F23,0x8F25,0x8F27,0x8F28,0x8F2C,0x8F2D,0x8F2E, - 0x8F34,0x8F35,0x8F36,0x8F37,0x8F3A,0x8F40,0x8F41,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 98, Array index 0x3800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8F43,0x8F47,0x8F4F,0x8F51,0x8F52,0x8F53,0x8F54, - 0x8F55,0x8F58,0x8F5D,0x8F5E,0x8F65,0x8F9D,0x8FA0,0x8FA1, - 0x8FA4,0x8FA5,0x8FA6,0x8FB5,0x8FB6,0x8FB8,0x8FBE,0x8FC0, - 0x8FC1,0x8FC6,0x8FCA,0x8FCB,0x8FCD,0x8FD0,0x8FD2,0x8FD3, - 0x8FD5,0x8FE0,0x8FE3,0x8FE4,0x8FE8,0x8FEE,0x8FF1,0x8FF5, - 0x8FF6,0x8FFB,0x8FFE,0x9002,0x9004,0x9008,0x900C,0x9018, - 0x901B,0x9028,0x9029,0x902F,0x902A,0x902C,0x902D,0x9033, - 0x9034,0x9037,0x903F,0x9043,0x9044,0x904C,0x905B,0x905D, - 0x9062,0x9066,0x9067,0x906C,0x9070,0x9074,0x9079,0x9085, - 0x9088,0x908B,0x908C,0x908E,0x9090,0x9095,0x9097,0x9098, - 0x9099,0x909B,0x90A0,0x90A1,0x90A2,0x90A5,0x90B0,0x90B2, - 0x90B3,0x90B4,0x90B6,0x90BD,0x90CC,0x90BE,0x90C3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 99, Array index 0x3900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x90C4,0x90C5,0x90C7,0x90C8,0x90D5,0x90D7,0x90D8, - 0x90D9,0x90DC,0x90DD,0x90DF,0x90E5,0x90D2,0x90F6,0x90EB, - 0x90EF,0x90F0,0x90F4,0x90FE,0x90FF,0x9100,0x9104,0x9105, - 0x9106,0x9108,0x910D,0x9110,0x9114,0x9116,0x9117,0x9118, - 0x911A,0x911C,0x911E,0x9120,0x9125,0x9122,0x9123,0x9127, - 0x9129,0x912E,0x912F,0x9131,0x9134,0x9136,0x9137,0x9139, - 0x913A,0x913C,0x913D,0x9143,0x9147,0x9148,0x914F,0x9153, - 0x9157,0x9159,0x915A,0x915B,0x9161,0x9164,0x9167,0x916D, - 0x9174,0x9179,0x917A,0x917B,0x9181,0x9183,0x9185,0x9186, - 0x918A,0x918E,0x9191,0x9193,0x9194,0x9195,0x9198,0x919E, - 0x91A1,0x91A6,0x91A8,0x91AC,0x91AD,0x91AE,0x91B0,0x91B1, - 0x91B2,0x91B3,0x91B6,0x91BB,0x91BC,0x91BD,0x91BF,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 100, Array index 0x3A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x91C2,0x91C3,0x91C5,0x91D3,0x91D4,0x91D7,0x91D9, - 0x91DA,0x91DE,0x91E4,0x91E5,0x91E9,0x91EA,0x91EC,0x91ED, - 0x91EE,0x91EF,0x91F0,0x91F1,0x91F7,0x91F9,0x91FB,0x91FD, - 0x9200,0x9201,0x9204,0x9205,0x9206,0x9207,0x9209,0x920A, - 0x920C,0x9210,0x9212,0x9213,0x9216,0x9218,0x921C,0x921D, - 0x9223,0x9224,0x9225,0x9226,0x9228,0x922E,0x922F,0x9230, - 0x9233,0x9235,0x9236,0x9238,0x9239,0x923A,0x923C,0x923E, - 0x9240,0x9242,0x9243,0x9246,0x9247,0x924A,0x924D,0x924E, - 0x924F,0x9251,0x9258,0x9259,0x925C,0x925D,0x9260,0x9261, - 0x9265,0x9267,0x9268,0x9269,0x926E,0x926F,0x9270,0x9275, - 0x9276,0x9277,0x9278,0x9279,0x927B,0x927C,0x927D,0x927F, - 0x9288,0x9289,0x928A,0x928D,0x928E,0x9292,0x9297,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 101, Array index 0x3B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9299,0x929F,0x92A0,0x92A4,0x92A5,0x92A7,0x92A8, - 0x92AB,0x92AF,0x92B2,0x92B6,0x92B8,0x92BA,0x92BB,0x92BC, - 0x92BD,0x92BF,0x92C0,0x92C1,0x92C2,0x92C3,0x92C5,0x92C6, - 0x92C7,0x92C8,0x92CB,0x92CC,0x92CD,0x92CE,0x92D0,0x92D3, - 0x92D5,0x92D7,0x92D8,0x92D9,0x92DC,0x92DD,0x92DF,0x92E0, - 0x92E1,0x92E3,0x92E5,0x92E7,0x92E8,0x92EC,0x92EE,0x92F0, - 0x92F9,0x92FB,0x92FF,0x9300,0x9302,0x9308,0x930D,0x9311, - 0x9314,0x9315,0x931C,0x931D,0x931E,0x931F,0x9321,0x9324, - 0x9325,0x9327,0x9329,0x932A,0x9333,0x9334,0x9336,0x9337, - 0x9347,0x9348,0x9349,0x9350,0x9351,0x9352,0x9355,0x9357, - 0x9358,0x935A,0x935E,0x9364,0x9365,0x9367,0x9369,0x936A, - 0x936D,0x936F,0x9370,0x9371,0x9373,0x9374,0x9376,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 102, Array index 0x3C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x937A,0x937D,0x937F,0x9380,0x9381,0x9382,0x9388, - 0x938A,0x938B,0x938D,0x938F,0x9392,0x9395,0x9398,0x939B, - 0x939E,0x93A1,0x93A3,0x93A4,0x93A6,0x93A8,0x93AB,0x93B4, - 0x93B5,0x93B6,0x93BA,0x93A9,0x93C1,0x93C4,0x93C5,0x93C6, - 0x93C7,0x93C9,0x93CA,0x93CB,0x93CC,0x93CD,0x93D3,0x93D9, - 0x93DC,0x93DE,0x93DF,0x93E2,0x93E6,0x93E7,0x93F9,0x93F7, - 0x93F8,0x93FA,0x93FB,0x93FD,0x9401,0x9402,0x9404,0x9408, - 0x9409,0x940D,0x940E,0x940F,0x9415,0x9416,0x9417,0x941F, - 0x942E,0x942F,0x9431,0x9432,0x9433,0x9434,0x943B,0x943F, - 0x943D,0x9443,0x9445,0x9448,0x944A,0x944C,0x9455,0x9459, - 0x945C,0x945F,0x9461,0x9463,0x9468,0x946B,0x946D,0x946E, - 0x946F,0x9471,0x9472,0x9484,0x9483,0x9578,0x9579,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 103, Array index 0x3D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x957E,0x9584,0x9588,0x958C,0x958D,0x958E,0x959D, - 0x959E,0x959F,0x95A1,0x95A6,0x95A9,0x95AB,0x95AC,0x95B4, - 0x95B6,0x95BA,0x95BD,0x95BF,0x95C6,0x95C8,0x95C9,0x95CB, - 0x95D0,0x95D1,0x95D2,0x95D3,0x95D9,0x95DA,0x95DD,0x95DE, - 0x95DF,0x95E0,0x95E4,0x95E6,0x961D,0x961E,0x9622,0x9624, - 0x9625,0x9626,0x962C,0x9631,0x9633,0x9637,0x9638,0x9639, - 0x963A,0x963C,0x963D,0x9641,0x9652,0x9654,0x9656,0x9657, - 0x9658,0x9661,0x966E,0x9674,0x967B,0x967C,0x967E,0x967F, - 0x9681,0x9682,0x9683,0x9684,0x9689,0x9691,0x9696,0x969A, - 0x969D,0x969F,0x96A4,0x96A5,0x96A6,0x96A9,0x96AE,0x96AF, - 0x96B3,0x96BA,0x96CA,0x96D2,0x5DB2,0x96D8,0x96DA,0x96DD, - 0x96DE,0x96DF,0x96E9,0x96EF,0x96F1,0x96FA,0x9702,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 104, Array index 0x3E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9703,0x9705,0x9709,0x971A,0x971B,0x971D,0x9721, - 0x9722,0x9723,0x9728,0x9731,0x9733,0x9741,0x9743,0x974A, - 0x974E,0x974F,0x9755,0x9757,0x9758,0x975A,0x975B,0x9763, - 0x9767,0x976A,0x976E,0x9773,0x9776,0x9777,0x9778,0x977B, - 0x977D,0x977F,0x9780,0x9789,0x9795,0x9796,0x9797,0x9799, - 0x979A,0x979E,0x979F,0x97A2,0x97AC,0x97AE,0x97B1,0x97B2, - 0x97B5,0x97B6,0x97B8,0x97B9,0x97BA,0x97BC,0x97BE,0x97BF, - 0x97C1,0x97C4,0x97C5,0x97C7,0x97C9,0x97CA,0x97CC,0x97CD, - 0x97CE,0x97D0,0x97D1,0x97D4,0x97D7,0x97D8,0x97D9,0x97DD, - 0x97DE,0x97E0,0x97DB,0x97E1,0x97E4,0x97EF,0x97F1,0x97F4, - 0x97F7,0x97F8,0x97FA,0x9807,0x980A,0x9819,0x980D,0x980E, - 0x9814,0x9816,0x981C,0x981E,0x9820,0x9823,0x9826,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 105, Array index 0x3F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x982B,0x982E,0x982F,0x9830,0x9832,0x9833,0x9835, - 0x9825,0x983E,0x9844,0x9847,0x984A,0x9851,0x9852,0x9853, - 0x9856,0x9857,0x9859,0x985A,0x9862,0x9863,0x9865,0x9866, - 0x986A,0x986C,0x98AB,0x98AD,0x98AE,0x98B0,0x98B4,0x98B7, - 0x98B8,0x98BA,0x98BB,0x98BF,0x98C2,0x98C5,0x98C8,0x98CC, - 0x98E1,0x98E3,0x98E5,0x98E6,0x98E7,0x98EA,0x98F3,0x98F6, - 0x9902,0x9907,0x9908,0x9911,0x9915,0x9916,0x9917,0x991A, - 0x991B,0x991C,0x991F,0x9922,0x9926,0x9927,0x992B,0x9931, - 0x9932,0x9933,0x9934,0x9935,0x9939,0x993A,0x993B,0x993C, - 0x9940,0x9941,0x9946,0x9947,0x9948,0x994D,0x994E,0x9954, - 0x9958,0x9959,0x995B,0x995C,0x995E,0x995F,0x9960,0x999B, - 0x999D,0x999F,0x99A6,0x99B0,0x99B1,0x99B2,0x99B5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 106, Array index 0x4000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x99B9,0x99BA,0x99BD,0x99BF,0x99C3,0x99C9,0x99D3, - 0x99D4,0x99D9,0x99DA,0x99DC,0x99DE,0x99E7,0x99EA,0x99EB, - 0x99EC,0x99F0,0x99F4,0x99F5,0x99F9,0x99FD,0x99FE,0x9A02, - 0x9A03,0x9A04,0x9A0B,0x9A0C,0x9A10,0x9A11,0x9A16,0x9A1E, - 0x9A20,0x9A22,0x9A23,0x9A24,0x9A27,0x9A2D,0x9A2E,0x9A33, - 0x9A35,0x9A36,0x9A38,0x9A47,0x9A41,0x9A44,0x9A4A,0x9A4B, - 0x9A4C,0x9A4E,0x9A51,0x9A54,0x9A56,0x9A5D,0x9AAA,0x9AAC, - 0x9AAE,0x9AAF,0x9AB2,0x9AB4,0x9AB5,0x9AB6,0x9AB9,0x9ABB, - 0x9ABE,0x9ABF,0x9AC1,0x9AC3,0x9AC6,0x9AC8,0x9ACE,0x9AD0, - 0x9AD2,0x9AD5,0x9AD6,0x9AD7,0x9ADB,0x9ADC,0x9AE0,0x9AE4, - 0x9AE5,0x9AE7,0x9AE9,0x9AEC,0x9AF2,0x9AF3,0x9AF5,0x9AF9, - 0x9AFA,0x9AFD,0x9AFF,0x9B00,0x9B01,0x9B02,0x9B03,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 107, Array index 0x4100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9B04,0x9B05,0x9B08,0x9B09,0x9B0B,0x9B0C,0x9B0D, - 0x9B0E,0x9B10,0x9B12,0x9B16,0x9B19,0x9B1B,0x9B1C,0x9B20, - 0x9B26,0x9B2B,0x9B2D,0x9B33,0x9B34,0x9B35,0x9B37,0x9B39, - 0x9B3A,0x9B3D,0x9B48,0x9B4B,0x9B4C,0x9B55,0x9B56,0x9B57, - 0x9B5B,0x9B5E,0x9B61,0x9B63,0x9B65,0x9B66,0x9B68,0x9B6A, - 0x9B6B,0x9B6C,0x9B6D,0x9B6E,0x9B73,0x9B75,0x9B77,0x9B78, - 0x9B79,0x9B7F,0x9B80,0x9B84,0x9B85,0x9B86,0x9B87,0x9B89, - 0x9B8A,0x9B8B,0x9B8D,0x9B8F,0x9B90,0x9B94,0x9B9A,0x9B9D, - 0x9B9E,0x9BA6,0x9BA7,0x9BA9,0x9BAC,0x9BB0,0x9BB1,0x9BB2, - 0x9BB7,0x9BB8,0x9BBB,0x9BBC,0x9BBE,0x9BBF,0x9BC1,0x9BC7, - 0x9BC8,0x9BCE,0x9BD0,0x9BD7,0x9BD8,0x9BDD,0x9BDF,0x9BE5, - 0x9BE7,0x9BEA,0x9BEB,0x9BEF,0x9BF3,0x9BF7,0x9BF8,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 108, Array index 0x4200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9BF9,0x9BFA,0x9BFD,0x9BFF,0x9C00,0x9C02,0x9C0B, - 0x9C0F,0x9C11,0x9C16,0x9C18,0x9C19,0x9C1A,0x9C1C,0x9C1E, - 0x9C22,0x9C23,0x9C26,0x9C27,0x9C28,0x9C29,0x9C2A,0x9C31, - 0x9C35,0x9C36,0x9C37,0x9C3D,0x9C41,0x9C43,0x9C44,0x9C45, - 0x9C49,0x9C4A,0x9C4E,0x9C4F,0x9C50,0x9C53,0x9C54,0x9C56, - 0x9C58,0x9C5B,0x9C5D,0x9C5E,0x9C5F,0x9C63,0x9C69,0x9C6A, - 0x9C5C,0x9C6B,0x9C68,0x9C6E,0x9C70,0x9C72,0x9C75,0x9C77, - 0x9C7B,0x9CE6,0x9CF2,0x9CF7,0x9CF9,0x9D0B,0x9D02,0x9D11, - 0x9D17,0x9D18,0x9D1C,0x9D1D,0x9D1E,0x9D2F,0x9D30,0x9D32, - 0x9D33,0x9D34,0x9D3A,0x9D3C,0x9D45,0x9D3D,0x9D42,0x9D43, - 0x9D47,0x9D4A,0x9D53,0x9D54,0x9D5F,0x9D63,0x9D62,0x9D65, - 0x9D69,0x9D6A,0x9D6B,0x9D70,0x9D76,0x9D77,0x9D7B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 109, Array index 0x4300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9D7C,0x9D7E,0x9D83,0x9D84,0x9D86,0x9D8A,0x9D8D, - 0x9D8E,0x9D92,0x9D93,0x9D95,0x9D96,0x9D97,0x9D98,0x9DA1, - 0x9DAA,0x9DAC,0x9DAE,0x9DB1,0x9DB5,0x9DB9,0x9DBC,0x9DBF, - 0x9DC3,0x9DC7,0x9DC9,0x9DCA,0x9DD4,0x9DD5,0x9DD6,0x9DD7, - 0x9DDA,0x9DDE,0x9DDF,0x9DE0,0x9DE5,0x9DE7,0x9DE9,0x9DEB, - 0x9DEE,0x9DF0,0x9DF3,0x9DF4,0x9DFE,0x9E0A,0x9E02,0x9E07, - 0x9E0E,0x9E10,0x9E11,0x9E12,0x9E15,0x9E16,0x9E19,0x9E1C, - 0x9E1D,0x9E7A,0x9E7B,0x9E7C,0x9E80,0x9E82,0x9E83,0x9E84, - 0x9E85,0x9E87,0x9E8E,0x9E8F,0x9E96,0x9E98,0x9E9B,0x9E9E, - 0x9EA4,0x9EA8,0x9EAC,0x9EAE,0x9EAF,0x9EB0,0x9EB3,0x9EB4, - 0x9EB5,0x9EC6,0x9EC8,0x9ECB,0x9ED5,0x9EDF,0x9EE4,0x9EE7, - 0x9EEC,0x9EED,0x9EEE,0x9EF0,0x9EF1,0x9EF2,0x9EF5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 110, Array index 0x4400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9EF8,0x9EFF,0x9F02,0x9F03,0x9F09,0x9F0F,0x9F10, - 0x9F11,0x9F12,0x9F14,0x9F16,0x9F17,0x9F19,0x9F1A,0x9F1B, - 0x9F1F,0x9F22,0x9F26,0x9F2A,0x9F2B,0x9F2F,0x9F31,0x9F32, - 0x9F34,0x9F37,0x9F39,0x9F3A,0x9F3C,0x9F3D,0x9F3F,0x9F41, - 0x9F43,0x9F44,0x9F45,0x9F46,0x9F47,0x9F53,0x9F55,0x9F56, - 0x9F57,0x9F58,0x9F5A,0x9F5D,0x9F5E,0x9F68,0x9F69,0x9F6D, - 0x9F6E,0x9F6F,0x9F70,0x9F71,0x9F73,0x9F75,0x9F7A,0x9F7D, - 0x9F8F,0x9F90,0x9F91,0x9F92,0x9F94,0x9F96,0x9F97,0x9F9E, - 0x9FA1,0x9FA2,0x9FA3,0x9FA5,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, -}; - -#endif /* ICONV_TO_UCS_CCS_JIS_X0212_1990 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit jis_x0212_1990 -> UCS size-optimized table (12602 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_JIS_X0212_1990) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_size_jis_x0212_1990[] = -{ - 0x0049, /* Ranges number */ - 0x0004, /* Unranged codes number */ - 0x1895, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0x222F, 0x2239, 0x00DE, - /* Array index: 0x0006 */ 0x2242, 0x2244, 0x00E9, - /* Array index: 0x0009 */ 0x226B, 0x2271, 0x00EC, - /* Array index: 0x000C */ 0x2661, 0x266C, 0x00F3, - /* Array index: 0x000F */ 0x2671, 0x267C, 0x00FF, - /* Array index: 0x0012 */ 0x2742, 0x274E, 0x010B, - /* Array index: 0x0015 */ 0x2772, 0x277E, 0x0118, - /* Array index: 0x0018 */ 0x2928, 0x2930, 0x0125, - /* Array index: 0x001B */ 0x2941, 0x2950, 0x012E, - /* Array index: 0x001E */ 0x2A21, 0x2A77, 0x013E, - /* Array index: 0x0021 */ 0x2B21, 0x2B77, 0x0195, - /* Array index: 0x0024 */ 0x3021, 0x307E, 0x01EC, - /* Array index: 0x0027 */ 0x3121, 0x317E, 0x024A, - /* Array index: 0x002A */ 0x3221, 0x327E, 0x02A8, - /* Array index: 0x002D */ 0x3321, 0x337E, 0x0306, - /* Array index: 0x0030 */ 0x3421, 0x347E, 0x0364, - /* Array index: 0x0033 */ 0x3521, 0x357E, 0x03C2, - /* Array index: 0x0036 */ 0x3621, 0x367E, 0x0420, - /* Array index: 0x0039 */ 0x3721, 0x377E, 0x047E, - /* Array index: 0x003C */ 0x3821, 0x387E, 0x04DC, - /* Array index: 0x003F */ 0x3921, 0x397E, 0x053A, - /* Array index: 0x0042 */ 0x3A21, 0x3A7E, 0x0598, - /* Array index: 0x0045 */ 0x3B21, 0x3B7E, 0x05F6, - /* Array index: 0x0048 */ 0x3C21, 0x3C7E, 0x0654, - /* Array index: 0x004B */ 0x3D21, 0x3D7E, 0x06B2, - /* Array index: 0x004E */ 0x3E21, 0x3E7E, 0x0710, - /* Array index: 0x0051 */ 0x3F21, 0x3F7E, 0x076E, - /* Array index: 0x0054 */ 0x4021, 0x407E, 0x07CC, - /* Array index: 0x0057 */ 0x4121, 0x417E, 0x082A, - /* Array index: 0x005A */ 0x4221, 0x427E, 0x0888, - /* Array index: 0x005D */ 0x4321, 0x437E, 0x08E6, - /* Array index: 0x0060 */ 0x4421, 0x447E, 0x0944, - /* Array index: 0x0063 */ 0x4521, 0x457E, 0x09A2, - /* Array index: 0x0066 */ 0x4621, 0x467E, 0x0A00, - /* Array index: 0x0069 */ 0x4721, 0x477E, 0x0A5E, - /* Array index: 0x006C */ 0x4821, 0x487E, 0x0ABC, - /* Array index: 0x006F */ 0x4921, 0x497E, 0x0B1A, - /* Array index: 0x0072 */ 0x4A21, 0x4A7E, 0x0B78, - /* Array index: 0x0075 */ 0x4B21, 0x4B7E, 0x0BD6, - /* Array index: 0x0078 */ 0x4C21, 0x4C7E, 0x0C34, - /* Array index: 0x007B */ 0x4D21, 0x4D7E, 0x0C92, - /* Array index: 0x007E */ 0x4E21, 0x4E7E, 0x0CF0, - /* Array index: 0x0081 */ 0x4F21, 0x4F7E, 0x0D4E, - /* Array index: 0x0084 */ 0x5021, 0x507E, 0x0DAC, - /* Array index: 0x0087 */ 0x5121, 0x517E, 0x0E0A, - /* Array index: 0x008A */ 0x5221, 0x527E, 0x0E68, - /* Array index: 0x008D */ 0x5321, 0x537E, 0x0EC6, - /* Array index: 0x0090 */ 0x5421, 0x547E, 0x0F24, - /* Array index: 0x0093 */ 0x5521, 0x557E, 0x0F82, - /* Array index: 0x0096 */ 0x5621, 0x567E, 0x0FE0, - /* Array index: 0x0099 */ 0x5721, 0x577E, 0x103E, - /* Array index: 0x009C */ 0x5821, 0x587E, 0x109C, - /* Array index: 0x009F */ 0x5921, 0x597E, 0x10FA, - /* Array index: 0x00A2 */ 0x5A21, 0x5A7E, 0x1158, - /* Array index: 0x00A5 */ 0x5B21, 0x5B7E, 0x11B6, - /* Array index: 0x00A8 */ 0x5C21, 0x5C7E, 0x1214, - /* Array index: 0x00AB */ 0x5D21, 0x5D7E, 0x1272, - /* Array index: 0x00AE */ 0x5E21, 0x5E7E, 0x12D0, - /* Array index: 0x00B1 */ 0x5F21, 0x5F7E, 0x132E, - /* Array index: 0x00B4 */ 0x6021, 0x607E, 0x138C, - /* Array index: 0x00B7 */ 0x6121, 0x617E, 0x13EA, - /* Array index: 0x00BA */ 0x6221, 0x627E, 0x1448, - /* Array index: 0x00BD */ 0x6321, 0x637E, 0x14A6, - /* Array index: 0x00C0 */ 0x6421, 0x647E, 0x1504, - /* Array index: 0x00C3 */ 0x6521, 0x657E, 0x1562, - /* Array index: 0x00C6 */ 0x6621, 0x667E, 0x15C0, - /* Array index: 0x00C9 */ 0x6721, 0x677E, 0x161E, - /* Array index: 0x00CC */ 0x6821, 0x687E, 0x167C, - /* Array index: 0x00CF */ 0x6921, 0x697E, 0x16DA, - /* Array index: 0x00D2 */ 0x6A21, 0x6A7E, 0x1738, - /* Array index: 0x00D5 */ 0x6B21, 0x6B7E, 0x1796, - /* Array index: 0x00D8 */ 0x6C21, 0x6C7E, 0x17F4, - /* Array index: 0x00DB */ 0x6D21, 0x6D63, 0x1852, - /* Ranges content */ - /* Range 0x222F - 0x2239, array index: 0x00DE */ - 0x02D8,0x02C7,0x00B8,0x02D9,0x02DD,0x00AF,0x02DB,0x02DA, - 0x007E,0x0384,0x0385, - /* Range 0x2242 - 0x2244, array index: 0x00E9 */ - 0x00A1,0x00A6,0x00BF, - /* Range 0x226B - 0x2271, array index: 0x00EC */ - 0x00BA,0x00AA,0x00A9,0x00AE,0x2122,0x00A4,0x2116, - /* Range 0x2661 - 0x266C, array index: 0x00F3 */ - 0x0386,0x0388,0x0389,0x038A,0x03AA,INVALC,0x038C,INVALC, - 0x038E,0x03AB,INVALC,0x038F, - /* Range 0x2671 - 0x267C, array index: 0x00FF */ - 0x03AC,0x03AD,0x03AE,0x03AF,0x03CA,0x0390,0x03CC,0x03C2, - 0x03CD,0x03CB,0x03B0,0x03CE, - /* Range 0x2742 - 0x274E, array index: 0x010B */ - 0x0402,0x0403,0x0404,0x0405,0x0406,0x0407,0x0408,0x0409, - 0x040A,0x040B,0x040C,0x040E,0x040F, - /* Range 0x2772 - 0x277E, array index: 0x0118 */ - 0x0452,0x0453,0x0454,0x0455,0x0456,0x0457,0x0458,0x0459, - 0x045A,0x045B,0x045C,0x045E,0x045F, - /* Range 0x2928 - 0x2930, array index: 0x0125 */ - 0x0141,0x013F,INVALC,0x014A,0x00D8,0x0152,INVALC,0x0166, - 0x00DE, - /* Range 0x2941 - 0x2950, array index: 0x012E */ - 0x00E6,0x0111,0x00F0,0x0127,0x0131,0x0133,0x0138,0x0142, - 0x0140,0x0149,0x014B,0x00F8,0x0153,0x00DF,0x0167,0x00FE, - /* Range 0x2A21 - 0x2A77, array index: 0x013E */ - 0x00C1,0x00C0,0x00C4,0x00C2,0x0102,0x01CD,0x0100,0x0104, - 0x00C5,0x00C3,0x0106,0x0108,0x010C,0x00C7,0x010A,0x010E, - 0x00C9,0x00C8,0x00CB,0x00CA,0x011A,0x0116,0x0112,0x0118, - INVALC,0x011C,0x011E,0x0122,0x0120,0x0124,0x00CD,0x00CC, - 0x00CF,0x00CE,0x01CF,0x0130,0x012A,0x012E,0x0128,0x0134, - 0x0136,0x0139,0x013D,0x013B,0x0143,0x0147,0x0145,0x00D1, - 0x00D3,0x00D2,0x00D6,0x00D4,0x01D1,0x0150,0x014C,0x00D5, - 0x0154,0x0158,0x0156,0x015A,0x015C,0x0160,0x015E,0x0164, - 0x0162,0x00DA,0x00D9,0x00DC,0x00DB,0x016C,0x01D3,0x0170, - 0x016A,0x0172,0x016E,0x0168,0x01D7,0x01DB,0x01D9,0x01D5, - 0x0174,0x00DD,0x0178,0x0176,0x0179,0x017D,0x017B, - /* Range 0x2B21 - 0x2B77, array index: 0x0195 */ - 0x00E1,0x00E0,0x00E4,0x00E2,0x0103,0x01CE,0x0101,0x0105, - 0x00E5,0x00E3,0x0107,0x0109,0x010D,0x00E7,0x010B,0x010F, - 0x00E9,0x00E8,0x00EB,0x00EA,0x011B,0x0117,0x0113,0x0119, - 0x01F5,0x011D,0x011F,INVALC,0x0121,0x0125,0x00ED,0x00EC, - 0x00EF,0x00EE,0x01D0,INVALC,0x012B,0x012F,0x0129,0x0135, - 0x0137,0x013A,0x013E,0x013C,0x0144,0x0148,0x0146,0x00F1, - 0x00F3,0x00F2,0x00F6,0x00F4,0x01D2,0x0151,0x014D,0x00F5, - 0x0155,0x0159,0x0157,0x015B,0x015D,0x0161,0x015F,0x0165, - 0x0163,0x00FA,0x00F9,0x00FC,0x00FB,0x016D,0x01D4,0x0171, - 0x016B,0x0173,0x016F,0x0169,0x01D8,0x01DC,0x01DA,0x01D6, - 0x0175,0x00FD,0x00FF,0x0177,0x017A,0x017E,0x017C, - /* Range 0x3021 - 0x307E, array index: 0x01EC */ - 0x4E02,0x4E04,0x4E05,0x4E0C,0x4E12,0x4E1F,0x4E23,0x4E24, - 0x4E28,0x4E2B,0x4E2E,0x4E2F,0x4E30,0x4E35,0x4E40,0x4E41, - 0x4E44,0x4E47,0x4E51,0x4E5A,0x4E5C,0x4E63,0x4E68,0x4E69, - 0x4E74,0x4E75,0x4E79,0x4E7F,0x4E8D,0x4E96,0x4E97,0x4E9D, - 0x4EAF,0x4EB9,0x4EC3,0x4ED0,0x4EDA,0x4EDB,0x4EE0,0x4EE1, - 0x4EE2,0x4EE8,0x4EEF,0x4EF1,0x4EF3,0x4EF5,0x4EFD,0x4EFE, - 0x4EFF,0x4F00,0x4F02,0x4F03,0x4F08,0x4F0B,0x4F0C,0x4F12, - 0x4F15,0x4F16,0x4F17,0x4F19,0x4F2E,0x4F31,0x4F60,0x4F33, - 0x4F35,0x4F37,0x4F39,0x4F3B,0x4F3E,0x4F40,0x4F42,0x4F48, - 0x4F49,0x4F4B,0x4F4C,0x4F52,0x4F54,0x4F56,0x4F58,0x4F5F, - 0x4F63,0x4F6A,0x4F6C,0x4F6E,0x4F71,0x4F77,0x4F78,0x4F79, - 0x4F7A,0x4F7D,0x4F7E,0x4F81,0x4F82,0x4F84, - /* Range 0x3121 - 0x317E, array index: 0x024A */ - 0x4F85,0x4F89,0x4F8A,0x4F8C,0x4F8E,0x4F90,0x4F92,0x4F93, - 0x4F94,0x4F97,0x4F99,0x4F9A,0x4F9E,0x4F9F,0x4FB2,0x4FB7, - 0x4FB9,0x4FBB,0x4FBC,0x4FBD,0x4FBE,0x4FC0,0x4FC1,0x4FC5, - 0x4FC6,0x4FC8,0x4FC9,0x4FCB,0x4FCC,0x4FCD,0x4FCF,0x4FD2, - 0x4FDC,0x4FE0,0x4FE2,0x4FF0,0x4FF2,0x4FFC,0x4FFD,0x4FFF, - 0x5000,0x5001,0x5004,0x5007,0x500A,0x500C,0x500E,0x5010, - 0x5013,0x5017,0x5018,0x501B,0x501C,0x501D,0x501E,0x5022, - 0x5027,0x502E,0x5030,0x5032,0x5033,0x5035,0x5040,0x5041, - 0x5042,0x5045,0x5046,0x504A,0x504C,0x504E,0x5051,0x5052, - 0x5053,0x5057,0x5059,0x505F,0x5060,0x5062,0x5063,0x5066, - 0x5067,0x506A,0x506D,0x5070,0x5071,0x503B,0x5081,0x5083, - 0x5084,0x5086,0x508A,0x508E,0x508F,0x5090, - /* Range 0x3221 - 0x327E, array index: 0x02A8 */ - 0x5092,0x5093,0x5094,0x5096,0x509B,0x509C,0x509E,0x509F, - 0x50A0,0x50A1,0x50A2,0x50AA,0x50AF,0x50B0,0x50B9,0x50BA, - 0x50BD,0x50C0,0x50C3,0x50C4,0x50C7,0x50CC,0x50CE,0x50D0, - 0x50D3,0x50D4,0x50D8,0x50DC,0x50DD,0x50DF,0x50E2,0x50E4, - 0x50E6,0x50E8,0x50E9,0x50EF,0x50F1,0x50F6,0x50FA,0x50FE, - 0x5103,0x5106,0x5107,0x5108,0x510B,0x510C,0x510D,0x510E, - 0x50F2,0x5110,0x5117,0x5119,0x511B,0x511C,0x511D,0x511E, - 0x5123,0x5127,0x5128,0x512C,0x512D,0x512F,0x5131,0x5133, - 0x5134,0x5135,0x5138,0x5139,0x5142,0x514A,0x514F,0x5153, - 0x5155,0x5157,0x5158,0x515F,0x5164,0x5166,0x517E,0x5183, - 0x5184,0x518B,0x518E,0x5198,0x519D,0x51A1,0x51A3,0x51AD, - 0x51B8,0x51BA,0x51BC,0x51BE,0x51BF,0x51C2, - /* Range 0x3321 - 0x337E, array index: 0x0306 */ - 0x51C8,0x51CF,0x51D1,0x51D2,0x51D3,0x51D5,0x51D8,0x51DE, - 0x51E2,0x51E5,0x51EE,0x51F2,0x51F3,0x51F4,0x51F7,0x5201, - 0x5202,0x5205,0x5212,0x5213,0x5215,0x5216,0x5218,0x5222, - 0x5228,0x5231,0x5232,0x5235,0x523C,0x5245,0x5249,0x5255, - 0x5257,0x5258,0x525A,0x525C,0x525F,0x5260,0x5261,0x5266, - 0x526E,0x5277,0x5278,0x5279,0x5280,0x5282,0x5285,0x528A, - 0x528C,0x5293,0x5295,0x5296,0x5297,0x5298,0x529A,0x529C, - 0x52A4,0x52A5,0x52A6,0x52A7,0x52AF,0x52B0,0x52B6,0x52B7, - 0x52B8,0x52BA,0x52BB,0x52BD,0x52C0,0x52C4,0x52C6,0x52C8, - 0x52CC,0x52CF,0x52D1,0x52D4,0x52D6,0x52DB,0x52DC,0x52E1, - 0x52E5,0x52E8,0x52E9,0x52EA,0x52EC,0x52F0,0x52F1,0x52F4, - 0x52F6,0x52F7,0x5300,0x5303,0x530A,0x530B, - /* Range 0x3421 - 0x347E, array index: 0x0364 */ - 0x530C,0x5311,0x5313,0x5318,0x531B,0x531C,0x531E,0x531F, - 0x5325,0x5327,0x5328,0x5329,0x532B,0x532C,0x532D,0x5330, - 0x5332,0x5335,0x533C,0x533D,0x533E,0x5342,0x534C,0x534B, - 0x5359,0x535B,0x5361,0x5363,0x5365,0x536C,0x536D,0x5372, - 0x5379,0x537E,0x5383,0x5387,0x5388,0x538E,0x5393,0x5394, - 0x5399,0x539D,0x53A1,0x53A4,0x53AA,0x53AB,0x53AF,0x53B2, - 0x53B4,0x53B5,0x53B7,0x53B8,0x53BA,0x53BD,0x53C0,0x53C5, - 0x53CF,0x53D2,0x53D3,0x53D5,0x53DA,0x53DD,0x53DE,0x53E0, - 0x53E6,0x53E7,0x53F5,0x5402,0x5413,0x541A,0x5421,0x5427, - 0x5428,0x542A,0x542F,0x5431,0x5434,0x5435,0x5443,0x5444, - 0x5447,0x544D,0x544F,0x545E,0x5462,0x5464,0x5466,0x5467, - 0x5469,0x546B,0x546D,0x546E,0x5474,0x547F, - /* Range 0x3521 - 0x357E, array index: 0x03C2 */ - 0x5481,0x5483,0x5485,0x5488,0x5489,0x548D,0x5491,0x5495, - 0x5496,0x549C,0x549F,0x54A1,0x54A6,0x54A7,0x54A9,0x54AA, - 0x54AD,0x54AE,0x54B1,0x54B7,0x54B9,0x54BA,0x54BB,0x54BF, - 0x54C6,0x54CA,0x54CD,0x54CE,0x54E0,0x54EA,0x54EC,0x54EF, - 0x54F6,0x54FC,0x54FE,0x54FF,0x5500,0x5501,0x5505,0x5508, - 0x5509,0x550C,0x550D,0x550E,0x5515,0x552A,0x552B,0x5532, - 0x5535,0x5536,0x553B,0x553C,0x553D,0x5541,0x5547,0x5549, - 0x554A,0x554D,0x5550,0x5551,0x5558,0x555A,0x555B,0x555E, - 0x5560,0x5561,0x5564,0x5566,0x557F,0x5581,0x5582,0x5586, - 0x5588,0x558E,0x558F,0x5591,0x5592,0x5593,0x5594,0x5597, - 0x55A3,0x55A4,0x55AD,0x55B2,0x55BF,0x55C1,0x55C3,0x55C6, - 0x55C9,0x55CB,0x55CC,0x55CE,0x55D1,0x55D2, - /* Range 0x3621 - 0x367E, array index: 0x0420 */ - 0x55D3,0x55D7,0x55D8,0x55DB,0x55DE,0x55E2,0x55E9,0x55F6, - 0x55FF,0x5605,0x5608,0x560A,0x560D,0x560E,0x560F,0x5610, - 0x5611,0x5612,0x5619,0x562C,0x5630,0x5633,0x5635,0x5637, - 0x5639,0x563B,0x563C,0x563D,0x563F,0x5640,0x5641,0x5643, - 0x5644,0x5646,0x5649,0x564B,0x564D,0x564F,0x5654,0x565E, - 0x5660,0x5661,0x5662,0x5663,0x5666,0x5669,0x566D,0x566F, - 0x5671,0x5672,0x5675,0x5684,0x5685,0x5688,0x568B,0x568C, - 0x5695,0x5699,0x569A,0x569D,0x569E,0x569F,0x56A6,0x56A7, - 0x56A8,0x56A9,0x56AB,0x56AC,0x56AD,0x56B1,0x56B3,0x56B7, - 0x56BE,0x56C5,0x56C9,0x56CA,0x56CB,0x56CF,0x56D0,0x56CC, - 0x56CD,0x56D9,0x56DC,0x56DD,0x56DF,0x56E1,0x56E4,0x56E5, - 0x56E6,0x56E7,0x56E8,0x56F1,0x56EB,0x56ED, - /* Range 0x3721 - 0x377E, array index: 0x047E */ - 0x56F6,0x56F7,0x5701,0x5702,0x5707,0x570A,0x570C,0x5711, - 0x5715,0x571A,0x571B,0x571D,0x5720,0x5722,0x5723,0x5724, - 0x5725,0x5729,0x572A,0x572C,0x572E,0x572F,0x5733,0x5734, - 0x573D,0x573E,0x573F,0x5745,0x5746,0x574C,0x574D,0x5752, - 0x5762,0x5765,0x5767,0x5768,0x576B,0x576D,0x576E,0x576F, - 0x5770,0x5771,0x5773,0x5774,0x5775,0x5777,0x5779,0x577A, - 0x577B,0x577C,0x577E,0x5781,0x5783,0x578C,0x5794,0x5797, - 0x5799,0x579A,0x579C,0x579D,0x579E,0x579F,0x57A1,0x5795, - 0x57A7,0x57A8,0x57A9,0x57AC,0x57B8,0x57BD,0x57C7,0x57C8, - 0x57CC,0x57CF,0x57D5,0x57DD,0x57DE,0x57E4,0x57E6,0x57E7, - 0x57E9,0x57ED,0x57F0,0x57F5,0x57F6,0x57F8,0x57FD,0x57FE, - 0x57FF,0x5803,0x5804,0x5808,0x5809,0x57E1, - /* Range 0x3821 - 0x387E, array index: 0x04DC */ - 0x580C,0x580D,0x581B,0x581E,0x581F,0x5820,0x5826,0x5827, - 0x582D,0x5832,0x5839,0x583F,0x5849,0x584C,0x584D,0x584F, - 0x5850,0x5855,0x585F,0x5861,0x5864,0x5867,0x5868,0x5878, - 0x587C,0x587F,0x5880,0x5881,0x5887,0x5888,0x5889,0x588A, - 0x588C,0x588D,0x588F,0x5890,0x5894,0x5896,0x589D,0x58A0, - 0x58A1,0x58A2,0x58A6,0x58A9,0x58B1,0x58B2,0x58C4,0x58BC, - 0x58C2,0x58C8,0x58CD,0x58CE,0x58D0,0x58D2,0x58D4,0x58D6, - 0x58DA,0x58DD,0x58E1,0x58E2,0x58E9,0x58F3,0x5905,0x5906, - 0x590B,0x590C,0x5912,0x5913,0x5914,0x8641,0x591D,0x5921, - 0x5923,0x5924,0x5928,0x592F,0x5930,0x5933,0x5935,0x5936, - 0x593F,0x5943,0x5946,0x5952,0x5953,0x5959,0x595B,0x595D, - 0x595E,0x595F,0x5961,0x5963,0x596B,0x596D, - /* Range 0x3921 - 0x397E, array index: 0x053A */ - 0x596F,0x5972,0x5975,0x5976,0x5979,0x597B,0x597C,0x598B, - 0x598C,0x598E,0x5992,0x5995,0x5997,0x599F,0x59A4,0x59A7, - 0x59AD,0x59AE,0x59AF,0x59B0,0x59B3,0x59B7,0x59BA,0x59BC, - 0x59C1,0x59C3,0x59C4,0x59C8,0x59CA,0x59CD,0x59D2,0x59DD, - 0x59DE,0x59DF,0x59E3,0x59E4,0x59E7,0x59EE,0x59EF,0x59F1, - 0x59F2,0x59F4,0x59F7,0x5A00,0x5A04,0x5A0C,0x5A0D,0x5A0E, - 0x5A12,0x5A13,0x5A1E,0x5A23,0x5A24,0x5A27,0x5A28,0x5A2A, - 0x5A2D,0x5A30,0x5A44,0x5A45,0x5A47,0x5A48,0x5A4C,0x5A50, - 0x5A55,0x5A5E,0x5A63,0x5A65,0x5A67,0x5A6D,0x5A77,0x5A7A, - 0x5A7B,0x5A7E,0x5A8B,0x5A90,0x5A93,0x5A96,0x5A99,0x5A9C, - 0x5A9E,0x5A9F,0x5AA0,0x5AA2,0x5AA7,0x5AAC,0x5AB1,0x5AB2, - 0x5AB3,0x5AB5,0x5AB8,0x5ABA,0x5ABB,0x5ABF, - /* Range 0x3A21 - 0x3A7E, array index: 0x0598 */ - 0x5AC4,0x5AC6,0x5AC8,0x5ACF,0x5ADA,0x5ADC,0x5AE0,0x5AE5, - 0x5AEA,0x5AEE,0x5AF5,0x5AF6,0x5AFD,0x5B00,0x5B01,0x5B08, - 0x5B17,0x5B34,0x5B19,0x5B1B,0x5B1D,0x5B21,0x5B25,0x5B2D, - 0x5B38,0x5B41,0x5B4B,0x5B4C,0x5B52,0x5B56,0x5B5E,0x5B68, - 0x5B6E,0x5B6F,0x5B7C,0x5B7D,0x5B7E,0x5B7F,0x5B81,0x5B84, - 0x5B86,0x5B8A,0x5B8E,0x5B90,0x5B91,0x5B93,0x5B94,0x5B96, - 0x5BA8,0x5BA9,0x5BAC,0x5BAD,0x5BAF,0x5BB1,0x5BB2,0x5BB7, - 0x5BBA,0x5BBC,0x5BC0,0x5BC1,0x5BCD,0x5BCF,0x5BD6,0x5BD7, - 0x5BD8,0x5BD9,0x5BDA,0x5BE0,0x5BEF,0x5BF1,0x5BF4,0x5BFD, - 0x5C0C,0x5C17,0x5C1E,0x5C1F,0x5C23,0x5C26,0x5C29,0x5C2B, - 0x5C2C,0x5C2E,0x5C30,0x5C32,0x5C35,0x5C36,0x5C59,0x5C5A, - 0x5C5C,0x5C62,0x5C63,0x5C67,0x5C68,0x5C69, - /* Range 0x3B21 - 0x3B7E, array index: 0x05F6 */ - 0x5C6D,0x5C70,0x5C74,0x5C75,0x5C7A,0x5C7B,0x5C7C,0x5C7D, - 0x5C87,0x5C88,0x5C8A,0x5C8F,0x5C92,0x5C9D,0x5C9F,0x5CA0, - 0x5CA2,0x5CA3,0x5CA6,0x5CAA,0x5CB2,0x5CB4,0x5CB5,0x5CBA, - 0x5CC9,0x5CCB,0x5CD2,0x5CDD,0x5CD7,0x5CEE,0x5CF1,0x5CF2, - 0x5CF4,0x5D01,0x5D06,0x5D0D,0x5D12,0x5D2B,0x5D23,0x5D24, - 0x5D26,0x5D27,0x5D31,0x5D34,0x5D39,0x5D3D,0x5D3F,0x5D42, - 0x5D43,0x5D46,0x5D48,0x5D55,0x5D51,0x5D59,0x5D4A,0x5D5F, - 0x5D60,0x5D61,0x5D62,0x5D64,0x5D6A,0x5D6D,0x5D70,0x5D79, - 0x5D7A,0x5D7E,0x5D7F,0x5D81,0x5D83,0x5D88,0x5D8A,0x5D92, - 0x5D93,0x5D94,0x5D95,0x5D99,0x5D9B,0x5D9F,0x5DA0,0x5DA7, - 0x5DAB,0x5DB0,0x5DB4,0x5DB8,0x5DB9,0x5DC3,0x5DC7,0x5DCB, - 0x5DD0,0x5DCE,0x5DD8,0x5DD9,0x5DE0,0x5DE4, - /* Range 0x3C21 - 0x3C7E, array index: 0x0654 */ - 0x5DE9,0x5DF8,0x5DF9,0x5E00,0x5E07,0x5E0D,0x5E12,0x5E14, - 0x5E15,0x5E18,0x5E1F,0x5E20,0x5E2E,0x5E28,0x5E32,0x5E35, - 0x5E3E,0x5E4B,0x5E50,0x5E49,0x5E51,0x5E56,0x5E58,0x5E5B, - 0x5E5C,0x5E5E,0x5E68,0x5E6A,0x5E6B,0x5E6C,0x5E6D,0x5E6E, - 0x5E70,0x5E80,0x5E8B,0x5E8E,0x5EA2,0x5EA4,0x5EA5,0x5EA8, - 0x5EAA,0x5EAC,0x5EB1,0x5EB3,0x5EBD,0x5EBE,0x5EBF,0x5EC6, - 0x5ECC,0x5ECB,0x5ECE,0x5ED1,0x5ED2,0x5ED4,0x5ED5,0x5EDC, - 0x5EDE,0x5EE5,0x5EEB,0x5F02,0x5F06,0x5F07,0x5F08,0x5F0E, - 0x5F19,0x5F1C,0x5F1D,0x5F21,0x5F22,0x5F23,0x5F24,0x5F28, - 0x5F2B,0x5F2C,0x5F2E,0x5F30,0x5F34,0x5F36,0x5F3B,0x5F3D, - 0x5F3F,0x5F40,0x5F44,0x5F45,0x5F47,0x5F4D,0x5F50,0x5F54, - 0x5F58,0x5F5B,0x5F60,0x5F63,0x5F64,0x5F67, - /* Range 0x3D21 - 0x3D7E, array index: 0x06B2 */ - 0x5F6F,0x5F72,0x5F74,0x5F75,0x5F78,0x5F7A,0x5F7D,0x5F7E, - 0x5F89,0x5F8D,0x5F8F,0x5F96,0x5F9C,0x5F9D,0x5FA2,0x5FA7, - 0x5FAB,0x5FA4,0x5FAC,0x5FAF,0x5FB0,0x5FB1,0x5FB8,0x5FC4, - 0x5FC7,0x5FC8,0x5FC9,0x5FCB,0x5FD0,0x5FD1,0x5FD2,0x5FD3, - 0x5FD4,0x5FDE,0x5FE1,0x5FE2,0x5FE8,0x5FE9,0x5FEA,0x5FEC, - 0x5FED,0x5FEE,0x5FEF,0x5FF2,0x5FF3,0x5FF6,0x5FFA,0x5FFC, - 0x6007,0x600A,0x600D,0x6013,0x6014,0x6017,0x6018,0x601A, - 0x601F,0x6024,0x602D,0x6033,0x6035,0x6040,0x6047,0x6048, - 0x6049,0x604C,0x6051,0x6054,0x6056,0x6057,0x605D,0x6061, - 0x6067,0x6071,0x607E,0x607F,0x6082,0x6086,0x6088,0x608A, - 0x608E,0x6091,0x6093,0x6095,0x6098,0x609D,0x609E,0x60A2, - 0x60A4,0x60A5,0x60A8,0x60B0,0x60B1,0x60B7, - /* Range 0x3E21 - 0x3E7E, array index: 0x0710 */ - 0x60BB,0x60BE,0x60C2,0x60C4,0x60C8,0x60C9,0x60CA,0x60CB, - 0x60CE,0x60CF,0x60D4,0x60D5,0x60D9,0x60DB,0x60DD,0x60DE, - 0x60E2,0x60E5,0x60F2,0x60F5,0x60F8,0x60FC,0x60FD,0x6102, - 0x6107,0x610A,0x610C,0x6110,0x6111,0x6112,0x6113,0x6114, - 0x6116,0x6117,0x6119,0x611C,0x611E,0x6122,0x612A,0x612B, - 0x6130,0x6131,0x6135,0x6136,0x6137,0x6139,0x6141,0x6145, - 0x6146,0x6149,0x615E,0x6160,0x616C,0x6172,0x6178,0x617B, - 0x617C,0x617F,0x6180,0x6181,0x6183,0x6184,0x618B,0x618D, - 0x6192,0x6193,0x6197,0x6198,0x619C,0x619D,0x619F,0x61A0, - 0x61A5,0x61A8,0x61AA,0x61AD,0x61B8,0x61B9,0x61BC,0x61C0, - 0x61C1,0x61C2,0x61CE,0x61CF,0x61D5,0x61DC,0x61DD,0x61DE, - 0x61DF,0x61E1,0x61E2,0x61E7,0x61E9,0x61E5, - /* Range 0x3F21 - 0x3F7E, array index: 0x076E */ - 0x61EC,0x61ED,0x61EF,0x6201,0x6203,0x6204,0x6207,0x6213, - 0x6215,0x621C,0x6220,0x6222,0x6223,0x6227,0x6229,0x622B, - 0x6239,0x623D,0x6242,0x6243,0x6244,0x6246,0x624C,0x6250, - 0x6251,0x6252,0x6254,0x6256,0x625A,0x625C,0x6264,0x626D, - 0x626F,0x6273,0x627A,0x627D,0x628D,0x628E,0x628F,0x6290, - 0x62A6,0x62A8,0x62B3,0x62B6,0x62B7,0x62BA,0x62BE,0x62BF, - 0x62C4,0x62CE,0x62D5,0x62D6,0x62DA,0x62EA,0x62F2,0x62F4, - 0x62FC,0x62FD,0x6303,0x6304,0x630A,0x630B,0x630D,0x6310, - 0x6313,0x6316,0x6318,0x6329,0x632A,0x632D,0x6335,0x6336, - 0x6339,0x633C,0x6341,0x6342,0x6343,0x6344,0x6346,0x634A, - 0x634B,0x634E,0x6352,0x6353,0x6354,0x6358,0x635B,0x6365, - 0x6366,0x636C,0x636D,0x6371,0x6374,0x6375, - /* Range 0x4021 - 0x407E, array index: 0x07CC */ - 0x6378,0x637C,0x637D,0x637F,0x6382,0x6384,0x6387,0x638A, - 0x6390,0x6394,0x6395,0x6399,0x639A,0x639E,0x63A4,0x63A6, - 0x63AD,0x63AE,0x63AF,0x63BD,0x63C1,0x63C5,0x63C8,0x63CE, - 0x63D1,0x63D3,0x63D4,0x63D5,0x63DC,0x63E0,0x63E5,0x63EA, - 0x63EC,0x63F2,0x63F3,0x63F5,0x63F8,0x63F9,0x6409,0x640A, - 0x6410,0x6412,0x6414,0x6418,0x641E,0x6420,0x6422,0x6424, - 0x6425,0x6429,0x642A,0x642F,0x6430,0x6435,0x643D,0x643F, - 0x644B,0x644F,0x6451,0x6452,0x6453,0x6454,0x645A,0x645B, - 0x645C,0x645D,0x645F,0x6460,0x6461,0x6463,0x646D,0x6473, - 0x6474,0x647B,0x647D,0x6485,0x6487,0x648F,0x6490,0x6491, - 0x6498,0x6499,0x649B,0x649D,0x649F,0x64A1,0x64A3,0x64A6, - 0x64A8,0x64AC,0x64B3,0x64BD,0x64BE,0x64BF, - /* Range 0x4121 - 0x417E, array index: 0x082A */ - 0x64C4,0x64C9,0x64CA,0x64CB,0x64CC,0x64CE,0x64D0,0x64D1, - 0x64D5,0x64D7,0x64E4,0x64E5,0x64E9,0x64EA,0x64ED,0x64F0, - 0x64F5,0x64F7,0x64FB,0x64FF,0x6501,0x6504,0x6508,0x6509, - 0x650A,0x650F,0x6513,0x6514,0x6516,0x6519,0x651B,0x651E, - 0x651F,0x6522,0x6526,0x6529,0x652E,0x6531,0x653A,0x653C, - 0x653D,0x6543,0x6547,0x6549,0x6550,0x6552,0x6554,0x655F, - 0x6560,0x6567,0x656B,0x657A,0x657D,0x6581,0x6585,0x658A, - 0x6592,0x6595,0x6598,0x659D,0x65A0,0x65A3,0x65A6,0x65AE, - 0x65B2,0x65B3,0x65B4,0x65BF,0x65C2,0x65C8,0x65C9,0x65CE, - 0x65D0,0x65D4,0x65D6,0x65D8,0x65DF,0x65F0,0x65F2,0x65F4, - 0x65F5,0x65F9,0x65FE,0x65FF,0x6600,0x6604,0x6608,0x6609, - 0x660D,0x6611,0x6612,0x6615,0x6616,0x661D, - /* Range 0x4221 - 0x427E, array index: 0x0888 */ - 0x661E,0x6621,0x6622,0x6623,0x6624,0x6626,0x6629,0x662A, - 0x662B,0x662C,0x662E,0x6630,0x6631,0x6633,0x6639,0x6637, - 0x6640,0x6645,0x6646,0x664A,0x664C,0x6651,0x664E,0x6657, - 0x6658,0x6659,0x665B,0x665C,0x6660,0x6661,0x66FB,0x666A, - 0x666B,0x666C,0x667E,0x6673,0x6675,0x667F,0x6677,0x6678, - 0x6679,0x667B,0x6680,0x667C,0x668B,0x668C,0x668D,0x6690, - 0x6692,0x6699,0x669A,0x669B,0x669C,0x669F,0x66A0,0x66A4, - 0x66AD,0x66B1,0x66B2,0x66B5,0x66BB,0x66BF,0x66C0,0x66C2, - 0x66C3,0x66C8,0x66CC,0x66CE,0x66CF,0x66D4,0x66DB,0x66DF, - 0x66E8,0x66EB,0x66EC,0x66EE,0x66FA,0x6705,0x6707,0x670E, - 0x6713,0x6719,0x671C,0x6720,0x6722,0x6733,0x673E,0x6745, - 0x6747,0x6748,0x674C,0x6754,0x6755,0x675D, - /* Range 0x4321 - 0x437E, array index: 0x08E6 */ - 0x6766,0x676C,0x676E,0x6774,0x6776,0x677B,0x6781,0x6784, - 0x678E,0x678F,0x6791,0x6793,0x6796,0x6798,0x6799,0x679B, - 0x67B0,0x67B1,0x67B2,0x67B5,0x67BB,0x67BC,0x67BD,0x67F9, - 0x67C0,0x67C2,0x67C3,0x67C5,0x67C8,0x67C9,0x67D2,0x67D7, - 0x67D9,0x67DC,0x67E1,0x67E6,0x67F0,0x67F2,0x67F6,0x67F7, - 0x6852,0x6814,0x6819,0x681D,0x681F,0x6828,0x6827,0x682C, - 0x682D,0x682F,0x6830,0x6831,0x6833,0x683B,0x683F,0x6844, - 0x6845,0x684A,0x684C,0x6855,0x6857,0x6858,0x685B,0x686B, - 0x686E,0x686F,0x6870,0x6871,0x6872,0x6875,0x6879,0x687A, - 0x687B,0x687C,0x6882,0x6884,0x6886,0x6888,0x6896,0x6898, - 0x689A,0x689C,0x68A1,0x68A3,0x68A5,0x68A9,0x68AA,0x68AE, - 0x68B2,0x68BB,0x68C5,0x68C8,0x68CC,0x68CF, - /* Range 0x4421 - 0x447E, array index: 0x0944 */ - 0x68D0,0x68D1,0x68D3,0x68D6,0x68D9,0x68DC,0x68DD,0x68E5, - 0x68E8,0x68EA,0x68EB,0x68EC,0x68ED,0x68F0,0x68F1,0x68F5, - 0x68F6,0x68FB,0x68FC,0x68FD,0x6906,0x6909,0x690A,0x6910, - 0x6911,0x6913,0x6916,0x6917,0x6931,0x6933,0x6935,0x6938, - 0x693B,0x6942,0x6945,0x6949,0x694E,0x6957,0x695B,0x6963, - 0x6964,0x6965,0x6966,0x6968,0x6969,0x696C,0x6970,0x6971, - 0x6972,0x697A,0x697B,0x697F,0x6980,0x698D,0x6992,0x6996, - 0x6998,0x69A1,0x69A5,0x69A6,0x69A8,0x69AB,0x69AD,0x69AF, - 0x69B7,0x69B8,0x69BA,0x69BC,0x69C5,0x69C8,0x69D1,0x69D6, - 0x69D7,0x69E2,0x69E5,0x69EE,0x69EF,0x69F1,0x69F3,0x69F5, - 0x69FE,0x6A00,0x6A01,0x6A03,0x6A0F,0x6A11,0x6A15,0x6A1A, - 0x6A1D,0x6A20,0x6A24,0x6A28,0x6A30,0x6A32, - /* Range 0x4521 - 0x457E, array index: 0x09A2 */ - 0x6A34,0x6A37,0x6A3B,0x6A3E,0x6A3F,0x6A45,0x6A46,0x6A49, - 0x6A4A,0x6A4E,0x6A50,0x6A51,0x6A52,0x6A55,0x6A56,0x6A5B, - 0x6A64,0x6A67,0x6A6A,0x6A71,0x6A73,0x6A7E,0x6A81,0x6A83, - 0x6A86,0x6A87,0x6A89,0x6A8B,0x6A91,0x6A9B,0x6A9D,0x6A9E, - 0x6A9F,0x6AA5,0x6AAB,0x6AAF,0x6AB0,0x6AB1,0x6AB4,0x6ABD, - 0x6ABE,0x6ABF,0x6AC6,0x6AC9,0x6AC8,0x6ACC,0x6AD0,0x6AD4, - 0x6AD5,0x6AD6,0x6ADC,0x6ADD,0x6AE4,0x6AE7,0x6AEC,0x6AF0, - 0x6AF1,0x6AF2,0x6AFC,0x6AFD,0x6B02,0x6B03,0x6B06,0x6B07, - 0x6B09,0x6B0F,0x6B10,0x6B11,0x6B17,0x6B1B,0x6B1E,0x6B24, - 0x6B28,0x6B2B,0x6B2C,0x6B2F,0x6B35,0x6B36,0x6B3B,0x6B3F, - 0x6B46,0x6B4A,0x6B4D,0x6B52,0x6B56,0x6B58,0x6B5D,0x6B60, - 0x6B67,0x6B6B,0x6B6E,0x6B70,0x6B75,0x6B7D, - /* Range 0x4621 - 0x467E, array index: 0x0A00 */ - 0x6B7E,0x6B82,0x6B85,0x6B97,0x6B9B,0x6B9F,0x6BA0,0x6BA2, - 0x6BA3,0x6BA8,0x6BA9,0x6BAC,0x6BAD,0x6BAE,0x6BB0,0x6BB8, - 0x6BB9,0x6BBD,0x6BBE,0x6BC3,0x6BC4,0x6BC9,0x6BCC,0x6BD6, - 0x6BDA,0x6BE1,0x6BE3,0x6BE6,0x6BE7,0x6BEE,0x6BF1,0x6BF7, - 0x6BF9,0x6BFF,0x6C02,0x6C04,0x6C05,0x6C09,0x6C0D,0x6C0E, - 0x6C10,0x6C12,0x6C19,0x6C1F,0x6C26,0x6C27,0x6C28,0x6C2C, - 0x6C2E,0x6C33,0x6C35,0x6C36,0x6C3A,0x6C3B,0x6C3F,0x6C4A, - 0x6C4B,0x6C4D,0x6C4F,0x6C52,0x6C54,0x6C59,0x6C5B,0x6C5C, - 0x6C6B,0x6C6D,0x6C6F,0x6C74,0x6C76,0x6C78,0x6C79,0x6C7B, - 0x6C85,0x6C86,0x6C87,0x6C89,0x6C94,0x6C95,0x6C97,0x6C98, - 0x6C9C,0x6C9F,0x6CB0,0x6CB2,0x6CB4,0x6CC2,0x6CC6,0x6CCD, - 0x6CCF,0x6CD0,0x6CD1,0x6CD2,0x6CD4,0x6CD6, - /* Range 0x4721 - 0x477E, array index: 0x0A5E */ - 0x6CDA,0x6CDC,0x6CE0,0x6CE7,0x6CE9,0x6CEB,0x6CEC,0x6CEE, - 0x6CF2,0x6CF4,0x6D04,0x6D07,0x6D0A,0x6D0E,0x6D0F,0x6D11, - 0x6D13,0x6D1A,0x6D26,0x6D27,0x6D28,0x6C67,0x6D2E,0x6D2F, - 0x6D31,0x6D39,0x6D3C,0x6D3F,0x6D57,0x6D5E,0x6D5F,0x6D61, - 0x6D65,0x6D67,0x6D6F,0x6D70,0x6D7C,0x6D82,0x6D87,0x6D91, - 0x6D92,0x6D94,0x6D96,0x6D97,0x6D98,0x6DAA,0x6DAC,0x6DB4, - 0x6DB7,0x6DB9,0x6DBD,0x6DBF,0x6DC4,0x6DC8,0x6DCA,0x6DCE, - 0x6DCF,0x6DD6,0x6DDB,0x6DDD,0x6DDF,0x6DE0,0x6DE2,0x6DE5, - 0x6DE9,0x6DEF,0x6DF0,0x6DF4,0x6DF6,0x6DFC,0x6E00,0x6E04, - 0x6E1E,0x6E22,0x6E27,0x6E32,0x6E36,0x6E39,0x6E3B,0x6E3C, - 0x6E44,0x6E45,0x6E48,0x6E49,0x6E4B,0x6E4F,0x6E51,0x6E52, - 0x6E53,0x6E54,0x6E57,0x6E5C,0x6E5D,0x6E5E, - /* Range 0x4821 - 0x487E, array index: 0x0ABC */ - 0x6E62,0x6E63,0x6E68,0x6E73,0x6E7B,0x6E7D,0x6E8D,0x6E93, - 0x6E99,0x6EA0,0x6EA7,0x6EAD,0x6EAE,0x6EB1,0x6EB3,0x6EBB, - 0x6EBF,0x6EC0,0x6EC1,0x6EC3,0x6EC7,0x6EC8,0x6ECA,0x6ECD, - 0x6ECE,0x6ECF,0x6EEB,0x6EED,0x6EEE,0x6EF9,0x6EFB,0x6EFD, - 0x6F04,0x6F08,0x6F0A,0x6F0C,0x6F0D,0x6F16,0x6F18,0x6F1A, - 0x6F1B,0x6F26,0x6F29,0x6F2A,0x6F2F,0x6F30,0x6F33,0x6F36, - 0x6F3B,0x6F3C,0x6F2D,0x6F4F,0x6F51,0x6F52,0x6F53,0x6F57, - 0x6F59,0x6F5A,0x6F5D,0x6F5E,0x6F61,0x6F62,0x6F68,0x6F6C, - 0x6F7D,0x6F7E,0x6F83,0x6F87,0x6F88,0x6F8B,0x6F8C,0x6F8D, - 0x6F90,0x6F92,0x6F93,0x6F94,0x6F96,0x6F9A,0x6F9F,0x6FA0, - 0x6FA5,0x6FA6,0x6FA7,0x6FA8,0x6FAE,0x6FAF,0x6FB0,0x6FB5, - 0x6FB6,0x6FBC,0x6FC5,0x6FC7,0x6FC8,0x6FCA, - /* Range 0x4921 - 0x497E, array index: 0x0B1A */ - 0x6FDA,0x6FDE,0x6FE8,0x6FE9,0x6FF0,0x6FF5,0x6FF9,0x6FFC, - 0x6FFD,0x7000,0x7005,0x7006,0x7007,0x700D,0x7017,0x7020, - 0x7023,0x702F,0x7034,0x7037,0x7039,0x703C,0x7043,0x7044, - 0x7048,0x7049,0x704A,0x704B,0x7054,0x7055,0x705D,0x705E, - 0x704E,0x7064,0x7065,0x706C,0x706E,0x7075,0x7076,0x707E, - 0x7081,0x7085,0x7086,0x7094,0x7095,0x7096,0x7097,0x7098, - 0x709B,0x70A4,0x70AB,0x70B0,0x70B1,0x70B4,0x70B7,0x70CA, - 0x70D1,0x70D3,0x70D4,0x70D5,0x70D6,0x70D8,0x70DC,0x70E4, - 0x70FA,0x7103,0x7104,0x7105,0x7106,0x7107,0x710B,0x710C, - 0x710F,0x711E,0x7120,0x712B,0x712D,0x712F,0x7130,0x7131, - 0x7138,0x7141,0x7145,0x7146,0x7147,0x714A,0x714B,0x7150, - 0x7152,0x7157,0x715A,0x715C,0x715E,0x7160, - /* Range 0x4A21 - 0x4A7E, array index: 0x0B78 */ - 0x7168,0x7179,0x7180,0x7185,0x7187,0x718C,0x7192,0x719A, - 0x719B,0x71A0,0x71A2,0x71AF,0x71B0,0x71B2,0x71B3,0x71BA, - 0x71BF,0x71C0,0x71C1,0x71C4,0x71CB,0x71CC,0x71D3,0x71D6, - 0x71D9,0x71DA,0x71DC,0x71F8,0x71FE,0x7200,0x7207,0x7208, - 0x7209,0x7213,0x7217,0x721A,0x721D,0x721F,0x7224,0x722B, - 0x722F,0x7234,0x7238,0x7239,0x7241,0x7242,0x7243,0x7245, - 0x724E,0x724F,0x7250,0x7253,0x7255,0x7256,0x725A,0x725C, - 0x725E,0x7260,0x7263,0x7268,0x726B,0x726E,0x726F,0x7271, - 0x7277,0x7278,0x727B,0x727C,0x727F,0x7284,0x7289,0x728D, - 0x728E,0x7293,0x729B,0x72A8,0x72AD,0x72AE,0x72B1,0x72B4, - 0x72BE,0x72C1,0x72C7,0x72C9,0x72CC,0x72D5,0x72D6,0x72D8, - 0x72DF,0x72E5,0x72F3,0x72F4,0x72FA,0x72FB, - /* Range 0x4B21 - 0x4B7E, array index: 0x0BD6 */ - 0x72FE,0x7302,0x7304,0x7305,0x7307,0x730B,0x730D,0x7312, - 0x7313,0x7318,0x7319,0x731E,0x7322,0x7324,0x7327,0x7328, - 0x732C,0x7331,0x7332,0x7335,0x733A,0x733B,0x733D,0x7343, - 0x734D,0x7350,0x7352,0x7356,0x7358,0x735D,0x735E,0x735F, - 0x7360,0x7366,0x7367,0x7369,0x736B,0x736C,0x736E,0x736F, - 0x7371,0x7377,0x7379,0x737C,0x7380,0x7381,0x7383,0x7385, - 0x7386,0x738E,0x7390,0x7393,0x7395,0x7397,0x7398,0x739C, - 0x739E,0x739F,0x73A0,0x73A2,0x73A5,0x73A6,0x73AA,0x73AB, - 0x73AD,0x73B5,0x73B7,0x73B9,0x73BC,0x73BD,0x73BF,0x73C5, - 0x73C6,0x73C9,0x73CB,0x73CC,0x73CF,0x73D2,0x73D3,0x73D6, - 0x73D9,0x73DD,0x73E1,0x73E3,0x73E6,0x73E7,0x73E9,0x73F4, - 0x73F5,0x73F7,0x73F9,0x73FA,0x73FB,0x73FD, - /* Range 0x4C21 - 0x4C7E, array index: 0x0C34 */ - 0x73FF,0x7400,0x7401,0x7404,0x7407,0x740A,0x7411,0x741A, - 0x741B,0x7424,0x7426,0x7428,0x7429,0x742A,0x742B,0x742C, - 0x742D,0x742E,0x742F,0x7430,0x7431,0x7439,0x7440,0x7443, - 0x7444,0x7446,0x7447,0x744B,0x744D,0x7451,0x7452,0x7457, - 0x745D,0x7462,0x7466,0x7467,0x7468,0x746B,0x746D,0x746E, - 0x7471,0x7472,0x7480,0x7481,0x7485,0x7486,0x7487,0x7489, - 0x748F,0x7490,0x7491,0x7492,0x7498,0x7499,0x749A,0x749C, - 0x749F,0x74A0,0x74A1,0x74A3,0x74A6,0x74A8,0x74A9,0x74AA, - 0x74AB,0x74AE,0x74AF,0x74B1,0x74B2,0x74B5,0x74B9,0x74BB, - 0x74BF,0x74C8,0x74C9,0x74CC,0x74D0,0x74D3,0x74D8,0x74DA, - 0x74DB,0x74DE,0x74DF,0x74E4,0x74E8,0x74EA,0x74EB,0x74EF, - 0x74F4,0x74FA,0x74FB,0x74FC,0x74FF,0x7506, - /* Range 0x4D21 - 0x4D7E, array index: 0x0C92 */ - 0x7512,0x7516,0x7517,0x7520,0x7521,0x7524,0x7527,0x7529, - 0x752A,0x752F,0x7536,0x7539,0x753D,0x753E,0x753F,0x7540, - 0x7543,0x7547,0x7548,0x754E,0x7550,0x7552,0x7557,0x755E, - 0x755F,0x7561,0x756F,0x7571,0x7579,0x757A,0x757B,0x757C, - 0x757D,0x757E,0x7581,0x7585,0x7590,0x7592,0x7593,0x7595, - 0x7599,0x759C,0x75A2,0x75A4,0x75B4,0x75BA,0x75BF,0x75C0, - 0x75C1,0x75C4,0x75C6,0x75CC,0x75CE,0x75CF,0x75D7,0x75DC, - 0x75DF,0x75E0,0x75E1,0x75E4,0x75E7,0x75EC,0x75EE,0x75EF, - 0x75F1,0x75F9,0x7600,0x7602,0x7603,0x7604,0x7607,0x7608, - 0x760A,0x760C,0x760F,0x7612,0x7613,0x7615,0x7616,0x7619, - 0x761B,0x761C,0x761D,0x761E,0x7623,0x7625,0x7626,0x7629, - 0x762D,0x7632,0x7633,0x7635,0x7638,0x7639, - /* Range 0x4E21 - 0x4E7E, array index: 0x0CF0 */ - 0x763A,0x763C,0x764A,0x7640,0x7641,0x7643,0x7644,0x7645, - 0x7649,0x764B,0x7655,0x7659,0x765F,0x7664,0x7665,0x766D, - 0x766E,0x766F,0x7671,0x7674,0x7681,0x7685,0x768C,0x768D, - 0x7695,0x769B,0x769C,0x769D,0x769F,0x76A0,0x76A2,0x76A3, - 0x76A4,0x76A5,0x76A6,0x76A7,0x76A8,0x76AA,0x76AD,0x76BD, - 0x76C1,0x76C5,0x76C9,0x76CB,0x76CC,0x76CE,0x76D4,0x76D9, - 0x76E0,0x76E6,0x76E8,0x76EC,0x76F0,0x76F1,0x76F6,0x76F9, - 0x76FC,0x7700,0x7706,0x770A,0x770E,0x7712,0x7714,0x7715, - 0x7717,0x7719,0x771A,0x771C,0x7722,0x7728,0x772D,0x772E, - 0x772F,0x7734,0x7735,0x7736,0x7739,0x773D,0x773E,0x7742, - 0x7745,0x7746,0x774A,0x774D,0x774E,0x774F,0x7752,0x7756, - 0x7757,0x775C,0x775E,0x775F,0x7760,0x7762, - /* Range 0x4F21 - 0x4F7E, array index: 0x0D4E */ - 0x7764,0x7767,0x776A,0x776C,0x7770,0x7772,0x7773,0x7774, - 0x777A,0x777D,0x7780,0x7784,0x778C,0x778D,0x7794,0x7795, - 0x7796,0x779A,0x779F,0x77A2,0x77A7,0x77AA,0x77AE,0x77AF, - 0x77B1,0x77B5,0x77BE,0x77C3,0x77C9,0x77D1,0x77D2,0x77D5, - 0x77D9,0x77DE,0x77DF,0x77E0,0x77E4,0x77E6,0x77EA,0x77EC, - 0x77F0,0x77F1,0x77F4,0x77F8,0x77FB,0x7805,0x7806,0x7809, - 0x780D,0x780E,0x7811,0x781D,0x7821,0x7822,0x7823,0x782D, - 0x782E,0x7830,0x7835,0x7837,0x7843,0x7844,0x7847,0x7848, - 0x784C,0x784E,0x7852,0x785C,0x785E,0x7860,0x7861,0x7863, - 0x7864,0x7868,0x786A,0x786E,0x787A,0x787E,0x788A,0x788F, - 0x7894,0x7898,0x78A1,0x789D,0x789E,0x789F,0x78A4,0x78A8, - 0x78AC,0x78AD,0x78B0,0x78B1,0x78B2,0x78B3, - /* Range 0x5021 - 0x507E, array index: 0x0DAC */ - 0x78BB,0x78BD,0x78BF,0x78C7,0x78C8,0x78C9,0x78CC,0x78CE, - 0x78D2,0x78D3,0x78D5,0x78D6,0x78E4,0x78DB,0x78DF,0x78E0, - 0x78E1,0x78E6,0x78EA,0x78F2,0x78F3,0x7900,0x78F6,0x78F7, - 0x78FA,0x78FB,0x78FF,0x7906,0x790C,0x7910,0x791A,0x791C, - 0x791E,0x791F,0x7920,0x7925,0x7927,0x7929,0x792D,0x7931, - 0x7934,0x7935,0x793B,0x793D,0x793F,0x7944,0x7945,0x7946, - 0x794A,0x794B,0x794F,0x7951,0x7954,0x7958,0x795B,0x795C, - 0x7967,0x7969,0x796B,0x7972,0x7979,0x797B,0x797C,0x797E, - 0x798B,0x798C,0x7991,0x7993,0x7994,0x7995,0x7996,0x7998, - 0x799B,0x799C,0x79A1,0x79A8,0x79A9,0x79AB,0x79AF,0x79B1, - 0x79B4,0x79B8,0x79BB,0x79C2,0x79C4,0x79C7,0x79C8,0x79CA, - 0x79CF,0x79D4,0x79D6,0x79DA,0x79DD,0x79DE, - /* Range 0x5121 - 0x517E, array index: 0x0E0A */ - 0x79E0,0x79E2,0x79E5,0x79EA,0x79EB,0x79ED,0x79F1,0x79F8, - 0x79FC,0x7A02,0x7A03,0x7A07,0x7A09,0x7A0A,0x7A0C,0x7A11, - 0x7A15,0x7A1B,0x7A1E,0x7A21,0x7A27,0x7A2B,0x7A2D,0x7A2F, - 0x7A30,0x7A34,0x7A35,0x7A38,0x7A39,0x7A3A,0x7A44,0x7A45, - 0x7A47,0x7A48,0x7A4C,0x7A55,0x7A56,0x7A59,0x7A5C,0x7A5D, - 0x7A5F,0x7A60,0x7A65,0x7A67,0x7A6A,0x7A6D,0x7A75,0x7A78, - 0x7A7E,0x7A80,0x7A82,0x7A85,0x7A86,0x7A8A,0x7A8B,0x7A90, - 0x7A91,0x7A94,0x7A9E,0x7AA0,0x7AA3,0x7AAC,0x7AB3,0x7AB5, - 0x7AB9,0x7ABB,0x7ABC,0x7AC6,0x7AC9,0x7ACC,0x7ACE,0x7AD1, - 0x7ADB,0x7AE8,0x7AE9,0x7AEB,0x7AEC,0x7AF1,0x7AF4,0x7AFB, - 0x7AFD,0x7AFE,0x7B07,0x7B14,0x7B1F,0x7B23,0x7B27,0x7B29, - 0x7B2A,0x7B2B,0x7B2D,0x7B2E,0x7B2F,0x7B30, - /* Range 0x5221 - 0x527E, array index: 0x0E68 */ - 0x7B31,0x7B34,0x7B3D,0x7B3F,0x7B40,0x7B41,0x7B47,0x7B4E, - 0x7B55,0x7B60,0x7B64,0x7B66,0x7B69,0x7B6A,0x7B6D,0x7B6F, - 0x7B72,0x7B73,0x7B77,0x7B84,0x7B89,0x7B8E,0x7B90,0x7B91, - 0x7B96,0x7B9B,0x7B9E,0x7BA0,0x7BA5,0x7BAC,0x7BAF,0x7BB0, - 0x7BB2,0x7BB5,0x7BB6,0x7BBA,0x7BBB,0x7BBC,0x7BBD,0x7BC2, - 0x7BC5,0x7BC8,0x7BCA,0x7BD4,0x7BD6,0x7BD7,0x7BD9,0x7BDA, - 0x7BDB,0x7BE8,0x7BEA,0x7BF2,0x7BF4,0x7BF5,0x7BF8,0x7BF9, - 0x7BFA,0x7BFC,0x7BFE,0x7C01,0x7C02,0x7C03,0x7C04,0x7C06, - 0x7C09,0x7C0B,0x7C0C,0x7C0E,0x7C0F,0x7C19,0x7C1B,0x7C20, - 0x7C25,0x7C26,0x7C28,0x7C2C,0x7C31,0x7C33,0x7C34,0x7C36, - 0x7C39,0x7C3A,0x7C46,0x7C4A,0x7C55,0x7C51,0x7C52,0x7C53, - 0x7C59,0x7C5A,0x7C5B,0x7C5C,0x7C5D,0x7C5E, - /* Range 0x5321 - 0x537E, array index: 0x0EC6 */ - 0x7C61,0x7C63,0x7C67,0x7C69,0x7C6D,0x7C6E,0x7C70,0x7C72, - 0x7C79,0x7C7C,0x7C7D,0x7C86,0x7C87,0x7C8F,0x7C94,0x7C9E, - 0x7CA0,0x7CA6,0x7CB0,0x7CB6,0x7CB7,0x7CBA,0x7CBB,0x7CBC, - 0x7CBF,0x7CC4,0x7CC7,0x7CC8,0x7CC9,0x7CCD,0x7CCF,0x7CD3, - 0x7CD4,0x7CD5,0x7CD7,0x7CD9,0x7CDA,0x7CDD,0x7CE6,0x7CE9, - 0x7CEB,0x7CF5,0x7D03,0x7D07,0x7D08,0x7D09,0x7D0F,0x7D11, - 0x7D12,0x7D13,0x7D16,0x7D1D,0x7D1E,0x7D23,0x7D26,0x7D2A, - 0x7D2D,0x7D31,0x7D3C,0x7D3D,0x7D3E,0x7D40,0x7D41,0x7D47, - 0x7D48,0x7D4D,0x7D51,0x7D53,0x7D57,0x7D59,0x7D5A,0x7D5C, - 0x7D5D,0x7D65,0x7D67,0x7D6A,0x7D70,0x7D78,0x7D7A,0x7D7B, - 0x7D7F,0x7D81,0x7D82,0x7D83,0x7D85,0x7D86,0x7D88,0x7D8B, - 0x7D8C,0x7D8D,0x7D91,0x7D96,0x7D97,0x7D9D, - /* Range 0x5421 - 0x547E, array index: 0x0F24 */ - 0x7D9E,0x7DA6,0x7DA7,0x7DAA,0x7DB3,0x7DB6,0x7DB7,0x7DB9, - 0x7DC2,0x7DC3,0x7DC4,0x7DC5,0x7DC6,0x7DCC,0x7DCD,0x7DCE, - 0x7DD7,0x7DD9,0x7E00,0x7DE2,0x7DE5,0x7DE6,0x7DEA,0x7DEB, - 0x7DED,0x7DF1,0x7DF5,0x7DF6,0x7DF9,0x7DFA,0x7E08,0x7E10, - 0x7E11,0x7E15,0x7E17,0x7E1C,0x7E1D,0x7E20,0x7E27,0x7E28, - 0x7E2C,0x7E2D,0x7E2F,0x7E33,0x7E36,0x7E3F,0x7E44,0x7E45, - 0x7E47,0x7E4E,0x7E50,0x7E52,0x7E58,0x7E5F,0x7E61,0x7E62, - 0x7E65,0x7E6B,0x7E6E,0x7E6F,0x7E73,0x7E78,0x7E7E,0x7E81, - 0x7E86,0x7E87,0x7E8A,0x7E8D,0x7E91,0x7E95,0x7E98,0x7E9A, - 0x7E9D,0x7E9E,0x7F3C,0x7F3B,0x7F3D,0x7F3E,0x7F3F,0x7F43, - 0x7F44,0x7F47,0x7F4F,0x7F52,0x7F53,0x7F5B,0x7F5C,0x7F5D, - 0x7F61,0x7F63,0x7F64,0x7F65,0x7F66,0x7F6D, - /* Range 0x5521 - 0x557E, array index: 0x0F82 */ - 0x7F71,0x7F7D,0x7F7E,0x7F7F,0x7F80,0x7F8B,0x7F8D,0x7F8F, - 0x7F90,0x7F91,0x7F96,0x7F97,0x7F9C,0x7FA1,0x7FA2,0x7FA6, - 0x7FAA,0x7FAD,0x7FB4,0x7FBC,0x7FBF,0x7FC0,0x7FC3,0x7FC8, - 0x7FCE,0x7FCF,0x7FDB,0x7FDF,0x7FE3,0x7FE5,0x7FE8,0x7FEC, - 0x7FEE,0x7FEF,0x7FF2,0x7FFA,0x7FFD,0x7FFE,0x7FFF,0x8007, - 0x8008,0x800A,0x800D,0x800E,0x800F,0x8011,0x8013,0x8014, - 0x8016,0x801D,0x801E,0x801F,0x8020,0x8024,0x8026,0x802C, - 0x802E,0x8030,0x8034,0x8035,0x8037,0x8039,0x803A,0x803C, - 0x803E,0x8040,0x8044,0x8060,0x8064,0x8066,0x806D,0x8071, - 0x8075,0x8081,0x8088,0x808E,0x809C,0x809E,0x80A6,0x80A7, - 0x80AB,0x80B8,0x80B9,0x80C8,0x80CD,0x80CF,0x80D2,0x80D4, - 0x80D5,0x80D7,0x80D8,0x80E0,0x80ED,0x80EE, - /* Range 0x5621 - 0x567E, array index: 0x0FE0 */ - 0x80F0,0x80F2,0x80F3,0x80F6,0x80F9,0x80FA,0x80FE,0x8103, - 0x810B,0x8116,0x8117,0x8118,0x811C,0x811E,0x8120,0x8124, - 0x8127,0x812C,0x8130,0x8135,0x813A,0x813C,0x8145,0x8147, - 0x814A,0x814C,0x8152,0x8157,0x8160,0x8161,0x8167,0x8168, - 0x8169,0x816D,0x816F,0x8177,0x8181,0x8190,0x8184,0x8185, - 0x8186,0x818B,0x818E,0x8196,0x8198,0x819B,0x819E,0x81A2, - 0x81AE,0x81B2,0x81B4,0x81BB,0x81CB,0x81C3,0x81C5,0x81CA, - 0x81CE,0x81CF,0x81D5,0x81D7,0x81DB,0x81DD,0x81DE,0x81E1, - 0x81E4,0x81EB,0x81EC,0x81F0,0x81F1,0x81F2,0x81F5,0x81F6, - 0x81F8,0x81F9,0x81FD,0x81FF,0x8200,0x8203,0x820F,0x8213, - 0x8214,0x8219,0x821A,0x821D,0x8221,0x8222,0x8228,0x8232, - 0x8234,0x823A,0x8243,0x8244,0x8245,0x8246, - /* Range 0x5721 - 0x577E, array index: 0x103E */ - 0x824B,0x824E,0x824F,0x8251,0x8256,0x825C,0x8260,0x8263, - 0x8267,0x826D,0x8274,0x827B,0x827D,0x827F,0x8280,0x8281, - 0x8283,0x8284,0x8287,0x8289,0x828A,0x828E,0x8291,0x8294, - 0x8296,0x8298,0x829A,0x829B,0x82A0,0x82A1,0x82A3,0x82A4, - 0x82A7,0x82A8,0x82A9,0x82AA,0x82AE,0x82B0,0x82B2,0x82B4, - 0x82B7,0x82BA,0x82BC,0x82BE,0x82BF,0x82C6,0x82D0,0x82D5, - 0x82DA,0x82E0,0x82E2,0x82E4,0x82E8,0x82EA,0x82ED,0x82EF, - 0x82F6,0x82F7,0x82FD,0x82FE,0x8300,0x8301,0x8307,0x8308, - 0x830A,0x830B,0x8354,0x831B,0x831D,0x831E,0x831F,0x8321, - 0x8322,0x832C,0x832D,0x832E,0x8330,0x8333,0x8337,0x833A, - 0x833C,0x833D,0x8342,0x8343,0x8344,0x8347,0x834D,0x834E, - 0x8351,0x8355,0x8356,0x8357,0x8370,0x8378, - /* Range 0x5821 - 0x587E, array index: 0x109C */ - 0x837D,0x837F,0x8380,0x8382,0x8384,0x8386,0x838D,0x8392, - 0x8394,0x8395,0x8398,0x8399,0x839B,0x839C,0x839D,0x83A6, - 0x83A7,0x83A9,0x83AC,0x83BE,0x83BF,0x83C0,0x83C7,0x83C9, - 0x83CF,0x83D0,0x83D1,0x83D4,0x83DD,0x8353,0x83E8,0x83EA, - 0x83F6,0x83F8,0x83F9,0x83FC,0x8401,0x8406,0x840A,0x840F, - 0x8411,0x8415,0x8419,0x83AD,0x842F,0x8439,0x8445,0x8447, - 0x8448,0x844A,0x844D,0x844F,0x8451,0x8452,0x8456,0x8458, - 0x8459,0x845A,0x845C,0x8460,0x8464,0x8465,0x8467,0x846A, - 0x8470,0x8473,0x8474,0x8476,0x8478,0x847C,0x847D,0x8481, - 0x8485,0x8492,0x8493,0x8495,0x849E,0x84A6,0x84A8,0x84A9, - 0x84AA,0x84AF,0x84B1,0x84B4,0x84BA,0x84BD,0x84BE,0x84C0, - 0x84C2,0x84C7,0x84C8,0x84CC,0x84CF,0x84D3, - /* Range 0x5921 - 0x597E, array index: 0x10FA */ - 0x84DC,0x84E7,0x84EA,0x84EF,0x84F0,0x84F1,0x84F2,0x84F7, - 0x8532,0x84FA,0x84FB,0x84FD,0x8502,0x8503,0x8507,0x850C, - 0x850E,0x8510,0x851C,0x851E,0x8522,0x8523,0x8524,0x8525, - 0x8527,0x852A,0x852B,0x852F,0x8533,0x8534,0x8536,0x853F, - 0x8546,0x854F,0x8550,0x8551,0x8552,0x8553,0x8556,0x8559, - 0x855C,0x855D,0x855E,0x855F,0x8560,0x8561,0x8562,0x8564, - 0x856B,0x856F,0x8579,0x857A,0x857B,0x857D,0x857F,0x8581, - 0x8585,0x8586,0x8589,0x858B,0x858C,0x858F,0x8593,0x8598, - 0x859D,0x859F,0x85A0,0x85A2,0x85A5,0x85A7,0x85B4,0x85B6, - 0x85B7,0x85B8,0x85BC,0x85BD,0x85BE,0x85BF,0x85C2,0x85C7, - 0x85CA,0x85CB,0x85CE,0x85AD,0x85D8,0x85DA,0x85DF,0x85E0, - 0x85E6,0x85E8,0x85ED,0x85F3,0x85F6,0x85FC, - /* Range 0x5A21 - 0x5A7E, array index: 0x1158 */ - 0x85FF,0x8600,0x8604,0x8605,0x860D,0x860E,0x8610,0x8611, - 0x8612,0x8618,0x8619,0x861B,0x861E,0x8621,0x8627,0x8629, - 0x8636,0x8638,0x863A,0x863C,0x863D,0x8640,0x8642,0x8646, - 0x8652,0x8653,0x8656,0x8657,0x8658,0x8659,0x865D,0x8660, - 0x8661,0x8662,0x8663,0x8664,0x8669,0x866C,0x866F,0x8675, - 0x8676,0x8677,0x867A,0x868D,0x8691,0x8696,0x8698,0x869A, - 0x869C,0x86A1,0x86A6,0x86A7,0x86A8,0x86AD,0x86B1,0x86B3, - 0x86B4,0x86B5,0x86B7,0x86B8,0x86B9,0x86BF,0x86C0,0x86C1, - 0x86C3,0x86C5,0x86D1,0x86D2,0x86D5,0x86D7,0x86DA,0x86DC, - 0x86E0,0x86E3,0x86E5,0x86E7,0x8688,0x86FA,0x86FC,0x86FD, - 0x8704,0x8705,0x8707,0x870B,0x870E,0x870F,0x8710,0x8713, - 0x8714,0x8719,0x871E,0x871F,0x8721,0x8723, - /* Range 0x5B21 - 0x5B7E, array index: 0x11B6 */ - 0x8728,0x872E,0x872F,0x8731,0x8732,0x8739,0x873A,0x873C, - 0x873D,0x873E,0x8740,0x8743,0x8745,0x874D,0x8758,0x875D, - 0x8761,0x8764,0x8765,0x876F,0x8771,0x8772,0x877B,0x8783, - 0x8784,0x8785,0x8786,0x8787,0x8788,0x8789,0x878B,0x878C, - 0x8790,0x8793,0x8795,0x8797,0x8798,0x8799,0x879E,0x87A0, - 0x87A3,0x87A7,0x87AC,0x87AD,0x87AE,0x87B1,0x87B5,0x87BE, - 0x87BF,0x87C1,0x87C8,0x87C9,0x87CA,0x87CE,0x87D5,0x87D6, - 0x87D9,0x87DA,0x87DC,0x87DF,0x87E2,0x87E3,0x87E4,0x87EA, - 0x87EB,0x87ED,0x87F1,0x87F3,0x87F8,0x87FA,0x87FF,0x8801, - 0x8803,0x8806,0x8809,0x880A,0x880B,0x8810,0x8819,0x8812, - 0x8813,0x8814,0x8818,0x881A,0x881B,0x881C,0x881E,0x881F, - 0x8828,0x882D,0x882E,0x8830,0x8832,0x8835, - /* Range 0x5C21 - 0x5C7E, array index: 0x1214 */ - 0x883A,0x883C,0x8841,0x8843,0x8845,0x8848,0x8849,0x884A, - 0x884B,0x884E,0x8851,0x8855,0x8856,0x8858,0x885A,0x885C, - 0x885F,0x8860,0x8864,0x8869,0x8871,0x8879,0x887B,0x8880, - 0x8898,0x889A,0x889B,0x889C,0x889F,0x88A0,0x88A8,0x88AA, - 0x88BA,0x88BD,0x88BE,0x88C0,0x88CA,0x88CB,0x88CC,0x88CD, - 0x88CE,0x88D1,0x88D2,0x88D3,0x88DB,0x88DE,0x88E7,0x88EF, - 0x88F0,0x88F1,0x88F5,0x88F7,0x8901,0x8906,0x890D,0x890E, - 0x890F,0x8915,0x8916,0x8918,0x8919,0x891A,0x891C,0x8920, - 0x8926,0x8927,0x8928,0x8930,0x8931,0x8932,0x8935,0x8939, - 0x893A,0x893E,0x8940,0x8942,0x8945,0x8946,0x8949,0x894F, - 0x8952,0x8957,0x895A,0x895B,0x895C,0x8961,0x8962,0x8963, - 0x896B,0x896E,0x8970,0x8973,0x8975,0x897A, - /* Range 0x5D21 - 0x5D7E, array index: 0x1272 */ - 0x897B,0x897C,0x897D,0x8989,0x898D,0x8990,0x8994,0x8995, - 0x899B,0x899C,0x899F,0x89A0,0x89A5,0x89B0,0x89B4,0x89B5, - 0x89B6,0x89B7,0x89BC,0x89D4,0x89D5,0x89D6,0x89D7,0x89D8, - 0x89E5,0x89E9,0x89EB,0x89ED,0x89F1,0x89F3,0x89F6,0x89F9, - 0x89FD,0x89FF,0x8A04,0x8A05,0x8A07,0x8A0F,0x8A11,0x8A12, - 0x8A14,0x8A15,0x8A1E,0x8A20,0x8A22,0x8A24,0x8A26,0x8A2B, - 0x8A2C,0x8A2F,0x8A35,0x8A37,0x8A3D,0x8A3E,0x8A40,0x8A43, - 0x8A45,0x8A47,0x8A49,0x8A4D,0x8A4E,0x8A53,0x8A56,0x8A57, - 0x8A58,0x8A5C,0x8A5D,0x8A61,0x8A65,0x8A67,0x8A75,0x8A76, - 0x8A77,0x8A79,0x8A7A,0x8A7B,0x8A7E,0x8A7F,0x8A80,0x8A83, - 0x8A86,0x8A8B,0x8A8F,0x8A90,0x8A92,0x8A96,0x8A97,0x8A99, - 0x8A9F,0x8AA7,0x8AA9,0x8AAE,0x8AAF,0x8AB3, - /* Range 0x5E21 - 0x5E7E, array index: 0x12D0 */ - 0x8AB6,0x8AB7,0x8ABB,0x8ABE,0x8AC3,0x8AC6,0x8AC8,0x8AC9, - 0x8ACA,0x8AD1,0x8AD3,0x8AD4,0x8AD5,0x8AD7,0x8ADD,0x8ADF, - 0x8AEC,0x8AF0,0x8AF4,0x8AF5,0x8AF6,0x8AFC,0x8AFF,0x8B05, - 0x8B06,0x8B0B,0x8B11,0x8B1C,0x8B1E,0x8B1F,0x8B0A,0x8B2D, - 0x8B30,0x8B37,0x8B3C,0x8B42,0x8B43,0x8B44,0x8B45,0x8B46, - 0x8B48,0x8B52,0x8B53,0x8B54,0x8B59,0x8B4D,0x8B5E,0x8B63, - 0x8B6D,0x8B76,0x8B78,0x8B79,0x8B7C,0x8B7E,0x8B81,0x8B84, - 0x8B85,0x8B8B,0x8B8D,0x8B8F,0x8B94,0x8B95,0x8B9C,0x8B9E, - 0x8B9F,0x8C38,0x8C39,0x8C3D,0x8C3E,0x8C45,0x8C47,0x8C49, - 0x8C4B,0x8C4F,0x8C51,0x8C53,0x8C54,0x8C57,0x8C58,0x8C5B, - 0x8C5D,0x8C59,0x8C63,0x8C64,0x8C66,0x8C68,0x8C69,0x8C6D, - 0x8C73,0x8C75,0x8C76,0x8C7B,0x8C7E,0x8C86, - /* Range 0x5F21 - 0x5F7E, array index: 0x132E */ - 0x8C87,0x8C8B,0x8C90,0x8C92,0x8C93,0x8C99,0x8C9B,0x8C9C, - 0x8CA4,0x8CB9,0x8CBA,0x8CC5,0x8CC6,0x8CC9,0x8CCB,0x8CCF, - 0x8CD6,0x8CD5,0x8CD9,0x8CDD,0x8CE1,0x8CE8,0x8CEC,0x8CEF, - 0x8CF0,0x8CF2,0x8CF5,0x8CF7,0x8CF8,0x8CFE,0x8CFF,0x8D01, - 0x8D03,0x8D09,0x8D12,0x8D17,0x8D1B,0x8D65,0x8D69,0x8D6C, - 0x8D6E,0x8D7F,0x8D82,0x8D84,0x8D88,0x8D8D,0x8D90,0x8D91, - 0x8D95,0x8D9E,0x8D9F,0x8DA0,0x8DA6,0x8DAB,0x8DAC,0x8DAF, - 0x8DB2,0x8DB5,0x8DB7,0x8DB9,0x8DBB,0x8DC0,0x8DC5,0x8DC6, - 0x8DC7,0x8DC8,0x8DCA,0x8DCE,0x8DD1,0x8DD4,0x8DD5,0x8DD7, - 0x8DD9,0x8DE4,0x8DE5,0x8DE7,0x8DEC,0x8DF0,0x8DBC,0x8DF1, - 0x8DF2,0x8DF4,0x8DFD,0x8E01,0x8E04,0x8E05,0x8E06,0x8E0B, - 0x8E11,0x8E14,0x8E16,0x8E20,0x8E21,0x8E22, - /* Range 0x6021 - 0x607E, array index: 0x138C */ - 0x8E23,0x8E26,0x8E27,0x8E31,0x8E33,0x8E36,0x8E37,0x8E38, - 0x8E39,0x8E3D,0x8E40,0x8E41,0x8E4B,0x8E4D,0x8E4E,0x8E4F, - 0x8E54,0x8E5B,0x8E5C,0x8E5D,0x8E5E,0x8E61,0x8E62,0x8E69, - 0x8E6C,0x8E6D,0x8E6F,0x8E70,0x8E71,0x8E79,0x8E7A,0x8E7B, - 0x8E82,0x8E83,0x8E89,0x8E90,0x8E92,0x8E95,0x8E9A,0x8E9B, - 0x8E9D,0x8E9E,0x8EA2,0x8EA7,0x8EA9,0x8EAD,0x8EAE,0x8EB3, - 0x8EB5,0x8EBA,0x8EBB,0x8EC0,0x8EC1,0x8EC3,0x8EC4,0x8EC7, - 0x8ECF,0x8ED1,0x8ED4,0x8EDC,0x8EE8,0x8EEE,0x8EF0,0x8EF1, - 0x8EF7,0x8EF9,0x8EFA,0x8EED,0x8F00,0x8F02,0x8F07,0x8F08, - 0x8F0F,0x8F10,0x8F16,0x8F17,0x8F18,0x8F1E,0x8F20,0x8F21, - 0x8F23,0x8F25,0x8F27,0x8F28,0x8F2C,0x8F2D,0x8F2E,0x8F34, - 0x8F35,0x8F36,0x8F37,0x8F3A,0x8F40,0x8F41, - /* Range 0x6121 - 0x617E, array index: 0x13EA */ - 0x8F43,0x8F47,0x8F4F,0x8F51,0x8F52,0x8F53,0x8F54,0x8F55, - 0x8F58,0x8F5D,0x8F5E,0x8F65,0x8F9D,0x8FA0,0x8FA1,0x8FA4, - 0x8FA5,0x8FA6,0x8FB5,0x8FB6,0x8FB8,0x8FBE,0x8FC0,0x8FC1, - 0x8FC6,0x8FCA,0x8FCB,0x8FCD,0x8FD0,0x8FD2,0x8FD3,0x8FD5, - 0x8FE0,0x8FE3,0x8FE4,0x8FE8,0x8FEE,0x8FF1,0x8FF5,0x8FF6, - 0x8FFB,0x8FFE,0x9002,0x9004,0x9008,0x900C,0x9018,0x901B, - 0x9028,0x9029,0x902F,0x902A,0x902C,0x902D,0x9033,0x9034, - 0x9037,0x903F,0x9043,0x9044,0x904C,0x905B,0x905D,0x9062, - 0x9066,0x9067,0x906C,0x9070,0x9074,0x9079,0x9085,0x9088, - 0x908B,0x908C,0x908E,0x9090,0x9095,0x9097,0x9098,0x9099, - 0x909B,0x90A0,0x90A1,0x90A2,0x90A5,0x90B0,0x90B2,0x90B3, - 0x90B4,0x90B6,0x90BD,0x90CC,0x90BE,0x90C3, - /* Range 0x6221 - 0x627E, array index: 0x1448 */ - 0x90C4,0x90C5,0x90C7,0x90C8,0x90D5,0x90D7,0x90D8,0x90D9, - 0x90DC,0x90DD,0x90DF,0x90E5,0x90D2,0x90F6,0x90EB,0x90EF, - 0x90F0,0x90F4,0x90FE,0x90FF,0x9100,0x9104,0x9105,0x9106, - 0x9108,0x910D,0x9110,0x9114,0x9116,0x9117,0x9118,0x911A, - 0x911C,0x911E,0x9120,0x9125,0x9122,0x9123,0x9127,0x9129, - 0x912E,0x912F,0x9131,0x9134,0x9136,0x9137,0x9139,0x913A, - 0x913C,0x913D,0x9143,0x9147,0x9148,0x914F,0x9153,0x9157, - 0x9159,0x915A,0x915B,0x9161,0x9164,0x9167,0x916D,0x9174, - 0x9179,0x917A,0x917B,0x9181,0x9183,0x9185,0x9186,0x918A, - 0x918E,0x9191,0x9193,0x9194,0x9195,0x9198,0x919E,0x91A1, - 0x91A6,0x91A8,0x91AC,0x91AD,0x91AE,0x91B0,0x91B1,0x91B2, - 0x91B3,0x91B6,0x91BB,0x91BC,0x91BD,0x91BF, - /* Range 0x6321 - 0x637E, array index: 0x14A6 */ - 0x91C2,0x91C3,0x91C5,0x91D3,0x91D4,0x91D7,0x91D9,0x91DA, - 0x91DE,0x91E4,0x91E5,0x91E9,0x91EA,0x91EC,0x91ED,0x91EE, - 0x91EF,0x91F0,0x91F1,0x91F7,0x91F9,0x91FB,0x91FD,0x9200, - 0x9201,0x9204,0x9205,0x9206,0x9207,0x9209,0x920A,0x920C, - 0x9210,0x9212,0x9213,0x9216,0x9218,0x921C,0x921D,0x9223, - 0x9224,0x9225,0x9226,0x9228,0x922E,0x922F,0x9230,0x9233, - 0x9235,0x9236,0x9238,0x9239,0x923A,0x923C,0x923E,0x9240, - 0x9242,0x9243,0x9246,0x9247,0x924A,0x924D,0x924E,0x924F, - 0x9251,0x9258,0x9259,0x925C,0x925D,0x9260,0x9261,0x9265, - 0x9267,0x9268,0x9269,0x926E,0x926F,0x9270,0x9275,0x9276, - 0x9277,0x9278,0x9279,0x927B,0x927C,0x927D,0x927F,0x9288, - 0x9289,0x928A,0x928D,0x928E,0x9292,0x9297, - /* Range 0x6421 - 0x647E, array index: 0x1504 */ - 0x9299,0x929F,0x92A0,0x92A4,0x92A5,0x92A7,0x92A8,0x92AB, - 0x92AF,0x92B2,0x92B6,0x92B8,0x92BA,0x92BB,0x92BC,0x92BD, - 0x92BF,0x92C0,0x92C1,0x92C2,0x92C3,0x92C5,0x92C6,0x92C7, - 0x92C8,0x92CB,0x92CC,0x92CD,0x92CE,0x92D0,0x92D3,0x92D5, - 0x92D7,0x92D8,0x92D9,0x92DC,0x92DD,0x92DF,0x92E0,0x92E1, - 0x92E3,0x92E5,0x92E7,0x92E8,0x92EC,0x92EE,0x92F0,0x92F9, - 0x92FB,0x92FF,0x9300,0x9302,0x9308,0x930D,0x9311,0x9314, - 0x9315,0x931C,0x931D,0x931E,0x931F,0x9321,0x9324,0x9325, - 0x9327,0x9329,0x932A,0x9333,0x9334,0x9336,0x9337,0x9347, - 0x9348,0x9349,0x9350,0x9351,0x9352,0x9355,0x9357,0x9358, - 0x935A,0x935E,0x9364,0x9365,0x9367,0x9369,0x936A,0x936D, - 0x936F,0x9370,0x9371,0x9373,0x9374,0x9376, - /* Range 0x6521 - 0x657E, array index: 0x1562 */ - 0x937A,0x937D,0x937F,0x9380,0x9381,0x9382,0x9388,0x938A, - 0x938B,0x938D,0x938F,0x9392,0x9395,0x9398,0x939B,0x939E, - 0x93A1,0x93A3,0x93A4,0x93A6,0x93A8,0x93AB,0x93B4,0x93B5, - 0x93B6,0x93BA,0x93A9,0x93C1,0x93C4,0x93C5,0x93C6,0x93C7, - 0x93C9,0x93CA,0x93CB,0x93CC,0x93CD,0x93D3,0x93D9,0x93DC, - 0x93DE,0x93DF,0x93E2,0x93E6,0x93E7,0x93F9,0x93F7,0x93F8, - 0x93FA,0x93FB,0x93FD,0x9401,0x9402,0x9404,0x9408,0x9409, - 0x940D,0x940E,0x940F,0x9415,0x9416,0x9417,0x941F,0x942E, - 0x942F,0x9431,0x9432,0x9433,0x9434,0x943B,0x943F,0x943D, - 0x9443,0x9445,0x9448,0x944A,0x944C,0x9455,0x9459,0x945C, - 0x945F,0x9461,0x9463,0x9468,0x946B,0x946D,0x946E,0x946F, - 0x9471,0x9472,0x9484,0x9483,0x9578,0x9579, - /* Range 0x6621 - 0x667E, array index: 0x15C0 */ - 0x957E,0x9584,0x9588,0x958C,0x958D,0x958E,0x959D,0x959E, - 0x959F,0x95A1,0x95A6,0x95A9,0x95AB,0x95AC,0x95B4,0x95B6, - 0x95BA,0x95BD,0x95BF,0x95C6,0x95C8,0x95C9,0x95CB,0x95D0, - 0x95D1,0x95D2,0x95D3,0x95D9,0x95DA,0x95DD,0x95DE,0x95DF, - 0x95E0,0x95E4,0x95E6,0x961D,0x961E,0x9622,0x9624,0x9625, - 0x9626,0x962C,0x9631,0x9633,0x9637,0x9638,0x9639,0x963A, - 0x963C,0x963D,0x9641,0x9652,0x9654,0x9656,0x9657,0x9658, - 0x9661,0x966E,0x9674,0x967B,0x967C,0x967E,0x967F,0x9681, - 0x9682,0x9683,0x9684,0x9689,0x9691,0x9696,0x969A,0x969D, - 0x969F,0x96A4,0x96A5,0x96A6,0x96A9,0x96AE,0x96AF,0x96B3, - 0x96BA,0x96CA,0x96D2,0x5DB2,0x96D8,0x96DA,0x96DD,0x96DE, - 0x96DF,0x96E9,0x96EF,0x96F1,0x96FA,0x9702, - /* Range 0x6721 - 0x677E, array index: 0x161E */ - 0x9703,0x9705,0x9709,0x971A,0x971B,0x971D,0x9721,0x9722, - 0x9723,0x9728,0x9731,0x9733,0x9741,0x9743,0x974A,0x974E, - 0x974F,0x9755,0x9757,0x9758,0x975A,0x975B,0x9763,0x9767, - 0x976A,0x976E,0x9773,0x9776,0x9777,0x9778,0x977B,0x977D, - 0x977F,0x9780,0x9789,0x9795,0x9796,0x9797,0x9799,0x979A, - 0x979E,0x979F,0x97A2,0x97AC,0x97AE,0x97B1,0x97B2,0x97B5, - 0x97B6,0x97B8,0x97B9,0x97BA,0x97BC,0x97BE,0x97BF,0x97C1, - 0x97C4,0x97C5,0x97C7,0x97C9,0x97CA,0x97CC,0x97CD,0x97CE, - 0x97D0,0x97D1,0x97D4,0x97D7,0x97D8,0x97D9,0x97DD,0x97DE, - 0x97E0,0x97DB,0x97E1,0x97E4,0x97EF,0x97F1,0x97F4,0x97F7, - 0x97F8,0x97FA,0x9807,0x980A,0x9819,0x980D,0x980E,0x9814, - 0x9816,0x981C,0x981E,0x9820,0x9823,0x9826, - /* Range 0x6821 - 0x687E, array index: 0x167C */ - 0x982B,0x982E,0x982F,0x9830,0x9832,0x9833,0x9835,0x9825, - 0x983E,0x9844,0x9847,0x984A,0x9851,0x9852,0x9853,0x9856, - 0x9857,0x9859,0x985A,0x9862,0x9863,0x9865,0x9866,0x986A, - 0x986C,0x98AB,0x98AD,0x98AE,0x98B0,0x98B4,0x98B7,0x98B8, - 0x98BA,0x98BB,0x98BF,0x98C2,0x98C5,0x98C8,0x98CC,0x98E1, - 0x98E3,0x98E5,0x98E6,0x98E7,0x98EA,0x98F3,0x98F6,0x9902, - 0x9907,0x9908,0x9911,0x9915,0x9916,0x9917,0x991A,0x991B, - 0x991C,0x991F,0x9922,0x9926,0x9927,0x992B,0x9931,0x9932, - 0x9933,0x9934,0x9935,0x9939,0x993A,0x993B,0x993C,0x9940, - 0x9941,0x9946,0x9947,0x9948,0x994D,0x994E,0x9954,0x9958, - 0x9959,0x995B,0x995C,0x995E,0x995F,0x9960,0x999B,0x999D, - 0x999F,0x99A6,0x99B0,0x99B1,0x99B2,0x99B5, - /* Range 0x6921 - 0x697E, array index: 0x16DA */ - 0x99B9,0x99BA,0x99BD,0x99BF,0x99C3,0x99C9,0x99D3,0x99D4, - 0x99D9,0x99DA,0x99DC,0x99DE,0x99E7,0x99EA,0x99EB,0x99EC, - 0x99F0,0x99F4,0x99F5,0x99F9,0x99FD,0x99FE,0x9A02,0x9A03, - 0x9A04,0x9A0B,0x9A0C,0x9A10,0x9A11,0x9A16,0x9A1E,0x9A20, - 0x9A22,0x9A23,0x9A24,0x9A27,0x9A2D,0x9A2E,0x9A33,0x9A35, - 0x9A36,0x9A38,0x9A47,0x9A41,0x9A44,0x9A4A,0x9A4B,0x9A4C, - 0x9A4E,0x9A51,0x9A54,0x9A56,0x9A5D,0x9AAA,0x9AAC,0x9AAE, - 0x9AAF,0x9AB2,0x9AB4,0x9AB5,0x9AB6,0x9AB9,0x9ABB,0x9ABE, - 0x9ABF,0x9AC1,0x9AC3,0x9AC6,0x9AC8,0x9ACE,0x9AD0,0x9AD2, - 0x9AD5,0x9AD6,0x9AD7,0x9ADB,0x9ADC,0x9AE0,0x9AE4,0x9AE5, - 0x9AE7,0x9AE9,0x9AEC,0x9AF2,0x9AF3,0x9AF5,0x9AF9,0x9AFA, - 0x9AFD,0x9AFF,0x9B00,0x9B01,0x9B02,0x9B03, - /* Range 0x6A21 - 0x6A7E, array index: 0x1738 */ - 0x9B04,0x9B05,0x9B08,0x9B09,0x9B0B,0x9B0C,0x9B0D,0x9B0E, - 0x9B10,0x9B12,0x9B16,0x9B19,0x9B1B,0x9B1C,0x9B20,0x9B26, - 0x9B2B,0x9B2D,0x9B33,0x9B34,0x9B35,0x9B37,0x9B39,0x9B3A, - 0x9B3D,0x9B48,0x9B4B,0x9B4C,0x9B55,0x9B56,0x9B57,0x9B5B, - 0x9B5E,0x9B61,0x9B63,0x9B65,0x9B66,0x9B68,0x9B6A,0x9B6B, - 0x9B6C,0x9B6D,0x9B6E,0x9B73,0x9B75,0x9B77,0x9B78,0x9B79, - 0x9B7F,0x9B80,0x9B84,0x9B85,0x9B86,0x9B87,0x9B89,0x9B8A, - 0x9B8B,0x9B8D,0x9B8F,0x9B90,0x9B94,0x9B9A,0x9B9D,0x9B9E, - 0x9BA6,0x9BA7,0x9BA9,0x9BAC,0x9BB0,0x9BB1,0x9BB2,0x9BB7, - 0x9BB8,0x9BBB,0x9BBC,0x9BBE,0x9BBF,0x9BC1,0x9BC7,0x9BC8, - 0x9BCE,0x9BD0,0x9BD7,0x9BD8,0x9BDD,0x9BDF,0x9BE5,0x9BE7, - 0x9BEA,0x9BEB,0x9BEF,0x9BF3,0x9BF7,0x9BF8, - /* Range 0x6B21 - 0x6B7E, array index: 0x1796 */ - 0x9BF9,0x9BFA,0x9BFD,0x9BFF,0x9C00,0x9C02,0x9C0B,0x9C0F, - 0x9C11,0x9C16,0x9C18,0x9C19,0x9C1A,0x9C1C,0x9C1E,0x9C22, - 0x9C23,0x9C26,0x9C27,0x9C28,0x9C29,0x9C2A,0x9C31,0x9C35, - 0x9C36,0x9C37,0x9C3D,0x9C41,0x9C43,0x9C44,0x9C45,0x9C49, - 0x9C4A,0x9C4E,0x9C4F,0x9C50,0x9C53,0x9C54,0x9C56,0x9C58, - 0x9C5B,0x9C5D,0x9C5E,0x9C5F,0x9C63,0x9C69,0x9C6A,0x9C5C, - 0x9C6B,0x9C68,0x9C6E,0x9C70,0x9C72,0x9C75,0x9C77,0x9C7B, - 0x9CE6,0x9CF2,0x9CF7,0x9CF9,0x9D0B,0x9D02,0x9D11,0x9D17, - 0x9D18,0x9D1C,0x9D1D,0x9D1E,0x9D2F,0x9D30,0x9D32,0x9D33, - 0x9D34,0x9D3A,0x9D3C,0x9D45,0x9D3D,0x9D42,0x9D43,0x9D47, - 0x9D4A,0x9D53,0x9D54,0x9D5F,0x9D63,0x9D62,0x9D65,0x9D69, - 0x9D6A,0x9D6B,0x9D70,0x9D76,0x9D77,0x9D7B, - /* Range 0x6C21 - 0x6C7E, array index: 0x17F4 */ - 0x9D7C,0x9D7E,0x9D83,0x9D84,0x9D86,0x9D8A,0x9D8D,0x9D8E, - 0x9D92,0x9D93,0x9D95,0x9D96,0x9D97,0x9D98,0x9DA1,0x9DAA, - 0x9DAC,0x9DAE,0x9DB1,0x9DB5,0x9DB9,0x9DBC,0x9DBF,0x9DC3, - 0x9DC7,0x9DC9,0x9DCA,0x9DD4,0x9DD5,0x9DD6,0x9DD7,0x9DDA, - 0x9DDE,0x9DDF,0x9DE0,0x9DE5,0x9DE7,0x9DE9,0x9DEB,0x9DEE, - 0x9DF0,0x9DF3,0x9DF4,0x9DFE,0x9E0A,0x9E02,0x9E07,0x9E0E, - 0x9E10,0x9E11,0x9E12,0x9E15,0x9E16,0x9E19,0x9E1C,0x9E1D, - 0x9E7A,0x9E7B,0x9E7C,0x9E80,0x9E82,0x9E83,0x9E84,0x9E85, - 0x9E87,0x9E8E,0x9E8F,0x9E96,0x9E98,0x9E9B,0x9E9E,0x9EA4, - 0x9EA8,0x9EAC,0x9EAE,0x9EAF,0x9EB0,0x9EB3,0x9EB4,0x9EB5, - 0x9EC6,0x9EC8,0x9ECB,0x9ED5,0x9EDF,0x9EE4,0x9EE7,0x9EEC, - 0x9EED,0x9EEE,0x9EF0,0x9EF1,0x9EF2,0x9EF5, - /* Range 0x6D21 - 0x6D63, array index: 0x1852 */ - 0x9EF8,0x9EFF,0x9F02,0x9F03,0x9F09,0x9F0F,0x9F10,0x9F11, - 0x9F12,0x9F14,0x9F16,0x9F17,0x9F19,0x9F1A,0x9F1B,0x9F1F, - 0x9F22,0x9F26,0x9F2A,0x9F2B,0x9F2F,0x9F31,0x9F32,0x9F34, - 0x9F37,0x9F39,0x9F3A,0x9F3C,0x9F3D,0x9F3F,0x9F41,0x9F43, - 0x9F44,0x9F45,0x9F46,0x9F47,0x9F53,0x9F55,0x9F56,0x9F57, - 0x9F58,0x9F5A,0x9F5D,0x9F5E,0x9F68,0x9F69,0x9F6D,0x9F6E, - 0x9F6F,0x9F70,0x9F71,0x9F73,0x9F75,0x9F7A,0x9F7D,0x9F8F, - 0x9F90,0x9F91,0x9F92,0x9F94,0x9F96,0x9F97,0x9F9E,0x9FA1, - 0x9FA2,0x9FA3,0x9FA5, - /* Unranged codes (73 codes) */ - /* Array index: 0x1895 */ 0x2921,0x00C6, - /* Array index: 0x1895 */ 0x2922,0x0110, - /* Array index: 0x1895 */ 0x2924,0x0126, - /* Array index: 0x1895 */ 0x2926,0x0132, -}; - -#endif /* ICONV_TO_UCS_CCS_JIS_X0212_1990 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> jis_x0212_1990 speed-optimized table (45568 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_JIS_X0212_1990) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_speed_jis_x0212_1990[] = -{ - /* Heading Block */ - 0x0100,0x0200,0x0300,0x0400,0x0500,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,0x0600,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,0x0700,0x0800, - 0x0900,0x0A00,0x0B00,0x0C00,0x0D00,0x0E00,0x0F00,0x1000, - 0x1100,0x1200,0x1300,0x1400,0x1500,0x1600,0x1700,0x1800, - 0x1900,0x1A00,0x1B00,0x1C00,0x1D00,0x1E00,0x1F00,0x2000, - 0x2100,0x2200,0x2300,0x2400,0x2500,0x2600,0x2700,0x2800, - 0x2900,0x2A00,0x2B00,0x2C00,0x2D00,0x2E00,0x2F00,0x3000, - 0x3100,0x3200,0x3300,0x3400,0x3500,0x3600,0x3700,0x3800, - 0x3900,0x3A00,0x3B00,0x3C00,0x3D00,0x3E00,0x3F00,0x4000, - 0x4100,0x4200,0x4300,0x4400,0x4500,0x4600,0x4700,0x4800, - 0x4900,0x4A00,0x4B00,0x4C00,0x4D00,0x4E00,0x4F00,0x5000, - 0x5100,0x5200,0x5300,0x5400,0x5500,0x5600,0x5700,0x5800, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - /* Block 1, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2237,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2242,INVALC,INVALC,0x2270,INVALC,0x2243,INVALC, - INVALC,0x226D,0x226C,INVALC,INVALC,INVALC,0x226E,0x2234, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2231,INVALC,0x226B,INVALC,INVALC,INVALC,INVALC,0x2244, - 0x2A22,0x2A21,0x2A24,0x2A2A,0x2A23,0x2A29,0x2921,0x2A2E, - 0x2A32,0x2A31,0x2A34,0x2A33,0x2A40,0x2A3F,0x2A42,0x2A41, - INVALC,0x2A50,0x2A52,0x2A51,0x2A54,0x2A58,0x2A53,INVALC, - 0x292C,0x2A63,0x2A62,0x2A65,0x2A64,0x2A72,0x2930,0x294E, - 0x2B22,0x2B21,0x2B24,0x2B2A,0x2B23,0x2B29,0x2941,0x2B2E, - 0x2B32,0x2B31,0x2B34,0x2B33,0x2B40,0x2B3F,0x2B42,0x2B41, - 0x2943,0x2B50,0x2B52,0x2B51,0x2B54,0x2B58,0x2B53,INVALC, - 0x294C,0x2B63,0x2B62,0x2B65,0x2B64,0x2B72,0x2950,0x2B73, - /* Block 2, Array index 0x0200 */ - 0x2A27,0x2B27,0x2A25,0x2B25,0x2A28,0x2B28,0x2A2B,0x2B2B, - 0x2A2C,0x2B2C,0x2A2F,0x2B2F,0x2A2D,0x2B2D,0x2A30,0x2B30, - 0x2922,0x2942,0x2A37,0x2B37,INVALC,INVALC,0x2A36,0x2B36, - 0x2A38,0x2B38,0x2A35,0x2B35,0x2A3A,0x2B3A,0x2A3B,0x2B3B, - 0x2A3D,0x2B3D,0x2A3C,INVALC,0x2A3E,0x2B3E,0x2924,0x2944, - 0x2A47,0x2B47,0x2A45,0x2B45,INVALC,INVALC,0x2A46,0x2B46, - 0x2A44,0x2945,0x2926,0x2946,0x2A48,0x2B48,0x2A49,0x2B49, - 0x2947,0x2A4A,0x2B4A,0x2A4C,0x2B4C,0x2A4B,0x2B4B,0x2929, - 0x2949,0x2928,0x2948,0x2A4D,0x2B4D,0x2A4F,0x2B4F,0x2A4E, - 0x2B4E,0x294A,0x292B,0x294B,0x2A57,0x2B57,INVALC,INVALC, - 0x2A56,0x2B56,0x292D,0x294D,0x2A59,0x2B59,0x2A5B,0x2B5B, - 0x2A5A,0x2B5A,0x2A5C,0x2B5C,0x2A5D,0x2B5D,0x2A5F,0x2B5F, - 0x2A5E,0x2B5E,0x2A61,0x2B61,0x2A60,0x2B60,0x292F,0x294F, - 0x2A6C,0x2B6C,0x2A69,0x2B69,0x2A66,0x2B66,0x2A6B,0x2B6B, - 0x2A68,0x2B68,0x2A6A,0x2B6A,0x2A71,0x2B71,0x2A74,0x2B74, - 0x2A73,0x2A75,0x2B75,0x2A77,0x2B77,0x2A76,0x2B76,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2A26,0x2B26,0x2A43, - 0x2B43,0x2A55,0x2B55,0x2A67,0x2B67,0x2A70,0x2B70,0x2A6D, - 0x2B6D,0x2A6F,0x2B6F,0x2A6E,0x2B6E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2B39,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 3, Array index 0x0300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2230, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x222F,0x2232,0x2236,0x2235,INVALC,0x2233,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 4, Array index 0x0400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2238,0x2239,0x2661,INVALC, - 0x2662,0x2663,0x2664,INVALC,0x2667,INVALC,0x2669,0x266C, - 0x2676,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2665,0x266A,0x2671,0x2672,0x2673,0x2674, - 0x267B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2678,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2675,0x267A,0x2677,0x2679,0x267C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 5, Array index 0x0500 */ - INVALC,INVALC,0x2742,0x2743,0x2744,0x2745,0x2746,0x2747, - 0x2748,0x2749,0x274A,0x274B,0x274C,INVALC,0x274D,0x274E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2772,0x2773,0x2774,0x2775,0x2776,0x2777, - 0x2778,0x2779,0x277A,0x277B,0x277C,INVALC,0x277D,0x277E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 34, Array index 0x0600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2271,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x226F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 79, Array index 0x0700 */ - INVALC,INVALC,0x3021,INVALC,0x3022,0x3023,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3024,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3025,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3026, - INVALC,INVALC,INVALC,0x3027,0x3028,INVALC,INVALC,INVALC, - 0x3029,INVALC,INVALC,0x302A,INVALC,INVALC,0x302B,0x302C, - 0x302D,INVALC,INVALC,INVALC,INVALC,0x302E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x302F,0x3030,INVALC,INVALC,0x3031,INVALC,INVALC,0x3032, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3033,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3034,INVALC,0x3035,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3036,INVALC,INVALC,INVALC,INVALC, - 0x3037,0x3038,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3039,0x303A,INVALC,INVALC, - INVALC,0x303B,INVALC,INVALC,INVALC,INVALC,INVALC,0x303C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x303D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x303E,0x303F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3040,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3041, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3042,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3043,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3044,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3045,0x3046,INVALC,INVALC,INVALC,INVALC, - 0x3047,0x3048,0x3049,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x304A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x304B, - INVALC,0x304C,INVALC,0x304D,INVALC,0x304E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x304F,0x3050,0x3051, - /* Block 80, Array index 0x0800 */ - 0x3052,INVALC,0x3053,0x3054,INVALC,INVALC,INVALC,INVALC, - 0x3055,INVALC,INVALC,0x3056,0x3057,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3058,INVALC,INVALC,0x3059,0x305A,0x305B, - INVALC,0x305C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x305D,INVALC, - INVALC,0x305E,INVALC,0x3060,INVALC,0x3061,INVALC,0x3062, - INVALC,0x3063,INVALC,0x3064,INVALC,INVALC,0x3065,INVALC, - 0x3066,INVALC,0x3067,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3068,0x3069,INVALC,0x306A,0x306B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x306C,INVALC,0x306D,INVALC,0x306E,INVALC, - 0x306F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3070, - 0x305F,INVALC,INVALC,0x3071,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3072,INVALC,0x3073,INVALC,0x3074,INVALC, - INVALC,0x3075,INVALC,INVALC,INVALC,INVALC,INVALC,0x3076, - 0x3077,0x3078,0x3079,INVALC,INVALC,0x307A,0x307B,INVALC, - INVALC,0x307C,0x307D,INVALC,0x307E,0x3121,INVALC,INVALC, - INVALC,0x3122,0x3123,INVALC,0x3124,INVALC,0x3125,INVALC, - 0x3126,INVALC,0x3127,0x3128,0x3129,INVALC,INVALC,0x312A, - INVALC,0x312B,0x312C,INVALC,INVALC,INVALC,0x312D,0x312E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x312F,INVALC,INVALC,INVALC,INVALC,0x3130, - INVALC,0x3131,INVALC,0x3132,0x3133,0x3134,0x3135,INVALC, - 0x3136,0x3137,INVALC,INVALC,INVALC,0x3138,0x3139,INVALC, - 0x313A,0x313B,INVALC,0x313C,0x313D,0x313E,INVALC,0x313F, - INVALC,INVALC,0x3140,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3141,INVALC,INVALC,INVALC, - 0x3142,INVALC,0x3143,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3144,INVALC,0x3145,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3146,0x3147,INVALC,0x3148, - /* Block 81, Array index 0x0900 */ - 0x3149,0x314A,INVALC,INVALC,0x314B,INVALC,INVALC,0x314C, - INVALC,INVALC,0x314D,INVALC,0x314E,INVALC,0x314F,INVALC, - 0x3150,INVALC,INVALC,0x3151,INVALC,INVALC,INVALC,0x3152, - 0x3153,INVALC,INVALC,0x3154,0x3155,0x3156,0x3157,INVALC, - INVALC,INVALC,0x3158,INVALC,INVALC,INVALC,INVALC,0x3159, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x315A,INVALC, - 0x315B,INVALC,0x315C,0x315D,INVALC,0x315E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3176,INVALC,INVALC,INVALC,INVALC, - 0x315F,0x3160,0x3161,INVALC,INVALC,0x3162,0x3163,INVALC, - INVALC,INVALC,0x3164,INVALC,0x3165,INVALC,0x3166,INVALC, - INVALC,0x3167,0x3168,0x3169,INVALC,INVALC,INVALC,0x316A, - INVALC,0x316B,INVALC,INVALC,INVALC,INVALC,INVALC,0x316C, - 0x316D,INVALC,0x316E,0x316F,INVALC,INVALC,0x3170,0x3171, - INVALC,INVALC,0x3172,INVALC,INVALC,0x3173,INVALC,INVALC, - 0x3174,0x3175,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3177,INVALC,0x3178,0x3179,INVALC,0x317A,INVALC, - INVALC,INVALC,0x317B,INVALC,INVALC,INVALC,0x317C,0x317D, - 0x317E,INVALC,0x3221,0x3222,0x3223,INVALC,0x3224,INVALC, - INVALC,INVALC,INVALC,0x3225,0x3226,INVALC,0x3227,0x3228, - 0x3229,0x322A,0x322B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x322C,INVALC,INVALC,INVALC,INVALC,0x322D, - 0x322E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x322F,0x3230,INVALC,INVALC,0x3231,INVALC,INVALC, - 0x3232,INVALC,INVALC,0x3233,0x3234,INVALC,INVALC,0x3235, - INVALC,INVALC,INVALC,INVALC,0x3236,INVALC,0x3237,INVALC, - 0x3238,INVALC,INVALC,0x3239,0x323A,INVALC,INVALC,INVALC, - 0x323B,INVALC,INVALC,INVALC,0x323C,0x323D,INVALC,0x323E, - INVALC,INVALC,0x323F,INVALC,0x3240,INVALC,0x3241,INVALC, - 0x3242,0x3243,INVALC,INVALC,INVALC,INVALC,INVALC,0x3244, - INVALC,0x3245,0x3251,INVALC,INVALC,INVALC,0x3246,INVALC, - INVALC,INVALC,0x3247,INVALC,INVALC,INVALC,0x3248,INVALC, - /* Block 82, Array index 0x0A00 */ - INVALC,INVALC,INVALC,0x3249,INVALC,INVALC,0x324A,0x324B, - 0x324C,INVALC,INVALC,0x324D,0x324E,0x324F,0x3250,INVALC, - 0x3252,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3253, - INVALC,0x3254,INVALC,0x3255,0x3256,0x3257,0x3258,INVALC, - INVALC,INVALC,INVALC,0x3259,INVALC,INVALC,INVALC,0x325A, - 0x325B,INVALC,INVALC,INVALC,0x325C,0x325D,INVALC,0x325E, - INVALC,0x325F,INVALC,0x3260,0x3261,0x3262,INVALC,INVALC, - 0x3263,0x3264,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3265,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3266,INVALC,INVALC,INVALC,INVALC,0x3267, - INVALC,INVALC,INVALC,0x3268,INVALC,0x3269,INVALC,0x326A, - 0x326B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x326C, - INVALC,INVALC,INVALC,INVALC,0x326D,INVALC,0x326E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x326F,INVALC, - INVALC,INVALC,INVALC,0x3270,0x3271,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3272,INVALC,INVALC,0x3273,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3274,INVALC,INVALC,INVALC,INVALC,0x3275,INVALC,INVALC, - INVALC,0x3276,INVALC,0x3277,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3278,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3279,INVALC,0x327A,INVALC,0x327B,INVALC,0x327C,0x327D, - INVALC,INVALC,0x327E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3321,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3322, - INVALC,0x3323,0x3324,0x3325,INVALC,0x3326,INVALC,INVALC, - 0x3327,INVALC,INVALC,INVALC,INVALC,INVALC,0x3328,INVALC, - INVALC,INVALC,0x3329,INVALC,INVALC,0x332A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x332B,INVALC, - INVALC,INVALC,0x332C,0x332D,0x332E,INVALC,INVALC,0x332F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 83, Array index 0x0B00 */ - INVALC,0x3330,0x3331,INVALC,INVALC,0x3332,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3333,0x3334,INVALC,0x3335,0x3336,INVALC, - 0x3337,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3338,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3339,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x333A,0x333B,INVALC,INVALC,0x333C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x333D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x333E,INVALC,INVALC, - INVALC,0x333F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3340,INVALC,0x3341, - 0x3342,INVALC,0x3343,INVALC,0x3344,INVALC,INVALC,0x3345, - 0x3346,0x3347,INVALC,INVALC,INVALC,INVALC,0x3348,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3349,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x334A, - 0x334B,0x334C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x334D,INVALC,0x334E,INVALC,INVALC,0x334F,INVALC,INVALC, - INVALC,INVALC,0x3350,INVALC,0x3351,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3352,INVALC,0x3353,0x3354,0x3355, - 0x3356,INVALC,0x3357,INVALC,0x3358,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3359,0x335A,0x335B,0x335C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x335D, - 0x335E,INVALC,INVALC,INVALC,INVALC,INVALC,0x335F,0x3360, - 0x3361,INVALC,0x3362,0x3363,INVALC,0x3364,INVALC,INVALC, - 0x3365,INVALC,INVALC,INVALC,0x3366,INVALC,0x3367,INVALC, - 0x3368,INVALC,INVALC,INVALC,0x3369,INVALC,INVALC,0x336A, - INVALC,0x336B,INVALC,INVALC,0x336C,INVALC,0x336D,INVALC, - INVALC,INVALC,INVALC,0x336E,0x336F,INVALC,INVALC,INVALC, - INVALC,0x3370,INVALC,INVALC,INVALC,0x3371,INVALC,INVALC, - 0x3372,0x3373,0x3374,INVALC,0x3375,INVALC,INVALC,INVALC, - 0x3376,0x3377,INVALC,INVALC,0x3378,INVALC,0x3379,0x337A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 84, Array index 0x0C00 */ - 0x337B,INVALC,INVALC,0x337C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x337D,0x337E,0x3421,INVALC,INVALC,INVALC, - INVALC,0x3422,INVALC,0x3423,INVALC,INVALC,INVALC,INVALC, - 0x3424,INVALC,INVALC,0x3425,0x3426,INVALC,0x3427,0x3428, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3429,INVALC,0x342A, - 0x342B,0x342C,INVALC,0x342D,0x342E,0x342F,INVALC,INVALC, - 0x3430,INVALC,0x3431,INVALC,INVALC,0x3432,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3433,0x3434,0x3435,INVALC, - INVALC,INVALC,0x3436,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3438,0x3437,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3439,INVALC,0x343A,INVALC,INVALC,INVALC,INVALC, - INVALC,0x343B,INVALC,0x343C,INVALC,0x343D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x343E,0x343F,INVALC,INVALC, - INVALC,INVALC,0x3440,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3441,INVALC,INVALC,INVALC,INVALC,0x3442,INVALC, - INVALC,INVALC,INVALC,0x3443,INVALC,INVALC,INVALC,0x3444, - 0x3445,INVALC,INVALC,INVALC,INVALC,INVALC,0x3446,INVALC, - INVALC,INVALC,INVALC,0x3447,0x3448,INVALC,INVALC,INVALC, - INVALC,0x3449,INVALC,INVALC,INVALC,0x344A,INVALC,INVALC, - INVALC,0x344B,INVALC,INVALC,0x344C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x344D,0x344E,INVALC,INVALC,INVALC,0x344F, - INVALC,INVALC,0x3450,INVALC,0x3451,0x3452,INVALC,0x3453, - 0x3454,INVALC,0x3455,INVALC,INVALC,0x3456,INVALC,INVALC, - 0x3457,INVALC,INVALC,INVALC,INVALC,0x3458,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3459, - INVALC,INVALC,0x345A,0x345B,INVALC,0x345C,INVALC,INVALC, - INVALC,INVALC,0x345D,INVALC,INVALC,0x345E,0x345F,INVALC, - 0x3460,INVALC,INVALC,INVALC,INVALC,INVALC,0x3461,0x3462, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3463,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 85, Array index 0x0D00 */ - INVALC,INVALC,0x3464,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3465,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3466,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3467,INVALC,INVALC,INVALC,INVALC,INVALC,0x3468, - 0x3469,INVALC,0x346A,INVALC,INVALC,INVALC,INVALC,0x346B, - INVALC,0x346C,INVALC,INVALC,0x346D,0x346E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x346F,0x3470,INVALC,INVALC,0x3471, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3472,INVALC,0x3473, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3474,INVALC, - INVALC,INVALC,0x3475,INVALC,0x3476,INVALC,0x3477,0x3478, - INVALC,0x3479,INVALC,0x347A,INVALC,0x347B,0x347C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x347D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x347E, - INVALC,0x3521,INVALC,0x3522,INVALC,0x3523,INVALC,INVALC, - 0x3524,0x3525,INVALC,INVALC,INVALC,0x3526,INVALC,INVALC, - INVALC,0x3527,INVALC,INVALC,INVALC,0x3528,0x3529,INVALC, - INVALC,INVALC,INVALC,INVALC,0x352A,INVALC,INVALC,0x352B, - INVALC,0x352C,INVALC,INVALC,INVALC,INVALC,0x352D,0x352E, - INVALC,0x352F,0x3530,INVALC,INVALC,0x3531,0x3532,INVALC, - INVALC,0x3533,INVALC,INVALC,INVALC,INVALC,INVALC,0x3534, - INVALC,0x3535,0x3536,0x3537,INVALC,INVALC,INVALC,0x3538, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3539,INVALC, - INVALC,INVALC,0x353A,INVALC,INVALC,0x353B,0x353C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x353D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x353E,INVALC,0x353F,INVALC,INVALC,0x3540, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3541,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3542,INVALC,0x3543,0x3544, - /* Block 86, Array index 0x0E00 */ - 0x3545,0x3546,INVALC,INVALC,INVALC,0x3547,INVALC,INVALC, - 0x3548,0x3549,INVALC,INVALC,0x354A,0x354B,0x354C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x354D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x354E,0x354F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3550,INVALC,INVALC,0x3551,0x3552,INVALC, - INVALC,INVALC,INVALC,0x3553,0x3554,0x3555,INVALC,INVALC, - INVALC,0x3556,INVALC,INVALC,INVALC,INVALC,INVALC,0x3557, - INVALC,0x3558,0x3559,INVALC,INVALC,0x355A,INVALC,INVALC, - 0x355B,0x355C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x355D,INVALC,0x355E,0x355F,INVALC,INVALC,0x3560,INVALC, - 0x3561,0x3562,INVALC,INVALC,0x3563,INVALC,0x3564,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3565, - INVALC,0x3566,0x3567,INVALC,INVALC,INVALC,0x3568,INVALC, - 0x3569,INVALC,INVALC,INVALC,INVALC,INVALC,0x356A,0x356B, - INVALC,0x356C,0x356D,0x356E,0x356F,INVALC,INVALC,0x3570, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3571,0x3572,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3573,INVALC,INVALC, - INVALC,INVALC,0x3574,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3575, - INVALC,0x3576,INVALC,0x3577,INVALC,INVALC,0x3578,INVALC, - INVALC,0x3579,INVALC,0x357A,0x357B,INVALC,0x357C,INVALC, - INVALC,0x357D,0x357E,0x3621,INVALC,INVALC,INVALC,0x3622, - 0x3623,INVALC,INVALC,0x3624,INVALC,INVALC,0x3625,INVALC, - INVALC,INVALC,0x3626,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3627,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3628,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3629, - /* Block 87, Array index 0x0F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x362A,INVALC,INVALC, - 0x362B,INVALC,0x362C,INVALC,INVALC,0x362D,0x362E,0x362F, - 0x3630,0x3631,0x3632,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3633,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3634,INVALC,INVALC,INVALC, - 0x3635,INVALC,INVALC,0x3636,INVALC,0x3637,INVALC,0x3638, - INVALC,0x3639,INVALC,0x363A,0x363B,0x363C,INVALC,0x363D, - 0x363E,0x363F,INVALC,0x3640,0x3641,INVALC,0x3642,INVALC, - INVALC,0x3643,INVALC,0x3644,INVALC,0x3645,INVALC,0x3646, - INVALC,INVALC,INVALC,INVALC,0x3647,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3648,INVALC, - 0x3649,0x364A,0x364B,0x364C,INVALC,INVALC,0x364D,INVALC, - INVALC,0x364E,INVALC,INVALC,INVALC,0x364F,INVALC,0x3650, - INVALC,0x3651,0x3652,INVALC,INVALC,0x3653,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3654,0x3655,INVALC,INVALC, - 0x3656,INVALC,INVALC,0x3657,0x3658,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3659,INVALC,INVALC, - INVALC,0x365A,0x365B,INVALC,INVALC,0x365C,0x365D,0x365E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x365F,0x3660, - 0x3661,0x3662,INVALC,0x3663,0x3664,0x3665,INVALC,INVALC, - INVALC,0x3666,INVALC,0x3667,INVALC,INVALC,INVALC,0x3668, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3669,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x366A,INVALC,INVALC, - INVALC,0x366B,0x366C,0x366D,0x3670,0x3671,INVALC,0x366E, - 0x366F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3672,INVALC,INVALC,0x3673,0x3674,INVALC,0x3675, - INVALC,0x3676,INVALC,INVALC,0x3677,0x3678,0x3679,0x367A, - 0x367B,INVALC,INVALC,0x367D,INVALC,0x367E,INVALC,INVALC, - INVALC,0x367C,INVALC,INVALC,INVALC,INVALC,0x3721,0x3722, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 88, Array index 0x1000 */ - INVALC,0x3723,0x3724,INVALC,INVALC,INVALC,INVALC,0x3725, - INVALC,INVALC,0x3726,INVALC,0x3727,INVALC,INVALC,INVALC, - INVALC,0x3728,INVALC,INVALC,INVALC,0x3729,INVALC,INVALC, - INVALC,INVALC,0x372A,0x372B,INVALC,0x372C,INVALC,INVALC, - 0x372D,INVALC,0x372E,0x372F,0x3730,0x3731,INVALC,INVALC, - INVALC,0x3732,0x3733,INVALC,0x3734,INVALC,0x3735,0x3736, - INVALC,INVALC,INVALC,0x3737,0x3738,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3739,0x373A,0x373B, - INVALC,INVALC,INVALC,INVALC,INVALC,0x373C,0x373D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x373E,0x373F,INVALC,INVALC, - INVALC,INVALC,0x3740,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3741,INVALC,INVALC,0x3742,INVALC,0x3743, - 0x3744,INVALC,INVALC,0x3745,INVALC,0x3746,0x3747,0x3748, - 0x3749,0x374A,INVALC,0x374B,0x374C,0x374D,INVALC,0x374E, - INVALC,0x374F,0x3750,0x3751,0x3752,INVALC,0x3753,INVALC, - INVALC,0x3754,INVALC,0x3755,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3756,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3757,0x3760,INVALC,0x3758, - INVALC,0x3759,0x375A,INVALC,0x375B,0x375C,0x375D,0x375E, - INVALC,0x375F,INVALC,INVALC,INVALC,INVALC,INVALC,0x3761, - 0x3762,0x3763,INVALC,INVALC,0x3764,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3765,INVALC,INVALC,INVALC,INVALC,0x3766,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3767, - 0x3768,INVALC,INVALC,INVALC,0x3769,INVALC,INVALC,0x376A, - INVALC,INVALC,INVALC,INVALC,INVALC,0x376B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x376C,0x376D,INVALC, - INVALC,0x377E,INVALC,INVALC,0x376E,INVALC,0x376F,0x3770, - INVALC,0x3771,INVALC,INVALC,INVALC,0x3772,INVALC,INVALC, - 0x3773,INVALC,INVALC,INVALC,INVALC,0x3774,0x3775,INVALC, - 0x3776,INVALC,INVALC,INVALC,INVALC,0x3777,0x3778,0x3779, - /* Block 89, Array index 0x1100 */ - INVALC,INVALC,INVALC,0x377A,0x377B,INVALC,INVALC,INVALC, - 0x377C,0x377D,INVALC,INVALC,0x3821,0x3822,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3823,INVALC,INVALC,0x3824,0x3825, - 0x3826,INVALC,INVALC,INVALC,INVALC,INVALC,0x3827,0x3828, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3829,INVALC,INVALC, - INVALC,INVALC,0x382A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x382B,INVALC,INVALC,INVALC,INVALC,INVALC,0x382C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x382D,INVALC,INVALC,0x382E,0x382F,INVALC,0x3830, - 0x3831,INVALC,INVALC,INVALC,INVALC,0x3832,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3833, - INVALC,0x3834,INVALC,INVALC,0x3835,INVALC,INVALC,0x3836, - 0x3837,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3838,INVALC,INVALC,INVALC,0x3839,INVALC,INVALC,0x383A, - 0x383B,0x383C,INVALC,INVALC,INVALC,INVALC,INVALC,0x383D, - 0x383E,0x383F,0x3840,INVALC,0x3841,0x3842,INVALC,0x3843, - 0x3844,INVALC,INVALC,INVALC,0x3845,INVALC,0x3846,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3847,INVALC,INVALC, - 0x3848,0x3849,0x384A,INVALC,INVALC,INVALC,0x384B,INVALC, - INVALC,0x384C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x384D,0x384E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3850,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3851,INVALC,0x384F,INVALC,INVALC,INVALC, - 0x3852,INVALC,INVALC,INVALC,INVALC,0x3853,0x3854,INVALC, - 0x3855,INVALC,0x3856,INVALC,0x3857,INVALC,0x3858,INVALC, - INVALC,INVALC,0x3859,INVALC,INVALC,0x385A,INVALC,INVALC, - INVALC,0x385B,0x385C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x385D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x385E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 90, Array index 0x1200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x385F,0x3860,INVALC, - INVALC,INVALC,INVALC,0x3861,0x3862,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3863,0x3864,0x3865,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3867,INVALC,INVALC, - INVALC,0x3868,INVALC,0x3869,0x386A,INVALC,INVALC,INVALC, - 0x386B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x386C, - 0x386D,INVALC,INVALC,0x386E,INVALC,0x386F,0x3870,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3871, - INVALC,INVALC,INVALC,0x3872,INVALC,INVALC,0x3873,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3874,0x3875,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3876,INVALC,0x3877,INVALC,0x3878,0x3879,0x387A, - INVALC,0x387B,INVALC,0x387C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x387D,INVALC,0x387E,INVALC,0x3921, - INVALC,INVALC,0x3922,INVALC,INVALC,0x3923,0x3924,INVALC, - INVALC,0x3925,INVALC,0x3926,0x3927,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3928,0x3929,INVALC,0x392A,INVALC, - INVALC,INVALC,0x392B,INVALC,INVALC,0x392C,INVALC,0x392D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x392E, - INVALC,INVALC,INVALC,INVALC,0x392F,INVALC,INVALC,0x3930, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3931,0x3932,0x3933, - 0x3934,INVALC,INVALC,0x3935,INVALC,INVALC,INVALC,0x3936, - INVALC,INVALC,0x3937,INVALC,0x3938,INVALC,INVALC,INVALC, - INVALC,0x3939,INVALC,0x393A,0x393B,INVALC,INVALC,INVALC, - 0x393C,INVALC,0x393D,INVALC,INVALC,0x393E,INVALC,INVALC, - INVALC,INVALC,0x393F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3940,0x3941,0x3942, - INVALC,INVALC,INVALC,0x3943,0x3944,INVALC,INVALC,0x3945, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3946,0x3947, - INVALC,0x3948,0x3949,INVALC,0x394A,INVALC,INVALC,0x394B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 91, Array index 0x1300 */ - 0x394C,INVALC,INVALC,INVALC,0x394D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x394E,0x394F,0x3950,INVALC, - INVALC,INVALC,0x3951,0x3952,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3953,INVALC, - INVALC,INVALC,INVALC,0x3954,0x3955,INVALC,INVALC,0x3956, - 0x3957,INVALC,0x3958,INVALC,INVALC,0x3959,INVALC,INVALC, - 0x395A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x395B,0x395C,INVALC,0x395D, - 0x395E,INVALC,INVALC,INVALC,0x395F,INVALC,INVALC,INVALC, - 0x3960,INVALC,INVALC,INVALC,INVALC,0x3961,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3962,INVALC, - INVALC,INVALC,INVALC,0x3963,INVALC,0x3964,INVALC,0x3965, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3966,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3967, - INVALC,INVALC,0x3968,0x3969,INVALC,INVALC,0x396A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x396B,INVALC,INVALC,INVALC,INVALC, - 0x396C,INVALC,INVALC,0x396D,INVALC,INVALC,0x396E,INVALC, - INVALC,0x396F,INVALC,INVALC,0x3970,INVALC,0x3971,0x3972, - 0x3973,INVALC,0x3974,INVALC,INVALC,INVALC,INVALC,0x3975, - INVALC,INVALC,INVALC,INVALC,0x3976,INVALC,INVALC,INVALC, - INVALC,0x3977,0x3978,0x3979,INVALC,0x397A,INVALC,INVALC, - 0x397B,INVALC,0x397C,0x397D,INVALC,INVALC,INVALC,0x397E, - INVALC,INVALC,INVALC,INVALC,0x3A21,INVALC,0x3A22,INVALC, - 0x3A23,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A24, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3A25,INVALC,0x3A26,INVALC,INVALC,INVALC, - 0x3A27,INVALC,INVALC,INVALC,INVALC,0x3A28,INVALC,INVALC, - INVALC,INVALC,0x3A29,INVALC,INVALC,INVALC,0x3A2A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3A2B,0x3A2C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3A2D,INVALC,INVALC, - /* Block 92, Array index 0x1400 */ - 0x3A2E,0x3A2F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A30,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A31, - INVALC,0x3A33,INVALC,0x3A34,INVALC,0x3A35,INVALC,INVALC, - INVALC,0x3A36,INVALC,INVALC,INVALC,0x3A37,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3A38,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A32,INVALC,INVALC,INVALC, - 0x3A39,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3A3A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3A3B,0x3A3C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3A3D,INVALC,INVALC,INVALC,0x3A3E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A3F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A40,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A41,0x3A42, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A43,0x3A44,0x3A45,0x3A46, - INVALC,0x3A47,INVALC,INVALC,0x3A48,INVALC,0x3A49,INVALC, - INVALC,INVALC,0x3A4A,INVALC,INVALC,INVALC,0x3A4B,INVALC, - 0x3A4C,0x3A4D,INVALC,0x3A4E,0x3A4F,INVALC,0x3A50,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A51,0x3A52,INVALC,INVALC,0x3A53,0x3A54,INVALC,0x3A55, - INVALC,0x3A56,0x3A57,INVALC,INVALC,INVALC,INVALC,0x3A58, - INVALC,INVALC,0x3A59,INVALC,0x3A5A,INVALC,INVALC,INVALC, - 0x3A5B,0x3A5C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3A5D,INVALC,0x3A5E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A5F,0x3A60, - 0x3A61,0x3A62,0x3A63,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A64,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A65, - INVALC,0x3A66,INVALC,INVALC,0x3A67,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3A68,INVALC,INVALC, - /* Block 93, Array index 0x1500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A69,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A6A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3A6B,0x3A6C, - INVALC,INVALC,INVALC,0x3A6D,INVALC,INVALC,0x3A6E,INVALC, - INVALC,0x3A6F,INVALC,0x3A70,0x3A71,INVALC,0x3A72,INVALC, - 0x3A73,INVALC,0x3A74,INVALC,INVALC,0x3A75,0x3A76,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3A77,0x3A78,INVALC,0x3A79,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3A7A,0x3A7B,INVALC,INVALC,INVALC,0x3A7C, - 0x3A7D,0x3A7E,INVALC,INVALC,INVALC,0x3B21,INVALC,INVALC, - 0x3B22,INVALC,INVALC,INVALC,0x3B23,0x3B24,INVALC,INVALC, - INVALC,INVALC,0x3B25,0x3B26,0x3B27,0x3B28,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3B29, - 0x3B2A,INVALC,0x3B2B,INVALC,INVALC,INVALC,INVALC,0x3B2C, - INVALC,INVALC,0x3B2D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3B2E,INVALC,0x3B2F, - 0x3B30,INVALC,0x3B31,0x3B32,INVALC,INVALC,0x3B33,INVALC, - INVALC,INVALC,0x3B34,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3B35,INVALC,0x3B36,0x3B37,INVALC,INVALC, - INVALC,INVALC,0x3B38,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3B39,INVALC,0x3B3A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3B3B,INVALC,INVALC,INVALC,INVALC,0x3B3D, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3B3C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3B3E,INVALC, - INVALC,0x3B3F,0x3B40,INVALC,0x3B41,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 94, Array index 0x1600 */ - INVALC,0x3B42,INVALC,INVALC,INVALC,INVALC,0x3B43,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3B44,INVALC,INVALC, - INVALC,INVALC,0x3B45,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3B47,0x3B48,INVALC,0x3B49,0x3B4A, - INVALC,INVALC,INVALC,0x3B46,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3B4B,INVALC,INVALC,0x3B4C,INVALC,INVALC,INVALC, - INVALC,0x3B4D,INVALC,INVALC,INVALC,0x3B4E,INVALC,0x3B4F, - INVALC,INVALC,0x3B50,0x3B51,INVALC,INVALC,0x3B52,INVALC, - 0x3B53,INVALC,0x3B57,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3B55,INVALC,INVALC,INVALC,0x3B54,INVALC,INVALC, - INVALC,0x3B56,INVALC,INVALC,INVALC,INVALC,INVALC,0x3B58, - 0x3B59,0x3B5A,0x3B5B,INVALC,0x3B5C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3B5D,INVALC,INVALC,0x3B5E,INVALC,INVALC, - 0x3B5F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3B60,0x3B61,INVALC,INVALC,INVALC,0x3B62,0x3B63, - INVALC,0x3B64,INVALC,0x3B65,INVALC,INVALC,INVALC,INVALC, - 0x3B66,INVALC,0x3B67,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3B68,0x3B69,0x3B6A,0x3B6B,INVALC,INVALC, - INVALC,0x3B6C,INVALC,0x3B6D,INVALC,INVALC,INVALC,0x3B6E, - 0x3B6F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3B70, - INVALC,INVALC,INVALC,0x3B71,INVALC,INVALC,INVALC,INVALC, - 0x3B72,INVALC,0x6674,INVALC,0x3B73,INVALC,INVALC,INVALC, - 0x3B74,0x3B75,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3B76,INVALC,INVALC,INVALC,0x3B77, - INVALC,INVALC,INVALC,0x3B78,INVALC,INVALC,0x3B7A,INVALC, - 0x3B79,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B7B,0x3B7C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B7D,INVALC,INVALC,INVALC,0x3B7E,INVALC,INVALC,INVALC, - INVALC,0x3C21,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C22,0x3C23,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 95, Array index 0x1700 */ - 0x3C24,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3C25, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3C26,INVALC,INVALC, - INVALC,INVALC,0x3C27,INVALC,0x3C28,0x3C29,INVALC,INVALC, - 0x3C2A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3C2B, - 0x3C2C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C2E,INVALC,INVALC,INVALC,INVALC,INVALC,0x3C2D,INVALC, - INVALC,INVALC,0x3C2F,INVALC,INVALC,0x3C30,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3C31,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3C34,INVALC,0x3C32,INVALC,INVALC,INVALC,INVALC, - 0x3C33,0x3C35,INVALC,INVALC,INVALC,INVALC,0x3C36,INVALC, - 0x3C37,INVALC,INVALC,0x3C38,0x3C39,INVALC,0x3C3A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C3B,INVALC,0x3C3C,0x3C3D,0x3C3E,0x3C3F,0x3C40,INVALC, - 0x3C41,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C42,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3C43,INVALC,INVALC,0x3C44,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3C45,INVALC,0x3C46,0x3C47,INVALC,INVALC, - 0x3C48,INVALC,0x3C49,INVALC,0x3C4A,INVALC,INVALC,INVALC, - INVALC,0x3C4B,INVALC,0x3C4C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3C4D,0x3C4E,0x3C4F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3C50,INVALC, - INVALC,INVALC,INVALC,0x3C52,0x3C51,INVALC,0x3C53,INVALC, - INVALC,0x3C54,0x3C55,INVALC,0x3C56,0x3C57,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C58,INVALC,0x3C59,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3C5A,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3C5B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 96, Array index 0x1800 */ - INVALC,INVALC,0x3C5C,INVALC,INVALC,INVALC,0x3C5D,0x3C5E, - 0x3C5F,INVALC,INVALC,INVALC,INVALC,INVALC,0x3C60,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3C61,INVALC,INVALC,0x3C62,0x3C63,INVALC,INVALC, - INVALC,0x3C64,0x3C65,0x3C66,0x3C67,INVALC,INVALC,INVALC, - 0x3C68,INVALC,INVALC,0x3C69,0x3C6A,INVALC,0x3C6B,INVALC, - 0x3C6C,INVALC,INVALC,INVALC,0x3C6D,INVALC,0x3C6E,INVALC, - INVALC,INVALC,INVALC,0x3C6F,INVALC,0x3C70,INVALC,0x3C71, - 0x3C72,INVALC,INVALC,INVALC,0x3C73,0x3C74,INVALC,0x3C75, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3C76,INVALC,INVALC, - 0x3C77,INVALC,INVALC,INVALC,0x3C78,INVALC,INVALC,INVALC, - 0x3C79,INVALC,INVALC,0x3C7A,INVALC,INVALC,INVALC,INVALC, - 0x3C7B,INVALC,INVALC,0x3C7C,0x3C7D,INVALC,INVALC,0x3C7E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D21, - INVALC,INVALC,0x3D22,INVALC,0x3D23,0x3D24,INVALC,INVALC, - 0x3D25,INVALC,0x3D26,INVALC,INVALC,0x3D27,0x3D28,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3D29,INVALC,INVALC,INVALC,0x3D2A,INVALC,0x3D2B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D2C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D2D,0x3D2E,INVALC,INVALC, - INVALC,INVALC,0x3D2F,INVALC,0x3D32,INVALC,INVALC,0x3D30, - INVALC,INVALC,INVALC,0x3D31,0x3D33,INVALC,INVALC,0x3D34, - 0x3D35,0x3D36,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D37,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D38,INVALC,INVALC,0x3D39, - 0x3D3A,0x3D3B,INVALC,0x3D3C,INVALC,INVALC,INVALC,INVALC, - 0x3D3D,0x3D3E,0x3D3F,0x3D40,0x3D41,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D42,INVALC, - INVALC,0x3D43,0x3D44,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D45,0x3D46,0x3D47,INVALC,0x3D48,0x3D49,0x3D4A,0x3D4B, - INVALC,INVALC,0x3D4C,0x3D4D,INVALC,INVALC,0x3D4E,INVALC, - INVALC,INVALC,0x3D4F,INVALC,0x3D50,INVALC,INVALC,INVALC, - /* Block 97, Array index 0x1900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D51, - INVALC,INVALC,0x3D52,INVALC,INVALC,0x3D53,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3D54,0x3D55,INVALC,INVALC,0x3D56, - 0x3D57,INVALC,0x3D58,INVALC,INVALC,INVALC,INVALC,0x3D59, - INVALC,INVALC,INVALC,INVALC,0x3D5A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3D5B,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3D5C,INVALC,0x3D5D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D5E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D5F, - 0x3D60,0x3D61,INVALC,INVALC,0x3D62,INVALC,INVALC,INVALC, - INVALC,0x3D63,INVALC,INVALC,0x3D64,INVALC,0x3D65,0x3D66, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3D67,INVALC,INVALC, - INVALC,0x3D68,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D69, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3D6A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D6B,0x3D6C, - INVALC,INVALC,0x3D6D,INVALC,INVALC,INVALC,0x3D6E,INVALC, - 0x3D6F,INVALC,0x3D70,INVALC,INVALC,INVALC,0x3D71,INVALC, - INVALC,0x3D72,INVALC,0x3D73,INVALC,0x3D74,INVALC,INVALC, - 0x3D75,INVALC,INVALC,INVALC,INVALC,0x3D76,0x3D77,INVALC, - INVALC,INVALC,0x3D78,INVALC,0x3D79,0x3D7A,INVALC,INVALC, - 0x3D7B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D7C,0x3D7D,INVALC,INVALC,INVALC,INVALC,INVALC,0x3D7E, - INVALC,INVALC,INVALC,0x3E21,INVALC,INVALC,0x3E22,INVALC, - INVALC,INVALC,0x3E23,INVALC,0x3E24,INVALC,INVALC,INVALC, - 0x3E25,0x3E26,0x3E27,0x3E28,INVALC,INVALC,0x3E29,0x3E2A, - INVALC,INVALC,INVALC,INVALC,0x3E2B,0x3E2C,INVALC,INVALC, - INVALC,0x3E2D,INVALC,0x3E2E,INVALC,0x3E2F,0x3E30,INVALC, - INVALC,INVALC,0x3E31,INVALC,INVALC,0x3E32,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3E33,INVALC,INVALC,0x3E34,INVALC,INVALC, - 0x3E35,INVALC,INVALC,INVALC,0x3E36,0x3E37,INVALC,INVALC, - /* Block 98, Array index 0x1A00 */ - INVALC,INVALC,0x3E38,INVALC,INVALC,INVALC,INVALC,0x3E39, - INVALC,INVALC,0x3E3A,INVALC,0x3E3B,INVALC,INVALC,INVALC, - 0x3E3C,0x3E3D,0x3E3E,0x3E3F,0x3E40,INVALC,0x3E41,0x3E42, - INVALC,0x3E43,INVALC,INVALC,0x3E44,INVALC,0x3E45,INVALC, - INVALC,INVALC,0x3E46,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3E47,0x3E48,INVALC,INVALC,INVALC,INVALC, - 0x3E49,0x3E4A,INVALC,INVALC,INVALC,0x3E4B,0x3E4C,0x3E4D, - INVALC,0x3E4E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3E4F,INVALC,INVALC,INVALC,0x3E50,0x3E51,INVALC, - INVALC,0x3E52,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3E53,INVALC, - 0x3E54,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E55,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3E56,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3E57,INVALC,INVALC,0x3E58,0x3E59,INVALC,INVALC,0x3E5A, - 0x3E5B,0x3E5C,INVALC,0x3E5D,0x3E5E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3E5F,INVALC,0x3E60,INVALC,INVALC, - INVALC,INVALC,0x3E61,0x3E62,INVALC,INVALC,INVALC,0x3E63, - 0x3E64,INVALC,INVALC,INVALC,0x3E65,0x3E66,INVALC,0x3E67, - 0x3E68,INVALC,INVALC,INVALC,INVALC,0x3E69,INVALC,INVALC, - 0x3E6A,INVALC,0x3E6B,INVALC,INVALC,0x3E6C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3E6D,0x3E6E,INVALC,INVALC,0x3E6F,INVALC,INVALC,INVALC, - 0x3E70,0x3E71,0x3E72,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3E73,0x3E74, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3E75,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E76,0x3E77,0x3E78,0x3E79, - INVALC,0x3E7A,0x3E7B,INVALC,INVALC,0x3E7E,INVALC,0x3E7C, - INVALC,0x3E7D,INVALC,INVALC,0x3F21,0x3F22,INVALC,0x3F23, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 99, Array index 0x1B00 */ - INVALC,0x3F24,INVALC,0x3F25,0x3F26,INVALC,INVALC,0x3F27, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3F28,INVALC,0x3F29,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F2A,INVALC,INVALC,INVALC, - 0x3F2B,INVALC,0x3F2C,0x3F2D,INVALC,INVALC,INVALC,0x3F2E, - INVALC,0x3F2F,INVALC,0x3F30,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3F31,INVALC,INVALC,INVALC,0x3F32,INVALC,INVALC, - INVALC,INVALC,0x3F33,0x3F34,0x3F35,INVALC,0x3F36,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F37,INVALC,INVALC,INVALC, - 0x3F38,0x3F39,0x3F3A,INVALC,0x3F3B,INVALC,0x3F3C,INVALC, - INVALC,INVALC,0x3F3D,INVALC,0x3F3E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F3F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3F40,INVALC,0x3F41, - INVALC,INVALC,INVALC,0x3F42,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3F43,INVALC,INVALC,0x3F44,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3F45,0x3F46,0x3F47, - 0x3F48,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3F49,INVALC, - 0x3F4A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3F4B,INVALC,INVALC,0x3F4C,0x3F4D, - INVALC,INVALC,0x3F4E,INVALC,INVALC,INVALC,0x3F4F,0x3F50, - INVALC,INVALC,INVALC,INVALC,0x3F51,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x3F52,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3F53,0x3F54,INVALC, - INVALC,INVALC,0x3F55,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3F56,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3F57,INVALC,0x3F58,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F59,0x3F5A,INVALC,INVALC, - /* Block 100, Array index 0x1C00 */ - INVALC,INVALC,INVALC,0x3F5B,0x3F5C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x3F5D,0x3F5E,INVALC,0x3F5F,INVALC,INVALC, - 0x3F60,INVALC,INVALC,0x3F61,INVALC,INVALC,0x3F62,INVALC, - 0x3F63,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3F64,0x3F65,INVALC,INVALC,0x3F66,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3F67,0x3F68,INVALC, - INVALC,0x3F69,INVALC,INVALC,0x3F6A,INVALC,INVALC,INVALC, - INVALC,0x3F6B,0x3F6C,0x3F6D,0x3F6E,INVALC,0x3F6F,INVALC, - INVALC,INVALC,0x3F70,0x3F71,INVALC,INVALC,0x3F72,INVALC, - INVALC,INVALC,0x3F73,0x3F74,0x3F75,INVALC,INVALC,INVALC, - 0x3F76,INVALC,INVALC,0x3F77,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3F78,0x3F79,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F7A,0x3F7B,INVALC,INVALC, - INVALC,0x3F7C,INVALC,INVALC,0x3F7D,0x3F7E,INVALC,INVALC, - 0x4021,INVALC,INVALC,INVALC,0x4022,0x4023,INVALC,0x4024, - INVALC,INVALC,0x4025,INVALC,0x4026,INVALC,INVALC,0x4027, - INVALC,INVALC,0x4028,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4029,INVALC,INVALC,INVALC,0x402A,0x402B,INVALC,INVALC, - INVALC,0x402C,0x402D,INVALC,INVALC,INVALC,0x402E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x402F,INVALC,0x4030,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4031,0x4032,0x4033, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4034,INVALC,INVALC, - INVALC,0x4035,INVALC,INVALC,INVALC,0x4036,INVALC,INVALC, - 0x4037,INVALC,INVALC,INVALC,INVALC,INVALC,0x4038,INVALC, - INVALC,0x4039,INVALC,0x403A,0x403B,0x403C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x403D,INVALC,INVALC,INVALC, - 0x403E,INVALC,INVALC,INVALC,INVALC,0x403F,INVALC,INVALC, - INVALC,INVALC,0x4040,INVALC,0x4041,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4042,0x4043,INVALC,0x4044,INVALC,INVALC, - 0x4045,0x4046,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 101, Array index 0x1D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4047,0x4048,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4049,INVALC,0x404A,INVALC,0x404B,INVALC,INVALC,INVALC, - 0x404C,INVALC,INVALC,INVALC,INVALC,INVALC,0x404D,INVALC, - 0x404E,INVALC,0x404F,INVALC,0x4050,0x4051,INVALC,INVALC, - INVALC,0x4052,0x4053,INVALC,INVALC,INVALC,INVALC,0x4054, - 0x4055,INVALC,INVALC,INVALC,INVALC,0x4056,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4057,INVALC,0x4058, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4059,INVALC,INVALC,INVALC,0x405A, - INVALC,0x405B,0x405C,0x405D,0x405E,INVALC,INVALC,INVALC, - INVALC,INVALC,0x405F,0x4060,0x4061,0x4062,INVALC,0x4063, - 0x4064,0x4065,INVALC,0x4066,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4067,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4068,0x4069,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x406A,INVALC,0x406B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x406C,INVALC,0x406D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x406E, - 0x406F,0x4070,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4071,0x4072,INVALC,0x4073,INVALC,0x4074,INVALC,0x4075, - INVALC,0x4076,INVALC,0x4077,INVALC,INVALC,0x4078,INVALC, - 0x4079,INVALC,INVALC,INVALC,0x407A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x407B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x407C,0x407D,0x407E, - INVALC,INVALC,INVALC,INVALC,0x4121,INVALC,INVALC,INVALC, - INVALC,0x4122,0x4123,0x4124,0x4125,INVALC,0x4126,INVALC, - 0x4127,0x4128,INVALC,INVALC,INVALC,0x4129,INVALC,0x412A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x412B,0x412C,INVALC,INVALC, - INVALC,0x412D,0x412E,INVALC,INVALC,0x412F,INVALC,INVALC, - 0x4130,INVALC,INVALC,INVALC,INVALC,0x4131,INVALC,0x4132, - INVALC,INVALC,INVALC,0x4133,INVALC,INVALC,INVALC,0x4134, - /* Block 102, Array index 0x1E00 */ - INVALC,0x4135,INVALC,INVALC,0x4136,INVALC,INVALC,INVALC, - 0x4137,0x4138,0x4139,INVALC,INVALC,INVALC,INVALC,0x413A, - INVALC,INVALC,INVALC,0x413B,0x413C,INVALC,0x413D,INVALC, - INVALC,0x413E,INVALC,0x413F,INVALC,INVALC,0x4140,0x4141, - INVALC,INVALC,0x4142,INVALC,INVALC,INVALC,0x4143,INVALC, - INVALC,0x4144,INVALC,INVALC,INVALC,INVALC,0x4145,INVALC, - INVALC,0x4146,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4147,INVALC,0x4148,0x4149,INVALC,INVALC, - INVALC,INVALC,INVALC,0x414A,INVALC,INVALC,INVALC,0x414B, - INVALC,0x414C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x414D,INVALC,0x414E,INVALC,0x414F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4150, - 0x4151,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4152, - INVALC,INVALC,INVALC,0x4153,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4154,INVALC,INVALC,0x4155,INVALC,INVALC, - INVALC,0x4156,INVALC,INVALC,INVALC,0x4157,INVALC,INVALC, - INVALC,INVALC,0x4158,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4159,INVALC,INVALC,0x415A,INVALC,INVALC, - 0x415B,INVALC,INVALC,INVALC,INVALC,0x415C,INVALC,INVALC, - 0x415D,INVALC,INVALC,0x415E,INVALC,INVALC,0x415F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4160,INVALC, - INVALC,INVALC,0x4161,0x4162,0x4163,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4164, - INVALC,INVALC,0x4165,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4166,0x4167,INVALC,INVALC,INVALC,INVALC,0x4168,INVALC, - 0x4169,INVALC,INVALC,INVALC,0x416A,INVALC,0x416B,INVALC, - 0x416C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x416D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x416E,INVALC,0x416F,INVALC,0x4170,0x4171,INVALC,INVALC, - INVALC,0x4172,INVALC,INVALC,INVALC,INVALC,0x4173,0x4174, - /* Block 103, Array index 0x1F00 */ - 0x4175,INVALC,INVALC,INVALC,0x4176,INVALC,INVALC,INVALC, - 0x4177,0x4178,INVALC,INVALC,INVALC,0x4179,INVALC,INVALC, - INVALC,0x417A,0x417B,INVALC,INVALC,0x417C,0x417D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x417E,0x4221,INVALC, - INVALC,0x4222,0x4223,0x4224,0x4225,INVALC,0x4226,INVALC, - INVALC,0x4227,0x4228,0x4229,0x422A,INVALC,0x422B,INVALC, - 0x422C,0x422D,INVALC,0x422E,INVALC,INVALC,INVALC,0x4230, - INVALC,0x422F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4231,INVALC,INVALC,INVALC,INVALC,0x4232,0x4233,INVALC, - INVALC,INVALC,0x4234,INVALC,0x4235,INVALC,0x4237,INVALC, - INVALC,0x4236,INVALC,INVALC,INVALC,INVALC,INVALC,0x4238, - 0x4239,0x423A,INVALC,0x423B,0x423C,INVALC,INVALC,INVALC, - 0x423D,0x423E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4240,0x4241,0x4242,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4244,INVALC,0x4245,INVALC,0x4247, - 0x4248,0x4249,INVALC,0x424A,0x424C,INVALC,0x4243,0x4246, - 0x424B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x424D,0x424E,0x424F,INVALC,INVALC, - 0x4250,INVALC,0x4251,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4252,0x4253,0x4254,0x4255,INVALC,INVALC,0x4256, - 0x4257,INVALC,INVALC,INVALC,0x4258,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4259,INVALC,INVALC, - INVALC,0x425A,0x425B,INVALC,INVALC,0x425C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x425D,INVALC,INVALC,INVALC,0x425E, - 0x425F,INVALC,0x4260,0x4261,INVALC,INVALC,INVALC,INVALC, - 0x4262,INVALC,INVALC,INVALC,0x4263,INVALC,0x4264,0x4265, - INVALC,INVALC,INVALC,INVALC,0x4266,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4267,INVALC,INVALC,INVALC,0x4268, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4269,INVALC,INVALC,0x426A,0x426B,INVALC,0x426C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x426D,0x423F,INVALC,INVALC,INVALC,INVALC, - /* Block 104, Array index 0x2000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x426E,INVALC,0x426F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4270,INVALC, - INVALC,INVALC,INVALC,0x4271,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4272,INVALC,INVALC,0x4273,INVALC,INVALC,INVALC, - 0x4274,INVALC,0x4275,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4276,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4277,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4278,INVALC,0x4279, - 0x427A,INVALC,INVALC,INVALC,0x427B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x427C,0x427D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x427E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4321,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4322,INVALC,0x4323,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4324,INVALC,0x4325,INVALC, - INVALC,INVALC,INVALC,0x4326,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4327,INVALC,INVALC,0x4328,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4329,0x432A, - INVALC,0x432B,INVALC,0x432C,INVALC,INVALC,0x432D,INVALC, - 0x432E,0x432F,INVALC,0x4330,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4331,0x4332,0x4333,INVALC,INVALC,0x4334,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4335,0x4336,0x4337,INVALC,INVALC, - 0x4339,INVALC,0x433A,0x433B,INVALC,0x433C,INVALC,INVALC, - 0x433D,0x433E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x433F,INVALC,INVALC,INVALC,INVALC,0x4340, - INVALC,0x4341,INVALC,INVALC,0x4342,INVALC,INVALC,INVALC, - INVALC,0x4343,INVALC,INVALC,INVALC,INVALC,0x4344,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4345,INVALC,0x4346,INVALC,INVALC,INVALC,0x4347,0x4348, - INVALC,0x4338,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 105, Array index 0x2100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x434A,INVALC,INVALC,INVALC, - INVALC,0x434B,INVALC,INVALC,INVALC,0x434C,INVALC,0x434D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x434F, - 0x434E,INVALC,INVALC,INVALC,0x4350,0x4351,INVALC,0x4352, - 0x4353,0x4354,INVALC,0x4355,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4356,INVALC,INVALC,INVALC,0x4357, - INVALC,INVALC,INVALC,INVALC,0x4358,0x4359,INVALC,INVALC, - INVALC,INVALC,0x435A,INVALC,0x435B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4349,INVALC,INVALC,0x435C,INVALC,0x435D, - 0x435E,INVALC,INVALC,0x435F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4360,INVALC,INVALC,0x4361,0x4362, - 0x4363,0x4364,0x4365,INVALC,INVALC,0x4366,INVALC,INVALC, - INVALC,0x4367,0x4368,0x4369,0x436A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x436B,INVALC,0x436C,INVALC,0x436D,INVALC, - 0x436E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x436F,INVALC, - 0x4370,INVALC,0x4371,INVALC,0x4372,INVALC,INVALC,INVALC, - INVALC,0x4373,INVALC,0x4374,INVALC,0x4375,INVALC,INVALC, - INVALC,0x4376,0x4377,INVALC,INVALC,INVALC,0x4378,INVALC, - INVALC,INVALC,0x4379,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x437A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x437B,INVALC,INVALC, - 0x437C,INVALC,INVALC,INVALC,0x437D,INVALC,INVALC,0x437E, - 0x4421,0x4422,INVALC,0x4423,INVALC,INVALC,0x4424,INVALC, - INVALC,0x4425,INVALC,INVALC,0x4426,0x4427,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4428,INVALC,INVALC, - 0x4429,INVALC,0x442A,0x442B,0x442C,0x442D,INVALC,INVALC, - 0x442E,0x442F,INVALC,INVALC,INVALC,0x4430,0x4431,INVALC, - INVALC,INVALC,INVALC,0x4432,0x4433,0x4434,INVALC,INVALC, - /* Block 106, Array index 0x2200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4435,INVALC, - INVALC,0x4436,0x4437,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4438,0x4439,INVALC,0x443A,INVALC,INVALC,0x443B,0x443C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x443D,INVALC,0x443E,INVALC,0x443F,INVALC,INVALC, - 0x4440,INVALC,INVALC,0x4441,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4442,INVALC,INVALC,0x4443,INVALC,INVALC, - INVALC,0x4444,INVALC,INVALC,INVALC,INVALC,0x4445,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4446, - INVALC,INVALC,INVALC,0x4447,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4448,0x4449,0x444A,0x444B,INVALC, - 0x444C,0x444D,INVALC,INVALC,0x444E,INVALC,INVALC,INVALC, - 0x444F,0x4450,0x4451,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4452,0x4453,INVALC,INVALC,INVALC,0x4454, - 0x4455,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4456,INVALC,INVALC, - INVALC,INVALC,0x4457,INVALC,INVALC,INVALC,0x4458,INVALC, - 0x4459,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x445A,INVALC,INVALC,INVALC,0x445B,0x445C,INVALC, - 0x445D,INVALC,INVALC,0x445E,INVALC,0x445F,INVALC,0x4460, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4461, - 0x4462,INVALC,0x4463,INVALC,0x4464,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4465,INVALC,INVALC, - 0x4466,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4467,INVALC,INVALC,INVALC,INVALC,0x4468,0x4469, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x446A,INVALC,INVALC,0x446B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x446C,0x446D, - INVALC,0x446E,INVALC,0x446F,INVALC,0x4470,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4471,INVALC, - /* Block 107, Array index 0x2300 */ - 0x4472,0x4473,INVALC,0x4474,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4475, - INVALC,0x4476,INVALC,INVALC,INVALC,0x4477,INVALC,INVALC, - INVALC,INVALC,0x4478,INVALC,INVALC,0x4479,INVALC,INVALC, - 0x447A,INVALC,INVALC,INVALC,0x447B,INVALC,INVALC,INVALC, - 0x447C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x447D,INVALC,0x447E,INVALC,0x4521,INVALC,INVALC,0x4522, - INVALC,INVALC,INVALC,0x4523,INVALC,INVALC,0x4524,0x4525, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4526,0x4527,INVALC, - INVALC,0x4528,0x4529,INVALC,INVALC,INVALC,0x452A,INVALC, - 0x452B,0x452C,0x452D,INVALC,INVALC,0x452E,0x452F,INVALC, - INVALC,INVALC,INVALC,0x4530,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4531,INVALC,INVALC,0x4532, - INVALC,INVALC,0x4533,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4534,INVALC,0x4535,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4536,INVALC, - INVALC,0x4537,INVALC,0x4538,INVALC,INVALC,0x4539,0x453A, - INVALC,0x453B,INVALC,0x453C,INVALC,INVALC,INVALC,INVALC, - INVALC,0x453D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x453E,INVALC,0x453F,0x4540,0x4541, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4542,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4543,INVALC,INVALC,INVALC,0x4544, - 0x4545,0x4546,INVALC,INVALC,0x4547,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4548,0x4549,0x454A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x454B,INVALC, - 0x454D,0x454C,INVALC,INVALC,0x454E,INVALC,INVALC,INVALC, - 0x454F,INVALC,INVALC,INVALC,0x4550,0x4551,0x4552,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4553,0x4554,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4555,INVALC,INVALC,0x4556, - INVALC,INVALC,INVALC,INVALC,0x4557,INVALC,INVALC,INVALC, - 0x4558,0x4559,0x455A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x455B,0x455C,INVALC,INVALC, - /* Block 108, Array index 0x2400 */ - INVALC,INVALC,0x455D,0x455E,INVALC,INVALC,0x455F,0x4560, - INVALC,0x4561,INVALC,INVALC,INVALC,INVALC,INVALC,0x4562, - 0x4563,0x4564,INVALC,INVALC,INVALC,INVALC,INVALC,0x4565, - INVALC,INVALC,INVALC,0x4566,INVALC,INVALC,0x4567,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4568,INVALC,INVALC,INVALC, - 0x4569,INVALC,INVALC,0x456A,0x456B,INVALC,INVALC,0x456C, - INVALC,INVALC,INVALC,INVALC,INVALC,0x456D,0x456E,INVALC, - INVALC,INVALC,INVALC,0x456F,INVALC,INVALC,INVALC,0x4570, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4571,INVALC, - INVALC,INVALC,0x4572,INVALC,INVALC,0x4573,INVALC,INVALC, - INVALC,INVALC,0x4574,INVALC,INVALC,INVALC,0x4575,INVALC, - 0x4576,INVALC,INVALC,INVALC,INVALC,0x4577,INVALC,INVALC, - 0x4578,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4579, - INVALC,INVALC,INVALC,0x457A,INVALC,INVALC,0x457B,INVALC, - 0x457C,INVALC,INVALC,INVALC,INVALC,0x457D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x457E,0x4621,INVALC, - INVALC,INVALC,0x4622,INVALC,INVALC,0x4623,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4624, - INVALC,INVALC,INVALC,0x4625,INVALC,INVALC,INVALC,0x4626, - 0x4627,INVALC,0x4628,0x4629,INVALC,INVALC,INVALC,INVALC, - 0x462A,0x462B,INVALC,INVALC,0x462C,0x462D,0x462E,INVALC, - 0x462F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4630,0x4631,INVALC,INVALC,INVALC,0x4632,0x4633,INVALC, - INVALC,INVALC,INVALC,0x4634,0x4635,INVALC,INVALC,INVALC, - INVALC,0x4636,INVALC,INVALC,0x4637,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4638,INVALC, - INVALC,INVALC,0x4639,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x463A,INVALC,0x463B,INVALC,INVALC,0x463C,0x463D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x463E,INVALC, - INVALC,0x463F,INVALC,INVALC,INVALC,INVALC,INVALC,0x4640, - INVALC,0x4641,INVALC,INVALC,INVALC,INVALC,INVALC,0x4642, - /* Block 109, Array index 0x2500 */ - INVALC,INVALC,0x4643,INVALC,0x4644,0x4645,INVALC,INVALC, - INVALC,0x4646,INVALC,INVALC,INVALC,0x4647,0x4648,INVALC, - 0x4649,INVALC,0x464A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x464B,INVALC,INVALC,INVALC,INVALC,INVALC,0x464C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x464D,0x464E, - 0x464F,INVALC,INVALC,INVALC,0x4650,INVALC,0x4651,INVALC, - INVALC,INVALC,INVALC,0x4652,INVALC,0x4653,0x4654,INVALC, - INVALC,INVALC,0x4655,0x4656,INVALC,INVALC,INVALC,0x4657, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4658,0x4659,INVALC,0x465A,INVALC,0x465B, - INVALC,INVALC,0x465C,INVALC,0x465D,INVALC,INVALC,INVALC, - INVALC,0x465E,INVALC,0x465F,0x4660,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4736, - INVALC,INVALC,INVALC,0x4661,INVALC,0x4662,INVALC,0x4663, - INVALC,INVALC,INVALC,INVALC,0x4664,INVALC,0x4665,INVALC, - 0x4666,0x4667,INVALC,0x4668,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4669,0x466A,0x466B, - INVALC,0x466C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x466D,0x466E,INVALC,0x466F, - 0x4670,INVALC,INVALC,INVALC,0x4671,INVALC,INVALC,0x4672, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4673,INVALC,0x4674,INVALC,0x4675,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4676,INVALC,INVALC,INVALC,0x4677,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4678,INVALC,0x4679, - 0x467A,0x467B,0x467C,INVALC,0x467D,INVALC,0x467E,INVALC, - INVALC,INVALC,0x4721,INVALC,0x4722,INVALC,INVALC,INVALC, - 0x4723,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4724, - INVALC,0x4725,INVALC,0x4726,0x4727,INVALC,0x4728,INVALC, - INVALC,INVALC,0x4729,INVALC,0x472A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 110, Array index 0x2600 */ - INVALC,INVALC,INVALC,INVALC,0x472B,INVALC,INVALC,0x472C, - INVALC,INVALC,0x472D,INVALC,INVALC,INVALC,0x472E,0x472F, - INVALC,0x4730,INVALC,0x4731,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4732,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4733,0x4734, - 0x4735,INVALC,INVALC,INVALC,INVALC,INVALC,0x4737,0x4738, - INVALC,0x4739,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x473A,INVALC,INVALC,0x473B,INVALC,INVALC,0x473C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x473D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x473E,0x473F, - INVALC,0x4740,INVALC,INVALC,INVALC,0x4741,INVALC,0x4742, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4743, - 0x4744,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4745,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4746,INVALC,INVALC,INVALC,INVALC,0x4747, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4748,0x4749,INVALC,0x474A,INVALC,0x474B,0x474C, - 0x474D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x474E,INVALC,0x474F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4750,INVALC,INVALC,0x4751, - INVALC,0x4752,INVALC,INVALC,INVALC,0x4753,INVALC,0x4754, - INVALC,INVALC,INVALC,INVALC,0x4755,INVALC,INVALC,INVALC, - 0x4756,INVALC,0x4757,INVALC,INVALC,INVALC,0x4758,0x4759, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x475A,INVALC, - INVALC,INVALC,INVALC,0x475B,INVALC,0x475C,INVALC,0x475D, - 0x475E,INVALC,0x475F,INVALC,INVALC,0x4760,INVALC,INVALC, - INVALC,0x4761,INVALC,INVALC,INVALC,INVALC,INVALC,0x4762, - 0x4763,INVALC,INVALC,INVALC,0x4764,INVALC,0x4765,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4766,INVALC,INVALC,INVALC, - /* Block 111, Array index 0x2700 */ - 0x4767,INVALC,INVALC,INVALC,0x4768,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4769,INVALC, - INVALC,INVALC,0x476A,INVALC,INVALC,INVALC,INVALC,0x476B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x476C,INVALC,INVALC,INVALC,0x476D,INVALC, - INVALC,0x476E,INVALC,0x476F,0x4770,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4771,0x4772,INVALC,INVALC, - 0x4773,0x4774,INVALC,0x4775,INVALC,INVALC,INVALC,0x4776, - INVALC,0x4777,0x4778,0x4779,0x477A,INVALC,INVALC,0x477B, - INVALC,INVALC,INVALC,INVALC,0x477C,0x477D,0x477E,INVALC, - INVALC,INVALC,0x4821,0x4822,INVALC,INVALC,INVALC,INVALC, - 0x4823,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4824,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4825,INVALC,0x4826,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4827,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4828,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4829,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x482A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x482B, - INVALC,INVALC,INVALC,INVALC,INVALC,0x482C,0x482D,INVALC, - INVALC,0x482E,INVALC,0x482F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4830,INVALC,INVALC,INVALC,0x4831, - 0x4832,0x4833,INVALC,0x4834,INVALC,INVALC,INVALC,0x4835, - 0x4836,INVALC,0x4837,INVALC,INVALC,0x4838,0x4839,0x483A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x483B,INVALC,0x483C,0x483D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x483E,INVALC,0x483F,INVALC,0x4840,INVALC,INVALC, - /* Block 112, Array index 0x2800 */ - INVALC,INVALC,INVALC,INVALC,0x4841,INVALC,INVALC,INVALC, - 0x4842,INVALC,0x4843,INVALC,0x4844,0x4845,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4846,INVALC, - 0x4847,INVALC,0x4848,0x4849,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x484A,INVALC, - INVALC,0x484B,0x484C,INVALC,INVALC,0x4853,INVALC,0x484D, - 0x484E,INVALC,INVALC,0x484F,INVALC,INVALC,0x4850,INVALC, - INVALC,INVALC,INVALC,0x4851,0x4852,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4854, - INVALC,0x4855,0x4856,0x4857,INVALC,INVALC,INVALC,0x4858, - INVALC,0x4859,0x485A,INVALC,INVALC,0x485B,0x485C,INVALC, - INVALC,0x485D,0x485E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x485F,INVALC,INVALC,INVALC,0x4860,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4861,0x4862,INVALC, - INVALC,INVALC,INVALC,0x4863,INVALC,INVALC,INVALC,0x4864, - 0x4865,INVALC,INVALC,0x4866,0x4867,0x4868,INVALC,INVALC, - 0x4869,INVALC,0x486A,0x486B,0x486C,INVALC,0x486D,INVALC, - INVALC,INVALC,0x486E,INVALC,INVALC,INVALC,INVALC,0x486F, - 0x4870,INVALC,INVALC,INVALC,INVALC,0x4871,0x4872,0x4873, - 0x4874,INVALC,INVALC,INVALC,INVALC,INVALC,0x4875,0x4876, - 0x4877,INVALC,INVALC,INVALC,INVALC,0x4878,0x4879,INVALC, - INVALC,INVALC,INVALC,INVALC,0x487A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x487B,INVALC,0x487C, - 0x487D,INVALC,0x487E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4921,INVALC,INVALC,INVALC,0x4922,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4923,0x4924,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4925,INVALC,INVALC,INVALC,INVALC,0x4926,INVALC,INVALC, - INVALC,0x4927,INVALC,INVALC,0x4928,0x4929,INVALC,INVALC, - /* Block 113, Array index 0x2900 */ - 0x492A,INVALC,INVALC,INVALC,INVALC,0x492B,0x492C,0x492D, - INVALC,INVALC,INVALC,INVALC,INVALC,0x492E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x492F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4930,INVALC,INVALC,0x4931,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4932, - INVALC,INVALC,INVALC,INVALC,0x4933,INVALC,INVALC,0x4934, - INVALC,0x4935,INVALC,INVALC,0x4936,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4937,0x4938,INVALC,INVALC,INVALC, - 0x4939,0x493A,0x493B,0x493C,INVALC,INVALC,0x4941,INVALC, - INVALC,INVALC,INVALC,INVALC,0x493D,0x493E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x493F,0x4940,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4942,0x4943,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4944,INVALC,0x4945,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4946,0x4947,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4948,INVALC, - INVALC,0x4949,INVALC,INVALC,INVALC,0x494A,0x494B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x494C,0x494D,0x494E,0x494F, - 0x4950,INVALC,INVALC,0x4951,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4952,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4953,INVALC,INVALC,INVALC,INVALC, - 0x4954,0x4955,INVALC,INVALC,0x4956,INVALC,INVALC,0x4957, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4958,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4959,INVALC,0x495A,0x495B,0x495C,0x495D,INVALC, - 0x495E,INVALC,INVALC,INVALC,0x495F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4960,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4961,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 114, Array index 0x2A00 */ - INVALC,INVALC,INVALC,0x4962,0x4963,0x4964,0x4965,0x4966, - INVALC,INVALC,INVALC,0x4967,0x4968,INVALC,INVALC,0x4969, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x496A,INVALC, - 0x496B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x496C,INVALC,0x496D,INVALC,0x496E, - 0x496F,0x4970,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4971,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4972,INVALC,INVALC,INVALC,0x4973,0x4974,0x4975, - INVALC,INVALC,0x4976,0x4977,INVALC,INVALC,INVALC,INVALC, - 0x4978,INVALC,0x4979,INVALC,INVALC,INVALC,INVALC,0x497A, - INVALC,INVALC,0x497B,INVALC,0x497C,INVALC,0x497D,INVALC, - 0x497E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4A21,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A22,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4A23,INVALC,INVALC,INVALC,INVALC,0x4A24,INVALC,0x4A25, - INVALC,INVALC,INVALC,INVALC,0x4A26,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4A27,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4A28,0x4A29,INVALC,INVALC,INVALC,INVALC, - 0x4A2A,INVALC,0x4A2B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A2C, - 0x4A2D,INVALC,0x4A2E,0x4A2F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4A30,INVALC,INVALC,INVALC,INVALC,0x4A31, - 0x4A32,0x4A33,INVALC,INVALC,0x4A34,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4A35,0x4A36,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4A37,INVALC,INVALC,0x4A38,INVALC, - INVALC,0x4A39,0x4A3A,INVALC,0x4A3B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4A3C,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A3D,INVALC, - /* Block 115, Array index 0x2B00 */ - 0x4A3E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A3F, - 0x4A40,0x4A41,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4A42,INVALC,INVALC,INVALC,0x4A43, - INVALC,INVALC,0x4A44,INVALC,INVALC,0x4A45,INVALC,0x4A46, - INVALC,INVALC,INVALC,INVALC,0x4A47,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4A48,INVALC,INVALC,INVALC,0x4A49, - INVALC,INVALC,INVALC,INVALC,0x4A4A,INVALC,INVALC,INVALC, - 0x4A4B,0x4A4C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A4D,0x4A4E,0x4A4F,INVALC,0x4A50,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A51,0x4A52, - 0x4A53,INVALC,INVALC,0x4A54,INVALC,0x4A55,0x4A56,INVALC, - INVALC,INVALC,0x4A57,INVALC,0x4A58,INVALC,0x4A59,INVALC, - 0x4A5A,INVALC,INVALC,0x4A5B,INVALC,INVALC,INVALC,INVALC, - 0x4A5C,INVALC,INVALC,0x4A5D,INVALC,INVALC,0x4A5E,0x4A5F, - INVALC,0x4A60,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A61, - 0x4A62,INVALC,INVALC,0x4A63,0x4A64,INVALC,INVALC,0x4A65, - INVALC,INVALC,INVALC,INVALC,0x4A66,INVALC,INVALC,INVALC, - INVALC,0x4A67,INVALC,INVALC,INVALC,0x4A68,0x4A69,INVALC, - INVALC,INVALC,INVALC,0x4A6A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4A6B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4A6C,INVALC,INVALC,INVALC,INVALC,0x4A6D,0x4A6E,INVALC, - INVALC,0x4A6F,INVALC,INVALC,0x4A70,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A71,INVALC, - INVALC,0x4A72,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A73, - INVALC,0x4A74,INVALC,INVALC,0x4A75,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4A76,0x4A77,INVALC, - 0x4A78,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A79, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4A7A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4A7B,0x4A7C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4A7D,0x4A7E,INVALC,INVALC,0x4B21,INVALC, - /* Block 116, Array index 0x2C00 */ - INVALC,INVALC,0x4B22,INVALC,0x4B23,0x4B24,INVALC,0x4B25, - INVALC,INVALC,INVALC,0x4B26,INVALC,0x4B27,INVALC,INVALC, - INVALC,INVALC,0x4B28,0x4B29,INVALC,INVALC,INVALC,INVALC, - 0x4B2A,0x4B2B,INVALC,INVALC,INVALC,INVALC,0x4B2C,INVALC, - INVALC,INVALC,0x4B2D,INVALC,0x4B2E,INVALC,INVALC,0x4B2F, - 0x4B30,INVALC,INVALC,INVALC,0x4B31,INVALC,INVALC,INVALC, - INVALC,0x4B32,0x4B33,INVALC,INVALC,0x4B34,INVALC,INVALC, - INVALC,INVALC,0x4B35,0x4B36,INVALC,0x4B37,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4B38,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4B39,INVALC,INVALC, - 0x4B3A,INVALC,0x4B3B,INVALC,INVALC,INVALC,0x4B3C,INVALC, - 0x4B3D,INVALC,INVALC,INVALC,INVALC,0x4B3E,0x4B3F,0x4B40, - 0x4B41,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B42,0x4B43, - INVALC,0x4B44,INVALC,0x4B45,0x4B46,INVALC,0x4B47,0x4B48, - INVALC,0x4B49,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B4A, - INVALC,0x4B4B,INVALC,INVALC,0x4B4C,INVALC,INVALC,INVALC, - 0x4B4D,0x4B4E,INVALC,0x4B4F,INVALC,0x4B50,0x4B51,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B52,INVALC, - 0x4B53,INVALC,INVALC,0x4B54,INVALC,0x4B55,INVALC,0x4B56, - 0x4B57,INVALC,INVALC,INVALC,0x4B58,INVALC,0x4B59,0x4B5A, - 0x4B5B,INVALC,0x4B5C,INVALC,INVALC,0x4B5D,0x4B5E,INVALC, - INVALC,INVALC,0x4B5F,0x4B60,INVALC,0x4B61,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4B62,INVALC,0x4B63, - INVALC,0x4B64,INVALC,INVALC,0x4B65,0x4B66,INVALC,0x4B67, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4B68,0x4B69,INVALC, - INVALC,0x4B6A,INVALC,0x4B6B,0x4B6C,INVALC,INVALC,0x4B6D, - INVALC,INVALC,0x4B6E,0x4B6F,INVALC,INVALC,0x4B70,INVALC, - INVALC,0x4B71,INVALC,INVALC,INVALC,0x4B72,INVALC,INVALC, - INVALC,0x4B73,INVALC,0x4B74,INVALC,INVALC,0x4B75,0x4B76, - INVALC,0x4B77,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4B78,0x4B79,INVALC,0x4B7A, - INVALC,0x4B7B,0x4B7C,0x4B7D,INVALC,0x4B7E,INVALC,0x4C21, - /* Block 117, Array index 0x2D00 */ - 0x4C22,0x4C23,INVALC,INVALC,0x4C24,INVALC,INVALC,0x4C25, - INVALC,INVALC,0x4C26,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C27,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4C28,0x4C29,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4C2A,INVALC,0x4C2B,INVALC, - 0x4C2C,0x4C2D,0x4C2E,0x4C2F,0x4C30,0x4C31,0x4C32,0x4C33, - 0x4C34,0x4C35,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C36,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4C37,INVALC,INVALC,0x4C38,0x4C39,INVALC,0x4C3A,0x4C3B, - INVALC,INVALC,INVALC,0x4C3C,INVALC,0x4C3D,INVALC,INVALC, - INVALC,0x4C3E,0x4C3F,INVALC,INVALC,INVALC,INVALC,0x4C40, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4C41,INVALC,INVALC, - INVALC,INVALC,0x4C42,INVALC,INVALC,INVALC,0x4C43,0x4C44, - 0x4C45,INVALC,INVALC,0x4C46,INVALC,0x4C47,0x4C48,INVALC, - INVALC,0x4C49,0x4C4A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4C4B,0x4C4C,INVALC,INVALC,INVALC,0x4C4D,0x4C4E,0x4C4F, - INVALC,0x4C50,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C51, - 0x4C52,0x4C53,0x4C54,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4C55,0x4C56,0x4C57,INVALC,0x4C58,INVALC,INVALC,0x4C59, - 0x4C5A,0x4C5B,INVALC,0x4C5C,INVALC,INVALC,0x4C5D,INVALC, - 0x4C5E,0x4C5F,0x4C60,0x4C61,INVALC,INVALC,0x4C62,0x4C63, - INVALC,0x4C64,0x4C65,INVALC,INVALC,0x4C66,INVALC,INVALC, - INVALC,0x4C67,INVALC,0x4C68,INVALC,INVALC,INVALC,0x4C69, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4C6A,0x4C6B,INVALC,INVALC,0x4C6C,INVALC,INVALC,INVALC, - 0x4C6D,INVALC,INVALC,0x4C6E,INVALC,INVALC,INVALC,INVALC, - 0x4C6F,INVALC,0x4C70,0x4C71,INVALC,INVALC,0x4C72,0x4C73, - INVALC,INVALC,INVALC,INVALC,0x4C74,INVALC,INVALC,INVALC, - 0x4C75,INVALC,0x4C76,0x4C77,INVALC,INVALC,INVALC,0x4C78, - INVALC,INVALC,INVALC,INVALC,0x4C79,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4C7A,0x4C7B,0x4C7C,INVALC,INVALC,0x4C7D, - /* Block 118, Array index 0x2E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C7E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D21,INVALC,INVALC,INVALC,0x4D22,0x4D23, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4D24,0x4D25,INVALC,INVALC,0x4D26,INVALC,INVALC,0x4D27, - INVALC,0x4D28,0x4D29,INVALC,INVALC,INVALC,INVALC,0x4D2A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D2B,INVALC, - INVALC,0x4D2C,INVALC,INVALC,INVALC,0x4D2D,0x4D2E,0x4D2F, - 0x4D30,INVALC,INVALC,0x4D31,INVALC,INVALC,INVALC,0x4D32, - 0x4D33,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D34,INVALC, - 0x4D35,INVALC,0x4D36,INVALC,INVALC,INVALC,INVALC,0x4D37, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D38,0x4D39, - INVALC,0x4D3A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D3B, - INVALC,0x4D3C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D3D,0x4D3E,0x4D3F,0x4D40,0x4D41,0x4D42,INVALC, - INVALC,0x4D43,INVALC,INVALC,INVALC,0x4D44,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4D45,INVALC,0x4D46,0x4D47,INVALC,0x4D48,INVALC,INVALC, - INVALC,0x4D49,INVALC,INVALC,0x4D4A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D4B,INVALC,0x4D4C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4D4D,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4D4E,INVALC,INVALC,INVALC,INVALC,0x4D4F, - 0x4D50,0x4D51,INVALC,INVALC,0x4D52,INVALC,0x4D53,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4D54,INVALC,0x4D55,0x4D56, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D57, - INVALC,INVALC,INVALC,INVALC,0x4D58,INVALC,INVALC,0x4D59, - 0x4D5A,0x4D5B,INVALC,INVALC,0x4D5C,INVALC,INVALC,0x4D5D, - INVALC,INVALC,INVALC,INVALC,0x4D5E,INVALC,0x4D5F,0x4D60, - INVALC,0x4D61,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D62,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 119, Array index 0x2F00 */ - 0x4D63,INVALC,0x4D64,0x4D65,0x4D66,INVALC,INVALC,0x4D67, - 0x4D68,INVALC,0x4D69,INVALC,0x4D6A,INVALC,INVALC,0x4D6B, - INVALC,INVALC,0x4D6C,0x4D6D,INVALC,0x4D6E,0x4D6F,INVALC, - INVALC,0x4D70,INVALC,0x4D71,0x4D72,0x4D73,0x4D74,INVALC, - INVALC,INVALC,INVALC,0x4D75,INVALC,0x4D76,0x4D77,INVALC, - INVALC,0x4D78,INVALC,INVALC,INVALC,0x4D79,INVALC,INVALC, - INVALC,INVALC,0x4D7A,0x4D7B,INVALC,0x4D7C,INVALC,INVALC, - 0x4D7D,0x4D7E,0x4E21,INVALC,0x4E22,INVALC,INVALC,INVALC, - 0x4E24,0x4E25,INVALC,0x4E26,0x4E27,0x4E28,INVALC,INVALC, - INVALC,0x4E29,0x4E23,0x4E2A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E2B,INVALC,INVALC, - INVALC,0x4E2C,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E2D, - INVALC,INVALC,INVALC,INVALC,0x4E2E,0x4E2F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E30,0x4E31,0x4E32, - INVALC,0x4E33,INVALC,INVALC,0x4E34,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E35,INVALC,INVALC,INVALC,0x4E36,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4E37,0x4E38,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E39,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4E3A,0x4E3B,0x4E3C,INVALC,0x4E3D, - 0x4E3E,INVALC,0x4E3F,0x4E40,0x4E41,0x4E42,0x4E43,0x4E44, - 0x4E45,INVALC,0x4E46,INVALC,INVALC,0x4E47,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E48,INVALC,INVALC, - INVALC,0x4E49,INVALC,INVALC,INVALC,0x4E4A,INVALC,INVALC, - INVALC,0x4E4B,INVALC,0x4E4C,0x4E4D,INVALC,0x4E4E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4E4F,INVALC,INVALC,INVALC, - INVALC,0x4E50,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4E51,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E52,INVALC, - 0x4E53,INVALC,INVALC,INVALC,0x4E54,INVALC,INVALC,INVALC, - 0x4E55,0x4E56,INVALC,INVALC,INVALC,INVALC,0x4E57,INVALC, - INVALC,0x4E58,INVALC,INVALC,0x4E59,INVALC,INVALC,INVALC, - /* Block 120, Array index 0x3000 */ - 0x4E5A,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E5B,INVALC, - INVALC,INVALC,0x4E5C,INVALC,INVALC,INVALC,0x4E5D,INVALC, - INVALC,INVALC,0x4E5E,INVALC,0x4E5F,0x4E60,INVALC,0x4E61, - INVALC,0x4E62,0x4E63,INVALC,0x4E64,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4E65,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4E66,INVALC,INVALC,INVALC,INVALC,0x4E67,0x4E68,0x4E69, - INVALC,INVALC,INVALC,INVALC,0x4E6A,0x4E6B,0x4E6C,INVALC, - INVALC,0x4E6D,INVALC,INVALC,INVALC,0x4E6E,0x4E6F,INVALC, - INVALC,INVALC,0x4E70,INVALC,INVALC,0x4E71,0x4E72,INVALC, - INVALC,INVALC,0x4E73,INVALC,INVALC,0x4E74,0x4E75,0x4E76, - INVALC,INVALC,0x4E77,INVALC,INVALC,INVALC,0x4E78,0x4E79, - INVALC,INVALC,INVALC,INVALC,0x4E7A,INVALC,0x4E7B,0x4E7C, - 0x4E7D,INVALC,0x4E7E,INVALC,0x4F21,INVALC,INVALC,0x4F22, - INVALC,INVALC,0x4F23,INVALC,0x4F24,INVALC,INVALC,INVALC, - 0x4F25,INVALC,0x4F26,0x4F27,0x4F28,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F29,INVALC,INVALC,0x4F2A,INVALC,INVALC, - 0x4F2B,INVALC,INVALC,INVALC,0x4F2C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4F2D,0x4F2E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4F2F,0x4F30,0x4F31,INVALC, - INVALC,INVALC,0x4F32,INVALC,INVALC,INVALC,INVALC,0x4F33, - INVALC,INVALC,0x4F34,INVALC,INVALC,INVALC,INVALC,0x4F35, - INVALC,INVALC,0x4F36,INVALC,INVALC,INVALC,0x4F37,0x4F38, - INVALC,0x4F39,INVALC,INVALC,INVALC,0x4F3A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F3B,INVALC, - INVALC,INVALC,INVALC,0x4F3C,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F3D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F3E,0x4F3F,INVALC,INVALC,0x4F40,INVALC,INVALC, - INVALC,0x4F41,INVALC,INVALC,INVALC,INVALC,0x4F42,0x4F43, - 0x4F44,INVALC,INVALC,INVALC,0x4F45,INVALC,0x4F46,INVALC, - INVALC,INVALC,0x4F47,INVALC,0x4F48,INVALC,INVALC,INVALC, - 0x4F49,0x4F4A,INVALC,INVALC,0x4F4B,INVALC,INVALC,INVALC, - 0x4F4C,INVALC,INVALC,0x4F4D,INVALC,INVALC,INVALC,INVALC, - /* Block 121, Array index 0x3100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x4F4E,0x4F4F,INVALC, - INVALC,0x4F50,INVALC,INVALC,INVALC,0x4F51,0x4F52,INVALC, - INVALC,0x4F53,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4F54,INVALC,INVALC, - INVALC,0x4F55,0x4F56,0x4F57,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4F58,0x4F59,INVALC, - 0x4F5A,INVALC,INVALC,INVALC,INVALC,0x4F5B,INVALC,0x4F5C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4F5D,0x4F5E,INVALC,INVALC,0x4F5F, - 0x4F60,INVALC,INVALC,INVALC,0x4F61,INVALC,0x4F62,INVALC, - INVALC,INVALC,0x4F63,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4F64,INVALC,0x4F65,INVALC, - 0x4F66,0x4F67,INVALC,0x4F68,0x4F69,INVALC,INVALC,INVALC, - 0x4F6A,INVALC,0x4F6B,INVALC,INVALC,INVALC,0x4F6C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F6D,INVALC,INVALC,INVALC,0x4F6E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F6F,INVALC,INVALC,INVALC,INVALC,0x4F70, - INVALC,INVALC,INVALC,INVALC,0x4F71,INVALC,INVALC,INVALC, - 0x4F72,INVALC,INVALC,INVALC,INVALC,0x4F74,0x4F75,0x4F76, - INVALC,0x4F73,INVALC,INVALC,0x4F77,INVALC,INVALC,INVALC, - 0x4F78,INVALC,INVALC,INVALC,0x4F79,0x4F7A,INVALC,INVALC, - 0x4F7B,0x4F7C,0x4F7D,0x4F7E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5021,INVALC,0x5022,INVALC,0x5023, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5024, - 0x5025,0x5026,INVALC,INVALC,0x5027,INVALC,0x5028,INVALC, - INVALC,INVALC,0x5029,0x502A,INVALC,0x502B,0x502C,INVALC, - INVALC,INVALC,INVALC,0x502E,INVALC,INVALC,INVALC,0x502F, - 0x5030,0x5031,INVALC,INVALC,0x502D,INVALC,0x5032,INVALC, - INVALC,INVALC,0x5033,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5034,0x5035,INVALC,INVALC,0x5037,0x5038, - INVALC,INVALC,0x5039,0x503A,INVALC,INVALC,INVALC,0x503B, - /* Block 122, Array index 0x3200 */ - 0x5036,INVALC,INVALC,INVALC,INVALC,INVALC,0x503C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x503D,INVALC,INVALC,INVALC, - 0x503E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x503F,INVALC,0x5040,INVALC,0x5041,0x5042, - 0x5043,INVALC,INVALC,INVALC,INVALC,0x5044,INVALC,0x5045, - INVALC,0x5046,INVALC,INVALC,INVALC,0x5047,INVALC,INVALC, - INVALC,0x5048,INVALC,INVALC,0x5049,0x504A,INVALC,INVALC, - INVALC,INVALC,INVALC,0x504B,INVALC,0x504C,INVALC,0x504D, - INVALC,INVALC,INVALC,INVALC,0x504E,0x504F,0x5050,INVALC, - INVALC,INVALC,0x5051,0x5052,INVALC,INVALC,INVALC,0x5053, - INVALC,0x5054,INVALC,INVALC,0x5055,INVALC,INVALC,INVALC, - 0x5056,INVALC,INVALC,0x5057,0x5058,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5059, - INVALC,0x505A,INVALC,0x505B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x505C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x505D,INVALC,0x505E,0x505F,INVALC,0x5060,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5061,0x5062,INVALC,INVALC,INVALC, - INVALC,0x5063,INVALC,0x5064,0x5065,0x5066,0x5067,INVALC, - 0x5068,INVALC,INVALC,0x5069,0x506A,INVALC,INVALC,INVALC, - INVALC,0x506B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x506C,0x506D,INVALC,0x506E,INVALC,INVALC,INVALC,0x506F, - INVALC,0x5070,INVALC,INVALC,0x5071,INVALC,INVALC,INVALC, - 0x5072,INVALC,INVALC,0x5073,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5074,INVALC,0x5075,INVALC,INVALC,0x5076, - 0x5077,INVALC,0x5078,INVALC,INVALC,INVALC,INVALC,0x5079, - INVALC,INVALC,INVALC,INVALC,0x507A,INVALC,0x507B,INVALC, - INVALC,INVALC,0x507C,INVALC,INVALC,0x507D,0x507E,INVALC, - 0x5121,INVALC,0x5122,INVALC,INVALC,0x5123,INVALC,INVALC, - INVALC,INVALC,0x5124,0x5125,INVALC,0x5126,INVALC,INVALC, - INVALC,0x5127,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5128,INVALC,INVALC,INVALC,0x5129,INVALC,INVALC,INVALC, - /* Block 123, Array index 0x3300 */ - INVALC,INVALC,0x512A,0x512B,INVALC,INVALC,INVALC,0x512C, - INVALC,0x512D,0x512E,INVALC,0x512F,INVALC,INVALC,INVALC, - INVALC,0x5130,INVALC,INVALC,INVALC,0x5131,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5132,INVALC,INVALC,0x5133,INVALC, - INVALC,0x5134,INVALC,INVALC,INVALC,INVALC,INVALC,0x5135, - INVALC,INVALC,INVALC,0x5136,INVALC,0x5137,INVALC,0x5138, - 0x5139,INVALC,INVALC,INVALC,0x513A,0x513B,INVALC,INVALC, - 0x513C,0x513D,0x513E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x513F,0x5140,INVALC,0x5141, - 0x5142,INVALC,INVALC,INVALC,0x5143,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5144,0x5145,INVALC, - INVALC,0x5146,INVALC,INVALC,0x5147,0x5148,INVALC,0x5149, - 0x514A,INVALC,INVALC,INVALC,INVALC,0x514B,INVALC,0x514C, - INVALC,INVALC,0x514D,INVALC,INVALC,0x514E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x514F,INVALC,INVALC, - 0x5150,INVALC,INVALC,INVALC,INVALC,INVALC,0x5151,INVALC, - 0x5152,INVALC,0x5153,INVALC,INVALC,0x5154,0x5155,INVALC, - INVALC,INVALC,0x5156,0x5157,INVALC,INVALC,INVALC,INVALC, - 0x5158,0x5159,INVALC,INVALC,0x515A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x515B,INVALC, - 0x515C,INVALC,INVALC,0x515D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x515E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x515F,INVALC,0x5160,INVALC,INVALC, - INVALC,0x5161,INVALC,0x5162,0x5163,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5164,INVALC, - INVALC,0x5165,INVALC,INVALC,0x5166,INVALC,0x5167,INVALC, - INVALC,0x5168,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5169,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x516A,0x516B,INVALC,0x516C,0x516D,INVALC,INVALC,INVALC, - INVALC,0x516E,INVALC,INVALC,0x516F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5170,INVALC,0x5171,0x5172,INVALC, - /* Block 124, Array index 0x3400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5173, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5174,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5175, - INVALC,INVALC,INVALC,0x5176,INVALC,INVALC,INVALC,0x5177, - INVALC,0x5178,0x5179,0x517A,INVALC,0x517B,0x517C,0x517D, - 0x517E,0x5221,INVALC,INVALC,0x5222,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5223,INVALC,0x5224, - 0x5225,0x5226,INVALC,INVALC,INVALC,INVALC,INVALC,0x5227, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5228,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5229,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x522A,INVALC,INVALC,INVALC,0x522B,INVALC,0x522C,INVALC, - INVALC,0x522D,0x522E,INVALC,INVALC,0x522F,INVALC,0x5230, - INVALC,INVALC,0x5231,0x5232,INVALC,INVALC,INVALC,0x5233, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5234,INVALC,INVALC,INVALC, - INVALC,0x5235,INVALC,INVALC,INVALC,INVALC,0x5236,INVALC, - 0x5237,0x5238,INVALC,INVALC,INVALC,INVALC,0x5239,INVALC, - INVALC,INVALC,INVALC,0x523A,INVALC,INVALC,0x523B,INVALC, - 0x523C,INVALC,INVALC,INVALC,INVALC,0x523D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x523E,INVALC,INVALC,0x523F, - 0x5240,INVALC,0x5241,INVALC,INVALC,0x5242,0x5243,INVALC, - INVALC,INVALC,0x5244,0x5245,0x5246,0x5247,INVALC,INVALC, - INVALC,INVALC,0x5248,INVALC,INVALC,0x5249,INVALC,INVALC, - 0x524A,INVALC,0x524B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x524C,INVALC,0x524D,0x524E, - INVALC,0x524F,0x5250,0x5251,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5252,INVALC,0x5253,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5254,INVALC,0x5255,0x5256,INVALC,INVALC, - 0x5257,0x5258,0x5259,INVALC,0x525A,INVALC,0x525B,INVALC, - /* Block 125, Array index 0x3500 */ - INVALC,0x525C,0x525D,0x525E,0x525F,INVALC,0x5260,INVALC, - INVALC,0x5261,INVALC,0x5262,0x5263,INVALC,0x5264,0x5265, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5266,INVALC,0x5267,INVALC,INVALC,INVALC,INVALC, - 0x5268,INVALC,INVALC,INVALC,INVALC,0x5269,0x526A,INVALC, - 0x526B,INVALC,INVALC,INVALC,0x526C,INVALC,INVALC,INVALC, - INVALC,0x526D,INVALC,0x526E,0x526F,INVALC,0x5270,INVALC, - INVALC,0x5271,0x5272,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5273,INVALC, - INVALC,INVALC,0x5274,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5276,0x5277,0x5278,INVALC,0x5275,INVALC,INVALC, - INVALC,0x5279,0x527A,0x527B,0x527C,0x527D,0x527E,INVALC, - INVALC,0x5321,INVALC,0x5322,INVALC,INVALC,INVALC,0x5323, - INVALC,0x5324,INVALC,INVALC,INVALC,0x5325,0x5326,INVALC, - 0x5327,INVALC,0x5328,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5329,INVALC,INVALC,0x532A,0x532B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x532C,0x532D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x532E, - INVALC,INVALC,INVALC,INVALC,0x532F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5330,INVALC, - 0x5331,INVALC,INVALC,INVALC,INVALC,INVALC,0x5332,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5333,INVALC,INVALC,INVALC,INVALC,INVALC,0x5334,0x5335, - INVALC,INVALC,0x5336,0x5337,0x5338,INVALC,INVALC,0x5339, - INVALC,INVALC,INVALC,INVALC,0x533A,INVALC,INVALC,0x533B, - 0x533C,0x533D,INVALC,INVALC,INVALC,0x533E,INVALC,0x533F, - INVALC,INVALC,INVALC,0x5340,0x5341,0x5342,INVALC,0x5343, - INVALC,0x5344,0x5345,INVALC,INVALC,0x5346,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5347,INVALC, - INVALC,0x5348,INVALC,0x5349,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x534A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 126, Array index 0x3600 */ - INVALC,INVALC,INVALC,0x534B,INVALC,INVALC,INVALC,0x534C, - 0x534D,0x534E,INVALC,INVALC,INVALC,INVALC,INVALC,0x534F, - INVALC,0x5350,0x5351,0x5352,INVALC,INVALC,0x5353,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5354,0x5355,INVALC, - INVALC,INVALC,INVALC,0x5356,INVALC,INVALC,0x5357,INVALC, - INVALC,INVALC,0x5358,INVALC,INVALC,0x5359,INVALC,INVALC, - INVALC,0x535A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x535B,0x535C,0x535D,INVALC, - 0x535E,0x535F,INVALC,INVALC,INVALC,INVALC,INVALC,0x5360, - 0x5361,INVALC,INVALC,INVALC,INVALC,0x5362,INVALC,INVALC, - INVALC,0x5363,INVALC,0x5364,INVALC,INVALC,INVALC,0x5365, - INVALC,0x5366,0x5367,INVALC,0x5368,0x5369,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x536A,INVALC,0x536B, - INVALC,INVALC,0x536C,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x536D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x536E,INVALC,0x536F,0x5370,INVALC,INVALC,INVALC,0x5371, - INVALC,0x5372,0x5373,0x5374,INVALC,0x5375,0x5376,INVALC, - 0x5377,INVALC,INVALC,0x5378,0x5379,0x537A,INVALC,INVALC, - INVALC,0x537B,INVALC,INVALC,INVALC,INVALC,0x537C,0x537D, - INVALC,INVALC,INVALC,INVALC,INVALC,0x537E,0x5421,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5422,0x5423, - INVALC,INVALC,0x5424,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5425,INVALC,INVALC,0x5426,0x5427, - INVALC,0x5428,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5429,0x542A,0x542B,0x542C,0x542D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x542E,0x542F,0x5430,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5431, - INVALC,0x5432,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5434,INVALC,INVALC,0x5435,0x5436,INVALC, - INVALC,INVALC,0x5437,0x5438,INVALC,0x5439,INVALC,INVALC, - INVALC,0x543A,INVALC,INVALC,INVALC,0x543B,0x543C,INVALC, - INVALC,0x543D,0x543E,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 127, Array index 0x3700 */ - 0x5433,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x543F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5440,0x5441,INVALC,INVALC,INVALC,0x5442,INVALC,0x5443, - INVALC,INVALC,INVALC,INVALC,0x5444,0x5445,INVALC,INVALC, - 0x5446,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5447, - 0x5448,INVALC,INVALC,INVALC,0x5449,0x544A,INVALC,0x544B, - INVALC,INVALC,INVALC,0x544C,INVALC,INVALC,0x544D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x544E, - INVALC,INVALC,INVALC,INVALC,0x544F,0x5450,INVALC,0x5451, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5452,INVALC, - 0x5453,INVALC,0x5454,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5455,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5456, - INVALC,0x5457,0x5458,INVALC,INVALC,0x5459,INVALC,INVALC, - INVALC,INVALC,INVALC,0x545A,INVALC,INVALC,0x545B,0x545C, - INVALC,INVALC,INVALC,0x545D,INVALC,INVALC,INVALC,INVALC, - 0x545E,INVALC,INVALC,INVALC,INVALC,INVALC,0x545F,INVALC, - INVALC,0x5460,INVALC,INVALC,INVALC,INVALC,0x5461,0x5462, - INVALC,INVALC,0x5463,INVALC,INVALC,0x5464,INVALC,INVALC, - INVALC,0x5465,INVALC,INVALC,INVALC,0x5466,INVALC,INVALC, - 0x5467,INVALC,0x5468,INVALC,INVALC,0x5469,0x546A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 128, Array index 0x3800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x546C,0x546B,0x546D,0x546E,0x546F, - INVALC,INVALC,INVALC,0x5470,0x5471,INVALC,INVALC,0x5472, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5473, - INVALC,INVALC,0x5474,0x5475,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5476,0x5477,0x5478,INVALC,INVALC, - INVALC,0x5479,INVALC,0x547A,0x547B,0x547C,0x547D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x547E,INVALC,INVALC, - INVALC,0x5521,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5522,0x5523,0x5524, - 0x5525,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5526,INVALC,0x5527,INVALC,0x5528, - 0x5529,0x552A,INVALC,INVALC,INVALC,INVALC,0x552B,0x552C, - INVALC,INVALC,INVALC,INVALC,0x552D,INVALC,INVALC,INVALC, - INVALC,0x552E,0x552F,INVALC,INVALC,INVALC,0x5530,INVALC, - INVALC,INVALC,0x5531,INVALC,INVALC,0x5532,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5533,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5534,INVALC,INVALC,0x5535, - 0x5536,INVALC,INVALC,0x5537,INVALC,INVALC,INVALC,INVALC, - 0x5538,INVALC,INVALC,INVALC,INVALC,INVALC,0x5539,0x553A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x553B,INVALC,INVALC,INVALC,0x553C, - INVALC,INVALC,INVALC,0x553D,INVALC,0x553E,INVALC,INVALC, - 0x553F,INVALC,INVALC,INVALC,0x5540,INVALC,0x5541,0x5542, - INVALC,INVALC,0x5543,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5544,INVALC,INVALC,0x5545,0x5546,0x5547, - /* Block 129, Array index 0x3900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5548, - 0x5549,INVALC,0x554A,INVALC,INVALC,0x554B,0x554C,0x554D, - INVALC,0x554E,INVALC,0x554F,0x5550,INVALC,0x5551,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5552,0x5553,0x5554, - 0x5555,INVALC,INVALC,INVALC,0x5556,INVALC,0x5557,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5558,INVALC,0x5559,INVALC, - 0x555A,INVALC,INVALC,INVALC,0x555B,0x555C,INVALC,0x555D, - INVALC,0x555E,0x555F,INVALC,0x5560,INVALC,0x5561,INVALC, - 0x5562,INVALC,INVALC,INVALC,0x5563,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5564,INVALC,INVALC,INVALC,0x5565,INVALC,0x5566,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5567,INVALC,INVALC, - INVALC,0x5568,INVALC,INVALC,INVALC,0x5569,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x556A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x556B,INVALC,INVALC,INVALC,INVALC,INVALC,0x556C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x556D,INVALC,0x556E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x556F,0x5570, - INVALC,INVALC,INVALC,0x5571,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5572,0x5573,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5574,INVALC,INVALC,INVALC,INVALC,0x5575,INVALC,0x5576, - INVALC,INVALC,0x5577,INVALC,0x5578,0x5579,INVALC,0x557A, - 0x557B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x557C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x557D,0x557E,INVALC, - 0x5621,INVALC,0x5622,0x5623,INVALC,INVALC,0x5624,INVALC, - INVALC,0x5625,0x5626,INVALC,INVALC,INVALC,0x5627,INVALC, - /* Block 130, Array index 0x3A00 */ - INVALC,INVALC,INVALC,0x5628,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5629,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x562A,0x562B, - 0x562C,INVALC,INVALC,INVALC,0x562D,INVALC,0x562E,INVALC, - 0x562F,INVALC,INVALC,INVALC,0x5630,INVALC,INVALC,0x5631, - INVALC,INVALC,INVALC,INVALC,0x5632,INVALC,INVALC,INVALC, - 0x5633,INVALC,INVALC,INVALC,INVALC,0x5634,INVALC,INVALC, - INVALC,INVALC,0x5635,INVALC,0x5636,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5637,INVALC,0x5638, - INVALC,INVALC,0x5639,INVALC,0x563A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x563B,INVALC,INVALC,INVALC,INVALC,0x563C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x563D,0x563E,INVALC,INVALC,INVALC,INVALC,INVALC,0x563F, - 0x5640,0x5641,INVALC,INVALC,INVALC,0x5642,INVALC,0x5643, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5644, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5645,INVALC,INVALC,0x5647,0x5648,0x5649,INVALC, - INVALC,INVALC,INVALC,0x564A,INVALC,INVALC,0x564B,INVALC, - 0x5646,INVALC,INVALC,INVALC,INVALC,INVALC,0x564C,INVALC, - 0x564D,INVALC,INVALC,0x564E,INVALC,INVALC,0x564F,INVALC, - INVALC,INVALC,0x5650,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5651,INVALC, - INVALC,INVALC,0x5652,INVALC,0x5653,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5654,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5656,INVALC,0x5657,INVALC,INVALC, - INVALC,INVALC,0x5658,0x5655,INVALC,INVALC,0x5659,0x565A, - INVALC,INVALC,INVALC,INVALC,INVALC,0x565B,INVALC,0x565C, - INVALC,INVALC,INVALC,0x565D,INVALC,0x565E,0x565F,INVALC, - INVALC,0x5660,INVALC,INVALC,0x5661,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5662,0x5663,INVALC,INVALC,INVALC, - 0x5664,0x5665,0x5666,INVALC,INVALC,0x5667,0x5668,INVALC, - 0x5669,0x566A,INVALC,INVALC,INVALC,0x566B,INVALC,0x566C, - /* Block 131, Array index 0x3B00 */ - 0x566D,INVALC,INVALC,0x566E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x566F, - INVALC,INVALC,INVALC,0x5670,0x5671,INVALC,INVALC,INVALC, - INVALC,0x5672,0x5673,INVALC,INVALC,0x5674,INVALC,INVALC, - INVALC,0x5675,0x5676,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5677,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5678,INVALC,0x5679,INVALC,INVALC,INVALC, - INVALC,INVALC,0x567A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x567B,0x567C,0x567D,0x567E,INVALC, - INVALC,INVALC,INVALC,0x5721,INVALC,INVALC,0x5722,0x5723, - INVALC,0x5724,INVALC,INVALC,INVALC,INVALC,0x5725,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5726,INVALC,INVALC,INVALC, - 0x5727,INVALC,INVALC,0x5728,INVALC,INVALC,INVALC,0x5729, - INVALC,INVALC,INVALC,INVALC,INVALC,0x572A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x572B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x572C,INVALC,0x572D,INVALC,0x572E, - 0x572F,0x5730,INVALC,0x5731,0x5732,INVALC,INVALC,0x5733, - INVALC,0x5734,0x5735,INVALC,INVALC,INVALC,0x5736,INVALC, - INVALC,0x5737,INVALC,INVALC,0x5738,INVALC,0x5739,INVALC, - 0x573A,INVALC,0x573B,0x573C,INVALC,INVALC,INVALC,INVALC, - 0x573D,0x573E,INVALC,0x573F,0x5740,INVALC,INVALC,0x5741, - 0x5742,0x5743,0x5744,INVALC,INVALC,INVALC,0x5745,INVALC, - 0x5746,INVALC,0x5747,INVALC,0x5748,INVALC,INVALC,0x5749, - INVALC,INVALC,0x574A,INVALC,0x574B,INVALC,0x574C,0x574D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x574E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x574F,INVALC,INVALC,INVALC,INVALC,0x5750,INVALC,INVALC, - INVALC,INVALC,0x5751,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5752,INVALC,0x5753,INVALC,0x5754,INVALC,INVALC,INVALC, - 0x5755,INVALC,0x5756,INVALC,INVALC,0x5757,INVALC,0x5758, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5759,0x575A, - INVALC,INVALC,INVALC,INVALC,INVALC,0x575B,0x575C,INVALC, - /* Block 132, Array index 0x3C00 */ - 0x575D,0x575E,INVALC,INVALC,INVALC,INVALC,INVALC,0x575F, - 0x5760,INVALC,0x5761,0x5762,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5764,INVALC,0x5765,0x5766,0x5767, - INVALC,0x5768,0x5769,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x576A,0x576B,0x576C,INVALC, - 0x576D,INVALC,INVALC,0x576E,INVALC,INVALC,INVALC,0x576F, - INVALC,INVALC,0x5770,INVALC,0x5771,0x5772,INVALC,INVALC, - INVALC,INVALC,0x5773,0x5774,0x5775,INVALC,INVALC,0x5776, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5777,0x5778,INVALC, - INVALC,0x5779,INVALC,0x583E,0x5763,0x577A,0x577B,0x577C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x577D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x577E,INVALC,INVALC,INVALC,INVALC,0x5821,INVALC,0x5822, - 0x5823,INVALC,0x5824,INVALC,0x5825,INVALC,0x5826,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5827,INVALC,INVALC, - INVALC,INVALC,0x5828,INVALC,0x5829,0x582A,INVALC,INVALC, - 0x582B,0x582C,INVALC,0x582D,0x582E,0x582F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5830,0x5831, - INVALC,0x5832,INVALC,INVALC,0x5833,0x584C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5834,0x5835, - 0x5836,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5837, - INVALC,0x5838,INVALC,INVALC,INVALC,INVALC,INVALC,0x5839, - 0x583A,0x583B,INVALC,INVALC,0x583C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x583D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x583F,INVALC,0x5840,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5841,INVALC, - 0x5842,0x5843,INVALC,INVALC,0x5844,INVALC,INVALC,INVALC, - /* Block 133, Array index 0x3D00 */ - INVALC,0x5845,INVALC,INVALC,INVALC,INVALC,0x5846,INVALC, - INVALC,INVALC,0x5847,INVALC,INVALC,INVALC,INVALC,0x5848, - INVALC,0x5849,INVALC,INVALC,INVALC,0x584A,INVALC,INVALC, - INVALC,0x584B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x584D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x584E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x584F,INVALC,0x5850, - 0x5851,INVALC,0x5852,INVALC,INVALC,0x5853,INVALC,0x5854, - INVALC,0x5855,0x5856,INVALC,INVALC,INVALC,0x5857,INVALC, - 0x5858,0x5859,0x585A,INVALC,0x585B,INVALC,INVALC,INVALC, - 0x585C,INVALC,INVALC,INVALC,0x585D,0x585E,INVALC,0x585F, - INVALC,INVALC,0x5860,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5861,INVALC,INVALC,0x5862,0x5863,INVALC,0x5864,INVALC, - 0x5865,INVALC,INVALC,INVALC,0x5866,0x5867,INVALC,INVALC, - INVALC,0x5868,INVALC,INVALC,INVALC,0x5869,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x586A,0x586B,INVALC,0x586C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x586D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x586E,INVALC, - 0x586F,0x5870,0x5871,INVALC,INVALC,INVALC,INVALC,0x5872, - INVALC,0x5873,INVALC,INVALC,0x5874,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5875,INVALC,INVALC,0x5876,0x5877,INVALC, - 0x5878,INVALC,0x5879,INVALC,INVALC,INVALC,INVALC,0x587A, - 0x587B,INVALC,INVALC,INVALC,0x587C,INVALC,INVALC,0x587D, - INVALC,INVALC,INVALC,0x587E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5921,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5922, - INVALC,INVALC,0x5923,INVALC,INVALC,INVALC,INVALC,0x5924, - 0x5925,0x5926,0x5927,INVALC,INVALC,INVALC,INVALC,0x5928, - INVALC,INVALC,0x592A,0x592B,INVALC,0x592C,INVALC,INVALC, - /* Block 134, Array index 0x3E00 */ - INVALC,INVALC,0x592D,0x592E,INVALC,INVALC,INVALC,0x592F, - INVALC,INVALC,INVALC,INVALC,0x5930,INVALC,0x5931,INVALC, - 0x5932,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5933,INVALC,0x5934,INVALC, - INVALC,INVALC,0x5935,0x5936,0x5937,0x5938,INVALC,0x5939, - INVALC,INVALC,0x593A,0x593B,INVALC,INVALC,INVALC,0x593C, - INVALC,INVALC,0x5929,0x593D,0x593E,INVALC,0x593F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5940, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5941,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5942, - 0x5943,0x5944,0x5945,0x5946,INVALC,INVALC,0x5947,INVALC, - INVALC,0x5948,INVALC,INVALC,0x5949,0x594A,0x594B,0x594C, - 0x594D,0x594E,0x594F,INVALC,0x5950,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5951,INVALC,INVALC,INVALC,0x5952, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5953,0x5954,0x5955,INVALC,0x5956,INVALC,0x5957, - INVALC,0x5958,INVALC,INVALC,INVALC,0x5959,0x595A,INVALC, - INVALC,0x595B,INVALC,0x595C,0x595D,INVALC,INVALC,0x595E, - INVALC,INVALC,INVALC,0x595F,INVALC,INVALC,INVALC,INVALC, - 0x5960,INVALC,INVALC,INVALC,INVALC,0x5961,INVALC,0x5962, - 0x5963,INVALC,0x5964,INVALC,INVALC,0x5965,INVALC,0x5966, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5974,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5967,INVALC,0x5968,0x5969, - 0x596A,INVALC,INVALC,INVALC,0x596B,0x596C,0x596D,0x596E, - INVALC,INVALC,0x596F,INVALC,INVALC,INVALC,INVALC,0x5970, - INVALC,INVALC,0x5971,0x5972,INVALC,INVALC,0x5973,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5975,INVALC,0x5976,INVALC,INVALC,INVALC,INVALC,0x5977, - 0x5978,INVALC,INVALC,INVALC,INVALC,INVALC,0x5979,INVALC, - 0x597A,INVALC,INVALC,INVALC,INVALC,0x597B,INVALC,INVALC, - INVALC,INVALC,INVALC,0x597C,INVALC,INVALC,0x597D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x597E,INVALC,INVALC,0x5A21, - /* Block 135, Array index 0x3F00 */ - 0x5A22,INVALC,INVALC,INVALC,0x5A23,0x5A24,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5A25,0x5A26,INVALC, - 0x5A27,0x5A28,0x5A29,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5A2A,0x5A2B,INVALC,0x5A2C,INVALC,INVALC,0x5A2D,INVALC, - INVALC,0x5A2E,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A2F, - INVALC,0x5A30,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A31,INVALC, - 0x5A32,INVALC,0x5A33,INVALC,0x5A34,0x5A35,INVALC,INVALC, - 0x5A36,0x3866,0x5A37,INVALC,INVALC,INVALC,0x5A38,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5A39,0x5A3A,INVALC,INVALC,0x5A3B,0x5A3C, - 0x5A3D,0x5A3E,INVALC,INVALC,INVALC,0x5A3F,INVALC,INVALC, - 0x5A40,0x5A41,0x5A42,0x5A43,0x5A44,INVALC,INVALC,INVALC, - INVALC,0x5A45,INVALC,INVALC,0x5A46,INVALC,INVALC,0x5A47, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5A48,0x5A49,0x5A4A, - INVALC,INVALC,0x5A4B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5A6D,INVALC,INVALC,INVALC,INVALC,0x5A4C,INVALC,INVALC, - INVALC,0x5A4D,INVALC,INVALC,INVALC,INVALC,0x5A4E,INVALC, - 0x5A4F,INVALC,0x5A50,INVALC,0x5A51,INVALC,INVALC,INVALC, - INVALC,0x5A52,INVALC,INVALC,INVALC,INVALC,0x5A53,0x5A54, - 0x5A55,INVALC,INVALC,INVALC,INVALC,0x5A56,INVALC,INVALC, - INVALC,0x5A57,INVALC,0x5A58,0x5A59,0x5A5A,INVALC,0x5A5B, - 0x5A5C,0x5A5D,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A5E, - 0x5A5F,0x5A60,INVALC,0x5A61,INVALC,0x5A62,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5A63,0x5A64,INVALC,INVALC,0x5A65,INVALC,0x5A66, - INVALC,INVALC,0x5A67,INVALC,0x5A68,INVALC,INVALC,INVALC, - 0x5A69,INVALC,INVALC,0x5A6A,INVALC,0x5A6B,INVALC,0x5A6C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5A6E,INVALC,0x5A6F,0x5A70,INVALC,INVALC, - /* Block 136, Array index 0x4000 */ - INVALC,INVALC,INVALC,INVALC,0x5A71,0x5A72,INVALC,0x5A73, - INVALC,INVALC,INVALC,0x5A74,INVALC,INVALC,0x5A75,0x5A76, - 0x5A77,INVALC,INVALC,0x5A78,0x5A79,INVALC,INVALC,INVALC, - INVALC,0x5A7A,INVALC,INVALC,INVALC,INVALC,0x5A7B,0x5A7C, - INVALC,0x5A7D,INVALC,0x5A7E,INVALC,INVALC,INVALC,INVALC, - 0x5B21,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B22,0x5B23, - INVALC,0x5B24,0x5B25,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5B26,0x5B27,INVALC,0x5B28,0x5B29,0x5B2A,INVALC, - 0x5B2B,INVALC,INVALC,0x5B2C,INVALC,0x5B2D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5B2E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5B2F,INVALC,INVALC,INVALC,INVALC,0x5B30,INVALC,INVALC, - INVALC,0x5B31,INVALC,INVALC,0x5B32,0x5B33,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B34, - INVALC,0x5B35,0x5B36,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5B37,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5B38,0x5B39,0x5B3A,0x5B3B,0x5B3C, - 0x5B3D,0x5B3E,INVALC,0x5B3F,0x5B40,INVALC,INVALC,INVALC, - 0x5B41,INVALC,INVALC,0x5B42,INVALC,0x5B43,INVALC,0x5B44, - 0x5B45,0x5B46,INVALC,INVALC,INVALC,INVALC,0x5B47,INVALC, - 0x5B48,INVALC,INVALC,0x5B49,INVALC,INVALC,INVALC,0x5B4A, - INVALC,INVALC,INVALC,INVALC,0x5B4B,0x5B4C,0x5B4D,INVALC, - INVALC,0x5B4E,INVALC,INVALC,INVALC,0x5B4F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B50,0x5B51, - INVALC,0x5B52,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5B53,0x5B54,0x5B55,INVALC,INVALC,INVALC,0x5B56,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5B57,0x5B58,INVALC, - INVALC,0x5B59,0x5B5A,INVALC,0x5B5B,INVALC,INVALC,0x5B5C, - INVALC,INVALC,0x5B5D,0x5B5E,0x5B5F,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5B60,0x5B61,INVALC,0x5B62,INVALC,INVALC, - INVALC,0x5B63,INVALC,0x5B64,INVALC,INVALC,INVALC,INVALC, - 0x5B65,INVALC,0x5B66,INVALC,INVALC,INVALC,INVALC,0x5B67, - /* Block 137, Array index 0x4100 */ - INVALC,0x5B68,INVALC,0x5B69,INVALC,INVALC,0x5B6A,INVALC, - INVALC,0x5B6B,0x5B6C,0x5B6D,INVALC,INVALC,INVALC,INVALC, - 0x5B6E,INVALC,0x5B70,0x5B71,0x5B72,INVALC,INVALC,INVALC, - 0x5B73,0x5B6F,0x5B74,0x5B75,0x5B76,INVALC,0x5B77,0x5B78, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5B79,INVALC,INVALC,INVALC,INVALC,0x5B7A,0x5B7B,INVALC, - 0x5B7C,INVALC,0x5B7D,INVALC,INVALC,0x5B7E,INVALC,INVALC, - INVALC,INVALC,0x5C21,INVALC,0x5C22,INVALC,INVALC,INVALC, - INVALC,0x5C23,INVALC,0x5C24,INVALC,0x5C25,INVALC,INVALC, - 0x5C26,0x5C27,0x5C28,0x5C29,INVALC,INVALC,0x5C2A,INVALC, - INVALC,0x5C2B,INVALC,INVALC,INVALC,0x5C2C,0x5C2D,INVALC, - 0x5C2E,INVALC,0x5C2F,INVALC,0x5C30,INVALC,INVALC,0x5C31, - 0x5C32,INVALC,INVALC,INVALC,0x5C33,INVALC,INVALC,INVALC, - INVALC,0x5C34,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C35,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C36,INVALC,0x5C37,INVALC,INVALC,INVALC,INVALC, - 0x5C38,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5C39,INVALC,0x5C3A,0x5C3B,0x5C3C,INVALC,INVALC,0x5C3D, - 0x5C3E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5C3F,INVALC,0x5C40,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5C41,INVALC,INVALC,0x5C42,0x5C43,INVALC, - 0x5C44,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5C45,0x5C46,0x5C47,0x5C48,0x5C49,INVALC, - INVALC,0x5C4A,0x5C4B,0x5C4C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C4D,INVALC,INVALC,0x5C4E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C4F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C50, - 0x5C51,0x5C52,INVALC,INVALC,INVALC,0x5C53,INVALC,0x5C54, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 138, Array index 0x4200 */ - INVALC,0x5C55,INVALC,INVALC,INVALC,INVALC,0x5C56,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5C57,0x5C58,0x5C59, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5C5A,0x5C5B,INVALC, - 0x5C5C,0x5C5D,0x5C5E,INVALC,0x5C5F,INVALC,INVALC,INVALC, - 0x5C60,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C61,0x5C62, - 0x5C63,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5C64,0x5C65,0x5C66,INVALC,INVALC,0x5C67,INVALC,INVALC, - INVALC,0x5C68,0x5C69,INVALC,INVALC,INVALC,0x5C6A,INVALC, - 0x5C6B,INVALC,0x5C6C,INVALC,INVALC,0x5C6D,0x5C6E,INVALC, - INVALC,0x5C6F,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C70, - INVALC,INVALC,0x5C71,INVALC,INVALC,INVALC,INVALC,0x5C72, - INVALC,INVALC,0x5C73,0x5C74,0x5C75,INVALC,INVALC,INVALC, - INVALC,0x5C76,0x5C77,0x5C78,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C79,INVALC,INVALC,0x5C7A,INVALC, - 0x5C7B,INVALC,INVALC,0x5C7C,INVALC,0x5C7D,INVALC,INVALC, - INVALC,INVALC,0x5C7E,0x5D21,0x5D22,0x5D23,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D24,INVALC,INVALC,INVALC,0x5D25,INVALC,INVALC, - 0x5D26,INVALC,INVALC,INVALC,0x5D27,0x5D28,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D29,0x5D2A,INVALC,INVALC,0x5D2B, - 0x5D2C,INVALC,INVALC,INVALC,INVALC,0x5D2D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5D2E,INVALC,INVALC,INVALC,0x5D2F,0x5D30,0x5D31,0x5D32, - INVALC,INVALC,INVALC,INVALC,0x5D33,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5D34,0x5D35,0x5D36,0x5D37, - 0x5D38,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5D39,INVALC,INVALC, - INVALC,0x5D3A,INVALC,0x5D3B,INVALC,0x5D3C,INVALC,INVALC, - INVALC,0x5D3D,INVALC,0x5D3E,INVALC,INVALC,0x5D3F,INVALC, - INVALC,0x5D40,INVALC,INVALC,INVALC,0x5D41,INVALC,0x5D42, - /* Block 139, Array index 0x4300 */ - INVALC,INVALC,INVALC,INVALC,0x5D43,0x5D44,INVALC,0x5D45, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D46, - INVALC,0x5D47,0x5D48,INVALC,0x5D49,0x5D4A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D4B,INVALC, - 0x5D4C,INVALC,0x5D4D,INVALC,0x5D4E,INVALC,0x5D4F,INVALC, - INVALC,INVALC,INVALC,0x5D50,0x5D51,INVALC,INVALC,0x5D52, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5D53,INVALC,0x5D54, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5D55,0x5D56,INVALC, - 0x5D57,INVALC,INVALC,0x5D58,INVALC,0x5D59,INVALC,0x5D5A, - INVALC,0x5D5B,INVALC,INVALC,INVALC,0x5D5C,0x5D5D,INVALC, - INVALC,INVALC,INVALC,0x5D5E,INVALC,INVALC,0x5D5F,0x5D60, - 0x5D61,INVALC,INVALC,INVALC,0x5D62,0x5D63,INVALC,INVALC, - INVALC,0x5D64,INVALC,INVALC,INVALC,0x5D65,INVALC,0x5D66, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5D67,0x5D68,0x5D69, - INVALC,0x5D6A,0x5D6B,0x5D6C,INVALC,INVALC,0x5D6D,0x5D6E, - 0x5D6F,INVALC,INVALC,0x5D70,INVALC,INVALC,0x5D71,INVALC, - INVALC,INVALC,INVALC,0x5D72,INVALC,INVALC,INVALC,0x5D73, - 0x5D74,INVALC,0x5D75,INVALC,INVALC,INVALC,0x5D76,0x5D77, - INVALC,0x5D78,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D79, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D7A, - INVALC,0x5D7B,INVALC,INVALC,INVALC,INVALC,0x5D7C,0x5D7D, - INVALC,INVALC,INVALC,0x5D7E,INVALC,INVALC,0x5E21,0x5E22, - INVALC,INVALC,INVALC,0x5E23,INVALC,INVALC,0x5E24,INVALC, - INVALC,INVALC,INVALC,0x5E25,INVALC,INVALC,0x5E26,INVALC, - 0x5E27,0x5E28,0x5E29,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5E2A,INVALC,0x5E2B,0x5E2C,0x5E2D,INVALC,0x5E2E, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E2F,INVALC,0x5E30, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E31,INVALC,INVALC,INVALC, - 0x5E32,INVALC,INVALC,INVALC,0x5E33,0x5E34,0x5E35,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E36,INVALC,INVALC,0x5E37, - /* Block 140, Array index 0x4400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E38,0x5E39,INVALC, - INVALC,INVALC,0x5E3F,0x5E3A,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5E3B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E3C,INVALC,0x5E3D,0x5E3E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E40,INVALC,INVALC, - 0x5E41,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E42, - INVALC,INVALC,INVALC,INVALC,0x5E43,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5E44,0x5E45,0x5E46,0x5E47,0x5E48,INVALC, - 0x5E49,INVALC,INVALC,INVALC,INVALC,0x5E4E,INVALC,INVALC, - INVALC,INVALC,0x5E4A,0x5E4B,0x5E4C,INVALC,INVALC,INVALC, - INVALC,0x5E4D,INVALC,INVALC,INVALC,INVALC,0x5E4F,INVALC, - INVALC,INVALC,INVALC,0x5E50,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E51,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E52,INVALC, - 0x5E53,0x5E54,INVALC,INVALC,0x5E55,INVALC,0x5E56,INVALC, - INVALC,0x5E57,INVALC,INVALC,0x5E58,0x5E59,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5E5A,INVALC,0x5E5B,INVALC,0x5E5C, - INVALC,INVALC,INVALC,INVALC,0x5E5D,0x5E5E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E5F,INVALC,0x5E60,0x5E61, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 141, Array index 0x4500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5E62,0x5E63,INVALC,INVALC,INVALC,0x5E64,0x5E65,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E66,INVALC,0x5E67, - INVALC,0x5E68,INVALC,0x5E69,INVALC,INVALC,INVALC,0x5E6A, - INVALC,0x5E6B,INVALC,0x5E6C,0x5E6D,INVALC,INVALC,0x5E6E, - 0x5E6F,0x5E72,INVALC,0x5E70,INVALC,0x5E71,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5E73,0x5E74,INVALC,0x5E75,INVALC, - 0x5E76,0x5E77,INVALC,INVALC,INVALC,0x5E78,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5E79,INVALC,0x5E7A,0x5E7B,INVALC, - INVALC,INVALC,INVALC,0x5E7C,INVALC,INVALC,0x5E7D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E7E,0x5F21, - INVALC,INVALC,INVALC,0x5F22,INVALC,INVALC,INVALC,INVALC, - 0x5F23,INVALC,0x5F24,0x5F25,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F26,INVALC,0x5F27,0x5F28,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5F29,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F2A,0x5F2B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F2C,0x5F2D,INVALC, - INVALC,0x5F2E,INVALC,0x5F2F,INVALC,INVALC,INVALC,0x5F30, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F32,0x5F31,INVALC, - INVALC,0x5F33,INVALC,INVALC,INVALC,0x5F34,INVALC,INVALC, - INVALC,0x5F35,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5F36,INVALC,INVALC,INVALC,0x5F37,INVALC,INVALC,0x5F38, - 0x5F39,INVALC,0x5F3A,INVALC,INVALC,0x5F3B,INVALC,0x5F3C, - 0x5F3D,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F3E,0x5F3F, - /* Block 142, Array index 0x4600 */ - INVALC,0x5F40,INVALC,0x5F41,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F42,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5F43,INVALC,INVALC,INVALC,INVALC,0x5F44, - INVALC,INVALC,INVALC,0x5F45,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F46,INVALC,INVALC, - INVALC,0x5F47,INVALC,INVALC,0x5F48,INVALC,0x5F49,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F4A, - INVALC,INVALC,0x5F4B,INVALC,0x5F4C,INVALC,INVALC,INVALC, - 0x5F4D,INVALC,INVALC,INVALC,INVALC,0x5F4E,INVALC,INVALC, - 0x5F4F,0x5F50,INVALC,INVALC,INVALC,0x5F51,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F52,0x5F53, - 0x5F54,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F55,INVALC, - INVALC,INVALC,INVALC,0x5F56,0x5F57,INVALC,INVALC,0x5F58, - INVALC,INVALC,0x5F59,INVALC,INVALC,0x5F5A,INVALC,0x5F5B, - INVALC,0x5F5C,INVALC,0x5F5D,0x5F6F,INVALC,INVALC,INVALC, - 0x5F5E,INVALC,INVALC,INVALC,INVALC,0x5F5F,0x5F60,0x5F61, - 0x5F62,INVALC,0x5F63,INVALC,INVALC,INVALC,0x5F64,INVALC, - INVALC,0x5F65,INVALC,INVALC,0x5F66,0x5F67,INVALC,0x5F68, - INVALC,0x5F69,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5F6A,0x5F6B,INVALC,0x5F6C, - INVALC,INVALC,INVALC,INVALC,0x5F6D,INVALC,INVALC,INVALC, - 0x5F6E,0x5F70,0x5F71,INVALC,0x5F72,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F73,INVALC,INVALC, - /* Block 143, Array index 0x4700 */ - INVALC,0x5F74,INVALC,INVALC,0x5F75,0x5F76,0x5F77,INVALC, - INVALC,INVALC,INVALC,0x5F78,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F79,INVALC,INVALC,0x5F7A,INVALC,0x5F7B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5F7C,0x5F7D,0x5F7E,0x6021,INVALC,INVALC,0x6022,0x6023, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6024,INVALC,0x6025,INVALC,INVALC,0x6026,0x6027, - 0x6028,0x6029,INVALC,INVALC,INVALC,0x602A,INVALC,INVALC, - 0x602B,0x602C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x602D,INVALC,0x602E,0x602F,0x6030, - INVALC,INVALC,INVALC,INVALC,0x6031,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6032,0x6033,0x6034,0x6035,INVALC, - INVALC,0x6036,0x6037,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6038,INVALC,INVALC,0x6039,0x603A,INVALC,0x603B, - 0x603C,0x603D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x603E,0x603F,0x6040,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6041,0x6042,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6043,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6044,INVALC,0x6045,INVALC,INVALC,0x6046,INVALC,INVALC, - INVALC,INVALC,0x6047,0x6048,INVALC,0x6049,0x604A,INVALC, - INVALC,INVALC,0x604B,INVALC,INVALC,INVALC,INVALC,0x604C, - INVALC,0x604D,INVALC,INVALC,INVALC,0x604E,0x604F,INVALC, - INVALC,INVALC,INVALC,0x6050,INVALC,0x6051,INVALC,INVALC, - INVALC,INVALC,0x6052,0x6053,INVALC,INVALC,INVALC,INVALC, - 0x6054,0x6055,INVALC,0x6056,0x6057,INVALC,INVALC,0x6058, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6059, - INVALC,0x605A,INVALC,INVALC,0x605B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x605C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x605D,INVALC,INVALC,INVALC,INVALC,0x6064,0x605E,INVALC, - 0x605F,0x6060,INVALC,INVALC,INVALC,INVALC,INVALC,0x6061, - INVALC,0x6062,0x6063,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 144, Array index 0x4800 */ - 0x6065,INVALC,0x6066,INVALC,INVALC,INVALC,INVALC,0x6067, - 0x6068,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6069, - 0x606A,INVALC,INVALC,INVALC,INVALC,INVALC,0x606B,0x606C, - 0x606D,INVALC,INVALC,INVALC,INVALC,INVALC,0x606E,INVALC, - 0x606F,0x6070,INVALC,0x6071,INVALC,0x6072,INVALC,0x6073, - 0x6074,INVALC,INVALC,INVALC,0x6075,0x6076,0x6077,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6078,0x6079,0x607A,0x607B, - INVALC,INVALC,0x607C,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x607D,0x607E,INVALC,0x6121,INVALC,INVALC,INVALC,0x6122, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6123, - INVALC,0x6124,0x6125,0x6126,0x6127,0x6128,INVALC,INVALC, - 0x6129,INVALC,INVALC,INVALC,INVALC,0x612A,0x612B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x612C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x612D,INVALC,INVALC, - 0x612E,0x612F,INVALC,INVALC,0x6130,0x6131,0x6132,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6133,0x6134,INVALC, - 0x6135,INVALC,INVALC,INVALC,INVALC,INVALC,0x6136,INVALC, - 0x6137,0x6138,INVALC,INVALC,INVALC,INVALC,0x6139,INVALC, - INVALC,INVALC,0x613A,0x613B,INVALC,0x613C,INVALC,INVALC, - 0x613D,INVALC,0x613E,0x613F,INVALC,0x6140,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6141,INVALC,INVALC,0x6142,0x6143,INVALC,INVALC,INVALC, - 0x6144,INVALC,INVALC,INVALC,INVALC,INVALC,0x6145,INVALC, - INVALC,0x6146,INVALC,INVALC,INVALC,0x6147,0x6148,INVALC, - INVALC,INVALC,INVALC,0x6149,INVALC,INVALC,0x614A,INVALC, - /* Block 145, Array index 0x4900 */ - INVALC,INVALC,0x614B,INVALC,0x614C,INVALC,INVALC,INVALC, - 0x614D,INVALC,INVALC,INVALC,0x614E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x614F,INVALC,INVALC,0x6150,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6151,0x6152,0x6154,INVALC,0x6155,0x6156,INVALC,0x6153, - INVALC,INVALC,INVALC,0x6157,0x6158,INVALC,INVALC,0x6159, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x615A, - INVALC,INVALC,INVALC,0x615B,0x615C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x615D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x615E,INVALC,0x615F,INVALC,INVALC, - INVALC,INVALC,0x6160,INVALC,INVALC,INVALC,0x6161,0x6162, - INVALC,INVALC,INVALC,INVALC,0x6163,INVALC,INVALC,INVALC, - 0x6164,INVALC,INVALC,INVALC,0x6165,INVALC,INVALC,INVALC, - INVALC,0x6166,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6167,INVALC,INVALC, - 0x6168,INVALC,INVALC,0x6169,0x616A,INVALC,0x616B,INVALC, - 0x616C,INVALC,INVALC,INVALC,INVALC,0x616D,INVALC,0x616E, - 0x616F,0x6170,INVALC,0x6171,INVALC,INVALC,INVALC,INVALC, - 0x6172,0x6173,0x6174,INVALC,INVALC,0x6175,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6176,INVALC,0x6177,0x6178,0x6179,INVALC,0x617A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x617B,0x617D,INVALC, - INVALC,INVALC,INVALC,0x617E,0x6221,0x6222,INVALC,0x6223, - 0x6224,INVALC,INVALC,INVALC,0x617C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x622D,INVALC,INVALC,0x6225,INVALC,0x6226, - 0x6227,0x6228,INVALC,INVALC,0x6229,0x622A,INVALC,0x622B, - INVALC,INVALC,INVALC,INVALC,INVALC,0x622C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x622F,INVALC,INVALC,INVALC,0x6230, - 0x6231,INVALC,INVALC,INVALC,0x6232,INVALC,0x622E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6233,0x6234, - /* Block 146, Array index 0x4A00 */ - 0x6235,INVALC,INVALC,INVALC,0x6236,0x6237,0x6238,INVALC, - 0x6239,INVALC,INVALC,INVALC,INVALC,0x623A,INVALC,INVALC, - 0x623B,INVALC,INVALC,INVALC,0x623C,INVALC,0x623D,0x623E, - 0x623F,INVALC,0x6240,INVALC,0x6241,INVALC,0x6242,INVALC, - 0x6243,INVALC,0x6245,0x6246,INVALC,0x6244,INVALC,0x6247, - INVALC,0x6248,INVALC,INVALC,INVALC,INVALC,0x6249,0x624A, - INVALC,0x624B,INVALC,INVALC,0x624C,INVALC,0x624D,0x624E, - INVALC,0x624F,0x6250,INVALC,0x6251,0x6252,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6253,INVALC,INVALC,INVALC,0x6254, - 0x6255,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6256, - INVALC,INVALC,INVALC,0x6257,INVALC,INVALC,INVALC,0x6258, - INVALC,0x6259,0x625A,0x625B,INVALC,INVALC,INVALC,INVALC, - INVALC,0x625C,INVALC,INVALC,0x625D,INVALC,INVALC,0x625E, - INVALC,INVALC,INVALC,INVALC,INVALC,0x625F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6260,INVALC,INVALC,INVALC, - INVALC,0x6261,0x6262,0x6263,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6264,INVALC,0x6265,INVALC,0x6266,0x6267,INVALC, - INVALC,INVALC,0x6268,INVALC,INVALC,INVALC,0x6269,INVALC, - INVALC,0x626A,INVALC,0x626B,0x626C,0x626D,INVALC,INVALC, - 0x626E,INVALC,INVALC,INVALC,INVALC,INVALC,0x626F,INVALC, - INVALC,0x6270,INVALC,INVALC,INVALC,INVALC,0x6271,INVALC, - 0x6272,INVALC,INVALC,INVALC,0x6273,0x6274,0x6275,INVALC, - 0x6276,0x6277,0x6278,0x6279,INVALC,INVALC,0x627A,INVALC, - INVALC,INVALC,INVALC,0x627B,0x627C,0x627D,INVALC,0x627E, - INVALC,INVALC,0x6321,0x6322,INVALC,0x6323,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6324,0x6325,INVALC,INVALC,0x6326, - INVALC,0x6327,0x6328,INVALC,INVALC,INVALC,0x6329,INVALC, - INVALC,INVALC,INVALC,INVALC,0x632A,0x632B,INVALC,INVALC, - INVALC,0x632C,0x632D,INVALC,0x632E,0x632F,0x6330,0x6331, - 0x6332,0x6333,INVALC,INVALC,INVALC,INVALC,INVALC,0x6334, - INVALC,0x6335,INVALC,0x6336,INVALC,0x6337,INVALC,INVALC, - /* Block 147, Array index 0x4B00 */ - 0x6338,0x6339,INVALC,INVALC,0x633A,0x633B,0x633C,0x633D, - INVALC,0x633E,0x633F,INVALC,0x6340,INVALC,INVALC,INVALC, - 0x6341,INVALC,0x6342,0x6343,INVALC,INVALC,0x6344,INVALC, - 0x6345,INVALC,INVALC,INVALC,0x6346,0x6347,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6348,0x6349,0x634A,0x634B,INVALC, - 0x634C,INVALC,INVALC,INVALC,INVALC,INVALC,0x634D,0x634E, - 0x634F,INVALC,INVALC,0x6350,INVALC,0x6351,0x6352,INVALC, - 0x6353,0x6354,0x6355,INVALC,0x6356,INVALC,0x6357,INVALC, - 0x6358,INVALC,0x6359,0x635A,INVALC,INVALC,0x635B,0x635C, - INVALC,INVALC,0x635D,INVALC,INVALC,0x635E,0x635F,0x6360, - INVALC,0x6361,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6362,0x6363,INVALC,INVALC,0x6364,0x6365,INVALC,INVALC, - 0x6366,0x6367,INVALC,INVALC,INVALC,0x6368,INVALC,0x6369, - 0x636A,0x636B,INVALC,INVALC,INVALC,INVALC,0x636C,0x636D, - 0x636E,INVALC,INVALC,INVALC,INVALC,0x636F,0x6370,0x6371, - 0x6372,0x6373,INVALC,0x6374,0x6375,0x6376,INVALC,0x6377, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6378,0x6379,0x637A,INVALC,INVALC,0x637B,0x637C,INVALC, - INVALC,INVALC,0x637D,INVALC,INVALC,INVALC,INVALC,0x637E, - INVALC,0x6421,INVALC,INVALC,INVALC,INVALC,INVALC,0x6422, - 0x6423,INVALC,INVALC,INVALC,0x6424,0x6425,INVALC,0x6426, - 0x6427,INVALC,INVALC,0x6428,INVALC,INVALC,INVALC,0x6429, - INVALC,INVALC,0x642A,INVALC,INVALC,INVALC,0x642B,INVALC, - 0x642C,INVALC,0x642D,0x642E,0x642F,0x6430,INVALC,0x6431, - 0x6432,0x6433,0x6434,0x6435,INVALC,0x6436,0x6437,0x6438, - 0x6439,INVALC,INVALC,0x643A,0x643B,0x643C,0x643D,INVALC, - 0x643E,INVALC,INVALC,0x643F,INVALC,0x6440,INVALC,0x6441, - 0x6442,0x6443,INVALC,INVALC,0x6444,0x6445,INVALC,0x6446, - 0x6447,0x6448,INVALC,0x6449,INVALC,0x644A,INVALC,0x644B, - 0x644C,INVALC,INVALC,INVALC,0x644D,INVALC,0x644E,INVALC, - 0x644F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6450,INVALC,0x6451,INVALC,INVALC,INVALC,0x6452, - /* Block 148, Array index 0x4C00 */ - 0x6453,INVALC,0x6454,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6455,INVALC,INVALC,INVALC,INVALC,0x6456,INVALC,INVALC, - INVALC,0x6457,INVALC,INVALC,0x6458,0x6459,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x645A,0x645B,0x645C,0x645D, - INVALC,0x645E,INVALC,INVALC,0x645F,0x6460,INVALC,0x6461, - INVALC,0x6462,0x6463,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6464,0x6465,INVALC,0x6466,0x6467, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6468, - 0x6469,0x646A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x646B,0x646C,0x646D,INVALC,INVALC,0x646E,INVALC,0x646F, - 0x6470,INVALC,0x6471,INVALC,INVALC,INVALC,0x6472,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6473,0x6474,INVALC,0x6475, - INVALC,0x6476,0x6477,INVALC,INVALC,0x6478,INVALC,0x6479, - 0x647A,0x647B,INVALC,0x647C,0x647D,INVALC,0x647E,INVALC, - INVALC,INVALC,0x6521,INVALC,INVALC,0x6522,INVALC,0x6523, - 0x6524,0x6525,0x6526,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6527,INVALC,0x6528,0x6529,INVALC,0x652A,INVALC,0x652B, - INVALC,INVALC,0x652C,INVALC,INVALC,0x652D,INVALC,INVALC, - 0x652E,INVALC,INVALC,0x652F,INVALC,INVALC,0x6530,INVALC, - INVALC,0x6531,INVALC,0x6532,0x6533,INVALC,0x6534,INVALC, - 0x6535,0x653B,INVALC,0x6536,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6537,0x6538,0x6539,INVALC, - INVALC,INVALC,0x653A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x653C,INVALC,INVALC,0x653D,0x653E,0x653F,0x6540, - INVALC,0x6541,0x6542,0x6543,0x6544,0x6545,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6546,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6547,INVALC,INVALC,0x6548,INVALC,0x6549,0x654A, - INVALC,INVALC,0x654B,INVALC,INVALC,INVALC,0x654C,0x654D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x654F, - 0x6550,0x654E,0x6551,0x6552,INVALC,0x6553,INVALC,INVALC, - /* Block 149, Array index 0x4D00 */ - INVALC,0x6554,0x6555,INVALC,0x6556,INVALC,INVALC,INVALC, - 0x6557,0x6558,INVALC,INVALC,INVALC,0x6559,0x655A,0x655B, - INVALC,INVALC,INVALC,INVALC,INVALC,0x655C,0x655D,0x655E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x655F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6560,0x6561, - INVALC,0x6562,0x6563,0x6564,0x6565,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6566,INVALC,0x6568,INVALC,0x6567, - INVALC,INVALC,INVALC,0x6569,INVALC,0x656A,INVALC,INVALC, - 0x656B,INVALC,0x656C,INVALC,0x656D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x656E,INVALC,INVALC, - INVALC,0x656F,INVALC,INVALC,0x6570,INVALC,INVALC,0x6571, - INVALC,0x6572,INVALC,0x6573,INVALC,INVALC,INVALC,INVALC, - 0x6574,INVALC,INVALC,0x6575,INVALC,0x6576,0x6577,0x6578, - INVALC,0x6579,0x657A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x657C,0x657B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 150, Array index 0x4E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x657D,0x657E,INVALC,INVALC,INVALC,INVALC,0x6621,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6622,INVALC,INVALC,INVALC, - 0x6623,INVALC,INVALC,INVALC,0x6624,0x6625,0x6626,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6627,0x6628,0x6629, - INVALC,0x662A,INVALC,INVALC,INVALC,INVALC,0x662B,INVALC, - INVALC,0x662C,INVALC,0x662D,0x662E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x662F,INVALC,0x6630,INVALC, - INVALC,INVALC,0x6631,INVALC,INVALC,0x6632,INVALC,0x6633, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6634,INVALC, - 0x6635,0x6636,INVALC,0x6637,INVALC,INVALC,INVALC,INVALC, - 0x6638,0x6639,0x663A,0x663B,INVALC,INVALC,INVALC,INVALC, - INVALC,0x663C,0x663D,INVALC,INVALC,0x663E,0x663F,0x6640, - 0x6641,INVALC,INVALC,INVALC,0x6642,INVALC,0x6643,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 151, Array index 0x4F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6644,0x6645,INVALC, - INVALC,INVALC,0x6646,INVALC,0x6647,0x6648,0x6649,INVALC, - INVALC,INVALC,INVALC,INVALC,0x664A,INVALC,INVALC,INVALC, - INVALC,0x664B,INVALC,0x664C,INVALC,INVALC,INVALC,0x664D, - 0x664E,0x664F,0x6650,INVALC,0x6651,0x6652,INVALC,INVALC, - INVALC,0x6653,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6654,INVALC,0x6655,INVALC,0x6656,0x6657, - 0x6658,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6659,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x665A,INVALC, - INVALC,INVALC,INVALC,INVALC,0x665B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x665C,0x665D,INVALC,0x665E,0x665F, - INVALC,0x6660,0x6661,0x6662,0x6663,INVALC,INVALC,INVALC, - INVALC,0x6664,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6665,INVALC,INVALC,INVALC,INVALC,0x6666,INVALC, - INVALC,INVALC,0x6667,INVALC,INVALC,0x6668,INVALC,0x6669, - INVALC,INVALC,INVALC,INVALC,0x666A,0x666B,0x666C,INVALC, - INVALC,0x666D,INVALC,INVALC,INVALC,INVALC,0x666E,0x666F, - INVALC,INVALC,INVALC,0x6670,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6671,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6672,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6673,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6675,INVALC,0x6676,INVALC,INVALC,0x6677,0x6678,0x6679, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x667A,INVALC,INVALC,INVALC,INVALC,INVALC,0x667B, - INVALC,0x667C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x667D,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 152, Array index 0x5000 */ - INVALC,INVALC,0x667E,0x6721,INVALC,0x6722,INVALC,INVALC, - INVALC,0x6723,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6724,0x6725,INVALC,0x6726,INVALC,INVALC, - INVALC,0x6727,0x6728,0x6729,INVALC,INVALC,INVALC,INVALC, - 0x672A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x672B,INVALC,0x672C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x672D,INVALC,0x672E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x672F,INVALC,INVALC,INVALC,0x6730,0x6731, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6732,INVALC,0x6733, - 0x6734,INVALC,0x6735,0x6736,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6737,INVALC,INVALC,INVALC,0x6738, - INVALC,INVALC,0x6739,INVALC,INVALC,INVALC,0x673A,INVALC, - INVALC,INVALC,INVALC,0x673B,INVALC,INVALC,0x673C,0x673D, - 0x673E,INVALC,INVALC,0x673F,INVALC,0x6740,INVALC,0x6741, - 0x6742,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6743,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6744,0x6745,0x6746, - INVALC,0x6747,0x6748,INVALC,INVALC,INVALC,0x6749,0x674A, - INVALC,INVALC,0x674B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x674C,INVALC,0x674D,INVALC, - INVALC,0x674E,0x674F,INVALC,INVALC,0x6750,0x6751,INVALC, - 0x6752,0x6753,0x6754,INVALC,0x6755,INVALC,0x6756,0x6757, - INVALC,0x6758,INVALC,INVALC,0x6759,0x675A,INVALC,0x675B, - INVALC,0x675C,0x675D,INVALC,0x675E,0x675F,0x6760,INVALC, - 0x6761,0x6762,INVALC,INVALC,0x6763,INVALC,INVALC,0x6764, - 0x6765,0x6766,INVALC,0x676A,INVALC,0x6767,0x6768,INVALC, - 0x6769,0x676B,INVALC,INVALC,0x676C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x676D, - INVALC,0x676E,INVALC,INVALC,0x676F,INVALC,INVALC,0x6770, - 0x6771,INVALC,0x6772,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 153, Array index 0x5100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6773, - INVALC,INVALC,0x6774,INVALC,INVALC,0x6776,0x6777,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6778,INVALC,0x6779,INVALC, - INVALC,0x6775,INVALC,INVALC,0x677A,INVALC,0x677B,INVALC, - 0x677C,INVALC,INVALC,0x677D,INVALC,0x6828,0x677E,INVALC, - INVALC,INVALC,INVALC,0x6821,INVALC,INVALC,0x6822,0x6823, - 0x6824,INVALC,0x6825,0x6826,INVALC,0x6827,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6829,INVALC, - INVALC,INVALC,INVALC,INVALC,0x682A,INVALC,INVALC,0x682B, - INVALC,INVALC,0x682C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x682D,0x682E,0x682F,INVALC,INVALC,0x6830,0x6831, - INVALC,0x6832,0x6833,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6834,0x6835,INVALC,0x6836,0x6837,INVALC, - INVALC,INVALC,0x6838,INVALC,0x6839,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x683A,INVALC,0x683B,0x683C,INVALC, - 0x683D,INVALC,INVALC,INVALC,0x683E,INVALC,INVALC,0x683F, - 0x6840,INVALC,0x6841,0x6842,INVALC,INVALC,INVALC,0x6843, - INVALC,INVALC,0x6844,INVALC,INVALC,0x6845,INVALC,INVALC, - 0x6846,INVALC,INVALC,INVALC,0x6847,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6848,INVALC,0x6849,INVALC,0x684A,0x684B,0x684C, - INVALC,INVALC,0x684D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x684E,INVALC,INVALC,0x684F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 154, Array index 0x5200 */ - INVALC,INVALC,0x6850,INVALC,INVALC,INVALC,INVALC,0x6851, - 0x6852,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6853,INVALC,INVALC,INVALC,0x6854,0x6855,0x6856, - INVALC,INVALC,0x6857,0x6858,0x6859,INVALC,INVALC,0x685A, - INVALC,INVALC,0x685B,INVALC,INVALC,INVALC,0x685C,0x685D, - INVALC,INVALC,INVALC,0x685E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x685F,0x6860,0x6861,0x6862,0x6863,INVALC,INVALC, - INVALC,0x6864,0x6865,0x6866,0x6867,INVALC,INVALC,INVALC, - 0x6868,0x6869,INVALC,INVALC,INVALC,INVALC,0x686A,0x686B, - 0x686C,INVALC,INVALC,INVALC,INVALC,0x686D,0x686E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x686F,INVALC,INVALC,INVALC, - 0x6870,0x6871,INVALC,0x6872,0x6873,INVALC,0x6874,0x6875, - 0x6876,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6877,INVALC,0x6878,INVALC,0x6879, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x687A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x687B,0x687C,0x687D,INVALC,INVALC,0x687E,INVALC,INVALC, - INVALC,0x6921,0x6922,INVALC,INVALC,0x6923,INVALC,0x6924, - INVALC,INVALC,INVALC,0x6925,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6926,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6927,0x6928,INVALC,INVALC,INVALC, - INVALC,0x6929,0x692A,INVALC,0x692B,INVALC,0x692C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x692D, - INVALC,INVALC,0x692E,0x692F,0x6930,INVALC,INVALC,INVALC, - 0x6931,INVALC,INVALC,INVALC,0x6932,0x6933,INVALC,INVALC, - INVALC,0x6934,INVALC,INVALC,INVALC,0x6935,0x6936,INVALC, - /* Block 155, Array index 0x5300 */ - INVALC,INVALC,0x6937,0x6938,0x6939,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x693A,0x693B,INVALC,INVALC,INVALC, - 0x693C,0x693D,INVALC,INVALC,INVALC,INVALC,0x693E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x693F,INVALC, - 0x6940,INVALC,0x6941,0x6942,0x6943,INVALC,INVALC,0x6944, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6945,0x6946,INVALC, - INVALC,INVALC,INVALC,0x6947,INVALC,0x6948,0x6949,INVALC, - 0x694A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x694C,INVALC,INVALC,0x694D,INVALC,INVALC,0x694B, - INVALC,INVALC,0x694E,0x694F,0x6950,INVALC,0x6951,INVALC, - INVALC,0x6952,INVALC,INVALC,0x6953,INVALC,0x6954,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6955,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6956,INVALC,0x6957,INVALC,0x6958,0x6959, - INVALC,INVALC,0x695A,INVALC,0x695B,0x695C,0x695D,INVALC, - INVALC,0x695E,INVALC,0x695F,INVALC,INVALC,0x6960,0x6961, - INVALC,0x6962,INVALC,0x6963,INVALC,INVALC,0x6964,INVALC, - 0x6965,INVALC,INVALC,INVALC,INVALC,INVALC,0x6966,INVALC, - 0x6967,INVALC,0x6968,INVALC,INVALC,0x6969,0x696A,0x696B, - INVALC,INVALC,INVALC,0x696C,0x696D,INVALC,INVALC,INVALC, - 0x696E,INVALC,INVALC,INVALC,0x696F,0x6970,INVALC,0x6971, - INVALC,0x6972,INVALC,INVALC,0x6973,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6974,0x6975,INVALC,0x6976,INVALC,INVALC, - INVALC,0x6977,0x6978,INVALC,INVALC,0x6979,INVALC,0x697A, - /* Block 156, Array index 0x5400 */ - 0x697B,0x697C,0x697D,0x697E,0x6A21,0x6A22,INVALC,INVALC, - 0x6A23,0x6A24,INVALC,0x6A25,0x6A26,0x6A27,0x6A28,INVALC, - 0x6A29,INVALC,0x6A2A,INVALC,INVALC,INVALC,0x6A2B,INVALC, - INVALC,0x6A2C,INVALC,0x6A2D,0x6A2E,INVALC,INVALC,INVALC, - 0x6A2F,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A30,INVALC, - INVALC,INVALC,INVALC,0x6A31,INVALC,0x6A32,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6A33,0x6A34,0x6A35,INVALC,0x6A36, - INVALC,0x6A37,0x6A38,INVALC,INVALC,0x6A39,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6A3A,INVALC,INVALC,0x6A3B,0x6A3C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6A3D,0x6A3E,0x6A3F, - INVALC,INVALC,INVALC,0x6A40,INVALC,INVALC,0x6A41,INVALC, - INVALC,0x6A42,INVALC,0x6A43,INVALC,0x6A44,0x6A45,INVALC, - 0x6A46,INVALC,0x6A47,0x6A48,0x6A49,0x6A4A,0x6A4B,INVALC, - INVALC,INVALC,INVALC,0x6A4C,INVALC,0x6A4D,INVALC,0x6A4E, - 0x6A4F,0x6A50,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A51, - 0x6A52,INVALC,INVALC,INVALC,0x6A53,0x6A54,0x6A55,0x6A56, - INVALC,0x6A57,0x6A58,0x6A59,INVALC,0x6A5A,INVALC,0x6A5B, - 0x6A5C,INVALC,INVALC,INVALC,0x6A5D,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6A5E,INVALC,INVALC,0x6A5F,0x6A60,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A61,0x6A62, - INVALC,0x6A63,INVALC,INVALC,0x6A64,INVALC,INVALC,INVALC, - 0x6A65,0x6A66,0x6A67,INVALC,INVALC,INVALC,INVALC,0x6A68, - 0x6A69,INVALC,INVALC,0x6A6A,0x6A6B,INVALC,0x6A6C,0x6A6D, - INVALC,0x6A6E,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A6F, - 0x6A70,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A71,INVALC, - 0x6A72,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A73, - 0x6A74,INVALC,INVALC,INVALC,INVALC,0x6A75,INVALC,0x6A76, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6A77,INVALC,0x6A78, - INVALC,INVALC,0x6A79,0x6A7A,INVALC,INVALC,INVALC,0x6A7B, - INVALC,INVALC,INVALC,0x6A7C,INVALC,INVALC,INVALC,0x6A7D, - 0x6A7E,0x6B21,0x6B22,INVALC,INVALC,0x6B23,INVALC,0x6B24, - /* Block 157, Array index 0x5500 */ - 0x6B25,INVALC,0x6B26,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6B27,INVALC,INVALC,INVALC,0x6B28, - INVALC,0x6B29,INVALC,INVALC,INVALC,INVALC,0x6B2A,INVALC, - 0x6B2B,0x6B2C,0x6B2D,INVALC,0x6B2E,INVALC,0x6B2F,INVALC, - INVALC,INVALC,0x6B30,0x6B31,INVALC,INVALC,0x6B32,0x6B33, - 0x6B34,0x6B35,0x6B36,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B37,INVALC,INVALC,INVALC,0x6B38,0x6B39,0x6B3A, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6B3B,INVALC,INVALC, - INVALC,0x6B3C,INVALC,0x6B3D,0x6B3E,0x6B3F,INVALC,INVALC, - INVALC,0x6B40,0x6B41,INVALC,INVALC,INVALC,0x6B42,0x6B43, - 0x6B44,INVALC,INVALC,0x6B45,0x6B46,INVALC,0x6B47,INVALC, - 0x6B48,INVALC,INVALC,0x6B49,0x6B50,0x6B4A,0x6B4B,0x6B4C, - INVALC,INVALC,INVALC,0x6B4D,INVALC,INVALC,INVALC,INVALC, - 0x6B52,0x6B4E,0x6B4F,0x6B51,INVALC,INVALC,0x6B53,INVALC, - 0x6B54,INVALC,0x6B55,INVALC,INVALC,0x6B56,INVALC,0x6B57, - INVALC,INVALC,INVALC,0x6B58,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B59,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6B5A,INVALC,INVALC,INVALC,INVALC,0x6B5B, - INVALC,0x6B5C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 158, Array index 0x5600 */ - INVALC,INVALC,0x6B5E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6B5D,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B5F,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B60, - 0x6B61,INVALC,INVALC,INVALC,0x6B62,0x6B63,0x6B64,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B65, - 0x6B66,INVALC,0x6B67,0x6B68,0x6B69,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6B6A,INVALC,0x6B6B,0x6B6D,INVALC,INVALC, - INVALC,INVALC,0x6B6E,0x6B6F,INVALC,0x6B6C,INVALC,0x6B70, - INVALC,INVALC,0x6B71,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6B72,0x6B73,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B74, - INVALC,INVALC,0x6B76,0x6B75,INVALC,0x6B77,INVALC,INVALC, - INVALC,0x6B78,0x6B79,0x6B7A,INVALC,INVALC,INVALC,INVALC, - 0x6B7B,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B7C,0x6B7D, - INVALC,INVALC,INVALC,0x6B7E,0x6C21,INVALC,0x6C22,INVALC, - INVALC,INVALC,INVALC,0x6C23,0x6C24,INVALC,0x6C25,INVALC, - INVALC,INVALC,0x6C26,INVALC,INVALC,0x6C27,0x6C28,INVALC, - INVALC,INVALC,0x6C29,0x6C2A,INVALC,0x6C2B,0x6C2C,0x6C2D, - 0x6C2E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6C2F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6C30,INVALC,0x6C31,INVALC,0x6C32,INVALC, - INVALC,0x6C33,INVALC,INVALC,INVALC,0x6C34,INVALC,INVALC, - INVALC,0x6C35,INVALC,INVALC,0x6C36,INVALC,INVALC,0x6C37, - INVALC,INVALC,INVALC,0x6C38,INVALC,INVALC,INVALC,0x6C39, - INVALC,0x6C3A,0x6C3B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6C3C,0x6C3D,0x6C3E,0x6C3F, - INVALC,INVALC,0x6C40,INVALC,INVALC,INVALC,0x6C41,0x6C42, - 0x6C43,INVALC,INVALC,INVALC,INVALC,0x6C44,INVALC,0x6C45, - INVALC,0x6C46,INVALC,0x6C47,INVALC,INVALC,0x6C48,INVALC, - 0x6C49,INVALC,INVALC,0x6C4A,0x6C4B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6C4C,INVALC, - /* Block 159, Array index 0x5700 */ - INVALC,INVALC,0x6C4E,INVALC,INVALC,INVALC,INVALC,0x6C4F, - INVALC,INVALC,0x6C4D,INVALC,INVALC,INVALC,0x6C50,INVALC, - 0x6C51,0x6C52,0x6C53,INVALC,INVALC,0x6C54,0x6C55,INVALC, - INVALC,0x6C56,INVALC,INVALC,0x6C57,0x6C58,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6C59,0x6C5A,0x6C5B,INVALC,INVALC,INVALC, - 0x6C5C,INVALC,0x6C5D,0x6C5E,0x6C5F,0x6C60,INVALC,0x6C61, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6C62,0x6C63, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6C64,INVALC, - 0x6C65,INVALC,INVALC,0x6C66,INVALC,INVALC,0x6C67,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6C68,INVALC,INVALC,INVALC, - 0x6C69,INVALC,INVALC,INVALC,0x6C6A,INVALC,0x6C6B,0x6C6C, - 0x6C6D,INVALC,INVALC,0x6C6E,0x6C6F,0x6C70,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6C71,INVALC, - 0x6C72,INVALC,INVALC,0x6C73,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6C74,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6C75, - INVALC,INVALC,INVALC,INVALC,0x6C76,INVALC,INVALC,0x6C77, - INVALC,INVALC,INVALC,INVALC,0x6C78,0x6C79,0x6C7A,INVALC, - 0x6C7B,0x6C7C,0x6C7D,INVALC,INVALC,0x6C7E,INVALC,INVALC, - 0x6D21,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D22, - /* Block 160, Array index 0x5800 */ - INVALC,INVALC,0x6D23,0x6D24,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6D25,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D26, - 0x6D27,0x6D28,0x6D29,INVALC,0x6D2A,INVALC,0x6D2B,0x6D2C, - INVALC,0x6D2D,0x6D2E,0x6D2F,INVALC,INVALC,INVALC,0x6D30, - INVALC,INVALC,0x6D31,INVALC,INVALC,INVALC,0x6D32,INVALC, - INVALC,INVALC,0x6D33,0x6D34,INVALC,INVALC,INVALC,0x6D35, - INVALC,0x6D36,0x6D37,INVALC,0x6D38,INVALC,INVALC,0x6D39, - INVALC,0x6D3A,0x6D3B,INVALC,0x6D3C,0x6D3D,INVALC,0x6D3E, - INVALC,0x6D3F,INVALC,0x6D40,0x6D41,0x6D42,0x6D43,0x6D44, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6D45,INVALC,0x6D46,0x6D47,0x6D48, - 0x6D49,INVALC,0x6D4A,INVALC,INVALC,0x6D4B,0x6D4C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6D4D,0x6D4E,INVALC,INVALC,INVALC,0x6D4F,0x6D50,0x6D51, - 0x6D52,0x6D53,INVALC,0x6D54,INVALC,0x6D55,INVALC,INVALC, - INVALC,INVALC,0x6D56,INVALC,INVALC,0x6D57,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D58, - 0x6D59,0x6D5A,0x6D5B,INVALC,0x6D5C,INVALC,0x6D5D,0x6D5E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D5F,INVALC, - INVALC,0x6D60,0x6D61,0x6D62,INVALC,0x6D63,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, -}; - -#endif /* ICONV_FROM_UCS_CCS_JIS_X0212_1990 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> jis_x0212_1990 size-optimized table (23194 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_JIS_X0212_1990) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_size_jis_x0212_1990[] = -{ - 0x01AA, /* Ranges number */ - 0x0E83, /* Unranged codes number */ - 0x1047, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0x00BF, 0x017E, 0x0501, - /* Array index: 0x0006 */ 0x01CD, 0x01DC, 0x05C1, - /* Array index: 0x0009 */ 0x02D8, 0x02DD, 0x05D1, - /* Array index: 0x000C */ 0x0384, 0x0390, 0x05D7, - /* Array index: 0x000F */ 0x03AA, 0x03B0, 0x05E4, - /* Array index: 0x0012 */ 0x03CA, 0x03CE, 0x05EB, - /* Array index: 0x0015 */ 0x0402, 0x040F, 0x05F0, - /* Array index: 0x0018 */ 0x0452, 0x045F, 0x05FE, - /* Array index: 0x001B */ 0x4E2E, 0x4E30, 0x060C, - /* Array index: 0x001E */ 0x4EE0, 0x4EE2, 0x060F, - /* Array index: 0x0021 */ 0x4EFD, 0x4F03, 0x0612, - /* Array index: 0x0024 */ 0x4F15, 0x4F19, 0x0619, - /* Array index: 0x0027 */ 0x4F48, 0x4F4C, 0x061E, - /* Array index: 0x002A */ 0x4F77, 0x4F85, 0x0623, - /* Array index: 0x002D */ 0x4F90, 0x4F94, 0x0632, - /* Array index: 0x0030 */ 0x4FB9, 0x4FC1, 0x0637, - /* Array index: 0x0033 */ 0x4FC5, 0x4FCF, 0x0640, - /* Array index: 0x0036 */ 0x4FFC, 0x5001, 0x064B, - /* Array index: 0x0039 */ 0x5017, 0x501E, 0x0651, - /* Array index: 0x003C */ 0x5040, 0x5046, 0x0659, - /* Array index: 0x003F */ 0x5051, 0x5053, 0x0660, - /* Array index: 0x0042 */ 0x505F, 0x5067, 0x0663, - /* Array index: 0x0045 */ 0x508E, 0x5096, 0x066C, - /* Array index: 0x0048 */ 0x509B, 0x50A2, 0x0675, - /* Array index: 0x004B */ 0x5106, 0x5110, 0x067D, - /* Array index: 0x004E */ 0x5119, 0x511E, 0x0688, - /* Array index: 0x0051 */ 0x5131, 0x5139, 0x068E, - /* Array index: 0x0054 */ 0x51CF, 0x51D5, 0x0697, - /* Array index: 0x0057 */ 0x51F2, 0x51F4, 0x069E, - /* Array index: 0x005A */ 0x5212, 0x5218, 0x06A1, - /* Array index: 0x005D */ 0x525F, 0x5261, 0x06A8, - /* Array index: 0x0060 */ 0x5277, 0x5279, 0x06AB, - /* Array index: 0x0063 */ 0x5293, 0x529C, 0x06AE, - /* Array index: 0x0066 */ 0x52A4, 0x52A7, 0x06B8, - /* Array index: 0x0069 */ 0x52B6, 0x52BD, 0x06BC, - /* Array index: 0x006C */ 0x52E8, 0x52EC, 0x06C4, - /* Array index: 0x006F */ 0x530A, 0x530C, 0x06C9, - /* Array index: 0x0072 */ 0x531B, 0x531F, 0x06CC, - /* Array index: 0x0075 */ 0x5325, 0x532D, 0x06D1, - /* Array index: 0x0078 */ 0x533C, 0x533E, 0x06DA, - /* Array index: 0x007B */ 0x53B4, 0x53BA, 0x06DD, - /* Array index: 0x007E */ 0x54A6, 0x54AE, 0x06E4, - /* Array index: 0x0081 */ 0x54B7, 0x54BB, 0x06ED, - /* Array index: 0x0084 */ 0x54FC, 0x5501, 0x06F2, - /* Array index: 0x0087 */ 0x5508, 0x550E, 0x06F8, - /* Array index: 0x008A */ 0x553B, 0x553D, 0x06FF, - /* Array index: 0x008D */ 0x558E, 0x5594, 0x0702, - /* Array index: 0x0090 */ 0x55D1, 0x55D3, 0x0709, - /* Array index: 0x0093 */ 0x560D, 0x5612, 0x070C, - /* Array index: 0x0096 */ 0x5639, 0x5646, 0x0712, - /* Array index: 0x0099 */ 0x565E, 0x5663, 0x0720, - /* Array index: 0x009C */ 0x5699, 0x569F, 0x0726, - /* Array index: 0x009F */ 0x56A6, 0x56AD, 0x072D, - /* Array index: 0x00A2 */ 0x56C9, 0x56D0, 0x0735, - /* Array index: 0x00A5 */ 0x56E4, 0x56E8, 0x073D, - /* Array index: 0x00A8 */ 0x5720, 0x5725, 0x0742, - /* Array index: 0x00AB */ 0x573D, 0x573F, 0x0748, - /* Array index: 0x00AE */ 0x576B, 0x577E, 0x074B, - /* Array index: 0x00B1 */ 0x5799, 0x57A1, 0x075F, - /* Array index: 0x00B4 */ 0x57A7, 0x57A9, 0x0768, - /* Array index: 0x00B7 */ 0x57FD, 0x57FF, 0x076B, - /* Array index: 0x00BA */ 0x581E, 0x5820, 0x076E, - /* Array index: 0x00BD */ 0x584C, 0x5850, 0x0771, - /* Array index: 0x00C0 */ 0x587F, 0x5881, 0x0776, - /* Array index: 0x00C3 */ 0x5887, 0x5890, 0x0779, - /* Array index: 0x00C6 */ 0x58A0, 0x58A2, 0x0783, - /* Array index: 0x00C9 */ 0x5912, 0x5914, 0x0786, - /* Array index: 0x00CC */ 0x595B, 0x5963, 0x0789, - /* Array index: 0x00CF */ 0x59AD, 0x59B0, 0x0792, - /* Array index: 0x00D2 */ 0x59DD, 0x59DF, 0x0796, - /* Array index: 0x00D5 */ 0x59EE, 0x59F4, 0x0799, - /* Array index: 0x00D8 */ 0x5A0C, 0x5A0E, 0x07A0, - /* Array index: 0x00DB */ 0x5A44, 0x5A48, 0x07A3, - /* Array index: 0x00DE */ 0x5A9C, 0x5AA2, 0x07A8, - /* Array index: 0x00E1 */ 0x5AB1, 0x5AB5, 0x07AF, - /* Array index: 0x00E4 */ 0x5B7C, 0x5B81, 0x07B4, - /* Array index: 0x00E7 */ 0x5B90, 0x5B96, 0x07BA, - /* Array index: 0x00EA */ 0x5BD6, 0x5BDA, 0x07C1, - /* Array index: 0x00ED */ 0x5C67, 0x5C69, 0x07C6, - /* Array index: 0x00F0 */ 0x5C7A, 0x5C7D, 0x07C9, - /* Array index: 0x00F3 */ 0x5C9F, 0x5CA3, 0x07CD, - /* Array index: 0x00F6 */ 0x5D23, 0x5D27, 0x07D2, - /* Array index: 0x00F9 */ 0x5D5F, 0x5D64, 0x07D7, - /* Array index: 0x00FC */ 0x5D92, 0x5D95, 0x07DD, - /* Array index: 0x00FF */ 0x5E68, 0x5E70, 0x07E1, - /* Array index: 0x0102 */ 0x5EBD, 0x5EBF, 0x07EA, - /* Array index: 0x0105 */ 0x5ED1, 0x5ED5, 0x07ED, - /* Array index: 0x0108 */ 0x5F06, 0x5F08, 0x07F2, - /* Array index: 0x010B */ 0x5F21, 0x5F24, 0x07F5, - /* Array index: 0x010E */ 0x5FAB, 0x5FB1, 0x07F9, - /* Array index: 0x0111 */ 0x5FC7, 0x5FCB, 0x0800, - /* Array index: 0x0114 */ 0x5FD0, 0x5FD4, 0x0805, - /* Array index: 0x0117 */ 0x5FE8, 0x5FF3, 0x080A, - /* Array index: 0x011A */ 0x6047, 0x6049, 0x0816, - /* Array index: 0x011D */ 0x60C8, 0x60CF, 0x0819, - /* Array index: 0x0120 */ 0x6110, 0x6119, 0x0821, - /* Array index: 0x0123 */ 0x6135, 0x6139, 0x082B, - /* Array index: 0x0126 */ 0x617B, 0x6184, 0x0830, - /* Array index: 0x0129 */ 0x619C, 0x61A0, 0x083A, - /* Array index: 0x012C */ 0x61C0, 0x61C2, 0x083F, - /* Array index: 0x012F */ 0x61DC, 0x61E2, 0x0842, - /* Array index: 0x0132 */ 0x6242, 0x6246, 0x0849, - /* Array index: 0x0135 */ 0x6250, 0x6256, 0x084E, - /* Array index: 0x0138 */ 0x628D, 0x6290, 0x0855, - /* Array index: 0x013B */ 0x6341, 0x6346, 0x0859, - /* Array index: 0x013E */ 0x6352, 0x6354, 0x085F, - /* Array index: 0x0141 */ 0x63AD, 0x63AF, 0x0862, - /* Array index: 0x0144 */ 0x63D1, 0x63D5, 0x0865, - /* Array index: 0x0147 */ 0x644F, 0x6454, 0x086A, - /* Array index: 0x014A */ 0x645A, 0x6463, 0x0870, - /* Array index: 0x014D */ 0x648F, 0x6491, 0x087A, - /* Array index: 0x0150 */ 0x64BD, 0x64BF, 0x087D, - /* Array index: 0x0153 */ 0x64C9, 0x64D1, 0x0880, - /* Array index: 0x0156 */ 0x6508, 0x650A, 0x0889, - /* Array index: 0x0159 */ 0x65B2, 0x65B4, 0x088C, - /* Array index: 0x015C */ 0x65FE, 0x6600, 0x088F, - /* Array index: 0x015F */ 0x661D, 0x6633, 0x0892, - /* Array index: 0x0162 */ 0x6657, 0x665C, 0x08A9, - /* Array index: 0x0165 */ 0x666A, 0x666C, 0x08AF, - /* Array index: 0x0168 */ 0x6675, 0x6680, 0x08B2, - /* Array index: 0x016B */ 0x668B, 0x668D, 0x08BE, - /* Array index: 0x016E */ 0x6699, 0x66A0, 0x08C1, - /* Array index: 0x0171 */ 0x66BF, 0x66C3, 0x08C9, - /* Array index: 0x0174 */ 0x67B0, 0x67B2, 0x08CE, - /* Array index: 0x0177 */ 0x67BB, 0x67BD, 0x08D1, - /* Array index: 0x017A */ 0x682C, 0x6833, 0x08D4, - /* Array index: 0x017D */ 0x686E, 0x6872, 0x08DC, - /* Array index: 0x0180 */ 0x6879, 0x687C, 0x08E1, - /* Array index: 0x0183 */ 0x68CF, 0x68D3, 0x08E5, - /* Array index: 0x0186 */ 0x68E8, 0x68F1, 0x08EA, - /* Array index: 0x0189 */ 0x68FB, 0x68FD, 0x08F4, - /* Array index: 0x018C */ 0x6963, 0x6969, 0x08F7, - /* Array index: 0x018F */ 0x6970, 0x6972, 0x08FE, - /* Array index: 0x0192 */ 0x6A4E, 0x6A56, 0x0901, - /* Array index: 0x0195 */ 0x6A9B, 0x6A9F, 0x090A, - /* Array index: 0x0198 */ 0x6AAF, 0x6AB1, 0x090F, - /* Array index: 0x019B */ 0x6ABD, 0x6ABF, 0x0912, - /* Array index: 0x019E */ 0x6AD4, 0x6AD6, 0x0915, - /* Array index: 0x01A1 */ 0x6AF0, 0x6AF2, 0x0918, - /* Array index: 0x01A4 */ 0x6B0F, 0x6B11, 0x091B, - /* Array index: 0x01A7 */ 0x6B9F, 0x6BA3, 0x091E, - /* Array index: 0x01AA */ 0x6BA8, 0x6BB0, 0x0923, - /* Array index: 0x01AD */ 0x6C26, 0x6C28, 0x092C, - /* Array index: 0x01B0 */ 0x6C85, 0x6C89, 0x092F, - /* Array index: 0x01B3 */ 0x6C94, 0x6C98, 0x0934, - /* Array index: 0x01B6 */ 0x6CCD, 0x6CD6, 0x0939, - /* Array index: 0x01B9 */ 0x6D26, 0x6D28, 0x0943, - /* Array index: 0x01BC */ 0x6D94, 0x6D98, 0x0946, - /* Array index: 0x01BF */ 0x6E4F, 0x6E54, 0x094B, - /* Array index: 0x01C2 */ 0x6E5C, 0x6E5E, 0x0951, - /* Array index: 0x01C5 */ 0x6EBF, 0x6EC3, 0x0954, - /* Array index: 0x01C8 */ 0x6ECD, 0x6ECF, 0x0959, - /* Array index: 0x01CB */ 0x6F4F, 0x6F53, 0x095C, - /* Array index: 0x01CE */ 0x6F87, 0x6F8D, 0x0961, - /* Array index: 0x01D1 */ 0x6F90, 0x6F96, 0x0968, - /* Array index: 0x01D4 */ 0x6FA5, 0x6FA8, 0x096F, - /* Array index: 0x01D7 */ 0x6FAE, 0x6FB0, 0x0973, - /* Array index: 0x01DA */ 0x7005, 0x7007, 0x0976, - /* Array index: 0x01DD */ 0x7048, 0x704B, 0x0979, - /* Array index: 0x01E0 */ 0x7094, 0x7098, 0x097D, - /* Array index: 0x01E3 */ 0x70D1, 0x70D8, 0x0982, - /* Array index: 0x01E6 */ 0x7103, 0x7107, 0x098A, - /* Array index: 0x01E9 */ 0x712D, 0x7131, 0x098F, - /* Array index: 0x01EC */ 0x7145, 0x714B, 0x0994, - /* Array index: 0x01EF */ 0x71AF, 0x71B3, 0x099B, - /* Array index: 0x01F2 */ 0x71BF, 0x71C1, 0x09A0, - /* Array index: 0x01F5 */ 0x7207, 0x7209, 0x09A3, - /* Array index: 0x01F8 */ 0x7241, 0x7245, 0x09A6, - /* Array index: 0x01FB */ 0x724E, 0x7250, 0x09AB, - /* Array index: 0x01FE */ 0x735D, 0x7360, 0x09AE, - /* Array index: 0x0201 */ 0x736B, 0x7371, 0x09B2, - /* Array index: 0x0204 */ 0x739C, 0x73A6, 0x09B9, - /* Array index: 0x0207 */ 0x73F7, 0x7401, 0x09C4, - /* Array index: 0x020A */ 0x7426, 0x7431, 0x09CF, - /* Array index: 0x020D */ 0x7443, 0x7447, 0x09DB, - /* Array index: 0x0210 */ 0x7466, 0x7468, 0x09E0, - /* Array index: 0x0213 */ 0x7485, 0x7489, 0x09E3, - /* Array index: 0x0216 */ 0x748F, 0x7492, 0x09E8, - /* Array index: 0x0219 */ 0x7498, 0x74A3, 0x09EC, - /* Array index: 0x021C */ 0x74A6, 0x74B2, 0x09F8, - /* Array index: 0x021F */ 0x74FA, 0x74FC, 0x0A05, - /* Array index: 0x0222 */ 0x753D, 0x7540, 0x0A08, - /* Array index: 0x0225 */ 0x7579, 0x757E, 0x0A0C, - /* Array index: 0x0228 */ 0x75BF, 0x75C1, 0x0A12, - /* Array index: 0x022B */ 0x75DF, 0x75E1, 0x0A15, - /* Array index: 0x022E */ 0x7600, 0x760C, 0x0A18, - /* Array index: 0x0231 */ 0x7612, 0x7616, 0x0A25, - /* Array index: 0x0234 */ 0x7619, 0x761E, 0x0A2A, - /* Array index: 0x0237 */ 0x7638, 0x763C, 0x0A30, - /* Array index: 0x023A */ 0x7640, 0x764B, 0x0A35, - /* Array index: 0x023D */ 0x766D, 0x7671, 0x0A41, - /* Array index: 0x0240 */ 0x769B, 0x76AA, 0x0A46, - /* Array index: 0x0243 */ 0x772D, 0x772F, 0x0A56, - /* Array index: 0x0246 */ 0x7734, 0x7736, 0x0A59, - /* Array index: 0x0249 */ 0x774D, 0x774F, 0x0A5C, - /* Array index: 0x024C */ 0x775C, 0x7764, 0x0A5F, - /* Array index: 0x024F */ 0x7770, 0x7774, 0x0A68, - /* Array index: 0x0252 */ 0x7794, 0x7796, 0x0A6D, - /* Array index: 0x0255 */ 0x77DE, 0x77E0, 0x0A70, - /* Array index: 0x0258 */ 0x7821, 0x7823, 0x0A73, - /* Array index: 0x025B */ 0x7860, 0x7864, 0x0A76, - /* Array index: 0x025E */ 0x789D, 0x78A1, 0x0A7B, - /* Array index: 0x0261 */ 0x78AC, 0x78B3, 0x0A80, - /* Array index: 0x0264 */ 0x78C7, 0x78C9, 0x0A88, - /* Array index: 0x0267 */ 0x78D2, 0x78D6, 0x0A8B, - /* Array index: 0x026A */ 0x78DF, 0x78E1, 0x0A90, - /* Array index: 0x026D */ 0x791C, 0x7920, 0x0A93, - /* Array index: 0x0270 */ 0x7944, 0x7946, 0x0A98, - /* Array index: 0x0273 */ 0x7991, 0x799C, 0x0A9B, - /* Array index: 0x0276 */ 0x7A34, 0x7A3A, 0x0AA7, - /* Array index: 0x0279 */ 0x7A44, 0x7A48, 0x0AAE, - /* Array index: 0x027C */ 0x7A5C, 0x7A60, 0x0AB3, - /* Array index: 0x027F */ 0x7AE8, 0x7AEC, 0x0AB8, - /* Array index: 0x0282 */ 0x7B27, 0x7B31, 0x0ABD, - /* Array index: 0x0285 */ 0x7B3D, 0x7B41, 0x0AC8, - /* Array index: 0x0288 */ 0x7BBA, 0x7BBD, 0x0ACD, - /* Array index: 0x028B */ 0x7BD6, 0x7BDB, 0x0AD1, - /* Array index: 0x028E */ 0x7BF4, 0x7C06, 0x0AD7, - /* Array index: 0x0291 */ 0x7C0B, 0x7C0F, 0x0AEA, - /* Array index: 0x0294 */ 0x7C51, 0x7C5E, 0x0AEF, - /* Array index: 0x0297 */ 0x7CB6, 0x7CBC, 0x0AFD, - /* Array index: 0x029A */ 0x7CC7, 0x7CC9, 0x0B04, - /* Array index: 0x029D */ 0x7CD3, 0x7CDA, 0x0B07, - /* Array index: 0x02A0 */ 0x7D07, 0x7D09, 0x0B0F, - /* Array index: 0x02A3 */ 0x7D0F, 0x7D13, 0x0B12, - /* Array index: 0x02A6 */ 0x7D3C, 0x7D41, 0x0B17, - /* Array index: 0x02A9 */ 0x7D59, 0x7D5D, 0x0B1D, - /* Array index: 0x02AC */ 0x7D7F, 0x7D8D, 0x0B22, - /* Array index: 0x02AF */ 0x7DC2, 0x7DC6, 0x0B31, - /* Array index: 0x02B2 */ 0x7DCC, 0x7DCE, 0x0B36, - /* Array index: 0x02B5 */ 0x7F3B, 0x7F3F, 0x0B39, - /* Array index: 0x02B8 */ 0x7F5B, 0x7F5D, 0x0B3E, - /* Array index: 0x02BB */ 0x7F61, 0x7F66, 0x0B41, - /* Array index: 0x02BE */ 0x7F7D, 0x7F80, 0x0B47, - /* Array index: 0x02C1 */ 0x7F8D, 0x7F91, 0x0B4B, - /* Array index: 0x02C4 */ 0x7FFD, 0x7FFF, 0x0B50, - /* Array index: 0x02C7 */ 0x800D, 0x8016, 0x0B53, - /* Array index: 0x02CA */ 0x801D, 0x8020, 0x0B5D, - /* Array index: 0x02CD */ 0x80D4, 0x80D8, 0x0B61, - /* Array index: 0x02D0 */ 0x8116, 0x8118, 0x0B66, - /* Array index: 0x02D3 */ 0x8167, 0x8169, 0x0B69, - /* Array index: 0x02D6 */ 0x8184, 0x8186, 0x0B6C, - /* Array index: 0x02D9 */ 0x81F0, 0x81F9, 0x0B6F, - /* Array index: 0x02DC */ 0x8243, 0x8246, 0x0B79, - /* Array index: 0x02DF */ 0x827D, 0x8284, 0x0B7D, - /* Array index: 0x02E2 */ 0x82A0, 0x82AA, 0x0B85, - /* Array index: 0x02E5 */ 0x82FD, 0x8301, 0x0B90, - /* Array index: 0x02E8 */ 0x8307, 0x830B, 0x0B95, - /* Array index: 0x02EB */ 0x831B, 0x8322, 0x0B9A, - /* Array index: 0x02EE */ 0x832C, 0x8330, 0x0BA2, - /* Array index: 0x02F1 */ 0x8342, 0x8344, 0x0BA7, - /* Array index: 0x02F4 */ 0x8351, 0x8357, 0x0BAA, - /* Array index: 0x02F7 */ 0x8398, 0x839D, 0x0BB1, - /* Array index: 0x02FA */ 0x83BE, 0x83C0, 0x0BB7, - /* Array index: 0x02FD */ 0x83CF, 0x83D1, 0x0BBA, - /* Array index: 0x0300 */ 0x8456, 0x845C, 0x0BBD, - /* Array index: 0x0303 */ 0x84A6, 0x84AA, 0x0BC4, - /* Array index: 0x0306 */ 0x84EF, 0x84F2, 0x0BC9, - /* Array index: 0x0309 */ 0x8522, 0x852B, 0x0BCD, - /* Array index: 0x030C */ 0x8532, 0x8536, 0x0BD7, - /* Array index: 0x030F */ 0x854F, 0x8553, 0x0BDC, - /* Array index: 0x0312 */ 0x855C, 0x8564, 0x0BE1, - /* Array index: 0x0315 */ 0x8579, 0x8581, 0x0BEA, - /* Array index: 0x0318 */ 0x85B4, 0x85BF, 0x0BF3, - /* Array index: 0x031B */ 0x860D, 0x8612, 0x0BFF, - /* Array index: 0x031E */ 0x863C, 0x8642, 0x0C05, - /* Array index: 0x0321 */ 0x8652, 0x8659, 0x0C0C, - /* Array index: 0x0324 */ 0x8660, 0x8664, 0x0C14, - /* Array index: 0x0327 */ 0x8675, 0x8677, 0x0C19, - /* Array index: 0x032A */ 0x86A6, 0x86A8, 0x0C1C, - /* Array index: 0x032D */ 0x86B1, 0x86B9, 0x0C1F, - /* Array index: 0x0330 */ 0x86BF, 0x86C5, 0x0C28, - /* Array index: 0x0333 */ 0x870E, 0x8714, 0x0C2F, - /* Array index: 0x0336 */ 0x872E, 0x8732, 0x0C36, - /* Array index: 0x0339 */ 0x8739, 0x8740, 0x0C3B, - /* Array index: 0x033C */ 0x8783, 0x878C, 0x0C43, - /* Array index: 0x033F */ 0x8795, 0x8799, 0x0C4D, - /* Array index: 0x0342 */ 0x87AC, 0x87AE, 0x0C52, - /* Array index: 0x0345 */ 0x87C8, 0x87CA, 0x0C55, - /* Array index: 0x0348 */ 0x87E2, 0x87E4, 0x0C58, - /* Array index: 0x034B */ 0x8809, 0x880B, 0x0C5B, - /* Array index: 0x034E */ 0x8810, 0x881F, 0x0C5E, - /* Array index: 0x0351 */ 0x8848, 0x884B, 0x0C6E, - /* Array index: 0x0354 */ 0x8898, 0x88A0, 0x0C72, - /* Array index: 0x0357 */ 0x88CA, 0x88D3, 0x0C7B, - /* Array index: 0x035A */ 0x88EF, 0x88F1, 0x0C85, - /* Array index: 0x035D */ 0x890D, 0x890F, 0x0C88, - /* Array index: 0x0360 */ 0x8915, 0x891C, 0x0C8B, - /* Array index: 0x0363 */ 0x8926, 0x8928, 0x0C93, - /* Array index: 0x0366 */ 0x8930, 0x8932, 0x0C96, - /* Array index: 0x0369 */ 0x895A, 0x895C, 0x0C99, - /* Array index: 0x036C */ 0x8961, 0x8963, 0x0C9C, - /* Array index: 0x036F */ 0x897A, 0x897D, 0x0C9F, - /* Array index: 0x0372 */ 0x89B4, 0x89B7, 0x0CA3, - /* Array index: 0x0375 */ 0x89D4, 0x89D8, 0x0CA7, - /* Array index: 0x0378 */ 0x8A11, 0x8A15, 0x0CAC, - /* Array index: 0x037B */ 0x8A56, 0x8A58, 0x0CB1, - /* Array index: 0x037E */ 0x8A75, 0x8A80, 0x0CB4, - /* Array index: 0x0381 */ 0x8AC6, 0x8ACA, 0x0CC0, - /* Array index: 0x0384 */ 0x8AD1, 0x8AD7, 0x0CC5, - /* Array index: 0x0387 */ 0x8AF4, 0x8AF6, 0x0CCC, - /* Array index: 0x038A */ 0x8B42, 0x8B48, 0x0CCF, - /* Array index: 0x038D */ 0x8B52, 0x8B54, 0x0CD6, - /* Array index: 0x0390 */ 0x8C53, 0x8C5D, 0x0CD9, - /* Array index: 0x0393 */ 0x8D9E, 0x8DA0, 0x0CE4, - /* Array index: 0x0396 */ 0x8DC5, 0x8DCA, 0x0CE7, - /* Array index: 0x0399 */ 0x8DF0, 0x8DF4, 0x0CED, - /* Array index: 0x039C */ 0x8E04, 0x8E06, 0x0CF2, - /* Array index: 0x039F */ 0x8E20, 0x8E27, 0x0CF5, - /* Array index: 0x03A2 */ 0x8E36, 0x8E39, 0x0CFD, - /* Array index: 0x03A5 */ 0x8E4B, 0x8E4F, 0x0D01, - /* Array index: 0x03A8 */ 0x8E5B, 0x8E62, 0x0D06, - /* Array index: 0x03AB */ 0x8E6C, 0x8E71, 0x0D0E, - /* Array index: 0x03AE */ 0x8E79, 0x8E7B, 0x0D14, - /* Array index: 0x03B1 */ 0x8E9A, 0x8E9E, 0x0D17, - /* Array index: 0x03B4 */ 0x8EC0, 0x8EC4, 0x0D1C, - /* Array index: 0x03B7 */ 0x8EED, 0x8EF1, 0x0D21, - /* Array index: 0x03BA */ 0x8F16, 0x8F18, 0x0D26, - /* Array index: 0x03BD */ 0x8F2C, 0x8F2E, 0x0D29, - /* Array index: 0x03C0 */ 0x8F34, 0x8F37, 0x0D2C, - /* Array index: 0x03C3 */ 0x8F4F, 0x8F55, 0x0D30, - /* Array index: 0x03C6 */ 0x8FA0, 0x8FA6, 0x0D37, - /* Array index: 0x03C9 */ 0x9028, 0x902F, 0x0D3E, - /* Array index: 0x03CC */ 0x9095, 0x909B, 0x0D46, - /* Array index: 0x03CF */ 0x90A0, 0x90A2, 0x0D4D, - /* Array index: 0x03D2 */ 0x90B0, 0x90B6, 0x0D50, - /* Array index: 0x03D5 */ 0x90C3, 0x90C8, 0x0D57, - /* Array index: 0x03D8 */ 0x90D5, 0x90DF, 0x0D5D, - /* Array index: 0x03DB */ 0x90FE, 0x9108, 0x0D68, - /* Array index: 0x03DE */ 0x9114, 0x9129, 0x0D73, - /* Array index: 0x03E1 */ 0x9136, 0x913D, 0x0D89, - /* Array index: 0x03E4 */ 0x9157, 0x915B, 0x0D91, - /* Array index: 0x03E7 */ 0x9179, 0x917B, 0x0D96, - /* Array index: 0x03EA */ 0x9191, 0x9195, 0x0D99, - /* Array index: 0x03ED */ 0x91AC, 0x91B3, 0x0D9E, - /* Array index: 0x03F0 */ 0x91BB, 0x91C5, 0x0DA6, - /* Array index: 0x03F3 */ 0x91E9, 0x91F1, 0x0DB1, - /* Array index: 0x03F6 */ 0x9200, 0x920C, 0x0DBA, - /* Array index: 0x03F9 */ 0x9223, 0x9228, 0x0DC7, - /* Array index: 0x03FC */ 0x922E, 0x9230, 0x0DCD, - /* Array index: 0x03FF */ 0x9235, 0x9247, 0x0DD0, - /* Array index: 0x0402 */ 0x924D, 0x9251, 0x0DE3, - /* Array index: 0x0405 */ 0x9265, 0x9269, 0x0DE8, - /* Array index: 0x0408 */ 0x926E, 0x9270, 0x0DED, - /* Array index: 0x040B */ 0x9275, 0x927F, 0x0DF0, - /* Array index: 0x040E */ 0x9288, 0x928E, 0x0DFB, - /* Array index: 0x0411 */ 0x92A4, 0x92A8, 0x0E02, - /* Array index: 0x0414 */ 0x92B8, 0x92D0, 0x0E07, - /* Array index: 0x0417 */ 0x92D5, 0x92E8, 0x0E20, - /* Array index: 0x041A */ 0x931C, 0x932A, 0x0E34, - /* Array index: 0x041D */ 0x9333, 0x9337, 0x0E43, - /* Array index: 0x0420 */ 0x9347, 0x9349, 0x0E48, - /* Array index: 0x0423 */ 0x9350, 0x9352, 0x0E4B, - /* Array index: 0x0426 */ 0x936D, 0x9376, 0x0E4E, - /* Array index: 0x0429 */ 0x937D, 0x9382, 0x0E58, - /* Array index: 0x042C */ 0x93B4, 0x93B6, 0x0E5E, - /* Array index: 0x042F */ 0x93C4, 0x93CD, 0x0E61, - /* Array index: 0x0432 */ 0x93F7, 0x93FD, 0x0E6B, - /* Array index: 0x0435 */ 0x940D, 0x940F, 0x0E72, - /* Array index: 0x0438 */ 0x9415, 0x9417, 0x0E75, - /* Array index: 0x043B */ 0x942E, 0x9434, 0x0E78, - /* Array index: 0x043E */ 0x946B, 0x9472, 0x0E7F, - /* Array index: 0x0441 */ 0x958C, 0x958E, 0x0E87, - /* Array index: 0x0444 */ 0x959D, 0x95A1, 0x0E8A, - /* Array index: 0x0447 */ 0x95D0, 0x95D3, 0x0E8F, - /* Array index: 0x044A */ 0x95D9, 0x95E0, 0x0E93, - /* Array index: 0x044D */ 0x9622, 0x9626, 0x0E9B, - /* Array index: 0x0450 */ 0x9637, 0x963D, 0x0EA0, - /* Array index: 0x0453 */ 0x9654, 0x9658, 0x0EA7, - /* Array index: 0x0456 */ 0x967B, 0x9684, 0x0EAC, - /* Array index: 0x0459 */ 0x96A4, 0x96A6, 0x0EB6, - /* Array index: 0x045C */ 0x96DD, 0x96DF, 0x0EB9, - /* Array index: 0x045F */ 0x9721, 0x9723, 0x0EBC, - /* Array index: 0x0462 */ 0x9757, 0x975B, 0x0EBF, - /* Array index: 0x0465 */ 0x9776, 0x9778, 0x0EC4, - /* Array index: 0x0468 */ 0x9795, 0x979A, 0x0EC7, - /* Array index: 0x046B */ 0x97B5, 0x97D1, 0x0ECD, - /* Array index: 0x046E */ 0x97D7, 0x97E1, 0x0EEA, - /* Array index: 0x0471 */ 0x982E, 0x9835, 0x0EF5, - /* Array index: 0x0474 */ 0x9851, 0x985A, 0x0EFD, - /* Array index: 0x0477 */ 0x9862, 0x9866, 0x0F07, - /* Array index: 0x047A */ 0x98B7, 0x98BB, 0x0F0C, - /* Array index: 0x047D */ 0x98E3, 0x98E7, 0x0F11, - /* Array index: 0x0480 */ 0x9915, 0x991C, 0x0F16, - /* Array index: 0x0483 */ 0x9931, 0x993C, 0x0F1E, - /* Array index: 0x0486 */ 0x9946, 0x9948, 0x0F2A, - /* Array index: 0x0489 */ 0x9958, 0x9960, 0x0F2D, - /* Array index: 0x048C */ 0x99B0, 0x99B2, 0x0F36, - /* Array index: 0x048F */ 0x99EA, 0x99EC, 0x0F39, - /* Array index: 0x0492 */ 0x9A02, 0x9A04, 0x0F3C, - /* Array index: 0x0495 */ 0x9A20, 0x9A24, 0x0F3F, - /* Array index: 0x0498 */ 0x9A4A, 0x9A4E, 0x0F44, - /* Array index: 0x049B */ 0x9AB2, 0x9AB6, 0x0F49, - /* Array index: 0x049E */ 0x9AD5, 0x9AD7, 0x0F4E, - /* Array index: 0x04A1 */ 0x9AFD, 0x9B12, 0x0F51, - /* Array index: 0x04A4 */ 0x9B33, 0x9B3A, 0x0F67, - /* Array index: 0x04A7 */ 0x9B55, 0x9B57, 0x0F6F, - /* Array index: 0x04AA */ 0x9B68, 0x9B6E, 0x0F72, - /* Array index: 0x04AD */ 0x9B75, 0x9B79, 0x0F79, - /* Array index: 0x04B0 */ 0x9B84, 0x9B90, 0x0F7E, - /* Array index: 0x04B3 */ 0x9BB0, 0x9BB2, 0x0F8B, - /* Array index: 0x04B6 */ 0x9BBB, 0x9BC1, 0x0F8E, - /* Array index: 0x04B9 */ 0x9BF7, 0x9BFA, 0x0F95, - /* Array index: 0x04BC */ 0x9C16, 0x9C1E, 0x0F99, - /* Array index: 0x04BF */ 0x9C22, 0x9C2A, 0x0FA2, - /* Array index: 0x04C2 */ 0x9C35, 0x9C37, 0x0FAB, - /* Array index: 0x04C5 */ 0x9C41, 0x9C45, 0x0FAE, - /* Array index: 0x04C8 */ 0x9C4E, 0x9C5F, 0x0FB3, - /* Array index: 0x04CB */ 0x9C68, 0x9C6B, 0x0FC5, - /* Array index: 0x04CE */ 0x9D1C, 0x9D1E, 0x0FC9, - /* Array index: 0x04D1 */ 0x9D2F, 0x9D34, 0x0FCC, - /* Array index: 0x04D4 */ 0x9D69, 0x9D6B, 0x0FD2, - /* Array index: 0x04D7 */ 0x9D92, 0x9D98, 0x0FD5, - /* Array index: 0x04DA */ 0x9DD4, 0x9DD7, 0x0FDC, - /* Array index: 0x04DD */ 0x9DDE, 0x9DE0, 0x0FE0, - /* Array index: 0x04E0 */ 0x9E0E, 0x9E16, 0x0FE3, - /* Array index: 0x04E3 */ 0x9E7A, 0x9E7C, 0x0FEC, - /* Array index: 0x04E6 */ 0x9E80, 0x9E87, 0x0FEF, - /* Array index: 0x04E9 */ 0x9EAC, 0x9EB5, 0x0FF7, - /* Array index: 0x04EC */ 0x9EEC, 0x9EF2, 0x1001, - /* Array index: 0x04EF */ 0x9F0F, 0x9F1B, 0x1008, - /* Array index: 0x04F2 */ 0x9F39, 0x9F47, 0x1015, - /* Array index: 0x04F5 */ 0x9F53, 0x9F5E, 0x1024, - /* Array index: 0x04F8 */ 0x9F6D, 0x9F75, 0x1030, - /* Array index: 0x04FB */ 0x9F8F, 0x9F97, 0x1039, - /* Array index: 0x04FE */ 0x9FA1, 0x9FA5, 0x1042, - /* Ranges content */ - /* Range 0x00BF - 0x017E, array index: 0x0501 */ - 0x2244,0x2A22,0x2A21,0x2A24,0x2A2A,0x2A23,0x2A29,0x2921, - 0x2A2E,0x2A32,0x2A31,0x2A34,0x2A33,0x2A40,0x2A3F,0x2A42, - 0x2A41,INVALC,0x2A50,0x2A52,0x2A51,0x2A54,0x2A58,0x2A53, - INVALC,0x292C,0x2A63,0x2A62,0x2A65,0x2A64,0x2A72,0x2930, - 0x294E,0x2B22,0x2B21,0x2B24,0x2B2A,0x2B23,0x2B29,0x2941, - 0x2B2E,0x2B32,0x2B31,0x2B34,0x2B33,0x2B40,0x2B3F,0x2B42, - 0x2B41,0x2943,0x2B50,0x2B52,0x2B51,0x2B54,0x2B58,0x2B53, - INVALC,0x294C,0x2B63,0x2B62,0x2B65,0x2B64,0x2B72,0x2950, - 0x2B73,0x2A27,0x2B27,0x2A25,0x2B25,0x2A28,0x2B28,0x2A2B, - 0x2B2B,0x2A2C,0x2B2C,0x2A2F,0x2B2F,0x2A2D,0x2B2D,0x2A30, - 0x2B30,0x2922,0x2942,0x2A37,0x2B37,INVALC,INVALC,0x2A36, - 0x2B36,0x2A38,0x2B38,0x2A35,0x2B35,0x2A3A,0x2B3A,0x2A3B, - 0x2B3B,0x2A3D,0x2B3D,0x2A3C,INVALC,0x2A3E,0x2B3E,0x2924, - 0x2944,0x2A47,0x2B47,0x2A45,0x2B45,INVALC,INVALC,0x2A46, - 0x2B46,0x2A44,0x2945,0x2926,0x2946,0x2A48,0x2B48,0x2A49, - 0x2B49,0x2947,0x2A4A,0x2B4A,0x2A4C,0x2B4C,0x2A4B,0x2B4B, - 0x2929,0x2949,0x2928,0x2948,0x2A4D,0x2B4D,0x2A4F,0x2B4F, - 0x2A4E,0x2B4E,0x294A,0x292B,0x294B,0x2A57,0x2B57,INVALC, - INVALC,0x2A56,0x2B56,0x292D,0x294D,0x2A59,0x2B59,0x2A5B, - 0x2B5B,0x2A5A,0x2B5A,0x2A5C,0x2B5C,0x2A5D,0x2B5D,0x2A5F, - 0x2B5F,0x2A5E,0x2B5E,0x2A61,0x2B61,0x2A60,0x2B60,0x292F, - 0x294F,0x2A6C,0x2B6C,0x2A69,0x2B69,0x2A66,0x2B66,0x2A6B, - 0x2B6B,0x2A68,0x2B68,0x2A6A,0x2B6A,0x2A71,0x2B71,0x2A74, - 0x2B74,0x2A73,0x2A75,0x2B75,0x2A77,0x2B77,0x2A76,0x2B76, - /* Range 0x01CD - 0x01DC, array index: 0x05C1 */ - 0x2A26,0x2B26,0x2A43,0x2B43,0x2A55,0x2B55,0x2A67,0x2B67, - 0x2A70,0x2B70,0x2A6D,0x2B6D,0x2A6F,0x2B6F,0x2A6E,0x2B6E, - /* Range 0x02D8 - 0x02DD, array index: 0x05D1 */ - 0x222F,0x2232,0x2236,0x2235,INVALC,0x2233, - /* Range 0x0384 - 0x0390, array index: 0x05D7 */ - 0x2238,0x2239,0x2661,INVALC,0x2662,0x2663,0x2664,INVALC, - 0x2667,INVALC,0x2669,0x266C,0x2676, - /* Range 0x03AA - 0x03B0, array index: 0x05E4 */ - 0x2665,0x266A,0x2671,0x2672,0x2673,0x2674,0x267B, - /* Range 0x03CA - 0x03CE, array index: 0x05EB */ - 0x2675,0x267A,0x2677,0x2679,0x267C, - /* Range 0x0402 - 0x040F, array index: 0x05F0 */ - 0x2742,0x2743,0x2744,0x2745,0x2746,0x2747,0x2748,0x2749, - 0x274A,0x274B,0x274C,INVALC,0x274D,0x274E, - /* Range 0x0452 - 0x045F, array index: 0x05FE */ - 0x2772,0x2773,0x2774,0x2775,0x2776,0x2777,0x2778,0x2779, - 0x277A,0x277B,0x277C,INVALC,0x277D,0x277E, - /* Range 0x4E2E - 0x4E30, array index: 0x060C */ - 0x302B,0x302C,0x302D, - /* Range 0x4EE0 - 0x4EE2, array index: 0x060F */ - 0x3047,0x3048,0x3049, - /* Range 0x4EFD - 0x4F03, array index: 0x0612 */ - 0x304F,0x3050,0x3051,0x3052,INVALC,0x3053,0x3054, - /* Range 0x4F15 - 0x4F19, array index: 0x0619 */ - 0x3059,0x305A,0x305B,INVALC,0x305C, - /* Range 0x4F48 - 0x4F4C, array index: 0x061E */ - 0x3068,0x3069,INVALC,0x306A,0x306B, - /* Range 0x4F77 - 0x4F85, array index: 0x0623 */ - 0x3076,0x3077,0x3078,0x3079,INVALC,INVALC,0x307A,0x307B, - INVALC,INVALC,0x307C,0x307D,INVALC,0x307E,0x3121, - /* Range 0x4F90 - 0x4F94, array index: 0x0632 */ - 0x3126,INVALC,0x3127,0x3128,0x3129, - /* Range 0x4FB9 - 0x4FC1, array index: 0x0637 */ - 0x3131,INVALC,0x3132,0x3133,0x3134,0x3135,INVALC,0x3136, - 0x3137, - /* Range 0x4FC5 - 0x4FCF, array index: 0x0640 */ - 0x3138,0x3139,INVALC,0x313A,0x313B,INVALC,0x313C,0x313D, - 0x313E,INVALC,0x313F, - /* Range 0x4FFC - 0x5001, array index: 0x064B */ - 0x3146,0x3147,INVALC,0x3148,0x3149,0x314A, - /* Range 0x5017 - 0x501E, array index: 0x0651 */ - 0x3152,0x3153,INVALC,INVALC,0x3154,0x3155,0x3156,0x3157, - /* Range 0x5040 - 0x5046, array index: 0x0659 */ - 0x315F,0x3160,0x3161,INVALC,INVALC,0x3162,0x3163, - /* Range 0x5051 - 0x5053, array index: 0x0660 */ - 0x3167,0x3168,0x3169, - /* Range 0x505F - 0x5067, array index: 0x0663 */ - 0x316C,0x316D,INVALC,0x316E,0x316F,INVALC,INVALC,0x3170, - 0x3171, - /* Range 0x508E - 0x5096, array index: 0x066C */ - 0x317C,0x317D,0x317E,INVALC,0x3221,0x3222,0x3223,INVALC, - 0x3224, - /* Range 0x509B - 0x50A2, array index: 0x0675 */ - 0x3225,0x3226,INVALC,0x3227,0x3228,0x3229,0x322A,0x322B, - /* Range 0x5106 - 0x5110, array index: 0x067D */ - 0x324A,0x324B,0x324C,INVALC,INVALC,0x324D,0x324E,0x324F, - 0x3250,INVALC,0x3252, - /* Range 0x5119 - 0x511E, array index: 0x0688 */ - 0x3254,INVALC,0x3255,0x3256,0x3257,0x3258, - /* Range 0x5131 - 0x5139, array index: 0x068E */ - 0x325F,INVALC,0x3260,0x3261,0x3262,INVALC,INVALC,0x3263, - 0x3264, - /* Range 0x51CF - 0x51D5, array index: 0x0697 */ - 0x3322,INVALC,0x3323,0x3324,0x3325,INVALC,0x3326, - /* Range 0x51F2 - 0x51F4, array index: 0x069E */ - 0x332C,0x332D,0x332E, - /* Range 0x5212 - 0x5218, array index: 0x06A1 */ - 0x3333,0x3334,INVALC,0x3335,0x3336,INVALC,0x3337, - /* Range 0x525F - 0x5261, array index: 0x06A8 */ - 0x3345,0x3346,0x3347, - /* Range 0x5277 - 0x5279, array index: 0x06AB */ - 0x334A,0x334B,0x334C, - /* Range 0x5293 - 0x529C, array index: 0x06AE */ - 0x3352,INVALC,0x3353,0x3354,0x3355,0x3356,INVALC,0x3357, - INVALC,0x3358, - /* Range 0x52A4 - 0x52A7, array index: 0x06B8 */ - 0x3359,0x335A,0x335B,0x335C, - /* Range 0x52B6 - 0x52BD, array index: 0x06BC */ - 0x335F,0x3360,0x3361,INVALC,0x3362,0x3363,INVALC,0x3364, - /* Range 0x52E8 - 0x52EC, array index: 0x06C4 */ - 0x3372,0x3373,0x3374,INVALC,0x3375, - /* Range 0x530A - 0x530C, array index: 0x06C9 */ - 0x337D,0x337E,0x3421, - /* Range 0x531B - 0x531F, array index: 0x06CC */ - 0x3425,0x3426,INVALC,0x3427,0x3428, - /* Range 0x5325 - 0x532D, array index: 0x06D1 */ - 0x3429,INVALC,0x342A,0x342B,0x342C,INVALC,0x342D,0x342E, - 0x342F, - /* Range 0x533C - 0x533E, array index: 0x06DA */ - 0x3433,0x3434,0x3435, - /* Range 0x53B4 - 0x53BA, array index: 0x06DD */ - 0x3451,0x3452,INVALC,0x3453,0x3454,INVALC,0x3455, - /* Range 0x54A6 - 0x54AE, array index: 0x06E4 */ - 0x352D,0x352E,INVALC,0x352F,0x3530,INVALC,INVALC,0x3531, - 0x3532, - /* Range 0x54B7 - 0x54BB, array index: 0x06ED */ - 0x3534,INVALC,0x3535,0x3536,0x3537, - /* Range 0x54FC - 0x5501, array index: 0x06F2 */ - 0x3542,INVALC,0x3543,0x3544,0x3545,0x3546, - /* Range 0x5508 - 0x550E, array index: 0x06F8 */ - 0x3548,0x3549,INVALC,INVALC,0x354A,0x354B,0x354C, - /* Range 0x553B - 0x553D, array index: 0x06FF */ - 0x3553,0x3554,0x3555, - /* Range 0x558E - 0x5594, array index: 0x0702 */ - 0x356A,0x356B,INVALC,0x356C,0x356D,0x356E,0x356F, - /* Range 0x55D1 - 0x55D3, array index: 0x0709 */ - 0x357D,0x357E,0x3621, - /* Range 0x560D - 0x5612, array index: 0x070C */ - 0x362D,0x362E,0x362F,0x3630,0x3631,0x3632, - /* Range 0x5639 - 0x5646, array index: 0x0712 */ - 0x3639,INVALC,0x363A,0x363B,0x363C,INVALC,0x363D,0x363E, - 0x363F,INVALC,0x3640,0x3641,INVALC,0x3642, - /* Range 0x565E - 0x5663, array index: 0x0720 */ - 0x3648,INVALC,0x3649,0x364A,0x364B,0x364C, - /* Range 0x5699 - 0x569F, array index: 0x0726 */ - 0x365A,0x365B,INVALC,INVALC,0x365C,0x365D,0x365E, - /* Range 0x56A6 - 0x56AD, array index: 0x072D */ - 0x365F,0x3660,0x3661,0x3662,INVALC,0x3663,0x3664,0x3665, - /* Range 0x56C9 - 0x56D0, array index: 0x0735 */ - 0x366B,0x366C,0x366D,0x3670,0x3671,INVALC,0x366E,0x366F, - /* Range 0x56E4 - 0x56E8, array index: 0x073D */ - 0x3677,0x3678,0x3679,0x367A,0x367B, - /* Range 0x5720 - 0x5725, array index: 0x0742 */ - 0x372D,INVALC,0x372E,0x372F,0x3730,0x3731, - /* Range 0x573D - 0x573F, array index: 0x0748 */ - 0x3739,0x373A,0x373B, - /* Range 0x576B - 0x577E, array index: 0x074B */ - 0x3745,INVALC,0x3746,0x3747,0x3748,0x3749,0x374A,INVALC, - 0x374B,0x374C,0x374D,INVALC,0x374E,INVALC,0x374F,0x3750, - 0x3751,0x3752,INVALC,0x3753, - /* Range 0x5799 - 0x57A1, array index: 0x075F */ - 0x3759,0x375A,INVALC,0x375B,0x375C,0x375D,0x375E,INVALC, - 0x375F, - /* Range 0x57A7 - 0x57A9, array index: 0x0768 */ - 0x3761,0x3762,0x3763, - /* Range 0x57FD - 0x57FF, array index: 0x076B */ - 0x3777,0x3778,0x3779, - /* Range 0x581E - 0x5820, array index: 0x076E */ - 0x3824,0x3825,0x3826, - /* Range 0x584C - 0x5850, array index: 0x0771 */ - 0x382E,0x382F,INVALC,0x3830,0x3831, - /* Range 0x587F - 0x5881, array index: 0x0776 */ - 0x383A,0x383B,0x383C, - /* Range 0x5887 - 0x5890, array index: 0x0779 */ - 0x383D,0x383E,0x383F,0x3840,INVALC,0x3841,0x3842,INVALC, - 0x3843,0x3844, - /* Range 0x58A0 - 0x58A2, array index: 0x0783 */ - 0x3848,0x3849,0x384A, - /* Range 0x5912 - 0x5914, array index: 0x0786 */ - 0x3863,0x3864,0x3865, - /* Range 0x595B - 0x5963, array index: 0x0789 */ - 0x3877,INVALC,0x3878,0x3879,0x387A,INVALC,0x387B,INVALC, - 0x387C, - /* Range 0x59AD - 0x59B0, array index: 0x0792 */ - 0x3931,0x3932,0x3933,0x3934, - /* Range 0x59DD - 0x59DF, array index: 0x0796 */ - 0x3940,0x3941,0x3942, - /* Range 0x59EE - 0x59F4, array index: 0x0799 */ - 0x3946,0x3947,INVALC,0x3948,0x3949,INVALC,0x394A, - /* Range 0x5A0C - 0x5A0E, array index: 0x07A0 */ - 0x394E,0x394F,0x3950, - /* Range 0x5A44 - 0x5A48, array index: 0x07A3 */ - 0x395B,0x395C,INVALC,0x395D,0x395E, - /* Range 0x5A9C - 0x5AA2, array index: 0x07A8 */ - 0x3970,INVALC,0x3971,0x3972,0x3973,INVALC,0x3974, - /* Range 0x5AB1 - 0x5AB5, array index: 0x07AF */ - 0x3977,0x3978,0x3979,INVALC,0x397A, - /* Range 0x5B7C - 0x5B81, array index: 0x07B4 */ - 0x3A43,0x3A44,0x3A45,0x3A46,INVALC,0x3A47, - /* Range 0x5B90 - 0x5B96, array index: 0x07BA */ - 0x3A4C,0x3A4D,INVALC,0x3A4E,0x3A4F,INVALC,0x3A50, - /* Range 0x5BD6 - 0x5BDA, array index: 0x07C1 */ - 0x3A5F,0x3A60,0x3A61,0x3A62,0x3A63, - /* Range 0x5C67 - 0x5C69, array index: 0x07C6 */ - 0x3A7C,0x3A7D,0x3A7E, - /* Range 0x5C7A - 0x5C7D, array index: 0x07C9 */ - 0x3B25,0x3B26,0x3B27,0x3B28, - /* Range 0x5C9F - 0x5CA3, array index: 0x07CD */ - 0x3B2F,0x3B30,INVALC,0x3B31,0x3B32, - /* Range 0x5D23 - 0x5D27, array index: 0x07D2 */ - 0x3B47,0x3B48,INVALC,0x3B49,0x3B4A, - /* Range 0x5D5F - 0x5D64, array index: 0x07D7 */ - 0x3B58,0x3B59,0x3B5A,0x3B5B,INVALC,0x3B5C, - /* Range 0x5D92 - 0x5D95, array index: 0x07DD */ - 0x3B68,0x3B69,0x3B6A,0x3B6B, - /* Range 0x5E68 - 0x5E70, array index: 0x07E1 */ - 0x3C3B,INVALC,0x3C3C,0x3C3D,0x3C3E,0x3C3F,0x3C40,INVALC, - 0x3C41, - /* Range 0x5EBD - 0x5EBF, array index: 0x07EA */ - 0x3C4D,0x3C4E,0x3C4F, - /* Range 0x5ED1 - 0x5ED5, array index: 0x07ED */ - 0x3C54,0x3C55,INVALC,0x3C56,0x3C57, - /* Range 0x5F06 - 0x5F08, array index: 0x07F2 */ - 0x3C5D,0x3C5E,0x3C5F, - /* Range 0x5F21 - 0x5F24, array index: 0x07F5 */ - 0x3C64,0x3C65,0x3C66,0x3C67, - /* Range 0x5FAB - 0x5FB1, array index: 0x07F9 */ - 0x3D31,0x3D33,INVALC,INVALC,0x3D34,0x3D35,0x3D36, - /* Range 0x5FC7 - 0x5FCB, array index: 0x0800 */ - 0x3D39,0x3D3A,0x3D3B,INVALC,0x3D3C, - /* Range 0x5FD0 - 0x5FD4, array index: 0x0805 */ - 0x3D3D,0x3D3E,0x3D3F,0x3D40,0x3D41, - /* Range 0x5FE8 - 0x5FF3, array index: 0x080A */ - 0x3D45,0x3D46,0x3D47,INVALC,0x3D48,0x3D49,0x3D4A,0x3D4B, - INVALC,INVALC,0x3D4C,0x3D4D, - /* Range 0x6047 - 0x6049, array index: 0x0816 */ - 0x3D5F,0x3D60,0x3D61, - /* Range 0x60C8 - 0x60CF, array index: 0x0819 */ - 0x3E25,0x3E26,0x3E27,0x3E28,INVALC,INVALC,0x3E29,0x3E2A, - /* Range 0x6110 - 0x6119, array index: 0x0821 */ - 0x3E3C,0x3E3D,0x3E3E,0x3E3F,0x3E40,INVALC,0x3E41,0x3E42, - INVALC,0x3E43, - /* Range 0x6135 - 0x6139, array index: 0x082B */ - 0x3E4B,0x3E4C,0x3E4D,INVALC,0x3E4E, - /* Range 0x617B - 0x6184, array index: 0x0830 */ - 0x3E58,0x3E59,INVALC,INVALC,0x3E5A,0x3E5B,0x3E5C,INVALC, - 0x3E5D,0x3E5E, - /* Range 0x619C - 0x61A0, array index: 0x083A */ - 0x3E65,0x3E66,INVALC,0x3E67,0x3E68, - /* Range 0x61C0 - 0x61C2, array index: 0x083F */ - 0x3E70,0x3E71,0x3E72, - /* Range 0x61DC - 0x61E2, array index: 0x0842 */ - 0x3E76,0x3E77,0x3E78,0x3E79,INVALC,0x3E7A,0x3E7B, - /* Range 0x6242 - 0x6246, array index: 0x0849 */ - 0x3F33,0x3F34,0x3F35,INVALC,0x3F36, - /* Range 0x6250 - 0x6256, array index: 0x084E */ - 0x3F38,0x3F39,0x3F3A,INVALC,0x3F3B,INVALC,0x3F3C, - /* Range 0x628D - 0x6290, array index: 0x0855 */ - 0x3F45,0x3F46,0x3F47,0x3F48, - /* Range 0x6341 - 0x6346, array index: 0x0859 */ - 0x3F6B,0x3F6C,0x3F6D,0x3F6E,INVALC,0x3F6F, - /* Range 0x6352 - 0x6354, array index: 0x085F */ - 0x3F73,0x3F74,0x3F75, - /* Range 0x63AD - 0x63AF, array index: 0x0862 */ - 0x4031,0x4032,0x4033, - /* Range 0x63D1 - 0x63D5, array index: 0x0865 */ - 0x4039,INVALC,0x403A,0x403B,0x403C, - /* Range 0x644F - 0x6454, array index: 0x086A */ - 0x405A,INVALC,0x405B,0x405C,0x405D,0x405E, - /* Range 0x645A - 0x6463, array index: 0x0870 */ - 0x405F,0x4060,0x4061,0x4062,INVALC,0x4063,0x4064,0x4065, - INVALC,0x4066, - /* Range 0x648F - 0x6491, array index: 0x087A */ - 0x406E,0x406F,0x4070, - /* Range 0x64BD - 0x64BF, array index: 0x087D */ - 0x407C,0x407D,0x407E, - /* Range 0x64C9 - 0x64D1, array index: 0x0880 */ - 0x4122,0x4123,0x4124,0x4125,INVALC,0x4126,INVALC,0x4127, - 0x4128, - /* Range 0x6508 - 0x650A, array index: 0x0889 */ - 0x4137,0x4138,0x4139, - /* Range 0x65B2 - 0x65B4, array index: 0x088C */ - 0x4161,0x4162,0x4163, - /* Range 0x65FE - 0x6600, array index: 0x088F */ - 0x4173,0x4174,0x4175, - /* Range 0x661D - 0x6633, array index: 0x0892 */ - 0x417E,0x4221,INVALC,INVALC,0x4222,0x4223,0x4224,0x4225, - INVALC,0x4226,INVALC,INVALC,0x4227,0x4228,0x4229,0x422A, - INVALC,0x422B,INVALC,0x422C,0x422D,INVALC,0x422E, - /* Range 0x6657 - 0x665C, array index: 0x08A9 */ - 0x4238,0x4239,0x423A,INVALC,0x423B,0x423C, - /* Range 0x666A - 0x666C, array index: 0x08AF */ - 0x4240,0x4241,0x4242, - /* Range 0x6675 - 0x6680, array index: 0x08B2 */ - 0x4245,INVALC,0x4247,0x4248,0x4249,INVALC,0x424A,0x424C, - INVALC,0x4243,0x4246,0x424B, - /* Range 0x668B - 0x668D, array index: 0x08BE */ - 0x424D,0x424E,0x424F, - /* Range 0x6699 - 0x66A0, array index: 0x08C1 */ - 0x4252,0x4253,0x4254,0x4255,INVALC,INVALC,0x4256,0x4257, - /* Range 0x66BF - 0x66C3, array index: 0x08C9 */ - 0x425E,0x425F,INVALC,0x4260,0x4261, - /* Range 0x67B0 - 0x67B2, array index: 0x08CE */ - 0x4331,0x4332,0x4333, - /* Range 0x67BB - 0x67BD, array index: 0x08D1 */ - 0x4335,0x4336,0x4337, - /* Range 0x682C - 0x6833, array index: 0x08D4 */ - 0x4350,0x4351,INVALC,0x4352,0x4353,0x4354,INVALC,0x4355, - /* Range 0x686E - 0x6872, array index: 0x08DC */ - 0x4361,0x4362,0x4363,0x4364,0x4365, - /* Range 0x6879 - 0x687C, array index: 0x08E1 */ - 0x4367,0x4368,0x4369,0x436A, - /* Range 0x68CF - 0x68D3, array index: 0x08E5 */ - 0x437E,0x4421,0x4422,INVALC,0x4423, - /* Range 0x68E8 - 0x68F1, array index: 0x08EA */ - 0x4429,INVALC,0x442A,0x442B,0x442C,0x442D,INVALC,INVALC, - 0x442E,0x442F, - /* Range 0x68FB - 0x68FD, array index: 0x08F4 */ - 0x4432,0x4433,0x4434, - /* Range 0x6963 - 0x6969, array index: 0x08F7 */ - 0x4448,0x4449,0x444A,0x444B,INVALC,0x444C,0x444D, - /* Range 0x6970 - 0x6972, array index: 0x08FE */ - 0x444F,0x4450,0x4451, - /* Range 0x6A4E - 0x6A56, array index: 0x0901 */ - 0x452A,INVALC,0x452B,0x452C,0x452D,INVALC,INVALC,0x452E, - 0x452F, - /* Range 0x6A9B - 0x6A9F, array index: 0x090A */ - 0x453E,INVALC,0x453F,0x4540,0x4541, - /* Range 0x6AAF - 0x6AB1, array index: 0x090F */ - 0x4544,0x4545,0x4546, - /* Range 0x6ABD - 0x6ABF, array index: 0x0912 */ - 0x4548,0x4549,0x454A, - /* Range 0x6AD4 - 0x6AD6, array index: 0x0915 */ - 0x4550,0x4551,0x4552, - /* Range 0x6AF0 - 0x6AF2, array index: 0x0918 */ - 0x4558,0x4559,0x455A, - /* Range 0x6B0F - 0x6B11, array index: 0x091B */ - 0x4562,0x4563,0x4564, - /* Range 0x6B9F - 0x6BA3, array index: 0x091E */ - 0x4626,0x4627,INVALC,0x4628,0x4629, - /* Range 0x6BA8 - 0x6BB0, array index: 0x0923 */ - 0x462A,0x462B,INVALC,INVALC,0x462C,0x462D,0x462E,INVALC, - 0x462F, - /* Range 0x6C26 - 0x6C28, array index: 0x092C */ - 0x464D,0x464E,0x464F, - /* Range 0x6C85 - 0x6C89, array index: 0x092F */ - 0x4669,0x466A,0x466B,INVALC,0x466C, - /* Range 0x6C94 - 0x6C98, array index: 0x0934 */ - 0x466D,0x466E,INVALC,0x466F,0x4670, - /* Range 0x6CCD - 0x6CD6, array index: 0x0939 */ - 0x4678,INVALC,0x4679,0x467A,0x467B,0x467C,INVALC,0x467D, - INVALC,0x467E, - /* Range 0x6D26 - 0x6D28, array index: 0x0943 */ - 0x4733,0x4734,0x4735, - /* Range 0x6D94 - 0x6D98, array index: 0x0946 */ - 0x474A,INVALC,0x474B,0x474C,0x474D, - /* Range 0x6E4F - 0x6E54, array index: 0x094B */ - 0x4776,INVALC,0x4777,0x4778,0x4779,0x477A, - /* Range 0x6E5C - 0x6E5E, array index: 0x0951 */ - 0x477C,0x477D,0x477E, - /* Range 0x6EBF - 0x6EC3, array index: 0x0954 */ - 0x4831,0x4832,0x4833,INVALC,0x4834, - /* Range 0x6ECD - 0x6ECF, array index: 0x0959 */ - 0x4838,0x4839,0x483A, - /* Range 0x6F4F - 0x6F53, array index: 0x095C */ - 0x4854,INVALC,0x4855,0x4856,0x4857, - /* Range 0x6F87 - 0x6F8D, array index: 0x0961 */ - 0x4864,0x4865,INVALC,INVALC,0x4866,0x4867,0x4868, - /* Range 0x6F90 - 0x6F96, array index: 0x0968 */ - 0x4869,INVALC,0x486A,0x486B,0x486C,INVALC,0x486D, - /* Range 0x6FA5 - 0x6FA8, array index: 0x096F */ - 0x4871,0x4872,0x4873,0x4874, - /* Range 0x6FAE - 0x6FB0, array index: 0x0973 */ - 0x4875,0x4876,0x4877, - /* Range 0x7005 - 0x7007, array index: 0x0976 */ - 0x492B,0x492C,0x492D, - /* Range 0x7048 - 0x704B, array index: 0x0979 */ - 0x4939,0x493A,0x493B,0x493C, - /* Range 0x7094 - 0x7098, array index: 0x097D */ - 0x494C,0x494D,0x494E,0x494F,0x4950, - /* Range 0x70D1 - 0x70D8, array index: 0x0982 */ - 0x4959,INVALC,0x495A,0x495B,0x495C,0x495D,INVALC,0x495E, - /* Range 0x7103 - 0x7107, array index: 0x098A */ - 0x4962,0x4963,0x4964,0x4965,0x4966, - /* Range 0x712D - 0x7131, array index: 0x098F */ - 0x496D,INVALC,0x496E,0x496F,0x4970, - /* Range 0x7145 - 0x714B, array index: 0x0994 */ - 0x4973,0x4974,0x4975,INVALC,INVALC,0x4976,0x4977, - /* Range 0x71AF - 0x71B3, array index: 0x099B */ - 0x4A2C,0x4A2D,INVALC,0x4A2E,0x4A2F, - /* Range 0x71BF - 0x71C1, array index: 0x09A0 */ - 0x4A31,0x4A32,0x4A33, - /* Range 0x7207 - 0x7209, array index: 0x09A3 */ - 0x4A3F,0x4A40,0x4A41, - /* Range 0x7241 - 0x7245, array index: 0x09A6 */ - 0x4A4D,0x4A4E,0x4A4F,INVALC,0x4A50, - /* Range 0x724E - 0x7250, array index: 0x09AB */ - 0x4A51,0x4A52,0x4A53, - /* Range 0x735D - 0x7360, array index: 0x09AE */ - 0x4B3E,0x4B3F,0x4B40,0x4B41, - /* Range 0x736B - 0x7371, array index: 0x09B2 */ - 0x4B45,0x4B46,INVALC,0x4B47,0x4B48,INVALC,0x4B49, - /* Range 0x739C - 0x73A6, array index: 0x09B9 */ - 0x4B58,INVALC,0x4B59,0x4B5A,0x4B5B,INVALC,0x4B5C,INVALC, - INVALC,0x4B5D,0x4B5E, - /* Range 0x73F7 - 0x7401, array index: 0x09C4 */ - 0x4B7A,INVALC,0x4B7B,0x4B7C,0x4B7D,INVALC,0x4B7E,INVALC, - 0x4C21,0x4C22,0x4C23, - /* Range 0x7426 - 0x7431, array index: 0x09CF */ - 0x4C2B,INVALC,0x4C2C,0x4C2D,0x4C2E,0x4C2F,0x4C30,0x4C31, - 0x4C32,0x4C33,0x4C34,0x4C35, - /* Range 0x7443 - 0x7447, array index: 0x09DB */ - 0x4C38,0x4C39,INVALC,0x4C3A,0x4C3B, - /* Range 0x7466 - 0x7468, array index: 0x09E0 */ - 0x4C43,0x4C44,0x4C45, - /* Range 0x7485 - 0x7489, array index: 0x09E3 */ - 0x4C4D,0x4C4E,0x4C4F,INVALC,0x4C50, - /* Range 0x748F - 0x7492, array index: 0x09E8 */ - 0x4C51,0x4C52,0x4C53,0x4C54, - /* Range 0x7498 - 0x74A3, array index: 0x09EC */ - 0x4C55,0x4C56,0x4C57,INVALC,0x4C58,INVALC,INVALC,0x4C59, - 0x4C5A,0x4C5B,INVALC,0x4C5C, - /* Range 0x74A6 - 0x74B2, array index: 0x09F8 */ - 0x4C5D,INVALC,0x4C5E,0x4C5F,0x4C60,0x4C61,INVALC,INVALC, - 0x4C62,0x4C63,INVALC,0x4C64,0x4C65, - /* Range 0x74FA - 0x74FC, array index: 0x0A05 */ - 0x4C7A,0x4C7B,0x4C7C, - /* Range 0x753D - 0x7540, array index: 0x0A08 */ - 0x4D2D,0x4D2E,0x4D2F,0x4D30, - /* Range 0x7579 - 0x757E, array index: 0x0A0C */ - 0x4D3D,0x4D3E,0x4D3F,0x4D40,0x4D41,0x4D42, - /* Range 0x75BF - 0x75C1, array index: 0x0A12 */ - 0x4D4F,0x4D50,0x4D51, - /* Range 0x75DF - 0x75E1, array index: 0x0A15 */ - 0x4D59,0x4D5A,0x4D5B, - /* Range 0x7600 - 0x760C, array index: 0x0A18 */ - 0x4D63,INVALC,0x4D64,0x4D65,0x4D66,INVALC,INVALC,0x4D67, - 0x4D68,INVALC,0x4D69,INVALC,0x4D6A, - /* Range 0x7612 - 0x7616, array index: 0x0A25 */ - 0x4D6C,0x4D6D,INVALC,0x4D6E,0x4D6F, - /* Range 0x7619 - 0x761E, array index: 0x0A2A */ - 0x4D70,INVALC,0x4D71,0x4D72,0x4D73,0x4D74, - /* Range 0x7638 - 0x763C, array index: 0x0A30 */ - 0x4D7D,0x4D7E,0x4E21,INVALC,0x4E22, - /* Range 0x7640 - 0x764B, array index: 0x0A35 */ - 0x4E24,0x4E25,INVALC,0x4E26,0x4E27,0x4E28,INVALC,INVALC, - INVALC,0x4E29,0x4E23,0x4E2A, - /* Range 0x766D - 0x7671, array index: 0x0A41 */ - 0x4E30,0x4E31,0x4E32,INVALC,0x4E33, - /* Range 0x769B - 0x76AA, array index: 0x0A46 */ - 0x4E3A,0x4E3B,0x4E3C,INVALC,0x4E3D,0x4E3E,INVALC,0x4E3F, - 0x4E40,0x4E41,0x4E42,0x4E43,0x4E44,0x4E45,INVALC,0x4E46, - /* Range 0x772D - 0x772F, array index: 0x0A56 */ - 0x4E67,0x4E68,0x4E69, - /* Range 0x7734 - 0x7736, array index: 0x0A59 */ - 0x4E6A,0x4E6B,0x4E6C, - /* Range 0x774D - 0x774F, array index: 0x0A5C */ - 0x4E74,0x4E75,0x4E76, - /* Range 0x775C - 0x7764, array index: 0x0A5F */ - 0x4E7A,INVALC,0x4E7B,0x4E7C,0x4E7D,INVALC,0x4E7E,INVALC, - 0x4F21, - /* Range 0x7770 - 0x7774, array index: 0x0A68 */ - 0x4F25,INVALC,0x4F26,0x4F27,0x4F28, - /* Range 0x7794 - 0x7796, array index: 0x0A6D */ - 0x4F2F,0x4F30,0x4F31, - /* Range 0x77DE - 0x77E0, array index: 0x0A70 */ - 0x4F42,0x4F43,0x4F44, - /* Range 0x7821 - 0x7823, array index: 0x0A73 */ - 0x4F55,0x4F56,0x4F57, - /* Range 0x7860 - 0x7864, array index: 0x0A76 */ - 0x4F66,0x4F67,INVALC,0x4F68,0x4F69, - /* Range 0x789D - 0x78A1, array index: 0x0A7B */ - 0x4F74,0x4F75,0x4F76,INVALC,0x4F73, - /* Range 0x78AC - 0x78B3, array index: 0x0A80 */ - 0x4F79,0x4F7A,INVALC,INVALC,0x4F7B,0x4F7C,0x4F7D,0x4F7E, - /* Range 0x78C7 - 0x78C9, array index: 0x0A88 */ - 0x5024,0x5025,0x5026, - /* Range 0x78D2 - 0x78D6, array index: 0x0A8B */ - 0x5029,0x502A,INVALC,0x502B,0x502C, - /* Range 0x78DF - 0x78E1, array index: 0x0A90 */ - 0x502F,0x5030,0x5031, - /* Range 0x791C - 0x7920, array index: 0x0A93 */ - 0x5040,INVALC,0x5041,0x5042,0x5043, - /* Range 0x7944 - 0x7946, array index: 0x0A98 */ - 0x504E,0x504F,0x5050, - /* Range 0x7991 - 0x799C, array index: 0x0A9B */ - 0x5063,INVALC,0x5064,0x5065,0x5066,0x5067,INVALC,0x5068, - INVALC,INVALC,0x5069,0x506A, - /* Range 0x7A34 - 0x7A3A, array index: 0x0AA7 */ - 0x513A,0x513B,INVALC,INVALC,0x513C,0x513D,0x513E, - /* Range 0x7A44 - 0x7A48, array index: 0x0AAE */ - 0x513F,0x5140,INVALC,0x5141,0x5142, - /* Range 0x7A5C - 0x7A60, array index: 0x0AB3 */ - 0x5147,0x5148,INVALC,0x5149,0x514A, - /* Range 0x7AE8 - 0x7AEC, array index: 0x0AB8 */ - 0x516A,0x516B,INVALC,0x516C,0x516D, - /* Range 0x7B27 - 0x7B31, array index: 0x0ABD */ - 0x5177,INVALC,0x5178,0x5179,0x517A,INVALC,0x517B,0x517C, - 0x517D,0x517E,0x5221, - /* Range 0x7B3D - 0x7B41, array index: 0x0AC8 */ - 0x5223,INVALC,0x5224,0x5225,0x5226, - /* Range 0x7BBA - 0x7BBD, array index: 0x0ACD */ - 0x5244,0x5245,0x5246,0x5247, - /* Range 0x7BD6 - 0x7BDB, array index: 0x0AD1 */ - 0x524D,0x524E,INVALC,0x524F,0x5250,0x5251, - /* Range 0x7BF4 - 0x7C06, array index: 0x0AD7 */ - 0x5255,0x5256,INVALC,INVALC,0x5257,0x5258,0x5259,INVALC, - 0x525A,INVALC,0x525B,INVALC,INVALC,0x525C,0x525D,0x525E, - 0x525F,INVALC,0x5260, - /* Range 0x7C0B - 0x7C0F, array index: 0x0AEA */ - 0x5262,0x5263,INVALC,0x5264,0x5265, - /* Range 0x7C51 - 0x7C5E, array index: 0x0AEF */ - 0x5276,0x5277,0x5278,INVALC,0x5275,INVALC,INVALC,INVALC, - 0x5279,0x527A,0x527B,0x527C,0x527D,0x527E, - /* Range 0x7CB6 - 0x7CBC, array index: 0x0AFD */ - 0x5334,0x5335,INVALC,INVALC,0x5336,0x5337,0x5338, - /* Range 0x7CC7 - 0x7CC9, array index: 0x0B04 */ - 0x533B,0x533C,0x533D, - /* Range 0x7CD3 - 0x7CDA, array index: 0x0B07 */ - 0x5340,0x5341,0x5342,INVALC,0x5343,INVALC,0x5344,0x5345, - /* Range 0x7D07 - 0x7D09, array index: 0x0B0F */ - 0x534C,0x534D,0x534E, - /* Range 0x7D0F - 0x7D13, array index: 0x0B12 */ - 0x534F,INVALC,0x5350,0x5351,0x5352, - /* Range 0x7D3C - 0x7D41, array index: 0x0B17 */ - 0x535B,0x535C,0x535D,INVALC,0x535E,0x535F, - /* Range 0x7D59 - 0x7D5D, array index: 0x0B1D */ - 0x5366,0x5367,INVALC,0x5368,0x5369, - /* Range 0x7D7F - 0x7D8D, array index: 0x0B22 */ - 0x5371,INVALC,0x5372,0x5373,0x5374,INVALC,0x5375,0x5376, - INVALC,0x5377,INVALC,INVALC,0x5378,0x5379,0x537A, - /* Range 0x7DC2 - 0x7DC6, array index: 0x0B31 */ - 0x5429,0x542A,0x542B,0x542C,0x542D, - /* Range 0x7DCC - 0x7DCE, array index: 0x0B36 */ - 0x542E,0x542F,0x5430, - /* Range 0x7F3B - 0x7F3F, array index: 0x0B39 */ - 0x546C,0x546B,0x546D,0x546E,0x546F, - /* Range 0x7F5B - 0x7F5D, array index: 0x0B3E */ - 0x5476,0x5477,0x5478, - /* Range 0x7F61 - 0x7F66, array index: 0x0B41 */ - 0x5479,INVALC,0x547A,0x547B,0x547C,0x547D, - /* Range 0x7F7D - 0x7F80, array index: 0x0B47 */ - 0x5522,0x5523,0x5524,0x5525, - /* Range 0x7F8D - 0x7F91, array index: 0x0B4B */ - 0x5527,INVALC,0x5528,0x5529,0x552A, - /* Range 0x7FFD - 0x7FFF, array index: 0x0B50 */ - 0x5545,0x5546,0x5547, - /* Range 0x800D - 0x8016, array index: 0x0B53 */ - 0x554B,0x554C,0x554D,INVALC,0x554E,INVALC,0x554F,0x5550, - INVALC,0x5551, - /* Range 0x801D - 0x8020, array index: 0x0B5D */ - 0x5552,0x5553,0x5554,0x5555, - /* Range 0x80D4 - 0x80D8, array index: 0x0B61 */ - 0x5578,0x5579,INVALC,0x557A,0x557B, - /* Range 0x8116 - 0x8118, array index: 0x0B66 */ - 0x562A,0x562B,0x562C, - /* Range 0x8167 - 0x8169, array index: 0x0B69 */ - 0x563F,0x5640,0x5641, - /* Range 0x8184 - 0x8186, array index: 0x0B6C */ - 0x5647,0x5648,0x5649, - /* Range 0x81F0 - 0x81F9, array index: 0x0B6F */ - 0x5664,0x5665,0x5666,INVALC,INVALC,0x5667,0x5668,INVALC, - 0x5669,0x566A, - /* Range 0x8243 - 0x8246, array index: 0x0B79 */ - 0x567B,0x567C,0x567D,0x567E, - /* Range 0x827D - 0x8284, array index: 0x0B7D */ - 0x572D,INVALC,0x572E,0x572F,0x5730,INVALC,0x5731,0x5732, - /* Range 0x82A0 - 0x82AA, array index: 0x0B85 */ - 0x573D,0x573E,INVALC,0x573F,0x5740,INVALC,INVALC,0x5741, - 0x5742,0x5743,0x5744, - /* Range 0x82FD - 0x8301, array index: 0x0B90 */ - 0x575B,0x575C,INVALC,0x575D,0x575E, - /* Range 0x8307 - 0x830B, array index: 0x0B95 */ - 0x575F,0x5760,INVALC,0x5761,0x5762, - /* Range 0x831B - 0x8322, array index: 0x0B9A */ - 0x5764,INVALC,0x5765,0x5766,0x5767,INVALC,0x5768,0x5769, - /* Range 0x832C - 0x8330, array index: 0x0BA2 */ - 0x576A,0x576B,0x576C,INVALC,0x576D, - /* Range 0x8342 - 0x8344, array index: 0x0BA7 */ - 0x5773,0x5774,0x5775, - /* Range 0x8351 - 0x8357, array index: 0x0BAA */ - 0x5779,INVALC,0x583E,0x5763,0x577A,0x577B,0x577C, - /* Range 0x8398 - 0x839D, array index: 0x0BB1 */ - 0x582B,0x582C,INVALC,0x582D,0x582E,0x582F, - /* Range 0x83BE - 0x83C0, array index: 0x0BB7 */ - 0x5834,0x5835,0x5836, - /* Range 0x83CF - 0x83D1, array index: 0x0BBA */ - 0x5839,0x583A,0x583B, - /* Range 0x8456 - 0x845C, array index: 0x0BBD */ - 0x5857,INVALC,0x5858,0x5859,0x585A,INVALC,0x585B, - /* Range 0x84A6 - 0x84AA, array index: 0x0BC4 */ - 0x586E,INVALC,0x586F,0x5870,0x5871, - /* Range 0x84EF - 0x84F2, array index: 0x0BC9 */ - 0x5924,0x5925,0x5926,0x5927, - /* Range 0x8522 - 0x852B, array index: 0x0BCD */ - 0x5935,0x5936,0x5937,0x5938,INVALC,0x5939,INVALC,INVALC, - 0x593A,0x593B, - /* Range 0x8532 - 0x8536, array index: 0x0BD7 */ - 0x5929,0x593D,0x593E,INVALC,0x593F, - /* Range 0x854F - 0x8553, array index: 0x0BDC */ - 0x5942,0x5943,0x5944,0x5945,0x5946, - /* Range 0x855C - 0x8564, array index: 0x0BE1 */ - 0x5949,0x594A,0x594B,0x594C,0x594D,0x594E,0x594F,INVALC, - 0x5950, - /* Range 0x8579 - 0x8581, array index: 0x0BEA */ - 0x5953,0x5954,0x5955,INVALC,0x5956,INVALC,0x5957,INVALC, - 0x5958, - /* Range 0x85B4 - 0x85BF, array index: 0x0BF3 */ - 0x5967,INVALC,0x5968,0x5969,0x596A,INVALC,INVALC,INVALC, - 0x596B,0x596C,0x596D,0x596E, - /* Range 0x860D - 0x8612, array index: 0x0BFF */ - 0x5A25,0x5A26,INVALC,0x5A27,0x5A28,0x5A29, - /* Range 0x863C - 0x8642, array index: 0x0C05 */ - 0x5A34,0x5A35,INVALC,INVALC,0x5A36,0x3866,0x5A37, - /* Range 0x8652 - 0x8659, array index: 0x0C0C */ - 0x5A39,0x5A3A,INVALC,INVALC,0x5A3B,0x5A3C,0x5A3D,0x5A3E, - /* Range 0x8660 - 0x8664, array index: 0x0C14 */ - 0x5A40,0x5A41,0x5A42,0x5A43,0x5A44, - /* Range 0x8675 - 0x8677, array index: 0x0C19 */ - 0x5A48,0x5A49,0x5A4A, - /* Range 0x86A6 - 0x86A8, array index: 0x0C1C */ - 0x5A53,0x5A54,0x5A55, - /* Range 0x86B1 - 0x86B9, array index: 0x0C1F */ - 0x5A57,INVALC,0x5A58,0x5A59,0x5A5A,INVALC,0x5A5B,0x5A5C, - 0x5A5D, - /* Range 0x86BF - 0x86C5, array index: 0x0C28 */ - 0x5A5E,0x5A5F,0x5A60,INVALC,0x5A61,INVALC,0x5A62, - /* Range 0x870E - 0x8714, array index: 0x0C2F */ - 0x5A75,0x5A76,0x5A77,INVALC,INVALC,0x5A78,0x5A79, - /* Range 0x872E - 0x8732, array index: 0x0C36 */ - 0x5B22,0x5B23,INVALC,0x5B24,0x5B25, - /* Range 0x8739 - 0x8740, array index: 0x0C3B */ - 0x5B26,0x5B27,INVALC,0x5B28,0x5B29,0x5B2A,INVALC,0x5B2B, - /* Range 0x8783 - 0x878C, array index: 0x0C43 */ - 0x5B38,0x5B39,0x5B3A,0x5B3B,0x5B3C,0x5B3D,0x5B3E,INVALC, - 0x5B3F,0x5B40, - /* Range 0x8795 - 0x8799, array index: 0x0C4D */ - 0x5B43,INVALC,0x5B44,0x5B45,0x5B46, - /* Range 0x87AC - 0x87AE, array index: 0x0C52 */ - 0x5B4B,0x5B4C,0x5B4D, - /* Range 0x87C8 - 0x87CA, array index: 0x0C55 */ - 0x5B53,0x5B54,0x5B55, - /* Range 0x87E2 - 0x87E4, array index: 0x0C58 */ - 0x5B5D,0x5B5E,0x5B5F, - /* Range 0x8809 - 0x880B, array index: 0x0C5B */ - 0x5B6B,0x5B6C,0x5B6D, - /* Range 0x8810 - 0x881F, array index: 0x0C5E */ - 0x5B6E,INVALC,0x5B70,0x5B71,0x5B72,INVALC,INVALC,INVALC, - 0x5B73,0x5B6F,0x5B74,0x5B75,0x5B76,INVALC,0x5B77,0x5B78, - /* Range 0x8848 - 0x884B, array index: 0x0C6E */ - 0x5C26,0x5C27,0x5C28,0x5C29, - /* Range 0x8898 - 0x88A0, array index: 0x0C72 */ - 0x5C39,INVALC,0x5C3A,0x5C3B,0x5C3C,INVALC,INVALC,0x5C3D, - 0x5C3E, - /* Range 0x88CA - 0x88D3, array index: 0x0C7B */ - 0x5C45,0x5C46,0x5C47,0x5C48,0x5C49,INVALC,INVALC,0x5C4A, - 0x5C4B,0x5C4C, - /* Range 0x88EF - 0x88F1, array index: 0x0C85 */ - 0x5C50,0x5C51,0x5C52, - /* Range 0x890D - 0x890F, array index: 0x0C88 */ - 0x5C57,0x5C58,0x5C59, - /* Range 0x8915 - 0x891C, array index: 0x0C8B */ - 0x5C5A,0x5C5B,INVALC,0x5C5C,0x5C5D,0x5C5E,INVALC,0x5C5F, - /* Range 0x8926 - 0x8928, array index: 0x0C93 */ - 0x5C61,0x5C62,0x5C63, - /* Range 0x8930 - 0x8932, array index: 0x0C96 */ - 0x5C64,0x5C65,0x5C66, - /* Range 0x895A - 0x895C, array index: 0x0C99 */ - 0x5C73,0x5C74,0x5C75, - /* Range 0x8961 - 0x8963, array index: 0x0C9C */ - 0x5C76,0x5C77,0x5C78, - /* Range 0x897A - 0x897D, array index: 0x0C9F */ - 0x5C7E,0x5D21,0x5D22,0x5D23, - /* Range 0x89B4 - 0x89B7, array index: 0x0CA3 */ - 0x5D2F,0x5D30,0x5D31,0x5D32, - /* Range 0x89D4 - 0x89D8, array index: 0x0CA7 */ - 0x5D34,0x5D35,0x5D36,0x5D37,0x5D38, - /* Range 0x8A11 - 0x8A15, array index: 0x0CAC */ - 0x5D47,0x5D48,INVALC,0x5D49,0x5D4A, - /* Range 0x8A56 - 0x8A58, array index: 0x0CB1 */ - 0x5D5F,0x5D60,0x5D61, - /* Range 0x8A75 - 0x8A80, array index: 0x0CB4 */ - 0x5D67,0x5D68,0x5D69,INVALC,0x5D6A,0x5D6B,0x5D6C,INVALC, - INVALC,0x5D6D,0x5D6E,0x5D6F, - /* Range 0x8AC6 - 0x8ACA, array index: 0x0CC0 */ - 0x5E26,INVALC,0x5E27,0x5E28,0x5E29, - /* Range 0x8AD1 - 0x8AD7, array index: 0x0CC5 */ - 0x5E2A,INVALC,0x5E2B,0x5E2C,0x5E2D,INVALC,0x5E2E, - /* Range 0x8AF4 - 0x8AF6, array index: 0x0CCC */ - 0x5E33,0x5E34,0x5E35, - /* Range 0x8B42 - 0x8B48, array index: 0x0CCF */ - 0x5E44,0x5E45,0x5E46,0x5E47,0x5E48,INVALC,0x5E49, - /* Range 0x8B52 - 0x8B54, array index: 0x0CD6 */ - 0x5E4A,0x5E4B,0x5E4C, - /* Range 0x8C53 - 0x8C5D, array index: 0x0CD9 */ - 0x5E6C,0x5E6D,INVALC,INVALC,0x5E6E,0x5E6F,0x5E72,INVALC, - 0x5E70,INVALC,0x5E71, - /* Range 0x8D9E - 0x8DA0, array index: 0x0CE4 */ - 0x5F52,0x5F53,0x5F54, - /* Range 0x8DC5 - 0x8DCA, array index: 0x0CE7 */ - 0x5F5F,0x5F60,0x5F61,0x5F62,INVALC,0x5F63, - /* Range 0x8DF0 - 0x8DF4, array index: 0x0CED */ - 0x5F6E,0x5F70,0x5F71,INVALC,0x5F72, - /* Range 0x8E04 - 0x8E06, array index: 0x0CF2 */ - 0x5F75,0x5F76,0x5F77, - /* Range 0x8E20 - 0x8E27, array index: 0x0CF5 */ - 0x5F7C,0x5F7D,0x5F7E,0x6021,INVALC,INVALC,0x6022,0x6023, - /* Range 0x8E36 - 0x8E39, array index: 0x0CFD */ - 0x6026,0x6027,0x6028,0x6029, - /* Range 0x8E4B - 0x8E4F, array index: 0x0D01 */ - 0x602D,INVALC,0x602E,0x602F,0x6030, - /* Range 0x8E5B - 0x8E62, array index: 0x0D06 */ - 0x6032,0x6033,0x6034,0x6035,INVALC,INVALC,0x6036,0x6037, - /* Range 0x8E6C - 0x8E71, array index: 0x0D0E */ - 0x6039,0x603A,INVALC,0x603B,0x603C,0x603D, - /* Range 0x8E79 - 0x8E7B, array index: 0x0D14 */ - 0x603E,0x603F,0x6040, - /* Range 0x8E9A - 0x8E9E, array index: 0x0D17 */ - 0x6047,0x6048,INVALC,0x6049,0x604A, - /* Range 0x8EC0 - 0x8EC4, array index: 0x0D1C */ - 0x6054,0x6055,INVALC,0x6056,0x6057, - /* Range 0x8EED - 0x8EF1, array index: 0x0D21 */ - 0x6064,0x605E,INVALC,0x605F,0x6060, - /* Range 0x8F16 - 0x8F18, array index: 0x0D26 */ - 0x606B,0x606C,0x606D, - /* Range 0x8F2C - 0x8F2E, array index: 0x0D29 */ - 0x6075,0x6076,0x6077, - /* Range 0x8F34 - 0x8F37, array index: 0x0D2C */ - 0x6078,0x6079,0x607A,0x607B, - /* Range 0x8F4F - 0x8F55, array index: 0x0D30 */ - 0x6123,INVALC,0x6124,0x6125,0x6126,0x6127,0x6128, - /* Range 0x8FA0 - 0x8FA6, array index: 0x0D37 */ - 0x612E,0x612F,INVALC,INVALC,0x6130,0x6131,0x6132, - /* Range 0x9028 - 0x902F, array index: 0x0D3E */ - 0x6151,0x6152,0x6154,INVALC,0x6155,0x6156,INVALC,0x6153, - /* Range 0x9095 - 0x909B, array index: 0x0D46 */ - 0x616D,INVALC,0x616E,0x616F,0x6170,INVALC,0x6171, - /* Range 0x90A0 - 0x90A2, array index: 0x0D4D */ - 0x6172,0x6173,0x6174, - /* Range 0x90B0 - 0x90B6, array index: 0x0D50 */ - 0x6176,INVALC,0x6177,0x6178,0x6179,INVALC,0x617A, - /* Range 0x90C3 - 0x90C8, array index: 0x0D57 */ - 0x617E,0x6221,0x6222,INVALC,0x6223,0x6224, - /* Range 0x90D5 - 0x90DF, array index: 0x0D5D */ - 0x6225,INVALC,0x6226,0x6227,0x6228,INVALC,INVALC,0x6229, - 0x622A,INVALC,0x622B, - /* Range 0x90FE - 0x9108, array index: 0x0D68 */ - 0x6233,0x6234,0x6235,INVALC,INVALC,INVALC,0x6236,0x6237, - 0x6238,INVALC,0x6239, - /* Range 0x9114 - 0x9129, array index: 0x0D73 */ - 0x623C,INVALC,0x623D,0x623E,0x623F,INVALC,0x6240,INVALC, - 0x6241,INVALC,0x6242,INVALC,0x6243,INVALC,0x6245,0x6246, - INVALC,0x6244,INVALC,0x6247,INVALC,0x6248, - /* Range 0x9136 - 0x913D, array index: 0x0D89 */ - 0x624D,0x624E,INVALC,0x624F,0x6250,INVALC,0x6251,0x6252, - /* Range 0x9157 - 0x915B, array index: 0x0D91 */ - 0x6258,INVALC,0x6259,0x625A,0x625B, - /* Range 0x9179 - 0x917B, array index: 0x0D96 */ - 0x6261,0x6262,0x6263, - /* Range 0x9191 - 0x9195, array index: 0x0D99 */ - 0x626A,INVALC,0x626B,0x626C,0x626D, - /* Range 0x91AC - 0x91B3, array index: 0x0D9E */ - 0x6273,0x6274,0x6275,INVALC,0x6276,0x6277,0x6278,0x6279, - /* Range 0x91BB - 0x91C5, array index: 0x0DA6 */ - 0x627B,0x627C,0x627D,INVALC,0x627E,INVALC,INVALC,0x6321, - 0x6322,INVALC,0x6323, - /* Range 0x91E9 - 0x91F1, array index: 0x0DB1 */ - 0x632C,0x632D,INVALC,0x632E,0x632F,0x6330,0x6331,0x6332, - 0x6333, - /* Range 0x9200 - 0x920C, array index: 0x0DBA */ - 0x6338,0x6339,INVALC,INVALC,0x633A,0x633B,0x633C,0x633D, - INVALC,0x633E,0x633F,INVALC,0x6340, - /* Range 0x9223 - 0x9228, array index: 0x0DC7 */ - 0x6348,0x6349,0x634A,0x634B,INVALC,0x634C, - /* Range 0x922E - 0x9230, array index: 0x0DCD */ - 0x634D,0x634E,0x634F, - /* Range 0x9235 - 0x9247, array index: 0x0DD0 */ - 0x6351,0x6352,INVALC,0x6353,0x6354,0x6355,INVALC,0x6356, - INVALC,0x6357,INVALC,0x6358,INVALC,0x6359,0x635A,INVALC, - INVALC,0x635B,0x635C, - /* Range 0x924D - 0x9251, array index: 0x0DE3 */ - 0x635E,0x635F,0x6360,INVALC,0x6361, - /* Range 0x9265 - 0x9269, array index: 0x0DE8 */ - 0x6368,INVALC,0x6369,0x636A,0x636B, - /* Range 0x926E - 0x9270, array index: 0x0DED */ - 0x636C,0x636D,0x636E, - /* Range 0x9275 - 0x927F, array index: 0x0DF0 */ - 0x636F,0x6370,0x6371,0x6372,0x6373,INVALC,0x6374,0x6375, - 0x6376,INVALC,0x6377, - /* Range 0x9288 - 0x928E, array index: 0x0DFB */ - 0x6378,0x6379,0x637A,INVALC,INVALC,0x637B,0x637C, - /* Range 0x92A4 - 0x92A8, array index: 0x0E02 */ - 0x6424,0x6425,INVALC,0x6426,0x6427, - /* Range 0x92B8 - 0x92D0, array index: 0x0E07 */ - 0x642C,INVALC,0x642D,0x642E,0x642F,0x6430,INVALC,0x6431, - 0x6432,0x6433,0x6434,0x6435,INVALC,0x6436,0x6437,0x6438, - 0x6439,INVALC,INVALC,0x643A,0x643B,0x643C,0x643D,INVALC, - 0x643E, - /* Range 0x92D5 - 0x92E8, array index: 0x0E20 */ - 0x6440,INVALC,0x6441,0x6442,0x6443,INVALC,INVALC,0x6444, - 0x6445,INVALC,0x6446,0x6447,0x6448,INVALC,0x6449,INVALC, - 0x644A,INVALC,0x644B,0x644C, - /* Range 0x931C - 0x932A, array index: 0x0E34 */ - 0x645A,0x645B,0x645C,0x645D,INVALC,0x645E,INVALC,INVALC, - 0x645F,0x6460,INVALC,0x6461,INVALC,0x6462,0x6463, - /* Range 0x9333 - 0x9337, array index: 0x0E43 */ - 0x6464,0x6465,INVALC,0x6466,0x6467, - /* Range 0x9347 - 0x9349, array index: 0x0E48 */ - 0x6468,0x6469,0x646A, - /* Range 0x9350 - 0x9352, array index: 0x0E4B */ - 0x646B,0x646C,0x646D, - /* Range 0x936D - 0x9376, array index: 0x0E4E */ - 0x6478,INVALC,0x6479,0x647A,0x647B,INVALC,0x647C,0x647D, - INVALC,0x647E, - /* Range 0x937D - 0x9382, array index: 0x0E58 */ - 0x6522,INVALC,0x6523,0x6524,0x6525,0x6526, - /* Range 0x93B4 - 0x93B6, array index: 0x0E5E */ - 0x6537,0x6538,0x6539, - /* Range 0x93C4 - 0x93CD, array index: 0x0E61 */ - 0x653D,0x653E,0x653F,0x6540,INVALC,0x6541,0x6542,0x6543, - 0x6544,0x6545, - /* Range 0x93F7 - 0x93FD, array index: 0x0E6B */ - 0x654F,0x6550,0x654E,0x6551,0x6552,INVALC,0x6553, - /* Range 0x940D - 0x940F, array index: 0x0E72 */ - 0x6559,0x655A,0x655B, - /* Range 0x9415 - 0x9417, array index: 0x0E75 */ - 0x655C,0x655D,0x655E, - /* Range 0x942E - 0x9434, array index: 0x0E78 */ - 0x6560,0x6561,INVALC,0x6562,0x6563,0x6564,0x6565, - /* Range 0x946B - 0x9472, array index: 0x0E7F */ - 0x6575,INVALC,0x6576,0x6577,0x6578,INVALC,0x6579,0x657A, - /* Range 0x958C - 0x958E, array index: 0x0E87 */ - 0x6624,0x6625,0x6626, - /* Range 0x959D - 0x95A1, array index: 0x0E8A */ - 0x6627,0x6628,0x6629,INVALC,0x662A, - /* Range 0x95D0 - 0x95D3, array index: 0x0E8F */ - 0x6638,0x6639,0x663A,0x663B, - /* Range 0x95D9 - 0x95E0, array index: 0x0E93 */ - 0x663C,0x663D,INVALC,INVALC,0x663E,0x663F,0x6640,0x6641, - /* Range 0x9622 - 0x9626, array index: 0x0E9B */ - 0x6646,INVALC,0x6647,0x6648,0x6649, - /* Range 0x9637 - 0x963D, array index: 0x0EA0 */ - 0x664D,0x664E,0x664F,0x6650,INVALC,0x6651,0x6652, - /* Range 0x9654 - 0x9658, array index: 0x0EA7 */ - 0x6655,INVALC,0x6656,0x6657,0x6658, - /* Range 0x967B - 0x9684, array index: 0x0EAC */ - 0x665C,0x665D,INVALC,0x665E,0x665F,INVALC,0x6660,0x6661, - 0x6662,0x6663, - /* Range 0x96A4 - 0x96A6, array index: 0x0EB6 */ - 0x666A,0x666B,0x666C, - /* Range 0x96DD - 0x96DF, array index: 0x0EB9 */ - 0x6677,0x6678,0x6679, - /* Range 0x9721 - 0x9723, array index: 0x0EBC */ - 0x6727,0x6728,0x6729, - /* Range 0x9757 - 0x975B, array index: 0x0EBF */ - 0x6733,0x6734,INVALC,0x6735,0x6736, - /* Range 0x9776 - 0x9778, array index: 0x0EC4 */ - 0x673C,0x673D,0x673E, - /* Range 0x9795 - 0x979A, array index: 0x0EC7 */ - 0x6744,0x6745,0x6746,INVALC,0x6747,0x6748, - /* Range 0x97B5 - 0x97D1, array index: 0x0ECD */ - 0x6750,0x6751,INVALC,0x6752,0x6753,0x6754,INVALC,0x6755, - INVALC,0x6756,0x6757,INVALC,0x6758,INVALC,INVALC,0x6759, - 0x675A,INVALC,0x675B,INVALC,0x675C,0x675D,INVALC,0x675E, - 0x675F,0x6760,INVALC,0x6761,0x6762, - /* Range 0x97D7 - 0x97E1, array index: 0x0EEA */ - 0x6764,0x6765,0x6766,INVALC,0x676A,INVALC,0x6767,0x6768, - INVALC,0x6769,0x676B, - /* Range 0x982E - 0x9835, array index: 0x0EF5 */ - 0x6822,0x6823,0x6824,INVALC,0x6825,0x6826,INVALC,0x6827, - /* Range 0x9851 - 0x985A, array index: 0x0EFD */ - 0x682D,0x682E,0x682F,INVALC,INVALC,0x6830,0x6831,INVALC, - 0x6832,0x6833, - /* Range 0x9862 - 0x9866, array index: 0x0F07 */ - 0x6834,0x6835,INVALC,0x6836,0x6837, - /* Range 0x98B7 - 0x98BB, array index: 0x0F0C */ - 0x683F,0x6840,INVALC,0x6841,0x6842, - /* Range 0x98E3 - 0x98E7, array index: 0x0F11 */ - 0x6849,INVALC,0x684A,0x684B,0x684C, - /* Range 0x9915 - 0x991C, array index: 0x0F16 */ - 0x6854,0x6855,0x6856,INVALC,INVALC,0x6857,0x6858,0x6859, - /* Range 0x9931 - 0x993C, array index: 0x0F1E */ - 0x685F,0x6860,0x6861,0x6862,0x6863,INVALC,INVALC,INVALC, - 0x6864,0x6865,0x6866,0x6867, - /* Range 0x9946 - 0x9948, array index: 0x0F2A */ - 0x686A,0x686B,0x686C, - /* Range 0x9958 - 0x9960, array index: 0x0F2D */ - 0x6870,0x6871,INVALC,0x6872,0x6873,INVALC,0x6874,0x6875, - 0x6876, - /* Range 0x99B0 - 0x99B2, array index: 0x0F36 */ - 0x687B,0x687C,0x687D, - /* Range 0x99EA - 0x99EC, array index: 0x0F39 */ - 0x692E,0x692F,0x6930, - /* Range 0x9A02 - 0x9A04, array index: 0x0F3C */ - 0x6937,0x6938,0x6939, - /* Range 0x9A20 - 0x9A24, array index: 0x0F3F */ - 0x6940,INVALC,0x6941,0x6942,0x6943, - /* Range 0x9A4A - 0x9A4E, array index: 0x0F44 */ - 0x694E,0x694F,0x6950,INVALC,0x6951, - /* Range 0x9AB2 - 0x9AB6, array index: 0x0F49 */ - 0x695A,INVALC,0x695B,0x695C,0x695D, - /* Range 0x9AD5 - 0x9AD7, array index: 0x0F4E */ - 0x6969,0x696A,0x696B, - /* Range 0x9AFD - 0x9B12, array index: 0x0F51 */ - 0x6979,INVALC,0x697A,0x697B,0x697C,0x697D,0x697E,0x6A21, - 0x6A22,INVALC,INVALC,0x6A23,0x6A24,INVALC,0x6A25,0x6A26, - 0x6A27,0x6A28,INVALC,0x6A29,INVALC,0x6A2A, - /* Range 0x9B33 - 0x9B3A, array index: 0x0F67 */ - 0x6A33,0x6A34,0x6A35,INVALC,0x6A36,INVALC,0x6A37,0x6A38, - /* Range 0x9B55 - 0x9B57, array index: 0x0F6F */ - 0x6A3D,0x6A3E,0x6A3F, - /* Range 0x9B68 - 0x9B6E, array index: 0x0F72 */ - 0x6A46,INVALC,0x6A47,0x6A48,0x6A49,0x6A4A,0x6A4B, - /* Range 0x9B75 - 0x9B79, array index: 0x0F79 */ - 0x6A4D,INVALC,0x6A4E,0x6A4F,0x6A50, - /* Range 0x9B84 - 0x9B90, array index: 0x0F7E */ - 0x6A53,0x6A54,0x6A55,0x6A56,INVALC,0x6A57,0x6A58,0x6A59, - INVALC,0x6A5A,INVALC,0x6A5B,0x6A5C, - /* Range 0x9BB0 - 0x9BB2, array index: 0x0F8B */ - 0x6A65,0x6A66,0x6A67, - /* Range 0x9BBB - 0x9BC1, array index: 0x0F8E */ - 0x6A6A,0x6A6B,INVALC,0x6A6C,0x6A6D,INVALC,0x6A6E, - /* Range 0x9BF7 - 0x9BFA, array index: 0x0F95 */ - 0x6A7D,0x6A7E,0x6B21,0x6B22, - /* Range 0x9C16 - 0x9C1E, array index: 0x0F99 */ - 0x6B2A,INVALC,0x6B2B,0x6B2C,0x6B2D,INVALC,0x6B2E,INVALC, - 0x6B2F, - /* Range 0x9C22 - 0x9C2A, array index: 0x0FA2 */ - 0x6B30,0x6B31,INVALC,INVALC,0x6B32,0x6B33,0x6B34,0x6B35, - 0x6B36, - /* Range 0x9C35 - 0x9C37, array index: 0x0FAB */ - 0x6B38,0x6B39,0x6B3A, - /* Range 0x9C41 - 0x9C45, array index: 0x0FAE */ - 0x6B3C,INVALC,0x6B3D,0x6B3E,0x6B3F, - /* Range 0x9C4E - 0x9C5F, array index: 0x0FB3 */ - 0x6B42,0x6B43,0x6B44,INVALC,INVALC,0x6B45,0x6B46,INVALC, - 0x6B47,INVALC,0x6B48,INVALC,INVALC,0x6B49,0x6B50,0x6B4A, - 0x6B4B,0x6B4C, - /* Range 0x9C68 - 0x9C6B, array index: 0x0FC5 */ - 0x6B52,0x6B4E,0x6B4F,0x6B51, - /* Range 0x9D1C - 0x9D1E, array index: 0x0FC9 */ - 0x6B62,0x6B63,0x6B64, - /* Range 0x9D2F - 0x9D34, array index: 0x0FCC */ - 0x6B65,0x6B66,INVALC,0x6B67,0x6B68,0x6B69, - /* Range 0x9D69 - 0x9D6B, array index: 0x0FD2 */ - 0x6B78,0x6B79,0x6B7A, - /* Range 0x9D92 - 0x9D98, array index: 0x0FD5 */ - 0x6C29,0x6C2A,INVALC,0x6C2B,0x6C2C,0x6C2D,0x6C2E, - /* Range 0x9DD4 - 0x9DD7, array index: 0x0FDC */ - 0x6C3C,0x6C3D,0x6C3E,0x6C3F, - /* Range 0x9DDE - 0x9DE0, array index: 0x0FE0 */ - 0x6C41,0x6C42,0x6C43, - /* Range 0x9E0E - 0x9E16, array index: 0x0FE3 */ - 0x6C50,INVALC,0x6C51,0x6C52,0x6C53,INVALC,INVALC,0x6C54, - 0x6C55, - /* Range 0x9E7A - 0x9E7C, array index: 0x0FEC */ - 0x6C59,0x6C5A,0x6C5B, - /* Range 0x9E80 - 0x9E87, array index: 0x0FEF */ - 0x6C5C,INVALC,0x6C5D,0x6C5E,0x6C5F,0x6C60,INVALC,0x6C61, - /* Range 0x9EAC - 0x9EB5, array index: 0x0FF7 */ - 0x6C6A,INVALC,0x6C6B,0x6C6C,0x6C6D,INVALC,INVALC,0x6C6E, - 0x6C6F,0x6C70, - /* Range 0x9EEC - 0x9EF2, array index: 0x1001 */ - 0x6C78,0x6C79,0x6C7A,INVALC,0x6C7B,0x6C7C,0x6C7D, - /* Range 0x9F0F - 0x9F1B, array index: 0x1008 */ - 0x6D26,0x6D27,0x6D28,0x6D29,INVALC,0x6D2A,INVALC,0x6D2B, - 0x6D2C,INVALC,0x6D2D,0x6D2E,0x6D2F, - /* Range 0x9F39 - 0x9F47, array index: 0x1015 */ - 0x6D3A,0x6D3B,INVALC,0x6D3C,0x6D3D,INVALC,0x6D3E,INVALC, - 0x6D3F,INVALC,0x6D40,0x6D41,0x6D42,0x6D43,0x6D44, - /* Range 0x9F53 - 0x9F5E, array index: 0x1024 */ - 0x6D45,INVALC,0x6D46,0x6D47,0x6D48,0x6D49,INVALC,0x6D4A, - INVALC,INVALC,0x6D4B,0x6D4C, - /* Range 0x9F6D - 0x9F75, array index: 0x1030 */ - 0x6D4F,0x6D50,0x6D51,0x6D52,0x6D53,INVALC,0x6D54,INVALC, - 0x6D55, - /* Range 0x9F8F - 0x9F97, array index: 0x1039 */ - 0x6D58,0x6D59,0x6D5A,0x6D5B,INVALC,0x6D5C,INVALC,0x6D5D, - 0x6D5E, - /* Range 0x9FA1 - 0x9FA5, array index: 0x1042 */ - 0x6D60,0x6D61,0x6D62,INVALC,0x6D63, - /* Unranged codes (426 codes) */ - /* Array index: 0x1047 */ 0x007E,0x2237, - /* Array index: 0x1047 */ 0x00A1,0x2242, - /* Array index: 0x1047 */ 0x00A4,0x2270, - /* Array index: 0x1047 */ 0x00A6,0x2243, - /* Array index: 0x1047 */ 0x00A9,0x226D, - /* Array index: 0x1047 */ 0x00AA,0x226C, - /* Array index: 0x1047 */ 0x00AE,0x226E, - /* Array index: 0x1047 */ 0x00AF,0x2234, - /* Array index: 0x1047 */ 0x00B8,0x2231, - /* Array index: 0x1047 */ 0x00BA,0x226B, - /* Array index: 0x1047 */ 0x01F5,0x2B39, - /* Array index: 0x1047 */ 0x02C7,0x2230, - /* Array index: 0x1047 */ 0x03C2,0x2678, - /* Array index: 0x1047 */ 0x2116,0x2271, - /* Array index: 0x1047 */ 0x2122,0x226F, - /* Array index: 0x1047 */ 0x4E02,0x3021, - /* Array index: 0x1047 */ 0x4E04,0x3022, - /* Array index: 0x1047 */ 0x4E05,0x3023, - /* Array index: 0x1047 */ 0x4E0C,0x3024, - /* Array index: 0x1047 */ 0x4E12,0x3025, - /* Array index: 0x1047 */ 0x4E1F,0x3026, - /* Array index: 0x1047 */ 0x4E23,0x3027, - /* Array index: 0x1047 */ 0x4E24,0x3028, - /* Array index: 0x1047 */ 0x4E28,0x3029, - /* Array index: 0x1047 */ 0x4E2B,0x302A, - /* Array index: 0x1047 */ 0x4E35,0x302E, - /* Array index: 0x1047 */ 0x4E40,0x302F, - /* Array index: 0x1047 */ 0x4E41,0x3030, - /* Array index: 0x1047 */ 0x4E44,0x3031, - /* Array index: 0x1047 */ 0x4E47,0x3032, - /* Array index: 0x1047 */ 0x4E51,0x3033, - /* Array index: 0x1047 */ 0x4E5A,0x3034, - /* Array index: 0x1047 */ 0x4E5C,0x3035, - /* Array index: 0x1047 */ 0x4E63,0x3036, - /* Array index: 0x1047 */ 0x4E68,0x3037, - /* Array index: 0x1047 */ 0x4E69,0x3038, - /* Array index: 0x1047 */ 0x4E74,0x3039, - /* Array index: 0x1047 */ 0x4E75,0x303A, - /* Array index: 0x1047 */ 0x4E79,0x303B, - /* Array index: 0x1047 */ 0x4E7F,0x303C, - /* Array index: 0x1047 */ 0x4E8D,0x303D, - /* Array index: 0x1047 */ 0x4E96,0x303E, - /* Array index: 0x1047 */ 0x4E97,0x303F, - /* Array index: 0x1047 */ 0x4E9D,0x3040, - /* Array index: 0x1047 */ 0x4EAF,0x3041, - /* Array index: 0x1047 */ 0x4EB9,0x3042, - /* Array index: 0x1047 */ 0x4EC3,0x3043, - /* Array index: 0x1047 */ 0x4ED0,0x3044, - /* Array index: 0x1047 */ 0x4EDA,0x3045, - /* Array index: 0x1047 */ 0x4EDB,0x3046, - /* Array index: 0x1047 */ 0x4EE8,0x304A, - /* Array index: 0x1047 */ 0x4EEF,0x304B, - /* Array index: 0x1047 */ 0x4EF1,0x304C, - /* Array index: 0x1047 */ 0x4EF3,0x304D, - /* Array index: 0x1047 */ 0x4EF5,0x304E, - /* Array index: 0x1047 */ 0x4F08,0x3055, - /* Array index: 0x1047 */ 0x4F0B,0x3056, - /* Array index: 0x1047 */ 0x4F0C,0x3057, - /* Array index: 0x1047 */ 0x4F12,0x3058, - /* Array index: 0x1047 */ 0x4F2E,0x305D, - /* Array index: 0x1047 */ 0x4F31,0x305E, - /* Array index: 0x1047 */ 0x4F33,0x3060, - /* Array index: 0x1047 */ 0x4F35,0x3061, - /* Array index: 0x1047 */ 0x4F37,0x3062, - /* Array index: 0x1047 */ 0x4F39,0x3063, - /* Array index: 0x1047 */ 0x4F3B,0x3064, - /* Array index: 0x1047 */ 0x4F3E,0x3065, - /* Array index: 0x1047 */ 0x4F40,0x3066, - /* Array index: 0x1047 */ 0x4F42,0x3067, - /* Array index: 0x1047 */ 0x4F52,0x306C, - /* Array index: 0x1047 */ 0x4F54,0x306D, - /* Array index: 0x1047 */ 0x4F56,0x306E, - /* Array index: 0x1047 */ 0x4F58,0x306F, - /* Array index: 0x1047 */ 0x4F5F,0x3070, - /* Array index: 0x1047 */ 0x4F60,0x305F, - /* Array index: 0x1047 */ 0x4F63,0x3071, - /* Array index: 0x1047 */ 0x4F6A,0x3072, - /* Array index: 0x1047 */ 0x4F6C,0x3073, - /* Array index: 0x1047 */ 0x4F6E,0x3074, - /* Array index: 0x1047 */ 0x4F71,0x3075, - /* Array index: 0x1047 */ 0x4F89,0x3122, - /* Array index: 0x1047 */ 0x4F8A,0x3123, - /* Array index: 0x1047 */ 0x4F8C,0x3124, - /* Array index: 0x1047 */ 0x4F8E,0x3125, - /* Array index: 0x1047 */ 0x4F97,0x312A, - /* Array index: 0x1047 */ 0x4F99,0x312B, - /* Array index: 0x1047 */ 0x4F9A,0x312C, - /* Array index: 0x1047 */ 0x4F9E,0x312D, - /* Array index: 0x1047 */ 0x4F9F,0x312E, - /* Array index: 0x1047 */ 0x4FB2,0x312F, - /* Array index: 0x1047 */ 0x4FB7,0x3130, - /* Array index: 0x1047 */ 0x4FD2,0x3140, - /* Array index: 0x1047 */ 0x4FDC,0x3141, - /* Array index: 0x1047 */ 0x4FE0,0x3142, - /* Array index: 0x1047 */ 0x4FE2,0x3143, - /* Array index: 0x1047 */ 0x4FF0,0x3144, - /* Array index: 0x1047 */ 0x4FF2,0x3145, - /* Array index: 0x1047 */ 0x5004,0x314B, - /* Array index: 0x1047 */ 0x5007,0x314C, - /* Array index: 0x1047 */ 0x500A,0x314D, - /* Array index: 0x1047 */ 0x500C,0x314E, - /* Array index: 0x1047 */ 0x500E,0x314F, - /* Array index: 0x1047 */ 0x5010,0x3150, - /* Array index: 0x1047 */ 0x5013,0x3151, - /* Array index: 0x1047 */ 0x5022,0x3158, - /* Array index: 0x1047 */ 0x5027,0x3159, - /* Array index: 0x1047 */ 0x502E,0x315A, - /* Array index: 0x1047 */ 0x5030,0x315B, - /* Array index: 0x1047 */ 0x5032,0x315C, - /* Array index: 0x1047 */ 0x5033,0x315D, - /* Array index: 0x1047 */ 0x5035,0x315E, - /* Array index: 0x1047 */ 0x503B,0x3176, - /* Array index: 0x1047 */ 0x504A,0x3164, - /* Array index: 0x1047 */ 0x504C,0x3165, - /* Array index: 0x1047 */ 0x504E,0x3166, - /* Array index: 0x1047 */ 0x5057,0x316A, - /* Array index: 0x1047 */ 0x5059,0x316B, - /* Array index: 0x1047 */ 0x506A,0x3172, - /* Array index: 0x1047 */ 0x506D,0x3173, - /* Array index: 0x1047 */ 0x5070,0x3174, - /* Array index: 0x1047 */ 0x5071,0x3175, - /* Array index: 0x1047 */ 0x5081,0x3177, - /* Array index: 0x1047 */ 0x5083,0x3178, - /* Array index: 0x1047 */ 0x5084,0x3179, - /* Array index: 0x1047 */ 0x5086,0x317A, - /* Array index: 0x1047 */ 0x508A,0x317B, - /* Array index: 0x1047 */ 0x50AA,0x322C, - /* Array index: 0x1047 */ 0x50AF,0x322D, - /* Array index: 0x1047 */ 0x50B0,0x322E, - /* Array index: 0x1047 */ 0x50B9,0x322F, - /* Array index: 0x1047 */ 0x50BA,0x3230, - /* Array index: 0x1047 */ 0x50BD,0x3231, - /* Array index: 0x1047 */ 0x50C0,0x3232, - /* Array index: 0x1047 */ 0x50C3,0x3233, - /* Array index: 0x1047 */ 0x50C4,0x3234, - /* Array index: 0x1047 */ 0x50C7,0x3235, - /* Array index: 0x1047 */ 0x50CC,0x3236, - /* Array index: 0x1047 */ 0x50CE,0x3237, - /* Array index: 0x1047 */ 0x50D0,0x3238, - /* Array index: 0x1047 */ 0x50D3,0x3239, - /* Array index: 0x1047 */ 0x50D4,0x323A, - /* Array index: 0x1047 */ 0x50D8,0x323B, - /* Array index: 0x1047 */ 0x50DC,0x323C, - /* Array index: 0x1047 */ 0x50DD,0x323D, - /* Array index: 0x1047 */ 0x50DF,0x323E, - /* Array index: 0x1047 */ 0x50E2,0x323F, - /* Array index: 0x1047 */ 0x50E4,0x3240, - /* Array index: 0x1047 */ 0x50E6,0x3241, - /* Array index: 0x1047 */ 0x50E8,0x3242, - /* Array index: 0x1047 */ 0x50E9,0x3243, - /* Array index: 0x1047 */ 0x50EF,0x3244, - /* Array index: 0x1047 */ 0x50F1,0x3245, - /* Array index: 0x1047 */ 0x50F2,0x3251, - /* Array index: 0x1047 */ 0x50F6,0x3246, - /* Array index: 0x1047 */ 0x50FA,0x3247, - /* Array index: 0x1047 */ 0x50FE,0x3248, - /* Array index: 0x1047 */ 0x5103,0x3249, - /* Array index: 0x1047 */ 0x5117,0x3253, - /* Array index: 0x1047 */ 0x5123,0x3259, - /* Array index: 0x1047 */ 0x5127,0x325A, - /* Array index: 0x1047 */ 0x5128,0x325B, - /* Array index: 0x1047 */ 0x512C,0x325C, - /* Array index: 0x1047 */ 0x512D,0x325D, - /* Array index: 0x1047 */ 0x512F,0x325E, - /* Array index: 0x1047 */ 0x5142,0x3265, - /* Array index: 0x1047 */ 0x514A,0x3266, - /* Array index: 0x1047 */ 0x514F,0x3267, - /* Array index: 0x1047 */ 0x5153,0x3268, - /* Array index: 0x1047 */ 0x5155,0x3269, - /* Array index: 0x1047 */ 0x5157,0x326A, - /* Array index: 0x1047 */ 0x5158,0x326B, - /* Array index: 0x1047 */ 0x515F,0x326C, - /* Array index: 0x1047 */ 0x5164,0x326D, - /* Array index: 0x1047 */ 0x5166,0x326E, - /* Array index: 0x1047 */ 0x517E,0x326F, - /* Array index: 0x1047 */ 0x5183,0x3270, - /* Array index: 0x1047 */ 0x5184,0x3271, - /* Array index: 0x1047 */ 0x518B,0x3272, - /* Array index: 0x1047 */ 0x518E,0x3273, - /* Array index: 0x1047 */ 0x5198,0x3274, - /* Array index: 0x1047 */ 0x519D,0x3275, - /* Array index: 0x1047 */ 0x51A1,0x3276, - /* Array index: 0x1047 */ 0x51A3,0x3277, - /* Array index: 0x1047 */ 0x51AD,0x3278, - /* Array index: 0x1047 */ 0x51B8,0x3279, - /* Array index: 0x1047 */ 0x51BA,0x327A, - /* Array index: 0x1047 */ 0x51BC,0x327B, - /* Array index: 0x1047 */ 0x51BE,0x327C, - /* Array index: 0x1047 */ 0x51BF,0x327D, - /* Array index: 0x1047 */ 0x51C2,0x327E, - /* Array index: 0x1047 */ 0x51C8,0x3321, - /* Array index: 0x1047 */ 0x51D8,0x3327, - /* Array index: 0x1047 */ 0x51DE,0x3328, - /* Array index: 0x1047 */ 0x51E2,0x3329, - /* Array index: 0x1047 */ 0x51E5,0x332A, - /* Array index: 0x1047 */ 0x51EE,0x332B, - /* Array index: 0x1047 */ 0x51F7,0x332F, - /* Array index: 0x1047 */ 0x5201,0x3330, - /* Array index: 0x1047 */ 0x5202,0x3331, - /* Array index: 0x1047 */ 0x5205,0x3332, - /* Array index: 0x1047 */ 0x5222,0x3338, - /* Array index: 0x1047 */ 0x5228,0x3339, - /* Array index: 0x1047 */ 0x5231,0x333A, - /* Array index: 0x1047 */ 0x5232,0x333B, - /* Array index: 0x1047 */ 0x5235,0x333C, - /* Array index: 0x1047 */ 0x523C,0x333D, - /* Array index: 0x1047 */ 0x5245,0x333E, - /* Array index: 0x1047 */ 0x5249,0x333F, - /* Array index: 0x1047 */ 0x5255,0x3340, - /* Array index: 0x1047 */ 0x5257,0x3341, - /* Array index: 0x1047 */ 0x5258,0x3342, - /* Array index: 0x1047 */ 0x525A,0x3343, - /* Array index: 0x1047 */ 0x525C,0x3344, - /* Array index: 0x1047 */ 0x5266,0x3348, - /* Array index: 0x1047 */ 0x526E,0x3349, - /* Array index: 0x1047 */ 0x5280,0x334D, - /* Array index: 0x1047 */ 0x5282,0x334E, - /* Array index: 0x1047 */ 0x5285,0x334F, - /* Array index: 0x1047 */ 0x528A,0x3350, - /* Array index: 0x1047 */ 0x528C,0x3351, - /* Array index: 0x1047 */ 0x52AF,0x335D, - /* Array index: 0x1047 */ 0x52B0,0x335E, - /* Array index: 0x1047 */ 0x52C0,0x3365, - /* Array index: 0x1047 */ 0x52C4,0x3366, - /* Array index: 0x1047 */ 0x52C6,0x3367, - /* Array index: 0x1047 */ 0x52C8,0x3368, - /* Array index: 0x1047 */ 0x52CC,0x3369, - /* Array index: 0x1047 */ 0x52CF,0x336A, - /* Array index: 0x1047 */ 0x52D1,0x336B, - /* Array index: 0x1047 */ 0x52D4,0x336C, - /* Array index: 0x1047 */ 0x52D6,0x336D, - /* Array index: 0x1047 */ 0x52DB,0x336E, - /* Array index: 0x1047 */ 0x52DC,0x336F, - /* Array index: 0x1047 */ 0x52E1,0x3370, - /* Array index: 0x1047 */ 0x52E5,0x3371, - /* Array index: 0x1047 */ 0x52F0,0x3376, - /* Array index: 0x1047 */ 0x52F1,0x3377, - /* Array index: 0x1047 */ 0x52F4,0x3378, - /* Array index: 0x1047 */ 0x52F6,0x3379, - /* Array index: 0x1047 */ 0x52F7,0x337A, - /* Array index: 0x1047 */ 0x5300,0x337B, - /* Array index: 0x1047 */ 0x5303,0x337C, - /* Array index: 0x1047 */ 0x5311,0x3422, - /* Array index: 0x1047 */ 0x5313,0x3423, - /* Array index: 0x1047 */ 0x5318,0x3424, - /* Array index: 0x1047 */ 0x5330,0x3430, - /* Array index: 0x1047 */ 0x5332,0x3431, - /* Array index: 0x1047 */ 0x5335,0x3432, - /* Array index: 0x1047 */ 0x5342,0x3436, - /* Array index: 0x1047 */ 0x534B,0x3438, - /* Array index: 0x1047 */ 0x534C,0x3437, - /* Array index: 0x1047 */ 0x5359,0x3439, - /* Array index: 0x1047 */ 0x535B,0x343A, - /* Array index: 0x1047 */ 0x5361,0x343B, - /* Array index: 0x1047 */ 0x5363,0x343C, - /* Array index: 0x1047 */ 0x5365,0x343D, - /* Array index: 0x1047 */ 0x536C,0x343E, - /* Array index: 0x1047 */ 0x536D,0x343F, - /* Array index: 0x1047 */ 0x5372,0x3440, - /* Array index: 0x1047 */ 0x5379,0x3441, - /* Array index: 0x1047 */ 0x537E,0x3442, - /* Array index: 0x1047 */ 0x5383,0x3443, - /* Array index: 0x1047 */ 0x5387,0x3444, - /* Array index: 0x1047 */ 0x5388,0x3445, - /* Array index: 0x1047 */ 0x538E,0x3446, - /* Array index: 0x1047 */ 0x5393,0x3447, - /* Array index: 0x1047 */ 0x5394,0x3448, - /* Array index: 0x1047 */ 0x5399,0x3449, - /* Array index: 0x1047 */ 0x539D,0x344A, - /* Array index: 0x1047 */ 0x53A1,0x344B, - /* Array index: 0x1047 */ 0x53A4,0x344C, - /* Array index: 0x1047 */ 0x53AA,0x344D, - /* Array index: 0x1047 */ 0x53AB,0x344E, - /* Array index: 0x1047 */ 0x53AF,0x344F, - /* Array index: 0x1047 */ 0x53B2,0x3450, - /* Array index: 0x1047 */ 0x53BD,0x3456, - /* Array index: 0x1047 */ 0x53C0,0x3457, - /* Array index: 0x1047 */ 0x53C5,0x3458, - /* Array index: 0x1047 */ 0x53CF,0x3459, - /* Array index: 0x1047 */ 0x53D2,0x345A, - /* Array index: 0x1047 */ 0x53D3,0x345B, - /* Array index: 0x1047 */ 0x53D5,0x345C, - /* Array index: 0x1047 */ 0x53DA,0x345D, - /* Array index: 0x1047 */ 0x53DD,0x345E, - /* Array index: 0x1047 */ 0x53DE,0x345F, - /* Array index: 0x1047 */ 0x53E0,0x3460, - /* Array index: 0x1047 */ 0x53E6,0x3461, - /* Array index: 0x1047 */ 0x53E7,0x3462, - /* Array index: 0x1047 */ 0x53F5,0x3463, - /* Array index: 0x1047 */ 0x5402,0x3464, - /* Array index: 0x1047 */ 0x5413,0x3465, - /* Array index: 0x1047 */ 0x541A,0x3466, - /* Array index: 0x1047 */ 0x5421,0x3467, - /* Array index: 0x1047 */ 0x5427,0x3468, - /* Array index: 0x1047 */ 0x5428,0x3469, - /* Array index: 0x1047 */ 0x542A,0x346A, - /* Array index: 0x1047 */ 0x542F,0x346B, - /* Array index: 0x1047 */ 0x5431,0x346C, - /* Array index: 0x1047 */ 0x5434,0x346D, - /* Array index: 0x1047 */ 0x5435,0x346E, - /* Array index: 0x1047 */ 0x5443,0x346F, - /* Array index: 0x1047 */ 0x5444,0x3470, - /* Array index: 0x1047 */ 0x5447,0x3471, - /* Array index: 0x1047 */ 0x544D,0x3472, - /* Array index: 0x1047 */ 0x544F,0x3473, - /* Array index: 0x1047 */ 0x545E,0x3474, - /* Array index: 0x1047 */ 0x5462,0x3475, - /* Array index: 0x1047 */ 0x5464,0x3476, - /* Array index: 0x1047 */ 0x5466,0x3477, - /* Array index: 0x1047 */ 0x5467,0x3478, - /* Array index: 0x1047 */ 0x5469,0x3479, - /* Array index: 0x1047 */ 0x546B,0x347A, - /* Array index: 0x1047 */ 0x546D,0x347B, - /* Array index: 0x1047 */ 0x546E,0x347C, - /* Array index: 0x1047 */ 0x5474,0x347D, - /* Array index: 0x1047 */ 0x547F,0x347E, - /* Array index: 0x1047 */ 0x5481,0x3521, - /* Array index: 0x1047 */ 0x5483,0x3522, - /* Array index: 0x1047 */ 0x5485,0x3523, - /* Array index: 0x1047 */ 0x5488,0x3524, - /* Array index: 0x1047 */ 0x5489,0x3525, - /* Array index: 0x1047 */ 0x548D,0x3526, - /* Array index: 0x1047 */ 0x5491,0x3527, - /* Array index: 0x1047 */ 0x5495,0x3528, - /* Array index: 0x1047 */ 0x5496,0x3529, - /* Array index: 0x1047 */ 0x549C,0x352A, - /* Array index: 0x1047 */ 0x549F,0x352B, - /* Array index: 0x1047 */ 0x54A1,0x352C, - /* Array index: 0x1047 */ 0x54B1,0x3533, - /* Array index: 0x1047 */ 0x54BF,0x3538, - /* Array index: 0x1047 */ 0x54C6,0x3539, - /* Array index: 0x1047 */ 0x54CA,0x353A, - /* Array index: 0x1047 */ 0x54CD,0x353B, - /* Array index: 0x1047 */ 0x54CE,0x353C, - /* Array index: 0x1047 */ 0x54E0,0x353D, - /* Array index: 0x1047 */ 0x54EA,0x353E, - /* Array index: 0x1047 */ 0x54EC,0x353F, - /* Array index: 0x1047 */ 0x54EF,0x3540, - /* Array index: 0x1047 */ 0x54F6,0x3541, - /* Array index: 0x1047 */ 0x5505,0x3547, - /* Array index: 0x1047 */ 0x5515,0x354D, - /* Array index: 0x1047 */ 0x552A,0x354E, - /* Array index: 0x1047 */ 0x552B,0x354F, - /* Array index: 0x1047 */ 0x5532,0x3550, - /* Array index: 0x1047 */ 0x5535,0x3551, - /* Array index: 0x1047 */ 0x5536,0x3552, - /* Array index: 0x1047 */ 0x5541,0x3556, - /* Array index: 0x1047 */ 0x5547,0x3557, - /* Array index: 0x1047 */ 0x5549,0x3558, - /* Array index: 0x1047 */ 0x554A,0x3559, - /* Array index: 0x1047 */ 0x554D,0x355A, - /* Array index: 0x1047 */ 0x5550,0x355B, - /* Array index: 0x1047 */ 0x5551,0x355C, - /* Array index: 0x1047 */ 0x5558,0x355D, - /* Array index: 0x1047 */ 0x555A,0x355E, - /* Array index: 0x1047 */ 0x555B,0x355F, - /* Array index: 0x1047 */ 0x555E,0x3560, - /* Array index: 0x1047 */ 0x5560,0x3561, - /* Array index: 0x1047 */ 0x5561,0x3562, - /* Array index: 0x1047 */ 0x5564,0x3563, - /* Array index: 0x1047 */ 0x5566,0x3564, - /* Array index: 0x1047 */ 0x557F,0x3565, - /* Array index: 0x1047 */ 0x5581,0x3566, - /* Array index: 0x1047 */ 0x5582,0x3567, - /* Array index: 0x1047 */ 0x5586,0x3568, - /* Array index: 0x1047 */ 0x5588,0x3569, - /* Array index: 0x1047 */ 0x5597,0x3570, - /* Array index: 0x1047 */ 0x55A3,0x3571, - /* Array index: 0x1047 */ 0x55A4,0x3572, - /* Array index: 0x1047 */ 0x55AD,0x3573, - /* Array index: 0x1047 */ 0x55B2,0x3574, - /* Array index: 0x1047 */ 0x55BF,0x3575, - /* Array index: 0x1047 */ 0x55C1,0x3576, - /* Array index: 0x1047 */ 0x55C3,0x3577, - /* Array index: 0x1047 */ 0x55C6,0x3578, - /* Array index: 0x1047 */ 0x55C9,0x3579, - /* Array index: 0x1047 */ 0x55CB,0x357A, - /* Array index: 0x1047 */ 0x55CC,0x357B, - /* Array index: 0x1047 */ 0x55CE,0x357C, - /* Array index: 0x1047 */ 0x55D7,0x3622, - /* Array index: 0x1047 */ 0x55D8,0x3623, - /* Array index: 0x1047 */ 0x55DB,0x3624, - /* Array index: 0x1047 */ 0x55DE,0x3625, - /* Array index: 0x1047 */ 0x55E2,0x3626, - /* Array index: 0x1047 */ 0x55E9,0x3627, - /* Array index: 0x1047 */ 0x55F6,0x3628, - /* Array index: 0x1047 */ 0x55FF,0x3629, - /* Array index: 0x1047 */ 0x5605,0x362A, - /* Array index: 0x1047 */ 0x5608,0x362B, - /* Array index: 0x1047 */ 0x560A,0x362C, - /* Array index: 0x1047 */ 0x5619,0x3633, - /* Array index: 0x1047 */ 0x562C,0x3634, - /* Array index: 0x1047 */ 0x5630,0x3635, - /* Array index: 0x1047 */ 0x5633,0x3636, - /* Array index: 0x1047 */ 0x5635,0x3637, - /* Array index: 0x1047 */ 0x5637,0x3638, - /* Array index: 0x1047 */ 0x5649,0x3643, - /* Array index: 0x1047 */ 0x564B,0x3644, - /* Array index: 0x1047 */ 0x564D,0x3645, - /* Array index: 0x1047 */ 0x564F,0x3646, - /* Array index: 0x1047 */ 0x5654,0x3647, - /* Array index: 0x1047 */ 0x5666,0x364D, - /* Array index: 0x1047 */ 0x5669,0x364E, - /* Array index: 0x1047 */ 0x566D,0x364F, - /* Array index: 0x1047 */ 0x566F,0x3650, - /* Array index: 0x1047 */ 0x5671,0x3651, - /* Array index: 0x1047 */ 0x5672,0x3652, - /* Array index: 0x1047 */ 0x5675,0x3653, - /* Array index: 0x1047 */ 0x5684,0x3654, - /* Array index: 0x1047 */ 0x5685,0x3655, - /* Array index: 0x1047 */ 0x5688,0x3656, - /* Array index: 0x1047 */ 0x568B,0x3657, - /* Array index: 0x1047 */ 0x568C,0x3658, - /* Array index: 0x1047 */ 0x5695,0x3659, - /* Array index: 0x1047 */ 0x56B1,0x3666, - /* Array index: 0x1047 */ 0x56B3,0x3667, - /* Array index: 0x1047 */ 0x56B7,0x3668, - /* Array index: 0x1047 */ 0x56BE,0x3669, - /* Array index: 0x1047 */ 0x56C5,0x366A, - /* Array index: 0x1047 */ 0x56D9,0x3672, - /* Array index: 0x1047 */ 0x56DC,0x3673, - /* Array index: 0x1047 */ 0x56DD,0x3674, - /* Array index: 0x1047 */ 0x56DF,0x3675, - /* Array index: 0x1047 */ 0x56E1,0x3676, - /* Array index: 0x1047 */ 0x56EB,0x367D, - /* Array index: 0x1047 */ 0x56ED,0x367E, - /* Array index: 0x1047 */ 0x56F1,0x367C, - /* Array index: 0x1047 */ 0x56F6,0x3721, - /* Array index: 0x1047 */ 0x56F7,0x3722, - /* Array index: 0x1047 */ 0x5701,0x3723, - /* Array index: 0x1047 */ 0x5702,0x3724, - /* Array index: 0x1047 */ 0x5707,0x3725, - /* Array index: 0x1047 */ 0x570A,0x3726, - /* Array index: 0x1047 */ 0x570C,0x3727, - /* Array index: 0x1047 */ 0x5711,0x3728, - /* Array index: 0x1047 */ 0x5715,0x3729, - /* Array index: 0x1047 */ 0x571A,0x372A, - /* Array index: 0x1047 */ 0x571B,0x372B, - /* Array index: 0x1047 */ 0x571D,0x372C, - /* Array index: 0x1047 */ 0x5729,0x3732, - /* Array index: 0x1047 */ 0x572A,0x3733, - /* Array index: 0x1047 */ 0x572C,0x3734, - /* Array index: 0x1047 */ 0x572E,0x3735, - /* Array index: 0x1047 */ 0x572F,0x3736, - /* Array index: 0x1047 */ 0x5733,0x3737, - /* Array index: 0x1047 */ 0x5734,0x3738, - /* Array index: 0x1047 */ 0x5745,0x373C, - /* Array index: 0x1047 */ 0x5746,0x373D, - /* Array index: 0x1047 */ 0x574C,0x373E, - /* Array index: 0x1047 */ 0x574D,0x373F, - /* Array index: 0x1047 */ 0x5752,0x3740, - /* Array index: 0x1047 */ 0x5762,0x3741, - /* Array index: 0x1047 */ 0x5765,0x3742, - /* Array index: 0x1047 */ 0x5767,0x3743, - /* Array index: 0x1047 */ 0x5768,0x3744, - /* Array index: 0x1047 */ 0x5781,0x3754, - /* Array index: 0x1047 */ 0x5783,0x3755, - /* Array index: 0x1047 */ 0x578C,0x3756, - /* Array index: 0x1047 */ 0x5794,0x3757, - /* Array index: 0x1047 */ 0x5795,0x3760, - /* Array index: 0x1047 */ 0x5797,0x3758, - /* Array index: 0x1047 */ 0x57AC,0x3764, - /* Array index: 0x1047 */ 0x57B8,0x3765, - /* Array index: 0x1047 */ 0x57BD,0x3766, - /* Array index: 0x1047 */ 0x57C7,0x3767, - /* Array index: 0x1047 */ 0x57C8,0x3768, - /* Array index: 0x1047 */ 0x57CC,0x3769, - /* Array index: 0x1047 */ 0x57CF,0x376A, - /* Array index: 0x1047 */ 0x57D5,0x376B, - /* Array index: 0x1047 */ 0x57DD,0x376C, - /* Array index: 0x1047 */ 0x57DE,0x376D, - /* Array index: 0x1047 */ 0x57E1,0x377E, - /* Array index: 0x1047 */ 0x57E4,0x376E, - /* Array index: 0x1047 */ 0x57E6,0x376F, - /* Array index: 0x1047 */ 0x57E7,0x3770, - /* Array index: 0x1047 */ 0x57E9,0x3771, - /* Array index: 0x1047 */ 0x57ED,0x3772, - /* Array index: 0x1047 */ 0x57F0,0x3773, - /* Array index: 0x1047 */ 0x57F5,0x3774, - /* Array index: 0x1047 */ 0x57F6,0x3775, - /* Array index: 0x1047 */ 0x57F8,0x3776, - /* Array index: 0x1047 */ 0x5803,0x377A, - /* Array index: 0x1047 */ 0x5804,0x377B, - /* Array index: 0x1047 */ 0x5808,0x377C, - /* Array index: 0x1047 */ 0x5809,0x377D, - /* Array index: 0x1047 */ 0x580C,0x3821, - /* Array index: 0x1047 */ 0x580D,0x3822, - /* Array index: 0x1047 */ 0x581B,0x3823, - /* Array index: 0x1047 */ 0x5826,0x3827, - /* Array index: 0x1047 */ 0x5827,0x3828, - /* Array index: 0x1047 */ 0x582D,0x3829, - /* Array index: 0x1047 */ 0x5832,0x382A, - /* Array index: 0x1047 */ 0x5839,0x382B, - /* Array index: 0x1047 */ 0x583F,0x382C, - /* Array index: 0x1047 */ 0x5849,0x382D, - /* Array index: 0x1047 */ 0x5855,0x3832, - /* Array index: 0x1047 */ 0x585F,0x3833, - /* Array index: 0x1047 */ 0x5861,0x3834, - /* Array index: 0x1047 */ 0x5864,0x3835, - /* Array index: 0x1047 */ 0x5867,0x3836, - /* Array index: 0x1047 */ 0x5868,0x3837, - /* Array index: 0x1047 */ 0x5878,0x3838, - /* Array index: 0x1047 */ 0x587C,0x3839, - /* Array index: 0x1047 */ 0x5894,0x3845, - /* Array index: 0x1047 */ 0x5896,0x3846, - /* Array index: 0x1047 */ 0x589D,0x3847, - /* Array index: 0x1047 */ 0x58A6,0x384B, - /* Array index: 0x1047 */ 0x58A9,0x384C, - /* Array index: 0x1047 */ 0x58B1,0x384D, - /* Array index: 0x1047 */ 0x58B2,0x384E, - /* Array index: 0x1047 */ 0x58BC,0x3850, - /* Array index: 0x1047 */ 0x58C2,0x3851, - /* Array index: 0x1047 */ 0x58C4,0x384F, - /* Array index: 0x1047 */ 0x58C8,0x3852, - /* Array index: 0x1047 */ 0x58CD,0x3853, - /* Array index: 0x1047 */ 0x58CE,0x3854, - /* Array index: 0x1047 */ 0x58D0,0x3855, - /* Array index: 0x1047 */ 0x58D2,0x3856, - /* Array index: 0x1047 */ 0x58D4,0x3857, - /* Array index: 0x1047 */ 0x58D6,0x3858, - /* Array index: 0x1047 */ 0x58DA,0x3859, - /* Array index: 0x1047 */ 0x58DD,0x385A, - /* Array index: 0x1047 */ 0x58E1,0x385B, - /* Array index: 0x1047 */ 0x58E2,0x385C, - /* Array index: 0x1047 */ 0x58E9,0x385D, - /* Array index: 0x1047 */ 0x58F3,0x385E, - /* Array index: 0x1047 */ 0x5905,0x385F, - /* Array index: 0x1047 */ 0x5906,0x3860, - /* Array index: 0x1047 */ 0x590B,0x3861, - /* Array index: 0x1047 */ 0x590C,0x3862, - /* Array index: 0x1047 */ 0x591D,0x3867, - /* Array index: 0x1047 */ 0x5921,0x3868, - /* Array index: 0x1047 */ 0x5923,0x3869, - /* Array index: 0x1047 */ 0x5924,0x386A, - /* Array index: 0x1047 */ 0x5928,0x386B, - /* Array index: 0x1047 */ 0x592F,0x386C, - /* Array index: 0x1047 */ 0x5930,0x386D, - /* Array index: 0x1047 */ 0x5933,0x386E, - /* Array index: 0x1047 */ 0x5935,0x386F, - /* Array index: 0x1047 */ 0x5936,0x3870, - /* Array index: 0x1047 */ 0x593F,0x3871, - /* Array index: 0x1047 */ 0x5943,0x3872, - /* Array index: 0x1047 */ 0x5946,0x3873, - /* Array index: 0x1047 */ 0x5952,0x3874, - /* Array index: 0x1047 */ 0x5953,0x3875, - /* Array index: 0x1047 */ 0x5959,0x3876, - /* Array index: 0x1047 */ 0x596B,0x387D, - /* Array index: 0x1047 */ 0x596D,0x387E, - /* Array index: 0x1047 */ 0x596F,0x3921, - /* Array index: 0x1047 */ 0x5972,0x3922, - /* Array index: 0x1047 */ 0x5975,0x3923, - /* Array index: 0x1047 */ 0x5976,0x3924, - /* Array index: 0x1047 */ 0x5979,0x3925, - /* Array index: 0x1047 */ 0x597B,0x3926, - /* Array index: 0x1047 */ 0x597C,0x3927, - /* Array index: 0x1047 */ 0x598B,0x3928, - /* Array index: 0x1047 */ 0x598C,0x3929, - /* Array index: 0x1047 */ 0x598E,0x392A, - /* Array index: 0x1047 */ 0x5992,0x392B, - /* Array index: 0x1047 */ 0x5995,0x392C, - /* Array index: 0x1047 */ 0x5997,0x392D, - /* Array index: 0x1047 */ 0x599F,0x392E, - /* Array index: 0x1047 */ 0x59A4,0x392F, - /* Array index: 0x1047 */ 0x59A7,0x3930, - /* Array index: 0x1047 */ 0x59B3,0x3935, - /* Array index: 0x1047 */ 0x59B7,0x3936, - /* Array index: 0x1047 */ 0x59BA,0x3937, - /* Array index: 0x1047 */ 0x59BC,0x3938, - /* Array index: 0x1047 */ 0x59C1,0x3939, - /* Array index: 0x1047 */ 0x59C3,0x393A, - /* Array index: 0x1047 */ 0x59C4,0x393B, - /* Array index: 0x1047 */ 0x59C8,0x393C, - /* Array index: 0x1047 */ 0x59CA,0x393D, - /* Array index: 0x1047 */ 0x59CD,0x393E, - /* Array index: 0x1047 */ 0x59D2,0x393F, - /* Array index: 0x1047 */ 0x59E3,0x3943, - /* Array index: 0x1047 */ 0x59E4,0x3944, - /* Array index: 0x1047 */ 0x59E7,0x3945, - /* Array index: 0x1047 */ 0x59F7,0x394B, - /* Array index: 0x1047 */ 0x5A00,0x394C, - /* Array index: 0x1047 */ 0x5A04,0x394D, - /* Array index: 0x1047 */ 0x5A12,0x3951, - /* Array index: 0x1047 */ 0x5A13,0x3952, - /* Array index: 0x1047 */ 0x5A1E,0x3953, - /* Array index: 0x1047 */ 0x5A23,0x3954, - /* Array index: 0x1047 */ 0x5A24,0x3955, - /* Array index: 0x1047 */ 0x5A27,0x3956, - /* Array index: 0x1047 */ 0x5A28,0x3957, - /* Array index: 0x1047 */ 0x5A2A,0x3958, - /* Array index: 0x1047 */ 0x5A2D,0x3959, - /* Array index: 0x1047 */ 0x5A30,0x395A, - /* Array index: 0x1047 */ 0x5A4C,0x395F, - /* Array index: 0x1047 */ 0x5A50,0x3960, - /* Array index: 0x1047 */ 0x5A55,0x3961, - /* Array index: 0x1047 */ 0x5A5E,0x3962, - /* Array index: 0x1047 */ 0x5A63,0x3963, - /* Array index: 0x1047 */ 0x5A65,0x3964, - /* Array index: 0x1047 */ 0x5A67,0x3965, - /* Array index: 0x1047 */ 0x5A6D,0x3966, - /* Array index: 0x1047 */ 0x5A77,0x3967, - /* Array index: 0x1047 */ 0x5A7A,0x3968, - /* Array index: 0x1047 */ 0x5A7B,0x3969, - /* Array index: 0x1047 */ 0x5A7E,0x396A, - /* Array index: 0x1047 */ 0x5A8B,0x396B, - /* Array index: 0x1047 */ 0x5A90,0x396C, - /* Array index: 0x1047 */ 0x5A93,0x396D, - /* Array index: 0x1047 */ 0x5A96,0x396E, - /* Array index: 0x1047 */ 0x5A99,0x396F, - /* Array index: 0x1047 */ 0x5AA7,0x3975, - /* Array index: 0x1047 */ 0x5AAC,0x3976, - /* Array index: 0x1047 */ 0x5AB8,0x397B, - /* Array index: 0x1047 */ 0x5ABA,0x397C, - /* Array index: 0x1047 */ 0x5ABB,0x397D, - /* Array index: 0x1047 */ 0x5ABF,0x397E, - /* Array index: 0x1047 */ 0x5AC4,0x3A21, - /* Array index: 0x1047 */ 0x5AC6,0x3A22, - /* Array index: 0x1047 */ 0x5AC8,0x3A23, - /* Array index: 0x1047 */ 0x5ACF,0x3A24, - /* Array index: 0x1047 */ 0x5ADA,0x3A25, - /* Array index: 0x1047 */ 0x5ADC,0x3A26, - /* Array index: 0x1047 */ 0x5AE0,0x3A27, - /* Array index: 0x1047 */ 0x5AE5,0x3A28, - /* Array index: 0x1047 */ 0x5AEA,0x3A29, - /* Array index: 0x1047 */ 0x5AEE,0x3A2A, - /* Array index: 0x1047 */ 0x5AF5,0x3A2B, - /* Array index: 0x1047 */ 0x5AF6,0x3A2C, - /* Array index: 0x1047 */ 0x5AFD,0x3A2D, - /* Array index: 0x1047 */ 0x5B00,0x3A2E, - /* Array index: 0x1047 */ 0x5B01,0x3A2F, - /* Array index: 0x1047 */ 0x5B08,0x3A30, - /* Array index: 0x1047 */ 0x5B17,0x3A31, - /* Array index: 0x1047 */ 0x5B19,0x3A33, - /* Array index: 0x1047 */ 0x5B1B,0x3A34, - /* Array index: 0x1047 */ 0x5B1D,0x3A35, - /* Array index: 0x1047 */ 0x5B21,0x3A36, - /* Array index: 0x1047 */ 0x5B25,0x3A37, - /* Array index: 0x1047 */ 0x5B2D,0x3A38, - /* Array index: 0x1047 */ 0x5B34,0x3A32, - /* Array index: 0x1047 */ 0x5B38,0x3A39, - /* Array index: 0x1047 */ 0x5B41,0x3A3A, - /* Array index: 0x1047 */ 0x5B4B,0x3A3B, - /* Array index: 0x1047 */ 0x5B4C,0x3A3C, - /* Array index: 0x1047 */ 0x5B52,0x3A3D, - /* Array index: 0x1047 */ 0x5B56,0x3A3E, - /* Array index: 0x1047 */ 0x5B5E,0x3A3F, - /* Array index: 0x1047 */ 0x5B68,0x3A40, - /* Array index: 0x1047 */ 0x5B6E,0x3A41, - /* Array index: 0x1047 */ 0x5B6F,0x3A42, - /* Array index: 0x1047 */ 0x5B84,0x3A48, - /* Array index: 0x1047 */ 0x5B86,0x3A49, - /* Array index: 0x1047 */ 0x5B8A,0x3A4A, - /* Array index: 0x1047 */ 0x5B8E,0x3A4B, - /* Array index: 0x1047 */ 0x5BA8,0x3A51, - /* Array index: 0x1047 */ 0x5BA9,0x3A52, - /* Array index: 0x1047 */ 0x5BAC,0x3A53, - /* Array index: 0x1047 */ 0x5BAD,0x3A54, - /* Array index: 0x1047 */ 0x5BAF,0x3A55, - /* Array index: 0x1047 */ 0x5BB1,0x3A56, - /* Array index: 0x1047 */ 0x5BB2,0x3A57, - /* Array index: 0x1047 */ 0x5BB7,0x3A58, - /* Array index: 0x1047 */ 0x5BBA,0x3A59, - /* Array index: 0x1047 */ 0x5BBC,0x3A5A, - /* Array index: 0x1047 */ 0x5BC0,0x3A5B, - /* Array index: 0x1047 */ 0x5BC1,0x3A5C, - /* Array index: 0x1047 */ 0x5BCD,0x3A5D, - /* Array index: 0x1047 */ 0x5BCF,0x3A5E, - /* Array index: 0x1047 */ 0x5BE0,0x3A64, - /* Array index: 0x1047 */ 0x5BEF,0x3A65, - /* Array index: 0x1047 */ 0x5BF1,0x3A66, - /* Array index: 0x1047 */ 0x5BF4,0x3A67, - /* Array index: 0x1047 */ 0x5BFD,0x3A68, - /* Array index: 0x1047 */ 0x5C0C,0x3A69, - /* Array index: 0x1047 */ 0x5C17,0x3A6A, - /* Array index: 0x1047 */ 0x5C1E,0x3A6B, - /* Array index: 0x1047 */ 0x5C1F,0x3A6C, - /* Array index: 0x1047 */ 0x5C23,0x3A6D, - /* Array index: 0x1047 */ 0x5C26,0x3A6E, - /* Array index: 0x1047 */ 0x5C29,0x3A6F, - /* Array index: 0x1047 */ 0x5C2B,0x3A70, - /* Array index: 0x1047 */ 0x5C2C,0x3A71, - /* Array index: 0x1047 */ 0x5C2E,0x3A72, - /* Array index: 0x1047 */ 0x5C30,0x3A73, - /* Array index: 0x1047 */ 0x5C32,0x3A74, - /* Array index: 0x1047 */ 0x5C35,0x3A75, - /* Array index: 0x1047 */ 0x5C36,0x3A76, - /* Array index: 0x1047 */ 0x5C59,0x3A77, - /* Array index: 0x1047 */ 0x5C5A,0x3A78, - /* Array index: 0x1047 */ 0x5C5C,0x3A79, - /* Array index: 0x1047 */ 0x5C62,0x3A7A, - /* Array index: 0x1047 */ 0x5C63,0x3A7B, - /* Array index: 0x1047 */ 0x5C6D,0x3B21, - /* Array index: 0x1047 */ 0x5C70,0x3B22, - /* Array index: 0x1047 */ 0x5C74,0x3B23, - /* Array index: 0x1047 */ 0x5C75,0x3B24, - /* Array index: 0x1047 */ 0x5C87,0x3B29, - /* Array index: 0x1047 */ 0x5C88,0x3B2A, - /* Array index: 0x1047 */ 0x5C8A,0x3B2B, - /* Array index: 0x1047 */ 0x5C8F,0x3B2C, - /* Array index: 0x1047 */ 0x5C92,0x3B2D, - /* Array index: 0x1047 */ 0x5C9D,0x3B2E, - /* Array index: 0x1047 */ 0x5CA6,0x3B33, - /* Array index: 0x1047 */ 0x5CAA,0x3B34, - /* Array index: 0x1047 */ 0x5CB2,0x3B35, - /* Array index: 0x1047 */ 0x5CB4,0x3B36, - /* Array index: 0x1047 */ 0x5CB5,0x3B37, - /* Array index: 0x1047 */ 0x5CBA,0x3B38, - /* Array index: 0x1047 */ 0x5CC9,0x3B39, - /* Array index: 0x1047 */ 0x5CCB,0x3B3A, - /* Array index: 0x1047 */ 0x5CD2,0x3B3B, - /* Array index: 0x1047 */ 0x5CD7,0x3B3D, - /* Array index: 0x1047 */ 0x5CDD,0x3B3C, - /* Array index: 0x1047 */ 0x5CEE,0x3B3E, - /* Array index: 0x1047 */ 0x5CF1,0x3B3F, - /* Array index: 0x1047 */ 0x5CF2,0x3B40, - /* Array index: 0x1047 */ 0x5CF4,0x3B41, - /* Array index: 0x1047 */ 0x5D01,0x3B42, - /* Array index: 0x1047 */ 0x5D06,0x3B43, - /* Array index: 0x1047 */ 0x5D0D,0x3B44, - /* Array index: 0x1047 */ 0x5D12,0x3B45, - /* Array index: 0x1047 */ 0x5D2B,0x3B46, - /* Array index: 0x1047 */ 0x5D31,0x3B4B, - /* Array index: 0x1047 */ 0x5D34,0x3B4C, - /* Array index: 0x1047 */ 0x5D39,0x3B4D, - /* Array index: 0x1047 */ 0x5D3D,0x3B4E, - /* Array index: 0x1047 */ 0x5D3F,0x3B4F, - /* Array index: 0x1047 */ 0x5D42,0x3B50, - /* Array index: 0x1047 */ 0x5D43,0x3B51, - /* Array index: 0x1047 */ 0x5D46,0x3B52, - /* Array index: 0x1047 */ 0x5D48,0x3B53, - /* Array index: 0x1047 */ 0x5D4A,0x3B57, - /* Array index: 0x1047 */ 0x5D51,0x3B55, - /* Array index: 0x1047 */ 0x5D55,0x3B54, - /* Array index: 0x1047 */ 0x5D59,0x3B56, - /* Array index: 0x1047 */ 0x5D6A,0x3B5D, - /* Array index: 0x1047 */ 0x5D6D,0x3B5E, - /* Array index: 0x1047 */ 0x5D70,0x3B5F, - /* Array index: 0x1047 */ 0x5D79,0x3B60, - /* Array index: 0x1047 */ 0x5D7A,0x3B61, - /* Array index: 0x1047 */ 0x5D7E,0x3B62, - /* Array index: 0x1047 */ 0x5D7F,0x3B63, - /* Array index: 0x1047 */ 0x5D81,0x3B64, - /* Array index: 0x1047 */ 0x5D83,0x3B65, - /* Array index: 0x1047 */ 0x5D88,0x3B66, - /* Array index: 0x1047 */ 0x5D8A,0x3B67, - /* Array index: 0x1047 */ 0x5D99,0x3B6C, - /* Array index: 0x1047 */ 0x5D9B,0x3B6D, - /* Array index: 0x1047 */ 0x5D9F,0x3B6E, - /* Array index: 0x1047 */ 0x5DA0,0x3B6F, - /* Array index: 0x1047 */ 0x5DA7,0x3B70, - /* Array index: 0x1047 */ 0x5DAB,0x3B71, - /* Array index: 0x1047 */ 0x5DB0,0x3B72, - /* Array index: 0x1047 */ 0x5DB2,0x6674, - /* Array index: 0x1047 */ 0x5DB4,0x3B73, - /* Array index: 0x1047 */ 0x5DB8,0x3B74, - /* Array index: 0x1047 */ 0x5DB9,0x3B75, - /* Array index: 0x1047 */ 0x5DC3,0x3B76, - /* Array index: 0x1047 */ 0x5DC7,0x3B77, - /* Array index: 0x1047 */ 0x5DCB,0x3B78, - /* Array index: 0x1047 */ 0x5DCE,0x3B7A, - /* Array index: 0x1047 */ 0x5DD0,0x3B79, - /* Array index: 0x1047 */ 0x5DD8,0x3B7B, - /* Array index: 0x1047 */ 0x5DD9,0x3B7C, - /* Array index: 0x1047 */ 0x5DE0,0x3B7D, - /* Array index: 0x1047 */ 0x5DE4,0x3B7E, - /* Array index: 0x1047 */ 0x5DE9,0x3C21, - /* Array index: 0x1047 */ 0x5DF8,0x3C22, - /* Array index: 0x1047 */ 0x5DF9,0x3C23, - /* Array index: 0x1047 */ 0x5E00,0x3C24, - /* Array index: 0x1047 */ 0x5E07,0x3C25, - /* Array index: 0x1047 */ 0x5E0D,0x3C26, - /* Array index: 0x1047 */ 0x5E12,0x3C27, - /* Array index: 0x1047 */ 0x5E14,0x3C28, - /* Array index: 0x1047 */ 0x5E15,0x3C29, - /* Array index: 0x1047 */ 0x5E18,0x3C2A, - /* Array index: 0x1047 */ 0x5E1F,0x3C2B, - /* Array index: 0x1047 */ 0x5E20,0x3C2C, - /* Array index: 0x1047 */ 0x5E28,0x3C2E, - /* Array index: 0x1047 */ 0x5E2E,0x3C2D, - /* Array index: 0x1047 */ 0x5E32,0x3C2F, - /* Array index: 0x1047 */ 0x5E35,0x3C30, - /* Array index: 0x1047 */ 0x5E3E,0x3C31, - /* Array index: 0x1047 */ 0x5E49,0x3C34, - /* Array index: 0x1047 */ 0x5E4B,0x3C32, - /* Array index: 0x1047 */ 0x5E50,0x3C33, - /* Array index: 0x1047 */ 0x5E51,0x3C35, - /* Array index: 0x1047 */ 0x5E56,0x3C36, - /* Array index: 0x1047 */ 0x5E58,0x3C37, - /* Array index: 0x1047 */ 0x5E5B,0x3C38, - /* Array index: 0x1047 */ 0x5E5C,0x3C39, - /* Array index: 0x1047 */ 0x5E5E,0x3C3A, - /* Array index: 0x1047 */ 0x5E80,0x3C42, - /* Array index: 0x1047 */ 0x5E8B,0x3C43, - /* Array index: 0x1047 */ 0x5E8E,0x3C44, - /* Array index: 0x1047 */ 0x5EA2,0x3C45, - /* Array index: 0x1047 */ 0x5EA4,0x3C46, - /* Array index: 0x1047 */ 0x5EA5,0x3C47, - /* Array index: 0x1047 */ 0x5EA8,0x3C48, - /* Array index: 0x1047 */ 0x5EAA,0x3C49, - /* Array index: 0x1047 */ 0x5EAC,0x3C4A, - /* Array index: 0x1047 */ 0x5EB1,0x3C4B, - /* Array index: 0x1047 */ 0x5EB3,0x3C4C, - /* Array index: 0x1047 */ 0x5EC6,0x3C50, - /* Array index: 0x1047 */ 0x5ECB,0x3C52, - /* Array index: 0x1047 */ 0x5ECC,0x3C51, - /* Array index: 0x1047 */ 0x5ECE,0x3C53, - /* Array index: 0x1047 */ 0x5EDC,0x3C58, - /* Array index: 0x1047 */ 0x5EDE,0x3C59, - /* Array index: 0x1047 */ 0x5EE5,0x3C5A, - /* Array index: 0x1047 */ 0x5EEB,0x3C5B, - /* Array index: 0x1047 */ 0x5F02,0x3C5C, - /* Array index: 0x1047 */ 0x5F0E,0x3C60, - /* Array index: 0x1047 */ 0x5F19,0x3C61, - /* Array index: 0x1047 */ 0x5F1C,0x3C62, - /* Array index: 0x1047 */ 0x5F1D,0x3C63, - /* Array index: 0x1047 */ 0x5F28,0x3C68, - /* Array index: 0x1047 */ 0x5F2B,0x3C69, - /* Array index: 0x1047 */ 0x5F2C,0x3C6A, - /* Array index: 0x1047 */ 0x5F2E,0x3C6B, - /* Array index: 0x1047 */ 0x5F30,0x3C6C, - /* Array index: 0x1047 */ 0x5F34,0x3C6D, - /* Array index: 0x1047 */ 0x5F36,0x3C6E, - /* Array index: 0x1047 */ 0x5F3B,0x3C6F, - /* Array index: 0x1047 */ 0x5F3D,0x3C70, - /* Array index: 0x1047 */ 0x5F3F,0x3C71, - /* Array index: 0x1047 */ 0x5F40,0x3C72, - /* Array index: 0x1047 */ 0x5F44,0x3C73, - /* Array index: 0x1047 */ 0x5F45,0x3C74, - /* Array index: 0x1047 */ 0x5F47,0x3C75, - /* Array index: 0x1047 */ 0x5F4D,0x3C76, - /* Array index: 0x1047 */ 0x5F50,0x3C77, - /* Array index: 0x1047 */ 0x5F54,0x3C78, - /* Array index: 0x1047 */ 0x5F58,0x3C79, - /* Array index: 0x1047 */ 0x5F5B,0x3C7A, - /* Array index: 0x1047 */ 0x5F60,0x3C7B, - /* Array index: 0x1047 */ 0x5F63,0x3C7C, - /* Array index: 0x1047 */ 0x5F64,0x3C7D, - /* Array index: 0x1047 */ 0x5F67,0x3C7E, - /* Array index: 0x1047 */ 0x5F6F,0x3D21, - /* Array index: 0x1047 */ 0x5F72,0x3D22, - /* Array index: 0x1047 */ 0x5F74,0x3D23, - /* Array index: 0x1047 */ 0x5F75,0x3D24, - /* Array index: 0x1047 */ 0x5F78,0x3D25, - /* Array index: 0x1047 */ 0x5F7A,0x3D26, - /* Array index: 0x1047 */ 0x5F7D,0x3D27, - /* Array index: 0x1047 */ 0x5F7E,0x3D28, - /* Array index: 0x1047 */ 0x5F89,0x3D29, - /* Array index: 0x1047 */ 0x5F8D,0x3D2A, - /* Array index: 0x1047 */ 0x5F8F,0x3D2B, - /* Array index: 0x1047 */ 0x5F96,0x3D2C, - /* Array index: 0x1047 */ 0x5F9C,0x3D2D, - /* Array index: 0x1047 */ 0x5F9D,0x3D2E, - /* Array index: 0x1047 */ 0x5FA2,0x3D2F, - /* Array index: 0x1047 */ 0x5FA4,0x3D32, - /* Array index: 0x1047 */ 0x5FA7,0x3D30, - /* Array index: 0x1047 */ 0x5FB8,0x3D37, - /* Array index: 0x1047 */ 0x5FC4,0x3D38, - /* Array index: 0x1047 */ 0x5FDE,0x3D42, - /* Array index: 0x1047 */ 0x5FE1,0x3D43, - /* Array index: 0x1047 */ 0x5FE2,0x3D44, - /* Array index: 0x1047 */ 0x5FF6,0x3D4E, - /* Array index: 0x1047 */ 0x5FFA,0x3D4F, - /* Array index: 0x1047 */ 0x5FFC,0x3D50, - /* Array index: 0x1047 */ 0x6007,0x3D51, - /* Array index: 0x1047 */ 0x600A,0x3D52, - /* Array index: 0x1047 */ 0x600D,0x3D53, - /* Array index: 0x1047 */ 0x6013,0x3D54, - /* Array index: 0x1047 */ 0x6014,0x3D55, - /* Array index: 0x1047 */ 0x6017,0x3D56, - /* Array index: 0x1047 */ 0x6018,0x3D57, - /* Array index: 0x1047 */ 0x601A,0x3D58, - /* Array index: 0x1047 */ 0x601F,0x3D59, - /* Array index: 0x1047 */ 0x6024,0x3D5A, - /* Array index: 0x1047 */ 0x602D,0x3D5B, - /* Array index: 0x1047 */ 0x6033,0x3D5C, - /* Array index: 0x1047 */ 0x6035,0x3D5D, - /* Array index: 0x1047 */ 0x6040,0x3D5E, - /* Array index: 0x1047 */ 0x604C,0x3D62, - /* Array index: 0x1047 */ 0x6051,0x3D63, - /* Array index: 0x1047 */ 0x6054,0x3D64, - /* Array index: 0x1047 */ 0x6056,0x3D65, - /* Array index: 0x1047 */ 0x6057,0x3D66, - /* Array index: 0x1047 */ 0x605D,0x3D67, - /* Array index: 0x1047 */ 0x6061,0x3D68, - /* Array index: 0x1047 */ 0x6067,0x3D69, - /* Array index: 0x1047 */ 0x6071,0x3D6A, - /* Array index: 0x1047 */ 0x607E,0x3D6B, - /* Array index: 0x1047 */ 0x607F,0x3D6C, - /* Array index: 0x1047 */ 0x6082,0x3D6D, - /* Array index: 0x1047 */ 0x6086,0x3D6E, - /* Array index: 0x1047 */ 0x6088,0x3D6F, - /* Array index: 0x1047 */ 0x608A,0x3D70, - /* Array index: 0x1047 */ 0x608E,0x3D71, - /* Array index: 0x1047 */ 0x6091,0x3D72, - /* Array index: 0x1047 */ 0x6093,0x3D73, - /* Array index: 0x1047 */ 0x6095,0x3D74, - /* Array index: 0x1047 */ 0x6098,0x3D75, - /* Array index: 0x1047 */ 0x609D,0x3D76, - /* Array index: 0x1047 */ 0x609E,0x3D77, - /* Array index: 0x1047 */ 0x60A2,0x3D78, - /* Array index: 0x1047 */ 0x60A4,0x3D79, - /* Array index: 0x1047 */ 0x60A5,0x3D7A, - /* Array index: 0x1047 */ 0x60A8,0x3D7B, - /* Array index: 0x1047 */ 0x60B0,0x3D7C, - /* Array index: 0x1047 */ 0x60B1,0x3D7D, - /* Array index: 0x1047 */ 0x60B7,0x3D7E, - /* Array index: 0x1047 */ 0x60BB,0x3E21, - /* Array index: 0x1047 */ 0x60BE,0x3E22, - /* Array index: 0x1047 */ 0x60C2,0x3E23, - /* Array index: 0x1047 */ 0x60C4,0x3E24, - /* Array index: 0x1047 */ 0x60D4,0x3E2B, - /* Array index: 0x1047 */ 0x60D5,0x3E2C, - /* Array index: 0x1047 */ 0x60D9,0x3E2D, - /* Array index: 0x1047 */ 0x60DB,0x3E2E, - /* Array index: 0x1047 */ 0x60DD,0x3E2F, - /* Array index: 0x1047 */ 0x60DE,0x3E30, - /* Array index: 0x1047 */ 0x60E2,0x3E31, - /* Array index: 0x1047 */ 0x60E5,0x3E32, - /* Array index: 0x1047 */ 0x60F2,0x3E33, - /* Array index: 0x1047 */ 0x60F5,0x3E34, - /* Array index: 0x1047 */ 0x60F8,0x3E35, - /* Array index: 0x1047 */ 0x60FC,0x3E36, - /* Array index: 0x1047 */ 0x60FD,0x3E37, - /* Array index: 0x1047 */ 0x6102,0x3E38, - /* Array index: 0x1047 */ 0x6107,0x3E39, - /* Array index: 0x1047 */ 0x610A,0x3E3A, - /* Array index: 0x1047 */ 0x610C,0x3E3B, - /* Array index: 0x1047 */ 0x611C,0x3E44, - /* Array index: 0x1047 */ 0x611E,0x3E45, - /* Array index: 0x1047 */ 0x6122,0x3E46, - /* Array index: 0x1047 */ 0x612A,0x3E47, - /* Array index: 0x1047 */ 0x612B,0x3E48, - /* Array index: 0x1047 */ 0x6130,0x3E49, - /* Array index: 0x1047 */ 0x6131,0x3E4A, - /* Array index: 0x1047 */ 0x6141,0x3E4F, - /* Array index: 0x1047 */ 0x6145,0x3E50, - /* Array index: 0x1047 */ 0x6146,0x3E51, - /* Array index: 0x1047 */ 0x6149,0x3E52, - /* Array index: 0x1047 */ 0x615E,0x3E53, - /* Array index: 0x1047 */ 0x6160,0x3E54, - /* Array index: 0x1047 */ 0x616C,0x3E55, - /* Array index: 0x1047 */ 0x6172,0x3E56, - /* Array index: 0x1047 */ 0x6178,0x3E57, - /* Array index: 0x1047 */ 0x618B,0x3E5F, - /* Array index: 0x1047 */ 0x618D,0x3E60, - /* Array index: 0x1047 */ 0x6192,0x3E61, - /* Array index: 0x1047 */ 0x6193,0x3E62, - /* Array index: 0x1047 */ 0x6197,0x3E63, - /* Array index: 0x1047 */ 0x6198,0x3E64, - /* Array index: 0x1047 */ 0x61A5,0x3E69, - /* Array index: 0x1047 */ 0x61A8,0x3E6A, - /* Array index: 0x1047 */ 0x61AA,0x3E6B, - /* Array index: 0x1047 */ 0x61AD,0x3E6C, - /* Array index: 0x1047 */ 0x61B8,0x3E6D, - /* Array index: 0x1047 */ 0x61B9,0x3E6E, - /* Array index: 0x1047 */ 0x61BC,0x3E6F, - /* Array index: 0x1047 */ 0x61CE,0x3E73, - /* Array index: 0x1047 */ 0x61CF,0x3E74, - /* Array index: 0x1047 */ 0x61D5,0x3E75, - /* Array index: 0x1047 */ 0x61E5,0x3E7E, - /* Array index: 0x1047 */ 0x61E7,0x3E7C, - /* Array index: 0x1047 */ 0x61E9,0x3E7D, - /* Array index: 0x1047 */ 0x61EC,0x3F21, - /* Array index: 0x1047 */ 0x61ED,0x3F22, - /* Array index: 0x1047 */ 0x61EF,0x3F23, - /* Array index: 0x1047 */ 0x6201,0x3F24, - /* Array index: 0x1047 */ 0x6203,0x3F25, - /* Array index: 0x1047 */ 0x6204,0x3F26, - /* Array index: 0x1047 */ 0x6207,0x3F27, - /* Array index: 0x1047 */ 0x6213,0x3F28, - /* Array index: 0x1047 */ 0x6215,0x3F29, - /* Array index: 0x1047 */ 0x621C,0x3F2A, - /* Array index: 0x1047 */ 0x6220,0x3F2B, - /* Array index: 0x1047 */ 0x6222,0x3F2C, - /* Array index: 0x1047 */ 0x6223,0x3F2D, - /* Array index: 0x1047 */ 0x6227,0x3F2E, - /* Array index: 0x1047 */ 0x6229,0x3F2F, - /* Array index: 0x1047 */ 0x622B,0x3F30, - /* Array index: 0x1047 */ 0x6239,0x3F31, - /* Array index: 0x1047 */ 0x623D,0x3F32, - /* Array index: 0x1047 */ 0x624C,0x3F37, - /* Array index: 0x1047 */ 0x625A,0x3F3D, - /* Array index: 0x1047 */ 0x625C,0x3F3E, - /* Array index: 0x1047 */ 0x6264,0x3F3F, - /* Array index: 0x1047 */ 0x626D,0x3F40, - /* Array index: 0x1047 */ 0x626F,0x3F41, - /* Array index: 0x1047 */ 0x6273,0x3F42, - /* Array index: 0x1047 */ 0x627A,0x3F43, - /* Array index: 0x1047 */ 0x627D,0x3F44, - /* Array index: 0x1047 */ 0x62A6,0x3F49, - /* Array index: 0x1047 */ 0x62A8,0x3F4A, - /* Array index: 0x1047 */ 0x62B3,0x3F4B, - /* Array index: 0x1047 */ 0x62B6,0x3F4C, - /* Array index: 0x1047 */ 0x62B7,0x3F4D, - /* Array index: 0x1047 */ 0x62BA,0x3F4E, - /* Array index: 0x1047 */ 0x62BE,0x3F4F, - /* Array index: 0x1047 */ 0x62BF,0x3F50, - /* Array index: 0x1047 */ 0x62C4,0x3F51, - /* Array index: 0x1047 */ 0x62CE,0x3F52, - /* Array index: 0x1047 */ 0x62D5,0x3F53, - /* Array index: 0x1047 */ 0x62D6,0x3F54, - /* Array index: 0x1047 */ 0x62DA,0x3F55, - /* Array index: 0x1047 */ 0x62EA,0x3F56, - /* Array index: 0x1047 */ 0x62F2,0x3F57, - /* Array index: 0x1047 */ 0x62F4,0x3F58, - /* Array index: 0x1047 */ 0x62FC,0x3F59, - /* Array index: 0x1047 */ 0x62FD,0x3F5A, - /* Array index: 0x1047 */ 0x6303,0x3F5B, - /* Array index: 0x1047 */ 0x6304,0x3F5C, - /* Array index: 0x1047 */ 0x630A,0x3F5D, - /* Array index: 0x1047 */ 0x630B,0x3F5E, - /* Array index: 0x1047 */ 0x630D,0x3F5F, - /* Array index: 0x1047 */ 0x6310,0x3F60, - /* Array index: 0x1047 */ 0x6313,0x3F61, - /* Array index: 0x1047 */ 0x6316,0x3F62, - /* Array index: 0x1047 */ 0x6318,0x3F63, - /* Array index: 0x1047 */ 0x6329,0x3F64, - /* Array index: 0x1047 */ 0x632A,0x3F65, - /* Array index: 0x1047 */ 0x632D,0x3F66, - /* Array index: 0x1047 */ 0x6335,0x3F67, - /* Array index: 0x1047 */ 0x6336,0x3F68, - /* Array index: 0x1047 */ 0x6339,0x3F69, - /* Array index: 0x1047 */ 0x633C,0x3F6A, - /* Array index: 0x1047 */ 0x634A,0x3F70, - /* Array index: 0x1047 */ 0x634B,0x3F71, - /* Array index: 0x1047 */ 0x634E,0x3F72, - /* Array index: 0x1047 */ 0x6358,0x3F76, - /* Array index: 0x1047 */ 0x635B,0x3F77, - /* Array index: 0x1047 */ 0x6365,0x3F78, - /* Array index: 0x1047 */ 0x6366,0x3F79, - /* Array index: 0x1047 */ 0x636C,0x3F7A, - /* Array index: 0x1047 */ 0x636D,0x3F7B, - /* Array index: 0x1047 */ 0x6371,0x3F7C, - /* Array index: 0x1047 */ 0x6374,0x3F7D, - /* Array index: 0x1047 */ 0x6375,0x3F7E, - /* Array index: 0x1047 */ 0x6378,0x4021, - /* Array index: 0x1047 */ 0x637C,0x4022, - /* Array index: 0x1047 */ 0x637D,0x4023, - /* Array index: 0x1047 */ 0x637F,0x4024, - /* Array index: 0x1047 */ 0x6382,0x4025, - /* Array index: 0x1047 */ 0x6384,0x4026, - /* Array index: 0x1047 */ 0x6387,0x4027, - /* Array index: 0x1047 */ 0x638A,0x4028, - /* Array index: 0x1047 */ 0x6390,0x4029, - /* Array index: 0x1047 */ 0x6394,0x402A, - /* Array index: 0x1047 */ 0x6395,0x402B, - /* Array index: 0x1047 */ 0x6399,0x402C, - /* Array index: 0x1047 */ 0x639A,0x402D, - /* Array index: 0x1047 */ 0x639E,0x402E, - /* Array index: 0x1047 */ 0x63A4,0x402F, - /* Array index: 0x1047 */ 0x63A6,0x4030, - /* Array index: 0x1047 */ 0x63BD,0x4034, - /* Array index: 0x1047 */ 0x63C1,0x4035, - /* Array index: 0x1047 */ 0x63C5,0x4036, - /* Array index: 0x1047 */ 0x63C8,0x4037, - /* Array index: 0x1047 */ 0x63CE,0x4038, - /* Array index: 0x1047 */ 0x63DC,0x403D, - /* Array index: 0x1047 */ 0x63E0,0x403E, - /* Array index: 0x1047 */ 0x63E5,0x403F, - /* Array index: 0x1047 */ 0x63EA,0x4040, - /* Array index: 0x1047 */ 0x63EC,0x4041, - /* Array index: 0x1047 */ 0x63F2,0x4042, - /* Array index: 0x1047 */ 0x63F3,0x4043, - /* Array index: 0x1047 */ 0x63F5,0x4044, - /* Array index: 0x1047 */ 0x63F8,0x4045, - /* Array index: 0x1047 */ 0x63F9,0x4046, - /* Array index: 0x1047 */ 0x6409,0x4047, - /* Array index: 0x1047 */ 0x640A,0x4048, - /* Array index: 0x1047 */ 0x6410,0x4049, - /* Array index: 0x1047 */ 0x6412,0x404A, - /* Array index: 0x1047 */ 0x6414,0x404B, - /* Array index: 0x1047 */ 0x6418,0x404C, - /* Array index: 0x1047 */ 0x641E,0x404D, - /* Array index: 0x1047 */ 0x6420,0x404E, - /* Array index: 0x1047 */ 0x6422,0x404F, - /* Array index: 0x1047 */ 0x6424,0x4050, - /* Array index: 0x1047 */ 0x6425,0x4051, - /* Array index: 0x1047 */ 0x6429,0x4052, - /* Array index: 0x1047 */ 0x642A,0x4053, - /* Array index: 0x1047 */ 0x642F,0x4054, - /* Array index: 0x1047 */ 0x6430,0x4055, - /* Array index: 0x1047 */ 0x6435,0x4056, - /* Array index: 0x1047 */ 0x643D,0x4057, - /* Array index: 0x1047 */ 0x643F,0x4058, - /* Array index: 0x1047 */ 0x644B,0x4059, - /* Array index: 0x1047 */ 0x646D,0x4067, - /* Array index: 0x1047 */ 0x6473,0x4068, - /* Array index: 0x1047 */ 0x6474,0x4069, - /* Array index: 0x1047 */ 0x647B,0x406A, - /* Array index: 0x1047 */ 0x647D,0x406B, - /* Array index: 0x1047 */ 0x6485,0x406C, - /* Array index: 0x1047 */ 0x6487,0x406D, - /* Array index: 0x1047 */ 0x6498,0x4071, - /* Array index: 0x1047 */ 0x6499,0x4072, - /* Array index: 0x1047 */ 0x649B,0x4073, - /* Array index: 0x1047 */ 0x649D,0x4074, - /* Array index: 0x1047 */ 0x649F,0x4075, - /* Array index: 0x1047 */ 0x64A1,0x4076, - /* Array index: 0x1047 */ 0x64A3,0x4077, - /* Array index: 0x1047 */ 0x64A6,0x4078, - /* Array index: 0x1047 */ 0x64A8,0x4079, - /* Array index: 0x1047 */ 0x64AC,0x407A, - /* Array index: 0x1047 */ 0x64B3,0x407B, - /* Array index: 0x1047 */ 0x64C4,0x4121, - /* Array index: 0x1047 */ 0x64D5,0x4129, - /* Array index: 0x1047 */ 0x64D7,0x412A, - /* Array index: 0x1047 */ 0x64E4,0x412B, - /* Array index: 0x1047 */ 0x64E5,0x412C, - /* Array index: 0x1047 */ 0x64E9,0x412D, - /* Array index: 0x1047 */ 0x64EA,0x412E, - /* Array index: 0x1047 */ 0x64ED,0x412F, - /* Array index: 0x1047 */ 0x64F0,0x4130, - /* Array index: 0x1047 */ 0x64F5,0x4131, - /* Array index: 0x1047 */ 0x64F7,0x4132, - /* Array index: 0x1047 */ 0x64FB,0x4133, - /* Array index: 0x1047 */ 0x64FF,0x4134, - /* Array index: 0x1047 */ 0x6501,0x4135, - /* Array index: 0x1047 */ 0x6504,0x4136, - /* Array index: 0x1047 */ 0x650F,0x413A, - /* Array index: 0x1047 */ 0x6513,0x413B, - /* Array index: 0x1047 */ 0x6514,0x413C, - /* Array index: 0x1047 */ 0x6516,0x413D, - /* Array index: 0x1047 */ 0x6519,0x413E, - /* Array index: 0x1047 */ 0x651B,0x413F, - /* Array index: 0x1047 */ 0x651E,0x4140, - /* Array index: 0x1047 */ 0x651F,0x4141, - /* Array index: 0x1047 */ 0x6522,0x4142, - /* Array index: 0x1047 */ 0x6526,0x4143, - /* Array index: 0x1047 */ 0x6529,0x4144, - /* Array index: 0x1047 */ 0x652E,0x4145, - /* Array index: 0x1047 */ 0x6531,0x4146, - /* Array index: 0x1047 */ 0x653A,0x4147, - /* Array index: 0x1047 */ 0x653C,0x4148, - /* Array index: 0x1047 */ 0x653D,0x4149, - /* Array index: 0x1047 */ 0x6543,0x414A, - /* Array index: 0x1047 */ 0x6547,0x414B, - /* Array index: 0x1047 */ 0x6549,0x414C, - /* Array index: 0x1047 */ 0x6550,0x414D, - /* Array index: 0x1047 */ 0x6552,0x414E, - /* Array index: 0x1047 */ 0x6554,0x414F, - /* Array index: 0x1047 */ 0x655F,0x4150, - /* Array index: 0x1047 */ 0x6560,0x4151, - /* Array index: 0x1047 */ 0x6567,0x4152, - /* Array index: 0x1047 */ 0x656B,0x4153, - /* Array index: 0x1047 */ 0x657A,0x4154, - /* Array index: 0x1047 */ 0x657D,0x4155, - /* Array index: 0x1047 */ 0x6581,0x4156, - /* Array index: 0x1047 */ 0x6585,0x4157, - /* Array index: 0x1047 */ 0x658A,0x4158, - /* Array index: 0x1047 */ 0x6592,0x4159, - /* Array index: 0x1047 */ 0x6595,0x415A, - /* Array index: 0x1047 */ 0x6598,0x415B, - /* Array index: 0x1047 */ 0x659D,0x415C, - /* Array index: 0x1047 */ 0x65A0,0x415D, - /* Array index: 0x1047 */ 0x65A3,0x415E, - /* Array index: 0x1047 */ 0x65A6,0x415F, - /* Array index: 0x1047 */ 0x65AE,0x4160, - /* Array index: 0x1047 */ 0x65BF,0x4164, - /* Array index: 0x1047 */ 0x65C2,0x4165, - /* Array index: 0x1047 */ 0x65C8,0x4166, - /* Array index: 0x1047 */ 0x65C9,0x4167, - /* Array index: 0x1047 */ 0x65CE,0x4168, - /* Array index: 0x1047 */ 0x65D0,0x4169, - /* Array index: 0x1047 */ 0x65D4,0x416A, - /* Array index: 0x1047 */ 0x65D6,0x416B, - /* Array index: 0x1047 */ 0x65D8,0x416C, - /* Array index: 0x1047 */ 0x65DF,0x416D, - /* Array index: 0x1047 */ 0x65F0,0x416E, - /* Array index: 0x1047 */ 0x65F2,0x416F, - /* Array index: 0x1047 */ 0x65F4,0x4170, - /* Array index: 0x1047 */ 0x65F5,0x4171, - /* Array index: 0x1047 */ 0x65F9,0x4172, - /* Array index: 0x1047 */ 0x6604,0x4176, - /* Array index: 0x1047 */ 0x6608,0x4177, - /* Array index: 0x1047 */ 0x6609,0x4178, - /* Array index: 0x1047 */ 0x660D,0x4179, - /* Array index: 0x1047 */ 0x6611,0x417A, - /* Array index: 0x1047 */ 0x6612,0x417B, - /* Array index: 0x1047 */ 0x6615,0x417C, - /* Array index: 0x1047 */ 0x6616,0x417D, - /* Array index: 0x1047 */ 0x6637,0x4230, - /* Array index: 0x1047 */ 0x6639,0x422F, - /* Array index: 0x1047 */ 0x6640,0x4231, - /* Array index: 0x1047 */ 0x6645,0x4232, - /* Array index: 0x1047 */ 0x6646,0x4233, - /* Array index: 0x1047 */ 0x664A,0x4234, - /* Array index: 0x1047 */ 0x664C,0x4235, - /* Array index: 0x1047 */ 0x664E,0x4237, - /* Array index: 0x1047 */ 0x6651,0x4236, - /* Array index: 0x1047 */ 0x6660,0x423D, - /* Array index: 0x1047 */ 0x6661,0x423E, - /* Array index: 0x1047 */ 0x6673,0x4244, - /* Array index: 0x1047 */ 0x6690,0x4250, - /* Array index: 0x1047 */ 0x6692,0x4251, - /* Array index: 0x1047 */ 0x66A4,0x4258, - /* Array index: 0x1047 */ 0x66AD,0x4259, - /* Array index: 0x1047 */ 0x66B1,0x425A, - /* Array index: 0x1047 */ 0x66B2,0x425B, - /* Array index: 0x1047 */ 0x66B5,0x425C, - /* Array index: 0x1047 */ 0x66BB,0x425D, - /* Array index: 0x1047 */ 0x66C8,0x4262, - /* Array index: 0x1047 */ 0x66CC,0x4263, - /* Array index: 0x1047 */ 0x66CE,0x4264, - /* Array index: 0x1047 */ 0x66CF,0x4265, - /* Array index: 0x1047 */ 0x66D4,0x4266, - /* Array index: 0x1047 */ 0x66DB,0x4267, - /* Array index: 0x1047 */ 0x66DF,0x4268, - /* Array index: 0x1047 */ 0x66E8,0x4269, - /* Array index: 0x1047 */ 0x66EB,0x426A, - /* Array index: 0x1047 */ 0x66EC,0x426B, - /* Array index: 0x1047 */ 0x66EE,0x426C, - /* Array index: 0x1047 */ 0x66FA,0x426D, - /* Array index: 0x1047 */ 0x66FB,0x423F, - /* Array index: 0x1047 */ 0x6705,0x426E, - /* Array index: 0x1047 */ 0x6707,0x426F, - /* Array index: 0x1047 */ 0x670E,0x4270, - /* Array index: 0x1047 */ 0x6713,0x4271, - /* Array index: 0x1047 */ 0x6719,0x4272, - /* Array index: 0x1047 */ 0x671C,0x4273, - /* Array index: 0x1047 */ 0x6720,0x4274, - /* Array index: 0x1047 */ 0x6722,0x4275, - /* Array index: 0x1047 */ 0x6733,0x4276, - /* Array index: 0x1047 */ 0x673E,0x4277, - /* Array index: 0x1047 */ 0x6745,0x4278, - /* Array index: 0x1047 */ 0x6747,0x4279, - /* Array index: 0x1047 */ 0x6748,0x427A, - /* Array index: 0x1047 */ 0x674C,0x427B, - /* Array index: 0x1047 */ 0x6754,0x427C, - /* Array index: 0x1047 */ 0x6755,0x427D, - /* Array index: 0x1047 */ 0x675D,0x427E, - /* Array index: 0x1047 */ 0x6766,0x4321, - /* Array index: 0x1047 */ 0x676C,0x4322, - /* Array index: 0x1047 */ 0x676E,0x4323, - /* Array index: 0x1047 */ 0x6774,0x4324, - /* Array index: 0x1047 */ 0x6776,0x4325, - /* Array index: 0x1047 */ 0x677B,0x4326, - /* Array index: 0x1047 */ 0x6781,0x4327, - /* Array index: 0x1047 */ 0x6784,0x4328, - /* Array index: 0x1047 */ 0x678E,0x4329, - /* Array index: 0x1047 */ 0x678F,0x432A, - /* Array index: 0x1047 */ 0x6791,0x432B, - /* Array index: 0x1047 */ 0x6793,0x432C, - /* Array index: 0x1047 */ 0x6796,0x432D, - /* Array index: 0x1047 */ 0x6798,0x432E, - /* Array index: 0x1047 */ 0x6799,0x432F, - /* Array index: 0x1047 */ 0x679B,0x4330, - /* Array index: 0x1047 */ 0x67B5,0x4334, - /* Array index: 0x1047 */ 0x67C0,0x4339, - /* Array index: 0x1047 */ 0x67C2,0x433A, - /* Array index: 0x1047 */ 0x67C3,0x433B, - /* Array index: 0x1047 */ 0x67C5,0x433C, - /* Array index: 0x1047 */ 0x67C8,0x433D, - /* Array index: 0x1047 */ 0x67C9,0x433E, - /* Array index: 0x1047 */ 0x67D2,0x433F, - /* Array index: 0x1047 */ 0x67D7,0x4340, - /* Array index: 0x1047 */ 0x67D9,0x4341, - /* Array index: 0x1047 */ 0x67DC,0x4342, - /* Array index: 0x1047 */ 0x67E1,0x4343, - /* Array index: 0x1047 */ 0x67E6,0x4344, - /* Array index: 0x1047 */ 0x67F0,0x4345, - /* Array index: 0x1047 */ 0x67F2,0x4346, - /* Array index: 0x1047 */ 0x67F6,0x4347, - /* Array index: 0x1047 */ 0x67F7,0x4348, - /* Array index: 0x1047 */ 0x67F9,0x4338, - /* Array index: 0x1047 */ 0x6814,0x434A, - /* Array index: 0x1047 */ 0x6819,0x434B, - /* Array index: 0x1047 */ 0x681D,0x434C, - /* Array index: 0x1047 */ 0x681F,0x434D, - /* Array index: 0x1047 */ 0x6827,0x434F, - /* Array index: 0x1047 */ 0x6828,0x434E, - /* Array index: 0x1047 */ 0x683B,0x4356, - /* Array index: 0x1047 */ 0x683F,0x4357, - /* Array index: 0x1047 */ 0x6844,0x4358, - /* Array index: 0x1047 */ 0x6845,0x4359, - /* Array index: 0x1047 */ 0x684A,0x435A, - /* Array index: 0x1047 */ 0x684C,0x435B, - /* Array index: 0x1047 */ 0x6852,0x4349, - /* Array index: 0x1047 */ 0x6855,0x435C, - /* Array index: 0x1047 */ 0x6857,0x435D, - /* Array index: 0x1047 */ 0x6858,0x435E, - /* Array index: 0x1047 */ 0x685B,0x435F, - /* Array index: 0x1047 */ 0x686B,0x4360, - /* Array index: 0x1047 */ 0x6875,0x4366, - /* Array index: 0x1047 */ 0x6882,0x436B, - /* Array index: 0x1047 */ 0x6884,0x436C, - /* Array index: 0x1047 */ 0x6886,0x436D, - /* Array index: 0x1047 */ 0x6888,0x436E, - /* Array index: 0x1047 */ 0x6896,0x436F, - /* Array index: 0x1047 */ 0x6898,0x4370, - /* Array index: 0x1047 */ 0x689A,0x4371, - /* Array index: 0x1047 */ 0x689C,0x4372, - /* Array index: 0x1047 */ 0x68A1,0x4373, - /* Array index: 0x1047 */ 0x68A3,0x4374, - /* Array index: 0x1047 */ 0x68A5,0x4375, - /* Array index: 0x1047 */ 0x68A9,0x4376, - /* Array index: 0x1047 */ 0x68AA,0x4377, - /* Array index: 0x1047 */ 0x68AE,0x4378, - /* Array index: 0x1047 */ 0x68B2,0x4379, - /* Array index: 0x1047 */ 0x68BB,0x437A, - /* Array index: 0x1047 */ 0x68C5,0x437B, - /* Array index: 0x1047 */ 0x68C8,0x437C, - /* Array index: 0x1047 */ 0x68CC,0x437D, - /* Array index: 0x1047 */ 0x68D6,0x4424, - /* Array index: 0x1047 */ 0x68D9,0x4425, - /* Array index: 0x1047 */ 0x68DC,0x4426, - /* Array index: 0x1047 */ 0x68DD,0x4427, - /* Array index: 0x1047 */ 0x68E5,0x4428, - /* Array index: 0x1047 */ 0x68F5,0x4430, - /* Array index: 0x1047 */ 0x68F6,0x4431, - /* Array index: 0x1047 */ 0x6906,0x4435, - /* Array index: 0x1047 */ 0x6909,0x4436, - /* Array index: 0x1047 */ 0x690A,0x4437, - /* Array index: 0x1047 */ 0x6910,0x4438, - /* Array index: 0x1047 */ 0x6911,0x4439, - /* Array index: 0x1047 */ 0x6913,0x443A, - /* Array index: 0x1047 */ 0x6916,0x443B, - /* Array index: 0x1047 */ 0x6917,0x443C, - /* Array index: 0x1047 */ 0x6931,0x443D, - /* Array index: 0x1047 */ 0x6933,0x443E, - /* Array index: 0x1047 */ 0x6935,0x443F, - /* Array index: 0x1047 */ 0x6938,0x4440, - /* Array index: 0x1047 */ 0x693B,0x4441, - /* Array index: 0x1047 */ 0x6942,0x4442, - /* Array index: 0x1047 */ 0x6945,0x4443, - /* Array index: 0x1047 */ 0x6949,0x4444, - /* Array index: 0x1047 */ 0x694E,0x4445, - /* Array index: 0x1047 */ 0x6957,0x4446, - /* Array index: 0x1047 */ 0x695B,0x4447, - /* Array index: 0x1047 */ 0x696C,0x444E, - /* Array index: 0x1047 */ 0x697A,0x4452, - /* Array index: 0x1047 */ 0x697B,0x4453, - /* Array index: 0x1047 */ 0x697F,0x4454, - /* Array index: 0x1047 */ 0x6980,0x4455, - /* Array index: 0x1047 */ 0x698D,0x4456, - /* Array index: 0x1047 */ 0x6992,0x4457, - /* Array index: 0x1047 */ 0x6996,0x4458, - /* Array index: 0x1047 */ 0x6998,0x4459, - /* Array index: 0x1047 */ 0x69A1,0x445A, - /* Array index: 0x1047 */ 0x69A5,0x445B, - /* Array index: 0x1047 */ 0x69A6,0x445C, - /* Array index: 0x1047 */ 0x69A8,0x445D, - /* Array index: 0x1047 */ 0x69AB,0x445E, - /* Array index: 0x1047 */ 0x69AD,0x445F, - /* Array index: 0x1047 */ 0x69AF,0x4460, - /* Array index: 0x1047 */ 0x69B7,0x4461, - /* Array index: 0x1047 */ 0x69B8,0x4462, - /* Array index: 0x1047 */ 0x69BA,0x4463, - /* Array index: 0x1047 */ 0x69BC,0x4464, - /* Array index: 0x1047 */ 0x69C5,0x4465, - /* Array index: 0x1047 */ 0x69C8,0x4466, - /* Array index: 0x1047 */ 0x69D1,0x4467, - /* Array index: 0x1047 */ 0x69D6,0x4468, - /* Array index: 0x1047 */ 0x69D7,0x4469, - /* Array index: 0x1047 */ 0x69E2,0x446A, - /* Array index: 0x1047 */ 0x69E5,0x446B, - /* Array index: 0x1047 */ 0x69EE,0x446C, - /* Array index: 0x1047 */ 0x69EF,0x446D, - /* Array index: 0x1047 */ 0x69F1,0x446E, - /* Array index: 0x1047 */ 0x69F3,0x446F, - /* Array index: 0x1047 */ 0x69F5,0x4470, - /* Array index: 0x1047 */ 0x69FE,0x4471, - /* Array index: 0x1047 */ 0x6A00,0x4472, - /* Array index: 0x1047 */ 0x6A01,0x4473, - /* Array index: 0x1047 */ 0x6A03,0x4474, - /* Array index: 0x1047 */ 0x6A0F,0x4475, - /* Array index: 0x1047 */ 0x6A11,0x4476, - /* Array index: 0x1047 */ 0x6A15,0x4477, - /* Array index: 0x1047 */ 0x6A1A,0x4478, - /* Array index: 0x1047 */ 0x6A1D,0x4479, - /* Array index: 0x1047 */ 0x6A20,0x447A, - /* Array index: 0x1047 */ 0x6A24,0x447B, - /* Array index: 0x1047 */ 0x6A28,0x447C, - /* Array index: 0x1047 */ 0x6A30,0x447D, - /* Array index: 0x1047 */ 0x6A32,0x447E, - /* Array index: 0x1047 */ 0x6A34,0x4521, - /* Array index: 0x1047 */ 0x6A37,0x4522, - /* Array index: 0x1047 */ 0x6A3B,0x4523, - /* Array index: 0x1047 */ 0x6A3E,0x4524, - /* Array index: 0x1047 */ 0x6A3F,0x4525, - /* Array index: 0x1047 */ 0x6A45,0x4526, - /* Array index: 0x1047 */ 0x6A46,0x4527, - /* Array index: 0x1047 */ 0x6A49,0x4528, - /* Array index: 0x1047 */ 0x6A4A,0x4529, - /* Array index: 0x1047 */ 0x6A5B,0x4530, - /* Array index: 0x1047 */ 0x6A64,0x4531, - /* Array index: 0x1047 */ 0x6A67,0x4532, - /* Array index: 0x1047 */ 0x6A6A,0x4533, - /* Array index: 0x1047 */ 0x6A71,0x4534, - /* Array index: 0x1047 */ 0x6A73,0x4535, - /* Array index: 0x1047 */ 0x6A7E,0x4536, - /* Array index: 0x1047 */ 0x6A81,0x4537, - /* Array index: 0x1047 */ 0x6A83,0x4538, - /* Array index: 0x1047 */ 0x6A86,0x4539, - /* Array index: 0x1047 */ 0x6A87,0x453A, - /* Array index: 0x1047 */ 0x6A89,0x453B, - /* Array index: 0x1047 */ 0x6A8B,0x453C, - /* Array index: 0x1047 */ 0x6A91,0x453D, - /* Array index: 0x1047 */ 0x6AA5,0x4542, - /* Array index: 0x1047 */ 0x6AAB,0x4543, - /* Array index: 0x1047 */ 0x6AB4,0x4547, - /* Array index: 0x1047 */ 0x6AC6,0x454B, - /* Array index: 0x1047 */ 0x6AC8,0x454D, - /* Array index: 0x1047 */ 0x6AC9,0x454C, - /* Array index: 0x1047 */ 0x6ACC,0x454E, - /* Array index: 0x1047 */ 0x6AD0,0x454F, - /* Array index: 0x1047 */ 0x6ADC,0x4553, - /* Array index: 0x1047 */ 0x6ADD,0x4554, - /* Array index: 0x1047 */ 0x6AE4,0x4555, - /* Array index: 0x1047 */ 0x6AE7,0x4556, - /* Array index: 0x1047 */ 0x6AEC,0x4557, - /* Array index: 0x1047 */ 0x6AFC,0x455B, - /* Array index: 0x1047 */ 0x6AFD,0x455C, - /* Array index: 0x1047 */ 0x6B02,0x455D, - /* Array index: 0x1047 */ 0x6B03,0x455E, - /* Array index: 0x1047 */ 0x6B06,0x455F, - /* Array index: 0x1047 */ 0x6B07,0x4560, - /* Array index: 0x1047 */ 0x6B09,0x4561, - /* Array index: 0x1047 */ 0x6B17,0x4565, - /* Array index: 0x1047 */ 0x6B1B,0x4566, - /* Array index: 0x1047 */ 0x6B1E,0x4567, - /* Array index: 0x1047 */ 0x6B24,0x4568, - /* Array index: 0x1047 */ 0x6B28,0x4569, - /* Array index: 0x1047 */ 0x6B2B,0x456A, - /* Array index: 0x1047 */ 0x6B2C,0x456B, - /* Array index: 0x1047 */ 0x6B2F,0x456C, - /* Array index: 0x1047 */ 0x6B35,0x456D, - /* Array index: 0x1047 */ 0x6B36,0x456E, - /* Array index: 0x1047 */ 0x6B3B,0x456F, - /* Array index: 0x1047 */ 0x6B3F,0x4570, - /* Array index: 0x1047 */ 0x6B46,0x4571, - /* Array index: 0x1047 */ 0x6B4A,0x4572, - /* Array index: 0x1047 */ 0x6B4D,0x4573, - /* Array index: 0x1047 */ 0x6B52,0x4574, - /* Array index: 0x1047 */ 0x6B56,0x4575, - /* Array index: 0x1047 */ 0x6B58,0x4576, - /* Array index: 0x1047 */ 0x6B5D,0x4577, - /* Array index: 0x1047 */ 0x6B60,0x4578, - /* Array index: 0x1047 */ 0x6B67,0x4579, - /* Array index: 0x1047 */ 0x6B6B,0x457A, - /* Array index: 0x1047 */ 0x6B6E,0x457B, - /* Array index: 0x1047 */ 0x6B70,0x457C, - /* Array index: 0x1047 */ 0x6B75,0x457D, - /* Array index: 0x1047 */ 0x6B7D,0x457E, - /* Array index: 0x1047 */ 0x6B7E,0x4621, - /* Array index: 0x1047 */ 0x6B82,0x4622, - /* Array index: 0x1047 */ 0x6B85,0x4623, - /* Array index: 0x1047 */ 0x6B97,0x4624, - /* Array index: 0x1047 */ 0x6B9B,0x4625, - /* Array index: 0x1047 */ 0x6BB8,0x4630, - /* Array index: 0x1047 */ 0x6BB9,0x4631, - /* Array index: 0x1047 */ 0x6BBD,0x4632, - /* Array index: 0x1047 */ 0x6BBE,0x4633, - /* Array index: 0x1047 */ 0x6BC3,0x4634, - /* Array index: 0x1047 */ 0x6BC4,0x4635, - /* Array index: 0x1047 */ 0x6BC9,0x4636, - /* Array index: 0x1047 */ 0x6BCC,0x4637, - /* Array index: 0x1047 */ 0x6BD6,0x4638, - /* Array index: 0x1047 */ 0x6BDA,0x4639, - /* Array index: 0x1047 */ 0x6BE1,0x463A, - /* Array index: 0x1047 */ 0x6BE3,0x463B, - /* Array index: 0x1047 */ 0x6BE6,0x463C, - /* Array index: 0x1047 */ 0x6BE7,0x463D, - /* Array index: 0x1047 */ 0x6BEE,0x463E, - /* Array index: 0x1047 */ 0x6BF1,0x463F, - /* Array index: 0x1047 */ 0x6BF7,0x4640, - /* Array index: 0x1047 */ 0x6BF9,0x4641, - /* Array index: 0x1047 */ 0x6BFF,0x4642, - /* Array index: 0x1047 */ 0x6C02,0x4643, - /* Array index: 0x1047 */ 0x6C04,0x4644, - /* Array index: 0x1047 */ 0x6C05,0x4645, - /* Array index: 0x1047 */ 0x6C09,0x4646, - /* Array index: 0x1047 */ 0x6C0D,0x4647, - /* Array index: 0x1047 */ 0x6C0E,0x4648, - /* Array index: 0x1047 */ 0x6C10,0x4649, - /* Array index: 0x1047 */ 0x6C12,0x464A, - /* Array index: 0x1047 */ 0x6C19,0x464B, - /* Array index: 0x1047 */ 0x6C1F,0x464C, - /* Array index: 0x1047 */ 0x6C2C,0x4650, - /* Array index: 0x1047 */ 0x6C2E,0x4651, - /* Array index: 0x1047 */ 0x6C33,0x4652, - /* Array index: 0x1047 */ 0x6C35,0x4653, - /* Array index: 0x1047 */ 0x6C36,0x4654, - /* Array index: 0x1047 */ 0x6C3A,0x4655, - /* Array index: 0x1047 */ 0x6C3B,0x4656, - /* Array index: 0x1047 */ 0x6C3F,0x4657, - /* Array index: 0x1047 */ 0x6C4A,0x4658, - /* Array index: 0x1047 */ 0x6C4B,0x4659, - /* Array index: 0x1047 */ 0x6C4D,0x465A, - /* Array index: 0x1047 */ 0x6C4F,0x465B, - /* Array index: 0x1047 */ 0x6C52,0x465C, - /* Array index: 0x1047 */ 0x6C54,0x465D, - /* Array index: 0x1047 */ 0x6C59,0x465E, - /* Array index: 0x1047 */ 0x6C5B,0x465F, - /* Array index: 0x1047 */ 0x6C5C,0x4660, - /* Array index: 0x1047 */ 0x6C67,0x4736, - /* Array index: 0x1047 */ 0x6C6B,0x4661, - /* Array index: 0x1047 */ 0x6C6D,0x4662, - /* Array index: 0x1047 */ 0x6C6F,0x4663, - /* Array index: 0x1047 */ 0x6C74,0x4664, - /* Array index: 0x1047 */ 0x6C76,0x4665, - /* Array index: 0x1047 */ 0x6C78,0x4666, - /* Array index: 0x1047 */ 0x6C79,0x4667, - /* Array index: 0x1047 */ 0x6C7B,0x4668, - /* Array index: 0x1047 */ 0x6C9C,0x4671, - /* Array index: 0x1047 */ 0x6C9F,0x4672, - /* Array index: 0x1047 */ 0x6CB0,0x4673, - /* Array index: 0x1047 */ 0x6CB2,0x4674, - /* Array index: 0x1047 */ 0x6CB4,0x4675, - /* Array index: 0x1047 */ 0x6CC2,0x4676, - /* Array index: 0x1047 */ 0x6CC6,0x4677, - /* Array index: 0x1047 */ 0x6CDA,0x4721, - /* Array index: 0x1047 */ 0x6CDC,0x4722, - /* Array index: 0x1047 */ 0x6CE0,0x4723, - /* Array index: 0x1047 */ 0x6CE7,0x4724, - /* Array index: 0x1047 */ 0x6CE9,0x4725, - /* Array index: 0x1047 */ 0x6CEB,0x4726, - /* Array index: 0x1047 */ 0x6CEC,0x4727, - /* Array index: 0x1047 */ 0x6CEE,0x4728, - /* Array index: 0x1047 */ 0x6CF2,0x4729, - /* Array index: 0x1047 */ 0x6CF4,0x472A, - /* Array index: 0x1047 */ 0x6D04,0x472B, - /* Array index: 0x1047 */ 0x6D07,0x472C, - /* Array index: 0x1047 */ 0x6D0A,0x472D, - /* Array index: 0x1047 */ 0x6D0E,0x472E, - /* Array index: 0x1047 */ 0x6D0F,0x472F, - /* Array index: 0x1047 */ 0x6D11,0x4730, - /* Array index: 0x1047 */ 0x6D13,0x4731, - /* Array index: 0x1047 */ 0x6D1A,0x4732, - /* Array index: 0x1047 */ 0x6D2E,0x4737, - /* Array index: 0x1047 */ 0x6D2F,0x4738, - /* Array index: 0x1047 */ 0x6D31,0x4739, - /* Array index: 0x1047 */ 0x6D39,0x473A, - /* Array index: 0x1047 */ 0x6D3C,0x473B, - /* Array index: 0x1047 */ 0x6D3F,0x473C, - /* Array index: 0x1047 */ 0x6D57,0x473D, - /* Array index: 0x1047 */ 0x6D5E,0x473E, - /* Array index: 0x1047 */ 0x6D5F,0x473F, - /* Array index: 0x1047 */ 0x6D61,0x4740, - /* Array index: 0x1047 */ 0x6D65,0x4741, - /* Array index: 0x1047 */ 0x6D67,0x4742, - /* Array index: 0x1047 */ 0x6D6F,0x4743, - /* Array index: 0x1047 */ 0x6D70,0x4744, - /* Array index: 0x1047 */ 0x6D7C,0x4745, - /* Array index: 0x1047 */ 0x6D82,0x4746, - /* Array index: 0x1047 */ 0x6D87,0x4747, - /* Array index: 0x1047 */ 0x6D91,0x4748, - /* Array index: 0x1047 */ 0x6D92,0x4749, - /* Array index: 0x1047 */ 0x6DAA,0x474E, - /* Array index: 0x1047 */ 0x6DAC,0x474F, - /* Array index: 0x1047 */ 0x6DB4,0x4750, - /* Array index: 0x1047 */ 0x6DB7,0x4751, - /* Array index: 0x1047 */ 0x6DB9,0x4752, - /* Array index: 0x1047 */ 0x6DBD,0x4753, - /* Array index: 0x1047 */ 0x6DBF,0x4754, - /* Array index: 0x1047 */ 0x6DC4,0x4755, - /* Array index: 0x1047 */ 0x6DC8,0x4756, - /* Array index: 0x1047 */ 0x6DCA,0x4757, - /* Array index: 0x1047 */ 0x6DCE,0x4758, - /* Array index: 0x1047 */ 0x6DCF,0x4759, - /* Array index: 0x1047 */ 0x6DD6,0x475A, - /* Array index: 0x1047 */ 0x6DDB,0x475B, - /* Array index: 0x1047 */ 0x6DDD,0x475C, - /* Array index: 0x1047 */ 0x6DDF,0x475D, - /* Array index: 0x1047 */ 0x6DE0,0x475E, - /* Array index: 0x1047 */ 0x6DE2,0x475F, - /* Array index: 0x1047 */ 0x6DE5,0x4760, - /* Array index: 0x1047 */ 0x6DE9,0x4761, - /* Array index: 0x1047 */ 0x6DEF,0x4762, - /* Array index: 0x1047 */ 0x6DF0,0x4763, - /* Array index: 0x1047 */ 0x6DF4,0x4764, - /* Array index: 0x1047 */ 0x6DF6,0x4765, - /* Array index: 0x1047 */ 0x6DFC,0x4766, - /* Array index: 0x1047 */ 0x6E00,0x4767, - /* Array index: 0x1047 */ 0x6E04,0x4768, - /* Array index: 0x1047 */ 0x6E1E,0x4769, - /* Array index: 0x1047 */ 0x6E22,0x476A, - /* Array index: 0x1047 */ 0x6E27,0x476B, - /* Array index: 0x1047 */ 0x6E32,0x476C, - /* Array index: 0x1047 */ 0x6E36,0x476D, - /* Array index: 0x1047 */ 0x6E39,0x476E, - /* Array index: 0x1047 */ 0x6E3B,0x476F, - /* Array index: 0x1047 */ 0x6E3C,0x4770, - /* Array index: 0x1047 */ 0x6E44,0x4771, - /* Array index: 0x1047 */ 0x6E45,0x4772, - /* Array index: 0x1047 */ 0x6E48,0x4773, - /* Array index: 0x1047 */ 0x6E49,0x4774, - /* Array index: 0x1047 */ 0x6E4B,0x4775, - /* Array index: 0x1047 */ 0x6E57,0x477B, - /* Array index: 0x1047 */ 0x6E62,0x4821, - /* Array index: 0x1047 */ 0x6E63,0x4822, - /* Array index: 0x1047 */ 0x6E68,0x4823, - /* Array index: 0x1047 */ 0x6E73,0x4824, - /* Array index: 0x1047 */ 0x6E7B,0x4825, - /* Array index: 0x1047 */ 0x6E7D,0x4826, - /* Array index: 0x1047 */ 0x6E8D,0x4827, - /* Array index: 0x1047 */ 0x6E93,0x4828, - /* Array index: 0x1047 */ 0x6E99,0x4829, - /* Array index: 0x1047 */ 0x6EA0,0x482A, - /* Array index: 0x1047 */ 0x6EA7,0x482B, - /* Array index: 0x1047 */ 0x6EAD,0x482C, - /* Array index: 0x1047 */ 0x6EAE,0x482D, - /* Array index: 0x1047 */ 0x6EB1,0x482E, - /* Array index: 0x1047 */ 0x6EB3,0x482F, - /* Array index: 0x1047 */ 0x6EBB,0x4830, - /* Array index: 0x1047 */ 0x6EC7,0x4835, - /* Array index: 0x1047 */ 0x6EC8,0x4836, - /* Array index: 0x1047 */ 0x6ECA,0x4837, - /* Array index: 0x1047 */ 0x6EEB,0x483B, - /* Array index: 0x1047 */ 0x6EED,0x483C, - /* Array index: 0x1047 */ 0x6EEE,0x483D, - /* Array index: 0x1047 */ 0x6EF9,0x483E, - /* Array index: 0x1047 */ 0x6EFB,0x483F, - /* Array index: 0x1047 */ 0x6EFD,0x4840, - /* Array index: 0x1047 */ 0x6F04,0x4841, - /* Array index: 0x1047 */ 0x6F08,0x4842, - /* Array index: 0x1047 */ 0x6F0A,0x4843, - /* Array index: 0x1047 */ 0x6F0C,0x4844, - /* Array index: 0x1047 */ 0x6F0D,0x4845, - /* Array index: 0x1047 */ 0x6F16,0x4846, - /* Array index: 0x1047 */ 0x6F18,0x4847, - /* Array index: 0x1047 */ 0x6F1A,0x4848, - /* Array index: 0x1047 */ 0x6F1B,0x4849, - /* Array index: 0x1047 */ 0x6F26,0x484A, - /* Array index: 0x1047 */ 0x6F29,0x484B, - /* Array index: 0x1047 */ 0x6F2A,0x484C, - /* Array index: 0x1047 */ 0x6F2D,0x4853, - /* Array index: 0x1047 */ 0x6F2F,0x484D, - /* Array index: 0x1047 */ 0x6F30,0x484E, - /* Array index: 0x1047 */ 0x6F33,0x484F, - /* Array index: 0x1047 */ 0x6F36,0x4850, - /* Array index: 0x1047 */ 0x6F3B,0x4851, - /* Array index: 0x1047 */ 0x6F3C,0x4852, - /* Array index: 0x1047 */ 0x6F57,0x4858, - /* Array index: 0x1047 */ 0x6F59,0x4859, - /* Array index: 0x1047 */ 0x6F5A,0x485A, - /* Array index: 0x1047 */ 0x6F5D,0x485B, - /* Array index: 0x1047 */ 0x6F5E,0x485C, - /* Array index: 0x1047 */ 0x6F61,0x485D, - /* Array index: 0x1047 */ 0x6F62,0x485E, - /* Array index: 0x1047 */ 0x6F68,0x485F, - /* Array index: 0x1047 */ 0x6F6C,0x4860, - /* Array index: 0x1047 */ 0x6F7D,0x4861, - /* Array index: 0x1047 */ 0x6F7E,0x4862, - /* Array index: 0x1047 */ 0x6F83,0x4863, - /* Array index: 0x1047 */ 0x6F9A,0x486E, - /* Array index: 0x1047 */ 0x6F9F,0x486F, - /* Array index: 0x1047 */ 0x6FA0,0x4870, - /* Array index: 0x1047 */ 0x6FB5,0x4878, - /* Array index: 0x1047 */ 0x6FB6,0x4879, - /* Array index: 0x1047 */ 0x6FBC,0x487A, - /* Array index: 0x1047 */ 0x6FC5,0x487B, - /* Array index: 0x1047 */ 0x6FC7,0x487C, - /* Array index: 0x1047 */ 0x6FC8,0x487D, - /* Array index: 0x1047 */ 0x6FCA,0x487E, - /* Array index: 0x1047 */ 0x6FDA,0x4921, - /* Array index: 0x1047 */ 0x6FDE,0x4922, - /* Array index: 0x1047 */ 0x6FE8,0x4923, - /* Array index: 0x1047 */ 0x6FE9,0x4924, - /* Array index: 0x1047 */ 0x6FF0,0x4925, - /* Array index: 0x1047 */ 0x6FF5,0x4926, - /* Array index: 0x1047 */ 0x6FF9,0x4927, - /* Array index: 0x1047 */ 0x6FFC,0x4928, - /* Array index: 0x1047 */ 0x6FFD,0x4929, - /* Array index: 0x1047 */ 0x7000,0x492A, - /* Array index: 0x1047 */ 0x700D,0x492E, - /* Array index: 0x1047 */ 0x7017,0x492F, - /* Array index: 0x1047 */ 0x7020,0x4930, - /* Array index: 0x1047 */ 0x7023,0x4931, - /* Array index: 0x1047 */ 0x702F,0x4932, - /* Array index: 0x1047 */ 0x7034,0x4933, - /* Array index: 0x1047 */ 0x7037,0x4934, - /* Array index: 0x1047 */ 0x7039,0x4935, - /* Array index: 0x1047 */ 0x703C,0x4936, - /* Array index: 0x1047 */ 0x7043,0x4937, - /* Array index: 0x1047 */ 0x7044,0x4938, - /* Array index: 0x1047 */ 0x704E,0x4941, - /* Array index: 0x1047 */ 0x7054,0x493D, - /* Array index: 0x1047 */ 0x7055,0x493E, - /* Array index: 0x1047 */ 0x705D,0x493F, - /* Array index: 0x1047 */ 0x705E,0x4940, - /* Array index: 0x1047 */ 0x7064,0x4942, - /* Array index: 0x1047 */ 0x7065,0x4943, - /* Array index: 0x1047 */ 0x706C,0x4944, - /* Array index: 0x1047 */ 0x706E,0x4945, - /* Array index: 0x1047 */ 0x7075,0x4946, - /* Array index: 0x1047 */ 0x7076,0x4947, - /* Array index: 0x1047 */ 0x707E,0x4948, - /* Array index: 0x1047 */ 0x7081,0x4949, - /* Array index: 0x1047 */ 0x7085,0x494A, - /* Array index: 0x1047 */ 0x7086,0x494B, - /* Array index: 0x1047 */ 0x709B,0x4951, - /* Array index: 0x1047 */ 0x70A4,0x4952, - /* Array index: 0x1047 */ 0x70AB,0x4953, - /* Array index: 0x1047 */ 0x70B0,0x4954, - /* Array index: 0x1047 */ 0x70B1,0x4955, - /* Array index: 0x1047 */ 0x70B4,0x4956, - /* Array index: 0x1047 */ 0x70B7,0x4957, - /* Array index: 0x1047 */ 0x70CA,0x4958, - /* Array index: 0x1047 */ 0x70DC,0x495F, - /* Array index: 0x1047 */ 0x70E4,0x4960, - /* Array index: 0x1047 */ 0x70FA,0x4961, - /* Array index: 0x1047 */ 0x710B,0x4967, - /* Array index: 0x1047 */ 0x710C,0x4968, - /* Array index: 0x1047 */ 0x710F,0x4969, - /* Array index: 0x1047 */ 0x711E,0x496A, - /* Array index: 0x1047 */ 0x7120,0x496B, - /* Array index: 0x1047 */ 0x712B,0x496C, - /* Array index: 0x1047 */ 0x7138,0x4971, - /* Array index: 0x1047 */ 0x7141,0x4972, - /* Array index: 0x1047 */ 0x7150,0x4978, - /* Array index: 0x1047 */ 0x7152,0x4979, - /* Array index: 0x1047 */ 0x7157,0x497A, - /* Array index: 0x1047 */ 0x715A,0x497B, - /* Array index: 0x1047 */ 0x715C,0x497C, - /* Array index: 0x1047 */ 0x715E,0x497D, - /* Array index: 0x1047 */ 0x7160,0x497E, - /* Array index: 0x1047 */ 0x7168,0x4A21, - /* Array index: 0x1047 */ 0x7179,0x4A22, - /* Array index: 0x1047 */ 0x7180,0x4A23, - /* Array index: 0x1047 */ 0x7185,0x4A24, - /* Array index: 0x1047 */ 0x7187,0x4A25, - /* Array index: 0x1047 */ 0x718C,0x4A26, - /* Array index: 0x1047 */ 0x7192,0x4A27, - /* Array index: 0x1047 */ 0x719A,0x4A28, - /* Array index: 0x1047 */ 0x719B,0x4A29, - /* Array index: 0x1047 */ 0x71A0,0x4A2A, - /* Array index: 0x1047 */ 0x71A2,0x4A2B, - /* Array index: 0x1047 */ 0x71BA,0x4A30, - /* Array index: 0x1047 */ 0x71C4,0x4A34, - /* Array index: 0x1047 */ 0x71CB,0x4A35, - /* Array index: 0x1047 */ 0x71CC,0x4A36, - /* Array index: 0x1047 */ 0x71D3,0x4A37, - /* Array index: 0x1047 */ 0x71D6,0x4A38, - /* Array index: 0x1047 */ 0x71D9,0x4A39, - /* Array index: 0x1047 */ 0x71DA,0x4A3A, - /* Array index: 0x1047 */ 0x71DC,0x4A3B, - /* Array index: 0x1047 */ 0x71F8,0x4A3C, - /* Array index: 0x1047 */ 0x71FE,0x4A3D, - /* Array index: 0x1047 */ 0x7200,0x4A3E, - /* Array index: 0x1047 */ 0x7213,0x4A42, - /* Array index: 0x1047 */ 0x7217,0x4A43, - /* Array index: 0x1047 */ 0x721A,0x4A44, - /* Array index: 0x1047 */ 0x721D,0x4A45, - /* Array index: 0x1047 */ 0x721F,0x4A46, - /* Array index: 0x1047 */ 0x7224,0x4A47, - /* Array index: 0x1047 */ 0x722B,0x4A48, - /* Array index: 0x1047 */ 0x722F,0x4A49, - /* Array index: 0x1047 */ 0x7234,0x4A4A, - /* Array index: 0x1047 */ 0x7238,0x4A4B, - /* Array index: 0x1047 */ 0x7239,0x4A4C, - /* Array index: 0x1047 */ 0x7253,0x4A54, - /* Array index: 0x1047 */ 0x7255,0x4A55, - /* Array index: 0x1047 */ 0x7256,0x4A56, - /* Array index: 0x1047 */ 0x725A,0x4A57, - /* Array index: 0x1047 */ 0x725C,0x4A58, - /* Array index: 0x1047 */ 0x725E,0x4A59, - /* Array index: 0x1047 */ 0x7260,0x4A5A, - /* Array index: 0x1047 */ 0x7263,0x4A5B, - /* Array index: 0x1047 */ 0x7268,0x4A5C, - /* Array index: 0x1047 */ 0x726B,0x4A5D, - /* Array index: 0x1047 */ 0x726E,0x4A5E, - /* Array index: 0x1047 */ 0x726F,0x4A5F, - /* Array index: 0x1047 */ 0x7271,0x4A60, - /* Array index: 0x1047 */ 0x7277,0x4A61, - /* Array index: 0x1047 */ 0x7278,0x4A62, - /* Array index: 0x1047 */ 0x727B,0x4A63, - /* Array index: 0x1047 */ 0x727C,0x4A64, - /* Array index: 0x1047 */ 0x727F,0x4A65, - /* Array index: 0x1047 */ 0x7284,0x4A66, - /* Array index: 0x1047 */ 0x7289,0x4A67, - /* Array index: 0x1047 */ 0x728D,0x4A68, - /* Array index: 0x1047 */ 0x728E,0x4A69, - /* Array index: 0x1047 */ 0x7293,0x4A6A, - /* Array index: 0x1047 */ 0x729B,0x4A6B, - /* Array index: 0x1047 */ 0x72A8,0x4A6C, - /* Array index: 0x1047 */ 0x72AD,0x4A6D, - /* Array index: 0x1047 */ 0x72AE,0x4A6E, - /* Array index: 0x1047 */ 0x72B1,0x4A6F, - /* Array index: 0x1047 */ 0x72B4,0x4A70, - /* Array index: 0x1047 */ 0x72BE,0x4A71, - /* Array index: 0x1047 */ 0x72C1,0x4A72, - /* Array index: 0x1047 */ 0x72C7,0x4A73, - /* Array index: 0x1047 */ 0x72C9,0x4A74, - /* Array index: 0x1047 */ 0x72CC,0x4A75, - /* Array index: 0x1047 */ 0x72D5,0x4A76, - /* Array index: 0x1047 */ 0x72D6,0x4A77, - /* Array index: 0x1047 */ 0x72D8,0x4A78, - /* Array index: 0x1047 */ 0x72DF,0x4A79, - /* Array index: 0x1047 */ 0x72E5,0x4A7A, - /* Array index: 0x1047 */ 0x72F3,0x4A7B, - /* Array index: 0x1047 */ 0x72F4,0x4A7C, - /* Array index: 0x1047 */ 0x72FA,0x4A7D, - /* Array index: 0x1047 */ 0x72FB,0x4A7E, - /* Array index: 0x1047 */ 0x72FE,0x4B21, - /* Array index: 0x1047 */ 0x7302,0x4B22, - /* Array index: 0x1047 */ 0x7304,0x4B23, - /* Array index: 0x1047 */ 0x7305,0x4B24, - /* Array index: 0x1047 */ 0x7307,0x4B25, - /* Array index: 0x1047 */ 0x730B,0x4B26, - /* Array index: 0x1047 */ 0x730D,0x4B27, - /* Array index: 0x1047 */ 0x7312,0x4B28, - /* Array index: 0x1047 */ 0x7313,0x4B29, - /* Array index: 0x1047 */ 0x7318,0x4B2A, - /* Array index: 0x1047 */ 0x7319,0x4B2B, - /* Array index: 0x1047 */ 0x731E,0x4B2C, - /* Array index: 0x1047 */ 0x7322,0x4B2D, - /* Array index: 0x1047 */ 0x7324,0x4B2E, - /* Array index: 0x1047 */ 0x7327,0x4B2F, - /* Array index: 0x1047 */ 0x7328,0x4B30, - /* Array index: 0x1047 */ 0x732C,0x4B31, - /* Array index: 0x1047 */ 0x7331,0x4B32, - /* Array index: 0x1047 */ 0x7332,0x4B33, - /* Array index: 0x1047 */ 0x7335,0x4B34, - /* Array index: 0x1047 */ 0x733A,0x4B35, - /* Array index: 0x1047 */ 0x733B,0x4B36, - /* Array index: 0x1047 */ 0x733D,0x4B37, - /* Array index: 0x1047 */ 0x7343,0x4B38, - /* Array index: 0x1047 */ 0x734D,0x4B39, - /* Array index: 0x1047 */ 0x7350,0x4B3A, - /* Array index: 0x1047 */ 0x7352,0x4B3B, - /* Array index: 0x1047 */ 0x7356,0x4B3C, - /* Array index: 0x1047 */ 0x7358,0x4B3D, - /* Array index: 0x1047 */ 0x7366,0x4B42, - /* Array index: 0x1047 */ 0x7367,0x4B43, - /* Array index: 0x1047 */ 0x7369,0x4B44, - /* Array index: 0x1047 */ 0x7377,0x4B4A, - /* Array index: 0x1047 */ 0x7379,0x4B4B, - /* Array index: 0x1047 */ 0x737C,0x4B4C, - /* Array index: 0x1047 */ 0x7380,0x4B4D, - /* Array index: 0x1047 */ 0x7381,0x4B4E, - /* Array index: 0x1047 */ 0x7383,0x4B4F, - /* Array index: 0x1047 */ 0x7385,0x4B50, - /* Array index: 0x1047 */ 0x7386,0x4B51, - /* Array index: 0x1047 */ 0x738E,0x4B52, - /* Array index: 0x1047 */ 0x7390,0x4B53, - /* Array index: 0x1047 */ 0x7393,0x4B54, - /* Array index: 0x1047 */ 0x7395,0x4B55, - /* Array index: 0x1047 */ 0x7397,0x4B56, - /* Array index: 0x1047 */ 0x7398,0x4B57, - /* Array index: 0x1047 */ 0x73AA,0x4B5F, - /* Array index: 0x1047 */ 0x73AB,0x4B60, - /* Array index: 0x1047 */ 0x73AD,0x4B61, - /* Array index: 0x1047 */ 0x73B5,0x4B62, - /* Array index: 0x1047 */ 0x73B7,0x4B63, - /* Array index: 0x1047 */ 0x73B9,0x4B64, - /* Array index: 0x1047 */ 0x73BC,0x4B65, - /* Array index: 0x1047 */ 0x73BD,0x4B66, - /* Array index: 0x1047 */ 0x73BF,0x4B67, - /* Array index: 0x1047 */ 0x73C5,0x4B68, - /* Array index: 0x1047 */ 0x73C6,0x4B69, - /* Array index: 0x1047 */ 0x73C9,0x4B6A, - /* Array index: 0x1047 */ 0x73CB,0x4B6B, - /* Array index: 0x1047 */ 0x73CC,0x4B6C, - /* Array index: 0x1047 */ 0x73CF,0x4B6D, - /* Array index: 0x1047 */ 0x73D2,0x4B6E, - /* Array index: 0x1047 */ 0x73D3,0x4B6F, - /* Array index: 0x1047 */ 0x73D6,0x4B70, - /* Array index: 0x1047 */ 0x73D9,0x4B71, - /* Array index: 0x1047 */ 0x73DD,0x4B72, - /* Array index: 0x1047 */ 0x73E1,0x4B73, - /* Array index: 0x1047 */ 0x73E3,0x4B74, - /* Array index: 0x1047 */ 0x73E6,0x4B75, - /* Array index: 0x1047 */ 0x73E7,0x4B76, - /* Array index: 0x1047 */ 0x73E9,0x4B77, - /* Array index: 0x1047 */ 0x73F4,0x4B78, - /* Array index: 0x1047 */ 0x73F5,0x4B79, - /* Array index: 0x1047 */ 0x7404,0x4C24, - /* Array index: 0x1047 */ 0x7407,0x4C25, - /* Array index: 0x1047 */ 0x740A,0x4C26, - /* Array index: 0x1047 */ 0x7411,0x4C27, - /* Array index: 0x1047 */ 0x741A,0x4C28, - /* Array index: 0x1047 */ 0x741B,0x4C29, - /* Array index: 0x1047 */ 0x7424,0x4C2A, - /* Array index: 0x1047 */ 0x7439,0x4C36, - /* Array index: 0x1047 */ 0x7440,0x4C37, - /* Array index: 0x1047 */ 0x744B,0x4C3C, - /* Array index: 0x1047 */ 0x744D,0x4C3D, - /* Array index: 0x1047 */ 0x7451,0x4C3E, - /* Array index: 0x1047 */ 0x7452,0x4C3F, - /* Array index: 0x1047 */ 0x7457,0x4C40, - /* Array index: 0x1047 */ 0x745D,0x4C41, - /* Array index: 0x1047 */ 0x7462,0x4C42, - /* Array index: 0x1047 */ 0x746B,0x4C46, - /* Array index: 0x1047 */ 0x746D,0x4C47, - /* Array index: 0x1047 */ 0x746E,0x4C48, - /* Array index: 0x1047 */ 0x7471,0x4C49, - /* Array index: 0x1047 */ 0x7472,0x4C4A, - /* Array index: 0x1047 */ 0x7480,0x4C4B, - /* Array index: 0x1047 */ 0x7481,0x4C4C, - /* Array index: 0x1047 */ 0x74B5,0x4C66, - /* Array index: 0x1047 */ 0x74B9,0x4C67, - /* Array index: 0x1047 */ 0x74BB,0x4C68, - /* Array index: 0x1047 */ 0x74BF,0x4C69, - /* Array index: 0x1047 */ 0x74C8,0x4C6A, - /* Array index: 0x1047 */ 0x74C9,0x4C6B, - /* Array index: 0x1047 */ 0x74CC,0x4C6C, - /* Array index: 0x1047 */ 0x74D0,0x4C6D, - /* Array index: 0x1047 */ 0x74D3,0x4C6E, - /* Array index: 0x1047 */ 0x74D8,0x4C6F, - /* Array index: 0x1047 */ 0x74DA,0x4C70, - /* Array index: 0x1047 */ 0x74DB,0x4C71, - /* Array index: 0x1047 */ 0x74DE,0x4C72, - /* Array index: 0x1047 */ 0x74DF,0x4C73, - /* Array index: 0x1047 */ 0x74E4,0x4C74, - /* Array index: 0x1047 */ 0x74E8,0x4C75, - /* Array index: 0x1047 */ 0x74EA,0x4C76, - /* Array index: 0x1047 */ 0x74EB,0x4C77, - /* Array index: 0x1047 */ 0x74EF,0x4C78, - /* Array index: 0x1047 */ 0x74F4,0x4C79, - /* Array index: 0x1047 */ 0x74FF,0x4C7D, - /* Array index: 0x1047 */ 0x7506,0x4C7E, - /* Array index: 0x1047 */ 0x7512,0x4D21, - /* Array index: 0x1047 */ 0x7516,0x4D22, - /* Array index: 0x1047 */ 0x7517,0x4D23, - /* Array index: 0x1047 */ 0x7520,0x4D24, - /* Array index: 0x1047 */ 0x7521,0x4D25, - /* Array index: 0x1047 */ 0x7524,0x4D26, - /* Array index: 0x1047 */ 0x7527,0x4D27, - /* Array index: 0x1047 */ 0x7529,0x4D28, - /* Array index: 0x1047 */ 0x752A,0x4D29, - /* Array index: 0x1047 */ 0x752F,0x4D2A, - /* Array index: 0x1047 */ 0x7536,0x4D2B, - /* Array index: 0x1047 */ 0x7539,0x4D2C, - /* Array index: 0x1047 */ 0x7543,0x4D31, - /* Array index: 0x1047 */ 0x7547,0x4D32, - /* Array index: 0x1047 */ 0x7548,0x4D33, - /* Array index: 0x1047 */ 0x754E,0x4D34, - /* Array index: 0x1047 */ 0x7550,0x4D35, - /* Array index: 0x1047 */ 0x7552,0x4D36, - /* Array index: 0x1047 */ 0x7557,0x4D37, - /* Array index: 0x1047 */ 0x755E,0x4D38, - /* Array index: 0x1047 */ 0x755F,0x4D39, - /* Array index: 0x1047 */ 0x7561,0x4D3A, - /* Array index: 0x1047 */ 0x756F,0x4D3B, - /* Array index: 0x1047 */ 0x7571,0x4D3C, - /* Array index: 0x1047 */ 0x7581,0x4D43, - /* Array index: 0x1047 */ 0x7585,0x4D44, - /* Array index: 0x1047 */ 0x7590,0x4D45, - /* Array index: 0x1047 */ 0x7592,0x4D46, - /* Array index: 0x1047 */ 0x7593,0x4D47, - /* Array index: 0x1047 */ 0x7595,0x4D48, - /* Array index: 0x1047 */ 0x7599,0x4D49, - /* Array index: 0x1047 */ 0x759C,0x4D4A, - /* Array index: 0x1047 */ 0x75A2,0x4D4B, - /* Array index: 0x1047 */ 0x75A4,0x4D4C, - /* Array index: 0x1047 */ 0x75B4,0x4D4D, - /* Array index: 0x1047 */ 0x75BA,0x4D4E, - /* Array index: 0x1047 */ 0x75C4,0x4D52, - /* Array index: 0x1047 */ 0x75C6,0x4D53, - /* Array index: 0x1047 */ 0x75CC,0x4D54, - /* Array index: 0x1047 */ 0x75CE,0x4D55, - /* Array index: 0x1047 */ 0x75CF,0x4D56, - /* Array index: 0x1047 */ 0x75D7,0x4D57, - /* Array index: 0x1047 */ 0x75DC,0x4D58, - /* Array index: 0x1047 */ 0x75E4,0x4D5C, - /* Array index: 0x1047 */ 0x75E7,0x4D5D, - /* Array index: 0x1047 */ 0x75EC,0x4D5E, - /* Array index: 0x1047 */ 0x75EE,0x4D5F, - /* Array index: 0x1047 */ 0x75EF,0x4D60, - /* Array index: 0x1047 */ 0x75F1,0x4D61, - /* Array index: 0x1047 */ 0x75F9,0x4D62, - /* Array index: 0x1047 */ 0x760F,0x4D6B, - /* Array index: 0x1047 */ 0x7623,0x4D75, - /* Array index: 0x1047 */ 0x7625,0x4D76, - /* Array index: 0x1047 */ 0x7626,0x4D77, - /* Array index: 0x1047 */ 0x7629,0x4D78, - /* Array index: 0x1047 */ 0x762D,0x4D79, - /* Array index: 0x1047 */ 0x7632,0x4D7A, - /* Array index: 0x1047 */ 0x7633,0x4D7B, - /* Array index: 0x1047 */ 0x7635,0x4D7C, - /* Array index: 0x1047 */ 0x7655,0x4E2B, - /* Array index: 0x1047 */ 0x7659,0x4E2C, - /* Array index: 0x1047 */ 0x765F,0x4E2D, - /* Array index: 0x1047 */ 0x7664,0x4E2E, - /* Array index: 0x1047 */ 0x7665,0x4E2F, - /* Array index: 0x1047 */ 0x7674,0x4E34, - /* Array index: 0x1047 */ 0x7681,0x4E35, - /* Array index: 0x1047 */ 0x7685,0x4E36, - /* Array index: 0x1047 */ 0x768C,0x4E37, - /* Array index: 0x1047 */ 0x768D,0x4E38, - /* Array index: 0x1047 */ 0x7695,0x4E39, - /* Array index: 0x1047 */ 0x76AD,0x4E47, - /* Array index: 0x1047 */ 0x76BD,0x4E48, - /* Array index: 0x1047 */ 0x76C1,0x4E49, - /* Array index: 0x1047 */ 0x76C5,0x4E4A, - /* Array index: 0x1047 */ 0x76C9,0x4E4B, - /* Array index: 0x1047 */ 0x76CB,0x4E4C, - /* Array index: 0x1047 */ 0x76CC,0x4E4D, - /* Array index: 0x1047 */ 0x76CE,0x4E4E, - /* Array index: 0x1047 */ 0x76D4,0x4E4F, - /* Array index: 0x1047 */ 0x76D9,0x4E50, - /* Array index: 0x1047 */ 0x76E0,0x4E51, - /* Array index: 0x1047 */ 0x76E6,0x4E52, - /* Array index: 0x1047 */ 0x76E8,0x4E53, - /* Array index: 0x1047 */ 0x76EC,0x4E54, - /* Array index: 0x1047 */ 0x76F0,0x4E55, - /* Array index: 0x1047 */ 0x76F1,0x4E56, - /* Array index: 0x1047 */ 0x76F6,0x4E57, - /* Array index: 0x1047 */ 0x76F9,0x4E58, - /* Array index: 0x1047 */ 0x76FC,0x4E59, - /* Array index: 0x1047 */ 0x7700,0x4E5A, - /* Array index: 0x1047 */ 0x7706,0x4E5B, - /* Array index: 0x1047 */ 0x770A,0x4E5C, - /* Array index: 0x1047 */ 0x770E,0x4E5D, - /* Array index: 0x1047 */ 0x7712,0x4E5E, - /* Array index: 0x1047 */ 0x7714,0x4E5F, - /* Array index: 0x1047 */ 0x7715,0x4E60, - /* Array index: 0x1047 */ 0x7717,0x4E61, - /* Array index: 0x1047 */ 0x7719,0x4E62, - /* Array index: 0x1047 */ 0x771A,0x4E63, - /* Array index: 0x1047 */ 0x771C,0x4E64, - /* Array index: 0x1047 */ 0x7722,0x4E65, - /* Array index: 0x1047 */ 0x7728,0x4E66, - /* Array index: 0x1047 */ 0x7739,0x4E6D, - /* Array index: 0x1047 */ 0x773D,0x4E6E, - /* Array index: 0x1047 */ 0x773E,0x4E6F, - /* Array index: 0x1047 */ 0x7742,0x4E70, - /* Array index: 0x1047 */ 0x7745,0x4E71, - /* Array index: 0x1047 */ 0x7746,0x4E72, - /* Array index: 0x1047 */ 0x774A,0x4E73, - /* Array index: 0x1047 */ 0x7752,0x4E77, - /* Array index: 0x1047 */ 0x7756,0x4E78, - /* Array index: 0x1047 */ 0x7757,0x4E79, - /* Array index: 0x1047 */ 0x7767,0x4F22, - /* Array index: 0x1047 */ 0x776A,0x4F23, - /* Array index: 0x1047 */ 0x776C,0x4F24, - /* Array index: 0x1047 */ 0x777A,0x4F29, - /* Array index: 0x1047 */ 0x777D,0x4F2A, - /* Array index: 0x1047 */ 0x7780,0x4F2B, - /* Array index: 0x1047 */ 0x7784,0x4F2C, - /* Array index: 0x1047 */ 0x778C,0x4F2D, - /* Array index: 0x1047 */ 0x778D,0x4F2E, - /* Array index: 0x1047 */ 0x779A,0x4F32, - /* Array index: 0x1047 */ 0x779F,0x4F33, - /* Array index: 0x1047 */ 0x77A2,0x4F34, - /* Array index: 0x1047 */ 0x77A7,0x4F35, - /* Array index: 0x1047 */ 0x77AA,0x4F36, - /* Array index: 0x1047 */ 0x77AE,0x4F37, - /* Array index: 0x1047 */ 0x77AF,0x4F38, - /* Array index: 0x1047 */ 0x77B1,0x4F39, - /* Array index: 0x1047 */ 0x77B5,0x4F3A, - /* Array index: 0x1047 */ 0x77BE,0x4F3B, - /* Array index: 0x1047 */ 0x77C3,0x4F3C, - /* Array index: 0x1047 */ 0x77C9,0x4F3D, - /* Array index: 0x1047 */ 0x77D1,0x4F3E, - /* Array index: 0x1047 */ 0x77D2,0x4F3F, - /* Array index: 0x1047 */ 0x77D5,0x4F40, - /* Array index: 0x1047 */ 0x77D9,0x4F41, - /* Array index: 0x1047 */ 0x77E4,0x4F45, - /* Array index: 0x1047 */ 0x77E6,0x4F46, - /* Array index: 0x1047 */ 0x77EA,0x4F47, - /* Array index: 0x1047 */ 0x77EC,0x4F48, - /* Array index: 0x1047 */ 0x77F0,0x4F49, - /* Array index: 0x1047 */ 0x77F1,0x4F4A, - /* Array index: 0x1047 */ 0x77F4,0x4F4B, - /* Array index: 0x1047 */ 0x77F8,0x4F4C, - /* Array index: 0x1047 */ 0x77FB,0x4F4D, - /* Array index: 0x1047 */ 0x7805,0x4F4E, - /* Array index: 0x1047 */ 0x7806,0x4F4F, - /* Array index: 0x1047 */ 0x7809,0x4F50, - /* Array index: 0x1047 */ 0x780D,0x4F51, - /* Array index: 0x1047 */ 0x780E,0x4F52, - /* Array index: 0x1047 */ 0x7811,0x4F53, - /* Array index: 0x1047 */ 0x781D,0x4F54, - /* Array index: 0x1047 */ 0x782D,0x4F58, - /* Array index: 0x1047 */ 0x782E,0x4F59, - /* Array index: 0x1047 */ 0x7830,0x4F5A, - /* Array index: 0x1047 */ 0x7835,0x4F5B, - /* Array index: 0x1047 */ 0x7837,0x4F5C, - /* Array index: 0x1047 */ 0x7843,0x4F5D, - /* Array index: 0x1047 */ 0x7844,0x4F5E, - /* Array index: 0x1047 */ 0x7847,0x4F5F, - /* Array index: 0x1047 */ 0x7848,0x4F60, - /* Array index: 0x1047 */ 0x784C,0x4F61, - /* Array index: 0x1047 */ 0x784E,0x4F62, - /* Array index: 0x1047 */ 0x7852,0x4F63, - /* Array index: 0x1047 */ 0x785C,0x4F64, - /* Array index: 0x1047 */ 0x785E,0x4F65, - /* Array index: 0x1047 */ 0x7868,0x4F6A, - /* Array index: 0x1047 */ 0x786A,0x4F6B, - /* Array index: 0x1047 */ 0x786E,0x4F6C, - /* Array index: 0x1047 */ 0x787A,0x4F6D, - /* Array index: 0x1047 */ 0x787E,0x4F6E, - /* Array index: 0x1047 */ 0x788A,0x4F6F, - /* Array index: 0x1047 */ 0x788F,0x4F70, - /* Array index: 0x1047 */ 0x7894,0x4F71, - /* Array index: 0x1047 */ 0x7898,0x4F72, - /* Array index: 0x1047 */ 0x78A4,0x4F77, - /* Array index: 0x1047 */ 0x78A8,0x4F78, - /* Array index: 0x1047 */ 0x78BB,0x5021, - /* Array index: 0x1047 */ 0x78BD,0x5022, - /* Array index: 0x1047 */ 0x78BF,0x5023, - /* Array index: 0x1047 */ 0x78CC,0x5027, - /* Array index: 0x1047 */ 0x78CE,0x5028, - /* Array index: 0x1047 */ 0x78DB,0x502E, - /* Array index: 0x1047 */ 0x78E4,0x502D, - /* Array index: 0x1047 */ 0x78E6,0x5032, - /* Array index: 0x1047 */ 0x78EA,0x5033, - /* Array index: 0x1047 */ 0x78F2,0x5034, - /* Array index: 0x1047 */ 0x78F3,0x5035, - /* Array index: 0x1047 */ 0x78F6,0x5037, - /* Array index: 0x1047 */ 0x78F7,0x5038, - /* Array index: 0x1047 */ 0x78FA,0x5039, - /* Array index: 0x1047 */ 0x78FB,0x503A, - /* Array index: 0x1047 */ 0x78FF,0x503B, - /* Array index: 0x1047 */ 0x7900,0x5036, - /* Array index: 0x1047 */ 0x7906,0x503C, - /* Array index: 0x1047 */ 0x790C,0x503D, - /* Array index: 0x1047 */ 0x7910,0x503E, - /* Array index: 0x1047 */ 0x791A,0x503F, - /* Array index: 0x1047 */ 0x7925,0x5044, - /* Array index: 0x1047 */ 0x7927,0x5045, - /* Array index: 0x1047 */ 0x7929,0x5046, - /* Array index: 0x1047 */ 0x792D,0x5047, - /* Array index: 0x1047 */ 0x7931,0x5048, - /* Array index: 0x1047 */ 0x7934,0x5049, - /* Array index: 0x1047 */ 0x7935,0x504A, - /* Array index: 0x1047 */ 0x793B,0x504B, - /* Array index: 0x1047 */ 0x793D,0x504C, - /* Array index: 0x1047 */ 0x793F,0x504D, - /* Array index: 0x1047 */ 0x794A,0x5051, - /* Array index: 0x1047 */ 0x794B,0x5052, - /* Array index: 0x1047 */ 0x794F,0x5053, - /* Array index: 0x1047 */ 0x7951,0x5054, - /* Array index: 0x1047 */ 0x7954,0x5055, - /* Array index: 0x1047 */ 0x7958,0x5056, - /* Array index: 0x1047 */ 0x795B,0x5057, - /* Array index: 0x1047 */ 0x795C,0x5058, - /* Array index: 0x1047 */ 0x7967,0x5059, - /* Array index: 0x1047 */ 0x7969,0x505A, - /* Array index: 0x1047 */ 0x796B,0x505B, - /* Array index: 0x1047 */ 0x7972,0x505C, - /* Array index: 0x1047 */ 0x7979,0x505D, - /* Array index: 0x1047 */ 0x797B,0x505E, - /* Array index: 0x1047 */ 0x797C,0x505F, - /* Array index: 0x1047 */ 0x797E,0x5060, - /* Array index: 0x1047 */ 0x798B,0x5061, - /* Array index: 0x1047 */ 0x798C,0x5062, - /* Array index: 0x1047 */ 0x79A1,0x506B, - /* Array index: 0x1047 */ 0x79A8,0x506C, - /* Array index: 0x1047 */ 0x79A9,0x506D, - /* Array index: 0x1047 */ 0x79AB,0x506E, - /* Array index: 0x1047 */ 0x79AF,0x506F, - /* Array index: 0x1047 */ 0x79B1,0x5070, - /* Array index: 0x1047 */ 0x79B4,0x5071, - /* Array index: 0x1047 */ 0x79B8,0x5072, - /* Array index: 0x1047 */ 0x79BB,0x5073, - /* Array index: 0x1047 */ 0x79C2,0x5074, - /* Array index: 0x1047 */ 0x79C4,0x5075, - /* Array index: 0x1047 */ 0x79C7,0x5076, - /* Array index: 0x1047 */ 0x79C8,0x5077, - /* Array index: 0x1047 */ 0x79CA,0x5078, - /* Array index: 0x1047 */ 0x79CF,0x5079, - /* Array index: 0x1047 */ 0x79D4,0x507A, - /* Array index: 0x1047 */ 0x79D6,0x507B, - /* Array index: 0x1047 */ 0x79DA,0x507C, - /* Array index: 0x1047 */ 0x79DD,0x507D, - /* Array index: 0x1047 */ 0x79DE,0x507E, - /* Array index: 0x1047 */ 0x79E0,0x5121, - /* Array index: 0x1047 */ 0x79E2,0x5122, - /* Array index: 0x1047 */ 0x79E5,0x5123, - /* Array index: 0x1047 */ 0x79EA,0x5124, - /* Array index: 0x1047 */ 0x79EB,0x5125, - /* Array index: 0x1047 */ 0x79ED,0x5126, - /* Array index: 0x1047 */ 0x79F1,0x5127, - /* Array index: 0x1047 */ 0x79F8,0x5128, - /* Array index: 0x1047 */ 0x79FC,0x5129, - /* Array index: 0x1047 */ 0x7A02,0x512A, - /* Array index: 0x1047 */ 0x7A03,0x512B, - /* Array index: 0x1047 */ 0x7A07,0x512C, - /* Array index: 0x1047 */ 0x7A09,0x512D, - /* Array index: 0x1047 */ 0x7A0A,0x512E, - /* Array index: 0x1047 */ 0x7A0C,0x512F, - /* Array index: 0x1047 */ 0x7A11,0x5130, - /* Array index: 0x1047 */ 0x7A15,0x5131, - /* Array index: 0x1047 */ 0x7A1B,0x5132, - /* Array index: 0x1047 */ 0x7A1E,0x5133, - /* Array index: 0x1047 */ 0x7A21,0x5134, - /* Array index: 0x1047 */ 0x7A27,0x5135, - /* Array index: 0x1047 */ 0x7A2B,0x5136, - /* Array index: 0x1047 */ 0x7A2D,0x5137, - /* Array index: 0x1047 */ 0x7A2F,0x5138, - /* Array index: 0x1047 */ 0x7A30,0x5139, - /* Array index: 0x1047 */ 0x7A4C,0x5143, - /* Array index: 0x1047 */ 0x7A55,0x5144, - /* Array index: 0x1047 */ 0x7A56,0x5145, - /* Array index: 0x1047 */ 0x7A59,0x5146, - /* Array index: 0x1047 */ 0x7A65,0x514B, - /* Array index: 0x1047 */ 0x7A67,0x514C, - /* Array index: 0x1047 */ 0x7A6A,0x514D, - /* Array index: 0x1047 */ 0x7A6D,0x514E, - /* Array index: 0x1047 */ 0x7A75,0x514F, - /* Array index: 0x1047 */ 0x7A78,0x5150, - /* Array index: 0x1047 */ 0x7A7E,0x5151, - /* Array index: 0x1047 */ 0x7A80,0x5152, - /* Array index: 0x1047 */ 0x7A82,0x5153, - /* Array index: 0x1047 */ 0x7A85,0x5154, - /* Array index: 0x1047 */ 0x7A86,0x5155, - /* Array index: 0x1047 */ 0x7A8A,0x5156, - /* Array index: 0x1047 */ 0x7A8B,0x5157, - /* Array index: 0x1047 */ 0x7A90,0x5158, - /* Array index: 0x1047 */ 0x7A91,0x5159, - /* Array index: 0x1047 */ 0x7A94,0x515A, - /* Array index: 0x1047 */ 0x7A9E,0x515B, - /* Array index: 0x1047 */ 0x7AA0,0x515C, - /* Array index: 0x1047 */ 0x7AA3,0x515D, - /* Array index: 0x1047 */ 0x7AAC,0x515E, - /* Array index: 0x1047 */ 0x7AB3,0x515F, - /* Array index: 0x1047 */ 0x7AB5,0x5160, - /* Array index: 0x1047 */ 0x7AB9,0x5161, - /* Array index: 0x1047 */ 0x7ABB,0x5162, - /* Array index: 0x1047 */ 0x7ABC,0x5163, - /* Array index: 0x1047 */ 0x7AC6,0x5164, - /* Array index: 0x1047 */ 0x7AC9,0x5165, - /* Array index: 0x1047 */ 0x7ACC,0x5166, - /* Array index: 0x1047 */ 0x7ACE,0x5167, - /* Array index: 0x1047 */ 0x7AD1,0x5168, - /* Array index: 0x1047 */ 0x7ADB,0x5169, - /* Array index: 0x1047 */ 0x7AF1,0x516E, - /* Array index: 0x1047 */ 0x7AF4,0x516F, - /* Array index: 0x1047 */ 0x7AFB,0x5170, - /* Array index: 0x1047 */ 0x7AFD,0x5171, - /* Array index: 0x1047 */ 0x7AFE,0x5172, - /* Array index: 0x1047 */ 0x7B07,0x5173, - /* Array index: 0x1047 */ 0x7B14,0x5174, - /* Array index: 0x1047 */ 0x7B1F,0x5175, - /* Array index: 0x1047 */ 0x7B23,0x5176, - /* Array index: 0x1047 */ 0x7B34,0x5222, - /* Array index: 0x1047 */ 0x7B47,0x5227, - /* Array index: 0x1047 */ 0x7B4E,0x5228, - /* Array index: 0x1047 */ 0x7B55,0x5229, - /* Array index: 0x1047 */ 0x7B60,0x522A, - /* Array index: 0x1047 */ 0x7B64,0x522B, - /* Array index: 0x1047 */ 0x7B66,0x522C, - /* Array index: 0x1047 */ 0x7B69,0x522D, - /* Array index: 0x1047 */ 0x7B6A,0x522E, - /* Array index: 0x1047 */ 0x7B6D,0x522F, - /* Array index: 0x1047 */ 0x7B6F,0x5230, - /* Array index: 0x1047 */ 0x7B72,0x5231, - /* Array index: 0x1047 */ 0x7B73,0x5232, - /* Array index: 0x1047 */ 0x7B77,0x5233, - /* Array index: 0x1047 */ 0x7B84,0x5234, - /* Array index: 0x1047 */ 0x7B89,0x5235, - /* Array index: 0x1047 */ 0x7B8E,0x5236, - /* Array index: 0x1047 */ 0x7B90,0x5237, - /* Array index: 0x1047 */ 0x7B91,0x5238, - /* Array index: 0x1047 */ 0x7B96,0x5239, - /* Array index: 0x1047 */ 0x7B9B,0x523A, - /* Array index: 0x1047 */ 0x7B9E,0x523B, - /* Array index: 0x1047 */ 0x7BA0,0x523C, - /* Array index: 0x1047 */ 0x7BA5,0x523D, - /* Array index: 0x1047 */ 0x7BAC,0x523E, - /* Array index: 0x1047 */ 0x7BAF,0x523F, - /* Array index: 0x1047 */ 0x7BB0,0x5240, - /* Array index: 0x1047 */ 0x7BB2,0x5241, - /* Array index: 0x1047 */ 0x7BB5,0x5242, - /* Array index: 0x1047 */ 0x7BB6,0x5243, - /* Array index: 0x1047 */ 0x7BC2,0x5248, - /* Array index: 0x1047 */ 0x7BC5,0x5249, - /* Array index: 0x1047 */ 0x7BC8,0x524A, - /* Array index: 0x1047 */ 0x7BCA,0x524B, - /* Array index: 0x1047 */ 0x7BD4,0x524C, - /* Array index: 0x1047 */ 0x7BE8,0x5252, - /* Array index: 0x1047 */ 0x7BEA,0x5253, - /* Array index: 0x1047 */ 0x7BF2,0x5254, - /* Array index: 0x1047 */ 0x7C09,0x5261, - /* Array index: 0x1047 */ 0x7C19,0x5266, - /* Array index: 0x1047 */ 0x7C1B,0x5267, - /* Array index: 0x1047 */ 0x7C20,0x5268, - /* Array index: 0x1047 */ 0x7C25,0x5269, - /* Array index: 0x1047 */ 0x7C26,0x526A, - /* Array index: 0x1047 */ 0x7C28,0x526B, - /* Array index: 0x1047 */ 0x7C2C,0x526C, - /* Array index: 0x1047 */ 0x7C31,0x526D, - /* Array index: 0x1047 */ 0x7C33,0x526E, - /* Array index: 0x1047 */ 0x7C34,0x526F, - /* Array index: 0x1047 */ 0x7C36,0x5270, - /* Array index: 0x1047 */ 0x7C39,0x5271, - /* Array index: 0x1047 */ 0x7C3A,0x5272, - /* Array index: 0x1047 */ 0x7C46,0x5273, - /* Array index: 0x1047 */ 0x7C4A,0x5274, - /* Array index: 0x1047 */ 0x7C61,0x5321, - /* Array index: 0x1047 */ 0x7C63,0x5322, - /* Array index: 0x1047 */ 0x7C67,0x5323, - /* Array index: 0x1047 */ 0x7C69,0x5324, - /* Array index: 0x1047 */ 0x7C6D,0x5325, - /* Array index: 0x1047 */ 0x7C6E,0x5326, - /* Array index: 0x1047 */ 0x7C70,0x5327, - /* Array index: 0x1047 */ 0x7C72,0x5328, - /* Array index: 0x1047 */ 0x7C79,0x5329, - /* Array index: 0x1047 */ 0x7C7C,0x532A, - /* Array index: 0x1047 */ 0x7C7D,0x532B, - /* Array index: 0x1047 */ 0x7C86,0x532C, - /* Array index: 0x1047 */ 0x7C87,0x532D, - /* Array index: 0x1047 */ 0x7C8F,0x532E, - /* Array index: 0x1047 */ 0x7C94,0x532F, - /* Array index: 0x1047 */ 0x7C9E,0x5330, - /* Array index: 0x1047 */ 0x7CA0,0x5331, - /* Array index: 0x1047 */ 0x7CA6,0x5332, - /* Array index: 0x1047 */ 0x7CB0,0x5333, - /* Array index: 0x1047 */ 0x7CBF,0x5339, - /* Array index: 0x1047 */ 0x7CC4,0x533A, - /* Array index: 0x1047 */ 0x7CCD,0x533E, - /* Array index: 0x1047 */ 0x7CCF,0x533F, - /* Array index: 0x1047 */ 0x7CDD,0x5346, - /* Array index: 0x1047 */ 0x7CE6,0x5347, - /* Array index: 0x1047 */ 0x7CE9,0x5348, - /* Array index: 0x1047 */ 0x7CEB,0x5349, - /* Array index: 0x1047 */ 0x7CF5,0x534A, - /* Array index: 0x1047 */ 0x7D03,0x534B, - /* Array index: 0x1047 */ 0x7D16,0x5353, - /* Array index: 0x1047 */ 0x7D1D,0x5354, - /* Array index: 0x1047 */ 0x7D1E,0x5355, - /* Array index: 0x1047 */ 0x7D23,0x5356, - /* Array index: 0x1047 */ 0x7D26,0x5357, - /* Array index: 0x1047 */ 0x7D2A,0x5358, - /* Array index: 0x1047 */ 0x7D2D,0x5359, - /* Array index: 0x1047 */ 0x7D31,0x535A, - /* Array index: 0x1047 */ 0x7D47,0x5360, - /* Array index: 0x1047 */ 0x7D48,0x5361, - /* Array index: 0x1047 */ 0x7D4D,0x5362, - /* Array index: 0x1047 */ 0x7D51,0x5363, - /* Array index: 0x1047 */ 0x7D53,0x5364, - /* Array index: 0x1047 */ 0x7D57,0x5365, - /* Array index: 0x1047 */ 0x7D65,0x536A, - /* Array index: 0x1047 */ 0x7D67,0x536B, - /* Array index: 0x1047 */ 0x7D6A,0x536C, - /* Array index: 0x1047 */ 0x7D70,0x536D, - /* Array index: 0x1047 */ 0x7D78,0x536E, - /* Array index: 0x1047 */ 0x7D7A,0x536F, - /* Array index: 0x1047 */ 0x7D7B,0x5370, - /* Array index: 0x1047 */ 0x7D91,0x537B, - /* Array index: 0x1047 */ 0x7D96,0x537C, - /* Array index: 0x1047 */ 0x7D97,0x537D, - /* Array index: 0x1047 */ 0x7D9D,0x537E, - /* Array index: 0x1047 */ 0x7D9E,0x5421, - /* Array index: 0x1047 */ 0x7DA6,0x5422, - /* Array index: 0x1047 */ 0x7DA7,0x5423, - /* Array index: 0x1047 */ 0x7DAA,0x5424, - /* Array index: 0x1047 */ 0x7DB3,0x5425, - /* Array index: 0x1047 */ 0x7DB6,0x5426, - /* Array index: 0x1047 */ 0x7DB7,0x5427, - /* Array index: 0x1047 */ 0x7DB9,0x5428, - /* Array index: 0x1047 */ 0x7DD7,0x5431, - /* Array index: 0x1047 */ 0x7DD9,0x5432, - /* Array index: 0x1047 */ 0x7DE2,0x5434, - /* Array index: 0x1047 */ 0x7DE5,0x5435, - /* Array index: 0x1047 */ 0x7DE6,0x5436, - /* Array index: 0x1047 */ 0x7DEA,0x5437, - /* Array index: 0x1047 */ 0x7DEB,0x5438, - /* Array index: 0x1047 */ 0x7DED,0x5439, - /* Array index: 0x1047 */ 0x7DF1,0x543A, - /* Array index: 0x1047 */ 0x7DF5,0x543B, - /* Array index: 0x1047 */ 0x7DF6,0x543C, - /* Array index: 0x1047 */ 0x7DF9,0x543D, - /* Array index: 0x1047 */ 0x7DFA,0x543E, - /* Array index: 0x1047 */ 0x7E00,0x5433, - /* Array index: 0x1047 */ 0x7E08,0x543F, - /* Array index: 0x1047 */ 0x7E10,0x5440, - /* Array index: 0x1047 */ 0x7E11,0x5441, - /* Array index: 0x1047 */ 0x7E15,0x5442, - /* Array index: 0x1047 */ 0x7E17,0x5443, - /* Array index: 0x1047 */ 0x7E1C,0x5444, - /* Array index: 0x1047 */ 0x7E1D,0x5445, - /* Array index: 0x1047 */ 0x7E20,0x5446, - /* Array index: 0x1047 */ 0x7E27,0x5447, - /* Array index: 0x1047 */ 0x7E28,0x5448, - /* Array index: 0x1047 */ 0x7E2C,0x5449, - /* Array index: 0x1047 */ 0x7E2D,0x544A, - /* Array index: 0x1047 */ 0x7E2F,0x544B, - /* Array index: 0x1047 */ 0x7E33,0x544C, - /* Array index: 0x1047 */ 0x7E36,0x544D, - /* Array index: 0x1047 */ 0x7E3F,0x544E, - /* Array index: 0x1047 */ 0x7E44,0x544F, - /* Array index: 0x1047 */ 0x7E45,0x5450, - /* Array index: 0x1047 */ 0x7E47,0x5451, - /* Array index: 0x1047 */ 0x7E4E,0x5452, - /* Array index: 0x1047 */ 0x7E50,0x5453, - /* Array index: 0x1047 */ 0x7E52,0x5454, - /* Array index: 0x1047 */ 0x7E58,0x5455, - /* Array index: 0x1047 */ 0x7E5F,0x5456, - /* Array index: 0x1047 */ 0x7E61,0x5457, - /* Array index: 0x1047 */ 0x7E62,0x5458, - /* Array index: 0x1047 */ 0x7E65,0x5459, - /* Array index: 0x1047 */ 0x7E6B,0x545A, - /* Array index: 0x1047 */ 0x7E6E,0x545B, - /* Array index: 0x1047 */ 0x7E6F,0x545C, - /* Array index: 0x1047 */ 0x7E73,0x545D, - /* Array index: 0x1047 */ 0x7E78,0x545E, - /* Array index: 0x1047 */ 0x7E7E,0x545F, - /* Array index: 0x1047 */ 0x7E81,0x5460, - /* Array index: 0x1047 */ 0x7E86,0x5461, - /* Array index: 0x1047 */ 0x7E87,0x5462, - /* Array index: 0x1047 */ 0x7E8A,0x5463, - /* Array index: 0x1047 */ 0x7E8D,0x5464, - /* Array index: 0x1047 */ 0x7E91,0x5465, - /* Array index: 0x1047 */ 0x7E95,0x5466, - /* Array index: 0x1047 */ 0x7E98,0x5467, - /* Array index: 0x1047 */ 0x7E9A,0x5468, - /* Array index: 0x1047 */ 0x7E9D,0x5469, - /* Array index: 0x1047 */ 0x7E9E,0x546A, - /* Array index: 0x1047 */ 0x7F43,0x5470, - /* Array index: 0x1047 */ 0x7F44,0x5471, - /* Array index: 0x1047 */ 0x7F47,0x5472, - /* Array index: 0x1047 */ 0x7F4F,0x5473, - /* Array index: 0x1047 */ 0x7F52,0x5474, - /* Array index: 0x1047 */ 0x7F53,0x5475, - /* Array index: 0x1047 */ 0x7F6D,0x547E, - /* Array index: 0x1047 */ 0x7F71,0x5521, - /* Array index: 0x1047 */ 0x7F8B,0x5526, - /* Array index: 0x1047 */ 0x7F96,0x552B, - /* Array index: 0x1047 */ 0x7F97,0x552C, - /* Array index: 0x1047 */ 0x7F9C,0x552D, - /* Array index: 0x1047 */ 0x7FA1,0x552E, - /* Array index: 0x1047 */ 0x7FA2,0x552F, - /* Array index: 0x1047 */ 0x7FA6,0x5530, - /* Array index: 0x1047 */ 0x7FAA,0x5531, - /* Array index: 0x1047 */ 0x7FAD,0x5532, - /* Array index: 0x1047 */ 0x7FB4,0x5533, - /* Array index: 0x1047 */ 0x7FBC,0x5534, - /* Array index: 0x1047 */ 0x7FBF,0x5535, - /* Array index: 0x1047 */ 0x7FC0,0x5536, - /* Array index: 0x1047 */ 0x7FC3,0x5537, - /* Array index: 0x1047 */ 0x7FC8,0x5538, - /* Array index: 0x1047 */ 0x7FCE,0x5539, - /* Array index: 0x1047 */ 0x7FCF,0x553A, - /* Array index: 0x1047 */ 0x7FDB,0x553B, - /* Array index: 0x1047 */ 0x7FDF,0x553C, - /* Array index: 0x1047 */ 0x7FE3,0x553D, - /* Array index: 0x1047 */ 0x7FE5,0x553E, - /* Array index: 0x1047 */ 0x7FE8,0x553F, - /* Array index: 0x1047 */ 0x7FEC,0x5540, - /* Array index: 0x1047 */ 0x7FEE,0x5541, - /* Array index: 0x1047 */ 0x7FEF,0x5542, - /* Array index: 0x1047 */ 0x7FF2,0x5543, - /* Array index: 0x1047 */ 0x7FFA,0x5544, - /* Array index: 0x1047 */ 0x8007,0x5548, - /* Array index: 0x1047 */ 0x8008,0x5549, - /* Array index: 0x1047 */ 0x800A,0x554A, - /* Array index: 0x1047 */ 0x8024,0x5556, - /* Array index: 0x1047 */ 0x8026,0x5557, - /* Array index: 0x1047 */ 0x802C,0x5558, - /* Array index: 0x1047 */ 0x802E,0x5559, - /* Array index: 0x1047 */ 0x8030,0x555A, - /* Array index: 0x1047 */ 0x8034,0x555B, - /* Array index: 0x1047 */ 0x8035,0x555C, - /* Array index: 0x1047 */ 0x8037,0x555D, - /* Array index: 0x1047 */ 0x8039,0x555E, - /* Array index: 0x1047 */ 0x803A,0x555F, - /* Array index: 0x1047 */ 0x803C,0x5560, - /* Array index: 0x1047 */ 0x803E,0x5561, - /* Array index: 0x1047 */ 0x8040,0x5562, - /* Array index: 0x1047 */ 0x8044,0x5563, - /* Array index: 0x1047 */ 0x8060,0x5564, - /* Array index: 0x1047 */ 0x8064,0x5565, - /* Array index: 0x1047 */ 0x8066,0x5566, - /* Array index: 0x1047 */ 0x806D,0x5567, - /* Array index: 0x1047 */ 0x8071,0x5568, - /* Array index: 0x1047 */ 0x8075,0x5569, - /* Array index: 0x1047 */ 0x8081,0x556A, - /* Array index: 0x1047 */ 0x8088,0x556B, - /* Array index: 0x1047 */ 0x808E,0x556C, - /* Array index: 0x1047 */ 0x809C,0x556D, - /* Array index: 0x1047 */ 0x809E,0x556E, - /* Array index: 0x1047 */ 0x80A6,0x556F, - /* Array index: 0x1047 */ 0x80A7,0x5570, - /* Array index: 0x1047 */ 0x80AB,0x5571, - /* Array index: 0x1047 */ 0x80B8,0x5572, - /* Array index: 0x1047 */ 0x80B9,0x5573, - /* Array index: 0x1047 */ 0x80C8,0x5574, - /* Array index: 0x1047 */ 0x80CD,0x5575, - /* Array index: 0x1047 */ 0x80CF,0x5576, - /* Array index: 0x1047 */ 0x80D2,0x5577, - /* Array index: 0x1047 */ 0x80E0,0x557C, - /* Array index: 0x1047 */ 0x80ED,0x557D, - /* Array index: 0x1047 */ 0x80EE,0x557E, - /* Array index: 0x1047 */ 0x80F0,0x5621, - /* Array index: 0x1047 */ 0x80F2,0x5622, - /* Array index: 0x1047 */ 0x80F3,0x5623, - /* Array index: 0x1047 */ 0x80F6,0x5624, - /* Array index: 0x1047 */ 0x80F9,0x5625, - /* Array index: 0x1047 */ 0x80FA,0x5626, - /* Array index: 0x1047 */ 0x80FE,0x5627, - /* Array index: 0x1047 */ 0x8103,0x5628, - /* Array index: 0x1047 */ 0x810B,0x5629, - /* Array index: 0x1047 */ 0x811C,0x562D, - /* Array index: 0x1047 */ 0x811E,0x562E, - /* Array index: 0x1047 */ 0x8120,0x562F, - /* Array index: 0x1047 */ 0x8124,0x5630, - /* Array index: 0x1047 */ 0x8127,0x5631, - /* Array index: 0x1047 */ 0x812C,0x5632, - /* Array index: 0x1047 */ 0x8130,0x5633, - /* Array index: 0x1047 */ 0x8135,0x5634, - /* Array index: 0x1047 */ 0x813A,0x5635, - /* Array index: 0x1047 */ 0x813C,0x5636, - /* Array index: 0x1047 */ 0x8145,0x5637, - /* Array index: 0x1047 */ 0x8147,0x5638, - /* Array index: 0x1047 */ 0x814A,0x5639, - /* Array index: 0x1047 */ 0x814C,0x563A, - /* Array index: 0x1047 */ 0x8152,0x563B, - /* Array index: 0x1047 */ 0x8157,0x563C, - /* Array index: 0x1047 */ 0x8160,0x563D, - /* Array index: 0x1047 */ 0x8161,0x563E, - /* Array index: 0x1047 */ 0x816D,0x5642, - /* Array index: 0x1047 */ 0x816F,0x5643, - /* Array index: 0x1047 */ 0x8177,0x5644, - /* Array index: 0x1047 */ 0x8181,0x5645, - /* Array index: 0x1047 */ 0x818B,0x564A, - /* Array index: 0x1047 */ 0x818E,0x564B, - /* Array index: 0x1047 */ 0x8190,0x5646, - /* Array index: 0x1047 */ 0x8196,0x564C, - /* Array index: 0x1047 */ 0x8198,0x564D, - /* Array index: 0x1047 */ 0x819B,0x564E, - /* Array index: 0x1047 */ 0x819E,0x564F, - /* Array index: 0x1047 */ 0x81A2,0x5650, - /* Array index: 0x1047 */ 0x81AE,0x5651, - /* Array index: 0x1047 */ 0x81B2,0x5652, - /* Array index: 0x1047 */ 0x81B4,0x5653, - /* Array index: 0x1047 */ 0x81BB,0x5654, - /* Array index: 0x1047 */ 0x81C3,0x5656, - /* Array index: 0x1047 */ 0x81C5,0x5657, - /* Array index: 0x1047 */ 0x81CA,0x5658, - /* Array index: 0x1047 */ 0x81CB,0x5655, - /* Array index: 0x1047 */ 0x81CE,0x5659, - /* Array index: 0x1047 */ 0x81CF,0x565A, - /* Array index: 0x1047 */ 0x81D5,0x565B, - /* Array index: 0x1047 */ 0x81D7,0x565C, - /* Array index: 0x1047 */ 0x81DB,0x565D, - /* Array index: 0x1047 */ 0x81DD,0x565E, - /* Array index: 0x1047 */ 0x81DE,0x565F, - /* Array index: 0x1047 */ 0x81E1,0x5660, - /* Array index: 0x1047 */ 0x81E4,0x5661, - /* Array index: 0x1047 */ 0x81EB,0x5662, - /* Array index: 0x1047 */ 0x81EC,0x5663, - /* Array index: 0x1047 */ 0x81FD,0x566B, - /* Array index: 0x1047 */ 0x81FF,0x566C, - /* Array index: 0x1047 */ 0x8200,0x566D, - /* Array index: 0x1047 */ 0x8203,0x566E, - /* Array index: 0x1047 */ 0x820F,0x566F, - /* Array index: 0x1047 */ 0x8213,0x5670, - /* Array index: 0x1047 */ 0x8214,0x5671, - /* Array index: 0x1047 */ 0x8219,0x5672, - /* Array index: 0x1047 */ 0x821A,0x5673, - /* Array index: 0x1047 */ 0x821D,0x5674, - /* Array index: 0x1047 */ 0x8221,0x5675, - /* Array index: 0x1047 */ 0x8222,0x5676, - /* Array index: 0x1047 */ 0x8228,0x5677, - /* Array index: 0x1047 */ 0x8232,0x5678, - /* Array index: 0x1047 */ 0x8234,0x5679, - /* Array index: 0x1047 */ 0x823A,0x567A, - /* Array index: 0x1047 */ 0x824B,0x5721, - /* Array index: 0x1047 */ 0x824E,0x5722, - /* Array index: 0x1047 */ 0x824F,0x5723, - /* Array index: 0x1047 */ 0x8251,0x5724, - /* Array index: 0x1047 */ 0x8256,0x5725, - /* Array index: 0x1047 */ 0x825C,0x5726, - /* Array index: 0x1047 */ 0x8260,0x5727, - /* Array index: 0x1047 */ 0x8263,0x5728, - /* Array index: 0x1047 */ 0x8267,0x5729, - /* Array index: 0x1047 */ 0x826D,0x572A, - /* Array index: 0x1047 */ 0x8274,0x572B, - /* Array index: 0x1047 */ 0x827B,0x572C, - /* Array index: 0x1047 */ 0x8287,0x5733, - /* Array index: 0x1047 */ 0x8289,0x5734, - /* Array index: 0x1047 */ 0x828A,0x5735, - /* Array index: 0x1047 */ 0x828E,0x5736, - /* Array index: 0x1047 */ 0x8291,0x5737, - /* Array index: 0x1047 */ 0x8294,0x5738, - /* Array index: 0x1047 */ 0x8296,0x5739, - /* Array index: 0x1047 */ 0x8298,0x573A, - /* Array index: 0x1047 */ 0x829A,0x573B, - /* Array index: 0x1047 */ 0x829B,0x573C, - /* Array index: 0x1047 */ 0x82AE,0x5745, - /* Array index: 0x1047 */ 0x82B0,0x5746, - /* Array index: 0x1047 */ 0x82B2,0x5747, - /* Array index: 0x1047 */ 0x82B4,0x5748, - /* Array index: 0x1047 */ 0x82B7,0x5749, - /* Array index: 0x1047 */ 0x82BA,0x574A, - /* Array index: 0x1047 */ 0x82BC,0x574B, - /* Array index: 0x1047 */ 0x82BE,0x574C, - /* Array index: 0x1047 */ 0x82BF,0x574D, - /* Array index: 0x1047 */ 0x82C6,0x574E, - /* Array index: 0x1047 */ 0x82D0,0x574F, - /* Array index: 0x1047 */ 0x82D5,0x5750, - /* Array index: 0x1047 */ 0x82DA,0x5751, - /* Array index: 0x1047 */ 0x82E0,0x5752, - /* Array index: 0x1047 */ 0x82E2,0x5753, - /* Array index: 0x1047 */ 0x82E4,0x5754, - /* Array index: 0x1047 */ 0x82E8,0x5755, - /* Array index: 0x1047 */ 0x82EA,0x5756, - /* Array index: 0x1047 */ 0x82ED,0x5757, - /* Array index: 0x1047 */ 0x82EF,0x5758, - /* Array index: 0x1047 */ 0x82F6,0x5759, - /* Array index: 0x1047 */ 0x82F7,0x575A, - /* Array index: 0x1047 */ 0x8333,0x576E, - /* Array index: 0x1047 */ 0x8337,0x576F, - /* Array index: 0x1047 */ 0x833A,0x5770, - /* Array index: 0x1047 */ 0x833C,0x5771, - /* Array index: 0x1047 */ 0x833D,0x5772, - /* Array index: 0x1047 */ 0x8347,0x5776, - /* Array index: 0x1047 */ 0x834D,0x5777, - /* Array index: 0x1047 */ 0x834E,0x5778, - /* Array index: 0x1047 */ 0x8370,0x577D, - /* Array index: 0x1047 */ 0x8378,0x577E, - /* Array index: 0x1047 */ 0x837D,0x5821, - /* Array index: 0x1047 */ 0x837F,0x5822, - /* Array index: 0x1047 */ 0x8380,0x5823, - /* Array index: 0x1047 */ 0x8382,0x5824, - /* Array index: 0x1047 */ 0x8384,0x5825, - /* Array index: 0x1047 */ 0x8386,0x5826, - /* Array index: 0x1047 */ 0x838D,0x5827, - /* Array index: 0x1047 */ 0x8392,0x5828, - /* Array index: 0x1047 */ 0x8394,0x5829, - /* Array index: 0x1047 */ 0x8395,0x582A, - /* Array index: 0x1047 */ 0x83A6,0x5830, - /* Array index: 0x1047 */ 0x83A7,0x5831, - /* Array index: 0x1047 */ 0x83A9,0x5832, - /* Array index: 0x1047 */ 0x83AC,0x5833, - /* Array index: 0x1047 */ 0x83AD,0x584C, - /* Array index: 0x1047 */ 0x83C7,0x5837, - /* Array index: 0x1047 */ 0x83C9,0x5838, - /* Array index: 0x1047 */ 0x83D4,0x583C, - /* Array index: 0x1047 */ 0x83DD,0x583D, - /* Array index: 0x1047 */ 0x83E8,0x583F, - /* Array index: 0x1047 */ 0x83EA,0x5840, - /* Array index: 0x1047 */ 0x83F6,0x5841, - /* Array index: 0x1047 */ 0x83F8,0x5842, - /* Array index: 0x1047 */ 0x83F9,0x5843, - /* Array index: 0x1047 */ 0x83FC,0x5844, - /* Array index: 0x1047 */ 0x8401,0x5845, - /* Array index: 0x1047 */ 0x8406,0x5846, - /* Array index: 0x1047 */ 0x840A,0x5847, - /* Array index: 0x1047 */ 0x840F,0x5848, - /* Array index: 0x1047 */ 0x8411,0x5849, - /* Array index: 0x1047 */ 0x8415,0x584A, - /* Array index: 0x1047 */ 0x8419,0x584B, - /* Array index: 0x1047 */ 0x842F,0x584D, - /* Array index: 0x1047 */ 0x8439,0x584E, - /* Array index: 0x1047 */ 0x8445,0x584F, - /* Array index: 0x1047 */ 0x8447,0x5850, - /* Array index: 0x1047 */ 0x8448,0x5851, - /* Array index: 0x1047 */ 0x844A,0x5852, - /* Array index: 0x1047 */ 0x844D,0x5853, - /* Array index: 0x1047 */ 0x844F,0x5854, - /* Array index: 0x1047 */ 0x8451,0x5855, - /* Array index: 0x1047 */ 0x8452,0x5856, - /* Array index: 0x1047 */ 0x8460,0x585C, - /* Array index: 0x1047 */ 0x8464,0x585D, - /* Array index: 0x1047 */ 0x8465,0x585E, - /* Array index: 0x1047 */ 0x8467,0x585F, - /* Array index: 0x1047 */ 0x846A,0x5860, - /* Array index: 0x1047 */ 0x8470,0x5861, - /* Array index: 0x1047 */ 0x8473,0x5862, - /* Array index: 0x1047 */ 0x8474,0x5863, - /* Array index: 0x1047 */ 0x8476,0x5864, - /* Array index: 0x1047 */ 0x8478,0x5865, - /* Array index: 0x1047 */ 0x847C,0x5866, - /* Array index: 0x1047 */ 0x847D,0x5867, - /* Array index: 0x1047 */ 0x8481,0x5868, - /* Array index: 0x1047 */ 0x8485,0x5869, - /* Array index: 0x1047 */ 0x8492,0x586A, - /* Array index: 0x1047 */ 0x8493,0x586B, - /* Array index: 0x1047 */ 0x8495,0x586C, - /* Array index: 0x1047 */ 0x849E,0x586D, - /* Array index: 0x1047 */ 0x84AF,0x5872, - /* Array index: 0x1047 */ 0x84B1,0x5873, - /* Array index: 0x1047 */ 0x84B4,0x5874, - /* Array index: 0x1047 */ 0x84BA,0x5875, - /* Array index: 0x1047 */ 0x84BD,0x5876, - /* Array index: 0x1047 */ 0x84BE,0x5877, - /* Array index: 0x1047 */ 0x84C0,0x5878, - /* Array index: 0x1047 */ 0x84C2,0x5879, - /* Array index: 0x1047 */ 0x84C7,0x587A, - /* Array index: 0x1047 */ 0x84C8,0x587B, - /* Array index: 0x1047 */ 0x84CC,0x587C, - /* Array index: 0x1047 */ 0x84CF,0x587D, - /* Array index: 0x1047 */ 0x84D3,0x587E, - /* Array index: 0x1047 */ 0x84DC,0x5921, - /* Array index: 0x1047 */ 0x84E7,0x5922, - /* Array index: 0x1047 */ 0x84EA,0x5923, - /* Array index: 0x1047 */ 0x84F7,0x5928, - /* Array index: 0x1047 */ 0x84FA,0x592A, - /* Array index: 0x1047 */ 0x84FB,0x592B, - /* Array index: 0x1047 */ 0x84FD,0x592C, - /* Array index: 0x1047 */ 0x8502,0x592D, - /* Array index: 0x1047 */ 0x8503,0x592E, - /* Array index: 0x1047 */ 0x8507,0x592F, - /* Array index: 0x1047 */ 0x850C,0x5930, - /* Array index: 0x1047 */ 0x850E,0x5931, - /* Array index: 0x1047 */ 0x8510,0x5932, - /* Array index: 0x1047 */ 0x851C,0x5933, - /* Array index: 0x1047 */ 0x851E,0x5934, - /* Array index: 0x1047 */ 0x852F,0x593C, - /* Array index: 0x1047 */ 0x853F,0x5940, - /* Array index: 0x1047 */ 0x8546,0x5941, - /* Array index: 0x1047 */ 0x8556,0x5947, - /* Array index: 0x1047 */ 0x8559,0x5948, - /* Array index: 0x1047 */ 0x856B,0x5951, - /* Array index: 0x1047 */ 0x856F,0x5952, - /* Array index: 0x1047 */ 0x8585,0x5959, - /* Array index: 0x1047 */ 0x8586,0x595A, - /* Array index: 0x1047 */ 0x8589,0x595B, - /* Array index: 0x1047 */ 0x858B,0x595C, - /* Array index: 0x1047 */ 0x858C,0x595D, - /* Array index: 0x1047 */ 0x858F,0x595E, - /* Array index: 0x1047 */ 0x8593,0x595F, - /* Array index: 0x1047 */ 0x8598,0x5960, - /* Array index: 0x1047 */ 0x859D,0x5961, - /* Array index: 0x1047 */ 0x859F,0x5962, - /* Array index: 0x1047 */ 0x85A0,0x5963, - /* Array index: 0x1047 */ 0x85A2,0x5964, - /* Array index: 0x1047 */ 0x85A5,0x5965, - /* Array index: 0x1047 */ 0x85A7,0x5966, - /* Array index: 0x1047 */ 0x85AD,0x5974, - /* Array index: 0x1047 */ 0x85C2,0x596F, - /* Array index: 0x1047 */ 0x85C7,0x5970, - /* Array index: 0x1047 */ 0x85CA,0x5971, - /* Array index: 0x1047 */ 0x85CB,0x5972, - /* Array index: 0x1047 */ 0x85CE,0x5973, - /* Array index: 0x1047 */ 0x85D8,0x5975, - /* Array index: 0x1047 */ 0x85DA,0x5976, - /* Array index: 0x1047 */ 0x85DF,0x5977, - /* Array index: 0x1047 */ 0x85E0,0x5978, - /* Array index: 0x1047 */ 0x85E6,0x5979, - /* Array index: 0x1047 */ 0x85E8,0x597A, - /* Array index: 0x1047 */ 0x85ED,0x597B, - /* Array index: 0x1047 */ 0x85F3,0x597C, - /* Array index: 0x1047 */ 0x85F6,0x597D, - /* Array index: 0x1047 */ 0x85FC,0x597E, - /* Array index: 0x1047 */ 0x85FF,0x5A21, - /* Array index: 0x1047 */ 0x8600,0x5A22, - /* Array index: 0x1047 */ 0x8604,0x5A23, - /* Array index: 0x1047 */ 0x8605,0x5A24, - /* Array index: 0x1047 */ 0x8618,0x5A2A, - /* Array index: 0x1047 */ 0x8619,0x5A2B, - /* Array index: 0x1047 */ 0x861B,0x5A2C, - /* Array index: 0x1047 */ 0x861E,0x5A2D, - /* Array index: 0x1047 */ 0x8621,0x5A2E, - /* Array index: 0x1047 */ 0x8627,0x5A2F, - /* Array index: 0x1047 */ 0x8629,0x5A30, - /* Array index: 0x1047 */ 0x8636,0x5A31, - /* Array index: 0x1047 */ 0x8638,0x5A32, - /* Array index: 0x1047 */ 0x863A,0x5A33, - /* Array index: 0x1047 */ 0x8646,0x5A38, - /* Array index: 0x1047 */ 0x865D,0x5A3F, - /* Array index: 0x1047 */ 0x8669,0x5A45, - /* Array index: 0x1047 */ 0x866C,0x5A46, - /* Array index: 0x1047 */ 0x866F,0x5A47, - /* Array index: 0x1047 */ 0x867A,0x5A4B, - /* Array index: 0x1047 */ 0x8688,0x5A6D, - /* Array index: 0x1047 */ 0x868D,0x5A4C, - /* Array index: 0x1047 */ 0x8691,0x5A4D, - /* Array index: 0x1047 */ 0x8696,0x5A4E, - /* Array index: 0x1047 */ 0x8698,0x5A4F, - /* Array index: 0x1047 */ 0x869A,0x5A50, - /* Array index: 0x1047 */ 0x869C,0x5A51, - /* Array index: 0x1047 */ 0x86A1,0x5A52, - /* Array index: 0x1047 */ 0x86AD,0x5A56, - /* Array index: 0x1047 */ 0x86D1,0x5A63, - /* Array index: 0x1047 */ 0x86D2,0x5A64, - /* Array index: 0x1047 */ 0x86D5,0x5A65, - /* Array index: 0x1047 */ 0x86D7,0x5A66, - /* Array index: 0x1047 */ 0x86DA,0x5A67, - /* Array index: 0x1047 */ 0x86DC,0x5A68, - /* Array index: 0x1047 */ 0x86E0,0x5A69, - /* Array index: 0x1047 */ 0x86E3,0x5A6A, - /* Array index: 0x1047 */ 0x86E5,0x5A6B, - /* Array index: 0x1047 */ 0x86E7,0x5A6C, - /* Array index: 0x1047 */ 0x86FA,0x5A6E, - /* Array index: 0x1047 */ 0x86FC,0x5A6F, - /* Array index: 0x1047 */ 0x86FD,0x5A70, - /* Array index: 0x1047 */ 0x8704,0x5A71, - /* Array index: 0x1047 */ 0x8705,0x5A72, - /* Array index: 0x1047 */ 0x8707,0x5A73, - /* Array index: 0x1047 */ 0x870B,0x5A74, - /* Array index: 0x1047 */ 0x8719,0x5A7A, - /* Array index: 0x1047 */ 0x871E,0x5A7B, - /* Array index: 0x1047 */ 0x871F,0x5A7C, - /* Array index: 0x1047 */ 0x8721,0x5A7D, - /* Array index: 0x1047 */ 0x8723,0x5A7E, - /* Array index: 0x1047 */ 0x8728,0x5B21, - /* Array index: 0x1047 */ 0x8743,0x5B2C, - /* Array index: 0x1047 */ 0x8745,0x5B2D, - /* Array index: 0x1047 */ 0x874D,0x5B2E, - /* Array index: 0x1047 */ 0x8758,0x5B2F, - /* Array index: 0x1047 */ 0x875D,0x5B30, - /* Array index: 0x1047 */ 0x8761,0x5B31, - /* Array index: 0x1047 */ 0x8764,0x5B32, - /* Array index: 0x1047 */ 0x8765,0x5B33, - /* Array index: 0x1047 */ 0x876F,0x5B34, - /* Array index: 0x1047 */ 0x8771,0x5B35, - /* Array index: 0x1047 */ 0x8772,0x5B36, - /* Array index: 0x1047 */ 0x877B,0x5B37, - /* Array index: 0x1047 */ 0x8790,0x5B41, - /* Array index: 0x1047 */ 0x8793,0x5B42, - /* Array index: 0x1047 */ 0x879E,0x5B47, - /* Array index: 0x1047 */ 0x87A0,0x5B48, - /* Array index: 0x1047 */ 0x87A3,0x5B49, - /* Array index: 0x1047 */ 0x87A7,0x5B4A, - /* Array index: 0x1047 */ 0x87B1,0x5B4E, - /* Array index: 0x1047 */ 0x87B5,0x5B4F, - /* Array index: 0x1047 */ 0x87BE,0x5B50, - /* Array index: 0x1047 */ 0x87BF,0x5B51, - /* Array index: 0x1047 */ 0x87C1,0x5B52, - /* Array index: 0x1047 */ 0x87CE,0x5B56, - /* Array index: 0x1047 */ 0x87D5,0x5B57, - /* Array index: 0x1047 */ 0x87D6,0x5B58, - /* Array index: 0x1047 */ 0x87D9,0x5B59, - /* Array index: 0x1047 */ 0x87DA,0x5B5A, - /* Array index: 0x1047 */ 0x87DC,0x5B5B, - /* Array index: 0x1047 */ 0x87DF,0x5B5C, - /* Array index: 0x1047 */ 0x87EA,0x5B60, - /* Array index: 0x1047 */ 0x87EB,0x5B61, - /* Array index: 0x1047 */ 0x87ED,0x5B62, - /* Array index: 0x1047 */ 0x87F1,0x5B63, - /* Array index: 0x1047 */ 0x87F3,0x5B64, - /* Array index: 0x1047 */ 0x87F8,0x5B65, - /* Array index: 0x1047 */ 0x87FA,0x5B66, - /* Array index: 0x1047 */ 0x87FF,0x5B67, - /* Array index: 0x1047 */ 0x8801,0x5B68, - /* Array index: 0x1047 */ 0x8803,0x5B69, - /* Array index: 0x1047 */ 0x8806,0x5B6A, - /* Array index: 0x1047 */ 0x8828,0x5B79, - /* Array index: 0x1047 */ 0x882D,0x5B7A, - /* Array index: 0x1047 */ 0x882E,0x5B7B, - /* Array index: 0x1047 */ 0x8830,0x5B7C, - /* Array index: 0x1047 */ 0x8832,0x5B7D, - /* Array index: 0x1047 */ 0x8835,0x5B7E, - /* Array index: 0x1047 */ 0x883A,0x5C21, - /* Array index: 0x1047 */ 0x883C,0x5C22, - /* Array index: 0x1047 */ 0x8841,0x5C23, - /* Array index: 0x1047 */ 0x8843,0x5C24, - /* Array index: 0x1047 */ 0x8845,0x5C25, - /* Array index: 0x1047 */ 0x884E,0x5C2A, - /* Array index: 0x1047 */ 0x8851,0x5C2B, - /* Array index: 0x1047 */ 0x8855,0x5C2C, - /* Array index: 0x1047 */ 0x8856,0x5C2D, - /* Array index: 0x1047 */ 0x8858,0x5C2E, - /* Array index: 0x1047 */ 0x885A,0x5C2F, - /* Array index: 0x1047 */ 0x885C,0x5C30, - /* Array index: 0x1047 */ 0x885F,0x5C31, - /* Array index: 0x1047 */ 0x8860,0x5C32, - /* Array index: 0x1047 */ 0x8864,0x5C33, - /* Array index: 0x1047 */ 0x8869,0x5C34, - /* Array index: 0x1047 */ 0x8871,0x5C35, - /* Array index: 0x1047 */ 0x8879,0x5C36, - /* Array index: 0x1047 */ 0x887B,0x5C37, - /* Array index: 0x1047 */ 0x8880,0x5C38, - /* Array index: 0x1047 */ 0x88A8,0x5C3F, - /* Array index: 0x1047 */ 0x88AA,0x5C40, - /* Array index: 0x1047 */ 0x88BA,0x5C41, - /* Array index: 0x1047 */ 0x88BD,0x5C42, - /* Array index: 0x1047 */ 0x88BE,0x5C43, - /* Array index: 0x1047 */ 0x88C0,0x5C44, - /* Array index: 0x1047 */ 0x88DB,0x5C4D, - /* Array index: 0x1047 */ 0x88DE,0x5C4E, - /* Array index: 0x1047 */ 0x88E7,0x5C4F, - /* Array index: 0x1047 */ 0x88F5,0x5C53, - /* Array index: 0x1047 */ 0x88F7,0x5C54, - /* Array index: 0x1047 */ 0x8901,0x5C55, - /* Array index: 0x1047 */ 0x8906,0x5C56, - /* Array index: 0x1047 */ 0x8920,0x5C60, - /* Array index: 0x1047 */ 0x8935,0x5C67, - /* Array index: 0x1047 */ 0x8939,0x5C68, - /* Array index: 0x1047 */ 0x893A,0x5C69, - /* Array index: 0x1047 */ 0x893E,0x5C6A, - /* Array index: 0x1047 */ 0x8940,0x5C6B, - /* Array index: 0x1047 */ 0x8942,0x5C6C, - /* Array index: 0x1047 */ 0x8945,0x5C6D, - /* Array index: 0x1047 */ 0x8946,0x5C6E, - /* Array index: 0x1047 */ 0x8949,0x5C6F, - /* Array index: 0x1047 */ 0x894F,0x5C70, - /* Array index: 0x1047 */ 0x8952,0x5C71, - /* Array index: 0x1047 */ 0x8957,0x5C72, - /* Array index: 0x1047 */ 0x896B,0x5C79, - /* Array index: 0x1047 */ 0x896E,0x5C7A, - /* Array index: 0x1047 */ 0x8970,0x5C7B, - /* Array index: 0x1047 */ 0x8973,0x5C7C, - /* Array index: 0x1047 */ 0x8975,0x5C7D, - /* Array index: 0x1047 */ 0x8989,0x5D24, - /* Array index: 0x1047 */ 0x898D,0x5D25, - /* Array index: 0x1047 */ 0x8990,0x5D26, - /* Array index: 0x1047 */ 0x8994,0x5D27, - /* Array index: 0x1047 */ 0x8995,0x5D28, - /* Array index: 0x1047 */ 0x899B,0x5D29, - /* Array index: 0x1047 */ 0x899C,0x5D2A, - /* Array index: 0x1047 */ 0x899F,0x5D2B, - /* Array index: 0x1047 */ 0x89A0,0x5D2C, - /* Array index: 0x1047 */ 0x89A5,0x5D2D, - /* Array index: 0x1047 */ 0x89B0,0x5D2E, - /* Array index: 0x1047 */ 0x89BC,0x5D33, - /* Array index: 0x1047 */ 0x89E5,0x5D39, - /* Array index: 0x1047 */ 0x89E9,0x5D3A, - /* Array index: 0x1047 */ 0x89EB,0x5D3B, - /* Array index: 0x1047 */ 0x89ED,0x5D3C, - /* Array index: 0x1047 */ 0x89F1,0x5D3D, - /* Array index: 0x1047 */ 0x89F3,0x5D3E, - /* Array index: 0x1047 */ 0x89F6,0x5D3F, - /* Array index: 0x1047 */ 0x89F9,0x5D40, - /* Array index: 0x1047 */ 0x89FD,0x5D41, - /* Array index: 0x1047 */ 0x89FF,0x5D42, - /* Array index: 0x1047 */ 0x8A04,0x5D43, - /* Array index: 0x1047 */ 0x8A05,0x5D44, - /* Array index: 0x1047 */ 0x8A07,0x5D45, - /* Array index: 0x1047 */ 0x8A0F,0x5D46, - /* Array index: 0x1047 */ 0x8A1E,0x5D4B, - /* Array index: 0x1047 */ 0x8A20,0x5D4C, - /* Array index: 0x1047 */ 0x8A22,0x5D4D, - /* Array index: 0x1047 */ 0x8A24,0x5D4E, - /* Array index: 0x1047 */ 0x8A26,0x5D4F, - /* Array index: 0x1047 */ 0x8A2B,0x5D50, - /* Array index: 0x1047 */ 0x8A2C,0x5D51, - /* Array index: 0x1047 */ 0x8A2F,0x5D52, - /* Array index: 0x1047 */ 0x8A35,0x5D53, - /* Array index: 0x1047 */ 0x8A37,0x5D54, - /* Array index: 0x1047 */ 0x8A3D,0x5D55, - /* Array index: 0x1047 */ 0x8A3E,0x5D56, - /* Array index: 0x1047 */ 0x8A40,0x5D57, - /* Array index: 0x1047 */ 0x8A43,0x5D58, - /* Array index: 0x1047 */ 0x8A45,0x5D59, - /* Array index: 0x1047 */ 0x8A47,0x5D5A, - /* Array index: 0x1047 */ 0x8A49,0x5D5B, - /* Array index: 0x1047 */ 0x8A4D,0x5D5C, - /* Array index: 0x1047 */ 0x8A4E,0x5D5D, - /* Array index: 0x1047 */ 0x8A53,0x5D5E, - /* Array index: 0x1047 */ 0x8A5C,0x5D62, - /* Array index: 0x1047 */ 0x8A5D,0x5D63, - /* Array index: 0x1047 */ 0x8A61,0x5D64, - /* Array index: 0x1047 */ 0x8A65,0x5D65, - /* Array index: 0x1047 */ 0x8A67,0x5D66, - /* Array index: 0x1047 */ 0x8A83,0x5D70, - /* Array index: 0x1047 */ 0x8A86,0x5D71, - /* Array index: 0x1047 */ 0x8A8B,0x5D72, - /* Array index: 0x1047 */ 0x8A8F,0x5D73, - /* Array index: 0x1047 */ 0x8A90,0x5D74, - /* Array index: 0x1047 */ 0x8A92,0x5D75, - /* Array index: 0x1047 */ 0x8A96,0x5D76, - /* Array index: 0x1047 */ 0x8A97,0x5D77, - /* Array index: 0x1047 */ 0x8A99,0x5D78, - /* Array index: 0x1047 */ 0x8A9F,0x5D79, - /* Array index: 0x1047 */ 0x8AA7,0x5D7A, - /* Array index: 0x1047 */ 0x8AA9,0x5D7B, - /* Array index: 0x1047 */ 0x8AAE,0x5D7C, - /* Array index: 0x1047 */ 0x8AAF,0x5D7D, - /* Array index: 0x1047 */ 0x8AB3,0x5D7E, - /* Array index: 0x1047 */ 0x8AB6,0x5E21, - /* Array index: 0x1047 */ 0x8AB7,0x5E22, - /* Array index: 0x1047 */ 0x8ABB,0x5E23, - /* Array index: 0x1047 */ 0x8ABE,0x5E24, - /* Array index: 0x1047 */ 0x8AC3,0x5E25, - /* Array index: 0x1047 */ 0x8ADD,0x5E2F, - /* Array index: 0x1047 */ 0x8ADF,0x5E30, - /* Array index: 0x1047 */ 0x8AEC,0x5E31, - /* Array index: 0x1047 */ 0x8AF0,0x5E32, - /* Array index: 0x1047 */ 0x8AFC,0x5E36, - /* Array index: 0x1047 */ 0x8AFF,0x5E37, - /* Array index: 0x1047 */ 0x8B05,0x5E38, - /* Array index: 0x1047 */ 0x8B06,0x5E39, - /* Array index: 0x1047 */ 0x8B0A,0x5E3F, - /* Array index: 0x1047 */ 0x8B0B,0x5E3A, - /* Array index: 0x1047 */ 0x8B11,0x5E3B, - /* Array index: 0x1047 */ 0x8B1C,0x5E3C, - /* Array index: 0x1047 */ 0x8B1E,0x5E3D, - /* Array index: 0x1047 */ 0x8B1F,0x5E3E, - /* Array index: 0x1047 */ 0x8B2D,0x5E40, - /* Array index: 0x1047 */ 0x8B30,0x5E41, - /* Array index: 0x1047 */ 0x8B37,0x5E42, - /* Array index: 0x1047 */ 0x8B3C,0x5E43, - /* Array index: 0x1047 */ 0x8B4D,0x5E4E, - /* Array index: 0x1047 */ 0x8B59,0x5E4D, - /* Array index: 0x1047 */ 0x8B5E,0x5E4F, - /* Array index: 0x1047 */ 0x8B63,0x5E50, - /* Array index: 0x1047 */ 0x8B6D,0x5E51, - /* Array index: 0x1047 */ 0x8B76,0x5E52, - /* Array index: 0x1047 */ 0x8B78,0x5E53, - /* Array index: 0x1047 */ 0x8B79,0x5E54, - /* Array index: 0x1047 */ 0x8B7C,0x5E55, - /* Array index: 0x1047 */ 0x8B7E,0x5E56, - /* Array index: 0x1047 */ 0x8B81,0x5E57, - /* Array index: 0x1047 */ 0x8B84,0x5E58, - /* Array index: 0x1047 */ 0x8B85,0x5E59, - /* Array index: 0x1047 */ 0x8B8B,0x5E5A, - /* Array index: 0x1047 */ 0x8B8D,0x5E5B, - /* Array index: 0x1047 */ 0x8B8F,0x5E5C, - /* Array index: 0x1047 */ 0x8B94,0x5E5D, - /* Array index: 0x1047 */ 0x8B95,0x5E5E, - /* Array index: 0x1047 */ 0x8B9C,0x5E5F, - /* Array index: 0x1047 */ 0x8B9E,0x5E60, - /* Array index: 0x1047 */ 0x8B9F,0x5E61, - /* Array index: 0x1047 */ 0x8C38,0x5E62, - /* Array index: 0x1047 */ 0x8C39,0x5E63, - /* Array index: 0x1047 */ 0x8C3D,0x5E64, - /* Array index: 0x1047 */ 0x8C3E,0x5E65, - /* Array index: 0x1047 */ 0x8C45,0x5E66, - /* Array index: 0x1047 */ 0x8C47,0x5E67, - /* Array index: 0x1047 */ 0x8C49,0x5E68, - /* Array index: 0x1047 */ 0x8C4B,0x5E69, - /* Array index: 0x1047 */ 0x8C4F,0x5E6A, - /* Array index: 0x1047 */ 0x8C51,0x5E6B, - /* Array index: 0x1047 */ 0x8C63,0x5E73, - /* Array index: 0x1047 */ 0x8C64,0x5E74, - /* Array index: 0x1047 */ 0x8C66,0x5E75, - /* Array index: 0x1047 */ 0x8C68,0x5E76, - /* Array index: 0x1047 */ 0x8C69,0x5E77, - /* Array index: 0x1047 */ 0x8C6D,0x5E78, - /* Array index: 0x1047 */ 0x8C73,0x5E79, - /* Array index: 0x1047 */ 0x8C75,0x5E7A, - /* Array index: 0x1047 */ 0x8C76,0x5E7B, - /* Array index: 0x1047 */ 0x8C7B,0x5E7C, - /* Array index: 0x1047 */ 0x8C7E,0x5E7D, - /* Array index: 0x1047 */ 0x8C86,0x5E7E, - /* Array index: 0x1047 */ 0x8C87,0x5F21, - /* Array index: 0x1047 */ 0x8C8B,0x5F22, - /* Array index: 0x1047 */ 0x8C90,0x5F23, - /* Array index: 0x1047 */ 0x8C92,0x5F24, - /* Array index: 0x1047 */ 0x8C93,0x5F25, - /* Array index: 0x1047 */ 0x8C99,0x5F26, - /* Array index: 0x1047 */ 0x8C9B,0x5F27, - /* Array index: 0x1047 */ 0x8C9C,0x5F28, - /* Array index: 0x1047 */ 0x8CA4,0x5F29, - /* Array index: 0x1047 */ 0x8CB9,0x5F2A, - /* Array index: 0x1047 */ 0x8CBA,0x5F2B, - /* Array index: 0x1047 */ 0x8CC5,0x5F2C, - /* Array index: 0x1047 */ 0x8CC6,0x5F2D, - /* Array index: 0x1047 */ 0x8CC9,0x5F2E, - /* Array index: 0x1047 */ 0x8CCB,0x5F2F, - /* Array index: 0x1047 */ 0x8CCF,0x5F30, - /* Array index: 0x1047 */ 0x8CD5,0x5F32, - /* Array index: 0x1047 */ 0x8CD6,0x5F31, - /* Array index: 0x1047 */ 0x8CD9,0x5F33, - /* Array index: 0x1047 */ 0x8CDD,0x5F34, - /* Array index: 0x1047 */ 0x8CE1,0x5F35, - /* Array index: 0x1047 */ 0x8CE8,0x5F36, - /* Array index: 0x1047 */ 0x8CEC,0x5F37, - /* Array index: 0x1047 */ 0x8CEF,0x5F38, - /* Array index: 0x1047 */ 0x8CF0,0x5F39, - /* Array index: 0x1047 */ 0x8CF2,0x5F3A, - /* Array index: 0x1047 */ 0x8CF5,0x5F3B, - /* Array index: 0x1047 */ 0x8CF7,0x5F3C, - /* Array index: 0x1047 */ 0x8CF8,0x5F3D, - /* Array index: 0x1047 */ 0x8CFE,0x5F3E, - /* Array index: 0x1047 */ 0x8CFF,0x5F3F, - /* Array index: 0x1047 */ 0x8D01,0x5F40, - /* Array index: 0x1047 */ 0x8D03,0x5F41, - /* Array index: 0x1047 */ 0x8D09,0x5F42, - /* Array index: 0x1047 */ 0x8D12,0x5F43, - /* Array index: 0x1047 */ 0x8D17,0x5F44, - /* Array index: 0x1047 */ 0x8D1B,0x5F45, - /* Array index: 0x1047 */ 0x8D65,0x5F46, - /* Array index: 0x1047 */ 0x8D69,0x5F47, - /* Array index: 0x1047 */ 0x8D6C,0x5F48, - /* Array index: 0x1047 */ 0x8D6E,0x5F49, - /* Array index: 0x1047 */ 0x8D7F,0x5F4A, - /* Array index: 0x1047 */ 0x8D82,0x5F4B, - /* Array index: 0x1047 */ 0x8D84,0x5F4C, - /* Array index: 0x1047 */ 0x8D88,0x5F4D, - /* Array index: 0x1047 */ 0x8D8D,0x5F4E, - /* Array index: 0x1047 */ 0x8D90,0x5F4F, - /* Array index: 0x1047 */ 0x8D91,0x5F50, - /* Array index: 0x1047 */ 0x8D95,0x5F51, - /* Array index: 0x1047 */ 0x8DA6,0x5F55, - /* Array index: 0x1047 */ 0x8DAB,0x5F56, - /* Array index: 0x1047 */ 0x8DAC,0x5F57, - /* Array index: 0x1047 */ 0x8DAF,0x5F58, - /* Array index: 0x1047 */ 0x8DB2,0x5F59, - /* Array index: 0x1047 */ 0x8DB5,0x5F5A, - /* Array index: 0x1047 */ 0x8DB7,0x5F5B, - /* Array index: 0x1047 */ 0x8DB9,0x5F5C, - /* Array index: 0x1047 */ 0x8DBB,0x5F5D, - /* Array index: 0x1047 */ 0x8DBC,0x5F6F, - /* Array index: 0x1047 */ 0x8DC0,0x5F5E, - /* Array index: 0x1047 */ 0x8DCE,0x5F64, - /* Array index: 0x1047 */ 0x8DD1,0x5F65, - /* Array index: 0x1047 */ 0x8DD4,0x5F66, - /* Array index: 0x1047 */ 0x8DD5,0x5F67, - /* Array index: 0x1047 */ 0x8DD7,0x5F68, - /* Array index: 0x1047 */ 0x8DD9,0x5F69, - /* Array index: 0x1047 */ 0x8DE4,0x5F6A, - /* Array index: 0x1047 */ 0x8DE5,0x5F6B, - /* Array index: 0x1047 */ 0x8DE7,0x5F6C, - /* Array index: 0x1047 */ 0x8DEC,0x5F6D, - /* Array index: 0x1047 */ 0x8DFD,0x5F73, - /* Array index: 0x1047 */ 0x8E01,0x5F74, - /* Array index: 0x1047 */ 0x8E0B,0x5F78, - /* Array index: 0x1047 */ 0x8E11,0x5F79, - /* Array index: 0x1047 */ 0x8E14,0x5F7A, - /* Array index: 0x1047 */ 0x8E16,0x5F7B, - /* Array index: 0x1047 */ 0x8E31,0x6024, - /* Array index: 0x1047 */ 0x8E33,0x6025, - /* Array index: 0x1047 */ 0x8E3D,0x602A, - /* Array index: 0x1047 */ 0x8E40,0x602B, - /* Array index: 0x1047 */ 0x8E41,0x602C, - /* Array index: 0x1047 */ 0x8E54,0x6031, - /* Array index: 0x1047 */ 0x8E69,0x6038, - /* Array index: 0x1047 */ 0x8E82,0x6041, - /* Array index: 0x1047 */ 0x8E83,0x6042, - /* Array index: 0x1047 */ 0x8E89,0x6043, - /* Array index: 0x1047 */ 0x8E90,0x6044, - /* Array index: 0x1047 */ 0x8E92,0x6045, - /* Array index: 0x1047 */ 0x8E95,0x6046, - /* Array index: 0x1047 */ 0x8EA2,0x604B, - /* Array index: 0x1047 */ 0x8EA7,0x604C, - /* Array index: 0x1047 */ 0x8EA9,0x604D, - /* Array index: 0x1047 */ 0x8EAD,0x604E, - /* Array index: 0x1047 */ 0x8EAE,0x604F, - /* Array index: 0x1047 */ 0x8EB3,0x6050, - /* Array index: 0x1047 */ 0x8EB5,0x6051, - /* Array index: 0x1047 */ 0x8EBA,0x6052, - /* Array index: 0x1047 */ 0x8EBB,0x6053, - /* Array index: 0x1047 */ 0x8EC7,0x6058, - /* Array index: 0x1047 */ 0x8ECF,0x6059, - /* Array index: 0x1047 */ 0x8ED1,0x605A, - /* Array index: 0x1047 */ 0x8ED4,0x605B, - /* Array index: 0x1047 */ 0x8EDC,0x605C, - /* Array index: 0x1047 */ 0x8EE8,0x605D, - /* Array index: 0x1047 */ 0x8EF7,0x6061, - /* Array index: 0x1047 */ 0x8EF9,0x6062, - /* Array index: 0x1047 */ 0x8EFA,0x6063, - /* Array index: 0x1047 */ 0x8F00,0x6065, - /* Array index: 0x1047 */ 0x8F02,0x6066, - /* Array index: 0x1047 */ 0x8F07,0x6067, - /* Array index: 0x1047 */ 0x8F08,0x6068, - /* Array index: 0x1047 */ 0x8F0F,0x6069, - /* Array index: 0x1047 */ 0x8F10,0x606A, - /* Array index: 0x1047 */ 0x8F1E,0x606E, - /* Array index: 0x1047 */ 0x8F20,0x606F, - /* Array index: 0x1047 */ 0x8F21,0x6070, - /* Array index: 0x1047 */ 0x8F23,0x6071, - /* Array index: 0x1047 */ 0x8F25,0x6072, - /* Array index: 0x1047 */ 0x8F27,0x6073, - /* Array index: 0x1047 */ 0x8F28,0x6074, - /* Array index: 0x1047 */ 0x8F3A,0x607C, - /* Array index: 0x1047 */ 0x8F40,0x607D, - /* Array index: 0x1047 */ 0x8F41,0x607E, - /* Array index: 0x1047 */ 0x8F43,0x6121, - /* Array index: 0x1047 */ 0x8F47,0x6122, - /* Array index: 0x1047 */ 0x8F58,0x6129, - /* Array index: 0x1047 */ 0x8F5D,0x612A, - /* Array index: 0x1047 */ 0x8F5E,0x612B, - /* Array index: 0x1047 */ 0x8F65,0x612C, - /* Array index: 0x1047 */ 0x8F9D,0x612D, - /* Array index: 0x1047 */ 0x8FB5,0x6133, - /* Array index: 0x1047 */ 0x8FB6,0x6134, - /* Array index: 0x1047 */ 0x8FB8,0x6135, - /* Array index: 0x1047 */ 0x8FBE,0x6136, - /* Array index: 0x1047 */ 0x8FC0,0x6137, - /* Array index: 0x1047 */ 0x8FC1,0x6138, - /* Array index: 0x1047 */ 0x8FC6,0x6139, - /* Array index: 0x1047 */ 0x8FCA,0x613A, - /* Array index: 0x1047 */ 0x8FCB,0x613B, - /* Array index: 0x1047 */ 0x8FCD,0x613C, - /* Array index: 0x1047 */ 0x8FD0,0x613D, - /* Array index: 0x1047 */ 0x8FD2,0x613E, - /* Array index: 0x1047 */ 0x8FD3,0x613F, - /* Array index: 0x1047 */ 0x8FD5,0x6140, - /* Array index: 0x1047 */ 0x8FE0,0x6141, - /* Array index: 0x1047 */ 0x8FE3,0x6142, - /* Array index: 0x1047 */ 0x8FE4,0x6143, - /* Array index: 0x1047 */ 0x8FE8,0x6144, - /* Array index: 0x1047 */ 0x8FEE,0x6145, - /* Array index: 0x1047 */ 0x8FF1,0x6146, - /* Array index: 0x1047 */ 0x8FF5,0x6147, - /* Array index: 0x1047 */ 0x8FF6,0x6148, - /* Array index: 0x1047 */ 0x8FFB,0x6149, - /* Array index: 0x1047 */ 0x8FFE,0x614A, - /* Array index: 0x1047 */ 0x9002,0x614B, - /* Array index: 0x1047 */ 0x9004,0x614C, - /* Array index: 0x1047 */ 0x9008,0x614D, - /* Array index: 0x1047 */ 0x900C,0x614E, - /* Array index: 0x1047 */ 0x9018,0x614F, - /* Array index: 0x1047 */ 0x901B,0x6150, - /* Array index: 0x1047 */ 0x9033,0x6157, - /* Array index: 0x1047 */ 0x9034,0x6158, - /* Array index: 0x1047 */ 0x9037,0x6159, - /* Array index: 0x1047 */ 0x903F,0x615A, - /* Array index: 0x1047 */ 0x9043,0x615B, - /* Array index: 0x1047 */ 0x9044,0x615C, - /* Array index: 0x1047 */ 0x904C,0x615D, - /* Array index: 0x1047 */ 0x905B,0x615E, - /* Array index: 0x1047 */ 0x905D,0x615F, - /* Array index: 0x1047 */ 0x9062,0x6160, - /* Array index: 0x1047 */ 0x9066,0x6161, - /* Array index: 0x1047 */ 0x9067,0x6162, - /* Array index: 0x1047 */ 0x906C,0x6163, - /* Array index: 0x1047 */ 0x9070,0x6164, - /* Array index: 0x1047 */ 0x9074,0x6165, - /* Array index: 0x1047 */ 0x9079,0x6166, - /* Array index: 0x1047 */ 0x9085,0x6167, - /* Array index: 0x1047 */ 0x9088,0x6168, - /* Array index: 0x1047 */ 0x908B,0x6169, - /* Array index: 0x1047 */ 0x908C,0x616A, - /* Array index: 0x1047 */ 0x908E,0x616B, - /* Array index: 0x1047 */ 0x9090,0x616C, - /* Array index: 0x1047 */ 0x90A5,0x6175, - /* Array index: 0x1047 */ 0x90BD,0x617B, - /* Array index: 0x1047 */ 0x90BE,0x617D, - /* Array index: 0x1047 */ 0x90CC,0x617C, - /* Array index: 0x1047 */ 0x90D2,0x622D, - /* Array index: 0x1047 */ 0x90E5,0x622C, - /* Array index: 0x1047 */ 0x90EB,0x622F, - /* Array index: 0x1047 */ 0x90EF,0x6230, - /* Array index: 0x1047 */ 0x90F0,0x6231, - /* Array index: 0x1047 */ 0x90F4,0x6232, - /* Array index: 0x1047 */ 0x90F6,0x622E, - /* Array index: 0x1047 */ 0x910D,0x623A, - /* Array index: 0x1047 */ 0x9110,0x623B, - /* Array index: 0x1047 */ 0x912E,0x6249, - /* Array index: 0x1047 */ 0x912F,0x624A, - /* Array index: 0x1047 */ 0x9131,0x624B, - /* Array index: 0x1047 */ 0x9134,0x624C, - /* Array index: 0x1047 */ 0x9143,0x6253, - /* Array index: 0x1047 */ 0x9147,0x6254, - /* Array index: 0x1047 */ 0x9148,0x6255, - /* Array index: 0x1047 */ 0x914F,0x6256, - /* Array index: 0x1047 */ 0x9153,0x6257, - /* Array index: 0x1047 */ 0x9161,0x625C, - /* Array index: 0x1047 */ 0x9164,0x625D, - /* Array index: 0x1047 */ 0x9167,0x625E, - /* Array index: 0x1047 */ 0x916D,0x625F, - /* Array index: 0x1047 */ 0x9174,0x6260, - /* Array index: 0x1047 */ 0x9181,0x6264, - /* Array index: 0x1047 */ 0x9183,0x6265, - /* Array index: 0x1047 */ 0x9185,0x6266, - /* Array index: 0x1047 */ 0x9186,0x6267, - /* Array index: 0x1047 */ 0x918A,0x6268, - /* Array index: 0x1047 */ 0x918E,0x6269, - /* Array index: 0x1047 */ 0x9198,0x626E, - /* Array index: 0x1047 */ 0x919E,0x626F, - /* Array index: 0x1047 */ 0x91A1,0x6270, - /* Array index: 0x1047 */ 0x91A6,0x6271, - /* Array index: 0x1047 */ 0x91A8,0x6272, - /* Array index: 0x1047 */ 0x91B6,0x627A, - /* Array index: 0x1047 */ 0x91D3,0x6324, - /* Array index: 0x1047 */ 0x91D4,0x6325, - /* Array index: 0x1047 */ 0x91D7,0x6326, - /* Array index: 0x1047 */ 0x91D9,0x6327, - /* Array index: 0x1047 */ 0x91DA,0x6328, - /* Array index: 0x1047 */ 0x91DE,0x6329, - /* Array index: 0x1047 */ 0x91E4,0x632A, - /* Array index: 0x1047 */ 0x91E5,0x632B, - /* Array index: 0x1047 */ 0x91F7,0x6334, - /* Array index: 0x1047 */ 0x91F9,0x6335, - /* Array index: 0x1047 */ 0x91FB,0x6336, - /* Array index: 0x1047 */ 0x91FD,0x6337, - /* Array index: 0x1047 */ 0x9210,0x6341, - /* Array index: 0x1047 */ 0x9212,0x6342, - /* Array index: 0x1047 */ 0x9213,0x6343, - /* Array index: 0x1047 */ 0x9216,0x6344, - /* Array index: 0x1047 */ 0x9218,0x6345, - /* Array index: 0x1047 */ 0x921C,0x6346, - /* Array index: 0x1047 */ 0x921D,0x6347, - /* Array index: 0x1047 */ 0x9233,0x6350, - /* Array index: 0x1047 */ 0x924A,0x635D, - /* Array index: 0x1047 */ 0x9258,0x6362, - /* Array index: 0x1047 */ 0x9259,0x6363, - /* Array index: 0x1047 */ 0x925C,0x6364, - /* Array index: 0x1047 */ 0x925D,0x6365, - /* Array index: 0x1047 */ 0x9260,0x6366, - /* Array index: 0x1047 */ 0x9261,0x6367, - /* Array index: 0x1047 */ 0x9292,0x637D, - /* Array index: 0x1047 */ 0x9297,0x637E, - /* Array index: 0x1047 */ 0x9299,0x6421, - /* Array index: 0x1047 */ 0x929F,0x6422, - /* Array index: 0x1047 */ 0x92A0,0x6423, - /* Array index: 0x1047 */ 0x92AB,0x6428, - /* Array index: 0x1047 */ 0x92AF,0x6429, - /* Array index: 0x1047 */ 0x92B2,0x642A, - /* Array index: 0x1047 */ 0x92B6,0x642B, - /* Array index: 0x1047 */ 0x92D3,0x643F, - /* Array index: 0x1047 */ 0x92EC,0x644D, - /* Array index: 0x1047 */ 0x92EE,0x644E, - /* Array index: 0x1047 */ 0x92F0,0x644F, - /* Array index: 0x1047 */ 0x92F9,0x6450, - /* Array index: 0x1047 */ 0x92FB,0x6451, - /* Array index: 0x1047 */ 0x92FF,0x6452, - /* Array index: 0x1047 */ 0x9300,0x6453, - /* Array index: 0x1047 */ 0x9302,0x6454, - /* Array index: 0x1047 */ 0x9308,0x6455, - /* Array index: 0x1047 */ 0x930D,0x6456, - /* Array index: 0x1047 */ 0x9311,0x6457, - /* Array index: 0x1047 */ 0x9314,0x6458, - /* Array index: 0x1047 */ 0x9315,0x6459, - /* Array index: 0x1047 */ 0x9355,0x646E, - /* Array index: 0x1047 */ 0x9357,0x646F, - /* Array index: 0x1047 */ 0x9358,0x6470, - /* Array index: 0x1047 */ 0x935A,0x6471, - /* Array index: 0x1047 */ 0x935E,0x6472, - /* Array index: 0x1047 */ 0x9364,0x6473, - /* Array index: 0x1047 */ 0x9365,0x6474, - /* Array index: 0x1047 */ 0x9367,0x6475, - /* Array index: 0x1047 */ 0x9369,0x6476, - /* Array index: 0x1047 */ 0x936A,0x6477, - /* Array index: 0x1047 */ 0x937A,0x6521, - /* Array index: 0x1047 */ 0x9388,0x6527, - /* Array index: 0x1047 */ 0x938A,0x6528, - /* Array index: 0x1047 */ 0x938B,0x6529, - /* Array index: 0x1047 */ 0x938D,0x652A, - /* Array index: 0x1047 */ 0x938F,0x652B, - /* Array index: 0x1047 */ 0x9392,0x652C, - /* Array index: 0x1047 */ 0x9395,0x652D, - /* Array index: 0x1047 */ 0x9398,0x652E, - /* Array index: 0x1047 */ 0x939B,0x652F, - /* Array index: 0x1047 */ 0x939E,0x6530, - /* Array index: 0x1047 */ 0x93A1,0x6531, - /* Array index: 0x1047 */ 0x93A3,0x6532, - /* Array index: 0x1047 */ 0x93A4,0x6533, - /* Array index: 0x1047 */ 0x93A6,0x6534, - /* Array index: 0x1047 */ 0x93A8,0x6535, - /* Array index: 0x1047 */ 0x93A9,0x653B, - /* Array index: 0x1047 */ 0x93AB,0x6536, - /* Array index: 0x1047 */ 0x93BA,0x653A, - /* Array index: 0x1047 */ 0x93C1,0x653C, - /* Array index: 0x1047 */ 0x93D3,0x6546, - /* Array index: 0x1047 */ 0x93D9,0x6547, - /* Array index: 0x1047 */ 0x93DC,0x6548, - /* Array index: 0x1047 */ 0x93DE,0x6549, - /* Array index: 0x1047 */ 0x93DF,0x654A, - /* Array index: 0x1047 */ 0x93E2,0x654B, - /* Array index: 0x1047 */ 0x93E6,0x654C, - /* Array index: 0x1047 */ 0x93E7,0x654D, - /* Array index: 0x1047 */ 0x9401,0x6554, - /* Array index: 0x1047 */ 0x9402,0x6555, - /* Array index: 0x1047 */ 0x9404,0x6556, - /* Array index: 0x1047 */ 0x9408,0x6557, - /* Array index: 0x1047 */ 0x9409,0x6558, - /* Array index: 0x1047 */ 0x941F,0x655F, - /* Array index: 0x1047 */ 0x943B,0x6566, - /* Array index: 0x1047 */ 0x943D,0x6568, - /* Array index: 0x1047 */ 0x943F,0x6567, - /* Array index: 0x1047 */ 0x9443,0x6569, - /* Array index: 0x1047 */ 0x9445,0x656A, - /* Array index: 0x1047 */ 0x9448,0x656B, - /* Array index: 0x1047 */ 0x944A,0x656C, - /* Array index: 0x1047 */ 0x944C,0x656D, - /* Array index: 0x1047 */ 0x9455,0x656E, - /* Array index: 0x1047 */ 0x9459,0x656F, - /* Array index: 0x1047 */ 0x945C,0x6570, - /* Array index: 0x1047 */ 0x945F,0x6571, - /* Array index: 0x1047 */ 0x9461,0x6572, - /* Array index: 0x1047 */ 0x9463,0x6573, - /* Array index: 0x1047 */ 0x9468,0x6574, - /* Array index: 0x1047 */ 0x9483,0x657C, - /* Array index: 0x1047 */ 0x9484,0x657B, - /* Array index: 0x1047 */ 0x9578,0x657D, - /* Array index: 0x1047 */ 0x9579,0x657E, - /* Array index: 0x1047 */ 0x957E,0x6621, - /* Array index: 0x1047 */ 0x9584,0x6622, - /* Array index: 0x1047 */ 0x9588,0x6623, - /* Array index: 0x1047 */ 0x95A6,0x662B, - /* Array index: 0x1047 */ 0x95A9,0x662C, - /* Array index: 0x1047 */ 0x95AB,0x662D, - /* Array index: 0x1047 */ 0x95AC,0x662E, - /* Array index: 0x1047 */ 0x95B4,0x662F, - /* Array index: 0x1047 */ 0x95B6,0x6630, - /* Array index: 0x1047 */ 0x95BA,0x6631, - /* Array index: 0x1047 */ 0x95BD,0x6632, - /* Array index: 0x1047 */ 0x95BF,0x6633, - /* Array index: 0x1047 */ 0x95C6,0x6634, - /* Array index: 0x1047 */ 0x95C8,0x6635, - /* Array index: 0x1047 */ 0x95C9,0x6636, - /* Array index: 0x1047 */ 0x95CB,0x6637, - /* Array index: 0x1047 */ 0x95E4,0x6642, - /* Array index: 0x1047 */ 0x95E6,0x6643, - /* Array index: 0x1047 */ 0x961D,0x6644, - /* Array index: 0x1047 */ 0x961E,0x6645, - /* Array index: 0x1047 */ 0x962C,0x664A, - /* Array index: 0x1047 */ 0x9631,0x664B, - /* Array index: 0x1047 */ 0x9633,0x664C, - /* Array index: 0x1047 */ 0x9641,0x6653, - /* Array index: 0x1047 */ 0x9652,0x6654, - /* Array index: 0x1047 */ 0x9661,0x6659, - /* Array index: 0x1047 */ 0x966E,0x665A, - /* Array index: 0x1047 */ 0x9674,0x665B, - /* Array index: 0x1047 */ 0x9689,0x6664, - /* Array index: 0x1047 */ 0x9691,0x6665, - /* Array index: 0x1047 */ 0x9696,0x6666, - /* Array index: 0x1047 */ 0x969A,0x6667, - /* Array index: 0x1047 */ 0x969D,0x6668, - /* Array index: 0x1047 */ 0x969F,0x6669, - /* Array index: 0x1047 */ 0x96A9,0x666D, - /* Array index: 0x1047 */ 0x96AE,0x666E, - /* Array index: 0x1047 */ 0x96AF,0x666F, - /* Array index: 0x1047 */ 0x96B3,0x6670, - /* Array index: 0x1047 */ 0x96BA,0x6671, - /* Array index: 0x1047 */ 0x96CA,0x6672, - /* Array index: 0x1047 */ 0x96D2,0x6673, - /* Array index: 0x1047 */ 0x96D8,0x6675, - /* Array index: 0x1047 */ 0x96DA,0x6676, - /* Array index: 0x1047 */ 0x96E9,0x667A, - /* Array index: 0x1047 */ 0x96EF,0x667B, - /* Array index: 0x1047 */ 0x96F1,0x667C, - /* Array index: 0x1047 */ 0x96FA,0x667D, - /* Array index: 0x1047 */ 0x9702,0x667E, - /* Array index: 0x1047 */ 0x9703,0x6721, - /* Array index: 0x1047 */ 0x9705,0x6722, - /* Array index: 0x1047 */ 0x9709,0x6723, - /* Array index: 0x1047 */ 0x971A,0x6724, - /* Array index: 0x1047 */ 0x971B,0x6725, - /* Array index: 0x1047 */ 0x971D,0x6726, - /* Array index: 0x1047 */ 0x9728,0x672A, - /* Array index: 0x1047 */ 0x9731,0x672B, - /* Array index: 0x1047 */ 0x9733,0x672C, - /* Array index: 0x1047 */ 0x9741,0x672D, - /* Array index: 0x1047 */ 0x9743,0x672E, - /* Array index: 0x1047 */ 0x974A,0x672F, - /* Array index: 0x1047 */ 0x974E,0x6730, - /* Array index: 0x1047 */ 0x974F,0x6731, - /* Array index: 0x1047 */ 0x9755,0x6732, - /* Array index: 0x1047 */ 0x9763,0x6737, - /* Array index: 0x1047 */ 0x9767,0x6738, - /* Array index: 0x1047 */ 0x976A,0x6739, - /* Array index: 0x1047 */ 0x976E,0x673A, - /* Array index: 0x1047 */ 0x9773,0x673B, - /* Array index: 0x1047 */ 0x977B,0x673F, - /* Array index: 0x1047 */ 0x977D,0x6740, - /* Array index: 0x1047 */ 0x977F,0x6741, - /* Array index: 0x1047 */ 0x9780,0x6742, - /* Array index: 0x1047 */ 0x9789,0x6743, - /* Array index: 0x1047 */ 0x979E,0x6749, - /* Array index: 0x1047 */ 0x979F,0x674A, - /* Array index: 0x1047 */ 0x97A2,0x674B, - /* Array index: 0x1047 */ 0x97AC,0x674C, - /* Array index: 0x1047 */ 0x97AE,0x674D, - /* Array index: 0x1047 */ 0x97B1,0x674E, - /* Array index: 0x1047 */ 0x97B2,0x674F, - /* Array index: 0x1047 */ 0x97D4,0x6763, - /* Array index: 0x1047 */ 0x97E4,0x676C, - /* Array index: 0x1047 */ 0x97EF,0x676D, - /* Array index: 0x1047 */ 0x97F1,0x676E, - /* Array index: 0x1047 */ 0x97F4,0x676F, - /* Array index: 0x1047 */ 0x97F7,0x6770, - /* Array index: 0x1047 */ 0x97F8,0x6771, - /* Array index: 0x1047 */ 0x97FA,0x6772, - /* Array index: 0x1047 */ 0x9807,0x6773, - /* Array index: 0x1047 */ 0x980A,0x6774, - /* Array index: 0x1047 */ 0x980D,0x6776, - /* Array index: 0x1047 */ 0x980E,0x6777, - /* Array index: 0x1047 */ 0x9814,0x6778, - /* Array index: 0x1047 */ 0x9816,0x6779, - /* Array index: 0x1047 */ 0x9819,0x6775, - /* Array index: 0x1047 */ 0x981C,0x677A, - /* Array index: 0x1047 */ 0x981E,0x677B, - /* Array index: 0x1047 */ 0x9820,0x677C, - /* Array index: 0x1047 */ 0x9823,0x677D, - /* Array index: 0x1047 */ 0x9825,0x6828, - /* Array index: 0x1047 */ 0x9826,0x677E, - /* Array index: 0x1047 */ 0x982B,0x6821, - /* Array index: 0x1047 */ 0x983E,0x6829, - /* Array index: 0x1047 */ 0x9844,0x682A, - /* Array index: 0x1047 */ 0x9847,0x682B, - /* Array index: 0x1047 */ 0x984A,0x682C, - /* Array index: 0x1047 */ 0x986A,0x6838, - /* Array index: 0x1047 */ 0x986C,0x6839, - /* Array index: 0x1047 */ 0x98AB,0x683A, - /* Array index: 0x1047 */ 0x98AD,0x683B, - /* Array index: 0x1047 */ 0x98AE,0x683C, - /* Array index: 0x1047 */ 0x98B0,0x683D, - /* Array index: 0x1047 */ 0x98B4,0x683E, - /* Array index: 0x1047 */ 0x98BF,0x6843, - /* Array index: 0x1047 */ 0x98C2,0x6844, - /* Array index: 0x1047 */ 0x98C5,0x6845, - /* Array index: 0x1047 */ 0x98C8,0x6846, - /* Array index: 0x1047 */ 0x98CC,0x6847, - /* Array index: 0x1047 */ 0x98E1,0x6848, - /* Array index: 0x1047 */ 0x98EA,0x684D, - /* Array index: 0x1047 */ 0x98F3,0x684E, - /* Array index: 0x1047 */ 0x98F6,0x684F, - /* Array index: 0x1047 */ 0x9902,0x6850, - /* Array index: 0x1047 */ 0x9907,0x6851, - /* Array index: 0x1047 */ 0x9908,0x6852, - /* Array index: 0x1047 */ 0x9911,0x6853, - /* Array index: 0x1047 */ 0x991F,0x685A, - /* Array index: 0x1047 */ 0x9922,0x685B, - /* Array index: 0x1047 */ 0x9926,0x685C, - /* Array index: 0x1047 */ 0x9927,0x685D, - /* Array index: 0x1047 */ 0x992B,0x685E, - /* Array index: 0x1047 */ 0x9940,0x6868, - /* Array index: 0x1047 */ 0x9941,0x6869, - /* Array index: 0x1047 */ 0x994D,0x686D, - /* Array index: 0x1047 */ 0x994E,0x686E, - /* Array index: 0x1047 */ 0x9954,0x686F, - /* Array index: 0x1047 */ 0x999B,0x6877, - /* Array index: 0x1047 */ 0x999D,0x6878, - /* Array index: 0x1047 */ 0x999F,0x6879, - /* Array index: 0x1047 */ 0x99A6,0x687A, - /* Array index: 0x1047 */ 0x99B5,0x687E, - /* Array index: 0x1047 */ 0x99B9,0x6921, - /* Array index: 0x1047 */ 0x99BA,0x6922, - /* Array index: 0x1047 */ 0x99BD,0x6923, - /* Array index: 0x1047 */ 0x99BF,0x6924, - /* Array index: 0x1047 */ 0x99C3,0x6925, - /* Array index: 0x1047 */ 0x99C9,0x6926, - /* Array index: 0x1047 */ 0x99D3,0x6927, - /* Array index: 0x1047 */ 0x99D4,0x6928, - /* Array index: 0x1047 */ 0x99D9,0x6929, - /* Array index: 0x1047 */ 0x99DA,0x692A, - /* Array index: 0x1047 */ 0x99DC,0x692B, - /* Array index: 0x1047 */ 0x99DE,0x692C, - /* Array index: 0x1047 */ 0x99E7,0x692D, - /* Array index: 0x1047 */ 0x99F0,0x6931, - /* Array index: 0x1047 */ 0x99F4,0x6932, - /* Array index: 0x1047 */ 0x99F5,0x6933, - /* Array index: 0x1047 */ 0x99F9,0x6934, - /* Array index: 0x1047 */ 0x99FD,0x6935, - /* Array index: 0x1047 */ 0x99FE,0x6936, - /* Array index: 0x1047 */ 0x9A0B,0x693A, - /* Array index: 0x1047 */ 0x9A0C,0x693B, - /* Array index: 0x1047 */ 0x9A10,0x693C, - /* Array index: 0x1047 */ 0x9A11,0x693D, - /* Array index: 0x1047 */ 0x9A16,0x693E, - /* Array index: 0x1047 */ 0x9A1E,0x693F, - /* Array index: 0x1047 */ 0x9A27,0x6944, - /* Array index: 0x1047 */ 0x9A2D,0x6945, - /* Array index: 0x1047 */ 0x9A2E,0x6946, - /* Array index: 0x1047 */ 0x9A33,0x6947, - /* Array index: 0x1047 */ 0x9A35,0x6948, - /* Array index: 0x1047 */ 0x9A36,0x6949, - /* Array index: 0x1047 */ 0x9A38,0x694A, - /* Array index: 0x1047 */ 0x9A41,0x694C, - /* Array index: 0x1047 */ 0x9A44,0x694D, - /* Array index: 0x1047 */ 0x9A47,0x694B, - /* Array index: 0x1047 */ 0x9A51,0x6952, - /* Array index: 0x1047 */ 0x9A54,0x6953, - /* Array index: 0x1047 */ 0x9A56,0x6954, - /* Array index: 0x1047 */ 0x9A5D,0x6955, - /* Array index: 0x1047 */ 0x9AAA,0x6956, - /* Array index: 0x1047 */ 0x9AAC,0x6957, - /* Array index: 0x1047 */ 0x9AAE,0x6958, - /* Array index: 0x1047 */ 0x9AAF,0x6959, - /* Array index: 0x1047 */ 0x9AB9,0x695E, - /* Array index: 0x1047 */ 0x9ABB,0x695F, - /* Array index: 0x1047 */ 0x9ABE,0x6960, - /* Array index: 0x1047 */ 0x9ABF,0x6961, - /* Array index: 0x1047 */ 0x9AC1,0x6962, - /* Array index: 0x1047 */ 0x9AC3,0x6963, - /* Array index: 0x1047 */ 0x9AC6,0x6964, - /* Array index: 0x1047 */ 0x9AC8,0x6965, - /* Array index: 0x1047 */ 0x9ACE,0x6966, - /* Array index: 0x1047 */ 0x9AD0,0x6967, - /* Array index: 0x1047 */ 0x9AD2,0x6968, - /* Array index: 0x1047 */ 0x9ADB,0x696C, - /* Array index: 0x1047 */ 0x9ADC,0x696D, - /* Array index: 0x1047 */ 0x9AE0,0x696E, - /* Array index: 0x1047 */ 0x9AE4,0x696F, - /* Array index: 0x1047 */ 0x9AE5,0x6970, - /* Array index: 0x1047 */ 0x9AE7,0x6971, - /* Array index: 0x1047 */ 0x9AE9,0x6972, - /* Array index: 0x1047 */ 0x9AEC,0x6973, - /* Array index: 0x1047 */ 0x9AF2,0x6974, - /* Array index: 0x1047 */ 0x9AF3,0x6975, - /* Array index: 0x1047 */ 0x9AF5,0x6976, - /* Array index: 0x1047 */ 0x9AF9,0x6977, - /* Array index: 0x1047 */ 0x9AFA,0x6978, - /* Array index: 0x1047 */ 0x9B16,0x6A2B, - /* Array index: 0x1047 */ 0x9B19,0x6A2C, - /* Array index: 0x1047 */ 0x9B1B,0x6A2D, - /* Array index: 0x1047 */ 0x9B1C,0x6A2E, - /* Array index: 0x1047 */ 0x9B20,0x6A2F, - /* Array index: 0x1047 */ 0x9B26,0x6A30, - /* Array index: 0x1047 */ 0x9B2B,0x6A31, - /* Array index: 0x1047 */ 0x9B2D,0x6A32, - /* Array index: 0x1047 */ 0x9B3D,0x6A39, - /* Array index: 0x1047 */ 0x9B48,0x6A3A, - /* Array index: 0x1047 */ 0x9B4B,0x6A3B, - /* Array index: 0x1047 */ 0x9B4C,0x6A3C, - /* Array index: 0x1047 */ 0x9B5B,0x6A40, - /* Array index: 0x1047 */ 0x9B5E,0x6A41, - /* Array index: 0x1047 */ 0x9B61,0x6A42, - /* Array index: 0x1047 */ 0x9B63,0x6A43, - /* Array index: 0x1047 */ 0x9B65,0x6A44, - /* Array index: 0x1047 */ 0x9B66,0x6A45, - /* Array index: 0x1047 */ 0x9B73,0x6A4C, - /* Array index: 0x1047 */ 0x9B7F,0x6A51, - /* Array index: 0x1047 */ 0x9B80,0x6A52, - /* Array index: 0x1047 */ 0x9B94,0x6A5D, - /* Array index: 0x1047 */ 0x9B9A,0x6A5E, - /* Array index: 0x1047 */ 0x9B9D,0x6A5F, - /* Array index: 0x1047 */ 0x9B9E,0x6A60, - /* Array index: 0x1047 */ 0x9BA6,0x6A61, - /* Array index: 0x1047 */ 0x9BA7,0x6A62, - /* Array index: 0x1047 */ 0x9BA9,0x6A63, - /* Array index: 0x1047 */ 0x9BAC,0x6A64, - /* Array index: 0x1047 */ 0x9BB7,0x6A68, - /* Array index: 0x1047 */ 0x9BB8,0x6A69, - /* Array index: 0x1047 */ 0x9BC7,0x6A6F, - /* Array index: 0x1047 */ 0x9BC8,0x6A70, - /* Array index: 0x1047 */ 0x9BCE,0x6A71, - /* Array index: 0x1047 */ 0x9BD0,0x6A72, - /* Array index: 0x1047 */ 0x9BD7,0x6A73, - /* Array index: 0x1047 */ 0x9BD8,0x6A74, - /* Array index: 0x1047 */ 0x9BDD,0x6A75, - /* Array index: 0x1047 */ 0x9BDF,0x6A76, - /* Array index: 0x1047 */ 0x9BE5,0x6A77, - /* Array index: 0x1047 */ 0x9BE7,0x6A78, - /* Array index: 0x1047 */ 0x9BEA,0x6A79, - /* Array index: 0x1047 */ 0x9BEB,0x6A7A, - /* Array index: 0x1047 */ 0x9BEF,0x6A7B, - /* Array index: 0x1047 */ 0x9BF3,0x6A7C, - /* Array index: 0x1047 */ 0x9BFD,0x6B23, - /* Array index: 0x1047 */ 0x9BFF,0x6B24, - /* Array index: 0x1047 */ 0x9C00,0x6B25, - /* Array index: 0x1047 */ 0x9C02,0x6B26, - /* Array index: 0x1047 */ 0x9C0B,0x6B27, - /* Array index: 0x1047 */ 0x9C0F,0x6B28, - /* Array index: 0x1047 */ 0x9C11,0x6B29, - /* Array index: 0x1047 */ 0x9C31,0x6B37, - /* Array index: 0x1047 */ 0x9C3D,0x6B3B, - /* Array index: 0x1047 */ 0x9C49,0x6B40, - /* Array index: 0x1047 */ 0x9C4A,0x6B41, - /* Array index: 0x1047 */ 0x9C63,0x6B4D, - /* Array index: 0x1047 */ 0x9C6E,0x6B53, - /* Array index: 0x1047 */ 0x9C70,0x6B54, - /* Array index: 0x1047 */ 0x9C72,0x6B55, - /* Array index: 0x1047 */ 0x9C75,0x6B56, - /* Array index: 0x1047 */ 0x9C77,0x6B57, - /* Array index: 0x1047 */ 0x9C7B,0x6B58, - /* Array index: 0x1047 */ 0x9CE6,0x6B59, - /* Array index: 0x1047 */ 0x9CF2,0x6B5A, - /* Array index: 0x1047 */ 0x9CF7,0x6B5B, - /* Array index: 0x1047 */ 0x9CF9,0x6B5C, - /* Array index: 0x1047 */ 0x9D02,0x6B5E, - /* Array index: 0x1047 */ 0x9D0B,0x6B5D, - /* Array index: 0x1047 */ 0x9D11,0x6B5F, - /* Array index: 0x1047 */ 0x9D17,0x6B60, - /* Array index: 0x1047 */ 0x9D18,0x6B61, - /* Array index: 0x1047 */ 0x9D3A,0x6B6A, - /* Array index: 0x1047 */ 0x9D3C,0x6B6B, - /* Array index: 0x1047 */ 0x9D3D,0x6B6D, - /* Array index: 0x1047 */ 0x9D42,0x6B6E, - /* Array index: 0x1047 */ 0x9D43,0x6B6F, - /* Array index: 0x1047 */ 0x9D45,0x6B6C, - /* Array index: 0x1047 */ 0x9D47,0x6B70, - /* Array index: 0x1047 */ 0x9D4A,0x6B71, - /* Array index: 0x1047 */ 0x9D53,0x6B72, - /* Array index: 0x1047 */ 0x9D54,0x6B73, - /* Array index: 0x1047 */ 0x9D5F,0x6B74, - /* Array index: 0x1047 */ 0x9D62,0x6B76, - /* Array index: 0x1047 */ 0x9D63,0x6B75, - /* Array index: 0x1047 */ 0x9D65,0x6B77, - /* Array index: 0x1047 */ 0x9D70,0x6B7B, - /* Array index: 0x1047 */ 0x9D76,0x6B7C, - /* Array index: 0x1047 */ 0x9D77,0x6B7D, - /* Array index: 0x1047 */ 0x9D7B,0x6B7E, - /* Array index: 0x1047 */ 0x9D7C,0x6C21, - /* Array index: 0x1047 */ 0x9D7E,0x6C22, - /* Array index: 0x1047 */ 0x9D83,0x6C23, - /* Array index: 0x1047 */ 0x9D84,0x6C24, - /* Array index: 0x1047 */ 0x9D86,0x6C25, - /* Array index: 0x1047 */ 0x9D8A,0x6C26, - /* Array index: 0x1047 */ 0x9D8D,0x6C27, - /* Array index: 0x1047 */ 0x9D8E,0x6C28, - /* Array index: 0x1047 */ 0x9DA1,0x6C2F, - /* Array index: 0x1047 */ 0x9DAA,0x6C30, - /* Array index: 0x1047 */ 0x9DAC,0x6C31, - /* Array index: 0x1047 */ 0x9DAE,0x6C32, - /* Array index: 0x1047 */ 0x9DB1,0x6C33, - /* Array index: 0x1047 */ 0x9DB5,0x6C34, - /* Array index: 0x1047 */ 0x9DB9,0x6C35, - /* Array index: 0x1047 */ 0x9DBC,0x6C36, - /* Array index: 0x1047 */ 0x9DBF,0x6C37, - /* Array index: 0x1047 */ 0x9DC3,0x6C38, - /* Array index: 0x1047 */ 0x9DC7,0x6C39, - /* Array index: 0x1047 */ 0x9DC9,0x6C3A, - /* Array index: 0x1047 */ 0x9DCA,0x6C3B, - /* Array index: 0x1047 */ 0x9DDA,0x6C40, - /* Array index: 0x1047 */ 0x9DE5,0x6C44, - /* Array index: 0x1047 */ 0x9DE7,0x6C45, - /* Array index: 0x1047 */ 0x9DE9,0x6C46, - /* Array index: 0x1047 */ 0x9DEB,0x6C47, - /* Array index: 0x1047 */ 0x9DEE,0x6C48, - /* Array index: 0x1047 */ 0x9DF0,0x6C49, - /* Array index: 0x1047 */ 0x9DF3,0x6C4A, - /* Array index: 0x1047 */ 0x9DF4,0x6C4B, - /* Array index: 0x1047 */ 0x9DFE,0x6C4C, - /* Array index: 0x1047 */ 0x9E02,0x6C4E, - /* Array index: 0x1047 */ 0x9E07,0x6C4F, - /* Array index: 0x1047 */ 0x9E0A,0x6C4D, - /* Array index: 0x1047 */ 0x9E19,0x6C56, - /* Array index: 0x1047 */ 0x9E1C,0x6C57, - /* Array index: 0x1047 */ 0x9E1D,0x6C58, - /* Array index: 0x1047 */ 0x9E8E,0x6C62, - /* Array index: 0x1047 */ 0x9E8F,0x6C63, - /* Array index: 0x1047 */ 0x9E96,0x6C64, - /* Array index: 0x1047 */ 0x9E98,0x6C65, - /* Array index: 0x1047 */ 0x9E9B,0x6C66, - /* Array index: 0x1047 */ 0x9E9E,0x6C67, - /* Array index: 0x1047 */ 0x9EA4,0x6C68, - /* Array index: 0x1047 */ 0x9EA8,0x6C69, - /* Array index: 0x1047 */ 0x9EC6,0x6C71, - /* Array index: 0x1047 */ 0x9EC8,0x6C72, - /* Array index: 0x1047 */ 0x9ECB,0x6C73, - /* Array index: 0x1047 */ 0x9ED5,0x6C74, - /* Array index: 0x1047 */ 0x9EDF,0x6C75, - /* Array index: 0x1047 */ 0x9EE4,0x6C76, - /* Array index: 0x1047 */ 0x9EE7,0x6C77, - /* Array index: 0x1047 */ 0x9EF5,0x6C7E, - /* Array index: 0x1047 */ 0x9EF8,0x6D21, - /* Array index: 0x1047 */ 0x9EFF,0x6D22, - /* Array index: 0x1047 */ 0x9F02,0x6D23, - /* Array index: 0x1047 */ 0x9F03,0x6D24, - /* Array index: 0x1047 */ 0x9F09,0x6D25, - /* Array index: 0x1047 */ 0x9F1F,0x6D30, - /* Array index: 0x1047 */ 0x9F22,0x6D31, - /* Array index: 0x1047 */ 0x9F26,0x6D32, - /* Array index: 0x1047 */ 0x9F2A,0x6D33, - /* Array index: 0x1047 */ 0x9F2B,0x6D34, - /* Array index: 0x1047 */ 0x9F2F,0x6D35, - /* Array index: 0x1047 */ 0x9F31,0x6D36, - /* Array index: 0x1047 */ 0x9F32,0x6D37, - /* Array index: 0x1047 */ 0x9F34,0x6D38, - /* Array index: 0x1047 */ 0x9F37,0x6D39, - /* Array index: 0x1047 */ 0x9F68,0x6D4D, - /* Array index: 0x1047 */ 0x9F69,0x6D4E, - /* Array index: 0x1047 */ 0x9F7A,0x6D56, - /* Array index: 0x1047 */ 0x9F7D,0x6D57, - /* Array index: 0x1047 */ 0x9F9E,0x6D5F, -}; - -#endif /* ICONV_FROM_UCS_CCS_JIS_X0212_1990 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * jis_x0212_1990 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_jis_x0212_1990 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_JIS_X0212_1990, /* CCS name */ - TABLE_16BIT, /* Table bits */ -#if defined (ICONV_FROM_UCS_CCS_JIS_X0212_1990) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&from_ucs_size_jis_x0212_1990, /* UCS -> jis_x0212_1990 table size-optimized table */ -#elif defined (ICONV_FROM_UCS_CCS_JIS_X0212_1990) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&from_ucs_speed_jis_x0212_1990, /* UCS -> jis_x0212_1990 table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -#if defined (ICONV_TO_UCS_CCS_JIS_X0212_1990) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&to_ucs_size_jis_x0212_1990 /* jis_x0212_1990 -> UCS table speed-optimized table */ -#elif defined (ICONV_TO_UCS_CCS_JIS_X0212_1990) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&to_ucs_speed_jis_x0212_1990 /* jis_x0212_1990 -> UCS table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_JIS_X0212_1990) || ... */ - diff --git a/lib/iconv/ccs/koi8_r.c b/lib/iconv/ccs/koi8_r.c deleted file mode 100644 index 698652e..0000000 --- a/lib/iconv/ccs/koi8_r.c +++ /dev/null @@ -1,341 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for koi8_r encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_KOI8_R) \ - || defined (ICONV_FROM_UCS_CCS_KOI8_R) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit koi8_r -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_KOI8_R) - -static const __uint16_t -to_ucs_speed_koi8_r[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524, - 0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590, - 0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248, - 0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7, - 0x2550,0x2551,0x2552,0x0451,0x2553,0x2554,0x2555,0x2556, - 0x2557,0x2558,0x2559,0x255A,0x255B,0x255C,0x255D,0x255E, - 0x255F,0x2560,0x2561,0x0401,0x2562,0x2563,0x2564,0x2565, - 0x2566,0x2567,0x2568,0x2569,0x256A,0x256B,0x256C,0x00A9, - 0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433, - 0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, - 0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432, - 0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A, - 0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413, - 0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, - 0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412, - 0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A, - -}; - -#endif /* ICONV_TO_UCS_CCS_KOI8_R */ - -/* - * 8-bit UCS -> koi8_r speed-optimized table (1794 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_KOI8_R) - -static const unsigned char -from_ucs_speed_koi8_r[] = -{ - W(0x042A), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0302),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(0x0402),W(0x0502), - W(INVBLK),W(0x0602),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x9A,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x9C,0xFF,0x9D,0xFF,0xFF,0xFF,0xFF,0x9E, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x9F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 5, Array index 0x0302 */ - 0xFF,0xB3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xE1,0xE2,0xF7,0xE7,0xE4,0xE5,0xF6,0xFA, - 0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0, - 0xF2,0xF3,0xF4,0xF5,0xE6,0xE8,0xE3,0xFE, - 0xFB,0xFD,0xFF,0xF9,0xF8,0xFC,0xE0,0xF1, - 0xC1,0xC2,0xD7,0xC7,0xC4,0xC5,0xD6,0xDA, - 0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0, - 0xD2,0xD3,0xD4,0xD5,0xC6,0xC8,0xC3,0xDE, - 0xDB,0xDD,0xDF,0xD9,0xD8,0xDC,0xC0,0xD1, - 0xFF,0xA3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 35, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x95,0x96,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x97,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x98,0x99,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 36, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x93,0x9B,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 38, Array index 0x0602 */ - 0x80,0xFF,0x81,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x82,0xFF,0xFF,0xFF, - 0x83,0xFF,0xFF,0xFF,0x84,0xFF,0xFF,0xFF, - 0x85,0xFF,0xFF,0xFF,0x86,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x87,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x88,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x89,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x8A,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA0,0xA1,0xA2,0xA4,0xA5,0xA6,0xA7,0xA8, - 0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0, - 0xB1,0xB2,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9, - 0xBA,0xBB,0xBC,0xBD,0xBE,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x8B,0xFF,0xFF,0xFF,0x8C,0xFF,0xFF,0xFF, - 0x8D,0xFF,0xFF,0xFF,0x8E,0xFF,0xFF,0xFF, - 0x8F,0x90,0x91,0x92,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x94,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_KOI8_R */ - -/* - * koi8_r CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_koi8_r = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_KOI8_R, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_KOI8_R) - (__uint16_t *)&from_ucs_speed_koi8_r, /* UCS -> koi8_r table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_KOI8_R) - (__uint16_t *)&to_ucs_speed_koi8_r /* koi8_r -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_KOI8_R) || ... */ - diff --git a/lib/iconv/ccs/koi8_ru.c b/lib/iconv/ccs/koi8_ru.c deleted file mode 100644 index 956dc78..0000000 --- a/lib/iconv/ccs/koi8_ru.c +++ /dev/null @@ -1,374 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for koi8_ru encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_KOI8_RU) \ - || defined (ICONV_FROM_UCS_CCS_KOI8_RU) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit koi8_ru -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_KOI8_RU) - -static const __uint16_t -to_ucs_speed_koi8_ru[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524, - 0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590, - 0x2591,0x2592,0x2593,0x201C,0x25A0,0x2219,0x201D,0x2014, - 0x2116,0x2122,0x00A0,0x00BB,0x00AE,0x00AB,0x00B7,0x00A4, - 0x2550,0x2551,0x2552,0x0451,0x0454,0x2554,0x0456,0x0457, - 0x2557,0x2558,0x2559,0x255A,0x255B,0x0491,0x045E,0x255E, - 0x255F,0x2560,0x2561,0x0401,0x0404,0x2563,0x0406,0x0407, - 0x2566,0x2567,0x2568,0x2569,0x256A,0x0490,0x040E,0x00A9, - 0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433, - 0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, - 0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432, - 0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A, - 0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413, - 0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, - 0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412, - 0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A, - -}; - -#endif /* ICONV_TO_UCS_CCS_KOI8_RU */ - -/* - * 8-bit UCS -> koi8_ru speed-optimized table (2050 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_KOI8_RU) - -static const unsigned char -from_ucs_speed_koi8_ru[] = -{ - W(0x042A), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0302),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0402),W(0x0502),W(0x0602),W(INVBLK), - W(INVBLK),W(0x0702),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x9A,0xFF,0xFF,0xFF,0x9F,0xFF,0xFF,0xFF, - 0xFF,0xBF,0xFF,0x9D,0xFF,0xFF,0x9C,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x9E, - 0xFF,0xFF,0xFF,0x9B,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 5, Array index 0x0302 */ - 0xFF,0xB3,0xFF,0xFF,0xB4,0xFF,0xB6,0xB7, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBE,0xFF, - 0xE1,0xE2,0xF7,0xE7,0xE4,0xE5,0xF6,0xFA, - 0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0, - 0xF2,0xF3,0xF4,0xF5,0xE6,0xE8,0xE3,0xFE, - 0xFB,0xFD,0xFF,0xF9,0xF8,0xFC,0xE0,0xF1, - 0xC1,0xC2,0xD7,0xC7,0xC4,0xC5,0xD6,0xDA, - 0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0, - 0xD2,0xD3,0xD4,0xD5,0xC6,0xC8,0xC3,0xDE, - 0xDB,0xDD,0xDF,0xD9,0xD8,0xDC,0xC0,0xD1, - 0xFF,0xA3,0xFF,0xFF,0xA4,0xFF,0xA6,0xA7, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xBD,0xAD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x97,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x93,0x96,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x98,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 35, Array index 0x0602 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x95,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 38, Array index 0x0702 */ - 0x80,0xFF,0x81,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x82,0xFF,0xFF,0xFF, - 0x83,0xFF,0xFF,0xFF,0x84,0xFF,0xFF,0xFF, - 0x85,0xFF,0xFF,0xFF,0x86,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x87,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x88,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x89,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x8A,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA0,0xA1,0xA2,0xFF,0xA5,0xFF,0xFF,0xA8, - 0xA9,0xAA,0xAB,0xAC,0xFF,0xFF,0xAF,0xB0, - 0xB1,0xB2,0xFF,0xB5,0xFF,0xFF,0xB8,0xB9, - 0xBA,0xBB,0xBC,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x8B,0xFF,0xFF,0xFF,0x8C,0xFF,0xFF,0xFF, - 0x8D,0xFF,0xFF,0xFF,0x8E,0xFF,0xFF,0xFF, - 0x8F,0x90,0x91,0x92,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x94,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_KOI8_RU */ - -/* - * koi8_ru CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_koi8_ru = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_KOI8_RU, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_KOI8_RU) - (__uint16_t *)&from_ucs_speed_koi8_ru, /* UCS -> koi8_ru table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_KOI8_RU) - (__uint16_t *)&to_ucs_speed_koi8_ru /* koi8_ru -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_KOI8_RU) || ... */ - diff --git a/lib/iconv/ccs/koi8_u.c b/lib/iconv/ccs/koi8_u.c deleted file mode 100644 index d271e7e..0000000 --- a/lib/iconv/ccs/koi8_u.c +++ /dev/null @@ -1,341 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for koi8_u encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_KOI8_U) \ - || defined (ICONV_FROM_UCS_CCS_KOI8_U) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit koi8_u -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_KOI8_U) - -static const __uint16_t -to_ucs_speed_koi8_u[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524, - 0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590, - 0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248, - 0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7, - 0x2550,0x2551,0x2552,0x0451,0x0454,0x2554,0x0456,0x0457, - 0x2557,0x2558,0x2559,0x255A,0x255B,0x0491,0x255D,0x255E, - 0x255F,0x2560,0x2561,0x0401,0x0404,0x2563,0x0406,0x0407, - 0x2566,0x2567,0x2568,0x2569,0x256A,0x0490,0x256C,0x00A9, - 0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433, - 0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, - 0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432, - 0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A, - 0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413, - 0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, - 0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412, - 0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A, - -}; - -#endif /* ICONV_TO_UCS_CCS_KOI8_U */ - -/* - * 8-bit UCS -> koi8_u speed-optimized table (1794 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_KOI8_U) - -static const unsigned char -from_ucs_speed_koi8_u[] = -{ - W(0x042A), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0302),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(0x0402),W(0x0502), - W(INVBLK),W(0x0602),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x9A,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x9C,0xFF,0x9D,0xFF,0xFF,0xFF,0xFF,0x9E, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x9F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 5, Array index 0x0302 */ - 0xFF,0xB3,0xFF,0xFF,0xB4,0xFF,0xB6,0xB7, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xE1,0xE2,0xF7,0xE7,0xE4,0xE5,0xF6,0xFA, - 0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0, - 0xF2,0xF3,0xF4,0xF5,0xE6,0xE8,0xE3,0xFE, - 0xFB,0xFD,0xFF,0xF9,0xF8,0xFC,0xE0,0xF1, - 0xC1,0xC2,0xD7,0xC7,0xC4,0xC5,0xD6,0xDA, - 0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0, - 0xD2,0xD3,0xD4,0xD5,0xC6,0xC8,0xC3,0xDE, - 0xDB,0xDD,0xDF,0xD9,0xD8,0xDC,0xC0,0xD1, - 0xFF,0xA3,0xFF,0xFF,0xA4,0xFF,0xA6,0xA7, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xBD,0xAD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 35, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x95,0x96,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x97,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x98,0x99,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 36, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x93,0x9B,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 38, Array index 0x0602 */ - 0x80,0xFF,0x81,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x82,0xFF,0xFF,0xFF, - 0x83,0xFF,0xFF,0xFF,0x84,0xFF,0xFF,0xFF, - 0x85,0xFF,0xFF,0xFF,0x86,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x87,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x88,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x89,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x8A,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA0,0xA1,0xA2,0xFF,0xA5,0xFF,0xFF,0xA8, - 0xA9,0xAA,0xAB,0xAC,0xFF,0xAE,0xAF,0xB0, - 0xB1,0xB2,0xFF,0xB5,0xFF,0xFF,0xB8,0xB9, - 0xBA,0xBB,0xBC,0xFF,0xBE,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x8B,0xFF,0xFF,0xFF,0x8C,0xFF,0xFF,0xFF, - 0x8D,0xFF,0xFF,0xFF,0x8E,0xFF,0xFF,0xFF, - 0x8F,0x90,0x91,0x92,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x94,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_KOI8_U */ - -/* - * koi8_u CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_koi8_u = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_KOI8_U, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_KOI8_U) - (__uint16_t *)&from_ucs_speed_koi8_u, /* UCS -> koi8_u table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_KOI8_U) - (__uint16_t *)&to_ucs_speed_koi8_u /* koi8_u -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_KOI8_U) || ... */ - diff --git a/lib/iconv/ccs/koi8_uni.c b/lib/iconv/ccs/koi8_uni.c deleted file mode 100644 index 4523d1c..0000000 --- a/lib/iconv/ccs/koi8_uni.c +++ /dev/null @@ -1,374 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for koi8_uni encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_KOI8_UNI) \ - || defined (ICONV_FROM_UCS_CCS_KOI8_UNI) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit koi8_uni -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_KOI8_UNI) - -static const __uint16_t -to_ucs_speed_koi8_uni[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524, - 0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590, - 0x2591,0x2018,0x2019,0x201C,0x201D,0x2219,0x2013,0x2014, - 0x00A9,0x2122,0x00A0,0x00BB,0x00AE,0x00AB,0x00B7,0x00A4, - 0x00A0,0x0452,0x0453,0x0451,0x0454,0x0455,0x0456,0x0457, - 0x0458,0x0459,0x045A,0x045B,0x045C,0x0491,0x045E,0x045F, - 0x2116,0x0402,0x0403,0x0401,0x0404,0x0405,0x0406,0x0407, - 0x0408,0x0409,0x040A,0x040B,0x040C,0x0490,0x040E,0x040F, - 0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433, - 0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, - 0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432, - 0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A, - 0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413, - 0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, - 0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412, - 0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A, - -}; - -#endif /* ICONV_TO_UCS_CCS_KOI8_UNI */ - -/* - * 8-bit UCS -> koi8_uni speed-optimized table (2050 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_KOI8_UNI) - -static const unsigned char -from_ucs_speed_koi8_uni[] = -{ - W(0x042A), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0302),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0402),W(0x0502),W(0x0602),W(INVBLK), - W(INVBLK),W(0x0702),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x9A,0xFF,0xFF,0xFF,0x9F,0xFF,0xFF,0xFF, - 0xFF,0x98,0xFF,0x9D,0xFF,0xFF,0x9C,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x9E, - 0xFF,0xFF,0xFF,0x9B,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 5, Array index 0x0302 */ - 0xFF,0xB3,0xB1,0xB2,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xB9,0xBA,0xBB,0xBC,0xFF,0xBE,0xBF, - 0xE1,0xE2,0xF7,0xE7,0xE4,0xE5,0xF6,0xFA, - 0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0, - 0xF2,0xF3,0xF4,0xF5,0xE6,0xE8,0xE3,0xFE, - 0xFB,0xFD,0xFF,0xF9,0xF8,0xFC,0xE0,0xF1, - 0xC1,0xC2,0xD7,0xC7,0xC4,0xC5,0xD6,0xDA, - 0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0, - 0xD2,0xD3,0xD4,0xD5,0xC6,0xC8,0xC3,0xDE, - 0xDB,0xDD,0xDF,0xD9,0xD8,0xDC,0xC0,0xD1, - 0xFF,0xA3,0xA1,0xA2,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xAA,0xAB,0xAC,0xFF,0xAE,0xAF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xBD,0xAD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0x96,0x97,0xFF,0xFF,0xFF, - 0x91,0x92,0xFF,0xFF,0x93,0x94,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB0,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 35, Array index 0x0602 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x95,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 38, Array index 0x0702 */ - 0x80,0xFF,0x81,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x82,0xFF,0xFF,0xFF, - 0x83,0xFF,0xFF,0xFF,0x84,0xFF,0xFF,0xFF, - 0x85,0xFF,0xFF,0xFF,0x86,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x87,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x88,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x89,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x8A,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x8B,0xFF,0xFF,0xFF,0x8C,0xFF,0xFF,0xFF, - 0x8D,0xFF,0xFF,0xFF,0x8E,0xFF,0xFF,0xFF, - 0x8F,0x90,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_KOI8_UNI */ - -/* - * koi8_uni CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_koi8_uni = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_KOI8_UNI, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_KOI8_UNI) - (__uint16_t *)&from_ucs_speed_koi8_uni, /* UCS -> koi8_uni table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_KOI8_UNI) - (__uint16_t *)&to_ucs_speed_koi8_uni /* koi8_uni -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_KOI8_UNI) || ... */ - diff --git a/lib/iconv/ccs/ksx1001.c b/lib/iconv/ccs/ksx1001.c deleted file mode 100644 index 5690e4a..0000000 --- a/lib/iconv/ccs/ksx1001.c +++ /dev/null @@ -1,15612 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for ksx1001 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_KSX1001) \ - || defined (ICONV_FROM_UCS_CCS_KSX1001) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -/* - * 16-bit ksx1001 -> UCS speed-optimized table (46080 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_KSX1001) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_speed_ksx1001[] = -{ - /* Heading Block */ - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,0x0100,0x0200,0x0300,0x0400,0x0500,0x0600,0x0700, - 0x0800,0x0900,0x0A00,0x0B00,0x0C00,INVBLK,INVBLK,INVBLK, - 0x0D00,0x0E00,0x0F00,0x1000,0x1100,0x1200,0x1300,0x1400, - 0x1500,0x1600,0x1700,0x1800,0x1900,0x1A00,0x1B00,0x1C00, - 0x1D00,0x1E00,0x1F00,0x2000,0x2100,0x2200,0x2300,0x2400, - 0x2500,INVBLK,0x2600,0x2700,0x2800,0x2900,0x2A00,0x2B00, - 0x2C00,0x2D00,0x2E00,0x2F00,0x3000,0x3100,0x3200,0x3300, - 0x3400,0x3500,0x3600,0x3700,0x3800,0x3900,0x3A00,0x3B00, - 0x3C00,0x3D00,0x3E00,0x3F00,0x4000,0x4100,0x4200,0x4300, - 0x4400,0x4500,0x4600,0x4700,0x4800,0x4900,0x4A00,0x4B00, - 0x4C00,0x4D00,0x4E00,0x4F00,0x5000,0x5100,0x5200,0x5300, - 0x5400,0x5500,0x5600,0x5700,0x5800,0x5900,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - /* Block 34, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3000,0x3001,0x3002,0x00B7,0x2025,0x2026,0x00A8, - 0x3003,0x00AD,0x2015,0x2225,0xFF3C,0x223C,0x2018,0x2019, - 0x201C,0x201D,0x3014,0x3015,0x3008,0x3009,0x300A,0x300B, - 0x300C,0x300D,0x300E,0x300F,0x3010,0x3011,0x00B1,0x00D7, - 0x00F7,0x2260,0x2264,0x2265,0x221E,0x2234,0x00B0,0x2032, - 0x2033,0x2103,0x212B,0xFFE0,0xFFE1,0xFFE5,0x2642,0x2640, - 0x2220,0x22A5,0x2312,0x2202,0x2207,0x2261,0x2252,0x00A7, - 0x203B,0x2606,0x2605,0x25CB,0x25CF,0x25CE,0x25C7,0x25C6, - 0x25A1,0x25A0,0x25B3,0x25B2,0x25BD,0x25BC,0x2192,0x2190, - 0x2191,0x2193,0x2194,0x3013,0x226A,0x226B,0x221A,0x223D, - 0x221D,0x2235,0x222B,0x222C,0x2208,0x220B,0x2286,0x2287, - 0x2282,0x2283,0x222A,0x2229,0x2227,0x2228,0xFFE2,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 35, Array index 0x0200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x21D2,0x21D4,0x2200,0x2203,0x00B4,0xFF5E,0x02C7, - 0x02D8,0x02DD,0x02DA,0x02D9,0x00B8,0x02DB,0x00A1,0x00BF, - 0x02D0,0x222E,0x2211,0x220F,0x00A4,0x2109,0x2030,0x25C1, - 0x25C0,0x25B7,0x25B6,0x2664,0x2660,0x2661,0x2665,0x2667, - 0x2663,0x2299,0x25C8,0x25A3,0x25D0,0x25D1,0x2592,0x25A4, - 0x25A5,0x25A8,0x25A7,0x25A6,0x25A9,0x2668,0x260F,0x260E, - 0x261C,0x261E,0x00B6,0x2020,0x2021,0x2195,0x2197,0x2199, - 0x2196,0x2198,0x266D,0x2669,0x266A,0x266C,0x327F,0x321C, - 0x2116,0x33C7,0x2122,0x33C2,0x33D8,0x2121,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 36, Array index 0x0300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xFF01,0xFF02,0xFF03,0xFF04,0xFF05,0xFF06,0xFF07, - 0xFF08,0xFF09,0xFF0A,0xFF0B,0xFF0C,0xFF0D,0xFF0E,0xFF0F, - 0xFF10,0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17, - 0xFF18,0xFF19,0xFF1A,0xFF1B,0xFF1C,0xFF1D,0xFF1E,0xFF1F, - 0xFF20,0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27, - 0xFF28,0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F, - 0xFF30,0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37, - 0xFF38,0xFF39,0xFF3A,0xFF3B,0xFFE6,0xFF3D,0xFF3E,0xFF3F, - 0xFF40,0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47, - 0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F, - 0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57, - 0xFF58,0xFF59,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFFE3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 37, Array index 0x0400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3131,0x3132,0x3133,0x3134,0x3135,0x3136,0x3137, - 0x3138,0x3139,0x313A,0x313B,0x313C,0x313D,0x313E,0x313F, - 0x3140,0x3141,0x3142,0x3143,0x3144,0x3145,0x3146,0x3147, - 0x3148,0x3149,0x314A,0x314B,0x314C,0x314D,0x314E,0x314F, - 0x3150,0x3151,0x3152,0x3153,0x3154,0x3155,0x3156,0x3157, - 0x3158,0x3159,0x315A,0x315B,0x315C,0x315D,0x315E,0x315F, - 0x3160,0x3161,0x3162,0x3163,0x3164,0x3165,0x3166,0x3167, - 0x3168,0x3169,0x316A,0x316B,0x316C,0x316D,0x316E,0x316F, - 0x3170,0x3171,0x3172,0x3173,0x3174,0x3175,0x3176,0x3177, - 0x3178,0x3179,0x317A,0x317B,0x317C,0x317D,0x317E,0x317F, - 0x3180,0x3181,0x3182,0x3183,0x3184,0x3185,0x3186,0x3187, - 0x3188,0x3189,0x318A,0x318B,0x318C,0x318D,0x318E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 38, Array index 0x0500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176, - 0x2177,0x2178,0x2179,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167, - 0x2168,0x2169,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, - 0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F, - 0x03A0,0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8, - 0x03A9,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7, - 0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF, - 0x03C0,0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8, - 0x03C9,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 39, Array index 0x0600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2500,0x2502,0x250C,0x2510,0x2518,0x2514,0x251C, - 0x252C,0x2524,0x2534,0x253C,0x2501,0x2503,0x250F,0x2513, - 0x251B,0x2517,0x2523,0x2533,0x252B,0x253B,0x254B,0x2520, - 0x252F,0x2528,0x2537,0x253F,0x251D,0x2530,0x2525,0x2538, - 0x2542,0x2512,0x2511,0x251A,0x2519,0x2516,0x2515,0x250E, - 0x250D,0x251E,0x251F,0x2521,0x2522,0x2526,0x2527,0x2529, - 0x252A,0x252D,0x252E,0x2531,0x2532,0x2535,0x2536,0x2539, - 0x253A,0x253D,0x253E,0x2540,0x2541,0x2543,0x2544,0x2545, - 0x2546,0x2547,0x2548,0x2549,0x254A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 40, Array index 0x0700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3395,0x3396,0x3397,0x2113,0x3398,0x33C4,0x33A3, - 0x33A4,0x33A5,0x33A6,0x3399,0x339A,0x339B,0x339C,0x339D, - 0x339E,0x339F,0x33A0,0x33A1,0x33A2,0x33CA,0x338D,0x338E, - 0x338F,0x33CF,0x3388,0x3389,0x33C8,0x33A7,0x33A8,0x33B0, - 0x33B1,0x33B2,0x33B3,0x33B4,0x33B5,0x33B6,0x33B7,0x33B8, - 0x33B9,0x3380,0x3381,0x3382,0x3383,0x3384,0x33BA,0x33BB, - 0x33BC,0x33BD,0x33BE,0x33BF,0x3390,0x3391,0x3392,0x3393, - 0x3394,0x2126,0x33C0,0x33C1,0x338A,0x338B,0x338C,0x33D6, - 0x33C5,0x33AD,0x33AE,0x33AF,0x33DB,0x33A9,0x33AA,0x33AB, - 0x33AC,0x33DD,0x33D0,0x33D3,0x33C3,0x33C9,0x33DC,0x33C6, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 41, Array index 0x0800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x00C6,0x00D0,0x00AA,0x0126,INVALC,0x0132,INVALC, - 0x013F,0x0141,0x00D8,0x0152,0x00BA,0x00DE,0x0166,0x014A, - INVALC,0x3260,0x3261,0x3262,0x3263,0x3264,0x3265,0x3266, - 0x3267,0x3268,0x3269,0x326A,0x326B,0x326C,0x326D,0x326E, - 0x326F,0x3270,0x3271,0x3272,0x3273,0x3274,0x3275,0x3276, - 0x3277,0x3278,0x3279,0x327A,0x327B,0x24D0,0x24D1,0x24D2, - 0x24D3,0x24D4,0x24D5,0x24D6,0x24D7,0x24D8,0x24D9,0x24DA, - 0x24DB,0x24DC,0x24DD,0x24DE,0x24DF,0x24E0,0x24E1,0x24E2, - 0x24E3,0x24E4,0x24E5,0x24E6,0x24E7,0x24E8,0x24E9,0x2460, - 0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468, - 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x00BD,0x2153, - 0x2154,0x00BC,0x00BE,0x215B,0x215C,0x215D,0x215E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 42, Array index 0x0900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x00E6,0x0111,0x00F0,0x0127,0x0131,0x0133,0x0138, - 0x0140,0x0142,0x00F8,0x0153,0x00DF,0x00FE,0x0167,0x014B, - 0x0149,0x3200,0x3201,0x3202,0x3203,0x3204,0x3205,0x3206, - 0x3207,0x3208,0x3209,0x320A,0x320B,0x320C,0x320D,0x320E, - 0x320F,0x3210,0x3211,0x3212,0x3213,0x3214,0x3215,0x3216, - 0x3217,0x3218,0x3219,0x321A,0x321B,0x249C,0x249D,0x249E, - 0x249F,0x24A0,0x24A1,0x24A2,0x24A3,0x24A4,0x24A5,0x24A6, - 0x24A7,0x24A8,0x24A9,0x24AA,0x24AB,0x24AC,0x24AD,0x24AE, - 0x24AF,0x24B0,0x24B1,0x24B2,0x24B3,0x24B4,0x24B5,0x2474, - 0x2475,0x2476,0x2477,0x2478,0x2479,0x247A,0x247B,0x247C, - 0x247D,0x247E,0x247F,0x2480,0x2481,0x2482,0x00B9,0x00B2, - 0x00B3,0x2074,0x207F,0x2081,0x2082,0x2083,0x2084,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 43, Array index 0x0A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047, - 0x3048,0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,0x304F, - 0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057, - 0x3058,0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,0x305F, - 0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067, - 0x3068,0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F, - 0x3070,0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077, - 0x3078,0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,0x307F, - 0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087, - 0x3088,0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F, - 0x3090,0x3091,0x3092,0x3093,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 44, Array index 0x0B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7, - 0x30A8,0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF, - 0x30B0,0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7, - 0x30B8,0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF, - 0x30C0,0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7, - 0x30C8,0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF, - 0x30D0,0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7, - 0x30D8,0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF, - 0x30E0,0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7, - 0x30E8,0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF, - 0x30F0,0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 45, Array index 0x0C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401, - 0x0416,0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D, - 0x041E,0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425, - 0x0426,0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D, - 0x042E,0x042F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451, - 0x0436,0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D, - 0x043E,0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445, - 0x0446,0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D, - 0x044E,0x044F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 49, Array index 0x0D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xAC00,0xAC01,0xAC04,0xAC07,0xAC08,0xAC09,0xAC0A, - 0xAC10,0xAC11,0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17, - 0xAC19,0xAC1A,0xAC1B,0xAC1C,0xAC1D,0xAC20,0xAC24,0xAC2C, - 0xAC2D,0xAC2F,0xAC30,0xAC31,0xAC38,0xAC39,0xAC3C,0xAC40, - 0xAC4B,0xAC4D,0xAC54,0xAC58,0xAC5C,0xAC70,0xAC71,0xAC74, - 0xAC77,0xAC78,0xAC7A,0xAC80,0xAC81,0xAC83,0xAC84,0xAC85, - 0xAC86,0xAC89,0xAC8A,0xAC8B,0xAC8C,0xAC90,0xAC94,0xAC9C, - 0xAC9D,0xAC9F,0xACA0,0xACA1,0xACA8,0xACA9,0xACAA,0xACAC, - 0xACAF,0xACB0,0xACB8,0xACB9,0xACBB,0xACBC,0xACBD,0xACC1, - 0xACC4,0xACC8,0xACCC,0xACD5,0xACD7,0xACE0,0xACE1,0xACE4, - 0xACE7,0xACE8,0xACEA,0xACEC,0xACEF,0xACF0,0xACF1,0xACF3, - 0xACF5,0xACF6,0xACFC,0xACFD,0xAD00,0xAD04,0xAD06,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 50, Array index 0x0E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xAD0C,0xAD0D,0xAD0F,0xAD11,0xAD18,0xAD1C,0xAD20, - 0xAD29,0xAD2C,0xAD2D,0xAD34,0xAD35,0xAD38,0xAD3C,0xAD44, - 0xAD45,0xAD47,0xAD49,0xAD50,0xAD54,0xAD58,0xAD61,0xAD63, - 0xAD6C,0xAD6D,0xAD70,0xAD73,0xAD74,0xAD75,0xAD76,0xAD7B, - 0xAD7C,0xAD7D,0xAD7F,0xAD81,0xAD82,0xAD88,0xAD89,0xAD8C, - 0xAD90,0xAD9C,0xAD9D,0xADA4,0xADB7,0xADC0,0xADC1,0xADC4, - 0xADC8,0xADD0,0xADD1,0xADD3,0xADDC,0xADE0,0xADE4,0xADF8, - 0xADF9,0xADFC,0xADFF,0xAE00,0xAE01,0xAE08,0xAE09,0xAE0B, - 0xAE0D,0xAE14,0xAE30,0xAE31,0xAE34,0xAE37,0xAE38,0xAE3A, - 0xAE40,0xAE41,0xAE43,0xAE45,0xAE46,0xAE4A,0xAE4C,0xAE4D, - 0xAE4E,0xAE50,0xAE54,0xAE56,0xAE5C,0xAE5D,0xAE5F,0xAE60, - 0xAE61,0xAE65,0xAE68,0xAE69,0xAE6C,0xAE70,0xAE78,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 51, Array index 0x0F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xAE79,0xAE7B,0xAE7C,0xAE7D,0xAE84,0xAE85,0xAE8C, - 0xAEBC,0xAEBD,0xAEBE,0xAEC0,0xAEC4,0xAECC,0xAECD,0xAECF, - 0xAED0,0xAED1,0xAED8,0xAED9,0xAEDC,0xAEE8,0xAEEB,0xAEED, - 0xAEF4,0xAEF8,0xAEFC,0xAF07,0xAF08,0xAF0D,0xAF10,0xAF2C, - 0xAF2D,0xAF30,0xAF32,0xAF34,0xAF3C,0xAF3D,0xAF3F,0xAF41, - 0xAF42,0xAF43,0xAF48,0xAF49,0xAF50,0xAF5C,0xAF5D,0xAF64, - 0xAF65,0xAF79,0xAF80,0xAF84,0xAF88,0xAF90,0xAF91,0xAF95, - 0xAF9C,0xAFB8,0xAFB9,0xAFBC,0xAFC0,0xAFC7,0xAFC8,0xAFC9, - 0xAFCB,0xAFCD,0xAFCE,0xAFD4,0xAFDC,0xAFE8,0xAFE9,0xAFF0, - 0xAFF1,0xAFF4,0xAFF8,0xB000,0xB001,0xB004,0xB00C,0xB010, - 0xB014,0xB01C,0xB01D,0xB028,0xB044,0xB045,0xB048,0xB04A, - 0xB04C,0xB04E,0xB053,0xB054,0xB055,0xB057,0xB059,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 52, Array index 0x1000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xB05D,0xB07C,0xB07D,0xB080,0xB084,0xB08C,0xB08D, - 0xB08F,0xB091,0xB098,0xB099,0xB09A,0xB09C,0xB09F,0xB0A0, - 0xB0A1,0xB0A2,0xB0A8,0xB0A9,0xB0AB,0xB0AC,0xB0AD,0xB0AE, - 0xB0AF,0xB0B1,0xB0B3,0xB0B4,0xB0B5,0xB0B8,0xB0BC,0xB0C4, - 0xB0C5,0xB0C7,0xB0C8,0xB0C9,0xB0D0,0xB0D1,0xB0D4,0xB0D8, - 0xB0E0,0xB0E5,0xB108,0xB109,0xB10B,0xB10C,0xB110,0xB112, - 0xB113,0xB118,0xB119,0xB11B,0xB11C,0xB11D,0xB123,0xB124, - 0xB125,0xB128,0xB12C,0xB134,0xB135,0xB137,0xB138,0xB139, - 0xB140,0xB141,0xB144,0xB148,0xB150,0xB151,0xB154,0xB155, - 0xB158,0xB15C,0xB160,0xB178,0xB179,0xB17C,0xB180,0xB182, - 0xB188,0xB189,0xB18B,0xB18D,0xB192,0xB193,0xB194,0xB198, - 0xB19C,0xB1A8,0xB1CC,0xB1D0,0xB1D4,0xB1DC,0xB1DD,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 53, Array index 0x1100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xB1DF,0xB1E8,0xB1E9,0xB1EC,0xB1F0,0xB1F9,0xB1FB, - 0xB1FD,0xB204,0xB205,0xB208,0xB20B,0xB20C,0xB214,0xB215, - 0xB217,0xB219,0xB220,0xB234,0xB23C,0xB258,0xB25C,0xB260, - 0xB268,0xB269,0xB274,0xB275,0xB27C,0xB284,0xB285,0xB289, - 0xB290,0xB291,0xB294,0xB298,0xB299,0xB29A,0xB2A0,0xB2A1, - 0xB2A3,0xB2A5,0xB2A6,0xB2AA,0xB2AC,0xB2B0,0xB2B4,0xB2C8, - 0xB2C9,0xB2CC,0xB2D0,0xB2D2,0xB2D8,0xB2D9,0xB2DB,0xB2DD, - 0xB2E2,0xB2E4,0xB2E5,0xB2E6,0xB2E8,0xB2EB,0xB2EC,0xB2ED, - 0xB2EE,0xB2EF,0xB2F3,0xB2F4,0xB2F5,0xB2F7,0xB2F8,0xB2F9, - 0xB2FA,0xB2FB,0xB2FF,0xB300,0xB301,0xB304,0xB308,0xB310, - 0xB311,0xB313,0xB314,0xB315,0xB31C,0xB354,0xB355,0xB356, - 0xB358,0xB35B,0xB35C,0xB35E,0xB35F,0xB364,0xB365,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 54, Array index 0x1200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xB367,0xB369,0xB36B,0xB36E,0xB370,0xB371,0xB374, - 0xB378,0xB380,0xB381,0xB383,0xB384,0xB385,0xB38C,0xB390, - 0xB394,0xB3A0,0xB3A1,0xB3A8,0xB3AC,0xB3C4,0xB3C5,0xB3C8, - 0xB3CB,0xB3CC,0xB3CE,0xB3D0,0xB3D4,0xB3D5,0xB3D7,0xB3D9, - 0xB3DB,0xB3DD,0xB3E0,0xB3E4,0xB3E8,0xB3FC,0xB410,0xB418, - 0xB41C,0xB420,0xB428,0xB429,0xB42B,0xB434,0xB450,0xB451, - 0xB454,0xB458,0xB460,0xB461,0xB463,0xB465,0xB46C,0xB480, - 0xB488,0xB49D,0xB4A4,0xB4A8,0xB4AC,0xB4B5,0xB4B7,0xB4B9, - 0xB4C0,0xB4C4,0xB4C8,0xB4D0,0xB4D5,0xB4DC,0xB4DD,0xB4E0, - 0xB4E3,0xB4E4,0xB4E6,0xB4EC,0xB4ED,0xB4EF,0xB4F1,0xB4F8, - 0xB514,0xB515,0xB518,0xB51B,0xB51C,0xB524,0xB525,0xB527, - 0xB528,0xB529,0xB52A,0xB530,0xB531,0xB534,0xB538,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 55, Array index 0x1300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xB540,0xB541,0xB543,0xB544,0xB545,0xB54B,0xB54C, - 0xB54D,0xB550,0xB554,0xB55C,0xB55D,0xB55F,0xB560,0xB561, - 0xB5A0,0xB5A1,0xB5A4,0xB5A8,0xB5AA,0xB5AB,0xB5B0,0xB5B1, - 0xB5B3,0xB5B4,0xB5B5,0xB5BB,0xB5BC,0xB5BD,0xB5C0,0xB5C4, - 0xB5CC,0xB5CD,0xB5CF,0xB5D0,0xB5D1,0xB5D8,0xB5EC,0xB610, - 0xB611,0xB614,0xB618,0xB625,0xB62C,0xB634,0xB648,0xB664, - 0xB668,0xB69C,0xB69D,0xB6A0,0xB6A4,0xB6AB,0xB6AC,0xB6B1, - 0xB6D4,0xB6F0,0xB6F4,0xB6F8,0xB700,0xB701,0xB705,0xB728, - 0xB729,0xB72C,0xB72F,0xB730,0xB738,0xB739,0xB73B,0xB744, - 0xB748,0xB74C,0xB754,0xB755,0xB760,0xB764,0xB768,0xB770, - 0xB771,0xB773,0xB775,0xB77C,0xB77D,0xB780,0xB784,0xB78C, - 0xB78D,0xB78F,0xB790,0xB791,0xB792,0xB796,0xB797,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 56, Array index 0x1400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xB798,0xB799,0xB79C,0xB7A0,0xB7A8,0xB7A9,0xB7AB, - 0xB7AC,0xB7AD,0xB7B4,0xB7B5,0xB7B8,0xB7C7,0xB7C9,0xB7EC, - 0xB7ED,0xB7F0,0xB7F4,0xB7FC,0xB7FD,0xB7FF,0xB800,0xB801, - 0xB807,0xB808,0xB809,0xB80C,0xB810,0xB818,0xB819,0xB81B, - 0xB81D,0xB824,0xB825,0xB828,0xB82C,0xB834,0xB835,0xB837, - 0xB838,0xB839,0xB840,0xB844,0xB851,0xB853,0xB85C,0xB85D, - 0xB860,0xB864,0xB86C,0xB86D,0xB86F,0xB871,0xB878,0xB87C, - 0xB88D,0xB8A8,0xB8B0,0xB8B4,0xB8B8,0xB8C0,0xB8C1,0xB8C3, - 0xB8C5,0xB8CC,0xB8D0,0xB8D4,0xB8DD,0xB8DF,0xB8E1,0xB8E8, - 0xB8E9,0xB8EC,0xB8F0,0xB8F8,0xB8F9,0xB8FB,0xB8FD,0xB904, - 0xB918,0xB920,0xB93C,0xB93D,0xB940,0xB944,0xB94C,0xB94F, - 0xB951,0xB958,0xB959,0xB95C,0xB960,0xB968,0xB969,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 57, Array index 0x1500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xB96B,0xB96D,0xB974,0xB975,0xB978,0xB97C,0xB984, - 0xB985,0xB987,0xB989,0xB98A,0xB98D,0xB98E,0xB9AC,0xB9AD, - 0xB9B0,0xB9B4,0xB9BC,0xB9BD,0xB9BF,0xB9C1,0xB9C8,0xB9C9, - 0xB9CC,0xB9CE,0xB9CF,0xB9D0,0xB9D1,0xB9D2,0xB9D8,0xB9D9, - 0xB9DB,0xB9DD,0xB9DE,0xB9E1,0xB9E3,0xB9E4,0xB9E5,0xB9E8, - 0xB9EC,0xB9F4,0xB9F5,0xB9F7,0xB9F8,0xB9F9,0xB9FA,0xBA00, - 0xBA01,0xBA08,0xBA15,0xBA38,0xBA39,0xBA3C,0xBA40,0xBA42, - 0xBA48,0xBA49,0xBA4B,0xBA4D,0xBA4E,0xBA53,0xBA54,0xBA55, - 0xBA58,0xBA5C,0xBA64,0xBA65,0xBA67,0xBA68,0xBA69,0xBA70, - 0xBA71,0xBA74,0xBA78,0xBA83,0xBA84,0xBA85,0xBA87,0xBA8C, - 0xBAA8,0xBAA9,0xBAAB,0xBAAC,0xBAB0,0xBAB2,0xBAB8,0xBAB9, - 0xBABB,0xBABD,0xBAC4,0xBAC8,0xBAD8,0xBAD9,0xBAFC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 58, Array index 0x1600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xBB00,0xBB04,0xBB0D,0xBB0F,0xBB11,0xBB18,0xBB1C, - 0xBB20,0xBB29,0xBB2B,0xBB34,0xBB35,0xBB36,0xBB38,0xBB3B, - 0xBB3C,0xBB3D,0xBB3E,0xBB44,0xBB45,0xBB47,0xBB49,0xBB4D, - 0xBB4F,0xBB50,0xBB54,0xBB58,0xBB61,0xBB63,0xBB6C,0xBB88, - 0xBB8C,0xBB90,0xBBA4,0xBBA8,0xBBAC,0xBBB4,0xBBB7,0xBBC0, - 0xBBC4,0xBBC8,0xBBD0,0xBBD3,0xBBF8,0xBBF9,0xBBFC,0xBBFF, - 0xBC00,0xBC02,0xBC08,0xBC09,0xBC0B,0xBC0C,0xBC0D,0xBC0F, - 0xBC11,0xBC14,0xBC15,0xBC16,0xBC17,0xBC18,0xBC1B,0xBC1C, - 0xBC1D,0xBC1E,0xBC1F,0xBC24,0xBC25,0xBC27,0xBC29,0xBC2D, - 0xBC30,0xBC31,0xBC34,0xBC38,0xBC40,0xBC41,0xBC43,0xBC44, - 0xBC45,0xBC49,0xBC4C,0xBC4D,0xBC50,0xBC5D,0xBC84,0xBC85, - 0xBC88,0xBC8B,0xBC8C,0xBC8E,0xBC94,0xBC95,0xBC97,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 59, Array index 0x1700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xBC99,0xBC9A,0xBCA0,0xBCA1,0xBCA4,0xBCA7,0xBCA8, - 0xBCB0,0xBCB1,0xBCB3,0xBCB4,0xBCB5,0xBCBC,0xBCBD,0xBCC0, - 0xBCC4,0xBCCD,0xBCCF,0xBCD0,0xBCD1,0xBCD5,0xBCD8,0xBCDC, - 0xBCF4,0xBCF5,0xBCF6,0xBCF8,0xBCFC,0xBD04,0xBD05,0xBD07, - 0xBD09,0xBD10,0xBD14,0xBD24,0xBD2C,0xBD40,0xBD48,0xBD49, - 0xBD4C,0xBD50,0xBD58,0xBD59,0xBD64,0xBD68,0xBD80,0xBD81, - 0xBD84,0xBD87,0xBD88,0xBD89,0xBD8A,0xBD90,0xBD91,0xBD93, - 0xBD95,0xBD99,0xBD9A,0xBD9C,0xBDA4,0xBDB0,0xBDB8,0xBDD4, - 0xBDD5,0xBDD8,0xBDDC,0xBDE9,0xBDF0,0xBDF4,0xBDF8,0xBE00, - 0xBE03,0xBE05,0xBE0C,0xBE0D,0xBE10,0xBE14,0xBE1C,0xBE1D, - 0xBE1F,0xBE44,0xBE45,0xBE48,0xBE4C,0xBE4E,0xBE54,0xBE55, - 0xBE57,0xBE59,0xBE5A,0xBE5B,0xBE60,0xBE61,0xBE64,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 60, Array index 0x1800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xBE68,0xBE6A,0xBE70,0xBE71,0xBE73,0xBE74,0xBE75, - 0xBE7B,0xBE7C,0xBE7D,0xBE80,0xBE84,0xBE8C,0xBE8D,0xBE8F, - 0xBE90,0xBE91,0xBE98,0xBE99,0xBEA8,0xBED0,0xBED1,0xBED4, - 0xBED7,0xBED8,0xBEE0,0xBEE3,0xBEE4,0xBEE5,0xBEEC,0xBF01, - 0xBF08,0xBF09,0xBF18,0xBF19,0xBF1B,0xBF1C,0xBF1D,0xBF40, - 0xBF41,0xBF44,0xBF48,0xBF50,0xBF51,0xBF55,0xBF94,0xBFB0, - 0xBFC5,0xBFCC,0xBFCD,0xBFD0,0xBFD4,0xBFDC,0xBFDF,0xBFE1, - 0xC03C,0xC051,0xC058,0xC05C,0xC060,0xC068,0xC069,0xC090, - 0xC091,0xC094,0xC098,0xC0A0,0xC0A1,0xC0A3,0xC0A5,0xC0AC, - 0xC0AD,0xC0AF,0xC0B0,0xC0B3,0xC0B4,0xC0B5,0xC0B6,0xC0BC, - 0xC0BD,0xC0BF,0xC0C0,0xC0C1,0xC0C5,0xC0C8,0xC0C9,0xC0CC, - 0xC0D0,0xC0D8,0xC0D9,0xC0DB,0xC0DC,0xC0DD,0xC0E4,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 61, Array index 0x1900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xC0E5,0xC0E8,0xC0EC,0xC0F4,0xC0F5,0xC0F7,0xC0F9, - 0xC100,0xC104,0xC108,0xC110,0xC115,0xC11C,0xC11D,0xC11E, - 0xC11F,0xC120,0xC123,0xC124,0xC126,0xC127,0xC12C,0xC12D, - 0xC12F,0xC130,0xC131,0xC136,0xC138,0xC139,0xC13C,0xC140, - 0xC148,0xC149,0xC14B,0xC14C,0xC14D,0xC154,0xC155,0xC158, - 0xC15C,0xC164,0xC165,0xC167,0xC168,0xC169,0xC170,0xC174, - 0xC178,0xC185,0xC18C,0xC18D,0xC18E,0xC190,0xC194,0xC196, - 0xC19C,0xC19D,0xC19F,0xC1A1,0xC1A5,0xC1A8,0xC1A9,0xC1AC, - 0xC1B0,0xC1BD,0xC1C4,0xC1C8,0xC1CC,0xC1D4,0xC1D7,0xC1D8, - 0xC1E0,0xC1E4,0xC1E8,0xC1F0,0xC1F1,0xC1F3,0xC1FC,0xC1FD, - 0xC200,0xC204,0xC20C,0xC20D,0xC20F,0xC211,0xC218,0xC219, - 0xC21C,0xC21F,0xC220,0xC228,0xC229,0xC22B,0xC22D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 62, Array index 0x1A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xC22F,0xC231,0xC232,0xC234,0xC248,0xC250,0xC251, - 0xC254,0xC258,0xC260,0xC265,0xC26C,0xC26D,0xC270,0xC274, - 0xC27C,0xC27D,0xC27F,0xC281,0xC288,0xC289,0xC290,0xC298, - 0xC29B,0xC29D,0xC2A4,0xC2A5,0xC2A8,0xC2AC,0xC2AD,0xC2B4, - 0xC2B5,0xC2B7,0xC2B9,0xC2DC,0xC2DD,0xC2E0,0xC2E3,0xC2E4, - 0xC2EB,0xC2EC,0xC2ED,0xC2EF,0xC2F1,0xC2F6,0xC2F8,0xC2F9, - 0xC2FB,0xC2FC,0xC300,0xC308,0xC309,0xC30C,0xC30D,0xC313, - 0xC314,0xC315,0xC318,0xC31C,0xC324,0xC325,0xC328,0xC329, - 0xC345,0xC368,0xC369,0xC36C,0xC370,0xC372,0xC378,0xC379, - 0xC37C,0xC37D,0xC384,0xC388,0xC38C,0xC3C0,0xC3D8,0xC3D9, - 0xC3DC,0xC3DF,0xC3E0,0xC3E2,0xC3E8,0xC3E9,0xC3ED,0xC3F4, - 0xC3F5,0xC3F8,0xC408,0xC410,0xC424,0xC42C,0xC430,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 63, Array index 0x1B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xC434,0xC43C,0xC43D,0xC448,0xC464,0xC465,0xC468, - 0xC46C,0xC474,0xC475,0xC479,0xC480,0xC494,0xC49C,0xC4B8, - 0xC4BC,0xC4E9,0xC4F0,0xC4F1,0xC4F4,0xC4F8,0xC4FA,0xC4FF, - 0xC500,0xC501,0xC50C,0xC510,0xC514,0xC51C,0xC528,0xC529, - 0xC52C,0xC530,0xC538,0xC539,0xC53B,0xC53D,0xC544,0xC545, - 0xC548,0xC549,0xC54A,0xC54C,0xC54D,0xC54E,0xC553,0xC554, - 0xC555,0xC557,0xC558,0xC559,0xC55D,0xC55E,0xC560,0xC561, - 0xC564,0xC568,0xC570,0xC571,0xC573,0xC574,0xC575,0xC57C, - 0xC57D,0xC580,0xC584,0xC587,0xC58C,0xC58D,0xC58F,0xC591, - 0xC595,0xC597,0xC598,0xC59C,0xC5A0,0xC5A9,0xC5B4,0xC5B5, - 0xC5B8,0xC5B9,0xC5BB,0xC5BC,0xC5BD,0xC5BE,0xC5C4,0xC5C5, - 0xC5C6,0xC5C7,0xC5C8,0xC5C9,0xC5CA,0xC5CC,0xC5CE,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 64, Array index 0x1C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xC5D0,0xC5D1,0xC5D4,0xC5D8,0xC5E0,0xC5E1,0xC5E3, - 0xC5E5,0xC5EC,0xC5ED,0xC5EE,0xC5F0,0xC5F4,0xC5F6,0xC5F7, - 0xC5FC,0xC5FD,0xC5FE,0xC5FF,0xC600,0xC601,0xC605,0xC606, - 0xC607,0xC608,0xC60C,0xC610,0xC618,0xC619,0xC61B,0xC61C, - 0xC624,0xC625,0xC628,0xC62C,0xC62D,0xC62E,0xC630,0xC633, - 0xC634,0xC635,0xC637,0xC639,0xC63B,0xC640,0xC641,0xC644, - 0xC648,0xC650,0xC651,0xC653,0xC654,0xC655,0xC65C,0xC65D, - 0xC660,0xC66C,0xC66F,0xC671,0xC678,0xC679,0xC67C,0xC680, - 0xC688,0xC689,0xC68B,0xC68D,0xC694,0xC695,0xC698,0xC69C, - 0xC6A4,0xC6A5,0xC6A7,0xC6A9,0xC6B0,0xC6B1,0xC6B4,0xC6B8, - 0xC6B9,0xC6BA,0xC6C0,0xC6C1,0xC6C3,0xC6C5,0xC6CC,0xC6CD, - 0xC6D0,0xC6D4,0xC6DC,0xC6DD,0xC6E0,0xC6E1,0xC6E8,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 65, Array index 0x1D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xC6E9,0xC6EC,0xC6F0,0xC6F8,0xC6F9,0xC6FD,0xC704, - 0xC705,0xC708,0xC70C,0xC714,0xC715,0xC717,0xC719,0xC720, - 0xC721,0xC724,0xC728,0xC730,0xC731,0xC733,0xC735,0xC737, - 0xC73C,0xC73D,0xC740,0xC744,0xC74A,0xC74C,0xC74D,0xC74F, - 0xC751,0xC752,0xC753,0xC754,0xC755,0xC756,0xC757,0xC758, - 0xC75C,0xC760,0xC768,0xC76B,0xC774,0xC775,0xC778,0xC77C, - 0xC77D,0xC77E,0xC783,0xC784,0xC785,0xC787,0xC788,0xC789, - 0xC78A,0xC78E,0xC790,0xC791,0xC794,0xC796,0xC797,0xC798, - 0xC79A,0xC7A0,0xC7A1,0xC7A3,0xC7A4,0xC7A5,0xC7A6,0xC7AC, - 0xC7AD,0xC7B0,0xC7B4,0xC7BC,0xC7BD,0xC7BF,0xC7C0,0xC7C1, - 0xC7C8,0xC7C9,0xC7CC,0xC7CE,0xC7D0,0xC7D8,0xC7DD,0xC7E4, - 0xC7E8,0xC7EC,0xC800,0xC801,0xC804,0xC808,0xC80A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 66, Array index 0x1E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xC810,0xC811,0xC813,0xC815,0xC816,0xC81C,0xC81D, - 0xC820,0xC824,0xC82C,0xC82D,0xC82F,0xC831,0xC838,0xC83C, - 0xC840,0xC848,0xC849,0xC84C,0xC84D,0xC854,0xC870,0xC871, - 0xC874,0xC878,0xC87A,0xC880,0xC881,0xC883,0xC885,0xC886, - 0xC887,0xC88B,0xC88C,0xC88D,0xC894,0xC89D,0xC89F,0xC8A1, - 0xC8A8,0xC8BC,0xC8BD,0xC8C4,0xC8C8,0xC8CC,0xC8D4,0xC8D5, - 0xC8D7,0xC8D9,0xC8E0,0xC8E1,0xC8E4,0xC8F5,0xC8FC,0xC8FD, - 0xC900,0xC904,0xC905,0xC906,0xC90C,0xC90D,0xC90F,0xC911, - 0xC918,0xC92C,0xC934,0xC950,0xC951,0xC954,0xC958,0xC960, - 0xC961,0xC963,0xC96C,0xC970,0xC974,0xC97C,0xC988,0xC989, - 0xC98C,0xC990,0xC998,0xC999,0xC99B,0xC99D,0xC9C0,0xC9C1, - 0xC9C4,0xC9C7,0xC9C8,0xC9CA,0xC9D0,0xC9D1,0xC9D3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 67, Array index 0x1F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xC9D5,0xC9D6,0xC9D9,0xC9DA,0xC9DC,0xC9DD,0xC9E0, - 0xC9E2,0xC9E4,0xC9E7,0xC9EC,0xC9ED,0xC9EF,0xC9F0,0xC9F1, - 0xC9F8,0xC9F9,0xC9FC,0xCA00,0xCA08,0xCA09,0xCA0B,0xCA0C, - 0xCA0D,0xCA14,0xCA18,0xCA29,0xCA4C,0xCA4D,0xCA50,0xCA54, - 0xCA5C,0xCA5D,0xCA5F,0xCA60,0xCA61,0xCA68,0xCA7D,0xCA84, - 0xCA98,0xCABC,0xCABD,0xCAC0,0xCAC4,0xCACC,0xCACD,0xCACF, - 0xCAD1,0xCAD3,0xCAD8,0xCAD9,0xCAE0,0xCAEC,0xCAF4,0xCB08, - 0xCB10,0xCB14,0xCB18,0xCB20,0xCB21,0xCB41,0xCB48,0xCB49, - 0xCB4C,0xCB50,0xCB58,0xCB59,0xCB5D,0xCB64,0xCB78,0xCB79, - 0xCB9C,0xCBB8,0xCBD4,0xCBE4,0xCBE7,0xCBE9,0xCC0C,0xCC0D, - 0xCC10,0xCC14,0xCC1C,0xCC1D,0xCC21,0xCC22,0xCC27,0xCC28, - 0xCC29,0xCC2C,0xCC2E,0xCC30,0xCC38,0xCC39,0xCC3B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 68, Array index 0x2000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xCC3C,0xCC3D,0xCC3E,0xCC44,0xCC45,0xCC48,0xCC4C, - 0xCC54,0xCC55,0xCC57,0xCC58,0xCC59,0xCC60,0xCC64,0xCC66, - 0xCC68,0xCC70,0xCC75,0xCC98,0xCC99,0xCC9C,0xCCA0,0xCCA8, - 0xCCA9,0xCCAB,0xCCAC,0xCCAD,0xCCB4,0xCCB5,0xCCB8,0xCCBC, - 0xCCC4,0xCCC5,0xCCC7,0xCCC9,0xCCD0,0xCCD4,0xCCE4,0xCCEC, - 0xCCF0,0xCD01,0xCD08,0xCD09,0xCD0C,0xCD10,0xCD18,0xCD19, - 0xCD1B,0xCD1D,0xCD24,0xCD28,0xCD2C,0xCD39,0xCD5C,0xCD60, - 0xCD64,0xCD6C,0xCD6D,0xCD6F,0xCD71,0xCD78,0xCD88,0xCD94, - 0xCD95,0xCD98,0xCD9C,0xCDA4,0xCDA5,0xCDA7,0xCDA9,0xCDB0, - 0xCDC4,0xCDCC,0xCDD0,0xCDE8,0xCDEC,0xCDF0,0xCDF8,0xCDF9, - 0xCDFB,0xCDFD,0xCE04,0xCE08,0xCE0C,0xCE14,0xCE19,0xCE20, - 0xCE21,0xCE24,0xCE28,0xCE30,0xCE31,0xCE33,0xCE35,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 69, Array index 0x2100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xCE58,0xCE59,0xCE5C,0xCE5F,0xCE60,0xCE61,0xCE68, - 0xCE69,0xCE6B,0xCE6D,0xCE74,0xCE75,0xCE78,0xCE7C,0xCE84, - 0xCE85,0xCE87,0xCE89,0xCE90,0xCE91,0xCE94,0xCE98,0xCEA0, - 0xCEA1,0xCEA3,0xCEA4,0xCEA5,0xCEAC,0xCEAD,0xCEC1,0xCEE4, - 0xCEE5,0xCEE8,0xCEEB,0xCEEC,0xCEF4,0xCEF5,0xCEF7,0xCEF8, - 0xCEF9,0xCF00,0xCF01,0xCF04,0xCF08,0xCF10,0xCF11,0xCF13, - 0xCF15,0xCF1C,0xCF20,0xCF24,0xCF2C,0xCF2D,0xCF2F,0xCF30, - 0xCF31,0xCF38,0xCF54,0xCF55,0xCF58,0xCF5C,0xCF64,0xCF65, - 0xCF67,0xCF69,0xCF70,0xCF71,0xCF74,0xCF78,0xCF80,0xCF85, - 0xCF8C,0xCFA1,0xCFA8,0xCFB0,0xCFC4,0xCFE0,0xCFE1,0xCFE4, - 0xCFE8,0xCFF0,0xCFF1,0xCFF3,0xCFF5,0xCFFC,0xD000,0xD004, - 0xD011,0xD018,0xD02D,0xD034,0xD035,0xD038,0xD03C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 70, Array index 0x2200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xD044,0xD045,0xD047,0xD049,0xD050,0xD054,0xD058, - 0xD060,0xD06C,0xD06D,0xD070,0xD074,0xD07C,0xD07D,0xD081, - 0xD0A4,0xD0A5,0xD0A8,0xD0AC,0xD0B4,0xD0B5,0xD0B7,0xD0B9, - 0xD0C0,0xD0C1,0xD0C4,0xD0C8,0xD0C9,0xD0D0,0xD0D1,0xD0D3, - 0xD0D4,0xD0D5,0xD0DC,0xD0DD,0xD0E0,0xD0E4,0xD0EC,0xD0ED, - 0xD0EF,0xD0F0,0xD0F1,0xD0F8,0xD10D,0xD130,0xD131,0xD134, - 0xD138,0xD13A,0xD140,0xD141,0xD143,0xD144,0xD145,0xD14C, - 0xD14D,0xD150,0xD154,0xD15C,0xD15D,0xD15F,0xD161,0xD168, - 0xD16C,0xD17C,0xD184,0xD188,0xD1A0,0xD1A1,0xD1A4,0xD1A8, - 0xD1B0,0xD1B1,0xD1B3,0xD1B5,0xD1BA,0xD1BC,0xD1C0,0xD1D8, - 0xD1F4,0xD1F8,0xD207,0xD209,0xD210,0xD22C,0xD22D,0xD230, - 0xD234,0xD23C,0xD23D,0xD23F,0xD241,0xD248,0xD25C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 71, Array index 0x2300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xD264,0xD280,0xD281,0xD284,0xD288,0xD290,0xD291, - 0xD295,0xD29C,0xD2A0,0xD2A4,0xD2AC,0xD2B1,0xD2B8,0xD2B9, - 0xD2BC,0xD2BF,0xD2C0,0xD2C2,0xD2C8,0xD2C9,0xD2CB,0xD2D4, - 0xD2D8,0xD2DC,0xD2E4,0xD2E5,0xD2F0,0xD2F1,0xD2F4,0xD2F8, - 0xD300,0xD301,0xD303,0xD305,0xD30C,0xD30D,0xD30E,0xD310, - 0xD314,0xD316,0xD31C,0xD31D,0xD31F,0xD320,0xD321,0xD325, - 0xD328,0xD329,0xD32C,0xD330,0xD338,0xD339,0xD33B,0xD33C, - 0xD33D,0xD344,0xD345,0xD37C,0xD37D,0xD380,0xD384,0xD38C, - 0xD38D,0xD38F,0xD390,0xD391,0xD398,0xD399,0xD39C,0xD3A0, - 0xD3A8,0xD3A9,0xD3AB,0xD3AD,0xD3B4,0xD3B8,0xD3BC,0xD3C4, - 0xD3C5,0xD3C8,0xD3C9,0xD3D0,0xD3D8,0xD3E1,0xD3E3,0xD3EC, - 0xD3ED,0xD3F0,0xD3F4,0xD3FC,0xD3FD,0xD3FF,0xD401,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 72, Array index 0x2400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xD408,0xD41D,0xD440,0xD444,0xD45C,0xD460,0xD464, - 0xD46D,0xD46F,0xD478,0xD479,0xD47C,0xD47F,0xD480,0xD482, - 0xD488,0xD489,0xD48B,0xD48D,0xD494,0xD4A9,0xD4CC,0xD4D0, - 0xD4D4,0xD4DC,0xD4DF,0xD4E8,0xD4EC,0xD4F0,0xD4F8,0xD4FB, - 0xD4FD,0xD504,0xD508,0xD50C,0xD514,0xD515,0xD517,0xD53C, - 0xD53D,0xD540,0xD544,0xD54C,0xD54D,0xD54F,0xD551,0xD558, - 0xD559,0xD55C,0xD560,0xD565,0xD568,0xD569,0xD56B,0xD56D, - 0xD574,0xD575,0xD578,0xD57C,0xD584,0xD585,0xD587,0xD588, - 0xD589,0xD590,0xD5A5,0xD5C8,0xD5C9,0xD5CC,0xD5D0,0xD5D2, - 0xD5D8,0xD5D9,0xD5DB,0xD5DD,0xD5E4,0xD5E5,0xD5E8,0xD5EC, - 0xD5F4,0xD5F5,0xD5F7,0xD5F9,0xD600,0xD601,0xD604,0xD608, - 0xD610,0xD611,0xD613,0xD614,0xD615,0xD61C,0xD620,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 73, Array index 0x2500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xD624,0xD62D,0xD638,0xD639,0xD63C,0xD640,0xD645, - 0xD648,0xD649,0xD64B,0xD64D,0xD651,0xD654,0xD655,0xD658, - 0xD65C,0xD667,0xD669,0xD670,0xD671,0xD674,0xD683,0xD685, - 0xD68C,0xD68D,0xD690,0xD694,0xD69D,0xD69F,0xD6A1,0xD6A8, - 0xD6AC,0xD6B0,0xD6B9,0xD6BB,0xD6C4,0xD6C5,0xD6C8,0xD6CC, - 0xD6D1,0xD6D4,0xD6D7,0xD6D9,0xD6E0,0xD6E4,0xD6E8,0xD6F0, - 0xD6F5,0xD6FC,0xD6FD,0xD700,0xD704,0xD711,0xD718,0xD719, - 0xD71C,0xD720,0xD728,0xD729,0xD72B,0xD72D,0xD734,0xD735, - 0xD738,0xD73C,0xD744,0xD747,0xD749,0xD750,0xD751,0xD754, - 0xD756,0xD757,0xD758,0xD759,0xD760,0xD761,0xD763,0xD765, - 0xD769,0xD76C,0xD770,0xD774,0xD77C,0xD77D,0xD781,0xD788, - 0xD789,0xD78C,0xD790,0xD798,0xD799,0xD79B,0xD79D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 75, Array index 0x2600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F3D,0x4F73,0x5047,0x50F9,0x52A0,0x53EF,0x5475, - 0x54E5,0x5609,0x5AC1,0x5BB6,0x6687,0x67B6,0x67B7,0x67EF, - 0x6B4C,0x73C2,0x75C2,0x7A3C,0x82DB,0x8304,0x8857,0x8888, - 0x8A36,0x8CC8,0x8DCF,0x8EFB,0x8FE6,0x99D5,0x523B,0x5374, - 0x5404,0x606A,0x6164,0x6BBC,0x73CF,0x811A,0x89BA,0x89D2, - 0x95A3,0x4F83,0x520A,0x58BE,0x5978,0x59E6,0x5E72,0x5E79, - 0x61C7,0x63C0,0x6746,0x67EC,0x687F,0x6F97,0x764E,0x770B, - 0x78F5,0x7A08,0x7AFF,0x7C21,0x809D,0x826E,0x8271,0x8AEB, - 0x9593,0x4E6B,0x559D,0x66F7,0x6E34,0x78A3,0x7AED,0x845B, - 0x8910,0x874E,0x97A8,0x52D8,0x574E,0x582A,0x5D4C,0x611F, - 0x61BE,0x6221,0x6562,0x67D1,0x6A44,0x6E1B,0x7518,0x75B3, - 0x76E3,0x77B0,0x7D3A,0x90AF,0x9451,0x9452,0x9F95,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 76, Array index 0x2700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5323,0x5CAC,0x7532,0x80DB,0x9240,0x9598,0x525B, - 0x5808,0x59DC,0x5CA1,0x5D17,0x5EB7,0x5F3A,0x5F4A,0x6177, - 0x6C5F,0x757A,0x7586,0x7CE0,0x7D73,0x7DB1,0x7F8C,0x8154, - 0x8221,0x8591,0x8941,0x8B1B,0x92FC,0x964D,0x9C47,0x4ECB, - 0x4EF7,0x500B,0x51F1,0x584F,0x6137,0x613E,0x6168,0x6539, - 0x69EA,0x6F11,0x75A5,0x7686,0x76D6,0x7B87,0x82A5,0x84CB, - 0xF900,0x93A7,0x958B,0x5580,0x5BA2,0x5751,0xF901,0x7CB3, - 0x7FB9,0x91B5,0x5028,0x53BB,0x5C45,0x5DE8,0x62D2,0x636E, - 0x64DA,0x64E7,0x6E20,0x70AC,0x795B,0x8DDD,0x8E1E,0xF902, - 0x907D,0x9245,0x92F8,0x4E7E,0x4EF6,0x5065,0x5DFE,0x5EFA, - 0x6106,0x6957,0x8171,0x8654,0x8E47,0x9375,0x9A2B,0x4E5E, - 0x5091,0x6770,0x6840,0x5109,0x528D,0x5292,0x6AA2,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 77, Array index 0x2800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x77BC,0x9210,0x9ED4,0x52AB,0x602F,0x8FF2,0x5048, - 0x61A9,0x63ED,0x64CA,0x683C,0x6A84,0x6FC0,0x8188,0x89A1, - 0x9694,0x5805,0x727D,0x72AC,0x7504,0x7D79,0x7E6D,0x80A9, - 0x898B,0x8B74,0x9063,0x9D51,0x6289,0x6C7A,0x6F54,0x7D50, - 0x7F3A,0x8A23,0x517C,0x614A,0x7B9D,0x8B19,0x9257,0x938C, - 0x4EAC,0x4FD3,0x501E,0x50BE,0x5106,0x52C1,0x52CD,0x537F, - 0x5770,0x5883,0x5E9A,0x5F91,0x6176,0x61AC,0x64CE,0x656C, - 0x666F,0x66BB,0x66F4,0x6897,0x6D87,0x7085,0x70F1,0x749F, - 0x74A5,0x74CA,0x75D9,0x786C,0x78EC,0x7ADF,0x7AF6,0x7D45, - 0x7D93,0x8015,0x803F,0x811B,0x8396,0x8B66,0x8F15,0x9015, - 0x93E1,0x9803,0x9838,0x9A5A,0x9BE8,0x4FC2,0x5553,0x583A, - 0x5951,0x5B63,0x5C46,0x60B8,0x6212,0x6842,0x68B0,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 78, Array index 0x2900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x68E8,0x6EAA,0x754C,0x7678,0x78CE,0x7A3D,0x7CFB, - 0x7E6B,0x7E7C,0x8A08,0x8AA1,0x8C3F,0x968E,0x9DC4,0x53E4, - 0x53E9,0x544A,0x5471,0x56FA,0x59D1,0x5B64,0x5C3B,0x5EAB, - 0x62F7,0x6537,0x6545,0x6572,0x66A0,0x67AF,0x69C1,0x6CBD, - 0x75FC,0x7690,0x777E,0x7A3F,0x7F94,0x8003,0x80A1,0x818F, - 0x82E6,0x82FD,0x83F0,0x85C1,0x8831,0x88B4,0x8AA5,0xF903, - 0x8F9C,0x932E,0x96C7,0x9867,0x9AD8,0x9F13,0x54ED,0x659B, - 0x66F2,0x688F,0x7A40,0x8C37,0x9D60,0x56F0,0x5764,0x5D11, - 0x6606,0x68B1,0x68CD,0x6EFE,0x7428,0x889E,0x9BE4,0x6C68, - 0xF904,0x9AA8,0x4F9B,0x516C,0x5171,0x529F,0x5B54,0x5DE5, - 0x6050,0x606D,0x62F1,0x63A7,0x653B,0x73D9,0x7A7A,0x86A3, - 0x8CA2,0x978F,0x4E32,0x5BE1,0x6208,0x679C,0x74DC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 79, Array index 0x2A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x79D1,0x83D3,0x8A87,0x8AB2,0x8DE8,0x904E,0x934B, - 0x9846,0x5ED3,0x69E8,0x85FF,0x90ED,0xF905,0x51A0,0x5B98, - 0x5BEC,0x6163,0x68FA,0x6B3E,0x704C,0x742F,0x74D8,0x7BA1, - 0x7F50,0x83C5,0x89C0,0x8CAB,0x95DC,0x9928,0x522E,0x605D, - 0x62EC,0x9002,0x4F8A,0x5149,0x5321,0x58D9,0x5EE3,0x66E0, - 0x6D38,0x709A,0x72C2,0x73D6,0x7B50,0x80F1,0x945B,0x5366, - 0x639B,0x7F6B,0x4E56,0x5080,0x584A,0x58DE,0x602A,0x6127, - 0x62D0,0x69D0,0x9B41,0x5B8F,0x7D18,0x80B1,0x8F5F,0x4EA4, - 0x50D1,0x54AC,0x55AC,0x5B0C,0x5DA0,0x5DE7,0x652A,0x654E, - 0x6821,0x6A4B,0x72E1,0x768E,0x77EF,0x7D5E,0x7FF9,0x81A0, - 0x854E,0x86DF,0x8F03,0x8F4E,0x90CA,0x9903,0x9A55,0x9BAB, - 0x4E18,0x4E45,0x4E5D,0x4EC7,0x4FF1,0x5177,0x52FE,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 80, Array index 0x2B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5340,0x53E3,0x53E5,0x548E,0x5614,0x5775,0x57A2, - 0x5BC7,0x5D87,0x5ED0,0x61FC,0x62D8,0x6551,0x67B8,0x67E9, - 0x69CB,0x6B50,0x6BC6,0x6BEC,0x6C42,0x6E9D,0x7078,0x72D7, - 0x7396,0x7403,0x77BF,0x77E9,0x7A76,0x7D7F,0x8009,0x81FC, - 0x8205,0x820A,0x82DF,0x8862,0x8B33,0x8CFC,0x8EC0,0x9011, - 0x90B1,0x9264,0x92B6,0x99D2,0x9A45,0x9CE9,0x9DD7,0x9F9C, - 0x570B,0x5C40,0x83CA,0x97A0,0x97AB,0x9EB4,0x541B,0x7A98, - 0x7FA4,0x88D9,0x8ECD,0x90E1,0x5800,0x5C48,0x6398,0x7A9F, - 0x5BAE,0x5F13,0x7A79,0x7AAE,0x828E,0x8EAC,0x5026,0x5238, - 0x52F8,0x5377,0x5708,0x62F3,0x6372,0x6B0A,0x6DC3,0x7737, - 0x53A5,0x7357,0x8568,0x8E76,0x95D5,0x673A,0x6AC3,0x6F70, - 0x8A6D,0x8ECC,0x994B,0xF906,0x6677,0x6B78,0x8CB4,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 81, Array index 0x2C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9B3C,0xF907,0x53EB,0x572D,0x594E,0x63C6,0x69FB, - 0x73EA,0x7845,0x7ABA,0x7AC5,0x7CFE,0x8475,0x898F,0x8D73, - 0x9035,0x95A8,0x52FB,0x5747,0x7547,0x7B60,0x83CC,0x921E, - 0xF908,0x6A58,0x514B,0x524B,0x5287,0x621F,0x68D8,0x6975, - 0x9699,0x50C5,0x52A4,0x52E4,0x61C3,0x65A4,0x6839,0x69FF, - 0x747E,0x7B4B,0x82B9,0x83EB,0x89B2,0x8B39,0x8FD1,0x9949, - 0xF909,0x4ECA,0x5997,0x64D2,0x6611,0x6A8E,0x7434,0x7981, - 0x79BD,0x82A9,0x887E,0x887F,0x895F,0xF90A,0x9326,0x4F0B, - 0x53CA,0x6025,0x6271,0x6C72,0x7D1A,0x7D66,0x4E98,0x5162, - 0x77DC,0x80AF,0x4F01,0x4F0E,0x5176,0x5180,0x55DC,0x5668, - 0x573B,0x57FA,0x57FC,0x5914,0x5947,0x5993,0x5BC4,0x5C90, - 0x5D0E,0x5DF1,0x5E7E,0x5FCC,0x6280,0x65D7,0x65E3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 82, Array index 0x2D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x671E,0x671F,0x675E,0x68CB,0x68C4,0x6A5F,0x6B3A, - 0x6C23,0x6C7D,0x6C82,0x6DC7,0x7398,0x7426,0x742A,0x7482, - 0x74A3,0x7578,0x757F,0x7881,0x78EF,0x7941,0x7947,0x7948, - 0x797A,0x7B95,0x7D00,0x7DBA,0x7F88,0x8006,0x802D,0x808C, - 0x8A18,0x8B4F,0x8C48,0x8D77,0x9321,0x9324,0x98E2,0x9951, - 0x9A0E,0x9A0F,0x9A65,0x9E92,0x7DCA,0x4F76,0x5409,0x62EE, - 0x6854,0x91D1,0x55AB,0x513A,0xF90B,0xF90C,0x5A1C,0x61E6, - 0xF90D,0x62CF,0x62FF,0xF90E,0xF90F,0xF910,0xF911,0xF912, - 0xF913,0x90A3,0xF914,0xF915,0xF916,0xF917,0xF918,0x8AFE, - 0xF919,0xF91A,0xF91B,0xF91C,0x6696,0xF91D,0x7156,0xF91E, - 0xF91F,0x96E3,0xF920,0x634F,0x637A,0x5357,0xF921,0x678F, - 0x6960,0x6E73,0xF922,0x7537,0xF923,0xF924,0xF925,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 83, Array index 0x2E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7D0D,0xF926,0xF927,0x8872,0x56CA,0x5A18,0xF928, - 0xF929,0xF92A,0xF92B,0xF92C,0x4E43,0xF92D,0x5167,0x5948, - 0x67F0,0x8010,0xF92E,0x5973,0x5E74,0x649A,0x79CA,0x5FF5, - 0x606C,0x62C8,0x637B,0x5BE7,0x5BD7,0x52AA,0xF92F,0x5974, - 0x5F29,0x6012,0xF930,0xF931,0xF932,0x7459,0xF933,0xF934, - 0xF935,0xF936,0xF937,0xF938,0x99D1,0xF939,0xF93A,0xF93B, - 0xF93C,0xF93D,0xF93E,0xF93F,0xF940,0xF941,0xF942,0xF943, - 0x6FC3,0xF944,0xF945,0x81BF,0x8FB2,0x60F1,0xF946,0xF947, - 0x8166,0xF948,0xF949,0x5C3F,0xF94A,0xF94B,0xF94C,0xF94D, - 0xF94E,0xF94F,0xF950,0xF951,0x5AE9,0x8A25,0x677B,0x7D10, - 0xF952,0xF953,0xF954,0xF955,0xF956,0xF957,0x80FD,0xF958, - 0xF959,0x5C3C,0x6CE5,0x533F,0x6EBA,0x591A,0x8336,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 84, Array index 0x2F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E39,0x4EB6,0x4F46,0x55AE,0x5718,0x58C7,0x5F56, - 0x65B7,0x65E6,0x6A80,0x6BB5,0x6E4D,0x77ED,0x7AEF,0x7C1E, - 0x7DDE,0x86CB,0x8892,0x9132,0x935B,0x64BB,0x6FBE,0x737A, - 0x75B8,0x9054,0x5556,0x574D,0x61BA,0x64D4,0x66C7,0x6DE1, - 0x6E5B,0x6F6D,0x6FB9,0x75F0,0x8043,0x81BD,0x8541,0x8983, - 0x8AC7,0x8B5A,0x931F,0x6C93,0x7553,0x7B54,0x8E0F,0x905D, - 0x5510,0x5802,0x5858,0x5E62,0x6207,0x649E,0x68E0,0x7576, - 0x7CD6,0x87B3,0x9EE8,0x4EE3,0x5788,0x576E,0x5927,0x5C0D, - 0x5CB1,0x5E36,0x5F85,0x6234,0x64E1,0x73B3,0x81FA,0x888B, - 0x8CB8,0x968A,0x9EDB,0x5B85,0x5FB7,0x60B3,0x5012,0x5200, - 0x5230,0x5716,0x5835,0x5857,0x5C0E,0x5C60,0x5CF6,0x5D8B, - 0x5EA6,0x5F92,0x60BC,0x6311,0x6389,0x6417,0x6843,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 85, Array index 0x3000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x68F9,0x6AC2,0x6DD8,0x6E21,0x6ED4,0x6FE4,0x71FE, - 0x76DC,0x7779,0x79B1,0x7A3B,0x8404,0x89A9,0x8CED,0x8DF3, - 0x8E48,0x9003,0x9014,0x9053,0x90FD,0x934D,0x9676,0x97DC, - 0x6BD2,0x7006,0x7258,0x72A2,0x7368,0x7763,0x79BF,0x7BE4, - 0x7E9B,0x8B80,0x58A9,0x60C7,0x6566,0x65FD,0x66BE,0x6C8C, - 0x711E,0x71C9,0x8C5A,0x9813,0x4E6D,0x7A81,0x4EDD,0x51AC, - 0x51CD,0x52D5,0x540C,0x61A7,0x6771,0x6850,0x68DF,0x6D1E, - 0x6F7C,0x75BC,0x77B3,0x7AE5,0x80F4,0x8463,0x9285,0x515C, - 0x6597,0x675C,0x6793,0x75D8,0x7AC7,0x8373,0xF95A,0x8C46, - 0x9017,0x982D,0x5C6F,0x81C0,0x829A,0x9041,0x906F,0x920D, - 0x5F97,0x5D9D,0x6A59,0x71C8,0x767B,0x7B49,0x85E4,0x8B04, - 0x9127,0x9A30,0x5587,0x61F6,0xF95B,0x7669,0x7F85,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 86, Array index 0x3100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x863F,0x87BA,0x88F8,0x908F,0xF95C,0x6D1B,0x70D9, - 0x73DE,0x7D61,0x843D,0xF95D,0x916A,0x99F1,0xF95E,0x4E82, - 0x5375,0x6B04,0x6B12,0x703E,0x721B,0x862D,0x9E1E,0x524C, - 0x8FA3,0x5D50,0x64E5,0x652C,0x6B16,0x6FEB,0x7C43,0x7E9C, - 0x85CD,0x8964,0x89BD,0x62C9,0x81D8,0x881F,0x5ECA,0x6717, - 0x6D6A,0x72FC,0x7405,0x746F,0x8782,0x90DE,0x4F86,0x5D0D, - 0x5FA0,0x840A,0x51B7,0x63A0,0x7565,0x4EAE,0x5006,0x5169, - 0x51C9,0x6881,0x6A11,0x7CAE,0x7CB1,0x7CE7,0x826F,0x8AD2, - 0x8F1B,0x91CF,0x4FB6,0x5137,0x52F5,0x5442,0x5EEC,0x616E, - 0x623E,0x65C5,0x6ADA,0x6FFE,0x792A,0x85DC,0x8823,0x95AD, - 0x9A62,0x9A6A,0x9E97,0x9ECE,0x529B,0x66C6,0x6B77,0x701D, - 0x792B,0x8F62,0x9742,0x6190,0x6200,0x6523,0x6F23,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 87, Array index 0x3200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7149,0x7489,0x7DF4,0x806F,0x84EE,0x8F26,0x9023, - 0x934A,0x51BD,0x5217,0x52A3,0x6D0C,0x70C8,0x88C2,0x5EC9, - 0x6582,0x6BAE,0x6FC2,0x7C3E,0x7375,0x4EE4,0x4F36,0x56F9, - 0xF95F,0x5CBA,0x5DBA,0x601C,0x73B2,0x7B2D,0x7F9A,0x7FCE, - 0x8046,0x901E,0x9234,0x96F6,0x9748,0x9818,0x9F61,0x4F8B, - 0x6FA7,0x79AE,0x91B4,0x96B7,0x52DE,0xF960,0x6488,0x64C4, - 0x6AD3,0x6F5E,0x7018,0x7210,0x76E7,0x8001,0x8606,0x865C, - 0x8DEF,0x8F05,0x9732,0x9B6F,0x9DFA,0x9E75,0x788C,0x797F, - 0x7DA0,0x83C9,0x9304,0x9E7F,0x9E93,0x8AD6,0x58DF,0x5F04, - 0x6727,0x7027,0x74CF,0x7C60,0x807E,0x5121,0x7028,0x7262, - 0x78CA,0x8CC2,0x8CDA,0x8CF4,0x96F7,0x4E86,0x50DA,0x5BEE, - 0x5ED6,0x6599,0x71CE,0x7642,0x77AD,0x804A,0x84FC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 88, Array index 0x3300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x907C,0x9B27,0x9F8D,0x58D8,0x5A41,0x5C62,0x6A13, - 0x6DDA,0x6F0F,0x763B,0x7D2F,0x7E37,0x851E,0x8938,0x93E4, - 0x964B,0x5289,0x65D2,0x67F3,0x69B4,0x6D41,0x6E9C,0x700F, - 0x7409,0x7460,0x7559,0x7624,0x786B,0x8B2C,0x985E,0x516D, - 0x622E,0x9678,0x4F96,0x502B,0x5D19,0x6DEA,0x7DB8,0x8F2A, - 0x5F8B,0x6144,0x6817,0xF961,0x9686,0x52D2,0x808B,0x51DC, - 0x51CC,0x695E,0x7A1C,0x7DBE,0x83F1,0x9675,0x4FDA,0x5229, - 0x5398,0x540F,0x550E,0x5C65,0x60A7,0x674E,0x68A8,0x6D6C, - 0x7281,0x72F8,0x7406,0x7483,0xF962,0x75E2,0x7C6C,0x7F79, - 0x7FB8,0x8389,0x88CF,0x88E1,0x91CC,0x91D0,0x96E2,0x9BC9, - 0x541D,0x6F7E,0x71D0,0x7498,0x85FA,0x8EAA,0x96A3,0x9C57, - 0x9E9F,0x6797,0x6DCB,0x7433,0x81E8,0x9716,0x782C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 89, Array index 0x3400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7ACB,0x7B20,0x7C92,0x6469,0x746A,0x75F2,0x78BC, - 0x78E8,0x99AC,0x9B54,0x9EBB,0x5BDE,0x5E55,0x6F20,0x819C, - 0x83AB,0x9088,0x4E07,0x534D,0x5A29,0x5DD2,0x5F4E,0x6162, - 0x633D,0x6669,0x66FC,0x6EFF,0x6F2B,0x7063,0x779E,0x842C, - 0x8513,0x883B,0x8F13,0x9945,0x9C3B,0x551C,0x62B9,0x672B, - 0x6CAB,0x8309,0x896A,0x977A,0x4EA1,0x5984,0x5FD8,0x5FD9, - 0x671B,0x7DB2,0x7F54,0x8292,0x832B,0x83BD,0x8F1E,0x9099, - 0x57CB,0x59B9,0x5A92,0x5BD0,0x6627,0x679A,0x6885,0x6BCF, - 0x7164,0x7F75,0x8CB7,0x8CE3,0x9081,0x9B45,0x8108,0x8C8A, - 0x964C,0x9A40,0x9EA5,0x5B5F,0x6C13,0x731B,0x76F2,0x76DF, - 0x840C,0x51AA,0x8993,0x514D,0x5195,0x52C9,0x68C9,0x6C94, - 0x7704,0x7720,0x7DBF,0x7DEC,0x9762,0x9EB5,0x6EC5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 90, Array index 0x3500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8511,0x51A5,0x540D,0x547D,0x660E,0x669D,0x6927, - 0x6E9F,0x76BF,0x7791,0x8317,0x84C2,0x879F,0x9169,0x9298, - 0x9CF4,0x8882,0x4FAE,0x5192,0x52DF,0x59C6,0x5E3D,0x6155, - 0x6478,0x6479,0x66AE,0x67D0,0x6A21,0x6BCD,0x6BDB,0x725F, - 0x7261,0x7441,0x7738,0x77DB,0x8017,0x82BC,0x8305,0x8B00, - 0x8B28,0x8C8C,0x6728,0x6C90,0x7267,0x76EE,0x7766,0x7A46, - 0x9DA9,0x6B7F,0x6C92,0x5922,0x6726,0x8499,0x536F,0x5893, - 0x5999,0x5EDF,0x63CF,0x6634,0x6773,0x6E3A,0x732B,0x7AD7, - 0x82D7,0x9328,0x52D9,0x5DEB,0x61AE,0x61CB,0x620A,0x62C7, - 0x64AB,0x65E0,0x6959,0x6B66,0x6BCB,0x7121,0x73F7,0x755D, - 0x7E46,0x821E,0x8302,0x856A,0x8AA3,0x8CBF,0x9727,0x9D61, - 0x58A8,0x9ED8,0x5011,0x520E,0x543B,0x554F,0x6587,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 91, Array index 0x3600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6C76,0x7D0A,0x7D0B,0x805E,0x868A,0x9580,0x96EF, - 0x52FF,0x6C95,0x7269,0x5473,0x5A9A,0x5C3E,0x5D4B,0x5F4C, - 0x5FAE,0x672A,0x68B6,0x6963,0x6E3C,0x6E44,0x7709,0x7C73, - 0x7F8E,0x8587,0x8B0E,0x8FF7,0x9761,0x9EF4,0x5CB7,0x60B6, - 0x610D,0x61AB,0x654F,0x65FB,0x65FC,0x6C11,0x6CEF,0x739F, - 0x73C9,0x7DE1,0x9594,0x5BC6,0x871C,0x8B10,0x525D,0x535A, - 0x62CD,0x640F,0x64B2,0x6734,0x6A38,0x6CCA,0x73C0,0x749E, - 0x7B94,0x7C95,0x7E1B,0x818A,0x8236,0x8584,0x8FEB,0x96F9, - 0x99C1,0x4F34,0x534A,0x53CD,0x53DB,0x62CC,0x642C,0x6500, - 0x6591,0x69C3,0x6CEE,0x6F58,0x73ED,0x7554,0x7622,0x76E4, - 0x76FC,0x78D0,0x78FB,0x792C,0x7D46,0x822C,0x87E0,0x8FD4, - 0x9812,0x98EF,0x52C3,0x62D4,0x64A5,0x6E24,0x6F51,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 92, Array index 0x3700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x767C,0x8DCB,0x91B1,0x9262,0x9AEE,0x9B43,0x5023, - 0x508D,0x574A,0x59A8,0x5C28,0x5E47,0x5F77,0x623F,0x653E, - 0x65B9,0x65C1,0x6609,0x678B,0x699C,0x6EC2,0x78C5,0x7D21, - 0x80AA,0x8180,0x822B,0x82B3,0x84A1,0x868C,0x8A2A,0x8B17, - 0x90A6,0x9632,0x9F90,0x500D,0x4FF3,0xF963,0x57F9,0x5F98, - 0x62DC,0x6392,0x676F,0x6E43,0x7119,0x76C3,0x80CC,0x80DA, - 0x88F4,0x88F5,0x8919,0x8CE0,0x8F29,0x914D,0x966A,0x4F2F, - 0x4F70,0x5E1B,0x67CF,0x6822,0x767D,0x767E,0x9B44,0x5E61, - 0x6A0A,0x7169,0x71D4,0x756A,0xF964,0x7E41,0x8543,0x85E9, - 0x98DC,0x4F10,0x7B4F,0x7F70,0x95A5,0x51E1,0x5E06,0x68B5, - 0x6C3E,0x6C4E,0x6CDB,0x72AF,0x7BC4,0x8303,0x6CD5,0x743A, - 0x50FB,0x5288,0x58C1,0x64D8,0x6A97,0x74A7,0x7656,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 93, Array index 0x3800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x78A7,0x8617,0x95E2,0x9739,0xF965,0x535E,0x5F01, - 0x8B8A,0x8FA8,0x8FAF,0x908A,0x5225,0x77A5,0x9C49,0x9F08, - 0x4E19,0x5002,0x5175,0x5C5B,0x5E77,0x661E,0x663A,0x67C4, - 0x68C5,0x70B3,0x7501,0x75C5,0x79C9,0x7ADD,0x8F27,0x9920, - 0x9A08,0x4FDD,0x5821,0x5831,0x5BF6,0x666E,0x6B65,0x6D11, - 0x6E7A,0x6F7D,0x73E4,0x752B,0x83E9,0x88DC,0x8913,0x8B5C, - 0x8F14,0x4F0F,0x50D5,0x5310,0x535C,0x5B93,0x5FA9,0x670D, - 0x798F,0x8179,0x832F,0x8514,0x8907,0x8986,0x8F39,0x8F3B, - 0x99A5,0x9C12,0x672C,0x4E76,0x4FF8,0x5949,0x5C01,0x5CEF, - 0x5CF0,0x6367,0x68D2,0x70FD,0x71A2,0x742B,0x7E2B,0x84EC, - 0x8702,0x9022,0x92D2,0x9CF3,0x4E0D,0x4ED8,0x4FEF,0x5085, - 0x5256,0x526F,0x5426,0x5490,0x57E0,0x592B,0x5A66,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 94, Array index 0x3900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5B5A,0x5B75,0x5BCC,0x5E9C,0xF966,0x6276,0x6577, - 0x65A7,0x6D6E,0x6EA5,0x7236,0x7B26,0x7C3F,0x7F36,0x8150, - 0x8151,0x819A,0x8240,0x8299,0x83A9,0x8A03,0x8CA0,0x8CE6, - 0x8CFB,0x8D74,0x8DBA,0x90E8,0x91DC,0x961C,0x9644,0x99D9, - 0x9CE7,0x5317,0x5206,0x5429,0x5674,0x58B3,0x5954,0x596E, - 0x5FFF,0x61A4,0x626E,0x6610,0x6C7E,0x711A,0x76C6,0x7C89, - 0x7CDE,0x7D1B,0x82AC,0x8CC1,0x96F0,0xF967,0x4F5B,0x5F17, - 0x5F7F,0x62C2,0x5D29,0x670B,0x68DA,0x787C,0x7E43,0x9D6C, - 0x4E15,0x5099,0x5315,0x532A,0x5351,0x5983,0x5A62,0x5E87, - 0x60B2,0x618A,0x6249,0x6279,0x6590,0x6787,0x69A7,0x6BD4, - 0x6BD6,0x6BD7,0x6BD8,0x6CB8,0xF968,0x7435,0x75FA,0x7812, - 0x7891,0x79D5,0x79D8,0x7C83,0x7DCB,0x7FE1,0x80A5,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 95, Array index 0x3A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x813E,0x81C2,0x83F2,0x871A,0x88E8,0x8AB9,0x8B6C, - 0x8CBB,0x9119,0x975E,0x98DB,0x9F3B,0x56AC,0x5B2A,0x5F6C, - 0x658C,0x6AB3,0x6BAF,0x6D5C,0x6FF1,0x7015,0x725D,0x73AD, - 0x8CA7,0x8CD3,0x983B,0x6191,0x6C37,0x8058,0x9A01,0x4E4D, - 0x4E8B,0x4E9B,0x4ED5,0x4F3A,0x4F3C,0x4F7F,0x4FDF,0x50FF, - 0x53F2,0x53F8,0x5506,0x55E3,0x56DB,0x58EB,0x5962,0x5A11, - 0x5BEB,0x5BFA,0x5C04,0x5DF3,0x5E2B,0x5F99,0x601D,0x6368, - 0x659C,0x65AF,0x67F6,0x67FB,0x68AD,0x6B7B,0x6C99,0x6CD7, - 0x6E23,0x7009,0x7345,0x7802,0x793E,0x7940,0x7960,0x79C1, - 0x7BE9,0x7D17,0x7D72,0x8086,0x820D,0x838E,0x84D1,0x86C7, - 0x88DF,0x8A50,0x8A5E,0x8B1D,0x8CDC,0x8D66,0x8FAD,0x90AA, - 0x98FC,0x99DF,0x9E9D,0x524A,0xF969,0x6714,0xF96A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 96, Array index 0x3B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5098,0x522A,0x5C71,0x6563,0x6C55,0x73CA,0x7523, - 0x759D,0x7B97,0x849C,0x9178,0x9730,0x4E77,0x6492,0x6BBA, - 0x715E,0x85A9,0x4E09,0xF96B,0x6749,0x68EE,0x6E17,0x829F, - 0x8518,0x886B,0x63F7,0x6F81,0x9212,0x98AF,0x4E0A,0x50B7, - 0x50CF,0x511F,0x5546,0x55AA,0x5617,0x5B40,0x5C19,0x5CE0, - 0x5E38,0x5E8A,0x5EA0,0x5EC2,0x60F3,0x6851,0x6A61,0x6E58, - 0x723D,0x7240,0x72C0,0x76F8,0x7965,0x7BB1,0x7FD4,0x88F3, - 0x89F4,0x8A73,0x8C61,0x8CDE,0x971C,0x585E,0x74BD,0x8CFD, - 0x55C7,0xF96C,0x7A61,0x7D22,0x8272,0x7272,0x751F,0x7525, - 0xF96D,0x7B19,0x5885,0x58FB,0x5DBC,0x5E8F,0x5EB6,0x5F90, - 0x6055,0x6292,0x637F,0x654D,0x6691,0x66D9,0x66F8,0x6816, - 0x68F2,0x7280,0x745E,0x7B6E,0x7D6E,0x7DD6,0x7F72,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 97, Array index 0x3C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x80E5,0x8212,0x85AF,0x897F,0x8A93,0x901D,0x92E4, - 0x9ECD,0x9F20,0x5915,0x596D,0x5E2D,0x60DC,0x6614,0x6673, - 0x6790,0x6C50,0x6DC5,0x6F5F,0x77F3,0x78A9,0x84C6,0x91CB, - 0x932B,0x4ED9,0x50CA,0x5148,0x5584,0x5B0B,0x5BA3,0x6247, - 0x657E,0x65CB,0x6E32,0x717D,0x7401,0x7444,0x7487,0x74BF, - 0x766C,0x79AA,0x7DDA,0x7E55,0x7FA8,0x817A,0x81B3,0x8239, - 0x861A,0x87EC,0x8A75,0x8DE3,0x9078,0x9291,0x9425,0x994D, - 0x9BAE,0x5368,0x5C51,0x6954,0x6CC4,0x6D29,0x6E2B,0x820C, - 0x859B,0x893B,0x8A2D,0x8AAA,0x96EA,0x9F67,0x5261,0x66B9, - 0x6BB2,0x7E96,0x87FE,0x8D0D,0x9583,0x965D,0x651D,0x6D89, - 0x71EE,0xF96E,0x57CE,0x59D3,0x5BAC,0x6027,0x60FA,0x6210, - 0x661F,0x665F,0x7329,0x73F9,0x76DB,0x7701,0x7B6C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 98, Array index 0x3D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8056,0x8072,0x8165,0x8AA0,0x9192,0x4E16,0x52E2, - 0x6B72,0x6D17,0x7A05,0x7B39,0x7D30,0xF96F,0x8CB0,0x53EC, - 0x562F,0x5851,0x5BB5,0x5C0F,0x5C11,0x5DE2,0x6240,0x6383, - 0x6414,0x662D,0x68B3,0x6CBC,0x6D88,0x6EAF,0x701F,0x70A4, - 0x71D2,0x7526,0x758F,0x758E,0x7619,0x7B11,0x7BE0,0x7C2B, - 0x7D20,0x7D39,0x852C,0x856D,0x8607,0x8A34,0x900D,0x9061, - 0x90B5,0x92B7,0x97F6,0x9A37,0x4FD7,0x5C6C,0x675F,0x6D91, - 0x7C9F,0x7E8C,0x8B16,0x8D16,0x901F,0x5B6B,0x5DFD,0x640D, - 0x84C0,0x905C,0x98E1,0x7387,0x5B8B,0x609A,0x677E,0x6DDE, - 0x8A1F,0x8AA6,0x9001,0x980C,0x5237,0xF970,0x7051,0x788E, - 0x9396,0x8870,0x91D7,0x4FEE,0x53D7,0x55FD,0x56DA,0x5782, - 0x58FD,0x5AC2,0x5B88,0x5CAB,0x5CC0,0x5E25,0x6101,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 99, Array index 0x3E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x620D,0x624B,0x6388,0x641C,0x6536,0x6578,0x6A39, - 0x6B8A,0x6C34,0x6D19,0x6F31,0x71E7,0x72E9,0x7378,0x7407, - 0x74B2,0x7626,0x7761,0x79C0,0x7A57,0x7AEA,0x7CB9,0x7D8F, - 0x7DAC,0x7E61,0x7F9E,0x8129,0x8331,0x8490,0x84DA,0x85EA, - 0x8896,0x8AB0,0x8B90,0x8F38,0x9042,0x9083,0x916C,0x9296, - 0x92B9,0x968B,0x96A7,0x96A8,0x96D6,0x9700,0x9808,0x9996, - 0x9AD3,0x9B1A,0x53D4,0x587E,0x5919,0x5B70,0x5BBF,0x6DD1, - 0x6F5A,0x719F,0x7421,0x74B9,0x8085,0x83FD,0x5DE1,0x5F87, - 0x5FAA,0x6042,0x65EC,0x6812,0x696F,0x6A53,0x6B89,0x6D35, - 0x6DF3,0x73E3,0x76FE,0x77AC,0x7B4D,0x7D14,0x8123,0x821C, - 0x8340,0x84F4,0x8563,0x8A62,0x8AC4,0x9187,0x931E,0x9806, - 0x99B4,0x620C,0x8853,0x8FF0,0x9265,0x5D07,0x5D27,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 100, Array index 0x3F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D69,0x745F,0x819D,0x8768,0x6FD5,0x62FE,0x7FD2, - 0x8936,0x8972,0x4E1E,0x4E58,0x50E7,0x52DD,0x5347,0x627F, - 0x6607,0x7E69,0x8805,0x965E,0x4F8D,0x5319,0x5636,0x59CB, - 0x5AA4,0x5C38,0x5C4E,0x5C4D,0x5E02,0x5F11,0x6043,0x65BD, - 0x662F,0x6642,0x67BE,0x67F4,0x731C,0x77E2,0x793A,0x7FC5, - 0x8494,0x84CD,0x8996,0x8A66,0x8A69,0x8AE1,0x8C55,0x8C7A, - 0x57F4,0x5BD4,0x5F0F,0x606F,0x62ED,0x690D,0x6B96,0x6E5C, - 0x7184,0x7BD2,0x8755,0x8B58,0x8EFE,0x98DF,0x98FE,0x4F38, - 0x4F81,0x4FE1,0x547B,0x5A20,0x5BB8,0x613C,0x65B0,0x6668, - 0x71FC,0x7533,0x795E,0x7D33,0x814E,0x81E3,0x8398,0x85AA, - 0x85CE,0x8703,0x8A0A,0x8EAB,0x8F9B,0xF971,0x8FC5,0x5931, - 0x5BA4,0x5BE6,0x6089,0x5BE9,0x5C0B,0x5FC3,0x6C81,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 101, Array index 0x4000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xF972,0x6DF1,0x700B,0x751A,0x82AF,0x8AF6,0x4EC0, - 0x5341,0xF973,0x96D9,0x6C0F,0x4E9E,0x4FC4,0x5152,0x555E, - 0x5A25,0x5CE8,0x6211,0x7259,0x82BD,0x83AA,0x86FE,0x8859, - 0x8A1D,0x963F,0x96C5,0x9913,0x9D09,0x9D5D,0x580A,0x5CB3, - 0x5DBD,0x5E44,0x60E1,0x6115,0x63E1,0x6A02,0x6E25,0x9102, - 0x9354,0x984E,0x9C10,0x9F77,0x5B89,0x5CB8,0x6309,0x664F, - 0x6848,0x773C,0x96C1,0x978D,0x9854,0x9B9F,0x65A1,0x8B01, - 0x8ECB,0x95BC,0x5535,0x5CA9,0x5DD6,0x5EB5,0x6697,0x764C, - 0x83F4,0x95C7,0x58D3,0x62BC,0x72CE,0x9D28,0x4EF0,0x592E, - 0x600F,0x663B,0x6B83,0x79E7,0x9D26,0x5393,0x54C0,0x57C3, - 0x5D16,0x611B,0x66D6,0x6DAF,0x788D,0x827E,0x9698,0x9744, - 0x5384,0x627C,0x6396,0x6DB2,0x7E0A,0x814B,0x984D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 102, Array index 0x4100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6AFB,0x7F4C,0x9DAF,0x9E1A,0x4E5F,0x503B,0x51B6, - 0x591C,0x60F9,0x63F6,0x6930,0x723A,0x8036,0xF974,0x91CE, - 0x5F31,0xF975,0xF976,0x7D04,0x82E5,0x846F,0x84BB,0x85E5, - 0x8E8D,0xF977,0x4F6F,0xF978,0xF979,0x58E4,0x5B43,0x6059, - 0x63DA,0x6518,0x656D,0x6698,0xF97A,0x694A,0x6A23,0x6D0B, - 0x7001,0x716C,0x75D2,0x760D,0x79B3,0x7A70,0xF97B,0x7F8A, - 0xF97C,0x8944,0xF97D,0x8B93,0x91C0,0x967D,0xF97E,0x990A, - 0x5704,0x5FA1,0x65BC,0x6F01,0x7600,0x79A6,0x8A9E,0x99AD, - 0x9B5A,0x9F6C,0x5104,0x61B6,0x6291,0x6A8D,0x81C6,0x5043, - 0x5830,0x5F66,0x7109,0x8A00,0x8AFA,0x5B7C,0x8616,0x4FFA, - 0x513C,0x56B4,0x5944,0x63A9,0x6DF9,0x5DAA,0x696D,0x5186, - 0x4E88,0x4F59,0xF97F,0xF980,0xF981,0x5982,0xF982,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 103, Array index 0x4200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xF983,0x6B5F,0x6C5D,0xF984,0x74B5,0x7916,0xF985, - 0x8207,0x8245,0x8339,0x8F3F,0x8F5D,0xF986,0x9918,0xF987, - 0xF988,0xF989,0x4EA6,0xF98A,0x57DF,0x5F79,0x6613,0xF98B, - 0xF98C,0x75AB,0x7E79,0x8B6F,0xF98D,0x9006,0x9A5B,0x56A5, - 0x5827,0x59F8,0x5A1F,0x5BB4,0xF98E,0x5EF6,0xF98F,0xF990, - 0x6350,0x633B,0xF991,0x693D,0x6C87,0x6CBF,0x6D8E,0x6D93, - 0x6DF5,0x6F14,0xF992,0x70DF,0x7136,0x7159,0xF993,0x71C3, - 0x71D5,0xF994,0x784F,0x786F,0xF995,0x7B75,0x7DE3,0xF996, - 0x7E2F,0xF997,0x884D,0x8EDF,0xF998,0xF999,0xF99A,0x925B, - 0xF99B,0x9CF6,0xF99C,0xF99D,0xF99E,0x6085,0x6D85,0xF99F, - 0x71B1,0xF9A0,0xF9A1,0x95B1,0x53AD,0xF9A2,0xF9A3,0xF9A4, - 0x67D3,0xF9A5,0x708E,0x7130,0x7430,0x8276,0x82D2,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 104, Array index 0x4300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xF9A6,0x95BB,0x9AE5,0x9E7D,0x66C4,0xF9A7,0x71C1, - 0x8449,0xF9A8,0xF9A9,0x584B,0xF9AA,0xF9AB,0x5DB8,0x5F71, - 0xF9AC,0x6620,0x668E,0x6979,0x69AE,0x6C38,0x6CF3,0x6E36, - 0x6F41,0x6FDA,0x701B,0x702F,0x7150,0x71DF,0x7370,0xF9AD, - 0x745B,0xF9AE,0x74D4,0x76C8,0x7A4E,0x7E93,0xF9AF,0xF9B0, - 0x82F1,0x8A60,0x8FCE,0xF9B1,0x9348,0xF9B2,0x9719,0xF9B3, - 0xF9B4,0x4E42,0x502A,0xF9B5,0x5208,0x53E1,0x66F3,0x6C6D, - 0x6FCA,0x730A,0x777F,0x7A62,0x82AE,0x85DD,0x8602,0xF9B6, - 0x88D4,0x8A63,0x8B7D,0x8C6B,0xF9B7,0x92B3,0xF9B8,0x9713, - 0x9810,0x4E94,0x4F0D,0x4FC9,0x50B2,0x5348,0x543E,0x5433, - 0x55DA,0x5862,0x58BA,0x5967,0x5A1B,0x5BE4,0x609F,0xF9B9, - 0x61CA,0x6556,0x65FF,0x6664,0x68A7,0x6C5A,0x6FB3,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 105, Array index 0x4400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x70CF,0x71AC,0x7352,0x7B7D,0x8708,0x8AA4,0x9C32, - 0x9F07,0x5C4B,0x6C83,0x7344,0x7389,0x923A,0x6EAB,0x7465, - 0x761F,0x7A69,0x7E15,0x860A,0x5140,0x58C5,0x64C1,0x74EE, - 0x7515,0x7670,0x7FC1,0x9095,0x96CD,0x9954,0x6E26,0x74E6, - 0x7AA9,0x7AAA,0x81E5,0x86D9,0x8778,0x8A1B,0x5A49,0x5B8C, - 0x5B9B,0x68A1,0x6900,0x6D63,0x73A9,0x7413,0x742C,0x7897, - 0x7DE9,0x7FEB,0x8118,0x8155,0x839E,0x8C4C,0x962E,0x9811, - 0x66F0,0x5F80,0x65FA,0x6789,0x6C6A,0x738B,0x502D,0x5A03, - 0x6B6A,0x77EE,0x5916,0x5D6C,0x5DCD,0x7325,0x754F,0xF9BA, - 0xF9BB,0x50E5,0x51F9,0x582F,0x592D,0x5996,0x59DA,0x5BE5, - 0xF9BC,0xF9BD,0x5DA2,0x62D7,0x6416,0x6493,0x64FE,0xF9BE, - 0x66DC,0xF9BF,0x6A48,0xF9C0,0x71FF,0x7464,0xF9C1,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 106, Array index 0x4500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7A88,0x7AAF,0x7E47,0x7E5E,0x8000,0x8170,0xF9C2, - 0x87EF,0x8981,0x8B20,0x9059,0xF9C3,0x9080,0x9952,0x617E, - 0x6B32,0x6D74,0x7E1F,0x8925,0x8FB1,0x4FD1,0x50AD,0x5197, - 0x52C7,0x57C7,0x5889,0x5BB9,0x5EB8,0x6142,0x6995,0x6D8C, - 0x6E67,0x6EB6,0x7194,0x7462,0x7528,0x752C,0x8073,0x8338, - 0x84C9,0x8E0A,0x9394,0x93DE,0xF9C4,0x4E8E,0x4F51,0x5076, - 0x512A,0x53C8,0x53CB,0x53F3,0x5B87,0x5BD3,0x5C24,0x611A, - 0x6182,0x65F4,0x725B,0x7397,0x7440,0x76C2,0x7950,0x7991, - 0x79B9,0x7D06,0x7FBD,0x828B,0x85D5,0x865E,0x8FC2,0x9047, - 0x90F5,0x91EA,0x9685,0x96E8,0x96E9,0x52D6,0x5F67,0x65ED, - 0x6631,0x682F,0x715C,0x7A36,0x90C1,0x980A,0x4E91,0xF9C5, - 0x6A52,0x6B9E,0x6F90,0x7189,0x8018,0x82B8,0x8553,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 107, Array index 0x4600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x904B,0x9695,0x96F2,0x97FB,0x851A,0x9B31,0x4E90, - 0x718A,0x96C4,0x5143,0x539F,0x54E1,0x5713,0x5712,0x57A3, - 0x5A9B,0x5AC4,0x5BC3,0x6028,0x613F,0x63F4,0x6C85,0x6D39, - 0x6E72,0x6E90,0x7230,0x733F,0x7457,0x82D1,0x8881,0x8F45, - 0x9060,0xF9C6,0x9662,0x9858,0x9D1B,0x6708,0x8D8A,0x925E, - 0x4F4D,0x5049,0x50DE,0x5371,0x570D,0x59D4,0x5A01,0x5C09, - 0x6170,0x6690,0x6E2D,0x7232,0x744B,0x7DEF,0x80C3,0x840E, - 0x8466,0x853F,0x875F,0x885B,0x8918,0x8B02,0x9055,0x97CB, - 0x9B4F,0x4E73,0x4F91,0x5112,0x516A,0xF9C7,0x552F,0x55A9, - 0x5B7A,0x5BA5,0x5E7C,0x5E7D,0x5EBE,0x60A0,0x60DF,0x6108, - 0x6109,0x63C4,0x6538,0x6709,0xF9C8,0x67D4,0x67DA,0xF9C9, - 0x6961,0x6962,0x6CB9,0x6D27,0xF9CA,0x6E38,0xF9CB,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 108, Array index 0x4700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6FE1,0x7336,0x7337,0xF9CC,0x745C,0x7531,0xF9CD, - 0x7652,0xF9CE,0xF9CF,0x7DAD,0x81FE,0x8438,0x88D5,0x8A98, - 0x8ADB,0x8AED,0x8E30,0x8E42,0x904A,0x903E,0x907A,0x9149, - 0x91C9,0x936E,0xF9D0,0xF9D1,0x5809,0xF9D2,0x6BD3,0x8089, - 0x80B2,0xF9D3,0xF9D4,0x5141,0x596B,0x5C39,0xF9D5,0xF9D6, - 0x6F64,0x73A7,0x80E4,0x8D07,0xF9D7,0x9217,0x958F,0xF9D8, - 0xF9D9,0xF9DA,0xF9DB,0x807F,0x620E,0x701C,0x7D68,0x878D, - 0xF9DC,0x57A0,0x6069,0x6147,0x6BB7,0x8ABE,0x9280,0x96B1, - 0x4E59,0x541F,0x6DEB,0x852D,0x9670,0x97F3,0x98EE,0x63D6, - 0x6CE3,0x9091,0x51DD,0x61C9,0x81BA,0x9DF9,0x4F9D,0x501A, - 0x5100,0x5B9C,0x610F,0x61FF,0x64EC,0x6905,0x6BC5,0x7591, - 0x77E3,0x7FA9,0x8264,0x858F,0x87FB,0x8863,0x8ABC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 109, Array index 0x4800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8B70,0x91AB,0x4E8C,0x4EE5,0x4F0A,0xF9DD,0xF9DE, - 0x5937,0x59E8,0xF9DF,0x5DF2,0x5F1B,0x5F5B,0x6021,0xF9E0, - 0xF9E1,0xF9E2,0xF9E3,0x723E,0x73E5,0xF9E4,0x7570,0x75CD, - 0xF9E5,0x79FB,0xF9E6,0x800C,0x8033,0x8084,0x82E1,0x8351, - 0xF9E7,0xF9E8,0x8CBD,0x8CB3,0x9087,0xF9E9,0xF9EA,0x98F4, - 0x990C,0xF9EB,0xF9EC,0x7037,0x76CA,0x7FCA,0x7FCC,0x7FFC, - 0x8B1A,0x4EBA,0x4EC1,0x5203,0x5370,0xF9ED,0x54BD,0x56E0, - 0x59FB,0x5BC5,0x5F15,0x5FCD,0x6E6E,0xF9EE,0xF9EF,0x7D6A, - 0x8335,0xF9F0,0x8693,0x8A8D,0xF9F1,0x976D,0x9777,0xF9F2, - 0xF9F3,0x4E00,0x4F5A,0x4F7E,0x58F9,0x65E5,0x6EA2,0x9038, - 0x93B0,0x99B9,0x4EFB,0x58EC,0x598A,0x59D9,0x6041,0xF9F4, - 0xF9F5,0x7A14,0xF9F6,0x834F,0x8CC3,0x5165,0x5344,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 110, Array index 0x4900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xF9F7,0xF9F8,0xF9F9,0x4ECD,0x5269,0x5B55,0x82BF, - 0x4ED4,0x523A,0x54A8,0x59C9,0x59FF,0x5B50,0x5B57,0x5B5C, - 0x6063,0x6148,0x6ECB,0x7099,0x716E,0x7386,0x74F7,0x75B5, - 0x78C1,0x7D2B,0x8005,0x81EA,0x8328,0x8517,0x85C9,0x8AEE, - 0x8CC7,0x96CC,0x4F5C,0x52FA,0x56BC,0x65AB,0x6628,0x707C, - 0x70B8,0x7235,0x7DBD,0x828D,0x914C,0x96C0,0x9D72,0x5B71, - 0x68E7,0x6B98,0x6F7A,0x76DE,0x5C91,0x66AB,0x6F5B,0x7BB4, - 0x7C2A,0x8836,0x96DC,0x4E08,0x4ED7,0x5320,0x5834,0x58BB, - 0x58EF,0x596C,0x5C07,0x5E33,0x5E84,0x5F35,0x638C,0x66B2, - 0x6756,0x6A1F,0x6AA3,0x6B0C,0x6F3F,0x7246,0xF9FA,0x7350, - 0x748B,0x7AE0,0x7CA7,0x8178,0x81DF,0x81E7,0x838A,0x846C, - 0x8523,0x8594,0x85CF,0x88DD,0x8D13,0x91AC,0x9577,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 111, Array index 0x4A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x969C,0x518D,0x54C9,0x5728,0x5BB0,0x624D,0x6750, - 0x683D,0x6893,0x6E3D,0x6ED3,0x707D,0x7E21,0x88C1,0x8CA1, - 0x8F09,0x9F4B,0x9F4E,0x722D,0x7B8F,0x8ACD,0x931A,0x4F47, - 0x4F4E,0x5132,0x5480,0x59D0,0x5E95,0x62B5,0x6775,0x696E, - 0x6A17,0x6CAE,0x6E1A,0x72D9,0x732A,0x75BD,0x7BB8,0x7D35, - 0x82E7,0x83F9,0x8457,0x85F7,0x8A5B,0x8CAF,0x8E87,0x9019, - 0x90B8,0x96CE,0x9F5F,0x52E3,0x540A,0x5AE1,0x5BC2,0x6458, - 0x6575,0x6EF4,0x72C4,0xF9FB,0x7684,0x7A4D,0x7B1B,0x7C4D, - 0x7E3E,0x7FDF,0x837B,0x8B2B,0x8CCA,0x8D64,0x8DE1,0x8E5F, - 0x8FEA,0x8FF9,0x9069,0x93D1,0x4F43,0x4F7A,0x50B3,0x5168, - 0x5178,0x524D,0x526A,0x5861,0x587C,0x5960,0x5C08,0x5C55, - 0x5EDB,0x609B,0x6230,0x6813,0x6BBF,0x6C08,0x6FB1,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 112, Array index 0x4B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x714E,0x7420,0x7530,0x7538,0x7551,0x7672,0x7B4C, - 0x7B8B,0x7BAD,0x7BC6,0x7E8F,0x8A6E,0x8F3E,0x8F49,0x923F, - 0x9293,0x9322,0x942B,0x96FB,0x985A,0x986B,0x991E,0x5207, - 0x622A,0x6298,0x6D59,0x7664,0x7ACA,0x7BC0,0x7D76,0x5360, - 0x5CBE,0x5E97,0x6F38,0x70B9,0x7C98,0x9711,0x9B8E,0x9EDE, - 0x63A5,0x647A,0x8776,0x4E01,0x4E95,0x4EAD,0x505C,0x5075, - 0x5448,0x59C3,0x5B9A,0x5E40,0x5EAD,0x5EF7,0x5F81,0x60C5, - 0x633A,0x653F,0x6574,0x65CC,0x6676,0x6678,0x67FE,0x6968, - 0x6A89,0x6B63,0x6C40,0x6DC0,0x6DE8,0x6E1F,0x6E5E,0x701E, - 0x70A1,0x738E,0x73FD,0x753A,0x775B,0x7887,0x798E,0x7A0B, - 0x7A7D,0x7CBE,0x7D8E,0x8247,0x8A02,0x8AEA,0x8C9E,0x912D, - 0x914A,0x91D8,0x9266,0x92CC,0x9320,0x9706,0x9756,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 113, Array index 0x4C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x975C,0x9802,0x9F0E,0x5236,0x5291,0x557C,0x5824, - 0x5E1D,0x5F1F,0x608C,0x63D0,0x68AF,0x6FDF,0x796D,0x7B2C, - 0x81CD,0x85BA,0x88FD,0x8AF8,0x8E44,0x918D,0x9664,0x969B, - 0x973D,0x984C,0x9F4A,0x4FCE,0x5146,0x51CB,0x52A9,0x5632, - 0x5F14,0x5F6B,0x63AA,0x64CD,0x65E9,0x6641,0x66FA,0x66F9, - 0x671D,0x689D,0x68D7,0x69FD,0x6F15,0x6F6E,0x7167,0x71E5, - 0x722A,0x74AA,0x773A,0x7956,0x795A,0x79DF,0x7A20,0x7A95, - 0x7C97,0x7CDF,0x7D44,0x7E70,0x8087,0x85FB,0x86A4,0x8A54, - 0x8ABF,0x8D99,0x8E81,0x9020,0x906D,0x91E3,0x963B,0x96D5, - 0x9CE5,0x65CF,0x7C07,0x8DB3,0x93C3,0x5B58,0x5C0A,0x5352, - 0x62D9,0x731D,0x5027,0x5B97,0x5F9E,0x60B0,0x616B,0x68D5, - 0x6DD9,0x742E,0x7A2E,0x7D42,0x7D9C,0x7E31,0x816B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 114, Array index 0x4D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8E2A,0x8E35,0x937E,0x9418,0x4F50,0x5750,0x5DE6, - 0x5EA7,0x632B,0x7F6A,0x4E3B,0x4F4F,0x4F8F,0x505A,0x59DD, - 0x80C4,0x546A,0x5468,0x55FE,0x594F,0x5B99,0x5DDE,0x5EDA, - 0x665D,0x6731,0x67F1,0x682A,0x6CE8,0x6D32,0x6E4A,0x6F8D, - 0x70B7,0x73E0,0x7587,0x7C4C,0x7D02,0x7D2C,0x7DA2,0x821F, - 0x86DB,0x8A3B,0x8A85,0x8D70,0x8E8A,0x8F33,0x9031,0x914E, - 0x9152,0x9444,0x99D0,0x7AF9,0x7CA5,0x4FCA,0x5101,0x51C6, - 0x57C8,0x5BEF,0x5CFB,0x6659,0x6A3D,0x6D5A,0x6E96,0x6FEC, - 0x710C,0x756F,0x7AE3,0x8822,0x9021,0x9075,0x96CB,0x99FF, - 0x8301,0x4E2D,0x4EF2,0x8846,0x91CD,0x537D,0x6ADB,0x696B, - 0x6C41,0x847A,0x589E,0x618E,0x66FE,0x62EF,0x70DD,0x7511, - 0x75C7,0x7E52,0x84B8,0x8B49,0x8D08,0x4E4B,0x53EA,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 115, Array index 0x4E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x54AB,0x5730,0x5740,0x5FD7,0x6301,0x6307,0x646F, - 0x652F,0x65E8,0x667A,0x679D,0x67B3,0x6B62,0x6C60,0x6C9A, - 0x6F2C,0x77E5,0x7825,0x7949,0x7957,0x7D19,0x80A2,0x8102, - 0x81F3,0x829D,0x82B7,0x8718,0x8A8C,0xF9FC,0x8D04,0x8DBE, - 0x9072,0x76F4,0x7A19,0x7A37,0x7E54,0x8077,0x5507,0x55D4, - 0x5875,0x632F,0x6422,0x6649,0x664B,0x686D,0x699B,0x6B84, - 0x6D25,0x6EB1,0x73CD,0x7468,0x74A1,0x755B,0x75B9,0x76E1, - 0x771E,0x778B,0x79E6,0x7E09,0x7E1D,0x81FB,0x852F,0x8897, - 0x8A3A,0x8CD1,0x8EEB,0x8FB0,0x9032,0x93AD,0x9663,0x9673, - 0x9707,0x4F84,0x53F1,0x59EA,0x5AC9,0x5E19,0x684E,0x74C6, - 0x75BE,0x79E9,0x7A92,0x81A3,0x86ED,0x8CEA,0x8DCC,0x8FED, - 0x659F,0x6715,0xF9FD,0x57F7,0x6F57,0x7DDD,0x8F2F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 116, Array index 0x4F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x93F6,0x96C6,0x5FB5,0x61F2,0x6F84,0x4E14,0x4F98, - 0x501F,0x53C9,0x55DF,0x5D6F,0x5DEE,0x6B21,0x6B64,0x78CB, - 0x7B9A,0xF9FE,0x8E49,0x8ECA,0x906E,0x6349,0x643E,0x7740, - 0x7A84,0x932F,0x947F,0x9F6A,0x64B0,0x6FAF,0x71E6,0x74A8, - 0x74DA,0x7AC4,0x7C12,0x7E82,0x7CB2,0x7E98,0x8B9A,0x8D0A, - 0x947D,0x9910,0x994C,0x5239,0x5BDF,0x64E6,0x672D,0x7D2E, - 0x50ED,0x53C3,0x5879,0x6158,0x6159,0x61FA,0x65AC,0x7AD9, - 0x8B92,0x8B96,0x5009,0x5021,0x5275,0x5531,0x5A3C,0x5EE0, - 0x5F70,0x6134,0x655E,0x660C,0x6636,0x66A2,0x69CD,0x6EC4, - 0x6F32,0x7316,0x7621,0x7A93,0x8139,0x8259,0x83D6,0x84BC, - 0x50B5,0x57F0,0x5BC0,0x5BE8,0x5F69,0x63A1,0x7826,0x7DB5, - 0x83DC,0x8521,0x91C7,0x91F5,0x518A,0x67F5,0x7B56,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 117, Array index 0x5000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8CAC,0x51C4,0x59BB,0x60BD,0x8655,0x501C,0xF9FF, - 0x5254,0x5C3A,0x617D,0x621A,0x62D3,0x64F2,0x65A5,0x6ECC, - 0x7620,0x810A,0x8E60,0x965F,0x96BB,0x4EDF,0x5343,0x5598, - 0x5929,0x5DDD,0x64C5,0x6CC9,0x6DFA,0x7394,0x7A7F,0x821B, - 0x85A6,0x8CE4,0x8E10,0x9077,0x91E7,0x95E1,0x9621,0x97C6, - 0x51F8,0x54F2,0x5586,0x5FB9,0x64A4,0x6F88,0x7DB4,0x8F1F, - 0x8F4D,0x9435,0x50C9,0x5C16,0x6CBE,0x6DFB,0x751B,0x77BB, - 0x7C3D,0x7C64,0x8A79,0x8AC2,0x581E,0x59BE,0x5E16,0x6377, - 0x7252,0x758A,0x776B,0x8ADC,0x8CBC,0x8F12,0x5EF3,0x6674, - 0x6DF8,0x807D,0x83C1,0x8ACB,0x9751,0x9BD6,0xFA00,0x5243, - 0x66FF,0x6D95,0x6EEF,0x7DE0,0x8AE6,0x902E,0x905E,0x9AD4, - 0x521D,0x527F,0x54E8,0x6194,0x6284,0x62DB,0x68A2,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 118, Array index 0x5100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6912,0x695A,0x6A35,0x7092,0x7126,0x785D,0x7901, - 0x790E,0x79D2,0x7A0D,0x8096,0x8278,0x82D5,0x8349,0x8549, - 0x8C82,0x8D85,0x9162,0x918B,0x91AE,0x4FC3,0x56D1,0x71ED, - 0x77D7,0x8700,0x89F8,0x5BF8,0x5FD6,0x6751,0x90A8,0x53E2, - 0x585A,0x5BF5,0x60A4,0x6181,0x6460,0x7E3D,0x8070,0x8525, - 0x9283,0x64AE,0x50AC,0x5D14,0x6700,0x589C,0x62BD,0x63A8, - 0x690E,0x6978,0x6A1E,0x6E6B,0x76BA,0x79CB,0x82BB,0x8429, - 0x8ACF,0x8DA8,0x8FFD,0x9112,0x914B,0x919C,0x9310,0x9318, - 0x939A,0x96DB,0x9A36,0x9C0D,0x4E11,0x755C,0x795D,0x7AFA, - 0x7B51,0x7BC9,0x7E2E,0x84C4,0x8E59,0x8E74,0x8EF8,0x9010, - 0x6625,0x693F,0x7443,0x51FA,0x672E,0x9EDC,0x5145,0x5FE0, - 0x6C96,0x87F2,0x885D,0x8877,0x60B4,0x81B5,0x8403,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 119, Array index 0x5200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x8D05,0x53D6,0x5439,0x5634,0x5A36,0x5C31,0x708A, - 0x7FE0,0x805A,0x8106,0x81ED,0x8DA3,0x9189,0x9A5F,0x9DF2, - 0x5074,0x4EC4,0x53A0,0x60FB,0x6E2C,0x5C64,0x4F88,0x5024, - 0x55E4,0x5CD9,0x5E5F,0x6065,0x6894,0x6CBB,0x6DC4,0x71BE, - 0x75D4,0x75F4,0x7661,0x7A1A,0x7A49,0x7DC7,0x7DFB,0x7F6E, - 0x81F4,0x86A9,0x8F1C,0x96C9,0x99B3,0x9F52,0x5247,0x52C5, - 0x98ED,0x89AA,0x4E03,0x67D2,0x6F06,0x4FB5,0x5BE2,0x6795, - 0x6C88,0x6D78,0x741B,0x7827,0x91DD,0x937C,0x87C4,0x79E4, - 0x7A31,0x5FEB,0x4ED6,0x54A4,0x553E,0x58AE,0x59A5,0x60F0, - 0x6253,0x62D6,0x6736,0x6955,0x8235,0x9640,0x99B1,0x99DD, - 0x502C,0x5353,0x5544,0x577C,0xFA01,0x6258,0xFA02,0x64E2, - 0x666B,0x67DD,0x6FC1,0x6FEF,0x7422,0x7438,0x8A17,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 120, Array index 0x5300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x9438,0x5451,0x5606,0x5766,0x5F48,0x619A,0x6B4E, - 0x7058,0x70AD,0x7DBB,0x8A95,0x596A,0x812B,0x63A2,0x7708, - 0x803D,0x8CAA,0x5854,0x642D,0x69BB,0x5B95,0x5E11,0x6E6F, - 0xFA03,0x8569,0x514C,0x53F0,0x592A,0x6020,0x614B,0x6B86, - 0x6C70,0x6CF0,0x7B1E,0x80CE,0x82D4,0x8DC6,0x90B0,0x98B1, - 0xFA04,0x64C7,0x6FA4,0x6491,0x6504,0x514E,0x5410,0x571F, - 0x8A0E,0x615F,0x6876,0xFA05,0x75DB,0x7B52,0x7D71,0x901A, - 0x5806,0x69CC,0x817F,0x892A,0x9000,0x9839,0x5078,0x5957, - 0x59AC,0x6295,0x900F,0x9B2A,0x615D,0x7279,0x95D6,0x5761, - 0x5A46,0x5DF4,0x628A,0x64AD,0x64FA,0x6777,0x6CE2,0x6D3E, - 0x722C,0x7436,0x7834,0x7F77,0x82AD,0x8DDB,0x9817,0x5224, - 0x5742,0x677F,0x7248,0x74E3,0x8CA9,0x8FA6,0x9211,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 121, Array index 0x5400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x962A,0x516B,0x53ED,0x634C,0x4F69,0x5504,0x6096, - 0x6557,0x6C9B,0x6D7F,0x724C,0x72FD,0x7A17,0x8987,0x8C9D, - 0x5F6D,0x6F8E,0x70F9,0x81A8,0x610E,0x4FBF,0x504F,0x6241, - 0x7247,0x7BC7,0x7DE8,0x7FE9,0x904D,0x97AD,0x9A19,0x8CB6, - 0x576A,0x5E73,0x67B0,0x840D,0x8A55,0x5420,0x5B16,0x5E63, - 0x5EE2,0x5F0A,0x6583,0x80BA,0x853D,0x9589,0x965B,0x4F48, - 0x5305,0x530D,0x530F,0x5486,0x54FA,0x5703,0x5E03,0x6016, - 0x629B,0x62B1,0x6355,0xFA06,0x6CE1,0x6D66,0x75B1,0x7832, - 0x80DE,0x812F,0x82DE,0x8461,0x84B2,0x888D,0x8912,0x900B, - 0x92EA,0x98FD,0x9B91,0x5E45,0x66B4,0x66DD,0x7011,0x7206, - 0xFA07,0x4FF5,0x527D,0x5F6A,0x6153,0x6753,0x6A19,0x6F02, - 0x74E2,0x7968,0x8868,0x8C79,0x98C7,0x98C4,0x9A43,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 122, Array index 0x5500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x54C1,0x7A1F,0x6953,0x8AF7,0x8C4A,0x98A8,0x99AE, - 0x5F7C,0x62AB,0x75B2,0x76AE,0x88AB,0x907F,0x9642,0x5339, - 0x5F3C,0x5FC5,0x6CCC,0x73CC,0x7562,0x758B,0x7B46,0x82FE, - 0x999D,0x4E4F,0x903C,0x4E0B,0x4F55,0x53A6,0x590F,0x5EC8, - 0x6630,0x6CB3,0x7455,0x8377,0x8766,0x8CC0,0x9050,0x971E, - 0x9C15,0x58D1,0x5B78,0x8650,0x8B14,0x9DB4,0x5BD2,0x6068, - 0x608D,0x65F1,0x6C57,0x6F22,0x6FA3,0x701A,0x7F55,0x7FF0, - 0x9591,0x9592,0x9650,0x97D3,0x5272,0x8F44,0x51FD,0x542B, - 0x54B8,0x5563,0x558A,0x6ABB,0x6DB5,0x7DD8,0x8266,0x929C, - 0x9677,0x9E79,0x5408,0x54C8,0x76D2,0x86E4,0x95A4,0x95D4, - 0x965C,0x4EA2,0x4F09,0x59EE,0x5AE6,0x5DF7,0x6052,0x6297, - 0x676D,0x6841,0x6C86,0x6E2F,0x7F38,0x809B,0x822A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 123, Array index 0x5600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0xFA08,0xFA09,0x9805,0x4EA5,0x5055,0x54B3,0x5793, - 0x595A,0x5B69,0x5BB3,0x61C8,0x6977,0x6D77,0x7023,0x87F9, - 0x89E3,0x8A72,0x8AE7,0x9082,0x99ED,0x9AB8,0x52BE,0x6838, - 0x5016,0x5E78,0x674F,0x8347,0x884C,0x4EAB,0x5411,0x56AE, - 0x73E6,0x9115,0x97FF,0x9909,0x9957,0x9999,0x5653,0x589F, - 0x865B,0x8A31,0x61B2,0x6AF6,0x737B,0x8ED2,0x6B47,0x96AA, - 0x9A57,0x5955,0x7200,0x8D6B,0x9769,0x4FD4,0x5CF4,0x5F26, - 0x61F8,0x665B,0x6CEB,0x70AB,0x7384,0x73B9,0x73FE,0x7729, - 0x774D,0x7D43,0x7D62,0x7E23,0x8237,0x8852,0xFA0A,0x8CE2, - 0x9249,0x986F,0x5B51,0x7A74,0x8840,0x9801,0x5ACC,0x4FE0, - 0x5354,0x593E,0x5CFD,0x633E,0x6D79,0x72F9,0x8105,0x8107, - 0x83A2,0x92CF,0x9830,0x4EA8,0x5144,0x5211,0x578B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 124, Array index 0x5700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F62,0x6CC2,0x6ECE,0x7005,0x7050,0x70AF,0x7192, - 0x73E9,0x7469,0x834A,0x87A2,0x8861,0x9008,0x90A2,0x93A3, - 0x99A8,0x516E,0x5F57,0x60E0,0x6167,0x66B3,0x8559,0x8E4A, - 0x91AF,0x978B,0x4E4E,0x4E92,0x547C,0x58D5,0x58FA,0x597D, - 0x5CB5,0x5F27,0x6236,0x6248,0x660A,0x6667,0x6BEB,0x6D69, - 0x6DCF,0x6E56,0x6EF8,0x6F94,0x6FE0,0x6FE9,0x705D,0x72D0, - 0x7425,0x745A,0x74E0,0x7693,0x795C,0x7CCA,0x7E1E,0x80E1, - 0x82A6,0x846B,0x84BF,0x864E,0x865F,0x8774,0x8B77,0x8C6A, - 0x93AC,0x9800,0x9865,0x60D1,0x6216,0x9177,0x5A5A,0x660F, - 0x6DF7,0x6E3E,0x743F,0x9B42,0x5FFD,0x60DA,0x7B0F,0x54C4, - 0x5F18,0x6C5E,0x6CD3,0x6D2A,0x70D8,0x7D05,0x8679,0x8A0C, - 0x9D3B,0x5316,0x548C,0x5B05,0x6A3A,0x706B,0x7575,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 125, Array index 0x5800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x798D,0x79BE,0x82B1,0x83EF,0x8A71,0x8B41,0x8CA8, - 0x9774,0xFA0B,0x64F4,0x652B,0x78BA,0x78BB,0x7A6B,0x4E38, - 0x559A,0x5950,0x5BA6,0x5E7B,0x60A3,0x63DB,0x6B61,0x6665, - 0x6853,0x6E19,0x7165,0x74B0,0x7D08,0x9084,0x9A69,0x9C25, - 0x6D3B,0x6ED1,0x733E,0x8C41,0x95CA,0x51F0,0x5E4C,0x5FA8, - 0x604D,0x60F6,0x6130,0x614C,0x6643,0x6644,0x69A5,0x6CC1, - 0x6E5F,0x6EC9,0x6F62,0x714C,0x749C,0x7687,0x7BC1,0x7C27, - 0x8352,0x8757,0x9051,0x968D,0x9EC3,0x532F,0x56DE,0x5EFB, - 0x5F8A,0x6062,0x6094,0x61F7,0x6666,0x6703,0x6A9C,0x6DEE, - 0x6FAE,0x7070,0x736A,0x7E6A,0x81BE,0x8334,0x86D4,0x8AA8, - 0x8CC4,0x5283,0x7372,0x5B96,0x6A6B,0x9404,0x54EE,0x5686, - 0x5B5D,0x6548,0x6585,0x66C9,0x689F,0x6D8D,0x6DC6,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 126, Array index 0x5900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x723B,0x80B4,0x9175,0x9A4D,0x4FAF,0x5019,0x539A, - 0x540E,0x543C,0x5589,0x55C5,0x5E3F,0x5F8C,0x673D,0x7166, - 0x73DD,0x9005,0x52DB,0x52F3,0x5864,0x58CE,0x7104,0x718F, - 0x71FB,0x85B0,0x8A13,0x6688,0x85A8,0x55A7,0x6684,0x714A, - 0x8431,0x5349,0x5599,0x6BC1,0x5F59,0x5FBD,0x63EE,0x6689, - 0x7147,0x8AF1,0x8F1D,0x9EBE,0x4F11,0x643A,0x70CB,0x7566, - 0x8667,0x6064,0x8B4E,0x9DF8,0x5147,0x51F6,0x5308,0x6D36, - 0x80F8,0x9ED1,0x6615,0x6B23,0x7098,0x75D5,0x5403,0x5C79, - 0x7D07,0x8A16,0x6B20,0x6B3D,0x6B46,0x5438,0x6070,0x6D3D, - 0x7FD5,0x8208,0x50D6,0x51DE,0x559C,0x566B,0x56CD,0x59EC, - 0x5B09,0x5E0C,0x6199,0x6198,0x6231,0x665E,0x66E6,0x7199, - 0x71B9,0x71BA,0x72A7,0x79A7,0x7A00,0x7FB2,0x8A70,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, -}; - -#endif /* ICONV_TO_UCS_CCS_KSX1001 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit ksx1001 -> UCS size-optimized table (17018 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_KSX1001) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -to_ucs_size_ksx1001[] = -{ - 0x005D, /* Ranges number */ - 0x0000, /* Unranged codes number */ - 0x213D, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0x2121, 0x217E, 0x011A, - /* Array index: 0x0006 */ 0x2221, 0x2265, 0x0178, - /* Array index: 0x0009 */ 0x2321, 0x237E, 0x01BD, - /* Array index: 0x000C */ 0x2421, 0x247E, 0x021B, - /* Array index: 0x000F */ 0x2521, 0x252A, 0x0279, - /* Array index: 0x0012 */ 0x2530, 0x2539, 0x0283, - /* Array index: 0x0015 */ 0x2541, 0x2558, 0x028D, - /* Array index: 0x0018 */ 0x2561, 0x2578, 0x02A5, - /* Array index: 0x001B */ 0x2621, 0x2664, 0x02BD, - /* Array index: 0x001E */ 0x2721, 0x276F, 0x0301, - /* Array index: 0x0021 */ 0x2821, 0x287E, 0x0350, - /* Array index: 0x0024 */ 0x2921, 0x297E, 0x03AE, - /* Array index: 0x0027 */ 0x2A21, 0x2A73, 0x040C, - /* Array index: 0x002A */ 0x2B21, 0x2B76, 0x045F, - /* Array index: 0x002D */ 0x2C21, 0x2C41, 0x04B5, - /* Array index: 0x0030 */ 0x2C51, 0x2C71, 0x04D6, - /* Array index: 0x0033 */ 0x3021, 0x307E, 0x04F7, - /* Array index: 0x0036 */ 0x3121, 0x317E, 0x0555, - /* Array index: 0x0039 */ 0x3221, 0x327E, 0x05B3, - /* Array index: 0x003C */ 0x3321, 0x337E, 0x0611, - /* Array index: 0x003F */ 0x3421, 0x347E, 0x066F, - /* Array index: 0x0042 */ 0x3521, 0x357E, 0x06CD, - /* Array index: 0x0045 */ 0x3621, 0x367E, 0x072B, - /* Array index: 0x0048 */ 0x3721, 0x377E, 0x0789, - /* Array index: 0x004B */ 0x3821, 0x387E, 0x07E7, - /* Array index: 0x004E */ 0x3921, 0x397E, 0x0845, - /* Array index: 0x0051 */ 0x3A21, 0x3A7E, 0x08A3, - /* Array index: 0x0054 */ 0x3B21, 0x3B7E, 0x0901, - /* Array index: 0x0057 */ 0x3C21, 0x3C7E, 0x095F, - /* Array index: 0x005A */ 0x3D21, 0x3D7E, 0x09BD, - /* Array index: 0x005D */ 0x3E21, 0x3E7E, 0x0A1B, - /* Array index: 0x0060 */ 0x3F21, 0x3F7E, 0x0A79, - /* Array index: 0x0063 */ 0x4021, 0x407E, 0x0AD7, - /* Array index: 0x0066 */ 0x4121, 0x417E, 0x0B35, - /* Array index: 0x0069 */ 0x4221, 0x427E, 0x0B93, - /* Array index: 0x006C */ 0x4321, 0x437E, 0x0BF1, - /* Array index: 0x006F */ 0x4421, 0x447E, 0x0C4F, - /* Array index: 0x0072 */ 0x4521, 0x457E, 0x0CAD, - /* Array index: 0x0075 */ 0x4621, 0x467E, 0x0D0B, - /* Array index: 0x0078 */ 0x4721, 0x477E, 0x0D69, - /* Array index: 0x007B */ 0x4821, 0x487E, 0x0DC7, - /* Array index: 0x007E */ 0x4A21, 0x4A7E, 0x0E25, - /* Array index: 0x0081 */ 0x4B21, 0x4B7E, 0x0E83, - /* Array index: 0x0084 */ 0x4C21, 0x4C7E, 0x0EE1, - /* Array index: 0x0087 */ 0x4D21, 0x4D7E, 0x0F3F, - /* Array index: 0x008A */ 0x4E21, 0x4E7E, 0x0F9D, - /* Array index: 0x008D */ 0x4F21, 0x4F7E, 0x0FFB, - /* Array index: 0x0090 */ 0x5021, 0x507E, 0x1059, - /* Array index: 0x0093 */ 0x5121, 0x517E, 0x10B7, - /* Array index: 0x0096 */ 0x5221, 0x527E, 0x1115, - /* Array index: 0x0099 */ 0x5321, 0x537E, 0x1173, - /* Array index: 0x009C */ 0x5421, 0x547E, 0x11D1, - /* Array index: 0x009F */ 0x5521, 0x557E, 0x122F, - /* Array index: 0x00A2 */ 0x5621, 0x567E, 0x128D, - /* Array index: 0x00A5 */ 0x5721, 0x577E, 0x12EB, - /* Array index: 0x00A8 */ 0x5821, 0x587E, 0x1349, - /* Array index: 0x00AB */ 0x5921, 0x597E, 0x13A7, - /* Array index: 0x00AE */ 0x5A21, 0x5A7E, 0x1405, - /* Array index: 0x00B1 */ 0x5B21, 0x5B7E, 0x1463, - /* Array index: 0x00B4 */ 0x5C21, 0x5C7E, 0x14C1, - /* Array index: 0x00B7 */ 0x5D21, 0x5D7E, 0x151F, - /* Array index: 0x00BA */ 0x5E21, 0x5E7E, 0x157D, - /* Array index: 0x00BD */ 0x5F21, 0x5F7E, 0x15DB, - /* Array index: 0x00C0 */ 0x6021, 0x607E, 0x1639, - /* Array index: 0x00C3 */ 0x6121, 0x617E, 0x1697, - /* Array index: 0x00C6 */ 0x6221, 0x627E, 0x16F5, - /* Array index: 0x00C9 */ 0x6321, 0x637E, 0x1753, - /* Array index: 0x00CC */ 0x6421, 0x647E, 0x17B1, - /* Array index: 0x00CF */ 0x6521, 0x657E, 0x180F, - /* Array index: 0x00D2 */ 0x6621, 0x667E, 0x186D, - /* Array index: 0x00D5 */ 0x6721, 0x677E, 0x18CB, - /* Array index: 0x00D8 */ 0x6821, 0x687E, 0x1929, - /* Array index: 0x00DB */ 0x6921, 0x697E, 0x1987, - /* Array index: 0x00DE */ 0x6A21, 0x6A7E, 0x19E5, - /* Array index: 0x00E1 */ 0x6B21, 0x6B7E, 0x1A43, - /* Array index: 0x00E4 */ 0x6C21, 0x6C7E, 0x1AA1, - /* Array index: 0x00E7 */ 0x6D21, 0x6D7E, 0x1AFF, - /* Array index: 0x00EA */ 0x6E21, 0x6E7E, 0x1B5D, - /* Array index: 0x00ED */ 0x6F21, 0x6F7E, 0x1BBB, - /* Array index: 0x00F0 */ 0x7021, 0x707E, 0x1C19, - /* Array index: 0x00F3 */ 0x7121, 0x717E, 0x1C77, - /* Array index: 0x00F6 */ 0x7221, 0x727E, 0x1CD5, - /* Array index: 0x00F9 */ 0x7321, 0x737E, 0x1D33, - /* Array index: 0x00FC */ 0x7421, 0x747E, 0x1D91, - /* Array index: 0x00FF */ 0x7521, 0x757E, 0x1DEF, - /* Array index: 0x0102 */ 0x7621, 0x767E, 0x1E4D, - /* Array index: 0x0105 */ 0x7721, 0x777E, 0x1EAB, - /* Array index: 0x0108 */ 0x7821, 0x787E, 0x1F09, - /* Array index: 0x010B */ 0x7921, 0x797E, 0x1F67, - /* Array index: 0x010E */ 0x7A21, 0x7A7E, 0x1FC5, - /* Array index: 0x0111 */ 0x7B21, 0x7B7E, 0x2023, - /* Array index: 0x0114 */ 0x7C21, 0x7C7E, 0x2081, - /* Array index: 0x0117 */ 0x7D21, 0x7D7E, 0x20DF, - /* Ranges content */ - /* Range 0x2121 - 0x217E, array index: 0x011A */ - 0x3000,0x3001,0x3002,0x00B7,0x2025,0x2026,0x00A8,0x3003, - 0x00AD,0x2015,0x2225,0xFF3C,0x223C,0x2018,0x2019,0x201C, - 0x201D,0x3014,0x3015,0x3008,0x3009,0x300A,0x300B,0x300C, - 0x300D,0x300E,0x300F,0x3010,0x3011,0x00B1,0x00D7,0x00F7, - 0x2260,0x2264,0x2265,0x221E,0x2234,0x00B0,0x2032,0x2033, - 0x2103,0x212B,0xFFE0,0xFFE1,0xFFE5,0x2642,0x2640,0x2220, - 0x22A5,0x2312,0x2202,0x2207,0x2261,0x2252,0x00A7,0x203B, - 0x2606,0x2605,0x25CB,0x25CF,0x25CE,0x25C7,0x25C6,0x25A1, - 0x25A0,0x25B3,0x25B2,0x25BD,0x25BC,0x2192,0x2190,0x2191, - 0x2193,0x2194,0x3013,0x226A,0x226B,0x221A,0x223D,0x221D, - 0x2235,0x222B,0x222C,0x2208,0x220B,0x2286,0x2287,0x2282, - 0x2283,0x222A,0x2229,0x2227,0x2228,0xFFE2, - /* Range 0x2221 - 0x2265, array index: 0x0178 */ - 0x21D2,0x21D4,0x2200,0x2203,0x00B4,0xFF5E,0x02C7,0x02D8, - 0x02DD,0x02DA,0x02D9,0x00B8,0x02DB,0x00A1,0x00BF,0x02D0, - 0x222E,0x2211,0x220F,0x00A4,0x2109,0x2030,0x25C1,0x25C0, - 0x25B7,0x25B6,0x2664,0x2660,0x2661,0x2665,0x2667,0x2663, - 0x2299,0x25C8,0x25A3,0x25D0,0x25D1,0x2592,0x25A4,0x25A5, - 0x25A8,0x25A7,0x25A6,0x25A9,0x2668,0x260F,0x260E,0x261C, - 0x261E,0x00B6,0x2020,0x2021,0x2195,0x2197,0x2199,0x2196, - 0x2198,0x266D,0x2669,0x266A,0x266C,0x327F,0x321C,0x2116, - 0x33C7,0x2122,0x33C2,0x33D8,0x2121, - /* Range 0x2321 - 0x237E, array index: 0x01BD */ - 0xFF01,0xFF02,0xFF03,0xFF04,0xFF05,0xFF06,0xFF07,0xFF08, - 0xFF09,0xFF0A,0xFF0B,0xFF0C,0xFF0D,0xFF0E,0xFF0F,0xFF10, - 0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,0xFF18, - 0xFF19,0xFF1A,0xFF1B,0xFF1C,0xFF1D,0xFF1E,0xFF1F,0xFF20, - 0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28, - 0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30, - 0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38, - 0xFF39,0xFF3A,0xFF3B,0xFFE6,0xFF3D,0xFF3E,0xFF3F,0xFF40, - 0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,0xFF48, - 0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F,0xFF50, - 0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57,0xFF58, - 0xFF59,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFFE3, - /* Range 0x2421 - 0x247E, array index: 0x021B */ - 0x3131,0x3132,0x3133,0x3134,0x3135,0x3136,0x3137,0x3138, - 0x3139,0x313A,0x313B,0x313C,0x313D,0x313E,0x313F,0x3140, - 0x3141,0x3142,0x3143,0x3144,0x3145,0x3146,0x3147,0x3148, - 0x3149,0x314A,0x314B,0x314C,0x314D,0x314E,0x314F,0x3150, - 0x3151,0x3152,0x3153,0x3154,0x3155,0x3156,0x3157,0x3158, - 0x3159,0x315A,0x315B,0x315C,0x315D,0x315E,0x315F,0x3160, - 0x3161,0x3162,0x3163,0x3164,0x3165,0x3166,0x3167,0x3168, - 0x3169,0x316A,0x316B,0x316C,0x316D,0x316E,0x316F,0x3170, - 0x3171,0x3172,0x3173,0x3174,0x3175,0x3176,0x3177,0x3178, - 0x3179,0x317A,0x317B,0x317C,0x317D,0x317E,0x317F,0x3180, - 0x3181,0x3182,0x3183,0x3184,0x3185,0x3186,0x3187,0x3188, - 0x3189,0x318A,0x318B,0x318C,0x318D,0x318E, - /* Range 0x2521 - 0x252A, array index: 0x0279 */ - 0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176,0x2177, - 0x2178,0x2179, - /* Range 0x2530 - 0x2539, array index: 0x0283 */ - 0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167, - 0x2168,0x2169, - /* Range 0x2541 - 0x2558, array index: 0x028D */ - 0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398, - 0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0, - 0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9, - /* Range 0x2561 - 0x2578, array index: 0x02A5 */ - 0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8, - 0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0, - 0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9, - /* Range 0x2621 - 0x2664, array index: 0x02BD */ - 0x2500,0x2502,0x250C,0x2510,0x2518,0x2514,0x251C,0x252C, - 0x2524,0x2534,0x253C,0x2501,0x2503,0x250F,0x2513,0x251B, - 0x2517,0x2523,0x2533,0x252B,0x253B,0x254B,0x2520,0x252F, - 0x2528,0x2537,0x253F,0x251D,0x2530,0x2525,0x2538,0x2542, - 0x2512,0x2511,0x251A,0x2519,0x2516,0x2515,0x250E,0x250D, - 0x251E,0x251F,0x2521,0x2522,0x2526,0x2527,0x2529,0x252A, - 0x252D,0x252E,0x2531,0x2532,0x2535,0x2536,0x2539,0x253A, - 0x253D,0x253E,0x2540,0x2541,0x2543,0x2544,0x2545,0x2546, - 0x2547,0x2548,0x2549,0x254A, - /* Range 0x2721 - 0x276F, array index: 0x0301 */ - 0x3395,0x3396,0x3397,0x2113,0x3398,0x33C4,0x33A3,0x33A4, - 0x33A5,0x33A6,0x3399,0x339A,0x339B,0x339C,0x339D,0x339E, - 0x339F,0x33A0,0x33A1,0x33A2,0x33CA,0x338D,0x338E,0x338F, - 0x33CF,0x3388,0x3389,0x33C8,0x33A7,0x33A8,0x33B0,0x33B1, - 0x33B2,0x33B3,0x33B4,0x33B5,0x33B6,0x33B7,0x33B8,0x33B9, - 0x3380,0x3381,0x3382,0x3383,0x3384,0x33BA,0x33BB,0x33BC, - 0x33BD,0x33BE,0x33BF,0x3390,0x3391,0x3392,0x3393,0x3394, - 0x2126,0x33C0,0x33C1,0x338A,0x338B,0x338C,0x33D6,0x33C5, - 0x33AD,0x33AE,0x33AF,0x33DB,0x33A9,0x33AA,0x33AB,0x33AC, - 0x33DD,0x33D0,0x33D3,0x33C3,0x33C9,0x33DC,0x33C6, - /* Range 0x2821 - 0x287E, array index: 0x0350 */ - 0x00C6,0x00D0,0x00AA,0x0126,INVALC,0x0132,INVALC,0x013F, - 0x0141,0x00D8,0x0152,0x00BA,0x00DE,0x0166,0x014A,INVALC, - 0x3260,0x3261,0x3262,0x3263,0x3264,0x3265,0x3266,0x3267, - 0x3268,0x3269,0x326A,0x326B,0x326C,0x326D,0x326E,0x326F, - 0x3270,0x3271,0x3272,0x3273,0x3274,0x3275,0x3276,0x3277, - 0x3278,0x3279,0x327A,0x327B,0x24D0,0x24D1,0x24D2,0x24D3, - 0x24D4,0x24D5,0x24D6,0x24D7,0x24D8,0x24D9,0x24DA,0x24DB, - 0x24DC,0x24DD,0x24DE,0x24DF,0x24E0,0x24E1,0x24E2,0x24E3, - 0x24E4,0x24E5,0x24E6,0x24E7,0x24E8,0x24E9,0x2460,0x2461, - 0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,0x2469, - 0x246A,0x246B,0x246C,0x246D,0x246E,0x00BD,0x2153,0x2154, - 0x00BC,0x00BE,0x215B,0x215C,0x215D,0x215E, - /* Range 0x2921 - 0x297E, array index: 0x03AE */ - 0x00E6,0x0111,0x00F0,0x0127,0x0131,0x0133,0x0138,0x0140, - 0x0142,0x00F8,0x0153,0x00DF,0x00FE,0x0167,0x014B,0x0149, - 0x3200,0x3201,0x3202,0x3203,0x3204,0x3205,0x3206,0x3207, - 0x3208,0x3209,0x320A,0x320B,0x320C,0x320D,0x320E,0x320F, - 0x3210,0x3211,0x3212,0x3213,0x3214,0x3215,0x3216,0x3217, - 0x3218,0x3219,0x321A,0x321B,0x249C,0x249D,0x249E,0x249F, - 0x24A0,0x24A1,0x24A2,0x24A3,0x24A4,0x24A5,0x24A6,0x24A7, - 0x24A8,0x24A9,0x24AA,0x24AB,0x24AC,0x24AD,0x24AE,0x24AF, - 0x24B0,0x24B1,0x24B2,0x24B3,0x24B4,0x24B5,0x2474,0x2475, - 0x2476,0x2477,0x2478,0x2479,0x247A,0x247B,0x247C,0x247D, - 0x247E,0x247F,0x2480,0x2481,0x2482,0x00B9,0x00B2,0x00B3, - 0x2074,0x207F,0x2081,0x2082,0x2083,0x2084, - /* Range 0x2A21 - 0x2A73, array index: 0x040C */ - 0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,0x3048, - 0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,0x304F,0x3050, - 0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,0x3058, - 0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,0x305F,0x3060, - 0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,0x3068, - 0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F,0x3070, - 0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077,0x3078, - 0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,0x307F,0x3080, - 0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087,0x3088, - 0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F,0x3090, - 0x3091,0x3092,0x3093, - /* Range 0x2B21 - 0x2B76, array index: 0x045F */ - 0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7,0x30A8, - 0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,0x30B0, - 0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,0x30B8, - 0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,0x30C0, - 0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,0x30C8, - 0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF,0x30D0, - 0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7,0x30D8, - 0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,0x30E0, - 0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7,0x30E8, - 0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF,0x30F0, - 0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6, - /* Range 0x2C21 - 0x2C41, array index: 0x04B5 */ - 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401,0x0416, - 0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, - 0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426, - 0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E, - 0x042F, - /* Range 0x2C51 - 0x2C71, array index: 0x04D6 */ - 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,0x0436, - 0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, - 0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446, - 0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E, - 0x044F, - /* Range 0x3021 - 0x307E, array index: 0x04F7 */ - 0xAC00,0xAC01,0xAC04,0xAC07,0xAC08,0xAC09,0xAC0A,0xAC10, - 0xAC11,0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17,0xAC19, - 0xAC1A,0xAC1B,0xAC1C,0xAC1D,0xAC20,0xAC24,0xAC2C,0xAC2D, - 0xAC2F,0xAC30,0xAC31,0xAC38,0xAC39,0xAC3C,0xAC40,0xAC4B, - 0xAC4D,0xAC54,0xAC58,0xAC5C,0xAC70,0xAC71,0xAC74,0xAC77, - 0xAC78,0xAC7A,0xAC80,0xAC81,0xAC83,0xAC84,0xAC85,0xAC86, - 0xAC89,0xAC8A,0xAC8B,0xAC8C,0xAC90,0xAC94,0xAC9C,0xAC9D, - 0xAC9F,0xACA0,0xACA1,0xACA8,0xACA9,0xACAA,0xACAC,0xACAF, - 0xACB0,0xACB8,0xACB9,0xACBB,0xACBC,0xACBD,0xACC1,0xACC4, - 0xACC8,0xACCC,0xACD5,0xACD7,0xACE0,0xACE1,0xACE4,0xACE7, - 0xACE8,0xACEA,0xACEC,0xACEF,0xACF0,0xACF1,0xACF3,0xACF5, - 0xACF6,0xACFC,0xACFD,0xAD00,0xAD04,0xAD06, - /* Range 0x3121 - 0x317E, array index: 0x0555 */ - 0xAD0C,0xAD0D,0xAD0F,0xAD11,0xAD18,0xAD1C,0xAD20,0xAD29, - 0xAD2C,0xAD2D,0xAD34,0xAD35,0xAD38,0xAD3C,0xAD44,0xAD45, - 0xAD47,0xAD49,0xAD50,0xAD54,0xAD58,0xAD61,0xAD63,0xAD6C, - 0xAD6D,0xAD70,0xAD73,0xAD74,0xAD75,0xAD76,0xAD7B,0xAD7C, - 0xAD7D,0xAD7F,0xAD81,0xAD82,0xAD88,0xAD89,0xAD8C,0xAD90, - 0xAD9C,0xAD9D,0xADA4,0xADB7,0xADC0,0xADC1,0xADC4,0xADC8, - 0xADD0,0xADD1,0xADD3,0xADDC,0xADE0,0xADE4,0xADF8,0xADF9, - 0xADFC,0xADFF,0xAE00,0xAE01,0xAE08,0xAE09,0xAE0B,0xAE0D, - 0xAE14,0xAE30,0xAE31,0xAE34,0xAE37,0xAE38,0xAE3A,0xAE40, - 0xAE41,0xAE43,0xAE45,0xAE46,0xAE4A,0xAE4C,0xAE4D,0xAE4E, - 0xAE50,0xAE54,0xAE56,0xAE5C,0xAE5D,0xAE5F,0xAE60,0xAE61, - 0xAE65,0xAE68,0xAE69,0xAE6C,0xAE70,0xAE78, - /* Range 0x3221 - 0x327E, array index: 0x05B3 */ - 0xAE79,0xAE7B,0xAE7C,0xAE7D,0xAE84,0xAE85,0xAE8C,0xAEBC, - 0xAEBD,0xAEBE,0xAEC0,0xAEC4,0xAECC,0xAECD,0xAECF,0xAED0, - 0xAED1,0xAED8,0xAED9,0xAEDC,0xAEE8,0xAEEB,0xAEED,0xAEF4, - 0xAEF8,0xAEFC,0xAF07,0xAF08,0xAF0D,0xAF10,0xAF2C,0xAF2D, - 0xAF30,0xAF32,0xAF34,0xAF3C,0xAF3D,0xAF3F,0xAF41,0xAF42, - 0xAF43,0xAF48,0xAF49,0xAF50,0xAF5C,0xAF5D,0xAF64,0xAF65, - 0xAF79,0xAF80,0xAF84,0xAF88,0xAF90,0xAF91,0xAF95,0xAF9C, - 0xAFB8,0xAFB9,0xAFBC,0xAFC0,0xAFC7,0xAFC8,0xAFC9,0xAFCB, - 0xAFCD,0xAFCE,0xAFD4,0xAFDC,0xAFE8,0xAFE9,0xAFF0,0xAFF1, - 0xAFF4,0xAFF8,0xB000,0xB001,0xB004,0xB00C,0xB010,0xB014, - 0xB01C,0xB01D,0xB028,0xB044,0xB045,0xB048,0xB04A,0xB04C, - 0xB04E,0xB053,0xB054,0xB055,0xB057,0xB059, - /* Range 0x3321 - 0x337E, array index: 0x0611 */ - 0xB05D,0xB07C,0xB07D,0xB080,0xB084,0xB08C,0xB08D,0xB08F, - 0xB091,0xB098,0xB099,0xB09A,0xB09C,0xB09F,0xB0A0,0xB0A1, - 0xB0A2,0xB0A8,0xB0A9,0xB0AB,0xB0AC,0xB0AD,0xB0AE,0xB0AF, - 0xB0B1,0xB0B3,0xB0B4,0xB0B5,0xB0B8,0xB0BC,0xB0C4,0xB0C5, - 0xB0C7,0xB0C8,0xB0C9,0xB0D0,0xB0D1,0xB0D4,0xB0D8,0xB0E0, - 0xB0E5,0xB108,0xB109,0xB10B,0xB10C,0xB110,0xB112,0xB113, - 0xB118,0xB119,0xB11B,0xB11C,0xB11D,0xB123,0xB124,0xB125, - 0xB128,0xB12C,0xB134,0xB135,0xB137,0xB138,0xB139,0xB140, - 0xB141,0xB144,0xB148,0xB150,0xB151,0xB154,0xB155,0xB158, - 0xB15C,0xB160,0xB178,0xB179,0xB17C,0xB180,0xB182,0xB188, - 0xB189,0xB18B,0xB18D,0xB192,0xB193,0xB194,0xB198,0xB19C, - 0xB1A8,0xB1CC,0xB1D0,0xB1D4,0xB1DC,0xB1DD, - /* Range 0x3421 - 0x347E, array index: 0x066F */ - 0xB1DF,0xB1E8,0xB1E9,0xB1EC,0xB1F0,0xB1F9,0xB1FB,0xB1FD, - 0xB204,0xB205,0xB208,0xB20B,0xB20C,0xB214,0xB215,0xB217, - 0xB219,0xB220,0xB234,0xB23C,0xB258,0xB25C,0xB260,0xB268, - 0xB269,0xB274,0xB275,0xB27C,0xB284,0xB285,0xB289,0xB290, - 0xB291,0xB294,0xB298,0xB299,0xB29A,0xB2A0,0xB2A1,0xB2A3, - 0xB2A5,0xB2A6,0xB2AA,0xB2AC,0xB2B0,0xB2B4,0xB2C8,0xB2C9, - 0xB2CC,0xB2D0,0xB2D2,0xB2D8,0xB2D9,0xB2DB,0xB2DD,0xB2E2, - 0xB2E4,0xB2E5,0xB2E6,0xB2E8,0xB2EB,0xB2EC,0xB2ED,0xB2EE, - 0xB2EF,0xB2F3,0xB2F4,0xB2F5,0xB2F7,0xB2F8,0xB2F9,0xB2FA, - 0xB2FB,0xB2FF,0xB300,0xB301,0xB304,0xB308,0xB310,0xB311, - 0xB313,0xB314,0xB315,0xB31C,0xB354,0xB355,0xB356,0xB358, - 0xB35B,0xB35C,0xB35E,0xB35F,0xB364,0xB365, - /* Range 0x3521 - 0x357E, array index: 0x06CD */ - 0xB367,0xB369,0xB36B,0xB36E,0xB370,0xB371,0xB374,0xB378, - 0xB380,0xB381,0xB383,0xB384,0xB385,0xB38C,0xB390,0xB394, - 0xB3A0,0xB3A1,0xB3A8,0xB3AC,0xB3C4,0xB3C5,0xB3C8,0xB3CB, - 0xB3CC,0xB3CE,0xB3D0,0xB3D4,0xB3D5,0xB3D7,0xB3D9,0xB3DB, - 0xB3DD,0xB3E0,0xB3E4,0xB3E8,0xB3FC,0xB410,0xB418,0xB41C, - 0xB420,0xB428,0xB429,0xB42B,0xB434,0xB450,0xB451,0xB454, - 0xB458,0xB460,0xB461,0xB463,0xB465,0xB46C,0xB480,0xB488, - 0xB49D,0xB4A4,0xB4A8,0xB4AC,0xB4B5,0xB4B7,0xB4B9,0xB4C0, - 0xB4C4,0xB4C8,0xB4D0,0xB4D5,0xB4DC,0xB4DD,0xB4E0,0xB4E3, - 0xB4E4,0xB4E6,0xB4EC,0xB4ED,0xB4EF,0xB4F1,0xB4F8,0xB514, - 0xB515,0xB518,0xB51B,0xB51C,0xB524,0xB525,0xB527,0xB528, - 0xB529,0xB52A,0xB530,0xB531,0xB534,0xB538, - /* Range 0x3621 - 0x367E, array index: 0x072B */ - 0xB540,0xB541,0xB543,0xB544,0xB545,0xB54B,0xB54C,0xB54D, - 0xB550,0xB554,0xB55C,0xB55D,0xB55F,0xB560,0xB561,0xB5A0, - 0xB5A1,0xB5A4,0xB5A8,0xB5AA,0xB5AB,0xB5B0,0xB5B1,0xB5B3, - 0xB5B4,0xB5B5,0xB5BB,0xB5BC,0xB5BD,0xB5C0,0xB5C4,0xB5CC, - 0xB5CD,0xB5CF,0xB5D0,0xB5D1,0xB5D8,0xB5EC,0xB610,0xB611, - 0xB614,0xB618,0xB625,0xB62C,0xB634,0xB648,0xB664,0xB668, - 0xB69C,0xB69D,0xB6A0,0xB6A4,0xB6AB,0xB6AC,0xB6B1,0xB6D4, - 0xB6F0,0xB6F4,0xB6F8,0xB700,0xB701,0xB705,0xB728,0xB729, - 0xB72C,0xB72F,0xB730,0xB738,0xB739,0xB73B,0xB744,0xB748, - 0xB74C,0xB754,0xB755,0xB760,0xB764,0xB768,0xB770,0xB771, - 0xB773,0xB775,0xB77C,0xB77D,0xB780,0xB784,0xB78C,0xB78D, - 0xB78F,0xB790,0xB791,0xB792,0xB796,0xB797, - /* Range 0x3721 - 0x377E, array index: 0x0789 */ - 0xB798,0xB799,0xB79C,0xB7A0,0xB7A8,0xB7A9,0xB7AB,0xB7AC, - 0xB7AD,0xB7B4,0xB7B5,0xB7B8,0xB7C7,0xB7C9,0xB7EC,0xB7ED, - 0xB7F0,0xB7F4,0xB7FC,0xB7FD,0xB7FF,0xB800,0xB801,0xB807, - 0xB808,0xB809,0xB80C,0xB810,0xB818,0xB819,0xB81B,0xB81D, - 0xB824,0xB825,0xB828,0xB82C,0xB834,0xB835,0xB837,0xB838, - 0xB839,0xB840,0xB844,0xB851,0xB853,0xB85C,0xB85D,0xB860, - 0xB864,0xB86C,0xB86D,0xB86F,0xB871,0xB878,0xB87C,0xB88D, - 0xB8A8,0xB8B0,0xB8B4,0xB8B8,0xB8C0,0xB8C1,0xB8C3,0xB8C5, - 0xB8CC,0xB8D0,0xB8D4,0xB8DD,0xB8DF,0xB8E1,0xB8E8,0xB8E9, - 0xB8EC,0xB8F0,0xB8F8,0xB8F9,0xB8FB,0xB8FD,0xB904,0xB918, - 0xB920,0xB93C,0xB93D,0xB940,0xB944,0xB94C,0xB94F,0xB951, - 0xB958,0xB959,0xB95C,0xB960,0xB968,0xB969, - /* Range 0x3821 - 0x387E, array index: 0x07E7 */ - 0xB96B,0xB96D,0xB974,0xB975,0xB978,0xB97C,0xB984,0xB985, - 0xB987,0xB989,0xB98A,0xB98D,0xB98E,0xB9AC,0xB9AD,0xB9B0, - 0xB9B4,0xB9BC,0xB9BD,0xB9BF,0xB9C1,0xB9C8,0xB9C9,0xB9CC, - 0xB9CE,0xB9CF,0xB9D0,0xB9D1,0xB9D2,0xB9D8,0xB9D9,0xB9DB, - 0xB9DD,0xB9DE,0xB9E1,0xB9E3,0xB9E4,0xB9E5,0xB9E8,0xB9EC, - 0xB9F4,0xB9F5,0xB9F7,0xB9F8,0xB9F9,0xB9FA,0xBA00,0xBA01, - 0xBA08,0xBA15,0xBA38,0xBA39,0xBA3C,0xBA40,0xBA42,0xBA48, - 0xBA49,0xBA4B,0xBA4D,0xBA4E,0xBA53,0xBA54,0xBA55,0xBA58, - 0xBA5C,0xBA64,0xBA65,0xBA67,0xBA68,0xBA69,0xBA70,0xBA71, - 0xBA74,0xBA78,0xBA83,0xBA84,0xBA85,0xBA87,0xBA8C,0xBAA8, - 0xBAA9,0xBAAB,0xBAAC,0xBAB0,0xBAB2,0xBAB8,0xBAB9,0xBABB, - 0xBABD,0xBAC4,0xBAC8,0xBAD8,0xBAD9,0xBAFC, - /* Range 0x3921 - 0x397E, array index: 0x0845 */ - 0xBB00,0xBB04,0xBB0D,0xBB0F,0xBB11,0xBB18,0xBB1C,0xBB20, - 0xBB29,0xBB2B,0xBB34,0xBB35,0xBB36,0xBB38,0xBB3B,0xBB3C, - 0xBB3D,0xBB3E,0xBB44,0xBB45,0xBB47,0xBB49,0xBB4D,0xBB4F, - 0xBB50,0xBB54,0xBB58,0xBB61,0xBB63,0xBB6C,0xBB88,0xBB8C, - 0xBB90,0xBBA4,0xBBA8,0xBBAC,0xBBB4,0xBBB7,0xBBC0,0xBBC4, - 0xBBC8,0xBBD0,0xBBD3,0xBBF8,0xBBF9,0xBBFC,0xBBFF,0xBC00, - 0xBC02,0xBC08,0xBC09,0xBC0B,0xBC0C,0xBC0D,0xBC0F,0xBC11, - 0xBC14,0xBC15,0xBC16,0xBC17,0xBC18,0xBC1B,0xBC1C,0xBC1D, - 0xBC1E,0xBC1F,0xBC24,0xBC25,0xBC27,0xBC29,0xBC2D,0xBC30, - 0xBC31,0xBC34,0xBC38,0xBC40,0xBC41,0xBC43,0xBC44,0xBC45, - 0xBC49,0xBC4C,0xBC4D,0xBC50,0xBC5D,0xBC84,0xBC85,0xBC88, - 0xBC8B,0xBC8C,0xBC8E,0xBC94,0xBC95,0xBC97, - /* Range 0x3A21 - 0x3A7E, array index: 0x08A3 */ - 0xBC99,0xBC9A,0xBCA0,0xBCA1,0xBCA4,0xBCA7,0xBCA8,0xBCB0, - 0xBCB1,0xBCB3,0xBCB4,0xBCB5,0xBCBC,0xBCBD,0xBCC0,0xBCC4, - 0xBCCD,0xBCCF,0xBCD0,0xBCD1,0xBCD5,0xBCD8,0xBCDC,0xBCF4, - 0xBCF5,0xBCF6,0xBCF8,0xBCFC,0xBD04,0xBD05,0xBD07,0xBD09, - 0xBD10,0xBD14,0xBD24,0xBD2C,0xBD40,0xBD48,0xBD49,0xBD4C, - 0xBD50,0xBD58,0xBD59,0xBD64,0xBD68,0xBD80,0xBD81,0xBD84, - 0xBD87,0xBD88,0xBD89,0xBD8A,0xBD90,0xBD91,0xBD93,0xBD95, - 0xBD99,0xBD9A,0xBD9C,0xBDA4,0xBDB0,0xBDB8,0xBDD4,0xBDD5, - 0xBDD8,0xBDDC,0xBDE9,0xBDF0,0xBDF4,0xBDF8,0xBE00,0xBE03, - 0xBE05,0xBE0C,0xBE0D,0xBE10,0xBE14,0xBE1C,0xBE1D,0xBE1F, - 0xBE44,0xBE45,0xBE48,0xBE4C,0xBE4E,0xBE54,0xBE55,0xBE57, - 0xBE59,0xBE5A,0xBE5B,0xBE60,0xBE61,0xBE64, - /* Range 0x3B21 - 0x3B7E, array index: 0x0901 */ - 0xBE68,0xBE6A,0xBE70,0xBE71,0xBE73,0xBE74,0xBE75,0xBE7B, - 0xBE7C,0xBE7D,0xBE80,0xBE84,0xBE8C,0xBE8D,0xBE8F,0xBE90, - 0xBE91,0xBE98,0xBE99,0xBEA8,0xBED0,0xBED1,0xBED4,0xBED7, - 0xBED8,0xBEE0,0xBEE3,0xBEE4,0xBEE5,0xBEEC,0xBF01,0xBF08, - 0xBF09,0xBF18,0xBF19,0xBF1B,0xBF1C,0xBF1D,0xBF40,0xBF41, - 0xBF44,0xBF48,0xBF50,0xBF51,0xBF55,0xBF94,0xBFB0,0xBFC5, - 0xBFCC,0xBFCD,0xBFD0,0xBFD4,0xBFDC,0xBFDF,0xBFE1,0xC03C, - 0xC051,0xC058,0xC05C,0xC060,0xC068,0xC069,0xC090,0xC091, - 0xC094,0xC098,0xC0A0,0xC0A1,0xC0A3,0xC0A5,0xC0AC,0xC0AD, - 0xC0AF,0xC0B0,0xC0B3,0xC0B4,0xC0B5,0xC0B6,0xC0BC,0xC0BD, - 0xC0BF,0xC0C0,0xC0C1,0xC0C5,0xC0C8,0xC0C9,0xC0CC,0xC0D0, - 0xC0D8,0xC0D9,0xC0DB,0xC0DC,0xC0DD,0xC0E4, - /* Range 0x3C21 - 0x3C7E, array index: 0x095F */ - 0xC0E5,0xC0E8,0xC0EC,0xC0F4,0xC0F5,0xC0F7,0xC0F9,0xC100, - 0xC104,0xC108,0xC110,0xC115,0xC11C,0xC11D,0xC11E,0xC11F, - 0xC120,0xC123,0xC124,0xC126,0xC127,0xC12C,0xC12D,0xC12F, - 0xC130,0xC131,0xC136,0xC138,0xC139,0xC13C,0xC140,0xC148, - 0xC149,0xC14B,0xC14C,0xC14D,0xC154,0xC155,0xC158,0xC15C, - 0xC164,0xC165,0xC167,0xC168,0xC169,0xC170,0xC174,0xC178, - 0xC185,0xC18C,0xC18D,0xC18E,0xC190,0xC194,0xC196,0xC19C, - 0xC19D,0xC19F,0xC1A1,0xC1A5,0xC1A8,0xC1A9,0xC1AC,0xC1B0, - 0xC1BD,0xC1C4,0xC1C8,0xC1CC,0xC1D4,0xC1D7,0xC1D8,0xC1E0, - 0xC1E4,0xC1E8,0xC1F0,0xC1F1,0xC1F3,0xC1FC,0xC1FD,0xC200, - 0xC204,0xC20C,0xC20D,0xC20F,0xC211,0xC218,0xC219,0xC21C, - 0xC21F,0xC220,0xC228,0xC229,0xC22B,0xC22D, - /* Range 0x3D21 - 0x3D7E, array index: 0x09BD */ - 0xC22F,0xC231,0xC232,0xC234,0xC248,0xC250,0xC251,0xC254, - 0xC258,0xC260,0xC265,0xC26C,0xC26D,0xC270,0xC274,0xC27C, - 0xC27D,0xC27F,0xC281,0xC288,0xC289,0xC290,0xC298,0xC29B, - 0xC29D,0xC2A4,0xC2A5,0xC2A8,0xC2AC,0xC2AD,0xC2B4,0xC2B5, - 0xC2B7,0xC2B9,0xC2DC,0xC2DD,0xC2E0,0xC2E3,0xC2E4,0xC2EB, - 0xC2EC,0xC2ED,0xC2EF,0xC2F1,0xC2F6,0xC2F8,0xC2F9,0xC2FB, - 0xC2FC,0xC300,0xC308,0xC309,0xC30C,0xC30D,0xC313,0xC314, - 0xC315,0xC318,0xC31C,0xC324,0xC325,0xC328,0xC329,0xC345, - 0xC368,0xC369,0xC36C,0xC370,0xC372,0xC378,0xC379,0xC37C, - 0xC37D,0xC384,0xC388,0xC38C,0xC3C0,0xC3D8,0xC3D9,0xC3DC, - 0xC3DF,0xC3E0,0xC3E2,0xC3E8,0xC3E9,0xC3ED,0xC3F4,0xC3F5, - 0xC3F8,0xC408,0xC410,0xC424,0xC42C,0xC430, - /* Range 0x3E21 - 0x3E7E, array index: 0x0A1B */ - 0xC434,0xC43C,0xC43D,0xC448,0xC464,0xC465,0xC468,0xC46C, - 0xC474,0xC475,0xC479,0xC480,0xC494,0xC49C,0xC4B8,0xC4BC, - 0xC4E9,0xC4F0,0xC4F1,0xC4F4,0xC4F8,0xC4FA,0xC4FF,0xC500, - 0xC501,0xC50C,0xC510,0xC514,0xC51C,0xC528,0xC529,0xC52C, - 0xC530,0xC538,0xC539,0xC53B,0xC53D,0xC544,0xC545,0xC548, - 0xC549,0xC54A,0xC54C,0xC54D,0xC54E,0xC553,0xC554,0xC555, - 0xC557,0xC558,0xC559,0xC55D,0xC55E,0xC560,0xC561,0xC564, - 0xC568,0xC570,0xC571,0xC573,0xC574,0xC575,0xC57C,0xC57D, - 0xC580,0xC584,0xC587,0xC58C,0xC58D,0xC58F,0xC591,0xC595, - 0xC597,0xC598,0xC59C,0xC5A0,0xC5A9,0xC5B4,0xC5B5,0xC5B8, - 0xC5B9,0xC5BB,0xC5BC,0xC5BD,0xC5BE,0xC5C4,0xC5C5,0xC5C6, - 0xC5C7,0xC5C8,0xC5C9,0xC5CA,0xC5CC,0xC5CE, - /* Range 0x3F21 - 0x3F7E, array index: 0x0A79 */ - 0xC5D0,0xC5D1,0xC5D4,0xC5D8,0xC5E0,0xC5E1,0xC5E3,0xC5E5, - 0xC5EC,0xC5ED,0xC5EE,0xC5F0,0xC5F4,0xC5F6,0xC5F7,0xC5FC, - 0xC5FD,0xC5FE,0xC5FF,0xC600,0xC601,0xC605,0xC606,0xC607, - 0xC608,0xC60C,0xC610,0xC618,0xC619,0xC61B,0xC61C,0xC624, - 0xC625,0xC628,0xC62C,0xC62D,0xC62E,0xC630,0xC633,0xC634, - 0xC635,0xC637,0xC639,0xC63B,0xC640,0xC641,0xC644,0xC648, - 0xC650,0xC651,0xC653,0xC654,0xC655,0xC65C,0xC65D,0xC660, - 0xC66C,0xC66F,0xC671,0xC678,0xC679,0xC67C,0xC680,0xC688, - 0xC689,0xC68B,0xC68D,0xC694,0xC695,0xC698,0xC69C,0xC6A4, - 0xC6A5,0xC6A7,0xC6A9,0xC6B0,0xC6B1,0xC6B4,0xC6B8,0xC6B9, - 0xC6BA,0xC6C0,0xC6C1,0xC6C3,0xC6C5,0xC6CC,0xC6CD,0xC6D0, - 0xC6D4,0xC6DC,0xC6DD,0xC6E0,0xC6E1,0xC6E8, - /* Range 0x4021 - 0x407E, array index: 0x0AD7 */ - 0xC6E9,0xC6EC,0xC6F0,0xC6F8,0xC6F9,0xC6FD,0xC704,0xC705, - 0xC708,0xC70C,0xC714,0xC715,0xC717,0xC719,0xC720,0xC721, - 0xC724,0xC728,0xC730,0xC731,0xC733,0xC735,0xC737,0xC73C, - 0xC73D,0xC740,0xC744,0xC74A,0xC74C,0xC74D,0xC74F,0xC751, - 0xC752,0xC753,0xC754,0xC755,0xC756,0xC757,0xC758,0xC75C, - 0xC760,0xC768,0xC76B,0xC774,0xC775,0xC778,0xC77C,0xC77D, - 0xC77E,0xC783,0xC784,0xC785,0xC787,0xC788,0xC789,0xC78A, - 0xC78E,0xC790,0xC791,0xC794,0xC796,0xC797,0xC798,0xC79A, - 0xC7A0,0xC7A1,0xC7A3,0xC7A4,0xC7A5,0xC7A6,0xC7AC,0xC7AD, - 0xC7B0,0xC7B4,0xC7BC,0xC7BD,0xC7BF,0xC7C0,0xC7C1,0xC7C8, - 0xC7C9,0xC7CC,0xC7CE,0xC7D0,0xC7D8,0xC7DD,0xC7E4,0xC7E8, - 0xC7EC,0xC800,0xC801,0xC804,0xC808,0xC80A, - /* Range 0x4121 - 0x417E, array index: 0x0B35 */ - 0xC810,0xC811,0xC813,0xC815,0xC816,0xC81C,0xC81D,0xC820, - 0xC824,0xC82C,0xC82D,0xC82F,0xC831,0xC838,0xC83C,0xC840, - 0xC848,0xC849,0xC84C,0xC84D,0xC854,0xC870,0xC871,0xC874, - 0xC878,0xC87A,0xC880,0xC881,0xC883,0xC885,0xC886,0xC887, - 0xC88B,0xC88C,0xC88D,0xC894,0xC89D,0xC89F,0xC8A1,0xC8A8, - 0xC8BC,0xC8BD,0xC8C4,0xC8C8,0xC8CC,0xC8D4,0xC8D5,0xC8D7, - 0xC8D9,0xC8E0,0xC8E1,0xC8E4,0xC8F5,0xC8FC,0xC8FD,0xC900, - 0xC904,0xC905,0xC906,0xC90C,0xC90D,0xC90F,0xC911,0xC918, - 0xC92C,0xC934,0xC950,0xC951,0xC954,0xC958,0xC960,0xC961, - 0xC963,0xC96C,0xC970,0xC974,0xC97C,0xC988,0xC989,0xC98C, - 0xC990,0xC998,0xC999,0xC99B,0xC99D,0xC9C0,0xC9C1,0xC9C4, - 0xC9C7,0xC9C8,0xC9CA,0xC9D0,0xC9D1,0xC9D3, - /* Range 0x4221 - 0x427E, array index: 0x0B93 */ - 0xC9D5,0xC9D6,0xC9D9,0xC9DA,0xC9DC,0xC9DD,0xC9E0,0xC9E2, - 0xC9E4,0xC9E7,0xC9EC,0xC9ED,0xC9EF,0xC9F0,0xC9F1,0xC9F8, - 0xC9F9,0xC9FC,0xCA00,0xCA08,0xCA09,0xCA0B,0xCA0C,0xCA0D, - 0xCA14,0xCA18,0xCA29,0xCA4C,0xCA4D,0xCA50,0xCA54,0xCA5C, - 0xCA5D,0xCA5F,0xCA60,0xCA61,0xCA68,0xCA7D,0xCA84,0xCA98, - 0xCABC,0xCABD,0xCAC0,0xCAC4,0xCACC,0xCACD,0xCACF,0xCAD1, - 0xCAD3,0xCAD8,0xCAD9,0xCAE0,0xCAEC,0xCAF4,0xCB08,0xCB10, - 0xCB14,0xCB18,0xCB20,0xCB21,0xCB41,0xCB48,0xCB49,0xCB4C, - 0xCB50,0xCB58,0xCB59,0xCB5D,0xCB64,0xCB78,0xCB79,0xCB9C, - 0xCBB8,0xCBD4,0xCBE4,0xCBE7,0xCBE9,0xCC0C,0xCC0D,0xCC10, - 0xCC14,0xCC1C,0xCC1D,0xCC21,0xCC22,0xCC27,0xCC28,0xCC29, - 0xCC2C,0xCC2E,0xCC30,0xCC38,0xCC39,0xCC3B, - /* Range 0x4321 - 0x437E, array index: 0x0BF1 */ - 0xCC3C,0xCC3D,0xCC3E,0xCC44,0xCC45,0xCC48,0xCC4C,0xCC54, - 0xCC55,0xCC57,0xCC58,0xCC59,0xCC60,0xCC64,0xCC66,0xCC68, - 0xCC70,0xCC75,0xCC98,0xCC99,0xCC9C,0xCCA0,0xCCA8,0xCCA9, - 0xCCAB,0xCCAC,0xCCAD,0xCCB4,0xCCB5,0xCCB8,0xCCBC,0xCCC4, - 0xCCC5,0xCCC7,0xCCC9,0xCCD0,0xCCD4,0xCCE4,0xCCEC,0xCCF0, - 0xCD01,0xCD08,0xCD09,0xCD0C,0xCD10,0xCD18,0xCD19,0xCD1B, - 0xCD1D,0xCD24,0xCD28,0xCD2C,0xCD39,0xCD5C,0xCD60,0xCD64, - 0xCD6C,0xCD6D,0xCD6F,0xCD71,0xCD78,0xCD88,0xCD94,0xCD95, - 0xCD98,0xCD9C,0xCDA4,0xCDA5,0xCDA7,0xCDA9,0xCDB0,0xCDC4, - 0xCDCC,0xCDD0,0xCDE8,0xCDEC,0xCDF0,0xCDF8,0xCDF9,0xCDFB, - 0xCDFD,0xCE04,0xCE08,0xCE0C,0xCE14,0xCE19,0xCE20,0xCE21, - 0xCE24,0xCE28,0xCE30,0xCE31,0xCE33,0xCE35, - /* Range 0x4421 - 0x447E, array index: 0x0C4F */ - 0xCE58,0xCE59,0xCE5C,0xCE5F,0xCE60,0xCE61,0xCE68,0xCE69, - 0xCE6B,0xCE6D,0xCE74,0xCE75,0xCE78,0xCE7C,0xCE84,0xCE85, - 0xCE87,0xCE89,0xCE90,0xCE91,0xCE94,0xCE98,0xCEA0,0xCEA1, - 0xCEA3,0xCEA4,0xCEA5,0xCEAC,0xCEAD,0xCEC1,0xCEE4,0xCEE5, - 0xCEE8,0xCEEB,0xCEEC,0xCEF4,0xCEF5,0xCEF7,0xCEF8,0xCEF9, - 0xCF00,0xCF01,0xCF04,0xCF08,0xCF10,0xCF11,0xCF13,0xCF15, - 0xCF1C,0xCF20,0xCF24,0xCF2C,0xCF2D,0xCF2F,0xCF30,0xCF31, - 0xCF38,0xCF54,0xCF55,0xCF58,0xCF5C,0xCF64,0xCF65,0xCF67, - 0xCF69,0xCF70,0xCF71,0xCF74,0xCF78,0xCF80,0xCF85,0xCF8C, - 0xCFA1,0xCFA8,0xCFB0,0xCFC4,0xCFE0,0xCFE1,0xCFE4,0xCFE8, - 0xCFF0,0xCFF1,0xCFF3,0xCFF5,0xCFFC,0xD000,0xD004,0xD011, - 0xD018,0xD02D,0xD034,0xD035,0xD038,0xD03C, - /* Range 0x4521 - 0x457E, array index: 0x0CAD */ - 0xD044,0xD045,0xD047,0xD049,0xD050,0xD054,0xD058,0xD060, - 0xD06C,0xD06D,0xD070,0xD074,0xD07C,0xD07D,0xD081,0xD0A4, - 0xD0A5,0xD0A8,0xD0AC,0xD0B4,0xD0B5,0xD0B7,0xD0B9,0xD0C0, - 0xD0C1,0xD0C4,0xD0C8,0xD0C9,0xD0D0,0xD0D1,0xD0D3,0xD0D4, - 0xD0D5,0xD0DC,0xD0DD,0xD0E0,0xD0E4,0xD0EC,0xD0ED,0xD0EF, - 0xD0F0,0xD0F1,0xD0F8,0xD10D,0xD130,0xD131,0xD134,0xD138, - 0xD13A,0xD140,0xD141,0xD143,0xD144,0xD145,0xD14C,0xD14D, - 0xD150,0xD154,0xD15C,0xD15D,0xD15F,0xD161,0xD168,0xD16C, - 0xD17C,0xD184,0xD188,0xD1A0,0xD1A1,0xD1A4,0xD1A8,0xD1B0, - 0xD1B1,0xD1B3,0xD1B5,0xD1BA,0xD1BC,0xD1C0,0xD1D8,0xD1F4, - 0xD1F8,0xD207,0xD209,0xD210,0xD22C,0xD22D,0xD230,0xD234, - 0xD23C,0xD23D,0xD23F,0xD241,0xD248,0xD25C, - /* Range 0x4621 - 0x467E, array index: 0x0D0B */ - 0xD264,0xD280,0xD281,0xD284,0xD288,0xD290,0xD291,0xD295, - 0xD29C,0xD2A0,0xD2A4,0xD2AC,0xD2B1,0xD2B8,0xD2B9,0xD2BC, - 0xD2BF,0xD2C0,0xD2C2,0xD2C8,0xD2C9,0xD2CB,0xD2D4,0xD2D8, - 0xD2DC,0xD2E4,0xD2E5,0xD2F0,0xD2F1,0xD2F4,0xD2F8,0xD300, - 0xD301,0xD303,0xD305,0xD30C,0xD30D,0xD30E,0xD310,0xD314, - 0xD316,0xD31C,0xD31D,0xD31F,0xD320,0xD321,0xD325,0xD328, - 0xD329,0xD32C,0xD330,0xD338,0xD339,0xD33B,0xD33C,0xD33D, - 0xD344,0xD345,0xD37C,0xD37D,0xD380,0xD384,0xD38C,0xD38D, - 0xD38F,0xD390,0xD391,0xD398,0xD399,0xD39C,0xD3A0,0xD3A8, - 0xD3A9,0xD3AB,0xD3AD,0xD3B4,0xD3B8,0xD3BC,0xD3C4,0xD3C5, - 0xD3C8,0xD3C9,0xD3D0,0xD3D8,0xD3E1,0xD3E3,0xD3EC,0xD3ED, - 0xD3F0,0xD3F4,0xD3FC,0xD3FD,0xD3FF,0xD401, - /* Range 0x4721 - 0x477E, array index: 0x0D69 */ - 0xD408,0xD41D,0xD440,0xD444,0xD45C,0xD460,0xD464,0xD46D, - 0xD46F,0xD478,0xD479,0xD47C,0xD47F,0xD480,0xD482,0xD488, - 0xD489,0xD48B,0xD48D,0xD494,0xD4A9,0xD4CC,0xD4D0,0xD4D4, - 0xD4DC,0xD4DF,0xD4E8,0xD4EC,0xD4F0,0xD4F8,0xD4FB,0xD4FD, - 0xD504,0xD508,0xD50C,0xD514,0xD515,0xD517,0xD53C,0xD53D, - 0xD540,0xD544,0xD54C,0xD54D,0xD54F,0xD551,0xD558,0xD559, - 0xD55C,0xD560,0xD565,0xD568,0xD569,0xD56B,0xD56D,0xD574, - 0xD575,0xD578,0xD57C,0xD584,0xD585,0xD587,0xD588,0xD589, - 0xD590,0xD5A5,0xD5C8,0xD5C9,0xD5CC,0xD5D0,0xD5D2,0xD5D8, - 0xD5D9,0xD5DB,0xD5DD,0xD5E4,0xD5E5,0xD5E8,0xD5EC,0xD5F4, - 0xD5F5,0xD5F7,0xD5F9,0xD600,0xD601,0xD604,0xD608,0xD610, - 0xD611,0xD613,0xD614,0xD615,0xD61C,0xD620, - /* Range 0x4821 - 0x487E, array index: 0x0DC7 */ - 0xD624,0xD62D,0xD638,0xD639,0xD63C,0xD640,0xD645,0xD648, - 0xD649,0xD64B,0xD64D,0xD651,0xD654,0xD655,0xD658,0xD65C, - 0xD667,0xD669,0xD670,0xD671,0xD674,0xD683,0xD685,0xD68C, - 0xD68D,0xD690,0xD694,0xD69D,0xD69F,0xD6A1,0xD6A8,0xD6AC, - 0xD6B0,0xD6B9,0xD6BB,0xD6C4,0xD6C5,0xD6C8,0xD6CC,0xD6D1, - 0xD6D4,0xD6D7,0xD6D9,0xD6E0,0xD6E4,0xD6E8,0xD6F0,0xD6F5, - 0xD6FC,0xD6FD,0xD700,0xD704,0xD711,0xD718,0xD719,0xD71C, - 0xD720,0xD728,0xD729,0xD72B,0xD72D,0xD734,0xD735,0xD738, - 0xD73C,0xD744,0xD747,0xD749,0xD750,0xD751,0xD754,0xD756, - 0xD757,0xD758,0xD759,0xD760,0xD761,0xD763,0xD765,0xD769, - 0xD76C,0xD770,0xD774,0xD77C,0xD77D,0xD781,0xD788,0xD789, - 0xD78C,0xD790,0xD798,0xD799,0xD79B,0xD79D, - /* Range 0x4A21 - 0x4A7E, array index: 0x0E25 */ - 0x4F3D,0x4F73,0x5047,0x50F9,0x52A0,0x53EF,0x5475,0x54E5, - 0x5609,0x5AC1,0x5BB6,0x6687,0x67B6,0x67B7,0x67EF,0x6B4C, - 0x73C2,0x75C2,0x7A3C,0x82DB,0x8304,0x8857,0x8888,0x8A36, - 0x8CC8,0x8DCF,0x8EFB,0x8FE6,0x99D5,0x523B,0x5374,0x5404, - 0x606A,0x6164,0x6BBC,0x73CF,0x811A,0x89BA,0x89D2,0x95A3, - 0x4F83,0x520A,0x58BE,0x5978,0x59E6,0x5E72,0x5E79,0x61C7, - 0x63C0,0x6746,0x67EC,0x687F,0x6F97,0x764E,0x770B,0x78F5, - 0x7A08,0x7AFF,0x7C21,0x809D,0x826E,0x8271,0x8AEB,0x9593, - 0x4E6B,0x559D,0x66F7,0x6E34,0x78A3,0x7AED,0x845B,0x8910, - 0x874E,0x97A8,0x52D8,0x574E,0x582A,0x5D4C,0x611F,0x61BE, - 0x6221,0x6562,0x67D1,0x6A44,0x6E1B,0x7518,0x75B3,0x76E3, - 0x77B0,0x7D3A,0x90AF,0x9451,0x9452,0x9F95, - /* Range 0x4B21 - 0x4B7E, array index: 0x0E83 */ - 0x5323,0x5CAC,0x7532,0x80DB,0x9240,0x9598,0x525B,0x5808, - 0x59DC,0x5CA1,0x5D17,0x5EB7,0x5F3A,0x5F4A,0x6177,0x6C5F, - 0x757A,0x7586,0x7CE0,0x7D73,0x7DB1,0x7F8C,0x8154,0x8221, - 0x8591,0x8941,0x8B1B,0x92FC,0x964D,0x9C47,0x4ECB,0x4EF7, - 0x500B,0x51F1,0x584F,0x6137,0x613E,0x6168,0x6539,0x69EA, - 0x6F11,0x75A5,0x7686,0x76D6,0x7B87,0x82A5,0x84CB,0xF900, - 0x93A7,0x958B,0x5580,0x5BA2,0x5751,0xF901,0x7CB3,0x7FB9, - 0x91B5,0x5028,0x53BB,0x5C45,0x5DE8,0x62D2,0x636E,0x64DA, - 0x64E7,0x6E20,0x70AC,0x795B,0x8DDD,0x8E1E,0xF902,0x907D, - 0x9245,0x92F8,0x4E7E,0x4EF6,0x5065,0x5DFE,0x5EFA,0x6106, - 0x6957,0x8171,0x8654,0x8E47,0x9375,0x9A2B,0x4E5E,0x5091, - 0x6770,0x6840,0x5109,0x528D,0x5292,0x6AA2, - /* Range 0x4C21 - 0x4C7E, array index: 0x0EE1 */ - 0x77BC,0x9210,0x9ED4,0x52AB,0x602F,0x8FF2,0x5048,0x61A9, - 0x63ED,0x64CA,0x683C,0x6A84,0x6FC0,0x8188,0x89A1,0x9694, - 0x5805,0x727D,0x72AC,0x7504,0x7D79,0x7E6D,0x80A9,0x898B, - 0x8B74,0x9063,0x9D51,0x6289,0x6C7A,0x6F54,0x7D50,0x7F3A, - 0x8A23,0x517C,0x614A,0x7B9D,0x8B19,0x9257,0x938C,0x4EAC, - 0x4FD3,0x501E,0x50BE,0x5106,0x52C1,0x52CD,0x537F,0x5770, - 0x5883,0x5E9A,0x5F91,0x6176,0x61AC,0x64CE,0x656C,0x666F, - 0x66BB,0x66F4,0x6897,0x6D87,0x7085,0x70F1,0x749F,0x74A5, - 0x74CA,0x75D9,0x786C,0x78EC,0x7ADF,0x7AF6,0x7D45,0x7D93, - 0x8015,0x803F,0x811B,0x8396,0x8B66,0x8F15,0x9015,0x93E1, - 0x9803,0x9838,0x9A5A,0x9BE8,0x4FC2,0x5553,0x583A,0x5951, - 0x5B63,0x5C46,0x60B8,0x6212,0x6842,0x68B0, - /* Range 0x4D21 - 0x4D7E, array index: 0x0F3F */ - 0x68E8,0x6EAA,0x754C,0x7678,0x78CE,0x7A3D,0x7CFB,0x7E6B, - 0x7E7C,0x8A08,0x8AA1,0x8C3F,0x968E,0x9DC4,0x53E4,0x53E9, - 0x544A,0x5471,0x56FA,0x59D1,0x5B64,0x5C3B,0x5EAB,0x62F7, - 0x6537,0x6545,0x6572,0x66A0,0x67AF,0x69C1,0x6CBD,0x75FC, - 0x7690,0x777E,0x7A3F,0x7F94,0x8003,0x80A1,0x818F,0x82E6, - 0x82FD,0x83F0,0x85C1,0x8831,0x88B4,0x8AA5,0xF903,0x8F9C, - 0x932E,0x96C7,0x9867,0x9AD8,0x9F13,0x54ED,0x659B,0x66F2, - 0x688F,0x7A40,0x8C37,0x9D60,0x56F0,0x5764,0x5D11,0x6606, - 0x68B1,0x68CD,0x6EFE,0x7428,0x889E,0x9BE4,0x6C68,0xF904, - 0x9AA8,0x4F9B,0x516C,0x5171,0x529F,0x5B54,0x5DE5,0x6050, - 0x606D,0x62F1,0x63A7,0x653B,0x73D9,0x7A7A,0x86A3,0x8CA2, - 0x978F,0x4E32,0x5BE1,0x6208,0x679C,0x74DC, - /* Range 0x4E21 - 0x4E7E, array index: 0x0F9D */ - 0x79D1,0x83D3,0x8A87,0x8AB2,0x8DE8,0x904E,0x934B,0x9846, - 0x5ED3,0x69E8,0x85FF,0x90ED,0xF905,0x51A0,0x5B98,0x5BEC, - 0x6163,0x68FA,0x6B3E,0x704C,0x742F,0x74D8,0x7BA1,0x7F50, - 0x83C5,0x89C0,0x8CAB,0x95DC,0x9928,0x522E,0x605D,0x62EC, - 0x9002,0x4F8A,0x5149,0x5321,0x58D9,0x5EE3,0x66E0,0x6D38, - 0x709A,0x72C2,0x73D6,0x7B50,0x80F1,0x945B,0x5366,0x639B, - 0x7F6B,0x4E56,0x5080,0x584A,0x58DE,0x602A,0x6127,0x62D0, - 0x69D0,0x9B41,0x5B8F,0x7D18,0x80B1,0x8F5F,0x4EA4,0x50D1, - 0x54AC,0x55AC,0x5B0C,0x5DA0,0x5DE7,0x652A,0x654E,0x6821, - 0x6A4B,0x72E1,0x768E,0x77EF,0x7D5E,0x7FF9,0x81A0,0x854E, - 0x86DF,0x8F03,0x8F4E,0x90CA,0x9903,0x9A55,0x9BAB,0x4E18, - 0x4E45,0x4E5D,0x4EC7,0x4FF1,0x5177,0x52FE, - /* Range 0x4F21 - 0x4F7E, array index: 0x0FFB */ - 0x5340,0x53E3,0x53E5,0x548E,0x5614,0x5775,0x57A2,0x5BC7, - 0x5D87,0x5ED0,0x61FC,0x62D8,0x6551,0x67B8,0x67E9,0x69CB, - 0x6B50,0x6BC6,0x6BEC,0x6C42,0x6E9D,0x7078,0x72D7,0x7396, - 0x7403,0x77BF,0x77E9,0x7A76,0x7D7F,0x8009,0x81FC,0x8205, - 0x820A,0x82DF,0x8862,0x8B33,0x8CFC,0x8EC0,0x9011,0x90B1, - 0x9264,0x92B6,0x99D2,0x9A45,0x9CE9,0x9DD7,0x9F9C,0x570B, - 0x5C40,0x83CA,0x97A0,0x97AB,0x9EB4,0x541B,0x7A98,0x7FA4, - 0x88D9,0x8ECD,0x90E1,0x5800,0x5C48,0x6398,0x7A9F,0x5BAE, - 0x5F13,0x7A79,0x7AAE,0x828E,0x8EAC,0x5026,0x5238,0x52F8, - 0x5377,0x5708,0x62F3,0x6372,0x6B0A,0x6DC3,0x7737,0x53A5, - 0x7357,0x8568,0x8E76,0x95D5,0x673A,0x6AC3,0x6F70,0x8A6D, - 0x8ECC,0x994B,0xF906,0x6677,0x6B78,0x8CB4, - /* Range 0x5021 - 0x507E, array index: 0x1059 */ - 0x9B3C,0xF907,0x53EB,0x572D,0x594E,0x63C6,0x69FB,0x73EA, - 0x7845,0x7ABA,0x7AC5,0x7CFE,0x8475,0x898F,0x8D73,0x9035, - 0x95A8,0x52FB,0x5747,0x7547,0x7B60,0x83CC,0x921E,0xF908, - 0x6A58,0x514B,0x524B,0x5287,0x621F,0x68D8,0x6975,0x9699, - 0x50C5,0x52A4,0x52E4,0x61C3,0x65A4,0x6839,0x69FF,0x747E, - 0x7B4B,0x82B9,0x83EB,0x89B2,0x8B39,0x8FD1,0x9949,0xF909, - 0x4ECA,0x5997,0x64D2,0x6611,0x6A8E,0x7434,0x7981,0x79BD, - 0x82A9,0x887E,0x887F,0x895F,0xF90A,0x9326,0x4F0B,0x53CA, - 0x6025,0x6271,0x6C72,0x7D1A,0x7D66,0x4E98,0x5162,0x77DC, - 0x80AF,0x4F01,0x4F0E,0x5176,0x5180,0x55DC,0x5668,0x573B, - 0x57FA,0x57FC,0x5914,0x5947,0x5993,0x5BC4,0x5C90,0x5D0E, - 0x5DF1,0x5E7E,0x5FCC,0x6280,0x65D7,0x65E3, - /* Range 0x5121 - 0x517E, array index: 0x10B7 */ - 0x671E,0x671F,0x675E,0x68CB,0x68C4,0x6A5F,0x6B3A,0x6C23, - 0x6C7D,0x6C82,0x6DC7,0x7398,0x7426,0x742A,0x7482,0x74A3, - 0x7578,0x757F,0x7881,0x78EF,0x7941,0x7947,0x7948,0x797A, - 0x7B95,0x7D00,0x7DBA,0x7F88,0x8006,0x802D,0x808C,0x8A18, - 0x8B4F,0x8C48,0x8D77,0x9321,0x9324,0x98E2,0x9951,0x9A0E, - 0x9A0F,0x9A65,0x9E92,0x7DCA,0x4F76,0x5409,0x62EE,0x6854, - 0x91D1,0x55AB,0x513A,0xF90B,0xF90C,0x5A1C,0x61E6,0xF90D, - 0x62CF,0x62FF,0xF90E,0xF90F,0xF910,0xF911,0xF912,0xF913, - 0x90A3,0xF914,0xF915,0xF916,0xF917,0xF918,0x8AFE,0xF919, - 0xF91A,0xF91B,0xF91C,0x6696,0xF91D,0x7156,0xF91E,0xF91F, - 0x96E3,0xF920,0x634F,0x637A,0x5357,0xF921,0x678F,0x6960, - 0x6E73,0xF922,0x7537,0xF923,0xF924,0xF925, - /* Range 0x5221 - 0x527E, array index: 0x1115 */ - 0x7D0D,0xF926,0xF927,0x8872,0x56CA,0x5A18,0xF928,0xF929, - 0xF92A,0xF92B,0xF92C,0x4E43,0xF92D,0x5167,0x5948,0x67F0, - 0x8010,0xF92E,0x5973,0x5E74,0x649A,0x79CA,0x5FF5,0x606C, - 0x62C8,0x637B,0x5BE7,0x5BD7,0x52AA,0xF92F,0x5974,0x5F29, - 0x6012,0xF930,0xF931,0xF932,0x7459,0xF933,0xF934,0xF935, - 0xF936,0xF937,0xF938,0x99D1,0xF939,0xF93A,0xF93B,0xF93C, - 0xF93D,0xF93E,0xF93F,0xF940,0xF941,0xF942,0xF943,0x6FC3, - 0xF944,0xF945,0x81BF,0x8FB2,0x60F1,0xF946,0xF947,0x8166, - 0xF948,0xF949,0x5C3F,0xF94A,0xF94B,0xF94C,0xF94D,0xF94E, - 0xF94F,0xF950,0xF951,0x5AE9,0x8A25,0x677B,0x7D10,0xF952, - 0xF953,0xF954,0xF955,0xF956,0xF957,0x80FD,0xF958,0xF959, - 0x5C3C,0x6CE5,0x533F,0x6EBA,0x591A,0x8336, - /* Range 0x5321 - 0x537E, array index: 0x1173 */ - 0x4E39,0x4EB6,0x4F46,0x55AE,0x5718,0x58C7,0x5F56,0x65B7, - 0x65E6,0x6A80,0x6BB5,0x6E4D,0x77ED,0x7AEF,0x7C1E,0x7DDE, - 0x86CB,0x8892,0x9132,0x935B,0x64BB,0x6FBE,0x737A,0x75B8, - 0x9054,0x5556,0x574D,0x61BA,0x64D4,0x66C7,0x6DE1,0x6E5B, - 0x6F6D,0x6FB9,0x75F0,0x8043,0x81BD,0x8541,0x8983,0x8AC7, - 0x8B5A,0x931F,0x6C93,0x7553,0x7B54,0x8E0F,0x905D,0x5510, - 0x5802,0x5858,0x5E62,0x6207,0x649E,0x68E0,0x7576,0x7CD6, - 0x87B3,0x9EE8,0x4EE3,0x5788,0x576E,0x5927,0x5C0D,0x5CB1, - 0x5E36,0x5F85,0x6234,0x64E1,0x73B3,0x81FA,0x888B,0x8CB8, - 0x968A,0x9EDB,0x5B85,0x5FB7,0x60B3,0x5012,0x5200,0x5230, - 0x5716,0x5835,0x5857,0x5C0E,0x5C60,0x5CF6,0x5D8B,0x5EA6, - 0x5F92,0x60BC,0x6311,0x6389,0x6417,0x6843, - /* Range 0x5421 - 0x547E, array index: 0x11D1 */ - 0x68F9,0x6AC2,0x6DD8,0x6E21,0x6ED4,0x6FE4,0x71FE,0x76DC, - 0x7779,0x79B1,0x7A3B,0x8404,0x89A9,0x8CED,0x8DF3,0x8E48, - 0x9003,0x9014,0x9053,0x90FD,0x934D,0x9676,0x97DC,0x6BD2, - 0x7006,0x7258,0x72A2,0x7368,0x7763,0x79BF,0x7BE4,0x7E9B, - 0x8B80,0x58A9,0x60C7,0x6566,0x65FD,0x66BE,0x6C8C,0x711E, - 0x71C9,0x8C5A,0x9813,0x4E6D,0x7A81,0x4EDD,0x51AC,0x51CD, - 0x52D5,0x540C,0x61A7,0x6771,0x6850,0x68DF,0x6D1E,0x6F7C, - 0x75BC,0x77B3,0x7AE5,0x80F4,0x8463,0x9285,0x515C,0x6597, - 0x675C,0x6793,0x75D8,0x7AC7,0x8373,0xF95A,0x8C46,0x9017, - 0x982D,0x5C6F,0x81C0,0x829A,0x9041,0x906F,0x920D,0x5F97, - 0x5D9D,0x6A59,0x71C8,0x767B,0x7B49,0x85E4,0x8B04,0x9127, - 0x9A30,0x5587,0x61F6,0xF95B,0x7669,0x7F85, - /* Range 0x5521 - 0x557E, array index: 0x122F */ - 0x863F,0x87BA,0x88F8,0x908F,0xF95C,0x6D1B,0x70D9,0x73DE, - 0x7D61,0x843D,0xF95D,0x916A,0x99F1,0xF95E,0x4E82,0x5375, - 0x6B04,0x6B12,0x703E,0x721B,0x862D,0x9E1E,0x524C,0x8FA3, - 0x5D50,0x64E5,0x652C,0x6B16,0x6FEB,0x7C43,0x7E9C,0x85CD, - 0x8964,0x89BD,0x62C9,0x81D8,0x881F,0x5ECA,0x6717,0x6D6A, - 0x72FC,0x7405,0x746F,0x8782,0x90DE,0x4F86,0x5D0D,0x5FA0, - 0x840A,0x51B7,0x63A0,0x7565,0x4EAE,0x5006,0x5169,0x51C9, - 0x6881,0x6A11,0x7CAE,0x7CB1,0x7CE7,0x826F,0x8AD2,0x8F1B, - 0x91CF,0x4FB6,0x5137,0x52F5,0x5442,0x5EEC,0x616E,0x623E, - 0x65C5,0x6ADA,0x6FFE,0x792A,0x85DC,0x8823,0x95AD,0x9A62, - 0x9A6A,0x9E97,0x9ECE,0x529B,0x66C6,0x6B77,0x701D,0x792B, - 0x8F62,0x9742,0x6190,0x6200,0x6523,0x6F23, - /* Range 0x5621 - 0x567E, array index: 0x128D */ - 0x7149,0x7489,0x7DF4,0x806F,0x84EE,0x8F26,0x9023,0x934A, - 0x51BD,0x5217,0x52A3,0x6D0C,0x70C8,0x88C2,0x5EC9,0x6582, - 0x6BAE,0x6FC2,0x7C3E,0x7375,0x4EE4,0x4F36,0x56F9,0xF95F, - 0x5CBA,0x5DBA,0x601C,0x73B2,0x7B2D,0x7F9A,0x7FCE,0x8046, - 0x901E,0x9234,0x96F6,0x9748,0x9818,0x9F61,0x4F8B,0x6FA7, - 0x79AE,0x91B4,0x96B7,0x52DE,0xF960,0x6488,0x64C4,0x6AD3, - 0x6F5E,0x7018,0x7210,0x76E7,0x8001,0x8606,0x865C,0x8DEF, - 0x8F05,0x9732,0x9B6F,0x9DFA,0x9E75,0x788C,0x797F,0x7DA0, - 0x83C9,0x9304,0x9E7F,0x9E93,0x8AD6,0x58DF,0x5F04,0x6727, - 0x7027,0x74CF,0x7C60,0x807E,0x5121,0x7028,0x7262,0x78CA, - 0x8CC2,0x8CDA,0x8CF4,0x96F7,0x4E86,0x50DA,0x5BEE,0x5ED6, - 0x6599,0x71CE,0x7642,0x77AD,0x804A,0x84FC, - /* Range 0x5721 - 0x577E, array index: 0x12EB */ - 0x907C,0x9B27,0x9F8D,0x58D8,0x5A41,0x5C62,0x6A13,0x6DDA, - 0x6F0F,0x763B,0x7D2F,0x7E37,0x851E,0x8938,0x93E4,0x964B, - 0x5289,0x65D2,0x67F3,0x69B4,0x6D41,0x6E9C,0x700F,0x7409, - 0x7460,0x7559,0x7624,0x786B,0x8B2C,0x985E,0x516D,0x622E, - 0x9678,0x4F96,0x502B,0x5D19,0x6DEA,0x7DB8,0x8F2A,0x5F8B, - 0x6144,0x6817,0xF961,0x9686,0x52D2,0x808B,0x51DC,0x51CC, - 0x695E,0x7A1C,0x7DBE,0x83F1,0x9675,0x4FDA,0x5229,0x5398, - 0x540F,0x550E,0x5C65,0x60A7,0x674E,0x68A8,0x6D6C,0x7281, - 0x72F8,0x7406,0x7483,0xF962,0x75E2,0x7C6C,0x7F79,0x7FB8, - 0x8389,0x88CF,0x88E1,0x91CC,0x91D0,0x96E2,0x9BC9,0x541D, - 0x6F7E,0x71D0,0x7498,0x85FA,0x8EAA,0x96A3,0x9C57,0x9E9F, - 0x6797,0x6DCB,0x7433,0x81E8,0x9716,0x782C, - /* Range 0x5821 - 0x587E, array index: 0x1349 */ - 0x7ACB,0x7B20,0x7C92,0x6469,0x746A,0x75F2,0x78BC,0x78E8, - 0x99AC,0x9B54,0x9EBB,0x5BDE,0x5E55,0x6F20,0x819C,0x83AB, - 0x9088,0x4E07,0x534D,0x5A29,0x5DD2,0x5F4E,0x6162,0x633D, - 0x6669,0x66FC,0x6EFF,0x6F2B,0x7063,0x779E,0x842C,0x8513, - 0x883B,0x8F13,0x9945,0x9C3B,0x551C,0x62B9,0x672B,0x6CAB, - 0x8309,0x896A,0x977A,0x4EA1,0x5984,0x5FD8,0x5FD9,0x671B, - 0x7DB2,0x7F54,0x8292,0x832B,0x83BD,0x8F1E,0x9099,0x57CB, - 0x59B9,0x5A92,0x5BD0,0x6627,0x679A,0x6885,0x6BCF,0x7164, - 0x7F75,0x8CB7,0x8CE3,0x9081,0x9B45,0x8108,0x8C8A,0x964C, - 0x9A40,0x9EA5,0x5B5F,0x6C13,0x731B,0x76F2,0x76DF,0x840C, - 0x51AA,0x8993,0x514D,0x5195,0x52C9,0x68C9,0x6C94,0x7704, - 0x7720,0x7DBF,0x7DEC,0x9762,0x9EB5,0x6EC5, - /* Range 0x5921 - 0x597E, array index: 0x13A7 */ - 0x8511,0x51A5,0x540D,0x547D,0x660E,0x669D,0x6927,0x6E9F, - 0x76BF,0x7791,0x8317,0x84C2,0x879F,0x9169,0x9298,0x9CF4, - 0x8882,0x4FAE,0x5192,0x52DF,0x59C6,0x5E3D,0x6155,0x6478, - 0x6479,0x66AE,0x67D0,0x6A21,0x6BCD,0x6BDB,0x725F,0x7261, - 0x7441,0x7738,0x77DB,0x8017,0x82BC,0x8305,0x8B00,0x8B28, - 0x8C8C,0x6728,0x6C90,0x7267,0x76EE,0x7766,0x7A46,0x9DA9, - 0x6B7F,0x6C92,0x5922,0x6726,0x8499,0x536F,0x5893,0x5999, - 0x5EDF,0x63CF,0x6634,0x6773,0x6E3A,0x732B,0x7AD7,0x82D7, - 0x9328,0x52D9,0x5DEB,0x61AE,0x61CB,0x620A,0x62C7,0x64AB, - 0x65E0,0x6959,0x6B66,0x6BCB,0x7121,0x73F7,0x755D,0x7E46, - 0x821E,0x8302,0x856A,0x8AA3,0x8CBF,0x9727,0x9D61,0x58A8, - 0x9ED8,0x5011,0x520E,0x543B,0x554F,0x6587, - /* Range 0x5A21 - 0x5A7E, array index: 0x1405 */ - 0x6C76,0x7D0A,0x7D0B,0x805E,0x868A,0x9580,0x96EF,0x52FF, - 0x6C95,0x7269,0x5473,0x5A9A,0x5C3E,0x5D4B,0x5F4C,0x5FAE, - 0x672A,0x68B6,0x6963,0x6E3C,0x6E44,0x7709,0x7C73,0x7F8E, - 0x8587,0x8B0E,0x8FF7,0x9761,0x9EF4,0x5CB7,0x60B6,0x610D, - 0x61AB,0x654F,0x65FB,0x65FC,0x6C11,0x6CEF,0x739F,0x73C9, - 0x7DE1,0x9594,0x5BC6,0x871C,0x8B10,0x525D,0x535A,0x62CD, - 0x640F,0x64B2,0x6734,0x6A38,0x6CCA,0x73C0,0x749E,0x7B94, - 0x7C95,0x7E1B,0x818A,0x8236,0x8584,0x8FEB,0x96F9,0x99C1, - 0x4F34,0x534A,0x53CD,0x53DB,0x62CC,0x642C,0x6500,0x6591, - 0x69C3,0x6CEE,0x6F58,0x73ED,0x7554,0x7622,0x76E4,0x76FC, - 0x78D0,0x78FB,0x792C,0x7D46,0x822C,0x87E0,0x8FD4,0x9812, - 0x98EF,0x52C3,0x62D4,0x64A5,0x6E24,0x6F51, - /* Range 0x5B21 - 0x5B7E, array index: 0x1463 */ - 0x767C,0x8DCB,0x91B1,0x9262,0x9AEE,0x9B43,0x5023,0x508D, - 0x574A,0x59A8,0x5C28,0x5E47,0x5F77,0x623F,0x653E,0x65B9, - 0x65C1,0x6609,0x678B,0x699C,0x6EC2,0x78C5,0x7D21,0x80AA, - 0x8180,0x822B,0x82B3,0x84A1,0x868C,0x8A2A,0x8B17,0x90A6, - 0x9632,0x9F90,0x500D,0x4FF3,0xF963,0x57F9,0x5F98,0x62DC, - 0x6392,0x676F,0x6E43,0x7119,0x76C3,0x80CC,0x80DA,0x88F4, - 0x88F5,0x8919,0x8CE0,0x8F29,0x914D,0x966A,0x4F2F,0x4F70, - 0x5E1B,0x67CF,0x6822,0x767D,0x767E,0x9B44,0x5E61,0x6A0A, - 0x7169,0x71D4,0x756A,0xF964,0x7E41,0x8543,0x85E9,0x98DC, - 0x4F10,0x7B4F,0x7F70,0x95A5,0x51E1,0x5E06,0x68B5,0x6C3E, - 0x6C4E,0x6CDB,0x72AF,0x7BC4,0x8303,0x6CD5,0x743A,0x50FB, - 0x5288,0x58C1,0x64D8,0x6A97,0x74A7,0x7656, - /* Range 0x5C21 - 0x5C7E, array index: 0x14C1 */ - 0x78A7,0x8617,0x95E2,0x9739,0xF965,0x535E,0x5F01,0x8B8A, - 0x8FA8,0x8FAF,0x908A,0x5225,0x77A5,0x9C49,0x9F08,0x4E19, - 0x5002,0x5175,0x5C5B,0x5E77,0x661E,0x663A,0x67C4,0x68C5, - 0x70B3,0x7501,0x75C5,0x79C9,0x7ADD,0x8F27,0x9920,0x9A08, - 0x4FDD,0x5821,0x5831,0x5BF6,0x666E,0x6B65,0x6D11,0x6E7A, - 0x6F7D,0x73E4,0x752B,0x83E9,0x88DC,0x8913,0x8B5C,0x8F14, - 0x4F0F,0x50D5,0x5310,0x535C,0x5B93,0x5FA9,0x670D,0x798F, - 0x8179,0x832F,0x8514,0x8907,0x8986,0x8F39,0x8F3B,0x99A5, - 0x9C12,0x672C,0x4E76,0x4FF8,0x5949,0x5C01,0x5CEF,0x5CF0, - 0x6367,0x68D2,0x70FD,0x71A2,0x742B,0x7E2B,0x84EC,0x8702, - 0x9022,0x92D2,0x9CF3,0x4E0D,0x4ED8,0x4FEF,0x5085,0x5256, - 0x526F,0x5426,0x5490,0x57E0,0x592B,0x5A66, - /* Range 0x5D21 - 0x5D7E, array index: 0x151F */ - 0x5B5A,0x5B75,0x5BCC,0x5E9C,0xF966,0x6276,0x6577,0x65A7, - 0x6D6E,0x6EA5,0x7236,0x7B26,0x7C3F,0x7F36,0x8150,0x8151, - 0x819A,0x8240,0x8299,0x83A9,0x8A03,0x8CA0,0x8CE6,0x8CFB, - 0x8D74,0x8DBA,0x90E8,0x91DC,0x961C,0x9644,0x99D9,0x9CE7, - 0x5317,0x5206,0x5429,0x5674,0x58B3,0x5954,0x596E,0x5FFF, - 0x61A4,0x626E,0x6610,0x6C7E,0x711A,0x76C6,0x7C89,0x7CDE, - 0x7D1B,0x82AC,0x8CC1,0x96F0,0xF967,0x4F5B,0x5F17,0x5F7F, - 0x62C2,0x5D29,0x670B,0x68DA,0x787C,0x7E43,0x9D6C,0x4E15, - 0x5099,0x5315,0x532A,0x5351,0x5983,0x5A62,0x5E87,0x60B2, - 0x618A,0x6249,0x6279,0x6590,0x6787,0x69A7,0x6BD4,0x6BD6, - 0x6BD7,0x6BD8,0x6CB8,0xF968,0x7435,0x75FA,0x7812,0x7891, - 0x79D5,0x79D8,0x7C83,0x7DCB,0x7FE1,0x80A5, - /* Range 0x5E21 - 0x5E7E, array index: 0x157D */ - 0x813E,0x81C2,0x83F2,0x871A,0x88E8,0x8AB9,0x8B6C,0x8CBB, - 0x9119,0x975E,0x98DB,0x9F3B,0x56AC,0x5B2A,0x5F6C,0x658C, - 0x6AB3,0x6BAF,0x6D5C,0x6FF1,0x7015,0x725D,0x73AD,0x8CA7, - 0x8CD3,0x983B,0x6191,0x6C37,0x8058,0x9A01,0x4E4D,0x4E8B, - 0x4E9B,0x4ED5,0x4F3A,0x4F3C,0x4F7F,0x4FDF,0x50FF,0x53F2, - 0x53F8,0x5506,0x55E3,0x56DB,0x58EB,0x5962,0x5A11,0x5BEB, - 0x5BFA,0x5C04,0x5DF3,0x5E2B,0x5F99,0x601D,0x6368,0x659C, - 0x65AF,0x67F6,0x67FB,0x68AD,0x6B7B,0x6C99,0x6CD7,0x6E23, - 0x7009,0x7345,0x7802,0x793E,0x7940,0x7960,0x79C1,0x7BE9, - 0x7D17,0x7D72,0x8086,0x820D,0x838E,0x84D1,0x86C7,0x88DF, - 0x8A50,0x8A5E,0x8B1D,0x8CDC,0x8D66,0x8FAD,0x90AA,0x98FC, - 0x99DF,0x9E9D,0x524A,0xF969,0x6714,0xF96A, - /* Range 0x5F21 - 0x5F7E, array index: 0x15DB */ - 0x5098,0x522A,0x5C71,0x6563,0x6C55,0x73CA,0x7523,0x759D, - 0x7B97,0x849C,0x9178,0x9730,0x4E77,0x6492,0x6BBA,0x715E, - 0x85A9,0x4E09,0xF96B,0x6749,0x68EE,0x6E17,0x829F,0x8518, - 0x886B,0x63F7,0x6F81,0x9212,0x98AF,0x4E0A,0x50B7,0x50CF, - 0x511F,0x5546,0x55AA,0x5617,0x5B40,0x5C19,0x5CE0,0x5E38, - 0x5E8A,0x5EA0,0x5EC2,0x60F3,0x6851,0x6A61,0x6E58,0x723D, - 0x7240,0x72C0,0x76F8,0x7965,0x7BB1,0x7FD4,0x88F3,0x89F4, - 0x8A73,0x8C61,0x8CDE,0x971C,0x585E,0x74BD,0x8CFD,0x55C7, - 0xF96C,0x7A61,0x7D22,0x8272,0x7272,0x751F,0x7525,0xF96D, - 0x7B19,0x5885,0x58FB,0x5DBC,0x5E8F,0x5EB6,0x5F90,0x6055, - 0x6292,0x637F,0x654D,0x6691,0x66D9,0x66F8,0x6816,0x68F2, - 0x7280,0x745E,0x7B6E,0x7D6E,0x7DD6,0x7F72, - /* Range 0x6021 - 0x607E, array index: 0x1639 */ - 0x80E5,0x8212,0x85AF,0x897F,0x8A93,0x901D,0x92E4,0x9ECD, - 0x9F20,0x5915,0x596D,0x5E2D,0x60DC,0x6614,0x6673,0x6790, - 0x6C50,0x6DC5,0x6F5F,0x77F3,0x78A9,0x84C6,0x91CB,0x932B, - 0x4ED9,0x50CA,0x5148,0x5584,0x5B0B,0x5BA3,0x6247,0x657E, - 0x65CB,0x6E32,0x717D,0x7401,0x7444,0x7487,0x74BF,0x766C, - 0x79AA,0x7DDA,0x7E55,0x7FA8,0x817A,0x81B3,0x8239,0x861A, - 0x87EC,0x8A75,0x8DE3,0x9078,0x9291,0x9425,0x994D,0x9BAE, - 0x5368,0x5C51,0x6954,0x6CC4,0x6D29,0x6E2B,0x820C,0x859B, - 0x893B,0x8A2D,0x8AAA,0x96EA,0x9F67,0x5261,0x66B9,0x6BB2, - 0x7E96,0x87FE,0x8D0D,0x9583,0x965D,0x651D,0x6D89,0x71EE, - 0xF96E,0x57CE,0x59D3,0x5BAC,0x6027,0x60FA,0x6210,0x661F, - 0x665F,0x7329,0x73F9,0x76DB,0x7701,0x7B6C, - /* Range 0x6121 - 0x617E, array index: 0x1697 */ - 0x8056,0x8072,0x8165,0x8AA0,0x9192,0x4E16,0x52E2,0x6B72, - 0x6D17,0x7A05,0x7B39,0x7D30,0xF96F,0x8CB0,0x53EC,0x562F, - 0x5851,0x5BB5,0x5C0F,0x5C11,0x5DE2,0x6240,0x6383,0x6414, - 0x662D,0x68B3,0x6CBC,0x6D88,0x6EAF,0x701F,0x70A4,0x71D2, - 0x7526,0x758F,0x758E,0x7619,0x7B11,0x7BE0,0x7C2B,0x7D20, - 0x7D39,0x852C,0x856D,0x8607,0x8A34,0x900D,0x9061,0x90B5, - 0x92B7,0x97F6,0x9A37,0x4FD7,0x5C6C,0x675F,0x6D91,0x7C9F, - 0x7E8C,0x8B16,0x8D16,0x901F,0x5B6B,0x5DFD,0x640D,0x84C0, - 0x905C,0x98E1,0x7387,0x5B8B,0x609A,0x677E,0x6DDE,0x8A1F, - 0x8AA6,0x9001,0x980C,0x5237,0xF970,0x7051,0x788E,0x9396, - 0x8870,0x91D7,0x4FEE,0x53D7,0x55FD,0x56DA,0x5782,0x58FD, - 0x5AC2,0x5B88,0x5CAB,0x5CC0,0x5E25,0x6101, - /* Range 0x6221 - 0x627E, array index: 0x16F5 */ - 0x620D,0x624B,0x6388,0x641C,0x6536,0x6578,0x6A39,0x6B8A, - 0x6C34,0x6D19,0x6F31,0x71E7,0x72E9,0x7378,0x7407,0x74B2, - 0x7626,0x7761,0x79C0,0x7A57,0x7AEA,0x7CB9,0x7D8F,0x7DAC, - 0x7E61,0x7F9E,0x8129,0x8331,0x8490,0x84DA,0x85EA,0x8896, - 0x8AB0,0x8B90,0x8F38,0x9042,0x9083,0x916C,0x9296,0x92B9, - 0x968B,0x96A7,0x96A8,0x96D6,0x9700,0x9808,0x9996,0x9AD3, - 0x9B1A,0x53D4,0x587E,0x5919,0x5B70,0x5BBF,0x6DD1,0x6F5A, - 0x719F,0x7421,0x74B9,0x8085,0x83FD,0x5DE1,0x5F87,0x5FAA, - 0x6042,0x65EC,0x6812,0x696F,0x6A53,0x6B89,0x6D35,0x6DF3, - 0x73E3,0x76FE,0x77AC,0x7B4D,0x7D14,0x8123,0x821C,0x8340, - 0x84F4,0x8563,0x8A62,0x8AC4,0x9187,0x931E,0x9806,0x99B4, - 0x620C,0x8853,0x8FF0,0x9265,0x5D07,0x5D27, - /* Range 0x6321 - 0x637E, array index: 0x1753 */ - 0x5D69,0x745F,0x819D,0x8768,0x6FD5,0x62FE,0x7FD2,0x8936, - 0x8972,0x4E1E,0x4E58,0x50E7,0x52DD,0x5347,0x627F,0x6607, - 0x7E69,0x8805,0x965E,0x4F8D,0x5319,0x5636,0x59CB,0x5AA4, - 0x5C38,0x5C4E,0x5C4D,0x5E02,0x5F11,0x6043,0x65BD,0x662F, - 0x6642,0x67BE,0x67F4,0x731C,0x77E2,0x793A,0x7FC5,0x8494, - 0x84CD,0x8996,0x8A66,0x8A69,0x8AE1,0x8C55,0x8C7A,0x57F4, - 0x5BD4,0x5F0F,0x606F,0x62ED,0x690D,0x6B96,0x6E5C,0x7184, - 0x7BD2,0x8755,0x8B58,0x8EFE,0x98DF,0x98FE,0x4F38,0x4F81, - 0x4FE1,0x547B,0x5A20,0x5BB8,0x613C,0x65B0,0x6668,0x71FC, - 0x7533,0x795E,0x7D33,0x814E,0x81E3,0x8398,0x85AA,0x85CE, - 0x8703,0x8A0A,0x8EAB,0x8F9B,0xF971,0x8FC5,0x5931,0x5BA4, - 0x5BE6,0x6089,0x5BE9,0x5C0B,0x5FC3,0x6C81, - /* Range 0x6421 - 0x647E, array index: 0x17B1 */ - 0xF972,0x6DF1,0x700B,0x751A,0x82AF,0x8AF6,0x4EC0,0x5341, - 0xF973,0x96D9,0x6C0F,0x4E9E,0x4FC4,0x5152,0x555E,0x5A25, - 0x5CE8,0x6211,0x7259,0x82BD,0x83AA,0x86FE,0x8859,0x8A1D, - 0x963F,0x96C5,0x9913,0x9D09,0x9D5D,0x580A,0x5CB3,0x5DBD, - 0x5E44,0x60E1,0x6115,0x63E1,0x6A02,0x6E25,0x9102,0x9354, - 0x984E,0x9C10,0x9F77,0x5B89,0x5CB8,0x6309,0x664F,0x6848, - 0x773C,0x96C1,0x978D,0x9854,0x9B9F,0x65A1,0x8B01,0x8ECB, - 0x95BC,0x5535,0x5CA9,0x5DD6,0x5EB5,0x6697,0x764C,0x83F4, - 0x95C7,0x58D3,0x62BC,0x72CE,0x9D28,0x4EF0,0x592E,0x600F, - 0x663B,0x6B83,0x79E7,0x9D26,0x5393,0x54C0,0x57C3,0x5D16, - 0x611B,0x66D6,0x6DAF,0x788D,0x827E,0x9698,0x9744,0x5384, - 0x627C,0x6396,0x6DB2,0x7E0A,0x814B,0x984D, - /* Range 0x6521 - 0x657E, array index: 0x180F */ - 0x6AFB,0x7F4C,0x9DAF,0x9E1A,0x4E5F,0x503B,0x51B6,0x591C, - 0x60F9,0x63F6,0x6930,0x723A,0x8036,0xF974,0x91CE,0x5F31, - 0xF975,0xF976,0x7D04,0x82E5,0x846F,0x84BB,0x85E5,0x8E8D, - 0xF977,0x4F6F,0xF978,0xF979,0x58E4,0x5B43,0x6059,0x63DA, - 0x6518,0x656D,0x6698,0xF97A,0x694A,0x6A23,0x6D0B,0x7001, - 0x716C,0x75D2,0x760D,0x79B3,0x7A70,0xF97B,0x7F8A,0xF97C, - 0x8944,0xF97D,0x8B93,0x91C0,0x967D,0xF97E,0x990A,0x5704, - 0x5FA1,0x65BC,0x6F01,0x7600,0x79A6,0x8A9E,0x99AD,0x9B5A, - 0x9F6C,0x5104,0x61B6,0x6291,0x6A8D,0x81C6,0x5043,0x5830, - 0x5F66,0x7109,0x8A00,0x8AFA,0x5B7C,0x8616,0x4FFA,0x513C, - 0x56B4,0x5944,0x63A9,0x6DF9,0x5DAA,0x696D,0x5186,0x4E88, - 0x4F59,0xF97F,0xF980,0xF981,0x5982,0xF982, - /* Range 0x6621 - 0x667E, array index: 0x186D */ - 0xF983,0x6B5F,0x6C5D,0xF984,0x74B5,0x7916,0xF985,0x8207, - 0x8245,0x8339,0x8F3F,0x8F5D,0xF986,0x9918,0xF987,0xF988, - 0xF989,0x4EA6,0xF98A,0x57DF,0x5F79,0x6613,0xF98B,0xF98C, - 0x75AB,0x7E79,0x8B6F,0xF98D,0x9006,0x9A5B,0x56A5,0x5827, - 0x59F8,0x5A1F,0x5BB4,0xF98E,0x5EF6,0xF98F,0xF990,0x6350, - 0x633B,0xF991,0x693D,0x6C87,0x6CBF,0x6D8E,0x6D93,0x6DF5, - 0x6F14,0xF992,0x70DF,0x7136,0x7159,0xF993,0x71C3,0x71D5, - 0xF994,0x784F,0x786F,0xF995,0x7B75,0x7DE3,0xF996,0x7E2F, - 0xF997,0x884D,0x8EDF,0xF998,0xF999,0xF99A,0x925B,0xF99B, - 0x9CF6,0xF99C,0xF99D,0xF99E,0x6085,0x6D85,0xF99F,0x71B1, - 0xF9A0,0xF9A1,0x95B1,0x53AD,0xF9A2,0xF9A3,0xF9A4,0x67D3, - 0xF9A5,0x708E,0x7130,0x7430,0x8276,0x82D2, - /* Range 0x6721 - 0x677E, array index: 0x18CB */ - 0xF9A6,0x95BB,0x9AE5,0x9E7D,0x66C4,0xF9A7,0x71C1,0x8449, - 0xF9A8,0xF9A9,0x584B,0xF9AA,0xF9AB,0x5DB8,0x5F71,0xF9AC, - 0x6620,0x668E,0x6979,0x69AE,0x6C38,0x6CF3,0x6E36,0x6F41, - 0x6FDA,0x701B,0x702F,0x7150,0x71DF,0x7370,0xF9AD,0x745B, - 0xF9AE,0x74D4,0x76C8,0x7A4E,0x7E93,0xF9AF,0xF9B0,0x82F1, - 0x8A60,0x8FCE,0xF9B1,0x9348,0xF9B2,0x9719,0xF9B3,0xF9B4, - 0x4E42,0x502A,0xF9B5,0x5208,0x53E1,0x66F3,0x6C6D,0x6FCA, - 0x730A,0x777F,0x7A62,0x82AE,0x85DD,0x8602,0xF9B6,0x88D4, - 0x8A63,0x8B7D,0x8C6B,0xF9B7,0x92B3,0xF9B8,0x9713,0x9810, - 0x4E94,0x4F0D,0x4FC9,0x50B2,0x5348,0x543E,0x5433,0x55DA, - 0x5862,0x58BA,0x5967,0x5A1B,0x5BE4,0x609F,0xF9B9,0x61CA, - 0x6556,0x65FF,0x6664,0x68A7,0x6C5A,0x6FB3, - /* Range 0x6821 - 0x687E, array index: 0x1929 */ - 0x70CF,0x71AC,0x7352,0x7B7D,0x8708,0x8AA4,0x9C32,0x9F07, - 0x5C4B,0x6C83,0x7344,0x7389,0x923A,0x6EAB,0x7465,0x761F, - 0x7A69,0x7E15,0x860A,0x5140,0x58C5,0x64C1,0x74EE,0x7515, - 0x7670,0x7FC1,0x9095,0x96CD,0x9954,0x6E26,0x74E6,0x7AA9, - 0x7AAA,0x81E5,0x86D9,0x8778,0x8A1B,0x5A49,0x5B8C,0x5B9B, - 0x68A1,0x6900,0x6D63,0x73A9,0x7413,0x742C,0x7897,0x7DE9, - 0x7FEB,0x8118,0x8155,0x839E,0x8C4C,0x962E,0x9811,0x66F0, - 0x5F80,0x65FA,0x6789,0x6C6A,0x738B,0x502D,0x5A03,0x6B6A, - 0x77EE,0x5916,0x5D6C,0x5DCD,0x7325,0x754F,0xF9BA,0xF9BB, - 0x50E5,0x51F9,0x582F,0x592D,0x5996,0x59DA,0x5BE5,0xF9BC, - 0xF9BD,0x5DA2,0x62D7,0x6416,0x6493,0x64FE,0xF9BE,0x66DC, - 0xF9BF,0x6A48,0xF9C0,0x71FF,0x7464,0xF9C1, - /* Range 0x6921 - 0x697E, array index: 0x1987 */ - 0x7A88,0x7AAF,0x7E47,0x7E5E,0x8000,0x8170,0xF9C2,0x87EF, - 0x8981,0x8B20,0x9059,0xF9C3,0x9080,0x9952,0x617E,0x6B32, - 0x6D74,0x7E1F,0x8925,0x8FB1,0x4FD1,0x50AD,0x5197,0x52C7, - 0x57C7,0x5889,0x5BB9,0x5EB8,0x6142,0x6995,0x6D8C,0x6E67, - 0x6EB6,0x7194,0x7462,0x7528,0x752C,0x8073,0x8338,0x84C9, - 0x8E0A,0x9394,0x93DE,0xF9C4,0x4E8E,0x4F51,0x5076,0x512A, - 0x53C8,0x53CB,0x53F3,0x5B87,0x5BD3,0x5C24,0x611A,0x6182, - 0x65F4,0x725B,0x7397,0x7440,0x76C2,0x7950,0x7991,0x79B9, - 0x7D06,0x7FBD,0x828B,0x85D5,0x865E,0x8FC2,0x9047,0x90F5, - 0x91EA,0x9685,0x96E8,0x96E9,0x52D6,0x5F67,0x65ED,0x6631, - 0x682F,0x715C,0x7A36,0x90C1,0x980A,0x4E91,0xF9C5,0x6A52, - 0x6B9E,0x6F90,0x7189,0x8018,0x82B8,0x8553, - /* Range 0x6A21 - 0x6A7E, array index: 0x19E5 */ - 0x904B,0x9695,0x96F2,0x97FB,0x851A,0x9B31,0x4E90,0x718A, - 0x96C4,0x5143,0x539F,0x54E1,0x5713,0x5712,0x57A3,0x5A9B, - 0x5AC4,0x5BC3,0x6028,0x613F,0x63F4,0x6C85,0x6D39,0x6E72, - 0x6E90,0x7230,0x733F,0x7457,0x82D1,0x8881,0x8F45,0x9060, - 0xF9C6,0x9662,0x9858,0x9D1B,0x6708,0x8D8A,0x925E,0x4F4D, - 0x5049,0x50DE,0x5371,0x570D,0x59D4,0x5A01,0x5C09,0x6170, - 0x6690,0x6E2D,0x7232,0x744B,0x7DEF,0x80C3,0x840E,0x8466, - 0x853F,0x875F,0x885B,0x8918,0x8B02,0x9055,0x97CB,0x9B4F, - 0x4E73,0x4F91,0x5112,0x516A,0xF9C7,0x552F,0x55A9,0x5B7A, - 0x5BA5,0x5E7C,0x5E7D,0x5EBE,0x60A0,0x60DF,0x6108,0x6109, - 0x63C4,0x6538,0x6709,0xF9C8,0x67D4,0x67DA,0xF9C9,0x6961, - 0x6962,0x6CB9,0x6D27,0xF9CA,0x6E38,0xF9CB, - /* Range 0x6B21 - 0x6B7E, array index: 0x1A43 */ - 0x6FE1,0x7336,0x7337,0xF9CC,0x745C,0x7531,0xF9CD,0x7652, - 0xF9CE,0xF9CF,0x7DAD,0x81FE,0x8438,0x88D5,0x8A98,0x8ADB, - 0x8AED,0x8E30,0x8E42,0x904A,0x903E,0x907A,0x9149,0x91C9, - 0x936E,0xF9D0,0xF9D1,0x5809,0xF9D2,0x6BD3,0x8089,0x80B2, - 0xF9D3,0xF9D4,0x5141,0x596B,0x5C39,0xF9D5,0xF9D6,0x6F64, - 0x73A7,0x80E4,0x8D07,0xF9D7,0x9217,0x958F,0xF9D8,0xF9D9, - 0xF9DA,0xF9DB,0x807F,0x620E,0x701C,0x7D68,0x878D,0xF9DC, - 0x57A0,0x6069,0x6147,0x6BB7,0x8ABE,0x9280,0x96B1,0x4E59, - 0x541F,0x6DEB,0x852D,0x9670,0x97F3,0x98EE,0x63D6,0x6CE3, - 0x9091,0x51DD,0x61C9,0x81BA,0x9DF9,0x4F9D,0x501A,0x5100, - 0x5B9C,0x610F,0x61FF,0x64EC,0x6905,0x6BC5,0x7591,0x77E3, - 0x7FA9,0x8264,0x858F,0x87FB,0x8863,0x8ABC, - /* Range 0x6C21 - 0x6C7E, array index: 0x1AA1 */ - 0x8B70,0x91AB,0x4E8C,0x4EE5,0x4F0A,0xF9DD,0xF9DE,0x5937, - 0x59E8,0xF9DF,0x5DF2,0x5F1B,0x5F5B,0x6021,0xF9E0,0xF9E1, - 0xF9E2,0xF9E3,0x723E,0x73E5,0xF9E4,0x7570,0x75CD,0xF9E5, - 0x79FB,0xF9E6,0x800C,0x8033,0x8084,0x82E1,0x8351,0xF9E7, - 0xF9E8,0x8CBD,0x8CB3,0x9087,0xF9E9,0xF9EA,0x98F4,0x990C, - 0xF9EB,0xF9EC,0x7037,0x76CA,0x7FCA,0x7FCC,0x7FFC,0x8B1A, - 0x4EBA,0x4EC1,0x5203,0x5370,0xF9ED,0x54BD,0x56E0,0x59FB, - 0x5BC5,0x5F15,0x5FCD,0x6E6E,0xF9EE,0xF9EF,0x7D6A,0x8335, - 0xF9F0,0x8693,0x8A8D,0xF9F1,0x976D,0x9777,0xF9F2,0xF9F3, - 0x4E00,0x4F5A,0x4F7E,0x58F9,0x65E5,0x6EA2,0x9038,0x93B0, - 0x99B9,0x4EFB,0x58EC,0x598A,0x59D9,0x6041,0xF9F4,0xF9F5, - 0x7A14,0xF9F6,0x834F,0x8CC3,0x5165,0x5344, - /* Range 0x6D21 - 0x6D7E, array index: 0x1AFF */ - 0xF9F7,0xF9F8,0xF9F9,0x4ECD,0x5269,0x5B55,0x82BF,0x4ED4, - 0x523A,0x54A8,0x59C9,0x59FF,0x5B50,0x5B57,0x5B5C,0x6063, - 0x6148,0x6ECB,0x7099,0x716E,0x7386,0x74F7,0x75B5,0x78C1, - 0x7D2B,0x8005,0x81EA,0x8328,0x8517,0x85C9,0x8AEE,0x8CC7, - 0x96CC,0x4F5C,0x52FA,0x56BC,0x65AB,0x6628,0x707C,0x70B8, - 0x7235,0x7DBD,0x828D,0x914C,0x96C0,0x9D72,0x5B71,0x68E7, - 0x6B98,0x6F7A,0x76DE,0x5C91,0x66AB,0x6F5B,0x7BB4,0x7C2A, - 0x8836,0x96DC,0x4E08,0x4ED7,0x5320,0x5834,0x58BB,0x58EF, - 0x596C,0x5C07,0x5E33,0x5E84,0x5F35,0x638C,0x66B2,0x6756, - 0x6A1F,0x6AA3,0x6B0C,0x6F3F,0x7246,0xF9FA,0x7350,0x748B, - 0x7AE0,0x7CA7,0x8178,0x81DF,0x81E7,0x838A,0x846C,0x8523, - 0x8594,0x85CF,0x88DD,0x8D13,0x91AC,0x9577, - /* Range 0x6E21 - 0x6E7E, array index: 0x1B5D */ - 0x969C,0x518D,0x54C9,0x5728,0x5BB0,0x624D,0x6750,0x683D, - 0x6893,0x6E3D,0x6ED3,0x707D,0x7E21,0x88C1,0x8CA1,0x8F09, - 0x9F4B,0x9F4E,0x722D,0x7B8F,0x8ACD,0x931A,0x4F47,0x4F4E, - 0x5132,0x5480,0x59D0,0x5E95,0x62B5,0x6775,0x696E,0x6A17, - 0x6CAE,0x6E1A,0x72D9,0x732A,0x75BD,0x7BB8,0x7D35,0x82E7, - 0x83F9,0x8457,0x85F7,0x8A5B,0x8CAF,0x8E87,0x9019,0x90B8, - 0x96CE,0x9F5F,0x52E3,0x540A,0x5AE1,0x5BC2,0x6458,0x6575, - 0x6EF4,0x72C4,0xF9FB,0x7684,0x7A4D,0x7B1B,0x7C4D,0x7E3E, - 0x7FDF,0x837B,0x8B2B,0x8CCA,0x8D64,0x8DE1,0x8E5F,0x8FEA, - 0x8FF9,0x9069,0x93D1,0x4F43,0x4F7A,0x50B3,0x5168,0x5178, - 0x524D,0x526A,0x5861,0x587C,0x5960,0x5C08,0x5C55,0x5EDB, - 0x609B,0x6230,0x6813,0x6BBF,0x6C08,0x6FB1, - /* Range 0x6F21 - 0x6F7E, array index: 0x1BBB */ - 0x714E,0x7420,0x7530,0x7538,0x7551,0x7672,0x7B4C,0x7B8B, - 0x7BAD,0x7BC6,0x7E8F,0x8A6E,0x8F3E,0x8F49,0x923F,0x9293, - 0x9322,0x942B,0x96FB,0x985A,0x986B,0x991E,0x5207,0x622A, - 0x6298,0x6D59,0x7664,0x7ACA,0x7BC0,0x7D76,0x5360,0x5CBE, - 0x5E97,0x6F38,0x70B9,0x7C98,0x9711,0x9B8E,0x9EDE,0x63A5, - 0x647A,0x8776,0x4E01,0x4E95,0x4EAD,0x505C,0x5075,0x5448, - 0x59C3,0x5B9A,0x5E40,0x5EAD,0x5EF7,0x5F81,0x60C5,0x633A, - 0x653F,0x6574,0x65CC,0x6676,0x6678,0x67FE,0x6968,0x6A89, - 0x6B63,0x6C40,0x6DC0,0x6DE8,0x6E1F,0x6E5E,0x701E,0x70A1, - 0x738E,0x73FD,0x753A,0x775B,0x7887,0x798E,0x7A0B,0x7A7D, - 0x7CBE,0x7D8E,0x8247,0x8A02,0x8AEA,0x8C9E,0x912D,0x914A, - 0x91D8,0x9266,0x92CC,0x9320,0x9706,0x9756, - /* Range 0x7021 - 0x707E, array index: 0x1C19 */ - 0x975C,0x9802,0x9F0E,0x5236,0x5291,0x557C,0x5824,0x5E1D, - 0x5F1F,0x608C,0x63D0,0x68AF,0x6FDF,0x796D,0x7B2C,0x81CD, - 0x85BA,0x88FD,0x8AF8,0x8E44,0x918D,0x9664,0x969B,0x973D, - 0x984C,0x9F4A,0x4FCE,0x5146,0x51CB,0x52A9,0x5632,0x5F14, - 0x5F6B,0x63AA,0x64CD,0x65E9,0x6641,0x66FA,0x66F9,0x671D, - 0x689D,0x68D7,0x69FD,0x6F15,0x6F6E,0x7167,0x71E5,0x722A, - 0x74AA,0x773A,0x7956,0x795A,0x79DF,0x7A20,0x7A95,0x7C97, - 0x7CDF,0x7D44,0x7E70,0x8087,0x85FB,0x86A4,0x8A54,0x8ABF, - 0x8D99,0x8E81,0x9020,0x906D,0x91E3,0x963B,0x96D5,0x9CE5, - 0x65CF,0x7C07,0x8DB3,0x93C3,0x5B58,0x5C0A,0x5352,0x62D9, - 0x731D,0x5027,0x5B97,0x5F9E,0x60B0,0x616B,0x68D5,0x6DD9, - 0x742E,0x7A2E,0x7D42,0x7D9C,0x7E31,0x816B, - /* Range 0x7121 - 0x717E, array index: 0x1C77 */ - 0x8E2A,0x8E35,0x937E,0x9418,0x4F50,0x5750,0x5DE6,0x5EA7, - 0x632B,0x7F6A,0x4E3B,0x4F4F,0x4F8F,0x505A,0x59DD,0x80C4, - 0x546A,0x5468,0x55FE,0x594F,0x5B99,0x5DDE,0x5EDA,0x665D, - 0x6731,0x67F1,0x682A,0x6CE8,0x6D32,0x6E4A,0x6F8D,0x70B7, - 0x73E0,0x7587,0x7C4C,0x7D02,0x7D2C,0x7DA2,0x821F,0x86DB, - 0x8A3B,0x8A85,0x8D70,0x8E8A,0x8F33,0x9031,0x914E,0x9152, - 0x9444,0x99D0,0x7AF9,0x7CA5,0x4FCA,0x5101,0x51C6,0x57C8, - 0x5BEF,0x5CFB,0x6659,0x6A3D,0x6D5A,0x6E96,0x6FEC,0x710C, - 0x756F,0x7AE3,0x8822,0x9021,0x9075,0x96CB,0x99FF,0x8301, - 0x4E2D,0x4EF2,0x8846,0x91CD,0x537D,0x6ADB,0x696B,0x6C41, - 0x847A,0x589E,0x618E,0x66FE,0x62EF,0x70DD,0x7511,0x75C7, - 0x7E52,0x84B8,0x8B49,0x8D08,0x4E4B,0x53EA, - /* Range 0x7221 - 0x727E, array index: 0x1CD5 */ - 0x54AB,0x5730,0x5740,0x5FD7,0x6301,0x6307,0x646F,0x652F, - 0x65E8,0x667A,0x679D,0x67B3,0x6B62,0x6C60,0x6C9A,0x6F2C, - 0x77E5,0x7825,0x7949,0x7957,0x7D19,0x80A2,0x8102,0x81F3, - 0x829D,0x82B7,0x8718,0x8A8C,0xF9FC,0x8D04,0x8DBE,0x9072, - 0x76F4,0x7A19,0x7A37,0x7E54,0x8077,0x5507,0x55D4,0x5875, - 0x632F,0x6422,0x6649,0x664B,0x686D,0x699B,0x6B84,0x6D25, - 0x6EB1,0x73CD,0x7468,0x74A1,0x755B,0x75B9,0x76E1,0x771E, - 0x778B,0x79E6,0x7E09,0x7E1D,0x81FB,0x852F,0x8897,0x8A3A, - 0x8CD1,0x8EEB,0x8FB0,0x9032,0x93AD,0x9663,0x9673,0x9707, - 0x4F84,0x53F1,0x59EA,0x5AC9,0x5E19,0x684E,0x74C6,0x75BE, - 0x79E9,0x7A92,0x81A3,0x86ED,0x8CEA,0x8DCC,0x8FED,0x659F, - 0x6715,0xF9FD,0x57F7,0x6F57,0x7DDD,0x8F2F, - /* Range 0x7321 - 0x737E, array index: 0x1D33 */ - 0x93F6,0x96C6,0x5FB5,0x61F2,0x6F84,0x4E14,0x4F98,0x501F, - 0x53C9,0x55DF,0x5D6F,0x5DEE,0x6B21,0x6B64,0x78CB,0x7B9A, - 0xF9FE,0x8E49,0x8ECA,0x906E,0x6349,0x643E,0x7740,0x7A84, - 0x932F,0x947F,0x9F6A,0x64B0,0x6FAF,0x71E6,0x74A8,0x74DA, - 0x7AC4,0x7C12,0x7E82,0x7CB2,0x7E98,0x8B9A,0x8D0A,0x947D, - 0x9910,0x994C,0x5239,0x5BDF,0x64E6,0x672D,0x7D2E,0x50ED, - 0x53C3,0x5879,0x6158,0x6159,0x61FA,0x65AC,0x7AD9,0x8B92, - 0x8B96,0x5009,0x5021,0x5275,0x5531,0x5A3C,0x5EE0,0x5F70, - 0x6134,0x655E,0x660C,0x6636,0x66A2,0x69CD,0x6EC4,0x6F32, - 0x7316,0x7621,0x7A93,0x8139,0x8259,0x83D6,0x84BC,0x50B5, - 0x57F0,0x5BC0,0x5BE8,0x5F69,0x63A1,0x7826,0x7DB5,0x83DC, - 0x8521,0x91C7,0x91F5,0x518A,0x67F5,0x7B56, - /* Range 0x7421 - 0x747E, array index: 0x1D91 */ - 0x8CAC,0x51C4,0x59BB,0x60BD,0x8655,0x501C,0xF9FF,0x5254, - 0x5C3A,0x617D,0x621A,0x62D3,0x64F2,0x65A5,0x6ECC,0x7620, - 0x810A,0x8E60,0x965F,0x96BB,0x4EDF,0x5343,0x5598,0x5929, - 0x5DDD,0x64C5,0x6CC9,0x6DFA,0x7394,0x7A7F,0x821B,0x85A6, - 0x8CE4,0x8E10,0x9077,0x91E7,0x95E1,0x9621,0x97C6,0x51F8, - 0x54F2,0x5586,0x5FB9,0x64A4,0x6F88,0x7DB4,0x8F1F,0x8F4D, - 0x9435,0x50C9,0x5C16,0x6CBE,0x6DFB,0x751B,0x77BB,0x7C3D, - 0x7C64,0x8A79,0x8AC2,0x581E,0x59BE,0x5E16,0x6377,0x7252, - 0x758A,0x776B,0x8ADC,0x8CBC,0x8F12,0x5EF3,0x6674,0x6DF8, - 0x807D,0x83C1,0x8ACB,0x9751,0x9BD6,0xFA00,0x5243,0x66FF, - 0x6D95,0x6EEF,0x7DE0,0x8AE6,0x902E,0x905E,0x9AD4,0x521D, - 0x527F,0x54E8,0x6194,0x6284,0x62DB,0x68A2, - /* Range 0x7521 - 0x757E, array index: 0x1DEF */ - 0x6912,0x695A,0x6A35,0x7092,0x7126,0x785D,0x7901,0x790E, - 0x79D2,0x7A0D,0x8096,0x8278,0x82D5,0x8349,0x8549,0x8C82, - 0x8D85,0x9162,0x918B,0x91AE,0x4FC3,0x56D1,0x71ED,0x77D7, - 0x8700,0x89F8,0x5BF8,0x5FD6,0x6751,0x90A8,0x53E2,0x585A, - 0x5BF5,0x60A4,0x6181,0x6460,0x7E3D,0x8070,0x8525,0x9283, - 0x64AE,0x50AC,0x5D14,0x6700,0x589C,0x62BD,0x63A8,0x690E, - 0x6978,0x6A1E,0x6E6B,0x76BA,0x79CB,0x82BB,0x8429,0x8ACF, - 0x8DA8,0x8FFD,0x9112,0x914B,0x919C,0x9310,0x9318,0x939A, - 0x96DB,0x9A36,0x9C0D,0x4E11,0x755C,0x795D,0x7AFA,0x7B51, - 0x7BC9,0x7E2E,0x84C4,0x8E59,0x8E74,0x8EF8,0x9010,0x6625, - 0x693F,0x7443,0x51FA,0x672E,0x9EDC,0x5145,0x5FE0,0x6C96, - 0x87F2,0x885D,0x8877,0x60B4,0x81B5,0x8403, - /* Range 0x7621 - 0x767E, array index: 0x1E4D */ - 0x8D05,0x53D6,0x5439,0x5634,0x5A36,0x5C31,0x708A,0x7FE0, - 0x805A,0x8106,0x81ED,0x8DA3,0x9189,0x9A5F,0x9DF2,0x5074, - 0x4EC4,0x53A0,0x60FB,0x6E2C,0x5C64,0x4F88,0x5024,0x55E4, - 0x5CD9,0x5E5F,0x6065,0x6894,0x6CBB,0x6DC4,0x71BE,0x75D4, - 0x75F4,0x7661,0x7A1A,0x7A49,0x7DC7,0x7DFB,0x7F6E,0x81F4, - 0x86A9,0x8F1C,0x96C9,0x99B3,0x9F52,0x5247,0x52C5,0x98ED, - 0x89AA,0x4E03,0x67D2,0x6F06,0x4FB5,0x5BE2,0x6795,0x6C88, - 0x6D78,0x741B,0x7827,0x91DD,0x937C,0x87C4,0x79E4,0x7A31, - 0x5FEB,0x4ED6,0x54A4,0x553E,0x58AE,0x59A5,0x60F0,0x6253, - 0x62D6,0x6736,0x6955,0x8235,0x9640,0x99B1,0x99DD,0x502C, - 0x5353,0x5544,0x577C,0xFA01,0x6258,0xFA02,0x64E2,0x666B, - 0x67DD,0x6FC1,0x6FEF,0x7422,0x7438,0x8A17, - /* Range 0x7721 - 0x777E, array index: 0x1EAB */ - 0x9438,0x5451,0x5606,0x5766,0x5F48,0x619A,0x6B4E,0x7058, - 0x70AD,0x7DBB,0x8A95,0x596A,0x812B,0x63A2,0x7708,0x803D, - 0x8CAA,0x5854,0x642D,0x69BB,0x5B95,0x5E11,0x6E6F,0xFA03, - 0x8569,0x514C,0x53F0,0x592A,0x6020,0x614B,0x6B86,0x6C70, - 0x6CF0,0x7B1E,0x80CE,0x82D4,0x8DC6,0x90B0,0x98B1,0xFA04, - 0x64C7,0x6FA4,0x6491,0x6504,0x514E,0x5410,0x571F,0x8A0E, - 0x615F,0x6876,0xFA05,0x75DB,0x7B52,0x7D71,0x901A,0x5806, - 0x69CC,0x817F,0x892A,0x9000,0x9839,0x5078,0x5957,0x59AC, - 0x6295,0x900F,0x9B2A,0x615D,0x7279,0x95D6,0x5761,0x5A46, - 0x5DF4,0x628A,0x64AD,0x64FA,0x6777,0x6CE2,0x6D3E,0x722C, - 0x7436,0x7834,0x7F77,0x82AD,0x8DDB,0x9817,0x5224,0x5742, - 0x677F,0x7248,0x74E3,0x8CA9,0x8FA6,0x9211, - /* Range 0x7821 - 0x787E, array index: 0x1F09 */ - 0x962A,0x516B,0x53ED,0x634C,0x4F69,0x5504,0x6096,0x6557, - 0x6C9B,0x6D7F,0x724C,0x72FD,0x7A17,0x8987,0x8C9D,0x5F6D, - 0x6F8E,0x70F9,0x81A8,0x610E,0x4FBF,0x504F,0x6241,0x7247, - 0x7BC7,0x7DE8,0x7FE9,0x904D,0x97AD,0x9A19,0x8CB6,0x576A, - 0x5E73,0x67B0,0x840D,0x8A55,0x5420,0x5B16,0x5E63,0x5EE2, - 0x5F0A,0x6583,0x80BA,0x853D,0x9589,0x965B,0x4F48,0x5305, - 0x530D,0x530F,0x5486,0x54FA,0x5703,0x5E03,0x6016,0x629B, - 0x62B1,0x6355,0xFA06,0x6CE1,0x6D66,0x75B1,0x7832,0x80DE, - 0x812F,0x82DE,0x8461,0x84B2,0x888D,0x8912,0x900B,0x92EA, - 0x98FD,0x9B91,0x5E45,0x66B4,0x66DD,0x7011,0x7206,0xFA07, - 0x4FF5,0x527D,0x5F6A,0x6153,0x6753,0x6A19,0x6F02,0x74E2, - 0x7968,0x8868,0x8C79,0x98C7,0x98C4,0x9A43, - /* Range 0x7921 - 0x797E, array index: 0x1F67 */ - 0x54C1,0x7A1F,0x6953,0x8AF7,0x8C4A,0x98A8,0x99AE,0x5F7C, - 0x62AB,0x75B2,0x76AE,0x88AB,0x907F,0x9642,0x5339,0x5F3C, - 0x5FC5,0x6CCC,0x73CC,0x7562,0x758B,0x7B46,0x82FE,0x999D, - 0x4E4F,0x903C,0x4E0B,0x4F55,0x53A6,0x590F,0x5EC8,0x6630, - 0x6CB3,0x7455,0x8377,0x8766,0x8CC0,0x9050,0x971E,0x9C15, - 0x58D1,0x5B78,0x8650,0x8B14,0x9DB4,0x5BD2,0x6068,0x608D, - 0x65F1,0x6C57,0x6F22,0x6FA3,0x701A,0x7F55,0x7FF0,0x9591, - 0x9592,0x9650,0x97D3,0x5272,0x8F44,0x51FD,0x542B,0x54B8, - 0x5563,0x558A,0x6ABB,0x6DB5,0x7DD8,0x8266,0x929C,0x9677, - 0x9E79,0x5408,0x54C8,0x76D2,0x86E4,0x95A4,0x95D4,0x965C, - 0x4EA2,0x4F09,0x59EE,0x5AE6,0x5DF7,0x6052,0x6297,0x676D, - 0x6841,0x6C86,0x6E2F,0x7F38,0x809B,0x822A, - /* Range 0x7A21 - 0x7A7E, array index: 0x1FC5 */ - 0xFA08,0xFA09,0x9805,0x4EA5,0x5055,0x54B3,0x5793,0x595A, - 0x5B69,0x5BB3,0x61C8,0x6977,0x6D77,0x7023,0x87F9,0x89E3, - 0x8A72,0x8AE7,0x9082,0x99ED,0x9AB8,0x52BE,0x6838,0x5016, - 0x5E78,0x674F,0x8347,0x884C,0x4EAB,0x5411,0x56AE,0x73E6, - 0x9115,0x97FF,0x9909,0x9957,0x9999,0x5653,0x589F,0x865B, - 0x8A31,0x61B2,0x6AF6,0x737B,0x8ED2,0x6B47,0x96AA,0x9A57, - 0x5955,0x7200,0x8D6B,0x9769,0x4FD4,0x5CF4,0x5F26,0x61F8, - 0x665B,0x6CEB,0x70AB,0x7384,0x73B9,0x73FE,0x7729,0x774D, - 0x7D43,0x7D62,0x7E23,0x8237,0x8852,0xFA0A,0x8CE2,0x9249, - 0x986F,0x5B51,0x7A74,0x8840,0x9801,0x5ACC,0x4FE0,0x5354, - 0x593E,0x5CFD,0x633E,0x6D79,0x72F9,0x8105,0x8107,0x83A2, - 0x92CF,0x9830,0x4EA8,0x5144,0x5211,0x578B, - /* Range 0x7B21 - 0x7B7E, array index: 0x2023 */ - 0x5F62,0x6CC2,0x6ECE,0x7005,0x7050,0x70AF,0x7192,0x73E9, - 0x7469,0x834A,0x87A2,0x8861,0x9008,0x90A2,0x93A3,0x99A8, - 0x516E,0x5F57,0x60E0,0x6167,0x66B3,0x8559,0x8E4A,0x91AF, - 0x978B,0x4E4E,0x4E92,0x547C,0x58D5,0x58FA,0x597D,0x5CB5, - 0x5F27,0x6236,0x6248,0x660A,0x6667,0x6BEB,0x6D69,0x6DCF, - 0x6E56,0x6EF8,0x6F94,0x6FE0,0x6FE9,0x705D,0x72D0,0x7425, - 0x745A,0x74E0,0x7693,0x795C,0x7CCA,0x7E1E,0x80E1,0x82A6, - 0x846B,0x84BF,0x864E,0x865F,0x8774,0x8B77,0x8C6A,0x93AC, - 0x9800,0x9865,0x60D1,0x6216,0x9177,0x5A5A,0x660F,0x6DF7, - 0x6E3E,0x743F,0x9B42,0x5FFD,0x60DA,0x7B0F,0x54C4,0x5F18, - 0x6C5E,0x6CD3,0x6D2A,0x70D8,0x7D05,0x8679,0x8A0C,0x9D3B, - 0x5316,0x548C,0x5B05,0x6A3A,0x706B,0x7575, - /* Range 0x7C21 - 0x7C7E, array index: 0x2081 */ - 0x798D,0x79BE,0x82B1,0x83EF,0x8A71,0x8B41,0x8CA8,0x9774, - 0xFA0B,0x64F4,0x652B,0x78BA,0x78BB,0x7A6B,0x4E38,0x559A, - 0x5950,0x5BA6,0x5E7B,0x60A3,0x63DB,0x6B61,0x6665,0x6853, - 0x6E19,0x7165,0x74B0,0x7D08,0x9084,0x9A69,0x9C25,0x6D3B, - 0x6ED1,0x733E,0x8C41,0x95CA,0x51F0,0x5E4C,0x5FA8,0x604D, - 0x60F6,0x6130,0x614C,0x6643,0x6644,0x69A5,0x6CC1,0x6E5F, - 0x6EC9,0x6F62,0x714C,0x749C,0x7687,0x7BC1,0x7C27,0x8352, - 0x8757,0x9051,0x968D,0x9EC3,0x532F,0x56DE,0x5EFB,0x5F8A, - 0x6062,0x6094,0x61F7,0x6666,0x6703,0x6A9C,0x6DEE,0x6FAE, - 0x7070,0x736A,0x7E6A,0x81BE,0x8334,0x86D4,0x8AA8,0x8CC4, - 0x5283,0x7372,0x5B96,0x6A6B,0x9404,0x54EE,0x5686,0x5B5D, - 0x6548,0x6585,0x66C9,0x689F,0x6D8D,0x6DC6, - /* Range 0x7D21 - 0x7D7E, array index: 0x20DF */ - 0x723B,0x80B4,0x9175,0x9A4D,0x4FAF,0x5019,0x539A,0x540E, - 0x543C,0x5589,0x55C5,0x5E3F,0x5F8C,0x673D,0x7166,0x73DD, - 0x9005,0x52DB,0x52F3,0x5864,0x58CE,0x7104,0x718F,0x71FB, - 0x85B0,0x8A13,0x6688,0x85A8,0x55A7,0x6684,0x714A,0x8431, - 0x5349,0x5599,0x6BC1,0x5F59,0x5FBD,0x63EE,0x6689,0x7147, - 0x8AF1,0x8F1D,0x9EBE,0x4F11,0x643A,0x70CB,0x7566,0x8667, - 0x6064,0x8B4E,0x9DF8,0x5147,0x51F6,0x5308,0x6D36,0x80F8, - 0x9ED1,0x6615,0x6B23,0x7098,0x75D5,0x5403,0x5C79,0x7D07, - 0x8A16,0x6B20,0x6B3D,0x6B46,0x5438,0x6070,0x6D3D,0x7FD5, - 0x8208,0x50D6,0x51DE,0x559C,0x566B,0x56CD,0x59EC,0x5B09, - 0x5E0C,0x6199,0x6198,0x6231,0x665E,0x66E6,0x7199,0x71B9, - 0x71BA,0x72A7,0x79A7,0x7A00,0x7FB2,0x8A70, - /* Unranged codes (93 codes) */ -}; - -#endif /* ICONV_TO_UCS_CCS_KSX1001 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> ksx1001 speed-optimized table (74752 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_KSX1001) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_speed_ksx1001[] = -{ - /* Heading Block */ - 0x0100,0x0200,0x0300,0x0400,0x0500,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - 0x0600,0x0700,0x0800,0x0900,0x0A00,0x0B00,0x0C00,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - 0x0D00,0x0E00,0x0F00,0x1000,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,0x1100,0x1200, - 0x1300,0x1400,0x1500,0x1600,0x1700,0x1800,0x1900,0x1A00, - 0x1B00,0x1C00,0x1D00,0x1E00,0x1F00,0x2000,0x2100,0x2200, - 0x2300,0x2400,0x2500,0x2600,0x2700,0x2800,0x2900,0x2A00, - 0x2B00,0x2C00,0x2D00,0x2E00,0x2F00,0x3000,0x3100,0x3200, - 0x3300,0x3400,0x3500,0x3600,0x3700,0x3800,0x3900,0x3A00, - 0x3B00,0x3C00,0x3D00,0x3E00,0x3F00,0x4000,0x4100,0x4200, - 0x4300,0x4400,0x4500,0x4600,0x4700,0x4800,0x4900,0x4A00, - 0x4B00,0x4C00,0x4D00,0x4E00,0x4F00,0x5000,0x5100,0x5200, - 0x5300,0x5400,0x5500,0x5600,0x5700,0x5800,0x5900,0x5A00, - 0x5B00,0x5C00,0x5D00,0x5E00,0x5F00,0x6000,0x6100,0x6200, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,0x6300,0x6400,0x6500,0x6600, - 0x6700,0x6800,0x6900,0x6A00,0x6B00,0x6C00,0x6D00,0x6E00, - 0x6F00,0x7000,0x7100,0x7200,0x7300,0x7400,0x7500,0x7600, - 0x7700,0x7800,0x7900,0x7A00,0x7B00,0x7C00,0x7D00,0x7E00, - 0x7F00,0x8000,0x8100,0x8200,0x8300,0x8400,0x8500,0x8600, - 0x8700,0x8800,0x8900,0x8A00,0x8B00,0x8C00,0x8D00,0x8E00, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK,INVBLK, - INVBLK,0x8F00,0x9000,INVBLK,INVBLK,INVBLK,INVBLK,0x9100, - /* Block 1, Array index 0x0100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x222E,INVALC,INVALC,0x2234,INVALC,INVALC,0x2157, - 0x2127,INVALC,0x2823,INVALC,INVALC,0x2129,INVALC,INVALC, - 0x2146,0x213E,0x2977,0x2978,0x2225,INVALC,0x2252,0x2124, - 0x222C,0x2976,0x282C,INVALC,0x2879,0x2876,0x287A,0x222F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2821,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2822,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x213F, - 0x282A,INVALC,INVALC,INVALC,INVALC,INVALC,0x282D,0x292C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2921,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2923,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2140, - 0x292A,INVALC,INVALC,INVALC,INVALC,INVALC,0x292D,INVALC, - /* Block 2, Array index 0x0200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2922,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2824,0x2924, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2925,0x2826,0x2926,INVALC,INVALC,INVALC,INVALC, - 0x2927,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2828, - 0x2928,0x2829,0x2929,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2930,0x282F,0x292F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x282B,0x292B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x282E,0x292E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 3, Array index 0x0300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x2227, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2230,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2228,0x222B,0x222A,0x222D,INVALC,0x2229,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 4, Array index 0x0400 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2541,0x2542,0x2543,0x2544,0x2545,0x2546,0x2547, - 0x2548,0x2549,0x254A,0x254B,0x254C,0x254D,0x254E,0x254F, - 0x2550,0x2551,INVALC,0x2552,0x2553,0x2554,0x2555,0x2556, - 0x2557,0x2558,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2561,0x2562,0x2563,0x2564,0x2565,0x2566,0x2567, - 0x2568,0x2569,0x256A,0x256B,0x256C,0x256D,0x256E,0x256F, - 0x2570,0x2571,INVALC,0x2572,0x2573,0x2574,0x2575,0x2576, - 0x2577,0x2578,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 5, Array index 0x0500 */ - INVALC,0x2C27,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2C21,0x2C22,0x2C23,0x2C24,0x2C25,0x2C26,0x2C28,0x2C29, - 0x2C2A,0x2C2B,0x2C2C,0x2C2D,0x2C2E,0x2C2F,0x2C30,0x2C31, - 0x2C32,0x2C33,0x2C34,0x2C35,0x2C36,0x2C37,0x2C38,0x2C39, - 0x2C3A,0x2C3B,0x2C3C,0x2C3D,0x2C3E,0x2C3F,0x2C40,0x2C41, - 0x2C51,0x2C52,0x2C53,0x2C54,0x2C55,0x2C56,0x2C58,0x2C59, - 0x2C5A,0x2C5B,0x2C5C,0x2C5D,0x2C5E,0x2C5F,0x2C60,0x2C61, - 0x2C62,0x2C63,0x2C64,0x2C65,0x2C66,0x2C67,0x2C68,0x2C69, - 0x2C6A,0x2C6B,0x2C6C,0x2C6D,0x2C6E,0x2C6F,0x2C70,0x2C71, - INVALC,0x2C57,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 33, Array index 0x0600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x212A,INVALC,INVALC, - 0x212E,0x212F,INVALC,INVALC,0x2130,0x2131,INVALC,INVALC, - 0x2253,0x2254,INVALC,INVALC,INVALC,0x2125,0x2126,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2236,INVALC,0x2147,0x2148,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2158,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2979,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x297A, - INVALC,0x297B,0x297C,0x297D,0x297E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 34, Array index 0x0700 */ - INVALC,INVALC,INVALC,0x2149,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2235,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2724,INVALC,INVALC,0x2260,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2265,0x2262,INVALC,INVALC,INVALC,0x2759,INVALC, - INVALC,INVALC,INVALC,0x214A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x2877,0x2878,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x287B,0x287C,0x287D,0x287E,INVALC, - 0x2530,0x2531,0x2532,0x2533,0x2534,0x2535,0x2536,0x2537, - 0x2538,0x2539,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2521,0x2522,0x2523,0x2524,0x2525,0x2526,0x2527,0x2528, - 0x2529,0x252A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2167,0x2168,0x2166,0x2169,0x216A,0x2255,0x2258,0x2256, - 0x2259,0x2257,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2221,INVALC,0x2222,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 35, Array index 0x0800 */ - 0x2223,INVALC,0x2153,0x2224,INVALC,INVALC,INVALC,0x2154, - 0x2174,INVALC,INVALC,0x2175,INVALC,INVALC,INVALC,0x2233, - INVALC,0x2232,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x216E,INVALC,INVALC,0x2170,0x2144,INVALC, - 0x2150,INVALC,INVALC,INVALC,INVALC,0x212B,INVALC,0x217C, - 0x217D,0x217B,0x217A,0x2172,0x2173,INVALC,0x2231,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2145,0x2171,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x212D,0x216F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2156,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2141,0x2155,INVALC,INVALC,0x2142,0x2143,INVALC,INVALC, - INVALC,INVALC,0x216C,0x216D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2178,0x2179,INVALC,INVALC,0x2176,0x2177, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2241,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x2151,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 36, Array index 0x0900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2152,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 37, Array index 0x0A00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2867,0x2868,0x2869,0x286A,0x286B,0x286C,0x286D,0x286E, - 0x286F,0x2870,0x2871,0x2872,0x2873,0x2874,0x2875,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2967,0x2968,0x2969,0x296A, - 0x296B,0x296C,0x296D,0x296E,0x296F,0x2970,0x2971,0x2972, - 0x2973,0x2974,0x2975,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x294D,0x294E,0x294F,0x2950, - 0x2951,0x2952,0x2953,0x2954,0x2955,0x2956,0x2957,0x2958, - 0x2959,0x295A,0x295B,0x295C,0x295D,0x295E,0x295F,0x2960, - 0x2961,0x2962,0x2963,0x2964,0x2965,0x2966,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x284D,0x284E,0x284F,0x2850,0x2851,0x2852,0x2853,0x2854, - 0x2855,0x2856,0x2857,0x2858,0x2859,0x285A,0x285B,0x285C, - 0x285D,0x285E,0x285F,0x2860,0x2861,0x2862,0x2863,0x2864, - 0x2865,0x2866,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 38, Array index 0x0B00 */ - 0x2621,0x262C,0x2622,0x262D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2623,0x2648,0x2647,0x262E, - 0x2624,0x2642,0x2641,0x262F,0x2626,0x2646,0x2645,0x2631, - 0x2625,0x2644,0x2643,0x2630,0x2627,0x263C,0x2649,0x264A, - 0x2637,0x264B,0x264C,0x2632,0x2629,0x263E,0x264D,0x264E, - 0x2639,0x264F,0x2650,0x2634,0x2628,0x2651,0x2652,0x2638, - 0x263D,0x2653,0x2654,0x2633,0x262A,0x2655,0x2656,0x263A, - 0x263F,0x2657,0x2658,0x2635,0x262B,0x2659,0x265A,0x263B, - 0x265B,0x265C,0x2640,0x265D,0x265E,0x265F,0x2660,0x2661, - 0x2662,0x2663,0x2664,0x2636,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2246,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2161,0x2160,INVALC,0x2243,0x2247,0x2248,0x224B,0x224A, - 0x2249,0x224C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x2163,0x2162,INVALC,INVALC,0x223A,0x2239, - INVALC,INVALC,INVALC,INVALC,0x2165,0x2164,INVALC,INVALC, - 0x2238,0x2237,INVALC,INVALC,INVALC,INVALC,0x215F,0x215E, - 0x2242,INVALC,INVALC,0x215B,INVALC,INVALC,0x215D,0x215C, - 0x2244,0x2245,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 39, Array index 0x0C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x215A,0x2159,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x224F,0x224E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x2250,INVALC,0x2251,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x214F,INVALC,0x214E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x223C,0x223D,INVALC,0x2240,0x223B,0x223E,INVALC,0x223F, - 0x224D,0x225B,0x225C,INVALC,0x225D,0x225A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 49, Array index 0x0D00 */ - 0x2121,0x2122,0x2123,0x2128,INVALC,INVALC,INVALC,INVALC, - 0x2134,0x2135,0x2136,0x2137,0x2138,0x2139,0x213A,0x213B, - 0x213C,0x213D,INVALC,0x216B,0x2132,0x2133,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2A21,0x2A22,0x2A23,0x2A24,0x2A25,0x2A26,0x2A27, - 0x2A28,0x2A29,0x2A2A,0x2A2B,0x2A2C,0x2A2D,0x2A2E,0x2A2F, - 0x2A30,0x2A31,0x2A32,0x2A33,0x2A34,0x2A35,0x2A36,0x2A37, - 0x2A38,0x2A39,0x2A3A,0x2A3B,0x2A3C,0x2A3D,0x2A3E,0x2A3F, - 0x2A40,0x2A41,0x2A42,0x2A43,0x2A44,0x2A45,0x2A46,0x2A47, - 0x2A48,0x2A49,0x2A4A,0x2A4B,0x2A4C,0x2A4D,0x2A4E,0x2A4F, - 0x2A50,0x2A51,0x2A52,0x2A53,0x2A54,0x2A55,0x2A56,0x2A57, - 0x2A58,0x2A59,0x2A5A,0x2A5B,0x2A5C,0x2A5D,0x2A5E,0x2A5F, - 0x2A60,0x2A61,0x2A62,0x2A63,0x2A64,0x2A65,0x2A66,0x2A67, - 0x2A68,0x2A69,0x2A6A,0x2A6B,0x2A6C,0x2A6D,0x2A6E,0x2A6F, - 0x2A70,0x2A71,0x2A72,0x2A73,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2B21,0x2B22,0x2B23,0x2B24,0x2B25,0x2B26,0x2B27, - 0x2B28,0x2B29,0x2B2A,0x2B2B,0x2B2C,0x2B2D,0x2B2E,0x2B2F, - 0x2B30,0x2B31,0x2B32,0x2B33,0x2B34,0x2B35,0x2B36,0x2B37, - 0x2B38,0x2B39,0x2B3A,0x2B3B,0x2B3C,0x2B3D,0x2B3E,0x2B3F, - 0x2B40,0x2B41,0x2B42,0x2B43,0x2B44,0x2B45,0x2B46,0x2B47, - 0x2B48,0x2B49,0x2B4A,0x2B4B,0x2B4C,0x2B4D,0x2B4E,0x2B4F, - 0x2B50,0x2B51,0x2B52,0x2B53,0x2B54,0x2B55,0x2B56,0x2B57, - 0x2B58,0x2B59,0x2B5A,0x2B5B,0x2B5C,0x2B5D,0x2B5E,0x2B5F, - 0x2B60,0x2B61,0x2B62,0x2B63,0x2B64,0x2B65,0x2B66,0x2B67, - 0x2B68,0x2B69,0x2B6A,0x2B6B,0x2B6C,0x2B6D,0x2B6E,0x2B6F, - 0x2B70,0x2B71,0x2B72,0x2B73,0x2B74,0x2B75,0x2B76,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 50, Array index 0x0E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2421,0x2422,0x2423,0x2424,0x2425,0x2426,0x2427, - 0x2428,0x2429,0x242A,0x242B,0x242C,0x242D,0x242E,0x242F, - 0x2430,0x2431,0x2432,0x2433,0x2434,0x2435,0x2436,0x2437, - 0x2438,0x2439,0x243A,0x243B,0x243C,0x243D,0x243E,0x243F, - 0x2440,0x2441,0x2442,0x2443,0x2444,0x2445,0x2446,0x2447, - 0x2448,0x2449,0x244A,0x244B,0x244C,0x244D,0x244E,0x244F, - 0x2450,0x2451,0x2452,0x2453,0x2454,0x2455,0x2456,0x2457, - 0x2458,0x2459,0x245A,0x245B,0x245C,0x245D,0x245E,0x245F, - 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467, - 0x2468,0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F, - 0x2470,0x2471,0x2472,0x2473,0x2474,0x2475,0x2476,0x2477, - 0x2478,0x2479,0x247A,0x247B,0x247C,0x247D,0x247E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 51, Array index 0x0F00 */ - 0x2931,0x2932,0x2933,0x2934,0x2935,0x2936,0x2937,0x2938, - 0x2939,0x293A,0x293B,0x293C,0x293D,0x293E,0x293F,0x2940, - 0x2941,0x2942,0x2943,0x2944,0x2945,0x2946,0x2947,0x2948, - 0x2949,0x294A,0x294B,0x294C,0x225F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2831,0x2832,0x2833,0x2834,0x2835,0x2836,0x2837,0x2838, - 0x2839,0x283A,0x283B,0x283C,0x283D,0x283E,0x283F,0x2840, - 0x2841,0x2842,0x2843,0x2844,0x2845,0x2846,0x2847,0x2848, - 0x2849,0x284A,0x284B,0x284C,INVALC,INVALC,INVALC,0x225E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 52, Array index 0x1000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x2749,0x274A,0x274B,0x274C,0x274D,INVALC,INVALC,INVALC, - 0x273A,0x273B,0x275C,0x275D,0x275E,0x2736,0x2737,0x2738, - 0x2754,0x2755,0x2756,0x2757,0x2758,0x2721,0x2722,0x2723, - 0x2725,0x272B,0x272C,0x272D,0x272E,0x272F,0x2730,0x2731, - 0x2732,0x2733,0x2734,0x2727,0x2728,0x2729,0x272A,0x273D, - 0x273E,0x2765,0x2766,0x2767,0x2768,0x2761,0x2762,0x2763, - 0x273F,0x2740,0x2741,0x2742,0x2743,0x2744,0x2745,0x2746, - 0x2747,0x2748,0x274E,0x274F,0x2750,0x2751,0x2752,0x2753, - 0x275A,0x275B,0x2263,0x276C,0x2726,0x2760,0x276F,0x2261, - 0x273C,0x276D,0x2735,INVALC,INVALC,INVALC,INVALC,0x2739, - 0x276A,INVALC,INVALC,0x276B,INVALC,INVALC,0x275F,INVALC, - 0x2264,INVALC,INVALC,0x2764,0x276E,0x2769,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 79, Array index 0x1100 */ - 0x6C69,0x6F4B,INVALC,0x7652,INVALC,INVALC,INVALC,0x5832, - 0x6D5B,0x5F32,0x5F3E,0x793B,INVALC,0x5C74,INVALC,INVALC, - INVALC,0x7564,INVALC,INVALC,0x7326,0x5D60,0x6126,INVALC, - 0x4E78,0x5C30,INVALC,INVALC,INVALC,INVALC,0x632A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7169,INVALC,INVALC, - INVALC,INVALC,0x4D7A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7C2F,0x5321,INVALC,0x712B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6751,0x522C,INVALC,0x4E79,INVALC,INVALC, - INVALC,INVALC,INVALC,0x717D,INVALC,0x5E3F,0x7B3A,0x7939, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E52,INVALC, - 0x632B,0x6B60,INVALC,INVALC,INVALC,0x4E7A,0x4B77,0x6525, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4A61,INVALC,0x544C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6A61,INVALC,INVALC,0x5C63,0x5F2D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B6B,INVALC, - INVALC,INVALC,0x552F,INVALC,INVALC,INVALC,0x5675,INVALC, - 0x6578,INVALC,INVALC,0x5E40,0x6C23,INVALC,0x694D,INVALC, - 0x6A27,0x6976,0x7B3B,INVALC,0x6769,0x6F4C,INVALC,INVALC, - 0x5066,INVALC,INVALC,0x5E41,INVALC,INVALC,0x642C,INVALC, - INVALC,0x584C,0x7971,INVALC,0x4E5F,0x7A24,0x6632,INVALC, - 0x7A7B,INVALC,INVALC,0x7A3D,0x4C48,0x6F4D,0x5555,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5322,INVALC, - INVALC,INVALC,0x6C51,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6427,0x6C52,INVALC,INVALC,0x7631,INVALC,INVALC,0x4E7B, - INVALC,INVALC,0x5051,0x4B3F,INVALC,0x6D24,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6D28,0x5E42,0x7662,0x6D5C, - 0x5C75,0x6039,INVALC,INVALC,INVALC,0x544E,INVALC,0x7435, - INVALC,INVALC,INVALC,0x535B,0x5635,0x6C24,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6466,INVALC,0x716A,INVALC,INVALC,INVALC,0x4B6C,0x4B40, - INVALC,INVALC,INVALC,0x6C72,INVALC,INVALC,INVALC,INVALC, - /* Block 80, Array index 0x1200 */ - INVALC,0x506A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7972,0x6C25,0x505F,INVALC,0x676A,0x506B,0x5C51, - 0x5B69,0x7D4C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B57, - INVALC,INVALC,INVALC,INVALC,0x5A61,INVALC,0x5636,INVALC, - 0x635F,INVALC,0x5E43,INVALC,0x5E44,0x4A21,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6E6C,INVALC,INVALC,0x5323,0x6E37, - 0x784F,INVALC,INVALC,INVALC,INVALC,0x6A48,0x6E38,0x712C, - 0x7125,0x694E,INVALC,INVALC,INVALC,0x793C,INVALC,INVALC, - INVALC,0x6579,0x6C6A,0x5D56,0x6D42,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7825,INVALC,INVALC,INVALC,INVALC,INVALC,0x653A, - 0x5B58,INVALC,INVALC,0x4A22,INVALC,INVALC,0x514D,INVALC, - INVALC,INVALC,0x6E6D,INVALC,INVALC,INVALC,0x6C6B,0x5E45, - INVALC,0x6360,INVALC,0x4A49,0x7269,INVALC,0x554E,INVALC, - 0x7636,INVALC,0x4E42,0x5647,INVALC,0x6334,INVALC,0x712D, - INVALC,0x6A62,INVALC,INVALC,INVALC,INVALC,0x5742,INVALC, - 0x7327,INVALC,INVALC,0x4D6A,INVALC,0x6B6E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5932,0x7D25, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7655,0x5562,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7835, - INVALC,INVALC,0x4C75,0x7535,0x642D,INVALC,INVALC,INVALC, - INVALC,0x676B,0x7155,INVALC,INVALC,INVALC,0x703B,INVALC, - INVALC,0x6935,INVALC,0x4C49,0x7A55,INVALC,INVALC,0x6154, - INVALC,INVALC,0x5756,INVALC,INVALC,0x5C41,INVALC,0x5E46, - 0x7A6F,0x6361,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6173,0x5C76, - INVALC,0x4E7C,INVALC,0x5B44,INVALC,0x7871,INVALC,INVALC, - 0x5C64,INVALC,0x656F,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 81, Array index 0x1300 */ - INVALC,INVALC,0x5C31,INVALC,INVALC,INVALC,0x5556,INVALC, - INVALC,0x735A,INVALC,0x4B41,INVALC,0x5B43,INVALC,INVALC, - INVALC,0x597A,0x536E,INVALC,INVALC,INVALC,0x7A38,INVALC, - INVALC,0x7D26,0x6B6F,INVALC,0x7426,INVALC,0x4C4A,0x7328, - INVALC,0x735B,INVALC,0x5B27,0x7637,INVALC,0x4F66,0x7072, - 0x4B5A,INVALC,0x6752,0x5743,0x7670,0x685E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6526,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6567,INVALC,INVALC,INVALC,0x4A23, - 0x4C27,0x6A49,INVALC,INVALC,INVALC,INVALC,INVALC,0x7836, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7A25,INVALC,INVALC, - INVALC,INVALC,0x712E,INVALC,0x6F4E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4B6D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7630,0x6F4F,0x694F,INVALC, - 0x775E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4E53,INVALC,INVALC,INVALC,INVALC,0x5C77,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5B28,INVALC,INVALC, - INVALC,0x4B78,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5F21,0x5D61,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x754A,0x6936,INVALC,INVALC, - INVALC,INVALC,0x676C,0x6E6E,INVALC,0x7370,INVALC,0x5F3F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C4B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5041,INVALC,INVALC, - INVALC,0x7452,0x603A,INVALC,INVALC,INVALC,INVALC,0x5F40, - INVALC,0x4E60,INVALC,INVALC,INVALC,0x5C52,0x7D6A,INVALC, - INVALC,INVALC,0x5676,INVALC,INVALC,INVALC,0x6A4A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6869,INVALC,0x632C, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7350,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A24,INVALC,0x5B78,INVALC,INVALC,INVALC,0x5E47, - /* Block 82, Array index 0x1400 */ - 0x6B70,0x7156,INVALC,INVALC,0x6562,INVALC,0x4C4C,INVALC, - INVALC,0x4B7B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6A63,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F41, - INVALC,0x566D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6950,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6E39,INVALC,INVALC,INVALC,INVALC,0x5563, - INVALC,INVALC,0x5153,INVALC,0x6570,INVALC,INVALC,INVALC, - 0x6834,0x6B43,INVALC,0x6A2A,0x7A7C,0x7576,0x703C,0x7D54, - 0x603B,0x4E43,INVALC,0x503A,0x773A,0x5873,0x774D,INVALC, - INVALC,INVALC,0x642E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x545F,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5067,INVALC,INVALC,0x6C7D,INVALC,0x522E, - 0x6E6F,0x5557,0x6A64,0x7822,0x4D6B,0x573F,0x7B31,INVALC, - INVALC,0x4D6C,INVALC,INVALC,INVALC,0x5C32,0x506C,0x4E7D, - 0x6E70,INVALC,INVALC,INVALC,0x4C42,INVALC,INVALC,INVALC, - 0x506D,INVALC,INVALC,INVALC,INVALC,INVALC,0x6577,INVALC, - INVALC,INVALC,0x737C,INVALC,INVALC,0x6E22,INVALC,INVALC, - INVALC,INVALC,0x5933,INVALC,INVALC,0x5874,INVALC,0x6937, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4E2E,INVALC,INVALC,INVALC,INVALC,0x5922,INVALC,INVALC, - INVALC,INVALC,0x5871,INVALC,0x544F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6527,0x5552, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5629,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7422,INVALC,0x7157,INVALC, - INVALC,0x5558,INVALC,0x703D,0x5750,0x5450,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x574F,0x6B6A,0x7D6B,INVALC, - INVALC,0x5B6D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7C45,0x4B42,INVALC,INVALC,INVALC,INVALC,0x7D55,INVALC, - 0x7448,0x686A,0x7573,INVALC,INVALC,0x795E,INVALC,INVALC, - /* Block 83, Array index 0x1500 */ - 0x536F,INVALC,INVALC,0x6C53,INVALC,INVALC,0x5D42,0x6F37, - 0x6754,INVALC,0x4A4A,INVALC,INVALC,INVALC,0x597B,INVALC, - INVALC,0x7A7D,INVALC,INVALC,INVALC,INVALC,INVALC,0x562A, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7478,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7777,0x5C2C,INVALC,INVALC, - INVALC,0x5757,0x5F22,INVALC,INVALC,INVALC,0x4E3E,INVALC, - 0x5370,INVALC,INVALC,INVALC,INVALC,INVALC,0x7024,0x616C, - 0x4F67,0x734B,0x6D29,0x4A3E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x746F,INVALC,INVALC,INVALC,0x764E, - INVALC,INVALC,0x5E7B,0x503B,0x5537,0x6E71,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7428,INVALC,0x5C78,INVALC, - INVALC,INVALC,INVALC,0x4B27,INVALC,0x5A4E,INVALC,INVALC, - INVALC,0x6066,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6D25,0x6E72,INVALC,INVALC,INVALC,INVALC,0x5C79, - INVALC,INVALC,0x795C,INVALC,INVALC,0x735C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7872,INVALC,0x7479, - INVALC,INVALC,INVALC,0x7C71,INVALC,INVALC,INVALC,0x503C, - 0x5B79,0x5731,INVALC,INVALC,INVALC,0x4B7C,INVALC,INVALC, - INVALC,0x7025,0x4B7D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5574,INVALC,INVALC,INVALC,0x4D6D, - 0x4A25,INVALC,INVALC,0x562B,0x5042,INVALC,INVALC,INVALC, - INVALC,0x703E,0x523D,0x4C24,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7A36,INVALC, - INVALC,0x4C4D,INVALC,0x5A7A,INVALC,0x764F,INVALC,0x6938, - INVALC,0x5875,INVALC,INVALC,INVALC,0x4C4E,INVALC,INVALC, - INVALC,INVALC,0x574D,INVALC,INVALC,0x5451,0x696D,INVALC, - 0x4A6B,0x5962,INVALC,0x7D32,INVALC,0x632D,0x564C,0x5934, - INVALC,INVALC,0x6127,0x6E53,0x5043,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7D33,INVALC,0x5564,INVALC,INVALC, - 0x4F68,INVALC,0x6D43,0x5032,INVALC,INVALC,0x4E7E,0x5A28, - /* Block 84, Array index 0x1600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x7850,INVALC,INVALC, - 0x7D56,INVALC,INVALC,INVALC,INVALC,0x7851,INVALC,0x7852, - 0x5C53,INVALC,INVALC,INVALC,INVALC,0x5D62,0x7B79,0x5D41, - INVALC,0x6335,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6D5D,0x4E44,INVALC,0x4B21,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D63,INVALC,INVALC,INVALC,INVALC,0x7C5D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x792F,INVALC,INVALC,INVALC,INVALC,INVALC,0x527B, - 0x4F21,0x6428,INVALC,0x7436,0x6C7E,INVALC,INVALC,0x632E, - 0x676D,0x7D41,0x5A62,INVALC,INVALC,0x5833,INVALC,INVALC, - INVALC,0x5D64,0x706F,0x7671,0x7A70,INVALC,INVALC,0x5175, - INVALC,INVALC,0x5A4F,INVALC,0x5C54,INVALC,0x5C26,INVALC, - 0x6F3F,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E4F,INVALC, - 0x6059,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5956, - 0x6C54,0x6A4B,INVALC,INVALC,0x4A3F,0x5530,INVALC,0x4F69, - INVALC,INVALC,INVALC,INVALC,INVALC,0x716D,INVALC,0x4C4F, - INVALC,INVALC,INVALC,INVALC,0x6478,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x646D,INVALC,INVALC,INVALC,INVALC, - 0x5758,INVALC,0x7D27,INVALC,INVALC,INVALC,INVALC,0x6A2B, - 0x7632,INVALC,INVALC,INVALC,INVALC,0x4F70,0x793D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6674,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4B5B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7351,INVALC,INVALC,INVALC,INVALC, - 0x6951,0x7329,0x5060,0x6952,INVALC,0x5A63,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6252,INVALC,0x7622,0x6174, - INVALC,INVALC,INVALC,0x5A64,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6755,0x753F,0x4F22,0x4D2F,0x4F23,INVALC,INVALC, - INVALC,0x4D30,0x717E,0x5023,0x612F,0x7823,INVALC,0x4A26, - 0x773B,0x726A,0x5E48,0x6953,INVALC,INVALC,INVALC,INVALC, - 0x5E49,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 85, Array index 0x1700 */ - INVALC,INVALC,INVALC,0x7D5E,0x4A40,INVALC,INVALC,INVALC, - 0x796A,0x514E,0x6E54,INVALC,0x5452,0x5923,0x7D28,0x5759, - 0x774E,0x7A3E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4F56,INVALC,0x5770,INVALC,0x6B61, - 0x7845,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C7A,INVALC, - INVALC,0x5D43,INVALC,0x795F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x676F,INVALC,INVALC,INVALC,INVALC, - 0x7D65,0x7623,INVALC,0x597C,0x7D29,INVALC,0x676E,INVALC, - INVALC,INVALC,0x5565,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F50,INVALC,0x4D31,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7722,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7132,INVALC,0x7131,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D32,INVALC,0x5A2B,INVALC,0x4A27,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6362,0x7B3C,0x5924,INVALC,INVALC, - 0x6E3A,INVALC,INVALC,INVALC,INVALC,INVALC,0x7853,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7B7A,INVALC,0x4F24,INVALC, - 0x5C7B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7663,INVALC,INVALC,INVALC, - 0x6D2A,INVALC,INVALC,0x7221,0x4E61,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7A26,INVALC,INVALC,INVALC,INVALC, - 0x7960,INVALC,INVALC,INVALC,INVALC,0x6C56,INVALC,INVALC, - 0x646E,0x7921,INVALC,INVALC,0x7B6F,INVALC,INVALC,INVALC, - 0x796B,0x6E23,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A2C,INVALC,INVALC,INVALC,0x4A28,INVALC,INVALC, - 0x747A,INVALC,INVALC,INVALC,INVALC,0x4D56,0x7C76,INVALC, - INVALC,INVALC,0x7449,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7854,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 86, Array index 0x1800 */ - INVALC,INVALC,INVALC,INVALC,0x7826,INVALC,0x5E4A,0x7246, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x575A,INVALC, - 0x5350,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5845,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A66, - INVALC,0x735D,INVALC,INVALC,INVALC,0x645A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7664,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7672,INVALC,0x5F42,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x597D, - INVALC,INVALC,INVALC,0x4C76,INVALC,INVALC,0x533A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x642F,INVALC, - INVALC,INVALC,INVALC,0x7961,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7026,INVALC,INVALC,INVALC, - 0x4B53,INVALC,INVALC,INVALC,0x603C,INVALC,0x744A,0x547A, - INVALC,0x7D2A,0x7962,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7437,0x7D42,0x7C30,INVALC,0x7D6C,0x4A62,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7D3D, - INVALC,0x6A67,0x5F43,0x5152,0x4E62,INVALC,0x5324,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7D2B,INVALC,0x5F60, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7247,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6770,INVALC,0x506E,INVALC,INVALC,0x732A, - INVALC,INVALC,INVALC,0x5E4B,0x7638,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6175,0x7133,INVALC, - /* Block 87, Array index 0x1900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7723,INVALC, - INVALC,0x4A29,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4F25,INVALC,INVALC,0x5F44, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6130, - INVALC,INVALC,0x703F,INVALC,0x7624,INVALC,0x6336,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7A46,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x506F,INVALC,INVALC,0x7D6D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5D44,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7C77,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x663F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E2D,INVALC,0x7A3F,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6571,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6D44,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5225,INVALC,INVALC,0x7D6E,INVALC,INVALC, - INVALC,0x7536,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6176,0x5E4C,INVALC,INVALC,0x7C5E,INVALC, - 0x6C57,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4D5D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5637,0x4D33,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 88, Array index 0x1A00 */ - INVALC,INVALC,INVALC,0x7855,0x6558,INVALC,INVALC,INVALC, - 0x4F6A,INVALC,INVALC,0x4F50,INVALC,0x6A4C,INVALC,INVALC, - INVALC,INVALC,0x6A2E,0x6A2D,INVALC,INVALC,0x5371,INVALC, - 0x5325,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x774F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6E24,INVALC,INVALC,INVALC,INVALC,0x5024,INVALC,INVALC, - 0x7222,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5070,INVALC,INVALC,INVALC,INVALC, - 0x7223,INVALC,0x7778,INVALC,INVALC,INVALC,INVALC,0x5033, - INVALC,INVALC,0x5B29,INVALC,INVALC,0x533B,0x4A6C,INVALC, - 0x7126,0x4B55,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7767,INVALC,INVALC,0x4D5E,INVALC,0x7724,INVALC, - INVALC,INVALC,0x7840,INVALC,INVALC,INVALC,0x535D,INVALC, - 0x4C50,INVALC,INVALC,INVALC,INVALC,0x4F26,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7673,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6177,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x535C,INVALC,INVALC,0x7A7E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7A27,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6B59,INVALC,0x4F27,0x6A2F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x646F,INVALC,INVALC,INVALC,0x6939, - 0x7158,INVALC,INVALC,0x5858,INVALC,INVALC,0x6072,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6634, - 0x5C7C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7371,INVALC,INVALC,INVALC,0x6350,INVALC,INVALC,0x727B, - INVALC,0x5B46,0x5071,INVALC,0x5072,INVALC,INVALC,INVALC, - /* Block 89, Array index 0x1B00 */ - 0x4F5C,INVALC,0x5351,INVALC,INVALC,0x4C31,0x7758,INVALC, - 0x4B28,0x6B3C,0x643E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x745C,INVALC, - INVALC,0x5C42,INVALC,INVALC,0x7027,INVALC,INVALC,0x6640, - INVALC,INVALC,0x4A6D,INVALC,INVALC,INVALC,INVALC,0x686B, - 0x6568,0x5C43,INVALC,INVALC,0x6D5E,0x5372,INVALC,INVALC, - INVALC,INVALC,0x4C77,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4E54,0x672B,INVALC,INVALC,INVALC,0x4B43, - INVALC,0x6131,INVALC,INVALC,0x7732,INVALC,INVALC,0x5373, - 0x5352,INVALC,0x7540,INVALC,INVALC,INVALC,0x5F5D,INVALC, - INVALC,0x6E73,0x6771,INVALC,0x7D34,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7248,INVALC,INVALC, - INVALC,0x7352,INVALC,INVALC,0x6E74,INVALC,0x6253,INVALC, - INVALC,INVALC,INVALC,0x4C51,INVALC,0x5F6A,INVALC,INVALC, - INVALC,0x693A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5957,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x754D,INVALC,0x7172,0x7A47, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5978,0x5442,INVALC,INVALC,INVALC,INVALC,0x7665,INVALC, - INVALC,INVALC,INVALC,0x5D45,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6772,0x6D5F,INVALC,INVALC,0x4A4B,INVALC, - INVALC,0x5B7A,INVALC,INVALC,INVALC,0x6835,INVALC,0x5326, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7D35,INVALC, - INVALC,0x7949,INVALC,0x6462,INVALC,0x7B3D,INVALC,INVALC, - 0x5724,0x4E45,INVALC,INVALC,INVALC,INVALC,0x4E55,0x5666, - INVALC,INVALC,INVALC,INVALC,0x653D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5E4D,0x6C73,INVALC,INVALC,0x6D60, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6C6C,0x7B3E,0x5F6B,INVALC,0x6178,INVALC,INVALC, - /* Block 90, Array index 0x1C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x793E, - INVALC,INVALC,INVALC,INVALC,0x5073,0x602A,0x6862,INVALC, - INVALC,0x6254,0x527D,INVALC,0x6528,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5953,INVALC,INVALC,INVALC,INVALC,0x535E, - INVALC,0x7438,0x773C,0x5C7D,INVALC,0x686C,0x6467,INVALC, - INVALC,0x6377,INVALC,INVALC,INVALC,INVALC,INVALC,0x6C28, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7A71,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6572,INVALC,INVALC,0x5074, - 0x522F,0x5C65,INVALC,INVALC,INVALC,INVALC,0x5025,0x7134, - 0x7C31,0x4C78,INVALC,INVALC,0x5D46,0x7A51,INVALC,0x775F, - INVALC,INVALC,0x7A28,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6E75,INVALC,0x5E4E,INVALC,INVALC,INVALC,INVALC,0x6773, - INVALC,INVALC,0x772C,0x6B44,0x6D61,0x602B,0x5D47,INVALC, - INVALC,INVALC,INVALC,0x5233,0x523F,INVALC,INVALC,INVALC, - 0x4A4C,INVALC,INVALC,INVALC,INVALC,0x7B3F,INVALC,INVALC, - INVALC,INVALC,0x657D,0x5D65,0x584D,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6C74,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5075,INVALC,INVALC,0x686D,0x5052, - INVALC,0x5958,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7666,INVALC,INVALC, - 0x5B2A,INVALC,INVALC,INVALC,0x7760,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5859,INVALC,0x7423,INVALC,INVALC,0x745D,INVALC, - INVALC,INVALC,INVALC,0x6F51,INVALC,INVALC,0x5935,INVALC, - INVALC,0x6D2B,INVALC,0x6337,INVALC,INVALC,INVALC,INVALC, - 0x6E3B,0x4D34,INVALC,0x6073,0x6A4D,INVALC,INVALC,INVALC, - INVALC,0x6C75,0x686E,INVALC,0x4B29,0x712F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A4D,INVALC, - 0x6C29,INVALC,0x726B,INVALC,0x7D6F,INVALC,0x7973,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6641,INVALC,INVALC,0x6C58,INVALC,INVALC,INVALC,0x6D2C, - /* Block 91, Array index 0x1D00 */ - INVALC,0x6A4E,INVALC,0x685F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5E4F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5226,INVALC,INVALC,0x6774,0x5156,INVALC,INVALC,0x6642, - 0x6363,INVALC,INVALC,INVALC,INVALC,0x6430,INVALC,INVALC, - INVALC,0x5834,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7625,INVALC, - INVALC,INVALC,INVALC,INVALC,0x735E,INVALC,INVALC,INVALC, - INVALC,0x5725,INVALC,INVALC,INVALC,INVALC,0x7768,INVALC, - INVALC,0x6846,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7B66,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D66,INVALC,INVALC,INVALC,0x5C7E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x585A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5A2C,0x6A30,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6338,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A2A,0x6179,INVALC,0x6A31,INVALC,INVALC,INVALC, - INVALC,0x726C,INVALC,INVALC,0x7A6E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6E55,INVALC,INVALC,INVALC,INVALC,0x7974,INVALC, - INVALC,0x526C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 92, Array index 0x1E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x7B7B,INVALC,INVALC, - INVALC,0x7D70,INVALC,0x603D,0x4E63,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7846,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5E2E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5F45,INVALC,INVALC,0x653E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6D2D,0x7A6A,INVALC,INVALC,0x4D6E,0x6D26,INVALC,0x6D2E, - 0x706D,INVALC,0x5D21,INVALC,0x6D2F,0x7C78,INVALC,0x586B, - INVALC,INVALC,INVALC,0x4C79,0x4D35,INVALC,INVALC,INVALC, - INVALC,0x7A29,INVALC,0x615D,INVALC,INVALC,INVALC,INVALC, - 0x6255,0x6D4F,INVALC,INVALC,INVALC,0x5D22,INVALC,INVALC, - 0x794A,INVALC,0x6A68,INVALC,0x656D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x536B,INVALC,0x6954, - 0x617A,0x644C,INVALC,0x6164,0x6847,INVALC,INVALC,0x4E5B, - INVALC,INVALC,INVALC,0x5C55,INVALC,0x7735,0x7C73,0x7073, - 0x4E2F,0x7135,0x6F52,0x6848,0x6B71,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4B54,0x603E,0x6378,0x6A69,0x7C32,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6074,INVALC,0x4F60,INVALC, - 0x6E25,INVALC,INVALC,0x7A2A,0x6643,0x6132,0x4A2B,INVALC, - 0x6364,0x693B,INVALC,INVALC,INVALC,INVALC,INVALC,0x6256, - 0x7372,INVALC,0x6E56,0x6A32,0x5076,0x6C59,0x5A4B,0x4F28, - INVALC,INVALC,INVALC,INVALC,0x5D23,INVALC,INVALC,INVALC, - 0x585B,INVALC,0x794E,0x6955,0x6351,INVALC,INVALC,0x523C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x582C,0x734C, - INVALC,0x4D7B,0x7656,INVALC,0x6775,0x686F,0x6379,0x523B, - 0x7373,0x637B,INVALC,0x5E50,0x4E30,INVALC,0x5677,0x7159, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7541,0x5C44,INVALC, - 0x753B,INVALC,0x5E51,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 93, Array index 0x1F00 */ - INVALC,0x5C66,INVALC,INVALC,0x5E52,INVALC,INVALC,0x6D62, - 0x6E76,0x6A4F,0x706E,0x637C,INVALC,0x535F,0x5374,0x6133, - INVALC,0x6134,INVALC,INVALC,INVALC,INVALC,0x7453,INVALC, - INVALC,0x5F46,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6956,INVALC,INVALC,INVALC, - 0x5B2B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7626,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6339,0x6B45,0x7429,0x4D36,0x5279,INVALC,0x5A2D,0x5263, - 0x4F51,INVALC,INVALC,INVALC,INVALC,0x4B5C,0x4C7A,INVALC, - 0x4F5D,INVALC,INVALC,0x6829,INVALC,0x633B,0x633A,INVALC, - INVALC,0x605A,INVALC,INVALC,INVALC,0x6E77,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C33,INVALC,INVALC,INVALC,INVALC, - 0x5375,INVALC,0x5726,INVALC,0x7635,0x575B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6155,INVALC,INVALC,0x546A, - INVALC,0x5F23,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7D5F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5077,0x6D54,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4B2A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x645B,INVALC,0x617B,0x4B22,INVALC,INVALC,INVALC, - INVALC,0x5360,INVALC,0x643F,INVALC,0x7B40,INVALC,0x5A3E, - 0x644D,INVALC,0x5639,INVALC,INVALC,INVALC,0x6F40,INVALC, - 0x617C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7639,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5F47,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6431,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C67, - 0x5C68,INVALC,INVALC,INVALC,0x7A56,INVALC,0x5376,INVALC, - INVALC,INVALC,INVALC,0x715A,INVALC,0x7A72,INVALC,INVALC, - /* Block 94, Array index 0x2000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x627D, - INVALC,INVALC,INVALC,INVALC,INVALC,0x554F,0x5078,INVALC, - INVALC,0x4D5F,INVALC,INVALC,0x754B,INVALC,0x6470,0x4B2B, - INVALC,0x5744,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x627E, - INVALC,0x5D5A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5A2E,0x4A6E,INVALC,INVALC,INVALC, - 0x5539,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6321,INVALC,INVALC,0x6863,INVALC,INVALC,0x732B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F29, - INVALC,INVALC,INVALC,0x5377,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5471,INVALC,INVALC, - 0x4E64,INVALC,0x6872,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6575,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x672E,INVALC,0x563A,INVALC,0x5F6C,0x6440,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6864,INVALC,INVALC, - INVALC,INVALC,0x5835,INVALC,INVALC,INVALC,0x645C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7439,0x7136,INVALC, - INVALC,0x625E,0x6135,INVALC,INVALC,0x4D6F,0x7127,0x4E65, - 0x4B5D,INVALC,INVALC,0x5963,INVALC,INVALC,0x732C,INVALC, - INVALC,0x5079,0x6C2B,0x5E53,0x7769,INVALC,INVALC,0x7975, - INVALC,INVALC,INVALC,INVALC,INVALC,0x615E,0x4B6E,INVALC, - /* Block 95, Array index 0x2100 */ - INVALC,INVALC,0x633C,0x7856,INVALC,INVALC,0x5B6E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7D71,INVALC,INVALC,INVALC, - INVALC,0x7736,INVALC,INVALC,INVALC,INVALC,0x745E,INVALC, - INVALC,0x726D,INVALC,0x5B59,INVALC,0x7028,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x617D,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5E54,INVALC,0x602C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6D63,INVALC,INVALC,0x5361,INVALC, - 0x5F48,INVALC,INVALC,INVALC,INVALC,0x5936,INVALC,0x7D2C, - 0x6F53,INVALC,INVALC,INVALC,0x6441,0x786B,INVALC,0x5B2C, - INVALC,INVALC,INVALC,INVALC,0x7C46,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x582D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x763A, - INVALC,0x5B5F,0x5353,0x7847,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4A4E,0x7841,0x5234,INVALC,INVALC,0x5C34, - 0x7A39,0x4A4F,INVALC,0x7C33,0x6A6A,0x6A6B,0x507A,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6D64,INVALC,INVALC,0x5D67, - INVALC,INVALC,0x5F49,INVALC,INVALC,INVALC,INVALC,0x5F6D, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6E3C,INVALC,0x6F41, - INVALC,INVALC,0x4C52,INVALC,0x5D24,INVALC,INVALC,INVALC, - 0x5F4A,INVALC,INVALC,INVALC,INVALC,INVALC,0x5378,0x7128, - INVALC,INVALC,INVALC,0x4D37,INVALC,0x6F54,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x645D,0x5F6E,0x4B2C, - 0x693C,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A6C,INVALC, - INVALC,INVALC,0x5F4B,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x793F,0x562F,0x5546,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4F2A,INVALC,INVALC,0x4E29,INVALC,INVALC,0x5678,INVALC, - INVALC,INVALC,0x7137,0x6E78,INVALC,INVALC,INVALC,0x5959, - 0x735F,INVALC,0x7848,0x4E46,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5566,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7466,INVALC,INVALC,0x6645,0x6F55, - INVALC,INVALC,0x4B6F,0x7C5F,INVALC,INVALC,INVALC,INVALC, - /* Block 96, Array index 0x2200 */ - INVALC,0x5C27,INVALC,INVALC,0x5667,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7849,INVALC,INVALC,INVALC,INVALC,0x6352, - INVALC,0x633D,INVALC,0x4F61,0x7040,0x6C5A,INVALC,0x5D57, - 0x7B70,INVALC,INVALC,0x6C2C,INVALC,INVALC,INVALC,0x7029, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7A57,0x7B41, - INVALC,0x5240,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6530,INVALC,INVALC,INVALC,0x6D65,INVALC,INVALC, - INVALC,INVALC,0x4B2D,INVALC,0x7930,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7725,INVALC,0x4B2E,INVALC,0x5A2F,INVALC,0x5836,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5327,0x7B32, - INVALC,0x7D44,INVALC,0x6C2D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7B21,INVALC,INVALC,INVALC,0x6569,0x696E, - INVALC,0x7374,0x7873,0x7041,0x5E2F,0x7830,INVALC,INVALC, - 0x7360,0x672F,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B2D, - INVALC,0x6635,INVALC,INVALC,0x7928,INVALC,INVALC,0x5D58, - 0x6859,0x6F56,INVALC,INVALC,INVALC,0x5362,INVALC,0x625F, - INVALC,INVALC,0x7C60,0x5748,0x7D2D,INVALC,INVALC,INVALC, - 0x5F6F,0x4C53,0x5379,INVALC,INVALC,INVALC,INVALC,0x5470, - 0x5B47,0x5E55,INVALC,INVALC,INVALC,INVALC,0x7074,INVALC, - 0x5550,0x6559,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7C47,0x5C56,0x6260,INVALC,INVALC,INVALC,0x5A30,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7323,INVALC,0x536C, - INVALC,0x744B,INVALC,INVALC,INVALC,0x7D45,INVALC,INVALC, - INVALC,INVALC,INVALC,0x637D,INVALC,0x7931,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x507B,0x6C5B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x753C,0x7224, - 0x584E,0x584F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7577,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7661,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5237,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7B6C,INVALC,0x5D48, - /* Block 97, Array index 0x2300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6468, - INVALC,INVALC,0x5241,INVALC,INVALC,INVALC,0x7857,INVALC, - INVALC,INVALC,INVALC,INVALC,0x563B,0x5E56,INVALC,INVALC, - 0x773D,0x6C2E,INVALC,INVALC,INVALC,0x5061,INVALC,0x6075, - 0x6A33,INVALC,0x4E56,INVALC,INVALC,INVALC,INVALC,0x4C25, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6C76,0x6261,0x633E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7C48,INVALC,INVALC, - 0x4D70,INVALC,0x7976,INVALC,INVALC,0x5F70,INVALC,INVALC, - INVALC,0x653F,INVALC,INVALC,INVALC,0x4E3F,INVALC,INVALC, - INVALC,INVALC,0x7C61,0x6D30,0x7D51,0x763B,INVALC,INVALC, - 0x794F,0x6B5A,0x4A41,INVALC,0x5238,0x4D71,INVALC,0x6353, - 0x7D66,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x666D,INVALC,INVALC, - INVALC,0x637A,INVALC,INVALC,0x702A,0x7950,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7C62,INVALC,0x7827,INVALC, - INVALC,INVALC,0x6165,0x6E79,INVALC,INVALC,INVALC,0x6776, - 0x6A6D,INVALC,INVALC,0x7C34,0x7542,INVALC,INVALC,0x575C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7075,INVALC,0x5D68,0x536D,0x757C,INVALC,0x5A3F,INVALC, - 0x4C7B,INVALC,INVALC,INVALC,0x537A,0x7424,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6F57,INVALC,0x5443, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7B63,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7B6D,INVALC,0x602D,INVALC,INVALC,0x6A6E, - 0x7B33,0x6442,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7667,0x525D,INVALC,0x5F4C,INVALC,INVALC,0x7C49,INVALC, - INVALC,0x6529,0x6076,0x7633,INVALC,INVALC,INVALC,INVALC, - /* Block 98, Array index 0x2400 */ - INVALC,0x617E,INVALC,INVALC,INVALC,INVALC,0x4B70,INVALC, - 0x6A6F,0x6A70,INVALC,INVALC,INVALC,0x5A40,0x7834,0x6B72, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6443,INVALC,INVALC, - INVALC,INVALC,0x6957,0x6471,INVALC,INVALC,INVALC,0x4A6F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E57, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7C4A,INVALC,INVALC,INVALC,0x7361,INVALC,INVALC,0x4B44, - INVALC,INVALC,INVALC,INVALC,0x6365,INVALC,0x4B45,0x6A34, - INVALC,INVALC,0x693D,INVALC,0x5749,INVALC,INVALC,0x6B5B, - 0x6D31,INVALC,0x4C43,0x773E,0x7C4B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7874,INVALC,0x5937,INVALC,INVALC, - 0x7353,0x7354,INVALC,INVALC,INVALC,0x7764,INVALC,0x7751, - INVALC,INVALC,0x5837,0x4E31,0x4A42,INVALC,INVALC,0x7B34, - 0x4B46,INVALC,INVALC,0x7076,INVALC,INVALC,0x5567,INVALC, - 0x6A50,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C54,0x4B2F, - INVALC,INVALC,INVALC,INVALC,INVALC,0x742A,0x692F,INVALC, - INVALC,0x7543,0x6958,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D69,INVALC,INVALC,INVALC,0x7173,INVALC, - 0x557B,0x5E3B,INVALC,INVALC,0x747B,INVALC,INVALC,INVALC, - 0x7D73,0x7D72,0x7726,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5D49,INVALC,INVALC,0x5453, - INVALC,0x4C28,INVALC,0x5A41,0x4C55,INVALC,0x5964,INVALC, - INVALC,INVALC,0x7A4A,INVALC,INVALC,INVALC,0x6563,INVALC, - INVALC,INVALC,0x533C,INVALC,INVALC,INVALC,0x4A70,INVALC, - INVALC,INVALC,INVALC,0x5044,INVALC,INVALC,INVALC,0x4A50, - 0x7A2B,0x6B6B,0x6778,0x5965,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5157,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7324,INVALC,INVALC,INVALC,0x547B,0x7C63, - 0x7A58,INVALC,0x7355,INVALC,0x4F2B,INVALC,INVALC,0x6B73, - /* Block 99, Array index 0x2500 */ - 0x557C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5354, - 0x4D7C,INVALC,0x5966,INVALC,0x6279,0x6221,0x6B54,INVALC, - 0x6077,0x6432,0x4C7C,INVALC,INVALC,INVALC,0x7B64,INVALC, - INVALC,INVALC,0x742B,INVALC,INVALC,INVALC,INVALC,0x503D, - INVALC,0x4A71,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6F38,INVALC,INVALC,INVALC,0x5740,INVALC, - 0x6E7A,0x7D74,INVALC,INVALC,0x5363,INVALC,0x7B42,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5568,0x5B2E, - 0x6136,0x7837,INVALC,INVALC,INVALC,INVALC,INVALC,0x603F, - 0x7B43,0x5D6A,INVALC,0x6222,INVALC,0x6E26,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7668,INVALC,INVALC,INVALC,INVALC, - 0x7675,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D4A,INVALC, - INVALC,0x5062,INVALC,INVALC,INVALC,INVALC,0x5D26,INVALC, - INVALC,0x5D6B,INVALC,INVALC,0x6479,INVALC,INVALC,0x632F, - 0x507C,INVALC,INVALC,INVALC,0x747C,INVALC,INVALC,INVALC, - INVALC,0x4C3C,0x776A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6564,0x5F71,INVALC,INVALC,0x7761,INVALC,0x7977, - 0x6F39,INVALC,INVALC,0x7858,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7929,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7859,INVALC,INVALC,INVALC,0x6E3D,INVALC,INVALC, - INVALC,0x5846,INVALC,INVALC,0x6463,0x754E,INVALC,INVALC, - INVALC,INVALC,0x5D59,INVALC,INVALC,INVALC,INVALC,0x5967, - 0x5239,0x5543,INVALC,INVALC,0x5A65,0x5A50,INVALC,0x5159, - 0x4E58,INVALC,0x4B5E,0x742C,0x5A7B,INVALC,0x7669,0x6873, - 0x4F2C,0x7070,INVALC,0x747D,0x5B48,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4E40,0x6354,0x514F,0x7175, - INVALC,0x4D72,INVALC,0x4F6B,INVALC,INVALC,INVALC,0x4D38, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6326,0x515A, - /* Block 100, Array index 0x2600 */ - INVALC,0x7225,INVALC,INVALC,INVALC,INVALC,INVALC,0x7226, - INVALC,0x644E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x537B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7129,INVALC,INVALC,INVALC,0x7249, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6F58,0x6649,INVALC,0x5838,0x7A73,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7335,INVALC,INVALC,0x7824,INVALC,INVALC,0x5173, - 0x6648,INVALC,INVALC,INVALC,INVALC,0x785A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C69, - 0x5E57,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B5F,INVALC, - INVALC,INVALC,0x4F6C,INVALC,INVALC,INVALC,INVALC,0x745F, - INVALC,INVALC,0x5174,0x523A,INVALC,INVALC,INVALC,0x5F72, - INVALC,INVALC,INVALC,0x6137,INVALC,INVALC,INVALC,INVALC, - 0x6223,0x537C,INVALC,INVALC,0x6D66,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5B49,INVALC,INVALC,INVALC,0x647A,INVALC, - 0x4F5E,INVALC,INVALC,0x4E50,INVALC,INVALC,INVALC,INVALC, - 0x5553,0x7375,0x772E,INVALC,INVALC,0x6F48,INVALC,0x4D73, - 0x754F,0x6573,0x7042,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4A51,INVALC,INVALC,INVALC,0x6A71,INVALC,0x5026,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x595A, - 0x702B,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B67,INVALC, - INVALC,INVALC,0x6540,0x7C35,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6444,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4C29,0x7D46,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6A35,INVALC,0x652A,0x5F3A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 101, Array index 0x2700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x615F,INVALC,0x5A51, - INVALC,INVALC,INVALC,INVALC,0x6138,INVALC,0x6874,0x537D, - INVALC,INVALC,INVALC,INVALC,0x6224,INVALC,INVALC,INVALC, - INVALC,INVALC,0x724A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5A66,0x7733,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7D4D,INVALC,INVALC,INVALC,0x7336,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6E57,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7544,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5824,INVALC,INVALC,INVALC,INVALC,INVALC,0x7227, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5938,0x5939,0x6F49,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x564E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x774B,0x5F2E,0x6875,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5235,INVALC,INVALC,INVALC,0x5355,INVALC, - INVALC,INVALC,INVALC,INVALC,0x744C,0x5A7C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5968,INVALC,0x776B,0x7549,INVALC, - 0x733C,INVALC,0x5A52,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5335,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6836,INVALC,INVALC,0x564F,0x743A,INVALC,0x7749, - INVALC,INVALC,0x4C2A,INVALC,INVALC,0x7043,0x4C56,INVALC, - INVALC,INVALC,0x5053,INVALC,0x533D,INVALC,INVALC,INVALC, - 0x5B7B,INVALC,0x4B60,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5364,0x7677,INVALC,INVALC,0x553A,0x734D,0x4B61, - INVALC,INVALC,INVALC,INVALC,0x6B74,INVALC,INVALC,INVALC, - INVALC,INVALC,0x742D,INVALC,0x7C2A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x776C,INVALC,INVALC,INVALC,0x6876,INVALC, - /* Block 102, Array index 0x2800 */ - 0x5A67,INVALC,INVALC,INVALC,0x774C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6541,INVALC,INVALC,INVALC,INVALC,0x606E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x557D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4E66,0x7C2B,0x553B,INVALC,INVALC,0x7228, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6225,0x4D39, - 0x6A72,0x4B47,INVALC,0x4D74,INVALC,INVALC,0x5B2F,0x6F59, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4D3A,INVALC,INVALC, - 0x7C79,INVALC,INVALC,INVALC,INVALC,0x5F73,0x4E67,0x5A42, - INVALC,0x4F2D,INVALC,INVALC,INVALC,INVALC,0x6779,0x7828, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7362,INVALC, - INVALC,INVALC,0x4A72,0x5F24,INVALC,INVALC,0x5444,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4C57,0x6542,INVALC,INVALC, - INVALC,INVALC,0x4D3B,INVALC,0x6F5A,0x6E58,INVALC,0x5D27, - 0x6226,INVALC,INVALC,INVALC,INVALC,INVALC,0x6040,INVALC, - INVALC,INVALC,0x5630,0x784A,INVALC,0x7C7A,INVALC,0x597E, - INVALC,INVALC,INVALC,INVALC,0x5E30,INVALC,INVALC,INVALC, - 0x5D6C,0x5A68,INVALC,INVALC,INVALC,INVALC,INVALC,0x5460, - INVALC,0x5679,INVALC,0x4D57,0x5E58,INVALC,INVALC,0x7278, - INVALC,0x6456,INVALC,INVALC,0x5045,0x742E,INVALC,0x5D28, - INVALC,INVALC,INVALC,0x6D45,0x7356,INVALC,INVALC,0x5E59, - 0x6366,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5328, - INVALC,0x5B30,INVALC,INVALC,0x655A,0x633F,INVALC,INVALC, - INVALC,0x5B31,INVALC,INVALC,INVALC,0x5569,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6041,0x6F5B,INVALC,INVALC,0x7069, - INVALC,INVALC,0x5732,INVALC,INVALC,INVALC,INVALC,0x507D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5969,INVALC,INVALC,0x507E,INVALC,0x6C6D,0x5329,INVALC, - 0x7229,0x7044,INVALC,INVALC,0x6262,0x696F,INVALC,INVALC, - INVALC,0x7951,INVALC,INVALC,0x6959,INVALC,INVALC,INVALC, - INVALC,INVALC,0x685A,0x5A43,0x5A44,0x5445,INVALC,0x677A, - /* Block 103, Array index 0x2900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D60,0x6330, - INVALC,0x5B32,0x7B44,INVALC,0x7363,INVALC,0x5925,0x7B67, - 0x5D4B,0x5054,INVALC,0x6636,0x602E,0x7D5A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C35,0x6078, - 0x6731,INVALC,INVALC,INVALC,INVALC,0x7570,INVALC,0x585C, - 0x6D46,INVALC,INVALC,INVALC,INVALC,0x6139,INVALC,0x6340, - 0x7940,0x6970,INVALC,INVALC,0x595B,INVALC,0x7364,INVALC, - INVALC,INVALC,0x5C36,0x6469,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7045,0x6341,0x7C4C,0x7C4D,INVALC,INVALC,INVALC, - INVALC,0x724B,INVALC,0x724C,INVALC,INVALC,INVALC,0x644F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x715B,INVALC,0x7A59,INVALC,0x7138,0x7D75,0x6079, - INVALC,INVALC,INVALC,INVALC,0x677B,0x7C37,0x7C64,0x7B45, - 0x6367,0x5839,INVALC,0x7678,INVALC,INVALC,0x5C45,0x4C58, - INVALC,INVALC,INVALC,0x602F,0x7467,INVALC,0x6F5C,0x4F7C, - 0x6F5D,INVALC,0x722A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7D3E,INVALC,INVALC,0x4A2C, - 0x7D3B,0x7D47,INVALC,INVALC,INVALC,INVALC,0x6732,INVALC, - 0x6A51,0x5F74,INVALC,INVALC,INVALC,INVALC,0x516C,0x645E, - 0x6543,INVALC,INVALC,INVALC,INVALC,0x5926,INVALC,INVALC, - 0x4D3C,INVALC,0x7365,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6D55,INVALC,INVALC,0x593A,INVALC, - INVALC,INVALC,0x6D67,0x7B35,0x786C,INVALC,INVALC,INVALC, - INVALC,0x6067,INVALC,0x4C59,INVALC,INVALC,0x5446,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6725,INVALC,0x5575,0x533E, - INVALC,0x7C7B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6472,INVALC, - INVALC,0x5F75,INVALC,INVALC,0x6878,0x786D,INVALC,INVALC, - 0x4E47,INVALC,INVALC,INVALC,INVALC,INVALC,0x7D76,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6858,INVALC,0x4D58,0x6756,0x4C5A,INVALC,INVALC,0x4A63, - 0x5F76,0x7047,0x7046,INVALC,0x583A,INVALC,0x7174,0x7470, - /* Block 104, Array index 0x2A00 */ - 0x754C,INVALC,INVALC,0x7C65,INVALC,INVALC,INVALC,INVALC, - 0x6A45,0x6A73,INVALC,0x5D5B,INVALC,0x5C57,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E7D,0x7279,INVALC,0x5547, - INVALC,INVALC,INVALC,0x5850,INVALC,0x7048,0x5121,0x5122, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5954,0x5668, - 0x594A,INVALC,0x5A31,0x5847,0x5C62,0x734E,0x7574,INVALC, - INVALC,0x7139,INVALC,INVALC,0x5A53,INVALC,0x766A,INVALC, - INVALC,INVALC,0x4F75,INVALC,INVALC,0x7D2E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A52,INVALC, - INVALC,0x5F34,INVALC,INVALC,INVALC,INVALC,0x575D,0x7A3A, - 0x6E27,0x753D,INVALC,0x7875,INVALC,INVALC,0x6D68,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5461,INVALC,0x5123,0x6156, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7978,INVALC,0x5B4A, - 0x4B79,0x5454,INVALC,0x595C,INVALC,0x6E3E,INVALC,0x776D, - INVALC,INVALC,INVALC,0x526E,INVALC,INVALC,0x6166,0x7779, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D6D, - INVALC,0x685B,INVALC,0x5B33,INVALC,INVALC,INVALC,0x5177, - 0x6030,INVALC,INVALC,0x5462,INVALC,0x7657,INVALC,0x5779, - INVALC,INVALC,0x585D,INVALC,0x4D7D,0x722B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D3D, - 0x7842,INVALC,INVALC,0x722C,INVALC,INVALC,0x4A2D,0x4A2E, - 0x4F2E,INVALC,INVALC,INVALC,INVALC,INVALC,0x6342,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5C37,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B5A, - 0x593B,0x4A73,0x7653,0x6678,0x6A75,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6A76,INVALC,INVALC,0x7679,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4F2F,INVALC,INVALC,0x4A53,INVALC,INVALC,0x4A2F, - 0x5230,0x713A,INVALC,0x5733,0x6343,0x737D,0x5E5A,INVALC, - INVALC,INVALC,INVALC,0x5E5B,INVALC,INVALC,0x6F5E,INVALC, - /* Block 105, Array index 0x2B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6263,0x6E7B,INVALC,INVALC,0x5F77,0x574A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E68,0x5B5B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x713B,INVALC,INVALC,INVALC,INVALC,0x6971, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7A37,0x5046,INVALC,INVALC,0x4C2B,0x6E28,INVALC,INVALC, - 0x4B7A,0x7979,0x4C7D,0x537E,INVALC,INVALC,INVALC,INVALC, - 0x6450,INVALC,INVALC,INVALC,INVALC,INVALC,0x726E,INVALC, - 0x5455,0x5F4D,INVALC,0x7C38,0x5150,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x724D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7752,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A54, - INVALC,0x5559,INVALC,INVALC,INVALC,0x585E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D59, - INVALC,INVALC,INVALC,0x6E29,0x763C,INVALC,INVALC,0x4C5B, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7049,INVALC,0x7C7C, - INVALC,0x6849,0x747E,INVALC,INVALC,INVALC,INVALC,0x677C, - 0x575E,INVALC,INVALC,INVALC,INVALC,0x5E5C,INVALC,0x702C, - 0x4C7E,0x4D61,INVALC,0x613A,INVALC,0x5B6F,0x5A32,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5125,0x5C38,INVALC,INVALC, - INVALC,0x5876,INVALC,0x5124,INVALC,0x4D62,INVALC,INVALC, - INVALC,INVALC,0x5C6A,INVALC,INVALC,0x7077,INVALC,0x704A, - 0x503E,INVALC,0x5D5C,INVALC,INVALC,INVALC,INVALC,0x5456, - 0x5356,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D50, - 0x4D21,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F35,INVALC, - INVALC,INVALC,0x5F78,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5421,0x4E32,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 106, Array index 0x2C00 */ - 0x684A,INVALC,INVALC,INVALC,INVALC,0x6B75,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6355,0x7550,INVALC, - INVALC,INVALC,0x7521,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5927, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x652B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x664B,INVALC,0x7571, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6545,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7923,0x605B,0x766B,INVALC,0x4B71, - INVALC,0x596A,0x7522,INVALC,INVALC,INVALC,0x5751,INVALC, - 0x5178,0x6A78,0x6A79,0x5A33,INVALC,INVALC,INVALC,INVALC, - 0x6F5F,INVALC,INVALC,0x716F,INVALC,0x6576,0x6E3F,0x6264, - INVALC,INVALC,INVALC,INVALC,INVALC,0x503F,INVALC,0x7A2C, - 0x7551,0x6733,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x693E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x724E,0x5B34,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7C4E,INVALC,0x5D6E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6734,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5734,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7734,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D3E,INVALC,0x5A69,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4F30,0x7759,0x7366,INVALC,INVALC, - 0x4E59,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4E2A,INVALC,0x4B48,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5027,INVALC,0x704B,INVALC,0x5047, - /* Block 107, Array index 0x2D00 */ - INVALC,INVALC,0x6445,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5B60,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x555A,INVALC,0x5727,INVALC,INVALC,INVALC,0x6E40, - INVALC,0x7876,INVALC,INVALC,INVALC,INVALC,0x7552,0x6D69, - INVALC,0x593C,INVALC,0x6546,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7523,INVALC,INVALC, - 0x5A54,0x6227,0x7B7C,INVALC,INVALC,0x715C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4A74,INVALC,INVALC,INVALC, - 0x687A,INVALC,INVALC,0x4E69,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6978,0x6265,INVALC,INVALC,INVALC,INVALC, - 0x5039,0x5472,INVALC,INVALC,INVALC,INVALC,INVALC,0x5126, - INVALC,0x5F4E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7C74,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x532A,INVALC,INVALC,INVALC,0x4C2C,INVALC,INVALC,INVALC, - INVALC,0x6F60,INVALC,INVALC,INVALC,0x6565,0x5055,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B7C, - INVALC,INVALC,INVALC,INVALC,0x7C66,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4B7E,0x6D6A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5E31,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7963,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5422,0x4F76,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5650,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x556A,0x716E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7A4B,INVALC, - INVALC,INVALC,INVALC,0x6521,INVALC,INVALC,INVALC,INVALC, - /* Block 108, Array index 0x2E00 */ - INVALC,INVALC,INVALC,INVALC,0x5531,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4F6D,INVALC,0x6D6B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5532,INVALC,INVALC,INVALC,0x553C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7D62,0x732D,INVALC,0x7D5B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6930,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5127,INVALC,INVALC,0x7D63,0x4E33,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7D64,0x7A4E, - INVALC,INVALC,INVALC,INVALC,0x4A30,INVALC,0x7727,INVALC, - 0x4F31,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6622, - INVALC,0x7C36,0x722D,0x6F61,0x732E,0x5C46,0x596B,INVALC, - INVALC,INVALC,0x6860,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6128,INVALC,INVALC,INVALC,INVALC,0x5576, - 0x4F7D,INVALC,INVALC,0x5E5D,INVALC,INVALC,INVALC,0x5951, - INVALC,INVALC,INVALC,0x646A,0x724F,INVALC,0x773F,INVALC, - INVALC,0x6266,0x6228,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6356,INVALC, - 0x6D51,INVALC,INVALC,INVALC,INVALC,INVALC,0x6979,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5631,0x5E32, - INVALC,INVALC,0x6068,INVALC,INVALC,0x532B,INVALC,0x6B5C, - INVALC,INVALC,0x5F2F,INVALC,0x4A43,INVALC,INVALC,0x6E7C, - INVALC,0x7D43,INVALC,INVALC,INVALC,0x6B76,0x4F32,INVALC, - INVALC,INVALC,INVALC,0x596C,INVALC,0x593D,INVALC,0x585F, - INVALC,INVALC,0x5438,0x6B3E,0x5D6F,INVALC,0x5D70,0x5D71, - 0x5D72,INVALC,INVALC,0x593E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7B46,0x4F33,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 109, Array index 0x2F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6E7D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x642B, - INVALC,0x5A45,INVALC,0x586C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5128,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6229,INVALC,INVALC,0x5E3C, - 0x6735,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B70,INVALC, - 0x6F62,0x7170,0x4F34,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B71,INVALC, - 0x6031,INVALC,INVALC,INVALC,INVALC,0x5F25,INVALC,0x7952, - INVALC,INVALC,0x677D,INVALC,INVALC,0x6623,0x7B71,0x4B30, - 0x722E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4D67,INVALC,0x685C,INVALC,INVALC,0x6757,INVALC,INVALC, - 0x7740,INVALC,0x5063,INVALC,INVALC,INVALC,0x5A21,INVALC, - INVALC,INVALC,0x4C3D,INVALC,INVALC,0x5129,0x5D4C,INVALC, - INVALC,0x637E,0x512A,0x682A,INVALC,0x6A36,0x797A,0x664C, - 0x7658,INVALC,INVALC,INVALC,0x5447,INVALC,INVALC,INVALC, - 0x594B,INVALC,0x5952,0x534B,0x5877,0x5A29,0x7578,INVALC, - INVALC,0x5E5E,0x722F,0x7829,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5848,INVALC,INVALC,0x6E41,INVALC, - INVALC,INVALC,INVALC,0x7941,INVALC,INVALC,INVALC,INVALC, - 0x5D73,0x6A7A,INVALC,0x763D,0x613B,0x4D3F,0x7454,0x664D, - INVALC,0x7C4F,0x7B22,INVALC,0x605C,INVALC,INVALC,INVALC, - INVALC,0x743B,0x5A55,INVALC,0x7932,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7B72,INVALC,0x5B76,INVALC,0x5E5F, - INVALC,INVALC,INVALC,0x5B72,INVALC,INVALC,INVALC,INVALC, - INVALC,0x785C,0x776E,0x6B68,INVALC,0x527A,INVALC,INVALC, - 0x713C,INVALC,INVALC,0x7A5A,INVALC,INVALC,0x5A6A,0x5A46, - 0x7741,INVALC,INVALC,0x6736,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 110, Array index 0x3000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6547,0x562C,INVALC,INVALC,INVALC, - INVALC,0x5C47,INVALC,INVALC,INVALC,INVALC,INVALC,0x6129, - INVALC,0x622A,INVALC,0x5526,INVALC,INVALC,0x5457,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7250,INVALC,0x6A7B, - INVALC,0x605D,0x7B73,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x713D,INVALC,INVALC,0x6267,0x7D57,INVALC, - 0x4E48,0x6A37,INVALC,0x7C40,INVALC,0x7D67,0x776F,INVALC, - INVALC,0x5735,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6F3A,0x715D,INVALC,0x5E33,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x684B,INVALC,INVALC,0x785D,INVALC, - INVALC,0x7B47,0x5548,INVALC,0x575F,INVALC,0x5D29,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6931,INVALC,INVALC,0x7A2D, - 0x7659,0x7A74,INVALC,INVALC,INVALC,INVALC,INVALC,0x782A, - INVALC,INVALC,INVALC,INVALC,INVALC,0x666E,INVALC,0x4C5C, - 0x613C,0x606F,INVALC,INVALC,0x693F,0x7C7D,0x664E,INVALC, - INVALC,0x6157,INVALC,0x664F,INVALC,0x7471,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6473, - INVALC,INVALC,0x647B,INVALC,INVALC,0x7964,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F63,INVALC,INVALC,0x4F6E,0x763E,0x6032,0x7C7E,0x512B, - INVALC,INVALC,INVALC,0x577A,INVALC,INVALC,INVALC,0x7B48, - INVALC,0x6257,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5423,0x7078,0x5728,INVALC,INVALC,INVALC,0x6167,INVALC, - INVALC,0x533F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F64,INVALC,0x5745,0x6B62,INVALC,INVALC,0x7C67,INVALC, - INVALC,0x6422,INVALC,0x6268,INVALC,0x6650,INVALC,0x7B68, - 0x7468,0x6574,0x743C,0x7455,INVALC,INVALC,INVALC,INVALC, - /* Block 111, Array index 0x3100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F36, - INVALC,0x7C39,0x6E42,0x4A75,INVALC,INVALC,INVALC,0x6F65, - 0x4B62,0x5424,INVALC,0x5E60,0x5A7D,0x6446,0x683E,INVALC, - INVALC,INVALC,INVALC,0x605E,0x7634,0x6A52,INVALC,0x797B, - INVALC,INVALC,0x6042,INVALC,0x4A64,INVALC,0x6737,INVALC, - 0x6A7D,INVALC,0x595D,INVALC,0x5A34,0x6E2A,0x7B69,INVALC, - INVALC,INVALC,INVALC,0x5B4B,0x5A35,INVALC,INVALC,INVALC, - INVALC,INVALC,0x713E,INVALC,INVALC,0x532C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7B49,INVALC, - 0x5F4F,INVALC,INVALC,0x5340,0x6357,INVALC,0x6F66,0x7C50, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6940, - INVALC,INVALC,INVALC,0x7553,INVALC,INVALC,0x6C5C,0x7737, - INVALC,INVALC,0x6A38,0x5179,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5C48,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6A39,INVALC,INVALC,INVALC,INVALC,INVALC,0x715E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5736,0x4F35,INVALC,0x5928, - INVALC,INVALC,0x6C6E,INVALC,INVALC,0x5D2A,INVALC,INVALC, - INVALC,INVALC,0x4D22,0x682E,INVALC,INVALC,INVALC,0x613D, - INVALC,0x7251,INVALC,INVALC,INVALC,INVALC,0x6941,INVALC, - INVALC,INVALC,0x527C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5B35,INVALC,0x7367,0x587E,INVALC,INVALC, - INVALC,0x7C51,INVALC,0x6D32,0x742F,INVALC,0x7B23,INVALC, - INVALC,0x7C41,INVALC,0x6E2B,0x5425,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7472, - INVALC,INVALC,INVALC,INVALC,0x6E59,INVALC,INVALC,INVALC, - 0x7B4A,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D63,0x583B, - /* Block 112, Array index 0x3200 */ - INVALC,0x655B,0x7877,INVALC,INVALC,INVALC,0x7654,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5729, - INVALC,0x4B49,INVALC,INVALC,0x6651,0x704C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x582E,INVALC,0x7953,0x557E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x583C,0x7230,INVALC,INVALC,INVALC, - INVALC,0x622B,0x7368,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F42,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D6C, - INVALC,0x6738,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5A7E,INVALC,INVALC,0x4C3E,INVALC,INVALC,0x727C, - 0x5A6B,INVALC,0x6258,0x6D56,INVALC,INVALC,0x5651,0x6033, - INVALC,INVALC,0x7C52,INVALC,0x6B48,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5341,0x704D,INVALC, - 0x4F77,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6D52,INVALC,0x5458,0x5C49,0x5771,INVALC, - INVALC,0x5F3B,INVALC,INVALC,0x7325,INVALC,INVALC,INVALC, - 0x744D,INVALC,INVALC,INVALC,INVALC,0x713F,0x7831,INVALC, - 0x697A,INVALC,INVALC,INVALC,0x7B4B,INVALC,INVALC,0x4A55, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7954,0x774A,INVALC,INVALC,0x5648, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7C68,0x733D, - INVALC,0x6E7E,INVALC,0x677E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5342,INVALC,INVALC,INVALC,INVALC,0x5336,INVALC, - 0x4C2D,0x767A,0x5632,0x5258,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6758,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6325,INVALC,INVALC, - INVALC,INVALC,0x6739,INVALC,INVALC,INVALC,INVALC,0x702D, - 0x7B4C,0x6B21,INVALC,INVALC,0x5426,INVALC,INVALC,INVALC, - INVALC,0x7B4D,INVALC,0x553D,0x715F,INVALC,INVALC,0x767B, - INVALC,0x5E34,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x556B,INVALC, - /* Block 113, Array index 0x3300 */ - INVALC,0x6548,INVALC,INVALC,INVALC,0x7B24,0x5439,INVALC, - INVALC,0x5E61,INVALC,0x6423,INVALC,INVALC,INVALC,0x5737, - INVALC,0x786E,INVALC,INVALC,INVALC,0x5E35,INVALC,INVALC, - 0x5652,INVALC,0x7955,0x673A,0x6B55,0x5577,0x6F67,0x613E, - INVALC,INVALC,INVALC,0x7A2E,INVALC,INVALC,INVALC,0x5669, - 0x566E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x673B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6C4B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5533,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4E34,INVALC,INVALC,INVALC, - 0x7B25,0x616E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7728,INVALC,INVALC,INVALC,INVALC,0x7B4E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x583D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7B7D,INVALC,INVALC,INVALC,INVALC, - 0x7C69,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4F36,INVALC,INVALC,INVALC,0x6D47,0x6E2C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4C5D,INVALC,INVALC, - INVALC,INVALC,0x7627,INVALC,INVALC,INVALC,0x667A,INVALC, - INVALC,INVALC,0x7524,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7D5C,0x6D33,0x4E49,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6F68,INVALC,INVALC,0x613F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7A5B,0x4B63,0x7729,INVALC,0x7B26, - INVALC,INVALC,INVALC,0x5C39,INVALC,INVALC,INVALC,0x7140, - 0x6D48,0x6F43,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x562D,INVALC,INVALC,0x7D4E,INVALC,INVALC,INVALC,0x6821, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7B74,0x5527,INVALC,INVALC,INVALC,0x7176,INVALC,0x6653, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C5E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7832,INVALC,INVALC,INVALC,0x5C6B,INVALC,INVALC, - /* Block 114, Array index 0x3400 */ - INVALC,INVALC,INVALC,INVALC,0x7D36,INVALC,INVALC,INVALC, - INVALC,0x656A,INVALC,INVALC,0x7160,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5B4C,0x5D4D,INVALC,INVALC,INVALC,0x5448,INVALC, - INVALC,0x596D,INVALC,INVALC,INVALC,INVALC,0x7525,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x667B,INVALC,INVALC,INVALC,INVALC,INVALC,0x6654,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7D48, - INVALC,0x5621,0x7D3F,INVALC,0x7C53,INVALC,0x6F21,INVALC, - 0x673C,INVALC,INVALC,INVALC,INVALC,INVALC,0x516E,INVALC, - INVALC,0x6655,INVALC,INVALC,0x6972,INVALC,0x5F30,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5860,0x7C3A,0x7D2F,0x704E, - INVALC,0x5B61,INVALC,INVALC,0x6549,INVALC,0x6D34,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6043,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6358,INVALC,INVALC,INVALC, - INVALC,0x697B,0x6A28,INVALC,INVALC,INVALC,INVALC,0x7D37, - INVALC,INVALC,0x7B27,INVALC,0x6942,INVALC,INVALC,INVALC, - INVALC,0x7D77,INVALC,INVALC,INVALC,INVALC,INVALC,0x6259, - INVALC,INVALC,0x5C6C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6822,INVALC,INVALC,INVALC, - INVALC,0x6670,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7D78,0x7D79,INVALC,INVALC,INVALC,0x763F,INVALC, - INVALC,0x6727,INVALC,0x6657,INVALC,INVALC,INVALC,INVALC, - 0x5473,0x5449,INVALC,INVALC,INVALC,INVALC,0x567A,INVALC, - 0x5772,INVALC,0x6140,INVALC,0x5B62,0x6658,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x673D, - INVALC,INVALC,INVALC,INVALC,INVALC,0x704F,0x733E,0x622C, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7537,0x6070,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7D38,0x6368,INVALC,0x5427,0x687C, - /* Block 115, Array index 0x3500 */ - 0x7A52,INVALC,INVALC,INVALC,INVALC,INVALC,0x786F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5653,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5534,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7050,INVALC,0x7770,0x6E33,INVALC,INVALC, - 0x6A3A,INVALC,0x6A53,INVALC,INVALC,0x6D49,0x5D2B,INVALC, - INVALC,INVALC,0x652C,0x7D21,INVALC,0x5F50,0x6C33,INVALC, - 0x5F51,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D6D,0x7838, - 0x777A,INVALC,INVALC,INVALC,0x782B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7460,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x543A,0x6433,INVALC,0x695A,INVALC,0x5E36,INVALC,0x593F, - INVALC,0x5940,0x566F,INVALC,INVALC,INVALC,INVALC,0x594C, - INVALC,0x5A2A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5F65,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7765,INVALC,INVALC,INVALC,0x4C32,INVALC,INVALC, - 0x5F79,0x5760,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x543B,INVALC,INVALC,INVALC,INVALC,0x7D7A, - INVALC,INVALC,INVALC,INVALC,0x4C33,INVALC,INVALC,0x5B73, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5F52,INVALC,0x4E4A,INVALC,0x6E5A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6464,INVALC, - 0x7B4F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F37, - INVALC,0x6E43,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E6A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x622D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5761,0x7A75,INVALC,INVALC,0x5549,0x782C,INVALC,INVALC, - /* Block 116, Array index 0x3600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6759,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7369,INVALC, - INVALC,INVALC,INVALC,0x586D,0x6344,0x7071,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6865,INVALC,INVALC, - INVALC,0x607A,0x6E44,0x595E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B22,0x6B23, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7C42,0x6A3B, - INVALC,INVALC,INVALC,INVALC,0x682B,0x5E62,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6D6F,INVALC,0x6823,INVALC,INVALC,INVALC,INVALC,0x4F71, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x543C,INVALC,0x7C6A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x673E,INVALC,0x7C72,INVALC,INVALC,0x5634,INVALC,INVALC, - 0x622E,INVALC,0x5337,0x7A4C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7A5C,INVALC,0x6D35,0x6163, - INVALC,0x682C,INVALC,0x685D,INVALC,INVALC,0x6F69,INVALC, - INVALC,INVALC,INVALC,INVALC,0x743D,INVALC,0x4F38,0x695B, - 0x512C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A47, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B49, - INVALC,0x684C,INVALC,INVALC,INVALC,0x5E37,INVALC,INVALC, - INVALC,INVALC,0x563C,0x5365,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7A5D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5A56,INVALC,0x4A31,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5A48,0x5F26,INVALC,0x7933,0x7252,INVALC,0x4A44, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E4B,INVALC, - INVALC,0x4D75,INVALC,INVALC,INVALC,0x7D30,0x5528,INVALC, - 0x7141,INVALC,INVALC,0x6269,0x5C4A,0x6C34,0x7A40,INVALC, - INVALC,0x7B28,0x5028,INVALC,INVALC,0x5A6C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x596E, - INVALC,0x607B,INVALC,INVALC,INVALC,0x6F6A,0x7A5E,INVALC, - /* Block 117, Array index 0x3700 */ - INVALC,0x6044,INVALC,0x4F39,INVALC,0x554A,0x5762,0x622F, - INVALC,0x5738,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x684D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x765A,INVALC,INVALC,INVALC,INVALC, - 0x6F22,0x625A,0x767C,INVALC,INVALC,0x7B50,0x512D,INVALC, - 0x4D64,INVALC,0x512E,0x5C6D,0x684E,INVALC,0x7079,0x4E35, - 0x667C,INVALC,INVALC,0x577B,0x5056,0x5D75,0x7771,INVALC, - 0x767D,INVALC,0x5B77,INVALC,INVALC,INVALC,INVALC,0x7B6A, - 0x695C,0x5941,INVALC,0x7572,0x6045,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6A54,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7942,INVALC,0x6A3C, - INVALC,0x5245,0x7B51,0x6740,0x6B25,INVALC,0x5F7A,0x6322, - 0x5739,INVALC,0x6943,INVALC,0x687D,0x682F,INVALC,INVALC, - 0x7253,0x7B29,0x5825,INVALC,INVALC,INVALC,INVALC,0x554B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5048,INVALC, - INVALC,INVALC,0x512F,0x5763,INVALC,INVALC,INVALC,0x6046, - INVALC,0x5622,INVALC,0x6D70,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5773,INVALC,INVALC,INVALC,0x7C54,INVALC,0x5A57,0x4C5F, - INVALC,0x7254,INVALC,0x5130,INVALC,0x4C60,INVALC,0x5B7D, - 0x733F,INVALC,0x7051,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7C3B,INVALC,0x6230,INVALC,INVALC,0x6625,INVALC,INVALC, - INVALC,0x625B,INVALC,INVALC,INVALC,0x5F5E,INVALC,0x6047, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x726F,INVALC, - INVALC,INVALC,0x4C61,INVALC,INVALC,INVALC,INVALC,0x566A, - INVALC,INVALC,INVALC,INVALC,0x6742,INVALC,INVALC,INVALC, - 0x4E36,INVALC,0x7340,INVALC,0x4D7E,INVALC,INVALC,INVALC, - 0x7B52,INVALC,0x7878,0x777B,INVALC,INVALC,0x683F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6837,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D36, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 118, Array index 0x3800 */ - INVALC,0x5C3A,INVALC,INVALC,0x4C34,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7177,INVALC,INVALC,INVALC,0x6838,INVALC,INVALC, - 0x4A76,INVALC,0x6424,0x7456,INVALC,INVALC,INVALC,0x5F66, - INVALC,INVALC,INVALC,0x5F27,INVALC,0x5F67,0x6141,INVALC, - 0x6944,INVALC,INVALC,0x5C4B,0x6945,INVALC,INVALC,INVALC, - 0x6F23,0x6B26,0x4B23,0x6369,INVALC,INVALC,INVALC,0x517B, - 0x6F24,INVALC,0x6F6B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5034, - INVALC,INVALC,INVALC,INVALC,0x4D23,INVALC,INVALC,0x6866, - INVALC,0x6F25,INVALC,0x534C,0x5A6D,INVALC,INVALC,INVALC, - INVALC,0x573A,INVALC,0x7255,0x7565,0x596F,INVALC,INVALC, - INVALC,INVALC,0x7934,INVALC,INVALC,0x5554,0x7D4F,INVALC, - INVALC,INVALC,0x5B63,INVALC,INVALC,INVALC,INVALC,0x7161, - 0x6C36,INVALC,INVALC,INVALC,INVALC,0x7B7E,0x5357,INVALC, - 0x5131,INVALC,0x4B31,INVALC,INVALC,INVALC,INVALC,0x5132, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B32,0x7142, - INVALC,INVALC,0x7461,0x7935,INVALC,INVALC,0x6143,0x6142, - INVALC,0x6B77,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5F28,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4B4A,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6639,INVALC,INVALC,INVALC,INVALC, - INVALC,0x785E,0x792A,0x4A77,INVALC,0x6D37,INVALC,INVALC, - 0x5338,0x7256,INVALC,INVALC,0x5459,0x6E45,0x7270,INVALC, - INVALC,INVALC,0x4A32,INVALC,INVALC,0x5C3B,INVALC,0x7178, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6C37,INVALC,INVALC, - INVALC,INVALC,0x654A,INVALC,0x7640,0x7D5D,INVALC,INVALC, - 0x5463,0x4C62,INVALC,0x7754,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5765,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5343,INVALC,0x5826,INVALC,0x7641,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D76,INVALC,0x4D40,INVALC,INVALC,INVALC, - /* Block 119, Array index 0x3900 */ - 0x655C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x654B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6144,INVALC,INVALC,INVALC,INVALC,INVALC,0x6830, - 0x7430,0x736A,0x5A6E,INVALC,0x573B,INVALC,0x6231,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x572A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x567B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x645F,INVALC,0x4A56,INVALC, - INVALC,INVALC,0x6B28,INVALC,INVALC,INVALC,0x5B7E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7642,INVALC,INVALC,0x6F3B,INVALC,INVALC,INVALC, - INVALC,0x547D,INVALC,INVALC,0x6048,INVALC,INVALC,INVALC, - 0x6839,INVALC,0x6F26,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4D24,INVALC,INVALC,0x5474,0x5B21,0x5B5C,0x5B5D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6E5C,INVALC,0x4B4B,0x7C55, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E6B,INVALC, - 0x4D41,INVALC,INVALC,0x7B53,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x792B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7554,INVALC,INVALC,INVALC,INVALC,0x5929, - INVALC,INVALC,0x695D,0x5B4D,INVALC,INVALC,0x5D4E,INVALC, - 0x6743,INVALC,0x6C4C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x796C,INVALC,INVALC,INVALC,0x4B4C,INVALC, - INVALC,INVALC,INVALC,0x607C,0x5428,INVALC,0x6D53,0x586F, - INVALC,0x7257,INVALC,0x4A78,0x5A6F,INVALC,INVALC,0x5654, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x594D,INVALC, - INVALC,INVALC,0x586E,INVALC,0x7241,INVALC,INVALC,INVALC, - 0x5F53,INVALC,INVALC,INVALC,0x5A70,INVALC,0x626A,INVALC, - /* Block 120, Array index 0x3A00 */ - INVALC,0x607D,INVALC,INVALC,0x5878,INVALC,INVALC,INVALC, - 0x772F,0x5A36,INVALC,0x4A57,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7258,INVALC, - 0x5879,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7A5F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F6F, - 0x5942,INVALC,0x7052,INVALC,0x6451,INVALC,INVALC,INVALC, - 0x7337,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7A60,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6F6C,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6232,INVALC,0x543D,INVALC,INVALC,0x594E,INVALC, - INVALC,INVALC,INVALC,0x7462,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5429,INVALC,INVALC,INVALC,INVALC,0x4D42,0x675A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7259,INVALC,INVALC,INVALC,INVALC, - INVALC,0x592A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x583E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5C2D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x626B,0x567C,INVALC,INVALC, - 0x4A79,INVALC,INVALC,0x545A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7457,0x4C21,INVALC,INVALC,0x4F3A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7538, - INVALC,INVALC,INVALC,0x5943,0x5068,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6345,0x6B78,INVALC,0x7231,INVALC,INVALC, - INVALC,0x4F3B,INVALC,INVALC,INVALC,0x532D,0x6861,0x4E6C, - INVALC,INVALC,INVALC,0x6034,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 121, Array index 0x3B00 */ - INVALC,INVALC,0x5E63,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D77,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7232,0x7376,0x765B, - INVALC,INVALC,INVALC,INVALC,0x577E,INVALC,INVALC,INVALC, - INVALC,INVALC,0x785F,INVALC,0x7772,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5029,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x665A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7526,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x573C,0x4C63,INVALC,INVALC,0x665B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5D5D,INVALC,INVALC,INVALC, - INVALC,0x5133,INVALC,INVALC,INVALC,INVALC,INVALC,0x6F6D, - INVALC,INVALC,INVALC,INVALC,0x565E,0x6474,0x616F,INVALC, - INVALC,0x5D78,INVALC,INVALC,INVALC,INVALC,INVALC,0x684F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4A65,INVALC,INVALC,INVALC,0x5C21, - INVALC,0x6035,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7C2C,0x7C2D,0x5827,INVALC,INVALC,INVALC, - INVALC,0x6D38,INVALC,INVALC,INVALC,0x5B36,INVALC,INVALC, - INVALC,INVALC,0x5670,0x732F,INVALC,INVALC,0x4D25,INVALC, - 0x5A71,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5828,INVALC,INVALC,INVALC,0x4C64,INVALC,INVALC,0x5134, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4A58,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5A72,INVALC,INVALC,INVALC,INVALC, - /* Block 122, Array index 0x3C00 */ - INVALC,0x7527,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7528,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6626,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x556C,0x5578,0x5A73,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6346,INVALC,INVALC,INVALC,0x5E64,INVALC, - 0x5E65,0x5135,INVALC,INVALC,INVALC,INVALC,INVALC,0x5136, - 0x5137,0x7233,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x695E,INVALC,INVALC,INVALC,INVALC,INVALC,0x7053,0x7234, - INVALC,INVALC,0x7054,0x4B64,0x7B54,0x7566,0x636A,INVALC, - 0x5E66,INVALC,INVALC,INVALC,INVALC,0x5F54,INVALC,INVALC, - 0x7879,INVALC,INVALC,INVALC,INVALC,0x702E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5138,INVALC,INVALC,INVALC,INVALC,0x565F, - INVALC,0x5057,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7C21,0x6F6E,0x5C58, - INVALC,0x695F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x655D,0x7D7B, - INVALC,INVALC,0x6049,INVALC,INVALC,INVALC,0x5649,INVALC, - INVALC,0x542A,INVALC,0x654C,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6960,INVALC,INVALC,INVALC,0x5058,0x7C22,0x543E, - 0x6233,0x5E67,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C3C,0x5236,0x7555,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E21,0x7529,INVALC,INVALC,0x5D79,INVALC,INVALC, - 0x5D7A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7055, - INVALC,INVALC,INVALC,INVALC,0x765F,INVALC,0x725A,0x646B, - INVALC,0x7271,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6C39,INVALC,INVALC,INVALC,INVALC, - /* Block 123, Array index 0x3D00 */ - 0x7D7C,INVALC,INVALC,INVALC,INVALC,0x612A,INVALC,INVALC, - 0x4A59,INVALC,INVALC,0x6F6F,INVALC,0x752A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6C79,INVALC,INVALC,0x782D, - INVALC,0x7242,0x7643,INVALC,0x5752,INVALC,INVALC,0x7922, - 0x7056,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x707A,INVALC, - INVALC,0x7660,INVALC,INVALC,INVALC,INVALC,0x6973,0x7243, - INVALC,INVALC,INVALC,0x542B,0x4A33,0x4D26,INVALC,0x4D43, - 0x4D5A,INVALC,INVALC,INVALC,INVALC,INVALC,0x594F,INVALC, - INVALC,0x7644,INVALC,INVALC,INVALC,0x6E5D,0x6744,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6234, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F62,0x675B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6831,INVALC,0x7C2E,INVALC,INVALC,INVALC,INVALC, - 0x654D,INVALC,INVALC,INVALC,0x7A6B,INVALC,0x4F3C,INVALC, - INVALC,0x4F62,0x4D76,INVALC,INVALC,0x6F70,INVALC,0x743E, - INVALC,0x544D,INVALC,INVALC,0x7338,INVALC,INVALC,INVALC, - 0x6921,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7272,0x736B,INVALC,0x7057,INVALC,INVALC, - 0x4F57,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F5F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6840,0x6841,INVALC,INVALC,INVALC,0x4F63,0x6922, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x502A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7341,0x502B,INVALC,0x5464, - INVALC,INVALC,0x6F3C,0x5821,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x595F, - INVALC,0x7357,INVALC,INVALC,INVALC,0x5C3D,INVALC,0x4C65, - 0x6D71,INVALC,INVALC,0x7162,INVALC,0x545B,INVALC,INVALC, - INVALC,INVALC,0x6235,INVALC,INVALC,0x4A66,INVALC,0x532E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C66,INVALC, - INVALC,0x7153,0x7567,INVALC,INVALC,INVALC,INVALC,0x4A5A, - /* Block 124, Array index 0x3E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7B6E, - INVALC,0x6145,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F69,INVALC,0x6E5E,INVALC,INVALC,0x7742,INVALC, - 0x5822,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D2C,INVALC, - INVALC,INVALC,INVALC,INVALC,0x702F,0x563D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x612B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7936,INVALC, - INVALC,0x5475,INVALC,0x5049,0x6F27,0x626C,INVALC,0x5B6A, - 0x4E4C,0x7568,0x7755,INVALC,0x534D,INVALC,0x737E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5035,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x607E,INVALC,0x5F7B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x665D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6824,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B4D, - INVALC,INVALC,INVALC,0x6F28,INVALC,INVALC,INVALC,0x6E34, - INVALC,INVALC,INVALC,INVALC,0x5A58,0x5139,INVALC,0x5F29, - INVALC,INVALC,0x7330,INVALC,INVALC,0x4C44,INVALC,INVALC, - INVALC,0x4E37,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6F29,INVALC,INVALC, - INVALC,0x5F55,INVALC,INVALC,0x6D57,INVALC,INVALC,INVALC, - 0x6E46,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6F3D,0x7C56,INVALC,INVALC,0x5B74,INVALC,0x6F2A,0x7839, - INVALC,0x7569,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6359,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6146,INVALC,INVALC,INVALC,0x543F,INVALC,INVALC,INVALC, - INVALC,0x5E68,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 125, Array index 0x3F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x706A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7342,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x532F,INVALC, - INVALC,0x4A5B,INVALC,INVALC,INVALC,INVALC,INVALC,0x7C57, - INVALC,INVALC,0x6D58,0x6147,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7458,0x5633,0x5D2D, - INVALC,INVALC,INVALC,0x553E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7143,0x6E5F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x566B,INVALC,INVALC,INVALC,0x7459,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5766,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5A37,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D7B,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D4F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5823,INVALC,INVALC,0x5A59,INVALC,0x7058, - 0x6F44,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6158, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7154,INVALC,0x6D72, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x555B,INVALC, - INVALC,0x555C,0x7344,0x4B57,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6236,INVALC,INVALC,INVALC,INVALC,0x6F71,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7B55,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5358,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D50,0x7059, - 0x4B33,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x555D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4D27,INVALC,INVALC,0x502C,INVALC, - /* Block 126, Array index 0x4000 */ - 0x513A,INVALC,0x7144,INVALC,0x6533,0x7B75,0x6961,0x7D60, - 0x7C3C,INVALC,0x5A22,0x5A23,INVALC,0x5221,INVALC,INVALC, - 0x526F,INVALC,INVALC,INVALC,0x626D,INVALC,INVALC,0x5E69, - 0x4E5C,0x7235,0x5064,0x5D51,INVALC,INVALC,INVALC,INVALC, - 0x6148,0x5B37,0x5F63,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6D39,0x7145,INVALC,0x734F,0x572B, - 0x612C,INVALC,INVALC,0x636B,INVALC,0x6E47,INVALC,INVALC, - INVALC,0x6149,0x4A7A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x707B,0x7A61,0x705A,0x4C67,0x5A74,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4C3F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E6D,INVALC, - INVALC,0x5529,0x7A62,INVALC,INVALC,INVALC,0x5065,INVALC, - 0x6B56,INVALC,0x6C5F,INVALC,INVALC,INVALC,0x5F7C,INVALC, - INVALC,0x7756,0x5E6A,0x4B34,INVALC,INVALC,0x6F3E,INVALC, - INVALC,0x4C35,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F3D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6F72,0x6237, - INVALC,INVALC,INVALC,0x4C68,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x707C,INVALC,INVALC,INVALC, - 0x5660,INVALC,0x7146,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6238,0x6B2B,INVALC,INVALC, - INVALC,0x4B35,0x5851,INVALC,0x744E,0x7377,INVALC,INVALC, - 0x5746,INVALC,0x513B,0x772A,INVALC,0x6D4A,0x5753,0x587A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7645, - INVALC,INVALC,0x514C,0x5D7C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F7D,INVALC, - 0x7965,INVALC,0x604A,INVALC,INVALC,0x727D,0x5330,INVALC, - 0x7473,0x5A49,INVALC,0x665E,INVALC,INVALC,INVALC,INVALC, - 0x783A,0x6850,INVALC,INVALC,0x587B,INVALC,INVALC,0x6A55, - INVALC,INVALC,INVALC,INVALC,0x5623,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7646,INVALC,INVALC,INVALC,INVALC, - /* Block 127, Array index 0x4100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x725B,0x647C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6832,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5A5A,INVALC,0x725C,0x7B56,0x6932, - INVALC,0x6E2D,INVALC,0x7A63,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C6E,INVALC,INVALC,0x756A,0x6660, - INVALC,0x707D,INVALC,INVALC,INVALC,INVALC,INVALC,0x572C, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7545,0x6E60,INVALC, - INVALC,0x5B65,INVALC,0x5D5E,INVALC,INVALC,0x5970,0x6923, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7179,INVALC,0x7244,0x604B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6924,INVALC, - INVALC,0x6239,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6331,0x7C6B,0x4D28,INVALC,0x4C36,INVALC,INVALC, - 0x705B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x663A,INVALC,INVALC,0x4D29,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7343,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6159,INVALC,INVALC,0x6F2B, - INVALC,INVALC,INVALC,0x6745,INVALC,INVALC,0x6069,INVALC, - 0x7345,INVALC,INVALC,0x5440,0x553F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 128, Array index 0x4200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5D2E,INVALC, - 0x797C,INVALC,0x4C40,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6522,INVALC,INVALC,INVALC, - 0x4E38,INVALC,INVALC,INVALC,0x5852,0x7956,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x712A,0x4E51,INVALC,INVALC,0x7647,INVALC, - 0x5B6B,INVALC,0x5F7E,INVALC,INVALC,0x5861,INVALC,0x7773, - INVALC,0x5767,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x547E,INVALC,INVALC, - 0x513C,INVALC,0x654F,INVALC,0x4B36,INVALC,0x5A38,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4D44,INVALC,INVALC,INVALC, - INVALC,INVALC,0x563E,INVALC,INVALC,INVALC,0x623A,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4F58,INVALC,INVALC,INVALC, - 0x604C,0x6B79,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7D7D,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5768,0x4B58,INVALC,INVALC,INVALC,0x6962,INVALC,INVALC, - INVALC,0x683A,INVALC,INVALC,INVALC,0x6347,INVALC,INVALC, - INVALC,INVALC,0x6C4D,INVALC,0x6C4E,INVALC,0x563F,INVALC, - INVALC,INVALC,0x6327,INVALC,0x5F56,0x7D68,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E61, - 0x7628,0x5D7D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x783B,INVALC,0x6851,INVALC,INVALC,INVALC,INVALC, - 0x7957,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E6E,INVALC,INVALC,0x6C4F,INVALC,INVALC,INVALC, - /* Block 129, Array index 0x4300 */ - 0x6925,0x5655,INVALC,0x4D45,INVALC,0x6D3A,0x513D,INVALC, - INVALC,0x4F3E,INVALC,INVALC,0x6C3B,INVALC,INVALC,INVALC, - 0x5231,INVALC,INVALC,INVALC,INVALC,0x4C69,INVALC,0x5944, - 0x697C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x513E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6C3C,INVALC,INVALC,0x652D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7730,INVALC,0x4C6A, - INVALC,INVALC,INVALC,0x5344,INVALC,INVALC,0x5640,INVALC, - INVALC,INVALC,0x567D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6121,INVALC, - 0x5E3D,INVALC,0x7629,INVALC,INVALC,INVALC,0x5A24,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5624, - 0x7546,INVALC,0x6122,0x6946,INVALC,INVALC,INVALC,0x7245, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7469,0x566C,0x6B53, - INVALC,INVALC,INVALC,INVALC,0x6C3D,0x625C,0x5E6B,0x705C, - INVALC,0x6B3F,INVALC,0x574E,0x513F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x752B,INVALC, - INVALC,INVALC,INVALC,0x797D,INVALC,0x4A5C,INVALC,INVALC, - INVALC,0x4D46,0x7236,INVALC,INVALC,0x5D7E,INVALC,INVALC, - INVALC,0x4C37,0x5B38,INVALC,INVALC,INVALC,INVALC,0x5069, - INVALC,0x4E5D,0x6B40,INVALC,0x7D22,INVALC,INVALC,INVALC, - INVALC,INVALC,0x784B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6A56,0x7130,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5B4E,INVALC,0x7743,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5B4F,0x4B24,INVALC,INVALC,0x7860,INVALC, - INVALC,0x7B57,INVALC,INVALC,0x6B4A,0x6021,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4E4D,INVALC,INVALC,0x545C,INVALC,INVALC,INVALC, - 0x7D58,INVALC,INVALC,INVALC,INVALC,0x5276,INVALC,INVALC, - /* Block 130, Array index 0x4400 */ - INVALC,INVALC,0x7237,INVALC,INVALC,0x7A76,0x762A,0x7A77, - 0x5866,INVALC,0x7431,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6852,INVALC,0x4A45,0x4C6B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x626E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x623B,INVALC,0x772D,INVALC,INVALC,INVALC,0x7861, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x736C,INVALC,INVALC,INVALC,INVALC,0x5E21,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x647D,INVALC,INVALC,0x636C,INVALC, - 0x5D2F,0x5D30,INVALC,INVALC,0x4B37,0x6853,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6123,0x5260,INVALC, - INVALC,INVALC,INVALC,0x707E,INVALC,INVALC,INVALC,INVALC, - 0x6926,0x4B72,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6D73,0x5C59,0x604D,INVALC,INVALC,INVALC,INVALC,0x775A, - 0x5B39,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4C2E,INVALC,0x5A5B,INVALC,INVALC,INVALC,INVALC,0x4D47, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D31,INVALC,0x582F,0x6323,INVALC,INVALC, - 0x4E6F,INVALC,INVALC,0x7273,INVALC,INVALC,INVALC,INVALC, - 0x7833,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x604E,INVALC,0x757D,INVALC,INVALC, - INVALC,INVALC,0x6B6C,INVALC,INVALC,0x5345,0x7C6C,0x525B, - 0x546B,INVALC,0x5E22,INVALC,INVALC,INVALC,0x6566,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7030,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5544,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D74, - INVALC,INVALC,INVALC,0x636D,INVALC,0x6842,INVALC,0x6D75, - 0x577C,INVALC,0x6D3B,INVALC,INVALC,0x762B,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7238,0x7648,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5366,0x725D,0x4F3F,INVALC,0x6B2C,INVALC, - /* Block 131, Array index 0x4500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x4F40,INVALC,0x6628, - 0x7D69,INVALC,0x4F41,INVALC,0x605F,0x5E6C,INVALC,INVALC, - INVALC,INVALC,0x6022,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x743F,0x626F,INVALC,0x5971,0x7147, - INVALC,0x4B38,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x797E,0x5B3A,0x5A75,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x766C,0x5A5C,0x7A64, - INVALC,0x604F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5D32,INVALC,INVALC,INVALC,INVALC,0x6629,INVALC,0x6F73, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x736D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6B7A,INVALC,0x7966,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A5D,0x555E, - INVALC,0x4A5E,0x5F64,INVALC,INVALC,INVALC,0x667D,INVALC, - 0x752C,INVALC,INVALC,INVALC,INVALC,INVALC,0x6475,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6963,INVALC,0x6D4B,0x4F64,INVALC, - INVALC,INVALC,0x5853,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D33,0x546C,INVALC,INVALC,0x7239,INVALC,0x5F37, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4B4E,0x7B58,INVALC, - INVALC,0x5059,INVALC,INVALC,0x5D52,0x7774,0x675C,0x6425, - INVALC,0x7C23,INVALC,0x5B3B,INVALC,INVALC,INVALC,0x723A, - 0x697D,0x504A,INVALC,0x7556,0x5945,0x6434,INVALC,0x6D27, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A3D,0x667E,INVALC,0x7744,0x752D,INVALC,0x5960, - INVALC,INVALC,INVALC,0x4A34,INVALC,INVALC,0x7862,0x4F42, - INVALC,0x6C3E,INVALC,INVALC,INVALC,0x6534,0x4D48,0x6E48, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6748,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4D49,0x7937,INVALC, - /* Block 132, Array index 0x4600 */ - INVALC,0x7168,0x5972,0x5B75,0x4A35,0x5946,INVALC,INVALC, - INVALC,0x5849,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x592B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6D3C,INVALC,INVALC,0x5854,INVALC,INVALC,INVALC,0x5C5A, - INVALC,0x623C,INVALC,INVALC,0x7C6D,0x6C60,0x527E,INVALC, - 0x6947,0x662A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6270,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7A3B, - INVALC,0x752E,0x7B2A,INVALC,INVALC,INVALC,INVALC,0x6C7B, - INVALC,0x6C3F,0x7C58,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5465,INVALC,INVALC,INVALC,0x7943, - INVALC,INVALC,INVALC,0x6E62,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5769,0x6D76,INVALC,INVALC,INVALC,0x5E6D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C6C,INVALC, - 0x636E,INVALC,INVALC,INVALC,INVALC,INVALC,0x6854,INVALC, - INVALC,INVALC,0x7A78,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5D34,0x6435,0x5830,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5855,INVALC,INVALC, - INVALC,0x746A,INVALC,INVALC,INVALC,0x4E39,INVALC,INVALC, - INVALC,0x5661,0x4F52,INVALC,0x5036,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4E22,INVALC,INVALC,0x736E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7378,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C4C,INVALC,0x504B,INVALC,INVALC,INVALC,0x7C24, - 0x4D4A,0x5754,0x5E23,INVALC,0x6460,INVALC,INVALC,INVALC, - INVALC,0x6E49,INVALC,INVALC,INVALC,0x625D,INVALC,INVALC, - /* Block 133, Array index 0x4700 */ - INVALC,INVALC,INVALC,0x757E,0x542C,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5551,INVALC,0x5870,0x7843,0x6A57,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7557,INVALC,INVALC,0x583F,INVALC,INVALC,INVALC, - INVALC,0x7D40,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6B2D,INVALC,INVALC,INVALC,INVALC,0x552A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6728,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E4A, - INVALC,INVALC,INVALC,0x4A67,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7863,INVALC,0x545D,INVALC,INVALC,0x6A58,INVALC, - INVALC,INVALC,INVALC,0x7B59,0x6D77,INVALC,INVALC,0x6535, - INVALC,INVALC,INVALC,INVALC,INVALC,0x502D,INVALC,INVALC, - INVALC,INVALC,0x7171,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x623D,INVALC,INVALC,INVALC,0x6348,INVALC,INVALC,INVALC, - INVALC,0x5955,INVALC,INVALC,0x5F2A,INVALC,INVALC,INVALC, - INVALC,0x5B3C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7864,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x717A,INVALC,INVALC,0x6536,0x736F,INVALC,INVALC,0x7B5A, - 0x6160,INVALC,0x592C,INVALC,0x756B,INVALC,0x6036,INVALC, - INVALC,0x6948,INVALC,0x4B4F,INVALC,0x6349,INVALC,INVALC, - INVALC,0x5E6E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x623E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5C6F,INVALC,0x5625,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6271,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x567E,INVALC,INVALC,INVALC, - /* Block 134, Array index 0x4800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5921,INVALC,0x5840,0x5C5B,INVALC,INVALC,0x6D3D, - 0x5F38,INVALC,0x6A25,INVALC,INVALC,INVALC,0x572D,INVALC, - INVALC,0x7379,INVALC,0x6D78,INVALC,0x7547,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x614A,0x6B63,INVALC,0x725E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x784C,INVALC,0x6A59, - INVALC,0x5346,INVALC,0x5B66,INVALC,INVALC,INVALC,INVALC, - INVALC,0x752F,INVALC,INVALC,INVALC,INVALC,0x4E70,INVALC, - INVALC,INVALC,INVALC,0x697E,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7B36,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6272,INVALC,INVALC,INVALC,INVALC, - 0x4F72,0x7739,0x5973,INVALC,INVALC,0x614B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5A5D,INVALC,INVALC,0x5A39, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B7B, - INVALC,0x4B39,INVALC,INVALC,0x6D79,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6060,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7440,INVALC, - 0x7D3C,0x5F31,0x636F,INVALC,INVALC,INVALC,INVALC,0x6023, - 0x7D39,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7031,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D4B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6D3E,INVALC,INVALC,INVALC,0x5540,0x6370,0x6D7A, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6964,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x556D,0x675D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5476,0x6537,INVALC,INVALC, - INVALC,0x5B67,0x623F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E4B, - INVALC,INVALC,0x5774,0x705D,INVALC,INVALC,INVALC,0x4E2B, - /* Block 135, Array index 0x4900 */ - INVALC,INVALC,0x675E,INVALC,INVALC,INVALC,0x5656,0x614C, - INVALC,INVALC,0x6833,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x656E,0x5C22, - INVALC,INVALC,0x6050,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5535,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5521, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7B5B,INVALC, - 0x794B,INVALC,INVALC,INVALC,0x4B73,0x7425,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7A48,0x5657,INVALC,0x6965,0x7B5C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7D50, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7B76,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5A25,INVALC,0x5B3D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6C62,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4D77,0x705E,INVALC,INVALC,INVALC, - INVALC,0x7649,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5E6F, - INVALC,INVALC,INVALC,0x5331,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7C6E,INVALC,INVALC,INVALC, - INVALC,0x6843,INVALC,0x7148,INVALC,INVALC,INVALC,0x4E71, - INVALC,INVALC,INVALC,INVALC,0x796D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7274,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6436,INVALC, - /* Block 136, Array index 0x4A00 */ - 0x7539,INVALC,0x5C70,0x6371,INVALC,INVALC,INVALC,INVALC, - 0x6825,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x723B,INVALC,0x5E24,INVALC,0x5A4C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A69,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x635A,INVALC,0x7C59, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A5A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7944,INVALC, - 0x6324,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7B5D,INVALC,0x6F4A,INVALC, - 0x6844,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x554C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6B57,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x592D, - INVALC,INVALC,0x7B2B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5359,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5522,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x765E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5A76,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6051,INVALC,INVALC,0x6928, - INVALC,INVALC,0x7579,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7A2F,INVALC,0x6B7C,INVALC,INVALC,0x606A,INVALC, - /* Block 137, Array index 0x4B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,0x6332,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5545, - INVALC,INVALC,0x7163,0x556E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4D4C,INVALC,INVALC,INVALC,INVALC,0x6D59,INVALC, - INVALC,INVALC,INVALC,0x5841,INVALC,INVALC,INVALC,INVALC, - 0x7A6C,INVALC,INVALC,INVALC,INVALC,INVALC,0x716B,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7A3C,0x6662,INVALC,INVALC, - INVALC,INVALC,0x7A65,0x627A,INVALC,INVALC,INVALC,0x4A36, - INVALC,0x6437,INVALC,0x6A5B,INVALC,0x757A,INVALC,INVALC, - INVALC,0x7B2C,0x4F43,0x6B7D,INVALC,INVALC,INVALC,INVALC, - 0x787A,INVALC,INVALC,0x5F39,INVALC,INVALC,INVALC,INVALC, - 0x6171,INVALC,0x5224,INVALC,INVALC,INVALC,INVALC,0x757B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x505A,0x505B, - INVALC,0x6A3E,0x5931,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4A37,INVALC,INVALC,0x5367,INVALC,0x7865,INVALC,INVALC, - INVALC,INVALC,0x5332,INVALC,INVALC,INVALC,0x6240,0x725F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D65,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x792C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4D4D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6E2E,0x562E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x576A, - INVALC,INVALC,INVALC,INVALC,0x6760,0x6B2E,INVALC,INVALC, - INVALC,0x4F59,INVALC,INVALC,0x5C4D,0x6D7B,INVALC,0x5E70, - INVALC,0x576B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5E25,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5F57,0x5B50,0x5B51,INVALC,INVALC, - 0x5523,INVALC,INVALC,INVALC,INVALC,0x7032,INVALC,INVALC, - /* Block 138, Array index 0x4C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5C5C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4A68,INVALC,0x7866,0x5C4E,INVALC,INVALC,INVALC,INVALC, - 0x6A5C,0x5B52,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6933,INVALC,INVALC, - INVALC,INVALC,0x775B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6328,INVALC, - 0x572E,INVALC,INVALC,0x6061,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4B3A,INVALC,INVALC,0x6551,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x505C, - INVALC,INVALC,INVALC,INVALC,0x5541,INVALC,INVALC,INVALC, - INVALC,INVALC,0x584A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6329,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6024, - INVALC,0x6929,INVALC,0x5347,INVALC,INVALC,0x5C5D,0x782E, - INVALC,INVALC,INVALC,0x4C38,INVALC,INVALC,INVALC,0x502E, - INVALC,INVALC,INVALC,0x5872,INVALC,INVALC,0x634A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C2F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x542D,0x7651,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x504C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4A46,INVALC,INVALC,0x5542,INVALC,INVALC, - 0x4E3A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4A47,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7A30,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5F58,INVALC,INVALC,INVALC, - 0x753A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 139, Array index 0x4D00 */ - 0x656B,INVALC,0x6F74,0x5D35,INVALC,INVALC,INVALC,INVALC, - 0x4D2A,INVALC,0x6372,INVALC,0x7B77,INVALC,0x7750,INVALC, - INVALC,INVALC,INVALC,0x7D3A,INVALC,INVALC,0x7D61,0x767E, - 0x5140,INVALC,INVALC,0x6845,INVALC,0x6438,INVALC,0x6168, - INVALC,INVALC,INVALC,0x4C41,INVALC,0x526D,INVALC,INVALC, - INVALC,INVALC,0x5B3E,INVALC,INVALC,0x6062,INVALC,INVALC, - INVALC,0x7A49,INVALC,INVALC,0x614D,INVALC,0x4A38,INVALC, - INVALC,INVALC,0x7260,0x7149,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5E71,INVALC,INVALC,INVALC,0x705F,0x7844,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6E4C,INVALC,INVALC,0x5E72,INVALC, - 0x6749,INVALC,0x6273,0x6761,INVALC,INVALC,0x634B,INVALC, - INVALC,0x634C,INVALC,INVALC,INVALC,0x4F78,0x6F2C,INVALC, - 0x7D7E,0x7C25,0x7A31,0x5F59,INVALC,0x6052,INVALC,INVALC, - INVALC,0x745A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x714A,INVALC,0x4E23, - INVALC,INVALC,INVALC,INVALC,0x723C,0x6C63,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6025,INVALC,0x772B,INVALC,INVALC, - 0x6B2F,INVALC,INVALC,INVALC,INVALC,INVALC,0x655E,INVALC, - 0x6124,0x4D2B,INVALC,0x5974,0x6826,0x4D4E,0x6169,INVALC, - 0x7C6F,INVALC,0x6063,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6241,INVALC,0x4E24,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5E26,INVALC,INVALC,0x6B7E,INVALC,0x6B5D,0x7060, - INVALC,INVALC,0x745B,INVALC,0x6274,INVALC,INVALC,0x5348, - INVALC,INVALC,INVALC,0x746B,INVALC,0x6E35,INVALC,0x7558, - INVALC,INVALC,0x555F,INVALC,INVALC,INVALC,0x5665,INVALC, - INVALC,INVALC,INVALC,0x6B30,0x7463,INVALC,INVALC,INVALC, - INVALC,0x634D,INVALC,INVALC,INVALC,INVALC,0x7474,0x7A32, - INVALC,INVALC,0x6F75,0x4A5F,INVALC,0x6B31,0x6D3F,INVALC, - INVALC,0x7D49,INVALC,INVALC,INVALC,INVALC,0x6426,0x7924, - 0x7033,INVALC,0x656C,INVALC,INVALC,INVALC,0x5167,INVALC, - /* Block 140, Array index 0x4E00 */ - 0x5947,0x6457,0x6A5D,INVALC,0x5477,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5A3A,INVALC, - 0x5A4D,INVALC,INVALC,INVALC,0x794C,INVALC,0x615A,0x5B3F, - INVALC,0x4C45,0x6C50,0x4B3B,INVALC,0x5E73,INVALC,INVALC, - 0x692A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5948,INVALC,INVALC,0x6E63,0x573D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4F44,INVALC,INVALC,INVALC,INVALC, - INVALC,0x504D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7C26,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x717B,INVALC,INVALC,INVALC,INVALC,0x7D52,0x5141, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x635B,INVALC,0x5349,INVALC,0x5C4F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C6D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E27,INVALC,INVALC,0x663B, - 0x6C21,INVALC,INVALC,INVALC,0x4C39,INVALC,INVALC,0x7B5E, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6762,INVALC,INVALC, - 0x5441,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5C28,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6242,INVALC,0x7358,0x6553,INVALC,INVALC,0x7359,INVALC, - INVALC,INVALC,0x7346,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 141, Array index 0x4F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D5B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4D2C, - INVALC,0x7C43,INVALC,INVALC,INVALC,INVALC,0x5467,INVALC, - 0x5142,INVALC,0x7925,INVALC,0x6855,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x634E,INVALC,INVALC, - INVALC,INVALC,0x544A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5F5A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7B5F,0x6763,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x787B,0x634F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7530,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5867,INVALC,0x5949,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x782F,0x6F76,INVALC, - 0x5D36,0x6E2F,0x4D78,INVALC,INVALC,INVALC,INVALC,0x5E38, - 0x7C27,0x777C,0x7731,0x4E3B,0x7421,INVALC,INVALC,0x6E4D, - 0x612E,INVALC,INVALC,0x6C43,0x4F7E,INVALC,0x783F,0x5862, - 0x5368,INVALC,INVALC,0x5E28,0x7464,0x6C42,INVALC,0x5975, - 0x7945,0x5D53,0x5671,0x6C7C,0x7C70,INVALC,INVALC,0x6D40, - 0x4A39,INVALC,0x6E64,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7261,INVALC,0x5E39,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5672,INVALC,0x5E74,INVALC,0x5F5B,INVALC, - 0x5B53,INVALC,0x7A67,0x5863,0x7441,INVALC,0x5D37,INVALC, - INVALC,INVALC,0x7275,INVALC,INVALC,0x542E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5673,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5D38,0x4F45,0x5F5F,INVALC,INVALC, - /* Block 142, Array index 0x5000 */ - INVALC,INVALC,INVALC,INVALC,0x723E,0x7621,INVALC,0x6B4B, - 0x717C,INVALC,0x7347,INVALC,INVALC,0x606B,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6D7C,INVALC,INVALC,0x615B,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6E65,INVALC,0x5E75,INVALC, - INVALC,INVALC,INVALC,0x7A53,INVALC,INVALC,INVALC,INVALC, - 0x714B,INVALC,INVALC,0x502F,0x5D39,INVALC,INVALC,0x5143, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7531,INVALC,INVALC, - INVALC,INVALC,0x6A46,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7061,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x762C,INVALC,INVALC,INVALC,INVALC, - 0x7559,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x706B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5D3A,INVALC,INVALC,INVALC,0x723F,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7745,INVALC, - INVALC,INVALC,INVALC,0x5B22,0x7276,INVALC,INVALC,0x4A3A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7775,INVALC,0x4B65,INVALC,INVALC, - INVALC,0x6E66,INVALC,0x6053,INVALC,INVALC,INVALC,INVALC, - 0x4E25,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5658, - INVALC,INVALC,INVALC,0x542F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 143, Array index 0x5100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6949,INVALC,INVALC,INVALC,INVALC,0x534E, - 0x7442,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B66,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7121,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6B32,INVALC,INVALC,INVALC,INVALC,0x7122,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6B33,INVALC,0x7034,INVALC,INVALC,0x4B74, - 0x5430,0x7332,0x7B37,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x756C,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E67, - 0x7432,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x756D,INVALC,0x4F73,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7062,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E4E, - INVALC,INVALC,0x714C,INVALC,INVALC,0x6538,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5775,0x6373,0x4F65,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4F46,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7333,0x6458,0x4F79,0x4F5A,INVALC,INVALC, - INVALC,INVALC,0x7A4D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6663, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7262,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x756E,INVALC,INVALC,0x4A3B,INVALC,INVALC,0x635C,INVALC, - /* Block 144, Array index 0x5200 */ - INVALC,INVALC,INVALC,0x4E72,INVALC,0x5659,INVALC,INVALC, - INVALC,0x6E30,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7465,0x5842,0x5C50,0x4C6E,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5560,0x764A,0x7D4A,0x5856,0x744F, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5626,0x5C3E, - INVALC,0x5B54,0x5747,INVALC,INVALC,INVALC,INVALC,0x727E, - INVALC,INVALC,INVALC,0x714D,INVALC,INVALC,INVALC,INVALC, - 0x6243,0x5C5E,INVALC,0x5C5F,INVALC,INVALC,0x6F2D,0x662B, - INVALC,INVALC,INVALC,INVALC,0x795D,0x6A3F,INVALC,INVALC, - INVALC,0x6F2E,INVALC,INVALC,INVALC,0x7450,0x4E73,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x662C,INVALC,0x4E5E, - INVALC,INVALC,0x5579,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6374,0x4D50,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5538,INVALC,INVALC,0x777D,INVALC, - 0x5C29,INVALC,INVALC,INVALC,INVALC,0x5E76,INVALC,0x5C2A, - 0x7263,0x6934,0x525C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6966,INVALC,INVALC,0x6376,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x674A,INVALC, - INVALC,0x504E,INVALC,INVALC,0x5A77,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4A3C,INVALC, - INVALC,INVALC,0x6E68,0x5A5E,INVALC,0x7277,INVALC,INVALC, - 0x627B,INVALC,0x4C26,INVALC,INVALC,INVALC,INVALC,0x5A3B, - INVALC,0x6E69,INVALC,INVALC,INVALC,0x755A,INVALC,INVALC, - /* Block 145, Array index 0x5300 */ - 0x775C,0x616A,0x4E41,0x5431,INVALC,0x7D31,0x663D,INVALC, - 0x7B2D,INVALC,INVALC,0x7867,INVALC,0x614E,INVALC,0x7762, - 0x756F,0x4F47,INVALC,INVALC,0x5432,0x4C6F,INVALC,0x5468, - INVALC,0x6E4F,0x7757,INVALC,INVALC,0x6026,0x5641,0x615C, - 0x7063,0x7164,0x5C71,0x5627,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7475,INVALC, - INVALC,0x714E,0x7264,INVALC,INVALC,0x5030,INVALC,INVALC, - 0x6C6F,INVALC,INVALC,INVALC,0x793A,INVALC,0x6B35,INVALC, - INVALC,0x546D,0x6244,INVALC,INVALC,INVALC,INVALC,0x6967, - INVALC,INVALC,0x6B34,0x6A21,INVALC,0x783C,0x4E26,INVALC, - 0x7946,0x7C5A,INVALC,0x5433,0x5339,0x6A5E,INVALC,INVALC, - INVALC,0x692B,INVALC,INVALC,0x6161,0x534F,0x7476,INVALC, - 0x6A40,0x614F,INVALC,0x4C3A,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6E6A,INVALC,INVALC,INVALC,0x7064,0x7334,0x546E, - INVALC,INVALC,0x7240,INVALC,INVALC,0x7165,INVALC,0x7443, - 0x6054,INVALC,0x6B36,INVALC,0x5721,0x4B68,INVALC,0x792D, - 0x692D,0x5864,0x7A33,0x6245,0x7C3D,INVALC,INVALC,0x6C44, - 0x5831,INVALC,0x5C2B,INVALC,INVALC,INVALC,INVALC,0x5524, - INVALC,0x6B69,INVALC,INVALC,INVALC,0x683B,INVALC,INVALC, - INVALC,0x5857,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7B2E,0x5161,INVALC,INVALC,0x5B40,INVALC, - 0x753E,INVALC,0x5E77,INVALC,INVALC,INVALC,INVALC,0x4A7B, - 0x7746,0x4F48,INVALC,INVALC,INVALC,0x6150,INVALC,INVALC, - 0x6E50,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6974,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x4E74,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x554D,INVALC, - INVALC,0x4F5B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5D3B,INVALC,INVALC,INVALC,INVALC,0x4E2C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6968,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5434,INVALC,INVALC, - /* Block 146, Array index 0x5400 */ - INVALC,INVALC,0x6447,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x755B,INVALC,INVALC,0x7A41,INVALC,INVALC, - INVALC,0x5E29,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5478, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6F77,INVALC,INVALC, - INVALC,INVALC,0x5333,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B37,0x6F78,0x755C,0x6D4C,0x5B55,0x714F,INVALC, - INVALC,INVALC,0x7150,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7532,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x592E,0x552C,INVALC,0x6246,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7D23,INVALC,0x7B65, - 0x5F2B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6275, - INVALC,0x762D,INVALC,0x7533,INVALC,0x7035,INVALC,INVALC, - INVALC,INVALC,0x6125,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x755D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6C22,0x6D7D,INVALC,0x7534,0x7B38, - INVALC,0x5B23,INVALC,INVALC,0x564A,0x4B59,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6554,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x737A, - INVALC,0x6B38,INVALC,0x6037,0x576C,0x716C,0x652F,0x5561, - 0x576D,0x5151,INVALC,INVALC,INVALC,INVALC,INVALC,0x6172, - 0x6F79,INVALC,INVALC,INVALC,0x5D3C,0x765C,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7065,INVALC,INVALC,INVALC,0x7444, - INVALC,INVALC,0x6969,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x737B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 147, Array index 0x5500 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x546F,INVALC,INVALC, - 0x4C22,0x777E,0x5F3C,INVALC,INVALC,INVALC,INVALC,0x6B4D, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5037,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5642,INVALC,INVALC,INVALC, - INVALC,INVALC,0x682D,INVALC,INVALC,INVALC,INVALC,0x6F2F, - 0x4B25,INVALC,INVALC,INVALC,INVALC,0x4B69,INVALC,INVALC, - INVALC,0x7A68,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4C46, - INVALC,INVALC,INVALC,0x6667,INVALC,INVALC,0x6A47,INVALC, - INVALC,INVALC,0x5B24,INVALC,0x4F49,0x627C,0x6F7A,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6B5E,INVALC,INVALC,0x7548,INVALC,0x545E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6055,INVALC,0x6F30,INVALC,INVALC,0x6247,INVALC, - 0x592F,INVALC,INVALC,INVALC,0x7967,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6765,INVALC,INVALC,0x4F4A,0x6151, - INVALC,0x6248,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6F7B,INVALC,INVALC,0x7A79, - INVALC,INVALC,0x5C72,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6027,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7868,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4B6A,INVALC,INVALC,INVALC,0x4B3C,INVALC,INVALC,INVALC, - /* Block 148, Array index 0x5600 */ - INVALC,INVALC,INVALC,INVALC,0x5662,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x755E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x755F,INVALC,0x6E36,INVALC,INVALC,INVALC,0x6276,0x534A, - 0x6F7C,0x5144,0x6F31,INVALC,0x5145,INVALC,0x505E,INVALC, - 0x5961,INVALC,INVALC,0x6038,INVALC,INVALC,0x4D51,0x7339, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x674C,INVALC,0x5628,0x4E27,INVALC,0x5435,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6448,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5334,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6B39,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4B75,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x765D,INVALC,0x7123,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4C47,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x694A,INVALC,0x6170,INVALC, - INVALC,INVALC,0x7560,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7B2F,INVALC,INVALC,INVALC,0x4B51, - INVALC,INVALC,INVALC,INVALC,0x7B60,0x7265,INVALC,INVALC, - 0x6C70,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x706C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6E6B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x694B,INVALC, - INVALC,0x4C70,INVALC,INVALC,0x572F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7321,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 149, Array index 0x5700 */ - INVALC,INVALC,INVALC,INVALC,0x7C75,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7124,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6056,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6F32,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7451,INVALC,INVALC, - 0x7721,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7151,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4A7C,0x4A7D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4E4E,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7348,INVALC,0x733A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 150, Array index 0x5800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6D7E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5A26,INVALC,INVALC,0x606C,INVALC,INVALC,INVALC,INVALC, - INVALC,0x784D,INVALC,0x4B52,INVALC,INVALC,INVALC,0x6B4E, - INVALC,0x7958,0x7959,0x4A60,0x5A4A,INVALC,INVALC,INVALC, - 0x4B26,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4A48,0x796E,0x5B6C,INVALC,INVALC, - 0x5031,INVALC,INVALC,INVALC,INVALC,0x556F,INVALC,INVALC, - INVALC,0x6673,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6722,0x6459,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6461, - INVALC,INVALC,0x7C44,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x796F,0x4F74,0x7766,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4E3C,INVALC,INVALC,INVALC, - INVALC,0x7445,0x5C23,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 151, Array index 0x5900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5D3D,INVALC,INVALC,INVALC, - INVALC,0x7446,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x7821,INVALC,INVALC,INVALC,0x6856,INVALC, - INVALC,INVALC,0x5B41,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7066,INVALC,INVALC,INVALC,0x6439, - 0x766D,INVALC,0x792E,INVALC,0x5D3E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5730,0x5868,0x4B3D,INVALC,INVALC, - 0x795A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x784E,0x7970,0x606D,0x6333,0x7433, - INVALC,INVALC,0x6A42,0x7266,0x7036,INVALC,INVALC,INVALC, - INVALC,INVALC,0x5B56,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6B64,INVALC,INVALC,0x7267,INVALC,0x5755,0x5436,0x7968, - 0x5741,INVALC,INVALC,INVALC,INVALC,0x6555,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x696A,0x574C,INVALC, - INVALC,INVALC,0x5369,0x6249,INVALC,0x7C5B,0x4D2D,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4C30,0x6A22,INVALC,INVALC, - 0x6476,0x5040,INVALC,0x7037,0x6E21,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5776,INVALC,INVALC,INVALC,0x624A, - 0x624B,INVALC,0x7A4F,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6B5F,INVALC,INVALC,INVALC,INVALC,INVALC,0x564B, - INVALC,INVALC,INVALC,0x7434,INVALC,INVALC,INVALC,INVALC, - 0x6D4D,0x6452,INVALC,INVALC,0x6A29,0x643A,0x7322,0x4D52, - INVALC,0x764B,INVALC,0x7166,0x6D41,0x683C,0x6E51,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7067,0x624C,INVALC, - INVALC,0x642A,INVALC,0x7561,0x6D5A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x576E,0x5171,INVALC,INVALC,INVALC,INVALC, - 0x696B,0x696C,0x6064,INVALC,INVALC,INVALC,INVALC,0x5A27, - 0x5D54,INVALC,0x6A23,INVALC,INVALC,INVALC,0x5643,0x5674, - INVALC,0x5A5F,INVALC,0x6F33,INVALC,INVALC,INVALC,INVALC, - /* Block 152, Array index 0x5A00 */ - 0x624D,INVALC,INVALC,INVALC,INVALC,INVALC,0x6F7D,0x7268, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6F45,INVALC,0x6767,INVALC,INVALC,0x577D,INVALC, - INVALC,0x674E,INVALC,INVALC,0x5F5C,INVALC,0x7947,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5976, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5F2C,INVALC,0x565A,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5C24,INVALC,INVALC,INVALC,0x7038,INVALC,INVALC, - INVALC,INVALC,0x557A,INVALC,0x6477,INVALC,INVALC,INVALC, - 0x5644,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x746C,INVALC,INVALC,INVALC,INVALC,0x6F7E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7021,INVALC,0x5E2A,INVALC, - INVALC,0x5A3C,0x587C,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7A54,INVALC,INVALC,INVALC,0x6C65,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7C28,INVALC,INVALC,0x6C66, - INVALC,INVALC,0x584B,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7B39,INVALC,0x6453,INVALC,0x4D79, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4F53,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4A6A,INVALC,INVALC,0x4F54,INVALC,0x783D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7447,INVALC, - INVALC,INVALC,INVALC,0x6A5F,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x795B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5437,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6B65,INVALC,INVALC,0x6152,INVALC, - INVALC,INVALC,INVALC,0x6A24,INVALC,INVALC,INVALC,0x7A42, - /* Block 153, Array index 0x5B00 */ - 0x7B61,0x7A6D,0x7022,0x4C71,INVALC,0x7A23,0x6277,INVALC, - 0x624E,INVALC,0x6975,INVALC,0x616B,INVALC,INVALC,INVALC, - 0x6768,0x6857,0x5A78,0x544B,INVALC,INVALC,INVALC,0x7776, - 0x5645,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5469,INVALC,INVALC, - 0x7A7A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4C72,0x775D,INVALC,0x5E3A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4E28,INVALC, - INVALC,INVALC,INVALC,INVALC,0x7039,0x647E,0x6449,INVALC, - INVALC,INVALC,INVALC,INVALC,0x6454,INVALC,INVALC,INVALC, - 0x6A43,INVALC,0x6F34,INVALC,INVALC,INVALC,0x573E,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7B62,INVALC,0x4D53, - INVALC,INVALC,INVALC,0x6F35,INVALC,INVALC,INVALC,0x7A69, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7926,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5F3D, - INVALC,0x7747,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x787D,INVALC,INVALC,0x787C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5E2B,0x5B68,INVALC,INVALC,0x635D, - INVALC,0x6162,0x5146,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7650,0x6B66,0x5A79, - INVALC,INVALC,INVALC,INVALC,0x6C47,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5E78,0x7869,0x635E,INVALC, - /* Block 154, Array index 0x5C00 */ - INVALC,INVALC,INVALC,0x4E75,INVALC,INVALC,INVALC,INVALC, - INVALC,0x7A43,0x6557,INVALC,0x6C48,INVALC,INVALC,INVALC, - 0x7349,INVALC,INVALC,0x643B,INVALC,INVALC,INVALC,INVALC, - 0x662E,INVALC,INVALC,INVALC,INVALC,INVALC,0x6F36,INVALC, - 0x5C3F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4E3D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5843,INVALC,INVALC, - INVALC,0x504F,INVALC,0x4F7A,0x734A,0x6057,INVALC,INVALC, - INVALC,0x5147,0x692E,INVALC,0x683D,INVALC,INVALC,0x7A44, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x624F,INVALC, - INVALC,0x7A45,INVALC,INVALC,INVALC,0x7938,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5C60,INVALC,INVALC, - 0x7B30,INVALC,INVALC,INVALC,0x5829,0x655F,0x7927,INVALC, - INVALC,0x766E,INVALC,0x764C,0x6278,INVALC,INVALC,INVALC, - INVALC,0x6C71,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5A60,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7152,0x524C,0x4F4B,INVALC,INVALC,0x4A3D,INVALC,INVALC, - INVALC,0x5D3F,INVALC,INVALC,INVALC,0x766F,INVALC,0x5E79, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7A34,INVALC,INVALC, - INVALC,0x552D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x7167, - /* Block 155, Array index 0x5D00 */ - INVALC,0x5E3E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5C40,INVALC,INVALC,INVALC,INVALC,INVALC,0x5148,0x5149, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x783E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4B76,INVALC,INVALC,INVALC,INVALC, - 0x5479,INVALC,INVALC,INVALC,INVALC,INVALC,0x7562,0x6153, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x5869,INVALC,INVALC,0x787E,INVALC,0x4F4C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7D24,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4E76,INVALC,0x7A50, - INVALC,INVALC,0x4C73,0x663E,INVALC,INVALC,INVALC,0x762E, - INVALC,INVALC,0x5570,INVALC,INVALC,0x514A,INVALC,INVALC, - INVALC,0x7C3E,0x5571,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4D69,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7A35,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6250,0x7477,INVALC,INVALC,INVALC, - 0x4D54,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6723,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5B25,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 156, Array index 0x5E00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6251,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5722, - INVALC,INVALC,0x7763,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x6A26,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5021,INVALC,INVALC,INVALC, - INVALC,0x4E5A,0x7B6B,0x5B26,0x5B5E,0x5865,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6A60, - INVALC,INVALC,INVALC,INVALC,0x582A,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6560,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x565B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6F46,INVALC, - INVALC,0x786A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6455, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4E77,INVALC,INVALC,0x6058,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x576F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x746D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4D66,INVALC,INVALC,INVALC, - 0x4C74,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 157, Array index 0x5F00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7563,INVALC,INVALC, - 0x644A,INVALC,0x5C61,INVALC,INVALC,0x7948,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7C3F,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6827,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5844,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4B3E, - INVALC,0x5C2E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x5777, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x7068,INVALC,0x5D40, - INVALC,0x4F4D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5C73,0x5930,INVALC,0x6669,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 158, Array index 0x6000 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x643C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x6A44,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x646C,INVALC, - 0x6465,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x7B78,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4C3B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x643D,INVALC,INVALC, - 0x4D5C,0x5977,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5D5F,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6D4E,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x5950,INVALC,INVALC,INVALC,INVALC,INVALC,0x6523, - INVALC,INVALC,INVALC,INVALC,0x794D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4D2E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4F4E, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x762F,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x7D53,0x6B6D,0x565C,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 159, Array index 0x6100 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x6524,INVALC,INVALC,INVALC,0x5536,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x565D,INVALC,INVALC, - INVALC,0x7969,INVALC,INVALC,INVALC,0x6724,INVALC,0x5663, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x514B,0x5664,INVALC,INVALC,INVALC,0x5572, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5E7A,INVALC,0x5778, - INVALC,INVALC,INVALC,INVALC,INVALC,0x586A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4F55,0x587D,INVALC,INVALC, - INVALC,INVALC,INVALC,0x582B,INVALC,INVALC,0x7D4B,INVALC, - INVALC,INVALC,INVALC,0x7C5C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x6028,0x5573,INVALC, - INVALC,0x7D59,INVALC,INVALC,0x4C23,INVALC,INVALC,INVALC, - 0x5979,INVALC,INVALC,0x536A,0x7575,INVALC,0x6F47,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x535A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x5A3D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 160, Array index 0x6200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6828, - 0x5C2F,INVALC,INVALC,INVALC,INVALC,INVALC,0x7023,INVALC, - INVALC,INVALC,INVALC,0x4D55,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x6029,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x5E2C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,0x703A,0x6E31,INVALC,INVALC,0x6E32,INVALC, - INVALC,INVALC,0x764D,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x6E52, - INVALC,0x5646,INVALC,INVALC,INVALC,INVALC,INVALC,0x6065, - INVALC,INVALC,0x733B,INVALC,0x6561,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x644B, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x5723,INVALC,INVALC, - 0x5B42,INVALC,INVALC,INVALC,INVALC,0x4A7E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4F4F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 173, Array index 0x6300 */ - 0x3021,0x3022,INVALC,INVALC,0x3023,INVALC,INVALC,0x3024, - 0x3025,0x3026,0x3027,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3028,0x3029,0x302A,0x302B,0x302C,0x302D,0x302E,0x302F, - INVALC,0x3030,0x3031,0x3032,0x3033,0x3034,INVALC,INVALC, - 0x3035,INVALC,INVALC,INVALC,0x3036,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3037,0x3038,INVALC,0x3039, - 0x303A,0x303B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x303C,0x303D,INVALC,INVALC,0x303E,INVALC,INVALC,INVALC, - 0x303F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3040,INVALC,0x3041,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3042,INVALC,INVALC,INVALC, - 0x3043,INVALC,INVALC,INVALC,0x3044,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3045,0x3046,INVALC,INVALC,0x3047,INVALC,INVALC,0x3048, - 0x3049,INVALC,0x304A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x304B,0x304C,INVALC,0x304D,0x304E,0x304F,0x3050,INVALC, - INVALC,0x3051,0x3052,0x3053,0x3054,INVALC,INVALC,INVALC, - 0x3055,INVALC,INVALC,INVALC,0x3056,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3057,0x3058,INVALC,0x3059, - 0x305A,0x305B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x305C,0x305D,0x305E,INVALC,0x305F,INVALC,INVALC,0x3060, - 0x3061,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3062,0x3063,INVALC,0x3064,0x3065,0x3066,INVALC,INVALC, - INVALC,0x3067,INVALC,INVALC,0x3068,INVALC,INVALC,INVALC, - 0x3069,INVALC,INVALC,INVALC,0x306A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x306B,INVALC,0x306C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x306D,0x306E,INVALC,INVALC,0x306F,INVALC,INVALC,0x3070, - 0x3071,INVALC,0x3072,INVALC,0x3073,INVALC,INVALC,0x3074, - 0x3075,0x3076,INVALC,0x3077,INVALC,0x3078,0x3079,INVALC, - INVALC,INVALC,INVALC,INVALC,0x307A,0x307B,INVALC,INVALC, - /* Block 174, Array index 0x6400 */ - 0x307C,INVALC,INVALC,INVALC,0x307D,INVALC,0x307E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3121,0x3122,INVALC,0x3123, - INVALC,0x3124,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3125,INVALC,INVALC,INVALC,0x3126,INVALC,INVALC,INVALC, - 0x3127,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3128,INVALC,INVALC,0x3129,0x312A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x312B,0x312C,INVALC,INVALC, - 0x312D,INVALC,INVALC,INVALC,0x312E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x312F,0x3130,INVALC,0x3131, - INVALC,0x3132,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3133,INVALC,INVALC,INVALC,0x3134,INVALC,INVALC,INVALC, - 0x3135,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3136,INVALC,0x3137,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3138,0x3139,INVALC,INVALC, - 0x313A,INVALC,INVALC,0x313B,0x313C,0x313D,0x313E,INVALC, - INVALC,INVALC,INVALC,0x313F,0x3140,0x3141,INVALC,0x3142, - INVALC,0x3143,0x3144,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3145,0x3146,INVALC,INVALC,0x3147,INVALC,INVALC,INVALC, - 0x3148,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3149,0x314A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x314B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x314C, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x314D,0x314E,INVALC,INVALC,0x314F,INVALC,INVALC,INVALC, - 0x3150,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3151,0x3152,INVALC,0x3153,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3154,INVALC,INVALC,INVALC, - 0x3155,INVALC,INVALC,INVALC,0x3156,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3157,0x3158,INVALC,INVALC,0x3159,INVALC,INVALC,0x315A, - /* Block 175, Array index 0x6500 */ - 0x315B,0x315C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x315D,0x315E,INVALC,0x315F,INVALC,0x3160,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3161,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3162,0x3163,INVALC,INVALC,0x3164,INVALC,INVALC,0x3165, - 0x3166,INVALC,0x3167,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3168,0x3169,INVALC,0x316A,INVALC,0x316B,0x316C,INVALC, - INVALC,INVALC,0x316D,INVALC,0x316E,0x316F,0x3170,INVALC, - 0x3171,INVALC,INVALC,INVALC,0x3172,INVALC,0x3173,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3174,0x3175,INVALC,0x3176, - 0x3177,0x3178,INVALC,INVALC,INVALC,0x3179,INVALC,INVALC, - 0x317A,0x317B,INVALC,INVALC,0x317C,INVALC,INVALC,INVALC, - 0x317D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x317E,0x3221,INVALC,0x3222,0x3223,0x3224,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3225,0x3226,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3227,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3228,0x3229,0x322A,INVALC, - 0x322B,INVALC,INVALC,INVALC,0x322C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x322D,0x322E,INVALC,0x322F, - 0x3230,0x3231,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3232,0x3233,INVALC,INVALC,0x3234,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3235,INVALC,INVALC,0x3236,INVALC,0x3237,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3238,INVALC,INVALC,INVALC, - 0x3239,INVALC,INVALC,INVALC,0x323A,INVALC,INVALC,INVALC, - /* Block 176, Array index 0x6600 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x323B, - 0x323C,INVALC,INVALC,INVALC,INVALC,0x323D,INVALC,INVALC, - 0x323E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x323F,0x3240,INVALC,INVALC, - 0x3241,INVALC,0x3242,INVALC,0x3243,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3244,0x3245,INVALC,0x3246, - INVALC,0x3247,0x3248,0x3249,INVALC,INVALC,INVALC,INVALC, - 0x324A,0x324B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x324C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x324D,0x324E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x324F,0x3250,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3251,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3252,INVALC,INVALC,INVALC,0x3253,INVALC,INVALC,INVALC, - 0x3254,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3255,0x3256,INVALC,INVALC,INVALC,0x3257,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3258,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3259,0x325A,INVALC,INVALC,0x325B,INVALC,INVALC,INVALC, - 0x325C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x325D, - 0x325E,0x325F,INVALC,0x3260,INVALC,0x3261,0x3262,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3263,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3264,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3265,0x3266,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3267,0x3268,INVALC,INVALC,0x3269,INVALC,INVALC,INVALC, - 0x326A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 177, Array index 0x6700 */ - 0x326B,0x326C,INVALC,INVALC,0x326D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x326E,INVALC,INVALC,INVALC, - 0x326F,INVALC,INVALC,INVALC,0x3270,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3271,0x3272,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3273,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3274,0x3275,INVALC,INVALC, - 0x3276,INVALC,0x3277,INVALC,0x3278,INVALC,0x3279,INVALC, - INVALC,INVALC,INVALC,0x327A,0x327B,0x327C,INVALC,0x327D, - INVALC,0x327E,INVALC,INVALC,INVALC,0x3321,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3322,0x3323,INVALC,INVALC, - 0x3324,INVALC,INVALC,INVALC,0x3325,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3326,0x3327,INVALC,0x3328, - INVALC,0x3329,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x332A,0x332B,0x332C,INVALC,0x332D,INVALC,INVALC,0x332E, - 0x332F,0x3330,0x3331,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3332,0x3333,INVALC,0x3334,0x3335,0x3336,0x3337,0x3338, - INVALC,0x3339,INVALC,0x333A,0x333B,0x333C,INVALC,INVALC, - 0x333D,INVALC,INVALC,INVALC,0x333E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x333F,0x3340,INVALC,0x3341, - 0x3342,0x3343,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3344,0x3345,INVALC,INVALC,0x3346,INVALC,INVALC,INVALC, - 0x3347,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3348,INVALC,INVALC,INVALC,INVALC,0x3349,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 178, Array index 0x6800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x334A,0x334B,INVALC,0x334C,0x334D,INVALC,INVALC,INVALC, - 0x334E,INVALC,0x334F,0x3350,INVALC,INVALC,INVALC,INVALC, - 0x3351,0x3352,INVALC,0x3353,0x3354,0x3355,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3356,0x3357,0x3358,INVALC,INVALC, - 0x3359,INVALC,INVALC,INVALC,0x335A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x335B,0x335C,INVALC,0x335D, - 0x335E,0x335F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3360,0x3361,INVALC,INVALC,0x3362,INVALC,INVALC,INVALC, - 0x3363,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3364,0x3365,INVALC,INVALC,0x3366,0x3367,INVALC,INVALC, - 0x3368,INVALC,INVALC,INVALC,0x3369,INVALC,INVALC,INVALC, - 0x336A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x336B,0x336C,INVALC,INVALC,0x336D,INVALC,INVALC,INVALC, - 0x336E,INVALC,0x336F,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3370,0x3371,INVALC,0x3372,INVALC,0x3373,INVALC,INVALC, - INVALC,INVALC,0x3374,0x3375,0x3376,INVALC,INVALC,INVALC, - 0x3377,INVALC,INVALC,INVALC,0x3378,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3379,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x337A,INVALC,INVALC,INVALC, - 0x337B,INVALC,INVALC,INVALC,0x337C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x337D,0x337E,INVALC,0x3421, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3422,0x3423,INVALC,INVALC,0x3424,INVALC,INVALC,INVALC, - 0x3425,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3426,INVALC,0x3427,INVALC,0x3428,INVALC,INVALC, - /* Block 179, Array index 0x6900 */ - INVALC,INVALC,INVALC,INVALC,0x3429,0x342A,INVALC,INVALC, - 0x342B,INVALC,INVALC,0x342C,0x342D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x342E,0x342F,INVALC,0x3430, - INVALC,0x3431,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3432,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3433,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3434,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3435,INVALC,INVALC,INVALC,0x3436,INVALC,INVALC,INVALC, - 0x3437,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3438,0x3439,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x343A,0x343B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x343C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x343D,0x343E,INVALC,INVALC, - INVALC,0x343F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3440,0x3441,INVALC,INVALC,0x3442,INVALC,INVALC,INVALC, - 0x3443,0x3444,0x3445,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3446,0x3447,INVALC,0x3448,INVALC,0x3449,0x344A,INVALC, - INVALC,INVALC,0x344B,INVALC,0x344C,INVALC,INVALC,INVALC, - 0x344D,INVALC,INVALC,INVALC,0x344E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x344F,0x3450,INVALC,INVALC,0x3451,INVALC,INVALC,INVALC, - 0x3452,INVALC,0x3453,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3454,0x3455,INVALC,0x3456,INVALC,0x3457,INVALC,INVALC, - INVALC,INVALC,0x3458,INVALC,0x3459,0x345A,0x345B,INVALC, - 0x345C,INVALC,INVALC,0x345D,0x345E,0x345F,0x3460,0x3461, - INVALC,INVALC,INVALC,0x3462,0x3463,0x3464,INVALC,0x3465, - 0x3466,0x3467,0x3468,0x3469,INVALC,INVALC,INVALC,0x346A, - /* Block 180, Array index 0x6A00 */ - 0x346B,0x346C,INVALC,INVALC,0x346D,INVALC,INVALC,INVALC, - 0x346E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x346F,0x3470,INVALC,0x3471,0x3472,0x3473,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3474,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3475,0x3476,0x3477,INVALC, - 0x3478,INVALC,INVALC,0x3479,0x347A,INVALC,0x347B,0x347C, - INVALC,INVALC,INVALC,INVALC,0x347D,0x347E,INVALC,0x3521, - INVALC,0x3522,INVALC,0x3523,INVALC,INVALC,0x3524,INVALC, - 0x3525,0x3526,INVALC,INVALC,0x3527,INVALC,INVALC,INVALC, - 0x3528,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3529,0x352A,INVALC,0x352B,0x352C,0x352D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x352E,INVALC,INVALC,INVALC, - 0x352F,INVALC,INVALC,INVALC,0x3530,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3531,0x3532,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3533,INVALC,INVALC,INVALC,0x3534,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3535,0x3536,INVALC,INVALC, - 0x3537,INVALC,INVALC,0x3538,0x3539,INVALC,0x353A,INVALC, - 0x353B,INVALC,INVALC,INVALC,0x353C,0x353D,INVALC,0x353E, - INVALC,0x353F,INVALC,0x3540,INVALC,0x3541,INVALC,INVALC, - 0x3542,INVALC,INVALC,INVALC,0x3543,INVALC,INVALC,INVALC, - 0x3544,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3545,INVALC,INVALC,INVALC, - /* Block 181, Array index 0x6B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3546,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3547,INVALC,INVALC,INVALC,0x3548,INVALC,INVALC,INVALC, - 0x3549,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x354A,0x354B,INVALC,0x354C,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x354D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x354E,0x354F,INVALC,INVALC,0x3550,INVALC,INVALC,INVALC, - 0x3551,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3552,0x3553,INVALC,0x3554,INVALC,0x3555,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3556,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3557,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3558,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3559,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x355A,INVALC,INVALC,INVALC, - 0x355B,INVALC,INVALC,INVALC,0x355C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x355D,INVALC,0x355E, - INVALC,0x355F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3560,INVALC,INVALC,INVALC,0x3561,INVALC,INVALC,INVALC, - 0x3562,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3563,INVALC,INVALC,INVALC,INVALC,0x3564,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3565,0x3566,INVALC,INVALC, - 0x3567,INVALC,INVALC,0x3568,0x3569,INVALC,0x356A,INVALC, - INVALC,INVALC,INVALC,INVALC,0x356B,0x356C,INVALC,0x356D, - INVALC,0x356E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x356F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 182, Array index 0x6C00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3570,0x3571,INVALC,INVALC, - 0x3572,INVALC,INVALC,0x3573,0x3574,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3575,0x3576,INVALC,0x3577, - 0x3578,0x3579,0x357A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x357B,0x357C,INVALC,INVALC,0x357D,INVALC,INVALC,INVALC, - 0x357E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3621,0x3622,INVALC,0x3623,0x3624,0x3625,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3626,0x3627,0x3628,INVALC,INVALC, - 0x3629,INVALC,INVALC,INVALC,0x362A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x362B,0x362C,INVALC,0x362D, - 0x362E,0x362F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3630,0x3631,INVALC,INVALC,0x3632,INVALC,INVALC,INVALC, - 0x3633,INVALC,0x3634,0x3635,INVALC,INVALC,INVALC,INVALC, - 0x3636,0x3637,INVALC,0x3638,0x3639,0x363A,INVALC,INVALC, - INVALC,INVALC,INVALC,0x363B,0x363C,0x363D,INVALC,INVALC, - 0x363E,INVALC,INVALC,INVALC,0x363F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3640,0x3641,INVALC,0x3642, - 0x3643,0x3644,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3645,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3646,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 183, Array index 0x6D00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3647,0x3648,INVALC,INVALC,0x3649,INVALC,INVALC,INVALC, - 0x364A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x364B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x364C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x364D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x364E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x364F,INVALC,INVALC,INVALC, - 0x3650,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3651,0x3652,INVALC,INVALC, - 0x3653,INVALC,INVALC,INVALC,0x3654,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3655,0x3656,INVALC,INVALC,INVALC, - INVALC,0x3657,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3658,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3659,INVALC,INVALC,INVALC,0x365A,INVALC,INVALC,INVALC, - 0x365B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 184, Array index 0x6E00 */ - 0x365C,0x365D,INVALC,INVALC,INVALC,0x365E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x365F,0x3660,INVALC,INVALC,0x3661,INVALC,INVALC,0x3662, - 0x3663,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3664,0x3665,INVALC,0x3666,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3667,INVALC,INVALC,INVALC, - 0x3668,INVALC,INVALC,INVALC,0x3669,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x366A,0x366B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x366C,INVALC,INVALC,INVALC,0x366D,INVALC,INVALC,INVALC, - 0x366E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x366F,0x3670,INVALC,0x3671,INVALC,0x3672,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3673,0x3674,INVALC,INVALC, - 0x3675,INVALC,INVALC,INVALC,0x3676,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3677,0x3678,INVALC,0x3679, - 0x367A,0x367B,0x367C,INVALC,INVALC,INVALC,0x367D,0x367E, - 0x3721,0x3722,INVALC,INVALC,0x3723,INVALC,INVALC,INVALC, - 0x3724,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3725,0x3726,INVALC,0x3727,0x3728,0x3729,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x372A,0x372B,INVALC,INVALC, - 0x372C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x372D, - INVALC,0x372E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x372F,0x3730,INVALC,INVALC, - 0x3731,INVALC,INVALC,INVALC,0x3732,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3733,0x3734,INVALC,0x3735, - /* Block 185, Array index 0x6F00 */ - 0x3736,0x3737,INVALC,INVALC,INVALC,INVALC,INVALC,0x3738, - 0x3739,0x373A,INVALC,INVALC,0x373B,INVALC,INVALC,INVALC, - 0x373C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x373D,0x373E,INVALC,0x373F,INVALC,0x3740,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3741,0x3742,INVALC,INVALC, - 0x3743,INVALC,INVALC,INVALC,0x3744,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3745,0x3746,INVALC,0x3747, - 0x3748,0x3749,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x374A,INVALC,INVALC,INVALC,0x374B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x374C,INVALC,0x374D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x374E,0x374F,INVALC,INVALC, - 0x3750,INVALC,INVALC,INVALC,0x3751,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3752,0x3753,INVALC,0x3754, - INVALC,0x3755,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3756,INVALC,INVALC,INVALC,0x3757,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3758,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3759,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x375A,INVALC,INVALC,INVALC,0x375B,INVALC,INVALC,INVALC, - 0x375C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x375D,0x375E,INVALC,0x375F,INVALC,0x3760,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3761,INVALC,INVALC,INVALC, - 0x3762,INVALC,INVALC,INVALC,0x3763,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3764,INVALC,0x3765, - INVALC,0x3766,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3767,0x3768,INVALC,INVALC,0x3769,INVALC,INVALC,INVALC, - 0x376A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x376B,0x376C,INVALC,0x376D,INVALC,0x376E,INVALC,INVALC, - /* Block 186, Array index 0x7000 */ - INVALC,INVALC,INVALC,INVALC,0x376F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3770,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3771,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3772,0x3773,INVALC,INVALC, - 0x3774,INVALC,INVALC,INVALC,0x3775,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3776,INVALC,INVALC,0x3777, - INVALC,0x3778,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3779,0x377A,INVALC,INVALC,0x377B,INVALC,INVALC,INVALC, - 0x377C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x377D,0x377E,INVALC,0x3821,INVALC,0x3822,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3823,0x3824,INVALC,INVALC, - 0x3825,INVALC,INVALC,INVALC,0x3826,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3827,0x3828,INVALC,0x3829, - INVALC,0x382A,0x382B,INVALC,INVALC,0x382C,0x382D,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x382E,0x382F,INVALC,INVALC, - 0x3830,INVALC,INVALC,INVALC,0x3831,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3832,0x3833,INVALC,0x3834, - INVALC,0x3835,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3836,0x3837,INVALC,INVALC,0x3838,INVALC,0x3839,0x383A, - 0x383B,0x383C,0x383D,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x383E,0x383F,INVALC,0x3840,INVALC,0x3841,0x3842,INVALC, - INVALC,0x3843,INVALC,0x3844,0x3845,0x3846,INVALC,INVALC, - 0x3847,INVALC,INVALC,INVALC,0x3848,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3849,0x384A,INVALC,0x384B, - 0x384C,0x384D,0x384E,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 187, Array index 0x7100 */ - 0x384F,0x3850,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3851,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3852,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3853,0x3854,INVALC,INVALC,0x3855,INVALC,INVALC,INVALC, - 0x3856,INVALC,0x3857,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3858,0x3859,INVALC,0x385A,INVALC,0x385B,0x385C,INVALC, - INVALC,INVALC,INVALC,0x385D,0x385E,0x385F,INVALC,INVALC, - 0x3860,INVALC,INVALC,INVALC,0x3861,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3862,0x3863,INVALC,0x3864, - 0x3865,0x3866,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3867,0x3868,INVALC,INVALC,0x3869,INVALC,INVALC,INVALC, - 0x386A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x386B,0x386C,0x386D,INVALC,0x386E, - INVALC,INVALC,INVALC,INVALC,0x386F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3870,0x3871,INVALC,0x3872,0x3873,INVALC,INVALC,INVALC, - 0x3874,INVALC,0x3875,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3876,0x3877,INVALC,0x3878,INVALC,0x3879,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x387A,INVALC,INVALC,INVALC, - 0x387B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x387C,0x387D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x387E,INVALC,INVALC,INVALC, - /* Block 188, Array index 0x7200 */ - 0x3921,INVALC,INVALC,INVALC,0x3922,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3923,INVALC,0x3924, - INVALC,0x3925,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3926,INVALC,INVALC,INVALC,0x3927,INVALC,INVALC,INVALC, - 0x3928,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3929,INVALC,0x392A,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x392B,0x392C,0x392D,INVALC, - 0x392E,INVALC,INVALC,0x392F,0x3930,0x3931,0x3932,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3933,0x3934,INVALC,0x3935, - INVALC,0x3936,INVALC,INVALC,INVALC,0x3937,INVALC,0x3938, - 0x3939,INVALC,INVALC,INVALC,0x393A,INVALC,INVALC,INVALC, - 0x393B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x393C,INVALC,0x393D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x393E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x393F,INVALC,INVALC,INVALC,0x3940,INVALC,INVALC,INVALC, - 0x3941,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3942,INVALC,INVALC,INVALC, - 0x3943,INVALC,INVALC,INVALC,0x3944,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3945,INVALC,INVALC,0x3946, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3947,INVALC,INVALC,INVALC,0x3948,INVALC,INVALC,INVALC, - 0x3949,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x394A,INVALC,INVALC,0x394B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x394C,0x394D,INVALC,INVALC,0x394E,INVALC,INVALC,0x394F, - /* Block 189, Array index 0x7300 */ - 0x3950,INVALC,0x3951,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3952,0x3953,INVALC,0x3954,0x3955,0x3956,INVALC,0x3957, - INVALC,0x3958,INVALC,INVALC,0x3959,0x395A,0x395B,0x395C, - 0x395D,INVALC,INVALC,0x395E,0x395F,0x3960,0x3961,0x3962, - INVALC,INVALC,INVALC,INVALC,0x3963,0x3964,INVALC,0x3965, - INVALC,0x3966,INVALC,INVALC,INVALC,0x3967,INVALC,INVALC, - 0x3968,0x3969,INVALC,INVALC,0x396A,INVALC,INVALC,INVALC, - 0x396B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x396C,0x396D,INVALC,0x396E,0x396F,0x3970,INVALC,INVALC, - INVALC,0x3971,INVALC,INVALC,0x3972,0x3973,INVALC,INVALC, - 0x3974,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3975,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3976,0x3977,INVALC,INVALC, - 0x3978,INVALC,INVALC,0x3979,0x397A,INVALC,0x397B,INVALC, - INVALC,INVALC,INVALC,INVALC,0x397C,0x397D,INVALC,0x397E, - INVALC,0x3A21,0x3A22,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A23,0x3A24,INVALC,INVALC,0x3A25,INVALC,INVALC,0x3A26, - 0x3A27,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A28,0x3A29,INVALC,0x3A2A,0x3A2B,0x3A2C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A2D,0x3A2E,INVALC,INVALC, - 0x3A2F,INVALC,INVALC,INVALC,0x3A30,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3A31,INVALC,0x3A32, - 0x3A33,0x3A34,INVALC,INVALC,INVALC,0x3A35,INVALC,INVALC, - 0x3A36,INVALC,INVALC,INVALC,0x3A37,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A38,0x3A39,0x3A3A,INVALC, - 0x3A3B,INVALC,INVALC,INVALC,0x3A3C,INVALC,INVALC,INVALC, - /* Block 190, Array index 0x7400 */ - INVALC,INVALC,INVALC,INVALC,0x3A3D,0x3A3E,INVALC,0x3A3F, - INVALC,0x3A40,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A41,INVALC,INVALC,INVALC,0x3A42,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A43,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A44,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A45,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A46,0x3A47,INVALC,INVALC,0x3A48,INVALC,INVALC,INVALC, - 0x3A49,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A4A,0x3A4B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A4C,INVALC,INVALC,INVALC, - 0x3A4D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A4E,0x3A4F,INVALC,INVALC,0x3A50,INVALC,INVALC,0x3A51, - 0x3A52,0x3A53,0x3A54,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A55,0x3A56,INVALC,0x3A57,INVALC,0x3A58,INVALC,INVALC, - INVALC,0x3A59,0x3A5A,INVALC,0x3A5B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A5C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A5D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A5E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A5F,0x3A60,INVALC,INVALC, - 0x3A61,INVALC,INVALC,INVALC,0x3A62,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3A63,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3A64,INVALC,INVALC,INVALC,0x3A65,INVALC,INVALC,INVALC, - 0x3A66,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 191, Array index 0x7500 */ - 0x3A67,INVALC,INVALC,0x3A68,INVALC,0x3A69,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A6A,0x3A6B,INVALC,INVALC, - 0x3A6C,INVALC,INVALC,INVALC,0x3A6D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A6E,0x3A6F,INVALC,0x3A70, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A71,0x3A72,INVALC,INVALC, - 0x3A73,INVALC,INVALC,INVALC,0x3A74,INVALC,0x3A75,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3A76,0x3A77,INVALC,0x3A78, - INVALC,0x3A79,0x3A7A,0x3A7B,INVALC,INVALC,INVALC,INVALC, - 0x3A7C,0x3A7D,INVALC,INVALC,0x3A7E,INVALC,INVALC,INVALC, - 0x3B21,INVALC,0x3B22,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B23,0x3B24,INVALC,0x3B25,0x3B26,0x3B27,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3B28,0x3B29,0x3B2A,INVALC,INVALC, - 0x3B2B,INVALC,INVALC,INVALC,0x3B2C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3B2D,0x3B2E,INVALC,0x3B2F, - 0x3B30,0x3B31,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B32,0x3B33,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B34,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B35,0x3B36,INVALC,INVALC,0x3B37,INVALC,INVALC,0x3B38, - 0x3B39,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B3A,INVALC,INVALC,0x3B3B,0x3B3C,0x3B3D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3B3E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 192, Array index 0x7600 */ - INVALC,0x3B3F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B40,0x3B41,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B42,0x3B43,INVALC,0x3B44,0x3B45,0x3B46,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B47,0x3B48,INVALC,INVALC,0x3B49,INVALC,INVALC,INVALC, - 0x3B4A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B4B,0x3B4C,INVALC,INVALC,INVALC,0x3B4D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3B4E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B4F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3B50,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3B51,0x3B52,INVALC,INVALC, - 0x3B53,INVALC,INVALC,INVALC,0x3B54,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3B55,INVALC,INVALC,0x3B56, - INVALC,0x3B57,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 193, Array index 0x7700 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3B58,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3B59,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B5A,INVALC,INVALC,INVALC,0x3B5B,INVALC,INVALC,INVALC, - 0x3B5C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B5D,0x3B5E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B5F,0x3B60,INVALC,INVALC,0x3B61,INVALC,INVALC,INVALC, - 0x3B62,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B63,0x3B64,INVALC,0x3B65,INVALC,0x3B66,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3B67,0x3B68,INVALC,0x3B69, - 0x3B6A,INVALC,INVALC,0x3B6B,0x3B6C,0x3B6D,0x3B6E,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3B6F,0x3B70,INVALC,0x3B71, - 0x3B72,0x3B73,INVALC,INVALC,INVALC,0x3B74,INVALC,INVALC, - 0x3B75,0x3B76,INVALC,INVALC,0x3B77,INVALC,INVALC,INVALC, - 0x3B78,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3B79,0x3B7A,INVALC,0x3B7B,0x3B7C,0x3B7D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3B7E,0x3C21,INVALC,INVALC, - 0x3C22,INVALC,INVALC,INVALC,0x3C23,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C24,0x3C25,INVALC,0x3C26, - INVALC,0x3C27,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 194, Array index 0x7800 */ - 0x3C28,INVALC,INVALC,INVALC,0x3C29,INVALC,INVALC,INVALC, - 0x3C2A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C2B,INVALC,INVALC,INVALC,INVALC,0x3C2C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C2D,0x3C2E,0x3C2F,0x3C30, - 0x3C31,INVALC,INVALC,0x3C32,0x3C33,INVALC,0x3C34,0x3C35, - INVALC,INVALC,INVALC,INVALC,0x3C36,0x3C37,INVALC,0x3C38, - 0x3C39,0x3C3A,INVALC,INVALC,INVALC,INVALC,0x3C3B,INVALC, - 0x3C3C,0x3C3D,INVALC,INVALC,0x3C3E,INVALC,INVALC,INVALC, - 0x3C3F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C40,0x3C41,INVALC,0x3C42,0x3C43,0x3C44,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C45,0x3C46,INVALC,INVALC, - 0x3C47,INVALC,INVALC,INVALC,0x3C48,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C49,0x3C4A,INVALC,0x3C4B, - 0x3C4C,0x3C4D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C4E,INVALC,INVALC,INVALC,0x3C4F,INVALC,INVALC,INVALC, - 0x3C50,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3C51,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C52,0x3C53,0x3C54,INVALC, - 0x3C55,INVALC,INVALC,INVALC,0x3C56,INVALC,0x3C57,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C58,0x3C59,INVALC,0x3C5A, - INVALC,0x3C5B,INVALC,INVALC,INVALC,0x3C5C,INVALC,INVALC, - 0x3C5D,0x3C5E,INVALC,INVALC,0x3C5F,INVALC,INVALC,INVALC, - 0x3C60,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3C61,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C62,INVALC,INVALC,INVALC, - 0x3C63,INVALC,INVALC,INVALC,0x3C64,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C65,INVALC,INVALC,0x3C66, - 0x3C67,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C68,INVALC,INVALC,INVALC,0x3C69,INVALC,INVALC,INVALC, - 0x3C6A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C6B,0x3C6C,INVALC,0x3C6D,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C6E,0x3C6F,INVALC,INVALC, - /* Block 195, Array index 0x7900 */ - 0x3C70,INVALC,INVALC,INVALC,0x3C71,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3C72,0x3C73,INVALC,0x3C74, - INVALC,0x3C75,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C76,0x3C77,INVALC,INVALC,0x3C78,INVALC,INVALC,0x3C79, - 0x3C7A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3C7B,0x3C7C,INVALC,0x3C7D,INVALC,0x3C7E,INVALC,0x3D21, - INVALC,0x3D22,0x3D23,INVALC,0x3D24,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D25,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D26,0x3D27,INVALC,INVALC,0x3D28,INVALC,INVALC,INVALC, - 0x3D29,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D2A,INVALC,INVALC,INVALC,INVALC,0x3D2B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D2C,0x3D2D,INVALC,INVALC, - 0x3D2E,INVALC,INVALC,INVALC,0x3D2F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D30,0x3D31,INVALC,0x3D32, - INVALC,0x3D33,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D34,0x3D35,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D36,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D37,INVALC,INVALC,0x3D38,INVALC,0x3D39,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D3A,0x3D3B,INVALC,INVALC, - 0x3D3C,INVALC,INVALC,INVALC,0x3D3D,0x3D3E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D3F,0x3D40,INVALC,0x3D41, - INVALC,0x3D42,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D43,0x3D44,INVALC,INVALC, - 0x3D45,INVALC,INVALC,0x3D46,0x3D47,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3D48,0x3D49,0x3D4A,INVALC,0x3D4B, - INVALC,0x3D4C,INVALC,INVALC,INVALC,INVALC,0x3D4D,INVALC, - 0x3D4E,0x3D4F,INVALC,0x3D50,0x3D51,INVALC,INVALC,INVALC, - /* Block 196, Array index 0x7A00 */ - 0x3D52,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D53,0x3D54,INVALC,INVALC,0x3D55,0x3D56,INVALC,INVALC, - INVALC,INVALC,INVALC,0x3D57,0x3D58,0x3D59,INVALC,INVALC, - 0x3D5A,INVALC,INVALC,INVALC,0x3D5B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D5C,0x3D5D,INVALC,INVALC, - 0x3D5E,0x3D5F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x3D60,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D61,0x3D62,INVALC,INVALC,0x3D63,INVALC,INVALC,INVALC, - 0x3D64,INVALC,0x3D65,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D66,0x3D67,INVALC,INVALC,0x3D68,0x3D69,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D6A,INVALC,INVALC,INVALC, - 0x3D6B,INVALC,INVALC,INVALC,0x3D6C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D6D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D6E,0x3D6F,INVALC,INVALC,0x3D70,INVALC,INVALC,0x3D71, - 0x3D72,INVALC,0x3D73,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D74,0x3D75,INVALC,INVALC,INVALC,0x3D76,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D77,0x3D78,INVALC,INVALC, - 0x3D79,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 197, Array index 0x7B00 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D7A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3D7B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D7C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3D7D,INVALC,INVALC,INVALC, - 0x3D7E,INVALC,INVALC,INVALC,0x3E21,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E22,0x3E23,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3E24,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E25,0x3E26,INVALC,INVALC, - 0x3E27,INVALC,INVALC,INVALC,0x3E28,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E29,0x3E2A,INVALC,INVALC, - INVALC,0x3E2B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3E2C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E2D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E2E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3E2F,INVALC,INVALC,INVALC,0x3E30,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3E31,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3E32,0x3E33,INVALC,INVALC,0x3E34,INVALC,INVALC,INVALC, - 0x3E35,INVALC,0x3E36,INVALC,INVALC,INVALC,INVALC,0x3E37, - /* Block 198, Array index 0x7C00 */ - 0x3E38,0x3E39,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E3A,INVALC,INVALC,INVALC, - 0x3E3B,INVALC,INVALC,INVALC,0x3E3C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E3D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3E3E,0x3E3F,INVALC,INVALC,0x3E40,INVALC,INVALC,INVALC, - 0x3E41,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3E42,0x3E43,INVALC,0x3E44,INVALC,0x3E45,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E46,0x3E47,INVALC,INVALC, - 0x3E48,0x3E49,0x3E4A,INVALC,0x3E4B,0x3E4C,0x3E4D,INVALC, - INVALC,INVALC,INVALC,0x3E4E,0x3E4F,0x3E50,INVALC,0x3E51, - 0x3E52,0x3E53,INVALC,INVALC,INVALC,0x3E54,0x3E55,INVALC, - 0x3E56,0x3E57,INVALC,INVALC,0x3E58,INVALC,INVALC,INVALC, - 0x3E59,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3E5A,0x3E5B,INVALC,0x3E5C,0x3E5D,0x3E5E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E5F,0x3E60,INVALC,INVALC, - 0x3E61,INVALC,INVALC,INVALC,0x3E62,INVALC,INVALC,0x3E63, - INVALC,INVALC,INVALC,INVALC,0x3E64,0x3E65,INVALC,0x3E66, - INVALC,0x3E67,INVALC,INVALC,INVALC,0x3E68,INVALC,0x3E69, - 0x3E6A,INVALC,INVALC,INVALC,0x3E6B,INVALC,INVALC,INVALC, - 0x3E6C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x3E6D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E6E,0x3E6F,INVALC,INVALC, - 0x3E70,0x3E71,INVALC,0x3E72,0x3E73,0x3E74,0x3E75,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3E76,0x3E77,0x3E78,0x3E79, - 0x3E7A,0x3E7B,0x3E7C,INVALC,0x3E7D,INVALC,0x3E7E,INVALC, - 0x3F21,0x3F22,INVALC,INVALC,0x3F23,INVALC,INVALC,INVALC, - 0x3F24,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3F25,0x3F26,INVALC,0x3F27,INVALC,0x3F28,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F29,0x3F2A,0x3F2B,INVALC, - 0x3F2C,INVALC,INVALC,INVALC,0x3F2D,INVALC,0x3F2E,0x3F2F, - INVALC,INVALC,INVALC,INVALC,0x3F30,0x3F31,0x3F32,0x3F33, - /* Block 199, Array index 0x7D00 */ - 0x3F34,0x3F35,INVALC,INVALC,INVALC,0x3F36,0x3F37,0x3F38, - 0x3F39,INVALC,INVALC,INVALC,0x3F3A,INVALC,INVALC,INVALC, - 0x3F3B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3F3C,0x3F3D,INVALC,0x3F3E,0x3F3F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F40,0x3F41,INVALC,INVALC, - 0x3F42,INVALC,INVALC,INVALC,0x3F43,0x3F44,0x3F45,INVALC, - 0x3F46,INVALC,INVALC,0x3F47,0x3F48,0x3F49,INVALC,0x3F4A, - INVALC,0x3F4B,INVALC,0x3F4C,INVALC,INVALC,INVALC,INVALC, - 0x3F4D,0x3F4E,INVALC,INVALC,0x3F4F,INVALC,INVALC,INVALC, - 0x3F50,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3F51,0x3F52,INVALC,0x3F53,0x3F54,0x3F55,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F56,0x3F57,INVALC,INVALC, - 0x3F58,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F59,INVALC,INVALC,0x3F5A, - INVALC,0x3F5B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3F5C,0x3F5D,INVALC,INVALC,0x3F5E,INVALC,INVALC,INVALC, - 0x3F5F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3F60,0x3F61,INVALC,0x3F62,INVALC,0x3F63,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F64,0x3F65,INVALC,INVALC, - 0x3F66,INVALC,INVALC,INVALC,0x3F67,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F68,0x3F69,INVALC,0x3F6A, - INVALC,0x3F6B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3F6C,0x3F6D,INVALC,INVALC,0x3F6E,INVALC,INVALC,INVALC, - 0x3F6F,0x3F70,0x3F71,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3F72,0x3F73,INVALC,0x3F74,INVALC,0x3F75,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F76,0x3F77,INVALC,INVALC, - 0x3F78,INVALC,INVALC,INVALC,0x3F79,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x3F7A,0x3F7B,INVALC,INVALC, - 0x3F7C,0x3F7D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x3F7E,0x4021,INVALC,INVALC,0x4022,INVALC,INVALC,INVALC, - 0x4023,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4024,0x4025,INVALC,INVALC,INVALC,0x4026,INVALC,INVALC, - /* Block 200, Array index 0x7E00 */ - INVALC,INVALC,INVALC,INVALC,0x4027,0x4028,INVALC,INVALC, - 0x4029,INVALC,INVALC,INVALC,0x402A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x402B,0x402C,INVALC,0x402D, - INVALC,0x402E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x402F,0x4030,INVALC,INVALC,0x4031,INVALC,INVALC,INVALC, - 0x4032,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4033,0x4034,INVALC,0x4035,INVALC,0x4036,INVALC,0x4037, - INVALC,INVALC,INVALC,INVALC,0x4038,0x4039,INVALC,INVALC, - 0x403A,INVALC,INVALC,INVALC,0x403B,INVALC,INVALC,INVALC, - INVALC,INVALC,0x403C,INVALC,0x403D,0x403E,INVALC,0x403F, - INVALC,0x4040,0x4041,0x4042,0x4043,0x4044,0x4045,0x4046, - 0x4047,INVALC,INVALC,INVALC,0x4048,INVALC,INVALC,INVALC, - 0x4049,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x404A,INVALC,INVALC,0x404B,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x404C,0x404D,INVALC,INVALC, - 0x404E,INVALC,INVALC,INVALC,0x404F,0x4050,0x4051,INVALC, - INVALC,INVALC,INVALC,0x4052,0x4053,0x4054,INVALC,0x4055, - 0x4056,0x4057,0x4058,INVALC,INVALC,INVALC,0x4059,INVALC, - 0x405A,0x405B,INVALC,INVALC,0x405C,INVALC,0x405D,0x405E, - 0x405F,INVALC,0x4060,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4061,0x4062,INVALC,0x4063,0x4064,0x4065,0x4066,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4067,0x4068,INVALC,INVALC, - 0x4069,INVALC,INVALC,INVALC,0x406A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x406B,0x406C,INVALC,0x406D, - 0x406E,0x406F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4070,0x4071,INVALC,INVALC,0x4072,INVALC,0x4073,INVALC, - 0x4074,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4075,INVALC,INVALC,INVALC,INVALC,0x4076,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4077,INVALC,INVALC,INVALC, - 0x4078,INVALC,INVALC,INVALC,0x4079,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 201, Array index 0x7F00 */ - 0x407A,0x407B,INVALC,INVALC,0x407C,INVALC,INVALC,INVALC, - 0x407D,INVALC,0x407E,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4121,0x4122,INVALC,0x4123,INVALC,0x4124,0x4125,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4126,0x4127,INVALC,INVALC, - 0x4128,INVALC,INVALC,INVALC,0x4129,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x412A,0x412B,INVALC,0x412C, - INVALC,0x412D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x412E,INVALC,INVALC,INVALC,0x412F,INVALC,INVALC,INVALC, - 0x4130,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4131,0x4132,INVALC,INVALC,0x4133,0x4134,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4135,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4136,0x4137,INVALC,INVALC,0x4138,INVALC,INVALC,INVALC, - 0x4139,INVALC,0x413A,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x413B,0x413C,INVALC,0x413D,INVALC,0x413E,0x413F,0x4140, - INVALC,INVALC,INVALC,0x4141,0x4142,0x4143,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4144,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4145,INVALC,0x4146, - INVALC,0x4147,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4148,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4149,0x414A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x414B,INVALC,INVALC,INVALC, - 0x414C,INVALC,INVALC,INVALC,0x414D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x414E,0x414F,INVALC,0x4150, - INVALC,0x4151,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4152,0x4153,INVALC,INVALC,0x4154,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4155,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4156,0x4157,INVALC,INVALC, - /* Block 202, Array index 0x8000 */ - 0x4158,INVALC,INVALC,INVALC,0x4159,0x415A,0x415B,INVALC, - INVALC,INVALC,INVALC,INVALC,0x415C,0x415D,INVALC,0x415E, - INVALC,0x415F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4160,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4161,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4162,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4163,0x4164,INVALC,INVALC,0x4165,INVALC,INVALC,INVALC, - 0x4166,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4167,0x4168,INVALC,0x4169,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x416A,INVALC,INVALC,INVALC, - 0x416B,INVALC,INVALC,INVALC,0x416C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x416D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x416E,0x416F,INVALC,INVALC,0x4170,INVALC,INVALC,INVALC, - 0x4171,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4172,0x4173,INVALC,0x4174,INVALC,0x4175,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4176,0x4177,INVALC,INVALC,0x4178,INVALC,INVALC,0x4179, - 0x417A,INVALC,0x417B,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x417C,0x417D,INVALC,0x417E,INVALC,0x4221,0x4222,INVALC, - INVALC,0x4223,0x4224,INVALC,0x4225,0x4226,INVALC,INVALC, - 0x4227,INVALC,0x4228,INVALC,0x4229,INVALC,INVALC,0x422A, - INVALC,INVALC,INVALC,INVALC,0x422B,0x422C,INVALC,0x422D, - 0x422E,0x422F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4230,0x4231,INVALC,INVALC,0x4232,INVALC,INVALC,INVALC, - /* Block 203, Array index 0x8100 */ - 0x4233,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4234,0x4235,INVALC,0x4236,0x4237,0x4238,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4239,INVALC,INVALC,INVALC, - 0x423A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x423B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x423C,0x423D,INVALC,INVALC, - 0x423E,INVALC,INVALC,INVALC,0x423F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4240,0x4241,INVALC,0x4242, - 0x4243,0x4244,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4245,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4246,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4247,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4248,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4249,0x424A,INVALC,INVALC, - 0x424B,INVALC,INVALC,INVALC,0x424C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x424D,0x424E,INVALC,0x424F, - INVALC,0x4250,INVALC,0x4251,INVALC,INVALC,INVALC,INVALC, - 0x4252,0x4253,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4254,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4255,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4256,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 204, Array index 0x8200 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4257,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4258,INVALC,INVALC,INVALC,0x4259,INVALC,INVALC,INVALC, - 0x425A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x425B,0x425C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x425D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x425E,0x425F,INVALC,INVALC,0x4260,INVALC,INVALC,INVALC, - 0x4261,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4262,0x4263,INVALC,INVALC,INVALC,0x4264,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4265,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4266,0x4267,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4268,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4269,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x426A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x426B,INVALC,INVALC,0x426C, - INVALC,0x426D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 205, Array index 0x8300 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x426E,0x426F,INVALC,INVALC, - 0x4270,INVALC,INVALC,INVALC,0x4271,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4272,0x4273,INVALC,INVALC, - INVALC,0x4274,0x4275,INVALC,INVALC,INVALC,INVALC,0x4276, - 0x4277,0x4278,INVALC,INVALC,0x4279,INVALC,0x427A,INVALC, - 0x427B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x427C,0x427D,INVALC,0x427E,0x4321,0x4322,0x4323,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4324,0x4325,INVALC,INVALC, - 0x4326,INVALC,INVALC,INVALC,0x4327,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4328,0x4329,INVALC,0x432A, - 0x432B,0x432C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x432D,INVALC,INVALC,INVALC,0x432E,INVALC,0x432F,INVALC, - 0x4330,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4331,INVALC,INVALC,INVALC,INVALC,0x4332,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4333,0x4334,INVALC,INVALC,0x4335,INVALC,INVALC,INVALC, - 0x4336,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4337,0x4338,INVALC,0x4339,0x433A,0x433B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x433C,0x433D,INVALC,INVALC, - 0x433E,INVALC,INVALC,INVALC,0x433F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4340,0x4341,INVALC,0x4342, - INVALC,0x4343,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4344,INVALC,INVALC,INVALC,0x4345,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4346,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4347,INVALC,INVALC,INVALC, - 0x4348,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 206, Array index 0x8400 */ - INVALC,0x4349,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x434A,0x434B,INVALC,INVALC,0x434C,INVALC,INVALC,INVALC, - 0x434D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x434E,0x434F,INVALC,0x4350,INVALC,0x4351,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4352,INVALC,INVALC,INVALC, - 0x4353,INVALC,INVALC,INVALC,0x4354,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4355,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4356,INVALC,INVALC,INVALC, - 0x4357,INVALC,INVALC,INVALC,0x4358,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4359,0x435A,INVALC,0x435B, - INVALC,0x435C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x435D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x435E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x435F,0x4360,INVALC,INVALC, - 0x4361,INVALC,INVALC,INVALC,0x4362,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4363,0x4364,INVALC,0x4365, - INVALC,0x4366,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4367,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4368,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4369,INVALC,INVALC,INVALC, - 0x436A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x436B,INVALC,INVALC,INVALC,0x436C,INVALC,INVALC,INVALC, - 0x436D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x436E,0x436F,INVALC,0x4370,INVALC,0x4371,INVALC,INVALC, - /* Block 207, Array index 0x8500 */ - INVALC,INVALC,INVALC,INVALC,0x4372,INVALC,INVALC,INVALC, - 0x4373,INVALC,INVALC,INVALC,0x4374,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4375,INVALC,INVALC,INVALC, - INVALC,0x4376,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4377,0x4378,INVALC,INVALC,0x4379,INVALC,INVALC,INVALC, - 0x437A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x437B,0x437C,INVALC,0x437D,INVALC,0x437E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4421,0x4422,INVALC,INVALC,0x4423,INVALC,INVALC,0x4424, - 0x4425,0x4426,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4427,0x4428,INVALC,0x4429,INVALC,0x442A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x442B,0x442C,INVALC,INVALC, - 0x442D,INVALC,INVALC,INVALC,0x442E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x442F,0x4430,INVALC,0x4431, - INVALC,0x4432,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4433,0x4434,INVALC,INVALC,0x4435,INVALC,INVALC,INVALC, - 0x4436,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4437,0x4438,INVALC,0x4439,0x443A,0x443B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x443C,0x443D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x443E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x443F,0x4440,INVALC,INVALC, - 0x4441,INVALC,INVALC,0x4442,0x4443,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4444,0x4445,INVALC,0x4446, - 0x4447,0x4448,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 208, Array index 0x8600 */ - 0x4449,0x444A,INVALC,INVALC,0x444B,INVALC,INVALC,INVALC, - 0x444C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x444D,0x444E,INVALC,0x444F,INVALC,0x4450,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4451,INVALC,INVALC,INVALC, - 0x4452,INVALC,INVALC,INVALC,0x4453,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4454,0x4455,INVALC,0x4456, - 0x4457,0x4458,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4459,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x445A,0x445B,INVALC,INVALC, - 0x445C,INVALC,INVALC,INVALC,0x445D,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x445E,0x445F,INVALC,0x4460, - INVALC,0x4461,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4462,0x4463,INVALC,INVALC,0x4464,INVALC,INVALC,INVALC, - 0x4465,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4466,INVALC,INVALC,INVALC,INVALC,0x4467,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4468,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4469,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x446A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x446B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x446C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x446D,0x446E,INVALC,INVALC,0x446F,INVALC,INVALC,INVALC, - 0x4470,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4471,0x4472,INVALC,0x4473,INVALC,0x4474,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4475,INVALC,INVALC,INVALC, - /* Block 209, Array index 0x8700 */ - 0x4476,INVALC,INVALC,INVALC,0x4477,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4478,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4479,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x447A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x447B,0x447C,INVALC,INVALC, - 0x447D,INVALC,INVALC,INVALC,0x447E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4521,0x4522,INVALC,0x4523, - INVALC,0x4524,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4525,INVALC,INVALC,INVALC,0x4526,INVALC,INVALC,INVALC, - 0x4527,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4528,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4529,0x452A,INVALC,INVALC, - 0x452B,INVALC,INVALC,INVALC,0x452C,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x452D,0x452E,INVALC,INVALC, - INVALC,0x452F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4530,0x4531,INVALC,INVALC, - 0x4532,INVALC,INVALC,INVALC,0x4533,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4534,0x4535,INVALC,0x4536, - INVALC,0x4537,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4538,0x4539,INVALC,INVALC,0x453A,INVALC,INVALC,INVALC, - 0x453B,0x453C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x453D,0x453E,INVALC,0x453F,0x4540,0x4541,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4542,0x4543,INVALC,INVALC, - 0x4544,INVALC,INVALC,INVALC,0x4545,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4546,0x4547,INVALC,0x4548, - 0x4549,0x454A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x454B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 210, Array index 0x8800 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x454C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x454D,0x454E,INVALC,INVALC,0x454F,INVALC,INVALC,INVALC, - 0x4550,INVALC,0x4551,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4552,0x4553,INVALC,0x4554,0x4555,0x4556,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4557,0x4558,INVALC,INVALC, - 0x4559,INVALC,INVALC,INVALC,0x455A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x455B,0x455C,INVALC,0x455D, - INVALC,0x455E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x455F,INVALC,INVALC,INVALC,0x4560,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4561,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4562,INVALC,INVALC,INVALC, - 0x4563,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4564,0x4565,INVALC,INVALC,0x4566,INVALC,INVALC,INVALC, - 0x4567,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4568,0x4569,INVALC,0x456A,INVALC,0x456B,INVALC,INVALC, - INVALC,INVALC,0x456C,INVALC,0x456D,INVALC,INVALC,INVALC, - 0x456E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x456F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4570,INVALC,INVALC,INVALC, - 0x4571,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 211, Array index 0x8900 */ - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4572, - INVALC,0x4573,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4574,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4575,0x4576,INVALC,INVALC, - 0x4577,INVALC,INVALC,INVALC,0x4578,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4579,0x457A,INVALC,0x457B, - INVALC,0x457C,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x457D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x457E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4621,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4622,0x4623,INVALC,INVALC,0x4624,INVALC,INVALC,INVALC, - 0x4625,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4626,0x4627,INVALC,INVALC,INVALC,0x4628,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4629,INVALC,INVALC,INVALC, - 0x462A,INVALC,INVALC,INVALC,0x462B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x462C,INVALC,INVALC,INVALC, - INVALC,0x462D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x462E,0x462F,INVALC,INVALC,0x4630,INVALC,INVALC,0x4631, - 0x4632,INVALC,0x4633,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4634,0x4635,INVALC,0x4636,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4637,INVALC,INVALC,INVALC, - 0x4638,INVALC,INVALC,INVALC,0x4639,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x463A,0x463B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x463C,0x463D,INVALC,INVALC,0x463E,INVALC,INVALC,INVALC, - 0x463F,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 212, Array index 0x8A00 */ - 0x4640,0x4641,INVALC,0x4642,INVALC,0x4643,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4644,0x4645,0x4646,INVALC, - 0x4647,INVALC,INVALC,INVALC,0x4648,INVALC,0x4649,INVALC, - INVALC,INVALC,INVALC,INVALC,0x464A,0x464B,INVALC,0x464C, - 0x464D,0x464E,INVALC,INVALC,INVALC,0x464F,INVALC,INVALC, - 0x4650,0x4651,INVALC,INVALC,0x4652,INVALC,INVALC,INVALC, - 0x4653,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4654,0x4655,INVALC,0x4656,0x4657,0x4658,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4659,0x465A,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x465B,0x465C,INVALC,INVALC, - 0x465D,INVALC,INVALC,INVALC,0x465E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x465F,0x4660,INVALC,0x4661, - 0x4662,0x4663,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4664,0x4665,INVALC,INVALC,0x4666,INVALC,INVALC,INVALC, - 0x4667,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4668,0x4669,INVALC,0x466A,INVALC,0x466B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x466C,INVALC,INVALC,INVALC, - 0x466D,INVALC,INVALC,INVALC,0x466E,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x466F,0x4670,INVALC,INVALC, - 0x4671,0x4672,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4673,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4674,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4675,INVALC,0x4676,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4677,0x4678,INVALC,INVALC, - 0x4679,INVALC,INVALC,INVALC,0x467A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x467B,0x467C,INVALC,0x467D, - /* Block 213, Array index 0x8B00 */ - INVALC,0x467E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4721,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4722,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4723,INVALC,INVALC,INVALC,0x4724,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4725,INVALC,INVALC,INVALC, - 0x4726,INVALC,INVALC,INVALC,0x4727,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4728,INVALC,0x4729, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x472A,0x472B,INVALC,INVALC,0x472C,INVALC,INVALC,0x472D, - 0x472E,INVALC,0x472F,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4730,0x4731,INVALC,0x4732,INVALC,0x4733,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4734,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4735,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4736,INVALC,INVALC,INVALC, - 0x4737,INVALC,INVALC,INVALC,0x4738,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4739,INVALC,INVALC,0x473A, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x473B,INVALC,INVALC,INVALC,0x473C,INVALC,INVALC,INVALC, - 0x473D,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x473E,INVALC,INVALC,0x473F,INVALC,0x4740,INVALC,INVALC, - /* Block 214, Array index 0x8C00 */ - INVALC,INVALC,INVALC,INVALC,0x4741,INVALC,INVALC,INVALC, - 0x4742,INVALC,INVALC,INVALC,0x4743,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4744,0x4745,INVALC,0x4746, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4747,0x4748,INVALC,INVALC, - 0x4749,INVALC,INVALC,INVALC,0x474A,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x474B,0x474C,INVALC,0x474D, - INVALC,0x474E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x474F,0x4750,INVALC,INVALC,0x4751,INVALC,INVALC,INVALC, - 0x4752,INVALC,INVALC,INVALC,INVALC,0x4753,INVALC,INVALC, - 0x4754,0x4755,INVALC,0x4756,INVALC,0x4757,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4758,0x4759,INVALC,INVALC, - 0x475A,INVALC,INVALC,INVALC,0x475B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x475C,0x475D,INVALC,0x475E, - 0x475F,0x4760,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4761,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4762,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4763,0x4764,INVALC,INVALC,0x4765,INVALC,INVALC,INVALC, - 0x4766,INVALC,0x4767,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4768,0x4769,INVALC,0x476A,INVALC,0x476B,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x476C,0x476D,INVALC,INVALC, - 0x476E,INVALC,INVALC,INVALC,0x476F,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4770,0x4771,INVALC,0x4772, - INVALC,0x4773,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 215, Array index 0x8D00 */ - 0x4774,0x4775,INVALC,INVALC,0x4776,INVALC,INVALC,INVALC, - 0x4777,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4778,0x4779,INVALC,0x477A,0x477B,0x477C,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x477D,INVALC,INVALC,INVALC, - 0x477E,INVALC,INVALC,INVALC,0x4821,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x4822,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4823,0x4824,INVALC,INVALC,0x4825,INVALC,INVALC,INVALC, - 0x4826,INVALC,INVALC,INVALC,INVALC,0x4827,INVALC,INVALC, - 0x4828,0x4829,INVALC,0x482A,INVALC,0x482B,INVALC,INVALC, - INVALC,0x482C,INVALC,INVALC,0x482D,0x482E,INVALC,INVALC, - 0x482F,INVALC,INVALC,INVALC,0x4830,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,0x4831, - INVALC,0x4832,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4833,0x4834,INVALC,INVALC,0x4835,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,0x4836,INVALC,0x4837,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4838,0x4839,INVALC,INVALC, - 0x483A,INVALC,INVALC,INVALC,0x483B,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,0x483C,INVALC,0x483D, - INVALC,0x483E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x483F,INVALC,INVALC,INVALC,0x4840,INVALC,INVALC,INVALC, - 0x4841,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4842,INVALC,0x4843,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4844,0x4845,INVALC,INVALC, - 0x4846,INVALC,INVALC,INVALC,0x4847,INVALC,INVALC,INVALC, - INVALC,0x4848,INVALC,INVALC,0x4849,INVALC,INVALC,0x484A, - INVALC,0x484B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x484C,INVALC,INVALC,INVALC,0x484D,INVALC,INVALC,INVALC, - 0x484E,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x484F,INVALC,INVALC,INVALC,INVALC,0x4850,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4851,0x4852,INVALC,INVALC, - /* Block 216, Array index 0x8E00 */ - 0x4853,INVALC,INVALC,INVALC,0x4854,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,0x4855,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4856,0x4857,INVALC,INVALC,0x4858,INVALC,INVALC,INVALC, - 0x4859,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x485A,0x485B,INVALC,0x485C,INVALC,0x485D,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x485E,0x485F,INVALC,INVALC, - 0x4860,INVALC,INVALC,INVALC,0x4861,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4862,INVALC,INVALC,0x4863, - INVALC,0x4864,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4865,0x4866,INVALC,INVALC,0x4867,INVALC,0x4868,0x4869, - 0x486A,0x486B,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x486C,0x486D,INVALC,0x486E,INVALC,0x486F,INVALC,INVALC, - INVALC,0x4870,INVALC,INVALC,0x4871,INVALC,INVALC,INVALC, - 0x4872,INVALC,INVALC,INVALC,0x4873,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,0x4874,0x4875,INVALC,INVALC, - INVALC,0x4876,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x4877,0x4878,INVALC,INVALC,0x4879,INVALC,INVALC,INVALC, - 0x487A,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x487B,0x487C,INVALC,0x487D,INVALC,0x487E,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 250, Array index 0x8F00 */ - 0x4B50,0x4B56,0x4B67,0x4D4F,0x4D68,0x4E2D,0x4F7B,0x5022, - 0x5038,0x5050,0x505D,0x5154,0x5155,0x5158,0x515B,0x515C, - 0x515D,0x515E,0x515F,0x5160,0x5162,0x5163,0x5164,0x5165, - 0x5166,0x5168,0x5169,0x516A,0x516B,0x516D,0x516F,0x5170, - 0x5172,0x5176,0x517A,0x517C,0x517D,0x517E,0x5222,0x5223, - 0x5227,0x5228,0x5229,0x522A,0x522B,0x522D,0x5232,0x523E, - 0x5242,0x5243,0x5244,0x5246,0x5247,0x5248,0x5249,0x524A, - 0x524B,0x524D,0x524E,0x524F,0x5250,0x5251,0x5252,0x5253, - 0x5254,0x5255,0x5256,0x5257,0x5259,0x525A,0x525E,0x525F, - 0x5261,0x5262,0x5264,0x5265,0x5266,0x5267,0x5268,0x5269, - 0x526A,0x526B,0x5270,0x5271,0x5272,0x5273,0x5274,0x5275, - 0x5277,0x5278,0x5466,0x547C,0x5525,0x552B,0x552E,0x5638, - 0x564D,0x574B,0x5764,0x5B45,0x5B64,0x5C25,0x5D25,0x5D55, - 0x5D74,0x5E7C,0x5E7E,0x5F33,0x5F61,0x5F68,0x6071,0x612D, - 0x616D,0x6375,0x6421,0x6429,0x652E,0x6531,0x6532,0x6539, - 0x653B,0x653C,0x6544,0x654E,0x6550,0x6552,0x6556,0x657A, - 0x657B,0x657C,0x657E,0x6621,0x6624,0x6627,0x662D,0x662F, - 0x6630,0x6631,0x6633,0x6637,0x6638,0x663C,0x6644,0x6646, - 0x6647,0x664A,0x6652,0x6656,0x6659,0x665C,0x665F,0x6661, - 0x6664,0x6665,0x6666,0x6668,0x666A,0x666B,0x666C,0x666F, - 0x6671,0x6672,0x6675,0x6676,0x6677,0x6679,0x6721,0x6726, - 0x6729,0x672A,0x672C,0x672D,0x6730,0x673F,0x6741,0x6746, - 0x6747,0x674B,0x674D,0x674F,0x6750,0x6753,0x675F,0x6764, - 0x6766,0x6777,0x6867,0x6868,0x6870,0x6871,0x6877,0x6879, - 0x687B,0x687E,0x6927,0x692C,0x694C,0x6977,0x6A41,0x6A65, - 0x6A74,0x6A77,0x6A7C,0x6A7E,0x6B24,0x6B27,0x6B29,0x6B2A, - 0x6B3A,0x6B3B,0x6B3D,0x6B41,0x6B42,0x6B46,0x6B47,0x6B4C, - 0x6B4F,0x6B50,0x6B51,0x6B52,0x6B58,0x6C26,0x6C27,0x6C2A, - 0x6C2F,0x6C30,0x6C31,0x6C32,0x6C35,0x6C38,0x6C3A,0x6C40, - 0x6C41,0x6C45,0x6C46,0x6C49,0x6C4A,0x6C55,0x6C5D,0x6C5E, - 0x6C61,0x6C64,0x6C67,0x6C68,0x6C77,0x6C78,0x6C7A,0x6D21, - 0x6D22,0x6D23,0x6D6E,0x6E5B,0x723D,0x727A,0x7331,0x7427, - /* Block 251, Array index 0x9000 */ - 0x746E,0x7674,0x7676,0x7738,0x7748,0x7753,0x785B,0x7870, - 0x7A21,0x7A22,0x7A66,0x7C29,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - /* Block 256, Array index 0x9100 */ - INVALC,0x2321,0x2322,0x2323,0x2324,0x2325,0x2326,0x2327, - 0x2328,0x2329,0x232A,0x232B,0x232C,0x232D,0x232E,0x232F, - 0x2330,0x2331,0x2332,0x2333,0x2334,0x2335,0x2336,0x2337, - 0x2338,0x2339,0x233A,0x233B,0x233C,0x233D,0x233E,0x233F, - 0x2340,0x2341,0x2342,0x2343,0x2344,0x2345,0x2346,0x2347, - 0x2348,0x2349,0x234A,0x234B,0x234C,0x234D,0x234E,0x234F, - 0x2350,0x2351,0x2352,0x2353,0x2354,0x2355,0x2356,0x2357, - 0x2358,0x2359,0x235A,0x235B,0x212C,0x235D,0x235E,0x235F, - 0x2360,0x2361,0x2362,0x2363,0x2364,0x2365,0x2366,0x2367, - 0x2368,0x2369,0x236A,0x236B,0x236C,0x236D,0x236E,0x236F, - 0x2370,0x2371,0x2372,0x2373,0x2374,0x2375,0x2376,0x2377, - 0x2378,0x2379,0x237A,0x237B,0x237C,0x237D,0x2226,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x214B,0x214C,0x217E,0x237E,INVALC,0x214D,0x235C,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, -}; - -#endif /* ICONV_FROM_UCS_CCS_KSX1001 && !defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * 16-bit UCS -> ksx1001 size-optimized table (29992 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_KSX1001) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - -static const __uint16_t -from_ucs_size_ksx1001[] = -{ - 0x01B6, /* Ranges number */ - 0x1338, /* Unranged codes number */ - 0x1424, /* First unranged code index */ - /* Ranges list: first code, last Code, array index. */ - /* Array index: 0x0003 */ 0x00B0, 0x00BF, 0x0525, - /* Array index: 0x0006 */ 0x0131, 0x0133, 0x0535, - /* Array index: 0x0009 */ 0x013F, 0x0142, 0x0538, - /* Array index: 0x000C */ 0x0149, 0x014B, 0x053C, - /* Array index: 0x000F */ 0x02D8, 0x02DD, 0x053F, - /* Array index: 0x0012 */ 0x0391, 0x03A9, 0x0545, - /* Array index: 0x0015 */ 0x03B1, 0x03C9, 0x055E, - /* Array index: 0x0018 */ 0x0410, 0x0451, 0x0577, - /* Array index: 0x001B */ 0x207F, 0x2084, 0x05B9, - /* Array index: 0x001E */ 0x215B, 0x2169, 0x05BF, - /* Array index: 0x0021 */ 0x2170, 0x2179, 0x05CE, - /* Array index: 0x0024 */ 0x2190, 0x2199, 0x05D8, - /* Array index: 0x0027 */ 0x2225, 0x222E, 0x05E2, - /* Array index: 0x002A */ 0x2460, 0x246E, 0x05EC, - /* Array index: 0x002D */ 0x2474, 0x2482, 0x05FB, - /* Array index: 0x0030 */ 0x249C, 0x24B5, 0x060A, - /* Array index: 0x0033 */ 0x24D0, 0x24E9, 0x0624, - /* Array index: 0x0036 */ 0x2500, 0x2503, 0x063E, - /* Array index: 0x0039 */ 0x250C, 0x254B, 0x0642, - /* Array index: 0x003C */ 0x25A0, 0x25A9, 0x0682, - /* Array index: 0x003F */ 0x25C6, 0x25C8, 0x068C, - /* Array index: 0x0042 */ 0x25CE, 0x25D1, 0x068F, - /* Array index: 0x0045 */ 0x2660, 0x266D, 0x0693, - /* Array index: 0x0048 */ 0x3000, 0x3003, 0x06A1, - /* Array index: 0x004B */ 0x3008, 0x3015, 0x06A5, - /* Array index: 0x004E */ 0x3041, 0x3093, 0x06B3, - /* Array index: 0x0051 */ 0x30A1, 0x30F6, 0x0706, - /* Array index: 0x0054 */ 0x3131, 0x318E, 0x075C, - /* Array index: 0x0057 */ 0x3200, 0x321C, 0x07BA, - /* Array index: 0x005A */ 0x3260, 0x327B, 0x07D7, - /* Array index: 0x005D */ 0x3380, 0x33CA, 0x07F3, - /* Array index: 0x0060 */ 0x33DB, 0x33DD, 0x083E, - /* Array index: 0x0063 */ 0x4E07, 0x4E0D, 0x0841, - /* Array index: 0x0066 */ 0x4E14, 0x4E19, 0x0848, - /* Array index: 0x0069 */ 0x4E4B, 0x4E4F, 0x084E, - /* Array index: 0x006C */ 0x4E5D, 0x4E5F, 0x0853, - /* Array index: 0x006F */ 0x4E8E, 0x4E95, 0x0856, - /* Array index: 0x0072 */ 0x4EA1, 0x4EAE, 0x085E, - /* Array index: 0x0075 */ 0x4ED4, 0x4ED9, 0x086C, - /* Array index: 0x0078 */ 0x4EE3, 0x4EE5, 0x0872, - /* Array index: 0x007B */ 0x4F09, 0x4F11, 0x0875, - /* Array index: 0x007E */ 0x4F46, 0x4F48, 0x087E, - /* Array index: 0x0081 */ 0x4F4D, 0x4F51, 0x0881, - /* Array index: 0x0084 */ 0x4F59, 0x4F5C, 0x0886, - /* Array index: 0x0087 */ 0x4FC2, 0x4FC4, 0x088A, - /* Array index: 0x008A */ 0x4FDD, 0x4FE1, 0x088D, - /* Array index: 0x008D */ 0x5023, 0x502D, 0x0892, - /* Array index: 0x0090 */ 0x5047, 0x5049, 0x089D, - /* Array index: 0x0093 */ 0x5074, 0x5078, 0x08A0, - /* Array index: 0x0096 */ 0x50FF, 0x5101, 0x08A5, - /* Array index: 0x0099 */ 0x5140, 0x514E, 0x08A8, - /* Array index: 0x009C */ 0x5165, 0x516E, 0x08B7, - /* Array index: 0x009F */ 0x5175, 0x5178, 0x08C1, - /* Array index: 0x00A2 */ 0x51C9, 0x51CD, 0x08C5, - /* Array index: 0x00A5 */ 0x51DC, 0x51DE, 0x08CA, - /* Array index: 0x00A8 */ 0x51F6, 0x51FA, 0x08CD, - /* Array index: 0x00AB */ 0x5206, 0x520A, 0x08D2, - /* Array index: 0x00AE */ 0x5236, 0x523B, 0x08D7, - /* Array index: 0x00B1 */ 0x524A, 0x524D, 0x08DD, - /* Array index: 0x00B4 */ 0x5287, 0x5289, 0x08E1, - /* Array index: 0x00B7 */ 0x52A9, 0x52AB, 0x08E4, - /* Array index: 0x00BA */ 0x52D5, 0x52E4, 0x08E7, - /* Array index: 0x00BD */ 0x5315, 0x5319, 0x08F7, - /* Array index: 0x00C0 */ 0x533F, 0x534A, 0x08FC, - /* Array index: 0x00C3 */ 0x5351, 0x5354, 0x0908, - /* Array index: 0x00C6 */ 0x536F, 0x5377, 0x090C, - /* Array index: 0x00C9 */ 0x53C8, 0x53CD, 0x0915, - /* Array index: 0x00CC */ 0x53E1, 0x53F3, 0x091B, - /* Array index: 0x00CF */ 0x5408, 0x5411, 0x092E, - /* Array index: 0x00D2 */ 0x5438, 0x543E, 0x0938, - /* Array index: 0x00D5 */ 0x547B, 0x547D, 0x093F, - /* Array index: 0x00D8 */ 0x5586, 0x558A, 0x0942, - /* Array index: 0x00DB */ 0x5598, 0x559D, 0x0947, - /* Array index: 0x00DE */ 0x55A7, 0x55AE, 0x094D, - /* Array index: 0x00E1 */ 0x574D, 0x5751, 0x0955, - /* Array index: 0x00E4 */ 0x5805, 0x580A, 0x095A, - /* Array index: 0x00E7 */ 0x582F, 0x5835, 0x0960, - /* Array index: 0x00EA */ 0x58F9, 0x58FD, 0x0967, - /* Array index: 0x00ED */ 0x5914, 0x591C, 0x096C, - /* Array index: 0x00F0 */ 0x5927, 0x592E, 0x0975, - /* Array index: 0x00F3 */ 0x5947, 0x5949, 0x097D, - /* Array index: 0x00F6 */ 0x594E, 0x5957, 0x0980, - /* Array index: 0x00F9 */ 0x596A, 0x596E, 0x098A, - /* Array index: 0x00FC */ 0x5982, 0x5984, 0x098F, - /* Array index: 0x00FF */ 0x59D0, 0x59D4, 0x0992, - /* Array index: 0x0102 */ 0x59D9, 0x59DD, 0x0997, - /* Array index: 0x0105 */ 0x5B54, 0x5B5F, 0x099C, - /* Array index: 0x0108 */ 0x5B85, 0x5B8C, 0x09A8, - /* Array index: 0x010B */ 0x5B93, 0x5B9C, 0x09B0, - /* Array index: 0x010E */ 0x5BA2, 0x5BA6, 0x09BA, - /* Array index: 0x0111 */ 0x5BB3, 0x5BB9, 0x09BF, - /* Array index: 0x0114 */ 0x5BBF, 0x5BC7, 0x09C6, - /* Array index: 0x0117 */ 0x5BD0, 0x5BD4, 0x09CF, - /* Array index: 0x011A */ 0x5BDE, 0x5BEF, 0x09D4, - /* Array index: 0x011D */ 0x5C07, 0x5C11, 0x09E6, - /* Array index: 0x0120 */ 0x5C38, 0x5C40, 0x09F1, - /* Array index: 0x0123 */ 0x5DE1, 0x5DE8, 0x09FA, - /* Array index: 0x0126 */ 0x5DF1, 0x5DF4, 0x0A02, - /* Array index: 0x0129 */ 0x5E5F, 0x5E63, 0x0A06, - /* Array index: 0x012C */ 0x5E72, 0x5E7E, 0x0A0B, - /* Array index: 0x012F */ 0x5EB5, 0x5EB8, 0x0A18, - /* Array index: 0x0132 */ 0x5EC8, 0x5ECA, 0x0A1C, - /* Array index: 0x0135 */ 0x5EDF, 0x5EE3, 0x0A1F, - /* Array index: 0x0138 */ 0x5F11, 0x5F18, 0x0A24, - /* Array index: 0x013B */ 0x5F66, 0x5F71, 0x0A2C, - /* Array index: 0x013E */ 0x5F7F, 0x5F81, 0x0A38, - /* Array index: 0x0141 */ 0x5F8A, 0x5F92, 0x0A3B, - /* Array index: 0x0144 */ 0x5F97, 0x5F99, 0x0A44, - /* Array index: 0x0147 */ 0x5FA8, 0x5FAA, 0x0A47, - /* Array index: 0x014A */ 0x5FD6, 0x5FD9, 0x0A4A, - /* Array index: 0x014D */ 0x6041, 0x6043, 0x0A4E, - /* Array index: 0x0150 */ 0x6062, 0x6070, 0x0A51, - /* Array index: 0x0153 */ 0x60B0, 0x60B8, 0x0A60, - /* Array index: 0x0156 */ 0x60DF, 0x60E1, 0x0A69, - /* Array index: 0x0159 */ 0x60F9, 0x60FB, 0x0A6C, - /* Array index: 0x015C */ 0x610D, 0x610F, 0x0A6F, - /* Array index: 0x015F */ 0x6147, 0x614C, 0x0A72, - /* Array index: 0x0162 */ 0x6162, 0x6168, 0x0A78, - /* Array index: 0x0165 */ 0x6198, 0x619A, 0x0A7F, - /* Array index: 0x0168 */ 0x61C7, 0x61CB, 0x0A82, - /* Array index: 0x016B */ 0x61F6, 0x6200, 0x0A87, - /* Array index: 0x016E */ 0x620A, 0x6212, 0x0A92, - /* Array index: 0x0171 */ 0x623E, 0x6241, 0x0A9B, - /* Array index: 0x0174 */ 0x6247, 0x624D, 0x0A9F, - /* Array index: 0x0177 */ 0x62C7, 0x62DC, 0x0AA6, - /* Array index: 0x017A */ 0x62EC, 0x62F3, 0x0ABC, - /* Array index: 0x017D */ 0x633A, 0x633E, 0x0AC4, - /* Array index: 0x0180 */ 0x63A0, 0x63A2, 0x0AC9, - /* Array index: 0x0183 */ 0x63A5, 0x63AA, 0x0ACC, - /* Array index: 0x0186 */ 0x6478, 0x647A, 0x0AD2, - /* Array index: 0x0189 */ 0x6491, 0x6493, 0x0AD5, - /* Array index: 0x018C */ 0x64E1, 0x64E7, 0x0AD8, - /* Array index: 0x018F */ 0x652A, 0x652C, 0x0ADF, - /* Array index: 0x0192 */ 0x6536, 0x653F, 0x0AE2, - /* Array index: 0x0195 */ 0x654D, 0x6551, 0x0AEC, - /* Array index: 0x0198 */ 0x6574, 0x6578, 0x0AF1, - /* Array index: 0x019B */ 0x65E5, 0x65ED, 0x0AF6, - /* Array index: 0x019E */ 0x65FA, 0x65FF, 0x0AFF, - /* Array index: 0x01A1 */ 0x6606, 0x6615, 0x0B05, - /* Array index: 0x01A4 */ 0x661E, 0x6620, 0x0B15, - /* Array index: 0x01A7 */ 0x662D, 0x6631, 0x0B18, - /* Array index: 0x01AA */ 0x6641, 0x6644, 0x0B1D, - /* Array index: 0x01AD */ 0x665B, 0x665F, 0x0B21, - /* Array index: 0x01B0 */ 0x6664, 0x666F, 0x0B26, - /* Array index: 0x01B3 */ 0x6673, 0x667A, 0x0B32, - /* Array index: 0x01B6 */ 0x6687, 0x6689, 0x0B3A, - /* Array index: 0x01B9 */ 0x6696, 0x6698, 0x0B3D, - /* Array index: 0x01BC */ 0x66B2, 0x66B4, 0x0B40, - /* Array index: 0x01BF */ 0x66F0, 0x6700, 0x0B43, - /* Array index: 0x01C2 */ 0x671B, 0x671F, 0x0B54, - /* Array index: 0x01C5 */ 0x6726, 0x672E, 0x0B59, - /* Array index: 0x01C8 */ 0x674E, 0x6753, 0x0B62, - /* Array index: 0x01CB */ 0x676D, 0x6777, 0x0B68, - /* Array index: 0x01CE */ 0x67B6, 0x67B8, 0x0B73, - /* Array index: 0x01D1 */ 0x67CF, 0x67D4, 0x0B76, - /* Array index: 0x01D4 */ 0x67EF, 0x67F6, 0x0B7C, - /* Array index: 0x01D7 */ 0x683C, 0x6843, 0x0B84, - /* Array index: 0x01DA */ 0x6850, 0x6854, 0x0B8C, - /* Array index: 0x01DD */ 0x68AD, 0x68B6, 0x0B91, - /* Array index: 0x01E0 */ 0x6953, 0x695A, 0x0B9B, - /* Array index: 0x01E3 */ 0x695E, 0x6963, 0x0BA3, - /* Array index: 0x01E6 */ 0x696B, 0x696F, 0x0BA9, - /* Array index: 0x01E9 */ 0x6975, 0x6979, 0x0BAE, - /* Array index: 0x01EC */ 0x69CB, 0x69CD, 0x0BB3, - /* Array index: 0x01EF */ 0x6A38, 0x6A3A, 0x0BB6, - /* Array index: 0x01F2 */ 0x6B5F, 0x6B66, 0x0BB9, - /* Array index: 0x01F5 */ 0x6BD2, 0x6BD8, 0x0BC1, - /* Array index: 0x01F8 */ 0x6C3E, 0x6C42, 0x0BC8, - /* Array index: 0x01FB */ 0x6C5D, 0x6C60, 0x0BCD, - /* Array index: 0x01FE */ 0x6C7D, 0x6C88, 0x0BD1, - /* Array index: 0x0201 */ 0x6C90, 0x6C9B, 0x0BDD, - /* Array index: 0x0204 */ 0x6CB8, 0x6CC4, 0x0BE9, - /* Array index: 0x0207 */ 0x6CE1, 0x6CE5, 0x0BF6, - /* Array index: 0x020A */ 0x6CEE, 0x6CF0, 0x0BFB, - /* Array index: 0x020D */ 0x6D35, 0x6D3E, 0x0BFE, - /* Array index: 0x0210 */ 0x6D77, 0x6D79, 0x0C08, - /* Array index: 0x0213 */ 0x6D85, 0x6D8E, 0x0C0B, - /* Array index: 0x0216 */ 0x6DC3, 0x6DC7, 0x0C15, - /* Array index: 0x0219 */ 0x6DD8, 0x6DDA, 0x0C1A, - /* Array index: 0x021C */ 0x6DF5, 0x6DFB, 0x0C1D, - /* Array index: 0x021F */ 0x6E17, 0x6E26, 0x0C24, - /* Array index: 0x0222 */ 0x6E2B, 0x6E2F, 0x0C34, - /* Array index: 0x0225 */ 0x6E3A, 0x6E3E, 0x0C39, - /* Array index: 0x0228 */ 0x6E5B, 0x6E5F, 0x0C3E, - /* Array index: 0x022B */ 0x6EFE, 0x6F02, 0x0C43, - /* Array index: 0x022E */ 0x6F57, 0x6F5F, 0x0C48, - /* Array index: 0x0231 */ 0x6F7A, 0x6F7E, 0x0C51, - /* Array index: 0x0234 */ 0x6FBE, 0x6FC3, 0x0C56, - /* Array index: 0x0237 */ 0x6FDF, 0x6FE1, 0x0C5C, - /* Array index: 0x023A */ 0x7018, 0x701F, 0x0C5F, - /* Array index: 0x023D */ 0x7098, 0x709A, 0x0C67, - /* Array index: 0x0240 */ 0x70AB, 0x70AF, 0x0C6A, - /* Array index: 0x0243 */ 0x70B7, 0x70B9, 0x0C6F, - /* Array index: 0x0246 */ 0x7164, 0x7169, 0x0C72, - /* Array index: 0x0249 */ 0x71E5, 0x71E7, 0x0C78, - /* Array index: 0x024C */ 0x71FB, 0x7200, 0x0C7B, - /* Array index: 0x024F */ 0x723A, 0x7240, 0x0C81, - /* Array index: 0x0252 */ 0x7246, 0x7248, 0x0C88, - /* Array index: 0x0255 */ 0x731B, 0x731D, 0x0C8B, - /* Array index: 0x0258 */ 0x7329, 0x732B, 0x0C8E, - /* Array index: 0x025B */ 0x7394, 0x7398, 0x0C91, - /* Array index: 0x025E */ 0x73C9, 0x73CF, 0x0C96, - /* Array index: 0x0261 */ 0x73E3, 0x73EA, 0x0C9D, - /* Array index: 0x0264 */ 0x7403, 0x7409, 0x0CA5, - /* Array index: 0x0267 */ 0x7420, 0x743A, 0x0CAC, - /* Array index: 0x026A */ 0x743F, 0x7444, 0x0CC7, - /* Array index: 0x026D */ 0x7457, 0x746A, 0x0CCD, - /* Array index: 0x0270 */ 0x7530, 0x7533, 0x0CE1, - /* Array index: 0x0273 */ 0x7559, 0x755D, 0x0CE5, - /* Array index: 0x0276 */ 0x75B1, 0x75BE, 0x0CEA, - /* Array index: 0x0279 */ 0x761F, 0x7626, 0x0CF8, - /* Array index: 0x027C */ 0x767B, 0x767E, 0x0D00, - /* Array index: 0x027F */ 0x76DB, 0x76E4, 0x0D04, - /* Array index: 0x0282 */ 0x77ED, 0x77EF, 0x0D0E, - /* Array index: 0x0285 */ 0x7825, 0x7827, 0x0D11, - /* Array index: 0x0288 */ 0x788C, 0x788E, 0x0D14, - /* Array index: 0x028B */ 0x78BA, 0x78BC, 0x0D17, - /* Array index: 0x028E */ 0x792A, 0x792C, 0x0D1A, - /* Array index: 0x0291 */ 0x7947, 0x7949, 0x0D1D, - /* Array index: 0x0294 */ 0x7956, 0x7960, 0x0D20, - /* Array index: 0x0297 */ 0x798D, 0x7991, 0x0D2B, - /* Array index: 0x029A */ 0x79BD, 0x79C1, 0x0D30, - /* Array index: 0x029D */ 0x79C9, 0x79CB, 0x0D35, - /* Array index: 0x02A0 */ 0x7A3B, 0x7A40, 0x0D38, - /* Array index: 0x02A3 */ 0x7B49, 0x7B56, 0x0D3E, - /* Array index: 0x02A6 */ 0x7C3D, 0x7C3F, 0x0D4C, - /* Array index: 0x02A9 */ 0x7CB1, 0x7CB3, 0x0D4F, - /* Array index: 0x02AC */ 0x7CDE, 0x7CE0, 0x0D52, - /* Array index: 0x02AF */ 0x7D02, 0x7D0D, 0x0D55, - /* Array index: 0x02B2 */ 0x7D17, 0x7D1B, 0x0D61, - /* Array index: 0x02B5 */ 0x7D20, 0x7D22, 0x0D66, - /* Array index: 0x02B8 */ 0x7D2B, 0x7D30, 0x0D69, - /* Array index: 0x02BB */ 0x7D42, 0x7D46, 0x0D6F, - /* Array index: 0x02BE */ 0x7D71, 0x7D73, 0x0D74, - /* Array index: 0x02C1 */ 0x7DB1, 0x7DB5, 0x0D77, - /* Array index: 0x02C4 */ 0x7DBA, 0x7DBF, 0x0D7C, - /* Array index: 0x02C7 */ 0x7DDD, 0x7DE3, 0x0D82, - /* Array index: 0x02CA */ 0x7E1B, 0x7E23, 0x0D89, - /* Array index: 0x02CD */ 0x7E69, 0x7E6D, 0x0D92, - /* Array index: 0x02D0 */ 0x7FDF, 0x7FE1, 0x0D97, - /* Array index: 0x02D3 */ 0x806F, 0x8073, 0x0D9A, - /* Array index: 0x02D6 */ 0x807D, 0x807F, 0x0D9F, - /* Array index: 0x02D9 */ 0x8084, 0x808C, 0x0DA2, - /* Array index: 0x02DC */ 0x8105, 0x810A, 0x0DAB, - /* Array index: 0x02DF */ 0x8178, 0x817A, 0x0DB1, - /* Array index: 0x02E2 */ 0x81BD, 0x81C2, 0x0DB4, - /* Array index: 0x02E5 */ 0x81FA, 0x81FE, 0x0DBA, - /* Array index: 0x02E8 */ 0x821B, 0x8221, 0x0DBF, - /* Array index: 0x02EB */ 0x822A, 0x822C, 0x0DC6, - /* Array index: 0x02EE */ 0x8235, 0x8239, 0x0DC9, - /* Array index: 0x02F1 */ 0x826E, 0x8272, 0x0DCE, - /* Array index: 0x02F4 */ 0x82AC, 0x82BF, 0x0DD3, - /* Array index: 0x02F7 */ 0x82D1, 0x82D7, 0x0DE7, - /* Array index: 0x02FA */ 0x82E5, 0x82E7, 0x0DEE, - /* Array index: 0x02FD */ 0x82FD, 0x8305, 0x0DF1, - /* Array index: 0x0300 */ 0x8334, 0x8339, 0x0DFA, - /* Array index: 0x0303 */ 0x83A9, 0x83AB, 0x0E00, - /* Array index: 0x0306 */ 0x83EF, 0x83F4, 0x0E03, - /* Array index: 0x0309 */ 0x840A, 0x840E, 0x0E09, - /* Array index: 0x030C */ 0x8568, 0x856A, 0x0E0E, - /* Array index: 0x030F */ 0x85A6, 0x85AA, 0x0E11, - /* Array index: 0x0312 */ 0x85CD, 0x85CF, 0x0E16, - /* Array index: 0x0315 */ 0x865B, 0x865F, 0x0E19, - /* Array index: 0x0318 */ 0x8861, 0x8863, 0x0E1E, - /* Array index: 0x031B */ 0x887E, 0x8882, 0x0E21, - /* Array index: 0x031E */ 0x88F3, 0x88F5, 0x0E26, - /* Array index: 0x0321 */ 0x8A16, 0x8A18, 0x0E29, - /* Array index: 0x0324 */ 0x8A6D, 0x8A75, 0x0E2C, - /* Array index: 0x0327 */ 0x8AA0, 0x8AAA, 0x0E35, - /* Array index: 0x032A */ 0x8AEA, 0x8AEE, 0x0E40, - /* Array index: 0x032D */ 0x8AF6, 0x8AFA, 0x0E45, - /* Array index: 0x0330 */ 0x8AFE, 0x8B04, 0x0E4A, - /* Array index: 0x0333 */ 0x8B16, 0x8B1D, 0x0E51, - /* Array index: 0x0336 */ 0x8C9D, 0x8CA2, 0x0E59, - /* Array index: 0x0339 */ 0x8CA7, 0x8CCA, 0x0E5F, - /* Array index: 0x033C */ 0x8CE0, 0x8CE6, 0x0E83, - /* Array index: 0x033F */ 0x8CFB, 0x8CFD, 0x0E8A, - /* Array index: 0x0342 */ 0x8D04, 0x8D0A, 0x0E8D, - /* Array index: 0x0345 */ 0x8E47, 0x8E4A, 0x0E94, - /* Array index: 0x0348 */ 0x8EAA, 0x8EAC, 0x0E98, - /* Array index: 0x034B */ 0x8ECA, 0x8ECD, 0x0E9B, - /* Array index: 0x034E */ 0x8F12, 0x8F15, 0x0E9F, - /* Array index: 0x0351 */ 0x8F1B, 0x8F1F, 0x0EA3, - /* Array index: 0x0354 */ 0x8F26, 0x8F2A, 0x0EA8, - /* Array index: 0x0357 */ 0x8FAD, 0x8FB2, 0x0EAD, - /* Array index: 0x035A */ 0x9000, 0x9008, 0x0EB3, - /* Array index: 0x035D */ 0x900D, 0x9023, 0x0EBC, - /* Array index: 0x0360 */ 0x904A, 0x9055, 0x0ED3, - /* Array index: 0x0363 */ 0x905C, 0x9063, 0x0EDF, - /* Array index: 0x0366 */ 0x906D, 0x906F, 0x0EE7, - /* Array index: 0x0369 */ 0x907C, 0x908A, 0x0EEA, - /* Array index: 0x036C */ 0x90AF, 0x90B1, 0x0EF9, - /* Array index: 0x036F */ 0x9149, 0x914E, 0x0EFC, - /* Array index: 0x0372 */ 0x91AB, 0x91B5, 0x0F02, - /* Array index: 0x0375 */ 0x91C9, 0x91D1, 0x0F0D, - /* Array index: 0x0378 */ 0x9210, 0x9212, 0x0F16, - /* Array index: 0x037B */ 0x9262, 0x9266, 0x0F19, - /* Array index: 0x037E */ 0x931E, 0x9328, 0x0F1E, - /* Array index: 0x0381 */ 0x958F, 0x9594, 0x0F29, - /* Array index: 0x0384 */ 0x95A3, 0x95A5, 0x0F2F, - /* Array index: 0x0387 */ 0x95D4, 0x95D6, 0x0F32, - /* Array index: 0x038A */ 0x964B, 0x964D, 0x0F35, - /* Array index: 0x038D */ 0x965B, 0x9664, 0x0F38, - /* Array index: 0x0390 */ 0x9673, 0x9678, 0x0F42, - /* Array index: 0x0393 */ 0x968A, 0x968E, 0x0F48, - /* Array index: 0x0396 */ 0x9698, 0x969C, 0x0F4D, - /* Array index: 0x0399 */ 0x96C0, 0x96CE, 0x0F52, - /* Array index: 0x039C */ 0x96E8, 0x96EA, 0x0F61, - /* Array index: 0x039F */ 0x97FF, 0x9813, 0x0F64, - /* Array index: 0x03A2 */ 0x984C, 0x984E, 0x0F79, - /* Array index: 0x03A5 */ 0x98ED, 0x98EF, 0x0F7C, - /* Array index: 0x03A8 */ 0x98FC, 0x98FE, 0x0F7F, - /* Array index: 0x03AB */ 0x9949, 0x994D, 0x0F82, - /* Array index: 0x03AE */ 0x99AC, 0x99AE, 0x0F87, - /* Array index: 0x03B1 */ 0x99D0, 0x99D2, 0x0F8A, - /* Array index: 0x03B4 */ 0x9B41, 0x9B45, 0x0F8D, - /* Array index: 0x03B7 */ 0x9DF8, 0x9DFA, 0x0F92, - /* Array index: 0x03BA */ 0xAC07, 0xAC0A, 0x0F95, - /* Array index: 0x03BD */ 0xAC10, 0xAC1D, 0x0F99, - /* Array index: 0x03C0 */ 0xAC2C, 0xAC31, 0x0FA7, - /* Array index: 0x03C3 */ 0xAC80, 0xAC8C, 0x0FAD, - /* Array index: 0x03C6 */ 0xAC9C, 0xACA1, 0x0FBA, - /* Array index: 0x03C9 */ 0xACA8, 0xACB0, 0x0FC0, - /* Array index: 0x03CC */ 0xACB8, 0xACBD, 0x0FC9, - /* Array index: 0x03CF */ 0xACEF, 0xACF6, 0x0FCF, - /* Array index: 0x03D2 */ 0xAD73, 0xAD76, 0x0FD7, - /* Array index: 0x03D5 */ 0xAD7B, 0xAD82, 0x0FDB, - /* Array index: 0x03D8 */ 0xADFF, 0xAE01, 0x0FE3, - /* Array index: 0x03DB */ 0xAE4A, 0xAE50, 0x0FE6, - /* Array index: 0x03DE */ 0xAE5C, 0xAE61, 0x0FED, - /* Array index: 0x03E1 */ 0xAE78, 0xAE7D, 0x0FF3, - /* Array index: 0x03E4 */ 0xAEBC, 0xAEC0, 0x0FF9, - /* Array index: 0x03E7 */ 0xAECC, 0xAED1, 0x0FFE, - /* Array index: 0x03EA */ 0xAF3F, 0xAF43, 0x1004, - /* Array index: 0x03ED */ 0xAFC7, 0xAFCE, 0x1009, - /* Array index: 0x03F0 */ 0xB053, 0xB059, 0x1011, - /* Array index: 0x03F3 */ 0xB098, 0xB0A2, 0x1018, - /* Array index: 0x03F6 */ 0xB0A8, 0xB0B5, 0x1023, - /* Array index: 0x03F9 */ 0xB0C4, 0xB0C9, 0x1031, - /* Array index: 0x03FC */ 0xB108, 0xB10C, 0x1037, - /* Array index: 0x03FF */ 0xB118, 0xB11D, 0x103C, - /* Array index: 0x0402 */ 0xB123, 0xB125, 0x1042, - /* Array index: 0x0405 */ 0xB134, 0xB139, 0x1045, - /* Array index: 0x0408 */ 0xB192, 0xB194, 0x104B, - /* Array index: 0x040B */ 0xB298, 0xB29A, 0x104E, - /* Array index: 0x040E */ 0xB2E2, 0xB301, 0x1051, - /* Array index: 0x0411 */ 0xB310, 0xB315, 0x1071, - /* Array index: 0x0414 */ 0xB354, 0xB35F, 0x1077, - /* Array index: 0x0417 */ 0xB380, 0xB385, 0x1083, - /* Array index: 0x041A */ 0xB524, 0xB52A, 0x1089, - /* Array index: 0x041D */ 0xB540, 0xB545, 0x1090, - /* Array index: 0x0420 */ 0xB54B, 0xB54D, 0x1096, - /* Array index: 0x0423 */ 0xB55C, 0xB561, 0x1099, - /* Array index: 0x0426 */ 0xB5B0, 0xB5B5, 0x109F, - /* Array index: 0x0429 */ 0xB5BB, 0xB5BD, 0x10A5, - /* Array index: 0x042C */ 0xB5CC, 0xB5D1, 0x10A8, - /* Array index: 0x042F */ 0xB78C, 0xB799, 0x10AE, - /* Array index: 0x0432 */ 0xB7A8, 0xB7AD, 0x10BC, - /* Array index: 0x0435 */ 0xB7FC, 0xB801, 0x10C2, - /* Array index: 0x0438 */ 0xB807, 0xB809, 0x10C8, - /* Array index: 0x043B */ 0xB834, 0xB839, 0x10CB, - /* Array index: 0x043E */ 0xB9CC, 0xB9D2, 0x10D1, - /* Array index: 0x0441 */ 0xB9E1, 0xB9E5, 0x10D8, - /* Array index: 0x0444 */ 0xB9F4, 0xB9FA, 0x10DD, - /* Array index: 0x0447 */ 0xBA53, 0xBA55, 0x10E4, - /* Array index: 0x044A */ 0xBA64, 0xBA69, 0x10E7, - /* Array index: 0x044D */ 0xBA83, 0xBA87, 0x10ED, - /* Array index: 0x0450 */ 0xBAA8, 0xBAAC, 0x10F2, - /* Array index: 0x0453 */ 0xBB34, 0xBB3E, 0x10F7, - /* Array index: 0x0456 */ 0xBC08, 0xBC1F, 0x1102, - /* Array index: 0x0459 */ 0xBC40, 0xBC45, 0x111A, - /* Array index: 0x045C */ 0xBCB0, 0xBCB5, 0x1120, - /* Array index: 0x045F */ 0xBCCD, 0xBCD1, 0x1126, - /* Array index: 0x0462 */ 0xBCF4, 0xBCF8, 0x112B, - /* Array index: 0x0465 */ 0xBD87, 0xBD8A, 0x1130, - /* Array index: 0x0468 */ 0xBE57, 0xBE5B, 0x1134, - /* Array index: 0x046B */ 0xBE70, 0xBE75, 0x1139, - /* Array index: 0x046E */ 0xBE7B, 0xBE7D, 0x113F, - /* Array index: 0x0471 */ 0xBE8C, 0xBE91, 0x1142, - /* Array index: 0x0474 */ 0xBEE3, 0xBEE5, 0x1148, - /* Array index: 0x0477 */ 0xBF18, 0xBF1D, 0x114B, - /* Array index: 0x047A */ 0xC0AC, 0xC0B6, 0x1151, - /* Array index: 0x047D */ 0xC0BC, 0xC0C1, 0x115C, - /* Array index: 0x0480 */ 0xC0D8, 0xC0DD, 0x1162, - /* Array index: 0x0483 */ 0xC11C, 0xC127, 0x1168, - /* Array index: 0x0486 */ 0xC12C, 0xC131, 0x1174, - /* Array index: 0x0489 */ 0xC148, 0xC14D, 0x117A, - /* Array index: 0x048C */ 0xC164, 0xC169, 0x1180, - /* Array index: 0x048F */ 0xC18C, 0xC190, 0x1186, - /* Array index: 0x0492 */ 0xC2EB, 0xC2F1, 0x118B, - /* Array index: 0x0495 */ 0xC2F8, 0xC2FC, 0x1192, - /* Array index: 0x0498 */ 0xC313, 0xC315, 0x1197, - /* Array index: 0x049B */ 0xC4FF, 0xC501, 0x119A, - /* Array index: 0x049E */ 0xC544, 0xC54E, 0x119D, - /* Array index: 0x04A1 */ 0xC553, 0xC559, 0x11A8, - /* Array index: 0x04A4 */ 0xC55D, 0xC561, 0x11AF, - /* Array index: 0x04A7 */ 0xC570, 0xC575, 0x11B4, - /* Array index: 0x04AA */ 0xC5B8, 0xC5BE, 0x11BA, - /* Array index: 0x04AD */ 0xC5C4, 0xC5D1, 0x11C1, - /* Array index: 0x04B0 */ 0xC5EC, 0xC5F0, 0x11CF, - /* Array index: 0x04B3 */ 0xC5FC, 0xC608, 0x11D4, - /* Array index: 0x04B6 */ 0xC618, 0xC61C, 0x11E1, - /* Array index: 0x04B9 */ 0xC62C, 0xC63B, 0x11E6, - /* Array index: 0x04BC */ 0xC650, 0xC655, 0x11F6, - /* Array index: 0x04BF */ 0xC6B8, 0xC6BA, 0x11FC, - /* Array index: 0x04C2 */ 0xC74F, 0xC758, 0x11FF, - /* Array index: 0x04C5 */ 0xC77C, 0xC77E, 0x1209, - /* Array index: 0x04C8 */ 0xC783, 0xC78A, 0x120C, - /* Array index: 0x04CB */ 0xC794, 0xC79A, 0x1214, - /* Array index: 0x04CE */ 0xC7A0, 0xC7A6, 0x121B, - /* Array index: 0x04D1 */ 0xC7BC, 0xC7C1, 0x1222, - /* Array index: 0x04D4 */ 0xC883, 0xC88D, 0x1228, - /* Array index: 0x04D7 */ 0xC904, 0xC906, 0x1233, - /* Array index: 0x04DA */ 0xC9D9, 0xC9DD, 0x1236, - /* Array index: 0x04DD */ 0xC9EC, 0xC9F1, 0x123B, - /* Array index: 0x04E0 */ 0xCA08, 0xCA0D, 0x1241, - /* Array index: 0x04E3 */ 0xCA5C, 0xCA61, 0x1247, - /* Array index: 0x04E6 */ 0xCC27, 0xCC29, 0x124D, - /* Array index: 0x04E9 */ 0xCC38, 0xCC3E, 0x1250, - /* Array index: 0x04EC */ 0xCC54, 0xCC59, 0x1257, - /* Array index: 0x04EF */ 0xCCA8, 0xCCAD, 0x125D, - /* Array index: 0x04F2 */ 0xCE5F, 0xCE61, 0x1263, - /* Array index: 0x04F5 */ 0xCEA0, 0xCEA5, 0x1266, - /* Array index: 0x04F8 */ 0xCEF4, 0xCEF9, 0x126C, - /* Array index: 0x04FB */ 0xCF2C, 0xCF31, 0x1272, - /* Array index: 0x04FE */ 0xD0D0, 0xD0D5, 0x1278, - /* Array index: 0x0501 */ 0xD0EC, 0xD0F1, 0x127E, - /* Array index: 0x0504 */ 0xD140, 0xD145, 0x1284, - /* Array index: 0x0507 */ 0xD30C, 0xD310, 0x128A, - /* Array index: 0x050A */ 0xD31C, 0xD321, 0x128F, - /* Array index: 0x050D */ 0xD338, 0xD33D, 0x1295, - /* Array index: 0x0510 */ 0xD38C, 0xD391, 0x129B, - /* Array index: 0x0513 */ 0xD584, 0xD589, 0x12A1, - /* Array index: 0x0516 */ 0xD610, 0xD615, 0x12A7, - /* Array index: 0x0519 */ 0xD754, 0xD759, 0x12AD, - /* Array index: 0x051C */ 0xF900, 0xFA0B, 0x12B3, - /* Array index: 0x051F */ 0xFF01, 0xFF5E, 0x13BF, - /* Array index: 0x0522 */ 0xFFE0, 0xFFE6, 0x141D, - /* Ranges content */ - /* Range 0x00B0 - 0x00BF, array index: 0x0525 */ - 0x2146,0x213E,0x2977,0x2978,0x2225,INVALC,0x2252,0x2124, - 0x222C,0x2976,0x282C,INVALC,0x2879,0x2876,0x287A,0x222F, - /* Range 0x0131 - 0x0133, array index: 0x0535 */ - 0x2925,0x2826,0x2926, - /* Range 0x013F - 0x0142, array index: 0x0538 */ - 0x2828,0x2928,0x2829,0x2929, - /* Range 0x0149 - 0x014B, array index: 0x053C */ - 0x2930,0x282F,0x292F, - /* Range 0x02D8 - 0x02DD, array index: 0x053F */ - 0x2228,0x222B,0x222A,0x222D,INVALC,0x2229, - /* Range 0x0391 - 0x03A9, array index: 0x0545 */ - 0x2541,0x2542,0x2543,0x2544,0x2545,0x2546,0x2547,0x2548, - 0x2549,0x254A,0x254B,0x254C,0x254D,0x254E,0x254F,0x2550, - 0x2551,INVALC,0x2552,0x2553,0x2554,0x2555,0x2556,0x2557, - 0x2558, - /* Range 0x03B1 - 0x03C9, array index: 0x055E */ - 0x2561,0x2562,0x2563,0x2564,0x2565,0x2566,0x2567,0x2568, - 0x2569,0x256A,0x256B,0x256C,0x256D,0x256E,0x256F,0x2570, - 0x2571,INVALC,0x2572,0x2573,0x2574,0x2575,0x2576,0x2577, - 0x2578, - /* Range 0x0410 - 0x0451, array index: 0x0577 */ - 0x2C21,0x2C22,0x2C23,0x2C24,0x2C25,0x2C26,0x2C28,0x2C29, - 0x2C2A,0x2C2B,0x2C2C,0x2C2D,0x2C2E,0x2C2F,0x2C30,0x2C31, - 0x2C32,0x2C33,0x2C34,0x2C35,0x2C36,0x2C37,0x2C38,0x2C39, - 0x2C3A,0x2C3B,0x2C3C,0x2C3D,0x2C3E,0x2C3F,0x2C40,0x2C41, - 0x2C51,0x2C52,0x2C53,0x2C54,0x2C55,0x2C56,0x2C58,0x2C59, - 0x2C5A,0x2C5B,0x2C5C,0x2C5D,0x2C5E,0x2C5F,0x2C60,0x2C61, - 0x2C62,0x2C63,0x2C64,0x2C65,0x2C66,0x2C67,0x2C68,0x2C69, - 0x2C6A,0x2C6B,0x2C6C,0x2C6D,0x2C6E,0x2C6F,0x2C70,0x2C71, - INVALC,0x2C57, - /* Range 0x207F - 0x2084, array index: 0x05B9 */ - 0x297A,INVALC,0x297B,0x297C,0x297D,0x297E, - /* Range 0x215B - 0x2169, array index: 0x05BF */ - 0x287B,0x287C,0x287D,0x287E,INVALC,0x2530,0x2531,0x2532, - 0x2533,0x2534,0x2535,0x2536,0x2537,0x2538,0x2539, - /* Range 0x2170 - 0x2179, array index: 0x05CE */ - 0x2521,0x2522,0x2523,0x2524,0x2525,0x2526,0x2527,0x2528, - 0x2529,0x252A, - /* Range 0x2190 - 0x2199, array index: 0x05D8 */ - 0x2167,0x2168,0x2166,0x2169,0x216A,0x2255,0x2258,0x2256, - 0x2259,0x2257, - /* Range 0x2225 - 0x222E, array index: 0x05E2 */ - 0x212B,INVALC,0x217C,0x217D,0x217B,0x217A,0x2172,0x2173, - INVALC,0x2231, - /* Range 0x2460 - 0x246E, array index: 0x05EC */ - 0x2867,0x2868,0x2869,0x286A,0x286B,0x286C,0x286D,0x286E, - 0x286F,0x2870,0x2871,0x2872,0x2873,0x2874,0x2875, - /* Range 0x2474 - 0x2482, array index: 0x05FB */ - 0x2967,0x2968,0x2969,0x296A,0x296B,0x296C,0x296D,0x296E, - 0x296F,0x2970,0x2971,0x2972,0x2973,0x2974,0x2975, - /* Range 0x249C - 0x24B5, array index: 0x060A */ - 0x294D,0x294E,0x294F,0x2950,0x2951,0x2952,0x2953,0x2954, - 0x2955,0x2956,0x2957,0x2958,0x2959,0x295A,0x295B,0x295C, - 0x295D,0x295E,0x295F,0x2960,0x2961,0x2962,0x2963,0x2964, - 0x2965,0x2966, - /* Range 0x24D0 - 0x24E9, array index: 0x0624 */ - 0x284D,0x284E,0x284F,0x2850,0x2851,0x2852,0x2853,0x2854, - 0x2855,0x2856,0x2857,0x2858,0x2859,0x285A,0x285B,0x285C, - 0x285D,0x285E,0x285F,0x2860,0x2861,0x2862,0x2863,0x2864, - 0x2865,0x2866, - /* Range 0x2500 - 0x2503, array index: 0x063E */ - 0x2621,0x262C,0x2622,0x262D, - /* Range 0x250C - 0x254B, array index: 0x0642 */ - 0x2623,0x2648,0x2647,0x262E,0x2624,0x2642,0x2641,0x262F, - 0x2626,0x2646,0x2645,0x2631,0x2625,0x2644,0x2643,0x2630, - 0x2627,0x263C,0x2649,0x264A,0x2637,0x264B,0x264C,0x2632, - 0x2629,0x263E,0x264D,0x264E,0x2639,0x264F,0x2650,0x2634, - 0x2628,0x2651,0x2652,0x2638,0x263D,0x2653,0x2654,0x2633, - 0x262A,0x2655,0x2656,0x263A,0x263F,0x2657,0x2658,0x2635, - 0x262B,0x2659,0x265A,0x263B,0x265B,0x265C,0x2640,0x265D, - 0x265E,0x265F,0x2660,0x2661,0x2662,0x2663,0x2664,0x2636, - /* Range 0x25A0 - 0x25A9, array index: 0x0682 */ - 0x2161,0x2160,INVALC,0x2243,0x2247,0x2248,0x224B,0x224A, - 0x2249,0x224C, - /* Range 0x25C6 - 0x25C8, array index: 0x068C */ - 0x215F,0x215E,0x2242, - /* Range 0x25CE - 0x25D1, array index: 0x068F */ - 0x215D,0x215C,0x2244,0x2245, - /* Range 0x2660 - 0x266D, array index: 0x0693 */ - 0x223C,0x223D,INVALC,0x2240,0x223B,0x223E,INVALC,0x223F, - 0x224D,0x225B,0x225C,INVALC,0x225D,0x225A, - /* Range 0x3000 - 0x3003, array index: 0x06A1 */ - 0x2121,0x2122,0x2123,0x2128, - /* Range 0x3008 - 0x3015, array index: 0x06A5 */ - 0x2134,0x2135,0x2136,0x2137,0x2138,0x2139,0x213A,0x213B, - 0x213C,0x213D,INVALC,0x216B,0x2132,0x2133, - /* Range 0x3041 - 0x3093, array index: 0x06B3 */ - 0x2A21,0x2A22,0x2A23,0x2A24,0x2A25,0x2A26,0x2A27,0x2A28, - 0x2A29,0x2A2A,0x2A2B,0x2A2C,0x2A2D,0x2A2E,0x2A2F,0x2A30, - 0x2A31,0x2A32,0x2A33,0x2A34,0x2A35,0x2A36,0x2A37,0x2A38, - 0x2A39,0x2A3A,0x2A3B,0x2A3C,0x2A3D,0x2A3E,0x2A3F,0x2A40, - 0x2A41,0x2A42,0x2A43,0x2A44,0x2A45,0x2A46,0x2A47,0x2A48, - 0x2A49,0x2A4A,0x2A4B,0x2A4C,0x2A4D,0x2A4E,0x2A4F,0x2A50, - 0x2A51,0x2A52,0x2A53,0x2A54,0x2A55,0x2A56,0x2A57,0x2A58, - 0x2A59,0x2A5A,0x2A5B,0x2A5C,0x2A5D,0x2A5E,0x2A5F,0x2A60, - 0x2A61,0x2A62,0x2A63,0x2A64,0x2A65,0x2A66,0x2A67,0x2A68, - 0x2A69,0x2A6A,0x2A6B,0x2A6C,0x2A6D,0x2A6E,0x2A6F,0x2A70, - 0x2A71,0x2A72,0x2A73, - /* Range 0x30A1 - 0x30F6, array index: 0x0706 */ - 0x2B21,0x2B22,0x2B23,0x2B24,0x2B25,0x2B26,0x2B27,0x2B28, - 0x2B29,0x2B2A,0x2B2B,0x2B2C,0x2B2D,0x2B2E,0x2B2F,0x2B30, - 0x2B31,0x2B32,0x2B33,0x2B34,0x2B35,0x2B36,0x2B37,0x2B38, - 0x2B39,0x2B3A,0x2B3B,0x2B3C,0x2B3D,0x2B3E,0x2B3F,0x2B40, - 0x2B41,0x2B42,0x2B43,0x2B44,0x2B45,0x2B46,0x2B47,0x2B48, - 0x2B49,0x2B4A,0x2B4B,0x2B4C,0x2B4D,0x2B4E,0x2B4F,0x2B50, - 0x2B51,0x2B52,0x2B53,0x2B54,0x2B55,0x2B56,0x2B57,0x2B58, - 0x2B59,0x2B5A,0x2B5B,0x2B5C,0x2B5D,0x2B5E,0x2B5F,0x2B60, - 0x2B61,0x2B62,0x2B63,0x2B64,0x2B65,0x2B66,0x2B67,0x2B68, - 0x2B69,0x2B6A,0x2B6B,0x2B6C,0x2B6D,0x2B6E,0x2B6F,0x2B70, - 0x2B71,0x2B72,0x2B73,0x2B74,0x2B75,0x2B76, - /* Range 0x3131 - 0x318E, array index: 0x075C */ - 0x2421,0x2422,0x2423,0x2424,0x2425,0x2426,0x2427,0x2428, - 0x2429,0x242A,0x242B,0x242C,0x242D,0x242E,0x242F,0x2430, - 0x2431,0x2432,0x2433,0x2434,0x2435,0x2436,0x2437,0x2438, - 0x2439,0x243A,0x243B,0x243C,0x243D,0x243E,0x243F,0x2440, - 0x2441,0x2442,0x2443,0x2444,0x2445,0x2446,0x2447,0x2448, - 0x2449,0x244A,0x244B,0x244C,0x244D,0x244E,0x244F,0x2450, - 0x2451,0x2452,0x2453,0x2454,0x2455,0x2456,0x2457,0x2458, - 0x2459,0x245A,0x245B,0x245C,0x245D,0x245E,0x245F,0x2460, - 0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468, - 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470, - 0x2471,0x2472,0x2473,0x2474,0x2475,0x2476,0x2477,0x2478, - 0x2479,0x247A,0x247B,0x247C,0x247D,0x247E, - /* Range 0x3200 - 0x321C, array index: 0x07BA */ - 0x2931,0x2932,0x2933,0x2934,0x2935,0x2936,0x2937,0x2938, - 0x2939,0x293A,0x293B,0x293C,0x293D,0x293E,0x293F,0x2940, - 0x2941,0x2942,0x2943,0x2944,0x2945,0x2946,0x2947,0x2948, - 0x2949,0x294A,0x294B,0x294C,0x225F, - /* Range 0x3260 - 0x327B, array index: 0x07D7 */ - 0x2831,0x2832,0x2833,0x2834,0x2835,0x2836,0x2837,0x2838, - 0x2839,0x283A,0x283B,0x283C,0x283D,0x283E,0x283F,0x2840, - 0x2841,0x2842,0x2843,0x2844,0x2845,0x2846,0x2847,0x2848, - 0x2849,0x284A,0x284B,0x284C, - /* Range 0x3380 - 0x33CA, array index: 0x07F3 */ - 0x2749,0x274A,0x274B,0x274C,0x274D,INVALC,INVALC,INVALC, - 0x273A,0x273B,0x275C,0x275D,0x275E,0x2736,0x2737,0x2738, - 0x2754,0x2755,0x2756,0x2757,0x2758,0x2721,0x2722,0x2723, - 0x2725,0x272B,0x272C,0x272D,0x272E,0x272F,0x2730,0x2731, - 0x2732,0x2733,0x2734,0x2727,0x2728,0x2729,0x272A,0x273D, - 0x273E,0x2765,0x2766,0x2767,0x2768,0x2761,0x2762,0x2763, - 0x273F,0x2740,0x2741,0x2742,0x2743,0x2744,0x2745,0x2746, - 0x2747,0x2748,0x274E,0x274F,0x2750,0x2751,0x2752,0x2753, - 0x275A,0x275B,0x2263,0x276C,0x2726,0x2760,0x276F,0x2261, - 0x273C,0x276D,0x2735, - /* Range 0x33DB - 0x33DD, array index: 0x083E */ - 0x2764,0x276E,0x2769, - /* Range 0x4E07 - 0x4E0D, array index: 0x0841 */ - 0x5832,0x6D5B,0x5F32,0x5F3E,0x793B,INVALC,0x5C74, - /* Range 0x4E14 - 0x4E19, array index: 0x0848 */ - 0x7326,0x5D60,0x6126,INVALC,0x4E78,0x5C30, - /* Range 0x4E4B - 0x4E4F, array index: 0x084E */ - 0x717D,INVALC,0x5E3F,0x7B3A,0x7939, - /* Range 0x4E5D - 0x4E5F, array index: 0x0853 */ - 0x4E7A,0x4B77,0x6525, - /* Range 0x4E8E - 0x4E95, array index: 0x0856 */ - 0x694D,INVALC,0x6A27,0x6976,0x7B3B,INVALC,0x6769,0x6F4C, - /* Range 0x4EA1 - 0x4EAE, array index: 0x085E */ - 0x584C,0x7971,INVALC,0x4E5F,0x7A24,0x6632,INVALC,0x7A7B, - INVALC,INVALC,0x7A3D,0x4C48,0x6F4D,0x5555, - /* Range 0x4ED4 - 0x4ED9, array index: 0x086C */ - 0x6D28,0x5E42,0x7662,0x6D5C,0x5C75,0x6039, - /* Range 0x4EE3 - 0x4EE5, array index: 0x0872 */ - 0x535B,0x5635,0x6C24, - /* Range 0x4F09 - 0x4F11, array index: 0x0875 */ - 0x7972,0x6C25,0x505F,INVALC,0x676A,0x506B,0x5C51,0x5B69, - 0x7D4C, - /* Range 0x4F46 - 0x4F48, array index: 0x087E */ - 0x5323,0x6E37,0x784F, - /* Range 0x4F4D - 0x4F51, array index: 0x0881 */ - 0x6A48,0x6E38,0x712C,0x7125,0x694E, - /* Range 0x4F59 - 0x4F5C, array index: 0x0886 */ - 0x6579,0x6C6A,0x5D56,0x6D42, - /* Range 0x4FC2 - 0x4FC4, array index: 0x088A */ - 0x4C75,0x7535,0x642D, - /* Range 0x4FDD - 0x4FE1, array index: 0x088D */ - 0x5C41,INVALC,0x5E46,0x7A6F,0x6361, - /* Range 0x5023 - 0x502D, array index: 0x0892 */ - 0x5B27,0x7637,INVALC,0x4F66,0x7072,0x4B5A,INVALC,0x6752, - 0x5743,0x7670,0x685E, - /* Range 0x5047 - 0x5049, array index: 0x089D */ - 0x4A23,0x4C27,0x6A49, - /* Range 0x5074 - 0x5078, array index: 0x08A0 */ - 0x7630,0x6F4F,0x694F,INVALC,0x775E, - /* Range 0x50FF - 0x5101, array index: 0x08A5 */ - 0x5E47,0x6B70,0x7156, - /* Range 0x5140 - 0x514E, array index: 0x08A8 */ - 0x6834,0x6B43,INVALC,0x6A2A,0x7A7C,0x7576,0x703C,0x7D54, - 0x603B,0x4E43,INVALC,0x503A,0x773A,0x5873,0x774D, - /* Range 0x5165 - 0x516E, array index: 0x08B7 */ - 0x6C7D,INVALC,0x522E,0x6E6F,0x5557,0x6A64,0x7822,0x4D6B, - 0x573F,0x7B31, - /* Range 0x5175 - 0x5178, array index: 0x08C1 */ - 0x5C32,0x506C,0x4E7D,0x6E70, - /* Range 0x51C9 - 0x51CD, array index: 0x08C5 */ - 0x5558,INVALC,0x703D,0x5750,0x5450, - /* Range 0x51DC - 0x51DE, array index: 0x08CA */ - 0x574F,0x6B6A,0x7D6B, - /* Range 0x51F6 - 0x51FA, array index: 0x08CD */ - 0x7D55,INVALC,0x7448,0x686A,0x7573, - /* Range 0x5206 - 0x520A, array index: 0x08D2 */ - 0x5D42,0x6F37,0x6754,INVALC,0x4A4A, - /* Range 0x5236 - 0x523B, array index: 0x08D7 */ - 0x7024,0x616C,0x4F67,0x734B,0x6D29,0x4A3E, - /* Range 0x524A - 0x524D, array index: 0x08DD */ - 0x5E7B,0x503B,0x5537,0x6E71, - /* Range 0x5287 - 0x5289, array index: 0x08E1 */ - 0x503C,0x5B79,0x5731, - /* Range 0x52A9 - 0x52AB, array index: 0x08E4 */ - 0x703E,0x523D,0x4C24, - /* Range 0x52D5 - 0x52E4, array index: 0x08E7 */ - 0x5451,0x696D,INVALC,0x4A6B,0x5962,INVALC,0x7D32,INVALC, - 0x632D,0x564C,0x5934,INVALC,INVALC,0x6127,0x6E53,0x5043, - /* Range 0x5315 - 0x5319, array index: 0x08F7 */ - 0x5D62,0x7B79,0x5D41,INVALC,0x6335, - /* Range 0x533F - 0x534A, array index: 0x08FC */ - 0x527B,0x4F21,0x6428,INVALC,0x7436,0x6C7E,INVALC,INVALC, - 0x632E,0x676D,0x7D41,0x5A62, - /* Range 0x5351 - 0x5354, array index: 0x0908 */ - 0x5D64,0x706F,0x7671,0x7A70, - /* Range 0x536F - 0x5377, array index: 0x090C */ - 0x5956,0x6C54,0x6A4B,INVALC,INVALC,0x4A3F,0x5530,INVALC, - 0x4F69, - /* Range 0x53C8 - 0x53CD, array index: 0x0915 */ - 0x6951,0x7329,0x5060,0x6952,INVALC,0x5A63, - /* Range 0x53E1 - 0x53F3, array index: 0x091B */ - 0x6755,0x753F,0x4F22,0x4D2F,0x4F23,INVALC,INVALC,INVALC, - 0x4D30,0x717E,0x5023,0x612F,0x7823,INVALC,0x4A26,0x773B, - 0x726A,0x5E48,0x6953, - /* Range 0x5408 - 0x5411, array index: 0x092E */ - 0x796A,0x514E,0x6E54,INVALC,0x5452,0x5923,0x7D28,0x5759, - 0x774E,0x7A3E, - /* Range 0x5438 - 0x543E, array index: 0x0938 */ - 0x7D65,0x7623,INVALC,0x597C,0x7D29,INVALC,0x676E, - /* Range 0x547B - 0x547D, array index: 0x093F */ - 0x6362,0x7B3C,0x5924, - /* Range 0x5586 - 0x558A, array index: 0x0942 */ - 0x744A,0x547A,INVALC,0x7D2A,0x7962, - /* Range 0x5598 - 0x559D, array index: 0x0947 */ - 0x7437,0x7D42,0x7C30,INVALC,0x7D6C,0x4A62, - /* Range 0x55A7 - 0x55AE, array index: 0x094D */ - 0x7D3D,INVALC,0x6A67,0x5F43,0x5152,0x4E62,INVALC,0x5324, - /* Range 0x574D - 0x5751, array index: 0x0955 */ - 0x533B,0x4A6C,INVALC,0x7126,0x4B55, - /* Range 0x5805 - 0x580A, array index: 0x095A */ - 0x4C31,0x7758,INVALC,0x4B28,0x6B3C,0x643E, - /* Range 0x582F - 0x5835, array index: 0x0960 */ - 0x686B,0x6568,0x5C43,INVALC,INVALC,0x6D5E,0x5372, - /* Range 0x58F9 - 0x58FD, array index: 0x0967 */ - 0x6C6C,0x7B3E,0x5F6B,INVALC,0x6178, - /* Range 0x5914 - 0x591C, array index: 0x096C */ - 0x5073,0x602A,0x6862,INVALC,INVALC,0x6254,0x527D,INVALC, - 0x6528, - /* Range 0x5927 - 0x592E, array index: 0x0975 */ - 0x535E,INVALC,0x7438,0x773C,0x5C7D,INVALC,0x686C,0x6467, - /* Range 0x5947 - 0x5949, array index: 0x097D */ - 0x5074,0x522F,0x5C65, - /* Range 0x594E - 0x5957, array index: 0x0980 */ - 0x5025,0x7134,0x7C31,0x4C78,INVALC,INVALC,0x5D46,0x7A51, - INVALC,0x775F, - /* Range 0x596A - 0x596E, array index: 0x098A */ - 0x772C,0x6B44,0x6D61,0x602B,0x5D47, - /* Range 0x5982 - 0x5984, array index: 0x098F */ - 0x657D,0x5D65,0x584D, - /* Range 0x59D0 - 0x59D4, array index: 0x0992 */ - 0x6E3B,0x4D34,INVALC,0x6073,0x6A4D, - /* Range 0x59D9 - 0x59DD, array index: 0x0997 */ - 0x6C75,0x686E,INVALC,0x4B29,0x712F, - /* Range 0x5B54 - 0x5B5F, array index: 0x099C */ - 0x4D6E,0x6D26,INVALC,0x6D2E,0x706D,INVALC,0x5D21,INVALC, - 0x6D2F,0x7C78,INVALC,0x586B, - /* Range 0x5B85 - 0x5B8C, array index: 0x09A8 */ - 0x536B,INVALC,0x6954,0x617A,0x644C,INVALC,0x6164,0x6847, - /* Range 0x5B93 - 0x5B9C, array index: 0x09B0 */ - 0x5C55,INVALC,0x7735,0x7C73,0x7073,0x4E2F,0x7135,0x6F52, - 0x6848,0x6B71, - /* Range 0x5BA2 - 0x5BA6, array index: 0x09BA */ - 0x4B54,0x603E,0x6378,0x6A69,0x7C32, - /* Range 0x5BB3 - 0x5BB9, array index: 0x09BF */ - 0x7A2A,0x6643,0x6132,0x4A2B,INVALC,0x6364,0x693B, - /* Range 0x5BBF - 0x5BC7, array index: 0x09C6 */ - 0x6256,0x7372,INVALC,0x6E56,0x6A32,0x5076,0x6C59,0x5A4B, - 0x4F28, - /* Range 0x5BD0 - 0x5BD4, array index: 0x09CF */ - 0x585B,INVALC,0x794E,0x6955,0x6351, - /* Range 0x5BDE - 0x5BEF, array index: 0x09D4 */ - 0x582C,0x734C,INVALC,0x4D7B,0x7656,INVALC,0x6775,0x686F, - 0x6379,0x523B,0x7373,0x637B,INVALC,0x5E50,0x4E30,INVALC, - 0x5677,0x7159, - /* Range 0x5C07 - 0x5C11, array index: 0x09E6 */ - 0x6D62,0x6E76,0x6A4F,0x706E,0x637C,INVALC,0x535F,0x5374, - 0x6133,INVALC,0x6134, - /* Range 0x5C38 - 0x5C40, array index: 0x09F1 */ - 0x6339,0x6B45,0x7429,0x4D36,0x5279,INVALC,0x5A2D,0x5263, - 0x4F51, - /* Range 0x5DE1 - 0x5DE8, array index: 0x09FA */ - 0x625E,0x6135,INVALC,INVALC,0x4D6F,0x7127,0x4E65,0x4B5D, - /* Range 0x5DF1 - 0x5DF4, array index: 0x0A02 */ - 0x5079,0x6C2B,0x5E53,0x7769, - /* Range 0x5E5F - 0x5E63, array index: 0x0A06 */ - 0x763A,INVALC,0x5B5F,0x5353,0x7847, - /* Range 0x5E72 - 0x5E7E, array index: 0x0A0B */ - 0x4A4E,0x7841,0x5234,INVALC,INVALC,0x5C34,0x7A39,0x4A4F, - INVALC,0x7C33,0x6A6A,0x6A6B,0x507A, - /* Range 0x5EB5 - 0x5EB8, array index: 0x0A18 */ - 0x645D,0x5F6E,0x4B2C,0x693C, - /* Range 0x5EC8 - 0x5ECA, array index: 0x0A1C */ - 0x793F,0x562F,0x5546, - /* Range 0x5EDF - 0x5EE3, array index: 0x0A1F */ - 0x5959,0x735F,INVALC,0x7848,0x4E46, - /* Range 0x5F11 - 0x5F18, array index: 0x0A24 */ - 0x633D,INVALC,0x4F61,0x7040,0x6C5A,INVALC,0x5D57,0x7B70, - /* Range 0x5F66 - 0x5F71, array index: 0x0A2C */ - 0x6569,0x696E,INVALC,0x7374,0x7873,0x7041,0x5E2F,0x7830, - INVALC,INVALC,0x7360,0x672F, - /* Range 0x5F7F - 0x5F81, array index: 0x0A38 */ - 0x5D58,0x6859,0x6F56, - /* Range 0x5F8A - 0x5F92, array index: 0x0A3B */ - 0x7C60,0x5748,0x7D2D,INVALC,INVALC,INVALC,0x5F6F,0x4C53, - 0x5379, - /* Range 0x5F97 - 0x5F99, array index: 0x0A44 */ - 0x5470,0x5B47,0x5E55, - /* Range 0x5FA8 - 0x5FAA, array index: 0x0A47 */ - 0x7C47,0x5C56,0x6260, - /* Range 0x5FD6 - 0x5FD9, array index: 0x0A4A */ - 0x753C,0x7224,0x584E,0x584F, - /* Range 0x6041 - 0x6043, array index: 0x0A4E */ - 0x6C76,0x6261,0x633E, - /* Range 0x6062 - 0x6070, array index: 0x0A51 */ - 0x7C61,0x6D30,0x7D51,0x763B,INVALC,INVALC,0x794F,0x6B5A, - 0x4A41,INVALC,0x5238,0x4D71,INVALC,0x6353,0x7D66, - /* Range 0x60B0 - 0x60B8, array index: 0x0A60 */ - 0x7075,INVALC,0x5D68,0x536D,0x757C,INVALC,0x5A3F,INVALC, - 0x4C7B, - /* Range 0x60DF - 0x60E1, array index: 0x0A69 */ - 0x6A6E,0x7B33,0x6442, - /* Range 0x60F9 - 0x60FB, array index: 0x0A6C */ - 0x6529,0x6076,0x7633, - /* Range 0x610D - 0x610F, array index: 0x0A6F */ - 0x5A40,0x7834,0x6B72, - /* Range 0x6147 - 0x614C, array index: 0x0A72 */ - 0x6B5B,0x6D31,INVALC,0x4C43,0x773E,0x7C4B, - /* Range 0x6162 - 0x6168, array index: 0x0A78 */ - 0x5837,0x4E31,0x4A42,INVALC,INVALC,0x7B34,0x4B46, - /* Range 0x6198 - 0x619A, array index: 0x0A7F */ - 0x7D73,0x7D72,0x7726, - /* Range 0x61C7 - 0x61CB, array index: 0x0A82 */ - 0x4A50,0x7A2B,0x6B6B,0x6778,0x5965, - /* Range 0x61F6 - 0x6200, array index: 0x0A87 */ - 0x547B,0x7C63,0x7A58,INVALC,0x7355,INVALC,0x4F2B,INVALC, - INVALC,0x6B73,0x557C, - /* Range 0x620A - 0x6212, array index: 0x0A92 */ - 0x5966,INVALC,0x6279,0x6221,0x6B54,INVALC,0x6077,0x6432, - 0x4C7C, - /* Range 0x623E - 0x6241, array index: 0x0A9B */ - 0x5568,0x5B2E,0x6136,0x7837, - /* Range 0x6247 - 0x624D, array index: 0x0A9F */ - 0x603F,0x7B43,0x5D6A,INVALC,0x6222,INVALC,0x6E26, - /* Range 0x62C7 - 0x62DC, array index: 0x0AA6 */ - 0x5967,0x5239,0x5543,INVALC,INVALC,0x5A65,0x5A50,INVALC, - 0x5159,0x4E58,INVALC,0x4B5E,0x742C,0x5A7B,INVALC,0x7669, - 0x6873,0x4F2C,0x7070,INVALC,0x747D,0x5B48, - /* Range 0x62EC - 0x62F3, array index: 0x0ABC */ - 0x4E40,0x6354,0x514F,0x7175,INVALC,0x4D72,INVALC,0x4F6B, - /* Range 0x633A - 0x633E, array index: 0x0AC4 */ - 0x6F58,0x6649,INVALC,0x5838,0x7A73, - /* Range 0x63A0 - 0x63A2, array index: 0x0AC9 */ - 0x5553,0x7375,0x772E, - /* Range 0x63A5 - 0x63AA, array index: 0x0ACC */ - 0x6F48,INVALC,0x4D73,0x754F,0x6573,0x7042, - /* Range 0x6478 - 0x647A, array index: 0x0AD2 */ - 0x5938,0x5939,0x6F49, - /* Range 0x6491 - 0x6493, array index: 0x0AD5 */ - 0x774B,0x5F2E,0x6875, - /* Range 0x64E1 - 0x64E7, array index: 0x0AD8 */ - 0x5364,0x7677,INVALC,INVALC,0x553A,0x734D,0x4B61, - /* Range 0x652A - 0x652C, array index: 0x0ADF */ - 0x4E66,0x7C2B,0x553B, - /* Range 0x6536 - 0x653F, array index: 0x0AE2 */ - 0x6225,0x4D39,0x6A72,0x4B47,INVALC,0x4D74,INVALC,INVALC, - 0x5B2F,0x6F59, - /* Range 0x654D - 0x6551, array index: 0x0AEC */ - 0x5F73,0x4E67,0x5A42,INVALC,0x4F2D, - /* Range 0x6574 - 0x6578, array index: 0x0AF1 */ - 0x6F5A,0x6E58,INVALC,0x5D27,0x6226, - /* Range 0x65E5 - 0x65ED, array index: 0x0AF6 */ - 0x6C6D,0x5329,INVALC,0x7229,0x7044,INVALC,INVALC,0x6262, - 0x696F, - /* Range 0x65FA - 0x65FF, array index: 0x0AFF */ - 0x685A,0x5A43,0x5A44,0x5445,INVALC,0x677A, - /* Range 0x6606 - 0x6615, array index: 0x0B05 */ - 0x4D60,0x6330,INVALC,0x5B32,0x7B44,INVALC,0x7363,INVALC, - 0x5925,0x7B67,0x5D4B,0x5054,INVALC,0x6636,0x602E,0x7D5A, - /* Range 0x661E - 0x6620, array index: 0x0B15 */ - 0x5C35,0x6078,0x6731, - /* Range 0x662D - 0x6631, array index: 0x0B18 */ - 0x6139,INVALC,0x6340,0x7940,0x6970, - /* Range 0x6641 - 0x6644, array index: 0x0B1D */ - 0x7045,0x6341,0x7C4C,0x7C4D, - /* Range 0x665B - 0x665F, array index: 0x0B21 */ - 0x7A59,INVALC,0x7138,0x7D75,0x6079, - /* Range 0x6664 - 0x666F, array index: 0x0B26 */ - 0x677B,0x7C37,0x7C64,0x7B45,0x6367,0x5839,INVALC,0x7678, - INVALC,INVALC,0x5C45,0x4C58, - /* Range 0x6673 - 0x667A, array index: 0x0B32 */ - 0x602F,0x7467,INVALC,0x6F5C,0x4F7C,0x6F5D,INVALC,0x722A, - /* Range 0x6687 - 0x6689, array index: 0x0B3A */ - 0x4A2C,0x7D3B,0x7D47, - /* Range 0x6696 - 0x6698, array index: 0x0B3D */ - 0x516C,0x645E,0x6543, - /* Range 0x66B2 - 0x66B4, array index: 0x0B40 */ - 0x6D67,0x7B35,0x786C, - /* Range 0x66F0 - 0x6700, array index: 0x0B43 */ - 0x6858,INVALC,0x4D58,0x6756,0x4C5A,INVALC,INVALC,0x4A63, - 0x5F76,0x7047,0x7046,INVALC,0x583A,INVALC,0x7174,0x7470, - 0x754C, - /* Range 0x671B - 0x671F, array index: 0x0B54 */ - 0x5850,INVALC,0x7048,0x5121,0x5122, - /* Range 0x6726 - 0x672E, array index: 0x0B59 */ - 0x5954,0x5668,0x594A,INVALC,0x5A31,0x5847,0x5C62,0x734E, - 0x7574, - /* Range 0x674E - 0x6753, array index: 0x0B62 */ - 0x575D,0x7A3A,0x6E27,0x753D,INVALC,0x7875, - /* Range 0x676D - 0x6777, array index: 0x0B68 */ - 0x7978,INVALC,0x5B4A,0x4B79,0x5454,INVALC,0x595C,INVALC, - 0x6E3E,INVALC,0x776D, - /* Range 0x67B6 - 0x67B8, array index: 0x0B73 */ - 0x4A2D,0x4A2E,0x4F2E, - /* Range 0x67CF - 0x67D4, array index: 0x0B76 */ - 0x5B5A,0x593B,0x4A73,0x7653,0x6678,0x6A75, - /* Range 0x67EF - 0x67F6, array index: 0x0B7C */ - 0x4A2F,0x5230,0x713A,INVALC,0x5733,0x6343,0x737D,0x5E5A, - /* Range 0x683C - 0x6843, array index: 0x0B84 */ - 0x4C2B,0x6E28,INVALC,INVALC,0x4B7A,0x7979,0x4C7D,0x537E, - /* Range 0x6850 - 0x6854, array index: 0x0B8C */ - 0x5455,0x5F4D,INVALC,0x7C38,0x5150, - /* Range 0x68AD - 0x68B6, array index: 0x0B91 */ - 0x5E5C,INVALC,0x702C,0x4C7E,0x4D61,INVALC,0x613A,INVALC, - 0x5B6F,0x5A32, - /* Range 0x6953 - 0x695A, array index: 0x0B9B */ - 0x7923,0x605B,0x766B,INVALC,0x4B71,INVALC,0x596A,0x7522, - /* Range 0x695E - 0x6963, array index: 0x0BA3 */ - 0x5751,INVALC,0x5178,0x6A78,0x6A79,0x5A33, - /* Range 0x696B - 0x696F, array index: 0x0BA9 */ - 0x716F,INVALC,0x6576,0x6E3F,0x6264, - /* Range 0x6975 - 0x6979, array index: 0x0BAE */ - 0x503F,INVALC,0x7A2C,0x7551,0x6733, - /* Range 0x69CB - 0x69CD, array index: 0x0BB3 */ - 0x4F30,0x7759,0x7366, - /* Range 0x6A38 - 0x6A3A, array index: 0x0BB6 */ - 0x5A54,0x6227,0x7B7C, - /* Range 0x6B5F - 0x6B66, array index: 0x0BB9 */ - 0x6622,INVALC,0x7C36,0x722D,0x6F61,0x732E,0x5C46,0x596B, - /* Range 0x6BD2 - 0x6BD8, array index: 0x0BC1 */ - 0x5438,0x6B3E,0x5D6F,INVALC,0x5D70,0x5D71,0x5D72, - /* Range 0x6C3E - 0x6C42, array index: 0x0BC8 */ - 0x5B70,INVALC,0x6F62,0x7170,0x4F34, - /* Range 0x6C5D - 0x6C60, array index: 0x0BCD */ - 0x6623,0x7B71,0x4B30,0x722E, - /* Range 0x6C7D - 0x6C88, array index: 0x0BD1 */ - 0x5129,0x5D4C,INVALC,INVALC,0x637E,0x512A,0x682A,INVALC, - 0x6A36,0x797A,0x664C,0x7658, - /* Range 0x6C90 - 0x6C9B, array index: 0x0BDD */ - 0x594B,INVALC,0x5952,0x534B,0x5877,0x5A29,0x7578,INVALC, - INVALC,0x5E5E,0x722F,0x7829, - /* Range 0x6CB8 - 0x6CC4, array index: 0x0BE9 */ - 0x5D73,0x6A7A,INVALC,0x763D,0x613B,0x4D3F,0x7454,0x664D, - INVALC,0x7C4F,0x7B22,INVALC,0x605C, - /* Range 0x6CE1 - 0x6CE5, array index: 0x0BF6 */ - 0x785C,0x776E,0x6B68,INVALC,0x527A, - /* Range 0x6CEE - 0x6CF0, array index: 0x0BFB */ - 0x5A6A,0x5A46,0x7741, - /* Range 0x6D35 - 0x6D3E, array index: 0x0BFE */ - 0x6267,0x7D57,INVALC,0x4E48,0x6A37,INVALC,0x7C40,INVALC, - 0x7D67,0x776F, - /* Range 0x6D77 - 0x6D79, array index: 0x0C08 */ - 0x7A2D,0x7659,0x7A74, - /* Range 0x6D85 - 0x6D8E, array index: 0x0C0B */ - 0x666E,INVALC,0x4C5C,0x613C,0x606F,INVALC,INVALC,0x693F, - 0x7C7D,0x664E, - /* Range 0x6DC3 - 0x6DC7, array index: 0x0C15 */ - 0x4F6E,0x763E,0x6032,0x7C7E,0x512B, - /* Range 0x6DD8 - 0x6DDA, array index: 0x0C1A */ - 0x5423,0x7078,0x5728, - /* Range 0x6DF5 - 0x6DFB, array index: 0x0C1D */ - 0x6650,INVALC,0x7B68,0x7468,0x6574,0x743C,0x7455, - /* Range 0x6E17 - 0x6E26, array index: 0x0C24 */ - 0x5F36,INVALC,0x7C39,0x6E42,0x4A75,INVALC,INVALC,INVALC, - 0x6F65,0x4B62,0x5424,INVALC,0x5E60,0x5A7D,0x6446,0x683E, - /* Range 0x6E2B - 0x6E2F, array index: 0x0C34 */ - 0x605E,0x7634,0x6A52,INVALC,0x797B, - /* Range 0x6E3A - 0x6E3E, array index: 0x0C39 */ - 0x595D,INVALC,0x5A34,0x6E2A,0x7B69, - /* Range 0x6E5B - 0x6E5F, array index: 0x0C3E */ - 0x5340,0x6357,INVALC,0x6F66,0x7C50, - /* Range 0x6EFE - 0x6F02, array index: 0x0C43 */ - 0x4D63,0x583B,INVALC,0x655B,0x7877, - /* Range 0x6F57 - 0x6F5F, array index: 0x0C48 */ - 0x727C,0x5A6B,INVALC,0x6258,0x6D56,INVALC,INVALC,0x5651, - 0x6033, - /* Range 0x6F7A - 0x6F7E, array index: 0x0C51 */ - 0x6D52,INVALC,0x5458,0x5C49,0x5771, - /* Range 0x6FBE - 0x6FC3, array index: 0x0C56 */ - 0x5336,INVALC,0x4C2D,0x767A,0x5632,0x5258, - /* Range 0x6FDF - 0x6FE1, array index: 0x0C5C */ - 0x702D,0x7B4C,0x6B21, - /* Range 0x7018 - 0x701F, array index: 0x0C5F */ - 0x5652,INVALC,0x7955,0x673A,0x6B55,0x5577,0x6F67,0x613E, - /* Range 0x7098 - 0x709A, array index: 0x0C67 */ - 0x7D5C,0x6D33,0x4E49, - /* Range 0x70AB - 0x70AF, array index: 0x0C6A */ - 0x7A5B,0x4B63,0x7729,INVALC,0x7B26, - /* Range 0x70B7 - 0x70B9, array index: 0x0C6F */ - 0x7140,0x6D48,0x6F43, - /* Range 0x7164 - 0x7169, array index: 0x0C72 */ - 0x5860,0x7C3A,0x7D2F,0x704E,INVALC,0x5B61, - /* Range 0x71E5 - 0x71E7, array index: 0x0C78 */ - 0x704F,0x733E,0x622C, - /* Range 0x71FB - 0x7200, array index: 0x0C7B */ - 0x7D38,0x6368,INVALC,0x5427,0x687C,0x7A52, - /* Range 0x723A - 0x7240, array index: 0x0C81 */ - 0x652C,0x7D21,INVALC,0x5F50,0x6C33,INVALC,0x5F51, - /* Range 0x7246 - 0x7248, array index: 0x0C88 */ - 0x6D6D,0x7838,0x777A, - /* Range 0x731B - 0x731D, array index: 0x0C8B */ - 0x586D,0x6344,0x7071, - /* Range 0x7329 - 0x732B, array index: 0x0C8E */ - 0x607A,0x6E44,0x595E, - /* Range 0x7394 - 0x7398, array index: 0x0C91 */ - 0x743D,INVALC,0x4F38,0x695B,0x512C, - /* Range 0x73C9 - 0x73CF, array index: 0x0C96 */ - 0x5A48,0x5F26,INVALC,0x7933,0x7252,INVALC,0x4A44, - /* Range 0x73E3 - 0x73EA, array index: 0x0C9D */ - 0x6269,0x5C4A,0x6C34,0x7A40,INVALC,INVALC,0x7B28,0x5028, - /* Range 0x7403 - 0x7409, array index: 0x0CA5 */ - 0x4F39,INVALC,0x554A,0x5762,0x622F,INVALC,0x5738, - /* Range 0x7420 - 0x743A, array index: 0x0CAC */ - 0x6F22,0x625A,0x767C,INVALC,INVALC,0x7B50,0x512D,INVALC, - 0x4D64,INVALC,0x512E,0x5C6D,0x684E,INVALC,0x7079,0x4E35, - 0x667C,INVALC,INVALC,0x577B,0x5056,0x5D75,0x7771,INVALC, - 0x767D,INVALC,0x5B77, - /* Range 0x743F - 0x7444, array index: 0x0CC7 */ - 0x7B6A,0x695C,0x5941,INVALC,0x7572,0x6045, - /* Range 0x7457 - 0x746A, array index: 0x0CCD */ - 0x6A3C,INVALC,0x5245,0x7B51,0x6740,0x6B25,INVALC,0x5F7A, - 0x6322,0x5739,INVALC,0x6943,INVALC,0x687D,0x682F,INVALC, - INVALC,0x7253,0x7B29,0x5825, - /* Range 0x7530 - 0x7533, array index: 0x0CE1 */ - 0x6F23,0x6B26,0x4B23,0x6369, - /* Range 0x7559 - 0x755D, array index: 0x0CE5 */ - 0x573A,INVALC,0x7255,0x7565,0x596F, - /* Range 0x75B1 - 0x75BE, array index: 0x0CEA */ - 0x785E,0x792A,0x4A77,INVALC,0x6D37,INVALC,INVALC,0x5338, - 0x7256,INVALC,INVALC,0x5459,0x6E45,0x7270, - /* Range 0x761F - 0x7626, array index: 0x0CF8 */ - 0x6830,0x7430,0x736A,0x5A6E,INVALC,0x573B,INVALC,0x6231, - /* Range 0x767B - 0x767E, array index: 0x0D00 */ - 0x5474,0x5B21,0x5B5C,0x5B5D, - /* Range 0x76DB - 0x76E4, array index: 0x0D04 */ - 0x607C,0x5428,INVALC,0x6D53,0x586F,INVALC,0x7257,INVALC, - 0x4A78,0x5A6F, - /* Range 0x77ED - 0x77EF, array index: 0x0D0E */ - 0x532D,0x6861,0x4E6C, - /* Range 0x7825 - 0x7827, array index: 0x0D11 */ - 0x7232,0x7376,0x765B, - /* Range 0x788C - 0x788E, array index: 0x0D14 */ - 0x565E,0x6474,0x616F, - /* Range 0x78BA - 0x78BC, array index: 0x0D17 */ - 0x7C2C,0x7C2D,0x5827, - /* Range 0x792A - 0x792C, array index: 0x0D1A */ - 0x556C,0x5578,0x5A73, - /* Range 0x7947 - 0x7949, array index: 0x0D1D */ - 0x5136,0x5137,0x7233, - /* Range 0x7956 - 0x7960, array index: 0x0D20 */ - 0x7053,0x7234,INVALC,INVALC,0x7054,0x4B64,0x7B54,0x7566, - 0x636A,INVALC,0x5E66, - /* Range 0x798D - 0x7991, array index: 0x0D2B */ - 0x7C21,0x6F6E,0x5C58,INVALC,0x695F, - /* Range 0x79BD - 0x79C1, array index: 0x0D30 */ - 0x5058,0x7C22,0x543E,0x6233,0x5E67, - /* Range 0x79C9 - 0x79CB, array index: 0x0D35 */ - 0x5C3C,0x5236,0x7555, - /* Range 0x7A3B - 0x7A40, array index: 0x0D38 */ - 0x542B,0x4A33,0x4D26,INVALC,0x4D43,0x4D5A, - /* Range 0x7B49 - 0x7B56, array index: 0x0D3E */ - 0x5475,INVALC,0x5049,0x6F27,0x626C,INVALC,0x5B6A,0x4E4C, - 0x7568,0x7755,INVALC,0x534D,INVALC,0x737E, - /* Range 0x7C3D - 0x7C3F, array index: 0x0D4C */ - 0x7458,0x5633,0x5D2D, - /* Range 0x7CB1 - 0x7CB3, array index: 0x0D4F */ - 0x555C,0x7344,0x4B57, - /* Range 0x7CDE - 0x7CE0, array index: 0x0D52 */ - 0x5D50,0x7059,0x4B33, - /* Range 0x7D02 - 0x7D0D, array index: 0x0D55 */ - 0x7144,INVALC,0x6533,0x7B75,0x6961,0x7D60,0x7C3C,INVALC, - 0x5A22,0x5A23,INVALC,0x5221, - /* Range 0x7D17 - 0x7D1B, array index: 0x0D61 */ - 0x5E69,0x4E5C,0x7235,0x5064,0x5D51, - /* Range 0x7D20 - 0x7D22, array index: 0x0D66 */ - 0x6148,0x5B37,0x5F63, - /* Range 0x7D2B - 0x7D30, array index: 0x0D69 */ - 0x6D39,0x7145,INVALC,0x734F,0x572B,0x612C, - /* Range 0x7D42 - 0x7D46, array index: 0x0D6F */ - 0x707B,0x7A61,0x705A,0x4C67,0x5A74, - /* Range 0x7D71 - 0x7D73, array index: 0x0D74 */ - 0x7756,0x5E6A,0x4B34, - /* Range 0x7DB1 - 0x7DB5, array index: 0x0D77 */ - 0x4B35,0x5851,INVALC,0x744E,0x7377, - /* Range 0x7DBA - 0x7DBF, array index: 0x0D7C */ - 0x513B,0x772A,INVALC,0x6D4A,0x5753,0x587A, - /* Range 0x7DDD - 0x7DE3, array index: 0x0D82 */ - 0x727D,0x5330,INVALC,0x7473,0x5A49,INVALC,0x665E, - /* Range 0x7E1B - 0x7E23, array index: 0x0D89 */ - 0x5A5A,INVALC,0x725C,0x7B56,0x6932,INVALC,0x6E2D,INVALC, - 0x7A63, - /* Range 0x7E69 - 0x7E6D, array index: 0x0D92 */ - 0x6331,0x7C6B,0x4D28,INVALC,0x4C36, - /* Range 0x7FDF - 0x7FE1, array index: 0x0D97 */ - 0x6E61,0x7628,0x5D7D, - /* Range 0x806F - 0x8073, array index: 0x0D9A */ - 0x5624,0x7546,INVALC,0x6122,0x6946, - /* Range 0x807D - 0x807F, array index: 0x0D9F */ - 0x7469,0x566C,0x6B53, - /* Range 0x8084 - 0x808C, array index: 0x0DA2 */ - 0x6C3D,0x625C,0x5E6B,0x705C,INVALC,0x6B3F,INVALC,0x574E, - 0x513F, - /* Range 0x8105 - 0x810A, array index: 0x0DAB */ - 0x7A76,0x762A,0x7A77,0x5866,INVALC,0x7431, - /* Range 0x8178 - 0x817A, array index: 0x0DB1 */ - 0x6D73,0x5C59,0x604D, - /* Range 0x81BD - 0x81C2, array index: 0x0DB4 */ - 0x5345,0x7C6C,0x525B,0x546B,INVALC,0x5E22, - /* Range 0x81FA - 0x81FE, array index: 0x0DBA */ - 0x5366,0x725D,0x4F3F,INVALC,0x6B2C, - /* Range 0x821B - 0x8221, array index: 0x0DBF */ - 0x743F,0x626F,INVALC,0x5971,0x7147,INVALC,0x4B38, - /* Range 0x822A - 0x822C, array index: 0x0DC6 */ - 0x797E,0x5B3A,0x5A75, - /* Range 0x8235 - 0x8239, array index: 0x0DC9 */ - 0x766C,0x5A5C,0x7A64,INVALC,0x604F, - /* Range 0x826E - 0x8272, array index: 0x0DCE */ - 0x4A5D,0x555E,INVALC,0x4A5E,0x5F64, - /* Range 0x82AC - 0x82BF, array index: 0x0DD3 */ - 0x5D52,0x7774,0x675C,0x6425,INVALC,0x7C23,INVALC,0x5B3B, - INVALC,INVALC,INVALC,0x723A,0x697D,0x504A,INVALC,0x7556, - 0x5945,0x6434,INVALC,0x6D27, - /* Range 0x82D1 - 0x82D7, array index: 0x0DE7 */ - 0x6A3D,0x667E,INVALC,0x7744,0x752D,INVALC,0x5960, - /* Range 0x82E5 - 0x82E7, array index: 0x0DEE */ - 0x6534,0x4D48,0x6E48, - /* Range 0x82FD - 0x8305, array index: 0x0DF1 */ - 0x4D49,0x7937,INVALC,INVALC,0x7168,0x5972,0x5B75,0x4A35, - 0x5946, - /* Range 0x8334 - 0x8339, array index: 0x0DFA */ - 0x7C6D,0x6C60,0x527E,INVALC,0x6947,0x662A, - /* Range 0x83A9 - 0x83AB, array index: 0x0E00 */ - 0x5D34,0x6435,0x5830, - /* Range 0x83EF - 0x83F4, array index: 0x0E03 */ - 0x7C24,0x4D4A,0x5754,0x5E23,INVALC,0x6460, - /* Range 0x840A - 0x840E, array index: 0x0E09 */ - 0x5551,INVALC,0x5870,0x7843,0x6A57, - /* Range 0x8568 - 0x856A, array index: 0x0E0E */ - 0x4F72,0x7739,0x5973, - /* Range 0x85A6 - 0x85AA, array index: 0x0E11 */ - 0x7440,INVALC,0x7D3C,0x5F31,0x636F, - /* Range 0x85CD - 0x85CF, array index: 0x0E16 */ - 0x5540,0x6370,0x6D7A, - /* Range 0x865B - 0x865F, array index: 0x0E19 */ - 0x7A48,0x5657,INVALC,0x6965,0x7B5C, - /* Range 0x8861 - 0x8863, array index: 0x0E1E */ - 0x7B2C,0x4F43,0x6B7D, - /* Range 0x887E - 0x8882, array index: 0x0E21 */ - 0x505A,0x505B,INVALC,0x6A3E,0x5931, - /* Range 0x88F3 - 0x88F5, array index: 0x0E26 */ - 0x5F57,0x5B50,0x5B51, - /* Range 0x8A16 - 0x8A18, array index: 0x0E29 */ - 0x7D61,0x767E,0x5140, - /* Range 0x8A6D - 0x8A75, array index: 0x0E2C */ - 0x4F78,0x6F2C,INVALC,0x7D7E,0x7C25,0x7A31,0x5F59,INVALC, - 0x6052, - /* Range 0x8AA0 - 0x8AAA, array index: 0x0E35 */ - 0x6124,0x4D2B,INVALC,0x5974,0x6826,0x4D4E,0x6169,INVALC, - 0x7C6F,INVALC,0x6063, - /* Range 0x8AEA - 0x8AEE, array index: 0x0E40 */ - 0x6F75,0x4A5F,INVALC,0x6B31,0x6D3F, - /* Range 0x8AF6 - 0x8AFA, array index: 0x0E45 */ - 0x6426,0x7924,0x7033,INVALC,0x656C, - /* Range 0x8AFE - 0x8B04, array index: 0x0E4A */ - 0x5167,INVALC,0x5947,0x6457,0x6A5D,INVALC,0x5477, - /* Range 0x8B16 - 0x8B1D, array index: 0x0E51 */ - 0x615A,0x5B3F,INVALC,0x4C45,0x6C50,0x4B3B,INVALC,0x5E73, - /* Range 0x8C9D - 0x8CA2, array index: 0x0E59 */ - 0x782F,0x6F76,INVALC,0x5D36,0x6E2F,0x4D78, - /* Range 0x8CA7 - 0x8CCA, array index: 0x0E5F */ - 0x5E38,0x7C27,0x777C,0x7731,0x4E3B,0x7421,INVALC,INVALC, - 0x6E4D,0x612E,INVALC,INVALC,0x6C43,0x4F7E,INVALC,0x783F, - 0x5862,0x5368,INVALC,INVALC,0x5E28,0x7464,0x6C42,INVALC, - 0x5975,0x7945,0x5D53,0x5671,0x6C7C,0x7C70,INVALC,INVALC, - 0x6D40,0x4A39,INVALC,0x6E64, - /* Range 0x8CE0 - 0x8CE6, array index: 0x0E83 */ - 0x5B53,INVALC,0x7A67,0x5863,0x7441,INVALC,0x5D37, - /* Range 0x8CFB - 0x8CFD, array index: 0x0E8A */ - 0x5D38,0x4F45,0x5F5F, - /* Range 0x8D04 - 0x8D0A, array index: 0x0E8D */ - 0x723E,0x7621,INVALC,0x6B4B,0x717C,INVALC,0x7347, - /* Range 0x8E47 - 0x8E4A, array index: 0x0E94 */ - 0x4B74,0x5430,0x7332,0x7B37, - /* Range 0x8EAA - 0x8EAC, array index: 0x0E98 */ - 0x5775,0x6373,0x4F65, - /* Range 0x8ECA - 0x8ECD, array index: 0x0E9B */ - 0x7333,0x6458,0x4F79,0x4F5A, - /* Range 0x8F12 - 0x8F15, array index: 0x0E9F */ - 0x7465,0x5842,0x5C50,0x4C6E, - /* Range 0x8F1B - 0x8F1F, array index: 0x0EA3 */ - 0x5560,0x764A,0x7D4A,0x5856,0x744F, - /* Range 0x8F26 - 0x8F2A, array index: 0x0EA8 */ - 0x5626,0x5C3E,INVALC,0x5B54,0x5747, - /* Range 0x8FAD - 0x8FB2, array index: 0x0EAD */ - 0x5E76,INVALC,0x5C2A,0x7263,0x6934,0x525C, - /* Range 0x9000 - 0x9008, array index: 0x0EB3 */ - 0x775C,0x616A,0x4E41,0x5431,INVALC,0x7D31,0x663D,INVALC, - 0x7B2D, - /* Range 0x900D - 0x9023, array index: 0x0EBC */ - 0x614E,INVALC,0x7762,0x756F,0x4F47,INVALC,INVALC,0x5432, - 0x4C6F,INVALC,0x5468,INVALC,0x6E4F,0x7757,INVALC,INVALC, - 0x6026,0x5641,0x615C,0x7063,0x7164,0x5C71,0x5627, - /* Range 0x904A - 0x9055, array index: 0x0ED3 */ - 0x6B34,0x6A21,INVALC,0x783C,0x4E26,INVALC,0x7946,0x7C5A, - INVALC,0x5433,0x5339,0x6A5E, - /* Range 0x905C - 0x9063, array index: 0x0EDF */ - 0x6161,0x534F,0x7476,INVALC,0x6A40,0x614F,INVALC,0x4C3A, - /* Range 0x906D - 0x906F, array index: 0x0EE7 */ - 0x7064,0x7334,0x546E, - /* Range 0x907C - 0x908A, array index: 0x0EEA */ - 0x5721,0x4B68,INVALC,0x792D,0x692D,0x5864,0x7A33,0x6245, - 0x7C3D,INVALC,INVALC,0x6C44,0x5831,INVALC,0x5C2B, - /* Range 0x90AF - 0x90B1, array index: 0x0EF9 */ - 0x4A7B,0x7746,0x4F48, - /* Range 0x9149 - 0x914E, array index: 0x0EFC */ - 0x6B37,0x6F78,0x755C,0x6D4C,0x5B55,0x714F, - /* Range 0x91AB - 0x91B5, array index: 0x0F02 */ - 0x6C22,0x6D7D,INVALC,0x7534,0x7B38,INVALC,0x5B23,INVALC, - INVALC,0x564A,0x4B59, - /* Range 0x91C9 - 0x91D1, array index: 0x0F0D */ - 0x6B38,INVALC,0x6037,0x576C,0x716C,0x652F,0x5561,0x576D, - 0x5151, - /* Range 0x9210 - 0x9212, array index: 0x0F16 */ - 0x4C22,0x777E,0x5F3C, - /* Range 0x9262 - 0x9266, array index: 0x0F19 */ - 0x5B24,INVALC,0x4F49,0x627C,0x6F7A, - /* Range 0x931E - 0x9328, array index: 0x0F1E */ - 0x6276,0x534A,0x6F7C,0x5144,0x6F31,INVALC,0x5145,INVALC, - 0x505E,INVALC,0x5961, - /* Range 0x958F - 0x9594, array index: 0x0F29 */ - 0x6B4E,INVALC,0x7958,0x7959,0x4A60,0x5A4A, - /* Range 0x95A3 - 0x95A5, array index: 0x0F2F */ - 0x4A48,0x796E,0x5B6C, - /* Range 0x95D4 - 0x95D6, array index: 0x0F32 */ - 0x796F,0x4F74,0x7766, - /* Range 0x964B - 0x964D, array index: 0x0F35 */ - 0x5730,0x5868,0x4B3D, - /* Range 0x965B - 0x9664, array index: 0x0F38 */ - 0x784E,0x7970,0x606D,0x6333,0x7433,INVALC,INVALC,0x6A42, - 0x7266,0x7036, - /* Range 0x9673 - 0x9678, array index: 0x0F42 */ - 0x7267,INVALC,0x5755,0x5436,0x7968,0x5741, - /* Range 0x968A - 0x968E, array index: 0x0F48 */ - 0x5369,0x6249,INVALC,0x7C5B,0x4D2D, - /* Range 0x9698 - 0x969C, array index: 0x0F4D */ - 0x6476,0x5040,INVALC,0x7037,0x6E21, - /* Range 0x96C0 - 0x96CE, array index: 0x0F52 */ - 0x6D4D,0x6452,INVALC,INVALC,0x6A29,0x643A,0x7322,0x4D52, - INVALC,0x764B,INVALC,0x7166,0x6D41,0x683C,0x6E51, - /* Range 0x96E8 - 0x96EA, array index: 0x0F61 */ - 0x696B,0x696C,0x6064, - /* Range 0x97FF - 0x9813, array index: 0x0F64 */ - 0x7A42,0x7B61,0x7A6D,0x7022,0x4C71,INVALC,0x7A23,0x6277, - INVALC,0x624E,INVALC,0x6975,INVALC,0x616B,INVALC,INVALC, - INVALC,0x6768,0x6857,0x5A78,0x544B, - /* Range 0x984C - 0x984E, array index: 0x0F79 */ - 0x7039,0x647E,0x6449, - /* Range 0x98ED - 0x98EF, array index: 0x0F7C */ - 0x7650,0x6B66,0x5A79, - /* Range 0x98FC - 0x98FE, array index: 0x0F7F */ - 0x5E78,0x7869,0x635E, - /* Range 0x9949 - 0x994D, array index: 0x0F82 */ - 0x504F,INVALC,0x4F7A,0x734A,0x6057, - /* Range 0x99AC - 0x99AE, array index: 0x0F87 */ - 0x5829,0x655F,0x7927, - /* Range 0x99D0 - 0x99D2, array index: 0x0F8A */ - 0x7152,0x524C,0x4F4B, - /* Range 0x9B41 - 0x9B45, array index: 0x0F8D */ - 0x4E5A,0x7B6B,0x5B26,0x5B5E,0x5865, - /* Range 0x9DF8 - 0x9DFA, array index: 0x0F92 */ - 0x7D53,0x6B6D,0x565C, - /* Range 0xAC07 - 0xAC0A, array index: 0x0F95 */ - 0x3024,0x3025,0x3026,0x3027, - /* Range 0xAC10 - 0xAC1D, array index: 0x0F99 */ - 0x3028,0x3029,0x302A,0x302B,0x302C,0x302D,0x302E,0x302F, - INVALC,0x3030,0x3031,0x3032,0x3033,0x3034, - /* Range 0xAC2C - 0xAC31, array index: 0x0FA7 */ - 0x3037,0x3038,INVALC,0x3039,0x303A,0x303B, - /* Range 0xAC80 - 0xAC8C, array index: 0x0FAD */ - 0x304B,0x304C,INVALC,0x304D,0x304E,0x304F,0x3050,INVALC, - INVALC,0x3051,0x3052,0x3053,0x3054, - /* Range 0xAC9C - 0xACA1, array index: 0x0FBA */ - 0x3057,0x3058,INVALC,0x3059,0x305A,0x305B, - /* Range 0xACA8 - 0xACB0, array index: 0x0FC0 */ - 0x305C,0x305D,0x305E,INVALC,0x305F,INVALC,INVALC,0x3060, - 0x3061, - /* Range 0xACB8 - 0xACBD, array index: 0x0FC9 */ - 0x3062,0x3063,INVALC,0x3064,0x3065,0x3066, - /* Range 0xACEF - 0xACF6, array index: 0x0FCF */ - 0x3074,0x3075,0x3076,INVALC,0x3077,INVALC,0x3078,0x3079, - /* Range 0xAD73 - 0xAD76, array index: 0x0FD7 */ - 0x313B,0x313C,0x313D,0x313E, - /* Range 0xAD7B - 0xAD82, array index: 0x0FDB */ - 0x313F,0x3140,0x3141,INVALC,0x3142,INVALC,0x3143,0x3144, - /* Range 0xADFF - 0xAE01, array index: 0x0FE3 */ - 0x315A,0x315B,0x315C, - /* Range 0xAE4A - 0xAE50, array index: 0x0FE6 */ - 0x316D,INVALC,0x316E,0x316F,0x3170,INVALC,0x3171, - /* Range 0xAE5C - 0xAE61, array index: 0x0FED */ - 0x3174,0x3175,INVALC,0x3176,0x3177,0x3178, - /* Range 0xAE78 - 0xAE7D, array index: 0x0FF3 */ - 0x317E,0x3221,INVALC,0x3222,0x3223,0x3224, - /* Range 0xAEBC - 0xAEC0, array index: 0x0FF9 */ - 0x3228,0x3229,0x322A,INVALC,0x322B, - /* Range 0xAECC - 0xAED1, array index: 0x0FFE */ - 0x322D,0x322E,INVALC,0x322F,0x3230,0x3231, - /* Range 0xAF3F - 0xAF43, array index: 0x1004 */ - 0x3246,INVALC,0x3247,0x3248,0x3249, - /* Range 0xAFC7 - 0xAFCE, array index: 0x1009 */ - 0x325D,0x325E,0x325F,INVALC,0x3260,INVALC,0x3261,0x3262, - /* Range 0xB053 - 0xB059, array index: 0x1011 */ - 0x327A,0x327B,0x327C,INVALC,0x327D,INVALC,0x327E, - /* Range 0xB098 - 0xB0A2, array index: 0x1018 */ - 0x332A,0x332B,0x332C,INVALC,0x332D,INVALC,INVALC,0x332E, - 0x332F,0x3330,0x3331, - /* Range 0xB0A8 - 0xB0B5, array index: 0x1023 */ - 0x3332,0x3333,INVALC,0x3334,0x3335,0x3336,0x3337,0x3338, - INVALC,0x3339,INVALC,0x333A,0x333B,0x333C, - /* Range 0xB0C4 - 0xB0C9, array index: 0x1031 */ - 0x333F,0x3340,INVALC,0x3341,0x3342,0x3343, - /* Range 0xB108 - 0xB10C, array index: 0x1037 */ - 0x334A,0x334B,INVALC,0x334C,0x334D, - /* Range 0xB118 - 0xB11D, array index: 0x103C */ - 0x3351,0x3352,INVALC,0x3353,0x3354,0x3355, - /* Range 0xB123 - 0xB125, array index: 0x1042 */ - 0x3356,0x3357,0x3358, - /* Range 0xB134 - 0xB139, array index: 0x1045 */ - 0x335B,0x335C,INVALC,0x335D,0x335E,0x335F, - /* Range 0xB192 - 0xB194, array index: 0x104B */ - 0x3374,0x3375,0x3376, - /* Range 0xB298 - 0xB29A, array index: 0x104E */ - 0x3443,0x3444,0x3445, - /* Range 0xB2E2 - 0xB301, array index: 0x1051 */ - 0x3458,INVALC,0x3459,0x345A,0x345B,INVALC,0x345C,INVALC, - INVALC,0x345D,0x345E,0x345F,0x3460,0x3461,INVALC,INVALC, - INVALC,0x3462,0x3463,0x3464,INVALC,0x3465,0x3466,0x3467, - 0x3468,0x3469,INVALC,INVALC,INVALC,0x346A,0x346B,0x346C, - /* Range 0xB310 - 0xB315, array index: 0x1071 */ - 0x346F,0x3470,INVALC,0x3471,0x3472,0x3473, - /* Range 0xB354 - 0xB35F, array index: 0x1077 */ - 0x3475,0x3476,0x3477,INVALC,0x3478,INVALC,INVALC,0x3479, - 0x347A,INVALC,0x347B,0x347C, - /* Range 0xB380 - 0xB385, array index: 0x1083 */ - 0x3529,0x352A,INVALC,0x352B,0x352C,0x352D, - /* Range 0xB524 - 0xB52A, array index: 0x1089 */ - 0x3575,0x3576,INVALC,0x3577,0x3578,0x3579,0x357A, - /* Range 0xB540 - 0xB545, array index: 0x1090 */ - 0x3621,0x3622,INVALC,0x3623,0x3624,0x3625, - /* Range 0xB54B - 0xB54D, array index: 0x1096 */ - 0x3626,0x3627,0x3628, - /* Range 0xB55C - 0xB561, array index: 0x1099 */ - 0x362B,0x362C,INVALC,0x362D,0x362E,0x362F, - /* Range 0xB5B0 - 0xB5B5, array index: 0x109F */ - 0x3636,0x3637,INVALC,0x3638,0x3639,0x363A, - /* Range 0xB5BB - 0xB5BD, array index: 0x10A5 */ - 0x363B,0x363C,0x363D, - /* Range 0xB5CC - 0xB5D1, array index: 0x10A8 */ - 0x3640,0x3641,INVALC,0x3642,0x3643,0x3644, - /* Range 0xB78C - 0xB799, array index: 0x10AE */ - 0x3677,0x3678,INVALC,0x3679,0x367A,0x367B,0x367C,INVALC, - INVALC,INVALC,0x367D,0x367E,0x3721,0x3722, - /* Range 0xB7A8 - 0xB7AD, array index: 0x10BC */ - 0x3725,0x3726,INVALC,0x3727,0x3728,0x3729, - /* Range 0xB7FC - 0xB801, array index: 0x10C2 */ - 0x3733,0x3734,INVALC,0x3735,0x3736,0x3737, - /* Range 0xB807 - 0xB809, array index: 0x10C8 */ - 0x3738,0x3739,0x373A, - /* Range 0xB834 - 0xB839, array index: 0x10CB */ - 0x3745,0x3746,INVALC,0x3747,0x3748,0x3749, - /* Range 0xB9CC - 0xB9D2, array index: 0x10D1 */ - 0x3838,INVALC,0x3839,0x383A,0x383B,0x383C,0x383D, - /* Range 0xB9E1 - 0xB9E5, array index: 0x10D8 */ - 0x3843,INVALC,0x3844,0x3845,0x3846, - /* Range 0xB9F4 - 0xB9FA, array index: 0x10DD */ - 0x3849,0x384A,INVALC,0x384B,0x384C,0x384D,0x384E, - /* Range 0xBA53 - 0xBA55, array index: 0x10E4 */ - 0x385D,0x385E,0x385F, - /* Range 0xBA64 - 0xBA69, array index: 0x10E7 */ - 0x3862,0x3863,INVALC,0x3864,0x3865,0x3866, - /* Range 0xBA83 - 0xBA87, array index: 0x10ED */ - 0x386B,0x386C,0x386D,INVALC,0x386E, - /* Range 0xBAA8 - 0xBAAC, array index: 0x10F2 */ - 0x3870,0x3871,INVALC,0x3872,0x3873, - /* Range 0xBB34 - 0xBB3E, array index: 0x10F7 */ - 0x392B,0x392C,0x392D,INVALC,0x392E,INVALC,INVALC,0x392F, - 0x3930,0x3931,0x3932, - /* Range 0xBC08 - 0xBC1F, array index: 0x1102 */ - 0x3952,0x3953,INVALC,0x3954,0x3955,0x3956,INVALC,0x3957, - INVALC,0x3958,INVALC,INVALC,0x3959,0x395A,0x395B,0x395C, - 0x395D,INVALC,INVALC,0x395E,0x395F,0x3960,0x3961,0x3962, - /* Range 0xBC40 - 0xBC45, array index: 0x111A */ - 0x396C,0x396D,INVALC,0x396E,0x396F,0x3970, - /* Range 0xBCB0 - 0xBCB5, array index: 0x1120 */ - 0x3A28,0x3A29,INVALC,0x3A2A,0x3A2B,0x3A2C, - /* Range 0xBCCD - 0xBCD1, array index: 0x1126 */ - 0x3A31,INVALC,0x3A32,0x3A33,0x3A34, - /* Range 0xBCF4 - 0xBCF8, array index: 0x112B */ - 0x3A38,0x3A39,0x3A3A,INVALC,0x3A3B, - /* Range 0xBD87 - 0xBD8A, array index: 0x1130 */ - 0x3A51,0x3A52,0x3A53,0x3A54, - /* Range 0xBE57 - 0xBE5B, array index: 0x1134 */ - 0x3A78,INVALC,0x3A79,0x3A7A,0x3A7B, - /* Range 0xBE70 - 0xBE75, array index: 0x1139 */ - 0x3B23,0x3B24,INVALC,0x3B25,0x3B26,0x3B27, - /* Range 0xBE7B - 0xBE7D, array index: 0x113F */ - 0x3B28,0x3B29,0x3B2A, - /* Range 0xBE8C - 0xBE91, array index: 0x1142 */ - 0x3B2D,0x3B2E,INVALC,0x3B2F,0x3B30,0x3B31, - /* Range 0xBEE3 - 0xBEE5, array index: 0x1148 */ - 0x3B3B,0x3B3C,0x3B3D, - /* Range 0xBF18 - 0xBF1D, array index: 0x114B */ - 0x3B42,0x3B43,INVALC,0x3B44,0x3B45,0x3B46, - /* Range 0xC0AC - 0xC0B6, array index: 0x1151 */ - 0x3B67,0x3B68,INVALC,0x3B69,0x3B6A,INVALC,INVALC,0x3B6B, - 0x3B6C,0x3B6D,0x3B6E, - /* Range 0xC0BC - 0xC0C1, array index: 0x115C */ - 0x3B6F,0x3B70,INVALC,0x3B71,0x3B72,0x3B73, - /* Range 0xC0D8 - 0xC0DD, array index: 0x1162 */ - 0x3B79,0x3B7A,INVALC,0x3B7B,0x3B7C,0x3B7D, - /* Range 0xC11C - 0xC127, array index: 0x1168 */ - 0x3C2D,0x3C2E,0x3C2F,0x3C30,0x3C31,INVALC,INVALC,0x3C32, - 0x3C33,INVALC,0x3C34,0x3C35, - /* Range 0xC12C - 0xC131, array index: 0x1174 */ - 0x3C36,0x3C37,INVALC,0x3C38,0x3C39,0x3C3A, - /* Range 0xC148 - 0xC14D, array index: 0x117A */ - 0x3C40,0x3C41,INVALC,0x3C42,0x3C43,0x3C44, - /* Range 0xC164 - 0xC169, array index: 0x1180 */ - 0x3C49,0x3C4A,INVALC,0x3C4B,0x3C4C,0x3C4D, - /* Range 0xC18C - 0xC190, array index: 0x1186 */ - 0x3C52,0x3C53,0x3C54,INVALC,0x3C55, - /* Range 0xC2EB - 0xC2F1, array index: 0x118B */ - 0x3D48,0x3D49,0x3D4A,INVALC,0x3D4B,INVALC,0x3D4C, - /* Range 0xC2F8 - 0xC2FC, array index: 0x1192 */ - 0x3D4E,0x3D4F,INVALC,0x3D50,0x3D51, - /* Range 0xC313 - 0xC315, array index: 0x1197 */ - 0x3D57,0x3D58,0x3D59, - /* Range 0xC4FF - 0xC501, array index: 0x119A */ - 0x3E37,0x3E38,0x3E39, - /* Range 0xC544 - 0xC54E, array index: 0x119D */ - 0x3E46,0x3E47,INVALC,INVALC,0x3E48,0x3E49,0x3E4A,INVALC, - 0x3E4B,0x3E4C,0x3E4D, - /* Range 0xC553 - 0xC559, array index: 0x11A8 */ - 0x3E4E,0x3E4F,0x3E50,INVALC,0x3E51,0x3E52,0x3E53, - /* Range 0xC55D - 0xC561, array index: 0x11AF */ - 0x3E54,0x3E55,INVALC,0x3E56,0x3E57, - /* Range 0xC570 - 0xC575, array index: 0x11B4 */ - 0x3E5A,0x3E5B,INVALC,0x3E5C,0x3E5D,0x3E5E, - /* Range 0xC5B8 - 0xC5BE, array index: 0x11BA */ - 0x3E70,0x3E71,INVALC,0x3E72,0x3E73,0x3E74,0x3E75, - /* Range 0xC5C4 - 0xC5D1, array index: 0x11C1 */ - 0x3E76,0x3E77,0x3E78,0x3E79,0x3E7A,0x3E7B,0x3E7C,INVALC, - 0x3E7D,INVALC,0x3E7E,INVALC,0x3F21,0x3F22, - /* Range 0xC5EC - 0xC5F0, array index: 0x11CF */ - 0x3F29,0x3F2A,0x3F2B,INVALC,0x3F2C, - /* Range 0xC5FC - 0xC608, array index: 0x11D4 */ - 0x3F30,0x3F31,0x3F32,0x3F33,0x3F34,0x3F35,INVALC,INVALC, - INVALC,0x3F36,0x3F37,0x3F38,0x3F39, - /* Range 0xC618 - 0xC61C, array index: 0x11E1 */ - 0x3F3C,0x3F3D,INVALC,0x3F3E,0x3F3F, - /* Range 0xC62C - 0xC63B, array index: 0x11E6 */ - 0x3F43,0x3F44,0x3F45,INVALC,0x3F46,INVALC,INVALC,0x3F47, - 0x3F48,0x3F49,INVALC,0x3F4A,INVALC,0x3F4B,INVALC,0x3F4C, - /* Range 0xC650 - 0xC655, array index: 0x11F6 */ - 0x3F51,0x3F52,INVALC,0x3F53,0x3F54,0x3F55, - /* Range 0xC6B8 - 0xC6BA, array index: 0x11FC */ - 0x3F6F,0x3F70,0x3F71, - /* Range 0xC74F - 0xC758, array index: 0x11FF */ - 0x403F,INVALC,0x4040,0x4041,0x4042,0x4043,0x4044,0x4045, - 0x4046,0x4047, - /* Range 0xC77C - 0xC77E, array index: 0x1209 */ - 0x404F,0x4050,0x4051, - /* Range 0xC783 - 0xC78A, array index: 0x120C */ - 0x4052,0x4053,0x4054,INVALC,0x4055,0x4056,0x4057,0x4058, - /* Range 0xC794 - 0xC79A, array index: 0x1214 */ - 0x405C,INVALC,0x405D,0x405E,0x405F,INVALC,0x4060, - /* Range 0xC7A0 - 0xC7A6, array index: 0x121B */ - 0x4061,0x4062,INVALC,0x4063,0x4064,0x4065,0x4066, - /* Range 0xC7BC - 0xC7C1, array index: 0x1222 */ - 0x406B,0x406C,INVALC,0x406D,0x406E,0x406F, - /* Range 0xC883 - 0xC88D, array index: 0x1228 */ - 0x413D,INVALC,0x413E,0x413F,0x4140,INVALC,INVALC,INVALC, - 0x4141,0x4142,0x4143, - /* Range 0xC904 - 0xC906, array index: 0x1233 */ - 0x4159,0x415A,0x415B, - /* Range 0xC9D9 - 0xC9DD, array index: 0x1236 */ - 0x4223,0x4224,INVALC,0x4225,0x4226, - /* Range 0xC9EC - 0xC9F1, array index: 0x123B */ - 0x422B,0x422C,INVALC,0x422D,0x422E,0x422F, - /* Range 0xCA08 - 0xCA0D, array index: 0x1241 */ - 0x4234,0x4235,INVALC,0x4236,0x4237,0x4238, - /* Range 0xCA5C - 0xCA61, array index: 0x1247 */ - 0x4240,0x4241,INVALC,0x4242,0x4243,0x4244, - /* Range 0xCC27 - 0xCC29, array index: 0x124D */ - 0x4276,0x4277,0x4278, - /* Range 0xCC38 - 0xCC3E, array index: 0x1250 */ - 0x427C,0x427D,INVALC,0x427E,0x4321,0x4322,0x4323, - /* Range 0xCC54 - 0xCC59, array index: 0x1257 */ - 0x4328,0x4329,INVALC,0x432A,0x432B,0x432C, - /* Range 0xCCA8 - 0xCCAD, array index: 0x125D */ - 0x4337,0x4338,INVALC,0x4339,0x433A,0x433B, - /* Range 0xCE5F - 0xCE61, array index: 0x1263 */ - 0x4424,0x4425,0x4426, - /* Range 0xCEA0 - 0xCEA5, array index: 0x1266 */ - 0x4437,0x4438,INVALC,0x4439,0x443A,0x443B, - /* Range 0xCEF4 - 0xCEF9, array index: 0x126C */ - 0x4444,0x4445,INVALC,0x4446,0x4447,0x4448, - /* Range 0xCF2C - 0xCF31, array index: 0x1272 */ - 0x4454,0x4455,INVALC,0x4456,0x4457,0x4458, - /* Range 0xD0D0 - 0xD0D5, array index: 0x1278 */ - 0x453D,0x453E,INVALC,0x453F,0x4540,0x4541, - /* Range 0xD0EC - 0xD0F1, array index: 0x127E */ - 0x4546,0x4547,INVALC,0x4548,0x4549,0x454A, - /* Range 0xD140 - 0xD145, array index: 0x1284 */ - 0x4552,0x4553,INVALC,0x4554,0x4555,0x4556, - /* Range 0xD30C - 0xD310, array index: 0x128A */ - 0x4644,0x4645,0x4646,INVALC,0x4647, - /* Range 0xD31C - 0xD321, array index: 0x128F */ - 0x464A,0x464B,INVALC,0x464C,0x464D,0x464E, - /* Range 0xD338 - 0xD33D, array index: 0x1295 */ - 0x4654,0x4655,INVALC,0x4656,0x4657,0x4658, - /* Range 0xD38C - 0xD391, array index: 0x129B */ - 0x465F,0x4660,INVALC,0x4661,0x4662,0x4663, - /* Range 0xD584 - 0xD589, array index: 0x12A1 */ - 0x475C,0x475D,INVALC,0x475E,0x475F,0x4760, - /* Range 0xD610 - 0xD615, array index: 0x12A7 */ - 0x4778,0x4779,INVALC,0x477A,0x477B,0x477C, - /* Range 0xD754 - 0xD759, array index: 0x12AD */ - 0x4867,INVALC,0x4868,0x4869,0x486A,0x486B, - /* Range 0xF900 - 0xFA0B, array index: 0x12B3 */ - 0x4B50,0x4B56,0x4B67,0x4D4F,0x4D68,0x4E2D,0x4F7B,0x5022, - 0x5038,0x5050,0x505D,0x5154,0x5155,0x5158,0x515B,0x515C, - 0x515D,0x515E,0x515F,0x5160,0x5162,0x5163,0x5164,0x5165, - 0x5166,0x5168,0x5169,0x516A,0x516B,0x516D,0x516F,0x5170, - 0x5172,0x5176,0x517A,0x517C,0x517D,0x517E,0x5222,0x5223, - 0x5227,0x5228,0x5229,0x522A,0x522B,0x522D,0x5232,0x523E, - 0x5242,0x5243,0x5244,0x5246,0x5247,0x5248,0x5249,0x524A, - 0x524B,0x524D,0x524E,0x524F,0x5250,0x5251,0x5252,0x5253, - 0x5254,0x5255,0x5256,0x5257,0x5259,0x525A,0x525E,0x525F, - 0x5261,0x5262,0x5264,0x5265,0x5266,0x5267,0x5268,0x5269, - 0x526A,0x526B,0x5270,0x5271,0x5272,0x5273,0x5274,0x5275, - 0x5277,0x5278,0x5466,0x547C,0x5525,0x552B,0x552E,0x5638, - 0x564D,0x574B,0x5764,0x5B45,0x5B64,0x5C25,0x5D25,0x5D55, - 0x5D74,0x5E7C,0x5E7E,0x5F33,0x5F61,0x5F68,0x6071,0x612D, - 0x616D,0x6375,0x6421,0x6429,0x652E,0x6531,0x6532,0x6539, - 0x653B,0x653C,0x6544,0x654E,0x6550,0x6552,0x6556,0x657A, - 0x657B,0x657C,0x657E,0x6621,0x6624,0x6627,0x662D,0x662F, - 0x6630,0x6631,0x6633,0x6637,0x6638,0x663C,0x6644,0x6646, - 0x6647,0x664A,0x6652,0x6656,0x6659,0x665C,0x665F,0x6661, - 0x6664,0x6665,0x6666,0x6668,0x666A,0x666B,0x666C,0x666F, - 0x6671,0x6672,0x6675,0x6676,0x6677,0x6679,0x6721,0x6726, - 0x6729,0x672A,0x672C,0x672D,0x6730,0x673F,0x6741,0x6746, - 0x6747,0x674B,0x674D,0x674F,0x6750,0x6753,0x675F,0x6764, - 0x6766,0x6777,0x6867,0x6868,0x6870,0x6871,0x6877,0x6879, - 0x687B,0x687E,0x6927,0x692C,0x694C,0x6977,0x6A41,0x6A65, - 0x6A74,0x6A77,0x6A7C,0x6A7E,0x6B24,0x6B27,0x6B29,0x6B2A, - 0x6B3A,0x6B3B,0x6B3D,0x6B41,0x6B42,0x6B46,0x6B47,0x6B4C, - 0x6B4F,0x6B50,0x6B51,0x6B52,0x6B58,0x6C26,0x6C27,0x6C2A, - 0x6C2F,0x6C30,0x6C31,0x6C32,0x6C35,0x6C38,0x6C3A,0x6C40, - 0x6C41,0x6C45,0x6C46,0x6C49,0x6C4A,0x6C55,0x6C5D,0x6C5E, - 0x6C61,0x6C64,0x6C67,0x6C68,0x6C77,0x6C78,0x6C7A,0x6D21, - 0x6D22,0x6D23,0x6D6E,0x6E5B,0x723D,0x727A,0x7331,0x7427, - 0x746E,0x7674,0x7676,0x7738,0x7748,0x7753,0x785B,0x7870, - 0x7A21,0x7A22,0x7A66,0x7C29, - /* Range 0xFF01 - 0xFF5E, array index: 0x13BF */ - 0x2321,0x2322,0x2323,0x2324,0x2325,0x2326,0x2327,0x2328, - 0x2329,0x232A,0x232B,0x232C,0x232D,0x232E,0x232F,0x2330, - 0x2331,0x2332,0x2333,0x2334,0x2335,0x2336,0x2337,0x2338, - 0x2339,0x233A,0x233B,0x233C,0x233D,0x233E,0x233F,0x2340, - 0x2341,0x2342,0x2343,0x2344,0x2345,0x2346,0x2347,0x2348, - 0x2349,0x234A,0x234B,0x234C,0x234D,0x234E,0x234F,0x2350, - 0x2351,0x2352,0x2353,0x2354,0x2355,0x2356,0x2357,0x2358, - 0x2359,0x235A,0x235B,0x212C,0x235D,0x235E,0x235F,0x2360, - 0x2361,0x2362,0x2363,0x2364,0x2365,0x2366,0x2367,0x2368, - 0x2369,0x236A,0x236B,0x236C,0x236D,0x236E,0x236F,0x2370, - 0x2371,0x2372,0x2373,0x2374,0x2375,0x2376,0x2377,0x2378, - 0x2379,0x237A,0x237B,0x237C,0x237D,0x2226, - /* Range 0xFFE0 - 0xFFE6, array index: 0x141D */ - 0x214B,0x214C,0x217E,0x237E,INVALC,0x214D,0x235C, - /* Unranged codes (438 codes) */ - /* Array index: 0x1424 */ 0x00A1,0x222E, - /* Array index: 0x1424 */ 0x00A4,0x2234, - /* Array index: 0x1424 */ 0x00A7,0x2157, - /* Array index: 0x1424 */ 0x00A8,0x2127, - /* Array index: 0x1424 */ 0x00AA,0x2823, - /* Array index: 0x1424 */ 0x00AD,0x2129, - /* Array index: 0x1424 */ 0x00C6,0x2821, - /* Array index: 0x1424 */ 0x00D0,0x2822, - /* Array index: 0x1424 */ 0x00D7,0x213F, - /* Array index: 0x1424 */ 0x00D8,0x282A, - /* Array index: 0x1424 */ 0x00DE,0x282D, - /* Array index: 0x1424 */ 0x00DF,0x292C, - /* Array index: 0x1424 */ 0x00E6,0x2921, - /* Array index: 0x1424 */ 0x00F0,0x2923, - /* Array index: 0x1424 */ 0x00F7,0x2140, - /* Array index: 0x1424 */ 0x00F8,0x292A, - /* Array index: 0x1424 */ 0x00FE,0x292D, - /* Array index: 0x1424 */ 0x0111,0x2922, - /* Array index: 0x1424 */ 0x0126,0x2824, - /* Array index: 0x1424 */ 0x0127,0x2924, - /* Array index: 0x1424 */ 0x0138,0x2927, - /* Array index: 0x1424 */ 0x0152,0x282B, - /* Array index: 0x1424 */ 0x0153,0x292B, - /* Array index: 0x1424 */ 0x0166,0x282E, - /* Array index: 0x1424 */ 0x0167,0x292E, - /* Array index: 0x1424 */ 0x02C7,0x2227, - /* Array index: 0x1424 */ 0x02D0,0x2230, - /* Array index: 0x1424 */ 0x0401,0x2C27, - /* Array index: 0x1424 */ 0x2015,0x212A, - /* Array index: 0x1424 */ 0x2018,0x212E, - /* Array index: 0x1424 */ 0x2019,0x212F, - /* Array index: 0x1424 */ 0x201C,0x2130, - /* Array index: 0x1424 */ 0x201D,0x2131, - /* Array index: 0x1424 */ 0x2020,0x2253, - /* Array index: 0x1424 */ 0x2021,0x2254, - /* Array index: 0x1424 */ 0x2025,0x2125, - /* Array index: 0x1424 */ 0x2026,0x2126, - /* Array index: 0x1424 */ 0x2030,0x2236, - /* Array index: 0x1424 */ 0x2032,0x2147, - /* Array index: 0x1424 */ 0x2033,0x2148, - /* Array index: 0x1424 */ 0x203B,0x2158, - /* Array index: 0x1424 */ 0x2074,0x2979, - /* Array index: 0x1424 */ 0x2103,0x2149, - /* Array index: 0x1424 */ 0x2109,0x2235, - /* Array index: 0x1424 */ 0x2113,0x2724, - /* Array index: 0x1424 */ 0x2116,0x2260, - /* Array index: 0x1424 */ 0x2121,0x2265, - /* Array index: 0x1424 */ 0x2122,0x2262, - /* Array index: 0x1424 */ 0x2126,0x2759, - /* Array index: 0x1424 */ 0x212B,0x214A, - /* Array index: 0x1424 */ 0x2153,0x2877, - /* Array index: 0x1424 */ 0x2154,0x2878, - /* Array index: 0x1424 */ 0x21D2,0x2221, - /* Array index: 0x1424 */ 0x21D4,0x2222, - /* Array index: 0x1424 */ 0x2200,0x2223, - /* Array index: 0x1424 */ 0x2202,0x2153, - /* Array index: 0x1424 */ 0x2203,0x2224, - /* Array index: 0x1424 */ 0x2207,0x2154, - /* Array index: 0x1424 */ 0x2208,0x2174, - /* Array index: 0x1424 */ 0x220B,0x2175, - /* Array index: 0x1424 */ 0x220F,0x2233, - /* Array index: 0x1424 */ 0x2211,0x2232, - /* Array index: 0x1424 */ 0x221A,0x216E, - /* Array index: 0x1424 */ 0x221D,0x2170, - /* Array index: 0x1424 */ 0x221E,0x2144, - /* Array index: 0x1424 */ 0x2220,0x2150, - /* Array index: 0x1424 */ 0x2234,0x2145, - /* Array index: 0x1424 */ 0x2235,0x2171, - /* Array index: 0x1424 */ 0x223C,0x212D, - /* Array index: 0x1424 */ 0x223D,0x216F, - /* Array index: 0x1424 */ 0x2252,0x2156, - /* Array index: 0x1424 */ 0x2260,0x2141, - /* Array index: 0x1424 */ 0x2261,0x2155, - /* Array index: 0x1424 */ 0x2264,0x2142, - /* Array index: 0x1424 */ 0x2265,0x2143, - /* Array index: 0x1424 */ 0x226A,0x216C, - /* Array index: 0x1424 */ 0x226B,0x216D, - /* Array index: 0x1424 */ 0x2282,0x2178, - /* Array index: 0x1424 */ 0x2283,0x2179, - /* Array index: 0x1424 */ 0x2286,0x2176, - /* Array index: 0x1424 */ 0x2287,0x2177, - /* Array index: 0x1424 */ 0x2299,0x2241, - /* Array index: 0x1424 */ 0x22A5,0x2151, - /* Array index: 0x1424 */ 0x2312,0x2152, - /* Array index: 0x1424 */ 0x2592,0x2246, - /* Array index: 0x1424 */ 0x25B2,0x2163, - /* Array index: 0x1424 */ 0x25B3,0x2162, - /* Array index: 0x1424 */ 0x25B6,0x223A, - /* Array index: 0x1424 */ 0x25B7,0x2239, - /* Array index: 0x1424 */ 0x25BC,0x2165, - /* Array index: 0x1424 */ 0x25BD,0x2164, - /* Array index: 0x1424 */ 0x25C0,0x2238, - /* Array index: 0x1424 */ 0x25C1,0x2237, - /* Array index: 0x1424 */ 0x25CB,0x215B, - /* Array index: 0x1424 */ 0x2605,0x215A, - /* Array index: 0x1424 */ 0x2606,0x2159, - /* Array index: 0x1424 */ 0x260E,0x224F, - /* Array index: 0x1424 */ 0x260F,0x224E, - /* Array index: 0x1424 */ 0x261C,0x2250, - /* Array index: 0x1424 */ 0x261E,0x2251, - /* Array index: 0x1424 */ 0x2640,0x214F, - /* Array index: 0x1424 */ 0x2642,0x214E, - /* Array index: 0x1424 */ 0x327F,0x225E, - /* Array index: 0x1424 */ 0x33CF,0x2739, - /* Array index: 0x1424 */ 0x33D0,0x276A, - /* Array index: 0x1424 */ 0x33D3,0x276B, - /* Array index: 0x1424 */ 0x33D6,0x275F, - /* Array index: 0x1424 */ 0x33D8,0x2264, - /* Array index: 0x1424 */ 0x4E00,0x6C69, - /* Array index: 0x1424 */ 0x4E01,0x6F4B, - /* Array index: 0x1424 */ 0x4E03,0x7652, - /* Array index: 0x1424 */ 0x4E11,0x7564, - /* Array index: 0x1424 */ 0x4E1E,0x632A, - /* Array index: 0x1424 */ 0x4E2D,0x7169, - /* Array index: 0x1424 */ 0x4E32,0x4D7A, - /* Array index: 0x1424 */ 0x4E38,0x7C2F, - /* Array index: 0x1424 */ 0x4E39,0x5321, - /* Array index: 0x1424 */ 0x4E3B,0x712B, - /* Array index: 0x1424 */ 0x4E42,0x6751, - /* Array index: 0x1424 */ 0x4E43,0x522C, - /* Array index: 0x1424 */ 0x4E45,0x4E79, - /* Array index: 0x1424 */ 0x4E56,0x4E52, - /* Array index: 0x1424 */ 0x4E58,0x632B, - /* Array index: 0x1424 */ 0x4E59,0x6B60, - /* Array index: 0x1424 */ 0x4E6B,0x4A61, - /* Array index: 0x1424 */ 0x4E6D,0x544C, - /* Array index: 0x1424 */ 0x4E73,0x6A61, - /* Array index: 0x1424 */ 0x4E76,0x5C63, - /* Array index: 0x1424 */ 0x4E77,0x5F2D, - /* Array index: 0x1424 */ 0x4E7E,0x4B6B, - /* Array index: 0x1424 */ 0x4E82,0x552F, - /* Array index: 0x1424 */ 0x4E86,0x5675, - /* Array index: 0x1424 */ 0x4E88,0x6578, - /* Array index: 0x1424 */ 0x4E8B,0x5E40, - /* Array index: 0x1424 */ 0x4E8C,0x6C23, - /* Array index: 0x1424 */ 0x4E98,0x5066, - /* Array index: 0x1424 */ 0x4E9B,0x5E41, - /* Array index: 0x1424 */ 0x4E9E,0x642C, - /* Array index: 0x1424 */ 0x4EB6,0x5322, - /* Array index: 0x1424 */ 0x4EBA,0x6C51, - /* Array index: 0x1424 */ 0x4EC0,0x6427, - /* Array index: 0x1424 */ 0x4EC1,0x6C52, - /* Array index: 0x1424 */ 0x4EC4,0x7631, - /* Array index: 0x1424 */ 0x4EC7,0x4E7B, - /* Array index: 0x1424 */ 0x4ECA,0x5051, - /* Array index: 0x1424 */ 0x4ECB,0x4B3F, - /* Array index: 0x1424 */ 0x4ECD,0x6D24, - /* Array index: 0x1424 */ 0x4EDD,0x544E, - /* Array index: 0x1424 */ 0x4EDF,0x7435, - /* Array index: 0x1424 */ 0x4EF0,0x6466, - /* Array index: 0x1424 */ 0x4EF2,0x716A, - /* Array index: 0x1424 */ 0x4EF6,0x4B6C, - /* Array index: 0x1424 */ 0x4EF7,0x4B40, - /* Array index: 0x1424 */ 0x4EFB,0x6C72, - /* Array index: 0x1424 */ 0x4F01,0x506A, - /* Array index: 0x1424 */ 0x4F2F,0x5B57, - /* Array index: 0x1424 */ 0x4F34,0x5A61, - /* Array index: 0x1424 */ 0x4F36,0x5636, - /* Array index: 0x1424 */ 0x4F38,0x635F, - /* Array index: 0x1424 */ 0x4F3A,0x5E43, - /* Array index: 0x1424 */ 0x4F3C,0x5E44, - /* Array index: 0x1424 */ 0x4F3D,0x4A21, - /* Array index: 0x1424 */ 0x4F43,0x6E6C, - /* Array index: 0x1424 */ 0x4F55,0x793C, - /* Array index: 0x1424 */ 0x4F69,0x7825, - /* Array index: 0x1424 */ 0x4F6F,0x653A, - /* Array index: 0x1424 */ 0x4F70,0x5B58, - /* Array index: 0x1424 */ 0x4F73,0x4A22, - /* Array index: 0x1424 */ 0x4F76,0x514D, - /* Array index: 0x1424 */ 0x4F7A,0x6E6D, - /* Array index: 0x1424 */ 0x4F7E,0x6C6B, - /* Array index: 0x1424 */ 0x4F7F,0x5E45, - /* Array index: 0x1424 */ 0x4F81,0x6360, - /* Array index: 0x1424 */ 0x4F83,0x4A49, - /* Array index: 0x1424 */ 0x4F84,0x7269, - /* Array index: 0x1424 */ 0x4F86,0x554E, - /* Array index: 0x1424 */ 0x4F88,0x7636, - /* Array index: 0x1424 */ 0x4F8A,0x4E42, - /* Array index: 0x1424 */ 0x4F8B,0x5647, - /* Array index: 0x1424 */ 0x4F8D,0x6334, - /* Array index: 0x1424 */ 0x4F8F,0x712D, - /* Array index: 0x1424 */ 0x4F91,0x6A62, - /* Array index: 0x1424 */ 0x4F96,0x5742, - /* Array index: 0x1424 */ 0x4F98,0x7327, - /* Array index: 0x1424 */ 0x4F9B,0x4D6A, - /* Array index: 0x1424 */ 0x4F9D,0x6B6E, - /* Array index: 0x1424 */ 0x4FAE,0x5932, - /* Array index: 0x1424 */ 0x4FAF,0x7D25, - /* Array index: 0x1424 */ 0x4FB5,0x7655, - /* Array index: 0x1424 */ 0x4FB6,0x5562, - /* Array index: 0x1424 */ 0x4FBF,0x7835, - /* Array index: 0x1424 */ 0x4FC9,0x676B, - /* Array index: 0x1424 */ 0x4FCA,0x7155, - /* Array index: 0x1424 */ 0x4FCE,0x703B, - /* Array index: 0x1424 */ 0x4FD1,0x6935, - /* Array index: 0x1424 */ 0x4FD3,0x4C49, - /* Array index: 0x1424 */ 0x4FD4,0x7A55, - /* Array index: 0x1424 */ 0x4FD7,0x6154, - /* Array index: 0x1424 */ 0x4FDA,0x5756, - /* Array index: 0x1424 */ 0x4FEE,0x6173, - /* Array index: 0x1424 */ 0x4FEF,0x5C76, - /* Array index: 0x1424 */ 0x4FF1,0x4E7C, - /* Array index: 0x1424 */ 0x4FF3,0x5B44, - /* Array index: 0x1424 */ 0x4FF5,0x7871, - /* Array index: 0x1424 */ 0x4FF8,0x5C64, - /* Array index: 0x1424 */ 0x4FFA,0x656F, - /* Array index: 0x1424 */ 0x5002,0x5C31, - /* Array index: 0x1424 */ 0x5006,0x5556, - /* Array index: 0x1424 */ 0x5009,0x735A, - /* Array index: 0x1424 */ 0x500B,0x4B41, - /* Array index: 0x1424 */ 0x500D,0x5B43, - /* Array index: 0x1424 */ 0x5011,0x597A, - /* Array index: 0x1424 */ 0x5012,0x536E, - /* Array index: 0x1424 */ 0x5016,0x7A38, - /* Array index: 0x1424 */ 0x5019,0x7D26, - /* Array index: 0x1424 */ 0x501A,0x6B6F, - /* Array index: 0x1424 */ 0x501C,0x7426, - /* Array index: 0x1424 */ 0x501E,0x4C4A, - /* Array index: 0x1424 */ 0x501F,0x7328, - /* Array index: 0x1424 */ 0x5021,0x735B, - /* Array index: 0x1424 */ 0x503B,0x6526, - /* Array index: 0x1424 */ 0x5043,0x6567, - /* Array index: 0x1424 */ 0x504F,0x7836, - /* Array index: 0x1424 */ 0x5055,0x7A25, - /* Array index: 0x1424 */ 0x505A,0x712E, - /* Array index: 0x1424 */ 0x505C,0x6F4E, - /* Array index: 0x1424 */ 0x5065,0x4B6D, - /* Array index: 0x1424 */ 0x5080,0x4E53, - /* Array index: 0x1424 */ 0x5085,0x5C77, - /* Array index: 0x1424 */ 0x508D,0x5B28, - /* Array index: 0x1424 */ 0x5091,0x4B78, - /* Array index: 0x1424 */ 0x5098,0x5F21, - /* Array index: 0x1424 */ 0x5099,0x5D61, - /* Array index: 0x1424 */ 0x50AC,0x754A, - /* Array index: 0x1424 */ 0x50AD,0x6936, - /* Array index: 0x1424 */ 0x50B2,0x676C, - /* Array index: 0x1424 */ 0x50B3,0x6E6E, - /* Array index: 0x1424 */ 0x50B5,0x7370, - /* Array index: 0x1424 */ 0x50B7,0x5F3F, - /* Array index: 0x1424 */ 0x50BE,0x4C4B, - /* Array index: 0x1424 */ 0x50C5,0x5041, - /* Array index: 0x1424 */ 0x50C9,0x7452, - /* Array index: 0x1424 */ 0x50CA,0x603A, - /* Array index: 0x1424 */ 0x50CF,0x5F40, - /* Array index: 0x1424 */ 0x50D1,0x4E60, - /* Array index: 0x1424 */ 0x50D5,0x5C52, - /* Array index: 0x1424 */ 0x50D6,0x7D6A, - /* Array index: 0x1424 */ 0x50DA,0x5676, - /* Array index: 0x1424 */ 0x50DE,0x6A4A, - /* Array index: 0x1424 */ 0x50E5,0x6869, - /* Array index: 0x1424 */ 0x50E7,0x632C, - /* Array index: 0x1424 */ 0x50ED,0x7350, - /* Array index: 0x1424 */ 0x50F9,0x4A24, - /* Array index: 0x1424 */ 0x50FB,0x5B78, - /* Array index: 0x1424 */ 0x5104,0x6562, - /* Array index: 0x1424 */ 0x5106,0x4C4C, - /* Array index: 0x1424 */ 0x5109,0x4B7B, - /* Array index: 0x1424 */ 0x5112,0x6A63, - /* Array index: 0x1424 */ 0x511F,0x5F41, - /* Array index: 0x1424 */ 0x5121,0x566D, - /* Array index: 0x1424 */ 0x512A,0x6950, - /* Array index: 0x1424 */ 0x5132,0x6E39, - /* Array index: 0x1424 */ 0x5137,0x5563, - /* Array index: 0x1424 */ 0x513A,0x5153, - /* Array index: 0x1424 */ 0x513C,0x6570, - /* Array index: 0x1424 */ 0x5152,0x642E, - /* Array index: 0x1424 */ 0x515C,0x545F, - /* Array index: 0x1424 */ 0x5162,0x5067, - /* Array index: 0x1424 */ 0x5171,0x4D6C, - /* Array index: 0x1424 */ 0x517C,0x4C42, - /* Array index: 0x1424 */ 0x5180,0x506D, - /* Array index: 0x1424 */ 0x5186,0x6577, - /* Array index: 0x1424 */ 0x518A,0x737C, - /* Array index: 0x1424 */ 0x518D,0x6E22, - /* Array index: 0x1424 */ 0x5192,0x5933, - /* Array index: 0x1424 */ 0x5195,0x5874, - /* Array index: 0x1424 */ 0x5197,0x6937, - /* Array index: 0x1424 */ 0x51A0,0x4E2E, - /* Array index: 0x1424 */ 0x51A5,0x5922, - /* Array index: 0x1424 */ 0x51AA,0x5871, - /* Array index: 0x1424 */ 0x51AC,0x544F, - /* Array index: 0x1424 */ 0x51B6,0x6527, - /* Array index: 0x1424 */ 0x51B7,0x5552, - /* Array index: 0x1424 */ 0x51BD,0x5629, - /* Array index: 0x1424 */ 0x51C4,0x7422, - /* Array index: 0x1424 */ 0x51C6,0x7157, - /* Array index: 0x1424 */ 0x51E1,0x5B6D, - /* Array index: 0x1424 */ 0x51F0,0x7C45, - /* Array index: 0x1424 */ 0x51F1,0x4B42, - /* Array index: 0x1424 */ 0x51FD,0x795E, - /* Array index: 0x1424 */ 0x5200,0x536F, - /* Array index: 0x1424 */ 0x5203,0x6C53, - /* Array index: 0x1424 */ 0x520E,0x597B, - /* Array index: 0x1424 */ 0x5211,0x7A7D, - /* Array index: 0x1424 */ 0x5217,0x562A, - /* Array index: 0x1424 */ 0x521D,0x7478, - /* Array index: 0x1424 */ 0x5224,0x7777, - /* Array index: 0x1424 */ 0x5225,0x5C2C, - /* Array index: 0x1424 */ 0x5229,0x5757, - /* Array index: 0x1424 */ 0x522A,0x5F22, - /* Array index: 0x1424 */ 0x522E,0x4E3E, - /* Array index: 0x1424 */ 0x5230,0x5370, - /* Array index: 0x1424 */ 0x5243,0x746F, - /* Array index: 0x1424 */ 0x5247,0x764E, - /* Array index: 0x1424 */ 0x5254,0x7428, - /* Array index: 0x1424 */ 0x5256,0x5C78, - /* Array index: 0x1424 */ 0x525B,0x4B27, - /* Array index: 0x1424 */ 0x525D,0x5A4E, - /* Array index: 0x1424 */ 0x5261,0x6066, - /* Array index: 0x1424 */ 0x5269,0x6D25, - /* Array index: 0x1424 */ 0x526A,0x6E72, - /* Array index: 0x1424 */ 0x526F,0x5C79, - /* Array index: 0x1424 */ 0x5272,0x795C, - /* Array index: 0x1424 */ 0x5275,0x735C, - /* Array index: 0x1424 */ 0x527D,0x7872, - /* Array index: 0x1424 */ 0x527F,0x7479, - /* Array index: 0x1424 */ 0x5283,0x7C71, - /* Array index: 0x1424 */ 0x528D,0x4B7C, - /* Array index: 0x1424 */ 0x5291,0x7025, - /* Array index: 0x1424 */ 0x5292,0x4B7D, - /* Array index: 0x1424 */ 0x529B,0x5574, - /* Array index: 0x1424 */ 0x529F,0x4D6D, - /* Array index: 0x1424 */ 0x52A0,0x4A25, - /* Array index: 0x1424 */ 0x52A3,0x562B, - /* Array index: 0x1424 */ 0x52A4,0x5042, - /* Array index: 0x1424 */ 0x52BE,0x7A36, - /* Array index: 0x1424 */ 0x52C1,0x4C4D, - /* Array index: 0x1424 */ 0x52C3,0x5A7A, - /* Array index: 0x1424 */ 0x52C5,0x764F, - /* Array index: 0x1424 */ 0x52C7,0x6938, - /* Array index: 0x1424 */ 0x52C9,0x5875, - /* Array index: 0x1424 */ 0x52CD,0x4C4E, - /* Array index: 0x1424 */ 0x52D2,0x574D, - /* Array index: 0x1424 */ 0x52F3,0x7D33, - /* Array index: 0x1424 */ 0x52F5,0x5564, - /* Array index: 0x1424 */ 0x52F8,0x4F68, - /* Array index: 0x1424 */ 0x52FA,0x6D43, - /* Array index: 0x1424 */ 0x52FB,0x5032, - /* Array index: 0x1424 */ 0x52FE,0x4E7E, - /* Array index: 0x1424 */ 0x52FF,0x5A28, - /* Array index: 0x1424 */ 0x5305,0x7850, - /* Array index: 0x1424 */ 0x5308,0x7D56, - /* Array index: 0x1424 */ 0x530D,0x7851, - /* Array index: 0x1424 */ 0x530F,0x7852, - /* Array index: 0x1424 */ 0x5310,0x5C53, - /* Array index: 0x1424 */ 0x5320,0x6D5D, - /* Array index: 0x1424 */ 0x5321,0x4E44, - /* Array index: 0x1424 */ 0x5323,0x4B21, - /* Array index: 0x1424 */ 0x532A,0x5D63, - /* Array index: 0x1424 */ 0x532F,0x7C5D, - /* Array index: 0x1424 */ 0x5339,0x792F, - /* Array index: 0x1424 */ 0x534D,0x5833, - /* Array index: 0x1424 */ 0x5357,0x5175, - /* Array index: 0x1424 */ 0x535A,0x5A4F, - /* Array index: 0x1424 */ 0x535C,0x5C54, - /* Array index: 0x1424 */ 0x535E,0x5C26, - /* Array index: 0x1424 */ 0x5360,0x6F3F, - /* Array index: 0x1424 */ 0x5366,0x4E4F, - /* Array index: 0x1424 */ 0x5368,0x6059, - /* Array index: 0x1424 */ 0x537D,0x716D, - /* Array index: 0x1424 */ 0x537F,0x4C4F, - /* Array index: 0x1424 */ 0x5384,0x6478, - /* Array index: 0x1424 */ 0x5393,0x646D, - /* Array index: 0x1424 */ 0x5398,0x5758, - /* Array index: 0x1424 */ 0x539A,0x7D27, - /* Array index: 0x1424 */ 0x539F,0x6A2B, - /* Array index: 0x1424 */ 0x53A0,0x7632, - /* Array index: 0x1424 */ 0x53A5,0x4F70, - /* Array index: 0x1424 */ 0x53A6,0x793D, - /* Array index: 0x1424 */ 0x53AD,0x6674, - /* Array index: 0x1424 */ 0x53BB,0x4B5B, - /* Array index: 0x1424 */ 0x53C3,0x7351, - /* Array index: 0x1424 */ 0x53D4,0x6252, - /* Array index: 0x1424 */ 0x53D6,0x7622, - /* Array index: 0x1424 */ 0x53D7,0x6174, - /* Array index: 0x1424 */ 0x53DB,0x5A64, - /* Array index: 0x1424 */ 0x53F8,0x5E49, - /* Array index: 0x1424 */ 0x5403,0x7D5E, - /* Array index: 0x1424 */ 0x5404,0x4A40, - /* Array index: 0x1424 */ 0x541B,0x4F56, - /* Array index: 0x1424 */ 0x541D,0x5770, - /* Array index: 0x1424 */ 0x541F,0x6B61, - /* Array index: 0x1424 */ 0x5420,0x7845, - /* Array index: 0x1424 */ 0x5426,0x5C7A, - /* Array index: 0x1424 */ 0x5429,0x5D43, - /* Array index: 0x1424 */ 0x542B,0x795F, - /* Array index: 0x1424 */ 0x5433,0x676F, - /* Array index: 0x1424 */ 0x5442,0x5565, - /* Array index: 0x1424 */ 0x5448,0x6F50, - /* Array index: 0x1424 */ 0x544A,0x4D31, - /* Array index: 0x1424 */ 0x5451,0x7722, - /* Array index: 0x1424 */ 0x5468,0x7132, - /* Array index: 0x1424 */ 0x546A,0x7131, - /* Array index: 0x1424 */ 0x5471,0x4D32, - /* Array index: 0x1424 */ 0x5473,0x5A2B, - /* Array index: 0x1424 */ 0x5475,0x4A27, - /* Array index: 0x1424 */ 0x5480,0x6E3A, - /* Array index: 0x1424 */ 0x5486,0x7853, - /* Array index: 0x1424 */ 0x548C,0x7B7A, - /* Array index: 0x1424 */ 0x548E,0x4F24, - /* Array index: 0x1424 */ 0x5490,0x5C7B, - /* Array index: 0x1424 */ 0x54A4,0x7663, - /* Array index: 0x1424 */ 0x54A8,0x6D2A, - /* Array index: 0x1424 */ 0x54AB,0x7221, - /* Array index: 0x1424 */ 0x54AC,0x4E61, - /* Array index: 0x1424 */ 0x54B3,0x7A26, - /* Array index: 0x1424 */ 0x54B8,0x7960, - /* Array index: 0x1424 */ 0x54BD,0x6C56, - /* Array index: 0x1424 */ 0x54C0,0x646E, - /* Array index: 0x1424 */ 0x54C1,0x7921, - /* Array index: 0x1424 */ 0x54C4,0x7B6F, - /* Array index: 0x1424 */ 0x54C8,0x796B, - /* Array index: 0x1424 */ 0x54C9,0x6E23, - /* Array index: 0x1424 */ 0x54E1,0x6A2C, - /* Array index: 0x1424 */ 0x54E5,0x4A28, - /* Array index: 0x1424 */ 0x54E8,0x747A, - /* Array index: 0x1424 */ 0x54ED,0x4D56, - /* Array index: 0x1424 */ 0x54EE,0x7C76, - /* Array index: 0x1424 */ 0x54F2,0x7449, - /* Array index: 0x1424 */ 0x54FA,0x7854, - /* Array index: 0x1424 */ 0x5504,0x7826, - /* Array index: 0x1424 */ 0x5506,0x5E4A, - /* Array index: 0x1424 */ 0x5507,0x7246, - /* Array index: 0x1424 */ 0x550E,0x575A, - /* Array index: 0x1424 */ 0x5510,0x5350, - /* Array index: 0x1424 */ 0x551C,0x5845, - /* Array index: 0x1424 */ 0x552F,0x6A66, - /* Array index: 0x1424 */ 0x5531,0x735D, - /* Array index: 0x1424 */ 0x5535,0x645A, - /* Array index: 0x1424 */ 0x553E,0x7664, - /* Array index: 0x1424 */ 0x5544,0x7672, - /* Array index: 0x1424 */ 0x5546,0x5F42, - /* Array index: 0x1424 */ 0x554F,0x597D, - /* Array index: 0x1424 */ 0x5553,0x4C76, - /* Array index: 0x1424 */ 0x5556,0x533A, - /* Array index: 0x1424 */ 0x555E,0x642F, - /* Array index: 0x1424 */ 0x5563,0x7961, - /* Array index: 0x1424 */ 0x557C,0x7026, - /* Array index: 0x1424 */ 0x5580,0x4B53, - /* Array index: 0x1424 */ 0x5584,0x603C, - /* Array index: 0x1424 */ 0x55C5,0x7D2B, - /* Array index: 0x1424 */ 0x55C7,0x5F60, - /* Array index: 0x1424 */ 0x55D4,0x7247, - /* Array index: 0x1424 */ 0x55DA,0x6770, - /* Array index: 0x1424 */ 0x55DC,0x506E, - /* Array index: 0x1424 */ 0x55DF,0x732A, - /* Array index: 0x1424 */ 0x55E3,0x5E4B, - /* Array index: 0x1424 */ 0x55E4,0x7638, - /* Array index: 0x1424 */ 0x55FD,0x6175, - /* Array index: 0x1424 */ 0x55FE,0x7133, - /* Array index: 0x1424 */ 0x5606,0x7723, - /* Array index: 0x1424 */ 0x5609,0x4A29, - /* Array index: 0x1424 */ 0x5614,0x4F25, - /* Array index: 0x1424 */ 0x5617,0x5F44, - /* Array index: 0x1424 */ 0x562F,0x6130, - /* Array index: 0x1424 */ 0x5632,0x703F, - /* Array index: 0x1424 */ 0x5634,0x7624, - /* Array index: 0x1424 */ 0x5636,0x6336, - /* Array index: 0x1424 */ 0x5653,0x7A46, - /* Array index: 0x1424 */ 0x5668,0x506F, - /* Array index: 0x1424 */ 0x566B,0x7D6D, - /* Array index: 0x1424 */ 0x5674,0x5D44, - /* Array index: 0x1424 */ 0x5686,0x7C77, - /* Array index: 0x1424 */ 0x56A5,0x663F, - /* Array index: 0x1424 */ 0x56AC,0x5E2D, - /* Array index: 0x1424 */ 0x56AE,0x7A3F, - /* Array index: 0x1424 */ 0x56B4,0x6571, - /* Array index: 0x1424 */ 0x56BC,0x6D44, - /* Array index: 0x1424 */ 0x56CA,0x5225, - /* Array index: 0x1424 */ 0x56CD,0x7D6E, - /* Array index: 0x1424 */ 0x56D1,0x7536, - /* Array index: 0x1424 */ 0x56DA,0x6176, - /* Array index: 0x1424 */ 0x56DB,0x5E4C, - /* Array index: 0x1424 */ 0x56DE,0x7C5E, - /* Array index: 0x1424 */ 0x56E0,0x6C57, - /* Array index: 0x1424 */ 0x56F0,0x4D5D, - /* Array index: 0x1424 */ 0x56F9,0x5637, - /* Array index: 0x1424 */ 0x56FA,0x4D33, - /* Array index: 0x1424 */ 0x5703,0x7855, - /* Array index: 0x1424 */ 0x5704,0x6558, - /* Array index: 0x1424 */ 0x5708,0x4F6A, - /* Array index: 0x1424 */ 0x570B,0x4F50, - /* Array index: 0x1424 */ 0x570D,0x6A4C, - /* Array index: 0x1424 */ 0x5712,0x6A2E, - /* Array index: 0x1424 */ 0x5713,0x6A2D, - /* Array index: 0x1424 */ 0x5716,0x5371, - /* Array index: 0x1424 */ 0x5718,0x5325, - /* Array index: 0x1424 */ 0x571F,0x774F, - /* Array index: 0x1424 */ 0x5728,0x6E24, - /* Array index: 0x1424 */ 0x572D,0x5024, - /* Array index: 0x1424 */ 0x5730,0x7222, - /* Array index: 0x1424 */ 0x573B,0x5070, - /* Array index: 0x1424 */ 0x5740,0x7223, - /* Array index: 0x1424 */ 0x5742,0x7778, - /* Array index: 0x1424 */ 0x5747,0x5033, - /* Array index: 0x1424 */ 0x574A,0x5B29, - /* Array index: 0x1424 */ 0x5761,0x7767, - /* Array index: 0x1424 */ 0x5764,0x4D5E, - /* Array index: 0x1424 */ 0x5766,0x7724, - /* Array index: 0x1424 */ 0x576A,0x7840, - /* Array index: 0x1424 */ 0x576E,0x535D, - /* Array index: 0x1424 */ 0x5770,0x4C50, - /* Array index: 0x1424 */ 0x5775,0x4F26, - /* Array index: 0x1424 */ 0x577C,0x7673, - /* Array index: 0x1424 */ 0x5782,0x6177, - /* Array index: 0x1424 */ 0x5788,0x535C, - /* Array index: 0x1424 */ 0x578B,0x7A7E, - /* Array index: 0x1424 */ 0x5793,0x7A27, - /* Array index: 0x1424 */ 0x57A0,0x6B59, - /* Array index: 0x1424 */ 0x57A2,0x4F27, - /* Array index: 0x1424 */ 0x57A3,0x6A2F, - /* Array index: 0x1424 */ 0x57C3,0x646F, - /* Array index: 0x1424 */ 0x57C7,0x6939, - /* Array index: 0x1424 */ 0x57C8,0x7158, - /* Array index: 0x1424 */ 0x57CB,0x5858, - /* Array index: 0x1424 */ 0x57CE,0x6072, - /* Array index: 0x1424 */ 0x57DF,0x6634, - /* Array index: 0x1424 */ 0x57E0,0x5C7C, - /* Array index: 0x1424 */ 0x57F0,0x7371, - /* Array index: 0x1424 */ 0x57F4,0x6350, - /* Array index: 0x1424 */ 0x57F7,0x727B, - /* Array index: 0x1424 */ 0x57F9,0x5B46, - /* Array index: 0x1424 */ 0x57FA,0x5071, - /* Array index: 0x1424 */ 0x57FC,0x5072, - /* Array index: 0x1424 */ 0x5800,0x4F5C, - /* Array index: 0x1424 */ 0x5802,0x5351, - /* Array index: 0x1424 */ 0x581E,0x745C, - /* Array index: 0x1424 */ 0x5821,0x5C42, - /* Array index: 0x1424 */ 0x5824,0x7027, - /* Array index: 0x1424 */ 0x5827,0x6640, - /* Array index: 0x1424 */ 0x582A,0x4A6D, - /* Array index: 0x1424 */ 0x583A,0x4C77, - /* Array index: 0x1424 */ 0x584A,0x4E54, - /* Array index: 0x1424 */ 0x584B,0x672B, - /* Array index: 0x1424 */ 0x584F,0x4B43, - /* Array index: 0x1424 */ 0x5851,0x6131, - /* Array index: 0x1424 */ 0x5854,0x7732, - /* Array index: 0x1424 */ 0x5857,0x5373, - /* Array index: 0x1424 */ 0x5858,0x5352, - /* Array index: 0x1424 */ 0x585A,0x7540, - /* Array index: 0x1424 */ 0x585E,0x5F5D, - /* Array index: 0x1424 */ 0x5861,0x6E73, - /* Array index: 0x1424 */ 0x5862,0x6771, - /* Array index: 0x1424 */ 0x5864,0x7D34, - /* Array index: 0x1424 */ 0x5875,0x7248, - /* Array index: 0x1424 */ 0x5879,0x7352, - /* Array index: 0x1424 */ 0x587C,0x6E74, - /* Array index: 0x1424 */ 0x587E,0x6253, - /* Array index: 0x1424 */ 0x5883,0x4C51, - /* Array index: 0x1424 */ 0x5885,0x5F6A, - /* Array index: 0x1424 */ 0x5889,0x693A, - /* Array index: 0x1424 */ 0x5893,0x5957, - /* Array index: 0x1424 */ 0x589C,0x754D, - /* Array index: 0x1424 */ 0x589E,0x7172, - /* Array index: 0x1424 */ 0x589F,0x7A47, - /* Array index: 0x1424 */ 0x58A8,0x5978, - /* Array index: 0x1424 */ 0x58A9,0x5442, - /* Array index: 0x1424 */ 0x58AE,0x7665, - /* Array index: 0x1424 */ 0x58B3,0x5D45, - /* Array index: 0x1424 */ 0x58BA,0x6772, - /* Array index: 0x1424 */ 0x58BB,0x6D5F, - /* Array index: 0x1424 */ 0x58BE,0x4A4B, - /* Array index: 0x1424 */ 0x58C1,0x5B7A, - /* Array index: 0x1424 */ 0x58C5,0x6835, - /* Array index: 0x1424 */ 0x58C7,0x5326, - /* Array index: 0x1424 */ 0x58CE,0x7D35, - /* Array index: 0x1424 */ 0x58D1,0x7949, - /* Array index: 0x1424 */ 0x58D3,0x6462, - /* Array index: 0x1424 */ 0x58D5,0x7B3D, - /* Array index: 0x1424 */ 0x58D8,0x5724, - /* Array index: 0x1424 */ 0x58D9,0x4E45, - /* Array index: 0x1424 */ 0x58DE,0x4E55, - /* Array index: 0x1424 */ 0x58DF,0x5666, - /* Array index: 0x1424 */ 0x58E4,0x653D, - /* Array index: 0x1424 */ 0x58EB,0x5E4D, - /* Array index: 0x1424 */ 0x58EC,0x6C73, - /* Array index: 0x1424 */ 0x58EF,0x6D60, - /* Array index: 0x1424 */ 0x590F,0x793E, - /* Array index: 0x1424 */ 0x5922,0x5953, - /* Array index: 0x1424 */ 0x5931,0x6377, - /* Array index: 0x1424 */ 0x5937,0x6C28, - /* Array index: 0x1424 */ 0x593E,0x7A71, - /* Array index: 0x1424 */ 0x5944,0x6572, - /* Array index: 0x1424 */ 0x595A,0x7A28, - /* Array index: 0x1424 */ 0x5960,0x6E75, - /* Array index: 0x1424 */ 0x5962,0x5E4E, - /* Array index: 0x1424 */ 0x5967,0x6773, - /* Array index: 0x1424 */ 0x5973,0x5233, - /* Array index: 0x1424 */ 0x5974,0x523F, - /* Array index: 0x1424 */ 0x5978,0x4A4C, - /* Array index: 0x1424 */ 0x597D,0x7B3F, - /* Array index: 0x1424 */ 0x598A,0x6C74, - /* Array index: 0x1424 */ 0x5993,0x5075, - /* Array index: 0x1424 */ 0x5996,0x686D, - /* Array index: 0x1424 */ 0x5997,0x5052, - /* Array index: 0x1424 */ 0x5999,0x5958, - /* Array index: 0x1424 */ 0x59A5,0x7666, - /* Array index: 0x1424 */ 0x59A8,0x5B2A, - /* Array index: 0x1424 */ 0x59AC,0x7760, - /* Array index: 0x1424 */ 0x59B9,0x5859, - /* Array index: 0x1424 */ 0x59BB,0x7423, - /* Array index: 0x1424 */ 0x59BE,0x745D, - /* Array index: 0x1424 */ 0x59C3,0x6F51, - /* Array index: 0x1424 */ 0x59C6,0x5935, - /* Array index: 0x1424 */ 0x59C9,0x6D2B, - /* Array index: 0x1424 */ 0x59CB,0x6337, - /* Array index: 0x1424 */ 0x59E6,0x4A4D, - /* Array index: 0x1424 */ 0x59E8,0x6C29, - /* Array index: 0x1424 */ 0x59EA,0x726B, - /* Array index: 0x1424 */ 0x59EC,0x7D6F, - /* Array index: 0x1424 */ 0x59EE,0x7973, - /* Array index: 0x1424 */ 0x59F8,0x6641, - /* Array index: 0x1424 */ 0x59FB,0x6C58, - /* Array index: 0x1424 */ 0x59FF,0x6D2C, - /* Array index: 0x1424 */ 0x5A01,0x6A4E, - /* Array index: 0x1424 */ 0x5A03,0x685F, - /* Array index: 0x1424 */ 0x5A11,0x5E4F, - /* Array index: 0x1424 */ 0x5A18,0x5226, - /* Array index: 0x1424 */ 0x5A1B,0x6774, - /* Array index: 0x1424 */ 0x5A1C,0x5156, - /* Array index: 0x1424 */ 0x5A1F,0x6642, - /* Array index: 0x1424 */ 0x5A20,0x6363, - /* Array index: 0x1424 */ 0x5A25,0x6430, - /* Array index: 0x1424 */ 0x5A29,0x5834, - /* Array index: 0x1424 */ 0x5A36,0x7625, - /* Array index: 0x1424 */ 0x5A3C,0x735E, - /* Array index: 0x1424 */ 0x5A41,0x5725, - /* Array index: 0x1424 */ 0x5A46,0x7768, - /* Array index: 0x1424 */ 0x5A49,0x6846, - /* Array index: 0x1424 */ 0x5A5A,0x7B66, - /* Array index: 0x1424 */ 0x5A62,0x5D66, - /* Array index: 0x1424 */ 0x5A66,0x5C7E, - /* Array index: 0x1424 */ 0x5A92,0x585A, - /* Array index: 0x1424 */ 0x5A9A,0x5A2C, - /* Array index: 0x1424 */ 0x5A9B,0x6A30, - /* Array index: 0x1424 */ 0x5AA4,0x6338, - /* Array index: 0x1424 */ 0x5AC1,0x4A2A, - /* Array index: 0x1424 */ 0x5AC2,0x6179, - /* Array index: 0x1424 */ 0x5AC4,0x6A31, - /* Array index: 0x1424 */ 0x5AC9,0x726C, - /* Array index: 0x1424 */ 0x5ACC,0x7A6E, - /* Array index: 0x1424 */ 0x5AE1,0x6E55, - /* Array index: 0x1424 */ 0x5AE6,0x7974, - /* Array index: 0x1424 */ 0x5AE9,0x526C, - /* Array index: 0x1424 */ 0x5B05,0x7B7B, - /* Array index: 0x1424 */ 0x5B09,0x7D70, - /* Array index: 0x1424 */ 0x5B0B,0x603D, - /* Array index: 0x1424 */ 0x5B0C,0x4E63, - /* Array index: 0x1424 */ 0x5B16,0x7846, - /* Array index: 0x1424 */ 0x5B2A,0x5E2E, - /* Array index: 0x1424 */ 0x5B40,0x5F45, - /* Array index: 0x1424 */ 0x5B43,0x653E, - /* Array index: 0x1424 */ 0x5B50,0x6D2D, - /* Array index: 0x1424 */ 0x5B51,0x7A6A, - /* Array index: 0x1424 */ 0x5B63,0x4C79, - /* Array index: 0x1424 */ 0x5B64,0x4D35, - /* Array index: 0x1424 */ 0x5B69,0x7A29, - /* Array index: 0x1424 */ 0x5B6B,0x615D, - /* Array index: 0x1424 */ 0x5B70,0x6255, - /* Array index: 0x1424 */ 0x5B71,0x6D4F, - /* Array index: 0x1424 */ 0x5B75,0x5D22, - /* Array index: 0x1424 */ 0x5B78,0x794A, - /* Array index: 0x1424 */ 0x5B7A,0x6A68, - /* Array index: 0x1424 */ 0x5B7C,0x656D, - /* Array index: 0x1424 */ 0x5B8F,0x4E5B, - /* Array index: 0x1424 */ 0x5BAC,0x6074, - /* Array index: 0x1424 */ 0x5BAE,0x4F60, - /* Array index: 0x1424 */ 0x5BB0,0x6E25, - /* Array index: 0x1424 */ 0x5BCC,0x5D23, - /* Array index: 0x1424 */ 0x5BD7,0x523C, - /* Array index: 0x1424 */ 0x5BF5,0x7541, - /* Array index: 0x1424 */ 0x5BF6,0x5C44, - /* Array index: 0x1424 */ 0x5BF8,0x753B, - /* Array index: 0x1424 */ 0x5BFA,0x5E51, - /* Array index: 0x1424 */ 0x5C01,0x5C66, - /* Array index: 0x1424 */ 0x5C04,0x5E52, - /* Array index: 0x1424 */ 0x5C16,0x7453, - /* Array index: 0x1424 */ 0x5C19,0x5F46, - /* Array index: 0x1424 */ 0x5C24,0x6956, - /* Array index: 0x1424 */ 0x5C28,0x5B2B, - /* Array index: 0x1424 */ 0x5C31,0x7626, - /* Array index: 0x1424 */ 0x5C45,0x4B5C, - /* Array index: 0x1424 */ 0x5C46,0x4C7A, - /* Array index: 0x1424 */ 0x5C48,0x4F5D, - /* Array index: 0x1424 */ 0x5C4B,0x6829, - /* Array index: 0x1424 */ 0x5C4D,0x633B, - /* Array index: 0x1424 */ 0x5C4E,0x633A, - /* Array index: 0x1424 */ 0x5C51,0x605A, - /* Array index: 0x1424 */ 0x5C55,0x6E77, - /* Array index: 0x1424 */ 0x5C5B,0x5C33, - /* Array index: 0x1424 */ 0x5C60,0x5375, - /* Array index: 0x1424 */ 0x5C62,0x5726, - /* Array index: 0x1424 */ 0x5C64,0x7635, - /* Array index: 0x1424 */ 0x5C65,0x575B, - /* Array index: 0x1424 */ 0x5C6C,0x6155, - /* Array index: 0x1424 */ 0x5C6F,0x546A, - /* Array index: 0x1424 */ 0x5C71,0x5F23, - /* Array index: 0x1424 */ 0x5C79,0x7D5F, - /* Array index: 0x1424 */ 0x5C90,0x5077, - /* Array index: 0x1424 */ 0x5C91,0x6D54, - /* Array index: 0x1424 */ 0x5CA1,0x4B2A, - /* Array index: 0x1424 */ 0x5CA9,0x645B, - /* Array index: 0x1424 */ 0x5CAB,0x617B, - /* Array index: 0x1424 */ 0x5CAC,0x4B22, - /* Array index: 0x1424 */ 0x5CB1,0x5360, - /* Array index: 0x1424 */ 0x5CB3,0x643F, - /* Array index: 0x1424 */ 0x5CB5,0x7B40, - /* Array index: 0x1424 */ 0x5CB7,0x5A3E, - /* Array index: 0x1424 */ 0x5CB8,0x644D, - /* Array index: 0x1424 */ 0x5CBA,0x5639, - /* Array index: 0x1424 */ 0x5CBE,0x6F40, - /* Array index: 0x1424 */ 0x5CC0,0x617C, - /* Array index: 0x1424 */ 0x5CD9,0x7639, - /* Array index: 0x1424 */ 0x5CE0,0x5F47, - /* Array index: 0x1424 */ 0x5CE8,0x6431, - /* Array index: 0x1424 */ 0x5CEF,0x5C67, - /* Array index: 0x1424 */ 0x5CF0,0x5C68, - /* Array index: 0x1424 */ 0x5CF4,0x7A56, - /* Array index: 0x1424 */ 0x5CF6,0x5376, - /* Array index: 0x1424 */ 0x5CFB,0x715A, - /* Array index: 0x1424 */ 0x5CFD,0x7A72, - /* Array index: 0x1424 */ 0x5D07,0x627D, - /* Array index: 0x1424 */ 0x5D0D,0x554F, - /* Array index: 0x1424 */ 0x5D0E,0x5078, - /* Array index: 0x1424 */ 0x5D11,0x4D5F, - /* Array index: 0x1424 */ 0x5D14,0x754B, - /* Array index: 0x1424 */ 0x5D16,0x6470, - /* Array index: 0x1424 */ 0x5D17,0x4B2B, - /* Array index: 0x1424 */ 0x5D19,0x5744, - /* Array index: 0x1424 */ 0x5D27,0x627E, - /* Array index: 0x1424 */ 0x5D29,0x5D5A, - /* Array index: 0x1424 */ 0x5D4B,0x5A2E, - /* Array index: 0x1424 */ 0x5D4C,0x4A6E, - /* Array index: 0x1424 */ 0x5D50,0x5539, - /* Array index: 0x1424 */ 0x5D69,0x6321, - /* Array index: 0x1424 */ 0x5D6C,0x6863, - /* Array index: 0x1424 */ 0x5D6F,0x732B, - /* Array index: 0x1424 */ 0x5D87,0x4F29, - /* Array index: 0x1424 */ 0x5D8B,0x5377, - /* Array index: 0x1424 */ 0x5D9D,0x5471, - /* Array index: 0x1424 */ 0x5DA0,0x4E64, - /* Array index: 0x1424 */ 0x5DA2,0x6872, - /* Array index: 0x1424 */ 0x5DAA,0x6575, - /* Array index: 0x1424 */ 0x5DB8,0x672E, - /* Array index: 0x1424 */ 0x5DBA,0x563A, - /* Array index: 0x1424 */ 0x5DBC,0x5F6C, - /* Array index: 0x1424 */ 0x5DBD,0x6440, - /* Array index: 0x1424 */ 0x5DCD,0x6864, - /* Array index: 0x1424 */ 0x5DD2,0x5835, - /* Array index: 0x1424 */ 0x5DD6,0x645C, - /* Array index: 0x1424 */ 0x5DDD,0x7439, - /* Array index: 0x1424 */ 0x5DDE,0x7136, - /* Array index: 0x1424 */ 0x5DEB,0x5963, - /* Array index: 0x1424 */ 0x5DEE,0x732C, - /* Array index: 0x1424 */ 0x5DF7,0x7975, - /* Array index: 0x1424 */ 0x5DFD,0x615E, - /* Array index: 0x1424 */ 0x5DFE,0x4B6E, - /* Array index: 0x1424 */ 0x5E02,0x633C, - /* Array index: 0x1424 */ 0x5E03,0x7856, - /* Array index: 0x1424 */ 0x5E06,0x5B6E, - /* Array index: 0x1424 */ 0x5E0C,0x7D71, - /* Array index: 0x1424 */ 0x5E11,0x7736, - /* Array index: 0x1424 */ 0x5E16,0x745E, - /* Array index: 0x1424 */ 0x5E19,0x726D, - /* Array index: 0x1424 */ 0x5E1B,0x5B59, - /* Array index: 0x1424 */ 0x5E1D,0x7028, - /* Array index: 0x1424 */ 0x5E25,0x617D, - /* Array index: 0x1424 */ 0x5E2B,0x5E54, - /* Array index: 0x1424 */ 0x5E2D,0x602C, - /* Array index: 0x1424 */ 0x5E33,0x6D63, - /* Array index: 0x1424 */ 0x5E36,0x5361, - /* Array index: 0x1424 */ 0x5E38,0x5F48, - /* Array index: 0x1424 */ 0x5E3D,0x5936, - /* Array index: 0x1424 */ 0x5E3F,0x7D2C, - /* Array index: 0x1424 */ 0x5E40,0x6F53, - /* Array index: 0x1424 */ 0x5E44,0x6441, - /* Array index: 0x1424 */ 0x5E45,0x786B, - /* Array index: 0x1424 */ 0x5E47,0x5B2C, - /* Array index: 0x1424 */ 0x5E4C,0x7C46, - /* Array index: 0x1424 */ 0x5E55,0x582D, - /* Array index: 0x1424 */ 0x5E84,0x6D64, - /* Array index: 0x1424 */ 0x5E87,0x5D67, - /* Array index: 0x1424 */ 0x5E8A,0x5F49, - /* Array index: 0x1424 */ 0x5E8F,0x5F6D, - /* Array index: 0x1424 */ 0x5E95,0x6E3C, - /* Array index: 0x1424 */ 0x5E97,0x6F41, - /* Array index: 0x1424 */ 0x5E9A,0x4C52, - /* Array index: 0x1424 */ 0x5E9C,0x5D24, - /* Array index: 0x1424 */ 0x5EA0,0x5F4A, - /* Array index: 0x1424 */ 0x5EA6,0x5378, - /* Array index: 0x1424 */ 0x5EA7,0x7128, - /* Array index: 0x1424 */ 0x5EAB,0x4D37, - /* Array index: 0x1424 */ 0x5EAD,0x6F54, - /* Array index: 0x1424 */ 0x5EBE,0x6A6C, - /* Array index: 0x1424 */ 0x5EC2,0x5F4B, - /* Array index: 0x1424 */ 0x5ED0,0x4F2A, - /* Array index: 0x1424 */ 0x5ED3,0x4E29, - /* Array index: 0x1424 */ 0x5ED6,0x5678, - /* Array index: 0x1424 */ 0x5EDA,0x7137, - /* Array index: 0x1424 */ 0x5EDB,0x6E78, - /* Array index: 0x1424 */ 0x5EEC,0x5566, - /* Array index: 0x1424 */ 0x5EF3,0x7466, - /* Array index: 0x1424 */ 0x5EF6,0x6645, - /* Array index: 0x1424 */ 0x5EF7,0x6F55, - /* Array index: 0x1424 */ 0x5EFA,0x4B6F, - /* Array index: 0x1424 */ 0x5EFB,0x7C5F, - /* Array index: 0x1424 */ 0x5F01,0x5C27, - /* Array index: 0x1424 */ 0x5F04,0x5667, - /* Array index: 0x1424 */ 0x5F0A,0x7849, - /* Array index: 0x1424 */ 0x5F0F,0x6352, - /* Array index: 0x1424 */ 0x5F1B,0x6C2C, - /* Array index: 0x1424 */ 0x5F1F,0x7029, - /* Array index: 0x1424 */ 0x5F26,0x7A57, - /* Array index: 0x1424 */ 0x5F27,0x7B41, - /* Array index: 0x1424 */ 0x5F29,0x5240, - /* Array index: 0x1424 */ 0x5F31,0x6530, - /* Array index: 0x1424 */ 0x5F35,0x6D65, - /* Array index: 0x1424 */ 0x5F3A,0x4B2D, - /* Array index: 0x1424 */ 0x5F3C,0x7930, - /* Array index: 0x1424 */ 0x5F48,0x7725, - /* Array index: 0x1424 */ 0x5F4A,0x4B2E, - /* Array index: 0x1424 */ 0x5F4C,0x5A2F, - /* Array index: 0x1424 */ 0x5F4E,0x5836, - /* Array index: 0x1424 */ 0x5F56,0x5327, - /* Array index: 0x1424 */ 0x5F57,0x7B32, - /* Array index: 0x1424 */ 0x5F59,0x7D44, - /* Array index: 0x1424 */ 0x5F5B,0x6C2D, - /* Array index: 0x1424 */ 0x5F62,0x7B21, - /* Array index: 0x1424 */ 0x5F77,0x5B2D, - /* Array index: 0x1424 */ 0x5F79,0x6635, - /* Array index: 0x1424 */ 0x5F7C,0x7928, - /* Array index: 0x1424 */ 0x5F85,0x5362, - /* Array index: 0x1424 */ 0x5F87,0x625F, - /* Array index: 0x1424 */ 0x5F9E,0x7074, - /* Array index: 0x1424 */ 0x5FA0,0x5550, - /* Array index: 0x1424 */ 0x5FA1,0x6559, - /* Array index: 0x1424 */ 0x5FAE,0x5A30, - /* Array index: 0x1424 */ 0x5FB5,0x7323, - /* Array index: 0x1424 */ 0x5FB7,0x536C, - /* Array index: 0x1424 */ 0x5FB9,0x744B, - /* Array index: 0x1424 */ 0x5FBD,0x7D45, - /* Array index: 0x1424 */ 0x5FC3,0x637D, - /* Array index: 0x1424 */ 0x5FC5,0x7931, - /* Array index: 0x1424 */ 0x5FCC,0x507B, - /* Array index: 0x1424 */ 0x5FCD,0x6C5B, - /* Array index: 0x1424 */ 0x5FE0,0x7577, - /* Array index: 0x1424 */ 0x5FEB,0x7661, - /* Array index: 0x1424 */ 0x5FF5,0x5237, - /* Array index: 0x1424 */ 0x5FFD,0x7B6C, - /* Array index: 0x1424 */ 0x5FFF,0x5D48, - /* Array index: 0x1424 */ 0x600F,0x6468, - /* Array index: 0x1424 */ 0x6012,0x5241, - /* Array index: 0x1424 */ 0x6016,0x7857, - /* Array index: 0x1424 */ 0x601C,0x563B, - /* Array index: 0x1424 */ 0x601D,0x5E56, - /* Array index: 0x1424 */ 0x6020,0x773D, - /* Array index: 0x1424 */ 0x6021,0x6C2E, - /* Array index: 0x1424 */ 0x6025,0x5061, - /* Array index: 0x1424 */ 0x6027,0x6075, - /* Array index: 0x1424 */ 0x6028,0x6A33, - /* Array index: 0x1424 */ 0x602A,0x4E56, - /* Array index: 0x1424 */ 0x602F,0x4C25, - /* Array index: 0x1424 */ 0x604D,0x7C48, - /* Array index: 0x1424 */ 0x6050,0x4D70, - /* Array index: 0x1424 */ 0x6052,0x7976, - /* Array index: 0x1424 */ 0x6055,0x5F70, - /* Array index: 0x1424 */ 0x6059,0x653F, - /* Array index: 0x1424 */ 0x605D,0x4E3F, - /* Array index: 0x1424 */ 0x6085,0x666D, - /* Array index: 0x1424 */ 0x6089,0x637A, - /* Array index: 0x1424 */ 0x608C,0x702A, - /* Array index: 0x1424 */ 0x608D,0x7950, - /* Array index: 0x1424 */ 0x6094,0x7C62, - /* Array index: 0x1424 */ 0x6096,0x7827, - /* Array index: 0x1424 */ 0x609A,0x6165, - /* Array index: 0x1424 */ 0x609B,0x6E79, - /* Array index: 0x1424 */ 0x609F,0x6776, - /* Array index: 0x1424 */ 0x60A0,0x6A6D, - /* Array index: 0x1424 */ 0x60A3,0x7C34, - /* Array index: 0x1424 */ 0x60A4,0x7542, - /* Array index: 0x1424 */ 0x60A7,0x575C, - /* Array index: 0x1424 */ 0x60BC,0x537A, - /* Array index: 0x1424 */ 0x60BD,0x7424, - /* Array index: 0x1424 */ 0x60C5,0x6F57, - /* Array index: 0x1424 */ 0x60C7,0x5443, - /* Array index: 0x1424 */ 0x60D1,0x7B63, - /* Array index: 0x1424 */ 0x60DA,0x7B6D, - /* Array index: 0x1424 */ 0x60DC,0x602D, - /* Array index: 0x1424 */ 0x60F0,0x7667, - /* Array index: 0x1424 */ 0x60F1,0x525D, - /* Array index: 0x1424 */ 0x60F3,0x5F4C, - /* Array index: 0x1424 */ 0x60F6,0x7C49, - /* Array index: 0x1424 */ 0x6101,0x617E, - /* Array index: 0x1424 */ 0x6106,0x4B70, - /* Array index: 0x1424 */ 0x6108,0x6A6F, - /* Array index: 0x1424 */ 0x6109,0x6A70, - /* Array index: 0x1424 */ 0x6115,0x6443, - /* Array index: 0x1424 */ 0x611A,0x6957, - /* Array index: 0x1424 */ 0x611B,0x6471, - /* Array index: 0x1424 */ 0x611F,0x4A6F, - /* Array index: 0x1424 */ 0x6127,0x4E57, - /* Array index: 0x1424 */ 0x6130,0x7C4A, - /* Array index: 0x1424 */ 0x6134,0x7361, - /* Array index: 0x1424 */ 0x6137,0x4B44, - /* Array index: 0x1424 */ 0x613C,0x6365, - /* Array index: 0x1424 */ 0x613E,0x4B45, - /* Array index: 0x1424 */ 0x613F,0x6A34, - /* Array index: 0x1424 */ 0x6142,0x693D, - /* Array index: 0x1424 */ 0x6144,0x5749, - /* Array index: 0x1424 */ 0x6153,0x7874, - /* Array index: 0x1424 */ 0x6155,0x5937, - /* Array index: 0x1424 */ 0x6158,0x7353, - /* Array index: 0x1424 */ 0x6159,0x7354, - /* Array index: 0x1424 */ 0x615D,0x7764, - /* Array index: 0x1424 */ 0x615F,0x7751, - /* Array index: 0x1424 */ 0x616B,0x7076, - /* Array index: 0x1424 */ 0x616E,0x5567, - /* Array index: 0x1424 */ 0x6170,0x6A50, - /* Array index: 0x1424 */ 0x6176,0x4C54, - /* Array index: 0x1424 */ 0x6177,0x4B2F, - /* Array index: 0x1424 */ 0x617D,0x742A, - /* Array index: 0x1424 */ 0x617E,0x692F, - /* Array index: 0x1424 */ 0x6181,0x7543, - /* Array index: 0x1424 */ 0x6182,0x6958, - /* Array index: 0x1424 */ 0x618A,0x5D69, - /* Array index: 0x1424 */ 0x618E,0x7173, - /* Array index: 0x1424 */ 0x6190,0x557B, - /* Array index: 0x1424 */ 0x6191,0x5E3B, - /* Array index: 0x1424 */ 0x6194,0x747B, - /* Array index: 0x1424 */ 0x61A4,0x5D49, - /* Array index: 0x1424 */ 0x61A7,0x5453, - /* Array index: 0x1424 */ 0x61A9,0x4C28, - /* Array index: 0x1424 */ 0x61AB,0x5A41, - /* Array index: 0x1424 */ 0x61AC,0x4C55, - /* Array index: 0x1424 */ 0x61AE,0x5964, - /* Array index: 0x1424 */ 0x61B2,0x7A4A, - /* Array index: 0x1424 */ 0x61B6,0x6563, - /* Array index: 0x1424 */ 0x61BA,0x533C, - /* Array index: 0x1424 */ 0x61BE,0x4A70, - /* Array index: 0x1424 */ 0x61C3,0x5044, - /* Array index: 0x1424 */ 0x61E6,0x5157, - /* Array index: 0x1424 */ 0x61F2,0x7324, - /* Array index: 0x1424 */ 0x6207,0x5354, - /* Array index: 0x1424 */ 0x6208,0x4D7C, - /* Array index: 0x1424 */ 0x6216,0x7B64, - /* Array index: 0x1424 */ 0x621A,0x742B, - /* Array index: 0x1424 */ 0x621F,0x503D, - /* Array index: 0x1424 */ 0x6221,0x4A71, - /* Array index: 0x1424 */ 0x622A,0x6F38, - /* Array index: 0x1424 */ 0x622E,0x5740, - /* Array index: 0x1424 */ 0x6230,0x6E7A, - /* Array index: 0x1424 */ 0x6231,0x7D74, - /* Array index: 0x1424 */ 0x6234,0x5363, - /* Array index: 0x1424 */ 0x6236,0x7B42, - /* Array index: 0x1424 */ 0x6253,0x7668, - /* Array index: 0x1424 */ 0x6258,0x7675, - /* Array index: 0x1424 */ 0x626E,0x5D4A, - /* Array index: 0x1424 */ 0x6271,0x5062, - /* Array index: 0x1424 */ 0x6276,0x5D26, - /* Array index: 0x1424 */ 0x6279,0x5D6B, - /* Array index: 0x1424 */ 0x627C,0x6479, - /* Array index: 0x1424 */ 0x627F,0x632F, - /* Array index: 0x1424 */ 0x6280,0x507C, - /* Array index: 0x1424 */ 0x6284,0x747C, - /* Array index: 0x1424 */ 0x6289,0x4C3C, - /* Array index: 0x1424 */ 0x628A,0x776A, - /* Array index: 0x1424 */ 0x6291,0x6564, - /* Array index: 0x1424 */ 0x6292,0x5F71, - /* Array index: 0x1424 */ 0x6295,0x7761, - /* Array index: 0x1424 */ 0x6297,0x7977, - /* Array index: 0x1424 */ 0x6298,0x6F39, - /* Array index: 0x1424 */ 0x629B,0x7858, - /* Array index: 0x1424 */ 0x62AB,0x7929, - /* Array index: 0x1424 */ 0x62B1,0x7859, - /* Array index: 0x1424 */ 0x62B5,0x6E3D, - /* Array index: 0x1424 */ 0x62B9,0x5846, - /* Array index: 0x1424 */ 0x62BC,0x6463, - /* Array index: 0x1424 */ 0x62BD,0x754E, - /* Array index: 0x1424 */ 0x62C2,0x5D59, - /* Array index: 0x1424 */ 0x62F7,0x4D38, - /* Array index: 0x1424 */ 0x62FE,0x6326, - /* Array index: 0x1424 */ 0x62FF,0x515A, - /* Array index: 0x1424 */ 0x6301,0x7225, - /* Array index: 0x1424 */ 0x6307,0x7226, - /* Array index: 0x1424 */ 0x6309,0x644E, - /* Array index: 0x1424 */ 0x6311,0x537B, - /* Array index: 0x1424 */ 0x632B,0x7129, - /* Array index: 0x1424 */ 0x632F,0x7249, - /* Array index: 0x1424 */ 0x6349,0x7335, - /* Array index: 0x1424 */ 0x634C,0x7824, - /* Array index: 0x1424 */ 0x634F,0x5173, - /* Array index: 0x1424 */ 0x6350,0x6648, - /* Array index: 0x1424 */ 0x6355,0x785A, - /* Array index: 0x1424 */ 0x6367,0x5C69, - /* Array index: 0x1424 */ 0x6368,0x5E57, - /* Array index: 0x1424 */ 0x636E,0x4B5F, - /* Array index: 0x1424 */ 0x6372,0x4F6C, - /* Array index: 0x1424 */ 0x6377,0x745F, - /* Array index: 0x1424 */ 0x637A,0x5174, - /* Array index: 0x1424 */ 0x637B,0x523A, - /* Array index: 0x1424 */ 0x637F,0x5F72, - /* Array index: 0x1424 */ 0x6383,0x6137, - /* Array index: 0x1424 */ 0x6388,0x6223, - /* Array index: 0x1424 */ 0x6389,0x537C, - /* Array index: 0x1424 */ 0x638C,0x6D66, - /* Array index: 0x1424 */ 0x6392,0x5B49, - /* Array index: 0x1424 */ 0x6396,0x647A, - /* Array index: 0x1424 */ 0x6398,0x4F5E, - /* Array index: 0x1424 */ 0x639B,0x4E50, - /* Array index: 0x1424 */ 0x63C0,0x4A51, - /* Array index: 0x1424 */ 0x63C4,0x6A71, - /* Array index: 0x1424 */ 0x63C6,0x5026, - /* Array index: 0x1424 */ 0x63CF,0x595A, - /* Array index: 0x1424 */ 0x63D0,0x702B, - /* Array index: 0x1424 */ 0x63D6,0x6B67, - /* Array index: 0x1424 */ 0x63DA,0x6540, - /* Array index: 0x1424 */ 0x63DB,0x7C35, - /* Array index: 0x1424 */ 0x63E1,0x6444, - /* Array index: 0x1424 */ 0x63ED,0x4C29, - /* Array index: 0x1424 */ 0x63EE,0x7D46, - /* Array index: 0x1424 */ 0x63F4,0x6A35, - /* Array index: 0x1424 */ 0x63F6,0x652A, - /* Array index: 0x1424 */ 0x63F7,0x5F3A, - /* Array index: 0x1424 */ 0x640D,0x615F, - /* Array index: 0x1424 */ 0x640F,0x5A51, - /* Array index: 0x1424 */ 0x6414,0x6138, - /* Array index: 0x1424 */ 0x6416,0x6874, - /* Array index: 0x1424 */ 0x6417,0x537D, - /* Array index: 0x1424 */ 0x641C,0x6224, - /* Array index: 0x1424 */ 0x6422,0x724A, - /* Array index: 0x1424 */ 0x642C,0x5A66, - /* Array index: 0x1424 */ 0x642D,0x7733, - /* Array index: 0x1424 */ 0x643A,0x7D4D, - /* Array index: 0x1424 */ 0x643E,0x7336, - /* Array index: 0x1424 */ 0x6458,0x6E57, - /* Array index: 0x1424 */ 0x6460,0x7544, - /* Array index: 0x1424 */ 0x6469,0x5824, - /* Array index: 0x1424 */ 0x646F,0x7227, - /* Array index: 0x1424 */ 0x6488,0x564E, - /* Array index: 0x1424 */ 0x649A,0x5235, - /* Array index: 0x1424 */ 0x649E,0x5355, - /* Array index: 0x1424 */ 0x64A4,0x744C, - /* Array index: 0x1424 */ 0x64A5,0x5A7C, - /* Array index: 0x1424 */ 0x64AB,0x5968, - /* Array index: 0x1424 */ 0x64AD,0x776B, - /* Array index: 0x1424 */ 0x64AE,0x7549, - /* Array index: 0x1424 */ 0x64B0,0x733C, - /* Array index: 0x1424 */ 0x64B2,0x5A52, - /* Array index: 0x1424 */ 0x64BB,0x5335, - /* Array index: 0x1424 */ 0x64C1,0x6836, - /* Array index: 0x1424 */ 0x64C4,0x564F, - /* Array index: 0x1424 */ 0x64C5,0x743A, - /* Array index: 0x1424 */ 0x64C7,0x7749, - /* Array index: 0x1424 */ 0x64CA,0x4C2A, - /* Array index: 0x1424 */ 0x64CD,0x7043, - /* Array index: 0x1424 */ 0x64CE,0x4C56, - /* Array index: 0x1424 */ 0x64D2,0x5053, - /* Array index: 0x1424 */ 0x64D4,0x533D, - /* Array index: 0x1424 */ 0x64D8,0x5B7B, - /* Array index: 0x1424 */ 0x64DA,0x4B60, - /* Array index: 0x1424 */ 0x64EC,0x6B74, - /* Array index: 0x1424 */ 0x64F2,0x742D, - /* Array index: 0x1424 */ 0x64F4,0x7C2A, - /* Array index: 0x1424 */ 0x64FA,0x776C, - /* Array index: 0x1424 */ 0x64FE,0x6876, - /* Array index: 0x1424 */ 0x6500,0x5A67, - /* Array index: 0x1424 */ 0x6504,0x774C, - /* Array index: 0x1424 */ 0x6518,0x6541, - /* Array index: 0x1424 */ 0x651D,0x606E, - /* Array index: 0x1424 */ 0x6523,0x557D, - /* Array index: 0x1424 */ 0x652F,0x7228, - /* Array index: 0x1424 */ 0x6545,0x4D3A, - /* Array index: 0x1424 */ 0x6548,0x7C79, - /* Array index: 0x1424 */ 0x6556,0x6779, - /* Array index: 0x1424 */ 0x6557,0x7828, - /* Array index: 0x1424 */ 0x655E,0x7362, - /* Array index: 0x1424 */ 0x6562,0x4A72, - /* Array index: 0x1424 */ 0x6563,0x5F24, - /* Array index: 0x1424 */ 0x6566,0x5444, - /* Array index: 0x1424 */ 0x656C,0x4C57, - /* Array index: 0x1424 */ 0x656D,0x6542, - /* Array index: 0x1424 */ 0x6572,0x4D3B, - /* Array index: 0x1424 */ 0x657E,0x6040, - /* Array index: 0x1424 */ 0x6582,0x5630, - /* Array index: 0x1424 */ 0x6583,0x784A, - /* Array index: 0x1424 */ 0x6585,0x7C7A, - /* Array index: 0x1424 */ 0x6587,0x597E, - /* Array index: 0x1424 */ 0x658C,0x5E30, - /* Array index: 0x1424 */ 0x6590,0x5D6C, - /* Array index: 0x1424 */ 0x6591,0x5A68, - /* Array index: 0x1424 */ 0x6597,0x5460, - /* Array index: 0x1424 */ 0x6599,0x5679, - /* Array index: 0x1424 */ 0x659B,0x4D57, - /* Array index: 0x1424 */ 0x659C,0x5E58, - /* Array index: 0x1424 */ 0x659F,0x7278, - /* Array index: 0x1424 */ 0x65A1,0x6456, - /* Array index: 0x1424 */ 0x65A4,0x5045, - /* Array index: 0x1424 */ 0x65A5,0x742E, - /* Array index: 0x1424 */ 0x65A7,0x5D28, - /* Array index: 0x1424 */ 0x65AB,0x6D45, - /* Array index: 0x1424 */ 0x65AC,0x7356, - /* Array index: 0x1424 */ 0x65AF,0x5E59, - /* Array index: 0x1424 */ 0x65B0,0x6366, - /* Array index: 0x1424 */ 0x65B7,0x5328, - /* Array index: 0x1424 */ 0x65B9,0x5B30, - /* Array index: 0x1424 */ 0x65BC,0x655A, - /* Array index: 0x1424 */ 0x65BD,0x633F, - /* Array index: 0x1424 */ 0x65C1,0x5B31, - /* Array index: 0x1424 */ 0x65C5,0x5569, - /* Array index: 0x1424 */ 0x65CB,0x6041, - /* Array index: 0x1424 */ 0x65CC,0x6F5B, - /* Array index: 0x1424 */ 0x65CF,0x7069, - /* Array index: 0x1424 */ 0x65D2,0x5732, - /* Array index: 0x1424 */ 0x65D7,0x507D, - /* Array index: 0x1424 */ 0x65E0,0x5969, - /* Array index: 0x1424 */ 0x65E3,0x507E, - /* Array index: 0x1424 */ 0x65F1,0x7951, - /* Array index: 0x1424 */ 0x65F4,0x6959, - /* Array index: 0x1424 */ 0x6625,0x7570, - /* Array index: 0x1424 */ 0x6627,0x585C, - /* Array index: 0x1424 */ 0x6628,0x6D46, - /* Array index: 0x1424 */ 0x6634,0x595B, - /* Array index: 0x1424 */ 0x6636,0x7364, - /* Array index: 0x1424 */ 0x663A,0x5C36, - /* Array index: 0x1424 */ 0x663B,0x6469, - /* Array index: 0x1424 */ 0x6649,0x724B, - /* Array index: 0x1424 */ 0x664B,0x724C, - /* Array index: 0x1424 */ 0x664F,0x644F, - /* Array index: 0x1424 */ 0x6659,0x715B, - /* Array index: 0x1424 */ 0x6684,0x7D3E, - /* Array index: 0x1424 */ 0x668E,0x6732, - /* Array index: 0x1424 */ 0x6690,0x6A51, - /* Array index: 0x1424 */ 0x6691,0x5F74, - /* Array index: 0x1424 */ 0x669D,0x5926, - /* Array index: 0x1424 */ 0x66A0,0x4D3C, - /* Array index: 0x1424 */ 0x66A2,0x7365, - /* Array index: 0x1424 */ 0x66AB,0x6D55, - /* Array index: 0x1424 */ 0x66AE,0x593A, - /* Array index: 0x1424 */ 0x66B9,0x6067, - /* Array index: 0x1424 */ 0x66BB,0x4C59, - /* Array index: 0x1424 */ 0x66BE,0x5446, - /* Array index: 0x1424 */ 0x66C4,0x6725, - /* Array index: 0x1424 */ 0x66C6,0x5575, - /* Array index: 0x1424 */ 0x66C7,0x533E, - /* Array index: 0x1424 */ 0x66C9,0x7C7B, - /* Array index: 0x1424 */ 0x66D6,0x6472, - /* Array index: 0x1424 */ 0x66D9,0x5F75, - /* Array index: 0x1424 */ 0x66DC,0x6878, - /* Array index: 0x1424 */ 0x66DD,0x786D, - /* Array index: 0x1424 */ 0x66E0,0x4E47, - /* Array index: 0x1424 */ 0x66E6,0x7D76, - /* Array index: 0x1424 */ 0x6703,0x7C65, - /* Array index: 0x1424 */ 0x6708,0x6A45, - /* Array index: 0x1424 */ 0x6709,0x6A73, - /* Array index: 0x1424 */ 0x670B,0x5D5B, - /* Array index: 0x1424 */ 0x670D,0x5C57, - /* Array index: 0x1424 */ 0x6714,0x5E7D, - /* Array index: 0x1424 */ 0x6715,0x7279, - /* Array index: 0x1424 */ 0x6717,0x5547, - /* Array index: 0x1424 */ 0x6731,0x7139, - /* Array index: 0x1424 */ 0x6734,0x5A53, - /* Array index: 0x1424 */ 0x6736,0x766A, - /* Array index: 0x1424 */ 0x673A,0x4F75, - /* Array index: 0x1424 */ 0x673D,0x7D2E, - /* Array index: 0x1424 */ 0x6746,0x4A52, - /* Array index: 0x1424 */ 0x6749,0x5F34, - /* Array index: 0x1424 */ 0x6756,0x6D68, - /* Array index: 0x1424 */ 0x675C,0x5461, - /* Array index: 0x1424 */ 0x675E,0x5123, - /* Array index: 0x1424 */ 0x675F,0x6156, - /* Array index: 0x1424 */ 0x677B,0x526E, - /* Array index: 0x1424 */ 0x677E,0x6166, - /* Array index: 0x1424 */ 0x677F,0x7779, - /* Array index: 0x1424 */ 0x6787,0x5D6D, - /* Array index: 0x1424 */ 0x6789,0x685B, - /* Array index: 0x1424 */ 0x678B,0x5B33, - /* Array index: 0x1424 */ 0x678F,0x5177, - /* Array index: 0x1424 */ 0x6790,0x6030, - /* Array index: 0x1424 */ 0x6793,0x5462, - /* Array index: 0x1424 */ 0x6795,0x7657, - /* Array index: 0x1424 */ 0x6797,0x5779, - /* Array index: 0x1424 */ 0x679A,0x585D, - /* Array index: 0x1424 */ 0x679C,0x4D7D, - /* Array index: 0x1424 */ 0x679D,0x722B, - /* Array index: 0x1424 */ 0x67AF,0x4D3D, - /* Array index: 0x1424 */ 0x67B0,0x7842, - /* Array index: 0x1424 */ 0x67B3,0x722C, - /* Array index: 0x1424 */ 0x67BE,0x6342, - /* Array index: 0x1424 */ 0x67C4,0x5C37, - /* Array index: 0x1424 */ 0x67DA,0x6A76, - /* Array index: 0x1424 */ 0x67DD,0x7679, - /* Array index: 0x1424 */ 0x67E9,0x4F2F, - /* Array index: 0x1424 */ 0x67EC,0x4A53, - /* Array index: 0x1424 */ 0x67FB,0x5E5B, - /* Array index: 0x1424 */ 0x67FE,0x6F5E, - /* Array index: 0x1424 */ 0x6812,0x6263, - /* Array index: 0x1424 */ 0x6813,0x6E7B, - /* Array index: 0x1424 */ 0x6816,0x5F77, - /* Array index: 0x1424 */ 0x6817,0x574A, - /* Array index: 0x1424 */ 0x6821,0x4E68, - /* Array index: 0x1424 */ 0x6822,0x5B5B, - /* Array index: 0x1424 */ 0x682A,0x713B, - /* Array index: 0x1424 */ 0x682F,0x6971, - /* Array index: 0x1424 */ 0x6838,0x7A37, - /* Array index: 0x1424 */ 0x6839,0x5046, - /* Array index: 0x1424 */ 0x6848,0x6450, - /* Array index: 0x1424 */ 0x684E,0x726E, - /* Array index: 0x1424 */ 0x686D,0x724D, - /* Array index: 0x1424 */ 0x6876,0x7752, - /* Array index: 0x1424 */ 0x687F,0x4A54, - /* Array index: 0x1424 */ 0x6881,0x5559, - /* Array index: 0x1424 */ 0x6885,0x585E, - /* Array index: 0x1424 */ 0x688F,0x4D59, - /* Array index: 0x1424 */ 0x6893,0x6E29, - /* Array index: 0x1424 */ 0x6894,0x763C, - /* Array index: 0x1424 */ 0x6897,0x4C5B, - /* Array index: 0x1424 */ 0x689D,0x7049, - /* Array index: 0x1424 */ 0x689F,0x7C7C, - /* Array index: 0x1424 */ 0x68A1,0x6849, - /* Array index: 0x1424 */ 0x68A2,0x747E, - /* Array index: 0x1424 */ 0x68A7,0x677C, - /* Array index: 0x1424 */ 0x68A8,0x575E, - /* Array index: 0x1424 */ 0x68C4,0x5125, - /* Array index: 0x1424 */ 0x68C5,0x5C38, - /* Array index: 0x1424 */ 0x68C9,0x5876, - /* Array index: 0x1424 */ 0x68CB,0x5124, - /* Array index: 0x1424 */ 0x68CD,0x4D62, - /* Array index: 0x1424 */ 0x68D2,0x5C6A, - /* Array index: 0x1424 */ 0x68D5,0x7077, - /* Array index: 0x1424 */ 0x68D7,0x704A, - /* Array index: 0x1424 */ 0x68D8,0x503E, - /* Array index: 0x1424 */ 0x68DA,0x5D5C, - /* Array index: 0x1424 */ 0x68DF,0x5456, - /* Array index: 0x1424 */ 0x68E0,0x5356, - /* Array index: 0x1424 */ 0x68E7,0x6D50, - /* Array index: 0x1424 */ 0x68E8,0x4D21, - /* Array index: 0x1424 */ 0x68EE,0x5F35, - /* Array index: 0x1424 */ 0x68F2,0x5F78, - /* Array index: 0x1424 */ 0x68F9,0x5421, - /* Array index: 0x1424 */ 0x68FA,0x4E32, - /* Array index: 0x1424 */ 0x6900,0x684A, - /* Array index: 0x1424 */ 0x6905,0x6B75, - /* Array index: 0x1424 */ 0x690D,0x6355, - /* Array index: 0x1424 */ 0x690E,0x7550, - /* Array index: 0x1424 */ 0x6912,0x7521, - /* Array index: 0x1424 */ 0x6927,0x5927, - /* Array index: 0x1424 */ 0x6930,0x652B, - /* Array index: 0x1424 */ 0x693D,0x664B, - /* Array index: 0x1424 */ 0x693F,0x7571, - /* Array index: 0x1424 */ 0x694A,0x6545, - /* Array index: 0x1424 */ 0x6968,0x6F5F, - /* Array index: 0x1424 */ 0x6995,0x693E, - /* Array index: 0x1424 */ 0x699B,0x724E, - /* Array index: 0x1424 */ 0x699C,0x5B34, - /* Array index: 0x1424 */ 0x69A5,0x7C4E, - /* Array index: 0x1424 */ 0x69A7,0x5D6E, - /* Array index: 0x1424 */ 0x69AE,0x6734, - /* Array index: 0x1424 */ 0x69B4,0x5734, - /* Array index: 0x1424 */ 0x69BB,0x7734, - /* Array index: 0x1424 */ 0x69C1,0x4D3E, - /* Array index: 0x1424 */ 0x69C3,0x5A69, - /* Array index: 0x1424 */ 0x69D0,0x4E59, - /* Array index: 0x1424 */ 0x69E8,0x4E2A, - /* Array index: 0x1424 */ 0x69EA,0x4B48, - /* Array index: 0x1424 */ 0x69FB,0x5027, - /* Array index: 0x1424 */ 0x69FD,0x704B, - /* Array index: 0x1424 */ 0x69FF,0x5047, - /* Array index: 0x1424 */ 0x6A02,0x6445, - /* Array index: 0x1424 */ 0x6A0A,0x5B60, - /* Array index: 0x1424 */ 0x6A11,0x555A, - /* Array index: 0x1424 */ 0x6A13,0x5727, - /* Array index: 0x1424 */ 0x6A17,0x6E40, - /* Array index: 0x1424 */ 0x6A19,0x7876, - /* Array index: 0x1424 */ 0x6A1E,0x7552, - /* Array index: 0x1424 */ 0x6A1F,0x6D69, - /* Array index: 0x1424 */ 0x6A21,0x593C, - /* Array index: 0x1424 */ 0x6A23,0x6546, - /* Array index: 0x1424 */ 0x6A35,0x7523, - /* Array index: 0x1424 */ 0x6A3D,0x715C, - /* Array index: 0x1424 */ 0x6A44,0x4A74, - /* Array index: 0x1424 */ 0x6A48,0x687A, - /* Array index: 0x1424 */ 0x6A4B,0x4E69, - /* Array index: 0x1424 */ 0x6A52,0x6978, - /* Array index: 0x1424 */ 0x6A53,0x6265, - /* Array index: 0x1424 */ 0x6A58,0x5039, - /* Array index: 0x1424 */ 0x6A59,0x5472, - /* Array index: 0x1424 */ 0x6A5F,0x5126, - /* Array index: 0x1424 */ 0x6A61,0x5F4E, - /* Array index: 0x1424 */ 0x6A6B,0x7C74, - /* Array index: 0x1424 */ 0x6A80,0x532A, - /* Array index: 0x1424 */ 0x6A84,0x4C2C, - /* Array index: 0x1424 */ 0x6A89,0x6F60, - /* Array index: 0x1424 */ 0x6A8D,0x6565, - /* Array index: 0x1424 */ 0x6A8E,0x5055, - /* Array index: 0x1424 */ 0x6A97,0x5B7C, - /* Array index: 0x1424 */ 0x6A9C,0x7C66, - /* Array index: 0x1424 */ 0x6AA2,0x4B7E, - /* Array index: 0x1424 */ 0x6AA3,0x6D6A, - /* Array index: 0x1424 */ 0x6AB3,0x5E31, - /* Array index: 0x1424 */ 0x6ABB,0x7963, - /* Array index: 0x1424 */ 0x6AC2,0x5422, - /* Array index: 0x1424 */ 0x6AC3,0x4F76, - /* Array index: 0x1424 */ 0x6AD3,0x5650, - /* Array index: 0x1424 */ 0x6ADA,0x556A, - /* Array index: 0x1424 */ 0x6ADB,0x716E, - /* Array index: 0x1424 */ 0x6AF6,0x7A4B, - /* Array index: 0x1424 */ 0x6AFB,0x6521, - /* Array index: 0x1424 */ 0x6B04,0x5531, - /* Array index: 0x1424 */ 0x6B0A,0x4F6D, - /* Array index: 0x1424 */ 0x6B0C,0x6D6B, - /* Array index: 0x1424 */ 0x6B12,0x5532, - /* Array index: 0x1424 */ 0x6B16,0x553C, - /* Array index: 0x1424 */ 0x6B20,0x7D62, - /* Array index: 0x1424 */ 0x6B21,0x732D, - /* Array index: 0x1424 */ 0x6B23,0x7D5B, - /* Array index: 0x1424 */ 0x6B32,0x6930, - /* Array index: 0x1424 */ 0x6B3A,0x5127, - /* Array index: 0x1424 */ 0x6B3D,0x7D63, - /* Array index: 0x1424 */ 0x6B3E,0x4E33, - /* Array index: 0x1424 */ 0x6B46,0x7D64, - /* Array index: 0x1424 */ 0x6B47,0x7A4E, - /* Array index: 0x1424 */ 0x6B4C,0x4A30, - /* Array index: 0x1424 */ 0x6B4E,0x7727, - /* Array index: 0x1424 */ 0x6B50,0x4F31, - /* Array index: 0x1424 */ 0x6B6A,0x6860, - /* Array index: 0x1424 */ 0x6B72,0x6128, - /* Array index: 0x1424 */ 0x6B77,0x5576, - /* Array index: 0x1424 */ 0x6B78,0x4F7D, - /* Array index: 0x1424 */ 0x6B7B,0x5E5D, - /* Array index: 0x1424 */ 0x6B7F,0x5951, - /* Array index: 0x1424 */ 0x6B83,0x646A, - /* Array index: 0x1424 */ 0x6B84,0x724F, - /* Array index: 0x1424 */ 0x6B86,0x773F, - /* Array index: 0x1424 */ 0x6B89,0x6266, - /* Array index: 0x1424 */ 0x6B8A,0x6228, - /* Array index: 0x1424 */ 0x6B96,0x6356, - /* Array index: 0x1424 */ 0x6B98,0x6D51, - /* Array index: 0x1424 */ 0x6B9E,0x6979, - /* Array index: 0x1424 */ 0x6BAE,0x5631, - /* Array index: 0x1424 */ 0x6BAF,0x5E32, - /* Array index: 0x1424 */ 0x6BB2,0x6068, - /* Array index: 0x1424 */ 0x6BB5,0x532B, - /* Array index: 0x1424 */ 0x6BB7,0x6B5C, - /* Array index: 0x1424 */ 0x6BBA,0x5F2F, - /* Array index: 0x1424 */ 0x6BBC,0x4A43, - /* Array index: 0x1424 */ 0x6BBF,0x6E7C, - /* Array index: 0x1424 */ 0x6BC1,0x7D43, - /* Array index: 0x1424 */ 0x6BC5,0x6B76, - /* Array index: 0x1424 */ 0x6BC6,0x4F32, - /* Array index: 0x1424 */ 0x6BCB,0x596C, - /* Array index: 0x1424 */ 0x6BCD,0x593D, - /* Array index: 0x1424 */ 0x6BCF,0x585F, - /* Array index: 0x1424 */ 0x6BDB,0x593E, - /* Array index: 0x1424 */ 0x6BEB,0x7B46, - /* Array index: 0x1424 */ 0x6BEC,0x4F33, - /* Array index: 0x1424 */ 0x6C08,0x6E7D, - /* Array index: 0x1424 */ 0x6C0F,0x642B, - /* Array index: 0x1424 */ 0x6C11,0x5A45, - /* Array index: 0x1424 */ 0x6C13,0x586C, - /* Array index: 0x1424 */ 0x6C23,0x5128, - /* Array index: 0x1424 */ 0x6C34,0x6229, - /* Array index: 0x1424 */ 0x6C37,0x5E3C, - /* Array index: 0x1424 */ 0x6C38,0x6735, - /* Array index: 0x1424 */ 0x6C4E,0x5B71, - /* Array index: 0x1424 */ 0x6C50,0x6031, - /* Array index: 0x1424 */ 0x6C55,0x5F25, - /* Array index: 0x1424 */ 0x6C57,0x7952, - /* Array index: 0x1424 */ 0x6C5A,0x677D, - /* Array index: 0x1424 */ 0x6C68,0x4D67, - /* Array index: 0x1424 */ 0x6C6A,0x685C, - /* Array index: 0x1424 */ 0x6C6D,0x6757, - /* Array index: 0x1424 */ 0x6C70,0x7740, - /* Array index: 0x1424 */ 0x6C72,0x5063, - /* Array index: 0x1424 */ 0x6C76,0x5A21, - /* Array index: 0x1424 */ 0x6C7A,0x4C3D, - /* Array index: 0x1424 */ 0x6C8C,0x5447, - /* Array index: 0x1424 */ 0x6CAB,0x5848, - /* Array index: 0x1424 */ 0x6CAE,0x6E41, - /* Array index: 0x1424 */ 0x6CB3,0x7941, - /* Array index: 0x1424 */ 0x6CC9,0x743B, - /* Array index: 0x1424 */ 0x6CCA,0x5A55, - /* Array index: 0x1424 */ 0x6CCC,0x7932, - /* Array index: 0x1424 */ 0x6CD3,0x7B72, - /* Array index: 0x1424 */ 0x6CD5,0x5B76, - /* Array index: 0x1424 */ 0x6CD7,0x5E5F, - /* Array index: 0x1424 */ 0x6CDB,0x5B72, - /* Array index: 0x1424 */ 0x6CE8,0x713C, - /* Array index: 0x1424 */ 0x6CEB,0x7A5A, - /* Array index: 0x1424 */ 0x6CF3,0x6736, - /* Array index: 0x1424 */ 0x6D0B,0x6547, - /* Array index: 0x1424 */ 0x6D0C,0x562C, - /* Array index: 0x1424 */ 0x6D11,0x5C47, - /* Array index: 0x1424 */ 0x6D17,0x6129, - /* Array index: 0x1424 */ 0x6D19,0x622A, - /* Array index: 0x1424 */ 0x6D1B,0x5526, - /* Array index: 0x1424 */ 0x6D1E,0x5457, - /* Array index: 0x1424 */ 0x6D25,0x7250, - /* Array index: 0x1424 */ 0x6D27,0x6A7B, - /* Array index: 0x1424 */ 0x6D29,0x605D, - /* Array index: 0x1424 */ 0x6D2A,0x7B73, - /* Array index: 0x1424 */ 0x6D32,0x713D, - /* Array index: 0x1424 */ 0x6D41,0x5735, - /* Array index: 0x1424 */ 0x6D59,0x6F3A, - /* Array index: 0x1424 */ 0x6D5A,0x715D, - /* Array index: 0x1424 */ 0x6D5C,0x5E33, - /* Array index: 0x1424 */ 0x6D63,0x684B, - /* Array index: 0x1424 */ 0x6D66,0x785D, - /* Array index: 0x1424 */ 0x6D69,0x7B47, - /* Array index: 0x1424 */ 0x6D6A,0x5548, - /* Array index: 0x1424 */ 0x6D6C,0x575F, - /* Array index: 0x1424 */ 0x6D6E,0x5D29, - /* Array index: 0x1424 */ 0x6D74,0x6931, - /* Array index: 0x1424 */ 0x6D7F,0x782A, - /* Array index: 0x1424 */ 0x6D91,0x6157, - /* Array index: 0x1424 */ 0x6D93,0x664F, - /* Array index: 0x1424 */ 0x6D95,0x7471, - /* Array index: 0x1424 */ 0x6DAF,0x6473, - /* Array index: 0x1424 */ 0x6DB2,0x647B, - /* Array index: 0x1424 */ 0x6DB5,0x7964, - /* Array index: 0x1424 */ 0x6DC0,0x6F63, - /* Array index: 0x1424 */ 0x6DCB,0x577A, - /* Array index: 0x1424 */ 0x6DCF,0x7B48, - /* Array index: 0x1424 */ 0x6DD1,0x6257, - /* Array index: 0x1424 */ 0x6DDE,0x6167, - /* Array index: 0x1424 */ 0x6DE1,0x533F, - /* Array index: 0x1424 */ 0x6DE8,0x6F64, - /* Array index: 0x1424 */ 0x6DEA,0x5745, - /* Array index: 0x1424 */ 0x6DEB,0x6B62, - /* Array index: 0x1424 */ 0x6DEE,0x7C67, - /* Array index: 0x1424 */ 0x6DF1,0x6422, - /* Array index: 0x1424 */ 0x6DF3,0x6268, - /* Array index: 0x1424 */ 0x6E32,0x6042, - /* Array index: 0x1424 */ 0x6E34,0x4A64, - /* Array index: 0x1424 */ 0x6E36,0x6737, - /* Array index: 0x1424 */ 0x6E38,0x6A7D, - /* Array index: 0x1424 */ 0x6E43,0x5B4B, - /* Array index: 0x1424 */ 0x6E44,0x5A35, - /* Array index: 0x1424 */ 0x6E4A,0x713E, - /* Array index: 0x1424 */ 0x6E4D,0x532C, - /* Array index: 0x1424 */ 0x6E56,0x7B49, - /* Array index: 0x1424 */ 0x6E58,0x5F4F, - /* Array index: 0x1424 */ 0x6E67,0x6940, - /* Array index: 0x1424 */ 0x6E6B,0x7553, - /* Array index: 0x1424 */ 0x6E6E,0x6C5C, - /* Array index: 0x1424 */ 0x6E6F,0x7737, - /* Array index: 0x1424 */ 0x6E72,0x6A38, - /* Array index: 0x1424 */ 0x6E73,0x5179, - /* Array index: 0x1424 */ 0x6E7A,0x5C48, - /* Array index: 0x1424 */ 0x6E90,0x6A39, - /* Array index: 0x1424 */ 0x6E96,0x715E, - /* Array index: 0x1424 */ 0x6E9C,0x5736, - /* Array index: 0x1424 */ 0x6E9D,0x4F35, - /* Array index: 0x1424 */ 0x6E9F,0x5928, - /* Array index: 0x1424 */ 0x6EA2,0x6C6E, - /* Array index: 0x1424 */ 0x6EA5,0x5D2A, - /* Array index: 0x1424 */ 0x6EAA,0x4D22, - /* Array index: 0x1424 */ 0x6EAB,0x682E, - /* Array index: 0x1424 */ 0x6EAF,0x613D, - /* Array index: 0x1424 */ 0x6EB1,0x7251, - /* Array index: 0x1424 */ 0x6EB6,0x6941, - /* Array index: 0x1424 */ 0x6EBA,0x527C, - /* Array index: 0x1424 */ 0x6EC2,0x5B35, - /* Array index: 0x1424 */ 0x6EC4,0x7367, - /* Array index: 0x1424 */ 0x6EC5,0x587E, - /* Array index: 0x1424 */ 0x6EC9,0x7C51, - /* Array index: 0x1424 */ 0x6ECB,0x6D32, - /* Array index: 0x1424 */ 0x6ECC,0x742F, - /* Array index: 0x1424 */ 0x6ECE,0x7B23, - /* Array index: 0x1424 */ 0x6ED1,0x7C41, - /* Array index: 0x1424 */ 0x6ED3,0x6E2B, - /* Array index: 0x1424 */ 0x6ED4,0x5425, - /* Array index: 0x1424 */ 0x6EEF,0x7472, - /* Array index: 0x1424 */ 0x6EF4,0x6E59, - /* Array index: 0x1424 */ 0x6EF8,0x7B4A, - /* Array index: 0x1424 */ 0x6F06,0x7654, - /* Array index: 0x1424 */ 0x6F0F,0x5729, - /* Array index: 0x1424 */ 0x6F11,0x4B49, - /* Array index: 0x1424 */ 0x6F14,0x6651, - /* Array index: 0x1424 */ 0x6F15,0x704C, - /* Array index: 0x1424 */ 0x6F20,0x582E, - /* Array index: 0x1424 */ 0x6F22,0x7953, - /* Array index: 0x1424 */ 0x6F23,0x557E, - /* Array index: 0x1424 */ 0x6F2B,0x583C, - /* Array index: 0x1424 */ 0x6F2C,0x7230, - /* Array index: 0x1424 */ 0x6F31,0x622B, - /* Array index: 0x1424 */ 0x6F32,0x7368, - /* Array index: 0x1424 */ 0x6F38,0x6F42, - /* Array index: 0x1424 */ 0x6F3F,0x6D6C, - /* Array index: 0x1424 */ 0x6F41,0x6738, - /* Array index: 0x1424 */ 0x6F51,0x5A7E, - /* Array index: 0x1424 */ 0x6F54,0x4C3E, - /* Array index: 0x1424 */ 0x6F62,0x7C52, - /* Array index: 0x1424 */ 0x6F64,0x6B48, - /* Array index: 0x1424 */ 0x6F6D,0x5341, - /* Array index: 0x1424 */ 0x6F6E,0x704D, - /* Array index: 0x1424 */ 0x6F70,0x4F77, - /* Array index: 0x1424 */ 0x6F81,0x5F3B, - /* Array index: 0x1424 */ 0x6F84,0x7325, - /* Array index: 0x1424 */ 0x6F88,0x744D, - /* Array index: 0x1424 */ 0x6F8D,0x713F, - /* Array index: 0x1424 */ 0x6F8E,0x7831, - /* Array index: 0x1424 */ 0x6F90,0x697A, - /* Array index: 0x1424 */ 0x6F94,0x7B4B, - /* Array index: 0x1424 */ 0x6F97,0x4A55, - /* Array index: 0x1424 */ 0x6FA3,0x7954, - /* Array index: 0x1424 */ 0x6FA4,0x774A, - /* Array index: 0x1424 */ 0x6FA7,0x5648, - /* Array index: 0x1424 */ 0x6FAE,0x7C68, - /* Array index: 0x1424 */ 0x6FAF,0x733D, - /* Array index: 0x1424 */ 0x6FB1,0x6E7E, - /* Array index: 0x1424 */ 0x6FB3,0x677E, - /* Array index: 0x1424 */ 0x6FB9,0x5342, - /* Array index: 0x1424 */ 0x6FCA,0x6758, - /* Array index: 0x1424 */ 0x6FD5,0x6325, - /* Array index: 0x1424 */ 0x6FDA,0x6739, - /* Array index: 0x1424 */ 0x6FE4,0x5426, - /* Array index: 0x1424 */ 0x6FE9,0x7B4D, - /* Array index: 0x1424 */ 0x6FEB,0x553D, - /* Array index: 0x1424 */ 0x6FEC,0x715F, - /* Array index: 0x1424 */ 0x6FEF,0x767B, - /* Array index: 0x1424 */ 0x6FF1,0x5E34, - /* Array index: 0x1424 */ 0x6FFE,0x556B, - /* Array index: 0x1424 */ 0x7001,0x6548, - /* Array index: 0x1424 */ 0x7005,0x7B24, - /* Array index: 0x1424 */ 0x7006,0x5439, - /* Array index: 0x1424 */ 0x7009,0x5E61, - /* Array index: 0x1424 */ 0x700B,0x6423, - /* Array index: 0x1424 */ 0x700F,0x5737, - /* Array index: 0x1424 */ 0x7011,0x786E, - /* Array index: 0x1424 */ 0x7015,0x5E35, - /* Array index: 0x1424 */ 0x7023,0x7A2E, - /* Array index: 0x1424 */ 0x7027,0x5669, - /* Array index: 0x1424 */ 0x7028,0x566E, - /* Array index: 0x1424 */ 0x702F,0x673B, - /* Array index: 0x1424 */ 0x7037,0x6C4B, - /* Array index: 0x1424 */ 0x703E,0x5533, - /* Array index: 0x1424 */ 0x704C,0x4E34, - /* Array index: 0x1424 */ 0x7050,0x7B25, - /* Array index: 0x1424 */ 0x7051,0x616E, - /* Array index: 0x1424 */ 0x7058,0x7728, - /* Array index: 0x1424 */ 0x705D,0x7B4E, - /* Array index: 0x1424 */ 0x7063,0x583D, - /* Array index: 0x1424 */ 0x706B,0x7B7D, - /* Array index: 0x1424 */ 0x7070,0x7C69, - /* Array index: 0x1424 */ 0x7078,0x4F36, - /* Array index: 0x1424 */ 0x707C,0x6D47, - /* Array index: 0x1424 */ 0x707D,0x6E2C, - /* Array index: 0x1424 */ 0x7085,0x4C5D, - /* Array index: 0x1424 */ 0x708A,0x7627, - /* Array index: 0x1424 */ 0x708E,0x667A, - /* Array index: 0x1424 */ 0x7092,0x7524, - /* Array index: 0x1424 */ 0x70A1,0x6F68, - /* Array index: 0x1424 */ 0x70A4,0x613F, - /* Array index: 0x1424 */ 0x70B3,0x5C39, - /* Array index: 0x1424 */ 0x70C8,0x562D, - /* Array index: 0x1424 */ 0x70CB,0x7D4E, - /* Array index: 0x1424 */ 0x70CF,0x6821, - /* Array index: 0x1424 */ 0x70D8,0x7B74, - /* Array index: 0x1424 */ 0x70D9,0x5527, - /* Array index: 0x1424 */ 0x70DD,0x7176, - /* Array index: 0x1424 */ 0x70DF,0x6653, - /* Array index: 0x1424 */ 0x70F1,0x4C5E, - /* Array index: 0x1424 */ 0x70F9,0x7832, - /* Array index: 0x1424 */ 0x70FD,0x5C6B, - /* Array index: 0x1424 */ 0x7104,0x7D36, - /* Array index: 0x1424 */ 0x7109,0x656A, - /* Array index: 0x1424 */ 0x710C,0x7160, - /* Array index: 0x1424 */ 0x7119,0x5B4C, - /* Array index: 0x1424 */ 0x711A,0x5D4D, - /* Array index: 0x1424 */ 0x711E,0x5448, - /* Array index: 0x1424 */ 0x7121,0x596D, - /* Array index: 0x1424 */ 0x7126,0x7525, - /* Array index: 0x1424 */ 0x7130,0x667B, - /* Array index: 0x1424 */ 0x7136,0x6654, - /* Array index: 0x1424 */ 0x7147,0x7D48, - /* Array index: 0x1424 */ 0x7149,0x5621, - /* Array index: 0x1424 */ 0x714A,0x7D3F, - /* Array index: 0x1424 */ 0x714C,0x7C53, - /* Array index: 0x1424 */ 0x714E,0x6F21, - /* Array index: 0x1424 */ 0x7150,0x673C, - /* Array index: 0x1424 */ 0x7156,0x516E, - /* Array index: 0x1424 */ 0x7159,0x6655, - /* Array index: 0x1424 */ 0x715C,0x6972, - /* Array index: 0x1424 */ 0x715E,0x5F30, - /* Array index: 0x1424 */ 0x716C,0x6549, - /* Array index: 0x1424 */ 0x716E,0x6D34, - /* Array index: 0x1424 */ 0x717D,0x6043, - /* Array index: 0x1424 */ 0x7184,0x6358, - /* Array index: 0x1424 */ 0x7189,0x697B, - /* Array index: 0x1424 */ 0x718A,0x6A28, - /* Array index: 0x1424 */ 0x718F,0x7D37, - /* Array index: 0x1424 */ 0x7192,0x7B27, - /* Array index: 0x1424 */ 0x7194,0x6942, - /* Array index: 0x1424 */ 0x7199,0x7D77, - /* Array index: 0x1424 */ 0x719F,0x6259, - /* Array index: 0x1424 */ 0x71A2,0x5C6C, - /* Array index: 0x1424 */ 0x71AC,0x6822, - /* Array index: 0x1424 */ 0x71B1,0x6670, - /* Array index: 0x1424 */ 0x71B9,0x7D78, - /* Array index: 0x1424 */ 0x71BA,0x7D79, - /* Array index: 0x1424 */ 0x71BE,0x763F, - /* Array index: 0x1424 */ 0x71C1,0x6727, - /* Array index: 0x1424 */ 0x71C3,0x6657, - /* Array index: 0x1424 */ 0x71C8,0x5473, - /* Array index: 0x1424 */ 0x71C9,0x5449, - /* Array index: 0x1424 */ 0x71CE,0x567A, - /* Array index: 0x1424 */ 0x71D0,0x5772, - /* Array index: 0x1424 */ 0x71D2,0x6140, - /* Array index: 0x1424 */ 0x71D4,0x5B62, - /* Array index: 0x1424 */ 0x71D5,0x6658, - /* Array index: 0x1424 */ 0x71DF,0x673D, - /* Array index: 0x1424 */ 0x71ED,0x7537, - /* Array index: 0x1424 */ 0x71EE,0x6070, - /* Array index: 0x1424 */ 0x7206,0x786F, - /* Array index: 0x1424 */ 0x7210,0x5653, - /* Array index: 0x1424 */ 0x721B,0x5534, - /* Array index: 0x1424 */ 0x722A,0x7050, - /* Array index: 0x1424 */ 0x722C,0x7770, - /* Array index: 0x1424 */ 0x722D,0x6E33, - /* Array index: 0x1424 */ 0x7230,0x6A3A, - /* Array index: 0x1424 */ 0x7232,0x6A53, - /* Array index: 0x1424 */ 0x7235,0x6D49, - /* Array index: 0x1424 */ 0x7236,0x5D2B, - /* Array index: 0x1424 */ 0x724C,0x782B, - /* Array index: 0x1424 */ 0x7252,0x7460, - /* Array index: 0x1424 */ 0x7258,0x543A, - /* Array index: 0x1424 */ 0x7259,0x6433, - /* Array index: 0x1424 */ 0x725B,0x695A, - /* Array index: 0x1424 */ 0x725D,0x5E36, - /* Array index: 0x1424 */ 0x725F,0x593F, - /* Array index: 0x1424 */ 0x7261,0x5940, - /* Array index: 0x1424 */ 0x7262,0x566F, - /* Array index: 0x1424 */ 0x7267,0x594C, - /* Array index: 0x1424 */ 0x7269,0x5A2A, - /* Array index: 0x1424 */ 0x7272,0x5F65, - /* Array index: 0x1424 */ 0x7279,0x7765, - /* Array index: 0x1424 */ 0x727D,0x4C32, - /* Array index: 0x1424 */ 0x7280,0x5F79, - /* Array index: 0x1424 */ 0x7281,0x5760, - /* Array index: 0x1424 */ 0x72A2,0x543B, - /* Array index: 0x1424 */ 0x72A7,0x7D7A, - /* Array index: 0x1424 */ 0x72AC,0x4C33, - /* Array index: 0x1424 */ 0x72AF,0x5B73, - /* Array index: 0x1424 */ 0x72C0,0x5F52, - /* Array index: 0x1424 */ 0x72C2,0x4E4A, - /* Array index: 0x1424 */ 0x72C4,0x6E5A, - /* Array index: 0x1424 */ 0x72CE,0x6464, - /* Array index: 0x1424 */ 0x72D0,0x7B4F, - /* Array index: 0x1424 */ 0x72D7,0x4F37, - /* Array index: 0x1424 */ 0x72D9,0x6E43, - /* Array index: 0x1424 */ 0x72E1,0x4E6A, - /* Array index: 0x1424 */ 0x72E9,0x622D, - /* Array index: 0x1424 */ 0x72F8,0x5761, - /* Array index: 0x1424 */ 0x72F9,0x7A75, - /* Array index: 0x1424 */ 0x72FC,0x5549, - /* Array index: 0x1424 */ 0x72FD,0x782C, - /* Array index: 0x1424 */ 0x730A,0x6759, - /* Array index: 0x1424 */ 0x7316,0x7369, - /* Array index: 0x1424 */ 0x7325,0x6865, - /* Array index: 0x1424 */ 0x7336,0x6B22, - /* Array index: 0x1424 */ 0x7337,0x6B23, - /* Array index: 0x1424 */ 0x733E,0x7C42, - /* Array index: 0x1424 */ 0x733F,0x6A3B, - /* Array index: 0x1424 */ 0x7344,0x682B, - /* Array index: 0x1424 */ 0x7345,0x5E62, - /* Array index: 0x1424 */ 0x7350,0x6D6F, - /* Array index: 0x1424 */ 0x7352,0x6823, - /* Array index: 0x1424 */ 0x7357,0x4F71, - /* Array index: 0x1424 */ 0x7368,0x543C, - /* Array index: 0x1424 */ 0x736A,0x7C6A, - /* Array index: 0x1424 */ 0x7370,0x673E, - /* Array index: 0x1424 */ 0x7372,0x7C72, - /* Array index: 0x1424 */ 0x7375,0x5634, - /* Array index: 0x1424 */ 0x7378,0x622E, - /* Array index: 0x1424 */ 0x737A,0x5337, - /* Array index: 0x1424 */ 0x737B,0x7A4C, - /* Array index: 0x1424 */ 0x7384,0x7A5C, - /* Array index: 0x1424 */ 0x7386,0x6D35, - /* Array index: 0x1424 */ 0x7387,0x6163, - /* Array index: 0x1424 */ 0x7389,0x682C, - /* Array index: 0x1424 */ 0x738B,0x685D, - /* Array index: 0x1424 */ 0x738E,0x6F69, - /* Array index: 0x1424 */ 0x739F,0x5A47, - /* Array index: 0x1424 */ 0x73A7,0x6B49, - /* Array index: 0x1424 */ 0x73A9,0x684C, - /* Array index: 0x1424 */ 0x73AD,0x5E37, - /* Array index: 0x1424 */ 0x73B2,0x563C, - /* Array index: 0x1424 */ 0x73B3,0x5365, - /* Array index: 0x1424 */ 0x73B9,0x7A5D, - /* Array index: 0x1424 */ 0x73C0,0x5A56, - /* Array index: 0x1424 */ 0x73C2,0x4A31, - /* Array index: 0x1424 */ 0x73D6,0x4E4B, - /* Array index: 0x1424 */ 0x73D9,0x4D75, - /* Array index: 0x1424 */ 0x73DD,0x7D30, - /* Array index: 0x1424 */ 0x73DE,0x5528, - /* Array index: 0x1424 */ 0x73E0,0x7141, - /* Array index: 0x1424 */ 0x73ED,0x5A6C, - /* Array index: 0x1424 */ 0x73F7,0x596E, - /* Array index: 0x1424 */ 0x73F9,0x607B, - /* Array index: 0x1424 */ 0x73FD,0x6F6A, - /* Array index: 0x1424 */ 0x73FE,0x7A5E, - /* Array index: 0x1424 */ 0x7401,0x6044, - /* Array index: 0x1424 */ 0x7413,0x684D, - /* Array index: 0x1424 */ 0x741B,0x765A, - /* Array index: 0x1424 */ 0x744B,0x6A54, - /* Array index: 0x1424 */ 0x7455,0x7942, - /* Array index: 0x1424 */ 0x746F,0x554B, - /* Array index: 0x1424 */ 0x747E,0x5048, - /* Array index: 0x1424 */ 0x7482,0x512F, - /* Array index: 0x1424 */ 0x7483,0x5763, - /* Array index: 0x1424 */ 0x7487,0x6046, - /* Array index: 0x1424 */ 0x7489,0x5622, - /* Array index: 0x1424 */ 0x748B,0x6D70, - /* Array index: 0x1424 */ 0x7498,0x5773, - /* Array index: 0x1424 */ 0x749C,0x7C54, - /* Array index: 0x1424 */ 0x749E,0x5A57, - /* Array index: 0x1424 */ 0x749F,0x4C5F, - /* Array index: 0x1424 */ 0x74A1,0x7254, - /* Array index: 0x1424 */ 0x74A3,0x5130, - /* Array index: 0x1424 */ 0x74A5,0x4C60, - /* Array index: 0x1424 */ 0x74A7,0x5B7D, - /* Array index: 0x1424 */ 0x74A8,0x733F, - /* Array index: 0x1424 */ 0x74AA,0x7051, - /* Array index: 0x1424 */ 0x74B0,0x7C3B, - /* Array index: 0x1424 */ 0x74B2,0x6230, - /* Array index: 0x1424 */ 0x74B5,0x6625, - /* Array index: 0x1424 */ 0x74B9,0x625B, - /* Array index: 0x1424 */ 0x74BD,0x5F5E, - /* Array index: 0x1424 */ 0x74BF,0x6047, - /* Array index: 0x1424 */ 0x74C6,0x726F, - /* Array index: 0x1424 */ 0x74CA,0x4C61, - /* Array index: 0x1424 */ 0x74CF,0x566A, - /* Array index: 0x1424 */ 0x74D4,0x6742, - /* Array index: 0x1424 */ 0x74D8,0x4E36, - /* Array index: 0x1424 */ 0x74DA,0x7340, - /* Array index: 0x1424 */ 0x74DC,0x4D7E, - /* Array index: 0x1424 */ 0x74E0,0x7B52, - /* Array index: 0x1424 */ 0x74E2,0x7878, - /* Array index: 0x1424 */ 0x74E3,0x777B, - /* Array index: 0x1424 */ 0x74E6,0x683F, - /* Array index: 0x1424 */ 0x74EE,0x6837, - /* Array index: 0x1424 */ 0x74F7,0x6D36, - /* Array index: 0x1424 */ 0x7501,0x5C3A, - /* Array index: 0x1424 */ 0x7504,0x4C34, - /* Array index: 0x1424 */ 0x7511,0x7177, - /* Array index: 0x1424 */ 0x7515,0x6838, - /* Array index: 0x1424 */ 0x7518,0x4A76, - /* Array index: 0x1424 */ 0x751A,0x6424, - /* Array index: 0x1424 */ 0x751B,0x7456, - /* Array index: 0x1424 */ 0x751F,0x5F66, - /* Array index: 0x1424 */ 0x7523,0x5F27, - /* Array index: 0x1424 */ 0x7525,0x5F67, - /* Array index: 0x1424 */ 0x7526,0x6141, - /* Array index: 0x1424 */ 0x7528,0x6944, - /* Array index: 0x1424 */ 0x752B,0x5C4B, - /* Array index: 0x1424 */ 0x752C,0x6945, - /* Array index: 0x1424 */ 0x7537,0x517B, - /* Array index: 0x1424 */ 0x7538,0x6F24, - /* Array index: 0x1424 */ 0x753A,0x6F6B, - /* Array index: 0x1424 */ 0x7547,0x5034, - /* Array index: 0x1424 */ 0x754C,0x4D23, - /* Array index: 0x1424 */ 0x754F,0x6866, - /* Array index: 0x1424 */ 0x7551,0x6F25, - /* Array index: 0x1424 */ 0x7553,0x534C, - /* Array index: 0x1424 */ 0x7554,0x5A6D, - /* Array index: 0x1424 */ 0x7562,0x7934, - /* Array index: 0x1424 */ 0x7565,0x5554, - /* Array index: 0x1424 */ 0x7566,0x7D4F, - /* Array index: 0x1424 */ 0x756A,0x5B63, - /* Array index: 0x1424 */ 0x756F,0x7161, - /* Array index: 0x1424 */ 0x7570,0x6C36, - /* Array index: 0x1424 */ 0x7575,0x7B7E, - /* Array index: 0x1424 */ 0x7576,0x5357, - /* Array index: 0x1424 */ 0x7578,0x5131, - /* Array index: 0x1424 */ 0x757A,0x4B31, - /* Array index: 0x1424 */ 0x757F,0x5132, - /* Array index: 0x1424 */ 0x7586,0x4B32, - /* Array index: 0x1424 */ 0x7587,0x7142, - /* Array index: 0x1424 */ 0x758A,0x7461, - /* Array index: 0x1424 */ 0x758B,0x7935, - /* Array index: 0x1424 */ 0x758E,0x6143, - /* Array index: 0x1424 */ 0x758F,0x6142, - /* Array index: 0x1424 */ 0x7591,0x6B77, - /* Array index: 0x1424 */ 0x759D,0x5F28, - /* Array index: 0x1424 */ 0x75A5,0x4B4A, - /* Array index: 0x1424 */ 0x75AB,0x6639, - /* Array index: 0x1424 */ 0x75C2,0x4A32, - /* Array index: 0x1424 */ 0x75C5,0x5C3B, - /* Array index: 0x1424 */ 0x75C7,0x7178, - /* Array index: 0x1424 */ 0x75CD,0x6C37, - /* Array index: 0x1424 */ 0x75D2,0x654A, - /* Array index: 0x1424 */ 0x75D4,0x7640, - /* Array index: 0x1424 */ 0x75D5,0x7D5D, - /* Array index: 0x1424 */ 0x75D8,0x5463, - /* Array index: 0x1424 */ 0x75D9,0x4C62, - /* Array index: 0x1424 */ 0x75DB,0x7754, - /* Array index: 0x1424 */ 0x75E2,0x5765, - /* Array index: 0x1424 */ 0x75F0,0x5343, - /* Array index: 0x1424 */ 0x75F2,0x5826, - /* Array index: 0x1424 */ 0x75F4,0x7641, - /* Array index: 0x1424 */ 0x75FA,0x5D76, - /* Array index: 0x1424 */ 0x75FC,0x4D40, - /* Array index: 0x1424 */ 0x7600,0x655C, - /* Array index: 0x1424 */ 0x760D,0x654B, - /* Array index: 0x1424 */ 0x7619,0x6144, - /* Array index: 0x1424 */ 0x763B,0x572A, - /* Array index: 0x1424 */ 0x7642,0x567B, - /* Array index: 0x1424 */ 0x764C,0x645F, - /* Array index: 0x1424 */ 0x764E,0x4A56, - /* Array index: 0x1424 */ 0x7652,0x6B28, - /* Array index: 0x1424 */ 0x7656,0x5B7E, - /* Array index: 0x1424 */ 0x7661,0x7642, - /* Array index: 0x1424 */ 0x7664,0x6F3B, - /* Array index: 0x1424 */ 0x7669,0x547D, - /* Array index: 0x1424 */ 0x766C,0x6048, - /* Array index: 0x1424 */ 0x7670,0x6839, - /* Array index: 0x1424 */ 0x7672,0x6F26, - /* Array index: 0x1424 */ 0x7678,0x4D24, - /* Array index: 0x1424 */ 0x7684,0x6E5C, - /* Array index: 0x1424 */ 0x7686,0x4B4B, - /* Array index: 0x1424 */ 0x7687,0x7C55, - /* Array index: 0x1424 */ 0x768E,0x4E6B, - /* Array index: 0x1424 */ 0x7690,0x4D41, - /* Array index: 0x1424 */ 0x7693,0x7B53, - /* Array index: 0x1424 */ 0x76AE,0x792B, - /* Array index: 0x1424 */ 0x76BA,0x7554, - /* Array index: 0x1424 */ 0x76BF,0x5929, - /* Array index: 0x1424 */ 0x76C2,0x695D, - /* Array index: 0x1424 */ 0x76C3,0x5B4D, - /* Array index: 0x1424 */ 0x76C6,0x5D4E, - /* Array index: 0x1424 */ 0x76C8,0x6743, - /* Array index: 0x1424 */ 0x76CA,0x6C4C, - /* Array index: 0x1424 */ 0x76D2,0x796C, - /* Array index: 0x1424 */ 0x76D6,0x4B4C, - /* Array index: 0x1424 */ 0x76E7,0x5654, - /* Array index: 0x1424 */ 0x76EE,0x594D, - /* Array index: 0x1424 */ 0x76F2,0x586E, - /* Array index: 0x1424 */ 0x76F4,0x7241, - /* Array index: 0x1424 */ 0x76F8,0x5F53, - /* Array index: 0x1424 */ 0x76FC,0x5A70, - /* Array index: 0x1424 */ 0x76FE,0x626A, - /* Array index: 0x1424 */ 0x7701,0x607D, - /* Array index: 0x1424 */ 0x7704,0x5878, - /* Array index: 0x1424 */ 0x7708,0x772F, - /* Array index: 0x1424 */ 0x7709,0x5A36, - /* Array index: 0x1424 */ 0x770B,0x4A57, - /* Array index: 0x1424 */ 0x771E,0x7258, - /* Array index: 0x1424 */ 0x7720,0x5879, - /* Array index: 0x1424 */ 0x7729,0x7A5F, - /* Array index: 0x1424 */ 0x7737,0x4F6F, - /* Array index: 0x1424 */ 0x7738,0x5942, - /* Array index: 0x1424 */ 0x773A,0x7052, - /* Array index: 0x1424 */ 0x773C,0x6451, - /* Array index: 0x1424 */ 0x7740,0x7337, - /* Array index: 0x1424 */ 0x774D,0x7A60, - /* Array index: 0x1424 */ 0x775B,0x6F6C, - /* Array index: 0x1424 */ 0x7761,0x6232, - /* Array index: 0x1424 */ 0x7763,0x543D, - /* Array index: 0x1424 */ 0x7766,0x594E, - /* Array index: 0x1424 */ 0x776B,0x7462, - /* Array index: 0x1424 */ 0x7779,0x5429, - /* Array index: 0x1424 */ 0x777E,0x4D42, - /* Array index: 0x1424 */ 0x777F,0x675A, - /* Array index: 0x1424 */ 0x778B,0x7259, - /* Array index: 0x1424 */ 0x7791,0x592A, - /* Array index: 0x1424 */ 0x779E,0x583E, - /* Array index: 0x1424 */ 0x77A5,0x5C2D, - /* Array index: 0x1424 */ 0x77AC,0x626B, - /* Array index: 0x1424 */ 0x77AD,0x567C, - /* Array index: 0x1424 */ 0x77B0,0x4A79, - /* Array index: 0x1424 */ 0x77B3,0x545A, - /* Array index: 0x1424 */ 0x77BB,0x7457, - /* Array index: 0x1424 */ 0x77BC,0x4C21, - /* Array index: 0x1424 */ 0x77BF,0x4F3A, - /* Array index: 0x1424 */ 0x77D7,0x7538, - /* Array index: 0x1424 */ 0x77DB,0x5943, - /* Array index: 0x1424 */ 0x77DC,0x5068, - /* Array index: 0x1424 */ 0x77E2,0x6345, - /* Array index: 0x1424 */ 0x77E3,0x6B78, - /* Array index: 0x1424 */ 0x77E5,0x7231, - /* Array index: 0x1424 */ 0x77E9,0x4F3B, - /* Array index: 0x1424 */ 0x77F3,0x6034, - /* Array index: 0x1424 */ 0x7802,0x5E63, - /* Array index: 0x1424 */ 0x7812,0x5D77, - /* Array index: 0x1424 */ 0x782C,0x577E, - /* Array index: 0x1424 */ 0x7832,0x785F, - /* Array index: 0x1424 */ 0x7834,0x7772, - /* Array index: 0x1424 */ 0x7845,0x5029, - /* Array index: 0x1424 */ 0x784F,0x665A, - /* Array index: 0x1424 */ 0x785D,0x7526, - /* Array index: 0x1424 */ 0x786B,0x573C, - /* Array index: 0x1424 */ 0x786C,0x4C63, - /* Array index: 0x1424 */ 0x786F,0x665B, - /* Array index: 0x1424 */ 0x787C,0x5D5D, - /* Array index: 0x1424 */ 0x7881,0x5133, - /* Array index: 0x1424 */ 0x7887,0x6F6D, - /* Array index: 0x1424 */ 0x7891,0x5D78, - /* Array index: 0x1424 */ 0x7897,0x684F, - /* Array index: 0x1424 */ 0x78A3,0x4A65, - /* Array index: 0x1424 */ 0x78A7,0x5C21, - /* Array index: 0x1424 */ 0x78A9,0x6035, - /* Array index: 0x1424 */ 0x78C1,0x6D38, - /* Array index: 0x1424 */ 0x78C5,0x5B36, - /* Array index: 0x1424 */ 0x78CA,0x5670, - /* Array index: 0x1424 */ 0x78CB,0x732F, - /* Array index: 0x1424 */ 0x78CE,0x4D25, - /* Array index: 0x1424 */ 0x78D0,0x5A71, - /* Array index: 0x1424 */ 0x78E8,0x5828, - /* Array index: 0x1424 */ 0x78EC,0x4C64, - /* Array index: 0x1424 */ 0x78EF,0x5134, - /* Array index: 0x1424 */ 0x78F5,0x4A58, - /* Array index: 0x1424 */ 0x78FB,0x5A72, - /* Array index: 0x1424 */ 0x7901,0x7527, - /* Array index: 0x1424 */ 0x790E,0x7528, - /* Array index: 0x1424 */ 0x7916,0x6626, - /* Array index: 0x1424 */ 0x793A,0x6346, - /* Array index: 0x1424 */ 0x793E,0x5E64, - /* Array index: 0x1424 */ 0x7940,0x5E65, - /* Array index: 0x1424 */ 0x7941,0x5135, - /* Array index: 0x1424 */ 0x7950,0x695E, - /* Array index: 0x1424 */ 0x7965,0x5F54, - /* Array index: 0x1424 */ 0x7968,0x7879, - /* Array index: 0x1424 */ 0x796D,0x702E, - /* Array index: 0x1424 */ 0x797A,0x5138, - /* Array index: 0x1424 */ 0x797F,0x565F, - /* Array index: 0x1424 */ 0x7981,0x5057, - /* Array index: 0x1424 */ 0x79A6,0x655D, - /* Array index: 0x1424 */ 0x79A7,0x7D7B, - /* Array index: 0x1424 */ 0x79AA,0x6049, - /* Array index: 0x1424 */ 0x79AE,0x5649, - /* Array index: 0x1424 */ 0x79B1,0x542A, - /* Array index: 0x1424 */ 0x79B3,0x654C, - /* Array index: 0x1424 */ 0x79B9,0x6960, - /* Array index: 0x1424 */ 0x79D1,0x4E21, - /* Array index: 0x1424 */ 0x79D2,0x7529, - /* Array index: 0x1424 */ 0x79D5,0x5D79, - /* Array index: 0x1424 */ 0x79D8,0x5D7A, - /* Array index: 0x1424 */ 0x79DF,0x7055, - /* Array index: 0x1424 */ 0x79E4,0x765F, - /* Array index: 0x1424 */ 0x79E6,0x725A, - /* Array index: 0x1424 */ 0x79E7,0x646B, - /* Array index: 0x1424 */ 0x79E9,0x7271, - /* Array index: 0x1424 */ 0x79FB,0x6C39, - /* Array index: 0x1424 */ 0x7A00,0x7D7C, - /* Array index: 0x1424 */ 0x7A05,0x612A, - /* Array index: 0x1424 */ 0x7A08,0x4A59, - /* Array index: 0x1424 */ 0x7A0B,0x6F6F, - /* Array index: 0x1424 */ 0x7A0D,0x752A, - /* Array index: 0x1424 */ 0x7A14,0x6C79, - /* Array index: 0x1424 */ 0x7A17,0x782D, - /* Array index: 0x1424 */ 0x7A19,0x7242, - /* Array index: 0x1424 */ 0x7A1A,0x7643, - /* Array index: 0x1424 */ 0x7A1C,0x5752, - /* Array index: 0x1424 */ 0x7A1F,0x7922, - /* Array index: 0x1424 */ 0x7A20,0x7056, - /* Array index: 0x1424 */ 0x7A2E,0x707A, - /* Array index: 0x1424 */ 0x7A31,0x7660, - /* Array index: 0x1424 */ 0x7A36,0x6973, - /* Array index: 0x1424 */ 0x7A37,0x7243, - /* Array index: 0x1424 */ 0x7A46,0x594F, - /* Array index: 0x1424 */ 0x7A49,0x7644, - /* Array index: 0x1424 */ 0x7A4D,0x6E5D, - /* Array index: 0x1424 */ 0x7A4E,0x6744, - /* Array index: 0x1424 */ 0x7A57,0x6234, - /* Array index: 0x1424 */ 0x7A61,0x5F62, - /* Array index: 0x1424 */ 0x7A62,0x675B, - /* Array index: 0x1424 */ 0x7A69,0x6831, - /* Array index: 0x1424 */ 0x7A6B,0x7C2E, - /* Array index: 0x1424 */ 0x7A70,0x654D, - /* Array index: 0x1424 */ 0x7A74,0x7A6B, - /* Array index: 0x1424 */ 0x7A76,0x4F3C, - /* Array index: 0x1424 */ 0x7A79,0x4F62, - /* Array index: 0x1424 */ 0x7A7A,0x4D76, - /* Array index: 0x1424 */ 0x7A7D,0x6F70, - /* Array index: 0x1424 */ 0x7A7F,0x743E, - /* Array index: 0x1424 */ 0x7A81,0x544D, - /* Array index: 0x1424 */ 0x7A84,0x7338, - /* Array index: 0x1424 */ 0x7A88,0x6921, - /* Array index: 0x1424 */ 0x7A92,0x7272, - /* Array index: 0x1424 */ 0x7A93,0x736B, - /* Array index: 0x1424 */ 0x7A95,0x7057, - /* Array index: 0x1424 */ 0x7A98,0x4F57, - /* Array index: 0x1424 */ 0x7A9F,0x4F5F, - /* Array index: 0x1424 */ 0x7AA9,0x6840, - /* Array index: 0x1424 */ 0x7AAA,0x6841, - /* Array index: 0x1424 */ 0x7AAE,0x4F63, - /* Array index: 0x1424 */ 0x7AAF,0x6922, - /* Array index: 0x1424 */ 0x7ABA,0x502A, - /* Array index: 0x1424 */ 0x7AC4,0x7341, - /* Array index: 0x1424 */ 0x7AC5,0x502B, - /* Array index: 0x1424 */ 0x7AC7,0x5464, - /* Array index: 0x1424 */ 0x7ACA,0x6F3C, - /* Array index: 0x1424 */ 0x7ACB,0x5821, - /* Array index: 0x1424 */ 0x7AD7,0x595F, - /* Array index: 0x1424 */ 0x7AD9,0x7357, - /* Array index: 0x1424 */ 0x7ADD,0x5C3D, - /* Array index: 0x1424 */ 0x7ADF,0x4C65, - /* Array index: 0x1424 */ 0x7AE0,0x6D71, - /* Array index: 0x1424 */ 0x7AE3,0x7162, - /* Array index: 0x1424 */ 0x7AE5,0x545B, - /* Array index: 0x1424 */ 0x7AEA,0x6235, - /* Array index: 0x1424 */ 0x7AED,0x4A66, - /* Array index: 0x1424 */ 0x7AEF,0x532E, - /* Array index: 0x1424 */ 0x7AF6,0x4C66, - /* Array index: 0x1424 */ 0x7AF9,0x7153, - /* Array index: 0x1424 */ 0x7AFA,0x7567, - /* Array index: 0x1424 */ 0x7AFF,0x4A5A, - /* Array index: 0x1424 */ 0x7B0F,0x7B6E, - /* Array index: 0x1424 */ 0x7B11,0x6145, - /* Array index: 0x1424 */ 0x7B19,0x5F69, - /* Array index: 0x1424 */ 0x7B1B,0x6E5E, - /* Array index: 0x1424 */ 0x7B1E,0x7742, - /* Array index: 0x1424 */ 0x7B20,0x5822, - /* Array index: 0x1424 */ 0x7B26,0x5D2C, - /* Array index: 0x1424 */ 0x7B2C,0x702F, - /* Array index: 0x1424 */ 0x7B2D,0x563D, - /* Array index: 0x1424 */ 0x7B39,0x612B, - /* Array index: 0x1424 */ 0x7B46,0x7936, - /* Array index: 0x1424 */ 0x7B60,0x5035, - /* Array index: 0x1424 */ 0x7B6C,0x607E, - /* Array index: 0x1424 */ 0x7B6E,0x5F7B, - /* Array index: 0x1424 */ 0x7B75,0x665D, - /* Array index: 0x1424 */ 0x7B7D,0x6824, - /* Array index: 0x1424 */ 0x7B87,0x4B4D, - /* Array index: 0x1424 */ 0x7B8B,0x6F28, - /* Array index: 0x1424 */ 0x7B8F,0x6E34, - /* Array index: 0x1424 */ 0x7B94,0x5A58, - /* Array index: 0x1424 */ 0x7B95,0x5139, - /* Array index: 0x1424 */ 0x7B97,0x5F29, - /* Array index: 0x1424 */ 0x7B9A,0x7330, - /* Array index: 0x1424 */ 0x7B9D,0x4C44, - /* Array index: 0x1424 */ 0x7BA1,0x4E37, - /* Array index: 0x1424 */ 0x7BAD,0x6F29, - /* Array index: 0x1424 */ 0x7BB1,0x5F55, - /* Array index: 0x1424 */ 0x7BB4,0x6D57, - /* Array index: 0x1424 */ 0x7BB8,0x6E46, - /* Array index: 0x1424 */ 0x7BC0,0x6F3D, - /* Array index: 0x1424 */ 0x7BC1,0x7C56, - /* Array index: 0x1424 */ 0x7BC4,0x5B74, - /* Array index: 0x1424 */ 0x7BC6,0x6F2A, - /* Array index: 0x1424 */ 0x7BC7,0x7839, - /* Array index: 0x1424 */ 0x7BC9,0x7569, - /* Array index: 0x1424 */ 0x7BD2,0x6359, - /* Array index: 0x1424 */ 0x7BE0,0x6146, - /* Array index: 0x1424 */ 0x7BE4,0x543F, - /* Array index: 0x1424 */ 0x7BE9,0x5E68, - /* Array index: 0x1424 */ 0x7C07,0x706A, - /* Array index: 0x1424 */ 0x7C12,0x7342, - /* Array index: 0x1424 */ 0x7C1E,0x532F, - /* Array index: 0x1424 */ 0x7C21,0x4A5B, - /* Array index: 0x1424 */ 0x7C27,0x7C57, - /* Array index: 0x1424 */ 0x7C2A,0x6D58, - /* Array index: 0x1424 */ 0x7C2B,0x6147, - /* Array index: 0x1424 */ 0x7C43,0x553E, - /* Array index: 0x1424 */ 0x7C4C,0x7143, - /* Array index: 0x1424 */ 0x7C4D,0x6E5F, - /* Array index: 0x1424 */ 0x7C60,0x566B, - /* Array index: 0x1424 */ 0x7C64,0x7459, - /* Array index: 0x1424 */ 0x7C6C,0x5766, - /* Array index: 0x1424 */ 0x7C73,0x5A37, - /* Array index: 0x1424 */ 0x7C83,0x5D7B, - /* Array index: 0x1424 */ 0x7C89,0x5D4F, - /* Array index: 0x1424 */ 0x7C92,0x5823, - /* Array index: 0x1424 */ 0x7C95,0x5A59, - /* Array index: 0x1424 */ 0x7C97,0x7058, - /* Array index: 0x1424 */ 0x7C98,0x6F44, - /* Array index: 0x1424 */ 0x7C9F,0x6158, - /* Array index: 0x1424 */ 0x7CA5,0x7154, - /* Array index: 0x1424 */ 0x7CA7,0x6D72, - /* Array index: 0x1424 */ 0x7CAE,0x555B, - /* Array index: 0x1424 */ 0x7CB9,0x6236, - /* Array index: 0x1424 */ 0x7CBE,0x6F71, - /* Array index: 0x1424 */ 0x7CCA,0x7B55, - /* Array index: 0x1424 */ 0x7CD6,0x5358, - /* Array index: 0x1424 */ 0x7CE7,0x555D, - /* Array index: 0x1424 */ 0x7CFB,0x4D27, - /* Array index: 0x1424 */ 0x7CFE,0x502C, - /* Array index: 0x1424 */ 0x7D00,0x513A, - /* Array index: 0x1424 */ 0x7D10,0x526F, - /* Array index: 0x1424 */ 0x7D14,0x626D, - /* Array index: 0x1424 */ 0x7D33,0x636B, - /* Array index: 0x1424 */ 0x7D35,0x6E47, - /* Array index: 0x1424 */ 0x7D39,0x6149, - /* Array index: 0x1424 */ 0x7D3A,0x4A7A, - /* Array index: 0x1424 */ 0x7D50,0x4C3F, - /* Array index: 0x1424 */ 0x7D5E,0x4E6D, - /* Array index: 0x1424 */ 0x7D61,0x5529, - /* Array index: 0x1424 */ 0x7D62,0x7A62, - /* Array index: 0x1424 */ 0x7D66,0x5065, - /* Array index: 0x1424 */ 0x7D68,0x6B56, - /* Array index: 0x1424 */ 0x7D6A,0x6C5F, - /* Array index: 0x1424 */ 0x7D6E,0x5F7C, - /* Array index: 0x1424 */ 0x7D76,0x6F3E, - /* Array index: 0x1424 */ 0x7D79,0x4C35, - /* Array index: 0x1424 */ 0x7D7F,0x4F3D, - /* Array index: 0x1424 */ 0x7D8E,0x6F72, - /* Array index: 0x1424 */ 0x7D8F,0x6237, - /* Array index: 0x1424 */ 0x7D93,0x4C68, - /* Array index: 0x1424 */ 0x7D9C,0x707C, - /* Array index: 0x1424 */ 0x7DA0,0x5660, - /* Array index: 0x1424 */ 0x7DA2,0x7146, - /* Array index: 0x1424 */ 0x7DAC,0x6238, - /* Array index: 0x1424 */ 0x7DAD,0x6B2B, - /* Array index: 0x1424 */ 0x7DB8,0x5746, - /* Array index: 0x1424 */ 0x7DC7,0x7645, - /* Array index: 0x1424 */ 0x7DCA,0x514C, - /* Array index: 0x1424 */ 0x7DCB,0x5D7C, - /* Array index: 0x1424 */ 0x7DD6,0x5F7D, - /* Array index: 0x1424 */ 0x7DD8,0x7965, - /* Array index: 0x1424 */ 0x7DDA,0x604A, - /* Array index: 0x1424 */ 0x7DE8,0x783A, - /* Array index: 0x1424 */ 0x7DE9,0x6850, - /* Array index: 0x1424 */ 0x7DEC,0x587B, - /* Array index: 0x1424 */ 0x7DEF,0x6A55, - /* Array index: 0x1424 */ 0x7DF4,0x5623, - /* Array index: 0x1424 */ 0x7DFB,0x7646, - /* Array index: 0x1424 */ 0x7E09,0x725B, - /* Array index: 0x1424 */ 0x7E0A,0x647C, - /* Array index: 0x1424 */ 0x7E15,0x6832, - /* Array index: 0x1424 */ 0x7E2B,0x5C6E, - /* Array index: 0x1424 */ 0x7E2E,0x756A, - /* Array index: 0x1424 */ 0x7E2F,0x6660, - /* Array index: 0x1424 */ 0x7E31,0x707D, - /* Array index: 0x1424 */ 0x7E37,0x572C, - /* Array index: 0x1424 */ 0x7E3D,0x7545, - /* Array index: 0x1424 */ 0x7E3E,0x6E60, - /* Array index: 0x1424 */ 0x7E41,0x5B65, - /* Array index: 0x1424 */ 0x7E43,0x5D5E, - /* Array index: 0x1424 */ 0x7E46,0x5970, - /* Array index: 0x1424 */ 0x7E47,0x6923, - /* Array index: 0x1424 */ 0x7E52,0x7179, - /* Array index: 0x1424 */ 0x7E54,0x7244, - /* Array index: 0x1424 */ 0x7E55,0x604B, - /* Array index: 0x1424 */ 0x7E5E,0x6924, - /* Array index: 0x1424 */ 0x7E61,0x6239, - /* Array index: 0x1424 */ 0x7E70,0x705B, - /* Array index: 0x1424 */ 0x7E79,0x663A, - /* Array index: 0x1424 */ 0x7E7C,0x4D29, - /* Array index: 0x1424 */ 0x7E82,0x7343, - /* Array index: 0x1424 */ 0x7E8C,0x6159, - /* Array index: 0x1424 */ 0x7E8F,0x6F2B, - /* Array index: 0x1424 */ 0x7E93,0x6745, - /* Array index: 0x1424 */ 0x7E96,0x6069, - /* Array index: 0x1424 */ 0x7E98,0x7345, - /* Array index: 0x1424 */ 0x7E9B,0x5440, - /* Array index: 0x1424 */ 0x7E9C,0x553F, - /* Array index: 0x1424 */ 0x7F36,0x5D2E, - /* Array index: 0x1424 */ 0x7F38,0x797C, - /* Array index: 0x1424 */ 0x7F3A,0x4C40, - /* Array index: 0x1424 */ 0x7F4C,0x6522, - /* Array index: 0x1424 */ 0x7F50,0x4E38, - /* Array index: 0x1424 */ 0x7F54,0x5852, - /* Array index: 0x1424 */ 0x7F55,0x7956, - /* Array index: 0x1424 */ 0x7F6A,0x712A, - /* Array index: 0x1424 */ 0x7F6B,0x4E51, - /* Array index: 0x1424 */ 0x7F6E,0x7647, - /* Array index: 0x1424 */ 0x7F70,0x5B6B, - /* Array index: 0x1424 */ 0x7F72,0x5F7E, - /* Array index: 0x1424 */ 0x7F75,0x5861, - /* Array index: 0x1424 */ 0x7F77,0x7773, - /* Array index: 0x1424 */ 0x7F79,0x5767, - /* Array index: 0x1424 */ 0x7F85,0x547E, - /* Array index: 0x1424 */ 0x7F88,0x513C, - /* Array index: 0x1424 */ 0x7F8A,0x654F, - /* Array index: 0x1424 */ 0x7F8C,0x4B36, - /* Array index: 0x1424 */ 0x7F8E,0x5A38, - /* Array index: 0x1424 */ 0x7F94,0x4D44, - /* Array index: 0x1424 */ 0x7F9A,0x563E, - /* Array index: 0x1424 */ 0x7F9E,0x623A, - /* Array index: 0x1424 */ 0x7FA4,0x4F58, - /* Array index: 0x1424 */ 0x7FA8,0x604C, - /* Array index: 0x1424 */ 0x7FA9,0x6B79, - /* Array index: 0x1424 */ 0x7FB2,0x7D7D, - /* Array index: 0x1424 */ 0x7FB8,0x5768, - /* Array index: 0x1424 */ 0x7FB9,0x4B58, - /* Array index: 0x1424 */ 0x7FBD,0x6962, - /* Array index: 0x1424 */ 0x7FC1,0x683A, - /* Array index: 0x1424 */ 0x7FC5,0x6347, - /* Array index: 0x1424 */ 0x7FCA,0x6C4D, - /* Array index: 0x1424 */ 0x7FCC,0x6C4E, - /* Array index: 0x1424 */ 0x7FCE,0x563F, - /* Array index: 0x1424 */ 0x7FD2,0x6327, - /* Array index: 0x1424 */ 0x7FD4,0x5F56, - /* Array index: 0x1424 */ 0x7FD5,0x7D68, - /* Array index: 0x1424 */ 0x7FE9,0x783B, - /* Array index: 0x1424 */ 0x7FEB,0x6851, - /* Array index: 0x1424 */ 0x7FF0,0x7957, - /* Array index: 0x1424 */ 0x7FF9,0x4E6E, - /* Array index: 0x1424 */ 0x7FFC,0x6C4F, - /* Array index: 0x1424 */ 0x8000,0x6925, - /* Array index: 0x1424 */ 0x8001,0x5655, - /* Array index: 0x1424 */ 0x8003,0x4D45, - /* Array index: 0x1424 */ 0x8005,0x6D3A, - /* Array index: 0x1424 */ 0x8006,0x513D, - /* Array index: 0x1424 */ 0x8009,0x4F3E, - /* Array index: 0x1424 */ 0x800C,0x6C3B, - /* Array index: 0x1424 */ 0x8010,0x5231, - /* Array index: 0x1424 */ 0x8015,0x4C69, - /* Array index: 0x1424 */ 0x8017,0x5944, - /* Array index: 0x1424 */ 0x8018,0x697C, - /* Array index: 0x1424 */ 0x802D,0x513E, - /* Array index: 0x1424 */ 0x8033,0x6C3C, - /* Array index: 0x1424 */ 0x8036,0x652D, - /* Array index: 0x1424 */ 0x803D,0x7730, - /* Array index: 0x1424 */ 0x803F,0x4C6A, - /* Array index: 0x1424 */ 0x8043,0x5344, - /* Array index: 0x1424 */ 0x8046,0x5640, - /* Array index: 0x1424 */ 0x804A,0x567D, - /* Array index: 0x1424 */ 0x8056,0x6121, - /* Array index: 0x1424 */ 0x8058,0x5E3D, - /* Array index: 0x1424 */ 0x805A,0x7629, - /* Array index: 0x1424 */ 0x805E,0x5A24, - /* Array index: 0x1424 */ 0x8077,0x7245, - /* Array index: 0x1424 */ 0x8096,0x752B, - /* Array index: 0x1424 */ 0x809B,0x797D, - /* Array index: 0x1424 */ 0x809D,0x4A5C, - /* Array index: 0x1424 */ 0x80A1,0x4D46, - /* Array index: 0x1424 */ 0x80A2,0x7236, - /* Array index: 0x1424 */ 0x80A5,0x5D7E, - /* Array index: 0x1424 */ 0x80A9,0x4C37, - /* Array index: 0x1424 */ 0x80AA,0x5B38, - /* Array index: 0x1424 */ 0x80AF,0x5069, - /* Array index: 0x1424 */ 0x80B1,0x4E5D, - /* Array index: 0x1424 */ 0x80B2,0x6B40, - /* Array index: 0x1424 */ 0x80B4,0x7D22, - /* Array index: 0x1424 */ 0x80BA,0x784B, - /* Array index: 0x1424 */ 0x80C3,0x6A56, - /* Array index: 0x1424 */ 0x80C4,0x7130, - /* Array index: 0x1424 */ 0x80CC,0x5B4E, - /* Array index: 0x1424 */ 0x80CE,0x7743, - /* Array index: 0x1424 */ 0x80DA,0x5B4F, - /* Array index: 0x1424 */ 0x80DB,0x4B24, - /* Array index: 0x1424 */ 0x80DE,0x7860, - /* Array index: 0x1424 */ 0x80E1,0x7B57, - /* Array index: 0x1424 */ 0x80E4,0x6B4A, - /* Array index: 0x1424 */ 0x80E5,0x6021, - /* Array index: 0x1424 */ 0x80F1,0x4E4D, - /* Array index: 0x1424 */ 0x80F4,0x545C, - /* Array index: 0x1424 */ 0x80F8,0x7D58, - /* Array index: 0x1424 */ 0x80FD,0x5276, - /* Array index: 0x1424 */ 0x8102,0x7237, - /* Array index: 0x1424 */ 0x8118,0x6852, - /* Array index: 0x1424 */ 0x811A,0x4A45, - /* Array index: 0x1424 */ 0x811B,0x4C6B, - /* Array index: 0x1424 */ 0x8123,0x626E, - /* Array index: 0x1424 */ 0x8129,0x623B, - /* Array index: 0x1424 */ 0x812B,0x772D, - /* Array index: 0x1424 */ 0x812F,0x7861, - /* Array index: 0x1424 */ 0x8139,0x736C, - /* Array index: 0x1424 */ 0x813E,0x5E21, - /* Array index: 0x1424 */ 0x814B,0x647D, - /* Array index: 0x1424 */ 0x814E,0x636C, - /* Array index: 0x1424 */ 0x8150,0x5D2F, - /* Array index: 0x1424 */ 0x8151,0x5D30, - /* Array index: 0x1424 */ 0x8154,0x4B37, - /* Array index: 0x1424 */ 0x8155,0x6853, - /* Array index: 0x1424 */ 0x8165,0x6123, - /* Array index: 0x1424 */ 0x8166,0x5260, - /* Array index: 0x1424 */ 0x816B,0x707E, - /* Array index: 0x1424 */ 0x8170,0x6926, - /* Array index: 0x1424 */ 0x8171,0x4B72, - /* Array index: 0x1424 */ 0x817F,0x775A, - /* Array index: 0x1424 */ 0x8180,0x5B39, - /* Array index: 0x1424 */ 0x8188,0x4C2E, - /* Array index: 0x1424 */ 0x818A,0x5A5B, - /* Array index: 0x1424 */ 0x818F,0x4D47, - /* Array index: 0x1424 */ 0x819A,0x5D31, - /* Array index: 0x1424 */ 0x819C,0x582F, - /* Array index: 0x1424 */ 0x819D,0x6323, - /* Array index: 0x1424 */ 0x81A0,0x4E6F, - /* Array index: 0x1424 */ 0x81A3,0x7273, - /* Array index: 0x1424 */ 0x81A8,0x7833, - /* Array index: 0x1424 */ 0x81B3,0x604E, - /* Array index: 0x1424 */ 0x81B5,0x757D, - /* Array index: 0x1424 */ 0x81BA,0x6B6C, - /* Array index: 0x1424 */ 0x81C6,0x6566, - /* Array index: 0x1424 */ 0x81CD,0x7030, - /* Array index: 0x1424 */ 0x81D8,0x5544, - /* Array index: 0x1424 */ 0x81DF,0x6D74, - /* Array index: 0x1424 */ 0x81E3,0x636D, - /* Array index: 0x1424 */ 0x81E5,0x6842, - /* Array index: 0x1424 */ 0x81E7,0x6D75, - /* Array index: 0x1424 */ 0x81E8,0x577C, - /* Array index: 0x1424 */ 0x81EA,0x6D3B, - /* Array index: 0x1424 */ 0x81ED,0x762B, - /* Array index: 0x1424 */ 0x81F3,0x7238, - /* Array index: 0x1424 */ 0x81F4,0x7648, - /* Array index: 0x1424 */ 0x8205,0x4F40, - /* Array index: 0x1424 */ 0x8207,0x6628, - /* Array index: 0x1424 */ 0x8208,0x7D69, - /* Array index: 0x1424 */ 0x820A,0x4F41, - /* Array index: 0x1424 */ 0x820C,0x605F, - /* Array index: 0x1424 */ 0x820D,0x5E6C, - /* Array index: 0x1424 */ 0x8212,0x6022, - /* Array index: 0x1424 */ 0x8240,0x5D32, - /* Array index: 0x1424 */ 0x8245,0x6629, - /* Array index: 0x1424 */ 0x8247,0x6F73, - /* Array index: 0x1424 */ 0x8259,0x736D, - /* Array index: 0x1424 */ 0x8264,0x6B7A, - /* Array index: 0x1424 */ 0x8266,0x7966, - /* Array index: 0x1424 */ 0x8276,0x667D, - /* Array index: 0x1424 */ 0x8278,0x752C, - /* Array index: 0x1424 */ 0x827E,0x6475, - /* Array index: 0x1424 */ 0x828B,0x6963, - /* Array index: 0x1424 */ 0x828D,0x6D4B, - /* Array index: 0x1424 */ 0x828E,0x4F64, - /* Array index: 0x1424 */ 0x8292,0x5853, - /* Array index: 0x1424 */ 0x8299,0x5D33, - /* Array index: 0x1424 */ 0x829A,0x546C, - /* Array index: 0x1424 */ 0x829D,0x7239, - /* Array index: 0x1424 */ 0x829F,0x5F37, - /* Array index: 0x1424 */ 0x82A5,0x4B4E, - /* Array index: 0x1424 */ 0x82A6,0x7B58, - /* Array index: 0x1424 */ 0x82A9,0x5059, - /* Array index: 0x1424 */ 0x82DB,0x4A34, - /* Array index: 0x1424 */ 0x82DE,0x7862, - /* Array index: 0x1424 */ 0x82DF,0x4F42, - /* Array index: 0x1424 */ 0x82E1,0x6C3E, - /* Array index: 0x1424 */ 0x82F1,0x6748, - /* Array index: 0x1424 */ 0x8309,0x5849, - /* Array index: 0x1424 */ 0x8317,0x592B, - /* Array index: 0x1424 */ 0x8328,0x6D3C, - /* Array index: 0x1424 */ 0x832B,0x5854, - /* Array index: 0x1424 */ 0x832F,0x5C5A, - /* Array index: 0x1424 */ 0x8331,0x623C, - /* Array index: 0x1424 */ 0x8340,0x6270, - /* Array index: 0x1424 */ 0x8347,0x7A3B, - /* Array index: 0x1424 */ 0x8349,0x752E, - /* Array index: 0x1424 */ 0x834A,0x7B2A, - /* Array index: 0x1424 */ 0x834F,0x6C7B, - /* Array index: 0x1424 */ 0x8351,0x6C3F, - /* Array index: 0x1424 */ 0x8352,0x7C58, - /* Array index: 0x1424 */ 0x8373,0x5465, - /* Array index: 0x1424 */ 0x8377,0x7943, - /* Array index: 0x1424 */ 0x837B,0x6E62, - /* Array index: 0x1424 */ 0x8389,0x5769, - /* Array index: 0x1424 */ 0x838A,0x6D76, - /* Array index: 0x1424 */ 0x838E,0x5E6D, - /* Array index: 0x1424 */ 0x8396,0x4C6C, - /* Array index: 0x1424 */ 0x8398,0x636E, - /* Array index: 0x1424 */ 0x839E,0x6854, - /* Array index: 0x1424 */ 0x83A2,0x7A78, - /* Array index: 0x1424 */ 0x83BD,0x5855, - /* Array index: 0x1424 */ 0x83C1,0x746A, - /* Array index: 0x1424 */ 0x83C5,0x4E39, - /* Array index: 0x1424 */ 0x83C9,0x5661, - /* Array index: 0x1424 */ 0x83CA,0x4F52, - /* Array index: 0x1424 */ 0x83CC,0x5036, - /* Array index: 0x1424 */ 0x83D3,0x4E22, - /* Array index: 0x1424 */ 0x83D6,0x736E, - /* Array index: 0x1424 */ 0x83DC,0x7378, - /* Array index: 0x1424 */ 0x83E9,0x5C4C, - /* Array index: 0x1424 */ 0x83EB,0x504B, - /* Array index: 0x1424 */ 0x83F9,0x6E49, - /* Array index: 0x1424 */ 0x83FD,0x625D, - /* Array index: 0x1424 */ 0x8403,0x757E, - /* Array index: 0x1424 */ 0x8404,0x542C, - /* Array index: 0x1424 */ 0x8429,0x7557, - /* Array index: 0x1424 */ 0x842C,0x583F, - /* Array index: 0x1424 */ 0x8431,0x7D40, - /* Array index: 0x1424 */ 0x8438,0x6B2D, - /* Array index: 0x1424 */ 0x843D,0x552A, - /* Array index: 0x1424 */ 0x8449,0x6728, - /* Array index: 0x1424 */ 0x8457,0x6E4A, - /* Array index: 0x1424 */ 0x845B,0x4A67, - /* Array index: 0x1424 */ 0x8461,0x7863, - /* Array index: 0x1424 */ 0x8463,0x545D, - /* Array index: 0x1424 */ 0x8466,0x6A58, - /* Array index: 0x1424 */ 0x846B,0x7B59, - /* Array index: 0x1424 */ 0x846C,0x6D77, - /* Array index: 0x1424 */ 0x846F,0x6535, - /* Array index: 0x1424 */ 0x8475,0x502D, - /* Array index: 0x1424 */ 0x847A,0x7171, - /* Array index: 0x1424 */ 0x8490,0x623D, - /* Array index: 0x1424 */ 0x8494,0x6348, - /* Array index: 0x1424 */ 0x8499,0x5955, - /* Array index: 0x1424 */ 0x849C,0x5F2A, - /* Array index: 0x1424 */ 0x84A1,0x5B3C, - /* Array index: 0x1424 */ 0x84B2,0x7864, - /* Array index: 0x1424 */ 0x84B8,0x717A, - /* Array index: 0x1424 */ 0x84BB,0x6536, - /* Array index: 0x1424 */ 0x84BC,0x736F, - /* Array index: 0x1424 */ 0x84BF,0x7B5A, - /* Array index: 0x1424 */ 0x84C0,0x6160, - /* Array index: 0x1424 */ 0x84C2,0x592C, - /* Array index: 0x1424 */ 0x84C4,0x756B, - /* Array index: 0x1424 */ 0x84C6,0x6036, - /* Array index: 0x1424 */ 0x84C9,0x6948, - /* Array index: 0x1424 */ 0x84CB,0x4B4F, - /* Array index: 0x1424 */ 0x84CD,0x6349, - /* Array index: 0x1424 */ 0x84D1,0x5E6E, - /* Array index: 0x1424 */ 0x84DA,0x623E, - /* Array index: 0x1424 */ 0x84EC,0x5C6F, - /* Array index: 0x1424 */ 0x84EE,0x5625, - /* Array index: 0x1424 */ 0x84F4,0x6271, - /* Array index: 0x1424 */ 0x84FC,0x567E, - /* Array index: 0x1424 */ 0x8511,0x5921, - /* Array index: 0x1424 */ 0x8513,0x5840, - /* Array index: 0x1424 */ 0x8514,0x5C5B, - /* Array index: 0x1424 */ 0x8517,0x6D3D, - /* Array index: 0x1424 */ 0x8518,0x5F38, - /* Array index: 0x1424 */ 0x851A,0x6A25, - /* Array index: 0x1424 */ 0x851E,0x572D, - /* Array index: 0x1424 */ 0x8521,0x7379, - /* Array index: 0x1424 */ 0x8523,0x6D78, - /* Array index: 0x1424 */ 0x8525,0x7547, - /* Array index: 0x1424 */ 0x852C,0x614A, - /* Array index: 0x1424 */ 0x852D,0x6B63, - /* Array index: 0x1424 */ 0x852F,0x725E, - /* Array index: 0x1424 */ 0x853D,0x784C, - /* Array index: 0x1424 */ 0x853F,0x6A59, - /* Array index: 0x1424 */ 0x8541,0x5346, - /* Array index: 0x1424 */ 0x8543,0x5B66, - /* Array index: 0x1424 */ 0x8549,0x752F, - /* Array index: 0x1424 */ 0x854E,0x4E70, - /* Array index: 0x1424 */ 0x8553,0x697E, - /* Array index: 0x1424 */ 0x8559,0x7B36, - /* Array index: 0x1424 */ 0x8563,0x6272, - /* Array index: 0x1424 */ 0x856D,0x614B, - /* Array index: 0x1424 */ 0x8584,0x5A5D, - /* Array index: 0x1424 */ 0x8587,0x5A39, - /* Array index: 0x1424 */ 0x858F,0x6B7B, - /* Array index: 0x1424 */ 0x8591,0x4B39, - /* Array index: 0x1424 */ 0x8594,0x6D79, - /* Array index: 0x1424 */ 0x859B,0x6060, - /* Array index: 0x1424 */ 0x85AF,0x6023, - /* Array index: 0x1424 */ 0x85B0,0x7D39, - /* Array index: 0x1424 */ 0x85BA,0x7031, - /* Array index: 0x1424 */ 0x85C1,0x4D4B, - /* Array index: 0x1424 */ 0x85C9,0x6D3E, - /* Array index: 0x1424 */ 0x85D5,0x6964, - /* Array index: 0x1424 */ 0x85DC,0x556D, - /* Array index: 0x1424 */ 0x85DD,0x675D, - /* Array index: 0x1424 */ 0x85E4,0x5476, - /* Array index: 0x1424 */ 0x85E5,0x6537, - /* Array index: 0x1424 */ 0x85E9,0x5B67, - /* Array index: 0x1424 */ 0x85EA,0x623F, - /* Array index: 0x1424 */ 0x85F7,0x6E4B, - /* Array index: 0x1424 */ 0x85FA,0x5774, - /* Array index: 0x1424 */ 0x85FB,0x705D, - /* Array index: 0x1424 */ 0x85FF,0x4E2B, - /* Array index: 0x1424 */ 0x8602,0x675E, - /* Array index: 0x1424 */ 0x8606,0x5656, - /* Array index: 0x1424 */ 0x8607,0x614C, - /* Array index: 0x1424 */ 0x860A,0x6833, - /* Array index: 0x1424 */ 0x8616,0x656E, - /* Array index: 0x1424 */ 0x8617,0x5C22, - /* Array index: 0x1424 */ 0x861A,0x6050, - /* Array index: 0x1424 */ 0x862D,0x5535, - /* Array index: 0x1424 */ 0x863F,0x5521, - /* Array index: 0x1424 */ 0x864E,0x7B5B, - /* Array index: 0x1424 */ 0x8650,0x794B, - /* Array index: 0x1424 */ 0x8654,0x4B73, - /* Array index: 0x1424 */ 0x8655,0x7425, - /* Array index: 0x1424 */ 0x8667,0x7D50, - /* Array index: 0x1424 */ 0x8679,0x7B76, - /* Array index: 0x1424 */ 0x868A,0x5A25, - /* Array index: 0x1424 */ 0x868C,0x5B3D, - /* Array index: 0x1424 */ 0x8693,0x6C62, - /* Array index: 0x1424 */ 0x86A3,0x4D77, - /* Array index: 0x1424 */ 0x86A4,0x705E, - /* Array index: 0x1424 */ 0x86A9,0x7649, - /* Array index: 0x1424 */ 0x86C7,0x5E6F, - /* Array index: 0x1424 */ 0x86CB,0x5331, - /* Array index: 0x1424 */ 0x86D4,0x7C6E, - /* Array index: 0x1424 */ 0x86D9,0x6843, - /* Array index: 0x1424 */ 0x86DB,0x7148, - /* Array index: 0x1424 */ 0x86DF,0x4E71, - /* Array index: 0x1424 */ 0x86E4,0x796D, - /* Array index: 0x1424 */ 0x86ED,0x7274, - /* Array index: 0x1424 */ 0x86FE,0x6436, - /* Array index: 0x1424 */ 0x8700,0x7539, - /* Array index: 0x1424 */ 0x8702,0x5C70, - /* Array index: 0x1424 */ 0x8703,0x6371, - /* Array index: 0x1424 */ 0x8708,0x6825, - /* Array index: 0x1424 */ 0x8718,0x723B, - /* Array index: 0x1424 */ 0x871A,0x5E24, - /* Array index: 0x1424 */ 0x871C,0x5A4C, - /* Array index: 0x1424 */ 0x874E,0x4A69, - /* Array index: 0x1424 */ 0x8755,0x635A, - /* Array index: 0x1424 */ 0x8757,0x7C59, - /* Array index: 0x1424 */ 0x875F,0x6A5A, - /* Array index: 0x1424 */ 0x8766,0x7944, - /* Array index: 0x1424 */ 0x8768,0x6324, - /* Array index: 0x1424 */ 0x8774,0x7B5D, - /* Array index: 0x1424 */ 0x8776,0x6F4A, - /* Array index: 0x1424 */ 0x8778,0x6844, - /* Array index: 0x1424 */ 0x8782,0x554C, - /* Array index: 0x1424 */ 0x878D,0x6B57, - /* Array index: 0x1424 */ 0x879F,0x592D, - /* Array index: 0x1424 */ 0x87A2,0x7B2B, - /* Array index: 0x1424 */ 0x87B3,0x5359, - /* Array index: 0x1424 */ 0x87BA,0x5522, - /* Array index: 0x1424 */ 0x87C4,0x765E, - /* Array index: 0x1424 */ 0x87E0,0x5A76, - /* Array index: 0x1424 */ 0x87EC,0x6051, - /* Array index: 0x1424 */ 0x87EF,0x6928, - /* Array index: 0x1424 */ 0x87F2,0x7579, - /* Array index: 0x1424 */ 0x87F9,0x7A2F, - /* Array index: 0x1424 */ 0x87FB,0x6B7C, - /* Array index: 0x1424 */ 0x87FE,0x606A, - /* Array index: 0x1424 */ 0x8805,0x6332, - /* Array index: 0x1424 */ 0x881F,0x5545, - /* Array index: 0x1424 */ 0x8822,0x7163, - /* Array index: 0x1424 */ 0x8823,0x556E, - /* Array index: 0x1424 */ 0x8831,0x4D4C, - /* Array index: 0x1424 */ 0x8836,0x6D59, - /* Array index: 0x1424 */ 0x883B,0x5841, - /* Array index: 0x1424 */ 0x8840,0x7A6C, - /* Array index: 0x1424 */ 0x8846,0x716B, - /* Array index: 0x1424 */ 0x884C,0x7A3C, - /* Array index: 0x1424 */ 0x884D,0x6662, - /* Array index: 0x1424 */ 0x8852,0x7A65, - /* Array index: 0x1424 */ 0x8853,0x627A, - /* Array index: 0x1424 */ 0x8857,0x4A36, - /* Array index: 0x1424 */ 0x8859,0x6437, - /* Array index: 0x1424 */ 0x885B,0x6A5B, - /* Array index: 0x1424 */ 0x885D,0x757A, - /* Array index: 0x1424 */ 0x8868,0x787A, - /* Array index: 0x1424 */ 0x886B,0x5F39, - /* Array index: 0x1424 */ 0x8870,0x6171, - /* Array index: 0x1424 */ 0x8872,0x5224, - /* Array index: 0x1424 */ 0x8877,0x757B, - /* Array index: 0x1424 */ 0x8888,0x4A37, - /* Array index: 0x1424 */ 0x888B,0x5367, - /* Array index: 0x1424 */ 0x888D,0x7865, - /* Array index: 0x1424 */ 0x8892,0x5332, - /* Array index: 0x1424 */ 0x8896,0x6240, - /* Array index: 0x1424 */ 0x8897,0x725F, - /* Array index: 0x1424 */ 0x889E,0x4D65, - /* Array index: 0x1424 */ 0x88AB,0x792C, - /* Array index: 0x1424 */ 0x88B4,0x4D4D, - /* Array index: 0x1424 */ 0x88C1,0x6E2E, - /* Array index: 0x1424 */ 0x88C2,0x562E, - /* Array index: 0x1424 */ 0x88CF,0x576A, - /* Array index: 0x1424 */ 0x88D4,0x6760, - /* Array index: 0x1424 */ 0x88D5,0x6B2E, - /* Array index: 0x1424 */ 0x88D9,0x4F59, - /* Array index: 0x1424 */ 0x88DC,0x5C4D, - /* Array index: 0x1424 */ 0x88DD,0x6D7B, - /* Array index: 0x1424 */ 0x88DF,0x5E70, - /* Array index: 0x1424 */ 0x88E1,0x576B, - /* Array index: 0x1424 */ 0x88E8,0x5E25, - /* Array index: 0x1424 */ 0x88F8,0x5523, - /* Array index: 0x1424 */ 0x88FD,0x7032, - /* Array index: 0x1424 */ 0x8907,0x5C5C, - /* Array index: 0x1424 */ 0x8910,0x4A68, - /* Array index: 0x1424 */ 0x8912,0x7866, - /* Array index: 0x1424 */ 0x8913,0x5C4E, - /* Array index: 0x1424 */ 0x8918,0x6A5C, - /* Array index: 0x1424 */ 0x8919,0x5B52, - /* Array index: 0x1424 */ 0x8925,0x6933, - /* Array index: 0x1424 */ 0x892A,0x775B, - /* Array index: 0x1424 */ 0x8936,0x6328, - /* Array index: 0x1424 */ 0x8938,0x572E, - /* Array index: 0x1424 */ 0x893B,0x6061, - /* Array index: 0x1424 */ 0x8941,0x4B3A, - /* Array index: 0x1424 */ 0x8944,0x6551, - /* Array index: 0x1424 */ 0x895F,0x505C, - /* Array index: 0x1424 */ 0x8964,0x5541, - /* Array index: 0x1424 */ 0x896A,0x584A, - /* Array index: 0x1424 */ 0x8972,0x6329, - /* Array index: 0x1424 */ 0x897F,0x6024, - /* Array index: 0x1424 */ 0x8981,0x6929, - /* Array index: 0x1424 */ 0x8983,0x5347, - /* Array index: 0x1424 */ 0x8986,0x5C5D, - /* Array index: 0x1424 */ 0x8987,0x782E, - /* Array index: 0x1424 */ 0x898B,0x4C38, - /* Array index: 0x1424 */ 0x898F,0x502E, - /* Array index: 0x1424 */ 0x8993,0x5872, - /* Array index: 0x1424 */ 0x8996,0x634A, - /* Array index: 0x1424 */ 0x89A1,0x4C2F, - /* Array index: 0x1424 */ 0x89A9,0x542D, - /* Array index: 0x1424 */ 0x89AA,0x7651, - /* Array index: 0x1424 */ 0x89B2,0x504C, - /* Array index: 0x1424 */ 0x89BA,0x4A46, - /* Array index: 0x1424 */ 0x89BD,0x5542, - /* Array index: 0x1424 */ 0x89C0,0x4E3A, - /* Array index: 0x1424 */ 0x89D2,0x4A47, - /* Array index: 0x1424 */ 0x89E3,0x7A30, - /* Array index: 0x1424 */ 0x89F4,0x5F58, - /* Array index: 0x1424 */ 0x89F8,0x753A, - /* Array index: 0x1424 */ 0x8A00,0x656B, - /* Array index: 0x1424 */ 0x8A02,0x6F74, - /* Array index: 0x1424 */ 0x8A03,0x5D35, - /* Array index: 0x1424 */ 0x8A08,0x4D2A, - /* Array index: 0x1424 */ 0x8A0A,0x6372, - /* Array index: 0x1424 */ 0x8A0C,0x7B77, - /* Array index: 0x1424 */ 0x8A0E,0x7750, - /* Array index: 0x1424 */ 0x8A13,0x7D3A, - /* Array index: 0x1424 */ 0x8A1B,0x6845, - /* Array index: 0x1424 */ 0x8A1D,0x6438, - /* Array index: 0x1424 */ 0x8A1F,0x6168, - /* Array index: 0x1424 */ 0x8A23,0x4C41, - /* Array index: 0x1424 */ 0x8A25,0x526D, - /* Array index: 0x1424 */ 0x8A2A,0x5B3E, - /* Array index: 0x1424 */ 0x8A2D,0x6062, - /* Array index: 0x1424 */ 0x8A31,0x7A49, - /* Array index: 0x1424 */ 0x8A34,0x614D, - /* Array index: 0x1424 */ 0x8A36,0x4A38, - /* Array index: 0x1424 */ 0x8A3A,0x7260, - /* Array index: 0x1424 */ 0x8A3B,0x7149, - /* Array index: 0x1424 */ 0x8A50,0x5E71, - /* Array index: 0x1424 */ 0x8A54,0x705F, - /* Array index: 0x1424 */ 0x8A55,0x7844, - /* Array index: 0x1424 */ 0x8A5B,0x6E4C, - /* Array index: 0x1424 */ 0x8A5E,0x5E72, - /* Array index: 0x1424 */ 0x8A60,0x6749, - /* Array index: 0x1424 */ 0x8A62,0x6273, - /* Array index: 0x1424 */ 0x8A63,0x6761, - /* Array index: 0x1424 */ 0x8A66,0x634B, - /* Array index: 0x1424 */ 0x8A69,0x634C, - /* Array index: 0x1424 */ 0x8A79,0x745A, - /* Array index: 0x1424 */ 0x8A85,0x714A, - /* Array index: 0x1424 */ 0x8A87,0x4E23, - /* Array index: 0x1424 */ 0x8A8C,0x723C, - /* Array index: 0x1424 */ 0x8A8D,0x6C63, - /* Array index: 0x1424 */ 0x8A93,0x6025, - /* Array index: 0x1424 */ 0x8A95,0x772B, - /* Array index: 0x1424 */ 0x8A98,0x6B2F, - /* Array index: 0x1424 */ 0x8A9E,0x655E, - /* Array index: 0x1424 */ 0x8AB0,0x6241, - /* Array index: 0x1424 */ 0x8AB2,0x4E24, - /* Array index: 0x1424 */ 0x8AB9,0x5E26, - /* Array index: 0x1424 */ 0x8ABC,0x6B7E, - /* Array index: 0x1424 */ 0x8ABE,0x6B5D, - /* Array index: 0x1424 */ 0x8ABF,0x7060, - /* Array index: 0x1424 */ 0x8AC2,0x745B, - /* Array index: 0x1424 */ 0x8AC4,0x6274, - /* Array index: 0x1424 */ 0x8AC7,0x5348, - /* Array index: 0x1424 */ 0x8ACB,0x746B, - /* Array index: 0x1424 */ 0x8ACD,0x6E35, - /* Array index: 0x1424 */ 0x8ACF,0x7558, - /* Array index: 0x1424 */ 0x8AD2,0x555F, - /* Array index: 0x1424 */ 0x8AD6,0x5665, - /* Array index: 0x1424 */ 0x8ADB,0x6B30, - /* Array index: 0x1424 */ 0x8ADC,0x7463, - /* Array index: 0x1424 */ 0x8AE1,0x634D, - /* Array index: 0x1424 */ 0x8AE6,0x7474, - /* Array index: 0x1424 */ 0x8AE7,0x7A32, - /* Array index: 0x1424 */ 0x8AF1,0x7D49, - /* Array index: 0x1424 */ 0x8B0E,0x5A3A, - /* Array index: 0x1424 */ 0x8B10,0x5A4D, - /* Array index: 0x1424 */ 0x8B14,0x794C, - /* Array index: 0x1424 */ 0x8B20,0x692A, - /* Array index: 0x1424 */ 0x8B28,0x5948, - /* Array index: 0x1424 */ 0x8B2B,0x6E63, - /* Array index: 0x1424 */ 0x8B2C,0x573D, - /* Array index: 0x1424 */ 0x8B33,0x4F44, - /* Array index: 0x1424 */ 0x8B39,0x504D, - /* Array index: 0x1424 */ 0x8B41,0x7C26, - /* Array index: 0x1424 */ 0x8B49,0x717B, - /* Array index: 0x1424 */ 0x8B4E,0x7D52, - /* Array index: 0x1424 */ 0x8B4F,0x5141, - /* Array index: 0x1424 */ 0x8B58,0x635B, - /* Array index: 0x1424 */ 0x8B5A,0x5349, - /* Array index: 0x1424 */ 0x8B5C,0x5C4F, - /* Array index: 0x1424 */ 0x8B66,0x4C6D, - /* Array index: 0x1424 */ 0x8B6C,0x5E27, - /* Array index: 0x1424 */ 0x8B6F,0x663B, - /* Array index: 0x1424 */ 0x8B70,0x6C21, - /* Array index: 0x1424 */ 0x8B74,0x4C39, - /* Array index: 0x1424 */ 0x8B77,0x7B5E, - /* Array index: 0x1424 */ 0x8B7D,0x6762, - /* Array index: 0x1424 */ 0x8B80,0x5441, - /* Array index: 0x1424 */ 0x8B8A,0x5C28, - /* Array index: 0x1424 */ 0x8B90,0x6242, - /* Array index: 0x1424 */ 0x8B92,0x7358, - /* Array index: 0x1424 */ 0x8B93,0x6553, - /* Array index: 0x1424 */ 0x8B96,0x7359, - /* Array index: 0x1424 */ 0x8B9A,0x7346, - /* Array index: 0x1424 */ 0x8C37,0x4D5B, - /* Array index: 0x1424 */ 0x8C3F,0x4D2C, - /* Array index: 0x1424 */ 0x8C41,0x7C43, - /* Array index: 0x1424 */ 0x8C46,0x5467, - /* Array index: 0x1424 */ 0x8C48,0x5142, - /* Array index: 0x1424 */ 0x8C4A,0x7925, - /* Array index: 0x1424 */ 0x8C4C,0x6855, - /* Array index: 0x1424 */ 0x8C55,0x634E, - /* Array index: 0x1424 */ 0x8C5A,0x544A, - /* Array index: 0x1424 */ 0x8C61,0x5F5A, - /* Array index: 0x1424 */ 0x8C6A,0x7B5F, - /* Array index: 0x1424 */ 0x8C6B,0x6763, - /* Array index: 0x1424 */ 0x8C79,0x787B, - /* Array index: 0x1424 */ 0x8C7A,0x634F, - /* Array index: 0x1424 */ 0x8C82,0x7530, - /* Array index: 0x1424 */ 0x8C8A,0x5867, - /* Array index: 0x1424 */ 0x8C8C,0x5949, - /* Array index: 0x1424 */ 0x8CD1,0x7261, - /* Array index: 0x1424 */ 0x8CD3,0x5E39, - /* Array index: 0x1424 */ 0x8CDA,0x5672, - /* Array index: 0x1424 */ 0x8CDC,0x5E74, - /* Array index: 0x1424 */ 0x8CDE,0x5F5B, - /* Array index: 0x1424 */ 0x8CEA,0x7275, - /* Array index: 0x1424 */ 0x8CED,0x542E, - /* Array index: 0x1424 */ 0x8CF4,0x5673, - /* Array index: 0x1424 */ 0x8D0D,0x606B, - /* Array index: 0x1424 */ 0x8D13,0x6D7C, - /* Array index: 0x1424 */ 0x8D16,0x615B, - /* Array index: 0x1424 */ 0x8D64,0x6E65, - /* Array index: 0x1424 */ 0x8D66,0x5E75, - /* Array index: 0x1424 */ 0x8D6B,0x7A53, - /* Array index: 0x1424 */ 0x8D70,0x714B, - /* Array index: 0x1424 */ 0x8D73,0x502F, - /* Array index: 0x1424 */ 0x8D74,0x5D39, - /* Array index: 0x1424 */ 0x8D77,0x5143, - /* Array index: 0x1424 */ 0x8D85,0x7531, - /* Array index: 0x1424 */ 0x8D8A,0x6A46, - /* Array index: 0x1424 */ 0x8D99,0x7061, - /* Array index: 0x1424 */ 0x8DA3,0x762C, - /* Array index: 0x1424 */ 0x8DA8,0x7559, - /* Array index: 0x1424 */ 0x8DB3,0x706B, - /* Array index: 0x1424 */ 0x8DBA,0x5D3A, - /* Array index: 0x1424 */ 0x8DBE,0x723F, - /* Array index: 0x1424 */ 0x8DC6,0x7745, - /* Array index: 0x1424 */ 0x8DCB,0x5B22, - /* Array index: 0x1424 */ 0x8DCC,0x7276, - /* Array index: 0x1424 */ 0x8DCF,0x4A3A, - /* Array index: 0x1424 */ 0x8DDB,0x7775, - /* Array index: 0x1424 */ 0x8DDD,0x4B65, - /* Array index: 0x1424 */ 0x8DE1,0x6E66, - /* Array index: 0x1424 */ 0x8DE3,0x6053, - /* Array index: 0x1424 */ 0x8DE8,0x4E25, - /* Array index: 0x1424 */ 0x8DEF,0x5658, - /* Array index: 0x1424 */ 0x8DF3,0x542F, - /* Array index: 0x1424 */ 0x8E0A,0x6949, - /* Array index: 0x1424 */ 0x8E0F,0x534E, - /* Array index: 0x1424 */ 0x8E10,0x7442, - /* Array index: 0x1424 */ 0x8E1E,0x4B66, - /* Array index: 0x1424 */ 0x8E2A,0x7121, - /* Array index: 0x1424 */ 0x8E30,0x6B32, - /* Array index: 0x1424 */ 0x8E35,0x7122, - /* Array index: 0x1424 */ 0x8E42,0x6B33, - /* Array index: 0x1424 */ 0x8E44,0x7034, - /* Array index: 0x1424 */ 0x8E59,0x756C, - /* Array index: 0x1424 */ 0x8E5F,0x6E67, - /* Array index: 0x1424 */ 0x8E60,0x7432, - /* Array index: 0x1424 */ 0x8E74,0x756D, - /* Array index: 0x1424 */ 0x8E76,0x4F73, - /* Array index: 0x1424 */ 0x8E81,0x7062, - /* Array index: 0x1424 */ 0x8E87,0x6E4E, - /* Array index: 0x1424 */ 0x8E8A,0x714C, - /* Array index: 0x1424 */ 0x8E8D,0x6538, - /* Array index: 0x1424 */ 0x8EC0,0x4F46, - /* Array index: 0x1424 */ 0x8ED2,0x7A4D, - /* Array index: 0x1424 */ 0x8EDF,0x6663, - /* Array index: 0x1424 */ 0x8EEB,0x7262, - /* Array index: 0x1424 */ 0x8EF8,0x756E, - /* Array index: 0x1424 */ 0x8EFB,0x4A3B, - /* Array index: 0x1424 */ 0x8EFE,0x635C, - /* Array index: 0x1424 */ 0x8F03,0x4E72, - /* Array index: 0x1424 */ 0x8F05,0x5659, - /* Array index: 0x1424 */ 0x8F09,0x6E30, - /* Array index: 0x1424 */ 0x8F2F,0x727E, - /* Array index: 0x1424 */ 0x8F33,0x714D, - /* Array index: 0x1424 */ 0x8F38,0x6243, - /* Array index: 0x1424 */ 0x8F39,0x5C5E, - /* Array index: 0x1424 */ 0x8F3B,0x5C5F, - /* Array index: 0x1424 */ 0x8F3E,0x6F2D, - /* Array index: 0x1424 */ 0x8F3F,0x662B, - /* Array index: 0x1424 */ 0x8F44,0x795D, - /* Array index: 0x1424 */ 0x8F45,0x6A3F, - /* Array index: 0x1424 */ 0x8F49,0x6F2E, - /* Array index: 0x1424 */ 0x8F4D,0x7450, - /* Array index: 0x1424 */ 0x8F4E,0x4E73, - /* Array index: 0x1424 */ 0x8F5D,0x662C, - /* Array index: 0x1424 */ 0x8F5F,0x4E5E, - /* Array index: 0x1424 */ 0x8F62,0x5579, - /* Array index: 0x1424 */ 0x8F9B,0x6374, - /* Array index: 0x1424 */ 0x8F9C,0x4D50, - /* Array index: 0x1424 */ 0x8FA3,0x5538, - /* Array index: 0x1424 */ 0x8FA6,0x777D, - /* Array index: 0x1424 */ 0x8FA8,0x5C29, - /* Array index: 0x1424 */ 0x8FC2,0x6966, - /* Array index: 0x1424 */ 0x8FC5,0x6376, - /* Array index: 0x1424 */ 0x8FCE,0x674A, - /* Array index: 0x1424 */ 0x8FD1,0x504E, - /* Array index: 0x1424 */ 0x8FD4,0x5A77, - /* Array index: 0x1424 */ 0x8FE6,0x4A3C, - /* Array index: 0x1424 */ 0x8FEA,0x6E68, - /* Array index: 0x1424 */ 0x8FEB,0x5A5E, - /* Array index: 0x1424 */ 0x8FED,0x7277, - /* Array index: 0x1424 */ 0x8FF0,0x627B, - /* Array index: 0x1424 */ 0x8FF2,0x4C26, - /* Array index: 0x1424 */ 0x8FF7,0x5A3B, - /* Array index: 0x1424 */ 0x8FF9,0x6E69, - /* Array index: 0x1424 */ 0x8FFD,0x755A, - /* Array index: 0x1424 */ 0x900B,0x7867, - /* Array index: 0x1424 */ 0x902E,0x7475, - /* Array index: 0x1424 */ 0x9031,0x714E, - /* Array index: 0x1424 */ 0x9032,0x7264, - /* Array index: 0x1424 */ 0x9035,0x5030, - /* Array index: 0x1424 */ 0x9038,0x6C6F, - /* Array index: 0x1424 */ 0x903C,0x793A, - /* Array index: 0x1424 */ 0x903E,0x6B35, - /* Array index: 0x1424 */ 0x9041,0x546D, - /* Array index: 0x1424 */ 0x9042,0x6244, - /* Array index: 0x1424 */ 0x9047,0x6967, - /* Array index: 0x1424 */ 0x9059,0x692B, - /* Array index: 0x1424 */ 0x9069,0x6E6A, - /* Array index: 0x1424 */ 0x9072,0x7240, - /* Array index: 0x1424 */ 0x9075,0x7165, - /* Array index: 0x1424 */ 0x9077,0x7443, - /* Array index: 0x1424 */ 0x9078,0x6054, - /* Array index: 0x1424 */ 0x907A,0x6B36, - /* Array index: 0x1424 */ 0x908F,0x5524, - /* Array index: 0x1424 */ 0x9091,0x6B69, - /* Array index: 0x1424 */ 0x9095,0x683B, - /* Array index: 0x1424 */ 0x9099,0x5857, - /* Array index: 0x1424 */ 0x90A2,0x7B2E, - /* Array index: 0x1424 */ 0x90A3,0x5161, - /* Array index: 0x1424 */ 0x90A6,0x5B40, - /* Array index: 0x1424 */ 0x90A8,0x753E, - /* Array index: 0x1424 */ 0x90AA,0x5E77, - /* Array index: 0x1424 */ 0x90B5,0x6150, - /* Array index: 0x1424 */ 0x90B8,0x6E50, - /* Array index: 0x1424 */ 0x90C1,0x6974, - /* Array index: 0x1424 */ 0x90CA,0x4E74, - /* Array index: 0x1424 */ 0x90DE,0x554D, - /* Array index: 0x1424 */ 0x90E1,0x4F5B, - /* Array index: 0x1424 */ 0x90E8,0x5D3B, - /* Array index: 0x1424 */ 0x90ED,0x4E2C, - /* Array index: 0x1424 */ 0x90F5,0x6968, - /* Array index: 0x1424 */ 0x90FD,0x5434, - /* Array index: 0x1424 */ 0x9102,0x6447, - /* Array index: 0x1424 */ 0x9112,0x755B, - /* Array index: 0x1424 */ 0x9115,0x7A41, - /* Array index: 0x1424 */ 0x9119,0x5E29, - /* Array index: 0x1424 */ 0x9127,0x5478, - /* Array index: 0x1424 */ 0x912D,0x6F77, - /* Array index: 0x1424 */ 0x9132,0x5333, - /* Array index: 0x1424 */ 0x9152,0x7150, - /* Array index: 0x1424 */ 0x9162,0x7532, - /* Array index: 0x1424 */ 0x9169,0x592E, - /* Array index: 0x1424 */ 0x916A,0x552C, - /* Array index: 0x1424 */ 0x916C,0x6246, - /* Array index: 0x1424 */ 0x9175,0x7D23, - /* Array index: 0x1424 */ 0x9177,0x7B65, - /* Array index: 0x1424 */ 0x9178,0x5F2B, - /* Array index: 0x1424 */ 0x9187,0x6275, - /* Array index: 0x1424 */ 0x9189,0x762D, - /* Array index: 0x1424 */ 0x918B,0x7533, - /* Array index: 0x1424 */ 0x918D,0x7035, - /* Array index: 0x1424 */ 0x9192,0x6125, - /* Array index: 0x1424 */ 0x919C,0x755D, - /* Array index: 0x1424 */ 0x91C0,0x6554, - /* Array index: 0x1424 */ 0x91C7,0x737A, - /* Array index: 0x1424 */ 0x91D7,0x6172, - /* Array index: 0x1424 */ 0x91D8,0x6F79, - /* Array index: 0x1424 */ 0x91DC,0x5D3C, - /* Array index: 0x1424 */ 0x91DD,0x765C, - /* Array index: 0x1424 */ 0x91E3,0x7065, - /* Array index: 0x1424 */ 0x91E7,0x7444, - /* Array index: 0x1424 */ 0x91EA,0x6969, - /* Array index: 0x1424 */ 0x91F5,0x737B, - /* Array index: 0x1424 */ 0x920D,0x546F, - /* Array index: 0x1424 */ 0x9217,0x6B4D, - /* Array index: 0x1424 */ 0x921E,0x5037, - /* Array index: 0x1424 */ 0x9234,0x5642, - /* Array index: 0x1424 */ 0x923A,0x682D, - /* Array index: 0x1424 */ 0x923F,0x6F2F, - /* Array index: 0x1424 */ 0x9240,0x4B25, - /* Array index: 0x1424 */ 0x9245,0x4B69, - /* Array index: 0x1424 */ 0x9249,0x7A68, - /* Array index: 0x1424 */ 0x9257,0x4C46, - /* Array index: 0x1424 */ 0x925B,0x6667, - /* Array index: 0x1424 */ 0x925E,0x6A47, - /* Array index: 0x1424 */ 0x9280,0x6B5E, - /* Array index: 0x1424 */ 0x9283,0x7548, - /* Array index: 0x1424 */ 0x9285,0x545E, - /* Array index: 0x1424 */ 0x9291,0x6055, - /* Array index: 0x1424 */ 0x9293,0x6F30, - /* Array index: 0x1424 */ 0x9296,0x6247, - /* Array index: 0x1424 */ 0x9298,0x592F, - /* Array index: 0x1424 */ 0x929C,0x7967, - /* Array index: 0x1424 */ 0x92B3,0x6765, - /* Array index: 0x1424 */ 0x92B6,0x4F4A, - /* Array index: 0x1424 */ 0x92B7,0x6151, - /* Array index: 0x1424 */ 0x92B9,0x6248, - /* Array index: 0x1424 */ 0x92CC,0x6F7B, - /* Array index: 0x1424 */ 0x92CF,0x7A79, - /* Array index: 0x1424 */ 0x92D2,0x5C72, - /* Array index: 0x1424 */ 0x92E4,0x6027, - /* Array index: 0x1424 */ 0x92EA,0x7868, - /* Array index: 0x1424 */ 0x92F8,0x4B6A, - /* Array index: 0x1424 */ 0x92FC,0x4B3C, - /* Array index: 0x1424 */ 0x9304,0x5662, - /* Array index: 0x1424 */ 0x9310,0x755E, - /* Array index: 0x1424 */ 0x9318,0x755F, - /* Array index: 0x1424 */ 0x931A,0x6E36, - /* Array index: 0x1424 */ 0x932B,0x6038, - /* Array index: 0x1424 */ 0x932E,0x4D51, - /* Array index: 0x1424 */ 0x932F,0x7339, - /* Array index: 0x1424 */ 0x9348,0x674C, - /* Array index: 0x1424 */ 0x934A,0x5628, - /* Array index: 0x1424 */ 0x934B,0x4E27, - /* Array index: 0x1424 */ 0x934D,0x5435, - /* Array index: 0x1424 */ 0x9354,0x6448, - /* Array index: 0x1424 */ 0x935B,0x5334, - /* Array index: 0x1424 */ 0x936E,0x6B39, - /* Array index: 0x1424 */ 0x9375,0x4B75, - /* Array index: 0x1424 */ 0x937C,0x765D, - /* Array index: 0x1424 */ 0x937E,0x7123, - /* Array index: 0x1424 */ 0x938C,0x4C47, - /* Array index: 0x1424 */ 0x9394,0x694A, - /* Array index: 0x1424 */ 0x9396,0x6170, - /* Array index: 0x1424 */ 0x939A,0x7560, - /* Array index: 0x1424 */ 0x93A3,0x7B2F, - /* Array index: 0x1424 */ 0x93A7,0x4B51, - /* Array index: 0x1424 */ 0x93AC,0x7B60, - /* Array index: 0x1424 */ 0x93AD,0x7265, - /* Array index: 0x1424 */ 0x93B0,0x6C70, - /* Array index: 0x1424 */ 0x93C3,0x706C, - /* Array index: 0x1424 */ 0x93D1,0x6E6B, - /* Array index: 0x1424 */ 0x93DE,0x694B, - /* Array index: 0x1424 */ 0x93E1,0x4C70, - /* Array index: 0x1424 */ 0x93E4,0x572F, - /* Array index: 0x1424 */ 0x93F6,0x7321, - /* Array index: 0x1424 */ 0x9404,0x7C75, - /* Array index: 0x1424 */ 0x9418,0x7124, - /* Array index: 0x1424 */ 0x9425,0x6056, - /* Array index: 0x1424 */ 0x942B,0x6F32, - /* Array index: 0x1424 */ 0x9435,0x7451, - /* Array index: 0x1424 */ 0x9438,0x7721, - /* Array index: 0x1424 */ 0x9444,0x7151, - /* Array index: 0x1424 */ 0x9451,0x4A7C, - /* Array index: 0x1424 */ 0x9452,0x4A7D, - /* Array index: 0x1424 */ 0x945B,0x4E4E, - /* Array index: 0x1424 */ 0x947D,0x7348, - /* Array index: 0x1424 */ 0x947F,0x733A, - /* Array index: 0x1424 */ 0x9577,0x6D7E, - /* Array index: 0x1424 */ 0x9580,0x5A26, - /* Array index: 0x1424 */ 0x9583,0x606C, - /* Array index: 0x1424 */ 0x9589,0x784D, - /* Array index: 0x1424 */ 0x958B,0x4B52, - /* Array index: 0x1424 */ 0x9598,0x4B26, - /* Array index: 0x1424 */ 0x95A8,0x5031, - /* Array index: 0x1424 */ 0x95AD,0x556F, - /* Array index: 0x1424 */ 0x95B1,0x6673, - /* Array index: 0x1424 */ 0x95BB,0x6722, - /* Array index: 0x1424 */ 0x95BC,0x6459, - /* Array index: 0x1424 */ 0x95C7,0x6461, - /* Array index: 0x1424 */ 0x95CA,0x7C44, - /* Array index: 0x1424 */ 0x95DC,0x4E3C, - /* Array index: 0x1424 */ 0x95E1,0x7445, - /* Array index: 0x1424 */ 0x95E2,0x5C23, - /* Array index: 0x1424 */ 0x961C,0x5D3D, - /* Array index: 0x1424 */ 0x9621,0x7446, - /* Array index: 0x1424 */ 0x962A,0x7821, - /* Array index: 0x1424 */ 0x962E,0x6856, - /* Array index: 0x1424 */ 0x9632,0x5B41, - /* Array index: 0x1424 */ 0x963B,0x7066, - /* Array index: 0x1424 */ 0x963F,0x6439, - /* Array index: 0x1424 */ 0x9640,0x766D, - /* Array index: 0x1424 */ 0x9642,0x792E, - /* Array index: 0x1424 */ 0x9644,0x5D3E, - /* Array index: 0x1424 */ 0x9650,0x795A, - /* Array index: 0x1424 */ 0x966A,0x5B56, - /* Array index: 0x1424 */ 0x9670,0x6B64, - /* Array index: 0x1424 */ 0x967D,0x6555, - /* Array index: 0x1424 */ 0x9685,0x696A, - /* Array index: 0x1424 */ 0x9686,0x574C, - /* Array index: 0x1424 */ 0x9694,0x4C30, - /* Array index: 0x1424 */ 0x9695,0x6A22, - /* Array index: 0x1424 */ 0x96A3,0x5776, - /* Array index: 0x1424 */ 0x96A7,0x624A, - /* Array index: 0x1424 */ 0x96A8,0x624B, - /* Array index: 0x1424 */ 0x96AA,0x7A4F, - /* Array index: 0x1424 */ 0x96B1,0x6B5F, - /* Array index: 0x1424 */ 0x96B7,0x564B, - /* Array index: 0x1424 */ 0x96BB,0x7434, - /* Array index: 0x1424 */ 0x96D5,0x7067, - /* Array index: 0x1424 */ 0x96D6,0x624C, - /* Array index: 0x1424 */ 0x96D9,0x642A, - /* Array index: 0x1424 */ 0x96DB,0x7561, - /* Array index: 0x1424 */ 0x96DC,0x6D5A, - /* Array index: 0x1424 */ 0x96E2,0x576E, - /* Array index: 0x1424 */ 0x96E3,0x5171, - /* Array index: 0x1424 */ 0x96EF,0x5A27, - /* Array index: 0x1424 */ 0x96F0,0x5D54, - /* Array index: 0x1424 */ 0x96F2,0x6A23, - /* Array index: 0x1424 */ 0x96F6,0x5643, - /* Array index: 0x1424 */ 0x96F7,0x5674, - /* Array index: 0x1424 */ 0x96F9,0x5A5F, - /* Array index: 0x1424 */ 0x96FB,0x6F33, - /* Array index: 0x1424 */ 0x9700,0x624D, - /* Array index: 0x1424 */ 0x9706,0x6F7D, - /* Array index: 0x1424 */ 0x9707,0x7268, - /* Array index: 0x1424 */ 0x9711,0x6F45, - /* Array index: 0x1424 */ 0x9713,0x6767, - /* Array index: 0x1424 */ 0x9716,0x577D, - /* Array index: 0x1424 */ 0x9719,0x674E, - /* Array index: 0x1424 */ 0x971C,0x5F5C, - /* Array index: 0x1424 */ 0x971E,0x7947, - /* Array index: 0x1424 */ 0x9727,0x5976, - /* Array index: 0x1424 */ 0x9730,0x5F2C, - /* Array index: 0x1424 */ 0x9732,0x565A, - /* Array index: 0x1424 */ 0x9739,0x5C24, - /* Array index: 0x1424 */ 0x973D,0x7038, - /* Array index: 0x1424 */ 0x9742,0x557A, - /* Array index: 0x1424 */ 0x9744,0x6477, - /* Array index: 0x1424 */ 0x9748,0x5644, - /* Array index: 0x1424 */ 0x9751,0x746C, - /* Array index: 0x1424 */ 0x9756,0x6F7E, - /* Array index: 0x1424 */ 0x975C,0x7021, - /* Array index: 0x1424 */ 0x975E,0x5E2A, - /* Array index: 0x1424 */ 0x9761,0x5A3C, - /* Array index: 0x1424 */ 0x9762,0x587C, - /* Array index: 0x1424 */ 0x9769,0x7A54, - /* Array index: 0x1424 */ 0x976D,0x6C65, - /* Array index: 0x1424 */ 0x9774,0x7C28, - /* Array index: 0x1424 */ 0x9777,0x6C66, - /* Array index: 0x1424 */ 0x977A,0x584B, - /* Array index: 0x1424 */ 0x978B,0x7B39, - /* Array index: 0x1424 */ 0x978D,0x6453, - /* Array index: 0x1424 */ 0x978F,0x4D79, - /* Array index: 0x1424 */ 0x97A0,0x4F53, - /* Array index: 0x1424 */ 0x97A8,0x4A6A, - /* Array index: 0x1424 */ 0x97AB,0x4F54, - /* Array index: 0x1424 */ 0x97AD,0x783D, - /* Array index: 0x1424 */ 0x97C6,0x7447, - /* Array index: 0x1424 */ 0x97CB,0x6A5F, - /* Array index: 0x1424 */ 0x97D3,0x795B, - /* Array index: 0x1424 */ 0x97DC,0x5437, - /* Array index: 0x1424 */ 0x97F3,0x6B65, - /* Array index: 0x1424 */ 0x97F6,0x6152, - /* Array index: 0x1424 */ 0x97FB,0x6A24, - /* Array index: 0x1424 */ 0x9817,0x7776, - /* Array index: 0x1424 */ 0x9818,0x5645, - /* Array index: 0x1424 */ 0x982D,0x5469, - /* Array index: 0x1424 */ 0x9830,0x7A7A, - /* Array index: 0x1424 */ 0x9838,0x4C72, - /* Array index: 0x1424 */ 0x9839,0x775D, - /* Array index: 0x1424 */ 0x983B,0x5E3A, - /* Array index: 0x1424 */ 0x9846,0x4E28, - /* Array index: 0x1424 */ 0x9854,0x6454, - /* Array index: 0x1424 */ 0x9858,0x6A43, - /* Array index: 0x1424 */ 0x985A,0x6F34, - /* Array index: 0x1424 */ 0x985E,0x573E, - /* Array index: 0x1424 */ 0x9865,0x7B62, - /* Array index: 0x1424 */ 0x9867,0x4D53, - /* Array index: 0x1424 */ 0x986B,0x6F35, - /* Array index: 0x1424 */ 0x986F,0x7A69, - /* Array index: 0x1424 */ 0x98A8,0x7926, - /* Array index: 0x1424 */ 0x98AF,0x5F3D, - /* Array index: 0x1424 */ 0x98B1,0x7747, - /* Array index: 0x1424 */ 0x98C4,0x787D, - /* Array index: 0x1424 */ 0x98C7,0x787C, - /* Array index: 0x1424 */ 0x98DB,0x5E2B, - /* Array index: 0x1424 */ 0x98DC,0x5B68, - /* Array index: 0x1424 */ 0x98DF,0x635D, - /* Array index: 0x1424 */ 0x98E1,0x6162, - /* Array index: 0x1424 */ 0x98E2,0x5146, - /* Array index: 0x1424 */ 0x98F4,0x6C47, - /* Array index: 0x1424 */ 0x9903,0x4E75, - /* Array index: 0x1424 */ 0x9909,0x7A43, - /* Array index: 0x1424 */ 0x990A,0x6557, - /* Array index: 0x1424 */ 0x990C,0x6C48, - /* Array index: 0x1424 */ 0x9910,0x7349, - /* Array index: 0x1424 */ 0x9913,0x643B, - /* Array index: 0x1424 */ 0x9918,0x662E, - /* Array index: 0x1424 */ 0x991E,0x6F36, - /* Array index: 0x1424 */ 0x9920,0x5C3F, - /* Array index: 0x1424 */ 0x9928,0x4E3D, - /* Array index: 0x1424 */ 0x9945,0x5843, - /* Array index: 0x1424 */ 0x9951,0x5147, - /* Array index: 0x1424 */ 0x9952,0x692E, - /* Array index: 0x1424 */ 0x9954,0x683D, - /* Array index: 0x1424 */ 0x9957,0x7A44, - /* Array index: 0x1424 */ 0x9996,0x624F, - /* Array index: 0x1424 */ 0x9999,0x7A45, - /* Array index: 0x1424 */ 0x999D,0x7938, - /* Array index: 0x1424 */ 0x99A5,0x5C60, - /* Array index: 0x1424 */ 0x99A8,0x7B30, - /* Array index: 0x1424 */ 0x99B1,0x766E, - /* Array index: 0x1424 */ 0x99B3,0x764C, - /* Array index: 0x1424 */ 0x99B4,0x6278, - /* Array index: 0x1424 */ 0x99B9,0x6C71, - /* Array index: 0x1424 */ 0x99C1,0x5A60, - /* Array index: 0x1424 */ 0x99D5,0x4A3D, - /* Array index: 0x1424 */ 0x99D9,0x5D3F, - /* Array index: 0x1424 */ 0x99DD,0x766F, - /* Array index: 0x1424 */ 0x99DF,0x5E79, - /* Array index: 0x1424 */ 0x99ED,0x7A34, - /* Array index: 0x1424 */ 0x99F1,0x552D, - /* Array index: 0x1424 */ 0x99FF,0x7167, - /* Array index: 0x1424 */ 0x9A01,0x5E3E, - /* Array index: 0x1424 */ 0x9A08,0x5C40, - /* Array index: 0x1424 */ 0x9A0E,0x5148, - /* Array index: 0x1424 */ 0x9A0F,0x5149, - /* Array index: 0x1424 */ 0x9A19,0x783E, - /* Array index: 0x1424 */ 0x9A2B,0x4B76, - /* Array index: 0x1424 */ 0x9A30,0x5479, - /* Array index: 0x1424 */ 0x9A36,0x7562, - /* Array index: 0x1424 */ 0x9A37,0x6153, - /* Array index: 0x1424 */ 0x9A40,0x5869, - /* Array index: 0x1424 */ 0x9A43,0x787E, - /* Array index: 0x1424 */ 0x9A45,0x4F4C, - /* Array index: 0x1424 */ 0x9A4D,0x7D24, - /* Array index: 0x1424 */ 0x9A55,0x4E76, - /* Array index: 0x1424 */ 0x9A57,0x7A50, - /* Array index: 0x1424 */ 0x9A5A,0x4C73, - /* Array index: 0x1424 */ 0x9A5B,0x663E, - /* Array index: 0x1424 */ 0x9A5F,0x762E, - /* Array index: 0x1424 */ 0x9A62,0x5570, - /* Array index: 0x1424 */ 0x9A65,0x514A, - /* Array index: 0x1424 */ 0x9A69,0x7C3E, - /* Array index: 0x1424 */ 0x9A6A,0x5571, - /* Array index: 0x1424 */ 0x9AA8,0x4D69, - /* Array index: 0x1424 */ 0x9AB8,0x7A35, - /* Array index: 0x1424 */ 0x9AD3,0x6250, - /* Array index: 0x1424 */ 0x9AD4,0x7477, - /* Array index: 0x1424 */ 0x9AD8,0x4D54, - /* Array index: 0x1424 */ 0x9AE5,0x6723, - /* Array index: 0x1424 */ 0x9AEE,0x5B25, - /* Array index: 0x1424 */ 0x9B1A,0x6251, - /* Array index: 0x1424 */ 0x9B27,0x5722, - /* Array index: 0x1424 */ 0x9B2A,0x7763, - /* Array index: 0x1424 */ 0x9B31,0x6A26, - /* Array index: 0x1424 */ 0x9B3C,0x5021, - /* Array index: 0x1424 */ 0x9B4F,0x6A60, - /* Array index: 0x1424 */ 0x9B54,0x582A, - /* Array index: 0x1424 */ 0x9B5A,0x6560, - /* Array index: 0x1424 */ 0x9B6F,0x565B, - /* Array index: 0x1424 */ 0x9B8E,0x6F46, - /* Array index: 0x1424 */ 0x9B91,0x786A, - /* Array index: 0x1424 */ 0x9B9F,0x6455, - /* Array index: 0x1424 */ 0x9BAB,0x4E77, - /* Array index: 0x1424 */ 0x9BAE,0x6058, - /* Array index: 0x1424 */ 0x9BC9,0x576F, - /* Array index: 0x1424 */ 0x9BD6,0x746D, - /* Array index: 0x1424 */ 0x9BE4,0x4D66, - /* Array index: 0x1424 */ 0x9BE8,0x4C74, - /* Array index: 0x1424 */ 0x9C0D,0x7563, - /* Array index: 0x1424 */ 0x9C10,0x644A, - /* Array index: 0x1424 */ 0x9C12,0x5C61, - /* Array index: 0x1424 */ 0x9C15,0x7948, - /* Array index: 0x1424 */ 0x9C25,0x7C3F, - /* Array index: 0x1424 */ 0x9C32,0x6827, - /* Array index: 0x1424 */ 0x9C3B,0x5844, - /* Array index: 0x1424 */ 0x9C47,0x4B3E, - /* Array index: 0x1424 */ 0x9C49,0x5C2E, - /* Array index: 0x1424 */ 0x9C57,0x5777, - /* Array index: 0x1424 */ 0x9CE5,0x7068, - /* Array index: 0x1424 */ 0x9CE7,0x5D40, - /* Array index: 0x1424 */ 0x9CE9,0x4F4D, - /* Array index: 0x1424 */ 0x9CF3,0x5C73, - /* Array index: 0x1424 */ 0x9CF4,0x5930, - /* Array index: 0x1424 */ 0x9CF6,0x6669, - /* Array index: 0x1424 */ 0x9D09,0x643C, - /* Array index: 0x1424 */ 0x9D1B,0x6A44, - /* Array index: 0x1424 */ 0x9D26,0x646C, - /* Array index: 0x1424 */ 0x9D28,0x6465, - /* Array index: 0x1424 */ 0x9D3B,0x7B78, - /* Array index: 0x1424 */ 0x9D51,0x4C3B, - /* Array index: 0x1424 */ 0x9D5D,0x643D, - /* Array index: 0x1424 */ 0x9D60,0x4D5C, - /* Array index: 0x1424 */ 0x9D61,0x5977, - /* Array index: 0x1424 */ 0x9D6C,0x5D5F, - /* Array index: 0x1424 */ 0x9D72,0x6D4E, - /* Array index: 0x1424 */ 0x9DA9,0x5950, - /* Array index: 0x1424 */ 0x9DAF,0x6523, - /* Array index: 0x1424 */ 0x9DB4,0x794D, - /* Array index: 0x1424 */ 0x9DC4,0x4D2E, - /* Array index: 0x1424 */ 0x9DD7,0x4F4E, - /* Array index: 0x1424 */ 0x9DF2,0x762F, - /* Array index: 0x1424 */ 0x9E1A,0x6524, - /* Array index: 0x1424 */ 0x9E1E,0x5536, - /* Array index: 0x1424 */ 0x9E75,0x565D, - /* Array index: 0x1424 */ 0x9E79,0x7969, - /* Array index: 0x1424 */ 0x9E7D,0x6724, - /* Array index: 0x1424 */ 0x9E7F,0x5663, - /* Array index: 0x1424 */ 0x9E92,0x514B, - /* Array index: 0x1424 */ 0x9E93,0x5664, - /* Array index: 0x1424 */ 0x9E97,0x5572, - /* Array index: 0x1424 */ 0x9E9D,0x5E7A, - /* Array index: 0x1424 */ 0x9E9F,0x5778, - /* Array index: 0x1424 */ 0x9EA5,0x586A, - /* Array index: 0x1424 */ 0x9EB4,0x4F55, - /* Array index: 0x1424 */ 0x9EB5,0x587D, - /* Array index: 0x1424 */ 0x9EBB,0x582B, - /* Array index: 0x1424 */ 0x9EBE,0x7D4B, - /* Array index: 0x1424 */ 0x9EC3,0x7C5C, - /* Array index: 0x1424 */ 0x9ECD,0x6028, - /* Array index: 0x1424 */ 0x9ECE,0x5573, - /* Array index: 0x1424 */ 0x9ED1,0x7D59, - /* Array index: 0x1424 */ 0x9ED4,0x4C23, - /* Array index: 0x1424 */ 0x9ED8,0x5979, - /* Array index: 0x1424 */ 0x9EDB,0x536A, - /* Array index: 0x1424 */ 0x9EDC,0x7575, - /* Array index: 0x1424 */ 0x9EDE,0x6F47, - /* Array index: 0x1424 */ 0x9EE8,0x535A, - /* Array index: 0x1424 */ 0x9EF4,0x5A3D, - /* Array index: 0x1424 */ 0x9F07,0x6828, - /* Array index: 0x1424 */ 0x9F08,0x5C2F, - /* Array index: 0x1424 */ 0x9F0E,0x7023, - /* Array index: 0x1424 */ 0x9F13,0x4D55, - /* Array index: 0x1424 */ 0x9F20,0x6029, - /* Array index: 0x1424 */ 0x9F3B,0x5E2C, - /* Array index: 0x1424 */ 0x9F4A,0x703A, - /* Array index: 0x1424 */ 0x9F4B,0x6E31, - /* Array index: 0x1424 */ 0x9F4E,0x6E32, - /* Array index: 0x1424 */ 0x9F52,0x764D, - /* Array index: 0x1424 */ 0x9F5F,0x6E52, - /* Array index: 0x1424 */ 0x9F61,0x5646, - /* Array index: 0x1424 */ 0x9F67,0x6065, - /* Array index: 0x1424 */ 0x9F6A,0x733B, - /* Array index: 0x1424 */ 0x9F6C,0x6561, - /* Array index: 0x1424 */ 0x9F77,0x644B, - /* Array index: 0x1424 */ 0x9F8D,0x5723, - /* Array index: 0x1424 */ 0x9F90,0x5B42, - /* Array index: 0x1424 */ 0x9F95,0x4A7E, - /* Array index: 0x1424 */ 0x9F9C,0x4F4F, - /* Array index: 0x1424 */ 0xAC00,0x3021, - /* Array index: 0x1424 */ 0xAC01,0x3022, - /* Array index: 0x1424 */ 0xAC04,0x3023, - /* Array index: 0x1424 */ 0xAC20,0x3035, - /* Array index: 0x1424 */ 0xAC24,0x3036, - /* Array index: 0x1424 */ 0xAC38,0x303C, - /* Array index: 0x1424 */ 0xAC39,0x303D, - /* Array index: 0x1424 */ 0xAC3C,0x303E, - /* Array index: 0x1424 */ 0xAC40,0x303F, - /* Array index: 0x1424 */ 0xAC4B,0x3040, - /* Array index: 0x1424 */ 0xAC4D,0x3041, - /* Array index: 0x1424 */ 0xAC54,0x3042, - /* Array index: 0x1424 */ 0xAC58,0x3043, - /* Array index: 0x1424 */ 0xAC5C,0x3044, - /* Array index: 0x1424 */ 0xAC70,0x3045, - /* Array index: 0x1424 */ 0xAC71,0x3046, - /* Array index: 0x1424 */ 0xAC74,0x3047, - /* Array index: 0x1424 */ 0xAC77,0x3048, - /* Array index: 0x1424 */ 0xAC78,0x3049, - /* Array index: 0x1424 */ 0xAC7A,0x304A, - /* Array index: 0x1424 */ 0xAC90,0x3055, - /* Array index: 0x1424 */ 0xAC94,0x3056, - /* Array index: 0x1424 */ 0xACC1,0x3067, - /* Array index: 0x1424 */ 0xACC4,0x3068, - /* Array index: 0x1424 */ 0xACC8,0x3069, - /* Array index: 0x1424 */ 0xACCC,0x306A, - /* Array index: 0x1424 */ 0xACD5,0x306B, - /* Array index: 0x1424 */ 0xACD7,0x306C, - /* Array index: 0x1424 */ 0xACE0,0x306D, - /* Array index: 0x1424 */ 0xACE1,0x306E, - /* Array index: 0x1424 */ 0xACE4,0x306F, - /* Array index: 0x1424 */ 0xACE7,0x3070, - /* Array index: 0x1424 */ 0xACE8,0x3071, - /* Array index: 0x1424 */ 0xACEA,0x3072, - /* Array index: 0x1424 */ 0xACEC,0x3073, - /* Array index: 0x1424 */ 0xACFC,0x307A, - /* Array index: 0x1424 */ 0xACFD,0x307B, - /* Array index: 0x1424 */ 0xAD00,0x307C, - /* Array index: 0x1424 */ 0xAD04,0x307D, - /* Array index: 0x1424 */ 0xAD06,0x307E, - /* Array index: 0x1424 */ 0xAD0C,0x3121, - /* Array index: 0x1424 */ 0xAD0D,0x3122, - /* Array index: 0x1424 */ 0xAD0F,0x3123, - /* Array index: 0x1424 */ 0xAD11,0x3124, - /* Array index: 0x1424 */ 0xAD18,0x3125, - /* Array index: 0x1424 */ 0xAD1C,0x3126, - /* Array index: 0x1424 */ 0xAD20,0x3127, - /* Array index: 0x1424 */ 0xAD29,0x3128, - /* Array index: 0x1424 */ 0xAD2C,0x3129, - /* Array index: 0x1424 */ 0xAD2D,0x312A, - /* Array index: 0x1424 */ 0xAD34,0x312B, - /* Array index: 0x1424 */ 0xAD35,0x312C, - /* Array index: 0x1424 */ 0xAD38,0x312D, - /* Array index: 0x1424 */ 0xAD3C,0x312E, - /* Array index: 0x1424 */ 0xAD44,0x312F, - /* Array index: 0x1424 */ 0xAD45,0x3130, - /* Array index: 0x1424 */ 0xAD47,0x3131, - /* Array index: 0x1424 */ 0xAD49,0x3132, - /* Array index: 0x1424 */ 0xAD50,0x3133, - /* Array index: 0x1424 */ 0xAD54,0x3134, - /* Array index: 0x1424 */ 0xAD58,0x3135, - /* Array index: 0x1424 */ 0xAD61,0x3136, - /* Array index: 0x1424 */ 0xAD63,0x3137, - /* Array index: 0x1424 */ 0xAD6C,0x3138, - /* Array index: 0x1424 */ 0xAD6D,0x3139, - /* Array index: 0x1424 */ 0xAD70,0x313A, - /* Array index: 0x1424 */ 0xAD88,0x3145, - /* Array index: 0x1424 */ 0xAD89,0x3146, - /* Array index: 0x1424 */ 0xAD8C,0x3147, - /* Array index: 0x1424 */ 0xAD90,0x3148, - /* Array index: 0x1424 */ 0xAD9C,0x3149, - /* Array index: 0x1424 */ 0xAD9D,0x314A, - /* Array index: 0x1424 */ 0xADA4,0x314B, - /* Array index: 0x1424 */ 0xADB7,0x314C, - /* Array index: 0x1424 */ 0xADC0,0x314D, - /* Array index: 0x1424 */ 0xADC1,0x314E, - /* Array index: 0x1424 */ 0xADC4,0x314F, - /* Array index: 0x1424 */ 0xADC8,0x3150, - /* Array index: 0x1424 */ 0xADD0,0x3151, - /* Array index: 0x1424 */ 0xADD1,0x3152, - /* Array index: 0x1424 */ 0xADD3,0x3153, - /* Array index: 0x1424 */ 0xADDC,0x3154, - /* Array index: 0x1424 */ 0xADE0,0x3155, - /* Array index: 0x1424 */ 0xADE4,0x3156, - /* Array index: 0x1424 */ 0xADF8,0x3157, - /* Array index: 0x1424 */ 0xADF9,0x3158, - /* Array index: 0x1424 */ 0xADFC,0x3159, - /* Array index: 0x1424 */ 0xAE08,0x315D, - /* Array index: 0x1424 */ 0xAE09,0x315E, - /* Array index: 0x1424 */ 0xAE0B,0x315F, - /* Array index: 0x1424 */ 0xAE0D,0x3160, - /* Array index: 0x1424 */ 0xAE14,0x3161, - /* Array index: 0x1424 */ 0xAE30,0x3162, - /* Array index: 0x1424 */ 0xAE31,0x3163, - /* Array index: 0x1424 */ 0xAE34,0x3164, - /* Array index: 0x1424 */ 0xAE37,0x3165, - /* Array index: 0x1424 */ 0xAE38,0x3166, - /* Array index: 0x1424 */ 0xAE3A,0x3167, - /* Array index: 0x1424 */ 0xAE40,0x3168, - /* Array index: 0x1424 */ 0xAE41,0x3169, - /* Array index: 0x1424 */ 0xAE43,0x316A, - /* Array index: 0x1424 */ 0xAE45,0x316B, - /* Array index: 0x1424 */ 0xAE46,0x316C, - /* Array index: 0x1424 */ 0xAE54,0x3172, - /* Array index: 0x1424 */ 0xAE56,0x3173, - /* Array index: 0x1424 */ 0xAE65,0x3179, - /* Array index: 0x1424 */ 0xAE68,0x317A, - /* Array index: 0x1424 */ 0xAE69,0x317B, - /* Array index: 0x1424 */ 0xAE6C,0x317C, - /* Array index: 0x1424 */ 0xAE70,0x317D, - /* Array index: 0x1424 */ 0xAE84,0x3225, - /* Array index: 0x1424 */ 0xAE85,0x3226, - /* Array index: 0x1424 */ 0xAE8C,0x3227, - /* Array index: 0x1424 */ 0xAEC4,0x322C, - /* Array index: 0x1424 */ 0xAED8,0x3232, - /* Array index: 0x1424 */ 0xAED9,0x3233, - /* Array index: 0x1424 */ 0xAEDC,0x3234, - /* Array index: 0x1424 */ 0xAEE8,0x3235, - /* Array index: 0x1424 */ 0xAEEB,0x3236, - /* Array index: 0x1424 */ 0xAEED,0x3237, - /* Array index: 0x1424 */ 0xAEF4,0x3238, - /* Array index: 0x1424 */ 0xAEF8,0x3239, - /* Array index: 0x1424 */ 0xAEFC,0x323A, - /* Array index: 0x1424 */ 0xAF07,0x323B, - /* Array index: 0x1424 */ 0xAF08,0x323C, - /* Array index: 0x1424 */ 0xAF0D,0x323D, - /* Array index: 0x1424 */ 0xAF10,0x323E, - /* Array index: 0x1424 */ 0xAF2C,0x323F, - /* Array index: 0x1424 */ 0xAF2D,0x3240, - /* Array index: 0x1424 */ 0xAF30,0x3241, - /* Array index: 0x1424 */ 0xAF32,0x3242, - /* Array index: 0x1424 */ 0xAF34,0x3243, - /* Array index: 0x1424 */ 0xAF3C,0x3244, - /* Array index: 0x1424 */ 0xAF3D,0x3245, - /* Array index: 0x1424 */ 0xAF48,0x324A, - /* Array index: 0x1424 */ 0xAF49,0x324B, - /* Array index: 0x1424 */ 0xAF50,0x324C, - /* Array index: 0x1424 */ 0xAF5C,0x324D, - /* Array index: 0x1424 */ 0xAF5D,0x324E, - /* Array index: 0x1424 */ 0xAF64,0x324F, - /* Array index: 0x1424 */ 0xAF65,0x3250, - /* Array index: 0x1424 */ 0xAF79,0x3251, - /* Array index: 0x1424 */ 0xAF80,0x3252, - /* Array index: 0x1424 */ 0xAF84,0x3253, - /* Array index: 0x1424 */ 0xAF88,0x3254, - /* Array index: 0x1424 */ 0xAF90,0x3255, - /* Array index: 0x1424 */ 0xAF91,0x3256, - /* Array index: 0x1424 */ 0xAF95,0x3257, - /* Array index: 0x1424 */ 0xAF9C,0x3258, - /* Array index: 0x1424 */ 0xAFB8,0x3259, - /* Array index: 0x1424 */ 0xAFB9,0x325A, - /* Array index: 0x1424 */ 0xAFBC,0x325B, - /* Array index: 0x1424 */ 0xAFC0,0x325C, - /* Array index: 0x1424 */ 0xAFD4,0x3263, - /* Array index: 0x1424 */ 0xAFDC,0x3264, - /* Array index: 0x1424 */ 0xAFE8,0x3265, - /* Array index: 0x1424 */ 0xAFE9,0x3266, - /* Array index: 0x1424 */ 0xAFF0,0x3267, - /* Array index: 0x1424 */ 0xAFF1,0x3268, - /* Array index: 0x1424 */ 0xAFF4,0x3269, - /* Array index: 0x1424 */ 0xAFF8,0x326A, - /* Array index: 0x1424 */ 0xB000,0x326B, - /* Array index: 0x1424 */ 0xB001,0x326C, - /* Array index: 0x1424 */ 0xB004,0x326D, - /* Array index: 0x1424 */ 0xB00C,0x326E, - /* Array index: 0x1424 */ 0xB010,0x326F, - /* Array index: 0x1424 */ 0xB014,0x3270, - /* Array index: 0x1424 */ 0xB01C,0x3271, - /* Array index: 0x1424 */ 0xB01D,0x3272, - /* Array index: 0x1424 */ 0xB028,0x3273, - /* Array index: 0x1424 */ 0xB044,0x3274, - /* Array index: 0x1424 */ 0xB045,0x3275, - /* Array index: 0x1424 */ 0xB048,0x3276, - /* Array index: 0x1424 */ 0xB04A,0x3277, - /* Array index: 0x1424 */ 0xB04C,0x3278, - /* Array index: 0x1424 */ 0xB04E,0x3279, - /* Array index: 0x1424 */ 0xB05D,0x3321, - /* Array index: 0x1424 */ 0xB07C,0x3322, - /* Array index: 0x1424 */ 0xB07D,0x3323, - /* Array index: 0x1424 */ 0xB080,0x3324, - /* Array index: 0x1424 */ 0xB084,0x3325, - /* Array index: 0x1424 */ 0xB08C,0x3326, - /* Array index: 0x1424 */ 0xB08D,0x3327, - /* Array index: 0x1424 */ 0xB08F,0x3328, - /* Array index: 0x1424 */ 0xB091,0x3329, - /* Array index: 0x1424 */ 0xB0B8,0x333D, - /* Array index: 0x1424 */ 0xB0BC,0x333E, - /* Array index: 0x1424 */ 0xB0D0,0x3344, - /* Array index: 0x1424 */ 0xB0D1,0x3345, - /* Array index: 0x1424 */ 0xB0D4,0x3346, - /* Array index: 0x1424 */ 0xB0D8,0x3347, - /* Array index: 0x1424 */ 0xB0E0,0x3348, - /* Array index: 0x1424 */ 0xB0E5,0x3349, - /* Array index: 0x1424 */ 0xB110,0x334E, - /* Array index: 0x1424 */ 0xB112,0x334F, - /* Array index: 0x1424 */ 0xB113,0x3350, - /* Array index: 0x1424 */ 0xB128,0x3359, - /* Array index: 0x1424 */ 0xB12C,0x335A, - /* Array index: 0x1424 */ 0xB140,0x3360, - /* Array index: 0x1424 */ 0xB141,0x3361, - /* Array index: 0x1424 */ 0xB144,0x3362, - /* Array index: 0x1424 */ 0xB148,0x3363, - /* Array index: 0x1424 */ 0xB150,0x3364, - /* Array index: 0x1424 */ 0xB151,0x3365, - /* Array index: 0x1424 */ 0xB154,0x3366, - /* Array index: 0x1424 */ 0xB155,0x3367, - /* Array index: 0x1424 */ 0xB158,0x3368, - /* Array index: 0x1424 */ 0xB15C,0x3369, - /* Array index: 0x1424 */ 0xB160,0x336A, - /* Array index: 0x1424 */ 0xB178,0x336B, - /* Array index: 0x1424 */ 0xB179,0x336C, - /* Array index: 0x1424 */ 0xB17C,0x336D, - /* Array index: 0x1424 */ 0xB180,0x336E, - /* Array index: 0x1424 */ 0xB182,0x336F, - /* Array index: 0x1424 */ 0xB188,0x3370, - /* Array index: 0x1424 */ 0xB189,0x3371, - /* Array index: 0x1424 */ 0xB18B,0x3372, - /* Array index: 0x1424 */ 0xB18D,0x3373, - /* Array index: 0x1424 */ 0xB198,0x3377, - /* Array index: 0x1424 */ 0xB19C,0x3378, - /* Array index: 0x1424 */ 0xB1A8,0x3379, - /* Array index: 0x1424 */ 0xB1CC,0x337A, - /* Array index: 0x1424 */ 0xB1D0,0x337B, - /* Array index: 0x1424 */ 0xB1D4,0x337C, - /* Array index: 0x1424 */ 0xB1DC,0x337D, - /* Array index: 0x1424 */ 0xB1DD,0x337E, - /* Array index: 0x1424 */ 0xB1DF,0x3421, - /* Array index: 0x1424 */ 0xB1E8,0x3422, - /* Array index: 0x1424 */ 0xB1E9,0x3423, - /* Array index: 0x1424 */ 0xB1EC,0x3424, - /* Array index: 0x1424 */ 0xB1F0,0x3425, - /* Array index: 0x1424 */ 0xB1F9,0x3426, - /* Array index: 0x1424 */ 0xB1FB,0x3427, - /* Array index: 0x1424 */ 0xB1FD,0x3428, - /* Array index: 0x1424 */ 0xB204,0x3429, - /* Array index: 0x1424 */ 0xB205,0x342A, - /* Array index: 0x1424 */ 0xB208,0x342B, - /* Array index: 0x1424 */ 0xB20B,0x342C, - /* Array index: 0x1424 */ 0xB20C,0x342D, - /* Array index: 0x1424 */ 0xB214,0x342E, - /* Array index: 0x1424 */ 0xB215,0x342F, - /* Array index: 0x1424 */ 0xB217,0x3430, - /* Array index: 0x1424 */ 0xB219,0x3431, - /* Array index: 0x1424 */ 0xB220,0x3432, - /* Array index: 0x1424 */ 0xB234,0x3433, - /* Array index: 0x1424 */ 0xB23C,0x3434, - /* Array index: 0x1424 */ 0xB258,0x3435, - /* Array index: 0x1424 */ 0xB25C,0x3436, - /* Array index: 0x1424 */ 0xB260,0x3437, - /* Array index: 0x1424 */ 0xB268,0x3438, - /* Array index: 0x1424 */ 0xB269,0x3439, - /* Array index: 0x1424 */ 0xB274,0x343A, - /* Array index: 0x1424 */ 0xB275,0x343B, - /* Array index: 0x1424 */ 0xB27C,0x343C, - /* Array index: 0x1424 */ 0xB284,0x343D, - /* Array index: 0x1424 */ 0xB285,0x343E, - /* Array index: 0x1424 */ 0xB289,0x343F, - /* Array index: 0x1424 */ 0xB290,0x3440, - /* Array index: 0x1424 */ 0xB291,0x3441, - /* Array index: 0x1424 */ 0xB294,0x3442, - /* Array index: 0x1424 */ 0xB2A0,0x3446, - /* Array index: 0x1424 */ 0xB2A1,0x3447, - /* Array index: 0x1424 */ 0xB2A3,0x3448, - /* Array index: 0x1424 */ 0xB2A5,0x3449, - /* Array index: 0x1424 */ 0xB2A6,0x344A, - /* Array index: 0x1424 */ 0xB2AA,0x344B, - /* Array index: 0x1424 */ 0xB2AC,0x344C, - /* Array index: 0x1424 */ 0xB2B0,0x344D, - /* Array index: 0x1424 */ 0xB2B4,0x344E, - /* Array index: 0x1424 */ 0xB2C8,0x344F, - /* Array index: 0x1424 */ 0xB2C9,0x3450, - /* Array index: 0x1424 */ 0xB2CC,0x3451, - /* Array index: 0x1424 */ 0xB2D0,0x3452, - /* Array index: 0x1424 */ 0xB2D2,0x3453, - /* Array index: 0x1424 */ 0xB2D8,0x3454, - /* Array index: 0x1424 */ 0xB2D9,0x3455, - /* Array index: 0x1424 */ 0xB2DB,0x3456, - /* Array index: 0x1424 */ 0xB2DD,0x3457, - /* Array index: 0x1424 */ 0xB304,0x346D, - /* Array index: 0x1424 */ 0xB308,0x346E, - /* Array index: 0x1424 */ 0xB31C,0x3474, - /* Array index: 0x1424 */ 0xB364,0x347D, - /* Array index: 0x1424 */ 0xB365,0x347E, - /* Array index: 0x1424 */ 0xB367,0x3521, - /* Array index: 0x1424 */ 0xB369,0x3522, - /* Array index: 0x1424 */ 0xB36B,0x3523, - /* Array index: 0x1424 */ 0xB36E,0x3524, - /* Array index: 0x1424 */ 0xB370,0x3525, - /* Array index: 0x1424 */ 0xB371,0x3526, - /* Array index: 0x1424 */ 0xB374,0x3527, - /* Array index: 0x1424 */ 0xB378,0x3528, - /* Array index: 0x1424 */ 0xB38C,0x352E, - /* Array index: 0x1424 */ 0xB390,0x352F, - /* Array index: 0x1424 */ 0xB394,0x3530, - /* Array index: 0x1424 */ 0xB3A0,0x3531, - /* Array index: 0x1424 */ 0xB3A1,0x3532, - /* Array index: 0x1424 */ 0xB3A8,0x3533, - /* Array index: 0x1424 */ 0xB3AC,0x3534, - /* Array index: 0x1424 */ 0xB3C4,0x3535, - /* Array index: 0x1424 */ 0xB3C5,0x3536, - /* Array index: 0x1424 */ 0xB3C8,0x3537, - /* Array index: 0x1424 */ 0xB3CB,0x3538, - /* Array index: 0x1424 */ 0xB3CC,0x3539, - /* Array index: 0x1424 */ 0xB3CE,0x353A, - /* Array index: 0x1424 */ 0xB3D0,0x353B, - /* Array index: 0x1424 */ 0xB3D4,0x353C, - /* Array index: 0x1424 */ 0xB3D5,0x353D, - /* Array index: 0x1424 */ 0xB3D7,0x353E, - /* Array index: 0x1424 */ 0xB3D9,0x353F, - /* Array index: 0x1424 */ 0xB3DB,0x3540, - /* Array index: 0x1424 */ 0xB3DD,0x3541, - /* Array index: 0x1424 */ 0xB3E0,0x3542, - /* Array index: 0x1424 */ 0xB3E4,0x3543, - /* Array index: 0x1424 */ 0xB3E8,0x3544, - /* Array index: 0x1424 */ 0xB3FC,0x3545, - /* Array index: 0x1424 */ 0xB410,0x3546, - /* Array index: 0x1424 */ 0xB418,0x3547, - /* Array index: 0x1424 */ 0xB41C,0x3548, - /* Array index: 0x1424 */ 0xB420,0x3549, - /* Array index: 0x1424 */ 0xB428,0x354A, - /* Array index: 0x1424 */ 0xB429,0x354B, - /* Array index: 0x1424 */ 0xB42B,0x354C, - /* Array index: 0x1424 */ 0xB434,0x354D, - /* Array index: 0x1424 */ 0xB450,0x354E, - /* Array index: 0x1424 */ 0xB451,0x354F, - /* Array index: 0x1424 */ 0xB454,0x3550, - /* Array index: 0x1424 */ 0xB458,0x3551, - /* Array index: 0x1424 */ 0xB460,0x3552, - /* Array index: 0x1424 */ 0xB461,0x3553, - /* Array index: 0x1424 */ 0xB463,0x3554, - /* Array index: 0x1424 */ 0xB465,0x3555, - /* Array index: 0x1424 */ 0xB46C,0x3556, - /* Array index: 0x1424 */ 0xB480,0x3557, - /* Array index: 0x1424 */ 0xB488,0x3558, - /* Array index: 0x1424 */ 0xB49D,0x3559, - /* Array index: 0x1424 */ 0xB4A4,0x355A, - /* Array index: 0x1424 */ 0xB4A8,0x355B, - /* Array index: 0x1424 */ 0xB4AC,0x355C, - /* Array index: 0x1424 */ 0xB4B5,0x355D, - /* Array index: 0x1424 */ 0xB4B7,0x355E, - /* Array index: 0x1424 */ 0xB4B9,0x355F, - /* Array index: 0x1424 */ 0xB4C0,0x3560, - /* Array index: 0x1424 */ 0xB4C4,0x3561, - /* Array index: 0x1424 */ 0xB4C8,0x3562, - /* Array index: 0x1424 */ 0xB4D0,0x3563, - /* Array index: 0x1424 */ 0xB4D5,0x3564, - /* Array index: 0x1424 */ 0xB4DC,0x3565, - /* Array index: 0x1424 */ 0xB4DD,0x3566, - /* Array index: 0x1424 */ 0xB4E0,0x3567, - /* Array index: 0x1424 */ 0xB4E3,0x3568, - /* Array index: 0x1424 */ 0xB4E4,0x3569, - /* Array index: 0x1424 */ 0xB4E6,0x356A, - /* Array index: 0x1424 */ 0xB4EC,0x356B, - /* Array index: 0x1424 */ 0xB4ED,0x356C, - /* Array index: 0x1424 */ 0xB4EF,0x356D, - /* Array index: 0x1424 */ 0xB4F1,0x356E, - /* Array index: 0x1424 */ 0xB4F8,0x356F, - /* Array index: 0x1424 */ 0xB514,0x3570, - /* Array index: 0x1424 */ 0xB515,0x3571, - /* Array index: 0x1424 */ 0xB518,0x3572, - /* Array index: 0x1424 */ 0xB51B,0x3573, - /* Array index: 0x1424 */ 0xB51C,0x3574, - /* Array index: 0x1424 */ 0xB530,0x357B, - /* Array index: 0x1424 */ 0xB531,0x357C, - /* Array index: 0x1424 */ 0xB534,0x357D, - /* Array index: 0x1424 */ 0xB538,0x357E, - /* Array index: 0x1424 */ 0xB550,0x3629, - /* Array index: 0x1424 */ 0xB554,0x362A, - /* Array index: 0x1424 */ 0xB5A0,0x3630, - /* Array index: 0x1424 */ 0xB5A1,0x3631, - /* Array index: 0x1424 */ 0xB5A4,0x3632, - /* Array index: 0x1424 */ 0xB5A8,0x3633, - /* Array index: 0x1424 */ 0xB5AA,0x3634, - /* Array index: 0x1424 */ 0xB5AB,0x3635, - /* Array index: 0x1424 */ 0xB5C0,0x363E, - /* Array index: 0x1424 */ 0xB5C4,0x363F, - /* Array index: 0x1424 */ 0xB5D8,0x3645, - /* Array index: 0x1424 */ 0xB5EC,0x3646, - /* Array index: 0x1424 */ 0xB610,0x3647, - /* Array index: 0x1424 */ 0xB611,0x3648, - /* Array index: 0x1424 */ 0xB614,0x3649, - /* Array index: 0x1424 */ 0xB618,0x364A, - /* Array index: 0x1424 */ 0xB625,0x364B, - /* Array index: 0x1424 */ 0xB62C,0x364C, - /* Array index: 0x1424 */ 0xB634,0x364D, - /* Array index: 0x1424 */ 0xB648,0x364E, - /* Array index: 0x1424 */ 0xB664,0x364F, - /* Array index: 0x1424 */ 0xB668,0x3650, - /* Array index: 0x1424 */ 0xB69C,0x3651, - /* Array index: 0x1424 */ 0xB69D,0x3652, - /* Array index: 0x1424 */ 0xB6A0,0x3653, - /* Array index: 0x1424 */ 0xB6A4,0x3654, - /* Array index: 0x1424 */ 0xB6AB,0x3655, - /* Array index: 0x1424 */ 0xB6AC,0x3656, - /* Array index: 0x1424 */ 0xB6B1,0x3657, - /* Array index: 0x1424 */ 0xB6D4,0x3658, - /* Array index: 0x1424 */ 0xB6F0,0x3659, - /* Array index: 0x1424 */ 0xB6F4,0x365A, - /* Array index: 0x1424 */ 0xB6F8,0x365B, - /* Array index: 0x1424 */ 0xB700,0x365C, - /* Array index: 0x1424 */ 0xB701,0x365D, - /* Array index: 0x1424 */ 0xB705,0x365E, - /* Array index: 0x1424 */ 0xB728,0x365F, - /* Array index: 0x1424 */ 0xB729,0x3660, - /* Array index: 0x1424 */ 0xB72C,0x3661, - /* Array index: 0x1424 */ 0xB72F,0x3662, - /* Array index: 0x1424 */ 0xB730,0x3663, - /* Array index: 0x1424 */ 0xB738,0x3664, - /* Array index: 0x1424 */ 0xB739,0x3665, - /* Array index: 0x1424 */ 0xB73B,0x3666, - /* Array index: 0x1424 */ 0xB744,0x3667, - /* Array index: 0x1424 */ 0xB748,0x3668, - /* Array index: 0x1424 */ 0xB74C,0x3669, - /* Array index: 0x1424 */ 0xB754,0x366A, - /* Array index: 0x1424 */ 0xB755,0x366B, - /* Array index: 0x1424 */ 0xB760,0x366C, - /* Array index: 0x1424 */ 0xB764,0x366D, - /* Array index: 0x1424 */ 0xB768,0x366E, - /* Array index: 0x1424 */ 0xB770,0x366F, - /* Array index: 0x1424 */ 0xB771,0x3670, - /* Array index: 0x1424 */ 0xB773,0x3671, - /* Array index: 0x1424 */ 0xB775,0x3672, - /* Array index: 0x1424 */ 0xB77C,0x3673, - /* Array index: 0x1424 */ 0xB77D,0x3674, - /* Array index: 0x1424 */ 0xB780,0x3675, - /* Array index: 0x1424 */ 0xB784,0x3676, - /* Array index: 0x1424 */ 0xB79C,0x3723, - /* Array index: 0x1424 */ 0xB7A0,0x3724, - /* Array index: 0x1424 */ 0xB7B4,0x372A, - /* Array index: 0x1424 */ 0xB7B5,0x372B, - /* Array index: 0x1424 */ 0xB7B8,0x372C, - /* Array index: 0x1424 */ 0xB7C7,0x372D, - /* Array index: 0x1424 */ 0xB7C9,0x372E, - /* Array index: 0x1424 */ 0xB7EC,0x372F, - /* Array index: 0x1424 */ 0xB7ED,0x3730, - /* Array index: 0x1424 */ 0xB7F0,0x3731, - /* Array index: 0x1424 */ 0xB7F4,0x3732, - /* Array index: 0x1424 */ 0xB80C,0x373B, - /* Array index: 0x1424 */ 0xB810,0x373C, - /* Array index: 0x1424 */ 0xB818,0x373D, - /* Array index: 0x1424 */ 0xB819,0x373E, - /* Array index: 0x1424 */ 0xB81B,0x373F, - /* Array index: 0x1424 */ 0xB81D,0x3740, - /* Array index: 0x1424 */ 0xB824,0x3741, - /* Array index: 0x1424 */ 0xB825,0x3742, - /* Array index: 0x1424 */ 0xB828,0x3743, - /* Array index: 0x1424 */ 0xB82C,0x3744, - /* Array index: 0x1424 */ 0xB840,0x374A, - /* Array index: 0x1424 */ 0xB844,0x374B, - /* Array index: 0x1424 */ 0xB851,0x374C, - /* Array index: 0x1424 */ 0xB853,0x374D, - /* Array index: 0x1424 */ 0xB85C,0x374E, - /* Array index: 0x1424 */ 0xB85D,0x374F, - /* Array index: 0x1424 */ 0xB860,0x3750, - /* Array index: 0x1424 */ 0xB864,0x3751, - /* Array index: 0x1424 */ 0xB86C,0x3752, - /* Array index: 0x1424 */ 0xB86D,0x3753, - /* Array index: 0x1424 */ 0xB86F,0x3754, - /* Array index: 0x1424 */ 0xB871,0x3755, - /* Array index: 0x1424 */ 0xB878,0x3756, - /* Array index: 0x1424 */ 0xB87C,0x3757, - /* Array index: 0x1424 */ 0xB88D,0x3758, - /* Array index: 0x1424 */ 0xB8A8,0x3759, - /* Array index: 0x1424 */ 0xB8B0,0x375A, - /* Array index: 0x1424 */ 0xB8B4,0x375B, - /* Array index: 0x1424 */ 0xB8B8,0x375C, - /* Array index: 0x1424 */ 0xB8C0,0x375D, - /* Array index: 0x1424 */ 0xB8C1,0x375E, - /* Array index: 0x1424 */ 0xB8C3,0x375F, - /* Array index: 0x1424 */ 0xB8C5,0x3760, - /* Array index: 0x1424 */ 0xB8CC,0x3761, - /* Array index: 0x1424 */ 0xB8D0,0x3762, - /* Array index: 0x1424 */ 0xB8D4,0x3763, - /* Array index: 0x1424 */ 0xB8DD,0x3764, - /* Array index: 0x1424 */ 0xB8DF,0x3765, - /* Array index: 0x1424 */ 0xB8E1,0x3766, - /* Array index: 0x1424 */ 0xB8E8,0x3767, - /* Array index: 0x1424 */ 0xB8E9,0x3768, - /* Array index: 0x1424 */ 0xB8EC,0x3769, - /* Array index: 0x1424 */ 0xB8F0,0x376A, - /* Array index: 0x1424 */ 0xB8F8,0x376B, - /* Array index: 0x1424 */ 0xB8F9,0x376C, - /* Array index: 0x1424 */ 0xB8FB,0x376D, - /* Array index: 0x1424 */ 0xB8FD,0x376E, - /* Array index: 0x1424 */ 0xB904,0x376F, - /* Array index: 0x1424 */ 0xB918,0x3770, - /* Array index: 0x1424 */ 0xB920,0x3771, - /* Array index: 0x1424 */ 0xB93C,0x3772, - /* Array index: 0x1424 */ 0xB93D,0x3773, - /* Array index: 0x1424 */ 0xB940,0x3774, - /* Array index: 0x1424 */ 0xB944,0x3775, - /* Array index: 0x1424 */ 0xB94C,0x3776, - /* Array index: 0x1424 */ 0xB94F,0x3777, - /* Array index: 0x1424 */ 0xB951,0x3778, - /* Array index: 0x1424 */ 0xB958,0x3779, - /* Array index: 0x1424 */ 0xB959,0x377A, - /* Array index: 0x1424 */ 0xB95C,0x377B, - /* Array index: 0x1424 */ 0xB960,0x377C, - /* Array index: 0x1424 */ 0xB968,0x377D, - /* Array index: 0x1424 */ 0xB969,0x377E, - /* Array index: 0x1424 */ 0xB96B,0x3821, - /* Array index: 0x1424 */ 0xB96D,0x3822, - /* Array index: 0x1424 */ 0xB974,0x3823, - /* Array index: 0x1424 */ 0xB975,0x3824, - /* Array index: 0x1424 */ 0xB978,0x3825, - /* Array index: 0x1424 */ 0xB97C,0x3826, - /* Array index: 0x1424 */ 0xB984,0x3827, - /* Array index: 0x1424 */ 0xB985,0x3828, - /* Array index: 0x1424 */ 0xB987,0x3829, - /* Array index: 0x1424 */ 0xB989,0x382A, - /* Array index: 0x1424 */ 0xB98A,0x382B, - /* Array index: 0x1424 */ 0xB98D,0x382C, - /* Array index: 0x1424 */ 0xB98E,0x382D, - /* Array index: 0x1424 */ 0xB9AC,0x382E, - /* Array index: 0x1424 */ 0xB9AD,0x382F, - /* Array index: 0x1424 */ 0xB9B0,0x3830, - /* Array index: 0x1424 */ 0xB9B4,0x3831, - /* Array index: 0x1424 */ 0xB9BC,0x3832, - /* Array index: 0x1424 */ 0xB9BD,0x3833, - /* Array index: 0x1424 */ 0xB9BF,0x3834, - /* Array index: 0x1424 */ 0xB9C1,0x3835, - /* Array index: 0x1424 */ 0xB9C8,0x3836, - /* Array index: 0x1424 */ 0xB9C9,0x3837, - /* Array index: 0x1424 */ 0xB9D8,0x383E, - /* Array index: 0x1424 */ 0xB9D9,0x383F, - /* Array index: 0x1424 */ 0xB9DB,0x3840, - /* Array index: 0x1424 */ 0xB9DD,0x3841, - /* Array index: 0x1424 */ 0xB9DE,0x3842, - /* Array index: 0x1424 */ 0xB9E8,0x3847, - /* Array index: 0x1424 */ 0xB9EC,0x3848, - /* Array index: 0x1424 */ 0xBA00,0x384F, - /* Array index: 0x1424 */ 0xBA01,0x3850, - /* Array index: 0x1424 */ 0xBA08,0x3851, - /* Array index: 0x1424 */ 0xBA15,0x3852, - /* Array index: 0x1424 */ 0xBA38,0x3853, - /* Array index: 0x1424 */ 0xBA39,0x3854, - /* Array index: 0x1424 */ 0xBA3C,0x3855, - /* Array index: 0x1424 */ 0xBA40,0x3856, - /* Array index: 0x1424 */ 0xBA42,0x3857, - /* Array index: 0x1424 */ 0xBA48,0x3858, - /* Array index: 0x1424 */ 0xBA49,0x3859, - /* Array index: 0x1424 */ 0xBA4B,0x385A, - /* Array index: 0x1424 */ 0xBA4D,0x385B, - /* Array index: 0x1424 */ 0xBA4E,0x385C, - /* Array index: 0x1424 */ 0xBA58,0x3860, - /* Array index: 0x1424 */ 0xBA5C,0x3861, - /* Array index: 0x1424 */ 0xBA70,0x3867, - /* Array index: 0x1424 */ 0xBA71,0x3868, - /* Array index: 0x1424 */ 0xBA74,0x3869, - /* Array index: 0x1424 */ 0xBA78,0x386A, - /* Array index: 0x1424 */ 0xBA8C,0x386F, - /* Array index: 0x1424 */ 0xBAB0,0x3874, - /* Array index: 0x1424 */ 0xBAB2,0x3875, - /* Array index: 0x1424 */ 0xBAB8,0x3876, - /* Array index: 0x1424 */ 0xBAB9,0x3877, - /* Array index: 0x1424 */ 0xBABB,0x3878, - /* Array index: 0x1424 */ 0xBABD,0x3879, - /* Array index: 0x1424 */ 0xBAC4,0x387A, - /* Array index: 0x1424 */ 0xBAC8,0x387B, - /* Array index: 0x1424 */ 0xBAD8,0x387C, - /* Array index: 0x1424 */ 0xBAD9,0x387D, - /* Array index: 0x1424 */ 0xBAFC,0x387E, - /* Array index: 0x1424 */ 0xBB00,0x3921, - /* Array index: 0x1424 */ 0xBB04,0x3922, - /* Array index: 0x1424 */ 0xBB0D,0x3923, - /* Array index: 0x1424 */ 0xBB0F,0x3924, - /* Array index: 0x1424 */ 0xBB11,0x3925, - /* Array index: 0x1424 */ 0xBB18,0x3926, - /* Array index: 0x1424 */ 0xBB1C,0x3927, - /* Array index: 0x1424 */ 0xBB20,0x3928, - /* Array index: 0x1424 */ 0xBB29,0x3929, - /* Array index: 0x1424 */ 0xBB2B,0x392A, - /* Array index: 0x1424 */ 0xBB44,0x3933, - /* Array index: 0x1424 */ 0xBB45,0x3934, - /* Array index: 0x1424 */ 0xBB47,0x3935, - /* Array index: 0x1424 */ 0xBB49,0x3936, - /* Array index: 0x1424 */ 0xBB4D,0x3937, - /* Array index: 0x1424 */ 0xBB4F,0x3938, - /* Array index: 0x1424 */ 0xBB50,0x3939, - /* Array index: 0x1424 */ 0xBB54,0x393A, - /* Array index: 0x1424 */ 0xBB58,0x393B, - /* Array index: 0x1424 */ 0xBB61,0x393C, - /* Array index: 0x1424 */ 0xBB63,0x393D, - /* Array index: 0x1424 */ 0xBB6C,0x393E, - /* Array index: 0x1424 */ 0xBB88,0x393F, - /* Array index: 0x1424 */ 0xBB8C,0x3940, - /* Array index: 0x1424 */ 0xBB90,0x3941, - /* Array index: 0x1424 */ 0xBBA4,0x3942, - /* Array index: 0x1424 */ 0xBBA8,0x3943, - /* Array index: 0x1424 */ 0xBBAC,0x3944, - /* Array index: 0x1424 */ 0xBBB4,0x3945, - /* Array index: 0x1424 */ 0xBBB7,0x3946, - /* Array index: 0x1424 */ 0xBBC0,0x3947, - /* Array index: 0x1424 */ 0xBBC4,0x3948, - /* Array index: 0x1424 */ 0xBBC8,0x3949, - /* Array index: 0x1424 */ 0xBBD0,0x394A, - /* Array index: 0x1424 */ 0xBBD3,0x394B, - /* Array index: 0x1424 */ 0xBBF8,0x394C, - /* Array index: 0x1424 */ 0xBBF9,0x394D, - /* Array index: 0x1424 */ 0xBBFC,0x394E, - /* Array index: 0x1424 */ 0xBBFF,0x394F, - /* Array index: 0x1424 */ 0xBC00,0x3950, - /* Array index: 0x1424 */ 0xBC02,0x3951, - /* Array index: 0x1424 */ 0xBC24,0x3963, - /* Array index: 0x1424 */ 0xBC25,0x3964, - /* Array index: 0x1424 */ 0xBC27,0x3965, - /* Array index: 0x1424 */ 0xBC29,0x3966, - /* Array index: 0x1424 */ 0xBC2D,0x3967, - /* Array index: 0x1424 */ 0xBC30,0x3968, - /* Array index: 0x1424 */ 0xBC31,0x3969, - /* Array index: 0x1424 */ 0xBC34,0x396A, - /* Array index: 0x1424 */ 0xBC38,0x396B, - /* Array index: 0x1424 */ 0xBC49,0x3971, - /* Array index: 0x1424 */ 0xBC4C,0x3972, - /* Array index: 0x1424 */ 0xBC4D,0x3973, - /* Array index: 0x1424 */ 0xBC50,0x3974, - /* Array index: 0x1424 */ 0xBC5D,0x3975, - /* Array index: 0x1424 */ 0xBC84,0x3976, - /* Array index: 0x1424 */ 0xBC85,0x3977, - /* Array index: 0x1424 */ 0xBC88,0x3978, - /* Array index: 0x1424 */ 0xBC8B,0x3979, - /* Array index: 0x1424 */ 0xBC8C,0x397A, - /* Array index: 0x1424 */ 0xBC8E,0x397B, - /* Array index: 0x1424 */ 0xBC94,0x397C, - /* Array index: 0x1424 */ 0xBC95,0x397D, - /* Array index: 0x1424 */ 0xBC97,0x397E, - /* Array index: 0x1424 */ 0xBC99,0x3A21, - /* Array index: 0x1424 */ 0xBC9A,0x3A22, - /* Array index: 0x1424 */ 0xBCA0,0x3A23, - /* Array index: 0x1424 */ 0xBCA1,0x3A24, - /* Array index: 0x1424 */ 0xBCA4,0x3A25, - /* Array index: 0x1424 */ 0xBCA7,0x3A26, - /* Array index: 0x1424 */ 0xBCA8,0x3A27, - /* Array index: 0x1424 */ 0xBCBC,0x3A2D, - /* Array index: 0x1424 */ 0xBCBD,0x3A2E, - /* Array index: 0x1424 */ 0xBCC0,0x3A2F, - /* Array index: 0x1424 */ 0xBCC4,0x3A30, - /* Array index: 0x1424 */ 0xBCD5,0x3A35, - /* Array index: 0x1424 */ 0xBCD8,0x3A36, - /* Array index: 0x1424 */ 0xBCDC,0x3A37, - /* Array index: 0x1424 */ 0xBCFC,0x3A3C, - /* Array index: 0x1424 */ 0xBD04,0x3A3D, - /* Array index: 0x1424 */ 0xBD05,0x3A3E, - /* Array index: 0x1424 */ 0xBD07,0x3A3F, - /* Array index: 0x1424 */ 0xBD09,0x3A40, - /* Array index: 0x1424 */ 0xBD10,0x3A41, - /* Array index: 0x1424 */ 0xBD14,0x3A42, - /* Array index: 0x1424 */ 0xBD24,0x3A43, - /* Array index: 0x1424 */ 0xBD2C,0x3A44, - /* Array index: 0x1424 */ 0xBD40,0x3A45, - /* Array index: 0x1424 */ 0xBD48,0x3A46, - /* Array index: 0x1424 */ 0xBD49,0x3A47, - /* Array index: 0x1424 */ 0xBD4C,0x3A48, - /* Array index: 0x1424 */ 0xBD50,0x3A49, - /* Array index: 0x1424 */ 0xBD58,0x3A4A, - /* Array index: 0x1424 */ 0xBD59,0x3A4B, - /* Array index: 0x1424 */ 0xBD64,0x3A4C, - /* Array index: 0x1424 */ 0xBD68,0x3A4D, - /* Array index: 0x1424 */ 0xBD80,0x3A4E, - /* Array index: 0x1424 */ 0xBD81,0x3A4F, - /* Array index: 0x1424 */ 0xBD84,0x3A50, - /* Array index: 0x1424 */ 0xBD90,0x3A55, - /* Array index: 0x1424 */ 0xBD91,0x3A56, - /* Array index: 0x1424 */ 0xBD93,0x3A57, - /* Array index: 0x1424 */ 0xBD95,0x3A58, - /* Array index: 0x1424 */ 0xBD99,0x3A59, - /* Array index: 0x1424 */ 0xBD9A,0x3A5A, - /* Array index: 0x1424 */ 0xBD9C,0x3A5B, - /* Array index: 0x1424 */ 0xBDA4,0x3A5C, - /* Array index: 0x1424 */ 0xBDB0,0x3A5D, - /* Array index: 0x1424 */ 0xBDB8,0x3A5E, - /* Array index: 0x1424 */ 0xBDD4,0x3A5F, - /* Array index: 0x1424 */ 0xBDD5,0x3A60, - /* Array index: 0x1424 */ 0xBDD8,0x3A61, - /* Array index: 0x1424 */ 0xBDDC,0x3A62, - /* Array index: 0x1424 */ 0xBDE9,0x3A63, - /* Array index: 0x1424 */ 0xBDF0,0x3A64, - /* Array index: 0x1424 */ 0xBDF4,0x3A65, - /* Array index: 0x1424 */ 0xBDF8,0x3A66, - /* Array index: 0x1424 */ 0xBE00,0x3A67, - /* Array index: 0x1424 */ 0xBE03,0x3A68, - /* Array index: 0x1424 */ 0xBE05,0x3A69, - /* Array index: 0x1424 */ 0xBE0C,0x3A6A, - /* Array index: 0x1424 */ 0xBE0D,0x3A6B, - /* Array index: 0x1424 */ 0xBE10,0x3A6C, - /* Array index: 0x1424 */ 0xBE14,0x3A6D, - /* Array index: 0x1424 */ 0xBE1C,0x3A6E, - /* Array index: 0x1424 */ 0xBE1D,0x3A6F, - /* Array index: 0x1424 */ 0xBE1F,0x3A70, - /* Array index: 0x1424 */ 0xBE44,0x3A71, - /* Array index: 0x1424 */ 0xBE45,0x3A72, - /* Array index: 0x1424 */ 0xBE48,0x3A73, - /* Array index: 0x1424 */ 0xBE4C,0x3A74, - /* Array index: 0x1424 */ 0xBE4E,0x3A75, - /* Array index: 0x1424 */ 0xBE54,0x3A76, - /* Array index: 0x1424 */ 0xBE55,0x3A77, - /* Array index: 0x1424 */ 0xBE60,0x3A7C, - /* Array index: 0x1424 */ 0xBE61,0x3A7D, - /* Array index: 0x1424 */ 0xBE64,0x3A7E, - /* Array index: 0x1424 */ 0xBE68,0x3B21, - /* Array index: 0x1424 */ 0xBE6A,0x3B22, - /* Array index: 0x1424 */ 0xBE80,0x3B2B, - /* Array index: 0x1424 */ 0xBE84,0x3B2C, - /* Array index: 0x1424 */ 0xBE98,0x3B32, - /* Array index: 0x1424 */ 0xBE99,0x3B33, - /* Array index: 0x1424 */ 0xBEA8,0x3B34, - /* Array index: 0x1424 */ 0xBED0,0x3B35, - /* Array index: 0x1424 */ 0xBED1,0x3B36, - /* Array index: 0x1424 */ 0xBED4,0x3B37, - /* Array index: 0x1424 */ 0xBED7,0x3B38, - /* Array index: 0x1424 */ 0xBED8,0x3B39, - /* Array index: 0x1424 */ 0xBEE0,0x3B3A, - /* Array index: 0x1424 */ 0xBEEC,0x3B3E, - /* Array index: 0x1424 */ 0xBF01,0x3B3F, - /* Array index: 0x1424 */ 0xBF08,0x3B40, - /* Array index: 0x1424 */ 0xBF09,0x3B41, - /* Array index: 0x1424 */ 0xBF40,0x3B47, - /* Array index: 0x1424 */ 0xBF41,0x3B48, - /* Array index: 0x1424 */ 0xBF44,0x3B49, - /* Array index: 0x1424 */ 0xBF48,0x3B4A, - /* Array index: 0x1424 */ 0xBF50,0x3B4B, - /* Array index: 0x1424 */ 0xBF51,0x3B4C, - /* Array index: 0x1424 */ 0xBF55,0x3B4D, - /* Array index: 0x1424 */ 0xBF94,0x3B4E, - /* Array index: 0x1424 */ 0xBFB0,0x3B4F, - /* Array index: 0x1424 */ 0xBFC5,0x3B50, - /* Array index: 0x1424 */ 0xBFCC,0x3B51, - /* Array index: 0x1424 */ 0xBFCD,0x3B52, - /* Array index: 0x1424 */ 0xBFD0,0x3B53, - /* Array index: 0x1424 */ 0xBFD4,0x3B54, - /* Array index: 0x1424 */ 0xBFDC,0x3B55, - /* Array index: 0x1424 */ 0xBFDF,0x3B56, - /* Array index: 0x1424 */ 0xBFE1,0x3B57, - /* Array index: 0x1424 */ 0xC03C,0x3B58, - /* Array index: 0x1424 */ 0xC051,0x3B59, - /* Array index: 0x1424 */ 0xC058,0x3B5A, - /* Array index: 0x1424 */ 0xC05C,0x3B5B, - /* Array index: 0x1424 */ 0xC060,0x3B5C, - /* Array index: 0x1424 */ 0xC068,0x3B5D, - /* Array index: 0x1424 */ 0xC069,0x3B5E, - /* Array index: 0x1424 */ 0xC090,0x3B5F, - /* Array index: 0x1424 */ 0xC091,0x3B60, - /* Array index: 0x1424 */ 0xC094,0x3B61, - /* Array index: 0x1424 */ 0xC098,0x3B62, - /* Array index: 0x1424 */ 0xC0A0,0x3B63, - /* Array index: 0x1424 */ 0xC0A1,0x3B64, - /* Array index: 0x1424 */ 0xC0A3,0x3B65, - /* Array index: 0x1424 */ 0xC0A5,0x3B66, - /* Array index: 0x1424 */ 0xC0C5,0x3B74, - /* Array index: 0x1424 */ 0xC0C8,0x3B75, - /* Array index: 0x1424 */ 0xC0C9,0x3B76, - /* Array index: 0x1424 */ 0xC0CC,0x3B77, - /* Array index: 0x1424 */ 0xC0D0,0x3B78, - /* Array index: 0x1424 */ 0xC0E4,0x3B7E, - /* Array index: 0x1424 */ 0xC0E5,0x3C21, - /* Array index: 0x1424 */ 0xC0E8,0x3C22, - /* Array index: 0x1424 */ 0xC0EC,0x3C23, - /* Array index: 0x1424 */ 0xC0F4,0x3C24, - /* Array index: 0x1424 */ 0xC0F5,0x3C25, - /* Array index: 0x1424 */ 0xC0F7,0x3C26, - /* Array index: 0x1424 */ 0xC0F9,0x3C27, - /* Array index: 0x1424 */ 0xC100,0x3C28, - /* Array index: 0x1424 */ 0xC104,0x3C29, - /* Array index: 0x1424 */ 0xC108,0x3C2A, - /* Array index: 0x1424 */ 0xC110,0x3C2B, - /* Array index: 0x1424 */ 0xC115,0x3C2C, - /* Array index: 0x1424 */ 0xC136,0x3C3B, - /* Array index: 0x1424 */ 0xC138,0x3C3C, - /* Array index: 0x1424 */ 0xC139,0x3C3D, - /* Array index: 0x1424 */ 0xC13C,0x3C3E, - /* Array index: 0x1424 */ 0xC140,0x3C3F, - /* Array index: 0x1424 */ 0xC154,0x3C45, - /* Array index: 0x1424 */ 0xC155,0x3C46, - /* Array index: 0x1424 */ 0xC158,0x3C47, - /* Array index: 0x1424 */ 0xC15C,0x3C48, - /* Array index: 0x1424 */ 0xC170,0x3C4E, - /* Array index: 0x1424 */ 0xC174,0x3C4F, - /* Array index: 0x1424 */ 0xC178,0x3C50, - /* Array index: 0x1424 */ 0xC185,0x3C51, - /* Array index: 0x1424 */ 0xC194,0x3C56, - /* Array index: 0x1424 */ 0xC196,0x3C57, - /* Array index: 0x1424 */ 0xC19C,0x3C58, - /* Array index: 0x1424 */ 0xC19D,0x3C59, - /* Array index: 0x1424 */ 0xC19F,0x3C5A, - /* Array index: 0x1424 */ 0xC1A1,0x3C5B, - /* Array index: 0x1424 */ 0xC1A5,0x3C5C, - /* Array index: 0x1424 */ 0xC1A8,0x3C5D, - /* Array index: 0x1424 */ 0xC1A9,0x3C5E, - /* Array index: 0x1424 */ 0xC1AC,0x3C5F, - /* Array index: 0x1424 */ 0xC1B0,0x3C60, - /* Array index: 0x1424 */ 0xC1BD,0x3C61, - /* Array index: 0x1424 */ 0xC1C4,0x3C62, - /* Array index: 0x1424 */ 0xC1C8,0x3C63, - /* Array index: 0x1424 */ 0xC1CC,0x3C64, - /* Array index: 0x1424 */ 0xC1D4,0x3C65, - /* Array index: 0x1424 */ 0xC1D7,0x3C66, - /* Array index: 0x1424 */ 0xC1D8,0x3C67, - /* Array index: 0x1424 */ 0xC1E0,0x3C68, - /* Array index: 0x1424 */ 0xC1E4,0x3C69, - /* Array index: 0x1424 */ 0xC1E8,0x3C6A, - /* Array index: 0x1424 */ 0xC1F0,0x3C6B, - /* Array index: 0x1424 */ 0xC1F1,0x3C6C, - /* Array index: 0x1424 */ 0xC1F3,0x3C6D, - /* Array index: 0x1424 */ 0xC1FC,0x3C6E, - /* Array index: 0x1424 */ 0xC1FD,0x3C6F, - /* Array index: 0x1424 */ 0xC200,0x3C70, - /* Array index: 0x1424 */ 0xC204,0x3C71, - /* Array index: 0x1424 */ 0xC20C,0x3C72, - /* Array index: 0x1424 */ 0xC20D,0x3C73, - /* Array index: 0x1424 */ 0xC20F,0x3C74, - /* Array index: 0x1424 */ 0xC211,0x3C75, - /* Array index: 0x1424 */ 0xC218,0x3C76, - /* Array index: 0x1424 */ 0xC219,0x3C77, - /* Array index: 0x1424 */ 0xC21C,0x3C78, - /* Array index: 0x1424 */ 0xC21F,0x3C79, - /* Array index: 0x1424 */ 0xC220,0x3C7A, - /* Array index: 0x1424 */ 0xC228,0x3C7B, - /* Array index: 0x1424 */ 0xC229,0x3C7C, - /* Array index: 0x1424 */ 0xC22B,0x3C7D, - /* Array index: 0x1424 */ 0xC22D,0x3C7E, - /* Array index: 0x1424 */ 0xC22F,0x3D21, - /* Array index: 0x1424 */ 0xC231,0x3D22, - /* Array index: 0x1424 */ 0xC232,0x3D23, - /* Array index: 0x1424 */ 0xC234,0x3D24, - /* Array index: 0x1424 */ 0xC248,0x3D25, - /* Array index: 0x1424 */ 0xC250,0x3D26, - /* Array index: 0x1424 */ 0xC251,0x3D27, - /* Array index: 0x1424 */ 0xC254,0x3D28, - /* Array index: 0x1424 */ 0xC258,0x3D29, - /* Array index: 0x1424 */ 0xC260,0x3D2A, - /* Array index: 0x1424 */ 0xC265,0x3D2B, - /* Array index: 0x1424 */ 0xC26C,0x3D2C, - /* Array index: 0x1424 */ 0xC26D,0x3D2D, - /* Array index: 0x1424 */ 0xC270,0x3D2E, - /* Array index: 0x1424 */ 0xC274,0x3D2F, - /* Array index: 0x1424 */ 0xC27C,0x3D30, - /* Array index: 0x1424 */ 0xC27D,0x3D31, - /* Array index: 0x1424 */ 0xC27F,0x3D32, - /* Array index: 0x1424 */ 0xC281,0x3D33, - /* Array index: 0x1424 */ 0xC288,0x3D34, - /* Array index: 0x1424 */ 0xC289,0x3D35, - /* Array index: 0x1424 */ 0xC290,0x3D36, - /* Array index: 0x1424 */ 0xC298,0x3D37, - /* Array index: 0x1424 */ 0xC29B,0x3D38, - /* Array index: 0x1424 */ 0xC29D,0x3D39, - /* Array index: 0x1424 */ 0xC2A4,0x3D3A, - /* Array index: 0x1424 */ 0xC2A5,0x3D3B, - /* Array index: 0x1424 */ 0xC2A8,0x3D3C, - /* Array index: 0x1424 */ 0xC2AC,0x3D3D, - /* Array index: 0x1424 */ 0xC2AD,0x3D3E, - /* Array index: 0x1424 */ 0xC2B4,0x3D3F, - /* Array index: 0x1424 */ 0xC2B5,0x3D40, - /* Array index: 0x1424 */ 0xC2B7,0x3D41, - /* Array index: 0x1424 */ 0xC2B9,0x3D42, - /* Array index: 0x1424 */ 0xC2DC,0x3D43, - /* Array index: 0x1424 */ 0xC2DD,0x3D44, - /* Array index: 0x1424 */ 0xC2E0,0x3D45, - /* Array index: 0x1424 */ 0xC2E3,0x3D46, - /* Array index: 0x1424 */ 0xC2E4,0x3D47, - /* Array index: 0x1424 */ 0xC2F6,0x3D4D, - /* Array index: 0x1424 */ 0xC300,0x3D52, - /* Array index: 0x1424 */ 0xC308,0x3D53, - /* Array index: 0x1424 */ 0xC309,0x3D54, - /* Array index: 0x1424 */ 0xC30C,0x3D55, - /* Array index: 0x1424 */ 0xC30D,0x3D56, - /* Array index: 0x1424 */ 0xC318,0x3D5A, - /* Array index: 0x1424 */ 0xC31C,0x3D5B, - /* Array index: 0x1424 */ 0xC324,0x3D5C, - /* Array index: 0x1424 */ 0xC325,0x3D5D, - /* Array index: 0x1424 */ 0xC328,0x3D5E, - /* Array index: 0x1424 */ 0xC329,0x3D5F, - /* Array index: 0x1424 */ 0xC345,0x3D60, - /* Array index: 0x1424 */ 0xC368,0x3D61, - /* Array index: 0x1424 */ 0xC369,0x3D62, - /* Array index: 0x1424 */ 0xC36C,0x3D63, - /* Array index: 0x1424 */ 0xC370,0x3D64, - /* Array index: 0x1424 */ 0xC372,0x3D65, - /* Array index: 0x1424 */ 0xC378,0x3D66, - /* Array index: 0x1424 */ 0xC379,0x3D67, - /* Array index: 0x1424 */ 0xC37C,0x3D68, - /* Array index: 0x1424 */ 0xC37D,0x3D69, - /* Array index: 0x1424 */ 0xC384,0x3D6A, - /* Array index: 0x1424 */ 0xC388,0x3D6B, - /* Array index: 0x1424 */ 0xC38C,0x3D6C, - /* Array index: 0x1424 */ 0xC3C0,0x3D6D, - /* Array index: 0x1424 */ 0xC3D8,0x3D6E, - /* Array index: 0x1424 */ 0xC3D9,0x3D6F, - /* Array index: 0x1424 */ 0xC3DC,0x3D70, - /* Array index: 0x1424 */ 0xC3DF,0x3D71, - /* Array index: 0x1424 */ 0xC3E0,0x3D72, - /* Array index: 0x1424 */ 0xC3E2,0x3D73, - /* Array index: 0x1424 */ 0xC3E8,0x3D74, - /* Array index: 0x1424 */ 0xC3E9,0x3D75, - /* Array index: 0x1424 */ 0xC3ED,0x3D76, - /* Array index: 0x1424 */ 0xC3F4,0x3D77, - /* Array index: 0x1424 */ 0xC3F5,0x3D78, - /* Array index: 0x1424 */ 0xC3F8,0x3D79, - /* Array index: 0x1424 */ 0xC408,0x3D7A, - /* Array index: 0x1424 */ 0xC410,0x3D7B, - /* Array index: 0x1424 */ 0xC424,0x3D7C, - /* Array index: 0x1424 */ 0xC42C,0x3D7D, - /* Array index: 0x1424 */ 0xC430,0x3D7E, - /* Array index: 0x1424 */ 0xC434,0x3E21, - /* Array index: 0x1424 */ 0xC43C,0x3E22, - /* Array index: 0x1424 */ 0xC43D,0x3E23, - /* Array index: 0x1424 */ 0xC448,0x3E24, - /* Array index: 0x1424 */ 0xC464,0x3E25, - /* Array index: 0x1424 */ 0xC465,0x3E26, - /* Array index: 0x1424 */ 0xC468,0x3E27, - /* Array index: 0x1424 */ 0xC46C,0x3E28, - /* Array index: 0x1424 */ 0xC474,0x3E29, - /* Array index: 0x1424 */ 0xC475,0x3E2A, - /* Array index: 0x1424 */ 0xC479,0x3E2B, - /* Array index: 0x1424 */ 0xC480,0x3E2C, - /* Array index: 0x1424 */ 0xC494,0x3E2D, - /* Array index: 0x1424 */ 0xC49C,0x3E2E, - /* Array index: 0x1424 */ 0xC4B8,0x3E2F, - /* Array index: 0x1424 */ 0xC4BC,0x3E30, - /* Array index: 0x1424 */ 0xC4E9,0x3E31, - /* Array index: 0x1424 */ 0xC4F0,0x3E32, - /* Array index: 0x1424 */ 0xC4F1,0x3E33, - /* Array index: 0x1424 */ 0xC4F4,0x3E34, - /* Array index: 0x1424 */ 0xC4F8,0x3E35, - /* Array index: 0x1424 */ 0xC4FA,0x3E36, - /* Array index: 0x1424 */ 0xC50C,0x3E3A, - /* Array index: 0x1424 */ 0xC510,0x3E3B, - /* Array index: 0x1424 */ 0xC514,0x3E3C, - /* Array index: 0x1424 */ 0xC51C,0x3E3D, - /* Array index: 0x1424 */ 0xC528,0x3E3E, - /* Array index: 0x1424 */ 0xC529,0x3E3F, - /* Array index: 0x1424 */ 0xC52C,0x3E40, - /* Array index: 0x1424 */ 0xC530,0x3E41, - /* Array index: 0x1424 */ 0xC538,0x3E42, - /* Array index: 0x1424 */ 0xC539,0x3E43, - /* Array index: 0x1424 */ 0xC53B,0x3E44, - /* Array index: 0x1424 */ 0xC53D,0x3E45, - /* Array index: 0x1424 */ 0xC564,0x3E58, - /* Array index: 0x1424 */ 0xC568,0x3E59, - /* Array index: 0x1424 */ 0xC57C,0x3E5F, - /* Array index: 0x1424 */ 0xC57D,0x3E60, - /* Array index: 0x1424 */ 0xC580,0x3E61, - /* Array index: 0x1424 */ 0xC584,0x3E62, - /* Array index: 0x1424 */ 0xC587,0x3E63, - /* Array index: 0x1424 */ 0xC58C,0x3E64, - /* Array index: 0x1424 */ 0xC58D,0x3E65, - /* Array index: 0x1424 */ 0xC58F,0x3E66, - /* Array index: 0x1424 */ 0xC591,0x3E67, - /* Array index: 0x1424 */ 0xC595,0x3E68, - /* Array index: 0x1424 */ 0xC597,0x3E69, - /* Array index: 0x1424 */ 0xC598,0x3E6A, - /* Array index: 0x1424 */ 0xC59C,0x3E6B, - /* Array index: 0x1424 */ 0xC5A0,0x3E6C, - /* Array index: 0x1424 */ 0xC5A9,0x3E6D, - /* Array index: 0x1424 */ 0xC5B4,0x3E6E, - /* Array index: 0x1424 */ 0xC5B5,0x3E6F, - /* Array index: 0x1424 */ 0xC5D4,0x3F23, - /* Array index: 0x1424 */ 0xC5D8,0x3F24, - /* Array index: 0x1424 */ 0xC5E0,0x3F25, - /* Array index: 0x1424 */ 0xC5E1,0x3F26, - /* Array index: 0x1424 */ 0xC5E3,0x3F27, - /* Array index: 0x1424 */ 0xC5E5,0x3F28, - /* Array index: 0x1424 */ 0xC5F4,0x3F2D, - /* Array index: 0x1424 */ 0xC5F6,0x3F2E, - /* Array index: 0x1424 */ 0xC5F7,0x3F2F, - /* Array index: 0x1424 */ 0xC60C,0x3F3A, - /* Array index: 0x1424 */ 0xC610,0x3F3B, - /* Array index: 0x1424 */ 0xC624,0x3F40, - /* Array index: 0x1424 */ 0xC625,0x3F41, - /* Array index: 0x1424 */ 0xC628,0x3F42, - /* Array index: 0x1424 */ 0xC640,0x3F4D, - /* Array index: 0x1424 */ 0xC641,0x3F4E, - /* Array index: 0x1424 */ 0xC644,0x3F4F, - /* Array index: 0x1424 */ 0xC648,0x3F50, - /* Array index: 0x1424 */ 0xC65C,0x3F56, - /* Array index: 0x1424 */ 0xC65D,0x3F57, - /* Array index: 0x1424 */ 0xC660,0x3F58, - /* Array index: 0x1424 */ 0xC66C,0x3F59, - /* Array index: 0x1424 */ 0xC66F,0x3F5A, - /* Array index: 0x1424 */ 0xC671,0x3F5B, - /* Array index: 0x1424 */ 0xC678,0x3F5C, - /* Array index: 0x1424 */ 0xC679,0x3F5D, - /* Array index: 0x1424 */ 0xC67C,0x3F5E, - /* Array index: 0x1424 */ 0xC680,0x3F5F, - /* Array index: 0x1424 */ 0xC688,0x3F60, - /* Array index: 0x1424 */ 0xC689,0x3F61, - /* Array index: 0x1424 */ 0xC68B,0x3F62, - /* Array index: 0x1424 */ 0xC68D,0x3F63, - /* Array index: 0x1424 */ 0xC694,0x3F64, - /* Array index: 0x1424 */ 0xC695,0x3F65, - /* Array index: 0x1424 */ 0xC698,0x3F66, - /* Array index: 0x1424 */ 0xC69C,0x3F67, - /* Array index: 0x1424 */ 0xC6A4,0x3F68, - /* Array index: 0x1424 */ 0xC6A5,0x3F69, - /* Array index: 0x1424 */ 0xC6A7,0x3F6A, - /* Array index: 0x1424 */ 0xC6A9,0x3F6B, - /* Array index: 0x1424 */ 0xC6B0,0x3F6C, - /* Array index: 0x1424 */ 0xC6B1,0x3F6D, - /* Array index: 0x1424 */ 0xC6B4,0x3F6E, - /* Array index: 0x1424 */ 0xC6C0,0x3F72, - /* Array index: 0x1424 */ 0xC6C1,0x3F73, - /* Array index: 0x1424 */ 0xC6C3,0x3F74, - /* Array index: 0x1424 */ 0xC6C5,0x3F75, - /* Array index: 0x1424 */ 0xC6CC,0x3F76, - /* Array index: 0x1424 */ 0xC6CD,0x3F77, - /* Array index: 0x1424 */ 0xC6D0,0x3F78, - /* Array index: 0x1424 */ 0xC6D4,0x3F79, - /* Array index: 0x1424 */ 0xC6DC,0x3F7A, - /* Array index: 0x1424 */ 0xC6DD,0x3F7B, - /* Array index: 0x1424 */ 0xC6E0,0x3F7C, - /* Array index: 0x1424 */ 0xC6E1,0x3F7D, - /* Array index: 0x1424 */ 0xC6E8,0x3F7E, - /* Array index: 0x1424 */ 0xC6E9,0x4021, - /* Array index: 0x1424 */ 0xC6EC,0x4022, - /* Array index: 0x1424 */ 0xC6F0,0x4023, - /* Array index: 0x1424 */ 0xC6F8,0x4024, - /* Array index: 0x1424 */ 0xC6F9,0x4025, - /* Array index: 0x1424 */ 0xC6FD,0x4026, - /* Array index: 0x1424 */ 0xC704,0x4027, - /* Array index: 0x1424 */ 0xC705,0x4028, - /* Array index: 0x1424 */ 0xC708,0x4029, - /* Array index: 0x1424 */ 0xC70C,0x402A, - /* Array index: 0x1424 */ 0xC714,0x402B, - /* Array index: 0x1424 */ 0xC715,0x402C, - /* Array index: 0x1424 */ 0xC717,0x402D, - /* Array index: 0x1424 */ 0xC719,0x402E, - /* Array index: 0x1424 */ 0xC720,0x402F, - /* Array index: 0x1424 */ 0xC721,0x4030, - /* Array index: 0x1424 */ 0xC724,0x4031, - /* Array index: 0x1424 */ 0xC728,0x4032, - /* Array index: 0x1424 */ 0xC730,0x4033, - /* Array index: 0x1424 */ 0xC731,0x4034, - /* Array index: 0x1424 */ 0xC733,0x4035, - /* Array index: 0x1424 */ 0xC735,0x4036, - /* Array index: 0x1424 */ 0xC737,0x4037, - /* Array index: 0x1424 */ 0xC73C,0x4038, - /* Array index: 0x1424 */ 0xC73D,0x4039, - /* Array index: 0x1424 */ 0xC740,0x403A, - /* Array index: 0x1424 */ 0xC744,0x403B, - /* Array index: 0x1424 */ 0xC74A,0x403C, - /* Array index: 0x1424 */ 0xC74C,0x403D, - /* Array index: 0x1424 */ 0xC74D,0x403E, - /* Array index: 0x1424 */ 0xC75C,0x4048, - /* Array index: 0x1424 */ 0xC760,0x4049, - /* Array index: 0x1424 */ 0xC768,0x404A, - /* Array index: 0x1424 */ 0xC76B,0x404B, - /* Array index: 0x1424 */ 0xC774,0x404C, - /* Array index: 0x1424 */ 0xC775,0x404D, - /* Array index: 0x1424 */ 0xC778,0x404E, - /* Array index: 0x1424 */ 0xC78E,0x4059, - /* Array index: 0x1424 */ 0xC790,0x405A, - /* Array index: 0x1424 */ 0xC791,0x405B, - /* Array index: 0x1424 */ 0xC7AC,0x4067, - /* Array index: 0x1424 */ 0xC7AD,0x4068, - /* Array index: 0x1424 */ 0xC7B0,0x4069, - /* Array index: 0x1424 */ 0xC7B4,0x406A, - /* Array index: 0x1424 */ 0xC7C8,0x4070, - /* Array index: 0x1424 */ 0xC7C9,0x4071, - /* Array index: 0x1424 */ 0xC7CC,0x4072, - /* Array index: 0x1424 */ 0xC7CE,0x4073, - /* Array index: 0x1424 */ 0xC7D0,0x4074, - /* Array index: 0x1424 */ 0xC7D8,0x4075, - /* Array index: 0x1424 */ 0xC7DD,0x4076, - /* Array index: 0x1424 */ 0xC7E4,0x4077, - /* Array index: 0x1424 */ 0xC7E8,0x4078, - /* Array index: 0x1424 */ 0xC7EC,0x4079, - /* Array index: 0x1424 */ 0xC800,0x407A, - /* Array index: 0x1424 */ 0xC801,0x407B, - /* Array index: 0x1424 */ 0xC804,0x407C, - /* Array index: 0x1424 */ 0xC808,0x407D, - /* Array index: 0x1424 */ 0xC80A,0x407E, - /* Array index: 0x1424 */ 0xC810,0x4121, - /* Array index: 0x1424 */ 0xC811,0x4122, - /* Array index: 0x1424 */ 0xC813,0x4123, - /* Array index: 0x1424 */ 0xC815,0x4124, - /* Array index: 0x1424 */ 0xC816,0x4125, - /* Array index: 0x1424 */ 0xC81C,0x4126, - /* Array index: 0x1424 */ 0xC81D,0x4127, - /* Array index: 0x1424 */ 0xC820,0x4128, - /* Array index: 0x1424 */ 0xC824,0x4129, - /* Array index: 0x1424 */ 0xC82C,0x412A, - /* Array index: 0x1424 */ 0xC82D,0x412B, - /* Array index: 0x1424 */ 0xC82F,0x412C, - /* Array index: 0x1424 */ 0xC831,0x412D, - /* Array index: 0x1424 */ 0xC838,0x412E, - /* Array index: 0x1424 */ 0xC83C,0x412F, - /* Array index: 0x1424 */ 0xC840,0x4130, - /* Array index: 0x1424 */ 0xC848,0x4131, - /* Array index: 0x1424 */ 0xC849,0x4132, - /* Array index: 0x1424 */ 0xC84C,0x4133, - /* Array index: 0x1424 */ 0xC84D,0x4134, - /* Array index: 0x1424 */ 0xC854,0x4135, - /* Array index: 0x1424 */ 0xC870,0x4136, - /* Array index: 0x1424 */ 0xC871,0x4137, - /* Array index: 0x1424 */ 0xC874,0x4138, - /* Array index: 0x1424 */ 0xC878,0x4139, - /* Array index: 0x1424 */ 0xC87A,0x413A, - /* Array index: 0x1424 */ 0xC880,0x413B, - /* Array index: 0x1424 */ 0xC881,0x413C, - /* Array index: 0x1424 */ 0xC894,0x4144, - /* Array index: 0x1424 */ 0xC89D,0x4145, - /* Array index: 0x1424 */ 0xC89F,0x4146, - /* Array index: 0x1424 */ 0xC8A1,0x4147, - /* Array index: 0x1424 */ 0xC8A8,0x4148, - /* Array index: 0x1424 */ 0xC8BC,0x4149, - /* Array index: 0x1424 */ 0xC8BD,0x414A, - /* Array index: 0x1424 */ 0xC8C4,0x414B, - /* Array index: 0x1424 */ 0xC8C8,0x414C, - /* Array index: 0x1424 */ 0xC8CC,0x414D, - /* Array index: 0x1424 */ 0xC8D4,0x414E, - /* Array index: 0x1424 */ 0xC8D5,0x414F, - /* Array index: 0x1424 */ 0xC8D7,0x4150, - /* Array index: 0x1424 */ 0xC8D9,0x4151, - /* Array index: 0x1424 */ 0xC8E0,0x4152, - /* Array index: 0x1424 */ 0xC8E1,0x4153, - /* Array index: 0x1424 */ 0xC8E4,0x4154, - /* Array index: 0x1424 */ 0xC8F5,0x4155, - /* Array index: 0x1424 */ 0xC8FC,0x4156, - /* Array index: 0x1424 */ 0xC8FD,0x4157, - /* Array index: 0x1424 */ 0xC900,0x4158, - /* Array index: 0x1424 */ 0xC90C,0x415C, - /* Array index: 0x1424 */ 0xC90D,0x415D, - /* Array index: 0x1424 */ 0xC90F,0x415E, - /* Array index: 0x1424 */ 0xC911,0x415F, - /* Array index: 0x1424 */ 0xC918,0x4160, - /* Array index: 0x1424 */ 0xC92C,0x4161, - /* Array index: 0x1424 */ 0xC934,0x4162, - /* Array index: 0x1424 */ 0xC950,0x4163, - /* Array index: 0x1424 */ 0xC951,0x4164, - /* Array index: 0x1424 */ 0xC954,0x4165, - /* Array index: 0x1424 */ 0xC958,0x4166, - /* Array index: 0x1424 */ 0xC960,0x4167, - /* Array index: 0x1424 */ 0xC961,0x4168, - /* Array index: 0x1424 */ 0xC963,0x4169, - /* Array index: 0x1424 */ 0xC96C,0x416A, - /* Array index: 0x1424 */ 0xC970,0x416B, - /* Array index: 0x1424 */ 0xC974,0x416C, - /* Array index: 0x1424 */ 0xC97C,0x416D, - /* Array index: 0x1424 */ 0xC988,0x416E, - /* Array index: 0x1424 */ 0xC989,0x416F, - /* Array index: 0x1424 */ 0xC98C,0x4170, - /* Array index: 0x1424 */ 0xC990,0x4171, - /* Array index: 0x1424 */ 0xC998,0x4172, - /* Array index: 0x1424 */ 0xC999,0x4173, - /* Array index: 0x1424 */ 0xC99B,0x4174, - /* Array index: 0x1424 */ 0xC99D,0x4175, - /* Array index: 0x1424 */ 0xC9C0,0x4176, - /* Array index: 0x1424 */ 0xC9C1,0x4177, - /* Array index: 0x1424 */ 0xC9C4,0x4178, - /* Array index: 0x1424 */ 0xC9C7,0x4179, - /* Array index: 0x1424 */ 0xC9C8,0x417A, - /* Array index: 0x1424 */ 0xC9CA,0x417B, - /* Array index: 0x1424 */ 0xC9D0,0x417C, - /* Array index: 0x1424 */ 0xC9D1,0x417D, - /* Array index: 0x1424 */ 0xC9D3,0x417E, - /* Array index: 0x1424 */ 0xC9D5,0x4221, - /* Array index: 0x1424 */ 0xC9D6,0x4222, - /* Array index: 0x1424 */ 0xC9E0,0x4227, - /* Array index: 0x1424 */ 0xC9E2,0x4228, - /* Array index: 0x1424 */ 0xC9E4,0x4229, - /* Array index: 0x1424 */ 0xC9E7,0x422A, - /* Array index: 0x1424 */ 0xC9F8,0x4230, - /* Array index: 0x1424 */ 0xC9F9,0x4231, - /* Array index: 0x1424 */ 0xC9FC,0x4232, - /* Array index: 0x1424 */ 0xCA00,0x4233, - /* Array index: 0x1424 */ 0xCA14,0x4239, - /* Array index: 0x1424 */ 0xCA18,0x423A, - /* Array index: 0x1424 */ 0xCA29,0x423B, - /* Array index: 0x1424 */ 0xCA4C,0x423C, - /* Array index: 0x1424 */ 0xCA4D,0x423D, - /* Array index: 0x1424 */ 0xCA50,0x423E, - /* Array index: 0x1424 */ 0xCA54,0x423F, - /* Array index: 0x1424 */ 0xCA68,0x4245, - /* Array index: 0x1424 */ 0xCA7D,0x4246, - /* Array index: 0x1424 */ 0xCA84,0x4247, - /* Array index: 0x1424 */ 0xCA98,0x4248, - /* Array index: 0x1424 */ 0xCABC,0x4249, - /* Array index: 0x1424 */ 0xCABD,0x424A, - /* Array index: 0x1424 */ 0xCAC0,0x424B, - /* Array index: 0x1424 */ 0xCAC4,0x424C, - /* Array index: 0x1424 */ 0xCACC,0x424D, - /* Array index: 0x1424 */ 0xCACD,0x424E, - /* Array index: 0x1424 */ 0xCACF,0x424F, - /* Array index: 0x1424 */ 0xCAD1,0x4250, - /* Array index: 0x1424 */ 0xCAD3,0x4251, - /* Array index: 0x1424 */ 0xCAD8,0x4252, - /* Array index: 0x1424 */ 0xCAD9,0x4253, - /* Array index: 0x1424 */ 0xCAE0,0x4254, - /* Array index: 0x1424 */ 0xCAEC,0x4255, - /* Array index: 0x1424 */ 0xCAF4,0x4256, - /* Array index: 0x1424 */ 0xCB08,0x4257, - /* Array index: 0x1424 */ 0xCB10,0x4258, - /* Array index: 0x1424 */ 0xCB14,0x4259, - /* Array index: 0x1424 */ 0xCB18,0x425A, - /* Array index: 0x1424 */ 0xCB20,0x425B, - /* Array index: 0x1424 */ 0xCB21,0x425C, - /* Array index: 0x1424 */ 0xCB41,0x425D, - /* Array index: 0x1424 */ 0xCB48,0x425E, - /* Array index: 0x1424 */ 0xCB49,0x425F, - /* Array index: 0x1424 */ 0xCB4C,0x4260, - /* Array index: 0x1424 */ 0xCB50,0x4261, - /* Array index: 0x1424 */ 0xCB58,0x4262, - /* Array index: 0x1424 */ 0xCB59,0x4263, - /* Array index: 0x1424 */ 0xCB5D,0x4264, - /* Array index: 0x1424 */ 0xCB64,0x4265, - /* Array index: 0x1424 */ 0xCB78,0x4266, - /* Array index: 0x1424 */ 0xCB79,0x4267, - /* Array index: 0x1424 */ 0xCB9C,0x4268, - /* Array index: 0x1424 */ 0xCBB8,0x4269, - /* Array index: 0x1424 */ 0xCBD4,0x426A, - /* Array index: 0x1424 */ 0xCBE4,0x426B, - /* Array index: 0x1424 */ 0xCBE7,0x426C, - /* Array index: 0x1424 */ 0xCBE9,0x426D, - /* Array index: 0x1424 */ 0xCC0C,0x426E, - /* Array index: 0x1424 */ 0xCC0D,0x426F, - /* Array index: 0x1424 */ 0xCC10,0x4270, - /* Array index: 0x1424 */ 0xCC14,0x4271, - /* Array index: 0x1424 */ 0xCC1C,0x4272, - /* Array index: 0x1424 */ 0xCC1D,0x4273, - /* Array index: 0x1424 */ 0xCC21,0x4274, - /* Array index: 0x1424 */ 0xCC22,0x4275, - /* Array index: 0x1424 */ 0xCC2C,0x4279, - /* Array index: 0x1424 */ 0xCC2E,0x427A, - /* Array index: 0x1424 */ 0xCC30,0x427B, - /* Array index: 0x1424 */ 0xCC44,0x4324, - /* Array index: 0x1424 */ 0xCC45,0x4325, - /* Array index: 0x1424 */ 0xCC48,0x4326, - /* Array index: 0x1424 */ 0xCC4C,0x4327, - /* Array index: 0x1424 */ 0xCC60,0x432D, - /* Array index: 0x1424 */ 0xCC64,0x432E, - /* Array index: 0x1424 */ 0xCC66,0x432F, - /* Array index: 0x1424 */ 0xCC68,0x4330, - /* Array index: 0x1424 */ 0xCC70,0x4331, - /* Array index: 0x1424 */ 0xCC75,0x4332, - /* Array index: 0x1424 */ 0xCC98,0x4333, - /* Array index: 0x1424 */ 0xCC99,0x4334, - /* Array index: 0x1424 */ 0xCC9C,0x4335, - /* Array index: 0x1424 */ 0xCCA0,0x4336, - /* Array index: 0x1424 */ 0xCCB4,0x433C, - /* Array index: 0x1424 */ 0xCCB5,0x433D, - /* Array index: 0x1424 */ 0xCCB8,0x433E, - /* Array index: 0x1424 */ 0xCCBC,0x433F, - /* Array index: 0x1424 */ 0xCCC4,0x4340, - /* Array index: 0x1424 */ 0xCCC5,0x4341, - /* Array index: 0x1424 */ 0xCCC7,0x4342, - /* Array index: 0x1424 */ 0xCCC9,0x4343, - /* Array index: 0x1424 */ 0xCCD0,0x4344, - /* Array index: 0x1424 */ 0xCCD4,0x4345, - /* Array index: 0x1424 */ 0xCCE4,0x4346, - /* Array index: 0x1424 */ 0xCCEC,0x4347, - /* Array index: 0x1424 */ 0xCCF0,0x4348, - /* Array index: 0x1424 */ 0xCD01,0x4349, - /* Array index: 0x1424 */ 0xCD08,0x434A, - /* Array index: 0x1424 */ 0xCD09,0x434B, - /* Array index: 0x1424 */ 0xCD0C,0x434C, - /* Array index: 0x1424 */ 0xCD10,0x434D, - /* Array index: 0x1424 */ 0xCD18,0x434E, - /* Array index: 0x1424 */ 0xCD19,0x434F, - /* Array index: 0x1424 */ 0xCD1B,0x4350, - /* Array index: 0x1424 */ 0xCD1D,0x4351, - /* Array index: 0x1424 */ 0xCD24,0x4352, - /* Array index: 0x1424 */ 0xCD28,0x4353, - /* Array index: 0x1424 */ 0xCD2C,0x4354, - /* Array index: 0x1424 */ 0xCD39,0x4355, - /* Array index: 0x1424 */ 0xCD5C,0x4356, - /* Array index: 0x1424 */ 0xCD60,0x4357, - /* Array index: 0x1424 */ 0xCD64,0x4358, - /* Array index: 0x1424 */ 0xCD6C,0x4359, - /* Array index: 0x1424 */ 0xCD6D,0x435A, - /* Array index: 0x1424 */ 0xCD6F,0x435B, - /* Array index: 0x1424 */ 0xCD71,0x435C, - /* Array index: 0x1424 */ 0xCD78,0x435D, - /* Array index: 0x1424 */ 0xCD88,0x435E, - /* Array index: 0x1424 */ 0xCD94,0x435F, - /* Array index: 0x1424 */ 0xCD95,0x4360, - /* Array index: 0x1424 */ 0xCD98,0x4361, - /* Array index: 0x1424 */ 0xCD9C,0x4362, - /* Array index: 0x1424 */ 0xCDA4,0x4363, - /* Array index: 0x1424 */ 0xCDA5,0x4364, - /* Array index: 0x1424 */ 0xCDA7,0x4365, - /* Array index: 0x1424 */ 0xCDA9,0x4366, - /* Array index: 0x1424 */ 0xCDB0,0x4367, - /* Array index: 0x1424 */ 0xCDC4,0x4368, - /* Array index: 0x1424 */ 0xCDCC,0x4369, - /* Array index: 0x1424 */ 0xCDD0,0x436A, - /* Array index: 0x1424 */ 0xCDE8,0x436B, - /* Array index: 0x1424 */ 0xCDEC,0x436C, - /* Array index: 0x1424 */ 0xCDF0,0x436D, - /* Array index: 0x1424 */ 0xCDF8,0x436E, - /* Array index: 0x1424 */ 0xCDF9,0x436F, - /* Array index: 0x1424 */ 0xCDFB,0x4370, - /* Array index: 0x1424 */ 0xCDFD,0x4371, - /* Array index: 0x1424 */ 0xCE04,0x4372, - /* Array index: 0x1424 */ 0xCE08,0x4373, - /* Array index: 0x1424 */ 0xCE0C,0x4374, - /* Array index: 0x1424 */ 0xCE14,0x4375, - /* Array index: 0x1424 */ 0xCE19,0x4376, - /* Array index: 0x1424 */ 0xCE20,0x4377, - /* Array index: 0x1424 */ 0xCE21,0x4378, - /* Array index: 0x1424 */ 0xCE24,0x4379, - /* Array index: 0x1424 */ 0xCE28,0x437A, - /* Array index: 0x1424 */ 0xCE30,0x437B, - /* Array index: 0x1424 */ 0xCE31,0x437C, - /* Array index: 0x1424 */ 0xCE33,0x437D, - /* Array index: 0x1424 */ 0xCE35,0x437E, - /* Array index: 0x1424 */ 0xCE58,0x4421, - /* Array index: 0x1424 */ 0xCE59,0x4422, - /* Array index: 0x1424 */ 0xCE5C,0x4423, - /* Array index: 0x1424 */ 0xCE68,0x4427, - /* Array index: 0x1424 */ 0xCE69,0x4428, - /* Array index: 0x1424 */ 0xCE6B,0x4429, - /* Array index: 0x1424 */ 0xCE6D,0x442A, - /* Array index: 0x1424 */ 0xCE74,0x442B, - /* Array index: 0x1424 */ 0xCE75,0x442C, - /* Array index: 0x1424 */ 0xCE78,0x442D, - /* Array index: 0x1424 */ 0xCE7C,0x442E, - /* Array index: 0x1424 */ 0xCE84,0x442F, - /* Array index: 0x1424 */ 0xCE85,0x4430, - /* Array index: 0x1424 */ 0xCE87,0x4431, - /* Array index: 0x1424 */ 0xCE89,0x4432, - /* Array index: 0x1424 */ 0xCE90,0x4433, - /* Array index: 0x1424 */ 0xCE91,0x4434, - /* Array index: 0x1424 */ 0xCE94,0x4435, - /* Array index: 0x1424 */ 0xCE98,0x4436, - /* Array index: 0x1424 */ 0xCEAC,0x443C, - /* Array index: 0x1424 */ 0xCEAD,0x443D, - /* Array index: 0x1424 */ 0xCEC1,0x443E, - /* Array index: 0x1424 */ 0xCEE4,0x443F, - /* Array index: 0x1424 */ 0xCEE5,0x4440, - /* Array index: 0x1424 */ 0xCEE8,0x4441, - /* Array index: 0x1424 */ 0xCEEB,0x4442, - /* Array index: 0x1424 */ 0xCEEC,0x4443, - /* Array index: 0x1424 */ 0xCF00,0x4449, - /* Array index: 0x1424 */ 0xCF01,0x444A, - /* Array index: 0x1424 */ 0xCF04,0x444B, - /* Array index: 0x1424 */ 0xCF08,0x444C, - /* Array index: 0x1424 */ 0xCF10,0x444D, - /* Array index: 0x1424 */ 0xCF11,0x444E, - /* Array index: 0x1424 */ 0xCF13,0x444F, - /* Array index: 0x1424 */ 0xCF15,0x4450, - /* Array index: 0x1424 */ 0xCF1C,0x4451, - /* Array index: 0x1424 */ 0xCF20,0x4452, - /* Array index: 0x1424 */ 0xCF24,0x4453, - /* Array index: 0x1424 */ 0xCF38,0x4459, - /* Array index: 0x1424 */ 0xCF54,0x445A, - /* Array index: 0x1424 */ 0xCF55,0x445B, - /* Array index: 0x1424 */ 0xCF58,0x445C, - /* Array index: 0x1424 */ 0xCF5C,0x445D, - /* Array index: 0x1424 */ 0xCF64,0x445E, - /* Array index: 0x1424 */ 0xCF65,0x445F, - /* Array index: 0x1424 */ 0xCF67,0x4460, - /* Array index: 0x1424 */ 0xCF69,0x4461, - /* Array index: 0x1424 */ 0xCF70,0x4462, - /* Array index: 0x1424 */ 0xCF71,0x4463, - /* Array index: 0x1424 */ 0xCF74,0x4464, - /* Array index: 0x1424 */ 0xCF78,0x4465, - /* Array index: 0x1424 */ 0xCF80,0x4466, - /* Array index: 0x1424 */ 0xCF85,0x4467, - /* Array index: 0x1424 */ 0xCF8C,0x4468, - /* Array index: 0x1424 */ 0xCFA1,0x4469, - /* Array index: 0x1424 */ 0xCFA8,0x446A, - /* Array index: 0x1424 */ 0xCFB0,0x446B, - /* Array index: 0x1424 */ 0xCFC4,0x446C, - /* Array index: 0x1424 */ 0xCFE0,0x446D, - /* Array index: 0x1424 */ 0xCFE1,0x446E, - /* Array index: 0x1424 */ 0xCFE4,0x446F, - /* Array index: 0x1424 */ 0xCFE8,0x4470, - /* Array index: 0x1424 */ 0xCFF0,0x4471, - /* Array index: 0x1424 */ 0xCFF1,0x4472, - /* Array index: 0x1424 */ 0xCFF3,0x4473, - /* Array index: 0x1424 */ 0xCFF5,0x4474, - /* Array index: 0x1424 */ 0xCFFC,0x4475, - /* Array index: 0x1424 */ 0xD000,0x4476, - /* Array index: 0x1424 */ 0xD004,0x4477, - /* Array index: 0x1424 */ 0xD011,0x4478, - /* Array index: 0x1424 */ 0xD018,0x4479, - /* Array index: 0x1424 */ 0xD02D,0x447A, - /* Array index: 0x1424 */ 0xD034,0x447B, - /* Array index: 0x1424 */ 0xD035,0x447C, - /* Array index: 0x1424 */ 0xD038,0x447D, - /* Array index: 0x1424 */ 0xD03C,0x447E, - /* Array index: 0x1424 */ 0xD044,0x4521, - /* Array index: 0x1424 */ 0xD045,0x4522, - /* Array index: 0x1424 */ 0xD047,0x4523, - /* Array index: 0x1424 */ 0xD049,0x4524, - /* Array index: 0x1424 */ 0xD050,0x4525, - /* Array index: 0x1424 */ 0xD054,0x4526, - /* Array index: 0x1424 */ 0xD058,0x4527, - /* Array index: 0x1424 */ 0xD060,0x4528, - /* Array index: 0x1424 */ 0xD06C,0x4529, - /* Array index: 0x1424 */ 0xD06D,0x452A, - /* Array index: 0x1424 */ 0xD070,0x452B, - /* Array index: 0x1424 */ 0xD074,0x452C, - /* Array index: 0x1424 */ 0xD07C,0x452D, - /* Array index: 0x1424 */ 0xD07D,0x452E, - /* Array index: 0x1424 */ 0xD081,0x452F, - /* Array index: 0x1424 */ 0xD0A4,0x4530, - /* Array index: 0x1424 */ 0xD0A5,0x4531, - /* Array index: 0x1424 */ 0xD0A8,0x4532, - /* Array index: 0x1424 */ 0xD0AC,0x4533, - /* Array index: 0x1424 */ 0xD0B4,0x4534, - /* Array index: 0x1424 */ 0xD0B5,0x4535, - /* Array index: 0x1424 */ 0xD0B7,0x4536, - /* Array index: 0x1424 */ 0xD0B9,0x4537, - /* Array index: 0x1424 */ 0xD0C0,0x4538, - /* Array index: 0x1424 */ 0xD0C1,0x4539, - /* Array index: 0x1424 */ 0xD0C4,0x453A, - /* Array index: 0x1424 */ 0xD0C8,0x453B, - /* Array index: 0x1424 */ 0xD0C9,0x453C, - /* Array index: 0x1424 */ 0xD0DC,0x4542, - /* Array index: 0x1424 */ 0xD0DD,0x4543, - /* Array index: 0x1424 */ 0xD0E0,0x4544, - /* Array index: 0x1424 */ 0xD0E4,0x4545, - /* Array index: 0x1424 */ 0xD0F8,0x454B, - /* Array index: 0x1424 */ 0xD10D,0x454C, - /* Array index: 0x1424 */ 0xD130,0x454D, - /* Array index: 0x1424 */ 0xD131,0x454E, - /* Array index: 0x1424 */ 0xD134,0x454F, - /* Array index: 0x1424 */ 0xD138,0x4550, - /* Array index: 0x1424 */ 0xD13A,0x4551, - /* Array index: 0x1424 */ 0xD14C,0x4557, - /* Array index: 0x1424 */ 0xD14D,0x4558, - /* Array index: 0x1424 */ 0xD150,0x4559, - /* Array index: 0x1424 */ 0xD154,0x455A, - /* Array index: 0x1424 */ 0xD15C,0x455B, - /* Array index: 0x1424 */ 0xD15D,0x455C, - /* Array index: 0x1424 */ 0xD15F,0x455D, - /* Array index: 0x1424 */ 0xD161,0x455E, - /* Array index: 0x1424 */ 0xD168,0x455F, - /* Array index: 0x1424 */ 0xD16C,0x4560, - /* Array index: 0x1424 */ 0xD17C,0x4561, - /* Array index: 0x1424 */ 0xD184,0x4562, - /* Array index: 0x1424 */ 0xD188,0x4563, - /* Array index: 0x1424 */ 0xD1A0,0x4564, - /* Array index: 0x1424 */ 0xD1A1,0x4565, - /* Array index: 0x1424 */ 0xD1A4,0x4566, - /* Array index: 0x1424 */ 0xD1A8,0x4567, - /* Array index: 0x1424 */ 0xD1B0,0x4568, - /* Array index: 0x1424 */ 0xD1B1,0x4569, - /* Array index: 0x1424 */ 0xD1B3,0x456A, - /* Array index: 0x1424 */ 0xD1B5,0x456B, - /* Array index: 0x1424 */ 0xD1BA,0x456C, - /* Array index: 0x1424 */ 0xD1BC,0x456D, - /* Array index: 0x1424 */ 0xD1C0,0x456E, - /* Array index: 0x1424 */ 0xD1D8,0x456F, - /* Array index: 0x1424 */ 0xD1F4,0x4570, - /* Array index: 0x1424 */ 0xD1F8,0x4571, - /* Array index: 0x1424 */ 0xD207,0x4572, - /* Array index: 0x1424 */ 0xD209,0x4573, - /* Array index: 0x1424 */ 0xD210,0x4574, - /* Array index: 0x1424 */ 0xD22C,0x4575, - /* Array index: 0x1424 */ 0xD22D,0x4576, - /* Array index: 0x1424 */ 0xD230,0x4577, - /* Array index: 0x1424 */ 0xD234,0x4578, - /* Array index: 0x1424 */ 0xD23C,0x4579, - /* Array index: 0x1424 */ 0xD23D,0x457A, - /* Array index: 0x1424 */ 0xD23F,0x457B, - /* Array index: 0x1424 */ 0xD241,0x457C, - /* Array index: 0x1424 */ 0xD248,0x457D, - /* Array index: 0x1424 */ 0xD25C,0x457E, - /* Array index: 0x1424 */ 0xD264,0x4621, - /* Array index: 0x1424 */ 0xD280,0x4622, - /* Array index: 0x1424 */ 0xD281,0x4623, - /* Array index: 0x1424 */ 0xD284,0x4624, - /* Array index: 0x1424 */ 0xD288,0x4625, - /* Array index: 0x1424 */ 0xD290,0x4626, - /* Array index: 0x1424 */ 0xD291,0x4627, - /* Array index: 0x1424 */ 0xD295,0x4628, - /* Array index: 0x1424 */ 0xD29C,0x4629, - /* Array index: 0x1424 */ 0xD2A0,0x462A, - /* Array index: 0x1424 */ 0xD2A4,0x462B, - /* Array index: 0x1424 */ 0xD2AC,0x462C, - /* Array index: 0x1424 */ 0xD2B1,0x462D, - /* Array index: 0x1424 */ 0xD2B8,0x462E, - /* Array index: 0x1424 */ 0xD2B9,0x462F, - /* Array index: 0x1424 */ 0xD2BC,0x4630, - /* Array index: 0x1424 */ 0xD2BF,0x4631, - /* Array index: 0x1424 */ 0xD2C0,0x4632, - /* Array index: 0x1424 */ 0xD2C2,0x4633, - /* Array index: 0x1424 */ 0xD2C8,0x4634, - /* Array index: 0x1424 */ 0xD2C9,0x4635, - /* Array index: 0x1424 */ 0xD2CB,0x4636, - /* Array index: 0x1424 */ 0xD2D4,0x4637, - /* Array index: 0x1424 */ 0xD2D8,0x4638, - /* Array index: 0x1424 */ 0xD2DC,0x4639, - /* Array index: 0x1424 */ 0xD2E4,0x463A, - /* Array index: 0x1424 */ 0xD2E5,0x463B, - /* Array index: 0x1424 */ 0xD2F0,0x463C, - /* Array index: 0x1424 */ 0xD2F1,0x463D, - /* Array index: 0x1424 */ 0xD2F4,0x463E, - /* Array index: 0x1424 */ 0xD2F8,0x463F, - /* Array index: 0x1424 */ 0xD300,0x4640, - /* Array index: 0x1424 */ 0xD301,0x4641, - /* Array index: 0x1424 */ 0xD303,0x4642, - /* Array index: 0x1424 */ 0xD305,0x4643, - /* Array index: 0x1424 */ 0xD314,0x4648, - /* Array index: 0x1424 */ 0xD316,0x4649, - /* Array index: 0x1424 */ 0xD325,0x464F, - /* Array index: 0x1424 */ 0xD328,0x4650, - /* Array index: 0x1424 */ 0xD329,0x4651, - /* Array index: 0x1424 */ 0xD32C,0x4652, - /* Array index: 0x1424 */ 0xD330,0x4653, - /* Array index: 0x1424 */ 0xD344,0x4659, - /* Array index: 0x1424 */ 0xD345,0x465A, - /* Array index: 0x1424 */ 0xD37C,0x465B, - /* Array index: 0x1424 */ 0xD37D,0x465C, - /* Array index: 0x1424 */ 0xD380,0x465D, - /* Array index: 0x1424 */ 0xD384,0x465E, - /* Array index: 0x1424 */ 0xD398,0x4664, - /* Array index: 0x1424 */ 0xD399,0x4665, - /* Array index: 0x1424 */ 0xD39C,0x4666, - /* Array index: 0x1424 */ 0xD3A0,0x4667, - /* Array index: 0x1424 */ 0xD3A8,0x4668, - /* Array index: 0x1424 */ 0xD3A9,0x4669, - /* Array index: 0x1424 */ 0xD3AB,0x466A, - /* Array index: 0x1424 */ 0xD3AD,0x466B, - /* Array index: 0x1424 */ 0xD3B4,0x466C, - /* Array index: 0x1424 */ 0xD3B8,0x466D, - /* Array index: 0x1424 */ 0xD3BC,0x466E, - /* Array index: 0x1424 */ 0xD3C4,0x466F, - /* Array index: 0x1424 */ 0xD3C5,0x4670, - /* Array index: 0x1424 */ 0xD3C8,0x4671, - /* Array index: 0x1424 */ 0xD3C9,0x4672, - /* Array index: 0x1424 */ 0xD3D0,0x4673, - /* Array index: 0x1424 */ 0xD3D8,0x4674, - /* Array index: 0x1424 */ 0xD3E1,0x4675, - /* Array index: 0x1424 */ 0xD3E3,0x4676, - /* Array index: 0x1424 */ 0xD3EC,0x4677, - /* Array index: 0x1424 */ 0xD3ED,0x4678, - /* Array index: 0x1424 */ 0xD3F0,0x4679, - /* Array index: 0x1424 */ 0xD3F4,0x467A, - /* Array index: 0x1424 */ 0xD3FC,0x467B, - /* Array index: 0x1424 */ 0xD3FD,0x467C, - /* Array index: 0x1424 */ 0xD3FF,0x467D, - /* Array index: 0x1424 */ 0xD401,0x467E, - /* Array index: 0x1424 */ 0xD408,0x4721, - /* Array index: 0x1424 */ 0xD41D,0x4722, - /* Array index: 0x1424 */ 0xD440,0x4723, - /* Array index: 0x1424 */ 0xD444,0x4724, - /* Array index: 0x1424 */ 0xD45C,0x4725, - /* Array index: 0x1424 */ 0xD460,0x4726, - /* Array index: 0x1424 */ 0xD464,0x4727, - /* Array index: 0x1424 */ 0xD46D,0x4728, - /* Array index: 0x1424 */ 0xD46F,0x4729, - /* Array index: 0x1424 */ 0xD478,0x472A, - /* Array index: 0x1424 */ 0xD479,0x472B, - /* Array index: 0x1424 */ 0xD47C,0x472C, - /* Array index: 0x1424 */ 0xD47F,0x472D, - /* Array index: 0x1424 */ 0xD480,0x472E, - /* Array index: 0x1424 */ 0xD482,0x472F, - /* Array index: 0x1424 */ 0xD488,0x4730, - /* Array index: 0x1424 */ 0xD489,0x4731, - /* Array index: 0x1424 */ 0xD48B,0x4732, - /* Array index: 0x1424 */ 0xD48D,0x4733, - /* Array index: 0x1424 */ 0xD494,0x4734, - /* Array index: 0x1424 */ 0xD4A9,0x4735, - /* Array index: 0x1424 */ 0xD4CC,0x4736, - /* Array index: 0x1424 */ 0xD4D0,0x4737, - /* Array index: 0x1424 */ 0xD4D4,0x4738, - /* Array index: 0x1424 */ 0xD4DC,0x4739, - /* Array index: 0x1424 */ 0xD4DF,0x473A, - /* Array index: 0x1424 */ 0xD4E8,0x473B, - /* Array index: 0x1424 */ 0xD4EC,0x473C, - /* Array index: 0x1424 */ 0xD4F0,0x473D, - /* Array index: 0x1424 */ 0xD4F8,0x473E, - /* Array index: 0x1424 */ 0xD4FB,0x473F, - /* Array index: 0x1424 */ 0xD4FD,0x4740, - /* Array index: 0x1424 */ 0xD504,0x4741, - /* Array index: 0x1424 */ 0xD508,0x4742, - /* Array index: 0x1424 */ 0xD50C,0x4743, - /* Array index: 0x1424 */ 0xD514,0x4744, - /* Array index: 0x1424 */ 0xD515,0x4745, - /* Array index: 0x1424 */ 0xD517,0x4746, - /* Array index: 0x1424 */ 0xD53C,0x4747, - /* Array index: 0x1424 */ 0xD53D,0x4748, - /* Array index: 0x1424 */ 0xD540,0x4749, - /* Array index: 0x1424 */ 0xD544,0x474A, - /* Array index: 0x1424 */ 0xD54C,0x474B, - /* Array index: 0x1424 */ 0xD54D,0x474C, - /* Array index: 0x1424 */ 0xD54F,0x474D, - /* Array index: 0x1424 */ 0xD551,0x474E, - /* Array index: 0x1424 */ 0xD558,0x474F, - /* Array index: 0x1424 */ 0xD559,0x4750, - /* Array index: 0x1424 */ 0xD55C,0x4751, - /* Array index: 0x1424 */ 0xD560,0x4752, - /* Array index: 0x1424 */ 0xD565,0x4753, - /* Array index: 0x1424 */ 0xD568,0x4754, - /* Array index: 0x1424 */ 0xD569,0x4755, - /* Array index: 0x1424 */ 0xD56B,0x4756, - /* Array index: 0x1424 */ 0xD56D,0x4757, - /* Array index: 0x1424 */ 0xD574,0x4758, - /* Array index: 0x1424 */ 0xD575,0x4759, - /* Array index: 0x1424 */ 0xD578,0x475A, - /* Array index: 0x1424 */ 0xD57C,0x475B, - /* Array index: 0x1424 */ 0xD590,0x4761, - /* Array index: 0x1424 */ 0xD5A5,0x4762, - /* Array index: 0x1424 */ 0xD5C8,0x4763, - /* Array index: 0x1424 */ 0xD5C9,0x4764, - /* Array index: 0x1424 */ 0xD5CC,0x4765, - /* Array index: 0x1424 */ 0xD5D0,0x4766, - /* Array index: 0x1424 */ 0xD5D2,0x4767, - /* Array index: 0x1424 */ 0xD5D8,0x4768, - /* Array index: 0x1424 */ 0xD5D9,0x4769, - /* Array index: 0x1424 */ 0xD5DB,0x476A, - /* Array index: 0x1424 */ 0xD5DD,0x476B, - /* Array index: 0x1424 */ 0xD5E4,0x476C, - /* Array index: 0x1424 */ 0xD5E5,0x476D, - /* Array index: 0x1424 */ 0xD5E8,0x476E, - /* Array index: 0x1424 */ 0xD5EC,0x476F, - /* Array index: 0x1424 */ 0xD5F4,0x4770, - /* Array index: 0x1424 */ 0xD5F5,0x4771, - /* Array index: 0x1424 */ 0xD5F7,0x4772, - /* Array index: 0x1424 */ 0xD5F9,0x4773, - /* Array index: 0x1424 */ 0xD600,0x4774, - /* Array index: 0x1424 */ 0xD601,0x4775, - /* Array index: 0x1424 */ 0xD604,0x4776, - /* Array index: 0x1424 */ 0xD608,0x4777, - /* Array index: 0x1424 */ 0xD61C,0x477D, - /* Array index: 0x1424 */ 0xD620,0x477E, - /* Array index: 0x1424 */ 0xD624,0x4821, - /* Array index: 0x1424 */ 0xD62D,0x4822, - /* Array index: 0x1424 */ 0xD638,0x4823, - /* Array index: 0x1424 */ 0xD639,0x4824, - /* Array index: 0x1424 */ 0xD63C,0x4825, - /* Array index: 0x1424 */ 0xD640,0x4826, - /* Array index: 0x1424 */ 0xD645,0x4827, - /* Array index: 0x1424 */ 0xD648,0x4828, - /* Array index: 0x1424 */ 0xD649,0x4829, - /* Array index: 0x1424 */ 0xD64B,0x482A, - /* Array index: 0x1424 */ 0xD64D,0x482B, - /* Array index: 0x1424 */ 0xD651,0x482C, - /* Array index: 0x1424 */ 0xD654,0x482D, - /* Array index: 0x1424 */ 0xD655,0x482E, - /* Array index: 0x1424 */ 0xD658,0x482F, - /* Array index: 0x1424 */ 0xD65C,0x4830, - /* Array index: 0x1424 */ 0xD667,0x4831, - /* Array index: 0x1424 */ 0xD669,0x4832, - /* Array index: 0x1424 */ 0xD670,0x4833, - /* Array index: 0x1424 */ 0xD671,0x4834, - /* Array index: 0x1424 */ 0xD674,0x4835, - /* Array index: 0x1424 */ 0xD683,0x4836, - /* Array index: 0x1424 */ 0xD685,0x4837, - /* Array index: 0x1424 */ 0xD68C,0x4838, - /* Array index: 0x1424 */ 0xD68D,0x4839, - /* Array index: 0x1424 */ 0xD690,0x483A, - /* Array index: 0x1424 */ 0xD694,0x483B, - /* Array index: 0x1424 */ 0xD69D,0x483C, - /* Array index: 0x1424 */ 0xD69F,0x483D, - /* Array index: 0x1424 */ 0xD6A1,0x483E, - /* Array index: 0x1424 */ 0xD6A8,0x483F, - /* Array index: 0x1424 */ 0xD6AC,0x4840, - /* Array index: 0x1424 */ 0xD6B0,0x4841, - /* Array index: 0x1424 */ 0xD6B9,0x4842, - /* Array index: 0x1424 */ 0xD6BB,0x4843, - /* Array index: 0x1424 */ 0xD6C4,0x4844, - /* Array index: 0x1424 */ 0xD6C5,0x4845, - /* Array index: 0x1424 */ 0xD6C8,0x4846, - /* Array index: 0x1424 */ 0xD6CC,0x4847, - /* Array index: 0x1424 */ 0xD6D1,0x4848, - /* Array index: 0x1424 */ 0xD6D4,0x4849, - /* Array index: 0x1424 */ 0xD6D7,0x484A, - /* Array index: 0x1424 */ 0xD6D9,0x484B, - /* Array index: 0x1424 */ 0xD6E0,0x484C, - /* Array index: 0x1424 */ 0xD6E4,0x484D, - /* Array index: 0x1424 */ 0xD6E8,0x484E, - /* Array index: 0x1424 */ 0xD6F0,0x484F, - /* Array index: 0x1424 */ 0xD6F5,0x4850, - /* Array index: 0x1424 */ 0xD6FC,0x4851, - /* Array index: 0x1424 */ 0xD6FD,0x4852, - /* Array index: 0x1424 */ 0xD700,0x4853, - /* Array index: 0x1424 */ 0xD704,0x4854, - /* Array index: 0x1424 */ 0xD711,0x4855, - /* Array index: 0x1424 */ 0xD718,0x4856, - /* Array index: 0x1424 */ 0xD719,0x4857, - /* Array index: 0x1424 */ 0xD71C,0x4858, - /* Array index: 0x1424 */ 0xD720,0x4859, - /* Array index: 0x1424 */ 0xD728,0x485A, - /* Array index: 0x1424 */ 0xD729,0x485B, - /* Array index: 0x1424 */ 0xD72B,0x485C, - /* Array index: 0x1424 */ 0xD72D,0x485D, - /* Array index: 0x1424 */ 0xD734,0x485E, - /* Array index: 0x1424 */ 0xD735,0x485F, - /* Array index: 0x1424 */ 0xD738,0x4860, - /* Array index: 0x1424 */ 0xD73C,0x4861, - /* Array index: 0x1424 */ 0xD744,0x4862, - /* Array index: 0x1424 */ 0xD747,0x4863, - /* Array index: 0x1424 */ 0xD749,0x4864, - /* Array index: 0x1424 */ 0xD750,0x4865, - /* Array index: 0x1424 */ 0xD751,0x4866, - /* Array index: 0x1424 */ 0xD760,0x486C, - /* Array index: 0x1424 */ 0xD761,0x486D, - /* Array index: 0x1424 */ 0xD763,0x486E, - /* Array index: 0x1424 */ 0xD765,0x486F, - /* Array index: 0x1424 */ 0xD769,0x4870, - /* Array index: 0x1424 */ 0xD76C,0x4871, - /* Array index: 0x1424 */ 0xD770,0x4872, - /* Array index: 0x1424 */ 0xD774,0x4873, - /* Array index: 0x1424 */ 0xD77C,0x4874, - /* Array index: 0x1424 */ 0xD77D,0x4875, - /* Array index: 0x1424 */ 0xD781,0x4876, - /* Array index: 0x1424 */ 0xD788,0x4877, - /* Array index: 0x1424 */ 0xD789,0x4878, - /* Array index: 0x1424 */ 0xD78C,0x4879, - /* Array index: 0x1424 */ 0xD790,0x487A, - /* Array index: 0x1424 */ 0xD798,0x487B, - /* Array index: 0x1424 */ 0xD799,0x487C, - /* Array index: 0x1424 */ 0xD79B,0x487D, - /* Array index: 0x1424 */ 0xD79D,0x487E, -}; - -#endif /* ICONV_FROM_UCS_CCS_KSX1001 && defined (TABLE_USE_SIZE_OPTIMIZATION) */ - -/* - * ksx1001 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_ksx1001 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_KSX1001, /* CCS name */ - TABLE_16BIT, /* Table bits */ -#if defined (ICONV_FROM_UCS_CCS_KSX1001) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&from_ucs_size_ksx1001, /* UCS -> ksx1001 table size-optimized table */ -#elif defined (ICONV_FROM_UCS_CCS_KSX1001) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&from_ucs_speed_ksx1001, /* UCS -> ksx1001 table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -#if defined (ICONV_TO_UCS_CCS_KSX1001) \ - && (defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SIZE_OPTIMIZED, - (__uint16_t *)&to_ucs_size_ksx1001 /* ksx1001 -> UCS table speed-optimized table */ -#elif defined (ICONV_TO_UCS_CCS_KSX1001) \ - && !(defined (TABLE_USE_SIZE_OPTIMIZATION)) - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)&to_ucs_speed_ksx1001 /* ksx1001 -> UCS table speed-optimized table */ -#else - TABLE_SPEED_OPTIMIZED, - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_KSX1001) || ... */ - diff --git a/lib/iconv/ccs/mktbl.pl b/lib/iconv/ccs/mktbl.pl deleted file mode 100644 index 633511e..0000000 --- a/lib/iconv/ccs/mktbl.pl +++ /dev/null @@ -1,1505 +0,0 @@ -#!/usr/bin/perl -w -# -# Copyright (c) 2003-2004, Artem B. Bityuckiy, SoftMine Corporation. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -use integer; -use Getopt::Std; -use IO::Seekable; -use strict; - - -# ############################################################################## -# -# FUNCTION PROTOTYPES AND GLOBAL DATA DECLARATION SECTION -# -# ############################################################################## - - -# SUPPLEMENTARY FUNCTIONS FORWARD DECLARATIONS -sub ProcessOptions(); -sub Err($;$); -sub Generate8bitToUCS(); -sub GenerateSpeed($); -sub Generate16bitSize($); -sub Output8bitToUCS(;$); -sub Output8bitFromUCS(;$); -sub OutputSpeed($;$); -sub OutputSize($;$); - -# VARIABLES RELATING TO COMMAND-LINE OPTIONS -my $Verbose; # Be verbose if true -my $Source; # Output C source code instead of binary .cct file if true -my $Plane; # Use this plane if defined -my $InFile; # Use this file for input -my $OutFile; # Use this file for output -my $CCSName; # Use this CCS name -my $NoSpeed; # Don't generate speed-optimized tables (binary files only) -my $NoSize; # Don't generate size-optimized tables (binary files only) -my $NoBE; # Don't generate big-endian tables (binary files only) -my $NoLE; # Don't generate big-endian tables (binary files only) -my $NoTo; # Don't generate "to_ucs" table (binary files only) -my $NoFrom; # Don't generate "from_ucs" table (binary files only) -my $CCSCol; # CCS column number in source file -my $UCSCol; # UCS column number in source file - - -# DATA STRUCTURES WITH "TO_UCS" AND "FROM_UCS" SPEED/SIZE -OPTIMIZED TABLES -my (@FromSpeedTbl, @ToSpeedTbl, @FromSizeTbl, @ToSizeTbl); -# "TO_UCS" AND "FROM_UCS" SPEED/SIZE -OPTIMIZED TABLES SIZE IN BYTES -my ($FromSpeedBytes, $ToSpeedBytes, $FromSizeBytes, $ToSizeBytes) = - (0, 0, 0, 0); - -my (%CCSUCS, %UCSCCS); # CCS->UCS and UCS->CCS mappings -my $Bits = 8; # Table bits (8 or 16); - -# SPECIAL MARKER CODES -my $InvCode = 0xFFFF; # FFFF indicates 18 bit invalid codes -my $InvBlock = 0xFFFF; # FFFF also mark empty blocks in speed-optimized tables -my $LostCode = 0x3F; # ASCII '?' marks codes lost during CCS->UCS mapping -# To mark invalid codes in 8bit encodings 0xFF is used CCS's 0xFF mapping is saved -# separately. $FFMap variable stores real 0xFF mapping if defined. -my $InvCode8bit = 0xFF; -my $FFMap; - -# 8 Bit "From UCS" table header size (bytes) -my $Hdr8bitFromUCS = 2; -# Binary table header size (bytes) -my $HdrBinary = 8; - -# At first all lost CCS codes are marked by $TmpLost to distinguish between -# code which is equivalent to $LostCode and lost codes. This is done in order to -# output $MacroLostCode instead of $LostCode in source file. -my $TmpLost = 0x1FFFF; - -# VARIABLES RELATING TO C SOURCE CODE -my $MacroInvCode = 'INVALC'; -my $MacroInvBlock = 'INVBLK'; -my $MacroLostCode = 'LOST_C'; -my $MacroCCSName = 'ICONV_CCS_%s'; -my $GuardSize = 'defined (TABLE_USE_SIZE_OPTIMIZATION)'; -my $GuardToUCS = "ICONV_TO_UCS_CCS_%s"; -my $GuardFromUCS = "ICONV_FROM_UCS_CCS_%s"; -my $MacroSpeedTable = 'TABLE_SPEED_OPTIMIZED'; -my $MacroSizeTable = 'TABLE_SIZE_OPTIMIZED'; -my $Macro8bitTable = 'TABLE_8BIT'; -my $Macro16bitTable = 'TABLE_16BIT'; -my $MacroVer1Table = 'TABLE_VERSION_1'; -my $TypeBICCS = 'iconv_ccs_t'; -my $VarToUCSSize = "to_ucs_size_%s"; -my $VarToUCSSpeed = "to_ucs_speed_%s"; -my $VarFromUCSSize = "from_ucs_size_%s"; -my $VarFromUCSSpeed = "from_ucs_speed_%s"; -my $VarBICCS = "_iconv_ccs_%s"; -# Text block that visually separates tables. -my $Separator = '=' x 70; - -# ############################################################################## -# -# SCRIPT ENTRY POINT -# -# ############################################################################## - - -# Parse command-line options, check them and set correspondent global variables -ProcessOptions(); - -# Initialize global variables tat depend on CCS name. -$_ = sprintf $_, $CCSName foreach +($VarToUCSSpeed, - $VarToUCSSize, - $VarToUCSSpeed, - $VarFromUCSSpeed, - $VarFromUCSSize, - $VarBICCS); -$_ = sprintf $_, "\U$CCSName" foreach +($GuardToUCS, - $GuardFromUCS, - $MacroCCSName); - -# Open input and output files -Err "Can't open \"$InFile\" file for reading: $!.\n", 1 -unless open(INFILE, '<', $InFile); -Err "Can't open \"$OutFile\" file for writing: $!.\n", 1 -unless open(OUTFILE, '>', $OutFile); - -# ============================================================================== -# EXTRACT CODES MAP FROM INPUT FILE -# ============================================================================== - -for (my $ln = 1; my $l = ; $ln += 1) -{ - # Skip comment and empty lines, remove ending CR symbol - next if $l =~ /^#.*$/ or $l =~ /^\s*$/; - $l =~ s/^(.*)\n$/$1/, $l =~ s/^(.*)\r$/$1/; - - # Remove comment and extra spaces - $l =~ s/(.*)\s*#.*/$1/; - $l =~ s/\s+/ /g; - $l =~ s/(.*)\s*$/$1/; - - # Split line into individual codes - my @codes = split / /, $l; - - # Skip line if there is no needed columns - unless (defined $codes[$CCSCol]) - { - print("Warning (line $ln): no CCS column, skip.\n") if $Verbose; - next; - } - unless (defined $codes[$UCSCol]) - { - print("Warning (line $ln): no UCS column, skip.\n") if $Verbose; - next; - } - - # Extract codes strings from needed columns - my ($ccs, $ucs) = ($codes[$CCSCol], $codes[$UCSCol]); - my $patt = qr/(0[xX])?[0-9a-fA-F]{1,8}/; # HEX digit regexp pattern. - - # Check that CCS and UCS code strings has right format. - unless ($ccs =~ m/^$patt$/) - { - print("Warning (line $ln): $ccs CCS code isn't recognized, skip.\n") - if $Verbose; - next; - } - unless ($ucs =~ m/^($patt(,|\+))*$patt$/) - { - print("Warning (line $ln): $ucs UCS code isn't recognized, skip.\n") - if $Verbose; - next; - } - - # Convert code to numeric format (assume hex). - $ccs = hex $ccs; - - if ($ucs =~ m/,/ or $ucs =~ m/\+/) - { - # Mark CCS codes with "one to many" mappings as lost - printf "Warning (line $ln): only one to one mapping is supported, " - . "mark 0x%.4X CCS code as lost.\n", hex $ccs if $Verbose; - $ucs = $TmpLost; - } - else - { - # Convert code to numeric format - $ucs = hex $ucs; - - # Check that UCS code isn't longer than 16 bits. - if ($ucs > 0xFFFF) - { - printf("Warning (line $ln): UCS code should fit 16 bits, " - . "mark 0x%.4X CCS code as lost.\n", hex $ccs) if $Verbose; - $ucs = $TmpLost; - } - } - - # If CCS value > 0xFFFF user should specify plane number. - if ($ccs > 0xFFFF && !defined $Plane) - { - print("Warning (line $ln): $ccs is > 16 bit, plane number should be specified," - . " skip this mapping.\n") if $Verbose; - next; - } - - if (defined $Plane) - { - next if (($ccs & 0xFFFF0000) >> 16) != hex $Plane; # Skip alien plane. - $ccs &= 0xFFFF; - } - - # Check that reserved codes aren't used. - if ($ccs == $InvCode or $ucs == $InvCode) - { - print("Warning (line $ln): $InvCode is reserved to mark invalid codes and " - . "shouldn't be used in mappings, skip.\n") if $Verbose; - next; - } - - # Save mapping in UCSCCS and CCSUCS hash arrays. - $UCSCCS{$ucs} = $ccs if $ucs != $TmpLost && !defined $UCSCCS{$ucs}; - $CCSUCS{$ccs} = $ucs if !defined $CCSUCS{$ccs}; - - $Bits = 16 if $ccs > 0xFF; -} - -if (not %CCSUCS) -{ - Err "Error: there is no plane $Plane in \"$0\".\n" if defined $Plane; - Err "Error: mapping wasn't found.\n"; -} - - -# ============================================================================== -# GENERATE TABLE DATA -# ============================================================================== - -if ($Bits == 8) -{ - $FFMap = $CCSUCS{0xFF}; - $FFMap = $InvCode if !defined $FFMap; -} - -if ($Bits == 8) -{ - Generate8bitToUCS() unless $NoTo; -} -else -{ - GenerateSpeed("to_ucs") unless $NoTo || $NoSpeed; - Generate16bitSize("to_ucs") unless $NoTo || $NoSize; -} - -GenerateSpeed("from_ucs") unless $NoFrom || $NoSpeed; -Generate16bitSize("from_ucs") unless $NoFrom || $NoSize; - -# ============================================================================== -# OUTPUT ARRAYS -# ============================================================================== - -if ($Source) -{ - # OUTPUT SOURCE - print OUTFILE -"/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for $CCSName encoding. - */ - -#include \"ccsbi.h\" - -#if defined ($GuardToUCS) \\ - || defined ($GuardFromUCS) - -#include <_ansi.h> -#include -#include -#include \"ccs.h\" -#include \"ccsnames.h\" - -"; - - if ($Bits == 8) - { - print OUTFILE -"#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error \"Unknown byte order.\" -#endif - -"; - } - - unless ($NoTo) - { - if ($Bits == 8) - { - Output8bitToUCS(); - } - else - { - OutputSpeed("to_ucs") unless $NoSpeed; - OutputSize("to_ucs") unless $NoSize; - } - } - unless ($NoFrom) - { - if ($Bits == 8) - { - Output8bitFromUCS(); - } - else - { - OutputSpeed("from_ucs") unless $NoSpeed; - OutputSize("from_ucs") unless $NoSize; - } - } - - # OUTPUT TABLE DESCRIPTION STRUCTURE - print OUTFILE -"/* - * $CCSName CCS description table. - * $Separator - */ -const $TypeBICCS -$VarBICCS = -{ -\t$MacroVer1Table, /* Table version */ -\t$MacroCCSName, /* CCS name */ -"; - if ($Bits == 8) - { - print OUTFILE -"\t$Macro8bitTable, /* Table bits */ -\t0, /* Not Used */ -#if defined ($GuardFromUCS) -\t(__uint16_t *)&$VarFromUCSSpeed, /* UCS -> $CCSName table */ -#else -\t(__uint16_t *)NULL, -#endif -\t0, /* Not Used */ -#if defined ($GuardToUCS) -\t(__uint16_t *)&$VarToUCSSpeed /* $CCSName -> UCS table */ -#else -\t(__uint16_t *)NULL, -#endif -};\n"; - } - else - { - print OUTFILE -"\t$Macro16bitTable, /* Table bits */ -#if defined ($GuardFromUCS) \\ - && ($GuardSize) -\t$MacroSizeTable, -\t(__uint16_t *)&$VarFromUCSSize, /* UCS -> $CCSName table size-optimized table */ -#elif defined ($GuardFromUCS) \\ - && !($GuardSize) -\t$MacroSpeedTable, -\t(__uint16_t *)&$VarFromUCSSpeed, /* UCS -> $CCSName table speed-optimized table */ -#else -\t$MacroSpeedTable, -\t(__uint16_t *)NULL, -#endif -#if defined ($GuardToUCS) \\ - && ($GuardSize) -\t$MacroSizeTable, -\t(__uint16_t *)&$VarToUCSSize /* $CCSName -> UCS table speed-optimized table */ -#elif defined ($GuardToUCS) \\ - && !($GuardSize) -\t$MacroSpeedTable, -\t(__uint16_t *)&$VarToUCSSpeed /* $CCSName -> UCS table speed-optimized table */ -#else -\t$MacroSpeedTable, -\t(__uint16_t *)NULL, -#endif -};\n"; - } - print OUTFILE "\n#endif /* $GuardToUCS) || ... */\n\n"; -} -else -{ - # OUTPUT BINARY TABLES DESCRIPTION STRUCTURE (ALWAYS BIG ENDIAN) - print OUTFILE pack "n", 1; - print OUTFILE pack "n", $Bits; - my $len = length $CCSName; - print OUTFILE pack "N", $len; - print OUTFILE pack "a$len", $CCSName; - - my $pos = $HdrBinary + $len; - if ($pos & 3) - { - my $l = 4 - ($pos & 3); - print OUTFILE pack "a$l", 'XXX'; - $pos += $l; - } - - $pos += 16*4; - - my @tables; - for (my $i = 0; $i < 16; $i++) - { - $tables[$i] = 0; - } - - $tables[0] = $pos, $tables[1] = $FromSpeedBytes, $pos += $FromSpeedBytes - unless $NoFrom || $NoSpeed || $NoBE; - $tables[2] = $pos, $tables[3] = $FromSpeedBytes, $pos += $FromSpeedBytes - unless $NoFrom || $NoSpeed || $NoLE; - if ($Bits == 16) - { - $tables[4] = $pos, $tables[5] = $FromSizeBytes, $pos += $FromSizeBytes - unless $NoFrom || $NoSize || $NoBE; - $tables[6] = $pos, $tables[7] = $FromSizeBytes, $pos += $FromSizeBytes - unless $NoFrom || $NoSize || $NoLE; - } - $tables[8] = $pos, $tables[9] = $ToSpeedBytes, $pos += $ToSpeedBytes - unless $NoTo || $NoSpeed || $NoBE; - $tables[10] = $pos, $tables[11] = $ToSpeedBytes, $pos += $ToSpeedBytes - unless $NoTo || $NoSpeed || $NoLE; - if ($Bits == 16) - { - $tables[12] = $pos, $tables[13] = $ToSizeBytes, $pos += $ToSizeBytes - unless $NoTo || $NoSize || $NoBE; - $tables[14] = $pos, $tables[15] = $ToSizeBytes, $pos += $ToSizeBytes - unless $NoTo || $NoSize || $NoLE; - } - - print OUTFILE pack("N", $_) foreach @tables; - - print "Total bytes for output: $pos.\n" if $Verbose; - - # OUTPUT BINARY TABLES - unless ($NoFrom) - { - if ($Bits == 8) - { - Output8bitFromUCS("n") unless $NoBE; - Output8bitFromUCS("v") unless $NoLE; - } - else - { - unless ($NoSpeed) - { - OutputSpeed("from_ucs", "n") unless $NoBE; - OutputSpeed("from_ucs", "v") unless $NoLE; - } - unless ($NoSize) - { - OutputSize("from_ucs", "n") unless $NoBE; - OutputSize("from_ucs", "v") unless $NoLE; - } - } - } - unless ($NoTo) - { - if ($Bits == 8) - { - Output8bitToUCS("n") unless $NoBE; - Output8bitToUCS("v") unless $NoLE; - } - else - { - unless ($NoSpeed) - { - OutputSpeed("to_ucs", "n") unless $NoBE; - OutputSpeed("to_ucs", "v") unless $NoLE; - } - unless ($NoSize) - { - OutputSize("to_ucs", "n") unless $NoBE; - OutputSize("to_ucs", "v") unless $NoLE; - } - } - } -} - -close INFILE; -close OUTFILE; -exit 0; - - -# ############################################################################## -# -# SUPPLEMENTARY FUNCTIONS -# -# ############################################################################## - - -# ============================================================================= -# -# Generate 8bit "to_ucs" table. Store table data in %ToSpeedTbl hash. -# Store table size in $ToSpeedBytes scalar. -# -# ============================================================================= -sub Generate8bitToUCS() -{ - for (my $i = 0; $i <= 255; $i++) - { - $ToSpeedTbl[$i] = defined $CCSUCS{$i} ? $CCSUCS{$i} : $InvCode; - } - $ToSpeedBytes = 256*2; -} - - -# ============================================================================= -# -# Generate speed-optimized table. -# -# Parameter 1: -# "to_ucs" - generate "to_ucs" table, store table data in @ToSpeedTbl -# array, store table size in $ToSpeedBytes scalar. -# "from_ucs" - generate "from_ucs" table, store table data in @FromSpeedTbl -# array, store table size in $FromSpeedBytes scalar. -# -# Data is written to @ToSpeedTbl or @FromSpeedTbl (@map) table and has the -# following format: -# $table[0] - 256-element array (control block); -# $table[1 .. $#table] - 256-element arrays (data blocks). -# -# ============================================================================= -sub GenerateSpeed($) -{ - my $map; - my $tbl; - my $bytes; - - if ($_[0] eq "to_ucs") - { - $map = \%CCSUCS; - $tbl = \@ToSpeedTbl; - $bytes = \$ToSpeedBytes; - } - elsif ($_[0] eq "from_ucs") - { - $map = \%UCSCCS; - $tbl = \@FromSpeedTbl; - $bytes = \$FromSpeedBytes; - } - else - { - Err "Internal script error in GenerateSpeed()\n"; - } - - # Identify unused blocks - my @busy_blocks; - $busy_blocks[$_ >> 8] = 1 foreach (keys %$map); - - # GENERATE FIRST 256-ELEMENT CONTROL BLOCK - for (my $i = 0, - my $idx = $Bits == 16 ? 0 : 256 + $Hdr8bitFromUCS; - $i <= 0xFF; $i++) - { - $tbl->[0]->[$i] = $busy_blocks[$i] ? $idx += 256 : undef; - } - - # GENERATE DATA BLOCKS - $$bytes = 0; - for (my $i = 0; $i <= 0xFF; $i++) - { - next unless $busy_blocks[$i]; - $$bytes += 256; - for (my $j = 0; $j <= 0xFF; $j++) - { - $tbl->[$i+1]->[$j] = $map->{($i << 8) | $j}; - } - } - $$bytes *= 2 if $Bits == 16; - $$bytes += $Hdr8bitFromUCS if $Bits == 8; - $$bytes += 512; -} - - -# ============================================================================= -# -# Generate 16bit size-optimized table. -# -# Parameter 1: -# "to_ucs" - generate "to_ucs" table, store table data in @ToSizeTbl -# array, store table size in $ToSizeBytes scalar. -# "from_ucs" - generate "from_ucs" table, store table data in @FromSizeTbl -# array, store table size in $FromSizeBytes scalar. -# -# Data is written to @ToSizeTbl or @FromSizeTbl (@map) table and has the -# following format: -# $table[0] - number of ranges; -# $table[1] - number of unranged codes; -# $table[2] - unranged codes index in resulting array; -# $table[3]->[0 .. $table[0]] - array of arrays of ranges: -# $table[3]->[x]->[0] - first code; -# $table[3]->[x]->[1] - last code; -# $table[3]->[x]->[2] - range index in resulting array; -# $table[4]->[0 .. $table[0]] - array of arrays of ranges content; -# $table[5]->[0 .. $table[1]] - array of arrays of unranged codes; -# $table[5]->[x]->[0] - CCS code; -# $table[5]->[x]->[0] - UCS code; -# -# ============================================================================= -sub Generate16bitSize($) -{ - my $map; - my $tbl; - my $bytes; - - if ($_[0] eq "to_ucs") - { - $map = \%CCSUCS; - $tbl = \@ToSizeTbl; - $bytes = \$ToSizeBytes; - } - elsif ($_[0] eq "from_ucs") - { - $map = \%UCSCCS; - $tbl = \@FromSizeTbl; - $bytes = \$FromSizeBytes; - } - else - { - Err "Internal script error Generate16bitSize()\n"; - } - - # CREATE LIST OF RANGES. - my @codes = sort {$a <=> $b} keys %$map; - my @ranges; # Code ranges - my @range; # Current working range - foreach (@codes) - { - if (not @range or $_ - 1 == $range[$#range]) - { - push @range, $_; - } - else - { - my @tmp = @range; - push @ranges, \@tmp; - undef @range; - redo; - } - } - # Add Last range too - if (@range) - { - my @tmp = @range; - push @ranges, \@tmp; - } - - # OPTIMIZE LIST OF RANGES. - my $r = 0; # Working range number - while (1) - { - last if ($r == $#ranges); - - my @r1 = @{$ranges[$r]}; - my @r2 = @{$ranges[$r + 1]}; - - # Calculate how many array entries two ranges need - my ($s1, $s2); - - if ($#r1 == 0) - { $s1 = 2; } - elsif ($#r1 == 1) - { $s1 = 4; } - else - { $s1 = $#r1 + 1 + 3; } - - if ($#r2 == 0) - { $s2 = 2; } - elsif ($#r2 == 1) - { $s2 = 4; } - else - { $s2 = $#r2 + 1 + 3; } - - my $two = $s1 + $s2; - - # Calculate how many array entries will be needed if we join them - my $one = $r2[$#r2] - $r1[0] + 1 + 3; - - $r += 1, next if ($one > $two); - - # Join ranges - my @r; # New range. - push @r, $_ foreach (@r1); - for (my $i = $r1[$#r1]+1; $i < $r2[0]; $i++) - { - push @r, undef; - } - push @r, $_ foreach (@r2); - $ranges[$r] = \@r; - splice @ranges, $r+1, 1; - } - - # SEPARATE RANGED AND UNRANGED CODES. SPLIT 2-CODES RANGES ON 2 UNRANGED. - my @unranged; - foreach (@ranges) - { - if ($#$_ == 0) - { - push @unranged, $$_[0]; - undef $_; - } - elsif ($#$_ == 1) - { - push @unranged, $$_[0]; - push @unranged, $$_[1]; - undef $_; - } - } - - # DELETE UNUSED ELEMENTS - for (my $i = 0; $i <= $#ranges; $i++) - { - splice @ranges, $i--, 1 unless defined $ranges[$i]; - } - - # CALCULATE UNRANGED CODES ARRAY INDEX - my $idx = 3 + ($#ranges + 1)*3; - $idx += $#$_ + 1 foreach @ranges; - - # COMPOSE TABLE - $tbl->[0] = $#ranges + 1; # Number of ranges - $tbl->[1] = $#unranged + 1; # Number of unranged codes - $tbl->[2] = $idx; # Array index of unranged codes - - # Generate ranges list - $idx = 3 + ($#ranges + 1)*3; # First range data index - $$bytes = $idx*2; - my $num = 0; - foreach (@ranges) - { - $tbl->[3]->[$num]->[0] = $_->[0]; - $tbl->[3]->[$num]->[1] = $_->[$#$_]; - $tbl->[3]->[$num]->[2] = $idx; - $idx += $#$_ + 1; - $num += 1; - } - - # Generate ranges content - $num = 0; - foreach (@ranges) - { - for (my $i = 0; $i <= $#$_; $i++) - { - $tbl->[4]->[$num]->[$i] = defined $_->[$i] ? $map->{$_->[$i]} : undef; - } - $num += 1; - $$bytes += ($#$_ + 1)*2; - } - - # Generate unranged codes list - $num = 0; - foreach (@unranged) - { - $tbl->[5]->[$num]->[0] = $_; - $tbl->[5]->[$num]->[1] = $map->{$_}; - $num += 1; - } - - $$bytes += ($#unranged + 1)*4; -} - - -# ============================================================================= -# -# Output 8bit "to UCS" table. Output table's source code if $Source -# and table's binary data if !$Source. -# -# Parameter 1: Not used when sources are output. Output BE binary if 'n' and -# LE binary if 'v'. -# -# ============================================================================= -sub Output8bitToUCS(;$) -{ - my $endian = $_[0]; - my $br = 0; - - printf "Output%s 8-bit UCS -> $CCSName table ($ToSpeedBytes bytes).\n", - defined $endian ? ($endian eq 'n' ? - " Big Endian" : " Little Endian") : "" if $Verbose; - if ($Source) - { - # Output heading information - printf OUTFILE -"/* - * 8-bit $CCSName -> UCS table ($ToSpeedBytes bytes). - * $Separator - */ -#if defined ($GuardToUCS) - -static const __uint16_t -${VarToUCSSpeed}\[] = -{\n\t"; - } - - if ($Source) - { - foreach (@ToSpeedTbl) - { - $br += 1; - if ($_ != $InvCode) - { - if ($_ != $TmpLost) - { - printf OUTFILE "0x%.4X,", $_; - } - else - { - print OUTFILE "$MacroLostCode,"; - } - } - else - { - print OUTFILE "$MacroInvCode,"; - } - print(OUTFILE "\n\t"), $br = 0 unless $br % 8; - } - print OUTFILE "\n};\n\n#endif /* $GuardToUCS */\n\n"; - } - else - { - foreach (@ToSpeedTbl) - { - print OUTFILE pack($endian, $_ == $TmpLost ? $LostCode : $_); - } - } -} - - -# ============================================================================= -# -# Output 8bit "from UCS" table. Output table's source code if $Source -# and table's binary data if !$Source. -# -# Parameter 1: Not used when sources are output. Output BE binary if 'n' and -# LE binary if 'v'. -# -# ============================================================================= -sub Output8bitFromUCS(;$) -{ - my $endian = $_[0]; - - printf "Output%s 8-bit $CCSName -> UCS table ($FromSpeedBytes bytes).\n", - defined $endian ? ($endian eq 'n' ? - " Big Endian" : " Little Endian") : "" if $Verbose; - if ($Source) - { - print OUTFILE -"/* - * 8-bit UCS -> $CCSName speed-optimized table ($FromSpeedBytes bytes). - * $Separator - */ - -#if defined ($GuardFromUCS) - -static const unsigned char -${VarFromUCSSpeed}\[] = -{ -"; - } - - # SAVE 0xFF MAPPING. - if ($Source) - { - printf OUTFILE "\tW(0x%.4X), /* Real 0xFF mapping. 0xFF is used " - . "to mark invalid codes */\n", $FFMap; - } - else - { - print OUTFILE pack($endian, $FFMap); - } - - # OUTPUT HEADING BLOCK (ALWAYS 16 BIT) - if ($Source) - { - my $count = 0; - print OUTFILE "\t/* Heading Block */"; - for (my $i = 0, my $br = 0; $i < 256; $br = ++$i % 4) - { - print OUTFILE "\n\t" unless $br; - if (defined $FromSpeedTbl[0]->[$i]) - { - printf OUTFILE "W(0x%.4X),", $FromSpeedTbl[0]->[$i]; - } - else - { - print OUTFILE "W($MacroInvBlock),"; - } - } - } - else - { - print OUTFILE pack($endian, defined $_ ? $_ : $InvBlock) - foreach @{$FromSpeedTbl[0]}; - } - - if ($Source) - { - my $index = 512 + $Hdr8bitFromUCS; - for (my $blk = 1; $blk <= $#FromSpeedTbl; $blk++) - { - next unless defined $FromSpeedTbl[$blk]; - printf OUTFILE "\n\t/* Block $blk, Array index 0x%.4X */", $index; - $index += 256; - for (my $i = 0, my $br = 0; $i < 256; $i++, $br = $i % 8) - { - print OUTFILE "\n\t" unless $br; - my $code = $FromSpeedTbl[$blk]->[$i]; - if (!defined $code) - { - printf OUTFILE "0x%.2X,", $InvCode8bit; - } - else - { - printf OUTFILE "0x%.2X,", $code == $TmpLost ? $LostCode : $code; - } - } - } - print OUTFILE "\n};\n\n#endif /* $GuardFromUCS */\n\n"; - } - else - { - for (my $blk = 1; $blk <= $#FromSpeedTbl; $blk++) - { - next unless defined $FromSpeedTbl[$blk]; - for (my $i = 0, my $br = 0; $i < 256; $br = ++$i % 8) - { - my $code = $FromSpeedTbl[$blk]->[$i]; - if (!defined $code) - { - printf OUTFILE pack 'C', $InvCode8bit; - } - else - { - print OUTFILE $code == $TmpLost ? pack('C', $LostCode) - : pack('C', $code); - } - } - } - } -} - - -# ============================================================================= -# -# Output 16bit Speed-optimized table. Output table's source code if $Source -# and table's binary data if !$Source. -# -# Parameter 1: -# "to_ucs" - Output "to_ucs" table. -# "from_ucs" - Output "from_ucs" table. -# Parameter 2: Not used when sources are output. Output BE binary if 'n' and -# LE binary if 'v'. -# -# ============================================================================= -sub OutputSpeed($;$) -{ - my $endian = $_[1]; - my $tbl; - my ($direction, $optimiz, $e, $bytes); - $optimiz = $Bits == 16 ? " speed-optimized" : ""; - $e = $endian ? ($endian eq 'n' ? " Big Endian" : " Little Endian") : ""; - if ($_[0] eq "to_ucs") - { - $tbl = \@ToSpeedTbl; - $direction = " $CCSName -> UCS"; - $bytes = $ToSpeedBytes; - - if ($Source) - { - print OUTFILE -"/* - * 16-bit $CCSName -> UCS speed-optimized table ($ToSpeedBytes bytes). - * $Separator - */ -#if defined ($GuardToUCS) \\ - && !($GuardSize) - -static const __uint16_t -${VarToUCSSpeed}\[] = -{ -"; - } - } - elsif ($_[0] eq "from_ucs") - { - $tbl = \@FromSpeedTbl; - $direction = " UCS -> $CCSName"; - $bytes = $FromSpeedBytes; - - if ($Source) - { - print OUTFILE -"/* - * 16-bit UCS -> $CCSName speed-optimized table ($FromSpeedBytes bytes). - * $Separator - */ - -#if defined ($GuardFromUCS) \\ - && !($GuardSize) - -static const __uint16_t -${VarFromUCSSpeed}\[] = -{ -"; - } - } - else - { - Err "Internal script error Output16bitSpeed()\n"; - } - - printf "Output%s 16-bit%s%s table (%d bytes).\n", - $e, $direction, $optimiz, $bytes if $Verbose; - - # OUTPUT HEADING BLOCK (ALWAYS 16 BIT) - if ($Source) - { - my $count = 0; - print OUTFILE "\t/* Heading Block */"; - for (my $i = 0, my $br = 0; $i < 256; $br = ++$i % 8) - { - print OUTFILE "\n\t" unless $br; - if (defined $tbl->[0]->[$i]) - { - printf OUTFILE "0x%.4X,", $tbl->[0]->[$i]; - } - else - { - print OUTFILE "$MacroInvBlock,"; - } - } - } - else - { - print OUTFILE pack($endian, defined $_ ? $_ : $InvBlock) - foreach @{$tbl->[0]}; - } - - # OUTPUT OTHER BLOCKS - if ($Source) - { - my $index = 256; - for (my $blk = 1; $blk <= $#$tbl; $blk++) - { - next unless defined $tbl->[$blk]; - printf OUTFILE "\n\t/* Block $blk, Array index 0x%.4X */", $index; - $index += 256; - for (my $i = 0, my $br = 0; $i < 256; $br = ++$i % 8) - { - print OUTFILE "\n\t" unless $br; - my $code = $tbl->[$blk]->[$i]; - print OUTFILE defined $code ? - ($code == $TmpLost ? $MacroLostCode : sprintf "0x%.4X", $code) - : $MacroInvCode, ","; - } - } - } - else - { - for (my $blk = 1; $blk <= $#$tbl; $blk++) - { - next unless defined $tbl->[$blk]; - for (my $i = 0, my $br = 0; $i < 256; $br = ++$i % 8) - { - my $code = $tbl->[$blk]->[$i]; - print OUTFILE pack($endian, - defined $code ? ($code == $TmpLost ? $LostCode : $code) : $InvCode); - } - } - } - - if ($Source) - { - if ($_[0] eq "to_ucs") - { - print OUTFILE -" -}; - -#endif /* $GuardToUCS && !$GuardSize */ - -"; - } - else - { - print OUTFILE -" -}; - -#endif /* $GuardFromUCS && !$GuardSize */ - -"; - } - } -} - -# ============================================================================= -# -# Output 16bit Size-optimized table. Output table's source code if $Source -# and table's binary data if !$Source. -# -# Parameter 1: -# "to_ucs" - Output "to_ucs" table. -# "from_ucs" - Output "from_ucs" table. -# Parameter 2: Not used when sources are output. Output BE binary if 'n' and -# LE binary if 'v'. -# -# ============================================================================= -sub OutputSize($;$) -{ - my $endian = $_[1]; - my $tbl; - my ($direction, $optimiz, $e, $bytes); - $optimiz = $Bits == 16 ? " size-optimized" : ""; - $e = $endian ? ($endian eq 'n' ? " Big Endian" : " Little Endian") : ""; - if ($_[0] eq "to_ucs") - { - $tbl = \@ToSizeTbl; - $direction = " $CCSName -> UCS"; - $bytes = $ToSizeBytes; - - if ($Source) - { - print OUTFILE -"/* - * 16-bit $CCSName -> UCS size-optimized table ($ToSizeBytes bytes). - * $Separator - */ -#if defined ($GuardToUCS) \\ - && ($GuardSize) - -static const __uint16_t -${VarToUCSSize}\[] = -{ -"; - } - } - elsif ($_[0] eq "from_ucs") - { - $tbl = \@FromSizeTbl; - $direction = " UCS -> $CCSName"; - $bytes = $FromSizeBytes; - if ($Source) - { - print OUTFILE -"/* - * 16-bit UCS -> $CCSName size-optimized table ($FromSizeBytes bytes). - * $Separator - */ - -#if defined ($GuardFromUCS) \\ - && ($GuardSize) - -static const __uint16_t -${VarFromUCSSize}\[] = -{ -"; - } - } - else - { - Err "Internal script error Output16bitSize()\n"; - } - - printf "Output%s 16-bit%s%s table (%d bytes).\n", - $e, $direction, $optimiz, $bytes if $Verbose; - - # OUTPUT FIRST 3 ELEMENTS - if ($Source) - { - printf OUTFILE "\t0x%.4X, /* Ranges number */\n", $tbl->[0]; - printf OUTFILE "\t0x%.4X, /* Unranged codes number */\n", $tbl->[1]; - printf OUTFILE "\t0x%.4X, /* First unranged code index */\n", $tbl->[2]; - } - else - { - printf OUTFILE pack $endian, $tbl->[0]; - printf OUTFILE pack $endian, $tbl->[1]; - printf OUTFILE pack $endian, $tbl->[2]; - } - - my $idx = 0; - # OUTPUT RANGES - if ($Source) - { - print OUTFILE "\t/* Ranges list: first code, last Code, array index. */\n"; - for (my $range = 0; $range <= $#{$tbl->[3]}; $range++) - { - printf OUTFILE "\t/* Array index: 0x%.4X */ 0x%.4X, 0x%.4X, 0x%.4X,\n", - $idx += 3, - $tbl->[3]->[$range]->[0], - $tbl->[3]->[$range]->[1], - $tbl->[3]->[$range]->[2]; - } - } - else - { - for (my $range = 0; $range <= $#{$tbl->[3]}; $range++) - { - print OUTFILE pack($endian, $tbl->[3]->[$range]->[0]), - pack($endian, $tbl->[3]->[$range]->[1]), - pack($endian, $tbl->[3]->[$range]->[2]); - } - } - $idx += 3; - - # OUTPUT RANGES CONTENT - if ($Source) - { - print OUTFILE "\t/* Ranges content */"; - for (my $range = 0; $range <= $#{$tbl->[3]}; $range++) - { - printf OUTFILE "\n\t/* Range 0x%.4X - 0x%.4X, array index: 0x%.4X */", - $tbl->[3]->[$range]->[0], $tbl->[3]->[$range]->[1], $idx; - $idx += $tbl->[3]->[$range]->[1] - $tbl->[3]->[$range]->[0] + 1; - for (my $elt = 0, my $br = 0; - $elt <= $#{$tbl->[4]->[$range]}; - $br = ++$elt % 8) - { - print OUTFILE "\n\t" unless $br; - if (defined $tbl->[4]->[$range]->[$elt]) - { - if ($tbl->[4]->[$range]->[$elt] != $TmpLost) - { - printf OUTFILE "0x%.4X,", $tbl->[4]->[$range]->[$elt]; - } - else - { - print OUTFILE "$MacroLostCode,"; - } - } - else - { - print OUTFILE "$MacroInvCode,"; - } - } - } - } - else - { - for (my $range = 0; $range <= $#{$tbl->[3]}; $range++) - { - for (my $elt = 0; $elt <= $#{$tbl->[4]->[$range]}; $elt++) - { - if (defined $tbl->[4]->[$range]->[$elt]) - { - if ($tbl->[4]->[$range]->[$elt] != $TmpLost) - { - print OUTFILE pack $endian, $tbl->[4]->[$range]->[$elt]; - } - else - { - print OUTFILE pack $endian, $LostCode; - } - } - else - { - print OUTFILE pack $endian, $InvCode; - } - } - } - } - - # OUTPUT UNRANGED CODES - if ($Source) - { - printf OUTFILE "\n\t/* Unranged codes (%d codes) */", $#{$tbl->[4]} + 1; - for (my $i = 0; $i <= $#{$tbl->[5]}; $i++) - { - printf OUTFILE "\n\t/* Array index: 0x%.4X */ 0x%.4X,0x%.4X,", - $idx, $tbl->[5]->[$i]->[0], $tbl->[5]->[$i]->[1]; - } - } - else - { - for (my $i = 0; $i <= $#{$tbl->[5]}; $i++) - { - print OUTFILE pack($endian, $tbl->[5]->[$i]->[0]), - pack($endian, $tbl->[5]->[$i]->[1]); - } - } - - if ($Source) - { - if ($_[0] eq "to_ucs") - { - print OUTFILE -" -}; - -#endif /* $GuardToUCS && $GuardSize */ - -"; - } - else - { - print OUTFILE -" -}; - -#endif /* $GuardFromUCS && $GuardSize */ - -"; - } - } -} - - -# ============================================================================= -# -# Parse command line options -# -# ============================================================================= -sub ProcessOptions() -{ - my $help_opt = 'h'; # Print help option - my $input_opt = 'i'; # Input file name option - my $output_opt = 'o'; # Output file name option - my $source_opt = 'S'; # Generate C source file option - my $enc_opt = 'N'; # Encoding name - my $plane_opt = 'p'; # Plane number - my $verbose_opt = 'v'; # Verbose output - my $ccscol_opt = 'x'; # Encoding's column number - my $ucscol_opt = 'y'; # UCS column number - my $nosize_opt = 'l'; # Don't generate size-optimized tables - my $nospeed_opt = 'b'; # Don't generate speed-optimized tables - my $nobe_opt = 'B'; # Don't generate big-endian tables - my $nole_opt = 'L'; # Don't generate big-endian tables - my $noto_opt = 't'; # Don't generate "to_ucs" table - my $nofrom_opt = 'f'; # Don't generate "from_ucs" table - - my %args; # Command line arguments found by getopts() - - my $getopts_string = - "$help_opt$source_opt$enc_opt:$verbose_opt$input_opt:$output_opt:$plane_opt:" - . "$nosize_opt$nospeed_opt$nobe_opt$nole_opt$noto_opt$nofrom_opt$ccscol_opt:" - . "$ucscol_opt:"; - - getopts($getopts_string, \%args) || Err "getopts() failed: $!.\n", 1; - - # Print usage rules and exit. - if ($args{$help_opt}) - { - print<.c (for sources) or -.cct (for binaries) is assumed. -If encoding name isn't specified is assumed. - is normalized (small letters, "-" are substituted by "_") input file -name base (no extension). For example, for Koi8-r.txt input file, -is koi8_r. -END -; - exit 0; - } - - $Verbose = $args{$verbose_opt}; - $Source = $args{$source_opt}; - $NoSpeed = $args{$nospeed_opt}; - $NoSize = $args{$nosize_opt}; - $NoBE = $args{$nobe_opt}; - $NoLE = $args{$nole_opt}; - $NoFrom = $args{$nofrom_opt}; - $NoTo = $args{$noto_opt}; - $CCSCol = $args{$ccscol_opt}; - $UCSCol = $args{$ucscol_opt}; - $Plane = $args{$plane_opt}; - $InFile = $args{$input_opt}; - $OutFile = $args{$output_opt}; - $CCSName = $args{$enc_opt}; - - Err "Error: input file isn't defined. Use -$help_opt for help.\n", 1 - unless $InFile; - - unless ($OutFile) - { - # Construct output file name - $OutFile = $InFile; - $OutFile =~ s/(.*\/)*([0-9a-zA-Z-_]*)(\..*)$/\L$2/; - $OutFile =~ tr/-/_/; - if ($Source) - { - $OutFile = "$OutFile.c"; - } - else - { - $OutFile = "$OutFile.cct" - } - } - - unless ($CCSName) - { - # Construct CCS name - $CCSName = $InFile; - $CCSName =~ s/(.*\/)*([0-9a-zA-Z-_]*)(\..*)$/\L$2/; - $CCSName =~ tr/-/_/; - } - - Err "-$nosize_opt option can't be used with -$nospeed_opt option " - . "simultaniously.\n", 1 if $NoSpeed && $NoSize; - - Err "-$nobe_opt option can't be used with -$nole_opt option " - . "simultaniously.\n", 1 if $NoBE && $NoLE; - - Err "-$noto_opt option can't be used with -$nofrom_opt option" - . "simultaniously.\n", 1 if $NoTo && $NoFrom; - - Err "-$nosize_opt, -$nospeed_opt, -$nobe_opt -$nole_opt " - . "-$noto_opt and -$nofrom_opt " - . "options can't be used with -$source_opt option.\n" - . "Source code always contains both speed- and size-optimized " - . "tables in System Endian. Use -$help_opt for help.\n", 1 - if $Source and $NoSpeed || $NoSize || $NoBE || $NoLE || $NoTo || $NoFrom; - - if (!$CCSCol && !$UCSCol) - { - $CCSCol = 0; - $UCSCol = 1; - } - elsif ($CCSCol && $UCSCol) - { - Err "Column number should be >= 0\n", 1 if ($CCSCol <= 0 or $UCSCol <= 0); - $CCSCol -= 1; - $UCSCol -= 1; - } - else - { - Err "Please, define both CCS and UCS column numbers\n", 1; - } - - if ($Verbose) - { - print "Use $InFile file for input.\n", - "Use $OutFile file for output.\n", - "Use $CCSName as CCS name.\n"; - print "Generate C source file.\n" if $Source; - print "Generate binary file.\n" if !$Source; - printf "Use plane N 0x%.4X.\n", hex $Plane if defined $Plane; - printf "Use column N $CCSCol for $CCSName.\n"; - printf "Use column N $UCSCol for UCS.\n"; - print "Don't generate size-optimized tables.\n" if $NoSize; - print "Don't generate speed-optimized tables.\n" if $NoSpeed; - print "Don't generate big-endian tables.\n" if $NoBE; - print "Don't generate little-endian tables.\n" if $NoLE; - print "Don't generate \"to_ucs\" table.\n" if $NoTo; - print "Don't generate \"from_ucs\" table.\n" if $NoFrom; - } - - return; -} - - -# ============================================================================= -# -# Print error message, close all and exit -# -# Parameter 1: error message -# Parameter 2: don't delete output file if > 1 -# -# ============================================================================= -sub Err($;$) -{ - print STDERR "$_[0]"; - close INFILE; - close OUTFILE; - unlink $OutFile unless $_[1]; - - exit 1; -} \ No newline at end of file diff --git a/lib/iconv/ccs/win_1250.c b/lib/iconv/ccs/win_1250.c deleted file mode 100644 index d86d6a0..0000000 --- a/lib/iconv/ccs/win_1250.c +++ /dev/null @@ -1,341 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for win_1250 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_WIN_1250) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1250) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit win_1250 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_WIN_1250) - -static const __uint16_t -to_ucs_speed_win_1250[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x20AC,INVALC,0x201A,INVALC,0x201E,0x2026,0x2020,0x2021, - INVALC,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179, - INVALC,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, - INVALC,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A, - 0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7, - 0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B, - 0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7, - 0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C, - 0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, - 0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, - 0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, - 0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, - 0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, - 0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, - 0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, - 0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9, - -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1250 */ - -/* - * 8-bit UCS -> win_1250 speed-optimized table (1794 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_WIN_1250) - -static const unsigned char -from_ucs_speed_win_1250[] = -{ - W(0x02D9), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(0x0402),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0502),W(0x0602),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA0,0xFF,0xFF,0xFF,0xA4,0xFF,0xA6,0xA7, - 0xA8,0xA9,0xFF,0xAB,0xAC,0xAD,0xAE,0xFF, - 0xB0,0xB1,0xFF,0xFF,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xFF,0xFF,0xBB,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xC1,0xC2,0xFF,0xC4,0xFF,0xFF,0xC7, - 0xFF,0xC9,0xFF,0xCB,0xFF,0xCD,0xCE,0xFF, - 0xFF,0xFF,0xFF,0xD3,0xD4,0xFF,0xD6,0xD7, - 0xFF,0xFF,0xDA,0xFF,0xDC,0xDD,0xFF,0xDF, - 0xFF,0xE1,0xE2,0xFF,0xE4,0xFF,0xFF,0xE7, - 0xFF,0xE9,0xFF,0xEB,0xFF,0xED,0xEE,0xFF, - 0xFF,0xFF,0xFF,0xF3,0xF4,0xFF,0xF6,0xF7, - 0xFF,0xFF,0xFA,0xFF,0xFC,0xFD,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xC3,0xE3,0xA5,0xB9,0xC6,0xE6, - 0xFF,0xFF,0xFF,0xFF,0xC8,0xE8,0xCF,0xEF, - 0xD0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xCA,0xEA,0xCC,0xEC,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xC5,0xE5,0xFF,0xFF,0xBC,0xBE,0xFF, - 0xFF,0xA3,0xB3,0xD1,0xF1,0xFF,0xFF,0xD2, - 0xF2,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xD5,0xF5,0xFF,0xFF,0xC0,0xE0,0xFF,0xFF, - 0xD8,0xF8,0x8C,0x9C,0xFF,0xFF,0xAA,0xBA, - 0x8A,0x9A,0xDE,0xFE,0x8D,0x9D,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD9,0xF9, - 0xDB,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x8F,0x9F,0xAF,0xBF,0x8E,0x9E,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 3, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA1, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA2,0xFF,0xFF,0xB2,0xFF,0xBD,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0x96,0x97,0xFF,0xFF,0xFF, - 0x91,0x92,0x82,0xFF,0x93,0x94,0x84,0xFF, - 0x86,0x87,0x95,0xFF,0xFF,0xFF,0x85,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x89,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x8B,0x9B,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x80,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0602 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_WIN_1250 */ - -/* - * win_1250 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_win_1250 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_WIN_1250, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_WIN_1250) - (__uint16_t *)&from_ucs_speed_win_1250, /* UCS -> win_1250 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_WIN_1250) - (__uint16_t *)&to_ucs_speed_win_1250 /* win_1250 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1250) || ... */ - diff --git a/lib/iconv/ccs/win_1251.c b/lib/iconv/ccs/win_1251.c deleted file mode 100644 index 195fc0a..0000000 --- a/lib/iconv/ccs/win_1251.c +++ /dev/null @@ -1,308 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for win_1251 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_WIN_1251) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1251) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit win_1251 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_WIN_1251) - -static const __uint16_t -to_ucs_speed_win_1251[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021, - 0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F, - 0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, - INVALC,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F, - 0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7, - 0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407, - 0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7, - 0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457, - 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, - 0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, - 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, - 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, - 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, - 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, - 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, - 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F, - -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1251 */ - -/* - * 8-bit UCS -> win_1251 speed-optimized table (1538 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_WIN_1251) - -static const unsigned char -from_ucs_speed_win_1251[] = -{ - W(0x044F), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0302),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0402),W(0x0502),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA0,0xFF,0xFF,0xFF,0xA4,0xFF,0xA6,0xA7, - 0xFF,0xA9,0xFF,0xAB,0xAC,0xAD,0xAE,0xFF, - 0xB0,0xB1,0xFF,0xFF,0xFF,0xB5,0xB6,0xB7, - 0xFF,0xFF,0xFF,0xBB,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 5, Array index 0x0302 */ - 0xFF,0xA8,0x80,0x81,0xAA,0xBD,0xB2,0xAF, - 0xA3,0x8A,0x8C,0x8E,0x8D,0xFF,0xA1,0x8F, - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7, - 0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, - 0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, - 0xFF,0xB8,0x90,0x83,0xBA,0xBE,0xB3,0xBF, - 0xBC,0x9A,0x9C,0x9E,0x9D,0xFF,0xA2,0x9F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA5,0xB4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0x96,0x97,0xFF,0xFF,0xFF, - 0x91,0x92,0x82,0xFF,0x93,0x94,0x84,0xFF, - 0x86,0x87,0x95,0xFF,0xFF,0xFF,0x85,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x89,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x8B,0x9B,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x88,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB9,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_WIN_1251 */ - -/* - * win_1251 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_win_1251 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_WIN_1251, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_WIN_1251) - (__uint16_t *)&from_ucs_speed_win_1251, /* UCS -> win_1251 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_WIN_1251) - (__uint16_t *)&to_ucs_speed_win_1251 /* win_1251 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1251) || ... */ - diff --git a/lib/iconv/ccs/win_1252.c b/lib/iconv/ccs/win_1252.c deleted file mode 100644 index 463cabd..0000000 --- a/lib/iconv/ccs/win_1252.c +++ /dev/null @@ -1,341 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for win_1252 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_WIN_1252) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1252) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit win_1252 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_WIN_1252) - -static const __uint16_t -to_ucs_speed_win_1252[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x20AC,INVALC,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, - 0x02C6,0x2030,0x0160,0x2039,0x0152,INVALC,0x017D,INVALC, - INVALC,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, - 0x02DC,0x2122,0x0161,0x203A,0x0153,INVALC,0x017E,0x0178, - 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, - 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, - 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, - 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, - 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, - 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, - 0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, - 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, - 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, - 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, - 0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, - 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF, - -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1252 */ - -/* - * 8-bit UCS -> win_1252 speed-optimized table (1794 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_WIN_1252) - -static const unsigned char -from_ucs_speed_win_1252[] = -{ - W(0x00FF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(0x0402),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0502),W(0x0602),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7, - 0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, - 0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x8C,0x9C,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x8A,0x9A,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x9F,0xFF,0xFF,0xFF,0xFF,0x8E,0x9E,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x83,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 3, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x88,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x98,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0x96,0x97,0xFF,0xFF,0xFF, - 0x91,0x92,0x82,0xFF,0x93,0x94,0x84,0xFF, - 0x86,0x87,0x95,0xFF,0xFF,0xFF,0x85,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x89,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x8B,0x9B,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x80,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0602 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_WIN_1252 */ - -/* - * win_1252 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_win_1252 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_WIN_1252, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_WIN_1252) - (__uint16_t *)&from_ucs_speed_win_1252, /* UCS -> win_1252 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_WIN_1252) - (__uint16_t *)&to_ucs_speed_win_1252 /* win_1252 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1252) || ... */ - diff --git a/lib/iconv/ccs/win_1253.c b/lib/iconv/ccs/win_1253.c deleted file mode 100644 index c9abd81..0000000 --- a/lib/iconv/ccs/win_1253.c +++ /dev/null @@ -1,341 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for win_1253 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_WIN_1253) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1253) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit win_1253 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_WIN_1253) - -static const __uint16_t -to_ucs_speed_win_1253[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x20AC,INVALC,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, - INVALC,0x2030,INVALC,0x2039,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, - INVALC,0x2122,INVALC,0x203A,INVALC,INVALC,INVALC,INVALC, - 0x00A0,0x0385,0x0386,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, - 0x00A8,0x00A9,INVALC,0x00AB,0x00AC,0x00AD,0x00AE,0x2015, - 0x00B0,0x00B1,0x00B2,0x00B3,0x0384,0x00B5,0x00B6,0x00B7, - 0x0388,0x0389,0x038A,0x00BB,0x038C,0x00BD,0x038E,0x038F, - 0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, - 0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F, - 0x03A0,0x03A1,INVALC,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7, - 0x03A8,0x03A9,0x03AA,0x03AB,0x03AC,0x03AD,0x03AE,0x03AF, - 0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7, - 0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF, - 0x03C0,0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7, - 0x03C8,0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,INVALC, - -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1253 */ - -/* - * 8-bit UCS -> win_1253 speed-optimized table (1794 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_WIN_1253) - -static const unsigned char -from_ucs_speed_win_1253[] = -{ - W(0xFFFF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(INVBLK),W(0x0402), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0502),W(0x0602),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA0,0xFF,0xFF,0xA3,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xFF,0xAB,0xAC,0xAD,0xAE,0xFF, - 0xB0,0xB1,0xB2,0xB3,0xFF,0xB5,0xB6,0xB7, - 0xFF,0xFF,0xFF,0xBB,0xFF,0xBD,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x83,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 4, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xB4,0xA1,0xA2,0xFF, - 0xB8,0xB9,0xBA,0xFF,0xBC,0xFF,0xBE,0xBF, - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xD0,0xD1,0xFF,0xD3,0xD4,0xD5,0xD6,0xD7, - 0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, - 0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0x96,0x97,0xAF,0xFF,0xFF, - 0x91,0x92,0x82,0xFF,0x93,0x94,0x84,0xFF, - 0x86,0x87,0x95,0xFF,0xFF,0xFF,0x85,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x89,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x8B,0x9B,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x80,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0602 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_WIN_1253 */ - -/* - * win_1253 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_win_1253 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_WIN_1253, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_WIN_1253) - (__uint16_t *)&from_ucs_speed_win_1253, /* UCS -> win_1253 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_WIN_1253) - (__uint16_t *)&to_ucs_speed_win_1253 /* win_1253 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1253) || ... */ - diff --git a/lib/iconv/ccs/win_1254.c b/lib/iconv/ccs/win_1254.c deleted file mode 100644 index 05ed88e..0000000 --- a/lib/iconv/ccs/win_1254.c +++ /dev/null @@ -1,341 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for win_1254 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_WIN_1254) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1254) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit win_1254 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_WIN_1254) - -static const __uint16_t -to_ucs_speed_win_1254[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x20AC,INVALC,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, - 0x02C6,0x2030,0x0160,0x2039,0x0152,INVALC,INVALC,INVALC, - INVALC,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, - 0x02DC,0x2122,0x0161,0x203A,0x0153,INVALC,INVALC,0x0178, - 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, - 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, - 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, - 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, - 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, - 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, - 0x011E,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, - 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0130,0x015E,0x00DF, - 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, - 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, - 0x011F,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, - 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x0131,0x015F,0x00FF, - -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1254 */ - -/* - * 8-bit UCS -> win_1254 speed-optimized table (1794 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_WIN_1254) - -static const unsigned char -from_ucs_speed_win_1254[] = -{ - W(0x00FF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(0x0402),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0502),W(0x0602),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xFF,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7, - 0xD8,0xD9,0xDA,0xDB,0xDC,0xFF,0xFF,0xDF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xFF,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, - 0xF8,0xF9,0xFA,0xFB,0xFC,0xFF,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD0,0xF0, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xDD,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x8C,0x9C,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDE,0xFE, - 0x8A,0x9A,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x9F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x83,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 3, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x88,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x98,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0x96,0x97,0xFF,0xFF,0xFF, - 0x91,0x92,0x82,0xFF,0x93,0x94,0x84,0xFF, - 0x86,0x87,0x95,0xFF,0xFF,0xFF,0x85,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x89,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x8B,0x9B,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x80,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0602 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_WIN_1254 */ - -/* - * win_1254 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_win_1254 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_WIN_1254, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_WIN_1254) - (__uint16_t *)&from_ucs_speed_win_1254, /* UCS -> win_1254 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_WIN_1254) - (__uint16_t *)&to_ucs_speed_win_1254 /* win_1254 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1254) || ... */ - diff --git a/lib/iconv/ccs/win_1255.c b/lib/iconv/ccs/win_1255.c deleted file mode 100644 index 47e9c01..0000000 --- a/lib/iconv/ccs/win_1255.c +++ /dev/null @@ -1,374 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for win_1255 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_WIN_1255) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1255) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit win_1255 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_WIN_1255) - -static const __uint16_t -to_ucs_speed_win_1255[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x20AC,INVALC,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, - 0x02C6,0x2030,INVALC,0x2039,INVALC,INVALC,INVALC,INVALC, - INVALC,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, - 0x02DC,0x2122,INVALC,0x203A,INVALC,INVALC,INVALC,INVALC, - 0x00A0,0x00A1,0x00A2,0x00A3,0x20AA,0x00A5,0x00A6,0x00A7, - 0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, - 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, - 0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, - 0x05B0,0x05B1,0x05B2,0x05B3,0x05B4,0x05B5,0x05B6,0x05B7, - 0x05B8,0x05B9,INVALC,0x05BB,0x05BC,0x05BD,0x05BE,0x05BF, - 0x05C0,0x05C1,0x05C2,0x05C3,0x05F0,0x05F1,0x05F2,0x05F3, - 0x05F4,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC,INVALC, - 0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7, - 0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF, - 0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7, - 0x05E8,0x05E9,0x05EA,INVALC,INVALC,0x200E,0x200F,INVALC, - -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1255 */ - -/* - * 8-bit UCS -> win_1255 speed-optimized table (2050 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_WIN_1255) - -static const unsigned char -from_ucs_speed_win_1255[] = -{ - W(0xFFFF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(0x0402),W(INVBLK), - W(INVBLK),W(0x0502),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0602),W(0x0702),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA0,0xA1,0xA2,0xA3,0xFF,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xFF,0xAB,0xAC,0xAD,0xAE,0xAF, - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xB9,0xFF,0xBB,0xBC,0xBD,0xBE,0xBF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBA, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x83,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 3, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x88,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x98,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 6, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xFF,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xD0,0xD1,0xD2,0xD3,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, - 0xF8,0xF9,0xFA,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xD4,0xD5,0xD6,0xD7,0xD8,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0602 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFE, - 0xFF,0xFF,0xFF,0x96,0x97,0xFF,0xFF,0xFF, - 0x91,0x92,0x82,0xFF,0x93,0x94,0x84,0xFF, - 0x86,0x87,0x95,0xFF,0xFF,0xFF,0x85,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x89,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x8B,0x9B,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xA4,0xFF,0x80,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0702 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_WIN_1255 */ - -/* - * win_1255 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_win_1255 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_WIN_1255, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_WIN_1255) - (__uint16_t *)&from_ucs_speed_win_1255, /* UCS -> win_1255 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_WIN_1255) - (__uint16_t *)&to_ucs_speed_win_1255 /* win_1255 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1255) || ... */ - diff --git a/lib/iconv/ccs/win_1256.c b/lib/iconv/ccs/win_1256.c deleted file mode 100644 index 93a1f07..0000000 --- a/lib/iconv/ccs/win_1256.c +++ /dev/null @@ -1,374 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for win_1256 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_WIN_1256) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1256) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit win_1256 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_WIN_1256) - -static const __uint16_t -to_ucs_speed_win_1256[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x20AC,0x067E,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, - 0x02C6,0x2030,0x0679,0x2039,0x0152,0x0686,0x0698,0x0688, - 0x06AF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, - 0x06A9,0x2122,0x0691,0x203A,0x0153,0x200C,0x200D,0x06BA, - 0x00A0,0x060C,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, - 0x00A8,0x00A9,0x06BE,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, - 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, - 0x00B8,0x00B9,0x061B,0x00BB,0x00BC,0x00BD,0x00BE,0x061F, - 0x06C1,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627, - 0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F, - 0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x00D7, - 0x0637,0x0638,0x0639,0x063A,0x0640,0x0641,0x0642,0x0643, - 0x00E0,0x0644,0x00E2,0x0645,0x0646,0x0647,0x0648,0x00E7, - 0x00E8,0x00E9,0x00EA,0x00EB,0x0649,0x064A,0x00EE,0x00EF, - 0x064B,0x064C,0x064D,0x064E,0x00F4,0x064F,0x0650,0x00F7, - 0x0651,0x00F9,0x0652,0x00FB,0x00FC,0x200E,0x200F,0x06D2, - -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1256 */ - -/* - * 8-bit UCS -> win_1256 speed-optimized table (2050 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_WIN_1256) - -static const unsigned char -from_ucs_speed_win_1256[] = -{ - W(0x06D2), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(0x0402),W(INVBLK), - W(INVBLK),W(INVBLK),W(0x0502),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0602),W(0x0702),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA0,0xFF,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xFF,0xAB,0xAC,0xAD,0xAE,0xAF, - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xB9,0xFF,0xBB,0xBC,0xBD,0xBE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD7, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xE0,0xFF,0xE2,0xFF,0xFF,0xFF,0xFF,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xFF,0xFF,0xEE,0xEF, - 0xFF,0xFF,0xFF,0xFF,0xF4,0xFF,0xFF,0xF7, - 0xFF,0xF9,0xFF,0xFB,0xFC,0xFF,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x8C,0x9C,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x83,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 3, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x88,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 7, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xA1,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xBA,0xFF,0xFF,0xFF,0xBF, - 0xFF,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD8, - 0xD9,0xDA,0xDB,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xDC,0xDD,0xDE,0xDF,0xE1,0xE3,0xE4,0xE5, - 0xE6,0xEC,0xED,0xF0,0xF1,0xF2,0xF3,0xF5, - 0xF6,0xF8,0xFA,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x8A,0xFF,0xFF,0xFF,0xFF,0x81,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8D,0xFF, - 0x8F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x9A,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x8E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x98,0xFF,0xFF,0xFF,0xFF,0xFF,0x90, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x9F,0xFF,0xFF,0xFF,0xAA,0xFF, - 0xFF,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0602 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x9D,0x9E,0xFD,0xFE, - 0xFF,0xFF,0xFF,0x96,0x97,0xFF,0xFF,0xFF, - 0x91,0x92,0x82,0xFF,0x93,0x94,0x84,0xFF, - 0x86,0x87,0x95,0xFF,0xFF,0xFF,0x85,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x89,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x8B,0x9B,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x80,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0702 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_WIN_1256 */ - -/* - * win_1256 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_win_1256 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_WIN_1256, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_WIN_1256) - (__uint16_t *)&from_ucs_speed_win_1256, /* UCS -> win_1256 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_WIN_1256) - (__uint16_t *)&to_ucs_speed_win_1256 /* win_1256 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1256) || ... */ - diff --git a/lib/iconv/ccs/win_1257.c b/lib/iconv/ccs/win_1257.c deleted file mode 100644 index 4f9fa39..0000000 --- a/lib/iconv/ccs/win_1257.c +++ /dev/null @@ -1,341 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for win_1257 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_WIN_1257) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1257) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit win_1257 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_WIN_1257) - -static const __uint16_t -to_ucs_speed_win_1257[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x20AC,INVALC,0x201A,INVALC,0x201E,0x2026,0x2020,0x2021, - INVALC,0x2030,INVALC,0x2039,INVALC,0x00A8,0x02C7,0x00B8, - INVALC,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, - INVALC,0x2122,INVALC,0x203A,INVALC,0x00AF,0x02DB,INVALC, - 0x00A0,INVALC,0x00A2,0x00A3,0x00A4,INVALC,0x00A6,0x00A7, - 0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6, - 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, - 0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6, - 0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112, - 0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B, - 0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7, - 0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF, - 0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113, - 0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C, - 0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7, - 0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x02D9, - -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1257 */ - -/* - * 8-bit UCS -> win_1257 speed-optimized table (1794 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_WIN_1257) - -static const unsigned char -from_ucs_speed_win_1257[] = -{ - W(0x02D9), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(0x0402),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0502),W(0x0602),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA0,0xFF,0xA2,0xA3,0xA4,0xFF,0xA6,0xA7, - 0x8D,0xA9,0xFF,0xAB,0xAC,0xAD,0xAE,0x9D, - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, - 0x8F,0xB9,0xFF,0xBB,0xBC,0xBD,0xBE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xC4,0xC5,0xAF,0xFF, - 0xFF,0xC9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xD3,0xFF,0xD5,0xD6,0xD7, - 0xA8,0xFF,0xFF,0xFF,0xDC,0xFF,0xFF,0xDF, - 0xFF,0xFF,0xFF,0xFF,0xE4,0xE5,0xBF,0xFF, - 0xFF,0xE9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xF3,0xFF,0xF5,0xF6,0xF7, - 0xB8,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xC2,0xE2,0xFF,0xFF,0xC0,0xE0,0xC3,0xE3, - 0xFF,0xFF,0xFF,0xFF,0xC8,0xE8,0xFF,0xFF, - 0xFF,0xFF,0xC7,0xE7,0xFF,0xFF,0xCB,0xEB, - 0xC6,0xE6,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xCC,0xEC,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xCE,0xEE,0xFF,0xFF,0xC1,0xE1, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCD,0xED, - 0xFF,0xFF,0xFF,0xCF,0xEF,0xFF,0xFF,0xFF, - 0xFF,0xD9,0xF9,0xD1,0xF1,0xD2,0xF2,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xD4,0xF4,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xBA, - 0xFF,0xFF,0xDA,0xFA,0xFF,0xFF,0xFF,0xFF, - 0xD0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xDB,0xFB,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xD8,0xF8,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xCA,0xEA,0xDD,0xFD,0xDE,0xFE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 3, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8E, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0x9E,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0502 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0x96,0x97,0xFF,0xFF,0xFF, - 0x91,0x92,0x82,0xFF,0x93,0x94,0x84,0xFF, - 0x86,0x87,0x95,0xFF,0xFF,0xFF,0x85,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x89,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x8B,0x9B,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x80,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0602 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_WIN_1257 */ - -/* - * win_1257 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_win_1257 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_WIN_1257, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_WIN_1257) - (__uint16_t *)&from_ucs_speed_win_1257, /* UCS -> win_1257 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_WIN_1257) - (__uint16_t *)&to_ucs_speed_win_1257 /* win_1257 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1257) || ... */ - diff --git a/lib/iconv/ccs/win_1258.c b/lib/iconv/ccs/win_1258.c deleted file mode 100644 index 42ec247..0000000 --- a/lib/iconv/ccs/win_1258.c +++ /dev/null @@ -1,374 +0,0 @@ -/* - * This file was generated automatically - don't edit it. - * File contains iconv CCS tables for win_1258 encoding. - */ - -#include "ccsbi.h" - -#if defined (ICONV_TO_UCS_CCS_WIN_1258) \ - || defined (ICONV_FROM_UCS_CCS_WIN_1258) - -#include <_ansi.h> -#include -#include -#include "ccs.h" -#include "ccsnames.h" - -#if (BYTE_ORDER == LITTLE_ENDIAN) -# define W(word) (word) & 0xFF, (word) >> 8 -#elif (BYTE_ORDER == BIG_ENDIAN) -# define W(word) (word) >> 8, (word) & 0xFF -#else -# error "Unknown byte order." -#endif - -/* - * 8-bit win_1258 -> UCS table (512 bytes). - * ====================================================================== - */ -#if defined (ICONV_TO_UCS_CCS_WIN_1258) - -static const __uint16_t -to_ucs_speed_win_1258[] = -{ - 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, - 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, - 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, - 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, - 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, - 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, - 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, - 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, - 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, - 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, - 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, - 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, - 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, - 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, - 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, - 0x20AC,INVALC,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, - 0x02C6,0x2030,INVALC,0x2039,0x0152,INVALC,INVALC,INVALC, - INVALC,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, - 0x02DC,0x2122,INVALC,0x203A,0x0153,INVALC,INVALC,0x0178, - 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, - 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, - 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, - 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, - 0x00C0,0x00C1,0x00C2,0x0102,0x00C4,0x00C5,0x00C6,0x00C7, - 0x00C8,0x00C9,0x00CA,0x00CB,0x0300,0x00CD,0x00CE,0x00CF, - 0x0110,0x00D1,0x0309,0x00D3,0x00D4,0x01A0,0x00D6,0x00D7, - 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x01AF,0x0303,0x00DF, - 0x00E0,0x00E1,0x00E2,0x0103,0x00E4,0x00E5,0x00E6,0x00E7, - 0x00E8,0x00E9,0x00EA,0x00EB,0x0301,0x00ED,0x00EE,0x00EF, - 0x0111,0x00F1,0x0323,0x00F3,0x00F4,0x01A1,0x00F6,0x00F7, - 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x01B0,0x20AB,0x00FF, - -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1258 */ - -/* - * 8-bit UCS -> win_1258 speed-optimized table (2050 bytes). - * ====================================================================== - */ - -#if defined (ICONV_FROM_UCS_CCS_WIN_1258) - -static const unsigned char -from_ucs_speed_win_1258[] = -{ - W(0x00FF), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ - /* Heading Block */ - W(0x0202),W(0x0302),W(0x0402),W(0x0502), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(0x0602),W(0x0702),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), - /* Block 1, Array index 0x0202 */ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, - 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, - 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, - 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, - 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, - 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, - 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, - 0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, - 0xC0,0xC1,0xC2,0xFF,0xC4,0xC5,0xC6,0xC7, - 0xC8,0xC9,0xCA,0xCB,0xFF,0xCD,0xCE,0xCF, - 0xFF,0xD1,0xFF,0xD3,0xD4,0xFF,0xD6,0xD7, - 0xD8,0xD9,0xDA,0xDB,0xDC,0xFF,0xFF,0xDF, - 0xE0,0xE1,0xE2,0xFF,0xE4,0xE5,0xE6,0xE7, - 0xE8,0xE9,0xEA,0xEB,0xFF,0xED,0xEE,0xEF, - 0xFF,0xF1,0xFF,0xF3,0xF4,0xFF,0xF6,0xF7, - 0xF8,0xF9,0xFA,0xFB,0xFC,0xFF,0xFF,0xFF, - /* Block 2, Array index 0x0302 */ - 0xFF,0xFF,0xC3,0xE3,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xD0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x8C,0x9C,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x9F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x83,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xD5,0xF5,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDD, - 0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 3, Array index 0x0402 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x88,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x98,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 4, Array index 0x0502 */ - 0xCC,0xEC,0xFF,0xDE,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xD2,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xF2,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 33, Array index 0x0602 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0x96,0x97,0xFF,0xFF,0xFF, - 0x91,0x92,0x82,0xFF,0x93,0x94,0x84,0xFF, - 0x86,0x87,0x95,0xFF,0xFF,0xFF,0x85,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x89,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x8B,0x9B,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFE,0x80,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - /* Block 34, Array index 0x0702 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -#endif /* ICONV_FROM_UCS_CCS_WIN_1258 */ - -/* - * win_1258 CCS description table. - * ====================================================================== - */ -const iconv_ccs_t -_iconv_ccs_win_1258 = -{ - TABLE_VERSION_1, /* Table version */ - ICONV_CCS_WIN_1258, /* CCS name */ - TABLE_8BIT, /* Table bits */ - 0, /* Not Used */ -#if defined (ICONV_FROM_UCS_CCS_WIN_1258) - (__uint16_t *)&from_ucs_speed_win_1258, /* UCS -> win_1258 table */ -#else - (__uint16_t *)NULL, -#endif - 0, /* Not Used */ -#if defined (ICONV_TO_UCS_CCS_WIN_1258) - (__uint16_t *)&to_ucs_speed_win_1258 /* win_1258 -> UCS table */ -#else - (__uint16_t *)NULL, -#endif -}; - -#endif /* ICONV_TO_UCS_CCS_WIN_1258) || ... */ - diff --git a/lib/iconv/ces/Makefile.inc b/lib/iconv/ces/Makefile.inc deleted file mode 100644 index 883c72c..0000000 --- a/lib/iconv/ces/Makefile.inc +++ /dev/null @@ -1,19 +0,0 @@ -if ENABLE_NEWLIB_ICONV - -## The following interfaces are EL/IX level 2 -if !ELIX_LEVEL_1 -libc_a_SOURCES += \ - %D%/utf-8.c \ - %D%/utf-16.c \ - %D%/ucs-2.c \ - %D%/us-ascii.c \ - %D%/ucs-4.c \ - %D%/ucs-2-internal.c \ - %D%/ucs-4-internal.c \ - %D%/cesbi.c \ - %D%/table.c \ - %D%/table-pcs.c \ - %D%/euc.c -endif - -endif diff --git a/lib/iconv/ces/cesbi.c b/lib/iconv/ces/cesbi.c deleted file mode 100644 index 5fa5d1b..0000000 --- a/lib/iconv/ces/cesbi.c +++ /dev/null @@ -1,401 +0,0 @@ -/* - * This file was automatically generated mkdeps.pl script. Don't edit. - */ - -#include <_ansi.h> -#include -#include "../lib/ucsconv.h" -#include "cesbi.h" - -/* - * Each CES converter provides the list of supported encodings. - */ -#if defined (ICONV_TO_UCS_CES_EUC) \ - || defined (ICONV_FROM_UCS_CES_EUC) -static const char * -iconv_ces_names_euc[] = -{ -# if defined (_ICONV_FROM_ENCODING_EUC_JP) \ - || defined (_ICONV_TO_ENCODING_EUC_JP) - ICONV_ENCODING_EUC_JP, -#endif -# if defined (_ICONV_FROM_ENCODING_EUC_KR) \ - || defined (_ICONV_TO_ENCODING_EUC_KR) - ICONV_ENCODING_EUC_KR, -#endif -# if defined (_ICONV_FROM_ENCODING_EUC_TW) \ - || defined (_ICONV_TO_ENCODING_EUC_TW) - ICONV_ENCODING_EUC_TW, -#endif - NULL -}; -#endif - -#if defined (ICONV_TO_UCS_CES_TABLE) \ - || defined (ICONV_FROM_UCS_CES_TABLE) -static const char * -iconv_ces_names_table[] = -{ -# if defined (_ICONV_FROM_ENCODING_CP775) \ - || defined (_ICONV_TO_ENCODING_CP775) - ICONV_ENCODING_CP775, -#endif -# if defined (_ICONV_FROM_ENCODING_CP850) \ - || defined (_ICONV_TO_ENCODING_CP850) - ICONV_ENCODING_CP850, -#endif -# if defined (_ICONV_FROM_ENCODING_CP852) \ - || defined (_ICONV_TO_ENCODING_CP852) - ICONV_ENCODING_CP852, -#endif -# if defined (_ICONV_FROM_ENCODING_CP855) \ - || defined (_ICONV_TO_ENCODING_CP855) - ICONV_ENCODING_CP855, -#endif -# if defined (_ICONV_FROM_ENCODING_CP866) \ - || defined (_ICONV_TO_ENCODING_CP866) - ICONV_ENCODING_CP866, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_1) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_1) - ICONV_ENCODING_ISO_8859_1, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_10) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_10) - ICONV_ENCODING_ISO_8859_10, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_11) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_11) - ICONV_ENCODING_ISO_8859_11, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_13) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_13) - ICONV_ENCODING_ISO_8859_13, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_14) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_14) - ICONV_ENCODING_ISO_8859_14, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_15) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_15) - ICONV_ENCODING_ISO_8859_15, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_2) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_2) - ICONV_ENCODING_ISO_8859_2, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_3) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_3) - ICONV_ENCODING_ISO_8859_3, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_4) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_4) - ICONV_ENCODING_ISO_8859_4, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_5) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_5) - ICONV_ENCODING_ISO_8859_5, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_6) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_6) - ICONV_ENCODING_ISO_8859_6, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_7) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_7) - ICONV_ENCODING_ISO_8859_7, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_8) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_8) - ICONV_ENCODING_ISO_8859_8, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_8859_9) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_9) - ICONV_ENCODING_ISO_8859_9, -#endif -# if defined (_ICONV_FROM_ENCODING_ISO_IR_111) \ - || defined (_ICONV_TO_ENCODING_ISO_IR_111) - ICONV_ENCODING_ISO_IR_111, -#endif -# if defined (_ICONV_FROM_ENCODING_KOI8_R) \ - || defined (_ICONV_TO_ENCODING_KOI8_R) - ICONV_ENCODING_KOI8_R, -#endif -# if defined (_ICONV_FROM_ENCODING_KOI8_RU) \ - || defined (_ICONV_TO_ENCODING_KOI8_RU) - ICONV_ENCODING_KOI8_RU, -#endif -# if defined (_ICONV_FROM_ENCODING_KOI8_U) \ - || defined (_ICONV_TO_ENCODING_KOI8_U) - ICONV_ENCODING_KOI8_U, -#endif -# if defined (_ICONV_FROM_ENCODING_KOI8_UNI) \ - || defined (_ICONV_TO_ENCODING_KOI8_UNI) - ICONV_ENCODING_KOI8_UNI, -#endif -# if defined (_ICONV_FROM_ENCODING_WIN_1250) \ - || defined (_ICONV_TO_ENCODING_WIN_1250) - ICONV_ENCODING_WIN_1250, -#endif -# if defined (_ICONV_FROM_ENCODING_WIN_1251) \ - || defined (_ICONV_TO_ENCODING_WIN_1251) - ICONV_ENCODING_WIN_1251, -#endif -# if defined (_ICONV_FROM_ENCODING_WIN_1252) \ - || defined (_ICONV_TO_ENCODING_WIN_1252) - ICONV_ENCODING_WIN_1252, -#endif -# if defined (_ICONV_FROM_ENCODING_WIN_1253) \ - || defined (_ICONV_TO_ENCODING_WIN_1253) - ICONV_ENCODING_WIN_1253, -#endif -# if defined (_ICONV_FROM_ENCODING_WIN_1254) \ - || defined (_ICONV_TO_ENCODING_WIN_1254) - ICONV_ENCODING_WIN_1254, -#endif -# if defined (_ICONV_FROM_ENCODING_WIN_1255) \ - || defined (_ICONV_TO_ENCODING_WIN_1255) - ICONV_ENCODING_WIN_1255, -#endif -# if defined (_ICONV_FROM_ENCODING_WIN_1256) \ - || defined (_ICONV_TO_ENCODING_WIN_1256) - ICONV_ENCODING_WIN_1256, -#endif -# if defined (_ICONV_FROM_ENCODING_WIN_1257) \ - || defined (_ICONV_TO_ENCODING_WIN_1257) - ICONV_ENCODING_WIN_1257, -#endif -# if defined (_ICONV_FROM_ENCODING_WIN_1258) \ - || defined (_ICONV_TO_ENCODING_WIN_1258) - ICONV_ENCODING_WIN_1258, -#endif - NULL -}; -#endif - -#if defined (ICONV_TO_UCS_CES_TABLE_PCS) \ - || defined (ICONV_FROM_UCS_CES_TABLE_PCS) -static const char * -iconv_ces_names_table_pcs[] = -{ -# if defined (_ICONV_FROM_ENCODING_BIG5) \ - || defined (_ICONV_TO_ENCODING_BIG5) - ICONV_ENCODING_BIG5, -#endif - NULL -}; -#endif - -#if defined (ICONV_TO_UCS_CES_UCS_2) \ - || defined (ICONV_FROM_UCS_CES_UCS_2) -static const char * -iconv_ces_names_ucs_2[] = -{ -# if defined (_ICONV_FROM_ENCODING_UCS_2) \ - || defined (_ICONV_TO_ENCODING_UCS_2) - ICONV_ENCODING_UCS_2, -#endif -# if defined (_ICONV_FROM_ENCODING_UCS_2BE) \ - || defined (_ICONV_TO_ENCODING_UCS_2BE) - ICONV_ENCODING_UCS_2BE, -#endif -# if defined (_ICONV_FROM_ENCODING_UCS_2LE) \ - || defined (_ICONV_TO_ENCODING_UCS_2LE) - ICONV_ENCODING_UCS_2LE, -#endif - NULL -}; -#endif - -#if defined (ICONV_TO_UCS_CES_UCS_2_INTERNAL) \ - || defined (ICONV_FROM_UCS_CES_UCS_2_INTERNAL) -static const char * -iconv_ces_names_ucs_2_internal[] = -{ -# if defined (_ICONV_FROM_ENCODING_UCS_2_INTERNAL) \ - || defined (_ICONV_TO_ENCODING_UCS_2_INTERNAL) - ICONV_ENCODING_UCS_2_INTERNAL, -#endif - NULL -}; -#endif - -#if defined (ICONV_TO_UCS_CES_UCS_4) \ - || defined (ICONV_FROM_UCS_CES_UCS_4) -static const char * -iconv_ces_names_ucs_4[] = -{ -# if defined (_ICONV_FROM_ENCODING_UCS_4) \ - || defined (_ICONV_TO_ENCODING_UCS_4) - ICONV_ENCODING_UCS_4, -#endif -# if defined (_ICONV_FROM_ENCODING_UCS_4BE) \ - || defined (_ICONV_TO_ENCODING_UCS_4BE) - ICONV_ENCODING_UCS_4BE, -#endif -# if defined (_ICONV_FROM_ENCODING_UCS_4LE) \ - || defined (_ICONV_TO_ENCODING_UCS_4LE) - ICONV_ENCODING_UCS_4LE, -#endif - NULL -}; -#endif - -#if defined (ICONV_TO_UCS_CES_UCS_4_INTERNAL) \ - || defined (ICONV_FROM_UCS_CES_UCS_4_INTERNAL) -static const char * -iconv_ces_names_ucs_4_internal[] = -{ -# if defined (_ICONV_FROM_ENCODING_UCS_4_INTERNAL) \ - || defined (_ICONV_TO_ENCODING_UCS_4_INTERNAL) - ICONV_ENCODING_UCS_4_INTERNAL, -#endif - NULL -}; -#endif - -#if defined (ICONV_TO_UCS_CES_US_ASCII) \ - || defined (ICONV_FROM_UCS_CES_US_ASCII) -static const char * -iconv_ces_names_us_ascii[] = -{ -# if defined (_ICONV_FROM_ENCODING_US_ASCII) \ - || defined (_ICONV_TO_ENCODING_US_ASCII) - ICONV_ENCODING_US_ASCII, -#endif - NULL -}; -#endif - -#if defined (ICONV_TO_UCS_CES_UTF_16) \ - || defined (ICONV_FROM_UCS_CES_UTF_16) -static const char * -iconv_ces_names_utf_16[] = -{ -# if defined (_ICONV_FROM_ENCODING_UTF_16) \ - || defined (_ICONV_TO_ENCODING_UTF_16) - ICONV_ENCODING_UTF_16, -#endif -# if defined (_ICONV_FROM_ENCODING_UTF_16BE) \ - || defined (_ICONV_TO_ENCODING_UTF_16BE) - ICONV_ENCODING_UTF_16BE, -#endif -# if defined (_ICONV_FROM_ENCODING_UTF_16LE) \ - || defined (_ICONV_TO_ENCODING_UTF_16LE) - ICONV_ENCODING_UTF_16LE, -#endif - NULL -}; -#endif - -#if defined (ICONV_TO_UCS_CES_UTF_8) \ - || defined (ICONV_FROM_UCS_CES_UTF_8) -static const char * -iconv_ces_names_utf_8[] = -{ -# if defined (_ICONV_FROM_ENCODING_UTF_8) \ - || defined (_ICONV_TO_ENCODING_UTF_8) - ICONV_ENCODING_UTF_8, -#endif - NULL -}; -#endif - -/* - * The following structure contains the list of "to UCS" linked-in CES converters. - */ -const iconv_to_ucs_ces_t -_iconv_to_ucs_ces[] = -{ -#ifdef ICONV_TO_UCS_CES_EUC - {(const char **)iconv_ces_names_euc, - &_iconv_to_ucs_ces_handlers_euc}, -#endif -#ifdef ICONV_TO_UCS_CES_TABLE - {(const char **)iconv_ces_names_table, - &_iconv_to_ucs_ces_handlers_table}, -#endif -#ifdef ICONV_TO_UCS_CES_TABLE_PCS - {(const char **)iconv_ces_names_table_pcs, - &_iconv_to_ucs_ces_handlers_table_pcs}, -#endif -#ifdef ICONV_TO_UCS_CES_UCS_2 - {(const char **)iconv_ces_names_ucs_2, - &_iconv_to_ucs_ces_handlers_ucs_2}, -#endif -#ifdef ICONV_TO_UCS_CES_UCS_2_INTERNAL - {(const char **)iconv_ces_names_ucs_2_internal, - &_iconv_to_ucs_ces_handlers_ucs_2_internal}, -#endif -#ifdef ICONV_TO_UCS_CES_UCS_4 - {(const char **)iconv_ces_names_ucs_4, - &_iconv_to_ucs_ces_handlers_ucs_4}, -#endif -#ifdef ICONV_TO_UCS_CES_UCS_4_INTERNAL - {(const char **)iconv_ces_names_ucs_4_internal, - &_iconv_to_ucs_ces_handlers_ucs_4_internal}, -#endif -#ifdef ICONV_TO_UCS_CES_US_ASCII - {(const char **)iconv_ces_names_us_ascii, - &_iconv_to_ucs_ces_handlers_us_ascii}, -#endif -#ifdef ICONV_TO_UCS_CES_UTF_16 - {(const char **)iconv_ces_names_utf_16, - &_iconv_to_ucs_ces_handlers_utf_16}, -#endif -#ifdef ICONV_TO_UCS_CES_UTF_8 - {(const char **)iconv_ces_names_utf_8, - &_iconv_to_ucs_ces_handlers_utf_8}, -#endif - {(const char **)NULL, - (iconv_to_ucs_ces_handlers_t *)NULL} -}; - -/* - * The following structure contains the list of "from UCS" linked-in CES converters. - */ -const iconv_from_ucs_ces_t -_iconv_from_ucs_ces[] = -{ -#ifdef ICONV_FROM_UCS_CES_EUC - {(const char **)iconv_ces_names_euc, - &_iconv_from_ucs_ces_handlers_euc}, -#endif -#ifdef ICONV_FROM_UCS_CES_TABLE - {(const char **)iconv_ces_names_table, - &_iconv_from_ucs_ces_handlers_table}, -#endif -#ifdef ICONV_FROM_UCS_CES_TABLE_PCS - {(const char **)iconv_ces_names_table_pcs, - &_iconv_from_ucs_ces_handlers_table_pcs}, -#endif -#ifdef ICONV_FROM_UCS_CES_UCS_2 - {(const char **)iconv_ces_names_ucs_2, - &_iconv_from_ucs_ces_handlers_ucs_2}, -#endif -#ifdef ICONV_FROM_UCS_CES_UCS_2_INTERNAL - {(const char **)iconv_ces_names_ucs_2_internal, - &_iconv_from_ucs_ces_handlers_ucs_2_internal}, -#endif -#ifdef ICONV_FROM_UCS_CES_UCS_4 - {(const char **)iconv_ces_names_ucs_4, - &_iconv_from_ucs_ces_handlers_ucs_4}, -#endif -#ifdef ICONV_FROM_UCS_CES_UCS_4_INTERNAL - {(const char **)iconv_ces_names_ucs_4_internal, - &_iconv_from_ucs_ces_handlers_ucs_4_internal}, -#endif -#ifdef ICONV_FROM_UCS_CES_US_ASCII - {(const char **)iconv_ces_names_us_ascii, - &_iconv_from_ucs_ces_handlers_us_ascii}, -#endif -#ifdef ICONV_FROM_UCS_CES_UTF_16 - {(const char **)iconv_ces_names_utf_16, - &_iconv_from_ucs_ces_handlers_utf_16}, -#endif -#ifdef ICONV_FROM_UCS_CES_UTF_8 - {(const char **)iconv_ces_names_utf_8, - &_iconv_from_ucs_ces_handlers_utf_8}, -#endif - {(const char **)NULL, - (iconv_from_ucs_ces_handlers_t *)NULL} -}; diff --git a/lib/iconv/ces/cesbi.h b/lib/iconv/ces/cesbi.h deleted file mode 100644 index 2b157c2..0000000 --- a/lib/iconv/ces/cesbi.h +++ /dev/null @@ -1,276 +0,0 @@ -/* - * This file was automatically generated mkdeps.pl script. Don't edit. - */ - -#ifndef __CESBI_H__ -#define __CESBI_H__ - -#include -#include <_ansi.h> -#include "../lib/encnames.h" -#include "../lib/ucsconv.h" - -/* - * Enable CES converter if correspondent encoding is requested. - * Defining ICONV_TO_UCS_CES_XXX macro or ICONV_FROM_UCS_CES_XXX - * macro is needed to enable "XXX encoding -> UCS" or "UCS -> XXX encoding" - * part of UCS-based CES converter. - */ -#if defined (_ICONV_FROM_ENCODING_EUC_JP) \ - || defined (_ICONV_FROM_ENCODING_EUC_KR) \ - || defined (_ICONV_FROM_ENCODING_EUC_TW) -# define ICONV_TO_UCS_CES_EUC -#endif -#if defined (_ICONV_TO_ENCODING_EUC_JP) \ - || defined (_ICONV_TO_ENCODING_EUC_KR) \ - || defined (_ICONV_TO_ENCODING_EUC_TW) -# define ICONV_FROM_UCS_CES_EUC -#endif - -#if defined (_ICONV_FROM_ENCODING_CP775) \ - || defined (_ICONV_FROM_ENCODING_CP850) \ - || defined (_ICONV_FROM_ENCODING_CP852) \ - || defined (_ICONV_FROM_ENCODING_CP855) \ - || defined (_ICONV_FROM_ENCODING_CP866) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_1) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_10) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_11) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_13) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_14) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_15) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_2) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_3) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_4) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_5) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_6) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_7) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_8) \ - || defined (_ICONV_FROM_ENCODING_ISO_8859_9) \ - || defined (_ICONV_FROM_ENCODING_ISO_IR_111) \ - || defined (_ICONV_FROM_ENCODING_KOI8_R) \ - || defined (_ICONV_FROM_ENCODING_KOI8_RU) \ - || defined (_ICONV_FROM_ENCODING_KOI8_U) \ - || defined (_ICONV_FROM_ENCODING_KOI8_UNI) \ - || defined (_ICONV_FROM_ENCODING_WIN_1250) \ - || defined (_ICONV_FROM_ENCODING_WIN_1251) \ - || defined (_ICONV_FROM_ENCODING_WIN_1252) \ - || defined (_ICONV_FROM_ENCODING_WIN_1253) \ - || defined (_ICONV_FROM_ENCODING_WIN_1254) \ - || defined (_ICONV_FROM_ENCODING_WIN_1255) \ - || defined (_ICONV_FROM_ENCODING_WIN_1256) \ - || defined (_ICONV_FROM_ENCODING_WIN_1257) \ - || defined (_ICONV_FROM_ENCODING_WIN_1258) -# define ICONV_TO_UCS_CES_TABLE -#endif -#if defined (_ICONV_TO_ENCODING_CP775) \ - || defined (_ICONV_TO_ENCODING_CP850) \ - || defined (_ICONV_TO_ENCODING_CP852) \ - || defined (_ICONV_TO_ENCODING_CP855) \ - || defined (_ICONV_TO_ENCODING_CP866) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_1) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_10) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_11) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_13) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_14) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_15) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_2) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_3) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_4) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_5) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_6) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_7) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_8) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_9) \ - || defined (_ICONV_TO_ENCODING_ISO_IR_111) \ - || defined (_ICONV_TO_ENCODING_KOI8_R) \ - || defined (_ICONV_TO_ENCODING_KOI8_RU) \ - || defined (_ICONV_TO_ENCODING_KOI8_U) \ - || defined (_ICONV_TO_ENCODING_KOI8_UNI) \ - || defined (_ICONV_TO_ENCODING_WIN_1250) \ - || defined (_ICONV_TO_ENCODING_WIN_1251) \ - || defined (_ICONV_TO_ENCODING_WIN_1252) \ - || defined (_ICONV_TO_ENCODING_WIN_1253) \ - || defined (_ICONV_TO_ENCODING_WIN_1254) \ - || defined (_ICONV_TO_ENCODING_WIN_1255) \ - || defined (_ICONV_TO_ENCODING_WIN_1256) \ - || defined (_ICONV_TO_ENCODING_WIN_1257) \ - || defined (_ICONV_TO_ENCODING_WIN_1258) -# define ICONV_FROM_UCS_CES_TABLE -#endif - -#if defined (_ICONV_FROM_ENCODING_BIG5) -# define ICONV_TO_UCS_CES_TABLE_PCS -#endif -#if defined (_ICONV_TO_ENCODING_BIG5) -# define ICONV_FROM_UCS_CES_TABLE_PCS -#endif - -#if defined (_ICONV_FROM_ENCODING_UCS_2) \ - || defined (_ICONV_FROM_ENCODING_UCS_2BE) \ - || defined (_ICONV_FROM_ENCODING_UCS_2LE) -# define ICONV_TO_UCS_CES_UCS_2 -#endif -#if defined (_ICONV_TO_ENCODING_UCS_2) \ - || defined (_ICONV_TO_ENCODING_UCS_2BE) \ - || defined (_ICONV_TO_ENCODING_UCS_2LE) -# define ICONV_FROM_UCS_CES_UCS_2 -#endif - -#if defined (_ICONV_FROM_ENCODING_UCS_2_INTERNAL) -# define ICONV_TO_UCS_CES_UCS_2_INTERNAL -#endif -#if defined (_ICONV_TO_ENCODING_UCS_2_INTERNAL) -# define ICONV_FROM_UCS_CES_UCS_2_INTERNAL -#endif - -#if defined (_ICONV_FROM_ENCODING_UCS_4) \ - || defined (_ICONV_FROM_ENCODING_UCS_4BE) \ - || defined (_ICONV_FROM_ENCODING_UCS_4LE) -# define ICONV_TO_UCS_CES_UCS_4 -#endif -#if defined (_ICONV_TO_ENCODING_UCS_4) \ - || defined (_ICONV_TO_ENCODING_UCS_4BE) \ - || defined (_ICONV_TO_ENCODING_UCS_4LE) -# define ICONV_FROM_UCS_CES_UCS_4 -#endif - -#if defined (_ICONV_FROM_ENCODING_UCS_4_INTERNAL) -# define ICONV_TO_UCS_CES_UCS_4_INTERNAL -#endif -#if defined (_ICONV_TO_ENCODING_UCS_4_INTERNAL) -# define ICONV_FROM_UCS_CES_UCS_4_INTERNAL -#endif - -#if defined (_ICONV_FROM_ENCODING_US_ASCII) -# define ICONV_TO_UCS_CES_US_ASCII -#endif -#if defined (_ICONV_TO_ENCODING_US_ASCII) -# define ICONV_FROM_UCS_CES_US_ASCII -#endif - -#if defined (_ICONV_FROM_ENCODING_UTF_16) \ - || defined (_ICONV_FROM_ENCODING_UTF_16BE) \ - || defined (_ICONV_FROM_ENCODING_UTF_16LE) -# define ICONV_TO_UCS_CES_UTF_16 -#endif -#if defined (_ICONV_TO_ENCODING_UTF_16) \ - || defined (_ICONV_TO_ENCODING_UTF_16BE) \ - || defined (_ICONV_TO_ENCODING_UTF_16LE) -# define ICONV_FROM_UCS_CES_UTF_16 -#endif - -#if defined (_ICONV_FROM_ENCODING_UTF_8) -# define ICONV_TO_UCS_CES_UTF_8 -#endif -#if defined (_ICONV_TO_ENCODING_UTF_8) -# define ICONV_FROM_UCS_CES_UTF_8 -#endif - -/* - * Some encodings require another encodings to be enabled. - * These dependencies are handled in cesdeps.h header file. - */ -#include "cesdeps.h" - -/* - * NLS uses iconv's capabilities and require one of encodings - * to be enabled for internal wchar_t representation. - */ -#include "../lib/iconvnls.h" - -/* - * Forward declarations of CES converter handlers. - * These handlers are actually defined in correspondent CES converter files. - */ -#ifdef ICONV_TO_UCS_CES_EUC -extern const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_euc; -#endif -#ifdef ICONV_FROM_UCS_CES_EUC -extern const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_euc; -#endif - -#ifdef ICONV_TO_UCS_CES_TABLE -extern const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_table; -#endif -#ifdef ICONV_FROM_UCS_CES_TABLE -extern const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_table; -#endif - -#ifdef ICONV_TO_UCS_CES_TABLE_PCS -extern const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_table_pcs; -#endif -#ifdef ICONV_FROM_UCS_CES_TABLE_PCS -extern const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_table_pcs; -#endif - -#ifdef ICONV_TO_UCS_CES_UCS_2 -extern const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_ucs_2; -#endif -#ifdef ICONV_FROM_UCS_CES_UCS_2 -extern const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_ucs_2; -#endif - -#ifdef ICONV_TO_UCS_CES_UCS_2_INTERNAL -extern const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_ucs_2_internal; -#endif -#ifdef ICONV_FROM_UCS_CES_UCS_2_INTERNAL -extern const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_ucs_2_internal; -#endif - -#ifdef ICONV_TO_UCS_CES_UCS_4 -extern const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_ucs_4; -#endif -#ifdef ICONV_FROM_UCS_CES_UCS_4 -extern const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_ucs_4; -#endif - -#ifdef ICONV_TO_UCS_CES_UCS_4_INTERNAL -extern const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_ucs_4_internal; -#endif -#ifdef ICONV_FROM_UCS_CES_UCS_4_INTERNAL -extern const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_ucs_4_internal; -#endif - -#ifdef ICONV_TO_UCS_CES_US_ASCII -extern const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_us_ascii; -#endif -#ifdef ICONV_FROM_UCS_CES_US_ASCII -extern const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_us_ascii; -#endif - -#ifdef ICONV_TO_UCS_CES_UTF_16 -extern const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_utf_16; -#endif -#ifdef ICONV_FROM_UCS_CES_UTF_16 -extern const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_utf_16; -#endif - -#ifdef ICONV_TO_UCS_CES_UTF_8 -extern const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_utf_8; -#endif -#ifdef ICONV_FROM_UCS_CES_UTF_8 -extern const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_utf_8; -#endif - -#endif /* !__CESBI_H__ */ - diff --git a/lib/iconv/ces/cesdeps.h b/lib/iconv/ces/cesdeps.h deleted file mode 100644 index e6aec45..0000000 --- a/lib/iconv/ces/cesdeps.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * This file was automatically generated mkdeps.pl script. Don't edit. - */ - -#ifndef __CESDEPS_H__ -#define __CESDEPS_H__ - -/* - * Some CES converters use another CES converters and the following - * is such dependencies description. - */ -#ifdef ICONV_TO_UCS_CES_EUC -# ifndef ICONV_TO_UCS_CES_TABLE -# define ICONV_TO_UCS_CES_TABLE -# endif -# ifndef ICONV_TO_UCS_CES_US_ASCII -# define ICONV_TO_UCS_CES_US_ASCII -# endif -#endif -#ifdef ICONV_FROM_UCS_CES_EUC -# ifndef ICONV_FROM_UCS_CES_TABLE -# define ICONV_FROM_UCS_CES_TABLE -# endif -# ifndef ICONV_FROM_UCS_CES_US_ASCII -# define ICONV_FROM_UCS_CES_US_ASCII -# endif -#endif -#ifdef ICONV_TO_UCS_CES_TABLE_PCS -# ifndef ICONV_TO_UCS_CES_TABLE -# define ICONV_TO_UCS_CES_TABLE -# endif -#endif -#ifdef ICONV_FROM_UCS_CES_TABLE_PCS -# ifndef ICONV_FROM_UCS_CES_TABLE -# define ICONV_FROM_UCS_CES_TABLE -# endif -#endif - -#endif /* !__CESDEPS_H__ */ - diff --git a/lib/iconv/ces/euc.c b/lib/iconv/ces/euc.c deleted file mode 100644 index ebd7091..0000000 --- a/lib/iconv/ces/euc.c +++ /dev/null @@ -1,464 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include "cesbi.h" - -#if defined (ICONV_TO_UCS_CES_EUC) \ - || defined (ICONV_FROM_UCS_CES_EUC) - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include "../lib/local.h" -#include "../lib/ucsconv.h" -#include "../lib/encnames.h" -#include "../ccs/ccsnames.h" - -#define TYPE_EUC_JP 0 -#define TYPE_EUC_KR 1 -#define TYPE_EUC_TW 2 - -#define MAX_CS_NUM 3 - -/* CS description structure */ -typedef struct -{ - char *csname; - char *prefix; - int bytes; - int prefixbytes; - int touchmsb; /* If 1, msb will be set by euc converter */ -} euc_cs_desc_t; - -typedef struct -{ - int type; - int mb_cur_max; - euc_cs_desc_t *desc; - - void *data[MAX_CS_NUM]; -} euc_data_t; - -#if defined (_ICONV_TO_ENCODING_EUC_JP) \ - || defined (_ICONV_FROM_ENCODING_EUC_JP) \ - || defined (_ICONV_ENABLE_EXTERNAL_CCS) -static euc_cs_desc_t euc_jp_cs_desc[] = -{ - {ICONV_CCS_JIS_X0208_1990, "", 2, 0, 1}, - {ICONV_CCS_JIS_X0201_1976, "\x8e", 1, 1, 0}, - {ICONV_CCS_JIS_X0212_1990, "\x8f", 2, 1, 1}, - {NULL, NULL, 0, 0} -}; -#endif - -#if defined (_ICONV_TO_ENCODING_EUC_TW) \ - || defined (_ICONV_FROM_ENCODING_EUC_TW) \ - || defined (_ICONV_ENABLE_EXTERNAL_CCS) -static euc_cs_desc_t euc_tw_cs_desc [] = -{ - {ICONV_CCS_CNS11643_PLANE1, "", 2, 0, 1}, - {ICONV_CCS_CNS11643_PLANE2, "\x8e\xa2", 2, 2, 1}, - {ICONV_CCS_CNS11643_PLANE14, "\x8e\xae", 2, 2, 1}, - {NULL, NULL, 0, 0} -}; -#endif - -#if defined (_ICONV_TO_ENCODING_EUC_KR) \ - || defined (_ICONV_FROM_ENCODING_EUC_KR) \ - || defined (_ICONV_ENABLE_EXTERNAL_CCS) -static euc_cs_desc_t euc_kr_cs_desc [] = -{ - {ICONV_CCS_KSX1001, "", 2, 0, 1}, - {NULL, NULL, 0, 0} -}; -#endif - -#if defined (ICONV_FROM_UCS_CES_EUC) -static void * -euc_from_ucs_init (struct _reent *rptr, - const char *encoding) -{ - int i; - euc_data_t *data; - - if ((data = (euc_data_t *)_calloc_r (rptr, 1, sizeof (euc_data_t))) == NULL) - return 0; - -#if defined (_ICONV_TO_ENCODING_EUC_JP) \ - || defined (_ICONV_ENABLE_EXTERNAL_CCS) - if (strcmp (encoding, ICONV_ENCODING_EUC_JP) == 0) - { - data->type = TYPE_EUC_JP; - data->mb_cur_max = 3; - data->desc = &euc_jp_cs_desc[0]; - goto ok; - } -#endif -#if defined (_ICONV_TO_ENCODING_EUC_KR) \ - || defined (_ICONV_ENABLE_EXTERNAL_CCS) - if (strcmp (encoding, ICONV_ENCODING_EUC_KR) == 0) - { - data->type = TYPE_EUC_KR; - data->mb_cur_max = 2; - data->desc = &euc_kr_cs_desc[0]; - goto ok; - } -#endif -#if defined (_ICONV_TO_ENCODING_EUC_TW) \ - || defined (_ICONV_ENABLE_EXTERNAL_CCS) - if (strcmp (encoding, ICONV_ENCODING_EUC_TW) == 0) - { - data->type = TYPE_EUC_TW; - data->mb_cur_max = 4; - data->desc = &euc_tw_cs_desc[0]; - goto ok; - } -#endif - - goto error1; - -ok: - for (i = 0; data->desc[i].csname != NULL; i++) - { - data->data[i] = _iconv_from_ucs_ces_handlers_table.init ( - rptr, - data->desc[i].csname); - if (data->data == NULL) - goto error; - } - - return data; - -error: - _iconv_from_ucs_ces_handlers_table.close (rptr, data); - return NULL; -error1: - _free_r (rptr, (void *)data); - return NULL; -} - -static size_t -euc_from_ucs_close (struct _reent *rptr, - void *data) -{ - int i; - size_t res = 0; - - for (i = 0; i < MAX_CS_NUM; i++) - { - if (((euc_data_t *)data)->data[i] != NULL) - res |= _iconv_from_ucs_ces_handlers_table.close ( - rptr, - ((euc_data_t *)data)->data[i]); - } - _free_r(rptr, data); - - return res; -} - -static size_t -euc_convert_from_ucs (void *data, - register ucs4_t in, - unsigned char **outbuf, - size_t *outbytesleft) -{ - int i; - int j; - int res; - unsigned char *outbuf1; - size_t outbytesleft1; - euc_data_t *d = (euc_data_t *)data; - - if (in < 0x80) /* CS0 ASCII */ - return _iconv_from_ucs_ces_handlers_us_ascii.convert_from_ucs ( - NULL, - in, - outbuf, - outbytesleft); - - /* Try other CS */ - for (i = 0; d->desc[i].csname != NULL; i++) - { - - if (((int)*outbytesleft - d->desc[i].prefixbytes - d->desc[i].bytes) < 0) - { - char buf[ICONV_MB_LEN_MAX]; - outbytesleft1 = ICONV_MB_LEN_MAX; - outbuf1 = &buf[0]; - /* See wether this is right sequence */ - res = - (int)_iconv_from_ucs_ces_handlers_table.convert_from_ucs ( - d->data[i], - in, - &outbuf1, - &outbytesleft1); - if (res > 0) - return (size_t)ICONV_CES_NOSPACE; - - continue; - } - - outbuf1 = *outbuf + d->desc[i].prefixbytes; - outbytesleft1 = *outbytesleft - d->desc[i].prefixbytes; - - res = (int)_iconv_from_ucs_ces_handlers_table.convert_from_ucs ( - d->data[i], - in, - &outbuf1, - &outbytesleft1); - if (res == d->desc[i].bytes) - { - for (j = 0; j < d->desc[i].prefixbytes; j++) - (*outbuf)[j] = d->desc[i].prefix[j]; - - if (d->desc[i].touchmsb) - for (j = 0; j < d->desc[i].bytes; j++) - { - if ((*outbuf)[j + d->desc[i].prefixbytes] & 0x80) - return (size_t)ICONV_CES_INVALID_CHARACTER; - (*outbuf)[j + d->desc[i].prefixbytes] |= 0x80; - } - - *outbuf = outbuf1; - *outbytesleft = outbytesleft1; - - return (size_t)(res + d->desc[i].bytes); - } - } - - return (size_t)ICONV_CES_INVALID_CHARACTER; -} -#endif /* ICONV_FROM_UCS_CES_EUC */ - -#if defined (ICONV_TO_UCS_CES_EUC) -static void * -euc_to_ucs_init (struct _reent *rptr, - const char *encoding) -{ - int i; - euc_data_t *data; - - if ((data = (euc_data_t *)_calloc_r (rptr, 1, sizeof (euc_data_t))) == NULL) - return 0; - -#if defined (_ICONV_TO_ENCODING_EUC_JP) \ - || defined (_ICONV_ENABLE_EXTERNAL_CCS) - if (strcmp (encoding, ICONV_ENCODING_EUC_JP) == 0) - { - data->type = TYPE_EUC_JP; - data->mb_cur_max = 3; - data->desc = &euc_jp_cs_desc[0]; - goto ok; - } -#endif -#if defined (_ICONV_TO_ENCODING_EUC_KR) \ - || defined (_ICONV_ENABLE_EXTERNAL_CCS) - if (strcmp (encoding, ICONV_ENCODING_EUC_KR) == 0) - { - data->type = TYPE_EUC_KR; - data->mb_cur_max = 2; - data->desc = &euc_kr_cs_desc[0]; - goto ok; - } -#endif -#if defined (_ICONV_TO_ENCODING_EUC_TW) \ - || defined (_ICONV_ENABLE_EXTERNAL_CCS) - if (strcmp (encoding, ICONV_ENCODING_EUC_TW) == 0) - { - data->type = TYPE_EUC_TW; - data->mb_cur_max = 4; - data->desc = &euc_tw_cs_desc[0]; - goto ok; - } -#endif - - goto error1; - -ok: - for (i = 0; data->desc[i].csname != NULL; i++) - { - data->data[i] = _iconv_to_ucs_ces_handlers_table.init ( - rptr, - data->desc[i].csname); - if (data->data[i] == NULL) - goto error; - } - - return data; - -error: - _iconv_to_ucs_ces_handlers_table.close (rptr, data); - return NULL; -error1: - _free_r (rptr, (void *)data); - return NULL; -} - -static size_t -euc_to_ucs_close (struct _reent *rptr, - void *data) -{ - int i; - size_t res = 0; - - for (i = 0; i < MAX_CS_NUM; i++) - { - if (((euc_data_t *)data)->data[i] != NULL) - res |= _iconv_to_ucs_ces_handlers_table.close ( - rptr, - ((euc_data_t *)data)->data[i]); - } - _free_r(rptr, data); - - return res; -} - -static ucs4_t -euc_convert_to_ucs (void *data, - const unsigned char **inbuf, - size_t *inbytesleft) -{ - int i; - int j; - ucs4_t res; - unsigned char buf[ICONV_MB_LEN_MAX]; - size_t inbytesleft1; - euc_data_t *d = (euc_data_t *)data; - unsigned char *inbuf1 = &buf[0]; - - if (**inbuf < 0x80) /* CS0 is always ASCII */ - return _iconv_to_ucs_ces_handlers_us_ascii.convert_to_ucs ( - NULL, - inbuf, - inbytesleft); - - for (i = 1; d->desc[i].csname != NULL; i++) - { - if (memcmp((const void *)(*inbuf), - (const void *)d->desc[i].prefix, - d->desc[i].prefixbytes) == 0) - { - if (((int)*inbytesleft - d->desc[i].prefixbytes - d->desc[i].bytes) < 0) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - if (d->desc[i].touchmsb) - for (j = 0; j < d->desc[i].bytes; j++) - { - if (!((*inbuf)[j + d->desc[i].prefixbytes] & 0x80)) - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - inbuf1[j] = (*inbuf)[j + d->desc[i].prefixbytes] & 0x7F; - } - else - for (j = 0; j < d->desc[i].bytes; j++) - inbuf1[j] = (*inbuf)[j + d->desc[i].prefixbytes]; - - inbytesleft1 = d->desc[i].bytes; - - res = _iconv_to_ucs_ces_handlers_table.convert_to_ucs ( - d->data[i], - (const unsigned char **)&inbuf1, - &inbytesleft1); - if (((__int32_t)res) > 0) - { - *inbuf += d->desc[i].bytes + d->desc[i].prefixbytes; - *inbytesleft -= d->desc[i].bytes + d->desc[i].prefixbytes; - } - - return res; - } - } - - /* Process CS1 */ - if (((int)(*inbytesleft - d->desc[0].prefixbytes - d->desc[0].bytes)) < 0) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - if (d->desc[0].touchmsb) - for (j = 0; j < d->desc[0].bytes; j++) - { - if (!((*inbuf)[j + d->desc[0].prefixbytes] & 0x80)) - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - inbuf1[j] = (*inbuf)[j] & 0x7F; - } - else - for (j = 0; j < d->desc[0].bytes; j++) - inbuf1[j] = (*inbuf)[j]; - - inbytesleft1 = d->desc[0].bytes; - - res = _iconv_to_ucs_ces_handlers_table.convert_to_ucs ( - d->data[0], - (const unsigned char **)&inbuf1, - &inbytesleft1); - if (((__int32_t)res) > 0) - { - *inbuf += d->desc[0].bytes; - *inbytesleft -= d->desc[0].bytes; - } - - return res; -} -#endif /* ICONV_TO_UCS_CES_EUC */ - -static int -euc_get_mb_cur_max (void *data) -{ - return ((euc_data_t *)data)->mb_cur_max; -} - -#if defined (ICONV_FROM_UCS_CES_EUC) -const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_euc = -{ - euc_from_ucs_init, - euc_from_ucs_close, - euc_get_mb_cur_max, - NULL, - NULL, - NULL, - euc_convert_from_ucs -}; -#endif - -#if defined (ICONV_TO_UCS_CES_EUC) -const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_euc = -{ - euc_to_ucs_init, - euc_to_ucs_close, - euc_get_mb_cur_max, - NULL, - NULL, - NULL, - euc_convert_to_ucs -}; -#endif - -#endif /* ICONV_TO_UCS_CES_EUC || ICONV_FROM_UCS_CES_EUC */ - - diff --git a/lib/iconv/ces/mkdeps.pl b/lib/iconv/ces/mkdeps.pl deleted file mode 100644 index 649f2c5..0000000 --- a/lib/iconv/ces/mkdeps.pl +++ /dev/null @@ -1,969 +0,0 @@ -#!/usr/bin/perl -w -# -# Copyright (c) 2003-2004, Artem B. Bityuckiy, SoftMine Corporation. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -use integer; -use Getopt::Std; -use strict; - -sub err($); -sub process_section_encodings($); -sub process_section_cesdeps($); -sub next_entry($$$); - -sub generate_cesbi_h($$); -sub generate_encnames_h(@); -sub generate_aliasesbi_c($); -sub generate_encoding_aliases_c($); -sub generate_cesdeps_h($); -sub generate_ccsbi_h($); -sub generate_cesbi_c($); -sub generate_ccsnames_h($); - -# ============================================================================== -# -# GLOBAL VARIABLES -# -# ============================================================================== - -my $comment_automatic = -"/* - * This file was automatically generated mkdeps.pl script. Don't edit. - */"; - -my $macro_from_enc = '_ICONV_FROM_ENCODING_'; -my $macro_to_enc = '_ICONV_TO_ENCODING_'; -my $macro_from_ucs_ces = 'ICONV_FROM_UCS_CES_'; -my $macro_to_ucs_ces = 'ICONV_TO_UCS_CES_'; -my $macro_from_ucs_ccs = 'ICONV_FROM_UCS_CCS_'; -my $macro_to_ucs_ccs = 'ICONV_TO_UCS_CCS_'; -my $macro_enc_name = 'ICONV_ENCODING_'; -my $macro_ccs_name = 'ICONV_CCS_'; - -my $var_from_ucs_handlers = '_iconv_from_ucs_ces_handlers_'; -my $var_to_ucs_handlers = '_iconv_to_ucs_ces_handlers_'; -my $var_ccs = '_iconv_ccs_'; -my $var_aliases = '_iconv_aliases'; -my $var_ces_names = 'iconv_ces_names_'; - -# ============================================================================== -# -# PARSE COMMAND-LINE OPTIONS. -# -# ============================================================================== - -my %options; - -# SUPPORTED OPTIONS. -my $help_opt = 'h'; -my $infile_opt = 'i'; -my $verbose_opt = 'v'; - -# Default input configuration file name -my $default_infile = '../lib/encoding.deps'; -# Real input configuration file name -my $infile; -# Verbose flag (be verbose if not zero) -my $verbose; - -{ -getopts ("${help_opt}${verbose_opt}${infile_opt}:", \%options) -or err "getopts() failed: $!."; - -if ($options{$help_opt}) -{ - # Output help message and exit. - print "Usage: $0 [-$infile_opt depfile] [-$help_opt]\n"; - print "\t-$infile_opt - input file with configuration ($default_infile "; - print "file will be used by default)\n"; - print "\t-$help_opt - this help message\n"; - exit 0; -} - -# Input file name. -$infile = $options{$infile_opt} ? $options{$infile_opt} : $default_infile; -$verbose = $options{$verbose_opt} ? 1 : 0; - -print "Debug: -$verbose_opt option found.\n" if $verbose; - -# ============================================================================== -# -# Find and fetch sections from input file -# -# ============================================================================== - -# Opening input file -print "Debug: open \"$infile\" input file.\n" if $verbose; -open (INFILE, '<', $infile) or err "Can't open \"$infile\" file for reading.\n" - . "System error message: $!.\n"; - -# Configuration file markers -my $marker_section = 'SECTION'; -my $marker_section_end = 'SECTION END'; - -# File sections. Hash values are references to arrays with section contents -my %sections; - -# Extract sections from file -for (my $ln = 1; my $l = ; $ln += 1) -{ - # Skip comments and empty lines - next if $l =~ m/^#.*$/ or $l =~ m/^\s*$/; - - # Remove last CR symbol - $l =~ s/^(.*)\n$/$1/, $l =~ s/^(.*)\r$/$1/; - - # Generate error if line isn't section begin marker - err "(input file line $ln) Unexpected marker: \"$l\". ${marker_section} " - . "is expected." - if $l !~ m/^$marker_section(\s+(\S*)\s*)?$/; - - # Generate error if there is no section name - err "(input file line $ln) Section name isn't found" - if !$1 or !$2; - - # Generate error if this is section end marker - err "(input file line $ln) Unexpected \"${marker_section_end}\" marker " - . "in input file." - if $2 eq $marker_section_end; - - my $sect_name = $2; - - # Extract section content - for (; $l = ; $ln += 1) - { - # Skip comments and empty lines - next if $l =~ m/^#.*$/ or $l =~ m/^$/; - # Remove last CR symbol - $l =~ s/^(.*)\n$/$1/, $l =~ s/^(.*)\r$/$1/; - - last if $l =~ m/^$marker_section_end$/; - - push @{$sections{$sect_name}}, $l; - } - - # Generate error if section wasn't ended - err "(input file line $ln) \"No $marker_section_end\" marker found" - if $l !~ m/^$marker_section_end$/; -} - -close INFILE or err "Error while closing input file."; - -# ============================================================================= -# -# Now sections are fetched. Each section is processed by separate function. -# There are only three supported sections now: ENCODINGS, CES_DEPENDENCIES -# and ENCODING_CCS_DEPENDENCIES. -# -# ============================================================================= - -my $section_encodings = 'ENCODINGS'; -my $section_cesdeps = 'CES_DEPENDENCIES'; - -my $section; - -err "$section_encodings not found." -if !defined $sections{$section_encodings}; -err "$section_cesdeps not found." -if !defined $sections{$section_cesdeps}; - -# Process sections -print "Debug: process $section_encodings section.\n" if $verbose; -process_section_encodings ($sections{$section_encodings}); -delete $sections{$section_encodings}; - -print "Debug: process $section_cesdeps section.\n" if $verbose; -process_section_cesdeps ($sections{$section_cesdeps}); -delete $sections{$section_cesdeps}; - -print STDERR "Warning: section \"$_\" was ignored!\n" -foreach (keys %sections); - -exit 0; -} - -# ============================================================================= -# -# Print error message and exit. -# -# Parameter 1: error message. -# -# ============================================================================= -sub err($) -{ - print STDERR "Error while running script.\n$_[0]\n"; - exit 1; -} - - -# ============================================================================= -# -# Process ENCODINGS section. -# -# Parameter 1 (input): array reference with section content; -# -# ============================================================================= -sub process_section_encodings($) -{ - my $sect = $_[0]; - my $lineidx = 0; - my @entry; - my $marker_encoding = 'ENCODING'; - my $marker_ces = 'CES'; - my $marker_ccs = 'CCS'; - my $marker_aliases = 'ALIASES'; - - # Keys: CES names. Values: array reference with encodings list. - my %cesenc; - # Keys: encodings. Values: CES converter names. - my %encces; - # Keys: CCS tables names. Values: array reference with encodings. - my %ccsenc; - # Keys: encodings. Values: aliases list. - my %encalias; - - while (next_entry ($sect, \@entry, \$lineidx)) - { - my $encoding; - my $ces; - my $ccs; - my $aliases; - - foreach my $l (@entry) - { - if ($l =~ m/^($marker_encoding):\s*(\S*)\s*$/) - { - err "(process_section_encodings()) More than one $marker_encoding " - . "records found ($l)" - if defined $encoding; - - $encoding = $2; - } - elsif ($l =~ m/^($marker_ces):\s*(\S*)\s*$/) - { - err "(process_section_encodings()) More than one $marker_ces " - . "records found ($l)" - if defined $ces; - - $ces = $2; - } - elsif ($l =~ m/^($marker_aliases):\s*(.*)\s*$/) - { - err "(process_section_encodings()) More than one " - . "$marker_aliases records found ($l)" - if defined $aliases; - - $aliases = $2; - } - elsif ($l =~ m/^($marker_ccs):\s*(.*)\s*$/) - { - err "(process_section_encodings()) More than one " - . "$marker_ccs records found ($l)" - if defined $ccs; - - $ccs = $2; - } - else - { - err "(process_section_encodings()) Can't parse \"$l\""; - } - } - - err "(process_section_encodings()) $encoding is defined twice" - if (defined $encces{$encoding}); - err "(process_section_encodings()) ENCODING: field isn't found" - if not defined $encoding; - - if (defined $ces) - { - push @{$cesenc{$ces}}, $encoding; - $encces{$encoding} = $ces; - } - - if (defined $ccs) - { - my @ccs = split / /, $ccs; - push @{$ccsenc{$_}}, $encoding foreach (@ccs); - } - $encalias{$encoding} = $aliases; - } - - # Generate cesbi.h header file - generate_cesbi_h (\%cesenc, \%encces); - - # Generate encnames.h header file - generate_encnames_h (keys %encces); - - # Generate aliasesbi.c file - generate_aliasesbi_c (\%encalias); - - # Generate encoding.aliases file - generate_encoding_aliases (\%encalias); - - # Generate ccsbi.h header file - generate_ccsbi_h (\%ccsenc); - - # Generate cesbi.c file - generate_cesbi_c (\%cesenc); - - # Generate ccsbi.c file - my @ccs = sort keys %ccsenc; - generate_ccsbi_c (\@ccs); - - # Generate ccsnames.h header file - generate_ccsnames_h (\%ccsenc); - - # Generate iconv.m4 file - my @encodings = sort keys %encalias; - generate_iconv_m4 (\@encodings); -} - -# ============================================================================== -# -# Process CES_DEPENDENCIES section. -# -# Parameter 1: array reference with section content. -# -# ============================================================================== -sub process_section_cesdeps($) -{ - my $sect = $_[0]; - my $lineidx = 0; - my @entry; - my $marker_ces = 'CES'; - my $marker_used_ces = 'USED_CES'; - my %cesdeps; - - while (next_entry ($sect, \@entry, \$lineidx)) - { - my $ces; - my $used_ces; - - foreach my $l (@entry) - { - if ($l =~ m/^($marker_ces):\s*(\S*)\s*$/) - { - err "(process_section_cesdeps()) More than one $marker_ces " - . "records found ($l)" - if $ces; - - $ces = $2; - } - elsif ($l =~ m/^($marker_used_ces):\s*(.*)\s*$/) - { - err "(process_section_cesdeps()) More than one $marker_used_ces " - . "records found ($l)" - if $used_ces; - - $used_ces = $2; - } - else - { - err "(process_section_cesdeps()) Can't parse \"$l\""; - } - } - - err "(process_section_esdeps()) $ces dependecties are defined twice" - if (defined $cesdeps{$ces}); - - # Split string - my @used_ces = split / /, $used_ces; - - $cesdeps{$ces} = \@used_ces; - } - - # Generate cesdeps.h header file - generate_cesdeps_h (\%cesdeps); -} - -# ============================================================================== -# -# Extract next entry. -# -# Parameter 1 (input): array reference with entries; -# Parameter 2 (output): array reference with entry content; -# Parameter 3 (input/output): scalar reference with line index to process. -# -# Returns 1 is entry was found, 0 if thee is no more entries; -# -# ============================================================================== -sub next_entry($$$) -{ - my $entries = $_[0]; - my $entry = $_[1]; - my $idx = $_[2]; - my $marker_entry = 'ENTRY'; - my $marker_entry_end = 'ENTRY END'; - my $entry_flag = 0; - - return 0 if not defined ${$entries}[${$idx}]; - - undef @{$entry}; - - for (; my $l = ${$entries}[${$idx}++];) - { - # Skip comments and empty lines - next if $l =~ m/^#.*$/ or $l =~ m/^\s*$/; - - if ($l =~ m/^$marker_entry$/) - { - err "(next_entry()) $marker_entry marker appears twice" - if ($entry_flag == 1); - $entry_flag = 1; - $l = ${$entries}[${$idx}++] - } - else - { - # Generate error if line isn't entry begin marker - err "(next_entry()) Unexpected marker: \"$l\". ${marker_entry} " - . "is expected." - if ($entry_flag == 0) - } - - last if $l =~ m/^$marker_entry_end$/; - - push @{$entry}, $l; - } - - return 1; -} - -# ============================================================================== -# -# Generate cesbi.h file. -# -# Parameter 1 (input): hash reference with keys = CES Converters names and -# values = array references with list of supported encodings. -# Parameter 2 (input): hash reference with keys = encodings names and -# values = CES converter names. -# -# ============================================================================== -sub generate_cesbi_h($$) -{ - my %cesenc = %{$_[0]}; - my %encces = %{$_[1]}; - my @ces = sort keys %cesenc; - - print "Debug: create \"cesbi.h\" file.\n" if $verbose; - open (CESBI_H, '>', "cesbi.h") - or err "Can't create \"cesbi.h\" file for writing.\nSystem error message: $!.\n"; - - print CESBI_H "$comment_automatic\n\n"; - print CESBI_H "#ifndef __CESBI_H__\n"; - print CESBI_H "#define __CESBI_H__\n\n"; - print CESBI_H "#include \n"; - print CESBI_H "#include <_ansi.h>\n"; - print CESBI_H "#include \"../lib/encnames.h\"\n"; - print CESBI_H "#include \"../lib/ucsconv.h\"\n\n"; - print CESBI_H "/*\n"; - print CESBI_H " * Enable CES converter if correspondent encoding is requested.\n"; - print CESBI_H " * Defining ${macro_to_ucs_ces}XXX macro or ${macro_from_ucs_ces}XXX\n"; - print CESBI_H " * macro is needed to enable \"XXX encoding -> UCS\" or \"UCS -> XXX encoding\"\n"; - print CESBI_H " * part of UCS-based CES converter.\n"; - print CESBI_H " */\n"; - - foreach my $ces (@ces) - { - my @encs = sort @{$cesenc{$ces}}; - foreach my $encoding (@encs) - { - print CESBI_H $encoding eq $encs[0] ? "#if " : " || "; - print CESBI_H "defined ($macro_from_enc\U$encoding)"; - print CESBI_H " \\" if $encoding ne $encs[$#encs]; - print CESBI_H "\n"; - } - print CESBI_H "# define $macro_to_ucs_ces\U$ces\n"; - print CESBI_H "#endif\n"; - - foreach my $encoding (@encs) - { - print CESBI_H $encoding eq $encs[0] ? "#if " : " || "; - print CESBI_H "defined ($macro_to_enc\U$encoding)"; - print CESBI_H " \\" if $encoding ne $encs[$#encs]; - print CESBI_H "\n"; - } - print CESBI_H "# define $macro_from_ucs_ces\U$ces\n"; - print CESBI_H "#endif\n\n"; - } - - print CESBI_H "/*\n"; - print CESBI_H " * Some encodings require another encodings to be enabled.\n"; - print CESBI_H " * These dependencies are handled in cesdeps.h header file.\n"; - print CESBI_H " */\n"; - print CESBI_H "#include \"cesdeps.h\"\n\n"; - - print CESBI_H "/*\n"; - print CESBI_H " * NLS uses iconv's capabilities and require one of encodings\n"; - print CESBI_H " * to be enabled for internal wchar_t representation.\n"; - print CESBI_H " */\n"; - print CESBI_H "#include \"../lib/iconvnls.h\"\n\n"; - - print CESBI_H "/*\n"; - print CESBI_H " * Forward declarations of CES converter handlers.\n"; - print CESBI_H " * These handlers are actually defined in correspondent CES converter files.\n"; - print CESBI_H " */\n"; - - foreach my $ces (@ces) - { - print CESBI_H "#ifdef $macro_to_ucs_ces\U$ces\n"; - print CESBI_H "extern const iconv_to_ucs_ces_handlers_t\n"; - print CESBI_H "$var_to_ucs_handlers$ces;\n"; - print CESBI_H "#endif\n"; - - print CESBI_H "#ifdef $macro_from_ucs_ces\U$ces\n"; - print CESBI_H "extern const iconv_from_ucs_ces_handlers_t\n"; - print CESBI_H "$var_from_ucs_handlers$ces;\n"; - print CESBI_H "#endif\n\n"; - } - - print CESBI_H "#endif /* !__CESBI_H__ */\n\n"; - close CESBI_H or err "Error while closing cesbi.h file."; -} - -# ============================================================================== -# -# Generate encnames.h header file. -# -# Parameters: array of supported encodings. -# -# ============================================================================== -sub generate_encnames_h(@) -{ - print "Debug: create \"../lib/encnames.h\" file.\n" if $verbose; - open (ENCNAMES_H, '>', "../lib/encnames.h") - or err "Can't create \"../lib/encnames.h\" file for writing.\nSystem error message: $!.\n"; - - print ENCNAMES_H "$comment_automatic\n\n"; - print ENCNAMES_H "#ifndef __ENCNAMES_H__\n"; - print ENCNAMES_H "#define __ENCNAMES_H__\n\n"; - - print ENCNAMES_H "/*\n"; - print ENCNAMES_H " * Encodings name macros.\n"; - print ENCNAMES_H " */\n"; - - foreach my $enc (sort @_) - { - print ENCNAMES_H "#define $macro_enc_name\U$enc\E \"$enc\"\n"; - } - - print ENCNAMES_H "\n#endif /* !__ENCNAMES_H__ */\n\n"; - close ENCNAMES_H or err "Error while closing ../lib/encnames.h file."; -} - -# ============================================================================== -# -# Generate aliasesbi.c C source file. -# -# Parameters: hash reference with keys = encodings and values = aliases string. -# -# ============================================================================== -sub generate_aliasesbi_c($) -{ - print "Debug: create \"../lib/aliasesbi.c\" file.\n" if $verbose; - open (ALIASESBI_C, '>', "../lib/aliasesbi.c") - or err "Can't create \"../lib/aliasesbi.c\" file for writing.\nSystem error message: $!.\n"; - - print ALIASESBI_C "$comment_automatic\n\n"; - print ALIASESBI_C "#include <_ansi.h>\n"; - print ALIASESBI_C "#include \"encnames.h\"\n\n"; - print ALIASESBI_C "const char\n"; - print ALIASESBI_C "$var_aliases\[\] =\n"; - print ALIASESBI_C "{\n"; - - foreach my $enc (sort keys %{$_[0]}) - { - print ALIASESBI_C "#if defined ($macro_from_enc\U$enc) \\\n"; - print ALIASESBI_C " || defined ($macro_to_enc\U$enc)\n"; - print ALIASESBI_C " $macro_enc_name\U$enc\E"; - print ALIASESBI_C " \" ${$_[0]}{$enc}\\n\"" if defined ${$_[0]}{$enc}; - print ALIASESBI_C "\n"; - print ALIASESBI_C "#endif\n"; - } - print ALIASESBI_C " \"\"\n"; - print ALIASESBI_C "};\n"; - - close ALIASESBI_C or err "Error while closing ../lib/aliasesbi.c file."; -} - -# ============================================================================== -# -# Generate encoding.aliases file. -# -# Parameter 1: hash reference with keys = encodings and values = aliases string. -# -# ============================================================================== -sub generate_encoding_aliases($) -{ - print "Debug: create \"../encoding.aliases\" file.\n" if $verbose; - open (ALIASES, '>', "../encoding.aliases") - or err "Can't create \"../encoding.aliases\" file for writing.\nSystem error message: $!.\n"; - - print ALIASES "#\n# This file was automatically generated. Don't edit.\n#\n\n"; - - foreach my $enc (sort keys %{$_[0]}) - { - print ALIASES "$enc"; - print ALIASES " ${$_[0]}{$enc}" if defined ${$_[0]}{$enc}; - print ALIASES "\n"; - } - - print ALIASES "\n"; - - close ALIASES or err "Error while closing ./encoding.aliases file."; -} - -# ============================================================================== -# -# Generate cesdeps.h header file. -# -# Parameter 1: hash reference with keys = CES converters and values = references -# to arrays with list of CES converters which are needed by that CES converter -# (defined by key). -# -# ============================================================================== -sub generate_cesdeps_h($) -{ - my %cesdeps = %{$_[0]}; - - print "Debug: create \"cesdeps.h\" file.\n" if $verbose; - open (CESDEPS_H, '>', "cesdeps.h") - or err "Can't create \"cesdeps.h\" file for writing.\nSystem error message: $!.\n"; - - print CESDEPS_H "$comment_automatic\n\n"; - print CESDEPS_H "#ifndef __CESDEPS_H__\n"; - print CESDEPS_H "#define __CESDEPS_H__\n\n"; - - print CESDEPS_H "/*\n"; - print CESDEPS_H " * Some CES converters use another CES converters and the following\n"; - print CESDEPS_H " * is such dependencies description.\n"; - print CESDEPS_H " */\n"; - - foreach my $ces (sort keys %cesdeps) - { - my @deps = sort @{$cesdeps{$ces}}; - - print CESDEPS_H "#ifdef $macro_to_ucs_ces\U$ces\n"; - - foreach my $dep (@deps) - { - print CESDEPS_H "# ifndef $macro_to_ucs_ces\U$dep\n"; - print CESDEPS_H "# define $macro_to_ucs_ces\U$dep\n"; - print CESDEPS_H "# endif\n"; - } - print CESDEPS_H "#endif\n"; - - print CESDEPS_H "#ifdef $macro_from_ucs_ces\U$ces\n"; - foreach my $dep (@deps) - { - print CESDEPS_H "# ifndef $macro_from_ucs_ces\U$dep\n"; - print CESDEPS_H "# define $macro_from_ucs_ces\U$dep\n"; - print CESDEPS_H "# endif\n"; - } - print CESDEPS_H "#endif\n"; - } - - print CESDEPS_H "\n#endif /* !__CESDEPS_H__ */\n\n"; - close CESDEPS_H or err "Error while closing cesdeps.h file."; -} - -# ============================================================================== -# -# Generate ccsbi.h file. -# -# Parameter 1 (input): hash reference with keys = CCS tables names and -# values = array references with list of encodings which need this CCS table. -# -# ============================================================================== -sub generate_ccsbi_h($) -{ - my %ccsenc = %{$_[0]}; - my @ccs = sort keys %ccsenc; - - print "Debug: create \"../ccs/ccsbi.h\" file.\n" if $verbose; - open (CCSBI_H, '>', "../ccs/ccsbi.h") - or err "Can't create \"../ccs/ccsbi.h\" file for writing.\nSystem error message: $!.\n"; - - print CCSBI_H "$comment_automatic\n\n"; - print CCSBI_H "#ifndef __CCSBI_H__\n"; - print CCSBI_H "#define __CCSBI_H__\n\n"; - print CCSBI_H "#include \n"; - print CCSBI_H "#include <_ansi.h>\n"; - print CCSBI_H "#include \"ccs.h\"\n\n"; - print CCSBI_H "/*\n"; - print CCSBI_H " * Enable CCS tables if encoding needs them.\n"; - print CCSBI_H " * Defining ${macro_to_ucs_ccs}XXX macro or ${macro_from_ucs_ccs}XXX\n"; - print CCSBI_H " * macro is needed to enable \"XXX encoding -> UCS\" or \"UCS -> XXX encoding\"\n"; - print CCSBI_H " * part of CCS table.\n"; - print CCSBI_H " * CCS tables aren't linked if Newlib was configuted to use external CCS tables.\n"; - print CCSBI_H " */\n"; - - print CCSBI_H "#ifndef _ICONV_ENABLE_EXTERNAL_CCS\n\n"; - - foreach my $ccs (@ccs) - { - my @encs = sort @{$ccsenc{$ccs}}; - foreach my $encoding (@encs) - { - print CCSBI_H $encoding eq $encs[0] ? "#if " : " || "; - print CCSBI_H "defined ($macro_from_enc\U$encoding)"; - print CCSBI_H " \\" if $encoding ne $encs[$#encs]; - print CCSBI_H "\n"; - } - print CCSBI_H "# define $macro_to_ucs_ccs\U$ccs\n"; - print CCSBI_H "#endif\n"; - - foreach my $encoding (@encs) - { - print CCSBI_H $encoding eq $encs[0] ? "#if " : " || "; - print CCSBI_H "defined ($macro_to_enc\U$encoding)"; - print CCSBI_H " \\" if $encoding ne $encs[$#encs]; - print CCSBI_H "\n"; - } - print CCSBI_H "# define $macro_from_ucs_ccs\U$ccs\n"; - print CCSBI_H "#endif\n\n"; - } - - print CCSBI_H "/*\n"; - print CCSBI_H " * CCS table description structures forward declarations.\n"; - print CCSBI_H " */\n"; - - foreach my $ccs (@ccs) - { - print CCSBI_H "#if defined ($macro_to_ucs_ccs\U$ccs) \\\n"; - print CCSBI_H " || defined ($macro_from_ucs_ccs\U$ccs)\n"; - print CCSBI_H "extern const iconv_ccs_t\n"; - print CCSBI_H "$var_ccs$ccs;\n"; - print CCSBI_H "#endif\n"; - } - - print CCSBI_H "\n#endif /* !_ICONV_ENABLE_EXTERNAL_CCS */\n\n"; - print CCSBI_H "\n#endif /* __CCSBI_H__ */\n\n"; - close CCSBI_H or err "Error while closing ../ccs/ccsbi.h file."; -} - -# ============================================================================== -# -# Generate cesbi.c file. -# -# Parameter 1 (input): hash reference with keys = CES Converters names and -# values = array references with list of supported encodings. -# -# ============================================================================== -sub generate_cesbi_c($) -{ - my %cesenc = %{$_[0]}; - my @ces = sort keys %cesenc; - - print "Debug: create \"cesbi.c\" file.\n" if $verbose; - open (CESBI_C, '>', "cesbi.c") - or err "Can't create \"cesbi.c\" file for writing.\nSystem error message: $!.\n"; - - print CESBI_C "$comment_automatic\n\n"; - print CESBI_C "#include <_ansi.h>\n"; - print CESBI_C "#include \n"; - print CESBI_C "#include \"../lib/ucsconv.h\"\n"; - print CESBI_C "#include \"cesbi.h\"\n\n"; - print CESBI_C "/*\n"; - print CESBI_C " * Each CES converter provides the list of supported encodings.\n"; - print CESBI_C " */\n"; - - foreach my $ces (@ces) - { - print CESBI_C "#if defined ($macro_to_ucs_ces\U$ces) \\\n"; - print CESBI_C " || defined ($macro_from_ucs_ces\U$ces)\n"; - print CESBI_C "static const char *\n"; - print CESBI_C "$var_ces_names${ces}\[] =\n"; - print CESBI_C "{\n"; - my @encodings = sort @{$cesenc{$ces}}; - foreach my $encoding (@encodings) - { - print CESBI_C "# if defined ($macro_from_enc\U$encoding) \\\n"; - print CESBI_C " || defined ($macro_to_enc\U$encoding)\n"; - print CESBI_C " $macro_enc_name\U$encoding,\n"; - print CESBI_C "#endif\n"; - } - print CESBI_C " NULL\n"; - print CESBI_C "};\n"; - print CESBI_C "#endif\n\n"; - } - - print CESBI_C "/*\n"; - print CESBI_C " * The following structure contains the list of \"to UCS\" linked-in CES converters.\n"; - print CESBI_C " */\n"; - print CESBI_C "const iconv_to_ucs_ces_t\n"; - print CESBI_C "_iconv_to_ucs_ces[] =\n"; - print CESBI_C "{\n"; - - foreach my $ces (@ces) - { - print CESBI_C "#ifdef $macro_to_ucs_ces\U$ces\n"; - print CESBI_C " {(const char **)$var_ces_names$ces,\n"; - print CESBI_C " &$var_to_ucs_handlers$ces},\n"; - print CESBI_C "#endif\n"; - } - print CESBI_C " {(const char **)NULL,\n"; - print CESBI_C " (iconv_to_ucs_ces_handlers_t *)NULL}\n"; - print CESBI_C "};\n\n"; - - print CESBI_C "/*\n"; - print CESBI_C " * The following structure contains the list of \"from UCS\" linked-in CES converters.\n"; - print CESBI_C " */\n"; - print CESBI_C "const iconv_from_ucs_ces_t\n"; - print CESBI_C "_iconv_from_ucs_ces[] =\n"; - print CESBI_C "{\n"; - - foreach my $ces (@ces) - { - print CESBI_C "#ifdef $macro_from_ucs_ces\U$ces\n"; - print CESBI_C " {(const char **)$var_ces_names$ces,\n"; - print CESBI_C " &$var_from_ucs_handlers$ces},\n"; - print CESBI_C "#endif\n"; - } - print CESBI_C " {(const char **)NULL,\n"; - print CESBI_C " (iconv_from_ucs_ces_handlers_t *)NULL}\n"; - print CESBI_C "};\n"; - - close CESBI_C or err "Error while closing cesbi.c file."; -} - -# ============================================================================== -# -# Generate ccsbi.c file. -# -# Parameter 1 (input): array reference with CCS tables names -# -# ============================================================================== -sub generate_ccsbi_c($) -{ - my @ccs = @{$_[0]}; - - print "Debug: create \"../ccs/ccsbi.c\" file.\n" if $verbose; - open (CESBI_C, '>', "../ccs/ccsbi.c") - or err "Can't create \"../ccs/ccsbi.c\" file for writing.\nSystem error message: $!.\n"; - - print CESBI_C "$comment_automatic\n\n"; - print CESBI_C "#include <_ansi.h>\n"; - print CESBI_C "#include \"ccsbi.h\"\n\n"; - print CESBI_C "/*\n"; - print CESBI_C " * The following array contains the list of built-in CCS tables.\n"; - print CESBI_C " */\n"; - - print CESBI_C "const iconv_ccs_t *\n"; - print CESBI_C "_iconv_ccs[] =\n"; - print CESBI_C "{\n"; - - foreach my $ccs (@ccs) - { - print CESBI_C "#if defined ($macro_to_ucs_ccs\U$ccs) \\\n"; - print CESBI_C " || defined ($macro_from_ucs_ccs\U$ccs)\n"; - print CESBI_C " &$var_ccs$ccs,\n"; - print CESBI_C "#endif\n"; - } - print CESBI_C " NULL\n"; - print CESBI_C "};\n"; - - close CESBI_C or err "Error while closing ../ccs/ccsbi.c file."; -} - -# ============================================================================== -# -# Generate ccsnames.h file. -# -# Parameter 1 (input): hash reference with keys = CCS tables names and -# values = array references with list of encodings which need this CCS table. -# -# ============================================================================== -sub generate_ccsnames_h($) -{ - my %ccsenc = %{$_[0]}; - my @ccs = sort keys %ccsenc; - - print "Debug: create \"../ccs/ccsnames.h\" file.\n" if $verbose; - open (CCSNAMES_H, '>', "../ccs/ccsnames.h") - or err "Can't create \"../ccs/ccsnames.h\" file for writing.\nSystem error message: $!.\n"; - - print CCSNAMES_H "$comment_automatic\n\n"; - print CCSNAMES_H "#ifndef __CCSNAMES_H__\n"; - print CCSNAMES_H "#define __CCSNAMES_H__\n\n"; - print CCSNAMES_H "#include \"../lib/encnames.h\"\n\n"; - print CCSNAMES_H "/*\n"; - print CCSNAMES_H " * CCS tables names macros.\n"; - print CCSNAMES_H " */\n"; - - foreach my $ccs (@ccs) - { - my @encs = @{$ccsenc{$ccs}}; - my $flag; - foreach my $encoding (@encs) - { - print CCSNAMES_H "#define $macro_ccs_name\U$ccs "; - if ($encoding eq $ccs) - { - $flag = 1; - print CCSNAMES_H "$macro_enc_name\U$encoding\n"; - last; - } - } - print CCSNAMES_H "\"$ccs\"\n" if !$flag; - } - - print CCSNAMES_H "\n#endif /* !__CCSNAMES_H__ */\n\n"; - close CCSNAMES_H or err "Error while closing ../ccs/ccsnames.h file."; -} - -# ============================================================================== -# -# Generate iconv.m4 file. -# -# Parameter 1 (input): array reference with encoding names -# -# ============================================================================== -sub generate_iconv_m4($) -{ - my @encodings = @{$_[0]}; - - print "Debug: create \"../../../iconv.m4\" file.\n" if $verbose; - open (ICONV_M4, '>', "../../../iconv.m4") - or err "Can't create \"../../../iconv.m4\" file for writing.\nSystem error message: $!.\n"; - - print ICONV_M4 "$comment_automatic\n"; - print ICONV_M4 "AC_DEFUN([NEWLIB_ICONV_DEFINES],[dnl\n"; - foreach my $encoding (@encodings) - { - my $ucencoding = uc $encoding; - - my $tovar = "_ICONV_TO_ENCODING_$ucencoding"; - print ICONV_M4 " if test \"\$$tovar\" = 1; then\n"; - print ICONV_M4 " AC_DEFINE($tovar, 1, [Support $encoding output encoding.])\n"; - print ICONV_M4 " fi\n"; - - my $fromvar = "_ICONV_FROM_ENCODING_$ucencoding"; - print ICONV_M4 " if test \"\$$fromvar\" = 1; then\n"; - print ICONV_M4 " AC_DEFINE($fromvar, 1, [Support $encoding input encoding.])\n"; - print ICONV_M4 " fi\n"; - } - print ICONV_M4 "])\n"; - - close ICONV_M4 or err "Error while closing ../../../iconv.m4 file."; -} diff --git a/lib/iconv/ces/table-pcs.c b/lib/iconv/ces/table-pcs.c deleted file mode 100644 index 45cfe62..0000000 --- a/lib/iconv/ces/table-pcs.c +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * This CES converter is just an simple extension of table CES converter. - * This CES converter is used for 16 bit CCSes which include 7bit - * Portable Characters Set (PCS) (equivalent to ASCII) (example: BIG5). - */ - -#include "cesbi.h" - -#if defined (ICONV_TO_UCS_CES_TABLE_PCS) \ - || defined (ICONV_FROM_UCS_CES_TABLE_PCS) - -#include <_ansi.h> -#include -#include -#include "../lib/local.h" -#include "../lib/ucsconv.h" - -#if defined (ICONV_FROM_UCS_CES_TABLE_PCS) -static size_t -table_pcs_convert_from_ucs (void *data, - ucs4_t in, - unsigned char **outbuf, - size_t *outbytesleft) -{ - if (*outbytesleft < 1) - return (size_t)ICONV_CES_NOSPACE; - - if (in < 0x80) - { - **outbuf = (unsigned char)in; - *outbuf += 1; - *outbytesleft -= 1; - return 1; - } - - return _iconv_from_ucs_ces_handlers_table.convert_from_ucs ( - data, - in, - outbuf, - outbytesleft); -} - -static void * -table_pcs_from_ucs_init (struct _reent *rptr, - const char *encoding) -{ - return _iconv_from_ucs_ces_handlers_table.init (rptr, encoding); -} - -static size_t -table_pcs_from_ucs_close (struct _reent *rptr, - void *data) -{ - return _iconv_from_ucs_ces_handlers_table.close (rptr, data); -} - -static int -table_pcs_from_ucs_get_mb_cur_max (void *data) -{ - return _iconv_from_ucs_ces_handlers_table.get_mb_cur_max (data); -} - -#endif /* ICONV_FROM_UCS_CES_TABLE_PCS */ - -#if defined (ICONV_TO_UCS_CES_TABLE_PCS) -static ucs4_t -table_pcs_convert_to_ucs (void *data, - const unsigned char **inbuf, - size_t *inbytesleft) -{ - if (*inbytesleft < 1) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - if (**inbuf < 0x80) - { - *inbytesleft -= 1; - *inbuf += 1; - return (ucs4_t)(*(*inbuf - 1)); - } - - return _iconv_to_ucs_ces_handlers_table.convert_to_ucs ( - data, - inbuf, - inbytesleft); -} - -static void * -table_pcs_to_ucs_init (struct _reent *rptr, - const char *encoding) -{ - return _iconv_to_ucs_ces_handlers_table.init (rptr, encoding); -} - -static size_t -table_pcs_to_ucs_close (struct _reent *rptr, - void *data) -{ - return _iconv_to_ucs_ces_handlers_table.close (rptr, data); -} - -static int -table_pcs_to_ucs_get_mb_cur_max (void *data) -{ - return _iconv_to_ucs_ces_handlers_table.get_mb_cur_max (data); -} - -#endif /* ICONV_TO_UCS_CES_TABLE_PCS */ - -#if defined (ICONV_FROM_UCS_CES_TABLE_PCS) -const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_table_pcs = -{ - table_pcs_from_ucs_init, - table_pcs_from_ucs_close, - table_pcs_from_ucs_get_mb_cur_max, - NULL, - NULL, - NULL, - table_pcs_convert_from_ucs -}; -#endif - -#if defined (ICONV_TO_UCS_CES_TABLE_PCS) -const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_table_pcs = -{ - table_pcs_to_ucs_init, - table_pcs_to_ucs_close, - table_pcs_to_ucs_get_mb_cur_max, - NULL, - NULL, - NULL, - table_pcs_convert_to_ucs -}; -#endif - -#endif /* ICONV_TO_UCS_CES_TABLE_PCS || ICONV_FROM_UCS_CES_TABLE_PCS */ - diff --git a/lib/iconv/ces/table.c b/lib/iconv/ces/table.c deleted file mode 100644 index c8ef218..0000000 --- a/lib/iconv/ces/table.c +++ /dev/null @@ -1,584 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include "cesbi.h" - -#if defined (ICONV_TO_UCS_CES_TABLE) \ - || defined (ICONV_FROM_UCS_CES_TABLE) - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include "../lib/endian.h" -#include "../lib/local.h" -#include "../lib/ucsconv.h" -#include "../ccs/ccs.h" - -/* - * Table-based CES converter is implemented here. Table-based CES converter - * deals with encodings with "null" CES, like KOI8-R. In this case it is - * possible to implement one generic algorithm which works with different - * CCS tables. - * - * Table-based CES converter deals with CCS tables placed into iconv/ccs - * subdirectory. First, converter tries to find needed CCS table among - * linked-in tables. If not found, it tries to load it from external file - * (only if corespondent capability was enabled in Newlib configuration). - * - * 16 bit encodings are assumed to be Big Endian. - */ - -static ucs2_t -find_code_size (ucs2_t code, const __uint16_t *tblp); - -static __inline ucs2_t -find_code_speed (ucs2_t code, const __uint16_t *tblp); - -static __inline ucs2_t -find_code_speed_8bit (ucs2_t code, const unsigned char *tblp); - -#ifdef _ICONV_ENABLE_EXTERNAL_CCS -static const iconv_ccs_desc_t * -load_file (struct _reent *rptr, const char *name, int direction); -#endif - -/* - * Interface data and functions implementation. - */ -static size_t -table_close (struct _reent *rptr, - void *data) -{ - const iconv_ccs_desc_t *ccsp = (iconv_ccs_desc_t *)data; - - if (ccsp->type == TABLE_EXTERNAL) - _free_r (rptr, (void *)ccsp->tbl); - - _free_r( rptr, (void *)ccsp); - return 0; -} - -#if defined (ICONV_FROM_UCS_CES_TABLE) -static void * -table_init_from_ucs (struct _reent *rptr, - const char *encoding) -{ - int i; - const iconv_ccs_t *biccsp = NULL; - iconv_ccs_desc_t *ccsp; - - for (i = 0; _iconv_ccs[i] != NULL; i++) - if (strcmp (_iconv_ccs[i]->name, encoding) == 0) - { - biccsp = _iconv_ccs[i]; - break; - } - - if (biccsp != NULL) - { - if (biccsp->from_ucs == NULL - || (ccsp = (iconv_ccs_desc_t *) - _malloc_r (rptr, sizeof (iconv_ccs_desc_t))) == NULL) - return NULL; - - ccsp->type = TABLE_BUILTIN; - ccsp->bits = biccsp->bits; - ccsp->optimization = biccsp->from_ucs_type; - ccsp->tbl = biccsp->from_ucs; - - return (void *)ccsp; - } - -#ifdef _ICONV_ENABLE_EXTERNAL_CCS - return (void *)load_file (rptr, encoding, 1); -#else - return NULL; -#endif -} - -static size_t -table_convert_from_ucs (void *data, - ucs4_t in, - unsigned char **outbuf, - size_t *outbytesleft) -{ - const iconv_ccs_desc_t *ccsp = (iconv_ccs_desc_t *)data; - ucs2_t code; - - if (in > 0xFFFF || in == INVALC) - return (size_t)ICONV_CES_INVALID_CHARACTER; - - if (ccsp->bits == TABLE_8BIT) - { - code = find_code_speed_8bit ((ucs2_t)in, - (const unsigned char *)ccsp->tbl); - if (code == INVALC) - return (size_t)ICONV_CES_INVALID_CHARACTER; - **outbuf = (unsigned char)code; - *outbuf += 1; - *outbytesleft -= 1; - return 1; - } - else if (ccsp->optimization == TABLE_SPEED_OPTIMIZED) - code = find_code_speed ((ucs2_t)in, ccsp->tbl); - else - code = find_code_size ((ucs2_t)in, ccsp->tbl); - - if (code == INVALC) - return (size_t)ICONV_CES_INVALID_CHARACTER; - - if (*outbytesleft < 2) - return (size_t)ICONV_CES_NOSPACE; - - /* We can't store whole word since **outbuf may be not 2-byte aligned */ - **outbuf = (unsigned char)((ucs2_t)code >> 8); - *(*outbuf + 1) = (unsigned char)code; - *outbuf += 2; - *outbytesleft -= 2; - return 2; -} -#endif /* ICONV_FROM_UCS_CES_TABLE */ - -#if defined (ICONV_TO_UCS_CES_TABLE) -static void * -table_init_to_ucs (struct _reent *rptr, - const char *encoding) -{ - int i; - const iconv_ccs_t *biccsp = NULL; - iconv_ccs_desc_t *ccsp; - - for (i = 0; _iconv_ccs[i] != NULL; i++) - if (strcmp (_iconv_ccs[i]->name, encoding) == 0) - { - biccsp = _iconv_ccs[i]; - break; - } - - if (biccsp != NULL) - { - if (biccsp->to_ucs == NULL - || (ccsp = (iconv_ccs_desc_t *) - _malloc_r (rptr, sizeof (iconv_ccs_desc_t))) == NULL) - return NULL; - - ccsp->type = TABLE_BUILTIN; - ccsp->bits = biccsp->bits; - ccsp->optimization = biccsp->to_ucs_type; - ccsp->tbl = biccsp->to_ucs; - - return (void *)ccsp; - } - -#ifdef _ICONV_ENABLE_EXTERNAL_CCS - return (void *)load_file (rptr, encoding, 0); -#else - return NULL; -#endif -} - -static ucs4_t -table_convert_to_ucs (void *data, - const unsigned char **inbuf, - size_t *inbytesleft) -{ - const iconv_ccs_desc_t *ccsp = (iconv_ccs_desc_t *)data; - ucs2_t ucs; - - if (ccsp->bits == TABLE_8BIT) - { - if (*inbytesleft < 1) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - ucs = (ucs2_t)ccsp->tbl[**inbuf]; - - if (ucs == INVALC) - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - *inbytesleft -= 1; - *inbuf += 1; - return (ucs4_t)ucs; - } - - if (*inbytesleft < 2) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - if (ccsp->optimization == TABLE_SIZE_OPTIMIZED) - ucs = find_code_size((ucs2_t)**inbuf << 8 | (ucs2_t)*(*inbuf + 1), - ccsp->tbl); - else - ucs = find_code_speed((ucs2_t)**inbuf << 8 | (ucs2_t)*(*inbuf + 1), - ccsp->tbl); - - if (ucs == INVALC) - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - *inbuf += 2; - *inbytesleft -= 2; - return (ucs4_t)ucs; -} -#endif /* ICONV_TO_UCS_CES_TABLE */ - -static int -table_get_mb_cur_max (void *data) -{ - return ((iconv_ccs_desc_t *)data)->bits/8; -} - - -#if defined (ICONV_TO_UCS_CES_TABLE) -const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_table = -{ - table_init_to_ucs, - table_close, - table_get_mb_cur_max, - NULL, - NULL, - NULL, - table_convert_to_ucs -}; -#endif /* ICONV_FROM_UCS_CES_TABLE */ - -#if defined (ICONV_FROM_UCS_CES_TABLE) -const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_table = -{ - table_init_from_ucs, - table_close, - table_get_mb_cur_max, - NULL, - NULL, - NULL, - table_convert_from_ucs -}; -#endif /* ICONV_TO_UCS_CES_TABLE */ - -/* - * Supplementary functions. - */ - -/* - * find_code_speed - find code in 16 bit speed-optimized table. - * - * PARAMETERS: - * ucs2_t code - code whose mapping to find. - * const __uint16_t *tblp - table pointer. - * - * RETURN: - * Code that corresponds to 'code'. - */ -static __inline ucs2_t -find_code_speed (ucs2_t code, - const __uint16_t *tblp) -{ - int idx = tblp[code >> 8]; - - if (idx == INVBLK) - return (ucs2_t)INVALC; - - return (ucs2_t)tblp[(code & 0x00FF) + idx]; -} - -/* - * find_code_speed_8bit - find code in 8 bit speed-optimized table. - * - * PARAMETERS: - * ucs2_t code - code whose mapping to find. - * const __uint16_t *tblp - table pointer. - * - * RETURN: - * Code that corresponds to 'code'. - */ -static __inline ucs2_t -find_code_speed_8bit (ucs2_t code, - const unsigned char *tblp) -{ - int idx; - unsigned char ccs; - - if (code == ((ucs2_t *)tblp)[0]) - return (ucs2_t)0xFF; - - idx = ((ucs2_t *)tblp)[1 + (code >> 8)]; - - if (idx == INVBLK) - return (ucs2_t)INVALC; - - ccs = tblp[(code & 0x00FF) + idx]; - - return ccs == 0xFF ? (ucs2_t)INVALC : (ucs2_t)ccs; -} - -/* Left range boundary */ -#define RANGE_LEFT(n) (tblp[FIRST_RANGE_INDEX + (n)*3 + 0]) -/* Right range boundary */ -#define RANGE_RIGHT(n) (tblp[FIRST_RANGE_INDEX + (n)*3 + 1]) -/* Range offset */ -#define RANGE_INDEX(n) (tblp[FIRST_RANGE_INDEX + (n)*3 + 2]) -/* Un-ranged offset */ -#define UNRANGED_INDEX(n) (tblp[FIRST_UNRANGED_INDEX_INDEX] + (n)*2) - -/* - * find_code_size - find code in 16 bit size-optimized table. - * - * PARAMETERS: - * ucs2_t code - code whose mapping to find. - * const __uint16_t *tblp - table pointer. - * - * RETURN: - * Code that corresponds to 'code'. - */ -static ucs2_t -find_code_size (ucs2_t code, - const __uint16_t *tblp) -{ - int first, last, cur, center; - - if (tblp[RANGES_NUM_INDEX] > 0) - { - first = 0; - last = tblp[RANGES_NUM_INDEX] - 1; - - do - { - center = (last - first)/2; - cur = center + first; - - if (code > RANGE_RIGHT (cur)) - first = cur; - else if (code < RANGE_LEFT (cur)) - last = cur; - else - return (ucs2_t)tblp[RANGE_INDEX (cur) + code - RANGE_LEFT (cur)]; - } while (center > 0); - - if (last - first == 1) - { - if (code >= RANGE_LEFT (first) && code <= RANGE_RIGHT (first)) - return (ucs2_t)tblp[RANGE_INDEX (first) - + code - RANGE_LEFT (first)]; - if (code >= RANGE_LEFT (last) && code <= RANGE_RIGHT (last)) - return (ucs2_t)tblp[RANGE_INDEX (last) - + code - RANGE_LEFT (last)]; - } - } - - if (tblp[UNRANGED_NUM_INDEX] > 0) - { - first = 0; - last = tblp[UNRANGED_NUM_INDEX] - 1; - - do - { - int c; - - center = (last - first)/2; - cur = center + first; - c = tblp[UNRANGED_INDEX (cur)]; - - if (code > c) - first = cur; - else if (code < c) - last = cur; - else - return (ucs2_t)tblp[UNRANGED_INDEX (cur) + 1]; - } while (center > 0); - - if (last - first == 1) - { - if (code == tblp[UNRANGED_INDEX (first)]) - return (ucs2_t)tblp[UNRANGED_INDEX (first) + 1]; - if (code == tblp[UNRANGED_INDEX (last)]) - return (ucs2_t)tblp[UNRANGED_INDEX (last) + 1]; - } - } - - return (ucs2_t)INVALC; -} - -#ifdef _ICONV_ENABLE_EXTERNAL_CCS - -#define _16BIT_ELT(offset) \ - ICONV_BETOHS(*((__uint16_t *)(buf + (offset)))) -#define _32BIT_ELT(offset) \ - ICONV_BETOHL(*((__uint32_t *)(buf + (offset)))) - -/* - * load_file - load conversion table from external file and initialize - * iconv_ccs_desc_t object. - * - * PARAMETERS: - * struct _reent *rptr - reent structure of current thread/process. - * const char *name - encoding name. - * int direction - conversion direction. - * - * DESCRIPTION: - * Loads conversion table of appropriate endianess from external file - * and initializes 'iconv_ccs_desc_t' table description structure. - * If 'direction' is 0 - load "To UCS" table, else load "From UCS" - * table. - * - * RETURN: - * iconv_ccs_desc_t * pointer is success, NULL if failure. - */ -static const iconv_ccs_desc_t * -load_file (struct _reent *rptr, - const char *name, - int direction) -{ - int fd; - const unsigned char *buf; - int tbllen, hdrlen; - off_t off; - const char *fname; - iconv_ccs_desc_t *ccsp = NULL; - int nmlen = strlen(name); - /* Since CCS table name length can vary - it is aligned (by adding extra - * bytes to it's end) to 4-byte boundary. */ - int alignment = nmlen & 3 ? 4 - (nmlen & 3) : 0; - - nmlen = strlen(name); - - hdrlen = nmlen + EXTTABLE_HEADER_LEN + alignment; - - if ((fname = _iconv_nls_construct_filename (rptr, name, ICONV_SUBDIR, - ICONV_DATA_EXT)) == NULL) - return NULL; - - if ((fd = _open_r (rptr, fname, O_RDONLY, S_IRUSR)) == -1) - goto error1; - - if ((buf = (const unsigned char *)_malloc_r (rptr, hdrlen)) == NULL) - goto error2; - - if (_read_r (rptr, fd, (void *)buf, hdrlen) != hdrlen) - goto error3; - - if (_16BIT_ELT (EXTTABLE_VERSION_OFF) != TABLE_VERSION_1 - || _32BIT_ELT (EXTTABLE_CCSNAME_LEN_OFF) != nmlen - || strncmp (buf + EXTTABLE_CCSNAME_OFF, name, nmlen) != 0) - goto error3; /* Bad file */ - - if ((ccsp = (iconv_ccs_desc_t *) - _calloc_r (rptr, 1, sizeof (iconv_ccs_desc_t))) == NULL) - goto error3; - - ccsp->bits = _16BIT_ELT (EXTTABLE_BITS_OFF); - ccsp->type = TABLE_EXTERNAL; - - /* Add 4-byte alignment to name length */ - nmlen += alignment; - - if (ccsp->bits == TABLE_8BIT) - { - if (direction == 0) /* Load "To UCS" table */ - { - off = (off_t)_32BIT_ELT (nmlen + EXTTABLE_TO_SPEED_OFF); - tbllen = _32BIT_ELT (nmlen + EXTTABLE_TO_SPEED_LEN_OFF); - } - else /* Load "From UCS" table */ - { - off = (off_t)_32BIT_ELT (nmlen + EXTTABLE_FROM_SPEED_OFF); - tbllen = _32BIT_ELT (nmlen + EXTTABLE_FROM_SPEED_LEN_OFF); - } - } - else if (ccsp->bits == TABLE_16BIT) - { - if (direction == 0) /* Load "To UCS" table */ - { -#ifdef TABLE_USE_SIZE_OPTIMIZATION - off = (off_t)_32BIT_ELT (nmlen + EXTTABLE_TO_SIZE_OFF); - tbllen = _32BIT_ELT (nmlen + EXTTABLE_TO_SIZE_LEN_OFF); -#else - off = (off_t)_32BIT_ELT (nmlen + EXTTABLE_TO_SPEED_OFF); - tbllen = _32BIT_ELT (nmlen + EXTTABLE_TO_SPEED_LEN_OFF); -#endif - } - else /* Load "From UCS" table */ - { -#ifdef TABLE_USE_SIZE_OPTIMIZATION - off = (off_t)_32BIT_ELT (nmlen + EXTTABLE_FROM_SIZE_OFF); - tbllen = _32BIT_ELT (nmlen + EXTTABLE_FROM_SIZE_LEN_OFF); -#else - off = (off_t)_32BIT_ELT (nmlen + EXTTABLE_FROM_SPEED_OFF); - tbllen = _32BIT_ELT (nmlen + EXTTABLE_FROM_SPEED_LEN_OFF); -#endif - } -#ifdef TABLE_USE_SIZE_OPTIMIZATION - ccsp->optimization = TABLE_SIZE_OPTIMIZED; -#else - ccsp->optimization = TABLE_SPEED_OPTIMIZED; -#endif - } - else - goto error4; /* Bad file */ - - if (off == EXTTABLE_NO_TABLE) - goto error4; /* No correspondent table in file */ - - if ((ccsp->tbl = (ucs2_t *)_malloc_r (rptr, tbllen)) == NULL) - goto error4; - - if (_lseek_r (rptr, fd, off, SEEK_SET) == (off_t)-1 - || _read_r (rptr, fd, (void *)ccsp->tbl, tbllen) != tbllen) - goto error5; - - goto normal_exit; - -error5: - _free_r (rptr, (void *)ccsp->tbl); - ccsp->tbl = NULL; -error4: - _free_r (rptr, (void *)ccsp); - ccsp = NULL; -error3: -normal_exit: - _free_r (rptr, (void *)buf); -error2: - if (_close_r (rptr, fd) == -1) - { - if (ccsp != NULL) - { - if (ccsp->tbl != NULL) - _free_r (rptr, (void *)ccsp->tbl); - _free_r (rptr, (void *)ccsp); - } - ccsp = NULL; - } -error1: - _free_r (rptr, (void *)fname); - return ccsp; -} -#endif - -#endif /* ICONV_TO_UCS_CES_TABLE || ICONV_FROM_UCS_CES_TABLE */ - diff --git a/lib/iconv/ces/ucs-2-internal.c b/lib/iconv/ces/ucs-2-internal.c deleted file mode 100644 index 3473444..0000000 --- a/lib/iconv/ces/ucs-2-internal.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include "cesbi.h" - -#if defined (ICONV_TO_UCS_CES_UCS_2_INTERNAL) \ - || defined (ICONV_FROM_UCS_CES_UCS_2_INTERNAL) - -#include <_ansi.h> -#include -#include -#include -#include -#include "../lib/local.h" -#include "../lib/ucsconv.h" -#include "../lib/endian.h" - -/* - * Internal 2-byte representation of UCS-2 codes without restrictions and - * without BOM support. - */ - -#if defined (ICONV_FROM_UCS_CES_UCS_2_INTERNAL) -static size_t -ucs_2_internal_convert_from_ucs (void *data, - register ucs4_t in, - unsigned char **outbuf, - size_t *outbytesleft) -{ - if (in > 0x0000FFFF) - return (size_t)ICONV_CES_INVALID_CHARACTER; - - if (*outbytesleft < sizeof (ucs2_t)) - return (size_t)ICONV_CES_NOSPACE; - - *((ucs2_t *)(*outbuf)) = (ucs2_t)in; - *outbuf += sizeof (ucs2_t); - *outbytesleft -= sizeof (ucs2_t); - - return sizeof (ucs2_t); -} -#endif /* ICONV_FROM_UCS_CES_UCS_2_INTERNAL */ - -#if defined (ICONV_TO_UCS_CES_UCS_2_INTERNAL) -static ucs4_t -ucs_2_internal_convert_to_ucs (void *data, - const unsigned char **inbuf, - size_t *inbytesleft) -{ - register ucs4_t res; - - if (*inbytesleft < sizeof (ucs2_t)) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - res = (ucs4_t)*((ucs2_t *)(*inbuf)); - - if (res > 0x0000FFFF) - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - *inbuf += sizeof (ucs2_t); - *inbytesleft -= sizeof (ucs2_t); - - return res; -} -#endif /* ICONV_TO_UCS_CES_UCS_2_INTERNAL */ - -static int -ucs_2_internal_get_mb_cur_max (void *data) -{ - return 2; -} - -#if defined (ICONV_TO_UCS_CES_UCS_2_INTERNAL) -const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_ucs_2_internal = -{ - NULL, - NULL, - ucs_2_internal_get_mb_cur_max, - NULL, - NULL, - NULL, - ucs_2_internal_convert_to_ucs -}; -#endif - -#if defined (ICONV_FROM_UCS_CES_UCS_2_INTERNAL) -const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_ucs_2_internal = -{ - NULL, - NULL, - ucs_2_internal_get_mb_cur_max, - NULL, - NULL, - NULL, - ucs_2_internal_convert_from_ucs -}; -#endif - -#endif /* ICONV_TO_UCS_CES_UCS_2_INTERNAL || ICONV_FROM_UCS_CES_UCS_2_INTERNAL */ - diff --git a/lib/iconv/ces/ucs-2.c b/lib/iconv/ces/ucs-2.c deleted file mode 100644 index 5e965b0..0000000 --- a/lib/iconv/ces/ucs-2.c +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include "cesbi.h" - -#if defined (ICONV_TO_UCS_CES_UCS_2) \ - || defined (ICONV_FROM_UCS_CES_UCS_2) - -#include <_ansi.h> -#include -#include -#include -#include -#include "../lib/local.h" -#include "../lib/ucsconv.h" -#include "../lib/endian.h" - -/* - * BOM isn't supported. UCS-2 is Big Endian. Bad codes are rejected. - * Bad codes: 0xFFFF, 0xFFFE, 0xD800-0xDFFF. - */ - -#define UCS_2_BIG_ENDIAN 0 -#define UCS_2_LITTLE_ENDIAN 1 - -#define UCS_2 "ucs_2" -#define UCS_2BE "ucs_2be" -#define UCS_2LE "ucs_2le" - -static void * -ucs_2_init (struct _reent *rptr, - const char *encoding) -{ - int *data; - - if ((data = (int *) _malloc_r(rptr, sizeof (int))) == NULL) - return (void *)NULL; - - if (strcmp (encoding, UCS_2LE) == 0) - *data = UCS_2_LITTLE_ENDIAN; - else - *data = UCS_2_BIG_ENDIAN; - - return (void *)data; -} - -static size_t -ucs_2_close (struct _reent *rptr, - void *data) -{ - _free_r (rptr, data); - return 0; -} - -#if defined (ICONV_FROM_UCS_CES_UCS_2) -static size_t -ucs_2_convert_from_ucs (void *data, - ucs4_t in, - unsigned char **outbuf, - size_t *outbytesleft) -{ - if ((in >= 0x0000D800 && in <= 0x0000DFFF) /* Surrogate character */ - || in >= 0x0000FFFE) - return (size_t)ICONV_CES_INVALID_CHARACTER; - - if (*outbytesleft < sizeof (ucs2_t)) - return (size_t)ICONV_CES_NOSPACE; - - if (*((int *)data) == UCS_2_BIG_ENDIAN) - *((ucs2_t *)(*outbuf)) = ICONV_HTOBES ((ucs2_t)in); - else - *((ucs2_t *)(*outbuf)) = ICONV_HTOLES ((ucs2_t)in); - - *outbuf += sizeof (ucs2_t); - *outbytesleft -= sizeof (ucs2_t); - - return sizeof (ucs2_t); -} -#endif /* ICONV_FROM_UCS_CES_UCS_2 */ - -#if defined (ICONV_TO_UCS_CES_UCS_2) -static ucs4_t -ucs_2_convert_to_ucs (void *data, - const unsigned char **inbuf, - size_t *inbytesleft) -{ - ucs4_t res; - - if (*inbytesleft < sizeof (ucs2_t)) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - if (*((int *)data) == UCS_2_BIG_ENDIAN) - res = (ucs4_t)ICONV_BETOHS (*((ucs2_t *)(*inbuf))); - else - res = (ucs4_t)ICONV_LETOHS (*((ucs2_t *)(*inbuf))); - - if ((res >= 0x0000D800 && res <= 0x0000DFFF) /* Surrogate character */ - || res >= 0x0000FFFE) - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - *inbytesleft -= sizeof (ucs2_t); - *inbuf += sizeof (ucs2_t); - - return res; -} -#endif /* ICONV_TO_UCS_CES_UCS_2 */ - -static int -ucs_2_get_mb_cur_max (void *data) -{ - return 2; -} - -#if defined (ICONV_TO_UCS_CES_UCS_2) -const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_ucs_2 = -{ - ucs_2_init, - ucs_2_close, - ucs_2_get_mb_cur_max, - NULL, - NULL, - NULL, - ucs_2_convert_to_ucs -}; -#endif - -#if defined (ICONV_FROM_UCS_CES_UCS_2) -const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_ucs_2 = -{ - ucs_2_init, - ucs_2_close, - ucs_2_get_mb_cur_max, - NULL, - NULL, - NULL, - ucs_2_convert_from_ucs -}; -#endif - -#endif /* ICONV_TO_UCS_CES_UCS_2 || ICONV_FROM_UCS_CES_UCS_2 */ - diff --git a/lib/iconv/ces/ucs-4-internal.c b/lib/iconv/ces/ucs-4-internal.c deleted file mode 100644 index d10952c..0000000 --- a/lib/iconv/ces/ucs-4-internal.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include "cesbi.h" - -#if defined (ICONV_TO_UCS_CES_UCS_4_INTERNAL) \ - || defined (ICONV_FROM_UCS_CES_UCS_4_INTERNAL) - -#include <_ansi.h> -#include -#include -#include -#include -#include "../lib/local.h" -#include "../lib/ucsconv.h" -#include "../lib/endian.h" - -/* - * Internal 4-byte representation of UCS-2 codes without restrictions and - * without BOM support. - */ - -#if defined (ICONV_FROM_UCS_CES_UCS_4_INTERNAL) -static size_t -ucs_4_internal_convert_from_ucs (void *data, - register ucs4_t in, - unsigned char **outbuf, - size_t *outbytesleft) -{ - if (in > 0x7FFFFFFF) - return (size_t)ICONV_CES_INVALID_CHARACTER; - - if (*outbytesleft < sizeof (ucs4_t)) - return (size_t)ICONV_CES_NOSPACE; - - *((ucs4_t *)(*outbuf)) = in; - *outbytesleft -= sizeof (ucs4_t); - *outbuf += sizeof (ucs4_t); - - return sizeof (ucs4_t); -} -#endif /* ICONV_FROM_UCS_CES_UCS_4_INTERNAL */ - -#if defined (ICONV_TO_UCS_CES_UCS_4_INTERNAL) -static ucs4_t -ucs_4_internal_convert_to_ucs (void *data, - const unsigned char **inbuf, - size_t *inbytesleft) -{ - register ucs4_t res; - - if (*inbytesleft < sizeof (ucs4_t)) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - res = *((ucs4_t *)(*inbuf)); - - if (res > 0x7FFFFFFF) - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - *inbytesleft -= sizeof (ucs4_t); - *inbuf += sizeof (ucs4_t); - - return res; -} -#endif /* ICONV_TO_UCS_CES_UCS_4_INTERNAL */ - -static int -ucs_4_internal_get_mb_cur_max (void *data) -{ - return 2; -} - -#if defined (ICONV_TO_UCS_CES_UCS_4_INTERNAL) -const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_ucs_4_internal = -{ - NULL, - NULL, - ucs_4_internal_get_mb_cur_max, - NULL, - NULL, - NULL, - ucs_4_internal_convert_to_ucs -}; -#endif - -#if defined (ICONV_FROM_UCS_CES_UCS_4_INTERNAL) -const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_ucs_4_internal = -{ - NULL, - NULL, - ucs_4_internal_get_mb_cur_max, - NULL, - NULL, - NULL, - ucs_4_internal_convert_from_ucs -}; -#endif - -#endif /* ICONV_TO_UCS_CES_UCS_4_INTERNAL || ICONV_FROM_UCS_CES_UCS_4_INTERNAL */ - diff --git a/lib/iconv/ces/ucs-4.c b/lib/iconv/ces/ucs-4.c deleted file mode 100644 index 290cc71..0000000 --- a/lib/iconv/ces/ucs-4.c +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include "cesbi.h" - -#if defined (ICONV_TO_UCS_CES_UCS_4) \ - || defined (ICONV_FROM_UCS_CES_UCS_4) - -#include <_ansi.h> -#include -#include -#include -#include -#include "../lib/local.h" -#include "../lib/ucsconv.h" -#include "../lib/endian.h" - -/* - * BOM isn't supported. UCS-4 is Big Endian. Bad codes are rejected. - * Bad codes: 0x0000FFFF, 0x0000FFFE, 0x0000D800-0x0000DFFF, - * 0x7FFFFFFF-0xFFFFFFFF. - */ - -#define UCS_4_BIG_ENDIAN 0 -#define UCS_4_LITTLE_ENDIAN 1 - -#define UCS_4 "ucs_4" -#define UCS_4BE "ucs_4be" -#define UCS_4LE "ucs_4le" - -static void * -ucs_4_init (struct _reent *rptr, - const char *encoding) -{ - int *data; - - if ((data = (int *)_malloc_r (rptr, sizeof(int))) == NULL) - return (void *)NULL; - - if (strcmp (encoding, UCS_4LE) == 0) - *data = UCS_4_LITTLE_ENDIAN; - else - *data = UCS_4_BIG_ENDIAN; - - return (void *)data; -} - -static size_t -ucs_4_close (struct _reent *rptr, - void *data) -{ - _free_r(rptr, data); - return 0; -} - - -#if defined (ICONV_FROM_UCS_CES_UCS_4) -static size_t -ucs_4_convert_from_ucs (void *data, - ucs4_t in, - unsigned char **outbuf, - size_t *outbytesleft) -{ - if ((in >= 0x0000D800 && in <= 0x0000DFFF) /* Surrogate character */ - || in > 0x7FFFFFFF || in == 0x0000FFFF || in == 0x0000FFFE) - return (size_t)ICONV_CES_INVALID_CHARACTER; - - if (*outbytesleft < sizeof (ucs4_t)) - return (size_t)ICONV_CES_NOSPACE; - - if (*((int *)data) == UCS_4_BIG_ENDIAN) - *((ucs4_t *)(*outbuf)) = ICONV_HTOBEL (in); - else - *((ucs4_t *)(*outbuf)) = ICONV_HTOLEL (in); - - *outbuf += sizeof (ucs4_t); - *outbytesleft -= sizeof (ucs4_t); - - return sizeof (ucs4_t); -} -#endif /* ICONV_FROM_UCS_CES_UCS_4 */ - -#if defined (ICONV_TO_UCS_CES_UCS_4) -static ucs4_t -ucs_4_convert_to_ucs (void *data, - const unsigned char **inbuf, - size_t *inbytesleft) -{ - ucs4_t res; - - if (*inbytesleft < sizeof (ucs4_t)) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - if (*((int *)data) == UCS_4_BIG_ENDIAN) - res = ICONV_BETOHL (*((ucs4_t *)(*inbuf))); - else - res = ICONV_LETOHL (*((ucs4_t *)(*inbuf))); - - if ((res >= 0x0000D800 && res <= 0x0000DFFF) /* Surrogate character */ - || res > 0x7FFFFFFF || res == 0x0000FFFF || res == 0x0000FFFE) - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - *inbytesleft -= sizeof (ucs4_t); - *inbuf += sizeof(ucs4_t); - - return res; -} -#endif /* ICONV_TO_UCS_CES_UCS_4 */ - -static int -ucs_4_get_mb_cur_max (void *data) -{ - return 4; -} - -#if defined (ICONV_TO_UCS_CES_UCS_4) -const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_ucs_4 = -{ - ucs_4_init, - ucs_4_close, - ucs_4_get_mb_cur_max, - NULL, - NULL, - NULL, - ucs_4_convert_to_ucs -}; -#endif - -#if defined (ICONV_FROM_UCS_CES_UCS_4) -const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_ucs_4 = -{ - ucs_4_init, - ucs_4_close, - ucs_4_get_mb_cur_max, - NULL, - NULL, - NULL, - ucs_4_convert_from_ucs -}; -#endif - -#endif /* ICONV_TO_UCS_CES_UCS_4 || ICONV_FROM_UCS_CES_UCS_4 */ - diff --git a/lib/iconv/ces/us-ascii.c b/lib/iconv/ces/us-ascii.c deleted file mode 100644 index 1646791..0000000 --- a/lib/iconv/ces/us-ascii.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include "cesbi.h" - -#if defined (ICONV_TO_UCS_CES_US_ASCII) \ - || defined (ICONV_FROM_UCS_CES_US_ASCII) - -#include <_ansi.h> -#include -#include -#include "../lib/local.h" -#include "../lib/ucsconv.h" - -/* - * For optimization purposes us_ascii is implemented as separate CES converter. - * Another possible way is to add us_ascii CCS and use table-based CES converter. - */ - -#if defined (ICONV_FROM_UCS_CES_US_ASCII) -static size_t -us_ascii_convert_from_ucs (void *data, - ucs4_t in, - unsigned char **outbuf, - size_t *outbytesleft) -{ - if (in > 0x7F) - return (size_t)ICONV_CES_INVALID_CHARACTER; - - *((char *)(*outbuf)) = (char)in; - - *outbuf += 1; - *outbytesleft -= 1; - - return 1; -} -#endif /* ICONV_FROM_UCS_CES_US_ASCII */ - -#if defined (ICONV_TO_UCS_CES_US_ASCII) -static ucs4_t -us_ascii_convert_to_ucs (void *data, - const unsigned char **inbuf, - size_t *inbytesleft) -{ - ucs4_t res; - - if (*inbytesleft < 1) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - res = (ucs4_t)**inbuf; - - if (res > 0x7F) - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - *inbytesleft -= 1; - *inbuf += 1; - - return res; -} -#endif /* ICONV_TO_UCS_CES_US_ASCII */ - -static int -us_ascii_get_mb_cur_max (void *data) -{ - return 2; -} - -#if defined (ICONV_TO_UCS_CES_US_ASCII) -const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_us_ascii = -{ - NULL, - NULL, - us_ascii_get_mb_cur_max, - NULL, - NULL, - NULL, - us_ascii_convert_to_ucs -}; -#endif - -#if defined (ICONV_FROM_UCS_CES_US_ASCII) -const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_us_ascii = -{ - NULL, - NULL, - us_ascii_get_mb_cur_max, - NULL, - NULL, - NULL, - us_ascii_convert_from_ucs -}; -#endif - -#endif /* ICONV_TO_UCS_CES_US_ASCII || ICONV_FROM_UCS_CES_US_ASCII */ - diff --git a/lib/iconv/ces/utf-16.c b/lib/iconv/ces/utf-16.c deleted file mode 100644 index a3491bb..0000000 --- a/lib/iconv/ces/utf-16.c +++ /dev/null @@ -1,300 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include "cesbi.h" - -#if defined (ICONV_TO_UCS_CES_UTF_16) \ - || defined (ICONV_FROM_UCS_CES_UTF_16) - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "../lib/local.h" -#include "../lib/ucsconv.h" -#include "../lib/endian.h" - -/* - * On input UTF-16 converter interpret BOM and uses Big Endian byte order if BOM - * is absent. UTF-16 converter outputs in System Endian and adds correspondent - * BOM as first code. UTF-16LE and UTF-16BE converters ignore BOM on input and - * don't output BOM. - */ - -#define UTF16_UNDEFINED 0x00 -#define UTF16_BIG_ENDIAN 0x01 -#define UTF16_LITTLE_ENDIAN 0x02 -#define UTF16_SYSTEM_ENDIAN 0x04 -#define UTF16_BOM_WRITTEN 0x08 - -#define UTF16_BOM 0xFEFF - -#define UTF_16 "utf_16" -#define UTF_16BE "utf_16be" -#define UTF_16LE "utf_16le" - -static size_t -utf_16_close (struct _reent *rptr, - void *data) -{ - _free_r(rptr, data); - return 0; -} - -#if defined (ICONV_FROM_UCS_CES_UTF_16) -static void * -utf_16_init_from_ucs (struct _reent *rptr, - const char *encoding) -{ - int *data; - - if ((data = (int *)_malloc_r (rptr, sizeof (int))) == NULL) - return (void *)NULL; - - if (strcmp (encoding, UTF_16LE) == 0) - *data = UTF16_LITTLE_ENDIAN; - else if (strcmp (encoding, UTF_16BE) == 0) - *data = UTF16_BIG_ENDIAN; - else - *data = UTF16_SYSTEM_ENDIAN; - - return (void *)data; -} - -static size_t -utf_16_convert_from_ucs (void *data, - register ucs4_t in, - unsigned char **outbuf, - size_t *outbytesleft) -{ - register ucs2_t *cp; - register size_t bytes; - register int *state; - - if (in > 0x0010FFFF || (in >= 0x0000D800 && in <= 0x0000DFFF) - || in == 0x0000FFFF || in == 0x0000FFFE) - return (size_t)ICONV_CES_INVALID_CHARACTER; - - state = (int *)data; - bytes = (*state == UTF16_SYSTEM_ENDIAN) ? sizeof (ucs2_t) * 2 - : sizeof (ucs2_t); - - if (in > 0x0000FFFF) - bytes += sizeof (ucs2_t); - - if (*outbytesleft < bytes) - return (size_t)ICONV_CES_NOSPACE; - - cp = (ucs2_t *)*outbuf; - - if (*state == UTF16_SYSTEM_ENDIAN) - { - *cp++ = UTF16_BOM; - *state |= UTF16_BOM_WRITTEN; - } - - if (in < 0x00010000) - { - switch (*state) - { - case UTF16_LITTLE_ENDIAN: - *cp = ICONV_HTOLES ((ucs2_t)in); - break; - case UTF16_BIG_ENDIAN: - *cp = ICONV_HTOBES ((ucs2_t)in); - break; - case (UTF16_SYSTEM_ENDIAN | UTF16_BOM_WRITTEN): - *cp = (ucs2_t)in; - break; - } - } - else - { - ucs2_t w1, w2; - - /* Process surrogate pair */ - in -= 0x00010000; - w1 = ((ucs2_t)((in >> 10)) & 0x03FF) | 0xD800; - w2 = (ucs2_t)(in & 0x000003FF) | 0xDC00; - - switch (*state) - { - case UTF16_LITTLE_ENDIAN: - *cp++ = ICONV_HTOLES (w1); - *cp = ICONV_HTOLES (w2); - break; - case UTF16_BIG_ENDIAN: - *cp++ = ICONV_HTOBES (w1); - *cp = ICONV_HTOBES (w2); - break; - case (UTF16_SYSTEM_ENDIAN | UTF16_BOM_WRITTEN): - *cp++ = w1; - *cp = w2; - break; - } - } - - *outbuf += bytes; - *outbytesleft -= bytes; - - return bytes; -} -#endif /* ICONV_FROM_UCS_CES_UTF_16 */ - -#if defined (ICONV_TO_UCS_CES_UTF_16) -static void * -utf_16_init_to_ucs (struct _reent *rptr, - const char *encoding) -{ - int *data; - - if ((data = (int *)_malloc_r (rptr, sizeof (int))) == NULL) - return (void *)NULL; - - if (strcmp (encoding, UTF_16BE) == 0) - *data = UTF16_BIG_ENDIAN; - else if (strcmp (encoding, UTF_16LE) == 0) - *data = UTF16_LITTLE_ENDIAN; - else - *data = UTF16_UNDEFINED; - - return (void *)data; -} - -static ucs4_t -utf_16_convert_to_ucs (void *data, - const unsigned char **inbuf, - size_t *inbytesleft) -{ - register ucs2_t w1; - register ucs2_t w2; - register ucs2_t *cp; - int *state; - ucs4_t res; - int bytes = sizeof (ucs2_t); - - if (*inbytesleft < bytes) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - state = (int *)data; - cp = ((ucs2_t *)*inbuf); - - if (*state == UTF16_UNDEFINED) - { - if (*cp == ICONV_HTOLES(UTF16_BOM)) - *state = UTF16_LITTLE_ENDIAN; - else - *state = UTF16_BIG_ENDIAN; - - if ( *cp == ICONV_HTOBES (UTF16_BOM) - || *cp == ICONV_HTOLES (UTF16_BOM)) - { - if (*inbytesleft < (bytes += sizeof (ucs2_t))) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - cp += 1; - } - } - - if (*state == UTF16_LITTLE_ENDIAN) - w1 = ICONV_LETOHS (*cp); - else - w1 = ICONV_BETOHS (*cp); - - if (w1 < 0xD800 || w1 > 0xDFFF) - { - if (w1 == 0xFFFF || w1 == 0xFFFE) - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - res = (ucs4_t)w1; - } - else - { - /* Process surrogate pair */ - if (*inbytesleft < (bytes += 2)) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - if (w1 > 0xDBFF) - /* Broken surrogate character */ - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - cp += 1; - - if (*state == UTF16_LITTLE_ENDIAN) - w2 = ICONV_LETOHS (*cp); - else - w2 = ICONV_BETOHS (*cp); - - if (w2 < 0xDC00 || w2 > 0xDFFF) - /* Broken surrogate character */ - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - res = (ucs4_t)(w2 & 0x03FF) | ((ucs4_t)(w1 & 0x03FF) << 10); - res += 0x00010000; - } - - *inbuf += bytes; - *inbytesleft -= bytes; - - return res; -} -#endif /* ICONV_TO_UCS_CES_UTF_16 */ - -static int -utf_16_get_mb_cur_max (void *data) -{ - return 6; -} - -#if defined (ICONV_TO_UCS_CES_UTF_16) -const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_utf_16 = -{ - utf_16_init_to_ucs, - utf_16_close, - utf_16_get_mb_cur_max, - NULL, - NULL, - NULL, - utf_16_convert_to_ucs -}; -#endif - -#if defined (ICONV_FROM_UCS_CES_UTF_16) -const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_utf_16 = -{ - utf_16_init_from_ucs, - utf_16_close, - utf_16_get_mb_cur_max, - NULL, - NULL, - NULL, - utf_16_convert_from_ucs -}; -#endif - -#endif /* ICONV_TO_UCS_CES_UTF_16 || ICONV_FROM_UCS_CES_UTF_16 */ - diff --git a/lib/iconv/ces/utf-8.c b/lib/iconv/ces/utf-8.c deleted file mode 100644 index 116f259..0000000 --- a/lib/iconv/ces/utf-8.c +++ /dev/null @@ -1,294 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include "cesbi.h" - -#if defined (ICONV_TO_UCS_CES_UTF_8) \ - || defined (ICONV_FROM_UCS_CES_UTF_8) - -#include <_ansi.h> -#include -#include -#include "../lib/local.h" -#include "../lib/ucsconv.h" - -#define UTF8_MB_CUR_MAX 6 - -/* - * UTF-8 CES converter doesn't interpret BOM. Reject overlong sequences, - * U'FFFF, U'FFFE codes, UTF-16 surrogate codes and all codes > 0x7FFFFFFF. - */ - -#if defined (ICONV_FROM_UCS_CES_UTF_8) -static size_t -convert_from_ucs (void *data, - register ucs4_t in, - unsigned char **outbuf, - size_t *outbytesleft) -{ - register unsigned char *cp; - register size_t bytes; - - if ((in >= 0x0000D800 && in <= 0x0000DFFF) - || in > 0x7FFFFFFF || in == 0x0000FFFF || in == 0x0000FFFE) - return (size_t)ICONV_CES_INVALID_CHARACTER; - - if (in < 0x80) - bytes = 1; - else if (in < 0x800) - bytes = 2; - else if (in < 0x10000) - bytes = 3; - else if (in < 0x200000) - bytes = 4; - else if (in < 0x4000000) - bytes = 5; - else - bytes = 6; - - if (*outbytesleft < bytes) - return (size_t)ICONV_CES_NOSPACE; - - cp = *outbuf; - - switch (bytes) - { - case 1: - *cp = (unsigned char)in; - break; - - case 2: - *cp++ = (unsigned char)((in >> 6) | 0x000000C0); - *cp++ = (unsigned char)((in & 0x0000003F) | 0x00000080); - break; - - case 3: - *cp++ = (unsigned char)((in >> 12) | 0x000000E0); - *cp++ = (unsigned char)(((in >> 6) & 0x0000003F) | 0x00000080); - *cp++ = (unsigned char)((in & 0x0000003F) | 0x00000080); - break; - - case 4: - *cp++ = (unsigned char)((in >> 18) | 0x000000F0); - *cp++ = (unsigned char)(((in >> 12) & 0x0000003F) | 0x00000080); - *cp++ = (unsigned char)(((in >> 6) & 0x0000003F) | 0x00000080); - *cp++ = (unsigned char)((in & 0x0000003F) | 0x00000080); - break; - - case 5: - *cp++ = (unsigned char)((in >> 24) | 0x000000F8); - *cp++ = (unsigned char)(((in >> 18) & 0x0000003F) | 0x00000080); - *cp++ = (unsigned char)(((in >> 12) & 0x0000003F) | 0x00000080); - *cp++ = (unsigned char)(((in >> 6) & 0x0000003F) | 0x00000080); - *cp++ = (unsigned char)((in & 0x0000003F) | 0x00000080); - break; - - case 6: - *cp++ = (unsigned char)((in >> 30) | 0x000000FC); - *cp++ = (unsigned char)(((in >> 24) & 0x0000003F) | 0x00000080); - *cp++ = (unsigned char)(((in >> 18) & 0x0000003F) | 0x00000080); - *cp++ = (unsigned char)(((in >> 12) & 0x0000003F) | 0x00000080); - *cp++ = (unsigned char)(((in >> 6) & 0x0000003F) | 0x00000080); - *cp++ = (unsigned char)((in & 0x0000003F) | 0x00000080); - break; - } - - *outbytesleft -= bytes; - *outbuf += bytes; - - return bytes; -} -#endif /* ICONV_FROM_UCS_CES_UTF_8 */ - -#if defined (ICONV_TO_UCS_CES_UTF_8) -static ucs4_t -convert_to_ucs (void *data, - const unsigned char **inbuf, - size_t *inbytesleft) -{ - register const unsigned char *in = *inbuf; - register size_t bytes; - ucs4_t res; - - if (in[0] >= 0xC0) - { - if (in[0] < 0xE0) - { - if (*inbytesleft < (bytes = 2)) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - if ( ((in[0] & ~0x1F) == 0xC0) - && ((in[1] & 0xC0) == 0x80)) - res = ((ucs4_t)(in[0] & 0x1F) << 6) - | ((ucs4_t)(in[1] & 0x3F)); - else - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - if (res < 0x00000080) /* Overlong sequence */ - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - } - - else if (in[0] < 0xF0) - { - if (*inbytesleft < (bytes = 3)) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - if ( ((in[0] & ~0x0F) == 0xE0) - && ((in[1] & 0xC0) == 0x80) - && ((in[2] & 0xC0) == 0x80)) - res = ((ucs4_t)(in[0] & 0x0F) << 12) - | ((ucs4_t)(in[1] & 0x3F) << 6) - | ((ucs4_t)(in[2] & 0x3F)); - else - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - if (res < 0x00000800) /* Overlong sequence */ - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - } - - else if (in[0] < 0xF8) - { - if (*inbytesleft < (bytes = 4)) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - if ( ((in[0] & ~0x07) == 0xF0) - && ((in[1] & 0xC0) == 0x80) - && ((in[2] & 0xC0) == 0x80) - && ((in[3] & 0xC0) == 0x80)) - res = ((ucs4_t)(in[0] & 0x07) << 18) - | ((ucs4_t)(in[1] & 0x3F) << 12) - | ((ucs4_t)(in[2] & 0x3F) << 6) - | ((ucs4_t)(in[3] & 0x3F)); - else - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - if (res < 0x00010000) /* Overlong sequence */ - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - } - - else if (in[0] < 0xFC) - { - if (*inbytesleft < (bytes = 5)) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - if ( ((in[0] & ~0x03) == 0xF8) - && ((in[1] & 0xC0) == 0x80) - && ((in[2] & 0xC0) == 0x80) - && ((in[3] & 0xC0) == 0x80) - && ((in[4] & 0xC0) == 0x80)) - res = ((ucs4_t)(in[0] & 0x03) << 24) - | ((ucs4_t)(in[1] & 0x3F) << 18) - | ((ucs4_t)(in[2] & 0x3F) << 12) - | ((ucs4_t)(in[3] & 0x3F) << 6) - | ((ucs4_t)(in[4] & 0x3F)); - else - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - if (res < 0x00200000) /* Overlong sequence */ - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - } - - else if (in[0] <= 0xFD) - { - if (*inbytesleft < (bytes = 6)) - return (ucs4_t)ICONV_CES_BAD_SEQUENCE; - - if ( ((in[0] & ~0x01) == 0xFC) - && ((in[1] & 0xC0) == 0x80) - && ((in[2] & 0xC0) == 0x80) - && ((in[3] & 0xC0) == 0x80) - && ((in[4] & 0xC0) == 0x80) - && ((in[5] & 0xC0) == 0x80)) - res = ((ucs4_t)(in[0] & 0x1) << 30) - | ((ucs4_t)(in[1] & 0x3F) << 24) - | ((ucs4_t)(in[2] & 0x3F) << 18) - | ((ucs4_t)(in[3] & 0x3F) << 12) - | ((ucs4_t)(in[4] & 0x3F) << 6) - | ((ucs4_t)(in[5] & 0x3F)); - else - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - if (res < 0x04000000) /* Overlong sequence */ - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - } - - else - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - } - else if (in[0] & 0x80) - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - else - { - res = (ucs4_t)in[0]; - bytes = 1; - } - - if ( (res >= 0x0000D800 && res <= 0x0000DFFF) - || res > 0x7FFFFFFF || res == 0x0000FFFF || res == 0x0000FFFE) - return (ucs4_t)ICONV_CES_INVALID_CHARACTER; - - *inbytesleft -= bytes; - *inbuf += bytes; - - return res; -} -#endif /* ICONV_TO_UCS_CES_UTF_8 */ - -static int -get_mb_cur_max (void *data) -{ - return UTF8_MB_CUR_MAX; -} - -#if defined (ICONV_TO_UCS_CES_UTF_8) -const iconv_to_ucs_ces_handlers_t -_iconv_to_ucs_ces_handlers_utf_8 = -{ - NULL, - NULL, - get_mb_cur_max, - NULL, - NULL, - NULL, - convert_to_ucs -}; -#endif - -#if defined (ICONV_FROM_UCS_CES_UTF_8) -const iconv_from_ucs_ces_handlers_t -_iconv_from_ucs_ces_handlers_utf_8 = -{ - NULL, - NULL, - get_mb_cur_max, - NULL, - NULL, - NULL, - convert_from_ucs -}; -#endif - -#endif /* ICONV_TO_UCS_CES_UTF_8 || ICONV_FROM_UCS_CES_UTF_8 */ - diff --git a/lib/iconv/encoding.aliases b/lib/iconv/encoding.aliases deleted file mode 100644 index c127a41..0000000 --- a/lib/iconv/encoding.aliases +++ /dev/null @@ -1,55 +0,0 @@ -# -# This file was automatically generated. Don't edit. -# - -big5 csbig5 big_five bigfive cn_big5 cp950 -cp775 ibm775 cspc775baltic -cp850 ibm850 850 cspc850multilingual -cp852 ibm852 852 cspcp852 -cp855 ibm855 855 csibm855 -cp866 866 IBM866 CSIBM866 -euc_jp eucjp -euc_kr euckr -euc_tw euctw -iso_8859_1 iso8859_1 iso88591 iso_8859_1:1987 iso_ir_100 latin1 l1 ibm819 cp819 csisolatin1 -iso_8859_10 iso_8859_10:1992 iso_ir_157 iso885910 latin6 l6 csisolatin6 iso8859_10 -iso_8859_11 iso8859_11 iso885911 -iso_8859_13 iso_8859_13:1998 iso8859_13 iso885913 -iso_8859_14 iso_8859_14:1998 iso885914 iso8859_14 -iso_8859_15 iso885915 iso_8859_15:1998 iso8859_15 -iso_8859_2 iso8859_2 iso88592 iso_8859_2:1987 iso_ir_101 latin2 l2 csisolatin2 -iso_8859_3 iso_8859_3:1988 iso_ir_109 iso8859_3 latin3 l3 csisolatin3 iso88593 -iso_8859_4 iso8859_4 iso88594 iso_8859_4:1988 iso_ir_110 latin4 l4 csisolatin4 -iso_8859_5 iso8859_5 iso88595 iso_8859_5:1988 iso_ir_144 cyrillic csisolatincyrillic -iso_8859_6 iso_8859_6:1987 iso_ir_127 iso8859_6 ecma_114 asmo_708 arabic csisolatinarabic iso88596 -iso_8859_7 iso_8859_7:1987 iso_ir_126 iso8859_7 elot_928 ecma_118 greek greek8 csisolatingreek iso88597 -iso_8859_8 iso_8859_8:1988 iso_ir_138 iso8859_8 hebrew csisolatinhebrew iso88598 -iso_8859_9 iso_8859_9:1989 iso_ir_148 iso8859_9 latin5 l5 csisolatin5 iso88599 -iso_ir_111 ecma_cyrillic koi8_e koi8e csiso111ecmacyrillic -koi8_r cskoi8r koi8r koi8 -koi8_ru koi8ru -koi8_u koi8u -koi8_uni koi8uni -ucs_2 ucs2 iso_10646_ucs_2 iso10646_ucs_2 iso_10646_ucs2 iso10646_ucs2 iso10646ucs2 csUnicode -ucs_2_internal ucs2_internal ucs_2internal ucs2internal -ucs_2be ucs2be -ucs_2le ucs2le -ucs_4 ucs4 iso_10646_ucs_4 iso10646_ucs_4 iso_10646_ucs4 iso10646_ucs4 iso10646ucs4 -ucs_4_internal ucs4_internal ucs_4internal ucs4internal -ucs_4be ucs4be -ucs_4le ucs4le -us_ascii ansi_x3.4_1968 ansi_x3.4_1986 iso_646.irv:1991 ascii iso646_us us ibm367 cp367 csascii -utf_16 utf16 -utf_16be utf16be -utf_16le utf16le -utf_8 utf8 -win_1250 cp1250 -win_1251 cp1251 -win_1252 cp1252 -win_1253 cp1253 -win_1254 cp1254 -win_1255 cp1255 -win_1256 cp1256 -win_1257 cp1257 -win_1258 cp1258 - diff --git a/lib/iconv/iconv.tex b/lib/iconv/iconv.tex deleted file mode 100644 index 5b1f751..0000000 --- a/lib/iconv/iconv.tex +++ /dev/null @@ -1,1709 +0,0 @@ -@node Encoding conversions -@chapter Encoding conversions (@file{iconv.h}) - -This chapter describes the Newlib iconv library. -The iconv functions declarations are in -@file{iconv.h}. - -@menu -* iconv:: Encoding conversion routines -* Introduction to iconv:: Introduction to iconv and encodings -* Supported encodings:: The list of currently supported encodings -* iconv design decisions:: General iconv library design issues -* iconv configuration:: iconv-related configure script options -* Encoding names:: How encodings are named. -* CCS tables:: CCS tables format and 'mktbl.pl' Perl script -* CES converters:: CES converters description -* The encodings description file:: The 'encoding.deps' file and 'mkdeps.pl' -* How to add new encoding:: The steps to add new encoding support -* The locale support interfaces:: Locale-related iconv interfaces -* Contact:: The author contact -@end menu - -@page -@include iconv/lib/iconv.def - -@page -@node Introduction to iconv -@section Introduction to iconv -@findex encoding -@findex character set -@findex charset -@findex CES -@findex CCS -@* -The iconv library is intended to convert characters from one encoding to -another. It implements iconv(), iconv_open() and iconv_close() -calls, which are defined by the Single Unix Specification. - -@* -In addition to these user-level interfaces, the iconv library also has -several useful interfaces which are needed to support coding -capabilities of the Newlib Locale infrastructure. Since Locale -support also needs to -convert various character sets to and from the @emph{wide characters -set}, the iconv library shares it's capabilities with the Newlib Locale -subsystem. Moreover, the iconv library supports several features which are -only needed for the Locale infrastructure (for example, the MB_CUR_MAX value). - -@* -The Newlib iconv library was created using concepts from another iconv -library implemented by Konstantin Chuguev (ver 2.0). The Newlib iconv library -was rewritten from scratch and contains a lot of improvements with respect to -the original iconv library. - -@* -Terms like @dfn{encoding} or @dfn{character set} aren't well defined and -are often used with various meanings. The following are the definitions of terms -which are used in this documentation as well as in the iconv library -implementation: - -@itemize @bullet -@item -@dfn{encoding} - a machine representation of characters by means of bits; - -@item -@dfn{Character Set} or @dfn{Charset} - just a collection of -characters, i.e. the encoding is the machine representation of the character set; - -@item -@dfn{CCS} (@dfn{Coded Character Set}) - a mapping from an character set to a -set of integers @dfn{character codes}; - -@item -@dfn{CES} (@dfn{Character Encoding Scheme}) - a mapping from a set of character -codes to a sequence of bytes; -@end itemize - -@* -Users usually deal with encodings, for example, KOI8-R, Unicode, UTF-8, -ASCII, etc. Encodings are formed by the following chain of steps: - -@enumerate -@item -User has a set of characters which are specific to his or her language (character set). - -@item -Each character from this set is uniquely numbered, resulting in an CCS. - -@item -Each number from the CCS is converted to a sequence of bits or bytes by means -of a CES and form some encoding. Thus, CES may be considered as a -function of CCS which produces some encoding. Note, that CES may be -applied to more than one CCS. -@end enumerate - -@* -Thus, an encoding may be considered as one or more CCS + CES. - -@* -Sometimes, there is no CES and in such cases encoding is equivalent -to CCS, e.g. KOI8-R or ASCII. - -@* -An example of a more complicated encoding is UTF-8 which is the UCS -(or Unicode) CCS plus the UTF-8 CES. - -@* -The following is a brief list of iconv library features: -@itemize -@item -Generic architecture; -@item -Locale infrastructure support; -@item -Automatic generation of the program code which handles -CES/CCS/Encoding/Names/Aliases dependencies; -@item -The ability to choose size- or speed-optimazed -configuration; -@item -The ability to exclude a lot of unneeded code and data from the linking step. -@end itemize - - - - -@page -@node Supported encodings -@section Supported encodings -@findex big5 -@findex cp775 -@findex cp850 -@findex cp852 -@findex cp855 -@findex cp866 -@findex euc_jp -@findex euc_kr -@findex euc_tw -@findex iso_8859_1 -@findex iso_8859_10 -@findex iso_8859_11 -@findex iso_8859_13 -@findex iso_8859_14 -@findex iso_8859_15 -@findex iso_8859_2 -@findex iso_8859_3 -@findex iso_8859_4 -@findex iso_8859_5 -@findex iso_8859_6 -@findex iso_8859_7 -@findex iso_8859_8 -@findex iso_8859_9 -@findex iso_ir_111 -@findex koi8_r -@findex koi8_ru -@findex koi8_u -@findex koi8_uni -@findex ucs_2 -@findex ucs_2_internal -@findex ucs_2be -@findex ucs_2le -@findex ucs_4 -@findex ucs_4_internal -@findex ucs_4be -@findex ucs_4le -@findex us_ascii -@findex utf_16 -@findex utf_16be -@findex utf_16le -@findex utf_8 -@findex win_1250 -@findex win_1251 -@findex win_1252 -@findex win_1253 -@findex win_1254 -@findex win_1255 -@findex win_1256 -@findex win_1257 -@findex win_1258 -@* -The following is the list of currently supported encodings. The first column -corresponds to the encoding name, the second column is the list of aliases, -the third column is its CES and CCS components names, and the fourth column -is a short description. - -@multitable @columnfractions .20 .26 .24 .30 -@item -Name -@tab -Aliases -@tab -CES/CCS -@tab -Short description -@item -@tab -@tab -@tab - - -@item -big5 -@tab -csbig5, big_five, bigfive, cn_big5, cp950 -@tab -table_pcs / big5, us_ascii -@tab -The encoding for the Traditional Chinese. - - -@item -cp775 -@tab -ibm775, cspc775baltic -@tab -table / cp775 -@tab -The updated version of CP 437 that supports the balitic languages. - - -@item -cp850 -@tab -ibm850, 850, cspc850multilingual -@tab -table / cp850 -@tab -IBM 850 - the updated version of CP 437 where several Latin 1 characters have been -added instead of some less-often used characters like the line-drawing -and the greek ones. - - -@item -cp852 -@tab -ibm852, 852, cspcp852 -@tab -@tab -IBM 852 - the updated version of CP 437 where several Latin 2 characters have been added -instead of some less-often used characters like the line-drawing and the greek ones. - - -@item -cp855 -@tab -ibm855, 855, csibm855 -@tab -table / cp855 -@tab -IBM 855 - the updated version of CP 437 that supports Cyrillic. - - -@item -cp866 -@tab -866, IBM866, CSIBM866 -@tab -table / cp866 -@tab -IBM 866 - the updated version of CP 855 which follows more the logical Russian alphabet -ordering of the alternative variant that is preferred by many Russian users. - - -@item -euc_jp -@tab -eucjp -@tab -euc / jis_x0208_1990, jis_x0201_1976, jis_x0212_1990 -@tab -EUC-JP - The EUC for Japanese. - - -@item -euc_kr -@tab -euckr -@tab -euc / ksx1001 -@tab -EUC-KR - The EUC for Korean. - - -@item -euc_tw -@tab -euctw -@tab -euc / cns11643_plane1, cns11643_plane2, cns11643_plane14 -@tab -EUC-TW - The EUC for Traditional Chinese. - - -@item -iso_8859_1 -@tab -iso8859_1, iso88591, iso_8859_1:1987, iso_ir_100, latin1, l1, ibm819, cp819, csisolatin1 -@tab -table / iso_8859_1 -@tab -ISO 8859-1:1987 - Latin 1, West European. - - -@item -iso_8859_10 -@tab -iso_8859_10:1992, iso_ir_157, iso885910, latin6, l6, csisolatin6, iso8859_10 -@tab -table / iso_8859_10 -@tab -ISO 8859-10:1992 - Latin 6, Nordic. - - -@item -iso_8859_11 -@tab -iso8859_11, iso885911 -@tab -table / iso_8859_11 -@tab -ISO 8859-11 - Thai. - - -@item -iso_8859_13 -@tab -iso_8859_13:1998, iso8859_13, iso885913 -@tab -table / iso_8859_13 -@tab -ISO 8859-13:1998 - Latin 7, Baltic Rim. - - -@item -iso_8859_14 -@tab -iso_8859_14:1998, iso885914, iso8859_14 -@tab -table / iso_8859_14 -@tab -ISO 8859-14:1998 - Latin 8, Celtic. - - -@item -iso_8859_15 -@tab -iso885915, iso_8859_15:1998, iso8859_15, -@tab -table / iso_8859_15 -@tab -ISO 8859-15:1998 - Latin 9, West Europe, successor of Latin 1. - - -@item -iso_8859_2 -@tab -iso8859_2, iso88592, iso_8859_2:1987, iso_ir_101, latin2, l2, csisolatin2 -@tab -table / iso_8859_2 -@tab -ISO 8859-2:1987 - Latin 2, East European. - - -@item -iso_8859_3 -@tab -iso_8859_3:1988, iso_ir_109, iso8859_3, latin3, l3, csisolatin3, iso88593 -@tab -table / iso_8859_3 -@tab -ISO 8859-3:1988 - Latin 3, South European. - - -@item -iso_8859_4 -@tab -iso8859_4, iso88594, iso_8859_4:1988, iso_ir_110, latin4, l4, csisolatin4 -@tab -table / iso_8859_4 -@tab -ISO 8859-4:1988 - Latin 4, North European. - - -@item -iso_8859_5 -@tab -iso8859_5, iso88595, iso_8859_5:1988, iso_ir_144, cyrillic, csisolatincyrillic -@tab -table / iso_8859_5 -@tab -ISO 8859-5:1988 - Cyrillic. - - -@item -iso_8859_6 -@tab -iso_8859_6:1987, iso_ir_127, iso8859_6, ecma_114, asmo_708, arabic, csisolatinarabic, iso88596 -@tab -table / iso_8859_6 -@tab -ISO i8859-6:1987 - Arabic. - - -@item -iso_8859_7 -@tab -iso_8859_7:1987, iso_ir_126, iso8859_7, elot_928, ecma_118, greek, greek8, csisolatingreek, iso88597 -@tab -table / iso_8859_7 -@tab -ISO 8859-7:1987 - Greek. - - -@item -iso_8859_8 -@tab -iso_8859_8:1988, iso_ir_138, iso8859_8, hebrew, csisolatinhebrew, iso88598 -@tab -table / iso_8859_8 -@tab -ISO 8859-8:1988 - Hebrew. - - -@item -iso_8859_9 -@tab -iso_8859_9:1989, iso_ir_148, iso8859_9, latin5, l5, csisolatin5, iso88599 -@tab -table / iso_8859_9 -@tab -ISO 8859-9:1989 - Latin 5, Turkish. - - -@item -iso_ir_111 -@tab -ecma_cyrillic, koi8_e, koi8e, csiso111ecmacyrillic -@tab -table / iso_ir_111 -@tab -ISO IR 111/ECMA Cyrillic. - - -@item -koi8_r -@tab -cskoi8r, koi8r, koi8 -@tab -table / koi8_r -@tab -RFC 1489 Cyrillic. - - -@item -koi8_ru -@tab -koi8ru -@tab -table / koi8_ru -@tab -The obsolete Ukrainian. - - -@item -koi8_u -@tab -koi8u -@tab -table / koi8_u -@tab -RFC 2319 Ukrainian. - - -@item -koi8_uni -@tab -koi8uni -@tab -table / koi8_uni -@tab -KOI8 Unified. - - -@item -ucs_2 -@tab -ucs2, iso_10646_ucs_2, iso10646_ucs_2, iso_10646_ucs2, iso10646_ucs2, iso10646ucs2, csUnicode -@tab -ucs_2 / (UCS) -@tab -ISO-10646-UCS-2. Big Endian, NBSP is always interpreted as NBSP (BOM isn't supported). - - -@item -ucs_2_internal -@tab -ucs2_internal, ucs_2internal, ucs2internal -@tab -ucs_2_internal / (UCS) -@tab -ISO-10646-UCS-2 in system byte order. -NBSP is always interpreted as NBSP (BOM isn't supported). - - -@item -ucs_2be -@tab -ucs2be -@tab -ucs_2 / (UCS) -@tab -Big Endian version of ISO-10646-UCS-2 (in fact, equivalent to ucs_2). -Big Endian, NBSP is always interpreted as NBSP (BOM isn't supported). - - -@item -ucs_2le -@tab -ucs2le -@tab -ucs_2 / (UCS) -@tab -Little Endian version of ISO-10646-UCS-2. -Little Endian, NBSP is always interpreted as NBSP (BOM isn't supported). - - -@item -ucs_4 -@tab -ucs4, iso_10646_ucs_4, iso10646_ucs_4, iso_10646_ucs4, iso10646_ucs4, iso10646ucs4 -@tab -ucs_4 / (UCS) -@tab -ISO-10646-UCS-4. Big Endian, NBSP is always interpreted as NBSP (BOM isn't supported). - - -@item -ucs_4_internal -@tab -ucs4_internal, ucs_4internal, ucs4internal -@tab -ucs_4_internal / (UCS) -@tab -ISO-10646-UCS-4 in system byte order. -NBSP is always interpreted as NBSP (BOM isn't supported). - - -@item -ucs_4be -@tab -ucs4be -@tab -ucs_4 / (UCS) -@tab -Big Endian version of ISO-10646-UCS-4 (in fact, equivalent to ucs_4). -Big Endian, NBSP is always interpreted as NBSP (BOM isn't supported). - - -@item -ucs_4le -@tab -ucs4le -@tab -ucs_4 / (UCS) -@tab -Little Endian version of ISO-10646-UCS-4. -Little Endian, NBSP is always interpreted as NBSP (BOM isn't supported). - - -@item -us_ascii -@tab -ansi_x3.4_1968, ansi_x3.4_1986, iso_646.irv:1991, ascii, iso646_us, us, ibm367, cp367, csascii -@tab -us_ascii / (ASCII) -@tab -7-bit ASCII. - - -@item -utf_16 -@tab -utf16 -@tab -utf_16 / (UCS) -@tab -RFC 2781 UTF-16. The very first NBSP code in stream is interpreted as BOM. - - -@item -utf_16be -@tab -utf16be -@tab -utf_16 / (UCS) -@tab -Big Endian version of RFC 2781 UTF-16. -NBSP is always interpreted as NBSP (BOM isn't supported). - - -@item -utf_16le -@tab -utf16le -@tab -utf_16 / (UCS) -@tab -Little Endian version of RFC 2781 UTF-16. -NBSP is always interpreted as NBSP (BOM isn't supported). - - -@item -utf_8 -@tab -utf8 -@tab -utf_8 / (UCS) -@tab -RFC 3629 UTF-8. - - -@item -win_1250 -@tab -cp1250 -@tab -@tab -Win-1250 Croatian. - - -@item -win_1251 -@tab -cp1251 -@tab -table / win_1251 -@tab -Win-1251 - Cyrillic. - - -@item -win_1252 -@tab -cp1252 -@tab -table / win_1252 -@tab -Win-1252 - Latin 1. - - -@item -win_1253 -@tab -cp1253 -@tab -table / win_1253 -@tab -Win-1253 - Greek. - - -@item -win_1254 -@tab -cp1254 -@tab -table / win_1254 -@tab -Win-1254 - Turkish. - - -@item -win_1255 -@tab -cp1255 -@tab -table / win_1255 -@tab -Win-1255 - Hebrew. - - -@item -win_1256 -@tab -cp1256 -@tab -table / win_1256 -@tab -Win-1256 - Arabic. - - -@item -win_1257 -@tab -cp1257 -@tab -table / win_1257 -@tab -Win-1257 - Baltic. - - -@item -win_1258 -@tab -cp1258 -@tab -table / win_1258 -@tab -Win-1258 - Vietnamese7 that supports Cyrillic. -@end multitable - - - - - -@page -@node iconv design decisions -@section iconv design decisions -@findex CCS table -@findex CES converter -@findex Speed-optimized tables -@findex Size-optimized tables -@* -The first iconv library design issue arises when considering the -following two design approaches: - -@enumerate -@item -Have modules which implement conversion from the encoding A to the encoding B -and vice versa i.e., one conversion module relates to any two encodings. -@item -Have modules which implement conversion from the encoding A to the fixed -encoding C and vice versa i.e., one conversion module relates to any -one encoding A and one fixed encoding C. In this case, to convert from -the encoding A to the encoding B, two modules are needed (in order to convert -from A to C and then from C to B). -@end enumerate - -@* -It's obvious, that we have tradeoff between commonality/flexibility and -efficiency: the first method is more efficient since it converts -directly; however, it isn't so flexible since for each -encoding pair a distinct module is needed. - -@* -The Newlib iconv model uses the second method and always converts through the 32-bit -UCS but its design also allows one to write specialized conversion -modules if the conversion speed is critical. - -@* -The second design issue is how to break down (decompose) encodings. -The Newlib iconv library uses the fact that any encoding may be -considered as one or more CCS plus a CES. It also decomposes its -conversion modules on @dfn{CES converter} plus one or more @dfn{CCS -tables}. CCS tables map CCS to UCS and vice versa; the CES converters -map CCS to the encoding and vice versa. - -@* -As the example, let's consider the conversion from the big5 encoding to -the EUC-TW encoding. The big5 encoding may be decomposed to the ASCII and BIG5 -CCS-es plus the BIG5 CES. EUC-TW may be decomposed on the CNS11643_PLANE1, CNS11643_PLANE2, -and CNS11643_PLANE14 CCS-es plus the EUC CES. - -@* -The euc_jp -> big5 conversion is performed as follows: - -@enumerate -@item -The EUC converter performs the EUC-TW encoding to the corresponding CCS-es -transformation (CNS11643_PLANE1, CNS11643_PLANE2 and CNS11643_PLANE14 -CCS-es); -@item -The obtained CCS codes are transformed to the UCS codes using the CNS11643_PLANE1, -CNS11643_PLANE2 and CNS11643_PLANE14 CCS tables; -@item -The resulting UCS codes are transformed to the ASCII and BIG5 codes using -the corresponding CCS tables; -@item -The obtained CCS codes are transformed to the big5 encoding using the corresponding -CES converter. -@end enumerate - -@* -Analogously, the backward conversion is performed as follows: - -@enumerate -@item -The BIG5 converter performs the big5 encoding to the corresponding CCS-es transformation -(the ASCII and BIG5 CCS-es); -@item -The obtained CCS codes are transformed to the UCS codes using the ASCII and BIG5 CCS tables; -@item -The resulting UCS codes are transformed to the ASCII and BIG5 codes using -the corresponding CCS tables; -@item -The obtained CCS codes are transformed to the EUC-TW encoding using the corresponding -CES converter. -@end enumerate - -@* -Note, the above is just an example and real names (which are implemented -in the Newlib iconv) of the CES converters and the CCS tables are slightly different. - -@* -The third design issue also relates to flexibility. Obviously, it isn't -desirable to always link all the CES converters and the CCS tables to the library -but instead, we want to be able to load the needed converters and tables -dynamically on demand. This isn't a problem on "big" machines such as -a PC, but it may be very problematical within "small" embedded systems. - -@* -Since the CCS tables are just data, it is possible to load them -dynamically from external files. The CES converters, on the other hand -are algorithms with some code so a dynamic library loading -capability is required. - -@* -Apart from possible restrictions applied by embedded systems (small -RAM for example), Newlib itself has no dynamic library support and -therefore, all the CES converters which will ever be used must be linked into -the library. However, loading of the dynamic CCS tables is possible and is -implemented in the Newlib iconv library. It may be enabled via the Newlib -configure script options. - -@* -The next design issue is fine-tuning the iconv library -configuration. One important ability is for iconv to not link all it's -converters and tables (if dynamic loading is not enabled) but instead, -enable only those encodings which are specified at configuration -time (see the section about the configure script options). - -@* -In addition, the Newlib iconv library configure options distinguish between -conversion directions. This means that not only are supported encodings -selectable, the conversion direction is as well. For example, if user wants -the configuration which allows conversions from UTF-8 to UTF-16 and -doesn't plan using the "UTF-16 to UTF-8" conversions, he or she can -enable only -this conversion direction (i.e., no "UTF-16 -> UTF-8"-related code will -be included) thus, saving some memory (note, that such technique allows to -exclude one half of a CCS table from linking which may be big enough). - -@* -One more design aspect are the speed- and size- optimized tables. Users can -select between them using configure script options. The -speed-optimized CCS tables are the same as the size-optimized ones in -case of 8-bit CCS (e.g.m KOI8-R), but for 16-bit CCS-es the size-optimized -CCS tables may be 1.5 to 2 times less then the speed-optimized ones. On the -other hand, conversion with speed tables is several times faster. - -@* -Its worth to stress that the new encoding support can't be -dynamically added into an already compiled Newlib library, even if it -needs only an additional CCS table and iconv is configured to use -the external files with CCS tables (this isn't the fundamental restriction -and the possibility to add new Table-based encoding support dynamically, by -means of just adding new .cct file, may be easily added). - -@* -Theoretically, the compiled-in CCS tables should be more appropriate for -embedded systems than dynamically loaded CCS tables. This is because the compiled-in tables are read-only and can be placed in ROM -whereas dynamic loading requires RAM. Moreover, in the current iconv -implementation, a distinct copy of the dynamic CCS file is loaded for each opened iconv descriptor even in case of the same encoding. -This means, for example, that if two iconv descriptors for -"KOI8-R -> UCS-4BE" and "KOI8-R -> UTF-16BE" are opened, two copies of -koi8-r .cct file will be loaded (actually, iconv loads only the needed part -of these files). On the other hand, in the case of compiled-in CCS tables, there will always be only one copy. - -@page -@node iconv configuration -@section iconv configuration -@findex iconv configuration -@findex --enable-newlib-iconv-encodings -@findex --enable-newlib-iconv-from-encodings -@findex --enable-newlib-iconv-to-encodings -@findex --enable-newlib-iconv-external-ccs -@findex NLSPATH -@* -To enable an encoding, the @emph{--enable-newlib-iconv-encodings} configure -script option should be used. This option accepts a comma-separated list -of @emph{encodings} that should be enabled. The option enables each encoding in both -("to" and "from") directions. - -@* -The @option{--enable-newlib-iconv-from-encodings} configure script option enables -"from" support for each encoding that was passed to it. - -@* -The @option{--enable-newlib-iconv-to-encodings} configure script option enables -"to" support for each encoding that was passed to it. - -@* -Example: if user plans only the "KOI8-R -> UTF-8", "UTF-8 -> ISO-8859-5" and -"KOI8-R -> UCS-2" conversions, the most optimal way (minimal iconv -code and data will be linked) is to configure Newlib with the following -options: -@* -@code{--enable-newlib-iconv-encodings=UTF-8 ---enable-newlib-iconv-from-encodings=KOI8-R ---enable-newlib-iconv-to-encodings=UCS-2,ISO-8859-5} -@* -which is the same as -@* -@code{--enable-newlib-iconv-from-encodings=KOI8-R,UTF-8 ---enable-newlib-iconv-to-encodings=UCS-2,ISO-8859-5,UTF-8} -@* -User may also just use the -@* -@code{--enable-newlib-iconv-encodings=KOI8-R,ISO-8859-5,UTF-8,UCS-2} -@* -configure script option, but it isn't so optimal since there will be -some unneeded data and code. - -@* -The @option{--enable-newlib-iconv-external-ccs} option enables iconv's -capabilities to work with the external CCS files. - -@* -The @option{--enable-target-optspace} Newlib configure script option also affects -the iconv library. If this option is present, the library uses the size -optimized CCS tables. This means, that only the size-optimized CCS -tables will be linked or, if the -@option{--enable-newlib-iconv-external-ccs} configure script option was used, -the iconv library will load the size-optimized tables. If the -@option{--enable-target-optspace}configure script option is disabled, -the speed-optimized CCS tables are used. - -@* -Note: .cct files are searched by iconv_open in the $NLSPATH/iconv_data/ directory. -Thus, the NLSPATH environment variable should be set. - - - - - -@page -@node Encoding names -@section Encoding names -@findex encoding name -@findex encoding alias -@findex normalized name -@* -Each encoding has one @dfn{name} and a number of @dfn{aliases}. When -user works with the iconv library (i.e., when the @code{iconv_open} call -is used) both name or aliases may be used. The same is when encoding -names are used in configure script options. - -@* -Names and aliases may be specified in any case (small or capital -letters) and the @kbd{-} symbol is equivalent to the @kbd{_} symbol. - -@* -Internally the Newlib iconv library always converts aliases to names. It -also converts names and aliases in the @dfn{normalized} form which means -that all capital letters are converted to small letters and the @kbd{-} -symbols are converted to @kbd{_} symbols. - - - - -@page -@node CCS tables -@section CCS tables -@findex Size-optimized CCS table -@findex Speed-optimized CCS table -@findex mktbl.pl Perl script -@findex .cct files -@findex The CCT tables source files -@findex CCS source files -@* -The iconv library stores files with CCS tables in the the @emph{ccs/} -subdirectory. The CCS tables for any CCS may be kept in two forms - in the binary form -(@dfn{.cct files}, see the @emph{ccs/binary/} subdirectory) and in form -of compilable .c source files. The .cct files are only used when the -@option{--enable-newlib-iconv-external-ccs} configure script option is enabled. -The .c files are linked to the Newlib library if the corresponding -encoding is enabled. - -@* -As stated earlier, the Newlib iconv library performs all -conversions through the 32-bit UCS, but the codes which are used -in most CCS-es, fit into the first 16-bit subset of the 32-bit UCS set. -Thus, in order to make the CCS tables more compact, the 16-bit UCS-2 is -used instead of the 32-bit UCS-4. - -@* -CCS tables may be 8- or 16-bit wide. 8-bit CCS tables map 8-bit CCS to -16-bit UCS-2 and vice versa while 16-bit CCS tables map -16-bit CCS to 16-bit UCS-2 and vice versa. -8-bit tables are small (in size) while 16-bit tables may be big enough. -Because of this, 16-bit CCS tables may be -either speed- or size-optimized. Size-optimized CCS tables are -smaller then speed-optimized ones, but the conversion process is -slower if the size-optimized CCS tables are used. 8-bit CCS tables have only -size-optimized variant. - -Each CCS table (both speed- and size-optimized) consists of -@dfn{from_ucs} and @dfn{to_ucs} subtables. "from_ucs" subtable maps -UCS-2 codes to CCS codes, while "to_ucs" subtable maps CCS codes to -UCS-2 codes. - -@* -Almost all 16-bit CCS tables contain less then 0xFFFF codes and -a lot of gaps exist. - -@subsection Speed-optimized tables format -@* -In case of 8-bit speed-optimized CCS tables the "to_ucs" subtables format is -trivial - it is just the array of 256 16-bit UCS codes. Therefore, an -UCS-2 code @emph{Y} corresponding to a @emph{X} CCS code is calculates -as @emph{Y = to_ucs[X]}. - -@* -Obviously, the simplest way to create the "from_ucs" table or the -16-bit "to_ucs" table is to use the huge 16-bit array like in case -of the 8-bit "to_ucs" table. But almost all the 16-bit CCS tables contain -less then 0xFFFF code maps and this fact may be exploited to reduce -the size of the CCS tables. - -@* -In this chapter the "UCS-2 -> CCS" 8-bit CCS table format is described. The -16-bit "CCS -> UCS-2" CCS table format is the same, except the mapping -direction and the CCS bits number. - -@* -In case of the 8-bit speed-optimized table the "from_ucs" subtable -corresponds the "from_ucs" array and has the following layout: - -@* -from_ucs array: -@* -------------------------------------- -@* -0xFF mapping (2 bytes) (only for -8-bit table). -@* -------------------------------------- -@* -Heading block -@* -------------------------------------- -@* -Block 1 -@* -------------------------------------- -@* -Block 2 -@* -------------------------------------- -@* - ... -@* -------------------------------------- -@* -Block N -@* -------------------------------------- - -@* -The 0x0000-0xFFFF 16-bit code range is divided to 256 code subranges. Each -subrange is represented by an 256-element @dfn{block} (256 1-byte -elements or 256 2-byte element in case of 16-bit CCS table) with -elements which are equivalent to the CCS codes of this subrange. -If the "UCS-2 -> CCS" mapping has big enough gaps, some blocks will be -absent and there will be less then 256 blocks. - -@* -Any element number @emph{m} of @dfn{the heading block} (which contains -256 2-byte elements) corresponds to the @emph{m}-th 256-element subrange. -If the subrange contains some codes, the value of the @emph{m}-th element of -the heading block contains the offset of the corresponding block in the -"from_ucs" array. If there is no codes in the subrange, the heading -block element contains 0xFFFF. - -@* -If there are some gaps in a block, the corresponding block elements have -the 0xFF value. If there is an 0xFF code present in the CCS, it's mapping -is defined in the first 2-byte element of the "from_ucs" array. - -@* -Having such a table format, the algorithm of searching the CCS code -@emph{X} which corresponds to the UCS-2 code @emph{Y} is as follows. - -@* -@enumerate -@item If @emph{Y} is equivalent to the value of the first 2-byte element -of the "from_ucs" array, @emph{X} is 0xFF. Else, continue to search. - -@item Calculate the block number: @emph{BlkN = (Y & 0xFF00) >> 8}. - -@item If the heading block element with number @emph{BlkN} is 0xFFFF, there -is no corresponding CCS code (error, wrong input data). Else, fetch the -"flom_ucs" array index of the @emph{BlkN}-th block. - -@item Calculate the offset of the @emph{X} code in its block: -@emph{Xindex = Y & 0xFF} - -@item If the @emph{Xindex}-th element of the block (which is equivalent to -@emph{from_ucs[BlkN+Xindex]}) value is 0xFF, there is no corresponding -CCS code (error, wrong input data). Else, @emph{X = from_ucs[BlkN+Xindex]}. -@end enumerate - -@subsection Size-optimized tables format -@* -As it is stated above, size-optimized tables exist only for 16-bit CCS-es. -This is because there is too small difference between the speed-optimized -and the size-optimized table sizes in case of 8-bit CCS-es. - -@* -Formats of the "to_ucs" and "from_ucs" subtables are equivalent in case of -size-optimized tables. - -This sections describes the format of the "UCS-2 -> CCS" size-optimized -CCS table. The format of "CCS -> UCS-2" table is the same. - -The idea of the size-optimized tables is to split the UCS-2 codes -("from" codes) on @dfn{ranges} (@dfn{range} is a number of consecutive UCS-2 codes). -Then CCS codes ("to" codes) are stored only for the codes from these -ranges. Distinct "from" codes, which have no range (@dfn{unranged codes}, are stored -together with the corresponding "to" codes. - -@* -The following is the layout of the size-optimized table array: - -@* -size_arr array: -@* -------------------------------------- -@* -Ranges number (2 bytes) -@* -------------------------------------- -@* -Unranged codes number (2 bytes) -@* -------------------------------------- -@* -Unranged codes array index (2 bytes) -@* -------------------------------------- -@* -Ranges indexes (triads) -@* -------------------------------------- -@* -Ranges -@* -------------------------------------- -@* -Unranged codes array -@* -------------------------------------- - -@* -The @dfn{Unranged codes array index} @emph{size_arr} section helps to find -the offset of the needed range in the @emph{size_arr} and has -the following format (triads): -@* -the first code in range, the last code in range, range offset. - -@* -The array of these triads is sorted by the firs element, therefore it is -possible to quickly find the needed range index. - -@* -Each range has the corresponding sub-array containing the "to" codes. These -sub-arrays are stored in the place marked as "Ranges" in the layout -diagram. - -@* -The "Unranged codes array" contains pairs ("from" code, "to" code") for -each unranged code. The array of these pairs is sorted by "from" code -values, therefore it is possible to find the needed pair quickly. - -@* -Note, that each range requires 6 bytes to form its index. If, for -example, there are two ranges (1 - 5 and 9 - 10), and one unranged code -(7), 12 bytes are needed for two range indexes and 4 bytes for the unranged -code (total 16). But it is better to join both ranges as 1 - 10 and -mark codes 6 and 8 as absent. In this case, only 6 additional bytes for the -range index and 4 bytes to mark codes 6 and 8 as absent are needed -(total 10 bytes). This optimization is done in the size-optimized tables. -Thus, ranges may contain small gaps. The absent codes in ranges are marked -as 0xFFFF. - -@* -Note, a pair of "from" codes is stored by means of unranged codes since -the number of bytes which are needed to form the range is greater than -the number of bytes to store two unranged codes (5 against 4). - -@* -The algorithm of searching of the CCS code -@emph{X} which corresponds to the UCS-2 code @emph{Y} (input) in the "UCS-2 -> -CCS" size-optimized table is as follows. - -@* -@enumerate -@item Try to find the corresponding triad in the "Unranged codes array -index". Since we are searching in the sorted array, we can do it quickly -(divide by 2, compare, etc). - -@item If the triad is found, fetch the @emph{X} code from the corresponding -range array. If it is 0xFFFF, return an error. - -@item If there is no corresponding triad, search the @emph{X} code among the -sorted unranged codes. Return error, if noting was found. -@end enumerate - -@subsection .cct ant .c CCS Table files -@* -The .c source files for 8-bit CCS tables have "to_ucs" and "from_ucs" -speed-optimized tables. The .c source files for 16-bit CCS tables have -"to_ucs_speed", "to_ucs_size", "from_ucs_speed" and "from_ucs_size" -tables. - -@* -When .c files are compiled and used, all the 16-bit and 32-bit values -have the native endian format (Big Endian for the BE systems and Little -Endian for the LE systems) since they are compile for the system before -they are used. - -@* -In case of .cct files, which are intended for dynamic CCS tables -loading, the CCS tables are stored either in LE or BE format. Since the -.cct files are generated by the 'mktbl.pl' Perl script, it is possible -to choose the endianess of the tables. It is also possible to store two -copies (both LE and BE) of the CCS tables in one .cct file. The default -.cct files (which come with the Newlib sources) have both LE and BE CCS -tables. The Newlib iconv library automatically chooses the needed CCS tables -(with appropriate endianess). - -@* -Note, the .cct files are only used when the -@option{--enable-newlib-iconv-external-ccs} is used. - -@subsection The 'mktbl.pl' Perl script -@* -The 'mktbl.pl' script is intended to generate .cct and .c CCS table -files from the @dfn{CCS source files}. - -@* -The CCS source files are just text files which has one or more colons -with CCS <-> UCS-2 codes mapping. To see an example of the CCS table -source files see one of them using URL-s which will be given bellow. - -@* -The following table describes where the source files for CCS table files -provided by the Newlib distribution are located. - -@multitable @columnfractions .25 .75 -@item -Name -@tab -URL - -@item -@tab - -@item -big5 -@tab -http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT - -@item -cns11643_plane1 -cns11643_plane14 -cns11643_plane2 -@tab -http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/CNS11643.TXT - -@item -cp775 -cp850 -cp852 -cp855 -cp866 -@tab -http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/ - -@item -iso_8859_1 -iso_8859_2 -iso_8859_3 -iso_8859_4 -iso_8859_5 -iso_8859_6 -iso_8859_7 -iso_8859_8 -iso_8859_9 -iso_8859_10 -iso_8859_11 -iso_8859_13 -iso_8859_14 -iso_8859_15 -@tab -http://www.unicode.org/Public/MAPPINGS/ISO8859/ - -@item -iso_ir_111 -@tab -http://crl.nmsu.edu/~mleisher/csets/ISOIR111.TXT - -@item -jis_x0201_1976 -jis_x0208_1990 -jis_x0212_1990 -@tab -http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0201.TXT - -@item -koi8_r -@tab -http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT - -@item -koi8_ru -@tab -http://crl.nmsu.edu/~mleisher/csets/KOI8RU.TXT - -@item -koi8_u -@tab -http://crl.nmsu.edu/~mleisher/csets/KOI8U.TXT - -@item -koi8_uni -@tab -http://crl.nmsu.edu/~mleisher/csets/KOI8UNI.TXT - -@item -ksx1001 -@tab -http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/KSC/KSX1001.TXT - -@item -win_1250 -win_1251 -win_1252 -win_1253 -win_1254 -win_1255 -win_1256 -win_1257 -win_1258 -@tab -http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/ -@end multitable - -The CCS source files aren't distributed with Newlib because of License -restrictions in most Unicode.org's files. - -The following are 'mktbl.pl' options which were used to generate .cct -files. Note, to generate CCS tables source files @option{-s} option -should be added. - -@enumerate -@item For the iso_8859_10.cct, iso_8859_13.cct, iso_8859_14.cct, iso_8859_15.cct, -iso_8859_1.cct, iso_8859_2.cct, iso_8859_3.cct, iso_8859_4.cct, -iso_8859_5.cct, iso_8859_6.cct, iso_8859_7.cct, iso_8859_8.cct, -iso_8859_9.cct, iso_8859_11.cct, win_1250.cct, win_1252.cct, win_1254.cct -win_1256.cct, win_1258.cct, win_1251.cct, -win_1253.cct, win_1255.cct, win_1257.cct, -koi8_r.cct, koi8_ru.cct, koi8_u.cct, koi8_uni.cct, iso_ir_111.cct, -big5.cct, cp775.cct, cp850.cct, cp852.cct, cp855.cct, cp866.cct, cns11643.cct -files, only the @option{-i } option were used. - -@item To generate the jis_x0208_1990.cct file, the -@option{-i jis_x0208_1990.txt -x 2 -y 3} options were used. - -@item To generate the cns11643_plane1.cct file, the -@option{-i cns11643.txt -p1 -N cns11643_plane1 -o cns11643_plane1.cct} -options were used. - -@item To generate the cns11643_plane2.cct file, the -@option{-i cns11643.txt -p2 -N cns11643_plane2 -o cns11643_plane2.cct} -options were used. - -@item To generate the cns11643_plane14.cct file, the -@option{-i cns11643.txt -p0xE -N cns11643_plane14 -o cns11643_plane14.cct} -options were used. -@end enumerate - -@* -For more info about the 'mktbl.pl' options, see the 'mktbl.pl -h' output. - -@* -It is assumed that CCS codes are 16 or less bits wide. If there are wider CCS codes -in the CCS source file, the bits which are higher then 16 defines plane (see the -cns11643.txt CCS source file). - -@* -Sometimes, it is impossible to map some CCS codes to the 16-bit UCS if, for example, -several different CCS codes are mapped to one UCS-2 code or one CCS code is mapped to -the pair of UCS-2 codes. In these cases, such CCS codes (@dfn{lost -codes}) aren't just rejected but instead, they are mapped to the default -UCS-2 code (which is currently the @kbd{?} character's code). - - - - - -@page -@node CES converters -@section CES converters -@findex PCS -@* -Similar to the CCS tables, CES converters are also split into "from UCS" -and "to UCS" parts. Depending on the iconv library configuration, these -parts are enabled or disabled. - -@* -The following it the list of CES converters which are currently present -in the Newlib iconv library. - -@itemize @bullet -@item -@emph{euc} - supports the @emph{euc_jp}, @emph{euc_kr} and @emph{euc_tw} -encodings. The @emph{euc} CES converter uses the @emph{table} and the -@emph{us_ascii} CES converters. - -@item -@emph{table} - this CES converter corresponds to "null" and just performs -tables-based conversion using 8- and 16-bit CCS tables. This converter -is also used by any other CES converter which needs the CCS table-based -conversions. The @emph{table} converter is also responsible for .cct files -loading. - -@item -@emph{table_pcs} - this is the wrapper over the @emph{table} converter -which is intended for 16-bit encodings which also use the @dfn{Portable -Character Set} (@dfn{PCS}) which is the same as the @emph{US-ASCII}. -This means, that if the first byte the CCS code is in range of [0x00-0x7f], -this is the 7-bit PCS code. Else, this is the 16-bit CCS code. Of course, -the 16-bit codes must not contain bytes in the range of [0x00-0x7f]. -The @emph{big5} encoding uses the @emph{table_pcs} CES converter and the -@emph{table_pcs} CES converter depends on the @emph{table} CES converter. - -@item -@emph{ucs_2} - intended for the @emph{ucs_2}, @emph{ucs_2be} and -@emph{ucs_2le} encodings support. - -@item -@emph{ucs_4} - intended for the @emph{ucs_4}, @emph{ucs_4be} and -@emph{ucs_4le} encodings support. - -@item -@emph{ucs_2_internal} - intended for the @emph{ucs_2_internal} encoding support. - -@item -@emph{ucs_4_internal} - intended for the @emph{ucs_4_internal} encoding support. - -@item -@emph{us_ascii} - intended for the @emph{us_ascii} encoding support. In -principle, the most natural way to support the @emph{us_ascii} encoding -is to define the @emph{us_ascii} CCS and use the @emph{table} CES -converter. But for the optimization purposes, the specialized -@emph{us_ascii} CES converter was created. - -@item -@emph{utf_16} - intended for the @emph{utf_16}, @emph{utf_16be} and -@emph{utf_16le} encodings support. - -@item -@emph{utf_8} - intended for the @emph{utf_8} encoding support. -@end itemize - - - - - -@page -@node The encodings description file -@section The encodings description file -@findex encoding.deps description file -@findex mkdeps.pl Perl script -@* -To simplify the process of adding new encodings support allowing to -automatically generate a lot of "glue" files. - -@* -There is the 'encoding.deps' file in the @emph{lib/} subdirectory which -is used to describe encoding's properties. The 'mkdeps.pl' Perl script -uses 'encoding.deps' to generates the "glue" files. - -@* -The 'encoding.deps' file is composed of sections, each section consists -of entries, each entry contains some encoding/CES/CCS description. - -@* -The 'encoding.deps' file's syntax is very simple. Currently only two -sections are defined: @emph{ENCODINGS} and @emph{CES_DEPENDENCIES}. - -@* -Each @emph{ENCODINGS} section's entry describes one encoding and -contains the following information. - -@itemize @bullet -@item -Encoding name (the @emph{ENCODING} field). The name should -be unique and only one name is possible. - -@item -The encoding's CES converter name (the @emph{CES} field). Only one CES -converter is allowed. - -@item -The whitespace-separated list of CCS table names which are used by the -encoding (the @emph{CCS} field). - -@item -The whitespace-separated list of aliases names (the @emph{ENCODING} -field). -@end itemize - -@* -Note all names in the 'encoding.deps' file have to have the normalized -form. - -@* -Each @emph{CES_DEPENDENCIES} section's entry describes dependencies of -one CES converted. For example, the @emph{euc} CES converter depends on -the @emph{table} and the @emph{us_ascii} CES converter since the -@emph{euc} CES converter uses them. This means, that both @emph{table} -and @emph{us_ascii} CES converters should be linked if the @emph{euc} -CES converter is enabled. - -@* -The @emph{CES_DEPENDENCIES} section defines the following: - -@itemize @bullet -@item -the CES converter name for which the dependencies are defined in this -entry (the @emph{CES} field); - -@item -the whitespace-separated list of CES converters which are needed for -this CES converter (the @emph{USED_CES} field). -@end itemize - -@* -The 'mktbl.pl' Perl script automatically solves the following tasks. - -@itemize @bullet -@item -User works with the iconv library in terms of encodings and doesn't know -anything about CES converters and CCS tables. The script automatically -generates code which enables all needed CES converters and CCS tables -for all encodings, which were enabled by the user. - -@item -The CES converters may have dependencies and the script automatically -generates the code which handles these dependencies. - -@item -The list of encoding's aliases is also automatically generated. - -@item -The script uses a lot of macros in order to enable only the minimum set -of code/data which is needed to support the requested encodings in the -requested directions. -@end itemize - -@* -The 'mktbl.pl' Perl script is intended to interpret the 'encoding.deps' -file and generates the following files. - -@itemize @bullet -@item -@emph{lib/encnames.h} - this header files contains macro definitions for all -encoding names - -@item -@emph{lib/aliasesbi.c} - the array of encoding names and aliases. The array -is used to find the name of requested encoding by it's alias. - -@item -@emph{ces/cesbi.c} - this file defines two arrays -(@code{_iconv_from_ucs_ces} and @code{_iconv_to_ucs_ces}) which contain -description of enabled "to UCS" and "from UCS" CES converters and the -names of encodings which are supported by these CES converters. - -@item -@emph{ces/cesbi.h} - this file contains the set of macros which defines -the set of CES converters which should be enabled if only the set of -enabled encodings is given (through macros defined in the -@emph{newlib.h} file). Note, that one CES converter may handle several -encodings. - -@item -@emph{ces/cesdeps.h} - the CES converters dependencies are handled in -this file. - -@item -@emph{ccs/ccsdeps.h} - the array of linked-in CCS tables is defined -here. - -@item -@emph{ccs/ccsnames.h} - this header files contains macro definitions for all -CCS names. - -@item -@emph{encoding.aliases} - the list of supported encodings and their -aliases which is intended for the Newlib configure scripts in order to -handle the iconv-related configure script options. -@end itemize - - - - - -@page -@node How to add new encoding -@section How to add new encoding -@* -At first, the new encoding should be broken down to CCS and CES. Then, -the process of adding new encoding is split to the following activities. - -@enumerate -@item Generate the .cct CCS file and the .c source file for the new -encoding's CCS (if it isn't already present). To do this, the CCS source -file should be had and the 'mktbl.pl' script should be used. - -@item Write the corresponding CES converter (if it isn't already -present). Use the existing CES converters as an example. - -@item -Add the corresponding entries to the 'encoding.deps' file and regenerate -the autogenerated "glue" files using the 'mkdeps.pl' script. - -@item -Don't forget to add entries to the newlib/newlib.hin file. - -@item -Of course, the 'Makefile.am'-s should also be updated (if new files were -added) and the 'Makefile.in'-s should be regenerated using the correct -version of 'automake'. - -@item -Don't forget to update the documentation (the list of -supported encodings and CES converters). -@end enumerate - -In case a new encoding doesn't fit to the CES/CCS decomposition model or -it is desired to add the specialized (non UCS-based) conversion support, -the Newlib iconv library code should be upgraded. - - - - - -@page -@node The locale support interfaces -@section The locale support interfaces -@* -The newlib iconv library also has some interface functions (besides the -@code{iconv}, @code{iconv_open} and @code{iconv_close} interfaces) which -are intended for the Locale subsystem. All the locale-related code is -placed in the @emph{lib/iconvnls.c} file. - -@* -The following is the description of the locale-related interfaces: - -@itemize @bullet -@item -@code{_iconv_nls_open} - opens two iconv descriptors for "CCS -> -wchar_t" and "wchar_t -> CCS" conversions. The normalized CCS name is -passed in the function parameters. The @emph{wchar_t} characters encoding is -either ucs_2_internal or ucs_4_internal depending on size of -@emph{wchar_t}. - -@item -@code{_iconv_nls_conv} - the function is similar to the @code{iconv} -functions, but if there is no character in the output encoding which -corresponds to the character in the input encoding, the default -conversion isn't performed (the @code{iconv} function sets such output -characters to the @kbd{?} symbol and this is the behavior, which is -specified in SUSv3). - -@item -@code{_iconv_nls_get_state} - returns the current encoding's shift state -(the @code{mbstate_t} object). - -@item -@code{_iconv_nls_set_state} sets the current encoding's shift state (the -@code{mbstate_t} object). - -@item -@code{_iconv_nls_is_stateful} - checks whether the encoding is stateful -or stateless. - -@item -@code{_iconv_nls_get_mb_cur_max} - returns the maximum length (the -maximum bytes number) of the encoding's characters. -@end itemize - - - - -@page -@node Contact -@section Contact -@* -The author of the original BSD iconv library (Alexander Chuguev) no longer -supports that code. - -@* -Any questions regarding the iconv library may be forwarded to -Artem B. Bityuckiy (dedekind@@oktetlabs.ru or dedekind@@mail.ru) as -well as to the public Newlib mailing list. - diff --git a/lib/iconv/lib/Makefile.inc b/lib/iconv/lib/Makefile.inc deleted file mode 100644 index 96e196c..0000000 --- a/lib/iconv/lib/Makefile.inc +++ /dev/null @@ -1,16 +0,0 @@ -if ENABLE_NEWLIB_ICONV - -## The following interfaces are EL/IX level 2 -if !ELIX_LEVEL_1 -libc_a_SOURCES += \ - %D%/aliasesi.c \ - %D%/ucsconv.c \ - %D%/nullconv.c \ - %D%/iconv.c \ - %D%/aliasesbi.c \ - %D%/iconvnls.c -endif - -endif - -LIBC_CHEWOUT_FILES += %D%/iconv.def diff --git a/lib/iconv/lib/aliasesbi.c b/lib/iconv/lib/aliasesbi.c deleted file mode 100644 index 83b6fd0..0000000 --- a/lib/iconv/lib/aliasesbi.c +++ /dev/null @@ -1,212 +0,0 @@ -/* - * This file was automatically generated mkdeps.pl script. Don't edit. - */ - -#include <_ansi.h> -#include "encnames.h" - -const char -_iconv_aliases[] = -{ -#if defined (_ICONV_FROM_ENCODING_BIG5) \ - || defined (_ICONV_TO_ENCODING_BIG5) - ICONV_ENCODING_BIG5 " csbig5 big_five bigfive cn_big5 cp950\n" -#endif -#if defined (_ICONV_FROM_ENCODING_CP775) \ - || defined (_ICONV_TO_ENCODING_CP775) - ICONV_ENCODING_CP775 " ibm775 cspc775baltic\n" -#endif -#if defined (_ICONV_FROM_ENCODING_CP850) \ - || defined (_ICONV_TO_ENCODING_CP850) - ICONV_ENCODING_CP850 " ibm850 850 cspc850multilingual\n" -#endif -#if defined (_ICONV_FROM_ENCODING_CP852) \ - || defined (_ICONV_TO_ENCODING_CP852) - ICONV_ENCODING_CP852 " ibm852 852 cspcp852\n" -#endif -#if defined (_ICONV_FROM_ENCODING_CP855) \ - || defined (_ICONV_TO_ENCODING_CP855) - ICONV_ENCODING_CP855 " ibm855 855 csibm855\n" -#endif -#if defined (_ICONV_FROM_ENCODING_CP866) \ - || defined (_ICONV_TO_ENCODING_CP866) - ICONV_ENCODING_CP866 " 866 IBM866 CSIBM866\n" -#endif -#if defined (_ICONV_FROM_ENCODING_EUC_JP) \ - || defined (_ICONV_TO_ENCODING_EUC_JP) - ICONV_ENCODING_EUC_JP " eucjp\n" -#endif -#if defined (_ICONV_FROM_ENCODING_EUC_KR) \ - || defined (_ICONV_TO_ENCODING_EUC_KR) - ICONV_ENCODING_EUC_KR " euckr\n" -#endif -#if defined (_ICONV_FROM_ENCODING_EUC_TW) \ - || defined (_ICONV_TO_ENCODING_EUC_TW) - ICONV_ENCODING_EUC_TW " euctw\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_1) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_1) - ICONV_ENCODING_ISO_8859_1 " iso8859_1 iso88591 iso_8859_1:1987 iso_ir_100 latin1 l1 ibm819 cp819 csisolatin1\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_10) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_10) - ICONV_ENCODING_ISO_8859_10 " iso_8859_10:1992 iso_ir_157 iso885910 latin6 l6 csisolatin6 iso8859_10\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_11) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_11) - ICONV_ENCODING_ISO_8859_11 " iso8859_11 iso885911\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_13) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_13) - ICONV_ENCODING_ISO_8859_13 " iso_8859_13:1998 iso8859_13 iso885913\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_14) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_14) - ICONV_ENCODING_ISO_8859_14 " iso_8859_14:1998 iso885914 iso8859_14\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_15) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_15) - ICONV_ENCODING_ISO_8859_15 " iso885915 iso_8859_15:1998 iso8859_15 \n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_2) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_2) - ICONV_ENCODING_ISO_8859_2 " iso8859_2 iso88592 iso_8859_2:1987 iso_ir_101 latin2 l2 csisolatin2\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_3) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_3) - ICONV_ENCODING_ISO_8859_3 " iso_8859_3:1988 iso_ir_109 iso8859_3 latin3 l3 csisolatin3 iso88593\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_4) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_4) - ICONV_ENCODING_ISO_8859_4 " iso8859_4 iso88594 iso_8859_4:1988 iso_ir_110 latin4 l4 csisolatin4\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_5) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_5) - ICONV_ENCODING_ISO_8859_5 " iso8859_5 iso88595 iso_8859_5:1988 iso_ir_144 cyrillic csisolatincyrillic\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_6) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_6) - ICONV_ENCODING_ISO_8859_6 " iso_8859_6:1987 iso_ir_127 iso8859_6 ecma_114 asmo_708 arabic csisolatinarabic iso88596\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_7) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_7) - ICONV_ENCODING_ISO_8859_7 " iso_8859_7:1987 iso_ir_126 iso8859_7 elot_928 ecma_118 greek greek8 csisolatingreek iso88597\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_8) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_8) - ICONV_ENCODING_ISO_8859_8 " iso_8859_8:1988 iso_ir_138 iso8859_8 hebrew csisolatinhebrew iso88598\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_8859_9) \ - || defined (_ICONV_TO_ENCODING_ISO_8859_9) - ICONV_ENCODING_ISO_8859_9 " iso_8859_9:1989 iso_ir_148 iso8859_9 latin5 l5 csisolatin5 iso88599\n" -#endif -#if defined (_ICONV_FROM_ENCODING_ISO_IR_111) \ - || defined (_ICONV_TO_ENCODING_ISO_IR_111) - ICONV_ENCODING_ISO_IR_111 " ecma_cyrillic koi8_e koi8e csiso111ecmacyrillic\n" -#endif -#if defined (_ICONV_FROM_ENCODING_KOI8_R) \ - || defined (_ICONV_TO_ENCODING_KOI8_R) - ICONV_ENCODING_KOI8_R " cskoi8r koi8r koi8\n" -#endif -#if defined (_ICONV_FROM_ENCODING_KOI8_RU) \ - || defined (_ICONV_TO_ENCODING_KOI8_RU) - ICONV_ENCODING_KOI8_RU " koi8ru\n" -#endif -#if defined (_ICONV_FROM_ENCODING_KOI8_U) \ - || defined (_ICONV_TO_ENCODING_KOI8_U) - ICONV_ENCODING_KOI8_U " koi8u\n" -#endif -#if defined (_ICONV_FROM_ENCODING_KOI8_UNI) \ - || defined (_ICONV_TO_ENCODING_KOI8_UNI) - ICONV_ENCODING_KOI8_UNI " koi8uni\n" -#endif -#if defined (_ICONV_FROM_ENCODING_UCS_2) \ - || defined (_ICONV_TO_ENCODING_UCS_2) - ICONV_ENCODING_UCS_2 " ucs2 iso_10646_ucs_2 iso10646_ucs_2 iso_10646_ucs2 iso10646_ucs2 iso10646ucs2 csUnicode\n" -#endif -#if defined (_ICONV_FROM_ENCODING_UCS_2_INTERNAL) \ - || defined (_ICONV_TO_ENCODING_UCS_2_INTERNAL) - ICONV_ENCODING_UCS_2_INTERNAL " ucs2_internal ucs_2internal ucs2internal\n" -#endif -#if defined (_ICONV_FROM_ENCODING_UCS_2BE) \ - || defined (_ICONV_TO_ENCODING_UCS_2BE) - ICONV_ENCODING_UCS_2BE " ucs2be\n" -#endif -#if defined (_ICONV_FROM_ENCODING_UCS_2LE) \ - || defined (_ICONV_TO_ENCODING_UCS_2LE) - ICONV_ENCODING_UCS_2LE " ucs2le\n" -#endif -#if defined (_ICONV_FROM_ENCODING_UCS_4) \ - || defined (_ICONV_TO_ENCODING_UCS_4) - ICONV_ENCODING_UCS_4 " ucs4 iso_10646_ucs_4 iso10646_ucs_4 iso_10646_ucs4 iso10646_ucs4 iso10646ucs4\n" -#endif -#if defined (_ICONV_FROM_ENCODING_UCS_4_INTERNAL) \ - || defined (_ICONV_TO_ENCODING_UCS_4_INTERNAL) - ICONV_ENCODING_UCS_4_INTERNAL " ucs4_internal ucs_4internal ucs4internal\n" -#endif -#if defined (_ICONV_FROM_ENCODING_UCS_4BE) \ - || defined (_ICONV_TO_ENCODING_UCS_4BE) - ICONV_ENCODING_UCS_4BE " ucs4be\n" -#endif -#if defined (_ICONV_FROM_ENCODING_UCS_4LE) \ - || defined (_ICONV_TO_ENCODING_UCS_4LE) - ICONV_ENCODING_UCS_4LE " ucs4le\n" -#endif -#if defined (_ICONV_FROM_ENCODING_US_ASCII) \ - || defined (_ICONV_TO_ENCODING_US_ASCII) - ICONV_ENCODING_US_ASCII " ansi_x3.4_1968 ansi_x3.4_1986 iso_646.irv:1991 ascii iso646_us us ibm367 cp367 csascii \n" -#endif -#if defined (_ICONV_FROM_ENCODING_UTF_16) \ - || defined (_ICONV_TO_ENCODING_UTF_16) - ICONV_ENCODING_UTF_16 " utf16\n" -#endif -#if defined (_ICONV_FROM_ENCODING_UTF_16BE) \ - || defined (_ICONV_TO_ENCODING_UTF_16BE) - ICONV_ENCODING_UTF_16BE " utf16be\n" -#endif -#if defined (_ICONV_FROM_ENCODING_UTF_16LE) \ - || defined (_ICONV_TO_ENCODING_UTF_16LE) - ICONV_ENCODING_UTF_16LE " utf16le\n" -#endif -#if defined (_ICONV_FROM_ENCODING_UTF_8) \ - || defined (_ICONV_TO_ENCODING_UTF_8) - ICONV_ENCODING_UTF_8 " utf8\n" -#endif -#if defined (_ICONV_FROM_ENCODING_WIN_1250) \ - || defined (_ICONV_TO_ENCODING_WIN_1250) - ICONV_ENCODING_WIN_1250 " cp1250\n" -#endif -#if defined (_ICONV_FROM_ENCODING_WIN_1251) \ - || defined (_ICONV_TO_ENCODING_WIN_1251) - ICONV_ENCODING_WIN_1251 " cp1251\n" -#endif -#if defined (_ICONV_FROM_ENCODING_WIN_1252) \ - || defined (_ICONV_TO_ENCODING_WIN_1252) - ICONV_ENCODING_WIN_1252 " cp1252\n" -#endif -#if defined (_ICONV_FROM_ENCODING_WIN_1253) \ - || defined (_ICONV_TO_ENCODING_WIN_1253) - ICONV_ENCODING_WIN_1253 " cp1253\n" -#endif -#if defined (_ICONV_FROM_ENCODING_WIN_1254) \ - || defined (_ICONV_TO_ENCODING_WIN_1254) - ICONV_ENCODING_WIN_1254 " cp1254\n" -#endif -#if defined (_ICONV_FROM_ENCODING_WIN_1255) \ - || defined (_ICONV_TO_ENCODING_WIN_1255) - ICONV_ENCODING_WIN_1255 " cp1255\n" -#endif -#if defined (_ICONV_FROM_ENCODING_WIN_1256) \ - || defined (_ICONV_TO_ENCODING_WIN_1256) - ICONV_ENCODING_WIN_1256 " cp1256\n" -#endif -#if defined (_ICONV_FROM_ENCODING_WIN_1257) \ - || defined (_ICONV_TO_ENCODING_WIN_1257) - ICONV_ENCODING_WIN_1257 " cp1257\n" -#endif -#if defined (_ICONV_FROM_ENCODING_WIN_1258) \ - || defined (_ICONV_TO_ENCODING_WIN_1258) - ICONV_ENCODING_WIN_1258 " cp1258\n" -#endif - "" -}; diff --git a/lib/iconv/lib/aliasesi.c b/lib/iconv/lib/aliasesi.c deleted file mode 100644 index ef5ce41..0000000 --- a/lib/iconv/lib/aliasesi.c +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" - -/* - * canonical_form - canonize 'str'. - * - * PARAMETERS: - * struct _reent *rptr - reent structure of current thread/process. - * const char *str - string to canonize. - * - * DESCRIPTION: - * Converts all letters to small and substitute all '-' characters by '_' - * characters. - * - * RETURN: - * Returns canonical form of 'str' if success, NULL if failure. - */ -static const char * -canonical_form (struct _reent *rptr, - const char *str) -{ - char *p, *p1; - - if (str == NULL || (p = p1 = _strdup_r (rptr, str)) == NULL) - return (const char *)NULL; - - for (; *str; str++, p++) - { - if (*str == '-') - *p = '_'; - else - *p = tolower (*str); - } - - return (const char *)p1; -} - -/* - * find_alias - find encoding name name by it's alias. - * - * PARAMETERS: - * struct _reent *rptr - reent structure of current thread/process. - * const char *alias - alias by which "official" name should be found. - * const char *table - aliases table. - * int len - aliases table length. - * - * DESCRIPTION: - * 'table' contains the list of encoding names and aliases. - * Names go first, e.g.: - * - * name1 alias11 alias12 alias1N - * name2 alias21 alias22 alias2N - * nameM aliasM1 aliasM2 aliasMN - * - * If line begins with backspace it is considered as the continuation of - * previous line. - * - * RETURN: - * Returns pointer to name found if success. In case of error returns NULL - * and sets current thread's/process's errno. - */ -static char * -find_alias (struct _reent *rptr, - const char *alias, - const char *table, - int len) -{ - const char *end; - const char *p; - int l = strlen (alias); - const char *ptable = table; - const char *table_end = table + len; - - if (table == NULL || alias == NULL || *table == '\0' || *alias == '\0') - return NULL; - -search_again: - if (len < l || (p = strnstr (ptable, alias, len)) == NULL) - return NULL; - - /* Check that substring is segregated by '\n', '\t' or ' ' */ - if (!((p == table || isspace (*(p-1)) || *(p-1) == '\n') - && (p+l == table_end || isspace (*(p+l)) || *(p+l) == '\n'))) - { - ptable = p + l; - len = table_end - ptable; - goto search_again; - } - - while(--p > table && *p != '\n'); - - if (*(++p) == '#') - return NULL; - - for (end = p + 1; !isspace (*end) && *end != '\n' && *end != '\0'; end++); - - return _strndup_r (rptr, p, (size_t)(end - p)); -} - -/* - * _iconv_resolve_encoding_name - resolves encoding's name by given alias. - * - * PARAMETERS: - * struct _reent *rptr - reent structure of current thread/process. - * const char *ca - encoding alias to resolve. - * - * DESCRIPTION: - * First, tries to find 'ca' among built-in aliases. If not found, tries to - * find it external file. - * - * RETURN: - * Encoding name if found. In case of error returns NULL - * and sets current thread's/process's errno. - */ -char * -_iconv_resolve_encoding_name (struct _reent *rptr, - const char *ca) -{ - char *p = (char *)ca; - - /* Alias shouldn't contain white spaces, '\n' and '\r' symbols */ - while (*p) - if (*p == ' ' || *p == '\r' || *p++ == '\n') - return NULL; - - if ((ca = canonical_form (rptr, ca)) == NULL) - return NULL; - - p = find_alias (rptr, ca, _iconv_aliases, strlen (_iconv_aliases)); - - _free_r (rptr, (void *)ca); - return p; -} - diff --git a/lib/iconv/lib/conv.h b/lib/iconv/lib/conv.h deleted file mode 100644 index 658ab91..0000000 --- a/lib/iconv/lib/conv.h +++ /dev/null @@ -1,221 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#ifndef __ICONV_CONVERSION_H__ -#define __ICONV_CONVERSION_H__ - -#include <_ansi.h> -#include -#include -#include - -/* Bits for 'flags' parameter of 'convert' call */ -#define ICONV_DONT_SAVE_BIT 1 -#define ICONV_FAIL_BIT 2 - -/* - * iconv_conversion_handlers_t - keeps iconv conversion handlers. - * - * Keeps 6 interface function handlers: - * open(), close(), convert(), get_mb_cur_max(), get_state(), set_state(), - * get_mb_cur_max() and is_stateful(). Last 5 interface functions are needed to - * support locale subsystem. - * - * ============================================================================ - */ -typedef struct -{ - /* - * open - open and initialize conversion. - * - * PARAMETERS: - * struct _reent *rptr - reent structure of current thread/process; - * const char *to - output encoding's normalized name; - * const char *from - input encoding's normalized name. - * - * DESCRIPTION: - * This function is called from iconv_open() to open conversion. Returns - * a pointer to conversion-specific data. - * - * RETURN: - * Pointer to conversion-specific data if success. In case of error - * returns NULL and sets current thread's/process's errno. - */ - void *(*open) (struct _reent *rptr, - const char *to, - const char *from); - - /* - * close - close conversion. - * - * PARAMETRS: - * struct _reent *rptr - reent structure of current thread/process; - * void *data - conversion-specific data. - * - * DESCRIPTION: - * This function is called from iconv_close() to close conversion. - * - * RETURN: - * When successful, returns (size_t)0. In case of error, sets current - * thread's/process's errno and returns (size_t)-1 (same as iconv_open()). - */ - size_t (*close) (struct _reent *rptr, - void *data); - - /* convert - perform encoding conversion. - * - * PARAMETERS: - * struct _reent *rptr - reent structure of current thread/process. - * void *data - conversion-specific data; - * const unsigned char **inbuf - input data buffer; - * size_t *inbytesleft - input buffer's length; - * unsigned char **outbuf - output data buffer; - * size_t *outbytesleft - output buffer free space; - * int flags - conversion options. - * - * DESCRIPTION: - * This function is called from iconv() to perform conversion and, if 'flags' - * is 0, behaves similarly to iconv(). 'inbuf', 'inbytesleft', 'outbuf' and - * 'outbytesleft' are same as in case of iconv() function. - * - * When flags & 1 isn't 0, 'outbuf' value is ignored and result isn't saved. - * Another conversion aspects aren't changed. - * - * When flags & 2 isn't 0, function changes it's behavior in situations, - * when there is no character in "to" encoding that corresponds to valid - * character from "from" encoding. iconv() specification stands to perform - * implimentation-spacific default conversion. If flag & 2 isn't 0, - * function generates error. - * - * RETURN: - * Returns the number of characters converted in a non-reversible way. - * Reversible conversions are not counted. In case of error, sets current - * thread's/process's errno and returns (size_t)-1 (same as iconv()). - */ - size_t (*convert) (struct _reent *rptr, - void *data, - const unsigned char **inbuf, - size_t *inbytesleft, - unsigned char **outbuf, - size_t *outbytesleft, - int flags); - - /* - * get_state - get current shift state. - * - * PARAMETERS: - * void *data - conversion-specific data; - * mbstate_t *state - mbstate_t object where shift state will be written; - * int direction - 0-"from", 1-"to". - * - * DESCRIPTION: - * Returns encoding's current shift sequence. - * If 'direction' is 0, "from" encoding is tested, else - * "to" encoding is tested. - */ - void (*get_state) (void *data, - mbstate_t *state, - int direction); - - /* - * set_state - set shift state. - * - * PARAMETERS: - * void *data - conversion-specific data; - * mbstate_t *state - mbstate_t object to which shift state will be set. - * int direction - 0-"from", 1-"to". - * - * DESCRIPTION: - * Sets encoding's current shift state to 'state'. if 'state' - * object is zero-object - reset current shift state. - * If 'direction' is 0, "from" encoding is set, else - * "to" encoding is set. - * Returns 0 if '*state' object has right format, -1 else. - */ - int (*set_state) (void *data, - mbstate_t *state, - int direction); - - /* - * get_mb_cur_max - get maximum character length in bytes. - * - * PARAMETERS: - * void *data - conversion-specific data; - * int direction - 0-"from", 1-"to". - * - * DESCRIPTION: - * Returns encoding's maximum character length. - * If 'direction' is 0, "from" encoding is tested, else - * "to" encoding is tested. - */ - int (*get_mb_cur_max) (void *data, - int direction); - - /* - * is_stateful - is encoding stateful or stateless. - * - * PARAMETERS: - * void *data - conversion-specific data; - * int direction - 0-"from", 1-"to". - * - * DESCRIPTION: - * Returns 0 if encoding is stateless and 1 if stateful. - * If 'direction' is 0, "from" encoding is tested, else - * "to" encoding is tested. - */ - int (*is_stateful) (void *data, - int direction); - -} iconv_conversion_handlers_t; - - -/* - * iconv_conversion_t - iconv conversion definition structure. - * - * ============================================================================ - */ -typedef struct -{ - /* Iconv conversion handlers. */ - const iconv_conversion_handlers_t *handlers; - - /* - * Conversion-specific data (e.g., points to iconv_ucs_conversion_t - * object if UCS-based conversion is used). - */ - void *data; -} iconv_conversion_t; - - -/* UCS-based conversion handlers */ -extern const iconv_conversion_handlers_t -_iconv_ucs_conversion_handlers; - -/* Null conversion handlers */ -extern const iconv_conversion_handlers_t -_iconv_null_conversion_handlers; - -#endif /* !__ICONV_CONVERSION_H__ */ - diff --git a/lib/iconv/lib/encnames.h b/lib/iconv/lib/encnames.h deleted file mode 100644 index 9ca16ad..0000000 --- a/lib/iconv/lib/encnames.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * This file was automatically generated mkdeps.pl script. Don't edit. - */ - -#ifndef __ENCNAMES_H__ -#define __ENCNAMES_H__ - -/* - * Encodings name macros. - */ -#define ICONV_ENCODING_BIG5 "big5" -#define ICONV_ENCODING_CP775 "cp775" -#define ICONV_ENCODING_CP850 "cp850" -#define ICONV_ENCODING_CP852 "cp852" -#define ICONV_ENCODING_CP855 "cp855" -#define ICONV_ENCODING_CP866 "cp866" -#define ICONV_ENCODING_EUC_JP "euc_jp" -#define ICONV_ENCODING_EUC_KR "euc_kr" -#define ICONV_ENCODING_EUC_TW "euc_tw" -#define ICONV_ENCODING_ISO_8859_1 "iso_8859_1" -#define ICONV_ENCODING_ISO_8859_10 "iso_8859_10" -#define ICONV_ENCODING_ISO_8859_11 "iso_8859_11" -#define ICONV_ENCODING_ISO_8859_13 "iso_8859_13" -#define ICONV_ENCODING_ISO_8859_14 "iso_8859_14" -#define ICONV_ENCODING_ISO_8859_15 "iso_8859_15" -#define ICONV_ENCODING_ISO_8859_2 "iso_8859_2" -#define ICONV_ENCODING_ISO_8859_3 "iso_8859_3" -#define ICONV_ENCODING_ISO_8859_4 "iso_8859_4" -#define ICONV_ENCODING_ISO_8859_5 "iso_8859_5" -#define ICONV_ENCODING_ISO_8859_6 "iso_8859_6" -#define ICONV_ENCODING_ISO_8859_7 "iso_8859_7" -#define ICONV_ENCODING_ISO_8859_8 "iso_8859_8" -#define ICONV_ENCODING_ISO_8859_9 "iso_8859_9" -#define ICONV_ENCODING_ISO_IR_111 "iso_ir_111" -#define ICONV_ENCODING_KOI8_R "koi8_r" -#define ICONV_ENCODING_KOI8_RU "koi8_ru" -#define ICONV_ENCODING_KOI8_U "koi8_u" -#define ICONV_ENCODING_KOI8_UNI "koi8_uni" -#define ICONV_ENCODING_UCS_2 "ucs_2" -#define ICONV_ENCODING_UCS_2_INTERNAL "ucs_2_internal" -#define ICONV_ENCODING_UCS_2BE "ucs_2be" -#define ICONV_ENCODING_UCS_2LE "ucs_2le" -#define ICONV_ENCODING_UCS_4 "ucs_4" -#define ICONV_ENCODING_UCS_4_INTERNAL "ucs_4_internal" -#define ICONV_ENCODING_UCS_4BE "ucs_4be" -#define ICONV_ENCODING_UCS_4LE "ucs_4le" -#define ICONV_ENCODING_US_ASCII "us_ascii" -#define ICONV_ENCODING_UTF_16 "utf_16" -#define ICONV_ENCODING_UTF_16BE "utf_16be" -#define ICONV_ENCODING_UTF_16LE "utf_16le" -#define ICONV_ENCODING_UTF_8 "utf_8" -#define ICONV_ENCODING_WIN_1250 "win_1250" -#define ICONV_ENCODING_WIN_1251 "win_1251" -#define ICONV_ENCODING_WIN_1252 "win_1252" -#define ICONV_ENCODING_WIN_1253 "win_1253" -#define ICONV_ENCODING_WIN_1254 "win_1254" -#define ICONV_ENCODING_WIN_1255 "win_1255" -#define ICONV_ENCODING_WIN_1256 "win_1256" -#define ICONV_ENCODING_WIN_1257 "win_1257" -#define ICONV_ENCODING_WIN_1258 "win_1258" - -#endif /* !__ENCNAMES_H__ */ - diff --git a/lib/iconv/lib/encoding.deps b/lib/iconv/lib/encoding.deps deleted file mode 100644 index 280cffd..0000000 --- a/lib/iconv/lib/encoding.deps +++ /dev/null @@ -1,441 +0,0 @@ -# -# This file describes dependencies between encodings, CES, CCS, etc. -# File relates only to UCS-based conversions and is needed for automatic -# generation of C source files and C header files. -# -# This configuration file consists of sections, each section consists of -# entries. -# -# Use only normalized names. -# - -# -# The first section named "ENCODINGS" describes: -# 1. CES converter corresponding for each enoding; -# 2. Each encoding's aliases; -# 3. CCS tables corresponding for each enoding. -# -SECTION ENCODINGS - -# ISO-10646-UCS-2. Big Endian, NBSP is always interpreted as NBSP (BOM isn't supported). -ENTRY -ENCODING: ucs_2 -CES: ucs_2 -ALIASES: ucs2 iso_10646_ucs_2 iso10646_ucs_2 iso_10646_ucs2 iso10646_ucs2 iso10646ucs2 csUnicode -ENTRY END - -# Big Endian version of ISO-10646-UCS-2 (in fact, equivalent to ucs_2). -# Big Endian, NBSP is always interpreted as NBSP (BOM isn't supported). -ENTRY -ENCODING: ucs_2be -CES: ucs_2 -ALIASES: ucs2be -ENTRY END - -# Little Endian version of ISO-10646-UCS-2. -# Little Endian, NBSP is always interpreted as NBSP (BOM isn't supported). -ENTRY -ENCODING: ucs_2le -CES: ucs_2 -ALIASES: ucs2le -ENTRY END - -# ISO-10646-UCS-2 in system byte order. -# NBSP is always interpreted as NBSP (BOM isn't supported). -# NOTE: Dont delete and rename this since it is used as widechar's -# encoding when sizeof(wchar_t) == 2 -ENTRY -ENCODING: ucs_2_internal -CES: ucs_2_internal -ALIASES: ucs2_internal ucs_2internal ucs2internal -ENTRY END - -# ISO-10646-UCS-4. Big Endian, NBSP is always interpreted as NBSP (BOM isn't supported). -ENTRY -ENCODING: ucs_4 -CES: ucs_4 -ALIASES: ucs4 iso_10646_ucs_4 iso10646_ucs_4 iso_10646_ucs4 iso10646_ucs4 iso10646ucs4 -ENTRY END - -# Big Endian version of ISO-10646-UCS-4 (in fact, equivalent to ucs_4). -# Big Endian, NBSP is always interpreted as NBSP (BOM isn't supported). -ENTRY -ENCODING: ucs_4be -CES: ucs_4 -ALIASES: ucs4be -ENTRY END - -# Little Endian version of ISO-10646-UCS-4. -# Little Endian, NBSP is always interpreted as NBSP (BOM isn't supported). -ENTRY -ENCODING: ucs_4le -CES: ucs_4 -ALIASES: ucs4le -ENTRY END - -# ISO-10646-UCS-4 in system byte order. -# NBSP is always interpreted as NBSP (BOM isn't supported). -# NOTE: Dont delete and rename this since it is used as widechar's -# encoding when sizeof(wchar_t) == 4 -ENTRY -ENCODING: ucs_4_internal -CES: ucs_4_internal -ALIASES: ucs4_internal ucs_4internal ucs4internal -ENTRY END - -# RFC 3629 UTF-8 -ENTRY -ENCODING: utf_8 -CES: utf_8 -ALIASES: utf8 -ENTRY END - -# RFC 2781 UTF-16. The very first NBSP code in stream is interpreted as BOM. -ENTRY -ENCODING: utf_16 -CES: utf_16 -ALIASES: utf16 -ENTRY END - -# Big Endian version of RFC 2781 UTF-16. -# NBSP is always interpreted as NBSP (BOM isn't supported). -ENTRY -ENCODING: utf_16be -CES: utf_16 -ALIASES: utf16be -ENTRY END - -# Little Endian version of RFC 2781 UTF-16. -# NBSP is always interpreted as NBSP (BOM isn't supported). -ENTRY -ENCODING: utf_16le -CES: utf_16 -ALIASES: utf16le -ENTRY END - -# 7-bit ASCII. -ENTRY -ENCODING: us_ascii -CES: us_ascii -ALIASES: ansi_x3.4_1968 ansi_x3.4_1986 iso_646.irv:1991 ascii iso646_us us ibm367 cp367 csascii -ENTRY END - -# RFC 1489 Cyrillic -ENTRY -ENCODING: koi8_r -CES: table -CCS: koi8_r -ALIASES: cskoi8r koi8r koi8 -ENTRY END - -# Obsoleted Ukrainian -ENTRY -ENCODING: koi8_ru -CES: table -CCS: koi8_ru -ALIASES: koi8ru -ENTRY END - -# RFC 2319 Ukrainian -ENTRY -ENCODING: koi8_u -CES: table -CCS: koi8_u -ALIASES: koi8u -ENTRY END - -# KOI8 Unified -ENTRY -ENCODING: koi8_uni -CES: table -CCS: koi8_uni -ALIASES: koi8uni -ENTRY END - -# ISO IR 111/ECMA Cyrillic. -ENTRY -ENCODING: iso_ir_111 -CES: table -CCS: iso_ir_111 -ALIASES: ecma_cyrillic koi8_e koi8e csiso111ecmacyrillic -ENTRY END - -# ISO 8859-1:1987 - Latin 1, West European -ENTRY -ENCODING: iso_8859_1 -CES: table -CCS: iso_8859_1 -ALIASES: iso8859_1 iso88591 iso_8859_1:1987 iso_ir_100 latin1 l1 ibm819 cp819 csisolatin1 -ENTRY END - -# ISO 8859-2:1987 - Latin 2, East European -ENTRY -ENCODING: iso_8859_2 -CES: table -CCS: iso_8859_2 -ALIASES: iso8859_2 iso88592 iso_8859_2:1987 iso_ir_101 latin2 l2 csisolatin2 -ENTRY END - -# ISO 8859-3:1988 - Latin 3, South European -ENTRY -ENCODING: iso_8859_3 -CES: table -CCS: iso_8859_3 -ALIASES: iso_8859_3:1988 iso_ir_109 iso8859_3 latin3 l3 csisolatin3 iso88593 -ENTRY END - -# ISO 8859-4:1988 - Latin 4, North European -ENTRY -ENCODING: iso_8859_4 -CES: table -CCS: iso_8859_4 -ALIASES: iso8859_4 iso88594 iso_8859_4:1988 iso_ir_110 latin4 l4 csisolatin4 -ENTRY END - -# ISO 8859-5:1988 - Cyrillic -ENTRY -ENCODING: iso_8859_5 -CES: table -CCS: iso_8859_5 -ALIASES: iso8859_5 iso88595 iso_8859_5:1988 iso_ir_144 cyrillic csisolatincyrillic -ENTRY END - -# ISO i8859-6:1987 - Arabic -ENTRY -ENCODING: iso_8859_6 -CES: table -CCS: iso_8859_6 -ALIASES: iso_8859_6:1987 iso_ir_127 iso8859_6 ecma_114 asmo_708 arabic csisolatinarabic iso88596 -ENTRY END - -# ISO 8859-7:1987 - Greek -ENTRY -ENCODING: iso_8859_7 -CES: table -CCS: iso_8859_7 -ALIASES: iso_8859_7:1987 iso_ir_126 iso8859_7 elot_928 ecma_118 greek greek8 csisolatingreek iso88597 -ENTRY END - -# ISO 8859-8:1988 - Hebrew -ENTRY -ENCODING: iso_8859_8 -CES: table -CCS: iso_8859_8 -ALIASES: iso_8859_8:1988 iso_ir_138 iso8859_8 hebrew csisolatinhebrew iso88598 -ENTRY END - -# ISO 8859-9:1989 - Latin 5, Turkish -ENTRY -ENCODING: iso_8859_9 -CES: table -CCS: iso_8859_9 -ALIASES: iso_8859_9:1989 iso_ir_148 iso8859_9 latin5 l5 csisolatin5 iso88599 -ENTRY END - -# ISO 8859-10:1992 - Latin 6, Nordic -ENTRY -ENCODING: iso_8859_10 -CES: table -CCS: iso_8859_10 -ALIASES: iso_8859_10:1992 iso_ir_157 iso885910 latin6 l6 csisolatin6 iso8859_10 -ENTRY END - -# ISO 8859-11 - Thai -ENTRY -ENCODING: iso_8859_11 -CES: table -CCS: iso_8859_11 -ALIASES: iso8859_11 iso885911 -ENTRY END - -# ISO 8859-13:1998 - Latin 7, Baltic Rim -ENTRY -ENCODING: iso_8859_13 -CES: table -CCS: iso_8859_13 -ALIASES: iso_8859_13:1998 iso8859_13 iso885913 -ENTRY END - -# ISO 8859-14:1998 - Latin 8, Celtic -ENTRY -ENCODING: iso_8859_14 -CES: table -CCS: iso_8859_14 -ALIASES: iso_8859_14:1998 iso885914 iso8859_14 -ENTRY END - -# ISO 8859-15:1998 - Latin 9, West Europe, successor of Latin 1 -ENTRY -ENCODING: iso_8859_15 -CES: table -CCS: iso_8859_15 -ALIASES: iso885915 iso_8859_15:1998 iso8859_15 -ENTRY END - -# Win-1250 -ENTRY -ENCODING: win_1250 -CES: table -CCS: win_1250 -ALIASES: cp1250 -ENTRY END - -# Win-1251 - Cyrillic -ENTRY -ENCODING: win_1251 -CES: table -CCS: win_1251 -ALIASES: cp1251 -ENTRY END - -# Win-1252 - Latin 1 -ENTRY -ENCODING: win_1252 -CES: table -CCS: win_1252 -ALIASES: cp1252 -ENTRY END - -# Win-1253 - Greek -ENTRY -ENCODING: win_1253 -CES: table -CCS: win_1253 -ALIASES: cp1253 -ENTRY END - -# Win-1254 - Turkish -ENTRY -ENCODING: win_1254 -CES: table -CCS: win_1254 -ALIASES: cp1254 -ENTRY END - -# Win-1255 - Hebrew -ENTRY -ENCODING: win_1255 -CES: table -CCS: win_1255 -ALIASES: cp1255 -ENTRY END - -# Win-1256 - Arabic -ENTRY -ENCODING: win_1256 -CES: table -CCS: win_1256 -ALIASES: cp1256 -ENTRY END - -# Win-1257 - Baltic -ENTRY -ENCODING: win_1257 -CES: table -CCS: win_1257 -ALIASES: cp1257 -ENTRY END - -# Win-1258 - Vietnamese7 that supports Cyrillic -ENTRY -ENCODING: win_1258 -CES: table -CCS: win_1258 -ALIASES: cp1258 -ENTRY END - -# big5 - an encoding for Traditional Chinese -ENTRY -ENCODING: big5 -CES: table_pcs -CCS: big5 -ALIASES: csbig5 big_five bigfive cn_big5 cp950 -ENTRY END - -# IBM 775 - an updated version of CP 437 that supports balitic languages. -ENTRY -ENCODING: cp775 -CES: table -CCS: cp775 -ALIASES: ibm775 cspc775baltic -ENTRY END - -# IBM 850 - an updated version of CP 437 where several Latin 1 characters have been -# added instead of some less-often used characters like line-drawing and greek ones. -ENTRY -ENCODING: cp850 -CES: table -CCS: cp850 -ALIASES: ibm850 850 cspc850multilingual -ENTRY END - -# IBM 852 - an updated version of CP 437 where several Latin 2 characters have been added -# instead of some less-often used characters like line-drawing and greek ones. -ENTRY -ENCODING: cp852 -CES: table -CCS: cp852 -ALIASES: ibm852 852 cspcp852 -ENTRY END - -# IBM 855 - an updated version of CP 437 that supports Cyrillic. -ENTRY -ENCODING: cp855 -CES: table -CCS: cp855 -ALIASES: ibm855 855 csibm855 -ENTRY END - -# IBM 866 - an updated version of CP 855 which followes the more logical Russian alphabet -# ordering of the alternativny variant that is preferred by many Russian users. -ENTRY -ENCODING: cp866 -CES: table -CCS: cp866 -ALIASES: 866 IBM866 CSIBM866 -ENTRY END - -# EUC-JP - The EUC for Japanese -ENTRY -ENCODING: euc_jp -CES: euc -CCS: jis_x0208_1990 jis_x0201_1976 jis_x0212_1990 -ALIASES: eucjp -ENTRY END - -# EUC-KR - The EUC for Korean -ENTRY -ENCODING: euc_kr -CES: euc -CCS: ksx1001 -ALIASES: euckr -ENTRY END - -# EUC-TW - The EUC for Traditional Chinese -ENTRY -ENCODING: euc_tw -CES: euc -CCS: cns11643_plane1 cns11643_plane2 cns11643_plane14 -ALIASES: euctw -ENTRY END - -SECTION END - -# -# This section is named "CES_DEPENDENCIES" and describes dependencies -# between CES converters (some CES converters may use another CES converters). -# -SECTION CES_DEPENDENCIES - -ENTRY -CES: table_pcs -USED_CES: table -ENTRY END - -ENTRY -CES: euc -USED_CES: table us_ascii -ENTRY END - -SECTION END - diff --git a/lib/iconv/lib/endian.h b/lib/iconv/lib/endian.h deleted file mode 100644 index 2db6c6d..0000000 --- a/lib/iconv/lib/endian.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#ifndef __ICONV_CES_ENDIAN_H__ -#define __ICONV_CES_ENDIAN_H__ - -#include - -#if (BYTE_ORDER == LITTLE_ENDIAN) - -# define ICONV_BETOHS(s) \ - ((((s) << 8) & 0xFF00) | (((s) >> 8) & 0x00FF)) - -# define ICONV_BETOHL(l) \ - ((((l) << 24) & 0xFF000000) | \ - (((l) << 8) & 0x00FF0000) | \ - (((l) >> 8) & 0x0000FF00) | \ - (((l) >> 24) & 0x000000FF)) - -# define ICONV_LETOHS(s) (s) -# define ICONV_LETOHL(l) (l) - -# define ICONV_HTOLES(s) ICONV_LETOHS (s) -# define ICONV_HTOLEL(l) ICONV_LETOHL (l) -# define ICONV_HTOBES(s) ICONV_BETOHS (s) -# define ICONV_HTOBEL(l) ICONV_BETOHL (l) - -#elif (BYTE_ORDER == BIG_ENDIAN) - -# define ICONV_BETOHS(s) (s) -# define ICONV_BETOHL(l) (l) - -# define ICONV_LETOHS(s) \ - ((((s) << 8) & 0xFF00) | (((s) >> 8) & 0x00FF)) - -# define ICONV_LETOHL(l) \ - ((((l) << 24) & 0xFF000000) | \ - (((l) << 8) & 0x00FF0000) | \ - (((l) >> 8) & 0x0000FF00) | \ - (((l) >> 24) & 0x000000FF)) - -# define ICONV_HTOBES(s) ICONV_BETOHS (s) -# define ICONV_HTOBEL(l) ICONV_BETOHL (l) -# define ICONV_HTOLES(s) ICONV_LETOHS (s) -# define ICONV_HTOLEL(l) ICONV_LETOHL (l) - -#else -# error "Unknown byte order." -#endif - -#endif /* !__ICONV_CES_ENDIAN_H__ */ - diff --git a/lib/iconv/lib/iconv.c b/lib/iconv/lib/iconv.c deleted file mode 100644 index 458541c..0000000 --- a/lib/iconv/lib/iconv.c +++ /dev/null @@ -1,307 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>, <>---charset conversion routines - -INDEX - iconv -INDEX - iconv_open -INDEX - iconv_close -INDEX - _iconv_r -INDEX - _iconv_open_r -INDEX - _iconv_close_r - -SYNOPSIS - #include - iconv_t iconv_open (const char *<[to]>, const char *<[from]>); - int iconv_close (iconv_t <[cd]>); - size_t iconv (iconv_t <[cd]>, char **restrict <[inbuf]>, - size_t *restrict <[inbytesleft]>, - char **restrict <[outbuf]>, - size_t *restrict <[outbytesleft]>); - - iconv_t _iconv_open_r (struct _reent *<[rptr]>, - const char *<[to]>, const char *<[from]>); - int _iconv_close_r (struct _reent *<[rptr]>, iconv_t <[cd]>); - size_t _iconv_r (struct _reent *<[rptr]>, - iconv_t <[cd]>, const char **<[inbuf]>, - size_t *<[inbytesleft]>, - char **<[outbuf]>, size_t *<[outbytesleft]>); - -DESCRIPTION -The function <> converts characters from <[in]> which are in one -encoding to characters of another encoding, outputting them to <[out]>. -The value <[inleft]> specifies the number of input bytes to convert whereas -the value <[outleft]> specifies the size remaining in the <[out]> buffer. -The conversion descriptor <[cd]> specifies the conversion being performed -and is created via <>. - -An <> conversion stops if: the input bytes are exhausted, the output -buffer is full, an invalid input character sequence occurs, or the -conversion specifier is invalid. - -The function <> is used to specify a conversion from one -encoding: <[from]> to another: <[to]>. The result of the call is -to create a conversion specifier that can be used with <>. - -The function <> is used to close a conversion specifier after -it is no longer needed. - -The <<_iconv_r>>, <<_iconv_open_r>>, and <<_iconv_close_r>> functions are -reentrant versions of <>, <>, and <>, -respectively. An additional reentrancy struct pointer: <[rptr]> is passed -to properly set <>. - -RETURNS -The <> function returns the number of non-identical conversions -performed. If an error occurs, (size_t)-1 is returned and <> -is set appropriately. The values of <[inleft]>, <[in]>, <[out]>, -and <[outleft]> are modified to indicate how much input was processed -and how much output was created. - -The <> function returns either a valid conversion specifier -or (iconv_t)-1 to indicate failure. If failure occurs, <> is set -appropriately. - -The <> function returns 0 on success or -1 on failure. -If failure occurs <> is set appropriately. - -PORTABILITY -<>, <>, and <> are non-ANSI and are specified -by the Single Unix specification. - -No supporting OS subroutine calls are required. -*/ -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" -#include "conv.h" -#include "ucsconv.h" - -/* - * iconv interface functions as specified by Single Unix specification. - */ - -iconv_t -iconv_open (const char *to, - const char *from) -{ - return _iconv_open_r (_REENT, to, from); -} - - -size_t -iconv (iconv_t cd, - char **__restrict inbuf, - size_t *__restrict inbytesleft, - char **__restrict outbuf, - size_t *__restrict outbytesleft) -{ - return _iconv_r (_REENT, cd, (const char **) inbuf, inbytesleft, - outbuf, outbytesleft); -} - - -int -iconv_close (iconv_t cd) -{ - return _iconv_close_r (_REENT, cd); -} - - -#ifndef _REENT_ONLY -iconv_t -_iconv_open_r (struct _reent *rptr, - const char *to, - const char *from) -{ - iconv_conversion_t *ic; - - if (to == NULL || from == NULL || *to == '\0' || *from == '\0') - return (iconv_t)-1; - - if ((to = (const char *)_iconv_resolve_encoding_name (rptr, to)) == NULL) - return (iconv_t)-1; - - if ((from = (const char *)_iconv_resolve_encoding_name (rptr, from)) == NULL) - { - _free_r (rptr, (void *)to); - return (iconv_t)-1; - } - - ic = (iconv_conversion_t *)_malloc_r (rptr, sizeof (iconv_conversion_t)); - if (ic == NULL) - return (iconv_t)-1; - - /* Select which conversion type to use */ - if (strcmp (from, to) == 0) - { - /* Use null conversion */ - ic->handlers = &_iconv_null_conversion_handlers; - ic->data = ic->handlers->open (rptr, to, from); - } - else - { - /* Use UCS-based conversion */ - ic->handlers = &_iconv_ucs_conversion_handlers; - ic->data = ic->handlers->open (rptr, to, from); - } - - _free_r (rptr, (void *)to); - _free_r (rptr, (void *)from); - - if (ic->data == NULL) - { - _free_r (rptr, (void *)ic); - return (iconv_t)-1; - } - - return (void *)ic; -} - - -size_t -_iconv_r (struct _reent *rptr, - iconv_t cd, - const char **inbuf, - size_t *inbytesleft, - char **outbuf, - size_t *outbytesleft) -{ - iconv_conversion_t *ic = (iconv_conversion_t *)cd; - - if ((void *)cd == NULL || cd == (iconv_t)-1 || ic->data == NULL - || (ic->handlers != &_iconv_null_conversion_handlers - && ic->handlers != &_iconv_ucs_conversion_handlers)) - { - _REENT_ERRNO (rptr) = EBADF; - return (size_t)-1; - } - - if (inbuf == NULL || *inbuf == NULL) - { - mbstate_t state_null = ICONV_ZERO_MB_STATE_T; - - if (!ic->handlers->is_stateful(ic->data, 1)) - return (size_t)0; - - if (outbuf == NULL || *outbuf == NULL) - { - /* Reset shift state */ - ic->handlers->set_state (ic->data, &state_null, 1); - - return (size_t)0; - } - - if (outbytesleft != NULL) - { - mbstate_t state_save = ICONV_ZERO_MB_STATE_T; - - /* Save current shift state */ - ic->handlers->get_state (ic->data, &state_save, 1); - - /* Reset shift state */ - ic->handlers->set_state (ic->data, &state_null, 1); - - /* Get initial shift state sequence and it's length */ - ic->handlers->get_state (ic->data, &state_null, 1); - - if (*outbytesleft >= state_null.__count) - { - memcpy ((void *)(*outbuf), (void *)&state_null, state_null.__count); - - *outbuf += state_null.__count; - *outbytesleft -= state_null.__count; - - return (size_t)0; - } - - /* Restore shift state if output buffer is too small */ - ic->handlers->set_state (ic->data, &state_save, 1); - } - - _REENT_ERRNO (rptr) = E2BIG; - return (size_t)-1; - } - - if (*inbytesleft == 0) - { - _REENT_ERRNO (rptr) = EINVAL; - return (size_t)-1; - } - - if (*outbytesleft == 0 || *outbuf == NULL) - { - _REENT_ERRNO (rptr) = E2BIG; - return (size_t)-1; - } - - return ic->handlers->convert (rptr, - ic->data, - (const unsigned char**)inbuf, - inbytesleft, - (unsigned char**)outbuf, - outbytesleft, - 0); -} - - -int -_iconv_close_r (struct _reent *rptr, - iconv_t cd) -{ - int res; - iconv_conversion_t *ic = (iconv_conversion_t *)cd; - - if ((void *)cd == NULL || cd == (iconv_t)-1 || ic->data == NULL - || (ic->handlers != &_iconv_null_conversion_handlers - && ic->handlers != &_iconv_ucs_conversion_handlers)) - { - _REENT_ERRNO (rptr) = EBADF; - return -1; - } - - res = (int)ic->handlers->close (rptr, ic->data); - - _free_r (rptr, (void *)cd); - - return res; -} -#endif /* !_REENT_ONLY */ diff --git a/lib/iconv/lib/iconvnls.c b/lib/iconv/lib/iconvnls.c deleted file mode 100644 index 5d4b0a2..0000000 --- a/lib/iconv/lib/iconvnls.c +++ /dev/null @@ -1,354 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#ifdef _MB_CAPABLE -#include -#include -#include -#include -#include -#include "local.h" -#include "conv.h" -#include "ucsconv.h" -#include "iconvnls.h" -#endif - -/* - * _iconv_nls_construct_filename -- constructs full file name. - * - * PARAMETERS: - * struct _reent *rptr - reent structure of current thread/process. - * const char *file - the name of file. - * const char *dir - the name of subdirectory; - * const char *ext - file extension. - * - * DESCRIPTION: - * Function constructs patch to icionv-related file. - * 'file' shouldn't be NULL. Doesn't use extension if 'ext' is NULL. - * - * RETURN: - * The pointer to file name if success, In case of error returns NULL - * and sets current thread's/process's errno. - */ -const char * -_iconv_nls_construct_filename (struct _reent *rptr, - const char *file, - const char *dir, - const char *ext) -{ - int len1, len2, len3; - char *path; - char *p; - int dirlen = strlen (dir); - - if ((path = _getenv_r (rptr, NLS_ENVVAR_NAME)) == NULL || *path == '\0') - path = ICONV_DEFAULT_NLSPATH; - - len1 = strlen (path); - len2 = strlen (file); - len3 = strlen (ext); - - if ((p = _malloc_r (rptr, len1 + dirlen + len2 + len3 + 3)) == NULL) - return (const char *)NULL; - - memcpy (p, path, len1); - if (p[len1 - 1] != '/') - p[len1++] = '/'; - memcpy (p + len1, dir, dirlen); - len1 += dirlen; - p[len1++] = '/'; - memcpy (p + len1, file, len2); - len1 += len2; - if (ext != NULL) - { - memcpy (p + len1, ext, len3); - len1 += len3; - } - p[len1] = '\0'; - - return (const char *)p; -} - - -#ifdef _MB_CAPABLE -/* - * _iconv_nls_get_mb_cur_max -- return encoding's maximum length - * of a multi-byte character. - * - * PARAMETERS: - * iconv_t cd - opened iconv conversion descriptor; - * int direction - "from encoding" or "to encoding" direction. - * - * DESCRIPTION: - * Return maximum length of a multi-byte character in one of 'cd's - * encoding. Return "from" encoding's value if 'direction' is 0 and - * "to" encoding's value if 'direction' isn't 0. - */ -int -_iconv_nls_get_mb_cur_max (iconv_t cd, - int direction) -{ - iconv_conversion_t *ic = (iconv_conversion_t *)cd; - - return ic->handlers->get_mb_cur_max (ic->data, direction); -} - -/* - * _iconv_nls_is_stateful -- is encoding stateful? - * - * PARAMETERS: - * iconv_t cd - opened iconv conversion descriptor; - * int direction - "from encoding" or "to encoding" direction. - * - * DESCRIPTION: - * Returns 0 if encoding is stateless or 1 if stateful. - * Tests "from" encoding if 'direction' is 0 and - * "to" encoding's value if 'direction' isn't 0. - - */ -int -_iconv_nls_is_stateful (iconv_t cd, - int direction) -{ - iconv_conversion_t *ic = (iconv_conversion_t *)cd; - - return ic->handlers->is_stateful (ic->data, direction); -} - -/* - * _iconv_nls_conv - special version of iconv for NLS. - * - * PARAMETERS: - * Same as _iconv_r. - * - * DESCRIPTION: - * Function behaves as _iconv_r but: - * 1. Don't handle reset/return shift states queries - * (like iconv does when 'inbuf' == NULL, etc); - * 2. Don't save result if 'outbuf' == NULL or - * '*outbuf' == NULL; - * 3. Don't perform default conversion if there is no character - * in "to" encoding that corresponds to character from "from" - * encoding. - * - * RETURN: - * Same as _iconv_r. - */ -size_t -_iconv_nls_conv (struct _reent *rptr, - iconv_t cd, - const char **inbuf, - size_t *inbytesleft, - char **outbuf, - size_t *outbytesleft) -{ - iconv_conversion_t *ic = (iconv_conversion_t *)cd; - int flags = ICONV_FAIL_BIT; - - if ((void *)cd == NULL || cd == (iconv_t)-1 || ic->data == NULL - || (ic->handlers != &_iconv_null_conversion_handlers - && ic->handlers != &_iconv_ucs_conversion_handlers)) - { - _REENT_ERRNO (rptr) = EBADF; - return (size_t)-1; - } - - if (inbytesleft == NULL || *inbytesleft == 0) - return (size_t)0; - - if (outbuf == NULL || *outbuf == NULL) - flags |= ICONV_DONT_SAVE_BIT; - - if (outbytesleft == NULL || *outbytesleft == 0) - { - _REENT_ERRNO (rptr) = E2BIG; - return (size_t)-1; - } - - return ic->handlers->convert (rptr, - ic->data, - (const unsigned char**)inbuf, - inbytesleft, - (unsigned char**)outbuf, - outbytesleft, - flags); -} - -/* - * _iconv_nls_get_state -- get encoding's current shift state value. - * - * PARAMETERS: - * iconv_t cd - iconv descriptor; - * mbstate_t *ps - where to save shift state; - * int direction - "from" encoding if 0, "to" encoding if 1. - * - * DESCRIPTION: - * Save encoding's current shift state to 'ps'. Save "from" encoding's - * shift state if 'direction' is 0 and "to" encodings's shift state - * if 'direction' isn't 0. - */ -void -_iconv_nls_get_state (iconv_t cd, - mbstate_t *ps, - int direction) -{ - iconv_conversion_t *ic = (iconv_conversion_t *)cd; - - ic->handlers->get_state (ic->data, ps, direction); - - return; -} - -/* - * _iconv_nls_set_state -- set encoding's current shift state value. - * - * PARAMETERS: - * iconv_t cd - iconv descriptor; - * mbstate_t *ps - where to save shift state. - * int direction - "from" encoding if 0, "to" encoding if 1. - * - * DESCRIPTION: - * Set encoding's current shift state. - * - * RETURN: - * 0 if success, -1 if failure. - */ -int -_iconv_nls_set_state (iconv_t cd, - mbstate_t *ps, - int direction) -{ - iconv_conversion_t *ic = (iconv_conversion_t *)cd; - - return ic->handlers->set_state (ic->data, ps, direction); -} - -/* Same as iconv_open() but don't perform name resolving */ -static iconv_t -iconv_open1 (struct _reent *rptr, - const char *to, - const char *from) -{ - iconv_conversion_t *ic; - - if (to == NULL || from == NULL || *to == '\0' || *from == '\0') - return (iconv_t)-1; - - ic = (iconv_conversion_t *)_malloc_r (rptr, sizeof (iconv_conversion_t)); - if (ic == NULL) - return (iconv_t)-1; - - /* Select which conversion type to use */ - if (strcmp (from, to) == 0) - { - /* Use null conversion */ - ic->handlers = &_iconv_null_conversion_handlers; - ic->data = ic->handlers->open (rptr, to, from); - } - else - { - /* Use UCS-based conversion */ - ic->handlers = &_iconv_ucs_conversion_handlers; - ic->data = ic->handlers->open (rptr, to, from); - } - - if (ic->data == NULL) - { - _free_r (rptr, (void *)ic); - return (iconv_t)-1; - } - - return (void *)ic; -} - -/* - * _iconv_nls_open - open iconv descriptors for NLS. - * - * PARAMETERS: - * struct _reent *rptr - process's reent structure; - * const char *encoding - encoding name; - * iconv_t *tomb - wchar -> encoding iconv descriptor pointer; - * iconv_t *towc - encoding -> wchar iconv descriptor pointer; - * int flag - perform encoding name resolving flag. - * - * DESCRIPTION: - * Opens two iconv descriptors for 'encoding' -> wchar and - * wchar -> 'encoding' iconv conversions. Function is used when locale or - * wide-oriented stream is opened. If 'flag' is 0, don't perform encoding - * name resolving ('encoding' must not be alias in this case). - * - * RETURN: - * If successful - return 0, else set errno and return -1. - */ -int -_iconv_nls_open (struct _reent *rptr, - const char *encoding, - iconv_t *tomb, - iconv_t *towc, - int flag) -{ - const char *wchar_encoding; - - if (sizeof (wchar_t) > 2 && WCHAR_MAX > 0xFFFF) - wchar_encoding = "ucs_4_internal"; - else if (sizeof (wchar_t) > 1 && WCHAR_MAX > 0xFF) - wchar_encoding = "ucs_2_internal"; - else - wchar_encoding = ""; /* This shuldn't happen */ - - if (flag) - { - if ((*towc = _iconv_open_r (rptr, wchar_encoding, encoding)) == (iconv_t)-1) - return -1; - - if ((*tomb = _iconv_open_r (rptr, encoding, wchar_encoding)) == (iconv_t)-1) - { - _iconv_close_r (rptr, *towc); - return -1; - } - } - else - { - if ((*towc = iconv_open1 (rptr, wchar_encoding, encoding)) == (iconv_t)-1) - return -1; - - if ((*tomb = iconv_open1 (rptr, encoding, wchar_encoding)) == (iconv_t)-1) - { - _iconv_close_r (rptr, *towc); - return -1; - } - } - - return 0; -} - -#endif /* _MB_CAPABLE */ - diff --git a/lib/iconv/lib/iconvnls.h b/lib/iconv/lib/iconvnls.h deleted file mode 100644 index f6d4866..0000000 --- a/lib/iconv/lib/iconvnls.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef __ICONV_ICONVNLS_H__ -#define __ICONV_ICONVNLS_H__ - -#include - -/* - * Include ucs-2-internal or ucs-4-internal if Newlib is configured as - * "multibyte-capable". - * ============================================================================ - */ -#ifdef _MB_CAPABLE -/* - * Determine size of wchar_t. If size of wchar_t is 2, UCS-2-INTERNAL is used - * as widechar's encoding. If size of wchar_t is 4, UCS-4-INTERNAL is used as - * widechar's encoding. - */ -# if WCHAR_MAX > 0xFFFF -# ifndef _ICONV_FROM_ENCODING_UCS_4_INTERNAL -# define _ICONV_FROM_ENCODING_UCS_4_INTERNAL -# endif -# ifndef _ICONV_TO_ENCODING_UCS_4_INTERNAL -# define _ICONV_TO_ENCODING_UCS_4_INTERNAL -# endif -# elif WCHAR_MAX > 0xFF -# ifndef _ICONV_FROM_ENCODING_UCS_2_INTERNAL -# define _ICONV_FROM_ENCODING_UCS_2_INTERNAL -# endif -# ifndef _ICONV_TO_ENCODING_UCS_2_INTERNAL -# define _ICONV_TO_ENCODING_UCS_2_INTERNAL -# endif -# else -# error Do not know how to work with 1 byte widechars. -# endif -#endif /* _MB_CAPABLE */ - -#endif /* !__ICONV_ICONVNLS_H__ */ - diff --git a/lib/iconv/lib/local.h b/lib/iconv/lib/local.h deleted file mode 100644 index 2d3a169..0000000 --- a/lib/iconv/lib/local.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#ifndef __ICONV_LIB_LOCAL_H__ -#define __ICONV_LIB_LOCAL_H__ - -#include <_ansi.h> -#include -#include -#include - -/* Encodings aliases file */ -#define ICONV_ALIASES_FNAME "encoding.aliases" -/* iconv CCS data path */ -#define ICONV_SUBDIR "iconv_data" -/* iconv data files extension */ -#define ICONV_DATA_EXT ".cct" - -/* This macro is used to zero mbstate_t objects */ -#ifdef __GNUC__ -#define ICONV_ZERO_MB_STATE_T ((mbstate_t){0, {0}}) -#else -#define ICONV_ZERO_MB_STATE_T {0} -#endif - -/* Define the maximum multi-byte character length produced by iconv library */ -#if MB_LEN_MAX < 6 -# define ICONV_MB_LEN_MAX 6 -#else -# define ICONV_MB_LEN_MAX MB_LEN_MAX -#endif - -/* 16-bit UCS-2 type */ -typedef __uint16_t ucs2_t; - -/* 32-bit UCS-4 type */ -typedef __uint32_t ucs4_t; - -/* The list of built-in encoding names and aliases */ -extern const char _iconv_aliases[]; - -#endif /* !__ICONV_LIB_LOCAL_H__ */ - diff --git a/lib/iconv/lib/nullconv.c b/lib/iconv/lib/nullconv.c deleted file mode 100644 index cc42291..0000000 --- a/lib/iconv/lib/nullconv.c +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" -#include "conv.h" - -static int null_conversion_dummy_data; - - -static void * -null_conversion_open (struct _reent *rptr, - const char *to, - const char *from) -{ - return (void *)&null_conversion_dummy_data; -} - - -static size_t -null_conversion_close (struct _reent *rptr, - void *data) -{ - return 0; -} - - -static size_t -null_conversion_convert (struct _reent *rptr, - void *data, - const unsigned char **inbuf, - size_t *inbytesleft, - unsigned char **outbuf, - size_t *outbytesleft, - int flags) -{ - size_t result; - size_t len; - - if (*inbytesleft < *outbytesleft) - { - result = 0; - len = *inbytesleft; - } - else - { - result = (size_t)-1; - len = *outbytesleft; - _REENT_ERRNO (rptr) = E2BIG; - } - - if ((flags & 1) == 0) - memcpy (*outbuf, *inbuf, len); - - *inbuf += len; - *outbuf += len; - *inbytesleft -= len; - *outbytesleft -= len; - - return result; -} - - -static int -null_conversion_get_mb_cur_max (void *data, - int direction) -{ - return ICONV_MB_LEN_MAX; -} - - -static void -null_conversion_get_state (void *data, - mbstate_t *state, - int direction) -{ - return; -} - - -static int -null_conversion_set_state (void *data, - mbstate_t *state, - int direction) -{ - return 0; -} - -static int -null_conversion_is_stateful (void *data, - int direction) -{ - return 0; -} - -/* Null conversion definition object */ -const iconv_conversion_handlers_t -_iconv_null_conversion_handlers = -{ - null_conversion_open, - null_conversion_close, - null_conversion_convert, - null_conversion_get_state, - null_conversion_set_state, - null_conversion_get_mb_cur_max, - null_conversion_is_stateful -}; - diff --git a/lib/iconv/lib/ucsconv.c b/lib/iconv/lib/ucsconv.c deleted file mode 100644 index 502aa44..0000000 --- a/lib/iconv/lib/ucsconv.c +++ /dev/null @@ -1,348 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" -#include "conv.h" -#include "ucsconv.h" - -static int fake_data; - -static int -find_encoding_name (const char *searchee, - const char **names); - - -/* - * UCS-based conversion interface functions implementation. - */ - -static void * -ucs_based_conversion_open (struct _reent *rptr, - const char *to, - const char *from) -{ - iconv_ucs_conversion_t *uc; - const iconv_to_ucs_ces_t *to_ucs_bices; - const iconv_from_ucs_ces_t *from_ucs_bices; - - uc = (iconv_ucs_conversion_t *) - _calloc_r (rptr, 1, sizeof (iconv_ucs_conversion_t)); - if (uc == NULL) - return NULL; - - /* - * Find CES converter for "from" encoding ("from" source encoding corresponds - * to "to_ucs" CES converter). - */ - for (to_ucs_bices = &_iconv_to_ucs_ces[0]; - to_ucs_bices->names != NULL; - to_ucs_bices++) - { - if (find_encoding_name (from, to_ucs_bices->names) == 0) - break; - } - - /* - * Find CES converter for "to" encoding ("to" source encoding corresponds - * to "from_ucs" CES converter). - */ - for (from_ucs_bices = &_iconv_from_ucs_ces[0]; - from_ucs_bices->names != NULL; - from_ucs_bices++) - { - if (find_encoding_name (to, from_ucs_bices->names) == 0) - break; - } - - if (to_ucs_bices->names == NULL || from_ucs_bices->names == NULL) - goto error; - - uc->to_ucs.handlers = to_ucs_bices->handlers; - uc->from_ucs.handlers = from_ucs_bices->handlers; - - /* Initialize "to UCS" CES converter */ - if (to_ucs_bices->handlers->init != NULL) - { - uc->to_ucs.data = to_ucs_bices->handlers->init (rptr, from); - if (uc->to_ucs.data == NULL) - goto error; - } - else - uc->to_ucs.data = (void *)&fake_data; - - - /* Initialize "from UCS" CES converter */ - if (from_ucs_bices->handlers->init != NULL) - { - uc->from_ucs.data = from_ucs_bices->handlers->init (rptr, to); - if (uc->from_ucs.data == NULL) - goto error; - } - else - uc->from_ucs.data = (void *)&fake_data; - - return uc; - -error: - if (uc->to_ucs.data != NULL && uc->to_ucs.handlers->close != NULL) - uc->to_ucs.handlers->close (rptr, uc->to_ucs.data); - - _free_r (rptr, (void *)uc); - - return NULL; -} - - -static size_t -ucs_based_conversion_close (struct _reent *rptr, - void *data) -{ - iconv_ucs_conversion_t *uc; - size_t res = 0; - - uc = (iconv_ucs_conversion_t *)data; - - if (uc->from_ucs.handlers->close != NULL) - res = uc->from_ucs.handlers->close (rptr, uc->from_ucs.data); - if (uc->to_ucs.handlers->close != NULL) - res |= uc->to_ucs.handlers->close (rptr, uc->to_ucs.data); - - _free_r (rptr, (void *)data); - - return res; -} - - -static size_t -ucs_based_conversion_convert (struct _reent *rptr, - void *data, - const unsigned char **inbuf, - size_t *inbytesleft, - unsigned char **outbuf, - size_t *outbytesleft, - int flags) -{ - unsigned char outbuf1[ICONV_MB_LEN_MAX]; - unsigned char *poutbuf1; - size_t res = 0; - iconv_ucs_conversion_t *uc = (iconv_ucs_conversion_t *)data; - - while (*inbytesleft > 0) - { - register size_t bytes; - register ucs4_t ch; - const unsigned char *inbuf_save = *inbuf; - size_t inbyteslef_save = *inbytesleft; - - if (*outbytesleft == 0) - { - _REENT_ERRNO (rptr) = E2BIG; - return (size_t)-1; - } - - ch = uc->to_ucs.handlers->convert_to_ucs (uc->to_ucs.data, - inbuf, inbytesleft); - - if (ch == (ucs4_t)ICONV_CES_BAD_SEQUENCE) - { - _REENT_ERRNO (rptr) = EINVAL; - return (size_t)-1; - } - - if (ch == (ucs4_t)ICONV_CES_INVALID_CHARACTER) - { - _REENT_ERRNO (rptr) = EILSEQ; - return (size_t)-1; - } - - if (flags & ICONV_DONT_SAVE_BIT) - { - poutbuf1 = &outbuf1[0]; - outbuf = &poutbuf1; - } - - bytes = uc->from_ucs.handlers->convert_from_ucs (uc->from_ucs.data, ch, - outbuf, outbytesleft); - - if (bytes == (size_t)ICONV_CES_NOSPACE) - { - *inbuf = inbuf_save; - *inbytesleft = inbyteslef_save; - _REENT_ERRNO (rptr) = E2BIG; - return (size_t)-1; - } - else if (bytes == (size_t)ICONV_CES_INVALID_CHARACTER) - { - if (flags & ICONV_FAIL_BIT) - { - /* Generate error */ - _REENT_ERRNO (rptr) = EILSEQ; - return (size_t)-1; - } - /* - * For this case SUSv3 stands: "if iconv() encounters a character in the - * input buffer that is valid, but for which an identical character does - * not exist in the target encoding, iconv() shall perform an - * implementation-defined conversion on this character". - * Don't generate error, just write default character. - */ - bytes = uc->from_ucs.handlers->convert_from_ucs ( - uc->from_ucs.data, - (ucs4_t)DEFAULT_CHARACTER, - outbuf, - outbytesleft); - if ((__int32_t)bytes < 0) - { - _REENT_ERRNO (rptr) = E2BIG; - return (size_t)-1; - } - - res += 1; - } - } - - return res; -} - - -static int -ucs_based_conversion_get_mb_cur_max (void *data, - int direction) -{ - iconv_ucs_conversion_t *uc = (iconv_ucs_conversion_t *)data; - - if (direction == 0) - return uc->to_ucs.handlers->get_mb_cur_max (uc->to_ucs.data); - else - return uc->from_ucs.handlers->get_mb_cur_max (uc->from_ucs.data); -} - - -static void -ucs_based_conversion_get_state (void *data, - mbstate_t *state, - int direction) -{ - iconv_ucs_conversion_t *uc = (iconv_ucs_conversion_t *)data; - mbstate_t nullstate = ICONV_ZERO_MB_STATE_T; - - if (direction == 0) - { - if (uc->to_ucs.handlers->get_state != NULL) - uc->to_ucs.handlers->get_state (uc->to_ucs.data, state); - else - *state = nullstate; /* internal copy */ - } - else - { - if (uc->from_ucs.handlers->get_state != NULL) - uc->from_ucs.handlers->get_state (uc->from_ucs.data, state); - else - *state = nullstate; /* internal copy */ - } - - return; -} - - -static int -ucs_based_conversion_set_state (void *data, - mbstate_t *state, - int direction) -{ - iconv_ucs_conversion_t *uc = (iconv_ucs_conversion_t *)data; - - if (direction == 0) - { - if (uc->to_ucs.handlers->set_state != NULL) - return uc->to_ucs.handlers->set_state (uc->to_ucs.data, state); - } - else - { - if (uc->from_ucs.handlers->set_state != NULL) - return uc->from_ucs.handlers->set_state (uc->from_ucs.data, state); - } - - return 0; -} - -static int -ucs_based_conversion_is_stateful (void *data, - int direction) -{ - iconv_ucs_conversion_t *uc = (iconv_ucs_conversion_t *)data; - - if (direction == 0) - { - if (uc->to_ucs.handlers->is_stateful != NULL) - return uc->to_ucs.handlers->is_stateful (uc->to_ucs.data); - } - else - { - if (uc->from_ucs.handlers->is_stateful != NULL) - return uc->from_ucs.handlers->is_stateful (uc->from_ucs.data); - } - - return 0; -} - - -/* UCS-based conversion definition object */ -const iconv_conversion_handlers_t -_iconv_ucs_conversion_handlers = -{ - ucs_based_conversion_open, - ucs_based_conversion_close, - ucs_based_conversion_convert, - ucs_based_conversion_get_state, - ucs_based_conversion_set_state, - ucs_based_conversion_get_mb_cur_max, - ucs_based_conversion_is_stateful -}; - - -/* - * Supplementary functions. - */ - -static int -find_encoding_name (const char *searchee, - const char **names) -{ - const char *p; - - for (p = *names; p != NULL; p = *(names++)) - if (strcmp (p, searchee) == 0) - return 0; - - return -1; -} - diff --git a/lib/iconv/lib/ucsconv.h b/lib/iconv/lib/ucsconv.h deleted file mode 100644 index 2c3d8c6..0000000 --- a/lib/iconv/lib/ucsconv.h +++ /dev/null @@ -1,327 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy - * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#ifndef __ICONV_UCS_CONVERSION_H__ -#define __ICONV_UCS_CONVERSION_H__ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -/* No enough space in output buffer */ -#define ICONV_CES_NOSPACE 0 -/* Invalid input character */ -#define ICONV_CES_INVALID_CHARACTER -1 -/* No corespondent character in destination encoding */ -#define ICONV_CES_BAD_SEQUENCE -2 -/* All unknown characters are marked by this code */ -#define DEFAULT_CHARACTER 0x3f /* ASCII '?' */ - - -/* - * iconv_to_ucs_ces_handlers_t - "to UCS" CES converter handlers. - * - * Structure contains function pointers which should be provided by - * "to_ucs" CES converter. - * - * ============================================================================ - */ -typedef struct -{ - /* - * init - initialize CES converter. - * - * PARAMETERS: - * struct _reent *rptr - reent structure of current thread/process; - * const char *encoding - encoding name. - * - * DESCRIPTION: - * Initializes CES converter. CES converter may deal with a series of - * encodings, such as Table or EUC CES converters. 'encoding' parameter - * indicates which encoding CES converter should use. - * - * RETURN: - * Returns CES-specific data pointer if success. In case of error returns - * NULL and sets current thread's/process's errno. - */ - void *(*init) (struct _reent *rptr, - const char *encoding); - - /* - * close - close CES converter. - * - * PARAMETERS: - * struct _reent *rptr - reent structure of current thread/process; - * void *data - CES converter-specific data. - * - * DESCRIPTION: - * Preforms CES converter closing. * - * RETURN: - * Returns (size_t)0 if success. In case of error returns (size_t)-1 and - * sets current thread's/process's errno. - */ - size_t (*close) (struct _reent *rptr, - void *data); - - /* - * get_mb_cur_max - get maximum character length in bytes. - * - * PARAMETERS: - * void *data - conversion-specific data; - * - * DESCRIPTION: - * Returns encoding's maximum character length. - */ - int (*get_mb_cur_max) (void *data); - - /* - * get_state - get current shift state. - * - * PARAMETERS: - * void *data - conversion-specific data; - * mbstate_t *state - mbstate_t object where shift state will be stored; - * - * DESCRIPTION: - * Returns encoding's current shift sequence. - */ - void (*get_state) (void *data, - mbstate_t *state); - - /* - * set_state - set shift state. - * - * PARAMETERS: - * void *data - conversion-specific data; - * mbstate_t *state - mbstate_t value to which shift state will be set. - * - * DESCRIPTION: - * Sets encoding's current shift state to 'state'. if 'state' - * object is zero-object - reset current shift state. - * Returns 0 if '*state' object has right format, -1 else. - */ - int (*set_state) (void *data, - mbstate_t *state); - - /* - * is_stateful - is encoding stateful state. - * - * PARAMETERS: - * void *data - conversion-specific data; - * - * DESCRIPTION: - * Returns 0 if encoding is stateless, else returns 1. - */ - int (*is_stateful) (void *data); - - /* - * convert_to_ucs - convert character to UCS. - * - * PARAMETERS: - * void *data - CES converter-specific data; - * const unsigned char **inbuf - buffer with input character byte sequence; - * size_t *inbytesleft - output buffer bytes count. - * - * DESCRIPTION: - * Converts input characters into UCS encoding. 'inbuf' is - * incremented accordingly. 'bytesleft' is decremented accordingly. Should - * be provided by correspondent CES module. - * - * RETURN: - * Returns resulting UCS code if success. If input character is invalid, - * returns ICONV_CES_INVALID_CHARACTER. If invalid or incomplete bytes - * sequence was met, returns ICONV_CES_BAD_SEQUENCE. - */ - ucs4_t (*convert_to_ucs) (void *data, - const unsigned char **inbuf, - size_t *inbytesleft); -} iconv_to_ucs_ces_handlers_t; - - -/* - * iconv_from_ucs_ces_handlers_t - "from UCS" CES converter handlers. - * - * Structure contains function pointers which should be provided by - * "from_ucs" CES converter. - * - * ============================================================================ - */ -typedef struct -{ - /* Same as in iconv_to_ucs_ces_handlers_t */ - void *(*init) (struct _reent *rptr, - const char *encoding); - - /* Same as in iconv_to_ucs_ces_handlers_t */ - size_t (*close) (struct _reent *rptr, - void *data); - - /* Same as in iconv_to_ucs_ces_handlers_t */ - int (*get_mb_cur_max) (void *data); - - /* Same as in iconv_to_ucs_ces_handlers_t */ - void (*get_state) (void *data, - mbstate_t *state); - - /* Same as in iconv_to_ucs_ces_handlers_t */ - int (*set_state) (void *data, - mbstate_t *state); - - /* Same as in iconv_to_ucs_ces_handlers_t */ - int (*is_stateful) (void *data); - - /* - * convert_from_ucs - convert UCS character to destination encoding. - * - * PARAMETERS: - * void *data - CES converter-specific data; - * ucs4_t in - input UCS-4 character; - * unsigned char **outbuf - output buffer for the result; - * size_t *outbytesleft - output buffer bytes count. - * - * DESCRIPTION: - * Converts input UCS characters to destination encoding and stores result - * in 'outbuf' if there is sufficient free space present. 'outbuf' is - * incremented accordingly. 'outbytesleft' is decremented accordingly. Should - * be provided by correspondent CES module. - * Output buffer always has at least 1 byte. - * - * RETURN: - * Returns number of bytes that was written into output buffer if success. - * If there is no enough space in output buffer, returns ICONV_CES_NOSPACE. - * If there is no corresponding character in destination encoding, returns - * ICONV_CES_INVALID_CHARACTER. - */ - size_t (*convert_from_ucs) (void *data, - ucs4_t in, - unsigned char **outbuf, - size_t *outbytesleft); -} iconv_from_ucs_ces_handlers_t; - - -/* - * iconv_to_ucs_ces_desc_t - "to UCS" CES converter definition structure for - * usage in iconv_ucs_conversion_t conversion description structure. - * - * ============================================================================ - */ -typedef struct -{ - /* CES converter handlers */ - const iconv_to_ucs_ces_handlers_t *handlers; - - /* "to_ucs" CES converter-specific data. */ - void *data; -} iconv_to_ucs_ces_desc_t; - - -/* - * iconv_from_ucs_ces_desc_t - "from UCS" CES converter definition structure for - * usage in iconv_ucs_conversion_t conversion description structure. - * - * ============================================================================ - */ -typedef struct -{ - /* CES converter handlers */ - const iconv_from_ucs_ces_handlers_t *handlers; - - /* "from_ucs" CES converter-specific data. */ - void *data; -} iconv_from_ucs_ces_desc_t; - - -/* - * iconv_ucs_conversion_t - UCS-based conversion definition structure. - * - * Defines special type of conversion where every character is first - * converted into UCS-4 (UCS-2 for table-driven), and after this the - * resulting UCS character is converted to destination encoding. - * UCS-based conversion is composed of two *converters*, defined by - * iconv_ces_t structure. The iconv_ucs_conversion_t object is referred - * from iconv_conversion_t object using 'data' field. - * - * Structure contains two objects - 'to_ucs' and 'from_ucs' which define - * "source encoding to UCS" and "UCS to destination encoding" converters. - * - * ============================================================================ - */ -typedef struct -{ - /* Source encoding -> CES converter. */ - iconv_to_ucs_ces_desc_t to_ucs; - - /* UCS -> destination encoding CES converter. */ - iconv_from_ucs_ces_desc_t from_ucs; -} iconv_ucs_conversion_t; - - -/* - * iconv_to_ucs_ces_t - defines "to UCS" CES converter. - * - * ============================================================================ - */ -typedef struct -{ - /* - * An array of encodings names, supported by CES converter. - * The end of array should be marked by NULL pointer. - */ - const char **names; - - /* CES converter description structure */ - const iconv_to_ucs_ces_handlers_t *handlers; -} iconv_to_ucs_ces_t; - - -/* - * iconv_from_ucs_ces_t - defines "from UCS" CES converter. - * - * ============================================================================ - */ -typedef struct -{ - /* - * An array of encodings names, supported by CES converter. - * The end of array should be marked by NULL pointer. - */ - const char **names; - - /* CES converter description structure */ - const iconv_from_ucs_ces_handlers_t *handlers; -} iconv_from_ucs_ces_t; - - -/* List of "to UCS" linked-in CES converters. */ -extern const iconv_to_ucs_ces_t -_iconv_to_ucs_ces[]; - -/* List of "from UCS" linked-in CES converters. */ -extern const iconv_from_ucs_ces_t -_iconv_from_ucs_ces[]; - -#endif /* !__ICONV_UCS_CONVERSION_H__ */ - diff --git a/lib/include/_ansi.h b/lib/include/_ansi.h deleted file mode 100644 index 6c7497e..0000000 --- a/lib/include/_ansi.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Provide support for both ANSI and non-ANSI environments. */ - -/* To get a strict ANSI C environment, define macro __STRICT_ANSI__. This will - "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header - files aren't affected). */ - -#ifndef _ANSIDECL_H_ -#define _ANSIDECL_H_ - -#include -#include - -/* ISO C++. */ - -#ifdef __cplusplus -#if !(defined(_BEGIN_STD_C) && defined(_END_STD_C)) -#ifdef _HAVE_STD_CXX -#define _BEGIN_STD_C namespace std { extern "C" { -#define _END_STD_C } } -#else -#define _BEGIN_STD_C extern "C" { -#define _END_STD_C } -#endif -#if __GNUC_PREREQ (3, 3) -#define _NOTHROW __attribute__ ((__nothrow__)) -#else -#define _NOTHROW throw() -#endif -#endif -#else -#define _BEGIN_STD_C -#define _END_STD_C -#define _NOTHROW -#endif - -#ifndef _LONG_DOUBLE -#define _LONG_DOUBLE long double -#endif - -/* Support gcc's __attribute__ facility. */ - -#ifdef __GNUC__ -#define _ATTRIBUTE(attrs) __attribute__ (attrs) -#else -#define _ATTRIBUTE(attrs) -#endif - -/* The traditional meaning of 'extern inline' for GCC is not - to emit the function body unless the address is explicitly - taken. However this behaviour is changing to match the C99 - standard, which uses 'extern inline' to indicate that the - function body *must* be emitted. Likewise, a function declared - without either 'extern' or 'static' defaults to extern linkage - (C99 6.2.2p5), and the compiler may choose whether to use the - inline version or call the extern linkage version (6.7.4p6). - If we are using GCC, but do not have the new behaviour, we need - to use extern inline; if we are using a new GCC with the - C99-compatible behaviour, or a non-GCC compiler (which we will - have to hope is C99, since there is no other way to achieve the - effect of omitting the function if it isn't referenced) we use - 'static inline', which c99 defines to mean more-or-less the same - as the Gnu C 'extern inline'. */ -#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__) -/* We're using GCC, but without the new C99-compatible behaviour. */ -#define _ELIDABLE_INLINE extern __inline__ _ATTRIBUTE ((__always_inline__)) -#else -/* We're using GCC in C99 mode, or an unknown compiler which - we just have to hope obeys the C99 semantics of inline. */ -#define _ELIDABLE_INLINE static __inline__ -#endif - -#if __GNUC_PREREQ (3, 1) -#define _NOINLINE __attribute__ ((__noinline__)) -#define _NOINLINE_STATIC _NOINLINE static -#else -/* On non-GNU compilers and GCC prior to version 3.1 the compiler can't be - trusted not to inline if it is static. */ -#define _NOINLINE -#define _NOINLINE_STATIC -#endif - -#endif /* _ANSIDECL_H_ */ diff --git a/lib/include/_newlib_version.h b/lib/include/_newlib_version.h deleted file mode 100644 index d4fffb1..0000000 --- a/lib/include/_newlib_version.h +++ /dev/null @@ -1,2 +0,0 @@ -/* dummy file for external tools to use. Real file is created by - newlib configuration. */ diff --git a/lib/include/_syslist.h b/lib/include/_syslist.h deleted file mode 100644 index 271644e..0000000 --- a/lib/include/_syslist.h +++ /dev/null @@ -1,40 +0,0 @@ -/* internal use only -- mapping of "system calls" for libraries that lose - and only provide C names, so that we end up in violation of ANSI */ -#ifndef __SYSLIST_H -#define __SYSLIST_H - -#ifdef MISSING_SYSCALL_NAMES -#define _close close -#define _execve execve -#define _fcntl fcntl -#define _fork fork -#define _fstat fstat -#define _getpid getpid -#define _gettimeofday gettimeofday -#define _isatty isatty -#define _kill kill -#define _link link -#define _lseek lseek -#define _mkdir mkdir -#define _open open -#define _read read -#define _sbrk sbrk -#define _stat stat -#define _times times -#define _unlink unlink -#define _wait wait -#define _write write -#endif /* MISSING_SYSCALL_NAMES */ - -#if defined MISSING_SYSCALL_NAMES || !defined HAVE_OPENDIR -/* If the system call interface is missing opendir, readdir, and - closedir, there is an implementation of these functions in - libc/posix that is implemented using open, getdents, and close. - Note, these functions are currently not in the libc/syscalls - directory. */ -#define _opendir opendir -#define _readdir readdir -#define _closedir closedir -#endif /* MISSING_SYSCALL_NAMES || !HAVE_OPENDIR */ - -#endif /* !__SYSLIST_H_ */ diff --git a/lib/include/alloca.h b/lib/include/alloca.h deleted file mode 100644 index 5d36318..0000000 --- a/lib/include/alloca.h +++ /dev/null @@ -1,21 +0,0 @@ -/* libc/include/alloca.h - Allocate memory on stack */ - -/* Written 2000 by Werner Almesberger */ -/* Rearranged for general inclusion by stdlib.h. - 2001, Corinna Vinschen */ - -#ifndef _NEWLIB_ALLOCA_H -#define _NEWLIB_ALLOCA_H - -#include "_ansi.h" -#include - -#undef alloca - -#ifdef __GNUC__ -#define alloca(size) __builtin_alloca(size) -#else -void * alloca (size_t); -#endif - -#endif diff --git a/lib/include/ar.h b/lib/include/ar.h deleted file mode 100644 index 4c05813..0000000 --- a/lib/include/ar.h +++ /dev/null @@ -1,65 +0,0 @@ -/* $NetBSD: ar.h,v 1.4 1994/10/26 00:55:43 cgd Exp $ */ - -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * This code is derived from software contributed to Berkeley by - * Hugh Smith at The University of Guelph. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)ar.h 8.2 (Berkeley) 1/21/94 - */ - -#ifndef _AR_H_ -#define _AR_H_ - -/* Pre-4BSD archives had these magic numbers in them. */ -#define OARMAG1 0177555 -#define OARMAG2 0177545 - -#define ARMAG "!\n" /* ar "magic number" */ -#define SARMAG 8 /* strlen(ARMAG); */ - -#define AR_EFMT1 "#1/" /* extended format #1 */ - -struct ar_hdr { - char ar_name[16]; /* name */ - char ar_date[12]; /* modification time */ - char ar_uid[6]; /* user id */ - char ar_gid[6]; /* group id */ - char ar_mode[8]; /* octal file permissions */ - char ar_size[10]; /* size in bytes */ -#define ARFMAG "`\n" - char ar_fmag[2]; /* consistency check */ -}; - -#endif /* !_AR_H_ */ diff --git a/lib/include/argz.h b/lib/include/argz.h deleted file mode 100644 index 02c9adb..0000000 --- a/lib/include/argz.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _ARGZ_H_ -#define _ARGZ_H_ - -#include -#include - -#include "_ansi.h" - -_BEGIN_STD_C - -/* The newlib implementation of these functions assumes that sizeof(char) == 1. */ -error_t argz_create (char *const argv[], char **argz, size_t *argz_len); -error_t argz_create_sep (const char *string, int sep, char **argz, size_t *argz_len); -size_t argz_count (const char *argz, size_t argz_len); -void argz_extract (char *argz, size_t argz_len, char **argv); -void argz_stringify (char *argz, size_t argz_len, int sep); -error_t argz_add (char **argz, size_t *argz_len, const char *str); -error_t argz_add_sep (char **argz, size_t *argz_len, const char *str, int sep); -error_t argz_append (char **argz, size_t *argz_len, const char *buf, size_t buf_len); -error_t argz_delete (char **argz, size_t *argz_len, char *entry); -error_t argz_insert (char **argz, size_t *argz_len, char *before, const char *entry); -char * argz_next (char *argz, size_t argz_len, const char *entry); -error_t argz_replace (char **argz, size_t *argz_len, const char *str, const char *with, unsigned *replace_count); - -_END_STD_C - -#endif /* _ARGZ_H_ */ diff --git a/lib/include/assert.h b/lib/include/assert.h deleted file mode 100644 index b9e5e9b..0000000 --- a/lib/include/assert.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - assert.h -*/ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "_ansi.h" - -#undef assert - -#ifdef NDEBUG /* required by ANSI standard */ -# define assert(__e) ((void)0) -#else -# define assert(__e) ((__e) ? (void)0 : __assert_func (__FILE__, __LINE__, \ - __ASSERT_FUNC, #__e)) - -# ifndef __ASSERT_FUNC - /* Use g++'s demangled names in C++. */ -# if defined __cplusplus && defined __GNUC__ -# define __ASSERT_FUNC __PRETTY_FUNCTION__ - - /* C99 requires the use of __func__. */ -# elif __STDC_VERSION__ >= 199901L -# define __ASSERT_FUNC __func__ - - /* Older versions of gcc don't have __func__ but can use __FUNCTION__. */ -# elif __GNUC__ >= 2 -# define __ASSERT_FUNC __FUNCTION__ - - /* failed to detect __func__ support. */ -# else -# define __ASSERT_FUNC ((char *) 0) -# endif -# endif /* !__ASSERT_FUNC */ -#endif /* !NDEBUG */ - -void __assert (const char *, int, const char *) - _ATTRIBUTE ((__noreturn__)); -void __assert_func (const char *, int, const char *, const char *) - _ATTRIBUTE ((__noreturn__)); - -#if __STDC_VERSION__ >= 201112L && !defined __cplusplus -# define static_assert _Static_assert -#endif - -#ifdef __cplusplus -} -#endif diff --git a/lib/include/complex.h b/lib/include/complex.h deleted file mode 100644 index ad3028e..0000000 --- a/lib/include/complex.h +++ /dev/null @@ -1,150 +0,0 @@ -/* $NetBSD: complex.h,v 1.3 2010/09/15 16:11:30 christos Exp $ */ - -/* - * Written by Matthias Drochner. - * Public domain. - */ - -#ifndef _COMPLEX_H -#define _COMPLEX_H - -#define complex _Complex -#define _Complex_I 1.0fi -#define I _Complex_I - -#include - -__BEGIN_DECLS - -/* 7.3.5 Trigonometric functions */ -/* 7.3.5.1 The cacos functions */ -double complex cacos(double complex); -float complex cacosf(float complex); -long double complex cacosl(long double complex); - -/* 7.3.5.2 The casin functions */ -double complex casin(double complex); -float complex casinf(float complex); -long double complex casinl(long double complex); - -/* 7.3.5.1 The catan functions */ -double complex catan(double complex); -float complex catanf(float complex); -long double complex catanl(long double complex); - -/* 7.3.5.1 The ccos functions */ -double complex ccos(double complex); -float complex ccosf(float complex); -long double complex ccosl(long double complex); - -/* 7.3.5.1 The csin functions */ -double complex csin(double complex); -float complex csinf(float complex); -long double complex csinl(long double complex); - -/* 7.3.5.1 The ctan functions */ -double complex ctan(double complex); -float complex ctanf(float complex); -long double complex ctanl(long double complex); - -/* 7.3.6 Hyperbolic functions */ -/* 7.3.6.1 The cacosh functions */ -double complex cacosh(double complex); -float complex cacoshf(float complex); -long double complex cacoshl(long double complex); - -/* 7.3.6.2 The casinh functions */ -double complex casinh(double complex); -float complex casinhf(float complex); -long double complex casinhl(long double complex); - -/* 7.3.6.3 The catanh functions */ -double complex catanh(double complex); -float complex catanhf(float complex); -long double complex catanhl(long double complex); - -/* 7.3.6.4 The ccosh functions */ -double complex ccosh(double complex); -float complex ccoshf(float complex); -long double complex ccoshl(long double complex); - -/* 7.3.6.5 The csinh functions */ -double complex csinh(double complex); -float complex csinhf(float complex); -long double complex csinhl(long double complex); - -/* 7.3.6.6 The ctanh functions */ -double complex ctanh(double complex); -float complex ctanhf(float complex); -long double complex ctanhl(long double complex); - -/* 7.3.7 Exponential and logarithmic functions */ -/* 7.3.7.1 The cexp functions */ -double complex cexp(double complex); -float complex cexpf(float complex); -long double complex cexpl(long double complex); - -/* 7.3.7.2 The clog functions */ -double complex clog(double complex); -float complex clogf(float complex); -long double complex clogl(long double complex); - -/* 7.3.8 Power and absolute-value functions */ -/* 7.3.8.1 The cabs functions */ -/*#ifndef __LIBM0_SOURCE__ */ -/* avoid conflict with historical cabs(struct complex) */ -/* double cabs(double complex) __RENAME(__c99_cabs); - float cabsf(float complex) __RENAME(__c99_cabsf); - #endif -*/ -long double cabsl(long double complex) ; -double cabs(double complex) ; -float cabsf(float complex) ; - -/* 7.3.8.2 The cpow functions */ -double complex cpow(double complex, double complex); -float complex cpowf(float complex, float complex); -long double complex cpowl(long double complex, long double complex); - -/* 7.3.8.3 The csqrt functions */ -double complex csqrt(double complex); -float complex csqrtf(float complex); -long double complex csqrtl(long double complex); - -/* 7.3.9 Manipulation functions */ -/* 7.3.9.1 The carg functions */ -double carg(double complex); -float cargf(float complex); -long double cargl(long double complex); - -/* 7.3.9.2 The cimag functions */ -double cimag(double complex); -float cimagf(float complex); -long double cimagl(long double complex); - -/* 7.3.9.3 The conj functions */ -double complex conj(double complex); -float complex conjf(float complex); -long double complex conjl(long double complex); - -/* 7.3.9.4 The cproj functions */ -double complex cproj(double complex); -float complex cprojf(float complex); -long double complex cprojl(long double complex); - -/* 7.3.9.5 The creal functions */ -double creal(double complex); -float crealf(float complex); -long double creall(long double complex); - -#if __GNU_VISIBLE -double complex clog10(double complex); -float complex clog10f(float complex); -# if defined(__CYGWIN__) -long double complex clog10l(long double complex); -# endif -#endif - -__END_DECLS - -#endif /* ! _COMPLEX_H */ diff --git a/lib/include/cpio.h b/lib/include/cpio.h deleted file mode 100644 index 99860b2..0000000 --- a/lib/include/cpio.h +++ /dev/null @@ -1,30 +0,0 @@ -/* POSIX.1 symbolic constants for c_mode field of cpio archive format */ - -#ifndef _CPIO_H -#define _CPIO_H - -#define C_IRUSR 0000400 /* Read by owner */ -#define C_IWUSR 0000200 /* Write by owner */ -#define C_IXUSR 0000100 /* Execute by owner */ -#define C_IRGRP 0000040 /* Read by group */ -#define C_IWGRP 0000020 /* Write by group */ -#define C_IXGRP 0000010 /* Execute by group */ -#define C_IROTH 0000004 /* Read by others */ -#define C_IWOTH 0000002 /* Write by others */ -#define C_IXOTH 0000001 /* Execute by others */ -#define C_ISUID 0004000 /* Set user ID */ -#define C_ISGID 0002000 /* Set group ID */ -#define C_ISVTX 0001000 /* On directories, restricted deletion flag */ - -#define C_ISDIR 0040000 /* Directory */ -#define C_ISFIFO 0010000 /* FIFO */ -#define C_ISREG 0100000 /* Regular file */ -#define C_ISBLK 0060000 /* Block special */ -#define C_ISCHR 0020000 /* Character special */ -#define C_ISCTG 0110000 /* Reserved */ -#define C_ISLNK 0120000 /* Symbolic link */ -#define C_ISSOCK 0140000 /* Socket */ - -#define MAGIC "070707" - -#endif /* _CPIO_H */ diff --git a/lib/include/ctype.h b/lib/include/ctype.h deleted file mode 100644 index b29594a..0000000 --- a/lib/include/ctype.h +++ /dev/null @@ -1,183 +0,0 @@ -#ifndef _CTYPE_H_ -#define _CTYPE_H_ - -#include "_ansi.h" -#include - -#if __POSIX_VISIBLE >= 200809 || __MISC_VISIBLE || defined (_LIBC) -#include -#endif - -_BEGIN_STD_C - -int isalnum (int __c); -int isalpha (int __c); -int iscntrl (int __c); -int isdigit (int __c); -int isgraph (int __c); -int islower (int __c); -int isprint (int __c); -int ispunct (int __c); -int isspace (int __c); -int isupper (int __c); -int isxdigit (int __c); -int tolower (int __c); -int toupper (int __c); - -#if __ISO_C_VISIBLE >= 1999 -int isblank (int __c); -#endif - -#if __MISC_VISIBLE || __XSI_VISIBLE -int isascii (int __c); -int toascii (int __c); -#define _tolower(__c) ((unsigned char)(__c) - 'A' + 'a') -#define _toupper(__c) ((unsigned char)(__c) - 'a' + 'A') -#endif - -#if __POSIX_VISIBLE >= 200809 -extern int isalnum_l (int __c, locale_t __l); -extern int isalpha_l (int __c, locale_t __l); -extern int isblank_l (int __c, locale_t __l); -extern int iscntrl_l (int __c, locale_t __l); -extern int isdigit_l (int __c, locale_t __l); -extern int isgraph_l (int __c, locale_t __l); -extern int islower_l (int __c, locale_t __l); -extern int isprint_l (int __c, locale_t __l); -extern int ispunct_l (int __c, locale_t __l); -extern int isspace_l (int __c, locale_t __l); -extern int isupper_l (int __c, locale_t __l); -extern int isxdigit_l(int __c, locale_t __l); -extern int tolower_l (int __c, locale_t __l); -extern int toupper_l (int __c, locale_t __l); -#endif - -#if __MISC_VISIBLE -extern int isascii_l (int __c, locale_t __l); -extern int toascii_l (int __c, locale_t __l); -#endif - -#define _U 01 -#define _L 02 -#define _N 04 -#define _S 010 -#define _P 020 -#define _C 040 -#define _X 0100 -#define _B 0200 - -/* For C++ backward-compatibility only. */ -extern __IMPORT const char _ctype_[]; - -#ifdef __HAVE_LOCALE_INFO__ -const char *__locale_ctype_ptr (void); -#else -#define __locale_ctype_ptr() _ctype_ -#endif - -# define __CTYPE_PTR (__locale_ctype_ptr ()) - -#ifndef __cplusplus -/* These macros are intentionally written in a manner that will trigger - a gcc -Wall warning if the user mistakenly passes a 'char' instead - of an int containing an 'unsigned char'. Note that the sizeof will - always be 1, which is what we want for mapping EOF to __CTYPE_PTR[0]; - the use of a raw index inside the sizeof triggers the gcc warning if - __c was of type char, and sizeof masks side effects of the extra __c. - Meanwhile, the real index to __CTYPE_PTR+1 must be cast to int, - since isalpha(0x100000001LL) must equal isalpha(1), rather than being - an out-of-bounds reference on a 64-bit machine. */ -#define __ctype_lookup(__c) ((__CTYPE_PTR+sizeof(""[__c]))[(int)(__c)]) - -#define isalpha(__c) (__ctype_lookup(__c)&(_U|_L)) -#define isupper(__c) ((__ctype_lookup(__c)&(_U|_L))==_U) -#define islower(__c) ((__ctype_lookup(__c)&(_U|_L))==_L) -#define isdigit(__c) (__ctype_lookup(__c)&_N) -#define isxdigit(__c) (__ctype_lookup(__c)&(_X|_N)) -#define isspace(__c) (__ctype_lookup(__c)&_S) -#define ispunct(__c) (__ctype_lookup(__c)&_P) -#define isalnum(__c) (__ctype_lookup(__c)&(_U|_L|_N)) -#define isprint(__c) (__ctype_lookup(__c)&(_P|_U|_L|_N|_B)) -#define isgraph(__c) (__ctype_lookup(__c)&(_P|_U|_L|_N)) -#define iscntrl(__c) (__ctype_lookup(__c)&_C) - -#if defined(__GNUC__) && __ISO_C_VISIBLE >= 1999 -#define isblank(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - (__ctype_lookup(__x)&_B) || (int) (__x) == '\t';}) -#endif - -#if __POSIX_VISIBLE >= 200809 -#ifdef __HAVE_LOCALE_INFO__ -const char *__locale_ctype_ptr_l (locale_t); -#else -static __inline const char * -__locale_ctype_ptr_l(locale_t _l) -{ - (void)_l; - return __locale_ctype_ptr(); -} -#endif -#define __ctype_lookup_l(__c,__l) ((__locale_ctype_ptr_l(__l)+sizeof(""[__c]))[(int)(__c)]) - -#define isalpha_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_U|_L)) -#define isupper_l(__c,__l) ((__ctype_lookup_l(__c,__l)&(_U|_L))==_U) -#define islower_l(__c,__l) ((__ctype_lookup_l(__c,__l)&(_U|_L))==_L) -#define isdigit_l(__c,__l) (__ctype_lookup_l(__c,__l)&_N) -#define isxdigit_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_X|_N)) -#define isspace_l(__c,__l) (__ctype_lookup_l(__c,__l)&_S) -#define ispunct_l(__c,__l) (__ctype_lookup_l(__c,__l)&_P) -#define isalnum_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_U|_L|_N)) -#define isprint_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_P|_U|_L|_N|_B)) -#define isgraph_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_P|_U|_L|_N)) -#define iscntrl_l(__c,__l) (__ctype_lookup_l(__c,__l)&_C) - -#if defined(__GNUC__) -#define isblank_l(__c, __l) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - (__ctype_lookup_l(__x,__l)&_B) || (int) (__x) == '\t';}) -#endif - -#endif /* __POSIX_VISIBLE >= 200809 */ - -#if __MISC_VISIBLE || __XSI_VISIBLE -#define isascii(__c) ((unsigned)(__c)<=0177) -#define toascii(__c) ((__c)&0177) -#endif - -#if __MISC_VISIBLE -#define isascii_l(__c,__l) ((__l),(unsigned)(__c)<=0177) -#define toascii_l(__c,__l) ((__l),(__c)&0177) -#endif - -/* Non-gcc versions will get the library versions, and will be - slightly slower. These macros are not NLS-aware so they are - disabled if the system supports the extended character sets. */ -# if defined(__GNUC__) -# if !defined (_MB_EXTENDED_CHARSETS_ISO) && !defined (_MB_EXTENDED_CHARSETS_WINDOWS) -# define toupper(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - islower (__x) ? (int) __x - 'a' + 'A' : (int) __x;}) -# define tolower(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - isupper (__x) ? (int) __x - 'A' + 'a' : (int) __x;}) -# else /* _MB_EXTENDED_CHARSETS* */ -/* Allow a gcc warning if the user passed 'char', but defer to the - function. */ -# define toupper(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - (void) __CTYPE_PTR[__x]; (toupper) (__x);}) -# define tolower(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - (void) __CTYPE_PTR[__x]; (tolower) (__x);}) -# endif /* _MB_EXTENDED_CHARSETS* */ -# endif /* __GNUC__ */ - -#if __POSIX_VISIBLE >= 200809 -#endif /* __POSIX_VISIBLE >= 200809 */ - -#endif /* !__cplusplus */ - -_END_STD_C - -#endif /* _CTYPE_H_ */ diff --git a/lib/include/devctl.h b/lib/include/devctl.h deleted file mode 100644 index 46305cf..0000000 --- a/lib/include/devctl.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2016,2019 Joel Sherrill . - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _POSIX_DEVCTL_h_ -#define _POSIX_DEVCTL_h_ - -/* - * Nothing in this file should be visible unless _POSIX_26_C_SOURCE is - * defined. - */ -#ifdef _POSIX_26_C_SOURCE - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(__rtems__) -/* - * The FACE Technical Standard, Edition 3.0 and later require the - * definition of the subcommand SOCKCLOSE in . - * - * Reference: https://www.opengroup.org/face - * - * Using 'D' should avoid the letters used by other users of - */ -#include - -#define SOCKCLOSE _IO('D', 1) /* socket close */ -#endif - -/* - * The posix_devctl() method is defined by POSIX 1003.26-2003. Aside - * from the single method, it adds the following requirements: - * - * + define _POSIX_26_VERSION to 200312L - * + add _SC_POSIX_26_VERSION in . Return _POSIX_26_VERSION - * + application must define _POSIX_26_C_SOURCE to use posix_devctl(). - * + posix_devctl() is prototyped in - */ -int posix_devctl( - int fd, - int dcmd, - void *__restrict dev_data_ptr, - size_t nbyte, - int *__restrict dev_info_ptr -); - -#ifdef __cplusplus -} -#endif - -#endif /* _POSIX_26_C_SOURCE */ -#endif /*_POSIX_DEVCTL_h_ */ diff --git a/lib/include/dirent.h b/lib/include/dirent.h deleted file mode 100644 index cdfa21f..0000000 --- a/lib/include/dirent.h +++ /dev/null @@ -1,85 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)dirent.h 8.3 (Berkeley) 8/10/94 - * $FreeBSD: head/include/dirent.h 326024 2017-11-20 19:45:28Z pfg $ - */ - -#ifndef _DIRENT_H_ -#define _DIRENT_H_ - -#include -#include - -#if !defined(MAXNAMLEN) && __BSD_VISIBLE -#define MAXNAMLEN 1024 -#endif - -__BEGIN_DECLS -#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 700 -int alphasort(const struct dirent **, const struct dirent **); -int dirfd(DIR *); -#endif -#if __BSD_VISIBLE -int fdclosedir(DIR *); -#endif -DIR *opendir(const char *); -DIR *fdopendir(int); -struct dirent * - readdir(DIR *); -#if __POSIX_VISIBLE >= 199506 || __XSI_VISIBLE >= 500 -int readdir_r(DIR *__restrict, struct dirent *__restrict, - struct dirent **__restrict); -#endif -void rewinddir(DIR *); -#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 700 -int scandir(const char *, struct dirent ***, - int (*)(const struct dirent *), int (*)(const struct dirent **, - const struct dirent **)); -#endif -#ifdef _LIBC -void _seekdir(DIR *, long); -#endif -#if __MISC_VISIBLE || __XSI_VISIBLE -#ifndef __INSIDE_CYGWIN__ -void seekdir(DIR *, long); -long telldir(DIR *); -#endif -#endif -int closedir(DIR *); -#if __GNU_VISIBLE -int scandirat(int, const char *, struct dirent ***, - int (*) (const struct dirent *), int (*) (const struct dirent **, - const struct dirent **)); -int versionsort(const struct dirent **, const struct dirent **); -#endif -__END_DECLS - -#endif /*_DIRENT_H_*/ diff --git a/lib/include/elf.h b/lib/include/elf.h deleted file mode 100644 index 79d3b97..0000000 --- a/lib/include/elf.h +++ /dev/null @@ -1,3147 +0,0 @@ -/* -From musl include/elf.h - -Copyright © 2005-2014 Rich Felker, et al. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifndef _ELF_H -#define _ELF_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -typedef uint16_t Elf32_Half; -typedef uint16_t Elf64_Half; - -typedef uint32_t Elf32_Word; -typedef int32_t Elf32_Sword; -typedef uint32_t Elf64_Word; -typedef int32_t Elf64_Sword; - -typedef uint64_t Elf32_Xword; -typedef int64_t Elf32_Sxword; -typedef uint64_t Elf64_Xword; -typedef int64_t Elf64_Sxword; - -typedef uint32_t Elf32_Addr; -typedef uint64_t Elf64_Addr; - -typedef uint32_t Elf32_Off; -typedef uint64_t Elf64_Off; - -typedef uint16_t Elf32_Section; -typedef uint16_t Elf64_Section; - -typedef Elf32_Half Elf32_Versym; -typedef Elf64_Half Elf64_Versym; - -#define EI_NIDENT (16) - -typedef struct { - unsigned char e_ident[EI_NIDENT]; - Elf32_Half e_type; - Elf32_Half e_machine; - Elf32_Word e_version; - Elf32_Addr e_entry; - Elf32_Off e_phoff; - Elf32_Off e_shoff; - Elf32_Word e_flags; - Elf32_Half e_ehsize; - Elf32_Half e_phentsize; - Elf32_Half e_phnum; - Elf32_Half e_shentsize; - Elf32_Half e_shnum; - Elf32_Half e_shstrndx; -} Elf32_Ehdr; - -typedef struct { - unsigned char e_ident[EI_NIDENT]; - Elf64_Half e_type; - Elf64_Half e_machine; - Elf64_Word e_version; - Elf64_Addr e_entry; - Elf64_Off e_phoff; - Elf64_Off e_shoff; - Elf64_Word e_flags; - Elf64_Half e_ehsize; - Elf64_Half e_phentsize; - Elf64_Half e_phnum; - Elf64_Half e_shentsize; - Elf64_Half e_shnum; - Elf64_Half e_shstrndx; -} Elf64_Ehdr; - -#define EI_MAG0 0 -#define ELFMAG0 0x7f - -#define EI_MAG1 1 -#define ELFMAG1 'E' - -#define EI_MAG2 2 -#define ELFMAG2 'L' - -#define EI_MAG3 3 -#define ELFMAG3 'F' - - -#define ELFMAG "\177ELF" -#define SELFMAG 4 - -#define EI_CLASS 4 -#define ELFCLASSNONE 0 -#define ELFCLASS32 1 -#define ELFCLASS64 2 -#define ELFCLASSNUM 3 - -#define EI_DATA 5 -#define ELFDATANONE 0 -#define ELFDATA2LSB 1 -#define ELFDATA2MSB 2 -#define ELFDATANUM 3 - -#define EI_VERSION 6 - - -#define EI_OSABI 7 -#define ELFOSABI_NONE 0 -#define ELFOSABI_SYSV 0 -#define ELFOSABI_HPUX 1 -#define ELFOSABI_NETBSD 2 -#define ELFOSABI_LINUX 3 -#define ELFOSABI_GNU 3 -#define ELFOSABI_SOLARIS 6 -#define ELFOSABI_AIX 7 -#define ELFOSABI_IRIX 8 -#define ELFOSABI_FREEBSD 9 -#define ELFOSABI_TRU64 10 -#define ELFOSABI_MODESTO 11 -#define ELFOSABI_OPENBSD 12 -#define ELFOSABI_ARM 97 -#define ELFOSABI_STANDALONE 255 - -#define EI_ABIVERSION 8 - -#define EI_PAD 9 - - - -#define ET_NONE 0 -#define ET_REL 1 -#define ET_EXEC 2 -#define ET_DYN 3 -#define ET_CORE 4 -#define ET_NUM 5 -#define ET_LOOS 0xfe00 -#define ET_HIOS 0xfeff -#define ET_LOPROC 0xff00 -#define ET_HIPROC 0xffff - - - -#define EM_NONE 0 -#define EM_M32 1 -#define EM_SPARC 2 -#define EM_386 3 -#define EM_68K 4 -#define EM_88K 5 -#define EM_860 7 -#define EM_MIPS 8 -#define EM_S370 9 -#define EM_MIPS_RS3_LE 10 - -#define EM_PARISC 15 -#define EM_VPP500 17 -#define EM_SPARC32PLUS 18 -#define EM_960 19 -#define EM_PPC 20 -#define EM_PPC64 21 -#define EM_S390 22 - -#define EM_V800 36 -#define EM_FR20 37 -#define EM_RH32 38 -#define EM_RCE 39 -#define EM_ARM 40 -#define EM_FAKE_ALPHA 41 -#define EM_SH 42 -#define EM_SPARCV9 43 -#define EM_TRICORE 44 -#define EM_ARC 45 -#define EM_H8_300 46 -#define EM_H8_300H 47 -#define EM_H8S 48 -#define EM_H8_500 49 -#define EM_IA_64 50 -#define EM_MIPS_X 51 -#define EM_COLDFIRE 52 -#define EM_68HC12 53 -#define EM_MMA 54 -#define EM_PCP 55 -#define EM_NCPU 56 -#define EM_NDR1 57 -#define EM_STARCORE 58 -#define EM_ME16 59 -#define EM_ST100 60 -#define EM_TINYJ 61 -#define EM_X86_64 62 -#define EM_PDSP 63 - -#define EM_FX66 66 -#define EM_ST9PLUS 67 -#define EM_ST7 68 -#define EM_68HC16 69 -#define EM_68HC11 70 -#define EM_68HC08 71 -#define EM_68HC05 72 -#define EM_SVX 73 -#define EM_ST19 74 -#define EM_VAX 75 -#define EM_CRIS 76 -#define EM_JAVELIN 77 -#define EM_FIREPATH 78 -#define EM_ZSP 79 -#define EM_MMIX 80 -#define EM_HUANY 81 -#define EM_PRISM 82 -#define EM_AVR 83 -#define EM_FR30 84 -#define EM_D10V 85 -#define EM_D30V 86 -#define EM_V850 87 -#define EM_M32R 88 -#define EM_MN10300 89 -#define EM_MN10200 90 -#define EM_PJ 91 -#define EM_OR1K 92 -#define EM_OPENRISC 92 -#define EM_ARC_A5 93 -#define EM_ARC_COMPACT 93 -#define EM_XTENSA 94 -#define EM_VIDEOCORE 95 -#define EM_TMM_GPP 96 -#define EM_NS32K 97 -#define EM_TPC 98 -#define EM_SNP1K 99 -#define EM_ST200 100 -#define EM_IP2K 101 -#define EM_MAX 102 -#define EM_CR 103 -#define EM_F2MC16 104 -#define EM_MSP430 105 -#define EM_BLACKFIN 106 -#define EM_SE_C33 107 -#define EM_SEP 108 -#define EM_ARCA 109 -#define EM_UNICORE 110 -#define EM_EXCESS 111 -#define EM_DXP 112 -#define EM_ALTERA_NIOS2 113 -#define EM_CRX 114 -#define EM_XGATE 115 -#define EM_C166 116 -#define EM_M16C 117 -#define EM_DSPIC30F 118 -#define EM_CE 119 -#define EM_M32C 120 -#define EM_TSK3000 131 -#define EM_RS08 132 -#define EM_SHARC 133 -#define EM_ECOG2 134 -#define EM_SCORE7 135 -#define EM_DSP24 136 -#define EM_VIDEOCORE3 137 -#define EM_LATTICEMICO32 138 -#define EM_SE_C17 139 -#define EM_TI_C6000 140 -#define EM_TI_C2000 141 -#define EM_TI_C5500 142 -#define EM_TI_ARP32 143 -#define EM_TI_PRU 144 -#define EM_MMDSP_PLUS 160 -#define EM_CYPRESS_M8C 161 -#define EM_R32C 162 -#define EM_TRIMEDIA 163 -#define EM_QDSP6 164 -#define EM_8051 165 -#define EM_STXP7X 166 -#define EM_NDS32 167 -#define EM_ECOG1X 168 -#define EM_MAXQ30 169 -#define EM_XIMO16 170 -#define EM_MANIK 171 -#define EM_CRAYNV2 172 -#define EM_RX 173 -#define EM_METAG 174 -#define EM_MCST_ELBRUS 175 -#define EM_ECOG16 176 -#define EM_CR16 177 -#define EM_ETPU 178 -#define EM_SLE9X 179 -#define EM_L10M 180 -#define EM_K10M 181 -#define EM_AARCH64 183 -#define EM_AVR32 185 -#define EM_STM8 186 -#define EM_TILE64 187 -#define EM_TILEPRO 188 -#define EM_MICROBLAZE 189 -#define EM_CUDA 190 -#define EM_TILEGX 191 -#define EM_CLOUDSHIELD 192 -#define EM_COREA_1ST 193 -#define EM_COREA_2ND 194 -#define EM_ARC_COMPACT2 195 -#define EM_OPEN8 196 -#define EM_RL78 197 -#define EM_VIDEOCORE5 198 -#define EM_78KOR 199 -#define EM_56800EX 200 -#define EM_BA1 201 -#define EM_BA2 202 -#define EM_XCORE 203 -#define EM_MCHP_PIC 204 -#define EM_KM32 210 -#define EM_KMX32 211 -#define EM_EMX16 212 -#define EM_EMX8 213 -#define EM_KVARC 214 -#define EM_CDP 215 -#define EM_COGE 216 -#define EM_COOL 217 -#define EM_NORC 218 -#define EM_CSR_KALIMBA 219 -#define EM_Z80 220 -#define EM_VISIUM 221 -#define EM_FT32 222 -#define EM_MOXIE 223 -#define EM_AMDGPU 224 -#define EM_RISCV 243 -#define EM_BPF 247 -#define EM_NUM 248 - -#define EM_ALPHA 0x9026 - -#define EV_NONE 0 -#define EV_CURRENT 1 -#define EV_NUM 2 - -typedef struct { - Elf32_Word sh_name; - Elf32_Word sh_type; - Elf32_Word sh_flags; - Elf32_Addr sh_addr; - Elf32_Off sh_offset; - Elf32_Word sh_size; - Elf32_Word sh_link; - Elf32_Word sh_info; - Elf32_Word sh_addralign; - Elf32_Word sh_entsize; -} Elf32_Shdr; - -typedef struct { - Elf64_Word sh_name; - Elf64_Word sh_type; - Elf64_Xword sh_flags; - Elf64_Addr sh_addr; - Elf64_Off sh_offset; - Elf64_Xword sh_size; - Elf64_Word sh_link; - Elf64_Word sh_info; - Elf64_Xword sh_addralign; - Elf64_Xword sh_entsize; -} Elf64_Shdr; - - - -#define SHN_UNDEF 0 -#define SHN_LORESERVE 0xff00 -#define SHN_LOPROC 0xff00 -#define SHN_BEFORE 0xff00 - -#define SHN_AFTER 0xff01 - -#define SHN_HIPROC 0xff1f -#define SHN_LOOS 0xff20 -#define SHN_HIOS 0xff3f -#define SHN_ABS 0xfff1 -#define SHN_COMMON 0xfff2 -#define SHN_XINDEX 0xffff -#define SHN_HIRESERVE 0xffff - - - -#define SHT_NULL 0 -#define SHT_PROGBITS 1 -#define SHT_SYMTAB 2 -#define SHT_STRTAB 3 -#define SHT_RELA 4 -#define SHT_HASH 5 -#define SHT_DYNAMIC 6 -#define SHT_NOTE 7 -#define SHT_NOBITS 8 -#define SHT_REL 9 -#define SHT_SHLIB 10 -#define SHT_DYNSYM 11 -#define SHT_INIT_ARRAY 14 -#define SHT_FINI_ARRAY 15 -#define SHT_PREINIT_ARRAY 16 -#define SHT_GROUP 17 -#define SHT_SYMTAB_SHNDX 18 -#define SHT_NUM 19 -#define SHT_LOOS 0x60000000 -#define SHT_GNU_ATTRIBUTES 0x6ffffff5 -#define SHT_GNU_HASH 0x6ffffff6 -#define SHT_GNU_LIBLIST 0x6ffffff7 -#define SHT_CHECKSUM 0x6ffffff8 -#define SHT_LOSUNW 0x6ffffffa -#define SHT_SUNW_move 0x6ffffffa -#define SHT_SUNW_COMDAT 0x6ffffffb -#define SHT_SUNW_syminfo 0x6ffffffc -#define SHT_GNU_verdef 0x6ffffffd -#define SHT_GNU_verneed 0x6ffffffe -#define SHT_GNU_versym 0x6fffffff -#define SHT_HISUNW 0x6fffffff -#define SHT_HIOS 0x6fffffff -#define SHT_LOPROC 0x70000000 -#define SHT_HIPROC 0x7fffffff -#define SHT_LOUSER 0x80000000 -#define SHT_HIUSER 0x8fffffff - -#define SHF_WRITE (1 << 0) -#define SHF_ALLOC (1 << 1) -#define SHF_EXECINSTR (1 << 2) -#define SHF_MERGE (1 << 4) -#define SHF_STRINGS (1 << 5) -#define SHF_INFO_LINK (1 << 6) -#define SHF_LINK_ORDER (1 << 7) -#define SHF_OS_NONCONFORMING (1 << 8) - -#define SHF_GROUP (1 << 9) -#define SHF_TLS (1 << 10) -#define SHF_COMPRESSED (1 << 11) -#define SHF_MASKOS 0x0ff00000 -#define SHF_MASKPROC 0xf0000000 -#define SHF_ORDERED (1 << 30) -#define SHF_EXCLUDE (1U << 31) - -typedef struct { - Elf32_Word ch_type; - Elf32_Word ch_size; - Elf32_Word ch_addralign; -} Elf32_Chdr; - -typedef struct { - Elf64_Word ch_type; - Elf64_Word ch_reserved; - Elf64_Xword ch_size; - Elf64_Xword ch_addralign; -} Elf64_Chdr; - -#define ELFCOMPRESS_ZLIB 1 -#define ELFCOMPRESS_LOOS 0x60000000 -#define ELFCOMPRESS_HIOS 0x6fffffff -#define ELFCOMPRESS_LOPROC 0x70000000 -#define ELFCOMPRESS_HIPROC 0x7fffffff - - -#define GRP_COMDAT 0x1 - -typedef struct { - Elf32_Word st_name; - Elf32_Addr st_value; - Elf32_Word st_size; - unsigned char st_info; - unsigned char st_other; - Elf32_Section st_shndx; -} Elf32_Sym; - -typedef struct { - Elf64_Word st_name; - unsigned char st_info; - unsigned char st_other; - Elf64_Section st_shndx; - Elf64_Addr st_value; - Elf64_Xword st_size; -} Elf64_Sym; - -typedef struct { - Elf32_Half si_boundto; - Elf32_Half si_flags; -} Elf32_Syminfo; - -typedef struct { - Elf64_Half si_boundto; - Elf64_Half si_flags; -} Elf64_Syminfo; - -#define SYMINFO_BT_SELF 0xffff -#define SYMINFO_BT_PARENT 0xfffe -#define SYMINFO_BT_LOWRESERVE 0xff00 - -#define SYMINFO_FLG_DIRECT 0x0001 -#define SYMINFO_FLG_PASSTHRU 0x0002 -#define SYMINFO_FLG_COPY 0x0004 -#define SYMINFO_FLG_LAZYLOAD 0x0008 - -#define SYMINFO_NONE 0 -#define SYMINFO_CURRENT 1 -#define SYMINFO_NUM 2 - -#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) -#define ELF32_ST_TYPE(val) ((val) & 0xf) -#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) - -#define ELF64_ST_BIND(val) ELF32_ST_BIND (val) -#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) -#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type)) - -#define STB_LOCAL 0 -#define STB_GLOBAL 1 -#define STB_WEAK 2 -#define STB_NUM 3 -#define STB_LOOS 10 -#define STB_GNU_UNIQUE 10 -#define STB_HIOS 12 -#define STB_LOPROC 13 -#define STB_HIPROC 15 - -#define STT_NOTYPE 0 -#define STT_OBJECT 1 -#define STT_FUNC 2 -#define STT_SECTION 3 -#define STT_FILE 4 -#define STT_COMMON 5 -#define STT_TLS 6 -#define STT_NUM 7 -#define STT_LOOS 10 -#define STT_GNU_IFUNC 10 -#define STT_HIOS 12 -#define STT_LOPROC 13 -#define STT_HIPROC 15 - -#define STN_UNDEF 0 - -#define ELF32_ST_VISIBILITY(o) ((o) & 0x03) -#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o) - -#define STV_DEFAULT 0 -#define STV_INTERNAL 1 -#define STV_HIDDEN 2 -#define STV_PROTECTED 3 - - - - -typedef struct { - Elf32_Addr r_offset; - Elf32_Word r_info; -} Elf32_Rel; - -typedef struct { - Elf64_Addr r_offset; - Elf64_Xword r_info; -} Elf64_Rel; - - - -typedef struct { - Elf32_Addr r_offset; - Elf32_Word r_info; - Elf32_Sword r_addend; -} Elf32_Rela; - -typedef struct { - Elf64_Addr r_offset; - Elf64_Xword r_info; - Elf64_Sxword r_addend; -} Elf64_Rela; - - - -#define ELF32_R_SYM(val) ((val) >> 8) -#define ELF32_R_TYPE(val) ((val) & 0xff) -#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) - -#define ELF64_R_SYM(i) ((i) >> 32) -#define ELF64_R_TYPE(i) ((i) & 0xffffffff) -#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type)) - - - -typedef struct { - Elf32_Word p_type; - Elf32_Off p_offset; - Elf32_Addr p_vaddr; - Elf32_Addr p_paddr; - Elf32_Word p_filesz; - Elf32_Word p_memsz; - Elf32_Word p_flags; - Elf32_Word p_align; -} Elf32_Phdr; - -typedef struct { - Elf64_Word p_type; - Elf64_Word p_flags; - Elf64_Off p_offset; - Elf64_Addr p_vaddr; - Elf64_Addr p_paddr; - Elf64_Xword p_filesz; - Elf64_Xword p_memsz; - Elf64_Xword p_align; -} Elf64_Phdr; - - - -#define PT_NULL 0 -#define PT_LOAD 1 -#define PT_DYNAMIC 2 -#define PT_INTERP 3 -#define PT_NOTE 4 -#define PT_SHLIB 5 -#define PT_PHDR 6 -#define PT_TLS 7 -#define PT_NUM 8 -#define PT_LOOS 0x60000000 -#define PT_GNU_EH_FRAME 0x6474e550 -#define PT_GNU_STACK 0x6474e551 -#define PT_GNU_RELRO 0x6474e552 -#define PT_LOSUNW 0x6ffffffa -#define PT_SUNWBSS 0x6ffffffa -#define PT_SUNWSTACK 0x6ffffffb -#define PT_HISUNW 0x6fffffff -#define PT_HIOS 0x6fffffff -#define PT_LOPROC 0x70000000 -#define PT_HIPROC 0x7fffffff - - -#define PN_XNUM 0xffff - - -#define PF_X (1 << 0) -#define PF_W (1 << 1) -#define PF_R (1 << 2) -#define PF_MASKOS 0x0ff00000 -#define PF_MASKPROC 0xf0000000 - - - -#define NT_PRSTATUS 1 -#define NT_FPREGSET 2 -#define NT_PRPSINFO 3 -#define NT_PRXREG 4 -#define NT_TASKSTRUCT 4 -#define NT_PLATFORM 5 -#define NT_AUXV 6 -#define NT_GWINDOWS 7 -#define NT_ASRS 8 -#define NT_PSTATUS 10 -#define NT_PSINFO 13 -#define NT_PRCRED 14 -#define NT_UTSNAME 15 -#define NT_LWPSTATUS 16 -#define NT_LWPSINFO 17 -#define NT_PRFPXREG 20 -#define NT_SIGINFO 0x53494749 -#define NT_FILE 0x46494c45 -#define NT_PRXFPREG 0x46e62b7f -#define NT_PPC_VMX 0x100 -#define NT_PPC_SPE 0x101 -#define NT_PPC_VSX 0x102 -#define NT_386_TLS 0x200 -#define NT_386_IOPERM 0x201 -#define NT_X86_XSTATE 0x202 -#define NT_S390_HIGH_GPRS 0x300 -#define NT_S390_TIMER 0x301 -#define NT_S390_TODCMP 0x302 -#define NT_S390_TODPREG 0x303 -#define NT_S390_CTRS 0x304 -#define NT_S390_PREFIX 0x305 -#define NT_S390_LAST_BREAK 0x306 -#define NT_S390_SYSTEM_CALL 0x307 -#define NT_S390_TDB 0x308 -#define NT_ARM_VFP 0x400 -#define NT_ARM_TLS 0x401 -#define NT_ARM_HW_BREAK 0x402 -#define NT_ARM_HW_WATCH 0x403 -#define NT_ARM_SYSTEM_CALL 0x404 -#define NT_ARM_SVE 0x405 -#define NT_METAG_CBUF 0x500 -#define NT_METAG_RPIPE 0x501 -#define NT_METAG_TLS 0x502 -#define NT_VERSION 1 - - - - -typedef struct { - Elf32_Sword d_tag; - union { - Elf32_Word d_val; - Elf32_Addr d_ptr; - } d_un; -} Elf32_Dyn; - -typedef struct { - Elf64_Sxword d_tag; - union { - Elf64_Xword d_val; - Elf64_Addr d_ptr; - } d_un; -} Elf64_Dyn; - - - -#define DT_NULL 0 -#define DT_NEEDED 1 -#define DT_PLTRELSZ 2 -#define DT_PLTGOT 3 -#define DT_HASH 4 -#define DT_STRTAB 5 -#define DT_SYMTAB 6 -#define DT_RELA 7 -#define DT_RELASZ 8 -#define DT_RELAENT 9 -#define DT_STRSZ 10 -#define DT_SYMENT 11 -#define DT_INIT 12 -#define DT_FINI 13 -#define DT_SONAME 14 -#define DT_RPATH 15 -#define DT_SYMBOLIC 16 -#define DT_REL 17 -#define DT_RELSZ 18 -#define DT_RELENT 19 -#define DT_PLTREL 20 -#define DT_DEBUG 21 -#define DT_TEXTREL 22 -#define DT_JMPREL 23 -#define DT_BIND_NOW 24 -#define DT_INIT_ARRAY 25 -#define DT_FINI_ARRAY 26 -#define DT_INIT_ARRAYSZ 27 -#define DT_FINI_ARRAYSZ 28 -#define DT_RUNPATH 29 -#define DT_FLAGS 30 -#define DT_ENCODING 32 -#define DT_PREINIT_ARRAY 32 -#define DT_PREINIT_ARRAYSZ 33 -#define DT_NUM 34 -#define DT_LOOS 0x6000000d -#define DT_HIOS 0x6ffff000 -#define DT_LOPROC 0x70000000 -#define DT_HIPROC 0x7fffffff -#define DT_PROCNUM DT_MIPS_NUM - -#define DT_VALRNGLO 0x6ffffd00 -#define DT_GNU_PRELINKED 0x6ffffdf5 -#define DT_GNU_CONFLICTSZ 0x6ffffdf6 -#define DT_GNU_LIBLISTSZ 0x6ffffdf7 -#define DT_CHECKSUM 0x6ffffdf8 -#define DT_PLTPADSZ 0x6ffffdf9 -#define DT_MOVEENT 0x6ffffdfa -#define DT_MOVESZ 0x6ffffdfb -#define DT_FEATURE_1 0x6ffffdfc -#define DT_POSFLAG_1 0x6ffffdfd - -#define DT_SYMINSZ 0x6ffffdfe -#define DT_SYMINENT 0x6ffffdff -#define DT_VALRNGHI 0x6ffffdff -#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) -#define DT_VALNUM 12 - -#define DT_ADDRRNGLO 0x6ffffe00 -#define DT_GNU_HASH 0x6ffffef5 -#define DT_TLSDESC_PLT 0x6ffffef6 -#define DT_TLSDESC_GOT 0x6ffffef7 -#define DT_GNU_CONFLICT 0x6ffffef8 -#define DT_GNU_LIBLIST 0x6ffffef9 -#define DT_CONFIG 0x6ffffefa -#define DT_DEPAUDIT 0x6ffffefb -#define DT_AUDIT 0x6ffffefc -#define DT_PLTPAD 0x6ffffefd -#define DT_MOVETAB 0x6ffffefe -#define DT_SYMINFO 0x6ffffeff -#define DT_ADDRRNGHI 0x6ffffeff -#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) -#define DT_ADDRNUM 11 - - - -#define DT_VERSYM 0x6ffffff0 - -#define DT_RELACOUNT 0x6ffffff9 -#define DT_RELCOUNT 0x6ffffffa - - -#define DT_FLAGS_1 0x6ffffffb -#define DT_VERDEF 0x6ffffffc - -#define DT_VERDEFNUM 0x6ffffffd -#define DT_VERNEED 0x6ffffffe - -#define DT_VERNEEDNUM 0x6fffffff -#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) -#define DT_VERSIONTAGNUM 16 - - - -#define DT_AUXILIARY 0x7ffffffd -#define DT_FILTER 0x7fffffff -#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1) -#define DT_EXTRANUM 3 - - -#define DF_ORIGIN 0x00000001 -#define DF_SYMBOLIC 0x00000002 -#define DF_TEXTREL 0x00000004 -#define DF_BIND_NOW 0x00000008 -#define DF_STATIC_TLS 0x00000010 - - - -#define DF_1_NOW 0x00000001 -#define DF_1_GLOBAL 0x00000002 -#define DF_1_GROUP 0x00000004 -#define DF_1_NODELETE 0x00000008 -#define DF_1_LOADFLTR 0x00000010 -#define DF_1_INITFIRST 0x00000020 -#define DF_1_NOOPEN 0x00000040 -#define DF_1_ORIGIN 0x00000080 -#define DF_1_DIRECT 0x00000100 -#define DF_1_TRANS 0x00000200 -#define DF_1_INTERPOSE 0x00000400 -#define DF_1_NODEFLIB 0x00000800 -#define DF_1_NODUMP 0x00001000 -#define DF_1_CONFALT 0x00002000 -#define DF_1_ENDFILTEE 0x00004000 -#define DF_1_DISPRELDNE 0x00008000 -#define DF_1_DISPRELPND 0x00010000 -#define DF_1_NODIRECT 0x00020000 -#define DF_1_IGNMULDEF 0x00040000 -#define DF_1_NOKSYMS 0x00080000 -#define DF_1_NOHDR 0x00100000 -#define DF_1_EDITED 0x00200000 -#define DF_1_NORELOC 0x00400000 -#define DF_1_SYMINTPOSE 0x00800000 -#define DF_1_GLOBAUDIT 0x01000000 -#define DF_1_SINGLETON 0x02000000 - -#define DTF_1_PARINIT 0x00000001 -#define DTF_1_CONFEXP 0x00000002 - - -#define DF_P1_LAZYLOAD 0x00000001 -#define DF_P1_GROUPPERM 0x00000002 - - - - -typedef struct { - Elf32_Half vd_version; - Elf32_Half vd_flags; - Elf32_Half vd_ndx; - Elf32_Half vd_cnt; - Elf32_Word vd_hash; - Elf32_Word vd_aux; - Elf32_Word vd_next; -} Elf32_Verdef; - -typedef struct { - Elf64_Half vd_version; - Elf64_Half vd_flags; - Elf64_Half vd_ndx; - Elf64_Half vd_cnt; - Elf64_Word vd_hash; - Elf64_Word vd_aux; - Elf64_Word vd_next; -} Elf64_Verdef; - - - -#define VER_DEF_NONE 0 -#define VER_DEF_CURRENT 1 -#define VER_DEF_NUM 2 - - -#define VER_FLG_BASE 0x1 -#define VER_FLG_WEAK 0x2 - - -#define VER_NDX_LOCAL 0 -#define VER_NDX_GLOBAL 1 -#define VER_NDX_LORESERVE 0xff00 -#define VER_NDX_ELIMINATE 0xff01 - - - -typedef struct { - Elf32_Word vda_name; - Elf32_Word vda_next; -} Elf32_Verdaux; - -typedef struct { - Elf64_Word vda_name; - Elf64_Word vda_next; -} Elf64_Verdaux; - - - - -typedef struct { - Elf32_Half vn_version; - Elf32_Half vn_cnt; - Elf32_Word vn_file; - Elf32_Word vn_aux; - Elf32_Word vn_next; -} Elf32_Verneed; - -typedef struct { - Elf64_Half vn_version; - Elf64_Half vn_cnt; - Elf64_Word vn_file; - Elf64_Word vn_aux; - Elf64_Word vn_next; -} Elf64_Verneed; - - - -#define VER_NEED_NONE 0 -#define VER_NEED_CURRENT 1 -#define VER_NEED_NUM 2 - - - -typedef struct { - Elf32_Word vna_hash; - Elf32_Half vna_flags; - Elf32_Half vna_other; - Elf32_Word vna_name; - Elf32_Word vna_next; -} Elf32_Vernaux; - -typedef struct { - Elf64_Word vna_hash; - Elf64_Half vna_flags; - Elf64_Half vna_other; - Elf64_Word vna_name; - Elf64_Word vna_next; -} Elf64_Vernaux; - - - -#define VER_FLG_WEAK 0x2 - - - -typedef struct { - uint32_t a_type; - union { - uint32_t a_val; - } a_un; -} Elf32_auxv_t; - -typedef struct { - uint64_t a_type; - union { - uint64_t a_val; - } a_un; -} Elf64_auxv_t; - - - -#define AT_NULL 0 -#define AT_IGNORE 1 -#define AT_EXECFD 2 -#define AT_PHDR 3 -#define AT_PHENT 4 -#define AT_PHNUM 5 -#define AT_PAGESZ 6 -#define AT_BASE 7 -#define AT_FLAGS 8 -#define AT_ENTRY 9 -#define AT_NOTELF 10 -#define AT_UID 11 -#define AT_EUID 12 -#define AT_GID 13 -#define AT_EGID 14 -#define AT_CLKTCK 17 - - -#define AT_PLATFORM 15 -#define AT_HWCAP 16 - - - - -#define AT_FPUCW 18 - - -#define AT_DCACHEBSIZE 19 -#define AT_ICACHEBSIZE 20 -#define AT_UCACHEBSIZE 21 - - - -#define AT_IGNOREPPC 22 - -#define AT_SECURE 23 - -#define AT_BASE_PLATFORM 24 - -#define AT_RANDOM 25 - -#define AT_HWCAP2 26 - -#define AT_EXECFN 31 - - - -#define AT_SYSINFO 32 -#define AT_SYSINFO_EHDR 33 - - - -#define AT_L1I_CACHESHAPE 34 -#define AT_L1D_CACHESHAPE 35 -#define AT_L2_CACHESHAPE 36 -#define AT_L3_CACHESHAPE 37 - - - - -typedef struct { - Elf32_Word n_namesz; - Elf32_Word n_descsz; - Elf32_Word n_type; -} Elf32_Nhdr; - -typedef struct { - Elf64_Word n_namesz; - Elf64_Word n_descsz; - Elf64_Word n_type; -} Elf64_Nhdr; - - - - -#define ELF_NOTE_SOLARIS "SUNW Solaris" - - -#define ELF_NOTE_GNU "GNU" - - - - - -#define ELF_NOTE_PAGESIZE_HINT 1 - - -#define NT_GNU_ABI_TAG 1 -#define ELF_NOTE_ABI NT_GNU_ABI_TAG - - - -#define ELF_NOTE_OS_LINUX 0 -#define ELF_NOTE_OS_GNU 1 -#define ELF_NOTE_OS_SOLARIS2 2 -#define ELF_NOTE_OS_FREEBSD 3 - -#define NT_GNU_BUILD_ID 3 -#define NT_GNU_GOLD_VERSION 4 - - - -typedef struct { - Elf32_Xword m_value; - Elf32_Word m_info; - Elf32_Word m_poffset; - Elf32_Half m_repeat; - Elf32_Half m_stride; -} Elf32_Move; - -typedef struct { - Elf64_Xword m_value; - Elf64_Xword m_info; - Elf64_Xword m_poffset; - Elf64_Half m_repeat; - Elf64_Half m_stride; -} Elf64_Move; - - -#define ELF32_M_SYM(info) ((info) >> 8) -#define ELF32_M_SIZE(info) ((unsigned char) (info)) -#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size)) - -#define ELF64_M_SYM(info) ELF32_M_SYM (info) -#define ELF64_M_SIZE(info) ELF32_M_SIZE (info) -#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size) - -#define EF_CPU32 0x00810000 - -#define R_68K_NONE 0 -#define R_68K_32 1 -#define R_68K_16 2 -#define R_68K_8 3 -#define R_68K_PC32 4 -#define R_68K_PC16 5 -#define R_68K_PC8 6 -#define R_68K_GOT32 7 -#define R_68K_GOT16 8 -#define R_68K_GOT8 9 -#define R_68K_GOT32O 10 -#define R_68K_GOT16O 11 -#define R_68K_GOT8O 12 -#define R_68K_PLT32 13 -#define R_68K_PLT16 14 -#define R_68K_PLT8 15 -#define R_68K_PLT32O 16 -#define R_68K_PLT16O 17 -#define R_68K_PLT8O 18 -#define R_68K_COPY 19 -#define R_68K_GLOB_DAT 20 -#define R_68K_JMP_SLOT 21 -#define R_68K_RELATIVE 22 -#define R_68K_NUM 23 - -#define R_386_NONE 0 -#define R_386_32 1 -#define R_386_PC32 2 -#define R_386_GOT32 3 -#define R_386_PLT32 4 -#define R_386_COPY 5 -#define R_386_GLOB_DAT 6 -#define R_386_JMP_SLOT 7 -#define R_386_RELATIVE 8 -#define R_386_GOTOFF 9 -#define R_386_GOTPC 10 -#define R_386_32PLT 11 -#define R_386_TLS_TPOFF 14 -#define R_386_TLS_IE 15 -#define R_386_TLS_GOTIE 16 -#define R_386_TLS_LE 17 -#define R_386_TLS_GD 18 -#define R_386_TLS_LDM 19 -#define R_386_16 20 -#define R_386_PC16 21 -#define R_386_8 22 -#define R_386_PC8 23 -#define R_386_TLS_GD_32 24 -#define R_386_TLS_GD_PUSH 25 -#define R_386_TLS_GD_CALL 26 -#define R_386_TLS_GD_POP 27 -#define R_386_TLS_LDM_32 28 -#define R_386_TLS_LDM_PUSH 29 -#define R_386_TLS_LDM_CALL 30 -#define R_386_TLS_LDM_POP 31 -#define R_386_TLS_LDO_32 32 -#define R_386_TLS_IE_32 33 -#define R_386_TLS_LE_32 34 -#define R_386_TLS_DTPMOD32 35 -#define R_386_TLS_DTPOFF32 36 -#define R_386_TLS_TPOFF32 37 -#define R_386_SIZE32 38 -#define R_386_TLS_GOTDESC 39 -#define R_386_TLS_DESC_CALL 40 -#define R_386_TLS_DESC 41 -#define R_386_IRELATIVE 42 -#define R_386_GOT32X 43 -#define R_386_NUM 44 - - - - - -#define STT_SPARC_REGISTER 13 - - - -#define EF_SPARCV9_MM 3 -#define EF_SPARCV9_TSO 0 -#define EF_SPARCV9_PSO 1 -#define EF_SPARCV9_RMO 2 -#define EF_SPARC_LEDATA 0x800000 -#define EF_SPARC_EXT_MASK 0xFFFF00 -#define EF_SPARC_32PLUS 0x000100 -#define EF_SPARC_SUN_US1 0x000200 -#define EF_SPARC_HAL_R1 0x000400 -#define EF_SPARC_SUN_US3 0x000800 - - - -#define R_SPARC_NONE 0 -#define R_SPARC_8 1 -#define R_SPARC_16 2 -#define R_SPARC_32 3 -#define R_SPARC_DISP8 4 -#define R_SPARC_DISP16 5 -#define R_SPARC_DISP32 6 -#define R_SPARC_WDISP30 7 -#define R_SPARC_WDISP22 8 -#define R_SPARC_HI22 9 -#define R_SPARC_22 10 -#define R_SPARC_13 11 -#define R_SPARC_LO10 12 -#define R_SPARC_GOT10 13 -#define R_SPARC_GOT13 14 -#define R_SPARC_GOT22 15 -#define R_SPARC_PC10 16 -#define R_SPARC_PC22 17 -#define R_SPARC_WPLT30 18 -#define R_SPARC_COPY 19 -#define R_SPARC_GLOB_DAT 20 -#define R_SPARC_JMP_SLOT 21 -#define R_SPARC_RELATIVE 22 -#define R_SPARC_UA32 23 - - - -#define R_SPARC_PLT32 24 -#define R_SPARC_HIPLT22 25 -#define R_SPARC_LOPLT10 26 -#define R_SPARC_PCPLT32 27 -#define R_SPARC_PCPLT22 28 -#define R_SPARC_PCPLT10 29 -#define R_SPARC_10 30 -#define R_SPARC_11 31 -#define R_SPARC_64 32 -#define R_SPARC_OLO10 33 -#define R_SPARC_HH22 34 -#define R_SPARC_HM10 35 -#define R_SPARC_LM22 36 -#define R_SPARC_PC_HH22 37 -#define R_SPARC_PC_HM10 38 -#define R_SPARC_PC_LM22 39 -#define R_SPARC_WDISP16 40 -#define R_SPARC_WDISP19 41 -#define R_SPARC_GLOB_JMP 42 -#define R_SPARC_7 43 -#define R_SPARC_5 44 -#define R_SPARC_6 45 -#define R_SPARC_DISP64 46 -#define R_SPARC_PLT64 47 -#define R_SPARC_HIX22 48 -#define R_SPARC_LOX10 49 -#define R_SPARC_H44 50 -#define R_SPARC_M44 51 -#define R_SPARC_L44 52 -#define R_SPARC_REGISTER 53 -#define R_SPARC_UA64 54 -#define R_SPARC_UA16 55 -#define R_SPARC_TLS_GD_HI22 56 -#define R_SPARC_TLS_GD_LO10 57 -#define R_SPARC_TLS_GD_ADD 58 -#define R_SPARC_TLS_GD_CALL 59 -#define R_SPARC_TLS_LDM_HI22 60 -#define R_SPARC_TLS_LDM_LO10 61 -#define R_SPARC_TLS_LDM_ADD 62 -#define R_SPARC_TLS_LDM_CALL 63 -#define R_SPARC_TLS_LDO_HIX22 64 -#define R_SPARC_TLS_LDO_LOX10 65 -#define R_SPARC_TLS_LDO_ADD 66 -#define R_SPARC_TLS_IE_HI22 67 -#define R_SPARC_TLS_IE_LO10 68 -#define R_SPARC_TLS_IE_LD 69 -#define R_SPARC_TLS_IE_LDX 70 -#define R_SPARC_TLS_IE_ADD 71 -#define R_SPARC_TLS_LE_HIX22 72 -#define R_SPARC_TLS_LE_LOX10 73 -#define R_SPARC_TLS_DTPMOD32 74 -#define R_SPARC_TLS_DTPMOD64 75 -#define R_SPARC_TLS_DTPOFF32 76 -#define R_SPARC_TLS_DTPOFF64 77 -#define R_SPARC_TLS_TPOFF32 78 -#define R_SPARC_TLS_TPOFF64 79 -#define R_SPARC_GOTDATA_HIX22 80 -#define R_SPARC_GOTDATA_LOX10 81 -#define R_SPARC_GOTDATA_OP_HIX22 82 -#define R_SPARC_GOTDATA_OP_LOX10 83 -#define R_SPARC_GOTDATA_OP 84 -#define R_SPARC_H34 85 -#define R_SPARC_SIZE32 86 -#define R_SPARC_SIZE64 87 -#define R_SPARC_GNU_VTINHERIT 250 -#define R_SPARC_GNU_VTENTRY 251 -#define R_SPARC_REV32 252 - -#define R_SPARC_NUM 253 - - - -#define DT_SPARC_REGISTER 0x70000001 -#define DT_SPARC_NUM 2 - - -#define EF_MIPS_NOREORDER 1 -#define EF_MIPS_PIC 2 -#define EF_MIPS_CPIC 4 -#define EF_MIPS_XGOT 8 -#define EF_MIPS_64BIT_WHIRL 16 -#define EF_MIPS_ABI2 32 -#define EF_MIPS_ABI_ON32 64 -#define EF_MIPS_FP64 512 -#define EF_MIPS_NAN2008 1024 -#define EF_MIPS_ARCH 0xf0000000 - - - -#define EF_MIPS_ARCH_1 0x00000000 -#define EF_MIPS_ARCH_2 0x10000000 -#define EF_MIPS_ARCH_3 0x20000000 -#define EF_MIPS_ARCH_4 0x30000000 -#define EF_MIPS_ARCH_5 0x40000000 -#define EF_MIPS_ARCH_32 0x50000000 -#define EF_MIPS_ARCH_64 0x60000000 -#define EF_MIPS_ARCH_32R2 0x70000000 -#define EF_MIPS_ARCH_64R2 0x80000000 - - -#define E_MIPS_ARCH_1 0x00000000 -#define E_MIPS_ARCH_2 0x10000000 -#define E_MIPS_ARCH_3 0x20000000 -#define E_MIPS_ARCH_4 0x30000000 -#define E_MIPS_ARCH_5 0x40000000 -#define E_MIPS_ARCH_32 0x50000000 -#define E_MIPS_ARCH_64 0x60000000 - - - -#define SHN_MIPS_ACOMMON 0xff00 -#define SHN_MIPS_TEXT 0xff01 -#define SHN_MIPS_DATA 0xff02 -#define SHN_MIPS_SCOMMON 0xff03 -#define SHN_MIPS_SUNDEFINED 0xff04 - - - -#define SHT_MIPS_LIBLIST 0x70000000 -#define SHT_MIPS_MSYM 0x70000001 -#define SHT_MIPS_CONFLICT 0x70000002 -#define SHT_MIPS_GPTAB 0x70000003 -#define SHT_MIPS_UCODE 0x70000004 -#define SHT_MIPS_DEBUG 0x70000005 -#define SHT_MIPS_REGINFO 0x70000006 -#define SHT_MIPS_PACKAGE 0x70000007 -#define SHT_MIPS_PACKSYM 0x70000008 -#define SHT_MIPS_RELD 0x70000009 -#define SHT_MIPS_IFACE 0x7000000b -#define SHT_MIPS_CONTENT 0x7000000c -#define SHT_MIPS_OPTIONS 0x7000000d -#define SHT_MIPS_SHDR 0x70000010 -#define SHT_MIPS_FDESC 0x70000011 -#define SHT_MIPS_EXTSYM 0x70000012 -#define SHT_MIPS_DENSE 0x70000013 -#define SHT_MIPS_PDESC 0x70000014 -#define SHT_MIPS_LOCSYM 0x70000015 -#define SHT_MIPS_AUXSYM 0x70000016 -#define SHT_MIPS_OPTSYM 0x70000017 -#define SHT_MIPS_LOCSTR 0x70000018 -#define SHT_MIPS_LINE 0x70000019 -#define SHT_MIPS_RFDESC 0x7000001a -#define SHT_MIPS_DELTASYM 0x7000001b -#define SHT_MIPS_DELTAINST 0x7000001c -#define SHT_MIPS_DELTACLASS 0x7000001d -#define SHT_MIPS_DWARF 0x7000001e -#define SHT_MIPS_DELTADECL 0x7000001f -#define SHT_MIPS_SYMBOL_LIB 0x70000020 -#define SHT_MIPS_EVENTS 0x70000021 -#define SHT_MIPS_TRANSLATE 0x70000022 -#define SHT_MIPS_PIXIE 0x70000023 -#define SHT_MIPS_XLATE 0x70000024 -#define SHT_MIPS_XLATE_DEBUG 0x70000025 -#define SHT_MIPS_WHIRL 0x70000026 -#define SHT_MIPS_EH_REGION 0x70000027 -#define SHT_MIPS_XLATE_OLD 0x70000028 -#define SHT_MIPS_PDR_EXCEPTION 0x70000029 - - - -#define SHF_MIPS_GPREL 0x10000000 -#define SHF_MIPS_MERGE 0x20000000 -#define SHF_MIPS_ADDR 0x40000000 -#define SHF_MIPS_STRINGS 0x80000000 -#define SHF_MIPS_NOSTRIP 0x08000000 -#define SHF_MIPS_LOCAL 0x04000000 -#define SHF_MIPS_NAMES 0x02000000 -#define SHF_MIPS_NODUPE 0x01000000 - - - - - -#define STO_MIPS_DEFAULT 0x0 -#define STO_MIPS_INTERNAL 0x1 -#define STO_MIPS_HIDDEN 0x2 -#define STO_MIPS_PROTECTED 0x3 -#define STO_MIPS_PLT 0x8 -#define STO_MIPS_SC_ALIGN_UNUSED 0xff - - -#define STB_MIPS_SPLIT_COMMON 13 - - - -typedef union { - struct { - Elf32_Word gt_current_g_value; - Elf32_Word gt_unused; - } gt_header; - struct { - Elf32_Word gt_g_value; - Elf32_Word gt_bytes; - } gt_entry; -} Elf32_gptab; - - - -typedef struct { - Elf32_Word ri_gprmask; - Elf32_Word ri_cprmask[4]; - Elf32_Sword ri_gp_value; -} Elf32_RegInfo; - - - -typedef struct { - unsigned char kind; - - unsigned char size; - Elf32_Section section; - - Elf32_Word info; -} Elf_Options; - - - -#define ODK_NULL 0 -#define ODK_REGINFO 1 -#define ODK_EXCEPTIONS 2 -#define ODK_PAD 3 -#define ODK_HWPATCH 4 -#define ODK_FILL 5 -#define ODK_TAGS 6 -#define ODK_HWAND 7 -#define ODK_HWOR 8 - - - -#define OEX_FPU_MIN 0x1f -#define OEX_FPU_MAX 0x1f00 -#define OEX_PAGE0 0x10000 -#define OEX_SMM 0x20000 -#define OEX_FPDBUG 0x40000 -#define OEX_PRECISEFP OEX_FPDBUG -#define OEX_DISMISS 0x80000 - -#define OEX_FPU_INVAL 0x10 -#define OEX_FPU_DIV0 0x08 -#define OEX_FPU_OFLO 0x04 -#define OEX_FPU_UFLO 0x02 -#define OEX_FPU_INEX 0x01 - - - -#define OHW_R4KEOP 0x1 -#define OHW_R8KPFETCH 0x2 -#define OHW_R5KEOP 0x4 -#define OHW_R5KCVTL 0x8 - -#define OPAD_PREFIX 0x1 -#define OPAD_POSTFIX 0x2 -#define OPAD_SYMBOL 0x4 - - - -typedef struct { - Elf32_Word hwp_flags1; - Elf32_Word hwp_flags2; -} Elf_Options_Hw; - - - -#define OHWA0_R4KEOP_CHECKED 0x00000001 -#define OHWA1_R4KEOP_CLEAN 0x00000002 - - - -#define R_MIPS_NONE 0 -#define R_MIPS_16 1 -#define R_MIPS_32 2 -#define R_MIPS_REL32 3 -#define R_MIPS_26 4 -#define R_MIPS_HI16 5 -#define R_MIPS_LO16 6 -#define R_MIPS_GPREL16 7 -#define R_MIPS_LITERAL 8 -#define R_MIPS_GOT16 9 -#define R_MIPS_PC16 10 -#define R_MIPS_CALL16 11 -#define R_MIPS_GPREL32 12 - -#define R_MIPS_SHIFT5 16 -#define R_MIPS_SHIFT6 17 -#define R_MIPS_64 18 -#define R_MIPS_GOT_DISP 19 -#define R_MIPS_GOT_PAGE 20 -#define R_MIPS_GOT_OFST 21 -#define R_MIPS_GOT_HI16 22 -#define R_MIPS_GOT_LO16 23 -#define R_MIPS_SUB 24 -#define R_MIPS_INSERT_A 25 -#define R_MIPS_INSERT_B 26 -#define R_MIPS_DELETE 27 -#define R_MIPS_HIGHER 28 -#define R_MIPS_HIGHEST 29 -#define R_MIPS_CALL_HI16 30 -#define R_MIPS_CALL_LO16 31 -#define R_MIPS_SCN_DISP 32 -#define R_MIPS_REL16 33 -#define R_MIPS_ADD_IMMEDIATE 34 -#define R_MIPS_PJUMP 35 -#define R_MIPS_RELGOT 36 -#define R_MIPS_JALR 37 -#define R_MIPS_TLS_DTPMOD32 38 -#define R_MIPS_TLS_DTPREL32 39 -#define R_MIPS_TLS_DTPMOD64 40 -#define R_MIPS_TLS_DTPREL64 41 -#define R_MIPS_TLS_GD 42 -#define R_MIPS_TLS_LDM 43 -#define R_MIPS_TLS_DTPREL_HI16 44 -#define R_MIPS_TLS_DTPREL_LO16 45 -#define R_MIPS_TLS_GOTTPREL 46 -#define R_MIPS_TLS_TPREL32 47 -#define R_MIPS_TLS_TPREL64 48 -#define R_MIPS_TLS_TPREL_HI16 49 -#define R_MIPS_TLS_TPREL_LO16 50 -#define R_MIPS_GLOB_DAT 51 -#define R_MIPS_COPY 126 -#define R_MIPS_JUMP_SLOT 127 - -#define R_MIPS_NUM 128 - - - -#define PT_MIPS_REGINFO 0x70000000 -#define PT_MIPS_RTPROC 0x70000001 -#define PT_MIPS_OPTIONS 0x70000002 -#define PT_MIPS_ABIFLAGS 0x70000003 - - - -#define PF_MIPS_LOCAL 0x10000000 - - - -#define DT_MIPS_RLD_VERSION 0x70000001 -#define DT_MIPS_TIME_STAMP 0x70000002 -#define DT_MIPS_ICHECKSUM 0x70000003 -#define DT_MIPS_IVERSION 0x70000004 -#define DT_MIPS_FLAGS 0x70000005 -#define DT_MIPS_BASE_ADDRESS 0x70000006 -#define DT_MIPS_MSYM 0x70000007 -#define DT_MIPS_CONFLICT 0x70000008 -#define DT_MIPS_LIBLIST 0x70000009 -#define DT_MIPS_LOCAL_GOTNO 0x7000000a -#define DT_MIPS_CONFLICTNO 0x7000000b -#define DT_MIPS_LIBLISTNO 0x70000010 -#define DT_MIPS_SYMTABNO 0x70000011 -#define DT_MIPS_UNREFEXTNO 0x70000012 -#define DT_MIPS_GOTSYM 0x70000013 -#define DT_MIPS_HIPAGENO 0x70000014 -#define DT_MIPS_RLD_MAP 0x70000016 -#define DT_MIPS_DELTA_CLASS 0x70000017 -#define DT_MIPS_DELTA_CLASS_NO 0x70000018 - -#define DT_MIPS_DELTA_INSTANCE 0x70000019 -#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a - -#define DT_MIPS_DELTA_RELOC 0x7000001b -#define DT_MIPS_DELTA_RELOC_NO 0x7000001c - -#define DT_MIPS_DELTA_SYM 0x7000001d - -#define DT_MIPS_DELTA_SYM_NO 0x7000001e - -#define DT_MIPS_DELTA_CLASSSYM 0x70000020 - -#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 - -#define DT_MIPS_CXX_FLAGS 0x70000022 -#define DT_MIPS_PIXIE_INIT 0x70000023 -#define DT_MIPS_SYMBOL_LIB 0x70000024 -#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 -#define DT_MIPS_LOCAL_GOTIDX 0x70000026 -#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 -#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 -#define DT_MIPS_OPTIONS 0x70000029 -#define DT_MIPS_INTERFACE 0x7000002a -#define DT_MIPS_DYNSTR_ALIGN 0x7000002b -#define DT_MIPS_INTERFACE_SIZE 0x7000002c -#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d - -#define DT_MIPS_PERF_SUFFIX 0x7000002e - -#define DT_MIPS_COMPACT_SIZE 0x7000002f -#define DT_MIPS_GP_VALUE 0x70000030 -#define DT_MIPS_AUX_DYNAMIC 0x70000031 - -#define DT_MIPS_PLTGOT 0x70000032 - -#define DT_MIPS_RWPLT 0x70000034 -#define DT_MIPS_RLD_MAP_REL 0x70000035 -#define DT_MIPS_NUM 0x36 - - - -#define RHF_NONE 0 -#define RHF_QUICKSTART (1 << 0) -#define RHF_NOTPOT (1 << 1) -#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) -#define RHF_NO_MOVE (1 << 3) -#define RHF_SGI_ONLY (1 << 4) -#define RHF_GUARANTEE_INIT (1 << 5) -#define RHF_DELTA_C_PLUS_PLUS (1 << 6) -#define RHF_GUARANTEE_START_INIT (1 << 7) -#define RHF_PIXIE (1 << 8) -#define RHF_DEFAULT_DELAY_LOAD (1 << 9) -#define RHF_REQUICKSTART (1 << 10) -#define RHF_REQUICKSTARTED (1 << 11) -#define RHF_CORD (1 << 12) -#define RHF_NO_UNRES_UNDEF (1 << 13) -#define RHF_RLD_ORDER_SAFE (1 << 14) - - - -typedef struct { - Elf32_Word l_name; - Elf32_Word l_time_stamp; - Elf32_Word l_checksum; - Elf32_Word l_version; - Elf32_Word l_flags; -} Elf32_Lib; - -typedef struct { - Elf64_Word l_name; - Elf64_Word l_time_stamp; - Elf64_Word l_checksum; - Elf64_Word l_version; - Elf64_Word l_flags; -} Elf64_Lib; - - - - -#define LL_NONE 0 -#define LL_EXACT_MATCH (1 << 0) -#define LL_IGNORE_INT_VER (1 << 1) -#define LL_REQUIRE_MINOR (1 << 2) -#define LL_EXPORTS (1 << 3) -#define LL_DELAY_LOAD (1 << 4) -#define LL_DELTA (1 << 5) - - - -typedef Elf32_Addr Elf32_Conflict; - -typedef struct { - Elf32_Half version; - unsigned char isa_level; - unsigned char isa_rev; - unsigned char gpr_size; - unsigned char cpr1_size; - unsigned char cpr2_size; - unsigned char fp_abi; - Elf32_Word isa_ext; - Elf32_Word ases; - Elf32_Word flags1; - Elf32_Word flags2; -} Elf_MIPS_ABIFlags_v0; - -#define MIPS_AFL_REG_NONE 0x00 -#define MIPS_AFL_REG_32 0x01 -#define MIPS_AFL_REG_64 0x02 -#define MIPS_AFL_REG_128 0x03 - -#define MIPS_AFL_ASE_DSP 0x00000001 -#define MIPS_AFL_ASE_DSPR2 0x00000002 -#define MIPS_AFL_ASE_EVA 0x00000004 -#define MIPS_AFL_ASE_MCU 0x00000008 -#define MIPS_AFL_ASE_MDMX 0x00000010 -#define MIPS_AFL_ASE_MIPS3D 0x00000020 -#define MIPS_AFL_ASE_MT 0x00000040 -#define MIPS_AFL_ASE_SMARTMIPS 0x00000080 -#define MIPS_AFL_ASE_VIRT 0x00000100 -#define MIPS_AFL_ASE_MSA 0x00000200 -#define MIPS_AFL_ASE_MIPS16 0x00000400 -#define MIPS_AFL_ASE_MICROMIPS 0x00000800 -#define MIPS_AFL_ASE_XPA 0x00001000 -#define MIPS_AFL_ASE_MASK 0x00001fff - -#define MIPS_AFL_EXT_XLR 1 -#define MIPS_AFL_EXT_OCTEON2 2 -#define MIPS_AFL_EXT_OCTEONP 3 -#define MIPS_AFL_EXT_LOONGSON_3A 4 -#define MIPS_AFL_EXT_OCTEON 5 -#define MIPS_AFL_EXT_5900 6 -#define MIPS_AFL_EXT_4650 7 -#define MIPS_AFL_EXT_4010 8 -#define MIPS_AFL_EXT_4100 9 -#define MIPS_AFL_EXT_3900 10 -#define MIPS_AFL_EXT_10000 11 -#define MIPS_AFL_EXT_SB1 12 -#define MIPS_AFL_EXT_4111 13 -#define MIPS_AFL_EXT_4120 14 -#define MIPS_AFL_EXT_5400 15 -#define MIPS_AFL_EXT_5500 16 -#define MIPS_AFL_EXT_LOONGSON_2E 17 -#define MIPS_AFL_EXT_LOONGSON_2F 18 - -#define MIPS_AFL_FLAGS1_ODDSPREG 1 - -enum -{ - Val_GNU_MIPS_ABI_FP_ANY = 0, - Val_GNU_MIPS_ABI_FP_DOUBLE = 1, - Val_GNU_MIPS_ABI_FP_SINGLE = 2, - Val_GNU_MIPS_ABI_FP_SOFT = 3, - Val_GNU_MIPS_ABI_FP_OLD_64 = 4, - Val_GNU_MIPS_ABI_FP_XX = 5, - Val_GNU_MIPS_ABI_FP_64 = 6, - Val_GNU_MIPS_ABI_FP_64A = 7, - Val_GNU_MIPS_ABI_FP_MAX = 7 -}; - - - - -#define EF_PARISC_TRAPNIL 0x00010000 -#define EF_PARISC_EXT 0x00020000 -#define EF_PARISC_LSB 0x00040000 -#define EF_PARISC_WIDE 0x00080000 -#define EF_PARISC_NO_KABP 0x00100000 - -#define EF_PARISC_LAZYSWAP 0x00400000 -#define EF_PARISC_ARCH 0x0000ffff - - - -#define EFA_PARISC_1_0 0x020b -#define EFA_PARISC_1_1 0x0210 -#define EFA_PARISC_2_0 0x0214 - - - -#define SHN_PARISC_ANSI_COMMON 0xff00 - -#define SHN_PARISC_HUGE_COMMON 0xff01 - - - -#define SHT_PARISC_EXT 0x70000000 -#define SHT_PARISC_UNWIND 0x70000001 -#define SHT_PARISC_DOC 0x70000002 - - - -#define SHF_PARISC_SHORT 0x20000000 -#define SHF_PARISC_HUGE 0x40000000 -#define SHF_PARISC_SBP 0x80000000 - - - -#define STT_PARISC_MILLICODE 13 - -#define STT_HP_OPAQUE (STT_LOOS + 0x1) -#define STT_HP_STUB (STT_LOOS + 0x2) - - - -#define R_PARISC_NONE 0 -#define R_PARISC_DIR32 1 -#define R_PARISC_DIR21L 2 -#define R_PARISC_DIR17R 3 -#define R_PARISC_DIR17F 4 -#define R_PARISC_DIR14R 6 -#define R_PARISC_PCREL32 9 -#define R_PARISC_PCREL21L 10 -#define R_PARISC_PCREL17R 11 -#define R_PARISC_PCREL17F 12 -#define R_PARISC_PCREL14R 14 -#define R_PARISC_DPREL21L 18 -#define R_PARISC_DPREL14R 22 -#define R_PARISC_GPREL21L 26 -#define R_PARISC_GPREL14R 30 -#define R_PARISC_LTOFF21L 34 -#define R_PARISC_LTOFF14R 38 -#define R_PARISC_SECREL32 41 -#define R_PARISC_SEGBASE 48 -#define R_PARISC_SEGREL32 49 -#define R_PARISC_PLTOFF21L 50 -#define R_PARISC_PLTOFF14R 54 -#define R_PARISC_LTOFF_FPTR32 57 -#define R_PARISC_LTOFF_FPTR21L 58 -#define R_PARISC_LTOFF_FPTR14R 62 -#define R_PARISC_FPTR64 64 -#define R_PARISC_PLABEL32 65 -#define R_PARISC_PLABEL21L 66 -#define R_PARISC_PLABEL14R 70 -#define R_PARISC_PCREL64 72 -#define R_PARISC_PCREL22F 74 -#define R_PARISC_PCREL14WR 75 -#define R_PARISC_PCREL14DR 76 -#define R_PARISC_PCREL16F 77 -#define R_PARISC_PCREL16WF 78 -#define R_PARISC_PCREL16DF 79 -#define R_PARISC_DIR64 80 -#define R_PARISC_DIR14WR 83 -#define R_PARISC_DIR14DR 84 -#define R_PARISC_DIR16F 85 -#define R_PARISC_DIR16WF 86 -#define R_PARISC_DIR16DF 87 -#define R_PARISC_GPREL64 88 -#define R_PARISC_GPREL14WR 91 -#define R_PARISC_GPREL14DR 92 -#define R_PARISC_GPREL16F 93 -#define R_PARISC_GPREL16WF 94 -#define R_PARISC_GPREL16DF 95 -#define R_PARISC_LTOFF64 96 -#define R_PARISC_LTOFF14WR 99 -#define R_PARISC_LTOFF14DR 100 -#define R_PARISC_LTOFF16F 101 -#define R_PARISC_LTOFF16WF 102 -#define R_PARISC_LTOFF16DF 103 -#define R_PARISC_SECREL64 104 -#define R_PARISC_SEGREL64 112 -#define R_PARISC_PLTOFF14WR 115 -#define R_PARISC_PLTOFF14DR 116 -#define R_PARISC_PLTOFF16F 117 -#define R_PARISC_PLTOFF16WF 118 -#define R_PARISC_PLTOFF16DF 119 -#define R_PARISC_LTOFF_FPTR64 120 -#define R_PARISC_LTOFF_FPTR14WR 123 -#define R_PARISC_LTOFF_FPTR14DR 124 -#define R_PARISC_LTOFF_FPTR16F 125 -#define R_PARISC_LTOFF_FPTR16WF 126 -#define R_PARISC_LTOFF_FPTR16DF 127 -#define R_PARISC_LORESERVE 128 -#define R_PARISC_COPY 128 -#define R_PARISC_IPLT 129 -#define R_PARISC_EPLT 130 -#define R_PARISC_TPREL32 153 -#define R_PARISC_TPREL21L 154 -#define R_PARISC_TPREL14R 158 -#define R_PARISC_LTOFF_TP21L 162 -#define R_PARISC_LTOFF_TP14R 166 -#define R_PARISC_LTOFF_TP14F 167 -#define R_PARISC_TPREL64 216 -#define R_PARISC_TPREL14WR 219 -#define R_PARISC_TPREL14DR 220 -#define R_PARISC_TPREL16F 221 -#define R_PARISC_TPREL16WF 222 -#define R_PARISC_TPREL16DF 223 -#define R_PARISC_LTOFF_TP64 224 -#define R_PARISC_LTOFF_TP14WR 227 -#define R_PARISC_LTOFF_TP14DR 228 -#define R_PARISC_LTOFF_TP16F 229 -#define R_PARISC_LTOFF_TP16WF 230 -#define R_PARISC_LTOFF_TP16DF 231 -#define R_PARISC_GNU_VTENTRY 232 -#define R_PARISC_GNU_VTINHERIT 233 -#define R_PARISC_TLS_GD21L 234 -#define R_PARISC_TLS_GD14R 235 -#define R_PARISC_TLS_GDCALL 236 -#define R_PARISC_TLS_LDM21L 237 -#define R_PARISC_TLS_LDM14R 238 -#define R_PARISC_TLS_LDMCALL 239 -#define R_PARISC_TLS_LDO21L 240 -#define R_PARISC_TLS_LDO14R 241 -#define R_PARISC_TLS_DTPMOD32 242 -#define R_PARISC_TLS_DTPMOD64 243 -#define R_PARISC_TLS_DTPOFF32 244 -#define R_PARISC_TLS_DTPOFF64 245 -#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L -#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R -#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L -#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R -#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32 -#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64 -#define R_PARISC_HIRESERVE 255 - - - -#define PT_HP_TLS (PT_LOOS + 0x0) -#define PT_HP_CORE_NONE (PT_LOOS + 0x1) -#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) -#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) -#define PT_HP_CORE_COMM (PT_LOOS + 0x4) -#define PT_HP_CORE_PROC (PT_LOOS + 0x5) -#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) -#define PT_HP_CORE_STACK (PT_LOOS + 0x7) -#define PT_HP_CORE_SHM (PT_LOOS + 0x8) -#define PT_HP_CORE_MMF (PT_LOOS + 0x9) -#define PT_HP_PARALLEL (PT_LOOS + 0x10) -#define PT_HP_FASTBIND (PT_LOOS + 0x11) -#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) -#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) -#define PT_HP_STACK (PT_LOOS + 0x14) - -#define PT_PARISC_ARCHEXT 0x70000000 -#define PT_PARISC_UNWIND 0x70000001 - - - -#define PF_PARISC_SBP 0x08000000 - -#define PF_HP_PAGE_SIZE 0x00100000 -#define PF_HP_FAR_SHARED 0x00200000 -#define PF_HP_NEAR_SHARED 0x00400000 -#define PF_HP_CODE 0x01000000 -#define PF_HP_MODIFY 0x02000000 -#define PF_HP_LAZYSWAP 0x04000000 -#define PF_HP_SBP 0x08000000 - - - - - - -#define EF_ALPHA_32BIT 1 -#define EF_ALPHA_CANRELAX 2 - - - - -#define SHT_ALPHA_DEBUG 0x70000001 -#define SHT_ALPHA_REGINFO 0x70000002 - - - -#define SHF_ALPHA_GPREL 0x10000000 - - -#define STO_ALPHA_NOPV 0x80 -#define STO_ALPHA_STD_GPLOAD 0x88 - - - -#define R_ALPHA_NONE 0 -#define R_ALPHA_REFLONG 1 -#define R_ALPHA_REFQUAD 2 -#define R_ALPHA_GPREL32 3 -#define R_ALPHA_LITERAL 4 -#define R_ALPHA_LITUSE 5 -#define R_ALPHA_GPDISP 6 -#define R_ALPHA_BRADDR 7 -#define R_ALPHA_HINT 8 -#define R_ALPHA_SREL16 9 -#define R_ALPHA_SREL32 10 -#define R_ALPHA_SREL64 11 -#define R_ALPHA_GPRELHIGH 17 -#define R_ALPHA_GPRELLOW 18 -#define R_ALPHA_GPREL16 19 -#define R_ALPHA_COPY 24 -#define R_ALPHA_GLOB_DAT 25 -#define R_ALPHA_JMP_SLOT 26 -#define R_ALPHA_RELATIVE 27 -#define R_ALPHA_TLS_GD_HI 28 -#define R_ALPHA_TLSGD 29 -#define R_ALPHA_TLS_LDM 30 -#define R_ALPHA_DTPMOD64 31 -#define R_ALPHA_GOTDTPREL 32 -#define R_ALPHA_DTPREL64 33 -#define R_ALPHA_DTPRELHI 34 -#define R_ALPHA_DTPRELLO 35 -#define R_ALPHA_DTPREL16 36 -#define R_ALPHA_GOTTPREL 37 -#define R_ALPHA_TPREL64 38 -#define R_ALPHA_TPRELHI 39 -#define R_ALPHA_TPRELLO 40 -#define R_ALPHA_TPREL16 41 - -#define R_ALPHA_NUM 46 - - -#define LITUSE_ALPHA_ADDR 0 -#define LITUSE_ALPHA_BASE 1 -#define LITUSE_ALPHA_BYTOFF 2 -#define LITUSE_ALPHA_JSR 3 -#define LITUSE_ALPHA_TLS_GD 4 -#define LITUSE_ALPHA_TLS_LDM 5 - - -#define DT_ALPHA_PLTRO (DT_LOPROC + 0) -#define DT_ALPHA_NUM 1 - - - - -#define EF_PPC_EMB 0x80000000 - - -#define EF_PPC_RELOCATABLE 0x00010000 -#define EF_PPC_RELOCATABLE_LIB 0x00008000 - - - -#define R_PPC_NONE 0 -#define R_PPC_ADDR32 1 -#define R_PPC_ADDR24 2 -#define R_PPC_ADDR16 3 -#define R_PPC_ADDR16_LO 4 -#define R_PPC_ADDR16_HI 5 -#define R_PPC_ADDR16_HA 6 -#define R_PPC_ADDR14 7 -#define R_PPC_ADDR14_BRTAKEN 8 -#define R_PPC_ADDR14_BRNTAKEN 9 -#define R_PPC_REL24 10 -#define R_PPC_REL14 11 -#define R_PPC_REL14_BRTAKEN 12 -#define R_PPC_REL14_BRNTAKEN 13 -#define R_PPC_GOT16 14 -#define R_PPC_GOT16_LO 15 -#define R_PPC_GOT16_HI 16 -#define R_PPC_GOT16_HA 17 -#define R_PPC_PLTREL24 18 -#define R_PPC_COPY 19 -#define R_PPC_GLOB_DAT 20 -#define R_PPC_JMP_SLOT 21 -#define R_PPC_RELATIVE 22 -#define R_PPC_LOCAL24PC 23 -#define R_PPC_UADDR32 24 -#define R_PPC_UADDR16 25 -#define R_PPC_REL32 26 -#define R_PPC_PLT32 27 -#define R_PPC_PLTREL32 28 -#define R_PPC_PLT16_LO 29 -#define R_PPC_PLT16_HI 30 -#define R_PPC_PLT16_HA 31 -#define R_PPC_SDAREL16 32 -#define R_PPC_SECTOFF 33 -#define R_PPC_SECTOFF_LO 34 -#define R_PPC_SECTOFF_HI 35 -#define R_PPC_SECTOFF_HA 36 - - -#define R_PPC_TLS 67 -#define R_PPC_DTPMOD32 68 -#define R_PPC_TPREL16 69 -#define R_PPC_TPREL16_LO 70 -#define R_PPC_TPREL16_HI 71 -#define R_PPC_TPREL16_HA 72 -#define R_PPC_TPREL32 73 -#define R_PPC_DTPREL16 74 -#define R_PPC_DTPREL16_LO 75 -#define R_PPC_DTPREL16_HI 76 -#define R_PPC_DTPREL16_HA 77 -#define R_PPC_DTPREL32 78 -#define R_PPC_GOT_TLSGD16 79 -#define R_PPC_GOT_TLSGD16_LO 80 -#define R_PPC_GOT_TLSGD16_HI 81 -#define R_PPC_GOT_TLSGD16_HA 82 -#define R_PPC_GOT_TLSLD16 83 -#define R_PPC_GOT_TLSLD16_LO 84 -#define R_PPC_GOT_TLSLD16_HI 85 -#define R_PPC_GOT_TLSLD16_HA 86 -#define R_PPC_GOT_TPREL16 87 -#define R_PPC_GOT_TPREL16_LO 88 -#define R_PPC_GOT_TPREL16_HI 89 -#define R_PPC_GOT_TPREL16_HA 90 -#define R_PPC_GOT_DTPREL16 91 -#define R_PPC_GOT_DTPREL16_LO 92 -#define R_PPC_GOT_DTPREL16_HI 93 -#define R_PPC_GOT_DTPREL16_HA 94 -#define R_PPC_TLSGD 95 -#define R_PPC_TLSLD 96 - - -#define R_PPC_EMB_NADDR32 101 -#define R_PPC_EMB_NADDR16 102 -#define R_PPC_EMB_NADDR16_LO 103 -#define R_PPC_EMB_NADDR16_HI 104 -#define R_PPC_EMB_NADDR16_HA 105 -#define R_PPC_EMB_SDAI16 106 -#define R_PPC_EMB_SDA2I16 107 -#define R_PPC_EMB_SDA2REL 108 -#define R_PPC_EMB_SDA21 109 -#define R_PPC_EMB_MRKREF 110 -#define R_PPC_EMB_RELSEC16 111 -#define R_PPC_EMB_RELST_LO 112 -#define R_PPC_EMB_RELST_HI 113 -#define R_PPC_EMB_RELST_HA 114 -#define R_PPC_EMB_BIT_FLD 115 -#define R_PPC_EMB_RELSDA 116 - - -#define R_PPC_DIAB_SDA21_LO 180 -#define R_PPC_DIAB_SDA21_HI 181 -#define R_PPC_DIAB_SDA21_HA 182 -#define R_PPC_DIAB_RELSDA_LO 183 -#define R_PPC_DIAB_RELSDA_HI 184 -#define R_PPC_DIAB_RELSDA_HA 185 - - -#define R_PPC_IRELATIVE 248 - - -#define R_PPC_REL16 249 -#define R_PPC_REL16_LO 250 -#define R_PPC_REL16_HI 251 -#define R_PPC_REL16_HA 252 - - - -#define R_PPC_TOC16 255 - - -#define DT_PPC_GOT (DT_LOPROC + 0) -#define DT_PPC_OPT (DT_LOPROC + 1) -#define DT_PPC_NUM 2 - -#define PPC_OPT_TLS 1 - - -#define R_PPC64_NONE R_PPC_NONE -#define R_PPC64_ADDR32 R_PPC_ADDR32 -#define R_PPC64_ADDR24 R_PPC_ADDR24 -#define R_PPC64_ADDR16 R_PPC_ADDR16 -#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO -#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI -#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA -#define R_PPC64_ADDR14 R_PPC_ADDR14 -#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN -#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN -#define R_PPC64_REL24 R_PPC_REL24 -#define R_PPC64_REL14 R_PPC_REL14 -#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN -#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN -#define R_PPC64_GOT16 R_PPC_GOT16 -#define R_PPC64_GOT16_LO R_PPC_GOT16_LO -#define R_PPC64_GOT16_HI R_PPC_GOT16_HI -#define R_PPC64_GOT16_HA R_PPC_GOT16_HA - -#define R_PPC64_COPY R_PPC_COPY -#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT -#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT -#define R_PPC64_RELATIVE R_PPC_RELATIVE - -#define R_PPC64_UADDR32 R_PPC_UADDR32 -#define R_PPC64_UADDR16 R_PPC_UADDR16 -#define R_PPC64_REL32 R_PPC_REL32 -#define R_PPC64_PLT32 R_PPC_PLT32 -#define R_PPC64_PLTREL32 R_PPC_PLTREL32 -#define R_PPC64_PLT16_LO R_PPC_PLT16_LO -#define R_PPC64_PLT16_HI R_PPC_PLT16_HI -#define R_PPC64_PLT16_HA R_PPC_PLT16_HA - -#define R_PPC64_SECTOFF R_PPC_SECTOFF -#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO -#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI -#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA -#define R_PPC64_ADDR30 37 -#define R_PPC64_ADDR64 38 -#define R_PPC64_ADDR16_HIGHER 39 -#define R_PPC64_ADDR16_HIGHERA 40 -#define R_PPC64_ADDR16_HIGHEST 41 -#define R_PPC64_ADDR16_HIGHESTA 42 -#define R_PPC64_UADDR64 43 -#define R_PPC64_REL64 44 -#define R_PPC64_PLT64 45 -#define R_PPC64_PLTREL64 46 -#define R_PPC64_TOC16 47 -#define R_PPC64_TOC16_LO 48 -#define R_PPC64_TOC16_HI 49 -#define R_PPC64_TOC16_HA 50 -#define R_PPC64_TOC 51 -#define R_PPC64_PLTGOT16 52 -#define R_PPC64_PLTGOT16_LO 53 -#define R_PPC64_PLTGOT16_HI 54 -#define R_PPC64_PLTGOT16_HA 55 - -#define R_PPC64_ADDR16_DS 56 -#define R_PPC64_ADDR16_LO_DS 57 -#define R_PPC64_GOT16_DS 58 -#define R_PPC64_GOT16_LO_DS 59 -#define R_PPC64_PLT16_LO_DS 60 -#define R_PPC64_SECTOFF_DS 61 -#define R_PPC64_SECTOFF_LO_DS 62 -#define R_PPC64_TOC16_DS 63 -#define R_PPC64_TOC16_LO_DS 64 -#define R_PPC64_PLTGOT16_DS 65 -#define R_PPC64_PLTGOT16_LO_DS 66 - - -#define R_PPC64_TLS 67 -#define R_PPC64_DTPMOD64 68 -#define R_PPC64_TPREL16 69 -#define R_PPC64_TPREL16_LO 70 -#define R_PPC64_TPREL16_HI 71 -#define R_PPC64_TPREL16_HA 72 -#define R_PPC64_TPREL64 73 -#define R_PPC64_DTPREL16 74 -#define R_PPC64_DTPREL16_LO 75 -#define R_PPC64_DTPREL16_HI 76 -#define R_PPC64_DTPREL16_HA 77 -#define R_PPC64_DTPREL64 78 -#define R_PPC64_GOT_TLSGD16 79 -#define R_PPC64_GOT_TLSGD16_LO 80 -#define R_PPC64_GOT_TLSGD16_HI 81 -#define R_PPC64_GOT_TLSGD16_HA 82 -#define R_PPC64_GOT_TLSLD16 83 -#define R_PPC64_GOT_TLSLD16_LO 84 -#define R_PPC64_GOT_TLSLD16_HI 85 -#define R_PPC64_GOT_TLSLD16_HA 86 -#define R_PPC64_GOT_TPREL16_DS 87 -#define R_PPC64_GOT_TPREL16_LO_DS 88 -#define R_PPC64_GOT_TPREL16_HI 89 -#define R_PPC64_GOT_TPREL16_HA 90 -#define R_PPC64_GOT_DTPREL16_DS 91 -#define R_PPC64_GOT_DTPREL16_LO_DS 92 -#define R_PPC64_GOT_DTPREL16_HI 93 -#define R_PPC64_GOT_DTPREL16_HA 94 -#define R_PPC64_TPREL16_DS 95 -#define R_PPC64_TPREL16_LO_DS 96 -#define R_PPC64_TPREL16_HIGHER 97 -#define R_PPC64_TPREL16_HIGHERA 98 -#define R_PPC64_TPREL16_HIGHEST 99 -#define R_PPC64_TPREL16_HIGHESTA 100 -#define R_PPC64_DTPREL16_DS 101 -#define R_PPC64_DTPREL16_LO_DS 102 -#define R_PPC64_DTPREL16_HIGHER 103 -#define R_PPC64_DTPREL16_HIGHERA 104 -#define R_PPC64_DTPREL16_HIGHEST 105 -#define R_PPC64_DTPREL16_HIGHESTA 106 -#define R_PPC64_TLSGD 107 -#define R_PPC64_TLSLD 108 -#define R_PPC64_TOCSAVE 109 -#define R_PPC64_ADDR16_HIGH 110 -#define R_PPC64_ADDR16_HIGHA 111 -#define R_PPC64_TPREL16_HIGH 112 -#define R_PPC64_TPREL16_HIGHA 113 -#define R_PPC64_DTPREL16_HIGH 114 -#define R_PPC64_DTPREL16_HIGHA 115 - - -#define R_PPC64_JMP_IREL 247 -#define R_PPC64_IRELATIVE 248 -#define R_PPC64_REL16 249 -#define R_PPC64_REL16_LO 250 -#define R_PPC64_REL16_HI 251 -#define R_PPC64_REL16_HA 252 - -#define EF_PPC64_ABI 3 - -#define DT_PPC64_GLINK (DT_LOPROC + 0) -#define DT_PPC64_OPD (DT_LOPROC + 1) -#define DT_PPC64_OPDSZ (DT_LOPROC + 2) -#define DT_PPC64_OPT (DT_LOPROC + 3) -#define DT_PPC64_NUM 4 - -#define PPC64_OPT_TLS 1 -#define PPC64_OPT_MULTI_TOC 2 - -#define STO_PPC64_LOCAL_BIT 5 -#define STO_PPC64_LOCAL_MASK 0xe0 -#define PPC64_LOCAL_ENTRY_OFFSET(x) (1 << (((x)&0xe0)>>5) & 0xfc) - - -#define EF_ARM_RELEXEC 0x01 -#define EF_ARM_HASENTRY 0x02 -#define EF_ARM_INTERWORK 0x04 -#define EF_ARM_APCS_26 0x08 -#define EF_ARM_APCS_FLOAT 0x10 -#define EF_ARM_PIC 0x20 -#define EF_ARM_ALIGN8 0x40 -#define EF_ARM_NEW_ABI 0x80 -#define EF_ARM_OLD_ABI 0x100 -#define EF_ARM_SOFT_FLOAT 0x200 -#define EF_ARM_VFP_FLOAT 0x400 -#define EF_ARM_MAVERICK_FLOAT 0x800 - -#define EF_ARM_ABI_FLOAT_SOFT 0x200 -#define EF_ARM_ABI_FLOAT_HARD 0x400 - - -#define EF_ARM_SYMSARESORTED 0x04 -#define EF_ARM_DYNSYMSUSESEGIDX 0x08 -#define EF_ARM_MAPSYMSFIRST 0x10 -#define EF_ARM_EABIMASK 0XFF000000 - - -#define EF_ARM_BE8 0x00800000 -#define EF_ARM_LE8 0x00400000 - -#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) -#define EF_ARM_EABI_UNKNOWN 0x00000000 -#define EF_ARM_EABI_VER1 0x01000000 -#define EF_ARM_EABI_VER2 0x02000000 -#define EF_ARM_EABI_VER3 0x03000000 -#define EF_ARM_EABI_VER4 0x04000000 -#define EF_ARM_EABI_VER5 0x05000000 - - -#define STT_ARM_TFUNC STT_LOPROC -#define STT_ARM_16BIT STT_HIPROC - - -#define SHF_ARM_ENTRYSECT 0x10000000 -#define SHF_ARM_COMDEF 0x80000000 - - - -#define PF_ARM_SB 0x10000000 - -#define PF_ARM_PI 0x20000000 -#define PF_ARM_ABS 0x40000000 - - -#define PT_ARM_EXIDX (PT_LOPROC + 1) - - -#define SHT_ARM_EXIDX (SHT_LOPROC + 1) -#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) -#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) - -#define R_AARCH64_NONE 0 -#define R_AARCH64_P32_ABS32 1 -#define R_AARCH64_P32_COPY 180 -#define R_AARCH64_P32_GLOB_DAT 181 -#define R_AARCH64_P32_JUMP_SLOT 182 -#define R_AARCH64_P32_RELATIVE 183 -#define R_AARCH64_P32_TLS_DTPMOD 184 -#define R_AARCH64_P32_TLS_DTPREL 185 -#define R_AARCH64_P32_TLS_TPREL 186 -#define R_AARCH64_P32_TLSDESC 187 -#define R_AARCH64_P32_IRELATIVE 188 -#define R_AARCH64_ABS64 257 -#define R_AARCH64_ABS32 258 -#define R_AARCH64_ABS16 259 -#define R_AARCH64_PREL64 260 -#define R_AARCH64_PREL32 261 -#define R_AARCH64_PREL16 262 -#define R_AARCH64_MOVW_UABS_G0 263 -#define R_AARCH64_MOVW_UABS_G0_NC 264 -#define R_AARCH64_MOVW_UABS_G1 265 -#define R_AARCH64_MOVW_UABS_G1_NC 266 -#define R_AARCH64_MOVW_UABS_G2 267 -#define R_AARCH64_MOVW_UABS_G2_NC 268 -#define R_AARCH64_MOVW_UABS_G3 269 -#define R_AARCH64_MOVW_SABS_G0 270 -#define R_AARCH64_MOVW_SABS_G1 271 -#define R_AARCH64_MOVW_SABS_G2 272 -#define R_AARCH64_LD_PREL_LO19 273 -#define R_AARCH64_ADR_PREL_LO21 274 -#define R_AARCH64_ADR_PREL_PG_HI21 275 -#define R_AARCH64_ADR_PREL_PG_HI21_NC 276 -#define R_AARCH64_ADD_ABS_LO12_NC 277 -#define R_AARCH64_LDST8_ABS_LO12_NC 278 -#define R_AARCH64_TSTBR14 279 -#define R_AARCH64_CONDBR19 280 -#define R_AARCH64_JUMP26 282 -#define R_AARCH64_CALL26 283 -#define R_AARCH64_LDST16_ABS_LO12_NC 284 -#define R_AARCH64_LDST32_ABS_LO12_NC 285 -#define R_AARCH64_LDST64_ABS_LO12_NC 286 -#define R_AARCH64_MOVW_PREL_G0 287 -#define R_AARCH64_MOVW_PREL_G0_NC 288 -#define R_AARCH64_MOVW_PREL_G1 289 -#define R_AARCH64_MOVW_PREL_G1_NC 290 -#define R_AARCH64_MOVW_PREL_G2 291 -#define R_AARCH64_MOVW_PREL_G2_NC 292 -#define R_AARCH64_MOVW_PREL_G3 293 -#define R_AARCH64_LDST128_ABS_LO12_NC 299 -#define R_AARCH64_MOVW_GOTOFF_G0 300 -#define R_AARCH64_MOVW_GOTOFF_G0_NC 301 -#define R_AARCH64_MOVW_GOTOFF_G1 302 -#define R_AARCH64_MOVW_GOTOFF_G1_NC 303 -#define R_AARCH64_MOVW_GOTOFF_G2 304 -#define R_AARCH64_MOVW_GOTOFF_G2_NC 305 -#define R_AARCH64_MOVW_GOTOFF_G3 306 -#define R_AARCH64_GOTREL64 307 -#define R_AARCH64_GOTREL32 308 -#define R_AARCH64_GOT_LD_PREL19 309 -#define R_AARCH64_LD64_GOTOFF_LO15 310 -#define R_AARCH64_ADR_GOT_PAGE 311 -#define R_AARCH64_LD64_GOT_LO12_NC 312 -#define R_AARCH64_LD64_GOTPAGE_LO15 313 -#define R_AARCH64_TLSGD_ADR_PREL21 512 -#define R_AARCH64_TLSGD_ADR_PAGE21 513 -#define R_AARCH64_TLSGD_ADD_LO12_NC 514 -#define R_AARCH64_TLSGD_MOVW_G1 515 -#define R_AARCH64_TLSGD_MOVW_G0_NC 516 -#define R_AARCH64_TLSLD_ADR_PREL21 517 -#define R_AARCH64_TLSLD_ADR_PAGE21 518 -#define R_AARCH64_TLSLD_ADD_LO12_NC 519 -#define R_AARCH64_TLSLD_MOVW_G1 520 -#define R_AARCH64_TLSLD_MOVW_G0_NC 521 -#define R_AARCH64_TLSLD_LD_PREL19 522 -#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523 -#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524 -#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525 -#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526 -#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527 -#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528 -#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529 -#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530 -#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531 -#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532 -#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533 -#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534 -#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535 -#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536 -#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537 -#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538 -#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539 -#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540 -#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541 -#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542 -#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543 -#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544 -#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545 -#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546 -#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547 -#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548 -#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549 -#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550 -#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551 -#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552 -#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553 -#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554 -#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555 -#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556 -#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557 -#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558 -#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559 -#define R_AARCH64_TLSDESC_LD_PREL19 560 -#define R_AARCH64_TLSDESC_ADR_PREL21 561 -#define R_AARCH64_TLSDESC_ADR_PAGE21 562 -#define R_AARCH64_TLSDESC_LD64_LO12 563 -#define R_AARCH64_TLSDESC_ADD_LO12 564 -#define R_AARCH64_TLSDESC_OFF_G1 565 -#define R_AARCH64_TLSDESC_OFF_G0_NC 566 -#define R_AARCH64_TLSDESC_LDR 567 -#define R_AARCH64_TLSDESC_ADD 568 -#define R_AARCH64_TLSDESC_CALL 569 -#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570 -#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571 -#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572 -#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573 -#define R_AARCH64_COPY 1024 -#define R_AARCH64_GLOB_DAT 1025 -#define R_AARCH64_JUMP_SLOT 1026 -#define R_AARCH64_RELATIVE 1027 -#define R_AARCH64_TLS_DTPMOD 1028 -#define R_AARCH64_TLS_DTPMOD64 1028 -#define R_AARCH64_TLS_DTPREL 1029 -#define R_AARCH64_TLS_DTPREL64 1029 -#define R_AARCH64_TLS_TPREL 1030 -#define R_AARCH64_TLS_TPREL64 1030 -#define R_AARCH64_TLSDESC 1031 - - -#define R_ARM_NONE 0 -#define R_ARM_PC24 1 -#define R_ARM_ABS32 2 -#define R_ARM_REL32 3 -#define R_ARM_PC13 4 -#define R_ARM_ABS16 5 -#define R_ARM_ABS12 6 -#define R_ARM_THM_ABS5 7 -#define R_ARM_ABS8 8 -#define R_ARM_SBREL32 9 -#define R_ARM_THM_PC22 10 -#define R_ARM_THM_PC8 11 -#define R_ARM_AMP_VCALL9 12 -#define R_ARM_TLS_DESC 13 -#define R_ARM_THM_SWI8 14 -#define R_ARM_XPC25 15 -#define R_ARM_THM_XPC22 16 -#define R_ARM_TLS_DTPMOD32 17 -#define R_ARM_TLS_DTPOFF32 18 -#define R_ARM_TLS_TPOFF32 19 -#define R_ARM_COPY 20 -#define R_ARM_GLOB_DAT 21 -#define R_ARM_JUMP_SLOT 22 -#define R_ARM_RELATIVE 23 -#define R_ARM_GOTOFF 24 -#define R_ARM_GOTPC 25 -#define R_ARM_GOT32 26 -#define R_ARM_PLT32 27 -#define R_ARM_CALL 28 -#define R_ARM_JUMP24 29 -#define R_ARM_THM_JUMP24 30 -#define R_ARM_BASE_ABS 31 -#define R_ARM_ALU_PCREL_7_0 32 -#define R_ARM_ALU_PCREL_15_8 33 -#define R_ARM_ALU_PCREL_23_15 34 -#define R_ARM_LDR_SBREL_11_0 35 -#define R_ARM_ALU_SBREL_19_12 36 -#define R_ARM_ALU_SBREL_27_20 37 -#define R_ARM_TARGET1 38 -#define R_ARM_SBREL31 39 -#define R_ARM_V4BX 40 -#define R_ARM_TARGET2 41 -#define R_ARM_PREL31 42 -#define R_ARM_MOVW_ABS_NC 43 -#define R_ARM_MOVT_ABS 44 -#define R_ARM_MOVW_PREL_NC 45 -#define R_ARM_MOVT_PREL 46 -#define R_ARM_THM_MOVW_ABS_NC 47 -#define R_ARM_THM_MOVT_ABS 48 -#define R_ARM_THM_MOVW_PREL_NC 49 -#define R_ARM_THM_MOVT_PREL 50 -#define R_ARM_THM_JUMP19 51 -#define R_ARM_THM_JUMP6 52 -#define R_ARM_THM_ALU_PREL_11_0 53 -#define R_ARM_THM_PC12 54 -#define R_ARM_ABS32_NOI 55 -#define R_ARM_REL32_NOI 56 -#define R_ARM_ALU_PC_G0_NC 57 -#define R_ARM_ALU_PC_G0 58 -#define R_ARM_ALU_PC_G1_NC 59 -#define R_ARM_ALU_PC_G1 60 -#define R_ARM_ALU_PC_G2 61 -#define R_ARM_LDR_PC_G1 62 -#define R_ARM_LDR_PC_G2 63 -#define R_ARM_LDRS_PC_G0 64 -#define R_ARM_LDRS_PC_G1 65 -#define R_ARM_LDRS_PC_G2 66 -#define R_ARM_LDC_PC_G0 67 -#define R_ARM_LDC_PC_G1 68 -#define R_ARM_LDC_PC_G2 69 -#define R_ARM_ALU_SB_G0_NC 70 -#define R_ARM_ALU_SB_G0 71 -#define R_ARM_ALU_SB_G1_NC 72 -#define R_ARM_ALU_SB_G1 73 -#define R_ARM_ALU_SB_G2 74 -#define R_ARM_LDR_SB_G0 75 -#define R_ARM_LDR_SB_G1 76 -#define R_ARM_LDR_SB_G2 77 -#define R_ARM_LDRS_SB_G0 78 -#define R_ARM_LDRS_SB_G1 79 -#define R_ARM_LDRS_SB_G2 80 -#define R_ARM_LDC_SB_G0 81 -#define R_ARM_LDC_SB_G1 82 -#define R_ARM_LDC_SB_G2 83 -#define R_ARM_MOVW_BREL_NC 84 -#define R_ARM_MOVT_BREL 85 -#define R_ARM_MOVW_BREL 86 -#define R_ARM_THM_MOVW_BREL_NC 87 -#define R_ARM_THM_MOVT_BREL 88 -#define R_ARM_THM_MOVW_BREL 89 -#define R_ARM_TLS_GOTDESC 90 -#define R_ARM_TLS_CALL 91 -#define R_ARM_TLS_DESCSEQ 92 -#define R_ARM_THM_TLS_CALL 93 -#define R_ARM_PLT32_ABS 94 -#define R_ARM_GOT_ABS 95 -#define R_ARM_GOT_PREL 96 -#define R_ARM_GOT_BREL12 97 -#define R_ARM_GOTOFF12 98 -#define R_ARM_GOTRELAX 99 -#define R_ARM_GNU_VTENTRY 100 -#define R_ARM_GNU_VTINHERIT 101 -#define R_ARM_THM_PC11 102 -#define R_ARM_THM_PC9 103 -#define R_ARM_TLS_GD32 104 - -#define R_ARM_TLS_LDM32 105 - -#define R_ARM_TLS_LDO32 106 - -#define R_ARM_TLS_IE32 107 - -#define R_ARM_TLS_LE32 108 -#define R_ARM_TLS_LDO12 109 -#define R_ARM_TLS_LE12 110 -#define R_ARM_TLS_IE12GP 111 -#define R_ARM_ME_TOO 128 -#define R_ARM_THM_TLS_DESCSEQ 129 -#define R_ARM_THM_TLS_DESCSEQ16 129 -#define R_ARM_THM_TLS_DESCSEQ32 130 -#define R_ARM_THM_GOT_BREL12 131 -#define R_ARM_IRELATIVE 160 -#define R_ARM_RXPC25 249 -#define R_ARM_RSBREL32 250 -#define R_ARM_THM_RPC22 251 -#define R_ARM_RREL32 252 -#define R_ARM_RABS22 253 -#define R_ARM_RPC24 254 -#define R_ARM_RBASE 255 - -#define R_ARM_NUM 256 - - - - -#define EF_IA_64_MASKOS 0x0000000f -#define EF_IA_64_ABI64 0x00000010 -#define EF_IA_64_ARCH 0xff000000 - - -#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) -#define PT_IA_64_UNWIND (PT_LOPROC + 1) -#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12) -#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13) -#define PT_IA_64_HP_STACK (PT_LOOS + 0x14) - - -#define PF_IA_64_NORECOV 0x80000000 - - -#define SHT_IA_64_EXT (SHT_LOPROC + 0) -#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) - - -#define SHF_IA_64_SHORT 0x10000000 -#define SHF_IA_64_NORECOV 0x20000000 - - -#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) -#define DT_IA_64_NUM 1 - - -#define R_IA64_NONE 0x00 -#define R_IA64_IMM14 0x21 -#define R_IA64_IMM22 0x22 -#define R_IA64_IMM64 0x23 -#define R_IA64_DIR32MSB 0x24 -#define R_IA64_DIR32LSB 0x25 -#define R_IA64_DIR64MSB 0x26 -#define R_IA64_DIR64LSB 0x27 -#define R_IA64_GPREL22 0x2a -#define R_IA64_GPREL64I 0x2b -#define R_IA64_GPREL32MSB 0x2c -#define R_IA64_GPREL32LSB 0x2d -#define R_IA64_GPREL64MSB 0x2e -#define R_IA64_GPREL64LSB 0x2f -#define R_IA64_LTOFF22 0x32 -#define R_IA64_LTOFF64I 0x33 -#define R_IA64_PLTOFF22 0x3a -#define R_IA64_PLTOFF64I 0x3b -#define R_IA64_PLTOFF64MSB 0x3e -#define R_IA64_PLTOFF64LSB 0x3f -#define R_IA64_FPTR64I 0x43 -#define R_IA64_FPTR32MSB 0x44 -#define R_IA64_FPTR32LSB 0x45 -#define R_IA64_FPTR64MSB 0x46 -#define R_IA64_FPTR64LSB 0x47 -#define R_IA64_PCREL60B 0x48 -#define R_IA64_PCREL21B 0x49 -#define R_IA64_PCREL21M 0x4a -#define R_IA64_PCREL21F 0x4b -#define R_IA64_PCREL32MSB 0x4c -#define R_IA64_PCREL32LSB 0x4d -#define R_IA64_PCREL64MSB 0x4e -#define R_IA64_PCREL64LSB 0x4f -#define R_IA64_LTOFF_FPTR22 0x52 -#define R_IA64_LTOFF_FPTR64I 0x53 -#define R_IA64_LTOFF_FPTR32MSB 0x54 -#define R_IA64_LTOFF_FPTR32LSB 0x55 -#define R_IA64_LTOFF_FPTR64MSB 0x56 -#define R_IA64_LTOFF_FPTR64LSB 0x57 -#define R_IA64_SEGREL32MSB 0x5c -#define R_IA64_SEGREL32LSB 0x5d -#define R_IA64_SEGREL64MSB 0x5e -#define R_IA64_SEGREL64LSB 0x5f -#define R_IA64_SECREL32MSB 0x64 -#define R_IA64_SECREL32LSB 0x65 -#define R_IA64_SECREL64MSB 0x66 -#define R_IA64_SECREL64LSB 0x67 -#define R_IA64_REL32MSB 0x6c -#define R_IA64_REL32LSB 0x6d -#define R_IA64_REL64MSB 0x6e -#define R_IA64_REL64LSB 0x6f -#define R_IA64_LTV32MSB 0x74 -#define R_IA64_LTV32LSB 0x75 -#define R_IA64_LTV64MSB 0x76 -#define R_IA64_LTV64LSB 0x77 -#define R_IA64_PCREL21BI 0x79 -#define R_IA64_PCREL22 0x7a -#define R_IA64_PCREL64I 0x7b -#define R_IA64_IPLTMSB 0x80 -#define R_IA64_IPLTLSB 0x81 -#define R_IA64_COPY 0x84 -#define R_IA64_SUB 0x85 -#define R_IA64_LTOFF22X 0x86 -#define R_IA64_LDXMOV 0x87 -#define R_IA64_TPREL14 0x91 -#define R_IA64_TPREL22 0x92 -#define R_IA64_TPREL64I 0x93 -#define R_IA64_TPREL64MSB 0x96 -#define R_IA64_TPREL64LSB 0x97 -#define R_IA64_LTOFF_TPREL22 0x9a -#define R_IA64_DTPMOD64MSB 0xa6 -#define R_IA64_DTPMOD64LSB 0xa7 -#define R_IA64_LTOFF_DTPMOD22 0xaa -#define R_IA64_DTPREL14 0xb1 -#define R_IA64_DTPREL22 0xb2 -#define R_IA64_DTPREL64I 0xb3 -#define R_IA64_DTPREL32MSB 0xb4 -#define R_IA64_DTPREL32LSB 0xb5 -#define R_IA64_DTPREL64MSB 0xb6 -#define R_IA64_DTPREL64LSB 0xb7 -#define R_IA64_LTOFF_DTPREL22 0xba - - -#define EF_SH_MACH_MASK 0x1f -#define EF_SH_UNKNOWN 0x0 -#define EF_SH1 0x1 -#define EF_SH2 0x2 -#define EF_SH3 0x3 -#define EF_SH_DSP 0x4 -#define EF_SH3_DSP 0x5 -#define EF_SH4AL_DSP 0x6 -#define EF_SH3E 0x8 -#define EF_SH4 0x9 -#define EF_SH2E 0xb -#define EF_SH4A 0xc -#define EF_SH2A 0xd -#define EF_SH4_NOFPU 0x10 -#define EF_SH4A_NOFPU 0x11 -#define EF_SH4_NOMMU_NOFPU 0x12 -#define EF_SH2A_NOFPU 0x13 -#define EF_SH3_NOMMU 0x14 -#define EF_SH2A_SH4_NOFPU 0x15 -#define EF_SH2A_SH3_NOFPU 0x16 -#define EF_SH2A_SH4 0x17 -#define EF_SH2A_SH3E 0x18 - -#define R_SH_NONE 0 -#define R_SH_DIR32 1 -#define R_SH_REL32 2 -#define R_SH_DIR8WPN 3 -#define R_SH_IND12W 4 -#define R_SH_DIR8WPL 5 -#define R_SH_DIR8WPZ 6 -#define R_SH_DIR8BP 7 -#define R_SH_DIR8W 8 -#define R_SH_DIR8L 9 -#define R_SH_SWITCH16 25 -#define R_SH_SWITCH32 26 -#define R_SH_USES 27 -#define R_SH_COUNT 28 -#define R_SH_ALIGN 29 -#define R_SH_CODE 30 -#define R_SH_DATA 31 -#define R_SH_LABEL 32 -#define R_SH_SWITCH8 33 -#define R_SH_GNU_VTINHERIT 34 -#define R_SH_GNU_VTENTRY 35 -#define R_SH_TLS_GD_32 144 -#define R_SH_TLS_LD_32 145 -#define R_SH_TLS_LDO_32 146 -#define R_SH_TLS_IE_32 147 -#define R_SH_TLS_LE_32 148 -#define R_SH_TLS_DTPMOD32 149 -#define R_SH_TLS_DTPOFF32 150 -#define R_SH_TLS_TPOFF32 151 -#define R_SH_GOT32 160 -#define R_SH_PLT32 161 -#define R_SH_COPY 162 -#define R_SH_GLOB_DAT 163 -#define R_SH_JMP_SLOT 164 -#define R_SH_RELATIVE 165 -#define R_SH_GOTOFF 166 -#define R_SH_GOTPC 167 -#define R_SH_GOT20 201 -#define R_SH_GOTOFF20 202 -#define R_SH_GOTFUNCDESC 203 -#define R_SH_GOTFUNCDEST20 204 -#define R_SH_GOTOFFFUNCDESC 205 -#define R_SH_GOTOFFFUNCDEST20 206 -#define R_SH_FUNCDESC 207 -#define R_SH_FUNCDESC_VALUE 208 - -#define R_SH_NUM 256 - - - -#define R_390_NONE 0 -#define R_390_8 1 -#define R_390_12 2 -#define R_390_16 3 -#define R_390_32 4 -#define R_390_PC32 5 -#define R_390_GOT12 6 -#define R_390_GOT32 7 -#define R_390_PLT32 8 -#define R_390_COPY 9 -#define R_390_GLOB_DAT 10 -#define R_390_JMP_SLOT 11 -#define R_390_RELATIVE 12 -#define R_390_GOTOFF32 13 -#define R_390_GOTPC 14 -#define R_390_GOT16 15 -#define R_390_PC16 16 -#define R_390_PC16DBL 17 -#define R_390_PLT16DBL 18 -#define R_390_PC32DBL 19 -#define R_390_PLT32DBL 20 -#define R_390_GOTPCDBL 21 -#define R_390_64 22 -#define R_390_PC64 23 -#define R_390_GOT64 24 -#define R_390_PLT64 25 -#define R_390_GOTENT 26 -#define R_390_GOTOFF16 27 -#define R_390_GOTOFF64 28 -#define R_390_GOTPLT12 29 -#define R_390_GOTPLT16 30 -#define R_390_GOTPLT32 31 -#define R_390_GOTPLT64 32 -#define R_390_GOTPLTENT 33 -#define R_390_PLTOFF16 34 -#define R_390_PLTOFF32 35 -#define R_390_PLTOFF64 36 -#define R_390_TLS_LOAD 37 -#define R_390_TLS_GDCALL 38 - -#define R_390_TLS_LDCALL 39 - -#define R_390_TLS_GD32 40 - -#define R_390_TLS_GD64 41 - -#define R_390_TLS_GOTIE12 42 - -#define R_390_TLS_GOTIE32 43 - -#define R_390_TLS_GOTIE64 44 - -#define R_390_TLS_LDM32 45 - -#define R_390_TLS_LDM64 46 - -#define R_390_TLS_IE32 47 - -#define R_390_TLS_IE64 48 - -#define R_390_TLS_IEENT 49 - -#define R_390_TLS_LE32 50 - -#define R_390_TLS_LE64 51 - -#define R_390_TLS_LDO32 52 - -#define R_390_TLS_LDO64 53 - -#define R_390_TLS_DTPMOD 54 -#define R_390_TLS_DTPOFF 55 -#define R_390_TLS_TPOFF 56 - -#define R_390_20 57 -#define R_390_GOT20 58 -#define R_390_GOTPLT20 59 -#define R_390_TLS_GOTIE20 60 - - -#define R_390_NUM 61 - - - -#define R_CRIS_NONE 0 -#define R_CRIS_8 1 -#define R_CRIS_16 2 -#define R_CRIS_32 3 -#define R_CRIS_8_PCREL 4 -#define R_CRIS_16_PCREL 5 -#define R_CRIS_32_PCREL 6 -#define R_CRIS_GNU_VTINHERIT 7 -#define R_CRIS_GNU_VTENTRY 8 -#define R_CRIS_COPY 9 -#define R_CRIS_GLOB_DAT 10 -#define R_CRIS_JUMP_SLOT 11 -#define R_CRIS_RELATIVE 12 -#define R_CRIS_16_GOT 13 -#define R_CRIS_32_GOT 14 -#define R_CRIS_16_GOTPLT 15 -#define R_CRIS_32_GOTPLT 16 -#define R_CRIS_32_GOTREL 17 -#define R_CRIS_32_PLT_GOTREL 18 -#define R_CRIS_32_PLT_PCREL 19 - -#define R_CRIS_NUM 20 - - - -#define R_X86_64_NONE 0 -#define R_X86_64_64 1 -#define R_X86_64_PC32 2 -#define R_X86_64_GOT32 3 -#define R_X86_64_PLT32 4 -#define R_X86_64_COPY 5 -#define R_X86_64_GLOB_DAT 6 -#define R_X86_64_JUMP_SLOT 7 -#define R_X86_64_RELATIVE 8 -#define R_X86_64_GOTPCREL 9 - -#define R_X86_64_32 10 -#define R_X86_64_32S 11 -#define R_X86_64_16 12 -#define R_X86_64_PC16 13 -#define R_X86_64_8 14 -#define R_X86_64_PC8 15 -#define R_X86_64_DTPMOD64 16 -#define R_X86_64_DTPOFF64 17 -#define R_X86_64_TPOFF64 18 -#define R_X86_64_TLSGD 19 - -#define R_X86_64_TLSLD 20 - -#define R_X86_64_DTPOFF32 21 -#define R_X86_64_GOTTPOFF 22 - -#define R_X86_64_TPOFF32 23 -#define R_X86_64_PC64 24 -#define R_X86_64_GOTOFF64 25 -#define R_X86_64_GOTPC32 26 -#define R_X86_64_GOT64 27 -#define R_X86_64_GOTPCREL64 28 -#define R_X86_64_GOTPC64 29 -#define R_X86_64_GOTPLT64 30 -#define R_X86_64_PLTOFF64 31 -#define R_X86_64_SIZE32 32 -#define R_X86_64_SIZE64 33 - -#define R_X86_64_GOTPC32_TLSDESC 34 -#define R_X86_64_TLSDESC_CALL 35 - -#define R_X86_64_TLSDESC 36 -#define R_X86_64_IRELATIVE 37 -#define R_X86_64_RELATIVE64 38 -#define R_X86_64_GOTPCRELX 41 -#define R_X86_64_REX_GOTPCRELX 42 -#define R_X86_64_NUM 43 - - - -#define R_MN10300_NONE 0 -#define R_MN10300_32 1 -#define R_MN10300_16 2 -#define R_MN10300_8 3 -#define R_MN10300_PCREL32 4 -#define R_MN10300_PCREL16 5 -#define R_MN10300_PCREL8 6 -#define R_MN10300_GNU_VTINHERIT 7 -#define R_MN10300_GNU_VTENTRY 8 -#define R_MN10300_24 9 -#define R_MN10300_GOTPC32 10 -#define R_MN10300_GOTPC16 11 -#define R_MN10300_GOTOFF32 12 -#define R_MN10300_GOTOFF24 13 -#define R_MN10300_GOTOFF16 14 -#define R_MN10300_PLT32 15 -#define R_MN10300_PLT16 16 -#define R_MN10300_GOT32 17 -#define R_MN10300_GOT24 18 -#define R_MN10300_GOT16 19 -#define R_MN10300_COPY 20 -#define R_MN10300_GLOB_DAT 21 -#define R_MN10300_JMP_SLOT 22 -#define R_MN10300_RELATIVE 23 - -#define R_MN10300_NUM 24 - - - -#define R_M32R_NONE 0 -#define R_M32R_16 1 -#define R_M32R_32 2 -#define R_M32R_24 3 -#define R_M32R_10_PCREL 4 -#define R_M32R_18_PCREL 5 -#define R_M32R_26_PCREL 6 -#define R_M32R_HI16_ULO 7 -#define R_M32R_HI16_SLO 8 -#define R_M32R_LO16 9 -#define R_M32R_SDA16 10 -#define R_M32R_GNU_VTINHERIT 11 -#define R_M32R_GNU_VTENTRY 12 - -#define R_M32R_16_RELA 33 -#define R_M32R_32_RELA 34 -#define R_M32R_24_RELA 35 -#define R_M32R_10_PCREL_RELA 36 -#define R_M32R_18_PCREL_RELA 37 -#define R_M32R_26_PCREL_RELA 38 -#define R_M32R_HI16_ULO_RELA 39 -#define R_M32R_HI16_SLO_RELA 40 -#define R_M32R_LO16_RELA 41 -#define R_M32R_SDA16_RELA 42 -#define R_M32R_RELA_GNU_VTINHERIT 43 -#define R_M32R_RELA_GNU_VTENTRY 44 -#define R_M32R_REL32 45 - -#define R_M32R_GOT24 48 -#define R_M32R_26_PLTREL 49 -#define R_M32R_COPY 50 -#define R_M32R_GLOB_DAT 51 -#define R_M32R_JMP_SLOT 52 -#define R_M32R_RELATIVE 53 -#define R_M32R_GOTOFF 54 -#define R_M32R_GOTPC24 55 -#define R_M32R_GOT16_HI_ULO 56 - -#define R_M32R_GOT16_HI_SLO 57 - -#define R_M32R_GOT16_LO 58 -#define R_M32R_GOTPC_HI_ULO 59 - -#define R_M32R_GOTPC_HI_SLO 60 - -#define R_M32R_GOTPC_LO 61 - -#define R_M32R_GOTOFF_HI_ULO 62 - -#define R_M32R_GOTOFF_HI_SLO 63 - -#define R_M32R_GOTOFF_LO 64 -#define R_M32R_NUM 256 - -#define R_MICROBLAZE_NONE 0 -#define R_MICROBLAZE_32 1 -#define R_MICROBLAZE_32_PCREL 2 -#define R_MICROBLAZE_64_PCREL 3 -#define R_MICROBLAZE_32_PCREL_LO 4 -#define R_MICROBLAZE_64 5 -#define R_MICROBLAZE_32_LO 6 -#define R_MICROBLAZE_SRO32 7 -#define R_MICROBLAZE_SRW32 8 -#define R_MICROBLAZE_64_NONE 9 -#define R_MICROBLAZE_32_SYM_OP_SYM 10 -#define R_MICROBLAZE_GNU_VTINHERIT 11 -#define R_MICROBLAZE_GNU_VTENTRY 12 -#define R_MICROBLAZE_GOTPC_64 13 -#define R_MICROBLAZE_GOT_64 14 -#define R_MICROBLAZE_PLT_64 15 -#define R_MICROBLAZE_REL 16 -#define R_MICROBLAZE_JUMP_SLOT 17 -#define R_MICROBLAZE_GLOB_DAT 18 -#define R_MICROBLAZE_GOTOFF_64 19 -#define R_MICROBLAZE_GOTOFF_32 20 -#define R_MICROBLAZE_COPY 21 -#define R_MICROBLAZE_TLS 22 -#define R_MICROBLAZE_TLSGD 23 -#define R_MICROBLAZE_TLSLD 24 -#define R_MICROBLAZE_TLSDTPMOD32 25 -#define R_MICROBLAZE_TLSDTPREL32 26 -#define R_MICROBLAZE_TLSDTPREL64 27 -#define R_MICROBLAZE_TLSGOTTPREL32 28 -#define R_MICROBLAZE_TLSTPREL32 29 - -#define DT_NIOS2_GP 0x70000002 - -#define R_NIOS2_NONE 0 -#define R_NIOS2_S16 1 -#define R_NIOS2_U16 2 -#define R_NIOS2_PCREL16 3 -#define R_NIOS2_CALL26 4 -#define R_NIOS2_IMM5 5 -#define R_NIOS2_CACHE_OPX 6 -#define R_NIOS2_IMM6 7 -#define R_NIOS2_IMM8 8 -#define R_NIOS2_HI16 9 -#define R_NIOS2_LO16 10 -#define R_NIOS2_HIADJ16 11 -#define R_NIOS2_BFD_RELOC_32 12 -#define R_NIOS2_BFD_RELOC_16 13 -#define R_NIOS2_BFD_RELOC_8 14 -#define R_NIOS2_GPREL 15 -#define R_NIOS2_GNU_VTINHERIT 16 -#define R_NIOS2_GNU_VTENTRY 17 -#define R_NIOS2_UJMP 18 -#define R_NIOS2_CJMP 19 -#define R_NIOS2_CALLR 20 -#define R_NIOS2_ALIGN 21 -#define R_NIOS2_GOT16 22 -#define R_NIOS2_CALL16 23 -#define R_NIOS2_GOTOFF_LO 24 -#define R_NIOS2_GOTOFF_HA 25 -#define R_NIOS2_PCREL_LO 26 -#define R_NIOS2_PCREL_HA 27 -#define R_NIOS2_TLS_GD16 28 -#define R_NIOS2_TLS_LDM16 29 -#define R_NIOS2_TLS_LDO16 30 -#define R_NIOS2_TLS_IE16 31 -#define R_NIOS2_TLS_LE16 32 -#define R_NIOS2_TLS_DTPMOD 33 -#define R_NIOS2_TLS_DTPREL 34 -#define R_NIOS2_TLS_TPREL 35 -#define R_NIOS2_COPY 36 -#define R_NIOS2_GLOB_DAT 37 -#define R_NIOS2_JUMP_SLOT 38 -#define R_NIOS2_RELATIVE 39 -#define R_NIOS2_GOTOFF 40 -#define R_NIOS2_CALL26_NOAT 41 -#define R_NIOS2_GOT_LO 42 -#define R_NIOS2_GOT_HA 43 -#define R_NIOS2_CALL_LO 44 -#define R_NIOS2_CALL_HA 45 - -#define R_OR1K_NONE 0 -#define R_OR1K_32 1 -#define R_OR1K_16 2 -#define R_OR1K_8 3 -#define R_OR1K_LO_16_IN_INSN 4 -#define R_OR1K_HI_16_IN_INSN 5 -#define R_OR1K_INSN_REL_26 6 -#define R_OR1K_GNU_VTENTRY 7 -#define R_OR1K_GNU_VTINHERIT 8 -#define R_OR1K_32_PCREL 9 -#define R_OR1K_16_PCREL 10 -#define R_OR1K_8_PCREL 11 -#define R_OR1K_GOTPC_HI16 12 -#define R_OR1K_GOTPC_LO16 13 -#define R_OR1K_GOT16 14 -#define R_OR1K_PLT26 15 -#define R_OR1K_GOTOFF_HI16 16 -#define R_OR1K_GOTOFF_LO16 17 -#define R_OR1K_COPY 18 -#define R_OR1K_GLOB_DAT 19 -#define R_OR1K_JMP_SLOT 20 -#define R_OR1K_RELATIVE 21 -#define R_OR1K_TLS_GD_HI16 22 -#define R_OR1K_TLS_GD_LO16 23 -#define R_OR1K_TLS_LDM_HI16 24 -#define R_OR1K_TLS_LDM_LO16 25 -#define R_OR1K_TLS_LDO_HI16 26 -#define R_OR1K_TLS_LDO_LO16 27 -#define R_OR1K_TLS_IE_HI16 28 -#define R_OR1K_TLS_IE_LO16 29 -#define R_OR1K_TLS_LE_HI16 30 -#define R_OR1K_TLS_LE_LO16 31 -#define R_OR1K_TLS_TPOFF 32 -#define R_OR1K_TLS_DTPOFF 33 -#define R_OR1K_TLS_DTPMOD 34 - -#define R_BPF_NONE 0 -#define R_BPF_MAP_FD 1 - -#ifdef __cplusplus -} -#endif - - -#endif diff --git a/lib/include/envlock.h b/lib/include/envlock.h deleted file mode 100644 index 799cf7f..0000000 --- a/lib/include/envlock.h +++ /dev/null @@ -1,15 +0,0 @@ -/* envlock.h -- header file for env routines. */ - -#ifndef _INCLUDE_ENVLOCK_H_ -#define _INCLUDE_ENVLOCK_H_ - -#include <_ansi.h> -#include - -#define ENV_LOCK __env_lock(reent_ptr) -#define ENV_UNLOCK __env_unlock(reent_ptr) - -void __env_lock (struct _reent *reent); -void __env_unlock (struct _reent *reent); - -#endif /* _INCLUDE_ENVLOCK_H_ */ diff --git a/lib/include/envz.h b/lib/include/envz.h deleted file mode 100644 index e6a31c3..0000000 --- a/lib/include/envz.h +++ /dev/null @@ -1,16 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include - -/* The newlib implementation of these functions assumes that sizeof(char) == 1. */ -char * envz_entry (const char *envz, size_t envz_len, const char *name); -char * envz_get (const char *envz, size_t envz_len, const char *name); -error_t envz_add (char **envz, size_t *envz_len, const char *name, const char *value); -error_t envz_merge (char **envz, size_t *envz_len, const char *envz2, size_t envz2_len, int override); -void envz_remove(char **envz, size_t *envz_len, const char *name); -void envz_strip (char **envz, size_t *envz_len); diff --git a/lib/include/errno.h b/lib/include/errno.h deleted file mode 100644 index 7cc2ca8..0000000 --- a/lib/include/errno.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef __ERRNO_H__ -#define __ERRNO_H__ - -#ifndef __error_t_defined -typedef int error_t; -#define __error_t_defined 1 -#endif - -#include - -#endif /* !__ERRNO_H__ */ diff --git a/lib/include/fastmath.h b/lib/include/fastmath.h deleted file mode 100644 index 95eea5f..0000000 --- a/lib/include/fastmath.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _FASTMATH_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _FASTMATH_H_ - -#include -#include - -#ifdef __cplusplus -} -#endif -#endif /* _FASTMATH_H_ */ diff --git a/lib/include/fcntl.h b/lib/include/fcntl.h deleted file mode 100644 index 86a9167..0000000 --- a/lib/include/fcntl.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/lib/include/fenv.h b/lib/include/fenv.h deleted file mode 100644 index 4795cc9..0000000 --- a/lib/include/fenv.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2017 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#ifndef _FENV_H -#define _FENV_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Exception */ -int feclearexcept(int excepts); -int fegetexceptflag(fexcept_t *flagp, int excepts); -int feraiseexcept(int excepts); -int fesetexceptflag(const fexcept_t *flagp, int excepts); -int fetestexcept(int excepts); - -/* Rounding mode */ -int fegetround(void); -int fesetround(int rounding_mode); - -/* Float environment */ -int fegetenv(fenv_t *envp); -int feholdexcept(fenv_t *envp); -int fesetenv(const fenv_t *envp); -int feupdateenv(const fenv_t *envp); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/include/fnmatch.h b/lib/include/fnmatch.h deleted file mode 100644 index a94e923..0000000 --- a/lib/include/fnmatch.h +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: src/include/fnmatch.h,v 1.10 2002/03/23 17:24:53 imp Exp $ - * @(#)fnmatch.h 8.1 (Berkeley) 6/2/93 - */ - -#ifndef _FNMATCH_H_ -#define _FNMATCH_H_ - -#include - -#define FNM_NOMATCH 1 /* Match failed. */ - -#define FNM_NOESCAPE 0x01 /* Disable backslash escaping. */ -#define FNM_PATHNAME 0x02 /* Slash must be matched by slash. */ -#define FNM_PERIOD 0x04 /* Period must be matched by period. */ - -#if __GNU_VISIBLE -#define FNM_LEADING_DIR 0x08 /* Ignore / after Imatch. */ -#define FNM_CASEFOLD 0x10 /* Case insensitive search. */ -#define FNM_IGNORECASE FNM_CASEFOLD -#define FNM_FILE_NAME FNM_PATHNAME -#endif - -__BEGIN_DECLS -int fnmatch(const char *, const char *, int); -__END_DECLS - -#endif /* !_FNMATCH_H_ */ diff --git a/lib/include/ftw.h b/lib/include/ftw.h deleted file mode 100644 index 8de1e1e..0000000 --- a/lib/include/ftw.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -* Copyright © 2005-2020 Rich Felker, et al. -* -* Permission is hereby granted, free of charge, to any person obtaining -* a copy of this software and associated documentation files (the -* "Software"), to deal in the Software without restriction, including -* without limitation the rights to use, copy, modify, merge, publish, -* distribute, sublicense, and/or sell copies of the Software, and to -* permit persons to whom the Software is furnished to do so, subject to -* the following conditions: -* -* The above copyright notice and this permission notice shall be -* included in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifndef _FTW_H -#define _FTW_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * Valid flags for the 3rd argument to the function that is passed as the - * second argument to ftw(3) and nftw(3). Say it three times fast! - */ -#define FTW_F 0 /* File. */ -#define FTW_D 1 /* Directory. */ -#define FTW_DNR 2 /* Directory without read permission. */ -#define FTW_DP 3 /* Directory with subdirectories visited. */ -#define FTW_NS 4 /* Unknown type; stat() failed. */ -#define FTW_SL 5 /* Symbolic link. */ -#define FTW_SLN 6 /* Sym link that names a nonexistent file. */ - -/* - * Flags for use as the 4th argument to nftw(3). These may be ORed together. - */ -#define FTW_PHYS 0x01 /* Physical walk, don't follow sym links. */ -#define FTW_MOUNT 0x02 /* The walk does not cross a mount point. */ -#define FTW_DEPTH 0x04 /* Subdirs visited before the dir itself. */ -#define FTW_CHDIR 0x08 /* Change to a directory before reading it. */ - -struct FTW { - int base; - int level; -}; - -int ftw(const char *, int (*)(const char *, const struct stat *, int), int); -int nftw(const char *, int (*)(const char *, const struct stat *, int, struct FTW *), int, int); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/include/getopt.h b/lib/include/getopt.h deleted file mode 100644 index ac88524..0000000 --- a/lib/include/getopt.h +++ /dev/null @@ -1,185 +0,0 @@ -/**************************************************************************** - -getopt.h - Read command line options - -AUTHOR: Gregory Pietsch -CREATED Thu Jan 09 22:37:00 1997 - -DESCRIPTION: - -The getopt() function parses the command line arguments. Its arguments argc -and argv are the argument count and array as passed to the main() function -on program invocation. The argument optstring is a list of available option -characters. If such a character is followed by a colon (`:'), the option -takes an argument, which is placed in optarg. If such a character is -followed by two colons, the option takes an optional argument, which is -placed in optarg. If the option does not take an argument, optarg is NULL. - -The external variable optind is the index of the next array element of argv -to be processed; it communicates from one call to the next which element to -process. - -The getopt_long() function works like getopt() except that it also accepts -long options started by two dashes `--'. If these take values, it is either -in the form - ---arg=value - - or - ---arg value - -It takes the additional arguments longopts which is a pointer to the first -element of an array of type GETOPT_LONG_OPTION_T, defined below. The last -element of the array has to be filled with NULL for the name field. - -The longind pointer points to the index of the current long option relative -to longopts if it is non-NULL. - -The getopt() function returns the option character if the option was found -successfully, `:' if there was a missing parameter for one of the options, -`?' for an unknown option character, and EOF for the end of the option list. - -The getopt_long() function's return value is described below. - -The function getopt_long_only() is identical to getopt_long(), except that a -plus sign `+' can introduce long options as well as `--'. - -Describe how to deal with options that follow non-option ARGV-elements. - -If the caller did not specify anything, the default is REQUIRE_ORDER if the -environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise. - -REQUIRE_ORDER means don't recognize them as options; stop option processing -when the first non-option is seen. This is what Unix does. This mode of -operation is selected by either setting the environment variable -POSIXLY_CORRECT, or using `+' as the first character of the optstring -parameter. - -PERMUTE is the default. We permute the contents of ARGV as we scan, so that -eventually all the non-options are at the end. This allows options to be -given in any order, even with programs that were not written to expect this. - -RETURN_IN_ORDER is an option available to programs that were written to -expect options and other ARGV-elements in any order and that care about the -ordering of the two. We describe each non-option ARGV-element as if it were -the argument of an option with character code 1. Using `-' as the first -character of the optstring parameter selects this mode of operation. - -The special argument `--' forces an end of option-scanning regardless of the -value of `ordering'. In the case of RETURN_IN_ORDER, only `--' can cause -getopt() and friends to return EOF with optind != argc. - -COPYRIGHT NOTICE AND DISCLAIMER: - -Copyright (C) 1997 Gregory Pietsch - -This file and the accompanying getopt.c implementation file are hereby -placed in the public domain without restrictions. Just give the author -credit, don't claim you wrote it or prevent anyone else from using it. - -Gregory Pietsch's current e-mail address: -gpietsch@comcast.net -****************************************************************************/ - -/* This is a glibc-extension header file. */ - -#ifndef GETOPT_H -#define GETOPT_H - -#include <_ansi.h> - -/* include files needed by this include file */ - -#define no_argument 0 -#define required_argument 1 -#define optional_argument 2 - -#ifdef __cplusplus -extern "C" -{ - -#endif /* __cplusplus */ - -/* types defined by this include file */ - struct option - { - const char *name; /* the name of the long option */ - int has_arg; /* one of the above macros */ - int *flag; /* determines if getopt_long() returns a - * value for a long option; if it is - * non-NULL, 0 is returned as a function - * value and the value of val is stored in - * the area pointed to by flag. Otherwise, - * val is returned. */ - int val; /* determines the value to return if flag is - * NULL. */ - - }; - -/* While getopt.h is a glibc extension, the following are newlib extensions. - * They are optionally included via the __need_getopt_newlib flag. */ - -#ifdef __need_getopt_newlib - - /* macros defined by this include file */ - #define NO_ARG no_argument - #define REQUIRED_ARG required_argument - #define OPTIONAL_ARG optional_argument - - /* The GETOPT_DATA_INITIALIZER macro is used to initialize a statically- - allocated variable of type struct getopt_data. */ - #define GETOPT_DATA_INITIALIZER {0,0,0,0,0,0,0} - - /* These #defines are to make accessing the reentrant functions easier. */ - #define getopt_r __getopt_r - #define getopt_long_r __getopt_long_r - #define getopt_long_only_r __getopt_long_only_r - - /* The getopt_data structure is for reentrancy. Its members are similar to - the externally-defined variables. */ - typedef struct getopt_data - { - char *optarg; - int optind, opterr, optopt, optwhere; - int permute_from, num_nonopts; - } getopt_data; - -#endif /* __need_getopt_newlib */ - - /* externally-defined variables */ - extern char *optarg; - extern int optind; - extern int opterr; - extern int optopt; - - /* function prototypes */ - int getopt (int __argc, char *const __argv[], const char *__optstring); - - int getopt_long (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind); - - int getopt_long_only (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind); - -#ifdef __need_getopt_newlib - int __getopt_r (int __argc, char *const __argv[], const char *__optstring, - struct getopt_data * __data); - - int __getopt_long_r (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind, - struct getopt_data * __data); - - int __getopt_long_only_r (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind, - struct getopt_data * __data); -#endif /* __need_getopt_newlib */ - -#ifdef __cplusplus -}; - -#endif /* __cplusplus */ - -#endif /* GETOPT_H */ - -/* END OF FILE getopt.h */ diff --git a/lib/include/glob.h b/lib/include/glob.h deleted file mode 100644 index 7a300e6..0000000 --- a/lib/include/glob.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Guido van Rossum. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)glob.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/include/glob.h,v 1.6 2002/03/23 17:24:53 imp Exp $ - */ - -#ifndef _GLOB_H_ -#define _GLOB_H_ - -#include - -struct stat; -typedef struct { - int gl_pathc; /* Count of total paths so far. */ - int gl_matchc; /* Count of paths matching pattern. */ - int gl_offs; /* Reserved at beginning of gl_pathv. */ - int gl_flags; /* Copy of flags parameter to glob. */ - char **gl_pathv; /* List of paths matching pattern. */ - /* Copy of errfunc parameter to glob. */ - int (*gl_errfunc)(const char *, int); - - /* - * Alternate filesystem access methods for glob; replacement - * versions of closedir(3), readdir(3), opendir(3), stat(2) - * and lstat(2). - */ - void (*gl_closedir)(void *); - struct dirent *(*gl_readdir)(void *); - void *(*gl_opendir)(const char *); - int (*gl_lstat)(const char *, struct stat *); - int (*gl_stat)(const char *, struct stat *); -} glob_t; - -#define GLOB_APPEND 0x0001 /* Append to output from previous call. */ -#define GLOB_DOOFFS 0x0002 /* Use gl_offs. */ -#define GLOB_ERR 0x0004 /* Return on error. */ -#define GLOB_MARK 0x0008 /* Append / to matching directories. */ -#define GLOB_NOCHECK 0x0010 /* Return pattern itself if nothing matches. */ -#define GLOB_NOSORT 0x0020 /* Don't sort. */ - -#define GLOB_ALTDIRFUNC 0x0040 /* Use alternately specified directory funcs. */ -#define GLOB_BRACE 0x0080 /* Expand braces ala csh. */ -#define GLOB_MAGCHAR 0x0100 /* Pattern had globbing characters. */ -#define GLOB_NOMAGIC 0x0200 /* GLOB_NOCHECK without magic chars (csh). */ -#define GLOB_QUOTE 0x0400 /* Quote special chars with \. */ -#define GLOB_TILDE 0x0800 /* Expand tilde names from the passwd file. */ -#define GLOB_LIMIT 0x1000 /* limit number of returned paths */ - -/* backwards compatibility, this is the old name for this option */ -#define GLOB_MAXPATH GLOB_LIMIT - -#define GLOB_NOSPACE (-1) /* Malloc call failed. */ -#define GLOB_ABEND (-2) /* Unignored error. */ - -__BEGIN_DECLS -int glob(const char *__restrict, int, int (*)(const char *, int), - glob_t *__restrict); -void globfree(glob_t *); -__END_DECLS - -#endif /* !_GLOB_H_ */ diff --git a/lib/include/grp.h b/lib/include/grp.h deleted file mode 100644 index 7296e7a..0000000 --- a/lib/include/grp.h +++ /dev/null @@ -1,86 +0,0 @@ -/* $NetBSD: grp.h,v 1.7 1995/04/29 05:30:40 cgd Exp $ */ - -/*- - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)grp.h 8.2 (Berkeley) 1/21/94 - */ - -#ifndef _GRP_H_ -#define _GRP_H_ - -#include -#include -#ifdef __CYGWIN__ -#include -#endif - -#if __BSD_VISIBLE -#define _PATH_GROUP "/etc/group" -#endif - -struct group { - char *gr_name; /* group name */ - char *gr_passwd; /* group password */ - gid_t gr_gid; /* group id */ - char **gr_mem; /* group members */ -}; - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef __INSIDE_CYGWIN__ -struct group *getgrgid (gid_t); -struct group *getgrnam (const char *); -#if __MISC_VISIBLE || __POSIX_VISIBLE -int getgrnam_r (const char *, struct group *, - char *, size_t, struct group **); -int getgrgid_r (gid_t, struct group *, - char *, size_t, struct group **); -#endif /* __MISC_VISIBLE || __POSIX_VISIBLE */ -#if __MISC_VISIBLE || __XSI_VISIBLE >= 4 -struct group *getgrent (void); -void setgrent (void); -void endgrent (void); -#endif /* __MISC_VISIBLE || __XSI_VISIBLE >= 4 */ -#if __BSD_VISIBLE -int initgroups (const char *, gid_t); -#endif /* __BSD_VISIBLE */ -#endif /* !__INSIDE_CYGWIN__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* !_GRP_H_ */ diff --git a/lib/include/iconv.h b/lib/include/iconv.h deleted file mode 100644 index 37feb88..0000000 --- a/lib/include/iconv.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy, SoftMine Corporation. - * Rights transferred to Franklin Electronic Publishers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#ifndef _ICONV_H_ -#define _ICONV_H_ - -#include <_ansi.h> -#include -#include -#include - -/* iconv_t: charset conversion descriptor type */ -typedef _iconv_t iconv_t; - -_BEGIN_STD_C - -#ifndef _REENT_ONLY -iconv_t -iconv_open (const char *, const char *); - -size_t -iconv (iconv_t, char **__restrict, size_t *__restrict, - char **__restrict, size_t *__restrict); - -int -iconv_close (iconv_t); -#endif - -iconv_t -_iconv_open_r (struct _reent *, const char *, const char *); - -size_t -_iconv_r (struct _reent *, iconv_t, const char **, - size_t *, char **, size_t *); - -int -_iconv_close_r (struct _reent *, iconv_t); - -_END_STD_C - -#endif /* #ifndef _ICONV_H_ */ diff --git a/lib/include/ieeefp.h b/lib/include/ieeefp.h deleted file mode 100644 index 2d6421a..0000000 --- a/lib/include/ieeefp.h +++ /dev/null @@ -1,295 +0,0 @@ -#ifndef _IEEE_FP_H_ -#define _IEEE_FP_H_ - -#include "_ansi.h" - -#include -#include - -_BEGIN_STD_C - -/* FIXME FIXME FIXME: - Neither of __ieee_{float,double}_shape_type seem to be used anywhere - except in libm/test. If that is the case, please delete these from here. - If that is not the case, please insert documentation here describing why - they're needed. */ - -#ifdef __IEEE_BIG_ENDIAN - -typedef union -{ - double value; - struct - { - unsigned int sign : 1; - unsigned int exponent: 11; - unsigned int fraction0:4; - unsigned int fraction1:16; - unsigned int fraction2:16; - unsigned int fraction3:16; - - } number; - struct - { - unsigned int sign : 1; - unsigned int exponent: 11; - unsigned int quiet:1; - unsigned int function0:3; - unsigned int function1:16; - unsigned int function2:16; - unsigned int function3:16; - } nan; - struct - { - unsigned long msw; - unsigned long lsw; - } parts; - long aslong[2]; -} __ieee_double_shape_type; - -#elif defined __IEEE_LITTLE_ENDIAN - -typedef union -{ - double value; - struct - { -#ifdef __SMALL_BITFIELDS - unsigned int fraction3:16; - unsigned int fraction2:16; - unsigned int fraction1:16; - unsigned int fraction0: 4; -#else - unsigned int fraction1:32; - unsigned int fraction0:20; -#endif - unsigned int exponent :11; - unsigned int sign : 1; - } number; - struct - { -#ifdef __SMALL_BITFIELDS - unsigned int function3:16; - unsigned int function2:16; - unsigned int function1:16; - unsigned int function0:3; -#else - unsigned int function1:32; - unsigned int function0:19; -#endif - unsigned int quiet:1; - unsigned int exponent: 11; - unsigned int sign : 1; - } nan; - struct - { - unsigned long lsw; - unsigned long msw; - } parts; - - long aslong[2]; - -} __ieee_double_shape_type; - -#endif /* __IEEE_LITTLE_ENDIAN */ - -#ifdef __IEEE_BIG_ENDIAN - -typedef union -{ - float value; - struct - { - unsigned int sign : 1; - unsigned int exponent: 8; - unsigned int fraction0: 7; - unsigned int fraction1: 16; - } number; - struct - { - unsigned int sign:1; - unsigned int exponent:8; - unsigned int quiet:1; - unsigned int function0:6; - unsigned int function1:16; - } nan; - long p1; - -} __ieee_float_shape_type; - -#elif defined __IEEE_LITTLE_ENDIAN - -typedef union -{ - float value; - struct - { - unsigned int fraction0: 7; - unsigned int fraction1: 16; - unsigned int exponent: 8; - unsigned int sign : 1; - } number; - struct - { - unsigned int function1:16; - unsigned int function0:6; - unsigned int quiet:1; - unsigned int exponent:8; - unsigned int sign:1; - } nan; - long p1; - -} __ieee_float_shape_type; - -#endif /* __IEEE_LITTLE_ENDIAN */ - -#ifndef _LDBL_EQ_DBL - -#ifndef LDBL_MANT_DIG -#error "LDBL_MANT_DIG not defined - should be found in float.h" - -#elif LDBL_MANT_DIG == DBL_MANT_DIG -#error "double and long double are the same size but LDBL_EQ_DBL is not defined" - -#elif LDBL_MANT_DIG == 53 -/* This happens when doubles are 32-bits and long doubles are 64-bits. */ -#define EXT_EXPBITS 11 -#define EXT_FRACHBITS 20 -#define EXT_FRACLBITS 32 -#define __ieee_ext_field_type unsigned long - -#elif LDBL_MANT_DIG == 64 -#define EXT_EXPBITS 15 -#define EXT_FRACHBITS 32 -#define EXT_FRACLBITS 32 -#define __ieee_ext_field_type unsigned int - -#elif LDBL_MANT_DIG == 65 -#define EXT_EXPBITS 15 -#define EXT_FRACHBITS 32 -#define EXT_FRACLBITS 32 -#define __ieee_ext_field_type unsigned int - -#elif LDBL_MANT_DIG == 112 -#define EXT_EXPBITS 15 -#define EXT_FRACHBITS 48 -#define EXT_FRACLBITS 64 -#define __ieee_ext_field_type unsigned long long - -#elif LDBL_MANT_DIG == 113 -#define EXT_EXPBITS 15 -#define EXT_FRACHBITS 48 -#define EXT_FRACLBITS 64 -#define __ieee_ext_field_type unsigned long long - -#else -#error Unsupported value for LDBL_MANT_DIG -#endif - -#define EXT_EXP_INFNAN ((1 << EXT_EXPBITS) - 1) /* 32767 */ -#define EXT_EXP_BIAS ((1 << (EXT_EXPBITS - 1)) - 1) /* 16383 */ -#define EXT_FRACBITS (EXT_FRACLBITS + EXT_FRACHBITS) - -typedef struct ieee_ext -{ - __ieee_ext_field_type ext_fracl : EXT_FRACLBITS; - __ieee_ext_field_type ext_frach : EXT_FRACHBITS; - __ieee_ext_field_type ext_exp : EXT_EXPBITS; - __ieee_ext_field_type ext_sign : 1; -} ieee_ext; - -typedef union ieee_ext_u -{ - long double extu_ld; - struct ieee_ext extu_ext; -} ieee_ext_u; - -#endif /* ! _LDBL_EQ_DBL */ - - -/* FLOATING ROUNDING */ - -typedef int fp_rnd; -#define FP_RN 0 /* Round to nearest */ -#define FP_RM 1 /* Round down */ -#define FP_RP 2 /* Round up */ -#define FP_RZ 3 /* Round to zero (trunate) */ - -fp_rnd fpgetround (void); -fp_rnd fpsetround (fp_rnd); - -/* EXCEPTIONS */ - -typedef int fp_except; -#define FP_X_INV 0x10 /* Invalid operation */ -#define FP_X_DX 0x80 /* Divide by zero */ -#define FP_X_OFL 0x04 /* Overflow exception */ -#define FP_X_UFL 0x02 /* Underflow exception */ -#define FP_X_IMP 0x01 /* imprecise exception */ - -fp_except fpgetmask (void); -fp_except fpsetmask (fp_except); -fp_except fpgetsticky (void); -fp_except fpsetsticky (fp_except); - -/* INTEGER ROUNDING */ - -typedef int fp_rdi; -#define FP_RDI_TOZ 0 /* Round to Zero */ -#define FP_RDI_RD 1 /* Follow float mode */ - -fp_rdi fpgetroundtoi (void); -fp_rdi fpsetroundtoi (fp_rdi); - -#define __IEEE_DBL_EXPBIAS 1023 -#define __IEEE_FLT_EXPBIAS 127 - -#define __IEEE_DBL_EXPLEN 11 -#define __IEEE_FLT_EXPLEN 8 - - -#define __IEEE_DBL_FRACLEN (64 - (__IEEE_DBL_EXPLEN + 1)) -#define __IEEE_FLT_FRACLEN (32 - (__IEEE_FLT_EXPLEN + 1)) - -#define __IEEE_DBL_MAXPOWTWO ((double)(1L << 32 - 2) * (1L << (32-11) - 32 + 1)) -#define __IEEE_FLT_MAXPOWTWO ((float)(1L << (32-8) - 1)) - -#define __IEEE_DBL_NAN_EXP 0x7ff -#define __IEEE_FLT_NAN_EXP 0xff - -#ifdef __ieeefp_isnanf -#define isnanf(x) __ieeefp_isnanf(x) -#endif - -#ifdef __ieeefp_isinff -#define isinff(x) __ieeefp_isinff(x) -#endif - -#ifdef __ieeefp_finitef -#define finitef(x) __ieeefp_finitef(x) -#endif - -#ifdef _DOUBLE_IS_32BITS -#undef __IEEE_DBL_EXPBIAS -#define __IEEE_DBL_EXPBIAS __IEEE_FLT_EXPBIAS - -#undef __IEEE_DBL_EXPLEN -#define __IEEE_DBL_EXPLEN __IEEE_FLT_EXPLEN - -#undef __IEEE_DBL_FRACLEN -#define __IEEE_DBL_FRACLEN __IEEE_FLT_FRACLEN - -#undef __IEEE_DBL_MAXPOWTWO -#define __IEEE_DBL_MAXPOWTWO __IEEE_FLT_MAXPOWTWO - -#undef __IEEE_DBL_NAN_EXP -#define __IEEE_DBL_NAN_EXP __IEEE_FLT_NAN_EXP - -#undef __ieee_double_shape_type -#define __ieee_double_shape_type __ieee_float_shape_type - -#endif /* _DOUBLE_IS_32BITS */ - -_END_STD_C - -#endif /* _IEEE_FP_H_ */ diff --git a/lib/include/inttypes.h b/lib/include/inttypes.h deleted file mode 100644 index 417ff22..0000000 --- a/lib/include/inttypes.h +++ /dev/null @@ -1,345 +0,0 @@ -/* - * Copyright (c) 2004, 2005 by - * Ralf Corsepius, Ulm/Germany. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -/** - * @file inttypes.h - */ - -#ifndef _INTTYPES_H -#define _INTTYPES_H - -#include -#include -#include -#include "_ansi.h" -#include -#define __need_wchar_t -#include - -#if __BSD_VISIBLE -#include -#endif - -#define __STRINGIFY(a) #a - -/* 8-bit types */ -#define __PRI8(x) __INT8 __STRINGIFY(x) -#define __PRI8LEAST(x) __LEAST8 __STRINGIFY(x) -#define __PRI8FAST(x) __FAST8 __STRINGIFY(x) - -/* NOTICE: scanning 8-bit types requires use of the hh specifier - * which is only supported on newlib platforms that - * are built with C99 I/O format support enabled. If the flag in - * newlib.h hasn't been set during configuration to indicate this, the 8-bit - * scanning format macros are disabled here as they result in undefined - * behaviour which can include memory overwrite. Overriding the flag after the - * library has been built is not recommended as it will expose the underlying - * undefined behaviour. - */ - -#if defined(_WANT_IO_C99_FORMATS) - #define __SCN8(x) __INT8 __STRINGIFY(x) - #define __SCN8LEAST(x) __LEAST8 __STRINGIFY(x) - #define __SCN8FAST(x) __FAST8 __STRINGIFY(x) -#endif /* _WANT_IO_C99_FORMATS */ - - -#define PRId8 __PRI8(d) -#define PRIi8 __PRI8(i) -#define PRIo8 __PRI8(o) -#define PRIu8 __PRI8(u) -#define PRIx8 __PRI8(x) -#define PRIX8 __PRI8(X) - -/* Macros below are only enabled for a newlib built with C99 I/O format support. */ -#if defined(_WANT_IO_C99_FORMATS) - -#define SCNd8 __SCN8(d) -#define SCNi8 __SCN8(i) -#define SCNo8 __SCN8(o) -#define SCNu8 __SCN8(u) -#define SCNx8 __SCN8(x) - -#endif /* _WANT_IO_C99_FORMATS */ - - -#define PRIdLEAST8 __PRI8LEAST(d) -#define PRIiLEAST8 __PRI8LEAST(i) -#define PRIoLEAST8 __PRI8LEAST(o) -#define PRIuLEAST8 __PRI8LEAST(u) -#define PRIxLEAST8 __PRI8LEAST(x) -#define PRIXLEAST8 __PRI8LEAST(X) - -/* Macros below are only enabled for a newlib built with C99 I/O format support. */ -#if defined(_WANT_IO_C99_FORMATS) - - #define SCNdLEAST8 __SCN8LEAST(d) - #define SCNiLEAST8 __SCN8LEAST(i) - #define SCNoLEAST8 __SCN8LEAST(o) - #define SCNuLEAST8 __SCN8LEAST(u) - #define SCNxLEAST8 __SCN8LEAST(x) - -#endif /* _WANT_IO_C99_FORMATS */ - -#define PRIdFAST8 __PRI8FAST(d) -#define PRIiFAST8 __PRI8FAST(i) -#define PRIoFAST8 __PRI8FAST(o) -#define PRIuFAST8 __PRI8FAST(u) -#define PRIxFAST8 __PRI8FAST(x) -#define PRIXFAST8 __PRI8FAST(X) - -/* Macros below are only enabled for a newlib built with C99 I/O format support. */ -#if defined(_WANT_IO_C99_FORMATS) - - #define SCNdFAST8 __SCN8FAST(d) - #define SCNiFAST8 __SCN8FAST(i) - #define SCNoFAST8 __SCN8FAST(o) - #define SCNuFAST8 __SCN8FAST(u) - #define SCNxFAST8 __SCN8FAST(x) - -#endif /* _WANT_IO_C99_FORMATS */ - -/* 16-bit types */ -#define __PRI16(x) __INT16 __STRINGIFY(x) -#define __PRI16LEAST(x) __LEAST16 __STRINGIFY(x) -#define __PRI16FAST(x) __FAST16 __STRINGIFY(x) -#define __SCN16(x) __INT16 __STRINGIFY(x) -#define __SCN16LEAST(x) __LEAST16 __STRINGIFY(x) -#define __SCN16FAST(x) __FAST16 __STRINGIFY(x) - - -#define PRId16 __PRI16(d) -#define PRIi16 __PRI16(i) -#define PRIo16 __PRI16(o) -#define PRIu16 __PRI16(u) -#define PRIx16 __PRI16(x) -#define PRIX16 __PRI16(X) - -#define SCNd16 __SCN16(d) -#define SCNi16 __SCN16(i) -#define SCNo16 __SCN16(o) -#define SCNu16 __SCN16(u) -#define SCNx16 __SCN16(x) - - -#define PRIdLEAST16 __PRI16LEAST(d) -#define PRIiLEAST16 __PRI16LEAST(i) -#define PRIoLEAST16 __PRI16LEAST(o) -#define PRIuLEAST16 __PRI16LEAST(u) -#define PRIxLEAST16 __PRI16LEAST(x) -#define PRIXLEAST16 __PRI16LEAST(X) - -#define SCNdLEAST16 __SCN16LEAST(d) -#define SCNiLEAST16 __SCN16LEAST(i) -#define SCNoLEAST16 __SCN16LEAST(o) -#define SCNuLEAST16 __SCN16LEAST(u) -#define SCNxLEAST16 __SCN16LEAST(x) - - -#define PRIdFAST16 __PRI16FAST(d) -#define PRIiFAST16 __PRI16FAST(i) -#define PRIoFAST16 __PRI16FAST(o) -#define PRIuFAST16 __PRI16FAST(u) -#define PRIxFAST16 __PRI16FAST(x) -#define PRIXFAST16 __PRI16FAST(X) - -#define SCNdFAST16 __SCN16FAST(d) -#define SCNiFAST16 __SCN16FAST(i) -#define SCNoFAST16 __SCN16FAST(o) -#define SCNuFAST16 __SCN16FAST(u) -#define SCNxFAST16 __SCN16FAST(x) - -/* 32-bit types */ -#define __PRI32(x) __INT32 __STRINGIFY(x) -#define __SCN32(x) __INT32 __STRINGIFY(x) -#define __PRI32LEAST(x) __LEAST32 __STRINGIFY(x) -#define __SCN32LEAST(x) __LEAST32 __STRINGIFY(x) -#define __PRI32FAST(x) __FAST32 __STRINGIFY(x) -#define __SCN32FAST(x) __FAST32 __STRINGIFY(x) - -#define PRId32 __PRI32(d) -#define PRIi32 __PRI32(i) -#define PRIo32 __PRI32(o) -#define PRIu32 __PRI32(u) -#define PRIx32 __PRI32(x) -#define PRIX32 __PRI32(X) - -#define SCNd32 __SCN32(d) -#define SCNi32 __SCN32(i) -#define SCNo32 __SCN32(o) -#define SCNu32 __SCN32(u) -#define SCNx32 __SCN32(x) - - -#define PRIdLEAST32 __PRI32LEAST(d) -#define PRIiLEAST32 __PRI32LEAST(i) -#define PRIoLEAST32 __PRI32LEAST(o) -#define PRIuLEAST32 __PRI32LEAST(u) -#define PRIxLEAST32 __PRI32LEAST(x) -#define PRIXLEAST32 __PRI32LEAST(X) - -#define SCNdLEAST32 __SCN32LEAST(d) -#define SCNiLEAST32 __SCN32LEAST(i) -#define SCNoLEAST32 __SCN32LEAST(o) -#define SCNuLEAST32 __SCN32LEAST(u) -#define SCNxLEAST32 __SCN32LEAST(x) - - -#define PRIdFAST32 __PRI32FAST(d) -#define PRIiFAST32 __PRI32FAST(i) -#define PRIoFAST32 __PRI32FAST(o) -#define PRIuFAST32 __PRI32FAST(u) -#define PRIxFAST32 __PRI32FAST(x) -#define PRIXFAST32 __PRI32FAST(X) - -#define SCNdFAST32 __SCN32FAST(d) -#define SCNiFAST32 __SCN32FAST(i) -#define SCNoFAST32 __SCN32FAST(o) -#define SCNuFAST32 __SCN32FAST(u) -#define SCNxFAST32 __SCN32FAST(x) - - -/* 64-bit types */ -#define __PRI64(x) __INT64 __STRINGIFY(x) -#define __SCN64(x) __INT64 __STRINGIFY(x) - -#define __PRI64LEAST(x) __LEAST64 __STRINGIFY(x) -#define __SCN64LEAST(x) __LEAST64 __STRINGIFY(x) -#define __PRI64FAST(x) __FAST64 __STRINGIFY(x) -#define __SCN64FAST(x) __FAST64 __STRINGIFY(x) - -#if __int64_t_defined -#define PRId64 __PRI64(d) -#define PRIi64 __PRI64(i) -#define PRIo64 __PRI64(o) -#define PRIu64 __PRI64(u) -#define PRIx64 __PRI64(x) -#define PRIX64 __PRI64(X) - -#define SCNd64 __SCN64(d) -#define SCNi64 __SCN64(i) -#define SCNo64 __SCN64(o) -#define SCNu64 __SCN64(u) -#define SCNx64 __SCN64(x) -#endif - -#if __int_least64_t_defined -#define PRIdLEAST64 __PRI64LEAST(d) -#define PRIiLEAST64 __PRI64LEAST(i) -#define PRIoLEAST64 __PRI64LEAST(o) -#define PRIuLEAST64 __PRI64LEAST(u) -#define PRIxLEAST64 __PRI64LEAST(x) -#define PRIXLEAST64 __PRI64LEAST(X) - -#define SCNdLEAST64 __SCN64LEAST(d) -#define SCNiLEAST64 __SCN64LEAST(i) -#define SCNoLEAST64 __SCN64LEAST(o) -#define SCNuLEAST64 __SCN64LEAST(u) -#define SCNxLEAST64 __SCN64LEAST(x) -#endif - -#if __int_fast64_t_defined -#define PRIdFAST64 __PRI64FAST(d) -#define PRIiFAST64 __PRI64FAST(i) -#define PRIoFAST64 __PRI64FAST(o) -#define PRIuFAST64 __PRI64FAST(u) -#define PRIxFAST64 __PRI64FAST(x) -#define PRIXFAST64 __PRI64FAST(X) - -#define SCNdFAST64 __SCN64FAST(d) -#define SCNiFAST64 __SCN64FAST(i) -#define SCNoFAST64 __SCN64FAST(o) -#define SCNuFAST64 __SCN64FAST(u) -#define SCNxFAST64 __SCN64FAST(x) -#endif - -/* max-bit types */ -#if __have_long64 -#define __PRIMAX(x) __STRINGIFY(l##x) -#define __SCNMAX(x) __STRINGIFY(l##x) -#elif __have_longlong64 -#define __PRIMAX(x) __STRINGIFY(ll##x) -#define __SCNMAX(x) __STRINGIFY(ll##x) -#else -#define __PRIMAX(x) __STRINGIFY(x) -#define __SCNMAX(x) __STRINGIFY(x) -#endif - -#define PRIdMAX __PRIMAX(d) -#define PRIiMAX __PRIMAX(i) -#define PRIoMAX __PRIMAX(o) -#define PRIuMAX __PRIMAX(u) -#define PRIxMAX __PRIMAX(x) -#define PRIXMAX __PRIMAX(X) - -#define SCNdMAX __SCNMAX(d) -#define SCNiMAX __SCNMAX(i) -#define SCNoMAX __SCNMAX(o) -#define SCNuMAX __SCNMAX(u) -#define SCNxMAX __SCNMAX(x) - -/* ptr types */ -#if defined (_INTPTR_EQ_LONGLONG) -# define __PRIPTR(x) __STRINGIFY(ll##x) -# define __SCNPTR(x) __STRINGIFY(ll##x) -#elif defined (_INTPTR_EQ_LONG) -# define __PRIPTR(x) __STRINGIFY(l##x) -# define __SCNPTR(x) __STRINGIFY(l##x) -#else -# define __PRIPTR(x) __STRINGIFY(x) -# define __SCNPTR(x) __STRINGIFY(x) -#endif - -#define PRIdPTR __PRIPTR(d) -#define PRIiPTR __PRIPTR(i) -#define PRIoPTR __PRIPTR(o) -#define PRIuPTR __PRIPTR(u) -#define PRIxPTR __PRIPTR(x) -#define PRIXPTR __PRIPTR(X) - -#define SCNdPTR __SCNPTR(d) -#define SCNiPTR __SCNPTR(i) -#define SCNoPTR __SCNPTR(o) -#define SCNuPTR __SCNPTR(u) -#define SCNxPTR __SCNPTR(x) - - -typedef struct { - intmax_t quot; - intmax_t rem; -} imaxdiv_t; - -struct _reent; - -#ifdef __cplusplus -extern "C" { -#endif - -extern intmax_t imaxabs(intmax_t); -extern imaxdiv_t imaxdiv(intmax_t __numer, intmax_t __denomer); -extern intmax_t strtoimax(const char *__restrict, char **__restrict, int); -extern intmax_t _strtoimax_r(struct _reent *, const char *__restrict, char **__restrict, int); -extern uintmax_t strtoumax(const char *__restrict, char **__restrict, int); -extern uintmax_t _strtoumax_r(struct _reent *, const char *__restrict, char **__restrict, int); -extern intmax_t wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int); -extern intmax_t _wcstoimax_r(struct _reent *, const wchar_t *__restrict, wchar_t **__restrict, int); -extern uintmax_t wcstoumax(const wchar_t *__restrict, wchar_t **__restrict, int); -extern uintmax_t _wcstoumax_r(struct _reent *, const wchar_t *__restrict, wchar_t **__restrict, int); - -#if __BSD_VISIBLE -extern intmax_t strtoimax_l(const char *__restrict, char **_restrict, int, locale_t); -extern uintmax_t strtoumax_l(const char *__restrict, char **_restrict, int, locale_t); -extern intmax_t wcstoimax_l(const wchar_t *__restrict, wchar_t **_restrict, int, locale_t); -extern uintmax_t wcstoumax_l(const wchar_t *__restrict, wchar_t **_restrict, int, locale_t); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/include/langinfo.h b/lib/include/langinfo.h deleted file mode 100644 index fcf986c..0000000 --- a/lib/include/langinfo.h +++ /dev/null @@ -1,332 +0,0 @@ -/*- - * Copyright (c) 2001 Alexey Zelkin - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: src/include/langinfo.h,v 1.5 2002/03/23 17:24:53 imp Exp $ - */ - -#ifndef _LANGINFO_H_ -#define _LANGINFO_H_ - -#include -#include -#if __POSIX_VISIBLE >= 200809 -#include -#endif - -#ifndef _NL_ITEM_DECLARED -typedef __nl_item nl_item; -#define _NL_ITEM_DECLARED -#endif - -enum -{ - /* POSIX and BSD defined items have to stick to the original values - to maintain backward compatibility. */ - _NL_CTYPE_CODESET_NAME = 0, /* codeset name */ -#define CODESET _NL_CTYPE_CODESET_NAME - D_T_FMT, /* string for formatting date and time */ -#define D_T_FMT D_T_FMT - D_FMT, /* date format string */ -#define D_FMT D_FMT - T_FMT, /* time format string */ -#define T_FMT T_FMT - T_FMT_AMPM, /* a.m. or p.m. time formatting string */ -#define T_FMT_AMPM T_FMT_AMPM - AM_STR, /* Ante Meridian affix */ -#define AM_STR AM_STR - PM_STR, /* Post Meridian affix */ -#define PM_STR PM_STR - -/* week day names */ - DAY_1, -#define DAY_1 DAY_1 - DAY_2, -#define DAY_2 DAY_2 - DAY_3, -#define DAY_3 DAY_3 - DAY_4, -#define DAY_4 DAY_4 - DAY_5, -#define DAY_5 DAY_5 - DAY_6, -#define DAY_6 DAY_6 - DAY_7, -#define DAY_7 DAY_7 - -/* abbreviated week day names */ - ABDAY_1, -#define ABDAY_1 ABDAY_1 - ABDAY_2, -#define ABDAY_2 ABDAY_2 - ABDAY_3, -#define ABDAY_3 ABDAY_3 - ABDAY_4, -#define ABDAY_4 ABDAY_4 - ABDAY_5, -#define ABDAY_5 ABDAY_5 - ABDAY_6, -#define ABDAY_6 ABDAY_6 - ABDAY_7, -#define ABDAY_7 ABDAY_7 - -/* month names */ - MON_1, -#define MON_1 MON_1 - MON_2, -#define MON_2 MON_2 - MON_3, -#define MON_3 MON_3 - MON_4, -#define MON_4 MON_4 - MON_5, -#define MON_5 MON_5 - MON_6, -#define MON_6 MON_6 - MON_7, -#define MON_7 MON_7 - MON_8, -#define MON_8 MON_8 - MON_9, -#define MON_9 MON_9 - MON_10, -#define MON_10 MON_10 - MON_11, -#define MON_11 MON_11 - MON_12, -#define MON_12 MON_12 - -/* abbreviated month names */ - ABMON_1, -#define ABMON_1 ABMON_1 - ABMON_2, -#define ABMON_2 ABMON_2 - ABMON_3, -#define ABMON_3 ABMON_3 - ABMON_4, -#define ABMON_4 ABMON_4 - ABMON_5, -#define ABMON_5 ABMON_5 - ABMON_6, -#define ABMON_6 ABMON_6 - ABMON_7, -#define ABMON_7 ABMON_7 - ABMON_8, -#define ABMON_8 ABMON_8 - ABMON_9, -#define ABMON_9 ABMON_9 - ABMON_10, -#define ABMON_10 ABMON_10 - ABMON_11, -#define ABMON_11 ABMON_11 - ABMON_12, -#define ABMON_12 ABMON_12 - - ERA, /* era description segments */ -#define ERA ERA - ERA_D_FMT, /* era date format string */ -#define ERA_D_FMT ERA_D_FMT - ERA_D_T_FMT, /* era date and time format string */ -#define ERA_D_T_FMT ERA_D_T_FMT - ERA_T_FMT, /* era time format string */ -#define ERA_T_FMT ERA_T_FMT - ALT_DIGITS, /* alternative symbols for digits */ -#define ALT_DIGITS ALT_DIGITS - - RADIXCHAR, /* radix char */ -#define RADIXCHAR RADIXCHAR - THOUSEP, /* separator for thousands */ -#define THOUSEP THOUSEP - - YESEXPR, /* affirmative response expression */ -#define YESEXPR YESEXPR - NOEXPR, /* negative response expression */ -#define NOEXPR NOEXPR - YESSTR, /* affirmative response for yes/no queries */ -#define YESSTR YESSTR - NOSTR, /* negative response for yes/no queries */ -#define NOSTR NOSTR - - CRNCYSTR, /* currency symbol */ -#define CRNCYSTR CRNCYSTR - - D_MD_ORDER, /* month/day order (BSD extension) */ -#define D_MD_ORDER D_MD_ORDER - - _NL_TIME_DATE_FMT = 84, /* date fmt used by date(1) (GNU extension) */ -#define _DATE_FMT _NL_TIME_DATE_FMT - -#ifdef __HAVE_LOCALE_INFO__ - _NL_CTYPE_MB_CUR_MAX, - _NL_MESSAGES_CODESET, - -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - - /* NOTE: - - Always maintain the order and position of existing entries! - Always append new entry to the list, prior to the definition - of _NL_LOCALE_EXTENDED_LAST_ENTRY. */ - - _NL_LOCALE_EXTENDED_FIRST_ENTRY, - - _NL_CTYPE_OUTDIGITS0_MB, - _NL_CTYPE_OUTDIGITS1_MB, - _NL_CTYPE_OUTDIGITS2_MB, - _NL_CTYPE_OUTDIGITS3_MB, - _NL_CTYPE_OUTDIGITS4_MB, - _NL_CTYPE_OUTDIGITS5_MB, - _NL_CTYPE_OUTDIGITS6_MB, - _NL_CTYPE_OUTDIGITS7_MB, - _NL_CTYPE_OUTDIGITS8_MB, - _NL_CTYPE_OUTDIGITS9_MB, - _NL_CTYPE_OUTDIGITS0_WC, - _NL_CTYPE_OUTDIGITS1_WC, - _NL_CTYPE_OUTDIGITS2_WC, - _NL_CTYPE_OUTDIGITS3_WC, - _NL_CTYPE_OUTDIGITS4_WC, - _NL_CTYPE_OUTDIGITS5_WC, - _NL_CTYPE_OUTDIGITS6_WC, - _NL_CTYPE_OUTDIGITS7_WC, - _NL_CTYPE_OUTDIGITS8_WC, - _NL_CTYPE_OUTDIGITS9_WC, - - _NL_TIME_CODESET, - _NL_TIME_WMON_1, - _NL_TIME_WMON_2, - _NL_TIME_WMON_3, - _NL_TIME_WMON_4, - _NL_TIME_WMON_5, - _NL_TIME_WMON_6, - _NL_TIME_WMON_7, - _NL_TIME_WMON_8, - _NL_TIME_WMON_9, - _NL_TIME_WMON_10, - _NL_TIME_WMON_11, - _NL_TIME_WMON_12, - _NL_TIME_WMONTH_1, - _NL_TIME_WMONTH_2, - _NL_TIME_WMONTH_3, - _NL_TIME_WMONTH_4, - _NL_TIME_WMONTH_5, - _NL_TIME_WMONTH_6, - _NL_TIME_WMONTH_7, - _NL_TIME_WMONTH_8, - _NL_TIME_WMONTH_9, - _NL_TIME_WMONTH_10, - _NL_TIME_WMONTH_11, - _NL_TIME_WMONTH_12, - _NL_TIME_WWDAY_1, - _NL_TIME_WWDAY_2, - _NL_TIME_WWDAY_3, - _NL_TIME_WWDAY_4, - _NL_TIME_WWDAY_5, - _NL_TIME_WWDAY_6, - _NL_TIME_WWDAY_7, - _NL_TIME_WWEEKDAY_1, - _NL_TIME_WWEEKDAY_2, - _NL_TIME_WWEEKDAY_3, - _NL_TIME_WWEEKDAY_4, - _NL_TIME_WWEEKDAY_5, - _NL_TIME_WWEEKDAY_6, - _NL_TIME_WWEEKDAY_7, - _NL_TIME_WT_FMT, - _NL_TIME_WD_FMT, - _NL_TIME_WD_T_FMT, - _NL_TIME_WAM_STR, - _NL_TIME_WPM_STR, - _NL_TIME_WDATE_FMT, - _NL_TIME_WT_FMT_AMPM, - _NL_TIME_WERA, - _NL_TIME_WERA_D_FMT, - _NL_TIME_WERA_D_T_FMT, - _NL_TIME_WERA_T_FMT, - _NL_TIME_WALT_DIGITS, - - _NL_NUMERIC_CODESET, - _NL_NUMERIC_GROUPING, - _NL_NUMERIC_DECIMAL_POINT_WC, - _NL_NUMERIC_THOUSANDS_SEP_WC, - - _NL_MONETARY_INT_CURR_SYMBOL, - _NL_MONETARY_CURRENCY_SYMBOL, - _NL_MONETARY_MON_DECIMAL_POINT, - _NL_MONETARY_MON_THOUSANDS_SEP, - _NL_MONETARY_MON_GROUPING, - _NL_MONETARY_POSITIVE_SIGN, - _NL_MONETARY_NEGATIVE_SIGN, - _NL_MONETARY_INT_FRAC_DIGITS, - _NL_MONETARY_FRAC_DIGITS, - _NL_MONETARY_P_CS_PRECEDES, - _NL_MONETARY_P_SEP_BY_SPACE, - _NL_MONETARY_N_CS_PRECEDES, - _NL_MONETARY_N_SEP_BY_SPACE, - _NL_MONETARY_P_SIGN_POSN, - _NL_MONETARY_N_SIGN_POSN, - _NL_MONETARY_INT_P_CS_PRECEDES, - _NL_MONETARY_INT_P_SEP_BY_SPACE, - _NL_MONETARY_INT_N_CS_PRECEDES, - _NL_MONETARY_INT_N_SEP_BY_SPACE, - _NL_MONETARY_INT_P_SIGN_POSN, - _NL_MONETARY_INT_N_SIGN_POSN, - _NL_MONETARY_CODESET, - _NL_MONETARY_WINT_CURR_SYMBOL, - _NL_MONETARY_WCURRENCY_SYMBOL, - _NL_MONETARY_WMON_DECIMAL_POINT, - _NL_MONETARY_WMON_THOUSANDS_SEP, - _NL_MONETARY_WPOSITIVE_SIGN, - _NL_MONETARY_WNEGATIVE_SIGN, - - _NL_MESSAGES_WYESEXPR, - _NL_MESSAGES_WNOEXPR, - _NL_MESSAGES_WYESSTR, - _NL_MESSAGES_WNOSTR, - - _NL_COLLATE_CODESET, - - /* This MUST be the last entry since it's used to check for an array - index in nl_langinfo(). It also must not exceed _NL_LOCALE_NAME_BASE. */ - _NL_LOCALE_EXTENDED_LAST_ENTRY - -#endif /* __HAVE_LOCALE_INFO_EXTENDED__ */ -#endif /* __HAVE_LOCALE_INFO__ */ - -}; - -/* As an extension, nl_langinfo can retrive the name of a locale - category, with this mapping from setlocale() category (other than - LC_ALL) to nl_item. */ -#define _NL_LOCALE_NAME_BASE 100000 -#if __GNU_VISIBLE -#define NL_LOCALE_NAME(category) (_NL_LOCALE_NAME_BASE + (category)) -#endif - -__BEGIN_DECLS -char *nl_langinfo (nl_item); -#if __POSIX_VISIBLE >= 200809 -char *nl_langinfo_l (nl_item, locale_t); -#endif -__END_DECLS - -#endif /* !_LANGINFO_H_ */ diff --git a/lib/include/libgen.h b/lib/include/libgen.h deleted file mode 100644 index 414b5aa..0000000 --- a/lib/include/libgen.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * libgen.h - defined by XPG4 - */ - -#ifndef _LIBGEN_H_ -#define _LIBGEN_H_ - -#include "_ansi.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* There are two common basename variants. If you do NOT #include - and you do - - #define _GNU_SOURCE - #include - - you get the GNU version. Otherwise you get the POSIX versionfor which you - should #include i for the function prototype. POSIX requires that - #undef basename will still let you invoke the underlying function. However, - this also implies that the POSIX version is used in this case. That's made - sure here. */ -#undef basename -#define basename __xpg_basename -char *basename (char *) __asm__(__ASMNAME("basename")); -char *dirname (char *); - -#ifdef __cplusplus -} -#endif - -#endif /* _LIBGEN_H_ */ - diff --git a/lib/include/limits.h b/lib/include/limits.h deleted file mode 100644 index 893f108..0000000 --- a/lib/include/limits.h +++ /dev/null @@ -1,147 +0,0 @@ -#ifndef _LIBC_LIMITS_H_ -# define _LIBC_LIMITS_H_ 1 - -#include -#include -#include - -# ifdef _MB_LEN_MAX -# define MB_LEN_MAX _MB_LEN_MAX -# else -# define MB_LEN_MAX 1 -# endif - -/* Maximum number of positional arguments, if _WANT_IO_POS_ARGS. */ -# ifndef NL_ARGMAX -# define NL_ARGMAX 32 -# endif - -/* if do not have #include_next support, then we - have to define the limits here. */ -# if !defined __GNUC__ || __GNUC__ < 2 - -# ifndef _LIMITS_H -# define _LIMITS_H 1 - -# include - -/* Number of bits in a `char'. */ -# undef CHAR_BIT -# define CHAR_BIT 8 - -/* Minimum and maximum values a `signed char' can hold. */ -# undef SCHAR_MIN -# define SCHAR_MIN (-128) -# undef SCHAR_MAX -# define SCHAR_MAX 127 - -/* Maximum value an `unsigned char' can hold. (Minimum is 0). */ -# undef UCHAR_MAX -# define UCHAR_MAX 255 - -/* Minimum and maximum values a `char' can hold. */ -# ifdef __CHAR_UNSIGNED__ -# undef CHAR_MIN -# define CHAR_MIN 0 -# undef CHAR_MAX -# define CHAR_MAX 255 -# else -# undef CHAR_MIN -# define CHAR_MIN (-128) -# undef CHAR_MAX -# define CHAR_MAX 127 -# endif - -/* Minimum and maximum values a `signed short int' can hold. */ -# undef SHRT_MIN -/* For the sake of 16 bit hosts, we may not use -32768 */ -# define SHRT_MIN (-32767-1) -# undef SHRT_MAX -# define SHRT_MAX 32767 - -/* Maximum value an `unsigned short int' can hold. (Minimum is 0). */ -# undef USHRT_MAX -# define USHRT_MAX 65535 - -/* Minimum and maximum values a `signed int' can hold. */ -# ifndef __INT_MAX__ -# define __INT_MAX__ 2147483647 -# endif -# undef INT_MIN -# define INT_MIN (-INT_MAX-1) -# undef INT_MAX -# define INT_MAX __INT_MAX__ - -/* Maximum value an `unsigned int' can hold. (Minimum is 0). */ -# undef UINT_MAX -# define UINT_MAX (INT_MAX * 2U + 1) - -/* Minimum and maximum values a `signed long int' can hold. - (Same as `int'). */ -# ifndef __LONG_MAX__ -# if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) || defined (__sparcv9) -# define __LONG_MAX__ 9223372036854775807L -# else -# define __LONG_MAX__ 2147483647L -# endif /* __alpha__ || sparc64 */ -# endif -# undef LONG_MIN -# define LONG_MIN (-LONG_MAX-1) -# undef LONG_MAX -# define LONG_MAX __LONG_MAX__ - -/* Maximum value an `unsigned long int' can hold. (Minimum is 0). */ -# undef ULONG_MAX -# define ULONG_MAX (LONG_MAX * 2UL + 1) - -# ifndef __LONG_LONG_MAX__ -# define __LONG_LONG_MAX__ 9223372036854775807LL -# endif - -# if __ISO_C_VISIBLE >= 1999 -/* Minimum and maximum values a `signed long long int' can hold. */ -# undef LLONG_MIN -# define LLONG_MIN (-LLONG_MAX-1) -# undef LLONG_MAX -# define LLONG_MAX __LONG_LONG_MAX__ - -/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */ -# undef ULLONG_MAX -# define ULLONG_MAX (LLONG_MAX * 2ULL + 1) -# endif - -# if __GNU_VISIBLE -/* Minimum and maximum values a `signed long long int' can hold. */ -# undef LONG_LONG_MIN -# define LONG_LONG_MIN (-LONG_LONG_MAX-1) -# undef LONG_LONG_MAX -# define LONG_LONG_MAX __LONG_LONG_MAX__ - -/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */ -# undef ULONG_LONG_MAX -# define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1) -# endif - -# endif /* _LIMITS_H */ -# endif /* GCC 2. */ - -#endif /* !_LIBC_LIMITS_H_ */ - -#if defined __GNUC__ && !defined _GCC_LIMITS_H_ -/* `_GCC_LIMITS_H_' is what GCC's file defines. */ -# include_next -#endif /* __GNUC__ && !_GCC_LIMITS_H_ */ - -#ifndef _POSIX2_RE_DUP_MAX -/* The maximum number of repeated occurrences of a regular expression - * permitted when using the interval notation `\{M,N\}'. */ -#define _POSIX2_RE_DUP_MAX 255 -#endif /* _POSIX2_RE_DUP_MAX */ - -#ifndef ARG_MAX -#define ARG_MAX 4096 -#endif - -#ifndef PATH_MAX -#define PATH_MAX 4096 -#endif diff --git a/lib/include/locale.h b/lib/include/locale.h deleted file mode 100644 index ec7f861..0000000 --- a/lib/include/locale.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - locale.h - Values appropriate for the formatting of monetary and other - numberic quantities. -*/ - -#ifndef _LOCALE_H_ -#define _LOCALE_H_ - -#include "_ansi.h" -#include - -#define __need_NULL -#include - -#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 LC_MESSAGES 6 - -#if __POSIX_VISIBLE >= 200809 || defined (_LIBC) - -#include - -#define LC_ALL_MASK (1 << LC_ALL) -#define LC_COLLATE_MASK (1 << LC_COLLATE) -#define LC_CTYPE_MASK (1 << LC_CTYPE) -#define LC_MONETARY_MASK (1 << LC_MONETARY) -#define LC_NUMERIC_MASK (1 << LC_NUMERIC) -#define LC_TIME_MASK (1 << LC_TIME) -#define LC_MESSAGES_MASK (1 << LC_MESSAGES) - -#define LC_GLOBAL_LOCALE ((struct __locale_t *) -1) - -#endif /* __POSIX_VISIBLE >= 200809 */ - -_BEGIN_STD_C - -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 int_n_cs_precedes; - char int_n_sep_by_space; - char int_n_sign_posn; - char int_p_cs_precedes; - char int_p_sep_by_space; - char int_p_sign_posn; -}; - -struct _reent; -char *_setlocale_r (struct _reent *, int, const char *); -struct lconv *_localeconv_r (struct _reent *); - -struct __locale_t *_newlocale_r (struct _reent *, int, const char *, - struct __locale_t *); -void _freelocale_r (struct _reent *, struct __locale_t *); -struct __locale_t *_duplocale_r (struct _reent *, struct __locale_t *); -struct __locale_t *_uselocale_r (struct _reent *, struct __locale_t *); - -#ifndef _REENT_ONLY - -char *setlocale (int, const char *); -struct lconv *localeconv (void); - -#if __POSIX_VISIBLE >= 200809 -locale_t newlocale (int, const char *, locale_t); -void freelocale (locale_t); -locale_t duplocale (locale_t); -locale_t uselocale (locale_t); -#endif /* __POSIX_VISIBLE >= 200809 */ - -#endif /* _REENT_ONLY */ - -_END_STD_C - -#endif /* _LOCALE_H_ */ diff --git a/lib/include/machine/_arc4random.h b/lib/include/machine/_arc4random.h deleted file mode 100644 index 52808d7..0000000 --- a/lib/include/machine/_arc4random.h +++ /dev/null @@ -1 +0,0 @@ -/* Use default implementation, see arc4random.h */ diff --git a/lib/include/machine/_default_types.h b/lib/include/machine/_default_types.h deleted file mode 100644 index 6137493..0000000 --- a/lib/include/machine/_default_types.h +++ /dev/null @@ -1,250 +0,0 @@ -/* - * $Id$ - */ - -#ifndef _MACHINE__DEFAULT_TYPES_H -#define _MACHINE__DEFAULT_TYPES_H - -#include - -/* - * Guess on types by examining *_MIN / *_MAX defines. - */ -#if __GNUC_PREREQ (3, 3) -/* GCC >= 3.3.0 has ____ implicitly defined. */ -#define __EXP(x) __##x##__ -#else -/* Fall back to POSIX versions from */ -#define __EXP(x) x -#include -#endif - -/* Check if "long long" is 64bit wide */ -/* Modern GCCs provide __LONG_LONG_MAX__, SUSv3 wants LLONG_MAX */ -#if ( defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff) ) \ - || ( defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff) ) -#define __have_longlong64 1 -#endif - -/* Check if "long" is 64bit or 32bit wide */ -#if __EXP(LONG_MAX) > 0x7fffffff -#define __have_long64 1 -#elif __EXP(LONG_MAX) == 0x7fffffff && !defined(__SPU__) -#define __have_long32 1 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __INT8_TYPE__ -typedef __INT8_TYPE__ __int8_t; -#ifdef __UINT8_TYPE__ -typedef __UINT8_TYPE__ __uint8_t; -#else -typedef unsigned __INT8_TYPE__ __uint8_t; -#endif -#define ___int8_t_defined 1 -#elif __EXP(SCHAR_MAX) == 0x7f -typedef signed char __int8_t ; -typedef unsigned char __uint8_t ; -#define ___int8_t_defined 1 -#endif - -#ifdef __INT16_TYPE__ -typedef __INT16_TYPE__ __int16_t; -#ifdef __UINT16_TYPE__ -typedef __UINT16_TYPE__ __uint16_t; -#else -typedef unsigned __INT16_TYPE__ __uint16_t; -#endif -#define ___int16_t_defined 1 -#elif __EXP(INT_MAX) == 0x7fff -typedef signed int __int16_t; -typedef unsigned int __uint16_t; -#define ___int16_t_defined 1 -#elif __EXP(SHRT_MAX) == 0x7fff -typedef signed short __int16_t; -typedef unsigned short __uint16_t; -#define ___int16_t_defined 1 -#elif __EXP(SCHAR_MAX) == 0x7fff -typedef signed char __int16_t; -typedef unsigned char __uint16_t; -#define ___int16_t_defined 1 -#endif - -#ifdef __INT32_TYPE__ -typedef __INT32_TYPE__ __int32_t; -#ifdef __UINT32_TYPE__ -typedef __UINT32_TYPE__ __uint32_t; -#else -typedef unsigned __INT32_TYPE__ __uint32_t; -#endif -#define ___int32_t_defined 1 -#elif __EXP(INT_MAX) == 0x7fffffffL -typedef signed int __int32_t; -typedef unsigned int __uint32_t; -#define ___int32_t_defined 1 -#elif __EXP(LONG_MAX) == 0x7fffffffL -typedef signed long __int32_t; -typedef unsigned long __uint32_t; -#define ___int32_t_defined 1 -#elif __EXP(SHRT_MAX) == 0x7fffffffL -typedef signed short __int32_t; -typedef unsigned short __uint32_t; -#define ___int32_t_defined 1 -#elif __EXP(SCHAR_MAX) == 0x7fffffffL -typedef signed char __int32_t; -typedef unsigned char __uint32_t; -#define ___int32_t_defined 1 -#endif - -#ifdef __INT64_TYPE__ -typedef __INT64_TYPE__ __int64_t; -#ifdef __UINT64_TYPE__ -typedef __UINT64_TYPE__ __uint64_t; -#else -typedef unsigned __INT64_TYPE__ __uint64_t; -#endif -#define ___int64_t_defined 1 -#elif __EXP(LONG_MAX) > 0x7fffffff -typedef signed long __int64_t; -typedef unsigned long __uint64_t; -#define ___int64_t_defined 1 - -/* GCC has __LONG_LONG_MAX__ */ -#elif defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff) -typedef signed long long __int64_t; -typedef unsigned long long __uint64_t; -#define ___int64_t_defined 1 - -/* POSIX mandates LLONG_MAX in */ -#elif defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff) -typedef signed long long __int64_t; -typedef unsigned long long __uint64_t; -#define ___int64_t_defined 1 - -#elif __EXP(INT_MAX) > 0x7fffffff -typedef signed int __int64_t; -typedef unsigned int __uint64_t; -#define ___int64_t_defined 1 -#endif - -#ifdef __INT_LEAST8_TYPE__ -typedef __INT_LEAST8_TYPE__ __int_least8_t; -#ifdef __UINT_LEAST8_TYPE__ -typedef __UINT_LEAST8_TYPE__ __uint_least8_t; -#else -typedef unsigned __INT_LEAST8_TYPE__ __uint_least8_t; -#endif -#define ___int_least8_t_defined 1 -#elif defined(___int8_t_defined) -typedef __int8_t __int_least8_t; -typedef __uint8_t __uint_least8_t; -#define ___int_least8_t_defined 1 -#elif defined(___int16_t_defined) -typedef __int16_t __int_least8_t; -typedef __uint16_t __uint_least8_t; -#define ___int_least8_t_defined 1 -#elif defined(___int32_t_defined) -typedef __int32_t __int_least8_t; -typedef __uint32_t __uint_least8_t; -#define ___int_least8_t_defined 1 -#elif defined(___int64_t_defined) -typedef __int64_t __int_least8_t; -typedef __uint64_t __uint_least8_t; -#define ___int_least8_t_defined 1 -#endif - -#ifdef __INT_LEAST16_TYPE__ -typedef __INT_LEAST16_TYPE__ __int_least16_t; -#ifdef __UINT_LEAST16_TYPE__ -typedef __UINT_LEAST16_TYPE__ __uint_least16_t; -#else -typedef unsigned __INT_LEAST16_TYPE__ __uint_least16_t; -#endif -#define ___int_least16_t_defined 1 -#elif defined(___int16_t_defined) -typedef __int16_t __int_least16_t; -typedef __uint16_t __uint_least16_t; -#define ___int_least16_t_defined 1 -#elif defined(___int32_t_defined) -typedef __int32_t __int_least16_t; -typedef __uint32_t __uint_least16_t; -#define ___int_least16_t_defined 1 -#elif defined(___int64_t_defined) -typedef __int64_t __int_least16_t; -typedef __uint64_t __uint_least16_t; -#define ___int_least16_t_defined 1 -#endif - -#ifdef __INT_LEAST32_TYPE__ -typedef __INT_LEAST32_TYPE__ __int_least32_t; -#ifdef __UINT_LEAST32_TYPE__ -typedef __UINT_LEAST32_TYPE__ __uint_least32_t; -#else -typedef unsigned __INT_LEAST32_TYPE__ __uint_least32_t; -#endif -#define ___int_least32_t_defined 1 -#elif defined(___int32_t_defined) -typedef __int32_t __int_least32_t; -typedef __uint32_t __uint_least32_t; -#define ___int_least32_t_defined 1 -#elif defined(___int64_t_defined) -typedef __int64_t __int_least32_t; -typedef __uint64_t __uint_least32_t; -#define ___int_least32_t_defined 1 -#endif - -#ifdef __INT_LEAST64_TYPE__ -typedef __INT_LEAST64_TYPE__ __int_least64_t; -#ifdef __UINT_LEAST64_TYPE__ -typedef __UINT_LEAST64_TYPE__ __uint_least64_t; -#else -typedef unsigned __INT_LEAST64_TYPE__ __uint_least64_t; -#endif -#define ___int_least64_t_defined 1 -#elif defined(___int64_t_defined) -typedef __int64_t __int_least64_t; -typedef __uint64_t __uint_least64_t; -#define ___int_least64_t_defined 1 -#endif - -#if defined(__INTMAX_TYPE__) -typedef __INTMAX_TYPE__ __intmax_t; -#elif __have_longlong64 -typedef signed long long __intmax_t; -#else -typedef signed long __intmax_t; -#endif - -#if defined(__UINTMAX_TYPE__) -typedef __UINTMAX_TYPE__ __uintmax_t; -#elif __have_longlong64 -typedef unsigned long long __uintmax_t; -#else -typedef unsigned long __uintmax_t; -#endif - -#ifdef __INTPTR_TYPE__ -typedef __INTPTR_TYPE__ __intptr_t; -#ifdef __UINTPTR_TYPE__ -typedef __UINTPTR_TYPE__ __uintptr_t; -#else -typedef unsigned __INTPTR_TYPE__ __uintptr_t; -#endif -#elif defined(__PTRDIFF_TYPE__) -typedef __PTRDIFF_TYPE__ __intptr_t; -typedef unsigned __PTRDIFF_TYPE__ __uintptr_t; -#else -typedef long __intptr_t; -typedef unsigned long __uintptr_t; -#endif - -#undef __EXP - -#ifdef __cplusplus -} -#endif - -#endif /* _MACHINE__DEFAULT_TYPES_H */ diff --git a/lib/include/machine/_endian.h b/lib/include/machine/_endian.h deleted file mode 100644 index 92a14dc..0000000 --- a/lib/include/machine/_endian.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __MACHINE_ENDIAN_H__ -#error "must be included via " -#endif /* !__MACHINE_ENDIAN_H__ */ - -#include - -#ifdef __PPC__ -/* Get rid of GCC builtin defines on PowerPC */ -#ifdef _BIG_ENDIAN -#undef _BIG_ENDIAN -#endif -#ifdef _LITTLE_ENDIAN -#undef _LITTLE_ENDIAN -#endif -#endif /* __PPC__ */ - -#ifndef _LITTLE_ENDIAN -#define _LITTLE_ENDIAN 1234 -#endif - -#ifndef _BIG_ENDIAN -#define _BIG_ENDIAN 4321 -#endif - -#ifndef _PDP_ENDIAN -#define _PDP_ENDIAN 3412 -#endif - -#ifndef _BYTE_ORDER -#if defined(__IEEE_LITTLE_ENDIAN) || defined(__IEEE_BYTES_LITTLE_ENDIAN) -#define _BYTE_ORDER _LITTLE_ENDIAN -#else -#define _BYTE_ORDER _BIG_ENDIAN -#endif -#endif diff --git a/lib/include/machine/_time.h b/lib/include/machine/_time.h deleted file mode 100644 index 476760c..0000000 --- a/lib/include/machine/_time.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifndef _SYS_TIME_H_ -#error "must be included via " -#endif /* !_SYS_TIME_H_ */ diff --git a/lib/include/machine/_types.h b/lib/include/machine/_types.h deleted file mode 100644 index 17e6d51..0000000 --- a/lib/include/machine/_types.h +++ /dev/null @@ -1,8 +0,0 @@ -/* - * $Id$ - */ - -#ifndef _MACHINE__TYPES_H -#define _MACHINE__TYPES_H -#include -#endif diff --git a/lib/include/machine/ansi.h b/lib/include/machine/ansi.h deleted file mode 100644 index 737b6d0..0000000 --- a/lib/include/machine/ansi.h +++ /dev/null @@ -1 +0,0 @@ -/* dummy header file to support BSD compiler */ diff --git a/lib/include/machine/endian.h b/lib/include/machine/endian.h deleted file mode 100644 index 34a5726..0000000 --- a/lib/include/machine/endian.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef __MACHINE_ENDIAN_H__ -#define __MACHINE_ENDIAN_H__ - -#include -#include -#include - -#if _BYTE_ORDER == _LITTLE_ENDIAN -#define _QUAD_HIGHWORD 1 -#define _QUAD_LOWWORD 0 -#else -#define _QUAD_HIGHWORD 0 -#define _QUAD_LOWWORD 1 -#endif - -#if __BSD_VISIBLE -#define LITTLE_ENDIAN _LITTLE_ENDIAN -#define BIG_ENDIAN _BIG_ENDIAN -#define PDP_ENDIAN _PDP_ENDIAN -#define BYTE_ORDER _BYTE_ORDER -#endif - -#ifdef __GNUC__ -#define __bswap16(_x) __builtin_bswap16(_x) -#define __bswap32(_x) __builtin_bswap32(_x) -#define __bswap64(_x) __builtin_bswap64(_x) -#else /* __GNUC__ */ -static __inline __uint16_t -__bswap16(__uint16_t _x) -{ - - return ((__uint16_t)((_x >> 8) | ((_x << 8) & 0xff00))); -} - -static __inline __uint32_t -__bswap32(__uint32_t _x) -{ - - return ((__uint32_t)((_x >> 24) | ((_x >> 8) & 0xff00) | - ((_x << 8) & 0xff0000) | ((_x << 24) & 0xff000000))); -} - -static __inline __uint64_t -__bswap64(__uint64_t _x) -{ - - return ((__uint64_t)((_x >> 56) | ((_x >> 40) & 0xff00) | - ((_x >> 24) & 0xff0000) | ((_x >> 8) & 0xff000000) | - ((_x << 8) & ((__uint64_t)0xff << 32)) | - ((_x << 24) & ((__uint64_t)0xff << 40)) | - ((_x << 40) & ((__uint64_t)0xff << 48)) | ((_x << 56)))); -} -#endif /* !__GNUC__ */ - -#ifndef __machine_host_to_from_network_defined -#if _BYTE_ORDER == _LITTLE_ENDIAN -#define __htonl(_x) __bswap32(_x) -#define __htons(_x) __bswap16(_x) -#define __ntohl(_x) __bswap32(_x) -#define __ntohs(_x) __bswap16(_x) -#else -#define __htonl(_x) ((__uint32_t)(_x)) -#define __htons(_x) ((__uint16_t)(_x)) -#define __ntohl(_x) ((__uint32_t)(_x)) -#define __ntohs(_x) ((__uint16_t)(_x)) -#endif -#endif /* __machine_host_to_from_network_defined */ - -#endif /* __MACHINE_ENDIAN_H__ */ diff --git a/lib/include/machine/fastmath.h b/lib/include/machine/fastmath.h deleted file mode 100644 index d13ab3b..0000000 --- a/lib/include/machine/fastmath.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifdef __sysvnecv70_target -double EXFUN(fast_sin,(double)); -double EXFUN(fast_cos,(double)); -double EXFUN(fast_tan,(double)); - -double EXFUN(fast_asin,(double)); -double EXFUN(fast_acos,(double)); -double EXFUN(fast_atan,(double)); - -double EXFUN(fast_sinh,(double)); -double EXFUN(fast_cosh,(double)); -double EXFUN(fast_tanh,(double)); - -double EXFUN(fast_asinh,(double)); -double EXFUN(fast_acosh,(double)); -double EXFUN(fast_atanh,(double)); - -double EXFUN(fast_abs,(double)); -double EXFUN(fast_sqrt,(double)); -double EXFUN(fast_exp2,(double)); -double EXFUN(fast_exp10,(double)); -double EXFUN(fast_expe,(double)); -double EXFUN(fast_log10,(double)); -double EXFUN(fast_log2,(double)); -double EXFUN(fast_loge,(double)); - - -#define sin(x) fast_sin(x) -#define cos(x) fast_cos(x) -#define tan(x) fast_tan(x) -#define asin(x) fast_asin(x) -#define acos(x) fast_acos(x) -#define atan(x) fast_atan(x) -#define sinh(x) fast_sinh(x) -#define cosh(x) fast_cosh(x) -#define tanh(x) fast_tanh(x) -#define asinh(x) fast_asinh(x) -#define acosh(x) fast_acosh(x) -#define atanh(x) fast_atanh(x) -#define abs(x) fast_abs(x) -#define sqrt(x) fast_sqrt(x) -#define exp2(x) fast_exp2(x) -#define exp10(x) fast_exp10(x) -#define expe(x) fast_expe(x) -#define log10(x) fast_log10(x) -#define log2(x) fast_log2(x) -#define loge(x) fast_loge(x) - -/* These functions are in assembler, they really do take floats. This - can only be used with a real ANSI compiler */ - -float EXFUN(fast_sinf,(float)); -float EXFUN(fast_cosf,(float)); -float EXFUN(fast_tanf,(float)); - -float EXFUN(fast_asinf,(float)); -float EXFUN(fast_acosf,(float)); -float EXFUN(fast_atanf,(float)); - -float EXFUN(fast_sinhf,(float)); -float EXFUN(fast_coshf,(float)); -float EXFUN(fast_tanhf,(float)); - -float EXFUN(fast_asinhf,(float)); -float EXFUN(fast_acoshf,(float)); -float EXFUN(fast_atanhf,(float)); - -float EXFUN(fast_absf,(float)); -float EXFUN(fast_sqrtf,(float)); -float EXFUN(fast_exp2f,(float)); -float EXFUN(fast_exp10f,(float)); -float EXFUN(fast_expef,(float)); -float EXFUN(fast_log10f,(float)); -float EXFUN(fast_log2f,(float)); -float EXFUN(fast_logef,(float)); -#define sinf(x) fast_sinf(x) -#define cosf(x) fast_cosf(x) -#define tanf(x) fast_tanf(x) -#define asinf(x) fast_asinf(x) -#define acosf(x) fast_acosf(x) -#define atanf(x) fast_atanf(x) -#define sinhf(x) fast_sinhf(x) -#define coshf(x) fast_coshf(x) -#define tanhf(x) fast_tanhf(x) -#define asinhf(x) fast_asinhf(x) -#define acoshf(x) fast_acoshf(x) -#define atanhf(x) fast_atanhf(x) -#define absf(x) fast_absf(x) -#define sqrtf(x) fast_sqrtf(x) -#define exp2f(x) fast_exp2f(x) -#define exp10f(x) fast_exp10f(x) -#define expef(x) fast_expef(x) -#define log10f(x) fast_log10f(x) -#define log2f(x) fast_log2f(x) -#define logef(x) fast_logef(x) -/* Override the functions defined in math.h */ -#endif /* __sysvnecv70_target */ - diff --git a/lib/include/machine/ieee.h b/lib/include/machine/ieee.h deleted file mode 100644 index 0656909..0000000 --- a/lib/include/machine/ieee.h +++ /dev/null @@ -1,127 +0,0 @@ -#ifndef _MACHINE_IEEE_H_ -#define _MACHINE_IEEE_H_ -#include -#include -#include -#include - -#if LDBL_MANT_DIG == 24 -#define EXT_IMPLICIT_NBIT -#define EXT_TO_ARRAY32(p, a) do { \ - (a)[0] = (p)->ext_frac; \ -} while (0) -#ifdef __IEEE_LITTLE_ENDIAN -struct ieee_ext { - uint32_t ext_frac:23; - uint32_t ext_exp:8; - uint32_t ext_sign:1; -}; -#endif -#ifdef __IEEE_BIG_ENDIAN -struct ieee_ext { -#ifndef ___IEEE_BYTES_LITTLE_ENDIAN - uint32_t ext_sign:1; - uint32_t ext_exp:8; - uint32_t ext_frac:23; -#else /* ARMEL without __VFP_FP__ */ - uint32_t ext_frac:23; - uint32_t ext_exp:8; - uint32_t ext_sign:1; -#endif -}; -#endif -#elif LDBL_MANT_DIG == 53 -#define EXT_IMPLICIT_NBIT -#define EXT_TO_ARRAY32(p, a) do { \ - (a)[0] = (p)->ext_fracl; \ - (a)[1] = (p)->ext_frach; \ -} while (0) -#ifdef __IEEE_LITTLE_ENDIAN -struct ieee_ext { - uint32_t ext_fracl; - uint32_t ext_frach:20; - uint32_t ext_exp:11; - uint32_t ext_sign:1; -}; -#endif -#ifdef __IEEE_BIG_ENDIAN -struct ieee_ext { -#ifndef ___IEEE_BYTES_LITTLE_ENDIAN - uint32_t ext_sign:1; - uint32_t ext_exp:11; - uint32_t ext_frach:20; -#else /* ARMEL without __VFP_FP__ */ - uint32_t ext_frach:20; - uint32_t ext_exp:11; - uint32_t ext_sign:1; -#endif - uint32_t ext_fracl; -}; -#endif -#elif LDBL_MANT_DIG == 64 -#define EXT_TO_ARRAY32(p, a) do { \ - (a)[0] = (p)->ext_fracl; \ - (a)[1] = (p)->ext_frach; \ -} while (0) -#ifdef __IEEE_LITTLE_ENDIAN /* for Intel CPU */ -struct ieee_ext { - uint32_t ext_fracl; - uint32_t ext_frach; - uint32_t ext_exp:15; - uint32_t ext_sign:1; - uint32_t ext_padl:16; - uint32_t ext_padh; -}; -#endif -#ifdef __IEEE_BIG_ENDIAN -struct ieee_ext { -#ifndef ___IEEE_BYTES_LITTLE_ENDIAN /* for m68k */ - uint32_t ext_sign:1; - uint32_t ext_exp:15; - uint32_t ext_pad:16; -#else /* ARM FPA10 math coprocessor */ - uint32_t ext_exp:15; - uint32_t ext_pad:16; - uint32_t ext_sign:1; -#endif - uint32_t ext_frach; - uint32_t ext_fracl; -}; -#endif -#elif LDBL_MANT_DIG == 113 -#define EXT_IMPLICIT_NBIT -#define EXT_TO_ARRAY32(p, a) do { \ - (a)[0] = (p)->ext_fracl; \ - (a)[1] = (p)->ext_fraclm; \ - (a)[2] = (p)->ext_frachm; \ - (a)[3] = (p)->ext_frach; \ -} while (0) -#ifdef __IEEE_LITTLE_ENDIAN -struct ieee_ext { - uint32_t ext_fracl; - uint32_t ext_fraclm; - uint32_t ext_frachm; - uint32_t ext_frach:16; - uint32_t ext_exp:15; - uint32_t ext_sign:1; -}; -#endif -#ifdef __IEEE_BIG_ENDIAN -struct ieee_ext { -#ifndef ___IEEE_BYTES_LITTLE_ENDIAN - uint32_t ext_sign:1; - uint32_t ext_exp:15; - uint32_t ext_frach:16; -#else /* ARMEL without __VFP_FP__ */ - uint32_t ext_frach:16; - uint32_t ext_exp:15; - uint32_t ext_sign:1; -#endif - uint32_t ext_frachm; - uint32_t ext_fraclm; - uint32_t ext_fracl; -}; -#endif -#endif - -#endif /* _MACHINE_IEEE_H_ */ diff --git a/lib/include/machine/ieeefp.h b/lib/include/machine/ieeefp.h deleted file mode 100644 index a29557a..0000000 --- a/lib/include/machine/ieeefp.h +++ /dev/null @@ -1,529 +0,0 @@ -#ifndef __IEEE_BIG_ENDIAN -#ifndef __IEEE_LITTLE_ENDIAN - -/* This file can define macros to choose variations of the IEEE float - format: - - _FLT_LARGEST_EXPONENT_IS_NORMAL - - Defined if the float format uses the largest exponent for finite - numbers rather than NaN and infinity representations. Such a - format cannot represent NaNs or infinities at all, but it's FLT_MAX - is twice the IEEE value. - - _FLT_NO_DENORMALS - - Defined if the float format does not support IEEE denormals. Every - float with a zero exponent is taken to be a zero representation. - - ??? At the moment, there are no equivalent macros above for doubles and - the macros are not fully supported by --enable-newlib-hw-fp. - - __IEEE_BIG_ENDIAN - - Defined if the float format is big endian. This is mutually exclusive - with __IEEE_LITTLE_ENDIAN. - - __IEEE_LITTLE_ENDIAN - - Defined if the float format is little endian. This is mutually exclusive - with __IEEE_BIG_ENDIAN. - - Note that one of __IEEE_BIG_ENDIAN or __IEEE_LITTLE_ENDIAN must be specified for a - platform or error will occur. - - __IEEE_BYTES_LITTLE_ENDIAN - - This flag is used in conjunction with __IEEE_BIG_ENDIAN to describe a situation - whereby multiple words of an IEEE floating point are in big endian order, but the - words themselves are little endian with respect to the bytes. - - _DOUBLE_IS_32BITS - - This is used on platforms that support double by using the 32-bit IEEE - float type. - - _FLOAT_ARG - - This represents what type a float arg is passed as. It is used when the type is - not promoted to double. - - - __OBSOLETE_MATH_DEFAULT - - Default value for __OBSOLETE_MATH if that's not set by the user. - It should be set here based on predefined feature macros. - - __OBSOLETE_MATH - - If set to 1 then some new math code will be disabled and older libm - code will be used instead. This is necessary because the new math - code does not support all targets, it assumes that the toolchain has - ISO C99 support (hexfloat literals, standard fenv semantics), the - target has IEEE-754 conforming binary32 float and binary64 double - (not mixed endian) representation, standard SNaN representation, - double and single precision arithmetics has similar latency and it - has no legacy SVID matherr support, only POSIX errno and fenv - exception based error handling. -*/ - -#if (defined(__arm__) || defined(__thumb__)) && !defined(__MAVERICK__) -/* ARM traditionally used big-endian words; and within those words the - byte ordering was big or little endian depending upon the target. - Modern floating-point formats are naturally ordered; in this case - __VFP_FP__ will be defined, even if soft-float. */ -#ifdef __VFP_FP__ -# ifdef __ARMEL__ -# define __IEEE_LITTLE_ENDIAN -# else -# define __IEEE_BIG_ENDIAN -# endif -# if __ARM_FP & 0x8 -# define __OBSOLETE_MATH_DEFAULT 0 -# endif -#else -# define __IEEE_BIG_ENDIAN -# ifdef __ARMEL__ -# define __IEEE_BYTES_LITTLE_ENDIAN -# endif -#endif -#ifndef __SOFTFP__ -# define _SUPPORTS_ERREXCEPT -#endif -/* As per ISO/IEC TS 18661 '__FLT_EVAL_METHOD__' will be defined to 16 - (if compiling with +fp16 support) so it can't be used by math.h to - define float_t and double_t. For values of '__FLT_EVAL_METHOD__' - other than 0, 1, 2 the definition of float_t and double_t is - implementation-defined. */ -#define __DOUBLE_TYPE double -#define __FLOAT_TYPE float -#endif - -#if defined (__aarch64__) -#if defined (__AARCH64EL__) -#define __IEEE_LITTLE_ENDIAN -#else -#define __IEEE_BIG_ENDIAN -#endif -#define __OBSOLETE_MATH_DEFAULT 0 -#ifdef __ARM_FP -# define _SUPPORTS_ERREXCEPT -#endif -/* As per ISO/IEC TS 18661 '__FLT_EVAL_METHOD__' will be defined to 16 - (if compiling with +fp16 support) so it can't be used by math.h to - define float_t and double_t. For values of '__FLT_EVAL_METHOD__' - other than 0, 1, 2 the definition of float_t and double_t is - implementation-defined. */ -#define __DOUBLE_TYPE double -#define __FLOAT_TYPE float -#endif - -#ifdef __epiphany__ -#define __IEEE_LITTLE_ENDIAN -#define Sudden_Underflow 1 -#endif - -#ifdef __hppa__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __nds32__ -#ifdef __big_endian__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __SPU__ -#define __IEEE_BIG_ENDIAN - -#define isfinite(__y) \ - (__extension__ ({int __cy; \ - (sizeof (__y) == sizeof (float)) ? (1) : \ - (__cy = fpclassify(__y)) != FP_INFINITE && __cy != FP_NAN;})) - -#define isinf(__x) ((sizeof (__x) == sizeof (float)) ? (0) : __isinfd(__x)) -#define isnan(__x) ((sizeof (__x) == sizeof (float)) ? (0) : __isnand(__x)) - -/* - * Macros for use in ieeefp.h. We can't just define the real ones here - * (like those above) as we have name space issues when this is *not* - * included via generic the ieeefp.h. - */ -#define __ieeefp_isnanf(x) 0 -#define __ieeefp_isinff(x) 0 -#define __ieeefp_finitef(x) 1 -#endif - -#ifdef __sparc__ -#ifdef __LITTLE_ENDIAN_DATA__ -#define __IEEE_LITTLE_ENDIAN -#else -#define __IEEE_BIG_ENDIAN -#endif -#endif - -#if defined(__m68k__) || defined(__mc68000__) -#define __IEEE_BIG_ENDIAN -#endif - -#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__) -#define __IEEE_BIG_ENDIAN -#ifdef __HAVE_SHORT_DOUBLE__ -# define _DOUBLE_IS_32BITS -#endif -#endif - -#if defined (__H8300__) || defined (__H8300H__) || defined (__H8300S__) || defined (__H8500__) || defined (__H8300SX__) -#define __IEEE_BIG_ENDIAN -#define _FLOAT_ARG float -#define _DOUBLE_IS_32BITS -#endif - -#if defined (__xc16x__) || defined (__xc16xL__) || defined (__xc16xS__) -#define __IEEE_LITTLE_ENDIAN -#define _FLOAT_ARG float -#define _DOUBLE_IS_32BITS -#endif - - -#ifdef __sh__ -#ifdef __LITTLE_ENDIAN__ -#define __IEEE_LITTLE_ENDIAN -#else -#define __IEEE_BIG_ENDIAN -#endif -#if defined(__SH2E__) || defined(__SH3E__) || defined(__SH4_SINGLE_ONLY__) || defined(__SH2A_SINGLE_ONLY__) -#define _DOUBLE_IS_32BITS -#endif -#endif - -#ifdef _AM29K -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef _WIN32 -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __i386__ -#define __IEEE_LITTLE_ENDIAN -# define _SUPPORTS_ERREXCEPT -#endif - -#ifdef __riscv -#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#ifdef __riscv_flen -# define _SUPPORTS_ERREXCEPT -#endif -#if __riscv_flen == 64 -# define __OBSOLETE_MATH_DEFAULT 0 -#else -# define __OBSOLETE_MATH_DEFAULT 1 -#endif -#endif - -#ifdef __i960__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __lm32__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __M32R__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __nvptx__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#if defined(_C4x) || defined(_C3x) -#define __IEEE_BIG_ENDIAN -#define _DOUBLE_IS_32BITS -#endif - -#ifdef __TMS320C6X__ -#ifdef _BIG_ENDIAN -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __TIC80__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __MIPSEL__ -#define __IEEE_LITTLE_ENDIAN -#endif -#ifdef __MIPSEB__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __MMIX__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __D30V__ -#define __IEEE_BIG_ENDIAN -#endif - -/* necv70 was __IEEE_LITTLE_ENDIAN. */ - -#ifdef __W65__ -#define __IEEE_LITTLE_ENDIAN -#define _DOUBLE_IS_32BITS -#endif - -#if defined(__Z8001__) || defined(__Z8002__) -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __m88k__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __mn10300__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __mn10200__ -#define __IEEE_LITTLE_ENDIAN -#define _DOUBLE_IS_32BITS -#endif - -#ifdef __v800 -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __v850 -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __D10V__ -#define __IEEE_BIG_ENDIAN -#if __DOUBLE__ == 32 -#define _DOUBLE_IS_32BITS -#endif -#endif - -#ifdef __PPC__ -#if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX) -#define __IEEE_BIG_ENDIAN -#else -#if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(_WIN32) && _WIN32) -#define __IEEE_LITTLE_ENDIAN -#endif -#endif -#endif - -#ifdef __xstormy16__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __arc__ -#ifdef __big_endian__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __CRX__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __CSKY__ -#ifdef __CSKYBE__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __fr30__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __FT32__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __mcore__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __mt__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __frv__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __moxie__ -#ifdef __MOXIE_BIG_ENDIAN__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __ia64__ -#ifdef __BIG_ENDIAN__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __AVR__ -#define __IEEE_LITTLE_ENDIAN -#define _DOUBLE_IS_32BITS -#endif - -#if defined(__or1k__) || defined(__OR1K__) || defined(__OR1KND__) -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __IP2K__ -#define __IEEE_BIG_ENDIAN -#define __SMALL_BITFIELDS -#define _DOUBLE_IS_32BITS -#endif - -#ifdef __iq2000__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __MAVERICK__ -#ifdef __ARMEL__ -# define __IEEE_LITTLE_ENDIAN -#else /* must be __ARMEB__ */ -# define __IEEE_BIG_ENDIAN -#endif /* __ARMEL__ */ -#endif /* __MAVERICK__ */ - -#ifdef __m32c__ -#define __IEEE_LITTLE_ENDIAN -#define __SMALL_BITFIELDS -#endif - -#ifdef __CRIS__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __BFIN__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __x86_64__ -#define __IEEE_LITTLE_ENDIAN -# define _SUPPORTS_ERREXCEPT -#endif - -#ifdef __mep__ -#ifdef __LITTLE_ENDIAN__ -#define __IEEE_LITTLE_ENDIAN -#else -#define __IEEE_BIG_ENDIAN -#endif -#endif - -#ifdef __MICROBLAZE__ -#ifndef __MICROBLAZEEL__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __MSP430__ -#define __IEEE_LITTLE_ENDIAN -#define __SMALL_BITFIELDS /* 16 Bit INT */ -#endif - -#ifdef __PRU__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __RL78__ -#define __IEEE_LITTLE_ENDIAN -#define __SMALL_BITFIELDS /* 16 Bit INT */ -#ifndef __RL78_64BIT_DOUBLES__ -#define _DOUBLE_IS_32BITS -#endif -#endif - -#ifdef __RX__ - -#ifdef __RX_BIG_ENDIAN__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifndef __RX_64BIT_DOUBLES__ -#define _DOUBLE_IS_32BITS -#endif - -#ifdef __RX_16BIT_INTS__ -#define __SMALL_BITFIELDS -#endif - -#endif - -#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__)) -#define __IEEE_LITTLE_ENDIAN -#define __SMALL_BITFIELDS /* 16 Bit INT */ -#endif - -#ifdef __NIOS2__ -# ifdef __nios2_big_endian__ -# define __IEEE_BIG_ENDIAN -# else -# define __IEEE_LITTLE_ENDIAN -# endif -#endif - -#ifdef __VISIUM__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __AMDGCN__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __XTENSA_EL__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __CYGWIN__ -#define __OBSOLETE_MATH_DEFAULT 0 -#endif - -#ifndef __OBSOLETE_MATH_DEFAULT -/* Use old math code by default. */ -#define __OBSOLETE_MATH_DEFAULT 1 -#endif -#ifndef __OBSOLETE_MATH -#define __OBSOLETE_MATH __OBSOLETE_MATH_DEFAULT -#endif - -#ifndef __IEEE_BIG_ENDIAN -#ifndef __IEEE_LITTLE_ENDIAN -#error Endianess not declared!! -#endif /* not __IEEE_LITTLE_ENDIAN */ -#endif /* not __IEEE_BIG_ENDIAN */ - -#endif /* not __IEEE_LITTLE_ENDIAN */ -#endif /* not __IEEE_BIG_ENDIAN */ - diff --git a/lib/include/machine/malloc.h b/lib/include/machine/malloc.h deleted file mode 100644 index fdada9e..0000000 --- a/lib/include/machine/malloc.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _MACHMALLOC_H_ -#define _MACHMALLOC_H_ - -/* place holder so platforms may add malloc.h extensions */ - -#endif /* _MACHMALLOC_H_ */ - - diff --git a/lib/include/machine/param.h b/lib/include/machine/param.h deleted file mode 100644 index bdf8bf7..0000000 --- a/lib/include/machine/param.h +++ /dev/null @@ -1 +0,0 @@ -/* Place holder for machine-specific param.h. */ diff --git a/lib/include/machine/setjmp-dj.h b/lib/include/machine/setjmp-dj.h deleted file mode 100644 index 6ca5e65..0000000 --- a/lib/include/machine/setjmp-dj.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 1991 DJ Delorie - * All rights reserved. - * - * Redistribution, modification, and use in source and binary forms is permitted - * provided that the above copyright notice and following paragraph are - * duplicated in all such forms. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* Modified to use SETJMP_DJ_H rather than SETJMP_H to avoid - conflicting with setjmp.h. Ian Taylor, Cygnus support, April, - 1993. */ - -#ifndef _SETJMP_DJ_H_ -#define _SETJMP_DJ_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - unsigned long eax; - unsigned long ebx; - unsigned long ecx; - unsigned long edx; - unsigned long esi; - unsigned long edi; - unsigned long ebp; - unsigned long esp; - unsigned long eip; -} jmp_buf[1]; - -extern int setjmp(jmp_buf); -extern void longjmp(jmp_buf, int); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/include/machine/setjmp.h b/lib/include/machine/setjmp.h deleted file mode 100644 index 29b76ce..0000000 --- a/lib/include/machine/setjmp.h +++ /dev/null @@ -1,495 +0,0 @@ - -_BEGIN_STD_C - -#if defined(__or1k__) || defined(__or1knd__) -/* - * r1, r2, r9, r14, r16 .. r30, SR. - */ -#define _JBLEN 13 -#define _JBTYPE unsigned long -#endif - -#if defined(__arm__) || defined(__thumb__) -/* - * All callee preserved registers: - * core registers: - * r4 - r10, fp, sp, lr - * VFP registers (architectural support dependent): - * d8 - d15 - */ -#define _JBLEN 20 -#define _JBTYPE long long -#endif - -#if defined(__aarch64__) -#define _JBLEN 22 -#define _JBTYPE long long -#endif - -#if defined(__AVR__) -#define _JBLEN 24 -#endif - -#ifdef __sparc__ -/* - * onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext). - * All else recovered by under/over(flow) handling. - */ -#define _JBLEN 13 -#endif - -#ifdef __BFIN__ -#define _JBLEN 40 -#endif - -#ifdef __epiphany__ -/* All callee preserved registers: r4-r10,fp, sp, lr,r15, r32-r39 */ -#define _JBTYPE long long -#define _JBLEN 10 -#endif - -/* necv70 was 9 as well. */ - -#if defined(__m68k__) || defined(__mc68000__) -/* - * onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6, - * fp2-fp7 for 68881. - * All else recovered by under/over(flow) handling. - */ -#define _JBLEN 34 -#endif - -#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__) -/* - * D, X, Y are not saved. - * Only take into account the pseudo soft registers (max 32). - */ -#define _JBLEN 32 -#endif - -#ifdef __nds32__ -/* 17 words for GPRs, - 1 word for $fpcfg.freg and 30 words for FPUs - Reserved 2 words for aligement-adjustment. When storeing double-precision - floating-point register into memory, the address has to be - double-word-aligned. - Check libc/machine/nds32/setjmp.S for more information. */ -#if __NDS32_EXT_FPU_SP__ || __NDS32_EXT_FPU_DP__ -#define _JBLEN 50 -#else -#define _JBLEN 18 -#endif -#endif - -#if defined(__Z8001__) || defined(__Z8002__) -/* 16 regs + pc */ -#define _JBLEN 20 -#endif - -#ifdef _AM29K -/* - * onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext). - * All else recovered by under/over(flow) handling. - */ -#define _JBLEN 9 -#endif - -#ifdef __i386__ -# if defined(__CYGWIN__) && !defined (_JBLEN) -# define _JBLEN (13 * 4) -# elif defined(__unix__) || defined(__rtems__) -# define _JBLEN 9 -# elif defined(__iamcu__) -/* Intel MCU jmp_buf only covers callee-saved registers. */ -# define _JBLEN 6 -# else -# include "setjmp-dj.h" -# endif -#endif - -#ifdef __x86_64__ -# ifdef __CYGWIN__ -# define _JBTYPE long -# define _JBLEN 32 -# else -# define _JBTYPE long long -# define _JBLEN 8 -# endif -#endif - -#ifdef __i960__ -#define _JBLEN 35 -#endif - -#ifdef __M32R__ -/* Only 8 words are currently needed. 10 gives us some slop if we need - to expand. */ -#define _JBLEN 10 -#endif - -#ifdef __mips__ -# if defined(__mips64) -# define _JBTYPE long long -# endif -# ifdef __mips_soft_float -# define _JBLEN 11 -# else -# define _JBLEN 23 -# endif -#endif - -#ifdef __m88000__ -#define _JBLEN 21 -#endif - -#ifdef __H8300__ -#define _JBLEN 5 -#define _JBTYPE int -#endif - -#ifdef __H8300H__ -/* same as H8/300 but registers are twice as big */ -#define _JBLEN 5 -#define _JBTYPE long -#endif - -#if defined (__H8300S__) || defined (__H8300SX__) -/* same as H8/300 but registers are twice as big */ -#define _JBLEN 5 -#define _JBTYPE long -#endif - -#ifdef __H8500__ -#define _JBLEN 4 -#endif - -#ifdef __sh__ -#if __SH5__ -#define _JBLEN 50 -#define _JBTYPE long long -#else -#define _JBLEN 20 -#endif /* __SH5__ */ -#endif - -#ifdef __v800 -#define _JBLEN 28 -#endif - -#ifdef __PPC__ -#ifdef __powerpc64__ -#ifdef __ALTIVEC__ -#define _JBLEN 70 -#else -#define _JBLEN 43 -#endif -#else -#ifdef __ALTIVEC__ -#define _JBLEN 64 -#else -#define _JBLEN 32 -#endif -#endif -#define _JBTYPE double -#endif - -#ifdef __MICROBLAZE__ -#define _JBLEN 20 -#define _JBTYPE unsigned int -#endif - -#ifdef __hppa__ -/* %r30, %r2-%r18, %r27, pad, %fr12-%fr15. - Note space exists for the FP registers, but they are not - saved. */ -#define _JBLEN 28 -#endif - -#if defined(__mn10300__) || defined(__mn10200__) -#ifdef __AM33_2__ -#define _JBLEN 26 -#else -/* A guess */ -#define _JBLEN 10 -#endif -#endif - -#ifdef __v850 -/* I think our setjmp is saving 15 regs at the moment. Gives us one word - slop if we need to expand. */ -#define _JBLEN 16 -#endif - -#if defined(_C4x) -#define _JBLEN 10 -#endif -#if defined(_C3x) -#define _JBLEN 9 -#endif - -#ifdef __TMS320C6X__ -#define _JBLEN 13 -#endif - -#ifdef __TIC80__ -#define _JBLEN 13 -#endif - -#ifdef __D10V__ -#define _JBLEN 8 -#endif - -#ifdef __D30V__ -#define _JBLEN ((64 /* GPR */ + (2*2) /* ACs */ + 18 /* CRs */) / 2) -#define _JBTYPE double -#endif - -#ifdef __frv__ -#define _JBLEN (68/2) /* room for 68 32-bit regs */ -#define _JBTYPE double -#endif - -#ifdef __moxie__ -#define _JBLEN 10 -#endif - -#ifdef __CRX__ -#define _JBLEN 9 -#endif - -#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__)) -/* r6, r7, r8, r9, r10, r11, r12 (r12L, r12H), - * r13 (r13L, r13H), ra(raL, raH), sp(spL, spH) */ -#define _JBLEN 14 -#define _JBTYPE unsigned short -#endif - -#ifdef __fr30__ -#define _JBLEN 10 -#endif - -#ifdef __FT32__ -#define _JBLEN 27 -#endif - -#ifdef __iq2000__ -#define _JBLEN 32 -#endif - -#ifdef __mcore__ -#define _JBLEN 16 -#endif - -#ifdef __arc__ -#define _JBLEN 25 /* r13-r30,blink,lp_count,lp_start,lp_end,mlo,mhi,status32 */ -#endif - -#ifdef __MMIX__ -/* Using a layout compatible with GCC's built-in. */ -#define _JBLEN 5 -#define _JBTYPE unsigned long -#endif - -#ifdef __mt__ -#define _JBLEN 16 -#endif - -#ifdef __SPU__ -#define _JBLEN 50 -#define _JBTYPE __vector signed int -#endif - -#ifdef __xstormy16__ -/* 4 GPRs plus SP plus PC. */ -#define _JBLEN 8 -#endif - -#ifdef __mep__ -/* 16 GPRs, pc, hi, lo */ -#define _JBLEN 19 -#endif - -#ifdef __CRIS__ -#define _JBLEN 18 -#endif - -#ifdef __ia64 -#define _JBLEN 64 -#endif - -#ifdef __lm32__ -#define _JBLEN 19 -#endif - -#ifdef __m32c__ -#if defined(__r8c_cpu__) || defined(__m16c_cpu__) -#define _JBLEN (22/2) -#else -#define _JBLEN (34/2) -#endif -#define _JBTYPE unsigned short -#endif /* __m32c__ */ - -#ifdef __MSP430__ -#define _JBLEN 9 - -#ifdef __MSP430X_LARGE__ -#define _JBTYPE unsigned long -#else -#define _JBTYPE unsigned short -#endif -#endif - -#ifdef __RL78__ -/* Three banks of registers, SP, CS, ES, PC */ -#define _JBLEN (8*3+8) -#define _JBTYPE unsigned char -#endif - -/* - * There are two versions of setjmp()/longjmp(): - * 1) Compiler (gcc) built-in versions. - * 2) Function-call versions. - * - * The built-in versions are used most of the time. When used, gcc replaces - * calls to setjmp()/longjmp() with inline assembly code. The built-in - * versions save/restore a variable number of registers. - - * _JBLEN is set to 40 to be ultra-safe with the built-in versions. - * It only needs to be 12 for the function-call versions - * but this data structure is used by both versions. - */ -#ifdef __NIOS2__ -#define _JBLEN 40 -#define _JBTYPE unsigned long -#endif - -#ifdef __PRU__ -#define _JBLEN 48 -#define _JBTYPE unsigned int -#endif - -#ifdef __RX__ -#define _JBLEN 0x44 -#endif - -#ifdef __VISIUM__ -/* All call-saved GP registers: r11-r19,r21,r22,r23. */ -#define _JBLEN 12 -#endif - -#ifdef __riscv -/* _JBTYPE using long long to make sure the alignment is align to 8 byte, - otherwise in rv32imafd, store/restore FPR may mis-align. */ -#define _JBTYPE long long -#ifdef __riscv_32e -#define _JBLEN ((4*sizeof(long))/sizeof(long)) -#else -#define _JBLEN ((14*sizeof(long) + 12*sizeof(double))/sizeof(long)) -#endif -#endif - -#ifdef __CSKYABIV2__ -#define _JBTYPE unsigned long -#if defined(__CK801__) -#define _JBLEN 7 -#elif defined(__CK802__) -#define _JBLEN 10 -#else -#define _JBLEN 18 -#endif -#endif - -#ifdef _JBLEN -#ifdef _JBTYPE -typedef _JBTYPE jmp_buf[_JBLEN]; -#else -typedef int jmp_buf[_JBLEN]; -#endif -#endif - -_END_STD_C - -#if (defined(__CYGWIN__) || defined(__rtems__)) && __POSIX_VISIBLE -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* POSIX sigsetjmp/siglongjmp macros */ -#ifdef _JBTYPE -typedef _JBTYPE sigjmp_buf[_JBLEN+1+((sizeof (_JBTYPE) + sizeof (sigset_t) - 1) - /sizeof (_JBTYPE))]; -#else -typedef int sigjmp_buf[_JBLEN+1+(sizeof (sigset_t)/sizeof (int))]; -#endif - -#define _SAVEMASK _JBLEN -#define _SIGMASK (_JBLEN+1) - -#ifdef __CYGWIN__ -# define _CYGWIN_WORKING_SIGSETJMP -#endif - -#ifdef _POSIX_THREADS -#define __SIGMASK_FUNC pthread_sigmask -#else -#define __SIGMASK_FUNC sigprocmask -#endif - -#ifdef __CYGWIN__ -/* Per POSIX, siglongjmp has to be implemented as function. Cygwin - provides functions for both, siglongjmp and sigsetjmp since 2.2.0. */ -extern void siglongjmp (sigjmp_buf, int) __attribute__ ((__noreturn__)); -extern int sigsetjmp (sigjmp_buf, int); -#endif - -#if defined(__GNUC__) - -#define sigsetjmp(env, savemask) \ - __extension__ \ - ({ \ - sigjmp_buf *_sjbuf = &(env); \ - ((*_sjbuf)[_SAVEMASK] = savemask,\ - __SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *)((*_sjbuf) + _SIGMASK)),\ - setjmp (*_sjbuf)); \ - }) - -#define siglongjmp(env, val) \ - __extension__ \ - ({ \ - sigjmp_buf *_sjbuf = &(env); \ - ((((*_sjbuf)[_SAVEMASK]) ? \ - __SIGMASK_FUNC (SIG_SETMASK, (sigset_t *)((*_sjbuf) + _SIGMASK), 0)\ - : 0), \ - longjmp (*_sjbuf, val)); \ - }) - -#else /* !__GNUC__ */ - -#define sigsetjmp(env, savemask) ((env)[_SAVEMASK] = savemask,\ - __SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *) ((env) + _SIGMASK)),\ - setjmp (env)) - -#define siglongjmp(env, val) ((((env)[_SAVEMASK])?\ - __SIGMASK_FUNC (SIG_SETMASK, (sigset_t *) ((env) + _SIGMASK), 0):0),\ - longjmp (env, val)) - -#endif - -/* POSIX _setjmp/_longjmp, maintained for XSI compatibility. These - are equivalent to sigsetjmp/siglongjmp when not saving the signal mask. - New applications should use sigsetjmp/siglongjmp instead. */ -#ifdef __CYGWIN__ -extern void _longjmp (jmp_buf, int) __attribute__ ((__noreturn__)); -extern int _setjmp (jmp_buf); -#else -#define _setjmp(env) sigsetjmp ((env), 0) -#define _longjmp(env, val) siglongjmp ((env), (val)) -#endif - -#ifdef __cplusplus -} -#endif -#endif /* (__CYGWIN__ or __rtems__) and __POSIX_VISIBLE */ diff --git a/lib/include/machine/stdlib.h b/lib/include/machine/stdlib.h deleted file mode 100644 index fa3f3a1..0000000 --- a/lib/include/machine/stdlib.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _MACHSTDLIB_H_ -#define _MACHSTDLIB_H_ - -/* place holder so platforms may add stdlib.h extensions */ - -#endif /* _MACHSTDLIB_H_ */ - - diff --git a/lib/include/machine/termios.h b/lib/include/machine/termios.h deleted file mode 100644 index 41fd459..0000000 --- a/lib/include/machine/termios.h +++ /dev/null @@ -1 +0,0 @@ -#define __MAX_BAUD B4000000 diff --git a/lib/include/machine/time.h b/lib/include/machine/time.h deleted file mode 100644 index c75edaf..0000000 --- a/lib/include/machine/time.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef _MACHTIME_H_ -#define _MACHTIME_H_ - -#if defined(__rtems__) || defined(__VISIUM__) || defined(__riscv) -#define _CLOCKS_PER_SEC_ 1000000 -#elif defined(__aarch64__) || defined(__arm__) || defined(__thumb__) -#define _CLOCKS_PER_SEC_ 100 -#endif - -#ifdef __SPU__ -#include -int nanosleep (const struct timespec *, struct timespec *); -#endif - -#endif /* _MACHTIME_H_ */ diff --git a/lib/include/machine/types.h b/lib/include/machine/types.h deleted file mode 100644 index 19d0e85..0000000 --- a/lib/include/machine/types.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Newlib targets may provide an own version of this file in their machine - * directory to add custom user types for . - */ -#ifndef _SYS_TYPES_H -#error "must be included via " -#endif /* !_SYS_TYPES_H */ - -#if defined(__XMK__) && defined(___int64_t_defined) -typedef __uint64_t u_quad_t; -typedef __int64_t quad_t; -typedef quad_t * qaddr_t; -#endif diff --git a/lib/include/malloc.h b/lib/include/malloc.h deleted file mode 100644 index a9dc5bc..0000000 --- a/lib/include/malloc.h +++ /dev/null @@ -1,173 +0,0 @@ -/* malloc.h -- header file for memory routines. */ - -#ifndef _INCLUDE_MALLOC_H_ -#define _INCLUDE_MALLOC_H_ - -#include <_ansi.h> -#include - -#define __need_size_t -#include - -/* include any machine-specific extensions */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* This version of struct mallinfo must match the one in - libc/stdlib/mallocr.c. */ - -struct mallinfo { - size_t arena; /* total space allocated from system */ - size_t ordblks; /* number of non-inuse chunks */ - size_t smblks; /* unused -- always zero */ - size_t hblks; /* number of mmapped regions */ - size_t hblkhd; /* total space in mmapped regions */ - size_t usmblks; /* unused -- always zero */ - size_t fsmblks; /* unused -- always zero */ - size_t uordblks; /* total allocated space */ - size_t fordblks; /* total non-inuse space */ - size_t keepcost; /* top-most, releasable (via malloc_trim) space */ -}; - -/* The routines. */ - -extern void *malloc (size_t); -#ifdef __CYGWIN__ -#undef _malloc_r -#define _malloc_r(r, s) malloc (s) -#else -extern void *_malloc_r (struct _reent *, size_t); -#endif - -extern void free (void *); -#ifdef __CYGWIN__ -#undef _free_r -#define _free_r(r, p) free (p) -#else -extern void _free_r (struct _reent *, void *); -#endif - -extern void *realloc (void *, size_t); -#ifdef __CYGWIN__ -#undef _realloc_r -#define _realloc_r(r, p, s) realloc (p, s) -#else -extern void *_realloc_r (struct _reent *, void *, size_t); -#endif - -extern void *calloc (size_t, size_t); -#ifdef __CYGWIN__ -#undef _calloc_r -#define _calloc_r(r, s1, s2) calloc (s1, s2); -#else -extern void *_calloc_r (struct _reent *, size_t, size_t); -#endif - -extern void *memalign (size_t, size_t); -#ifdef __CYGWIN__ -#undef _memalign_r -#define _memalign_r(r, s1, s2) memalign (s1, s2); -#else -extern void *_memalign_r (struct _reent *, size_t, size_t); -#endif - -extern struct mallinfo mallinfo (void); -#ifdef __CYGWIN__ -#undef _mallinfo_r -#define _mallinfo_r(r) mallinfo () -#else -extern struct mallinfo _mallinfo_r (struct _reent *); -#endif - -extern void malloc_stats (void); -#ifdef __CYGWIN__ -#undef _malloc_stats_r -#define _malloc_stats_r(r) malloc_stats () -#else -extern void _malloc_stats_r (struct _reent *); -#endif - -extern int mallopt (int, int); -#ifdef __CYGWIN__ -#undef _mallopt_r -#define _mallopt_r(i1, i2) mallopt (i1, i2) -#else -extern int _mallopt_r (struct _reent *, int, int); -#endif - -extern size_t malloc_usable_size (void *); -#ifdef __CYGWIN__ -#undef _malloc_usable_size_r -#define _malloc_usable_size_r(r, p) malloc_usable_size (p) -#else -extern size_t _malloc_usable_size_r (struct _reent *, void *); -#endif - -/* These aren't too useful on an embedded system, but we define them - anyhow. */ - -extern void *valloc (size_t); -#ifdef __CYGWIN__ -#undef _valloc_r -#define _valloc_r(r, s) valloc (s) -#else -extern void *_valloc_r (struct _reent *, size_t); -#endif - -extern void *pvalloc (size_t); -#ifdef __CYGWIN__ -#undef _pvalloc_r -#define _pvalloc_r(r, s) pvalloc (s) -#else -extern void *_pvalloc_r (struct _reent *, size_t); -#endif - -extern int malloc_trim (size_t); -#ifdef __CYGWIN__ -#undef _malloc_trim_r -#define _malloc_trim_r(r, s) malloc_trim (s) -#else -extern int _malloc_trim_r (struct _reent *, size_t); -#endif - -extern void __malloc_lock(struct _reent *); - -extern void __malloc_unlock(struct _reent *); - -/* A compatibility routine for an earlier version of the allocator. */ - -extern void mstats (char *); -#ifdef __CYGWIN__ -#undef _mstats_r -#define _mstats_r(r, p) mstats (p) -#else -extern void _mstats_r (struct _reent *, char *); -#endif - -/* SVID2/XPG mallopt options */ - -#define M_MXFAST 1 /* UNUSED in this malloc */ -#define M_NLBLKS 2 /* UNUSED in this malloc */ -#define M_GRAIN 3 /* UNUSED in this malloc */ -#define M_KEEP 4 /* UNUSED in this malloc */ - -/* mallopt options that actually do something */ - -#define M_TRIM_THRESHOLD -1 -#define M_TOP_PAD -2 -#define M_MMAP_THRESHOLD -3 -#define M_MMAP_MAX -4 - -#ifndef __CYGWIN__ -/* Some systems provide this, so do too for compatibility. */ -extern void cfree (void *); -#endif /* __CYGWIN__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* _INCLUDE_MALLOC_H_ */ diff --git a/lib/include/math.h b/lib/include/math.h deleted file mode 100644 index 87f5133..0000000 --- a/lib/include/math.h +++ /dev/null @@ -1,644 +0,0 @@ -#ifndef _MATH_H_ - -#define _MATH_H_ - -#include -#include -#include -#include "_ansi.h" - -_BEGIN_STD_C - -/* Natural log of 2 */ -#define _M_LN2 0.693147180559945309417 - -#if __GNUC_PREREQ (3, 3) - /* gcc >= 3.3 implicitly defines builtins for HUGE_VALx values. */ - -# ifndef HUGE_VAL -# define HUGE_VAL (__builtin_huge_val()) -# endif - -# ifndef HUGE_VALF -# define HUGE_VALF (__builtin_huge_valf()) -# endif - -# ifndef HUGE_VALL -# define HUGE_VALL (__builtin_huge_vall()) -# endif - -# ifndef INFINITY -# define INFINITY (__builtin_inff()) -# endif - -# ifndef NAN -# define NAN (__builtin_nanf("")) -# endif - -#else /* !gcc >= 3.3 */ - - /* No builtins. Use fixed defines instead. (All 3 HUGE plus the INFINITY - * and NAN macros are required to be constant expressions. Using a variable-- - * even a static const--does not meet this requirement, as it cannot be - * evaluated at translation time.) - * The infinities are done using numbers that are far in excess of - * something that would be expected to be encountered in a floating-point - * implementation. (A more certain way uses values from float.h, but that is - * avoided because system includes are not supposed to include each other.) - * This method might produce warnings from some compilers. (It does in - * newer GCCs, but not for ones that would hit this #else.) If this happens, - * please report details to the Newlib mailing list. */ - - #ifndef HUGE_VAL - #define HUGE_VAL (1.0e999999999) - #endif - - #ifndef HUGE_VALF - #define HUGE_VALF (1.0e999999999F) - #endif - - #if !defined(HUGE_VALL) && defined(_HAVE_LONG_DOUBLE) - #define HUGE_VALL (1.0e999999999L) - #endif - - #if !defined(INFINITY) - #define INFINITY (HUGE_VALF) - #endif - - #if !defined(NAN) - #if defined(__GNUC__) && defined(__cplusplus) - /* Exception: older g++ versions warn about the divide by 0 used in the - * normal case (even though older gccs do not). This trick suppresses the - * warning, but causes errors for plain gcc, so is only used in the one - * special case. */ - static const union { __ULong __i[1]; float __d; } __Nanf = {0x7FC00000}; - #define NAN (__Nanf.__d) - #else - #define NAN (0.0F/0.0F) - #endif - #endif - -#endif /* !gcc >= 3.3 */ - -/* Reentrant ANSI C functions. */ - -#ifndef __math_68881 -extern double atan (double); -extern double cos (double); -extern double sin (double); -extern double tan (double); -extern double tanh (double); -extern double frexp (double, int *); -extern double modf (double, double *); -extern double ceil (double); -extern double fabs (double); -extern double floor (double); -#endif /* ! defined (__math_68881) */ - -/* Non reentrant ANSI C functions. */ - -#ifndef _REENT_ONLY -#ifndef __math_68881 -extern double acos (double); -extern double asin (double); -extern double atan2 (double, double); -extern double cosh (double); -extern double sinh (double); -extern double exp (double); -extern double ldexp (double, int); -extern double log (double); -extern double log10 (double); -extern double pow (double, double); -extern double sqrt (double); -extern double fmod (double, double); -#endif /* ! defined (__math_68881) */ -#endif /* ! defined (_REENT_ONLY) */ - -#if __MISC_VISIBLE -extern int finite (double); -extern int finitef (float); -extern int finitel (long double); -extern int isinff (float); -extern int isnanf (float); -#ifdef __CYGWIN__ /* not implemented in newlib yet */ -extern int isinfl (long double); -extern int isnanl (long double); -#endif -#if !defined(__cplusplus) || __cplusplus < 201103L -extern int isinf (double); -#endif -#endif /* __MISC_VISIBLE */ -#if (__MISC_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 600)) \ - && (!defined(__cplusplus) || __cplusplus < 201103L) -extern int isnan (double); -#endif - -#if __ISO_C_VISIBLE >= 1999 -/* ISO C99 types and macros. */ - -/* FIXME: FLT_EVAL_METHOD should somehow be gotten from float.h (which is hard, - * considering that the standard says the includes it defines should not - * include other includes that it defines) and that value used. (This can be - * solved, but autoconf has a bug which makes the solution more difficult, so - * it has been skipped for now.) */ -#if !defined(FLT_EVAL_METHOD) && defined(__FLT_EVAL_METHOD__) - #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ - #define __TMP_FLT_EVAL_METHOD -#endif /* FLT_EVAL_METHOD */ -#if defined FLT_EVAL_METHOD -/* FLT_EVAL_METHOD == 16 has meaning as defined in ISO/IEC TS 18661-3, - * which provides non-compliant extensions to C and POSIX (by adding - * additional positive values for FLT_EVAL_METHOD). It effectively has - * same meaning as the C99 and C11 definitions for value 0, while also - * serving as a flag that the _Float16 (float16_t) type exists. - * - * FLT_EVAL_METHOD could be any number of bits of supported floating point - * format (e.g. 32, 64, 128), but currently only AArch64 and few other targets - * might define that as 16. */ - #if (FLT_EVAL_METHOD == 0) \ - || (FLT_EVAL_METHOD == 16) - typedef float float_t; - typedef double double_t; - #elif FLT_EVAL_METHOD == 1 - typedef double float_t; - typedef double double_t; - #elif FLT_EVAL_METHOD == 2 - typedef long double float_t; - typedef long double double_t; - #else - /* Implementation-defined. Assume float_t and double_t have been - * defined previously for this configuration (e.g. config.h). */ - - /* If __DOUBLE_TYPE is defined (__FLOAT_TYPE is then supposed to be - defined as well) float_t and double_t definition is suggested by - an arch specific header. */ - #ifdef __DOUBLE_TYPE - typedef __DOUBLE_TYPE double_t; - typedef __FLOAT_TYPE float_t; - #endif - /* Assume config.h has provided these types. */ - #endif -#else - /* Assume basic definitions. */ - typedef float float_t; - typedef double double_t; -#endif -#if defined(__TMP_FLT_EVAL_METHOD) - #undef FLT_EVAL_METHOD -#endif - -#define FP_NAN 0 -#define FP_INFINITE 1 -#define FP_ZERO 2 -#define FP_SUBNORMAL 3 -#define FP_NORMAL 4 - -#ifndef FP_ILOGB0 -# define FP_ILOGB0 (-__INT_MAX__) -#endif -#ifndef FP_ILOGBNAN -# define FP_ILOGBNAN __INT_MAX__ -#endif - -#ifndef MATH_ERRNO -# define MATH_ERRNO 1 -#endif -#ifndef MATH_ERREXCEPT -# define MATH_ERREXCEPT 2 -#endif -#ifndef math_errhandling -# ifdef _IEEE_LIBM -# define _MATH_ERRHANDLING_ERRNO 0 -# else -# define _MATH_ERRHANDLING_ERRNO MATH_ERRNO -# endif -# ifdef _SUPPORTS_ERREXCEPT -# define _MATH_ERRHANDLING_ERREXCEPT MATH_ERREXCEPT -# else -# define _MATH_ERRHANDLING_ERREXCEPT 0 -# endif -# define math_errhandling (_MATH_ERRHANDLING_ERRNO | _MATH_ERRHANDLING_ERREXCEPT) -#endif - -extern int __isinff (float); -extern int __isinfd (double); -extern int __isnanf (float); -extern int __isnand (double); -extern int __fpclassifyf (float); -extern int __fpclassifyd (double); -extern int __signbitf (float); -extern int __signbitd (double); - -/* Note: isinf and isnan were once functions in newlib that took double - * arguments. C99 specifies that these names are reserved for macros - * supporting multiple floating point types. Thus, they are - * now defined as macros. Implementations of the old functions - * taking double arguments still exist for compatibility purposes - * (prototypes for them are earlier in this header). */ - -#if __GNUC_PREREQ (4, 4) - #define fpclassify(__x) (__builtin_fpclassify (FP_NAN, FP_INFINITE, \ - FP_NORMAL, FP_SUBNORMAL, \ - FP_ZERO, __x)) - #ifndef isfinite - #define isfinite(__x) (__builtin_isfinite (__x)) - #endif - #ifndef isinf - #define isinf(__x) (__builtin_isinf_sign (__x)) - #endif - #ifndef isnan - #define isnan(__x) (__builtin_isnan (__x)) - #endif - #define isnormal(__x) (__builtin_isnormal (__x)) -#else - #define fpclassify(__x) \ - ((sizeof(__x) == sizeof(float)) ? __fpclassifyf(__x) : \ - __fpclassifyd(__x)) - #ifndef isfinite - #define isfinite(__y) \ - (__extension__ ({int __cy = fpclassify(__y); \ - __cy != FP_INFINITE && __cy != FP_NAN;})) - #endif - #ifndef isinf - #define isinf(__x) (fpclassify(__x) == FP_INFINITE) - #endif - #ifndef isnan - #define isnan(__x) (fpclassify(__x) == FP_NAN) - #endif - #define isnormal(__x) (fpclassify(__x) == FP_NORMAL) -#endif - -#if __GNUC_PREREQ (4, 0) - #if defined(_HAVE_LONG_DOUBLE) - #define signbit(__x) \ - ((sizeof(__x) == sizeof(float)) ? __builtin_signbitf(__x) : \ - (sizeof(__x) == sizeof(double)) ? __builtin_signbit (__x) : \ - __builtin_signbitl(__x)) - #else - #define signbit(__x) \ - ((sizeof(__x) == sizeof(float)) ? __builtin_signbitf(__x) : \ - __builtin_signbit (__x)) - #endif -#else - #define signbit(__x) \ - ((sizeof(__x) == sizeof(float)) ? __signbitf(__x) : \ - __signbitd(__x)) -#endif - -#if __GNUC_PREREQ (2, 97) -#define isgreater(__x,__y) (__builtin_isgreater (__x, __y)) -#define isgreaterequal(__x,__y) (__builtin_isgreaterequal (__x, __y)) -#define isless(__x,__y) (__builtin_isless (__x, __y)) -#define islessequal(__x,__y) (__builtin_islessequal (__x, __y)) -#define islessgreater(__x,__y) (__builtin_islessgreater (__x, __y)) -#define isunordered(__x,__y) (__builtin_isunordered (__x, __y)) -#else -#define isgreater(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x > __y);})) -#define isgreaterequal(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x >= __y);})) -#define isless(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x < __y);})) -#define islessequal(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x <= __y);})) -#define islessgreater(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x < __y || __x > __y);})) - -#define isunordered(a,b) \ - (__extension__ ({__typeof__(a) __a = (a); __typeof__(b) __b = (b); \ - fpclassify(__a) == FP_NAN || fpclassify(__b) == FP_NAN;})) -#endif - -/* Non ANSI double precision functions. */ - -extern double infinity (void); -extern double nan (const char *); -extern double copysign (double, double); -extern double logb (double); -extern int ilogb (double); - -extern double asinh (double); -extern double cbrt (double); -extern double nextafter (double, double); -extern double rint (double); -extern double scalbn (double, int); - -extern double exp2 (double); -extern double scalbln (double, long int); -extern double tgamma (double); -extern double nearbyint (double); -extern long int lrint (double); -extern long long int llrint (double); -extern double round (double); -extern long int lround (double); -extern long long int llround (double); -extern double trunc (double); -extern double remquo (double, double, int *); -extern double fdim (double, double); -extern double fmax (double, double); -extern double fmin (double, double); -extern double fma (double, double, double); - -#ifndef __math_68881 -extern double log1p (double); -extern double expm1 (double); -#endif /* ! defined (__math_68881) */ - -#ifndef _REENT_ONLY -extern double acosh (double); -extern double atanh (double); -extern double remainder (double, double); -extern double gamma (double); -extern double lgamma (double); -extern double erf (double); -extern double erfc (double); -extern double log2 (double); -#if !defined(__cplusplus) -#define log2(x) (log (x) / _M_LN2) -#endif - -#ifndef __math_68881 -extern double hypot (double, double); -#endif - -#endif /* ! defined (_REENT_ONLY) */ - -/* Single precision versions of ANSI functions. */ - -extern float atanf (float); -extern float cosf (float); -extern float sinf (float); -extern float tanf (float); -extern float tanhf (float); -extern float frexpf (float, int *); -extern float modff (float, float *); -extern float ceilf (float); -extern float fabsf (float); -extern float floorf (float); - -#ifndef _REENT_ONLY -extern float acosf (float); -extern float asinf (float); -extern float atan2f (float, float); -extern float coshf (float); -extern float sinhf (float); -extern float expf (float); -extern float ldexpf (float, int); -extern float logf (float); -extern float log10f (float); -extern float powf (float, float); -extern float sqrtf (float); -extern float fmodf (float, float); -#endif /* ! defined (_REENT_ONLY) */ - -/* Other single precision functions. */ - -extern float exp2f (float); -extern float scalblnf (float, long int); -extern float tgammaf (float); -extern float nearbyintf (float); -extern long int lrintf (float); -extern long long int llrintf (float); -extern float roundf (float); -extern long int lroundf (float); -extern long long int llroundf (float); -extern float truncf (float); -extern float remquof (float, float, int *); -extern float fdimf (float, float); -extern float fmaxf (float, float); -extern float fminf (float, float); -extern float fmaf (float, float, float); - -extern float infinityf (void); -extern float nanf (const char *); -extern float copysignf (float, float); -extern float logbf (float); -extern int ilogbf (float); - -extern float asinhf (float); -extern float cbrtf (float); -extern float nextafterf (float, float); -extern float rintf (float); -extern float scalbnf (float, int); -extern float log1pf (float); -extern float expm1f (float); - -#ifndef _REENT_ONLY -extern float acoshf (float); -extern float atanhf (float); -extern float remainderf (float, float); -extern float gammaf (float); -extern float lgammaf (float); -extern float erff (float); -extern float erfcf (float); -extern float log2f (float); -extern float hypotf (float, float); -#endif /* ! defined (_REENT_ONLY) */ - -/* Newlib doesn't fully support long double math functions so far. - On platforms where long double equals double the long double functions - simply call the double functions. On Cygwin the long double functions - are implemented independently from newlib to be able to use optimized - assembler functions despite using the Microsoft x86_64 ABI. */ -#if defined (_LDBL_EQ_DBL) || defined (__CYGWIN__) || \ - defined(__aarch64__) || defined(__i386__) || defined(__x86_64__) -/* Reentrant ANSI C functions. */ -#ifndef __math_68881 -extern long double atanl (long double); -extern long double cosl (long double); -extern long double sinl (long double); -extern long double tanl (long double); -extern long double tanhl (long double); -extern long double frexpl (long double, int *); -extern long double modfl (long double, long double *); -extern long double ceill (long double); -extern long double fabsl (long double); -extern long double floorl (long double); -extern long double log1pl (long double); -extern long double expm1l (long double); -#endif /* ! defined (__math_68881) */ -/* Non reentrant ANSI C functions. */ -#ifndef _REENT_ONLY -#ifndef __math_68881 -extern long double acosl (long double); -extern long double asinl (long double); -extern long double atan2l (long double, long double); -extern long double coshl (long double); -extern long double sinhl (long double); -extern long double expl (long double); -extern long double ldexpl (long double, int); -extern long double logl (long double); -extern long double log10l (long double); -extern long double powl (long double, long double); -extern long double sqrtl (long double); -extern long double fmodl (long double, long double); -extern long double hypotl (long double, long double); -#endif /* ! defined (__math_68881) */ -#endif /* ! defined (_REENT_ONLY) */ -extern long double copysignl (long double, long double); -extern long double nanl (const char *); -extern int ilogbl (long double); -extern long double asinhl (long double); -extern long double cbrtl (long double); -extern long double nextafterl (long double, long double); -extern float nexttowardf (float, long double); -extern double nexttoward (double, long double); -extern long double nexttowardl (long double, long double); -extern long double logbl (long double); -extern long double log2l (long double); -extern long double rintl (long double); -extern long double scalbnl (long double, int); -extern long double exp2l (long double); -extern long double scalblnl (long double, long); -extern long double tgammal (long double); -extern long double nearbyintl (long double); -extern long int lrintl (long double); -extern long long int llrintl (long double); -extern long double roundl (long double); -extern long lroundl (long double); -extern long long int llroundl (long double); -extern long double truncl (long double); -extern long double remquol (long double, long double, int *); -extern long double fdiml (long double, long double); -extern long double fmaxl (long double, long double); -extern long double fminl (long double, long double); -extern long double fmal (long double, long double, long double); -#ifndef _REENT_ONLY -extern long double acoshl (long double); -extern long double atanhl (long double); -extern long double remainderl (long double, long double); -extern long double lgammal (long double); -extern long double erfl (long double); -extern long double erfcl (long double); -#endif /* ! defined (_REENT_ONLY) */ -#else /* !_LDBL_EQ_DBL && !__CYGWIN__ */ -extern long double hypotl (long double, long double); -extern long double sqrtl (long double); -extern long double frexpl (long double, int *); -#ifdef __i386__ -/* Other long double precision functions. */ -extern _LONG_DOUBLE rintl (_LONG_DOUBLE); -extern long int lrintl (_LONG_DOUBLE); -extern long long int llrintl (_LONG_DOUBLE); -#endif /* __i386__ */ -#endif /* !_LDBL_EQ_DBL && !__CYGWIN__ */ - -#endif /* __ISO_C_VISIBLE >= 1999 */ - -#if __MISC_VISIBLE -extern double drem (double, double); -extern float dremf (float, float); -#ifdef __CYGWIN__ -extern float dreml (long double, long double); -#endif /* __CYGWIN__ */ -extern double gamma_r (double, int *); -extern double lgamma_r (double, int *); -extern float gammaf_r (float, int *); -extern float lgammaf_r (float, int *); -#endif - -#if __MISC_VISIBLE || __XSI_VISIBLE -extern double y0 (double); -extern double y1 (double); -extern double yn (int, double); -extern double j0 (double); -extern double j1 (double); -extern double jn (int, double); -#endif - -#if __MISC_VISIBLE || __XSI_VISIBLE >= 600 -extern float y0f (float); -extern float y1f (float); -extern float ynf (int, float); -extern float j0f (float); -extern float j1f (float); -extern float jnf (int, float); -#endif - -/* GNU extensions */ -#if __GNU_VISIBLE -extern void sincos (double, double *, double *); -extern void sincosf (float, float *, float *); -#ifdef __CYGWIN__ -extern void sincosl (long double, long double *, long double *); -#endif /* __CYGWIN__ */ -# ifndef exp10 -extern double exp10 (double); -# endif -# ifndef pow10 -extern double pow10 (double); -# endif -# ifndef exp10f -extern float exp10f (float); -# endif -# ifndef pow10f -extern float pow10f (float); -# endif -#ifdef __CYGWIN__ -# ifndef exp10l -extern float exp10l (float); -# endif -# ifndef pow10l -extern float pow10l (float); -# endif -#endif /* __CYGWIN__ */ -#endif /* __GNU_VISIBLE */ - -#if __MISC_VISIBLE || __XSI_VISIBLE -/* The gamma functions use a global variable, signgam. */ -#ifndef _REENT_ONLY -#define signgam (*__signgam()) -extern int *__signgam (void); -#endif /* ! defined (_REENT_ONLY) */ - -#define __signgam_r(ptr) _REENT_SIGNGAM(ptr) -#endif /* __MISC_VISIBLE || __XSI_VISIBLE */ - -/* Useful constants. */ - -#if __BSD_VISIBLE || __XSI_VISIBLE - -#define MAXFLOAT 3.40282347e+38F - -#define M_E 2.7182818284590452354 -#define M_LOG2E 1.4426950408889634074 -#define M_LOG10E 0.43429448190325182765 -#define M_LN2 _M_LN2 -#define M_LN10 2.30258509299404568402 -#define M_PI 3.14159265358979323846 -#define M_PI_2 1.57079632679489661923 -#define M_PI_4 0.78539816339744830962 -#define M_1_PI 0.31830988618379067154 -#define M_2_PI 0.63661977236758134308 -#define M_2_SQRTPI 1.12837916709551257390 -#define M_SQRT2 1.41421356237309504880 -#define M_SQRT1_2 0.70710678118654752440 - -#endif - -#if __BSD_VISIBLE - -#define M_TWOPI (M_PI * 2.0) -#define M_3PI_4 2.3561944901923448370E0 -#define M_SQRTPI 1.77245385090551602792981 -#define M_LN2LO 1.9082149292705877000E-10 -#define M_LN2HI 6.9314718036912381649E-1 -#define M_SQRT3 1.73205080756887719000 -#define M_IVLN10 0.43429448190325182765 /* 1 / log(10) */ -#define M_LOG2_E _M_LN2 -#define M_INVLN2 1.4426950408889633870E0 /* 1 / log(2) */ - -#endif /* __BSD_VISIBLE */ - -_END_STD_C - -#ifdef __FAST_MATH__ -#include -#endif - -#endif /* _MATH_H_ */ diff --git a/lib/include/memory.h b/lib/include/memory.h deleted file mode 100644 index f4a14fc..0000000 --- a/lib/include/memory.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef _MEMORY_H -#define _MEMORY_H -#include -#endif /* !_MEMORY_H */ diff --git a/lib/include/ndbm.h b/lib/include/ndbm.h deleted file mode 100644 index 1e5072c..0000000 --- a/lib/include/ndbm.h +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Margo Seltzer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)ndbm.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD$ : src/include/ndbm.h - * Nov 20 19:45:28 2017 UTC by pfg - * SVN Revision 326024 - */ - -#ifndef _NDBM_H_ -#define _NDBM_H_ - -#include /* For mode_t. */ -/* #include */ - -/* - * The above header-file is directly included in `newlib/libc/search/ndbm.c` - * as `db.h` is present in form of `db_local.h`, inside `newlib/libc/search` - * directory and not in `newlib/libc/include`. - * Necessary data-types are mentioned in form of forward-declarations - */ - -/* Map dbm interface onto db(3). */ -#define DBM_RDONLY O_RDONLY - -/* Flags to dbm_store(). */ -#define DBM_INSERT 0 -#define DBM_REPLACE 1 - -/* - * The db(3) support for ndbm always appends this suffix to the - * file name to avoid overwriting the user's original database. - */ -#define DBM_SUFFIX ".db" - -typedef struct { - void *dptr; - int dsize; /* XXX Should be size_t according to 1003.1-2008. */ -} datum; - -struct __db; /* Forward-declaration */ -typedef struct __db DB; /* Forward-declaration */ -typedef DB DBM; -#define dbm_pagfno(a) DBM_PAGFNO_NOT_AVAILABLE - -__BEGIN_DECLS -int dbm_clearerr(DBM *); -void dbm_close(DBM *); -int dbm_delete(DBM *, datum); -int dbm_error(DBM *); -datum dbm_fetch(DBM *, datum); -datum dbm_firstkey(DBM *); -datum dbm_nextkey(DBM *); -DBM *dbm_open(const char *, int, mode_t); -int dbm_store(DBM *, datum, datum, int); -#if __BSD_VISIBLE -int dbm_dirfno(DBM *); -#endif -__END_DECLS - -#endif /* !_NDBM_H_ */ diff --git a/lib/include/newlib.h b/lib/include/newlib.h deleted file mode 100644 index d4fffb1..0000000 --- a/lib/include/newlib.h +++ /dev/null @@ -1,2 +0,0 @@ -/* dummy file for external tools to use. Real file is created by - newlib configuration. */ diff --git a/lib/include/paths.h b/lib/include/paths.h deleted file mode 100644 index b1c70f5..0000000 --- a/lib/include/paths.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _PATHS_H_ -#define _PATHS_H_ - -#define _PATH_DEV "/dev/" -#define _PATH_DEVNULL "/dev/null" -#define _PATH_DEVZERO "/dev/zero" -#define _PATH_BSHELL "/bin/sh" - -#endif /* _PATHS_H_ */ diff --git a/lib/include/pthread.h b/lib/include/pthread.h deleted file mode 100644 index c99ad39..0000000 --- a/lib/include/pthread.h +++ /dev/null @@ -1,456 +0,0 @@ -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2013, 2015. - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - */ - -#ifndef __PTHREAD_h -#define __PTHREAD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#if defined(_POSIX_THREADS) - -#include -#include -#include -#include - -struct _pthread_cleanup_context { - void (*_routine)(void *); - void *_arg; - int _canceltype; - struct _pthread_cleanup_context *_previous; -}; - -/* Register Fork Handlers */ -int pthread_atfork (void (*prepare)(void), void (*parent)(void), - void (*child)(void)); - -/* Mutex Initialization Attributes, P1003.1c/Draft 10, p. 81 */ - -int pthread_mutexattr_init (pthread_mutexattr_t *__attr); -int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr); -int pthread_mutexattr_getpshared (const pthread_mutexattr_t *__attr, - int *__pshared); -int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, - int __pshared); - -#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) - -/* Single UNIX Specification 2 Mutex Attributes types */ - -int pthread_mutexattr_gettype (const pthread_mutexattr_t *__attr, int *__kind); -int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind); - -#endif - -/* Initializing and Destroying a Mutex, P1003.1c/Draft 10, p. 87 */ - -int pthread_mutex_init (pthread_mutex_t *__mutex, - const pthread_mutexattr_t *__attr); -int pthread_mutex_destroy (pthread_mutex_t *__mutex); - -/* This is used to statically initialize a pthread_mutex_t. Example: - - pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - */ - -#define PTHREAD_MUTEX_INITIALIZER _PTHREAD_MUTEX_INITIALIZER - -/* Locking and Unlocking a Mutex, P1003.1c/Draft 10, p. 93 - NOTE: P1003.4b/D8 adds pthread_mutex_timedlock(), p. 29 */ - -int pthread_mutex_lock (pthread_mutex_t *__mutex); -int pthread_mutex_trylock (pthread_mutex_t *__mutex); -int pthread_mutex_unlock (pthread_mutex_t *__mutex); - -#if defined(_POSIX_TIMEOUTS) - -int pthread_mutex_timedlock (pthread_mutex_t *__mutex, - const struct timespec *__timeout); - -#endif /* _POSIX_TIMEOUTS */ - -#if __GNU_VISIBLE -/* The Issue 8 standard adds pthread_mutex_clocklock() */ -int pthread_mutex_clocklock(pthread_mutex_t *__restrict, clockid_t, - const struct timespec *__restrict); -#endif /* __GNU_VISIBLE */ - -/* Condition Variable Initialization Attributes, P1003.1c/Draft 10, p. 96 */ - -int pthread_condattr_init (pthread_condattr_t *__attr); -int pthread_condattr_destroy (pthread_condattr_t *__attr); - -int pthread_condattr_getclock (const pthread_condattr_t *__restrict __attr, - clockid_t *__restrict __clock_id); -int pthread_condattr_setclock (pthread_condattr_t *__attr, - clockid_t __clock_id); - -int pthread_condattr_getpshared (const pthread_condattr_t *__attr, - int *__pshared); -int pthread_condattr_setpshared (pthread_condattr_t *__attr, int __pshared); - -/* Initializing and Destroying a Condition Variable, P1003.1c/Draft 10, p. 87 */ - -int pthread_cond_init (pthread_cond_t *__cond, - const pthread_condattr_t *__attr); -int pthread_cond_destroy (pthread_cond_t *__mutex); - -/* This is used to statically initialize a pthread_cond_t. Example: - - pthread_cond_t cond = PTHREAD_COND_INITIALIZER; - */ - -#define PTHREAD_COND_INITIALIZER _PTHREAD_COND_INITIALIZER - -/* Broadcasting and Signaling a Condition, P1003.1c/Draft 10, p. 101 */ - -int pthread_cond_signal (pthread_cond_t *__cond); -int pthread_cond_broadcast (pthread_cond_t *__cond); - -/* Waiting on a Condition, P1003.1c/Draft 10, p. 105 */ - -int pthread_cond_wait (pthread_cond_t *__cond, pthread_mutex_t *__mutex); - -int pthread_cond_timedwait (pthread_cond_t *__cond, - pthread_mutex_t *__mutex, - const struct timespec *__abstime); - -#if __GNU_VISIBLE -/* The Issue 8 standard adds pthread_cond_clockwait() */ -int pthread_cond_clockwait(pthread_cond_t *__restrict, - pthread_mutex_t *__restrict, clockid_t, - const struct timespec *__restrict); -#endif /* __GNU_VISIBLE */ - -#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) - -/* Thread Creation Scheduling Attributes, P1003.1c/Draft 10, p. 120 */ - -int pthread_attr_setscope (pthread_attr_t *__attr, int __contentionscope); -int pthread_attr_getscope (const pthread_attr_t *__attr, - int *__contentionscope); -int pthread_attr_setinheritsched (pthread_attr_t *__attr, - int __inheritsched); -int pthread_attr_getinheritsched (const pthread_attr_t *__attr, - int *__inheritsched); -int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy); -int pthread_attr_getschedpolicy (const pthread_attr_t *__attr, - int *__policy); - -#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ - -int pthread_attr_setschedparam (pthread_attr_t *__attr, - const struct sched_param *__param); -int pthread_attr_getschedparam (const pthread_attr_t *__attr, - struct sched_param *__param); - -#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) - -/* Dynamic Thread Scheduling Parameters Access, P1003.1c/Draft 10, p. 124 */ - -int pthread_getschedparam (pthread_t __pthread, int *__policy, - struct sched_param *__param); -int pthread_setschedparam (pthread_t __pthread, int __policy, - const struct sched_param *__param); - -/* Set Scheduling Priority of a Thread */ -int pthread_setschedprio (pthread_t thread, int prio); - -#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ - -#if __GNU_VISIBLE -int pthread_getname_np(pthread_t, char *, size_t) __nonnull((2)); - -int pthread_setname_np(pthread_t, const char *) __nonnull((2)); -#endif - -#if defined(_POSIX_THREAD_PRIO_INHERIT) || defined(_POSIX_THREAD_PRIO_PROTECT) - -/* Mutex Initialization Scheduling Attributes, P1003.1c/Draft 10, p. 128 */ - -int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, - int __protocol); -int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *__attr, - int *__protocol); -int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, - int __prioceiling); -int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *__attr, - int *__prioceiling); - -#endif /* _POSIX_THREAD_PRIO_INHERIT || _POSIX_THREAD_PRIO_PROTECT */ - -#if defined(_POSIX_THREAD_PRIO_PROTECT) - -/* Change the Priority Ceiling of a Mutex, P1003.1c/Draft 10, p. 131 */ - -int pthread_mutex_setprioceiling (pthread_mutex_t *__mutex, - int __prioceiling, int *__old_ceiling); -int pthread_mutex_getprioceiling (const pthread_mutex_t *__restrict __mutex, - int *__prioceiling); - -#endif /* _POSIX_THREAD_PRIO_PROTECT */ - -/* Thread Creation Attributes, P1003.1c/Draft 10, p, 140 */ - -int pthread_attr_init (pthread_attr_t *__attr); -int pthread_attr_destroy (pthread_attr_t *__attr); -int pthread_attr_setstack (pthread_attr_t *attr, - void *__stackaddr, size_t __stacksize); -int pthread_attr_getstack (const pthread_attr_t *attr, - void **__stackaddr, size_t *__stacksize); -int pthread_attr_getstacksize (const pthread_attr_t *__attr, - size_t *__stacksize); -int pthread_attr_setstacksize (pthread_attr_t *__attr, size_t __stacksize); -int pthread_attr_getstackaddr (const pthread_attr_t *__attr, - void **__stackaddr); -int pthread_attr_setstackaddr (pthread_attr_t *__attr, void *__stackaddr); -int pthread_attr_getdetachstate (const pthread_attr_t *__attr, - int *__detachstate); -int pthread_attr_setdetachstate (pthread_attr_t *__attr, int __detachstate); -int pthread_attr_getguardsize (const pthread_attr_t *__attr, - size_t *__guardsize); -int pthread_attr_setguardsize (pthread_attr_t *__attr, size_t __guardsize); - -/* POSIX thread APIs beyond the POSIX standard but provided - * in GNU/Linux. They may be provided by other OSes for - * compatibility. - */ -#if __GNU_VISIBLE -#if defined(__rtems__) -int pthread_attr_setaffinity_np (pthread_attr_t *__attr, - size_t __cpusetsize, - const cpu_set_t *__cpuset); -int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, - size_t __cpusetsize, cpu_set_t *__cpuset); - -int pthread_setaffinity_np (pthread_t __id, size_t __cpusetsize, - const cpu_set_t *__cpuset); -int pthread_getaffinity_np (const pthread_t __id, size_t __cpusetsize, - cpu_set_t *__cpuset); - -int pthread_getattr_np (pthread_t __id, pthread_attr_t *__attr); -#endif /* defined(__rtems__) */ -#endif /* __GNU_VISIBLE */ - -/* Thread Creation, P1003.1c/Draft 10, p. 144 */ - -int pthread_create (pthread_t *__pthread, const pthread_attr_t *__attr, - void *(*__start_routine)(void *), void *__arg); - -/* Wait for Thread Termination, P1003.1c/Draft 10, p. 147 */ - -int pthread_join (pthread_t __pthread, void **__value_ptr); - -/* Detaching a Thread, P1003.1c/Draft 10, p. 149 */ - -int pthread_detach (pthread_t __pthread); - -/* Thread Termination, p1003.1c/Draft 10, p. 150 */ - -void pthread_exit (void *__value_ptr) __dead2; - -/* Get Calling Thread's ID, p1003.1c/Draft 10, p. XXX */ - -pthread_t pthread_self (void); - -/* Compare Thread IDs, p1003.1c/Draft 10, p. 153 */ - -int pthread_equal (pthread_t __t1, pthread_t __t2); - -/* Retrieve ID of a Thread's CPU Time Clock */ -int pthread_getcpuclockid (pthread_t thread, clockid_t *clock_id); - -/* Get/Set Current Thread's Concurrency Level */ -int pthread_setconcurrency (int new_level); -int pthread_getconcurrency (void); - -#if __BSD_VISIBLE || __GNU_VISIBLE -void pthread_yield (void); -#endif - -/* Dynamic Package Initialization */ - -/* This is used to statically initialize a pthread_once_t. Example: - - pthread_once_t once = PTHREAD_ONCE_INIT; - - NOTE: This is named inconsistently -- it should be INITIALIZER. */ - -#define PTHREAD_ONCE_INIT _PTHREAD_ONCE_INIT - -int pthread_once (pthread_once_t *__once_control, - void (*__init_routine)(void)); - -/* Thread-Specific Data Key Create, P1003.1c/Draft 10, p. 163 */ - -int pthread_key_create (pthread_key_t *__key, - void (*__destructor)(void *)); - -/* Thread-Specific Data Management, P1003.1c/Draft 10, p. 165 */ - -int pthread_setspecific (pthread_key_t __key, const void *__value); -void * pthread_getspecific (pthread_key_t __key); - -/* Thread-Specific Data Key Deletion, P1003.1c/Draft 10, p. 167 */ - -int pthread_key_delete (pthread_key_t __key); - -/* Execution of a Thread, P1003.1c/Draft 10, p. 181 */ - -#define PTHREAD_CANCEL_ENABLE 0 -#define PTHREAD_CANCEL_DISABLE 1 - -#define PTHREAD_CANCEL_DEFERRED 0 -#define PTHREAD_CANCEL_ASYNCHRONOUS 1 - -#define PTHREAD_CANCELED ((void *) -1) - -int pthread_cancel (pthread_t __pthread); - -/* Setting Cancelability State, P1003.1c/Draft 10, p. 183 */ - -int pthread_setcancelstate (int __state, int *__oldstate); -int pthread_setcanceltype (int __type, int *__oldtype); -void pthread_testcancel (void); - -/* Establishing Cancellation Handlers, P1003.1c/Draft 10, p. 184 */ - -void _pthread_cleanup_push (struct _pthread_cleanup_context *_context, - void (*_routine)(void *), void *_arg); - -void _pthread_cleanup_pop (struct _pthread_cleanup_context *_context, - int _execute); - -/* It is intentional to open and close the scope in two different macros */ -#define pthread_cleanup_push(_routine, _arg) \ - do { \ - struct _pthread_cleanup_context _pthread_clup_ctx; \ - _pthread_cleanup_push(&_pthread_clup_ctx, (_routine), (_arg)) - -#define pthread_cleanup_pop(_execute) \ - _pthread_cleanup_pop(&_pthread_clup_ctx, (_execute)); \ - } while (0) - -#if __GNU_VISIBLE -void _pthread_cleanup_push_defer (struct _pthread_cleanup_context *_context, - void (*_routine)(void *), void *_arg); - -void _pthread_cleanup_pop_restore (struct _pthread_cleanup_context *_context, - int _execute); - -/* It is intentional to open and close the scope in two different macros */ -#define pthread_cleanup_push_defer_np(_routine, _arg) \ - do { \ - struct _pthread_cleanup_context _pthread_clup_ctx; \ - _pthread_cleanup_push_defer(&_pthread_clup_ctx, (_routine), (_arg)) - -#define pthread_cleanup_pop_restore_np(_execute) \ - _pthread_cleanup_pop_restore(&_pthread_clup_ctx, (_execute)); \ - } while (0) -#endif /* __GNU_VISIBLE */ - -#if defined(_POSIX_THREAD_CPUTIME) - -/* Accessing a Thread CPU-time Clock, P1003.4b/D8, p. 58 */ - -int pthread_getcpuclockid (pthread_t __pthread_id, clockid_t *__clock_id); - -#endif /* defined(_POSIX_THREAD_CPUTIME) */ - - -#endif /* defined(_POSIX_THREADS) */ - -#if defined(_POSIX_BARRIERS) - -int pthread_barrierattr_init (pthread_barrierattr_t *__attr); -int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr); -int pthread_barrierattr_getpshared (const pthread_barrierattr_t *__attr, - int *__pshared); -int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, - int __pshared); - -#define PTHREAD_BARRIER_SERIAL_THREAD -1 - -int pthread_barrier_init (pthread_barrier_t *__barrier, - const pthread_barrierattr_t *__attr, - unsigned __count); -int pthread_barrier_destroy (pthread_barrier_t *__barrier); -int pthread_barrier_wait (pthread_barrier_t *__barrier); - -#endif /* defined(_POSIX_BARRIERS) */ - -#if defined(_POSIX_SPIN_LOCKS) - -int pthread_spin_init (pthread_spinlock_t *__spinlock, int __pshared); -int pthread_spin_destroy (pthread_spinlock_t *__spinlock); -int pthread_spin_lock (pthread_spinlock_t *__spinlock); -int pthread_spin_trylock (pthread_spinlock_t *__spinlock); -int pthread_spin_unlock (pthread_spinlock_t *__spinlock); - -#endif /* defined(_POSIX_SPIN_LOCKS) */ - -#if defined(_POSIX_READER_WRITER_LOCKS) - -/* This is used to statically initialize a pthread_rwlock_t. Example: - - pthread_mutex_t mutex = PTHREAD_RWLOCK_INITIALIZER; - */ - -#define PTHREAD_RWLOCK_INITIALIZER _PTHREAD_RWLOCK_INITIALIZER - -int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr); -int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr); -int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *__attr, - int *__pshared); -int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, - int __pshared); - -int pthread_rwlock_init (pthread_rwlock_t *__rwlock, - const pthread_rwlockattr_t *__attr); -int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock); -int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock); -int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock); -int pthread_rwlock_timedrdlock (pthread_rwlock_t *__rwlock, - const struct timespec *__abstime); -int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock); -int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock); -int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock); -int pthread_rwlock_timedwrlock (pthread_rwlock_t *__rwlock, - const struct timespec *__abstime); - -#if __GNU_VISIBLE -/* The Issue 8 standard adds pthread_rwlock_clockrdlock() -* and pthread_rwlock_clockwrlock()*/ -int pthread_rwlock_clockrdlock(pthread_rwlock_t *__restrict, clockid_t, - const struct timespec *__restrict); -int pthread_rwlock_clockwrlock(pthread_rwlock_t *__restrict, clockid_t, - const struct timespec *__restrict); -#endif /* __GNU_VISIBLE */ - -#endif /* defined(_POSIX_READER_WRITER_LOCKS) */ - - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/lib/include/pwd.h b/lib/include/pwd.h deleted file mode 100644 index 45d1594..0000000 --- a/lib/include/pwd.h +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * Copyright (c) 1989 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)pwd.h 5.13 (Berkeley) 5/28/91 - */ - -#ifndef _PWD_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _PWD_H_ - -#include -#include - -#if __BSD_VISIBLE -#define _PATH_PASSWD "/etc/passwd" - -#define _PASSWORD_LEN 128 /* max length, not counting NULL */ -#endif - -struct passwd { - char *pw_name; /* user name */ - char *pw_passwd; /* encrypted password */ - uid_t pw_uid; /* user uid */ - gid_t pw_gid; /* user gid */ - char *pw_comment; /* comment */ - char *pw_gecos; /* Honeywell login info */ - char *pw_dir; /* home directory */ - char *pw_shell; /* default shell */ -}; - -struct passwd *getpwuid (uid_t); -struct passwd *getpwnam (const char *); - -#ifndef __INSIDE_CYGWIN__ -#if __MISC_VISIBLE || __POSIX_VISIBLE -int getpwnam_r (const char *, struct passwd *, - char *, size_t , struct passwd **); -int getpwuid_r (uid_t, struct passwd *, char *, - size_t, struct passwd **); -#endif - -#if __MISC_VISIBLE || __XSI_VISIBLE >= 4 -struct passwd *getpwent (void); -void setpwent (void); -void endpwent (void); -#endif - -#if __BSD_VISIBLE -int setpassent (int); -#endif -#endif /*!__INSIDE_CYGWIN__*/ - -#ifdef __cplusplus -} -#endif -#endif /* _PWD_H_ */ diff --git a/lib/include/reent.h b/lib/include/reent.h deleted file mode 100644 index 23d572c..0000000 --- a/lib/include/reent.h +++ /dev/null @@ -1,188 +0,0 @@ -/* This header file provides the reentrancy. */ - -/* The reentrant system calls here serve two purposes: - - 1) Provide reentrant versions of the system calls the ANSI C library - requires. - 2) Provide these system calls in a namespace clean way. - - It is intended that *all* system calls that the ANSI C library needs - be declared here. It documents them all in one place. All library access - to the system is via some form of these functions. - - The target may provide the needed syscalls by any of the following: - - 1) Define the reentrant versions of the syscalls directly. - (eg: _open_r, _close_r, etc.). Please keep the namespace clean. - When you do this, set "syscall_dir" to "syscalls" and add - -DREENTRANT_SYSCALLS_PROVIDED to newlib_cflags in configure.host. - - 2) Define namespace clean versions of the system calls by prefixing - them with '_' (eg: _open, _close, etc.). Technically, there won't be - true reentrancy at the syscall level, but the library will be namespace - clean. - When you do this, set "syscall_dir" to "syscalls" in configure.host. - - 3) Define or otherwise provide the regular versions of the syscalls - (eg: open, close, etc.). The library won't be reentrant nor namespace - clean, but at least it will work. - When you do this, add -DMISSING_SYSCALL_NAMES to newlib_cflags in - configure.host. - - 4) Define or otherwise provide the regular versions of the syscalls, - and do not supply functional interfaces for any of the reentrant - calls. With this method, the reentrant syscalls are redefined to - directly call the regular system call without the reentrancy argument. - When you do this, specify both -DREENTRANT_SYSCALLS_PROVIDED and - -DMISSING_SYSCALL_NAMES via newlib_cflags in configure.host and do - not specify "syscall_dir". - - Stubs of the reentrant versions of the syscalls exist in the libc/reent - source directory and are provided if REENTRANT_SYSCALLS_PROVIDED isn't - defined. These stubs call the native system calls: _open, _close, etc. - if MISSING_SYSCALL_NAMES is *not* defined, otherwise they call the - non-underscored versions: open, close, etc. when MISSING_SYSCALL_NAMES - *is* defined. - - By default, newlib functions call the reentrant syscalls internally, - passing a reentrancy structure as an argument. This reentrancy structure - contains data that is thread-specific. For example, the errno value is - kept in the reentrancy structure. If multiple threads exist, each will - keep a separate errno value which is intuitive since the application flow - cannot check for failure reliably otherwise. - - The reentrant syscalls are either provided by the platform, by the - libc/reent stubs, or in the case of both MISSING_SYSCALL_NAMES and - REENTRANT_SYSCALLS_PROVIDED being defined, the calls are redefined to - simply call the regular syscalls with no reentrancy struct argument. - - A single-threaded application does not need to worry about the reentrancy - structure. It is used internally. - - A multi-threaded application needs either to manually manage reentrancy - structures or use dynamic reentrancy. - - Manually managing reentrancy structures entails calling special reentrant - versions of newlib functions that have an additional reentrancy argument. - For example, _printf_r. By convention, the first argument is the - reentrancy structure. By default, the normal version of the function - uses the default reentrancy structure: _REENT. The reentrancy structure - is passed internally, eventually to the reentrant syscalls themselves. - How the structures are stored and accessed in this model is up to the - application. - - Dynamic reentrancy is specified by the __DYNAMIC_REENT__ flag. This - flag denotes setting up a macro to replace _REENT with a function call - to __getreent(). This function needs to be implemented by the platform - and it is meant to return the reentrancy structure for the current - thread. When the regular C functions (e.g. printf) go to call internal - routines with the default _REENT structure, they end up calling with - the reentrancy structure for the thread. Thus, application code does not - need to call the _r routines nor worry about reentrancy structures. */ - -/* WARNING: All identifiers here must begin with an underscore. This file is - included by stdio.h and others and we therefore must only use identifiers - in the namespace allotted to us. */ - -#ifndef _REENT_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _REENT_H_ - -#include -#include - -#define __need_size_t -#define __need_ptrdiff_t -#include - -/* FIXME: not namespace clean */ -struct stat; -struct tms; -struct timeval; -struct timezone; - -#if defined(REENTRANT_SYSCALLS_PROVIDED) && defined(MISSING_SYSCALL_NAMES) - -#define _close_r(__reent, __fd) close(__fd) -#define _execve_r(__reent, __f, __arg, __env) execve(__f, __arg, __env) -#define _fcntl_r(__reent, __fd, __cmd, __arg) fcntl(__fd, __cmd, __arg) -#define _fork_r(__reent) fork() -#define _fstat_r(__reent, __fdes, __stat) fstat(__fdes, __stat) -#define _getpid_r(__reent) getpid() -#define _isatty_r(__reent, __desc) isatty(__desc) -#define _kill_r(__reent, __pid, __signal) kill(__pid, __signal) -#define _link_r(__reent, __oldpath, __newpath) link(__oldpath, __newpath) -#define _lseek_r(__reent, __fdes, __off, __w) lseek(__fdes, __off, __w) -#define _mkdir_r(__reent, __path, __m) mkdir(__path, __m) -#define _open_r(__reent, __path, __flag, __m) open(__path, __flag, __m) -#define _read_r(__reent, __fd, __buff, __cnt) read(__fd, __buff, __cnt) -#define _rename_r(__reent, __old, __new) rename(__old, __new) -#define _sbrk_r(__reent, __incr) sbrk(__incr) -#define _stat_r(__reent, __path, __buff) stat(__path, __buff) -#define _times_r(__reent, __time) times(__time) -#define _unlink_r(__reent, __path) unlink(__path) -#define _wait_r(__reent, __status) wait(__status) -#define _write_r(__reent, __fd, __buff, __cnt) write(__fd, __buff, __cnt) -#define _gettimeofday_r(__reent, __tp, __tzp) gettimeofday(__tp, __tzp) - -#ifdef __LARGE64_FILES -#define _lseek64_r(__reent, __fd, __off, __w) lseek64(__fd, __off, __w) -#define _fstat64_r(__reent, __fd, __buff) fstat64(__fd, __buff) -#define _open64_r(__reent, __path, __flag, __m) open64(__path, __flag, __m) -#endif - -#else -/* Reentrant versions of system calls. */ - -extern int _close_r (struct _reent *, int); -extern int _execve_r (struct _reent *, const char *, char *const *, char *const *); -extern int _fcntl_r (struct _reent *, int, int, int); -extern int _fork_r (struct _reent *); -extern int _fstat_r (struct _reent *, int, struct stat *); -extern int _getpid_r (struct _reent *); -extern int _isatty_r (struct _reent *, int); -extern int _kill_r (struct _reent *, int, int); -extern int _link_r (struct _reent *, const char *, const char *); -extern _off_t _lseek_r (struct _reent *, int, _off_t, int); -extern int _mkdir_r (struct _reent *, const char *, int); -extern int _open_r (struct _reent *, const char *, int, int); -extern _ssize_t _read_r (struct _reent *, int, void *, size_t); -extern int _rename_r (struct _reent *, const char *, const char *); -extern void *_sbrk_r (struct _reent *, ptrdiff_t); -extern int _stat_r (struct _reent *, const char *, struct stat *); -extern _CLOCK_T_ _times_r (struct _reent *, struct tms *); -extern int _unlink_r (struct _reent *, const char *); -extern int _wait_r (struct _reent *, int *); -extern _ssize_t _write_r (struct _reent *, int, const void *, size_t); - -/* This one is not guaranteed to be available on all targets. */ -extern int _gettimeofday_r (struct _reent *, struct timeval *__tp, void *__tzp); - -#ifdef __LARGE64_FILES - - -#if defined(__CYGWIN__) -#define stat64 stat -#endif -struct stat64; - -extern _off64_t _lseek64_r (struct _reent *, int, _off64_t, int); -extern int _fstat64_r (struct _reent *, int, struct stat64 *); -extern int _open64_r (struct _reent *, const char *, int, int); -extern int _stat64_r (struct _reent *, const char *, struct stat64 *); - -/* Don't pollute namespace if not building newlib. */ -#if defined (__CYGWIN__) && !defined (_LIBC) -#undef stat64 -#endif - -#endif - -#endif - -#ifdef __cplusplus -} -#endif -#endif /* _REENT_H_ */ diff --git a/lib/include/regdef.h b/lib/include/regdef.h deleted file mode 100644 index 8cf144b..0000000 --- a/lib/include/regdef.h +++ /dev/null @@ -1,7 +0,0 @@ -/* regdef.h -- define register names. */ - -/* This is a standard include file for MIPS targets. Other target - probably don't define it, and attempts to include this file will - fail. */ - -#include diff --git a/lib/include/regex.h b/lib/include/regex.h deleted file mode 100644 index fa3e268..0000000 --- a/lib/include/regex.h +++ /dev/null @@ -1,103 +0,0 @@ -/*- - * Copyright (c) 1992 Henry Spencer. - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Henry Spencer of the University of Toronto. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)regex.h 8.2 (Berkeley) 1/3/94 - * $FreeBSD: src/include/regex.h,v 1.4 2002/03/23 17:24:53 imp Exp $ - */ - -#ifndef _REGEX_H_ -#define _REGEX_H_ - -#include - -/* types */ -typedef off_t regoff_t; - -typedef struct { - int re_magic; - size_t re_nsub; /* number of parenthesized subexpressions */ - __const char *re_endp; /* end pointer for REG_PEND */ - struct re_guts *re_g; /* none of your business :-) */ -} regex_t; - -typedef struct { - regoff_t rm_so; /* start of match */ - regoff_t rm_eo; /* end of match */ -} regmatch_t; - -/* regcomp() flags */ -#define REG_BASIC 0000 -#define REG_EXTENDED 0001 -#define REG_ICASE 0002 -#define REG_NOSUB 0004 -#define REG_NEWLINE 0010 -#define REG_NOSPEC 0020 -#define REG_PEND 0040 -#define REG_DUMP 0200 - -/* regerror() flags */ -#define REG_NOMATCH 1 -#define REG_BADPAT 2 -#define REG_ECOLLATE 3 -#define REG_ECTYPE 4 -#define REG_EESCAPE 5 -#define REG_ESUBREG 6 -#define REG_EBRACK 7 -#define REG_EPAREN 8 -#define REG_EBRACE 9 -#define REG_BADBR 10 -#define REG_ERANGE 11 -#define REG_ESPACE 12 -#define REG_BADRPT 13 -#define REG_EMPTY 14 -#define REG_ASSERT 15 -#define REG_INVARG 16 -#define REG_ATOI 255 /* convert name to number (!) */ -#define REG_ITOA 0400 /* convert number to name (!) */ - -/* regexec() flags */ -#define REG_NOTBOL 00001 -#define REG_NOTEOL 00002 -#define REG_STARTEND 00004 -#define REG_TRACE 00400 /* tracing of execution */ -#define REG_LARGE 01000 /* force large representation */ -#define REG_BACKR 02000 /* force use of backref code */ - -__BEGIN_DECLS -int regcomp(regex_t *__restrict, const char *__restrict, int); -size_t regerror(int, const regex_t *__restrict, char *__restrict, size_t); -int regexec(const regex_t *__restrict, const char *__restrict, - size_t, regmatch_t [__restrict], int); -void regfree(regex_t *); -__END_DECLS - -#endif /* !_REGEX_H_ */ diff --git a/lib/include/rpc/types.h b/lib/include/rpc/types.h deleted file mode 100644 index df77a93..0000000 --- a/lib/include/rpc/types.h +++ /dev/null @@ -1,85 +0,0 @@ - -/* - * Copyright (c) 2009, Sun Microsystems, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Sun Microsystems, Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * from: @(#)types.h 1.18 87/07/24 SMI - * from: @(#)types.h 2.3 88/08/15 4.0 RPCSRC - * $FreeBSD: src/include/rpc/types.h,v 1.10.6.1 2003/12/18 00:59:50 peter Exp $ - * $NetBSD: types.h,v 1.13 2000/06/13 01:02:44 thorpej Exp $ - */ - -/* - * Rpc additions to - */ -#ifndef _RPC_TYPES_H -#define _RPC_TYPES_H - -#include -#include - -#define __need_NULL -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(___int64_t_defined) -typedef u_int64_t u_quad_t; -typedef int64_t quad_t; -#endif /* ___int64_t_defined */ -typedef int32_t bool_t; -typedef int32_t enum_t; - -typedef u_int32_t rpcprog_t; -typedef u_int32_t rpcvers_t; -typedef u_int32_t rpcproc_t; -typedef u_int32_t rpcprot_t; -typedef u_int32_t rpcport_t; -typedef int32_t rpc_inline_t; - -#define __dontcare__ -1 - -#ifndef FALSE -# define FALSE 0 -#endif -#ifndef TRUE -# define TRUE 1 -#endif - -#ifndef mem_alloc -#define mem_alloc(bsize) calloc(1, bsize) -#endif -#ifndef mem_free -#define mem_free(ptr, bsize) free(ptr) -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* !_RPC_TYPES_H */ diff --git a/lib/include/rpc/xdr.h b/lib/include/rpc/xdr.h deleted file mode 100644 index 139e0c7..0000000 --- a/lib/include/rpc/xdr.h +++ /dev/null @@ -1,389 +0,0 @@ - -/* - * Copyright (c) 2009, Sun Microsystems, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Sun Microsystems, Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * from: @(#)xdr.h 1.19 87/04/22 SMI - * from: @(#)xdr.h 2.2 88/07/29 4.0 RPCSRC - * $FreeBSD: src/include/rpc/xdr.h,v 1.23 2003/03/07 13:19:40 nectar Exp $ - * $NetBSD: xdr.h,v 1.19 2000/07/17 05:00:45 matt Exp $ - */ - -/* - * xdr.h, External Data Representation Serialization Routines. - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ - -#ifndef _RPC_XDR_H -#define _RPC_XDR_H -#include <_ansi.h> -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * XDR provides a conventional way for converting between C data - * types and an external bit-string representation. Library supplied - * routines provide for the conversion on built-in C data types. These - * routines and utility routines defined here are used to help implement - * a type encode/decode routine for each user-defined type. - * - * Each data type provides a single procedure which takes two arguments: - * - * bool_t - * xdrproc(XDR *xdrs, *argresp) - * - * xdrs is an instance of a XDR handle, to which or from which the data - * type is to be converted. argresp is a pointer to the structure to be - * converted. The XDR handle contains an operation field which indicates - * which of the operations (ENCODE, DECODE * or FREE) is to be performed. - * - * XDR_DECODE may allocate space if the pointer argresp is null. This - * data can be freed with the XDR_FREE operation. - * - * We write only one procedure per data type to make it easy - * to keep the encode and decode procedures for a data type consistent. - * In many cases the same code performs all operations on a user defined type, - * because all the hard work is done in the component type routines. - * decode as a series of calls on the nested data types. - */ - -/* - * Xdr operations. XDR_ENCODE causes the type to be encoded into the - * stream. XDR_DECODE causes the type to be extracted from the stream. - * XDR_FREE can be used to release the space allocated by an XDR_DECODE - * request. - */ -enum xdr_op -{ - XDR_ENCODE = 0, - XDR_DECODE = 1, - XDR_FREE = 2 -}; - -/* - * This is the number of bytes per unit of external data. - */ -#define BYTES_PER_XDR_UNIT (4) -#if 1 -/* faster version when BYTES_PER_XDR_UNIT is a power of two */ -# define RNDUP(x) (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1)) -#else /* old version */ -#define RNDUP(x) ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \ - * BYTES_PER_XDR_UNIT) -#endif - -/* - * The XDR handle. - * Contains operation which is being applied to the stream, - * an operations vector for the particular implementation (e.g. see xdr_mem.c), - * and two private fields for the use of the particular implementation. - */ -typedef struct __rpc_xdr -{ - enum xdr_op x_op; /* operation; fast additional param */ - const struct xdr_ops - { - /* get a long from underlying stream */ - bool_t (*x_getlong) (struct __rpc_xdr *, long *); - - /* put a long to " */ - bool_t (*x_putlong) (struct __rpc_xdr *, const long *); - - /* get some bytes from " */ - bool_t (*x_getbytes) (struct __rpc_xdr *, char *, u_int); - - /* put some bytes to " */ - bool_t (*x_putbytes) (struct __rpc_xdr *, const char *, u_int); - - /* returns bytes off from beginning */ - u_int (*x_getpostn) (struct __rpc_xdr *); - - /* lets you reposition the stream */ - bool_t (*x_setpostn) (struct __rpc_xdr *, u_int); - - /* buf quick ptr to buffered data */ - int32_t * (*x_inline) (struct __rpc_xdr *, u_int); - - /* free privates of this xdr_stream */ - void (*x_destroy) (struct __rpc_xdr *); - - /* get an int32 from this xdr_stream */ - bool_t (*x_getint32) (struct __rpc_xdr *, int32_t *); - - /* put an int32 to the underlying stream */ - bool_t (*x_putint32) (struct __rpc_xdr *, const int32_t *); - - } *x_ops; - char *x_public; /* users' data */ - void *x_private; /* pointer to private data */ - char *x_base; /* private used for position info */ - u_int x_handy; /* extra private word */ -} XDR; - -/* - * A xdrproc_t exists for each data type which is to be encoded or decoded. - * - * The second argument to the xdrproc_t is a pointer to an opaque pointer. - * The opaque pointer generally points to a structure of the data type - * to be decoded. If this pointer is 0, then the type routines should - * allocate dynamic storage of the appropriate size and return it. - * bool_t (*xdrproc_t)(XDR *, some_type *) - */ -typedef bool_t (*xdrproc_t) (XDR *, ...); - -/* - * Operations defined on a XDR handle - * - * XDR *xdrs; - * long *longp; - * char *addr; - * u_int len; - * u_int pos; - */ -#define XDR_GETINT32(xdrs, int32p) \ - (*(xdrs)->x_ops->x_getint32)(xdrs, int32p) -#define xdr_getint32(xdrs, int32p) \ - (*(xdrs)->x_ops->x_getint32)(xdrs, int32p) - -#define XDR_PUTINT32(xdrs, int32p) \ - (*(xdrs)->x_ops->x_putint32)(xdrs, int32p) -#define xdr_putint32(xdrs, int32p) \ - (*(xdrs)->x_ops->x_putint32)(xdrs, int32p) - -#define XDR_GETLONG(xdrs, longp) \ - (*(xdrs)->x_ops->x_getlong)(xdrs, longp) -#define xdr_getlong(xdrs, longp) \ - (*(xdrs)->x_ops->x_getlong)(xdrs, longp) - -#define XDR_PUTLONG(xdrs, longp) \ - (*(xdrs)->x_ops->x_putlong)(xdrs, longp) -#define xdr_putlong(xdrs, longp) \ - (*(xdrs)->x_ops->x_putlong)(xdrs, longp) - -#define XDR_GETBYTES(xdrs, addr, len) \ - (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len) -#define xdr_getbytes(xdrs, addr, len) \ - (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len) - -#define XDR_PUTBYTES(xdrs, addr, len) \ - (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len) -#define xdr_putbytes(xdrs, addr, len) \ - (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len) - -#define XDR_GETPOS(xdrs) \ - (*(xdrs)->x_ops->x_getpostn)(xdrs) -#define xdr_getpos(xdrs) \ - (*(xdrs)->x_ops->x_getpostn)(xdrs) - -#define XDR_SETPOS(xdrs, pos) \ - (*(xdrs)->x_ops->x_setpostn)(xdrs, pos) -#define xdr_setpos(xdrs, pos) \ - (*(xdrs)->x_ops->x_setpostn)(xdrs, pos) - -#define XDR_INLINE(xdrs, len) \ - (*(xdrs)->x_ops->x_inline)(xdrs, len) -#define xdr_inline(xdrs, len) \ - (*(xdrs)->x_ops->x_inline)(xdrs, len) - -#define XDR_DESTROY(xdrs) \ - do { \ - if ((xdrs)->x_ops->x_destroy) \ - (*(xdrs)->x_ops->x_destroy)(xdrs); \ - } while (0) -#define xdr_destroy(xdrs) \ - do { \ - if ((xdrs)->x_ops->x_destroy) \ - (*(xdrs)->x_ops->x_destroy)(xdrs); \ - } while (0) - -/* - * Solaris strips the '_t' from these types -- not sure why. - * But, let's be compatible. - */ -#define xdr_rpcvers(xdrs, versp) xdr_u_int32(xdrs, versp) -#define xdr_rpcprog(xdrs, progp) xdr_u_int32(xdrs, progp) -#define xdr_rpcproc(xdrs, procp) xdr_u_int32(xdrs, procp) -#define xdr_rpcprot(xdrs, protp) xdr_u_int32(xdrs, protp) -#define xdr_rpcport(xdrs, portp) xdr_u_int32(xdrs, portp) - -/* - * Support struct for discriminated unions. - * You create an array of xdrdiscrim structures, terminated with - * an entry with a null procedure pointer. The xdr_union routine gets - * the discriminant value and then searches the array of structures - * for a matching value. If a match is found the associated xdr routine - * is called to handle that part of the union. If there is - * no match, then a default routine may be called. - * If there is no match and no default routine it is an error. - */ -#define NULL_xdrproc_t ((xdrproc_t)0) -struct xdr_discrim -{ - int value; - xdrproc_t proc; -}; - -/* - * In-line routines for fast encode/decode of primitive data types. - * Caveat emptor: these use single memory cycles to get the - * data from the underlying buffer, and will fail to operate - * properly if the data is not aligned. The standard way to use these - * is to say: - * if ((buf = XDR_INLINE(xdrs, count)) == NULL) - * return (FALSE); - * <<< macro calls >>> - * where ``count'' is the number of bytes of data occupied - * by the primitive data types. - * - * N.B. and frozen for all time: each data type here uses 4 bytes - * of external representation. - */ -#define IXDR_GET_INT32(buf) ((int32_t)ntohl((u_int32_t)*(buf)++)) -#define IXDR_PUT_INT32(buf, v) (*(buf)++ =(int32_t)htonl((u_int32_t)v)) -#define IXDR_GET_U_INT32(buf) ((uint32_t)IXDR_GET_INT32(buf)) -#define IXDR_PUT_U_INT32(buf, v) IXDR_PUT_INT32((buf), ((int32_t)(v))) - -/* Warning: inline long routines are broken for 64 bit platforms. - * Because the other inline routines below are implemented in terms - * of them, they are all also broken for 64 bit platforms. - */ -#define IXDR_GET_LONG(buf) ((long)ntohl((u_int32_t)*(buf)++)) -#define IXDR_PUT_LONG(buf, v) (*(buf)++ =(int32_t)htonl((u_int32_t)v)) -#define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf)) -#define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG((buf), (v)) - -#define IXDR_GET_BOOL(buf) ((bool_t)IXDR_GET_LONG(buf)) -#define IXDR_GET_ENUM(buf, t) ((t)IXDR_GET_LONG(buf)) -#define IXDR_GET_SHORT(buf) ((short)IXDR_GET_LONG(buf)) -#define IXDR_GET_U_SHORT(buf) ((u_short)IXDR_GET_LONG(buf)) - -#define IXDR_PUT_BOOL(buf, v) IXDR_PUT_LONG((buf), (v)) -#define IXDR_PUT_ENUM(buf, v) IXDR_PUT_LONG((buf), (v)) -#define IXDR_PUT_SHORT(buf, v) IXDR_PUT_LONG((buf), (v)) -#define IXDR_PUT_U_SHORT(buf, v) IXDR_PUT_LONG((buf), (v)) - -/* - * These are the "generic" xdr routines. - */ -extern bool_t xdr_void (void); -extern bool_t xdr_short (XDR *, short *); -extern bool_t xdr_u_short (XDR *, u_short *); -extern bool_t xdr_int (XDR *, int *); -extern bool_t xdr_u_int (XDR *, u_int *); -extern bool_t xdr_long (XDR *, long *); -extern bool_t xdr_u_long (XDR *, u_long *); -extern bool_t xdr_int8_t (XDR *, int8_t *); -extern bool_t xdr_uint8_t (XDR *, uint8_t *); -extern bool_t xdr_u_int8_t (XDR *, u_int8_t *); -extern bool_t xdr_int16_t (XDR *, int16_t *); -extern bool_t xdr_uint16_t (XDR *, uint16_t *); -extern bool_t xdr_u_int16_t (XDR *, u_int16_t *); -extern bool_t xdr_int32_t (XDR *, int32_t *); -extern bool_t xdr_uint32_t (XDR *, uint32_t *); -extern bool_t xdr_u_int32_t (XDR *, u_int32_t *); -#if defined(___int64_t_defined) -extern bool_t xdr_int64_t (XDR *, int64_t *); -extern bool_t xdr_uint64_t (XDR *, uint64_t *); -extern bool_t xdr_u_int64_t (XDR *, u_int64_t *); -#endif /* ___int64_t_defined */ -extern bool_t xdr_bool (XDR *, bool_t *); -extern bool_t xdr_enum (XDR *, enum_t *); -extern bool_t xdr_array (XDR *, char **, u_int *, u_int, u_int, xdrproc_t); -extern bool_t xdr_bytes (XDR *, char **, u_int *, u_int); -extern bool_t xdr_opaque (XDR *, char *, u_int); -extern bool_t xdr_string (XDR *, char **, u_int); -extern bool_t xdr_union (XDR *, enum_t *, char *, - const struct xdr_discrim *, xdrproc_t); -extern bool_t xdr_char (XDR *, char *); -extern bool_t xdr_u_char (XDR *, u_char *); -extern bool_t xdr_vector (XDR *, char *, u_int, u_int, xdrproc_t); -extern bool_t xdr_float (XDR *, float *); -extern bool_t xdr_double (XDR *, double *); -/* extern bool_t xdr_quadruple (XDR *, long double *); */ -extern bool_t xdr_reference (XDR *, char **, u_int, xdrproc_t); -extern bool_t xdr_pointer (XDR *, char **, u_int, xdrproc_t); -extern bool_t xdr_wrapstring (XDR *, char **); -#if defined(___int64_t_defined) -extern bool_t xdr_hyper (XDR *, quad_t *); -extern bool_t xdr_u_hyper (XDR *, u_quad_t *); -extern bool_t xdr_longlong_t (XDR *, quad_t *); -extern bool_t xdr_u_longlong_t (XDR *, u_quad_t *); -#endif /* ___int64_t_defined */ -extern u_long xdr_sizeof (xdrproc_t, void *); - -/* - * Common opaque bytes objects used by many rpc protocols; - * declared here due to commonality. - */ -#define MAX_NETOBJ_SZ 1024 -struct netobj -{ - u_int n_len; - char *n_bytes; -}; -typedef struct netobj netobj; -extern bool_t xdr_netobj (XDR *, struct netobj *); - -/* - * These are the public routines for the various implementations of - * xdr streams. - */ - -/* XDR using memory buffers */ -extern void xdrmem_create (XDR *, char *, u_int, enum xdr_op); - -/* XDR using stdio library */ -#if defined(_STDIO_H_) -extern void xdrstdio_create (XDR *, FILE *, enum xdr_op); -#endif - -/* XDR pseudo records for tcp */ -extern void xdrrec_create (XDR *, u_int, u_int, void *, - int (*) (void *, void *, int), - int (*) (void *, void *, int)); - -/* make end of xdr record */ -extern bool_t xdrrec_endofrecord (XDR *, bool_t); - -/* move to beginning of next record */ -extern bool_t xdrrec_skiprecord (XDR *); - -/* true if no more input */ -extern bool_t xdrrec_eof (XDR *); -extern u_int xdrrec_readbytes (XDR *, caddr_t, u_int); - -/* free memory buffers for xdr */ -extern void xdr_free (xdrproc_t, void *); - -#ifdef __cplusplus -} -#endif - -#endif /* !_RPC_XDR_H */ diff --git a/lib/include/sched.h b/lib/include/sched.h deleted file mode 100644 index 31599aa..0000000 --- a/lib/include/sched.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2010. - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - * $Id$ - */ - -#ifndef _SCHED_H_ -#define _SCHED_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(_POSIX_PRIORITY_SCHEDULING) -/* - * XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1803 - */ -int sched_setparam( - pid_t __pid, - const struct sched_param *__param -); - -/* - * XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1800 - */ -int sched_getparam( - pid_t __pid, - struct sched_param *__param -); - -/* - * XBD 13 - Set Scheduling Policy and Scheduling Parameters, - * P1003.1b-2008, p. 1805 - */ -int sched_setscheduler( - pid_t __pid, - int __policy, - const struct sched_param *__param -); - -/* - * XBD 13 - Get Scheduling Policy, P1003.1b-2008, p. 1801 - */ -int sched_getscheduler( - pid_t __pid -); - -/* - * XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1799 - */ -int sched_get_priority_max( - int __policy -); - -int sched_get_priority_min( - int __policy -); - -/* - * XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1802 - */ -int sched_rr_get_interval( - pid_t __pid, - struct timespec *__interval -); -#endif /* _POSIX_PRIORITY_SCHEDULING */ - -#if defined(_POSIX_THREADS) || defined(_POSIX_PRIORITY_SCHEDULING) - -/* - * XBD 13 - Yield Processor, P1003.1b-2008, p. 1807 - */ -int sched_yield( void ); - -#endif /* _POSIX_THREADS or _POSIX_PRIORITY_SCHEDULING */ - -#if __GNU_VISIBLE -int sched_getcpu(void); - -/* The following functions should only be declared if the type - cpu_set_t is defined through indirect inclusion of sys/cpuset.h, - only available on some targets. */ -#ifdef _SYS_CPUSET_H_ -int sched_getaffinity (pid_t, size_t, cpu_set_t *); -int sched_get_thread_affinity (void *, size_t, cpu_set_t *); -int sched_setaffinity (pid_t, size_t, const cpu_set_t *); -int sched_set_thread_affinity (void *, size_t, const cpu_set_t *); -#endif /* _SYS_CPUSET_H_ */ - -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _SCHED_H_ */ diff --git a/lib/include/search.h b/lib/include/search.h deleted file mode 100644 index ed321b0..0000000 --- a/lib/include/search.h +++ /dev/null @@ -1,64 +0,0 @@ -/* $NetBSD: search.h,v 1.12 1999/02/22 10:34:28 christos Exp $ */ -/* $FreeBSD: src/include/search.h,v 1.4 2002/03/23 17:24:53 imp Exp $ */ - -/* - * Written by J.T. Conklin - * Public domain. - */ - -#ifndef _SEARCH_H_ -#define _SEARCH_H_ - -#include -#include -#include - -typedef struct entry { - char *key; - void *data; -} ENTRY; - -typedef enum { - FIND, ENTER -} ACTION; - -typedef enum { - preorder, - postorder, - endorder, - leaf -} VISIT; - -#ifdef _SEARCH_PRIVATE -typedef struct node { - char *key; - struct node *llink, *rlink; -} node_t; -#endif - -struct hsearch_data -{ - struct internal_head *htable; - size_t htablesize; -}; - -#ifndef __compar_fn_t_defined -#define __compar_fn_t_defined -typedef int (*__compar_fn_t) (const void *, const void *); -#endif - -__BEGIN_DECLS -int hcreate(size_t); -void hdestroy(void); -ENTRY *hsearch(ENTRY, ACTION); -int hcreate_r(size_t, struct hsearch_data *); -void hdestroy_r(struct hsearch_data *); -int hsearch_r(ENTRY, ACTION, ENTRY **, struct hsearch_data *); -void *tdelete(const void *__restrict, void **__restrict, __compar_fn_t); -void tdestroy (void *, void (*)(void *)); -void *tfind(const void *, void **, __compar_fn_t); -void *tsearch(const void *, void **, __compar_fn_t); -void twalk(const void *, void (*)(const void *, VISIT, int)); -__END_DECLS - -#endif /* !_SEARCH_H_ */ diff --git a/lib/include/setjmp.h b/lib/include/setjmp.h deleted file mode 100644 index a2830b2..0000000 --- a/lib/include/setjmp.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - setjmp.h - stubs for future use. -*/ - -#ifndef _SETJMP_H_ -#define _SETJMP_H_ - -#include "_ansi.h" -#include - -_BEGIN_STD_C - -#ifdef __GNUC__ -void longjmp (jmp_buf __jmpb, int __retval) - __attribute__ ((__noreturn__)); -#else -void longjmp (jmp_buf __jmpb, int __retval); -#endif -int setjmp (jmp_buf __jmpb); - -_END_STD_C - -#endif /* _SETJMP_H_ */ - diff --git a/lib/include/signal.h b/lib/include/signal.h deleted file mode 100644 index 23a9863..0000000 --- a/lib/include/signal.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef _SIGNAL_H_ -#define _SIGNAL_H_ - -#include "_ansi.h" -#include -#include - -_BEGIN_STD_C - -typedef int sig_atomic_t; /* Atomic entity type (ANSI) */ -#if __BSD_VISIBLE -typedef _sig_func_ptr sig_t; /* BSD naming */ -#endif -#if __GNU_VISIBLE -typedef _sig_func_ptr sighandler_t; /* glibc naming */ -#endif - -#define SIG_DFL ((_sig_func_ptr)0) /* Default action */ -#define SIG_IGN ((_sig_func_ptr)1) /* Ignore action */ -#define SIG_ERR ((_sig_func_ptr)-1) /* Error return */ - -struct _reent; - -_sig_func_ptr _signal_r (struct _reent *, int, _sig_func_ptr); -int _raise_r (struct _reent *, int); - -#ifndef _REENT_ONLY -_sig_func_ptr signal (int, _sig_func_ptr); -int raise (int); -void psignal (int, const char *); -#endif - -_END_STD_C - -#endif /* _SIGNAL_H_ */ diff --git a/lib/include/spawn.h b/lib/include/spawn.h deleted file mode 100644 index d6ae992..0000000 --- a/lib/include/spawn.h +++ /dev/null @@ -1,111 +0,0 @@ -/*- - * Copyright (c) 2008 Ed Schouten - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _SPAWN_H_ -#define _SPAWN_H_ - -#include <_ansi.h> -#include -#include -#include -#define __need_sigset_t -#include - -struct sched_param; - -typedef struct __posix_spawnattr *posix_spawnattr_t; -typedef struct __posix_spawn_file_actions *posix_spawn_file_actions_t; - -#define POSIX_SPAWN_RESETIDS 0x01 -#define POSIX_SPAWN_SETPGROUP 0x02 -#define POSIX_SPAWN_SETSCHEDPARAM 0x04 -#define POSIX_SPAWN_SETSCHEDULER 0x08 -#define POSIX_SPAWN_SETSIGDEF 0x10 -#define POSIX_SPAWN_SETSIGMASK 0x20 - -_BEGIN_STD_C -/* - * Spawn routines - * - * XXX both arrays should be __restrict, but this does not work when GCC - * is invoked with -std=c99. - */ -int posix_spawn (pid_t * __restrict, const char * __restrict, - const posix_spawn_file_actions_t *, const posix_spawnattr_t * __restrict, - char * const [], char * const []); -int posix_spawnp (pid_t * __restrict, const char * __restrict, - const posix_spawn_file_actions_t *, const posix_spawnattr_t * __restrict, - char * const [], char * const []); - -/* - * File descriptor actions - */ -int posix_spawn_file_actions_init (posix_spawn_file_actions_t *); -int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *); - -int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t * __restrict, - int, const char * __restrict, int, mode_t); -int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *, int, int); -int posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *, int); -#if __MISC_VISIBLE || __GNU_VISIBLE -int posix_spawn_file_actions_addchdir_np (posix_spawn_file_actions_t *__restrict -, - const char *__restrict); -int posix_spawn_file_actions_addfchdir_np (posix_spawn_file_actions_t *__restrict, - int); -#endif - -/* - * Spawn attributes - */ -int posix_spawnattr_init (posix_spawnattr_t *); -int posix_spawnattr_destroy (posix_spawnattr_t *); - -int posix_spawnattr_getflags (const posix_spawnattr_t * __restrict, - short * __restrict); -int posix_spawnattr_getpgroup (const posix_spawnattr_t * __restrict, - pid_t * __restrict); -int posix_spawnattr_getschedparam (const posix_spawnattr_t * __restrict, - struct sched_param * __restrict); -int posix_spawnattr_getschedpolicy (const posix_spawnattr_t * __restrict, - int * __restrict); -int posix_spawnattr_getsigdefault (const posix_spawnattr_t * __restrict, - sigset_t * __restrict); -int posix_spawnattr_getsigmask (const posix_spawnattr_t * __restrict, - sigset_t * __restrict); - -int posix_spawnattr_setflags (posix_spawnattr_t *, short); -int posix_spawnattr_setpgroup (posix_spawnattr_t *, pid_t); -int posix_spawnattr_setschedparam (posix_spawnattr_t * __restrict, - const struct sched_param * __restrict); -int posix_spawnattr_setschedpolicy (posix_spawnattr_t *, int); -int posix_spawnattr_setsigdefault (posix_spawnattr_t * __restrict, - const sigset_t * __restrict); -int posix_spawnattr_setsigmask (posix_spawnattr_t * __restrict, - const sigset_t * __restrict); -_END_STD_C - -#endif /* !_SPAWN_H_ */ diff --git a/lib/include/ssp/ssp.h b/lib/include/ssp/ssp.h deleted file mode 100644 index 9229086..0000000 --- a/lib/include/ssp/ssp.h +++ /dev/null @@ -1,76 +0,0 @@ -/* $NetBSD: ssp.h,v 1.13 2015/09/03 20:43:47 plunky Exp $ */ - -/*- - * Copyright (c) 2006, 2011 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef _SSP_SSP_H_ -#define _SSP_SSP_H_ - -#include - -/* __ssp_real is used by the implementation in libc */ -#if __SSP_FORTIFY_LEVEL == 0 -#define __ssp_real_(fun) fun -#else -#define __ssp_real_(fun) __ssp_real_ ## fun -#endif -#define __ssp_real(fun) __ssp_real_(fun) - -#define __ssp_inline extern __inline__ __attribute__((__always_inline__, __gnu_inline__)) - -#define __ssp_bos(ptr) __builtin_object_size(ptr, __SSP_FORTIFY_LEVEL > 1) -#define __ssp_bos0(ptr) __builtin_object_size(ptr, 0) - -#define __ssp_check(buf, len, bos) \ - if (bos(buf) != (size_t)-1 && len > bos(buf)) \ - __chk_fail() -#define __ssp_decl(rtype, fun, args) \ -rtype __ssp_real_(fun) args __asm__(__ASMNAME(#fun)); \ -__ssp_inline rtype fun args -#define __ssp_redirect_raw(rtype, fun, args, call, cond, bos) \ -__ssp_decl(rtype, fun, args) \ -{ \ - if (cond) \ - __ssp_check(__buf, __len, bos); \ - return __ssp_real_(fun) call; \ -} - -#define __ssp_redirect(rtype, fun, args, call) \ - __ssp_redirect_raw(rtype, fun, args, call, 1, __ssp_bos) -#define __ssp_redirect0(rtype, fun, args, call) \ - __ssp_redirect_raw(rtype, fun, args, call, 1, __ssp_bos0) - -#define __ssp_overlap(a, b, l) \ - (((a) <= (b) && (b) < (a) + (l)) || ((b) <= (a) && (a) < (b) + (l))) - -__BEGIN_DECLS -void __stack_chk_fail(void) __dead2; -void __chk_fail(void) __dead2; -__END_DECLS - -#endif /* _SSP_SSP_H_ */ diff --git a/lib/include/ssp/stdio.h b/lib/include/ssp/stdio.h deleted file mode 100644 index df2cd18..0000000 --- a/lib/include/ssp/stdio.h +++ /dev/null @@ -1,101 +0,0 @@ -/* $NetBSD: stdio.h,v 1.5 2011/07/17 20:54:34 joerg Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef _SSP_STDIO_H_ -#define _SSP_STDIO_H_ - -#include - -__BEGIN_DECLS -int __sprintf_chk(char *__restrict, int, size_t, const char *__restrict, ...) - __printflike(4, 5); -int __vsprintf_chk(char *__restrict, int, size_t, const char *__restrict, - __va_list) - __printflike(4, 0); -int __snprintf_chk(char *__restrict, size_t, int, size_t, - const char *__restrict, ...) - __printflike(5, 6); -int __vsnprintf_chk(char *__restrict, size_t, int, size_t, - const char *__restrict, __va_list) - __printflike(5, 0); -char *__gets_chk(char *, size_t); -__END_DECLS - -#if __SSP_FORTIFY_LEVEL > 0 - - -#define sprintf(str, ...) \ - __builtin___sprintf_chk(str, 0, __ssp_bos(str), __VA_ARGS__) - -#define vsprintf(str, fmt, ap) \ - __builtin___vsprintf_chk(str, 0, __ssp_bos(str), fmt, ap) - -#define snprintf(str, len, ...) \ - __builtin___snprintf_chk(str, len, 0, __ssp_bos(str), __VA_ARGS__) - -#define vsnprintf(str, len, fmt, ap) \ - __builtin___vsnprintf_chk(str, len, 0, __ssp_bos(str), fmt, ap) - -#define gets(str) \ - __gets_chk(str, __ssp_bos(str)) - -__ssp_decl(char *, fgets, (char *__restrict __buf, int __len, FILE *__fp)) -{ - if (__len > 0) - __ssp_check(__buf, (size_t)__len, __ssp_bos); - return __ssp_real_fgets(__buf, __len, __fp); -} - -#if __GNU_VISIBLE -__ssp_decl(char *, fgets_unlocked, (char *__restrict __buf, int __len, FILE *__fp)) -{ - if (__len > 0) - __ssp_check(__buf, (size_t)__len, __ssp_bos); - return __ssp_real_fgets_unlocked(__buf, __len, __fp); -} -#endif /* __GNU_VISIBLE */ - -__ssp_decl(size_t, fread, (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __fp)) -{ - __ssp_check(__ptr, __size * __n, __ssp_bos0); - return __ssp_real_fread(__ptr, __size, __n, __fp); -} - -#if __MISC_VISIBLE -__ssp_decl(size_t, fread_unlocked, (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __fp)) -{ - __ssp_check(__ptr, __size * __n, __ssp_bos0); - return __ssp_real_fread_unlocked(__ptr, __size, __n, __fp); -} -#endif /* __MISC_VISIBLE */ - -#endif /* __SSP_FORTIFY_LEVEL > 0 */ - -#endif /* _SSP_STDIO_H_ */ diff --git a/lib/include/ssp/stdlib.h b/lib/include/ssp/stdlib.h deleted file mode 100644 index d5edb6d..0000000 --- a/lib/include/ssp/stdlib.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef _SSP_STDLIB_H_ -#define _SSP_STDLIB_H_ - -#include - -#if __SSP_FORTIFY_LEVEL > 0 -__BEGIN_DECLS - -__ssp_decl(size_t, mbstowcs, (wchar_t *__buf, const char *__src, size_t __n)) -{ - if (__buf != NULL) - __ssp_check(__buf, __n * sizeof(wchar_t), __ssp_bos); - return __ssp_real_mbstowcs (__buf, __src, __n); -} - -__ssp_redirect_raw(size_t, wcstombs, \ - (char *__buf, const wchar_t *__src, size_t __len), \ - (__buf, __src, __len), __buf != NULL, __ssp_bos); - -__ssp_decl(int, wctomb, (char *__buf, wchar_t __wc)) -{ - if (__buf != NULL) - __ssp_check(__buf, MB_CUR_MAX, __ssp_bos); - return __ssp_real_wctomb (__buf, __wc); -} - -__END_DECLS - -#endif /* __SSP_FORTIFY_LEVEL > 0 */ -#endif /* _SSP_STDLIB_H_ */ diff --git a/lib/include/ssp/string.h b/lib/include/ssp/string.h deleted file mode 100644 index 85c4512..0000000 --- a/lib/include/ssp/string.h +++ /dev/null @@ -1,115 +0,0 @@ -/* $NetBSD: string.h,v 1.13 2014/11/29 13:23:48 pooka Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef _SSP_STRING_H_ -#define _SSP_STRING_H_ - -#include -#include - -__BEGIN_DECLS -void *__memcpy_chk(void *, const void *, size_t, size_t); -void *__memmove_chk(void *, void *, size_t, size_t); -void *__mempcpy_chk(void *, const void *, size_t, size_t); -void *__memset_chk(void *, int, size_t, size_t); -char *__stpcpy_chk(char *, const char *, size_t); -char *__strcat_chk(char *, const char *, size_t); -char *__strcpy_chk(char *, const char *, size_t); -char *__strncat_chk(char *, const char *, size_t, size_t); -char *__strncpy_chk(char *, const char *, size_t, size_t); -__END_DECLS - -#if __SSP_FORTIFY_LEVEL > 0 - -#define __ssp_bos_check3(fun, dst, src, len) \ - ((__ssp_bos0(dst) != (size_t)-1) ? \ - __builtin___ ## fun ## _chk(dst, src, len, __ssp_bos0(dst)) : \ - __ ## fun ## _ichk(dst, src, len)) - -#define __ssp_bos_check2(fun, dst, src) \ - ((__ssp_bos0(dst) != (size_t)-1) ? \ - __builtin___ ## fun ## _chk(dst, src, __ssp_bos0(dst)) : \ - __ ## fun ## _ichk(dst, src)) - -#define __ssp_bos_icheck3_restrict(fun, type1, type2) \ -__ssp_inline type1 __ ## fun ## _ichk(type1 __restrict, type2 __restrict, size_t); \ -__ssp_inline type1 \ -__ ## fun ## _ichk(type1 __restrict dst, type2 __restrict src, size_t len) { \ - return __builtin___ ## fun ## _chk(dst, src, len, __ssp_bos0(dst)); \ -} - -#define __ssp_bos_icheck3(fun, type1, type2) \ -__ssp_inline type1 __ ## fun ## _ichk(type1, type2, size_t); \ -__ssp_inline type1 \ -__ ## fun ## _ichk(type1 dst, type2 src, size_t len) { \ - return __builtin___ ## fun ## _chk(dst, src, len, __ssp_bos0(dst)); \ -} - -#define __ssp_bos_icheck2_restrict(fun, type1, type2) \ -__ssp_inline type1 __ ## fun ## _ichk(type1, type2); \ -__ssp_inline type1 \ -__ ## fun ## _ichk(type1 __restrict dst, type2 __restrict src) { \ - return __builtin___ ## fun ## _chk(dst, src, __ssp_bos0(dst)); \ -} - -__BEGIN_DECLS -__ssp_bos_icheck3_restrict(memcpy, void *, const void *) -__ssp_bos_icheck3(memmove, void *, const void *) -__ssp_bos_icheck3_restrict(mempcpy, void *, const void *) -__ssp_bos_icheck3(memset, void *, int) -__ssp_bos_icheck2_restrict(stpcpy, char *, const char *) -#if __GNUC_PREREQ__(4,8) || defined(__clang__) -__ssp_bos_icheck3_restrict(stpncpy, char *, const char *) -#endif -__ssp_bos_icheck2_restrict(strcpy, char *, const char *) -__ssp_bos_icheck2_restrict(strcat, char *, const char *) -__ssp_bos_icheck3_restrict(strncpy, char *, const char *) -__ssp_bos_icheck3_restrict(strncat, char *, const char *) -__END_DECLS - -#define memcpy(dst, src, len) __ssp_bos_check3(memcpy, dst, src, len) -#define memmove(dst, src, len) __ssp_bos_check3(memmove, dst, src, len) -#if __GNU_VISIBLE -#define mempcpy(dst, src, len) __ssp_bos_check3(mempcpy, dst, src, len) -#endif -#define memset(dst, val, len) __ssp_bos_check3(memset, dst, val, len) -#if __POSIX_VISIBLE >= 200809 -#define stpcpy(dst, src) __ssp_bos_check2(stpcpy, dst, src) -#if __GNUC_PREREQ__(4,8) || defined(__clang__) -#define stpncpy(dst, src, len) __ssp_bos_check3(stpncpy, dst, src, len) -#endif -#endif -#define strcpy(dst, src) __ssp_bos_check2(strcpy, dst, src) -#define strcat(dst, src) __ssp_bos_check2(strcat, dst, src) -#define strncpy(dst, src, len) __ssp_bos_check3(strncpy, dst, src, len) -#define strncat(dst, src, len) __ssp_bos_check3(strncat, dst, src, len) - -#endif /* __SSP_FORTIFY_LEVEL > 0 */ -#endif /* _SSP_STRING_H_ */ diff --git a/lib/include/ssp/strings.h b/lib/include/ssp/strings.h deleted file mode 100644 index 13adba1..0000000 --- a/lib/include/ssp/strings.h +++ /dev/null @@ -1,55 +0,0 @@ -/* $NetBSD: strings.h,v 1.3 2008/04/28 20:22:54 martin Exp $ */ - -/*- - * Copyright (c) 2007 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef _SSP_STRINGS_H_ -#define _SSP_STRINGS_H_ - -#include - -#if __SSP_FORTIFY_LEVEL > 0 - -#if __BSD_VISIBLE || __POSIX_VISIBLE <= 200112 -#define bcopy(src, dst, len) \ - ((__ssp_bos0(dst) != (size_t)-1) ? \ - __builtin___memmove_chk(dst, src, len, __ssp_bos0(dst)) : \ - __memmove_ichk(dst, src, len)) -#define bzero(dst, len) \ - ((__ssp_bos0(dst) != (size_t)-1) ? \ - __builtin___memset_chk(dst, 0, len, __ssp_bos0(dst)) : \ - __memset_ichk(dst, 0, len)) -#endif - -#if __BSD_VISIBLE -__ssp_redirect0(void, explicit_bzero, (void *__buf, size_t __len), \ - (__buf, __len)); -#endif - -#endif /* __SSP_FORTIFY_LEVEL > 0 */ -#endif /* _SSP_STRINGS_H_ */ diff --git a/lib/include/ssp/unistd.h b/lib/include/ssp/unistd.h deleted file mode 100644 index 5ca6ace..0000000 --- a/lib/include/ssp/unistd.h +++ /dev/null @@ -1,93 +0,0 @@ -/* $NetBSD: unistd.h,v 1.7 2015/06/25 18:41:03 joerg Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef _SSP_UNISTD_H_ -#define _SSP_UNISTD_H_ - -#include - -#if __SSP_FORTIFY_LEVEL > 0 -__BEGIN_DECLS - -#if __POSIX_VISIBLE >= 199209 -__ssp_redirect(size_t, confstr, (int __name, char *__buf, size_t __len), \ - (__name, __buf, __len)); -#endif - -__ssp_redirect_raw(char *, getcwd, (char *__buf, size_t __len), - (__buf, __len), __buf != 0, __ssp_bos); - -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -__ssp_redirect(int, getdomainname, (char *__buf, size_t __len), \ - (__buf, __len)); -#endif - -__ssp_decl(int, getgroups, (int __n, gid_t __buf[])) -{ - __ssp_check(__buf, __n * sizeof(gid_t), __ssp_bos); - return __ssp_real_getgroups (__n, __buf); -} - -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500 -#if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) -__ssp_redirect(int, gethostname, (char *__buf, size_t __len), \ - (__buf, __len)); -#endif -#endif - -__ssp_redirect(int, getlogin_r, (char *__buf, size_t __len), \ - (__buf, __len)); - -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500 -__ssp_redirect0(ssize_t, pread, (int __fd, void *__buf, size_t __len, off_t __off), \ - (__fd, __buf, __len, __off)); -#endif - -__ssp_redirect0(_READ_WRITE_RETURN_TYPE, read, \ - (int __fd, void *__buf, size_t __len), (__fd, __buf, __len)); - -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 4 -__ssp_redirect(ssize_t, readlink, (const char *__restrict __path, \ - char *__restrict __buf, size_t __len), (__path, __buf, __len)); -#endif - -#if __ATFILE_VISIBLE -__ssp_redirect(ssize_t, readlinkat, \ - (int __dirfd1, const char *__restrict __path, char *__restrict __buf, size_t __len), \ - (__dirfd1, __path, __buf, __len)); -#endif - -__ssp_redirect(int, ttyname_r, (int __fd, char *__buf, size_t __len), \ - (__fd, __buf, __len)); - -__END_DECLS - -#endif /* __SSP_FORTIFY_LEVEL > 0 */ -#endif /* _SSP_UNISTD_H_ */ diff --git a/lib/include/ssp/wchar.h b/lib/include/ssp/wchar.h deleted file mode 100644 index d748fa2..0000000 --- a/lib/include/ssp/wchar.h +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef _SSP_WCHAR_H_ -#define _SSP_WCHAR_H_ - -#include -#include - -#if __SSP_FORTIFY_LEVEL > 0 - -/* wide character variant, __wlen is number of wchar_t */ -#define __ssp_redirect_wc(rtype, fun, args, call, cond, bos) \ -__ssp_decl(rtype, fun, args) \ -{ \ - if (cond) \ - __ssp_check(__buf, __wlen * sizeof(wchar_t), bos); \ - return __ssp_real_(fun) call; \ -} - -#define __ssp_bos_wicheck3(fun) \ -__ssp_redirect_wc(wchar_t *, fun, \ - (wchar_t *__buf, const wchar_t *__src, size_t __wlen), \ - (__buf, __src, __wlen), 1, __ssp_bos0) - -#define __ssp_bos_wicheck3_restrict(fun) \ -__ssp_redirect_wc(wchar_t *, fun, \ - (wchar_t *__restrict __buf, const wchar_t *__restrict __src, size_t __wlen), \ - (__buf, __src, __wlen), 1, __ssp_bos0) - -#define __ssp_bos_wicheck2_restrict(fun) \ -__ssp_decl(wchar_t *, fun, (wchar_t *__restrict __buf, const wchar_t *__restrict __src)) \ -{ \ - __ssp_check(__buf, (wcslen(__src) + 1) * sizeof(wchar_t), __ssp_bos0); \ - return __ssp_real_(fun) (__buf, __src); \ -} - -__BEGIN_DECLS -#if __POSIX_VISIBLE >= 200809 -__ssp_bos_wicheck2_restrict(wcpcpy) -__ssp_bos_wicheck3_restrict(wcpncpy) -#endif -__ssp_bos_wicheck2_restrict(wcscpy) -__ssp_bos_wicheck2_restrict(wcscat) -__ssp_bos_wicheck3_restrict(wcsncpy) -__ssp_bos_wicheck3_restrict(wcsncat) -__ssp_bos_wicheck3_restrict(wmemcpy) -__ssp_bos_wicheck3(wmemmove) -#if __GNU_VISIBLE -__ssp_bos_wicheck3_restrict(wmempcpy) -#endif -__ssp_redirect_wc(wchar_t *, wmemset, \ - (wchar_t *__buf, wchar_t __src, size_t __wlen), \ - (__buf, __src, __wlen), 1, __ssp_bos0) - -__ssp_decl(size_t, wcrtomb, (char *__buf, wchar_t __src, mbstate_t *__ps)) -{ - if (__buf != NULL && __src != L'\0') - __ssp_check(__buf, sizeof(wchar_t), __ssp_bos); - return __ssp_real_wcrtomb (__buf, __src, __ps); -} - -__ssp_redirect_wc(size_t, mbsrtowcs, \ - (wchar_t *__buf, const char **__src, size_t __wlen, mbstate_t *__ps), \ - (__buf, __src, __wlen, __ps), __buf != NULL, __ssp_bos) - -__ssp_redirect_raw(size_t, wcsrtombs, \ - (char *__buf, const wchar_t **__src, size_t __len, mbstate_t *__ps), \ - (__buf, __src, __len, __ps), __buf != NULL, __ssp_bos) - -#if __POSIX_VISIBLE >= 200809 -__ssp_redirect_wc(size_t, mbsnrtowcs, \ - (wchar_t *__buf, const char **__src, size_t __nms, size_t __wlen, mbstate_t *__ps), \ - (__buf, __src, __nms, __wlen, __ps), __buf != NULL, __ssp_bos) - -__ssp_redirect_raw(size_t, wcsnrtombs, \ - (char *__buf, const wchar_t **__src, size_t __nwc, size_t __len, mbstate_t *__ps), \ - (__buf, __src, __nwc, __len, __ps), __buf != NULL, __ssp_bos) -#endif - -__ssp_decl(wchar_t *, fgetws, (wchar_t *__restrict __buf, int __wlen, __FILE *__restrict __fp)) -{ - if (__wlen > 0) - __ssp_check(__buf, (size_t)__wlen * sizeof(wchar_t) , __ssp_bos); - return __ssp_real_fgetws(__buf, __wlen, __fp); -} - -#if __GNU_VISIBLE -__ssp_decl(wchar_t *, fgetws_unlocked, (wchar_t *__buf, int __wlen, __FILE *__fp)) -{ - if (__wlen > 0) - __ssp_check(__buf, (size_t)__wlen * sizeof(wchar_t) , __ssp_bos); - return __ssp_real_fgetws_unlocked(__buf, __wlen, __fp); -} -#endif /* __GNU_VISIBLE */ - -__END_DECLS - -#endif /* __SSP_FORTIFY_LEVEL > 0 */ -#endif /* _SSP_WCHAR_H_ */ diff --git a/lib/include/stdatomic.h b/lib/include/stdatomic.h deleted file mode 100644 index d58e795..0000000 --- a/lib/include/stdatomic.h +++ /dev/null @@ -1,409 +0,0 @@ -/*- - * Copyright (c) 2011 Ed Schouten - * David Chisnall - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _STDATOMIC_H_ -#define _STDATOMIC_H_ - -#include -#include - -#if __has_extension(c_atomic) || __has_extension(cxx_atomic) -#define __CLANG_ATOMICS -#elif __GNUC_PREREQ__(4, 7) -#define __GNUC_ATOMICS -#elif defined(__GNUC__) -#define __SYNC_ATOMICS -#else -#error "stdatomic.h does not support your compiler" -#endif - -/* - * 7.17.1 Atomic lock-free macros. - */ - -#ifdef __GCC_ATOMIC_BOOL_LOCK_FREE -#define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_CHAR_LOCK_FREE -#define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_CHAR16_T_LOCK_FREE -#define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_CHAR32_T_LOCK_FREE -#define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_WCHAR_T_LOCK_FREE -#define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_SHORT_LOCK_FREE -#define ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_INT_LOCK_FREE -#define ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_LONG_LOCK_FREE -#define ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_LLONG_LOCK_FREE -#define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_POINTER_LOCK_FREE -#define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE -#endif - -/* - * 7.17.2 Initialization. - */ - -#if defined(__CLANG_ATOMICS) -#define ATOMIC_VAR_INIT(value) (value) -#define atomic_init(obj, value) __c11_atomic_init(obj, value) -#else -#define ATOMIC_VAR_INIT(value) { .__val = (value) } -#define atomic_init(obj, value) ((void)((obj)->__val = (value))) -#endif - -/* - * Clang and recent GCC both provide predefined macros for the memory - * orderings. If we are using a compiler that doesn't define them, use the - * clang values - these will be ignored in the fallback path. - */ - -#ifndef __ATOMIC_RELAXED -#define __ATOMIC_RELAXED 0 -#endif -#ifndef __ATOMIC_CONSUME -#define __ATOMIC_CONSUME 1 -#endif -#ifndef __ATOMIC_ACQUIRE -#define __ATOMIC_ACQUIRE 2 -#endif -#ifndef __ATOMIC_RELEASE -#define __ATOMIC_RELEASE 3 -#endif -#ifndef __ATOMIC_ACQ_REL -#define __ATOMIC_ACQ_REL 4 -#endif -#ifndef __ATOMIC_SEQ_CST -#define __ATOMIC_SEQ_CST 5 -#endif - -/* - * 7.17.3 Order and consistency. - * - * The memory_order_* constants that denote the barrier behaviour of the - * atomic operations. - */ - -typedef enum { - memory_order_relaxed = __ATOMIC_RELAXED, - memory_order_consume = __ATOMIC_CONSUME, - memory_order_acquire = __ATOMIC_ACQUIRE, - memory_order_release = __ATOMIC_RELEASE, - memory_order_acq_rel = __ATOMIC_ACQ_REL, - memory_order_seq_cst = __ATOMIC_SEQ_CST -} memory_order; - -/* - * 7.17.4 Fences. - */ - -static __inline void -atomic_thread_fence(memory_order __order __unused) -{ - -#ifdef __CLANG_ATOMICS - __c11_atomic_thread_fence(__order); -#elif defined(__GNUC_ATOMICS) - __atomic_thread_fence(__order); -#else - __sync_synchronize(); -#endif -} - -static __inline void -atomic_signal_fence(memory_order __order __unused) -{ - -#ifdef __CLANG_ATOMICS - __c11_atomic_signal_fence(__order); -#elif defined(__GNUC_ATOMICS) - __atomic_signal_fence(__order); -#else - __asm volatile ("" ::: "memory"); -#endif -} - -/* - * 7.17.5 Lock-free property. - */ - -#if defined(_KERNEL) -/* Atomics in kernelspace are always lock-free. */ -#define atomic_is_lock_free(obj) \ - ((void)(obj), (_Bool)1) -#elif defined(__CLANG_ATOMICS) || defined(__GNUC_ATOMICS) -#define atomic_is_lock_free(obj) \ - __atomic_is_lock_free(sizeof(*(obj)), obj) -#else -#define atomic_is_lock_free(obj) \ - ((void)(obj), sizeof((obj)->__val) <= sizeof(void *)) -#endif - -/* - * 7.17.6 Atomic integer types. - */ - -typedef _Atomic(_Bool) atomic_bool; -typedef _Atomic(char) atomic_char; -typedef _Atomic(signed char) atomic_schar; -typedef _Atomic(unsigned char) atomic_uchar; -typedef _Atomic(short) atomic_short; -typedef _Atomic(unsigned short) atomic_ushort; -typedef _Atomic(int) atomic_int; -typedef _Atomic(unsigned int) atomic_uint; -typedef _Atomic(long) atomic_long; -typedef _Atomic(unsigned long) atomic_ulong; -typedef _Atomic(long long) atomic_llong; -typedef _Atomic(unsigned long long) atomic_ullong; -#if 0 -typedef _Atomic(__char16_t) atomic_char16_t; -typedef _Atomic(__char32_t) atomic_char32_t; -#endif -typedef _Atomic(wchar_t) atomic_wchar_t; -typedef _Atomic(int_least8_t) atomic_int_least8_t; -typedef _Atomic(uint_least8_t) atomic_uint_least8_t; -typedef _Atomic(int_least16_t) atomic_int_least16_t; -typedef _Atomic(uint_least16_t) atomic_uint_least16_t; -typedef _Atomic(int_least32_t) atomic_int_least32_t; -typedef _Atomic(uint_least32_t) atomic_uint_least32_t; -typedef _Atomic(int_least64_t) atomic_int_least64_t; -typedef _Atomic(uint_least64_t) atomic_uint_least64_t; -typedef _Atomic(int_fast8_t) atomic_int_fast8_t; -typedef _Atomic(uint_fast8_t) atomic_uint_fast8_t; -typedef _Atomic(int_fast16_t) atomic_int_fast16_t; -typedef _Atomic(uint_fast16_t) atomic_uint_fast16_t; -typedef _Atomic(int_fast32_t) atomic_int_fast32_t; -typedef _Atomic(uint_fast32_t) atomic_uint_fast32_t; -typedef _Atomic(int_fast64_t) atomic_int_fast64_t; -typedef _Atomic(uint_fast64_t) atomic_uint_fast64_t; -typedef _Atomic(intptr_t) atomic_intptr_t; -typedef _Atomic(uintptr_t) atomic_uintptr_t; -typedef _Atomic(size_t) atomic_size_t; -typedef _Atomic(ptrdiff_t) atomic_ptrdiff_t; -typedef _Atomic(intmax_t) atomic_intmax_t; -typedef _Atomic(uintmax_t) atomic_uintmax_t; - -/* - * 7.17.7 Operations on atomic types. - */ - -/* - * Compiler-specific operations. - */ - -#if defined(__CLANG_ATOMICS) -#define atomic_compare_exchange_strong_explicit(object, expected, \ - desired, success, failure) \ - __c11_atomic_compare_exchange_strong(object, expected, desired, \ - success, failure) -#define atomic_compare_exchange_weak_explicit(object, expected, \ - desired, success, failure) \ - __c11_atomic_compare_exchange_weak(object, expected, desired, \ - success, failure) -#define atomic_exchange_explicit(object, desired, order) \ - __c11_atomic_exchange(object, desired, order) -#define atomic_fetch_add_explicit(object, operand, order) \ - __c11_atomic_fetch_add(object, operand, order) -#define atomic_fetch_and_explicit(object, operand, order) \ - __c11_atomic_fetch_and(object, operand, order) -#define atomic_fetch_or_explicit(object, operand, order) \ - __c11_atomic_fetch_or(object, operand, order) -#define atomic_fetch_sub_explicit(object, operand, order) \ - __c11_atomic_fetch_sub(object, operand, order) -#define atomic_fetch_xor_explicit(object, operand, order) \ - __c11_atomic_fetch_xor(object, operand, order) -#define atomic_load_explicit(object, order) \ - __c11_atomic_load(object, order) -#define atomic_store_explicit(object, desired, order) \ - __c11_atomic_store(object, desired, order) -#elif defined(__GNUC_ATOMICS) -#define atomic_compare_exchange_strong_explicit(object, expected, \ - desired, success, failure) \ - __atomic_compare_exchange_n(object, expected, \ - desired, 0, success, failure) -#define atomic_compare_exchange_weak_explicit(object, expected, \ - desired, success, failure) \ - __atomic_compare_exchange_n(object, expected, \ - desired, 1, success, failure) -#define atomic_exchange_explicit(object, desired, order) \ - __atomic_exchange_n(object, desired, order) -#define atomic_fetch_add_explicit(object, operand, order) \ - __atomic_fetch_add(object, operand, order) -#define atomic_fetch_and_explicit(object, operand, order) \ - __atomic_fetch_and(object, operand, order) -#define atomic_fetch_or_explicit(object, operand, order) \ - __atomic_fetch_or(object, operand, order) -#define atomic_fetch_sub_explicit(object, operand, order) \ - __atomic_fetch_sub(object, operand, order) -#define atomic_fetch_xor_explicit(object, operand, order) \ - __atomic_fetch_xor(object, operand, order) -#define atomic_load_explicit(object, order) \ - __atomic_load_n(object, order) -#define atomic_store_explicit(object, desired, order) \ - __atomic_store_n(object, desired, order) -#else -#define __atomic_apply_stride(object, operand) \ - (((__typeof__((object)->__val))0) + (operand)) -#define atomic_compare_exchange_strong_explicit(object, expected, \ - desired, success, failure) __extension__ ({ \ - __typeof__(expected) __ep = (expected); \ - __typeof__(*__ep) __e = *__ep; \ - (void)(success); (void)(failure); \ - (_Bool)((*__ep = __sync_val_compare_and_swap(&(object)->__val, \ - __e, desired)) == __e); \ -}) -#define atomic_compare_exchange_weak_explicit(object, expected, \ - desired, success, failure) \ - atomic_compare_exchange_strong_explicit(object, expected, \ - desired, success, failure) -#if __has_builtin(__sync_swap) -/* Clang provides a full-barrier atomic exchange - use it if available. */ -#define atomic_exchange_explicit(object, desired, order) \ - ((void)(order), __sync_swap(&(object)->__val, desired)) -#else -/* - * __sync_lock_test_and_set() is only an acquire barrier in theory (although in - * practice it is usually a full barrier) so we need an explicit barrier before - * it. - */ -#define atomic_exchange_explicit(object, desired, order) \ -__extension__ ({ \ - __typeof__(object) __o = (object); \ - __typeof__(desired) __d = (desired); \ - (void)(order); \ - __sync_synchronize(); \ - __sync_lock_test_and_set(&(__o)->__val, __d); \ -}) -#endif -#define atomic_fetch_add_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_add(&(object)->__val, \ - __atomic_apply_stride(object, operand))) -#define atomic_fetch_and_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_and(&(object)->__val, operand)) -#define atomic_fetch_or_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_or(&(object)->__val, operand)) -#define atomic_fetch_sub_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_sub(&(object)->__val, \ - __atomic_apply_stride(object, operand))) -#define atomic_fetch_xor_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_xor(&(object)->__val, operand)) -#define atomic_load_explicit(object, order) \ - ((void)(order), __sync_fetch_and_add(&(object)->__val, 0)) -#define atomic_store_explicit(object, desired, order) \ - ((void)atomic_exchange_explicit(object, desired, order)) -#endif - -/* - * Convenience functions. - * - * Don't provide these in kernel space. In kernel space, we should be - * disciplined enough to always provide explicit barriers. - */ - -#ifndef _KERNEL -#define atomic_compare_exchange_strong(object, expected, desired) \ - atomic_compare_exchange_strong_explicit(object, expected, \ - desired, memory_order_seq_cst, memory_order_seq_cst) -#define atomic_compare_exchange_weak(object, expected, desired) \ - atomic_compare_exchange_weak_explicit(object, expected, \ - desired, memory_order_seq_cst, memory_order_seq_cst) -#define atomic_exchange(object, desired) \ - atomic_exchange_explicit(object, desired, memory_order_seq_cst) -#define atomic_fetch_add(object, operand) \ - atomic_fetch_add_explicit(object, operand, memory_order_seq_cst) -#define atomic_fetch_and(object, operand) \ - atomic_fetch_and_explicit(object, operand, memory_order_seq_cst) -#define atomic_fetch_or(object, operand) \ - atomic_fetch_or_explicit(object, operand, memory_order_seq_cst) -#define atomic_fetch_sub(object, operand) \ - atomic_fetch_sub_explicit(object, operand, memory_order_seq_cst) -#define atomic_fetch_xor(object, operand) \ - atomic_fetch_xor_explicit(object, operand, memory_order_seq_cst) -#define atomic_load(object) \ - atomic_load_explicit(object, memory_order_seq_cst) -#define atomic_store(object, desired) \ - atomic_store_explicit(object, desired, memory_order_seq_cst) -#endif /* !_KERNEL */ - -/* - * 7.17.8 Atomic flag type and operations. - * - * XXX: Assume atomic_bool can be used as an atomic_flag. Is there some - * kind of compiler built-in type we could use? - */ - -typedef struct { - atomic_bool __flag; -} atomic_flag; -#define ATOMIC_FLAG_INIT { ATOMIC_VAR_INIT(0) } - -static __inline _Bool -atomic_flag_test_and_set_explicit(volatile atomic_flag *__object, - memory_order __order) -{ - return (atomic_exchange_explicit(&__object->__flag, 1, __order)); -} - -static __inline void -atomic_flag_clear_explicit(volatile atomic_flag *__object, memory_order __order) -{ - - atomic_store_explicit(&__object->__flag, 0, __order); -} - -#ifndef _KERNEL -static __inline _Bool -atomic_flag_test_and_set(volatile atomic_flag *__object) -{ - - return (atomic_flag_test_and_set_explicit(__object, - memory_order_seq_cst)); -} - -static __inline void -atomic_flag_clear(volatile atomic_flag *__object) -{ - - atomic_flag_clear_explicit(__object, memory_order_seq_cst); -} -#endif /* !_KERNEL */ - -#endif /* !_STDATOMIC_H_ */ diff --git a/lib/include/stdint.h b/lib/include/stdint.h deleted file mode 100644 index 4abdacb..0000000 --- a/lib/include/stdint.h +++ /dev/null @@ -1,466 +0,0 @@ -/* - * Copyright (c) 2004, 2005 by - * Ralf Corsepius, Ulm/Germany. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _STDINT_H -#define _STDINT_H - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef ___int_least8_t_defined -typedef __int_least8_t int_least8_t; -typedef __uint_least8_t uint_least8_t; -#define __int_least8_t_defined 1 -#endif - -#ifdef ___int_least16_t_defined -typedef __int_least16_t int_least16_t; -typedef __uint_least16_t uint_least16_t; -#define __int_least16_t_defined 1 -#endif - -#ifdef ___int_least32_t_defined -typedef __int_least32_t int_least32_t; -typedef __uint_least32_t uint_least32_t; -#define __int_least32_t_defined 1 -#endif - -#ifdef ___int_least64_t_defined -typedef __int_least64_t int_least64_t; -typedef __uint_least64_t uint_least64_t; -#define __int_least64_t_defined 1 -#endif - -/* - * Fastest minimum-width integer types - * - * Assume int to be the fastest type for all types with a width - * less than __INT_MAX__ rsp. INT_MAX - */ -#ifdef __INT_FAST8_TYPE__ - typedef __INT_FAST8_TYPE__ int_fast8_t; - typedef __UINT_FAST8_TYPE__ uint_fast8_t; -#define __int_fast8_t_defined 1 -#elif __STDINT_EXP(INT_MAX) >= 0x7f - typedef signed int int_fast8_t; - typedef unsigned int uint_fast8_t; -#define __int_fast8_t_defined 1 -#endif - -#ifdef __INT_FAST16_TYPE__ - typedef __INT_FAST16_TYPE__ int_fast16_t; - typedef __UINT_FAST16_TYPE__ uint_fast16_t; -#define __int_fast16_t_defined 1 -#elif __STDINT_EXP(INT_MAX) >= 0x7fff - typedef signed int int_fast16_t; - typedef unsigned int uint_fast16_t; -#define __int_fast16_t_defined 1 -#endif - -#ifdef __INT_FAST32_TYPE__ - typedef __INT_FAST32_TYPE__ int_fast32_t; - typedef __UINT_FAST32_TYPE__ uint_fast32_t; -#define __int_fast32_t_defined 1 -#elif __STDINT_EXP(INT_MAX) >= 0x7fffffff - typedef signed int int_fast32_t; - typedef unsigned int uint_fast32_t; -#define __int_fast32_t_defined 1 -#endif - -#ifdef __INT_FAST64_TYPE__ - typedef __INT_FAST64_TYPE__ int_fast64_t; - typedef __UINT_FAST64_TYPE__ uint_fast64_t; -#define __int_fast64_t_defined 1 -#elif __STDINT_EXP(INT_MAX) > 0x7fffffff - typedef signed int int_fast64_t; - typedef unsigned int uint_fast64_t; -#define __int_fast64_t_defined 1 -#endif - -/* - * Fall back to [u]int_least_t for [u]int_fast_t types - * not having been defined, yet. - * Leave undefined, if [u]int_least_t should not be available. - */ -#if !__int_fast8_t_defined -#if __int_least8_t_defined - typedef int_least8_t int_fast8_t; - typedef uint_least8_t uint_fast8_t; -#define __int_fast8_t_defined 1 -#endif -#endif - -#if !__int_fast16_t_defined -#if __int_least16_t_defined - typedef int_least16_t int_fast16_t; - typedef uint_least16_t uint_fast16_t; -#define __int_fast16_t_defined 1 -#endif -#endif - -#if !__int_fast32_t_defined -#if __int_least32_t_defined - typedef int_least32_t int_fast32_t; - typedef uint_least32_t uint_fast32_t; -#define __int_fast32_t_defined 1 -#endif -#endif - -#if !__int_fast64_t_defined -#if __int_least64_t_defined - typedef int_least64_t int_fast64_t; - typedef uint_least64_t uint_fast64_t; -#define __int_fast64_t_defined 1 -#endif -#endif - -#ifdef __INTPTR_TYPE__ -#define INTPTR_MIN (-__INTPTR_MAX__ - 1) -#define INTPTR_MAX (__INTPTR_MAX__) -#define UINTPTR_MAX (__UINTPTR_MAX__) -#elif defined(__PTRDIFF_TYPE__) -#define INTPTR_MAX PTRDIFF_MAX -#define INTPTR_MIN PTRDIFF_MIN -#ifdef __UINTPTR_MAX__ -#define UINTPTR_MAX (__UINTPTR_MAX__) -#else -#define UINTPTR_MAX (2UL * PTRDIFF_MAX + 1) -#endif -#else -/* - * Fallback to hardcoded values, - * should be valid on cpu's with 32bit int/32bit void* - */ -#define INTPTR_MAX (__STDINT_EXP(LONG_MAX)) -#define INTPTR_MIN (-__STDINT_EXP(LONG_MAX) - 1) -#define UINTPTR_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1) -#endif - -/* Limits of Specified-Width Integer Types */ - -#ifdef __INT8_MAX__ -#define INT8_MIN (-__INT8_MAX__ - 1) -#define INT8_MAX (__INT8_MAX__) -#define UINT8_MAX (__UINT8_MAX__) -#elif defined(__int8_t_defined) -#define INT8_MIN (-128) -#define INT8_MAX (127) -#define UINT8_MAX (255) -#endif - -#ifdef __INT_LEAST8_MAX__ -#define INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1) -#define INT_LEAST8_MAX (__INT_LEAST8_MAX__) -#define UINT_LEAST8_MAX (__UINT_LEAST8_MAX__) -#elif defined(__int_least8_t_defined) -#define INT_LEAST8_MIN (-128) -#define INT_LEAST8_MAX (127) -#define UINT_LEAST8_MAX (255) -#else -#error required type int_least8_t missing -#endif - -#ifdef __INT16_MAX__ -#define INT16_MIN (-__INT16_MAX__ - 1) -#define INT16_MAX (__INT16_MAX__) -#define UINT16_MAX (__UINT16_MAX__) -#elif defined(__int16_t_defined) -#define INT16_MIN (-32768) -#define INT16_MAX (32767) -#define UINT16_MAX (65535) -#endif - -#ifdef __INT_LEAST16_MAX__ -#define INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1) -#define INT_LEAST16_MAX (__INT_LEAST16_MAX__) -#define UINT_LEAST16_MAX (__UINT_LEAST16_MAX__) -#elif defined(__int_least16_t_defined) -#define INT_LEAST16_MIN (-32768) -#define INT_LEAST16_MAX (32767) -#define UINT_LEAST16_MAX (65535) -#else -#error required type int_least16_t missing -#endif - -#ifdef __INT32_MAX__ -#define INT32_MIN (-__INT32_MAX__ - 1) -#define INT32_MAX (__INT32_MAX__) -#define UINT32_MAX (__UINT32_MAX__) -#elif defined(__int32_t_defined) -#if defined (_INT32_EQ_LONG) -#define INT32_MIN (-2147483647L-1) -#define INT32_MAX (2147483647L) -#define UINT32_MAX (4294967295UL) -#else -#define INT32_MIN (-2147483647-1) -#define INT32_MAX (2147483647) -#define UINT32_MAX (4294967295U) -#endif -#endif - -#ifdef __INT_LEAST32_MAX__ -#define INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1) -#define INT_LEAST32_MAX (__INT_LEAST32_MAX__) -#define UINT_LEAST32_MAX (__UINT_LEAST32_MAX__) -#elif defined(__int_least32_t_defined) -#if defined (_INT32_EQ_LONG) -#define INT_LEAST32_MIN (-2147483647L-1) -#define INT_LEAST32_MAX (2147483647L) -#define UINT_LEAST32_MAX (4294967295UL) -#else -#define INT_LEAST32_MIN (-2147483647-1) -#define INT_LEAST32_MAX (2147483647) -#define UINT_LEAST32_MAX (4294967295U) -#endif -#else -#error required type int_least32_t missing -#endif - -#ifdef __INT64_MAX__ -#define INT64_MIN (-__INT64_MAX__ - 1) -#define INT64_MAX (__INT64_MAX__) -#define UINT64_MAX (__UINT64_MAX__) -#elif defined(__int64_t_defined) -#if __have_long64 -#define INT64_MIN (-9223372036854775807L-1L) -#define INT64_MAX (9223372036854775807L) -#define UINT64_MAX (18446744073709551615U) -#elif __have_longlong64 -#define INT64_MIN (-9223372036854775807LL-1LL) -#define INT64_MAX (9223372036854775807LL) -#define UINT64_MAX (18446744073709551615ULL) -#endif -#endif - -#ifdef __INT_LEAST64_MAX__ -#define INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1) -#define INT_LEAST64_MAX (__INT_LEAST64_MAX__) -#define UINT_LEAST64_MAX (__UINT_LEAST64_MAX__) -#elif defined(__int_least64_t_defined) -#if __have_long64 -#define INT_LEAST64_MIN (-9223372036854775807L-1L) -#define INT_LEAST64_MAX (9223372036854775807L) -#define UINT_LEAST64_MAX (18446744073709551615U) -#elif __have_longlong64 -#define INT_LEAST64_MIN (-9223372036854775807LL-1LL) -#define INT_LEAST64_MAX (9223372036854775807LL) -#define UINT_LEAST64_MAX (18446744073709551615ULL) -#endif -#endif - -#ifdef __INT_FAST8_MAX__ -#define INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1) -#define INT_FAST8_MAX (__INT_FAST8_MAX__) -#define UINT_FAST8_MAX (__UINT_FAST8_MAX__) -#elif defined(__int_fast8_t_defined) -#if __STDINT_EXP(INT_MAX) >= 0x7f -#define INT_FAST8_MIN (-__STDINT_EXP(INT_MAX)-1) -#define INT_FAST8_MAX (__STDINT_EXP(INT_MAX)) -#define UINT_FAST8_MAX (__STDINT_EXP(INT_MAX)*2U+1U) -#else -#define INT_FAST8_MIN INT_LEAST8_MIN -#define INT_FAST8_MAX INT_LEAST8_MAX -#define UINT_FAST8_MAX UINT_LEAST8_MAX -#endif -#endif - -#ifdef __INT_FAST16_MAX__ -#define INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1) -#define INT_FAST16_MAX (__INT_FAST16_MAX__) -#define UINT_FAST16_MAX (__UINT_FAST16_MAX__) -#elif defined(__int_fast16_t_defined) -#if __STDINT_EXP(INT_MAX) >= 0x7fff -#define INT_FAST16_MIN (-__STDINT_EXP(INT_MAX)-1) -#define INT_FAST16_MAX (__STDINT_EXP(INT_MAX)) -#define UINT_FAST16_MAX (__STDINT_EXP(INT_MAX)*2U+1U) -#else -#define INT_FAST16_MIN INT_LEAST16_MIN -#define INT_FAST16_MAX INT_LEAST16_MAX -#define UINT_FAST16_MAX UINT_LEAST16_MAX -#endif -#endif - -#ifdef __INT_FAST32_MAX__ -#define INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1) -#define INT_FAST32_MAX (__INT_FAST32_MAX__) -#define UINT_FAST32_MAX (__UINT_FAST32_MAX__) -#elif defined(__int_fast32_t_defined) -#if __STDINT_EXP(INT_MAX) >= 0x7fffffff -#define INT_FAST32_MIN (-__STDINT_EXP(INT_MAX)-1) -#define INT_FAST32_MAX (__STDINT_EXP(INT_MAX)) -#define UINT_FAST32_MAX (__STDINT_EXP(INT_MAX)*2U+1U) -#else -#define INT_FAST32_MIN INT_LEAST32_MIN -#define INT_FAST32_MAX INT_LEAST32_MAX -#define UINT_FAST32_MAX UINT_LEAST32_MAX -#endif -#endif - -#ifdef __INT_FAST64_MAX__ -#define INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1) -#define INT_FAST64_MAX (__INT_FAST64_MAX__) -#define UINT_FAST64_MAX (__UINT_FAST64_MAX__) -#elif defined(__int_fast64_t_defined) -#if __STDINT_EXP(INT_MAX) > 0x7fffffff -#define INT_FAST64_MIN (-__STDINT_EXP(INT_MAX)-1) -#define INT_FAST64_MAX (__STDINT_EXP(INT_MAX)) -#define UINT_FAST64_MAX (__STDINT_EXP(INT_MAX)*2U+1U) -#else -#define INT_FAST64_MIN INT_LEAST64_MIN -#define INT_FAST64_MAX INT_LEAST64_MAX -#define UINT_FAST64_MAX UINT_LEAST64_MAX -#endif -#endif - -#ifdef __INTMAX_MAX__ -#define INTMAX_MAX (__INTMAX_MAX__) -#define INTMAX_MIN (-INTMAX_MAX - 1) -#elif defined(__INTMAX_TYPE__) -/* All relevant GCC versions prefer long to long long for intmax_t. */ -#define INTMAX_MAX INT64_MAX -#define INTMAX_MIN INT64_MIN -#endif - -#ifdef __UINTMAX_MAX__ -#define UINTMAX_MAX (__UINTMAX_MAX__) -#elif defined(__UINTMAX_TYPE__) -/* All relevant GCC versions prefer long to long long for intmax_t. */ -#define UINTMAX_MAX UINT64_MAX -#endif - -/* This must match size_t in stddef.h, currently long unsigned int */ -#ifdef __SIZE_MAX__ -#define SIZE_MAX (__SIZE_MAX__) -#else -#define SIZE_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1) -#endif - -/* This must match sig_atomic_t in (currently int) */ -#define SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1) -#define SIG_ATOMIC_MAX (__STDINT_EXP(INT_MAX)) - -/* This must match ptrdiff_t in (currently long int) */ -#ifdef __PTRDIFF_MAX__ -#define PTRDIFF_MAX (__PTRDIFF_MAX__) -#else -#define PTRDIFF_MAX (__STDINT_EXP(LONG_MAX)) -#endif -#define PTRDIFF_MIN (-PTRDIFF_MAX - 1) - -/* This must match definition in */ -#ifndef WCHAR_MIN -#ifdef __WCHAR_MIN__ -#define WCHAR_MIN (__WCHAR_MIN__) -#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0) -#define WCHAR_MIN (0 + L'\0') -#else -#define WCHAR_MIN (-0x7fffffff - 1 + L'\0') -#endif -#endif - -/* This must match definition in */ -#ifndef WCHAR_MAX -#ifdef __WCHAR_MAX__ -#define WCHAR_MAX (__WCHAR_MAX__) -#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0) -#define WCHAR_MAX (0xffffffffu + L'\0') -#else -#define WCHAR_MAX (0x7fffffff + L'\0') -#endif -#endif - -/* wint_t is unsigned int on almost all GCC targets. */ -#ifdef __WINT_MAX__ -#define WINT_MAX (__WINT_MAX__) -#else -#define WINT_MAX (__STDINT_EXP(INT_MAX) * 2U + 1U) -#endif -#ifdef __WINT_MIN__ -#define WINT_MIN (__WINT_MIN__) -#else -#define WINT_MIN (0U) -#endif - -/** Macros for minimum-width integer constant expressions */ -#ifdef __INT8_C -#define INT8_C(x) __INT8_C(x) -#define UINT8_C(x) __UINT8_C(x) -#else -#define INT8_C(x) x -#if __STDINT_EXP(INT_MAX) > 0x7f -#define UINT8_C(x) x -#else -#define UINT8_C(x) x##U -#endif -#endif - -#ifdef __INT16_C -#define INT16_C(x) __INT16_C(x) -#define UINT16_C(x) __UINT16_C(x) -#else -#define INT16_C(x) x -#if __STDINT_EXP(INT_MAX) > 0x7fff -#define UINT16_C(x) x -#else -#define UINT16_C(x) x##U -#endif -#endif - -#ifdef __INT32_C -#define INT32_C(x) __INT32_C(x) -#define UINT32_C(x) __UINT32_C(x) -#else -#if defined (_INT32_EQ_LONG) -#define INT32_C(x) x##L -#define UINT32_C(x) x##UL -#else -#define INT32_C(x) x -#define UINT32_C(x) x##U -#endif -#endif - -#ifdef __INT64_C -#define INT64_C(x) __INT64_C(x) -#define UINT64_C(x) __UINT64_C(x) -#else -#if __int64_t_defined -#if __have_long64 -#define INT64_C(x) x##L -#define UINT64_C(x) x##UL -#else -#define INT64_C(x) x##LL -#define UINT64_C(x) x##ULL -#endif -#endif -#endif - -/** Macros for greatest-width integer constant expression */ -#ifdef __INTMAX_C -#define INTMAX_C(x) __INTMAX_C(x) -#define UINTMAX_C(x) __UINTMAX_C(x) -#else -#if __have_long64 -#define INTMAX_C(x) x##L -#define UINTMAX_C(x) x##UL -#else -#define INTMAX_C(x) x##LL -#define UINTMAX_C(x) x##ULL -#endif -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _STDINT_H */ diff --git a/lib/include/stdio.h b/lib/include/stdio.h deleted file mode 100644 index 7796657..0000000 --- a/lib/include/stdio.h +++ /dev/null @@ -1,807 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - * - * @(#)stdio.h 5.3 (Berkeley) 3/15/86 - */ - -/* - * NB: to fit things in six character monocase externals, the - * stdio code uses the prefix `__s' for stdio objects, typically - * followed by a three-character attempt at a mnemonic. - */ - -#ifndef _STDIO_H_ -#define _STDIO_H_ - -#include "_ansi.h" - -#define _FSTDIO /* ``function stdio'' */ - -#define __need_size_t -#define __need_NULL -#include -#include - -/* typedef only __gnuc_va_list, used throughout the header */ -#define __need___va_list -#include - -/* typedef va_list only when required */ -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE -#ifdef __GNUC__ -#ifndef _VA_LIST_DEFINED -typedef __gnuc_va_list va_list; -#define _VA_LIST_DEFINED -#endif -#else /* !__GNUC__ */ -#include -#endif -#endif /* __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE */ - -/* - * defines __FILE, _fpos_t. - * They must be defined there because struct _reent needs them (and we don't - * want reent.h to include this file. - */ - -#include -#include - -_BEGIN_STD_C - -#if !defined(__FILE_defined) -typedef __FILE FILE; -# define __FILE_defined -#endif - -typedef _fpos_t fpos_t; -#ifdef __LARGE64_FILES -typedef _fpos64_t fpos64_t; -#endif - -#ifndef _OFF_T_DECLARED -typedef __off_t off_t; -#define _OFF_T_DECLARED -#endif - -#ifndef _SSIZE_T_DECLARED -typedef _ssize_t ssize_t; -#define _SSIZE_T_DECLARED -#endif - -#include - -#define __SLBF 0x0001 /* line buffered */ -#define __SNBF 0x0002 /* unbuffered */ -#define __SRD 0x0004 /* OK to read */ -#define __SWR 0x0008 /* OK to write */ - /* RD and WR are never simultaneously asserted */ -#define __SRW 0x0010 /* open for reading & writing */ -#define __SEOF 0x0020 /* found EOF */ -#define __SERR 0x0040 /* found error */ -#define __SMBF 0x0080 /* _buf is from malloc */ -#define __SAPP 0x0100 /* fdopen()ed in append mode - so must write to end */ -#define __SSTR 0x0200 /* this is an sprintf/snprintf string */ -#define __SOPT 0x0400 /* do fseek() optimisation */ -#define __SNPT 0x0800 /* do not do fseek() optimisation */ -#define __SOFF 0x1000 /* set iff _offset is in fact correct */ -#define __SORD 0x2000 /* true => stream orientation (byte/wide) decided */ -#if defined(__CYGWIN__) -# define __SCLE 0x4000 /* convert line endings CR/LF <-> NL */ -#endif -#define __SL64 0x8000 /* is 64-bit offset large file */ - -/* _flags2 flags */ -#define __SNLK 0x0001 /* stdio functions do not lock streams themselves */ -#define __SWID 0x2000 /* true => stream orientation wide, false => byte, only valid if __SORD in _flags is true */ - -/* - * The following three definitions are for ANSI C, which took them - * from System V, which stupidly took internal interface macros and - * made them official arguments to setvbuf(), without renaming them. - * Hence, these ugly _IOxxx names are *supposed* to appear in user code. - * - * Although these happen to match their counterparts above, the - * implementation does not rely on that (so these could be renumbered). - */ -#define _IOFBF 0 /* setvbuf should set fully buffered */ -#define _IOLBF 1 /* setvbuf should set line buffered */ -#define _IONBF 2 /* setvbuf should set unbuffered */ - -#define EOF (-1) - -#ifdef __BUFSIZ__ -#define BUFSIZ __BUFSIZ__ -#else -#define BUFSIZ 1024 -#endif - -#ifdef __FOPEN_MAX__ -#define FOPEN_MAX __FOPEN_MAX__ -#else -#define FOPEN_MAX 20 -#endif - -#ifdef __FILENAME_MAX__ -#define FILENAME_MAX __FILENAME_MAX__ -#else -#define FILENAME_MAX 1024 -#endif - -#ifdef __L_tmpnam__ -#define L_tmpnam __L_tmpnam__ -#else -#define L_tmpnam FILENAME_MAX -#endif - -#if __BSD_VISIBLE || __XSI_VISIBLE -#define P_tmpdir "/tmp" -#endif - -#ifndef SEEK_SET -#define SEEK_SET 0 /* set file offset to offset */ -#endif -#ifndef SEEK_CUR -#define SEEK_CUR 1 /* set file offset to current plus offset */ -#endif -#ifndef SEEK_END -#define SEEK_END 2 /* set file offset to EOF plus offset */ -#endif - -#define TMP_MAX 26 - -#define stdin _REENT_STDIN(_REENT) -#define stdout _REENT_STDOUT(_REENT) -#define stderr _REENT_STDERR(_REENT) - -#define _stdin_r(x) _REENT_STDIN(x) -#define _stdout_r(x) _REENT_STDOUT(x) -#define _stderr_r(x) _REENT_STDERR(x) - -/* - * Functions defined in ANSI C standard. - */ - -#ifndef __VALIST -#ifdef __GNUC__ -#define __VALIST __gnuc_va_list -#else -#define __VALIST char* -#endif -#endif - -#if __POSIX_VISIBLE -char * ctermid (char *); -#endif -#if __GNU_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 600) -char * cuserid (char *); -#endif -FILE * tmpfile (void); -char * tmpnam (char *); -#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 -char * tempnam (const char *, const char *) __malloc_like __result_use_check; -#endif -int fclose (FILE *); -int fflush (FILE *); -FILE * freopen (const char *__restrict, const char *__restrict, FILE *__restrict); -void setbuf (FILE *__restrict, char *__restrict); -int setvbuf (FILE *__restrict, char *__restrict, int, size_t); -int fprintf (FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int fscanf (FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); -int printf (const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 1, 2))); -int scanf (const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 1, 2))); -int sscanf (const char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); -int vfprintf (FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int vprintf (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 1, 0))); -int vsprintf (char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int fgetc (FILE *); -char * fgets (char *__restrict, int, FILE *__restrict); -int fputc (int, FILE *); -int fputs (const char *__restrict, FILE *__restrict); -int getc (FILE *); -int getchar (void); -char * gets (char *); -int putc (int, FILE *); -int putchar (int); -int puts (const char *); -int ungetc (int, FILE *); -size_t fread (void *__restrict, size_t _size, size_t _n, FILE *__restrict); -size_t fwrite (const void *__restrict , size_t _size, size_t _n, FILE *); -#ifdef _LIBC -int fgetpos (FILE *, _fpos_t *); -#else -int fgetpos (FILE *__restrict, fpos_t *__restrict); -#endif -int fseek (FILE *, long, int); -#ifdef _LIBC -int fsetpos (FILE *, const _fpos_t *); -#else -int fsetpos (FILE *, const fpos_t *); -#endif -long ftell ( FILE *); -void rewind (FILE *); -void clearerr (FILE *); -int feof (FILE *); -int ferror (FILE *); -void perror (const char *); -#ifndef _REENT_ONLY -FILE * fopen (const char *__restrict _name, const char *__restrict _type); -int sprintf (char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int remove (const char *); -int rename (const char *, const char *); -#ifdef _LIBC -int _rename (const char *, const char *); -#endif -#endif -#if __LARGEFILE_VISIBLE || __POSIX_VISIBLE >= 200112 -#ifdef _LIBC -int fseeko (FILE *, _off_t, int); -_off_t ftello (FILE *); -#else -int fseeko (FILE *, off_t, int); -off_t ftello (FILE *); -#endif -#endif -#if __GNU_VISIBLE -int fcloseall (void); -#endif -#ifndef _REENT_ONLY -#if __ISO_C_VISIBLE >= 1999 -int snprintf (char *__restrict, size_t, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int vsnprintf (char *__restrict, size_t, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int vfscanf (FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); -int vscanf (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 1, 0))); -int vsscanf (const char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); -#endif -#if __GNU_VISIBLE -int asprintf (char **__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int vasprintf (char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -#endif -#if __MISC_VISIBLE /* Newlib-specific */ -int asiprintf (char **, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -char * asniprintf (char *, size_t *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -char * asnprintf (char *__restrict, size_t *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -#ifndef diprintf -int diprintf (int, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -#endif -int fiprintf (FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int fiscanf (FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); -int iprintf (const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 1, 2))); -int iscanf (const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 1, 2))); -int siprintf (char *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int siscanf (const char *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); -int sniprintf (char *, size_t, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int vasiprintf (char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -char * vasniprintf (char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -char * vasnprintf (char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int vdiprintf (int, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int vfiprintf (FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int vfiscanf (FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); -int viprintf (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 1, 0))); -int viscanf (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 1, 0))); -int vsiprintf (char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int vsiscanf (const char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); -int vsniprintf (char *, size_t, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -#endif /* __MISC_VISIBLE */ -#endif /* !_REENT_ONLY */ - -/* - * Routines in POSIX 1003.1:2001. - */ - -#if __POSIX_VISIBLE -#ifndef _REENT_ONLY -FILE * fdopen (int, const char *); -#endif -int fileno (FILE *); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE >= 199209 -int pclose (FILE *); -FILE * popen (const char *, const char *); -#endif - -#if __BSD_VISIBLE -void setbuffer (FILE *, char *, int); -int setlinebuf (FILE *); -#endif - -#if __MISC_VISIBLE || (__XSI_VISIBLE && __POSIX_VISIBLE < 200112) -int getw (FILE *); -int putw (int, FILE *); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE -int getc_unlocked (FILE *); -int getchar_unlocked (void); -void flockfile (FILE *); -int ftrylockfile (FILE *); -void funlockfile (FILE *); -int putc_unlocked (int, FILE *); -int putchar_unlocked (int); -#endif - -/* - * Routines in POSIX 1003.1:200x. - */ - -#if __POSIX_VISIBLE >= 200809 -# ifndef _REENT_ONLY -# ifndef dprintf -int dprintf (int, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -# endif -FILE * fmemopen (void *__restrict, size_t, const char *__restrict); -/* getdelim - see __getdelim for now */ -/* getline - see __getline for now */ -FILE * open_memstream (char **, size_t *); -int vdprintf (int, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -# endif -#endif -#if __ATFILE_VISIBLE -int renameat (int, const char *, int, const char *); -# ifdef __CYGWIN__ -int renameat2 (int, const char *, int, const char *, unsigned int); -# endif -#endif - -/* - * Recursive versions of the above. - */ - -int _asiprintf_r (struct _reent *, char **, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -char * _asniprintf_r (struct _reent *, char *, size_t *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5))); -char * _asnprintf_r (struct _reent *, char *__restrict, size_t *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5))); -int _asprintf_r (struct _reent *, char **__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _diprintf_r (struct _reent *, int, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _dprintf_r (struct _reent *, int, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _fclose_r (struct _reent *, FILE *); -int _fcloseall_r (struct _reent *); -FILE * _fdopen_r (struct _reent *, int, const char *); -int _fflush_r (struct _reent *, FILE *); -int _fgetc_r (struct _reent *, FILE *); -int _fgetc_unlocked_r (struct _reent *, FILE *); -char * _fgets_r (struct _reent *, char *__restrict, int, FILE *__restrict); -char * _fgets_unlocked_r (struct _reent *, char *__restrict, int, FILE *__restrict); -#ifdef _LIBC -int _fgetpos_r (struct _reent *, FILE *__restrict, _fpos_t *__restrict); -int _fsetpos_r (struct _reent *, FILE *, const _fpos_t *); -#else -int _fgetpos_r (struct _reent *, FILE *, fpos_t *); -int _fsetpos_r (struct _reent *, FILE *, const fpos_t *); -#endif -int _fiprintf_r (struct _reent *, FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _fiscanf_r (struct _reent *, FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4))); -FILE * _fmemopen_r (struct _reent *, void *__restrict, size_t, const char *__restrict); -FILE * _fopen_r (struct _reent *, const char *__restrict, const char *__restrict); -FILE * _freopen_r (struct _reent *, const char *__restrict, const char *__restrict, FILE *__restrict); -int _fprintf_r (struct _reent *, FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _fpurge_r (struct _reent *, FILE *); -int _fputc_r (struct _reent *, int, FILE *); -int _fputc_unlocked_r (struct _reent *, int, FILE *); -int _fputs_r (struct _reent *, const char *__restrict, FILE *__restrict); -int _fputs_unlocked_r (struct _reent *, const char *__restrict, FILE *__restrict); -size_t _fread_r (struct _reent *, void *__restrict, size_t _size, size_t _n, FILE *__restrict); -size_t _fread_unlocked_r (struct _reent *, void *__restrict, size_t _size, size_t _n, FILE *__restrict); -int _fscanf_r (struct _reent *, FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4))); -int _fseek_r (struct _reent *, FILE *, long, int); -int _fseeko_r (struct _reent *, FILE *, _off_t, int); -long _ftell_r (struct _reent *, FILE *); -_off_t _ftello_r (struct _reent *, FILE *); -void _rewind_r (struct _reent *, FILE *); -size_t _fwrite_r (struct _reent *, const void *__restrict, size_t _size, size_t _n, FILE *__restrict); -size_t _fwrite_unlocked_r (struct _reent *, const void *__restrict, size_t _size, size_t _n, FILE *__restrict); -int _getc_r (struct _reent *, FILE *); -int _getc_unlocked_r (struct _reent *, FILE *); -int _getchar_r (struct _reent *); -int _getchar_unlocked_r (struct _reent *); -char * _gets_r (struct _reent *, char *); -int _iprintf_r (struct _reent *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int _iscanf_r (struct _reent *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); -FILE * _open_memstream_r (struct _reent *, char **, size_t *); -void _perror_r (struct _reent *, const char *); -int _printf_r (struct _reent *, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3))); -int _putc_r (struct _reent *, int, FILE *); -int _putc_unlocked_r (struct _reent *, int, FILE *); -int _putchar_unlocked_r (struct _reent *, int); -int _putchar_r (struct _reent *, int); -int _puts_r (struct _reent *, const char *); -int _remove_r (struct _reent *, const char *); -int _rename_r (struct _reent *, - const char *_old, const char *_new); -int _scanf_r (struct _reent *, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); -int _siprintf_r (struct _reent *, char *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _siscanf_r (struct _reent *, const char *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4))); -int _sniprintf_r (struct _reent *, char *, size_t, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5))); -int _snprintf_r (struct _reent *, char *__restrict, size_t, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5))); -int _sprintf_r (struct _reent *, char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4))); -int _sscanf_r (struct _reent *, const char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4))); -char * _tempnam_r (struct _reent *, const char *, const char *); -FILE * _tmpfile_r (struct _reent *); -char * _tmpnam_r (struct _reent *, char *); -int _ungetc_r (struct _reent *, int, FILE *); -int _vasiprintf_r (struct _reent *, char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -char * _vasniprintf_r (struct _reent*, char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0))); -char * _vasnprintf_r (struct _reent*, char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0))); -int _vasprintf_r (struct _reent *, char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vdiprintf_r (struct _reent *, int, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vdprintf_r (struct _reent *, int, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vfiprintf_r (struct _reent *, FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vfiscanf_r (struct _reent *, FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0))); -int _vfprintf_r (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vfscanf_r (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0))); -int _viprintf_r (struct _reent *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int _viscanf_r (struct _reent *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); -int _vprintf_r (struct _reent *, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0))); -int _vscanf_r (struct _reent *, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); -int _vsiprintf_r (struct _reent *, char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vsiscanf_r (struct _reent *, const char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0))); -int _vsniprintf_r (struct _reent *, char *, size_t, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0))); -int _vsnprintf_r (struct _reent *, char *__restrict, size_t, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0))); -int _vsprintf_r (struct _reent *, char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _vsscanf_r (struct _reent *, const char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0))); - -/* Other extensions. */ - -int fpurge (FILE *); -ssize_t __getdelim (char **, size_t *, int, FILE *); -ssize_t __getline (char **, size_t *, FILE *); - -#if __MISC_VISIBLE -void clearerr_unlocked (FILE *); -int feof_unlocked (FILE *); -int ferror_unlocked (FILE *); -int fileno_unlocked (FILE *); -int fflush_unlocked (FILE *); -int fgetc_unlocked (FILE *); -int fputc_unlocked (int, FILE *); -size_t fread_unlocked (void *__restrict, size_t _size, size_t _n, FILE *__restrict); -size_t fwrite_unlocked (const void *__restrict , size_t _size, size_t _n, FILE *); -#endif - -#if __GNU_VISIBLE -char * fgets_unlocked (char *__restrict, int, FILE *__restrict); -int fputs_unlocked (const char *__restrict, FILE *__restrict); -#endif - -#ifdef __LARGE64_FILES -#if !defined(__CYGWIN__) || defined(_LIBC) -FILE * fdopen64 (int, const char *); -FILE * fopen64 (const char *, const char *); -FILE * freopen64 (const char *, const char *, FILE *); -_off64_t ftello64 (FILE *); -_off64_t fseeko64 (FILE *, _off64_t, int); -int fgetpos64 (FILE *, _fpos64_t *); -int fsetpos64 (FILE *, const _fpos64_t *); -FILE * tmpfile64 (void); - -FILE * _fdopen64_r (struct _reent *, int, const char *); -FILE * _fopen64_r (struct _reent *,const char *, const char *); -FILE * _freopen64_r (struct _reent *, const char *, const char *, FILE *); -_off64_t _ftello64_r (struct _reent *, FILE *); -_off64_t _fseeko64_r (struct _reent *, FILE *, _off64_t, int); -int _fgetpos64_r (struct _reent *, FILE *, _fpos64_t *); -int _fsetpos64_r (struct _reent *, FILE *, const _fpos64_t *); -FILE * _tmpfile64_r (struct _reent *); -#endif /* !__CYGWIN__ */ -#endif /* __LARGE64_FILES */ - -/* - * Routines internal to the implementation. - */ - -int __srget_r (struct _reent *, FILE *); -int __swbuf_r (struct _reent *, int, FILE *); - -/* - * Stdio function-access interface. - */ - -#if __BSD_VISIBLE -# ifdef __LARGE64_FILES -FILE *funopen (const void *__cookie, - int (*__readfn)(void *__c, char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(void *__c, const char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - _fpos64_t (*__seekfn)(void *__c, _fpos64_t __off, int __whence), - int (*__closefn)(void *__c)); -FILE *_funopen_r (struct _reent *, const void *__cookie, - int (*__readfn)(void *__c, char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(void *__c, const char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - _fpos64_t (*__seekfn)(void *__c, _fpos64_t __off, int __whence), - int (*__closefn)(void *__c)); -# else -FILE *funopen (const void *__cookie, - int (*__readfn)(void *__cookie, char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(void *__cookie, const char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - fpos_t (*__seekfn)(void *__cookie, fpos_t __off, int __whence), - int (*__closefn)(void *__cookie)); -FILE *_funopen_r (struct _reent *, const void *__cookie, - int (*__readfn)(void *__cookie, char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(void *__cookie, const char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - fpos_t (*__seekfn)(void *__cookie, fpos_t __off, int __whence), - int (*__closefn)(void *__cookie)); -# endif /* !__LARGE64_FILES */ - -# define fropen(__cookie, __fn) funopen(__cookie, __fn, NULL, NULL, NULL) -# define fwopen(__cookie, __fn) funopen(__cookie, NULL, __fn, NULL, NULL) -#endif /* __BSD_VISIBLE */ - -#if __GNU_VISIBLE -typedef ssize_t cookie_read_function_t(void *__cookie, char *__buf, size_t __n); -typedef ssize_t cookie_write_function_t(void *__cookie, const char *__buf, - size_t __n); -# ifdef __LARGE64_FILES -typedef int cookie_seek_function_t(void *__cookie, _off64_t *__off, - int __whence); -# else -typedef int cookie_seek_function_t(void *__cookie, off_t *__off, int __whence); -# endif /* !__LARGE64_FILES */ -typedef int cookie_close_function_t(void *__cookie); -typedef struct -{ - /* These four struct member names are dictated by Linux; hopefully, - they don't conflict with any macros. */ - cookie_read_function_t *read; - cookie_write_function_t *write; - cookie_seek_function_t *seek; - cookie_close_function_t *close; -} cookie_io_functions_t; -FILE *fopencookie (void *__cookie, - const char *__mode, cookie_io_functions_t __functions); -FILE *_fopencookie_r (struct _reent *, void *__cookie, - const char *__mode, cookie_io_functions_t __functions); -#endif /* __GNU_VISIBLE */ - -#ifndef __CUSTOM_FILE_IO__ -/* - * The __sfoo macros are here so that we can - * define function versions in the C library. - */ -#define __sgetc_raw_r(__ptr, __f) (--(__f)->_r < 0 ? __srget_r(__ptr, __f) : (int)(*(__f)->_p++)) - -#ifdef __SCLE -/* For a platform with CR/LF, additional logic is required by - __sgetc_r which would otherwise simply be a macro; therefore we - use an inlined function. The function is only meant to be inlined - in place as used and the function body should never be emitted. - - There are two possible means to this end when compiling with GCC, - one when compiling with a standard C99 compiler, and for other - compilers we're just stuck. At the moment, this issue only - affects the Cygwin target, so we'll most likely be using GCC. */ - -_ELIDABLE_INLINE int __sgetc_r(struct _reent *__ptr, FILE *__p); - -_ELIDABLE_INLINE int __sgetc_r(struct _reent *__ptr, FILE *__p) - { - int __c = __sgetc_raw_r(__ptr, __p); - if ((__p->_flags & __SCLE) && (__c == '\r')) - { - int __c2 = __sgetc_raw_r(__ptr, __p); - if (__c2 == '\n') - __c = __c2; - else - ungetc(__c2, __p); - } - return __c; - } -#else -#define __sgetc_r(__ptr, __p) __sgetc_raw_r(__ptr, __p) -#endif - -#ifdef __GNUC__ -_ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { -#ifdef __SCLE - if ((_p->_flags & __SCLE) && _c == '\n') - __sputc_r (_ptr, '\r', _p); -#endif - if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n')) - return (*_p->_p++ = _c); - else - return (__swbuf_r(_ptr, _c, _p)); -} -#else -/* - * This has been tuned to generate reasonable code on the vax using pcc - */ -#define __sputc_raw_r(__ptr, __c, __p) \ - (--(__p)->_w < 0 ? \ - (__p)->_w >= (__p)->_lbfsize ? \ - (*(__p)->_p = (__c)), *(__p)->_p != '\n' ? \ - (int)*(__p)->_p++ : \ - __swbuf_r(__ptr, '\n', __p) : \ - __swbuf_r(__ptr, (int)(__c), __p) : \ - (*(__p)->_p = (__c), (int)*(__p)->_p++)) -#ifdef __SCLE -#define __sputc_r(__ptr, __c, __p) \ - ((((__p)->_flags & __SCLE) && ((__c) == '\n')) \ - ? __sputc_raw_r(__ptr, '\r', (__p)) : 0 , \ - __sputc_raw_r((__ptr), (__c), (__p))) -#else -#define __sputc_r(__ptr, __c, __p) __sputc_raw_r(__ptr, __c, __p) -#endif -#endif - -#define __sfeof(p) ((int)(((p)->_flags & __SEOF) != 0)) -#define __sferror(p) ((int)(((p)->_flags & __SERR) != 0)) -#define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF))) -#define __sfileno(p) ((p)->_file) - -#ifndef __cplusplus -#ifndef _REENT_SMALL -#define feof(p) __sfeof(p) -#define ferror(p) __sferror(p) -#define clearerr(p) __sclearerr(p) - -#if __MISC_VISIBLE -#define feof_unlocked(p) __sfeof(p) -#define ferror_unlocked(p) __sferror(p) -#define clearerr_unlocked(p) __sclearerr(p) -#endif /* __MISC_VISIBLE */ -#endif /* _REENT_SMALL */ - -#if 0 /* __POSIX_VISIBLE - FIXME: must initialize stdio first, use fn */ -#define fileno(p) __sfileno(p) -#endif - -static __inline int -_getchar_unlocked(void) -{ - struct _reent *_ptr; - - _ptr = _REENT; - return (__sgetc_r(_ptr, _stdin_r(_ptr))); -} - -static __inline int -_putchar_unlocked(int _c) -{ - struct _reent *_ptr; - - _ptr = _REENT; - return (__sputc_r(_ptr, _c, _stdout_r(_ptr))); -} - -#ifdef __SINGLE_THREAD__ -#define getc(_p) __sgetc_r(_REENT, _p) -#define putc(_c, _p) __sputc_r(_REENT, _c, _p) -#define getchar() _getchar_unlocked() -#define putchar(_c) _putchar_unlocked(_c) -#endif /* __SINGLE_THREAD__ */ - -#if __MISC_VISIBLE || __POSIX_VISIBLE -#define getchar_unlocked() _getchar_unlocked() -#define putchar_unlocked(_c) _putchar_unlocked(_c) -#endif -#endif /* __cplusplus */ - -#if __MISC_VISIBLE -/* fast always-buffered version, true iff error */ -#define fast_putc(x,p) (--(p)->_w < 0 ? \ - __swbuf_r(_REENT, (int)(x), p) == EOF : (*(p)->_p = (x), (p)->_p++, 0)) -#endif - -#if __GNU_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 600) -#define L_cuserid 9 /* posix says it goes in stdio.h :( */ -#endif -#if __POSIX_VISIBLE -#define L_ctermid 16 -#endif - -#else /* __CUSTOM_FILE_IO__ */ - -#define getchar() getc(stdin) -#define putchar(x) putc(x, stdout) - -#if __MISC_VISIBLE || __POSIX_VISIBLE -#define getchar_unlocked() getc_unlocked(stdin) -#define putchar_unlocked(x) putc_unlocked(x, stdout) -#endif - -#endif /* !__CUSTOM_FILE_IO__ */ - -_END_STD_C - -#if __SSP_FORTIFY_LEVEL > 0 -#include -#endif - -#endif /* _STDIO_H_ */ diff --git a/lib/include/stdio_ext.h b/lib/include/stdio_ext.h deleted file mode 100644 index 231262d..0000000 --- a/lib/include/stdio_ext.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * stdio_ext.h - * - * Definitions for I/O internal operations, originally from Solaris. - */ - -#ifndef _STDIO_EXT_H_ -#define _STDIO_EXT_H_ - -#ifdef __rtems__ -#error " not supported" -#endif - -#include - -#define FSETLOCKING_QUERY 0 -#define FSETLOCKING_INTERNAL 1 -#define FSETLOCKING_BYCALLER 2 - -_BEGIN_STD_C - -void __fpurge (FILE *); -int __fsetlocking (FILE *, int); - -/* TODO: - - void _flushlbf (void); -*/ - -#ifdef __GNUC__ - -_ELIDABLE_INLINE size_t -__fbufsize (FILE *__fp) { return (size_t) __fp->_bf._size; } - -_ELIDABLE_INLINE int -__freading (FILE *__fp) { return (__fp->_flags & __SRD) != 0; } - -_ELIDABLE_INLINE int -__fwriting (FILE *__fp) { return (__fp->_flags & __SWR) != 0; } - -_ELIDABLE_INLINE int -__freadable (FILE *__fp) { return (__fp->_flags & (__SRD | __SRW)) != 0; } - -_ELIDABLE_INLINE int -__fwritable (FILE *__fp) { return (__fp->_flags & (__SWR | __SRW)) != 0; } - -_ELIDABLE_INLINE int -__flbf (FILE *__fp) { return (__fp->_flags & __SLBF) != 0; } - -_ELIDABLE_INLINE size_t -__fpending (FILE *__fp) { return __fp->_p - __fp->_bf._base; } - -#else - -size_t __fbufsize (FILE *); -int __freading (FILE *); -int __fwriting (FILE *); -int __freadable (FILE *); -int __fwritable (FILE *); -int __flbf (FILE *); -size_t __fpending (FILE *); - -#ifndef __cplusplus - -#define __fbufsize(__fp) ((size_t) (__fp)->_bf._size) -#define __freading(__fp) (((__fp)->_flags & __SRD) != 0) -#define __fwriting(__fp) (((__fp)->_flags & __SWR) != 0) -#define __freadable(__fp) (((__fp)->_flags & (__SRD | __SRW)) != 0) -#define __fwritable(__fp) (((__fp)->_flags & (__SWR | __SRW)) != 0) -#define __flbf(__fp) (((__fp)->_flags & __SLBF) != 0) -#define __fpending(__fp) ((size_t) ((__fp)->_p - (__fp)->_bf._base)) - -#endif /* __cplusplus */ - -#endif /* __GNUC__ */ - -_END_STD_C - -#endif /* _STDIO_EXT_H_ */ diff --git a/lib/include/stdlib.h b/lib/include/stdlib.h deleted file mode 100644 index 15b3494..0000000 --- a/lib/include/stdlib.h +++ /dev/null @@ -1,345 +0,0 @@ -/* - * stdlib.h - * - * Definitions for common types, variables, and functions. - */ - -#ifndef _STDLIB_H_ -#define _STDLIB_H_ - -#include -#include "_ansi.h" - -#define __need_size_t -#define __need_wchar_t -#define __need_NULL -#include - -#include -#include -#include -#ifndef __STRICT_ANSI__ -#include -#endif - -#ifdef __CYGWIN__ -#include -#endif - -#if __GNU_VISIBLE -#include -#endif - -_BEGIN_STD_C - -typedef struct -{ - int quot; /* quotient */ - int rem; /* remainder */ -} div_t; - -typedef struct -{ - long quot; /* quotient */ - long rem; /* remainder */ -} ldiv_t; - -#if __ISO_C_VISIBLE >= 1999 -typedef struct -{ - long long int quot; /* quotient */ - long long int rem; /* remainder */ -} lldiv_t; -#endif - -#ifndef __compar_fn_t_defined -#define __compar_fn_t_defined -typedef int (*__compar_fn_t) (const void *, const void *); -#endif - -#define EXIT_FAILURE 1 -#define EXIT_SUCCESS 0 - -#define RAND_MAX __RAND_MAX - -int __locale_mb_cur_max (void); - -#define MB_CUR_MAX __locale_mb_cur_max() - -void abort (void) _ATTRIBUTE ((__noreturn__)); -int abs (int); -#if __BSD_VISIBLE -__uint32_t arc4random (void); -__uint32_t arc4random_uniform (__uint32_t); -void arc4random_buf (void *, size_t); -#endif -int atexit (void (*__func)(void)); -double atof (const char *__nptr); -#if __MISC_VISIBLE -float atoff (const char *__nptr); -#endif -int atoi (const char *__nptr); -int _atoi_r (struct _reent *, const char *__nptr); -long atol (const char *__nptr); -long _atol_r (struct _reent *, const char *__nptr); -void * bsearch (const void *__key, - const void *__base, - size_t __nmemb, - size_t __size, - __compar_fn_t _compar); -void *calloc(size_t, size_t) __malloc_like __result_use_check - __alloc_size2(1, 2) _NOTHROW; -div_t div (int __numer, int __denom); -void exit (int __status) _ATTRIBUTE ((__noreturn__)); -void free (void *) _NOTHROW; -char * getenv (const char *__string); -char * _getenv_r (struct _reent *, const char *__string); -#if __GNU_VISIBLE -char * secure_getenv (const char *__string); -#endif -char * _findenv (const char *, int *); -char * _findenv_r (struct _reent *, const char *, int *); -#if __POSIX_VISIBLE >= 200809 -extern char *suboptarg; /* getsubopt(3) external variable */ -int getsubopt (char **, char * const *, char **); -#endif -long labs (long); -ldiv_t ldiv (long __numer, long __denom); -void *malloc(size_t) __malloc_like __result_use_check __alloc_size(1) _NOTHROW; -int mblen (const char *, size_t); -int _mblen_r (struct _reent *, const char *, size_t, _mbstate_t *); -int mbtowc (wchar_t *__restrict, const char *__restrict, size_t); -int _mbtowc_r (struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *); -int wctomb (char *, wchar_t); -int _wctomb_r (struct _reent *, char *, wchar_t, _mbstate_t *); -size_t mbstowcs (wchar_t *__restrict, const char *__restrict, size_t); -size_t _mbstowcs_r (struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *); -size_t wcstombs (char *__restrict, const wchar_t *__restrict, size_t); -size_t _wcstombs_r (struct _reent *, char *__restrict, const wchar_t *__restrict, size_t, _mbstate_t *); -#ifndef _REENT_ONLY -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 -char * mkdtemp (char *); -#endif -#if __GNU_VISIBLE -int mkostemp (char *, int); -int mkostemps (char *, int, int); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 4 -int mkstemp (char *); -#endif -#if __MISC_VISIBLE -int mkstemps (char *, int); -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112) -char * mktemp (char *) _ATTRIBUTE ((__deprecated__("the use of `mktemp' is dangerous; use `mkstemp' instead"))); -#endif -#endif /* !_REENT_ONLY */ -char * _mkdtemp_r (struct _reent *, char *); -int _mkostemp_r (struct _reent *, char *, int); -int _mkostemps_r (struct _reent *, char *, int, int); -int _mkstemp_r (struct _reent *, char *); -int _mkstemps_r (struct _reent *, char *, int); -char * _mktemp_r (struct _reent *, char *) _ATTRIBUTE ((__deprecated__("the use of `mktemp' is dangerous; use `mkstemp' instead"))); -void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t _compar); -int rand (void); -void *realloc(void *, size_t) __result_use_check __alloc_size(2) _NOTHROW; -#if __BSD_VISIBLE -void *reallocarray(void *, size_t, size_t) __result_use_check __alloc_size2(2, 3); -void *reallocf(void *, size_t) __result_use_check __alloc_size(2); -#endif -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 -char * realpath (const char *__restrict path, char *__restrict resolved_path); -#endif -#if __BSD_VISIBLE -int rpmatch (const char *response); -#endif -#if __XSI_VISIBLE -void setkey (const char *__key); -#endif -void srand (unsigned __seed); -double strtod (const char *__restrict __n, char **__restrict __end_PTR); -double _strtod_r (struct _reent *,const char *__restrict __n, char **__restrict __end_PTR); -#if __ISO_C_VISIBLE >= 1999 -float strtof (const char *__restrict __n, char **__restrict __end_PTR); -#endif -#if __MISC_VISIBLE -/* the following strtodf interface is deprecated...use strtof instead */ -# ifndef strtodf -# define strtodf strtof -# endif -#endif -long strtol (const char *__restrict __n, char **__restrict __end_PTR, int __base); -long _strtol_r (struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base); -unsigned long strtoul (const char *__restrict __n, char **__restrict __end_PTR, int __base); -unsigned long _strtoul_r (struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base); - -#if __GNU_VISIBLE -double strtod_l (const char *__restrict, char **__restrict, locale_t); -float strtof_l (const char *__restrict, char **__restrict, locale_t); -#ifdef _HAVE_LONG_DOUBLE -extern long double strtold_l (const char *__restrict, char **__restrict, - locale_t); -#endif /* _HAVE_LONG_DOUBLE */ -long strtol_l (const char *__restrict, char **__restrict, int, locale_t); -unsigned long strtoul_l (const char *__restrict, char **__restrict, int, - locale_t __loc); -long long strtoll_l (const char *__restrict, char **__restrict, int, locale_t); -unsigned long long strtoull_l (const char *__restrict, char **__restrict, int, - locale_t __loc); -#endif - -int system (const char *__string); - -#if __SVID_VISIBLE || __XSI_VISIBLE >= 4 -long a64l (const char *__input); -char * l64a (long __input); -char * _l64a_r (struct _reent *,long __input); -#endif -#if __MISC_VISIBLE -int on_exit (void (*__func)(int, void *),void *__arg); -#endif -#if __ISO_C_VISIBLE >= 1999 -void _Exit (int __status) _ATTRIBUTE ((__noreturn__)); -#endif -#if __SVID_VISIBLE || __XSI_VISIBLE -int putenv (char *__string); -#endif -int _putenv_r (struct _reent *, char *__string); -void * _reallocf_r (struct _reent *, void *, size_t); -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 -int setenv (const char *__string, const char *__value, int __overwrite); -#endif -int _setenv_r (struct _reent *, const char *__string, const char *__value, int __overwrite); - -#if __XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112 -char * gcvt (double,int,char *); -char * gcvtf (float,int,char *); -char * fcvt (double,int,int *,int *); -char * fcvtf (float,int,int *,int *); -char * ecvt (double,int,int *,int *); -char * ecvtbuf (double, int, int*, int*, char *); -char * fcvtbuf (double, int, int*, int*, char *); -char * ecvtf (float,int,int *,int *); -#endif -char * __itoa (int, char *, int); -char * __utoa (unsigned, char *, int); -#if __MISC_VISIBLE -char * itoa (int, char *, int); -char * utoa (unsigned, char *, int); -#endif -#if __POSIX_VISIBLE -int rand_r (unsigned *__seed); -#endif - -#if __SVID_VISIBLE || __XSI_VISIBLE -double drand48 (void); -double _drand48_r (struct _reent *); -double erand48 (unsigned short [3]); -double _erand48_r (struct _reent *, unsigned short [3]); -long jrand48 (unsigned short [3]); -long _jrand48_r (struct _reent *, unsigned short [3]); -void lcong48 (unsigned short [7]); -void _lcong48_r (struct _reent *, unsigned short [7]); -long lrand48 (void); -long _lrand48_r (struct _reent *); -long mrand48 (void); -long _mrand48_r (struct _reent *); -long nrand48 (unsigned short [3]); -long _nrand48_r (struct _reent *, unsigned short [3]); -unsigned short * - seed48 (unsigned short [3]); -unsigned short * - _seed48_r (struct _reent *, unsigned short [3]); -void srand48 (long); -void _srand48_r (struct _reent *, long); -#endif /* __SVID_VISIBLE || __XSI_VISIBLE */ -#if __SVID_VISIBLE || __XSI_VISIBLE >= 4 || __BSD_VISIBLE -char * initstate (unsigned, char *, size_t); -long random (void); -char * setstate (char *); -void srandom (unsigned); -#endif -#if __ISO_C_VISIBLE >= 1999 -long long atoll (const char *__nptr); -#endif -long long _atoll_r (struct _reent *, const char *__nptr); -#if __ISO_C_VISIBLE >= 1999 -long long llabs (long long); -lldiv_t lldiv (long long __numer, long long __denom); -long long strtoll (const char *__restrict __n, char **__restrict __end_PTR, int __base); -#endif -long long _strtoll_r (struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base); -#if __ISO_C_VISIBLE >= 1999 -unsigned long long strtoull (const char *__restrict __n, char **__restrict __end_PTR, int __base); -#endif -unsigned long long _strtoull_r (struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base); - -#ifndef __CYGWIN__ -#if __MISC_VISIBLE -void cfree (void *); -#endif -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 -int unsetenv (const char *__string); -#endif -int _unsetenv_r (struct _reent *, const char *__string); -#endif /* !__CYGWIN__ */ - -#if __POSIX_VISIBLE >= 200112 -int posix_memalign (void **, size_t, size_t) __nonnull((1)) - __result_use_check; -#endif - -char * _dtoa_r (struct _reent *, double, int, int, int *, int*, char**); -#ifndef __CYGWIN__ -void * _malloc_r (struct _reent *, size_t) _NOTHROW; -void * _calloc_r (struct _reent *, size_t, size_t) _NOTHROW; -void _free_r (struct _reent *, void *) _NOTHROW; -void * _realloc_r (struct _reent *, void *, size_t) _NOTHROW; -void _mstats_r (struct _reent *, char *); -#endif -int _system_r (struct _reent *, const char *); - -void __eprintf (const char *, const char *, unsigned int, const char *); - -/* There are two common qsort_r variants. If you request - _BSD_SOURCE, you get the BSD version; otherwise you get the GNU - version. We want that #undef qsort_r will still let you - invoke the underlying function, but that requires gcc support. */ -#if __GNU_VISIBLE -void qsort_r (void *__base, size_t __nmemb, size_t __size, int (*_compar)(const void *, const void *, void *), void *__thunk); -#elif __BSD_VISIBLE -# ifdef __GNUC__ -void qsort_r (void *__base, size_t __nmemb, size_t __size, void *__thunk, int (*_compar)(void *, const void *, const void *)) - __asm__ (__ASMNAME ("__bsd_qsort_r")); -# else -void __bsd_qsort_r (void *__base, size_t __nmemb, size_t __size, void *__thunk, int (*_compar)(void *, const void *, const void *)); -# define qsort_r __bsd_qsort_r -# endif -#endif - -/* On platforms where long double equals double. */ -#ifdef _HAVE_LONG_DOUBLE -extern long double _strtold_r (struct _reent *, const char *__restrict, char **__restrict); -#if __ISO_C_VISIBLE >= 1999 -extern long double strtold (const char *__restrict, char **__restrict); -#endif -#endif /* _HAVE_LONG_DOUBLE */ - -/* - * If we're in a mode greater than C99, expose C11 functions. - */ -#if __ISO_C_VISIBLE >= 2011 -void * aligned_alloc(size_t, size_t) __malloc_like __alloc_align(1) - __alloc_size(2) __result_use_check; -int at_quick_exit(void (*)(void)); -_Noreturn void - quick_exit(int); -#endif /* __ISO_C_VISIBLE >= 2011 */ - -_END_STD_C - -#if __SSP_FORTIFY_LEVEL > 0 -#include -#endif - -#endif /* _STDLIB_H_ */ diff --git a/lib/include/string.h b/lib/include/string.h deleted file mode 100644 index 32199c0..0000000 --- a/lib/include/string.h +++ /dev/null @@ -1,183 +0,0 @@ -/* - * string.h - * - * Definitions for memory and string functions. - */ - -#ifndef _STRING_H_ -#define _STRING_H_ - -#include "_ansi.h" -#include -#include -#include - -#define __need_size_t -#define __need_NULL -#include - -#if __POSIX_VISIBLE >= 200809 -#include -#endif - -#if __BSD_VISIBLE -#include -#endif - -_BEGIN_STD_C - -void * memchr (const void *, int, size_t); -int memcmp (const void *, const void *, size_t); -void * memcpy (void *__restrict, const void *__restrict, size_t); -void * memmove (void *, const void *, size_t); -void * memset (void *, int, size_t); -char *strcat (char *__restrict, const char *__restrict); -char *strchr (const char *, int); -int strcmp (const char *, const char *); -int strcoll (const char *, const char *); -char *strcpy (char *__restrict, const char *__restrict); -size_t strcspn (const char *, const char *); -char *strerror (int); -size_t strlen (const char *); -char *strncat (char *__restrict, const char *__restrict, size_t); -int strncmp (const char *, const char *, size_t); -char *strncpy (char *__restrict, const char *__restrict, size_t); -char *strpbrk (const char *, const char *); -char *strrchr (const char *, int); -size_t strspn (const char *, const char *); -char *strstr (const char *, const char *); -#ifndef _REENT_ONLY -char *strtok (char *__restrict, const char *__restrict); -#endif -size_t strxfrm (char *__restrict, const char *__restrict, size_t); - -#if __POSIX_VISIBLE >= 200809 -int strcoll_l (const char *, const char *, locale_t); -char *strerror_l (int, locale_t); -size_t strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE -char *strtok_r (char *__restrict, const char *__restrict, char **__restrict); -#endif -#if __BSD_VISIBLE -int timingsafe_bcmp (const void *, const void *, size_t); -int timingsafe_memcmp (const void *, const void *, size_t); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE -void * memccpy (void *__restrict, const void *__restrict, int, size_t); -#endif -#if __GNU_VISIBLE -void * mempcpy (void *, const void *, size_t); -void * memmem (const void *, size_t, const void *, size_t); -void * memrchr (const void *, int, size_t); -void * rawmemchr (const void *, int); -#endif -#if __POSIX_VISIBLE >= 200809 -char *stpcpy (char *__restrict, const char *__restrict); -char *stpncpy (char *__restrict, const char *__restrict, size_t); -#endif -#if __GNU_VISIBLE -char *strcasestr (const char *, const char *); -char *strchrnul (const char *, int); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4 -char *strdup (const char *) __malloc_like __result_use_check; -#endif -char *_strdup_r (struct _reent *, const char *); -#if __POSIX_VISIBLE >= 200809 -char *strndup (const char *, size_t) __malloc_like __result_use_check; -#endif -char *_strndup_r (struct _reent *, const char *, size_t); - -/* There are two common strerror_r variants. If you request - _GNU_SOURCE, you get the GNU version; otherwise you get the POSIX - version. POSIX requires that #undef strerror_r will still let you - invoke the underlying function, but that requires gcc support. */ -#if __GNU_VISIBLE -char *strerror_r (int, char *, size_t); -#elif __POSIX_VISIBLE >= 200112 -# ifdef __GNUC__ -int strerror_r (int, char *, size_t) -#ifdef __ASMNAME - __asm__ (__ASMNAME ("__xpg_strerror_r")) -#endif - ; -# else -int __xpg_strerror_r (int, char *, size_t); -# define strerror_r __xpg_strerror_r -# endif -#endif - -/* Reentrant version of strerror. */ -char * _strerror_r (struct _reent *, int, int, int *); - -#if __BSD_VISIBLE -size_t strlcat (char *, const char *, size_t); -size_t strlcpy (char *, const char *, size_t); -#endif -#if __POSIX_VISIBLE >= 200809 -size_t strnlen (const char *, size_t); -#endif -#if __BSD_VISIBLE -char *strsep (char **, const char *); -#endif -#if __BSD_VISIBLE -char *strnstr(const char *, const char *, size_t) __pure; -#endif - -#if __MISC_VISIBLE -char *strlwr (char *); -char *strupr (char *); -#endif - -#if __POSIX_VISIBLE >= 200809 -char *strsignal (int __signo); -#endif - -#ifdef __CYGWIN__ -int strtosigno (const char *__name); -#endif - -#if __GNU_VISIBLE -int strverscmp (const char *, const char *); -#endif - -#if __GNU_VISIBLE && defined(__GNUC__) -#define strdupa(__s) \ - (__extension__ ({const char *__sin = (__s); \ - size_t __len = strlen (__sin) + 1; \ - char * __sout = (char *) __builtin_alloca (__len); \ - (char *) memcpy (__sout, __sin, __len);})) -#define strndupa(__s, __n) \ - (__extension__ ({const char *__sin = (__s); \ - size_t __len = strnlen (__sin, (__n)) + 1; \ - char *__sout = (char *) __builtin_alloca (__len); \ - __sout[__len-1] = '\0'; \ - (char *) memcpy (__sout, __sin, __len-1);})) -#endif /* __GNU_VISIBLE && __GNUC__ */ - -/* There are two common basename variants. If you do NOT #include - and you do - - #define _GNU_SOURCE - #include - - you get the GNU version. Otherwise you get the POSIX versionfor which you - should #include i for the function prototype. POSIX requires that - #undef basename will still let you invoke the underlying function. However, - this also implies that the POSIX version is used in this case. That's made - sure here. */ -#if __GNU_VISIBLE && !defined(basename) -# define basename basename -char *__nonnull ((1)) basename (const char *) __asm__(__ASMNAME("__gnu_basename")); -#endif - -#include - -_END_STD_C - -#if __SSP_FORTIFY_LEVEL > 0 -#include -#endif - -#endif /* _STRING_H_ */ diff --git a/lib/include/strings.h b/lib/include/strings.h deleted file mode 100644 index f0f7ee1..0000000 --- a/lib/include/strings.h +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * Copyright (c) 2002 Mike Barcroft - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: head/include/strings.h 272673 2014-10-07 04:54:11Z delphij $ - */ - -#ifndef _STRINGS_H_ -#define _STRINGS_H_ - -#include -#include - -#if __POSIX_VISIBLE >= 200809 -#include -#endif - -#ifndef _SIZE_T_DECLARED -typedef __size_t size_t; -#define _SIZE_T_DECLARED -#endif - -__BEGIN_DECLS -#if __BSD_VISIBLE || __POSIX_VISIBLE <= 200112 -int bcmp(const void *, const void *, size_t) __pure; /* LEGACY */ -void bcopy(const void *, void *, size_t); /* LEGACY */ -void bzero(void *, size_t); /* LEGACY */ -#endif -#if __BSD_VISIBLE -void explicit_bzero(void *, size_t); -#endif -#if __MISC_VISIBLE || __POSIX_VISIBLE < 200809 || __XSI_VISIBLE >= 700 -int ffs(int) __pure2; -#endif -#if __BSD_VISIBLE -int ffsl(long) __pure2; -int ffsll(long long) __pure2; -int fls(int) __pure2; -int flsl(long) __pure2; -int flsll(long long) __pure2; -#endif -#if __BSD_VISIBLE || __POSIX_VISIBLE <= 200112 -char *index(const char *, int) __pure; /* LEGACY */ -char *rindex(const char *, int) __pure; /* LEGACY */ -#endif -int strcasecmp(const char *, const char *) __pure; -int strncasecmp(const char *, const char *, size_t) __pure; - -#if __POSIX_VISIBLE >= 200809 -int strcasecmp_l (const char *, const char *, locale_t); -int strncasecmp_l (const char *, const char *, size_t, locale_t); -#endif -__END_DECLS - -#if __SSP_FORTIFY_LEVEL > 0 -#include -#endif - -#endif /* _STRINGS_H_ */ diff --git a/lib/include/sys/_default_fcntl.h b/lib/include/sys/_default_fcntl.h deleted file mode 100644 index 48914c9..0000000 --- a/lib/include/sys/_default_fcntl.h +++ /dev/null @@ -1,240 +0,0 @@ - -#ifndef _SYS__DEFAULT_FCNTL_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS__DEFAULT_FCNTL_H_ -#include <_ansi.h> -#include -#define _FOPEN (-1) /* from sys/file.h, kernel use only */ -#define _FREAD 0x0001 /* read enabled */ -#define _FWRITE 0x0002 /* write enabled */ -#define _FAPPEND 0x0008 /* append (writes guaranteed at the end) */ -#define _FMARK 0x0010 /* internal; mark during gc() */ -#define _FDEFER 0x0020 /* internal; defer for next gc pass */ -#define _FASYNC 0x0040 /* signal pgrp when data ready */ -#define _FSHLOCK 0x0080 /* BSD flock() shared lock present */ -#define _FEXLOCK 0x0100 /* BSD flock() exclusive lock present */ -#define _FCREAT 0x0200 /* open with file create */ -#define _FTRUNC 0x0400 /* open with truncation */ -#define _FEXCL 0x0800 /* error on open if file exists */ -#define _FNBIO 0x1000 /* non blocking I/O (sys5 style) */ -#define _FSYNC 0x2000 /* do all writes synchronously */ -#define _FNONBLOCK 0x4000 /* non blocking I/O (POSIX style) */ -#define _FNDELAY _FNONBLOCK /* non blocking I/O (4.2 style) */ -#define _FNOCTTY 0x8000 /* don't assign a ctty on this open */ -#if defined (__CYGWIN__) -#define _FBINARY 0x10000 -#define _FTEXT 0x20000 -#endif -#define _FNOINHERIT 0x40000 -#define _FDIRECT 0x80000 -#define _FNOFOLLOW 0x100000 -#define _FDIRECTORY 0x200000 -#define _FEXECSRCH 0x400000 -#if defined (__CYGWIN__) -#define _FTMPFILE 0x800000 -#define _FNOATIME 0x1000000 -#define _FPATH 0x2000000 -#endif - -#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) - -/* - * Flag values for open(2) and fcntl(2) - * The kernel adds 1 to the open modes to turn it into some - * combination of FREAD and FWRITE. - */ -#define O_RDONLY 0 /* +1 == FREAD */ -#define O_WRONLY 1 /* +1 == FWRITE */ -#define O_RDWR 2 /* +1 == FREAD|FWRITE */ -#define O_APPEND _FAPPEND -#define O_CREAT _FCREAT -#define O_TRUNC _FTRUNC -#define O_EXCL _FEXCL -#define O_SYNC _FSYNC -/* O_NDELAY _FNDELAY set in include/fcntl.h */ -/* O_NDELAY _FNBIO set in include/fcntl.h */ -#define O_NONBLOCK _FNONBLOCK -#define O_NOCTTY _FNOCTTY - -/* POSIX-1.2008 specific flags */ -#if __POSIX_VISIBLE >= 200809 -#define O_CLOEXEC _FNOINHERIT -#define O_NOFOLLOW _FNOFOLLOW -#define O_DIRECTORY _FDIRECTORY -#define O_EXEC _FEXECSRCH -#define O_SEARCH _FEXECSRCH -#endif - -#if __BSD_VISIBLE -#define O_DIRECT _FDIRECT -#endif - -#if defined (__CYGWIN__) -#define O_BINARY _FBINARY -#define O_TEXT _FTEXT -#define O_DSYNC _FSYNC -#define O_RSYNC _FSYNC - -/* Linux-specific flags */ -#if __GNU_VISIBLE -#define O_TMPFILE _FTMPFILE -#define O_NOATIME _FNOATIME -#define O_PATH _FPATH -#endif -#endif - -#if __MISC_VISIBLE - -/* - * Flags that work for fcntl(fd, F_SETFL, FXXXX) - */ -#define FAPPEND _FAPPEND -#define FSYNC _FSYNC -#define FASYNC _FASYNC -#define FNBIO _FNBIO -#define FNONBIO _FNONBLOCK /* XXX fix to be NONBLOCK everywhere */ -#define FNDELAY _FNDELAY - -/* - * Flags that are disallowed for fcntl's (FCNTLCANT); - * used for opens, internal state, or locking. - */ -#define FREAD _FREAD -#define FWRITE _FWRITE -#define FMARK _FMARK -#define FDEFER _FDEFER -#define FSHLOCK _FSHLOCK -#define FEXLOCK _FEXLOCK - -/* - * The rest of the flags, used only for opens - */ -#define FOPEN _FOPEN -#define FCREAT _FCREAT -#define FTRUNC _FTRUNC -#define FEXCL _FEXCL -#define FNOCTTY _FNOCTTY - -#endif /* __MISC_VISIBLE */ - -#if __BSD_VISIBLE -#define FNONBLOCK _FNONBLOCK -#endif /* __BSD_VISIBLE */ - -/* XXX close on exec request; must match UF_EXCLOSE in user.h */ -#define FD_CLOEXEC 1 /* posix */ - -/* fcntl(2) requests */ -#define F_DUPFD 0 /* Duplicate fildes */ -#define F_GETFD 1 /* Get fildes flags (close on exec) */ -#define F_SETFD 2 /* Set fildes flags (close on exec) */ -#define F_GETFL 3 /* Get file flags */ -#define F_SETFL 4 /* Set file flags */ -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 -#define F_GETOWN 5 /* Get owner - for ASYNC */ -#define F_SETOWN 6 /* Set owner - for ASYNC */ -#endif /* __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 */ -#define F_GETLK 7 /* Get record-locking information */ -#define F_SETLK 8 /* Set or Clear a record-lock (Non-Blocking) */ -#define F_SETLKW 9 /* Set or Clear a record-lock (Blocking) */ -#if __MISC_VISIBLE -#define F_RGETLK 10 /* Test a remote lock to see if it is blocked */ -#define F_RSETLK 11 /* Set or unlock a remote lock */ -#define F_CNVT 12 /* Convert a fhandle to an open fd */ -#define F_RSETLKW 13 /* Set or Clear remote record-lock(Blocking) */ -#endif /* __MISC_VISIBLE */ -#if __POSIX_VISIBLE >= 200809 -#define F_DUPFD_CLOEXEC 14 /* As F_DUPFD, but set close-on-exec flag */ -#endif - -/* fcntl(2) flags (l_type field of flock structure) */ -#define F_RDLCK 1 /* read lock */ -#define F_WRLCK 2 /* write lock */ -#define F_UNLCK 3 /* remove lock(s) */ -#if __MISC_VISIBLE -#define F_UNLKSYS 4 /* remove remote locks for a given system */ -#endif /* __MISC_VISIBLE */ - -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 -/* Special descriptor value to denote the cwd in calls to openat(2) etc. */ -#define AT_FDCWD -2 - -/* Flag values for faccessat2) et al. */ -#define AT_EACCESS 1 -#define AT_SYMLINK_NOFOLLOW 2 -#define AT_SYMLINK_FOLLOW 4 -#define AT_REMOVEDIR 8 -#if __GNU_VISIBLE -#define AT_EMPTY_PATH 16 -#endif -#endif - -#if __BSD_VISIBLE -/* lock operations for flock(2) */ -#define LOCK_SH 0x01 /* shared file lock */ -#define LOCK_EX 0x02 /* exclusive file lock */ -#define LOCK_NB 0x04 /* don't block when locking */ -#define LOCK_UN 0x08 /* unlock file */ -#endif - -/*#include */ - -#ifndef __CYGWIN__ -/* file segment locking set data type - information passed to system by user */ -struct flock { - short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ - short l_whence; /* flag to choose starting offset */ - long l_start; /* relative offset, in bytes */ - long l_len; /* length, in bytes; 0 means lock to EOF */ - short l_pid; /* returned with F_GETLK */ - short l_xxx; /* reserved for future use */ -}; -#endif /* __CYGWIN__ */ - -#if __MISC_VISIBLE -/* extended file segment locking set data type */ -struct eflock { - short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ - short l_whence; /* flag to choose starting offset */ - long l_start; /* relative offset, in bytes */ - long l_len; /* length, in bytes; 0 means lock to EOF */ - short l_pid; /* returned with F_GETLK */ - short l_xxx; /* reserved for future use */ - long l_rpid; /* Remote process id wanting this lock */ - long l_rsys; /* Remote system id wanting this lock */ -}; -#endif /* __MISC_VISIBLE */ - -#include -#include /* sigh. for the mode bits for open/creat */ - -extern int open (const char *, int, ...); -#if __ATFILE_VISIBLE -extern int openat (int, const char *, int, ...); -#endif -extern int creat (const char *, mode_t); -extern int fcntl (int, int, ...); -#if __BSD_VISIBLE -extern int flock (int, int); -#endif -#if __GNU_VISIBLE -#include -extern int futimesat (int, const char *, const struct timeval [2]); -#endif - -/* Provide _ prototypes for functions provided by some versions - of newlib. */ -#ifdef _LIBC -extern int _open (const char *, int, ...); -extern int _fcntl (int, int, ...); -#ifdef __LARGE64_FILES -extern int _open64 (const char *, int, ...); -#endif -#endif - -#ifdef __cplusplus -} -#endif -#endif /* !_SYS__DEFAULT_FCNTL_H_ */ diff --git a/lib/include/sys/_intsup.h b/lib/include/sys/_intsup.h deleted file mode 100644 index 993121b..0000000 --- a/lib/include/sys/_intsup.h +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright (c) 2004, 2005 by - * Ralf Corsepius, Ulm/Germany. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _SYS__INTSUP_H -#define _SYS__INTSUP_H - -#include - -#if __GNUC_PREREQ (3, 2) -/* gcc > 3.2 implicitly defines the values we are interested */ -#define __STDINT_EXP(x) __##x##__ -#else -#define __STDINT_EXP(x) x -#include -#endif - -/* Determine how intptr_t and intN_t fastN_t and leastN_t are defined by gcc - for this target. This is used to determine the correct printf() constant in - inttypes.h and other constants in stdint.h. - So we end up with - ?(signed|unsigned) char == 0 - ?(signed|unsigned) short == 1 - ?(signed|unsigned) int == 2 - ?(signed|unsigned) short int == 3 - ?(signed|unsigned) long == 4 - ?(signed|unsigned) long int == 6 - ?(signed|unsigned) long long == 8 - ?(signed|unsigned) long long int == 10 - */ -#pragma push_macro("signed") -#pragma push_macro("unsigned") -#pragma push_macro("char") -#pragma push_macro("short") -#pragma push_macro("__int20") -#pragma push_macro("__int20__") -#pragma push_macro("int") -#pragma push_macro("long") -#undef signed -#undef unsigned -#undef char -#undef short -#undef int -#undef __int20 -#undef __int20__ -#undef long -#define signed +0 -#define unsigned +0 -#define char +0 -#define short +1 -#define __int20 +2 -#define __int20__ +2 -#define int +2 -#define long +4 -#if (__INTPTR_TYPE__ == 8 || __INTPTR_TYPE__ == 10) -#define _INTPTR_EQ_LONGLONG -#elif (__INTPTR_TYPE__ == 4 || __INTPTR_TYPE__ == 6) -#define _INTPTR_EQ_LONG -/* Note - the tests for _INTPTR_EQ_INT and _INTPTR_EQ_SHORT are currently - redundant as the values are not used. But one day they may be needed - and so the tests remain. */ -#elif __INTPTR_TYPE__ == 2 -#define _INTPTR_EQ_INT -#elif (__INTPTR_TYPE__ == 1 || __INTPTR_TYPE__ == 3) -#define _INTPTR_EQ_SHORT -#else -#error "Unable to determine type definition of intptr_t" -#endif -#if (__INT32_TYPE__ == 4 || __INT32_TYPE__ == 6) -#define _INT32_EQ_LONG -#elif __INT32_TYPE__ == 2 -/* Nothing to define because int32_t is safe to print as an int. */ -#else -#error "Unable to determine type definition of int32_t" -#endif - -#if (__INT8_TYPE__ == 0) -#define __INT8 "hh" -#elif (__INT8_TYPE__ == 1 || __INT8_TYPE__ == 3) -#define __INT8 "h" -#elif (__INT8_TYPE__ == 2) -#define __INT8 -#elif (__INT8_TYPE__ == 4 || __INT8_TYPE__ == 6) -#define __INT8 "l" -#elif (__INT8_TYPE__ == 8 || __INT8_TYPE__ == 10) -#define __INT8 "ll" -#endif -#if (__INT16_TYPE__ == 1 || __INT16_TYPE__ == 3) -#define __INT16 "h" -#elif (__INT16_TYPE__ == 2) -#define __INT16 -#elif (__INT16_TYPE__ == 4 || __INT16_TYPE__ == 6) -#define __INT16 "l" -#elif (__INT16_TYPE__ == 8 || __INT16_TYPE__ == 10) -#define __INT16 "ll" -#endif -#if (__INT32_TYPE__ == 2) -#define __INT32 -#elif (__INT32_TYPE__ == 4 || __INT32_TYPE__ == 6) -#define __INT32 "l" -#elif (__INT32_TYPE__ == 8 || __INT32_TYPE__ == 10) -#define __INT32 "ll" -#endif -#if (__INT64_TYPE__ == 2) -#define __INT64 -#elif (__INT64_TYPE__ == 4 || __INT64_TYPE__ == 6) -#define __INT64 "l" -#elif (__INT64_TYPE__ == 8 || __INT64_TYPE__ == 10) -#define __INT64 "ll" -#endif -#if (__INT_FAST8_TYPE__ == 0) -#define __FAST8 "hh" -#elif (__INT_FAST8_TYPE__ == 1 || __INT_FAST8_TYPE__ == 3) -#define __FAST8 "h" -#elif (__INT_FAST8_TYPE__ == 2) -#define __FAST8 -#elif (__INT_FAST8_TYPE__ == 4 || __INT_FAST8_TYPE__ == 6) -#define __FAST8 "l" -#elif (__INT_FAST8_TYPE__ == 8 || __INT_FAST8_TYPE__ == 10) -#define __FAST8 "ll" -#endif -#if (__INT_FAST16_TYPE__ == 1 || __INT_FAST16_TYPE__ == 3) -#define __FAST16 "h" -#elif (__INT_FAST16_TYPE__ == 2) -#define __FAST16 -#elif (__INT_FAST16_TYPE__ == 4 || __INT_FAST16_TYPE__ == 6) -#define __FAST16 "l" -#elif (__INT_FAST16_TYPE__ == 8 || __INT_FAST16_TYPE__ == 10) -#define __FAST16 "ll" -#endif -#if (__INT_FAST32_TYPE__ == 2) -#define __FAST32 -#elif (__INT_FAST32_TYPE__ == 4 || __INT_FAST32_TYPE__ == 6) -#define __FAST32 "l" -#elif (__INT_FAST32_TYPE__ == 8 || __INT_FAST32_TYPE__ == 10) -#define __FAST32 "ll" -#endif -#if (__INT_FAST64_TYPE__ == 2) -#define __FAST64 -#elif (__INT_FAST64_TYPE__ == 4 || __INT_FAST64_TYPE__ == 6) -#define __FAST64 "l" -#elif (__INT_FAST64_TYPE__ == 8 || __INT_FAST64_TYPE__ == 10) -#define __FAST64 "ll" -#endif - -#if (__INT_LEAST8_TYPE__ == 0) -#define __LEAST8 "hh" -#elif (__INT_LEAST8_TYPE__ == 1 || __INT_LEAST8_TYPE__ == 3) -#define __LEAST8 "h" -#elif (__INT_LEAST8_TYPE__ == 2) -#define __LEAST8 -#elif (__INT_LEAST8_TYPE__ == 4 || __INT_LEAST8_TYPE__ == 6) -#define __LEAST8 "l" -#elif (__INT_LEAST8_TYPE__ == 8 || __INT_LEAST8_TYPE__ == 10) -#define __LEAST8 "ll" -#endif -#if (__INT_LEAST16_TYPE__ == 1 || __INT_LEAST16_TYPE__ == 3) -#define __LEAST16 "h" -#elif (__INT_LEAST16_TYPE__ == 2) -#define __LEAST16 -#elif (__INT_LEAST16_TYPE__ == 4 || __INT_LEAST16_TYPE__ == 6) -#define __LEAST16 "l" -#elif (__INT_LEAST16_TYPE__ == 8 || __INT_LEAST16_TYPE__ == 10) -#define __LEAST16 "ll" -#endif -#if (__INT_LEAST32_TYPE__ == 2) -#define __LEAST32 -#elif (__INT_LEAST32_TYPE__ == 4 || __INT_LEAST32_TYPE__ == 6) -#define __LEAST32 "l" -#elif (__INT_LEAST32_TYPE__ == 8 || __INT_LEAST32_TYPE__ == 10) -#define __LEAST32 "ll" -#endif -#if (__INT_LEAST64_TYPE__ == 2) -#define __LEAST64 -#elif (__INT_LEAST64_TYPE__ == 4 || __INT_LEAST64_TYPE__ == 6) -#define __LEAST64 "l" -#elif (__INT_LEAST64_TYPE__ == 8 || __INT_LEAST64_TYPE__ == 10) -#define __LEAST64 "ll" -#endif -#undef signed -#undef unsigned -#undef char -#undef short -#undef int -#undef long -#pragma pop_macro("signed") -#pragma pop_macro("unsigned") -#pragma pop_macro("char") -#pragma pop_macro("short") -#pragma pop_macro("__int20") -#pragma pop_macro("__int20__") -#pragma pop_macro("int") -#pragma pop_macro("long") - -#endif /* _SYS__INTSUP_H */ diff --git a/lib/include/sys/_locale.h b/lib/include/sys/_locale.h deleted file mode 100644 index ce6f995..0000000 --- a/lib/include/sys/_locale.h +++ /dev/null @@ -1,12 +0,0 @@ -/* Definition of opaque POSIX-1.2008 type locale_t for userspace. */ - -#ifndef _SYS__LOCALE_H -#define _SYS__LOCALE_H - -#include -#include - -struct __locale_t; -typedef struct __locale_t *locale_t; - -#endif /* _SYS__LOCALE_H */ diff --git a/lib/include/sys/_pthreadtypes.h b/lib/include/sys/_pthreadtypes.h deleted file mode 100644 index 75e9e1c..0000000 --- a/lib/include/sys/_pthreadtypes.h +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2013, 2015. - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - */ - -#ifndef _SYS__PTHREADTYPES_H_ -#define _SYS__PTHREADTYPES_H_ - -#if defined(_POSIX_THREADS) || __POSIX_VISIBLE >= 199506 - -#include - -/* - * 2.5 Primitive System Data Types, P1003.1c/D10, p. 19. - */ - -#if defined(__XMK__) -typedef unsigned int pthread_t; /* identify a thread */ -#else -typedef __uint32_t pthread_t; /* identify a thread */ -#endif - -/* P1003.1c/D10, p. 118-119 */ -#define PTHREAD_SCOPE_PROCESS 0 -#define PTHREAD_SCOPE_SYSTEM 1 - -/* P1003.1c/D10, p. 111 */ -#define PTHREAD_INHERIT_SCHED 1 /* scheduling policy and associated */ - /* attributes are inherited from */ - /* the calling thread. */ -#define PTHREAD_EXPLICIT_SCHED 2 /* set from provided attribute object */ - -/* P1003.1c/D10, p. 141 */ -#define PTHREAD_CREATE_DETACHED 0 -#define PTHREAD_CREATE_JOINABLE 1 - -#if defined(__XMK__) -typedef struct pthread_attr_s { - int contentionscope; - struct sched_param schedparam; - int detachstate; - void *stackaddr; - size_t stacksize; -} pthread_attr_t; - -#define PTHREAD_STACK_MIN 200 - -#else /* !defined(__XMK__) */ -typedef struct { - int is_initialized; - void *stackaddr; - int stacksize; - int contentionscope; - int inheritsched; - int schedpolicy; - struct sched_param schedparam; - - /* P1003.4b/D8, p. 54 adds cputime_clock_allowed attribute. */ -#if defined(_POSIX_THREAD_CPUTIME) - int cputime_clock_allowed; /* see time.h */ -#endif - int detachstate; -} pthread_attr_t; - -#endif /* !defined(__XMK__) */ - -#if defined(_POSIX_THREAD_PROCESS_SHARED) -/* NOTE: P1003.1c/D10, p. 81 defines following values for process_shared. */ - -#define PTHREAD_PROCESS_PRIVATE 0 /* visible within only the creating process */ -#define PTHREAD_PROCESS_SHARED 1 /* visible too all processes with access to */ - /* the memory where the resource is */ - /* located */ -#endif - -#if defined(_POSIX_THREAD_PRIO_PROTECT) -/* Mutexes */ - -/* Values for blocking protocol. */ - -#define PTHREAD_PRIO_NONE 0 -#define PTHREAD_PRIO_INHERIT 1 -#define PTHREAD_PRIO_PROTECT 2 -#endif - -#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) - -/* Values for mutex type */ - -/* The following defines are part of the X/Open System Interface (XSI). */ - -/* - * This type of mutex does not detect deadlock. A thread attempting to - * relock this mutex without first unlocking it shall deadlock. Attempting - * to unlock a mutex locked by a different thread results in undefined - * behavior. Attempting to unlock an unlocked mutex results in undefined - * behavior. - */ -#define PTHREAD_MUTEX_NORMAL 0 - -/* - * A thread attempting to relock this mutex without first unlocking - * it shall succeed in locking the mutex. The relocking deadlock which - * can occur with mutexes of type PTHREAD_MUTEX_NORMAL cannot occur with - * this type of mutex. Multiple locks of this mutex shall require the - * same number of unlocks to release the mutex before another thread can - * acquire the mutex. A thread attempting to unlock a mutex which another - * thread has locked shall return with an error. A thread attempting to - * unlock an unlocked mutex shall return with an error. - */ -#define PTHREAD_MUTEX_RECURSIVE 1 - -/* - * This type of mutex provides error checking. A thread attempting - * to relock this mutex without first unlocking it shall return with an - * error. A thread attempting to unlock a mutex which another thread has - * locked shall return with an error. A thread attempting to unlock an - * unlocked mutex shall return with an error. - */ -#define PTHREAD_MUTEX_ERRORCHECK 2 - -/* - * Attempting to recursively lock a mutex of this type results - * in undefined behavior. Attempting to unlock a mutex of this type - * which was not locked by the calling thread results in undefined - * behavior. Attempting to unlock a mutex of this type which is not locked - * results in undefined behavior. An implementation may map this mutex to - * one of the other mutex types. - */ -#define PTHREAD_MUTEX_DEFAULT 3 - -#endif /* !defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) */ - -#if defined(__XMK__) -typedef unsigned int pthread_mutex_t; /* identify a mutex */ - -typedef struct { - int type; -} pthread_mutexattr_t; - -#else /* !defined(__XMK__) */ -typedef __uint32_t pthread_mutex_t; /* identify a mutex */ - -typedef struct { - int is_initialized; -#if defined(_POSIX_THREAD_PROCESS_SHARED) - int process_shared; /* allow mutex to be shared amongst processes */ -#endif -#if defined(_POSIX_THREAD_PRIO_PROTECT) - int prio_ceiling; - int protocol; -#endif -#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) - int type; -#endif - int recursive; -} pthread_mutexattr_t; -#endif /* !defined(__XMK__) */ - -#define _PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) 0xFFFFFFFF) - -/* Condition Variables */ - -typedef __uint32_t pthread_cond_t; /* identify a condition variable */ - -#define _PTHREAD_COND_INITIALIZER ((pthread_cond_t) 0xFFFFFFFF) - -typedef struct { - int is_initialized; - clock_t clock; /* specifiy clock for timeouts */ -#if defined(_POSIX_THREAD_PROCESS_SHARED) - int process_shared; /* allow this to be shared amongst processes */ -#endif -} pthread_condattr_t; /* a condition attribute object */ - -/* Keys */ - -typedef __uint32_t pthread_key_t; /* thread-specific data keys */ - -typedef struct { - int is_initialized; /* is this structure initialized? */ - int init_executed; /* has the initialization routine been run? */ -} pthread_once_t; /* dynamic package initialization */ - -#define _PTHREAD_ONCE_INIT { 1, 0 } /* is initialized and not run */ -#endif /* defined(_POSIX_THREADS) || __POSIX_VISIBLE >= 199506 */ - -/* POSIX Barrier Types */ - -#if defined(_POSIX_BARRIERS) -typedef __uint32_t pthread_barrier_t; /* POSIX Barrier Object */ -typedef struct { - int is_initialized; /* is this structure initialized? */ -#if defined(_POSIX_THREAD_PROCESS_SHARED) - int process_shared; /* allow this to be shared amongst processes */ -#endif -} pthread_barrierattr_t; -#endif /* defined(_POSIX_BARRIERS) */ - -/* POSIX Spin Lock Types */ - -#if defined(_POSIX_SPIN_LOCKS) -typedef __uint32_t pthread_spinlock_t; /* POSIX Spin Lock Object */ -#endif /* defined(_POSIX_SPIN_LOCKS) */ - -/* POSIX Reader/Writer Lock Types */ - -#if defined(_POSIX_READER_WRITER_LOCKS) -typedef __uint32_t pthread_rwlock_t; /* POSIX RWLock Object */ - -#define _PTHREAD_RWLOCK_INITIALIZER ((pthread_rwlock_t) 0xFFFFFFFF) - -typedef struct { - int is_initialized; /* is this structure initialized? */ -#if defined(_POSIX_THREAD_PROCESS_SHARED) - int process_shared; /* allow this to be shared amongst processes */ -#endif -} pthread_rwlockattr_t; -#endif /* defined(_POSIX_READER_WRITER_LOCKS) */ - -#endif /* ! _SYS__PTHREADTYPES_H_ */ diff --git a/lib/include/sys/_sigset.h b/lib/include/sys/_sigset.h deleted file mode 100644 index a9c0d2d..0000000 --- a/lib/include/sys/_sigset.h +++ /dev/null @@ -1,43 +0,0 @@ -/*- - * Copyright (c) 1982, 1986, 1989, 1991, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)signal.h 8.4 (Berkeley) 5/4/95 - * $FreeBSD$ - */ - -#ifndef _SYS__SIGSET_H_ -#define _SYS__SIGSET_H_ - -typedef unsigned long __sigset_t; - -#endif /* !_SYS__SIGSET_H_ */ diff --git a/lib/include/sys/_stdint.h b/lib/include/sys/_stdint.h deleted file mode 100644 index 21a14d3..0000000 --- a/lib/include/sys/_stdint.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2004, 2005 by - * Ralf Corsepius, Ulm/Germany. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _SYS__STDINT_H -#define _SYS__STDINT_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef ___int8_t_defined -#ifndef _INT8_T_DECLARED -typedef __int8_t int8_t ; -#define _INT8_T_DECLARED -#endif -#ifndef _UINT8_T_DECLARED -typedef __uint8_t uint8_t ; -#define _UINT8_T_DECLARED -#endif -#define __int8_t_defined 1 -#endif /* ___int8_t_defined */ - -#ifdef ___int16_t_defined -#ifndef _INT16_T_DECLARED -typedef __int16_t int16_t ; -#define _INT16_T_DECLARED -#endif -#ifndef _UINT16_T_DECLARED -typedef __uint16_t uint16_t ; -#define _UINT16_T_DECLARED -#endif -#define __int16_t_defined 1 -#endif /* ___int16_t_defined */ - -#ifdef ___int32_t_defined -#ifndef _INT32_T_DECLARED -typedef __int32_t int32_t ; -#define _INT32_T_DECLARED -#endif -#ifndef _UINT32_T_DECLARED -typedef __uint32_t uint32_t ; -#define _UINT32_T_DECLARED -#endif -#define __int32_t_defined 1 -#endif /* ___int32_t_defined */ - -#ifdef ___int64_t_defined -#ifndef _INT64_T_DECLARED -typedef __int64_t int64_t ; -#define _INT64_T_DECLARED -#endif -#ifndef _UINT64_T_DECLARED -typedef __uint64_t uint64_t ; -#define _UINT64_T_DECLARED -#endif -#define __int64_t_defined 1 -#endif /* ___int64_t_defined */ - -#ifndef _INTMAX_T_DECLARED -typedef __intmax_t intmax_t; -#define _INTMAX_T_DECLARED -#endif - -#ifndef _UINTMAX_T_DECLARED -typedef __uintmax_t uintmax_t; -#define _UINTMAX_T_DECLARED -#endif - -#ifndef _INTPTR_T_DECLARED -typedef __intptr_t intptr_t; -#define _INTPTR_T_DECLARED -#endif - -#ifndef _UINTPTR_T_DECLARED -typedef __uintptr_t uintptr_t; -#define _UINTPTR_T_DECLARED -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS__STDINT_H */ diff --git a/lib/include/sys/_timespec.h b/lib/include/sys/_timespec.h deleted file mode 100644 index f810b00..0000000 --- a/lib/include/sys/_timespec.h +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)time.h 8.5 (Berkeley) 5/4/95 - * from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp - * $FreeBSD: head/sys/sys/_timespec.h 326023 2017-11-20 19:43:44Z pfg $ - */ - -#ifndef _SYS__TIMESPEC_H_ -#define _SYS__TIMESPEC_H_ - -#include - -#if !defined(__time_t_defined) && !defined(_TIME_T_DECLARED) -typedef _TIME_T_ time_t; -#define __time_t_defined -#define _TIME_T_DECLARED -#endif - -struct timespec { - time_t tv_sec; /* seconds */ - long tv_nsec; /* and nanoseconds */ -}; - -#endif /* !_SYS__TIMESPEC_H_ */ diff --git a/lib/include/sys/_timeval.h b/lib/include/sys/_timeval.h deleted file mode 100644 index 6b250c0..0000000 --- a/lib/include/sys/_timeval.h +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002 Mike Barcroft - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: head/sys/sys/_timeval.h 326256 2017-11-27 15:01:59Z pfg $ - */ - -#ifndef _SYS__TIMEVAL_H_ -#define _SYS__TIMEVAL_H_ - -#include - -#ifndef _SUSECONDS_T_DECLARED -typedef __suseconds_t suseconds_t; -#define _SUSECONDS_T_DECLARED -#endif - -#if !defined(__time_t_defined) && !defined(_TIME_T_DECLARED) -typedef _TIME_T_ time_t; -#define __time_t_defined -#define _TIME_T_DECLARED -#endif - -/* This define is also used outside of Newlib, e.g. in MinGW-w64 */ -#ifndef _TIMEVAL_DEFINED -#define _TIMEVAL_DEFINED - -/* - * Structure returned by gettimeofday(2) system call, and used in other calls. - */ -struct timeval { - time_t tv_sec; /* seconds */ - suseconds_t tv_usec; /* and microseconds */ -}; -#endif /* _TIMEVAL_DEFINED */ - -#endif /* !_SYS__TIMEVAL_H_ */ diff --git a/lib/include/sys/_types.h b/lib/include/sys/_types.h deleted file mode 100644 index d1112d5..0000000 --- a/lib/include/sys/_types.h +++ /dev/null @@ -1,228 +0,0 @@ -/* ANSI C namespace clean utility typedefs */ - -/* This file defines various typedefs needed by the system calls that support - the C library. Basically, they're just the POSIX versions with an '_' - prepended. Targets shall use to define their own - internal types if desired. - - There are three define patterns used for type definitions. Lets assume - xyz_t is a user type. - - The internal type definition uses __machine_xyz_t_defined. It is defined by - to disable a default definition in . It - must not be used in other files. - - User type definitions are guarded by __xyz_t_defined in glibc and - _XYZ_T_DECLARED in BSD compatible systems. -*/ - -#ifndef _SYS__TYPES_H -#define _SYS__TYPES_H - -#define __need_size_t -#define __need_wint_t -#include -#include -#include -#include - -#ifndef __machine_blkcnt_t_defined -typedef long __blkcnt_t; -#endif - -#ifndef __machine_blksize_t_defined -typedef long __blksize_t; -#endif - -#ifndef __machine_fsblkcnt_t_defined -typedef __uint64_t __fsblkcnt_t; -#endif - -#ifndef __machine_fsfilcnt_t_defined -typedef __uint32_t __fsfilcnt_t; -#endif - -#ifndef __machine_off_t_defined -typedef long _off_t; -#endif - -#if defined(__XMK__) -typedef signed char __pid_t; -#else -typedef int __pid_t; -#endif - -#ifndef __machine_dev_t_defined -typedef short __dev_t; -#endif - -#ifndef __machine_uid_t_defined -typedef unsigned short __uid_t; -#endif -#ifndef __machine_gid_t_defined -typedef unsigned short __gid_t; -#endif - -#ifndef __machine_id_t_defined -typedef __uint32_t __id_t; -#endif - -#ifndef __machine_ino_t_defined -#if (defined(__i386__) && (defined(GO32) || defined(__MSDOS__))) || \ - defined(__sparc__) || defined(__SPU__) -typedef unsigned long __ino_t; -#else -typedef unsigned short __ino_t; -#endif -#endif - -#ifndef __machine_mode_t_defined -#if defined(__i386__) && (defined(GO32) || defined(__MSDOS__)) -typedef int __mode_t; -#else -#if defined(__sparc__) && !defined(__sparc_v9__) -#ifdef __svr4__ -typedef unsigned long __mode_t; -#else -typedef unsigned short __mode_t; -#endif -#else -typedef __uint32_t __mode_t; -#endif -#endif -#endif - -#ifndef __machine_off64_t_defined -__extension__ typedef long long _off64_t; -#endif - -#if defined(__CYGWIN__) && !defined(__LP64__) -typedef _off64_t __off_t; -#else -typedef _off_t __off_t; -#endif - -typedef _off64_t __loff_t; - -#ifndef __machine_key_t_defined -typedef long __key_t; -#endif - -/* - * We need fpos_t for the following, but it doesn't have a leading "_", - * so we use _fpos_t instead. - */ -#ifndef __machine_fpos_t_defined -typedef long _fpos_t; /* XXX must match off_t in */ - /* (and must be `long' for now) */ -#endif - -#ifdef __LARGE64_FILES -#ifndef __machine_fpos64_t_defined -typedef _off64_t _fpos64_t; -#endif -#endif - -/* Defined by GCC provided */ -#undef __size_t - -#ifndef __machine_size_t_defined -#ifdef __SIZE_TYPE__ -typedef __SIZE_TYPE__ __size_t; -#else -#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647 -typedef unsigned int __size_t; -#else -typedef unsigned long __size_t; -#endif -#endif -#endif - -#ifndef __machine_ssize_t_defined -#ifdef __SIZE_TYPE__ -/* If __SIZE_TYPE__ is defined (gcc) we define ssize_t based on size_t. - We simply change "unsigned" to "signed" for this single definition - to make sure ssize_t and size_t only differ by their signedness. */ -#define unsigned signed -typedef __SIZE_TYPE__ _ssize_t; -#undef unsigned -#else -#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647 -typedef int _ssize_t; -#else -typedef long _ssize_t; -#endif -#endif -#endif - -typedef _ssize_t __ssize_t; - -#ifndef __machine_mbstate_t_defined -/* Conversion state information. */ -typedef struct -{ - int __count; - union - { - wint_t __wch; - unsigned char __wchb[4]; - } __value; /* Value so far. */ -} _mbstate_t; -#endif - -#ifndef __machine_iconv_t_defined -/* Iconv descriptor type */ -typedef void *_iconv_t; -#endif - -#ifndef __machine_clock_t_defined -#define _CLOCK_T_ unsigned long /* clock() */ -#endif - -typedef _CLOCK_T_ __clock_t; - -#if defined(_USE_LONG_TIME_T) || __LONG_MAX__ > 0x7fffffffL -#define _TIME_T_ long -#else -#define _TIME_T_ __int_least64_t -#endif -typedef _TIME_T_ __time_t; - -#ifndef __machine_clockid_t_defined -#define _CLOCKID_T_ unsigned long -#endif - -typedef _CLOCKID_T_ __clockid_t; - -#ifndef __machine_daddr_t_defined -typedef long __daddr_t; -#endif - -#define _TIMER_T_ unsigned long -typedef _TIMER_T_ __timer_t; - -#ifndef __machine_sa_family_t_defined -typedef __uint8_t __sa_family_t; -#endif - -#ifndef __machine_socklen_t_defined -typedef __uint32_t __socklen_t; -#endif - -typedef int __nl_item; -typedef unsigned short __nlink_t; -typedef long __suseconds_t; /* microseconds (signed) */ -typedef unsigned long __useconds_t; /* microseconds (unsigned) */ - -/* - * Must be identical to the __GNUCLIKE_BUILTIN_VAALIST definition in - * . The must not be included here to avoid cyclic - * header dependencies. - */ -#if __GNUC_MINOR__ > 95 || __GNUC__ >= 3 -typedef __builtin_va_list __va_list; -#else -typedef char * __va_list; -#endif - -#endif /* _SYS__TYPES_H */ diff --git a/lib/include/sys/_tz_structs.h b/lib/include/sys/_tz_structs.h deleted file mode 100644 index 9610b06..0000000 --- a/lib/include/sys/_tz_structs.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _SYS__TZ_STRUCTS_H_ -#define _SYS__TZ_STRUCTS_H_ - -typedef struct __tzrule_struct -{ - char ch; - int m; /* Month of year if ch=M */ - int n; /* Week of month if ch=M */ - int d; /* Day of week if ch=M, day of year if ch=J or ch=D */ - int s; /* Time of day in seconds */ - time_t change; - long offset; /* Match type of _timezone. */ -} __tzrule_type; - -typedef struct __tzinfo_struct -{ - int __tznorth; - int __tzyear; - __tzrule_type __tzrule[2]; -} __tzinfo_type; - -__tzinfo_type *__gettzinfo (void); - -#endif /* _SYS__TZ_STRUCTS_H_ */ diff --git a/lib/include/sys/cdefs.h b/lib/include/sys/cdefs.h deleted file mode 100644 index 720e700..0000000 --- a/lib/include/sys/cdefs.h +++ /dev/null @@ -1,740 +0,0 @@ -/* libc/sys/linux/sys/cdefs.h - Helper macros for K&R vs. ANSI C compat. */ - -/* Written 2000 by Werner Almesberger */ - -/*- - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Berkeley Software Design, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)cdefs.h 8.8 (Berkeley) 1/9/95 - * $FreeBSD$ - */ - -#ifndef _SYS_CDEFS_H_ -#define _SYS_CDEFS_H_ - -#include -#include -#include - -#define __PMT(args) args -#define __DOTS , ... -#define __THROW - -#ifdef __GNUC__ -# define __ASMNAME(cname) __XSTRING (__USER_LABEL_PREFIX__) cname -#endif - -#define __ptr_t void * -#define __long_double_t long double - -#define __attribute_malloc__ -#define __attribute_pure__ -#define __attribute_format_strfmon__(a,b) -#define __flexarr [0] - -#ifndef __BOUNDED_POINTERS__ -# define __bounded /* nothing */ -# define __unbounded /* nothing */ -# define __ptrvalue /* nothing */ -#endif - -/* - * Testing against Clang-specific extensions. - */ -#ifndef __has_attribute -#define __has_attribute(x) 0 -#endif -#ifndef __has_extension -#define __has_extension __has_feature -#endif -#ifndef __has_feature -#define __has_feature(x) 0 -#endif -#ifndef __has_include -#define __has_include(x) 0 -#endif -#ifndef __has_builtin -#define __has_builtin(x) 0 -#endif - -#if defined(__cplusplus) -#define __BEGIN_DECLS extern "C" { -#define __END_DECLS } -#else -#define __BEGIN_DECLS -#define __END_DECLS -#endif - -/* - * This code has been put in place to help reduce the addition of - * compiler specific defines in FreeBSD code. It helps to aid in - * having a compiler-agnostic source tree. - */ - -#if defined(__GNUC__) - -#if __GNUC__ >= 3 -#define __GNUCLIKE_ASM 3 -#define __GNUCLIKE_MATH_BUILTIN_CONSTANTS -#else -#define __GNUCLIKE_ASM 2 -#endif -#define __GNUCLIKE___TYPEOF 1 -#define __GNUCLIKE___SECTION 1 - -#define __GNUCLIKE_CTOR_SECTION_HANDLING 1 - -#define __GNUCLIKE_BUILTIN_CONSTANT_P 1 - -#if (__GNUC_MINOR__ > 95 || __GNUC__ >= 3) -#define __GNUCLIKE_BUILTIN_VARARGS 1 -#define __GNUCLIKE_BUILTIN_STDARG 1 -#define __GNUCLIKE_BUILTIN_VAALIST 1 -#endif - -#define __GNUC_VA_LIST_COMPATIBILITY 1 - -/* - * Compiler memory barriers, specific to gcc and clang. - */ -#define __compiler_membar() __asm __volatile(" " : : : "memory") - -#define __GNUCLIKE_BUILTIN_NEXT_ARG 1 -#define __GNUCLIKE_MATH_BUILTIN_RELOPS - -#define __GNUCLIKE_BUILTIN_MEMCPY 1 - -/* XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced */ -#define __CC_SUPPORTS_INLINE 1 -#define __CC_SUPPORTS___INLINE 1 -#define __CC_SUPPORTS___INLINE__ 1 - -#define __CC_SUPPORTS___FUNC__ 1 -#define __CC_SUPPORTS_WARNING 1 - -#define __CC_SUPPORTS_VARADIC_XXX 1 /* see varargs.h */ - -#define __CC_SUPPORTS_DYNAMIC_ARRAY_INIT 1 - -#endif /* __GNUC__ */ - -/* - * The __CONCAT macro is used to concatenate parts of symbol names, e.g. - * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. - * The __CONCAT macro is a bit tricky to use if it must work in non-ANSI - * mode -- there must be no spaces between its arguments, and for nested - * __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also - * concatenate double-quoted strings produced by the __STRING macro, but - * this only works with ANSI C. - * - * __XSTRING is like __STRING, but it expands any macros in its argument - * first. It is only available with ANSI C. - */ -#if defined(__STDC__) || defined(__cplusplus) -#define __P(protos) protos /* full-blown ANSI C */ -#define __CONCAT1(x,y) x ## y -#define __CONCAT(x,y) __CONCAT1(x,y) -#define __STRING(x) #x /* stringify without expanding x */ -#define __XSTRING(x) __STRING(x) /* expand x, then stringify */ - -#define __const const /* define reserved names to standard */ -#define __signed signed -#define __volatile volatile -#if defined(__cplusplus) -#define __inline inline /* convert to C++ keyword */ -#else -#if !(defined(__CC_SUPPORTS___INLINE)) -#define __inline /* delete GCC keyword */ -#endif /* ! __CC_SUPPORTS___INLINE */ -#endif /* !__cplusplus */ - -#else /* !(__STDC__ || __cplusplus) */ -#define __P(protos) () /* traditional C preprocessor */ -#define __CONCAT(x,y) x/**/y -#define __STRING(x) "x" - -#if !defined(__CC_SUPPORTS___INLINE) -#define __const /* delete pseudo-ANSI C keywords */ -#define __inline -#define __signed -#define __volatile -/* - * In non-ANSI C environments, new programs will want ANSI-only C keywords - * deleted from the program and old programs will want them left alone. - * When using a compiler other than gcc, programs using the ANSI C keywords - * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. - * When using "gcc -traditional", we assume that this is the intent; if - * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. - */ -#ifndef NO_ANSI_KEYWORDS -#define const /* delete ANSI C keywords */ -#define inline -#define signed -#define volatile -#endif /* !NO_ANSI_KEYWORDS */ -#endif /* !__CC_SUPPORTS___INLINE */ -#endif /* !(__STDC__ || __cplusplus) */ - -/* - * Compiler-dependent macros to help declare dead (non-returning) and - * pure (no side effects) functions, and unused variables. They are - * null except for versions of gcc that are known to support the features - * properly (old versions of gcc-2 supported the dead and pure features - * in a different (wrong) way). If we do not provide an implementation - * for a given compiler, let the compile fail if it is told to use - * a feature that we cannot live without. - */ -#define __weak_symbol __attribute__((__weak__)) -#if !__GNUC_PREREQ__(2, 5) -#define __dead2 -#define __pure2 -#define __unused -#endif -#if __GNUC__ == 2 && __GNUC_MINOR__ >= 5 && __GNUC_MINOR__ < 7 -#define __dead2 __attribute__((__noreturn__)) -#define __pure2 __attribute__((__const__)) -#define __unused -/* XXX Find out what to do for __packed, __aligned and __section */ -#endif -#if __GNUC_PREREQ__(2, 7) -#define __dead2 __attribute__((__noreturn__)) -#define __pure2 __attribute__((__const__)) -#define __unused __attribute__((__unused__)) -#define __used __attribute__((__used__)) -#define __packed __attribute__((__packed__)) -#define __aligned(x) __attribute__((__aligned__(x))) -#define __section(x) __attribute__((__section__(x))) -#endif -#if __GNUC_PREREQ__(4, 3) || __has_attribute(__alloc_size__) -#define __alloc_size(x) __attribute__((__alloc_size__(x))) -#define __alloc_size2(n, x) __attribute__((__alloc_size__(n, x))) -#else -#define __alloc_size(x) -#define __alloc_size2(n, x) -#endif -#if __GNUC_PREREQ__(4, 9) || __has_attribute(__alloc_align__) -#define __alloc_align(x) __attribute__((__alloc_align__(x))) -#else -#define __alloc_align(x) -#endif - -#if !__GNUC_PREREQ__(2, 95) -#define __alignof(x) __offsetof(struct { char __a; x __b; }, __b) -#endif - -/* - * Keywords added in C11. - */ - -#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L - -#if !__has_extension(c_alignas) -#if (defined(__cplusplus) && __cplusplus >= 201103L) || \ - __has_extension(cxx_alignas) -#define _Alignas(x) alignas(x) -#else -/* XXX: Only emulates _Alignas(constant-expression); not _Alignas(type-name). */ -#define _Alignas(x) __aligned(x) -#endif -#endif - -#if defined(__cplusplus) && __cplusplus >= 201103L -#define _Alignof(x) alignof(x) -#else -#define _Alignof(x) __alignof(x) -#endif - -#if !defined(__cplusplus) && !__has_extension(c_atomic) && \ - !__has_extension(cxx_atomic) && !__GNUC_PREREQ__(4, 7) -/* - * No native support for _Atomic(). Place object in structure to prevent - * most forms of direct non-atomic access. - */ -#define _Atomic(T) struct { T volatile __val; } -#endif - -#if defined(__cplusplus) && __cplusplus >= 201103L -#define _Noreturn [[noreturn]] -#else -#define _Noreturn __dead2 -#endif - -#if !__has_extension(c_static_assert) -#if (defined(__cplusplus) && __cplusplus >= 201103L) || \ - __has_extension(cxx_static_assert) -#define _Static_assert(x, y) static_assert(x, y) -#elif __GNUC_PREREQ__(4,6) && !defined(__cplusplus) -/* Nothing, gcc 4.6 and higher has _Static_assert built-in */ -#elif defined(__COUNTER__) -#define _Static_assert(x, y) __Static_assert(x, __COUNTER__) -#define __Static_assert(x, y) ___Static_assert(x, y) -#define ___Static_assert(x, y) typedef char __assert_ ## y[(x) ? 1 : -1] \ - __unused -#else -#define _Static_assert(x, y) struct __hack -#endif -#endif - -#if !__has_extension(c_thread_local) -/* - * XXX: Some compilers (Clang 3.3, GCC 4.7) falsely announce C++11 mode - * without actually supporting the thread_local keyword. Don't check for - * the presence of C++11 when defining _Thread_local. - */ -#if /* (defined(__cplusplus) && __cplusplus >= 201103L) || */ \ - __has_extension(cxx_thread_local) -#define _Thread_local thread_local -#else -#define _Thread_local __thread -#endif -#endif - -#endif /* __STDC_VERSION__ || __STDC_VERSION__ < 201112L */ - -/* - * Emulation of C11 _Generic(). Unlike the previously defined C11 - * keywords, it is not possible to implement this using exactly the same - * syntax. Therefore implement something similar under the name - * __generic(). Unlike _Generic(), this macro can only distinguish - * between a single type, so it requires nested invocations to - * distinguish multiple cases. - */ - -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ - __has_extension(c_generic_selections) -#define __generic(expr, t, yes, no) \ - _Generic(expr, t: yes, default: no) -#elif __GNUC_PREREQ__(3, 1) && !defined(__cplusplus) -#define __generic(expr, t, yes, no) \ - __builtin_choose_expr( \ - __builtin_types_compatible_p(__typeof(expr), t), yes, no) -#endif - -/* - * C99 Static array indices in function parameter declarations. Syntax such as: - * void bar(int myArray[static 10]); - * is allowed in C99 but not in C++. Define __min_size appropriately so - * headers using it can be compiled in either language. Use like this: - * void bar(int myArray[__min_size(10)]); - */ -#if !defined(__cplusplus) && \ - (defined(__clang__) || __GNUC_PREREQ__(4, 6)) && \ - (!defined(__STDC_VERSION__) || (__STDC_VERSION__ >= 199901)) -#define __min_size(x) static (x) -#else -#define __min_size(x) (x) -#endif - -#if __GNUC_PREREQ__(2, 96) -#define __malloc_like __attribute__((__malloc__)) -#define __pure __attribute__((__pure__)) -#else -#define __malloc_like -#define __pure -#endif - -#if __GNUC_PREREQ__(3, 1) -#define __always_inline __inline__ __attribute__((__always_inline__)) -#else -#define __always_inline -#endif - -#if __GNUC_PREREQ__(3, 1) -#define __noinline __attribute__ ((__noinline__)) -#else -#define __noinline -#endif - -#if __GNUC_PREREQ__(3, 3) -#define __nonnull(x) __attribute__((__nonnull__ x)) -#define __nonnull_all __attribute__((__nonnull__)) -#else -#define __nonnull(x) -#define __nonnull_all -#endif - -#if __GNUC_PREREQ__(3, 4) -#define __fastcall __attribute__((__fastcall__)) -#define __result_use_check __attribute__((__warn_unused_result__)) -#else -#define __fastcall -#define __result_use_check -#endif - -#if __GNUC_PREREQ__(4, 1) -#define __returns_twice __attribute__((__returns_twice__)) -#else -#define __returns_twice -#endif - -#if __GNUC_PREREQ__(4, 6) || __has_builtin(__builtin_unreachable) -#define __unreachable() __builtin_unreachable() -#else -#define __unreachable() ((void)0) -#endif - -/* XXX: should use `#if __STDC_VERSION__ < 199901'. */ -#if !__GNUC_PREREQ__(2, 7) -#define __func__ NULL -#endif - -/* - * GCC 2.95 provides `__restrict' as an extension to C90 to support the - * C99-specific `restrict' type qualifier. We happen to use `__restrict' as - * a way to define the `restrict' type qualifier without disturbing older - * software that is unaware of C99 keywords. - */ -#if !(__GNUC__ == 2 && __GNUC_MINOR__ == 95) -#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901 -#define __restrict -#else -#define __restrict restrict -#endif -#endif - -/* - * GNU C version 2.96 adds explicit branch prediction so that - * the CPU back-end can hint the processor and also so that - * code blocks can be reordered such that the predicted path - * sees a more linear flow, thus improving cache behavior, etc. - * - * The following two macros provide us with a way to utilize this - * compiler feature. Use __predict_true() if you expect the expression - * to evaluate to true, and __predict_false() if you expect the - * expression to evaluate to false. - * - * A few notes about usage: - * - * * Generally, __predict_false() error condition checks (unless - * you have some _strong_ reason to do otherwise, in which case - * document it), and/or __predict_true() `no-error' condition - * checks, assuming you want to optimize for the no-error case. - * - * * Other than that, if you don't know the likelihood of a test - * succeeding from empirical or other `hard' evidence, don't - * make predictions. - * - * * These are meant to be used in places that are run `a lot'. - * It is wasteful to make predictions in code that is run - * seldomly (e.g. at subsystem initialization time) as the - * basic block reordering that this affects can often generate - * larger code. - */ -#if __GNUC_PREREQ__(2, 96) -#define __predict_true(exp) __builtin_expect((exp), 1) -#define __predict_false(exp) __builtin_expect((exp), 0) -#else -#define __predict_true(exp) (exp) -#define __predict_false(exp) (exp) -#endif - -#if __GNUC_PREREQ__(4, 0) -#define __null_sentinel __attribute__((__sentinel__)) -#define __exported __attribute__((__visibility__("default"))) -/* Only default visibility is supported on PE/COFF targets. */ -#ifndef __CYGWIN__ -#define __hidden __attribute__((__visibility__("hidden"))) -#else -#define __hidden -#endif -#else -#define __null_sentinel -#define __exported -#define __hidden -#endif - -#define __offsetof(type, field) offsetof(type, field) -#define __rangeof(type, start, end) \ - (__offsetof(type, end) - __offsetof(type, start)) - -/* - * Given the pointer x to the member m of the struct s, return - * a pointer to the containing structure. When using GCC, we first - * assign pointer x to a local variable, to check that its type is - * compatible with member m. - */ -#if __GNUC_PREREQ__(3, 1) -#define __containerof(x, s, m) ({ \ - const volatile __typeof(((s *)0)->m) *__x = (x); \ - __DEQUALIFY(s *, (const volatile char *)__x - __offsetof(s, m));\ -}) -#else -#define __containerof(x, s, m) \ - __DEQUALIFY(s *, (const volatile char *)(x) - __offsetof(s, m)) -#endif - -/* - * Compiler-dependent macros to declare that functions take printf-like - * or scanf-like arguments. They are null except for versions of gcc - * that are known to support the features properly (old versions of gcc-2 - * didn't permit keeping the keywords out of the application namespace). - */ -#if !__GNUC_PREREQ__(2, 7) -#define __printflike(fmtarg, firstvararg) -#define __scanflike(fmtarg, firstvararg) -#define __format_arg(fmtarg) -#define __strfmonlike(fmtarg, firstvararg) -#define __strftimelike(fmtarg, firstvararg) -#else -#define __printflike(fmtarg, firstvararg) \ - __attribute__((__format__ (__printf__, fmtarg, firstvararg))) -#define __scanflike(fmtarg, firstvararg) \ - __attribute__((__format__ (__scanf__, fmtarg, firstvararg))) -#define __format_arg(fmtarg) __attribute__((__format_arg__ (fmtarg))) -#define __strfmonlike(fmtarg, firstvararg) \ - __attribute__((__format__ (__strfmon__, fmtarg, firstvararg))) -#define __strftimelike(fmtarg, firstvararg) \ - __attribute__((__format__ (__strftime__, fmtarg, firstvararg))) -#endif - -/* Compiler-dependent macros that rely on FreeBSD-specific extensions. */ -#if defined(__FreeBSD_cc_version) && __FreeBSD_cc_version >= 300001 && \ - defined(__GNUC__) -#define __printf0like(fmtarg, firstvararg) \ - __attribute__((__format__ (__printf0__, fmtarg, firstvararg))) -#else -#define __printf0like(fmtarg, firstvararg) -#endif - -#if defined(__GNUC__) -#define __strong_reference(sym,aliassym) \ - extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym))) -#ifdef __ELF__ -#ifdef __STDC__ -#define __weak_reference(sym,alias) \ - __asm__(".weak " #alias); \ - __asm__(".equ " #alias ", " #sym) -#define __warn_references(sym,msg) \ - __asm__(".section .gnu.warning." #sym); \ - __asm__(".asciz \"" msg "\""); \ - __asm__(".previous") -#define __sym_compat(sym,impl,verid) \ - __asm__(".symver " #impl ", " #sym "@" #verid) -#define __sym_default(sym,impl,verid) \ - __asm__(".symver " #impl ", " #sym "@@" #verid) -#else -#define __weak_reference(sym,alias) \ - __asm__(".weak alias"); \ - __asm__(".equ alias, sym") -#define __warn_references(sym,msg) \ - __asm__(".section .gnu.warning.sym"); \ - __asm__(".asciz \"msg\""); \ - __asm__(".previous") -#define __sym_compat(sym,impl,verid) \ - __asm__(".symver impl, sym@verid") -#define __sym_default(impl,sym,verid) \ - __asm__(".symver impl, sym@@verid") -#endif /* __STDC__ */ -#else /* !__ELF__ */ -#ifdef __STDC__ -#define __weak_reference(sym,alias) \ - __asm__(".stabs \"_" #alias "\",11,0,0,0"); \ - __asm__(".stabs \"_" #sym "\",1,0,0,0") -#define __warn_references(sym,msg) \ - __asm__(".stabs \"" msg "\",30,0,0,0"); \ - __asm__(".stabs \"_" #sym "\",1,0,0,0") -#else -#define __weak_reference(sym,alias) \ - __asm__(".stabs \"_/**/alias\",11,0,0,0"); \ - __asm__(".stabs \"_/**/sym\",1,0,0,0") -#define __warn_references(sym,msg) \ - __asm__(".stabs msg,30,0,0,0"); \ - __asm__(".stabs \"_/**/sym\",1,0,0,0") -#endif /* __STDC__ */ -#endif /* __ELF__ */ -#endif /* __GNUC__ */ - -#ifndef __FBSDID -#define __FBSDID(s) struct __hack -#endif - -#ifndef __RCSID -#define __RCSID(s) struct __hack -#endif - -#ifndef __RCSID_SOURCE -#define __RCSID_SOURCE(s) struct __hack -#endif - -#ifndef __SCCSID -#define __SCCSID(s) struct __hack -#endif - -#ifndef __COPYRIGHT -#define __COPYRIGHT(s) struct __hack -#endif - -#ifndef __DECONST -#define __DECONST(type, var) ((type)(__uintptr_t)(const void *)(var)) -#endif - -#ifndef __DEVOLATILE -#define __DEVOLATILE(type, var) ((type)(__uintptr_t)(volatile void *)(var)) -#endif - -#ifndef __DEQUALIFY -#define __DEQUALIFY(type, var) ((type)(__uintptr_t)(const volatile void *)(var)) -#endif - -/* - * Nullability qualifiers: currently only supported by Clang. - */ -#if !(defined(__clang__) && __has_feature(nullability)) -#define _Nonnull -#define _Nullable -#define _Null_unspecified -#define __NULLABILITY_PRAGMA_PUSH -#define __NULLABILITY_PRAGMA_POP -#else -#define __NULLABILITY_PRAGMA_PUSH _Pragma("clang diagnostic push") \ - _Pragma("clang diagnostic ignored \"-Wnullability-completeness\"") -#define __NULLABILITY_PRAGMA_POP _Pragma("clang diagnostic pop") -#endif - -/* - * Type Safety Checking - * - * Clang provides additional attributes to enable checking type safety - * properties that cannot be enforced by the C type system. - */ - -#if __has_attribute(__argument_with_type_tag__) && \ - __has_attribute(__type_tag_for_datatype__) -#define __arg_type_tag(arg_kind, arg_idx, type_tag_idx) \ - __attribute__((__argument_with_type_tag__(arg_kind, arg_idx, type_tag_idx))) -#define __datatype_type_tag(kind, type) \ - __attribute__((__type_tag_for_datatype__(kind, type))) -#else -#define __arg_type_tag(arg_kind, arg_idx, type_tag_idx) -#define __datatype_type_tag(kind, type) -#endif - -/* - * Lock annotations. - * - * Clang provides support for doing basic thread-safety tests at - * compile-time, by marking which locks will/should be held when - * entering/leaving a functions. - * - * Furthermore, it is also possible to annotate variables and structure - * members to enforce that they are only accessed when certain locks are - * held. - */ - -#if __has_extension(c_thread_safety_attributes) -#define __lock_annotate(x) __attribute__((x)) -#else -#define __lock_annotate(x) -#endif - -/* Structure implements a lock. */ -/* FIXME: Use __lockable__, etc. to avoid colliding with user namespace macros, - * once clang is fixed: https://bugs.llvm.org/show_bug.cgi?id=34319 */ -#define __lockable __lock_annotate(lockable) - -/* Function acquires an exclusive or shared lock. */ -#define __locks_exclusive(...) \ - __lock_annotate(exclusive_lock_function(__VA_ARGS__)) -#define __locks_shared(...) \ - __lock_annotate(shared_lock_function(__VA_ARGS__)) - -/* Function attempts to acquire an exclusive or shared lock. */ -#define __trylocks_exclusive(...) \ - __lock_annotate(exclusive_trylock_function(__VA_ARGS__)) -#define __trylocks_shared(...) \ - __lock_annotate(shared_trylock_function(__VA_ARGS__)) - -/* Function releases a lock. */ -#define __unlocks(...) __lock_annotate(unlock_function(__VA_ARGS__)) - -/* Function asserts that an exclusive or shared lock is held. */ -#define __asserts_exclusive(...) \ - __lock_annotate(assert_exclusive_lock(__VA_ARGS__)) -#define __asserts_shared(...) \ - __lock_annotate(assert_shared_lock(__VA_ARGS__)) - -/* Function requires that an exclusive or shared lock is or is not held. */ -#define __requires_exclusive(...) \ - __lock_annotate(exclusive_locks_required(__VA_ARGS__)) -#define __requires_shared(...) \ - __lock_annotate(shared_locks_required(__VA_ARGS__)) -#define __requires_unlocked(...) \ - __lock_annotate(locks_excluded(__VA_ARGS__)) - -/* Function should not be analyzed. */ -#define __no_lock_analysis __lock_annotate(no_thread_safety_analysis) - -/* - * Function or variable should not be sanitized, e.g., by AddressSanitizer. - * GCC has the nosanitize attribute, but as a function attribute only, and - * warns on use as a variable attribute. - */ -#if __has_attribute(no_sanitize) && defined(__clang__) -#ifdef _KERNEL -#define __nosanitizeaddress __attribute__((no_sanitize("kernel-address"))) -#define __nosanitizememory __attribute__((no_sanitize("kernel-memory"))) -#else -#define __nosanitizeaddress __attribute__((no_sanitize("address"))) -#define __nosanitizememory __attribute__((no_sanitize("memory"))) -#endif -#define __nosanitizethread __attribute__((no_sanitize("thread"))) -#else -#define __nosanitizeaddress -#define __nosanitizememory -#define __nosanitizethread -#endif - -/* Guard variables and structure members by lock. */ -#define __guarded_by(x) __lock_annotate(guarded_by(x)) -#define __pt_guarded_by(x) __lock_annotate(pt_guarded_by(x)) - -/* Alignment builtins for better type checking and improved code generation. */ -/* Provide fallback versions for other compilers (GCC/Clang < 10): */ -#if !__has_builtin(__builtin_is_aligned) -#define __builtin_is_aligned(x, align) \ - (((__uintptr_t)x & ((align) - 1)) == 0) -#endif -#if !__has_builtin(__builtin_align_up) -#define __builtin_align_up(x, align) \ - ((__typeof__(x))(((__uintptr_t)(x)+((align)-1))&(~((align)-1)))) -#endif -#if !__has_builtin(__builtin_align_down) -#define __builtin_align_down(x, align) \ - ((__typeof__(x))((x)&(~((align)-1)))) -#endif - -#define __align_up(x, y) __builtin_align_up(x, y) -#define __align_down(x, y) __builtin_align_down(x, y) -#define __is_aligned(x, y) __builtin_is_aligned(x, y) - -#endif /* !_SYS_CDEFS_H_ */ diff --git a/lib/include/sys/config.h b/lib/include/sys/config.h deleted file mode 100644 index 5dcc77a..0000000 --- a/lib/include/sys/config.h +++ /dev/null @@ -1,314 +0,0 @@ -#ifndef __SYS_CONFIG_H__ -#define __SYS_CONFIG_H__ - -#include /* floating point macros */ -#include /* POSIX defs */ - -#ifdef __aarch64__ -#define MALLOC_ALIGNMENT 16 -#endif - -#ifdef __AMDGCN__ -#define __DYNAMIC_REENT__ -#endif - -/* exceptions first */ -#if defined(__H8500__) || defined(__W65__) -#define __SMALL_BITFIELDS -/* ??? This conditional is true for the h8500 and the w65, defining H8300 - in those cases probably isn't the right thing to do. */ -#define H8300 1 -#endif - -/* 16 bit integer machines */ -#if defined(__Z8001__) || defined(__Z8002__) || defined(__H8500__) || defined(__W65__) || defined (__mn10200__) || defined (__AVR__) || defined (__MSP430__) - -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX 32767 -#define UINT_MAX 65535 -#endif - -#if defined (__H8300__) || defined (__H8300H__) || defined(__H8300S__) || defined (__H8300SX__) -#define __SMALL_BITFIELDS -#define H8300 1 -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#endif - -#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__)) -#ifndef __INT32__ -#define __SMALL_BITFIELDS -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX 32767 -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#else /* INT32 */ -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX 2147483647 -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#endif /* INT32 */ - -#endif /* CR16C */ - -#if defined (__xc16x__) || defined (__xc16xL__) || defined (__xc16xS__) -#define __SMALL_BITFIELDS -#endif - -#ifdef __W65__ -#define __SMALL_BITFIELDS -#endif - -#if defined(__D10V__) -#define __SMALL_BITFIELDS -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#define _POINTER_INT short -#endif - -#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__) -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#define _POINTER_INT short -#endif - -#if defined(__m68k__) || defined(__mc68000__) || defined(__riscv) -#define _READ_WRITE_RETURN_TYPE _ssize_t -#endif - -#ifdef ___AM29K__ -#define _FLOAT_RET double -#endif - -#ifdef __i386__ -#ifndef __unix__ -/* in other words, go32 */ -#define _FLOAT_RET double -#endif -#if defined(__linux__) || defined(__RDOS__) -/* we want the reentrancy structure to be returned by a function */ -#define __DYNAMIC_REENT__ -#define HAVE_GETDATE -#define _READ_WRITE_RETURN_TYPE _ssize_t -#define __LARGE64_FILES 1 -/* we use some glibc header files so turn on glibc large file feature */ -#define _LARGEFILE64_SOURCE 1 -#endif -#endif - -#ifdef __mn10200__ -#define __SMALL_BITFIELDS -#endif - -#ifdef __AVR__ -#define __SMALL_BITFIELDS -#define _POINTER_INT short -#endif - -#if defined(__v850) && !defined(__rtems__) -#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__)) -#endif - -/* For the PowerPC eabi, force the _impure_ptr to be in .sdata */ -#if defined(__PPC__) -#if defined(_CALL_SYSV) -#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata"))) -#endif -#ifdef __SPE__ -#define _LONG_DOUBLE double -#endif -#endif - -/* Configure small REENT structure for Xilinx MicroBlaze platforms */ -#if defined (__MICROBLAZE__) && !defined(__rtems__) -#ifndef _REENT_SMALL -#define _REENT_SMALL -#endif -/* Xilinx XMK uses Unix98 mutex */ -#ifdef __XMK__ -#define _UNIX98_THREAD_MUTEX_ATTRIBUTES -#endif -#endif - -#if defined(__mips__) && !defined(__rtems__) -#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata"))) -#endif - -#ifdef __xstormy16__ -#define __SMALL_BITFIELDS -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#define MALLOC_ALIGNMENT 8 -#define _POINTER_INT short -#define __BUFSIZ__ 16 -#define _REENT_SMALL -#endif - -#if defined __MSP430__ -#ifndef _REENT_SMALL -#define _REENT_SMALL -#endif - -#define __BUFSIZ__ 256 -#define __SMALL_BITFIELDS - -#ifdef __MSP430X_LARGE__ -#define _POINTER_INT __int20 -#else -#define _POINTER_INT int -#endif -#endif - -#ifdef __m32c__ -#define __SMALL_BITFIELDS -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#define MALLOC_ALIGNMENT 8 -#if defined(__r8c_cpu__) || defined(__m16c_cpu__) -#define _POINTER_INT short -#else -#define _POINTER_INT long -#endif -#define __BUFSIZ__ 16 -#define _REENT_SMALL -#endif /* __m32c__ */ - -#ifdef __SPU__ -#define MALLOC_ALIGNMENT 16 -#define __CUSTOM_FILE_IO__ -#endif - -#if defined(__or1k__) || defined(__or1knd__) -#define __DYNAMIC_REENT__ -#endif - -/* This block should be kept in sync with GCC's limits.h. The point - of having these definitions here is to not include limits.h, which - would pollute the user namespace, while still using types of the - the correct widths when deciding how to define __int32_t and - __int64_t. */ -#ifndef __INT_MAX__ -# ifdef INT_MAX -# define __INT_MAX__ INT_MAX -# else -# define __INT_MAX__ 2147483647 -# endif -#endif - -#ifndef __LONG_MAX__ -# ifdef LONG_MAX -# define __LONG_MAX__ LONG_MAX -# else -# if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) \ - || defined (__sparcv9) -# define __LONG_MAX__ 9223372036854775807L -# else -# define __LONG_MAX__ 2147483647L -# endif /* __alpha__ || sparc64 */ -# endif -#endif -/* End of block that should be kept in sync with GCC's limits.h. */ - -#ifndef _POINTER_INT -#define _POINTER_INT long -#endif - -#ifdef __frv__ -#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata"))) -#endif -#undef __RAND_MAX -#if __INT_MAX__ == 32767 -#define __RAND_MAX 32767 -#else -#define __RAND_MAX 0x7fffffff -#endif - -#if defined(__CYGWIN__) -#include -#endif - -#if defined(__rtems__) -#define __FILENAME_MAX__ 255 -#define _READ_WRITE_RETURN_TYPE _ssize_t -#define __DYNAMIC_REENT__ -#endif - -#ifndef __EXPORT -#define __EXPORT -#endif - -#ifndef __IMPORT -#define __IMPORT -#endif - -/* Define return type of read/write routines. In POSIX, the return type - for read()/write() is "ssize_t" but legacy newlib code has been using - "int" for some time. If not specified, "int" is defaulted. */ -#ifndef _READ_WRITE_RETURN_TYPE -#define _READ_WRITE_RETURN_TYPE int -#endif -/* Define `count' parameter of read/write routines. In POSIX, the `count' - parameter is "size_t" but legacy newlib code has been using "int" for some - time. If not specified, "int" is defaulted. */ -#ifndef _READ_WRITE_BUFSIZE_TYPE -#define _READ_WRITE_BUFSIZE_TYPE int -#endif - -#ifndef __WCHAR_MAX__ -#if __INT_MAX__ == 32767 || defined (_WIN32) -#define __WCHAR_MAX__ 0xffffu -#endif -#endif - -/* See if small reent asked for at configuration time and - is not chosen by the platform by default. */ -#ifdef _WANT_REENT_SMALL -#ifndef _REENT_SMALL -#define _REENT_SMALL -#endif -#endif - -#ifdef _WANT_USE_LONG_TIME_T -#ifndef _USE_LONG_TIME_T -#define _USE_LONG_TIME_T -#endif -#endif - -#ifdef _WANT_USE_GDTOA -#ifndef _USE_GDTOA -#define _USE_GDTOA -#endif -#endif - -#ifdef _WANT_REENT_BACKWARD_BINARY_COMPAT -#ifndef _REENT_BACKWARD_BINARY_COMPAT -#define _REENT_BACKWARD_BINARY_COMPAT -#endif -#endif - -#ifdef _WANT_REENT_THREAD_LOCAL -#ifndef _REENT_THREAD_LOCAL -#define _REENT_THREAD_LOCAL -#endif -#endif - -/* If _MB_EXTENDED_CHARSETS_ALL is set, we want all of the extended - charsets. The extended charsets add a few functions and a couple - of tables of a few K each. */ -#ifdef _MB_EXTENDED_CHARSETS_ALL -#define _MB_EXTENDED_CHARSETS_ISO 1 -#define _MB_EXTENDED_CHARSETS_WINDOWS 1 -#endif - -#endif /* __SYS_CONFIG_H__ */ diff --git a/lib/include/sys/custom_file.h b/lib/include/sys/custom_file.h deleted file mode 100644 index 96314fb..0000000 --- a/lib/include/sys/custom_file.h +++ /dev/null @@ -1,2 +0,0 @@ -#error System-specific custom_file.h is missing. - diff --git a/lib/include/sys/dir.h b/lib/include/sys/dir.h deleted file mode 100644 index 220150d..0000000 --- a/lib/include/sys/dir.h +++ /dev/null @@ -1,10 +0,0 @@ -/* BSD predecessor of POSIX.1 and struct dirent */ - -#ifndef _SYS_DIR_H_ -#define _SYS_DIR_H_ - -#include - -#define direct dirent - -#endif /*_SYS_DIR_H_*/ diff --git a/lib/include/sys/dirent.h b/lib/include/sys/dirent.h deleted file mode 100644 index a3fb5c0..0000000 --- a/lib/include/sys/dirent.h +++ /dev/null @@ -1,13 +0,0 @@ -/* includes , which is this file. On a - system which supports , this file is overridden by - dirent.h in the libc/sys/.../sys directory. On a system which does - not support , we will get this file which uses #error to force - an error. */ - -#ifdef __cplusplus -extern "C" { -#endif -#error " not supported" -#ifdef __cplusplus -} -#endif diff --git a/lib/include/sys/endian.h b/lib/include/sys/endian.h deleted file mode 100644 index 3685322..0000000 --- a/lib/include/sys/endian.h +++ /dev/null @@ -1,207 +0,0 @@ -/*- - * Copyright (c) 2002 Thomas Moestl - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: head/sys/sys/endian.h 208331 2010-05-20 06:16:13Z phk $ - */ - -#ifndef _SYS_ENDIAN_H_ -#define _SYS_ENDIAN_H_ - -#include -#include -#include - -#ifndef _UINT8_T_DECLARED -typedef __uint8_t uint8_t; -#define _UINT8_T_DECLARED -#endif - -#ifndef _UINT16_T_DECLARED -typedef __uint16_t uint16_t; -#define _UINT16_T_DECLARED -#endif - -#ifndef _UINT32_T_DECLARED -typedef __uint32_t uint32_t; -#define _UINT32_T_DECLARED -#endif - -#ifndef _UINT64_T_DECLARED -typedef __uint64_t uint64_t; -#define _UINT64_T_DECLARED -#endif - -/* - * General byte order swapping functions. - */ -#define bswap16(x) __bswap16(x) -#define bswap32(x) __bswap32(x) -#define bswap64(x) __bswap64(x) - -/* - * Host to big endian, host to little endian, big endian to host, and little - * endian to host byte order functions as detailed in byteorder(9). - */ -#if _BYTE_ORDER == _LITTLE_ENDIAN -#define htobe16(x) bswap16((x)) -#define htobe32(x) bswap32((x)) -#define htobe64(x) bswap64((x)) -#define htole16(x) ((uint16_t)(x)) -#define htole32(x) ((uint32_t)(x)) -#define htole64(x) ((uint64_t)(x)) - -#define be16toh(x) bswap16((x)) -#define be32toh(x) bswap32((x)) -#define be64toh(x) bswap64((x)) -#define le16toh(x) ((uint16_t)(x)) -#define le32toh(x) ((uint32_t)(x)) -#define le64toh(x) ((uint64_t)(x)) -#else /* _BYTE_ORDER != _LITTLE_ENDIAN */ -#define htobe16(x) ((uint16_t)(x)) -#define htobe32(x) ((uint32_t)(x)) -#define htobe64(x) ((uint64_t)(x)) -#define htole16(x) bswap16((x)) -#define htole32(x) bswap32((x)) -#define htole64(x) bswap64((x)) - -#define be16toh(x) ((uint16_t)(x)) -#define be32toh(x) ((uint32_t)(x)) -#define be64toh(x) ((uint64_t)(x)) -#define le16toh(x) bswap16((x)) -#define le32toh(x) bswap32((x)) -#define le64toh(x) bswap64((x)) -#endif /* _BYTE_ORDER == _LITTLE_ENDIAN */ - -/* Alignment-agnostic encode/decode bytestream to/from little/big endian. */ - -static __inline uint16_t -be16dec(const void *pp) -{ - uint8_t const *p = (uint8_t const *)pp; - - return (((unsigned)p[0] << 8) | p[1]); -} - -static __inline uint32_t -be32dec(const void *pp) -{ - uint8_t const *p = (uint8_t const *)pp; - - return (((uint32_t)p[0] << 24) | ((uint32_t)p[1] << 16) | - ((uint32_t)p[2] << 8) | p[3]); -} - -static __inline uint64_t -be64dec(const void *pp) -{ - uint8_t const *p = (uint8_t const *)pp; - - return (((uint64_t)be32dec(p) << 32) | be32dec(p + 4)); -} - -static __inline uint16_t -le16dec(const void *pp) -{ - uint8_t const *p = (uint8_t const *)pp; - - return (((unsigned)p[1] << 8) | p[0]); -} - -static __inline uint32_t -le32dec(const void *pp) -{ - uint8_t const *p = (uint8_t const *)pp; - - return (((uint32_t)p[3] << 24) | ((uint32_t)p[2] << 16) | - ((uint32_t)p[1] << 8) | p[0]); -} - -static __inline uint64_t -le64dec(const void *pp) -{ - uint8_t const *p = (uint8_t const *)pp; - - return (((uint64_t)le32dec(p + 4) << 32) | le32dec(p)); -} - -static __inline void -be16enc(void *pp, uint16_t u) -{ - uint8_t *p = (uint8_t *)pp; - - p[0] = (u >> 8) & 0xff; - p[1] = u & 0xff; -} - -static __inline void -be32enc(void *pp, uint32_t u) -{ - uint8_t *p = (uint8_t *)pp; - - p[0] = (u >> 24) & 0xff; - p[1] = (u >> 16) & 0xff; - p[2] = (u >> 8) & 0xff; - p[3] = u & 0xff; -} - -static __inline void -be64enc(void *pp, uint64_t u) -{ - uint8_t *p = (uint8_t *)pp; - - be32enc(p, (uint32_t)(u >> 32)); - be32enc(p + 4, (uint32_t)(u & 0xffffffffU)); -} - -static __inline void -le16enc(void *pp, uint16_t u) -{ - uint8_t *p = (uint8_t *)pp; - - p[0] = u & 0xff; - p[1] = (u >> 8) & 0xff; -} - -static __inline void -le32enc(void *pp, uint32_t u) -{ - uint8_t *p = (uint8_t *)pp; - - p[0] = u & 0xff; - p[1] = (u >> 8) & 0xff; - p[2] = (u >> 16) & 0xff; - p[3] = (u >> 24) & 0xff; -} - -static __inline void -le64enc(void *pp, uint64_t u) -{ - uint8_t *p = (uint8_t *)pp; - - le32enc(p, (uint32_t)(u & 0xffffffffU)); - le32enc(p + 4, (uint32_t)(u >> 32)); -} - -#endif /* _SYS_ENDIAN_H_ */ diff --git a/lib/include/sys/errno.h b/lib/include/sys/errno.h deleted file mode 100644 index f150971..0000000 --- a/lib/include/sys/errno.h +++ /dev/null @@ -1,198 +0,0 @@ -/* errno is not a global variable, because that would make using it - non-reentrant. Instead, its address is returned by the function - __errno. */ - -#ifndef _SYS_ERRNO_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS_ERRNO_H_ - -#include - -#ifdef _REENT_THREAD_LOCAL -#define errno (_tls_errno) -#else /* _REENT_THREAD_LOCAL */ - -#ifndef _REENT_ONLY -#define errno (*__errno()) -extern int *__errno (void); -#endif - -#endif /* _REENT_THREAD_LOCAL */ - -/* Please don't use these variables directly. - Use strerror instead. */ -extern __IMPORT const char * const _sys_errlist[]; -extern __IMPORT int _sys_nerr; -#ifdef __CYGWIN__ -extern __IMPORT const char * const sys_errlist[]; -extern __IMPORT int sys_nerr; -extern __IMPORT char *program_invocation_name; -extern __IMPORT char *program_invocation_short_name; -#endif - -#define __errno_r(ptr) _REENT_ERRNO(ptr) - -#define EPERM 1 /* Not owner */ -#define ENOENT 2 /* No such file or directory */ -#define ESRCH 3 /* No such process */ -#define EINTR 4 /* Interrupted system call */ -#define EIO 5 /* I/O error */ -#define ENXIO 6 /* No such device or address */ -#define E2BIG 7 /* Arg list too long */ -#define ENOEXEC 8 /* Exec format error */ -#define EBADF 9 /* Bad file number */ -#define ECHILD 10 /* No children */ -#define EAGAIN 11 /* No more processes */ -#define ENOMEM 12 /* Not enough space */ -#define EACCES 13 /* Permission denied */ -#define EFAULT 14 /* Bad address */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ENOTBLK 15 /* Block device required */ -#endif -#define EBUSY 16 /* Device or resource busy */ -#define EEXIST 17 /* File exists */ -#define EXDEV 18 /* Cross-device link */ -#define ENODEV 19 /* No such device */ -#define ENOTDIR 20 /* Not a directory */ -#define EISDIR 21 /* Is a directory */ -#define EINVAL 22 /* Invalid argument */ -#define ENFILE 23 /* Too many open files in system */ -#define EMFILE 24 /* File descriptor value too large */ -#define ENOTTY 25 /* Not a character device */ -#define ETXTBSY 26 /* Text file busy */ -#define EFBIG 27 /* File too large */ -#define ENOSPC 28 /* No space left on device */ -#define ESPIPE 29 /* Illegal seek */ -#define EROFS 30 /* Read-only file system */ -#define EMLINK 31 /* Too many links */ -#define EPIPE 32 /* Broken pipe */ -#define EDOM 33 /* Mathematics argument out of domain of function */ -#define ERANGE 34 /* Result too large */ -#define ENOMSG 35 /* No message of desired type */ -#define EIDRM 36 /* Identifier removed */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ECHRNG 37 /* Channel number out of range */ -#define EL2NSYNC 38 /* Level 2 not synchronized */ -#define EL3HLT 39 /* Level 3 halted */ -#define EL3RST 40 /* Level 3 reset */ -#define ELNRNG 41 /* Link number out of range */ -#define EUNATCH 42 /* Protocol driver not attached */ -#define ENOCSI 43 /* No CSI structure available */ -#define EL2HLT 44 /* Level 2 halted */ -#endif -#define EDEADLK 45 /* Deadlock */ -#define ENOLCK 46 /* No lock */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define EBADE 50 /* Invalid exchange */ -#define EBADR 51 /* Invalid request descriptor */ -#define EXFULL 52 /* Exchange full */ -#define ENOANO 53 /* No anode */ -#define EBADRQC 54 /* Invalid request code */ -#define EBADSLT 55 /* Invalid slot */ -#define EDEADLOCK 56 /* File locking deadlock error */ -#define EBFONT 57 /* Bad font file fmt */ -#endif -#define ENOSTR 60 /* Not a stream */ -#define ENODATA 61 /* No data (for no delay io) */ -#define ETIME 62 /* Stream ioctl timeout */ -#define ENOSR 63 /* No stream resources */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ENONET 64 /* Machine is not on the network */ -#define ENOPKG 65 /* Package not installed */ -#define EREMOTE 66 /* The object is remote */ -#endif -#define ENOLINK 67 /* Virtual circuit is gone */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define EADV 68 /* Advertise error */ -#define ESRMNT 69 /* Srmount error */ -#define ECOMM 70 /* Communication error on send */ -#endif -#define EPROTO 71 /* Protocol error */ -#define EMULTIHOP 74 /* Multihop attempted */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ELBIN 75 /* Inode is remote (not really error) */ -#define EDOTDOT 76 /* Cross mount point (not really error) */ -#endif -#define EBADMSG 77 /* Bad message */ -#define EFTYPE 79 /* Inappropriate file type or format */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ENOTUNIQ 80 /* Given log. name not unique */ -#define EBADFD 81 /* f.d. invalid for this operation */ -#define EREMCHG 82 /* Remote address changed */ -#define ELIBACC 83 /* Can't access a needed shared lib */ -#define ELIBBAD 84 /* Accessing a corrupted shared lib */ -#define ELIBSCN 85 /* .lib section in a.out corrupted */ -#define ELIBMAX 86 /* Attempting to link in too many libs */ -#define ELIBEXEC 87 /* Attempting to exec a shared library */ -#endif -#define ENOSYS 88 /* Function not implemented */ -#ifdef __CYGWIN__ -#define ENMFILE 89 /* No more files */ -#endif -#define ENOTEMPTY 90 /* Directory not empty */ -#define ENAMETOOLONG 91 /* File or path name too long */ -#define ELOOP 92 /* Too many symbolic links */ -#define EOPNOTSUPP 95 /* Operation not supported on socket */ -#define EPFNOSUPPORT 96 /* Protocol family not supported */ -#define ECONNRESET 104 /* Connection reset by peer */ -#define ENOBUFS 105 /* No buffer space available */ -#define EAFNOSUPPORT 106 /* Address family not supported by protocol family */ -#define EPROTOTYPE 107 /* Protocol wrong type for socket */ -#define ENOTSOCK 108 /* Socket operation on non-socket */ -#define ENOPROTOOPT 109 /* Protocol not available */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ESHUTDOWN 110 /* Can't send after socket shutdown */ -#endif -#define ECONNREFUSED 111 /* Connection refused */ -#define EADDRINUSE 112 /* Address already in use */ -#define ECONNABORTED 113 /* Software caused connection abort */ -#define ENETUNREACH 114 /* Network is unreachable */ -#define ENETDOWN 115 /* Network interface is not configured */ -#define ETIMEDOUT 116 /* Connection timed out */ -#define EHOSTDOWN 117 /* Host is down */ -#define EHOSTUNREACH 118 /* Host is unreachable */ -#define EINPROGRESS 119 /* Connection already in progress */ -#define EALREADY 120 /* Socket already connected */ -#define EDESTADDRREQ 121 /* Destination address required */ -#define EMSGSIZE 122 /* Message too long */ -#define EPROTONOSUPPORT 123 /* Unknown protocol */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ESOCKTNOSUPPORT 124 /* Socket type not supported */ -#endif -#define EADDRNOTAVAIL 125 /* Address not available */ -#define ENETRESET 126 /* Connection aborted by network */ -#define EISCONN 127 /* Socket is already connected */ -#define ENOTCONN 128 /* Socket is not connected */ -#define ETOOMANYREFS 129 -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define EPROCLIM 130 -#define EUSERS 131 -#endif -#define EDQUOT 132 -#define ESTALE 133 -#define ENOTSUP 134 /* Not supported */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ENOMEDIUM 135 /* No medium (in tape drive) */ -#endif -#ifdef __CYGWIN__ -#define ENOSHARE 136 /* No such host or network path */ -#define ECASECLASH 137 /* Filename exists with different case */ -#endif -#define EILSEQ 138 /* Illegal byte sequence */ -#define EOVERFLOW 139 /* Value too large for defined data type */ -#define ECANCELED 140 /* Operation canceled */ -#define ENOTRECOVERABLE 141 /* State not recoverable */ -#define EOWNERDEAD 142 /* Previous owner died */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ESTRPIPE 143 /* Streams pipe error */ -#endif -#define EWOULDBLOCK EAGAIN /* Operation would block */ - -#define __ELASTERROR 2000 /* Users can add values starting here */ - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_ERRNO_H */ diff --git a/lib/include/sys/fcntl.h b/lib/include/sys/fcntl.h deleted file mode 100644 index be85f40..0000000 --- a/lib/include/sys/fcntl.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef _SYS_FCNTL_H_ -#define _SYS_FCNTL_H_ -#include -#endif diff --git a/lib/include/sys/features.h b/lib/include/sys/features.h deleted file mode 100644 index 45476ce..0000000 --- a/lib/include/sys/features.h +++ /dev/null @@ -1,538 +0,0 @@ -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2014. - * - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - * $Id$ - */ - -#ifndef _SYS_FEATURES_H -#define _SYS_FEATURES_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <_newlib_version.h> - -/* Macro to test version of GCC. Returns 0 for non-GCC or too old GCC. */ -#ifndef __GNUC_PREREQ -# if defined __GNUC__ && defined __GNUC_MINOR__ -# define __GNUC_PREREQ(maj, min) \ - ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) -# else -# define __GNUC_PREREQ(maj, min) 0 -# endif -#endif /* __GNUC_PREREQ */ -/* Version with trailing underscores for BSD compatibility. */ -#define __GNUC_PREREQ__(ma, mi) __GNUC_PREREQ(ma, mi) - - -/* - * Feature test macros control which symbols are exposed by the system - * headers. Any of these must be defined before including any headers. - * - * __STRICT_ANSI__ (defined by gcc -ansi, -std=c90, -std=c99, or -std=c11) - * ISO C - * - * _POSIX_SOURCE (deprecated by _POSIX_C_SOURCE=1) - * _POSIX_C_SOURCE >= 1 - * POSIX.1-1990 - * - * _POSIX_C_SOURCE >= 2 - * POSIX.2-1992 - * - * _POSIX_C_SOURCE >= 199309L - * POSIX.1b-1993 Real-time extensions - * - * _POSIX_C_SOURCE >= 199506L - * POSIX.1c-1995 Threads extensions - * - * _POSIX_C_SOURCE >= 200112L - * POSIX.1-2001 and C99 - * - * _POSIX_C_SOURCE >= 200809L - * POSIX.1-2008 - * - * _XOPEN_SOURCE - * POSIX.1-1990 and XPG4 - * - * _XOPEN_SOURCE_EXTENDED - * SUSv1 (POSIX.2-1992 plus XPG4v2) - * - * _XOPEN_SOURCE >= 500 - * SUSv2 (POSIX.1c-1995 plus XSI) - * - * _XOPEN_SOURCE >= 600 - * SUSv3 (POSIX.1-2001 plus XSI) and C99 - * - * _XOPEN_SOURCE >= 700 - * SUSv4 (POSIX.1-2008 plus XSI) - * - * _ISOC99_SOURCE or gcc -std=c99 or g++ - * ISO C99 - * - * _ISOC11_SOURCE or gcc -std=c11 or g++ -std=c++11 - * ISO C11 - * - * _ATFILE_SOURCE (implied by _POSIX_C_SOURCE >= 200809L) - * "at" functions - * - * _LARGEFILE_SOURCE (deprecated by _XOPEN_SOURCE >= 500) - * fseeko, ftello - * - * _GNU_SOURCE - * All of the above plus GNU extensions - * - * _BSD_SOURCE (deprecated by _DEFAULT_SOURCE) - * _SVID_SOURCE (deprecated by _DEFAULT_SOURCE) - * _DEFAULT_SOURCE (or none of the above) - * POSIX-1.2008 with BSD and SVr4 extensions - * - * _FORTIFY_SOURCE = 1 or 2 - * Object Size Checking function wrappers - */ - -#ifdef _GNU_SOURCE -#undef _ATFILE_SOURCE -#define _ATFILE_SOURCE 1 -#undef _DEFAULT_SOURCE -#define _DEFAULT_SOURCE 1 -#undef _ISOC99_SOURCE -#define _ISOC99_SOURCE 1 -#undef _ISOC11_SOURCE -#define _ISOC11_SOURCE 1 -#undef _POSIX_SOURCE -#define _POSIX_SOURCE 1 -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 200809L -#undef _XOPEN_SOURCE -#define _XOPEN_SOURCE 700 -#undef _XOPEN_SOURCE_EXTENDED -#define _XOPEN_SOURCE_EXTENDED 1 -#endif /* _GNU_SOURCE */ - -#if defined(_BSD_SOURCE) || defined(_SVID_SOURCE) || \ - (!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE) && \ - !defined(_ISOC99_SOURCE) && !defined(_POSIX_SOURCE) && \ - !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) -#undef _DEFAULT_SOURCE -#define _DEFAULT_SOURCE 1 -#endif - -#if defined(_DEFAULT_SOURCE) -#undef _POSIX_SOURCE -#define _POSIX_SOURCE 1 -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 200809L -#endif - -#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) && \ - ((!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE)) || \ - (_XOPEN_SOURCE - 0) >= 500) -#define _POSIX_SOURCE 1 -#if !defined(_XOPEN_SOURCE) || (_XOPEN_SOURCE - 0) >= 700 -#define _POSIX_C_SOURCE 200809L -#elif (_XOPEN_SOURCE - 0) >= 600 -#define _POSIX_C_SOURCE 200112L -#elif (_XOPEN_SOURCE - 0) >= 500 -#define _POSIX_C_SOURCE 199506L -#elif (_XOPEN_SOURCE - 0) < 500 -#define _POSIX_C_SOURCE 2 -#endif -#endif - -#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200809 -#undef _ATFILE_SOURCE -#define _ATFILE_SOURCE 1 -#endif - -/* - * The following private macros are used throughout the headers to control - * which symbols should be exposed. They are for internal use only, as - * indicated by the leading double underscore, and must never be used outside - * of these headers. - * - * __POSIX_VISIBLE - * any version of POSIX.1; enabled by default, or with _POSIX_SOURCE, - * any value of _POSIX_C_SOURCE, or _XOPEN_SOURCE >= 500. - * - * __POSIX_VISIBLE >= 2 - * POSIX.2-1992; enabled by default, with _POSIX_C_SOURCE >= 2, - * or _XOPEN_SOURCE >= 500. - * - * __POSIX_VISIBLE >= 199309 - * POSIX.1b-1993; enabled by default, with _POSIX_C_SOURCE >= 199309L, - * or _XOPEN_SOURCE >= 500. - * - * __POSIX_VISIBLE >= 199506 - * POSIX.1c-1995; enabled by default, with _POSIX_C_SOURCE >= 199506L, - * or _XOPEN_SOURCE >= 500. - * - * __POSIX_VISIBLE >= 200112 - * POSIX.1-2001; enabled by default, with _POSIX_C_SOURCE >= 200112L, - * or _XOPEN_SOURCE >= 600. - * - * __POSIX_VISIBLE >= 200809 - * POSIX.1-2008; enabled by default, with _POSIX_C_SOURCE >= 200809L, - * or _XOPEN_SOURCE >= 700. - * - * __XSI_VISIBLE - * XPG4 XSI extensions; enabled with any version of _XOPEN_SOURCE. - * - * __XSI_VISIBLE >= 4 - * SUSv1 XSI extensions; enabled with both _XOPEN_SOURCE and - * _XOPEN_SOURCE_EXTENDED together. - * - * __XSI_VISIBLE >= 500 - * SUSv2 XSI extensions; enabled with _XOPEN_SOURCE >= 500. - * - * __XSI_VISIBLE >= 600 - * SUSv3 XSI extensions; enabled with _XOPEN_SOURCE >= 600. - * - * __XSI_VISIBLE >= 700 - * SUSv4 XSI extensions; enabled with _XOPEN_SOURCE >= 700. - * - * __ISO_C_VISIBLE >= 1999 - * ISO C99; enabled with gcc -std=c99 or newer (on by default since GCC 5), - * any version of C++, or with _ISOC99_SOURCE, _POSIX_C_SOURCE >= 200112L, - * or _XOPEN_SOURCE >= 600. - * - * __ISO_C_VISIBLE >= 2011 - * ISO C11; enabled with gcc -std=c11 or newer (on by default since GCC 5), - * g++ -std=c++11 or newer (on by default since GCC 6), or with - * _ISOC11_SOURCE. - * - * __ATFILE_VISIBLE - * "at" functions; enabled by default, with _ATFILE_SOURCE, - * _POSIX_C_SOURCE >= 200809L, or _XOPEN_SOURCE >= 700. - * - * __LARGEFILE_VISIBLE - * fseeko, ftello; enabled with _LARGEFILE_SOURCE or _XOPEN_SOURCE >= 500. - * - * __BSD_VISIBLE - * BSD extensions; enabled by default, or with _BSD_SOURCE. - * - * __SVID_VISIBLE - * SVr4 extensions; enabled by default, or with _SVID_SOURCE. - * - * __MISC_VISIBLE - * Extensions found in both BSD and SVr4 (shorthand for - * (__BSD_VISIBLE || __SVID_VISIBLE)), or newlib-specific - * extensions; enabled by default. - * - * __GNU_VISIBLE - * GNU extensions; enabled with _GNU_SOURCE. - * - * __SSP_FORTIFY_LEVEL - * Object Size Checking; defined to 0 (off), 1, or 2. - * - * In all cases above, "enabled by default" means either by defining - * _DEFAULT_SOURCE, or by not defining any of the public feature test macros. - */ - -#ifdef _ATFILE_SOURCE -#define __ATFILE_VISIBLE 1 -#else -#define __ATFILE_VISIBLE 0 -#endif - -#ifdef _DEFAULT_SOURCE -#define __BSD_VISIBLE 1 -#else -#define __BSD_VISIBLE 0 -#endif - -#ifdef _GNU_SOURCE -#define __GNU_VISIBLE 1 -#else -#define __GNU_VISIBLE 0 -#endif - -#if defined(_ISOC11_SOURCE) || \ - (__STDC_VERSION__ - 0) >= 201112L || (__cplusplus - 0) >= 201103L -#define __ISO_C_VISIBLE 2011 -#elif defined(_ISOC99_SOURCE) || (_POSIX_C_SOURCE - 0) >= 200112L || \ - (__STDC_VERSION__ - 0) >= 199901L || defined(__cplusplus) -#define __ISO_C_VISIBLE 1999 -#else -#define __ISO_C_VISIBLE 1990 -#endif - -#if defined(_LARGEFILE_SOURCE) || (_XOPEN_SOURCE - 0) >= 500 -#define __LARGEFILE_VISIBLE 1 -#else -#define __LARGEFILE_VISIBLE 0 -#endif - -#ifdef _DEFAULT_SOURCE -#define __MISC_VISIBLE 1 -#else -#define __MISC_VISIBLE 0 -#endif - -#if (_POSIX_C_SOURCE - 0) >= 200809L -#define __POSIX_VISIBLE 200809 -#elif (_POSIX_C_SOURCE - 0) >= 200112L -#define __POSIX_VISIBLE 200112 -#elif (_POSIX_C_SOURCE - 0) >= 199506L -#define __POSIX_VISIBLE 199506 -#elif (_POSIX_C_SOURCE - 0) >= 199309L -#define __POSIX_VISIBLE 199309 -#elif (_POSIX_C_SOURCE - 0) >= 2 || defined(_XOPEN_SOURCE) -#define __POSIX_VISIBLE 199209 -#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) -#define __POSIX_VISIBLE 199009 -#else -#define __POSIX_VISIBLE 0 -#endif - -#ifdef _DEFAULT_SOURCE -#define __SVID_VISIBLE 1 -#else -#define __SVID_VISIBLE 0 -#endif - -#if (_XOPEN_SOURCE - 0) >= 700 -#define __XSI_VISIBLE 700 -#elif (_XOPEN_SOURCE - 0) >= 600 -#define __XSI_VISIBLE 600 -#elif (_XOPEN_SOURCE - 0) >= 500 -#define __XSI_VISIBLE 500 -#elif defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED) -#define __XSI_VISIBLE 4 -#elif defined(_XOPEN_SOURCE) -#define __XSI_VISIBLE 1 -#else -#define __XSI_VISIBLE 0 -#endif - -#if _FORTIFY_SOURCE > 0 && !defined(__cplusplus) && !defined(__lint__) && \ - (__OPTIMIZE__ > 0 || defined(__clang__)) && __GNUC_PREREQ__(4, 1) && \ - !defined(_LIBC) -# if _FORTIFY_SOURCE > 1 -# define __SSP_FORTIFY_LEVEL 2 -# else -# define __SSP_FORTIFY_LEVEL 1 -# endif -#else -# define __SSP_FORTIFY_LEVEL 0 -#endif - -/* RTEMS adheres to POSIX -- 1003.1b with some features from annexes. */ - -#ifdef __rtems__ -#define _POSIX_JOB_CONTROL 1 -#define _POSIX_SAVED_IDS 1 -#define _POSIX_VERSION 199309L -#define _POSIX_ASYNCHRONOUS_IO 1 -#define _POSIX_FSYNC 1 -#define _POSIX_MAPPED_FILES 1 -#define _POSIX_MEMLOCK 1 -#define _POSIX_MEMLOCK_RANGE 1 -#define _POSIX_MEMORY_PROTECTION 1 -#define _POSIX_MESSAGE_PASSING 1 -#define _POSIX_MONOTONIC_CLOCK 200112L -#define _POSIX_CLOCK_SELECTION 200112L -#define _POSIX_PRIORITIZED_IO 1 -#define _POSIX_PRIORITY_SCHEDULING 1 -#define _POSIX_REALTIME_SIGNALS 1 -#define _POSIX_SEMAPHORES 1 -#define _POSIX_SHARED_MEMORY_OBJECTS 1 -#define _POSIX_SYNCHRONIZED_IO 1 -#define _POSIX_TIMERS 1 -#define _POSIX_BARRIERS 200112L -#define _POSIX_READER_WRITER_LOCKS 200112L -#define _POSIX_SPIN_LOCKS 200112L - - -/* In P1003.1b but defined by drafts at least as early as P1003.1c/D10 */ -#define _POSIX_THREADS 1 -#define _POSIX_THREAD_ATTR_STACKADDR 1 -#define _POSIX_THREAD_ATTR_STACKSIZE 1 -#define _POSIX_THREAD_PRIORITY_SCHEDULING 1 -#define _POSIX_THREAD_PRIO_INHERIT 1 -#define _POSIX_THREAD_PRIO_PROTECT 1 -#define _POSIX_THREAD_PROCESS_SHARED 1 -#define _POSIX_THREAD_SAFE_FUNCTIONS 1 - -/* P1003.4b/D8 defines the constants below this comment. */ -#define _POSIX_SPAWN 1 -#define _POSIX_TIMEOUTS 1 -#define _POSIX_CPUTIME 1 -#define _POSIX_THREAD_CPUTIME 1 -#define _POSIX_SPORADIC_SERVER 1 -#define _POSIX_THREAD_SPORADIC_SERVER 1 -#define _POSIX_DEVICE_CONTROL 1 -#define _POSIX_DEVCTL_DIRECTION 1 -#define _POSIX_INTERRUPT_CONTROL 1 -#define _POSIX_ADVISORY_INFO 1 - -/* UNIX98 added some new pthread mutex attributes */ -#define _UNIX98_THREAD_MUTEX_ATTRIBUTES 1 - -/* POSIX 1003.26-2003 defined device control method */ -#define _POSIX_26_VERSION 200312L - -#endif - -/* XMK loosely adheres to POSIX -- 1003.1 */ -#ifdef __XMK__ -#define _POSIX_THREADS 1 -#define _POSIX_THREAD_PRIORITY_SCHEDULING 1 -#endif - - -#ifdef __svr4__ -# define _POSIX_JOB_CONTROL 1 -# define _POSIX_SAVED_IDS 1 -# define _POSIX_VERSION 199009L -#endif - -#ifdef __CYGWIN__ - -#if __POSIX_VISIBLE >= 200809 -#define _POSIX_VERSION 200809L -#define _POSIX2_VERSION 200809L -#elif __POSIX_VISIBLE >= 200112 -#define _POSIX_VERSION 200112L -#define _POSIX2_VERSION 200112L -#elif __POSIX_VISIBLE >= 199506 -#define _POSIX_VERSION 199506L -#define _POSIX2_VERSION 199506L -#elif __POSIX_VISIBLE >= 199309 -#define _POSIX_VERSION 199309L -#define _POSIX2_VERSION 199209L -#elif __POSIX_VISIBLE >= 199209 -#define _POSIX_VERSION 199009L -#define _POSIX2_VERSION 199209L -#elif __POSIX_VISIBLE -#define _POSIX_VERSION 199009L -#endif -#if __XSI_VISIBLE >= 4 -#define _XOPEN_VERSION __XSI_VISIBLE -#endif - -#define _POSIX_ADVISORY_INFO 200809L -#define _POSIX_ASYNCHRONOUS_IO 200809L -#define _POSIX_BARRIERS 200809L -#define _POSIX_CHOWN_RESTRICTED 1 -#define _POSIX_CLOCK_SELECTION 200809L -#define _POSIX_CPUTIME 200809L -#define _POSIX_FSYNC 200809L -#define _POSIX_IPV6 200809L -#define _POSIX_JOB_CONTROL 1 -#define _POSIX_MAPPED_FILES 200809L -/* #define _POSIX_MEMLOCK -1 */ -#define _POSIX_MEMLOCK_RANGE 200809L -#define _POSIX_MEMORY_PROTECTION 200809L -#define _POSIX_MESSAGE_PASSING 200809L -#define _POSIX_MONOTONIC_CLOCK 200809L -#define _POSIX_NO_TRUNC 1 -/* #define _POSIX_PRIORITIZED_IO -1 */ -#define _POSIX_PRIORITY_SCHEDULING 200809L -#define _POSIX_RAW_SOCKETS 200809L -#define _POSIX_READER_WRITER_LOCKS 200809L -#define _POSIX_REALTIME_SIGNALS 200809L -#define _POSIX_REGEXP 1 -#define _POSIX_SAVED_IDS 1 -#define _POSIX_SEMAPHORES 200809L -#define _POSIX_SHARED_MEMORY_OBJECTS 200809L -#define _POSIX_SHELL 1 -#define _POSIX_SPAWN 200809L -#define _POSIX_SPIN_LOCKS 200809L -/* #define _POSIX_SPORADIC_SERVER -1 */ -#define _POSIX_SYNCHRONIZED_IO 200809L -#define _POSIX_THREAD_ATTR_STACKADDR 200809L -#define _POSIX_THREAD_ATTR_STACKSIZE 200809L -#define _POSIX_THREAD_CPUTIME 200809L -/* #define _POSIX_THREAD_PRIO_INHERIT -1 */ -/* #define _POSIX_THREAD_PRIO_PROTECT -1 */ -#define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L -#define _POSIX_THREAD_PROCESS_SHARED 200809L -#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L -/* #define _POSIX_THREAD_SPORADIC_SERVER -1 */ -#define _POSIX_THREADS 200809L -#define _POSIX_TIMEOUTS 200809L -#define _POSIX_TIMERS 200809L -/* #define _POSIX_TRACE -1 */ -/* #define _POSIX_TRACE_EVENT_FILTER -1 */ -/* #define _POSIX_TRACE_INHERIT -1 */ -/* #define _POSIX_TRACE_LOG -1 */ -/* #define _POSIX_TYPED_MEMORY_OBJECTS -1 */ -#define _POSIX_VDISABLE '\0' - -#if __POSIX_VISIBLE >= 2 -#define _POSIX2_C_VERSION _POSIX2_VERSION -#define _POSIX2_C_BIND _POSIX2_VERSION -#define _POSIX2_C_DEV _POSIX2_VERSION -#define _POSIX2_CHAR_TERM _POSIX2_VERSION -/* #define _POSIX2_FORT_DEV -1 */ -/* #define _POSIX2_FORT_RUN -1 */ -/* #define _POSIX2_LOCALEDEF -1 */ -/* #define _POSIX2_PBS -1 */ -/* #define _POSIX2_PBS_ACCOUNTING -1 */ -/* #define _POSIX2_PBS_CHECKPOINT -1 */ -/* #define _POSIX2_PBS_LOCATE -1 */ -/* #define _POSIX2_PBS_MESSAGE -1 */ -/* #define _POSIX2_PBS_TRACK -1 */ -#define _POSIX2_SW_DEV _POSIX2_VERSION -#define _POSIX2_UPE _POSIX2_VERSION -#endif /* __POSIX_VISIBLE >= 2 */ - -#define _POSIX_V6_ILP32_OFF32 -1 -#ifdef __LP64__ -#define _POSIX_V6_ILP32_OFFBIG -1 -#define _POSIX_V6_LP64_OFF64 1 -#define _POSIX_V6_LPBIG_OFFBIG 1 -#else -#define _POSIX_V6_ILP32_OFFBIG 1 -#define _POSIX_V6_LP64_OFF64 -1 -#define _POSIX_V6_LPBIG_OFFBIG -1 -#endif -#define _POSIX_V7_ILP32_OFF32 _POSIX_V6_ILP32_OFF32 -#define _POSIX_V7_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG -#define _POSIX_V7_LP64_OFF64 _POSIX_V6_LP64_OFF64 -#define _POSIX_V7_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG -#define _XBS5_ILP32_OFF32 _POSIX_V6_ILP32_OFF32 -#define _XBS5_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG -#define _XBS5_LP64_OFF64 _POSIX_V6_LP64_OFF64 -#define _XBS5_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG - -#if __XSI_VISIBLE -#define _XOPEN_CRYPT 1 -#define _XOPEN_ENH_I18N 1 -/* #define _XOPEN_LEGACY -1 */ -/* #define _XOPEN_REALTIME -1 */ -/* #define _XOPEN_REALTIME_THREADS -1 */ -#define _XOPEN_SHM 1 -/* #define _XOPEN_STREAMS -1 */ -/* #define _XOPEN_UNIX -1 */ -#endif /* __XSI_VISIBLE */ - -/* - * newlib's wide char conversion functions were updated on - * 2019-01-12 - * to UNICODE version: - * 11.0.0 released 2018-06-05 - */ -#define __STDC_ISO_10646__ 201806L - -#endif /* __CYGWIN__ */ - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_FEATURES_H */ diff --git a/lib/include/sys/fenv.h b/lib/include/sys/fenv.h deleted file mode 100644 index e0983fa..0000000 --- a/lib/include/sys/fenv.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - (c) Copyright 2019 Joel Sherrill - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _SYS_FENV_H_ -#define _SYS_FENV_H_ - -/******************************************************************************* - * THIS FILE IS A TEMPLATE, INTENDED TO BE USED AS A STARTING POINT FOR - * TARGET-SPECIFIC FLOATING-POINT IMPLEMENTATIONS. NOTES BELOW HIGHLIGHT THE - * BASICS OF WHAT NEEDS TO BE DEFINED. THE DEFAULT IMPLEMTATION IS - * DEGENERATE, WITH ALL FUNCTIONS RETURNING ERROR AND NO EXCEPTIONS AND NO - * ROUNDING MODES DEFINED (SINCE NONE ARE SUPPORTED). - * THE MACRO VALUES ARE EXAMPLES ONLY, ALTHOUGH TAKEN FROM A WORKING - * IMPLEMENTATION. - * REMOVE THIS NOTICE WHEN COPYING TO A REAL IMPLEMENTATION, REPLACING IT WITH - * ANY TARGET-SPECIFIC NOTES OF INTEREST. THE FENV FUNCTION MAN PAGES POINT TO - * THIS FILE AS A MEANS OF DETERMINING A FUNCTIONAL VS. NON-FUNCTIONAL - * IMPLEMENTATION. - ******************************************************************************/ -/* - * The following macros are to be defined if the respective exception is - * supported by the implementation, each with a unique bit mask: - * - * FE_DIVBYZERO - * FE_INEXACT - * FE_INVALID - * FE_OVERFLOW - * FE_UNDERFLOW - * - * Other implementation-specific exceptions may be defined, and must start - * with FE_ followed by a capital letter. - * - * FE_ALL_EXCEPT must be defined as the logical OR of all exceptions. - */ -//#define FE_DIVBYZERO 0x00000001 -//#define FE_INEXACT 0x00000002 -//#define FE_INVALID 0x00000004 -//#define FE_OVERFLOW 0x00000008 -//#define FE_UNDERFLOW 0x00000010 - -//#define FE_ALL_EXCEPT \ - //(FE_DIVBYZERO|FE_INEXACT|FE_INVALID|FE_OVERFLOW|FE_UNDERFLOW) -#define FE_ALL_EXCEPT 0 /* NONE SUPPORTED IN PLACEHOLDER TEMPLATE */ - -/* - * The following macros are to be defined if the respective rounding - * direction is supported by the implementation via the fegetround() and - * fesetround() functions, each with a unique positive value. - * - * FE_DOWNWARD - * FE_TONEAREST - * FE_TOWARDZERO - * FE_UPWARD - * - * Other implementation-specific rounding modes may be defined, and must start - * with FE_ followed by a capital letter. - */ -//#define FE_DOWNWARD 1 -//#define FE_TONEAREST 2 -//#define FE_TOWARDZERO 3 -//#define FE_UPWARD 4 - -/* - * The following typedefs are required. These should be defined properly - * to support the architecture specific implementation. See the C and - * POSIX standards for details: - * - * fenv_t - * fexcept_t - */ -typedef int fenv_t; -typedef int fexcept_t; - -/* - * Lastly, a FE_DFL_ENV macro must be defined, representing a pointer - * to const fenv_t that contains the value of the default floating point - * environment. - * - * NOTE: The extern'ed variable fe_default_env_p is an implementation - * detail of this stub. FE_DFL_ENV must point to an instance of - * fenv_t with the default fenv_t. The format of fenv_t and where - * FE_DFL_ENV is are implementation specific. - */ -extern const fenv_t *_fe_dfl_env; -#define FE_DFL_ENV _fe_dfl_env - -#endif /* _SYS_FENV_H_ */ diff --git a/lib/include/sys/file.h b/lib/include/sys/file.h deleted file mode 100644 index 58d4fac..0000000 --- a/lib/include/sys/file.h +++ /dev/null @@ -1,2 +0,0 @@ - -#include diff --git a/lib/include/sys/iconvnls.h b/lib/include/sys/iconvnls.h deleted file mode 100644 index d4ee0b7..0000000 --- a/lib/include/sys/iconvnls.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy. - * Rights transferred to Franklin Electronic Publishers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * Funtions, macros, etc implimented in iconv library but used by other - * NLS-related subsystems too. - */ -#ifndef __SYS_ICONVNLS_H__ -#define __SYS_ICONVNLS_H__ - -#include <_ansi.h> -#include -#include -#include - -/* Iconv data path environment variable name */ -#define NLS_ENVVAR_NAME "NLSPATH" -/* Default NLSPATH value */ -#define ICONV_DEFAULT_NLSPATH "/usr/locale" -/* Direction markers */ -#define ICONV_NLS_FROM 0 -#define ICONV_NLS_TO 1 - -void -_iconv_nls_get_state (iconv_t cd, mbstate_t *ps, int direction); - -int -_iconv_nls_set_state (iconv_t cd, mbstate_t *ps, int direction); - -int -_iconv_nls_is_stateful (iconv_t cd, int direction); - -int -_iconv_nls_get_mb_cur_max (iconv_t cd, int direction); - -size_t -_iconv_nls_conv (struct _reent *rptr, iconv_t cd, - const char **inbuf, size_t *inbytesleft, - char **outbuf, size_t *outbytesleft); - -const char * -_iconv_nls_construct_filename (struct _reent *rptr, const char *file, - const char *dir, const char *ext); - - -int -_iconv_nls_open (struct _reent *rptr, const char *encoding, - iconv_t *towc, iconv_t *fromwc, int flag); - -char * -_iconv_resolve_encoding_name (struct _reent *rptr, const char *ca); - -#endif /* __SYS_ICONVNLS_H__ */ - diff --git a/lib/include/sys/lock.h b/lib/include/sys/lock.h deleted file mode 100644 index 5289049..0000000 --- a/lib/include/sys/lock.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef __SYS_LOCK_H__ -#define __SYS_LOCK_H__ - -/* dummy lock routines for single-threaded aps */ - -#include -#include <_ansi.h> - -#if !defined(_RETARGETABLE_LOCKING) - -typedef int _LOCK_T; -typedef int _LOCK_RECURSIVE_T; - -#define __LOCK_INIT(class,lock) static int lock = 0; -#define __LOCK_INIT_RECURSIVE(class,lock) static int lock = 0; -#define __lock_init(lock) ((void) 0) -#define __lock_init_recursive(lock) ((void) 0) -#define __lock_close(lock) ((void) 0) -#define __lock_close_recursive(lock) ((void) 0) -#define __lock_acquire(lock) ((void) 0) -#define __lock_acquire_recursive(lock) ((void) 0) -#define __lock_try_acquire(lock) ((void) 0) -#define __lock_try_acquire_recursive(lock) ((void) 0) -#define __lock_release(lock) ((void) 0) -#define __lock_release_recursive(lock) ((void) 0) - -#else - -#ifdef __cplusplus -extern "C" { -#endif - -struct __lock; -typedef struct __lock * _LOCK_T; -#define _LOCK_RECURSIVE_T _LOCK_T - -#define __LOCK_INIT(class,lock) extern struct __lock __lock_ ## lock; \ - class _LOCK_T lock = &__lock_ ## lock -#define __LOCK_INIT_RECURSIVE(class,lock) __LOCK_INIT(class,lock) - -extern void __retarget_lock_init(_LOCK_T *lock); -#define __lock_init(lock) __retarget_lock_init(&lock) -extern void __retarget_lock_init_recursive(_LOCK_T *lock); -#define __lock_init_recursive(lock) __retarget_lock_init_recursive(&lock) -extern void __retarget_lock_close(_LOCK_T lock); -#define __lock_close(lock) __retarget_lock_close(lock) -extern void __retarget_lock_close_recursive(_LOCK_T lock); -#define __lock_close_recursive(lock) __retarget_lock_close_recursive(lock) -extern void __retarget_lock_acquire(_LOCK_T lock); -#define __lock_acquire(lock) __retarget_lock_acquire(lock) -extern void __retarget_lock_acquire_recursive(_LOCK_T lock); -#define __lock_acquire_recursive(lock) __retarget_lock_acquire_recursive(lock) -extern int __retarget_lock_try_acquire(_LOCK_T lock); -#define __lock_try_acquire(lock) __retarget_lock_try_acquire(lock) -extern int __retarget_lock_try_acquire_recursive(_LOCK_T lock); -#define __lock_try_acquire_recursive(lock) \ - __retarget_lock_try_acquire_recursive(lock) -extern void __retarget_lock_release(_LOCK_T lock); -#define __lock_release(lock) __retarget_lock_release(lock) -extern void __retarget_lock_release_recursive(_LOCK_T lock); -#define __lock_release_recursive(lock) __retarget_lock_release_recursive(lock) - -#ifdef __cplusplus -} -#endif - -#endif /* !defined(_RETARGETABLE_LOCKING) */ - -#endif /* __SYS_LOCK_H__ */ diff --git a/lib/include/sys/param.h b/lib/include/sys/param.h deleted file mode 100644 index 9a6f115..0000000 --- a/lib/include/sys/param.h +++ /dev/null @@ -1,35 +0,0 @@ -/* This is a dummy file, not customized for any - particular system. If there is a param.h in libc/sys/SYSDIR/sys, - it will override this one. */ - -#ifndef _SYS_PARAM_H -# define _SYS_PARAM_H - -#include -#include -#include -#include - -#ifndef NBBY -# define NBBY 8 /* number of bits in a byte */ -#endif -#ifndef HZ -# define HZ (60) -#endif -#ifndef NOFILE -# define NOFILE (60) -#endif -#ifndef PATHSIZE -# define PATHSIZE (1024) -#endif - -#define MAXPATHLEN PATH_MAX - -#define MAX(a,b) ((a) > (b) ? (a) : (b)) -#define MIN(a,b) ((a) < (b) ? (a) : (b)) - -#ifndef howmany -#define howmany(x, y) (((x)+((y)-1))/(y)) -#endif - -#endif diff --git a/lib/include/sys/queue.h b/lib/include/sys/queue.h deleted file mode 100644 index 6392b62..0000000 --- a/lib/include/sys/queue.h +++ /dev/null @@ -1,919 +0,0 @@ -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)queue.h 8.5 (Berkeley) 8/20/94 - * $FreeBSD$ - */ - -#ifndef _SYS_QUEUE_H_ -#define _SYS_QUEUE_H_ - -#include - -/* - * This file defines four types of data structures: singly-linked lists, - * singly-linked tail queues, lists and tail queues. - * - * A singly-linked list is headed by a single forward pointer. The elements - * are singly linked for minimum space and pointer manipulation overhead at - * the expense of O(n) removal for arbitrary elements. New elements can be - * added to the list after an existing element or at the head of the list. - * Elements being removed from the head of the list should use the explicit - * macro for this purpose for optimum efficiency. A singly-linked list may - * only be traversed in the forward direction. Singly-linked lists are ideal - * for applications with large datasets and few or no removals or for - * implementing a LIFO queue. - * - * A singly-linked tail queue is headed by a pair of pointers, one to the - * head of the list and the other to the tail of the list. The elements are - * singly linked for minimum space and pointer manipulation overhead at the - * expense of O(n) removal for arbitrary elements. New elements can be added - * to the list after an existing element, at the head of the list, or at the - * end of the list. Elements being removed from the head of the tail queue - * should use the explicit macro for this purpose for optimum efficiency. - * A singly-linked tail queue may only be traversed in the forward direction. - * Singly-linked tail queues are ideal for applications with large datasets - * and few or no removals or for implementing a FIFO queue. - * - * A list is headed by a single forward pointer (or an array of forward - * pointers for a hash table header). The elements are doubly linked - * so that an arbitrary element can be removed without a need to - * traverse the list. New elements can be added to the list before - * or after an existing element or at the head of the list. A list - * may be traversed in either direction. - * - * A tail queue is headed by a pair of pointers, one to the head of the - * list and the other to the tail of the list. The elements are doubly - * linked so that an arbitrary element can be removed without a need to - * traverse the list. New elements can be added to the list before or - * after an existing element, at the head of the list, or at the end of - * the list. A tail queue may be traversed in either direction. - * - * For details on the use of these macros, see the queue(3) manual page. - * - * Below is a summary of implemented functions where: - * + means the macro is available - * - means the macro is not available - * s means the macro is available but is slow (runs in O(n) time) - * - * SLIST LIST STAILQ TAILQ - * _HEAD + + + + - * _CLASS_HEAD + + + + - * _HEAD_INITIALIZER + + + + - * _ENTRY + + + + - * _CLASS_ENTRY + + + + - * _INIT + + + + - * _EMPTY + + + + - * _FIRST + + + + - * _NEXT + + + + - * _PREV - + - + - * _LAST - - + + - * _LAST_FAST - - - + - * _FOREACH + + + + - * _FOREACH_FROM + + + + - * _FOREACH_SAFE + + + + - * _FOREACH_FROM_SAFE + + + + - * _FOREACH_REVERSE - - - + - * _FOREACH_REVERSE_FROM - - - + - * _FOREACH_REVERSE_SAFE - - - + - * _FOREACH_REVERSE_FROM_SAFE - - - + - * _INSERT_HEAD + + + + - * _INSERT_BEFORE - + - + - * _INSERT_AFTER + + + + - * _INSERT_TAIL - - + + - * _CONCAT s s + + - * _REMOVE_AFTER + - + - - * _REMOVE_HEAD + - + - - * _REMOVE s + s + - * _SWAP + + + + - * - */ -#ifdef QUEUE_MACRO_DEBUG -#warn Use QUEUE_MACRO_DEBUG_TRACE and/or QUEUE_MACRO_DEBUG_TRASH -#define QUEUE_MACRO_DEBUG_TRACE -#define QUEUE_MACRO_DEBUG_TRASH -#endif - -#ifdef QUEUE_MACRO_DEBUG_TRACE -/* Store the last 2 places the queue element or head was altered */ -struct qm_trace { - unsigned long lastline; - unsigned long prevline; - const char *lastfile; - const char *prevfile; -}; - -#define TRACEBUF struct qm_trace trace; -#define TRACEBUF_INITIALIZER { __LINE__, 0, __FILE__, NULL } , - -#define QMD_TRACE_HEAD(head) do { \ - (head)->trace.prevline = (head)->trace.lastline; \ - (head)->trace.prevfile = (head)->trace.lastfile; \ - (head)->trace.lastline = __LINE__; \ - (head)->trace.lastfile = __FILE__; \ -} while (0) - -#define QMD_TRACE_ELEM(elem) do { \ - (elem)->trace.prevline = (elem)->trace.lastline; \ - (elem)->trace.prevfile = (elem)->trace.lastfile; \ - (elem)->trace.lastline = __LINE__; \ - (elem)->trace.lastfile = __FILE__; \ -} while (0) - -#else /* !QUEUE_MACRO_DEBUG_TRACE */ -#define QMD_TRACE_ELEM(elem) -#define QMD_TRACE_HEAD(head) -#define TRACEBUF -#define TRACEBUF_INITIALIZER -#endif /* QUEUE_MACRO_DEBUG_TRACE */ - -#ifdef QUEUE_MACRO_DEBUG_TRASH -#define TRASHIT(x) do {(x) = (void *)-1;} while (0) -#define QMD_IS_TRASHED(x) ((x) == (void *)(intptr_t)-1) -#else /* !QUEUE_MACRO_DEBUG_TRASH */ -#define TRASHIT(x) -#define QMD_IS_TRASHED(x) 0 -#endif /* QUEUE_MACRO_DEBUG_TRASH */ - -#if defined(QUEUE_MACRO_DEBUG_TRACE) || defined(QUEUE_MACRO_DEBUG_TRASH) -#define QMD_SAVELINK(name, link) void **name = (void *)&(link) -#else /* !QUEUE_MACRO_DEBUG_TRACE && !QUEUE_MACRO_DEBUG_TRASH */ -#define QMD_SAVELINK(name, link) -#endif /* QUEUE_MACRO_DEBUG_TRACE || QUEUE_MACRO_DEBUG_TRASH */ - -#ifdef __cplusplus -/* - * In C++ there can be structure lists and class lists: - */ -#define QUEUE_TYPEOF(type) type -#else -#define QUEUE_TYPEOF(type) struct type -#endif - -/* - * Singly-linked List declarations. - */ -#define SLIST_HEAD(name, type) \ -struct name { \ - struct type *slh_first; /* first element */ \ -} - -#define SLIST_CLASS_HEAD(name, type) \ -struct name { \ - class type *slh_first; /* first element */ \ -} - -#define SLIST_HEAD_INITIALIZER(head) \ - { NULL } - -#define SLIST_ENTRY(type) \ -struct { \ - struct type *sle_next; /* next element */ \ -} - -#define SLIST_CLASS_ENTRY(type) \ -struct { \ - class type *sle_next; /* next element */ \ -} - -/* - * Singly-linked List functions. - */ -#if (defined(_KERNEL) && defined(INVARIANTS)) -#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) do { \ - if (*(prevp) != (elm)) \ - panic("Bad prevptr *(%p) == %p != %p", \ - (prevp), *(prevp), (elm)); \ -} while (0) -#else -#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) -#endif - -#define SLIST_CONCAT(head1, head2, type, field) do { \ - QUEUE_TYPEOF(type) *curelm = SLIST_FIRST(head1); \ - if (curelm == NULL) { \ - if ((SLIST_FIRST(head1) = SLIST_FIRST(head2)) != NULL) \ - SLIST_INIT(head2); \ - } else if (SLIST_FIRST(head2) != NULL) { \ - while (SLIST_NEXT(curelm, field) != NULL) \ - curelm = SLIST_NEXT(curelm, field); \ - SLIST_NEXT(curelm, field) = SLIST_FIRST(head2); \ - SLIST_INIT(head2); \ - } \ -} while (0) - -#define SLIST_EMPTY(head) ((head)->slh_first == NULL) - -#define SLIST_FIRST(head) ((head)->slh_first) - -#define SLIST_FOREACH(var, head, field) \ - for ((var) = SLIST_FIRST((head)); \ - (var); \ - (var) = SLIST_NEXT((var), field)) - -#define SLIST_FOREACH_FROM(var, head, field) \ - for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \ - (var); \ - (var) = SLIST_NEXT((var), field)) - -#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = SLIST_FIRST((head)); \ - (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define SLIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ - for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \ - (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ - for ((varp) = &SLIST_FIRST((head)); \ - ((var) = *(varp)) != NULL; \ - (varp) = &SLIST_NEXT((var), field)) - -#define SLIST_INIT(head) do { \ - SLIST_FIRST((head)) = NULL; \ -} while (0) - -#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ - SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \ - SLIST_NEXT((slistelm), field) = (elm); \ -} while (0) - -#define SLIST_INSERT_HEAD(head, elm, field) do { \ - SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \ - SLIST_FIRST((head)) = (elm); \ -} while (0) - -#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) - -#define SLIST_REMOVE(head, elm, type, field) do { \ - QMD_SAVELINK(oldnext, (elm)->field.sle_next); \ - if (SLIST_FIRST((head)) == (elm)) { \ - SLIST_REMOVE_HEAD((head), field); \ - } \ - else { \ - QUEUE_TYPEOF(type) *curelm = SLIST_FIRST(head); \ - while (SLIST_NEXT(curelm, field) != (elm)) \ - curelm = SLIST_NEXT(curelm, field); \ - SLIST_REMOVE_AFTER(curelm, field); \ - } \ - TRASHIT(*oldnext); \ -} while (0) - -#define SLIST_REMOVE_AFTER(elm, field) do { \ - SLIST_NEXT(elm, field) = \ - SLIST_NEXT(SLIST_NEXT(elm, field), field); \ -} while (0) - -#define SLIST_REMOVE_HEAD(head, field) do { \ - SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \ -} while (0) - -#define SLIST_REMOVE_PREVPTR(prevp, elm, field) do { \ - QMD_SLIST_CHECK_PREVPTR(prevp, elm); \ - *(prevp) = SLIST_NEXT(elm, field); \ - TRASHIT((elm)->field.sle_next); \ -} while (0) - -#define SLIST_SWAP(head1, head2, type) do { \ - QUEUE_TYPEOF(type) *swap_first = SLIST_FIRST(head1); \ - SLIST_FIRST(head1) = SLIST_FIRST(head2); \ - SLIST_FIRST(head2) = swap_first; \ -} while (0) - -/* - * Singly-linked Tail queue declarations. - */ -#define STAILQ_HEAD(name, type) \ -struct name { \ - struct type *stqh_first;/* first element */ \ - struct type **stqh_last;/* addr of last next element */ \ -} - -#define STAILQ_CLASS_HEAD(name, type) \ -struct name { \ - class type *stqh_first; /* first element */ \ - class type **stqh_last; /* addr of last next element */ \ -} - -#define STAILQ_HEAD_INITIALIZER(head) \ - { NULL, &(head).stqh_first } - -#define STAILQ_ENTRY(type) \ -struct { \ - struct type *stqe_next; /* next element */ \ -} - -#define STAILQ_CLASS_ENTRY(type) \ -struct { \ - class type *stqe_next; /* next element */ \ -} - -/* - * Singly-linked Tail queue functions. - */ -#define STAILQ_CONCAT(head1, head2) do { \ - if (!STAILQ_EMPTY((head2))) { \ - *(head1)->stqh_last = (head2)->stqh_first; \ - (head1)->stqh_last = (head2)->stqh_last; \ - STAILQ_INIT((head2)); \ - } \ -} while (0) - -#define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) - -#define STAILQ_FIRST(head) ((head)->stqh_first) - -#define STAILQ_FOREACH(var, head, field) \ - for((var) = STAILQ_FIRST((head)); \ - (var); \ - (var) = STAILQ_NEXT((var), field)) - -#define STAILQ_FOREACH_FROM(var, head, field) \ - for ((var) = ((var) ? (var) : STAILQ_FIRST((head))); \ - (var); \ - (var) = STAILQ_NEXT((var), field)) - -#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = STAILQ_FIRST((head)); \ - (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define STAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ - for ((var) = ((var) ? (var) : STAILQ_FIRST((head))); \ - (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define STAILQ_INIT(head) do { \ - STAILQ_FIRST((head)) = NULL; \ - (head)->stqh_last = &STAILQ_FIRST((head)); \ -} while (0) - -#define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ - if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\ - (head)->stqh_last = &STAILQ_NEXT((elm), field); \ - STAILQ_NEXT((tqelm), field) = (elm); \ -} while (0) - -#define STAILQ_INSERT_HEAD(head, elm, field) do { \ - if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \ - (head)->stqh_last = &STAILQ_NEXT((elm), field); \ - STAILQ_FIRST((head)) = (elm); \ -} while (0) - -#define STAILQ_INSERT_TAIL(head, elm, field) do { \ - STAILQ_NEXT((elm), field) = NULL; \ - *(head)->stqh_last = (elm); \ - (head)->stqh_last = &STAILQ_NEXT((elm), field); \ -} while (0) - -#define STAILQ_LAST(head, type, field) \ - (STAILQ_EMPTY((head)) ? NULL : \ - __containerof((head)->stqh_last, \ - QUEUE_TYPEOF(type), field.stqe_next)) - -#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) - -#define STAILQ_REMOVE(head, elm, type, field) do { \ - QMD_SAVELINK(oldnext, (elm)->field.stqe_next); \ - if (STAILQ_FIRST((head)) == (elm)) { \ - STAILQ_REMOVE_HEAD((head), field); \ - } \ - else { \ - QUEUE_TYPEOF(type) *curelm = STAILQ_FIRST(head); \ - while (STAILQ_NEXT(curelm, field) != (elm)) \ - curelm = STAILQ_NEXT(curelm, field); \ - STAILQ_REMOVE_AFTER(head, curelm, field); \ - } \ - TRASHIT(*oldnext); \ -} while (0) - -#define STAILQ_REMOVE_AFTER(head, elm, field) do { \ - if ((STAILQ_NEXT(elm, field) = \ - STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL) \ - (head)->stqh_last = &STAILQ_NEXT((elm), field); \ -} while (0) - -#define STAILQ_REMOVE_HEAD(head, field) do { \ - if ((STAILQ_FIRST((head)) = \ - STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \ - (head)->stqh_last = &STAILQ_FIRST((head)); \ -} while (0) - -#define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do { \ - if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL) \ - (head)->stqh_last = &STAILQ_FIRST((head)); \ -} while (0) - -#define STAILQ_SWAP(head1, head2, type) do { \ - QUEUE_TYPEOF(type) *swap_first = STAILQ_FIRST(head1); \ - QUEUE_TYPEOF(type) **swap_last = (head1)->stqh_last; \ - STAILQ_FIRST(head1) = STAILQ_FIRST(head2); \ - (head1)->stqh_last = (head2)->stqh_last; \ - STAILQ_FIRST(head2) = swap_first; \ - (head2)->stqh_last = swap_last; \ - if (STAILQ_EMPTY(head1)) \ - (head1)->stqh_last = &STAILQ_FIRST(head1); \ - if (STAILQ_EMPTY(head2)) \ - (head2)->stqh_last = &STAILQ_FIRST(head2); \ -} while (0) - - -/* - * List declarations. - */ -#define LIST_HEAD(name, type) \ -struct name { \ - struct type *lh_first; /* first element */ \ -} - -#define LIST_CLASS_HEAD(name, type) \ -struct name { \ - class type *lh_first; /* first element */ \ -} - -#define LIST_HEAD_INITIALIZER(head) \ - { NULL } - -#define LIST_ENTRY(type) \ -struct { \ - struct type *le_next; /* next element */ \ - struct type **le_prev; /* address of previous next element */ \ -} - -#define LIST_CLASS_ENTRY(type) \ -struct { \ - class type *le_next; /* next element */ \ - class type **le_prev; /* address of previous next element */ \ -} - -/* - * List functions. - */ - -#if (defined(_KERNEL) && defined(INVARIANTS)) -/* - * QMD_LIST_CHECK_HEAD(LIST_HEAD *head, LIST_ENTRY NAME) - * - * If the list is non-empty, validates that the first element of the list - * points back at 'head.' - */ -#define QMD_LIST_CHECK_HEAD(head, field) do { \ - if (LIST_FIRST((head)) != NULL && \ - LIST_FIRST((head))->field.le_prev != \ - &LIST_FIRST((head))) \ - panic("Bad list head %p first->prev != head", (head)); \ -} while (0) - -/* - * QMD_LIST_CHECK_NEXT(TYPE *elm, LIST_ENTRY NAME) - * - * If an element follows 'elm' in the list, validates that the next element - * points back at 'elm.' - */ -#define QMD_LIST_CHECK_NEXT(elm, field) do { \ - if (LIST_NEXT((elm), field) != NULL && \ - LIST_NEXT((elm), field)->field.le_prev != \ - &((elm)->field.le_next)) \ - panic("Bad link elm %p next->prev != elm", (elm)); \ -} while (0) - -/* - * QMD_LIST_CHECK_PREV(TYPE *elm, LIST_ENTRY NAME) - * - * Validates that the previous element (or head of the list) points to 'elm.' - */ -#define QMD_LIST_CHECK_PREV(elm, field) do { \ - if (*(elm)->field.le_prev != (elm)) \ - panic("Bad link elm %p prev->next != elm", (elm)); \ -} while (0) -#else -#define QMD_LIST_CHECK_HEAD(head, field) -#define QMD_LIST_CHECK_NEXT(elm, field) -#define QMD_LIST_CHECK_PREV(elm, field) -#endif /* (_KERNEL && INVARIANTS) */ - -#define LIST_CONCAT(head1, head2, type, field) do { \ - QUEUE_TYPEOF(type) *curelm = LIST_FIRST(head1); \ - if (curelm == NULL) { \ - if ((LIST_FIRST(head1) = LIST_FIRST(head2)) != NULL) { \ - LIST_FIRST(head2)->field.le_prev = \ - &LIST_FIRST((head1)); \ - LIST_INIT(head2); \ - } \ - } else if (LIST_FIRST(head2) != NULL) { \ - while (LIST_NEXT(curelm, field) != NULL) \ - curelm = LIST_NEXT(curelm, field); \ - LIST_NEXT(curelm, field) = LIST_FIRST(head2); \ - LIST_FIRST(head2)->field.le_prev = &LIST_NEXT(curelm, field); \ - LIST_INIT(head2); \ - } \ -} while (0) - -#define LIST_EMPTY(head) ((head)->lh_first == NULL) - -#define LIST_FIRST(head) ((head)->lh_first) - -#define LIST_FOREACH(var, head, field) \ - for ((var) = LIST_FIRST((head)); \ - (var); \ - (var) = LIST_NEXT((var), field)) - -#define LIST_FOREACH_FROM(var, head, field) \ - for ((var) = ((var) ? (var) : LIST_FIRST((head))); \ - (var); \ - (var) = LIST_NEXT((var), field)) - -#define LIST_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = LIST_FIRST((head)); \ - (var) && ((tvar) = LIST_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define LIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ - for ((var) = ((var) ? (var) : LIST_FIRST((head))); \ - (var) && ((tvar) = LIST_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define LIST_INIT(head) do { \ - LIST_FIRST((head)) = NULL; \ -} while (0) - -#define LIST_INSERT_AFTER(listelm, elm, field) do { \ - QMD_LIST_CHECK_NEXT(listelm, field); \ - if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\ - LIST_NEXT((listelm), field)->field.le_prev = \ - &LIST_NEXT((elm), field); \ - LIST_NEXT((listelm), field) = (elm); \ - (elm)->field.le_prev = &LIST_NEXT((listelm), field); \ -} while (0) - -#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ - QMD_LIST_CHECK_PREV(listelm, field); \ - (elm)->field.le_prev = (listelm)->field.le_prev; \ - LIST_NEXT((elm), field) = (listelm); \ - *(listelm)->field.le_prev = (elm); \ - (listelm)->field.le_prev = &LIST_NEXT((elm), field); \ -} while (0) - -#define LIST_INSERT_HEAD(head, elm, field) do { \ - QMD_LIST_CHECK_HEAD((head), field); \ - if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \ - LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\ - LIST_FIRST((head)) = (elm); \ - (elm)->field.le_prev = &LIST_FIRST((head)); \ -} while (0) - -#define LIST_NEXT(elm, field) ((elm)->field.le_next) - -#define LIST_PREV(elm, head, type, field) \ - ((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL : \ - __containerof((elm)->field.le_prev, \ - QUEUE_TYPEOF(type), field.le_next)) - -#define LIST_REMOVE(elm, field) do { \ - QMD_SAVELINK(oldnext, (elm)->field.le_next); \ - QMD_SAVELINK(oldprev, (elm)->field.le_prev); \ - QMD_LIST_CHECK_NEXT(elm, field); \ - QMD_LIST_CHECK_PREV(elm, field); \ - if (LIST_NEXT((elm), field) != NULL) \ - LIST_NEXT((elm), field)->field.le_prev = \ - (elm)->field.le_prev; \ - *(elm)->field.le_prev = LIST_NEXT((elm), field); \ - TRASHIT(*oldnext); \ - TRASHIT(*oldprev); \ -} while (0) - -#define LIST_SWAP(head1, head2, type, field) do { \ - QUEUE_TYPEOF(type) *swap_tmp = LIST_FIRST(head1); \ - LIST_FIRST((head1)) = LIST_FIRST((head2)); \ - LIST_FIRST((head2)) = swap_tmp; \ - if ((swap_tmp = LIST_FIRST((head1))) != NULL) \ - swap_tmp->field.le_prev = &LIST_FIRST((head1)); \ - if ((swap_tmp = LIST_FIRST((head2))) != NULL) \ - swap_tmp->field.le_prev = &LIST_FIRST((head2)); \ -} while (0) - -/* - * Tail queue declarations. - */ -#define TAILQ_HEAD(name, type) \ -struct name { \ - struct type *tqh_first; /* first element */ \ - struct type **tqh_last; /* addr of last next element */ \ - TRACEBUF \ -} - -#define TAILQ_CLASS_HEAD(name, type) \ -struct name { \ - class type *tqh_first; /* first element */ \ - class type **tqh_last; /* addr of last next element */ \ - TRACEBUF \ -} - -#define TAILQ_HEAD_INITIALIZER(head) \ - { NULL, &(head).tqh_first, TRACEBUF_INITIALIZER } - -#define TAILQ_ENTRY(type) \ -struct { \ - struct type *tqe_next; /* next element */ \ - struct type **tqe_prev; /* address of previous next element */ \ - TRACEBUF \ -} - -#define TAILQ_CLASS_ENTRY(type) \ -struct { \ - class type *tqe_next; /* next element */ \ - class type **tqe_prev; /* address of previous next element */ \ - TRACEBUF \ -} - -/* - * Tail queue functions. - */ -#if (defined(_KERNEL) && defined(INVARIANTS)) -/* - * QMD_TAILQ_CHECK_HEAD(TAILQ_HEAD *head, TAILQ_ENTRY NAME) - * - * If the tailq is non-empty, validates that the first element of the tailq - * points back at 'head.' - */ -#define QMD_TAILQ_CHECK_HEAD(head, field) do { \ - if (!TAILQ_EMPTY(head) && \ - TAILQ_FIRST((head))->field.tqe_prev != \ - &TAILQ_FIRST((head))) \ - panic("Bad tailq head %p first->prev != head", (head)); \ -} while (0) - -/* - * QMD_TAILQ_CHECK_TAIL(TAILQ_HEAD *head, TAILQ_ENTRY NAME) - * - * Validates that the tail of the tailq is a pointer to pointer to NULL. - */ -#define QMD_TAILQ_CHECK_TAIL(head, field) do { \ - if (*(head)->tqh_last != NULL) \ - panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); \ -} while (0) - -/* - * QMD_TAILQ_CHECK_NEXT(TYPE *elm, TAILQ_ENTRY NAME) - * - * If an element follows 'elm' in the tailq, validates that the next element - * points back at 'elm.' - */ -#define QMD_TAILQ_CHECK_NEXT(elm, field) do { \ - if (TAILQ_NEXT((elm), field) != NULL && \ - TAILQ_NEXT((elm), field)->field.tqe_prev != \ - &((elm)->field.tqe_next)) \ - panic("Bad link elm %p next->prev != elm", (elm)); \ -} while (0) - -/* - * QMD_TAILQ_CHECK_PREV(TYPE *elm, TAILQ_ENTRY NAME) - * - * Validates that the previous element (or head of the tailq) points to 'elm.' - */ -#define QMD_TAILQ_CHECK_PREV(elm, field) do { \ - if (*(elm)->field.tqe_prev != (elm)) \ - panic("Bad link elm %p prev->next != elm", (elm)); \ -} while (0) -#else -#define QMD_TAILQ_CHECK_HEAD(head, field) -#define QMD_TAILQ_CHECK_TAIL(head, headname) -#define QMD_TAILQ_CHECK_NEXT(elm, field) -#define QMD_TAILQ_CHECK_PREV(elm, field) -#endif /* (_KERNEL && INVARIANTS) */ - -#define TAILQ_CONCAT(head1, head2, field) do { \ - if (!TAILQ_EMPTY(head2)) { \ - *(head1)->tqh_last = (head2)->tqh_first; \ - (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \ - (head1)->tqh_last = (head2)->tqh_last; \ - TAILQ_INIT((head2)); \ - QMD_TRACE_HEAD(head1); \ - QMD_TRACE_HEAD(head2); \ - } \ -} while (0) - -#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) - -#define TAILQ_FIRST(head) ((head)->tqh_first) - -#define TAILQ_FOREACH(var, head, field) \ - for ((var) = TAILQ_FIRST((head)); \ - (var); \ - (var) = TAILQ_NEXT((var), field)) - -#define TAILQ_FOREACH_FROM(var, head, field) \ - for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \ - (var); \ - (var) = TAILQ_NEXT((var), field)) - -#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = TAILQ_FIRST((head)); \ - (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define TAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ - for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \ - (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ - for ((var) = TAILQ_LAST((head), headname); \ - (var); \ - (var) = TAILQ_PREV((var), headname, field)) - -#define TAILQ_FOREACH_REVERSE_FROM(var, head, headname, field) \ - for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \ - (var); \ - (var) = TAILQ_PREV((var), headname, field)) - -#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ - for ((var) = TAILQ_LAST((head), headname); \ - (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ - (var) = (tvar)) - -#define TAILQ_FOREACH_REVERSE_FROM_SAFE(var, head, headname, field, tvar) \ - for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \ - (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ - (var) = (tvar)) - -#define TAILQ_INIT(head) do { \ - TAILQ_FIRST((head)) = NULL; \ - (head)->tqh_last = &TAILQ_FIRST((head)); \ - QMD_TRACE_HEAD(head); \ -} while (0) - -#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ - QMD_TAILQ_CHECK_NEXT(listelm, field); \ - if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\ - TAILQ_NEXT((elm), field)->field.tqe_prev = \ - &TAILQ_NEXT((elm), field); \ - else { \ - (head)->tqh_last = &TAILQ_NEXT((elm), field); \ - QMD_TRACE_HEAD(head); \ - } \ - TAILQ_NEXT((listelm), field) = (elm); \ - (elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field); \ - QMD_TRACE_ELEM(&(elm)->field); \ - QMD_TRACE_ELEM(&(listelm)->field); \ -} while (0) - -#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ - QMD_TAILQ_CHECK_PREV(listelm, field); \ - (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ - TAILQ_NEXT((elm), field) = (listelm); \ - *(listelm)->field.tqe_prev = (elm); \ - (listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field); \ - QMD_TRACE_ELEM(&(elm)->field); \ - QMD_TRACE_ELEM(&(listelm)->field); \ -} while (0) - -#define TAILQ_INSERT_HEAD(head, elm, field) do { \ - QMD_TAILQ_CHECK_HEAD(head, field); \ - if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \ - TAILQ_FIRST((head))->field.tqe_prev = \ - &TAILQ_NEXT((elm), field); \ - else \ - (head)->tqh_last = &TAILQ_NEXT((elm), field); \ - TAILQ_FIRST((head)) = (elm); \ - (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \ - QMD_TRACE_HEAD(head); \ - QMD_TRACE_ELEM(&(elm)->field); \ -} while (0) - -#define TAILQ_INSERT_TAIL(head, elm, field) do { \ - QMD_TAILQ_CHECK_TAIL(head, field); \ - TAILQ_NEXT((elm), field) = NULL; \ - (elm)->field.tqe_prev = (head)->tqh_last; \ - *(head)->tqh_last = (elm); \ - (head)->tqh_last = &TAILQ_NEXT((elm), field); \ - QMD_TRACE_HEAD(head); \ - QMD_TRACE_ELEM(&(elm)->field); \ -} while (0) - -#define TAILQ_LAST(head, headname) \ - (*(((struct headname *)((head)->tqh_last))->tqh_last)) - -/* - * The FAST function is fast in that it causes no data access other - * then the access to the head. The standard LAST function above - * will cause a data access of both the element you want and - * the previous element. FAST is very useful for instances when - * you may want to prefetch the last data element. - */ -#define TAILQ_LAST_FAST(head, type, field) \ - (TAILQ_EMPTY(head) ? NULL : __containerof((head)->tqh_last, QUEUE_TYPEOF(type), field.tqe_next)) - -#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) - -#define TAILQ_PREV(elm, headname, field) \ - (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) - -#define TAILQ_REMOVE(head, elm, field) do { \ - QMD_SAVELINK(oldnext, (elm)->field.tqe_next); \ - QMD_SAVELINK(oldprev, (elm)->field.tqe_prev); \ - QMD_TAILQ_CHECK_NEXT(elm, field); \ - QMD_TAILQ_CHECK_PREV(elm, field); \ - if ((TAILQ_NEXT((elm), field)) != NULL) \ - TAILQ_NEXT((elm), field)->field.tqe_prev = \ - (elm)->field.tqe_prev; \ - else { \ - (head)->tqh_last = (elm)->field.tqe_prev; \ - QMD_TRACE_HEAD(head); \ - } \ - *(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \ - TRASHIT(*oldnext); \ - TRASHIT(*oldprev); \ - QMD_TRACE_ELEM(&(elm)->field); \ -} while (0) - -#define TAILQ_SWAP(head1, head2, type, field) do { \ - QUEUE_TYPEOF(type) *swap_first = (head1)->tqh_first; \ - QUEUE_TYPEOF(type) **swap_last = (head1)->tqh_last; \ - (head1)->tqh_first = (head2)->tqh_first; \ - (head1)->tqh_last = (head2)->tqh_last; \ - (head2)->tqh_first = swap_first; \ - (head2)->tqh_last = swap_last; \ - if ((swap_first = (head1)->tqh_first) != NULL) \ - swap_first->field.tqe_prev = &(head1)->tqh_first; \ - else \ - (head1)->tqh_last = &(head1)->tqh_first; \ - if ((swap_first = (head2)->tqh_first) != NULL) \ - swap_first->field.tqe_prev = &(head2)->tqh_first; \ - else \ - (head2)->tqh_last = &(head2)->tqh_first; \ -} while (0) - -#ifdef _KERNEL - -/* - * XXX insque() and remque() are an old way of handling certain queues. - * They bogusly assumes that all queue heads look alike. - */ - -struct quehead { - struct quehead *qh_link; - struct quehead *qh_rlink; -}; - -#ifdef __GNUC__ - -static __inline void -insque(void *a, void *b) -{ - struct quehead *element = (struct quehead *)a, - *head = (struct quehead *)b; - - element->qh_link = head->qh_link; - element->qh_rlink = head; - head->qh_link = element; - element->qh_link->qh_rlink = element; -} - -static __inline void -remque(void *a) -{ - struct quehead *element = (struct quehead *)a; - - element->qh_link->qh_rlink = element->qh_rlink; - element->qh_rlink->qh_link = element->qh_link; - element->qh_rlink = 0; -} - -#else /* !__GNUC__ */ - -void insque(void *a, void *b); -void remque(void *a); - -#endif /* __GNUC__ */ - -#endif /* _KERNEL */ - -#endif /* !_SYS_QUEUE_H_ */ diff --git a/lib/include/sys/reent.h b/lib/include/sys/reent.h deleted file mode 100644 index c71f75d..0000000 --- a/lib/include/sys/reent.h +++ /dev/null @@ -1,896 +0,0 @@ -/* This header file provides the reentrancy. */ - -/* WARNING: All identifiers here must begin with an underscore. This file is - included by stdio.h and others and we therefore must only use identifiers - in the namespace allotted to us. */ - -#ifndef _SYS_REENT_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS_REENT_H_ - -#include <_ansi.h> -#include -#include - -#define _NULL 0 - -#ifndef __Long -#if __LONG_MAX__ == 2147483647L -#define __Long long -typedef unsigned __Long __ULong; -#elif __INT_MAX__ == 2147483647 -#define __Long int -typedef unsigned __Long __ULong; -#endif -#endif - -#if !defined( __Long) -#include -#endif - -#ifndef __machine_flock_t_defined -#include -typedef _LOCK_RECURSIVE_T _flock_t; -#endif - -#ifndef __Long -#define __Long __int32_t -typedef __uint32_t __ULong; -#endif - -struct _reent; - -struct __locale_t; - -/* - * If _REENT_SMALL is defined, we make struct _reent as small as possible, - * by having nearly everything possible allocated at first use. - */ - -struct _Bigint -{ - struct _Bigint *_next; - int _k, _maxwds, _sign, _wds; - __ULong _x[1]; -}; - -/* needed by reentrant structure */ -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; -}; - -/* - * atexit() support. - */ - -#define _ATEXIT_SIZE 32 /* must be at least 32 to guarantee ANSI conformance */ - -struct _on_exit_args { - void * _fnargs[_ATEXIT_SIZE]; /* user fn args */ - void * _dso_handle[_ATEXIT_SIZE]; - /* Bitmask is set if user function takes arguments. */ - __ULong _fntypes; /* type of exit routine - - Must have at least _ATEXIT_SIZE bits */ - /* Bitmask is set if function was registered via __cxa_atexit. */ - __ULong _is_cxa; -}; - -#ifdef _REENT_SMALL -struct _atexit { - struct _atexit *_next; /* next in list */ - int _ind; /* next index in this table */ - void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */ - struct _on_exit_args * _on_exit_args_ptr; -}; -# define _ATEXIT_INIT {_NULL, 0, {_NULL}, _NULL} -#else -struct _atexit { - struct _atexit *_next; /* next in list */ - int _ind; /* next index in this table */ - /* Some entries may already have been called, and will be NULL. */ - void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */ - struct _on_exit_args _on_exit_args; -}; -# define _ATEXIT_INIT {_NULL, 0, {_NULL}, {{_NULL}, {_NULL}, 0, 0}} -#endif - -/* - * Stdio buffers. - * - * This and __FILE are defined here because we need them for struct _reent, - * but we don't want stdio.h included when stdlib.h is. - */ - -struct __sbuf { - unsigned char *_base; - int _size; -}; - -/* - * Stdio state variables. - * - * The following always hold: - * - * if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR), - * _lbfsize is -_bf._size, else _lbfsize is 0 - * if _flags&__SRD, _w is 0 - * if _flags&__SWR, _r is 0 - * - * This ensures that the getc and putc macros (or inline functions) never - * try to write or read from a file that is in `read' or `write' mode. - * (Moreover, they can, and do, automatically switch from read mode to - * write mode, and back, on "r+" and "w+" files.) - * - * _lbfsize is used only to make the inline line-buffered output stream - * code as compact as possible. - * - * _ub, _up, and _ur are used when ungetc() pushes back more characters - * than fit in the current _bf, or when ungetc() pushes back a character - * that does not match the previous one in _bf. When this happens, - * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff - * _ub._base!=NULL) and _up and _ur save the current values of _p and _r. - */ - -#define _REENT_SMALL_CHECK_INIT(ptr) /* nothing */ - -/* Cygwin must use __sFILE64 for backward compatibility, even though - it's not defining __LARGE64_FILES anymore. To make sure that __sFILE - is never defined, disable it here explicitely. */ -#ifndef __CYGWIN__ - -struct __sFILE { - unsigned char *_p; /* current position in (some) buffer */ - int _r; /* read space left for getc() */ - int _w; /* write space left for putc() */ - short _flags; /* flags, below; this FILE is free if 0 */ - short _file; /* fileno, if Unix descriptor, else -1 */ - struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */ - int _lbfsize; /* 0 or -_bf._size, for inline putc */ - -#ifdef _REENT_SMALL - struct _reent *_data; -#endif - - /* operations */ - void * _cookie; /* cookie passed to io functions */ - - _READ_WRITE_RETURN_TYPE (*_read) (struct _reent *, void *, - char *, _READ_WRITE_BUFSIZE_TYPE); - _READ_WRITE_RETURN_TYPE (*_write) (struct _reent *, void *, - const char *, - _READ_WRITE_BUFSIZE_TYPE); - _fpos_t (*_seek) (struct _reent *, void *, _fpos_t, int); - int (*_close) (struct _reent *, void *); - - /* separate buffer for long sequences of ungetc() */ - struct __sbuf _ub; /* ungetc buffer */ - unsigned char *_up; /* saved _p when _p is doing ungetc data */ - int _ur; /* saved _r when _r is counting ungetc data */ - - /* tricks to meet minimum requirements even when malloc() fails */ - unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */ - unsigned char _nbuf[1]; /* guarantee a getc() buffer */ - - /* separate buffer for fgetline() when line crosses buffer boundary */ - struct __sbuf _lb; /* buffer for fgetline() */ - - /* Unix stdio files get aligned to block boundaries on fseek() */ - int _blksize; /* stat.st_blksize (may be != _bf._size) */ - _off_t _offset; /* current lseek offset */ - -#ifndef _REENT_SMALL - struct _reent *_data; /* Here for binary compatibility? Remove? */ -#endif - -#ifndef __SINGLE_THREAD__ - _flock_t _lock; /* for thread-safety locking */ -#endif - _mbstate_t _mbstate; /* for wide char stdio functions. */ - int _flags2; /* for future use */ -}; - -#endif /* !__CYGWIN__ */ - -#ifdef __CUSTOM_FILE_IO__ - -/* Get custom _FILE definition. */ -#include - -#else /* !__CUSTOM_FILE_IO__ */ -/* Cygwin must use __sFILE64 for backward compatibility, even though - it's not defining __LARGE64_FILES anymore. It also has to make - sure the name is the same to satisfy C++ name mangling. Overloading - _fpos64_t just fixes a build problem. The _seek64 function is - actually never used without __LARGE64_FILES being defined. */ -#if defined (__LARGE64_FILES) || defined (__CYGWIN__) -#ifdef __CYGWIN__ -#define _fpos64_t _fpos_t -#endif - -struct __sFILE64 { - unsigned char *_p; /* current position in (some) buffer */ - int _r; /* read space left for getc() */ - int _w; /* write space left for putc() */ - short _flags; /* flags, below; this FILE is free if 0 */ - short _file; /* fileno, if Unix descriptor, else -1 */ - struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */ - int _lbfsize; /* 0 or -_bf._size, for inline putc */ - - struct _reent *_data; - - /* operations */ - void * _cookie; /* cookie passed to io functions */ - - _READ_WRITE_RETURN_TYPE (*_read) (struct _reent *, void *, - char *, _READ_WRITE_BUFSIZE_TYPE); - _READ_WRITE_RETURN_TYPE (*_write) (struct _reent *, void *, - const char *, - _READ_WRITE_BUFSIZE_TYPE); - _fpos_t (*_seek) (struct _reent *, void *, _fpos_t, int); - int (*_close) (struct _reent *, void *); - - /* separate buffer for long sequences of ungetc() */ - struct __sbuf _ub; /* ungetc buffer */ - unsigned char *_up; /* saved _p when _p is doing ungetc data */ - int _ur; /* saved _r when _r is counting ungetc data */ - - /* tricks to meet minimum requirements even when malloc() fails */ - unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */ - unsigned char _nbuf[1]; /* guarantee a getc() buffer */ - - /* separate buffer for fgetline() when line crosses buffer boundary */ - struct __sbuf _lb; /* buffer for fgetline() */ - - /* Unix stdio files get aligned to block boundaries on fseek() */ - int _blksize; /* stat.st_blksize (may be != _bf._size) */ - int _flags2; /* for future use */ - - _off64_t _offset; /* current lseek offset */ - _fpos64_t (*_seek64) (struct _reent *, void *, _fpos64_t, int); - -#ifndef __SINGLE_THREAD__ - _flock_t _lock; /* for thread-safety locking */ -#endif - _mbstate_t _mbstate; /* for wide char stdio functions. */ -}; -typedef struct __sFILE64 __FILE; -#else -typedef struct __sFILE __FILE; -#endif /* __LARGE64_FILES */ -#endif /* !__CUSTOM_FILE_IO__ */ - -extern __FILE __sf[3]; - -struct _glue -{ - struct _glue *_next; - int _niobs; - __FILE *_iobs; -}; - -extern struct _glue __sglue; - -/* - * rand48 family support - * - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ -#define _RAND48_SEED_0 (0x330e) -#define _RAND48_SEED_1 (0xabcd) -#define _RAND48_SEED_2 (0x1234) -#define _RAND48_MULT_0 (0xe66d) -#define _RAND48_MULT_1 (0xdeec) -#define _RAND48_MULT_2 (0x0005) -#define _RAND48_ADD (0x000b) -struct _rand48 { - unsigned short _seed[3]; - unsigned short _mult[3]; - unsigned short _add; -#ifdef _REENT_SMALL - /* Put this in here as well, for good luck. */ - __extension__ unsigned long long _rand_next; -#endif -}; - -/* How big the some arrays are. */ -#define _REENT_EMERGENCY_SIZE 25 -#define _REENT_ASCTIME_SIZE 26 -#define _REENT_SIGNAL_SIZE 24 - -#ifndef _REENT_THREAD_LOCAL - -#ifdef _REENT_BACKWARD_BINARY_COMPAT -#define _REENT_INIT_RESERVED_0 0, -#define _REENT_INIT_RESERVED_1 0, -#define _REENT_INIT_RESERVED_2 0, -#define _REENT_INIT_RESERVED_6_7 _NULL, _ATEXIT_INIT, -#define _REENT_INIT_RESERVED_8 {_NULL, 0, _NULL}, -#else -#define _REENT_INIT_RESERVED_0 /* Nothing to initialize */ -#define _REENT_INIT_RESERVED_1 /* Nothing to initialize */ -#define _REENT_INIT_RESERVED_2 /* Nothing to initialize */ -#define _REENT_INIT_RESERVED_6_7 /* Nothing to initialize */ -#define _REENT_INIT_RESERVED_8 /* Nothing to initialize */ -#endif - -/* - * struct _reent - * - * This structure contains the thread-local objects needed by the library. - * It's raison d'etre is to facilitate threads by making all library routines - * reentrant. The exit handler support and FILE maintenance use dedicated - * global objects which are not included in this structure. - */ - -#ifdef _REENT_SMALL - -struct _mprec -{ - /* used by mprec routines */ - struct _Bigint *_result; - int _result_k; - struct _Bigint *_p5s; - struct _Bigint **_freelist; -}; - - -struct _misc_reent -{ - /* miscellaneous reentrant data */ - char *_strtok_last; - _mbstate_t _mblen_state; - _mbstate_t _wctomb_state; - _mbstate_t _mbtowc_state; - char _l64a_buf[8]; - int _getdate_err; - _mbstate_t _mbrlen_state; - _mbstate_t _mbrtowc_state; - _mbstate_t _mbsrtowcs_state; - _mbstate_t _wcrtomb_state; - _mbstate_t _wcsrtombs_state; -}; - -/* This version of _reent is laid out with "int"s in pairs, to help - * ports with 16-bit int's but 32-bit pointers, align nicely. */ -struct _reent -{ - /* As an exception to the above put _errno first for binary - compatibility with non _REENT_SMALL targets. */ - int _errno; /* local copy of errno */ - - /* FILE is a big struct and may change over time. To try to achieve binary - compatibility with future versions, put stdin,stdout,stderr here. - These are pointers into member __sf defined below. */ - __FILE *_stdin, *_stdout, *_stderr; /* XXX */ - - int _inc; /* used by tmpnam */ - - char *_emergency; - -#ifdef _REENT_BACKWARD_BINARY_COMPAT - int _reserved_0; - int _reserved_1; -#endif - struct __locale_t *_locale;/* per-thread locale */ - - struct _mprec *_mp; - - void (*__cleanup) (struct _reent *); - - int _gamma_signgam; - - /* used by some fp conversion routines */ - int _cvtlen; /* should be size_t */ - char *_cvtbuf; - - struct _rand48 *_r48; - struct __tm *_localtime_buf; - char *_asctime_buf; - - /* signal info */ - void (** _sig_func)(int); - -#ifdef _REENT_BACKWARD_BINARY_COMPAT - struct _atexit *_reserved_6; - struct _atexit _reserved_7; - struct _glue _reserved_8; -#endif - - __FILE *__sf; /* file descriptors */ - struct _misc_reent *_misc; /* strtok, multibyte states */ - char *_signal_buf; /* strsignal */ -}; - -# define _REENT_INIT(var) \ - { 0, \ - &__sf[0], \ - &__sf[1], \ - &__sf[2], \ - 0, \ - _NULL, \ - _REENT_INIT_RESERVED_0 \ - _REENT_INIT_RESERVED_1 \ - _NULL, \ - _NULL, \ - _NULL, \ - 0, \ - 0, \ - _NULL, \ - _NULL, \ - _NULL, \ - _NULL, \ - _NULL, \ - _REENT_INIT_RESERVED_6_7 \ - _REENT_INIT_RESERVED_8 \ - _NULL, \ - _NULL, \ - _NULL \ - } - -#define _REENT_INIT_PTR_ZEROED(var) \ - { (var)->_stdin = &__sf[0]; \ - (var)->_stdout = &__sf[1]; \ - (var)->_stderr = &__sf[2]; \ - } - -/* Specify how to handle reent_check malloc failures. */ -#ifdef _REENT_CHECK_VERIFY -#include -#define __reent_assert(x) ((x) ? (void)0 : __assert_func(__FILE__, __LINE__, (char *)0, "REENT malloc succeeded")) -#else -#define __reent_assert(x) ((void)0) -#endif - -#ifdef __CUSTOM_FILE_IO__ -#error Custom FILE I/O and _REENT_SMALL not currently supported. -#endif - -/* Generic _REENT check macro. */ -#define _REENT_CHECK(var, what, type, size, init) do { \ - struct _reent *_r = (var); \ - if (_r->what == NULL) { \ - _r->what = (type)malloc(size); \ - __reent_assert(_r->what); \ - init; \ - } \ -} while (0) - -#define _REENT_CHECK_TM(var) \ - _REENT_CHECK(var, _localtime_buf, struct __tm *, sizeof *((var)->_localtime_buf), \ - /* nothing */) - -#define _REENT_CHECK_ASCTIME_BUF(var) \ - _REENT_CHECK(var, _asctime_buf, char *, _REENT_ASCTIME_SIZE, \ - memset((var)->_asctime_buf, 0, _REENT_ASCTIME_SIZE)) - -/* Handle the dynamically allocated rand48 structure. */ -#define _REENT_INIT_RAND48(var) do { \ - struct _reent *_r = (var); \ - _r->_r48->_seed[0] = _RAND48_SEED_0; \ - _r->_r48->_seed[1] = _RAND48_SEED_1; \ - _r->_r48->_seed[2] = _RAND48_SEED_2; \ - _r->_r48->_mult[0] = _RAND48_MULT_0; \ - _r->_r48->_mult[1] = _RAND48_MULT_1; \ - _r->_r48->_mult[2] = _RAND48_MULT_2; \ - _r->_r48->_add = _RAND48_ADD; \ - _r->_r48->_rand_next = 1; \ -} while (0) -#define _REENT_CHECK_RAND48(var) \ - _REENT_CHECK(var, _r48, struct _rand48 *, sizeof *((var)->_r48), _REENT_INIT_RAND48((var))) - -#define _REENT_INIT_MP(var) do { \ - struct _reent *_r = (var); \ - _r->_mp->_result_k = 0; \ - _r->_mp->_result = _r->_mp->_p5s = _NULL; \ - _r->_mp->_freelist = _NULL; \ -} while (0) -#define _REENT_CHECK_MP(var) \ - _REENT_CHECK(var, _mp, struct _mprec *, sizeof *((var)->_mp), _REENT_INIT_MP(var)) - -#define _REENT_CHECK_EMERGENCY(var) \ - _REENT_CHECK(var, _emergency, char *, _REENT_EMERGENCY_SIZE, /* nothing */) - -#define _REENT_INIT_MISC(var) do { \ - struct _reent *_r = (var); \ - _r->_misc->_strtok_last = _NULL; \ - _r->_misc->_mblen_state.__count = 0; \ - _r->_misc->_mblen_state.__value.__wch = 0; \ - _r->_misc->_wctomb_state.__count = 0; \ - _r->_misc->_wctomb_state.__value.__wch = 0; \ - _r->_misc->_mbtowc_state.__count = 0; \ - _r->_misc->_mbtowc_state.__value.__wch = 0; \ - _r->_misc->_mbrlen_state.__count = 0; \ - _r->_misc->_mbrlen_state.__value.__wch = 0; \ - _r->_misc->_mbrtowc_state.__count = 0; \ - _r->_misc->_mbrtowc_state.__value.__wch = 0; \ - _r->_misc->_mbsrtowcs_state.__count = 0; \ - _r->_misc->_mbsrtowcs_state.__value.__wch = 0; \ - _r->_misc->_wcrtomb_state.__count = 0; \ - _r->_misc->_wcrtomb_state.__value.__wch = 0; \ - _r->_misc->_wcsrtombs_state.__count = 0; \ - _r->_misc->_wcsrtombs_state.__value.__wch = 0; \ - _r->_misc->_l64a_buf[0] = '\0'; \ - _r->_misc->_getdate_err = 0; \ -} while (0) -#define _REENT_CHECK_MISC(var) \ - _REENT_CHECK(var, _misc, struct _misc_reent *, sizeof *((var)->_misc), _REENT_INIT_MISC(var)) - -#define _REENT_CHECK_SIGNAL_BUF(var) \ - _REENT_CHECK(var, _signal_buf, char *, _REENT_SIGNAL_SIZE, /* nothing */) - -#define _REENT_SIGNGAM(ptr) ((ptr)->_gamma_signgam) -#define _REENT_RAND_NEXT(ptr) ((ptr)->_r48->_rand_next) -#define _REENT_RAND48_SEED(ptr) ((ptr)->_r48->_seed) -#define _REENT_RAND48_MULT(ptr) ((ptr)->_r48->_mult) -#define _REENT_RAND48_ADD(ptr) ((ptr)->_r48->_add) -#define _REENT_MP_RESULT(ptr) ((ptr)->_mp->_result) -#define _REENT_MP_RESULT_K(ptr) ((ptr)->_mp->_result_k) -#define _REENT_MP_P5S(ptr) ((ptr)->_mp->_p5s) -#define _REENT_MP_FREELIST(ptr) ((ptr)->_mp->_freelist) -#define _REENT_ASCTIME_BUF(ptr) ((ptr)->_asctime_buf) -#define _REENT_TM(ptr) ((ptr)->_localtime_buf) -#define _REENT_STRTOK_LAST(ptr) ((ptr)->_misc->_strtok_last) -#define _REENT_MBLEN_STATE(ptr) ((ptr)->_misc->_mblen_state) -#define _REENT_MBTOWC_STATE(ptr)((ptr)->_misc->_mbtowc_state) -#define _REENT_WCTOMB_STATE(ptr)((ptr)->_misc->_wctomb_state) -#define _REENT_MBRLEN_STATE(ptr) ((ptr)->_misc->_mbrlen_state) -#define _REENT_MBRTOWC_STATE(ptr) ((ptr)->_misc->_mbrtowc_state) -#define _REENT_MBSRTOWCS_STATE(ptr) ((ptr)->_misc->_mbsrtowcs_state) -#define _REENT_WCRTOMB_STATE(ptr) ((ptr)->_misc->_wcrtomb_state) -#define _REENT_WCSRTOMBS_STATE(ptr) ((ptr)->_misc->_wcsrtombs_state) -#define _REENT_L64A_BUF(ptr) ((ptr)->_misc->_l64a_buf) -#define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_misc->_getdate_err)) -#define _REENT_SIGNAL_BUF(ptr) ((ptr)->_signal_buf) - -#else /* !_REENT_SMALL */ - -struct _reent -{ - int _errno; /* local copy of errno */ - - /* FILE is a big struct and may change over time. To try to achieve binary - compatibility with future versions, put stdin,stdout,stderr here. - These are pointers into member __sf defined below. */ - __FILE *_stdin, *_stdout, *_stderr; - - int _inc; /* used by tmpnam */ - char _emergency[_REENT_EMERGENCY_SIZE]; - -#ifdef _REENT_BACKWARD_BINARY_COMPAT - int _reserved_1; -#endif - struct __locale_t *_locale;/* per-thread locale */ - -#ifdef _REENT_BACKWARD_BINARY_COMPAT - int _reserved_0; -#endif - - void (*__cleanup) (struct _reent *); - - /* used by mprec routines */ - struct _Bigint *_result; - int _result_k; - struct _Bigint *_p5s; - struct _Bigint **_freelist; - - /* used by some fp conversion routines */ - int _cvtlen; /* should be size_t */ - char *_cvtbuf; - - union - { - struct - { -#ifdef _REENT_BACKWARD_BINARY_COMPAT - unsigned int _reserved_2; -#endif - char * _strtok_last; - char _asctime_buf[_REENT_ASCTIME_SIZE]; - struct __tm _localtime_buf; - int _gamma_signgam; - __extension__ unsigned long long _rand_next; - struct _rand48 _r48; - _mbstate_t _mblen_state; - _mbstate_t _mbtowc_state; - _mbstate_t _wctomb_state; - char _l64a_buf[8]; - char _signal_buf[_REENT_SIGNAL_SIZE]; - int _getdate_err; - _mbstate_t _mbrlen_state; - _mbstate_t _mbrtowc_state; - _mbstate_t _mbsrtowcs_state; - _mbstate_t _wcrtomb_state; - _mbstate_t _wcsrtombs_state; - int _h_errno; - } _reent; -#ifdef _REENT_BACKWARD_BINARY_COMPAT - struct - { - unsigned char * _reserved_3[30]; - unsigned int _reserved_4[30]; - } _reserved_5; -#endif - } _new; - -#ifdef _REENT_BACKWARD_BINARY_COMPAT - struct _atexit *_reserved_6; - struct _atexit _reserved_7; -#endif - - /* signal info */ - void (**_sig_func)(int); -}; - -#define _REENT_INIT(var) \ - { 0, \ - &__sf[0], \ - &__sf[1], \ - &__sf[2], \ - 0, \ - "", \ - _REENT_INIT_RESERVED_1 \ - _NULL, \ - _REENT_INIT_RESERVED_0 \ - _NULL, \ - _NULL, \ - 0, \ - _NULL, \ - _NULL, \ - 0, \ - _NULL, \ - { \ - { \ - _REENT_INIT_RESERVED_2 \ - _NULL, \ - "", \ - {0, 0, 0, 0, 0, 0, 0, 0, 0}, \ - 0, \ - 1, \ - { \ - {_RAND48_SEED_0, _RAND48_SEED_1, _RAND48_SEED_2}, \ - {_RAND48_MULT_0, _RAND48_MULT_1, _RAND48_MULT_2}, \ - _RAND48_ADD \ - }, \ - {0, {0}}, \ - {0, {0}}, \ - {0, {0}}, \ - "", \ - "", \ - 0, \ - {0, {0}}, \ - {0, {0}}, \ - {0, {0}}, \ - {0, {0}}, \ - {0, {0}} \ - } \ - }, \ - _REENT_INIT_RESERVED_6_7 \ - _NULL \ - } - -#define _REENT_INIT_PTR_ZEROED(var) \ - { (var)->_stdin = &__sf[0]; \ - (var)->_stdout = &__sf[1]; \ - (var)->_stderr = &__sf[2]; \ - (var)->_new._reent._rand_next = 1; \ - (var)->_new._reent._r48._seed[0] = _RAND48_SEED_0; \ - (var)->_new._reent._r48._seed[1] = _RAND48_SEED_1; \ - (var)->_new._reent._r48._seed[2] = _RAND48_SEED_2; \ - (var)->_new._reent._r48._mult[0] = _RAND48_MULT_0; \ - (var)->_new._reent._r48._mult[1] = _RAND48_MULT_1; \ - (var)->_new._reent._r48._mult[2] = _RAND48_MULT_2; \ - (var)->_new._reent._r48._add = _RAND48_ADD; \ - } - -#define _REENT_CHECK_RAND48(ptr) /* nothing */ -#define _REENT_CHECK_MP(ptr) /* nothing */ -#define _REENT_CHECK_TM(ptr) /* nothing */ -#define _REENT_CHECK_ASCTIME_BUF(ptr) /* nothing */ -#define _REENT_CHECK_EMERGENCY(ptr) /* nothing */ -#define _REENT_CHECK_MISC(ptr) /* nothing */ -#define _REENT_CHECK_SIGNAL_BUF(ptr) /* nothing */ - -#define _REENT_SIGNGAM(ptr) ((ptr)->_new._reent._gamma_signgam) -#define _REENT_RAND_NEXT(ptr) ((ptr)->_new._reent._rand_next) -#define _REENT_RAND48_SEED(ptr) ((ptr)->_new._reent._r48._seed) -#define _REENT_RAND48_MULT(ptr) ((ptr)->_new._reent._r48._mult) -#define _REENT_RAND48_ADD(ptr) ((ptr)->_new._reent._r48._add) -#define _REENT_MP_RESULT(ptr) ((ptr)->_result) -#define _REENT_MP_RESULT_K(ptr) ((ptr)->_result_k) -#define _REENT_MP_P5S(ptr) ((ptr)->_p5s) -#define _REENT_MP_FREELIST(ptr) ((ptr)->_freelist) -#define _REENT_ASCTIME_BUF(ptr) ((ptr)->_new._reent._asctime_buf) -#define _REENT_TM(ptr) (&(ptr)->_new._reent._localtime_buf) -#define _REENT_STRTOK_LAST(ptr) ((ptr)->_new._reent._strtok_last) -#define _REENT_MBLEN_STATE(ptr) ((ptr)->_new._reent._mblen_state) -#define _REENT_MBTOWC_STATE(ptr)((ptr)->_new._reent._mbtowc_state) -#define _REENT_WCTOMB_STATE(ptr)((ptr)->_new._reent._wctomb_state) -#define _REENT_MBRLEN_STATE(ptr)((ptr)->_new._reent._mbrlen_state) -#define _REENT_MBRTOWC_STATE(ptr)((ptr)->_new._reent._mbrtowc_state) -#define _REENT_MBSRTOWCS_STATE(ptr)((ptr)->_new._reent._mbsrtowcs_state) -#define _REENT_WCRTOMB_STATE(ptr)((ptr)->_new._reent._wcrtomb_state) -#define _REENT_WCSRTOMBS_STATE(ptr)((ptr)->_new._reent._wcsrtombs_state) -#define _REENT_L64A_BUF(ptr) ((ptr)->_new._reent._l64a_buf) -#define _REENT_SIGNAL_BUF(ptr) ((ptr)->_new._reent._signal_buf) -#define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_new._reent._getdate_err)) - -#endif /* !_REENT_SMALL */ - -#define _REENT_CLEANUP(_ptr) ((_ptr)->__cleanup) -#define _REENT_CVTBUF(_ptr) ((_ptr)->_cvtbuf) -#define _REENT_CVTLEN(_ptr) ((_ptr)->_cvtlen) -#define _REENT_EMERGENCY(_ptr) ((_ptr)->_emergency) -#define _REENT_ERRNO(_ptr) ((_ptr)->_errno) -#define _REENT_INC(_ptr) ((_ptr)->_inc) -#define _REENT_LOCALE(_ptr) ((_ptr)->_locale) -#define _REENT_SIG_FUNC(_ptr) ((_ptr)->_sig_func) -#define _REENT_STDIN(_ptr) ((_ptr)->_stdin) -#define _REENT_STDOUT(_ptr) ((_ptr)->_stdout) -#define _REENT_STDERR(_ptr) ((_ptr)->_stderr) - -#define _REENT_INIT_PTR(var) \ - { memset((var), 0, sizeof(*(var))); \ - _REENT_INIT_PTR_ZEROED(var); \ - } - -/* - * All references to struct _reent are via this pointer. - * Internally, newlib routines that need to reference it should use _REENT. - */ - -#ifndef __ATTRIBUTE_IMPURE_PTR__ -#define __ATTRIBUTE_IMPURE_PTR__ -#endif - -extern struct _reent *_impure_ptr __ATTRIBUTE_IMPURE_PTR__; - -#ifndef __ATTRIBUTE_IMPURE_DATA__ -#define __ATTRIBUTE_IMPURE_DATA__ -#endif - -extern struct _reent _impure_data __ATTRIBUTE_IMPURE_DATA__; - -/* #define _REENT_ONLY define this to get only reentrant routines */ - -#if defined(__DYNAMIC_REENT__) && !defined(__SINGLE_THREAD__) -#ifndef __getreent - struct _reent * __getreent (void); -#endif -# define _REENT (__getreent()) -#else /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */ -# define _REENT _impure_ptr -#endif /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */ - -#define _REENT_IS_NULL(_ptr) ((_ptr) == NULL) - -#define _GLOBAL_REENT (&_impure_data) - -#else /* _REENT_THREAD_LOCAL */ - -#define _REENT NULL -#define _GLOBAL_REENT NULL - -/* - * Since _REENT is defined as NULL, this macro ensures that calls to - * CHECK_INIT() do not automatically fail. - */ -#define _REENT_IS_NULL(_ptr) 0 - -#define _REENT_CHECK_RAND48(ptr) /* nothing */ -#define _REENT_CHECK_MP(ptr) /* nothing */ -#define _REENT_CHECK_TM(ptr) /* nothing */ -#define _REENT_CHECK_ASCTIME_BUF(ptr) /* nothing */ -#define _REENT_CHECK_EMERGENCY(ptr) /* nothing */ -#define _REENT_CHECK_MISC(ptr) /* nothing */ -#define _REENT_CHECK_SIGNAL_BUF(ptr) /* nothing */ - -extern _Thread_local char _tls_asctime_buf[_REENT_ASCTIME_SIZE]; -#define _REENT_ASCTIME_BUF(_ptr) (_tls_asctime_buf) -extern _Thread_local char *_tls_cvtbuf; -#define _REENT_CVTBUF(_ptr) (_tls_cvtbuf) -extern _Thread_local int _tls_cvtlen; -#define _REENT_CVTLEN(_ptr) (_tls_cvtlen) -extern _Thread_local void (*_tls_cleanup)(struct _reent *); -#define _REENT_CLEANUP(_ptr) (_tls_cleanup) -extern _Thread_local char _tls_emergency[_REENT_EMERGENCY_SIZE]; -#define _REENT_EMERGENCY(_ptr) (_tls_emergency) -extern _Thread_local int _tls_errno; -#define _REENT_ERRNO(_ptr) (_tls_errno) -extern _Thread_local int _tls_getdate_err; -#define _REENT_GETDATE_ERR_P(_ptr) (&_tls_getdate_err) -extern _Thread_local int _tls_inc; -#define _REENT_INC(_ptr) (_tls_inc) -extern _Thread_local char _tls_l64a_buf[8]; -#define _REENT_L64A_BUF(_ptr) (_tls_l64a_buf) -extern _Thread_local struct __locale_t *_tls_locale; -#define _REENT_LOCALE(_ptr) (_tls_locale) -extern _Thread_local _mbstate_t _tls_mblen_state; -#define _REENT_MBLEN_STATE(_ptr) (_tls_mblen_state) -extern _Thread_local _mbstate_t _tls_mbrlen_state; -#define _REENT_MBRLEN_STATE(_ptr) (_tls_mbrlen_state) -extern _Thread_local _mbstate_t _tls_mbrtowc_state; -#define _REENT_MBRTOWC_STATE(_ptr) (_tls_mbrtowc_state) -extern _Thread_local _mbstate_t _tls_mbsrtowcs_state; -#define _REENT_MBSRTOWCS_STATE(_ptr) (_tls_mbsrtowcs_state) -extern _Thread_local _mbstate_t _tls_mbtowc_state; -#define _REENT_MBTOWC_STATE(_ptr) (_tls_mbtowc_state) -extern _Thread_local struct _Bigint **_tls_mp_freelist; -#define _REENT_MP_FREELIST(_ptr) (_tls_mp_freelist) -extern _Thread_local struct _Bigint *_tls_mp_p5s; -#define _REENT_MP_P5S(_ptr) (_tls_mp_p5s) -extern _Thread_local struct _Bigint *_tls_mp_result; -#define _REENT_MP_RESULT(_ptr) (_tls_mp_result) -extern _Thread_local int _tls_mp_result_k; -#define _REENT_MP_RESULT_K(_ptr) (_tls_mp_result_k) -extern _Thread_local unsigned short _tls_rand48_add; -#define _REENT_RAND48_ADD(_ptr) (_tls_rand48_add) -extern _Thread_local unsigned short _tls_rand48_mult[3]; -#define _REENT_RAND48_MULT(_ptr) (_tls_rand48_mult) -extern _Thread_local unsigned short _tls_rand48_seed[3]; -#define _REENT_RAND48_SEED(_ptr) (_tls_rand48_seed) -extern _Thread_local unsigned long long _tls_rand_next; -#define _REENT_RAND_NEXT(_ptr) (_tls_rand_next) -extern _Thread_local void (**_tls_sig_func)(int); -#define _REENT_SIG_FUNC(_ptr) (_tls_sig_func) -extern _Thread_local char _tls_signal_buf[_REENT_SIGNAL_SIZE]; -#define _REENT_SIGNAL_BUF(_ptr) (_tls_signal_buf) -extern _Thread_local int _tls_gamma_signgam; -#define _REENT_SIGNGAM(_ptr) (_tls_gamma_signgam) -extern _Thread_local __FILE *_tls_stdin; -#define _REENT_STDIN(_ptr) (_tls_stdin) -extern _Thread_local __FILE *_tls_stdout; -#define _REENT_STDOUT(_ptr) (_tls_stdout) -extern _Thread_local __FILE *_tls_stderr; -#define _REENT_STDERR(_ptr) (_tls_stderr) -extern _Thread_local char *_tls_strtok_last; -#define _REENT_STRTOK_LAST(_ptr) (_tls_strtok_last) -extern _Thread_local struct __tm _tls_localtime_buf; -#define _REENT_TM(_ptr) (&_tls_localtime_buf) -extern _Thread_local _mbstate_t _tls_wctomb_state; -#define _REENT_WCTOMB_STATE(_ptr) (_tls_wctomb_state) -extern _Thread_local _mbstate_t _tls_wcrtomb_state; -#define _REENT_WCRTOMB_STATE(_ptr) (_tls_wcrtomb_state) -extern _Thread_local _mbstate_t _tls_wcsrtombs_state; -#define _REENT_WCSRTOMBS_STATE(_ptr) (_tls_wcsrtombs_state) - -#endif /* !_REENT_THREAD_LOCAL */ - -/* This value is used in stdlib/misc.c. reent/reent.c has to know it - as well to make sure the freelist is correctly free'd. Therefore - we define it here, rather than in stdlib/misc.c, as before. */ -#define _Kmax (sizeof (size_t) << 3) - -extern struct _atexit *__atexit; /* points to head of LIFO stack */ -extern struct _atexit __atexit0; /* one guaranteed table, required by ANSI */ - -extern void (*__stdio_exit_handler) (void); - -void _reclaim_reent (struct _reent *); - -extern int _fwalk_sglue (struct _reent *, int (*)(struct _reent *, __FILE *), - struct _glue *); - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_REENT_H_ */ diff --git a/lib/include/sys/resource.h b/lib/include/sys/resource.h deleted file mode 100644 index c0a0d20..0000000 --- a/lib/include/sys/resource.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _SYS_RESOURCE_H_ -#define _SYS_RESOURCE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#define RUSAGE_SELF 0 /* calling process */ -#define RUSAGE_CHILDREN -1 /* terminated child processes */ - -struct rusage { - struct timeval ru_utime; /* user time used */ - struct timeval ru_stime; /* system time used */ -}; - -int getrusage (int, struct rusage*); - -#ifdef __cplusplus -} -#endif -#endif /* !_SYS_RESOURCE_H_ */ - diff --git a/lib/include/sys/sched.h b/lib/include/sys/sched.h deleted file mode 100644 index 4adb6e2..0000000 --- a/lib/include/sys/sched.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2010. - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - * $Id$ - */ - - -#ifndef _SYS_SCHED_H_ -#define _SYS_SCHED_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Scheduling Policies */ -/* Open Group Specifications Issue 6 */ -#if defined(__CYGWIN__) -#define SCHED_OTHER 3 -#else -#define SCHED_OTHER 0 -#endif - -#define SCHED_FIFO 1 -#define SCHED_RR 2 - -#if defined(_POSIX_SPORADIC_SERVER) -#define SCHED_SPORADIC 4 -#endif - -/* Scheduling Parameters */ -/* Open Group Specifications Issue 6 */ - -struct sched_param { - int sched_priority; /* Process execution scheduling priority */ - -#if defined(_POSIX_SPORADIC_SERVER) || defined(_POSIX_THREAD_SPORADIC_SERVER) - int sched_ss_low_priority; /* Low scheduling priority for sporadic */ - /* server */ - struct timespec sched_ss_repl_period; - /* Replenishment period for sporadic server */ - struct timespec sched_ss_init_budget; - /* Initial budget for sporadic server */ - int sched_ss_max_repl; /* Maximum pending replenishments for */ - /* sporadic server */ -#endif -}; - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ - diff --git a/lib/include/sys/select.h b/lib/include/sys/select.h deleted file mode 100644 index 93d0b79..0000000 --- a/lib/include/sys/select.h +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef _SYS_SELECT_H -#define _SYS_SELECT_H - -/* We don't define fd_set and friends if we are compiling POSIX - source, or if we have included (or may include as indicated - by __USE_W32_SOCKETS) the W32api winsock[2].h header which - defines Windows versions of them. Note that a program which - includes the W32api winsock[2].h header must know what it is doing; - it must not call the Cygwin select function. -*/ -# if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) - -#include -#include -#include -#include - -#if !defined(_SIGSET_T_DECLARED) -#define _SIGSET_T_DECLARED -typedef __sigset_t sigset_t; -#endif - -# define _SYS_TYPES_FD_SET -/* - * Select uses bit masks of file descriptors in longs. - * These macros manipulate such bit fields (the filesystem macros use chars). - * FD_SETSIZE may be defined by the user, but the default here - * should be enough for most uses. - */ -#ifndef FD_SETSIZE -# ifdef __CYGWIN__ -# define FD_SETSIZE 1024 -# else -# define FD_SETSIZE 64 -# endif -#endif - -typedef unsigned long __fd_mask; -#if __BSD_VISIBLE -typedef __fd_mask fd_mask; -#endif - -#define _NFDBITS ((int)sizeof(__fd_mask) * 8) /* bits per mask */ -#if __BSD_VISIBLE -#define NFDBITS _NFDBITS -#endif - -#ifndef _howmany -#define _howmany(x,y) (((x) + ((y) - 1)) / (y)) -#endif - -typedef struct fd_set { - __fd_mask __fds_bits[_howmany(FD_SETSIZE, _NFDBITS)]; -} fd_set; -#if __BSD_VISIBLE -#define fds_bits __fds_bits -#endif - -#define __fdset_mask(n) ((__fd_mask)1 << ((n) % _NFDBITS)) -#define FD_CLR(n, p) ((p)->__fds_bits[(n)/_NFDBITS] &= ~__fdset_mask(n)) -#if __BSD_VISIBLE -#define FD_COPY(f, t) (void)(*(t) = *(f)) -#endif -#define FD_ISSET(n, p) (((p)->__fds_bits[(n)/_NFDBITS] & __fdset_mask(n)) != 0) -#define FD_SET(n, p) ((p)->__fds_bits[(n)/_NFDBITS] |= __fdset_mask(n)) -#define FD_ZERO(p) do { \ - fd_set *_p; \ - __size_t _n; \ - \ - _p = (p); \ - _n = _howmany(FD_SETSIZE, _NFDBITS); \ - while (_n > 0) \ - _p->__fds_bits[--_n] = 0; \ -} while (0) - -#if !defined (__INSIDE_CYGWIN_NET__) - -__BEGIN_DECLS - -int select __P ((int __n, fd_set *__readfds, fd_set *__writefds, - fd_set *__exceptfds, struct timeval *__timeout)); -#if __POSIX_VISIBLE >= 200112 -int pselect __P ((int __n, fd_set *__readfds, fd_set *__writefds, - fd_set *__exceptfds, const struct timespec *__timeout, - const sigset_t *__set)); -#endif - -__END_DECLS - -#endif /* !__INSIDE_CYGWIN_NET__ */ - -#endif /* !(_WINSOCK_H || _WINSOCKAPI_ || __USE_W32_SOCKETS) */ - -#endif /* sys/select.h */ diff --git a/lib/include/sys/signal.h b/lib/include/sys/signal.h deleted file mode 100644 index 8dc5fb9..0000000 --- a/lib/include/sys/signal.h +++ /dev/null @@ -1,388 +0,0 @@ -/* sys/signal.h */ - -#ifndef _SYS_SIGNAL_H -#define _SYS_SIGNAL_H -#ifdef __cplusplus -extern "C" { -#endif - -#include "_ansi.h" -#include -#include -#include -#include -#include -#include - -#if !defined(_SIGSET_T_DECLARED) -#define _SIGSET_T_DECLARED -typedef __sigset_t sigset_t; -#endif - -#if defined(__CYGWIN__) -#include -#else - -#if defined(_POSIX_REALTIME_SIGNALS) || __POSIX_VISIBLE >= 199309 - -/* sigev_notify values - NOTE: P1003.1c/D10, p. 34 adds SIGEV_THREAD. */ - -#define SIGEV_NONE 1 /* No asynchronous notification shall be delivered */ - /* when the event of interest occurs. */ -#define SIGEV_SIGNAL 2 /* A queued signal, with an application defined */ - /* value, shall be delivered when the event of */ - /* interest occurs. */ -#define SIGEV_THREAD 3 /* A notification function shall be called to */ - /* perform notification. */ - -/* Signal Generation and Delivery, P1003.1b-1993, p. 63 - NOTE: P1003.1c/D10, p. 34 adds sigev_notify_function and - sigev_notify_attributes to the sigevent structure. */ - -union sigval { - int sival_int; /* Integer signal value */ - void *sival_ptr; /* Pointer signal value */ -}; - -struct sigevent { - int sigev_notify; /* Notification type */ - int sigev_signo; /* Signal number */ - union sigval sigev_value; /* Signal value */ - -#if defined(_POSIX_THREADS) - void (*sigev_notify_function)( union sigval ); - /* Notification function */ - pthread_attr_t *sigev_notify_attributes; /* Notification Attributes */ -#endif -}; - -/* Signal Actions, P1003.1b-1993, p. 64 */ -/* si_code values, p. 66 */ - -#define SI_USER 1 /* Sent by a user. kill(), abort(), etc */ -#define SI_QUEUE 2 /* Sent by sigqueue() */ -#define SI_TIMER 3 /* Sent by expiration of a timer_settime() timer */ -#define SI_ASYNCIO 4 /* Indicates completion of asycnhronous IO */ -#define SI_MESGQ 5 /* Indicates arrival of a message at an empty queue */ - -typedef struct { - int si_signo; /* Signal number */ - int si_code; /* Cause of the signal */ - union sigval si_value; /* Signal value */ -} siginfo_t; -#endif /* defined(_POSIX_REALTIME_SIGNALS) || __POSIX_VISIBLE >= 199309 */ - -#if defined(__rtems__) - -/* 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 */ - -#define SA_NOCLDSTOP 0x1 /* Do not generate SIGCHLD when children stop */ -#define SA_SIGINFO 0x2 /* Invoke the signal catching function with */ - /* three arguments instead of one. */ -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -#define SA_ONSTACK 0x4 /* Signal delivery will be on a separate stack. */ -#endif - -/* struct sigaction notes from POSIX: - * - * (1) Routines stored in sa_handler should take a single int as - * their argument although the POSIX standard does not require this. - * This is not longer true since at least POSIX.1-2008 - * (2) The fields sa_handler and sa_sigaction may overlap, and a conforming - * application should not use both simultaneously. - */ - -typedef void (*_sig_func_ptr)(int); - -struct sigaction { - int sa_flags; /* Special flags to affect behavior of signal */ - sigset_t sa_mask; /* Additional set of signals to be blocked */ - /* during execution of signal-catching */ - /* function. */ - union { - _sig_func_ptr _handler; /* SIG_DFL, SIG_IGN, or pointer to a function */ -#if defined(_POSIX_REALTIME_SIGNALS) - void (*_sigaction)( int, siginfo_t *, void * ); -#endif - } _signal_handlers; -}; - -#define sa_handler _signal_handlers._handler -#if defined(_POSIX_REALTIME_SIGNALS) -#define sa_sigaction _signal_handlers._sigaction -#endif - -#else /* defined(__rtems__) */ - -#define SA_NOCLDSTOP 1 /* only value supported now for sa_flags */ - -typedef void (*_sig_func_ptr)(int); - -struct sigaction -{ - _sig_func_ptr sa_handler; - sigset_t sa_mask; - int sa_flags; -}; -#endif /* defined(__rtems__) */ -#endif /* defined(__CYGWIN__) */ - -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -/* - * Minimum and default signal stack constants. Allow for target overrides - * from . - */ -#ifndef MINSIGSTKSZ -#define MINSIGSTKSZ 2048 -#endif -#ifndef SIGSTKSZ -#define SIGSTKSZ 8192 -#endif - -/* - * Possible values for ss_flags in stack_t below. - */ -#define SS_ONSTACK 0x1 -#define SS_DISABLE 0x2 - -#endif - -/* - * Structure used in sigaltstack call. - */ -typedef struct sigaltstack { - void *ss_sp; /* Stack base or pointer. */ - int ss_flags; /* Flags. */ - size_t ss_size; /* Stack size. */ -} stack_t; - -#if __POSIX_VISIBLE -#define SIG_SETMASK 0 /* set mask with sigprocmask() */ -#define SIG_BLOCK 1 /* set of signals to block */ -#define SIG_UNBLOCK 2 /* set of signals to, well, unblock */ - -int sigprocmask (int, const sigset_t *, sigset_t *); -#endif - -#if __POSIX_VISIBLE >= 199506 -int pthread_sigmask (int, const sigset_t *, sigset_t *); -#endif - -#ifdef _LIBC -int _kill (pid_t, int); -#endif /* _LIBC */ - -#if __POSIX_VISIBLE -int kill (pid_t, int); -#endif - -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 -int killpg (pid_t, int); -#endif -#if __POSIX_VISIBLE -int sigaction (int, const struct sigaction *, struct sigaction *); -int sigaddset (sigset_t *, const int); -int sigdelset (sigset_t *, const int); -int sigismember (const sigset_t *, int); -int sigfillset (sigset_t *); -int sigemptyset (sigset_t *); -int sigpending (sigset_t *); -int sigsuspend (const sigset_t *); -int sigwait (const sigset_t *, int *); - -#if !defined(__CYGWIN__) && !defined(__rtems__) -/* These depend upon the type of sigset_t, which right now - is always a long.. They're in the POSIX namespace, but - are not ANSI. */ -#define sigaddset(what,sig) (*(what) |= (1<<(sig)), 0) -#define sigdelset(what,sig) (*(what) &= ~(1<<(sig)), 0) -#define sigemptyset(what) (*(what) = 0, 0) -#define sigfillset(what) (*(what) = ~(0), 0) -#define sigismember(what,sig) (((*(what)) & (1<<(sig))) != 0) -#endif /* !__CYGWIN__ && !__rtems__ */ -#endif /* __POSIX_VISIBLE */ - -/* There are two common sigpause variants, both of which take an int argument. - If you request _XOPEN_SOURCE or _GNU_SOURCE, you get the System V version, - which removes the given signal from the process's signal mask; otherwise - you get the BSD version, which sets the process's signal mask to the given - value. */ -#if __XSI_VISIBLE && !defined(__INSIDE_CYGWIN__) -# ifdef __GNUC__ -int sigpause (int) __asm__ (__ASMNAME ("__xpg_sigpause")); -# else -int __xpg_sigpause (int); -# define sigpause __xpg_sigpause -# endif -#elif __BSD_VISIBLE -int sigpause (int); -#endif - -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -int sigaltstack (const stack_t *__restrict, stack_t *__restrict); -#endif - -#if __POSIX_VISIBLE >= 199506 -int pthread_kill (pthread_t, int); -#endif - -#if __POSIX_VISIBLE >= 199309 - -/* 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 - NOTE: P1003.1c/D10, p. 39 adds sigwait(). */ - -int sigwaitinfo (const sigset_t *, siginfo_t *); -int sigtimedwait (const sigset_t *, siginfo_t *, const struct timespec *); -/* 3.3.9 Queue a Signal to a Process, P1003.1b-1993, p. 78 */ -int sigqueue (pid_t, int, const union sigval); - -#endif /* __POSIX_VISIBLE >= 199309 */ - -/* Using __MISC_VISIBLE until POSIX Issue 8 is officially released */ -#if __MISC_VISIBLE - -/* POSIX Issue 8 adds sig2str() and str2sig() */ - -#if __SIZEOF_INT__ >= 4 -#define SIG2STR_MAX (sizeof("RTMAX+") + sizeof("4294967295") - 1) -#else -#define SIG2STR_MAX (sizeof("RTMAX+") + sizeof("65535") - 1) -#endif - -int sig2str(int, char *); -int str2sig(const char *__restrict, int *__restrict); - -#endif /* __MISC_VISIBLE */ - -#if defined(___AM29K__) -/* These all need to be defined for ANSI C, but I don't think they are - meaningful. */ -#define SIGABRT 1 -#define SIGFPE 1 -#define SIGILL 1 -#define SIGINT 1 -#define SIGSEGV 1 -#define SIGTERM 1 -/* These need to be defined for POSIX, and some others do too. */ -#define SIGHUP 1 -#define SIGQUIT 1 -#define NSIG 2 -#elif defined(__GO32__) -#define SIGINT 1 -#define SIGKILL 2 -#define SIGPIPE 3 -#define SIGFPE 4 -#define SIGHUP 5 -#define SIGTERM 6 -#define SIGSEGV 7 -#define SIGTSTP 8 -#define SIGQUIT 9 -#define SIGTRAP 10 -#define SIGILL 11 -#define SIGEMT 12 -#define SIGALRM 13 -#define SIGBUS 14 -#define SIGLOST 15 -#define SIGSTOP 16 -#define SIGABRT 17 -#define SIGUSR1 18 -#define SIGUSR2 19 -#define NSIG 20 -#elif !defined(SIGTRAP) -#define SIGHUP 1 /* hangup */ -#define SIGINT 2 /* interrupt */ -#define SIGQUIT 3 /* quit */ -#define SIGILL 4 /* illegal instruction (not reset when caught) */ -#define SIGTRAP 5 /* trace trap (not reset when caught) */ -#define SIGIOT 6 /* IOT instruction */ -#define SIGABRT 6 /* used by abort, replace SIGIOT in the future */ -#define SIGEMT 7 /* EMT instruction */ -#define SIGFPE 8 /* floating point exception */ -#define SIGKILL 9 /* kill (cannot be caught or ignored) */ -#define SIGBUS 10 /* bus error */ -#define SIGSEGV 11 /* segmentation violation */ -#define SIGSYS 12 /* bad argument to system call */ -#define SIGPIPE 13 /* write on a pipe with no one to read it */ -#define SIGALRM 14 /* alarm clock */ -#define SIGTERM 15 /* software termination signal from kill */ - -#if defined(__rtems__) -#define SIGURG 16 /* urgent condition on IO channel */ -#define SIGSTOP 17 /* sendable stop signal not from tty */ -#define SIGTSTP 18 /* stop signal from tty */ -#define SIGCONT 19 /* continue a stopped process */ -#define SIGCHLD 20 /* to parent on child stop or exit */ -#define SIGCLD 20 /* System V name for SIGCHLD */ -#define SIGTTIN 21 /* to readers pgrp upon background tty read */ -#define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */ -#define SIGIO 23 /* input/output possible signal */ -#define SIGPOLL SIGIO /* System V name for SIGIO */ -#define SIGWINCH 24 /* window changed */ -#define SIGUSR1 25 /* user defined signal 1 */ -#define SIGUSR2 26 /* user defined signal 2 */ - -/* Real-Time Signals Range, P1003.1b-1993, p. 61 - NOTE: By P1003.1b-1993, this should be at least RTSIG_MAX - (which is a minimum of 8) signals. - */ -#define SIGRTMIN 27 -#define SIGRTMAX 31 -#define __SIGFIRSTNOTRT SIGHUP -#define __SIGLASTNOTRT SIGUSR2 - -#define NSIG 32 /* signal 0 implied */ - -#elif defined(__svr4__) -/* svr4 specifics. different signals above 15, and sigaction. */ -#define SIGUSR1 16 -#define SIGUSR2 17 -#define SIGCLD 18 -#define SIGPWR 19 -#define SIGWINCH 20 -#define SIGPOLL 22 /* 20 for x.out binaries!!!! */ -#define SIGSTOP 23 /* sendable stop signal not from tty */ -#define SIGTSTP 24 /* stop signal from tty */ -#define SIGCONT 25 /* continue a stopped process */ -#define SIGTTIN 26 /* to readers pgrp upon background tty read */ -#define SIGTTOU 27 /* like TTIN for output if (tp->t_local<OSTOP) */ -#define NSIG 28 -#else -#define SIGURG 16 /* urgent condition on IO channel */ -#define SIGSTOP 17 /* sendable stop signal not from tty */ -#define SIGTSTP 18 /* stop signal from tty */ -#define SIGCONT 19 /* continue a stopped process */ -#define SIGCHLD 20 /* to parent on child stop or exit */ -#define SIGCLD 20 /* System V name for SIGCHLD */ -#define SIGTTIN 21 /* to readers pgrp upon background tty read */ -#define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */ -#define SIGIO 23 /* input/output possible signal */ -#define SIGPOLL SIGIO /* System V name for SIGIO */ -#define SIGXCPU 24 /* exceeded CPU time limit */ -#define SIGXFSZ 25 /* exceeded file size limit */ -#define SIGVTALRM 26 /* virtual time alarm */ -#define SIGPROF 27 /* profiling time alarm */ -#define SIGWINCH 28 /* window changed */ -#define SIGLOST 29 /* resource lost (eg, record-lock lost) */ -#define SIGUSR1 30 /* user defined signal 1 */ -#define SIGUSR2 31 /* user defined signal 2 */ -#define NSIG 32 /* signal 0 implied */ -#endif -#endif - -#ifdef __cplusplus -} -#endif - -#if defined(__CYGWIN__) -#if __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -#include -#endif -#endif - -#ifndef _SIGNAL_H_ -/* Some applications take advantage of the fact that - * and are equivalent in glibc. Allow for that here. */ -#include -#endif -#endif /* _SYS_SIGNAL_H */ diff --git a/lib/include/sys/stat.h b/lib/include/sys/stat.h deleted file mode 100644 index 98f5add..0000000 --- a/lib/include/sys/stat.h +++ /dev/null @@ -1,179 +0,0 @@ -#ifndef _SYS_STAT_H -#define _SYS_STAT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <_ansi.h> -#include -#include -#include -#include - -/* dj's stat defines _STAT_H_ */ -#ifndef _STAT_H_ - -/* It is intended that the layout of this structure not change when the - sizes of any of the basic types change (short, int, long) [via a compile - time option]. */ - -#ifdef __CYGWIN__ -#include -#ifdef _LIBC -#define stat64 stat -#endif -#else -struct stat -{ - dev_t st_dev; - ino_t st_ino; - mode_t st_mode; - nlink_t st_nlink; - uid_t st_uid; - gid_t st_gid; - dev_t st_rdev; - off_t st_size; -#if defined(__svr4__) && !defined(__PPC__) && !defined(__sun__) - time_t st_atime; - time_t st_mtime; - time_t st_ctime; -#else - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; - blksize_t st_blksize; - blkcnt_t st_blocks; -#if !defined(__rtems__) - long st_spare4[2]; -#endif -#endif -}; - -#if !(defined(__svr4__) && !defined(__PPC__) && !defined(__sun__)) -#define st_atime st_atim.tv_sec -#define st_ctime st_ctim.tv_sec -#define st_mtime st_mtim.tv_sec -#endif - -#endif - -#define _IFMT 0170000 /* type of file */ -#define _IFDIR 0040000 /* directory */ -#define _IFCHR 0020000 /* character special */ -#define _IFBLK 0060000 /* block special */ -#define _IFREG 0100000 /* regular */ -#define _IFLNK 0120000 /* symbolic link */ -#define _IFSOCK 0140000 /* socket */ -#define _IFIFO 0010000 /* fifo */ - -#define S_BLKSIZE 1024 /* size of a block */ - -#define S_ISUID 0004000 /* set user id on execution */ -#define S_ISGID 0002000 /* set group id on execution */ -#define S_ISVTX 0001000 /* save swapped text even after use */ -#if __BSD_VISIBLE -#define S_IREAD 0000400 /* read permission, owner */ -#define S_IWRITE 0000200 /* write permission, owner */ -#define S_IEXEC 0000100 /* execute/search permission, owner */ -#define S_ENFMT 0002000 /* enforcement-mode locking */ -#endif /* !_BSD_VISIBLE */ - -#define S_IFMT _IFMT -#define S_IFDIR _IFDIR -#define S_IFCHR _IFCHR -#define S_IFBLK _IFBLK -#define S_IFREG _IFREG -#define S_IFLNK _IFLNK -#define S_IFSOCK _IFSOCK -#define S_IFIFO _IFIFO - -#ifdef _WIN32 -/* The Windows header files define _S_ forms of these, so we do too - for easier portability. */ -#define _S_IFMT _IFMT -#define _S_IFDIR _IFDIR -#define _S_IFCHR _IFCHR -#define _S_IFIFO _IFIFO -#define _S_IFREG _IFREG -#define _S_IREAD 0000400 -#define _S_IWRITE 0000200 -#define _S_IEXEC 0000100 -#endif - -#define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) -#define S_IRUSR 0000400 /* read permission, owner */ -#define S_IWUSR 0000200 /* write permission, owner */ -#define S_IXUSR 0000100/* execute/search permission, owner */ -#define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) -#define S_IRGRP 0000040 /* read permission, group */ -#define S_IWGRP 0000020 /* write permission, grougroup */ -#define S_IXGRP 0000010/* execute/search permission, group */ -#define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) -#define S_IROTH 0000004 /* read permission, other */ -#define S_IWOTH 0000002 /* write permission, other */ -#define S_IXOTH 0000001/* execute/search permission, other */ - -#if __BSD_VISIBLE -#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) /* 0777 */ -#define ALLPERMS (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO) /* 07777 */ -#define DEFFILEMODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) /* 0666 */ -#endif - -#define S_ISBLK(m) (((m)&_IFMT) == _IFBLK) -#define S_ISCHR(m) (((m)&_IFMT) == _IFCHR) -#define S_ISDIR(m) (((m)&_IFMT) == _IFDIR) -#define S_ISFIFO(m) (((m)&_IFMT) == _IFIFO) -#define S_ISREG(m) (((m)&_IFMT) == _IFREG) -#define S_ISLNK(m) (((m)&_IFMT) == _IFLNK) -#define S_ISSOCK(m) (((m)&_IFMT) == _IFSOCK) - -#if defined(__CYGWIN__) || defined(__rtems__) -/* Special tv_nsec values for futimens(2) and utimensat(2). */ -#define UTIME_NOW -2L -#define UTIME_OMIT -1L -#endif - -int chmod (const char *__path, mode_t __mode ); -int fchmod (int __fd, mode_t __mode); -int fstat (int __fd, struct stat *__sbuf ); -int mkdir (const char *_path, mode_t __mode ); -int mkfifo (const char *__path, mode_t __mode ); -int stat (const char *__restrict __path, struct stat *__restrict __sbuf ); -mode_t umask (mode_t __mask ); - -#if defined (__SPU__) || defined(__rtems__) || defined(__CYGWIN__) -int lstat (const char *__restrict __path, struct stat *__restrict __buf ); -int mknod (const char *__path, mode_t __mode, dev_t __dev ); -#endif - -#if __ATFILE_VISIBLE && !defined(__INSIDE_CYGWIN__) -int fchmodat (int, const char *, mode_t, int); -int fstatat (int, const char *__restrict , struct stat *__restrict, int); -int mkdirat (int, const char *, mode_t); -int mkfifoat (int, const char *, mode_t); -int mknodat (int, const char *, mode_t, dev_t); -int utimensat (int, const char *, const struct timespec [2], int); -#endif -#if __POSIX_VISIBLE >= 200809 && !defined(__INSIDE_CYGWIN__) -int futimens (int, const struct timespec [2]); -#endif - -/* Provide prototypes for most of the _ names that are - provided in newlib for some compilers. */ -#ifdef _LIBC -int _fstat (int __fd, struct stat *__sbuf ); -int _stat (const char *__restrict __path, struct stat *__restrict __sbuf ); -int _mkdir (const char *_path, mode_t __mode ); -#ifdef __LARGE64_FILES -struct stat64; -int _stat64 (const char *__restrict __path, struct stat64 *__restrict __sbuf ); -int _fstat64 (int __fd, struct stat64 *__sbuf ); -#endif -#endif - -#endif /* !_STAT_H_ */ -#ifdef __cplusplus -} -#endif -#endif /* _SYS_STAT_H */ diff --git a/lib/include/sys/stdio.h b/lib/include/sys/stdio.h deleted file mode 100644 index 91a2745..0000000 --- a/lib/include/sys/stdio.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef _NEWLIB_STDIO_H -#define _NEWLIB_STDIO_H - -#include -#include - -/* Internal locking macros, used to protect stdio functions. In the - general case, expand to nothing. Use __SSTR flag in FILE _flags to - detect if FILE is private to sprintf/sscanf class of functions; if - set then do nothing as lock is not initialised. */ -#if !defined(_flockfile) -#ifndef __SINGLE_THREAD__ -# define _flockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_acquire_recursive((fp)->_lock)) -#else -# define _flockfile(fp) ((void) 0) -#endif -#endif - -#if !defined(_funlockfile) -#ifndef __SINGLE_THREAD__ -# define _funlockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_release_recursive((fp)->_lock)) -#else -# define _funlockfile(fp) ((void) 0) -#endif -#endif - -#endif /* _NEWLIB_STDIO_H */ diff --git a/lib/include/sys/string.h b/lib/include/sys/string.h deleted file mode 100644 index ceedf4b..0000000 --- a/lib/include/sys/string.h +++ /dev/null @@ -1,2 +0,0 @@ -/* This is a dummy used as a placeholder for - systems that need to have a special header file. */ diff --git a/lib/include/sys/syslimits.h b/lib/include/sys/syslimits.h deleted file mode 100644 index c872d20..0000000 --- a/lib/include/sys/syslimits.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 1988, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)syslimits.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/sys/sys/syslimits.h,v 1.10 2001/06/18 20:24:54 wollman Exp $ - */ - -#ifndef _SYS_SYSLIMITS_H_ -#define _SYS_SYSLIMITS_H_ - -#define ARG_MAX 65536 /* max bytes for an exec function */ -#ifndef CHILD_MAX -#define CHILD_MAX 40 /* max simultaneous processes */ -#endif -#define LINK_MAX 32767 /* max file link count */ -#define MAX_CANON 255 /* max bytes in term canon input line */ -#define MAX_INPUT 255 /* max bytes in terminal input */ -#define NAME_MAX 255 /* max bytes in a file name */ -#define NGROUPS_MAX 16 /* max supplemental group id's */ -#ifndef OPEN_MAX -#define OPEN_MAX 64 /* max open files per process */ -#endif -#define PATH_MAX 1024 /* max bytes in pathname */ -#define PIPE_BUF 512 /* max bytes for atomic pipe writes */ -#define IOV_MAX 1024 /* max elements in i/o vector */ - -#define BC_BASE_MAX 99 /* max ibase/obase values in bc(1) */ -#define BC_DIM_MAX 2048 /* max array elements in bc(1) */ -#define BC_SCALE_MAX 99 /* max scale value in bc(1) */ -#define BC_STRING_MAX 1000 /* max const string length in bc(1) */ -#define COLL_WEIGHTS_MAX 0 /* max weights for order keyword */ -#define EXPR_NEST_MAX 32 /* max expressions nested in expr(1) */ -#define LINE_MAX 2048 /* max bytes in an input line */ -#define RE_DUP_MAX 255 /* max RE's in interval notation */ - -#endif diff --git a/lib/include/sys/time.h b/lib/include/sys/time.h deleted file mode 100644 index 5a3dec7..0000000 --- a/lib/include/sys/time.h +++ /dev/null @@ -1,448 +0,0 @@ -/* time.h -- An implementation of the standard Unix file. - Written by Geoffrey Noer - Public domain; no rights reserved. */ - -/*- - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)time.h 8.5 (Berkeley) 5/4/95 - * $FreeBSD: head/sys/sys/time.h 346176 2019-04-13 04:46:35Z imp $ - */ - -#ifndef _SYS_TIME_H_ -#define _SYS_TIME_H_ - -#include <_ansi.h> -#include -#include -#include -#include - -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE -#include -#endif - -struct timezone { - int tz_minuteswest; /* minutes west of Greenwich */ - int tz_dsttime; /* type of dst correction */ -}; -#define DST_NONE 0 /* not on dst */ -#define DST_USA 1 /* USA style dst */ -#define DST_AUST 2 /* Australian style dst */ -#define DST_WET 3 /* Western European dst */ -#define DST_MET 4 /* Middle European dst */ -#define DST_EET 5 /* Eastern European dst */ -#define DST_CAN 6 /* Canada */ - -#if __BSD_VISIBLE -struct bintime { - time_t sec; - uint64_t frac; -}; - -static __inline void -bintime_addx(struct bintime *_bt, uint64_t _x) -{ - uint64_t _u; - - _u = _bt->frac; - _bt->frac += _x; - if (_u > _bt->frac) - _bt->sec++; -} - -static __inline void -bintime_add(struct bintime *_bt, const struct bintime *_bt2) -{ - uint64_t _u; - - _u = _bt->frac; - _bt->frac += _bt2->frac; - if (_u > _bt->frac) - _bt->sec++; - _bt->sec += _bt2->sec; -} - -static __inline void -bintime_sub(struct bintime *_bt, const struct bintime *_bt2) -{ - uint64_t _u; - - _u = _bt->frac; - _bt->frac -= _bt2->frac; - if (_u < _bt->frac) - _bt->sec--; - _bt->sec -= _bt2->sec; -} - -static __inline void -bintime_mul(struct bintime *_bt, u_int _x) -{ - uint64_t _p1, _p2; - - _p1 = (_bt->frac & 0xffffffffull) * _x; - _p2 = (_bt->frac >> 32) * _x + (_p1 >> 32); - _bt->sec *= _x; - _bt->sec += (_p2 >> 32); - _bt->frac = (_p2 << 32) | (_p1 & 0xffffffffull); -} - -static __inline void -bintime_shift(struct bintime *_bt, int _exp) -{ - - if (_exp > 0) { - _bt->sec <<= _exp; - _bt->sec |= _bt->frac >> (64 - _exp); - _bt->frac <<= _exp; - } else if (_exp < 0) { - _bt->frac >>= -_exp; - _bt->frac |= (uint64_t)_bt->sec << (64 + _exp); - _bt->sec >>= -_exp; - } -} - -#define bintime_clear(a) ((a)->sec = (a)->frac = 0) -#define bintime_isset(a) ((a)->sec || (a)->frac) -#define bintime_cmp(a, b, cmp) \ - (((a)->sec == (b)->sec) ? \ - ((a)->frac cmp (b)->frac) : \ - ((a)->sec cmp (b)->sec)) - -#define SBT_1S ((sbintime_t)1 << 32) -#define SBT_1M (SBT_1S * 60) -#define SBT_1MS (SBT_1S / 1000) -#define SBT_1US (SBT_1S / 1000000) -#define SBT_1NS (SBT_1S / 1000000000) /* beware rounding, see nstosbt() */ -#define SBT_MAX 0x7fffffffffffffffLL - -static __inline int -sbintime_getsec(sbintime_t _sbt) -{ - - return (_sbt >> 32); -} - -static __inline sbintime_t -bttosbt(const struct bintime _bt) -{ - - return (((sbintime_t)_bt.sec << 32) + (_bt.frac >> 32)); -} - -static __inline struct bintime -sbttobt(sbintime_t _sbt) -{ - struct bintime _bt; - - _bt.sec = _sbt >> 32; - _bt.frac = _sbt << 32; - return (_bt); -} - -/* - * Decimal<->sbt conversions. Multiplying or dividing by SBT_1NS results in - * large roundoff errors which sbttons() and nstosbt() avoid. Millisecond and - * microsecond functions are also provided for completeness. - * - * These functions return the smallest sbt larger or equal to the - * number of seconds requested so that sbttoX(Xtosbt(y)) == y. Unlike - * top of second computations below, which require that we tick at the - * top of second, these need to be rounded up so we do whatever for at - * least as long as requested. - * - * The naive computation we'd do is this - * ((unit * 2^64 / SIFACTOR) + 2^32-1) >> 32 - * However, that overflows. Instead, we compute - * ((unit * 2^63 / SIFACTOR) + 2^31-1) >> 32 - * and use pre-computed constants that are the ceil of the 2^63 / SIFACTOR - * term to ensure we are using exactly the right constant. We use the lesser - * evil of ull rather than a uint64_t cast to ensure we have well defined - * right shift semantics. With these changes, we get all the ns, us and ms - * conversions back and forth right. - */ -static __inline int64_t -sbttons(sbintime_t _sbt) -{ - uint64_t ns; - - ns = _sbt; - if (ns >= SBT_1S) - ns = (ns >> 32) * 1000000000; - else - ns = 0; - - return (ns + (1000000000 * (_sbt & 0xffffffffu) >> 32)); -} - -static __inline sbintime_t -nstosbt(int64_t _ns) -{ - sbintime_t sb = 0; - - if (_ns >= SBT_1S) { - sb = (_ns / 1000000000) * SBT_1S; - _ns = _ns % 1000000000; - } - /* 9223372037 = ceil(2^63 / 1000000000) */ - sb += ((_ns * 9223372037ull) + 0x7fffffff) >> 31; - return (sb); -} - -static __inline int64_t -sbttous(sbintime_t _sbt) -{ - - return ((1000000 * _sbt) >> 32); -} - -static __inline sbintime_t -ustosbt(int64_t _us) -{ - sbintime_t sb = 0; - - if (_us >= SBT_1S) { - sb = (_us / 1000000) * SBT_1S; - _us = _us % 1000000; - } - /* 9223372036855 = ceil(2^63 / 1000000) */ - sb += ((_us * 9223372036855ull) + 0x7fffffff) >> 31; - return (sb); -} - -static __inline int64_t -sbttoms(sbintime_t _sbt) -{ - - return ((1000 * _sbt) >> 32); -} - -static __inline sbintime_t -mstosbt(int64_t _ms) -{ - sbintime_t sb = 0; - - if (_ms >= SBT_1S) { - sb = (_ms / 1000) * SBT_1S; - _ms = _ms % 1000; - } - /* 9223372036854776 = ceil(2^63 / 1000) */ - sb += ((_ms * 9223372036854776ull) + 0x7fffffff) >> 31; - return (sb); -} - -/*- - * Background information: - * - * When converting between timestamps on parallel timescales of differing - * resolutions it is historical and scientific practice to round down rather - * than doing 4/5 rounding. - * - * The date changes at midnight, not at noon. - * - * Even at 15:59:59.999999999 it's not four'o'clock. - * - * time_second ticks after N.999999999 not after N.4999999999 - */ - -static __inline void -bintime2timespec(const struct bintime *_bt, struct timespec *_ts) -{ - - _ts->tv_sec = _bt->sec; - _ts->tv_nsec = ((uint64_t)1000000000 * - (uint32_t)(_bt->frac >> 32)) >> 32; -} - -static __inline void -timespec2bintime(const struct timespec *_ts, struct bintime *_bt) -{ - - _bt->sec = _ts->tv_sec; - /* 18446744073 = int(2^64 / 1000000000) */ - _bt->frac = _ts->tv_nsec * (uint64_t)18446744073LL; -} - -static __inline void -bintime2timeval(const struct bintime *_bt, struct timeval *_tv) -{ - - _tv->tv_sec = _bt->sec; - _tv->tv_usec = ((uint64_t)1000000 * (uint32_t)(_bt->frac >> 32)) >> 32; -} - -static __inline void -timeval2bintime(const struct timeval *_tv, struct bintime *_bt) -{ - - _bt->sec = _tv->tv_sec; - /* 18446744073709 = int(2^64 / 1000000) */ - _bt->frac = _tv->tv_usec * (uint64_t)18446744073709LL; -} - -static __inline struct timespec -sbttots(sbintime_t _sbt) -{ - struct timespec _ts; - - _ts.tv_sec = _sbt >> 32; - _ts.tv_nsec = sbttons((uint32_t)_sbt); - return (_ts); -} - -static __inline sbintime_t -tstosbt(struct timespec _ts) -{ - - return (((sbintime_t)_ts.tv_sec << 32) + nstosbt(_ts.tv_nsec)); -} - -static __inline struct timeval -sbttotv(sbintime_t _sbt) -{ - struct timeval _tv; - - _tv.tv_sec = _sbt >> 32; - _tv.tv_usec = sbttous((uint32_t)_sbt); - return (_tv); -} - -static __inline sbintime_t -tvtosbt(struct timeval _tv) -{ - - return (((sbintime_t)_tv.tv_sec << 32) + ustosbt(_tv.tv_usec)); -} - -/* Operations on timespecs */ -#define timespecclear(tvp) ((tvp)->tv_sec = (tvp)->tv_nsec = 0) -#define timespecisset(tvp) ((tvp)->tv_sec || (tvp)->tv_nsec) -#define timespeccmp(tvp, uvp, cmp) \ - (((tvp)->tv_sec == (uvp)->tv_sec) ? \ - ((tvp)->tv_nsec cmp (uvp)->tv_nsec) : \ - ((tvp)->tv_sec cmp (uvp)->tv_sec)) - -#define timespecadd(tsp, usp, vsp) \ - do { \ - (vsp)->tv_sec = (tsp)->tv_sec + (usp)->tv_sec; \ - (vsp)->tv_nsec = (tsp)->tv_nsec + (usp)->tv_nsec; \ - if ((vsp)->tv_nsec >= 1000000000L) { \ - (vsp)->tv_sec++; \ - (vsp)->tv_nsec -= 1000000000L; \ - } \ - } while (0) -#define timespecsub(tsp, usp, vsp) \ - do { \ - (vsp)->tv_sec = (tsp)->tv_sec - (usp)->tv_sec; \ - (vsp)->tv_nsec = (tsp)->tv_nsec - (usp)->tv_nsec; \ - if ((vsp)->tv_nsec < 0) { \ - (vsp)->tv_sec--; \ - (vsp)->tv_nsec += 1000000000L; \ - } \ - } while (0) - -#ifndef _KERNEL /* NetBSD/OpenBSD compatible interfaces */ - -#define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) -#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) -#define timercmp(tvp, uvp, cmp) \ - (((tvp)->tv_sec == (uvp)->tv_sec) ? \ - ((tvp)->tv_usec cmp (uvp)->tv_usec) : \ - ((tvp)->tv_sec cmp (uvp)->tv_sec)) -#define timeradd(tvp, uvp, vvp) \ - do { \ - (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \ - (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \ - if ((vvp)->tv_usec >= 1000000) { \ - (vvp)->tv_sec++; \ - (vvp)->tv_usec -= 1000000; \ - } \ - } while (0) -#define timersub(tvp, uvp, vvp) \ - do { \ - (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ - (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ - if ((vvp)->tv_usec < 0) { \ - (vvp)->tv_sec--; \ - (vvp)->tv_usec += 1000000; \ - } \ - } while (0) -#endif -#endif /* __BSD_VISIBLE */ - -/* - * Names of the interval timers, and structure - * defining a timer setting. - */ -#define ITIMER_REAL 0 -#define ITIMER_VIRTUAL 1 -#define ITIMER_PROF 2 - -struct itimerval { - struct timeval it_interval; /* timer interval */ - struct timeval it_value; /* current value */ -}; - -#ifndef _KERNEL -#include - -__BEGIN_DECLS -int utimes (const char *, const struct timeval [2]); - -#if __BSD_VISIBLE -int adjtime (const struct timeval *, struct timeval *); -int futimes (int, const struct timeval [2]); -int lutimes (const char *, const struct timeval [2]); -int settimeofday (const struct timeval *, const struct timezone *); -#endif - -#if __MISC_VISIBLE || __XSI_VISIBLE -int getitimer (int __which, struct itimerval *__value); -int setitimer (int __which, const struct itimerval *__restrict __value, - struct itimerval *__restrict __ovalue); -#endif - -int gettimeofday (struct timeval *__restrict __p, - void *__restrict __tz); - -#if __GNU_VISIBLE -int futimesat (int, const char *, const struct timeval [2]); -#endif - -#ifdef _LIBC -int _gettimeofday (struct timeval *__p, void *__tz); -#endif - -__END_DECLS - -#endif /* !_KERNEL */ -#include - -#endif /* !_SYS_TIME_H_ */ diff --git a/lib/include/sys/timeb.h b/lib/include/sys/timeb.h deleted file mode 100644 index ccf6649..0000000 --- a/lib/include/sys/timeb.h +++ /dev/null @@ -1,40 +0,0 @@ -/* timeb.h -- An implementation of the standard Unix file. - Written by Ian Lance Taylor - Public domain; no rights reserved. - - declares the structure used by the ftime function, as - well as the ftime function itself. Newlib does not provide an - implementation of ftime. */ - -#ifndef _SYS_TIMEB_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define _SYS_TIMEB_H - -#include <_ansi.h> -#include - -#if !defined(__time_t_defined) && !defined(_TIME_T_DECLARED) -typedef _TIME_T_ time_t; -#define __time_t_defined -#define _TIME_T_DECLARED -#endif - -struct timeb -{ - time_t time; - unsigned short millitm; - short timezone; - short dstflag; -}; - -extern int ftime (struct timeb *); - -#ifdef __cplusplus -} -#endif - -#endif /* ! defined (_SYS_TIMEB_H) */ diff --git a/lib/include/sys/times.h b/lib/include/sys/times.h deleted file mode 100644 index 25dc8bd..0000000 --- a/lib/include/sys/times.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _SYS_TIMES_H -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS_TIMES_H - -#include <_ansi.h> -#include - -#if !defined(__clock_t_defined) && !defined(_CLOCK_T_DECLARED) -typedef _CLOCK_T_ clock_t; -#define __clock_t_defined -#define _CLOCK_T_DECLARED -#endif - -/* Get Process Times, P1003.1b-1993, p. 92 */ -struct tms { - clock_t tms_utime; /* user time */ - clock_t tms_stime; /* system time */ - clock_t tms_cutime; /* user time, children */ - clock_t tms_cstime; /* system time, children */ -}; - -clock_t times (struct tms *); -#ifdef _LIBC -clock_t _times (struct tms *); -#endif - -#ifdef __cplusplus -} -#endif -#endif /* !_SYS_TIMES_H */ diff --git a/lib/include/sys/timespec.h b/lib/include/sys/timespec.h deleted file mode 100644 index 2505cef..0000000 --- a/lib/include/sys/timespec.h +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)time.h 8.5 (Berkeley) 5/4/95 - * from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp - * $FreeBSD$ - */ - -#ifndef _SYS_TIMESPEC_H_ -#define _SYS_TIMESPEC_H_ - -#include -#include - -#if __BSD_VISIBLE -#define TIMEVAL_TO_TIMESPEC(tv, ts) \ - do { \ - (ts)->tv_sec = (tv)->tv_sec; \ - (ts)->tv_nsec = (tv)->tv_usec * 1000; \ - } while (0) -#define TIMESPEC_TO_TIMEVAL(tv, ts) \ - do { \ - (tv)->tv_sec = (ts)->tv_sec; \ - (tv)->tv_usec = (ts)->tv_nsec / 1000; \ - } while (0) - -#endif /* __BSD_VISIBLE */ - -/* - * Structure defined by POSIX.1b to be like a itimerval, but with - * timespecs. Used in the timer_*() system calls. - */ -struct itimerspec { - struct timespec it_interval; - struct timespec it_value; -}; - -#endif /* _SYS_TIMESPEC_H_ */ diff --git a/lib/include/sys/tree.h b/lib/include/sys/tree.h deleted file mode 100644 index 2d3cec0..0000000 --- a/lib/include/sys/tree.h +++ /dev/null @@ -1,864 +0,0 @@ -/* $NetBSD: tree.h,v 1.8 2004/03/28 19:38:30 provos Exp $ */ -/* $OpenBSD: tree.h,v 1.7 2002/10/17 21:51:54 art Exp $ */ -/* $FreeBSD: head/sys/sys/tree.h 347360 2019-05-08 18:47:00Z trasz $ */ - -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright 2002 Niels Provos - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _SYS_TREE_H_ -#define _SYS_TREE_H_ - -#include - -/* - * This file defines data structures for different types of trees: - * splay trees and red-black trees. - * - * A splay tree is a self-organizing data structure. Every operation - * on the tree causes a splay to happen. The splay moves the requested - * node to the root of the tree and partly rebalances it. - * - * This has the benefit that request locality causes faster lookups as - * the requested nodes move to the top of the tree. On the other hand, - * every lookup causes memory writes. - * - * The Balance Theorem bounds the total access time for m operations - * and n inserts on an initially empty tree as O((m + n)lg n). The - * amortized cost for a sequence of m accesses to a splay tree is O(lg n); - * - * A red-black tree is a binary search tree with the node color as an - * extra attribute. It fulfills a set of conditions: - * - every search path from the root to a leaf consists of the - * same number of black nodes, - * - each red node (except for the root) has a black parent, - * - each leaf node is black. - * - * Every operation on a red-black tree is bounded as O(lg n). - * The maximum height of a red-black tree is 2lg (n+1). - */ - -#define SPLAY_HEAD(name, type) \ -struct name { \ - struct type *sph_root; /* root of the tree */ \ -} - -#define SPLAY_INITIALIZER(root) \ - { NULL } - -#define SPLAY_INIT(root) do { \ - (root)->sph_root = NULL; \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_ENTRY(type) \ -struct { \ - struct type *spe_left; /* left element */ \ - struct type *spe_right; /* right element */ \ -} - -#define SPLAY_LEFT(elm, field) (elm)->field.spe_left -#define SPLAY_RIGHT(elm, field) (elm)->field.spe_right -#define SPLAY_ROOT(head) (head)->sph_root -#define SPLAY_EMPTY(head) (SPLAY_ROOT(head) == NULL) - -/* SPLAY_ROTATE_{LEFT,RIGHT} expect that tmp hold SPLAY_{RIGHT,LEFT} */ -#define SPLAY_ROTATE_RIGHT(head, tmp, field) do { \ - SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(tmp, field); \ - SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ - (head)->sph_root = tmp; \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_ROTATE_LEFT(head, tmp, field) do { \ - SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(tmp, field); \ - SPLAY_LEFT(tmp, field) = (head)->sph_root; \ - (head)->sph_root = tmp; \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_LINKLEFT(head, tmp, field) do { \ - SPLAY_LEFT(tmp, field) = (head)->sph_root; \ - tmp = (head)->sph_root; \ - (head)->sph_root = SPLAY_LEFT((head)->sph_root, field); \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_LINKRIGHT(head, tmp, field) do { \ - SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ - tmp = (head)->sph_root; \ - (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_ASSEMBLE(head, node, left, right, field) do { \ - SPLAY_RIGHT(left, field) = SPLAY_LEFT((head)->sph_root, field); \ - SPLAY_LEFT(right, field) = SPLAY_RIGHT((head)->sph_root, field);\ - SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(node, field); \ - SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(node, field); \ -} while (/*CONSTCOND*/ 0) - -/* Generates prototypes and inline functions */ - -#define SPLAY_PROTOTYPE(name, type, field, cmp) \ -void name##_SPLAY(struct name *, struct type *); \ -void name##_SPLAY_MINMAX(struct name *, int); \ -struct type *name##_SPLAY_INSERT(struct name *, struct type *); \ -struct type *name##_SPLAY_REMOVE(struct name *, struct type *); \ - \ -/* Finds the node with the same key as elm */ \ -static __unused __inline struct type * \ -name##_SPLAY_FIND(struct name *head, struct type *elm) \ -{ \ - if (SPLAY_EMPTY(head)) \ - return(NULL); \ - name##_SPLAY(head, elm); \ - if ((cmp)(elm, (head)->sph_root) == 0) \ - return (head->sph_root); \ - return (NULL); \ -} \ - \ -static __unused __inline struct type * \ -name##_SPLAY_NEXT(struct name *head, struct type *elm) \ -{ \ - name##_SPLAY(head, elm); \ - if (SPLAY_RIGHT(elm, field) != NULL) { \ - elm = SPLAY_RIGHT(elm, field); \ - while (SPLAY_LEFT(elm, field) != NULL) { \ - elm = SPLAY_LEFT(elm, field); \ - } \ - } else \ - elm = NULL; \ - return (elm); \ -} \ - \ -static __unused __inline struct type * \ -name##_SPLAY_MIN_MAX(struct name *head, int val) \ -{ \ - name##_SPLAY_MINMAX(head, val); \ - return (SPLAY_ROOT(head)); \ -} - -/* Main splay operation. - * Moves node close to the key of elm to top - */ -#define SPLAY_GENERATE(name, type, field, cmp) \ -struct type * \ -name##_SPLAY_INSERT(struct name *head, struct type *elm) \ -{ \ - if (SPLAY_EMPTY(head)) { \ - SPLAY_LEFT(elm, field) = SPLAY_RIGHT(elm, field) = NULL; \ - } else { \ - int __comp; \ - name##_SPLAY(head, elm); \ - __comp = (cmp)(elm, (head)->sph_root); \ - if(__comp < 0) { \ - SPLAY_LEFT(elm, field) = SPLAY_LEFT((head)->sph_root, field);\ - SPLAY_RIGHT(elm, field) = (head)->sph_root; \ - SPLAY_LEFT((head)->sph_root, field) = NULL; \ - } else if (__comp > 0) { \ - SPLAY_RIGHT(elm, field) = SPLAY_RIGHT((head)->sph_root, field);\ - SPLAY_LEFT(elm, field) = (head)->sph_root; \ - SPLAY_RIGHT((head)->sph_root, field) = NULL; \ - } else \ - return ((head)->sph_root); \ - } \ - (head)->sph_root = (elm); \ - return (NULL); \ -} \ - \ -struct type * \ -name##_SPLAY_REMOVE(struct name *head, struct type *elm) \ -{ \ - struct type *__tmp; \ - if (SPLAY_EMPTY(head)) \ - return (NULL); \ - name##_SPLAY(head, elm); \ - if ((cmp)(elm, (head)->sph_root) == 0) { \ - if (SPLAY_LEFT((head)->sph_root, field) == NULL) { \ - (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field);\ - } else { \ - __tmp = SPLAY_RIGHT((head)->sph_root, field); \ - (head)->sph_root = SPLAY_LEFT((head)->sph_root, field);\ - name##_SPLAY(head, elm); \ - SPLAY_RIGHT((head)->sph_root, field) = __tmp; \ - } \ - return (elm); \ - } \ - return (NULL); \ -} \ - \ -void \ -name##_SPLAY(struct name *head, struct type *elm) \ -{ \ - struct type __node, *__left, *__right, *__tmp; \ - int __comp; \ -\ - SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\ - __left = __right = &__node; \ -\ - while ((__comp = (cmp)(elm, (head)->sph_root)) != 0) { \ - if (__comp < 0) { \ - __tmp = SPLAY_LEFT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if ((cmp)(elm, __tmp) < 0){ \ - SPLAY_ROTATE_RIGHT(head, __tmp, field); \ - if (SPLAY_LEFT((head)->sph_root, field) == NULL)\ - break; \ - } \ - SPLAY_LINKLEFT(head, __right, field); \ - } else if (__comp > 0) { \ - __tmp = SPLAY_RIGHT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if ((cmp)(elm, __tmp) > 0){ \ - SPLAY_ROTATE_LEFT(head, __tmp, field); \ - if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\ - break; \ - } \ - SPLAY_LINKRIGHT(head, __left, field); \ - } \ - } \ - SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ -} \ - \ -/* Splay with either the minimum or the maximum element \ - * Used to find minimum or maximum element in tree. \ - */ \ -void name##_SPLAY_MINMAX(struct name *head, int __comp) \ -{ \ - struct type __node, *__left, *__right, *__tmp; \ -\ - SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\ - __left = __right = &__node; \ -\ - while (1) { \ - if (__comp < 0) { \ - __tmp = SPLAY_LEFT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if (__comp < 0){ \ - SPLAY_ROTATE_RIGHT(head, __tmp, field); \ - if (SPLAY_LEFT((head)->sph_root, field) == NULL)\ - break; \ - } \ - SPLAY_LINKLEFT(head, __right, field); \ - } else if (__comp > 0) { \ - __tmp = SPLAY_RIGHT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if (__comp > 0) { \ - SPLAY_ROTATE_LEFT(head, __tmp, field); \ - if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\ - break; \ - } \ - SPLAY_LINKRIGHT(head, __left, field); \ - } \ - } \ - SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ -} - -#define SPLAY_NEGINF -1 -#define SPLAY_INF 1 - -#define SPLAY_INSERT(name, x, y) name##_SPLAY_INSERT(x, y) -#define SPLAY_REMOVE(name, x, y) name##_SPLAY_REMOVE(x, y) -#define SPLAY_FIND(name, x, y) name##_SPLAY_FIND(x, y) -#define SPLAY_NEXT(name, x, y) name##_SPLAY_NEXT(x, y) -#define SPLAY_MIN(name, x) (SPLAY_EMPTY(x) ? NULL \ - : name##_SPLAY_MIN_MAX(x, SPLAY_NEGINF)) -#define SPLAY_MAX(name, x) (SPLAY_EMPTY(x) ? NULL \ - : name##_SPLAY_MIN_MAX(x, SPLAY_INF)) - -#define SPLAY_FOREACH(x, name, head) \ - for ((x) = SPLAY_MIN(name, head); \ - (x) != NULL; \ - (x) = SPLAY_NEXT(name, head, x)) - -/* Macros that define a red-black tree */ -#define RB_HEAD(name, type) \ -struct name { \ - struct type *rbh_root; /* root of the tree */ \ -} - -#define RB_INITIALIZER(root) \ - { NULL } - -#define RB_INIT(root) do { \ - (root)->rbh_root = NULL; \ -} while (/*CONSTCOND*/ 0) - -#define RB_BLACK 0 -#define RB_RED 1 -#define RB_ENTRY(type) \ -struct { \ - struct type *rbe_left; /* left element */ \ - struct type *rbe_right; /* right element */ \ - struct type *rbe_parent; /* parent element */ \ - int rbe_color; /* node color */ \ -} - -#define RB_LEFT(elm, field) (elm)->field.rbe_left -#define RB_RIGHT(elm, field) (elm)->field.rbe_right -#define RB_PARENT(elm, field) (elm)->field.rbe_parent -#define RB_COLOR(elm, field) (elm)->field.rbe_color -#define RB_ISRED(elm, field) ((elm) != NULL && RB_COLOR(elm, field) == RB_RED) -#define RB_ROOT(head) (head)->rbh_root -#define RB_EMPTY(head) (RB_ROOT(head) == NULL) - -#define RB_SET_PARENT(dst, src, field) do { \ - RB_PARENT(dst, field) = src; \ -} while (/*CONSTCOND*/ 0) - -#define RB_SET(elm, parent, field) do { \ - RB_SET_PARENT(elm, parent, field); \ - RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL; \ - RB_COLOR(elm, field) = RB_RED; \ -} while (/*CONSTCOND*/ 0) - -#define RB_SET_BLACKRED(black, red, field) do { \ - RB_COLOR(black, field) = RB_BLACK; \ - RB_COLOR(red, field) = RB_RED; \ -} while (/*CONSTCOND*/ 0) - -/* - * Something to be invoked in a loop at the root of every modified subtree, - * from the bottom up to the root, to update augmented node data. - */ -#ifndef RB_AUGMENT -#define RB_AUGMENT(x) break -#endif - -#define RB_SWAP_CHILD(head, out, in, field) do { \ - if (RB_PARENT(out, field) == NULL) \ - RB_ROOT(head) = (in); \ - else if ((out) == RB_LEFT(RB_PARENT(out, field), field)) \ - RB_LEFT(RB_PARENT(out, field), field) = (in); \ - else \ - RB_RIGHT(RB_PARENT(out, field), field) = (in); \ -} while (/*CONSTCOND*/ 0) - -#define RB_ROTATE_LEFT(head, elm, tmp, field) do { \ - (tmp) = RB_RIGHT(elm, field); \ - if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field)) != NULL) { \ - RB_SET_PARENT(RB_RIGHT(elm, field), elm, field); \ - } \ - RB_SET_PARENT(tmp, RB_PARENT(elm, field), field); \ - RB_SWAP_CHILD(head, elm, tmp, field); \ - RB_LEFT(tmp, field) = (elm); \ - RB_SET_PARENT(elm, tmp, field); \ - RB_AUGMENT(elm); \ -} while (/*CONSTCOND*/ 0) - -#define RB_ROTATE_RIGHT(head, elm, tmp, field) do { \ - (tmp) = RB_LEFT(elm, field); \ - if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field)) != NULL) { \ - RB_SET_PARENT(RB_LEFT(elm, field), elm, field); \ - } \ - RB_SET_PARENT(tmp, RB_PARENT(elm, field), field); \ - RB_SWAP_CHILD(head, elm, tmp, field); \ - RB_RIGHT(tmp, field) = (elm); \ - RB_SET_PARENT(elm, tmp, field); \ - RB_AUGMENT(elm); \ -} while (/*CONSTCOND*/ 0) - -/* - * The RB_PARENT_ROTATE_LEFT() and RB_PARENT_ROTATE_RIGHT() rotations are - * specialized versions of RB_ROTATE_LEFT() and RB_ROTATE_RIGHT() which may be - * used if the parent node exists and the direction of the child element is - * known. - */ - -#define RB_PARENT_ROTATE_LEFT(parent, left, tmp, field) do { \ - (tmp) = RB_RIGHT(left, field); \ - if ((RB_RIGHT(left, field) = RB_LEFT(tmp, field)) != NULL) { \ - RB_SET_PARENT(RB_RIGHT(left, field), left, field); \ - } \ - RB_SET_PARENT(tmp, parent, field); \ - RB_LEFT(parent, field) = (tmp); \ - RB_LEFT(tmp, field) = (left); \ - RB_SET_PARENT(left, tmp, field); \ - RB_AUGMENT(left); \ -} while (/*CONSTCOND*/ 0) - -#define RB_PARENT_ROTATE_RIGHT(parent, right, tmp, field) do { \ - (tmp) = RB_LEFT(right, field); \ - if ((RB_LEFT(right, field) = RB_RIGHT(tmp, field)) != NULL) { \ - RB_SET_PARENT(RB_LEFT(right, field), right, field); \ - } \ - RB_SET_PARENT(tmp, parent, field); \ - RB_RIGHT(parent, field) = (tmp); \ - RB_RIGHT(tmp, field) = (right); \ - RB_SET_PARENT(right, tmp, field); \ - RB_AUGMENT(right); \ -} while (/*CONSTCOND*/ 0) - -/* - * The RB_RED_ROTATE_LEFT() and RB_RED_ROTATE_RIGHT() rotations are specialized - * versions of RB_ROTATE_LEFT() and RB_ROTATE_RIGHT() which may be used if we - * rotate an element with a red child which has a black sibling. Such a red - * node must have at least two child nodes so that the following red-black tree - * invariant is fulfilled: - * - * Every path from a given node to any of its descendant NULL nodes goes - * through the same number of black nodes. - * - * elm (could be the root) - * / \ - * BLACK RED (left or right child) - * / \ - * BLACK BLACK - */ - -#define RB_RED_ROTATE_LEFT(head, elm, tmp, field) do { \ - (tmp) = RB_RIGHT(elm, field); \ - RB_RIGHT(elm, field) = RB_LEFT(tmp, field); \ - RB_SET_PARENT(RB_RIGHT(elm, field), elm, field); \ - RB_SET_PARENT(tmp, RB_PARENT(elm, field), field); \ - RB_SWAP_CHILD(head, elm, tmp, field); \ - RB_LEFT(tmp, field) = (elm); \ - RB_SET_PARENT(elm, tmp, field); \ - RB_AUGMENT(elm); \ -} while (/*CONSTCOND*/ 0) - -#define RB_RED_ROTATE_RIGHT(head, elm, tmp, field) do { \ - (tmp) = RB_LEFT(elm, field); \ - RB_LEFT(elm, field) = RB_RIGHT(tmp, field); \ - RB_SET_PARENT(RB_LEFT(elm, field), elm, field); \ - RB_SET_PARENT(tmp, RB_PARENT(elm, field), field); \ - RB_SWAP_CHILD(head, elm, tmp, field); \ - RB_RIGHT(tmp, field) = (elm); \ - RB_SET_PARENT(elm, tmp, field); \ - RB_AUGMENT(elm); \ -} while (/*CONSTCOND*/ 0) - -/* Generates prototypes and inline functions */ -#define RB_PROTOTYPE(name, type, field, cmp) \ - RB_PROTOTYPE_INTERNAL(name, type, field, cmp,) -#define RB_PROTOTYPE_STATIC(name, type, field, cmp) \ - RB_PROTOTYPE_INTERNAL(name, type, field, cmp, __unused static) -#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr) \ - RB_PROTOTYPE_INSERT_COLOR(name, type, attr); \ - RB_PROTOTYPE_REMOVE_COLOR(name, type, attr); \ - RB_PROTOTYPE_INSERT(name, type, attr); \ - RB_PROTOTYPE_REMOVE(name, type, attr); \ - RB_PROTOTYPE_FIND(name, type, attr); \ - RB_PROTOTYPE_NFIND(name, type, attr); \ - RB_PROTOTYPE_NEXT(name, type, attr); \ - RB_PROTOTYPE_PREV(name, type, attr); \ - RB_PROTOTYPE_MINMAX(name, type, attr); \ - RB_PROTOTYPE_REINSERT(name, type, attr); -#define RB_PROTOTYPE_INSERT_COLOR(name, type, attr) \ - attr void name##_RB_INSERT_COLOR(struct name *, struct type *) -#define RB_PROTOTYPE_REMOVE_COLOR(name, type, attr) \ - attr void name##_RB_REMOVE_COLOR(struct name *, struct type *) -#define RB_PROTOTYPE_REMOVE(name, type, attr) \ - attr struct type *name##_RB_REMOVE(struct name *, struct type *) -#define RB_PROTOTYPE_INSERT(name, type, attr) \ - attr struct type *name##_RB_INSERT(struct name *, struct type *) -#define RB_PROTOTYPE_FIND(name, type, attr) \ - attr struct type *name##_RB_FIND(struct name *, struct type *) -#define RB_PROTOTYPE_NFIND(name, type, attr) \ - attr struct type *name##_RB_NFIND(struct name *, struct type *) -#define RB_PROTOTYPE_NEXT(name, type, attr) \ - attr struct type *name##_RB_NEXT(struct type *) -#define RB_PROTOTYPE_PREV(name, type, attr) \ - attr struct type *name##_RB_PREV(struct type *) -#define RB_PROTOTYPE_MINMAX(name, type, attr) \ - attr struct type *name##_RB_MINMAX(struct name *, int) -#define RB_PROTOTYPE_REINSERT(name, type, attr) \ - attr struct type *name##_RB_REINSERT(struct name *, struct type *) - -/* Main rb operation. - * Moves node close to the key of elm to top - */ -#define RB_GENERATE(name, type, field, cmp) \ - RB_GENERATE_INTERNAL(name, type, field, cmp,) -#define RB_GENERATE_STATIC(name, type, field, cmp) \ - RB_GENERATE_INTERNAL(name, type, field, cmp, __unused static) -#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr) \ - RB_GENERATE_INSERT_COLOR(name, type, field, attr) \ - RB_GENERATE_REMOVE_COLOR(name, type, field, attr) \ - RB_GENERATE_INSERT(name, type, field, cmp, attr) \ - RB_GENERATE_REMOVE(name, type, field, attr) \ - RB_GENERATE_FIND(name, type, field, cmp, attr) \ - RB_GENERATE_NFIND(name, type, field, cmp, attr) \ - RB_GENERATE_NEXT(name, type, field, attr) \ - RB_GENERATE_PREV(name, type, field, attr) \ - RB_GENERATE_MINMAX(name, type, field, attr) \ - RB_GENERATE_REINSERT(name, type, field, cmp, attr) - - -#define RB_GENERATE_INSERT_COLOR(name, type, field, attr) \ -attr void \ -name##_RB_INSERT_COLOR(struct name *head, struct type *elm) \ -{ \ - struct type *parent, *gparent, *tmp; \ - while (RB_ISRED((parent = RB_PARENT(elm, field)), field)) { \ - gparent = RB_PARENT(parent, field); \ - if (parent == RB_LEFT(gparent, field)) { \ - tmp = RB_RIGHT(gparent, field); \ - if (RB_ISRED(tmp, field)) { \ - RB_COLOR(tmp, field) = RB_BLACK; \ - RB_SET_BLACKRED(parent, gparent, field);\ - elm = gparent; \ - continue; \ - } \ - if (RB_RIGHT(parent, field) == elm) { \ - RB_PARENT_ROTATE_LEFT(gparent, parent, \ - tmp, field); \ - tmp = parent; \ - parent = elm; \ - elm = tmp; \ - } \ - RB_SET_BLACKRED(parent, gparent, field); \ - RB_ROTATE_RIGHT(head, gparent, tmp, field); \ - } else { \ - tmp = RB_LEFT(gparent, field); \ - if (RB_ISRED(tmp, field)) { \ - RB_COLOR(tmp, field) = RB_BLACK; \ - RB_SET_BLACKRED(parent, gparent, field);\ - elm = gparent; \ - continue; \ - } \ - if (RB_LEFT(parent, field) == elm) { \ - RB_PARENT_ROTATE_RIGHT(gparent, parent, \ - tmp, field); \ - tmp = parent; \ - parent = elm; \ - elm = tmp; \ - } \ - RB_SET_BLACKRED(parent, gparent, field); \ - RB_ROTATE_LEFT(head, gparent, tmp, field); \ - } \ - } \ - RB_COLOR(head->rbh_root, field) = RB_BLACK; \ -} - -#define RB_GENERATE_REMOVE_COLOR(name, type, field, attr) \ -attr void \ -name##_RB_REMOVE_COLOR(struct name *head, struct type *parent) \ -{ \ - struct type *elm, *tmp; \ - elm = NULL; \ - do { \ - if (RB_LEFT(parent, field) == elm) { \ - tmp = RB_RIGHT(parent, field); \ - if (RB_COLOR(tmp, field) == RB_RED) { \ - RB_SET_BLACKRED(tmp, parent, field); \ - RB_RED_ROTATE_LEFT(head, parent, tmp, field); \ - tmp = RB_RIGHT(parent, field); \ - } \ - if (RB_ISRED(RB_RIGHT(tmp, field), field)) \ - RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK; \ - else if (RB_ISRED(RB_LEFT(tmp, field), field)) { \ - struct type *oleft; \ - RB_PARENT_ROTATE_RIGHT(parent, tmp, \ - oleft, field); \ - RB_COLOR(oleft, field) = RB_BLACK; \ - tmp = oleft; \ - } else { \ - RB_COLOR(tmp, field) = RB_RED; \ - elm = parent; \ - parent = RB_PARENT(elm, field); \ - continue; \ - } \ - RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ - RB_COLOR(parent, field) = RB_BLACK; \ - RB_ROTATE_LEFT(head, parent, tmp, field); \ - elm = RB_ROOT(head); \ - break; \ - } else { \ - tmp = RB_LEFT(parent, field); \ - if (RB_COLOR(tmp, field) == RB_RED) { \ - RB_SET_BLACKRED(tmp, parent, field); \ - RB_RED_ROTATE_RIGHT(head, parent, tmp, field); \ - tmp = RB_LEFT(parent, field); \ - } \ - if (RB_ISRED(RB_LEFT(tmp, field), field)) \ - RB_COLOR(RB_LEFT(tmp, field), field) = RB_BLACK; \ - else if (RB_ISRED(RB_RIGHT(tmp, field), field)) { \ - struct type *oright; \ - RB_PARENT_ROTATE_LEFT(parent, tmp, \ - oright, field); \ - RB_COLOR(oright, field) = RB_BLACK; \ - tmp = oright; \ - } else { \ - RB_COLOR(tmp, field) = RB_RED; \ - elm = parent; \ - parent = RB_PARENT(elm, field); \ - continue; \ - } \ - RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ - RB_COLOR(parent, field) = RB_BLACK; \ - RB_ROTATE_RIGHT(head, parent, tmp, field); \ - elm = RB_ROOT(head); \ - break; \ - } \ - } while (RB_COLOR(elm, field) == RB_BLACK && parent != NULL); \ - RB_COLOR(elm, field) = RB_BLACK; \ -} - -#define RB_GENERATE_REMOVE(name, type, field, attr) \ -attr struct type * \ -name##_RB_REMOVE(struct name *head, struct type *elm) \ -{ \ - struct type *child, *old, *parent, *right; \ - int color; \ - \ - old = elm; \ - parent = RB_PARENT(elm, field); \ - right = RB_RIGHT(elm, field); \ - color = RB_COLOR(elm, field); \ - if (RB_LEFT(elm, field) == NULL) \ - elm = child = right; \ - else if (right == NULL) \ - elm = child = RB_LEFT(elm, field); \ - else { \ - if ((child = RB_LEFT(right, field)) == NULL) { \ - child = RB_RIGHT(right, field); \ - RB_RIGHT(old, field) = child; \ - parent = elm = right; \ - } else { \ - do \ - elm = child; \ - while ((child = RB_LEFT(elm, field)) != NULL); \ - child = RB_RIGHT(elm, field); \ - parent = RB_PARENT(elm, field); \ - RB_LEFT(parent, field) = child; \ - RB_SET_PARENT(RB_RIGHT(old, field), elm, field); \ - } \ - RB_SET_PARENT(RB_LEFT(old, field), elm, field); \ - color = RB_COLOR(elm, field); \ - elm->field = old->field; \ - } \ - RB_SWAP_CHILD(head, old, elm, field); \ - if (child != NULL) { \ - RB_SET_PARENT(child, parent, field); \ - RB_COLOR(child, field) = RB_BLACK; \ - } else if (color != RB_RED && parent != NULL) \ - name##_RB_REMOVE_COLOR(head, parent); \ - while (parent != NULL) { \ - RB_AUGMENT(parent); \ - parent = RB_PARENT(parent, field); \ - } \ - return (old); \ -} - -#define RB_GENERATE_INSERT(name, type, field, cmp, attr) \ -/* Inserts a node into the RB tree */ \ -attr struct type * \ -name##_RB_INSERT(struct name *head, struct type *elm) \ -{ \ - struct type *tmp; \ - struct type *parent = NULL; \ - int comp = 0; \ - tmp = RB_ROOT(head); \ - while (tmp) { \ - parent = tmp; \ - comp = (cmp)(elm, parent); \ - if (comp < 0) \ - tmp = RB_LEFT(tmp, field); \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - RB_SET(elm, parent, field); \ - if (parent != NULL) { \ - if (comp < 0) \ - RB_LEFT(parent, field) = elm; \ - else \ - RB_RIGHT(parent, field) = elm; \ - } else \ - RB_ROOT(head) = elm; \ - name##_RB_INSERT_COLOR(head, elm); \ - while (elm != NULL) { \ - RB_AUGMENT(elm); \ - elm = RB_PARENT(elm, field); \ - } \ - return (NULL); \ -} - -#define RB_GENERATE_FIND(name, type, field, cmp, attr) \ -/* Finds the node with the same key as elm */ \ -attr struct type * \ -name##_RB_FIND(struct name *head, struct type *elm) \ -{ \ - struct type *tmp = RB_ROOT(head); \ - int comp; \ - while (tmp) { \ - comp = cmp(elm, tmp); \ - if (comp < 0) \ - tmp = RB_LEFT(tmp, field); \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - return (NULL); \ -} - -#define RB_GENERATE_NFIND(name, type, field, cmp, attr) \ -/* Finds the first node greater than or equal to the search key */ \ -attr struct type * \ -name##_RB_NFIND(struct name *head, struct type *elm) \ -{ \ - struct type *tmp = RB_ROOT(head); \ - struct type *res = NULL; \ - int comp; \ - while (tmp) { \ - comp = cmp(elm, tmp); \ - if (comp < 0) { \ - res = tmp; \ - tmp = RB_LEFT(tmp, field); \ - } \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - return (res); \ -} - -#define RB_GENERATE_NEXT(name, type, field, attr) \ -/* ARGSUSED */ \ -attr struct type * \ -name##_RB_NEXT(struct type *elm) \ -{ \ - if (RB_RIGHT(elm, field)) { \ - elm = RB_RIGHT(elm, field); \ - while (RB_LEFT(elm, field)) \ - elm = RB_LEFT(elm, field); \ - } else { \ - if (RB_PARENT(elm, field) && \ - (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - else { \ - while (RB_PARENT(elm, field) && \ - (elm == RB_RIGHT(RB_PARENT(elm, field), field)))\ - elm = RB_PARENT(elm, field); \ - elm = RB_PARENT(elm, field); \ - } \ - } \ - return (elm); \ -} - -#define RB_GENERATE_PREV(name, type, field, attr) \ -/* ARGSUSED */ \ -attr struct type * \ -name##_RB_PREV(struct type *elm) \ -{ \ - if (RB_LEFT(elm, field)) { \ - elm = RB_LEFT(elm, field); \ - while (RB_RIGHT(elm, field)) \ - elm = RB_RIGHT(elm, field); \ - } else { \ - if (RB_PARENT(elm, field) && \ - (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - else { \ - while (RB_PARENT(elm, field) && \ - (elm == RB_LEFT(RB_PARENT(elm, field), field)))\ - elm = RB_PARENT(elm, field); \ - elm = RB_PARENT(elm, field); \ - } \ - } \ - return (elm); \ -} - -#define RB_GENERATE_MINMAX(name, type, field, attr) \ -attr struct type * \ -name##_RB_MINMAX(struct name *head, int val) \ -{ \ - struct type *tmp = RB_ROOT(head); \ - struct type *parent = NULL; \ - while (tmp) { \ - parent = tmp; \ - if (val < 0) \ - tmp = RB_LEFT(tmp, field); \ - else \ - tmp = RB_RIGHT(tmp, field); \ - } \ - return (parent); \ -} - -#define RB_GENERATE_REINSERT(name, type, field, cmp, attr) \ -attr struct type * \ -name##_RB_REINSERT(struct name *head, struct type *elm) \ -{ \ - struct type *cmpelm; \ - if (((cmpelm = RB_PREV(name, head, elm)) != NULL && \ - cmp(cmpelm, elm) >= 0) || \ - ((cmpelm = RB_NEXT(name, head, elm)) != NULL && \ - cmp(elm, cmpelm) >= 0)) { \ - /* XXXLAS: Remove/insert is heavy handed. */ \ - RB_REMOVE(name, head, elm); \ - return (RB_INSERT(name, head, elm)); \ - } \ - return (NULL); \ -} \ - -#define RB_NEGINF -1 -#define RB_INF 1 - -#define RB_INSERT(name, x, y) name##_RB_INSERT(x, y) -#define RB_REMOVE(name, x, y) name##_RB_REMOVE(x, y) -#define RB_FIND(name, x, y) name##_RB_FIND(x, y) -#define RB_NFIND(name, x, y) name##_RB_NFIND(x, y) -#define RB_NEXT(name, x, y) name##_RB_NEXT(y) -#define RB_PREV(name, x, y) name##_RB_PREV(y) -#define RB_MIN(name, x) name##_RB_MINMAX(x, RB_NEGINF) -#define RB_MAX(name, x) name##_RB_MINMAX(x, RB_INF) -#define RB_REINSERT(name, x, y) name##_RB_REINSERT(x, y) - -#define RB_FOREACH(x, name, head) \ - for ((x) = RB_MIN(name, head); \ - (x) != NULL; \ - (x) = name##_RB_NEXT(x)) - -#define RB_FOREACH_FROM(x, name, y) \ - for ((x) = (y); \ - ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ - (x) = (y)) - -#define RB_FOREACH_SAFE(x, name, head, y) \ - for ((x) = RB_MIN(name, head); \ - ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ - (x) = (y)) - -#define RB_FOREACH_REVERSE(x, name, head) \ - for ((x) = RB_MAX(name, head); \ - (x) != NULL; \ - (x) = name##_RB_PREV(x)) - -#define RB_FOREACH_REVERSE_FROM(x, name, y) \ - for ((x) = (y); \ - ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ - (x) = (y)) - -#define RB_FOREACH_REVERSE_SAFE(x, name, head, y) \ - for ((x) = RB_MAX(name, head); \ - ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ - (x) = (y)) - -#endif /* _SYS_TREE_H_ */ diff --git a/lib/include/sys/types.h b/lib/include/sys/types.h deleted file mode 100644 index 5035d54..0000000 --- a/lib/include/sys/types.h +++ /dev/null @@ -1,228 +0,0 @@ -/* unified sys/types.h: - start with sef's sysvi386 version. - merge go32 version -- a few ifdefs. - h8300hms, h8300xray, and sysvnecv70 disagree on the following types: - - typedef int gid_t; - typedef int uid_t; - typedef int dev_t; - typedef int ino_t; - typedef int mode_t; - typedef int caddr_t; - - however, these aren't "reasonable" values, the sysvi386 ones make far - more sense, and should work sufficiently well (in particular, h8300 - doesn't have a stat, and the necv70 doesn't matter.) -- eichin - */ - -#ifndef _SYS_TYPES_H - -#include <_ansi.h> -#include -#include - -/* BSD types permitted by POSIX and always exposed as in Glibc. Only provided - for backward compatibility with BSD code. The uintN_t standard types should - be preferred in new code. */ -#if ___int8_t_defined -typedef __uint8_t u_int8_t; -#endif -#if ___int16_t_defined -typedef __uint16_t u_int16_t; -#endif -#if ___int32_t_defined -typedef __uint32_t u_int32_t; -#endif -#if ___int64_t_defined -typedef __uint64_t u_int64_t; -#endif -typedef __intptr_t register_t; -#define __BIT_TYPES_DEFINED__ 1 - -#ifndef __need_inttypes - -#define _SYS_TYPES_H -#include -#include - -#if __BSD_VISIBLE -#include -#include -# define physadr physadr_t -# define quad quad_t - -#ifndef _IN_ADDR_T_DECLARED -typedef __uint32_t in_addr_t; /* base type for internet address */ -#define _IN_ADDR_T_DECLARED -#endif - -#ifndef _IN_PORT_T_DECLARED -typedef __uint16_t in_port_t; -#define _IN_PORT_T_DECLARED -#endif - -typedef __uintptr_t u_register_t; -#endif /* __BSD_VISIBLE */ - -#if __MISC_VISIBLE -#ifndef _BSDTYPES_DEFINED -/* also defined in mingw/gmon.h and in w32api/winsock[2].h */ -#ifndef __u_char_defined -typedef unsigned char u_char; -#define __u_char_defined -#endif -#ifndef __u_short_defined -typedef unsigned short u_short; -#define __u_short_defined -#endif -#ifndef __u_int_defined -typedef unsigned int u_int; -#define __u_int_defined -#endif -#ifndef __u_long_defined -typedef unsigned long u_long; -#define __u_long_defined -#endif -#define _BSDTYPES_DEFINED -#endif -#endif /* __MISC_VISIBLE */ - -#if __MISC_VISIBLE -typedef unsigned short ushort; /* System V compatibility */ -typedef unsigned int uint; /* System V compatibility */ -typedef unsigned long ulong; /* System V compatibility */ -#endif - -#ifndef _BLKCNT_T_DECLARED -typedef __blkcnt_t blkcnt_t; -#define _BLKCNT_T_DECLARED -#endif - -#ifndef _BLKSIZE_T_DECLARED -typedef __blksize_t blksize_t; -#define _BLKSIZE_T_DECLARED -#endif - -#if !defined(__clock_t_defined) && !defined(_CLOCK_T_DECLARED) -typedef _CLOCK_T_ clock_t; -#define __clock_t_defined -#define _CLOCK_T_DECLARED -#endif - -#if !defined(__time_t_defined) && !defined(_TIME_T_DECLARED) -typedef _TIME_T_ time_t; -#define __time_t_defined -#define _TIME_T_DECLARED -#endif - -typedef __daddr_t daddr_t; - -#ifndef __caddr_t_defined -typedef char * caddr_t; -#define __caddr_t_defined -#endif - -#ifndef _FSBLKCNT_T_DECLARED /* for statvfs() */ -typedef __fsblkcnt_t fsblkcnt_t; -typedef __fsfilcnt_t fsfilcnt_t; -#define _FSBLKCNT_T_DECLARED -#endif - -#ifndef _ID_T_DECLARED -typedef __id_t id_t; /* can hold a uid_t or pid_t */ -#define _ID_T_DECLARED -#endif - -#ifndef _INO_T_DECLARED -typedef __ino_t ino_t; /* inode number */ -#define _INO_T_DECLARED -#endif - -#if defined(__i386__) && (defined(GO32) || defined(__MSDOS__)) -typedef char * addr_t; -typedef unsigned long vm_offset_t; -typedef unsigned long vm_size_t; -#endif /* __i386__ && (GO32 || __MSDOS__) */ - -/* - * All these should be machine specific - right now they are all broken. - * However, for all of Cygnus' embedded targets, we want them to all be - * the same. Otherwise things like sizeof (struct stat) might depend on - * how the file was compiled (e.g. -mint16 vs -mint32, etc.). - */ - -#ifndef _OFF_T_DECLARED -typedef __off_t off_t; /* file offset */ -#define _OFF_T_DECLARED -#endif -#ifndef _DEV_T_DECLARED -typedef __dev_t dev_t; /* device number or struct cdev */ -#define _DEV_T_DECLARED -#endif -#ifndef _UID_T_DECLARED -typedef __uid_t uid_t; /* user id */ -#define _UID_T_DECLARED -#endif -#ifndef _GID_T_DECLARED -typedef __gid_t gid_t; /* group id */ -#define _GID_T_DECLARED -#endif - -#ifndef _PID_T_DECLARED -typedef __pid_t pid_t; /* process id */ -#define _PID_T_DECLARED -#endif - -#ifndef _KEY_T_DECLARED -typedef __key_t key_t; /* IPC key */ -#define _KEY_T_DECLARED -#endif - -#ifndef _SSIZE_T_DECLARED -typedef _ssize_t ssize_t; -#define _SSIZE_T_DECLARED -#endif - -#ifndef _MODE_T_DECLARED -typedef __mode_t mode_t; /* permissions */ -#define _MODE_T_DECLARED -#endif - -#ifndef _NLINK_T_DECLARED -typedef __nlink_t nlink_t; /* link count */ -#define _NLINK_T_DECLARED -#endif - -#if !defined(__clockid_t_defined) && !defined(_CLOCKID_T_DECLARED) -typedef __clockid_t clockid_t; -#define __clockid_t_defined -#define _CLOCKID_T_DECLARED -#endif - -#if !defined(__timer_t_defined) && !defined(_TIMER_T_DECLARED) -typedef __timer_t timer_t; -#define __timer_t_defined -#define _TIMER_T_DECLARED -#endif - -#ifndef _USECONDS_T_DECLARED -typedef __useconds_t useconds_t; /* microseconds (unsigned) */ -#define _USECONDS_T_DECLARED -#endif - -#ifndef _SUSECONDS_T_DECLARED -typedef __suseconds_t suseconds_t; -#define _SUSECONDS_T_DECLARED -#endif - -typedef __int64_t sbintime_t; - -#include -#include -#include - -#endif /* !__need_inttypes */ - -#undef __need_inttypes - -#endif /* _SYS_TYPES_H */ diff --git a/lib/include/sys/unistd.h b/lib/include/sys/unistd.h deleted file mode 100644 index 216d779..0000000 --- a/lib/include/sys/unistd.h +++ /dev/null @@ -1,586 +0,0 @@ -#ifndef _SYS_UNISTD_H -#define _SYS_UNISTD_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <_ansi.h> -#define __need_size_t -#define __need_ptrdiff_t -#include -#include -#include -#include - -extern char **environ; - -void _exit (int __status) _ATTRIBUTE ((__noreturn__)); - -int access (const char *__path, int __amode); -unsigned alarm (unsigned __secs); -int chdir (const char *__path); -int chmod (const char *__path, mode_t __mode); -int chown (const char *__path, uid_t __owner, gid_t __group); -#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112) -int chroot (const char *__path); -#endif -int close (int __fildes); -#if __POSIX_VISIBLE >= 199209 -size_t confstr (int __name, char *__buf, size_t __len); -#endif -#if __XSI_VISIBLE -char * crypt (const char *__key, const char *__salt); -#endif -#if __XSI_VISIBLE && __XSI_VISIBLE < 700 -char * ctermid (char *__s); -#endif -#if __XSI_VISIBLE && __XSI_VISIBLE < 600 -char * cuserid (char *__s); -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -int daemon (int nochdir, int noclose); -#endif -int dup (int __fildes); -int dup2 (int __fildes, int __fildes2); -#if __GNU_VISIBLE -int dup3 (int __fildes, int __fildes2, int flags); -int eaccess (const char *__path, int __mode); -#endif -#if __XSI_VISIBLE -void encrypt (char *__block, int __edflag); -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -void endusershell (void); -#endif -#if __GNU_VISIBLE -int euidaccess (const char *__path, int __mode); -#endif -int execl (const char *__path, const char *, ...); -int execle (const char *__path, const char *, ...); -int execlp (const char *__file, const char *, ...); -#if __MISC_VISIBLE -int execlpe (const char *__file, const char *, ...); -#endif -int execv (const char *__path, char * const __argv[]); -int execve (const char *__path, char * const __argv[], char * const __envp[]); -int execvp (const char *__file, char * const __argv[]); -#if __GNU_VISIBLE -int execvpe (const char *__file, char * const __argv[], char * const __envp[]); -#endif -#if __ATFILE_VISIBLE -int faccessat (int __dirfd, const char *__path, int __mode, int __flags); -#endif -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -int fchdir (int __fildes); -#endif -#if __POSIX_VISIBLE >= 199309 -int fchmod (int __fildes, mode_t __mode); -#endif -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -int fchown (int __fildes, uid_t __owner, gid_t __group); -#endif -#if __ATFILE_VISIBLE -int fchownat (int __dirfd, const char *__path, uid_t __owner, gid_t __group, int __flags); -#endif -#if __POSIX_VISIBLE >= 200809 -int fexecve (int __fd, char * const __argv[], char * const __envp[]); -#endif -pid_t fork (void); -long fpathconf (int __fd, int __name); -int fsync (int __fd); -#if __POSIX_VISIBLE >= 199309 -int fdatasync (int __fd); -#endif -#if __GNU_VISIBLE -char * get_current_dir_name (void); -#endif -char * getcwd (char *__buf, size_t __size); -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -int getdomainname (char *__name, size_t __len); -#endif -#if __BSD_VISIBLE -int getentropy (void *, size_t); -#endif -gid_t getegid (void); -uid_t geteuid (void); -gid_t getgid (void); -int getgroups (int __gidsetsize, gid_t __grouplist[]); -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 -long gethostid (void); -#endif -char * getlogin (void); -#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) -int getlogin_r (char *name, size_t namesize) ; -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE && __POSIX_VISIBLE < 200112) -char * getpass (const char *__prompt); -int getpagesize (void); -#endif -#if __BSD_VISIBLE -int getpeereid (int, uid_t *, gid_t *); -#endif -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4 -pid_t getpgid (pid_t); -#endif -pid_t getpgrp (void); -pid_t getpid (void); -pid_t getppid (void); -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4 -pid_t getsid (pid_t); -#endif -uid_t getuid (void); -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -char * getusershell (void); -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200809) -char * getwd (char *__buf); -#endif -#if __BSD_VISIBLE -int iruserok (unsigned long raddr, int superuser, const char *ruser, const char *luser); -#endif -int isatty (int __fildes); -#if __BSD_VISIBLE -int issetugid (void); -#endif -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -int lchown (const char *__path, uid_t __owner, gid_t __group); -#endif -int link (const char *__path1, const char *__path2); -#if __ATFILE_VISIBLE -int linkat (int __dirfd1, const char *__path1, int __dirfd2, const char *__path2, int __flags); -#endif -#if __MISC_VISIBLE || __XSI_VISIBLE -int nice (int __nice_value); -#endif -#if !defined(__INSIDE_CYGWIN__) -off_t lseek (int __fildes, off_t __offset, int __whence); -#endif -#if __MISC_VISIBLE || __XSI_VISIBLE >= 4 -#define F_ULOCK 0 -#define F_LOCK 1 -#define F_TLOCK 2 -#define F_TEST 3 -int lockf (int __fd, int __cmd, off_t __len); -#endif -long pathconf (const char *__path, int __name); -int pause (void); -#if __POSIX_VISIBLE >= 199506 -int pthread_atfork (void (*)(void), void (*)(void), void (*)(void)); -#endif -int pipe (int __fildes[2]); -#if __GNU_VISIBLE -int pipe2 (int __fildes[2], int flags); -#endif -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500 -ssize_t pread (int __fd, void *__buf, size_t __nbytes, off_t __offset); -ssize_t pwrite (int __fd, const void *__buf, size_t __nbytes, off_t __offset); -#endif -_READ_WRITE_RETURN_TYPE read (int __fd, void *__buf, size_t __nbyte); -#if __BSD_VISIBLE -int rresvport (int *__alport); -int revoke (char *__path); -#endif -int rmdir (const char *__path); -#if __BSD_VISIBLE -int ruserok (const char *rhost, int superuser, const char *ruser, const char *luser); -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112) -void * sbrk (ptrdiff_t __incr); -#endif -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 -int setegid (gid_t __gid); -int seteuid (uid_t __uid); -#endif -int setgid (gid_t __gid); -#if __BSD_VISIBLE -int setgroups (int ngroups, const gid_t *grouplist); -#endif -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -int sethostname (const char *, size_t); -#endif -int setpgid (pid_t __pid, pid_t __pgid); -#if __SVID_VISIBLE || __XSI_VISIBLE >= 500 -int setpgrp (void); -#endif -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 -int setregid (gid_t __rgid, gid_t __egid); -int setreuid (uid_t __ruid, uid_t __euid); -#endif -pid_t setsid (void); -int setuid (uid_t __uid); -#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -void setusershell (void); -#endif -unsigned sleep (unsigned int __seconds); -#if __XSI_VISIBLE -void swab (const void *__restrict, void *__restrict, ssize_t); -#endif -long sysconf (int __name); -pid_t tcgetpgrp (int __fildes); -int tcsetpgrp (int __fildes, pid_t __pgrp_id); -char * ttyname (int __fildes); -int ttyname_r (int, char *, size_t); -int unlink (const char *__path); -#if __XSI_VISIBLE >= 500 && __POSIX_VISIBLE < 200809 || __BSD_VISIBLE -int usleep (useconds_t __useconds); -#endif -#if __BSD_VISIBLE -int vhangup (void); -#endif -_READ_WRITE_RETURN_TYPE write (int __fd, const void *__buf, size_t __nbyte); - -#ifdef __CYGWIN__ -# define __UNISTD_GETOPT__ -# include -# undef __UNISTD_GETOPT__ -#else -extern char *optarg; /* getopt(3) external variables */ -extern int optind, opterr, optopt; -int getopt(int, char * const [], const char *); -extern int optreset; /* getopt(3) external variable */ -#endif - -#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200809) -pid_t vfork (void); -#endif - -#ifdef _LIBC -/* Provide prototypes for most of the _ names that are - provided in newlib for some compilers. */ -int _close (int __fildes); -pid_t _fork (void); -pid_t _getpid (void); -int _isatty (int __fildes); -int _link (const char *__path1, const char *__path2); -_off_t _lseek (int __fildes, _off_t __offset, int __whence); -#ifdef __LARGE64_FILES -_off64_t _lseek64 (int __filedes, _off64_t __offset, int __whence); -#endif -_READ_WRITE_RETURN_TYPE _read (int __fd, void *__buf, size_t __nbyte); -void * _sbrk (ptrdiff_t __incr); -int _unlink (const char *__path); -_READ_WRITE_RETURN_TYPE _write (int __fd, const void *__buf, size_t __nbyte); -int _execve (const char *__path, char * const __argv[], char * const __envp[]); -#endif - -#if !defined(__INSIDE_CYGWIN__) -#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500 -int ftruncate (int __fd, off_t __length); -#endif -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500 -int truncate (const char *, off_t __length); -#endif -#endif - -#if __BSD_VISIBLE || __POSIX_VISIBLE < 200112 -int getdtablesize (void); -#endif -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500 -useconds_t ualarm (useconds_t __useconds, useconds_t __interval); -#endif - -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500 -#if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) -/* winsock[2].h defines as __stdcall, and with int as 2nd arg */ - int gethostname (char *__name, size_t __len); -#endif -#endif - -#if __MISC_VISIBLE -int setdtablesize (int); -#endif - -#if __BSD_VISIBLE || __XSI_VISIBLE >= 500 -void sync (void); -#endif - -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 4 -ssize_t readlink (const char *__restrict __path, - char *__restrict __buf, size_t __buflen); -int symlink (const char *__name1, const char *__name2); -#endif -#if __ATFILE_VISIBLE -ssize_t readlinkat (int __dirfd1, const char *__restrict __path, - char *__restrict __buf, size_t __buflen); -int symlinkat (const char *, int, const char *); -int unlinkat (int, const char *, int); -#endif - -#define F_OK 0 -#define R_OK 4 -#define W_OK 2 -#define X_OK 1 - -# define SEEK_SET 0 -# define SEEK_CUR 1 -# define SEEK_END 2 - -#include - -#define STDIN_FILENO 0 /* standard input file descriptor */ -#define STDOUT_FILENO 1 /* standard output file descriptor */ -#define STDERR_FILENO 2 /* standard error file descriptor */ - -/* - * sysconf values per IEEE Std 1003.1, 2008 Edition - */ - -#define _SC_ARG_MAX 0 -#define _SC_CHILD_MAX 1 -#define _SC_CLK_TCK 2 -#define _SC_NGROUPS_MAX 3 -#define _SC_OPEN_MAX 4 -#define _SC_JOB_CONTROL 5 -#define _SC_SAVED_IDS 6 -#define _SC_VERSION 7 -#define _SC_PAGESIZE 8 -#define _SC_PAGE_SIZE _SC_PAGESIZE -/* These are non-POSIX values we accidentally introduced in 2000 without - guarding them. Keeping them unguarded for backward compatibility. */ -#define _SC_NPROCESSORS_CONF 9 -#define _SC_NPROCESSORS_ONLN 10 -#define _SC_PHYS_PAGES 11 -#define _SC_AVPHYS_PAGES 12 -/* End of non-POSIX values. */ -#define _SC_MQ_OPEN_MAX 13 -#define _SC_MQ_PRIO_MAX 14 -#define _SC_RTSIG_MAX 15 -#define _SC_SEM_NSEMS_MAX 16 -#define _SC_SEM_VALUE_MAX 17 -#define _SC_SIGQUEUE_MAX 18 -#define _SC_TIMER_MAX 19 -#define _SC_TZNAME_MAX 20 -#define _SC_ASYNCHRONOUS_IO 21 -#define _SC_FSYNC 22 -#define _SC_MAPPED_FILES 23 -#define _SC_MEMLOCK 24 -#define _SC_MEMLOCK_RANGE 25 -#define _SC_MEMORY_PROTECTION 26 -#define _SC_MESSAGE_PASSING 27 -#define _SC_PRIORITIZED_IO 28 -#define _SC_REALTIME_SIGNALS 29 -#define _SC_SEMAPHORES 30 -#define _SC_SHARED_MEMORY_OBJECTS 31 -#define _SC_SYNCHRONIZED_IO 32 -#define _SC_TIMERS 33 -#define _SC_AIO_LISTIO_MAX 34 -#define _SC_AIO_MAX 35 -#define _SC_AIO_PRIO_DELTA_MAX 36 -#define _SC_DELAYTIMER_MAX 37 -#define _SC_THREAD_KEYS_MAX 38 -#define _SC_THREAD_STACK_MIN 39 -#define _SC_THREAD_THREADS_MAX 40 -#define _SC_TTY_NAME_MAX 41 -#define _SC_THREADS 42 -#define _SC_THREAD_ATTR_STACKADDR 43 -#define _SC_THREAD_ATTR_STACKSIZE 44 -#define _SC_THREAD_PRIORITY_SCHEDULING 45 -#define _SC_THREAD_PRIO_INHERIT 46 -/* _SC_THREAD_PRIO_PROTECT was _SC_THREAD_PRIO_CEILING in early drafts */ -#define _SC_THREAD_PRIO_PROTECT 47 -#define _SC_THREAD_PRIO_CEILING _SC_THREAD_PRIO_PROTECT -#define _SC_THREAD_PROCESS_SHARED 48 -#define _SC_THREAD_SAFE_FUNCTIONS 49 -#define _SC_GETGR_R_SIZE_MAX 50 -#define _SC_GETPW_R_SIZE_MAX 51 -#define _SC_LOGIN_NAME_MAX 52 -#define _SC_THREAD_DESTRUCTOR_ITERATIONS 53 -#define _SC_ADVISORY_INFO 54 -#define _SC_ATEXIT_MAX 55 -#define _SC_BARRIERS 56 -#define _SC_BC_BASE_MAX 57 -#define _SC_BC_DIM_MAX 58 -#define _SC_BC_SCALE_MAX 59 -#define _SC_BC_STRING_MAX 60 -#define _SC_CLOCK_SELECTION 61 -#define _SC_COLL_WEIGHTS_MAX 62 -#define _SC_CPUTIME 63 -#define _SC_EXPR_NEST_MAX 64 -#define _SC_HOST_NAME_MAX 65 -#define _SC_IOV_MAX 66 -#define _SC_IPV6 67 -#define _SC_LINE_MAX 68 -#define _SC_MONOTONIC_CLOCK 69 -#define _SC_RAW_SOCKETS 70 -#define _SC_READER_WRITER_LOCKS 71 -#define _SC_REGEXP 72 -#define _SC_RE_DUP_MAX 73 -#define _SC_SHELL 74 -#define _SC_SPAWN 75 -#define _SC_SPIN_LOCKS 76 -#define _SC_SPORADIC_SERVER 77 -#define _SC_SS_REPL_MAX 78 -#define _SC_SYMLOOP_MAX 79 -#define _SC_THREAD_CPUTIME 80 -#define _SC_THREAD_SPORADIC_SERVER 81 -#define _SC_TIMEOUTS 82 -#define _SC_TRACE 83 -#define _SC_TRACE_EVENT_FILTER 84 -#define _SC_TRACE_EVENT_NAME_MAX 85 -#define _SC_TRACE_INHERIT 86 -#define _SC_TRACE_LOG 87 -#define _SC_TRACE_NAME_MAX 88 -#define _SC_TRACE_SYS_MAX 89 -#define _SC_TRACE_USER_EVENT_MAX 90 -#define _SC_TYPED_MEMORY_OBJECTS 91 -#define _SC_V7_ILP32_OFF32 92 -#define _SC_V6_ILP32_OFF32 _SC_V7_ILP32_OFF32 -#define _SC_XBS5_ILP32_OFF32 _SC_V7_ILP32_OFF32 -#define _SC_V7_ILP32_OFFBIG 93 -#define _SC_V6_ILP32_OFFBIG _SC_V7_ILP32_OFFBIG -#define _SC_XBS5_ILP32_OFFBIG _SC_V7_ILP32_OFFBIG -#define _SC_V7_LP64_OFF64 94 -#define _SC_V6_LP64_OFF64 _SC_V7_LP64_OFF64 -#define _SC_XBS5_LP64_OFF64 _SC_V7_LP64_OFF64 -#define _SC_V7_LPBIG_OFFBIG 95 -#define _SC_V6_LPBIG_OFFBIG _SC_V7_LPBIG_OFFBIG -#define _SC_XBS5_LPBIG_OFFBIG _SC_V7_LPBIG_OFFBIG -#define _SC_XOPEN_CRYPT 96 -#define _SC_XOPEN_ENH_I18N 97 -#define _SC_XOPEN_LEGACY 98 -#define _SC_XOPEN_REALTIME 99 -#define _SC_STREAM_MAX 100 -#define _SC_PRIORITY_SCHEDULING 101 -#define _SC_XOPEN_REALTIME_THREADS 102 -#define _SC_XOPEN_SHM 103 -#define _SC_XOPEN_STREAMS 104 -#define _SC_XOPEN_UNIX 105 -#define _SC_XOPEN_VERSION 106 -#define _SC_2_CHAR_TERM 107 -#define _SC_2_C_BIND 108 -#define _SC_2_C_DEV 109 -#define _SC_2_FORT_DEV 110 -#define _SC_2_FORT_RUN 111 -#define _SC_2_LOCALEDEF 112 -#define _SC_2_PBS 113 -#define _SC_2_PBS_ACCOUNTING 114 -#define _SC_2_PBS_CHECKPOINT 115 -#define _SC_2_PBS_LOCATE 116 -#define _SC_2_PBS_MESSAGE 117 -#define _SC_2_PBS_TRACK 118 -#define _SC_2_SW_DEV 119 -#define _SC_2_UPE 120 -#define _SC_2_VERSION 121 -#define _SC_THREAD_ROBUST_PRIO_INHERIT 122 -#define _SC_THREAD_ROBUST_PRIO_PROTECT 123 -#define _SC_XOPEN_UUCP 124 -#define _SC_LEVEL1_ICACHE_SIZE 125 -#define _SC_LEVEL1_ICACHE_ASSOC 126 -#define _SC_LEVEL1_ICACHE_LINESIZE 127 -#define _SC_LEVEL1_DCACHE_SIZE 128 -#define _SC_LEVEL1_DCACHE_ASSOC 129 -#define _SC_LEVEL1_DCACHE_LINESIZE 130 -#define _SC_LEVEL2_CACHE_SIZE 131 -#define _SC_LEVEL2_CACHE_ASSOC 132 -#define _SC_LEVEL2_CACHE_LINESIZE 133 -#define _SC_LEVEL3_CACHE_SIZE 134 -#define _SC_LEVEL3_CACHE_ASSOC 135 -#define _SC_LEVEL3_CACHE_LINESIZE 136 -#define _SC_LEVEL4_CACHE_SIZE 137 -#define _SC_LEVEL4_CACHE_ASSOC 138 -#define _SC_LEVEL4_CACHE_LINESIZE 139 -#define _SC_POSIX_26_VERSION 140 - -/* - * pathconf values per IEEE Std 1003.1, 2008 Edition - */ - -#define _PC_LINK_MAX 0 -#define _PC_MAX_CANON 1 -#define _PC_MAX_INPUT 2 -#define _PC_NAME_MAX 3 -#define _PC_PATH_MAX 4 -#define _PC_PIPE_BUF 5 -#define _PC_CHOWN_RESTRICTED 6 -#define _PC_NO_TRUNC 7 -#define _PC_VDISABLE 8 -#define _PC_ASYNC_IO 9 -#define _PC_PRIO_IO 10 -#define _PC_SYNC_IO 11 -#define _PC_FILESIZEBITS 12 -#define _PC_2_SYMLINKS 13 -#define _PC_SYMLINK_MAX 14 -#define _PC_ALLOC_SIZE_MIN 15 -#define _PC_REC_INCR_XFER_SIZE 16 -#define _PC_REC_MAX_XFER_SIZE 17 -#define _PC_REC_MIN_XFER_SIZE 18 -#define _PC_REC_XFER_ALIGN 19 -#define _PC_TIMESTAMP_RESOLUTION 20 -#ifdef __CYGWIN__ -/* Ask for POSIX permission bits support. */ -#define _PC_POSIX_PERMISSIONS 90 -/* Ask for full POSIX permission support including uid/gid settings. */ -#define _PC_POSIX_SECURITY 91 -#define _PC_CASE_INSENSITIVE 92 -#endif - -/* - * confstr values per IEEE Std 1003.1, 2004 Edition - */ - -/* Only defined on Cygwin and RTEMS for now. */ -#if defined (__CYGWIN__) || defined(__rtems__) -#define _CS_PATH 0 -#define _CS_POSIX_V7_ILP32_OFF32_CFLAGS 1 -#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V7_ILP32_OFF32_CFLAGS -#define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_POSIX_V7_ILP32_OFF32_CFLAGS -#define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS 2 -#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V7_ILP32_OFF32_LDFLAGS -#define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_POSIX_V7_ILP32_OFF32_LDFLAGS -#define _CS_POSIX_V7_ILP32_OFF32_LIBS 3 -#define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V7_ILP32_OFF32_LIBS -#define _CS_XBS5_ILP32_OFF32_LIBS _CS_POSIX_V7_ILP32_OFF32_LIBS -#define _CS_XBS5_ILP32_OFF32_LINTFLAGS 4 -#define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS 5 -#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS -#define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS -#define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS 6 -#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS -#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS -#define _CS_POSIX_V7_ILP32_OFFBIG_LIBS 7 -#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V7_ILP32_OFFBIG_LIBS -#define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_POSIX_V7_ILP32_OFFBIG_LIBS -#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS 8 -#define _CS_POSIX_V7_LP64_OFF64_CFLAGS 9 -#define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V7_LP64_OFF64_CFLAGS -#define _CS_XBS5_LP64_OFF64_CFLAGS _CS_POSIX_V7_LP64_OFF64_CFLAGS -#define _CS_POSIX_V7_LP64_OFF64_LDFLAGS 10 -#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V7_LP64_OFF64_LDFLAGS -#define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_POSIX_V7_LP64_OFF64_LDFLAGS -#define _CS_POSIX_V7_LP64_OFF64_LIBS 11 -#define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V7_LP64_OFF64_LIBS -#define _CS_XBS5_LP64_OFF64_LIBS _CS_POSIX_V7_LP64_OFF64_LIBS -#define _CS_XBS5_LP64_OFF64_LINTFLAGS 12 -#define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS 13 -#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS -#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS -#define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS 14 -#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS -#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS -#define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS 15 -#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS -#define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS -#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS 16 -#define _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS 17 -#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS -#define _CS_XBS5_WIDTH_RESTRICTED_ENVS _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS -#define _CS_POSIX_V7_THREADS_CFLAGS 18 -#define _CS_POSIX_V7_THREADS_LDFLAGS 19 -#define _CS_V7_ENV 20 -#define _CS_V6_ENV _CS_V7_ENV -#define _CS_LFS_CFLAGS 21 -#define _CS_LFS_LDFLAGS 22 -#define _CS_LFS_LIBS 23 -#define _CS_LFS_LINTFLAGS 24 -#endif - -#ifdef __cplusplus -} -#endif - -#if __SSP_FORTIFY_LEVEL > 0 -#include -#endif - -#endif /* _SYS_UNISTD_H */ diff --git a/lib/include/sys/utime.h b/lib/include/sys/utime.h deleted file mode 100644 index 5e937f1..0000000 --- a/lib/include/sys/utime.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef _SYS_UTIME_H -#define _SYS_UTIME_H - -/* This is a dummy file, not customized for any - particular system. If there is a utime.h in libc/sys/SYSDIR/sys, - it will override this one. */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct utimbuf -{ - time_t actime; - time_t modtime; -}; - -#ifdef __cplusplus -}; -#endif - -#endif /* _SYS_UTIME_H */ diff --git a/lib/include/sys/wait.h b/lib/include/sys/wait.h deleted file mode 100644 index d15eec9..0000000 --- a/lib/include/sys/wait.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef _SYS_WAIT_H -#define _SYS_WAIT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#define WNOHANG 1 -#define WUNTRACED 2 - -/* A status looks like: - <1 byte info> <1 byte code> - - == 0, child has exited, info is the exit value - == 1..7e, child has exited, info is the signal number. - == 7f, child has stopped, info was the signal number. - == 80, there was a core dump. -*/ - -#define WIFEXITED(w) (((w) & 0xff) == 0) -#define WIFSIGNALED(w) (((w) & 0x7f) > 0 && (((w) & 0x7f) < 0x7f)) -#define WIFSTOPPED(w) (((w) & 0xff) == 0x7f) -#define WEXITSTATUS(w) (((w) >> 8) & 0xff) -#define WTERMSIG(w) ((w) & 0x7f) -#define WSTOPSIG WEXITSTATUS - -pid_t wait (int *); -pid_t waitpid (pid_t, int *, int); - -#ifdef _LIBC -pid_t _wait (int *); -#endif - -/* Provide prototypes for most of the _ names that are - provided in newlib for some compilers. */ -pid_t _wait (int *); - -#ifdef __cplusplus -}; -#endif - -#endif diff --git a/lib/include/tar.h b/lib/include/tar.h deleted file mode 100644 index 36437fc..0000000 --- a/lib/include/tar.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * tar.h - */ - -#ifndef _TAR_H -#define _TAR_H - -#include - -/* General definitions */ -#define TMAGIC "ustar" /* ustar plus null byte. */ -#define TMAGLEN 6 /* Length of the above. */ -#define TVERSION "00" /* 00 without a null byte. */ -#define TVERSLEN 2 /* Length of the above. */ - -/* Typeflag field definitions */ -#define REGTYPE '0' /* Regular file. */ -#define AREGTYPE '\0' /* Regular file. */ -#define LNKTYPE '1' /* Link. */ -#define SYMTYPE '2' /* Symbolic link. */ -#define CHRTYPE '3' /* Character special. */ -#define BLKTYPE '4' /* Block special. */ -#define DIRTYPE '5' /* Directory. */ -#define FIFOTYPE '6' /* FIFO special. */ -#define CONTTYPE '7' /* Reserved. */ - -/* Mode field bit definitions (octal) */ -#define TSUID 04000 /* Set UID on execution. */ -#define TSGID 02000 /* Set GID on execution. */ -#if __XSI_VISIBLE || __POSIX_VISIBLE < 200112 -#define TSVTX 01000 /* On directories, restricted deletion flag. */ -#endif -#define TUREAD 00400 /* Read by owner. */ -#define TUWRITE 00200 /* Write by owner. */ -#define TUEXEC 00100 /* Execute/search by owner. */ -#define TGREAD 00040 /* Read by group. */ -#define TGWRITE 00020 /* Write by group. */ -#define TGEXEC 00010 /* Execute/search by group. */ -#define TOREAD 00004 /* Read by other. */ -#define TOWRITE 00002 /* Write by other. */ -#define TOEXEC 00001 /* Execute/search by other. */ - -#endif diff --git a/lib/include/termios.h b/lib/include/termios.h deleted file mode 100644 index ee1820c..0000000 --- a/lib/include/termios.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif -#include -#ifdef __cplusplus -} -#endif diff --git a/lib/include/tgmath.h b/lib/include/tgmath.h deleted file mode 100644 index 97dc50e..0000000 --- a/lib/include/tgmath.h +++ /dev/null @@ -1,185 +0,0 @@ -/* http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/tgmath.h.html */ -/*- - * Copyright (c) 2004 Stefan Farfeleder. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _TGMATH_H_ -#define _TGMATH_H_ - -#include -#include - -#ifdef log2 -#undef log2 -#endif - -/* - * This implementation of requires two implementation-dependent - * macros to be defined: - * __tg_impl_simple(x, y, z, fn, fnf, fnl, ...) - * Invokes fnl() if the corresponding real type of x, y or z is long - * double, fn() if it is double or any has an integer type, and fnf() - * otherwise. - * __tg_impl_full(x, y, z, fn, fnf, fnl, cfn, cfnf, cfnl, ...) - * Invokes [c]fnl() if the corresponding real type of x, y or z is long - * double, [c]fn() if it is double or any has an integer type, and - * [c]fnf() otherwise. The function with the 'c' prefix is called if - * any of x, y or z is a complex number. - * Both macros call the chosen function with all additional arguments passed - * to them, as given by __VA_ARGS__. - * - * Note that these macros cannot be implemented with C's ?: operator, - * because the return type of the whole expression would incorrectly be long - * double complex regardless of the argument types. - */ - -/* requires GCC >= 3.1 */ -#if !__GNUC_PREREQ (3, 1) -#error " not implemented for this compiler" -#endif - -#define __tg_type(__e, __t) \ - __builtin_types_compatible_p(__typeof__(__e), __t) -#define __tg_type3(__e1, __e2, __e3, __t) \ - (__tg_type(__e1, __t) || __tg_type(__e2, __t) || \ - __tg_type(__e3, __t)) -#define __tg_type_corr(__e1, __e2, __e3, __t) \ - (__tg_type3(__e1, __e2, __e3, __t) || \ - __tg_type3(__e1, __e2, __e3, __t _Complex)) -#define __tg_integer(__e1, __e2, __e3) \ - (((__typeof__(__e1))1.5 == 1) || ((__typeof__(__e2))1.5 == 1) || \ - ((__typeof__(__e3))1.5 == 1)) -#define __tg_is_complex(__e1, __e2, __e3) \ - (__tg_type3(__e1, __e2, __e3, float _Complex) || \ - __tg_type3(__e1, __e2, __e3, double _Complex) || \ - __tg_type3(__e1, __e2, __e3, long double _Complex) || \ - __tg_type3(__e1, __e2, __e3, __typeof__(_Complex_I))) - -#if defined (_LDBL_EQ_DBL) || defined (__CYGWIN__) -#define __tg_impl_simple(x, y, z, fn, fnf, fnl, ...) \ - __builtin_choose_expr(__tg_type_corr(x, y, z, long double), \ - fnl(__VA_ARGS__), __builtin_choose_expr( \ - __tg_type_corr(x, y, z, double) || __tg_integer(x, y, z),\ - fn(__VA_ARGS__), fnf(__VA_ARGS__))) -#else -#define __tg_impl_simple(__x, __y, __z, __fn, __fnf, __fnl, ...) \ - (__tg_type_corr(__x, __y, __z, double) || __tg_integer(__x, __y, __z)) \ - ? __fn(__VA_ARGS__) : __fnf(__VA_ARGS__) -#endif - -#define __tg_impl_full(__x, __y, __z, __fn, __fnf, __fnl, __cfn, __cfnf, __cfnl, ...) \ - __builtin_choose_expr(__tg_is_complex(__x, __y, __z), \ - __tg_impl_simple(__x, __y, __z, __cfn, __cfnf, __cfnl, __VA_ARGS__), \ - __tg_impl_simple(__x, __y, __z, __fn, __fnf, __fnl, __VA_ARGS__)) - -/* Macros to save lots of repetition below */ -#define __tg_simple(__x, __fn) \ - __tg_impl_simple(__x, __x, __x, __fn, __fn##f, __fn##l, __x) -#define __tg_simple2(__x, __y, __fn) \ - __tg_impl_simple(__x, __x, __y, __fn, __fn##f, __fn##l, __x, __y) -#define __tg_simplev(__x, __fn, ...) \ - __tg_impl_simple(__x, __x, __x, __fn, __fn##f, __fn##l, __VA_ARGS__) -#define __tg_full(__x, __fn) \ - __tg_impl_full(__x, __x, __x, __fn, __fn##f, __fn##l, c##__fn, c##__fn##f, c##__fn##l, __x) - -/* 7.22#4 -- These macros expand to real or complex functions, depending on - * the type of their arguments. */ -#define acos(__x) __tg_full(__x, acos) -#define asin(__x) __tg_full(__x, asin) -#define atan(__x) __tg_full(__x, atan) -#define acosh(__x) __tg_full(__x, acosh) -#define asinh(__x) __tg_full(__x, asinh) -#define atanh(__x) __tg_full(__x, atanh) -#define cos(__x) __tg_full(__x, cos) -#define sin(__x) __tg_full(__x, sin) -#define tan(__x) __tg_full(__x, tan) -#define cosh(__x) __tg_full(__x, cosh) -#define sinh(__x) __tg_full(__x, sinh) -#define tanh(__x) __tg_full(__x, tanh) -#define exp(__x) __tg_full(__x, exp) -#define log(__x) __tg_full(__x, log) -#define pow(__x, __y) __tg_impl_full(__x, __x, __y, pow, powf, powl, \ - cpow, cpowf, cpowl, __x, __y) -#define sqrt(__x) __tg_full(__x, sqrt) - -/* "The corresponding type-generic macro for fabs and cabs is fabs." */ -#define fabs(__x) __tg_impl_full(__x, __x, __x, fabs, fabsf, fabsl, \ - cabs, cabsf, cabsl, __x) - -/* 7.22#5 -- These macros are only defined for arguments with real type. */ -#define atan2(__x, __y) __tg_simple2(__x, __y, atan2) -#define cbrt(__x) __tg_simple(__x, cbrt) -#define ceil(__x) __tg_simple(__x, ceil) -#define copysign(__x, __y) __tg_simple2(__x, __y, copysign) -#define erf(__x) __tg_simple(__x, erf) -#define erfc(__x) __tg_simple(__x, erfc) -#define exp2(__x) __tg_simple(__x, exp2) -#define expm1(__x) __tg_simple(__x, expm1) -#define fdim(__x, __y) __tg_simple2(__x, __y, fdim) -#define floor(__x) __tg_simple(__x, floor) -#define fma(__x, __y, __z) __tg_impl_simple(__x, __y, __z, fma, fmaf, fmal, \ - __x, __y, __z) -#define fmax(__x, __y) __tg_simple2(__x, __y, fmax) -#define fmin(__x, __y) __tg_simple2(__x, __y, fmin) -#define fmod(__x, __y) __tg_simple2(__x, __y, fmod) -#define frexp(__x, __y) __tg_simplev(__x, frexp, __x, __y) -#define hypot(__x, __y) __tg_simple2(__x, __y, hypot) -#define ilogb(__x) __tg_simple(__x, ilogb) -#define ldexp(__x, __y) __tg_simplev(__x, ldexp, __x, __y) -#define lgamma(__x) __tg_simple(__x, lgamma) -#define llrint(__x) __tg_simple(__x, llrint) -#define llround(__x) __tg_simple(__x, llround) -#define log10(__x) __tg_simple(__x, log10) -#define log1p(__x) __tg_simple(__x, log1p) -#define log2(__x) __tg_simple(__x, log2) -#define logb(__x) __tg_simple(__x, logb) -#define lrint(__x) __tg_simple(__x, lrint) -#define lround(__x) __tg_simple(__x, lround) -#define nearbyint(__x) __tg_simple(__x, nearbyint) -#define nextafter(__x, __y) __tg_simple2(__x, __y, nextafter) -/* not yet implemented even for _LDBL_EQ_DBL platforms */ -#ifdef __CYGWIN__ -#define nexttoward(__x, __y) __tg_simplev(__x, nexttoward, __x, __y) -#endif -#define remainder(__x, __y) __tg_simple2(__x, __y, remainder) -#define remquo(__x, __y, __z) __tg_impl_simple(__x, __x, __y, remquo, remquof, \ - remquol, __x, __y, __z) -#define rint(__x) __tg_simple(__x, rint) -#define round(__x) __tg_simple(__x, round) -#define scalbn(__x, __y) __tg_simplev(__x, scalbn, __x, __y) -#define scalbln(__x, __y) __tg_simplev(__x, scalbln, __x, __y) -#define tgamma(__x) __tg_simple(__x, tgamma) -#define trunc(__x) __tg_simple(__x, trunc) - -/* 7.22#6 -- These macros always expand to complex functions. */ -#define carg(__x) __tg_simple(__x, carg) -#define cimag(__x) __tg_simple(__x, cimag) -#define conj(__x) __tg_simple(__x, conj) -#define cproj(__x) __tg_simple(__x, cproj) -#define creal(__x) __tg_simple(__x, creal) - -#endif /* !_TGMATH_H_ */ diff --git a/lib/include/threads.h b/lib/include/threads.h deleted file mode 100644 index 9fb08b0..0000000 --- a/lib/include/threads.h +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * Copyright (c) 2011 Ed Schouten - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _THREADS_H_ -#define _THREADS_H_ - -#include -#include - -typedef void (*tss_dtor_t)(void *); -typedef int (*thrd_start_t)(void *); - -enum { - mtx_plain = 0x1, - mtx_recursive = 0x2, - mtx_timed = 0x4 -}; - -enum { - thrd_busy = 1, - thrd_error = 2, - thrd_nomem = 3, - thrd_success = 4, - thrd_timedout = 5 -}; - -#if !defined(__cplusplus) || __cplusplus < 201103L -#define thread_local _Thread_local -#endif - -__BEGIN_DECLS -void call_once(once_flag *, void (*)(void)); -int cnd_broadcast(cnd_t *); -void cnd_destroy(cnd_t *); -int cnd_init(cnd_t *); -int cnd_signal(cnd_t *); -int cnd_timedwait(cnd_t *__restrict, mtx_t *__restrict __mtx, - const struct timespec *__restrict) - __requires_exclusive(*__mtx); -int cnd_wait(cnd_t *, mtx_t *__mtx) - __requires_exclusive(*__mtx); -void mtx_destroy(mtx_t *__mtx) - __requires_unlocked(*__mtx); -int mtx_init(mtx_t *__mtx, int) - __requires_unlocked(*__mtx); -int mtx_lock(mtx_t *__mtx) - __locks_exclusive(*__mtx); -int mtx_timedlock(mtx_t *__restrict __mtx, - const struct timespec *__restrict) - __trylocks_exclusive(thrd_success, *__mtx); -int mtx_trylock(mtx_t *__mtx) - __trylocks_exclusive(thrd_success, *__mtx); -int mtx_unlock(mtx_t *__mtx) - __unlocks(*__mtx); -int thrd_create(thrd_t *, thrd_start_t, void *); -thrd_t thrd_current(void); -int thrd_detach(thrd_t); -int thrd_equal(thrd_t, thrd_t); -_Noreturn void - thrd_exit(int); -int thrd_join(thrd_t, int *); -int thrd_sleep(const struct timespec *, struct timespec *); -void thrd_yield(void); -int tss_create(tss_t *, tss_dtor_t); -void tss_delete(tss_t); -void * tss_get(tss_t); -int tss_set(tss_t, void *); -__END_DECLS - -#endif /* !_THREADS_H_ */ diff --git a/lib/include/time.h b/lib/include/time.h deleted file mode 100644 index ed6cc70..0000000 --- a/lib/include/time.h +++ /dev/null @@ -1,313 +0,0 @@ -/* - * time.h - * - * Struct and function declarations for dealing with time. - */ - -#ifndef _TIME_H_ -#define _TIME_H_ - -#include "_ansi.h" -#include -#include - -#define __need_size_t -#define __need_NULL -#include - -/* Get _CLOCKS_PER_SEC_ */ -#include - -#ifndef _CLOCKS_PER_SEC_ -#define _CLOCKS_PER_SEC_ 1000 -#endif - -#define CLOCKS_PER_SEC _CLOCKS_PER_SEC_ -#define CLK_TCK CLOCKS_PER_SEC - -#include -#include - -#if __POSIX_VISIBLE >= 200809 -#include -#endif - -_BEGIN_STD_C - -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; -#ifdef __TM_GMTOFF - long __TM_GMTOFF; -#endif -#ifdef __TM_ZONE - const char *__TM_ZONE; -#endif -}; - -clock_t clock (void); -double difftime (time_t _time2, time_t _time1); -time_t mktime (struct tm *_timeptr); -time_t time (time_t *_timer); -#ifndef _REENT_ONLY -char *asctime (const struct tm *_tblock); -char *ctime (const time_t *_time); -struct tm *gmtime (const time_t *_timer); -struct tm *localtime (const time_t *_timer); -#endif -size_t strftime (char *__restrict _s, - size_t _maxsize, const char *__restrict _fmt, - const struct tm *__restrict _t); - -#if __POSIX_VISIBLE >= 200809 -extern size_t strftime_l (char *__restrict _s, size_t _maxsize, - const char *__restrict _fmt, - const struct tm *__restrict _t, locale_t _l); -#endif - -char *asctime_r (const struct tm *__restrict, - char *__restrict); -char *ctime_r (const time_t *, char *); -struct tm *gmtime_r (const time_t *__restrict, - struct tm *__restrict); -struct tm *localtime_r (const time_t *__restrict, - struct tm *__restrict); - -_END_STD_C - -#ifdef __cplusplus -extern "C" { -#endif - -#if __XSI_VISIBLE -char *strptime (const char *__restrict, - const char *__restrict, - struct tm *__restrict); -#endif -#if __GNU_VISIBLE -char *strptime_l (const char *__restrict, const char *__restrict, - struct tm *__restrict, locale_t); -#endif - -#if __POSIX_VISIBLE -void tzset (void); -#endif -void _tzset_r (struct _reent *); - -/* getdate functions */ - -#ifdef HAVE_GETDATE -#if __XSI_VISIBLE >= 4 -#ifndef _REENT_ONLY -#define getdate_err (*__getdate_err()) -int *__getdate_err (void); - -struct tm * getdate (const char *); -/* getdate_err is set to one of the following values to indicate the error. - 1 the DATEMSK environment variable is null or undefined, - 2 the template file cannot be opened for reading, - 3 failed to get file status information, - 4 the template file is not a regular file, - 5 an error is encountered while reading the template file, - 6 memory allication failed (not enough memory available), - 7 there is no line in the template that matches the input, - 8 invalid input specification */ -#endif /* !_REENT_ONLY */ -#endif /* __XSI_VISIBLE >= 4 */ - -#if __GNU_VISIBLE -/* getdate_r returns the error code as above */ -int getdate_r (const char *, struct tm *); -#endif /* __GNU_VISIBLE */ -#endif /* HAVE_GETDATE */ - -/* defines for the opengroup specifications Derived from Issue 1 of the SVID. */ -#if __SVID_VISIBLE || __XSI_VISIBLE -extern __IMPORT long _timezone; -extern __IMPORT int _daylight; -#endif -#if __POSIX_VISIBLE -extern __IMPORT char *_tzname[2]; - -/* POSIX defines the external tzname being defined in time.h */ -#ifndef tzname -#define tzname _tzname -#endif -#endif /* __POSIX_VISIBLE */ - -#ifdef __cplusplus -} -#endif - -#include - -#ifdef __CYGWIN__ -#include -#endif /*__CYGWIN__*/ - -#if defined(_POSIX_TIMERS) - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Clocks, P1003.1b-1993, p. 263 */ - -int clock_settime (clockid_t clock_id, const struct timespec *tp); -int clock_gettime (clockid_t clock_id, struct timespec *tp); -int clock_getres (clockid_t clock_id, struct timespec *res); - -/* Create a Per-Process Timer, P1003.1b-1993, p. 264 */ - -int timer_create (clockid_t clock_id, - struct sigevent *__restrict evp, - timer_t *__restrict timerid); - -/* Delete a Per_process Timer, P1003.1b-1993, p. 266 */ - -int timer_delete (timer_t timerid); - -/* Per-Process Timers, P1003.1b-1993, p. 267 */ - -int timer_settime (timer_t timerid, int flags, - const struct itimerspec *__restrict value, - struct itimerspec *__restrict ovalue); -int timer_gettime (timer_t timerid, struct itimerspec *value); -int timer_getoverrun (timer_t timerid); - -/* High Resolution Sleep, P1003.1b-1993, p. 269 */ - -int nanosleep (const struct timespec *rqtp, struct timespec *rmtp); - -#ifdef __cplusplus -} -#endif -#endif /* _POSIX_TIMERS */ - -#if defined(_POSIX_CLOCK_SELECTION) - -#ifdef __cplusplus -extern "C" { -#endif - -int clock_nanosleep (clockid_t clock_id, int flags, - const struct timespec *rqtp, struct timespec *rmtp); - -#ifdef __cplusplus -} -#endif - -#endif /* _POSIX_CLOCK_SELECTION */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* CPU-time Clock Attributes, P1003.4b/D8, p. 54 */ - -/* values for the clock enable attribute */ - -#define CLOCK_ENABLED 1 /* clock is enabled, i.e. counting execution time */ -#define CLOCK_DISABLED 0 /* clock is disabled */ - -/* values for the pthread cputime_clock_allowed attribute */ - -#define CLOCK_ALLOWED 1 /* If a thread is created with this value a */ - /* CPU-time clock attached to that thread */ - /* shall be accessible. */ -#define CLOCK_DISALLOWED 0 /* If a thread is created with this value, the */ - /* thread shall not have a CPU-time clock */ - /* accessible. */ - -/* Flag indicating time is "absolute" with respect to the clock - associated with a time. Value 4 is historic. */ - -#define TIMER_ABSTIME 4 - -/* Manifest Constants, P1003.1b-1993, p. 262 */ - -#if __GNU_VISIBLE -#define CLOCK_REALTIME_COARSE ((clockid_t) 0) -#endif - -#define CLOCK_REALTIME ((clockid_t) 1) - -/* Manifest Constants, P1003.4b/D8, p. 55 */ - -#if defined(_POSIX_CPUTIME) - -/* When used in a clock or timer function call, this is interpreted as - the identifier of the CPU_time clock associated with the PROCESS - making the function call. */ - -#define CLOCK_PROCESS_CPUTIME_ID ((clockid_t) 2) - -#endif - -#if defined(_POSIX_THREAD_CPUTIME) - -/* When used in a clock or timer function call, this is interpreted as - the identifier of the CPU_time clock associated with the THREAD - making the function call. */ - -#define CLOCK_THREAD_CPUTIME_ID ((clockid_t) 3) - -#endif - -#if defined(_POSIX_MONOTONIC_CLOCK) - -/* The identifier for the system-wide monotonic clock, which is defined - * as a clock whose value cannot be set via clock_settime() and which - * cannot have backward clock jumps. */ - -#define CLOCK_MONOTONIC ((clockid_t) 4) - -#endif - -#if __GNU_VISIBLE - -#define CLOCK_MONOTONIC_RAW ((clockid_t) 5) - -#define CLOCK_MONOTONIC_COARSE ((clockid_t) 6) - -#define CLOCK_BOOTTIME ((clockid_t) 7) - -#define CLOCK_REALTIME_ALARM ((clockid_t) 8) - -#define CLOCK_BOOTTIME_ALARM ((clockid_t) 9) - -#endif - -#if defined(_POSIX_CPUTIME) - -/* Accessing a Process CPU-time CLock, P1003.4b/D8, p. 55 */ - -int clock_getcpuclockid (pid_t pid, clockid_t *clock_id); - -#endif /* _POSIX_CPUTIME */ - -#if defined(_POSIX_CPUTIME) || defined(_POSIX_THREAD_CPUTIME) - -/* CPU-time Clock Attribute Access, P1003.4b/D8, p. 56 */ - -int clock_setenable_attr (clockid_t clock_id, int attr); -int clock_getenable_attr (clockid_t clock_id, int *attr); - -#endif /* _POSIX_CPUTIME or _POSIX_THREAD_CPUTIME */ - -#ifdef __cplusplus -} -#endif - -#endif /* _TIME_H_ */ - diff --git a/lib/include/unctrl.h b/lib/include/unctrl.h deleted file mode 100644 index 3363328..0000000 --- a/lib/include/unctrl.h +++ /dev/null @@ -1,42 +0,0 @@ -/* From curses.h. */ -/* - * Copyright (c) 1981, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _UNCTRL_H_ -#define _UNCTRL_H_ - -#include <_ansi.h> - -#define unctrl(c) __unctrl[(c) & 0xff] -#define unctrllen(ch) __unctrllen[(ch) & 0xff] - -extern __IMPORT const char * const __unctrl[256]; /* Control strings. */ -extern __IMPORT const char __unctrllen[256]; /* Control strings length. */ - -#endif /* _UNCTRL_H_ */ diff --git a/lib/include/unistd.h b/lib/include/unistd.h deleted file mode 100644 index f9fca84..0000000 --- a/lib/include/unistd.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _UNISTD_H_ -#define _UNISTD_H_ - -# include - -#endif /* _UNISTD_H_ */ diff --git a/lib/include/utime.h b/lib/include/utime.h deleted file mode 100644 index 652891a..0000000 --- a/lib/include/utime.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif - -#include <_ansi.h> - -/* The utime function is defined in libc/sys//sys if it exists. */ -#include - -#ifdef __cplusplus -} -#endif diff --git a/lib/include/utmp.h b/lib/include/utmp.h deleted file mode 100644 index 88cf6f8..0000000 --- a/lib/include/utmp.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif -#include -#ifdef __cplusplus -} -#endif - diff --git a/lib/include/wchar.h b/lib/include/wchar.h deleted file mode 100644 index 7c37427..0000000 --- a/lib/include/wchar.h +++ /dev/null @@ -1,339 +0,0 @@ -#ifndef _WCHAR_H_ -#define _WCHAR_H_ - -#include <_ansi.h> - -#include - -#define __need_size_t -#define __need_wchar_t -#define __need_wint_t -#define __need_NULL -#include - -/* For _mbstate_t definition. */ -#include -#include -/* For __STDC_ISO_10646__ */ -#include - -/* typedef only __gnuc_va_list, used throughout the header */ -#define __need___va_list -#include - -/* typedef va_list only when required */ -#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE -#ifdef __GNUC__ -#ifndef _VA_LIST_DEFINED -typedef __gnuc_va_list va_list; -#define _VA_LIST_DEFINED -#endif -#else /* !__GNUC__ */ -#include -#endif -#endif /* __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE */ - -#if __XSI_VISIBLE /* && __XSI_VISIBLE < 800 */ && !__GNU_VISIBLE -#include -#endif - -#ifndef WEOF -# define WEOF ((wint_t)-1) -#endif - -/* This must match definition in */ -#ifndef WCHAR_MIN -#ifdef __WCHAR_MIN__ -#define WCHAR_MIN __WCHAR_MIN__ -#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0) -#define WCHAR_MIN (0 + L'\0') -#else -#define WCHAR_MIN (-0x7fffffff - 1 + L'\0') -#endif -#endif - -/* This must match definition in */ -#ifndef WCHAR_MAX -#ifdef __WCHAR_MAX__ -#define WCHAR_MAX __WCHAR_MAX__ -#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0) -#define WCHAR_MAX (0xffffffffu + L'\0') -#else -#define WCHAR_MAX (0x7fffffff + L'\0') -#endif -#endif - -#if __POSIX_VISIBLE >= 200809 -#include -#endif - -_BEGIN_STD_C - -#if __POSIX_VISIBLE >= 200809 || _XSI_VISIBLE -/* As in stdio.h, defines __FILE. */ -#if !defined(__FILE_defined) -typedef __FILE FILE; -# define __FILE_defined -#endif -#endif - -/* As required by POSIX.1-2008, declare tm as incomplete type. - The actual definition is in time.h. */ -struct tm; - -#ifndef _MBSTATE_T -#define _MBSTATE_T -typedef _mbstate_t mbstate_t; -#endif /* _MBSTATE_T */ - -wint_t btowc (int); -int wctob (wint_t); -size_t mbrlen (const char *__restrict, size_t, mbstate_t *__restrict); -size_t mbrtowc (wchar_t *__restrict, const char *__restrict, size_t, - mbstate_t *__restrict); -size_t _mbrtowc_r (struct _reent *, wchar_t * , const char * , - size_t, mbstate_t *); -int mbsinit (const mbstate_t *); -#if __POSIX_VISIBLE >= 200809 -size_t mbsnrtowcs (wchar_t *__restrict, const char **__restrict, - size_t, size_t, mbstate_t *__restrict); -#endif -size_t _mbsnrtowcs_r (struct _reent *, wchar_t * , const char ** , - size_t, size_t, mbstate_t *); -size_t mbsrtowcs (wchar_t *__restrict, const char **__restrict, size_t, - mbstate_t *__restrict); -size_t _mbsrtowcs_r (struct _reent *, wchar_t * , const char ** , size_t, mbstate_t *); -size_t wcrtomb (char *__restrict, wchar_t, mbstate_t *__restrict); -size_t _wcrtomb_r (struct _reent *, char * , wchar_t, mbstate_t *); -#if __POSIX_VISIBLE >= 200809 -size_t wcsnrtombs (char *__restrict, const wchar_t **__restrict, - size_t, size_t, mbstate_t *__restrict); -#endif -size_t _wcsnrtombs_r (struct _reent *, char * , const wchar_t ** , - size_t, size_t, mbstate_t *); -size_t wcsrtombs (char *__restrict, const wchar_t **__restrict, - size_t, mbstate_t *__restrict); -size_t _wcsrtombs_r (struct _reent *, char * , const wchar_t ** , - size_t, mbstate_t *); -#if __POSIX_VISIBLE >= 200809 -int wcscasecmp (const wchar_t *, const wchar_t *); -#endif -wchar_t *wcscat (wchar_t *__restrict, const wchar_t *__restrict); -wchar_t *wcschr (const wchar_t *, wchar_t); -int wcscmp (const wchar_t *, const wchar_t *); -int wcscoll (const wchar_t *, const wchar_t *); -wchar_t *wcscpy (wchar_t *__restrict, const wchar_t *__restrict); -#if __POSIX_VISIBLE >= 200809 -wchar_t *wcpcpy (wchar_t *__restrict, - const wchar_t *__restrict); -wchar_t *wcsdup (const wchar_t *) __malloc_like __result_use_check; -#endif -wchar_t *_wcsdup_r (struct _reent *, const wchar_t * ); -size_t wcscspn (const wchar_t *, const wchar_t *); -size_t wcsftime (wchar_t *__restrict, size_t, - const wchar_t *__restrict, const struct tm *__restrict); -#if __GNU_VISIBLE -size_t wcsftime_l (wchar_t *__restrict, size_t, const wchar_t *__restrict, - const struct tm *__restrict, locale_t); -#endif -size_t wcslcat (wchar_t *, const wchar_t *, size_t); -size_t wcslcpy (wchar_t *, const wchar_t *, size_t); -size_t wcslen (const wchar_t *); -#if __POSIX_VISIBLE >= 200809 -int wcsncasecmp (const wchar_t *, const wchar_t *, size_t); -#endif -wchar_t *wcsncat (wchar_t *__restrict, - const wchar_t *__restrict, size_t); -int wcsncmp (const wchar_t *, const wchar_t *, size_t); -wchar_t *wcsncpy (wchar_t *__restrict, - const wchar_t *__restrict, size_t); -#if __POSIX_VISIBLE >= 200809 -wchar_t *wcpncpy (wchar_t *__restrict, - const wchar_t *__restrict, size_t); -size_t wcsnlen (const wchar_t *, size_t); -#endif -wchar_t *wcspbrk (const wchar_t *, const wchar_t *); -wchar_t *wcsrchr (const wchar_t *, wchar_t); -size_t wcsspn (const wchar_t *, const wchar_t *); -wchar_t *wcsstr (const wchar_t *__restrict, - const wchar_t *__restrict); -wchar_t *wcstok (wchar_t *__restrict, const wchar_t *__restrict, - wchar_t **__restrict); -double wcstod (const wchar_t *__restrict, wchar_t **__restrict); -double _wcstod_r (struct _reent *, const wchar_t *, wchar_t **); -#if __ISO_C_VISIBLE >= 1999 -float wcstof (const wchar_t *__restrict, wchar_t **__restrict); -#endif -float _wcstof_r (struct _reent *, const wchar_t *, wchar_t **); -#if __XSI_VISIBLE -int wcswidth (const wchar_t *, size_t); -#endif -size_t wcsxfrm (wchar_t *__restrict, const wchar_t *__restrict, - size_t); -#if __POSIX_VISIBLE >= 200809 -extern int wcscasecmp_l (const wchar_t *, const wchar_t *, locale_t); -extern int wcsncasecmp_l (const wchar_t *, const wchar_t *, size_t, locale_t); -extern int wcscoll_l (const wchar_t *, const wchar_t *, locale_t); -extern size_t wcsxfrm_l (wchar_t *__restrict, const wchar_t *__restrict, size_t, - locale_t); -#endif - -#if __XSI_VISIBLE -int wcwidth (const wchar_t); -#endif -wchar_t *wmemchr (const wchar_t *, wchar_t, size_t); -int wmemcmp (const wchar_t *, const wchar_t *, size_t); -wchar_t *wmemcpy (wchar_t *__restrict, const wchar_t *__restrict, - size_t); -wchar_t *wmemmove (wchar_t *, const wchar_t *, size_t); -#if __GNU_VISIBLE -wchar_t *wmempcpy (wchar_t *__restrict, const wchar_t *__restrict, - size_t); -#endif -wchar_t *wmemset (wchar_t *, wchar_t, size_t); - -long wcstol (const wchar_t *__restrict, wchar_t **__restrict, int); -#if __ISO_C_VISIBLE >= 1999 -long long wcstoll (const wchar_t *__restrict, wchar_t **__restrict, - int); -#endif -unsigned long wcstoul (const wchar_t *__restrict, wchar_t **__restrict, - int); -#if __ISO_C_VISIBLE >= 1999 -unsigned long long wcstoull (const wchar_t *__restrict, - wchar_t **__restrict, int); -#endif -long _wcstol_r (struct _reent *, const wchar_t *, wchar_t **, int); -long long _wcstoll_r (struct _reent *, const wchar_t *, wchar_t **, int); -unsigned long _wcstoul_r (struct _reent *, const wchar_t *, wchar_t **, int); -unsigned long long _wcstoull_r (struct _reent *, const wchar_t *, wchar_t **, int); -#if __ISO_C_VISIBLE >= 1999 -long double wcstold (const wchar_t *, wchar_t **); -#endif - -#if __GNU_VISIBLE -long wcstol_l (const wchar_t *__restrict, wchar_t **__restrict, int, locale_t); -long long wcstoll_l (const wchar_t *__restrict, wchar_t **__restrict, int, - locale_t); -unsigned long wcstoul_l (const wchar_t *__restrict, wchar_t **__restrict, int, - locale_t); -unsigned long long wcstoull_l (const wchar_t *__restrict, wchar_t **__restrict, - int, locale_t); -double wcstod_l (const wchar_t *, wchar_t **, locale_t); -float wcstof_l (const wchar_t *, wchar_t **, locale_t); -long double wcstold_l (const wchar_t *, wchar_t **, locale_t); -#endif - -wint_t fgetwc (__FILE *); -wchar_t *fgetws (wchar_t *__restrict, int, __FILE *__restrict); -wint_t fputwc (wchar_t, __FILE *); -int fputws (const wchar_t *__restrict, __FILE *__restrict); -#if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500 -int fwide (__FILE *, int); -#endif -wint_t getwc (__FILE *); -wint_t getwchar (void); -wint_t putwc (wchar_t, __FILE *); -wint_t putwchar (wchar_t); -wint_t ungetwc (wint_t wc, __FILE *); - -wint_t _fgetwc_r (struct _reent *, __FILE *); -wint_t _fgetwc_unlocked_r (struct _reent *, __FILE *); -wchar_t *_fgetws_r (struct _reent *, wchar_t *, int, __FILE *); -wchar_t *_fgetws_unlocked_r (struct _reent *, wchar_t *, int, __FILE *); -wint_t _fputwc_r (struct _reent *, wchar_t, __FILE *); -wint_t _fputwc_unlocked_r (struct _reent *, wchar_t, __FILE *); -int _fputws_r (struct _reent *, const wchar_t *, __FILE *); -int _fputws_unlocked_r (struct _reent *, const wchar_t *, __FILE *); -int _fwide_r (struct _reent *, __FILE *, int); -wint_t _getwc_r (struct _reent *, __FILE *); -wint_t _getwc_unlocked_r (struct _reent *, __FILE *); -wint_t _getwchar_r (struct _reent *); -wint_t _getwchar_unlocked_r (struct _reent *); -wint_t _putwc_r (struct _reent *, wchar_t, __FILE *); -wint_t _putwc_unlocked_r (struct _reent *, wchar_t, __FILE *); -wint_t _putwchar_r (struct _reent *, wchar_t); -wint_t _putwchar_unlocked_r (struct _reent *, wchar_t); -wint_t _ungetwc_r (struct _reent *, wint_t wc, __FILE *); - -#if __GNU_VISIBLE -wint_t fgetwc_unlocked (__FILE *); -wchar_t *fgetws_unlocked (wchar_t *__restrict, int, __FILE *__restrict); -wint_t fputwc_unlocked (wchar_t, __FILE *); -int fputws_unlocked (const wchar_t *__restrict, __FILE *__restrict); -wint_t getwc_unlocked (__FILE *); -wint_t getwchar_unlocked (void); -wint_t putwc_unlocked (wchar_t, __FILE *); -wint_t putwchar_unlocked (wchar_t); -#endif - -#if __POSIX_VISIBLE >= 200809 -__FILE *open_wmemstream (wchar_t **, size_t *); -#endif -__FILE *_open_wmemstream_r (struct _reent *, wchar_t **, size_t *); - -#ifndef __VALIST -#ifdef __GNUC__ -#define __VALIST __gnuc_va_list -#else -#define __VALIST char* -#endif -#endif - -#if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500 -int fwprintf (__FILE *__restrict, const wchar_t *__restrict, ...); -int swprintf (wchar_t *__restrict, size_t, - const wchar_t *__restrict, ...); -int vfwprintf (__FILE *__restrict, const wchar_t *__restrict, - __VALIST); -int vswprintf (wchar_t *__restrict, size_t, - const wchar_t *__restrict, __VALIST); -int vwprintf (const wchar_t *__restrict, __VALIST); -int wprintf (const wchar_t *__restrict, ...); -#endif - -int _fwprintf_r (struct _reent *, __FILE *, const wchar_t *, ...); -int _swprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, ...); -int _vfwprintf_r (struct _reent *, __FILE *, const wchar_t *, __VALIST); -int _vswprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, __VALIST); -int _vwprintf_r (struct _reent *, const wchar_t *, __VALIST); -int _wprintf_r (struct _reent *, const wchar_t *, ...); - -#if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500 -int fwscanf (__FILE *__restrict, const wchar_t *__restrict, ...); -int swscanf (const wchar_t *__restrict, - const wchar_t *__restrict, ...); -int vfwscanf (__FILE *__restrict, const wchar_t *__restrict, - __VALIST); -int vswscanf (const wchar_t *__restrict, const wchar_t *__restrict, - __VALIST); -int vwscanf (const wchar_t *__restrict, __VALIST); -int wscanf (const wchar_t *__restrict, ...); -#endif - -int _fwscanf_r (struct _reent *, __FILE *, const wchar_t *, ...); -int _swscanf_r (struct _reent *, const wchar_t *, const wchar_t *, ...); -int _vfwscanf_r (struct _reent *, __FILE *, const wchar_t *, __VALIST); -int _vswscanf_r (struct _reent *, const wchar_t *, const wchar_t *, __VALIST); -int _vwscanf_r (struct _reent *, const wchar_t *, __VALIST); -int _wscanf_r (struct _reent *, const wchar_t *, ...); - -#define getwc(fp) fgetwc(fp) -#define putwc(wc,fp) fputwc((wc), (fp)) -#define getwchar() fgetwc(_REENT_STDIN(_REENT)) -#define putwchar(wc) fputwc((wc), _REENT_STDOUT(_REENT)) - -#if __GNU_VISIBLE -#define getwc_unlocked(fp) fgetwc_unlocked(fp) -#define putwc_unlocked(wc,fp) fputwc_unlocked((wc), (fp)) -#define getwchar_unlocked() fgetwc_unlocked(_REENT_STDIN(_REENT)) -#define putwchar_unlocked(wc) fputwc_unlocked((wc), _REENT_STDOUT(_REENT)) -#endif - -_END_STD_C - -#if __SSP_FORTIFY_LEVEL > 0 -#include -#endif - -#endif /* _WCHAR_H_ */ diff --git a/lib/include/wctype.h b/lib/include/wctype.h deleted file mode 100644 index e5452bf..0000000 --- a/lib/include/wctype.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef _WCTYPE_H_ -#define _WCTYPE_H_ - -#include <_ansi.h> -#include - -#define __need_wint_t -#include - -#if __POSIX_VISIBLE >= 200809 -#include -#endif - -#ifndef WEOF -# define WEOF ((wint_t)-1) -#endif - -_BEGIN_STD_C - -#ifndef _WCTYPE_T -#define _WCTYPE_T -typedef int wctype_t; -#endif - -#ifndef _WCTRANS_T -#define _WCTRANS_T -typedef int wctrans_t; -#endif - -int iswalpha (wint_t); -int iswalnum (wint_t); -#if __ISO_C_VISIBLE >= 1999 -int iswblank (wint_t); -#endif -int iswcntrl (wint_t); -int iswctype (wint_t, wctype_t); -int iswdigit (wint_t); -int iswgraph (wint_t); -int iswlower (wint_t); -int iswprint (wint_t); -int iswpunct (wint_t); -int iswspace (wint_t); -int iswupper (wint_t); -int iswxdigit (wint_t); -wint_t towctrans (wint_t, wctrans_t); -wint_t towupper (wint_t); -wint_t towlower (wint_t); -wctrans_t wctrans (const char *); -wctype_t wctype (const char *); - -#if __POSIX_VISIBLE >= 200809 -extern int iswalpha_l (wint_t, locale_t); -extern int iswalnum_l (wint_t, locale_t); -extern int iswblank_l (wint_t, locale_t); -extern int iswcntrl_l (wint_t, locale_t); -extern int iswctype_l (wint_t, wctype_t, locale_t); -extern int iswdigit_l (wint_t, locale_t); -extern int iswgraph_l (wint_t, locale_t); -extern int iswlower_l (wint_t, locale_t); -extern int iswprint_l (wint_t, locale_t); -extern int iswpunct_l (wint_t, locale_t); -extern int iswspace_l (wint_t, locale_t); -extern int iswupper_l (wint_t, locale_t); -extern int iswxdigit_l (wint_t, locale_t); -extern wint_t towctrans_l (wint_t, wctrans_t, locale_t); -extern wint_t towupper_l (wint_t, locale_t); -extern wint_t towlower_l (wint_t, locale_t); -extern wctrans_t wctrans_l (const char *, locale_t); -extern wctype_t wctype_l (const char *, locale_t); -#endif - -_END_STD_C - -#endif /* _WCTYPE_H_ */ diff --git a/lib/include/wordexp.h b/lib/include/wordexp.h deleted file mode 100644 index 1f09a64..0000000 --- a/lib/include/wordexp.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (C) 2002, 2010 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _WORDEXP_H_ -#define _WORDEXP_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct _wordexp_t -{ - size_t we_wordc; /* Count of words matched by words. */ - char **we_wordv; /* Pointer to list of expanded words. */ - size_t we_offs; /* Slots to reserve at the beginning of we_wordv. */ -}; - -typedef struct _wordexp_t wordexp_t; - -#define WRDE_DOOFFS 0x0001 /* Use we_offs. */ -#define WRDE_APPEND 0x0002 /* Append to output from previous call. */ -#define WRDE_NOCMD 0x0004 /* Don't perform command substitution. */ -#define WRDE_REUSE 0x0008 /* pwordexp points to a wordexp_t struct returned from - a previous successful call to wordexp. */ -#define WRDE_SHOWERR 0x0010 /* Print error messages to stderr. */ -#define WRDE_UNDEF 0x0020 /* Report attempt to expand undefined shell variable. */ - -enum { - WRDE_SUCCESS, - WRDE_NOSPACE, - WRDE_BADCHAR, - WRDE_BADVAL, - WRDE_CMDSUB, - WRDE_SYNTAX, - WRDE_NOSYS -}; - -/* Note: This implementation of wordexp requires a version of bash - that supports the --wordexp and --protected arguments to be present - on the system. It does not support the WRDE_UNDEF flag. */ -int wordexp(const char *__restrict, wordexp_t *__restrict, int); -void wordfree(wordexp_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* _WORDEXP_H_ */ diff --git a/lib/libc.in.xml b/lib/libc.in.xml deleted file mode 100644 index 7bdbb22..0000000 --- a/lib/libc.in.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - newlib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/libc.texi b/lib/libc.texi deleted file mode 100644 index acb6afb..0000000 --- a/lib/libc.texi +++ /dev/null @@ -1,431 +0,0 @@ -\input texinfo.tex -@setfilename libc.info - -@ifinfo -@format -@dircategory Newlib -@direntry -* libc: (libc). The ANSI C library. -@end direntry -@end format -@end ifinfo - -@ifinfo -This file documents the ANSI C library. - -Copyright (C) 1992, 1993, 1994-2014 Red Hat, Inc. - -@file{libc} includes software developed by the -University of California, Berkeley and its contributors. - -libc includes software developed by Martin Jackson, Graham Haley -and Steve Chamberlain of Tadpole Technology and released to Cygnus. - -libc uses floating-point conversion software developed at AT&T, which -includes this copyright information: - - The author of this software is David M. Gay. - - Copyright (c) 1991 by AT&T. - - Permission to use, copy, modify, and distribute this software for any - purpose without fee is hereby granted, provided that this entire notice - is included in all copies of any software which 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 AUTHOR NOR AT&T MAKES ANY - REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY - OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -@ignore -Permission is granted to process this file through Tex and print the -results, provided the printed document carries copying permission -notice identical to this one except for the removal of this paragraph -(this paragraph not being relevant to the printed manual). - -@end ignore -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, subject to the terms -of the GNU General Public License, which includes the provision that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions. -@end ifinfo -@iftex -@c @smallbook -@c @cropmarks -@finalout -@setchapternewpage odd -@settitle Red Hat newlib C Library, Full -@titlepage -@title The Red Hat newlib C Library -@subtitle Full Configuration -@sp 1 -@subtitle @code{libc} 4.3.0 -@subtitle January 2023 -@author {Steve Chamberlain} -@author {Roland Pesch} -@author {Red Hat Support} -@author {Jeff Johnston} -@page - -@tex -{\parskip=0pt -sac@@cygnus.com, pesch@@cygnus.com, jjohnstn@@redhat.com\hfill {\it The Red Hat newlib C Library}\par -Copyright \copyright{} 1992, 1993, 1994-2004 Red Hat Inc. -} -\global\parindent=0pt % Steve likes it this way -@end tex - -@file{libc} includes software developed by the -University of California, Berkeley and its contributors. - -@file{libc} includes software developed by Martin Jackson, Graham Haley -and Steve Chamberlain of Tadpole Technology and released to Cygnus. - -@file{libc} uses floating-point conversion software developed at AT&T, -which includes this copyright information: - -@cartouche -@quotation -The author of this software is David M. Gay. - -Copyright (c) 1991 by AT&T. - -Permission to use, copy, modify, and distribute this software for any -purpose without fee is hereby granted, provided that this entire notice -is included in all copies of any software which 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 AUTHOR NOR AT&T MAKES ANY -REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY -OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. -@end quotation -@end cartouche - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, subject to the terms -of the GNU General Public License, which includes the provision that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions. -@end titlepage -@end iftex - -@ifnottex -@node Top -@top The Red Hat newlib C Library - -@menu -* Introduction:: -* Stdlib:: -* Ctype:: -* Stdio:: -* Stdio64:: - -* Strings:: -* Wchar strings:: -* Signals:: - -* Timefns:: -* Locale:: -* Reentrancy:: - -* Misc:: -* Posix:: -* Syscalls:: -* Arglists:: -* Encoding conversions:: -* Overflow Protection:: - -* Document Index:: -@end menu -@end ifnottex - -@node Introduction -@chapter Introduction - -This reference manual describes the functions provided by the Red Hat -``newlib'' version of the standard ANSI C library. This document is not -intended as an overview or a tutorial for the C library. Each library -function is listed with a synopsis of its use, a brief description, -return values (including error handling), and portability issues. - -Some of the library functions depend on support from the underlying -operating system and may not be available on every platform. For -embedded systems in particular, many of these underlying operating -system services may not be available or may not be fully functional. -The specific operating system subroutines required for a particular -library function are listed in the ``Portability'' section of the -function description. @xref{Syscalls}, for a description of the -relevant operating system calls. - -@include targetdep.tex - -@node Arglists -@chapter Variable Argument Lists - -The @code{printf} family of functions is defined to accept a variable -number of arguments, rather than a fixed argument list. You can define -your own functions with a variable argument list, by using macro -definitions from either @file{stdarg.h} (for compatibility with ANSI C) -or from @file{varargs.h} (for compatibility with a popular convention -prior to ANSI C). - -@menu -* Stdarg:: -* Varargs:: -@end menu - -@node Stdarg -@section ANSI-standard macros, @file{stdarg.h} - -In ANSI C, a function has a variable number of arguments when its -parameter list ends in an ellipsis (@code{...}). The parameter list -must also include at least one explicitly named argument; that argument -is used to initialize the variable list data structure. - -ANSI C defines three macros (@code{va_start}, @code{va_arg}, and -@code{va_end}) to operate on variable argument lists. @file{stdarg.h} -also defines a special type to represent variable argument lists: this -type is called @code{va_list}. - -@menu -* va_start:: -* va_arg:: -* va_end:: -@end menu - -@page -@node va_start -@subsection Initialize variable argument list -@findex va_start -@strong{Synopsis} -@example -#include -void va_start(va_list @var{ap}, @var{rightmost}); -@end example - -@strong{Description}@* -Use @code{va_start} to initialize the variable argument list @var{ap}, -so that @code{va_arg} can extract values from it. @var{rightmost} is -the name of the last explicit argument in the parameter list (the -argument immediately preceding the ellipsis @samp{...} that flags -variable arguments in an ANSI C function header). You can only use -@code{va_start} in a function declared using this ellipsis notation -(not, for example, in one of its subfunctions). - -@strong{Returns}@* -@code{va_start} does not return a result. - -@strong{Portability}@* -ANSI C requires @code{va_start}. - -@page -@node va_arg -@subsection Extract a value from argument list -@findex va_arg -@strong{Synopsis} -@example -#include -@var{type} va_arg(va_list @var{ap}, @var{type}); -@end example - -@strong{Description}@* -@code{va_arg} returns the next unprocessed value from a variable -argument list @var{ap} (which you must previously create with -@var{va_start}). Specify the type for the value as the second parameter -to the macro, @var{type}. - -You may pass a @code{va_list} object @var{ap} to a subfunction, and use -@code{va_arg} from the subfunction rather than from the function -actually declared with an ellipsis in the header; however, in that case -you may @emph{only} use @code{va_arg} from the subfunction. ANSI C does -not permit extracting successive values from a single variable-argument -list from different levels of the calling stack. - -There is no mechanism for testing whether there is actually a next -argument available; you might instead pass an argument count (or some -other data that implies an argument count) as one of the fixed arguments -in your function call. - -@strong{Returns}@* -@code{va_arg} returns the next argument, an object of type @var{type}. - -@strong{Portability}@* -ANSI C requires @code{va_arg}. - -@page -@node va_end -@subsection Abandon a variable argument list -@findex va_end -@strong{Synopsis} -@example -#include -void va_end(va_list @var{ap}); -@end example - -@strong{Description}@* -Use @code{va_end} to declare that your program will not use the variable -argument list @var{ap} any further. - -@strong{Returns}@* -@code{va_end} does not return a result. - -@strong{Portability}@* -ANSI C requires @code{va_end}. - -@node Varargs -@section Traditional macros, @file{varargs.h} - -If your C compiler predates ANSI C, you may still be able to use -variable argument lists using the macros from the @file{varargs.h} -header file. These macros resemble their ANSI counterparts, but have -important differences in usage. In particular, since traditional C has -no declaration mechanism for variable argument lists, two additional -macros are provided simply for the purpose of defining functions with -variable argument lists. - -As with @file{stdarg.h}, the type @code{va_list} is used to hold a data -structure representing a variable argument list. - -@menu -* va_alist:: -* va_start-trad:: -* va_arg-trad:: -* va_end-trad:: -@end menu - -@page -@node va_alist -@subsection Declare variable arguments -@findex va_alist -@findex va_dcl -@strong{Synopsis} -@example -#include -@var{function}(va_alist) -va_dcl -@end example - -@strong{Description}@* -To use the @file{varargs.h} version of variable argument lists, you must -declare your function with a call to the macro @code{va_alist} as its -argument list, and use @code{va_dcl} as the declaration. @emph{Do not -use a semicolon after @code{va_dcl}.} - -@strong{Returns}@* -These macros cannot be used in a context where a return is syntactically -possible. - -@strong{Portability}@* -@var{va_alist} and @var{va_dcl} were the most widespread method of -declaring variable argument lists prior to ANSI C. - -@page -@node va_start-trad -@subsection Initialize variable argument list -@findex va_start -@strong{Synopsis} -@example -#include -va_list @var{ap}; -va_start(@var{ap}); -@end example - -@strong{Description}@* -With the @file{varargs.h} macros, use @code{va_start} to initialize a -data structure @var{ap} to permit manipulating a variable argument list. -@var{ap} must have the type @var{va_alist}. - -@strong{Returns}@* -@code{va_start} does not return a result. - -@strong{Portability}@* -@code{va_start} is also defined as a macro in ANSI C, but the -definitions are incompatible; the ANSI version has another parameter -besides @var{ap}. - -@page -@node va_arg-trad -@subsection Extract a value from argument list -@findex va_arg -@strong{Synopsis} -@example -#include -@var{type} va_arg(va_list @var{ap}, @var{type}); -@end example - -@strong{Description}@* -@code{va_arg} returns the next unprocessed value from a variable -argument list @var{ap} (which you must previously create with -@var{va_start}). Specify the type for the value as the second parameter -to the macro, @var{type}. - -@strong{Returns}@* -@code{va_arg} returns the next argument, an object of type @var{type}. - -@strong{Portability}@* -The @code{va_arg} defined in @file{varargs.h} has the same syntax and -usage as the ANSI C version from @file{stdarg.h}. - -@page -@node va_end-trad -@subsection Abandon a variable argument list -@findex va_end -@strong{Synopsis} -@example -#include -va_end(va_list @var{ap}); -@end example - -@strong{Description}@* -Use @code{va_end} to declare that your program will not use the variable -argument list @var{ap} any further. - -@strong{Returns}@* -@code{va_end} does not return a result. - -@strong{Portability}@* -The @code{va_end} defined in @file{varargs.h} has the same syntax and -usage as the ANSI C version from @file{stdarg.h}. - -@node Document Index -@unnumbered Document Index -@printindex cp - -@tex -% I think something like @@colophon should be in texinfo. In the -% meantime: -\long\def\colophon{\hbox to0pt{}\vfill -\centerline{The body of this manual is set in} -\centerline{\fontname\tenrm,} -\centerline{with headings in {\bf\fontname\tenbf}} -\centerline{and examples in {\tt\fontname\tentt}.} -\centerline{{\it\fontname\tenit\/} and} -\centerline{{\sl\fontname\tensl\/}} -\centerline{are used for emphasis.}\vfill} -\page\colophon -% Blame: pesch@@cygnus.com, 28mar91. -@end tex - -@contents -@bye - - diff --git a/lib/locale/Makefile.inc b/lib/locale/Makefile.inc deleted file mode 100644 index cef4131..0000000 --- a/lib/locale/Makefile.inc +++ /dev/null @@ -1,28 +0,0 @@ -libc_a_SOURCES += \ - %D%/setlocale.h \ - %D%/locale.c \ - %D%/localeconv.c - -## The following interfaces are EL/IX level 2 -if !ELIX_LEVEL_1 -libc_a_SOURCES += \ - %D%/duplocale.c \ - %D%/freelocale.c \ - %D%/lctype.c \ - %D%/lmessages.c \ - %D%/lnumeric.c \ - %D%/lmonetary.c \ - %D%/newlocale.c \ - %D%/nl_langinfo.c \ - %D%/timelocal.c \ - %D%/uselocale.c -endif - -LIBC_CHEWOUT_FILES += \ - %D%/duplocale.def \ - %D%/freelocale.def \ - %D%/locale.def \ - %D%/newlocale.def \ - %D%/uselocale.def - -LIBC_CHAPTERS += %D%/locale.tex diff --git a/lib/locale/duplocale.c b/lib/locale/duplocale.c deleted file mode 100644 index d3e7d78..0000000 --- a/lib/locale/duplocale.c +++ /dev/null @@ -1,102 +0,0 @@ -/* -FUNCTION - <>---duplicate a locale object - -INDEX - duplocale - -INDEX - _duplocale_r - -SYNOPSIS - #include - locale_t duplocale(locale_t <[locobj]>); - - locale_t _duplocale_r(void *<[reent]>, locale_t <[locobj]>); - -DESCRIPTION -The <> function shall create a duplicate copy of the locale -object referenced by the <[locobj]> argument. - -If the <[locobj]> argument is LC_GLOBAL_LOCALE, duplocale() shall create -a new locale object containing a copy of the global locale determined by -the setlocale() function. - -The behavior is undefined if the <[locobj]> argument is not a valid locale -object handle. - -RETURNS -Upon successful completion, the <> function shall return a -handle for a new locale object. Otherwise <> shall return -(locale_t) <<0>> and set errno to indicate the error. - -PORTABILITY -<> is POSIX-1.2008. -*/ - -#include -#include -#include -#include "setlocale.h" - -struct __locale_t * -_duplocale_r (struct _reent *p, struct __locale_t *locobj) -{ - struct __locale_t tmp_locale, *new_locale; - int i; - -#ifndef _MB_CAPABLE - return __get_C_locale (); -#else /* _MB_CAPABLE */ - /* LC_GLOBAL_LOCALE denotes the global locale. */ - if (locobj == LC_GLOBAL_LOCALE) - locobj = __get_global_locale (); - /* The "C" locale is used statically, never copied. */ - else if (locobj == __get_C_locale ()) - return __get_C_locale (); - /* Copy locale content. */ - tmp_locale = *locobj; -#ifdef __HAVE_LOCALE_INFO__ - for (i = 1; i < _LC_LAST; ++i) - if (locobj->lc_cat[i].buf) - { - /* If the object is not a "C" locale category, copy it. Just call - __loadlocale. It knows what to do to replicate the category. */ - tmp_locale.lc_cat[i].ptr = NULL; - tmp_locale.lc_cat[i].buf = NULL; - tmp_locale.categories[i][0] = '\0'; /* __loadlocale tests this! */ - if (!__loadlocale (&tmp_locale, i, locobj->categories[i])) - goto error; - } -#endif /* __HAVE_LOCALE_INFO__ */ - /* Allocate new locale_t. */ - new_locale = (struct __locale_t *) _calloc_r (p, 1, sizeof *new_locale); - if (!new_locale) - goto error; - - *new_locale = tmp_locale; - return new_locale; - -error: - /* An error occured while we had already (potentially) allocated memory. - Free memory and return NULL. errno is supposed to be set already. */ -#ifdef __HAVE_LOCALE_INFO__ - while (--i > 0) - if (tmp_locale.lc_cat[i].buf) - { - _free_r (p, (void *) tmp_locale.lc_cat[i].ptr); - _free_r (p, tmp_locale.lc_cat[i].buf); - } -#endif /* __HAVE_LOCALE_INFO__ */ - - return NULL; -#endif /* _MB_CAPABLE */ -} - -#ifndef _REENT_ONLY -struct __locale_t * -duplocale (struct __locale_t *locobj) -{ - return _duplocale_r (_REENT, locobj); -} -#endif diff --git a/lib/locale/freelocale.c b/lib/locale/freelocale.c deleted file mode 100644 index f5d55f5..0000000 --- a/lib/locale/freelocale.c +++ /dev/null @@ -1,64 +0,0 @@ -/* -FUNCTION - <>---free resources allocated for a locale object - -INDEX - freelocale - -INDEX - _freelocale_r - -SYNOPSIS - #include - locale_t freelocale(locale_t <[locobj]>); - - locale_t _freelocale_r(void *<[reent]>, locale_t <[locobj]>); - -DESCRIPTION -The <> function shall cause the resources allocated for a -locale object returned by a call to the <> or <> -functions to be released. - -The behavior is undefined if the <[locobj]> argument is the special locale -object LC_GLOBAL_LOCALE or is not a valid locale object handle. - -Any use of a locale object that has been freed results in undefined -behavior. - -RETURNS -None. - -PORTABILITY -<> is POSIX-1.2008. -*/ - -#include -#include -#include -#include "setlocale.h" - -void -_freelocale_r (struct _reent *p, struct __locale_t *locobj) -{ - /* Nothing to do on !_MB_CAPABLE targets. */ -#ifdef _MB_CAPABLE - /* Sanity check. The "C" locale is static, don't try to free it. */ - if (!locobj || locobj == __get_C_locale () || locobj == LC_GLOBAL_LOCALE) - return; -#ifdef __HAVE_LOCALE_INFO__ - for (int i = 1; i < _LC_LAST; ++i) - if (locobj->lc_cat[i].buf) - { - _free_r (p, (void *) locobj->lc_cat[i].ptr); - _free_r (p, locobj->lc_cat[i].buf); - } -#endif /* __HAVE_LOCALE_INFO__ */ - _free_r (p, locobj); -#endif /* _MB_CAPABLE */ -} - -void -freelocale (struct __locale_t *locobj) -{ - _freelocale_r (_REENT, locobj); -} diff --git a/lib/locale/lctype.c b/lib/locale/lctype.c deleted file mode 100644 index a07ab68..0000000 --- a/lib/locale/lctype.c +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "setlocale.h" - -#define LCCTYPE_SIZE (sizeof(struct lc_ctype_T) / sizeof(char *)) - -static char numone[] = { '\1', '\0'}; - -const struct lc_ctype_T _C_ctype_locale = { - "ASCII", /* codeset */ - numone /* mb_cur_max */ -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - , - { "0", "1", "2", "3", "4", /* outdigits */ - "5", "6", "7", "8", "9" }, - { L"0", L"1", L"2", L"3", L"4", /* woutdigits */ - L"5", L"6", L"7", L"8", L"9" } -#endif -}; - -#ifdef __CYGWIN__ -static char numsix[] = { '\6', '\0'}; - -const struct lc_ctype_T _C_utf8_ctype_locale = { - "UTF-8", /* codeset */ - numsix /* mb_cur_max */ -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - , - { "0", "1", "2", "3", "4", /* outdigits */ - "5", "6", "7", "8", "9" }, - { L"0", L"1", L"2", L"3", L"4", /* woutdigits */ - L"5", L"6", L"7", L"8", L"9" } -#endif -}; -#endif - -/* NULL locale indicates global locale (called from setlocale) */ -int -__ctype_load_locale (struct __locale_t *locale, const char *name, - void *f_wctomb, const char *charset, int mb_cur_max) -{ - int ret; - struct lc_ctype_T ct; - char *bufp = NULL; - -#ifdef __CYGWIN__ - extern int __set_lc_ctype_from_win (const char *, const struct lc_ctype_T *, - struct lc_ctype_T *, char **, void *, - const char *, int); - ret = __set_lc_ctype_from_win (name, &_C_ctype_locale, &ct, &bufp, - f_wctomb, charset, mb_cur_max); - /* ret == -1: error, ret == 0: C/POSIX, ret > 0: valid */ - if (ret >= 0) - { - struct lc_ctype_T *ctp = NULL; - - if (ret > 0) - { - ctp = (struct lc_ctype_T *) calloc (1, sizeof *ctp); - if (!ctp) - { - free (bufp); - return -1; - } - *ctp = ct; - } - struct __lc_cats tmp = locale->lc_cat[LC_CTYPE]; - locale->lc_cat[LC_CTYPE].ptr = ret == 0 ? &_C_ctype_locale : ctp; - locale->lc_cat[LC_CTYPE].buf = bufp; - /* If buf is not NULL, both pointers have been alloc'ed */ - if (tmp.buf) - { - free ((void *) tmp.ptr); - free (tmp.buf); - } - ret = 0; - } -#else - /* TODO */ -#endif - return ret; -} diff --git a/lib/locale/lmessages.c b/lib/locale/lmessages.c deleted file mode 100644 index 7a5bb56..0000000 --- a/lib/locale/lmessages.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (c) 2001 Alexey Zelkin - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include -#include "setlocale.h" - -#define LCMESSAGES_SIZE_FULL (sizeof(struct lc_messages_T) / sizeof(char *)) -#define LCMESSAGES_SIZE_MIN \ - (offsetof(struct lc_messages_T, yesstr) / sizeof(char *)) - -#ifndef __CYGWIN__ -static char empty[] = ""; -#endif - -const struct lc_messages_T _C_messages_locale = { - "^[yY]" , /* yesexpr */ - "^[nN]" , /* noexpr */ - "yes" , /* yesstr */ - "no" /* nostr */ -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - , "ASCII" , /* codeset */ - L"^[yY]" , /* wyesexpr */ - L"^[nN]" , /* wnoexpr */ - L"yes" , /* wyesstr */ - L"no" /* wnostr */ -#endif -}; - -#ifndef __CYGWIN__ -static struct lc_messages_T _messages_locale; -static int _messages_using_locale; -static char *_messages_locale_buf; -#endif - -int -__messages_load_locale (struct __locale_t *locale, const char *name, - void *f_wctomb, const char *charset) -{ - int ret; - struct lc_messages_T me; - char *bufp = NULL; - -#ifdef __CYGWIN__ - extern int __set_lc_messages_from_win (const char *, - const struct lc_messages_T *, - struct lc_messages_T *, char **, - void *, const char *); - - ret = __set_lc_messages_from_win (name, &_C_messages_locale, &me, &bufp, - f_wctomb, charset); - /* ret == -1: error, ret == 0: C/POSIX, ret > 0: valid */ - if (ret >= 0) - { - struct lc_messages_T *mep = NULL; - - if (ret > 0) - { - mep = (struct lc_messages_T *) calloc (1, sizeof *mep); - if (!mep) - { - free (bufp); - return -1; - } - *mep = me; - } - struct __lc_cats tmp = locale->lc_cat[LC_MESSAGES]; - locale->lc_cat[LC_MESSAGES].ptr = ret == 0 ? &_C_messages_locale : mep; - locale->lc_cat[LC_MESSAGES].buf = bufp; - /* If buf is not NULL, both pointers have been alloc'ed */ - if (tmp.buf) - { - free ((void *) tmp.ptr); - free (tmp.buf); - } - ret = 0; - } -#else - /* TODO */ -#endif - return ret; -} diff --git a/lib/locale/lmonetary.c b/lib/locale/lmonetary.c deleted file mode 100644 index 995263b..0000000 --- a/lib/locale/lmonetary.c +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (c) 2000, 2001 Alexey Zelkin - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include -#include -#include "setlocale.h" - -#define LCMONETARY_SIZE (sizeof(struct lc_monetary_T) / sizeof(char *)) - -static char empty[] = ""; -static char numempty[] = { CHAR_MAX, '\0'}; -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ -static wchar_t wempty[] = L""; -#endif - -const struct lc_monetary_T _C_monetary_locale = { - empty, /* int_curr_symbol */ - empty, /* currency_symbol */ - empty, /* mon_decimal_point */ - empty, /* mon_thousands_sep */ - numempty, /* mon_grouping */ - empty, /* positive_sign */ - empty, /* negative_sign */ - numempty, /* int_frac_digits */ - numempty, /* frac_digits */ - numempty, /* p_cs_precedes */ - numempty, /* p_sep_by_space */ - numempty, /* n_cs_precedes */ - numempty, /* n_sep_by_space */ - numempty, /* p_sign_posn */ - numempty /* n_sign_posn */ -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - , numempty, /* int_p_cs_precedes */ - numempty, /* int_p_sep_by_space */ - numempty, /* int_n_cs_precedes */ - numempty, /* int_n_sep_by_space */ - numempty, /* int_p_sign_posn */ - numempty, /* int_n_sign_posn */ - "ASCII", /* codeset */ - wempty, /* wint_curr_symbol */ - wempty, /* wcurrency_symbol */ - wempty, /* wmon_decimal_point */ - wempty, /* wmon_thousands_sep */ - wempty, /* wpositive_sign */ - wempty /* wnegative_sign */ -#endif -}; - -#ifndef __CYGWIN__ -static struct lc_monetary_T _monetary_locale; -static int _monetary_using_locale; -static char *_monetary_locale_buf; - -static char -cnv(const char *str) { - int i = strtol(str, NULL, 10); - if (i == -1) - i = CHAR_MAX; - return (char)i; -} -#endif - -int -__monetary_load_locale (struct __locale_t *locale, const char *name , - void *f_wctomb, const char *charset) -{ - int ret; - struct lc_monetary_T mo; - char *bufp = NULL; - -#ifdef __CYGWIN__ - extern int __set_lc_monetary_from_win (const char *, - const struct lc_monetary_T *, - struct lc_monetary_T *, char **, - void *, const char *); - ret = __set_lc_monetary_from_win (name, &_C_monetary_locale, &mo, &bufp, - f_wctomb, charset); - /* ret == -1: error, ret == 0: C/POSIX, ret > 0: valid */ - if (ret >= 0) - { - struct lc_monetary_T *mop = NULL; - - if (ret > 0) - { - mop = (struct lc_monetary_T *) calloc (1, sizeof *mop); - if (!mop) - { - free (bufp); - return -1; - } - *mop = mo; - } - struct __lc_cats tmp = locale->lc_cat[LC_MONETARY]; - locale->lc_cat[LC_MONETARY].ptr = ret == 0 ? &_C_monetary_locale : mop; - locale->lc_cat[LC_MONETARY].buf = bufp; - /* If buf is not NULL, both pointers have been alloc'ed */ - if (tmp.buf) - { - free ((void *) tmp.ptr); - free (tmp.buf); - } - ret = 0; - } -#else - /* TODO */ -#endif - return ret; -} diff --git a/lib/locale/lnumeric.c b/lib/locale/lnumeric.c deleted file mode 100644 index b4ddbda..0000000 --- a/lib/locale/lnumeric.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2000, 2001 Alexey Zelkin - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "setlocale.h" - -#define LCNUMERIC_SIZE (sizeof(struct lc_numeric_T) / sizeof(char *)) - -static char numempty[] = { CHAR_MAX, '\0' }; - -const struct lc_numeric_T _C_numeric_locale = { - ".", /* decimal_point */ - "", /* thousands_sep */ - numempty /* grouping */ -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - , "ASCII", /* codeset */ - L".", /* wdecimal_point */ - L"", /* wthousands_sep */ -#endif -}; - -int -__numeric_load_locale (struct __locale_t *locale, const char *name , - void *f_wctomb, const char *charset) -{ - int ret; - struct lc_numeric_T nm; - char *bufp = NULL; - -#ifdef __CYGWIN__ - extern int __set_lc_numeric_from_win (const char *, - const struct lc_numeric_T *, - struct lc_numeric_T *, char **, - void *, const char *); - ret = __set_lc_numeric_from_win (name, &_C_numeric_locale, &nm, &bufp, - f_wctomb, charset); - /* ret == -1: error, ret == 0: C/POSIX, ret > 0: valid */ - if (ret >= 0) - { - struct lc_numeric_T *nmp = NULL; - - if (ret > 0) - { - nmp = (struct lc_numeric_T *) calloc (1, sizeof *nmp); - if (!nmp) - { - free (bufp); - return -1; - } - *nmp = nm; - } - struct __lc_cats tmp = locale->lc_cat[LC_NUMERIC]; - locale->lc_cat[LC_NUMERIC].ptr = ret == 0 ? &_C_numeric_locale : nmp; - locale->lc_cat[LC_NUMERIC].buf = bufp; - /* If buf is not NULL, both pointers have been alloc'ed */ - if (tmp.buf) - { - free ((void *) tmp.ptr); - free (tmp.buf); - } - ret = 0; - } -#else - /* TODO */ -#endif - return ret; -} diff --git a/lib/locale/locale.c b/lib/locale/locale.c deleted file mode 100644 index 3772106..0000000 --- a/lib/locale/locale.c +++ /dev/null @@ -1,1031 +0,0 @@ -/* -FUNCTION -<>, <>---select or query locale - -INDEX - setlocale -INDEX - localeconv -INDEX - _setlocale_r -INDEX - _localeconv_r - -SYNOPSIS - #include - char *setlocale(int <[category]>, const char *<[locale]>); - lconv *localeconv(void); - - char *_setlocale_r(void *<[reent]>, - int <[category]>, const char *<[locale]>); - lconv *_localeconv_r(void *<[reent]>); - -DESCRIPTION -<> is the facility defined by ANSI C to condition the -execution environment for international collating and formatting -information; <> reports on the settings of the current -locale. - -This is a minimal implementation, supporting only the required <<"POSIX">> -and <<"C">> values for <[locale]>; strings representing other locales are not -honored unless _MB_CAPABLE is defined. - -If _MB_CAPABLE is defined, POSIX locale strings are allowed, following -the form - - language[_TERRITORY][.charset][@@modifier] - -<<"language">> is a two character string per ISO 639, or, if not available -for a given language, a three character string per ISO 639-3. -<<"TERRITORY">> is a country code per ISO 3166. For <<"charset">> and -<<"modifier">> see below. - -Additionally to the POSIX specifier, the following extension is supported -for backward compatibility with older implementations using newlib: -<<"C-charset">>. -Instead of <<"C-">>, you can also specify <<"C.">>. Both variations allow -to specify language neutral locales while using other charsets than ASCII, -for instance <<"C.UTF-8">>, which keeps all settings as in the C locale, -but uses the UTF-8 charset. - -The following charsets are recognized: -<<"UTF-8">>, <<"JIS">>, <<"EUCJP">>, <<"SJIS">>, <<"KOI8-R">>, <<"KOI8-U">>, -<<"KOI8-T">>, <<"GEORGIAN-PS">>, <<"PT154">>, <<"TIS-620">>, <<"ISO-8859-x">> -with 1 <= x <= 16, or <<"CPxxx">> with xxx in [437, 720, 737, 775, 850, 852, -855, 857, 858, 862, 866, 874, 932, 1125, 1250, 1251, 1252, 1253, 1254, 1255, -1256, 1257, 1258]. - -Charsets are case insensitive. For instance, <<"EUCJP">> and <<"eucJP">> -are equivalent. Charset names with dashes can also be written without -dashes, as in <<"UTF8">>, <<"iso88591">> or <<"koi8r">>. <<"EUCJP">> and -<<"EUCKR">> are also recognized with dash, <<"EUC-JP">> and <<"EUC-KR">>. - -Full support for all of the above charsets requires that newlib has been -build with multibyte support and support for all ISO and Windows Codepage. -Otherwise all singlebyte charsets are simply mapped to ASCII. Right now, -only newlib for Cygwin is built with full charset support by default. -Under Cygwin, this implementation additionally supports the charsets -<<"GB18030">>, <<"GBK">>, <<"GB2312">>, <<"eucCN">>, <<"eucKR">>, and -<<"Big5">>. Cygwin does not support <<"JIS">>. - -Cygwin additionally supports locales from the file -/usr/share/locale/locale.alias. - -(<<"">> is also accepted; if given, the settings are read from the -corresponding LC_* environment variables and $LANG according to POSIX rules.) - -This implementation also supports the modifiers <<"cjknarrow">> and -<<"cjkwide">>, which affect how the functions <> and <> -handle characters from the "CJK Ambiguous Width" category of characters -described at http://www.unicode.org/reports/tr11/#Ambiguous. -These characters have a width of 1 for singlebyte charsets and UTF-8, -and a width of 2 for multibyte charsets other than UTF-8. Specifying -<<"cjknarrow">> or <<"cjkwide">> forces a width of 1 or 2, respectively. - -This implementation also supports the modifier <<"cjksingle">> -to enforce single-width character properties. - -If you use <> as the <[locale]> argument, <> returns a -pointer to the string representing the current locale. The acceptable -values for <[category]> are defined in `<>' as macros -beginning with <<"LC_">>. - -<> returns a pointer to a structure (also defined in -`<>') describing the locale-specific conventions currently -in effect. - -<<_localeconv_r>> and <<_setlocale_r>> are reentrant versions of -<> and <> respectively. The extra argument -<[reent]> is a pointer to a reentrancy structure. - -RETURNS -A successful call to <> returns a pointer to a string -associated with the specified category for the new locale. The string -returned by <> is such that a subsequent call using that -string will restore that category (or all categories in case of LC_ALL), -to that state. The application shall not modify the string returned -which may be overwritten by a subsequent call to <>. -On error, <> returns <>. - -<> returns a pointer to a structure of type <>, -which describes the formatting and collating conventions in effect (in -this implementation, always those of the C locale). - -PORTABILITY -ANSI C requires <>, but the only locale required across all -implementations is the C locale. - -NOTES -There is no ISO-8859-12 codepage. It's also refused by this implementation. - -No supporting OS subroutines are required. -*/ - -/* Parts of this code are originally taken from FreeBSD. */ -/* - * Copyright (c) 1996 - 2002 FreeBSD Project - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Paul Borman at Krystal Technologies. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include "setlocale.h" -#include "../ctype/ctype_.h" -#include "../stdlib/local.h" - -#ifdef _REENT_THREAD_LOCAL -_Thread_local struct __locale_t *_tls_locale; -#endif - -#ifdef __CYGWIN__ /* Has to be kept available as exported symbol for - backward compatibility. Set it in setlocale, but - otherwise ignore it. Applications compiled after - 2010 don't use it anymore. */ -int __EXPORT __mb_cur_max = 6; -#endif - -char *_PathLocale = NULL; - -#ifdef _MB_CAPABLE -/* - * Category names for getenv() - */ -static char *categories[_LC_LAST] = { - "LC_ALL", - "LC_COLLATE", - "LC_CTYPE", - "LC_MONETARY", - "LC_NUMERIC", - "LC_TIME", - "LC_MESSAGES", -}; -#endif /* _MB_CAPABLE */ - -/* - * Default locale per POSIX. Can be overridden on a per-target base. - */ -#ifndef DEFAULT_LOCALE -#define DEFAULT_LOCALE "C" -#endif - -#ifdef _MB_CAPABLE -/* - * This variable can be changed by any outside mechanism. This allows, - * for instance, to load the default locale from a file. - */ -char __default_locale[ENCODING_LEN + 1] = DEFAULT_LOCALE; - -const struct __locale_t __C_locale = -{ - { "C", "C", "C", "C", "C", "C", "C", }, - __ascii_wctomb, - __ascii_mbtowc, - 0, - DEFAULT_CTYPE_PTR, - { - ".", "", "", "", "", "", "", "", "", "", - CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, - CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, - CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, - CHAR_MAX, CHAR_MAX - }, -#ifndef __HAVE_LOCALE_INFO__ - "\1", - "ASCII", - "ASCII", -#else /* __HAVE_LOCALE_INFO__ */ - { - { NULL, NULL }, /* LC_ALL */ -#ifdef __CYGWIN__ - { &_C_collate_locale, NULL }, /* LC_COLLATE */ -#else - { NULL, NULL }, /* LC_COLLATE */ -#endif - { &_C_ctype_locale, NULL }, /* LC_CTYPE */ - { &_C_monetary_locale, NULL }, /* LC_MONETARY */ - { &_C_numeric_locale, NULL }, /* LC_NUMERIC */ - { &_C_time_locale, NULL }, /* LC_TIME */ - { &_C_messages_locale, NULL }, /* LC_MESSAGES */ - }, -#endif /* __HAVE_LOCALE_INFO__ */ -}; -#endif /* _MB_CAPABLE */ - -struct __locale_t __global_locale = -{ - { "C", "C", DEFAULT_LOCALE, "C", "C", "C", "C", }, -#ifdef __CYGWIN__ - __utf8_wctomb, - __utf8_mbtowc, -#else - __ascii_wctomb, - __ascii_mbtowc, -#endif - 0, - DEFAULT_CTYPE_PTR, - { - ".", "", "", "", "", "", "", "", "", "", - CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, - CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, - CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, - CHAR_MAX, CHAR_MAX - }, -#ifndef __HAVE_LOCALE_INFO__ - "\1", - "ASCII", - "ASCII", -#else /* __HAVE_LOCALE_INFO__ */ - { - { NULL, NULL }, /* LC_ALL */ -#ifdef __CYGWIN__ - { &_C_collate_locale, NULL }, /* LC_COLLATE */ - { &_C_utf8_ctype_locale, NULL }, /* LC_CTYPE */ -#else - { NULL, NULL }, /* LC_COLLATE */ - { &_C_ctype_locale, NULL }, /* LC_CTYPE */ -#endif - { &_C_monetary_locale, NULL }, /* LC_MONETARY */ - { &_C_numeric_locale, NULL }, /* LC_NUMERIC */ - { &_C_time_locale, NULL }, /* LC_TIME */ - { &_C_messages_locale, NULL }, /* LC_MESSAGES */ - }, -#endif /* __HAVE_LOCALE_INFO__ */ -}; - -#ifdef _MB_CAPABLE -/* Renamed from current_locale_string to make clear this is only the - *global* string for setlocale (LC_ALL, NULL). There's no equivalent - functionality for uselocale. */ -static char global_locale_string[_LC_LAST * (ENCODING_LEN + 1/*"/"*/ + 1)] - = "C"; -static char *currentlocale (void); - -#endif /* _MB_CAPABLE */ - -char * -_setlocale_r (struct _reent *p, - int category, - const char *locale) -{ -#ifndef _MB_CAPABLE - if (locale) - { - if (strcmp (locale, "POSIX") && strcmp (locale, "C") - && strcmp (locale, "")) - return NULL; - } - return "C"; -#else /* _MB_CAPABLE */ - static char new_categories[_LC_LAST][ENCODING_LEN + 1]; - static char saved_categories[_LC_LAST][ENCODING_LEN + 1]; - int i, j, len, saverr; - const char *env, *r; - char *ret; - - if (category < LC_ALL || category >= _LC_LAST) - { - p->_errno = EINVAL; - return NULL; - } - - if (locale == NULL) - return category != LC_ALL ? __get_global_locale ()->categories[category] - : global_locale_string; - - /* - * Default to the current locale for everything. - */ - for (i = 1; i < _LC_LAST; ++i) - strcpy (new_categories[i], __get_global_locale ()->categories[i]); - - /* - * Now go fill up new_categories from the locale argument - */ - if (!*locale) - { - if (category == LC_ALL) - { - for (i = 1; i < _LC_LAST; ++i) - { - env = __get_locale_env (p, i); - if (strlen (env) > ENCODING_LEN) - { - p->_errno = EINVAL; - return NULL; - } - strcpy (new_categories[i], env); - } - } - else - { - env = __get_locale_env (p, category); - if (strlen (env) > ENCODING_LEN) - { - p->_errno = EINVAL; - return NULL; - } - strcpy (new_categories[category], env); - } - } - else if (category != LC_ALL) - { - if (strlen (locale) > ENCODING_LEN) - { - p->_errno = EINVAL; - return NULL; - } - strcpy (new_categories[category], locale); - } - else - { - if ((r = strchr (locale, '/')) == NULL) - { - if (strlen (locale) > ENCODING_LEN) - { - p->_errno = EINVAL; - return NULL; - } - for (i = 1; i < _LC_LAST; ++i) - strcpy (new_categories[i], locale); - } - else - { - for (i = 1; r[1] == '/'; ++r) - ; - if (!r[1]) - { - p->_errno = EINVAL; - return NULL; /* Hmm, just slashes... */ - } - do - { - if (i == _LC_LAST) - break; /* Too many slashes... */ - if ((len = r - locale) > ENCODING_LEN) - { - p->_errno = EINVAL; - return NULL; - } - strlcpy (new_categories[i], locale, len + 1); - i++; - while (*r == '/') - r++; - locale = r; - while (*r && *r != '/') - r++; - } - while (*locale); - while (i < _LC_LAST) - { - strcpy (new_categories[i], new_categories[i-1]); - i++; - } - } - } - - if (category != LC_ALL) - { - ret = __loadlocale (__get_global_locale (), category, - new_categories[category]); - currentlocale (); - return ret; - } - - for (i = 1; i < _LC_LAST; ++i) - { - strcpy (saved_categories[i], __get_global_locale ()->categories[i]); - if (__loadlocale (__get_global_locale (), i, new_categories[i]) == NULL) - { - saverr = p->_errno; - for (j = 1; j < i; j++) - { - strcpy (new_categories[j], saved_categories[j]); - if (__loadlocale (__get_global_locale (), j, new_categories[j]) - == NULL) - { - strcpy (new_categories[j], "C"); - __loadlocale (__get_global_locale (), j, new_categories[j]); - } - } - p->_errno = saverr; - return NULL; - } - } - return currentlocale (); -#endif /* _MB_CAPABLE */ -} - -#ifdef _MB_CAPABLE -static char * -currentlocale () -{ - int i; - - strcpy (global_locale_string, __get_global_locale ()->categories[1]); - - for (i = 2; i < _LC_LAST; ++i) - if (strcmp (__get_global_locale ()->categories[1], - __get_global_locale ()->categories[i])) - { - for (i = 2; i < _LC_LAST; ++i) - { - (void)strcat(global_locale_string, "/"); - (void)strcat(global_locale_string, - __get_global_locale ()->categories[i]); - } - break; - } - return global_locale_string; -} - -extern void __set_ctype (struct __locale_t *, const char *charset); - -char * -__loadlocale (struct __locale_t *loc, int category, char *new_locale) -{ - /* At this point a full-featured system would just load the locale - specific data from the locale files. - What we do here for now is to check the incoming string for correctness. - The string must be in one of the allowed locale strings, either - one in POSIX-style, or one in the old newlib style to maintain - backward compatibility. If the local string is correct, the charset - is extracted and stored in ctype_codeset or message_charset - dependent on the cateogry. */ - char *locale = NULL; - char charset[ENCODING_LEN + 1]; - long val = 0; - char *end, *c = NULL; - int mbc_max; - wctomb_p l_wctomb; - mbtowc_p l_mbtowc; - int cjksingle = 0; - int cjknarrow = 0; - int cjkwide = 0; - - /* Avoid doing everything twice if nothing has changed. - - duplocale relies on this test to go wrong so the locale is actually - duplicated when required. Any change here has to be synced with a - matching change in duplocale. */ - if (!strcmp (new_locale, loc->categories[category])) - return loc->categories[category]; - -#ifdef __CYGWIN__ - /* This additional code handles the case that the incoming locale string - is not valid. If so, it calls the function __set_locale_from_locale_alias, - which is only available on Cygwin right now. The function reads the - file /usr/share/locale/locale.alias. The file contains locale aliases - and their replacement locale. For instance, the alias "french" is - translated to "fr_FR.ISO-8859-1", the alias "thai" is translated to - "th_TH.TIS-620". If successful, the function returns with a pointer - to the second argument, which is a buffer in which the replacement locale - gets stored. Otherwise the function returns NULL. */ - char tmp_locale[ENCODING_LEN + 1]; - int ret = 0; - -restart: - if (!locale) - locale = new_locale; - else if (locale != tmp_locale) - { - locale = __set_locale_from_locale_alias (locale, tmp_locale); - if (!locale) - return NULL; - } -# define FAIL goto restart -#else - locale = new_locale; -# define FAIL return NULL -#endif - - /* "POSIX" is translated to "C", as on Linux. */ - if (!strcmp (locale, "POSIX")) - strcpy (locale, "C"); - if (!strcmp (locale, "C")) /* Default "C" locale */ - strcpy (charset, "ASCII"); - else if (locale[0] == 'C' - && (locale[1] == '-' /* Old newlib style */ - || locale[1] == '.')) /* Extension for the C locale to allow - specifying different charsets while - sticking to the C locale in terms - of sort order, etc. Proposed in - the Debian project. */ - { - char *chp; - - c = locale + 2; - strcpy (charset, c); - if ((chp = strchr (charset, '@'))) - /* Strip off modifier */ - *chp = '\0'; - c += strlen (charset); - } - else /* POSIX style */ - { - c = locale; - - /* Don't use ctype macros here, they might be localized. */ - /* Language */ - if (c[0] < 'a' || c[0] > 'z' - || c[1] < 'a' || c[1] > 'z') - FAIL; - c += 2; - /* Allow three character Language per ISO 639-3 */ - if (c[0] >= 'a' && c[0] <= 'z') - ++c; - if (c[0] == '_') - { - /* Territory */ - ++c; - if (c[0] < 'A' || c[0] > 'Z' - || c[1] < 'A' || c[1] > 'Z') - FAIL; - c += 2; - } - if (c[0] == '.') - { - /* Charset */ - char *chp; - - ++c; - strcpy (charset, c); - if ((chp = strchr (charset, '@'))) - /* Strip off modifier */ - *chp = '\0'; - c += strlen (charset); - } - else if (c[0] == '\0' || c[0] == '@') - /* End of string or just a modifier */ -#ifdef __CYGWIN__ - /* The Cygwin-only function __set_charset_from_locale checks - for the default charset which is connected to the given locale. - The function uses Windows functions in turn so it can't be easily - adapted to other targets. However, if any other target provides - equivalent functionality, preferrably using the same function name - it would be sufficient to change the guarding #ifdef. */ - __set_charset_from_locale (locale, charset); -#else - strcpy (charset, "ISO-8859-1"); -#endif - else - /* Invalid string */ - FAIL; - } - if (c && c[0] == '@') - { - /* Modifier "cjksingle" is recognized to enforce single-width mode. */ - /* Modifiers "cjknarrow" or "cjkwide" are recognized to modify the - behaviour of wcwidth() and wcswidth() for East Asian languages. - For details see the comment at the end of this function. */ - if (!strcmp (c + 1, "cjksingle")) - cjksingle = 1; - else if (!strcmp (c + 1, "cjknarrow")) - cjknarrow = 1; - else if (!strcmp (c + 1, "cjkwide")) - cjkwide = 1; - } - /* We only support this subset of charsets. */ - switch (charset[0]) - { - case 'U': - case 'u': - if (strcasecmp (charset, "UTF-8") && strcasecmp (charset, "UTF8")) - FAIL; - strcpy (charset, "UTF-8"); - mbc_max = 6; - l_wctomb = __utf8_wctomb; - l_mbtowc = __utf8_mbtowc; - break; -#ifndef __CYGWIN__ - /* Cygwin does not support JIS at all. */ - case 'J': - case 'j': - if (strcasecmp (charset, "JIS")) - FAIL; - strcpy (charset, "JIS"); - mbc_max = 8; - l_wctomb = __jis_wctomb; - l_mbtowc = __jis_mbtowc; - break; -#endif /* !__CYGWIN__ */ - case 'E': - case 'e': - if (strncasecmp (charset, "EUC", 3)) - FAIL; - c = charset + 3; - if (*c == '-') - ++c; - if (!strcasecmp (c, "JP")) - { - strcpy (charset, "EUCJP"); - mbc_max = 3; - l_wctomb = __eucjp_wctomb; - l_mbtowc = __eucjp_mbtowc; - } -#ifdef __CYGWIN__ - /* Newlib does neither provide EUC-KR nor EUC-CN, and Cygwin's - implementation requires Windows support. */ - else if (!strcasecmp (c, "KR")) - { - strcpy (charset, "EUCKR"); - mbc_max = 2; - l_wctomb = __kr_wctomb; - l_mbtowc = __kr_mbtowc; - } - else if (!strcasecmp (c, "CN")) - { - strcpy (charset, "EUCCN"); - mbc_max = 2; - l_wctomb = __gbk_wctomb; - l_mbtowc = __gbk_mbtowc; - } -#endif /* __CYGWIN__ */ - else - FAIL; - break; - case 'S': - case 's': - if (strcasecmp (charset, "SJIS")) - FAIL; - strcpy (charset, "SJIS"); - mbc_max = 2; - l_wctomb = __sjis_wctomb; - l_mbtowc = __sjis_mbtowc; - break; - case 'I': - case 'i': - /* Must be exactly one of ISO-8859-1, [...] ISO-8859-16, except for - ISO-8859-12. This code also recognizes the aliases without dashes. */ - if (strncasecmp (charset, "ISO", 3)) - FAIL; - c = charset + 3; - if (*c == '-') - ++c; - if (strncasecmp (c, "8859", 4)) - FAIL; - c += 4; - if (*c == '-') - ++c; - val = strtol (c, &end, 10); - if (val < 1 || val > 16 || val == 12 || *end) - FAIL; - strcpy (charset, "ISO-8859-"); - c = charset + 9; - if (val > 10) - *c++ = '1'; - *c++ = val % 10 + '0'; - *c = '\0'; - mbc_max = 1; -#ifdef _MB_EXTENDED_CHARSETS_ISO - l_wctomb = __iso_wctomb (val); - l_mbtowc = __iso_mbtowc (val); -#else /* !_MB_EXTENDED_CHARSETS_ISO */ - l_wctomb = __ascii_wctomb; - l_mbtowc = __ascii_mbtowc; -#endif /* _MB_EXTENDED_CHARSETS_ISO */ - break; - case 'C': - case 'c': - if (charset[1] != 'P' && charset[1] != 'p') - FAIL; - strncpy (charset, "CP", 2); - val = strtol (charset + 2, &end, 10); - if (*end) - FAIL; - switch (val) - { - case 437: - case 720: - case 737: - case 775: - case 850: - case 852: - case 855: - case 857: - case 858: - case 862: - case 866: - case 874: - case 1125: - case 1250: - case 1251: - case 1252: - case 1253: - case 1254: - case 1255: - case 1256: - case 1257: - case 1258: - mbc_max = 1; -#ifdef _MB_EXTENDED_CHARSETS_WINDOWS - l_wctomb = __cp_wctomb (val); - l_mbtowc = __cp_mbtowc (val); -#else /* !_MB_EXTENDED_CHARSETS_WINDOWS */ - l_wctomb = __ascii_wctomb; - l_mbtowc = __ascii_mbtowc; -#endif /* _MB_EXTENDED_CHARSETS_WINDOWS */ - break; - case 932: - mbc_max = 2; - l_wctomb = __sjis_wctomb; - l_mbtowc = __sjis_mbtowc; - break; - default: - FAIL; - } - break; - case 'K': - case 'k': - /* KOI8-R, KOI8-U, KOI8-T and the aliases without dash */ - if (strncasecmp (charset, "KOI8", 4)) - FAIL; - c = charset + 4; - if (*c == '-') - ++c; - if (*c == 'R' || *c == 'r') - { - val = 20866; - strcpy (charset, "CP20866"); - } - else if (*c == 'U' || *c == 'u') - { - val = 21866; - strcpy (charset, "CP21866"); - } - else if (*c == 'T' || *c == 't') - { - val = 103; - strcpy (charset, "CP103"); - } - else - FAIL; - mbc_max = 1; -#ifdef _MB_EXTENDED_CHARSETS_WINDOWS - l_wctomb = __cp_wctomb (val); - l_mbtowc = __cp_mbtowc (val); -#else /* !_MB_EXTENDED_CHARSETS_WINDOWS */ - l_wctomb = __ascii_wctomb; - l_mbtowc = __ascii_mbtowc; -#endif /* _MB_EXTENDED_CHARSETS_WINDOWS */ - break; - case 'A': - case 'a': - if (strcasecmp (charset, "ASCII")) - FAIL; - strcpy (charset, "ASCII"); - mbc_max = 1; - l_wctomb = __ascii_wctomb; - l_mbtowc = __ascii_mbtowc; - break; - case 'G': - case 'g': -#ifdef __CYGWIN__ - /* Newlib does not provide GBK/GB2312 and Cygwin's implementation - requires Windows support. */ - if (!strcasecmp (charset, "GBK") - || !strcasecmp (charset, "GB2312")) - { - strcpy (charset, charset[2] == '2' ? "GB2312" : "GBK"); - mbc_max = 2; - l_wctomb = __gbk_wctomb; - l_mbtowc = __gbk_mbtowc; - } - else if (!strcasecmp (charset, "GB18030")) - { - strcpy (charset, "GB18030"); - mbc_max = 4; - l_wctomb = __gb18030_wctomb; - l_mbtowc = __gb18030_mbtowc; - } - else -#endif /* __CYGWIN__ */ - /* GEORGIAN-PS and the alias without dash */ - if (!strncasecmp (charset, "GEORGIAN", 8)) - { - c = charset + 8; - if (*c == '-') - ++c; - if (strcasecmp (c, "PS")) - FAIL; - val = 101; - strcpy (charset, "CP101"); - mbc_max = 1; -#ifdef _MB_EXTENDED_CHARSETS_WINDOWS - l_wctomb = __cp_wctomb (val); - l_mbtowc = __cp_mbtowc (val); -#else /* !_MB_EXTENDED_CHARSETS_WINDOWS */ - l_wctomb = __ascii_wctomb; - l_mbtowc = __ascii_mbtowc; -#endif /* _MB_EXTENDED_CHARSETS_WINDOWS */ - } - else - FAIL; - break; - case 'P': - case 'p': - /* PT154 */ - if (strcasecmp (charset, "PT154")) - FAIL; - val = 102; - strcpy (charset, "CP102"); - mbc_max = 1; -#ifdef _MB_EXTENDED_CHARSETS_WINDOWS - l_wctomb = __cp_wctomb (val); - l_mbtowc = __cp_mbtowc (val); -#else /* !_MB_EXTENDED_CHARSETS_WINDOWS */ - l_wctomb = __ascii_wctomb; - l_mbtowc = __ascii_mbtowc; -#endif /* _MB_EXTENDED_CHARSETS_WINDOWS */ - break; - case 'T': - case 't': - if (strncasecmp (charset, "TIS", 3)) - FAIL; - c = charset + 3; - if (*c == '-') - ++c; - if (strcmp (c, "620")) - FAIL; - val = 874; - strcpy (charset, "CP874"); - mbc_max = 1; -#ifdef _MB_EXTENDED_CHARSETS_WINDOWS - l_wctomb = __cp_wctomb (val); - l_mbtowc = __cp_mbtowc (val); -#else /* !_MB_EXTENDED_CHARSETS_WINDOWS */ - l_wctomb = __ascii_wctomb; - l_mbtowc = __ascii_mbtowc; -#endif /* _MB_EXTENDED_CHARSETS_WINDOWS */ - break; -#ifdef __CYGWIN__ - /* Newlib does not provide Big5 and Cygwin's implementation - requires Windows support. */ - case 'B': - case 'b': - if (strcasecmp (charset, "BIG5")) - FAIL; - strcpy (charset, "BIG5"); - mbc_max = 2; - l_wctomb = __big5_wctomb; - l_mbtowc = __big5_mbtowc; - break; -#endif /* __CYGWIN__ */ - default: - FAIL; - } - switch (category) - { - case LC_CTYPE: -#ifndef __HAVE_LOCALE_INFO__ - strcpy (loc->ctype_codeset, charset); - loc->mb_cur_max[0] = mbc_max; -#endif -#ifdef __CYGWIN__ - __mb_cur_max = mbc_max; /* Only for backward compat */ -#endif - loc->wctomb = l_wctomb; - loc->mbtowc = l_mbtowc; - __set_ctype (loc, charset); - /* Set CJK width mode (1: ambiguous-wide, 0: normal, -1: disabled). */ - /* Determine the width for the "CJK Ambiguous Width" category of - characters. This is used in wcwidth(). Assume single width for - single-byte charsets, and double width for multi-byte charsets - other than UTF-8. For UTF-8, use single width. - Single width can also be forced with the "@cjknarrow" modifier. - Double width can also be forced with the "@cjkwide" modifier. - */ - loc->cjk_lang = cjkwide || - (!cjknarrow && mbc_max > 1 && charset[0] != 'U'); - if (cjksingle) - loc->cjk_lang = -1; /* Disable CJK dual-width */ -#ifdef __HAVE_LOCALE_INFO__ - ret = __ctype_load_locale (loc, locale, (void *) l_wctomb, charset, - mbc_max); -#endif /* __HAVE_LOCALE_INFO__ */ - break; - case LC_MESSAGES: -#ifdef __HAVE_LOCALE_INFO__ - ret = __messages_load_locale (loc, locale, (void *) l_wctomb, charset); - if (!ret) -#else - strcpy (loc->message_codeset, charset); -#endif /* __HAVE_LOCALE_INFO__ */ - break; -#ifdef __HAVE_LOCALE_INFO__ -#ifdef __CYGWIN__ - /* Right now only Cygwin supports a __collate_load_locale function at all. */ - case LC_COLLATE: - ret = __collate_load_locale (loc, locale, (void *) l_mbtowc, charset); - break; -#endif - case LC_MONETARY: - ret = __monetary_load_locale (loc, locale, (void *) l_wctomb, charset); - break; - case LC_NUMERIC: - ret = __numeric_load_locale (loc, locale, (void *) l_wctomb, charset); - break; - case LC_TIME: - ret = __time_load_locale (loc, locale, (void *) l_wctomb, charset); - break; -#endif /* __HAVE_LOCALE_INFO__ */ - default: - break; - } -#ifdef __HAVE_LOCALE_INFO__ - if (ret) - FAIL; -#endif /* __HAVE_LOCALE_INFO__ */ - return strcpy(loc->categories[category], new_locale); -} - -const char * -__get_locale_env (struct _reent *p, int category) -{ - const char *env; - - /* 1. check LC_ALL. */ - env = _getenv_r (p, categories[0]); - - /* 2. check LC_* */ - if (env == NULL || !*env) - env = _getenv_r (p, categories[category]); - - /* 3. check LANG */ - if (env == NULL || !*env) - env = _getenv_r (p, "LANG"); - - /* 4. if none is set, fall to default locale */ - if (env == NULL || !*env) - env = __default_locale; - - return env; -} -#endif /* _MB_CAPABLE */ - -int -__locale_mb_cur_max (void) -{ -#ifdef __HAVE_LOCALE_INFO__ - return __get_current_ctype_locale ()->mb_cur_max[0]; -#else - return __get_current_locale ()->mb_cur_max[0]; -#endif -} - -#ifdef __HAVE_LOCALE_INFO__ -const char * -__locale_ctype_ptr_l (struct __locale_t *locale) -{ - return locale->ctype_ptr; -} - -const char * -__locale_ctype_ptr (void) -{ - return __get_current_locale ()->ctype_ptr; -} -#endif /* __HAVE_LOCALE_INFO__ */ - -#ifndef _REENT_ONLY - -char * -setlocale (int category, - const char *locale) -{ - return _setlocale_r (_REENT, category, locale); -} - -#endif diff --git a/lib/locale/locale.tex b/lib/locale/locale.tex deleted file mode 100644 index eee7d77..0000000 --- a/lib/locale/locale.tex +++ /dev/null @@ -1,123 +0,0 @@ -@node Locale -@chapter Locale (@file{locale.h}) - -A @dfn{locale} is the name for a collection of parameters (affecting -collating sequences and formatting conventions) that may be different -depending on location or culture. The @code{"C"} locale is the only -one defined in the ANSI C standard. - -This is a minimal implementation, supporting only the required @code{"C"} -value for locale; strings representing other locales are not -honored. (@code{""} is also accepted; it represents the default locale -for an implementation, here equivalent to @code{"C"}). - - -@file{locale.h} defines the structure @code{lconv} to collect the -information on a locale, with the following fields: - -@table @code -@item char *decimal_point -The decimal point character used to format ``ordinary'' numbers (all -numbers except those referring to amounts of money). @code{"."} in the -C locale. - -@item char *thousands_sep -The character (if any) used to separate groups of digits, when -formatting ordinary numbers. -@code{""} in the C locale. - -@item char *grouping -Specifications for how many digits to group (if any grouping is done at -all) when formatting ordinary numbers. The @emph{numeric value} of each -character in the string represents the number of digits for the next -group, and a value of @code{0} (that is, the string's trailing -@code{NULL}) means to continue grouping digits using the last value -specified. Use @code{CHAR_MAX} to indicate that no further grouping is -desired. @code{""} in the C locale. - -@item char *int_curr_symbol -The international currency symbol (first three characters), if any, and -the character used to separate it from numbers. -@code{""} in the C locale. - -@item char *currency_symbol -The local currency symbol, if any. -@code{""} in the C locale. - -@item char *mon_decimal_point -The symbol used to delimit fractions in amounts of money. -@code{""} in the C locale. - -@item char *mon_thousands_sep -Similar to @code{thousands_sep}, but used for amounts of money. -@code{""} in the C locale. - -@item char *mon_grouping -Similar to @code{grouping}, but used for amounts of money. -@code{""} in the C locale. - -@item char *positive_sign -A string to flag positive amounts of money when formatting. -@code{""} in the C locale. - -@item char *negative_sign -A string to flag negative amounts of money when formatting. -@code{""} in the C locale. - -@item char int_frac_digits -The number of digits to display when formatting amounts of money to -international conventions. -@code{CHAR_MAX} (the largest number representable as a @code{char}) in -the C locale. - -@item char frac_digits -The number of digits to display when formatting amounts of money to -local conventions. -@code{CHAR_MAX} in the C locale. - -@item char p_cs_precedes -@code{1} indicates the local currency symbol is used before a -@emph{positive or zero} formatted amount of money; @code{0} indicates -the currency symbol is placed after the formatted number. -@code{CHAR_MAX} in the C locale. - -@item char p_sep_by_space -@code{1} indicates the local currency symbol must be separated from -@emph{positive or zero} numbers by a space; @code{0} indicates that it -is immediately adjacent to numbers. -@code{CHAR_MAX} in the C locale. - -@item char n_cs_precedes -@code{1} indicates the local currency symbol is used before a -@emph{negative} formatted amount of money; @code{0} indicates -the currency symbol is placed after the formatted number. -@code{CHAR_MAX} in the C locale. - -@item char n_sep_by_space -@code{1} indicates the local currency symbol must be separated from -@emph{negative} numbers by a space; @code{0} indicates that it -is immediately adjacent to numbers. -@code{CHAR_MAX} in the C locale. - -@item char p_sign_posn -Controls the position of the @emph{positive} sign for -numbers representing money. @code{0} means parentheses surround the -number; @code{1} means the sign is placed before both the number and the -currency symbol; @code{2} means the sign is placed after both the number -and the currency symbol; @code{3} means the sign is placed just before -the currency symbol; and @code{4} means the sign is placed just after -the currency symbol. -@code{CHAR_MAX} in the C locale. - -@item char n_sign_posn -Controls the position of the @emph{negative} sign for numbers -representing money, using the same rules as @code{p_sign_posn}. -@code{CHAR_MAX} in the C locale. -@end table - -@menu -* setlocale:: Select or query locale -@end menu - -@page -@include locale/locale.def diff --git a/lib/locale/localeconv.c b/lib/locale/localeconv.c deleted file mode 100644 index 5f34a78..0000000 --- a/lib/locale/localeconv.c +++ /dev/null @@ -1,68 +0,0 @@ -#include "newlib.h" -#include -#include "setlocale.h" - -struct lconv * -__localeconv_l (struct __locale_t *locale) -{ - struct lconv *lconv = &locale->lconv; - if (locale == __get_C_locale ()) - return lconv; - -#ifdef __HAVE_LOCALE_INFO__ - const struct lc_numeric_T *n = __get_numeric_locale (locale); - const struct lc_monetary_T *m = __get_monetary_locale (locale); - - lconv->decimal_point = (char *) n->decimal_point; - lconv->thousands_sep = (char *) n->thousands_sep; - lconv->grouping = (char *) n->grouping; - lconv->int_curr_symbol = (char *) m->int_curr_symbol; - lconv->currency_symbol = (char *) m->currency_symbol; - lconv->mon_decimal_point = (char *) m->mon_decimal_point; - lconv->mon_thousands_sep = (char *) m->mon_thousands_sep; - lconv->mon_grouping = (char *) m->mon_grouping; - lconv->positive_sign = (char *) m->positive_sign; - lconv->negative_sign = (char *) m->negative_sign; - lconv->int_frac_digits = m->int_frac_digits[0]; - lconv->frac_digits = m->frac_digits[0]; - lconv->p_cs_precedes = m->p_cs_precedes[0]; - lconv->p_sep_by_space = m->p_sep_by_space[0]; - lconv->n_cs_precedes = m->n_cs_precedes[0]; - lconv->n_sep_by_space = m->n_sep_by_space[0]; - lconv->p_sign_posn = m->p_sign_posn[0]; - lconv->n_sign_posn = m->n_sign_posn[0]; -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - lconv->int_p_cs_precedes = m->int_p_cs_precedes[0]; - lconv->int_p_sep_by_space = m->int_p_sep_by_space[0]; - lconv->int_n_cs_precedes = m->int_n_cs_precedes[0]; - lconv->int_n_sep_by_space = m->int_n_sep_by_space[0]; - lconv->int_n_sign_posn = m->int_n_sign_posn[0]; - lconv->int_p_sign_posn = m->int_p_sign_posn[0]; -#else /* !__HAVE_LOCALE_INFO_EXTENDED__ */ - lconv->int_p_cs_precedes = m->p_cs_precedes[0]; - lconv->int_p_sep_by_space = m->p_sep_by_space[0]; - lconv->int_n_cs_precedes = m->n_cs_precedes[0]; - lconv->int_n_sep_by_space = m->n_sep_by_space[0]; - lconv->int_n_sign_posn = m->n_sign_posn[0]; - lconv->int_p_sign_posn = m->p_sign_posn[0]; -#endif /* !__HAVE_LOCALE_INFO_EXTENDED__ */ -#endif /* __HAVE_LOCALE_INFO__ */ - return lconv; -} - -struct lconv * -_localeconv_r (struct _reent *data) -{ - /* Note that we always fall back to the global locale, even in case - of specifying a reent. Otherwise a call to _localeconv_r would just - crash if the reent locale pointer is NULL. */ - return __localeconv_l (__get_current_locale ()); -} - -#ifndef _REENT_ONLY -struct lconv * -localeconv (void) -{ - return __localeconv_l (__get_current_locale ()); -} -#endif diff --git a/lib/locale/newlocale.c b/lib/locale/newlocale.c deleted file mode 100644 index 278f78e..0000000 --- a/lib/locale/newlocale.c +++ /dev/null @@ -1,226 +0,0 @@ -/* -FUNCTION - <>---create or modify a locale object - -INDEX - newlocale - -INDEX - _newlocale_r - -SYNOPSIS - #include - locale_t newlocale(int <[category_mask]>, const char *<[locale]>, - locale_t <[locobj]>); - - locale_t _newlocale_r(void *<[reent]>, int <[category_mask]>, - const char *<[locale]>, locale_t <[locobj]>); - -DESCRIPTION -The <> function shall create a new locale object or modify an -existing one. If the base argument is (locale_t) <<0>>, a new locale -object shall be created. It is unspecified whether the locale object -pointed to by base shall be modified, or freed and a new locale object -created. - -The category_mask argument specifies the locale categories to be set or -modified. Values for category_mask shall be constructed by a -bitwise-inclusive OR of the symbolic constants LC_CTYPE_MASK, -LC_NUMERIC_MASK, LC_TIME_MASK, LC_COLLATE_MASK, LC_MONETARY_MASK, and -LC_MESSAGES_MASK, or any of the other implementation-defined LC_*_MASK -values defined in . - -For each category with the corresponding bit set in category_mask the -data from the locale named by locale shall be used. In the case of -modifying an existing locale object, the data from the locale named by -locale shall replace the existing data within the locale object. If a -completely new locale object is created, the data for all sections not -requested by category_mask shall be taken from the default locale. - -The following preset values of locale are defined for all settings of -category_mask: - -"POSIX" Specifies the minimal environment for C-language translation -called the POSIX locale. - -"C" Equivalent to "POSIX". - -"" Specifies an implementation-defined native environment. This - corresponds to the value of the associated environment variables, - LC_* and LANG; see the Base Definitions volume of POSIX.1â€2008, - Chapter 7, Locale and Chapter 8, Environment Variables. - -If the base argument is not (locale_t) <<0>> and the <> -function call succeeds, the contents of base are unspecified. -Applications shall ensure that they stop using base as a locale object -before calling <>. If the function call fails and the base -argument is not (locale_t) <<0>>, the contents of base shall remain -valid and unchanged. - -The behavior is undefined if the base argument is the special locale -object LC_GLOBAL_LOCALE, or is not a valid locale object handle and is -not (locale_t) <<0>>. - -RETURNS -Upon successful completion, the <> function shall return a -handle which the caller may use on subsequent calls to <>, -<>, and other functions taking a locale_t argument. - -Upon failure, the <> function shall return (locale_t) <<0>> -and set errno to indicate the error. - -PORTABILITY -<> is POSIX-1.2008. -*/ - -#include -#include -#include -#include -#include "setlocale.h" - -#define LC_VALID_MASK (LC_COLLATE_MASK | LC_CTYPE_MASK | LC_MONETARY_MASK \ - | LC_NUMERIC_MASK | LC_TIME_MASK | LC_MESSAGES_MASK) - -struct __locale_t * -_newlocale_r (struct _reent *p, int category_mask, const char *locale, - struct __locale_t *base) -{ -#ifndef _MB_CAPABLE - return __get_C_locale (); -#else /* _MB_CAPABLE */ - char new_categories[_LC_LAST][ENCODING_LEN + 1]; - struct __locale_t tmp_locale, *new_locale; - int i; - - /* Convert LC_ALL_MASK to a mask containing all valid MASK values. - This simplifies the code below. */ - if (category_mask & LC_ALL_MASK) - { - category_mask &= ~LC_ALL_MASK; - category_mask |= LC_VALID_MASK; - } - /* Check for invalid mask values and valid locale ptr. */ - if ((category_mask & ~LC_VALID_MASK) || !locale) - { - p->_errno = EINVAL; - return NULL; - } - /* If the new locale is supposed to be all default locale, just return - a pointer to the default locale. */ - if ((!base && category_mask == 0) - || (category_mask == LC_VALID_MASK - && (!strcmp (locale, "C") || !strcmp (locale, "POSIX")))) - return __get_C_locale (); - /* Start with setting all values to the default locale values. */ - tmp_locale = *__get_C_locale (); - /* Fill out new category strings. */ - for (i = 1; i < _LC_LAST; ++i) - { - if (((1 << i) & category_mask) != 0) - { - /* If locale is "", fetch from environment. Otherwise use locale - name verbatim. */ - const char *cat = (locale[0] == '\0') ? __get_locale_env (p, i) - : locale; - if (strlen (cat) > ENCODING_LEN) - { - p->_errno = EINVAL; - return NULL; - } - strcpy (new_categories[i], cat); - } - else - strcpy (new_categories[i], base ? base->categories[i] : "C"); - } - /* Now go over all categories and set them. */ - for (i = 1; i < _LC_LAST; ++i) - { - /* If we have a base locale, and the category is not in category_mask - or the new category is the base categroy, just copy over. */ - if (base && (((1 << i) & category_mask) == 0 - || !strcmp (base->categories[i], new_categories[i]))) - { - strcpy (tmp_locale.categories[i], new_categories[i]); - if (i == LC_CTYPE) - { - tmp_locale.wctomb = base->wctomb; - tmp_locale.mbtowc = base->mbtowc; - tmp_locale.cjk_lang = base->cjk_lang; - tmp_locale.ctype_ptr = base->ctype_ptr; - } -#ifdef __HAVE_LOCALE_INFO__ - /* Mark the values as "has still to be copied". We do this in - two steps to simplify freeing new locale types in case of a - subsequent error. */ - tmp_locale.lc_cat[i].ptr = base->lc_cat[i].ptr; - tmp_locale.lc_cat[i].buf = (void *) -1; -#else /* !__HAVE_LOCALE_INFO__ */ - if (i == LC_CTYPE) - strcpy (tmp_locale.ctype_codeset, base->ctype_codeset); - else if (i == LC_MESSAGES) - strcpy (tmp_locale.message_codeset, base->message_codeset); -#endif /* !__HAVE_LOCALE_INFO__ */ - } - /* Otherwise, if the category is in category_mask, create entry. */ - else if (((1 << i) & category_mask) != 0) - { - /* Nothing to do for "C"/"POSIX" locale. */ - if (!strcmp (new_categories[i], "C") - || !strcmp (new_categories[i], "POSIX")) - continue; - /* Otherwise load locale data. */ - else if (!__loadlocale (&tmp_locale, i, new_categories[i])) - { - p->_errno = ENOENT; - goto error; - } - } - } - /* Allocate new locale_t. */ - new_locale = (struct __locale_t *) _calloc_r (p, 1, sizeof *new_locale); - if (!new_locale) - goto error; - if (base) - { -#ifdef __HAVE_LOCALE_INFO__ - /* Step 2 of copying over.. Make sure to invalidate the copied buffer - pointers in base, so the subsequent _freelocale_r (base) doesn't free - the buffers now used in the new locale. */ - for (i = 1; i < _LC_LAST; ++i) - if (tmp_locale.lc_cat[i].buf == (const void *) -1) - { - tmp_locale.lc_cat[i].buf = base->lc_cat[i].buf; - if (base != __get_C_locale ()) - base->lc_cat[i].ptr = base->lc_cat[i].buf = NULL; - } -#endif /* __HAVE_LOCALE_INFO__ */ - _freelocale_r (p, base); - } - - *new_locale = tmp_locale; - return new_locale; - -error: - /* An error occured while we had already (potentially) allocated memory. - Free memory and return NULL. errno is supposed to be set already. */ -#ifdef __HAVE_LOCALE_INFO__ - for (i = 1; i < _LC_LAST; ++i) - if (((1 << i) & category_mask) != 0 - && tmp_locale.lc_cat[i].buf - && tmp_locale.lc_cat[i].buf != (const void *) -1) - { - _free_r (p, (void *) tmp_locale.lc_cat[i].ptr); - _free_r (p, tmp_locale.lc_cat[i].buf); - } -#endif /* __HAVE_LOCALE_INFO__ */ - - return NULL; -#endif /* _MB_CAPABLE */ -} - -struct __locale_t * -newlocale (int category_mask, const char *locale, struct __locale_t *base) -{ - return _newlocale_r (_REENT, category_mask, locale, base); -} diff --git a/lib/locale/nl_langinfo.3 b/lib/locale/nl_langinfo.3 deleted file mode 100644 index 96819e1..0000000 --- a/lib/locale/nl_langinfo.3 +++ /dev/null @@ -1,90 +0,0 @@ -.\" Copyright (c) 2001 Alexey Zelkin -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $FreeBSD: src/lib/libc/locale/nl_langinfo.3,v 1.4 2002/04/13 04:25:56 dd Exp $ -.\" -.Dd May 3, 2001 -.Dt NL_LANGINFO 3 -.Os -.Sh NAME -.Nm nl_langinfo -.Nd language information -.Sh LIBRARY -.Lb libc -.Sh SYNOPSIS -.In langinfo.h -.Ft char * -.Fn nl_langinfo "nl_item item" -.Sh DESCRIPTION -The -.Fn nl_langinfo -function returns a pointer to a string containing information relevant to -the particular language or cultural area defined in the program's locale. -The manifest constant names and values of -.Fa item -are defined in -.Aq Pa langinfo.h . -.Pp -Calls to -.Fn setlocale -with a category corresponding to the category of -.Fa item , -or to the -category -.Dv LC_ALL , -may overwrite buffer pointed by the return value. -.Sh EXAMPLES -For example: -.Pp -.Dl nl_langinfo(ABDAY_1) -.Pp -would return a pointer to the string -.Qq Li Dom -if the identified language was -Portuguese, and -.Qq Li Sun -if the identified language was English. -.Sh RETURN VALUES -In a locale where langinfo data is not defined, -.Fn nl_langinfo -returns a pointer to the corresponding string in the -.Tn POSIX -locale. -In all locales, -.Fn nl_langinfo -returns a pointer to an empty string if -.Fa item -contains an invalid setting. -.Sh SEE ALSO -.Xr setlocale 3 -.Sh STANDARDS -The -.Fn nl_langinfo -function conforms to -.St -susv2 . -.Sh HISTORY -The -.Fn nl_langinfo -function first appeared in -.Fx 4.6 . diff --git a/lib/locale/nl_langinfo.c b/lib/locale/nl_langinfo.c deleted file mode 100644 index aaa1aef..0000000 --- a/lib/locale/nl_langinfo.c +++ /dev/null @@ -1,398 +0,0 @@ -/*- - * Copyright (c) 2001 Alexey Zelkin - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define _GNU_SOURCE - -#include - -#include -#include -#include -#include -#include - -#include "setlocale.h" - -#undef offsetoff -#define _O(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER) - -#define _NLITEM(cat,memb) { { cat:__get_##cat##_locale }, \ - _O (struct lc_##cat##_T, memb) } - -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ -static struct _nl_item_t -{ - union { - const struct lc_ctype_T * (*ctype)(struct __locale_t *); - const struct lc_time_T * (*time)(struct __locale_t *); - const struct lc_numeric_T * (*numeric)(struct __locale_t *); - const struct lc_monetary_T * (*monetary)(struct __locale_t *); - const struct lc_messages_T * (*messages)(struct __locale_t *); - void * (*base)(struct __locale_t *); - }; - _off_t offset; -} nl_ext[] = -{ - /* First element has an nl_item value of _NL_LOCALE_EXTENDED_FIRST_ENTRY */ - _NLITEM (ctype, outdigits[0]), - _NLITEM (ctype, outdigits[1]), - _NLITEM (ctype, outdigits[2]), - _NLITEM (ctype, outdigits[3]), - _NLITEM (ctype, outdigits[4]), - _NLITEM (ctype, outdigits[5]), - _NLITEM (ctype, outdigits[6]), - _NLITEM (ctype, outdigits[7]), - _NLITEM (ctype, outdigits[8]), - _NLITEM (ctype, outdigits[9]), - _NLITEM (ctype, woutdigits[0]), - _NLITEM (ctype, woutdigits[1]), - _NLITEM (ctype, woutdigits[2]), - _NLITEM (ctype, woutdigits[3]), - _NLITEM (ctype, woutdigits[4]), - _NLITEM (ctype, woutdigits[5]), - _NLITEM (ctype, woutdigits[6]), - _NLITEM (ctype, woutdigits[7]), - _NLITEM (ctype, woutdigits[8]), - _NLITEM (ctype, woutdigits[9]), - _NLITEM (time, codeset), - _NLITEM (time, wmon[1]), - _NLITEM (time, wmon[2]), - _NLITEM (time, wmon[3]), - _NLITEM (time, wmon[4]), - _NLITEM (time, wmon[5]), - _NLITEM (time, wmon[6]), - _NLITEM (time, wmon[7]), - _NLITEM (time, wmon[8]), - _NLITEM (time, wmon[9]), - _NLITEM (time, wmon[10]), - _NLITEM (time, wmon[11]), - _NLITEM (time, wmon[12]), - _NLITEM (time, wmonth[1]), - _NLITEM (time, wmonth[2]), - _NLITEM (time, wmonth[3]), - _NLITEM (time, wmonth[4]), - _NLITEM (time, wmonth[5]), - _NLITEM (time, wmonth[6]), - _NLITEM (time, wmonth[7]), - _NLITEM (time, wmonth[8]), - _NLITEM (time, wmonth[9]), - _NLITEM (time, wmonth[10]), - _NLITEM (time, wmonth[11]), - _NLITEM (time, wmonth[12]), - _NLITEM (time, wwday[1]), - _NLITEM (time, wwday[2]), - _NLITEM (time, wwday[3]), - _NLITEM (time, wwday[4]), - _NLITEM (time, wwday[5]), - _NLITEM (time, wwday[6]), - _NLITEM (time, wwday[7]), - _NLITEM (time, wweekday[1]), - _NLITEM (time, wweekday[2]), - _NLITEM (time, wweekday[3]), - _NLITEM (time, wweekday[4]), - _NLITEM (time, wweekday[5]), - _NLITEM (time, wweekday[6]), - _NLITEM (time, wweekday[7]), - _NLITEM (time, wX_fmt), - _NLITEM (time, wx_fmt), - _NLITEM (time, wc_fmt), - _NLITEM (time, wam_pm[0]), - _NLITEM (time, wam_pm[1]), - _NLITEM (time, wdate_fmt), - _NLITEM (time, wampm_fmt), - _NLITEM (time, wera), - _NLITEM (time, wera_d_fmt), - _NLITEM (time, wera_d_t_fmt), - _NLITEM (time, wera_t_fmt), - _NLITEM (time, walt_digits), - _NLITEM (numeric, codeset), - _NLITEM (numeric, grouping), - _NLITEM (numeric, wdecimal_point), - _NLITEM (numeric, wthousands_sep), - _NLITEM (monetary, int_curr_symbol), - _NLITEM (monetary, currency_symbol), - _NLITEM (monetary, mon_decimal_point), - _NLITEM (monetary, mon_thousands_sep), - _NLITEM (monetary, mon_grouping), - _NLITEM (monetary, positive_sign), - _NLITEM (monetary, negative_sign), - _NLITEM (monetary, int_frac_digits), - _NLITEM (monetary, frac_digits), - _NLITEM (monetary, p_cs_precedes), - _NLITEM (monetary, p_sep_by_space), - _NLITEM (monetary, n_cs_precedes), - _NLITEM (monetary, n_sep_by_space), - _NLITEM (monetary, p_sign_posn), - _NLITEM (monetary, n_sign_posn), - _NLITEM (monetary, int_p_cs_precedes), - _NLITEM (monetary, int_p_sep_by_space), - _NLITEM (monetary, int_n_cs_precedes), - _NLITEM (monetary, int_n_sep_by_space), - _NLITEM (monetary, int_p_sign_posn), - _NLITEM (monetary, int_n_sign_posn), - _NLITEM (monetary, codeset), - _NLITEM (monetary, wint_curr_symbol), - _NLITEM (monetary, wcurrency_symbol), - _NLITEM (monetary, wmon_decimal_point), - _NLITEM (monetary, wmon_thousands_sep), - _NLITEM (monetary, wpositive_sign), - _NLITEM (monetary, wnegative_sign), - _NLITEM (messages, codeset), - _NLITEM (messages, wyesexpr), - _NLITEM (messages, wnoexpr), - _NLITEM (messages, wyesstr), - _NLITEM (messages, wnostr), -}; -#endif /* __HAVE_LOCALE_INFO_EXTENDED__ */ - -#define _REL(BASE) ((int)item-BASE) - -char *nl_langinfo_l (nl_item item, struct __locale_t *locale) -{ - char *ret, *cs; -#ifndef __CYGWIN__ - char *s; -#endif - static char *csym = NULL; - char *nptr; - - switch (item) { -#ifdef __HAVE_LOCALE_INFO__ - case _NL_MESSAGES_CODESET: - ret = (char *) __get_messages_locale (locale)->codeset; - goto do_codeset; -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - case _NL_TIME_CODESET: - ret = (char *) __get_time_locale (locale)->codeset; - goto do_codeset; - case _NL_NUMERIC_CODESET: - ret = (char *) __get_numeric_locale (locale)->codeset; - goto do_codeset; - case _NL_MONETARY_CODESET: - ret = (char *) __get_monetary_locale (locale)->codeset; - goto do_codeset; -#ifdef __CYGWIN__ - case _NL_COLLATE_CODESET: - { - ret = (char *) __get_collate_locale (locale)->codeset; - goto do_codeset; - } -#endif /* __CYGWIN__ */ -#endif /* __HAVE_LOCALE_INFO_EXTENDED__ */ -#endif /* __HAVE_LOCALE_INFO__ */ - case CODESET: -#ifdef _MB_CAPABLE - ret = (char *) __locale_charset (locale); -#endif -do_codeset: -#ifdef __CYGWIN__ - /* Convert charset to Linux compatible codeset string. */ - if (ret[0] == 'A'/*SCII*/) - ret = "ANSI_X3.4-1968"; - else if (ret[0] == 'E') - { - if (strcmp (ret, "EUCJP") == 0) - ret = "EUC-JP"; - else if (strcmp (ret, "EUCKR") == 0) - ret = "EUC-KR"; - else if (strcmp (ret, "EUCCN") == 0) - ret = "GB2312"; - } - else if (ret[0] == 'C'/*Pxxxx*/) - { - if (strcmp (ret + 2, "874") == 0) - ret = "TIS-620"; - else if (strcmp (ret + 2, "20866") == 0) - ret = "KOI8-R"; - else if (strcmp (ret + 2, "21866") == 0) - ret = "KOI8-U"; - else if (strcmp (ret + 2, "101") == 0) - ret = "GEORGIAN-PS"; - else if (strcmp (ret + 2, "102") == 0) - ret = "PT154"; - else if (strcmp (ret + 2, "103") == 0) - ret = "KOI8-T"; - } - else if (ret[0] == 'S'/*JIS*/) - { - /* Cygwin uses MSFT's implementation of SJIS, which differs - in some codepoints from the real thing, especially - 0x5c: yen sign instead of backslash, - 0x7e: overline instead of tilde. - We can't use the real SJIS since otherwise Win32 - pathnames would become invalid. OTOH, if we return - "SJIS" here, then libiconv will do mb<->wc conversion - differently to our internal functions. Therefore we - return what we really implement, CP932. This is handled - fine by libiconv. */ - ret = "CP932"; - } -#elif !defined (_MB_CAPABLE) - ret = "US-ASCII"; -#endif /* __CYGWIN__ */ - break; - case D_T_FMT: - ret = (char *) __get_time_locale (locale)->c_fmt; - break; - case D_FMT: - ret = (char *) __get_time_locale (locale)->x_fmt; - break; - case T_FMT: - ret = (char *) __get_time_locale (locale)->X_fmt; - break; - case T_FMT_AMPM: - ret = (char *) __get_time_locale (locale)->ampm_fmt; - break; - case AM_STR: - ret = (char *) __get_time_locale (locale)->am_pm[0]; - break; - case PM_STR: - ret = (char *) __get_time_locale (locale)->am_pm[1]; - break; - case DAY_1: case DAY_2: case DAY_3: - case DAY_4: case DAY_5: case DAY_6: case DAY_7: - ret = (char*) __get_time_locale (locale)->weekday[_REL(DAY_1)]; - break; - case ABDAY_1: case ABDAY_2: case ABDAY_3: - case ABDAY_4: case ABDAY_5: case ABDAY_6: case ABDAY_7: - ret = (char*) __get_time_locale (locale)->wday[_REL(ABDAY_1)]; - break; - case MON_1: case MON_2: case MON_3: case MON_4: - case MON_5: case MON_6: case MON_7: case MON_8: - case MON_9: case MON_10: case MON_11: case MON_12: - ret = (char*) __get_time_locale (locale)->month[_REL(MON_1)]; - break; - case ABMON_1: case ABMON_2: case ABMON_3: case ABMON_4: - case ABMON_5: case ABMON_6: case ABMON_7: case ABMON_8: - case ABMON_9: case ABMON_10: case ABMON_11: case ABMON_12: - ret = (char*) __get_time_locale (locale)->mon[_REL(ABMON_1)]; - break; - case ERA: - ret = (char*) __get_time_locale (locale)->era; - break; - case ERA_D_FMT: - ret = (char*) __get_time_locale (locale)->era_d_fmt; - break; - case ERA_D_T_FMT: - ret = (char*) __get_time_locale (locale)->era_d_t_fmt; - break; - case ERA_T_FMT: - ret = (char*) __get_time_locale (locale)->era_t_fmt; - break; - case ALT_DIGITS: - ret = (char*) __get_time_locale (locale)->alt_digits; - break; - case _DATE_FMT: /* GNU extension */ - ret = (char*) __get_time_locale (locale)->date_fmt; - break; - case RADIXCHAR: - ret = (char*) __get_numeric_locale (locale)->decimal_point; - break; - case THOUSEP: - ret = (char*) __get_numeric_locale (locale)->thousands_sep; - break; - case YESEXPR: - ret = (char*) __get_messages_locale (locale)->yesexpr; - break; - case NOEXPR: - ret = (char*) __get_messages_locale (locale)->noexpr; - break; - /* - * All items marked with LEGACY are available, but not recomended - * by SUSv2 to be used in portable applications since they're subject - * to remove in future specification editions - */ - case YESSTR: /* LEGACY */ - ret = (char*) __get_messages_locale (locale)->yesstr; - break; - case NOSTR: /* LEGACY */ - ret = (char*) __get_messages_locale (locale)->nostr; - break; - case CRNCYSTR: - ret = ""; - cs = (char*) __get_monetary_locale (locale)->currency_symbol; - if (*cs != '\0') { - char pos = __localeconv_l (locale)->p_cs_precedes; - - if (pos == __localeconv_l (locale)->n_cs_precedes) { - char psn = '\0'; - - if (pos == CHAR_MAX) { - if (strcmp(cs, __get_monetary_locale (locale)->mon_decimal_point) == 0) - psn = '.'; - } else - psn = pos ? '-' : '+'; - if (psn != '\0') { - int clen = strlen(cs); - - nptr = realloc(csym, clen + 2); - if (!nptr && csym) - free (csym); - - csym = nptr; - - if (csym != NULL) { - *csym = psn; - strcpy(csym + 1, cs); - ret = csym; - } - } - } - } - break; - case D_MD_ORDER: /* local extension */ - ret = (char *) __get_time_locale (locale)->md_order; - break; -#ifdef __HAVE_LOCALE_INFO__ - case _NL_CTYPE_MB_CUR_MAX: - ret = (char *) __get_ctype_locale (locale)->mb_cur_max; - break; -#endif - default: - /* Relies on the fact that LC_ALL is 0, and all other - LC_ constants are in ascending order. */ - if (item > NL_LOCALE_NAME(LC_ALL) - && item < NL_LOCALE_NAME(_LC_LAST)) { - return locale->categories[item - - NL_LOCALE_NAME(LC_ALL)]; - } -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - if (item > _NL_LOCALE_EXTENDED_FIRST_ENTRY - && item < _NL_LOCALE_EXTENDED_LAST_ENTRY) { - int idx = item - _NL_LOCALE_EXTENDED_FIRST_ENTRY - 1; - return *(char **) ((char *) (*nl_ext[idx].base)(locale) - + nl_ext[idx].offset); - } -#endif - ret = ""; - } - return (ret); -} - -char *nl_langinfo (nl_item item) -{ - return nl_langinfo_l (item, __get_current_locale ()); -} diff --git a/lib/locale/setlocale.h b/lib/locale/setlocale.h deleted file mode 100644 index 7abf92f..0000000 --- a/lib/locale/setlocale.h +++ /dev/null @@ -1,455 +0,0 @@ -/*- - * Copyright (C) 1997 by Andrey A. Chernov, Moscow, Russia. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: src/lib/libc/locale/setlocale.h,v 1.4 2001/12/20 18:28:52 phantom Exp $ - */ - -#ifndef _SETLOCALE_H_ -#define _SETLOCALE_H_ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include - -__BEGIN_DECLS - -#define ENCODING_LEN 31 -#define CATEGORY_LEN 11 -#define _LC_LAST 7 - -#ifdef __CYGWIN__ -struct lc_collate_T -{ - wchar_t win_locale[ENCODING_LEN + 1]; - int (*mbtowc) (struct _reent *, wchar_t *, const char *, size_t, - mbstate_t *); - char codeset[ENCODING_LEN + 1]; -}; -extern const struct lc_collate_T _C_collate_locale; -#endif - -struct lc_ctype_T -{ - const char *codeset; /* codeset for mbtowc conversion */ - const char *mb_cur_max; -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - const char *outdigits[10]; - const wchar_t *woutdigits[10]; -#endif -}; -extern const struct lc_ctype_T _C_ctype_locale; -#ifdef __CYGWIN__ -extern const struct lc_ctype_T _C_utf8_ctype_locale; -#endif - -struct lc_monetary_T -{ - const char *int_curr_symbol; - const char *currency_symbol; - const char *mon_decimal_point; - const char *mon_thousands_sep; - const char *mon_grouping; - const char *positive_sign; - const char *negative_sign; - const char *int_frac_digits; - const char *frac_digits; - const char *p_cs_precedes; - const char *p_sep_by_space; - const char *n_cs_precedes; - const char *n_sep_by_space; - const char *p_sign_posn; - const char *n_sign_posn; -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - const char *int_p_cs_precedes; - const char *int_p_sep_by_space; - const char *int_n_cs_precedes; - const char *int_n_sep_by_space; - const char *int_p_sign_posn; - const char *int_n_sign_posn; - const char *codeset; /* codeset for mbtowc conversion */ - const wchar_t *wint_curr_symbol; - const wchar_t *wcurrency_symbol; - const wchar_t *wmon_decimal_point; - const wchar_t *wmon_thousands_sep; - const wchar_t *wpositive_sign; - const wchar_t *wnegative_sign; -#endif -}; -extern const struct lc_monetary_T _C_monetary_locale; - -struct lc_numeric_T -{ - const char *decimal_point; - const char *thousands_sep; - const char *grouping; -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - const char *codeset; /* codeset for mbtowc conversion */ - const wchar_t *wdecimal_point; - const wchar_t *wthousands_sep; -#endif -}; -extern const struct lc_numeric_T _C_numeric_locale; - -struct lc_time_T -{ - const char *mon[12]; - const char *month[12]; - const char *wday[7]; - const char *weekday[7]; - const char *X_fmt; - const char *x_fmt; - const char *c_fmt; - const char *am_pm[2]; - const char *date_fmt; - const char *alt_month[12]; /* unused */ - const char *md_order; - const char *ampm_fmt; - const char *era; - const char *era_d_fmt; - const char *era_d_t_fmt; - const char *era_t_fmt; - const char *alt_digits; -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - const char *codeset; /* codeset for mbtowc conversion */ - const wchar_t *wmon[12]; - const wchar_t *wmonth[12]; - const wchar_t *wwday[7]; - const wchar_t *wweekday[7]; - const wchar_t *wX_fmt; - const wchar_t *wx_fmt; - const wchar_t *wc_fmt; - const wchar_t *wam_pm[2]; - const wchar_t *wdate_fmt; - const wchar_t *wampm_fmt; - const wchar_t *wera; - const wchar_t *wera_d_fmt; - const wchar_t *wera_d_t_fmt; - const wchar_t *wera_t_fmt; - const wchar_t *walt_digits; -#endif -}; -extern const struct lc_time_T _C_time_locale; - -struct lc_messages_T -{ - const char *yesexpr; - const char *noexpr; - const char *yesstr; - const char *nostr; -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - const char *codeset; /* codeset for mbtowc conversion */ - const wchar_t *wyesexpr; - const wchar_t *wnoexpr; - const wchar_t *wyesstr; - const wchar_t *wnostr; -#endif -}; -extern const struct lc_messages_T _C_messages_locale; - -struct __lc_cats -{ - const void *ptr; - char *buf; -}; - -struct __locale_t -{ - char categories[_LC_LAST][ENCODING_LEN + 1]; - int (*wctomb) (struct _reent *, char *, wchar_t, - mbstate_t *); - int (*mbtowc) (struct _reent *, wchar_t *, - const char *, size_t, mbstate_t *); - int cjk_lang; - char *ctype_ptr; - struct lconv lconv; -#ifndef __HAVE_LOCALE_INFO__ - char mb_cur_max[2]; - char ctype_codeset[ENCODING_LEN + 1]; - char message_codeset[ENCODING_LEN + 1]; -#else - struct __lc_cats lc_cat[_LC_LAST]; -#endif -}; - -#ifdef _MB_CAPABLE -extern char *__loadlocale (struct __locale_t *, int, char *); -extern const char *__get_locale_env(struct _reent *, int); -#endif /* _MB_CAPABLE */ - -extern struct lconv *__localeconv_l (struct __locale_t *locale); - -extern size_t _wcsnrtombs_l (struct _reent *, char *, const wchar_t **, - size_t, size_t, mbstate_t *, struct __locale_t *); - -/* In POSIX terms the global locale is the process-wide locale. Use this - function to always refer to the global locale. */ -_ELIDABLE_INLINE struct __locale_t * -__get_global_locale () -{ - extern struct __locale_t __global_locale; - return &__global_locale; -} - -/* Per REENT locale. This is newlib-internal. */ -_ELIDABLE_INLINE struct __locale_t * -__get_locale_r (struct _reent *r) -{ -#ifdef __HAVE_LOCALE_INFO__ - return _REENT_LOCALE(r); -#else - return __get_global_locale(); -#endif -} - -/* In POSIX terms the current locale is the locale used by all functions - using locale info without providing a locale as parameter (*_l functions). - The current locale is either the locale of the current thread, if the - thread called uselocale, or the global locale if not. */ -_ELIDABLE_INLINE struct __locale_t * -__get_current_locale (void) -{ -#ifdef __HAVE_LOCALE_INFO__ - return _REENT_LOCALE(_REENT) ?: __get_global_locale (); -#else - return __get_global_locale(); -#endif -} - -/* Only access fixed "C" locale using this function. Fake for !_MB_CAPABLE - targets by returning ptr to globale locale. */ -_ELIDABLE_INLINE struct __locale_t * -__get_C_locale (void) -{ -#ifndef _MB_CAPABLE - return __get_global_locale (); -#else - extern const struct __locale_t __C_locale; - return (struct __locale_t *) &__C_locale; -#endif -} - -#ifdef __CYGWIN__ -_ELIDABLE_INLINE const struct lc_collate_T * -__get_collate_locale (struct __locale_t *locale) -{ - return (const struct lc_collate_T *) locale->lc_cat[LC_COLLATE].ptr; -} - -_ELIDABLE_INLINE const struct lc_collate_T * -__get_current_collate_locale (void) -{ - return (const struct lc_collate_T *) - __get_current_locale ()->lc_cat[LC_COLLATE].ptr; -} -#endif - -#ifdef __HAVE_LOCALE_INFO__ -_ELIDABLE_INLINE const struct lc_ctype_T * -__get_ctype_locale (struct __locale_t *locale) -{ - return (const struct lc_ctype_T *) (locale)->lc_cat[LC_CTYPE].ptr; -} - -_ELIDABLE_INLINE const struct lc_ctype_T * -__get_current_ctype_locale (void) -{ - return (const struct lc_ctype_T *) - __get_current_locale ()->lc_cat[LC_CTYPE].ptr; -} -#endif - -_ELIDABLE_INLINE int -__locale_mb_cur_max_l (struct __locale_t *locale) -{ -#ifdef __HAVE_LOCALE_INFO__ - return __get_ctype_locale (locale)->mb_cur_max[0]; -#else - return locale->mb_cur_max[0]; -#endif -} - -#ifdef __HAVE_LOCALE_INFO__ -_ELIDABLE_INLINE const struct lc_monetary_T * -__get_monetary_locale (struct __locale_t *locale) -{ - return (const struct lc_monetary_T *) (locale)->lc_cat[LC_MONETARY].ptr; -} - -_ELIDABLE_INLINE const struct lc_monetary_T * -__get_current_monetary_locale (void) -{ - return (const struct lc_monetary_T *) - __get_current_locale ()->lc_cat[LC_MONETARY].ptr; -} - -_ELIDABLE_INLINE const struct lc_numeric_T * -__get_numeric_locale (struct __locale_t *locale) -{ - return (const struct lc_numeric_T *) (locale)->lc_cat[LC_NUMERIC].ptr; -} - -_ELIDABLE_INLINE const struct lc_numeric_T * -__get_current_numeric_locale (void) -{ - return (const struct lc_numeric_T *) - __get_current_locale ()->lc_cat[LC_NUMERIC].ptr; -} - -_ELIDABLE_INLINE const struct lc_time_T * -__get_time_locale (struct __locale_t *locale) -{ - return (const struct lc_time_T *) (locale)->lc_cat[LC_TIME].ptr; -} - -_ELIDABLE_INLINE const struct lc_time_T * -__get_current_time_locale (void) -{ - return (const struct lc_time_T *) - __get_current_locale ()->lc_cat[LC_TIME].ptr; -} - -_ELIDABLE_INLINE const struct lc_messages_T * -__get_messages_locale (struct __locale_t *locale) -{ - return (const struct lc_messages_T *) (locale)->lc_cat[LC_MESSAGES].ptr; -} - -_ELIDABLE_INLINE const struct lc_messages_T * -__get_current_messages_locale (void) -{ - return (const struct lc_messages_T *) - __get_current_locale ()->lc_cat[LC_MESSAGES].ptr; -} -#else /* ! __HAVE_LOCALE_INFO__ */ -_ELIDABLE_INLINE const struct lc_monetary_T * -__get_monetary_locale (struct __locale_t *locale) -{ - return &_C_monetary_locale; -} - -_ELIDABLE_INLINE const struct lc_monetary_T * -__get_current_monetary_locale (void) -{ - return &_C_monetary_locale; -} - -_ELIDABLE_INLINE const struct lc_numeric_T * -__get_numeric_locale (struct __locale_t *locale) -{ - return &_C_numeric_locale; -} - -_ELIDABLE_INLINE const struct lc_numeric_T * -__get_current_numeric_locale (void) -{ - return &_C_numeric_locale; -} - -_ELIDABLE_INLINE const struct lc_time_T * -__get_time_locale (struct __locale_t *locale) -{ - return &_C_time_locale; -} - -_ELIDABLE_INLINE const struct lc_time_T * -__get_current_time_locale (void) -{ - return &_C_time_locale; -} - -_ELIDABLE_INLINE const struct lc_messages_T * -__get_messages_locale (struct __locale_t *locale) -{ - return &_C_messages_locale; -} - -_ELIDABLE_INLINE const struct lc_messages_T * -__get_current_messages_locale (void) -{ - return &_C_messages_locale; -} -#endif /* !__HAVE_LOCALE_INFO__ */ - -_ELIDABLE_INLINE const char * -__locale_charset (struct __locale_t *locale) -{ -#ifdef __HAVE_LOCALE_INFO__ - return __get_ctype_locale (locale)->codeset; -#else - return locale->ctype_codeset; -#endif -} - -_ELIDABLE_INLINE const char * -__current_locale_charset (void) -{ -#ifdef __HAVE_LOCALE_INFO__ - return __get_current_ctype_locale ()->codeset; -#else - return __get_current_locale ()->ctype_codeset; -#endif -} - -_ELIDABLE_INLINE const char * -__locale_msgcharset (void) -{ -#ifdef __HAVE_LOCALE_INFO__ - return (char *) __get_current_messages_locale ()->codeset; -#else - return (char *) __get_current_locale ()->message_codeset; -#endif -} - -_ELIDABLE_INLINE int -__locale_cjk_lang (void) -{ - return __get_current_locale ()->cjk_lang; -} - -int __ctype_load_locale (struct __locale_t *, const char *, void *, - const char *, int); -int __monetary_load_locale (struct __locale_t *, const char *, void *, - const char *); -int __numeric_load_locale (struct __locale_t *, const char *, void *, - const char *); -int __time_load_locale (struct __locale_t *, const char *, void *, - const char *); -int __messages_load_locale (struct __locale_t *, const char *, void *, - const char *); -#ifdef __CYGWIN__ -int __collate_load_locale (struct __locale_t *, const char *, void *, - const char *); - -extern void __set_charset_from_locale (const char *locale, char *charset); -extern char *__set_locale_from_locale_alias (const char *, char *); -#endif - -__END_DECLS - -#endif /* !_SETLOCALE_H_ */ diff --git a/lib/locale/timelocal.c b/lib/locale/timelocal.c deleted file mode 100644 index e3a7fd0..0000000 --- a/lib/locale/timelocal.c +++ /dev/null @@ -1,192 +0,0 @@ -/*- - * Copyright (c) 2001 Alexey Zelkin - * Copyright (c) 1997 FreeBSD Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include -#include "setlocale.h" - -#define LCTIME_SIZE (sizeof(struct lc_time_T) / sizeof(char *)) - -const struct lc_time_T _C_time_locale = { - { - "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" - }, { - "January", "February", "March", "April", "May", "June", - "July", "August", "September", "October", "November", "December" - }, { - "Sun", "Mon", "Tue", "Wed", - "Thu", "Fri", "Sat" - }, { - "Sunday", "Monday", "Tuesday", "Wednesday", - "Thursday", "Friday", "Saturday" - }, - - /* X_fmt */ - "%H:%M:%S", - - /* - * x_fmt - * Since the C language standard calls for - * "date, using locale's date format," anything goes. - * Using just numbers (as here) makes Quakers happier; - * it's also compatible with SVR4. - */ - "%m/%d/%y", - - /* - * c_fmt - */ - "%a %b %e %H:%M:%S %Y", - - /* am pm */ - { "AM", "PM" }, - - /* date_fmt */ - "%a %b %e %H:%M:%S %Z %Y", - - /* alt_month - * Standalone months forms for %OB - */ - { - "January", "February", "March", "April", "May", "June", - "July", "August", "September", "October", "November", "December" - }, - - /* md_order - * Month / day order in dates - */ - "md", - - /* ampm_fmt - * To determine 12-hour clock format time (empty, if N/A) - */ - "%I:%M:%S %p", - - /* era - * Era. This and the following entries are used if the alternative - * date format is specified in strftime - */ - "", - - /* era_d_fmt - * Era date format used with the %Ex - */ - "", - - /* era_d_t_fmt - * Era date/time format (%Ec) - */ - "", - - /* era_t_fmt - * Era time format (%EX) - */ - "", - - /* alt_digits - * Alternate digits used if %O format prefix is specified - */ - "" -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - , "ASCII", /* codeset */ - { - L"Jan", L"Feb", L"Mar", L"Apr", L"May", L"Jun", - L"Jul", L"Aug", L"Sep", L"Oct", L"Nov", L"Dec" - }, { - L"January", L"February", L"March", L"April", L"May", L"June", - L"July", L"August", L"September", L"October", L"November", - L"December" - }, { - L"Sun", L"Mon", L"Tue", L"Wed", - L"Thu", L"Fri", L"Sat" - }, { - L"Sunday", L"Monday", L"Tuesday", L"Wednesday", - L"Thursday", L"Friday", L"Saturday" - }, - L"%H:%M:%S", - L"%m/%d/%y", - L"%a %b %e %H:%M:%S %Y", - { L"AM", L"PM" }, - L"%a %b %e %H:%M:%S %Z %Y", - L"%I:%M:%S %p", - L"", - L"", - L"", - L"", - L"" -#endif -}; - -int -__time_load_locale (struct __locale_t *locale, const char *name, - void *f_wctomb, const char *charset) -{ - int ret = 0; - struct lc_time_T ti; - char *bufp = NULL; - -#ifdef __HAVE_LOCALE_INFO__ -#ifdef __CYGWIN__ - extern int __set_lc_time_from_win (const char *, const struct lc_time_T *, - struct lc_time_T *, char **, void *, - const char *); - ret = __set_lc_time_from_win (name, &_C_time_locale, &ti, &bufp, - f_wctomb, charset); - /* ret == -1: error, ret == 0: C/POSIX, ret > 0: valid */ - if (ret >= 0) - { - struct lc_time_T *tip = NULL; - - if (ret > 0) - { - tip = (struct lc_time_T *) calloc (1, sizeof *tip); - if (!tip) - { - free (bufp); - return -1; - } - *tip = ti; - } - struct __lc_cats tmp = locale->lc_cat[LC_TIME]; - locale->lc_cat[LC_TIME].ptr = ret == 0 ? &_C_time_locale : tip; - locale->lc_cat[LC_TIME].buf = bufp; - /* If buf is not NULL, both pointers have been alloc'ed */ - if (tmp.buf) - { - free ((void *) tmp.ptr); - free (tmp.buf); - } - ret = 0; - } -#else - /* TODO */ -#endif -#endif /* __HAVE_LOCALE_INFO__ */ - return (ret); -} diff --git a/lib/locale/uselocale.c b/lib/locale/uselocale.c deleted file mode 100644 index 799fb72..0000000 --- a/lib/locale/uselocale.c +++ /dev/null @@ -1,79 +0,0 @@ -/* -FUNCTION - <>---free resources allocated for a locale object - -INDEX - uselocale - -INDEX - _uselocale_r - -SYNOPSIS - #include - locale_t uselocale(locale_t <[locobj]>); - - locale_t _uselocale_r(void *<[reent]>, locale_t <[locobj]>); - -DESCRIPTION -The <> function shall set the current locale for the current -thread to the locale represented by newloc. - -The value for the newloc argument shall be one of the following: - -1. A value returned by the <> or <> functions - -2. The special locale object descriptor LC_GLOBAL_LOCALE - -3. (locale_t) <<0>> - -Once the <> function has been called to install a thread-local -locale, the behavior of every interface using data from the current -locale shall be affected for the calling thread. The current locale for -other threads shall remain unchanged. - -If the newloc argument is (locale_t) <<0>>, the object returned is the -current locale or LC_GLOBAL_LOCALE if there has been no previous call to -<> for the current thread. - -If the newloc argument is LC_GLOBAL_LOCALE, the thread shall use the -global locale determined by the <> function. - -RETURNS -Upon successful completion, the <> function shall return the -locale handle from the previous call for the current thread, or -LC_GLOBAL_LOCALE if there was no such previous call. Otherwise, -<> shall return (locale_t) <<0>> and set errno to indicate -the error. - - -PORTABILITY -<> is POSIX-1.2008. -*/ - -#include -#include -#include -#include "setlocale.h" - -struct __locale_t * -_uselocale_r (struct _reent *p, struct __locale_t *newloc) -{ - struct __locale_t *current_locale; - - current_locale = __get_locale_r (p); - if (!current_locale) - current_locale = LC_GLOBAL_LOCALE; - if (newloc == LC_GLOBAL_LOCALE) - _REENT_LOCALE(p) = NULL; - else if (newloc) - _REENT_LOCALE(p) = newloc; - return current_locale; -} - -#ifndef _REENT_ONLY -struct __locale_t * -uselocale (struct __locale_t *newloc) -{ - return _uselocale_r (_REENT, newloc); -} -#endif diff --git a/lib/machine/Makefile.inc b/lib/machine/Makefile.inc deleted file mode 100644 index 8aae2c5..0000000 --- a/lib/machine/Makefile.inc +++ /dev/null @@ -1,174 +0,0 @@ -if HAVE_LIBC_MACHINE_AARCH64 -include %D%/aarch64/Makefile.inc -endif -if HAVE_LIBC_MACHINE_AMDGCN -include %D%/amdgcn/Makefile.inc -endif -if HAVE_LIBC_MACHINE_ARC -include %D%/arc/Makefile.inc -endif -if HAVE_LIBC_MACHINE_ARM -include %D%/arm/Makefile.inc -endif -if HAVE_LIBC_MACHINE_BFIN -include %D%/bfin/Makefile.inc -endif -if HAVE_LIBC_MACHINE_CR16 -include %D%/cr16/Makefile.inc -endif -if HAVE_LIBC_MACHINE_CRIS -include %D%/cris/Makefile.inc -endif -if HAVE_LIBC_MACHINE_CRX -include %D%/crx/Makefile.inc -endif -if HAVE_LIBC_MACHINE_CSKY -include %D%/csky/Makefile.inc -endif -if HAVE_LIBC_MACHINE_D10V -include %D%/d10v/Makefile.inc -endif -if HAVE_LIBC_MACHINE_D30V -include %D%/d30v/Makefile.inc -endif -if HAVE_LIBC_MACHINE_EPIPHANY -include %D%/epiphany/Makefile.inc -endif -if HAVE_LIBC_MACHINE_FR30 -include %D%/fr30/Makefile.inc -endif -if HAVE_LIBC_MACHINE_FRV -include %D%/frv/Makefile.inc -endif -if HAVE_LIBC_MACHINE_FT32 -include %D%/ft32/Makefile.inc -endif -if HAVE_LIBC_MACHINE_H8300 -include %D%/h8300/Makefile.inc -endif -if HAVE_LIBC_MACHINE_H8500 -include %D%/h8500/Makefile.inc -endif -if HAVE_LIBC_MACHINE_HPPA -include %D%/hppa/Makefile.inc -endif -if HAVE_LIBC_MACHINE_I386 -include %D%/i386/Makefile.inc -endif -if HAVE_LIBC_MACHINE_I960 -include %D%/i960/Makefile.inc -endif -if HAVE_LIBC_MACHINE_IQ2000 -include %D%/iq2000/Makefile.inc -endif -if HAVE_LIBC_MACHINE_LM32 -include %D%/lm32/Makefile.inc -endif -if HAVE_LIBC_MACHINE_M32C -include %D%/m32c/Makefile.inc -endif -if HAVE_LIBC_MACHINE_M32R -include %D%/m32r/Makefile.inc -endif -if HAVE_LIBC_MACHINE_M68HC11 -include %D%/m68hc11/Makefile.inc -endif -if HAVE_LIBC_MACHINE_M68K -include %D%/m68k/Makefile.inc -endif -if HAVE_LIBC_MACHINE_M88K -include %D%/m88k/Makefile.inc -endif -if HAVE_LIBC_MACHINE_MEP -include %D%/mep/Makefile.inc -endif -if HAVE_LIBC_MACHINE_MICROBLAZE -include %D%/microblaze/Makefile.inc -endif -if HAVE_LIBC_MACHINE_MIPS -include %D%/mips/Makefile.inc -endif -if HAVE_LIBC_MACHINE_MN10200 -include %D%/mn10200/Makefile.inc -endif -if HAVE_LIBC_MACHINE_MN10300 -include %D%/mn10300/Makefile.inc -endif -if HAVE_LIBC_MACHINE_MOXIE -include %D%/moxie/Makefile.inc -endif -if HAVE_LIBC_MACHINE_MSP430 -include %D%/msp430/Makefile.inc -endif -if HAVE_LIBC_MACHINE_MT -include %D%/mt/Makefile.inc -endif -if HAVE_LIBC_MACHINE_NDS32 -include %D%/nds32/Makefile.inc -endif -if HAVE_LIBC_MACHINE_NECV70 -include %D%/necv70/Makefile.inc -endif -if HAVE_LIBC_MACHINE_NIOS2 -include %D%/nios2/Makefile.inc -endif -if HAVE_LIBC_MACHINE_NVPTX -include %D%/nvptx/Makefile.inc -endif -if HAVE_LIBC_MACHINE_OR1K -include %D%/or1k/Makefile.inc -endif -if HAVE_LIBC_MACHINE_POWERPC -include %D%/powerpc/Makefile.inc -endif -if HAVE_LIBC_MACHINE_PRU -include %D%/pru/Makefile.inc -endif -if HAVE_LIBC_MACHINE_RISCV -include %D%/riscv/Makefile.inc -endif -if HAVE_LIBC_MACHINE_RL78 -include %D%/rl78/Makefile.inc -endif -if HAVE_LIBC_MACHINE_RX -include %D%/rx/Makefile.inc -endif -if HAVE_LIBC_MACHINE_SH -include %D%/sh/Makefile.inc -endif -if HAVE_LIBC_MACHINE_SPARC -include %D%/sparc/Makefile.inc -endif -if HAVE_LIBC_MACHINE_SPU -include %D%/spu/Makefile.inc -endif -if HAVE_LIBC_MACHINE_TIC4X -include %D%/tic4x/Makefile.inc -endif -if HAVE_LIBC_MACHINE_TIC6X -include %D%/tic6x/Makefile.inc -endif -if HAVE_LIBC_MACHINE_TIC80 -include %D%/tic80/Makefile.inc -endif -if HAVE_LIBC_MACHINE_V850 -include %D%/v850/Makefile.inc -endif -if HAVE_LIBC_MACHINE_VISIUM -include %D%/visium/Makefile.inc -endif -if HAVE_LIBC_MACHINE_W65 -include %D%/w65/Makefile.inc -endif -if HAVE_LIBC_MACHINE_X86_64 -include %D%/x86_64/Makefile.inc -endif -if HAVE_LIBC_MACHINE_XC16X -include %D%/xc16x/Makefile.inc -endif -if HAVE_LIBC_MACHINE_XSTORMY16 -include %D%/xstormy16/Makefile.inc -endif -if HAVE_LIBC_MACHINE_Z8K -include %D%/z8k/Makefile.inc -endif diff --git a/lib/machine/aarch64/Makefile.inc b/lib/machine/aarch64/Makefile.inc deleted file mode 100644 index 063a2a8..0000000 --- a/lib/machine/aarch64/Makefile.inc +++ /dev/null @@ -1,32 +0,0 @@ -libc_a_SOURCES += \ - %D%/memchr-stub.c \ - %D%/memchr.S \ - %D%/memcmp-stub.c \ - %D%/memcmp.S \ - %D%/memcpy-stub.c \ - %D%/memcpy.S \ - %D%/memmove-stub.c \ - %D%/memmove.S \ - %D%/memset-stub.c \ - %D%/memset.S \ - %D%/rawmemchr.S \ - %D%/rawmemchr-stub.c \ - %D%/setjmp.S \ - %D%/stpcpy-stub.c \ - %D%/stpcpy.S \ - %D%/strchr-stub.c \ - %D%/strchr.S \ - %D%/strchrnul-stub.c \ - %D%/strchrnul.S \ - %D%/strcmp-stub.c \ - %D%/strcmp.S \ - %D%/strcpy-stub.c \ - %D%/strcpy.S \ - %D%/strlen-stub.c \ - %D%/strlen.S \ - %D%/strncmp-stub.c \ - %D%/strncmp.S \ - %D%/strnlen-stub.c \ - %D%/strnlen.S \ - %D%/strrchr-stub.c \ - %D%/strrchr.S diff --git a/lib/machine/aarch64/machine/_fpmath.h b/lib/machine/aarch64/machine/_fpmath.h deleted file mode 100644 index fa62ae8..0000000 --- a/lib/machine/aarch64/machine/_fpmath.h +++ /dev/null @@ -1,64 +0,0 @@ -/*- - * Copyright (c) 2002, 2003 David Schultz - * Copyright (2) 2014 The FreeBSD Foundation - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -/* - * Change unsigned int/long used by FreeBSD to fixed width types because - * ilp32 has a different size for unsigned long. --joel (20 Aug 2022) - */ -#include - -union IEEEl2bits { - long double e; - struct { - uint64_t manl :64; - uint64_t manh :48; - uint32_t exp :15; - uint32_t sign :1; - } bits; - /* TODO andrew: Check the packing here */ - struct { - uint64_t manl :64; - uint64_t manh :48; - uint32_t expsign :16; - } xbits; -}; - -#define LDBL_NBIT 0 -#define LDBL_IMPLICIT_NBIT -#define mask_nbit_l(u) ((void)0) - -#define LDBL_MANH_SIZE 48 -#define LDBL_MANL_SIZE 64 - -#define LDBL_TO_ARRAY32(u, a) do { \ - (a)[0] = (uint32_t)(u).bits.manl; \ - (a)[1] = (uint32_t)((u).bits.manl >> 32); \ - (a)[2] = (uint32_t)(u).bits.manh; \ - (a)[3] = (uint32_t)((u).bits.manh >> 32); \ -} while(0) diff --git a/lib/machine/aarch64/machine/_types.h b/lib/machine/aarch64/machine/_types.h deleted file mode 100644 index c846741..0000000 --- a/lib/machine/aarch64/machine/_types.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright (c) 2012 ARM Ltd - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. The name of the company may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _MACHINE__TYPES_H -#define _MACHINE__TYPES_H - -#include - -#define __machine_ssize_t_defined -typedef long signed int _ssize_t; - -#endif /* _MACHINE__TYPES_H */ diff --git a/lib/machine/aarch64/machine/fenv-fp.h b/lib/machine/aarch64/machine/fenv-fp.h deleted file mode 100644 index d8ec3fc..0000000 --- a/lib/machine/aarch64/machine/fenv-fp.h +++ /dev/null @@ -1,156 +0,0 @@ -/*- - * Copyright (c) 2004-2005 David Schultz - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - - -__fenv_static __inline int -feclearexcept(int __excepts) -{ - fexcept_t __r; - - __mrs_fpsr(__r); - __r &= ~__excepts; - __msr_fpsr(__r); - return (0); -} - -__fenv_static inline int -fegetexceptflag(fexcept_t *__flagp, int __excepts) -{ - fexcept_t __r; - - __mrs_fpsr(__r); - *__flagp = __r & __excepts; - return (0); -} - -__fenv_static inline int -fesetexceptflag(const fexcept_t *__flagp, int __excepts) -{ - fexcept_t __r; - - __mrs_fpsr(__r); - __r &= ~__excepts; - __r |= *__flagp & __excepts; - __msr_fpsr(__r); - return (0); -} - -__fenv_static inline int -feraiseexcept(int __excepts) -{ - fexcept_t __r; - - __mrs_fpsr(__r); - __r |= __excepts; - __msr_fpsr(__r); - return (0); -} - -__fenv_static inline int -fetestexcept(int __excepts) -{ - fexcept_t __r; - - __mrs_fpsr(__r); - return (__r & __excepts); -} - -__fenv_static inline int -fegetround(void) -{ - fenv_t __r; - - __mrs_fpcr(__r); - return ((__r >> _ROUND_SHIFT) & _ROUND_MASK); -} - -__fenv_static inline int -fesetround(int __round) -{ - fenv_t __r; - - if (__round & ~_ROUND_MASK) - return (-1); - __mrs_fpcr(__r); - __r &= ~(_ROUND_MASK << _ROUND_SHIFT); - __r |= __round << _ROUND_SHIFT; - __msr_fpcr(__r); - return (0); -} - -__fenv_static inline int -fegetenv(fenv_t *__envp) -{ - fenv_t __r; - - __mrs_fpcr(__r); - *__envp = __r & _ENABLE_MASK; - - __mrs_fpsr(__r); - *__envp |= __r & (FE_ALL_EXCEPT | (_ROUND_MASK << _ROUND_SHIFT)); - - return (0); -} - -__fenv_static inline int -feholdexcept(fenv_t *__envp) -{ - fenv_t __r; - - __mrs_fpcr(__r); - *__envp = __r & _ENABLE_MASK; - __r &= ~(_ENABLE_MASK); - __msr_fpcr(__r); - - __mrs_fpsr(__r); - *__envp |= __r & (FE_ALL_EXCEPT | (_ROUND_MASK << _ROUND_SHIFT)); - __r &= ~(_ENABLE_MASK); - __msr_fpsr(__r); - return (0); -} - -__fenv_static inline int -fesetenv(const fenv_t *__envp) -{ - - __msr_fpcr((*__envp) & _ENABLE_MASK); - __msr_fpsr((*__envp) & (FE_ALL_EXCEPT | (_ROUND_MASK << _ROUND_SHIFT))); - return (0); -} - -__fenv_static inline int -feupdateenv(const fenv_t *__envp) -{ - fexcept_t __r; - - __mrs_fpsr(__r); - fesetenv(__envp); - feraiseexcept(__r & FE_ALL_EXCEPT); - return (0); -} - diff --git a/lib/machine/aarch64/memchr-stub.c b/lib/machine/aarch64/memchr-stub.c deleted file mode 100644 index dc550aa..0000000 --- a/lib/machine/aarch64/memchr-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/memchr.c" -#else -/* See memchr.S */ -#endif diff --git a/lib/machine/aarch64/memchr.S b/lib/machine/aarch64/memchr.S deleted file mode 100644 index 53f5d6b..0000000 --- a/lib/machine/aarch64/memchr.S +++ /dev/null @@ -1,176 +0,0 @@ -/* - * memchr - find a character in a memory zone - * - * Copyright (c) 2014, ARM Limited - * All rights Reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the company nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See memchr-stub.c */ -#else -/* Assumptions: - * - * ARMv8-a, AArch64 - * Neon Available. - */ - -/* Arguments and results. */ -#define srcin x0 -#define chrin w1 -#define cntin x2 - -#define result x0 - -#define src x3 -#define tmp x4 -#define wtmp2 w5 -#define synd x6 -#define soff x9 -#define cntrem x10 - -#define vrepchr v0 -#define vdata1 v1 -#define vdata2 v2 -#define vhas_chr1 v3 -#define vhas_chr2 v4 -#define vrepmask v5 -#define vend v6 - -/* - * Core algorithm: - * - * For each 32-byte chunk we calculate a 64-bit syndrome value, with two bits - * per byte. For each tuple, bit 0 is set if the relevant byte matched the - * requested character and bit 1 is not used (faster than using a 32bit - * syndrome). Since the bits in the syndrome reflect exactly the order in which - * things occur in the original string, counting trailing zeros allows to - * identify exactly which byte has matched. - */ - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -def_fn memchr - /* Do not dereference srcin if no bytes to compare. */ - cbz cntin, .Lzero_length - /* - * Magic constant 0x40100401 allows us to identify which lane matches - * the requested byte. - */ - mov wtmp2, #0x0401 - movk wtmp2, #0x4010, lsl #16 - dup vrepchr.16b, chrin - /* Work with aligned 32-byte chunks */ - bic src, srcin, #31 - dup vrepmask.4s, wtmp2 - ands soff, srcin, #31 - and cntrem, cntin, #31 - b.eq .Lloop - - /* - * Input string is not 32-byte aligned. We calculate the syndrome - * value for the aligned 32 bytes block containing the first bytes - * and mask the irrelevant part. - */ - - ld1 {vdata1.16b, vdata2.16b}, [src], #32 - sub tmp, soff, #32 - adds cntin, cntin, tmp - cmeq vhas_chr1.16b, vdata1.16b, vrepchr.16b - cmeq vhas_chr2.16b, vdata2.16b, vrepchr.16b - and vhas_chr1.16b, vhas_chr1.16b, vrepmask.16b - and vhas_chr2.16b, vhas_chr2.16b, vrepmask.16b - addp vend.16b, vhas_chr1.16b, vhas_chr2.16b /* 256->128 */ - addp vend.16b, vend.16b, vend.16b /* 128->64 */ - mov synd, vend.2d[0] - /* Clear the soff*2 lower bits */ - lsl tmp, soff, #1 - lsr synd, synd, tmp - lsl synd, synd, tmp - /* The first block can also be the last */ - b.ls .Lmasklast - /* Have we found something already? */ - cbnz synd, .Ltail - -.Lloop: - ld1 {vdata1.16b, vdata2.16b}, [src], #32 - subs cntin, cntin, #32 - cmeq vhas_chr1.16b, vdata1.16b, vrepchr.16b - cmeq vhas_chr2.16b, vdata2.16b, vrepchr.16b - /* If we're out of data we finish regardless of the result */ - b.ls .Lend - /* Use a fast check for the termination condition */ - orr vend.16b, vhas_chr1.16b, vhas_chr2.16b - addp vend.2d, vend.2d, vend.2d - mov synd, vend.2d[0] - /* We're not out of data, loop if we haven't found the character */ - cbz synd, .Lloop - -.Lend: - /* Termination condition found, let's calculate the syndrome value */ - and vhas_chr1.16b, vhas_chr1.16b, vrepmask.16b - and vhas_chr2.16b, vhas_chr2.16b, vrepmask.16b - addp vend.16b, vhas_chr1.16b, vhas_chr2.16b /* 256->128 */ - addp vend.16b, vend.16b, vend.16b /* 128->64 */ - mov synd, vend.2d[0] - /* Only do the clear for the last possible block */ - b.hi .Ltail - -.Lmasklast: - /* Clear the (32 - ((cntrem + soff) % 32)) * 2 upper bits */ - add tmp, cntrem, soff - and tmp, tmp, #31 - sub tmp, tmp, #32 - neg tmp, tmp, lsl #1 - lsl synd, synd, tmp - lsr synd, synd, tmp - -.Ltail: - /* Count the trailing zeros using bit reversing */ - rbit synd, synd - /* Compensate the last post-increment */ - sub src, src, #32 - /* Check that we have found a character */ - cmp synd, #0 - /* And count the leading zeros */ - clz synd, synd - /* Compute the potential result */ - add result, src, synd, lsr #1 - /* Select result or NULL */ - csel result, xzr, result, eq - ret - -.Lzero_length: - mov result, #0 - ret - - .size memchr, . - memchr -#endif diff --git a/lib/machine/aarch64/memcmp-stub.c b/lib/machine/aarch64/memcmp-stub.c deleted file mode 100644 index a4e4876..0000000 --- a/lib/machine/aarch64/memcmp-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/memcmp.c" -#else -/* See memcmp.S */ -#endif diff --git a/lib/machine/aarch64/memcmp.S b/lib/machine/aarch64/memcmp.S deleted file mode 100644 index 605d993..0000000 --- a/lib/machine/aarch64/memcmp.S +++ /dev/null @@ -1,196 +0,0 @@ -/* memcmp - compare memory - - Copyright (c) 2018 Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/* - * Copyright (c) 2017 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See memcmp-stub.c */ -#else - -/* Assumptions: - * - * ARMv8-a, AArch64, unaligned accesses. - */ - -#define L(l) .L ## l - -/* Parameters and result. */ -#define src1 x0 -#define src2 x1 -#define limit x2 -#define result w0 - -/* Internal variables. */ -#define data1 x3 -#define data1w w3 -#define data1h x4 -#define data2 x5 -#define data2w w5 -#define data2h x6 -#define tmp1 x7 -#define tmp2 x8 - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -def_fn memcmp p2align=6 - subs limit, limit, 8 - b.lo L(less8) - - ldr data1, [src1], 8 - ldr data2, [src2], 8 - cmp data1, data2 - b.ne L(return) - - subs limit, limit, 8 - b.gt L(more16) - - ldr data1, [src1, limit] - ldr data2, [src2, limit] - b L(return) - -L(more16): - ldr data1, [src1], 8 - ldr data2, [src2], 8 - cmp data1, data2 - bne L(return) - - /* Jump directly to comparing the last 16 bytes for 32 byte (or less) - strings. */ - subs limit, limit, 16 - b.ls L(last_bytes) - - /* We overlap loads between 0-32 bytes at either side of SRC1 when we - try to align, so limit it only to strings larger than 128 bytes. */ - cmp limit, 96 - b.ls L(loop16) - - /* Align src1 and adjust src2 with bytes not yet done. */ - and tmp1, src1, 15 - add limit, limit, tmp1 - sub src1, src1, tmp1 - sub src2, src2, tmp1 - - /* Loop performing 16 bytes per iteration using aligned src1. - Limit is pre-decremented by 16 and must be larger than zero. - Exit if <= 16 bytes left to do or if the data is not equal. */ - .p2align 4 -L(loop16): - ldp data1, data1h, [src1], 16 - ldp data2, data2h, [src2], 16 - subs limit, limit, 16 - ccmp data1, data2, 0, hi - ccmp data1h, data2h, 0, eq - b.eq L(loop16) - - cmp data1, data2 - bne L(return) - mov data1, data1h - mov data2, data2h - cmp data1, data2 - bne L(return) - - /* Compare last 1-16 bytes using unaligned access. */ -L(last_bytes): - add src1, src1, limit - add src2, src2, limit - ldp data1, data1h, [src1] - ldp data2, data2h, [src2] - cmp data1, data2 - bne L(return) - mov data1, data1h - mov data2, data2h - cmp data1, data2 - - /* Compare data bytes and set return value to 0, -1 or 1. */ -L(return): -#ifndef __AARCH64EB__ - rev data1, data1 - rev data2, data2 -#endif - cmp data1, data2 -L(ret_eq): - cset result, ne - cneg result, result, lo - ret - - .p2align 4 - /* Compare up to 8 bytes. Limit is [-8..-1]. */ -L(less8): - adds limit, limit, 4 - b.lo L(less4) - ldr data1w, [src1], 4 - ldr data2w, [src2], 4 - cmp data1w, data2w - b.ne L(return) - sub limit, limit, 4 -L(less4): - adds limit, limit, 4 - beq L(ret_eq) -L(byte_loop): - ldrb data1w, [src1], 1 - ldrb data2w, [src2], 1 - subs limit, limit, 1 - ccmp data1w, data2w, 0, ne /* NZCV = 0b0000. */ - b.eq L(byte_loop) - sub result, data1w, data2w - ret - - .size memcmp, . - memcmp -#endif diff --git a/lib/machine/aarch64/memcpy-stub.c b/lib/machine/aarch64/memcpy-stub.c deleted file mode 100644 index cd6d72a..0000000 --- a/lib/machine/aarch64/memcpy-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2012-2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/memcpy.c" -#else -/* See memcpy.S */ -#endif diff --git a/lib/machine/aarch64/memcpy.S b/lib/machine/aarch64/memcpy.S deleted file mode 100644 index 463bad0..0000000 --- a/lib/machine/aarch64/memcpy.S +++ /dev/null @@ -1,230 +0,0 @@ -/* Copyright (c) 2012-2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* Assumptions: - * - * ARMv8-a, AArch64, unaligned accesses. - * - */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See memcpy-stub.c */ -#else - -#define dstin x0 -#define src x1 -#define count x2 -#define dst x3 -#define srcend x4 -#define dstend x5 -#define A_l x6 -#define A_lw w6 -#define A_h x7 -#define A_hw w7 -#define B_l x8 -#define B_lw w8 -#define B_h x9 -#define C_l x10 -#define C_h x11 -#define D_l x12 -#define D_h x13 -#define E_l src -#define E_h count -#define F_l srcend -#define F_h dst -#define tmp1 x9 - -#define L(l) .L ## l - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -/* Copies are split into 3 main cases: small copies of up to 16 bytes, - medium copies of 17..96 bytes which are fully unrolled. Large copies - of more than 96 bytes align the destination and use an unrolled loop - processing 64 bytes per iteration. - Small and medium copies read all data before writing, allowing any - kind of overlap, and memmove tailcalls memcpy for these cases as - well as non-overlapping copies. -*/ - -def_fn memcpy p2align=6 - prfm PLDL1KEEP, [src] - add srcend, src, count - add dstend, dstin, count - cmp count, 16 - b.ls L(copy16) - cmp count, 96 - b.hi L(copy_long) - - /* Medium copies: 17..96 bytes. */ - sub tmp1, count, 1 - ldp A_l, A_h, [src] - tbnz tmp1, 6, L(copy96) - ldp D_l, D_h, [srcend, -16] - tbz tmp1, 5, 1f - ldp B_l, B_h, [src, 16] - ldp C_l, C_h, [srcend, -32] - stp B_l, B_h, [dstin, 16] - stp C_l, C_h, [dstend, -32] -1: - stp A_l, A_h, [dstin] - stp D_l, D_h, [dstend, -16] - ret - - .p2align 4 - /* Small copies: 0..16 bytes. */ -L(copy16): - cmp count, 8 - b.lo 1f - ldr A_l, [src] - ldr A_h, [srcend, -8] - str A_l, [dstin] - str A_h, [dstend, -8] - ret - .p2align 4 -1: - tbz count, 2, 1f - ldr A_lw, [src] - ldr A_hw, [srcend, -4] - str A_lw, [dstin] - str A_hw, [dstend, -4] - ret - - /* Copy 0..3 bytes. Use a branchless sequence that copies the same - byte 3 times if count==1, or the 2nd byte twice if count==2. */ -1: - cbz count, 2f - lsr tmp1, count, 1 - ldrb A_lw, [src] - ldrb A_hw, [srcend, -1] - ldrb B_lw, [src, tmp1] - strb A_lw, [dstin] - strb B_lw, [dstin, tmp1] - strb A_hw, [dstend, -1] -2: ret - - .p2align 4 - /* Copy 64..96 bytes. Copy 64 bytes from the start and - 32 bytes from the end. */ -L(copy96): - ldp B_l, B_h, [src, 16] - ldp C_l, C_h, [src, 32] - ldp D_l, D_h, [src, 48] - ldp E_l, E_h, [srcend, -32] - ldp F_l, F_h, [srcend, -16] - stp A_l, A_h, [dstin] - stp B_l, B_h, [dstin, 16] - stp C_l, C_h, [dstin, 32] - stp D_l, D_h, [dstin, 48] - stp E_l, E_h, [dstend, -32] - stp F_l, F_h, [dstend, -16] - ret - - /* Align DST to 16 byte alignment so that we don't cross cache line - boundaries on both loads and stores. There are at least 96 bytes - to copy, so copy 16 bytes unaligned and then align. The loop - copies 64 bytes per iteration and prefetches one iteration ahead. */ - - .p2align 4 -L(copy_long): - and tmp1, dstin, 15 - bic dst, dstin, 15 - ldp D_l, D_h, [src] - sub src, src, tmp1 - add count, count, tmp1 /* Count is now 16 too large. */ - ldp A_l, A_h, [src, 16] - stp D_l, D_h, [dstin] - ldp B_l, B_h, [src, 32] - ldp C_l, C_h, [src, 48] - ldp D_l, D_h, [src, 64]! - subs count, count, 128 + 16 /* Test and readjust count. */ - b.ls 2f -1: - stp A_l, A_h, [dst, 16] - ldp A_l, A_h, [src, 16] - stp B_l, B_h, [dst, 32] - ldp B_l, B_h, [src, 32] - stp C_l, C_h, [dst, 48] - ldp C_l, C_h, [src, 48] - stp D_l, D_h, [dst, 64]! - ldp D_l, D_h, [src, 64]! - subs count, count, 64 - b.hi 1b - - /* Write the last full set of 64 bytes. The remainder is at most 64 - bytes, so it is safe to always copy 64 bytes from the end even if - there is just 1 byte left. */ -2: - ldp E_l, E_h, [srcend, -64] - stp A_l, A_h, [dst, 16] - ldp A_l, A_h, [srcend, -48] - stp B_l, B_h, [dst, 32] - ldp B_l, B_h, [srcend, -32] - stp C_l, C_h, [dst, 48] - ldp C_l, C_h, [srcend, -16] - stp D_l, D_h, [dst, 64] - stp E_l, E_h, [dstend, -64] - stp A_l, A_h, [dstend, -48] - stp B_l, B_h, [dstend, -32] - stp C_l, C_h, [dstend, -16] - ret - - .size memcpy, . - memcpy -#endif diff --git a/lib/machine/aarch64/memmove-stub.c b/lib/machine/aarch64/memmove-stub.c deleted file mode 100644 index 8fa4ab9..0000000 --- a/lib/machine/aarch64/memmove-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/memmove.c" -#else -/* See memmove.S */ -#endif diff --git a/lib/machine/aarch64/memmove.S b/lib/machine/aarch64/memmove.S deleted file mode 100644 index 597a8c8..0000000 --- a/lib/machine/aarch64/memmove.S +++ /dev/null @@ -1,155 +0,0 @@ -/* Copyright (c) 2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* Assumptions: - * - * ARMv8-a, AArch64, unaligned accesses - */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See memmove-stub.c */ -#else - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -/* Parameters and result. */ -#define dstin x0 -#define src x1 -#define count x2 -#define srcend x3 -#define dstend x4 -#define tmp1 x5 -#define A_l x6 -#define A_h x7 -#define B_l x8 -#define B_h x9 -#define C_l x10 -#define C_h x11 -#define D_l x12 -#define D_h x13 -#define E_l count -#define E_h tmp1 - -/* All memmoves up to 96 bytes are done by memcpy as it supports overlaps. - Larger backwards copies are also handled by memcpy. The only remaining - case is forward large copies. The destination is aligned, and an - unrolled loop processes 64 bytes per iteration. -*/ - -def_fn memmove, 6 - sub tmp1, dstin, src - cmp count, 96 - ccmp tmp1, count, 2, hi - b.hs memcpy - - cbz tmp1, 3f - add dstend, dstin, count - add srcend, src, count - - /* Align dstend to 16 byte alignment so that we don't cross cache line - boundaries on both loads and stores. There are at least 96 bytes - to copy, so copy 16 bytes unaligned and then align. The loop - copies 64 bytes per iteration and prefetches one iteration ahead. */ - - and tmp1, dstend, 15 - ldp D_l, D_h, [srcend, -16] - sub srcend, srcend, tmp1 - sub count, count, tmp1 - ldp A_l, A_h, [srcend, -16] - stp D_l, D_h, [dstend, -16] - ldp B_l, B_h, [srcend, -32] - ldp C_l, C_h, [srcend, -48] - ldp D_l, D_h, [srcend, -64]! - sub dstend, dstend, tmp1 - subs count, count, 128 - b.ls 2f - nop -1: - stp A_l, A_h, [dstend, -16] - ldp A_l, A_h, [srcend, -16] - stp B_l, B_h, [dstend, -32] - ldp B_l, B_h, [srcend, -32] - stp C_l, C_h, [dstend, -48] - ldp C_l, C_h, [srcend, -48] - stp D_l, D_h, [dstend, -64]! - ldp D_l, D_h, [srcend, -64]! - subs count, count, 64 - b.hi 1b - - /* Write the last full set of 64 bytes. The remainder is at most 64 - bytes, so it is safe to always copy 64 bytes from the start even if - there is just 1 byte left. */ -2: - ldp E_l, E_h, [src, 48] - stp A_l, A_h, [dstend, -16] - ldp A_l, A_h, [src, 32] - stp B_l, B_h, [dstend, -32] - ldp B_l, B_h, [src, 16] - stp C_l, C_h, [dstend, -48] - ldp C_l, C_h, [src] - stp D_l, D_h, [dstend, -64] - stp E_l, E_h, [dstin, 48] - stp A_l, A_h, [dstin, 32] - stp B_l, B_h, [dstin, 16] - stp C_l, C_h, [dstin] -3: ret - - .size memmove, . - memmove -#endif diff --git a/lib/machine/aarch64/memset-stub.c b/lib/machine/aarch64/memset-stub.c deleted file mode 100644 index 7defee8..0000000 --- a/lib/machine/aarch64/memset-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2012-2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/memset.c" -#else -/* See memset.S */ -#endif diff --git a/lib/machine/aarch64/memset.S b/lib/machine/aarch64/memset.S deleted file mode 100644 index 103e3f8..0000000 --- a/lib/machine/aarch64/memset.S +++ /dev/null @@ -1,240 +0,0 @@ -/* Copyright (c) 2012-2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* Assumptions: - * - * ARMv8-a, AArch64, unaligned accesses - * - */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See memset-stub.c */ -#else - -#define dstin x0 -#define val x1 -#define valw w1 -#define count x2 -#define dst x3 -#define dstend x4 -#define tmp1 x5 -#define tmp1w w5 -#define tmp2 x6 -#define tmp2w w6 -#define zva_len x7 -#define zva_lenw w7 - -#define L(l) .L ## l - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -def_fn memset p2align=6 - - dup v0.16B, valw - add dstend, dstin, count - - cmp count, 96 - b.hi L(set_long) - cmp count, 16 - b.hs L(set_medium) - mov val, v0.D[0] - - /* Set 0..15 bytes. */ - tbz count, 3, 1f - str val, [dstin] - str val, [dstend, -8] - ret - nop -1: tbz count, 2, 2f - str valw, [dstin] - str valw, [dstend, -4] - ret -2: cbz count, 3f - strb valw, [dstin] - tbz count, 1, 3f - strh valw, [dstend, -2] -3: ret - - /* Set 17..96 bytes. */ -L(set_medium): - str q0, [dstin] - tbnz count, 6, L(set96) - str q0, [dstend, -16] - tbz count, 5, 1f - str q0, [dstin, 16] - str q0, [dstend, -32] -1: ret - - .p2align 4 - /* Set 64..96 bytes. Write 64 bytes from the start and - 32 bytes from the end. */ -L(set96): - str q0, [dstin, 16] - stp q0, q0, [dstin, 32] - stp q0, q0, [dstend, -32] - ret - - .p2align 3 - nop -L(set_long): - and valw, valw, 255 - bic dst, dstin, 15 - str q0, [dstin] - cmp count, 256 - ccmp valw, 0, 0, cs - b.eq L(try_zva) -L(no_zva): - sub count, dstend, dst /* Count is 16 too large. */ - sub dst, dst, 16 /* Dst is biased by -32. */ - sub count, count, 64 + 16 /* Adjust count and bias for loop. */ -1: stp q0, q0, [dst, 32] - stp q0, q0, [dst, 64]! -L(tail64): - subs count, count, 64 - b.hi 1b -2: stp q0, q0, [dstend, -64] - stp q0, q0, [dstend, -32] - ret - - .p2align 3 -L(try_zva): - mrs tmp1, dczid_el0 - tbnz tmp1w, 4, L(no_zva) - and tmp1w, tmp1w, 15 - cmp tmp1w, 4 /* ZVA size is 64 bytes. */ - b.ne L(zva_128) - - /* Write the first and last 64 byte aligned block using stp rather - than using DC ZVA. This is faster on some cores. - */ -L(zva_64): - str q0, [dst, 16] - stp q0, q0, [dst, 32] - bic dst, dst, 63 - stp q0, q0, [dst, 64] - stp q0, q0, [dst, 96] - sub count, dstend, dst /* Count is now 128 too large. */ - sub count, count, 128+64+64 /* Adjust count and bias for loop. */ - add dst, dst, 128 - nop -1: dc zva, dst - add dst, dst, 64 - subs count, count, 64 - b.hi 1b - stp q0, q0, [dst, 0] - stp q0, q0, [dst, 32] - stp q0, q0, [dstend, -64] - stp q0, q0, [dstend, -32] - ret - - .p2align 3 -L(zva_128): - cmp tmp1w, 5 /* ZVA size is 128 bytes. */ - b.ne L(zva_other) - - str q0, [dst, 16] - stp q0, q0, [dst, 32] - stp q0, q0, [dst, 64] - stp q0, q0, [dst, 96] - bic dst, dst, 127 - sub count, dstend, dst /* Count is now 128 too large. */ - sub count, count, 128+128 /* Adjust count and bias for loop. */ - add dst, dst, 128 -1: dc zva, dst - add dst, dst, 128 - subs count, count, 128 - b.hi 1b - stp q0, q0, [dstend, -128] - stp q0, q0, [dstend, -96] - stp q0, q0, [dstend, -64] - stp q0, q0, [dstend, -32] - ret - -L(zva_other): - mov tmp2w, 4 - lsl zva_lenw, tmp2w, tmp1w - add tmp1, zva_len, 64 /* Max alignment bytes written. */ - cmp count, tmp1 - blo L(no_zva) - - sub tmp2, zva_len, 1 - add tmp1, dst, zva_len - add dst, dst, 16 - subs count, tmp1, dst /* Actual alignment bytes to write. */ - bic tmp1, tmp1, tmp2 /* Aligned dc zva start address. */ - beq 2f -1: stp q0, q0, [dst], 64 - stp q0, q0, [dst, -32] - subs count, count, 64 - b.hi 1b -2: mov dst, tmp1 - sub count, dstend, tmp1 /* Remaining bytes to write. */ - subs count, count, zva_len - b.lo 4f -3: dc zva, dst - add dst, dst, zva_len - subs count, count, zva_len - b.hs 3b -4: add count, count, zva_len - sub dst, dst, 32 /* Bias dst for tail loop. */ - b L(tail64) - - .size memset, . - memset -#endif diff --git a/lib/machine/aarch64/rawmemchr-stub.c b/lib/machine/aarch64/rawmemchr-stub.c deleted file mode 100644 index 4449412..0000000 --- a/lib/machine/aarch64/rawmemchr-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2015-2016, ARM Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the company nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/rawmemchr.c" -#else -/* See rawmemchr.S. */ -#endif diff --git a/lib/machine/aarch64/rawmemchr.S b/lib/machine/aarch64/rawmemchr.S deleted file mode 100644 index 26da810..0000000 --- a/lib/machine/aarch64/rawmemchr.S +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright (c) 2015-2016, ARM Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the company nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/* Assumptions: - * - * ARMv8-a, AArch64, unaligned accesses - * - */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See rawmemchr-stub.c. */ -#else - -#define L(l) .L ## l - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -/* Special case rawmemchr (s, 0) as strlen, otherwise tailcall memchr. - Call strlen without setting up a full frame - it preserves x14/x15. -*/ - -def_fn rawmemchr p2align=5 - .cfi_startproc - cbz w1, L(do_strlen) - mov x2, -1 - b memchr - -L(do_strlen): - mov x15, x30 - .cfi_return_column x15 - mov x14, x0 - bl strlen - add x0, x14, x0 - ret x15 - .cfi_endproc - - .size rawmemchr, . - rawmemchr -#endif - diff --git a/lib/machine/aarch64/setjmp.S b/lib/machine/aarch64/setjmp.S deleted file mode 100644 index 0856145..0000000 --- a/lib/machine/aarch64/setjmp.S +++ /dev/null @@ -1,74 +0,0 @@ -/* - Copyright (c) 2011, 2012 ARM Ltd - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. The name of the company may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#define GPR_LAYOUT \ - REG_PAIR (x19, x20, 0); \ - REG_PAIR (x21, x22, 16); \ - REG_PAIR (x23, x24, 32); \ - REG_PAIR (x25, x26, 48); \ - REG_PAIR (x27, x28, 64); \ - REG_PAIR (x29, x30, 80); \ - REG_ONE (x16, 96) - -#define FPR_LAYOUT \ - REG_PAIR ( d8, d9, 112); \ - REG_PAIR (d10, d11, 128); \ - REG_PAIR (d12, d13, 144); \ - REG_PAIR (d14, d15, 160); - -// int setjmp (jmp_buf) - .global setjmp - .type setjmp, %function -setjmp: - mov x16, sp -#define REG_PAIR(REG1, REG2, OFFS) stp REG1, REG2, [x0, OFFS] -#define REG_ONE(REG1, OFFS) str REG1, [x0, OFFS] - GPR_LAYOUT - FPR_LAYOUT -#undef REG_PAIR -#undef REG_ONE - mov w0, #0 - ret - .size setjmp, .-setjmp - -// void longjmp (jmp_buf, int) __attribute__ ((noreturn)) - .global longjmp - .type longjmp, %function -longjmp: -#define REG_PAIR(REG1, REG2, OFFS) ldp REG1, REG2, [x0, OFFS] -#define REG_ONE(REG1, OFFS) ldr REG1, [x0, OFFS] - GPR_LAYOUT - FPR_LAYOUT -#undef REG_PAIR -#undef REG_ONE - mov sp, x16 - cmp w1, #0 - cinc w0, w1, eq - // use br not ret, as ret is guaranteed to mispredict - br x30 - .size longjmp, .-longjmp diff --git a/lib/machine/aarch64/stpcpy-stub.c b/lib/machine/aarch64/stpcpy-stub.c deleted file mode 100644 index bfaba5c..0000000 --- a/lib/machine/aarch64/stpcpy-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2015, ARM Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the company nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/stpcpy.c" -#else -/* See stpcpy.S */ -#endif diff --git a/lib/machine/aarch64/stpcpy.S b/lib/machine/aarch64/stpcpy.S deleted file mode 100644 index 696b458..0000000 --- a/lib/machine/aarch64/stpcpy.S +++ /dev/null @@ -1,34 +0,0 @@ -/* - stpcpy - copy a string returning pointer to end. - - Copyright (c) 2015 ARM Ltd. - All Rights Reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the company nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/* This is just a wrapper that uses strcpy code with appropriate - pre-defines. */ - -#define BUILD_STPCPY -#include "strcpy.S" diff --git a/lib/machine/aarch64/strchr-stub.c b/lib/machine/aarch64/strchr-stub.c deleted file mode 100644 index 3f9ec2d..0000000 --- a/lib/machine/aarch64/strchr-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2014, ARM Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the company nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/strchr.c" -#else -/* See strchr.S */ -#endif diff --git a/lib/machine/aarch64/strchr.S b/lib/machine/aarch64/strchr.S deleted file mode 100644 index 2448dbc..0000000 --- a/lib/machine/aarch64/strchr.S +++ /dev/null @@ -1,164 +0,0 @@ -/* - strchr - find a character in a string - - Copyright (c) 2014, ARM Limited - All rights Reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the company nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See strchr-stub.c */ -#else - -/* Assumptions: - * - * ARMv8-a, AArch64 - * Neon Available. - */ - -/* Arguments and results. */ -#define srcin x0 -#define chrin w1 - -#define result x0 - -#define src x2 -#define tmp1 x3 -#define wtmp2 w4 -#define tmp3 x5 - -#define vrepchr v0 -#define vdata1 v1 -#define vdata2 v2 -#define vhas_nul1 v3 -#define vhas_nul2 v4 -#define vhas_chr1 v5 -#define vhas_chr2 v6 -#define vrepmask_0 v7 -#define vrepmask_c v16 -#define vend1 v17 -#define vend2 v18 - -/* Core algorithm. - - For each 32-byte hunk we calculate a 64-bit syndrome value, with - two bits per byte (LSB is always in bits 0 and 1, for both big - and little-endian systems). For each tuple, bit 0 is set iff - the relevant byte matched the requested character; bit 1 is set - iff the relevant byte matched the NUL end of string (we trigger - off bit0 for the special case of looking for NUL). Since the bits - in the syndrome reflect exactly the order in which things occur - in the original string a count_trailing_zeros() operation will - identify exactly which byte is causing the termination, and why. */ - -/* Locals and temporaries. */ - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -def_fn strchr - /* Magic constant 0x40100401 to allow us to identify which lane - matches the requested byte. Magic constant 0x80200802 used - similarly for NUL termination. */ - mov wtmp2, #0x0401 - movk wtmp2, #0x4010, lsl #16 - dup vrepchr.16b, chrin - bic src, srcin, #31 /* Work with aligned 32-byte hunks. */ - dup vrepmask_c.4s, wtmp2 - ands tmp1, srcin, #31 - add vrepmask_0.4s, vrepmask_c.4s, vrepmask_c.4s /* equiv: lsl #1 */ - b.eq .Lloop - - /* Input string is not 32-byte aligned. Rather than forcing - the padding bytes to a safe value, we calculate the syndrome - for all the bytes, but then mask off those bits of the - syndrome that are related to the padding. */ - ld1 {vdata1.16b, vdata2.16b}, [src], #32 - neg tmp1, tmp1 - cmeq vhas_nul1.16b, vdata1.16b, #0 - cmeq vhas_chr1.16b, vdata1.16b, vrepchr.16b - cmeq vhas_nul2.16b, vdata2.16b, #0 - cmeq vhas_chr2.16b, vdata2.16b, vrepchr.16b - and vhas_nul1.16b, vhas_nul1.16b, vrepmask_0.16b - and vhas_nul2.16b, vhas_nul2.16b, vrepmask_0.16b - and vhas_chr1.16b, vhas_chr1.16b, vrepmask_c.16b - and vhas_chr2.16b, vhas_chr2.16b, vrepmask_c.16b - orr vend1.16b, vhas_nul1.16b, vhas_chr1.16b - orr vend2.16b, vhas_nul2.16b, vhas_chr2.16b - lsl tmp1, tmp1, #1 - addp vend1.16b, vend1.16b, vend2.16b // 256->128 - mov tmp3, #~0 - addp vend1.16b, vend1.16b, vend2.16b // 128->64 - lsr tmp1, tmp3, tmp1 - - mov tmp3, vend1.2d[0] - bic tmp1, tmp3, tmp1 // Mask padding bits. - cbnz tmp1, .Ltail - -.Lloop: - ld1 {vdata1.16b, vdata2.16b}, [src], #32 - cmeq vhas_nul1.16b, vdata1.16b, #0 - cmeq vhas_chr1.16b, vdata1.16b, vrepchr.16b - cmeq vhas_nul2.16b, vdata2.16b, #0 - cmeq vhas_chr2.16b, vdata2.16b, vrepchr.16b - /* Use a fast check for the termination condition. */ - orr vend1.16b, vhas_nul1.16b, vhas_chr1.16b - orr vend2.16b, vhas_nul2.16b, vhas_chr2.16b - orr vend1.16b, vend1.16b, vend2.16b - addp vend1.2d, vend1.2d, vend1.2d - mov tmp1, vend1.2d[0] - cbz tmp1, .Lloop - - /* Termination condition found. Now need to establish exactly why - we terminated. */ - and vhas_nul1.16b, vhas_nul1.16b, vrepmask_0.16b - and vhas_nul2.16b, vhas_nul2.16b, vrepmask_0.16b - and vhas_chr1.16b, vhas_chr1.16b, vrepmask_c.16b - and vhas_chr2.16b, vhas_chr2.16b, vrepmask_c.16b - orr vend1.16b, vhas_nul1.16b, vhas_chr1.16b - orr vend2.16b, vhas_nul2.16b, vhas_chr2.16b - addp vend1.16b, vend1.16b, vend2.16b // 256->128 - addp vend1.16b, vend1.16b, vend2.16b // 128->64 - - mov tmp1, vend1.2d[0] -.Ltail: - /* Count the trailing zeros, by bit reversing... */ - rbit tmp1, tmp1 - /* Re-bias source. */ - sub src, src, #32 - clz tmp1, tmp1 /* And counting the leading zeros. */ - /* Tmp1 is even if the target charager was found first. Otherwise - we've found the end of string and we weren't looking for NUL. */ - tst tmp1, #1 - add result, src, tmp1, lsr #1 - csel result, result, xzr, eq - ret - - .size strchr, . - strchr -#endif diff --git a/lib/machine/aarch64/strchrnul-stub.c b/lib/machine/aarch64/strchrnul-stub.c deleted file mode 100644 index b47e92d..0000000 --- a/lib/machine/aarch64/strchrnul-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2014, ARM Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the company nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/strchrnul.c" -#else -/* See strchrnul.S */ -#endif diff --git a/lib/machine/aarch64/strchrnul.S b/lib/machine/aarch64/strchrnul.S deleted file mode 100644 index a0ac13b..0000000 --- a/lib/machine/aarch64/strchrnul.S +++ /dev/null @@ -1,149 +0,0 @@ -/* - strchrnul - find a character or nul in a string - - Copyright (c) 2014, ARM Limited - All rights Reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the company nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See strchrnul-stub.c */ -#else - -/* Assumptions: - * - * ARMv8-a, AArch64 - * Neon Available. - */ - -/* Arguments and results. */ -#define srcin x0 -#define chrin w1 - -#define result x0 - -#define src x2 -#define tmp1 x3 -#define wtmp2 w4 -#define tmp3 x5 - -#define vrepchr v0 -#define vdata1 v1 -#define vdata2 v2 -#define vhas_nul1 v3 -#define vhas_nul2 v4 -#define vhas_chr1 v5 -#define vhas_chr2 v6 -#define vrepmask v7 -#define vend1 v16 - -/* Core algorithm. - - For each 32-byte hunk we calculate a 64-bit syndrome value, with - two bits per byte (LSB is always in bits 0 and 1, for both big - and little-endian systems). For each tuple, bit 0 is set iff - the relevant byte matched the requested character or nul. Since the - bits in the syndrome reflect exactly the order in which things occur - in the original string a count_trailing_zeros() operation will - identify exactly which byte is causing the termination. */ - -/* Locals and temporaries. */ - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -def_fn strchrnul - /* Magic constant 0x40100401 to allow us to identify which lane - matches the termination condition. */ - mov wtmp2, #0x0401 - movk wtmp2, #0x4010, lsl #16 - dup vrepchr.16b, chrin - bic src, srcin, #31 /* Work with aligned 32-byte hunks. */ - dup vrepmask.4s, wtmp2 - ands tmp1, srcin, #31 - b.eq .Lloop - - /* Input string is not 32-byte aligned. Rather than forcing - the padding bytes to a safe value, we calculate the syndrome - for all the bytes, but then mask off those bits of the - syndrome that are related to the padding. */ - ld1 {vdata1.16b, vdata2.16b}, [src], #32 - neg tmp1, tmp1 - cmeq vhas_nul1.16b, vdata1.16b, #0 - cmeq vhas_chr1.16b, vdata1.16b, vrepchr.16b - cmeq vhas_nul2.16b, vdata2.16b, #0 - cmeq vhas_chr2.16b, vdata2.16b, vrepchr.16b - orr vhas_chr1.16b, vhas_chr1.16b, vhas_nul1.16b - orr vhas_chr2.16b, vhas_chr2.16b, vhas_nul2.16b - and vhas_chr1.16b, vhas_chr1.16b, vrepmask.16b - and vhas_chr2.16b, vhas_chr2.16b, vrepmask.16b - lsl tmp1, tmp1, #1 - addp vend1.16b, vhas_chr1.16b, vhas_chr2.16b // 256->128 - mov tmp3, #~0 - addp vend1.16b, vend1.16b, vend1.16b // 128->64 - lsr tmp1, tmp3, tmp1 - - mov tmp3, vend1.2d[0] - bic tmp1, tmp3, tmp1 // Mask padding bits. - cbnz tmp1, .Ltail - -.Lloop: - ld1 {vdata1.16b, vdata2.16b}, [src], #32 - cmeq vhas_nul1.16b, vdata1.16b, #0 - cmeq vhas_chr1.16b, vdata1.16b, vrepchr.16b - cmeq vhas_nul2.16b, vdata2.16b, #0 - cmeq vhas_chr2.16b, vdata2.16b, vrepchr.16b - /* Use a fast check for the termination condition. */ - orr vhas_chr1.16b, vhas_nul1.16b, vhas_chr1.16b - orr vhas_chr2.16b, vhas_nul2.16b, vhas_chr2.16b - orr vend1.16b, vhas_chr1.16b, vhas_chr2.16b - addp vend1.2d, vend1.2d, vend1.2d - mov tmp1, vend1.2d[0] - cbz tmp1, .Lloop - - /* Termination condition found. Now need to establish exactly why - we terminated. */ - and vhas_chr1.16b, vhas_chr1.16b, vrepmask.16b - and vhas_chr2.16b, vhas_chr2.16b, vrepmask.16b - addp vend1.16b, vhas_chr1.16b, vhas_chr2.16b // 256->128 - addp vend1.16b, vend1.16b, vend1.16b // 128->64 - - mov tmp1, vend1.2d[0] -.Ltail: - /* Count the trailing zeros, by bit reversing... */ - rbit tmp1, tmp1 - /* Re-bias source. */ - sub src, src, #32 - clz tmp1, tmp1 /* ... and counting the leading zeros. */ - /* tmp1 is twice the offset into the fragment. */ - add result, src, tmp1, lsr #1 - ret - - .size strchrnul, . - strchrnul -#endif diff --git a/lib/machine/aarch64/strcmp-stub.c b/lib/machine/aarch64/strcmp-stub.c deleted file mode 100644 index 871a241..0000000 --- a/lib/machine/aarch64/strcmp-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2012-2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/strcmp.c" -#else -/* See strcmp.S */ -#endif diff --git a/lib/machine/aarch64/strcmp.S b/lib/machine/aarch64/strcmp.S deleted file mode 100644 index e2bef2d..0000000 --- a/lib/machine/aarch64/strcmp.S +++ /dev/null @@ -1,202 +0,0 @@ -/* Copyright (c) 2012-2018, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/* Assumptions: - * - * ARMv8-a, AArch64 - */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See strcmp-stub.c */ -#else - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -#define L(label) .L ## label - -#define REP8_01 0x0101010101010101 -#define REP8_7f 0x7f7f7f7f7f7f7f7f -#define REP8_80 0x8080808080808080 - -/* Parameters and result. */ -#define src1 x0 -#define src2 x1 -#define result x0 - -/* Internal variables. */ -#define data1 x2 -#define data1w w2 -#define data2 x3 -#define data2w w3 -#define has_nul x4 -#define diff x5 -#define syndrome x6 -#define tmp1 x7 -#define tmp2 x8 -#define tmp3 x9 -#define zeroones x10 -#define pos x11 - - /* Start of performance-critical section -- one 64B cache line. */ -def_fn strcmp p2align=6 - eor tmp1, src1, src2 - mov zeroones, #REP8_01 - tst tmp1, #7 - b.ne L(misaligned8) - ands tmp1, src1, #7 - b.ne L(mutual_align) - /* NUL detection works on the principle that (X - 1) & (~X) & 0x80 - (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and - can be done in parallel across the entire word. */ -L(loop_aligned): - ldr data1, [src1], #8 - ldr data2, [src2], #8 -L(start_realigned): - sub tmp1, data1, zeroones - orr tmp2, data1, #REP8_7f - eor diff, data1, data2 /* Non-zero if differences found. */ - bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ - orr syndrome, diff, has_nul - cbz syndrome, L(loop_aligned) - /* End of performance-critical section -- one 64B cache line. */ - -L(end): -#ifndef __AARCH64EB__ - rev syndrome, syndrome - rev data1, data1 - /* The MS-non-zero bit of the syndrome marks either the first bit - that is different, or the top bit of the first zero byte. - Shifting left now will bring the critical information into the - top bits. */ - clz pos, syndrome - rev data2, data2 - lsl data1, data1, pos - lsl data2, data2, pos - /* But we need to zero-extend (char is unsigned) the value and then - perform a signed 32-bit subtraction. */ - lsr data1, data1, #56 - sub result, data1, data2, lsr #56 - ret -#else - /* For big-endian we cannot use the trick with the syndrome value - as carry-propagation can corrupt the upper bits if the trailing - bytes in the string contain 0x01. */ - /* However, if there is no NUL byte in the dword, we can generate - the result directly. We can't just subtract the bytes as the - MSB might be significant. */ - cbnz has_nul, 1f - cmp data1, data2 - cset result, ne - cneg result, result, lo - ret -1: - /* Re-compute the NUL-byte detection, using a byte-reversed value. */ - rev tmp3, data1 - sub tmp1, tmp3, zeroones - orr tmp2, tmp3, #REP8_7f - bic has_nul, tmp1, tmp2 - rev has_nul, has_nul - orr syndrome, diff, has_nul - clz pos, syndrome - /* The MS-non-zero bit of the syndrome marks either the first bit - that is different, or the top bit of the first zero byte. - Shifting left now will bring the critical information into the - top bits. */ - lsl data1, data1, pos - lsl data2, data2, pos - /* But we need to zero-extend (char is unsigned) the value and then - perform a signed 32-bit subtraction. */ - lsr data1, data1, #56 - sub result, data1, data2, lsr #56 - ret -#endif - -L(mutual_align): - /* Sources are mutually aligned, but are not currently at an - alignment boundary. Round down the addresses and then mask off - the bytes that preceed the start point. */ - bic src1, src1, #7 - bic src2, src2, #7 - lsl tmp1, tmp1, #3 /* Bytes beyond alignment -> bits. */ - ldr data1, [src1], #8 - neg tmp1, tmp1 /* Bits to alignment -64. */ - ldr data2, [src2], #8 - mov tmp2, #~0 -#ifdef __AARCH64EB__ - /* Big-endian. Early bytes are at MSB. */ - lsl tmp2, tmp2, tmp1 /* Shift (tmp1 & 63). */ -#else - /* Little-endian. Early bytes are at LSB. */ - lsr tmp2, tmp2, tmp1 /* Shift (tmp1 & 63). */ -#endif - orr data1, data1, tmp2 - orr data2, data2, tmp2 - b L(start_realigned) - -L(misaligned8): - /* Align SRC1 to 8 bytes and then compare 8 bytes at a time, always - checking to make sure that we don't access beyond page boundary in - SRC2. */ - tst src1, #7 - b.eq L(loop_misaligned) -L(do_misaligned): - ldrb data1w, [src1], #1 - ldrb data2w, [src2], #1 - cmp data1w, #1 - ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ - b.ne L(done) - tst src1, #7 - b.ne L(do_misaligned) - -L(loop_misaligned): - /* Test if we are within the last dword of the end of a 4K page. If - yes then jump back to the misaligned loop to copy a byte at a time. */ - and tmp1, src2, #0xff8 - eor tmp1, tmp1, #0xff8 - cbz tmp1, L(do_misaligned) - ldr data1, [src1], #8 - ldr data2, [src2], #8 - - sub tmp1, data1, zeroones - orr tmp2, data1, #REP8_7f - eor diff, data1, data2 /* Non-zero if differences found. */ - bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ - orr syndrome, diff, has_nul - cbz syndrome, L(loop_misaligned) - b L(end) - -L(done): - sub result, data1, data2 - ret - .size strcmp, .-strcmp - -#endif diff --git a/lib/machine/aarch64/strcpy-stub.c b/lib/machine/aarch64/strcpy-stub.c deleted file mode 100644 index 966277c..0000000 --- a/lib/machine/aarch64/strcpy-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2014, ARM Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the company nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/strcpy.c" -#else -/* See strcpy.S */ -#endif diff --git a/lib/machine/aarch64/strcpy.S b/lib/machine/aarch64/strcpy.S deleted file mode 100644 index e5405f2..0000000 --- a/lib/machine/aarch64/strcpy.S +++ /dev/null @@ -1,341 +0,0 @@ -/* - strcpy/stpcpy - copy a string returning pointer to start/end. - - Copyright (c) 2013, 2014, 2015 ARM Ltd. - All Rights Reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the company nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See strchr-stub.c */ -#else - -/* Assumptions: - * - * ARMv8-a, AArch64, unaligned accesses, min page size 4k. - */ - -/* To build as stpcpy, define BUILD_STPCPY before compiling this file. - - To test the page crossing code path more thoroughly, compile with - -DSTRCPY_TEST_PAGE_CROSS - this will force all copies through the slower - entry path. This option is not intended for production use. */ - -/* Arguments and results. */ -#define dstin x0 -#define srcin x1 - -/* Locals and temporaries. */ -#define src x2 -#define dst x3 -#define data1 x4 -#define data1w w4 -#define data2 x5 -#define data2w w5 -#define has_nul1 x6 -#define has_nul2 x7 -#define tmp1 x8 -#define tmp2 x9 -#define tmp3 x10 -#define tmp4 x11 -#define zeroones x12 -#define data1a x13 -#define data2a x14 -#define pos x15 -#define len x16 -#define to_align x17 - -#ifdef BUILD_STPCPY -#define STRCPY stpcpy -#else -#define STRCPY strcpy -#endif - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - - /* NUL detection works on the principle that (X - 1) & (~X) & 0x80 - (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and - can be done in parallel across the entire word. */ - -#define REP8_01 0x0101010101010101 -#define REP8_7f 0x7f7f7f7f7f7f7f7f -#define REP8_80 0x8080808080808080 - - /* AArch64 systems have a minimum page size of 4k. We can do a quick - page size check for crossing this boundary on entry and if we - do not, then we can short-circuit much of the entry code. We - expect early page-crossing strings to be rare (probability of - 16/MIN_PAGE_SIZE ~= 0.4%), so the branch should be quite - predictable, even with random strings. - - We don't bother checking for larger page sizes, the cost of setting - up the correct page size is just not worth the extra gain from - a small reduction in the cases taking the slow path. Note that - we only care about whether the first fetch, which may be - misaligned, crosses a page boundary - after that we move to aligned - fetches for the remainder of the string. */ - -#ifdef STRCPY_TEST_PAGE_CROSS - /* Make everything that isn't Qword aligned look like a page cross. */ -#define MIN_PAGE_P2 4 -#else -#define MIN_PAGE_P2 12 -#endif - -#define MIN_PAGE_SIZE (1 << MIN_PAGE_P2) - -def_fn STRCPY p2align=6 - /* For moderately short strings, the fastest way to do the copy is to - calculate the length of the string in the same way as strlen, then - essentially do a memcpy of the result. This avoids the need for - multiple byte copies and further means that by the time we - reach the bulk copy loop we know we can always use DWord - accesses. We expect strcpy to rarely be called repeatedly - with the same source string, so branch prediction is likely to - always be difficult - we mitigate against this by preferring - conditional select operations over branches whenever this is - feasible. */ - and tmp2, srcin, #(MIN_PAGE_SIZE - 1) - mov zeroones, #REP8_01 - and to_align, srcin, #15 - cmp tmp2, #(MIN_PAGE_SIZE - 16) - neg tmp1, to_align - /* The first fetch will straddle a (possible) page boundary iff - srcin + 15 causes bit[MIN_PAGE_P2] to change value. A 16-byte - aligned string will never fail the page align check, so will - always take the fast path. */ - b.gt .Lpage_cross - -.Lpage_cross_ok: - ldp data1, data2, [srcin] -#ifdef __AARCH64EB__ - /* Because we expect the end to be found within 16 characters - (profiling shows this is the most common case), it's worth - swapping the bytes now to save having to recalculate the - termination syndrome later. We preserve data1 and data2 - so that we can re-use the values later on. */ - rev tmp2, data1 - sub tmp1, tmp2, zeroones - orr tmp2, tmp2, #REP8_7f - bics has_nul1, tmp1, tmp2 - b.ne .Lfp_le8 - rev tmp4, data2 - sub tmp3, tmp4, zeroones - orr tmp4, tmp4, #REP8_7f -#else - sub tmp1, data1, zeroones - orr tmp2, data1, #REP8_7f - bics has_nul1, tmp1, tmp2 - b.ne .Lfp_le8 - sub tmp3, data2, zeroones - orr tmp4, data2, #REP8_7f -#endif - bics has_nul2, tmp3, tmp4 - b.eq .Lbulk_entry - - /* The string is short (<=16 bytes). We don't know exactly how - short though, yet. Work out the exact length so that we can - quickly select the optimal copy strategy. */ -.Lfp_gt8: - rev has_nul2, has_nul2 - clz pos, has_nul2 - mov tmp2, #56 - add dst, dstin, pos, lsr #3 /* Bits to bytes. */ - sub pos, tmp2, pos -#ifdef __AARCH64EB__ - lsr data2, data2, pos -#else - lsl data2, data2, pos -#endif - str data2, [dst, #1] - str data1, [dstin] -#ifdef BUILD_STPCPY - add dstin, dst, #8 -#endif - ret - -.Lfp_le8: - rev has_nul1, has_nul1 - clz pos, has_nul1 - add dst, dstin, pos, lsr #3 /* Bits to bytes. */ - subs tmp2, pos, #24 /* Pos in bits. */ - b.lt .Lfp_lt4 -#ifdef __AARCH64EB__ - mov tmp2, #56 - sub pos, tmp2, pos - lsr data2, data1, pos - lsr data1, data1, #32 -#else - lsr data2, data1, tmp2 -#endif - /* 4->7 bytes to copy. */ - str data2w, [dst, #-3] - str data1w, [dstin] -#ifdef BUILD_STPCPY - mov dstin, dst -#endif - ret -.Lfp_lt4: - cbz pos, .Lfp_lt2 - /* 2->3 bytes to copy. */ -#ifdef __AARCH64EB__ - lsr data1, data1, #48 -#endif - strh data1w, [dstin] - /* Fall-through, one byte (max) to go. */ -.Lfp_lt2: - /* Null-terminated string. Last character must be zero! */ - strb wzr, [dst] -#ifdef BUILD_STPCPY - mov dstin, dst -#endif - ret - - .p2align 6 - /* Aligning here ensures that the entry code and main loop all lies - within one 64-byte cache line. */ -.Lbulk_entry: - sub to_align, to_align, #16 - stp data1, data2, [dstin] - sub src, srcin, to_align - sub dst, dstin, to_align - b .Lentry_no_page_cross - - /* The inner loop deals with two Dwords at a time. This has a - slightly higher start-up cost, but we should win quite quickly, - especially on cores with a high number of issue slots per - cycle, as we get much better parallelism out of the operations. */ -.Lmain_loop: - stp data1, data2, [dst], #16 -.Lentry_no_page_cross: - ldp data1, data2, [src], #16 - sub tmp1, data1, zeroones - orr tmp2, data1, #REP8_7f - sub tmp3, data2, zeroones - orr tmp4, data2, #REP8_7f - bic has_nul1, tmp1, tmp2 - bics has_nul2, tmp3, tmp4 - ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ - b.eq .Lmain_loop - - /* Since we know we are copying at least 16 bytes, the fastest way - to deal with the tail is to determine the location of the - trailing NUL, then (re)copy the 16 bytes leading up to that. */ - cmp has_nul1, #0 -#ifdef __AARCH64EB__ - /* For big-endian, carry propagation (if the final byte in the - string is 0x01) means we cannot use has_nul directly. The - easiest way to get the correct byte is to byte-swap the data - and calculate the syndrome a second time. */ - csel data1, data1, data2, ne - rev data1, data1 - sub tmp1, data1, zeroones - orr tmp2, data1, #REP8_7f - bic has_nul1, tmp1, tmp2 -#else - csel has_nul1, has_nul1, has_nul2, ne -#endif - rev has_nul1, has_nul1 - clz pos, has_nul1 - add tmp1, pos, #72 - add pos, pos, #8 - csel pos, pos, tmp1, ne - add src, src, pos, lsr #3 - add dst, dst, pos, lsr #3 - ldp data1, data2, [src, #-32] - stp data1, data2, [dst, #-16] -#ifdef BUILD_STPCPY - sub dstin, dst, #1 -#endif - ret - -.Lpage_cross: - bic src, srcin, #15 - /* Start by loading two words at [srcin & ~15], then forcing the - bytes that precede srcin to 0xff. This means they never look - like termination bytes. */ - ldp data1, data2, [src] - lsl tmp1, tmp1, #3 /* Bytes beyond alignment -> bits. */ - tst to_align, #7 - csetm tmp2, ne -#ifdef __AARCH64EB__ - lsl tmp2, tmp2, tmp1 /* Shift (tmp1 & 63). */ -#else - lsr tmp2, tmp2, tmp1 /* Shift (tmp1 & 63). */ -#endif - orr data1, data1, tmp2 - orr data2a, data2, tmp2 - cmp to_align, #8 - csinv data1, data1, xzr, lt - csel data2, data2, data2a, lt - sub tmp1, data1, zeroones - orr tmp2, data1, #REP8_7f - sub tmp3, data2, zeroones - orr tmp4, data2, #REP8_7f - bic has_nul1, tmp1, tmp2 - bics has_nul2, tmp3, tmp4 - ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ - b.eq .Lpage_cross_ok - /* We now need to make data1 and data2 look like they've been - loaded directly from srcin. Do a rotate on the 128-bit value. */ - lsl tmp1, to_align, #3 /* Bytes->bits. */ - neg tmp2, to_align, lsl #3 -#ifdef __AARCH64EB__ - lsl data1a, data1, tmp1 - lsr tmp4, data2, tmp2 - lsl data2, data2, tmp1 - orr tmp4, tmp4, data1a - cmp to_align, #8 - csel data1, tmp4, data2, lt - rev tmp2, data1 - rev tmp4, data2 - sub tmp1, tmp2, zeroones - orr tmp2, tmp2, #REP8_7f - sub tmp3, tmp4, zeroones - orr tmp4, tmp4, #REP8_7f -#else - lsr data1a, data1, tmp1 - lsl tmp4, data2, tmp2 - lsr data2, data2, tmp1 - orr tmp4, tmp4, data1a - cmp to_align, #8 - csel data1, tmp4, data2, lt - sub tmp1, data1, zeroones - orr tmp2, data1, #REP8_7f - sub tmp3, data2, zeroones - orr tmp4, data2, #REP8_7f -#endif - bic has_nul1, tmp1, tmp2 - cbnz has_nul1, .Lfp_le8 - bic has_nul2, tmp3, tmp4 - b .Lfp_gt8 - - .size STRCPY, . - STRCPY -#endif diff --git a/lib/machine/aarch64/strlen-stub.c b/lib/machine/aarch64/strlen-stub.c deleted file mode 100644 index 717e209..0000000 --- a/lib/machine/aarch64/strlen-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/strlen.c" -#else -/* See strlen.S */ -#endif diff --git a/lib/machine/aarch64/strlen.S b/lib/machine/aarch64/strlen.S deleted file mode 100644 index 872d136..0000000 --- a/lib/machine/aarch64/strlen.S +++ /dev/null @@ -1,238 +0,0 @@ -/* Copyright (c) 2013-2015, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See strlen-stub.c */ -#else - -/* Assumptions: - * - * ARMv8-a, AArch64, unaligned accesses, min page size 4k. - */ - -/* To test the page crossing code path more thoroughly, compile with - -DTEST_PAGE_CROSS - this will force all calls through the slower - entry path. This option is not intended for production use. */ - -/* Arguments and results. */ -#define srcin x0 -#define len x0 - -/* Locals and temporaries. */ -#define src x1 -#define data1 x2 -#define data2 x3 -#define has_nul1 x4 -#define has_nul2 x5 -#define tmp1 x4 -#define tmp2 x5 -#define tmp3 x6 -#define tmp4 x7 -#define zeroones x8 - -#define L(l) .L ## l - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - - /* NUL detection works on the principle that (X - 1) & (~X) & 0x80 - (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and - can be done in parallel across the entire word. A faster check - (X - 1) & 0x80 is zero for non-NUL ASCII characters, but gives - false hits for characters 129..255. */ - -#define REP8_01 0x0101010101010101 -#define REP8_7f 0x7f7f7f7f7f7f7f7f -#define REP8_80 0x8080808080808080 - -#ifdef TEST_PAGE_CROSS -# define MIN_PAGE_SIZE 15 -#else -# define MIN_PAGE_SIZE 4096 -#endif - - /* Since strings are short on average, we check the first 16 bytes - of the string for a NUL character. In order to do an unaligned ldp - safely we have to do a page cross check first. If there is a NUL - byte we calculate the length from the 2 8-byte words using - conditional select to reduce branch mispredictions (it is unlikely - strlen will be repeatedly called on strings with the same length). - - If the string is longer than 16 bytes, we align src so don't need - further page cross checks, and process 32 bytes per iteration - using the fast NUL check. If we encounter non-ASCII characters, - fallback to a second loop using the full NUL check. - - If the page cross check fails, we read 16 bytes from an aligned - address, remove any characters before the string, and continue - in the main loop using aligned loads. Since strings crossing a - page in the first 16 bytes are rare (probability of - 16/MIN_PAGE_SIZE ~= 0.4%), this case does not need to be optimized. - - AArch64 systems have a minimum page size of 4k. We don't bother - checking for larger page sizes - the cost of setting up the correct - page size is just not worth the extra gain from a small reduction in - the cases taking the slow path. Note that we only care about - whether the first fetch, which may be misaligned, crosses a page - boundary. */ - -def_fn strlen p2align=6 - and tmp1, srcin, MIN_PAGE_SIZE - 1 - mov zeroones, REP8_01 - cmp tmp1, MIN_PAGE_SIZE - 16 - b.gt L(page_cross) - ldp data1, data2, [srcin] -#ifdef __AARCH64EB__ - /* For big-endian, carry propagation (if the final byte in the - string is 0x01) means we cannot use has_nul1/2 directly. - Since we expect strings to be small and early-exit, - byte-swap the data now so has_null1/2 will be correct. */ - rev data1, data1 - rev data2, data2 -#endif - sub tmp1, data1, zeroones - orr tmp2, data1, REP8_7f - sub tmp3, data2, zeroones - orr tmp4, data2, REP8_7f - bics has_nul1, tmp1, tmp2 - bic has_nul2, tmp3, tmp4 - ccmp has_nul2, 0, 0, eq - beq L(main_loop_entry) - - /* Enter with C = has_nul1 == 0. */ - csel has_nul1, has_nul1, has_nul2, cc - mov len, 8 - rev has_nul1, has_nul1 - clz tmp1, has_nul1 - csel len, xzr, len, cc - add len, len, tmp1, lsr 3 - ret - - /* The inner loop processes 32 bytes per iteration and uses the fast - NUL check. If we encounter non-ASCII characters, use a second - loop with the accurate NUL check. */ - .p2align 4 -L(main_loop_entry): - bic src, srcin, 15 - sub src, src, 16 -L(main_loop): - ldp data1, data2, [src, 32]! -.Lpage_cross_entry: - sub tmp1, data1, zeroones - sub tmp3, data2, zeroones - orr tmp2, tmp1, tmp3 - tst tmp2, zeroones, lsl 7 - bne 1f - ldp data1, data2, [src, 16] - sub tmp1, data1, zeroones - sub tmp3, data2, zeroones - orr tmp2, tmp1, tmp3 - tst tmp2, zeroones, lsl 7 - beq L(main_loop) - add src, src, 16 -1: - /* The fast check failed, so do the slower, accurate NUL check. */ - orr tmp2, data1, REP8_7f - orr tmp4, data2, REP8_7f - bics has_nul1, tmp1, tmp2 - bic has_nul2, tmp3, tmp4 - ccmp has_nul2, 0, 0, eq - beq L(nonascii_loop) - - /* Enter with C = has_nul1 == 0. */ -L(tail): -#ifdef __AARCH64EB__ - /* For big-endian, carry propagation (if the final byte in the - string is 0x01) means we cannot use has_nul1/2 directly. The - easiest way to get the correct byte is to byte-swap the data - and calculate the syndrome a second time. */ - csel data1, data1, data2, cc - rev data1, data1 - sub tmp1, data1, zeroones - orr tmp2, data1, REP8_7f - bic has_nul1, tmp1, tmp2 -#else - csel has_nul1, has_nul1, has_nul2, cc -#endif - sub len, src, srcin - rev has_nul1, has_nul1 - add tmp2, len, 8 - clz tmp1, has_nul1 - csel len, len, tmp2, cc - add len, len, tmp1, lsr 3 - ret - -L(nonascii_loop): - ldp data1, data2, [src, 16]! - sub tmp1, data1, zeroones - orr tmp2, data1, REP8_7f - sub tmp3, data2, zeroones - orr tmp4, data2, REP8_7f - bics has_nul1, tmp1, tmp2 - bic has_nul2, tmp3, tmp4 - ccmp has_nul2, 0, 0, eq - bne L(tail) - ldp data1, data2, [src, 16]! - sub tmp1, data1, zeroones - orr tmp2, data1, REP8_7f - sub tmp3, data2, zeroones - orr tmp4, data2, REP8_7f - bics has_nul1, tmp1, tmp2 - bic has_nul2, tmp3, tmp4 - ccmp has_nul2, 0, 0, eq - beq L(nonascii_loop) - b L(tail) - - /* Load 16 bytes from [srcin & ~15] and force the bytes that precede - srcin to 0x7f, so we ignore any NUL bytes before the string. - Then continue in the aligned loop. */ -L(page_cross): - bic src, srcin, 15 - ldp data1, data2, [src] - lsl tmp1, srcin, 3 - mov tmp4, -1 -#ifdef __AARCH64EB__ - /* Big-endian. Early bytes are at MSB. */ - lsr tmp1, tmp4, tmp1 /* Shift (tmp1 & 63). */ -#else - /* Little-endian. Early bytes are at LSB. */ - lsl tmp1, tmp4, tmp1 /* Shift (tmp1 & 63). */ -#endif - orr tmp1, tmp1, REP8_80 - orn data1, data1, tmp1 - orn tmp2, data2, tmp1 - tst srcin, 8 - csel data1, data1, tmp4, eq - csel data2, data2, tmp2, eq - b L(page_cross_entry) - - .size strlen, . - strlen -#endif diff --git a/lib/machine/aarch64/strncmp-stub.c b/lib/machine/aarch64/strncmp-stub.c deleted file mode 100644 index 1eb988f..0000000 --- a/lib/machine/aarch64/strncmp-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/strncmp.c" -#else -/* See strncmp.S */ -#endif diff --git a/lib/machine/aarch64/strncmp.S b/lib/machine/aarch64/strncmp.S deleted file mode 100644 index ffdabc2..0000000 --- a/lib/machine/aarch64/strncmp.S +++ /dev/null @@ -1,290 +0,0 @@ -/* Copyright (c) 2013, 2018, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See strcmp-stub.c */ -#else - -/* Assumptions: - * - * ARMv8-a, AArch64 - */ - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -#define REP8_01 0x0101010101010101 -#define REP8_7f 0x7f7f7f7f7f7f7f7f -#define REP8_80 0x8080808080808080 - -/* Parameters and result. */ -#define src1 x0 -#define src2 x1 -#define limit x2 -#define result x0 - -/* Internal variables. */ -#define data1 x3 -#define data1w w3 -#define data2 x4 -#define data2w w4 -#define has_nul x5 -#define diff x6 -#define syndrome x7 -#define tmp1 x8 -#define tmp2 x9 -#define tmp3 x10 -#define zeroones x11 -#define pos x12 -#define limit_wd x13 -#define mask x14 -#define endloop x15 -#define count mask - - .text - .p2align 6 - .rep 7 - nop /* Pad so that the loop below fits a cache line. */ - .endr -def_fn strncmp - cbz limit, .Lret0 - eor tmp1, src1, src2 - mov zeroones, #REP8_01 - tst tmp1, #7 - and count, src1, #7 - b.ne .Lmisaligned8 - cbnz count, .Lmutual_align - /* Calculate the number of full and partial words -1. */ - sub limit_wd, limit, #1 /* limit != 0, so no underflow. */ - lsr limit_wd, limit_wd, #3 /* Convert to Dwords. */ - - /* NUL detection works on the principle that (X - 1) & (~X) & 0x80 - (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and - can be done in parallel across the entire word. */ - /* Start of performance-critical section -- one 64B cache line. */ -.Lloop_aligned: - ldr data1, [src1], #8 - ldr data2, [src2], #8 -.Lstart_realigned: - subs limit_wd, limit_wd, #1 - sub tmp1, data1, zeroones - orr tmp2, data1, #REP8_7f - eor diff, data1, data2 /* Non-zero if differences found. */ - csinv endloop, diff, xzr, pl /* Last Dword or differences. */ - bics has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ - ccmp endloop, #0, #0, eq - b.eq .Lloop_aligned - /* End of performance-critical section -- one 64B cache line. */ - - /* Not reached the limit, must have found the end or a diff. */ - tbz limit_wd, #63, .Lnot_limit - - /* Limit % 8 == 0 => all bytes significant. */ - ands limit, limit, #7 - b.eq .Lnot_limit - - lsl limit, limit, #3 /* Bits -> bytes. */ - mov mask, #~0 -#ifdef __AARCH64EB__ - lsr mask, mask, limit -#else - lsl mask, mask, limit -#endif - bic data1, data1, mask - bic data2, data2, mask - - /* Make sure that the NUL byte is marked in the syndrome. */ - orr has_nul, has_nul, mask - -.Lnot_limit: - orr syndrome, diff, has_nul - -#ifndef __AARCH64EB__ - rev syndrome, syndrome - rev data1, data1 - /* The MS-non-zero bit of the syndrome marks either the first bit - that is different, or the top bit of the first zero byte. - Shifting left now will bring the critical information into the - top bits. */ - clz pos, syndrome - rev data2, data2 - lsl data1, data1, pos - lsl data2, data2, pos - /* But we need to zero-extend (char is unsigned) the value and then - perform a signed 32-bit subtraction. */ - lsr data1, data1, #56 - sub result, data1, data2, lsr #56 - ret -#else - /* For big-endian we cannot use the trick with the syndrome value - as carry-propagation can corrupt the upper bits if the trailing - bytes in the string contain 0x01. */ - /* However, if there is no NUL byte in the dword, we can generate - the result directly. We can't just subtract the bytes as the - MSB might be significant. */ - cbnz has_nul, 1f - cmp data1, data2 - cset result, ne - cneg result, result, lo - ret -1: - /* Re-compute the NUL-byte detection, using a byte-reversed value. */ - rev tmp3, data1 - sub tmp1, tmp3, zeroones - orr tmp2, tmp3, #REP8_7f - bic has_nul, tmp1, tmp2 - rev has_nul, has_nul - orr syndrome, diff, has_nul - clz pos, syndrome - /* The MS-non-zero bit of the syndrome marks either the first bit - that is different, or the top bit of the first zero byte. - Shifting left now will bring the critical information into the - top bits. */ - lsl data1, data1, pos - lsl data2, data2, pos - /* But we need to zero-extend (char is unsigned) the value and then - perform a signed 32-bit subtraction. */ - lsr data1, data1, #56 - sub result, data1, data2, lsr #56 - ret -#endif - -.Lmutual_align: - /* Sources are mutually aligned, but are not currently at an - alignment boundary. Round down the addresses and then mask off - the bytes that precede the start point. - We also need to adjust the limit calculations, but without - overflowing if the limit is near ULONG_MAX. */ - bic src1, src1, #7 - bic src2, src2, #7 - ldr data1, [src1], #8 - neg tmp3, count, lsl #3 /* 64 - bits(bytes beyond align). */ - ldr data2, [src2], #8 - mov tmp2, #~0 - sub limit_wd, limit, #1 /* limit != 0, so no underflow. */ -#ifdef __AARCH64EB__ - /* Big-endian. Early bytes are at MSB. */ - lsl tmp2, tmp2, tmp3 /* Shift (count & 63). */ -#else - /* Little-endian. Early bytes are at LSB. */ - lsr tmp2, tmp2, tmp3 /* Shift (count & 63). */ -#endif - and tmp3, limit_wd, #7 - lsr limit_wd, limit_wd, #3 - /* Adjust the limit. Only low 3 bits used, so overflow irrelevant. */ - add limit, limit, count - add tmp3, tmp3, count - orr data1, data1, tmp2 - orr data2, data2, tmp2 - add limit_wd, limit_wd, tmp3, lsr #3 - b .Lstart_realigned - - .p2align 6 - /* Don't bother with dwords for up to 16 bytes. */ -.Lmisaligned8: - cmp limit, #16 - b.hs .Ltry_misaligned_words - -.Lbyte_loop: - /* Perhaps we can do better than this. */ - ldrb data1w, [src1], #1 - ldrb data2w, [src2], #1 - subs limit, limit, #1 - ccmp data1w, #1, #0, hi /* NZCV = 0b0000. */ - ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ - b.eq .Lbyte_loop -.Ldone: - sub result, data1, data2 - ret - /* Align the SRC1 to a dword by doing a bytewise compare and then do - the dword loop. */ -.Ltry_misaligned_words: - lsr limit_wd, limit, #3 - cbz count, .Ldo_misaligned - - neg count, count - and count, count, #7 - sub limit, limit, count - lsr limit_wd, limit, #3 - -.Lpage_end_loop: - ldrb data1w, [src1], #1 - ldrb data2w, [src2], #1 - cmp data1w, #1 - ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ - b.ne .Ldone - subs count, count, #1 - b.hi .Lpage_end_loop - -.Ldo_misaligned: - /* Prepare ourselves for the next page crossing. Unlike the aligned - loop, we fetch 1 less dword because we risk crossing bounds on - SRC2. */ - mov count, #8 - subs limit_wd, limit_wd, #1 - b.lo .Ldone_loop -.Lloop_misaligned: - and tmp2, src2, #0xff8 - eor tmp2, tmp2, #0xff8 - cbz tmp2, .Lpage_end_loop - - ldr data1, [src1], #8 - ldr data2, [src2], #8 - sub tmp1, data1, zeroones - orr tmp2, data1, #REP8_7f - eor diff, data1, data2 /* Non-zero if differences found. */ - bics has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ - ccmp diff, #0, #0, eq - b.ne .Lnot_limit - subs limit_wd, limit_wd, #1 - b.pl .Lloop_misaligned - -.Ldone_loop: - /* We found a difference or a NULL before the limit was reached. */ - and limit, limit, #7 - cbz limit, .Lnot_limit - /* Read the last word. */ - sub src1, src1, 8 - sub src2, src2, 8 - ldr data1, [src1, limit] - ldr data2, [src2, limit] - sub tmp1, data1, zeroones - orr tmp2, data1, #REP8_7f - eor diff, data1, data2 /* Non-zero if differences found. */ - bics has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ - ccmp diff, #0, #0, eq - b.ne .Lnot_limit - -.Lret0: - mov result, #0 - ret - .size strncmp, . - strncmp -#endif diff --git a/lib/machine/aarch64/strnlen-stub.c b/lib/machine/aarch64/strnlen-stub.c deleted file mode 100644 index 8e1903c..0000000 --- a/lib/machine/aarch64/strnlen-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/strnlen.c" -#else -/* See strnlen.S */ -#endif diff --git a/lib/machine/aarch64/strnlen.S b/lib/machine/aarch64/strnlen.S deleted file mode 100644 index c255c3f..0000000 --- a/lib/machine/aarch64/strnlen.S +++ /dev/null @@ -1,187 +0,0 @@ -/* strnlen - calculate the length of a string with limit. - - Copyright (c) 2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See strlen-stub.c */ -#else - -/* Assumptions: - * - * ARMv8-a, AArch64 - */ - -/* Arguments and results. */ -#define srcin x0 -#define len x0 -#define limit x1 - -/* Locals and temporaries. */ -#define src x2 -#define data1 x3 -#define data2 x4 -#define data2a x5 -#define has_nul1 x6 -#define has_nul2 x7 -#define tmp1 x8 -#define tmp2 x9 -#define tmp3 x10 -#define tmp4 x11 -#define zeroones x12 -#define pos x13 -#define limit_wd x14 - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -#define REP8_01 0x0101010101010101 -#define REP8_7f 0x7f7f7f7f7f7f7f7f -#define REP8_80 0x8080808080808080 - - .text - .p2align 6 -.Lstart: - /* Pre-pad to ensure critical loop begins an icache line. */ - .rep 7 - nop - .endr - /* Put this code here to avoid wasting more space with pre-padding. */ -.Lhit_limit: - mov len, limit - ret - -def_fn strnlen - cbz limit, .Lhit_limit - mov zeroones, #REP8_01 - bic src, srcin, #15 - ands tmp1, srcin, #15 - b.ne .Lmisaligned - /* Calculate the number of full and partial words -1. */ - sub limit_wd, limit, #1 /* Limit != 0, so no underflow. */ - lsr limit_wd, limit_wd, #4 /* Convert to Qwords. */ - - /* NUL detection works on the principle that (X - 1) & (~X) & 0x80 - (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and - can be done in parallel across the entire word. */ - /* The inner loop deals with two Dwords at a time. This has a - slightly higher start-up cost, but we should win quite quickly, - especially on cores with a high number of issue slots per - cycle, as we get much better parallelism out of the operations. */ - - /* Start of critial section -- keep to one 64Byte cache line. */ -.Lloop: - ldp data1, data2, [src], #16 -.Lrealigned: - sub tmp1, data1, zeroones - orr tmp2, data1, #REP8_7f - sub tmp3, data2, zeroones - orr tmp4, data2, #REP8_7f - bic has_nul1, tmp1, tmp2 - bic has_nul2, tmp3, tmp4 - subs limit_wd, limit_wd, #1 - orr tmp1, has_nul1, has_nul2 - ccmp tmp1, #0, #0, pl /* NZCV = 0000 */ - b.eq .Lloop - /* End of critical section -- keep to one 64Byte cache line. */ - - orr tmp1, has_nul1, has_nul2 - cbz tmp1, .Lhit_limit /* No null in final Qword. */ - - /* We know there's a null in the final Qword. The easiest thing - to do now is work out the length of the string and return - MIN (len, limit). */ - - sub len, src, srcin - cbz has_nul1, .Lnul_in_data2 -#ifdef __AARCH64EB__ - mov data2, data1 -#endif - sub len, len, #8 - mov has_nul2, has_nul1 -.Lnul_in_data2: -#ifdef __AARCH64EB__ - /* For big-endian, carry propagation (if the final byte in the - string is 0x01) means we cannot use has_nul directly. The - easiest way to get the correct byte is to byte-swap the data - and calculate the syndrome a second time. */ - rev data2, data2 - sub tmp1, data2, zeroones - orr tmp2, data2, #REP8_7f - bic has_nul2, tmp1, tmp2 -#endif - sub len, len, #8 - rev has_nul2, has_nul2 - clz pos, has_nul2 - add len, len, pos, lsr #3 /* Bits to bytes. */ - cmp len, limit - csel len, len, limit, ls /* Return the lower value. */ - ret - -.Lmisaligned: - /* Deal with a partial first word. - We're doing two things in parallel here; - 1) Calculate the number of words (but avoiding overflow if - limit is near ULONG_MAX) - to do this we need to work out - limit + tmp1 - 1 as a 65-bit value before shifting it; - 2) Load and mask the initial data words - we force the bytes - before the ones we are interested in to 0xff - this ensures - early bytes will not hit any zero detection. */ - sub limit_wd, limit, #1 - neg tmp4, tmp1 - cmp tmp1, #8 - - and tmp3, limit_wd, #15 - lsr limit_wd, limit_wd, #4 - mov tmp2, #~0 - - ldp data1, data2, [src], #16 - lsl tmp4, tmp4, #3 /* Bytes beyond alignment -> bits. */ - add tmp3, tmp3, tmp1 - -#ifdef __AARCH64EB__ - /* Big-endian. Early bytes are at MSB. */ - lsl tmp2, tmp2, tmp4 /* Shift (tmp1 & 63). */ -#else - /* Little-endian. Early bytes are at LSB. */ - lsr tmp2, tmp2, tmp4 /* Shift (tmp1 & 63). */ -#endif - add limit_wd, limit_wd, tmp3, lsr #4 - - orr data1, data1, tmp2 - orr data2a, data2, tmp2 - - csinv data1, data1, xzr, le - csel data2, data2, data2a, le - b .Lrealigned - .size strnlen, . - .Lstart /* Include pre-padding in size. */ - -#endif diff --git a/lib/machine/aarch64/strrchr-stub.c b/lib/machine/aarch64/strrchr-stub.c deleted file mode 100644 index 5923a44..0000000 --- a/lib/machine/aarch64/strrchr-stub.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2014, ARM Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the company nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/strrchr.c" -#else -/* See strrchr.S */ -#endif diff --git a/lib/machine/aarch64/strrchr.S b/lib/machine/aarch64/strrchr.S deleted file mode 100644 index d64fc09..0000000 --- a/lib/machine/aarch64/strrchr.S +++ /dev/null @@ -1,182 +0,0 @@ -/* - strrchr - find last instance of a character in a string - - Copyright (c) 2014, ARM Limited - All rights Reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the company nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -/* See strchr-stub.c */ -#else - -/* Assumptions: - * - * ARMv8-a, AArch64 - * Neon Available. - */ - -/* Arguments and results. */ -#define srcin x0 -#define chrin w1 - -#define result x0 - -#define src x2 -#define tmp1 x3 -#define wtmp2 w4 -#define tmp3 x5 -#define src_match x6 -#define src_offset x7 -#define const_m1 x8 -#define tmp4 x9 -#define nul_match x10 -#define chr_match x11 - -#define vrepchr v0 -#define vdata1 v1 -#define vdata2 v2 -#define vhas_nul1 v3 -#define vhas_nul2 v4 -#define vhas_chr1 v5 -#define vhas_chr2 v6 -#define vrepmask_0 v7 -#define vrepmask_c v16 -#define vend1 v17 -#define vend2 v18 - -/* Core algorithm. - - For each 32-byte hunk we calculate a 64-bit syndrome value, with - two bits per byte (LSB is always in bits 0 and 1, for both big - and little-endian systems). For each tuple, bit 0 is set iff - the relevant byte matched the requested character; bit 1 is set - iff the relevant byte matched the NUL end of string (we trigger - off bit0 for the special case of looking for NUL). Since the bits - in the syndrome reflect exactly the order in which things occur - in the original string a count_trailing_zeros() operation will - identify exactly which byte is causing the termination, and why. */ - -/* Locals and temporaries. */ - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -def_fn strrchr - /* Magic constant 0x40100401 to allow us to identify which lane - matches the requested byte. Magic constant 0x80200802 used - similarly for NUL termination. */ - mov wtmp2, #0x0401 - movk wtmp2, #0x4010, lsl #16 - dup vrepchr.16b, chrin - bic src, srcin, #31 /* Work with aligned 32-byte hunks. */ - dup vrepmask_c.4s, wtmp2 - mov src_offset, #0 - ands tmp1, srcin, #31 - add vrepmask_0.4s, vrepmask_c.4s, vrepmask_c.4s /* equiv: lsl #1 */ - b.eq .Laligned - - /* Input string is not 32-byte aligned. Rather than forcing - the padding bytes to a safe value, we calculate the syndrome - for all the bytes, but then mask off those bits of the - syndrome that are related to the padding. */ - ld1 {vdata1.16b, vdata2.16b}, [src], #32 - neg tmp1, tmp1 - cmeq vhas_nul1.16b, vdata1.16b, #0 - cmeq vhas_chr1.16b, vdata1.16b, vrepchr.16b - cmeq vhas_nul2.16b, vdata2.16b, #0 - cmeq vhas_chr2.16b, vdata2.16b, vrepchr.16b - and vhas_nul1.16b, vhas_nul1.16b, vrepmask_0.16b - and vhas_chr1.16b, vhas_chr1.16b, vrepmask_c.16b - and vhas_nul2.16b, vhas_nul2.16b, vrepmask_0.16b - and vhas_chr2.16b, vhas_chr2.16b, vrepmask_c.16b - addp vhas_nul1.16b, vhas_nul1.16b, vhas_nul2.16b // 256->128 - addp vhas_chr1.16b, vhas_chr1.16b, vhas_chr2.16b // 256->128 - addp vhas_nul1.16b, vhas_nul1.16b, vhas_nul1.16b // 128->64 - addp vhas_chr1.16b, vhas_chr1.16b, vhas_chr1.16b // 128->64 - mov nul_match, vhas_nul1.2d[0] - lsl tmp1, tmp1, #1 - mov const_m1, #~0 - mov chr_match, vhas_chr1.2d[0] - lsr tmp3, const_m1, tmp1 - - bic nul_match, nul_match, tmp3 // Mask padding bits. - bic chr_match, chr_match, tmp3 // Mask padding bits. - cbnz nul_match, .Ltail - -.Lloop: - cmp chr_match, #0 - csel src_match, src, src_match, ne - csel src_offset, chr_match, src_offset, ne -.Laligned: - ld1 {vdata1.16b, vdata2.16b}, [src], #32 - cmeq vhas_nul1.16b, vdata1.16b, #0 - cmeq vhas_chr1.16b, vdata1.16b, vrepchr.16b - cmeq vhas_nul2.16b, vdata2.16b, #0 - cmeq vhas_chr2.16b, vdata2.16b, vrepchr.16b - addp vend1.16b, vhas_nul1.16b, vhas_nul2.16b // 256->128 - and vhas_chr1.16b, vhas_chr1.16b, vrepmask_c.16b - and vhas_chr2.16b, vhas_chr2.16b, vrepmask_c.16b - addp vhas_chr1.16b, vhas_chr1.16b, vhas_chr2.16b // 256->128 - addp vend1.16b, vend1.16b, vend1.16b // 128->64 - addp vhas_chr1.16b, vhas_chr1.16b, vhas_chr1.16b // 128->64 - mov nul_match, vend1.2d[0] - mov chr_match, vhas_chr1.2d[0] - cbz nul_match, .Lloop - - and vhas_nul1.16b, vhas_nul1.16b, vrepmask_0.16b - and vhas_nul2.16b, vhas_nul2.16b, vrepmask_0.16b - addp vhas_nul1.16b, vhas_nul1.16b, vhas_nul2.16b - addp vhas_nul1.16b, vhas_nul1.16b, vhas_nul1.16b - mov nul_match, vhas_nul1.2d[0] - -.Ltail: - /* Work out exactly where the string ends. */ - sub tmp4, nul_match, #1 - eor tmp4, tmp4, nul_match - ands chr_match, chr_match, tmp4 - /* And pick the values corresponding to the last match. */ - csel src_match, src, src_match, ne - csel src_offset, chr_match, src_offset, ne - - /* Count down from the top of the syndrome to find the last match. */ - clz tmp3, src_offset - /* Src_match points beyond the word containing the match, so we can - simply subtract half the bit-offset into the syndrome. Because - we are counting down, we need to go back one more character. */ - add tmp3, tmp3, #2 - sub result, src_match, tmp3, lsr #1 - /* But if the syndrome shows no match was found, then return NULL. */ - cmp src_offset, #0 - csel result, result, xzr, ne - - ret - - .size strrchr, . - strrchr -#endif diff --git a/lib/machine/aarch64/sys/fcntl.h b/lib/machine/aarch64/sys/fcntl.h deleted file mode 100644 index 7da1d46..0000000 --- a/lib/machine/aarch64/sys/fcntl.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef _SYS_FCNTL_H_ -#define _SYS_FCNTL_H_ - -#include - -/* We want to support O_BINARY for the open syscall. - For example, the Demon debug monitor has a separate - flag value for "rb" vs "r". */ -#define _FBINARY 0x10000 -#define O_BINARY _FBINARY - -#endif /* _SYS_FCNTL_H_ */ diff --git a/lib/machine/aarch64/sys/fenv.h b/lib/machine/aarch64/sys/fenv.h deleted file mode 100644 index 6b08792..0000000 --- a/lib/machine/aarch64/sys/fenv.h +++ /dev/null @@ -1,120 +0,0 @@ -/*- - * Copyright (c) 2004-2005 David Schultz - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _FENV_H_ -#define _FENV_H_ - -#include - -#ifndef __fenv_static -#define __fenv_static static -#endif - -typedef __uint64_t fenv_t; -typedef __uint64_t fexcept_t; - -/* Exception flags */ -#define FE_INVALID 0x00000001 -#define FE_DIVBYZERO 0x00000002 -#define FE_OVERFLOW 0x00000004 -#define FE_UNDERFLOW 0x00000008 -#define FE_INEXACT 0x00000010 -#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | \ - FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW) - -/* - * Rounding modes - * - * We can't just use the hardware bit values here, because that would - * make FE_UPWARD and FE_DOWNWARD negative, which is not allowed. - */ -#define FE_TONEAREST 0x0 -#define FE_UPWARD 0x1 -#define FE_DOWNWARD 0x2 -#define FE_TOWARDZERO 0x3 -#define _ROUND_MASK (FE_TONEAREST | FE_DOWNWARD | \ - FE_UPWARD | FE_TOWARDZERO) -#define _ROUND_SHIFT 22 - - - -/* Default floating-point environment */ -extern const fenv_t *_fe_dfl_env; -#define FE_DFL_ENV _fe_dfl_env - -/* We need to be able to map status flag positions to mask flag positions */ -#define _FPUSW_SHIFT 8 -#define _ENABLE_MASK (FE_ALL_EXCEPT << _FPUSW_SHIFT) - -#define __mrs_fpcr(__r) __asm __volatile("mrs %0, fpcr" : "=r" (__r)) -#define __msr_fpcr(__r) __asm __volatile("msr fpcr, %0" : : "r" (__r)) - -#define __mrs_fpsr(__r) __asm __volatile("mrs %0, fpsr" : "=r" (__r)) -#define __msr_fpsr(__r) __asm __volatile("msr fpsr, %0" : : "r" (__r)) - - -#if __BSD_VISIBLE - -/* We currently provide no external definitions of the functions below. */ - -static inline int -feenableexcept(int __mask) -{ - fenv_t __old_r, __new_r; - - __mrs_fpcr(__old_r); - __new_r = __old_r | ((__mask & FE_ALL_EXCEPT) << _FPUSW_SHIFT); - __msr_fpcr(__new_r); - return ((__old_r >> _FPUSW_SHIFT) & FE_ALL_EXCEPT); -} - -static inline int -fedisableexcept(int __mask) -{ - fenv_t __old_r, __new_r; - - __mrs_fpcr(__old_r); - __new_r = __old_r & ~((__mask & FE_ALL_EXCEPT) << _FPUSW_SHIFT); - __msr_fpcr(__new_r); - return ((__old_r >> _FPUSW_SHIFT) & FE_ALL_EXCEPT); -} - -static inline int -fegetexcept(void) -{ - fenv_t __r; - - __mrs_fpcr(__r); - return ((__r & _ENABLE_MASK) >> _FPUSW_SHIFT); -} - -#endif /* __BSD_VISIBLE */ - - - -#endif /* !_FENV_H_ */ diff --git a/lib/machine/amdgcn/Makefile.inc b/lib/machine/amdgcn/Makefile.inc deleted file mode 100644 index d26603a..0000000 --- a/lib/machine/amdgcn/Makefile.inc +++ /dev/null @@ -1,7 +0,0 @@ -libc_a_SOURCES += \ - %D%/abort.c \ - %D%/exit.c \ - %D%/atexit.c \ - %D%/mlock.c \ - %D%/getreent.c \ - %D%/signal.c diff --git a/lib/machine/amdgcn/abort.c b/lib/machine/amdgcn/abort.c deleted file mode 100644 index ca9a0a3..0000000 --- a/lib/machine/amdgcn/abort.c +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Support file for amdgcn in newlib. - * Copyright (c) 2014-2017 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include -#include -#include "exit-value.h" - -void __attribute__((noreturn)) -abort (void) -{ - write (2, "GCN Kernel Aborted\n", 19); - exit_with_status_and_signal (0, SIGABRT); -} diff --git a/lib/machine/amdgcn/atexit.c b/lib/machine/amdgcn/atexit.c deleted file mode 100644 index 6745714..0000000 --- a/lib/machine/amdgcn/atexit.c +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Support file for amdgcn in newlib. - * Copyright (c) 2014-2017 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include - -int -atexit (void (*function)(void)) -{ - /* Our current implementation of exit does not run functions registered with - atexit, so fail here. */ - abort (); - return 1; -} diff --git a/lib/machine/amdgcn/exit-value.h b/lib/machine/amdgcn/exit-value.h deleted file mode 100644 index 7aa2508..0000000 --- a/lib/machine/amdgcn/exit-value.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Support file for amdgcn in newlib. - * Copyright (c) 2017 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#ifndef _AMDGCN_EXIT_VALUE_H_ -#define _AMDGCN_EXIT_VALUE_H_ - -static inline void __attribute__((noreturn)) -exit_with_int (int val) -{ - /* Write the exit value to the conventional place. */ - int *return_value; -#if defined(__has_builtin) && __has_builtin(__builtin_gcn_kernarg_ptr) - asm ("s_load_dwordx2 %0, %1, 16 glc\n\t" - "s_waitcnt 0" - : "=Sg"(return_value) : "r"(__builtin_gcn_kernarg_ptr())); -#else - asm ("s_load_dwordx2 %0, s[8:9], 16 glc\n\t" - "s_waitcnt 0" : "=Sg"(return_value)); -#endif - *return_value = val; - - /* Terminate the current kernel. */ - asm ("s_dcache_wb"); - asm ("s_endpgm"); - __builtin_unreachable (); -} - -static inline void __attribute__((noreturn)) -exit_with_status_and_signal (int val, int signal) -{ - if (signal == 0) - val = val & 0xff; - else - { - val = (128 + signal) & 0xff; - signal = signal & 0xff; - } - - exit_with_int ((0xffff << 16) | (signal << 8) | val); -} - -#endif diff --git a/lib/machine/amdgcn/exit.c b/lib/machine/amdgcn/exit.c deleted file mode 100644 index bdd532e..0000000 --- a/lib/machine/amdgcn/exit.c +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Support file for amdgcn in newlib. - * Copyright (c) 2014-2017 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include -#include "exit-value.h" - -void __attribute__((noreturn)) -exit (int val) -{ - exit_with_status_and_signal (val, 0); -} diff --git a/lib/machine/amdgcn/getreent.c b/lib/machine/amdgcn/getreent.c deleted file mode 100644 index ef731f6..0000000 --- a/lib/machine/amdgcn/getreent.c +++ /dev/null @@ -1,100 +0,0 @@ -/* get thread-specific reentrant pointer */ - -#include -#include -#include -#include - -/* Copied from the HSA documentation. */ -typedef struct hsa_signal_s { - uint64_t handle; -} hsa_signal_t; -typedef struct hsa_kernel_dispatch_packet_s { - uint16_t header ; - uint16_t setup; - uint16_t workgroup_size_x ; - uint16_t workgroup_size_y ; - uint16_t workgroup_size_z; - uint16_t reserved0; - uint32_t grid_size_x ; - uint32_t grid_size_y ; - uint32_t grid_size_z; - uint32_t private_segment_size; - uint32_t group_segment_size; - uint64_t kernel_object; - uint64_t reserved2; - hsa_signal_t completion_signal; -} hsa_kernel_dispatch_packet_t; - -struct _reent * -__getreent (void) -{ - /* Place the reent data at the top of the stack allocation. */ - struct data { - int marker; - struct _reent reent; - } *data; - -#if defined(__has_builtin) \ - && __has_builtin(__builtin_gcn_get_stack_limit) \ - && __has_builtin(__builtin_gcn_first_call_this_thread_p) - unsigned long addr = (((unsigned long) __builtin_gcn_get_stack_limit() - - sizeof(struct data)) & ~7); - data = (struct data *)addr; - - register long sp asm("s16"); - - if (sp >= addr) - goto stackoverflow; - if (__builtin_gcn_first_call_this_thread_p()) - { - data->marker = 12345; - __builtin_memset (&data->reent, 0, sizeof(struct _reent)); - _REENT_INIT_PTR_ZEROED (&data->reent); - } - else if (data->marker != 12345) - goto stackoverflow; -#else - /* s[0:1] contains a 48-bit private segment base address. - s11 contains the offset to the base of the stack. - s[4:5] contains the dispatch pointer. - - WARNING: this code will break if s[0:1] is ever used for anything! */ - const register unsigned long buffer_descriptor asm("s0"); - unsigned long private_segment = buffer_descriptor & 0x0000ffffffffffff; - const register unsigned int stack_offset asm("s11"); - const register hsa_kernel_dispatch_packet_t *dispatch_ptr asm("s4"); - - unsigned long stack_base = private_segment + stack_offset; - unsigned long stack_end = stack_base + dispatch_ptr->private_segment_size * 64; - unsigned long addr = (stack_end - sizeof(struct data)) & ~7; - data = (struct data *)addr; - - register long sp asm("s16"); - if (sp >= addr) - goto stackoverflow; - - /* Stash a marker in the unused upper 16 bits of s[0:1] to indicate that - the reent data is initialized. */ - const register unsigned int s1 asm("s1"); - unsigned int marker = s1 >> 16; - if (marker != 12345) - { - asm("s_and_b32\ts1, s1, 0xffff"); - asm("s_or_b32\ts1, s1, (12345 << 16)"); - data->marker = 12345; - - __builtin_memset (&data->reent, 0, sizeof(struct _reent)); - _REENT_INIT_PTR_ZEROED (&data->reent); - } - else if (data->marker != 12345) - goto stackoverflow; -#endif - - return &data->reent; - -stackoverflow: - write (2, "GCN Stack Overflow!\n", 20); - abort (); -} - diff --git a/lib/machine/amdgcn/mlock.c b/lib/machine/amdgcn/mlock.c deleted file mode 100644 index fbc4944..0000000 --- a/lib/machine/amdgcn/mlock.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Support file for AMDGCN in newlib. - * Copyright (c) 2017 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include -#include -#include - -/* _sbrk_r expects us to use the real errno, not the reentrant one. */ -#include -#undef errno -extern int errno; - -/* The runtime passes in heap space like this. */ -struct heap { - int64_t size; - char data[0]; -}; - -static char *__heap_ptr = (char*)-1; -static char *__heap_end = (char*)-1; -static int __heap_lock = 0; -static void *__heap_lock_id = NULL; -static int __heap_lock_cnt = 0; - -void * -sbrk (ptrdiff_t nbytes) -{ - if (__heap_ptr == (char *)-1) - { - /* Find the heap from kernargs. */ - char *kernargs; -#if defined(__has_builtin) && __has_builtin(__builtin_gcn_kernarg_ptr) - kernargs = __builtin_gcn_kernarg_ptr (); -#else - /* The kernargs pointer is in s[8:9]. - This will break if the enable_sgpr_* flags are ever changed. */ - asm ("s_mov_b64 %0, s[8:9]" : "=Sg"(kernargs)); -#endif - - /* The heap data is at kernargs[3]. */ - struct heap *heap = *(struct heap **)(kernargs + 24); - - __heap_ptr = heap->data; - __heap_end = __heap_ptr + heap->size; - } - - if ((__heap_ptr + nbytes) >= __heap_end) - { - errno = ENOMEM; - return (void*)-1; - } - - char *base = __heap_ptr; - __heap_ptr += nbytes; - - return base; -} - -void -__malloc_lock (struct _reent *reent) -{ - void *id = reent; - - if (id == __heap_lock_id) - { - if (__heap_lock_cnt < 1) - abort (); - ++__heap_lock_cnt; - return; - } - - while (__sync_lock_test_and_set (&__heap_lock, 1)) - /* A sleep seems like it should allow the wavefront to yeild (maybe?) - Use the shortest possible sleep time of 1*64 cycles. */ - asm volatile ("s_sleep\t1" ::: "memory"); - - if (__heap_lock_id != NULL) - abort (); - if (__heap_lock_cnt != 0) - abort (); - - __heap_lock_cnt = 1; - __heap_lock_id = id; -} - -void -__malloc_unlock (struct _reent *reent) -{ - void *id = reent; - - if (id != __heap_lock_id) - abort (); - if (__heap_lock_cnt < 1) - abort (); - - --__heap_lock_cnt; - - if (__heap_lock_cnt > 0) - return; - - __heap_lock_id = NULL; - __sync_lock_release (&__heap_lock); -} diff --git a/lib/machine/amdgcn/signal.c b/lib/machine/amdgcn/signal.c deleted file mode 100644 index 033d8e5..0000000 --- a/lib/machine/amdgcn/signal.c +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include - -_sig_func_ptr -signal (int sig, - _sig_func_ptr func) -{ - errno = EINVAL; - return NULL; -} diff --git a/lib/machine/arc/Makefile.inc b/lib/machine/arc/Makefile.inc deleted file mode 100644 index c0d6d7b..0000000 --- a/lib/machine/arc/Makefile.inc +++ /dev/null @@ -1,31 +0,0 @@ -libc_a_SOURCES += \ - %D%/memcmp.S \ - %D%/memcmp-bs-norm.S \ - %D%/memcmp-stub.c \ - %D%/memcpy.S \ - %D%/memcpy-archs.S \ - %D%/memcpy-bs.S \ - %D%/memcpy-stub.c \ - %D%/memset.S \ - %D%/memset-archs.S \ - %D%/memset-bs.S \ - %D%/memset-stub.c \ - %D%/setjmp.S \ - %D%/strchr.S \ - %D%/strchr-bs.S \ - %D%/strchr-bs-norm.S \ - %D%/strchr-stub.c \ - %D%/strcmp.S \ - %D%/strcmp-archs.S \ - %D%/strcmp-stub.c \ - %D%/strcpy.S \ - %D%/strcpy-bs.S \ - %D%/strcpy-bs-arc600.S \ - %D%/strcpy-stub.c \ - %D%/strlen.S \ - %D%/strlen-bs.S \ - %D%/strlen-bs-norm.S \ - %D%/strlen-stub.c \ - %D%/strncpy.S \ - %D%/strncpy-stub.c \ - %D%/strncpy-bs.S diff --git a/lib/machine/arc/asm.h b/lib/machine/arc/asm.h deleted file mode 100644 index 663197c..0000000 --- a/lib/machine/arc/asm.h +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef ARC_NEWLIB_ASM_H -#define ARC_NEWLIB_ASM_H - -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - - -#define _ENTRY(name) \ - .text ` .balign 4 ` .globl name ` name: -#define FUNC(name) .type name,@function -#define ENDFUNC0(name) .Lfe_##name: .size name,.Lfe_##name-name -#define ENDFUNC(name) ENDFUNC0 (name) -#define ENTRY(name) _ENTRY (name) ` FUNC (name) - -#define add_l add -#define bcc_l bcc -#define bclr_l bclr -#define beq_l beq -#define bic_l bic -#define b_l b -#define bne_l bne -#define breq_l breq -#define brne_l brne -#define j_l j -#define ldb_l ldb -#define ld_l ld -#define mov_l mov -#define or_l or -#define st_l st -#define stb_l stb -#define sub_l sub -#define tst_l tst -#define extb_l extb - -#define bcc_s bhs_s - -/* Compatibility with older ARC GCC, that doesn't provide some of the - preprocessor defines used by newlib for ARC. */ -#if defined (__Xbarrel_shifter) && !defined (__ARC_BARREL_SHIFTER__) -#define __ARC_BARREL_SHIFTER__ 1 -#endif - -#if defined (__EM__) && !defined (__ARCEM__) -#define __ARCEM__ 1 -#endif - -#if defined (__HS__) && !defined (__ARCHS__) -#define __ARCHS__ 1 -#endif - -#if defined (__LL64__) && !defined (__ARC_LL64__) -#define __ARC_LL64__ 1 -#endif - -#endif /* ARC_NEWLIB_ASM_H */ diff --git a/lib/machine/arc/memcmp-bs-norm.S b/lib/machine/arc/memcmp-bs-norm.S deleted file mode 100644 index be2464a..0000000 --- a/lib/machine/arc/memcmp-bs-norm.S +++ /dev/null @@ -1,225 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/memcmp.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -#if !defined (__ARC601__) && defined (__ARC_NORM__) \ - && defined (__ARC_BARREL_SHIFTER__) - -#ifdef __LITTLE_ENDIAN__ -#define WORD2 r2 -#define SHIFT r3 -#else /* BIG ENDIAN */ -#define WORD2 r3 -#define SHIFT r2 -#endif - -ENTRY (memcmp) - or r12,r0,r1 - asl_s r12,r12,30 -#if defined (__ARC700__) || defined (__ARCEM__) || defined (__ARCHS__) - sub_l r3,r2,1 - brls r2,r12,.Lbytewise -#else - brls.d r2,r12,.Lbytewise - sub_s r3,r2,1 -#endif - ld r4,[r0,0] - ld r5,[r1,0] - lsr.f lp_count,r3,3 -#ifdef __ARCEM__ - /* A branch can't be the last instruction in a zero overhead loop. - So we move the branch to the start of the loop, duplicate it - after the end, and set up r12 so that the branch isn't taken - initially. */ - mov_s r12,WORD2 - lpne .Loop_end - brne WORD2,r12,.Lodd - ld WORD2,[r0,4] -#else - lpne .Loop_end - ld_s WORD2,[r0,4] -#endif - ld_s r12,[r1,4] - brne r4,r5,.Leven - ld.a r4,[r0,8] - ld.a r5,[r1,8] -#ifdef __ARCEM__ -.Loop_end: - brne WORD2,r12,.Lodd -#else - brne WORD2,r12,.Lodd -#ifdef __ARCHS__ - nop -#endif -.Loop_end: -#endif - asl_s SHIFT,SHIFT,3 - bcc_s .Last_cmp - brne r4,r5,.Leven - ld r4,[r0,4] - ld r5,[r1,4] -#ifdef __LITTLE_ENDIAN__ -#if defined (__ARC700__) || defined (__ARCEM__) || defined (__ARCHS__) - nop_s - ; one more load latency cycle -.Last_cmp: - xor r0,r4,r5 - bset r0,r0,SHIFT - sub_s r1,r0,1 - bic_s r1,r1,r0 - norm r1,r1 - b.d .Leven_cmp - and r1,r1,24 -.Leven: - xor r0,r4,r5 - sub_s r1,r0,1 - bic_s r1,r1,r0 - norm r1,r1 - ; slow track insn - and r1,r1,24 -.Leven_cmp: - asl r2,r4,r1 - asl r12,r5,r1 - lsr_s r2,r2,1 - lsr_s r12,r12,1 - j_s.d [blink] - sub r0,r2,r12 - .balign 4 -.Lodd: - xor r0,WORD2,r12 - sub_s r1,r0,1 - bic_s r1,r1,r0 - norm r1,r1 - ; slow track insn - and r1,r1,24 - asl_s r2,r2,r1 - asl_s r12,r12,r1 - lsr_s r2,r2,1 - lsr_s r12,r12,1 - j_s.d [blink] - sub r0,r2,r12 -#else /* !__ARC700__ */ - .balign 4 -.Last_cmp: - xor r0,r4,r5 - b.d .Leven_cmp - bset r0,r0,SHIFT -.Lodd: - mov_s r4,WORD2 - mov_s r5,r12 -.Leven: - xor r0,r4,r5 -.Leven_cmp: - mov_s r1,0x80808080 - ; uses long immediate - sub_s r12,r0,1 - bic_s r0,r0,r12 - sub r0,r1,r0 - xor_s r0,r0,r1 - and r1,r5,r0 - and r0,r4,r0 - xor.f 0,r0,r1 - sub_s r0,r0,r1 - j_s.d [blink] - mov.mi r0,r1 -#endif /* !__ARC700__ */ -#else /* BIG ENDIAN */ -.Last_cmp: - neg_s SHIFT,SHIFT - lsr r4,r4,SHIFT - lsr r5,r5,SHIFT - ; slow track insn -.Leven: - sub.f r0,r4,r5 - mov.ne r0,1 - j_s.d [blink] - bset.cs r0,r0,31 -.Lodd: - cmp_s WORD2,r12 -#if defined (__ARC700__) || defined (__ARCEM__) || defined (__ARCHS__) - mov_s r0,1 - j_s.d [blink] - bset.cs r0,r0,31 -#else - j_s.d [blink] - rrc r0,2 -#endif /* __ARC700__ || __ARCEM__ || __ARCHS__ */ -#endif /* ENDIAN */ - .balign 4 -.Lbytewise: - breq r2,0,.Lnil - ldb r4,[r0,0] - ldb r5,[r1,0] - lsr.f lp_count,r3 -#ifdef __ARCEM__ - mov r12,r3 - lpne .Lbyte_end - brne r3,r12,.Lbyte_odd -#else - lpne .Lbyte_end -#endif - ldb_s r3,[r0,1] - ldb_l r12,[r1,1] - brne r4,r5,.Lbyte_even - ldb.a r4,[r0,2] - ldb.a r5,[r1,2] -#ifdef __ARCEM__ -.Lbyte_end: - brne r3,r12,.Lbyte_odd -#else - brne r3,r12,.Lbyte_odd -#ifdef __ARCHS__ - nop -#endif -.Lbyte_end: -#endif - bcc_l .Lbyte_even - brne r4,r5,.Lbyte_even - ldb_s r3,[r0,1] - ldb_s r12,[r1,1] -.Lbyte_odd: - j_s.d [blink] - sub r0,r3,r12 -.Lbyte_even: - j_s.d [blink] - sub r0,r4,r5 -.Lnil: - j_s.d [blink] - mov_l r0,0 -ENDFUNC (memcmp) -#endif /* !__ARC601__ && __ARC_NORM__ && __ARC_BARREL_SHIFTER__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/memcmp-stub.c b/lib/machine/arc/memcmp-stub.c deleted file mode 100644 index 30c7884..0000000 --- a/lib/machine/arc/memcmp-stub.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - - -#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) -# include "../../string/memcmp.c" -#else -/* See memcmp-*.S. */ -#endif diff --git a/lib/machine/arc/memcmp.S b/lib/machine/arc/memcmp.S deleted file mode 100644 index 7c5a058..0000000 --- a/lib/machine/arc/memcmp.S +++ /dev/null @@ -1,154 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/memcmp.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -#if defined (__ARC601__) || !defined (__ARC_NORM__) \ - || !defined (__ARC_BARREL_SHIFTER__) - -/* Addresses are unsigned, and at 0 is the vector table, so it's OK to assume - that we can subtract 8 from a source end address without underflow. */ - -ENTRY (memcmp) - or r12,r0,r1 - tst r12,3 - breq r2,0,.Lnil - add_s r3,r0,r2 - -/* This algorithm for big endian targets sometimes works incorrectly - when sources are aligned. To be precise the last step is omitted. - Just use a simple bytewise variant until the algorithm is reviewed - and fixed. */ - -#ifdef __LITTLE_ENDIAN__ - bne_s .Lbytewise -#else /* BIG ENDIAN */ - b_s .Lbytewise -#endif /* ENDIAN */ - sub r6,r3,8 - ld r4,[r0,0] - ld r5,[r1,0] -2: - brhs r0,r6,.Loop_end - ld_s r3,[r0,4] - ld_s r12,[r1,4] - brne r4,r5,.Leven - ld.a r4,[r0,8] - breq.d r3,r12,2b - ld.a r5,[r1,8] -#ifdef __LITTLE_ENDIAN__ - mov_s r4,r3 - b.d .Lodd - mov_s r5,r12 -#else /* BIG ENDIAN */ - cmp_s r3,r12 - j_s.d [blink] - rrc r0,2 -#endif /* ENDIAN */ - - .balign 4 -.Loop_end: - sub r3,r0,r6 - brhs r3,4,.Last_cmp - brne r4,r5,.Leven - ld r4,[r0,4] - ld r5,[r1,4] -#ifdef __LITTLE_ENDIAN__ - .balign 4 -.Last_cmp: - mov_l r0,24 - add3 r2,r0,r2 - xor r0,r4,r5 - b.d .Leven_cmp - bset r0,r0,r2 -.Lodd: -.Leven: - xor r0,r4,r5 -.Leven_cmp: - mov_s r1,0x80808080 - ; uses long immediate - sub_s r12,r0,1 - bic_s r0,r0,r12 - sub r0,r1,r0 - xor_s r0,r0,r1 - and r1,r5,r0 - and r0,r4,r0 -#else /* BIG ENDIAN */ -.Last_cmp: - mov_s r3,0 - sub3 r2,r3,r2 - sub_s r3,r3,1 - bclr r3,r3,r2 - add_l r3,r3,1 - and r0,r4,r3 - and r1,r5,r3 -.Leven: -#endif /* ENDIAN */ - xor.f 0,r0,r1 - sub_s r0,r0,r1 - j_s.d [blink] - mov.mi r0,r1 - .balign 4 -.Lbytewise: - ldb r4,[r0,0] - ldb r5,[r1,0] - sub r6,r3,2 -3: - brhs r0,r6,.Lbyte_end - ldb_s r3,[r0,1] - ldb_s r12,[r1,1] - brne r4,r5,.Lbyte_even - ldb.a r4,[r0,2] - breq.d r3,r12,3b - ldb.a r5,[r1,2] -.Lbyte_odd: - j_s.d [blink] - sub r0,r3,r12 - .balign 4 -.Lbyte_end: - bbit1 r2,0,.Lbyte_even - brne r4,r5,.Lbyte_even - ldb r4,[r0,1] - ldb r5,[r1,1] -.Lbyte_even: - j_s.d [blink] - sub r0,r4,r5 -.Lnil: - j_s.d [blink] - mov_s r0,0 -ENDFUNC (memcmp) -#endif /* __ARC601__ || !__ARC_NORM__ || !__ARC_BARREL_SHIFTER__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/memcpy-archs.S b/lib/machine/arc/memcpy-archs.S deleted file mode 100644 index 84e766a..0000000 --- a/lib/machine/arc/memcpy-archs.S +++ /dev/null @@ -1,327 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/memcpy.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -#if defined (__ARCHS__) - -#ifdef __LITTLE_ENDIAN__ -# define SHIFT_1(RX,RY,IMM) asl RX, RY, IMM ; << -# define SHIFT_2(RX,RY,IMM) lsr RX, RY, IMM ; >> -# define MERGE_1(RX,RY,IMM) asl RX, RY, IMM -# define MERGE_2(RX,RY,IMM) -# define EXTRACT_1(RX,RY,IMM) and RX, RY, 0xFFFF -# define EXTRACT_2(RX,RY,IMM) lsr RX, RY, IMM -#else -# define SHIFT_1(RX,RY,IMM) lsr RX, RY, IMM ; >> -# define SHIFT_2(RX,RY,IMM) asl RX, RY, IMM ; << -# define MERGE_1(RX,RY,IMM) asl RX, RY, IMM ; << -# define MERGE_2(RX,RY,IMM) asl RX, RY, IMM ; << -# define EXTRACT_1(RX,RY,IMM) lsr RX, RY, IMM -# define EXTRACT_2(RX,RY,IMM) lsr RX, RY, 0x08 -#endif - -#ifdef __ARC_LL64__ -# define PREFETCH_READ(RX) prefetch [RX, 56] -# define PREFETCH_WRITE(RX) prefetchw [RX, 64] -# define LOADX(DST,RX) ldd.ab DST, [RX, 8] -# define STOREX(SRC,RX) std.ab SRC, [RX, 8] -# define ZOLSHFT 5 -# define ZOLAND 0x1F -#else -# define PREFETCH_READ(RX) prefetch [RX, 28] -# define PREFETCH_WRITE(RX) prefetchw [RX, 32] -# define LOADX(DST,RX) ld.ab DST, [RX, 4] -# define STOREX(SRC,RX) st.ab SRC, [RX, 4] -# define ZOLSHFT 4 -# define ZOLAND 0xF -#endif - -#ifdef __ARC_ALIGNED_ACCESS__ -ENTRY (memcpy) - prefetch [r1] ; Prefetch the read location - prefetchw [r0] ; Prefetch the write location - mov.f 0, r2 -; if size is zero - jz.d [blink] - mov r3, r0 ; don't clobber ret val - -; if size <= 8 - cmp r2, 8 - bls.d @.Lsmallchunk - mov.f lp_count, r2 - - and.f r4, r0, 0x03 - rsub lp_count, r4, 4 - lpnz @.Laligndestination - ; LOOP BEGIN - ldb.ab r5, [r1,1] - sub r2, r2, 1 - stb.ab r5, [r3,1] -.Laligndestination: - -; Check the alignment of the source - and.f r4, r1, 0x03 - bnz.d @.Lsourceunaligned - -; CASE 0: Both source and destination are 32bit aligned -; Convert len to Dwords, unfold x4 - lsr.f lp_count, r2, ZOLSHFT - lpnz @.Lcopy32_64bytes - ; LOOP START - LOADX (r6, r1) - PREFETCH_READ (r1) - PREFETCH_WRITE (r3) - LOADX (r8, r1) - LOADX (r10, r1) - LOADX (r4, r1) - STOREX (r6, r3) - STOREX (r8, r3) - STOREX (r10, r3) - STOREX (r4, r3) -.Lcopy32_64bytes: - - and.f lp_count, r2, ZOLAND ;Last remaining 31 bytes -.Lsmallchunk: - lpnz @.Lcopyremainingbytes - ; LOOP START - ldb.ab r5, [r1,1] - stb.ab r5, [r3,1] -.Lcopyremainingbytes: - - j [blink] -; END CASE 0 - -.Lsourceunaligned: - cmp r4, 2 - beq.d @.LunalignedOffby2 - sub r2, r2, 1 - - bhi.d @.LunalignedOffby3 - ldb.ab r5, [r1, 1] - -; CASE 1: The source is unaligned, off by 1 - ; Hence I need to read 1 byte for a 16bit alignment - ; and 2bytes to reach 32bit alignment - ldh.ab r6, [r1, 2] - sub r2, r2, 2 - ; Convert to words, unfold x2 - lsr.f lp_count, r2, 3 - MERGE_1 (r6, r6, 8) - MERGE_2 (r5, r5, 24) - or r5, r5, r6 - - ; Both src and dst are aligned - lpnz @.Lcopy8bytes_1 - ; LOOP START - ld.ab r6, [r1, 4] - prefetch [r1, 28] ;Prefetch the next read location - ld.ab r8, [r1,4] - prefetchw [r3, 32] ;Prefetch the next write location - - SHIFT_1 (r7, r6, 24) - or r7, r7, r5 - SHIFT_2 (r5, r6, 8) - - SHIFT_1 (r9, r8, 24) - or r9, r9, r5 - SHIFT_2 (r5, r8, 8) - - st.ab r7, [r3, 4] - st.ab r9, [r3, 4] -.Lcopy8bytes_1: - - ; Write back the remaining 16bits - EXTRACT_1 (r6, r5, 16) - sth.ab r6, [r3, 2] - ; Write back the remaining 8bits - EXTRACT_2 (r5, r5, 16) - stb.ab r5, [r3, 1] - - and.f lp_count, r2, 0x07 ;Last 8bytes - lpnz @.Lcopybytewise_1 - ; LOOP START - ldb.ab r6, [r1,1] - stb.ab r6, [r3,1] -.Lcopybytewise_1: - j [blink] - -.LunalignedOffby2: -; CASE 2: The source is unaligned, off by 2 - ldh.ab r5, [r1, 2] - sub r2, r2, 1 - - ; Both src and dst are aligned - ; Convert to words, unfold x2 - lsr.f lp_count, r2, 3 -#ifdef __BIG_ENDIAN__ - asl.nz r5, r5, 16 -#endif - lpnz @.Lcopy8bytes_2 - ; LOOP START - ld.ab r6, [r1, 4] - prefetch [r1, 28] ;Prefetch the next read location - ld.ab r8, [r1,4] - prefetchw [r3, 32] ;Prefetch the next write location - - SHIFT_1 (r7, r6, 16) - or r7, r7, r5 - SHIFT_2 (r5, r6, 16) - - SHIFT_1 (r9, r8, 16) - or r9, r9, r5 - SHIFT_2 (r5, r8, 16) - - st.ab r7, [r3, 4] - st.ab r9, [r3, 4] -.Lcopy8bytes_2: - -#ifdef __BIG_ENDIAN__ - lsr.nz r5, r5, 16 -#endif - sth.ab r5, [r3, 2] - - and.f lp_count, r2, 0x07 ;Last 8bytes - lpnz @.Lcopybytewise_2 - ; LOOP START - ldb.ab r6, [r1,1] - stb.ab r6, [r3,1] -.Lcopybytewise_2: - j [blink] - -.LunalignedOffby3: -; CASE 3: The source is unaligned, off by 3 -; Hence, I need to read 1byte for achieve the 32bit alignment - - ; Both src and dst are aligned - ; Convert to words, unfold x2 - lsr.f lp_count, r2, 3 -#ifdef __BIG_ENDIAN__ - asl.ne r5, r5, 24 -#endif - lpnz @.Lcopy8bytes_3 - ; LOOP START - ld.ab r6, [r1, 4] - prefetch [r1, 28] ;Prefetch the next read location - ld.ab r8, [r1,4] - prefetchw [r3, 32] ;Prefetch the next write location - - SHIFT_1 (r7, r6, 8) - or r7, r7, r5 - SHIFT_2 (r5, r6, 24) - - SHIFT_1 (r9, r8, 8) - or r9, r9, r5 - SHIFT_2 (r5, r8, 24) - - st.ab r7, [r3, 4] - st.ab r9, [r3, 4] -.Lcopy8bytes_3: - -#ifdef __BIG_ENDIAN__ - lsr.nz r5, r5, 24 -#endif - stb.ab r5, [r3, 1] - - and.f lp_count, r2, 0x07 ;Last 8bytes - lpnz @.Lcopybytewise_3 - ; LOOP START - ldb.ab r6, [r1,1] - stb.ab r6, [r3,1] -.Lcopybytewise_3: - j [blink] - -ENDFUNC (memcpy) - -#else - -ENTRY(memcpy) - prefetch [r1] ; Prefetch the read location - prefetchw [r0] ; Prefetch the write location - mov.f 0, r2 -;;; if size is zero - jz.d [blink] - mov r3, r0 ; don't clobber ret val - -;;; if size <= 8 - cmp r2, 8 - bls.d @.Lsmallchunk - mov.f lp_count, r2 - -;;; Convert len to Dwords, unfold x4 - lsr.f lp_count, r2, ZOLSHFT - lpnz @.Lcopyfast - ;; LOOP START - LOADX (r6, r1) - PREFETCH_READ (r1) - PREFETCH_WRITE (r3) - LOADX (r8, r1) - LOADX (r10, r1) - LOADX (r4, r1) - STOREX (r6, r3) - STOREX (r8, r3) - STOREX (r10, r3) - STOREX (r4, r3) -.Lcopyfast: - -#ifdef __ARC_LL64__ - and r2, r2, ZOLAND ;Remaining 31 bytes - lsr.f lp_count, r2, 3 ;Convert to 64-bit words. - lpnz @.Lcopy64b - ;; LOOP START - ldd.ab r6,[r1,8] - std.ab r6,[r3,8] -.Lcopy64b: - - and.f lp_count, r2, 0x07 ; Last 7 bytes -#else - and.f lp_count, r2, ZOLAND -#endif - -.Lsmallchunk: - lpnz @.Lcopyremainingbytes - ;; LOOP START - ldb.ab r5, [r1,1] - stb.ab r5, [r3,1] -.Lcopyremainingbytes: - - j [blink] - -ENDFUNC(memcpy) -#endif - -#endif /* __ARCHS__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/memcpy-bs.S b/lib/machine/arc/memcpy-bs.S deleted file mode 100644 index 5a224eb..0000000 --- a/lib/machine/arc/memcpy-bs.S +++ /dev/null @@ -1,105 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/memcpy.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -#if !defined (__ARC601__) && !defined (__ARCHS__) \ - && defined (__ARC_BARREL_SHIFTER__) - -/* Mostly optimized for ARC700, but not bad for ARC600 either. */ -/* This memcpy implementation does not support objects of 1GB or larger - - the check for alignment does not work then. */ -/* We assume that most sources and destinations are aligned, and - that also lengths are mostly a multiple of four, although to a lesser - extent. */ -ENTRY (memcpy) - or r3,r0,r1 - asl_s r3,r3,30 - mov_s r5,r0 - brls.d r2,r3,.Lcopy_bytewise - sub.f r3,r2,1 - ld_s r12,[r1,0] - asr.f lp_count,r3,3 - bbit0.d r3,2,.Lnox4 - bmsk_s r2,r2,1 - st.ab r12,[r5,4] - ld.a r12,[r1,4] -.Lnox4: - lppnz .Lendloop - ld_s r3,[r1,4] - st.ab r12,[r5,4] - ld.a r12,[r1,8] - st.ab r3,[r5,4] -.Lendloop: - breq_l r2,0,.Last_store - ld r3,[r5,0] -#ifdef __LITTLE_ENDIAN__ - add3 r2,-1,r2 - ; uses long immediate - xor_s r12,r12,r3 - bmsk r12,r12,r2 - xor_s r12,r12,r3 -#else /* BIG ENDIAN */ - sub3 r2,31,r2 - ; uses long immediate - xor_s r3,r3,r12 - bmsk r3,r3,r2 - xor_s r12,r12,r3 -#endif /* ENDIAN */ -.Last_store: - j_s.d [blink] - st r12,[r5,0] - - .balign 4 -.Lcopy_bytewise: - jcs [blink] - ldb_s r12,[r1,0] - lsr.f lp_count,r3 - bcc_s .Lnox1 - stb.ab r12,[r5,1] - ldb.a r12,[r1,1] -.Lnox1: - lppnz .Lendbloop - ldb_s r3,[r1,1] - stb.ab r12,[r5,1] - ldb.a r12,[r1,2] - stb.ab r3,[r5,1] -.Lendbloop: - j_s.d [blink] - stb r12,[r5,0] -ENDFUNC (memcpy) -#endif /* !__ARC601__ && !__ARCHS__ && __ARC_BARREL_SHIFTER__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/memcpy-stub.c b/lib/machine/arc/memcpy-stub.c deleted file mode 100644 index cc46c2d..0000000 --- a/lib/machine/arc/memcpy-stub.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - - -#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) -# include "../../string/memcpy.c" -#else -/* See memcpy-*.S. */ -#endif diff --git a/lib/machine/arc/memcpy.S b/lib/machine/arc/memcpy.S deleted file mode 100644 index 6452f97..0000000 --- a/lib/machine/arc/memcpy.S +++ /dev/null @@ -1,111 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/memcpy.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -#if defined (__ARC601__) || \ - (!defined (__ARC_BARREL_SHIFTER__) && !defined (__ARCHS__)) - -/* Adapted from memcpy-bs.S. */ -/* We assume that most sources and destinations are aligned, and - that also lengths are mostly a multiple of four, although to a lesser - extent. */ -ENTRY (memcpy) - or r3,r0,r1 - bmsk.f 0,r3,1 - breq_s r2,0,.Lnil - mov_s r5,r0 - bne.d .Lcopy_bytewise - add r6,r0,r2 - sub_s r3,r2,1 - ld_s r12,[r1,0] - bbit0.d r3,2,.Lnox4 - sub r6,r6,8 - st.ab r12,[r5,4] - ld.a r12,[r1,4] -.Lnox4: - brlo r2,9,.Lendloop -.Lnox4a: - ld_s r3,[r1,4] - st.ab r12,[r5,8] - ld.a r12,[r1,8] - brlo.d r5,r6,.Lnox4a - st r3,[r5,-4] -.Lendloop: -#ifdef __LITTLE_ENDIAN__ - ld r3,[r5,0] - add3 r2,-1,r2 - ; uses long immediate - xor_s r12,r12,r3 - bmsk r12,r12,r2 - xor_s r12,r12,r3 -#else /* BIG ENDIAN */ - bmsk_s r2,r2,1 - breq_s r2,0,.Last_store - ld r3,[r5,0] - sub3 r2,31,r2 - ; uses long immediate - xor_s r3,r3,r12 - bmsk r3,r3,r2 - xor_s r12,r12,r3 -#endif /* ENDIAN */ -.Last_store: - j_s.d [blink] - st r12,[r5,0] - -.Lnil: - j_s [blink] - .balign 4 -.Lcopy_bytewise: - ldb_s r12,[r1,0] - bbit1.d r2,0,.Lnox1 - sub r6,r6,2 - stb.ab r12,[r5,1] - ldb.a r12,[r1,1] -.Lnox1: - brlo r2,3,.Lendbloop -.Lnox1a: - ldb_s r3,[r1,1] - stb.ab r12,[r5,2] - ldb.a r12,[r1,2] - brlo.d r5,r6,.Lnox1a - stb r3,[r5,-1] -.Lendbloop: - j_s.d [blink] - stb r12,[r5,0] -ENDFUNC (memcpy) -#endif /* __ARC601__ || (!__ARC_BARREL_SHIFTER__ && !__ARCHS__) */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/memset-archs.S b/lib/machine/arc/memset-archs.S deleted file mode 100644 index dc912aa..0000000 --- a/lib/machine/arc/memset-archs.S +++ /dev/null @@ -1,148 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/memset.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -#ifdef __ARCHS__ - -#define USE_PREFETCH - -#ifdef USE_PREFETCH -#define PREWRITE(A,B) prefetchw [(A),(B)] -#else -#define PREWRITE(A,B) prealloc [(A),(B)] -#endif - -ENTRY (memset) - prefetchw [r0] ; Prefetch the write location - mov.f 0, r2 -; if size is zero - jz.d [blink] - mov r3, r0 ; don't clobber ret val - -; if length < 8 - brls.d.nt r2, 8, .Lsmallchunk - mov.f lp_count,r2 - - and.f r4, r0, 0x03 - rsub lp_count, r4, 4 - lpnz @.Laligndestination - ; LOOP BEGIN - stb.ab r1, [r3,1] - sub r2, r2, 1 -.Laligndestination: - -; Destination is aligned - and r1, r1, 0xFF - asl r4, r1, 8 - or r4, r4, r1 - asl r5, r4, 16 - or r5, r5, r4 - mov r4, r5 - - sub3 lp_count, r2, 8 - cmp r2, 64 - bmsk.hi r2, r2, 5 - mov.ls lp_count, 0 - add3.hi r2, r2, 8 - -; Convert len to Dwords, unfold x8 - lsr.f lp_count, lp_count, 6 - lpnz @.Lset64bytes - ; LOOP START - PREWRITE (r3, 64) ;Prefetch the next write location -#ifdef __ARC_LL64__ - std.ab r4, [r3, 8] - std.ab r4, [r3, 8] - std.ab r4, [r3, 8] - std.ab r4, [r3, 8] - std.ab r4, [r3, 8] - std.ab r4, [r3, 8] - std.ab r4, [r3, 8] - std.ab r4, [r3, 8] -#else - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] -#endif -.Lset64bytes: - - lsr.f lp_count, r2, 5 ;Last remaining max 124 bytes - lpnz .Lset32bytes - ; LOOP START - prefetchw [r3, 32] ;Prefetch the next write location -#ifdef __ARC_LL64__ - std.ab r4, [r3, 8] - std.ab r4, [r3, 8] - std.ab r4, [r3, 8] - std.ab r4, [r3, 8] -#else - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] - st.ab r4, [r3, 4] -#endif -.Lset32bytes: - - and.f lp_count, r2, 0x1F ;Last remaining 31 bytes -.Lsmallchunk: - lpnz .Lcopy3bytes - ; LOOP START - stb.ab r1, [r3, 1] -.Lcopy3bytes: - - j [blink] - -ENDFUNC (memset) -#endif /* __ARCHS__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/memset-bs.S b/lib/machine/arc/memset-bs.S deleted file mode 100644 index 0206668..0000000 --- a/lib/machine/arc/memset-bs.S +++ /dev/null @@ -1,154 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/memset.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -/* ARC HS has it's own implementation of memset, yet we want this function - still to be compiled under "__dummy_memset" disguise, because strncpy - function uses __strncpy_bzero as a second entry point into memset. Would be - better to add __strncpy_bzero label to memset for ARC HS though, and even - better would be to avoid a second entry point into function. ARC HS always - has barrel-shifter, so this implementation will be always used for this - purpose. */ -#if !defined (__ARC601__) && defined (__ARC_BARREL_SHIFTER__) - -/* To deal with alignment/loop issues, SMALL must be at least 2. */ -#define SMALL 7 - - .global __strncpy_bzero - .hidden __strncpy_bzero -/* __strncpy_bzero provides the following interface to strncpy: - r0: return value - r2: zeroing length - r3: zeroing start address - No attempt is made here for __strncpy_memset to speed up aligned - cases, because the copying of a string presumably leaves start address - and length alignment for the zeroing randomly distributed. */ - -#ifdef __ARCHS__ -ENTRY (__dummy_memset) -#else -ENTRY (memset) -#endif -#if !defined (__ARC700__) && !defined (__ARCEM__) -#undef SMALL -#define SMALL 8 /* Even faster if aligned. */ - brls.d r2,SMALL,.Ltiny -#endif - mov_s r3,r0 - or r12,r0,r2 - bmsk.f r12,r12,1 - extb_s r1,r1 - asl r12,r1,8 - beq.d .Laligned - or_s r1,r1,r12 -#if defined (__ARC700__) || defined (__ARCEM__) - brls r2,SMALL,.Ltiny -#endif -.Lnot_tiny: - add_s r12,r2,r0 - stb r1,[r12,-1] - bclr_l r12,r12,0 - stw r1,[r12,-2] - bmsk.f r12,r3,1 - add_s r2,r2,r12 - sub.ne r2,r2,4 - stb.ab r1,[r3,1] - bclr_s r3,r3,0 - stw.ab r1,[r3,2] - bclr_s r3,r3,1 -.Laligned: ; This code address should be aligned for speed. -#if defined (__ARC700__) || defined (__ARCEM__) - asl r12,r1,16 - lsr.f lp_count,r2,2 - or_s r1,r1,r12 - lpne .Loop_end - st.ab r1,[r3,4] -.Loop_end: - j_s [blink] -#else /* !__ARC700 */ - lsr.f lp_count,r2,3 - asl r12,r1,16 - or_s r1,r1,r12 - lpne .Loop_end - st.ab r1,[r3,4] - st.ab r1,[r3,4] -.Loop_end: - jcc [blink] - j_s.d [blink] - st_s r1,[r3] -#endif /* !__ARC700 */ - -#if defined (__ARC700__) || defined (__ARCEM__) - .balign 4 -__strncpy_bzero: - brhi.d r2,17,.Lnot_tiny - mov_l r1,0 -.Ltiny: - mov.f lp_count,r2 - lpne .Ltiny_end - stb.ab r1,[r3,1] -.Ltiny_end: - j_s [blink] -#else /* !__ARC700__ */ -#if SMALL > 8 -FIXME -#endif - .balign 4 -__strncpy_bzero: - brhi.d r2,8,.Lnot_tiny - mov_s r1,0 -.Ltiny: - sub_s r2,r2,11 - sub1 r12,pcl,r2 - j_s [r12] - stb_s r1,[r3,7] - stb_s r1,[r3,6] - stb_s r1,[r3,5] - stb_s r1,[r3,4] - stb_s r1,[r3,3] - stb_s r1,[r3,2] - stb_s r1,[r3,1] - stb_s r1,[r3] - j_s [blink] -#endif /* !__ARC700 */ -#ifdef __ARCHS__ -ENDFUNC (__dummy_memset) -#else -ENDFUNC (memset) -#endif -#endif /* !__ARC601__ && __ARC_BARREL_SHIFTER__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/memset-stub.c b/lib/machine/arc/memset-stub.c deleted file mode 100644 index 981ca1f..0000000 --- a/lib/machine/arc/memset-stub.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - - -#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) -# include "../../string/memset.c" -#else -/* See memset-*.S. */ -#endif diff --git a/lib/machine/arc/memset.S b/lib/machine/arc/memset.S deleted file mode 100644 index 126d9ff..0000000 --- a/lib/machine/arc/memset.S +++ /dev/null @@ -1,110 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/memset.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -#if defined (__ARC601__) \ - || (!defined (__ARC_BARREL_SHIFTER__) && !defined (__ARCHS__)) - -/* To deal with alignment/loop issues, SMALL must be at least 2. */ -#define SMALL 8 /* Even faster if aligned. */ - - .global __strncpy_bzero - .hidden __strncpy_bzero -/* __strncpy_bzero provides the following interface to strncpy: - r0: return value - r2: zeroing length - r3: zeroing start address - No attempt is made here for __strncpy_memset to speed up aligned - cases, because the copying of a string presumably leaves start address - and length alignment for the zeroing randomly distributed. */ - -ENTRY (memset) - brls.d r2,SMALL,.Ltiny - mov_s r3,r0 - or r12,r0,r2 - bmsk.f r12,r12,1 - breq_s r1,0,.Lbzero - mov r4,0 - stb.a r1,[sp,-4] - stb r1,[sp,1] - stb r1,[sp,2] - stb r1,[sp,3] - ld.ab r1,[sp,4] -.Lbzero: - beq.d .Laligned -.Lbzero2: - add r6,r2,r3 -.Lnot_tiny: - stb r1,[r6,-1] - bclr r12,r6,0 - stw r1,[r12,-2] - stb.ab r1,[r3,1] - bclr_s r3,r3,0 - stw.ab r1,[r3,2] - bclr_s r3,r3,1 -.Laligned: ; This code address should be aligned for speed. - sub r6,r6,8 - brlo.d r6,r3,.Loop_end - sub r6,r6,8 -3: - st_l r1,[r3,4] - brhs.d r6,r3,3b - st.ab r1,[r3,8] -.Loop_end: - bic r12,r6,3 - j_s.d [blink] - st_s r1,[r12,12] - .balign 4 -__strncpy_bzero: - brhi.d r2,8,.Lbzero2 - mov_s r1,0 -.Ltiny: - sub_s r2,r2,11 - sub1 r12,pcl,r2 - j_s [r12] - stb_s r1,[r3,7] - stb_s r1,[r3,6] - stb_s r1,[r3,5] - stb_s r1,[r3,4] - stb_s r1,[r3,3] - stb_s r1,[r3,2] - stb_s r1,[r3,1] - stb_s r1,[r3] - j_s [blink] -ENDFUNC (memset) -#endif /* __ARC601__ || (!__ARC_BARREL_SHIFTER__ && !__ARCHS__) */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/setjmp.S b/lib/machine/arc/setjmp.S deleted file mode 100644 index 8e824f5..0000000 --- a/lib/machine/arc/setjmp.S +++ /dev/null @@ -1,165 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* ABI interface file - these are the stack mappings for the registers - as stored in the ABI for ARC */ - - .file "setjmp.S" - -ABIr13 = 0 -ABIr14 = ABIr13 + 4 -ABIr15 = ABIr14 + 4 -ABIr16 = ABIr15 + 4 -ABIr17 = ABIr16 + 4 -ABIr18 = ABIr17 + 4 -ABIr19 = ABIr18 + 4 -ABIr20 = ABIr19 + 4 -ABIr21 = ABIr20 + 4 -ABIr22 = ABIr21 + 4 -ABIr23 = ABIr22 + 4 -ABIr24 = ABIr23 + 4 -ABIr25 = ABIr24 + 4 -ABIr26 = ABIr25 + 4 -ABIr27 = ABIr26 + 4 -ABIr28 = ABIr27 + 4 -ABIr29 = ABIr28 + 4 -ABIr30 = ABIr29 + 4 -ABIr31 = ABIr30 + 4 -ABIlpc = ABIr31 + 4 -ABIlps = ABIlpc + 4 -ABIlpe = ABIlps + 4 - -ABIflg = ABIlpe + 4 -ABImlo = ABIflg + 4 -ABImhi = ABImlo + 4 - - .text - .align 4 - .global setjmp - .type setjmp,@function -setjmp: - st r13, [r0, ABIr13] - st r14, [r0, ABIr14] - st r15, [r0, ABIr15] - st r16, [r0, ABIr16] - st r17, [r0, ABIr17] - st r18, [r0, ABIr18] - st r19, [r0, ABIr19] - st r20, [r0, ABIr20] - st r21, [r0, ABIr21] - st r22, [r0, ABIr22] - st r23, [r0, ABIr23] - st r24, [r0, ABIr24] - st r25, [r0, ABIr25] - st r26, [r0, ABIr26] - st r27, [r0, ABIr27] - st r28, [r0, ABIr28] - st r29, [r0, ABIr29] - st r30, [r0, ABIr30] - st blink, [r0, ABIr31] - st lp_count, [r0, ABIlpc] - - lr r2, [lp_start] - lr r3, [lp_end] - st r2, [r0, ABIlps] - st r3, [r0, ABIlpe] - -#if (!defined (__ARC700__) && !defined (__ARCEM__) && !defined (__ARCHS__)) -; Till the configure changes are decided, and implemented, the code working on -; mlo/mhi and using mul64 should be disabled. -; st mlo, [r0, ABImlo] -; st mhi, [r0, ABImhi] - lr r2, [status32] - st r2, [r0, ABIflg] -#endif - - j.d [blink] - mov r0,0 -.Lfe1: - .size setjmp,.Lfe1-setjmp - - .align 4 - .global longjmp - .type longjmp,@function -longjmp: - - ; load registers - ld r13, [r0, ABIr13] - ld r14, [r0, ABIr14] - ld r15, [r0, ABIr15] - ld r16, [r0, ABIr16] - ld r17, [r0, ABIr17] - ld r18, [r0, ABIr18] - ld r19, [r0, ABIr19] - ld r20, [r0, ABIr20] - ld r21, [r0, ABIr21] - ld r22, [r0, ABIr22] - ld r23, [r0, ABIr23] - ld r24, [r0, ABIr24] - ld r25, [r0, ABIr25] - ld r26, [r0, ABIr26] - ld r27, [r0, ABIr27] - ld r28, [r0, ABIr28] - - ld r3, [r0, ABIr29] - mov r29, r3 - - ld r3, [r0, ABIr30] - mov r30, r3 - - ld blink, [r0, ABIr31] - - ld r3, [r0, ABIlpc] - mov lp_count, r3 - - ld r2, [r0, ABIlps] - ld r3, [r0, ABIlpe] - sr r2, [lp_start] - sr r3, [lp_end] - -#if (!defined (__ARC700__) && !defined (__ARCEM__) && !defined (__ARCHS__)) - ld r2, [r0, ABImlo] - ld r3, [r0, ABImhi] -; We do not support restoring of mulhi and mlo registers, yet. - -; mulu64 0,r2,1 ; restores mlo -; mov 0,mlo ; force multiply to finish -; sr r3, [mulhi] - ld r2, [r0, ABIflg] - flag r2 ; restore "status32" register -#endif - - mov.f r1, r1 ; to avoid return 0 from longjmp - mov.eq r1, 1 - j.d [blink] - mov r0,r1 -.Lfe2: - .size longjmp,.Lfe2-longjmp diff --git a/lib/machine/arc/strchr-bs-norm.S b/lib/machine/arc/strchr-bs-norm.S deleted file mode 100644 index e69ac6c..0000000 --- a/lib/machine/arc/strchr-bs-norm.S +++ /dev/null @@ -1,166 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/strchr.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -/* ARC700 has a relatively long pipeline and branch prediction, so we want - to avoid branches that are hard to predict. On the other hand, the - presence of the norm instruction makes it easier to operate on whole - words branch-free. */ -#include "asm.h" - -#if (defined (__ARC700__) || defined (__ARCEM__) || defined (__ARCHS__)) \ - && defined (__ARC_NORM__) && defined (__ARC_BARREL_SHIFTER__) - -ENTRY (strchr) - extb_s r1,r1 - asl r5,r1,8 - bmsk r2,r0,1 - or r5,r5,r1 - mov_s r3,0x01010101 - breq.d r2,r0,.Laligned - asl r4,r5,16 - sub_s r0,r0,r2 - asl r7,r2,3 - ld_s r2,[r0] -#ifdef __LITTLE_ENDIAN__ - asl r7,r3,r7 -#else - lsr r7,r3,r7 -#endif - or r5,r5,r4 - ror r4,r3 - sub r12,r2,r7 - bic_s r12,r12,r2 - and r12,r12,r4 - brne.d r12,0,.Lfound0_ua - xor r6,r2,r5 - ld.a r2,[r0,4] - sub r12,r6,r7 - bic r12,r12,r6 -#ifdef __LITTLE_ENDIAN__ - and r7,r12,r4 - breq r7,0,.Loop ; For speed, we want this branch to be unaligned. - b_l .Lfound_char ; Likewise this one. -#else - and r12,r12,r4 - breq_l r12,0,.Loop ; For speed, we want this branch to be unaligned. - lsr_s r12,r12,7 - bic r2,r7,r6 - b.d .Lfound_char_b - and_s r2,r2,r12 -#endif -; /* We require this code address to be unaligned for speed... */ -.Laligned: - ld_s r2,[r0] - or r5,r5,r4 - ror r4,r3 -; /* ... so that this code address is aligned, for itself and ... */ -.Loop: - sub r12,r2,r3 - bic_s r12,r12,r2 - and r12,r12,r4 - brne.d r12,0,.Lfound0 - xor r6,r2,r5 - ld.a r2,[r0,4] - sub r12,r6,r3 - bic r12,r12,r6 - and r7,r12,r4 - breq r7,0,.Loop /* ... so that this branch is unaligned. */ - ; Found searched-for character. r0 has already advanced to next word. -#ifdef __LITTLE_ENDIAN__ -/* We only need the information about the first matching byte - (i.e. the least significant matching byte) to be exact, - hence there is no problem with carry effects. */ -.Lfound_char: - sub r3,r7,1 - bic r3,r3,r7 - norm r2,r3 - sub_s r0,r0,1 - asr_s r2,r2,3 - j_l.d [blink] - sub_s r0,r0,r2 - - .balign 4 -.Lfound0_ua: - mov_l r3,r7 -.Lfound0: - sub r3,r6,r3 - bic r3,r3,r6 - and r2,r3,r4 - or_s r12,r12,r2 - sub_s r3,r12,1 - bic_s r3,r3,r12 - norm r3,r3 - add_s r0,r0,3 - asr_s r12,r3,3 - asl.f 0,r2,r3 - sub_s r0,r0,r12 - j_s.d [blink] - mov.pl r0,0 -#else /* BIG ENDIAN */ -.Lfound_char: - lsr r7,r7,7 - - bic r2,r7,r6 -.Lfound_char_b: - norm r2,r2 - sub_s r0,r0,4 - asr_s r2,r2,3 - j_l.d [blink] - add_s r0,r0,r2 - -.Lfound0_ua: - mov_s r3,r7 -.Lfound0: - asl_s r2,r2,7 - or r7,r6,r4 - bic_s r12,r12,r2 - sub r2,r7,r3 - or r2,r2,r6 - bic r12,r2,r12 - bic.f r3,r4,r12 - norm r3,r3 - - add.pl r3,r3,1 - asr_s r12,r3,3 - asl.f 0,r2,r3 - add_s r0,r0,r12 - j_s.d [blink] - mov.mi r0,0 -#endif /* ENDIAN */ -ENDFUNC (strchr) -#endif /* (__ARC700__ || __ARCEM__ || __ARCHS__) && __ARC_NORM__ - && __ARC_BARREL_SHIFTER__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/strchr-bs.S b/lib/machine/arc/strchr-bs.S deleted file mode 100644 index eb61a3a..0000000 --- a/lib/machine/arc/strchr-bs.S +++ /dev/null @@ -1,202 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/strchr.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -/* In order to search for a zero in a W, we calculate - X := (W - 0x01010101) & ~W & 0x80808080; - In the little endian case: - If no byte in W is zero, X will be zero; otherwise, the least significant - byte of X which is nonzero indicates the least significant byte of W that - is zero. - In the big endian case: - X will be zero iff no byte in W is zero. - If X is nonzero, to find out which is the most significant zero byte - in W, we calculate: - Y := ~(((W | 0x80808080) - 0x01010101) | W) & 0x80808080; - Each byte in Y is 0x80 if the the corresponding byte in - W is zero, otherwise that byte of Y is 0. */ - -#if defined (__ARC_BARREL_SHIFTER__) && \ - (defined (__ARC600__) || (!defined (__ARC_NORM__) && !defined (__ARC601__))) - -ENTRY (strchr) - bmsk.f r2,r0,1 - mov_s r3,0x01010101 - extb_s r1,r1 - asl r5,r1,8 - or r5,r5,r1 - beq.d .Laligned - asl r4,r5,16 - sub_s r0,r0,r2 - asl_s r2,r2,3 -#ifdef __LITTLE_ENDIAN__ - asl r7,r3,r2 -#else - lsr r7,r3,r2 -#endif - ld_s r2,[r0] - or r5,r5,r4 - ror r4,r3 - sub r12,r2,r7 - bic_s r12,r12,r2 - and r12,r12,r4 - - brne.d r12,0,.Lfound0_ua - xor r6,r2,r5 - ld.a r2,[r0,4] - sub r12,r6,r7 - bic r12,r12,r6 -#ifdef __LITTLE_ENDIAN__ - and.f r7,r12,r4 - sub r12,r2,r3 - bic_s r12,r12,r2 - beq.d .Loop - and r12,r12,r4 - b.d .Lfound_char_ua - btst r7,7 -#else - and.f r8,r12,r4 - sub r12,r2,r3 - bic_s r12,r12,r2 - beq.d .Loop - and r12,r12,r4 - bic r12,r7,r6 - asl_s r12,r12,7 - and.f r2,r8,r12 - b.d .Lfound_char_ua - sub_s r0,r0,4 -#endif - - .balign 4 -.Laligned: - ld_s r2,[r0] - or r5,r5,r4 - ror r4,r3 - sub r12,r2,r3 - bic_s r12,r12,r2 - and r12,r12,r4 -.Loop: - - brne.d r12,0,.Lfound0 - xor r6,r2,r5 - ld.a r2,[r0,4] - sub r12,r6,r3 - bic r12,r12,r6 - and.f r7,r12,r4 - sub r12,r2,r3 - bic_s r12,r12,r2 - beq.d .Loop - and r12,r12,r4 -; Found searched-for character. r0 has already advanced to next word. -#ifdef __LITTLE_ENDIAN__ -/* We only need the information about the first matching byte - (i.e. the least significant matching byte) to be exact, - hence there is no problem with carry effects. */ -.Lfound_char: - btst r7,7 -.Lfound_char_ua: - sub_s r0,r0,4 - add.eq r0,r0,1 - btst.eq r7,15 - add.eq r0,r0,1 - btst.eq r7,23 - j_s.d [blink] - add.eq r0,r0,1 - - .balign 4 -.Lfound0_ua: - mov_l r3,r7 -.Lfound0: - sub r2,r6,r3 - bic r2,r2,r6 - and r2,r2,r4 - or r3,r12,r2 - sub_s r12,r3,1 - xor_s r3,r3,r12 - tst_s r2,r3 - lsr r2,r3,31 - lsr r12,r3,16 - jeq.d [blink] - mov.eq r0,0 - lsr r3,r3,8 - sub_s r2,r2,r12 - sub_s r2,r2,r3 - bmsk_s r2,r2,1 - j_s.d [blink] - add_s r0,r0,r2 -#else /* BIG ENDIAN */ -.Lfound_char: - asl r6,r6,7 - sub_s r0,r0,4 - bic.f r2,r7,r6 -.Lfound_char_ua: - add.pl r0,r0,1 - jmi.d [blink] - btst_s r2,23 - add.eq r0,r0,1 - btst.eq r2,15 - j_s.d [blink] - add.eq r0,r0,1 - -; N.B. if we searched for a char zero and found it in the MSB, -; and ignored matches are identical, we will take the early exit -; like for an ordinary found zero - except for the extra stalls at jhi - -; but still compute the right result. -.Lfound0_ua: - mov_s r3,r7 -.Lfound0: - asl_s r2,r2,7 - or r7,r6,r4 - bic_s r12,r12,r2 - sub r2,r7,r3 - or r2,r2,r6 - bic r2,r4,r2 - cmp r12,r2 - mov.hi r0,0 - btst.ls r2,31 - jhi.d [blink] - add.eq r0,r0,1 - btst.eq r2,23 - add.eq r0,r0,1 - btst.eq r2,15 - j_s.d [blink] - add.eq r0,r0,1 -#endif /* ENDIAN */ -ENDFUNC (strchr) -#endif /* __ARC_BARREL_SHIFTER__ && - (__ARC600__ || (!__ARC_NORM__ && !__ARC601__)) */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/strchr-stub.c b/lib/machine/arc/strchr-stub.c deleted file mode 100644 index 8d84a82..0000000 --- a/lib/machine/arc/strchr-stub.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - - -#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) -# include "../../string/strchr.c" -#else -/* See strchr-*.S. */ -#endif diff --git a/lib/machine/arc/strchr.S b/lib/machine/arc/strchr.S deleted file mode 100644 index 1bf6db9..0000000 --- a/lib/machine/arc/strchr.S +++ /dev/null @@ -1,208 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/strchr.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -/* In order to search for a zero in a W, we calculate - X := (W - 0x01010101) & ~W & 0x80808080; - In the little endian case: - If no byte in W is zero, X will be zero; otherwise, the least significant - byte of X which is nonzero indicates the least significant byte of W that - is zero. - In the big endian case: - X will be zero iff no byte in W is zero. - If X is nonzero, to find out which is the most significant zero byte - in W, we calculate: - Y := ~(((W | 0x80808080) - 0x01010101) | W) & 0x80808080; - Each byte in Y is 0x80 if the the corresponding byte in - W is zero, otherwise that byte of Y is 0. */ - -#if defined (__ARC601__) || !defined (__ARC_BARREL_SHIFTER__) -ENTRY (strchr) - bmsk.f r2,r0,1 - mov_s r3,0x01010101 - extb_s r1,r1 - mov r8,0 - add3 r5,r8,r1 - add3 r5,r8,r5 - add2 r5,r1,r5 - add3 r4,r8,r5 - add3 r4,r8,r4 - add3 r4,r8,r4 - add3 r4,r8,r4 - beq.d .Laligned - add3 r4,r8,r4 - sub_s r0,r0,r2 -#ifdef __LITTLE_ENDIAN__ - add3.f r2,-1,r2 - bmsk r7,r3,r2 - rsub.pl r7,r7,r3 -#else - mov_s r12,31 - sub3 r2,r12,r2 - bmsk r7,r3,r2 -#endif - ld_s r2,[r0] - add1 r5,r5,r4 - ror r4,r3 - sub r12,r2,r7 - bic_s r12,r12,r2 - and r12,r12,r4 - - brne.d r12,0,.Lfound0_ua - xor r6,r2,r5 - ld.a r2,[r0,4] - sub r12,r6,r7 - bic r12,r12,r6 -#ifdef __LITTLE_ENDIAN__ - and.f r7,r12,r4 - sub r12,r2,r3 - bic_s r12,r12,r2 - beq.d .Loop - and r12,r12,r4 - b.d .Lfound_char_ua - btst r7,7 -#else - and.f r8,r12,r4 - sub r12,r2,r3 - bic_s r12,r12,r2 - beq.d .Loop - and r12,r12,r4 - bic r12,r7,r6 - bic r2,r3,r12 - sub1 r2,r3,r2 - sub_s r0,r0,4 - b.d .Lfound_char_ua - bic.f r2,r8,r2 -#endif - - .balign 4 -.Laligned: - ld_s r2,[r0] - add1 r5,r5,r4 - ror r4,r3 - sub r12,r2,r3 - bic_s r12,r12,r2 - and r12,r12,r4 -.Loop: - - brne.d r12,0,.Lfound0 - xor r6,r2,r5 - ld.a r2,[r0,4] - sub r12,r6,r3 - bic r12,r12,r6 - and.f r7,r12,r4 - sub r12,r2,r3 - bic_s r12,r12,r2 - beq.d .Loop - and r12,r12,r4 -; Found searched-for character. r0 has already advanced to next word. -#ifdef __LITTLE_ENDIAN__ -/* We only need the information about the first matching byte - (i.e. the least significant matching byte) to be exact, - hence there is no problem with carry effects. */ -.Lfound_char: - btst r7,7 -.Lfound_char_ua: - sub_s r0,r0,4 - add.eq r0,r0,1 - btst.eq r7,15 - add.eq r0,r0,1 - btst.eq r7,23 - j_s.d [blink] - add.eq r0,r0,1 - - .balign 4 -.Lfound0_ua: - mov_l r3,r7 -.Lfound0: - sub r2,r6,r3 - bic r2,r2,r6 - and r2,r2,r4 - or r3,r12,r2 - sub_s r12,r3,1 - xor_s r3,r3,r12 - cmp 0xffff,r3 - ; cmp uses limm ; ARC600 would do: asl.f 0,r3,9 - tst_s r2,r3 - mov.eq r0,0 - add.mi r0,r0,1 - btst.ne r3,15 - j_s.d [blink] - adc.ne r0,r0,1 -#else /* BIG ENDIAN */ -.Lfound_char: - and r2,r6,r3 - sub1 r2,r3,r2 - sub_s r0,r0,4 - bic.f r2,r7,r2 -.Lfound_char_ua: - add.pl r0,r0,1 - jmi.d [blink] - btst_s r2,23 - add.eq r0,r0,1 - btst.eq r2,15 - j_s.d [blink] - add.eq r0,r0,1 - -; N.B. if we searched for a char zero and found it in the MSB, -; and ignored matches are identical, we will take the early exit -; like for an ordinary found zero - except for the extra stalls at jhi - -; but still compute the right result. -.Lfound0_ua: - mov_s r3,r7 -.Lfound0: - and_s r2,r2,r3 - sub1 r2,r3,r2 - or r7,r6,r4 - bic_s r12,r12,r2 - sub r2,r7,r3 - or r2,r2,r6 - bic r2,r4,r2 - cmp_s r12,r2 - mov.hi r0,0 - btst.ls r2,31 - jhi.d [blink] - add.eq r0,r0,1 - btst.eq r2,23 - add.eq r0,r0,1 - btst.eq r2,15 - j_s.d [blink] - add.eq r0,r0,1 -#endif /* ENDIAN */ -ENDFUNC (strchr) -#endif /* __ARC601__ || !__ARC_BARREL_SHIFTER__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/strcmp-archs.S b/lib/machine/arc/strcmp-archs.S deleted file mode 100644 index 6cccf27..0000000 --- a/lib/machine/arc/strcmp-archs.S +++ /dev/null @@ -1,109 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/strcmp.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -#ifdef __ARCHS__ -ENTRY (strcmp) - or r2, r0, r1 - bmsk_s r2, r2, 1 - brne r2, 0, @.Lcharloop - -; s1 and s2 are word aligned - ld.ab r2, [r0, 4] - - mov_s r12, 0x01010101 - ror r11, r12 - .align 4 -.LwordLoop: - ld.ab r3, [r1, 4] - ; Detect NULL char in str1 - sub r4, r2, r12 - ld.ab r5, [r0, 4] - bic r4, r4, r2 - and r4, r4, r11 - brne.d.nt r4, 0, .LfoundNULL - ; Check if the read locations are the same - cmp r2, r3 - beq.d .LwordLoop - mov.eq r2, r5 - - ; A match is found, spot it out -#ifdef __LITTLE_ENDIAN__ - swape r3, r3 - mov_s r0, 1 - swape r2, r2 -#else - mov_s r0, 1 -#endif - cmp_s r2, r3 - j_s.d [blink] - bset.lo r0, r0, 31 - - .align 4 -.LfoundNULL: -#ifdef __BIG_ENDIAN__ - swape r4, r4 - swape r2, r2 - swape r3, r3 -#endif - ; Find null byte - ffs r0, r4 - bmsk r2, r2, r0 - bmsk r3, r3, r0 - swape r2, r2 - swape r3, r3 - ; make the return value - sub.f r0, r2, r3 - mov.hi r0, 1 - j_s.d [blink] - bset.lo r0, r0, 31 - - .align 4 -.Lcharloop: - ldb.ab r2, [r0, 1] - ldb.ab r3, [r1, 1] - nop - breq r2, 0, .Lcmpend - breq r2, r3, .Lcharloop - - .align 4 -.Lcmpend: - j_s.d [blink] - sub r0, r2, r3 -ENDFUNC (strcmp) -#endif /* __ARCHS__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/strcmp-stub.c b/lib/machine/arc/strcmp-stub.c deleted file mode 100644 index 19528e3..0000000 --- a/lib/machine/arc/strcmp-stub.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - - -#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) -# include "../../string/strcmp.c" -#else -/* See strcmp-*.S. */ -#endif diff --git a/lib/machine/arc/strcmp.S b/lib/machine/arc/strcmp.S deleted file mode 100644 index 40a9e94..0000000 --- a/lib/machine/arc/strcmp.S +++ /dev/null @@ -1,133 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/strcmp.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -/* This is optimized primarily for the ARC700. - It would be possible to speed up the loops by one cycle / word - respective one cycle / byte by forcing double source 1 alignment, unrolling - by a factor of two, and speculatively loading the second word / byte of - source 1; however, that would increase the overhead for loop setup / finish, - and strcmp might often terminate early. */ -#ifndef __ARCHS__ - -ENTRY (strcmp) - or r2,r0,r1 - bmsk_s r2,r2,1 - brne_l r2,0,.Lcharloop - mov_s r12,0x01010101 - ror r5,r12 -.Lwordloop: - ld.ab r2,[r0,4] - ld.ab r3,[r1,4] - nop_s - sub r4,r2,r12 - bic r4,r4,r2 - and r4,r4,r5 - brne_l r4,0,.Lfound0 - breq r2,r3,.Lwordloop -#ifdef __LITTLE_ENDIAN__ - xor r0,r2,r3 ; mask for difference - sub_s r1,r0,1 - bic_s r0,r0,r1 ; mask for least significant difference bit - sub r1,r5,r0 - xor r0,r5,r1 ; mask for least significant difference byte - and_s r2,r2,r0 - and_s r3,r3,r0 -#endif /* LITTLE ENDIAN */ - cmp_s r2,r3 - mov_s r0,1 - j_s.d [blink] - bset.lo r0,r0,31 - - .balign 4 -#ifdef __LITTLE_ENDIAN__ -.Lfound0: - xor r0,r2,r3 ; mask for difference - or r0,r0,r4 ; or in zero indicator - sub_s r1,r0,1 - bic_s r0,r0,r1 ; mask for least significant difference bit - sub r1,r5,r0 - xor r0,r5,r1 ; mask for least significant difference byte - and_s r2,r2,r0 - and_s r3,r3,r0 - sub.f r0,r2,r3 - mov.hi r0,1 - j_s.d [blink] - bset.lo r0,r0,31 -#else /* BIG ENDIAN */ - /* The zero-detection above can mis-detect 0x01 bytes as zeroes - because of carry-propagateion from a lower significant zero byte. - We can compensate for this by checking that bit0 is zero. - This compensation is not necessary in the step where we - get a low estimate for r2, because in any affected bytes - we already have 0x00 or 0x01, which will remain unchanged - when bit 7 is cleared. */ - .balign 4 -.Lfound0: -#ifdef __ARC_BARREL_SHIFTER__ - lsr r0,r4,8 - lsr_s r1,r2 - bic_s r2,r2,r0 ; get low estimate for r2 and get ... - bic_s r0,r0,r1 ; - or_s r3,r3,r0 ; ... high estimate r3 so that r2 > r3 will ... - cmp_s r3,r2 ; ... be independent of trailing garbage - or_s r2,r2,r0 ; likewise for r3 > r2 - bic_s r3,r3,r0 - rlc r0,0 ; r0 := r2 > r3 ? 1 : 0 - cmp_s r2,r3 - j_s.d [blink] - bset.lo r0,r0,31 -#else /* __ARC_BARREL_SHIFTER__ */ - /* Fall through to .Lcharloop. */ - sub_s r0,r0,4 - sub_s r1,r1,4 -#endif /* __ARC_BARREL_SHIFTER__ */ -#endif /* ENDIAN */ - - .balign 4 -.Lcharloop: - ldb.ab r2,[r0,1] - ldb.ab r3,[r1,1] - nop_s - breq_l r2,0,.Lcmpend - breq r2,r3,.Lcharloop -.Lcmpend: - j_s.d [blink] - sub r0,r2,r3 -ENDFUNC (strcmp) -#endif /* !__ARCHS__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/strcpy-bs-arc600.S b/lib/machine/arc/strcpy-bs-arc600.S deleted file mode 100644 index e80ffe5..0000000 --- a/lib/machine/arc/strcpy-bs-arc600.S +++ /dev/null @@ -1,120 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/strcpy.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -#if defined (__ARC600__) && defined (__ARC_BARREL_SHIFTER__) -/* If dst and src are 4 byte aligned, copy 8 bytes at a time. - If the src is 4, but not 8 byte aligned, we first read 4 bytes to get - it 8 byte aligned. Thus, we can do a little read-ahead, without - dereferencing a cache line that we should not touch. - Note that short and long instructions have been scheduled to avoid - branch stalls. - This version is optimized for the ARC600 pipeline. */ - -ENTRY (strcpy) - or r2,r0,r1 - bmsk.f 0,r2,1 - mov r8,0x01010101 - bne.d .Lcharloop - mov_s r10,r0 - ld_l r3,[r1,0] - bbit0.d r1,2,.Loop_setup - ror r12,r8 - sub r2,r3,r8 - bic_s r2,r2,r3 - and_s r2,r2,r12 - brne_s r2,0,.Lr3z - st.ab r3,[r10,4] - ld.a r3,[r1,4] -.Loop_setup: - ld.a r4,[r1,4] - - sub r2,r3,r8 - and.f r2,r2,r12 - sub r5,r4,r8 - and.eq.f r5,r5,r12 - b.d .Loop_start - mov_s r6,r3 - .balign 4 -.Loop: - ld.a r3,[r1,4] - st r4,[r10,4] - ld.a r4,[r1,4] - sub r2,r3,r8 - and.f r2,r2,r12 - sub r5,r4,r8 - and.eq.f r5,r5,r12 - st.ab r6,[r10,8] - mov r6,r3 -.Loop_start: - beq.d .Loop - bic_s r2,r2,r3 - brne.d r2,0,.Lr3z - and r5,r5,r12 - bic r5,r5,r4 - breq.d r5,0,.Loop - mov_s r3,r4 - st.ab r6,[r10,4] -#ifdef __LITTLE_ENDIAN__ -.Lr3z: bmsk.f r1,r3,7 -.Lr3z_loop: - lsr_s r3,r3,8 - stb.ab r1,[r10,1] - bne.d .Lr3z_loop - bmsk.f r1,r3,7 - j_s [blink] -#else -.Lr3z: lsr.f r1,r3,24 -.Lr3z_loop: - asl_s r3,r3,8 - stb.ab r1,[r10,1] - bne.d .Lr3z_loop - lsr.f r1,r3,24 - j_s [blink] -#endif - - .balign 4 -.Lcharloop: - ldb.ab r3,[r1,1] - - - brne.d r3,0,.Lcharloop - stb.ab r3,[r10,1] - j [blink] -ENDFUNC (strcpy) -#endif /* __ARC600__ && __ARC_BARREL_SHIFTER__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/strcpy-bs.S b/lib/machine/arc/strcpy-bs.S deleted file mode 100644 index 26ac6c7..0000000 --- a/lib/machine/arc/strcpy-bs.S +++ /dev/null @@ -1,103 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/strcpy.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -#if (defined (__ARC700__) || defined (__ARCEM__) || defined (__ARCHS__)) \ - && defined (__ARC_BARREL_SHIFTER__) - -/* If dst and src are 4 byte aligned, copy 8 bytes at a time. - If the src is 4, but not 8 byte aligned, we first read 4 bytes to get - it 8 byte aligned. Thus, we can do a little read-ahead, without - dereferencing a cache line that we should not touch. - Note that short and long instructions have been scheduled to avoid - branch stalls. - The beq_s to r3z could be made unaligned & long to avoid a stall - there, but the it is not likely to be taken often, and it - would also be likey to cost an unaligned mispredict at the next call. */ - -ENTRY (strcpy) - or r2,r0,r1 - bmsk_s r2,r2,1 - brne.d r2,0,charloop - mov_s r10,r0 - ld_s r3,[r1,0] - mov r8,0x01010101 - bbit0.d r1,2,loop_start - ror r12,r8 - sub r2,r3,r8 - bic_s r2,r2,r3 - tst_s r2,r12 - bne_l r3z - mov_s r4,r3 - .balign 4 -loop: - ld.a r3,[r1,4] - st.ab r4,[r10,4] -loop_start: - ld.a r4,[r1,4] - sub r2,r3,r8 - bic_s r2,r2,r3 - tst_l r2,r12 - bne_l r3z - st.ab r3,[r10,4] - sub r2,r4,r8 - bic r2,r2,r4 - tst_l r2,r12 - beq_l loop - mov_s r3,r4 -#ifdef __LITTLE_ENDIAN__ -r3z: bmsk.f r1,r3,7 - lsr_s r3,r3,8 -#else -r3z: lsr.f r1,r3,24 - asl_s r3,r3,8 -#endif - bne.d r3z - stb.ab r1,[r10,1] - j_s [blink] - - .balign 4 -charloop: - ldb.ab r3,[r1,1] - - - brne.d r3,0,charloop - stb.ab r3,[r10,1] - j [blink] -ENDFUNC (strcpy) -#endif /* (__ARC700__ || __ARCEM__ || __ARCHS__) && __ARC_BARREL_SHIFTER__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/strcpy-stub.c b/lib/machine/arc/strcpy-stub.c deleted file mode 100644 index 80ea0e8..0000000 --- a/lib/machine/arc/strcpy-stub.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - - -#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) -# include "../../string/strcpy.c" -#else -/* See strcpy-*.S. */ -#endif diff --git a/lib/machine/arc/strcpy.S b/lib/machine/arc/strcpy.S deleted file mode 100644 index e379b79..0000000 --- a/lib/machine/arc/strcpy.S +++ /dev/null @@ -1,90 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/strcpy.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -#if defined (__ARC601__) || !defined (__ARC_BARREL_SHIFTER__) -/* If dst and src are 4 byte aligned, copy 8 bytes at a time. - If the src is 4, but not 8 byte aligned, we first read 4 bytes to get - it 8 byte aligned. Thus, we can do a little read-ahead, without - dereferencing a cache line that we should not touch. - This version is a compromise between speed for the 601 pipeline and code - size. */ - -ENTRY (strcpy) - or r2,r0,r1 - bmsk.f 0,r2,1 - mov r8,0x01010101 - bne.d .Lcharloop - mov_s r10,r0 - ld_s r3,[r1] - bbit0.d r1,2,.Loop_start - ror r12,r8 - sub r2,r3,r8 - bic_s r2,r2,r3 - and_s r2,r2,r12 - brne_s r2,0,.Lr3z - mov r4,r3 - sub_s r1,r1,4 - .balign 4 -.Loop: - ld.a r3,[r1,8] - st.ab r4,[r10,4] -.Loop_start: - ld r4,[r1,4] - sub r2,r3,r8 - bic_s r2,r2,r3 - tst_s r2,r12 - sub r5,r4,r8 - bic r5,r5,r4 - bne_s .Lr3z - and r5,r5,r12 - breq.d r5,0,.Loop - st.ab r3,[r10,4] - - ;mov_s r3,r4 - add_s r1,r1,4 - - .balign 4 -.Lr3z: -.Lcharloop: - ldb.ab r3,[r1,1] - brne.d r3,0,.Lcharloop - stb.ab r3,[r10,1] - j_s [blink] -ENDFUNC (strcpy) -#endif /* __ARC601__ || !__ARC_BARREL_SHIFTER__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/strlen-bs-norm.S b/lib/machine/arc/strlen-bs-norm.S deleted file mode 100644 index 5f8db32..0000000 --- a/lib/machine/arc/strlen-bs-norm.S +++ /dev/null @@ -1,116 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/strlen.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" -#if (defined (__ARC700__) || defined (__ARCEM__) || defined (__ARCHS__)) \ - && defined (__ARC_NORM__) && defined (__ARC_BARREL_SHIFTER__) - -ENTRY (strlen) - or r3,r0,7 - ld r2,[r3,-7] - ld.a r6,[r3,-3] - mov r4,0x01010101 - ; uses long immediate -#ifdef __LITTLE_ENDIAN__ - asl_s r1,r0,3 - btst_s r0,2 - asl r7,r4,r1 - ror r5,r4 - sub r1,r2,r7 - bic_s r1,r1,r2 - mov.eq r7,r4 - sub r12,r6,r7 - bic r12,r12,r6 - or.eq r12,r12,r1 - and r12,r12,r5 - brne r12,0,.Learly_end -#else /* BIG ENDIAN */ - ror r5,r4 - btst_s r0,2 - mov_s r1,31 - sub3 r7,r1,r0 - sub r1,r2,r4 - bic_s r1,r1,r2 - bmsk r1,r1,r7 - sub r12,r6,r4 - bic r12,r12,r6 - bmsk.ne r12,r12,r7 - or.eq r12,r12,r1 - and r12,r12,r5 - brne r12,0,.Learly_end -#endif /* ENDIAN */ - -.Loop: - ld_s r2,[r3,4] - ld.a r6,[r3,8] - ; stall for load result - sub r1,r2,r4 - bic_s r1,r1,r2 - sub r12,r6,r4 - bic r12,r12,r6 - or_l r12,r12,r1 - and r12,r12,r5 - breq_l r12,0,.Loop -.Lend: - and.f r1,r1,r5 - sub.ne r3,r3,4 - mov.eq r1,r12 -#ifdef __LITTLE_ENDIAN__ - sub_s r2,r1,1 - bic_s r2,r2,r1 - norm r1,r2 - sub_s r0,r0,3 - lsr_s r1,r1,3 - sub r0,r3,r0 - j_s.d [blink] - sub_l r0,r0,r1 -#else /* BIG ENDIAN */ - lsr_s r1,r1,7 - mov.eq r2,r6 - bic_s r1,r1,r2 - norm r1,r1 - sub r0,r3,r0 - lsr_s r1,r1,3 - j_s.d [blink] - add_l r0,r0,r1 -#endif /* ENDIAN */ -.Learly_end: - b.d .Lend - sub_s.ne r1,r1,r1 -ENDFUNC (strlen) -#endif /* (__ARC700__ || __ARCEM__ || __ARCHS__) && __ARC_NORM__ - && __ARC_BARREL_SHIFTER__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/strlen-bs.S b/lib/machine/arc/strlen-bs.S deleted file mode 100644 index 59c3504..0000000 --- a/lib/machine/arc/strlen-bs.S +++ /dev/null @@ -1,122 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/strlen.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -#if (defined (__ARC600__) || !defined (__ARC_NORM__)) && !defined (__ARC601__) \ - && defined (__ARC_BARREL_SHIFTER__) -/* This code is optimized for the ARC600 pipeline. */ - -ENTRY (strlen) - or r3,r0,7 - ld r2,[r3,-7] - ld.a r6,[r3,-3] - mov r4,0x01010101 - ; uses long immediate -#ifdef __LITTLE_ENDIAN__ - asl_s r1,r0,3 - btst_s r0,2 - asl r7,r4,r1 - ror r5,r4 - sub r1,r2,r7 - bic_l r1,r1,r2 - mov.eq r7,r4 - sub r12,r6,r7 - bic r12,r12,r6 - or.eq r12,r12,r1 - and r12,r12,r5 - brne r12,0,.Learly_end -#else /* BIG ENDIAN */ - ror r5,r4 - btst_s r0,2 - mov_s r1,31 - sub3 r7,r1,r0 - sub r1,r2,r4 - bic_l r1,r1,r2 - bmsk r1,r1,r7 - sub r12,r6,r4 - bic r12,r12,r6 - bmsk.ne r12,r12,r7 - or.eq r12,r12,r1 - and r12,r12,r5 - brne r12,0,.Learly_end -#endif /* ENDIAN */ - -.Loop: - ld_s r2,[r3,4] - ld.a r6,[r3,8] - ; stall for load result - sub r1,r2,r4 - bic_s r1,r1,r2 - sub r12,r6,r4 - bic r12,r12,r6 - or_s r12,r12,r1 - and r12,r12,r5 - breq_s r12,0,.Loop -.Lend: - and.f r1,r1,r5 - sub.ne r3,r3,4 -#ifdef __LITTLE_ENDIAN__ - mov.eq r1,r12 - asr.f 0,r1,8 - bmsk.f 0,r1,15 - sub r0,r3,r0 - add.cc r0,r0,1 - jne.d [blink] - asl.f 0,r1,9 - j_s.d [blink] - sbc r0,r0,-2 -#else /* BIG ENDIAN */ - mov.eq r2,r6 - asl_s r2,r2,7 - mov.eq r1,r12 - bic_s r1,r1,r2 - asr.f 0,r1,16 - sub r0,r3,r0 - add.pl r0,r0,1 - jne.d [blink] - add.eq r0,r0,1 - j_s.d [blink] - add.cc r0,r0,1 -#endif /* ENDIAN */ - - .balign 4 -.Learly_end: - b.d .Lend - sub_s.ne r1,r1,r1 -ENDFUNC (strlen) -#endif /* (__ARC600__ || !__ARC_NORM__) && !__ARC601__ && __ARC_BARREL_SHIFTER__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/strlen-stub.c b/lib/machine/arc/strlen-stub.c deleted file mode 100644 index 942e9be..0000000 --- a/lib/machine/arc/strlen-stub.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - - -#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) -# include "../../string/strlen.c" -#else -/* See strlen-*.S. */ -#endif diff --git a/lib/machine/arc/strlen.S b/lib/machine/arc/strlen.S deleted file mode 100644 index 67f820f..0000000 --- a/lib/machine/arc/strlen.S +++ /dev/null @@ -1,165 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/strlen.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -#if defined(__ARC601__) || !defined (__ARC_BARREL_SHIFTER__) -/* This code is optimized for the ARC601 pipeline without barrel shifter. */ - -ENTRY (strlen) - or r3,r0,7 - ld r2,[r3,-7] - ld.a r6,[r3,-3] - mov r4,0x01010101 - ; uses long immediate -#ifdef __LITTLE_ENDIAN__ - bmsk.f 0,r0,1 - mov_s r1,31 - add3_s r1,r1,r0 - bmsk r7,r4,r1 - xor.ne r7,r7,r4 - btst_s r0,2 - ror r5,r4 - sub r1,r2,r7 - bic_s r1,r1,r2 - mov.eq r7,r4 - sub r12,r6,r7 - bic r12,r12,r6 - or.eq r12,r12,r1 - and r12,r12,r5 - brne r12,0,.Learly_end -#else /* BIG ENDIAN */ - add.f r1,r4,30 ; r1 mod 31 := -1; clear carry - ror r5,r4 - sub3 r7,r1,r0 - btst_s r0,2 - sub r1,r2,r4 - bic_s r1,r1,r2 - bmsk r1,r1,r7 - sub r12,r6,r4 - bic r12,r12,r6 - bmsk.ne r12,r12,r7 - or.eq r12,r12,r1 - and r12,r12,r5 - brne r12,0,.Learly_end -#endif /* ENDIAN */ - -.Loop: - ld_s r2,[r3,4] - ld.a r6,[r3,8] - ; stall for load result - sub r1,r2,r4 - bic_s r1,r1,r2 - sub r12,r6,r4 - bic r12,r12,r6 - or_s r12,r12,r1 - and r12,r12,r5 - breq_s r12,0,.Loop -.Lend: - and.f r1,r1,r5 - sub.ne r3,r3,4 -#ifdef __LITTLE_ENDIAN__ - mov.eq r1,r12 - btst_s r1,7 - sub r0,r3,r0 - add.eq r0,r0,1 - bmsk.f 0,r1,15 - add.eq r0,r0,1 - bmsk.f 0,r1,23 - j_s.d [blink] - add.eq r0,r0,1 -#else /* BIG ENDIAN */ -#ifdef __OPTIMIZE_SIZE__ -1: ldb_s r1,[r3] - breq_s r1,0,0f - ldb.a r1,[r3,1] - breq_s r1,0,0f - ldb.a r1,[r3,1] - breq_s r1,0,0f - add_s r3,r3,1 -0: j_s.d [blink] - sub r0,r3,r0 - -#define SPECIAL_EARLY_END -.Learly_end: - mov_s r3,r0 - b_s 1b -#elif 0 /* Need more information about pipeline to assess if this is faster. */ - mov.eq r2,r6 - and r2,r2,r5 - sub1 r2,r4,r2 - mov.eq r1,r12 - bic.f r1,r1,r2 - sub r0,r3,r0 - add.pl r0,r0,1 - btst.pl r1,23 - add.eq r0,r0,1 - btst.eq r1,15 - j_s.d [blink] - add.eq r0,r0,1 -#else /* !__OPTIMIZE_SIZE__ */ - /* Need carry clear here. */ - mov.eq r2,r6 -1: bmsk r1,r2,23 - breq r1,r2,0f - bmsk r2,r1,15 - breq.d r1,r2,0f - add_s r3,r3,1 - cmp r2,0x100 - add_s r3,r3,2 -0: j_s.d [blink] - sbc r0,r3,r0 - -#define SPECIAL_EARLY_END -.Learly_end: - sub_s.ne r1,r1,r1 - mov_s r12,0 - bset r12,r12,r7 - sub1 r2,r2,r12 - b.d .Lend - sub1.ne r6,r6,r12 -#endif /* !__OPTIMIZE_SIZE__ */ -#endif /* ENDIAN */ - -#ifndef SPECIAL_EARLY_END - .balign 4 -.Learly_end: - b.d .Lend - sub_s.ne r1,r1,r1 -#endif /* !SPECIAL_EARLY_END */ -ENDFUNC (strlen) -#endif /* __ARC601__ || !__ARC_BARREL_SHIFTER__*/ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/strncpy-bs.S b/lib/machine/arc/strncpy-bs.S deleted file mode 100644 index ec99152..0000000 --- a/lib/machine/arc/strncpy-bs.S +++ /dev/null @@ -1,171 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/strncpy.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -/* If dst and src are 4 byte aligned, copy 8 bytes at a time. - If the src is 4, but not 8 byte aligned, we first read 4 bytes to get - it 8 byte aligned. Thus, we can do a little read-ahead, without - dereferencing a cache line that we should not touch. - Note that short and long instructions have been scheduled to avoid - branch stalls. - The beq_s to r3z could be made unaligned & long to avoid a stall - there, but the it is not likely to be taken often, and it - would also be likey to cost an unaligned mispredict at the next call. */ - -#if !defined (__ARC601__) && defined (__ARC_BARREL_SHIFTER__) - -#if defined (__ARC700___) || defined (__ARCEM__) || defined (__ARCHS__) -#define BRand(a,b,l) tst a,b ` bne_l l -#else -#define BRand(a,b,l) and a,a,b ` brne_s a,0,l -#endif - -ENTRY (strncpy) - cmp_s r2,8 - or r12,r0,r1 - bmsk.cc.f r12,r12,1 - brne.d r12,0,.Lbytewise - mov_s r10,r0 - ld_s r3,[r1,0] - mov r8,0x01010101 - sub lp_count,r2,1 - bbit0.d r1,2,.Loop_start - ror r11,r8 - sub r12,r3,r8 - bic_l r12,r12,r3 - BRand (r12,r11,.Lr3z) - mov_s r4,r3 - ld.a r3,[r1,4] - sub lp_count,lp_count,4 - st.ab r4,[r10,4] - .balign 4 -.Loop_start: - lsr.f lp_count,lp_count,3 - lpne .Loop_end - ld.a r4,[r1,4] - sub r12,r3,r8 - bic_s r12,r12,r3 - BRand (r12,r11,.Lr3z) - st.ab r3,[r10,4] - sub r12,r4,r8 - bic r12,r12,r4 - BRand (r12,r11,.Lr4z) - ld.a r3,[r1,4] - st.ab r4,[r10,4] -.Loop_end: - bcc_s .Lastword - ld.a r4,[r1,4] - sub r12,r3,r8 - bic_s r12,r12,r3 - BRand (r12,r11,.Lr3z) - st.ab r3,[r10,4] - mov_s r3,r4 -.Lastword: - and.f lp_count,r2,3 - mov.eq lp_count,4 - lp .Last_byte_end -#ifdef __LITTLE_ENDIAN__ - bmsk.f r1,r3,7 - lsr.ne r3,r3,8 -#else - lsr.f r1,r3,24 - asl.ne r3,r3,8 -#endif - stb.ab r1,[r10,1] -.Last_byte_end: - j_s [blink] - - .balign 4 -.Lr4z: - mov_l r3,r4 -.Lr3z: -#if defined (__ARC700__) || defined (__ARCEM__) || defined (__ARCHS__) -#ifdef __LITTLE_ENDIAN__ - bmsk.f r1,r3,7 - lsr_s r3,r3,8 -#else - lsr.f r1,r3,24 - asl_s r3,r3,8 -#endif - bne.d .Lr3z - stb.ab r1,[r10,1] -#else /* ! __ARC700__ */ -#ifdef __LITTLE_ENDIAN__ - bmsk.f r1,r3,7 -.Lr3z_loop: - lsr_s r3,r3,8 - stb.ab r1,[r10,1] - bne.d .Lr3z_loop - bmsk.f r1,r3,7 -#else - lsr.f r1,r3,24 -.Lr3z_loop: - asl_s r3,r3,8 - stb.ab r1,[r10,1] - bne.d .Lr3z_loop - lsr.f r1,r3,24 -#endif /* ENDIAN */ -#endif /* ! __ARC700__ */ -.Lzero_rest: - ; __strncpy_bzero requires: - ; return value in r0 - ; zeroing length in r2 - ; zeroing start address in r3 - mov_s r3,r10 - add_s r2,r2,r0 - b.d __strncpy_bzero - sub_s r2,r2,r3 - - .balign 4 -.Lbytewise: - sub.f r2,r2,1 - mov_l r3,r0 - jcs [blink] -.Lcharloop: - ldb.ab r12,[r1,1] - beq.d .Last_byte - sub.f r2,r2,1 - brne.d r12,0,.Lcharloop - stb.ab r12,[r3,1] - b.d __strncpy_bzero - stb.ab r12,[r3,1] -.Last_byte: - j_s.d [blink] - stb_l r12,[r3] -ENDFUNC (strncpy) -#endif /* !__ARC601__ && __ARC_BARREL_SHIFTER__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arc/strncpy-stub.c b/lib/machine/arc/strncpy-stub.c deleted file mode 100644 index 3f8f9db..0000000 --- a/lib/machine/arc/strncpy-stub.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - - -#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) -# include "../../string/strncpy.c" -#else -/* See strncpy-*.S. */ -#endif diff --git a/lib/machine/arc/strncpy.S b/lib/machine/arc/strncpy.S deleted file mode 100644 index b04f589..0000000 --- a/lib/machine/arc/strncpy.S +++ /dev/null @@ -1,134 +0,0 @@ -/* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1) Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2) Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3) Neither the name of the Synopsys, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* This implementation is optimized for performance. For code size a generic - implementation of this function from newlib/libc/string/strncpy.c will be - used. */ -#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) - -#include "asm.h" - -/* If dst and src are 4 byte aligned, copy 8 bytes at a time. - If the src is 4, but not 8 byte aligned, we first read 4 bytes to get - it 8 byte aligned. Thus, we can do a little read-ahead, without - dereferencing a cache line that we should not touch. */ - -#if defined (__ARC601__) || !defined (__ARC_BARREL_SHIFTER__) - -#define BRand(a,b,l) and a,a,b ` brne_s a,0,l - -ENTRY (strncpy) - cmp_s r2,8 - or r12,r0,r1 - bmsk.cc.f r12,r12,1 - brne.d r12,0,.Lbytewise - mov_s r10,r0 - ld_s r3,[r1,0] - mov r8,0x01010101 - add r6,r0,r2 - sub r6,r6,8 - bbit0.d r1,2,.Loop_start - ror r11,r8 - sub r12,r3,r8 - bic_l r12,r12,r3 - BRand (r12,r11,.Lr3z) - mov_s r4,r3 - ld.a r3,[r1,4] - st.ab r4,[r10,4] - .balign 4 -.Loop_start: - brhs r10,r6,.Loop_end -1: - ld.a r4,[r1,4] - sub r12,r3,r8 - bic_s r12,r12,r3 - BRand (r12,r11,.Lr3z2) - st.ab r3,[r10,8] - sub r12,r4,r8 - bic r12,r12,r4 - BRand (r12,r11,.Lr4z) - ld.a r3,[r1,4] - brlo.d r10,r6,1b - st r4,[r10,-4] -.Loop_end: - add r6,r6,4 - brhs r10,r6,.Lastword - sub r12,r3,r8 - bic_s r12,r12,r3 - BRand (r12,r11,.Lr3z) - add_s r1,r1,4 - st.ab r3,[r10,4] -.Lastword: - sub_s r2,r2,1 - b.d .Lstart_charloop - bmsk.f r2,r2,1 - - .balign 4 - nop_s -.Lr3z2: sub_s r1,r1,4 -.Lr4z: -.Lr3z: - .balign 4 -.Lr3z_loop: - ldb.ab r3,[r1,1] - brne.d r3,0,.Lr3z_loop - stb.ab r3,[r10,1] - -.Lzero_rest: - ; __strncpy_bzero requires: - ; return value in r0 - ; zeroing length in r2 - ; zeroing start address in r3 - mov_s r3,r10 - add_s r2,r2,r0 - b.d __strncpy_bzero - sub_s r2,r2,r3 - - .balign 4 -.Lbytewise: - sub.f r2,r2,1 - jcs [blink] -.Lstart_charloop: - mov_s r3,r10 -.Lcharloop: - ldb.ab r12,[r1,1] - beq.d .Last_byte - sub.f r2,r2,1 - brne.d r12,0,.Lcharloop - stb.ab r12,[r3,1] - b.d __strncpy_bzero - stb.ab r12,[r3,1] -.Last_byte: - j_s.d [blink] - stb_s r12,[r3] -ENDFUNC (strncpy) -#endif /* __ARC601__ || !__ARC_BARREL_SHIFTER__ */ - -#endif /* !__OPTIMIZE_SIZE__ && !PREFER_SIZE_OVER_SPEED */ diff --git a/lib/machine/arm/Makefile.inc b/lib/machine/arm/Makefile.inc deleted file mode 100644 index 2d6c08d..0000000 --- a/lib/machine/arm/Makefile.inc +++ /dev/null @@ -1,11 +0,0 @@ -libc_a_SOURCES += \ - %D%/setjmp.S %D%/strcmp.S %D%/strcpy.c \ - %D%/aeabi_memcpy.c %D%/aeabi_memcpy-armv7a.S \ - %D%/aeabi_memmove.c %D%/aeabi_memmove-soft.S \ - %D%/aeabi_memset.c %D%/aeabi_memset-soft.S %D%/aeabi_memclr.c \ - %D%/memchr-stub.c \ - %D%/memchr.S \ - %D%/memcpy-stub.c \ - %D%/memcpy.S \ - %D%/strlen-stub.c \ - %D%/strlen.S diff --git a/lib/machine/arm/aeabi_memclr.c b/lib/machine/arm/aeabi_memclr.c deleted file mode 100644 index 6da9135..0000000 --- a/lib/machine/arm/aeabi_memclr.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include <_ansi.h> - -/* Support the alias for the __aeabi_memclr which may - assume memory alignment. */ -void __aeabi_memclr4 (void *dest, size_t n) - _ATTRIBUTE ((alias ("__aeabi_memclr"))); - -void __aeabi_memclr8 (void *dest, size_t n) - _ATTRIBUTE ((alias ("__aeabi_memclr"))); - -/* Support the routine __aeabi_memclr. */ -void __aeabi_memclr (void *dest, size_t n) -{ - extern void __aeabi_memset (void *dest, size_t n, int c); - __aeabi_memset (dest, n, 0); -} diff --git a/lib/machine/arm/aeabi_memcpy-armv7a.S b/lib/machine/arm/aeabi_memcpy-armv7a.S deleted file mode 100644 index 0de3104..0000000 --- a/lib/machine/arm/aeabi_memcpy-armv7a.S +++ /dev/null @@ -1,286 +0,0 @@ -/* - * Copyright (c) 2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include - -/* NOTE: This ifdef MUST match the one in aeabi_memcpy.c. */ -#if defined (__ARM_ARCH_7A__) && defined (__ARM_FEATURE_UNALIGNED) && \ - (defined (__ARM_NEON__) || !defined (__SOFTFP__)) - - .syntax unified - .global __aeabi_memcpy - .type __aeabi_memcpy, %function -__aeabi_memcpy: - /* Assumes that n >= 0, and dst, src are valid pointers. - If there is at least 8 bytes to copy, use LDRD/STRD. - If src and dst are misaligned with different offsets, - first copy byte by byte until dst is aligned, - and then copy using LDRD/STRD and shift if needed. - When less than 8 left, copy a word and then byte by byte. */ - - /* Save registers (r0 holds the return value): - optimized push {r0, r4, r5, lr}. - To try and improve performance, stack layout changed, - i.e., not keeping the stack looking like users expect - (highest numbered register at highest address). */ - push {r0, lr} - strd r4, r5, [sp, #-8]! - - /* Get copying of tiny blocks out of the way first. */ - /* Is there at least 4 bytes to copy? */ - subs r2, r2, #4 - blt copy_less_than_4 /* If n < 4. */ - - /* Check word alignment. */ - ands ip, r0, #3 /* ip = last 2 bits of dst. */ - bne dst_not_word_aligned /* If dst is not word-aligned. */ - - /* Get here if dst is word-aligned. */ - ands ip, r1, #3 /* ip = last 2 bits of src. */ - bne src_not_word_aligned /* If src is not word-aligned. */ -word_aligned: - /* Get here if source and dst both are word-aligned. - The number of bytes remaining to copy is r2+4. */ - - /* Is there is at least 64 bytes to copy? */ - subs r2, r2, #60 - blt copy_less_than_64 /* If r2 + 4 < 64. */ - - /* First, align the destination buffer to 8-bytes, - to make sure double loads and stores don't cross cache line boundary, - as they are then more expensive even if the data is in the cache - (require two load/store issue cycles instead of one). - If only one of the buffers is not 8-bytes aligned, - then it's more important to align dst than src, - because there is more penalty for stores - than loads that cross cacheline boundary. - This check and realignment are only worth doing - if there is a lot to copy. */ - - /* Get here if dst is word aligned, - i.e., the 2 least significant bits are 0. - If dst is not 2w aligned (i.e., the 3rd bit is not set in dst), - then copy 1 word (4 bytes). */ - ands r3, r0, #4 - beq two_word_aligned /* If dst already two-word aligned. */ - ldr r3, [r1], #4 - str r3, [r0], #4 - subs r2, r2, #4 - blt copy_less_than_64 - -two_word_aligned: - /* TODO: Align to cacheline (useful for PLD optimization). */ - - /* Every loop iteration copies 64 bytes. */ -1: - .irp offset, #0, #8, #16, #24, #32, #40, #48, #56 - ldrd r4, r5, [r1, \offset] - strd r4, r5, [r0, \offset] - .endr - - add r0, r0, #64 - add r1, r1, #64 - subs r2, r2, #64 - bge 1b /* If there is more to copy. */ - -copy_less_than_64: - - /* Get here if less than 64 bytes to copy, -64 <= r2 < 0. - Restore the count if there is more than 7 bytes to copy. */ - adds r2, r2, #56 - blt copy_less_than_8 - - /* Copy 8 bytes at a time. */ -2: - ldrd r4, r5, [r1], #8 - strd r4, r5, [r0], #8 - subs r2, r2, #8 - bge 2b /* If there is more to copy. */ - -copy_less_than_8: - - /* Get here if less than 8 bytes to copy, -8 <= r2 < 0. - Check if there is more to copy. */ - cmn r2, #8 - beq return /* If r2 + 8 == 0. */ - - /* Restore the count if there is more than 3 bytes to copy. */ - adds r2, r2, #4 - blt copy_less_than_4 - - /* Copy 4 bytes. */ - ldr r3, [r1], #4 - str r3, [r0], #4 - -copy_less_than_4: - /* Get here if less than 4 bytes to copy, -4 <= r2 < 0. */ - - /* Restore the count, check if there is more to copy. */ - adds r2, r2, #4 - beq return /* If r2 == 0. */ - - /* Get here with r2 is in {1,2,3}={01,10,11}. */ - /* Logical shift left r2, insert 0s, update flags. */ - lsls r2, r2, #31 - - /* Copy byte by byte. - Condition ne means the last bit of r2 is 0. - Condition cs means the second to last bit of r2 is set, - i.e., r2 is 1 or 3. */ - itt ne - ldrbne r3, [r1], #1 - strbne r3, [r0], #1 - - itttt cs - ldrbcs r4, [r1], #1 - ldrbcs r5, [r1] - strbcs r4, [r0], #1 - strbcs r5, [r0] - -return: - /* Restore registers: optimized pop {r0, r4, r5, pc} */ - ldrd r4, r5, [sp], #8 - pop {r0, pc} /* This is the only return point of memcpy. */ - -dst_not_word_aligned: - - /* Get here when dst is not aligned and ip has the last 2 bits of dst, - i.e., ip is the offset of dst from word. - The number of bytes that remains to copy is r2 + 4, - i.e., there are at least 4 bytes to copy. - Write a partial word (0 to 3 bytes), such that dst becomes - word-aligned. */ - - /* If dst is at ip bytes offset from a word (with 0 < ip < 4), - then there are (4 - ip) bytes to fill up to align dst to the next - word. */ - rsb ip, ip, #4 /* ip = #4 - ip. */ - cmp ip, #2 - - /* Copy byte by byte with conditionals. */ - itt gt - ldrbgt r3, [r1], #1 - strbgt r3, [r0], #1 - - itt ge - ldrbge r4, [r1], #1 - strbge r4, [r0], #1 - - ldrb lr, [r1], #1 - strb lr, [r0], #1 - - /* Update the count. - ip holds the number of bytes we have just copied. */ - subs r2, r2, ip /* r2 = r2 - ip. */ - blt copy_less_than_4 /* If r2 < ip. */ - - /* Get here if there are more than 4 bytes to copy. - Check if src is aligned. If beforehand src and dst were not word - aligned but congruent (same offset), then now they are both - word-aligned, and we can copy the rest efficiently (without - shifting). */ - ands ip, r1, #3 /* ip = last 2 bits of src. */ - beq word_aligned /* If r1 is word-aligned. */ - -src_not_word_aligned: - /* Get here when src is not word-aligned, but dst is word-aligned. - The number of bytes that remains to copy is r2+4. */ - - /* Copy word by word using LDR when alignment can be done in hardware, - i.e., SCTLR.A is set, supporting unaligned access in LDR and STR. */ - subs r2, r2, #60 - blt 8f - -7: - /* Copy 64 bytes in every loop iteration. */ - .irp offset, #0, #4, #8, #12, #16, #20, #24, #28, #32, #36, #40, #44, #48, #52, #56, #60 - ldr r3, [r1, \offset] - str r3, [r0, \offset] - .endr - - add r0, r0, #64 - add r1, r1, #64 - subs r2, r2, #64 - bge 7b - -8: - /* Get here if less than 64 bytes to copy, -64 <= r2 < 0. - Check if there is more than 3 bytes to copy. */ - adds r2, r2, #60 - blt copy_less_than_4 - -9: - /* Get here if there is less than 64 but at least 4 bytes to copy, - where the number of bytes to copy is r2+4. */ - ldr r3, [r1], #4 - str r3, [r0], #4 - subs r2, r2, #4 - bge 9b - - b copy_less_than_4 - - - .syntax unified - .global __aeabi_memcpy4 - .type __aeabi_memcpy4, %function -__aeabi_memcpy4: - /* Assumes that both of its arguments are 4-byte aligned. */ - - push {r0, lr} - strd r4, r5, [sp, #-8]! - - /* Is there at least 4 bytes to copy? */ - subs r2, r2, #4 - blt copy_less_than_4 /* If n < 4. */ - - bl word_aligned - - .syntax unified - .global __aeabi_memcpy8 - .type __aeabi_memcpy8, %function -__aeabi_memcpy8: - /* Assumes that both of its arguments are 8-byte aligned. */ - - push {r0, lr} - strd r4, r5, [sp, #-8]! - - /* Is there at least 4 bytes to copy? */ - subs r2, r2, #4 - blt copy_less_than_4 /* If n < 4. */ - - /* Is there at least 8 bytes to copy? */ - subs r2, r2, #4 - blt copy_less_than_8 /* If n < 8. */ - - /* Is there at least 64 bytes to copy? */ - subs r2, r2, #56 - blt copy_less_than_64 /* if n + 8 < 64. */ - - bl two_word_aligned - -#endif diff --git a/lib/machine/arm/aeabi_memcpy.c b/lib/machine/arm/aeabi_memcpy.c deleted file mode 100644 index 9837c35..0000000 --- a/lib/machine/arm/aeabi_memcpy.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include <_ansi.h> - -/* According to the Run-time ABI for the ARM Architecture. This - function is allowed to corrupt only the integer core register - permitted to be corrupted by the [AAPCS] (r0-r3, ip, lr, and - CPSR). - - The FP registers are used in memcpy for target __ARM_ARCH_7A. - Therefore, we can't just simply use alias to support the function - aeabi_memcpy for target __ARM_ARCH_7A. Instead, we choose the - previous versions of memcpy to suppport it as an alternative. */ - -/* NOTE: This ifdef MUST match the one in aeabi_memcpy-armv7a.S. */ -#if defined (__ARM_ARCH_7A__) && defined (__ARM_FEATURE_UNALIGNED) && \ - (defined (__ARM_NEON__) || !defined (__SOFTFP__)) - -/* Defined in aeabi_memcpy-armv7a.S. */ - -#else -/* Support the alias for the __aeabi_memcpy which may - assume memory alignment. */ -void __aeabi_memcpy4 (void *dest, const void *source, size_t n) - _ATTRIBUTE ((alias ("__aeabi_memcpy"))); - -void __aeabi_memcpy8 (void *dest, const void *source, size_t n) - _ATTRIBUTE ((alias ("__aeabi_memcpy"))); - -/* Support the routine __aeabi_memcpy. Can't alias to memcpy - because it's not defined in the same translation unit. */ -void __aeabi_memcpy (void *dest, const void *source, size_t n) -{ - extern void memcpy (void *dest, const void *source, size_t n); - memcpy (dest, source, n); -} -#endif diff --git a/lib/machine/arm/aeabi_memmove-arm.S b/lib/machine/arm/aeabi_memmove-arm.S deleted file mode 100644 index 541444d..0000000 --- a/lib/machine/arm/aeabi_memmove-arm.S +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - .arm - .syntax unified - .global __aeabi_memmove - .type __aeabi_memmove, %function - ASM_ALIAS __aeabi_memmove4 __aeabi_memmove - ASM_ALIAS __aeabi_memmove8 __aeabi_memmove -__aeabi_memmove: - cmp r0, r1 - bls 2f - add r3, r1, r2 - cmp r0, r3 - bcs 2f - cmp r2, #0 - add r1, r0, r2 - bxeq lr - rsb r2, r2, r3 -1: - ldrb ip, [r3, #-1]! - cmp r2, r3 - strb ip, [r1, #-1]! - bne 1b - bx lr -2: - cmp r2, #0 - addne r2, r1, r2 - subne r3, r0, #1 - beq 4f -3: - ldrb ip, [r1], #1 - cmp r2, r1 - strb ip, [r3, #1]! - bne 3b - bx lr -4: - bx lr - .size __aeabi_memmove, . - __aeabi_memmove diff --git a/lib/machine/arm/aeabi_memmove-soft.S b/lib/machine/arm/aeabi_memmove-soft.S deleted file mode 100644 index 8c071bd..0000000 --- a/lib/machine/arm/aeabi_memmove-soft.S +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -.macro ASM_ALIAS new old - .global \new - .type \new, %function -#if defined (__thumb__) - .thumb_set \new, \old -#else - .set \new, \old -#endif -.endm - -/* NOTE: This ifdef MUST match the one in aeabi_memmove.c. */ -#if !defined (__SOFTFP__) - -# if defined (__thumb2__) -# include "aeabi_memmove-thumb2.S" -# elif defined (__thumb__) -# include "aeabi_memmove-thumb.S" -# else -# include "aeabi_memmove-arm.S" -# endif - -#endif diff --git a/lib/machine/arm/aeabi_memmove-thumb.S b/lib/machine/arm/aeabi_memmove-thumb.S deleted file mode 100644 index 4881d34..0000000 --- a/lib/machine/arm/aeabi_memmove-thumb.S +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "arm-acle-compat.h" - - .thumb - .syntax unified - .global __aeabi_memmove - .type __aeabi_memmove, %function - ASM_ALIAS __aeabi_memmove4 __aeabi_memmove - ASM_ALIAS __aeabi_memmove8 __aeabi_memmove -__aeabi_memmove: - push {r4, lr} - cmp r0, r1 - bls 3f - adds r4, r1, r2 - cmp r0, r4 - bcs 3f - subs r3, r2, #1 - cmp r2, #0 - beq 2f - subs r2, r4, r2 -1: - ldrb r1, [r2, r3] - strb r1, [r0, r3] - subs r3, r3, #1 - bcs 1b -2: -#if __ARM_ARCH >= 5 - pop {r4, pc} -#else - pop {r4} - pop {r1} - bx r1 -#endif -3: - movs r3, #0 - cmp r2, #0 - beq 2b -4: - ldrb r4, [r1, r3] - strb r4, [r0, r3] - adds r3, r3, #1 - cmp r2, r3 - bne 4b - b 2b - .size __aeabi_memmove, . - __aeabi_memmove diff --git a/lib/machine/arm/aeabi_memmove-thumb2.S b/lib/machine/arm/aeabi_memmove-thumb2.S deleted file mode 100644 index 20ca993..0000000 --- a/lib/machine/arm/aeabi_memmove-thumb2.S +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "arm_asm.h" - - .thumb - .syntax unified - .global __aeabi_memmove - .type __aeabi_memmove, %function - ASM_ALIAS __aeabi_memmove4 __aeabi_memmove - ASM_ALIAS __aeabi_memmove8 __aeabi_memmove -__aeabi_memmove: - .fnstart - .cfi_startproc - prologue 4 - cmp r0, r1 - bls 3f - adds r3, r1, r2 - cmp r0, r3 - bcs 3f - adds r1, r0, r2 - cbz r2, 2f - subs r2, r3, r2 -1: - ldrb r4, [r3, #-1]! - cmp r2, r3 - strb r4, [r1, #-1]! - bne 1b -2: - .cfi_remember_state - epilogue 4 -3: - .cfi_restore_state - cmp r2, #0 - beq 2b - add r2, r2, r1 - subs r3, r0, #1 -4: - ldrb r4, [r1], #1 - cmp r2, r1 - strb r4, [r3, #1]! - bne 4b - epilogue 4 - .cfi_endproc - .cantunwind - .fnend - .size __aeabi_memmove, . - __aeabi_memmove diff --git a/lib/machine/arm/aeabi_memmove.c b/lib/machine/arm/aeabi_memmove.c deleted file mode 100644 index 1e2bbaf..0000000 --- a/lib/machine/arm/aeabi_memmove.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include <_ansi.h> - -/* According to the run-time ABI for the ARM Architecture, this - function is allowed to corrupt only the integer core register - permitted to be corrupted by the [AAPCS] (r0-r3, ip, lr, and - CPSR). - - Therefore, we can't just simply use alias to support the function - aeabi_memmove for the targets with FP register. Instead, versions - for these specific targets are written in assembler (in - aeabi_memmove-soft.S). */ - -/* NOTE: This ifdef MUST match the one in aeabi_memmove-soft.S. */ -#if !defined (__SOFTFP__) - -/* Defined in aeabi_memmove-soft.S. */ - -#else -/* Support the alias for the __aeabi_memmove which may - assume memory alignment. */ -void __aeabi_memmove4 (void *dest, const void *source, size_t n) - _ATTRIBUTE ((alias ("__aeabi_memmove"))); - -void __aeabi_memmove8 (void *dest, const void *source, size_t n) - _ATTRIBUTE ((alias ("__aeabi_memmove"))); - -/* Support the routine __aeabi_memmove. Can't alias to memmove - because it's not defined in the same translation unit. */ -void __aeabi_memmove (void *dest, const void *source, size_t n) -{ - extern void memmove (void *dest, const void *source, size_t n); - memmove (dest, source, n); -} -#endif diff --git a/lib/machine/arm/aeabi_memset-arm.S b/lib/machine/arm/aeabi_memset-arm.S deleted file mode 100644 index 1c7bec5..0000000 --- a/lib/machine/arm/aeabi_memset-arm.S +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - .arm - .syntax unified - .global __aeabi_memset - .type __aeabi_memset, %function - ASM_ALIAS __aeabi_memset4 __aeabi_memset - ASM_ALIAS __aeabi_memset8 __aeabi_memset -__aeabi_memset: - tst r0, #3 - stmfd sp!, {r4, lr} - beq 10f - cmp r1, #0 - sub r1, r1, #1 - beq 9f - and ip, r2, #255 - mov r3, r0 - b 2f -1: - cmp r1, #0 - sub r1, r1, #1 - beq 9f -2: - strb ip, [r3], #1 - tst r3, #3 - bne 1b -3: - cmp r1, #3 - bls 7f - and lr, r2, #255 - orr lr, lr, lr, asl #8 - cmp r1, #15 - orr lr, lr, lr, asl #16 - bls 5f - mov r4, r1 - add ip, r3, #16 -4: - sub r4, r4, #16 - cmp r4, #15 - str lr, [ip, #-16] - str lr, [ip, #-12] - str lr, [ip, #-8] - str lr, [ip, #-4] - add ip, ip, #16 - bhi 4b - sub ip, r1, #16 - bic ip, ip, #15 - and r1, r1, #15 - add ip, ip, #16 - cmp r1, #3 - add r3, r3, ip - bls 7f -5: - mov r4, r3 - mov ip, r1 -6: - sub ip, ip, #4 - cmp ip, #3 - str lr, [r4], #4 - bhi 6b - sub ip, r1, #4 - bic ip, ip, #3 - add ip, ip, #4 - add r3, r3, ip - and r1, r1, #3 -7: - cmp r1, #0 - andne r2, r2, #255 - addne r1, r3, r1 - beq 9f -8: - strb r2, [r3], #1 - cmp r3, r1 - bne 8b -9: - ldmfd sp!, {r4, lr} - bx lr -10: - mov r3, r0 - b 3b - .size __aeabi_memset, . - __aeabi_memset diff --git a/lib/machine/arm/aeabi_memset-soft.S b/lib/machine/arm/aeabi_memset-soft.S deleted file mode 100644 index cacf2f4..0000000 --- a/lib/machine/arm/aeabi_memset-soft.S +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -.macro ASM_ALIAS new old - .global \new - .type \new, %function -#if defined (__thumb__) - .thumb_set \new, \old -#else - .set \new, \old -#endif -.endm - -/* NOTE: This ifdef MUST match the one in aeabi_memset.c. */ -#if !defined (__SOFTFP__) - -# if defined (__thumb2__) -# include "aeabi_memset-thumb2.S" -# elif defined (__thumb__) -# include "aeabi_memset-thumb.S" -# else -# include "aeabi_memset-arm.S" -# endif - -#endif diff --git a/lib/machine/arm/aeabi_memset-thumb.S b/lib/machine/arm/aeabi_memset-thumb.S deleted file mode 100644 index 087c188..0000000 --- a/lib/machine/arm/aeabi_memset-thumb.S +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "arm-acle-compat.h" - - .thumb - .syntax unified - .global __aeabi_memset - .type __aeabi_memset, %function - ASM_ALIAS __aeabi_memset4 __aeabi_memset - ASM_ALIAS __aeabi_memset8 __aeabi_memset -__aeabi_memset: - push {r4, r5, r6, lr} - lsls r3, r0, #30 - beq 10f - subs r4, r1, #1 - cmp r1, #0 - beq 9f - lsls r5, r2, #24 - lsrs r5, r5, #24 - movs r3, r0 - movs r6, #3 - b 2f -1: - subs r1, r4, #1 - cmp r4, #0 - beq 9f - movs r4, r1 -2: - adds r3, r3, #1 - subs r1, r3, #1 - strb r5, [r1] - tst r3, r6 - bne 1b -3: - cmp r4, #3 - bls 7f - movs r5, #255 - ands r5, r2 - lsls r1, r5, #8 - orrs r5, r1 - lsls r1, r5, #16 - orrs r5, r1 - cmp r4, #15 - bls 5f - movs r6, r4 - subs r6, r6, #16 - lsrs r6, r6, #4 - adds r6, r6, #1 - lsls r6, r6, #4 - movs r1, r3 - adds r3, r3, r6 -4: - str r5, [r1] - str r5, [r1, #4] - str r5, [r1, #8] - str r5, [r1, #12] - adds r1, r1, #16 - cmp r3, r1 - bne 4b - movs r1, #15 - ands r4, r1 - cmp r4, #3 - bls 7f -5: - subs r6, r4, #4 - lsrs r6, r6, #2 - adds r6, r6, #1 - lsls r6, r6, #2 - movs r1, r3 - adds r3, r3, r6 -6: - stmia r1!, {r5} - cmp r3, r1 - bne 6b - movs r1, #3 - ands r4, r1 -7: - cmp r4, #0 - beq 9f - lsls r2, r2, #24 - lsrs r2, r2, #24 - adds r4, r3, r4 -8: - strb r2, [r3] - adds r3, r3, #1 - cmp r4, r3 - bne 8b -9: -#if __ARM_ARCH >= 5 - pop {r4, r5, r6, pc} -#else - pop {r4, r5, r6} - pop {r1} - bx r1 -#endif -10: - movs r3, r0 - movs r4, r1 - b 3b - .size __aeabi_memset, . - __aeabi_memset diff --git a/lib/machine/arm/aeabi_memset-thumb2.S b/lib/machine/arm/aeabi_memset-thumb2.S deleted file mode 100644 index 6b77d38..0000000 --- a/lib/machine/arm/aeabi_memset-thumb2.S +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "arm_asm.h" - - .thumb - .syntax unified - .global __aeabi_memset - .type __aeabi_memset, %function - .fnstart - .cfi_startproc - ASM_ALIAS __aeabi_memset4 __aeabi_memset - ASM_ALIAS __aeabi_memset8 __aeabi_memset -__aeabi_memset: - prologue 4 6 - lsls r4, r0, #30 - beq 10f - subs r4, r1, #1 - cmp r1, #0 - beq 9f - uxtb r5, r2 - mov r3, r0 - b 2f -1: - subs r1, r4, #1 - cbz r4, 9f - mov r4, r1 -2: - strb r5, [r3], #1 - lsls r1, r3, #30 - bne 1b -3: - cmp r4, #3 - bls 7f - uxtb r5, r2 - orr r5, r5, r5, lsl #8 - cmp r4, #15 - orr r5, r5, r5, lsl #16 - bls 5f - mov r6, r4 - add r1, r3, #16 -4: - subs r6, r6, #16 - cmp r6, #15 - str r5, [r1, #-16] - str r5, [r1, #-12] - str r5, [r1, #-8] - str r5, [r1, #-4] - add r1, r1, #16 - bhi 4b - sub r1, r4, #16 - bic r1, r1, #15 - and r4, r4, #15 - adds r1, r1, #16 - cmp r4, #3 - add r3, r3, r1 - bls 7f -5: - mov r6, r3 - mov r1, r4 -6: - subs r1, r1, #4 - cmp r1, #3 - str r5, [r6], #4 - bhi 6b - subs r1, r4, #4 - bic r1, r1, #3 - adds r1, r1, #4 - add r3, r3, r1 - and r4, r4, #3 -7: - cbz r4, 9f - uxtb r2, r2 - add r4, r4, r3 -8: - strb r2, [r3], #1 - cmp r3, r4 - bne 8b -9: - .cfi_remember_state - epilogue 4 6 -10: - .cfi_restore_state - mov r4, r1 - mov r3, r0 - b 3b - .cfi_endproc - .cantunwind - .fnend - .size __aeabi_memset, . - __aeabi_memset diff --git a/lib/machine/arm/aeabi_memset.c b/lib/machine/arm/aeabi_memset.c deleted file mode 100644 index 8a97320..0000000 --- a/lib/machine/arm/aeabi_memset.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include <_ansi.h> - -/* According to the run-time ABI for the ARM Architecture, this - function is allowed to corrupt only the integer core register - permitted to be corrupted by the [AAPCS] (r0-r3, ip, lr, and - CPSR). - - Therefore, we can't just simply use alias to support the function - aeabi_memset for the targets with FP register. Instead, versions - for these specific targets are written in assembler (in - aeabi_memset-soft.S). */ - -/* NOTE: This ifdef MUST match the one in aeabi_memset-soft.S. */ -#if !defined (__SOFTFP__) - -/* Defined in aeabi_memset-soft.S. */ - -#else -/* Support the alias for the __aeabi_memset which may - assume memory alignment. */ -void __aeabi_memset4 (void *dest, size_t n, int c) - _ATTRIBUTE ((alias ("__aeabi_memset"))); - -void __aeabi_memset8 (void *dest, size_t n, int c) - _ATTRIBUTE ((alias ("__aeabi_memset"))); - -/* Support the routine __aeabi_memset. Can't alias to memset - because it's not defined in the same translation unit. */ -void __aeabi_memset (void *dest, size_t n, int c) -{ - /*Note that relative to ANSI memset, __aeabi_memset hase the order - of its second and third arguments reversed. */ - extern void memset (void *dest, int c, size_t n); - memset (dest, c, n); -} -#endif diff --git a/lib/machine/arm/arm_asm.h b/lib/machine/arm/arm_asm.h deleted file mode 100644 index d75bb8e..0000000 --- a/lib/machine/arm/arm_asm.h +++ /dev/null @@ -1,504 +0,0 @@ -/* - * Copyright (c) 2009 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef ARM_ASM__H -#define ARM_ASM__H - -#include "arm-acle-compat.h" - -#if __ARM_ARCH >= 7 && defined (__ARM_ARCH_ISA_ARM) -# define _ISA_ARM_7 -#endif - -#if __ARM_ARCH >= 6 && defined (__ARM_ARCH_ISA_ARM) -# define _ISA_ARM_6 -#endif - -#if __ARM_ARCH >= 5 -# define _ISA_ARM_5 -#endif - -#if __ARM_ARCH >= 4 && __ARM_ARCH_ISA_THUMB >= 1 -# define _ISA_ARM_4T -#endif - -#if __ARM_ARCH >= 4 && __ARM_ARCH_ISA_THUMB == 0 -# define _ISA_ARM_4 -#endif - - -#if __ARM_ARCH_ISA_THUMB >= 2 -# define _ISA_THUMB_2 -#endif - -#if __ARM_ARCH_ISA_THUMB >= 1 -# define _ISA_THUMB_1 -#endif - -/* Check whether leaf function PAC signing has been requested in the - -mbranch-protect compile-time option. */ -#define LEAF_PROTECT_BIT 2 - -#ifdef __ARM_FEATURE_PAC_DEFAULT -# define HAVE_PAC_LEAF \ - ((__ARM_FEATURE_PAC_DEFAULT & (1 << LEAF_PROTECT_BIT)) && 1) -#else -# define HAVE_PAC_LEAF 0 -#endif - -/* Provide default parameters for PAC-code handling in leaf-functions. */ -#if HAVE_PAC_LEAF -# ifndef PAC_LEAF_PUSH_IP -# define PAC_LEAF_PUSH_IP 1 -# endif -#else /* !HAVE_PAC_LEAF */ -# undef PAC_LEAF_PUSH_IP -# define PAC_LEAF_PUSH_IP 0 -#endif /* HAVE_PAC_LEAF */ - -#define STACK_ALIGN_ENFORCE 0 - -#ifdef __ASSEMBLER__ - -/****************************************************************************** -* Implementation of the prologue and epilogue assembler macros and their -* associated helper functions. -* -* These functions add support for the following: -* -* - M-profile branch target identification (BTI) landing-pads when compiled -* with `-mbranch-protection=bti'. -* - PAC-signing and verification instructions, depending on hardware support -* and whether the PAC-signing of leaf functions has been requested via the -* `-mbranch-protection=pac-ret+leaf' compiler argument. -* - 8-byte stack alignment preservation at function entry, defaulting to the -* value of STACK_ALIGN_ENFORCE. -* -* Notes: -* - Prologue stack alignment is implemented by detecting a push with an odd -* number of registers and prepending a dummy register to the list. -* - If alignment is attempted on a list containing r0, compilation will result -* in an error. -* - If alignment is attempted in a list containing r1, r0 will be prepended to -* the register list and r0 will be restored prior to function return. for -* functions with non-void return types, this will result in the corruption of -* the result register. -* - Stack alignment is enforced via the following helper macro call-chain: -* -* {prologue|epilogue} ->_align8 -> _preprocess_reglist -> -* _preprocess_reglist1 -> {_prologue|_epilogue} -* -* - Debug CFI directives are automatically added to prologues and epilogues, -* assisted by `cfisavelist' and `cfirestorelist', respectively. -* -* Arguments: -* prologue -* -------- -* - first - If `last' specified, this serves as start of general-purpose -* register (GPR) range to push onto stack, otherwise represents -* single GPR to push onto stack. If omitted, no GPRs pushed -* onto stack at prologue. -* - last - If given, specifies inclusive upper-bound of GPR range. -* - push_ip - Determines whether IP register is to be pushed to stack at -* prologue. When pac-signing is requested, this holds the -* the pac-key. Either 1 or 0 to push or not push, respectively. -* Default behavior: Set to value of PAC_LEAF_PUSH_IP macro. -* - push_lr - Determines whether to push lr to the stack on function entry. -* Either 1 or 0 to push or not push, respectively. -* - align8 - Whether to enforce alignment. Either 1 or 0, with 1 requesting -* alignment. -* -* epilogue -* -------- -* The epilogue should be called passing the same arguments as those passed to -* the prologue to ensure the stack is not corrupted on function return. -* -* Usage examples: -* -* prologue push_ip=1 -> push {ip} -* epilogue push_ip=1, align8=1 -> pop {r2, ip} -* prologue push_ip=1, push_lr=1 -> push {ip, lr} -* epilogue 1 -> pop {r1} -* prologue 1, align8=1 -> push {r0, r1} -* epilogue 1, push_ip=1 -> pop {r1, ip} -* prologue 1, 4 -> push {r1-r4} -* epilogue 1, 4 push_ip=1 -> pop {r1-r4, ip} -* -******************************************************************************/ - -/* Emit .cfi_restore directives for a consecutive sequence of registers. */ - .macro cfirestorelist first, last - .cfi_restore \last - .if \last-\first - cfirestorelist \first, \last-1 - .endif - .endm - -/* Emit .cfi_offset directives for a consecutive sequence of registers. */ - .macro cfisavelist first, last, index=1 - .cfi_offset \last, -4*(\index) - .if \last-\first - cfisavelist \first, \last-1, \index+1 - .endif - .endm - -.macro _prologue first=-1, last=-1, push_ip=PAC_LEAF_PUSH_IP, push_lr=0 - .if \push_ip & 1 != \push_ip - .error "push_ip may be either 0 or 1" - .endif - .if \push_lr & 1 != \push_lr - .error "push_lr may be either 0 or 1" - .endif - .if \first != -1 - .if \last == -1 - /* Upper-bound not provided: Set upper = lower. */ - _prologue \first, \first, \push_ip, \push_lr - .exitm - .endif - .endif -#if HAVE_PAC_LEAF -#if __ARM_FEATURE_BTI_DEFAULT - pacbti ip, lr, sp -#else - pac ip, lr, sp -#endif /* __ARM_FEATURE_BTI_DEFAULT */ - .cfi_register 143, 12 -#else -#if __ARM_FEATURE_BTI_DEFAULT - bti -#endif /* __ARM_FEATURE_BTI_DEFAULT */ -#endif /* HAVE_PAC_LEAF */ - .if \first != -1 - .if \last != \first - .if \last >= 13 - .error "SP cannot be in the save list" - .endif - .if \push_ip - .if \push_lr - /* Case 1: push register range, ip and lr registers. */ - push {r\first-r\last, ip, lr} - .cfi_adjust_cfa_offset ((\last-\first)+3)*4 - .cfi_offset 14, -4 - .cfi_offset 143, -8 - cfisavelist \first, \last, 3 - .else // !\push_lr - /* Case 2: push register range and ip register. */ - push {r\first-r\last, ip} - .cfi_adjust_cfa_offset ((\last-\first)+2)*4 - .cfi_offset 143, -4 - cfisavelist \first, \last, 2 - .endif - .else // !\push_ip - .if \push_lr - /* Case 3: push register range and lr register. */ - push {r\first-r\last, lr} - .cfi_adjust_cfa_offset ((\last-\first)+2)*4 - .cfi_offset 14, -4 - cfisavelist \first, \last, 2 - .else // !\push_lr - /* Case 4: push register range. */ - push {r\first-r\last} - .cfi_adjust_cfa_offset ((\last-\first)+1)*4 - cfisavelist \first, \last, 1 - .endif - .endif - .else // \last == \first - .if \push_ip - .if \push_lr - /* Case 5: push single GP register plus ip and lr registers. */ - push {r\first, ip, lr} - .cfi_adjust_cfa_offset 12 - .cfi_offset 14, -4 - .cfi_offset 143, -8 - cfisavelist \first, \first, 3 - .else // !\push_lr - /* Case 6: push single GP register plus ip register. */ - push {r\first, ip} - .cfi_adjust_cfa_offset 8 - .cfi_offset 143, -4 - cfisavelist \first, \first, 2 - .endif - .else // !\push_ip - .if \push_lr - /* Case 7: push single GP register plus lr register. */ - push {r\first, lr} - .cfi_adjust_cfa_offset 8 - .cfi_offset 14, -4 - cfisavelist \first, \first, 2 - .else // !\push_lr - /* Case 8: push single GP register. */ - push {r\first} - .cfi_adjust_cfa_offset 4 - cfisavelist \first, \first, 1 - .endif - .endif - .endif - .else // \first == -1 - .if \push_ip - .if \push_lr - /* Case 9: push ip and lr registers. */ - push {ip, lr} - .cfi_adjust_cfa_offset 8 - .cfi_offset 14, -4 - .cfi_offset 143, -8 - .else // !\push_lr - /* Case 10: push ip register. */ - push {ip} - .cfi_adjust_cfa_offset 4 - .cfi_offset 143, -4 - .endif - .else // !\push_ip - .if \push_lr - /* Case 11: push lr register. */ - push {lr} - .cfi_adjust_cfa_offset 4 - .cfi_offset 14, -4 - .endif - .endif - .endif -.endm - -.macro _epilogue first=-1, last=-1, push_ip=PAC_LEAF_PUSH_IP, push_lr=0 - .if \push_ip & 1 != \push_ip - .error "push_ip may be either 0 or 1" - .endif - .if \push_lr & 1 != \push_lr - .error "push_lr may be either 0 or 1" - .endif - .if \first != -1 - .if \last == -1 - /* Upper-bound not provided: Set upper = lower. */ - _epilogue \first, \first, \push_ip, \push_lr - .exitm - .endif - .if \last != \first - .if \last >= 13 - .error "SP cannot be in the save list" - .endif - .if \push_ip - .if \push_lr - /* Case 1: pop register range, ip and lr registers. */ - pop {r\first-r\last, ip, lr} - .cfi_restore 14 - .cfi_register 143, 12 - cfirestorelist \first, \last - .else // !\push_lr - /* Case 2: pop register range and ip register. */ - pop {r\first-r\last, ip} - .cfi_register 143, 12 - cfirestorelist \first, \last - .endif - .else // !\push_ip - .if \push_lr - /* Case 3: pop register range and lr register. */ - pop {r\first-r\last, lr} - .cfi_restore 14 - cfirestorelist \first, \last - .else // !\push_lr - /* Case 4: pop register range. */ - pop {r\first-r\last} - cfirestorelist \first, \last - .endif - .endif - .else // \last == \first - .if \push_ip - .if \push_lr - /* Case 5: pop single GP register plus ip and lr registers. */ - pop {r\first, ip, lr} - .cfi_restore 14 - .cfi_register 143, 12 - cfirestorelist \first, \first - .else // !\push_lr - /* Case 6: pop single GP register plus ip register. */ - pop {r\first, ip} - .cfi_register 143, 12 - cfirestorelist \first, \first - .endif - .else // !\push_ip - .if \push_lr - /* Case 7: pop single GP register plus lr register. */ - pop {r\first, lr} - .cfi_restore 14 - cfirestorelist \first, \first - .else // !\push_lr - /* Case 8: pop single GP register. */ - pop {r\first} - cfirestorelist \first, \first - .endif - .endif - .endif - .else // \first == -1 - .if \push_ip - .if \push_lr - /* Case 9: pop ip and lr registers. */ - pop {ip, lr} - .cfi_restore 14 - .cfi_register 143, 12 - .else // !\push_lr - /* Case 10: pop ip register. */ - pop {ip} - .cfi_register 143, 12 - .endif - .else // !\push_ip - .if \push_lr - /* Case 11: pop lr register. */ - pop {lr} - .cfi_restore 14 - .endif - .endif - .endif -#if HAVE_PAC_LEAF - aut ip, lr, sp -#endif /* HAVE_PAC_LEAF */ - bx lr -.endm - -# clean up expressions in 'last' -.macro _preprocess_reglist1 first:req, last:req, push_ip:req, push_lr:req, reglist_op:req - .if \last == 0 - \reglist_op \first, 0, \push_ip, \push_lr - .elseif \last == 1 - \reglist_op \first, 1, \push_ip, \push_lr - .elseif \last == 2 - \reglist_op \first, 2, \push_ip, \push_lr - .elseif \last == 3 - \reglist_op \first, 3, \push_ip, \push_lr - .elseif \last == 4 - \reglist_op \first, 4, \push_ip, \push_lr - .elseif \last == 5 - \reglist_op \first, 5, \push_ip, \push_lr - .elseif \last == 6 - \reglist_op \first, 6, \push_ip, \push_lr - .elseif \last == 7 - \reglist_op \first, 7, \push_ip, \push_lr - .elseif \last == 8 - \reglist_op \first, 8, \push_ip, \push_lr - .elseif \last == 9 - \reglist_op \first, 9, \push_ip, \push_lr - .elseif \last == 10 - \reglist_op \first, 10, \push_ip, \push_lr - .elseif \last == 11 - \reglist_op \first, 11, \push_ip, \push_lr - .else - .error "last (\last) out of range" - .endif -.endm - -# clean up expressions in 'first' -.macro _preprocess_reglist first:req, last, push_ip=0, push_lr=0, reglist_op:req - .ifb \last - _preprocess_reglist \first \first \push_ip \push_lr - .else - .if \first > \last - .error "last (\last) must be at least as great as first (\first)" - .endif - .if \first == 0 - _preprocess_reglist1 0, \last, \push_ip, \push_lr, \reglist_op - .elseif \first == 1 - _preprocess_reglist1 1, \last, \push_ip, \push_lr, \reglist_op - .elseif \first == 2 - _preprocess_reglist1 2, \last, \push_ip, \push_lr, \reglist_op - .elseif \first == 3 - _preprocess_reglist1 3, \last, \push_ip, \push_lr, \reglist_op - .elseif \first == 4 - _preprocess_reglist1 4, \last, \push_ip, \push_lr, \reglist_op - .elseif \first == 5 - _preprocess_reglist1 5, \last, \push_ip, \push_lr, \reglist_op - .elseif \first == 6 - _preprocess_reglist1 6, \last, \push_ip, \push_lr, \reglist_op - .elseif \first == 7 - _preprocess_reglist1 7, \last, \push_ip, \push_lr, \reglist_op - .elseif \first == 8 - _preprocess_reglist1 8, \last, \push_ip, \push_lr, \reglist_op - .elseif \first == 9 - _preprocess_reglist1 9, \last, \push_ip, \push_lr, \reglist_op - .elseif \first == 10 - _preprocess_reglist1 10, \last, \push_ip, \push_lr, \reglist_op - .elseif \first == 11 - _preprocess_reglist1 11, \last, \push_ip, \push_lr, \reglist_op - .else - .error "first (\first) out of range" - .endif - .endif -.endm - -.macro _align8 first, last, push_ip=0, push_lr=0, reglist_op=_prologue - .ifb \first - .ifnb \last - .error "can't have last (\last) without specifying first" - .else // \last not blank - .if ((\push_ip + \push_lr) % 2) == 0 - \reglist_op first=-1, last=-1, push_ip=\push_ip, push_lr=\push_lr - .exitm - .else // ((\push_ip + \push_lr) % 2) odd - _align8 2, 2, \push_ip, \push_lr, \reglist_op - .exitm - .endif // ((\push_ip + \push_lr) % 2) == 0 - .endif // .ifnb \last - .endif // .ifb \first - - .ifb \last - _align8 \first, \first, \push_ip, \push_lr, \reglist_op - .else - .if \push_ip & 1 <> \push_ip - .error "push_ip may be 0 or 1" - .endif - .if \push_lr & 1 <> \push_lr - .error "push_lr may be 0 or 1" - .endif - .ifeq (\last - \first + \push_ip + \push_lr) % 2 - .if \first == 0 - .error "Alignment required and first register is r0" - .exitm - .endif - _preprocess_reglist \first-1, \last, \push_ip, \push_lr, \reglist_op - .else - _preprocess_reglist \first \last, \push_ip, \push_lr, \reglist_op - .endif - .endif -.endm - -.macro prologue first, last, push_ip=PAC_LEAF_PUSH_IP, push_lr=0, align8=STACK_ALIGN_ENFORCE - .if \align8 - _align8 \first, \last, \push_ip, \push_lr, _prologue - .else - _prologue first=\first, last=\last, push_ip=\push_ip, push_lr=\push_lr - .endif -.endm - -.macro epilogue first, last, push_ip=PAC_LEAF_PUSH_IP, push_lr=0, align8=STACK_ALIGN_ENFORCE - .if \align8 - _align8 \first, \last, \push_ip, \push_lr, reglist_op=_epilogue - .else - _epilogue first=\first, last=\last, push_ip=\push_ip, push_lr=\push_lr - .endif -.endm - -#endif /* __ASSEMBLER__ */ - -#endif /* ARM_ASM__H */ diff --git a/lib/machine/arm/machine/_endian.h b/lib/machine/arm/machine/_endian.h deleted file mode 100644 index 3f50a69..0000000 --- a/lib/machine/arm/machine/_endian.h +++ /dev/null @@ -1,39 +0,0 @@ -/* ARM configuration file. - Copyright (c) 2015 ARM Ltd. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. The name of the company may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#ifndef __MACHINE_ENDIAN_H__ -#error "must be included via " -#endif /* !__MACHINE_ENDIAN_H__ */ - -#define _LITTLE_ENDIAN 1234 -#define _BIG_ENDIAN 4321 -#define _PDP_ENDIAN 3412 - -#ifdef __ARMEB__ -#define _BYTE_ORDER _BIG_ENDIAN -#else -#define _BYTE_ORDER _LITTLE_ENDIAN -#endif diff --git a/lib/machine/arm/machine/param.h b/lib/machine/arm/machine/param.h deleted file mode 100644 index 513f7b0..0000000 --- a/lib/machine/arm/machine/param.h +++ /dev/null @@ -1,8 +0,0 @@ -/* ARM configuration file; HZ is 100 rather than the default 60 */ - -#ifndef _MACHINE_PARAM_H -# define _MACHINE_PARAM_H - -# define HZ (100) - -#endif diff --git a/lib/machine/arm/memchr-stub.c b/lib/machine/arm/memchr-stub.c deleted file mode 100644 index 48451a1..0000000 --- a/lib/machine/arm/memchr-stub.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (c) 2015 ARM Ltd. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/* The structure of the following #if #else #endif conditional chain - must match the chain in memchr.S. */ - -#include "arm-acle-compat.h" - -#if defined (__ARM_NEON__) || defined (__ARM_NEON) -/* Defined in memchr.S. */ -#elif __ARM_ARCH_ISA_THUMB >= 2 && defined (__ARM_FEATURE_DSP) -/* Defined in memchr.S. */ -#else -# include "../../string/memchr.c" -#endif diff --git a/lib/machine/arm/memchr.S b/lib/machine/arm/memchr.S deleted file mode 100644 index d13ef8d..0000000 --- a/lib/machine/arm/memchr.S +++ /dev/null @@ -1,424 +0,0 @@ -/* Copyright (c) 2010-2011, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - * Neither the name of Linaro Limited nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Written by Dave Gilbert - - This memchr routine is optimised on a Cortex-A9 and should work on - all ARMv7 processors. It has a fast path for short sizes, and has - an optimised path for large data sets; the worst case is finding the - match early in a large data set. */ - -/* Copyright (c) 2015 ARM Ltd. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -@ 2011-02-07 david.gilbert@linaro.org -@ Extracted from local git a5b438d861 -@ 2011-07-14 david.gilbert@linaro.org -@ Import endianness fix from local git ea786f1b -@ 2011-10-11 david.gilbert@linaro.org -@ Import from cortex-strings bzr rev 63 -@ Flip to ldrd (as suggested by Greta Yorsh) -@ Make conditional on CPU type -@ tidy - -@ This code requires armv6t2 or later. Uses Thumb2. - - .syntax unified - -#include "arm-acle-compat.h" -#include "arm_asm.h" - -@ NOTE: This ifdef MUST match the one in memchr-stub.c -#if defined (__ARM_NEON__) || defined (__ARM_NEON) -#if __ARM_ARCH >= 8 && __ARM_ARCH_PROFILE == 'R' - .arch armv8-r -#else - .arch armv7-a -#endif - .fpu neon - - -/* Arguments */ -#define srcin r0 -#define chrin r1 -#define cntin r2 - -/* Retval */ -#define result r0 /* Live range does not overlap with srcin */ - -/* Working registers */ -#define src r1 /* Live range does not overlap with chrin */ -#define tmp r3 -#define synd r0 /* No overlap with srcin or result */ -#define soff r12 - -/* Working NEON registers */ -#define vrepchr q0 -#define vdata0 q1 -#define vdata0_0 d2 /* Lower half of vdata0 */ -#define vdata0_1 d3 /* Upper half of vdata0 */ -#define vdata1 q2 -#define vdata1_0 d4 /* Lower half of vhas_chr0 */ -#define vdata1_1 d5 /* Upper half of vhas_chr0 */ -#define vrepmask q3 -#define vrepmask0 d6 -#define vrepmask1 d7 -#define vend q4 -#define vend0 d8 -#define vend1 d9 - -/* - * Core algorithm: - * - * For each 32-byte chunk we calculate a 32-bit syndrome value, with one bit per - * byte. Each bit is set if the relevant byte matched the requested character - * and cleared otherwise. Since the bits in the syndrome reflect exactly the - * order in which things occur in the original string, counting trailing zeros - * allows to identify exactly which byte has matched. - */ - - .text - .thumb_func - .align 4 - .p2align 4,,15 - .global memchr - .type memchr,%function - -memchr: - .cfi_sections .debug_frame - .cfi_startproc - /* Use a simple loop if there are less than 8 bytes to search. */ - cmp cntin, #7 - bhi .Llargestr - and chrin, chrin, #0xff - -.Lsmallstr: - subs cntin, cntin, #1 - blo .Lnotfound /* Return not found if reached end. */ - ldrb tmp, [srcin], #1 - cmp tmp, chrin - bne .Lsmallstr /* Loop again if not found. */ - /* Otherwise fixup address and return. */ - sub result, result, #1 - bx lr - - -.Llargestr: - vdup.8 vrepchr, chrin /* Duplicate char across all lanes. */ - /* - * Magic constant 0x8040201008040201 allows us to identify which lane - * matches the requested byte. - */ - movw tmp, #0x0201 - movt tmp, #0x0804 - lsl soff, tmp, #4 - vmov vrepmask0, tmp, soff - vmov vrepmask1, tmp, soff - /* Work with aligned 32-byte chunks */ - bic src, srcin, #31 - ands soff, srcin, #31 - beq .Lloopintro /* Go straight to main loop if it's aligned. */ - - /* - * Input string is not 32-byte aligned. We calculate the syndrome - * value for the aligned 32 bytes block containing the first bytes - * and mask the irrelevant part. - */ - vld1.8 {vdata0, vdata1}, [src:256]! - sub tmp, soff, #32 - adds cntin, cntin, tmp - vceq.i8 vdata0, vdata0, vrepchr - vceq.i8 vdata1, vdata1, vrepchr - vand vdata0, vdata0, vrepmask - vand vdata1, vdata1, vrepmask - vpadd.i8 vdata0_0, vdata0_0, vdata0_1 - vpadd.i8 vdata1_0, vdata1_0, vdata1_1 - vpadd.i8 vdata0_0, vdata0_0, vdata1_0 - vpadd.i8 vdata0_0, vdata0_0, vdata0_0 - vmov synd, vdata0_0[0] - - /* Clear the soff lower bits */ - lsr synd, synd, soff - lsl synd, synd, soff - /* The first block can also be the last */ - bls .Lmasklast - /* Have we found something already? */ - cbnz synd, .Ltail - - -.Lloopintro: - vpush {vend} - /* 264/265 correspond to d8/d9 for q4 */ - .cfi_adjust_cfa_offset 16 - .cfi_rel_offset 264, 0 - .cfi_rel_offset 265, 8 - .p2align 3,,7 -.Lloop: - vld1.8 {vdata0, vdata1}, [src:256]! - subs cntin, cntin, #32 - vceq.i8 vdata0, vdata0, vrepchr - vceq.i8 vdata1, vdata1, vrepchr - /* If we're out of data we finish regardless of the result. */ - bls .Lend - /* Use a fast check for the termination condition. */ - vorr vend, vdata0, vdata1 - vorr vend0, vend0, vend1 - vmov synd, tmp, vend0 - orrs synd, synd, tmp - /* We're not out of data, loop if we haven't found the character. */ - beq .Lloop - -.Lend: - vpop {vend} - .cfi_adjust_cfa_offset -16 - .cfi_restore 264 - .cfi_restore 265 - - /* Termination condition found, let's calculate the syndrome value. */ - vand vdata0, vdata0, vrepmask - vand vdata1, vdata1, vrepmask - vpadd.i8 vdata0_0, vdata0_0, vdata0_1 - vpadd.i8 vdata1_0, vdata1_0, vdata1_1 - vpadd.i8 vdata0_0, vdata0_0, vdata1_0 - vpadd.i8 vdata0_0, vdata0_0, vdata0_0 - vmov synd, vdata0_0[0] - cbz synd, .Lnotfound - bhi .Ltail - - -.Lmasklast: - /* Clear the (-cntin) upper bits to avoid out-of-bounds matches. */ - neg cntin, cntin - lsl synd, synd, cntin - lsrs synd, synd, cntin - it eq - moveq src, #0 /* If no match, set src to 0 so the retval is 0. */ - - -.Ltail: - /* Count the trailing zeros using bit reversing */ - rbit synd, synd - /* Compensate the last post-increment */ - sub src, src, #32 - /* Count the leading zeros */ - clz synd, synd - /* Compute the potential result and return */ - add result, src, synd - bx lr - - -.Lnotfound: - /* Set result to NULL if not found and return */ - mov result, #0 - bx lr - - .cfi_endproc - .size memchr, . - memchr - -#elif __ARM_ARCH_ISA_THUMB >= 2 && defined (__ARM_FEATURE_DSP) - -#if __ARM_ARCH_PROFILE == 'M' -#if __ARM_ARCH >= 8 - /* keep config inherited from -march=. */ -#else - .arch armv7e-m -#endif /* __ARM_ARCH >= 8 */ -#else - .arch armv6t2 -#endif /* __ARM_ARCH_PROFILE == 'M' */ - -@ this lets us check a flag in a 00/ff byte easily in either endianness -#ifdef __ARMEB__ -#define CHARTSTMASK(c) 1<<(31-(c*8)) -#else -#define CHARTSTMASK(c) 1<<(c*8) -#endif - .text - .thumb - -@ --------------------------------------------------------------------------- - .thumb_func - .align 2 - .p2align 4,,15 - .global memchr - .type memchr,%function - .fnstart - .cfi_startproc -memchr: - @ r0 = start of memory to scan - @ r1 = character to look for - @ r2 = length - @ returns r0 = pointer to character or NULL if not found - prologue - and r1,r1,#0xff @ Don't trust the caller to pass a char - - cmp r2,#16 @ If short don't bother with anything clever - blt 20f - - tst r0, #7 @ If it's already aligned skip the next bit - beq 10f - - @ Work up to an aligned point -5: - ldrb r3, [r0],#1 - subs r2, r2, #1 - cmp r3, r1 - beq 50f @ If it matches exit found - tst r0, #7 - cbz r2, 40f @ If we run off the end, exit not found - bne 5b @ If not aligned yet then do next byte - -10: - @ We are aligned, we know we have at least 8 bytes to work with - push {r4,r5,r6,r7} - .cfi_adjust_cfa_offset 16 - .cfi_rel_offset 4, 0 - .cfi_rel_offset 5, 4 - .cfi_rel_offset 6, 8 - .cfi_rel_offset 7, 12 - orr r1, r1, r1, lsl #8 @ expand the match word across all bytes - orr r1, r1, r1, lsl #16 - bic r4, r2, #7 @ Number of double words to work with * 8 - mvns r7, #0 @ all F's - movs r3, #0 - -15: - ldrd r5,r6,[r0],#8 - subs r4, r4, #8 - eor r5,r5, r1 @ r5,r6 have 00's where bytes match the target - eor r6,r6, r1 - uadd8 r5, r5, r7 @ Par add 0xff - sets GE bits for bytes!=0 - sel r5, r3, r7 @ bytes are 00 for none-00 bytes, - @ or ff for 00 bytes - NOTE INVERSION - uadd8 r6, r6, r7 @ Par add 0xff - sets GE bits for bytes!=0 - sel r6, r5, r7 @ chained....bytes are 00 for none-00 bytes - @ or ff for 00 bytes - NOTE INVERSION - cbnz r6, 60f - bne 15b @ (Flags from the subs above) - - pop {r4,r5,r6,r7} - .cfi_restore 7 - .cfi_restore 6 - .cfi_restore 5 - .cfi_restore 4 - .cfi_adjust_cfa_offset -16 - and r1,r1,#0xff @ r1 back to a single character - and r2,r2,#7 @ Leave the count remaining as the number - @ after the double words have been done - -20: - cbz r2, 40f @ 0 length or hit the end already then not found - -21: @ Post aligned section, or just a short call - ldrb r3,[r0],#1 - subs r2,r2,#1 - eor r3,r3,r1 @ r3 = 0 if match - doesn't break flags from sub - cbz r3, 50f - bne 21b @ on r2 flags - -40: - .cfi_remember_state - movs r0,#0 @ not found - epilogue - -50: - .cfi_restore_state - .cfi_remember_state - subs r0,r0,#1 @ found - epilogue - -60: @ We're here because the fast path found a hit - @ now we have to track down exactly which word it was - @ r0 points to the start of the double word after the one tested - @ r5 has the 00/ff pattern for the first word, r6 has the chained value - @ This point is reached from cbnz midway through label 15 prior to - @ popping r4-r7 off the stack. .cfi_restore_state alone disregards - @ this, so we manually correct this. - .cfi_restore_state @ Standard post-prologue state - .cfi_adjust_cfa_offset 16 - .cfi_rel_offset 4, 0 - .cfi_rel_offset 5, 4 - .cfi_rel_offset 6, 8 - .cfi_rel_offset 7, 12 - cmp r5, #0 - itte eq - moveq r5, r6 @ the end is in the 2nd word - subeq r0,r0,#3 @ Points to 2nd byte of 2nd word - subne r0,r0,#7 @ or 2nd byte of 1st word - - @ r0 currently points to the 2nd byte of the word containing the hit - tst r5, # CHARTSTMASK(0) @ 1st character - bne 61f - adds r0,r0,#1 - tst r5, # CHARTSTMASK(1) @ 2nd character - ittt eq - addeq r0,r0,#1 - tsteq r5, # (3<<15) @ 2nd & 3rd character - @ If not the 3rd must be the last one - addeq r0,r0,#1 - -61: - pop {r4,r5,r6,r7} - .cfi_restore 7 - .cfi_restore 6 - .cfi_restore 5 - .cfi_restore 4 - .cfi_adjust_cfa_offset -16 - subs r0,r0,#1 - epilogue - .cfi_endproc - .cantunwind - .fnend -#else - /* Defined in memchr-stub.c. */ -#endif diff --git a/lib/machine/arm/memcpy-armv7a.S b/lib/machine/arm/memcpy-armv7a.S deleted file mode 100644 index cd7962e..0000000 --- a/lib/machine/arm/memcpy-armv7a.S +++ /dev/null @@ -1,619 +0,0 @@ -/* Copyright (c) 2013, Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - * Neither the name of Linaro Limited nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - This memcpy routine is optimised for Cortex-A15 cores and takes advantage - of VFP or NEON when built with the appropriate flags. - - Assumptions: - - ARMv6 (ARMv7-a if using Neon) - ARM state - Unaligned accesses - LDRD/STRD support unaligned word accesses - - If compiled with GCC, this file should be enclosed within following - pre-processing check: - if defined (__ARM_ARCH_7A__) && defined (__ARM_FEATURE_UNALIGNED) - - */ - .syntax unified - /* This implementation requires ARM state. */ - .arm - -#ifdef __ARM_NEON__ - - .fpu neon - .arch armv7-a -# define FRAME_SIZE 4 -# define USE_VFP -# define USE_NEON - -#elif !defined (__SOFTFP__) - - .arch armv6 - .fpu vfpv2 -# define FRAME_SIZE 32 -# define USE_VFP - -#else - .arch armv6 -# define FRAME_SIZE 32 - -#endif - -/* Old versions of GAS incorrectly implement the NEON align semantics. */ -#ifdef BROKEN_ASM_NEON_ALIGN -#define ALIGN(addr, align) addr,:align -#else -#define ALIGN(addr, align) addr:align -#endif - -#define PC_OFFSET 8 /* PC pipeline compensation. */ -#define INSN_SIZE 4 - -/* Call parameters. */ -#define dstin r0 -#define src r1 -#define count r2 - -/* Locals. */ -#define tmp1 r3 -#define dst ip -#define tmp2 r10 - -#ifndef USE_NEON -/* For bulk copies using GP registers. */ -#define A_l r2 /* Call-clobbered. */ -#define A_h r3 /* Call-clobbered. */ -#define B_l r4 -#define B_h r5 -#define C_l r6 -#define C_h r7 -#define D_l r8 -#define D_h r9 -#endif - -/* Number of lines ahead to pre-fetch data. If you change this the code - below will need adjustment to compensate. */ - -#define prefetch_lines 5 - -#ifdef USE_VFP - .macro cpy_line_vfp vreg, base - vstr \vreg, [dst, #\base] - vldr \vreg, [src, #\base] - vstr d0, [dst, #\base + 8] - vldr d0, [src, #\base + 8] - vstr d1, [dst, #\base + 16] - vldr d1, [src, #\base + 16] - vstr d2, [dst, #\base + 24] - vldr d2, [src, #\base + 24] - vstr \vreg, [dst, #\base + 32] - vldr \vreg, [src, #\base + prefetch_lines * 64 - 32] - vstr d0, [dst, #\base + 40] - vldr d0, [src, #\base + 40] - vstr d1, [dst, #\base + 48] - vldr d1, [src, #\base + 48] - vstr d2, [dst, #\base + 56] - vldr d2, [src, #\base + 56] - .endm - - .macro cpy_tail_vfp vreg, base - vstr \vreg, [dst, #\base] - vldr \vreg, [src, #\base] - vstr d0, [dst, #\base + 8] - vldr d0, [src, #\base + 8] - vstr d1, [dst, #\base + 16] - vldr d1, [src, #\base + 16] - vstr d2, [dst, #\base + 24] - vldr d2, [src, #\base + 24] - vstr \vreg, [dst, #\base + 32] - vstr d0, [dst, #\base + 40] - vldr d0, [src, #\base + 40] - vstr d1, [dst, #\base + 48] - vldr d1, [src, #\base + 48] - vstr d2, [dst, #\base + 56] - vldr d2, [src, #\base + 56] - .endm -#endif - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -def_fn memcpy p2align=6 - - mov dst, dstin /* Preserve dstin, we need to return it. */ - cmp count, #64 - bge .Lcpy_not_short - /* Deal with small copies quickly by dropping straight into the - exit block. */ - -.Ltail63unaligned: -#ifdef USE_NEON - and tmp1, count, #0x38 - rsb tmp1, tmp1, #(56 - PC_OFFSET + INSN_SIZE) - add pc, pc, tmp1 - vld1.8 {d0}, [src]! /* 14 words to go. */ - vst1.8 {d0}, [dst]! - vld1.8 {d0}, [src]! /* 12 words to go. */ - vst1.8 {d0}, [dst]! - vld1.8 {d0}, [src]! /* 10 words to go. */ - vst1.8 {d0}, [dst]! - vld1.8 {d0}, [src]! /* 8 words to go. */ - vst1.8 {d0}, [dst]! - vld1.8 {d0}, [src]! /* 6 words to go. */ - vst1.8 {d0}, [dst]! - vld1.8 {d0}, [src]! /* 4 words to go. */ - vst1.8 {d0}, [dst]! - vld1.8 {d0}, [src]! /* 2 words to go. */ - vst1.8 {d0}, [dst]! - - tst count, #4 - ldrne tmp1, [src], #4 - strne tmp1, [dst], #4 -#else - /* Copy up to 15 full words of data. May not be aligned. */ - /* Cannot use VFP for unaligned data. */ - and tmp1, count, #0x3c - add dst, dst, tmp1 - add src, src, tmp1 - rsb tmp1, tmp1, #(60 - PC_OFFSET/2 + INSN_SIZE/2) - /* Jump directly into the sequence below at the correct offset. */ - add pc, pc, tmp1, lsl #1 - - ldr tmp1, [src, #-60] /* 15 words to go. */ - str tmp1, [dst, #-60] - - ldr tmp1, [src, #-56] /* 14 words to go. */ - str tmp1, [dst, #-56] - ldr tmp1, [src, #-52] - str tmp1, [dst, #-52] - - ldr tmp1, [src, #-48] /* 12 words to go. */ - str tmp1, [dst, #-48] - ldr tmp1, [src, #-44] - str tmp1, [dst, #-44] - - ldr tmp1, [src, #-40] /* 10 words to go. */ - str tmp1, [dst, #-40] - ldr tmp1, [src, #-36] - str tmp1, [dst, #-36] - - ldr tmp1, [src, #-32] /* 8 words to go. */ - str tmp1, [dst, #-32] - ldr tmp1, [src, #-28] - str tmp1, [dst, #-28] - - ldr tmp1, [src, #-24] /* 6 words to go. */ - str tmp1, [dst, #-24] - ldr tmp1, [src, #-20] - str tmp1, [dst, #-20] - - ldr tmp1, [src, #-16] /* 4 words to go. */ - str tmp1, [dst, #-16] - ldr tmp1, [src, #-12] - str tmp1, [dst, #-12] - - ldr tmp1, [src, #-8] /* 2 words to go. */ - str tmp1, [dst, #-8] - ldr tmp1, [src, #-4] - str tmp1, [dst, #-4] -#endif - - lsls count, count, #31 - ldrhcs tmp1, [src], #2 - ldrbne src, [src] /* Src is dead, use as a scratch. */ - strhcs tmp1, [dst], #2 - strbne src, [dst] - bx lr - -.Lcpy_not_short: - /* At least 64 bytes to copy, but don't know the alignment yet. */ - str tmp2, [sp, #-FRAME_SIZE]! - and tmp2, src, #7 - and tmp1, dst, #7 - cmp tmp1, tmp2 - bne .Lcpy_notaligned - -#ifdef USE_VFP - /* Magic dust alert! Force VFP on Cortex-A9. Experiments show - that the FP pipeline is much better at streaming loads and - stores. This is outside the critical loop. */ - vmov.f32 s0, s0 -#endif - - /* SRC and DST have the same mutual 32-bit alignment, but we may - still need to pre-copy some bytes to get to natural alignment. - We bring DST into full 64-bit alignment. */ - lsls tmp2, dst, #29 - beq 1f - rsbs tmp2, tmp2, #0 - sub count, count, tmp2, lsr #29 - ldrmi tmp1, [src], #4 - strmi tmp1, [dst], #4 - lsls tmp2, tmp2, #2 - ldrhcs tmp1, [src], #2 - ldrbne tmp2, [src], #1 - strhcs tmp1, [dst], #2 - strbne tmp2, [dst], #1 - -1: - subs tmp2, count, #64 /* Use tmp2 for count. */ - blt .Ltail63aligned - - cmp tmp2, #512 - bge .Lcpy_body_long - -.Lcpy_body_medium: /* Count in tmp2. */ -#ifdef USE_VFP -1: - vldr d0, [src, #0] - subs tmp2, tmp2, #64 - vldr d1, [src, #8] - vstr d0, [dst, #0] - vldr d0, [src, #16] - vstr d1, [dst, #8] - vldr d1, [src, #24] - vstr d0, [dst, #16] - vldr d0, [src, #32] - vstr d1, [dst, #24] - vldr d1, [src, #40] - vstr d0, [dst, #32] - vldr d0, [src, #48] - vstr d1, [dst, #40] - vldr d1, [src, #56] - vstr d0, [dst, #48] - add src, src, #64 - vstr d1, [dst, #56] - add dst, dst, #64 - bge 1b - tst tmp2, #0x3f - beq .Ldone - -.Ltail63aligned: /* Count in tmp2. */ - and tmp1, tmp2, #0x38 - add dst, dst, tmp1 - add src, src, tmp1 - rsb tmp1, tmp1, #(56 - PC_OFFSET + INSN_SIZE) - add pc, pc, tmp1 - - vldr d0, [src, #-56] /* 14 words to go. */ - vstr d0, [dst, #-56] - vldr d0, [src, #-48] /* 12 words to go. */ - vstr d0, [dst, #-48] - vldr d0, [src, #-40] /* 10 words to go. */ - vstr d0, [dst, #-40] - vldr d0, [src, #-32] /* 8 words to go. */ - vstr d0, [dst, #-32] - vldr d0, [src, #-24] /* 6 words to go. */ - vstr d0, [dst, #-24] - vldr d0, [src, #-16] /* 4 words to go. */ - vstr d0, [dst, #-16] - vldr d0, [src, #-8] /* 2 words to go. */ - vstr d0, [dst, #-8] -#else - sub src, src, #8 - sub dst, dst, #8 -1: - ldrd A_l, A_h, [src, #8] - strd A_l, A_h, [dst, #8] - ldrd A_l, A_h, [src, #16] - strd A_l, A_h, [dst, #16] - ldrd A_l, A_h, [src, #24] - strd A_l, A_h, [dst, #24] - ldrd A_l, A_h, [src, #32] - strd A_l, A_h, [dst, #32] - ldrd A_l, A_h, [src, #40] - strd A_l, A_h, [dst, #40] - ldrd A_l, A_h, [src, #48] - strd A_l, A_h, [dst, #48] - ldrd A_l, A_h, [src, #56] - strd A_l, A_h, [dst, #56] - ldrd A_l, A_h, [src, #64]! - strd A_l, A_h, [dst, #64]! - subs tmp2, tmp2, #64 - bge 1b - tst tmp2, #0x3f - bne 1f - ldr tmp2,[sp], #FRAME_SIZE - bx lr -1: - add src, src, #8 - add dst, dst, #8 - -.Ltail63aligned: /* Count in tmp2. */ - /* Copy up to 7 d-words of data. Similar to Ltail63unaligned, but - we know that the src and dest are 32-bit aligned so we can use - LDRD/STRD to improve efficiency. */ - /* TMP2 is now negative, but we don't care about that. The bottom - six bits still tell us how many bytes are left to copy. */ - - and tmp1, tmp2, #0x38 - add dst, dst, tmp1 - add src, src, tmp1 - rsb tmp1, tmp1, #(56 - PC_OFFSET + INSN_SIZE) - add pc, pc, tmp1 - ldrd A_l, A_h, [src, #-56] /* 14 words to go. */ - strd A_l, A_h, [dst, #-56] - ldrd A_l, A_h, [src, #-48] /* 12 words to go. */ - strd A_l, A_h, [dst, #-48] - ldrd A_l, A_h, [src, #-40] /* 10 words to go. */ - strd A_l, A_h, [dst, #-40] - ldrd A_l, A_h, [src, #-32] /* 8 words to go. */ - strd A_l, A_h, [dst, #-32] - ldrd A_l, A_h, [src, #-24] /* 6 words to go. */ - strd A_l, A_h, [dst, #-24] - ldrd A_l, A_h, [src, #-16] /* 4 words to go. */ - strd A_l, A_h, [dst, #-16] - ldrd A_l, A_h, [src, #-8] /* 2 words to go. */ - strd A_l, A_h, [dst, #-8] - -#endif - tst tmp2, #4 - ldrne tmp1, [src], #4 - strne tmp1, [dst], #4 - lsls tmp2, tmp2, #31 /* Count (tmp2) now dead. */ - ldrhcs tmp1, [src], #2 - ldrbne tmp2, [src] - strhcs tmp1, [dst], #2 - strbne tmp2, [dst] - -.Ldone: - ldr tmp2, [sp], #FRAME_SIZE - bx lr - -.Lcpy_body_long: /* Count in tmp2. */ - - /* Long copy. We know that there's at least (prefetch_lines * 64) - bytes to go. */ -#ifdef USE_VFP - /* Don't use PLD. Instead, read some data in advance of the current - copy position into a register. This should act like a PLD - operation but we won't have to repeat the transfer. */ - - vldr d3, [src, #0] - vldr d4, [src, #64] - vldr d5, [src, #128] - vldr d6, [src, #192] - vldr d7, [src, #256] - - vldr d0, [src, #8] - vldr d1, [src, #16] - vldr d2, [src, #24] - add src, src, #32 - - subs tmp2, tmp2, #prefetch_lines * 64 * 2 - blt 2f -1: - cpy_line_vfp d3, 0 - cpy_line_vfp d4, 64 - cpy_line_vfp d5, 128 - add dst, dst, #3 * 64 - add src, src, #3 * 64 - cpy_line_vfp d6, 0 - cpy_line_vfp d7, 64 - add dst, dst, #2 * 64 - add src, src, #2 * 64 - subs tmp2, tmp2, #prefetch_lines * 64 - bge 1b - -2: - cpy_tail_vfp d3, 0 - cpy_tail_vfp d4, 64 - cpy_tail_vfp d5, 128 - add src, src, #3 * 64 - add dst, dst, #3 * 64 - cpy_tail_vfp d6, 0 - vstr d7, [dst, #64] - vldr d7, [src, #64] - vstr d0, [dst, #64 + 8] - vldr d0, [src, #64 + 8] - vstr d1, [dst, #64 + 16] - vldr d1, [src, #64 + 16] - vstr d2, [dst, #64 + 24] - vldr d2, [src, #64 + 24] - vstr d7, [dst, #64 + 32] - add src, src, #96 - vstr d0, [dst, #64 + 40] - vstr d1, [dst, #64 + 48] - vstr d2, [dst, #64 + 56] - add dst, dst, #128 - add tmp2, tmp2, #prefetch_lines * 64 - b .Lcpy_body_medium -#else - /* Long copy. Use an SMS style loop to maximize the I/O - bandwidth of the core. We don't have enough spare registers - to synthesise prefetching, so use PLD operations. */ - /* Pre-bias src and dst. */ - sub src, src, #8 - sub dst, dst, #8 - pld [src, #8] - pld [src, #72] - subs tmp2, tmp2, #64 - pld [src, #136] - ldrd A_l, A_h, [src, #8] - strd B_l, B_h, [sp, #8] - ldrd B_l, B_h, [src, #16] - strd C_l, C_h, [sp, #16] - ldrd C_l, C_h, [src, #24] - strd D_l, D_h, [sp, #24] - pld [src, #200] - ldrd D_l, D_h, [src, #32]! - b 1f - .p2align 6 -2: - pld [src, #232] - strd A_l, A_h, [dst, #40] - ldrd A_l, A_h, [src, #40] - strd B_l, B_h, [dst, #48] - ldrd B_l, B_h, [src, #48] - strd C_l, C_h, [dst, #56] - ldrd C_l, C_h, [src, #56] - strd D_l, D_h, [dst, #64]! - ldrd D_l, D_h, [src, #64]! - subs tmp2, tmp2, #64 -1: - strd A_l, A_h, [dst, #8] - ldrd A_l, A_h, [src, #8] - strd B_l, B_h, [dst, #16] - ldrd B_l, B_h, [src, #16] - strd C_l, C_h, [dst, #24] - ldrd C_l, C_h, [src, #24] - strd D_l, D_h, [dst, #32] - ldrd D_l, D_h, [src, #32] - bcs 2b - /* Save the remaining bytes and restore the callee-saved regs. */ - strd A_l, A_h, [dst, #40] - add src, src, #40 - strd B_l, B_h, [dst, #48] - ldrd B_l, B_h, [sp, #8] - strd C_l, C_h, [dst, #56] - ldrd C_l, C_h, [sp, #16] - strd D_l, D_h, [dst, #64] - ldrd D_l, D_h, [sp, #24] - add dst, dst, #72 - tst tmp2, #0x3f - bne .Ltail63aligned - ldr tmp2, [sp], #FRAME_SIZE - bx lr -#endif - -.Lcpy_notaligned: - pld [src] - pld [src, #64] - /* There's at least 64 bytes to copy, but there is no mutual - alignment. */ - /* Bring DST to 64-bit alignment. */ - lsls tmp2, dst, #29 - pld [src, #(2 * 64)] - beq 1f - rsbs tmp2, tmp2, #0 - sub count, count, tmp2, lsr #29 - ldrmi tmp1, [src], #4 - strmi tmp1, [dst], #4 - lsls tmp2, tmp2, #2 - ldrbne tmp1, [src], #1 - ldrhcs tmp2, [src], #2 - strbne tmp1, [dst], #1 - strhcs tmp2, [dst], #2 -1: - pld [src, #(3 * 64)] - subs count, count, #64 - ldrmi tmp2, [sp], #FRAME_SIZE - bmi .Ltail63unaligned - pld [src, #(4 * 64)] - -#ifdef USE_NEON - vld1.8 {d0-d3}, [src]! - vld1.8 {d4-d7}, [src]! - subs count, count, #64 - bmi 2f -1: - pld [src, #(4 * 64)] - vst1.8 {d0-d3}, [ALIGN (dst, 64)]! - vld1.8 {d0-d3}, [src]! - vst1.8 {d4-d7}, [ALIGN (dst, 64)]! - vld1.8 {d4-d7}, [src]! - subs count, count, #64 - bpl 1b -2: - vst1.8 {d0-d3}, [ALIGN (dst, 64)]! - vst1.8 {d4-d7}, [ALIGN (dst, 64)]! - ands count, count, #0x3f -#else - /* Use an SMS style loop to maximize the I/O bandwidth. */ - sub src, src, #4 - sub dst, dst, #8 - subs tmp2, count, #64 /* Use tmp2 for count. */ - ldr A_l, [src, #4] - ldr A_h, [src, #8] - strd B_l, B_h, [sp, #8] - ldr B_l, [src, #12] - ldr B_h, [src, #16] - strd C_l, C_h, [sp, #16] - ldr C_l, [src, #20] - ldr C_h, [src, #24] - strd D_l, D_h, [sp, #24] - ldr D_l, [src, #28] - ldr D_h, [src, #32]! - b 1f - .p2align 6 -2: - pld [src, #(5 * 64) - (32 - 4)] - strd A_l, A_h, [dst, #40] - ldr A_l, [src, #36] - ldr A_h, [src, #40] - strd B_l, B_h, [dst, #48] - ldr B_l, [src, #44] - ldr B_h, [src, #48] - strd C_l, C_h, [dst, #56] - ldr C_l, [src, #52] - ldr C_h, [src, #56] - strd D_l, D_h, [dst, #64]! - ldr D_l, [src, #60] - ldr D_h, [src, #64]! - subs tmp2, tmp2, #64 -1: - strd A_l, A_h, [dst, #8] - ldr A_l, [src, #4] - ldr A_h, [src, #8] - strd B_l, B_h, [dst, #16] - ldr B_l, [src, #12] - ldr B_h, [src, #16] - strd C_l, C_h, [dst, #24] - ldr C_l, [src, #20] - ldr C_h, [src, #24] - strd D_l, D_h, [dst, #32] - ldr D_l, [src, #28] - ldr D_h, [src, #32] - bcs 2b - - /* Save the remaining bytes and restore the callee-saved regs. */ - strd A_l, A_h, [dst, #40] - add src, src, #36 - strd B_l, B_h, [dst, #48] - ldrd B_l, B_h, [sp, #8] - strd C_l, C_h, [dst, #56] - ldrd C_l, C_h, [sp, #16] - strd D_l, D_h, [dst, #64] - ldrd D_l, D_h, [sp, #24] - add dst, dst, #72 - ands count, tmp2, #0x3f -#endif - ldr tmp2, [sp], #FRAME_SIZE - bne .Ltail63unaligned - bx lr - - .size memcpy, . - memcpy diff --git a/lib/machine/arm/memcpy-armv7m.S b/lib/machine/arm/memcpy-armv7m.S deleted file mode 100644 index ec1ad64..0000000 --- a/lib/machine/arm/memcpy-armv7m.S +++ /dev/null @@ -1,344 +0,0 @@ -/* - * Copyright (c) 2013 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* This memcpy routine is optimised for Cortex-M3/M4 cores with/without - unaligned access. - - If compiled with GCC, this file should be enclosed within following - pre-processing check: - if defined (__ARM_ARCH_7M__) || defined (__ARM_ARCH_7EM__) - - Prototype: void *memcpy (void *dst, const void *src, size_t count); - - The job will be done in 5 steps. - Step 1: Align src/dest pointers, copy mis-aligned if fail to align both - Step 2: Repeatedly copy big block size of __OPT_BIG_BLOCK_SIZE - Step 3: Repeatedly copy big block size of __OPT_MID_BLOCK_SIZE - Step 4: Copy word by word - Step 5: Copy byte-to-byte - - Tunable options: - __OPT_BIG_BLOCK_SIZE: Size of big block in words. Default to 64. - __OPT_MID_BLOCK_SIZE: Size of big block in words. Default to 16. - */ -#include "arm_asm.h" - -#ifndef __OPT_BIG_BLOCK_SIZE -#define __OPT_BIG_BLOCK_SIZE (4 * 16) -#endif - -#ifndef __OPT_MID_BLOCK_SIZE -#define __OPT_MID_BLOCK_SIZE (4 * 4) -#endif - -#if __OPT_BIG_BLOCK_SIZE == 16 -#define BEGIN_UNROLL_BIG_BLOCK \ - .irp offset, 0,4,8,12 -#elif __OPT_BIG_BLOCK_SIZE == 32 -#define BEGIN_UNROLL_BIG_BLOCK \ - .irp offset, 0,4,8,12,16,20,24,28 -#elif __OPT_BIG_BLOCK_SIZE == 64 -#define BEGIN_UNROLL_BIG_BLOCK \ - .irp offset, 0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60 -#else -#error "Illegal __OPT_BIG_BLOCK_SIZE" -#endif - -#if __OPT_MID_BLOCK_SIZE == 8 -#define BEGIN_UNROLL_MID_BLOCK \ - .irp offset, 0,4 -#elif __OPT_MID_BLOCK_SIZE == 16 -#define BEGIN_UNROLL_MID_BLOCK \ - .irp offset, 0,4,8,12 -#else -#error "Illegal __OPT_MID_BLOCK_SIZE" -#endif - -#define END_UNROLL .endr - - .syntax unified - .text - .align 2 - .global memcpy - .thumb - .thumb_func - .fnstart - .cfi_startproc - .type memcpy, %function -memcpy: - @ r0: dst - @ r1: src - @ r2: len -#ifdef __ARM_FEATURE_UNALIGNED - /* In case of UNALIGNED access supported, ip is not used in - function body. */ - prologue push_ip=HAVE_PAC_LEAF - mov ip, r0 -#else - prologue 0 push_ip=HAVE_PAC_LEAF -#endif /* __ARM_FEATURE_UNALIGNED */ - orr r3, r1, r0 - ands r3, r3, #3 - bne .Lmisaligned_copy - -.Lbig_block: - subs r2, __OPT_BIG_BLOCK_SIZE - blo .Lmid_block - - /* Kernel loop for big block copy */ - .align 2 -.Lbig_block_loop: - BEGIN_UNROLL_BIG_BLOCK -#ifdef __ARM_ARCH_7EM__ - ldr r3, [r1], #4 - str r3, [r0], #4 - END_UNROLL -#else /* __ARM_ARCH_7M__ */ - ldr r3, [r1, \offset] - str r3, [r0, \offset] - END_UNROLL - adds r0, __OPT_BIG_BLOCK_SIZE - adds r1, __OPT_BIG_BLOCK_SIZE -#endif - subs r2, __OPT_BIG_BLOCK_SIZE - bhs .Lbig_block_loop - -.Lmid_block: - adds r2, __OPT_BIG_BLOCK_SIZE - __OPT_MID_BLOCK_SIZE - blo .Lcopy_word_by_word - - /* Kernel loop for mid-block copy */ - .align 2 -.Lmid_block_loop: - BEGIN_UNROLL_MID_BLOCK -#ifdef __ARM_ARCH_7EM__ - ldr r3, [r1], #4 - str r3, [r0], #4 - END_UNROLL -#else /* __ARM_ARCH_7M__ */ - ldr r3, [r1, \offset] - str r3, [r0, \offset] - END_UNROLL - adds r0, __OPT_MID_BLOCK_SIZE - adds r1, __OPT_MID_BLOCK_SIZE -#endif - subs r2, __OPT_MID_BLOCK_SIZE - bhs .Lmid_block_loop - -.Lcopy_word_by_word: - adds r2, __OPT_MID_BLOCK_SIZE - 4 - blo .Lcopy_less_than_4 - - /* Kernel loop for small block copy */ - .align 2 -.Lcopy_word_by_word_loop: - ldr r3, [r1], #4 - str r3, [r0], #4 - subs r2, #4 - bhs .Lcopy_word_by_word_loop - -.Lcopy_less_than_4: - adds r2, #4 - beq .Ldone - - lsls r2, r2, #31 - itt ne - ldrbne r3, [r1], #1 - strbne r3, [r0], #1 - - bcc .Ldone -#ifdef __ARM_FEATURE_UNALIGNED - ldrh r3, [r1] - strh r3, [r0] -#else - ldrb r3, [r1] - strb r3, [r0] - ldrb r3, [r1, #1] - strb r3, [r0, #1] -#endif /* __ARM_FEATURE_UNALIGNED */ - -.Ldone: - .cfi_remember_state -#ifdef __ARM_FEATURE_UNALIGNED - mov r0, ip - epilogue push_ip=HAVE_PAC_LEAF -#else - epilogue 0 push_ip=HAVE_PAC_LEAF -#endif /* __ARM_FEATURE_UNALIGNED */ - - .align 2 -.Lmisaligned_copy: - .cfi_restore_state -#ifdef __ARM_FEATURE_UNALIGNED - /* Define label DST_ALIGNED to BIG_BLOCK. It will go to aligned copy - once destination is adjusted to aligned. */ -#define Ldst_aligned Lbig_block - - /* Copy word by word using LDR when alignment can be done in hardware, - i.e., SCTLR.A is set, supporting unaligned access in LDR and STR. */ - - cmp r2, #8 - blo .Lbyte_copy - - /* if src is aligned, just go to the big block loop. */ - lsls r3, r1, #30 - beq .Ldst_aligned -#else - /* if len < 12, misalignment adjustment has more overhead than - just byte-to-byte copy. Also, len must >=8 to guarantee code - afterward work correctly. */ - cmp r2, #12 - blo .Lbyte_copy -#endif /* __ARM_FEATURE_UNALIGNED */ - - /* Align dst only, not trying to align src. That is the because - handling of aligned src and misaligned dst need more overhead than - otherwise. By doing this the worst case is when initial src is aligned, - additional up to 4 byte additional copy will executed, which is - acceptable. */ - - ands r3, r0, #3 - beq .Ldst_aligned - - rsb r3, #4 - subs r2, r3 - - lsls r3, r3, #31 - itt ne - ldrbne r3, [r1], #1 - strbne r3, [r0], #1 - - bcc .Ldst_aligned - -#ifdef __ARM_FEATURE_UNALIGNED - ldrh r3, [r1], #2 - strh r3, [r0], #2 - b .Ldst_aligned -#else - ldrb r3, [r1], #1 - strb r3, [r0], #1 - ldrb r3, [r1], #1 - strb r3, [r0], #1 - /* Now that dst is aligned */ -.Ldst_aligned: - /* if r1 is aligned now, it means r0/r1 has the same misalignment, - and they are both aligned now. Go aligned copy. */ - ands r3, r1, #3 - beq .Lbig_block - - /* dst is aligned, but src isn't. Misaligned copy. */ - - push {r4, r5} - .cfi_adjust_cfa_offset 8 - .cfi_rel_offset 4, 0 - .cfi_rel_offset 5, 4 - subs r2, #4 - - /* Backward r1 by misaligned bytes, to make r1 aligned. - Since we need to restore r1 to unaligned address after the loop, - we need keep the offset bytes to ip and sub it from r1 afterward. */ - subs r1, r3 - rsb ip, r3, #4 - - /* Pre-load on word */ - ldr r4, [r1], #4 - - cmp r3, #2 - beq .Lmisaligned_copy_2_2 - cmp r3, #3 - beq .Lmisaligned_copy_3_1 - - .macro mis_src_copy shift -1: -#ifdef __ARM_BIG_ENDIAN - lsls r4, r4, \shift -#else - lsrs r4, r4, \shift -#endif - ldr r3, [r1], #4 -#ifdef __ARM_BIG_ENDIAN - lsrs r5, r3, 32-\shift -#else - lsls r5, r3, 32-\shift -#endif - orr r4, r4, r5 - str r4, [r0], #4 - mov r4, r3 - subs r2, #4 - bhs 1b - .endm - -.Lmisaligned_copy_1_3: - mis_src_copy shift=8 - b .Lsrc_misaligned_tail - -.Lmisaligned_copy_3_1: - mis_src_copy shift=24 - b .Lsrc_misaligned_tail - -.Lmisaligned_copy_2_2: - /* For 2_2 misalignment, ldr is still faster than 2 x ldrh. */ - mis_src_copy shift=16 - -.Lsrc_misaligned_tail: - adds r2, #4 - subs r1, ip - pop {r4, r5} - .cfi_restore 4 - .cfi_restore 5 - .cfi_adjust_cfa_offset -8 - -#endif /* __ARM_FEATURE_UNALIGNED */ - -.Lbyte_copy: - subs r2, #4 - blo .Lcopy_less_than_4 - -.Lbyte_copy_loop: - subs r2, #1 - ldrb r3, [r1], #1 - strb r3, [r0], #1 - bhs .Lbyte_copy_loop - - ldrb r3, [r1] - strb r3, [r0] - ldrb r3, [r1, #1] - strb r3, [r0, #1] - ldrb r3, [r1, #2] - strb r3, [r0, #2] - -#ifdef __ARM_FEATURE_UNALIGNED - mov r0, ip - epilogue push_ip=HAVE_PAC_LEAF -#else - epilogue 0 push_ip=HAVE_PAC_LEAF -#endif /* __ARM_FEATURE_UNALIGNED */ - .cfi_endproc - .cantunwind - .fnend - .size memcpy, .-memcpy diff --git a/lib/machine/arm/memcpy-stub.c b/lib/machine/arm/memcpy-stub.c deleted file mode 100644 index 6f41a85..0000000 --- a/lib/machine/arm/memcpy-stub.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright (c) 2015 ARM Ltd. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/* The structure of the following #if #else #endif conditional chain - must match the chain in memcpy.S. */ - -#include "arm-acle-compat.h" - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -# include "../../string/memcpy.c" -#elif (__ARM_ARCH >= 7 && __ARM_ARCH_PROFILE == 'A' \ - && defined (__ARM_FEATURE_UNALIGNED)) -/* Defined in memcpy.S. */ -#elif __ARM_ARCH_ISA_THUMB == 2 && !__ARM_ARCH_ISA_ARM -/* Defined in memcpy.S. */ -#else -# include "../../string/memcpy.c" -#endif diff --git a/lib/machine/arm/memcpy.S b/lib/machine/arm/memcpy.S deleted file mode 100644 index 8416232..0000000 --- a/lib/machine/arm/memcpy.S +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2013-2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* The structure of the following #if #else #endif conditional chain - must match the chain in memcpy-stub.c. */ - -#include "arm-acle-compat.h" - -#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) - /* Defined in memcpy-stub.c. */ - -#elif (__ARM_ARCH >= 7 && __ARM_ARCH_PROFILE == 'A' \ - && defined (__ARM_FEATURE_UNALIGNED)) -#include "memcpy-armv7a.S" - -#elif __ARM_ARCH_ISA_THUMB == 2 && !__ARM_ARCH_ISA_ARM -#include "memcpy-armv7m.S" - -#else - /* Defined in memcpy-stub.c. */ - -#endif diff --git a/lib/machine/arm/setjmp.S b/lib/machine/arm/setjmp.S deleted file mode 100644 index 5e59522..0000000 --- a/lib/machine/arm/setjmp.S +++ /dev/null @@ -1,281 +0,0 @@ -/* This is a simple version of setjmp and longjmp. - - Nick Clifton, Cygnus Solutions, 13 June 1997. */ - -#include "arm-acle-compat.h" - -/* ANSI concatenation macros. */ -#define CONCAT(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a##b - -#ifndef __USER_LABEL_PREFIX__ -#error __USER_LABEL_PREFIX__ not defined -#endif - -#define SYM(x) CONCAT (__USER_LABEL_PREFIX__, x) - -#ifdef __ELF__ -#define TYPE(x) .type SYM(x),function -#define SIZE(x) .size SYM(x), . - SYM(x) -#else -#define TYPE(x) -#define SIZE(x) -#endif - -/* Jump buffer allocation sizes. */ -#define JUMPBUF_CORE_REGS_SIZE (10 * 4) -#define JUMPBUF_FP_REGS_SIZE (8 * 8) -#define JUMPBUF_PAC (JUMPBUF_CORE_REGS_SIZE + JUMPBUF_FP_REGS_SIZE + 0) - -/* Arm/Thumb interworking support: - - The interworking scheme expects functions to use a BX instruction - to return control to their parent. Since we need this code to work - in both interworked and non-interworked environments as well as with - older processors which do not have the BX instruction we do the - following: - Test the return address. - If the bottom bit is clear perform an "old style" function exit. - (We know that we are in ARM mode and returning to an ARM mode caller). - Otherwise use the BX instruction to perform the function exit. - - We know that we will never attempt to perform the BX instruction on - an older processor, because that kind of processor will never be - interworked, and a return address with the bottom bit set will never - be generated. - - In addition, we do not actually assemble the BX instruction as this would - require us to tell the assembler that the processor is an ARM7TDMI and - it would store this information in the binary. We want this binary to be - able to be linked with binaries compiled for older processors however, so - we do not want such information stored there. - - If we are running using the APCS-26 convention however, then we never - test the bottom bit, because this is part of the processor status. - Instead we just do a normal return, since we know that we cannot be - returning to a Thumb caller - the Thumb does not support APCS-26. - - Function entry is much simpler. If we are compiling for the Thumb we - just switch into ARM mode and then drop through into the rest of the - function. The function exit code will take care of the restore to - Thumb mode. - - For Thumb-2 do everything in Thumb mode. */ - - .syntax unified - -/* GCC 12.1 and later will tell the assembler exactly which floating - point (or MVE) unit is required and we don't want to override - that. Conversely, older versions of the compiler don't pass this - information so we need to enable the VFP version that is most - appropriate. The choice here should support all suitable VFP - versions that the older toolchains can handle. */ -#if __GNUC__ && __GNUC__ < 12 -/* Ensure that FPU instructions are correctly compiled and, likewise, - the appropriate build attributes are added to the resulting object - file. Check whether the MVE extension is present and whether - we have support for hardware floating point-operations. VFPxd - covers all the cases we need in this file for hardware - floating-point and should be compatible with all required FPUs - that we need to support. */ -# if __ARM_FP - .fpu vfpxd -# endif -# if __ARM_FEATURE_MVE - .arch_extension mve -# endif -#endif - -#if __ARM_ARCH_ISA_THUMB == 1 && !__ARM_ARCH_ISA_ARM -/* ARMv6-M-like has to be implemented in Thumb mode. */ - -.thumb -.thumb_func - .globl SYM (setjmp) - TYPE (setjmp) -SYM (setjmp): - /* Save registers in jump buffer. */ - stmia r0!, {r4, r5, r6, r7} - mov r1, r8 - mov r2, r9 - mov r3, r10 - mov r4, fp - mov r5, sp - mov r6, lr - stmia r0!, {r1, r2, r3, r4, r5, r6} - subs r0, r0, #40 - /* Restore callee-saved low regs. */ - ldmia r0!, {r4, r5, r6, r7} - /* Return zero. */ - movs r0, #0 - bx lr - -.thumb_func - .globl SYM (longjmp) - TYPE (longjmp) -SYM (longjmp): - /* Restore High regs. */ - adds r0, r0, #16 - ldmia r0!, {r2, r3, r4, r5, r6} - mov r8, r2 - mov r9, r3 - mov r10, r4 - mov fp, r5 - mov sp, r6 - ldmia r0!, {r3} /* lr */ - /* Restore low regs. */ - subs r0, r0, #40 - ldmia r0!, {r4, r5, r6, r7} - /* Return the result argument, or 1 if it is zero. */ - movs r0, r1 - bne 1f - movs r0, #1 -1: - bx r3 - -#else - -#ifdef __APCS_26__ -#define RET movs pc, lr -#elif defined(__thumb2__) -#define RET bx lr -#else -#define RET tst lr, #1; \ - moveq pc, lr ; \ -.inst 0xe12fff1e /* bx lr */ -#endif - -#ifdef __thumb2__ -.macro COND where when - i\where \when -.endm -#else -.macro COND where when -.endm -#endif - -#if defined(__thumb2__) -.macro MODE - .thumb - .thumb_func -.endm -.macro PROLOGUE name -.endm - -#elif defined(__thumb__) -#define MODE .thumb_func -.macro PROLOGUE name - .code 16 - bx pc - nop - .code 32 -SYM (.arm_start_of.\name): -.endm -#else /* Arm */ -#define MODE .code 32 -.macro PROLOGUE name -.endm -#endif - -.macro FUNC_START name - .text - .align 2 - MODE - .globl SYM (\name) - .fnstart - .cfi_startproc - TYPE (\name) -SYM (\name): - PROLOGUE \name -.endm - -.macro FUNC_END name - RET - .cfi_endproc - .fnend - SIZE (\name) -.endm - -/* -------------------------------------------------------------------- - int setjmp (jmp_buf); - -------------------------------------------------------------------- */ - - FUNC_START setjmp - -#if __ARM_FEATURE_PAC_DEFAULT -# if __ARM_FEATURE_BTI_DEFAULT - pacbti ip, lr, sp -# else - pac ip, lr, sp -# endif /* __ARM_FEATURE_BTI_DEFAULT */ - mov r3, ip - str r3, [r0, #JUMPBUF_PAC] - .cfi_register 143, 12 -#else -# if __ARM_FEATURE_BTI_DEFAULT - bti -# endif /* __ARM_FEATURE_BTI_DEFAULT */ -#endif /* __ARM_FEATURE_PAC_DEFAULT */ - - /* Save all the callee-preserved registers into the jump buffer. */ -#ifdef __thumb2__ - mov ip, sp - stmia r0!, { r4-r10, fp, ip, lr } -#else - stmia r0!, { r4-r10, fp, sp, lr } -#endif -#if defined __ARM_FP || defined __ARM_FEATURE_MVE - vstm r0, { d8-d15 } -#endif - - /* When setting up the jump buffer return 0. */ - mov r0, #0 -#if __ARM_FEATURE_PAC_DEFAULT - mov ip, r3 - aut ip, lr, sp -#endif /* __ARM_FEATURE_PAC_DEFAULT */ - - FUNC_END setjmp - -/* -------------------------------------------------------------------- - volatile void longjmp (jmp_buf, int); - -------------------------------------------------------------------- */ - - FUNC_START longjmp - -#if __ARM_FEATURE_BTI_DEFAULT - bti -#endif /* __ARM_FEATURE_BTI_DEFAULT */ - -#if __ARM_FEATURE_PAC_DEFAULT - /* Keep original jmpbuf address for retrieving pac-code - for authentication. */ - mov r2, r0 -#endif /* __ARM_FEATURE_PAC_DEFAULT */ - - /* If we have stack extension code it ought to be handled here. */ - - /* Restore the registers, retrieving the state when setjmp() was called. */ -#ifdef __thumb2__ - ldmia r0!, { r4-r10, fp, ip, lr } - mov sp, ip -#else - ldmia r0!, { r4-r10, fp, sp, lr } -#endif -#if defined __ARM_FP || defined __ARM_FEATURE_MVE - vldm r0, { d8-d15 } -#endif - - /* Put the return value into the integer result register. - But if it is zero then return 1 instead. */ - movs r0, r1 - it eq - moveq r0, #1 - -#if __ARM_FEATURE_PAC_DEFAULT - ldr ip, [r2, #JUMPBUF_PAC] - aut ip, lr, sp -#endif /* __ARM_FEATURE_PAC_DEFAULT */ - - FUNC_END longjmp -#endif diff --git a/lib/machine/arm/strcmp-arm-tiny.S b/lib/machine/arm/strcmp-arm-tiny.S deleted file mode 100644 index 0bd2a2e..0000000 --- a/lib/machine/arm/strcmp-arm-tiny.S +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* Tiny version of strcmp in ARM state. Used only when optimizing - for size. Also supports Thumb-2. */ - -#include "arm_asm.h" - - .syntax unified -def_fn strcmp - .fnstart - .cfi_sections .debug_frame - .cfi_startproc - prologue -1: - ldrb r2, [r0], #1 - ldrb r3, [r1], #1 - cmp r2, #1 - it cs - cmpcs r2, r3 - beq 1b -2: - subs r0, r2, r3 - epilogue - .cfi_endproc - .cantunwind - .fnend - .size strcmp, . - strcmp diff --git a/lib/machine/arm/strcmp-armv4.S b/lib/machine/arm/strcmp-armv4.S deleted file mode 100644 index e8d0e24..0000000 --- a/lib/machine/arm/strcmp-armv4.S +++ /dev/null @@ -1,394 +0,0 @@ -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - /* Basic ARM implementation. This should run on anything except - for ARMv6-M, but there are better implementations for later - revisions of the architecture. This version can support ARMv4T - ARM/Thumb interworking. */ -/* Parameters and result. */ -#define src1 r0 -#define src2 r1 -#define result r0 /* Overlaps src1. */ - -/* Internal variables. */ -#define data1 r2 -#define data2 r3 -#define magic1 r4 -#define tmp2 r5 -#define tmp1 r12 -#define syndrome r12 /* Overlaps tmp1 */ - -/* For armv4t and newer, toolchains will transparently convert - 'bx lr' to 'mov pc, lr' if needed. GCC has deprecated support - for anything older than armv4t, but this should handle that - corner case in case anyone needs it anyway */ -.macro RETURN -#if __ARM_ARCH <= 4 && __ARM_ARCH_ISA_THUMB == 0 - mov pc, lr -#else - bx lr -#endif -.endm - - .arm -def_fn strcmp - .cfi_sections .debug_frame - .cfi_startproc - eor tmp1, src1, src2 - tst tmp1, #3 - /* Strings not at same byte offset from a word boundary. */ - bne .Lstrcmp_unaligned - ands tmp1, src1, #3 - bic src1, src1, #3 - bic src2, src2, #3 - ldr data1, [src1], #4 - ldreq data2, [src2], #4 - beq 1f - /* Although s1 and s2 have identical initial alignment, they are - not currently word aligned. Rather than comparing bytes, - make sure that any bytes fetched from before the addressed - bytes are forced to 0xff. Then they will always compare - equal. */ - eor tmp1, tmp1, #3 - mvn data2, #MSB - lsl tmp1, tmp1, #3 - S2LO tmp1, data2, tmp1 - ldr data2, [src2], #4 - orr data1, data1, tmp1 - orr data2, data2, tmp1 -1: - /* Load the 'magic' constant 0x01010101. */ - str r4, [sp, #-4]! - .cfi_def_cfa_offset 4 - .cfi_offset 4, -4 - mov magic1, #1 - orr magic1, magic1, magic1, lsl #8 - orr magic1, magic1, magic1, lsl #16 - .p2align 2 -4: - sub syndrome, data1, magic1 - cmp data1, data2 - /* check for any zero bytes in first word */ - biceq syndrome, syndrome, data1 - tsteq syndrome, magic1, lsl #7 - ldreq data1, [src1], #4 - ldreq data2, [src2], #4 - beq 4b -2: - /* There's a zero or a different byte in the word */ - S2HI result, data1, #24 - S2LO data1, data1, #8 - cmp result, #1 - cmpcs result, data2, S2HI #24 - S2LOEQ data2, data2, #8 - beq 2b - /* On a big-endian machine, RESULT contains the desired byte in bits - 0-7; on a little-endian machine they are in bits 24-31. In - both cases the other bits in RESULT are all zero. For DATA2 the - interesting byte is at the other end of the word, but the - other bits are not necessarily zero. We need a signed result - representing the differnece in the unsigned bytes, so for the - little-endian case we can't just shift the interesting bits - up. */ -#ifdef __ARM_BIG_ENDIAN - sub result, result, data2, lsr #24 -#else - and data2, data2, #255 - rsb result, data2, result, lsr #24 -#endif - ldr r4, [sp], #4 - .cfi_restore 4 - .cfi_def_cfa_offset 0 - RETURN - - -#if 0 - /* The assembly code below is based on the following alogrithm. */ -#ifdef __ARM_BIG_ENDIAN -#define RSHIFT << -#define LSHIFT >> -#else -#define RSHIFT >> -#define LSHIFT << -#endif - -#define body(shift) \ - mask = 0xffffffffU RSHIFT shift; \ - data1 = *src1++; \ - data2 = *src2++; \ - do \ - { \ - tmp2 = data1 & mask; \ - if (__builtin_expect(tmp2 != data2 RSHIFT shift, 0)) \ - { \ - data2 RSHIFT= shift; \ - break; \ - } \ - if (__builtin_expect(((data1 - b1) & ~data1) & (b1 << 7), 0)) \ - { \ - /* See comment in assembler below re syndrome on big-endian */\ - if ((((data1 - b1) & ~data1) & (b1 << 7)) & mask) \ - data2 RSHIFT= shift; \ - else \ - { \ - data2 = *src2; \ - tmp2 = data1 RSHIFT (32 - shift); \ - data2 = (data2 LSHIFT (32 - shift)) RSHIFT (32 - shift); \ - } \ - break; \ - } \ - data2 = *src2++; \ - tmp2 ^= data1; \ - if (__builtin_expect(tmp2 != data2 LSHIFT (32 - shift), 0)) \ - { \ - tmp2 = data1 >> (32 - shift); \ - data2 = (data2 << (32 - shift)) RSHIFT (32 - shift); \ - break; \ - } \ - data1 = *src1++; \ - } while (1) - - const unsigned* src1; - const unsigned* src2; - unsigned data1, data2; - unsigned mask; - unsigned shift; - unsigned b1 = 0x01010101; - char c1, c2; - unsigned tmp2; - - while (((unsigned) s1) & 3) - { - c1 = *s1++; - c2 = *s2++; - if (c1 == 0 || c1 != c2) - return c1 - (int)c2; - } - src1 = (unsigned*) (((unsigned)s1) & ~3); - src2 = (unsigned*) (((unsigned)s2) & ~3); - tmp2 = ((unsigned) s2) & 3; - if (tmp2 == 1) - { - body(8); - } - else if (tmp2 == 2) - { - body(16); - } - else - { - body (24); - } - - do - { -#ifdef __ARM_BIG_ENDIAN - c1 = (char) tmp2 >> 24; - c2 = (char) data2 >> 24; -#else /* not __ARM_BIG_ENDIAN */ - c1 = (char) tmp2; - c2 = (char) data2; -#endif /* not __ARM_BIG_ENDIAN */ - tmp2 RSHIFT= 8; - data2 RSHIFT= 8; - } while (c1 != 0 && c1 == c2); - return c1 - c2; -#endif /* 0 */ - - - /* First of all, compare bytes until src1(sp1) is word-aligned. */ -.Lstrcmp_unaligned: - tst src1, #3 - beq 2f - ldrb data1, [src1], #1 - ldrb data2, [src2], #1 - cmp data1, #1 - cmpcs data1, data2 - beq .Lstrcmp_unaligned - sub result, data1, data2 - RETURN - -2: - stmfd sp!, {r4, r5} - .cfi_def_cfa_offset 8 - .cfi_offset 4, -8 - .cfi_offset 5, -4 - mov magic1, #1 - orr magic1, magic1, magic1, lsl #8 - orr magic1, magic1, magic1, lsl #16 - - ldr data1, [src1], #4 - and tmp2, src2, #3 - bic src2, src2, #3 - ldr data2, [src2], #4 - cmp tmp2, #2 - beq .Loverlap2 - bhi .Loverlap1 - - /* Critical inner Loop: Block with 3 bytes initial overlap */ - .p2align 2 -.Loverlap3: - bic tmp2, data1, #MSB - cmp tmp2, data2, S2LO #8 - sub syndrome, data1, magic1 - bic syndrome, syndrome, data1 - bne 4f - ands syndrome, syndrome, magic1, lsl #7 - ldreq data2, [src2], #4 - bne 5f - eor tmp2, tmp2, data1 - cmp tmp2, data2, S2HI #24 - bne 6f - ldr data1, [src1], #4 - b .Loverlap3 -4: - S2LO data2, data2, #8 - b .Lstrcmp_tail - -5: -#ifdef __ARM_BIG_ENDIAN - /* The syndrome value may contain false ones if the string ends - with the bytes 0x01 0x00. */ - tst data1, #0xff000000 - tstne data1, #0x00ff0000 - tstne data1, #0x0000ff00 - beq .Lstrcmp_done_equal -#else - bics syndrome, syndrome, #0xff000000 - bne .Lstrcmp_done_equal -#endif - ldrb data2, [src2] - S2LO tmp2, data1, #24 -#ifdef __ARM_BIG_ENDIAN - lsl data2, data2, #24 -#endif - b .Lstrcmp_tail - -6: - S2LO tmp2, data1, #24 - and data2, data2, #LSB - b .Lstrcmp_tail - - /* Critical inner Loop: Block with 2 bytes initial overlap. */ - .p2align 2 -.Loverlap2: - S2HI tmp2, data1, #16 - sub syndrome, data1, magic1 - S2LO tmp2, tmp2, #16 - bic syndrome, syndrome, data1 - cmp tmp2, data2, S2LO #16 - bne 4f - ands syndrome, syndrome, magic1, lsl #7 - ldreq data2, [src2], #4 - bne 5f - eor tmp2, tmp2, data1 - cmp tmp2, data2, S2HI #16 - bne 6f - ldr data1, [src1], #4 - b .Loverlap2 - -5: -#ifdef __ARM_BIG_ENDIAN - /* The syndrome value may contain false ones if the string ends - with the bytes 0x01 0x00 */ - tst data1, #0xff000000 - tstne data1, #0x00ff0000 - beq .Lstrcmp_done_equal -#else - lsls syndrome, syndrome, #16 - bne .Lstrcmp_done_equal -#endif - ldrh data2, [src2] - S2LO tmp2, data1, #16 -#ifdef __ARM_BIG_ENDIAN - lsl data2, data2, #16 -#endif - b .Lstrcmp_tail - -6: - S2HI data2, data2, #16 - S2LO tmp2, data1, #16 -4: - S2LO data2, data2, #16 - b .Lstrcmp_tail - - /* Critical inner Loop: Block with 1 byte initial overlap. */ - .p2align 2 -.Loverlap1: - and tmp2, data1, #LSB - cmp tmp2, data2, S2LO #24 - sub syndrome, data1, magic1 - bic syndrome, syndrome, data1 - bne 4f - ands syndrome, syndrome, magic1, lsl #7 - ldreq data2, [src2], #4 - bne 5f - eor tmp2, tmp2, data1 - cmp tmp2, data2, S2HI #8 - bne 6f - ldr data1, [src1], #4 - b .Loverlap1 -4: - S2LO data2, data2, #24 - b .Lstrcmp_tail -5: - /* The syndrome value may contain false ones if the string ends - with the bytes 0x01 0x00. */ - tst data1, #LSB - beq .Lstrcmp_done_equal - ldr data2, [src2], #4 -6: - S2LO tmp2, data1, #8 - bic data2, data2, #MSB - b .Lstrcmp_tail -.Lstrcmp_done_equal: - mov result, #0 - .cfi_remember_state - ldmfd sp!, {r4, r5} - .cfi_restore 4 - .cfi_restore 5 - .cfi_def_cfa_offset 0 - RETURN - -.Lstrcmp_tail: - .cfi_restore_state - and r2, tmp2, #LSB - and result, data2, #LSB - cmp result, #1 - cmpcs result, r2 - S2LOEQ tmp2, tmp2, #8 - S2LOEQ data2, data2, #8 - beq .Lstrcmp_tail - sub result, r2, result - ldmfd sp!, {r4, r5} - .cfi_restore 4 - .cfi_restore 5 - .cfi_def_cfa_offset 0 - RETURN - .cfi_endproc - .size strcmp, . - strcmp diff --git a/lib/machine/arm/strcmp-armv4t.S b/lib/machine/arm/strcmp-armv4t.S deleted file mode 100644 index d01d840..0000000 --- a/lib/machine/arm/strcmp-armv4t.S +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - /* This version is only used when we want a very basic Thumb1 - implementation or for size, otherwise we use the base ARMv4 - version. This is also suitable for ARMv6-M. */ - - .thumb - .syntax unified - .arch armv4t - .eabi_attribute Tag_also_compatible_with, "\006\013" /* ARMv6-M. */ - .eabi_attribute Tag_ARM_ISA_use, 0 -def_fn strcmp - .cfi_sections .debug_frame - .cfi_startproc -1: - ldrb r2, [r0] - ldrb r3, [r1] - cmp r2, #0 - beq 2f - adds r0, r0, #1 - adds r1, r1, #1 - cmp r2, r3 - beq 1b -2: - subs r0, r2, r3 - bx lr - .cfi_endproc - .size strcmp, . - strcmp diff --git a/lib/machine/arm/strcmp-armv6.S b/lib/machine/arm/strcmp-armv6.S deleted file mode 100644 index 657c1ee..0000000 --- a/lib/machine/arm/strcmp-armv6.S +++ /dev/null @@ -1,470 +0,0 @@ -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - /* Implementation of strcmp for ARMv6. Use ldrd to support wider - loads, provided the data is sufficiently aligned. Use - saturating arithmetic to optimize the compares. */ - - /* Build Options: - STRCMP_NO_PRECHECK: Don't run a quick pre-check of the first - byte in the string. If comparing completely random strings - the pre-check will save time, since there is a very high - probability of a mismatch in the first character: we save - significant overhead if this is the common case. However, - if strings are likely to be identical (eg because we're - verifying a hit in a hash table), then this check is largely - redundant. */ - - .arm - -/* Parameters and result. */ -#define src1 r0 -#define src2 r1 -#define result r0 /* Overlaps src1. */ - -/* Internal variables. */ -#define tmp1 r4 -#define tmp2 r5 -#define const_m1 r12 - -/* Additional internal variables for 64-bit aligned data. */ -#define data1a r2 -#define data1b r3 -#define data2a r6 -#define data2b r7 -#define syndrome_a tmp1 -#define syndrome_b tmp2 - -/* Additional internal variables for 32-bit aligned data. */ -#define data1 r2 -#define data2 r3 -#define syndrome tmp2 - - - /* Macro to compute and return the result value for word-aligned - cases. */ - .macro strcmp_epilogue_aligned synd d1 d2 restore_r6 -#ifdef __ARM_BIG_ENDIAN - /* If data1 contains a zero byte, then syndrome will contain a 1 in - bit 7 of that byte. Otherwise, the highest set bit in the - syndrome will highlight the first different bit. It is therefore - sufficient to extract the eight bits starting with the syndrome - bit. */ - clz tmp1, \synd - lsl r1, \d2, tmp1 - .if \restore_r6 - ldrd r6, r7, [sp, #8] - .endif - .cfi_restore 6 - .cfi_restore 7 - lsl \d1, \d1, tmp1 - .cfi_remember_state - lsr result, \d1, #24 - ldrd r4, r5, [sp], #16 - .cfi_restore 4 - .cfi_restore 5 - sub result, result, r1, lsr #24 - bx lr -#else - /* To use the big-endian trick we'd have to reverse all three words. - that's slower than this approach. */ - rev \synd, \synd - clz tmp1, \synd - bic tmp1, tmp1, #7 - lsr r1, \d2, tmp1 - .cfi_remember_state - .if \restore_r6 - ldrd r6, r7, [sp, #8] - .endif - .cfi_restore 6 - .cfi_restore 7 - lsr \d1, \d1, tmp1 - and result, \d1, #255 - and r1, r1, #255 - ldrd r4, r5, [sp], #16 - .cfi_restore 4 - .cfi_restore 5 - sub result, result, r1 - - bx lr -#endif - .endm - - .text - .p2align 5 -.Lstrcmp_start_addr: -#ifndef STRCMP_NO_PRECHECK -.Lfastpath_exit: - sub r0, r2, r3 - bx lr -#endif -def_fn strcmp -#ifndef STRCMP_NO_PRECHECK - ldrb r2, [src1] - ldrb r3, [src2] - cmp r2, #1 - cmpcs r2, r3 - bne .Lfastpath_exit -#endif - .cfi_sections .debug_frame - .cfi_startproc - strd r4, r5, [sp, #-16]! - .cfi_def_cfa_offset 16 - .cfi_offset 4, -16 - .cfi_offset 5, -12 - orr tmp1, src1, src2 - strd r6, r7, [sp, #8] - .cfi_offset 6, -8 - .cfi_offset 7, -4 - mvn const_m1, #0 - tst tmp1, #7 - beq .Lloop_aligned8 - -.Lnot_aligned: - eor tmp1, src1, src2 - tst tmp1, #7 - bne .Lmisaligned8 - - /* Deal with mutual misalignment by aligning downwards and then - masking off the unwanted loaded data to prevent a difference. */ - and tmp1, src1, #7 - bic src1, src1, #7 - and tmp2, tmp1, #3 - bic src2, src2, #7 - lsl tmp2, tmp2, #3 /* Bytes -> bits. */ - ldrd data1a, data1b, [src1], #16 - tst tmp1, #4 - ldrd data2a, data2b, [src2], #16 - /* In ARM code we can't use ORN, but with do have MVN with a - register shift. */ - mvn tmp1, const_m1, S2HI tmp2 - orr data1a, data1a, tmp1 - orr data2a, data2a, tmp1 - beq .Lstart_realigned8 - orr data1b, data1b, tmp1 - mov data1a, const_m1 - orr data2b, data2b, tmp1 - mov data2a, const_m1 - b .Lstart_realigned8 - - /* Unwind the inner loop by a factor of 2, giving 16 bytes per - pass. */ - .p2align 5,,12 /* Don't start in the tail bytes of a cache line. */ - .p2align 2 /* Always word aligned. */ -.Lloop_aligned8: - ldrd data1a, data1b, [src1], #16 - ldrd data2a, data2b, [src2], #16 -.Lstart_realigned8: - uadd8 syndrome_b, data1a, const_m1 /* Only want GE bits, */ - eor syndrome_a, data1a, data2a - sel syndrome_a, syndrome_a, const_m1 - uadd8 syndrome_b, data1b, const_m1 /* Only want GE bits. */ - eor syndrome_b, data1b, data2b - sel syndrome_b, syndrome_b, const_m1 - orrs syndrome_b, syndrome_b, syndrome_a /* Only need if s_a == 0 */ - bne .Ldiff_found - - ldrd data1a, data1b, [src1, #-8] - ldrd data2a, data2b, [src2, #-8] - uadd8 syndrome_b, data1a, const_m1 /* Only want GE bits, */ - eor syndrome_a, data1a, data2a - sel syndrome_a, syndrome_a, const_m1 - uadd8 syndrome_b, data1b, const_m1 /* Only want GE bits. */ - eor syndrome_b, data1b, data2b - sel syndrome_b, syndrome_b, const_m1 - orrs syndrome_b, syndrome_b, syndrome_a /* Only need if s_a == 0 */ - beq .Lloop_aligned8 - -.Ldiff_found: - cmp syndrome_a, #0 - bne .Ldiff_in_a - -.Ldiff_in_b: - strcmp_epilogue_aligned syndrome_b, data1b, data2b 1 - -.Ldiff_in_a: - .cfi_restore_state - strcmp_epilogue_aligned syndrome_a, data1a, data2a 1 - - .cfi_restore_state -.Lmisaligned8: - tst tmp1, #3 - bne .Lmisaligned4 - ands tmp1, src1, #3 - bne .Lmutual_align4 - - /* Unrolled by a factor of 2, to reduce the number of post-increment - operations. */ -.Lloop_aligned4: - ldr data1, [src1], #8 - ldr data2, [src2], #8 -.Lstart_realigned4: - uadd8 syndrome, data1, const_m1 /* Only need GE bits. */ - eor syndrome, data1, data2 - sel syndrome, syndrome, const_m1 - cmp syndrome, #0 - bne .Laligned4_done - - ldr data1, [src1, #-4] - ldr data2, [src2, #-4] - uadd8 syndrome, data1, const_m1 - eor syndrome, data1, data2 - sel syndrome, syndrome, const_m1 - cmp syndrome, #0 - beq .Lloop_aligned4 - -.Laligned4_done: - strcmp_epilogue_aligned syndrome, data1, data2, 0 - -.Lmutual_align4: - .cfi_restore_state - /* Deal with mutual misalignment by aligning downwards and then - masking off the unwanted loaded data to prevent a difference. */ - lsl tmp1, tmp1, #3 /* Bytes -> bits. */ - bic src1, src1, #3 - ldr data1, [src1], #8 - bic src2, src2, #3 - ldr data2, [src2], #8 - - /* In ARM code we can't use ORN, but with do have MVN with a - register shift. */ - mvn tmp1, const_m1, S2HI tmp1 - orr data1, data1, tmp1 - orr data2, data2, tmp1 - b .Lstart_realigned4 - -.Lmisaligned4: - ands tmp1, src1, #3 - beq .Lsrc1_aligned - sub src2, src2, tmp1 - bic src1, src1, #3 - lsls tmp1, tmp1, #31 - ldr data1, [src1], #4 - beq .Laligned_m2 - bcs .Laligned_m1 - -#ifdef STRCMP_NO_PRECHECK - ldrb data2, [src2, #1] - uxtb tmp1, data1, ror #BYTE1_OFFSET - cmp tmp1, #1 - cmpcs tmp1, data2 - bne .Lmisaligned_exit - -.Laligned_m2: - ldrb data2, [src2, #2] - uxtb tmp1, data1, ror #BYTE2_OFFSET - cmp tmp1, #1 - cmpcs tmp1, data2 - bne .Lmisaligned_exit - -.Laligned_m1: - ldrb data2, [src2, #3] - uxtb tmp1, data1, ror #BYTE3_OFFSET - cmp tmp1, #1 - cmpcs tmp1, data2 - beq .Lsrc1_aligned - -#else /* STRCMP_NO_PRECHECK */ - /* If we've done the pre-check, then we don't need to check the - first byte again here. */ - ldrb data2, [src2, #2] - uxtb tmp1, data1, ror #BYTE2_OFFSET - cmp tmp1, #1 - cmpcs tmp1, data2 - bne .Lmisaligned_exit - -.Laligned_m2: - ldrb data2, [src2, #3] - uxtb tmp1, data1, ror #BYTE3_OFFSET - cmp tmp1, #1 - cmpcs tmp1, data2 - beq .Laligned_m1 -#endif - -.Lmisaligned_exit: - .cfi_remember_state - sub result, tmp1, data2 - ldr r4, [sp], #16 - .cfi_restore 4 - bx lr - -#ifndef STRCMP_NO_PRECHECK -.Laligned_m1: - add src2, src2, #4 -#endif -.Lsrc1_aligned: - .cfi_restore_state - /* src1 is word aligned, but src2 has no common alignment - with it. */ - ldr data1, [src1], #4 - lsls tmp1, src2, #31 /* C=src2[1], Z=src2[0]. */ - - bic src2, src2, #3 - ldr data2, [src2], #4 - bhi .Loverlap1 /* C=1, Z=0 => src2[1:0] = 0b11. */ - bcs .Loverlap2 /* C=1, Z=1 => src2[1:0] = 0b10. */ - - /* (overlap3) C=0, Z=0 => src2[1:0] = 0b01. */ -.Loverlap3: - bic tmp1, data1, #MSB - uadd8 syndrome, data1, const_m1 - eors syndrome, tmp1, data2, S2LO #8 - sel syndrome, syndrome, const_m1 - bne 4f - cmp syndrome, #0 - ldreq data2, [src2], #4 - bne 5f - - eor tmp1, tmp1, data1 - cmp tmp1, data2, S2HI #24 - bne 6f - ldr data1, [src1], #4 - b .Loverlap3 -4: - S2LO data2, data2, #8 - b .Lstrcmp_tail - -5: - bics syndrome, syndrome, #MSB - bne .Lstrcmp_done_equal - - /* We can only get here if the MSB of data1 contains 0, so - fast-path the exit. */ - ldrb result, [src2] - .cfi_remember_state - ldrd r4, r5, [sp], #16 - .cfi_restore 4 - .cfi_restore 5 - /* R6/7 Not used in this sequence. */ - .cfi_restore 6 - .cfi_restore 7 - neg result, result - bx lr - -6: - .cfi_restore_state - S2LO data1, data1, #24 - and data2, data2, #LSB - b .Lstrcmp_tail - - .p2align 5,,12 /* Ensure at least 3 instructions in cache line. */ -.Loverlap2: - and tmp1, data1, const_m1, S2LO #16 - uadd8 syndrome, data1, const_m1 - eors syndrome, tmp1, data2, S2LO #16 - sel syndrome, syndrome, const_m1 - bne 4f - cmp syndrome, #0 - ldreq data2, [src2], #4 - bne 5f - eor tmp1, tmp1, data1 - cmp tmp1, data2, S2HI #16 - bne 6f - ldr data1, [src1], #4 - b .Loverlap2 -4: - S2LO data2, data2, #16 - b .Lstrcmp_tail -5: - ands syndrome, syndrome, const_m1, S2LO #16 - bne .Lstrcmp_done_equal - - ldrh data2, [src2] - S2LO data1, data1, #16 -#ifdef __ARM_BIG_ENDIAN - lsl data2, data2, #16 -#endif - b .Lstrcmp_tail - -6: - S2LO data1, data1, #16 - and data2, data2, const_m1, S2LO #16 - b .Lstrcmp_tail - - .p2align 5,,12 /* Ensure at least 3 instructions in cache line. */ -.Loverlap1: - and tmp1, data1, #LSB - uadd8 syndrome, data1, const_m1 - eors syndrome, tmp1, data2, S2LO #24 - sel syndrome, syndrome, const_m1 - bne 4f - cmp syndrome, #0 - ldreq data2, [src2], #4 - bne 5f - eor tmp1, tmp1, data1 - cmp tmp1, data2, S2HI #8 - bne 6f - ldr data1, [src1], #4 - b .Loverlap1 -4: - S2LO data2, data2, #24 - b .Lstrcmp_tail -5: - tst syndrome, #LSB - bne .Lstrcmp_done_equal - ldr data2, [src2] -6: - S2LO data1, data1, #8 - bic data2, data2, #MSB - b .Lstrcmp_tail - -.Lstrcmp_done_equal: - mov result, #0 - .cfi_remember_state - ldrd r4, r5, [sp], #16 - .cfi_restore 4 - .cfi_restore 5 - /* R6/7 not used in this sequence. */ - .cfi_restore 6 - .cfi_restore 7 - bx lr - -.Lstrcmp_tail: - .cfi_restore_state -#ifndef __ARM_BIG_ENDIAN - rev data1, data1 - rev data2, data2 - /* Now everything looks big-endian... */ -#endif - uadd8 tmp1, data1, const_m1 - eor tmp1, data1, data2 - sel syndrome, tmp1, const_m1 - clz tmp1, syndrome - lsl data1, data1, tmp1 - lsl data2, data2, tmp1 - lsr result, data1, #24 - ldrd r4, r5, [sp], #16 - .cfi_restore 4 - .cfi_restore 5 - /* R6/7 not used in this sequence. */ - .cfi_restore 6 - .cfi_restore 7 - sub result, result, data2, lsr #24 - bx lr - .cfi_endproc - .size strcmp, . - .Lstrcmp_start_addr diff --git a/lib/machine/arm/strcmp-armv6m.S b/lib/machine/arm/strcmp-armv6m.S deleted file mode 100644 index 74f87cb..0000000 --- a/lib/machine/arm/strcmp-armv6m.S +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* Implementation of strcmp for ARMv6m. This version is only used in - ARMv6-M when we want an efficient implementation. Otherwize if the - code size is preferred, strcmp-armv4t.S will be used. */ - - .thumb_func - .syntax unified - .arch armv6-m - - .macro DoSub n, label - subs r0, r0, r1 -#ifdef __ARM_BIG_ENDIAN - lsrs r1, r4, \n -#else - lsls r1, r4, \n -#endif - orrs r1, r0 - bne \label - .endm - - .macro Byte_Test n, label - lsrs r0, r2, \n - lsrs r1, r3, \n - DoSub \n, \label - .endm - - .text -def_fn strcmp - .cfi_sections .debug_frame - .cfi_startproc - mov r2, r0 - push {r4, r5, r6, lr} - orrs r2, r1 - lsls r2, r2, #30 - bne 6f - ldr r5, =0x01010101 - lsls r6, r5, #7 -1: - ldmia r0!, {r2} - ldmia r1!, {r3} - subs r4, r2, r5 - bics r4, r2 - ands r4, r6 - beq 3f - -#ifdef __ARM_BIG_ENDIAN - Byte_Test #24, 4f - Byte_Test #16, 4f - Byte_Test #8, 4f - - b 7f -3: - cmp r2, r3 - beq 1b - cmp r2, r3 -#else - uxtb r0, r2 - uxtb r1, r3 - DoSub #24, 2f - - uxth r0, r2 - uxth r1, r3 - DoSub #16, 2f - - lsls r0, r2, #8 - lsls r1, r3, #8 - lsrs r0, r0, #8 - lsrs r1, r1, #8 - DoSub #8, 2f - - lsrs r0, r2, #24 - lsrs r1, r3, #24 - subs r0, r0, r1 -2: - pop {r4, r5, r6, pc} - -3: - cmp r2, r3 - beq 1b - rev r0, r2 - rev r1, r3 - cmp r0, r1 -#endif - - bls 5f - movs r0, #1 -4: - pop {r4, r5, r6, pc} -5: - movs r0, #0 - mvns r0, r0 - pop {r4, r5, r6, pc} -6: - ldrb r2, [r0, #0] - ldrb r3, [r1, #0] - adds r0, #1 - adds r1, #1 - cmp r2, #0 - beq 7f - cmp r2, r3 - bne 7f - ldrb r2, [r0, #0] - ldrb r3, [r1, #0] - adds r0, #1 - adds r1, #1 - cmp r2, #0 - beq 7f - cmp r2, r3 - beq 6b -7: - subs r0, r2, r3 - pop {r4, r5, r6, pc} - .cfi_endproc - .size strcmp, . - strcmp diff --git a/lib/machine/arm/strcmp-armv7.S b/lib/machine/arm/strcmp-armv7.S deleted file mode 100644 index 7cafca1..0000000 --- a/lib/machine/arm/strcmp-armv7.S +++ /dev/null @@ -1,482 +0,0 @@ -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - /* Implementation of strcmp for ARMv7 when DSP instructions are - available. Use ldrd to support wider loads, provided the data - is sufficiently aligned. Use saturating arithmetic to optimize - the compares. */ - - /* Build Options: - STRCMP_NO_PRECHECK: Don't run a quick pre-check of the first - byte in the string. If comparing completely random strings - the pre-check will save time, since there is a very high - probability of a mismatch in the first character: we save - significant overhead if this is the common case. However, - if strings are likely to be identical (eg because we're - verifying a hit in a hash table), then this check is largely - redundant. */ - - /* This version uses Thumb-2 code. */ - .thumb - .syntax unified - -#include "arm_asm.h" - -/* Parameters and result. */ -#define src1 r0 -#define src2 r1 -#define result r0 /* Overlaps src1. */ - -/* Internal variables. */ -#define tmp1 r4 -#define tmp2 r5 -#define const_m1 r12 - -/* Additional internal variables for 64-bit aligned data. */ -#define data1a r2 -#define data1b r3 -#define data2a r6 -#define data2b r7 -#define syndrome_a tmp1 -#define syndrome_b tmp2 - -/* Additional internal variables for 32-bit aligned data. */ -#define data1 r2 -#define data2 r3 -#define syndrome tmp2 - - - /* Macro to compute and return the result value for word-aligned - cases. */ - .macro strcmp_epilogue_aligned synd d1 d2 restore_r6 -#ifdef __ARM_BIG_ENDIAN - /* If data1 contains a zero byte, then syndrome will contain a 1 in - bit 7 of that byte. Otherwise, the highest set bit in the - syndrome will highlight the first different bit. It is therefore - sufficient to extract the eight bits starting with the syndrome - bit. */ - clz tmp1, \synd - lsl r1, \d2, tmp1 - .if \restore_r6 - ldrd r6, r7, [sp, #8] - .endif - .cfi_restore 6 - .cfi_restore 7 - lsl \d1, \d1, tmp1 - .cfi_remember_state - lsr result, \d1, #24 - ldrd r4, r5, [sp], #16 - .cfi_restore 4 - .cfi_restore 5 - .cfi_adjust_cfa_offset -16 - sub result, result, r1, lsr #24 - epilogue push_ip=HAVE_PAC_LEAF -#else - /* To use the big-endian trick we'd have to reverse all three words. - that's slower than this approach. */ - rev \synd, \synd - clz tmp1, \synd - bic tmp1, tmp1, #7 - lsr r1, \d2, tmp1 - .cfi_remember_state - .if \restore_r6 - ldrd r6, r7, [sp, #8] - .endif - .cfi_restore 6 - .cfi_restore 7 - lsr \d1, \d1, tmp1 - and result, \d1, #255 - and r1, r1, #255 - ldrd r4, r5, [sp], #16 - .cfi_restore 4 - .cfi_restore 5 - .cfi_adjust_cfa_offset -16 - sub result, result, r1 - - epilogue push_ip=HAVE_PAC_LEAF -#endif - .endm - - - .text - .p2align 5 -def_fn strcmp - .fnstart - .cfi_sections .debug_frame - .cfi_startproc - prologue push_ip=HAVE_PAC_LEAF -#ifndef STRCMP_NO_PRECHECK - ldrb r2, [src1] - ldrb r3, [src2] - cmp r2, #1 - it cs - cmpcs r2, r3 - bne .Lfastpath_exit -#endif - strd r4, r5, [sp, #-16]! - .cfi_adjust_cfa_offset 16 - .cfi_rel_offset 4, 0 - .cfi_rel_offset 5, 4 - orr tmp1, src1, src2 - strd r6, r7, [sp, #8] - .cfi_rel_offset 6, 8 - .cfi_rel_offset 7, 12 - mvn const_m1, #0 - lsl r2, tmp1, #29 - cbz r2, .Lloop_aligned8 - -.Lnot_aligned: - eor tmp1, src1, src2 - tst tmp1, #7 - bne .Lmisaligned8 - - /* Deal with mutual misalignment by aligning downwards and then - masking off the unwanted loaded data to prevent a difference. */ - and tmp1, src1, #7 - bic src1, src1, #7 - and tmp2, tmp1, #3 - bic src2, src2, #7 - lsl tmp2, tmp2, #3 /* Bytes -> bits. */ - ldrd data1a, data1b, [src1], #16 - tst tmp1, #4 - ldrd data2a, data2b, [src2], #16 - /* In thumb code we can't use MVN with a register shift, but - we do have ORN. */ - S2HI tmp1, const_m1, tmp2 - orn data1a, data1a, tmp1 - orn data2a, data2a, tmp1 - beq .Lstart_realigned8 - orn data1b, data1b, tmp1 - mov data1a, const_m1 - orn data2b, data2b, tmp1 - mov data2a, const_m1 - b .Lstart_realigned8 - - /* Unwind the inner loop by a factor of 2, giving 16 bytes per - pass. */ - .p2align 5,,12 /* Don't start in the tail bytes of a cache line. */ - .p2align 2 /* Always word aligned. */ -.Lloop_aligned8: - ldrd data1a, data1b, [src1], #16 - ldrd data2a, data2b, [src2], #16 -.Lstart_realigned8: - uadd8 syndrome_b, data1a, const_m1 /* Only want GE bits, */ - eor syndrome_a, data1a, data2a - sel syndrome_a, syndrome_a, const_m1 - cbnz syndrome_a, .Ldiff_in_a - uadd8 syndrome_b, data1b, const_m1 /* Only want GE bits. */ - eor syndrome_b, data1b, data2b - sel syndrome_b, syndrome_b, const_m1 - cbnz syndrome_b, .Ldiff_in_b - - ldrd data1a, data1b, [src1, #-8] - ldrd data2a, data2b, [src2, #-8] - uadd8 syndrome_b, data1a, const_m1 /* Only want GE bits, */ - eor syndrome_a, data1a, data2a - sel syndrome_a, syndrome_a, const_m1 - uadd8 syndrome_b, data1b, const_m1 /* Only want GE bits. */ - eor syndrome_b, data1b, data2b - sel syndrome_b, syndrome_b, const_m1 - /* Can't use CBZ for backwards branch. */ - orrs syndrome_b, syndrome_b, syndrome_a /* Only need if s_a == 0 */ - beq .Lloop_aligned8 - -.Ldiff_found: - cbnz syndrome_a, .Ldiff_in_a - -.Ldiff_in_b: - strcmp_epilogue_aligned syndrome_b, data1b, data2b 1 - -.Ldiff_in_a: - .cfi_restore_state - strcmp_epilogue_aligned syndrome_a, data1a, data2a 1 - - .cfi_restore_state -.Lmisaligned8: - tst tmp1, #3 - bne .Lmisaligned4 - ands tmp1, src1, #3 - bne .Lmutual_align4 - - /* Unrolled by a factor of 2, to reduce the number of post-increment - operations. */ -.Lloop_aligned4: - ldr data1, [src1], #8 - ldr data2, [src2], #8 -.Lstart_realigned4: - uadd8 syndrome, data1, const_m1 /* Only need GE bits. */ - eor syndrome, data1, data2 - sel syndrome, syndrome, const_m1 - cbnz syndrome, .Laligned4_done - ldr data1, [src1, #-4] - ldr data2, [src2, #-4] - uadd8 syndrome, data1, const_m1 - eor syndrome, data1, data2 - sel syndrome, syndrome, const_m1 - cmp syndrome, #0 - beq .Lloop_aligned4 - -.Laligned4_done: - strcmp_epilogue_aligned syndrome, data1, data2, 0 - -.Lmutual_align4: - .cfi_restore_state - /* Deal with mutual misalignment by aligning downwards and then - masking off the unwanted loaded data to prevent a difference. */ - lsl tmp1, tmp1, #3 /* Bytes -> bits. */ - bic src1, src1, #3 - ldr data1, [src1], #8 - bic src2, src2, #3 - ldr data2, [src2], #8 - - /* In thumb code we can't use MVN with a register shift, but - we do have ORN. */ - S2HI tmp1, const_m1, tmp1 - orn data1, data1, tmp1 - orn data2, data2, tmp1 - b .Lstart_realigned4 - -.Lmisaligned4: - ands tmp1, src1, #3 - beq .Lsrc1_aligned - sub src2, src2, tmp1 - bic src1, src1, #3 - lsls tmp1, tmp1, #31 - ldr data1, [src1], #4 - beq .Laligned_m2 - bcs .Laligned_m1 -#ifdef STRCMP_NO_PRECHECK - ldrb data2, [src2, #1] - uxtb tmp1, data1, ror #BYTE1_OFFSET - subs tmp1, tmp1, data2 - bne .Lmisaligned_exit - cbz data2, .Lmisaligned_exit - -.Laligned_m2: - ldrb data2, [src2, #2] - uxtb tmp1, data1, ror #BYTE2_OFFSET - subs tmp1, tmp1, data2 - bne .Lmisaligned_exit - cbz data2, .Lmisaligned_exit - -.Laligned_m1: - ldrb data2, [src2, #3] - uxtb tmp1, data1, ror #BYTE3_OFFSET - subs tmp1, tmp1, data2 - bne .Lmisaligned_exit - add src2, src2, #4 - cbnz data2, .Lsrc1_aligned -#else /* STRCMP_NO_PRECHECK */ - /* If we've done the pre-check, then we don't need to check the - first byte again here. */ - ldrb data2, [src2, #2] - uxtb tmp1, data1, ror #BYTE2_OFFSET - subs tmp1, tmp1, data2 - bne .Lmisaligned_exit - cbz data2, .Lmisaligned_exit - -.Laligned_m2: - ldrb data2, [src2, #3] - uxtb tmp1, data1, ror #BYTE3_OFFSET - subs tmp1, tmp1, data2 - bne .Lmisaligned_exit - cbnz data2, .Laligned_m1 -#endif - -.Lmisaligned_exit: - .cfi_remember_state - mov result, tmp1 - ldr r4, [sp], #16 - .cfi_restore 4 - .cfi_adjust_cfa_offset -16 - epilogue push_ip=HAVE_PAC_LEAF - -#ifndef STRCMP_NO_PRECHECK -.Lfastpath_exit: - .cfi_restore_state - .cfi_remember_state - sub r0, r2, r3 - epilogue push_ip=HAVE_PAC_LEAF - -.Laligned_m1: - .cfi_restore_state - .cfi_remember_state - add src2, src2, #4 -#endif -.Lsrc1_aligned: - .cfi_restore_state - /* src1 is word aligned, but src2 has no common alignment - with it. */ - ldr data1, [src1], #4 - lsls tmp1, src2, #31 /* C=src2[1], Z=src2[0]. */ - - bic src2, src2, #3 - ldr data2, [src2], #4 - bhi .Loverlap1 /* C=1, Z=0 => src2[1:0] = 0b11. */ - bcs .Loverlap2 /* C=1, Z=1 => src2[1:0] = 0b10. */ - - /* (overlap3) C=0, Z=0 => src2[1:0] = 0b01. */ -.Loverlap3: - bic tmp1, data1, #MSB - uadd8 syndrome, data1, const_m1 - eors syndrome, tmp1, data2, S2LO #8 - sel syndrome, syndrome, const_m1 - bne 4f - cbnz syndrome, 5f - ldr data2, [src2], #4 - eor tmp1, tmp1, data1 - cmp tmp1, data2, S2HI #24 - bne 6f - ldr data1, [src1], #4 - b .Loverlap3 -4: - S2LO data2, data2, #8 - b .Lstrcmp_tail - -5: - bics syndrome, syndrome, #MSB - bne .Lstrcmp_done_equal - - /* We can only get here if the MSB of data1 contains 0, so - fast-path the exit. */ - ldrb result, [src2] - .cfi_remember_state - ldrd r4, r5, [sp], #16 - .cfi_restore 4 - .cfi_restore 5 - /* R6/7 Not used in this sequence. */ - .cfi_restore 6 - .cfi_restore 7 - .cfi_adjust_cfa_offset -16 - neg result, result - epilogue push_ip=HAVE_PAC_LEAF - -6: - .cfi_restore_state - S2LO data1, data1, #24 - and data2, data2, #LSB - b .Lstrcmp_tail - - .p2align 5,,12 /* Ensure at least 3 instructions in cache line. */ -.Loverlap2: - and tmp1, data1, const_m1, S2LO #16 - uadd8 syndrome, data1, const_m1 - eors syndrome, tmp1, data2, S2LO #16 - sel syndrome, syndrome, const_m1 - bne 4f - cbnz syndrome, 5f - ldr data2, [src2], #4 - eor tmp1, tmp1, data1 - cmp tmp1, data2, S2HI #16 - bne 6f - ldr data1, [src1], #4 - b .Loverlap2 -4: - S2LO data2, data2, #16 - b .Lstrcmp_tail -5: - ands syndrome, syndrome, const_m1, S2LO #16 - bne .Lstrcmp_done_equal - - ldrh data2, [src2] - S2LO data1, data1, #16 -#ifdef __ARM_BIG_ENDIAN - lsl data2, data2, #16 -#endif - b .Lstrcmp_tail - -6: - S2LO data1, data1, #16 - and data2, data2, const_m1, S2LO #16 - b .Lstrcmp_tail - - .p2align 5,,12 /* Ensure at least 3 instructions in cache line. */ -.Loverlap1: - and tmp1, data1, #LSB - uadd8 syndrome, data1, const_m1 - eors syndrome, tmp1, data2, S2LO #24 - sel syndrome, syndrome, const_m1 - bne 4f - cbnz syndrome, 5f - ldr data2, [src2], #4 - eor tmp1, tmp1, data1 - cmp tmp1, data2, S2HI #8 - bne 6f - ldr data1, [src1], #4 - b .Loverlap1 -4: - S2LO data2, data2, #24 - b .Lstrcmp_tail -5: - tst syndrome, #LSB - bne .Lstrcmp_done_equal - ldr data2, [src2] -6: - S2LO data1, data1, #8 - bic data2, data2, #MSB - b .Lstrcmp_tail - -.Lstrcmp_done_equal: - mov result, #0 - .cfi_remember_state - ldrd r4, r5, [sp], #16 - .cfi_restore 4 - .cfi_restore 5 - /* R6/7 not used in this sequence. */ - .cfi_restore 6 - .cfi_restore 7 - .cfi_adjust_cfa_offset -16 - epilogue push_ip=HAVE_PAC_LEAF - -.Lstrcmp_tail: - .cfi_restore_state -#ifndef __ARM_BIG_ENDIAN - rev data1, data1 - rev data2, data2 - /* Now everything looks big-endian... */ -#endif - uadd8 tmp1, data1, const_m1 - eor tmp1, data1, data2 - sel syndrome, tmp1, const_m1 - clz tmp1, syndrome - lsl data1, data1, tmp1 - lsl data2, data2, tmp1 - lsr result, data1, #24 - ldrd r4, r5, [sp], #16 - .cfi_restore 4 - .cfi_restore 5 - /* R6/7 not used in this sequence. */ - .cfi_restore 6 - .cfi_restore 7 - .cfi_adjust_cfa_offset -16 - sub result, result, data2, lsr #24 - epilogue push_ip=HAVE_PAC_LEAF - .cfi_endproc - .cantunwind - .fnend - .size strcmp, . - strcmp diff --git a/lib/machine/arm/strcmp-armv7m.S b/lib/machine/arm/strcmp-armv7m.S deleted file mode 100644 index 825b6e7..0000000 --- a/lib/machine/arm/strcmp-armv7m.S +++ /dev/null @@ -1,388 +0,0 @@ -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* Very similar to the generic code, but uses Thumb2 as implemented - in ARMv7-M. */ - -#include "arm_asm.h" - -/* Parameters and result. */ -#define src1 r0 -#define src2 r1 -#define result r0 /* Overlaps src1. */ - -/* Internal variables. */ -#define data1 r2 -#define data2 r3 -#define tmp2 r5 -#define tmp1 r12 -#define syndrome r12 /* Overlaps tmp1 */ - - .thumb - .syntax unified -def_fn strcmp - .fnstart - .cfi_sections .debug_frame - .cfi_startproc - prologue push_ip=HAVE_PAC_LEAF - eor tmp1, src1, src2 - tst tmp1, #3 - /* Strings not at same byte offset from a word boundary. */ - bne .Lstrcmp_unaligned - ands tmp1, src1, #3 - bic src1, src1, #3 - bic src2, src2, #3 - ldr data1, [src1], #4 - it eq - ldreq data2, [src2], #4 - beq 4f - /* Although s1 and s2 have identical initial alignment, they are - not currently word aligned. Rather than comparing bytes, - make sure that any bytes fetched from before the addressed - bytes are forced to 0xff. Then they will always compare - equal. */ - eor tmp1, tmp1, #3 - mvn data2, #MSB - lsl tmp1, tmp1, #3 - S2LO tmp1, data2, tmp1 - ldr data2, [src2], #4 - orr data1, data1, tmp1 - orr data2, data2, tmp1 - .p2align 2 - /* Critical loop. */ -4: - sub syndrome, data1, #0x01010101 - cmp data1, data2 - /* check for any zero bytes in first word */ - itttt eq - biceq syndrome, syndrome, data1 - tsteq syndrome, #0x80808080 - ldreq data1, [src1], #4 - ldreq data2, [src2], #4 - beq 4b -2: - .cfi_remember_state - /* There's a zero or a different byte in the word */ - S2HI result, data1, #24 - S2LO data1, data1, #8 - cmp result, #1 - it cs - cmpcs result, data2, S2HI #24 - it eq - S2LOEQ data2, data2, #8 - beq 2b - /* On a big-endian machine, RESULT contains the desired byte in bits - 0-7; on a little-endian machine they are in bits 24-31. In - both cases the other bits in RESULT are all zero. For DATA2 the - interesting byte is at the other end of the word, but the - other bits are not necessarily zero. We need a signed result - representing the differnece in the unsigned bytes, so for the - little-endian case we can't just shift the interesting bits - up. */ -#ifdef __ARM_BIG_ENDIAN - sub result, result, data2, lsr #24 -#else - and data2, data2, #255 - lsrs result, result, #24 - subs result, result, data2 -#endif - epilogue push_ip=HAVE_PAC_LEAF - - -#if 0 - /* The assembly code below is based on the following alogrithm. */ -#ifdef __ARM_BIG_ENDIAN -#define RSHIFT << -#define LSHIFT >> -#else -#define RSHIFT >> -#define LSHIFT << -#endif - -#define body(shift) \ - mask = 0xffffffffU RSHIFT shift; \ - data1 = *src1++; \ - data2 = *src2++; \ - do \ - { \ - tmp2 = data1 & mask; \ - if (__builtin_expect(tmp2 != data2 RSHIFT shift, 0)) \ - { \ - data2 RSHIFT= shift; \ - break; \ - } \ - if (__builtin_expect(((data1 - b1) & ~data1) & (b1 << 7), 0)) \ - { \ - /* See comment in assembler below re syndrome on big-endian */\ - if ((((data1 - b1) & ~data1) & (b1 << 7)) & mask) \ - data2 RSHIFT= shift; \ - else \ - { \ - data2 = *src2; \ - tmp2 = data1 RSHIFT (32 - shift); \ - data2 = (data2 LSHIFT (32 - shift)) RSHIFT (32 - shift); \ - } \ - break; \ - } \ - data2 = *src2++; \ - tmp2 ^= data1; \ - if (__builtin_expect(tmp2 != data2 LSHIFT (32 - shift), 0)) \ - { \ - tmp2 = data1 >> (32 - shift); \ - data2 = (data2 << (32 - shift)) RSHIFT (32 - shift); \ - break; \ - } \ - data1 = *src1++; \ - } while (1) - - const unsigned* src1; - const unsigned* src2; - unsigned data1, data2; - unsigned mask; - unsigned shift; - unsigned b1 = 0x01010101; - char c1, c2; - unsigned tmp2; - - while (((unsigned) s1) & 3) - { - c1 = *s1++; - c2 = *s2++; - if (c1 == 0 || c1 != c2) - return c1 - (int)c2; - } - src1 = (unsigned*) (((unsigned)s1) & ~3); - src2 = (unsigned*) (((unsigned)s2) & ~3); - tmp2 = ((unsigned) s2) & 3; - if (tmp2 == 1) - { - body(8); - } - else if (tmp2 == 2) - { - body(16); - } - else - { - body (24); - } - - do - { -#ifdef __ARM_BIG_ENDIAN - c1 = (char) tmp2 >> 24; - c2 = (char) data2 >> 24; -#else /* not __ARM_BIG_ENDIAN */ - c1 = (char) tmp2; - c2 = (char) data2; -#endif /* not __ARM_BIG_ENDIAN */ - tmp2 RSHIFT= 8; - data2 RSHIFT= 8; - } while (c1 != 0 && c1 == c2); - return c1 - c2; -#endif /* 0 */ - - - /* First of all, compare bytes until src1(sp1) is word-aligned. */ -.Lstrcmp_unaligned: - .cfi_restore_state - tst src1, #3 - beq 2f - .cfi_remember_state - ldrb data1, [src1], #1 - ldrb data2, [src2], #1 - cmp data1, #1 - it cs - cmpcs data1, data2 - beq .Lstrcmp_unaligned - sub result, data1, data2 - epilogue push_ip=HAVE_PAC_LEAF - -2: - .cfi_restore_state - stmfd sp!, {r5} - .cfi_adjust_cfa_offset 4 - .cfi_rel_offset 5, 0 - - ldr data1, [src1], #4 - and tmp2, src2, #3 - bic src2, src2, #3 - ldr data2, [src2], #4 - cmp tmp2, #2 - beq .Loverlap2 - bhi .Loverlap1 - - /* Critical inner Loop: Block with 3 bytes initial overlap */ - .p2align 2 -.Loverlap3: - bic tmp2, data1, #MSB - cmp tmp2, data2, S2LO #8 - sub syndrome, data1, #0x01010101 - bic syndrome, syndrome, data1 - bne 4f - ands syndrome, syndrome, #0x80808080 - it eq - ldreq data2, [src2], #4 - bne 5f - eor tmp2, tmp2, data1 - cmp tmp2, data2, S2HI #24 - bne 6f - ldr data1, [src1], #4 - b .Loverlap3 -4: - S2LO data2, data2, #8 - b .Lstrcmp_tail - -5: -#ifdef __ARM_BIG_ENDIAN - /* The syndrome value may contain false ones if the string ends - with the bytes 0x01 0x00. */ - tst data1, #0xff000000 - itt ne - tstne data1, #0x00ff0000 - tstne data1, #0x0000ff00 - beq .Lstrcmp_done_equal -#else - bics syndrome, syndrome, #0xff000000 - bne .Lstrcmp_done_equal -#endif - ldrb data2, [src2] - S2LO tmp2, data1, #24 -#ifdef __ARM_BIG_ENDIAN - lsl data2, data2, #24 -#endif - b .Lstrcmp_tail - -6: - S2LO tmp2, data1, #24 - and data2, data2, #LSB - b .Lstrcmp_tail - - /* Critical inner Loop: Block with 2 bytes initial overlap. */ - .p2align 2 -.Loverlap2: - S2HI tmp2, data1, #16 - sub syndrome, data1, #0x01010101 - S2LO tmp2, tmp2, #16 - bic syndrome, syndrome, data1 - cmp tmp2, data2, S2LO #16 - bne 4f - ands syndrome, syndrome, #0x80808080 - it eq - ldreq data2, [src2], #4 - bne 5f - eor tmp2, tmp2, data1 - cmp tmp2, data2, S2HI #16 - bne 6f - ldr data1, [src1], #4 - b .Loverlap2 - -5: -#ifdef __ARM_BIG_ENDIAN - /* The syndrome value may contain false ones if the string ends - with the bytes 0x01 0x00 */ - tst data1, #0xff000000 - it ne - tstne data1, #0x00ff0000 - beq .Lstrcmp_done_equal -#else - lsls syndrome, syndrome, #16 - bne .Lstrcmp_done_equal -#endif - ldrh data2, [src2] - S2LO tmp2, data1, #16 -#ifdef __ARM_BIG_ENDIAN - lsl data2, data2, #16 -#endif - b .Lstrcmp_tail - -6: - S2HI data2, data2, #16 - S2LO tmp2, data1, #16 -4: - S2LO data2, data2, #16 - b .Lstrcmp_tail - - /* Critical inner Loop: Block with 1 byte initial overlap. */ - .p2align 2 -.Loverlap1: - and tmp2, data1, #LSB - cmp tmp2, data2, S2LO #24 - sub syndrome, data1, #0x01010101 - bic syndrome, syndrome, data1 - bne 4f - ands syndrome, syndrome, #0x80808080 - it eq - ldreq data2, [src2], #4 - bne 5f - eor tmp2, tmp2, data1 - cmp tmp2, data2, S2HI #8 - bne 6f - ldr data1, [src1], #4 - b .Loverlap1 -4: - S2LO data2, data2, #24 - b .Lstrcmp_tail -5: - /* The syndrome value may contain false ones if the string ends - with the bytes 0x01 0x00. */ - tst data1, #LSB - beq .Lstrcmp_done_equal - ldr data2, [src2], #4 -6: - S2LO tmp2, data1, #8 - bic data2, data2, #MSB - b .Lstrcmp_tail -.Lstrcmp_done_equal: - mov result, #0 - .cfi_remember_state - ldmfd sp!, {r5} - .cfi_restore 5 - .cfi_adjust_cfa_offset -4 - epilogue push_ip=HAVE_PAC_LEAF - -.Lstrcmp_tail: - .cfi_restore_state - and r2, tmp2, #LSB - and result, data2, #LSB - cmp result, #1 - it cs - cmpcs result, r2 - itt eq - S2LOEQ tmp2, tmp2, #8 - S2LOEQ data2, data2, #8 - beq .Lstrcmp_tail - sub result, r2, result - ldmfd sp!, {r5} - .cfi_restore 5 - .cfi_adjust_cfa_offset -4 - epilogue push_ip=HAVE_PAC_LEAF - .cfi_endproc - .cantunwind - .fnend - .size strcmp, . - strcmp diff --git a/lib/machine/arm/strcmp.S b/lib/machine/arm/strcmp.S deleted file mode 100644 index ae308cf..0000000 --- a/lib/machine/arm/strcmp.S +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* Wrapper for the various implementations of strcmp. */ - -#include "arm-acle-compat.h" - -#ifdef __ARM_BIG_ENDIAN -#define S2LO lsl -#define S2LOEQ lsleq -#define S2HI lsr -#define MSB 0x000000ff -#define LSB 0xff000000 -#define BYTE0_OFFSET 24 -#define BYTE1_OFFSET 16 -#define BYTE2_OFFSET 8 -#define BYTE3_OFFSET 0 -#else /* not __ARM_BIG_ENDIAN */ -#define S2LO lsr -#define S2LOEQ lsreq -#define S2HI lsl -#define BYTE0_OFFSET 0 -#define BYTE1_OFFSET 8 -#define BYTE2_OFFSET 16 -#define BYTE3_OFFSET 24 -#define MSB 0xff000000 -#define LSB 0x000000ff -#endif /* not __ARM_BIG_ENDIAN */ - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) \ - || (__ARM_ARCH_ISA_THUMB == 1 && !__ARM_ARCH_ISA_ARM) - -# if defined (__thumb__) && !defined (__thumb2__) -/* Thumb1 only variant. If size is preferred, use strcmp-armv4t.S. - If speed is preferred, the strcmp function in strcmp-armv6m.S - will be used. */ - -# if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) -# include "strcmp-armv4t.S" -# else -# include "strcmp-armv6m.S" -# endif - -# else -# include "strcmp-arm-tiny.S" -# endif - -#elif __ARM_ARCH_ISA_THUMB == 2 - -# ifdef __ARM_FEATURE_SIMD32 -# include "strcmp-armv7.S" -# else -# include "strcmp-armv7m.S" -# endif - -#elif __ARM_ARCH >= 6 - -# include "strcmp-armv6.S" - -#else - -# include "strcmp-armv4.S" - -#endif diff --git a/lib/machine/arm/strcpy.c b/lib/machine/arm/strcpy.c deleted file mode 100644 index 111528e..0000000 --- a/lib/machine/arm/strcpy.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2008 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "arm_asm.h" -#include <_ansi.h> -#include - -#ifdef __thumb2__ -#define magic1(REG) "#0x01010101" -#define magic2(REG) "#0x80808080" -#else -#define magic1(REG) #REG -#define magic2(REG) #REG ", lsl #7" -#endif - -char* __attribute__((naked)) -strcpy (char* dst, const char* src) -{ - asm ( - ".syntax unified\n\t" -#if !(defined(__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) || \ - (defined (__thumb__) && !defined (__thumb2__))) -#ifdef _ISA_ARM_7 - "pld [r1]\n\t" -#endif - "eor r2, r0, r1\n\t" - "mov ip, r0\n\t" - "tst r2, #3\n\t" - "bne 4f\n\t" - "tst r1, #3\n\t" - "bne 3f\n" - "5:\n\t" -#ifndef __thumb2__ - "str r5, [sp, #-4]!\n\t" - "mov r5, #0x01\n\t" - "orr r5, r5, r5, lsl #8\n\t" - "orr r5, r5, r5, lsl #16\n\t" -#endif - - "str r4, [sp, #-4]!\n\t" - "tst r1, #4\n\t" - "ldr r3, [r1], #4\n\t" - "beq 2f\n\t" - "sub r2, r3, "magic1(r5)"\n\t" - "bics r2, r2, r3\n\t" - "tst r2, "magic2(r5)"\n\t" - "itt eq\n\t" - "streq r3, [ip], #4\n\t" - "ldreq r3, [r1], #4\n" - "bne 1f\n\t" - /* Inner loop. We now know that r1 is 64-bit aligned, so we - can safely fetch up to two words. This allows us to avoid - load stalls. */ - ".p2align 2\n" - "2:\n\t" -#ifdef _ISA_ARM_7 - "pld [r1, #8]\n\t" -#endif - "ldr r4, [r1], #4\n\t" - "sub r2, r3, "magic1(r5)"\n\t" - "bics r2, r2, r3\n\t" - "tst r2, "magic2(r5)"\n\t" - "sub r2, r4, "magic1(r5)"\n\t" - "bne 1f\n\t" - "str r3, [ip], #4\n\t" - "bics r2, r2, r4\n\t" - "tst r2, "magic2(r5)"\n\t" - "itt eq\n\t" - "ldreq r3, [r1], #4\n\t" - "streq r4, [ip], #4\n\t" - "beq 2b\n\t" - "mov r3, r4\n" - "1:\n\t" -#ifdef __ARMEB__ - "rors r3, r3, #24\n\t" -#endif - "strb r3, [ip], #1\n\t" - "tst r3, #0xff\n\t" -#ifdef __ARMEL__ - "ror r3, r3, #8\n\t" -#endif - "bne 1b\n\t" - "ldr r4, [sp], #4\n\t" -#ifndef __thumb2__ - "ldr r5, [sp], #4\n\t" -#endif - "bx lr\n" - - /* Strings have the same offset from word alignment, but it's - not zero. */ - "3:\n\t" - "tst r1, #1\n\t" - "beq 1f\n\t" - "ldrb r2, [r1], #1\n\t" - "strb r2, [ip], #1\n\t" - "cmp r2, #0\n\t" - "it eq\n" - "bxeq lr\n" - "1:\n\t" - "tst r1, #2\n\t" - "beq 5b\n\t" - "ldrh r2, [r1], #2\n\t" -#ifdef __ARMEB__ - "tst r2, #0xff00\n\t" - "iteet ne\n\t" - "strhne r2, [ip], #2\n\t" - "lsreq r2, r2, #8\n\t" - "strbeq r2, [ip]\n\t" - "tstne r2, #0xff\n\t" -#else - "tst r2, #0xff\n\t" - "itet ne\n\t" - "strhne r2, [ip], #2\n\t" - "strbeq r2, [ip]\n\t" - "tstne r2, #0xff00\n\t" -#endif - "bne 5b\n\t" - "bx lr\n" - - /* src and dst do not have a common word-alignement. Fall back to - byte copying. */ - "4:\n\t" - "ldrb r2, [r1], #1\n\t" - "strb r2, [ip], #1\n\t" - "cmp r2, #0\n\t" - "bne 4b\n\t" - "bx lr\n\t" - -#elif !defined (__thumb__) || defined (__thumb2__) - "mov r3, r0\n\t" - "1:\n\t" - "ldrb r2, [r1], #1\n\t" - "strb r2, [r3], #1\n\t" - "cmp r2, #0\n\t" - "bne 1b\n\t" - "bx lr\n\t" -#else - "movs r3, r0\n\t" - "1:\n\t" - "ldrb r2, [r1]\n\t" - "adds r1, #1\n\t" - "strb r2, [r3]\n\t" - "adds r3, #1\n\t" - "cmp r2, #0\n\t" - "bne 1b\n\t" - "bx lr\n\t" -#endif - ); -} diff --git a/lib/machine/arm/strlen-armv7.S b/lib/machine/arm/strlen-armv7.S deleted file mode 100644 index 6aa122c..0000000 --- a/lib/machine/arm/strlen-armv7.S +++ /dev/null @@ -1,191 +0,0 @@ -/* Copyright (c) 2010-2011,2013 Linaro Limited - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - * Neither the name of Linaro Limited nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Assumes: - ARMv6T2 or ARMv7E-M, AArch32 - */ - -/* Copyright (c) 2015 ARM Ltd. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#include "arm-acle-compat.h" -#include "arm_asm.h" - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - -#ifdef __ARMEB__ -#define S2LO lsl -#define S2HI lsr -#else -#define S2LO lsr -#define S2HI lsl -#endif - - /* This code requires Thumb. */ -#if __ARM_ARCH_PROFILE == 'M' -#if __ARM_ARCH >= 8 - /* keep config inherited from -march=. */ -#else - .arch armv7e-m -#endif /* if __ARM_ARCH >= 8 */ -#else - .arch armv6t2 -#endif - .eabi_attribute Tag_ARM_ISA_use, 0 - .thumb - .syntax unified - -/* Parameters and result. */ -#define srcin r0 -#define result r0 - -/* Internal variables. */ -#define src r1 -#define data1a r2 -#define data1b r3 -#define const_m1 r12 -#define const_0 r4 -#define tmp1 r4 /* Overlaps const_0 */ -#define tmp2 r5 - -def_fn strlen p2align=6 - .fnstart - .cfi_startproc - prologue 4 5 push_ip=HAVE_PAC_LEAF - pld [srcin, #0] - bic src, srcin, #7 - mvn const_m1, #0 - ands tmp1, srcin, #7 /* (8 - bytes) to alignment. */ - pld [src, #32] - bne.w .Lmisaligned8 - mov const_0, #0 - mov result, #-8 -.Lloop_aligned: - /* Bytes 0-7. */ - ldrd data1a, data1b, [src] - pld [src, #64] - add result, result, #8 -.Lstart_realigned: - uadd8 data1a, data1a, const_m1 /* Saturating GE<0:3> set. */ - sel data1a, const_0, const_m1 /* Select based on GE<0:3>. */ - uadd8 data1b, data1b, const_m1 - sel data1b, data1a, const_m1 /* Only used if d1a == 0. */ - cbnz data1b, .Lnull_found - - /* Bytes 8-15. */ - ldrd data1a, data1b, [src, #8] - uadd8 data1a, data1a, const_m1 /* Saturating GE<0:3> set. */ - add result, result, #8 - sel data1a, const_0, const_m1 /* Select based on GE<0:3>. */ - uadd8 data1b, data1b, const_m1 - sel data1b, data1a, const_m1 /* Only used if d1a == 0. */ - cbnz data1b, .Lnull_found - - /* Bytes 16-23. */ - ldrd data1a, data1b, [src, #16] - uadd8 data1a, data1a, const_m1 /* Saturating GE<0:3> set. */ - add result, result, #8 - sel data1a, const_0, const_m1 /* Select based on GE<0:3>. */ - uadd8 data1b, data1b, const_m1 - sel data1b, data1a, const_m1 /* Only used if d1a == 0. */ - cbnz data1b, .Lnull_found - - /* Bytes 24-31. */ - ldrd data1a, data1b, [src, #24] - add src, src, #32 - uadd8 data1a, data1a, const_m1 /* Saturating GE<0:3> set. */ - add result, result, #8 - sel data1a, const_0, const_m1 /* Select based on GE<0:3>. */ - uadd8 data1b, data1b, const_m1 - sel data1b, data1a, const_m1 /* Only used if d1a == 0. */ - cmp data1b, #0 - beq .Lloop_aligned - -.Lnull_found: - .cfi_remember_state - cmp data1a, #0 - itt eq - addeq result, result, #4 - moveq data1a, data1b -#ifndef __ARMEB__ - rev data1a, data1a -#endif - clz data1a, data1a - add result, result, data1a, lsr #3 /* Bits -> Bytes. */ - epilogue 4 5 push_ip=HAVE_PAC_LEAF - -.Lmisaligned8: - .cfi_restore_state - ldrd data1a, data1b, [src] - and tmp2, tmp1, #3 - rsb result, tmp1, #0 - lsl tmp2, tmp2, #3 /* Bytes -> bits. */ - tst tmp1, #4 - pld [src, #64] - S2HI tmp2, const_m1, tmp2 - orn data1a, data1a, tmp2 - itt ne - ornne data1b, data1b, tmp2 - movne data1a, const_m1 - mov const_0, #0 - b .Lstart_realigned - .cfi_endproc - .cantunwind - .fnend - .size strlen, . - strlen diff --git a/lib/machine/arm/strlen-stub.c b/lib/machine/arm/strlen-stub.c deleted file mode 100644 index fc2daf1..0000000 --- a/lib/machine/arm/strlen-stub.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2008-2015 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "arm_asm.h" -#include <_ansi.h> -#include -#include - -#if defined __OPTIMIZE_SIZE__ || defined PREFER_SIZE_OVER_SPEED -#if __ARM_ARCH_ISA_THUMB == 2 -/* Implemented in strlen.S. */ - -#elif defined (__ARM_ARCH_ISA_THUMB) -/* Implemented in strlen.S. */ - -#else -#include "../../string/strlen.c" - -#endif - -#else /* defined __OPTIMIZE_SIZE__ || defined PREFER_SIZE_OVER_SPEED */ -#if defined __thumb__ && ! defined __thumb2__ -#include "../../string/strlen.c" - -#elif __ARM_ARCH_ISA_THUMB >= 2 && defined __ARM_FEATURE_DSP - /* Implemented in strlen.S. */ - -#else -size_t __attribute__((naked)) -strlen (const char* str) -{ - asm ("len .req r0\n\t" - "data .req r3\n\t" - "addr .req r1\n\t" - -#ifdef _ISA_ARM_7 - "pld [r0]\n\t" -#endif - /* Word-align address */ - "bic addr, r0, #3\n\t" - /* Get adjustment for start ... */ - "ands len, r0, #3\n\t" - "neg len, len\n\t" - /* First word of data */ - "ldr data, [addr], #4\n\t" - /* Ensure bytes preceeding start ... */ - "add ip, len, #4\n\t" - "mov ip, ip, asl #3\n\t" - "mvn r2, #0\n\t" - /* ... are masked out */ -#ifdef __thumb__ - "itt ne\n\t" -# ifdef __ARMEB__ - "lslne r2, ip\n\t" -# else - "lsrne r2, ip\n\t" -# endif - "orrne data, data, r2\n\t" -#else - "it ne\n\t" -# ifdef __ARMEB__ - "orrne data, data, r2, lsl ip\n\t" -# else - "orrne data, data, r2, lsr ip\n\t" -# endif -#endif - /* Magic const 0x01010101 */ -#ifdef _ISA_ARM_7 - "movw ip, #0x101\n\t" -#else - "mov ip, #0x1\n\t" - "orr ip, ip, ip, lsl #8\n\t" -#endif - "orr ip, ip, ip, lsl #16\n" - - /* This is the main loop. We subtract one from each byte in - the word: the sign bit changes iff the byte was zero or - 0x80 -- we eliminate the latter case by anding the result - with the 1-s complement of the data. */ - "1:\n\t" - /* test (data - 0x01010101) */ - "sub r2, data, ip\n\t" - /* ... & ~data */ - "bic r2, r2, data\n\t" - /* ... & 0x80808080 == 0? */ - "ands r2, r2, ip, lsl #7\n\t" -#ifdef _ISA_ARM_7 - /* yes, get more data... */ - "itt eq\n\t" - "ldreq data, [addr], #4\n\t" - /* and 4 more bytes */ - "addeq len, len, #4\n\t" - /* Unroll the loop a bit. */ - "pld [addr, #8]\n\t" - /* test (data - 0x01010101) */ - "ittt eq\n\t" - "subeq r2, data, ip\n\t" - /* ... & ~data */ - "biceq r2, r2, data\n\t" - /* ... & 0x80808080 == 0? */ - "andeqs r2, r2, ip, lsl #7\n\t" -#endif - "itt eq\n\t" - /* yes, get more data... */ - "ldreq data, [addr], #4\n\t" - /* and 4 more bytes */ - "addeq len, len, #4\n\t" - "beq 1b\n\t" -#ifdef __ARMEB__ - "tst data, #0xff000000\n\t" - "itttt ne\n\t" - "addne len, len, #1\n\t" - "tstne data, #0xff0000\n\t" - "addne len, len, #1\n\t" - "tstne data, #0xff00\n\t" - "it ne\n\t" - "addne len, len, #1\n\t" -#else -# ifdef _ISA_ARM_5 - /* R2 is the residual sign bits from the above test. All we - need to do now is establish the position of the first zero - byte... */ - /* Little-endian is harder, we need the number of trailing - zeros / 8 */ -# ifdef _ISA_ARM_7 - "rbit r2, r2\n\t" - "clz r2, r2\n\t" -# else - "rsb r1, r2, #0\n\t" - "and r2, r2, r1\n\t" - "clz r2, r2\n\t" - "rsb r2, r2, #31\n\t" -# endif - "add len, len, r2, lsr #3\n\t" -# else /* No CLZ instruction */ - "tst data, #0xff\n\t" - "itttt ne\n\t" - "addne len, len, #1\n\t" - "tstne data, #0xff00\n\t" - "addne len, len, #1\n\t" - "tstne data, #0xff0000\n\t" - "it ne\n\t" - "addne len, len, #1\n\t" -# endif -#endif - "bx lr\n\t"); -} -#endif -#endif diff --git a/lib/machine/arm/strlen-thumb1-Os.S b/lib/machine/arm/strlen-thumb1-Os.S deleted file mode 100644 index 4b50430..0000000 --- a/lib/machine/arm/strlen-thumb1-Os.S +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright (c) 2015 ARM Ltd. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm - - .arch armv4t - .eabi_attribute Tag_also_compatible_with, "\006\013" /* ARMv6-M. */ - .eabi_attribute Tag_ARM_ISA_use, 0 - .thumb - .syntax unified - -def_fn strlen p2align=1 - movs r3, #0 -1: - ldrb r2, [r0, r3] - adds r3, r3, #1 - cmp r2, #0 - bne 1b - subs r0, r3, #1 - bx lr - .size strlen, . - strlen diff --git a/lib/machine/arm/strlen-thumb2-Os.S b/lib/machine/arm/strlen-thumb2-Os.S deleted file mode 100644 index 4adbc61..0000000 --- a/lib/machine/arm/strlen-thumb2-Os.S +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright (c) 2015 ARM Ltd. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#include "arm-acle-compat.h" -#include "arm_asm.h" - - .macro def_fn f p2align=0 - .text - .p2align \p2align - .global \f - .type \f, %function -\f: - .endm -#if __ARM_ARCH_PROFILE == 'M' && __ARM_ARCH >= 8 - /* keep config inherited from -march=. */ -#elif __ARM_ARCH_ISA_THUMB >= 2 && __ARM_ARCH >= 7 - .arch armv7 -#else - .arch armv6t2 -#endif - .eabi_attribute Tag_ARM_ISA_use, 0 - .thumb - .syntax unified - -def_fn strlen p2align=1 - .fnstart - .cfi_startproc - prologue - mov r3, r0 -1: ldrb.w r2, [r3], #1 - cmp r2, #0 - bne 1b - subs r0, r3, r0 - subs r0, #1 - epilogue - .cfi_endproc - .cantunwind - .fnend - .size strlen, . - strlen diff --git a/lib/machine/arm/strlen.S b/lib/machine/arm/strlen.S deleted file mode 100644 index d85a7ee..0000000 --- a/lib/machine/arm/strlen.S +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright (c) 2015 ARM Ltd. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Linaro nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#include "arm-acle-compat.h" - -#if defined __OPTIMIZE_SIZE__ || defined PREFER_SIZE_OVER_SPEED -#if __ARM_ARCH_ISA_THUMB == 2 -#include "strlen-thumb2-Os.S" - -#elif defined (__ARM_ARCH_ISA_THUMB) -#include "strlen-thumb1-Os.S" - -#else - /* Implemented in strlen-stub.c. */ - -#endif - -#else /* defined __OPTIMIZE_SIZE__ || defined PREFER_SIZE_OVER_SPEED */ -#if defined __thumb__ && ! defined __thumb2__ - /* Implemented in strlen-stub.c. */ - -#elif __ARM_ARCH_ISA_THUMB >= 2 && defined __ARM_FEATURE_DSP -#include "strlen-armv7.S" - -#else - /* Implemented in strlen-stub.c. */ -#endif -#endif diff --git a/lib/machine/arm/sys/fenv.h b/lib/machine/arm/sys/fenv.h deleted file mode 100644 index 70bd57b..0000000 --- a/lib/machine/arm/sys/fenv.h +++ /dev/null @@ -1,90 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2004-2005 David Schultz - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _SYS_FENV_H_ -#define _SYS_FENV_H_ 1 - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef int fenv_t; -typedef int fexcept_t; - -/* Exception flags */ -#define FE_INVALID 0x0001 -#define FE_DIVBYZERO 0x0002 -#define FE_OVERFLOW 0x0004 -#define FE_UNDERFLOW 0x0008 -#define FE_INEXACT 0x0010 -#ifndef __SOFTFP__ -#define FE_DENORMAL 0x0080 -#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | \ - FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW | FE_DENORMAL) -#else -#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | \ - FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW) -#endif - -/* Rounding modes */ -#define FE_TONEAREST 0x00000000 -#define FE_UPWARD 0x00400000 -#define FE_DOWNWARD 0x00800000 -#define FE_TOWARDZERO 0x00c00000 - -/* Default floating-point environment */ -extern const fenv_t *_fe_dfl_env; -#define FE_DFL_ENV (_fe_dfl_env) - -int feclearexcept(int); -int fegetexceptflag(fexcept_t *, int); -int fesetexceptflag(const fexcept_t *, int); -int feraiseexcept(int); -int fetestexcept(int); -int fegetround(void); -int fesetround(int); -int fegetenv(fenv_t *); -int feholdexcept(fenv_t *); -int fesetenv(const fenv_t *); -int feupdateenv(const fenv_t *); -#if __BSD_VISIBLE -int feenableexcept(int); -int fedisableexcept(int); -int fegetexcept(void); -#endif /* __BSD_VISIBLE */ - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_FENV_H_ */ diff --git a/lib/machine/bfin/Makefile.inc b/lib/machine/bfin/Makefile.inc deleted file mode 100644 index 646a813..0000000 --- a/lib/machine/bfin/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S %D%/longjmp.S diff --git a/lib/machine/bfin/longjmp.S b/lib/machine/bfin/longjmp.S deleted file mode 100644 index 1eda2ea..0000000 --- a/lib/machine/bfin/longjmp.S +++ /dev/null @@ -1,115 +0,0 @@ -/* - * longjmp for the Blackfin processor - * - * Copyright (C) 2006 Analog Devices, Inc. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#define _ASM -#define _SETJMP_H - - -.text; -.align 4; -.globl _longjmp; -.type _longjmp, STT_FUNC; -_longjmp: - P0 = R0; - R0 = [P0 + 0x00]; - [--SP] = R0; /* Put P0 on the stack */ - - P1 = [P0 + 0x04]; - P2 = [P0 + 0x08]; - P3 = [P0 + 0x0C]; - P4 = [P0 + 0x10]; - P5 = [P0 + 0x14]; - - FP = [P0 + 0x18]; - R0 = [SP++]; /* Grab P0 from old stack */ - SP = [P0 + 0x1C]; /* Update Stack Pointer */ - [--SP] = R0; /* Put P0 on new stack */ - [--SP] = R1; /* Put VAL arg on new stack */ - - R0 = [P0 + 0x20]; /* Data Registers */ - R1 = [P0 + 0x24]; - R2 = [P0 + 0x28]; - R3 = [P0 + 0x2C]; - R4 = [P0 + 0x30]; - R5 = [P0 + 0x34]; - R6 = [P0 + 0x38]; - R7 = [P0 + 0x3C]; - - R0 = [P0 + 0x40]; - ASTAT = R0; - - R0 = [P0 + 0x44]; /* Loop Counters */ - LC0 = R0; - R0 = [P0 + 0x48]; - LC1 = R0; - - R0 = [P0 + 0x4C]; /* Accumulators */ - A0.W = R0; - R0 = [P0 + 0x50]; - A0.X = R0; - R0 = [P0 + 0x54]; - A1.W = R0; - R0 = [P0 + 0x58]; - A1.X = R0; - - R0 = [P0 + 0x5C]; /* Index Registers */ - I0 = R0; - R0 = [P0 + 0x60]; - I1 = R0; - R0 = [P0 + 0x64]; - I2 = R0; - R0 = [P0 + 0x68]; - I3 = R0; - - R0 = [P0 + 0x6C]; /* Modifier Registers */ - M0 = R0; - R0 = [P0 + 0x70]; - M1 = R0; - R0 = [P0 + 0x74]; - M2 = R0; - R0 = [P0 + 0x78]; - M3 = R0; - - R0 = [P0 + 0x7C]; /* Length Registers */ - L0 = R0; - R0 = [P0 + 0x80]; - L1 = R0; - R0 = [P0 + 0x84]; - L2 = R0; - R0 = [P0 + 0x88]; - L3 = R0; - - R0 = [P0 + 0x8C]; /* Base Registers */ - B0 = R0; - R0 = [P0 + 0x90]; - B1 = R0; - R0 = [P0 + 0x94]; - B2 = R0; - R0 = [P0 + 0x98]; - B3 = R0; - - R0 = [P0 + 0x9C]; /* Return Address (PC) */ - RETS = R0; - - R0 = [SP++]; - P0 = [SP++]; - - CC = R0 == 0; - IF !CC JUMP 1f; - R0 = 1; -1: - RTS; -.size _longjmp, .-_longjmp; diff --git a/lib/machine/bfin/setjmp.S b/lib/machine/bfin/setjmp.S deleted file mode 100644 index d964dad..0000000 --- a/lib/machine/bfin/setjmp.S +++ /dev/null @@ -1,108 +0,0 @@ -/* - * setjmp for the Blackfin processor - * - * Copyright (C) 2006 Analog Devices, Inc. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - - -#define _ASM -#define _SETJMP_H - -.text; -.align 4; -.globl _setjmp; -.type _setjmp, STT_FUNC; - -_setjmp: - [--SP] = P0; /* Save P0 */ - P0 = R0; - R0 = [SP++]; - [P0 + 0x00] = R0; /* Save saved P0 */ - [P0 + 0x04] = P1; - [P0 + 0x08] = P2; - [P0 + 0x0C] = P3; - [P0 + 0x10] = P4; - [P0 + 0x14] = P5; - - [P0 + 0x18] = FP; /* Frame Pointer */ - [P0 + 0x1C] = SP; /* Stack Pointer */ - - [P0 + 0x20] = P0; /* Data Registers */ - [P0 + 0x24] = R1; - [P0 + 0x28] = R2; - [P0 + 0x2C] = R3; - [P0 + 0x30] = R4; - [P0 + 0x34] = R5; - [P0 + 0x38] = R6; - [P0 + 0x3C] = R7; - - R0 = ASTAT; - [P0 + 0x40] = R0; - - R0 = LC0; /* Loop Counters */ - [P0 + 0x44] = R0; - R0 = LC1; - [P0 + 0x48] = R0; - - R0 = A0.W; /* Accumulators */ - [P0 + 0x4C] = R0; - R0 = A0.X; - [P0 + 0x50] = R0; - R0 = A1.W; - [P0 + 0x54] = R0; - R0 = A1.X; - [P0 + 0x58] = R0; - - R0 = I0; /* Index Registers */ - [P0 + 0x5C] = R0; - R0 = I1; - [P0 + 0x60] = R0; - R0 = I2; - [P0 + 0x64] = R0; - R0 = I3; - [P0 + 0x68] = R0; - - R0 = M0; /* Modifier Registers */ - [P0 + 0x6C] = R0; - R0 = M1; - [P0 + 0x70] = R0; - R0 = M2; - [P0 + 0x74] = R0; - R0 = M3; - [P0 + 0x78] = R0; - - R0 = L0; /* Length Registers */ - [P0 + 0x7c] = R0; - R0 = L1; - [P0 + 0x80] = R0; - R0 = L2; - [P0 + 0x84] = R0; - R0 = L3; - [P0 + 0x88] = R0; - - R0 = B0; /* Base Registers */ - [P0 + 0x8C] = R0; - R0 = B1; - [P0 + 0x90] = R0; - R0 = B2; - [P0 + 0x94] = R0; - R0 = B3; - [P0 + 0x98] = R0; - - R0 = RETS; - [P0 + 0x9C] = R0; - - R0 = 0; - - RTS; -.size _setjmp, .-_setjmp; diff --git a/lib/machine/cr16/Makefile.inc b/lib/machine/cr16/Makefile.inc deleted file mode 100644 index 8075d20..0000000 --- a/lib/machine/cr16/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S %D%/getenv.c diff --git a/lib/machine/cr16/getenv.c b/lib/machine/cr16/getenv.c deleted file mode 100644 index 75ef1cc..0000000 --- a/lib/machine/cr16/getenv.c +++ /dev/null @@ -1,24 +0,0 @@ -/* getenv.c -- Implementation of the getenv() routine - * - * Copyright (c) 2004 National Semiconductor Corporation - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -/* getenv() is implemented as a low-level function, - thus we only invoke here the system call. */ -char * getenv (const char *name) -{ - char *_getenv(const char *); - - return (_getenv (name)); -} - diff --git a/lib/machine/cr16/setjmp.S b/lib/machine/cr16/setjmp.S deleted file mode 100644 index d31643a..0000000 --- a/lib/machine/cr16/setjmp.S +++ /dev/null @@ -1,97 +0,0 @@ - ############################################################################## - # setjmp.S -- CR16 setjmp routine # - # # - # Copyright (c) 2004 National Semiconductor Corporation # - # # - # The authors hereby grant permission to use, copy, modify, distribute, # - # and license this software and its documentation for any purpose, provided # - # that existing copyright notices are retained in all copies and that this # - # notice is included verbatim in any distributions. No written agreement, # - # license, or royalty fee is required for any of the authorized uses. # - # Modifications to this software may be copyrighted by their authors # - # and need not follow the licensing terms described here, provided that # - # the new terms are clearly indicated on the first page of each file where # - # they apply. # - # # - # C library -- setjmp, longjmp # - # longjmp(a,v) # - # will generate a "return(v)" # - # from the last call to # - # setjmp(a) # - # by restoring r7-ra, sp, # - # and pc from 'a' # - # and doing a return. (Makes sure that longjmp never returns 0). # - ############################################################################## - - .text - .file "setjmp.s" - .align 4 - - .globl _setjmp - .align 4 -_setjmp: - #r3, r2: .blkw - storw r7, 0(r3,r2) - addd $2, (r3,r2) - storw r8, 0(r3,r2) - addd $2, (r3,r2) - storw r9, 0(r3,r2) - addd $2, (r3,r2) - storw r10, 0(r3,r2) - addd $2, (r3,r2) - storw r11, 0(r3,r2) - addd $2, (r3,r2) - - stord (r12), 0(r3,r2) - addd $4, (r3,r2) - stord (r13), 0(r3,r2) - addd $4, (r3,r2) - - stord (ra), 0(r3,r2) - addd $4, (r3,r2) - stord (sp), 0(r3,r2) - - movd $0,(r1,r0) - jump (ra) - - .globl _longjmp -_longjmp: - #r3, r2: .blkw # pointer save area - #r5, r4: .blkw # ret vlaue - - loadw 0(r3,r2), r7 - addd $2, (r3,r2) - loadw 0(r3,r2), r8 - addd $2, (r3,r2) - loadw 0(r3,r2), r9 - addd $2, (r3,r2) - loadw 0(r3,r2), r10 - addd $2, (r3,r2) - loadw 0(r3,r2), r11 - addd $2, (r3,r2) - - loadd 0(r3,r2), (r12) - addd $4, (r3,r2) - loadd 0(r3,r2), (r13) - addd $4, (r3,r2) - - loadd 0(r3,r2), (ra) - addd $4, (r3,r2) - loadd 0(r3,r2), (sp) - -#ifdef __INT32__ - movd (r5,r4), (r1,r0) - cmpd $0, (r5,r4) - bne end1 - movd $1, (r1,r0) -#else - movw r4, r0 - cmpw $0, r4 - bne end1 - movw $1, r0 -#endif -end1: - jump (ra) - .align 4 - - diff --git a/lib/machine/cr16/sys/asm.h b/lib/machine/cr16/sys/asm.h deleted file mode 100644 index cfc53e6..0000000 --- a/lib/machine/cr16/sys/asm.h +++ /dev/null @@ -1,280 +0,0 @@ -/* asm.h -- CR16 architecture intrinsic functions - * - * Copyright (c) 2012 National Semiconductor Corporation - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#ifndef _ASM -#define _ASM - -/* Note that immediate input values are not checked for validity. It is - the user's responsibility to use the intrinsic functions with appropriate - immediate values. */ - -/* Addition Instructions */ -#define _addb_(src, dest) __asm__("addb %1, %0" : "=r" (dest) : \ - "ri" ((unsigned char)src), "0" (dest) : "cc") -#define _addub_(src, dest) __asm__("addub %1, %0" : "=r" (dest) : \ - "ri" ((unsigned char)src), "0" (dest) : "cc") -#define _addw_(src, dest) __asm__("addw %1, %0" : "=r" (dest) : \ - "ri" ((unsigned short)src), "0" (dest) : "cc") -#define _adduw_(src, dest) __asm__("adduw %1, %0" : "=r" (dest) : \ - "ri" ((unsigned short)src), "0" (dest) : "cc") -#define _addd_(src, dest) __asm__("addd %1, %0" : "=r" (dest) : \ - "ri" ((unsigned long)src), "0" (dest) : "cc") - -/* Add with Carry */ -#define _addcb_(src, dest) __asm__("addcb %1, %0" : "=r" (dest) : \ - "ri" ((unsigned char)src), "0" (dest) : "cc") -#define _addcw_(src, dest) __asm__("addcw %1, %0" : "=r" (dest) : \ - "ri" ((unsigned short)src), "0" (dest) : "cc") - -/* Bitwise Logical AND */ -#define _andb_(src, dest) __asm__("andb %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _andw_(src, dest) __asm__("andw %1,%0" : "=r" (dest) : \ - "ri" ((unsigned short)src) , "0" (dest)) -#define _andd_(src, dest) __asm__("andd %1,%0" : "=r" (dest) : \ - "ri" ((unsigned long)src) , "0" (dest)) - -/* Arithmetic shift Instructions */ -#define _ashub_(count, dest) __asm__("ashub %1,%0" : "=r" (dest) : \ - "ri" ((char)count) , "0" (dest) ) -#define _ashuw_(count, dest) __asm__("ashuw %1,%0" : "=r" (dest) : \ - "ri" ((char)count) , "0" (dest) ) -#define _ashud_(count, dest) __asm__("ashud %1,%0" : "=r" (dest) : \ - "ri" ((char)count) , "0" (dest) ) - -/* cbit (clear bit) Instructions */ -#define _cbitb_(pos, dest) __asm__("cbitb %1,%0" : "=mr" (dest) : \ - "i" ((unsigned char)pos) , "0" (dest) : "cc") -#define _cbitw_(pos, dest) __asm__("cbitw %1,%0" : "=mr" (dest) : \ - "i" ((unsigned char)pos) , "0" (dest) : "cc") - -/* Compare Instructions */ -#define _cmpb_(src1, src2) __asm__("cmpb %0,%1" : /* no output */ : \ - "ri" ((unsigned char)src1) , "r" (src2) : "cc") -#define _cmpw_(src1, src2) __asm__("cmpw %0,%1" : /* no output */ : \ - "ri" ((unsigned short)src1) , "r" (src2) : "cc") -#define _cmpd_(src1, src2) __asm__("cmpd %0,%1" : /* no output */ : \ - "ri" ((unsigned long)src1) , "r" (src2) : "cc") - -/* Disable Inerrupts instructions */ -#define _di_() __asm__ volatile ("di\n" : : : "cc") -#define _disable_() __asm__ volatile ("di\n" : : : "cc") -#define _disable_interrupt_() _di_ - -/* Enable Inerrupts instructions */ -#define _ei_() __asm__ volatile ("ei\n" : : : "cc") -#define _enable_() __asm__ volatile ("ei\n" : : : "cc") -#define _enable_interrupt_() _ei_ - -/* Enable Inerrupts instructions and Wait */ -#define _eiwait_() __asm__ volatile ("eiwait" : : : "cc") - -/* excp Instructions */ -#define _excp_(vector) __asm__ volatile ("excp " # vector) - -/* lpr and lprd Instructions */ -#define _lpr_(procreg, src) __asm__("lpr\t%0," procreg : \ - /* no output */ : "r" (src) : "cc") -#define _lprd_(procregd, src) __asm__("lprd\t%0," procregd : \ - /* no output */ : "r" (src) : "cc") -/* Left Shift Instructions */ -#define _lshb_(count, dest) __asm__("lshb %1,%0" : "=r" (dest) : \ - "ri" ((char)count) , "0" (dest) ) -#define _lshw_(count, dest) __asm__("lshw %1,%0" : "=r" (dest) : \ - "ri" ((char)count) , "0" (dest) ) -#define _lshd_(count, dest) __asm__("lshd %1,%0" : "=r" (dest) : \ - "ri" ((char)count) , "0" (dest) ) - -/* Load Instructions */ -#define _loadb_(base, dest) __asm__("loadb %1,%0" : "=r" (dest) : \ - "m" (base) , "0" (dest)) -#define _loadw_(base, dest) __asm__("loadw %1,%0" : "=r" (dest) : \ - "m" (base) , "0" (dest)) -#define _loadd_(base, dest) __asm__("loadd %1,%0" : "=r" (dest) : \ - "m" (base) , "0" (dest)) - -/* Load Multiple Instructions */ -#define _loadm_(src, mask) __asm__("loadm %0,%1" : /* No output */ : \ - "r" ((unsigned int)src) , "i" (mask)) -#define _loadmp_(src, mask) __asm__("loadmp %0,%1" : /* No output */ : \ - "r" ((unsigned int)src) , "i" (mask)) - -/* Multiply Accumulate Instrutions */ -#define _macsw_(hi, lo, src1, src2) __asm__("macsw %1,%0" \ - : =l (lo), =h (hi) \ - : "r" ((short)src1) , "r" (src2)) -#define _macuw_(hi, lo, src1, src2) __asm__("macuw %1,%0" \ - : =l (lo), =h (hi) \ - : "r" ((unsigned short)src1) , "r" (src2)) -#define _macqw_(src1, src2) __asm__("macqw %1,%0" \ - : =l (lo), =h (hi) \ - :"r" ((short)src1) , "r" (src2)) - -/* Move Instructions */ -#define _movb_(src, dest) __asm__("movb %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _movw_(src, dest) __asm__("movw %1,%0" : "=r" (dest) : \ - "ri" ((unsigned short)src) , "0" (dest)) -#define _movd_(src, dest) __asm__("movd %1,%0" : "=r" (dest) : \ - "ri" ((unsigned int)src) , "0" (dest)) -#define _movxb_(src, dest) __asm__("movxb %1,%0" : "=r" (dest) : \ - "r" (src), "0" (dest) ) -#define _movzb_(src, dest) __asm__("movzb %1,%0" : "=r" (dest) : \ - "r" (src), "0" (dest) ) -#define _movxw_(src, dest) __asm__("movxw %1,%0" : "=r" (dest) : \ - "r" (src), "0" (dest) ) -#define _movzw_(src, dest) __asm__("movzw %1,%0" : "=r" (dest) : \ - "r" (src), "0" (dest) ) - -/* Multiplication Instructions */ -#define _mulb_(src, dest) __asm__("mulb %1,%0" : "=r" (dest) : \ - "ri" ((char)src) , "0" (dest)) -#define _mulw_(src, dest) __asm__("mulw %1,%0" : "=r" (dest) : \ - "ri" ((short)src) , "0" (dest)) -#define _mulsb_(src, dest) __asm__("mulsb %1,%0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest)) -#define _mulsw_(src, dest) __asm__("mulsw %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest)) -#define _muluw_(src, dest) __asm__("muluw %1,%0" : "=r" (dest) : \ - "r" ((unsigned short)src) , "0" (dest)) - -/* nop Instruction */ -#define _nop_() __asm__("nop") - -/* or Instructions */ -#define _orb_(src, dest) __asm__("orb %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _orw_(src, dest) __asm__("orw %1,%0" : "=r" (dest) : \ - "ri" ((unsigned short)src) , "0" (dest)) -#define _ord_(src, dest) __asm__("ord %1,%0" : "=r" (dest) : \ - "ri" ((unsigned int)src) , "0" (dest)) - -/* retx Instruction */ -#define _retx_() __asm__("retx") - -/* Set Bit Instructions */ -#define _sbitb_(pos, dest) __asm__("sbitb %1,%0" : "=mr" (dest) : \ - "i" ((unsigned char)pos) , "0" (dest) : "cc") -#define _sbitw_(pos, dest) __asm__("sbitw %1,%0" : "=mr" (dest) : \ - "i" ((unsigned char)pos) , "0" (dest) : "cc") - -/* spr and sprd Instructions */ -#define _spr_(procreg, dest) __asm__("spr\t" procreg ",%0" : \ - "=r" (dest) : /* no input */ "0" (dest) : "cc") -#define _sprd_(procregd, dest) __asm__("sprd\t" procregd ",%0" : \ - "=r" (dest) : /* no input */ "0" (dest) : "cc") - -/* Store Instructions */ -#define _storb_(src, address) __asm__("storb %1,%0" : "=m" (address) : \ - "ri" ((unsigned int)src)) -#define _storw_(src, address) __asm__("storw %1,%0" : "=m" (address) : \ - "ri" ((unsigned int)src)) -#define _stord_(src, address) __asm__("stord %1,%0" : "=m" (address) : \ - "ri" ((unsigned int)src)) - -/* Store Multiple Instructions */ -#define _storm_(mask, src) __asm__("storm %1,%0" : /* No output here */ : \ - "i" (mask) , "r" ((unsigned int)src)) -#define _stormp_(mask, src) __asm__("stormp %1,%0" : /* No output here */ : \ - "i" (mask) , "r" ((unsigned int)src)) - -/* Substruct Instructions */ -#define _subb_(src, dest) __asm__("subb %1, %0" : "=r" (dest) : \ - "ri" ((unsigned char)src), "0" (dest) : "cc") -#define _subw_(src, dest) __asm__("subw %1, %0" : "=r" (dest) : \ - "ri" ((unsigned short)src), "0" (dest) : "cc") -#define _subd_(src, dest) __asm__("subd %1, %0" : "=r" (dest) : \ - "ri" ((unsigned long)src), "0" (dest) : "cc") - -/* Substruct with Carry Instructions */ -#define _subcb_(src, dest) __asm__("subcb %1, %0" : "=r" (dest) : \ - "ri" ((unsigned char)src), "0" (dest) : "cc") -#define _subcw_(src, dest) __asm__("subcw %1, %0" : "=r" (dest) : \ - "ri" ((unsigned short)src), "0" (dest) : "cc") - -/* Test Bit Instructions */ -#define _tbit_(offset, base) __asm__("tbit %0,%1" : /* no output */ : \ - "ri" ((unsigned char)offset) , "r" (base) : "cc") -#define _tbitb_(pos, dest) __asm__("tbitb %0,%1" : /* No output */ : \ - "i" ((unsigned char)pos) , "m" (dest) : "cc") -#define _tbitw_(pos, dest) __asm__("tbitw %0,%1" : /* No output */ : \ - "i" ((unsigned char)pos) , "m" (dest) : "cc") - -/* wait Instruction*/ -#define _wait_() __asm__ volatile ("wait" : : : "cc") - -/* xor Instructions */ -#define _xorb_(src, dest) __asm__("xorb %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _xorw_(src, dest) __asm__("xorw %1,%0" : "=r" (dest) : \ - "ri" ((unsigned short)src) , "0" (dest)) -#define _xord_(src, dest) __asm__("xord %1,%0" : "=r" (dest) : \ - "ri" ((unsigned long)src) , "0" (dest)) - -#if !defined (__CR16C__) -#define _di_() __asm__ volatile ("di\n" : : : "cc") -#else -/* In CR16C architecture the "nop" instruction is required after the di instruction - in order to be sure the interrupts are indeed disabled. - For details, refer the the CR16C Programmers Reference Manual. */ -#define _di_() __asm__ volatile ("di\n\tnop" : : : "cc") -#endif - -/* mtgpr Instruction */ -#define _mtgpr_(src, gpr) \ -__asm__ volatile ("movd\t%[_src], " gpr : /* no output */ \ - : [_src] "ri" (src) \ - : gpr ) - -/* mfgpr Instruction */ -#define _mfgpr_(gpr, dest) \ -__asm__ volatile ("movd\t" gpr ", %[_dest]" : [_dest] "=r" (dest) \ - : /* no inputs */ ) - -/* set_i_bit Operation Definition */ -#define set_i_bit() \ - do \ - { \ - unsigned short tpsr; \ - _spr_("psr", tpsr); \ - tpsr |= 0x0800; \ - _lpr_("psr",tpsr); \ - } while(0) - -/* set_i_bit Macro Definition */ -#define _enable_global_interrupt_ set_i_bit - -/* clear_i_bit Operation Definition */ -#define clear_i_bit() \ - do \ - { \ - unsigned short tpsr; \ - _spr_("psr", tpsr); \ - tpsr &= 0xf7ff; \ - _lpr_("psr",tpsr); \ - } while(0) - -/* clear_i_bit Macro Definition */ -#define _disbale_global_interrupt_ clear_i_bit - -#define _save_asm_(x) \ - __asm__ volatile (x ::: "memory","cc", \ - "r0","r1","r2","r3","r4","r5","r6","r7", \ - "r8","r9","r10","r11","r12","r13") - -#endif /* _ASM */ - - - diff --git a/lib/machine/cr16/sys/libh.h b/lib/machine/cr16/sys/libh.h deleted file mode 100644 index 75f7c79..0000000 --- a/lib/machine/cr16/sys/libh.h +++ /dev/null @@ -1,51 +0,0 @@ -/* libh.h -- CR16 default handlers - * - * Copyright (c) 2004 National Semiconductor Corporation - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#ifndef _LIBH -#define _LIBH - -/* These are the first 16 entries of the default dispatch table as defined - in the CompactRISC architecture: - - Entry Function - ----- -------- - 0 NULL - 1 nmi - 2 NULL - 3 NULL - 4 NULL - 5 svc - 6 dvz - 7 flg - 8 bpt - 9 trc - 10 und - 11 NULL - 12 iad - 13 NULL - 14 dbg - 15 ise -*/ - -extern void (* const _dispatch_table[])(void); - -/* Function prototypes */ -void svc_handler(void); -void dvz_handler(void); -void flg_handler(void); -void und_handler(void); -void iad_handler(void); - -#endif /* _LIBH */ diff --git a/lib/machine/cr16/sys/syscall.h b/lib/machine/cr16/sys/syscall.h deleted file mode 100644 index b34d404..0000000 --- a/lib/machine/cr16/sys/syscall.h +++ /dev/null @@ -1,60 +0,0 @@ -/* syscall.h -- CR16 virtual I/O and trap service codes - * - * Copyright (c) 2004 National Semiconductor Corporation - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#ifndef _SYSCALL_H -#define _SYSCALL_H - -#include - -/* SVC codes to pass to the debugger */ - -/* Virtual I/O services */ -#define SVC_OPEN 0x401 -#define SVC_CLOSE 0x402 -#define SVC_READ 0x403 -#define SVC_WRITE 0x404 -#define SVC_LSEEK 0x405 -#define SVC_RENAME 0x406 -#define SVC_UNLINK 0x407 -#define SVC_GETENV 0x408 - -/* Time service */ -#define SVC_TIME 0x300 - -/* Start/end of program services */ -#define SVC_EOP 0x410 - -/* Trap services */ -#define SVC_SVC 0x505 -#define SVC_DVZ 0x506 -#define SVC_FLG 0x507 -#define SVC_UND 0x50a -#define SVC_IAD 0x50c - - -/* Places the code of the requested service in R0, then transfers control - to the debugger using the BPT exception. - It is called from the start routine, VIO functions and the trap - handlers. */ - -#define STRINGIFY(x) #x -#define HOST_SERVICE(service) \ - do { \ - __asm__("movd\t$" STRINGIFY(service) ",(r1,r0)"); \ - _excp_(svc); \ - } while (0) - -#endif /* _SYSCALL_H */ - diff --git a/lib/machine/cris/Makefile.inc b/lib/machine/cris/Makefile.inc deleted file mode 100644 index f1864e3..0000000 --- a/lib/machine/cris/Makefile.inc +++ /dev/null @@ -1,13 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.c %D%/memcpy.c %D%/memset.c %D%/memmove.c %D%/libcdtor.c - -# We also make a library with just the useful -# machine-but-not-system-specific functions, usable as an add-on -# by itself together with e.g. uclibc. -toollib_LIBRARIES += %D%/libic.a -%C%_libic_a_SOURCES = -%C%_libic_a_LIBADD = \ - %D%/libc_a-setjmp.o \ - %D%/libc_a-memcpy.o \ - %D%/libc_a-memset.o \ - %D%/libc_a-memmove.o \ - %D%/libc_a-libcdtor.o diff --git a/lib/machine/cris/include/pthread.h b/lib/machine/cris/include/pthread.h deleted file mode 100644 index d872d04..0000000 --- a/lib/machine/cris/include/pthread.h +++ /dev/null @@ -1,93 +0,0 @@ -/* pthread.h dummy. - Copyright (C) 2001, 2004, 2005 Axis Communications AB. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Neither the name of Axis Communications nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY AXIS COMMUNICATIONS AND ITS CONTRIBUTORS - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AXIS - COMMUNICATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. */ - -/* Simple fallback-include to enable thread-enabled exception support - for libgcc, but with posix-interface to a default-dummy, so a posix - library can optionally be linked in, which isn't possible if - gthr-single.h is used. No other use is supported; *DO NOT* think - this gives you a valid pthread interface to use in your applications. */ - -#ifndef _PTHREAD_FAKE -#define _PTHREAD_FAKE - -#ifdef __cplusplus -extern "C" { -# ifndef __THROW -# define __THROW throw () -# endif -#else -# ifndef __THROW -# define __THROW -# endif -#endif - -typedef int pthread_once_t; -typedef unsigned int pthread_key_t; - -/* This must be layout-compatible with the linuxthreads type. */ -typedef struct -{ - int a, b; - void *c; - int d; - struct { long int e; int f; } g; -} pthread_mutex_t; - -/* This give bits equal to the linuxthreads initializer. */ -#define PTHREAD_MUTEX_INITIALIZER \ - {0, 0, 0, 0, {0, 0}} - -#define PTHREAD_ONCE_INIT 0 - -/* This isn't the right prototype, but it let's us get away with not - defining a lot of datatypes. */ -extern int pthread_create (void) __THROW; - -extern int pthread_once (pthread_once_t *, void (*) (void)) __THROW; - -extern int pthread_key_create (pthread_key_t *, void (*) (void *)) __THROW; - -extern int pthread_setspecific (pthread_key_t, const void *) __THROW; - -extern void *pthread_getspecific (pthread_key_t) __THROW; - -extern int pthread_mutex_lock (pthread_mutex_t *) __THROW; - -extern int pthread_key_delete (pthread_key_t) __THROW; - -extern int pthread_mutex_trylock (pthread_mutex_t *) __THROW; - -extern int pthread_mutex_unlock (pthread_mutex_t *) __THROW; - -#ifdef __cplusplus -} -#endif - -#undef __THROW - -#endif /* not _PTHREAD_FAKE */ diff --git a/lib/machine/cris/libcdtor.c b/lib/machine/cris/libcdtor.c deleted file mode 100644 index 3273477..0000000 --- a/lib/machine/cris/libcdtor.c +++ /dev/null @@ -1,91 +0,0 @@ -/* Call ctors and dtors from elinux a.out shared libraries. - Copyright (C) 1999, 2000, 2003, 2004, 2005 Axis Communications. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Neither the name of Axis Communications nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY AXIS COMMUNICATIONS AND ITS CONTRIBUTORS - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AXIS - COMMUNICATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. */ - -typedef void (*vfnp) (void); - -/* The guts of the _Libctors and _Libdtors is "optimized" away into - empty functions when the definition is visible as well. Simplest - solution is to emit the definitions as asm. We have no .previous - directive in a.out, so we rely on the fact that everything in this - file goes into the .text section. */ -__asm__ -( - ".text\n\t.global .$global.lib.ctors\n.$global.lib.ctors:\n\t.dword 0" -); -__asm__ -( - ".text\n\t.global .$global.lib.dtors\n.$global.lib.dtors:\n\t.dword 0" -); - -extern vfnp * const _Ctors asm(".$global.lib.ctors"); -extern vfnp * const _Dtors asm(".$global.lib.dtors"); - -/* We better provide weak empty ctor and dtor lists, since they are - not created if the main program does not have ctor/dtors. Because - it's otherwise not used, GCC trunk "Mon Jul 25 22:33:14 UTC 2005" - thinks it can remove defaultors, so we need to artificially mark it - as used. FIXME: Perhaps a GCC bug. */ - -static vfnp const defaultors[] __attribute__ ((__used__)) = {0, 0}; - -extern vfnp * __CTOR_LIST__ __attribute__ ((weak, alias ("defaultors"))); -extern vfnp * __DTOR_LIST__ __attribute__ ((weak, alias ("defaultors"))); - -void -_Libctors (void) -{ - const vfnp *firstor = _Ctors; - const vfnp *ctors; - - /* Have to find the last ctor; they will run in opposite order as in - the table. */ - if (firstor != 0 && *firstor != 0) - { - for (ctors = firstor; *ctors != 0; ctors++) - ; - - while (--ctors != firstor) - { - (**ctors)(); - } - - (**ctors)(); - } -} - -void -_Libdtors(void) -{ - const vfnp *dtors = _Dtors; - - if (dtors) - while (*dtors != 0) - { - (**dtors++) (); - } -} diff --git a/lib/machine/cris/memcpy.c b/lib/machine/cris/memcpy.c deleted file mode 100644 index c314ede..0000000 --- a/lib/machine/cris/memcpy.c +++ /dev/null @@ -1,238 +0,0 @@ -/* A memcpy for CRIS. - Copyright (C) 1994-2005 Axis Communications. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Neither the name of Axis Communications nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY AXIS COMMUNICATIONS AND ITS CONTRIBUTORS - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AXIS - COMMUNICATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. */ - -/* FIXME: This file should really only be used for reference, as the - result is somewhat depending on gcc generating what we expect rather - than what we describe. An assembly file should be used instead. */ - -#include -#include "../../string/local.h" - -/* Break even between movem and move16 is really at 38.7 * 2, but - modulo 44, so up to the next multiple of 44, we use ordinary code. */ -#define MEMCPY_BY_BLOCK_THRESHOLD (44 * 2) - -/* No name ambiguities in this file. */ -__asm__ (".syntax no_register_prefix"); - -void * -__inhibit_loop_to_libcall -memcpy(void *__restrict pdst, const void *__restrict psrc, size_t pn) -{ - /* Now we want the parameters put in special registers. - Make sure the compiler is able to make something useful of this. - As it is now: r10 -> r13; r11 -> r11 (nop); r12 -> r12 (nop). - - If gcc was allright, it really would need no temporaries, and no - stack space to save stuff on. */ - - register void *return_dst __asm__ ("r10") = pdst; - register unsigned char *dst __asm__ ("r13") = pdst; - register unsigned const char *src __asm__ ("r11") = psrc; - register int n __asm__ ("r12") = pn; - - /* When src is aligned but not dst, this makes a few extra needless - cycles. I believe it would take as many to check that the - re-alignment was unnecessary. */ - if (((unsigned long) dst & 3) != 0 - /* Don't align if we wouldn't copy more than a few bytes; so we - don't have to check further for overflows. */ - && n >= 3) - { - if ((unsigned long) dst & 1) - { - n--; - *dst = *src; - src++; - dst++; - } - - if ((unsigned long) dst & 2) - { - n -= 2; - *(short *) dst = *(short *) src; - src += 2; - dst += 2; - } - } - - /* Decide which copying method to use. */ - if (n >= MEMCPY_BY_BLOCK_THRESHOLD) - { - /* It is not optimal to tell the compiler about clobbering any - registers; that will move the saving/restoring of those registers - to the function prologue/epilogue, and make non-movem sizes - suboptimal. */ - __asm__ volatile - ("\ - ;; GCC does promise correct register allocations, but let's \n\ - ;; make sure it keeps its promises. \n\ - .ifnc %0-%1-%2,$r13-$r11-$r12 \n\ - .error \"GCC reg alloc bug: %0-%1-%4 != $r13-$r12-$r11\" \n\ - .endif \n\ - \n\ - ;; Save the registers we'll use in the movem process \n\ - ;; on the stack. \n\ - subq 11*4,sp \n\ - movem r10,[sp] \n\ - \n\ - ;; Now we've got this: \n\ - ;; r11 - src \n\ - ;; r13 - dst \n\ - ;; r12 - n \n\ - \n\ - ;; Update n for the first loop. \n\ - subq 44,r12 \n\ -0: \n\ -" -#ifdef __arch_common_v10_v32 - /* Cater to branch offset difference between v32 and v10. We - assume the branch below has an 8-bit offset. */ -" setf\n" -#endif -" movem [r11+],r10 \n\ - subq 44,r12 \n\ - bge 0b \n\ - movem r10,[r13+] \n\ - \n\ - ;; Compensate for last loop underflowing n. \n\ - addq 44,r12 \n\ - \n\ - ;; Restore registers from stack. \n\ - movem [sp+],r10" - - /* Outputs. */ - : "=r" (dst), "=r" (src), "=r" (n) - - /* Inputs. */ - : "0" (dst), "1" (src), "2" (n)); - } - - while (n >= 16) - { - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - - n -= 16; - } - - switch (n) - { - case 0: - break; - - case 1: - *dst = *src; - break; - - case 2: - *(short *) dst = *(short *) src; - break; - - case 3: - *(short *) dst = *(short *) src; dst += 2; src += 2; - *dst = *src; - break; - - case 4: - *(long *) dst = *(long *) src; - break; - - case 5: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *dst = *src; - break; - - case 6: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(short *) dst = *(short *) src; - break; - - case 7: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(short *) dst = *(short *) src; dst += 2; src += 2; - *dst = *src; - break; - - case 8: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; - break; - - case 9: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *dst = *src; - break; - - case 10: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(short *) dst = *(short *) src; - break; - - case 11: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(short *) dst = *(short *) src; dst += 2; src += 2; - *dst = *src; - break; - - case 12: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; - break; - - case 13: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *dst = *src; - break; - - case 14: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(short *) dst = *(short *) src; - break; - - case 15: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(short *) dst = *(short *) src; dst += 2; src += 2; - *dst = *src; - break; - } - - return return_dst; -} diff --git a/lib/machine/cris/memmove.c b/lib/machine/cris/memmove.c deleted file mode 100644 index b022eaa..0000000 --- a/lib/machine/cris/memmove.c +++ /dev/null @@ -1,257 +0,0 @@ -/* A memmove for CRIS. - Copyright (C) 2000-2005 Axis Communications. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Neither the name of Axis Communications nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY AXIS COMMUNICATIONS AND ITS CONTRIBUTORS - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AXIS - COMMUNICATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. */ - -/* FIXME: This file should really only be used for reference, as the - result is somewhat depending on gcc generating what we expect rather - than what we describe. An assembly file should be used instead. - - Even worse, we base it on memcpy, on the assumption that overlapping - moves are rare, and we will do no worse than the generic memmove. */ - -#include - -/* Break even between movem and move16 is really at 38.7 * 2, but - modulo 44, so up to the next multiple of 44, we use ordinary code. */ -#define MEMMOVE_BY_BLOCK_THRESHOLD (44 * 2) - -/* No name ambiguities in this file. */ -__asm__ (".syntax no_register_prefix"); - -void * -memmove(void *pdst, const void *psrc, size_t pn) -{ - /* Now we want the parameters put in special registers. - Make sure the compiler is able to make something useful of this. - As it is now: r10 -> r13; r11 -> r11 (nop); r12 -> r12 (nop). - - If gcc was allright, it really would need no temporaries, and no - stack space to save stuff on. */ - - register void *return_dst __asm__ ("r10") = pdst; - register unsigned char *dst __asm__ ("r13") = pdst; - register unsigned const char *src __asm__ ("r11") = psrc; - register int n __asm__ ("r12") = pn; - - /* Check and handle overlap. */ - if (src < dst && dst < src + n) - { - /* Destructive overlap. We could optimize this, but we don't (for - the moment). */ - src += n; - dst += n; - while (n--) - { - *--dst = *--src; - } - - return return_dst; - } - /* Whew, no overlap. Proceed as with memcpy. We could call it instead - of having a copy here. That would spoil some of the optimization, so - we take the trouble with having two copies. */ - - /* When src is aligned but not dst, this makes a few extra needless - cycles. I believe it would take as many to check that the - re-alignment was unnecessary. */ - if (((unsigned long) dst & 3) != 0 - /* Don't align if we wouldn't copy more than a few bytes; so we - don't have to check further for overflows. */ - && n >= 3) - { - if ((unsigned long) dst & 1) - { - n--; - *dst = *src; - src++; - dst++; - } - - if ((unsigned long) dst & 2) - { - n -= 2; - *(short *) dst = *(short *) src; - src += 2; - dst += 2; - } - } - - /* Decide which copying method to use. */ - if (n >= MEMMOVE_BY_BLOCK_THRESHOLD) - { - /* It is not optimal to tell the compiler about clobbering any - registers; that will move the saving/restoring of those registers - to the function prologue/epilogue, and make non-movem sizes - suboptimal. */ - __asm__ volatile - ("\ - ;; GCC does promise correct register allocations, but let's \n\ - ;; make sure it keeps its promises. \n\ - .ifnc %0-%1-%2,$r13-$r11-$r12 \n\ - .error \"GCC reg alloc bug: %0-%1-%4 != $r13-$r12-$r11\" \n\ - .endif \n\ - \n\ - ;; Save the registers we'll use in the movem process \n\ - ;; on the stack. \n\ - subq 11*4,sp \n\ - movem r10,[sp] \n\ - \n\ - ;; Now we've got this: \n\ - ;; r11 - src \n\ - ;; r13 - dst \n\ - ;; r12 - n \n\ - \n\ - ;; Update n for the first loop. \n\ - subq 44,r12 \n\ -0: \n\ -" -#ifdef __arch_common_v10_v32 - /* Cater to branch offset difference between v32 and v10. We - assume the branch below has an 8-bit offset. */ -" setf\n" -#endif -" movem [r11+],r10 \n\ - subq 44,r12 \n\ - bge 0b \n\ - movem r10,[r13+] \n\ - \n\ - ;; Compensate for last loop underflowing n. \n\ - addq 44,r12 \n\ - \n\ - ;; Restore registers from stack. \n\ - movem [sp+],r10" - - /* Outputs. */ - : "=r" (dst), "=r" (src), "=r" (n) - - /* Inputs. */ - : "0" (dst), "1" (src), "2" (n)); - } - - while (n >= 16) - { - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - - n -= 16; - } - - switch (n) - { - case 0: - break; - - case 1: - *dst = *src; - break; - - case 2: - *(short *) dst = *(short *) src; - break; - - case 3: - *(short *) dst = *(short *) src; dst += 2; src += 2; - *dst = *src; - break; - - case 4: - *(long *) dst = *(long *) src; - break; - - case 5: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *dst = *src; - break; - - case 6: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(short *) dst = *(short *) src; - break; - - case 7: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(short *) dst = *(short *) src; dst += 2; src += 2; - *dst = *src; - break; - - case 8: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; - break; - - case 9: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *dst = *src; - break; - - case 10: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(short *) dst = *(short *) src; - break; - - case 11: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(short *) dst = *(short *) src; dst += 2; src += 2; - *dst = *src; - break; - - case 12: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; - break; - - case 13: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *dst = *src; - break; - - case 14: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(short *) dst = *(short *) src; - break; - - case 15: - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(long *) dst = *(long *) src; dst += 4; src += 4; - *(short *) dst = *(short *) src; dst += 2; src += 2; - *dst = *src; - break; - } - - return return_dst; -} diff --git a/lib/machine/cris/memset.c b/lib/machine/cris/memset.c deleted file mode 100644 index c94ea9b..0000000 --- a/lib/machine/cris/memset.c +++ /dev/null @@ -1,259 +0,0 @@ -/* A memset for CRIS. - Copyright (C) 1999-2005 Axis Communications. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Neither the name of Axis Communications nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY AXIS COMMUNICATIONS AND ITS CONTRIBUTORS - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AXIS - COMMUNICATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. */ - -/* FIXME: This file should really only be used for reference, as the - result is somewhat depending on gcc generating what we expect rather - than what we describe. An assembly file should be used instead. */ - -/* Note the multiple occurrence of the expression "12*4", including the - asm. It is hard to get it into the asm in a good way. Thus better to - expose the problem everywhere: no macro. */ - -/* Assuming one cycle per dword written or read (ok, not really true; the - world is not ideal), and one cycle per instruction, then 43+3*(n/48-1) - <= 24+24*(n/48-1) so n >= 45.7; n >= 0.9; we win on the first full - 48-byte block to set. */ - -#define MEMSET_BY_BLOCK_THRESHOLD (1 * 48) - -/* No name ambiguities in this file. */ -__asm__ (".syntax no_register_prefix"); - -void *memset(void *pdst, int c, unsigned int plen) -{ - /* Now we want the parameters in special registers. Make sure the - compiler does something usable with this. */ - - register char *return_dst __asm__ ("r10") = pdst; - register int n __asm__ ("r12") = plen; - register int lc __asm__ ("r11") = c; - - /* Most apps use memset sanely. Memsetting about 3..4 bytes or less get - penalized here compared to the generic implementation. */ - - /* This is fragile performancewise at best. Check with newer GCC - releases, if they compile cascaded "x |= x << 8" to sane code. */ - __asm__("movu.b %0,r13 \n\ - lslq 8,r13 \n\ - move.b %0,r13 \n\ - move.d r13,%0 \n\ - lslq 16,r13 \n\ - or.d r13,%0" - : "=r" (lc) /* Inputs. */ - : "0" (lc) /* Outputs. */ - : "r13"); /* Trash. */ - - { - register char *dst __asm__ ("r13") = pdst; - - if (((unsigned long) pdst & 3) != 0 - /* Oops! n = 0 must be a valid call, regardless of alignment. */ - && n >= 3) - { - if ((unsigned long) dst & 1) - { - *dst = (char) lc; - n--; - dst++; - } - - if ((unsigned long) dst & 2) - { - *(short *) dst = lc; - n -= 2; - dst += 2; - } - } - - /* Decide which setting method to use. */ - if (n >= MEMSET_BY_BLOCK_THRESHOLD) - { - /* It is not optimal to tell the compiler about clobbering any - registers; that will move the saving/restoring of those registers - to the function prologue/epilogue, and make non-block sizes - suboptimal. */ - __asm__ volatile - ("\ - ;; GCC does promise correct register allocations, but let's \n\ - ;; make sure it keeps its promises. \n\ - .ifnc %0-%1-%4,$r13-$r12-$r11 \n\ - .error \"GCC reg alloc bug: %0-%1-%4 != $r13-$r12-$r11\" \n\ - .endif \n\ - \n\ - ;; Save the registers we'll clobber in the movem process \n\ - ;; on the stack. Don't mention them to gcc, it will only be \n\ - ;; upset. \n\ - subq 11*4,sp \n\ - movem r10,[sp] \n\ - \n\ - move.d r11,r0 \n\ - move.d r11,r1 \n\ - move.d r11,r2 \n\ - move.d r11,r3 \n\ - move.d r11,r4 \n\ - move.d r11,r5 \n\ - move.d r11,r6 \n\ - move.d r11,r7 \n\ - move.d r11,r8 \n\ - move.d r11,r9 \n\ - move.d r11,r10 \n\ - \n\ - ;; Now we've got this: \n\ - ;; r13 - dst \n\ - ;; r12 - n \n\ - \n\ - ;; Update n for the first loop \n\ - subq 12*4,r12 \n\ -0: \n\ -" -#ifdef __arch_common_v10_v32 - /* Cater to branch offset difference between v32 and v10. We - assume the branch below has an 8-bit offset. */ -" setf\n" -#endif -" subq 12*4,r12 \n\ - bge 0b \n\ - movem r11,[r13+] \n\ - \n\ - ;; Compensate for last loop underflowing n. \n\ - addq 12*4,r12 \n\ - \n\ - ;; Restore registers from stack. \n\ - movem [sp+],r10" - - /* Outputs. */ - : "=r" (dst), "=r" (n) - - /* Inputs. */ - : "0" (dst), "1" (n), "r" (lc)); - } - - /* An ad-hoc unroll, used for 4*12-1..16 bytes. */ - while (n >= 16) - { - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; dst += 4; - n -= 16; - } - - switch (n) - { - case 0: - break; - - case 1: - *dst = (char) lc; - break; - - case 2: - *(short *) dst = (short) lc; - break; - - case 3: - *(short *) dst = (short) lc; dst += 2; - *dst = (char) lc; - break; - - case 4: - *(long *) dst = lc; - break; - - case 5: - *(long *) dst = lc; dst += 4; - *dst = (char) lc; - break; - - case 6: - *(long *) dst = lc; dst += 4; - *(short *) dst = (short) lc; - break; - - case 7: - *(long *) dst = lc; dst += 4; - *(short *) dst = (short) lc; dst += 2; - *dst = (char) lc; - break; - - case 8: - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; - break; - - case 9: - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; dst += 4; - *dst = (char) lc; - break; - - case 10: - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; dst += 4; - *(short *) dst = (short) lc; - break; - - case 11: - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; dst += 4; - *(short *) dst = (short) lc; dst += 2; - *dst = (char) lc; - break; - - case 12: - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; - break; - - case 13: - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; dst += 4; - *dst = (char) lc; - break; - - case 14: - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; dst += 4; - *(short *) dst = (short) lc; - break; - - case 15: - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; dst += 4; - *(long *) dst = lc; dst += 4; - *(short *) dst = (short) lc; dst += 2; - *dst = (char) lc; - break; - } - } - - return return_dst; -} diff --git a/lib/machine/cris/setjmp.c b/lib/machine/cris/setjmp.c deleted file mode 100644 index ca54494..0000000 --- a/lib/machine/cris/setjmp.c +++ /dev/null @@ -1,212 +0,0 @@ -/* A setjmp.c for CRIS - Copyright (C) 1993-2005 Axis Communications. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Neither the name of Axis Communications nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY AXIS COMMUNICATIONS AND ITS CONTRIBUTORS - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AXIS - COMMUNICATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. */ - -/* For benefit of CRIS v0..v3, we save and restore CCR to be able to - correctly handle DI/EI; otherwise there would be no reason to save it. - Note also that the "move x,ccr" does NOT affect - the DMA enable bits (E and D) of v0..v3. - - We do not save mof; it is call-clobbered. It also does not exist in - v0..v8; it should be safe to read or write to it there, but better not. - - jmp_buf[0] - PC - jmp_buf[1] - SP (R14) - jmp_buf[2] - R13 - jmp_buf[3] - R12 - jmp_buf[4] - R11 - jmp_buf[5] - R10 - jmp_buf[6] - R9 - jmp_buf[7] - R8 - jmp_buf[8] - R7 - jmp_buf[9] - R6 - jmp_buf[10] - R5 - jmp_buf[11] - R4 - jmp_buf[12] - R3 - jmp_buf[13] - R2 - jmp_buf[14] - R1 - jmp_buf[15] - R0 - jmp_buf[16] - SRP - jmp_buf[17] - CCR - */ - -#include - -int -setjmp (jmp_buf buf) -{ - int ret; -#if defined (__arch_common_v10_v32) || defined (__arch_v32) - /* No offsets in the compatibility mode. Also, movem saves in - different order on v10 than on v32, so we use single move - instructions instead, this not being a speed-prioritized operation. - And we don't save CCR or CCS; since long unuseful. */ - __asm__ __volatile__ - ("move.d %1,$r13 \n\ - move 0f,$mof \n\ - move $mof,[$r13+] \n\ - move.d $sp,[$r13+] \n\ - clear.d [$r13+] \n\ - move.d $r12,[$r13+] \n\ - move.d $r11,[$r13+] \n\ - move.d $r10,[$r13+] \n\ - moveq 1,$r9 \n\ - move.d $r9,[$r13+] \n\ - move.d $r8,[$r13+] \n\ - move.d $r7,[$r13+] \n\ - move.d $r6,[$r13+] \n\ - move.d $r5,[$r13+] \n\ - move.d $r4,[$r13+] \n\ - move.d $r3,[$r13+] \n\ - move.d $r2,[$r13+] \n\ - move.d $r1,[$r13+] \n\ - move.d $r0,[$r13+] \n\ - move $srp,[$r13+] \n\ - clear.d [$r13+] \n\ - clear.d $r9 \n\ -0: \n\ - move.d $r9,%0" - - /* Output. */ - : "=&r" (ret) - - /* Input. */ - : "r" (buf) - - /* Clobber. */ - : "r9", "r13", "memory"); -#else /* not __arch_common_v10_v32 or __arch_v32 */ -#ifdef __PIC__ - __asm__ __volatile__ - ("moveq 1,$r9 \n\ - movem $sp,[%1+1*4] \n\ - move.d $pc,$r9 \n\ - addq 0f-.,$r9 \n\ - move.d $r9,[%1] \n\ - move $srp,[%1+16*4] \n\ - move $ccr,[%1+17*4] \n\ - clear.d $r9 \n\ -0: \n\ - move.d $r9,%0" - - /* Output. */ - : "=&r" (ret) - - /* Input. */ - : "r" (buf) - - /* Clobber. */ - : "r9", "memory"); -#else /* not PIC */ - __asm__ __volatile__ - ("moveq 1,$r9 \n\ - movem $sp,[%1+1*4] \n\ - move.d 0f,$r9 \n\ - move.d $r9,[%1] \n\ - move $srp,[%1+16*4] \n\ - move $ccr,[%1+17*4] \n\ - clear.d $r9 \n\ -0: \n\ - move.d $r9,%0" - - /* Output. */ - : "=&r" (ret) - - /* Input. */ - : "r" (buf) - - /* Clobber. */ - : "r9"); -#endif /* not PIC */ -#endif /* not __arch_common_v10_v32 or __arch_v32 */ - return ret; -} - -void -longjmp(jmp_buf buf, int val) -{ -#if defined (__arch_common_v10_v32) || defined (__arch_v32) - __asm__ __volatile__ - ("cmpq 0,%1 \n\ - beq 0f \n\ - move.d %0,$r13 ; In delay-slot. \n\ - addq 6*4,$r13 \n\ - move.d %1,[$r13] \n\ - subq 6*4,$r13 \n\ -0:\n" -#ifdef __arch_common_v10_v32 - /* Cater to branch offset difference between v32 and v10. We - assume the branch above is 8-bit. */ -" setf\n" -#endif -" move [$r13+],$mof \n\ - move.d [$r13+],$sp \n\ - addq 4,$r13 \n\ - move.d [$r13+],$r12 \n\ - move.d [$r13+],$r11 \n\ - move.d [$r13+],$r10 \n\ - move.d [$r13+],$r9 \n\ - move.d [$r13+],$r8 \n\ - move.d [$r13+],$r7 \n\ - move.d [$r13+],$r6 \n\ - move.d [$r13+],$r5 \n\ - move.d [$r13+],$r4 \n\ - move.d [$r13+],$r3 \n\ - move.d [$r13+],$r2 \n\ - move.d [$r13+],$r1 \n\ - move.d [$r13+],$r0 \n\ - move [$r13+],$srp \n\ - move $mof,$r13 \n\ - jump $r13 \n\ - setf" - - /* No outputs. */ - : - - /* Inputs. */ - : "r" (buf), "r" (val) - : "r13", "memory"); - -#else /* not __arch_common_v10_v32 or __arch_v32 */ - __asm__ __volatile__ - ("move [%0+17*4],$ccr \n\ - move [%0+16*4],$srp \n\ - test.d %1 \n\ - beq 0f \n\ - nop \n\ - move.d %1,[%0+6*4] ; Offset for r9. \n\ -0: \n\ - movem [%0],$pc" - - /* No outputs. */ - : - - /* Inputs. */ - : "r" (buf), "r" (val) - : "memory"); -#endif /* not __arch_common_v10_v32 or __arch_v32 */ -} diff --git a/lib/machine/cris/sys/errno.h b/lib/machine/cris/sys/errno.h deleted file mode 100644 index c8113ed..0000000 --- a/lib/machine/cris/sys/errno.h +++ /dev/null @@ -1,177 +0,0 @@ -/* This file is to be kept in sync with newlib/libc/include/sys/errno.h - on which it is based, except values used or returned by syscalls must - be those of the Linux/CRIS kernel. */ - -/* errno is not a global variable, because that would make using it - non-reentrant. Instead, its address is returned by the function - __errno. */ - -#ifndef _SYS_ERRNO_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS_ERRNO_H_ - -#include - -#ifndef _REENT_ONLY -#define errno (*__errno()) -extern int *__errno (void); -#endif - -/* Please don't use these variables directly. - Use strerror instead. */ -extern const char * const _sys_errlist[]; -extern int _sys_nerr; - -#define __errno_r(ptr) _REENT_ERRNO(ptr) - -/* Adjusted to the linux asm/errno.h */ -#define EPERM 1 /* Operation not permitted */ -#define ENOENT 2 /* No such file or directory */ -#define ESRCH 3 /* No such process */ -#define EINTR 4 /* Interrupted system call */ -#define EIO 5 /* I/O error */ -#define ENXIO 6 /* No such device or address */ -#define E2BIG 7 /* Arg list too long */ -#define ENOEXEC 8 /* Exec format error */ -#define EBADF 9 /* Bad file number */ -#define ECHILD 10 /* No child processes */ -#define EAGAIN 11 /* Try again */ -#define ENOMEM 12 /* Out of memory */ -#define EACCES 13 /* Permission denied */ -#define EFAULT 14 /* Bad address */ -#define ENOTBLK 15 /* Block device required */ -#define EBUSY 16 /* Device or resource busy */ -#define EEXIST 17 /* File exists */ -#define EXDEV 18 /* Cross-device link */ -#define ENODEV 19 /* No such device */ -#define ENOTDIR 20 /* Not a directory */ -#define EISDIR 21 /* Is a directory */ -#define EINVAL 22 /* Invalid argument */ -#define ENFILE 23 /* File table overflow */ -#define EMFILE 24 /* Too many open files */ -#define ENOTTY 25 /* Not a typewriter */ -#define ETXTBSY 26 /* Text file busy */ -#define EFBIG 27 /* File too large */ -#define ENOSPC 28 /* No space left on device */ -#define ESPIPE 29 /* Illegal seek */ -#define EROFS 30 /* Read-only file system */ -#define EMLINK 31 /* Too many links */ -#define EPIPE 32 /* Broken pipe */ -#define EDOM 33 /* Math argument out of domain of func */ -#define ERANGE 34 /* Math result not representable */ -#define EDEADLK 35 /* Resource deadlock would occur */ -#define ENAMETOOLONG 36 /* File name too long */ -#define ENOLCK 37 /* No record locks available */ -#define ENOSYS 38 /* Function not implemented */ -#define ENOTEMPTY 39 /* Directory not empty */ -#define ELOOP 40 /* Too many symbolic links encountered */ -#define EWOULDBLOCK EAGAIN /* Operation would block */ -#define ENOMSG 42 /* No message of desired type */ -#define EIDRM 43 /* Identifier removed */ -#define ECHRNG 44 /* Channel number out of range */ -#define EL2NSYNC 45 /* Level 2 not synchronized */ -#define EL3HLT 46 /* Level 3 halted */ -#define EL3RST 47 /* Level 3 reset */ -#define ELNRNG 48 /* Link number out of range */ -#define EUNATCH 49 /* Protocol driver not attached */ -#define ENOCSI 50 /* No CSI structure available */ -#define EL2HLT 51 /* Level 2 halted */ -#define EBADE 52 /* Invalid exchange */ -#define EBADR 53 /* Invalid request descriptor */ -#define EXFULL 54 /* Exchange full */ -#define ENOANO 55 /* No anode */ -#define EBADRQC 56 /* Invalid request code */ -#define EBADSLT 57 /* Invalid slot */ - -#define EDEADLOCK EDEADLK - -#define EBFONT 59 /* Bad font file format */ -/* This is only used internally in newlib; not returned by the kernel. - EBFONT seems the closest match for a "bad file format" error. */ -#define EFTYPE EBFONT /* Inappropriate file type or format */ -#define ENOSTR 60 /* Device not a stream */ -#define ENODATA 61 /* No data available */ -#define ETIME 62 /* Timer expired */ -#define ENOSR 63 /* Out of streams resources */ -#define ENONET 64 /* Machine is not on the network */ -#define ENOPKG 65 /* Package not installed */ -#define EREMOTE 66 /* Object is remote */ -#define ENOLINK 67 /* Link has been severed */ -#define EADV 68 /* Advertise error */ -#define ESRMNT 69 /* Srmount error */ -#define ECOMM 70 /* Communication error on send */ -#define EPROTO 71 /* Protocol error */ -#define EMULTIHOP 72 /* Multihop attempted */ -#define EDOTDOT 73 /* RFS specific error */ -#define EBADMSG 74 /* Not a data message */ -#define EOVERFLOW 75 /* Value too large for defined data type */ -#define ENOTUNIQ 76 /* Name not unique on network */ -#define EBADFD 77 /* File descriptor in bad state */ -#define EREMCHG 78 /* Remote address changed */ -#define ELIBACC 79 /* Can not access a needed shared library */ -#define ELIBBAD 80 /* Accessing a corrupted shared library */ -#define ELIBSCN 81 /* .lib section in a.out corrupted */ -#define ELIBMAX 82 /* Attempting to link in too many shared libraries */ -#define ELIBEXEC 83 /* Cannot exec a shared library directly */ -#define EILSEQ 84 /* Illegal byte sequence */ -#define ERESTART 85 /* Interrupted system call should be restarted */ -#define ESTRPIPE 86 /* Streams pipe error */ -#define EUSERS 87 /* Too many users */ -#define ENOTSOCK 88 /* Socket operation on non-socket */ -#define EDESTADDRREQ 89 /* Destination address required */ -#define EMSGSIZE 90 /* Message too long */ -#define EPROTOTYPE 91 /* Protocol wrong type for socket */ -#define ENOPROTOOPT 92 /* Protocol not available */ -#define EPROTONOSUPPORT 93 /* Protocol not supported */ -#define ESOCKTNOSUPPORT 94 /* Socket type not supported */ -#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ -#define EPFNOSUPPORT 96 /* Protocol family not supported */ -#define EAFNOSUPPORT 97 /* Address family not supported by protocol */ -#define EADDRINUSE 98 /* Address already in use */ -#define EADDRNOTAVAIL 99 /* Cannot assign requested address */ -#define ENETDOWN 100 /* Network is down */ -#define ENETUNREACH 101 /* Network is unreachable */ -#define ENETRESET 102 /* Network dropped connection because of reset */ -#define ECONNABORTED 103 /* Software caused connection abort */ -#define ECONNRESET 104 /* Connection reset by peer */ -#define ENOBUFS 105 /* No buffer space available */ -#define EISCONN 106 /* Transport endpoint is already connected */ -#define ENOTCONN 107 /* Transport endpoint is not connected */ -#define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */ -#define ETOOMANYREFS 109 /* Too many references: cannot splice */ -#define ETIMEDOUT 110 /* Connection timed out */ -#define ECONNREFUSED 111 /* Connection refused */ -#define EHOSTDOWN 112 /* Host is down */ -#define EHOSTUNREACH 113 /* No route to host */ -#define EALREADY 114 /* Operation already in progress */ -#define EINPROGRESS 115 /* Operation now in progress */ -#define ESTALE 116 /* Stale NFS file handle */ -#define EUCLEAN 117 /* Structure needs cleaning */ -#define ENOTNAM 118 /* Not a XENIX named type file */ -#define ENAVAIL 119 /* No XENIX semaphores available */ -#define EISNAM 120 /* Is a named type file */ -#define EREMOTEIO 121 /* Remote I/O error */ -#define EDQUOT 122 /* Quota exceeded */ - -#define ENOMEDIUM 123 /* No medium found */ -#define EMEDIUMTYPE 124 /* Wrong medium type */ -#define ECANCELED 125 /* Operation Canceled */ -#define ENOKEY 126 /* Required key not available */ -#define EKEYEXPIRED 127 /* Key has expired */ -#define EKEYREVOKED 128 /* Key has been revoked */ -#define EKEYREJECTED 129 /* Key was rejected by service */ - -#define EOWNERDEAD 130 /* Owner died */ -#define ENOTRECOVERABLE 131 /* State not recoverable */ - -/* Widely known to be a synonym in Linux. */ -#define ENOTSUP EOPNOTSUPP - -#define __ELASTERROR 2000 /* Users can add values starting here */ - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_ERRNO_H */ diff --git a/lib/machine/cris/sys/fcntl.h b/lib/machine/cris/sys/fcntl.h deleted file mode 100644 index 5ba8015..0000000 --- a/lib/machine/cris/sys/fcntl.h +++ /dev/null @@ -1,163 +0,0 @@ -/* This file is to be kept in sync with newlib/libc/include/sys/fcntl.h, - on which it is based, except values used or returned by syscalls must - be those of the Linux/CRIS kernel. */ - -#ifndef _FCNTL_ -#ifdef __cplusplus -extern "C" { -#endif -#define _FCNTL_ -#include <_ansi.h> -#define _FOPEN (-1) /* from sys/file.h, kernel use only */ -#define _FREAD 0x0001 /* read enabled */ -#define _FWRITE 0x0002 /* write enabled */ -#define _FNDELAY 0x0800 /* non blocking I/O (4.2 style) */ -#define _FAPPEND 0x0400 /* append (writes guaranteed at the end) */ -#define _FMARK 0x0010 /* internal; mark during gc() */ -#define _FDEFER 0x0020 /* internal; defer for next gc pass */ -#define _FASYNC 0x2000 /* signal pgrp when data ready */ -#define _FCREAT 0x0040 /* open with file create */ -#define _FTRUNC 0x0200 /* open with truncation */ -#define _FEXCL 0x0080 /* error on open if file exists */ -#define _FNBIO _FNONBLOCK /* non blocking I/O (sys5 style) */ -#define _FSYNC 0x1000 /* do all writes synchronously */ -#define _FNONBLOCK 0x0800 /* non blocking I/O (POSIX style) */ -#define _FNOCTTY 0x0100 /* don't assign a ctty on this open */ - -#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) - -/* - * Flag values for open(2) and fcntl(2) - * The kernel adds 1 to the open modes to turn it into some - * combination of FREAD and FWRITE. - */ -#define O_RDONLY 0 /* +1 == FREAD */ -#define O_WRONLY 1 /* +1 == FWRITE */ -#define O_RDWR 2 /* +1 == FREAD|FWRITE */ -#define O_APPEND _FAPPEND -#define O_CREAT _FCREAT -#define O_TRUNC _FTRUNC -#define O_EXCL _FEXCL -/* O_SYNC _FSYNC not posix, defined below */ -/* O_NDELAY _FNDELAY set in include/fcntl.h */ -/* O_NDELAY _FNBIO set in 5include/fcntl.h */ -#define O_NONBLOCK _FNONBLOCK -#define O_NOCTTY _FNOCTTY - -#ifndef _POSIX_SOURCE - -#define O_SYNC _FSYNC - -/* - * Flags that work for fcntl(fd, F_SETFL, FXXXX) - */ -#define FAPPEND _FAPPEND -#define FSYNC _FSYNC -#define FASYNC _FASYNC -#define FNBIO _FNBIO -#define FNONBIO _FNONBLOCK /* XXX fix to be NONBLOCK everywhere */ -#define FNDELAY _FNDELAY - -/* - * Flags that are disallowed for fcntl's (FCNTLCANT); - * used for opens, internal state, or locking. - */ -#define FREAD _FREAD -#define FWRITE _FWRITE -#define FMARK _FMARK -#define FDEFER _FDEFER -#define FSHLOCK _FSHLOCK -#define FEXLOCK _FEXLOCK - -/* - * The rest of the flags, used only for opens - */ -#define FOPEN _FOPEN -#define FCREAT _FCREAT -#define FTRUNC _FTRUNC -#define FEXCL _FEXCL -#define FNOCTTY _FNOCTTY - -#endif /* !_POSIX_SOURCE */ - -/* XXX close on exec request; must match UF_EXCLOSE in user.h */ -#define FD_CLOEXEC 1 /* posix */ - -/* fcntl(2) requests */ -#define F_DUPFD 0 /* dup */ -#define F_GETFD 1 /* get f_flags */ -#define F_SETFD 2 /* set f_flags */ -#define F_GETFL 3 /* more flags (cloexec) */ -#define F_SETFL 4 -#define F_GETLK 5 -#define F_SETLK 6 -#define F_SETLKW 7 - -#define F_SETOWN 8 /* for sockets. */ -#define F_GETOWN 9 /* for sockets. */ - -/* for F_[GET|SET]FL */ -#define FD_CLOEXEC 1 /* actually anything with low bit set goes */ - -/* for posix fcntl() and lockf() */ -#define F_RDLCK 0 -#define F_WRLCK 1 -#define F_UNLCK 2 - -/* for old implementation of bsd flock () */ -#define F_EXLCK 4 /* or 3 */ -#define F_SHLCK 8 /* or 4 */ - -/* operations for bsd flock(), also used by the kernel implementation */ -#define LOCK_SH 1 /* shared lock */ -#define LOCK_EX 2 /* exclusive lock */ -#define LOCK_NB 4 /* or'd with one of the above to prevent - blocking */ -#define LOCK_UN 8 /* remove lock */ - -/* file segment locking set data type - information passed to system by user */ -struct flock { - short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ - short l_whence; /* flag to choose starting offset */ - long l_start; /* relative offset, in bytes */ - long l_len; /* length, in bytes; 0 means lock to EOF */ - short l_pid; /* returned with F_GETLK */ - short l_xxx; /* reserved for future use */ -}; - -#ifndef _POSIX_SOURCE -/* extended file segment locking set data type */ -struct eflock { - short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ - short l_whence; /* flag to choose starting offset */ - long l_start; /* relative offset, in bytes */ - long l_len; /* length, in bytes; 0 means lock to EOF */ - short l_pid; /* returned with F_GETLK */ - short l_xxx; /* reserved for future use */ - long l_rpid; /* Remote process id wanting this lock */ - long l_rsys; /* Remote system id wanting this lock */ -}; -#endif /* !_POSIX_SOURCE */ - - -#include -#include /* sigh. for the mode bits for open/creat */ - -extern int open (const char *, int, ...); -extern int creat (const char *, mode_t); -extern int fcntl (int, int, ...); - -/* Provide _ prototypes for functions provided by some versions - of newlib. */ -#ifdef _LIBC -extern int _open (const char *, int, ...); -extern int _fcntl (int, int, ...); -#ifdef __LARGE64_FILES -extern int _open64 (const char *, int, ...); -#endif -#endif - -#ifdef __cplusplus -} -#endif -#endif /* !_FCNTL_ */ diff --git a/lib/machine/cris/sys/signal.h b/lib/machine/cris/sys/signal.h deleted file mode 100644 index 9cb7ba5..0000000 --- a/lib/machine/cris/sys/signal.h +++ /dev/null @@ -1,93 +0,0 @@ -/* This file is to be kept in sync (well, reasonably so, it's quite - different) with newlib/libc/include/sys/signal.h on which it is - based, except values used or returned by syscalls must be those of - the Linux/CRIS kernel. */ - -/* sys/signal.h */ - -#ifndef _SYS_SIGNAL_H -#define _SYS_SIGNAL_H -#ifdef __cplusplus -extern "C" { -#endif - -#include "_ansi.h" - -typedef unsigned long sigset_t; - -/* Adjusted to linux, has unused sa_restorer field and unsigned long - sa_flags; relatively unimportant though. */ -/* Type of a signal handler. */ -typedef void (*__sighandler_t)(int); - -/* The type used in newlib sources. */ -typedef __sighandler_t _sig_func_ptr; - -struct sigaction { - __sighandler_t sa_handler; - sigset_t sa_mask; - unsigned long sa_flags; - void (*sa_restorer)(void); -}; - -/* Adjusted to glibc; other values. */ -#define SA_NOCLDSTOP 1 /* only value supported now for sa_flags */ -#define SIG_SETMASK 2 /* set mask with sigprocmask() */ -#define SIG_BLOCK 0 /* set of signals to block */ -#define SIG_UNBLOCK 1 /* set of signals to, well, unblock */ - -/* These depend upon the type of sigset_t, which right now - is always a long.. They're in the POSIX namespace, but - are not ANSI. */ -#define sigaddset(what,sig) (*(what) |= (1<<(sig))) -#define sigemptyset(what) (*(what) = 0) - -int sigprocmask (int __how, const sigset_t *__a, sigset_t *__b); - -/* The first argument is really a pid_t, but that's just a typedef'd - int, so let's avoid requiring sys/types only for this declaration. */ -int kill (int, int); - -#define SIGHUP 1 -#define SIGINT 2 -#define SIGQUIT 3 -#define SIGILL 4 -#define SIGTRAP 5 -#define SIGABRT 6 -#define SIGIOT 6 -#define SIGBUS 7 -#define SIGFPE 8 -#define SIGKILL 9 -#define SIGUSR1 10 -#define SIGSEGV 11 -#define SIGUSR2 12 -#define SIGPIPE 13 -#define SIGALRM 14 -#define SIGTERM 15 -#define SIGSTKFLT 16 -#define SIGCHLD 17 -#define SIGCONT 18 -#define SIGSTOP 19 -#define SIGTSTP 20 -#define SIGTTIN 21 -#define SIGTTOU 22 -#define SIGURG 23 -#define SIGXCPU 24 -#define SIGXFSZ 25 -#define SIGVTALRM 26 -#define SIGPROF 27 -#define SIGWINCH 28 -#define SIGIO 29 -#define SIGPOLL SIGIO -#define SIGPWR 30 -#define NSIG 31 - -#ifdef __cplusplus -} -#endif -#ifndef _SIGNAL_H_ -/* Some applications take advantage of the fact that - * and are equivalent in glibc. Allow for that here. */ -#include -#endif -#endif /* _SYS_SIGNAL_H */ diff --git a/lib/machine/crx/Makefile.inc b/lib/machine/crx/Makefile.inc deleted file mode 100644 index 8075d20..0000000 --- a/lib/machine/crx/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S %D%/getenv.c diff --git a/lib/machine/crx/getenv.c b/lib/machine/crx/getenv.c deleted file mode 100644 index 75ef1cc..0000000 --- a/lib/machine/crx/getenv.c +++ /dev/null @@ -1,24 +0,0 @@ -/* getenv.c -- Implementation of the getenv() routine - * - * Copyright (c) 2004 National Semiconductor Corporation - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -/* getenv() is implemented as a low-level function, - thus we only invoke here the system call. */ -char * getenv (const char *name) -{ - char *_getenv(const char *); - - return (_getenv (name)); -} - diff --git a/lib/machine/crx/setjmp.S b/lib/machine/crx/setjmp.S deleted file mode 100644 index 19b7d6c..0000000 --- a/lib/machine/crx/setjmp.S +++ /dev/null @@ -1,51 +0,0 @@ - ############################################################################## - # setjmp.S -- CRX setjmp routine # - # # - # Copyright (c) 2004 National Semiconductor Corporation # - # # - # The authors hereby grant permission to use, copy, modify, distribute, # - # and license this software and its documentation for any purpose, provided # - # that existing copyright notices are retained in all copies and that this # - # notice is included verbatim in any distributions. No written agreement, # - # license, or royalty fee is required for any of the authorized uses. # - # Modifications to this software may be copyrighted by their authors # - # and need not follow the licensing terms described here, provided that # - # the new terms are clearly indicated on the first page of each file where # - # they apply. # - # # - # C library -- setjmp, longjmp # - # longjmp(a,v) # - # will generate a "return(v)" # - # from the last call to # - # setjmp(a) # - # by restoring r7-ra, sp, # - # and pc from 'a' # - # and doing a return. (Makes sure that longjmp never returns 0). # - ############################################################################## - - .text - .file "setjmp.s" - .align 4 - - .globl _setjmp - .align 4 -_setjmp: - #r2: .blkw - storm r2,{r7,r8,r9,r10,r11,r12,r13,r14} - stord sp,0(r2) - movd $0,r0 - jump ra - - .globl _longjmp -_longjmp: - #r2: .blkw # pointer save area - #r3: .blkw # ret vlaue - loadm r2, {r7,r8,r9,r10,r11,r12,r13,ra} - loadd 0(r2), sp - movd r3, r0 - cmpd $0, r3 - bne end1 - movd $1, r0 -end1: - jump ra - .align 4 diff --git a/lib/machine/crx/sys/asm.h b/lib/machine/crx/sys/asm.h deleted file mode 100644 index a8226d1..0000000 --- a/lib/machine/crx/sys/asm.h +++ /dev/null @@ -1,421 +0,0 @@ -/* asm.h -- CRX architecture intrinsic functions - * - * Copyright (c) 2004 National Semiconductor Corporation - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#ifndef _ASM -#define _ASM - -/* Note that immediate input values are not checked for validity. It is - the user's responsibility to use the intrinsic functions with appropriate - immediate values. */ - -/* Absolute Instructions */ -#define _absb_(src, dest) __asm__("absb %1, %0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest)) -#define _absw_(src, dest) __asm__("absw %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest)) -#define _absd_(src, dest) __asm__("absd %1, %0" : "=r" (dest) : \ - "r" ((int)src) , "0" (dest)) - -/* Addition Instructions */ -#define _addb_(src, dest) __asm__("addb %1, %0" : "=r" (dest) : \ - "ri" ((unsigned char)src), "0" (dest) : "cc") -#define _addub_(src, dest) __asm__("addub %1, %0" : "=r" (dest) : \ - "ri" ((unsigned char)src), "0" (dest) : "cc") -#define _addw_(src, dest) __asm__("addw %1, %0" : "=r" (dest) : \ - "ri" ((unsigned short)src), "0" (dest) : "cc") -#define _adduw_(src, dest) __asm__("adduw %1, %0" : "=r" (dest) : \ - "ri" ((unsigned short)src), "0" (dest) : "cc") -#define _addd_(src, dest) __asm__("addd %1, %0" : "=r" (dest) : \ - "ri" ((unsigned int)src), "0" (dest) : "cc") -#define _addud_(src, dest) __asm__("addud %1, %0" : "=r" (dest) : \ - "ri" ((unsigned int)src), "0" (dest) : "cc") -/* Add with Carry */ -#define _addcb_(src, dest) __asm__("addcb %1, %0" : "=r" (dest) : \ - "ri" ((unsigned char)src), "0" (dest) : "cc") -#define _addcw_(src, dest) __asm__("addcw %1, %0" : "=r" (dest) : \ - "ri" ((unsigned short)src), "0" (dest) : "cc") -#define _addcd_(src, dest) __asm__("addcd %1, %0" : "=r" (dest) : \ - "ri" ((unsigned int)src), "0" (dest) : "cc") -/* Q-format Add */ -#define _addqb_(src, dest) __asm__("addqb %1, %0" : "=r" (dest) : \ - "r" ((unsigned char)src), "0" (dest) : "cc") -#define _addqw_(src, dest) __asm__("addqw %1, %0" : "=r" (dest) : \ - "r" ((unsigned short)src), "0" (dest) : "cc") -#define _addqd_(src, dest) __asm__("addqd %1, %0" : "=r" (dest) : \ - "r" ((unsigned int)src), "0" (dest) : "cc") - -/* Bitwise Logical AND */ - -#define _andb_(src, dest) __asm__("andb %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _andw_(src, dest) __asm__("andw %1,%0" : "=r" (dest) : \ - "ri" ((unsigned short)src) , "0" (dest)) -#define _andd_(src, dest) __asm__("andd %1,%0" : "=r" (dest) : \ - "ri" ((unsigned int)src) , "0" (dest)) - -/* bswap Instruction */ -#define _bswap_(src, dest) __asm__("bswap %1,%0" : "=r" (dest) : \ - "r" ((unsigned int)src) , "0" (dest)) -/* cbit (clear bit) Instructions */ -#define _cbitb_(pos, dest) __asm__("cbitb %1,%0" : "=mr" (dest) : \ - "i" ((unsigned char)pos) , "0" (dest) : "cc") -#define _cbitw_(pos, dest) __asm__("cbitw %1,%0" : "=mr" (dest) : \ - "i" ((unsigned char)pos) , "0" (dest) : "cc") -#define _cbitd_(pos, dest) __asm__("cbitd %1,%0" : "=r" (dest) : \ - "i" ((unsigned char)pos) , "0" (dest) : "cc") - -/* Compare Instructions */ -#define _cmpb_(src1, src2) __asm__("cmpb %0,%1" : /* no output */ : \ - "ri" ((unsigned char)src1) , "r" (src2) : "cc") -#define _cmpw_(src1,src2) __asm__("cmpw %0,%1" : /* no output */ \ - : "ri" ((unsigned short)src1) , "r" (src2) : "cc") -#define _cmpd_(src1,src2) __asm__("cmpd %0,%1" : /* no output */ \ - : "ri" ((unsigned int)src1) , "r" (src2) : "cc") - -/* cntl Count Leading Ones Instructions */ -#define _cntl1b_(src, dest) __asm__("cntl1b %1,%0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest)) -#define _cntl1w_(src, dest) __asm__("cntl1w %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest)) -#define _cntl1d_(src, dest) __asm__("cntl1d %1,%0" : "=r" (dest) : \ - "r" ((int)src) , "0" (dest)) - -/* cntl Count Leading Zeros Instructions */ -#define _cntl0b_(src, dest) __asm__("cntl0b %1,%0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest)) -#define _cntl0w_(src, dest) __asm__("cntl0w %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest)) -#define _cntl0d_(src, dest) __asm__("cntl0d %1,%0" : "=r" (dest) : \ - "r" ((int)src) , "0" (dest)) - -/* cntl Count Leading Signs Instructions */ -#define _cntlsb_(src, dest) __asm__("cntlsb %1,%0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest)) -#define _cntlsw_(src, dest) __asm__("cntlsw %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest)) -#define _cntlsd_(src, dest) __asm__("cntlsd %1,%0" : "=r" (dest) : \ - "r" ((int)src) , "0" (dest)) - -/* Disable Inerrupts instructions */ -#define _di_() __asm__ volatile ("di\n" : : : "cc") -#define _disable_() __asm__ volatile ("di\n" : : : "cc") - -/* Enable Inerrupts instructions */ -#define _ei_() __asm__ volatile ("ei\n" : : : "cc") -#define _enable_() __asm__ volatile ("ei\n" : : : "cc") - -/* Enable Inerrupts instructions and Wait */ -#define _eiwait_() __asm__ volatile ("eiwait" : : : "cc") - -/* excp Instructions */ -#define _excp_(vector) __asm__ volatile ("excp " # vector) - -/* getpid Instruction */ -#define _getrfid_(dest) __asm__("getrfid %0" : "=r" (dest) : \ - /* No input */ : "cc") - -/* Load Instructions */ -#define _loadb_(base,dest) __asm__("loadb %1,%0" : "=r" (dest) : \ - "m" (base) , "0" (dest)) -#define _loadw_(base,dest) __asm__("loadw %1,%0" : "=r" (dest) : \ - "m" (base) , "0" (dest)) -#define _loadd_(base,dest) __asm__("loadd %1,%0" : "=r" (dest) : \ - "m" (base) , "0" (dest)) - -/* Load Multiple Instructions */ -#define _loadm_(src, mask) __asm__("loadm %0,%1" : /* No output */ : \ - "r" ((unsigned int)src) , "i" (mask)) -#define _loadmp_(src, mask) __asm__("loadmp %0,%1" : /* No output */ : \ - "r" ((unsigned int)src) , "i" (mask)) - -/* Multiply Accumulate Instrutions */ -#define _macsb_(hi, lo, src1, src2) __asm__("macsb %1,%0" \ - : =l (lo), =h (hi) \ - : "r" ((char)src1) , "r" (src2)) -#define _macsw_(hi, lo, src1, src2) __asm__("macsw %1,%0" \ - : =l (lo), =h (hi) \ - : "r" ((short)src1) , "r" (src2)) -#define _macsd_(hi, lo, src1, src2) __asm__("macsd %1,%0" \ - : =l (lo), =h (hi) \ - : "r" ((int)src1) , "r" (src2)) -#define _macub_(hi, lo, src1, src2) __asm__("macub %1,%0" \ - : =l (lo), =h (hi) \ - :"r" ((unsigned char)src1) , "r" (src2)) -#define _macuw_(hi, lo, src1, src2) __asm__("macuw %1,%0" \ - : =l (lo), =h (hi) \ - : "r" ((unsigned short)src1) , "r" (src2)) -#define _macud_(hi, lo, src1, src2) __asm__("macud %1,%0" \ - : =l (lo), =h (hi) \ - : "r" ((unsigned int)src1) , "r" (src2)) - -/* Q-Format Multiply Accumulate Instrutions */ -#define _macqb_(src1, src2) __asm__("macqb %1,%0" \ - : =l (lo), =h (hi) \ - :"r" ((char)src1) , "r" (src2)) -#define _macqw_(src1, src2) __asm__("macqw %1,%0" \ - : =l (lo), =h (hi) \ - :"r" ((short)src1) , "r" (src2)) -#define _macqd_(src1, src2) __asm__("macqd %1,%0" \ - : =l (lo), =h (hi) \ - :"r" ((int)src1) , "r" (src2)) - -/* Maximum Instructions */ -#define _maxsb_(src, dest) __asm__("maxsb %1,%0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest)) -#define _maxsw_(src, dest) __asm__("maxsw %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest)) -#define _maxsd_(src, dest) __asm__("maxsd %1,%0" : "=r" (dest) : \ - "r" ((int)src) , "0" (dest)) -#define _maxub_(src, dest) __asm__("maxub %1,%0" : "=r" (dest) : \ - "r" ((unsigned char)src) , "0" (dest)) -#define _maxuw_(src, dest) __asm__("maxuw %1,%0" : "=r" (dest) : \ - "r" ((unsigned short)src) , "0" (dest)) -#define _maxud_(src, dest) __asm__("maxud %1,%0" : "=r" (dest) : \ - "r" ((unsigned int)src) , "0" (dest)) - -/* Minimum Instructions */ -#define _minsb_(src, dest) __asm__("minsb %1,%0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest)) -#define _minsw_(src, dest) __asm__("minsw %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest)) -#define _minsd_(src, dest) __asm__("minsd %1,%0" : "=r" (dest) : \ - "r" ((int)src) , "0" (dest)) -#define _minub_(src, dest) __asm__("minub %1,%0" : "=r" (dest) : \ - "r" ((unsigned char)src) , "0" (dest)) -#define _minuw_(src, dest) __asm__("minuw %1,%0" : "=r" (dest) : \ - "r" ((unsigned short)src) , "0" (dest)) -#define _minud_(src, dest) __asm__("minud %1,%0" : "=r" (dest) : \ - "r" ((unsigned int)src) , "0" (dest)) - -/* Move Instructions */ -#define _movb_(src, dest) __asm__("movb %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _movw_(src, dest) __asm__("movw %1,%0" : "=r" (dest) : \ - "ri" ((unsigned short)src) , "0" (dest)) -#define _movd_(src, dest) __asm__("movd %1,%0" : "=r" (dest) : \ - "ri" ((unsigned int)src) , "0" (dest)) - -/* mtpr and mfpr Insturctions */ -#define _mtpr_(procregd, src) __asm__("mtpr\t%0," procregd : /* no output */ : \ - "r" (src) : "cc") -#define _mfpr_(procregd, dest) __asm__("mfpr\t" procregd ",%0" : "=r" (dest) : \ - /* no input */ "0" (dest) : "cc") - -/* Multiplication Instructions */ -#define _mulsbw_(src, dest) __asm__("mulsbw %1,%0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest)) -#define _mulubw_(src, dest) __asm__("mulubw %1,%0" : "=r" (dest) : \ - "r" ((unsigned char)src) , "0" (dest)) -#define _mulswd_(src, dest) __asm__("mulswd %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest)) -#define _muluwd_(src, dest) __asm__("muluwd %1,%0" : "=r" (dest) : \ - "r" ((unsigned short)src) , "0" (dest)) -#define _mulb_(src, dest) __asm__("mulb %1,%0" : "=r" (dest) : \ - "ri" ((char)src) , "0" (dest)) -#define _mulw_(src, dest) __asm__("mulw %1,%0" : "=r" (dest) : \ - "ri" ((short)src) , "0" (dest)) -#define _muld_(src, dest) __asm__("muld %1,%0" : "=r" (dest) : \ - "ri" ((int)src) , "0" (dest)) -#define _mullsd_(hi, lo, src1, src2) __asm__("mullsd %2,%3" \ - : =l (lo), =h (hi) \ - : "r" ((unsigned int)src1) , "r" ((unsigned int)src2)) -#define _mullud_(hi, lo, src1, src2) __asm__("mullud %2,%3" \ - : =l (lo), =h (hi) \ - : "r" ((int)src1) , "r" ((int)src2)) - -/* Q-Format Multiplication Instructions */ -#define _mulqb_(src, dest) __asm__("mulqb %1,%0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest)) -#define _mulqw_(src, dest) __asm__("mulqw %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest)) - -/* nop Instruction */ -#define _nop_() __asm__("nop") - -/* Negate Instructions */ -#define _negb_(src, dest) __asm__("negb %1,%0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest)) -#define _negw_(src, dest) __asm__("negw %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest)) -#define _negd_(src, dest) __asm__("negd %1,%0" : "=r" (dest) : \ - "r" ((int)src) , "0" (dest)) - -/* or Instructions */ -#define _orb_(src, dest) __asm__("orb %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _orw_(src, dest) __asm__("orw %1,%0" : "=r" (dest) : \ - "ri" ((unsigned short)src) , "0" (dest)) -#define _ord_(src, dest) __asm__("ord %1,%0" : "=r" (dest) : \ - "ri" ((unsigned int)src) , "0" (dest)) - -/* Pop 1's Count Instructions */ -#define _popcntb_(src, dest) __asm__("popcntb %1,%0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest)) -#define _popcntw_(src, dest) __asm__("popcntw %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest)) -#define _popcntd_(src, dest) __asm__("popcntd %1,%0" : "=r" (dest) : \ - "r" ((int)src) , "0" (dest)) - -/* Rotate and Mask Instructions */ -#define _ram_(shift, end, begin, dest, src) __asm__("ram %1, %2, %3, %0, %4" : \ - "=r" (dest) : \ - "i" ((unsigned char) shift), \ - "i" (end), "i" (begin), \ - "r" (src), "0" (dest)) -#define _rim_(shift, end, begin, dest, src) __asm__("rim %1, %2, %3, %0, %4" : \ - "=r" (dest) : \ - "i" ((unsigned char) shift), \ - "i" (end), "i" (begin), \ - "r" (src), "0" (dest)) - -/* retx Instruction */ -#define _retx_() __asm__("retx") - -/* Rotate Instructions */ -#define _rotb_(shift, dest) __asm__("rotb %1,%0" : "=r" (dest) : \ - "i" ((unsigned char)shift) , "0" (dest)) -#define _rotw_(shift, dest) __asm__("rotw %1,%0" : "=r" (dest) : \ - "i" ((unsigned char)shift) , "0" (dest)) -#define _rotd_(shift, dest) __asm__("rotd %1,%0" : "=r" (dest) : \ - "i" ((unsigned char)shift) , "0" (dest)) -#define _rotlb_(shift, dest) __asm__("rotlb %1,%0" : "=r" (dest) : \ - "r" ((unsigned char)shift) , "0" (dest)) -#define _rotlw_(shift, dest) __asm__("rotlw %1,%0" : "=r" (dest) : \ - "r" ((unsigned char)shift) , "0" (dest)) -#define _rotld_(shift, dest) __asm__("rotld %1,%0" : "=r" (dest) : \ - "r" ((unsigned char)shift) , "0" (dest)) -#define _rotrb_(shift, dest) __asm__("rotrb %1,%0" : "=r" (dest) : \ - "r" ((unsigned char)shift) , "0" (dest)) -#define _rotrw_(shift, dest) __asm__("rotrw %1,%0" : "=r" (dest) : \ - "r" ((unsigned char)shift) , "0" (dest)) -#define _rotrd_(shift, dest) __asm__("rotrd %1,%0" : "=r" (dest) : \ - "r" ((unsigned char)shift) , "0" (dest)) - -/* Set Bit Instructions */ -#define _sbitb_(pos,dest) __asm__("sbitb %1,%0" : "=mr" (dest) : \ - "i" ((unsigned char)pos) , "0" (dest) : "cc") -#define _sbitw_(pos,dest) __asm__("sbitw %1,%0" : "=mr" (dest) : \ - "i" ((unsigned char)pos) , "0" (dest) : "cc") -#define _sbitd_(pos,dest) __asm__("sbitd %1,%0" : "=mr" (dest) : \ - "i" ((unsigned char)pos) , "0" (dest) : "cc") - -/* setrfid Instruction */ -#define _setrfid_(src) __asm__("setrfid %0" : /* No output */ : \ - "r" (src) : "cc") - -/* Sign Extend Instructions */ -#define _sextbw_(src, dest) __asm__("sextbw %1,%0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest) ) -#define _sextbd_(src, dest) __asm__("sextbd %1,%0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest) ) -#define _sextwd_(src, dest) __asm__("sextwd %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest) ) - -/* Shift Left Logical Instructions */ -#define _sllb_(src, dest) __asm__("sllb %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _sllw_(src, dest) __asm__("sllw %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _slld_(src, dest) __asm__("slld %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -/* Shift Right Arithmetic Instructions */ -#define _srab_(src, dest) __asm__("srab %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _sraw_(src, dest) __asm__("sraw %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _srad_(src, dest) __asm__("srad %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) - -/* Shift Right Logical Instructions */ -#define _srlb_(src, dest) __asm__("srlb %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _srlw_(src, dest) __asm__("srlw %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _srld_(src, dest) __asm__("srld %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) - -/* Store Instructions */ -#define _storb_(src,address) __asm__("storb %1,%0" : "=m" (address) : \ - "ri" ((unsigned int)src)) -#define _storw_(src,address) __asm__("storw %1,%0" : "=m" (address) : \ - "ri" ((unsigned int)src)) -#define _stord_(src,address) __asm__("stord %1,%0" : "=m" (address) : \ - "ri" ((unsigned int)src)) - -/* Store Multiple Instructions */ -#define _storm_(mask, src) __asm__("storm %1,%0" : /* No output here */ : \ - "i" (mask) , "r" ((unsigned int)src)) -#define _stormp_(mask, src) __asm__("stormp %1,%0" : /* No output here */ : \ - "i" (mask) , "r" ((unsigned int)src)) - -/* Substruct Instructions */ -#define _subb_(src, dest) __asm__("subb %1, %0" : "=r" (dest) : \ - "ri" ((unsigned char)src), "0" (dest) : "cc") -#define _subw_(src, dest) __asm__("subw %1, %0" : "=r" (dest) : \ - "ri" ((unsigned short)src), "0" (dest) : "cc") -#define _subd_(src, dest) __asm__("subd %1, %0" : "=r" (dest) : \ - "ri" ((unsigned int)src), "0" (dest) : "cc") - -/* Substruct with Carry Instructions */ -#define _subcb_(src, dest) __asm__("subcb %1, %0" : "=r" (dest) : \ - "ri" ((unsigned char)src), "0" (dest) : "cc") -#define _subcw_(src, dest) __asm__("subcw %1, %0" : "=r" (dest) : \ - "ri" ((unsigned short)src), "0" (dest) : "cc") -#define _subcd_(src, dest) __asm__("subcd %1, %0" : "=r" (dest) : \ - "ri" ((unsigned int)src), "0" (dest) : "cc") - -/* Q-Format Substruct Instructions */ -#define _subqb_(src, dest) __asm__("subqw %1,%0" : "=r" (dest) : \ - "r" ((char)src) , "0" (dest)) -#define _subqw_(src, dest) __asm__("subqw %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest)) -#define _subqd_(src, dest) __asm__("subqd %1,%0" : "=r" (dest) : \ - "r" ((short)src) , "0" (dest)) - -/* Test Bit Instructions */ -#define _tbitb_(pos,dest) __asm__("tbitb %0,%1" : /* No output */ : \ - "i" ((unsigned char)pos) , "rm" (dest) : "cc") -#define _tbitw_(pos,dest) __asm__("tbitw %0,%1" : /* No output */ : \ - "i" ((unsigned char)pos) , "rm" (dest) : "cc") -#define _tbitd_(pos,dest) __asm__("tbitd %0,%1" : /* No output */ : \ - "i" ((unsigned char)pos) , "rm" (dest) : "cc") - -/* wait Instruction*/ -#define _wait_() __asm__ volatile ("wait" : : : "cc") - -/* xor Instructions */ -#define _xorb_(src, dest) __asm__("xorb %1,%0" : "=r" (dest) : \ - "ri" ((unsigned char)src) , "0" (dest)) -#define _xorw_(src, dest) __asm__("xorw %1,%0" : "=r" (dest) : \ - "ri" ((unsigned short)src) , "0" (dest)) -#define _xord_(src, dest) __asm__("xord %1,%0" : "=r" (dest) : \ - "ri" ((unsigned int)src) , "0" (dest)) - -/* Zero Extend Instructions */ -#define _zextbw_(src, dest) __asm__("zextbw %1,%0" : "=r" (dest) : \ - "r" ((unsigned char)src) , "0" (dest)) -#define _zextbd_(src, dest) __asm__("zextbd %1,%0" : "=r" (dest) : \ - "r" ((unsigned char)src) , "0" (dest)) -#define _zextwd_(src, dest) __asm__("zextwd %1,%0" : "=r" (dest) : \ - "r" ((unsigned short)src) , "0" (dest)) - -#define _save_asm_(x) \ - __asm__ volatile (x ::: "memory","cc", \ - "r0","r1","r2","r3","r4","r5","r6","r7", \ - "r8","r9","r10","r11","r12","r13") - -#endif /* _ASM */ - - diff --git a/lib/machine/crx/sys/libh.h b/lib/machine/crx/sys/libh.h deleted file mode 100644 index a7ac54b..0000000 --- a/lib/machine/crx/sys/libh.h +++ /dev/null @@ -1,51 +0,0 @@ -/* libh.h -- CRX default handlers - * - * Copyright (c) 2004 National Semiconductor Corporation - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#ifndef _LIBH -#define _LIBH - -/* These are the first 16 entries of the default dispatch table as defined - in the CompactRISC architecture: - - Entry Function - ----- -------- - 0 NULL - 1 nmi - 2 NULL - 3 NULL - 4 NULL - 5 svc - 6 dvz - 7 flg - 8 bpt - 9 trc - 10 und - 11 NULL - 12 iad - 13 NULL - 14 dbg - 15 ise -*/ - -extern void (* const _dispatch_table[])(void); - -/* Function prototypes */ -void svc_handler(void); -void dvz_handler(void); -void flg_handler(void); -void und_handler(void); -void iad_handler(void); - -#endif /* _LIBH */ diff --git a/lib/machine/crx/sys/syscall.h b/lib/machine/crx/sys/syscall.h deleted file mode 100644 index f775fbb..0000000 --- a/lib/machine/crx/sys/syscall.h +++ /dev/null @@ -1,61 +0,0 @@ -/* syscall.h -- CRX virtual I/O and trap service codes - * - * Copyright (c) 2004 National Semiconductor Corporation - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#ifndef _SYSCALL_H -#define _SYSCALL_H - -#include - -/* SVC codes to pass to the debugger */ - -/* Virtual I/O services */ -#define SVC_OPEN 0x401 -#define SVC_CLOSE 0x402 -#define SVC_READ 0x403 -#define SVC_WRITE 0x404 -#define SVC_LSEEK 0x405 -#define SVC_RENAME 0x406 -#define SVC_UNLINK 0x407 -#define SVC_GETENV 0x408 - -/* Time service */ -#define SVC_TIME 0x300 - -/* Start/end of program services */ -#define SVC_EOP 0x410 - -/* Trap services */ -#define SVC_SVC 0x505 -#define SVC_DVZ 0x506 -#define SVC_FLG 0x507 -#define SVC_UND 0x50a -#define SVC_IAD 0x50c - - -/* Places the code of the requested service in R0, then transfers control - to the debugger using the BPT exception. - It is called from the start routine, VIO functions and the trap - handlers. */ - -#define STRINGIFY(x) #x -#define HOST_SERVICE(service) \ - do { \ - __asm__("movd\t$" STRINGIFY(service) ",r0"); \ - _excp_(bpt); \ - __asm__(".short\t0xFFFF"); \ - } while (0) - -#endif /* _SYSCALL_H */ - diff --git a/lib/machine/csky/Makefile.inc b/lib/machine/csky/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/csky/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/csky/setjmp.S b/lib/machine/csky/setjmp.S deleted file mode 100644 index b936873..0000000 --- a/lib/machine/csky/setjmp.S +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright (c) 2020 C-SKY Microsystems All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - - .section .text - .align 3 - .globl setjmp - .type setjmp,@function - .globl longjmp - .type longjmp,@function - -setjmp: - -#if defined(__CK801__) - stw r4, (r0, 0) - stw r5, (r0, 4) - stw r6, (r0, 8) - stw r7, (r0, 12) - stw r8, (r0, 16) - stw r15, (r0, 20) - stw sp, (r0, 24) -#elif defined(__CK802__) - stm r4-r11, (r0) - stw r15, (r0, 32) - stw sp, (r0, 36) -#else - stm r4-r11, (r0) - stw r15, (r0, 32) - stw r16, (r0, 36) - stw r17, (r0, 40) - stw r26, (r0, 44) - stw r27, (r0, 48) - stw r28, (r0, 52) - stw r29, (r0, 56) - stw r30, (r0, 60) - stw r31, (r0, 64) - stw sp, (r0, 68) -#endif - movi r0, 0 - rts - -longjmp: -#if defined(__CK801__) - ldw r4, (r0, 0) - ldw r5, (r0, 4) - ldw r6, (r0, 8) - ldw r7, (r0, 12) - ldw r8, (r0, 16) - ldw r15, (r0, 20) - ldw sp, (r0, 24) -#elif defined(__CK802__) - ldm r4-r11, (r0) - ldw r15, (r0, 32) - ldw sp, (r0, 36) -#else - ldm r4-r11, (r0) - ldw r15, (r0, 32) - ldw r16, (r0, 36) - ldw r17, (r0, 40) - ldw r26, (r0, 44) - ldw r27, (r0, 48) - ldw r28, (r0, 52) - ldw r29, (r0, 56) - ldw r30, (r0, 60) - ldw r31, (r0, 64) - ldw sp, (r0, 68) -#endif - mov r0, r1 - cmpnei r1, 0 - bt 1f - movi r0, 1 -1: rts diff --git a/lib/machine/d10v/Makefile.inc b/lib/machine/d10v/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/d10v/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/d10v/setjmp.S b/lib/machine/d10v/setjmp.S deleted file mode 100644 index 22287dd..0000000 --- a/lib/machine/d10v/setjmp.S +++ /dev/null @@ -1,55 +0,0 @@ -; setjmp/longjmp for D10V. The jmpbuf looks like this: -; -; Register jmpbuf offset -; R6 0x00 -; R7 0x02 -; R8 0x04 -; R9 0x06 -; R10 0x08 -; R11 0x0a -; R13 (return address) 0x0c -; R15 (SP) 0x0E - - .text - .globl setjmp - .type setjmp,@function - .stabs "setjmp.S",100,0,0,setjmp - .stabs "int:t(0,1)=r(0,1);-65536;65535;",128,0,0,0 - .stabs "setjmp:F(0,1)",36,0,1,setjmp - -setjmp: -; Address of jmpbuf is passed in R0. Save the appropriate registers. - st2w r6, @r0+ - st2w r8, @r0+ - st2w r10, @r0+ - st r13, @r0+ - st r15, @r0+ - -; Return 0 to caller - ldi r0, 0 - jmp r13 -.Lsetjmp: - .size setjmp,.Lsetjmp-setjmp - .stabs "",36,0,0,.Lsetjmp-setjmp - - .globl longjmp - .type longjmp,@function - .stabs "longjmp:F(0,1)",36,0,1,longjmp -longjmp: -; Address of jmpbuf is in R0. Restore the registers. - ld2w r6, @r0+ - ld2w r8, @r0+ - ld2w r10, @r0+ - ld r13, @r0+ - ld r15, @r0+ - -; Value to return to caller is in R1. If caller attemped to return 0, -; return 1 instead. - - mv r0, r1 - cmpeqi r0, 0 - exef0t || ldi r0,1 - jmp r13 -.Llongjmp: - .size longjmp,.Llongjmp-longjmp - .stabs "",36,0,0,.Llongjmp-longjmp diff --git a/lib/machine/d30v/Makefile.inc b/lib/machine/d30v/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/d30v/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/d30v/setjmp.S b/lib/machine/d30v/setjmp.S deleted file mode 100644 index c0ca825..0000000 --- a/lib/machine/d30v/setjmp.S +++ /dev/null @@ -1,106 +0,0 @@ -; setjmp/longjmp for D30V. - - .text - .globl setjmp - .type setjmp,@function - .stabs "setjmp.S",100,0,0,setjmp - .stabs "int:t(0,1)=r(0,1);-2147483648;2147483647;",128,0,0,0 - .stabs "setjmp:F(0,1)",36,0,1,setjmp - -setjmp: -; Address of jmpbuf is passed in R2. Save the appropriate registers. - st2w r26, @(r2+,r0) - st2w r28, @(r2+,r0) - st2w r30, @(r2+,r0) - st2w r32, @(r2+,r0) - st2w r34, @(r2+,r0) - st2w r36, @(r2+,r0) - st2w r38, @(r2+,r0) - st2w r40, @(r2+,r0) - st2w r42, @(r2+,r0) - st2w r44, @(r2+,r0) - st2w r46, @(r2+,r0) - st2w r48, @(r2+,r0) - st2w r50, @(r2+,r0) - st2w r52, @(r2+,r0) - st2w r54, @(r2+,r0) - st2w r56, @(r2+,r0) - st2w r58, @(r2+,r0) - st2w r60, @(r2+,r0) - st2w r62, @(r2+,r0) - - mvfacc r4, a1, 16 - mvfacc r5, a1, 0 - st2w r4, @(r2+,r0) - - mvfsys r4, psw - mvfsys r5, rpt_c - st2w r4, @(r2+,r0) - - mvfsys r4, rpt_s - mvfsys r5, rpt_e - st2w r4, @(r2+,r0) - - mvfsys r4, mod_s - mvfsys r5, mod_e - st2w r4, @(r2+,r0) - -; Return 0 to caller - add r2, r0, r0 - jmp link -.Lsetjmp: - .size setjmp,.Lsetjmp-setjmp - .stabs "",36,0,0,.Lsetjmp-setjmp - - .globl longjmp - .type longjmp,@function - .stabs "longjmp:F(0,1)",36,0,1,longjmp -longjmp: -; Address of jmpbuf is in R2. Restore the registers. - ld2w r26, @(r2+,r0) - ld2w r28, @(r2+,r0) - ld2w r30, @(r2+,r0) - ld2w r32, @(r2+,r0) - ld2w r34, @(r2+,r0) - ld2w r36, @(r2+,r0) - ld2w r38, @(r2+,r0) - ld2w r40, @(r2+,r0) - ld2w r42, @(r2+,r0) - ld2w r44, @(r2+,r0) - ld2w r46, @(r2+,r0) - ld2w r48, @(r2+,r0) - ld2w r50, @(r2+,r0) - ld2w r52, @(r2+,r0) - ld2w r54, @(r2+,r0) - ld2w r56, @(r2+,r0) - ld2w r58, @(r2+,r0) - ld2w r60, @(r2+,r0) - ld2w r62, @(r2+,r0) - - ld2w r4, @(r2+,r0) - mvtacc a1, r4, r5 - - mvfsys r6, psw - ld2w r4, @(r2+,r0) /* psw, rpt_c */ - and r6, r6, 0xfcff /* set rp, md bits from setjmp, leave */ - and r4, r4, 0x0300 /* all other psw bits the same */ - or r4, r4, r6 - mvtsys psw, r4 - mvtsys rpt_c, r5 - - ld2w r4, @(r2+,r0) - mvtsys rpt_s, r4 - mvtsys rpt_e, r5 - - ld2w r4, @(r2+,r0) - mvtsys mod_s, r4 - mvtsys mod_e, r5 - -; Value to return to caller is in R3. If caller attemped to return 0, -; return 1 instead. - - cmpeq f0, r3, 0 || add r2, r3, r0 - jmp link || add/tx r2, r2, 1 -.Llongjmp: - .size longjmp,.Llongjmp-longjmp - .stabs "",36,0,0,.Llongjmp-longjmp diff --git a/lib/machine/epiphany/Makefile.inc b/lib/machine/epiphany/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/epiphany/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/epiphany/setjmp.S b/lib/machine/epiphany/setjmp.S deleted file mode 100644 index b981ee5..0000000 --- a/lib/machine/epiphany/setjmp.S +++ /dev/null @@ -1,69 +0,0 @@ -/* setjmp and longjmp - - Copyright (c) 2011, Adapteva, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Adapteva nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. */ - - .file "setjmp.S" - .section .text - .align 4 - .global _setjmp - .type _setjmp, %function -_setjmp: - strd lr,[r0] - strd r4,[r0,1] - strd r6,[r0,2] - strd r8,[r0,3] - strd r10,[r0,4] - strd r32,[r0,5] - strd r34,[r0,6] - strd r36,[r0,7] - strd r38,[r0,8] - str sp,[r0,18] - mov r0,#0 - rts - .size _setjmp, .-_setjmp - .global setjmp - .set setjmp, _setjmp - - .global _longjmp -_longjmp: - ldrd lr,[r0] ; return address / r15 - ldrd r4,[r0,1] - ldrd r6,[r0,2] - ldrd r8,[r0,3] - ldrd r10,[r0,4] - ldrd r32,[r0,5] - ldrd r34,[r0,6] - ldrd r36,[r0,7] - ldrd r38,[r0,8] - ldr sp,[r0,18] - sub r1,r1,0 - mov r0,#1 - movne r0,r1 - jr lr - .size _longjmp, .-_longjmp - .global longjmp - .set longjmp, _longjmp diff --git a/lib/machine/fr30/Makefile.inc b/lib/machine/fr30/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/fr30/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/fr30/setjmp.S b/lib/machine/fr30/setjmp.S deleted file mode 100644 index 98ac44d..0000000 --- a/lib/machine/fr30/setjmp.S +++ /dev/null @@ -1,64 +0,0 @@ -# setjmp/longjmp for FR30. The jmpbuf looks like this: -# -# Register jmpbuf offset -# R8 0x00 -# R9 0x04 -# R10 0x08 -# R11 0x0c -# R12 0x10 -# R13 0x14 -# R14 (FP) 0x18 -# R15 (SP) 0x1c -# RP 0x20 - -.macro save reg - st \reg,@r4 - add #4,r4 -.endm - -.macro restore reg - ld @r4,\reg - add #4,r4 -.endm - - - .text - .global setjmp -setjmp: - save r8 - save r9 - save r10 - save r11 - save r12 - save r13 - save r14 - save r15 - mov RP,r5 - st r5,@r4 - -# Return 0 to caller. - ldi:8 #0,r4 - ret - - .global longjmp -longjmp: - restore r8 - restore r9 - restore r10 - restore r11 - restore r12 - restore r13 - restore r14 - restore r15 - ld @r4,r4 - mov r4,RP - -# If caller attempted to return 0, return 1 instead. - - mov r5,r4 - or r4,r4 - bne 1f - ldi:8 #1,r4 - 1: - ret - \ No newline at end of file diff --git a/lib/machine/frv/Makefile.inc b/lib/machine/frv/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/frv/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/frv/setjmp.S b/lib/machine/frv/setjmp.S deleted file mode 100644 index a1dd159..0000000 --- a/lib/machine/frv/setjmp.S +++ /dev/null @@ -1,126 +0,0 @@ -# setjmp/longjmp for Frv. The jmpbuf looks like this: -# -# Register jmpbuf offset -# R16-R31 0x0-0x03c -# R48-R63 0x40-0x7c -# FR16-FR31 0x80-0xbc -# FR48-FR63 0xc0-0xfc -# LR 0x100 -# SP 0x104 -# FP 0x108 -# -# R8 contains the pointer to jmpbuf - -#include - - .text - .global EXT(setjmp) - .type EXT(setjmp),@function -EXT(setjmp): - stdi gr16, @(gr8,0) - stdi gr18, @(gr8,8) - stdi gr20, @(gr8,16) - stdi gr22, @(gr8,24) - stdi gr24, @(gr8,32) - stdi gr26, @(gr8,40) - stdi gr28, @(gr8,48) - stdi gr30, @(gr8,56) -#if __FRV_GPR__ != 32 - stdi gr48, @(gr8,64) - stdi gr50, @(gr8,72) - stdi gr52, @(gr8,80) - stdi gr54, @(gr8,88) - stdi gr56, @(gr8,96) - stdi gr58, @(gr8,104) - stdi gr60, @(gr8,112) - stdi gr62, @(gr8,120) -#endif - -#if __FRV_FPR__ != 0 - stdfi fr16, @(gr8,128) - stdfi fr18, @(gr8,136) - stdfi fr20, @(gr8,144) - stdfi fr22, @(gr8,152) - stdfi fr24, @(gr8,160) - stdfi fr26, @(gr8,168) - stdfi fr28, @(gr8,176) - stdfi fr30, @(gr8,184) -#if __FRV_FPR__ != 32 - stdfi fr48, @(gr8,192) - stdfi fr50, @(gr8,200) - stdfi fr52, @(gr8,208) - stdfi fr54, @(gr8,216) - stdfi fr56, @(gr8,224) - stdfi fr58, @(gr8,232) - stdfi fr60, @(gr8,240) - stdfi fr62, @(gr8,248) -#endif -#endif - - movsg lr, gr4 - sti gr4, @(gr8,256) - sti sp, @(gr8,260) - sti fp, @(gr8,264) - - mov gr0,gr8 - ret -.Lend1: - .size EXT(setjmp),.Lend1-EXT(setjmp) - - .global EXT(longjmp) - .type EXT(longjmp),@function -EXT(longjmp): - lddi @(gr8,0), gr16 - lddi @(gr8,8), gr18 - lddi @(gr8,16), gr20 - lddi @(gr8,24), gr22 - lddi @(gr8,32), gr24 - lddi @(gr8,40), gr26 - lddi @(gr8,48), gr28 - lddi @(gr8,56), gr30 -#if __FRV_GPR__ != 32 - lddi @(gr8,64), gr48 - lddi @(gr8,72), gr50 - lddi @(gr8,80), gr52 - lddi @(gr8,88), gr54 - lddi @(gr8,96), gr56 - lddi @(gr8,104), gr58 - lddi @(gr8,112), gr60 - lddi @(gr8,120), gr62 -#endif - -#if __FRV_FPR__ != 0 - lddfi @(gr8,128), fr16 - lddfi @(gr8,136), fr18 - lddfi @(gr8,144), fr20 - lddfi @(gr8,152), fr22 - lddfi @(gr8,160), fr24 - lddfi @(gr8,168), fr26 - lddfi @(gr8,176), fr28 - lddfi @(gr8,184), fr30 -#if __FRV_FPR__ != 32 - lddfi @(gr8,192), fr48 - lddfi @(gr8,200), fr50 - lddfi @(gr8,208), fr52 - lddfi @(gr8,216), fr54 - lddfi @(gr8,224), fr56 - lddfi @(gr8,232), fr58 - lddfi @(gr8,240), fr60 - lddfi @(gr8,248), fr62 -#endif -#endif - - ldi @(gr8,256), gr4 - movgs gr4,lr - - ldi @(gr8,260), sp - ldi @(gr8,264), fp - -# Value to return is in r9. If zero, return 1 - cmp gr9, gr0, icc0 - setlos #1, gr8 - ckne icc0, cc4 - cmov gr9, gr8, cc4, 1 - ret -.Lend2: - .size EXT(longjmp),.Lend2-EXT(longjmp) diff --git a/lib/machine/ft32/Makefile.inc b/lib/machine/ft32/Makefile.inc deleted file mode 100644 index 3638501..0000000 --- a/lib/machine/ft32/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S %D%/strlen.S %D%/memcpy.S %D%/strcmp.S %D%/memset.S %D%/strcpy.S diff --git a/lib/machine/ft32/memcpy.S b/lib/machine/ft32/memcpy.S deleted file mode 100644 index b29179b..0000000 --- a/lib/machine/ft32/memcpy.S +++ /dev/null @@ -1,32 +0,0 @@ -/* A memcpy.c for FT32 - Copyright (C) 2014 FTDI (support@ftdichip.com) - - The authors hereby grant permission to use, copy, modify, distribute, - and license this software and its documentation for any purpose, provided - that existing copyright notices are retained in all copies and that this - notice is included verbatim in any distributions. No written agreement, - license, or royalty fee is required for any of the authorized uses. - Modifications to this software may be copyrighted by their authors - and need not follow the licensing terms described here, provided that - the new terms are clearly indicated on the first page of each file where - they apply. */ - - .text - .global memcpy - .type memcpy,@function -memcpy: - ldk $r3,32764 -1: - cmp $r2,$r3 - jmpc lte,2f - memcpy.b $r0,$r1,$r3 - add $r0,$r0,$r3 - add $r1,$r1,$r3 - sub $r2,$r2,$r3 - jmp 1b -2: - memcpy.b $r0,$r1,$r2 - return -.Lend2: - .size memcpy,.Lend2-memcpy - diff --git a/lib/machine/ft32/memset.S b/lib/machine/ft32/memset.S deleted file mode 100644 index 60e7345..0000000 --- a/lib/machine/ft32/memset.S +++ /dev/null @@ -1,30 +0,0 @@ -/* A memset.c for FT32 - Copyright (C) 2014 FTDI (support@ftdichip.com) - - The authors hereby grant permission to use, copy, modify, distribute, - and license this software and its documentation for any purpose, provided - that existing copyright notices are retained in all copies and that this - notice is included verbatim in any distributions. No written agreement, - license, or royalty fee is required for any of the authorized uses. - Modifications to this software may be copyrighted by their authors - and need not follow the licensing terms described here, provided that - the new terms are clearly indicated on the first page of each file where - they apply. */ - - .text - .global memset - .type memset,@function -memset: - ldk $r3,32764 -1: - cmp $r2,$r3 - jmpc lte,2f - memset.b $r0,$r1,$r3 - add $r0,$r0,$r3 - sub $r2,$r2,$r3 - jmp 1b -2: - memset.b $r0,$r1,$r2 - return -.Lend2: - .size memset,.Lend2-memset diff --git a/lib/machine/ft32/setjmp.S b/lib/machine/ft32/setjmp.S deleted file mode 100644 index 30bfc6d..0000000 --- a/lib/machine/ft32/setjmp.S +++ /dev/null @@ -1,94 +0,0 @@ -/* A setjmp.c for FT32 - Copyright (C) 2014 FTDI (support@ftdichip.com) - - The authors hereby grant permission to use, copy, modify, distribute, - and license this software and its documentation for any purpose, provided - that existing copyright notices are retained in all copies and that this - notice is included verbatim in any distributions. No written agreement, - license, or royalty fee is required for any of the authorized uses. - Modifications to this software may be copyrighted by their authors - and need not follow the licensing terms described here, provided that - the new terms are clearly indicated on the first page of each file where - they apply. */ - -# setjmp/longjmp for FT32. -# Total jumpbuf size is 108 bytes, or 27 words. -# - - .text - .global setjmp - .type setjmp,@function -setjmp: - pop.l $r5 # return address in $r5 - sti.l $r0,0,$r5 - sti.l $r0,4,$r6 - sti.l $r0,8,$r7 - sti.l $r0,12,$r8 - sti.l $r0,16,$r9 - sti.l $r0,20,$r10 - sti.l $r0,24,$r11 - sti.l $r0,28,$r12 - sti.l $r0,32,$r13 - sti.l $r0,36,$r14 - sti.l $r0,40,$r15 - sti.l $r0,44,$r16 - sti.l $r0,48,$r17 - sti.l $r0,52,$r18 - sti.l $r0,56,$r19 - sti.l $r0,60,$r20 - sti.l $r0,64,$r21 - sti.l $r0,68,$r22 - sti.l $r0,72,$r23 - sti.l $r0,76,$r24 - sti.l $r0,80,$r25 - sti.l $r0,84,$r26 - sti.l $r0,88,$r27 - sti.l $r0,92,$r28 - sti.l $r0,96,$r29 - sti.l $r0,100,$r30 - sti.l $r0,104,$r31 - ldk.l $r0,0 - jmpi $r5 - -.Lend1: - .size setjmp,.Lend1-setjmp - - .global longjmp - .type longjmp,@function -longjmp: - cmp.l $r1,0 - jmpc nz,.nonz - ldk.l $r1,1 -.nonz: - ldi.l $r5,$r0,0 - ldi.l $r6,$r0,4 - ldi.l $r7,$r0,8 - ldi.l $r8,$r0,12 - ldi.l $r9,$r0,16 - ldi.l $r10,$r0,20 - ldi.l $r11,$r0,24 - ldi.l $r12,$r0,28 - ldi.l $r13,$r0,32 - ldi.l $r14,$r0,36 - ldi.l $r15,$r0,40 - ldi.l $r16,$r0,44 - ldi.l $r17,$r0,48 - ldi.l $r18,$r0,52 - ldi.l $r19,$r0,56 - ldi.l $r20,$r0,60 - ldi.l $r21,$r0,64 - ldi.l $r22,$r0,68 - ldi.l $r23,$r0,72 - ldi.l $r24,$r0,76 - ldi.l $r25,$r0,80 - ldi.l $r26,$r0,84 - ldi.l $r27,$r0,88 - ldi.l $r28,$r0,92 - ldi.l $r29,$r0,96 - ldi.l $r30,$r0,100 - ldi.l $r31,$r0,104 - move.l $r0,$r1 - jmpi $r5 - -.Lend2: - .size longjmp,.Lend2-longjmp diff --git a/lib/machine/ft32/stpcmp.S b/lib/machine/ft32/stpcmp.S deleted file mode 100644 index 9fc0299..0000000 --- a/lib/machine/ft32/stpcmp.S +++ /dev/null @@ -1,22 +0,0 @@ -/* A strlen.c for FT32 - Copyright (C) 2014 FTDI (support@ftdichip.com) - - The authors hereby grant permission to use, copy, modify, distribute, - and license this software and its documentation for any purpose, provided - that existing copyright notices are retained in all copies and that this - notice is included verbatim in any distributions. No written agreement, - license, or royalty fee is required for any of the authorized uses. - Modifications to this software may be copyrighted by their authors - and need not follow the licensing terms described here, provided that - the new terms are clearly indicated on the first page of each file where - they apply. */ - - .text - .global strlen - .type strlen,@function -strlen: - strlen.b $r0,$r0 - return -.Lend2: - .size strlen,.Lend2-strlen - diff --git a/lib/machine/ft32/strcmp.S b/lib/machine/ft32/strcmp.S deleted file mode 100644 index 5e74734..0000000 --- a/lib/machine/ft32/strcmp.S +++ /dev/null @@ -1,22 +0,0 @@ -/* A strcmp.c for FT32 - Copyright (C) 2014 FTDI (support@ftdichip.com) - - The authors hereby grant permission to use, copy, modify, distribute, - and license this software and its documentation for any purpose, provided - that existing copyright notices are retained in all copies and that this - notice is included verbatim in any distributions. No written agreement, - license, or royalty fee is required for any of the authorized uses. - Modifications to this software may be copyrighted by their authors - and need not follow the licensing terms described here, provided that - the new terms are clearly indicated on the first page of each file where - they apply. */ - - .text - .global strcmp - .type strcmp,@function -strcmp: - strcmp.b $r0,$r0,$r1 - return -.Lend2: - .size strcmp,.Lend2-strcmp - diff --git a/lib/machine/ft32/strcpy.S b/lib/machine/ft32/strcpy.S deleted file mode 100644 index fd6ef1d..0000000 --- a/lib/machine/ft32/strcpy.S +++ /dev/null @@ -1,23 +0,0 @@ -/* A strcpy.c for FT32 - Copyright (C) 2014 FTDI (support@ftdichip.com) - - The authors hereby grant permission to use, copy, modify, distribute, - and license this software and its documentation for any purpose, provided - that existing copyright notices are retained in all copies and that this - notice is included verbatim in any distributions. No written agreement, - license, or royalty fee is required for any of the authorized uses. - Modifications to this software may be copyrighted by their authors - and need not follow the licensing terms described here, provided that - the new terms are clearly indicated on the first page of each file where - they apply. */ - - .text - .global strcpy - .type strcpy,@function -strcpy: - move.l $r5,$r0 - stpcpy.b $r5,$r1 - return -.Lend2: - .size strcpy,.Lend2-strcpy - diff --git a/lib/machine/ft32/strlen.S b/lib/machine/ft32/strlen.S deleted file mode 100644 index 9fc0299..0000000 --- a/lib/machine/ft32/strlen.S +++ /dev/null @@ -1,22 +0,0 @@ -/* A strlen.c for FT32 - Copyright (C) 2014 FTDI (support@ftdichip.com) - - The authors hereby grant permission to use, copy, modify, distribute, - and license this software and its documentation for any purpose, provided - that existing copyright notices are retained in all copies and that this - notice is included verbatim in any distributions. No written agreement, - license, or royalty fee is required for any of the authorized uses. - Modifications to this software may be copyrighted by their authors - and need not follow the licensing terms described here, provided that - the new terms are clearly indicated on the first page of each file where - they apply. */ - - .text - .global strlen - .type strlen,@function -strlen: - strlen.b $r0,$r0 - return -.Lend2: - .size strlen,.Lend2-strlen - diff --git a/lib/machine/h8300/Makefile.inc b/lib/machine/h8300/Makefile.inc deleted file mode 100644 index 7335d98..0000000 --- a/lib/machine/h8300/Makefile.inc +++ /dev/null @@ -1,3 +0,0 @@ -libc_a_SOURCES += \ - %D%/reg_memcpy.S %D%/reg_memset.S %D%/strcmp.S %D%/memcpy.S %D%/memset.S \ - %D%/setjmp.S %D%/h8sx_strcpy.S diff --git a/lib/machine/h8300/defines.h b/lib/machine/h8300/defines.h deleted file mode 100644 index 7ec12c4..0000000 --- a/lib/machine/h8300/defines.h +++ /dev/null @@ -1,138 +0,0 @@ - -#define A0 r0 -#define A0L r0l -#define A0H r0h - -#define A1 r1 -#define A1L r1l -#define A1H r1h - -#define A2 r2 -#define A2L r2l -#define A2H r2h - -#define A3 r3 -#define A3L r3l -#define A3H r3h - -#define S0 r4 -#define S0L r4l -#define S0H r4h - -#define S1 r5 -#define S1L r5l -#define S1H r5h - -#define S2 r6 -#define S2L r6l -#define S2H r6h - -#ifdef __H8300__ - -#define MOVP mov.w /* pointers are 16 bits */ -#define ADDP add.w -#define CMPP cmp.w -#define PUSHP push -#define POPP pop - -#define A0P r0 -#define A1P r1 -#define A2P r2 -#define A3P r3 -#define S0P r4 -#define S1P r5 -#define S2P r6 - -#endif /* __H8300__ */ - -#ifdef __H8300H__ - -#ifdef __NORMAL_MODE__ - -#define MOVP mov.w /* pointers are 16 bits */ -#define ADDP add.w -#define CMPP cmp.w -#define PUSHP push -#define POPP pop - -#define A0P r0 -#define A1P r1 -#define A2P r2 -#define A3P r3 -#define S0P r4 -#define S1P r5 -#define S2P r6 - -#else /* !__NORMAL_MODE__ */ - -#define MOVP mov.l /* pointers are 32 bits */ -#define ADDP add.l -#define CMPP cmp.l -#define PUSHP push.l -#define POPP pop.l - -#define A0P er0 -#define A1P er1 -#define A2P er2 -#define A3P er3 -#define S0P er4 -#define S1P er5 -#define S2P er6 - -#endif /* !__NORMAL_MODE__ */ - -#define A0E e0 -#define A1E e1 -#define A2E e2 -#define A3E e3 - -#endif /* __H8300H__ */ - -#if defined (__H8300S__) || defined (__H8300SX__) - -#ifdef __NORMAL_MODE__ - -#define MOVP mov.w /* pointers are 16 bits */ -#define ADDP add.w -#define CMPP cmp.w -#define PUSHP push -#define POPP pop - -#define A0P r0 -#define A1P r1 -#define A2P r2 -#define A3P r3 -#define S0P r4 -#define S1P r5 -#define S2P r6 - -#else /* !__NORMAL_MODE__ */ - -#define MOVP mov.l /* pointers are 32 bits */ -#define ADDP add.l -#define CMPP cmp.l -#define PUSHP push.l -#define POPP pop.l - -#define A0P er0 -#define A1P er1 -#define A2P er2 -#define A3P er3 -#define S0P er4 -#define S1P er5 -#define S2P er6 - -#endif /* !__NORMAL_MODE__ */ - -#define A0E e0 -#define A1E e1 -#define A2E e2 -#define A3E e3 - - -#ifdef __NORMAL_MODE__ -#define LEN(X) X -#else -#define LEN(X) e##X -#endif -#endif /* __H8300S__ */ diff --git a/lib/machine/h8300/h8sx_strcpy.S b/lib/machine/h8300/h8sx_strcpy.S deleted file mode 100644 index db84771..0000000 --- a/lib/machine/h8300/h8sx_strcpy.S +++ /dev/null @@ -1,14 +0,0 @@ -; This file exists to provide a movsd implementation of strcpy(). -; Continue to use the generic version for targets other than h8sx. -#ifdef __H8300SX__ -#include "setarch.h" - - .global _strcpy -_strcpy: - stm.l er4-er6,@-er7 - mov.l er0,er6 - mov.l er1,er5 -1: movsd 2f - bra 1b -2: rts/l er4-er6 -#endif diff --git a/lib/machine/h8300/memcpy.S b/lib/machine/h8300/memcpy.S deleted file mode 100644 index 6af5a99..0000000 --- a/lib/machine/h8300/memcpy.S +++ /dev/null @@ -1,149 +0,0 @@ -#include "setarch.h" - -#include "defines.h" - -#ifdef __H8300SX__ - - .global _memcpy -_memcpy: - stm.l er4-er6,@-er7 - - ; Set up source and destination pointers for movmd. - mov.l er0,er6 - mov.l er1,er5 - - ; See whether the copy is long enough to use the movmd.l code. - ; Although the code can handle anything longer than 6 bytes, - ; it can be more expensive than movmd.b for small moves. - ; It's better to use a higher threshold to account for this. - ; - ; Note that the exact overhead of the movmd.l checks depends on - ; the alignments of the length and pointers. They are faster when - ; er0 & 3 == er1 & 3 == er2 & 3, faster still when these values - ; are 0. This threshold is a compromise between the various cases. - cmp #16,LEN(r2) - blo simple - - ; movmd.l only works for even addresses. If one of the addresses - ; is odd and the other is not, fall back on a simple move. - bld #0,r5l - bxor #0,r6l - bcs simple - - ; Make the addresses even. - bld #0,r5l - bcc word_aligned - mov.b @er5+,@er6+ - sub #1,LEN(r2) - -word_aligned: - ; See if copying one word would make the first operand longword - ; aligned. Although this is only really worthwhile if it aligns - ; the second operand as well, it's no worse if doesn't, so it - ; hardly seems worth the overhead of a "band" check. - bld #1,r6l - bcc fast_copy - mov.w @er5+,@er6+ - sub #2,LEN(r2) - -fast_copy: - ; Set (e)r4 to the number of longwords to copy. - mov LEN(r2),LEN(r4) - shlr #2,LEN(r4) - -#ifdef __NORMAL_MODE__ - ; 16-bit pointers and size_ts: one movmd.l is enough. This code - ; is never reached with r4 == 0. - movmd.l - and.w #3,r2 -simple: - mov.w r2,r4 - beq quit - movmd.b -quit: - rts/l er4-er6 -#else - ; Skip the first iteration if the number of longwords is divisible - ; by 0x10000. - mov.w r4,r4 - beq fast_loop_next - - ; This loop copies r4 (!= 0) longwords the first time round and 65536 - ; longwords on each iteration after that. -fast_loop: - movmd.l -fast_loop_next: - sub.w #1,e4 - bhs fast_loop - - ; Mop up any left-over bytes. We could just fall through to the - ; simple code after the "and" but the version below is quicker - ; and only takes 10 more bytes. - and.w #3,r2 - beq quit - mov.w r2,r4 - movmd.b -quit: - rts/l er4-er6 - -simple: - ; Simple bytewise copy. We need to handle all lengths, including zero. - mov.w r2,r4 - beq simple_loop_next -simple_loop: - movmd.b -simple_loop_next: - sub.w #1,e2 - bhs simple_loop - rts/l er4-er6 -#endif - -#else - - .global _memcpy -_memcpy: -; MOVP @(2/4,r7),A0P ; dst -; MOVP @(4/8,r7),A1P ; src -; MOVP @(6/12,r7),A2P ; len - - MOVP A0P,A3P ; keep copy of final dst - ADDP A2P,A0P ; point to end of dst - CMPP A0P,A3P ; see if anything to do - beq quit - - ADDP A2P,A1P ; point to end of src - - ; lets see if we can do this in words - or A0L,A2L ; or in the dst address - or A3L,A2L ; or the length - or A1L,A2L ; or the src address - btst #0,A2L ; see if the lsb is zero - bne byteloop - -wordloop: -#ifdef __NORMAL_MODE__ - sub #2,A1P -#else - subs #2,A1P ; point to word -#endif - mov.w @A1P,A2 ; get word - mov.w A2,@-A0P ; save word - CMPP A0P,A3P ; at the front again ? - bne wordloop - rts - -byteloop: -#ifdef __NORMAL_MODE__ - sub #1,A1P -#else - subs #1,A1P ; point to byte -#endif - mov.b @A1P,A2L ; get byte - mov.b A2L,@-A0P ; save byte - CMPP A0P,A3P ; at the front again ? - bne byteloop - - ; return with A0 pointing to dst -quit: rts - -#endif diff --git a/lib/machine/h8300/memset.S b/lib/machine/h8300/memset.S deleted file mode 100644 index c92169c..0000000 --- a/lib/machine/h8300/memset.S +++ /dev/null @@ -1,102 +0,0 @@ -#include "setarch.h" - -#include "defines.h" - -#if defined (__H8300SX__) - - .global _memset -_memset: - ; Use er3 is a temporary since er0 must remain unchanged on exit. - mov.l er0,er3 - - ; Fill er1 with the byte to copy. - mov.b r1l,r1h - mov.w r1,e1 - - ; Account for any excess bytes and words that will be copied after - ; the main loop. r2 >= 0 if there is a longword to copy. - sub #4,LEN(r2) - blo longs_done - - ; Copy one byte if doing so will make er3 word-aligned. - ; This isn't needed for correctness but it makes the main loop - ; slightly faster. - bld #0,r3l - bcc word_aligned - mov.b r1l,@er3+ - sub #1,LEN(r2) - blo longs_done - -word_aligned: - ; Likewise one word for longword alignment. - bld #1,r3l - bcc long_copy - mov.w r1,@er3+ - sub #2,LEN(r2) - blo longs_done - -long_copy: - ; Copy longwords. - mov.l er1,@er3+ - sub #4,LEN(r2) - bhs long_copy - -longs_done: - ; At this point, we need to copy r2 & 3 bytes. Copy a word - ; if necessary. - bld #1,r2l - bcc words_done - mov.w r1,@er3+ - -words_done: - ; Copy a byte. - bld #0,r2l - bcc bytes_done - mov.b r1l,@er3+ - -bytes_done: - rts - -#else - -; A0P pointer to cursor -; A1P thing to copy - .global _memset - -_memset: - -; MOVP @(2/4,r7),A2P ; dst -; MOVP @(4/8,r7),A1 ; src thing -; MOVP @(6/12,r7),A3P ; len - - MOVP A2P,A2P - beq quit - - ; A3 points to the end of the area - MOVP A0P,A3P - ADDP A2P,A3P - - ; see if we can do it in words - ; by oring in the start of the buffer to the end address - - or A0L,A2L - btst #0,A2L - bne byteloop - - ; we can do it a word at a time - - mov.b A1L,A1H - -wordloop: - mov.w A1,@-A3P - CMPP A3P,A0P - bne wordloop -quit: rts - -byteloop: - mov.b A1L,@-A3P - CMPP A3P,A0P - bne byteloop - rts - -#endif diff --git a/lib/machine/h8300/reg_memcpy.S b/lib/machine/h8300/reg_memcpy.S deleted file mode 100644 index 5402fc4..0000000 --- a/lib/machine/h8300/reg_memcpy.S +++ /dev/null @@ -1,30 +0,0 @@ -#include "setarch.h" - -#include "defines.h" - - ; dst A0 - ; src A1 - ; len A2 - .global ___reg_memcpy -___reg_memcpy: - - MOVP A0P,A3P ; keep copy of result - ADDP A2P,A0P ; point to end of dst - ADDP A2P,A1P ; point to end of src - CMPP A0P,A3P ; see if anything to do - beq quit - -loop: -#ifdef __NORMAL_MODE__ - sub #1,A1P ; point to byte -#else - subs #1,A1P ; point to byte -#endif - mov.b @A1P,A2L ; get byte - mov.b A2L,@-A0P ; save byte - CMPP A0P,A3P ; at the front again ? - bne loop - - ; return with A0 pointing to dst -quit: rts - diff --git a/lib/machine/h8300/reg_memset.S b/lib/machine/h8300/reg_memset.S deleted file mode 100644 index ce4f5ca..0000000 --- a/lib/machine/h8300/reg_memset.S +++ /dev/null @@ -1,30 +0,0 @@ -#include "setarch.h" - -#include "defines.h" - - ; dst A0 - ; src A1 - ; len A2 - - .global ___reg_memset -___reg_memset: - MOVP A0P,A3P - MOVP A2P,A2P - beq noset - -memloop: - mov.b A1L,@A0P -#ifdef __NORMAL_MODE__ - add #1,A0P - sub #1,A2P -#else - adds #1,A0P - subs #1,A2P -#endif - MOVP A2P,A2P - bne memloop - -noset: - MOVP A3P,A0P - rts - diff --git a/lib/machine/h8300/setarch.h b/lib/machine/h8300/setarch.h deleted file mode 100644 index 56bdaaf..0000000 --- a/lib/machine/h8300/setarch.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifdef __H8300H__ -#ifdef __NORMAL_MODE__ - .h8300hn -#else - .h8300h -#endif -#endif -#ifdef __H8300S__ -#ifdef __NORMAL_MODE__ - .h8300sn -#else - .h8300s -#endif -#endif -#ifdef __H8300SX__ -#ifdef __NORMAL_MODE__ - .h8300sxn -#else - .h8300sx -#endif -#endif diff --git a/lib/machine/h8300/setjmp.S b/lib/machine/h8300/setjmp.S deleted file mode 100644 index cb79e49..0000000 --- a/lib/machine/h8300/setjmp.S +++ /dev/null @@ -1,68 +0,0 @@ -#include "setarch.h" - - .file "setjmp.S" - - .section .text - .align 2 - .global _setjmp -_setjmp: -#if defined(__H8300SX__) - mov.l er7,@er0+ - mov.l er6,@er0+ - mov.l er5,@er0+ - mov.l er4,@er0+ - mov.l @sp,@er0 - sub.l er0,er0 -#elif defined(__H8300H__) || defined(__H8300S__) - mov.l er7,@er0 - mov.l er6,@(4,er0) - mov.l er5,@(8,er0) - mov.l er4,@(12,er0) - mov.l @sp,er1 - mov.l er1,@(16,er0) - sub.l er0,er0 -#else - mov.w r7,@r0 - mov.w r6,@(2,r0) - mov.w r5,@(4,r0) - mov.w r4,@(6,r0) - mov.w @sp,r1 - mov.w r1,@(8,r0) - sub.w r0,r0 -#endif - rts - - .global _longjmp -_longjmp: -#if defined(__H8300H__) || defined (__H8300S__) || defined (__H8300SX__) - mov.l @er0+,er7 - mov.l @er0+,er6 - mov.l @er0+,er5 - mov.l @er0+,er4 -#if defined(__H8300SX__) - mov.l @er0,@sp -#else - mov.l @er0,er2 - mov.l er2,@sp -#endif -#if (__INT_MAX__ <= 32767) - mov.w r1,r0 -#else - mov.l er1,er0 -#endif - bne .L1 - sub er0,er0 - adds #1,er0 -#else - mov.w @r0+,r7 - mov.w @r0+,r6 - mov.w @r0+,r5 - mov.w @r0+,r4 - mov.w @r0,r2 - mov.w r2,@sp - mov.w r1,r0 - bne .L1 - mov.w #1,r0 -#endif -.L1: - rts diff --git a/lib/machine/h8300/strcmp.S b/lib/machine/h8300/strcmp.S deleted file mode 100644 index c5d7094..0000000 --- a/lib/machine/h8300/strcmp.S +++ /dev/null @@ -1,60 +0,0 @@ -#include "setarch.h" - -#include "defines.h" - -#if defined (__H8300SX__) - .global _strcmp -_strcmp: - mov.l er0,er2 -loop: - mov.b @er2+,r0l - beq eos - sub.b @er1+,r0l - beq loop - exts.l #2,er0 - rts -eos: - sub.b @er1,r0l - exts.l #2,er0 - rts -#else - .section .text - .align 2 - .global _strcmp -_strcmp: - MOVP A0P,A2P - MOVP A1P,A3P -.L5: - mov.b @A2P+,A1L - beq .L3 - mov.b @A3P+,A0L - cmp.b A0L,A1L - beq .L5 -#ifdef __NORMAL_MODE__ - sub #1,A3P -#else - subs #1,A3P -#endif -.L3: - mov.b @(-1,A2P),A0L - mov.b @A3P,A1L - sub.b A1L,A0L - ; We have to sign extend the result to 32bits just in case - ; we are using 32bit integers. -#ifdef __H8300H__ - exts.w r0 - exts.l er0 -#else -#ifdef __H8300S__ - exts.w r0 - exts.l er0 -#else - bld #7,r0l - subx r0h,r0h - subx r1l,r1l - subx r1h,r1h -#endif -#endif - rts - .end -#endif diff --git a/lib/machine/h8500/Makefile.inc b/lib/machine/h8500/Makefile.inc deleted file mode 100644 index b437158..0000000 --- a/lib/machine/h8500/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/divsi3.c %D%/mulsi3.c %D%/divhi3.S %D%/shifts.c %D%/cmpsi.c %D%/psi.S %D%/setjmp.S diff --git a/lib/machine/h8500/cmpsi.c b/lib/machine/h8500/cmpsi.c deleted file mode 100644 index 3357343..0000000 --- a/lib/machine/h8500/cmpsi.c +++ /dev/null @@ -1,126 +0,0 @@ - -union u -{ - struct - { - short int msw; - unsigned short lsw; - } w; - long l; -}; - -union us -{ - struct - { - short int msw; - unsigned short lsw; - } w; - long l; -}; - -int -__cmpsi2(long arga, - short int msw_b, unsigned short int lsw_b) -{ - union u u; - u.l = arga; - - if (u.w.msw != msw_b) - { - if (u.w.msw < msw_b) return 0; - return 2; - } - if (u.w.lsw != lsw_b) - { - if (u.w.lsw < lsw_b) return 0; - return 2; - } - return 1; -} - - -int -__ucmpsi2(unsigned long arga, - unsigned short int msw_b, unsigned short int lsw_b) -{ - union us u; - u.l = arga; - - if (u.w.msw != msw_b) - { - if (u.w.msw < msw_b) return 0; - return 2; - } - if (u.w.lsw != lsw_b) - { - if (u.w.lsw < lsw_b) return 0; - return 2; - } - return 1; -} - - -union pu -{ - struct { - char ignore; - signed char msb; - unsigned short lsw; - } w; - long l; -}; - -union pun -{ - struct { - char ignore; - unsigned char msb; - unsigned short lsw; - } w; - long l; -}; - - -int -__cmppsi2(long arga, long argb) -{ - union pu a; - union pu b; - a.l = arga; - b.l = argb; - - if (a.w.msb != b.w.msb) - { - if (a.w.msb < b.w.msb) return 0; - return 2; - } - if (a.w.lsw != b.w.lsw) - { - if (a.w.lsw < b.w.lsw) return 0; - return 2; - } - return 1; -} - - -int -__ucmppsi2(long arga, long argb) -{ - union pun a; - union pun b; - a.l = arga; - b.l = argb; - - if (a.w.msb != b.w.msb) - { - if (a.w.msb < b.w.msb) return 0; - return 2; - } - if (a.w.lsw != b.w.lsw) - { - if (a.w.lsw < b.w.lsw) return 0; - return 2; - } - return 1; -} diff --git a/lib/machine/h8500/divhi3.S b/lib/machine/h8500/divhi3.S deleted file mode 100644 index ee31351..0000000 --- a/lib/machine/h8500/divhi3.S +++ /dev/null @@ -1,54 +0,0 @@ - .title "H8/500 DIVIDE" -!! 2 byte integer Divide code for the H8/500 -!! -!! Steve Chamberlain -!! sac@cygnus.com -!! -!! - -!! args in r1 and r4, result in r0/r1 - -#if __CODE__==32 -#define RET prts -#else -#define RET rts -#endif - .global __divmodhi4 - - -__divmodhi4: - clr.w r0 - tst.w r1 ! neg arg1 - bpl PU - - - neg.w r1 -NU: tst.w r4 - bmi NN - -NP: divxu.w r4,r0 - neg.w r0 - neg.w r1 - RET - -NN: neg.w r4 - divxu.w r4,r0 - neg.w r0 ! get rem sign right - RET - - -PU: - tst.w r4 - bpl PP - - -PN: neg.w r4 - divxu.w r4,r0 - neg.w r1 - RET - -PP: divxu.w r4,r0 ! rem in r0, q in r1 - RET - - - diff --git a/lib/machine/h8500/divsi3.c b/lib/machine/h8500/divsi3.c deleted file mode 100644 index e19855d..0000000 --- a/lib/machine/h8500/divsi3.c +++ /dev/null @@ -1,134 +0,0 @@ - -#define divnorm(num, den, sign) \ -{ \ - if (num < 0) \ - { \ - num = -num; \ - sign = 1; \ - } \ - else \ - { \ - sign = 0; \ - } \ - \ - if (den < 0) \ - { \ - den = - den; \ - sign = 1 - sign; \ - } \ -} - - - - - -unsigned long -divmodsi4(int modwanted, unsigned long num, unsigned long den) -{ - long int bit = 1; - long int res = 0; - long prevden; - while (den < num && bit && !(den & (1L<<31))) - { - den <<=1; - bit <<=1; - } - while (bit) - { - if (num >= den) - { - num -= den; - res |= bit; - } - bit >>=1; - den >>=1; - } - if (modwanted) return num; - return res; -} - - -#define exitdiv(sign, res) if (sign) { res = - res;} return res; - -long -__modsi3 (long numerator, long denominator) -{ - int sign = 0; - long dividend; - long modul; - - - if (numerator < 0) - { - numerator = -numerator; - sign = 1; - } - if (denominator < 0) - { - denominator = -denominator; - } - - modul = divmodsi4 (1, numerator, denominator); - if (sign) - return - modul; - return modul; -} - - -long -__divsi3 (long numerator, long denominator) -{ - int sign; - long dividend; - long modul; - divnorm (numerator, denominator, sign); - - dividend = divmodsi4 (0, numerator, denominator); - exitdiv (sign, dividend); -} - -long -__umodsi3 (unsigned long numerator, unsigned long denominator) -{ - long dividend; - long modul; - -modul= divmodsi4 (1, numerator, denominator); - return modul; -} - -long -__udivsi3 (unsigned long numerator, unsigned long denominator) -{ - int sign; - long dividend; - long modul; - dividend = divmodsi4 (0, numerator, denominator); - return dividend; -} - - - - - - -#ifdef TEST - - - -main () -{ - long int i, j, k, m; - for (i = -10000; i < 10000; i += 8) - { - for (j = -10000; j < 10000; j += 11) - { - k = i / j; - m = __divsi3 (i, j); - if (k != m) - printf ("fail %d %d %d %d\n", i, j, k, m); - } - } -} - -#endif diff --git a/lib/machine/h8500/mulhi3.c b/lib/machine/h8500/mulhi3.c deleted file mode 100644 index 869e131..0000000 --- a/lib/machine/h8500/mulhi3.c +++ /dev/null @@ -1,21 +0,0 @@ - - -short -__mulhi3(short a, short b) -{ - int r; - - r = 0; - while (a) - { - if (a & 1) - { - r += b; - a>>=1; - b<<=1; - } - } - return r; -} - - diff --git a/lib/machine/h8500/mulsi3.c b/lib/machine/h8500/mulsi3.c deleted file mode 100644 index a923e8d..0000000 --- a/lib/machine/h8500/mulsi3.c +++ /dev/null @@ -1,72 +0,0 @@ - -typedef union { - struct { - unsigned int msw; - unsigned int lsw; -} s; - long v; -} u; - -long __mulsi3(u a, u b) -{ - int s; - long pp1; - long pp2; - long r; - - if (a.s.msw == 0 && - b.s.msw == 0) - { - return (long)a.s.lsw * b.s.lsw; - } - - s = 0; - if (a.v < 0) - { - s = 1; - a.v = - a.v; - } - if (b.v < 0) - { - s = 1-s; - b.v = - b.v; - } - - pp1 = (long)a.s.lsw * b.s.lsw ; - pp2 = (long)a.s.lsw * b.s.msw + (long)a.s.msw * b.s.lsw; - - pp1 += pp2 << 16; - - if (s) - { - pp1 = -pp1; - } - return pp1; -} -long __mulpsi3(long a, long b) -{ - return a*b; -} - - -short -__mulhi3(short a, short b) -{ - int r; - - r = 0; - while (a) - { - if (a & 1) - { - r += b; - - } - b<<=1; - a>>=1; - - } - return r; -} - - diff --git a/lib/machine/h8500/negsi2.c b/lib/machine/h8500/negsi2.c deleted file mode 100644 index c5b31b1..0000000 --- a/lib/machine/h8500/negsi2.c +++ /dev/null @@ -1,7 +0,0 @@ - - -long -__negsi2(long x) -{ - return ~x+1; -} diff --git a/lib/machine/h8500/psi.S b/lib/machine/h8500/psi.S deleted file mode 100644 index 47c8183..0000000 --- a/lib/machine/h8500/psi.S +++ /dev/null @@ -1,136 +0,0 @@ -/* convert psi to si inplace - -Note that `fp' below isn't a segment register. -It's r6, the frame pointer. */ - -#if __CODE__==32 -#define RET prts -#else -#define RET rts -#endif - -#define EXTPSISI_SN(r_msw,r_lsw,sp) ; \ - .global __extpsisi##r_msw ; \ -__extpsisi##r_msw: ; \ - mov r_msw,r_lsw ; \ - stc sp,r_msw ; \ - RET - - EXTPSISI_SN(r2,r3,dp) - EXTPSISI_SN(r4,r5,ep) - - -#define ADDPSI_AR_RN(sr,an,r_msw,r_lsw) \ - .global __addpsi##an##r_msw ; \ -__addpsi##an##r_msw: ; \ - stc sr,@-sp ; \ - add an,r_lsw ; \ - addx @sp+,r_msw ; \ - RET - - ADDPSI_AR_RN(dp,r2,r0,r1) - ADDPSI_AR_RN(dp,r2,r3,r4) - ADDPSI_AR_RN(ep,r4,r0,r1) - ADDPSI_AR_RN(ep,r4,r1,r2) - ADDPSI_AR_RN(ep,r4,r3,r4) - ADDPSI_AR_RN(ep,r4,r5,fp) - - ADDPSI_AR_RN(tp,fp,r0,r1) - - -#define ADDPSI_RN_AR(r_msw,r_lsw,sr,an,t_msw,t_lsw) \ - .global __addpsi##r_msw##an ; \ -__addpsi##r_msw##an: ; \ - mov.w t_msw,@-sp ; \ - mov.w t_lsw,@-sp ; \ - stc sr,t_msw ; \ - mov an,t_lsw ; \ - add r_lsw,t_lsw ; \ - addx r_msw,t_msw ; \ - ldc t_msw,sr ; \ - mov.w t_lsw,an ; \ - mov.w @sp+,t_lsw ; \ - mov.w @sp+,t_msw ; \ - RET - - ADDPSI_RN_AR(r0,r1,dp,r2,r4,r5) - ADDPSI_RN_AR(r0,r1,ep,r4,r2,r3) - - - -#define EXTPSIHI_RN_RN(rm,r_msw,r_lsw) ; \ - .global __extpsihi##rm##r_msw ; \ -__extpsihi##rm##r_msw: ; \ - mov rm,r_lsw ; \ - clr.w r_msw ; \ - RET - - EXTPSIHI_RN_RN(r3,r0,r1) - EXTPSIHI_RN_RN(r4,r0,r1) - EXTPSIHI_RN_RN(r5,r0,r1) - EXTPSIHI_RN_RN(r2,r0,r1) - - - -/* ifdefed out, because gcc doesn't like the # character in the above - macro. The macro expands into an assembly languange comment anyways, - so it serves no useful purpose. */ -#if 0 -#define EXTPSIHI_RN_SN(rm,r_msw,r_lsw) ; \ - .global __extpsihi##rm##r_lsw ; \ -__extpsihi##rm##r_lsw: ; \ - mov rm,r_lsw ; \ - ldc \#0,r_msw ; \ - RET - - EXTPSIHI_RN_SN(r0,dp,r2) - EXTPSIHI_RN_SN(r0,ep,r4) - EXTPSIHI_RN_SN(r1,dp,r2) - EXTPSIHI_RN_SN(r1,ep,r4) - EXTPSIHI_RN_SN(r3,dp,r2) - EXTPSIHI_RN_SN(r3,ep,r4) - EXTPSIHI_RN_SN(r5,dp,r2) - EXTPSIHI_RN_SN(r5,ep,r4) - EXTPSIHI_RN_SN(r2,ep,r4) -#endif - - -#define EXTPSISI_RN(r_msw,r_lsw) ; \ - .global __extpsisi##r_msw ; \ -__extpsisi##r_msw: ; \ - RET - - EXTPSISI_RN(r0,r1) - - - -#define ADDPSI_SA_SB(sa,ra,sb,rb) ; \ - .global __addpsi##ra##rb ; \ -__addpsi##ra##rb: ; \ - mov.w r0,@-sp ; \ - mov.w r1,@-sp ; \ - stc sa,r0 ; \ - stc sb,r1 ; \ - add.w ra,rb ; \ - addx r0,r1 ; \ - ldc r1,sb ; \ - mov.w @sp+,r1 ; \ - mov.w @sp+,r0 ; \ - RET - - - ADDPSI_SA_SB(dp,r2,ep,r4) - ADDPSI_SA_SB(ep,r4,dp,r2) - ADDPSI_SA_SB(tp,fp,dp,r2) - ADDPSI_SA_SB(tp,fp,ep,r4) - - ADDPSI_SA_SB(dp,r2,dp,r2) - - - - .global __addpsir0r0 -__addpsir0r0: - add.w r1,r1 - addx r0,r0 - RET - diff --git a/lib/machine/h8500/setjmp.S b/lib/machine/h8500/setjmp.S deleted file mode 100644 index 4b25fc0..0000000 --- a/lib/machine/h8500/setjmp.S +++ /dev/null @@ -1,27 +0,0 @@ -! - .file "setjmp.S" - .section .text - - .global _setjmp -_setjmp: - mov.w r7,@r0+ - mov.w r6,@r0+ - mov.w r5,@r0+ - mov.w @sp,r1 - mov.w r1,@r0 - clr.w r0 - rts - - .global _longjmp -_longjmp: - mov.w @r0+,r7 - mov.w @r0+,r6 - mov.w @r0+,r5 - mov.w @r0,r2 - mov.w r2,@sp - mov.w r1,r0 - tst.w r0 - bne .L1 - mov.w #1,r0 -.L1: - rts diff --git a/lib/machine/h8500/shifts.c b/lib/machine/h8500/shifts.c deleted file mode 100644 index 5b81069..0000000 --- a/lib/machine/h8500/shifts.c +++ /dev/null @@ -1,45 +0,0 @@ - - -int __ashrhi3(int a,int b) -{ - return a>>b; -} - -int __ashlhi3(int a,int b) -{ - return a<>b; -} - - - - -long __ashrsi3(long a, int b) -{ - return a>>b; -} - -long __ashlsi3(long a,int b) -{ - return a<>b; -} - diff --git a/lib/machine/hppa/DEFS.h b/lib/machine/hppa/DEFS.h deleted file mode 100644 index 12fcd8e..0000000 --- a/lib/machine/hppa/DEFS.h +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include "pcc_prefix.s" - -#define BLANK -#define BANNER(str) BLANK .VERSION str -#define ENTRY(Name) BLANK M_ENTRY (Name,PROF_/**/Name) -#define ENTRYC(Name) BLANK M_ENTRYC(Name,PROF_/**/Name) -#define EXIT(Name) BLANK M_EXIT (Name,PROF_/**/Name) -#define EXITC(Name) BLANK M_EXITC (Name,PROF_/**/Name) - -#if 0 -#define TEXT_SEGMENT \ - .SPACE $TEXT$ !\ - .SUBSPA $CODE$ -#define RO_SEGMENT \ - .SPACE $TEXT$ !\ - .SUBSPA $lit$ -#define DATA_SEGMENT \ - .SPACE $PRIVATE$ !\ - .SUBSPA $data$ -#define BSS_SEGMENT \ - .SPACE $PRIVATE$ !\ - .SUBSPA $bss$ -#else -#define TEXT_SEGMENT .text -#define RO_SEGMENT .rodata -#define DATA_SEGMENT .data -#define BSS_SEGMENT .bss -#endif - - - - -#ifdef PROF - -; -; All four argument registers are saved into caller save registers -; and restored after the call to _mcount. This is possible because -; the mcount routine does not modify them, so we can. Mcount takes -; 3 arguments; the first argument is the incoming 'rp', the second -; is the starting address of the profiled routine, and the third is -; the address of the PROF label (which is where mcount stores the -; profile data). -; -#define M_ENTRY(name,prof) \ - TEXT_SEGMENT !\ - .label name !\ - .PROC !\ - .CALLINFO CALLER,SAVE_RP !\ - .ENTRY !\ - stw rp,-20(sp) !\ - ldo 48(sp),sp !\ - or arg0,r0,r19 !\ - or arg1,r0,r20 !\ - or arg2,r0,r21 !\ - or arg3,r0,r22 !\ - or rp,r0,arg0 !\ - ldil L%name,r1 !\ - ldo R%name(r1),arg1 !\ - addil L%prof-$global$,dp !\ - bl _mcount,rp !\ - ldo R%prof-$global$(r1),arg2 !\ - ldw -68(sp),rp !\ - ldo -48(sp),sp !\ - or r19,r0,arg0 !\ - or r20,r0,arg1 !\ - or r21,r0,arg2 !\ - or r22,r0,arg3 !\ - - -#define M_ENTRYC(name,prof) \ - TEXT_SEGMENT !\ - .label name !\ - .PROC !\ - .CALLINFO CALLER,SAVE_RP !\ - .ENTRY !\ - stw rp,-20(sp) !\ - ldo 128(sp),sp !\ - or arg0,r0,r19 !\ - or arg1,r0,r20 !\ - or arg2,r0,r21 !\ - or arg3,r0,r22 !\ - or rp,r0,arg0 !\ - ldil L%name,r1 !\ - ldo R%name(r1),arg1 !\ - addil L%prof-$global$,dp !\ - bl _mcount,rp !\ - ldo R%prof-$global$(r1),arg2 !\ - ldw -148(sp),rp !\ - or r19,r0,arg0 !\ - or r20,r0,arg1 !\ - or r21,r0,arg2 !\ - or r22,r0,arg3 !\ - -; -; The HPUX profiler uses a word for each entrypoint to store the profiling -; information. The setup code passes the address to the _mcount routine. -; The EXIT macro defines a label (PROF_foo), and a word of storage. -; -#define M_EXIT(name,prof) \ - bv,n r0(rp) !\ - .EXIT !\ - .PROCEND !\ - .EXPORT name,ENTRY !\ - DATA_SEGMENT !\ - .label prof !\ - .WORD 0 !\ - .IMPORT $global$,DATA !\ - .IMPORT _mcount,CODE - -#define M_EXITC(name,prof) \ - bv r0(rp) !\ - ldo -128(sp),sp !\ - .EXIT !\ - .PROCEND !\ - .EXPORT name,ENTRY !\ - DATA_SEGMENT !\ - .label prof !\ - .WORD 0 !\ - .IMPORT $global$,DATA !\ - .IMPORT _mcount,CODE - -#else /* NOT profiling */ - -#define M_ENTRY(name,prof) \ - TEXT_SEGMENT !\ - .label name !\ - .PROC !\ - .CALLINFO !\ - .ENTRY - -#define M_ENTRYC(name,prof) \ - TEXT_SEGMENT !\ - .label name !\ - .PROC !\ - .CALLINFO CALLER,SAVE_RP !\ - .ENTRY !\ - stw rp,-20(sp) !\ - ldo 128(sp),sp - -#define M_EXIT(name,prof) \ - bv,n r0(rp) !\ - .EXIT !\ - .PROCEND !\ - .EXPORT name,ENTRY - -#define M_EXITC(name,prof) \ - ldw -148(sp),rp !\ - bv r0(rp) !\ - ldo -128(sp),sp !\ - .EXIT !\ - .PROCEND !\ - .EXPORT name,ENTRY - -#define ENTRY(Name) BLANK M_ENTRY (Name,PROF_/**/Name) -#define ENTRYC(Name) BLANK M_ENTRYC(Name,PROF_/**/Name) -#define EXIT(Name) BLANK M_EXIT (Name,PROF_/**/Name) -#define EXITC(Name) BLANK M_EXITC (Name,PROF_/**/Name) - - -#endif - diff --git a/lib/machine/hppa/Makefile.inc b/lib/machine/hppa/Makefile.inc deleted file mode 100644 index c3d2da6..0000000 --- a/lib/machine/hppa/Makefile.inc +++ /dev/null @@ -1,5 +0,0 @@ -libc_a_SOURCES += \ - %D%/memchr.S %D%/memcmp.S %D%/memcpy.S %D%/memset.S \ - %D%/setjmp.S \ - %D%/strcat.S %D%/strcmp.S \ - %D%/strcpy.S %D%/strlen.S %D%/strncat.S %D%/strncmp.S %D%/strncpy.S diff --git a/lib/machine/hppa/memchr.S b/lib/machine/hppa/memchr.S deleted file mode 100644 index 1cca3e5..0000000 --- a/lib/machine/hppa/memchr.S +++ /dev/null @@ -1,48 +0,0 @@ -/* - * (c) Copyright 1986 HEWLETT-PACKARD COMPANY - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Hewlett-Packard Company not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Hewlett-Packard Company makes no representations about the - * suitability of this software for any purpose. - */ - -/* SPECTRUM_ID: @(#)memchr.s 37.4 86/04/23 */ -/* - * memchr(s, c, n) - * - * returns pointer to first occurrence of char c - * in first n characters of memory area s, - * or null if c does not occur. - */ - -#include "DEFS.h" - -#define FROM arg0 -#define CHAR arg1 -#define COUNT arg2 -#define TEMP1 r19 - -ENTRY(memchr) - comb,<= COUNT,r0,memchrexit /* return if count is zero */ - copy r0,ret0 /* null if c not found in n chars */ - depi 0,23,24,CHAR /* make char unsigned */ - - ldbs,ma 1(FROM),TEMP1 -memchrloop: - comb,=,n TEMP1,CHAR,memchrequal - addib,<> -1,COUNT,memchrloop - ldbs,ma 1(FROM),TEMP1 - b,n memchrexit - -memchrequal: - ldo -1(FROM),ret0 - -memchrexit: -EXIT(memchr) diff --git a/lib/machine/hppa/memcmp.S b/lib/machine/hppa/memcmp.S deleted file mode 100644 index babb207..0000000 --- a/lib/machine/hppa/memcmp.S +++ /dev/null @@ -1,183 +0,0 @@ -/* - * (c) Copyright 1986 HEWLETT-PACKARD COMPANY - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Hewlett-Packard Company not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Hewlett-Packard Company makes no representations about the - * suitability of this software for any purpose. - */ - -/* memcmp(s1, s2, n) */ -/* returns integer: < 0 iff s1 lexicographically less than s2 */ -/* > 0 iff s1 lexicographically greater than s2 */ -/* = 0 iff s1 lexicographically equal to s2 */ -/* = 0 iff s1 lexicographically equal to s2 */ -/* quit after n charachters */ -#ifndef _NAMESPACE_CLEAN -#define NOSECDEF /* prevents _memcmp from becoming primary entry */ -#endif - -#include "DEFS.h" - -#define s1 26 -#define s2 25 -#define tmp1 19 -#define s2word 20 -#define tmp3 21 -#define tmp7 22 -#define s1word 29 -#define save 1 -#define tmp6 23 -#define tmp5 28 -#define count 24 - -ENTRY(memcmp) - combt,<,n r0,count,search /*N <= 0 yields equality */ - b done /**/ - copy 0,ret0 /*return 0 (DELAY SLOT) */ -search: combf,=,n s1,s2,findout /*s1 != s2? */ - b done - copy 0,ret0 /*return 0 (delay slot) */ -findout: - comibf,=,n 0,s1,checks1 /*s1 == NULL? */ - ldbs 0(0,s2),ret0 /**/ - b done /*quit */ - sub 0,ret0,ret0 /*ret0 <- -*s2 */ -checks1: - comibf,=,n 0,s2,checkitout /*s2 == NULL? */ - b done /* quit */ - ldbs 0(0,s1),28 /* return *s1 */ - -checkitout: - extru s2,31,2,tmp1 /* Extract the low two bits of the s2. */ - extru s1,31,2,tmp5 /* Extract the low two bits of the s1 */ - sub,= tmp5,tmp1,tmp3 /* Are s1 & s2 aligned with each other? */ - b not_aligned /* It's more complicated (not_aligned) */ - dep 0,31,2,s1 /* Compute word address of s1 (DELAY SLOT) */ - dep 0,31,2,s2 /* Compute word address of s2 */ - ldwm 4(0,s1),s1word /* get next s1 word s1+=4 */ - combt,= tmp5,r0,skipmask /* skip masking, if we can */ - ldwm 4(0,s2),s2word /* get next s2 word s2+=4 (DELAY SLOT) */ - add tmp5,count,count /* bump count by the number of bytes */ - /* we are going to mask */ - sh3add tmp5,r0,save /* save now has number of bits to mask */ - mtctl save,11 - zvdepi -2,32,save /* load save with proper mask */ - or save,s1word,s1word /* mask s1word (s1) */ - or save,s2word,s2word /* mask s2word (s2) */ - - -skipmask: - combt,=,n s1word,s2word,checkN /* We may be done */ - -checkbyte: - extru s1word,7,8,tmp3 /* get first byte (character) */ -ckbyte2: extru s2word,7,8,tmp7 /* get first byte (character) */ - combf,= tmp3,tmp7,done /* quit if first byte is not equal */ - sub tmp3,tmp7,ret0 /* return difference (delay slot) */ - addibt,<=,n -1,count,done /* have we checked N chars? ret0 == 0 */ - extru s1word,15,8,tmp3 /* get second byte (character) */ - extru s2word,15,8,tmp7 /* get second byte (character) */ - combf,= tmp3,tmp7,done /* quit if second byte is not equal */ - sub tmp3,tmp7,ret0 /* return difference (delay slot) */ - addibt,<=,n -1,count,done /* have we checked N chars? */ - extru s1word,23,8,tmp3 /* get third byte (character) */ - extru s2word,23,8,tmp7 /* get third byte (character) */ - combf,= tmp3,tmp7,done /* done if third byte is not equal */ - sub tmp3,tmp7,ret0 /* return difference (delay slot) */ - addibt,<=,n -1,count,done /* have we checked N chars? */ - extru s1word,31,8,tmp3 /* get last byte (character) */ - extru s2word,31,8,tmp7 /* get last byte (character) */ - b done /* if we reach this point we know that */ - sub tmp3,tmp7,ret0 /* the last character in the word is */ - /* where the difference is, so return */ - /* the difference and we're outta here */ - - -checkN: - addibt,<=,n -4,count,zero /* have we checked N chars? */ - ldwm 4(0,s2),s2word /* get next s2 word s2+=4 */ - b skipmask /* keep checking */ - ldwm 4(0,s1),s1word /* get next s1 word s1+=4 */ - - -not_aligned: - dep r0,31,2,s2 /* Compute word address of s2 */ - combt,<,n r0,tmp3,shifts1 /* Do we shift s1 or s2 */ - sh3add tmp3,r0,tmp3 /* eight bits per byte so mul by 8 */ - ldwm 4(0,s1),s1word /* get first word of s1 */ - ldwm 4(0,s2),s2word /* get first word or s2 */ - combt,=,n r0,tmp5,masks2 /* Do we need to mask beginning of s1 */ - add tmp5,count,count /* bump count by the number of bytes */ - /* we are going to mask */ - sh3add tmp5,r0,save /* save now has number of bits to mask */ - mtctl save,11 - zvdepi -2,32,save /* load save with proper mask */ - or save,s1word,s1word /**/ -masks2: sh3add tmp1,r0,save /* save now has number of bits to mask */ - mtctl save,11 - zvdepi -2,32,save /* load save with proper mask */ - or save,s2word,s2word /**/ - subi 4,tmp1,tmp1 /* tmp1 now has the number of byte that */ - /* are valid in s2word before the vshd */ - mtctl tmp3,11 /* Move shift amount to CR11 */ -more: combt,<=,n count,tmp1,chunk1 /* Can we do the vshd? */ - ldwm 4(0,s2),tmp7 /* load second word to enable us to shift */ - vshd s2word,tmp7,s2word /**/ - combf,=,n s1word,s2word,ckbyte2 /**/ - extru s1word,7,8,tmp3 /* get first byte (DELAY SLOT) */ - addibt,<=,n -4,count,zero /* have we checked N chars? */ - copy tmp7,s2word /**/ - b more /* keep checking */ - ldwm 4(0,s1),s1word /* get next s1 (DELAY SLOT) */ - -chunk1: - vshd s2word,r0,s2word /* do an arithmetic shift left to position data */ - b ckbyte2 /**/ - extru s1word,7,8,tmp3 /**/ - - -shifts1: - sh3add tmp3,r0,tmp3 /* eight bits per byte so mul by 8 */ - sub r0,tmp3,tmp3 /* Get negative value for left shift */ - dep r0,31,2,s2 /* Compute word address of s2 */ - ldwm 4(0,s2),s2word /* get first word of s2 */ - ldwm 4(0,s1),s1word /* get first word or s1 */ - combt,=,n r0,tmp1,masks1 /*Do we need to mask beginning of s2 */ - add tmp1,count,count /*bump count by the number of bytes */ - /* we are going to mask */ - sh3add tmp1,r0,save /*save now has number of bits to mask */ - mtctl save,11 - zvdepi -2,32,save /*load save with proper mask */ - or save,s2word,s2word /**/ -masks1: sh3add tmp5,r0,save /*save now has number of bits to mask */ - mtctl save,11 - zvdepi -2,32,save /*load save with proper mask */ - or save,s1word,s1word /**/ - subi 4,tmp5,tmp5 /*tmp5 now has the number of byte that */ - /*are valid in s1word before the vshd */ - mtctl tmp3,11 /*Move shift amount to CR11 */ -more1: combt,<=,n count,tmp5,chunk2 /*Can we do the vshd? */ - ldwm 4(0,s1),tmp7 /*load second word to enable us to shift */ - vshd s1word,tmp7,s1word /**/ - combf,=,n s2word,s1word,ckbyte2 /**/ - extru s1word,7,8,tmp3 /*get first byte (DELAY SLOT) */ - addibt,<=,n -4,count,zero /*have we checked N chars? */ - copy tmp7,s1word /**/ - b more1 /*keep checking */ - ldwm 4(0,s2),s2word /*get next s2 (DELAY SLOT) */ - -chunk2: - vshd s1word,r0,s1word /**/ - b ckbyte2 /**/ - extru s1word,7,8,tmp3 /**/ - -zero: copy r0,ret0 -done: -EXIT(memcmp) diff --git a/lib/machine/hppa/memcpy.S b/lib/machine/hppa/memcpy.S deleted file mode 100644 index 713c1c1..0000000 --- a/lib/machine/hppa/memcpy.S +++ /dev/null @@ -1,146 +0,0 @@ -/* - * (c) Copyright 1986 HEWLETT-PACKARD COMPANY - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Hewlett-Packard Company not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Hewlett-Packard Company makes no representations about the - * suitability of this software for any purpose. - */ - -/* HPUX_ID: @(#) $Revision$ */ -/* - * memcpy(s1, s2, n) - * - * Copy n characters from s2 to s1; returns s1. - */ - -#define d_addr arg0 -#define s_addr arg1 -#define count arg2 -#define tmp5 arg3 -#define tmp1 r19 -#define tmp2 r20 -#define tmp3 r21 -#define tmp4 r22 -#define tmp6 r31 - -#include "DEFS.h" - -ENTRY(memcpy) - comib,>= 5,count,byteloop /* If count is <= 6 don't get fancy.*/ - movb,=,n d_addr,ret0,done /* The return value is defined to be the value of d_addr. DELAY SLOT */ - /* if d_addr is null then exit */ - extru s_addr,31,2,tmp1 /* Extract the low two bits of the source address. */ - extru d_addr,31,2,tmp2 /* Extract the low two bits of the destination address. */ - add count,tmp2,count /* pre increment the count to adjust for alignment of s1 */ - comb,<> tmp2,tmp1,not_aligned /* see if s1 is aligned w.r.t. s2. */ - dep 0,31,2,s_addr /* Compute the word address of the source. DELAY SLOT. */ - -/* aligned */ - -/* We will now begin the 16 byte at a time word move if count >= 16 ! */ -/* Else we will branch to the 4 byte-at-a time word move ! */ - - addibt,<,n -16,count,chekchunk /* If count < 16 then we can't move 16 byte chunks ! */ - /* actually we can legally move 13 or more bytes on the first loop. */ - /* These loads and stores are done so as to prevent processor interlock. */ -chunks: - ldwm 16(0,s_addr),tmp1 /* tmp1 = *s_addr s_addr += 16 */ - ldw -12(0,s_addr),tmp2 /* tmp2 = 2nd word */ - ldw -8(0,s_addr),tmp3 /* tmp3 = 3rd word */ - ldw -4(0,s_addr),tmp4 /* tmp4 = 4th word */ - /* Now store the results ! */ - stbys,b,m tmp1,4(0,d_addr) /* tmp1 = 1st word stored d_addr += 16 also take care of front porch. */ - stwm tmp2,4(0,d_addr) /* tmp2 = 2nd word stored. */ - stwm tmp3,4(0,d_addr) /* tmp3 = 3rd word stored. */ - addibf,< -16,count,chunks /* If count is still >= 16 do another loop. */ - stwm tmp4,4(0,d_addr) /* tmp4 = 4th word stored. DELAY SLOT */ - -chekchunk: - addibt,<,n 12,count,back_porch /* since the count is already decremented by -16 we're testing */ - /* to see if there are at least 4 bytes left ? */ -subchunk: - ldws,ma 4(s_addr),tmp1 /* tmp1 = *s_addr++ */ - addibf,< -4,count,subchunk /* count -= 4 */ - stbys,b,m tmp1,4(d_addr) /* *d_addr++ = tmp1 */ - - -back_porch: - addibt,=,n 4,count,done /* if count = 0 we're, of course, done ! */ - ldws 0(s_addr),tmp1 /* load up the back_porch */ - add d_addr,count,d_addr/* final store address is +1 too high ! */ - bv 0(r2) /* return--were done. */ - stbys,e tmp1,0(d_addr) /* kerplunk! whew ! */ - -/* Begin non_aligned code. (no refrence to politics) */ -not_aligned: - sub,>= tmp2,tmp1,tmp3 /* compute the shift quantity again and skip the load if tmp2 > tmp1. */ - ldwm 4(0,s_addr),tmp1 /* load up the first word from the source. tmp1 = *s_addr++ */ - zdep tmp3,28,29,tmp4 /* compute the number of bits to shift based on the number of bytes above. */ - mtctl tmp4,11 /* load the shift count into cr11 = shift count register. */ - - addibt,<,n -16,count,chkchnk2 /* first step in pre adjustment of count for looping. */ - -chunk2: - ldwm 16(0,s_addr),tmp2 /* get either first or second word . tmp2 = *s_addr++ */ - ldw -12(s_addr),tmp3 - ldw -8(s_addr),tmp4 - ldw -4(s_addr),tmp5 - vshd tmp1,tmp2,tmp6 /* position data ! */ - stbys,b,m tmp6,4(0,d_addr) /* store ! */ - - vshd tmp2,tmp3,tmp6 /* position data ! */ - stwm tmp6,4(0,d_addr) /* store ! */ - - vshd tmp3,tmp4,tmp6 /* position data ! */ - stwm tmp6,4(0,d_addr) /* store ! */ - - vshd tmp4,tmp5,tmp6 /* position data ! */ - stwm tmp6,4(0,d_addr) /* store the data ! */ - addibf,< -16,count,chunk2 /* If count is still >= 16 do another loop. */ - copy tmp5,tmp1 - - -chkchnk2: - addibt,<,n 12,count,bp_0 /* if we don't have 4 bytes left then do the back porch (bp_0) */ - -subchnk2: - ldwm 4(0,s_addr),tmp2 /* get next word ! */ - vshd tmp1,tmp2,tmp3 /* position data ! */ - addibt,< -4,count,bp_1 /* decrement count and when count < 4 goto back_porch (bp_1) */ - stbys,b,m tmp3,4(0,d_addr) /* store ! */ - - ldwm 4(0,s_addr),tmp1 /* get 4th word ! */ - vshd tmp2,tmp1,tmp3 /* position data ! */ - addib,>= -4,count,subchnk2 /* decrement count and when count <= 4 go to back porch (bp_2) */ - stbys,b,m tmp3,4(0,d_addr) /* store the data ! */ - -bp_0: copy tmp1,tmp2 /* switch registers used in the shift process. */ -bp_1: addibt,<=,n 4,count,done /* if count = -4 this implies that count = 0 -> done */ - add d_addr,count,d_addr /* bump destination address to be +1 too high ! */ - mfctl sar,tmp3 /* suppress final ldwm unless result used */ - extru tmp3,28,2,tmp3 /* convert bitshift to byteshift */ - sub,<= count,tmp3,r0 /* bytes unused if (count-byteshift <= 0*/ - - ldwm 4(0,s_addr),tmp1 /* get final word ! */ - vshd tmp2,tmp1,tmp3 /* position data ! */ - bv 0(r2) /* return */ - stbys,e tmp3,0(0,d_addr) /* store the data ! */ - -/* here we do ye old byte-at-a-time moves. */ -byteloop: - comb,>=,n 0,count,done - -encore: - ldbs,ma 1(s_addr),tmp1 - addibf,= -1,count,encore - stbs,ma tmp1,1(d_addr) - -done: -EXIT(memcpy) diff --git a/lib/machine/hppa/memset.S b/lib/machine/hppa/memset.S deleted file mode 100644 index cea7382..0000000 --- a/lib/machine/hppa/memset.S +++ /dev/null @@ -1,85 +0,0 @@ -/* - * (c) Copyright 1986 HEWLETT-PACKARD COMPANY - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Hewlett-Packard Company not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Hewlett-Packard Company makes no representations about the - * suitability of this software for any purpose. - */ - -/* SPECTRUM_ID: @(#)memset.s 37.4 86/08/25 */ -/* - * memset(s, c, n) - * - * Sets first n chars in memory area s to value of character c. - * Returns s. - */ -#ifndef _NAMESPACE_CLEAN -#define NOSECDEF /* prevent _memset from being defined as entry */ -#endif - -#include "DEFS.h" - -#define TO arg0 -#define FILLCHAR arg1 -#define COUNT arg2 -#define TMP r31 - -ENTRY(memset) - comb,<= COUNT,r0,msexit /* return if count not positive */ - copy TO,ret0 /* return value is start of copy */ - comibf,<,n 5,COUNT,msbyteloop /* be straightforward */ - - dep FILLCHAR,23,8,FILLCHAR /* dup low byte */ - dep FILLCHAR,15,16,FILLCHAR /* into high bytes */ - - add TO,COUNT,TMP /* TMP points just past fill area */ - stbys,m FILLCHAR,0(TO) /* fill out first word */ - /* - * If we're pointing to high-order byte, no fill will happen, - * but permissions will be checked. We don't want this (we - * might be pointing at the beginning of a protected region), - * so we branch around stbys if neither low bits are set. - */ - bb,<,n TMP,31,filend /* if low bit is set, stbys */ - bb,>=,n TMP,30,endfil /* if next lowest bit isn't set */ - /* (and lowest isn't, either) */ - /* do not stbys */ -filend: - stbys,m,e FILLCHAR,0(TMP) /* fill out the last */ -endfil: - addi 4, TO, TO - sub TMP,TO,COUNT /* will now divide by 4 */ - comb,=,n COUNT,r0,msexit /* If count is zero ret. */ - - extru,<> COUNT,31,4,r1 - b msquadloop - depi 0,31,4,COUNT /* will now divide by 16 */ - - -mswordloop: - addib,<> -4,r1,mswordloop - stws,ma FILLCHAR,4(TO) - - comb,=,n COUNT,r0,msexit /* If count is zero ret. */ - -msquadloop: - stws,ma FILLCHAR,4(TO) - stws,ma FILLCHAR,4(TO) - stws,ma FILLCHAR,4(TO) - addib,<> -16,COUNT,msquadloop - stws,ma FILLCHAR,4(TO) - b,n msexit - -msbyteloop: - addib,<> -1,COUNT,msbyteloop - stbs,ma FILLCHAR,1(TO) - -msexit: -EXIT(memset) diff --git a/lib/machine/hppa/setjmp.S b/lib/machine/hppa/setjmp.S deleted file mode 100644 index 7dd7c74..0000000 --- a/lib/machine/hppa/setjmp.S +++ /dev/null @@ -1,156 +0,0 @@ -/* Copyright (c) 1995, 2002 Red Hat Incorporated. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * The name of Red Hat Incorporated may not be used to endorse - * or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* Note I don't know an easy way to get the FP version into the - traditional C library and the non-FP version into the soft-float - library. Maybe we'll have to have -msoft-float trigger something - like -DSOFT_FLOAT if this issue ever arises. */ - -#include "DEFS.h" - -#if 0 - .SPACE $PRIVATE$ - .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31 - .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82 - .SPACE $TEXT$ - .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44 - .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY - .IMPORT $global$,DATA - .IMPORT $$dyncall,MILLICODE -; gcc_compiled.: -#endif - TEXT_SEGMENT - - .align 4 - .EXPORT setjmp,ENTRY,PRIV_LEV=3,ARGW0=GR,RTNVAL=GR -setjmp - .PROC - .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3 - .ENTRY - stwm %r30,4(%r26) - stwm %r2,4(%r26) - stwm %r3,4(%r26) - stwm %r4,4(%r26) - stwm %r5,4(%r26) - stwm %r6,4(%r26) - stwm %r7,4(%r26) - stwm %r8,4(%r26) - stwm %r9,4(%r26) - stwm %r10,4(%r26) - stwm %r11,4(%r26) - stwm %r12,4(%r26) - stwm %r13,4(%r26) - stwm %r14,4(%r26) - stwm %r15,4(%r26) - stwm %r16,4(%r26) - stwm %r17,4(%r26) - stwm %r18,4(%r26) - stwm %r27,4(%r26) -#ifdef FP - ; jmp_buf may only have a 4 byte alignment, so handle FP stores - ; very carefully. - fstds %fr12,-16(%r30) - ldw -16(%r30),%r28 - stwm %r28,4(%r26) - ldw -12(%r30),%r28 - stwm %r28,4(%r26) - fstds %fr13,-16(%r30) - ldw -16(%r30),%r28 - stwm %r28,4(%r26) - ldw -12(%r30),%r28 - stwm %r28,4(%r26) - fstds %fr14,-16(%r30) - ldw -16(%r30),%r28 - stwm %r28,4(%r26) - ldw -12(%r30),%r28 - stwm %r28,4(%r26) - fstds %fr15,-16(%r30) - ldw -16(%r30),%r28 - stwm %r28,4(%r26) - ldw -12(%r30),%r28 - stwm %r28,4(%r26) -#endif - - bv 0(%r2) - copy %r0,%r28 - .EXIT - .PROCEND - .align 4 - .EXPORT longjmp,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,RTNVAL=GR -longjmp - .PROC - .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3 - .ENTRY - ldwm 4(%r26),%r30 - ldwm 4(%r26),%r2 - ldwm 4(%r26),%r3 - ldwm 4(%r26),%r4 - ldwm 4(%r26),%r5 - ldwm 4(%r26),%r6 - ldwm 4(%r26),%r7 - ldwm 4(%r26),%r8 - ldwm 4(%r26),%r9 - ldwm 4(%r26),%r10 - ldwm 4(%r26),%r11 - ldwm 4(%r26),%r12 - ldwm 4(%r26),%r13 - ldwm 4(%r26),%r14 - ldwm 4(%r26),%r15 - ldwm 4(%r26),%r16 - ldwm 4(%r26),%r17 - ldwm 4(%r26),%r18 - ldwm 4(%r26),%r27 -#ifdef FP - ldwm 4(%r26),%r28 - stw %r28,-16(%r30) - ldwm 4(%r26),%r28 - stw %r28,-12(%r30) - fldds -16(%r30),%fr12 - ldwm 4(%r26),%r28 - stw %r28,-16(%r30) - ldwm 4(%r26),%r28 - stw %r28,-12(%r30) - fldds -16(%r30),%fr13 - ldwm 4(%r26),%r28 - stw %r28,-16(%r30) - ldwm 4(%r26),%r28 - stw %r28,-12(%r30) - fldds -16(%r30),%fr14 - ldwm 4(%r26),%r28 - stw %r28,-16(%r30) - ldwm 4(%r26),%r28 - stw %r28,-12(%r30) - fldds -16(%r30),%fr15 -#endif - comclr,<> %r0,%r25,%r0 - ldi 1,%r25 - bv 0(%r2) - copy %r25,%r28 - .EXIT - .PROCEND diff --git a/lib/machine/hppa/strcat.S b/lib/machine/hppa/strcat.S deleted file mode 100644 index 9fcdd79..0000000 --- a/lib/machine/hppa/strcat.S +++ /dev/null @@ -1,178 +0,0 @@ -/* - * (c) Copyright 1986 HEWLETT-PACKARD COMPANY - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Hewlett-Packard Company not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Hewlett-Packard Company makes no representations about the - * suitability of this software for any purpose. - */ - -/* HPUX_ID: @(#) $Revision$ */ -/* - * strcat(s1, s2) - * - * Concatenate s2 on the end of s1. S1's space must be large enough. - * Return s1. - */ -#include "DEFS.h" - -#define d_addr r26 -#define s_addr r25 -#define tmp6 r24 -#define tmp1 r19 -#define tmp2 r20 -#define tmp3 r21 -#define tmp4 r22 -#define tmp5 arg3 -#define save r1 - - -ENTRY(strcat) - - comb,= r0,s_addr,done /* quit if s2=NULL */ - copy d_addr,ret0 /* The return value is the value of d_addr. DELAY SLOT*/ - -/* First look for end of s1 (d_addr) */ - - extru d_addr,31,2,tmp1 /* Extract the low two bits of the dest address. */ - combt,= tmp1,r0,dont_mask - dep 0,31,2,d_addr /*set word alignment */ - ldwm 4(d_addr),tmp2 - sh3add tmp1,r0,save /* build mask based on tmp1 */ - mtctl save,11 - zvdepi -2,32,save - or save,tmp2,tmp2 - uxor,nbz tmp2,r0,save -search: - b,n found_end /* nullified under uxor conditions above and below */ -dont_mask: - ldwm 4(d_addr),tmp2 - comib,tr r0,r0,search - uxor,nbz tmp2,r0,save - -found_end: /* at this point d_addr points to word */ - extru,<> save,7,8,r0 /* following word with null */ - addib,tr,n -4,d_addr,begin_copy /*set d_addr to end of s1 */ - extru,<> save,15,8,r0 - addib,tr,n -3,d_addr,begin_copy - extru,<> save,23,8,r0 - addi -1,d_addr,d_addr - addi -1,d_addr,d_addr - - -begin_copy: - - extru s_addr,31,2,tmp1 /* Extract the low two bits of the source address. */ - extru d_addr,31,2,tmp6 /* Extract the low two bits of the destination address. */ - sub,= tmp6,tmp1,tmp3 /* Compute the shift quantity and don't branch if tmp6=tmp1. */ - b not_aligned /* Not_aligned says that shifts Will be needed. */ - dep 0,31,2,s_addr /* Compute the word address of the source. DELAY SLOT. */ -/* aligned */ - - combt,= tmp6,r0,skip_mask - ldwm 4(0,s_addr),tmp1 /* tmp1 = *s_addr s_addr += 4 (DELAY SLOT) */ - sh3add tmp6,r0,save - mtctl save,r11 - zvdepi -2,32,save - or save,tmp1,tmp1 - uxor,nbz tmp1,r0,save - b,n first_null /* special case: null in first word */ - b,n skip_mask2 - -chunks: - b,n null_found /* delay slot for uxor below */ - -skip_mask2: - stbys,b,m tmp1,4(d_addr) - ldwm 4(s_addr),tmp1 -skip_mask: - comib,tr 0,0,chunks - uxor,nbz tmp1,r0,save - -/* Begin non_aligned code. */ - -not_aligned: - sh3add,>= tmp3,r0,tmp4 /* compute the shift amt.and skip load if tmp6 > tmp1. */ - ldwm 4(0,s_addr),tmp1 /* load up the first word from the source. tmp1 = *s_addr++ */ - ldwm 4(0,s_addr),tmp2 /* get either first or second word from source. */ - combt,= tmp6,r0,chunk2 /* don't mask if whole word is valid */ - mtctl tmp4,11 /* load the shift count into cr11 = shift count register. */ - vshd tmp1,tmp2,tmp3 /* position data ! (delay slot) */ - sh3add tmp6,r0,save /* setup r1 */ - mtctl save,r11 /* set-up cr11 for mask */ - zvdepi -2,32,save - or save, tmp3, tmp3 - uxor,nbz tmp3,r0,save - b,n first_null2 - b did_mask - mtctl tmp4,11 /* re-load the shift count into cr11 */ - -chunk2: - vshd tmp1,tmp2,tmp3 - uxor,nbz tmp3, r0, save - b,n null_found -did_mask: - stbys,b,m tmp3,4(0,d_addr) /* store ! */ - - ldwm 4(0,s_addr),tmp1 /* get next word ! */ - vshd tmp2,tmp1,tmp3 /* position data ! */ - uxor,nbz tmp3, r0, save - b,n null_found - stwm tmp3,4(d_addr) - comib,tr 0,0,chunk2 - ldwm 4(s_addr),tmp2 - - -null_found: /* adjust d_addr and store final word */ - - extru,<> save,7,8,r0 - addib,tr,n 1,d_addr,store_final - extru,<> save,15,8,r0 - addib,tr,n 2,d_addr,store_final - extru,<> save,23,8,r0 - addib,tr 3,d_addr,store_final2 - bv 0(r2) - stw save,0(d_addr) - -store_final: - bv 0(r2) -store_final2: - stbys,e save,0(d_addr) /* delay slot */ - -first_null: /* null found in first word of aligned (wrt d_addr) */ - addi -4,s_addr,s_addr - ldbx tmp6(s_addr),tmp4 - add tmp6,s_addr,s_addr - comib,= 0,tmp4,done - stbs,ma tmp4,1(d_addr) - ldbs 1(s_addr),tmp4 - comib,= 0,tmp4,done - stbs,ma tmp4,1(d_addr) - bv 0(r2) /* done */ - stbs 0,0(d_addr) - -first_null2: /* null found in first word of non-aligned (wrt d_addr) */ - addibt,= -1,tmp6,check3 /* check last 3 bytes of word */ - extru save,15,8,tmp4 - addibt,=,n -1,tmp6,check2 /* check last 2 bytes */ - bv 0(r2) - stbys,b save, 0(d_addr) - -check3: - combt,= tmp4,r0,done - stbs,ma tmp4,1(d_addr) -check2: - extru,<> save,23,8,tmp4 - bv 0(r2) - stbs,ma tmp4,1(d_addr) - bv 0(r2) - stbs r0,0(d_addr) - -done: -EXIT(strcat) diff --git a/lib/machine/hppa/strcmp.S b/lib/machine/hppa/strcmp.S deleted file mode 100644 index 007a648..0000000 --- a/lib/machine/hppa/strcmp.S +++ /dev/null @@ -1,282 +0,0 @@ -/* - * (c) Copyright 1986 HEWLETT-PACKARD COMPANY - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Hewlett-Packard Company not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Hewlett-Packard Company makes no representations about the - * suitability of this software for any purpose. - */ - -/* - - strcmp - - Jerry Huck - Edgar Circenis - -*/ -/* - * strcmp(s1, s2) - * - * returns integer: < 0 iff s1 lexicographically less than s2 - * > 0 iff s1 lexicographically greater than s2 - * = 0 iff s1 lexicographically equal to s2 - */ - -#include "DEFS.h" - -#define s1 26 -#define s2 25 -#define tmp1 19 -#define s2word 20 -#define tmp3 21 -#define tmp7 22 -#define s1word 23 -#define save 1 -#define tmp6 24 -#define tmp5 28 - -ENTRY(strcmp) - comb,=,n s1,s2,samestring - comib,=,n 0,s1,s1isnull - comib,=,n 0,s2,s2isnull -/* Hope for word alignment. Pick up low two bits of each adress */ - extru,<> s1,31,2,tmp1 - ldwm 4(s1),s1word - dep,= s2,29,2,tmp1 - b,n case_analysis - -/* Start looping until null is found in s1 or they mis-compare */ -loop: - ldwm 4(s2),s2word -loop_plus: - uxor,nbz s1word,r0,r0 /* Null in this? */ - b,n nullins1 - comb,=,n s1word,s2word,loop - ldwm 4(s1),s1word - -/* The words do not compare equal and s1 does not have a null. - Need to treat words as unsigned and generate either a positive - or negative return value */ -wordcomparereturn: - comclr,>> s1word,s2word,ret0 /*Set ret0 to 0 and skip if greater*/ - ldi -2,ret0 /*Set ret0 to -2 when less */ - bv r0(rp) - addi 1,ret0,ret0 /*Fix return value to be -1 or +1 */ - -/* s1 has a null. s2 has not been checked. */ -nullins1: - /*If s2 has no nulls this is simple, but assume that it might - and fix up s1 to allow the word comparision to work by - scanning s1 and duplicating all the bytes in s2 below that byte into - the remainder of s1. A remainder only exists if the zero byte - is found in the upper three bytes */ - extru,<> s1word,7,8,r0 /*in the first byte? */ - dep,tr s2word,31,24,s1word /*copy low 3 bytes of *s2 into *s1 */ - extru,<> s1word,15,8,r0 /*in the second byte? */ - dep,tr s2word,31,16,s1word /*copy low 2 bytes of *s2 into *s1 */ - extru,<> s1word,23,8,r0 /*in the third byte? */ - dep s2word,31,8,s1word /*copy low 1 byte of *s2 into *s1 */ - /* Do the normal unsigned compare and return */ - comclr,<> s1word,s2word,ret0 /*Set ret0 to 0 and skip if not equal */ - bv,n r0(rp) - comclr,>> s1word,s2word,ret0 /*Set ret0 to 0 and skip if greater*/ - ldi -2,ret0 /*Set ret0 to -2 when less */ - bv r0(rp) - addi 1,ret0,ret0 /*Fix return value to be -1 or +1 */ - -/* s1 and s2 are the same string and therefore equal */ -samestring: - bv r0(rp) - copy r0,ret0 -/* s1 is null. Treat as string of nulls. Therefore return - the negative of s2's first byte. s2 cannot be zero. */ -s1isnull: - ldbs 0(0,s2),ret0 - bv r0(rp) - sub 0,ret0,ret0 -/* s2 is null. Treat as string of nulls. Therefore return - s1's first byte. s1 cannot be zero. */ -s2isnull: - bv r0(rp) - ldbs 0(0,s1),ret0 - -case_analysis: - blr tmp1,r0 - nop - - /* - Case statement for non-aligned cases (we've already - checked the aligned case. - NOTE: for non-aligned cases, the absolute shift value - gets loaded into tmp3. - */ - - /* S2 S1 */ - nop /* 00 00 can't happen */ - nop - b shifts2 /* 00 01 */ - ldi 8,tmp3 /* load shift count (delay slot) */ - b shifts2 /* 00 10 */ - ldi 16,tmp3 /* load shift count (delay slot) */ - b shifts2 /* 00 11 */ - ldi 24,tmp3 /* load shift count (delay slot) */ - b shifts1_0 /* 01 00 */ - ldi 8,tmp3 /* load shift count (delay slot) */ - b eq_align1 /* 01 01 */ - ldbs,ma 1(s1),s1word - b shifts2 /* 01 10 */ - ldi 8,tmp3 /* load shift count (delay slot) */ - b shifts2 /* 01 11 */ - ldi 16,tmp3 /* load shift count (delay slot) */ - b shifts1_0 /* 10 00 */ - ldi 16,tmp3 /* load shift count (delay slot) */ - b shifts1 /* 10 01 */ - ldi 8,tmp3 /* load shift count (delay slot) */ - b eq_align2 /* 10 10 */ - ldhs,ma 2(s1),s1word - b shifts2 /* 10 11 */ - ldi 8,tmp3 /* load shift count (delay slot) */ - b shifts1_0 /* 11 00 */ - ldi 24,tmp3 /* load shift count (delay slot) */ - b shifts1 /* 11 01 */ - ldi 16,tmp3 /* load shift count (delay slot) */ - b shifts1 /* 11 10 */ - ldi 8,tmp3 /* load shift count (delay slot) */ - ldbs,ma 1(s1),s1word /* 11 11 */ - ldbs,ma 1(s2),s2word - sub,= s1word,s2word,ret0 /* if not equal, we can return now */ - bv,n r0(rp) - comclr,<> s1word,r0,ret0 - bv,n r0(rp) - b loop /* fall into main loop */ - ldwm 4(s1),s1word - -eq_align1: - ldbs,ma 1(s2),s2word - sub,= s1word,s2word,ret0 /* if not equal, we can return now */ - bv,n r0(rp) - comclr,<> s1word,r0,ret0 - bv,n r0(rp) - /* fall through to half-word aligned case */ - ldhs,ma 2(s1),s1word /* load next halfword */ -eq_align2: - ldhs,ma 2(s2),s2word /* load next halfword */ - /* form the mask: 0xffff0000 and mask leading nulls in s1word and s2word - so that we can fall into the main loop with word aligned data */ - ldi 16,save - mtctl save,r11 - zvdepi -2,32,save - or save,s1word,s1word - b loop_plus /* fall into main loop */ - or save,s2word,s2word - -/* s2's alignment is greater than s1's alignment, so we will shift s1 */ -shifts1_0: - addi -4,s1,s1 /* fix up s1 due to earlier read */ -shifts1: - extru s1,31,2,tmp1 - extru s2,31,2,tmp5 - dep r0,31,2,s1 /* Compute word address of s1 */ - dep r0,31,2,s2 /* Compute word address of s2 */ - ldwm 4(s1),s1word /* get first word of s1 */ - ldwm 4(s2),s2word /* get first word of s2 */ - combt,=,n r0,tmp1,masks2 /* Do we need to mask beginning of s1 */ - sh3add tmp1,r0,save /* save now has number of bits to mask */ - mtctl save,r11 - zvdepi -2,32,save /* load save with proper mask */ - or save,s1word,s1word -masks2: - sh3add tmp5,r0,save /* save now has number of bits to mask */ - mtctl save,r11 - zvdepi -2,32,save /* load save with proper mask */ - or save,s2word,s2word - ldi -1,tmp7 /* load tmp7 with 0xffffffff */ - mtctl tmp3,r11 /* Move shift amount to CR11 */ -more: uxor,nbz s1word,r0,r0 /* Is there a null in s1? */ - b ends1 - vshd tmp7,s1word,save - combf,=,n save,s2word,cmps1 - ldwm 4(s1),tmp7 - ldwm 4(s2),s2word - uxor,nbz tmp7,r0,r0 /* is there a null in s1? */ - b ends1_0 - vshd s1word,tmp7,save - combf,=,n save,s2word,cmps1 - ldwm 4(s1),s1word - b more - ldwm 4(s2),s2word - -cmps1: movb,tr save,s1word,wordcomparereturn - nop - -ends1_0: - copy tmp7,s1word /* move tmp7 to s1word */ -ends1: - combf,=,n save,s2word,nullins1 /* branch if no match */ - copy save,s1word /* delay slot */ -/* At this point, we know that we've read a null */ -/* from s1, so we can't read more from s1 */ - uxor,nbz save,r0,r0 /* are the strings equal? */ - b,n samestring - vshd s1word,r0,s1word - b nullins1 - ldwm 4(s2),s2word - -/* s1's alignment is greater than s2's alignment, so we will shift s2 */ -shifts2: - extru s1,31,2,tmp1 - extru s2,31,2,tmp5 - dep r0,31,2,s1 /* Compute word address of s1 */ - dep r0,31,2,s2 /* Compute word address of s2 */ - ldwm 4(s2),s2word /* get first word of s2 */ - ldwm 4(s1),s1word /* get first word of s1 */ - combt,=,n r0,tmp5,masks1 /* Do we need to mask beginning of s2 */ - sh3add tmp5,r0,save /* save now has number of bits to mask */ - mtctl save,r11 - zvdepi -2,32,save /* load save with proper mask */ - or save,s2word,s2word -masks1: - sh3add tmp1,r0,save /* save now has number of bits to mask */ - mtctl save,r11 - zvdepi -2,32,save /* load save with proper mask */ - or save,s1word,s1word - ldi -1,tmp7 /* load tmp7 with 0xffffffff */ - mtctl tmp3,r11 /* Move shift amount to CR11 */ -more1: uxor,nbz s2word,r0,r0 /* is there a null in s2? */ - b ends2 - vshd tmp7,s2word,save - combf,=,n s1word,save,cmps2 - ldwm 4(s2),tmp7 - ldwm 4(s1),s1word - uxor,nbz tmp7,r0,r0 /* is there a null in s2? */ - b ends2_0 - vshd s2word,tmp7,save - combf,=,n s1word,save,cmps2 - ldwm 4(s2),s2word - b more1 - ldwm 4(s1),s1word - -cmps2: movb,tr save,s2word,wordcomparereturn - nop - -ends2_0: - copy tmp7,s2word /* move tmp7 to s2word */ -ends2: - combf,=,n s1word,save,nullins1 /* branch if no match */ - copy save,s2word /* delay slot */ -/* At this point, we know that we've read a null */ -/* from s2, so we can't read more from s2 */ - uxor,nbz save,r0,r0 /* are the strings equal? */ - b,n samestring - vshd s2word,r0,s2word - b nullins1 - ldwm 4(s1),s1word - -EXIT(strcmp) diff --git a/lib/machine/hppa/strcpy.S b/lib/machine/hppa/strcpy.S deleted file mode 100644 index 3068cd5..0000000 --- a/lib/machine/hppa/strcpy.S +++ /dev/null @@ -1,285 +0,0 @@ -/* - * (c) Copyright 1986 HEWLETT-PACKARD COMPANY - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Hewlett-Packard Company not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Hewlett-Packard Company makes no representations about the - * suitability of this software for any purpose. - */ - -/* - A faster strcpy. - - by - - Jerry Huck (aligned case) - Daryl Odnert (equal-alignment case) - Edgar Circenis (non-aligned case) -*/ -/* - * strcpy(s1, s2) - * - * Copy string s2 to s1. s1 must be large enough. - * return s1 - */ - -#include "DEFS.h" - -#define d_addr r26 -#define s_addr r25 -#define tmp6 r24 -#define tmp1 r19 -#define evenside r19 -#define tmp2 r20 -#define oddside r20 -#define tmp3 r21 -#define tmp4 r22 -#define tmp5 arg3 -#define save r1 - - -ENTRY(strcpy) -/* Do some quick alignment checking on and fast path both word aligned */ - extru,<> s_addr,31,2,tmp6 /*Is source word aligned? */ - ldwm 4(0,s_addr),oddside /*Assume yes and guess that it - is double-word aligned. */ - dep,= d_addr,29,2,tmp6 /*Is target word aligned? */ - b case_analysis - copy d_addr,ret0 -/* Both are aligned. First source word already loaded assuming that - source was oddword aligned. Fall through (therefore fastest) code - shuffles the registers to join the main loop */ -bothaligned: - bb,>= s_addr,29,twoatatime /*Branch if source was odd aligned*/ - uxor,nbz oddside,r0,save - -/* Even aligned source. save holds that operand. - Do one iteration of the main copy loop juggling the registers to avoid - one copy. */ - b,n nullfound - ldwm 4(s_addr),oddside - stwm save,4(d_addr) - uxor,nbz oddside,r0,save - b,n nullfound - ldwm 4(s_addr),evenside - stwm oddside,4(d_addr) - uxor,nbz evenside,r0,save - b,n nullfound - ldwm 4(s_addr),oddside - -/* Main loop body. Entry expects evenside still to be stored, oddside - just loaded. */ -loop: - stwm evenside,4(d_addr) - uxor,nbz oddside,r0,save - -/* mid loop entry */ -twoatatime: - b,n nullfound - ldwm 4(s_addr),evenside - stwm oddside,4(d_addr) - uxor,sbz evenside,r0,save - b loop - ldwm 4(s_addr),oddside - -/* fall through when null found in evenside. oddside actually loaded */ -nullfound: /* adjust d_addr and store final word */ - - extru,<> save,7,8,r0 /* pick up leftmost byte */ - addib,tr,n 1,d_addr,store_final - extru,<> save,15,8,r0 - addib,tr,n 2,d_addr,store_final - extru,<> save,23,8,r0 - addib,tr 3,d_addr,store_final2 - bv 0(rp) - stw save,0(d_addr) - -store_final: - bv 0(rp) -store_final2: - stbys,e save,0(d_addr) /* delay slot */ - -case_analysis: - - blr tmp6,r0 - nop - - /* NOTE: the delay slots for the non-aligned cases load a */ - /* shift quantity which is TGT-SRC into tmp3. */ - /* Note also, the case for both strings being word aligned */ - /* is already checked before the BLR is executed, so that */ - /* case can never occur. */ - - /* TGT SRC */ - nop /* 00 00 can't happen */ - nop - b neg_aligned_copy /* 00 01 */ - ldi -1,tmp3 /* load shift quantity. delay slot */ - b neg_aligned_copy /* 00 10 */ - ldi -2,tmp3 /* load shift quantity. delay slot */ - b neg_aligned_copy /* 00 11 */ - ldi -3,tmp3 /* load shift quantity. delay slot */ - b pos_aligned_copy0 /* 01 00 */ - ldi 1,tmp3 /* load shift quantity. delay slot */ - b equal_alignment_1 /* 01 01 */ - ldbs,ma 1(s_addr),tmp1 - b neg_aligned_copy /* 01 10 */ - ldi -1,tmp3 /* load shift quantity. delay slot */ - b neg_aligned_copy /* 01 11 */ - ldi -2,tmp3 /* load shift quantity. delay slot */ - b pos_aligned_copy0 /* 10 00 */ - ldi 2,tmp3 /* load shift quantity. delay slot */ - b pos_aligned_copy /* 10 01 */ - ldi 1,tmp3 /* load shift quantity. delay slot */ - b equal_alignment_2 /* 10 10 */ - ldhs,ma 2(s_addr),tmp1 - b neg_aligned_copy /* 10 11 */ - ldi -1,tmp3 /* load shift quantity. delay slot */ - b pos_aligned_copy0 /* 11 00 */ - ldi 3,tmp3 /* load shift quantity. delay slot */ - b pos_aligned_copy /* 11 01 */ - ldi 2,tmp3 /* load shift quantity. delay slot */ - b pos_aligned_copy /* 11 10 */ - ldi 1,tmp3 /* load shift quantity. delay slot */ - ldbs,ma 1(s_addr),tmp1 /* 11 11 */ - comiclr,<> r0,tmp1,r0 - bv 0(rp) /* return if 1st byte was null */ - stbs,ma tmp1,1(d_addr) /* store a byte to dst string */ - b bothaligned /* can now goto word_aligned */ - ldwm 4(s_addr),oddside /* load next word of source */ - -equal_alignment_1: - comiclr,<> r0,tmp1,r0 /* nullify next if tmp1 <> 0 */ - bv 0(rp) /* return if null byte found */ - stbs,ma tmp1,1(d_addr) /* store a byte to dst string */ - ldhs,ma 2(s_addr),tmp1 /* load next halfword */ -equal_alignment_2: - extru,<> tmp1,23,8,tmp6 /* look at left byte of halfword */ - bv 0(rp) /* return if 1st byte was null */ - stbs,ma tmp6,1(d_addr) - extru,<> tmp1,31,8,r0 - bv 0(rp) /* return if 2nd byte was null */ - stbs,ma tmp1,1(d_addr) - b bothaligned - ldwm 4(s_addr),oddside /* load next word */ - -/* source and destination are not aligned, so we do it the hard way. */ - -/* target alignment is greater than source alignment */ -pos_aligned_copy0: - addi -4,s_addr,s_addr -pos_aligned_copy: - extru d_addr,31,2,tmp6 /* Extract low 2 bits of the dest addr */ - extru s_addr,31,2,tmp1 /* Extract low 2 bits of the src addr */ - dep r0,31,2,s_addr /* Compute word address of the source. */ - sh3add tmp3,r0,tmp4 /* compute shift amt */ - ldwm 4(0,s_addr),tmp2 /* get 1st source word */ - sh3add tmp1,r0,save /* setup mask shift amount */ - mtctl save,r11 /* set-up cr11 for mask */ - zvdepi -2,32,save /* create mask */ - or save,tmp2,tmp2 /* mask unused bytes in src */ - ldi -1,tmp1 /* load tmp1 with 0xffffffff */ - mtctl tmp4,r11 /* shift count -> shift count reg */ - vshd tmp1,tmp2,tmp3 /* position data ! */ - uxor,nbz tmp3,r0,save - b,n first_null - uxor,nbz tmp2,r0,save - b nullfound1 - mtctl tmp4,r11 /* re-load shift cnt (delay slot) */ - b loop_entry - ldwm 4(0,s_addr),tmp1 /* get next word. delay slot */ - -neg_aligned_copy: - extru d_addr,31,2,tmp6 /* Extract low 2 bits of the dest addr */ - extru s_addr,31,2,tmp2 /* Extract low 2 bits of the src addr */ - dep r0,31,2,s_addr /* Compute word address of the source. */ - sh3add tmp3,r0,tmp4 /* compute shift amt */ - ldwm 4(0,s_addr),tmp1 /* load first word from source. */ -/* check to see if next word can be read safely */ - sh3add tmp2,r0,save - mtctl save,r11 /* shift count -> shift count reg */ - zvdepi -2,32,save - or save, tmp1, tmp1 - uxor,nbz tmp1,r0,save /* any nulls in first word? */ - b first_null0 - mtctl tmp4,r11 - ldwm 4(0,s_addr),tmp2 /* load second word from source */ - combt,= tmp6,r0,chunk1 /* don't mask if whole word valid */ - vshd tmp1,tmp2,tmp3 /* position data ! */ - sh3add tmp6,r0,save /* setup r1 */ - mtctl save,r11 /* set-up cr11 for mask */ - zvdepi -2,32,save - or save, tmp3, tmp3 - uxor,nbz tmp3,r0,save - b,n first_null - uxor,nbz tmp2,r0,save - b nullfound1 - mtctl tmp4,r11 /* re-load shift cnt (delay slot) */ - b loop_entry - ldwm 4(0,s_addr),tmp1 /* get next word. delay slot */ - -chunk1: - uxor,nbz tmp2,r0,save - b nullfound0 - vshd tmp1,tmp2,tmp3 -did_mask: - ldwm 4(0,s_addr),tmp1 /* get next word ! */ -loop_entry: - stbys,b,m tmp3,4(0,d_addr) /* store ! */ - - uxor,nbz tmp1, r0, save - b nullfound2 - vshd tmp2,tmp1,tmp3 /* position data ! */ - ldwm 4(s_addr),tmp2 - stwm tmp3,4(d_addr) - uxor,sbz tmp2,r0,save - b did_mask -nullfound0: - vshd tmp1,tmp2,tmp3 /* delay slot */ - uxor,nbz tmp3,r0,save - b,n nullfound -nullfound1: - stbys,b,m tmp3,4(0,d_addr) - b nullfound - vshd tmp2,r0,save /* delay slot */ - -nullfound2: - uxor,nbz tmp3,r0,save - b,n nullfound - stwm tmp3,4(d_addr) - b nullfound - /* notice that delay slot is in next routine */ - -first_null0: /* null found in first word of non-aligned (wrt d_addr) */ - vshd tmp1,r0,save /* delay slot */ - combt,= tmp6,r0,check4 - extru save,7,8,tmp4 -first_null: - addibt,= -1,tmp6,check3 /* check last 3 bytes of word */ - extru save,15,8,tmp4 - addibt,=,n -1,tmp6,check2 /* check last 2 bytes */ - bv 0(rp) /* null in last byte--store and exit */ - stbys,b save, 0(d_addr) - -check4: - combt,= tmp4,r0,done - stbs,ma tmp4,1(d_addr) - extru,<> save,15,8,tmp4 -check3: - combt,= tmp4,r0,done - stbs,ma tmp4,1(d_addr) -check2: - extru,<> save,23,8,tmp4 - bv 0(rp) - stbs,ma tmp4,1(d_addr) - bv 0(rp) - stbs r0,0(d_addr) - -done: -EXIT(strcpy) diff --git a/lib/machine/hppa/strlen.S b/lib/machine/hppa/strlen.S deleted file mode 100644 index 12e9ef2..0000000 --- a/lib/machine/hppa/strlen.S +++ /dev/null @@ -1,79 +0,0 @@ -/* - * (c) Copyright 1986 HEWLETT-PACKARD COMPANY - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Hewlett-Packard Company not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Hewlett-Packard Company makes no representations about the - * suitability of this software for any purpose. - */ - -/* HPUX_ID = "@(#) $Revision$" */ -/* strlen(s): Return length of string s */ - -#define start arg0 -#define end ret0 -#define tmp1 arg1 -#define tmp2 arg2 - -#include "DEFS.h" - -ENTRY(strlen) - movb,=,n start,end,$null_ptr - depi 0,31,2,end - comb,<> start,end,$not_aligned - ldws,ma 4(end),tmp1 - comib,tr 0,0,$loop /* avoid INDIGO two register interlock */ - uxor,nbz 0,tmp1,0 -$not_aligned: - /* - ; Tricky code. The problem is that the value of of the word - ; including the start of the string has some garbage bytes that - ; may be 0. We don't want them to stop the string scan. So - ; we make those bytes non-zero (and any old non-zero value - ; will do). Notice that the end pointer has been rounded - ; down to a word boundary, and then incremented to the next - ; word by the time we get here. Therefore, (start-end) has - ; one of the values (-3, -2, or -1). Use uaddcm to do the - ; subtraction (instead of sub), and the result will be - ; (-4, -3, or -2). Multiply this by 8, and put into the - ; shift register (which truncates to the last 5 bits) and - ; the value will be (0, 8, or 16). Use this as a bit position, - ; and drop a mask down into tmp1. All the garbage bytes will - ; have at least 1 bit affected by the vdepi, so all the garbage - ; in this first word will be non-zero garbage. - */ - uaddcm start,end,tmp2 /* tmp2 <- { -4, -3, -2 } */ - sh3add tmp2,0,tmp2 /* tmp2 <- { -32, -24, -16 } */ - mtsar tmp2 /* sar <- { 0, 8, 16 } */ - vdepi -1,32,tmp1 - uxor,nbz 0,tmp1,0 -$loop: - b,n $end_loop - ldws,ma 4(end),tmp1 - comib,tr 0,0,$loop /* avoid INDIGO two register interlock */ - uxor,nbz 0,tmp1,0 -$end_loop: - /* adjust the end pointer to one past the end of the string */ - extru,<> tmp1,7,8,0 - addib,tr,n -3,end,$out - extru,<> tmp1,15,8,0 - addib,tr,n -2,end,$out - extru,<> tmp1,23,8,0 - addi -1,end,end -$out: - bv 0(rp) - /* - ; tricky code. the end pointer is just beyond the terminating - ; null byte, so the length is (end-start-1). use uaddcm - ; to do this in 1 instruction - */ - uaddcm end,start,ret0 - -$null_ptr: -EXIT(strlen) diff --git a/lib/machine/hppa/strncat.S b/lib/machine/hppa/strncat.S deleted file mode 100644 index 04bd156..0000000 --- a/lib/machine/hppa/strncat.S +++ /dev/null @@ -1,238 +0,0 @@ -/* - * (c) Copyright 1986 HEWLETT-PACKARD COMPANY - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Hewlett-Packard Company not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Hewlett-Packard Company makes no representations about the - * suitability of this software for any purpose. - */ - -/*HPUX_ID: @(#) $Revision$ */ -/* strncat(s1,s2,n) : concatonate at most n characters from s2 onto s1 */ - -#include "DEFS.h" - -#define d_addr r26 -#define s_addr r25 -#define count r24 -#define tmp1 r19 -#define tmp2 r20 -#define tmp3 r21 -#define tmp4 r22 -#define tmp5 arg3 -#define tmp6 r31 -#define save r1 -#define tmp7 ret1 /* source offset-- reset to orig source addr if not aligned */ - - -ENTRY(strncat) - - comb,= r0,s_addr,quit /* quit if s2=NULL */ - copy d_addr,ret0 /* The return value is the value of d_addr. DELAY SLOT*/ - -/* First look for end of s1 (d_addr) */ - - extru d_addr,31,2,tmp1 /* Extract the low two bits of the dest address. */ - combt,= tmp1,r0,dont_mask - dep 0,31,2,d_addr /*set word alignment */ - ldwm 4(d_addr),tmp2 - sh3add tmp1,r0,save /* build mask based on tmp1 */ - mtctl save,11 - zvdepi -2,32,save - or save,tmp2,tmp2 - uxor,nbz tmp2,r0,save -search: - b,n found_end /* nullified under uxor conditions above and below */ -dont_mask: - ldwm 4(d_addr),tmp2 - comib,tr r0,r0,search - uxor,nbz tmp2,r0,save - -found_end: /* at this point d_addr points to word */ - extru,<> save,7,8,r0 /* following word with null */ - addib,tr,n -4,d_addr,begin_copy /*set d_addr to end of s1 */ - extru,<> save,15,8,r0 - addib,tr,n -3,d_addr,begin_copy - extru,<> save,23,8,r0 - addi -1,d_addr,d_addr - addi -1,d_addr,d_addr - - -begin_copy: - addibt,<,n -4,count,byteloop /* If count is <= 4 don't get fancy.*/ - - extru s_addr,31,2,tmp4 /* Extract the low two bits of the source address.*/ - extru d_addr,31,2,tmp5 /* Extract the low two bits of the destination address.*/ - add count,tmp5,count /* pre increment the count by the byte address so that the count is*/ - copy s_addr,tmp6 /* save original s_addr in case we find null in first word */ - copy s_addr, tmp7 /* save s_addr in case we find null before first store */ - comb,<> tmp5,tmp4,not_aligned /* branch if tmp5<>tmp4. */ - dep 0,31,2,s_addr /* Compute the word address of the source. DELAY SLOT.*/ -/* aligned*/ - combt,= tmp5,r0,skip_mask - ldwm 4(0,s_addr),tmp1 /* tmp1 = *s_addr s_addr += 4 (DELAY SLOT)*/ - sh3add tmp5,r0,save /* compute mask in save*/ - mtctl save,11 - zvdepi -2,32,save - or save,tmp1,tmp1 /* or mask with data*/ - uxor,nbz tmp1,r0,save /* check for null*/ - b,n null1 - addibt,< -4,count,back_porch - stbys,b,m tmp1,4(0,d_addr) /* store word (delay slot)*/ - -chunks: - ldwm 4(0,s_addr),tmp1 /* get a word*/ - -skip_mask: - uxor,nbz tmp1,r0,save /* check for null*/ - b,n align_null1 - addibf,< -4,count,chunks - stbys,b,m tmp1,4(0,d_addr) /* store word (delay slot)*/ - -back_porch: /* last word to store*/ - addibt,=,n 4,count,done /* if count = 0 we're, of course, done !*/ - ldws 0(s_addr),tmp1 /* load up the back_porch*/ - sh3add count,r0, save /* setup right mask based on count*/ - mtctl save,r11 - zvdepi -2,32,save /*save now has left-hand mask*/ - uaddcm r0,save,save /*form right hand mask */ - or tmp1,save,tmp1 /*and insert data*/ - uxor,nbz tmp1,r0,save /* check for null*/ - b,n null2 - add d_addr,count,d_addr/* final store address is +1 too high !*/ - b done - stbys,e tmp1,0(d_addr) /* done */ - -/* Begin non_aligned code. */ -not_aligned: - sub,>= tmp5,tmp4,tmp6 /* compute the shift amt.and skip load if tmp5 > tmp4.*/ - ldwm 4(0,s_addr),tmp1 /* load up the first word from the source. tmp1 = *s_addr++*/ - zdep tmp6,28,29,tmp4 /* compute the number of bits to shift */ - mtctl tmp4,11 /* load the shift count into cr11 = shift count register.*/ - addibt,<,n -4,count,chkchnk2 /* first step in pre adjustment of count for looping.*/ - - ldwm 4(0,s_addr),tmp2 /* get either first or second word from source. */ - combt,= tmp5,r0,skip_mask4 /* don't mask if whole word is valid*/ - vshd tmp1,tmp2,tmp3 /* position data ! (delay slot)*/ - sh3add tmp5,r0,save /* setup r1*/ - mtctl save,r11 /* setup mask in save*/ - zvdepi -2,32,save - or save, tmp3, tmp3 - mtctl tmp4,11 /* re-load the shift count into cr11 */ - -skip_mask4: - uxor,nbz tmp3, r0, save - b,n null4 /* special case for first word */ - copy r0, tmp5 /* zero out tmp5 so we don't try to mask again*/ - copy r0, tmp7 /* zero out tmp7 so we don't try to use original s_addr anymore */ - b continue - stbys,b,m tmp3,4(0,d_addr) /* store ! */ - -chunk2: - ldwm 4(0,s_addr),tmp2 - vshd tmp1,tmp2,tmp3 - -skip_mask2: - uxor,nbz tmp3, r0, save - b,n null3 - stbys,b,m tmp3,4(0,d_addr) /* store ! */ - -continue: - ldwm 4(0,s_addr),tmp1 /* get 2nd word ! */ - vshd tmp2,tmp1,tmp3 /* position data ! */ - uxor,nbz tmp3, r0, save - b,n null3 - - addibf,< -8,count,chunk2 /* If count is still >= 8 do another loop.*/ - stbys,b,m tmp3,4(0,d_addr) /* store !*/ - -chkchnk2: - addibt,<,n 4,count,bp_0 /* if we don't have 4 bytes left then do the back porch (bp_0)*/ - -subchnk2: /* we have less than 8 chars to copy*/ - - ldwm 4(0,s_addr),tmp2 /* get next word !*/ - combt,= tmp5,r0,skip_mask3 - vshd tmp1,tmp2,tmp3 /* position data !*/ - sh3add tmp5,r0,save /* setup r1*/ - mtctl save,r11 /* setup mask in save*/ - zvdepi -2,32,save - or save, tmp3, tmp3 - mtctl tmp4,11 /* restore shift value again */ -skip_mask3: - uxor,nbz tmp3,r0,save - b,n null3 - copy r0,tmp5 /* zero out tmp5 so null3 does correct alignment */ - copy r0,tmp7 /* zero out tmp7 so we don't use orignal s_addr since no longer valid */ - b bp_1 /* we now have less than 4 bytes to move*/ - stbys,b,m tmp3,4(0,d_addr) /* store !*/ - -bp_0: - copy tmp1,tmp2 /* switch registers for shift process */ - addibt,<=,n 4,count,done /* if count = -4 this implies that count = 0 -> done */ - -bp_1: - ldwm 4(0,s_addr),tmp1 /* get final word ! */ - vshd tmp2,tmp1,tmp3 /* position data !*/ - uxor,nbz tmp3,r0,save /* if no-byte-zero */ - b,n bp_null /* don't goto no_null-find which null instead */ -no_null: - add d_addr,count,d_addr /* set up d_addr for stbys,e */ - b done /* were done*/ - stbys,e tmp3,0(0,d_addr) /* store the data !*/ - -/* here we do ye old byte-at-a-time moves.*/ -align_null1: - b byteloop - addi -4,s_addr,s_addr -null1: - copy tmp6,s_addr /* restore orig s_addr (aligned only) */ -byteloop: - addibt,= 4,count,done -null2: - ldbs,ma 1(s_addr),tmp1 -encore: - combt,=,n tmp1,r0, done - stbs,ma tmp1,1(d_addr) - addibf,=,n -1,count,encore - ldbs,ma 1(s_addr),tmp1 - b,n done - -bp_null: - addi -4,count,count /* fudge count 'cause byteloop will re-increment */ - -null3: /* not_aligned case reset s_addr and finish byte-wise */ - combt,=,n r0,tmp7,null3a /* if tmp7 is not valid address then branch below */ - b byteloop /* otherwise reset s_addr to tmp7 and finish */ - copy tmp7, s_addr - -null3a: /* right shift target */ - addibt,<,n 0,tmp6,null3b /* if left shifting */ - sub r0,tmp6,tmp6 /* do null3b code */ - addi -4,tmp6,tmp6 - b byteloop - add tmp6,s_addr,s_addr /* reset s_addr by 4 + shift_amt */ - -null3b: - subi -8,tmp6,tmp6 - add tmp5,tmp6,tmp6 /* adjust by the dest offset if this is our first store */ - b byteloop - add tmp6,s_addr,s_addr /* adjust s_addr by (8-shift_amt-dest_off) */ - -null4: - add,> tmp6,r0,tmp6 /* if left shift */ - b,n null3 /* then do null3 */ - b byteloop - addi -4,s_addr,s_addr /* adj source only by 4 */ - -done: - bv 0(r2) - stbs r0,0(d_addr) -quit: -EXIT(strncat) diff --git a/lib/machine/hppa/strncmp.S b/lib/machine/hppa/strncmp.S deleted file mode 100644 index 222384e..0000000 --- a/lib/machine/hppa/strncmp.S +++ /dev/null @@ -1,189 +0,0 @@ -/* - * (c) Copyright 1986 HEWLETT-PACKARD COMPANY - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Hewlett-Packard Company not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Hewlett-Packard Company makes no representations about the - * suitability of this software for any purpose. - */ - -/* strcmp(s1, s2) */ -/* returns integer: < 0 iff s1 lexicographically less than s2 */ -/* > 0 iff s1 lexicographically greater than s2 */ -/* = 0 iff s1 lexicographically equal to s2 */ -/* = 0 iff s1 lexicographically equal to s2 */ -/* quit after n charachters */ -#include "DEFS.h" - -#define s1 26 -#define s2 25 -#define tmp1 19 -#define s2word 20 -#define tmp3 21 -#define tmp7 22 -#define s1word 29 -#define save 1 -#define tmp6 23 -#define tmp5 28 -#define count 24 - -ENTRY(strncmp) - combt,<,n r0,count,search /* N <= 0 yields equality */ - bv r0(rp) /* */ - copy 0,ret0 /* return 0 (DELAY SLOT) */ -search: combf,=,n s1,s2,findout /* s1 != s2? */ - bv r0(rp) /* */ - copy 0,ret0 /* return 0 (delay slot) */ -findout: - comibf,=,n 0,s1,checks1 /* s1 == NULL? */ - ldbs 0(0,s2),ret0 /* */ - bv r0(rp) /* */ - subi 0,ret0,ret0 /* ret0 <- -*s2 */ -checks1: - comibf,=,n 0,s2,checkitout /* s2 == NULL? */ - bv r0(rp) /* */ - ldbs 0(0,s1),28 /* return *s1 */ - -checkitout: - extru s2,31,2,tmp1 /* Extract the low two bits of the s2. */ - extru s1,31,2,tmp5 /* Extract the low two bits of the s1 */ - sub,= tmp5,tmp1,tmp3 /* Are s1 & s2 aligned with each other? */ - b not_aligned /* It's more complicated (not_aligned) */ - dep 0,31,2,s1 /* Compute word address of s1 (DELAY SLOT) */ - dep 0,31,2,s2 /* Compute word address of s2 */ - ldwm 4(0,s1),s1word /* get next s1 word s1+=4 */ - combt,= tmp5,r0,skipmask /* skip masking, if we can */ - ldwm 4(0,s2),s2word /* get next s2 word s2+=4 (DELAY SLOT) */ - add tmp5,count,count /* bump count by the number of bytes */ - /* we are going to mask */ - sh3add tmp5,r0,save /* save now has number of bits to mask */ - mtctl save,11 - zvdepi -2,32,save /* load save with proper mask */ - or save,s1word,s1word /* mask s1word (s1) */ - or save,s2word,s2word /* mask s2word (s2) */ - - -skipmask: - combt,=,n s1word,s2word,chknulls /* are these words equal? */ - -checkbyte: - extru s1word,7,8,tmp3 /* get first byte (character) */ -ckbyte2: extru s2word,7,8,tmp7 /* get first byte (character) */ - combf,= tmp3,tmp7,done /* quit if first byte is not equal */ - sub tmp3,tmp7,ret0 /* return difference (delay slot) */ - comibt,=,n 0,tmp3,done /* have we reached the end of string */ - /* if so done ret0 already has zero */ - addibt,<=,n -1,count,done /* have we checked N chars? ret0 == 0 */ - extru s1word,15,8,tmp3 /* get second byte (character) */ - extru s2word,15,8,tmp7 /* get second byte (character) */ - combf,= tmp3,tmp7,done /* quit if second byte is not equal */ - sub tmp3,tmp7,ret0 /* return difference (delay slot) */ - comibt,=,n 0,tmp3,done /* have we reached the end of string */ - /* if so done ret0 already has zero */ - addibt,<=,n -1,count,done /* have we checked N chars? */ - extru s1word,23,8,tmp3 /* get third byte (character) */ - extru s2word,23,8,tmp7 /* get third byte (character) */ - combf,= tmp3,tmp7,done /* done if third byte is not equal */ - sub tmp3,tmp7,ret0 /* return difference (delay slot) */ - comibt,=,n 0,tmp3,done /* have we reached the end of string */ - /* if so done ret0 already has zero */ - addibt,<=,n -1,count,done /* have we checked N chars? */ - extru s1word,31,8,tmp3 /* get last byte (character) */ - extru s2word,31,8,tmp7 /* get last byte (character) */ - bv r0(rp) /* */ - sub tmp3,tmp7,ret0 /* the last characters in the word is */ - /* where the difference is, so return */ - /* the difference and we're outta here */ - - -chknulls: - addibt,<=,n -4,count,zero /* have we checked N chars? */ - uxor,nbz s1word,0,0 /* don't have to check s2 Just quit */ - bv r0(rp) /* */ - copy 0,28 /* return 0 */ - ldwm 4(0,s2),s2word /* get next s2 word s2+=4 */ - b skipmask /* keep checking */ - ldwm 4(0,s1),s1word /* get next s1 word s1+=4 */ - - -not_aligned: - dep r0,31,2,s2 /* Compute word address of s2 */ - combt,<,n r0,tmp3,shifts1 /* Do we shift s1 or s2 */ - sh3add tmp3,r0,tmp3 /* eight bits per byte so mul by 8 */ - ldwm 4(0,s1),s1word /* get first word of s1 */ - ldwm 4(0,s2),s2word /* get first word or s2 */ - combt,=,n r0,tmp5,masks2 /* Do we need to mask beginning of s1 */ - add tmp5,count,count /* bump count by the number of bytes */ - /* we are going to mask */ - sh3add tmp5,r0,save /* save now has number of bits to mask */ - mtctl save,11 - zvdepi -2,32,save /* load save with proper mask */ - or save,s1word,s1word /* */ -masks2: sh3add tmp1,r0,save /* save now has number of bits to mask */ - mtctl save,11 - zvdepi -2,32,save /* load save with proper mask */ - or save,s2word,s2word /* */ - mtctl tmp3,11 /* Move shift amount to CR11 */ -more: uxor,nbz s2word,r0,r0 /* Is there a null in first word */ - b,n chunk1 /* */ - ldwm 4(0,s2),tmp7 /* load second word to enable us to shift */ - vshd s2word,tmp7,s2word /* */ - combf,=,n s1word,s2word,ckbyte2 /* */ - extru s1word,7,8,tmp3 /* get first byte (DELAY SLOT) */ - addibt,<=,n -4,count,zero /* have we checked N chars? */ - uxor,nbz s1word,0,0 /* even though they're equal we could be done */ - b,n zero - copy tmp7,s2word /* */ - b more /* keep checking */ - ldwm 4(0,s1),s1word /* get next s1 (DELAY SLOT) */ - -chunk1: - vshd s2word,r0,s2word /* */ - b ckbyte2 /* */ - extru s1word,7,8,tmp3 /* */ - - -shifts1: - sh3add tmp3,r0,tmp3 /* eight bits per byte so mul by 4 */ - sub r0,tmp3,tmp3 /* Get negative value for left shift */ - ldwm 4(0,s2),s2word /* get first word of s2 */ - ldwm 4(0,s1),s1word /* get first word or s1 */ - combt,=,n r0,tmp1,masks1 /* Do we need to mask beginning of s2 */ - add tmp1,count,count /* bump count by the number of bytes */ - /* we are going to mask */ - sh3add tmp1,r0,save /* save now has number of bits to mask */ - mtctl save,11 - zvdepi -2,32,save /* load save with proper mask */ - or save,s2word,s2word /* */ -masks1: sh3add tmp5,r0,save /* save now has number of bits to mask */ - mtctl save,11 - zvdepi -2,32,save /* load save with proper mask */ - or save,s1word,s1word /* */ - mtctl tmp3,11 /* Move shift amount to CR11 */ -more1: uxor,nbz s1word,r0,r0 /* Is there a null in first byte */ - b,n chunk2 /* */ - ldwm 4(0,s1),tmp7 /* load second word to enable us to shift */ - vshd s1word,tmp7,s1word /* */ - combf,=,n s2word,s1word,ckbyte2 /* */ - extru s1word,7,8,tmp3 /* get first byte (DELAY SLOT) */ - addibt,<=,n -4,count,zero /* have we checked N chars? */ - uxor,nbz s2word,0,0 /* even though they're equal we could be done */ - b,n zero /* zero ret0 and quit */ - copy tmp7,s1word /* */ - b more1 /* keep checking */ - ldwm 4(0,s2),s2word /* get next s2 (DELAY SLOT) */ - -chunk2: - vshd s1word,r0,s1word /* */ - b ckbyte2 /* */ - extru s1word,7,8,tmp3 /* */ - -zero: copy r0,ret0 -done: -EXIT(strncmp) diff --git a/lib/machine/hppa/strncpy.S b/lib/machine/hppa/strncpy.S deleted file mode 100644 index 37ed832..0000000 --- a/lib/machine/hppa/strncpy.S +++ /dev/null @@ -1,256 +0,0 @@ -/* - * (c) Copyright 1986 HEWLETT-PACKARD COMPANY - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Hewlett-Packard Company not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Hewlett-Packard Company makes no representations about the - * suitability of this software for any purpose. - */ - -/* HPUX_ID: @(#) $Revision$ */ -/* - * strncpy(s1, s2, n) - * - * Copy s2 to s1, truncating or null-padding to always copy n bytes - * return s1 - */ - -#include "DEFS.h" - -#define d_addr r26 -#define s_addr r25 -#define count r24 -#define tmp1 r19 -#define tmp2 r20 -#define tmp3 r21 -#define tmp4 r22 -#define tmp5 arg3 -#define save r1 - - -ENTRY(strncpy) - - combt,= s_addr,r0,pad_null_bytes1 /* if s2==NULL then pad nulls and exit */ - copy d_addr,ret0 /* The return value is defined to be the value of d_addr. DELAY SLOT*/ - addibt,<,n -4,count,byteloop /* If count is <= 4 don't get fancy.*/ - - extru s_addr,31,2,tmp1 /* Extract the low two bits of the source address.*/ - extru d_addr,31,2,tmp5 /* Extract the low two bits of the destination address.*/ - add count,tmp5,count /* pre increment the count by the byte address so that the count is*/ - comb,<> tmp5,tmp1,not_aligned /* branch if tmp5<>tmp1. */ - dep 0,31,2,s_addr /* Compute the word address of the source. DELAY SLOT.*/ -/* aligned*/ - combt,= tmp5,r0,skip_mask - ldwm 4(0,s_addr),tmp1 /* tmp1 = *s_addr s_addr += 4 (DELAY SLOT)*/ - sh3add tmp5,r0,save /* compute mask in save*/ - mtctl save,11 - zvdepi -2,32,save - b skip_mask /* don't reload tmp1*/ - or save,tmp1,tmp1 /* or mask with data*/ - -chunks: - ldwm 4(0,s_addr),tmp1 /* get a word*/ - -skip_mask: - uxor,nbz tmp1,r0,save /* check for null*/ - b,n null1 - addibf,< -4,count,chunks - stbys,b,m tmp1,4(0,d_addr) /* store word (delay slot)*/ - -/* back_porch last word to store*/ - addibt,=,n 4,count,done /* if count = 0 we're, of course, done !*/ - ldws 0(s_addr),tmp1 /* load up the back_porch*/ - add d_addr,count,d_addr/* final store address is +1 too high !*/ - sh3add count,r0, save /* setup right mask based on count*/ - mtctl save,r11 - zvdepi -2,32,save /*save now has left-hand mask*/ - uaddcm r0,save,save /*form right hand mask */ - or tmp1,save,tmp1 /*and insert data*/ - uxor,nbz tmp1,r0,save /* check for null*/ - b,n null2 - bv 0(r2) - stbys,e tmp1,0(d_addr) /* done */ - -/* Begin non_aligned code. */ -not_aligned: - sub,>= tmp5,tmp1,tmp3 /* compute the shift amt.and skip load if tmp5 > tmp1.*/ - ldwm 4(0,s_addr),tmp1 /* load up the first word from the source. tmp1 = *s_addr++*/ - zdep tmp3,28,29,tmp4 /* compute the number of bits to shift */ - mtctl tmp4,11 /* load the shift count into cr11 = shift count register.*/ - addibt,<,n -4,count,chkchnk2 /* first step in pre adjustment of count for looping.*/ - - ldwm 4(0,s_addr),tmp2 /* get either first or second word from source. */ - combt,= tmp5,r0,skip_mask2 /* don't mask if whole word is valid*/ - vshd tmp1,tmp2,tmp3 /* position data ! (delay slot)*/ - sh3add tmp5,r0,save /* setup r1*/ - mtctl save,r11 /* setup mask in save*/ - zvdepi -2,32,save - or save, tmp3, tmp3 - mtctl tmp4,11 /* re-load the shift count into cr11 */ - b skip_mask2 - copy r0, tmp5 /* zero out tmp5 so we don't try to mask again*/ - -chunk2: - ldwm 4(0,s_addr),tmp2 - vshd tmp1,tmp2,tmp3 - -skip_mask2: - uxor,nbz tmp3, r0, save - b,n null3 - stbys,b,m tmp3,4(0,d_addr) /* store ! */ - - ldwm 4(0,s_addr),tmp1 /* get 2nd word ! */ - vshd tmp2,tmp1,tmp3 /* position data ! */ - uxor,nbz tmp3, r0, save - b,n null4 - - addibf,< -8,count,chunk2 /* If count is still >= 8 do another loop.*/ - stbys,b,m tmp3,4(0,d_addr) /* store !*/ - -chkchnk2: - addibt,<,n 4,count,bp_0 /* if we don't have 4 bytes left then do the back porch (bp_0)*/ - -subchnk2: /* we have less than 8 chars to copy*/ - - ldwm 4(0,s_addr),tmp2 /* get next word !*/ - combt,= tmp5,r0,skip_mask3 - vshd tmp1,tmp2,tmp3 /* position data !*/ - sh3add tmp5,r0,save /* setup r1*/ - mtctl save,r11 /* setup mask in save*/ - zvdepi -2,32,save - or save, tmp3, tmp3 - mtctl tmp4,11 /* restore shift value again */ - copy r0, tmp5 /* zero out tmp5 so we don't try to mask again*/ -skip_mask3: - uxor,nbz tmp3,r0,save - b,n null4 - b bp_1 /* we now have less than 4 bytes to move*/ - stbys,b,m tmp3,4(0,d_addr) /* store !*/ - -bp_0: - copy tmp1,tmp2 /* switch registers used in the shift process.*/ - addibt,<=,n 4,count,done /* if count = -4 this implies that count = 0 -> done */ - -bp_1: - ldwm 4(0,s_addr),tmp1 /* get final word ! */ - vshd tmp2,tmp1,tmp3 /* position data !*/ - uxor,sbz tmp3,r0,save /* if some-byte-zero */ - b no_null /* don't goto no_null-find which null instead */ - add d_addr,count,d_addr /* get d_addr ready for stbys,e */ - extru,<> save,7,8,r0 - b found_null5 - copy r0, tmp5 - extru,<> save,15,8,r0 - b found_null5 - ldil 0x1FE000,tmp5 /* setup mask (FF000000)*/ - extru,<> save,23,8,r0 - b found_null5 - ldil 0x1FFFE0,tmp5 /* setup mask (FFFF0000)*/ - ldo -1(r0),tmp5 /* setup mask (FFFFFFFF)*/ -found_null5: - and tmp3,tmp5,tmp3 /* zero out tmp5 based on mask in tmp5*/ -no_null: - bv 0(r2) /* were done*/ - stbys,e tmp3,0(0,d_addr) /* store the data !*/ - -/* here we do ye old byte-at-a-time moves.*/ -byteloop: - addibt,=,n 4,count,done - comb,= 0,s_addr,done - stbs r0,0(d_addr) /* store null in case s_addr == NULL */ - ldbs,ma 1(s_addr),tmp1 -encore: - combt,=,n tmp1,r0, pad_null_bytes1 - stbs,ma tmp1,1(d_addr) - addibf,=,n -1,count,encore - ldbs,ma 1(s_addr),tmp1 - b,n done - -pnb_1: - addibt,=,n 4,count,done /* if count was already 0 then we're done*/ - -pad_null_bytes1: - combt,=,n count,r0,done /* if count==0 then exit */ -pad_null_bytes2: - addibf,= -1,count,pad_null_bytes2 - stbs,ma r0,1(d_addr) - b,n done - -pad_nulls: - addibf,<=,n -4,count,pad_nulls - stwm r0,4(d_addr) - b,n pnb_1 - - -null1: - extru,<> save,7,8,r0 - b found_null1 - copy r0, tmp5 - extru,<> save,15,8,r0 - b found_null1 - ldil 0x1FE000,tmp5 /* setup mask (FF000000)*/ - extru,<> save,23,8,r0 - b found_null1 - ldil 0x1FFFE0,tmp5 /* setup mask (FFFF0000)*/ - ldo -1(r0),tmp5 /* setup mask (FFFFFFFF)*/ -found_null1: - and tmp1,tmp5,tmp1 /*zero out tmp1 according to mask*/ - b pad_nulls /* nullify remaining count bytes*/ - stbys,b,m tmp1,4(0,d_addr) /* first word (account for alignment)*/ - - -null2: /* back porch case. We have less than 4 bytes to go.*/ - extru,<> save,7,8,r0 /* is null in 1st byte? */ - b found_null2 - copy r0, tmp5 - extru,<> save,15,8,r0 /* is null in 2nd byte? */ - b found_null2 - ldil 0x1FE000,tmp5 /* setup mask (FF000000)*/ - b found_null2 /* null must be in 3rd byte */ - ldil 0x1FFFE0,tmp5 /* setup mask (FFFF0000)*/ -found_null2: - and tmp1,tmp5,tmp1 /*zero out tmp1 according to mask*/ - bv 0(r2) /* we're done*/ - stbys,e tmp1,0(0,d_addr) /* last word (back porch)*/ - -null3: /* not_aligned case where null is found in first of two words--adjust count*/ - extru,<> save,7,8,r0 - b found_null3 - copy r0, tmp5 - extru,<> save,15,8,r0 - b found_null3 - ldil 0x1FE000,tmp5 /* setup mask (FF000000)*/ - extru,<> save,23,8,r0 - b found_null3 - ldil 0x1FFFE0,tmp5 /* setup mask (FFFF0000)*/ - ldo -1(r0),tmp5 /* setup mask (FFFFFFFF)*/ -found_null3: - addi 4,count,count /* fix count since null is in first of two words*/ - and tmp3,tmp5,tmp3 /*zero out tmp3 according to mask*/ - b pad_nulls /* nullify remaining count bytes*/ - stbys,b,m tmp3,4(d_addr) - -null4: /* not_aligned case where null is found in second of two words*/ - extru,<> save,7,8,r0 - b found_null4 - copy r0, tmp5 - extru,<> save,15,8,r0 - b found_null4 - ldil 0x1FE000,tmp5 /* setup mask (FF000000)*/ - extru,<> save,23,8,r0 - b found_null4 - ldil 0x1FFFE0,tmp5 /* setup mask (FFFF0000)*/ - ldo -1(r0),tmp5 /* setup mask (FFFFFFFF)*/ -found_null4: - and tmp3,tmp5,tmp3 /*zero out tmp4 according to mask*/ - b pad_nulls /* nullify remaining count bytes*/ - stbys,b,m tmp3,4(d_addr) - -done: -EXIT(strncpy) diff --git a/lib/machine/i386/Makefile.inc b/lib/machine/i386/Makefile.inc deleted file mode 100644 index 60c5c13..0000000 --- a/lib/machine/i386/Makefile.inc +++ /dev/null @@ -1,7 +0,0 @@ -if MACH_ADD_SETJMP -libc_a_SOURCES += %D%/setjmp.S -endif - -libc_a_SOURCES += \ - %D%/memchr.S %D%/memcmp.S %D%/memcpy.S %D%/memset.S %D%/strchr.S \ - %D%/memmove.S %D%/strlen.S %D%/i386mach.h diff --git a/lib/machine/i386/i386mach.h b/lib/machine/i386/i386mach.h deleted file mode 100644 index 403d24b..0000000 --- a/lib/machine/i386/i386mach.h +++ /dev/null @@ -1,83 +0,0 @@ -/* This file was based on the modified setjmp.S performed by - * Joel Sherill (joel@OARcorp.com) which specified the use - * of the __USER_LABEL_PREFIX__ and __REGISTER_PREFIX__ macros. - ** - ** This file is distributed WITHOUT ANY WARRANTY; without even the implied - ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* These are predefined by new versions of GNU cpp. */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -#define __REG_PREFIX__ % - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a##b - -/* Use the right prefix for global labels. */ - -#define SYM(x) CONCAT1(__USER_LABEL_PREFIX__, x) - -/* Use the right prefix for registers. */ - -#define REG(x) CONCAT1(__REG_PREFIX__, x) - -#define eax REG(eax) -#define ebx REG(ebx) -#define ecx REG(ecx) -#define edx REG(edx) -#define esi REG(esi) -#define edi REG(edi) -#define ebp REG(ebp) -#define esp REG(esp) - -#define st0 REG(st) -#define st1 REG(st(1)) -#define st2 REG(st(2)) -#define st3 REG(st(3)) -#define st4 REG(st(4)) -#define st5 REG(st(5)) -#define st6 REG(st(6)) -#define st7 REG(st(7)) - -#define ax REG(ax) -#define bx REG(bx) -#define cx REG(cx) -#define dx REG(dx) - -#define ah REG(ah) -#define bh REG(bh) -#define ch REG(ch) -#define dh REG(dh) - -#define al REG(al) -#define bl REG(bl) -#define cl REG(cl) -#define dl REG(dl) - -#define mm1 REG(mm1) -#define mm2 REG(mm2) -#define mm3 REG(mm3) -#define mm4 REG(mm4) -#define mm5 REG(mm5) -#define mm6 REG(mm6) -#define mm7 REG(mm7) - -#ifdef _I386MACH_NEED_SOTYPE_FUNCTION -#define SOTYPE_FUNCTION(sym) .type SYM(sym),@function -#else -#define SOTYPE_FUNCTION(sym) -#endif - -#ifndef _I386MACH_DISABLE_HW_INTERRUPTS -#define __CLI -#define __STI -#else -#define __CLI cli -#define __STI sti -#endif diff --git a/lib/machine/i386/machine/_fpmath.h b/lib/machine/i386/machine/_fpmath.h deleted file mode 100644 index 874439c..0000000 --- a/lib/machine/i386/machine/_fpmath.h +++ /dev/null @@ -1,56 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002, 2003 David Schultz - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -union IEEEl2bits { - long double e; - struct { - unsigned int manl :32; - unsigned int manh :32; - unsigned int exp :15; - unsigned int sign :1; - unsigned int junk :16; - } bits; - struct { - unsigned long long man :64; - unsigned int expsign :16; - unsigned int junk :16; - } xbits; -}; - -#define LDBL_NBIT 0x80000000 -#define mask_nbit_l(u) ((u).bits.manh &= ~LDBL_NBIT) - -#define LDBL_MANH_SIZE 32 -#define LDBL_MANL_SIZE 32 - -#define LDBL_TO_ARRAY32(u, a) do { \ - (a)[0] = (uint32_t)(u).bits.manl; \ - (a)[1] = (uint32_t)(u).bits.manh; \ -} while (0) diff --git a/lib/machine/i386/machine/fastmath.h b/lib/machine/i386/machine/fastmath.h deleted file mode 100644 index accfa87..0000000 --- a/lib/machine/i386/machine/fastmath.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef _MACHFASTMATH_H -#define _MACHFASTMATH_H - -#if defined(__GNUC__) && __STDC__ - 0 > 0 - -#define __str1__(__x) #__x -#define __str2__(__x) __str1__(__x) -#define __U_L_PREFIX__ __str2__(__USER_LABEL_PREFIX__) - -__extension__ double atan2(double, double) - __asm__(__U_L_PREFIX__ "_f_atan2"); -__extension__ double exp(double) - __asm__(__U_L_PREFIX__ "_f_exp"); -__extension__ double frexp(double, int*) - __asm__(__U_L_PREFIX__ "_f_frexp"); -__extension__ double ldexp(double, int) - __asm__(__U_L_PREFIX__ "_f_ldexp"); -__extension__ double log(double) - __asm__(__U_L_PREFIX__ "_f_log"); -__extension__ double log10(double) - __asm__(__U_L_PREFIX__ "_f_log10"); -__extension__ double pow(double, double) - __asm__(__U_L_PREFIX__ "_f_pow"); -__extension__ double tan(double) - __asm__(__U_L_PREFIX__ "_f_tan"); - -#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L - - -__extension__ float atan2f(float, float) - __asm__(__U_L_PREFIX__ "_f_atan2f"); -__extension__ float expf(float) - __asm__(__U_L_PREFIX__ "_f_expf"); -__extension__ float frexpf(float, int*) - __asm__(__U_L_PREFIX__ "_f_frexpf"); -__extension__ float ldexpf(float, int) - __asm__(__U_L_PREFIX__ "_f_ldexpf"); -__extension__ long long llrint(double) - __asm__(__U_L_PREFIX__ "_f_llrint"); -__extension__ long long llrintf(float) - __asm__(__U_L_PREFIX__ "_f_llrintf"); -__extension__ long long llrintl(long double) - __asm__(__U_L_PREFIX__ "_f_llrintl"); -__extension__ float logf(float) - __asm__(__U_L_PREFIX__ "_f_logf"); -__extension__ float log10f(float) - __asm__(__U_L_PREFIX__ "_f_log10f"); -__extension__ long lrint(double) - __asm__(__U_L_PREFIX__ "_f_lrint"); -__extension__ long lrintf(float) - __asm__(__U_L_PREFIX__ "_f_lrintf"); -__extension__ long lrintl(long double) - __asm__(__U_L_PREFIX__ "_f_lrintl"); -__extension__ float powf(float, float) - __asm__(__U_L_PREFIX__ "_f_powf"); -__extension__ double rint(double) - __asm__(__U_L_PREFIX__ "_f_rint"); -__extension__ float rintf(float) - __asm__(__U_L_PREFIX__ "_f_rintf"); -__extension__ long double rintl(long double) - __asm__(__U_L_PREFIX__ "_f_rintl"); -__extension__ float tanf(float) - __asm__(__U_L_PREFIX__ "_f_tanf"); -#endif - -#else - -double EXFUN(_f_atan2,(double, double)); -double EXFUN(_f_exp,(double)); -double EXFUN(_f_frexp,(double, int*)); -double EXFUN(_f_ldexp,(double, int)); -double EXFUN(_f_log,(double)); -double EXFUN(_f_log10,(double)); -double EXFUN(_f_pow,(double, double)); - -#define atan2(__y,__x) _f_atan2((__y),(__x)) -#define exp(__x) _f_exp(__x) -#define frexp(__x,__p) _f_frexp((__x),(__p)) -#define ldexp(__x,__e) _f_ldexp((__x),(__e)) -#define log(__x) _f_log(__x) -#define log10(__x) _f_log10(__x) -#define pow(__x,__y) _f_pow((__x),(__y)) - -#ifndef __STRICT_ANSI__ - -float EXFUN(_f_atan2f,(float, float)); -float EXFUN(_f_expf,(float)); -float EXFUN(_f_frexpf,(float, int*)); -float EXFUN(_f_ldexpf,(float, int)); -long long EXFUN(_f_llrint,(double)); -long long EXFUN(_f_llrintf,(float)); -long long EXFUN(_f_llrintl,(long double)); -float EXFUN(_f_logf,(float)); -float EXFUN(_f_log10f,(float)); -long EXFUN(_f_lrint,(double)); -long EXFUN(_f_lrintf,(float)); -long EXFUN(_f_lrintl,(long double)); -float EXFUN(_f_powf,(float, float)); -float EXFUN(_f_rint,(double)); -double EXFUN(_f_rintf,(float)); -long double EXFUN(_f_rintl,(long double)); - -#define atan2f(__y,__x) _f_atan2f((__y),(__x)) -#define expf(__x) _f_expf(__x) -#define frexpf(__x,__p) _f_frexpf((__x),(__p)) -#define ldexpf(__x,__e) _f_ldexpf((__x),(__e)) -#define llrint(__x) _f_llrint((__x)) -#define llrintf(__x) _f_llrintf((__x)) -#define llrintl(__x) _f_llrintl((__x)) -#define logf(__x) _f_logf(__x) -#define log10f(__x) _f_log10f(__x) -#define lrint(__x) _f_lrint((__x)) -#define lrintf(__x) _f_lrintf((__x)) -#define lrintl(__x) _f_lrintl((__x)) -#define powf(__x,y) _f_powf((__x),(__y)) -#define rint(__x) _f_rint((__x)) -#define rintf(__x) _f_rintf((__x)) -#define rintl(__x) _f_rintl((__x)) -#endif - -#endif /* GCC */ -#endif /* _MACHFASTMATH_H */ diff --git a/lib/machine/i386/memchr.S b/lib/machine/i386/memchr.S deleted file mode 100644 index d9b0bf2..0000000 --- a/lib/machine/i386/memchr.S +++ /dev/null @@ -1,135 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002, 2008 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - - #include "i386mach.h" - - .global SYM (memchr) - SOTYPE_FUNCTION(memchr) - -SYM (memchr): -#ifdef __iamcu__ - pushl edi - movl eax,edi - movl edx,eax - xorl edx,edx - testl ecx,ecx - jz L20 - - repnz - scasb - - setnz dl - decl edi - - decl edx - andl edi,edx -L20: - movl edx,eax - - popl edi -#else - pushl ebp - movl esp,ebp - pushl edi - movzbl 12(ebp),eax - movl 16(ebp),ecx - movl 8(ebp),edi - xorl edx,edx - testl ecx,ecx - jz L20 - -#ifdef __OPTIMIZE_SIZE__ - - cld - repnz - scasb - - setnz dl - decl edi - -#else /* !__OPTIMIZE_SIZE__ */ -/* Do byte-wise checks until string is aligned. */ - testl $3,edi - je L5 - cmpb (edi),al - je L15 - incl edi - decl ecx - je L20 - - testl $3,edi - je L5 - cmpb (edi),al - je L15 - incl edi - decl ecx - je L20 - - testl $3,edi - je L5 - cmpb (edi),al - je L15 - incl edi - decl ecx - je L20 - -/* Create a mask, then check a word at a time. */ -L5: - movb al,ah - movl eax,edx - sall $16,edx - orl edx,eax - pushl ebx - - .p2align 4,,7 -L8: - subl $4,ecx - jc L9 - movl (edi),edx - addl $4,edi - xorl eax,edx - leal -16843009(edx),ebx - notl edx - andl edx,ebx - testl $-2139062144,ebx - je L8 - - subl $4,edi - -L9: - popl ebx - xorl edx,edx - addl $4,ecx - je L20 - -/* Final byte-wise checks. */ - .p2align 4,,7 -L10: - cmpb (edi),al - je L15 - incl edi - decl ecx - jne L10 - - xorl edi,edi - -#endif /* !__OPTIMIZE_SIZE__ */ - -L15: - decl edx - andl edi,edx -L20: - movl edx,eax - - leal -4(ebp),esp - popl edi - leave -#endif - ret diff --git a/lib/machine/i386/memcmp.S b/lib/machine/i386/memcmp.S deleted file mode 100644 index 4a01b82..0000000 --- a/lib/machine/i386/memcmp.S +++ /dev/null @@ -1,104 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - - #include "i386mach.h" - - .global SYM (memcmp) - SOTYPE_FUNCTION(memcmp) - -SYM (memcmp): - -#ifdef __iamcu__ - pushl edi - pushl esi - movl eax,edi - movl edx,esi - cld - -/* check if length is zero in which case just return 0 */ - - xorl eax,eax - testl ecx,ecx - jz L4 - -/* compare any unaligned bytes or remainder bytes */ - repz - cmpsb - -/* set output to be < 0 if less than, 0 if equal, or > 0 if greater than */ - xorl edx,edx - movb -1(esi),dl - movb -1(edi),al - subl edx,eax - -L4: - popl esi - popl edi -#else - pushl ebp - movl esp,ebp - subl $16,esp - pushl ebx - pushl edi - pushl esi - movl 8(ebp),edi - movl 12(ebp),esi - movl 16(ebp),ecx - cld - -/* check if length is zero in which case just return 0 */ - - xorl eax,eax - testl ecx,ecx - jz L4 - -#ifndef __OPTIMIZE_SIZE__ - -/* if aligned on long boundary, compare doublewords at a time first */ - - movl edi,eax - orl esi,eax - testb $3,al - jne BYTECMP - movl ecx,ebx - shrl $2,ecx /* calculate number of long words to compare */ - repz - cmpsl - jz L5 - subl $4,esi - subl $4,edi - movl $4,ecx - jmp BYTECMP -L5: - andl $3,ebx /* calculate number of remaining bytes */ - movl ebx,ecx - -#endif /* not __OPTIMIZE_SIZE__ */ - -BYTECMP: /* compare any unaligned bytes or remainder bytes */ - repz - cmpsb - -/* set output to be < 0 if less than, 0 if equal, or > 0 if greater than */ -L3: - xorl edx,edx - movb -1(esi),dl - xorl eax,eax - movb -1(edi),al - subl edx,eax - -L4: - leal -28(ebp),esp - popl esi - popl edi - popl ebx - leave -#endif - ret diff --git a/lib/machine/i386/memcpy.S b/lib/machine/i386/memcpy.S deleted file mode 100644 index a14aa2a..0000000 --- a/lib/machine/i386/memcpy.S +++ /dev/null @@ -1,86 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - - #include "i386mach.h" - - .global SYM (memcpy) - SOTYPE_FUNCTION(memcpy) - -SYM (memcpy): - -#ifdef __iamcu__ - pushl esi - pushl edi - movl eax,edi - movl edx,esi - - rep movsb - - popl edi - popl esi -#else - pushl ebp - movl esp,ebp - pushl esi - pushl edi - pushl ebx - movl 8(ebp),edi - movl 16(ebp),ecx - movl 12(ebp),esi - cld - -#ifndef __OPTIMIZE_SIZE__ - - cmpl $8,ecx - jbe .L3 - -/* move any preceding bytes until destination address is long word aligned */ - - movl edi,edx - movl ecx,ebx - andl $3,edx - jz .L11 - movl $4,ecx - subl edx,ecx - andl $3,ecx - subl ecx,ebx - rep - movsb - - mov ebx,ecx - -/* move bytes a long word at a time */ - -.L11: - shrl $2,ecx - .p2align 2 - rep - movsl - - movl ebx,ecx - andl $3,ecx - -#endif /* !__OPTIMIZE_SIZE__ */ - -/* handle any remaining bytes */ - -.L3: - rep - movsb -.L5: - movl 8(ebp),eax - - leal -12(ebp),esp - popl ebx - popl edi - popl esi - leave -#endif - ret diff --git a/lib/machine/i386/memmove.S b/lib/machine/i386/memmove.S deleted file mode 100644 index 1026582..0000000 --- a/lib/machine/i386/memmove.S +++ /dev/null @@ -1,173 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - - #include "i386mach.h" - - .global SYM (memmove) - SOTYPE_FUNCTION(memmove) - -SYM (memmove): - -#ifdef __iamcu__ - pushl esi - pushl edi - movl eax,edi - movl edx,esi - cmp esi,edi - ja .Lcopy_backward - je .Lbwd_write_0bytes - - rep movsb - - popl edi - popl esi - ret - -.Lcopy_backward: - lea -1(edi,ecx),edi - lea -1(esi,ecx),esi - std - rep movsb - cld - -.Lbwd_write_0bytes: - popl edi - popl esi -#else - pushl ebp - movl esp,ebp - pushl esi - pushl edi - pushl ebx - movl 8(ebp),edi - movl 16(ebp),ecx - movl 12(ebp),esi - -/* check for destructive overlap (src < dst && dst < src + length) */ - - cld - cmpl edi,esi - jae .L2 - leal -1(ecx,esi),ebx - cmpl ebx,edi - ja .L2 - -/* IF: destructive overlap, must copy backwards */ - - addl ecx,esi - addl ecx,edi - std - -#ifndef __OPTIMIZE_SIZE__ - - cmpl $8,ecx - jbe .L13 -.L18: - -/* move trailing bytes in reverse until destination address is long word aligned */ - - movl edi,edx - movl ecx,ebx - andl $3,edx - jz .L21 - - movl edx,ecx - decl esi - decl edi - subl ecx,ebx - rep - movsb - - mov ebx,ecx - incl esi - incl edi - -.L21: - -/* move bytes in reverse, a long word at a time */ - - shrl $2,ecx - subl $4,esi - subl $4,edi - rep - movsl - - addl $4,esi - addl $4,edi - movl ebx,ecx - andl $3,ecx - -#endif /* !__OPTIMIZE_SIZE__ */ - -/* handle any remaining bytes not on a long word boundary */ - -.L13: - decl esi - decl edi - -.L15: - rep - movsb - jmp .L5 - .p2align 4,,7 - -/* ELSE: no destructive overlap so we copy forwards */ - -.L2: - -#ifndef __OPTIMIZE_SIZE__ - - cmpl $8,ecx - jbe .L3 - -/* move any preceding bytes until destination address is long word aligned */ - - movl edi,edx - movl ecx,ebx - andl $3,edx - jz .L11 - movl $4,ecx - subl edx,ecx - andl $3,ecx - subl ecx,ebx - rep - movsb - - mov ebx,ecx - -/* move bytes a long word at a time */ - -.L11: - shrl $2,ecx - .p2align 2 - rep - movsl - - movl ebx,ecx - andl $3,ecx - -#endif /* !__OPTIMIZE_SIZE__ */ - -/* handle any remaining bytes */ - -.L3: - rep - movsb -.L5: - movl 8(ebp),eax - cld - - leal -12(ebp),esp - popl ebx - popl edi - popl esi - leave -#endif - ret diff --git a/lib/machine/i386/memset.S b/lib/machine/i386/memset.S deleted file mode 100644 index 83b2556..0000000 --- a/lib/machine/i386/memset.S +++ /dev/null @@ -1,109 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002, 2008 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - - #include "i386mach.h" - - .global SYM (memset) - SOTYPE_FUNCTION(memset) - -SYM (memset): - -#ifdef __iamcu__ - pushl edi - movl eax,edi - movzbl dl,eax - mov edi,edx - rep stosb - mov edx,eax - popl edi -#else - pushl ebp - movl esp,ebp - pushl edi - movl 8(ebp),edi - movzbl 12(ebp),eax - movl 16(ebp),ecx - cld - -#ifndef __OPTIMIZE_SIZE__ -/* Less than 16 bytes won't benefit from the 'rep stosl' loop. */ - cmpl $16,ecx - jbe .L19 - testl $7,edi - je .L10 - -/* It turns out that 8-byte aligned 'rep stosl' outperforms - 4-byte aligned on some x86 platforms. */ - movb al,(edi) - incl edi - decl ecx - testl $7,edi - je .L10 - - movb al,(edi) - incl edi - decl ecx - testl $7,edi - je .L10 - - movb al,(edi) - incl edi - decl ecx - testl $7,edi - je .L10 - - movb al,(edi) - incl edi - decl ecx - testl $7,edi - je .L10 - - movb al,(edi) - incl edi - decl ecx - testl $7,edi - je .L10 - - movb al,(edi) - incl edi - decl ecx - testl $7,edi - je .L10 - - movb al,(edi) - incl edi - decl ecx - -/* At this point, ecx>8 and edi%8==0. */ -.L10: - movb al,ah - movl eax,edx - sall $16,edx - orl edx,eax - - movl ecx,edx - shrl $2,ecx - andl $3,edx - rep - stosl - movl edx,ecx -#endif /* not __OPTIMIZE_SIZE__ */ - -.L19: - rep - stosb - - movl 8(ebp),eax - - leal -4(ebp),esp - popl edi - leave -#endif - ret diff --git a/lib/machine/i386/setjmp.S b/lib/machine/i386/setjmp.S deleted file mode 100644 index 45c689f..0000000 --- a/lib/machine/i386/setjmp.S +++ /dev/null @@ -1,132 +0,0 @@ -/* This is file is a merger of SETJMP.S and LONGJMP.S */ -/* - * This file was modified to use the __USER_LABEL_PREFIX__ and - * __REGISTER_PREFIX__ macros defined by later versions of GNU cpp by - * Joel Sherrill (joel@OARcorp.com) - * Slight change: now includes i386mach.h for this (Werner Almesberger) - * - * Copyright (C) 1991 DJ Delorie - * All rights reserved. - * - * Redistribution, modification, and use in source and binary forms is permitted - * provided that the above copyright notice and following paragraph are - * duplicated in all such forms. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - - /* - ** jmp_buf: - ** eax ebx ecx edx esi edi ebp esp eip - ** 0 4 8 12 16 20 24 28 32 - ** - ** Intel MCU jmp_buf: - ** ebx esi edi ebp esp eip - ** 0 4 8 12 16 20 - */ - - #include "i386mach.h" - - .global SYM (setjmp) - .global SYM (longjmp) - SOTYPE_FUNCTION(setjmp) - SOTYPE_FUNCTION(longjmp) - -SYM (setjmp): - -#ifdef __iamcu__ - /* Store EIP. */ - movl 0(esp),ecx - movl ecx,20(eax) - - movl ebx,0 (eax) - movl esi,4 (eax) - movl edi,8 (eax) - movl ebp,12(eax) - - /* Skip return address, which will be pushed onto stack in - longjmp, and store SP. */ - leal 4(esp),ecx - movl ecx,16(eax) - - xorl eax,eax -#else - pushl ebp - movl esp,ebp - - pushl edi - movl 8 (ebp),edi - - movl eax,0 (edi) - movl ebx,4 (edi) - movl ecx,8 (edi) - movl edx,12 (edi) - movl esi,16 (edi) - - movl -4 (ebp),eax - movl eax,20 (edi) - - movl 0 (ebp),eax - movl eax,24 (edi) - - movl esp,eax - addl $12,eax - movl eax,28 (edi) - - movl 4 (ebp),eax - movl eax,32 (edi) - - popl edi - movl $0,eax - leave -#endif - ret - -SYM (longjmp): -#ifdef __iamcu__ - /* Check retval. */ - testl edx,edx - jne 0f - incl edx -0: - /* Restore stack first. */ - movl 16(eax),esp - - /* Put return address on stack. */ - pushl 20(eax) - - movl 0(eax),ebx - movl 4(eax),esi - movl 8(eax),edi - movl 12(eax),ebp - movl edx,eax -#else - pushl ebp - movl esp,ebp - - movl 8(ebp),edi /* get jmp_buf */ - movl 12(ebp),eax /* store retval in j->eax */ - testl eax,eax - jne 0f - incl eax -0: - movl eax,0(edi) - - movl 24(edi),ebp - - __CLI - movl 28(edi),esp - - pushl 32(edi) - - movl 0(edi),eax - movl 4(edi),ebx - movl 8(edi),ecx - movl 12(edi),edx - movl 16(edi),esi - movl 20(edi),edi - __STI -#endif - - ret diff --git a/lib/machine/i386/strchr.S b/lib/machine/i386/strchr.S deleted file mode 100644 index 43ee0fb..0000000 --- a/lib/machine/i386/strchr.S +++ /dev/null @@ -1,197 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002, 2008 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - - #include "i386mach.h" - - .global SYM (strchr) - SOTYPE_FUNCTION(strchr) - -SYM (strchr): - -#ifdef __iamcu__ - xorl ecx,ecx - movb dl,cl - -/* loop while (*s && *s++ != c) */ - leal -1(eax),eax -L15: - incl eax - movb (eax),dl - testb dl,dl - je L14 - cmpb cl,dl - jne L15 - -L14: -/* if (*s == c) return address otherwise return NULL */ - cmpb cl,(eax) - je L19 - xorl eax,eax - -L19: - ret -#else - pushl ebp - movl esp,ebp - pushl edi - pushl ebx - xorl ebx,ebx - movl 8(ebp),edi - addb 12(ebp),bl - -#ifndef __OPTIMIZE_SIZE__ -/* Special case strchr(p,0). */ - je L25 - -/* Do byte-wise checks until string is aligned. */ - test $3,edi - je L5 - movl edi,eax - movb (eax),cl - testb cl,cl - je L14 - cmpb bl,cl - je L19 - incl edi - - test $3,edi - je L5 - movl edi,eax - movb (eax),cl - testb cl,cl - je L14 - cmpb bl,cl - je L19 - incl edi - - test $3,edi - je L5 - movl edi,eax - movb (eax),cl - testb cl,cl - je L14 - cmpb bl,cl - je L19 - incl edi - -/* create 4 byte mask which is just the desired byte repeated 4 times */ -L5: - movl ebx,ecx - sall $8,ebx - subl $4,edi - orl ecx,ebx - movl ebx,edx - sall $16,ebx - orl edx,ebx - -/* loop performing 4 byte mask checking for 0 byte or desired byte */ - .p2align 4,,7 -L10: - addl $4,edi - movl (edi),ecx - leal -16843009(ecx),edx - movl ecx,eax - notl eax - andl eax,edx - testl $-2139062144,edx - jne L9 - - xorl ebx,ecx - leal -16843009(ecx),edx - notl ecx - andl ecx,edx - testl $-2139062144,edx - je L10 -#endif /* not __OPTIMIZE_SIZE__ */ - -/* loop while (*s && *s++ != c) */ -L9: - leal -1(edi),eax - .p2align 4,,7 -L15: - incl eax - movb (eax),dl - testb dl,dl - je L14 - cmpb bl,dl - jne L15 - -L14: -/* if (*s == c) return address otherwise return NULL */ - cmpb bl,(eax) - je L19 - xorl eax,eax - -L19: - leal -8(ebp),esp - popl ebx - popl edi - leave - ret - -#ifndef __OPTIMIZE_SIZE__ -/* Special case strchr(p,0). */ -#if 0 - /* Hideous performance on modern machines. */ -L25: - cld - movl $-1,ecx - xor eax,eax - repnz - scasb - leal -1(edi),eax - jmp L19 -#endif -L25: -/* Do byte-wise checks until string is aligned. */ - test $3,edi - je L26 - movl edi,eax - movb (eax),cl - testb cl,cl - je L19 - incl edi - - test $3,edi - je L26 - movl edi,eax - movb (eax),cl - testb cl,cl - je L19 - incl edi - - test $3,edi - je L26 - movl edi,eax - movb (eax),cl - testb cl,cl - je L19 - incl edi - -L26: - subl $4,edi - -/* loop performing 4 byte mask checking for desired 0 byte */ - .p2align 4,,7 -L27: - addl $4,edi - movl (edi),ecx - leal -16843009(ecx),edx - movl ecx,eax - notl eax - andl eax,edx - testl $-2139062144,edx - je L27 - - jmp L9 - -#endif /* !__OPTIMIZE_SIZE__ */ - -#endif /* __iamcu__ */ diff --git a/lib/machine/i386/strlen.S b/lib/machine/i386/strlen.S deleted file mode 100644 index 373ea0f..0000000 --- a/lib/machine/i386/strlen.S +++ /dev/null @@ -1,102 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002, 2008 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - - #include "i386mach.h" - - .global SYM (strlen) - SOTYPE_FUNCTION(strlen) - -SYM (strlen): - - pushl ebp - movl esp,ebp - pushl edi -#ifdef __iamcu__ - movl eax,edx -#else - movl 8(ebp),edx -#endif - -#if defined __OPTIMIZE_SIZE__ || defined __iamcu__ - cld - movl edx,edi - movl $4294967295,ecx - xor eax,eax - repnz - scasb -#else -/* Modern x86 hardware is much faster at double-word - manipulation than with bytewise repnz scasb. */ - -/* Do byte-wise checks until string is aligned. */ - movl edx,edi - test $3,edi - je L5 - movb (edi),cl - incl edi - testb cl,cl - je L15 - - test $3,edi - je L5 - movb (edi),cl - incl edi - testb cl,cl - je L15 - - test $3,edi - je L5 - movb (edi),cl - incl edi - testb cl,cl - je L15 - -L5: - subl $4,edi - -/* loop performing 4 byte mask checking for desired 0 byte */ - .p2align 4,,7 -L10: - addl $4,edi - movl (edi),ecx - leal -16843009(ecx),eax - notl ecx - andl ecx,eax - testl $-2139062144,eax - je L10 - -/* Find which of four bytes is 0. */ - notl ecx - incl edi - - testb cl,cl - je L15 - incl edi - shrl $8,ecx - - testb cl,cl - je L15 - incl edi - shrl $8,ecx - - testb cl,cl - je L15 - incl edi - -#endif - -L15: - subl edx,edi - leal -1(edi),eax - - leal -4(ebp),esp - popl edi - leave - ret diff --git a/lib/machine/i960/Makefile.inc b/lib/machine/i960/Makefile.inc deleted file mode 100644 index cb78946..0000000 --- a/lib/machine/i960/Makefile.inc +++ /dev/null @@ -1,29 +0,0 @@ -libc_a_SOURCES += \ - %D%/memccpy_ca.S \ - %D%/memccpy.S \ - %D%/memchr_ca.S \ - %D%/memchr.S \ - %D%/memcmp_ca.S \ - %D%/memcmp.S \ - %D%/memcpy_ca.S \ - %D%/memcpy.S \ - %D%/memset.S \ - %D%/setjmp.S \ - %D%/strchr_ca.S \ - %D%/strchr.S \ - %D%/strcmp_ca.S \ - %D%/strcmp.S \ - %D%/strcpy_ca.S \ - %D%/strcpy.S \ - %D%/strcspn.S \ - %D%/strdup.S \ - %D%/strlen_ca.S \ - %D%/strlen.S \ - %D%/strncat_ca.S \ - %D%/strncat.S \ - %D%/strncmp_ca.S \ - %D%/strncmp.S \ - %D%/strncpy_ca.S \ - %D%/strncpy.S \ - %D%/strpbrk.S \ - %D%/strrchr.S diff --git a/lib/machine/i960/memccpy.S b/lib/machine/i960/memccpy.S deleted file mode 100644 index df19472..0000000 --- a/lib/machine/i960/memccpy.S +++ /dev/null @@ -1,143 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "memccpy.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1989,1993 Intel Corp., all rights reserved - */ -/* - procedure memccpy (optimized assembler version for the 80960K series) - - dest_addr = memccpy (dest_addr, src_addr, char, len) - - copy len bytes pointed to by src_addr to the space pointed to by - dest_addr, stopping if char is copied. If char is copied, - return address of byte after char in dest string; else null. - - - Undefined behavior will occur if the end of the source array is in - the last two words of the program's allocated memory space. This - is so because the routine fetches ahead. Disallowing the fetch - ahead would impose a severe performance penalty. - - Undefined behavior will also occur if the source and destination - strings overlap. - - Strategy: - - Fetch the source array by words and store them by words to the - destination array, until there are fewer than three bytes left - to copy. Then, using the last word of the source (the one that - contains the remaining 0, 1, 2, or 3 bytes to be copied), store - a byte at a time until Ldone. - - Tactics: - - 1) Do NOT try to fetch and store the words in a word aligned manner - because, in my judgement, the performance degradation experienced due - to non-aligned accesses does NOT outweigh the time and complexity added - by the preamble and convoluted body that would be necessary to assure - alignment. This is supported by the intuition that most source and - destination arrays (even more true of most big source arrays) will - be word aligned to begin with. - - 2) Rather than decrementing len to zero, - I calculate the address of the byte after the last byte of the - destination array, and quit when the destination byte pointer passes - that. - -*/ - - .globl _memccpy - .leafproc _memccpy, __memccpy - .align 2 -_memccpy: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__memccpy: - mov g14, g13 # preserve return address - cmpibge 0,g3,Lexit_char_not_found - - addo g3,g1,g3 # compute beyond end of src - ld (g1), g7 # fetch first word of source - lda 0xff,g5 # mask for char - and g5,g2,g2 # extract only char - shlo 8,g2,g6 - or g2,g6,g6 - shlo 16,g6,g4 - or g6,g4,g6 # word of char - b Lwloop_b - -Lwloop_a: - ld (g1), g7 # fetch ahead next word of source - st g4, (g0) # store word to dest - addo 4, g0, g0 # post-increment dest pointer -Lwloop_b: # word copying loop - addo 4, g1, g1 # pre-increment src pointer - cmpo g3, g1 # is len <= 3 ? - mov g7, g4 # keep a copy of the current word - bl Lcloop_setup # quit word loop if less than 4 bytes - scanbyte g6, g7 # check for char - bno Lwloop_a # continue word loop if char not found. - -Lcloop_setup: - subo 4, g1, g1 # back down src pointer - cmpobe g1, g3, Lexit_char_not_found - -Lcloop_a: # character copying loop (len < 3) - and g5,g4,g7 # check the byte against char - cmpo g7,g2 - stob g7,(g0) # store the byte - addo 1, g0, g0 - be Lexit_char_found - addo 1,g1,g1 - cmpo g1,g3 - shro 8,g4,g4 # position next byte - bne Lcloop_a - -Lexit_char_not_found: - mov 0, g0 -Lexit_char_found: - lda 0,g14 - bx (g13) # g0 = dest array address; g14 = 0 -Lrett: - ret - - -/* end of memccpy */ diff --git a/lib/machine/i960/memccpy_ca.S b/lib/machine/i960/memccpy_ca.S deleted file mode 100644 index 60c197b..0000000 --- a/lib/machine/i960/memccpy_ca.S +++ /dev/null @@ -1,245 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "mccpy_ca.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1989,1993 Intel Corp., all rights reserved - */ - -/* - procedure memccpy (optimized assembler version for the 80960CA) - - dest_addr = memccpy (dest_addr, src_addr, char, len) - - copy len bytes pointed to by src_addr to the space pointed to by - dest_addr, stopping if char is copied. If char is copied, - return address of byte after char in dest string; else null. - - Undefined behavior will occur if the end of the source array is in - the last two words of the program's allocated memory space. This - is so because the routine fetches ahead. Disallowing the fetch - ahead would impose a severe performance penalty. - - Undefined behavior will also occur if the source and destination - strings overlap. - - - This program handles five cases: - - 1) both arguments start on a word boundary - 2) neither are word aligned, but they are offset by the same amount - 3) source is word aligned, destination is not - 4) destination is word aligned, source is not - 5) neither is word aligned, and they are offset by differing amounts - - At the time of this writing, only g0 thru g7 and g13 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers, plus tricky use of g14 are sufficient - to implement the routine. -*/ - -#if __i960_BIG_ENDIAN__ -#define MSW g6 -#define LSW g7 -#else -#define LSW g6 -#define MSW g7 -#endif - - .globl _memccpy - .leafproc _memccpy, __memccpy - .align 2 -_memccpy: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__memccpy: - notand g1,3,g5 # extract word addr of start of src - lda (g14),g13 # preserve return address - cmpibge.f 0,g3,Lexit_char_not_found # Lexit if # of bytes to move is <= 0 - cmpo g5,g1 # check alignment of src - ld (g5),LSW # fetch word containing at least first byte - notand g0,3,g4 # extract word addr of start of dest - lda 4(g5),g5 # advance src word addr - shlo 24,g2,g2 # reduce char to single byte - bne.f Lcase_245 # branch if src is NOT word aligned - -Lcase_13: - cmpobe.t g0,g4,Lcase_1_setup # branch if dest word aligned - -Lcase_3: # src is word aligned; dest is not - mov LSW,MSW # make copy of first word of src - addo 4,g4,g1 # move dest word ptr to first word boundary - lda 32,g14 # initialize shift count to zero - -Lcase_25: -Lcase_3_cloop_at_start: # character copying loop for start of dest str - cmpdeci 0,g3,g3 # is max_bytes exhausted? -#if __i960_BIG_ENDIAN__ - lda -8(g14),g14 # augment the shift counter -#else - lda 8(g14),g14 # augment the shift counter -#endif - be.f Lexit_char_not_found # Lexit if max_bytes is exhausted -#if __i960_BIG_ENDIAN__ - rotate 8,MSW,MSW # move next byte into position for extraction -#endif - shlo 24,MSW,g4 - stob MSW,(g0) # store the byte in dest - cmpo g4,g2 - lda 1(g0),g0 # post-increment dest ptr -#if ! __i960_BIG_ENDIAN__ - shro 8,MSW,MSW # move next byte into position for extraction -#endif - be.f Lexit_char_found # Lexit if char found - cmpobne.t g1,g0,Lcase_3_cloop_at_start # branch if reached word boundary - - ld (g5),MSW # fetch msw of operand for double shift - -Lcase_4: - shro 8,g2,g4 - or g4,g2,g1 - shro 16,g1,g4 - or g4,g1,g4 - -#if __i960_BIG_ENDIAN__ - cmpobne 0,g14,Lcase_3_wloop - -Lcase_3_wloop2: - cmpi g3,4 # less than four bytes to move? - lda 4(g5),g5 # post-increment src word addr - mov LSW,g1 # extract 4 bytes of src - bl.f Lcase_13_cloop_setup # branch if < four bytes left to move - scanbyte g4,g1 # branch if word has char in it - bo.f Lcase_13_cloop_setup - mov MSW,LSW # move msw to lsw - ld (g5),MSW # pre-fetch msw of operand for double shift - subi 4,g3,g3 # decrease max_byte count by the 4 bytes moved - st g1,(g0) # store 4 bytes to dest - addo 4,g0,g0 # post-increment dest ptr - b Lcase_3_wloop2 -#endif - -Lcase_3_wloop: - cmpi g3,4 # less than four bytes to move? - lda 4(g5),g5 # post-increment src word addr - eshro g14,g6,g1 # extract 4 bytes of src - bl.f Lcase_13_cloop_setup # branch if < four bytes left to move - scanbyte g4,g1 # branch if word has char in it - bo.f Lcase_13_cloop_setup - mov MSW,LSW # move msw to lsw - ld (g5),MSW # pre-fetch msw of operand for double shift - subi 4,g3,g3 # decrease max_byte count by the 4 bytes moved - st g1,(g0) # store 4 bytes to dest - addo 4,g0,g0 # post-increment dest ptr - b Lcase_3_wloop - -Lcase_1_setup: - subo 4,g0,g0 # store is pre-incrementing; back up dest addr - shro 8,g2,g4 - or g4,g2,MSW - shro 16,MSW,g4 - or g4,MSW,g4 - b Lcase_1 -Lcase_1_wloop: # word copying loop - subi 4,g3,g3 # decrease max_byte count by the 4 bytes moved - ld (g5),LSW # pre-fetch next word of src - addo 4,g5,g5 # post-increment src addr - st g1,(g0) # store word in dest string -Lcase_1: # src and dest are word aligned - cmpi g3,4 # check for fewer than four bytes to move - addo 4,g0,g0 # pre-increment dest addr - lda (LSW),g1 # keep a copy of the src word - bl.f Lcase_13_cloop_setup # branch if less than four bytes to copy - scanbyte LSW,g4 # branch if char is not in foursome - bno.t Lcase_1_wloop -Lcase_13_cloop_setup: - cmpibe.f 0,g3,Lexit_char_not_found # Lexit if max_bytes is exhausted - -Lcase_1_cloop: -#if __i960_BIG_ENDIAN__ - rotate 8,g1,g1 # move next byte into position for extraction -#endif - shlo 24,g1,g4 - stob g1,(g0) # store the byte in dest - cmpo g4,g2 - lda 1(g0),g0 # post-increment dest byte addr - subi 1,g3,g3 - be.f Lexit_char_found # Lexit if char reached - cmpi 0,g3 -#if ! __i960_BIG_ENDIAN__ - shro 8,g1,g1 # move next byte into position for extraction -#endif - bne.t Lcase_1_cloop # continue if len not exhausted - -Lexit_char_not_found: - mov 0,g0 -Lexit_char_found: - lda 0,g14 - bx (g13) # g0 = dest array address; g14 = 0 -Lrett: - ret - - -Lcase_245: - cmpo g0,g4 # check alignment of dest - ld (g5),MSW # pre-fetch second half - and 3,g1,g1 # compute shift count - shlo 3,g1,g14 -#if __i960_BIG_ENDIAN__ - subo g14,0,g14 # adjust shift count for big endian -#endif - be.t Lcase_4 # branch if dest is word aligned - or g4,g1,g1 # is src earlier in word, later, or sync w/ dst - cmpo g0,g1 # < indicates first word of dest has more bytes - /* than first word of source. */ - eshro g14,g6,g4 # extract four bytes - lda 4(g0),g1 # move dest word addr to first word boundary -#if __i960_BIG_ENDIAN__ - bge.f 1f -#else - bg.f 1f -#endif - mov MSW,LSW - lda 4(g5),g5 # move src word addr to second word boundary -1: - notand g1,3,g1 - mov g4,MSW - b Lcase_25 - -/* end of memccpy */ diff --git a/lib/machine/i960/memchr.S b/lib/machine/i960/memchr.S deleted file mode 100644 index e9a4e42..0000000 --- a/lib/machine/i960/memchr.S +++ /dev/null @@ -1,130 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "memchr.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ - -/* - procedure memchr (optimized assembler version for the 80960K series) - - src_addr = memchr (src_addr, char, max_bytes) - - searching from src_addr for a span of max_bytes bytes, return a - pointer to the first byte in the source array that contains the - indicated char. Return null if the char is not found. - - Undefined behavior will occur if the last byte of the source array - is in the last two words of the program's allocated memory space. - This is so because memchr fetches ahead. Disallowing the fetch - ahead would impose a severe performance penalty. - - Strategy: - - Fetch the source array by words and scanbyte the words for the - char until either a word with the byte is found or max_bytes is - exhausted. In the former case, move through the word to find the - matching byte and return its memory address. In the latter case, - return zero (null). - - Tactics: - - 1) Do NOT try to fetch the words in a word aligned manner because, - in my judgement, the performance degradation experienced due to - non-aligned accesses does NOT outweigh the time and complexity added - by the preamble that would be necessary to assure alignment. This - is supported by the intuition that most source arrays (even more - true of most big source arrays) will be word aligned to begin with. - - 2) Rather than decrementing max_bytes to zero, I calculate the - address of the byte after the last byte of the source array, and - quit when the source byte pointer passes that. Refining, actually - I calculate the address of the fifth byte after the last byte of - the source array, because the source byte pointer is ahead of the - actual examination point due to fetch ahead. -*/ - - .globl _memchr - .globl __memchr - .leafproc _memchr, __memchr - .align 2 -_memchr: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__memchr: - - mov g14,g13 # preserve return address - lda 0xff,g7 # byte extraction mask - and g1,g7,g1 # make char an 8-bit ordinal - mov 0,g14 # conform to register linkage standard - cmpibge 0,g2,Lnot_found # do nothing if max_bytes <= 0 - addo 4,g0,g6 # post-increment src word pointer - addo g2,g6,g2 # compute ending address from start and len - ld (g0),g4 # fetch first word - shlo 8,g1,g3 # broadcast the char to four bytes - or g1,g3,g3 - shlo 16,g3,g5 - or g3,g5,g3 - -Lsearch_for_word_with_char: - mov g4,g5 # keep a copy of word - scanbyte g3,g5 # check for byte with char - ld (g6),g4 # fetch next word of src - bo Lsearch_for_char # branch if null found - addo 4,g6,g6 # post-increment src word pointer - cmpobge g2,g6,Lsearch_for_word_with_char # branch if max_bytes > 3 - -Lnot_found: - mov 0,g0 # char not found. Return null - bx (g13) # g0 = addr of char in src (or null); g14 = 0 -Lrett: - ret - -Lsearch_for_char: - cmpobe.f g6,g2,Lnot_found # quit if max_bytes exhausted - and g5,g7,g0 # extract byte - cmpo g1,g0 # is it char? - addo 1,g6,g6 # bump src byte ptr - shro 8,g5,g5 # shift word to position next byte - bne.t Lsearch_for_char - subo 5,g6,g0 # back up the byte pointer - bx (g13) - -/* end of memchr */ diff --git a/lib/machine/i960/memchr_ca.S b/lib/machine/i960/memchr_ca.S deleted file mode 100644 index ac80be7..0000000 --- a/lib/machine/i960/memchr_ca.S +++ /dev/null @@ -1,153 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "memchr_ca.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ - -/* - procedure memchr (optimized assembler version for the CA) - - src_addr = memchr (src_addr, char, max_bytes) - - searching from src_addr for max_bytes bytes, return a pointer to the - first byte that contains the indicated byte in the source string. - Return null if the byte is not found. - - Undefined behavior will occur if the end of the source string (i.e. - the terminating null byte) is in the last two words of the program's - allocated memory space. This is so because, in several cases, memchr - will fetch ahead. Disallowing the fetch ahead would impose a severe - performance penalty. - - This program handles two cases: - - 1) the argument starts on a word boundary - 2) the argument doesn't start on a word boundary - - At the time of this writing, only g0 thru g7 and g13 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers, plus tricky use of g14 are sufficient - to implement the routine. The registers are used as follows: - - g0 src ptr; upon return it is a pointer to the matching byte, or null - g1 char to seek - g2 maximum number of bytes to check - g3 char to seek, broadcast to all four bytes - g4 word of the source string - g5 copy of the word - g6 mask to avoid unimportant bytes in first word - g7 byte extraction mask - g13 return address - g14 -*/ - - .globl _memchr - .globl __memchr - .leafproc _memchr, __memchr - .align 2 -_memchr: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__memchr: - - mov g14,g13 # preserve return address - lda 0xff,g7 # byte extraction mask - and g1,g7,g1 # make char an 8-bit ordinal - lda 0,g14 # conform to register linkage standard - cmpibge.f 0,g2,Lnot_found # do nothing if max_bytes <= 0 - addo g0,g2,g2 # compute ending address from start and len - and g0,3,g6 # extract byte offset of src - notand g0,3,g0 # extract word addr of start of src - shlo 8,g1,g3 # broadcast the char to four bytes - ld (g0),g4 # fetch word containing at least first byte - or g1,g3,g3 - shlo 16,g3,g5 - cmpo g1,g7 # is char being sought 0xff? - or g5,g3,g3 - shlo 3,g6,g6 # get shift count for making mask for first word - subi 1,0,g5 # mask initially all ones -#if __i960_BIG_ENDIAN__ - shro g6,g5,g5 # get mask for bytes needed from first word -#else - shlo g6,g5,g5 # get mask for bytes needed from first word -#endif - notor g4,g5,g4 # set unneeded bytes to all ones - be.f Lsearch_for_0xff # branch if seeking 0xff - -Lsearch_for_word_with_char: - scanbyte g3,g4 # check for byte with char - lda 4(g0),g0 # pre-increment src word pointer - mov g4,g5 # keep a copy of word - ld (g0),g4 # fetch next word of src - bo.f Lsearch_for_char # branch if null found - cmpoble.t g0,g2,Lsearch_for_word_with_char # branch if not null - -Lnot_found: - mov 0,g0 # char not found. Return null -Lexit_code: - bx (g13) # g0 = addr of char in src (or null); g14 = 0 -Lrett: - ret - -Lsearch_for_char: - subo 4,g0,g0 # back up the byte pointer -Lsearch_for_char.a: - cmpobe.f g0,g2,Lnot_found # quit if max_bytes exhausted -#if __i960_BIG_ENDIAN__ - rotate 8,g5,g5 # shift word to position next byte -#endif - and g5,g7,g6 # extract byte - cmpo g1,g6 # is it char? - lda 1(g0),g0 # bump src byte ptr -#if ! __i960_BIG_ENDIAN__ - shro 8,g5,g5 # shift word to position next byte -#endif - bne.t Lsearch_for_char.a - subo 1,g0,g0 # back up the byte pointer - b Lexit_code - -Lsearch_for_0xff: - lda 0xf0f0f0f0,g6 # make first comparison mask for char=-1 case. - or g6,g5,g6 - and g4,g6,g4 # make unimportant bytes of first word 0x0f - b Lsearch_for_word_with_char - -/* end of memchr */ diff --git a/lib/machine/i960/memcmp.S b/lib/machine/i960/memcmp.S deleted file mode 100644 index 709eb2b..0000000 --- a/lib/machine/i960/memcmp.S +++ /dev/null @@ -1,128 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "memcmp.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ -/* - procedure memcmp (optimized assembler version for the 80960K series) - - result = memcmp (src1_addr, src2_addr, max_bytes) - - compare the byte array pointed to by src1_addr to the byte array - pointed to by src2_addr. Return 0 iff the arrays are equal, -1 iff - src1_addr is lexicographically less than src2_addr, and 1 iff it is - lexicographically greater. Do not compare more than max_bytes bytes. - - Undefined behavior will occur if the end of either source array - is in the last two words of the program's allocated memory space. - This is so because memcmp fetches ahead. Disallowing the fetch ahead - would impose a severe performance penalty. - - Strategy: - - Fetch the source strings by words and compare the words until either - a differing word is found or max_bytes is exhausted. In the former - case, move through the words to find the differing byte and return - plus or minus one, appropriately. In the latter case, return zero - (equality). - - Tactics: - - 1) Do NOT try to fetch the words in a word aligned manner because, - in my judgement, the performance degradation experienced due to - non-aligned accesses does NOT outweigh the time and complexity added - by the preamble that would be necessary to assure alignment. This - is supported by the intuition that most source arrays (even more - true of most big source arrays) will be word aligned to begin with. - - 2) Rather than decrementing max_bytes to zero, I calculate the - address of the byte after the last byte of the source_1 array, and - quit when the source byte pointer passes that. -*/ - - .globl _memcmp - .globl __memcmp - .leafproc _memcmp,__memcmp - .align 2 - -_memcmp: -#ifndef __PIC - lda .Lrett,g14 -#else - lda .Lrett-(.+8)(ip),g14 -#endif -__memcmp: - mov g14,g13 # preserve return address - ldconst 0,g14 # conform to register conventions - cmpibge 0,g2,Lequal_exit # quit if max_bytes <= 0 - addo g0,g2,g2 # calculate byte addr of byte after last in src1 - -.Lwloop: - cmpo g0,g2 - ld (g0), g5 # fetch word of source_1 - bge Lequal_exit # quit (equal) if max_bytes exhausted - ld (g1), g3 # fetch word of source_2 - addo 4,g0,g0 # post-increment source_1 byte ptr - addo 4,g1,g1 # post-increment source_2 byte ptr - cmpobe g5,g3,.Lwloop # branch if source words are equal - - ldconst 0xff,g4 # byte extraction mask - subo 4,g0,g0 # back up src1 pointer - -.Lcloop: and g4,g5,g7 # extract and compare individual bytes - and g4,g3,g6 - cmpobne g7,g6,.diff # branch if they are different - shlo 8,g4,g4 # position mask for next extraction - addo 1,g0,g0 - cmpobl g0,g2,.Lcloop # quit if max_bytes is exhausted - -Lequal_exit: - mov 0,g0 - bx (g13) -.Lrett: - ret - -.diff: bl .neg # arrays differ at current byte. - /* return 1 or -1 appropriately */ - mov 1,g0 - bx (g13) -.neg: subi 1,0,g0 -.Lexit: - bx (g13) - -/* end or memcmp */ diff --git a/lib/machine/i960/memcmp_ca.S b/lib/machine/i960/memcmp_ca.S deleted file mode 100644 index 317ea89..0000000 --- a/lib/machine/i960/memcmp_ca.S +++ /dev/null @@ -1,205 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "memcm_ca.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1992,1993 Intel Corp., all rights reserved - */ - -/* - procedure memcmp (optimized assembler version for the CA) - - result = memcmp (src1_addr, src2_addr, max_bytes) - - compare the byte array pointed to by src1_addr to the byte array - pointed to by src2_addr. Return 0 iff the arrays are equal, -1 if - src1_addr is lexicly less than src2_addr, and 1 if it is lexicly - greater. Do not compare more than max_bytes bytes. - - Undefined behavior will occur if the end of either source array - is in the last word of the program's allocated memory space. This - is so because, in several cases, memcmp will fetch ahead one word. - Disallowing the fetch ahead would impose a severe performance penalty. - - This program handles five cases: - - 1) both arguments start on a word boundary - 2) neither are word aligned, but they are offset by the same amount - 3) source1 is word aligned, source2 is not - 4) source2 is word aligned, source1 is not - 5) neither is word aligned, and they are offset by differing amounts - - At the time of this writing, only g0 thru g7 and g14 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers are sufficient to implement the routine. - The registers are used as follows: - - g0 original src1 ptr; extracted word; return result - g1 src2 ptr; byt extraction mask - g2 maximum number of bytes to compare - g3 src2 word ptr - Little endian - g4 lsw of src1 - g5 msw of src1 - g6 src2 word - g7 src1 word ptr - Big endian - g4 msw of src1 - g5 lsw of src1 - g6 src1 word ptr - g7 src2 word - g13 return address - g14 shift count -*/ - -#if __i960_BIG_ENDIAN__ -#define MSW g4 -#define LSW g5 -#define SRC1 g6 -#define SRC2 g7 -#else -#define LSW g4 -#define MSW g5 -#define SRC2 g6 -#define SRC1 g7 -#endif - - .globl _memcmp - .globl __memcmp - .leafproc _memcmp, __memcmp - .align 2 -_memcmp: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__memcmp: -Lrestart: -#if __i960_BIG_ENDIAN__ - subo 1,g0,SRC1 - notand SRC1,3,SRC1 # extract word addr of start of src1 -#else - notand g0,3,SRC1 # extract word addr of start of src1 -#endif - lda (g14),g13 # preserve return address - cmpibge.f 0,g2,Lequal_exit # return equality if number bytes 0 - notand g1,3,g3 # extract word addr of start of src2 - ld (SRC1),LSW # fetch word with at least first byte of src1 - cmpo g3,g1 # check alignment of src2 - ld 4(SRC1),MSW # fetch second word of src1 - shlo 3,g0,g14 # compute shift count for src1 -#if __i960_BIG_ENDIAN__ - subo g14,0,g14 # adjust shift count for big endian. -#endif - ld (g3),SRC2 # fetch word with at least first byte of src2 - eshro g14,g4,LSW # extract word of src1 - lda 8(SRC1),SRC1 # advance src1 word addr - bne.f Lsrc2_unaligned # branch if src2 is NOT word aligned - - mov LSW,g0 # at least src2 is word aligned - - lda 0xff,g1 - -Lwloop: # word comparing loop - cmpo SRC2,g0 # compare src1 and src2 words - lda 4(g3),g3 # pre-increment src2 addr - mov MSW,LSW # move msw of src1 to lsw - ld (SRC1),MSW # pre-fetch next msw of src1 - subi 4,g2,g2 # decrement maximum byte count - bne.f Lcloop # branch if src1 and src2 unequal - cmpi 0,g2 - ld (g3),SRC2 # pre-fetch next word of src2 - eshro g14,g4,g0 # extract word of src1 - lda 4(SRC1),SRC1 # post-increment src1 addr - bl.t Lwloop # branch if max_bytes not reached yet - - b Lequal_exit # strings were equal up through max_bytes - -Lcloop_setup: # setup for coming from Lsrc2_unaligned - mov LSW,g0 # restore extracted src1 word - subo 4,g2,g2 # make up for later re-incrementing - lda 0xff,g1 # byte extraction mask - -Lcloop: # character comparing loop -#if __i960_BIG_ENDIAN__ - rotate 24,g1,g1 # shift mask for next byte -#endif - and SRC2,g1,g3 # extract next char of src2 - and g0,g1,LSW # extract next char of src1 - cmpobne.f LSW,g3,.diff # check for equality -#if ! __i960_BIG_ENDIAN__ - shlo 8,g1,g1 # shift mask for next byte -#endif - subi 1,g2,g2 # decrement character counter - b Lcloop # branch if null not reached - - -Lequal_exit: # words are equal up thru null byte - mov 0,g14 # conform to register conventions - lda 0,g0 # return zero, indicating equality - bx (g13) # return -Lrett: - ret - -.diff: - addo 4,g2,g2 # to make up for extra decrement in loop - lda 0,g14 - bl Lless_than_exit -Lgreater_than_exit: - cmpibge.f 0,g2,Lequal_exit # branch if difference is beyond max_bytes - mov 1,g0 - bx (g13) # g0 = 1 (src1 > src2) -Lless_than_exit: - cmpibge.f 0,g2,Lequal_exit # branch if difference is beyond max_bytes - subi 1,0,g0 - bx (g13) # g0 = -1 (src1 < src2) - -Lsrc2_unaligned: - notor g1,3,g14 # first step in computing new src1 ptr - ld 4(g3),SRC1 # fetch second word of src2 - shlo 3,g1,MSW # compute shift count for src2 -#if __i960_BIG_ENDIAN__ - subo MSW,0,MSW -#endif - eshro MSW,g6,SRC2 # extract word of src2 - cmpo LSW,SRC2 # compare src1 and src2 words - lda 4(g3),g1 # set new src2 ptr - bne.f Lcloop_setup # first four bytes differ - subo g14,g0,g0 # second (final) step in computing new src1 ptr - addi g14,g2,g2 # compute new max_bytes too - lda (g13),g14 # prepare return pointer for Lrestart - b Lrestart # continue with both string fetches shifted diff --git a/lib/machine/i960/memcpy.S b/lib/machine/i960/memcpy.S deleted file mode 100644 index 8465e47..0000000 --- a/lib/machine/i960/memcpy.S +++ /dev/null @@ -1,160 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "memcpy.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ -/* - procedure memmove (optimized assembler version for the 80960K series) - procedure memcpy (optimized assembler version for the 80960K series) - - dest_addr = memmove (dest_addr, src_addr, len) - dest_addr = memcpy (dest_addr, src_addr, len) - - copy len bytes pointed to by src_addr to the space pointed to by - dest_addr. Return the original dest_addr. - - These routines will work even if the arrays overlap. The standard - requires this of memmove, but memcpy is allowed to fail if overlap - is present. Nevertheless, it is implemented the same as memmove - because the overhead is trifling. - - Undefined behavior will occur if the end of the source array is in - the last two words of the program's allocated memory space. This - is so because the routine fetches ahead. Disallowing the fetch - ahead would impose a severe performance penalty. - - Strategy: - - Fetch the source array by words and store them by words to the - destination array, until there are fewer than three bytes left - to copy. Then, using the last word of the source (the one that - contains the remaining 0, 1, 2, or 3 bytes to be copied), store - a byte at a time until Ldone. - - Tactics: - - 1) Do NOT try to fetch and store the words in a word aligned manner - because, in my judgement, the performance degradation experienced due - to non-aligned accesses does NOT outweigh the time and complexity added - by the preamble and convoluted body that would be necessary to assure - alignment. This is supported by the intuition that most source and - destination arrays (even more true of most big source arrays) will - be word aligned to begin with. - - 2) For non-overlapping arrays, rather than decrementing len to zero, - I calculate the address of the byte after the last byte of the - destination array, and quit when the destination byte pointer passes - that. - - 3) For overlapping arrays where the source starts at a lower address - than the destination the move is performed in reverse order. - - 4) Overlapping arrays where the source starts at a higher address - are treated like non-overlapping case. Where the two arrays exactly - coincide, the routine is short-circuited; no move is Ldone at all. - This costs only one cycle. -*/ - - .globl _memcpy, _memmove - .globl __memcpy, __memmove - .leafproc _memmove, __memmove - .leafproc _memcpy, __memcpy - .align 2 -_memmove: -_memcpy: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__memmove: -__memcpy: - mov g14, g13 # preserve return address - cmpibge 0,g2,Lexit # exit if number of bytes to move is <= zero. - cmpo g0,g1 # does start of dest overlap end of src? - addo g2,g1,g3 - be Lexit # no move necessary if src and dest are same - concmpo g3,g0 - addo g2, g0, g6 - bg Lbackwards # if overlap, then do move backwards - - ld (g1), g7 # fetch first word of source - mov g0, g5 - b Lwloop_b - -Lwloop_a: - ld (g1), g7 # fetch ahead next word of source - st g4, (g5) # store word to dest - addo 4, g5, g5 # post-increment dest pointer -Lwloop_b: # word copying loop - addo 4, g1, g1 # pre-increment src pointer - cmpo g3, g1 # is len <= 3 ? - mov g7, g4 # keep a copy of the current word - bge Lwloop_a # loop if more than 3 bytes to move - cmpobe g6, g5, Lexit # quit if no more bytes to move - -Lcloop_a: # character copying loop (len < 3) - stob g4, (g5) # store a byte - shro 8, g4, g4 # position next byte for storing - addo 1, g5, g5 - cmpobne g6, g5, Lcloop_a # quit if no more bytes to move - -Lexit: - mov 0, g14 - bx (g13) # g0 = dest array address; g14 = 0 -Lrett: - ret - -Lwloop.a: - subo 4, g6, g6 # pre-decrement dest pointer - st g7, (g6) # store word to dest -Lbackwards: # word copying loop - subo 4, g3, g3 # pre-decrement src pointer - cmpo g1, g3 # is len <= 3? - ld (g3), g7 # fetch ahead next word of source - ble Lwloop.a # loop if more than 3 bytes to move - cmpobe g6, g0, Lexit # quit if no more bytes to move - -Lcloop.a: - subo 1, g6, g6 - rotate 8, g7, g7 # position byte for storing - stob g7, (g6) # store byte - cmpobne g6, g0, Lcloop.a # quit if no more bytes to move - b Lexit - -/* end of memmove */ diff --git a/lib/machine/i960/memcpy_ca.S b/lib/machine/i960/memcpy_ca.S deleted file mode 100644 index eebfa88..0000000 --- a/lib/machine/i960/memcpy_ca.S +++ /dev/null @@ -1,353 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "memcp_ca.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1992,1993 Intel Corp., all rights reserved - */ - -/* - procedure memmove (optimized assembler version for the CA) - procedure memcpy (optimized assembler version for the CA) - - dest_addr = memmove (dest_addr, src_addr, len) - dest_addr = memcpy (dest_addr, src_addr, len) - - copy len bytes pointed to by src_addr to the space pointed to by - dest_addr. Return the original dest_addr. - - Memcpy will fail if the source and destination string overlap - (in particular, if the end of the source is overlapped by the - beginning of the destination). The behavior is undefined. - This is acceptable according to the draft C standard. - Memmove will not fail if overlap exists. - - Undefined behavior will also occur if the end of the source string - (i.e. the terminating null byte) is in the last word of the program's - allocated memory space. This is so because, in several cases, the - routine will fetch ahead one word. Disallowing the fetch ahead would - impose a severe performance penalty. - - This program handles five cases: - - 1) both arguments start on a word boundary - 2) neither are word aligned, but they are offset by the same amount - 3) source is word aligned, destination is not - 4) destination is word aligned, source is not - 5) neither is word aligned, and they are offset by differing amounts - - At the time of this writing, only g0 thru g7 and g13 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers, plus tricky use of g14 are sufficient - to implement the routine. The registers are used as follows: - - g0 dest ptr; not modified, so that it may be returned - g1 src ptr; shift count - g2 len - g3 src ptr (word aligned) - g4 dest ptr (word aligned) - g5 -4 for Lbackwards move - Little endian - g6 lsw of double word for extraction of 4 bytes - g7 msw of double word for extraction of 4 bytes - Big endian - g6 msw of double word for extraction of 4 bytes - g7 lsw of double word for extraction of 4 bytes - g13 return address - g14 byte extracted. -*/ - -#if __i960_BIG_ENDIAN__ -#define MSW g6 -#define LSW g7 -#else -#define LSW g6 -#define MSW g7 -#endif - - .globl _memmove, _memcpy - .globl __memmove, __memcpy - .leafproc _memmove, __memmove - .leafproc _memcpy, __memcpy - .align 2 -_memcpy: -_memmove: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__memcpy: -__memmove: - cmpibge.f 0,g2,Lquick_exit # Lexit if number of bytes to move is <= zero. - cmpo g0,g1 # if dest starts earlier than src ... - lda (g14),g13 # preserve return address - addo g2,g1,g5 # compute addr of byte after last byte of src - be.f Lexit_code # no move necessary if src and dest are same - concmpo g5,g0 # ... or if dest starts after end of src ... - notand g1,3,g3 # extract word addr of start of src - bg.f Lbackwards # ... then drop thru, else do move backwards - cmpo g3,g1 # check alignment of src - ld (g3),LSW # fetch word containing at least first byte - notand g0,3,g4 # extract word addr of start of dest - lda 4(g3),g3 # advance src word addr - bne.f Lcase_245 # branch if src is NOT word aligned - -Lcase_13: - cmpo g0,g4 # check alignment of dest - subo 4,g4,g4 # store is pre-incrementing; back up dest addr - be.t Lcase_1 # branch if dest word aligned - -Lcase_3: # src is word aligned; dest is not - addo 8,g4,g4 # move dest word ptr to first word boundary - lda (g0),g1 # copy dest byte ptr - mov LSW,MSW # make copy of first word of src - lda 32,g14 # initialize shift count to zero (mod 32) - -Lcase_25: -Lcase_3_cloop_at_start: # character copying loop for start of dest str - cmpdeci 0,g2,g2 # is max_bytes exhausted? - be.f Lexit_code # Lexit if max_bytes is exhausted -#if __i960_BIG_ENDIAN__ - rotate 8,MSW,MSW # move next byte into position for extraction - subo 8,g14,g14 # augment the shift counter - stob MSW,(g1) # store the byte in dest -#else - addo 8,g14,g14 # augment the shift counter - stob MSW,(g1) # store the byte in dest - shro 8,MSW,MSW # move next byte into position for extraction -#endif - lda 1(g1),g1 # post-increment dest ptr - cmpobne.t g1,g4,Lcase_3_cloop_at_start # branch if reached word boundary - - ld (g3),MSW # fetch msw of operand for double shift - -Lcase_4: -Lcase_3_wloop: - cmpi g2,4 # less than four bytes to move? - lda 4(g3),g3 # post-increment src word addr - eshro g14,g6,g1 # extract 4 bytes of src - bl.f Lcase_3_cloop # branch if < four bytes left to move - mov MSW,LSW # move msw to lsw - ld (g3),MSW # pre-fetch msw of operand for double shift - subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved - st g1,(g4) # store 4 bytes to dest - addo 4,g4,g4 # post-increment dest ptr - b Lcase_3_wloop - -Lcase_1_wloop: # word copying loop - subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved - ld (g3),LSW # pre-fetch next word of src - addo 4,g3,g3 # post-increment src addr - st g1,(g4) # store word in dest string -Lcase_1: # src and dest are word aligned - cmpi g2,4 # check for fewer than four bytes to move - addo 4,g4,g4 # pre-increment dest addr - lda (LSW),g1 # keep a copy of the src word - bge.t Lcase_1_wloop # branch if at least four bytes to copy -Lcase_3_cloop: - cmpibe.f 0,g2,Lexit_code # Lexit if max_bytes is exhausted - -Lcase_1_cloop: -#if __i960_BIG_ENDIAN__ - rotate 8,g1,g1 # move next byte into position for extraction -#endif - subi 1,g2,g2 - stob g1,(g4) # store the byte in dest - cmpi 0,g2 - lda 1(g4),g4 # post-increment dest byte addr -#if ! __i960_BIG_ENDIAN__ - shro 8,g1,g1 # move next byte into position for extraction -#endif - bne.t Lcase_1_cloop # Lexit if max_bytes is exhausted - -Lexit_code: - mov 0,g14 # conform to register conventions - bx (g13) # g0 = addr of dest; g14 = 0 -Lrett: - ret - - -Lcase_245: - cmpo g0,g4 # check alignment of dest - ld (g3),MSW # pre-fetch second half - and 3,g1,g1 # compute shift count - shlo 3,g1,g14 -#if __i960_BIG_ENDIAN__ - subo g14,0,g14 # adjust shift count for big endian -#endif - be.t Lcase_4 # branch if dest is word aligned - or g4,g1,g1 # is src earlier in word, later, or sync w/ dst - cmpo g0,g1 # < indicates first word of dest has more bytes - lda 4(g4),g4 # move dest word addr to first word boundary - eshro g14,g6,g5 # extract four bytes - lda (g0),g1 -#if __i960_BIG_ENDIAN__ - bge.f 1f -#else - bg.f 1f -#endif - mov MSW,LSW - lda 4(g3),g3 # move src word addr to second word boundary -1: - mov g5,MSW - b Lcase_25 - - -Lbackwards: - notand g5,3,MSW # extract word addr of byte after end of src - cmpo MSW,g5 # check alignment of end of src - subo 4,MSW,g3 # retreat src word addr - addo g2,g0,g1 # compute addr of byte after end of dest - notand g1,3,g4 # extract word addr of start of dest - bne.f Lcase.245 # branch if src is NOT word aligned - -Lcase.13: - cmpo g1,g4 # check alignment of dest - ld (g3),MSW # fetch last word of src - subo 4,g3,g3 # retreat src word addr - be.t Lcase.1 # branch if dest word aligned - -Lcase.3: # src is word aligned; dest is not - mov MSW,LSW # make copy of first word of src - lda 32,g14 # initialize shift count to zero (mod 32) - -Lcase.25: -Lcase.3_cloop_at_start: # character copying loop for start of dest str - cmpdeci 0,g2,g2 # is max.bytes exhausted? - be.f Lexit_code # Lexit if max_bytes is exhausted -#if ! __i960_BIG_ENDIAN__ - rotate 8,LSW,LSW # move next byte into position for storing -#endif - lda -1(g1),g1 # pre-decrement dest ptr - cmpo g1,g4 # have we reached word boundary in dest yet? - stob LSW,(g1) # store the byte in dest -#if __i960_BIG_ENDIAN__ - shro 8,LSW,LSW # move next byte into position for storing - addo 8,g14,g14 # augment the shift counter -#else - subo 8,g14,g14 # augment the shift counter -#endif - bne.t Lcase.3_cloop_at_start # branch if reached word boundary? - - ld (g3),LSW # fetch lsw of operand for double shift - -#if __i960_BIG_ENDIAN__ - cmpobne 0,g14,Lcase.3_wloop -Lcase.3_wloop2: - cmpi g2,4 # less than four bytes to move? - lda -4(g3),g3 # post-decrement src word addr - mov MSW,g1 # extract 4 bytes of src - lda (LSW),MSW # move lsw to msw - subo 4,g4,g4 # pre-decrement dest ptr - bl.f Lcase.3_cloop # branch if < four bytes left to move - ld (g3),LSW # pre-fetch lsw of operand for double shift - subi 4,g2,g2 # decrease max.byte count by the 4 bytes moved - st g1,(g4) # store 4 bytes to dest - b Lcase.3_wloop2 -#endif - -Lcase.4: -Lcase.3_wloop: - cmpi g2,4 # less than four bytes to move? - lda -4(g3),g3 # post-decrement src word addr - eshro g14,g6,g1 # extract 4 bytes of src - lda (LSW),MSW # move lsw to msw - subo 4,g4,g4 # pre-decrement dest ptr - bl.f Lcase.3_cloop # branch if < four bytes left to move - ld (g3),LSW # pre-fetch lsw of operand for double shift - subi 4,g2,g2 # decrease max.byte count by the 4 bytes moved - st g1,(g4) # store 4 bytes to dest - b Lcase.3_wloop - -Lcase.1_wloop: # word copying loop - subi 4,g2,g2 # decrease max.byte count by the 4 bytes moved - ld (g3),MSW # pre-fetch next word of src - subo 4,g3,g3 # post-decrement src addr - st g1,(g4) # store word in dest string -Lcase.1: # src and dest are word aligned - cmpi g2,4 # check for fewer than four bytes to move - subo 4,g4,g4 # pre-decrement dest addr - lda (MSW),g1 # keep a copy of the src word - bge.t Lcase.1_wloop # branch if at least four bytes to copy -Lcase.3_cloop: - cmpibe.f 0,g2,Lexit_code # Lexit if max_bytes is exhausted -#if ! __i960_BIG_ENDIAN__ - rotate 8,g1,g1 # move next byte into position for storing -#endif - lda 4(g4),g4 # pre-decremented dest addr 4 too much - -Lcase.1_cloop: - subi 1,g4,g4 # pre-decrement dest byte addr - cmpi g4,g0 # has dest ptr reached beginning of dest? - stob g1,(g4) # store the byte in dest -#if __i960_BIG_ENDIAN__ - shro 8,g1,g1 # move next byte into position for storing -#else - rotate 8,g1,g1 # move next byte into position for storing -#endif - bne.t Lcase.1_cloop # Lexit if move is completed - b Lexit_code - -Lcase.245: - cmpo g1,g4 # check alignment of dest - ld (MSW),MSW # pre-fetch word with at least last byte - and 3,g5,g5 # compute shift count - ld (g3),LSW # pre-fetch second to last word - shlo 3,g5,g14 -#if __i960_BIG_ENDIAN__ - subo g14,0,g14 # adjust shift count for big endian -#endif - be.t Lcase.4 # branch if dest is word aligned - or g4,g5,g5 # is src earlier in word, later, or sync w/ dst - cmpo g1,g5 # < indicates last word of dest has less bytes - eshro g14,g6,g5 # extract four bytes - bl.t 1f - mov LSW,MSW -#if ! __i960_BIG_ENDIAN__ - be.t 1f -#endif - subo 4,g3,g3 # move src word addr to second word boundary -1: - mov g5,LSW - b Lcase.25 - - -Lquick_exit: - mov g14,g13 - b Lexit_code - -/* end of memmove */ diff --git a/lib/machine/i960/memset.S b/lib/machine/i960/memset.S deleted file mode 100644 index 9121d45..0000000 --- a/lib/machine/i960/memset.S +++ /dev/null @@ -1,121 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "memset.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1989,1993 Intel Corp., all rights reserved - */ - -/* - procedure memset (optimized assembler version: 80960K series, 80960CA) - - dest_addr = memset (dest_addr, char, len) - - Fill len bytes pointed to by dest_addr with the value of char. - Return the original address of dest_addr. - - This program avoids performing unaligned accesses. It stores - from zero to seven bytes, and then stores aligned longwords, - and then stores from zero to seven bytes, as necessary to - store len bytes starting at dest_addr. - - At the time of this writing, only g0 thru g7 and g13 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers, plus tricky use of g14 are sufficient - to implement the routine. -*/ - - .globl _memset - .globl __memset - .leafproc _memset, __memset - .align 2 -_memset: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__memset: - cmpo 7,g2 # are there fewer than seven characters to move? - lda (g14),g13 # save return address - notand g0,7,g3 # test for non-aligned dest_ptr - lda 0,g14 # conform to register conventions - shlo 24,g1,g4 # prepare word of char - lda (g0),g6 # preserve dest_ptr for return - shro 8,g4,g5 - bge.f Lcloop_setup - cmpo g3,g0 # is dest longword aligned - lda 7(g3),g3 # bump dest_ptr to next longword boundary - or g4,g5,g4 - be.t Lwloop_setup - -Lbgn_cloop: - cmpo g6,g3 # Have we reached longword boundary? - stob g1,(g6) # store one byte of char - subo 1,g2,g2 # decrement len - lda 1(g6),g6 # increment dest_ptr - bne.t Lbgn_cloop # loop if more bytes to store before longword - - cmpobge.f 7,g2,Lcloop - -Lwloop_setup: - shro 16,g4,g5 - or g4,g5,g4 - mov g4,g5 # now have a longword of char - -Lwloop: - cmpo 15,g2 # Do we have to store more longwords? - stl g4,(g6) # Store longword of char - subo 8,g2,g2 # Decrement len - lda 8(g6),g6 # Increment dest_ptr - bl.t Lwloop # loop if more longwords to store - -Lcloop_setup: - cmpobge.t 0,g2,Lexit - -Lcloop: - cmpo 1,g2 # Is len exhausted? - stob g1,(g6) # Store byte - subo 1,g2,g2 # Decrement len - lda 1(g6),g6 # Increment dest_ptr - bne.t Lcloop # loop if more bytes to store - -Lexit: - bx (g13) -Lrett: - ret - -/* end of memset */ diff --git a/lib/machine/i960/setjmp.S b/lib/machine/i960/setjmp.S deleted file mode 100644 index 804df0e..0000000 --- a/lib/machine/i960/setjmp.S +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - -/******************************************************************************/ -/* */ -/* setjmp(), longjmp() */ -/* */ -/******************************************************************************/ - .file "setjmp.as" - .text - /* .link_pix */ - - .align 4 - .globl _setjmp -_setjmp: - flushreg - andnot 0xf,pfp,g1 /* get pfp, mask out return status bits */ - st g1, 0x58(g0) /* save fp of caller*/ - /* save globals not killed by the calling convention */ - stq g8, 0x40(g0) /* save g8-g11*/ - st g12, 0x50(g0) /* save g12*/ - st g14, 0x54(g0) /* save g14*/ - /* save previous frame local registers */ - ldq (g1), g4 /* get previous frame pfp, sp, rip, r3 */ - stq g4, (g0) /* save pfp, sp, rip, r3 */ - ldq 0x10(g1), g4 /* get previous frame r4-r7 */ - stq g4, 0x10(g0) /* save r4-r7 */ - ldq 0x20(g1), g4 /* get previous frame r8-r11 */ - stq g4, 0x20(g0) /* save r8-r11 */ - ldq 0x30(g1), g4 /* get previous frame r12-r15 */ - stq g4, 0x30(g0) /* save r12-r15 */ - - mov 0, g0 /* return 0 */ - ret - - /* - * fake a return to the place that called the corresponding _setjmp - */ - .align 4 - .globl _longjmp -_longjmp: - call 0f /* ensure there is at least one stack frame */ - -0: - flushreg /* do this before swapping stack */ - ld 0x58(g0), pfp /* get fp of caller of setjmp */ - /* restore local registers - * the following code modifies the frame of the function which originally - * called setjmp. - */ - ldq (g0), g4 /* get pfp, sp, rip, r3 */ - stq g4, (pfp) /* restore pfp, sp, rip, r3 */ - ldq 0x10(g0), g4 /* get r4-r7 */ - stq g4, 0x10(pfp) /* restore r4-r7 */ - ldq 0x20(g0), g4 /* get r8-r11 */ - stq g4, 0x20(pfp) /* restore r8-r11 */ - ldq 0x30(g0), g4 /* get r12-r15 */ - stq g4, 0x30(pfp) /* restore r12-r15 */ - /* restore global registers */ - ldq 0x40(g0), g8 /* get old g8-g11 values */ - ld 0x50(g0), g12 /* get old g12 value */ - ld 0x54(g0), g14 /* get old g14 value */ - - mov g1, g0 /* get return value */ - cmpo g0, 0 /* make sure it is not zero */ - bne 0f - mov 1, g0 /* return 1 by default */ -0: - ret /* return to caller of _setjmp */ diff --git a/lib/machine/i960/strchr.S b/lib/machine/i960/strchr.S deleted file mode 100644 index bc50c2c..0000000 --- a/lib/machine/i960/strchr.S +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strchr.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ - -/* - procedure strchr (optimized assembler version for the 80960K series) - - src_addr = strchr (src_addr, char) - - return a pointer to the first byte that contains the indicated - byte in the source string. Return null if the byte is not found. - - Undefined behavior will occur if the end of the source string (i.e. - the terminating null byte) is in the last two words of the program's - allocated memory space. This is so because strchr fetches ahead. - Disallowing the fetch ahead would impose a severe performance penalty. - - Strategy: - - Fetch the source string by words and scanbyte the words for the - char until either a word with the byte is found or the null byte is - encountered. In the former case, move through the word to find the - matching byte and return its memory address. In the latter case, - return zero (null). - - Tactics: - - 1) Do NOT try to fetch the words in a word aligned manner because, - in my judgement, the performance degradation experienced due to - non-aligned accesses does NOT outweigh the time and complexity added - by the preamble that would be necessary to assure alignment. This - is supported by the intuition that most source arrays (even more - true of most big source arrays) will be word aligned to begin with. -*/ - - .globl _strchr - .globl __strchr - .leafproc _strchr, __strchr - .align 2 -_strchr: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strchr: - - ld (g0),g4 # fetch first word - lda 0xff,g7 # byte extraction mask - and g1,g7,g1 # make char an 8-bit ordinal - shlo 8,g1,g2 # broadcast the char to four bytes - or g1,g2,g2 - shlo 16,g2,g5 - or g2,g5,g3 - mov g14,g13 # preserve return address - addo 4,g0,g0 # post-increment src pointer - mov 0,g14 # conform to register linkage standard - -Lsearch_for_word_with_char_or_null: - mov g4,g5 # copy word - scanbyte g3,g5 # check for byte with char - ld (g0),g4 # fetch next word of src - bo Lsearch_for_char # branch if char found - scanbyte 0,g5 # check for null byte - addo 4,g0,g0 # post-increment src pointer - bno Lsearch_for_word_with_char_or_null # branch if not null - -Lnot_found: - mov 0,g0 # char not found. Return null -Lexit_code: - bx (g13) # g0 = addr of char in src (or null); g14 = 0 -Lrett: - ret - -Lsearch_for_char: - subo 5,g0,g0 # back up the byte pointer -Lsearch_for_char.a: - and g5,g7,g6 # extract byte - cmpo g1,g6 # is it char? - addo 1,g0,g0 # bump src byte ptr - shro 8,g5,g5 # shift word to position next byte - be Lexit_code - cmpobne 0,g6,Lsearch_for_char.a # quit if null comes before char - b Lnot_found - -/* end of strchr */ diff --git a/lib/machine/i960/strchr_ca.S b/lib/machine/i960/strchr_ca.S deleted file mode 100644 index f52eae2..0000000 --- a/lib/machine/i960/strchr_ca.S +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strch_ca.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ - -/* - procedure strchr (optimized assembler version for the CA) - - src_addr = strchr (src_addr, char) - - return a pointer to the first byte that contains the indicated - byte in the source string. Return null if the byte is not found. - - Undefined behavior will occur if the end of the source string (i.e. - the terminating null byte) is in the last two words of the program's - allocated memory space. This is so because, in several cases, strchr - will fetch ahead. Disallowing the fetch ahead would impose a severe - performance penalty. - - This program handles two cases: - - 1) the argument starts on a word boundary - 2) the argument doesn't start on a word boundary - - At the time of this writing, only g0 thru g7 and g13 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers, plus tricky use of g14 are sufficient - to implement the routine. The registers are used as follows: - - g0 src ptr; upon return it is a pointer to the matching byte, or null - g1 char to seek - g2 mask to avoid unimportant bytes in first word - g3 char to seek, broadcast to all four bytes - g4 word of the source string - g5 copy of the word - g6 extracted character - g7 byte extraction mask - g13 return address - g14 -*/ - - .globl _strchr - .globl __strchr - .leafproc _strchr, __strchr - .align 2 -_strchr: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strchr: - - lda 0xff,g7 # byte extraction mask - and g1,g7,g1 # make char an 8-bit ordinal - shlo 8,g1,g2 # broadcast the char to four bytes - or g1,g2,g2 - shlo 16,g2,g4 - cmpo g1,g7 # is char being sought 0xff? - or g4,g2,g3 - lda (g14),g13 # preserve return address - notand g0,3,g5 # extract word addr of start of src - lda 0,g14 # conform to register linkage standard - and g0,3,g6 # extract byte offset of src - ld (g5),g4 # fetch word containing at least first byte - shlo 3,g6,g6 # get shift count for making mask for first word - lda 4(g5),g0 # post-increment src word pointer - subi 1,0,g5 # mask initially all ones -#if __i960_BIG_ENDIAN__ - shro g6,g5,g5 # get mask for bytes needed from first word -#else - shlo g6,g5,g5 # get mask for bytes needed from first word -#endif - notor g4,g5,g4 # set unneeded bytes to all ones - be.f Lsearch_for_0xff # branch if seeking 0xff - -Lsearch_for_word_with_char_or_null: - scanbyte g3,g4 # check for byte with char - lda (g4),g5 # copy word - ld (g0),g4 # fetch next word of src - bo.f Lsearch_for_char # branch if null found - scanbyte 0,g5 # check for null byte - lda 4(g0),g0 # post-increment src word pointer - bno.t Lsearch_for_word_with_char_or_null # branch if not null - -Lnot_found: - mov 0,g0 # char not found. Return null -Lexit_code: - bx (g13) # g0 = addr of char in src (or null); g14 = 0 -Lrett: - ret - -Lsearch_for_char: - subo 5,g0,g0 # back up the byte pointer -Lsearch_for_char.a: -#if __i960_BIG_ENDIAN__ - rotate 8,g5,g5 # shift word to position next byte -#endif - and g5,g7,g6 # extract byte - cmpo g1,g6 # is it char? - lda 1(g0),g0 # bump src byte ptr -#if ! __i960_BIG_ENDIAN__ - shro 8,g5,g5 # shift word to position next byte -#endif - be.f Lexit_code - cmpobne.t 0,g6,Lsearch_for_char.a # quit if null comes before char - b Lnot_found - -Lsearch_for_0xff: - lda 0xf0f0f0f0,g2 # make first comparison mask for char=-1 case. - or g5,g2,g2 - and g4,g2,g4 # make unimportant bytes of first word 0x0f - b Lsearch_for_word_with_char_or_null - -/* end of strchr */ - diff --git a/lib/machine/i960/strcmp.S b/lib/machine/i960/strcmp.S deleted file mode 100644 index c0cd4bd..0000000 --- a/lib/machine/i960/strcmp.S +++ /dev/null @@ -1,118 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strcmp.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ -/* - procedure strcmp (optimized assembler version for the 80960K Series) - - result = strcmp (src1_addr, src2_addr) - - compare the null terminated string pointed to by src1_addr to - the string pointed to by src2_addr. Return 0 iff the strings - are equal, -1 if src1_addr is lexicographically less than src2_addr, - and 1 if it is lexicographically greater. - - Undefined behavior will occur if the end of either source string - (i.e. the terminating null byte) is in the last two words of the - program's allocated memory space. This is so because strcmp fetches - ahead. Disallowing the fetch ahead would impose a severe performance - penalty. - - Strategy: - - Fetch the source strings by words and compare the words until either - differing words are found or the null byte is encountered. In either - case, move through the word until either the differing byte if found, - in which case return -1 or 1 appropriately; or the null byte is - encountered, in which case, return zero (equality). - - Tactics: - - 1) Do NOT try to fetch the words in a word aligned manner because, - in my judgement, the performance degradation experienced due to - non-aligned accesses does NOT outweigh the time and complexity added - by the preamble and convoluted body that would be necessary to assure - alignment. This is supported by the intuition that many source - strings will be word aligned to begin with. -*/ - - .globl _strcmp - .globl __strcmp - .leafproc _strcmp,__strcmp - .align 2 - -_strcmp: -#ifndef __PIC - lda .Lrett,g14 -#else - lda .Lrett-(.+8)(ip),g14 -#endif -__strcmp: - ld (g0), g5 # fetch first word of source_1 - mov g14,g7 # preserve return address - ldconst 0,g14 # conform to register conventions - ldconst 0xff,g4 # byte extraction mask -.Lwloop: - addo 4,g0,g0 # post-increment source_1 byte ptr - ld (g1), g3 # fetch word of source_2 - scanbyte 0,g5 # does word have a null byte? - mov g5,g2 # save a copy of the source_1 word - be .Lcloop # branch if null byte encountered - cmpo g2,g3 # are the source words the same? - addo 4,g1,g1 # post-increment source_2 byte ptr - ld (g0), g5 # fetch ahead next word of source_1 - be .Lwloop # fall thru if words are unequal - -.Lcloop: and g4,g2,g5 # extract and compare individual bytes - and g4,g3,g6 - cmpobne g5,g6,.diff # if they differ, go return 1 or -1 - cmpo 0,g6 # they are the same. Are they null? - shlo 8,g4,g4 # position mask for next extraction - bne .Lcloop # loop if null not encountered - - mov 0,g0 # return equality - bx (g7) -.Lrett: - ret -.diff: bl .neg - mov 1,g0 - bx (g7) -.neg: subi 1,0,g0 -.Lexit: - bx (g7) diff --git a/lib/machine/i960/strcmp_ca.S b/lib/machine/i960/strcmp_ca.S deleted file mode 100644 index 0298ffa..0000000 --- a/lib/machine/i960/strcmp_ca.S +++ /dev/null @@ -1,246 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strcm_ca.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ - -/* - procedure strcmp (optimized assembler version for the CA) - - result = strcmp (src1_addr, src2_addr) - - compare the null terminated string pointed to by src1_addr to - the string space pointed to by src2_addr. Return 0 iff the strings - are equal, -1 if src1_addr is lexicly less than src2_addr, and 1 - if it is lexicly greater. - - Undefined behavior will occur if the end of either source string - (i.e. the terminating null byte) is in the last word of the program's - allocated memory space. This is so because, in several cases, strcmp - will fetch ahead one word. Disallowing the fetch ahead would impose - a severe performance penalty. - - This program handles five cases: - - 1) both arguments start on a word boundary - 2) neither are word aligned, but they are offset by the same amount - 3) source1 is word aligned, source2 is not - 4) source2 is word aligned, source1 is not - 5) neither is word aligned, and they are offset by differing amounts - - At the time of this writing, only g0 thru g7 and g14 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers are sufficient to implement the routine. - The registers are used as follows: - - g0 original src1 ptr; return result - g1 src2 ptr; 0xff -- byte extraction mask - g2 src1 word ptr - g3 src2 word ptr - Little endian: - g4 lsw of src1 - g5 msw of src1 - g6 src2 word - g7 extracted src1 - Big endian: - g4 msw of src1 - g5 lsw of src1 - g6 extracted src1 - g7 src2 word - g13 return address - g14 shift count -*/ - -#if __i960_BIG_ENDIAN__ -#define MSW g4 -#define LSW g5 -#define SRC1 g6 -#define SRC2 g7 -#else -#define LSW g4 -#define MSW g5 -#define SRC2 g6 -#define SRC1 g7 -#endif - - .globl _strcmp - .globl __strcmp - .leafproc _strcmp, __strcmp - .align 2 -_strcmp: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif - -__strcmp: -Lrestart: - notand g0,3,g2 # extract word addr of start of src1 - lda (g14),g13 # preserve return address -#if __i960_BIG_ENDIAN__ - cmpo g0,g2 # check alignment of src1 -#endif - ld (g2),LSW # fetch word with at least first byte of src1 - notand g1,3,g3 # extract word addr of start of src2 - ld 4(g2),MSW # fetch second word of src1 -#if __i960_BIG_ENDIAN__ - bne Lsrc1_unaligned # branch if src1 is unaligned - cmpo g3,g1 # check alignment of src2 - ld (g3),SRC2 # fetch word with at least first byte of src2 - mov LSW,SRC1 # extract word of src1 - lda 8(g2),g2 # advance src1 word addr - bne.f Lsrc2_unaligned # branch if src2 is NOT word aligned - - /* src2 is word aligned */ - -Lwloop2: # word comparing loop - cmpo SRC2,SRC1 # compare src1 and src2 words - lda 0xff000000,g1 # byte extraction mask - mov MSW,LSW # move msw of src1 to lsw - ld (g2),MSW # pre-fetch next msw of src1 - addo 4,g2,g2 # post-increment src1 addr - lda 4(g3),g3 # pre-increment src2 addr - bne.f Lcloop # branch if src1 and src2 unequal - scanbyte 0,SRC1 # check for null byte in src1 word - ld (g3),SRC2 # pre-fetch next word of src2 - mov LSW,SRC1 # extract word of src1 - lda 0,g0 # prepare to return zero, indicating equality - bno.t Lwloop2 # branch if null byte not encountered - - /* words were equal and contained null byte */ - - mov 0,g14 # conform to register conventions - bx (g13) # return - - -Lsrc1_unaligned: -#endif - cmpo g3,g1 # check alignment of src2 - ld (g3),SRC2 # fetch word with at least first byte of src2 - shlo 3,g0,g14 # compute shift count for src1 -#if __i960_BIG_ENDIAN__ - subo g14,0,g14 # 32 - shift count for big endian. -#endif - eshro g14,g4,SRC1 # extract word of src1 - lda 8(g2),g2 # advance src1 word addr - bne.f Lsrc2_unaligned # branch if src2 is NOT word aligned - - /* at least src2 is word aligned */ - -Lwloop: # word comparing loop - cmpo SRC2,SRC1 # compare src1 and src2 words -#if __i960_BIG_ENDIAN__ - lda 0xff000000,g1 # byte extraction mask -#else - lda 0xff,g1 # byte extraction mask -#endif - mov MSW,LSW # move msw of src1 to lsw - ld (g2),MSW # pre-fetch next msw of src1 - addo 4,g2,g2 # post-increment src1 addr - lda 4(g3),g3 # pre-increment src2 addr - bne.f Lcloop # branch if src1 and src2 unequal - scanbyte 0,SRC1 # check for null byte in src1 word - ld (g3),SRC2 # pre-fetch next word of src2 - eshro g14,g4,SRC1 # extract word of src1 - lda 0,g0 # prepare to return zero, indicating equality - bno.t Lwloop # branch if null byte not encountered - - /* words were equal and contained null byte */ - - mov 0,g14 # conform to register conventions - bx (g13) # return - -Lcloop_setup: # setup for coming from Lsrc2_unaligned - mov LSW,SRC1 # restore extracted src1 word -#if __i960_BIG_ENDIAN__ - lda 0xff000000,g1 # byte extraction mask -#else - lda 0xff,g1 # byte extraction mask -#endif - -Lcloop: # character comparing loop - and SRC2,g1,g3 # extract next char of src2 - and SRC1,g1,g0 # extract next char of src1 - cmpobne.f g0,g3,.diff # check for equality - cmpo 0,g0 # check for null byte -#if __i960_BIG_ENDIAN__ - shro 8,g1,g1 # shift mask for next byte -#else - shlo 8,g1,g1 # shift mask for next byte -#endif - bne.t Lcloop # branch if null not reached - - /* words are equal up thru null byte */ - - mov 0,g14 - bx (g13) # g0 = 0 (src1 == src2) -Lrett: - ret - -.diff: - mov 0,g14 - bl Lless_than_exit -Lgreater_than_exit: - mov 1,g0 - bx (g13) # g0 = 1 (src1 > src2) -Lless_than_exit: - subi 1,0,g0 - bx (g13) # g0 = -1 (src1 < src2) - -Lsrc2_unaligned: - mov SRC1,LSW # retain src1 extracted word - ld 4(g3),SRC1 # fetch second word of src2 - shlo 3,g1,MSW # compute shift count for src2 -#if __i960_BIG_ENDIAN__ - subo MSW,0,MSW # 32 - shift count for big endian. -#endif - eshro MSW,g6,SRC2 # extract word of src2 - cmpo LSW,SRC2 # compare src1 and src2 words - notor g1,3,MSW # first step in computing new src1 ptr - lda 4(g3),g1 # set new src2 ptr - bne.f Lcloop_setup # first four bytes differ - scanbyte 0,LSW # check for null byte - lda (g13),g14 # prepare return pointer for Lrestart - subo MSW,g0,g0 # second (final) step in computing new src1 ptr - bno.t Lrestart # if null byte not encountered, continue - /* with both string fetches shifted such that */ - /* src2 is now word aligned. */ - mov 0,g14 # conform to register conventions. - lda 0,g0 # return indicator of equality. - bx (g13) diff --git a/lib/machine/i960/strcpy.S b/lib/machine/i960/strcpy.S deleted file mode 100644 index ed8bb72..0000000 --- a/lib/machine/i960/strcpy.S +++ /dev/null @@ -1,177 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strcpy.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ -/* - procedure strcpy (optimized assembler version for the 80960K series) - procedure strcat (optimized assembler version for the 80960K series) - - dest_addr = strcpy (dest_addr, src_addr) - - copy the null terminated string pointed to by src_addr to - the string space pointed to by dest_addr. Return the original - dest_addr. - - This routine will fail if the source and destination string - overlap (in particular, if the end of the source is overlapped - by the beginning of the destination). The behavior is undefined. - This is acceptable according to the draft C standard. - - Undefined behavior will also occur if the end of the source string - (i.e. the terminating null byte) is in the last two words of the - program's allocated memory space. This is so because strcpy fetches - ahead. Disallowing the fetch ahead would impose a severe performance - penalty. - - Strategy: - - Fetch the source string and store the destination string by words - until the null byte is encountered. When the word with the null - byte is reached, store it by bytes up through the null byte only. - - Tactics: - - 1) Do NOT try to fetch and store the words in a word aligned manner - because, in my judgement, the performance degradation experienced due - to non-aligned accesses does NOT outweigh the time and complexity added - by the preamble and convoluted body that would be necessary to assure - alignment. This is supported by the intuition that most source and - destination strings will be word aligned to begin with. - - - procedure strcat - - dest_addr = strcat (dest_addr, src_addr) - - Appends the string pointed to by src_addr to the string pointed - to by dest_addr. The first character of the source string is - copied to the location initially occupied by the trailing null - byte of the destination string. Thereafter, characters are copied - from the source to the destination up thru the null byte that - trails the source string. - - See the strcpy routine, above, for its caveats, as they apply here too. - - Strategy: - - Skip to the end (null byte) of the destination string, and then drop - into the strcpy code. - - Tactics: - - Skipping to the null byte is Ldone by reading the destination string - in long-words and scanbyte'ing them, then examining the bytes of the - word that contains the null byte, until the address of the null byte is - known. Then we drop into the strcpy routine. It is probable (approx. - three out of four times) that the destination string as strcpy sees - it will NOT be word aligned (i.e. that the null byte won't be the - last byte of a word). But it is not worth the complication to that - routine to force word aligned memory accesses to be gaurenteed. -*/ - .globl _strcpy, _strcat - .globl __strcpy, __strcat - .leafproc _strcpy,__strcpy - .leafproc _strcat,__strcat - .align 2 -_strcat: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strcat: - mov g14,g13 # preserve return address - ldl (g0),g4 # fetch first two words - addo 8,g0,g2 # post-increment src word pointer - lda 0xff,g3 # byte extraction mask - -Lsearch_for_word_with_null_byte: - scanbyte 0,g4 # check for null byte - mov g5,g7 # copy second word - bo.f Lsearch_for_null # branch if null found - scanbyte 0,g7 # check for null byte - ldl (g2),g4 # fetch next pair of word of src - addo 8,g2,g2 # post-increment src word pointer - bno Lsearch_for_word_with_null_byte # branch if null not found yet - - subo 4,g2,g2 # back up the byte pointer - mov g7,g4 # move word with null to search word -Lsearch_for_null: - subo 9,g2,g5 # back up the byte pointer -Lsearch_for_null.a: - and g4,g3,g6 # extract byte - cmpo 0,g6 # is it null? - addo 1,g5,g5 # bump src byte ptr - shro 8,g4,g4 # shift word to position next byte - bne Lsearch_for_null.a - b Lend_of_dest_found - -_strcpy: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strcpy: - mov g0, g5 -Lend_of_dest_found: - ld (g1), g2 # fetch first word of source - mov g14,g6 # preserve return address - lda 0xff, g3 # byte extraction mask = 0xff; -Lwloop: # word copying loop - addo 4, g1, g1 # post-increment source ptr - scanbyte 0, g2 # does source word contain null byte? - mov g2, g4 # save a copy of the source word - be Lcloop # branch if null present - ld (g1), g2 # pre-fetch next word of source - st g4, (g5) # store current word - addo 4, g5, g5 # post-increment dest ptr - b Lwloop - -Lcloop: # character copying loop - and g3, g4, g14 # extract next char - shro 8, g4, g4 # position word for next byte extraction - cmpo 0, g14 # is it null? - stob g14, (g5) # store the byte - addo 1, g5, g5 # post-increment dest ptr - bne Lcloop # quit if null encountered - - bx (g6) # g0 = dest string address; g14 = 0 -Lrett: - ret diff --git a/lib/machine/i960/strcpy_ca.S b/lib/machine/i960/strcpy_ca.S deleted file mode 100644 index dbb9444..0000000 --- a/lib/machine/i960/strcpy_ca.S +++ /dev/null @@ -1,284 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strcp_ca.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ - -/* - procedure strcpy (optimized assembler version for the CA) - - dest_addr = strcpy (dest_addr, src_addr) - - copy the null terminated string pointed to by src_addr to - the string space pointed to by dest_addr. Return the original - dest_addr. - - This routine will fail if the source and destination string - overlap (in particular, if the end of the source is overlapped - by the beginning of the destination). The behavior is undefined. - This is acceptable according to the draft C standard. - - Undefined behavior will also occur if the end of the source string - (i.e. the terminating null byte) is in the last word of the program's - allocated memory space. This is so because, in several cases, strcpy - will fetch ahead one word. Disallowing the fetch ahead would impose - a severe performance penalty. - - This program handles five cases: - - 1) both arguments start on a word boundary - 2) neither are word aligned, but they are offset by the same amount - 3) source is word aligned, destination is not - 4) destination is word aligned, source is not - 5) neither is word aligned, and they are offset by differing amounts - - At the time of this writing, only g0 thru g7 and g13 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers, plus tricky use of g14 are sufficient - to implement the routine. The registers are used as follows: - - g0 original dest ptr; not modified, so that it may be returned. - g1 src ptr; shift count - g2 dest ptr; 4 bytes of src - g3 src ptr (word aligned) - g4 dest ptr (word aligned) - g5 0xff -- byte extraction mask - g6 lsw of double word for extraction of 4 bytes (little endian) - msw of double word for extraction of 4 bytes (big endian) - g7 msw of double word for extraction of 4 bytes (little endian) - lsw of double word for extraction of 4 bytes (big endian) - g13 return address - g14 byte extracted. When reaches null byte, which is zero, we will - be in conformance with register conventions, and can return to - the caller with a clear conscience. - - procedure strcat - - dest_addr = strcat (dest_addr, src_addr) - - Appends the string pointed to by src_addr to the string pointed - to by dest_addr. The first character of the source string is - copied to the location initially occupied by the trailing null - byte of the destination string. Thereafter, characters are copied - from the source to the destination up thru the null byte that - trails the source string. -*/ - -#if __i960_BIG_ENDIAN__ -#define MSW g6 -#define LSW g7 -#else -#define LSW g6 -#define MSW g7 -#endif - - .globl _strcpy, _strcat - .globl __strcpy, __strcat - .leafproc _strcpy, __strcpy - .leafproc _strcat, __strcat - .align 2 -_strcat: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strcat: - notand g0,3,g4 # extract word addr of start of dest - lda (g14),g13 # preserve return address - and g0,3,LSW # extract byte offset of dest - ld (g4),MSW # fetch word containing at least first byte - shlo 3,LSW,g14 # get shift count for making mask for first word - subi 1,0,LSW # mask initially all ones -#if __i960_BIG_ENDIAN__ - shro g14,LSW,LSW # get mask for bytes needed from first word - lda 0xff000000,g5 # byte extraction mask -#else - shlo g14,LSW,LSW # get mask for bytes needed from first word - lda 0xff,g5 # byte extraction mask -#endif - notor MSW,LSW,MSW # set unneeded bytes to all ones -Lsearch_for_word_with_null: - scanbyte 0,MSW # check for null byte - lda 4(g4),g4 # post-increment dest word pointer - mov MSW,LSW # keep a copy of current word - ld (g4),MSW # fetch next word of dest - bno.t Lsearch_for_word_with_null # branch if null not found yet - and g5,LSW,g14 # extract byte - cmpo 0,g14 # branch if null is first byte of word - subo 4,g4,g4 # move dest word ptr back to word with null - notand g1,3,g3 # extract word addr of start of src - lda (g4),g2 # set dest byte ptr to 1st byte of word w/ null - be.f Lcase_14 -Lsearch_for_null: -#if __i960_BIG_ENDIAN__ - shro 8,g5,g5 # move mask down to next byte -#else - shlo 8,g5,g5 # move mask up to next byte -#endif - lda 1(g2),g2 # move dest byte ptr to next byte - and g5,LSW,g14 # extract byte - cmpobne.t 0,g14,Lsearch_for_null # branch if null is not yet found - lda 0xff,g5 # byte extraction mask - b Lcase_235.a - - -_strcpy: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strcpy: - notand g0,3,g4 # extract word addr of start of dest - lda (g14),g13 # preserve return address - cmpo g0,g4 # check alignment of dest - lda 0xff,g5 # load mask for byte extraction - notand g1,3,g3 # extract word addr of start of src - bne.f Lcase_235 # branch if dest is NOT word aligned - -Lcase_14: - cmpo g3,g1 # check alignment of src - ld (g3),LSW # fetch word containing at least first byte - shlo 3,g1,g1 # compute shift count - lda 4(g3),g3 # advance src word addr -#if __i960_BIG_ENDIAN__ - lda 0xff,g5 # byte extraction mask -#endif - bne.f Lcase_4 # branch if src is NOT word aligned - -Lcase_1: # src and dest are word aligned - subo 4,g4,g4 # store is pre-incrementing; back up dest addr -Lcase_1_wloop: # word copying loop - scanbyte 0,LSW # check for null byte in src word - lda (LSW),g2 # keep a copy of the src word - addo 4,g4,g4 # pre-increment dest addr - ld (g3),LSW # pre-fetch next word of src - addo 4,g3,g3 # post-increment src addr - bo.f Lcase_1_cloop # branch if word contains null byte - st g2,(g4) # store word in dest string - b Lcase_1_wloop - -Lcase_3_cloop: -Lcase_1_cloop: # character copying loop -#if __i960_BIG_ENDIAN__ - rotate 8,g2,g2 # move next byte into position for extraction - and g5,g2,g14 # extract next char -#else - and g5,g2,g14 # extract next char - shro 8,g2,g2 # move next byte into position for extraction -#endif - cmpo 0,g14 # check for null byte - stob g14,(g4) # store the byte in dest - lda 1(g4),g4 # post-increment dest byte addr - bne.t Lcase_1_cloop # branch if null not reached - -Lexit_code: - bx (g13) # g0 = addr of dest; g14 = 0 -Lrett: - ret - -Lcase_3: # src is word aligned; dest is not - addo 4,g4,g4 # move dest word ptr to first word boundary - mov LSW,MSW # make copy of first word of src - lda 0,g1 # initialize shift count to zero - -Lcase_25: -Lcase_3_cloop_at_start: # character copying loop for start of dest str -#if __i960_BIG_ENDIAN__ - rotate 8,MSW,MSW # move next byte into position for extraction - and g5,MSW,g14 # extract next char -#else - and g5,MSW,g14 # extract next char - shro 8,MSW,MSW # move next byte into position for extraction -#endif - cmpo 0,g14 # check for null byte - stob g14,(g2) # store the byte in dest - lda 1(g2),g2 # post-increment dest ptr - be.f Lexit_code # branch if null byte reached - cmpo g2,g4 # have we reached word boundary in dest? - lda 8(g1),g1 # augment the shift counter - bne.t Lcase_3_cloop_at_start - -Lcase_4: - ld (g3),MSW # fetch msw of operand for double shift -#if __i960_BIG_ENDIAN__ - subo g1,0,g1 # Adjust shift count for big endian. -#endif - -Lcase_3_wloop: - eshro g1,g6,g2 # extract 4 bytes of src - lda 4(g3),g3 # post-increment src word addr - scanbyte 0,g2 # check for null byte - lda (MSW),LSW # move msw to lsw - ld (g3),MSW # pre-fetch msw of operand for double shift - bo.f Lcase_3_cloop # branch if word contains null byte - st g2,(g4) # store 4 bytes to dest - addo 4,g4,g4 # post-increment dest ptr - b Lcase_3_wloop - -Lcase_235: - lda (g0),g2 # copy dest ptr -Lcase_235.a: - cmpo g3,g1 # check alignment of src - ld (g3),LSW # fetch word containing at least first byte - and 3,g1,g14 # compute shift count - lda 4(g3),g3 # advance src word addr - shlo 3,g14,g1 - be.t Lcase_3 # branch if dest is word aligned - or g4,g14,g14 # is src earlier in word, later, or sync w/ dst - ld (g3),MSW # pre-fetch second half - cmpo g2,g14 # < indicates first word of dest has more bytes - lda 4(g4),g4 # move dest word addr to first word boundary - /* than first word of source. */ -#if __i960_BIG_ENDIAN__ - subo g1,0,g14 # Adjust shift count for big endian. - eshro g14,g6,g14 # extract four bytes - bge.f 1f -#else - eshro g1,g6,g14 # extract four bytes - bg.f 1f -#endif - mov MSW,LSW - lda 4(g3),g3 # move src word addr to second word boundary -1: - mov g14,MSW - b Lcase_25 - -/* end of strcpy */ - diff --git a/lib/machine/i960/strcspn.S b/lib/machine/i960/strcspn.S deleted file mode 100644 index cd7b2e6..0000000 --- a/lib/machine/i960/strcspn.S +++ /dev/null @@ -1,94 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strcspn.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1989,1993 Intel Corp., all rights reserved - */ - -/* - procedure strcspn (optimized assembler version: 80960K series, 80960CA) - - len = strcspn (string, charset) - - Return the number of characters in the maximum leading segment - of string which consists solely of characters NOT from charset. - - At the time of this writing, only g0 thru g7 and g13 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers, plus tricky use of g14 are sufficient - to implement the routine. -*/ - - .globl _strcspn - .globl __strcspn - .leafproc _strcspn, __strcspn - .align 2 - -_strcspn: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strcspn: - mov g14,g13 # save return address - lda (g0),g3 # copy string pointer - mov 0,g14 # conform to register conventions - -Lnext_char: - ldob (g3),g7 # fetch next character of string - addo 1,g1,g2 # g2 will be the charset ptr - ldob (g1),g6 # fetch first character of charset - cmpobe.f 0,g7,Lexit # quit if at end of string -Lscan_set: - cmpo g6,g7 # is charset char same as string char? - ldob (g2),g5 # fetch next charset char - addo 1,g2,g2 # bump charset ptr - be.f Lexit - cmpo g6,0 # is charset exhausted? - lda (g5),g6 - bne.t Lscan_set # check next character of charset - addo 1,g3,g3 # check next character of string - b Lnext_char - -Lexit: - subo g0,g3,g0 # compute string length - bx (g13) -Lrett: - ret - -/* end of strcspn */ diff --git a/lib/machine/i960/strdup.S b/lib/machine/i960/strdup.S deleted file mode 100644 index 7e879ff..0000000 --- a/lib/machine/i960/strdup.S +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strdup.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif - -/* - * (c) copyright 1989,1993 Intel Corp., all rights reserved - */ - -/* - procedure strdup (optimized assembler version: 80960K series, 80960CA) - - dest_addr = strdup (src_addr) - - Allocate memory and copy thereto the string pointed to by src_addr. - Return the address of the copy, or null if unable to perform the - operation. -*/ - - .text - .align 2 - .globl _strdup -_strdup: - mov g0,r3 # Keep a copy of the original string addr - callj _strlen # Determine how much to allocate - addo 1,g0,g0 # Add one byte for the null byte at end - callj _malloc # Allocate the storage - cmpo 0,g0 - mov r3,g1 # Original string addr is now src for copy - bne.t _strcpy # Jump if allocation was successful - ret # Return the null ptr otherwise - -/* end of strdup */ diff --git a/lib/machine/i960/strlen.S b/lib/machine/i960/strlen.S deleted file mode 100644 index dfbeec2..0000000 --- a/lib/machine/i960/strlen.S +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strlen.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif - -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ - -/* - procedure strlen (optimized assembler version for the 80960K series) - - src_addr = strlen (src_addr) - - return the number of bytes that precede the null byte in the - string pointed to by src_addr. - - Undefined behavior will occur if the end of the source string (i.e. - the terminating null byte) is in the last four words of the program's - allocated memory space. This is so because strlen fetches ahead - several words. Disallowing the fetch ahead would impose a severe - performance penalty. - - Strategy: - - Fetch the source array by long-words and scanbyte the words for the - null byte until found. Examine the word in which the null byte is - found, to determine its actual position, and return the length. - - Tactics: - - 1) Do NOT try to fetch the words in a word aligned manner because, - in my judgement, the performance degradation experienced due to - non-aligned accesses does NOT outweigh the time and complexity added - by the preamble that would be necessary to assure alignment. This - is supported by the intuition that many source strings will be word - aligned to begin with. -*/ - - .globl _strlen - .globl __strlen - .leafproc _strlen, __strlen - .align 2 -_strlen: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strlen: - - mov g14,g13 # preserve return address - ldl (g0),g4 # fetch first two words - addo 8,g0,g2 # post-increment src word pointer - lda 0xff,g3 # byte extraction mask - - -Lsearch_for_word_with_null_byte: - scanbyte 0,g4 # check for null byte - mov g5,g7 # copy second word - bo.f Lsearch_for_null # branch if null found - scanbyte 0,g7 # check for null byte - ldl (g2),g4 # fetch next pair of word of src - addo 8,g2,g2 # post-increment src word pointer - bno Lsearch_for_word_with_null_byte # branch if null not found yet - - subo 4,g2,g2 # back up the byte pointer - mov g7,g4 # move word with null to search word -Lsearch_for_null: - subo 9,g2,g2 # back up the byte pointer -Lsearch_for_null.a: - and g4,g3,g14 # extract byte - cmpo 0,g14 # is it null? - addo 1,g2,g2 # bump src byte ptr - shro 8,g4,g4 # shift word to position next byte - bne Lsearch_for_null.a - -Lexit_code: - subo g0,g2,g0 # calculate string length - bx (g13) # g0 = addr of src; g14 = 0 -Lrett: - ret - -/* end of strlen */ diff --git a/lib/machine/i960/strlen_ca.S b/lib/machine/i960/strlen_ca.S deleted file mode 100644 index 350423b..0000000 --- a/lib/machine/i960/strlen_ca.S +++ /dev/null @@ -1,146 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strle_ca.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ - -/* - procedure strlen (optimized assembler version for the CA) - - src_addr = strlen (src_addr) - - return the number of bytes that precede the null byte in the - string pointed to by src_addr. - - Undefined behavior will occur if the end of the source string (i.e. - the terminating null byte) is in the last four words of the program's - allocated memory space. This is so because, in several cases, strlen - will fetch ahead several words. Disallowing the fetch ahead would - impose a severe performance penalty. - - This program handles two cases: - - 1) the argument starts on a word boundary - 2) the argument doesn't start on a word boundary - - At the time of this writing, only g0 thru g7 and g13 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers, plus tricky use of g14 are sufficient - to implement the routine. The registers are used as follows: - - g0 original src ptr; upon return it is the byte count. - g1 - g2 src ptr - g3 mask - g4 even word of the source string - g5 odd word of the source string - g6 copy of even word, shift count - g7 copy of odd word - g13 return address - g14 byte extracted. -*/ - - .globl _strlen - .globl __strlen - .leafproc _strlen, __strlen - .align 2 -_strlen: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strlen: - - notand g0,3,g2 # extract word addr of start of src - lda (g14),g13 # preserve return address - and g0,3,g7 # extract byte offset of src - ld (g2),g5 # fetch word containing at least first byte - shlo 3,g7,g7 # get shift count for making mask for first word - lda 4(g2),g2 # post-increment src word pointer - subi 1,0,g3 # mask initially all ones - chkbit 2,g2 # are we on an even word boundary or an odd one? -#if __i960_BIG_ENDIAN__ - shro g7,g3,g3 # get mask for bytes needed from first word - notor g5,g3,g7 # set unneeded bytes to all ones - lda 0xff000000,g3 # byte extraction mask -#else - shlo g7,g3,g3 # get mask for bytes needed from first word - notor g5,g3,g7 # set unneeded bytes to all ones - lda 0xff,g3 # byte extraction mask -#endif - bno.f Lodd_word # branch if first word is odd - mov g7,g4 # move first word to copy thereof - ld (g2),g5 # load odd word - lda 4(g2),g2 # post-increment src word pointer - - -Leven_word: - scanbyte 0,g4 # check for null byte - movl g4,g6 # copy both words -Lodd_word: # trickery! if we branch here, following branch - /* instruction will fall thru, as we want, */ - /* effecting the load of g4 and g5 only. */ - ldl (g2),g4 # fetch next pair of word of src - bo.f Lsearch_for_null # branch if null found - scanbyte 0,g7 # check for null byte - lda 8(g2),g2 # post-increment src word pointer - bno.t Leven_word # branch if null not found yet - - subo 4,g2,g2 # back up the byte pointer - lda (g7),g6 # move odd word to search word -Lsearch_for_null: - subo 9,g2,g2 # back up the byte pointer -Lsearch_for_null.a: - and g6,g3,g14 # extract byte - cmpo 0,g14 # is it null? - lda 1(g2),g2 # bump src byte ptr -#if __i960_BIG_ENDIAN__ - shlo 8,g6,g6 # shift word to position next byte -#else - shro 8,g6,g6 # shift word to position next byte -#endif - bne.t Lsearch_for_null.a - -Lexit_code: - subo g0,g2,g0 # calculate string length - bx (g13) # g0 = addr of src; g14 = 0 -Lrett: - ret - -/* end of strlen */ diff --git a/lib/machine/i960/strncat.S b/lib/machine/i960/strncat.S deleted file mode 100644 index a655824..0000000 --- a/lib/machine/i960/strncat.S +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strncat.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ -/* - procedure strncat (optimized assembler version for the 80960K Series) - - dest_addr = strncat (dest_addr, src_addr, max_bytes) - - append the null terminated string pointed to by src_addr to the null - terminated string pointed to by dest_addr. Return the original - dest_addr. If the source string is longer than max_bytes, then - append only max_bytes bytes, and tack on a null byte on the end. - - This routine will fail if the source and destination string - overlap (in particular, if the end of the source is overlapped - by the beginning of the destination). The behavior is undefined. - This is acceptable according to the draft C standard. - - Undefined behavior will also occur if the end of the source string - (i.e. the terminating null byte) is in the last two words of the - program's allocated memory space. This is so because strncat fetches - ahead. Disallowing the fetch ahead would impose a severe performance - penalty. - - Strategy: - - First, skip to the null byte in the destination string. Then - fetch the source string by words and store them by words to the - destination string, until there are fewer than three bytes left - to copy. Then, using the last word of the source (the one that - contains the remaining 0, 1, 2, or 3 bytes to be copied), store - a byte at a time until Ldone. - - If, before exhausting the max_byte count, the null byte is encountered - in the source string, then just copy up thru the null byte. - - Tactics: - - 1) Do NOT try to fetch and store the words in a word aligned manner - because, in my judgement, the performance degradation experienced due - to non-aligned accesses does NOT outweigh the time and complexity added - by the preamble and convoluted body that would be necessary to assure - alignment. -*/ - - .globl _strncat - .globl __strncat - .leafproc _strncat,__strncat - .align 2 -_strncat: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strncat: - mov g14,g6 - cmpibge 0, g2, Lno_operation # Lexit early if max_bytes <= 0 - mov g0, g5 -Lskip_word_loop: - ld (g5), g7 # fetch word of dest string - addo 4, g5, g5 # post-increment dest ptr - scanbyte 0, g7 # does it contain null byte? - bno Lskip_word_loop # if not, loop - subo 5, g5, g5 # adjust dest ptr - lda 0xff, g3 # byte extraction mask = 0xff; -Lskip_byte_loop: - and g7, g3, g14 # extract byte of last word of dest string - cmpo 0, g14 # is it null? - addo 1, g5, g5 # adjust dest ptr - shro 8, g7, g7 # position next byte for extraction - bne Lskip_byte_loop # loop if null not found yet - - ld (g1), g7 # fetch first word of source string -Lwloop: # word copying loop - cmpo 4, g2 # max_bytes < 4 ? - addo 4, g1, g1 # post-increment source ptr - bge Lcloop.a # branch if less than 4 bytes to move - scanbyte 0, g7 # is null byte reached yet? - mov g7, g4 # keep a copy of the source word - be Lcloop # branch if null byte reached - ld (g1), g7 # pre-fetch next word of source - subo 4, g2, g2 # reduce max_byte counter - st g4, (g5) # store current word - addo 4, g5, g5 # post-increment destination ptr - b Lwloop - -Lcloop.b: - addo 1, g5, g5 # post-increment destination ptr - shro 8, g7, g7 # position next byte for extraction -Lcloop: # character copying loop (max_byte > 3) - and g3, g7, g4 # extract character - cmpo 0, g4 # is it null? - stob g4, (g5) # store it - bne Lcloop.b # loop if null not encountered yet - - bx (g6) # g0 = dest string address; g14 = 0 -Lrett: - ret - -Lcloop.c: - addo 1, g5, g5 # post-increment destination ptr - shro 8, g7, g7 # position next byte for extraction -Lcloop.a: # character copying loop (max_byte <= 3) - cmpdeco 0,g2,g2 # max_byte == 0? - and g3, g7, g4 # extract character - be Ldone # store null and Lexit if max_byte exhausted - cmpo 0, g4 # is it null? - stob g4, (g5) # store it - bne Lcloop.c # loop if null not encountered yet - -Ldone: stob g14, (g5) # store trailing null - bx (g6) # g0 = dest string address; g14 = 0 - -Lno_operation: mov 0, g14 # conform to register conventions - bx (g6) - -/* end of strncat */ diff --git a/lib/machine/i960/strncat_ca.S b/lib/machine/i960/strncat_ca.S deleted file mode 100644 index 45c5e17..0000000 --- a/lib/machine/i960/strncat_ca.S +++ /dev/null @@ -1,300 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "sncat_ca.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ - -/* - procedure strncat (optimized assembler version for the CA) - - dest_addr = strncat (dest_addr, src_addr, max_bytes) - - append the null terminated string pointed to by src_addr to the null - terminated string pointed to by dest_addr. Return the original - dest_addr. If the source string is longer than max_bytes, then - append only max_bytes bytes, and tack on a null byte on the end - - This routine will fail if the source and destination string - overlap (in particular, if the end of the source is overlapped - by the beginning of the destination). The behavior is undefined. - This is acceptable according to the draft C standard. - - Undefined behavior will also occur if the end of the source string - (i.e. the terminating null byte) is in the last word of the program's - allocated memory space. This is so because, in several cases, strncat - will fetch ahead one word. Disallowing the fetch ahead would impose - a severe performance penalty. - - This program handles five cases: - - 1) both arguments start on a word boundary - 2) neither are word aligned, but they are offset by the same amount - 3) source is word aligned, destination is not - 4) destination is word aligned, source is not - 5) neither is word aligned, and they are offset by differing amounts - - At the time of this writing, only g0 thru g7 and g13 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers, plus tricky use of g14 are sufficient - to implement the routine. The registers are used as follows: - - g0 original dest ptr; not modified, so that it may be returned. - g1 src ptr; shift count - g2 max_bytes - g3 src ptr (word aligned) - g4 dest ptr (word aligned) - g5 0xff -- byte extraction mask - Little endian: - g6 lsw of double word for extraction of 4 bytes - g7 msw of double word for extraction of 4 bytes - Big endian: - g6 msw of double word for extraction of 4 bytes - g7 lsw of double word for extraction of 4 bytes - g13 return address - g14 byte extracted. -*/ - -#if __i960_BIG_ENDIAN__ -#define MSW g6 -#define LSW g7 -#else -#define LSW g6 -#define MSW g7 -#endif - - .globl _strncat - .globl __strncat - .leafproc _strncat, __strncat - .align 2 -_strncat: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strncat: - notand g0,3,g4 # extract word addr of start of dest - lda (g14),g13 # preserve return address - cmpibge.f 0,g2,Lexit_code # Lexit if number of bytes to move is <= zero. - and g0,3,LSW # extract byte offset of dest - ld (g4),MSW # fetch word containing at least first byte - shlo 3,LSW,g14 # get shift count for making mask for first word - subi 1,0,LSW # mask initially all ones -#if __i960_BIG_ENDIAN__ - shro g14,LSW,LSW # get mask for bytes needed from first word -#else - shlo g14,LSW,LSW # get mask for bytes needed from first word -#endif - notor MSW,LSW,MSW # set unneeded bytes to all ones - lda 0xff,g5 # byte extraction mask -Lsearch_for_word_with_null: - scanbyte 0,MSW # check for null byte - lda 4(g4),g4 # post-increment dest word pointer - mov MSW,LSW # keep a copy of current word - ld (g4),MSW # fetch next word of dest - bno.t Lsearch_for_word_with_null # branch if null not found yet -#if __i960_BIG_ENDIAN__ - shro 24,LSW,g14 # extract byte -#else - and g5,LSW,g14 # extract byte -#endif - cmpo 0,g14 # branch if null is first byte of word - subo 4,g4,g4 # move dest word ptr to word with null - notand g1,3,g3 # extract word addr of start of src - bne.t Lsearch_for_null - -Lcase_14: - cmpo g1,g3 # check alignment of source - ld (g3),LSW # fetch first word of source - shlo 3,g1,g14 # compute shift count - lda 4(g3),g3 # post-increment src addr - bne.f Lcase_4 # branch if source is unaligned -Lcase_1: -Lcase_1_wloop: # word copying loop - cmpi g2,4 # check for fewer than four bytes to move - lda (LSW),g1 # keep a copy of the src word - bl.f Lcase_1_cloop # branch if fewer than four bytes to copy - scanbyte 0,g1 # check for null byte in src word - ld (g3),LSW # pre-fetch next word of src - addo 4,g3,g3 # post-increment src addr - bo.f Lcase_1_cloop # branch if word contains null byte - subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved - st g1,(g4) # store word in dest string - addo 4,g4,g4 # post-increment dest addr - b Lcase_1_wloop - -Lcase_3_cloop: -Lcase_1_cloop: # character copying loop (max_bytes <= 3) - cmpdeci 0,g2,g2 # is max_bytes exhausted? -#if __i960_BIG_ENDIAN__ - rotate 8,g1,g1 # move next byte into position for extraction -#endif - and g5,g1,g14 # extract next char - be.f Lstore_null # if max_bytes is exhausted, store null and quit - cmpo 0,g14 # check for null byte - stob g14,(g4) # store the byte in dest -#if ! __i960_BIG_ENDIAN__ - shro 8,g1,g1 # move next byte into position for extraction -#endif - lda 1(g4),g4 # post-increment dest byte addr - bne.t Lcase_1_cloop # branch if null not reached - bx (g13) # Lexit (g14 == 0) - -Lstore_null: - mov 0,g14 # store null, and set g14 to zero - stob g14,(g4) - bx (g13) - - -Lsearch_for_null: -#if __i960_BIG_ENDIAN__ - shlo 8,LSW,LSW # check next byte - shro 24,LSW,g14 -#else - shlo 8,g5,g5 # move mask up to next byte - and g5,LSW,g14 # extract byte -#endif - lda 1(g4),g4 # move dest byte ptr to next byte - cmpobne.t 0,g14,Lsearch_for_null # branch if null is not yet found - -Lcase_235: - cmpo g1,g3 # check alignment of src - ld (g3),LSW # pre-fetch word with start of src - and 3,g1,g1 # compute shift count - lda 0xff,g5 # load mask for byte extraction - shlo 3,g1,g14 - lda 4(g3),g3 # post-increment src word counter - be.t Lcase_3 # branch if src is word aligned - and g4,3,MSW # extract byte offset for dest string - cmpo MSW,g1 # < indicates first word of dest has more bytes - /* than first word of source. */ - ld (g3),MSW # fetch second word of src -#if __i960_BIG_ENDIAN__ - subo g14,0,g14 # adjust shift count for big endian -#endif - eshro g14,g6,g5 # extract four bytes -#if __i960_BIG_ENDIAN__ - bge.f 1f -#else - bg.f 1f -#endif - mov MSW,LSW - lda 4(g3),g3 # move src word addr to second word boundary -1: - mov g5,MSW - lda 0xff,g5 - b Lcase_25 - -Lcase_3: # src is word aligned; dest is not - mov LSW,MSW # make copy of first word of src - lda 32,g14 # initialize shift count to zero (mod 32) -Lcase_25: - -Lcase_3_cloop_at_start: # character copying loop for start of dest str - cmpdeci 0,g2,g2 # is max_bytes exhausted? -#if __i960_BIG_ENDIAN__ - shro 24,MSW,g5 # extract next char -#else - and g5,MSW,g5 # extract next char -#endif - be.f Lstore_null # Lexit if max_bytes is exhausted - cmpo 0,g5 # check for null byte - stob g5,(g4) # store the byte in dest - addo 1,g4,g4 # post-increment dest ptr - lda 0xff,g5 # re-initialize byte extraction mask - notand g4,3,g1 # extract word address - be.t Lexit_code # Lexit if null byte reached - cmpo g1,g4 # have we reached word boundary in dest yet? -#if __i960_BIG_ENDIAN__ - lda -8(g14),g14 # augment the shift counter - rotate 8,MSW,MSW # move next byte into position for extraction -#else - lda 8(g14),g14 # augment the shift counter - shro 8,MSW,MSW # move next byte into position for extraction -#endif - bne.t Lcase_3_cloop_at_start # branch if reached word boundary? - -#if __i960_BIG_ENDIAN__ - cmpo 0,g14 - ld (g3),MSW # fetch msw of operand for double shift - bne Lcase_3_wloop # branch if src is still unaligned. - -Lcase_3_wloop2: - cmpi g2,4 # less than four bytes to move? - mov LSW,g1 # extract 4 bytes of src - lda 4(g3),g3 # post-increment src word addr - bl.f Lcase_3_cloop # branch if < four bytes left to move - scanbyte 0,g1 # check for null byte - mov MSW,LSW # move msw to lsw - ld (g3),MSW # pre-fetch msw of operand for double shift - bo.f Lcase_3_cloop # branch if word contains null byte - subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved - st g1,(g4) # store 4 bytes to dest - addo 4,g4,g4 # post-increment dest ptr - b Lcase_3_wloop2 -Lcase_4: - subo g14,0,g14 # adjust shift count for big endian -#else -Lcase_4: -#endif - - ld (g3),MSW # fetch msw of operand for double shift - -Lcase_3_wloop: - cmpi g2,4 # less than four bytes to move? - eshro g14,g6,g1 # extract 4 bytes of src - lda 4(g3),g3 # post-increment src word addr - bl.f Lcase_3_cloop # branch if < four bytes left to move - scanbyte 0,g1 # check for null byte - mov MSW,LSW # move msw to lsw - ld (g3),MSW # pre-fetch msw of operand for double shift - bo.f Lcase_3_cloop # branch if word contains null byte - subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved - st g1,(g4) # store 4 bytes to dest - addo 4,g4,g4 # post-increment dest ptr - b Lcase_3_wloop - - -Lexit_code: - mov 0,g14 # conform to register conventions - bx (g13) # g0 = addr of dest; g14 = 0 -Lrett: - ret - -/* end of strncat */ - diff --git a/lib/machine/i960/strncmp.S b/lib/machine/i960/strncmp.S deleted file mode 100644 index 030b750..0000000 --- a/lib/machine/i960/strncmp.S +++ /dev/null @@ -1,129 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strncmp.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ -/* - procedure strncmp (optimized assembler version for the 80960K Series) - - result = strncmp (src1_addr, src2_addr, max_bytes) - - compare the null terminated string pointed to by src1_addr to - the string pointed to by src2_addr. Return 0 iff the strings - are equal, -1 if src1_addr is lexicographically less than src2_addr, - and 1 if it is lexicographically greater. Do not compare more than - max_bytes bytes. - - Undefined behavior will occur if the end of either source string - (i.e. the terminating null byte) is in the last two words of the - program's allocated memory space. This is so because strncmp - will fetch ahead. Disallowing the fetch ahead would impose - a severe performance penalty. - - Strategy: - - Fetch and compare the strings by words and go to a character - comparison loop as soon as a pair of words differ. If the - words are equal up through either the exhaustion of max_bytes - or the presence of the null byte, return 0 (equality). Otherwise, - the character comparator will return -1 or 1 for inequality, or - 0 if the differing byte is after the null byte or after the - exhaustion of max_bytes. - - Tactics: - - 1) Do NOT try to fetch the words in a word aligned manner because, - in my judgement, the performance degradation experienced due to - non-aligned accesses does NOT outweigh the time and complexity added - by the preamble and convoluted body that would be necessary to assure - alignment. -*/ - - .globl _strncmp - .globl __strncmp - .leafproc _strncmp,__strncmp - .align 2 - -_strncmp: -#ifndef __PIC - lda .Lrett,g14 -#else - lda .Lrett-(.+8)(ip),g14 -#endif -__strncmp: - mov g14,g13 - ldconst 0,g14 - cmpibge 0,g2,Lequal_exit # Lexit early if max_bytes <= 0 - addo g2,g0,g2 -.Lwloop: - cmpo g0,g2 # are max_bytes exhausted? - ld (g0), g5 # fetch word of source_1 - bge Lequal_exit # Lexit (equality) if max_bytes exhausted - ld (g1), g3 # fetch word of source_2 - addo 4,g0,g0 # post-increment source_1 ptr - scanbyte 0,g5 # is a null byte present? - addo 4,g1,g1 # post-increment source_1 ptr - be .Lcloop.a # perform char comparator if null byte found - cmpobe g5,g3,.Lwloop # perform char comparator if words are unequal - -.Lcloop.a: subo 4,g0,g0 # adjust max_byte counter - ldconst 0xff,g4 # byte extraction mask - -.Lcloop: and g4,g5,g7 # compare individual bytes - and g4,g3,g6 - cmpobne g7,g6,.diff # if different, return -1 or 1 - cmpo 0,g6 # they are equal. are they null? - shlo 8,g4,g4 # position mask to extract next byte - be Lequal_exit # if they are null, Lexit (equality) - addo 1,g0,g0 # is max_bytes exhausted? - cmpobl g0,g2,.Lcloop # if not, loop. if so, Lexit (equality) - -Lequal_exit: - mov 0,g0 - bx (g13) -.Lrett: - ret -.diff: bl .neg - mov 1,g0 - bx (g13) - -.neg: subi 1,0,g0 -.Lexit: - bx (g13) - -/* end of strncmp */ diff --git a/lib/machine/i960/strncmp_ca.S b/lib/machine/i960/strncmp_ca.S deleted file mode 100644 index 0b1a8ff..0000000 --- a/lib/machine/i960/strncmp_ca.S +++ /dev/null @@ -1,253 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "sncmp_ca.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ - -/* - procedure strncmp (optimized assembler version for the CA) - - result = strncmp (src1_addr, src2_addr, max_bytes) - - compare the null terminated string pointed to by src1_addr to - the string space pointed to by src2_addr. Return 0 iff the strings - are equal, -1 if src1_addr is lexicly less than src2_addr, and 1 - if it is lexicly greater. Do not compare more than max_bytes bytes. - - Undefined behavior will occur if the end of either source string - (i.e. the terminating null byte) is in the last word of the program's - allocated memory space. This is so because, in several cases, strncmp - will fetch ahead one word. Disallowing the fetch ahead would impose - a severe performance penalty. - - This program handles five cases: - - 1) both arguments start on a word boundary - 2) neither are word aligned, but they are offset by the same amount - 3) source1 is word aligned, source2 is not - 4) source2 is word aligned, source1 is not - 5) neither is word aligned, and they are offset by differing amounts - - At the time of this writing, only g0 thru g7 and g14 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers are sufficient to implement the routine. - The registers are used as follows: - - g0 original src1 ptr; extracted word; return result - g1 src2 ptr; 0xff -- byte extraction mask - g2 maximum number of bytes to compare - g3 src2 word ptr - Little endian: - g4 lsw of src1 - g5 msw of src1 - g6 src2 word - g7 src1 word ptr - Big endian: - g4 msw of src1 - g5 lsw of src1 - g6 src1 word ptr - g7 src2 word - g13 return address - g14 shift count -*/ - -#if __i960_BIG_ENDIAN__ -#define MSW g4 -#define LSW g5 -#define SRC1 g6 -#define SRC2 g7 -#else -#define LSW g4 -#define MSW g5 -#define SRC2 g6 -#define SRC1 g7 -#endif - - .globl _strncmp - .globl __strncmp - .leafproc _strncmp, __strncmp - .align 2 -_strncmp: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strncmp: -Lrestart: - notand g0,3,SRC1 # extract word addr of start of src1 - lda (g14),g13 # preserve return address - cmpibge.f 0,g2,Lequal_exit # return equality if number of bytes to - /* compare is none. */ -#if __i960_BIG_ENDIAN__ - cmpo g0,SRC1 # check alignment of src1 -#endif - ld (SRC1),LSW # fetch word with at least first byte of src1 - notand g1,3,g3 # extract word addr of start of src2 - ld 4(SRC1),MSW # fetch second word of src1 -#if __i960_BIG_ENDIAN__ - bne Lsrc1_unaligned # branch if src1 is unaligned - cmpo g3,g1 # check alignment of src2 - ld (g3),SRC2 # fetch word with at least first byte of src2 - shlo 3,g0,g14 # compute shift count for src1 - subo g14,0,g14 # adjust shift count for big endian - lda 8(SRC1),SRC1 # advance src1 word addr - bne.f Lsrc2_unaligned # branch if src2 is NOT word aligned - - /* src2 is word aligned */ - - mov LSW,g0 - -Lwloop2: # word comparing loop - cmpo SRC2,g0 # compare src1 and src2 words - lda 0xff000000,g1 # byte extraction mask - mov MSW,LSW # move msw of src1 to lsw - ld (SRC1),MSW # pre-fetch next msw of src1 - addo 4,SRC1,SRC1 # post-increment src1 addr - lda 4(g3),g3 # pre-increment src2 addr - bne.f Lcloop # branch if src1 and src2 unequal - scanbyte 0,g0 # check for null byte in src1 word - ld (g3),SRC2 # pre-fetch next word of src2 - mov LSW,g0 # extract word of src1 - subi 4,g2,g2 # decrement maximum byte count - bo.f Lequal_exit # branch if null byte encountered - cmpibl.t 0,g2,Lwloop2 # branch if max_bytes not reached yet - - b Lequal_exit # strings were equal up through max_bytes - -Lsrc1_unaligned: -#endif - cmpo g3,g1 # check alignment of src2 - ld (g3),SRC2 # fetch word with at least first byte of src2 - shlo 3,g0,g14 # compute shift count for src1 -#if __i960_BIG_ENDIAN__ - subo g14,0,g14 # adjust shift count for big endian -#endif - eshro g14,g4,LSW # extract word of src1 - lda 8(SRC1),SRC1 # advance src1 word addr - bne.f Lsrc2_unaligned # branch if src2 is NOT word aligned - - /* at least src2 is word aligned */ - - mov LSW,g0 - -Lwloop: # word comparing loop - cmpo SRC2,g0 # compare src1 and src2 words -#if __i960_BIG_ENDIAN__ - lda 0xff000000,g1 # byte extraction mask -#else - lda 0xff,g1 # byte extraction mask -#endif - mov MSW,LSW # move msw of src1 to lsw - ld (SRC1),MSW # pre-fetch next msw of src1 - addo 4,SRC1,SRC1 # post-increment src1 addr - lda 4(g3),g3 # pre-increment src2 addr - bne.f Lcloop # branch if src1 and src2 unequal - scanbyte 0,g0 # check for null byte in src1 word - ld (g3),SRC2 # pre-fetch next word of src2 - eshro g14,g4,g0 # extract word of src1 - subi 4,g2,g2 # decrement maximum byte count - bo.f Lequal_exit # branch if null byte encountered - cmpibl.t 0,g2,Lwloop # branch if max_bytes not reached yet - - b Lequal_exit # strings were equal up through max_bytes - -Lcloop_setup: # setup for coming from Lsrc2_unaligned - mov LSW,g0 # restore extracted src1 word -#if __i960_BIG_ENDIAN__ - lda 0xff000000,g1 # byte extraction mask -#else - lda 0xff,g1 # byte extraction mask -#endif - -Lcloop: # character comparing loop - and SRC2,g1,g3 # extract next char of src2 - and g0,g1,LSW # extract next char of src1 - cmpobne.f LSW,g3,.diff # check for equality - cmpo 0,LSW # check for null byte -#if __i960_BIG_ENDIAN__ - shro 8,g1,g1 # shift mask for next byte -#else - shlo 8,g1,g1 # shift mask for next byte -#endif - subi 1,g2,g2 # decrement character counter - bne.t Lcloop # branch if null not reached - - /* words are equal up thru null byte */ - -Lequal_exit: - mov 0,g14 # conform to register conventions - lda 0,g0 # return zero, indicating equality - bx (g13) # return - -Lrett: - ret - -.diff: - mov 0,g14 - bl Lless_than_exit -Lgreater_than_exit: - cmpibge.f 0,g2,Lequal_exit # branch if difference is beyond max_bytes - mov 1,g0 - bx (g13) # g0 = 1 (src1 > src2) -Lless_than_exit: - cmpibge.f 0,g2,Lequal_exit # branch if difference is beyond max_bytes - subi 1,0,g0 - bx (g13) # g0 = -1 (src1 < src2) - -Lsrc2_unaligned: - notor g1,3,g14 # first step in computing new src1 ptr - ld 4(g3),SRC1 # fetch second word of src2 - shlo 3,g1,MSW # compute shift count for src2 -#if __i960_BIG_ENDIAN__ - subo MSW,0,MSW # adjust shift count for big endian -#endif - eshro MSW,g6,SRC2 # extract word of src2 - cmpo LSW,SRC2 # compare src1 and src2 words - lda 4(g3),g1 # set new src2 ptr - bne.f Lcloop_setup # first four bytes differ - scanbyte 0,LSW # check for null byte - subo g14,g0,g0 # second (final) step in computing new src1 ptr - addi g14,g2,g2 # compute new max_bytes too - lda (g13),g14 # prepare return pointer for Lrestart - bno.t Lrestart # if null byte not encountered, continue - /* with both string fetches shifted such that*/ - /* src2 is now word aligned.*/ - mov 0,g14 # conform to register conventions. - lda 0,g0 # return indicator of equality. - bx (g13) diff --git a/lib/machine/i960/strncpy.S b/lib/machine/i960/strncpy.S deleted file mode 100644 index 9f51b60..0000000 --- a/lib/machine/i960/strncpy.S +++ /dev/null @@ -1,154 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strncpy.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ -/* - procedure strncpy (optimized assembler version for the 80960K Series) - - dest_addr = strncpy (dest_addr, src_addr, max_bytes) - - copy the null terminated string pointed to by src_addr to the - string pointed to by dest_addr. Return the original dest_addr. - If the source string is shorter than max_bytes, then null-pad - the destination string. If it is longer than max_bytes, the - copy stops at max_bytes bytes (and no terminating null appears - in the destination string). - - This routine will fail if the source and destination string - overlap (in particular, if the end of the source is overlapped - by the beginning of the destination). The behavior is undefined. - This is acceptable according to the draft C standard. - - Undefined behavior will also occur if the end of the source string - (i.e. the terminating null byte) is in the last two words of the - program's allocated memory space. This is so because strncpy fetches - ahead. Disallowing the fetch ahead would impose a severe performance - penalty. - - Strategy: - - Fetch and store the strings by words and go to a character move loop - as soon as a null byte is encountered. If max_bytes is exhausted - first, then terminate after moving only max_bytes (with the last - 0, 1, 2, or 3 bytes moved as single bytes, not as a word). - Otherwise, the character move loop moves the last bytes or the - source string, and then null-pads the destination string until - max_bytes is exhausted. - - Tactics: - - 1) Do NOT try to fetch the words in a word aligned manner because, - in my judgement, the performance degradation experienced due to - non-aligned accesses does NOT outweigh the time and complexity added - by the preamble and convoluted body that would be necessary to assure - alignment. - - 2) When the null byte is encountered in a source word, null out the - higher-numbered bytes in that word, store the word in the destination, - and go to the word null-padder, which may eventually go to the byte - null-padder. -*/ - - .globl _strncpy - .globl __strncpy - .leafproc _strncpy,__strncpy - .align 2 -_strncpy: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strncpy: - mov g14, g13 - cmpibge 0,g2,Lexit # quit early if max_bytes <= 0 - ld (g1), g7 # fetch the first word of the source - mov g0, g5 - lda 0xff, g3 # byte extraction mask - addo g1, g2, g6 - addo g2, g5, g2 -Lwloop: # word copying loop - addo 4, g1, g1 # post-increment source ptr - cmpo g6, g1 # max_bytes < 4 ? - mov g7, g4 # keep a copy of source word - bl Lcloop.a # if less than four bytes to go, go to char loop - scanbyte 0, g4 # null byte found? - ld (g1), g7 # pre-fetch next word of the source - be Lcloop.c # go to char loop if null encountered - st g4, (g5) # store current word - addo 4, g5, g5 # post-increment destination ptr - b Lwloop - -Lcloop.a: # character copying loop (max_bytes < 3) - and g3, g4, g14 # extract byte -Lcloop.b: - cmpo g2, g5 # max_bytes <= 0 ? - shro 8, g4, g4 # position word to extract next byte - be Lexit # exit if max_bytes exhausted - cmpo 0, g14 # is it null? - stob g14, (g5) # store it - addo 1, g5, g5 # post-increment dest ptr - bne Lcloop.a # branch if we are NOT null padding - b Lcloop.b # branch if we are null padding - -Lexit: - mov 0, g14 - bx (g13) # g0 = dest string address; g14 = 0 -Lrett: - ret - -Lcloop.c: # character copying loop - and g3, g4, g14 # extract byte - cmpo 0, g14 # is it null? - mov g3, g7 # save mask - shlo 8, g3, g3 # shift mask to next byte position - bne Lcloop.c # loop until null found - subo 1, g7, g3 # mask to null pad after null byte - and g3, g4, g4 # null-out stuff after null byte - st g4, (g5) # store last part of src and first of null-pad - subo 8,g2,g6 # adjust max_byte counter - -Lzwloop: - cmpo g5, g6 # max_bytes < 4 ? - addo 4, g5, g5 - bg Lcloop.b # if so, goto character loop - st g14, (g5) # store four null bytes - b Lzwloop - -/* end of strncpy */ diff --git a/lib/machine/i960/strncpy_ca.S b/lib/machine/i960/strncpy_ca.S deleted file mode 100644 index 1f90acf..0000000 --- a/lib/machine/i960/strncpy_ca.S +++ /dev/null @@ -1,289 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "sncpy_ca.s" -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ - -/* - procedure strncpy (optimized assembler version for the CA) - - dest_addr = strncpy (dest_addr, src_addr, max_bytes) - - copy the null terminated string pointed to by src_addr to - the string space pointed to by dest_addr. Return the original - dest_addr. If the source string is shorter than max_bytes, - then null-pad the destination string. - - This routine will fail if the source and destination string - overlap (in particular, if the end of the source is overlapped - by the beginning of the destination). The behavior is undefined. - This is acceptable according to the draft C standard. - - Undefined behavior will also occur if the end of the source string - (i.e. the terminating null byte) is in the last word of the program's - allocated memory space. This is so because, in several cases, strcpy - will fetch ahead one word. Disallowing the fetch ahead would impose - a severe performance penalty. - - This program handles five cases: - - 1) both arguments start on a word boundary - 2) neither are word aligned, but they are offset by the same amount - 3) source is word aligned, destination is not - 4) destination is word aligned, source is not - 5) neither is word aligned, and they are offset by differing amounts - - At the time of this writing, only g0 thru g7 and g13 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers, plus tricky use of g14 are sufficient - to implement the routine. The registers are used as follows: - - g0 original dest ptr; not modified, so that it may be returned. - g1 src ptr; shift count - g2 max_bytes - g3 src ptr (word aligned) - g4 dest ptr (word aligned) - g5 0xff -- byte extraction mask - Little endian: - g6 lsw of double word for extraction of 4 bytes - g7 msw of double word for extraction of 4 bytes - Big endian: - g6 msw of double word for extraction of 4 bytes - g7 lsw of double word for extraction of 4 bytes - g13 return address - g14 byte extracted. -*/ - -#if __i960_BIG_ENDIAN__ -#define MSW g6 -#define LSW g7 -#else -#define LSW g6 -#define MSW g7 -#endif - - .globl _strncpy - .globl __strncpy - .leafproc _strncpy, __strncpy - .align 2 -_strncpy: -#ifndef __PIC - lda Lrett,g14 -#else - lda Lrett-(.+8)(ip),g14 -#endif -__strncpy: - notand g1,3,g3 # extract word addr of start of src - lda (g14),g13 # preserve return address - cmpibge.f 0,g2,Lexit_code # Lexit if number of bytes to move is <= zero. - cmpo g3,g1 # check alignment of src - ld (g3),LSW # fetch word containing at least first byte - notand g0,3,g4 # extract word addr of start of dest - lda 4(g3),g3 # advance src word addr - bne.f Lcase_245 # branch if src is NOT word aligned - -Lcase_13: - cmpo g0,g4 # check alignment of dest - lda 0xff,g5 # load mask for byte extraction - subo 4,g4,g4 # store is pre-incrementing; back up dest addr - bne.f Lcase_3 # branch if dest not word aligned - -Lcase_1: # src and dest are word aligned -Lcase_1_wloop: # word copying loop - cmpi g2,4 # check for fewer than four bytes to move - lda (LSW),g1 # keep a copy of the src word - addo 4,g4,g4 # pre-increment dest addr - bl.f Lcase_1_cloop.a # branch if fewer than four bytes to copy - scanbyte 0,g1 # check for null byte in src word - ld (g3),LSW # pre-fetch next word of src - subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved - bo.f Lcase_1_cloop.c # branch if word contains null byte - addo 4,g3,g3 # post-increment src addr - st g1,(g4) # store word in dest string - b Lcase_1_wloop - -Lcase_3_cloop.a: -Lcase_1_cloop.a: # character copying loop (max_bytes <= 3) -#if __i960_BIG_ENDIAN__ - rotate 8,g1,g1 # move next byte into position for extraction -#endif - and g5,g1,g14 # extract next char -Lcase_1_cloop.b: - cmpdeci 0,g2,g2 # is max_bytes exhausted? - be.f Lexit_code # Lexit if max_bytes is exhausted - cmpo 0,g14 # check for null byte - stob g14,(g4) # store the byte in dest -#if ! __i960_BIG_ENDIAN__ - shro 8,g1,g1 # move next byte into position for extraction -#endif - lda 1(g4),g4 # post-increment dest byte addr - bne.t Lcase_1_cloop.a # branch if null not reached - b Lcase_1_cloop.b - -Lexit_code: - mov 0,g14 # conform to register conventions - bx (g13) # g0 = addr of dest; g14 = 0 -Lrett: - ret - -Lcase_1_cloop.c: -Lcase_3_cloop.c: -#if __i960_BIG_ENDIAN__ - rotate 24,g5,g5 # move mask into position for testing next byte -#endif - and g5,g1,g14 # extract next char - cmpo 0,g14 # check for null byte -#if ! __i960_BIG_ENDIAN__ - lda (g5),LSW # keep a copy of the current mask - shlo 8,g5,g5 # move mask into position for testing next byte -#endif - bne.t Lcase_1_cloop.c # branch if null not reached -#if __i960_BIG_ENDIAN__ - subo 1,g5,g5 # null pad. - andnot g5,g1,g1 # last bytes to copy, and null pad rest of word -#else - subo 1,LSW,g5 # mask to get last bytes to copy, and null pad - and g5,g1,g1 # last bytes to copy, and null pad rest of word -#endif - st g1,(g4) - -Lcase_1_zwloop: # zero word loop - cmpi g2,4 # check for fewer than four bytes to move - addo 4,g4,g4 # pre-increment dest addr - bl.f Lcase_1_cloop.b # branch if fewer than four bytes to copy - subo 4,g2,g2 # decrease max_byte count by the 4 bytes moved - st g14,(g4) # store word in dest string - b Lcase_1_zwloop - -Lcase_3: # src is word aligned; dest is not - addo 8,g4,g4 # move dest word ptr to first word boundary - lda (g0),g1 # copy dest byte ptr - mov LSW,MSW # make copy of first word of src - lda 32,g14 # initialize shift count to zero (mod 32) - -Lcase_25: -Lcase_3_cloop_at_start: # character copying loop for start of dest str - cmpdeci 0,g2,g2 # is max_bytes exhausted? -#if __i960_BIG_ENDIAN__ - shro 24,MSW,g5 # extract next char -#else - and g5,MSW,g5 # extract next char -#endif - be.f Lexit_code # Lexit if max_bytes is exhausted - cmpo 0,g5 # check for null byte - stob g5,(g1) # store the byte in dest - addo 1,g1,g1 # post-increment dest ptr - lda 0xff,g5 # re-initialize byte extraction mask - bne.t 1f # drop thru if null byte reached (to pad) - movl 0,g6 # blank out remainder of input buffer -1: - cmpo g1,g4 # have we reached word boundary in dest yet? -#if __i960_BIG_ENDIAN__ - lda -8(g14),g14 # augment the shift counter - rotate 8,MSW,MSW # move next byte into position for extraction -#else - lda 8(g14),g14 # augment the shift counter - shro 8,MSW,MSW # move next byte into position for extraction -#endif - bne.t Lcase_3_cloop_at_start # branch if reached word boundary? - - ld (g3),MSW # fetch msw of operand for double shift - -Lcase_4: - -#if __i960_BIG_ENDIAN__ - cmpobne 0,g14,Lcase_3_wloop # branch if src is still unaligned. - -Lcase_3_wloop2: - cmpi g2,4 # less than four bytes to move? - lda (LSW),g1 # extract 4 bytes of src - lda 4(g3),g3 # post-increment src word addr - bl.f Lcase_3_cloop.a # branch if < four bytes left to move - scanbyte 0,g1 # check for null byte - lda (MSW),LSW # move msw to lsw - subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved - ld (g3),MSW # pre-fetch msw of operand for double shift - bo.f Lcase_3_cloop.c # branch if word contains null byte - st g1,(g4) # store 4 bytes to dest - addo 4,g4,g4 # post-increment dest ptr - b Lcase_3_wloop2 - -#endif - -Lcase_3_wloop: - cmpi g2,4 # less than four bytes to move? - eshro g14,g6,g1 # extract 4 bytes of src - lda 4(g3),g3 # post-increment src word addr - bl.f Lcase_3_cloop.a # branch if < four bytes left to move - scanbyte 0,g1 # check for null byte - lda (MSW),LSW # move msw to lsw - subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved - ld (g3),MSW # pre-fetch msw of operand for double shift - bo.f Lcase_3_cloop.c # branch if word contains null byte - st g1,(g4) # store 4 bytes to dest - addo 4,g4,g4 # post-increment dest ptr - b Lcase_3_wloop - -Lcase_245: - cmpo g0,g4 # check alignment of dest - ld (g3),MSW # pre-fetch second half - and 3,g1,g1 # compute shift count - lda 0xff,g5 # load mask for byte extraction -#if __i960_BIG_ENDIAN__ - subo g1,4,g14 # adjust shift count for big endian. - shlo 3,g14,g14 -#else - shlo 3,g1,g14 -#endif - be.t Lcase_4 # branch if dest is word aligned - or g4,g1,g1 # is src earlier in word, later, or sync w/ dst - cmpo g0,g1 # < indicates first word of dest has more bytes - /* than first word of source. */ - lda 4(g4),g4 # move dest word addr to first word boundary - eshro g14,g6,g5 # extract four bytes - lda (g0),g1 - bg.f 1f - mov MSW,LSW - lda 4(g3),g3 # move src word addr to second word boundary -1: - mov g5,MSW - lda 0xff,g5 - b Lcase_25 - -/* end of strncpy */ - diff --git a/lib/machine/i960/strpbrk.S b/lib/machine/i960/strpbrk.S deleted file mode 100644 index bae909f..0000000 --- a/lib/machine/i960/strpbrk.S +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - -/* - * (c) copyright 1989,1993 Intel Corp., all rights reserved - */ - -/* - procedure strpbrk (optimized assembler version: 80960K series, 80960CA) - - char_addr = strpbrk (string, brkset_string) - - Return the address of the first character in string that is NOT - in the brkset_string. Return NULL if none exists. - - At the time of this writing, only g0 thru g7 and g13 are available - for use in this leafproc; other registers would have to be saved and - restored. These nine registers, plus tricky use of g14 are sufficient - to implement the routine. - - This routine stays out of g3 and g4 altogether. They may be used by - the strtok routine, which calls this routine in an incestuous way. -*/ -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif - - .file "strprk.s" - .globl _strpbrk - .globl __strpbrk - .leafproc _strpbrk, __strpbrk - .align 2 - -_strpbrk: -#ifdef __PIC - lda Lrett-(.+8)(ip),g14 - b __strpbrk -#else - lda Lrett,g14 - b __strpbrk -#endif - -Lrett: ret - -__strpbrk: - -Lnext_char_strpbrk: - addo 1,g1,g2 # g2 will be the brkset ptr - ldob (g0),g7 # fetch next character of string - ldob (g1),g6 # fetch first character of brkset - cmpobe.f 0,g7,Lexit_char_not_found # quit if at end of string -Lscan_set_strpbrk: - cmpo g6,g7 # is brkset char equal to string char? - ldob (g2),g5 # fetch next brkset char - addo 1,g2,g2 # bump brkset ptr - be.f Lexit_char_found - cmpo g6,0 # is brkset_string exhausted? - lda (g5),g6 - bne.t Lscan_set_strpbrk # check next character of brkset - addo 1,g0,g0 # check next character of string - b Lnext_char_strpbrk - -Lexit_char_not_found: - mov 0,g0 # return null if brkset char not found in string -Lexit_char_found: - mov g14,g13 # save return address - lda 0,g14 # conform to register conventions - bx (g13) - -/* end of strpbrk */ diff --git a/lib/machine/i960/strrchr.S b/lib/machine/i960/strrchr.S deleted file mode 100644 index 96fe5c2..0000000 --- a/lib/machine/i960/strrchr.S +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 1993 Intel Corporation - * - * Intel hereby grants you permission to copy, modify, and distribute this - * software and its documentation. Intel grants this permission provided - * that the above copyright notice appears in all copies and that both the - * copyright notice and this permission notice appear in supporting - * documentation. In addition, Intel grants this permission provided that - * you prominently mark as "not part of the original" any modifications - * made to this software or documentation, and that the name of Intel - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software or the documentation without specific, - * written prior permission. - * - * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR - * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY - * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or - * representations regarding the use of, or the results of the use of, - * the software and documentation in terms of correctness, accuracy, - * reliability, currentness, or otherwise; and you rely on the software, - * documentation and results solely at your own risk. - * - * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, - * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES - * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM - * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. - * - ******************************************************************************/ - - .file "strrchr.s" -#ifdef __i960_BIG_ENDIAN__ -#error "This does not work in big-endian" -#endif - -#ifdef __PIC - .pic -#endif -#ifdef __PID - .pid -#endif - -/* - * (c) copyright 1988,1993 Intel Corp., all rights reserved - */ - -/* - procedure strrchr (optimized assembler version for the 80960K series) - - src_addr = strrchr (src_addr, char) - - return a pointer to the last byte that contains the indicated - byte in the source string. Return null if the byte is not found. - - Undefined behavior will occur if the end of the source string (i.e. - the terminating null byte) is in the last two words of the program's - allocated memory space. This is so because strrchr fetches ahead. - Disallowing the fetch ahead would impose a severe performance penalty. - - Strategy: - - Fetch the source string by words and scanbyte the words for the - char until either a word with the byte is found or the null byte is - encountered. In the former case, move through the word to find the - matching byte and save its memory address, then continue the search. - In the latter case, return the saved address, or zero (null) if none - was ever found to save. - - Tactics: - - 1) Do NOT try to fetch the words in a word aligned manner because, - in my judgement, the performance degradation experienced due to - non-aligned accesses does NOT outweigh the time and complexity added - by the preamble that would be necessary to assure alignment. This - is supported by the intuition that most source arrays (even more - true of most big source arrays) will be word aligned to begin with. -*/ - - .globl _strrchr - .globl __strrchr - .leafproc _strrchr, __strrchr - .align 2 -_strrchr: -#ifdef __PIC - lda Lrett-(.+8)(ip),g14 -#else - lda Lrett,g14 -#endif -__strrchr: - - ld (g0),g4 # fetch first word - lda 0xff,g7 # byte extraction mask - and g1,g7,g1 # make char an 8-bit ordinal - shlo 8,g1,g2 # broadcast the char to four bytes - or g1,g2,g2 - shlo 16,g2,g5 - or g2,g5,g3 - mov g14,g13 # preserve return address - addo 4,g0,g2 # post-increment src pointer - mov 1,g0 # prepare to return null pointer - mov g3,g6 # prepare to return null pointer - -Lsearch_for_word_with_char_or_null: - mov g4,g5 # copy word - scanbyte 0,g5 # check for null byte - ld (g2),g4 # fetch next word of src - bo Lword_has_null # branch if null found - scanbyte g3,g5 # check for byte with char - addo 4,g2,g2 # post-increment src pointer - bno Lsearch_for_word_with_char_or_null # branch if no copy of char - mov g5,g6 # save word that has char in it (at least once) - subo 4,g2,g0 # save addr of byte after word with char - b Lsearch_for_word_with_char_or_null - -Lword_has_null: - subo 4,g2,g2 # move src pointer back to word with null -Lfind_null: - addo 1,g2,g2 # advance src pointer to byte after current - and g7,g5,g14 # extract next byte - cmpo g1,g14 # is current byte char? - shro 8,g5,g5 # position next byte for extraction - bne 1f # skip if not char sought after - mov g2,g0 # save addr of byte after char - mov g3,g6 # save word of all char to short circuit search -1: cmpobne 0,g14,Lfind_null # is current byte null? - -Lfind_last_char: - rotate 8,g6,g6 # position next highest byte - and g7,g6,g5 # extract byte - subo 1,g0,g0 # move pointer to that byte (or nullify) - cmpobne g5,g1,Lfind_last_char # branch if not at char - - bx (g13) # g0 = addr of char in src (or null); g14 = 0 -Lrett: - ret - -/* end of strrchr */ diff --git a/lib/machine/iq2000/Makefile.inc b/lib/machine/iq2000/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/iq2000/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/iq2000/setjmp.S b/lib/machine/iq2000/setjmp.S deleted file mode 100644 index cb09463..0000000 --- a/lib/machine/iq2000/setjmp.S +++ /dev/null @@ -1,51 +0,0 @@ -/* This is a simple version of setjmp and longjmp for iq2000. */ - - -/* int setjmp (jmp_buf); */ - .globl setjmp - .ent setjmp -setjmp: - sw r16,0(r4) /* rs0 */ - sw r17,4(r4) /* rs1 */ - sw r18,8(r4) /* rs2 */ - sw r19,12(r4) /* rs3 */ - sw r20,16(r4) /* rs4 */ - sw r21,20(r4) /* rs5 */ - sw r22,24(r4) /* rs6 */ - sw r23,28(r4) /* rs7 */ - sw r30,32(r4) /* rs8 */ - - sw r29,36(r4) - sw r31,40(r4) - - move r2,r0 - - j r31 - - .end setjmp - -/* volatile void longjmp (jmp_buf, int); */ - .globl longjmp - .ent longjmp -longjmp: - lw r16,0(r4) /* rs0 */ - lw r17,4(r4) /* rs1 */ - lw r18,8(r4) /* rs2 */ - lw r19,12(r4) /* rs3 */ - lw r20,16(r4) /* rs4 */ - lw r21,20(r4) /* rs5 */ - lw r22,24(r4) /* rs6 */ - lw r23,28(r4) /* rs7 */ - lw r30,32(r4) /* rs8 */ - - lw r29,36(r4) - lw r31,40(r4) - - bne r5,r0,1f - li r5,1 -1: - move r2,r5 - - j r31 - - .end longjmp diff --git a/lib/machine/lm32/Makefile.inc b/lib/machine/lm32/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/lm32/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/lm32/setjmp.S b/lib/machine/lm32/setjmp.S deleted file mode 100644 index 666df5e..0000000 --- a/lib/machine/lm32/setjmp.S +++ /dev/null @@ -1,94 +0,0 @@ -/* - * setjmp/longjmp for LatticeMico32. - * Contributed by Jon Beniston - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - - .section .text - .align 4 - - .globl setjmp - .type setjmp,@function - .globl longjmp - .type longjmp,@function - -/* setjmp: save all callee saves into jmp_buf - r1 - Address of jmp_buf -*/ - -setjmp: - sw (r1+0), r11 - sw (r1+4), r12 - sw (r1+8), r13 - sw (r1+12), r14 - sw (r1+16), r15 - sw (r1+20), r16 - sw (r1+24), r17 - sw (r1+28), r18 - sw (r1+32), r19 - sw (r1+36), r20 - sw (r1+40), r21 - sw (r1+44), r22 - sw (r1+48), r23 - sw (r1+52), r24 - sw (r1+56), r25 - sw (r1+60), gp - sw (r1+64), fp - sw (r1+68), sp - sw (r1+72), ra - mvi r1, 0 - ret - -/* longjmp: restore all callee saves from jmp_buf - r1 - Address of jmb_buf - r2 - Value to return with -*/ - - .global longjmp - .type longjmp,@function - .align 4 - -longjmp: - lw r11, (r1+0) - lw r12, (r1+4) - lw r13, (r1+8) - lw r14, (r1+12) - lw r15, (r1+16) - lw r16, (r1+20) - lw r17, (r1+24) - lw r18, (r1+28) - lw r19, (r1+32) - lw r20, (r1+36) - lw r21, (r1+40) - lw r22, (r1+44) - lw r23, (r1+48) - lw r24, (r1+52) - lw r25, (r1+56) - lw gp, (r1+60) - lw fp, (r1+64) - lw sp, (r1+68) - lw ra, (r1+72) - mv r1, r2 - ret - - diff --git a/lib/machine/m32c/Makefile.inc b/lib/machine/m32c/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/m32c/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/m32c/setjmp.S b/lib/machine/m32c/setjmp.S deleted file mode 100644 index 96cd0f2..0000000 --- a/lib/machine/m32c/setjmp.S +++ /dev/null @@ -1,133 +0,0 @@ -/* - -Copyright (c) 2005 Red Hat Incorporated. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#if defined(__r8c_cpu__) || defined(__m16c_cpu__) -#define A16 1 -#endif - -/* We implement setjmp/longjmp much like the way gcc implements - exceptions - we create new stack frames, then switch to them and - return. Thus, the two setjmp's below each push all the relevent - registers, then copy the whole frame into the buffer (first $sp is - moved, then smovf copies the frame itself), and the two longjmps - restore $sp, copy the frame back into place, and issue the same - return as the setjmp would have used. - - Since the sizes of registers differs between the 16 and 24 bit - models, we provide separate implementations for each rather than - trying to parameterize them. - - Jump buffer sizes: 21 bytes for 16 bit, 34 bytes for 24 bit. -*/ - - .text - -#ifdef A16 /* 16 bit versions */ - - .global _setjmp -_setjmp: - enter #0 - pushm r1,r2,r3,a0,a1,sb,fb - -; At this point, the stack looks like this: -; ... [pc:3] [oldfb:2] [r1:2] [r2:2] [r3:2] [a0:2] [a1:2] [sb:2] [fb:2] */ - - mov.w r1,a1 ; a1 is the destination of smovf - mov.b #0,r1h - stc sp,a0 ; r1h:a0 is the source of smovf - mov.w a0,[a1] - add.w #2,a1 - mov.w #19,r3 ; plus two for sp later - smovf.b - - ; Return 0 to caller. - mov.w #0,r0 - popm r1,r2,r3,a0,a1,sb,fb - exitd - - .global _longjmp -_longjmp: - enter #0 - mov.w r1,a0 ; pointer to jump buf - mov.w r2,r0 ; setjmp's "new" return value - - mov.b #0,r1h ; r1h: a0 is the source, now jmpbuf - mov.w [a0],a1 ; dest is new stack - ldc a1,sp - add.w #2,a0 - mov.w #19,r3 - smovf.b - - ;; now return to our caller with this newly restored frame - popm r1,r2,r3,a0,a1,sb,fb - exitd - -#else /* 24 bit versions */ - - .global _setjmp -_setjmp: - enter #0 - pushm r1,r2,r3,a0,a1,sb,fb - -; At this point, the stack looks like this: -; ... [jbuf:4] [pc:4] [oldfb:4] [r1:2] [r2:2] [r3:2] [a0:4] [a1:4] [sb:4] [fb:4] */ - - mov.l 8[fb],a1 ; a1 is the destination of smovf - stc sp,a0 ; r1h:a0 is the source of smovf - mov.l a0,[a1] - add.l #4,a1 - mov.w #30,r3 ; plus two for sp later - smovf.b - - ; Return 0 to caller. - mov.w #0,r0 - popm r1,r2,r3,a0,a1,sb,fb - exitd - - .global _longjmp -_longjmp: - enter #0 -; ... [rv:2] [jbuf:4] [pc:4] [oldfb:4] - mov.l 8[fb],a0 ; pointer to jump buf - mov.w 12[fb],r0 ; setjmp's "new" return value - - mov.l [a0],a1 ; dest is new stack - ldc a1,sp - add.l #4,a0 - mov.w #30,r3 - smovf.b - - ;; now return to our caller with this newly restored frame - popm r1,r2,r3,a0,a1,sb,fb - exitd -#endif - diff --git a/lib/machine/m32r/Makefile.inc b/lib/machine/m32r/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/m32r/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/m32r/setjmp.S b/lib/machine/m32r/setjmp.S deleted file mode 100644 index e6938ef..0000000 --- a/lib/machine/m32r/setjmp.S +++ /dev/null @@ -1,52 +0,0 @@ -# setjmp/longjmp for m32r. The jmpbuf looks like this: -# -# Register jmpbuf offset -# reserved 0x00 -# R8 0x04 -# R9 0x08 -# R10 0x0c -# R11 0x10 -# R12 0x14 -# R13 (FP) 0x18 -# R14 (LR) 0x1c -# R15 (SP) 0x20 -# reserved 0x24 - - .text - .global setjmp -setjmp: - ;addi r0, #-4 ; commented out as first word is reserved - ;st r1, @+r0 - st r8, @+r0 - st r9, @+r0 - st r10, @+r0 - st r11, @+r0 - st r12, @+r0 - st r13, @+r0 - st r14, @+r0 - st r15, @+r0 - -# Return 0 to caller. - ldi r0, #0 - jmp lr - - .global longjmp -longjmp: - addi r0, #4 ; first word is reserved - ;ld r1, @r0+ - ld r8, @r0+ - ld r9, @r0+ - ld r10, @r0+ - ld r11, @r0+ - ld r12, @r0+ - ld r13, @r0+ - ld r2, @r0+ ; return address - ld r15, @r0+ - -# If caller attempted to return 0, return 1 instead. - - mv r0, r1 - bnez r0, .Lnonzero - ldi r0, #1 -.Lnonzero: - jmp r2 diff --git a/lib/machine/m68hc11/Makefile.inc b/lib/machine/m68hc11/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/m68hc11/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/m68hc11/setjmp.S b/lib/machine/m68hc11/setjmp.S deleted file mode 100644 index 38d1188..0000000 --- a/lib/machine/m68hc11/setjmp.S +++ /dev/null @@ -1,141 +0,0 @@ -/* setjmp/longjmp routines for M68HC11 & M68HC12. - * Copyright (C) 1999, 2000, 2001, 2002 Stephane Carrez (stcarrez@nerim.fr) - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#if __INT__ == 32 -# define val 4 -# define INT32(X) X -#else -# define val 2 -# define INT32(X) -#endif - -#ifdef mc6811 -# define REG(X) *X -#else -# define REG(X) X -#endif - - .sect .text - .global setjmp - .global longjmp - -#ifdef mc6811 -setjmp: - xgdx - tsy - ldd 0,y - std 0,x - sty 2,x - ldd REG(_.frame) - std 4,x - ldd REG(_.d1) - std 6,x - ldd REG(_.d2) - std 8,x - ldd REG(_.d3) - std 10,x - ldd REG(_.d4) - std 12,x - ldd REG(_.d5) - std 14,x - ldd REG(_.d6) - std 16,x - ldd REG(_.d7) - std 18,x - ldd REG(_.d8) - std 20,x -INT32( ldx #0) - clra - clrb - rts -#else -setjmp: - xgdx - movw 0,sp,2,x+ - sts 2,x+ - movw _.frame,2,x+ - movw _.d1,2,x+ - movw _.d2,2,x+ - movw _.d3,2,x+ - movw _.d4,2,x+ - movw _.d5,2,x+ - movw _.d6,2,x+ - movw _.d7,2,x+ - movw _.d8,2,x+ -INT32( ldx #0) - clra - clrb - rts -#endif - -#ifdef mc6811 -longjmp: - xgdx - tsy - ldd val,y - bne do_jump - ldd #1 -do_jump: - xgdy - ldd 4,x - std REG(_.frame) - ldd 6,x - std REG(_.d1) - ldd 8,x - std REG(_.d2) - ldd 10,x - std REG(_.d3) - ldd 12,x - std REG(_.d4) - ldd 14,x - std REG(_.d5) - ldd 16,x - std REG(_.d6) - ldd 18,x - std REG(_.d7) - ldd 20,x - std REG(_.d8) - ldd 0,x - ldx 2,x - txs - std 0,x -INT32( ldx #0) - xgdy - rts -#else - -longjmp: - xgdx - ldy val,sp - bne do_jump - ldy #1 -do_jump: - ldd 4,x+ - movw 2,x+,_.frame - movw 0,x,_.d1 - movw 2,x,_.d2 - movw 4,x,_.d3 - movw 6,x,_.d4 - movw 8,x,_.d5 - movw 10,x,_.d6 - movw 12,x,_.d7 - movw 14,x,_.d8 - ldx -4,x - txs - std 0,x -INT32( ldx #0) - xgdy - rts -#endif - diff --git a/lib/machine/m68k/Makefile.inc b/lib/machine/m68k/Makefile.inc deleted file mode 100644 index 262e4b4..0000000 --- a/lib/machine/m68k/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S %D%/strcpy.c %D%/strlen.c %D%/memcpy.S %D%/memset.S diff --git a/lib/machine/m68k/m68kasm.h b/lib/machine/m68k/m68kasm.h deleted file mode 100644 index a5c610a..0000000 --- a/lib/machine/m68k/m68kasm.h +++ /dev/null @@ -1,40 +0,0 @@ -/* These are predefined by new versions of GNU cpp. */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -#ifndef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ -#endif - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* Use the right prefix for global labels. */ - -#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) - -/* Use the right prefix for registers. */ - -#define REG(x) CONCAT1 (__REGISTER_PREFIX__, x) - -#define d0 REG (d0) -#define d1 REG (d1) -#define d2 REG (d2) -#define d3 REG (d3) -#define d4 REG (d4) -#define d5 REG (d5) -#define d6 REG (d6) -#define d7 REG (d7) -#define a0 REG (a0) -#define a1 REG (a1) -#define a2 REG (a2) -#define a3 REG (a3) -#define a4 REG (a4) -#define a5 REG (a5) -#define a6 REG (a6) -#define fp REG (fp) -#define sp REG (sp) diff --git a/lib/machine/m68k/memcpy.S b/lib/machine/m68k/memcpy.S deleted file mode 100644 index 464da95..0000000 --- a/lib/machine/m68k/memcpy.S +++ /dev/null @@ -1,112 +0,0 @@ -/* a-memcpy.s -- memcpy, optimised for m68k asm - * - * Copyright (c) 2007 mocom software GmbH & Co KG) - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include "m68kasm.h" - -#if defined (__mcoldfire__) || defined (__mc68030__) || defined (__mc68040__) || defined (__mc68060__) -# define MISALIGNED_OK 1 -#else -# define MISALIGNED_OK 0 -#endif - - .text - .align 4 - - .globl SYM(memcpy) - .type SYM(memcpy), @function - -/* memcpy, optimised - * - * strategy: - * - no argument testing (the original memcpy from the GNU lib does - * no checking either) - * - make sure the destination pointer (the write pointer) is long word - * aligned. This is the best you can do, because writing to unaligned - * addresses can be the most costfull thing you could do. - * - Once you have figured that out, we do a little loop unrolling - * to further improve speed. - */ - -SYM(memcpy): - move.l 4(sp),a0 | dest ptr - move.l 8(sp),a1 | src ptr - move.l 12(sp),d1 | len - cmp.l #8,d1 | if fewer than 8 bytes to transfer, - blo .Lresidue | do not optimise - -#if !MISALIGNED_OK - /* Goto .Lresidue if either dest or src is not 4-byte aligned */ - move.l a0,d0 - and.l #3,d0 - bne .Lresidue - move.l a1,d0 - and.l #3,d0 - bne .Lresidue -#else /* MISALIGNED_OK */ - /* align dest */ - move.l a0,d0 | copy of dest - neg.l d0 - and.l #3,d0 | look for the lower two only - beq 2f | is aligned? - sub.l d0,d1 - lsr.l #1,d0 | word align needed? - bcc 1f - move.b (a1)+,(a0)+ -1: - lsr.l #1,d0 | long align needed? - bcc 2f - move.w (a1)+,(a0)+ -2: -#endif /* !MISALIGNED_OK */ - - /* long word transfers */ - move.l d1,d0 - and.l #3,d1 | byte residue - lsr.l #3,d0 - bcc 1f | carry set for 4-byte residue - move.l (a1)+,(a0)+ -1: - lsr.l #1,d0 | number of 16-byte transfers - bcc .Lcopy | carry set for 8-byte residue - bra .Lcopy8 - -1: - move.l (a1)+,(a0)+ - move.l (a1)+,(a0)+ -.Lcopy8: - move.l (a1)+,(a0)+ - move.l (a1)+,(a0)+ -.Lcopy: -#if !defined (__mcoldfire__) - dbra d0,1b - sub.l #0x10000,d0 -#else - subq.l #1,d0 -#endif - bpl 1b - bra .Lresidue - -1: - move.b (a1)+,(a0)+ | move residue bytes - -.Lresidue: -#if !defined (__mcoldfire__) - dbra d1,1b | loop until done -#else - subq.l #1,d1 - bpl 1b -#endif - move.l 4(sp),d0 | return value - rts diff --git a/lib/machine/m68k/memset.S b/lib/machine/m68k/memset.S deleted file mode 100644 index 622cf01..0000000 --- a/lib/machine/m68k/memset.S +++ /dev/null @@ -1,100 +0,0 @@ -/* a-memset.s -- memset, optimised for fido asm - * - * Copyright (c) 2007 mocom software GmbH & Co KG) - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include "m68kasm.h" - - .text - .align 4 - - .globl SYM(memset) - .type SYM(memset), @function - -| memset, optimised -| -| strategy: -| - no argument testing (the original memcpy from the GNU lib does -| no checking either) -| - make sure the destination pointer (the write pointer) is long word -| aligned. This is the best you can do, because writing to unaligned -| addresses can be the most costfull thing one could do. -| - we fill long word wise if possible -| -| VG, 2006 -| -| bugfixes: -| - distribution of byte value improved - in cases someone gives -| non-byte value -| - residue byte transfer was not working -| -| VG, April 2007 -| -SYM(memset): - move.l 4(sp),a0 | dest ptr - move.l 8(sp),d0 | value - move.l 12(sp),d1 | len - cmp.l #16,d1 - blo .Lbset | below, byte fills - | - move.l d2,-(sp) | need a register - move.b d0,d2 | distribute low byte to all byte in word - lsl.l #8,d0 - move.b d2,d0 - move.w d0,d2 - swap d0 | rotate 16 - move.w d2,d0 - | - move.l a0,d2 | copy of src - neg.l d2 | 1 2 3 ==> 3 2 1 - and.l #3,d2 - beq 2f | is aligned - | - sub.l d2,d1 | fix length - lsr.l #1,d2 | word align needed? - bcc 1f - move.b d0,(a0)+ | fill byte -1: - lsr.l #1,d2 | long align needed? - bcc 2f - move.w d0,(a0)+ | fill word -2: - move.l d1,d2 | number of long transfers (at least 3) - lsr.l #2,d2 - subq.l #1,d2 - -1: - move.l d0,(a0)+ | fill long words -.Llset: -#if !defined (__mcoldfire__) - dbra d2,1b | loop until done - sub.l #0x10000,d2 -#else - subq.l #1,d2 -#endif - bpl 1b - and.l #3,d1 | residue byte transfers, fixed - move.l (sp)+,d2 | restore d2 - bra .Lbset - -1: - move.b d0,(a0)+ | fill residue bytes -.Lbset: -#if !defined (__mcoldfire__) - dbra d1,1b | loop until done -#else - subq.l #1,d1 - bpl 1b -#endif - move.l 4(sp),d0 | return value - rts diff --git a/lib/machine/m68k/setjmp.S b/lib/machine/m68k/setjmp.S deleted file mode 100644 index 4b260ef..0000000 --- a/lib/machine/m68k/setjmp.S +++ /dev/null @@ -1,49 +0,0 @@ -#include "m68kasm.h" - -.global SYM (setjmp) -.global SYM (longjmp) - -SYM (setjmp): - moveal sp@(4),a0 - movel sp@(0),a0@(12) - movel sp,a0@(8) - moveml d2-d7/a2-a6,a0@(20) - clrl d0 - rts - -SYM (longjmp): - moveal sp@(4),a0 - movel sp@(8),d0 - bne 1f - movel &1,d0 -1: - moveml a0@(20),d2-d7/a2-a6 - moveal a0@(8),sp - movel a0@(12),sp@ - rts - -#ifdef M68881 -.global SYM (setjmp_68881) -.global SYM (longjmp_68881) - -SYM (setjmp_68881): - moveal sp@(4),a0 - movel sp@(0),a0@(12) - movel sp,a0@(8) - moveml d2-d7/a2-a6,a0@(20) - fmovemx fp2-fp7,a0@(64) - clrl d0 - rts - -SYM (longjmp_68881): - moveal sp@(4),a0 - fmovemx a0@(64),fp2-fp7 - movel sp@(8),d0 - bne 1f - movel &1,d0 -1: - moveml a0@(20),d2-d7/a2-a6 - moveal a0@(8),sp - movel a0@(12),sp@ - rts -#endif diff --git a/lib/machine/m68k/strcpy.c b/lib/machine/m68k/strcpy.c deleted file mode 100644 index ccc9141..0000000 --- a/lib/machine/m68k/strcpy.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * C library strcpy routine - * - * This routine has been optimized for the CPU32+. - * It should run on all 68k machines. - * - * W. Eric Norum - * Saskatchewan Accelerator Laboratory - * University of Saskatchewan - * Saskatoon, Saskatchewan, CANADA - * eric@skatter.usask.ca - */ - -#include - -/* - * Copy bytes using CPU32+ loop mode if possible - */ - -char * -strcpy (char *to, const char *from) -{ - char *pto = to; - unsigned int n = 0xFFFF; - - asm volatile ("1:\n" - "\tmove.b (%0)+,(%1)+\n" -#if defined(__mcpu32__) - "\tdbeq %2,1b\n" -#endif - "\tbne.b 1b\n" : - "=a" (from), "=a" (pto), "=d" (n) : - "0" (from), "1" (pto), "2" (n) : - "cc", "memory"); - return to; -} diff --git a/lib/machine/m68k/strlen.c b/lib/machine/m68k/strlen.c deleted file mode 100644 index 589a697..0000000 --- a/lib/machine/m68k/strlen.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * C library strlen routine - * - * This routine has been optimized for the CPU32+. - * It should run on all 68k machines. - * - * W. Eric Norum - * Saskatchewan Accelerator Laboratory - * University of Saskatchewan - * Saskatoon, Saskatchewan, CANADA - * eric@skatter.usask.ca - */ - -#include - -/* - * Test bytes using CPU32+ loop mode if possible. - */ -size_t -strlen (const char *str) -{ - unsigned int n = ~0; - const char *cp = str; - - asm volatile ("1:\n" - "\ttst.b (%0)+\n" -#if defined(__mcpu32__) - "\tdbeq %1,1b\n" -#endif - "\tbne.b 1b\n" : - "=a" (cp), "=d" (n) : - "0" (cp), "1" (n) : - "cc"); - return (cp - str) - 1; -} diff --git a/lib/machine/m88k/Makefile.inc b/lib/machine/m88k/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/m88k/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/m88k/setjmp.S b/lib/machine/m88k/setjmp.S deleted file mode 100644 index 24d44b6..0000000 --- a/lib/machine/m88k/setjmp.S +++ /dev/null @@ -1,48 +0,0 @@ -/* This is a simple version of setjmp and longjmp. - - Ian Lance Taylor, Cygnus Support, 15 July 1993. */ - -/* We need to save the address of the return instruction, which is in - r1, as well as general register r14 through r25. If we are - compiling for the 88110 with the extended register file, we also - need to save registers x22 through x29. The jmp_buf should be 52 - bytes long in the one case, 84 bytes in the other. */ - -/* int setjmp (jmp_buf); */ - globl _setjmp -_setjmp: - st r1,r2,0 - st.d r14,r2,4 - st.d r16,r2,12 - st.d r18,r2,20 - st.d r20,r2,28 - st.d r22,r2,36 - st.d r24,r2,44 -#ifdef __m88110__ - /* These instructions are just a guess, and gas doesn't - support them anyhow. */ - st.d x22,r2,52 - st.d x24,r2,60 - st.d x26,r2,68 - st.d x28,r2,76 -#endif - jmp r1 - - global _longjmp -_longjmp: - ld r1,r2,0 - ld.d r14,r2,4 - ld.d r16,r2,12 - ld.d r18,r2,20 - ld.d r20,r2,28 - ld.d r22,r2,36 - ld.d r24,r2,44 -#ifdef __m88110__ - /* These instructions are just a guess, and gas doesn't - support them anyhow. */ - ld.d x22,r2,52 - ld.d x24,r2,60 - ld.d x26,r2,68 - ld.d x28,r2,76 -#endif - jmp r1 diff --git a/lib/machine/mep/Makefile.inc b/lib/machine/mep/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/mep/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/mep/setjmp.S b/lib/machine/mep/setjmp.S deleted file mode 100644 index 3b39bcf..0000000 --- a/lib/machine/mep/setjmp.S +++ /dev/null @@ -1,118 +0,0 @@ -# -# Setjmp/longjmp for MeP -# -# DJ Delorie, Red Hat Inc. -# -# 19 32-bit words in the jmpbuf: -# $0 -# $1 -# ... -# $15 -# $pc -# $hi -# $lo -# -# Note that $0 is saved but not restored. It can't be restored -# as it's the return value of setjmp, but we save it in case -# some application wants to see it in the jmp_buf. Ideally, -# we should not need to save anything that is call-clobbered, -# but you never know what the user is going to tell gcc with -f -# options. - - .noregerr - .text - - .globl setjmp - .type setjmp,@function - -setjmp: - - # $1 is the address of the buffer. We return 0 in $0. - - sw $0, ($1) - sw $1, 4($1) - sw $2, 8($1) - sw $3, 12($1) - sw $4, 16($1) - sw $5, 20($1) - sw $6, 24($1) - sw $7, 28($1) - sw $8, 32($1) - sw $9, 36($1) - sw $10, 40($1) - sw $11, 44($1) - sw $12, 48($1) - sw $13, 52($1) - sw $14, 56($1) - sw $15, 60($1) - - ldc $0, $lp - sw $0, 64($1) - ldc $0, $opt - sra $0, 24 - and3 $0, $0, 3 - beqz $0, sj_skip_hilo - ldc $0, $hi - sw $0, 68($1) - ldc $0, $lo - sw $0, 72($1) -sj_skip_hilo: - - mov $0, 0 - ret - - .globl longjmp - .type longjmp,@function - -longjmp: - - # $1 is the address of the buffer. $2 is the value setjmp - # returns. We do not faithfully restore $0 or $lp, because - # the act of calling setjmp clobbered those anyway. - - bnez $2, rv_not_zero - mov $2, 1 -rv_not_zero: - - # We restore $sp first so we can save the return value there, - # otherwise we'd need to have another unrestored register. - lw $15, 60($1) - add3 $sp, $sp, -4 - sw $2, ($sp) - - # Now restore the general registers. - lw $2, 8($1) - lw $3, 12($1) - lw $4, 16($1) - lw $5, 20($1) - lw $6, 24($1) - lw $7, 28($1) - lw $8, 32($1) - lw $9, 36($1) - lw $10, 40($1) - lw $11, 44($1) - lw $12, 48($1) - lw $13, 52($1) - lw $14, 56($1) - - # We restore $pc's value to $lp so that we can just ret later. - lw $0, 64($1) - stc $0, $lp - ldc $0, $opt - sra $0, 24 - and3 $0, $0, 3 - beqz $0, lj_skip_hilo - lw $0, 68($1) - stc $0, $hi - lw $0, 72($1) - stc $0, $lo -lj_skip_hilo: - - # Restore $1 - lw $1, 8($1) - - # Get the return value off the stack, and restore the stack. - lw $0, ($sp) - add3 $sp, $sp, 4 - - ret diff --git a/lib/machine/microblaze/Makefile.inc b/lib/machine/microblaze/Makefile.inc deleted file mode 100644 index 3fc3b9a..0000000 --- a/lib/machine/microblaze/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/strlen.c %D%/strcmp.c %D%/strcpy.c %D%/setjmp.S %D%/longjmp.S diff --git a/lib/machine/microblaze/abort.c b/lib/machine/microblaze/abort.c deleted file mode 100644 index 1af7b36..0000000 --- a/lib/machine/microblaze/abort.c +++ /dev/null @@ -1,60 +0,0 @@ -/* NetWare can not use this implementation of abort. It provides its - own version of abort in clib.nlm. If we can not use clib.nlm, then - we must write abort in sys/netware. */ - -#ifdef ABORT_PROVIDED - -int _dummy_abort = 1; - -#else - -/* -FUNCTION -<>---abnormal termination of a program - -INDEX - abort - -SYNOPSIS - #include - void abort(void); - -DESCRIPTION -Use <> to signal that your program has detected a condition it -cannot deal with. Normally, <> ends your program's execution. - -Before terminating your program, <> raises the exception <> -(using `<>'). If you have used <> to register -an exception handler for this condition, that handler has the -opportunity to retain control, thereby avoiding program termination. - -In this implementation, <> does not perform any stream- or -file-related cleanup (the host environment may do so; if not, you can -arrange for your program to do its own cleanup with a <> -exception handler). - -RETURNS -<> does not return to its caller. - -PORTABILITY -ANSI C requires <>. - -Supporting OS subroutines required: <<_exit>> and optionally, <>. -*/ - -#include -#include -#include - -void -abort (void) -{ -#ifdef ABORT_MESSAGE - write (2, "Abort called\n", sizeof ("Abort called\n")-1); -#endif - - while (1) - { - exit(1); - } -} diff --git a/lib/machine/microblaze/longjmp.S b/lib/machine/microblaze/longjmp.S deleted file mode 100644 index f972bbd..0000000 --- a/lib/machine/microblaze/longjmp.S +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright (c) 2001, 2009 Xilinx, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of Xilinx nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - * - * longjmp - non-local jump to a saved stack context - * args - r5 - jmp_buf - * r6 - val - * - * jmpbuf frame structure - * --------------------- - * - * +-------------+ + 0 - * | r1 | - * +-------------+ + 4 - * | r13 | - * | . | - * | . | - * | . | - * | r31 | - * +-------------+ + 80 - * | . | - * | . | - */ - - -.globl longjmp -.section .text -.align 2 -.ent longjmp -longjmp: - lwi r1, r5, 0 - lwi r13, r5, 4 - lwi r14, r5, 8 - lwi r15, r5, 12 - lwi r16, r5, 16 - lwi r17, r5, 20 - lwi r18, r5, 24 - lwi r19, r5, 28 - lwi r20, r5, 32 - lwi r21, r5, 36 - lwi r22, r5, 40 - lwi r23, r5, 44 - lwi r24, r5, 48 - lwi r25, r5, 52 - lwi r26, r5, 56 - lwi r27, r5, 60 - lwi r28, r5, 64 - lwi r29, r5, 68 - lwi r30, r5, 72 - lwi r31, r5, 76 - - rtsd r15, 8 - or r3, r0, r6 -.end longjmp diff --git a/lib/machine/microblaze/mb_endian.h b/lib/machine/microblaze/mb_endian.h deleted file mode 100644 index fb217ec..0000000 --- a/lib/machine/microblaze/mb_endian.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef _MB_ENDIAN_H -#define _MB_ENDIAN_H - -/* Convenience macros for loading and store 4 bytes in a byte invariant way with - * a singe instruction. Endianess affects this and we rely on MicroBlaze - * load/store reverse instructions to do the trick on little-endian systems. - */ -#ifdef __LITTLE_ENDIAN__ -#define LOAD4BYTES(rD,rA,rB) "\tlwr\t" rD ", " rA ", " rB "\n" -#define STORE4BYTES(rD,rA,rB) "\tswr\t" rD ", " rA ", " rB "\n" -#else -#define LOAD4BYTES(rD,rA,rB) "\tlw\t" rD ", " rA ", " rB "\n" -#define STORE4BYTES(rD,rA,rB) "\tsw\t" rD ", " rA ", " rB "\n" -#endif -#endif diff --git a/lib/machine/microblaze/setjmp.S b/lib/machine/microblaze/setjmp.S deleted file mode 100644 index cdd87c7..0000000 --- a/lib/machine/microblaze/setjmp.S +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright (c) 2001, 2009 Xilinx, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of Xilinx nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - * - * setjmp - save stack context for non-local goto - * args - r5 - jmp_buf - * - * jmpbuf frame structure - * --------------------- - * - * +-------------+ + 0 - * | r1 | - * +-------------+ + 4 - * | r13 | - * | . | - * | . | - * | . | - * | r31 | - * +-------------+ + 80 - * | . | - * | . | - */ - - -.globl setjmp -.section .text -.align 2 -.ent setjmp -setjmp: - swi r1, r5, 0 - swi r13, r5, 4 - swi r14, r5, 8 - swi r15, r5, 12 - swi r16, r5, 16 - swi r17, r5, 20 - swi r18, r5, 24 - swi r19, r5, 28 - swi r20, r5, 32 - swi r21, r5, 36 - swi r22, r5, 40 - swi r23, r5, 44 - swi r24, r5, 48 - swi r25, r5, 52 - swi r26, r5, 56 - swi r27, r5, 60 - swi r28, r5, 64 - swi r29, r5, 68 - swi r30, r5, 72 - swi r31, r5, 76 - - rtsd r15, 8 - or r3, r0, r0 -.end setjmp diff --git a/lib/machine/microblaze/strcmp.c b/lib/machine/microblaze/strcmp.c deleted file mode 100644 index 434195e..0000000 --- a/lib/machine/microblaze/strcmp.c +++ /dev/null @@ -1,191 +0,0 @@ -/* Copyright (c) 2009 Xilinx, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of Xilinx nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -FUNCTION - <>---character string compare - -INDEX - strcmp - -SYNOPSIS - #include - int strcmp(const char *<[a]>, const char *<[b]>); - -DESCRIPTION - <> compares the string at <[a]> to - the string at <[b]>. - -RETURNS - If <<*<[a]>>> sorts lexicographically after <<*<[b]>>>, - <> returns a number greater than zero. If the two - strings match, <> returns zero. If <<*<[a]>>> - sorts lexicographically before <<*<[b]>>>, <> returns a - number less than zero. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strcmp ansi pure -*/ - -#include -#include - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X, Y) \ - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) - -/* DETECTNULL returns nonzero if (long)X contains a NULL byte. */ -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -int -strcmp (const char *s1, - const char *s2) -{ - -#ifndef HAVE_HW_PCMP - -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - while (*s1 != '\0' && *s1 == *s2) - { - s1++; - s2++; - } - - return (*(unsigned char *) s1) - (*(unsigned char *) s2); -#else - unsigned long *a1; - unsigned long *a2; - - /* If s1 or s2 are unaligned, then compare bytes. */ - if (!UNALIGNED (s1, s2)) - { - /* If s1 and s2 are word-aligned, compare them a word at a time. */ - a1 = (unsigned long*)s1; - a2 = (unsigned long*)s2; - while (*a1 == *a2) - { - /* To get here, *a1 == *a2, thus if we find a null in *a1, - then the strings must be equal, so return zero. */ - if (DETECTNULL (*a1)) - return 0; - - a1++; - a2++; - } - - /* A difference was detected in last few bytes of s1, so search bytewise */ - s1 = (char*)a1; - s2 = (char*)a2; - } - - while (*s1 != '\0' && *s1 == *s2) - { - s1++; - s2++; - } - return (*(unsigned char *) s1) - (*(unsigned char *) s2); -#endif /* not PREFER_SIZE_OVER_SPEED */ - -#else - -#include "mb_endian.h" - - asm volatile (" \n\ - or r9, r0, r0 /* Index register */\n\ -check_alignment: \n\ - andi r3, r5, 3 \n\ - andi r4, r6, 3 \n\ - bnei r3, try_align_args \n\ - bnei r4, regular_strcmp /* At this point we don't have a choice */ \n\ -cmp_loop: \n" - LOAD4BYTES("r3", "r5", "r9") - LOAD4BYTES("r4", "r6", "r9") -" \n\ - pcmpbf r7, r3, r0 /* See if there is Null byte */ \n\ - bnei r7, end_cmp_loop /* IF yes (r7 > 0) use byte compares in end_cmp_loop */ \n\ - cmpu r7, r4, r3 /* ELSE compare whole word */ \n\ - bnei r7, end_cmp \n\ - brid cmp_loop \n\ - addik r9, r9, 4 /* delay slot */ \n\ -end_cmp_loop: \n\ - lbu r3, r5, r9 /* byte compare loop */ \n\ - lbu r4, r6, r9 \n\ - cmpu r7, r4, r3 /* Compare bytes */ \n\ - bnei r7, end_cmp_early \n\ - bneid r3, end_cmp_loop /* If reached null on one string, terminate */ \n\ - addik r9, r9, 1 /* delay slot */ \n\ -end_cmp_early: \n\ - rtsd r15, 8 \n\ - or r3, r0, r7 \n\ -try_align_args: \n\ - xor r7, r4, r3 \n\ - bnei r7, regular_strcmp /* cannot align args */ \n\ - rsubik r10, r3, 4 /* Number of initial bytes to align */ \n\ -align_loop: \n\ - lbu r3, r5, r9 \n\ - lbu r4, r6, r9 \n\ - cmpu r7, r4, r3 \n\ - bnei r7, end_cmp \n\ - beqi r3, end_cmp \n\ - addik r10, r10, -1 \n\ - beqid r10, cmp_loop \n\ - addik r9, r9, 1 \n\ - bri align_loop \n\ -regular_strcmp: \n\ - lbu r3, r5, r9 \n\ - lbu r4, r6, r9 \n\ - cmpu r7, r4, r3 \n\ - bnei r7, end_cmp \n\ - beqi r3, end_cmp \n\ - brid regular_strcmp \n\ - addik r9, r9, 1 \n\ -end_cmp: \n\ - rtsd r15, 8 \n\ - or r3, r0, r7 /* Return strcmp result */"); - -#endif /* ! HAVE_HW_PCMP */ -} - diff --git a/lib/machine/microblaze/strcpy.c b/lib/machine/microblaze/strcpy.c deleted file mode 100644 index 62072fa..0000000 --- a/lib/machine/microblaze/strcpy.c +++ /dev/null @@ -1,180 +0,0 @@ -/* Copyright (c) 2009 Xilinx, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of Xilinx nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -FUNCTION - <>---copy string - -INDEX - strcpy - -SYNOPSIS - #include - char *strcpy(char *restrict <[dst]>, const char *restrict <[src]>); - -DESCRIPTION - <> copies the string pointed to by <[src]> - (including the terminating null character) to the array - pointed to by <[dst]>. - -RETURNS - This function returns the initial value of <[dst]>. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strcpy ansi pure -*/ - -#include -#include - -/*SUPPRESS 560*/ -/*SUPPRESS 530*/ - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X, Y) \ - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) - -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -char* -strcpy (char *__restrict dst0, - const char *__restrict src0) -{ - -#ifndef HAVE_HW_PCMP - -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - char *s = dst0; - - while (*dst0++ = *src0++) - ; - - return s; -#else - char *dst = dst0; - const char *src = src0; - long *aligned_dst; - const long *aligned_src; - - /* If SRC or DEST is unaligned, then copy bytes. */ - if (!UNALIGNED (src, dst)) - { - aligned_dst = (long*)dst; - aligned_src = (long*)src; - - /* SRC and DEST are both "long int" aligned, try to do "long int" - sized copies. */ - while (!DETECTNULL(*aligned_src)) - { - *aligned_dst++ = *aligned_src++; - } - - dst = (char*)aligned_dst; - src = (char*)aligned_src; - } - - while (*dst++ = *src++) - ; - return dst0; -#endif /* not PREFER_SIZE_OVER_SPEED */ - -#else - -#include "mb_endian.h" - - asm volatile (" \n\ - or r9, r0, r0 /* Index register */ \n\ -check_alignment: \n\ - andi r3, r5, 3 \n\ - andi r4, r6, 3 \n\ - bnei r3, try_align_args \n\ - bnei r4, regular_strcpy /* At this point we dont have a choice */ \n\ -cpy_loop: \n" - LOAD4BYTES("r3", "r6", "r9") -" \n\ - pcmpbf r4, r0, r3 \n\ - bnei r4, cpy_bytes /* If r4 != 0, then null present within string */\n" - STORE4BYTES("r3", "r5", "r9") -" \n\ - brid cpy_loop \n\ - addik r9, r9, 4 \n\ -cpy_bytes: \n\ - lbu r3, r6, r9 \n\ - sb r3, r5, r9 \n\ - addik r4, r4, -1 \n\ - bneid r4, cpy_bytes \n\ - addik r9, r9, 1 /* delay slot */\n\ -cpy_null: \n\ - rtsd r15, 8 \n\ - or r3, r0, r5 /* Return strcpy result */\n\ -try_align_args: \n\ - xor r7, r4, r3 \n\ - bnei r7, regular_strcpy /* cannot align args */\n\ - rsubik r10, r3, 4 /* Number of initial bytes to align */\n\ -align_loop: \n\ - lbu r3, r6, r9 \n\ - sb r3, r5, r9 \n\ - beqid r3, end_cpy /* Break if we have seen null character */\n\ - addik r10, r10, -1 \n\ - bneid r10, align_loop \n\ - addik r9, r9, 1 \n\ - bri cpy_loop \n\ -regular_strcpy: \n\ - lbu r3, r6, r9 \n\ - sb r3, r5, r9 \n\ - bneid r3, regular_strcpy \n\ - addik r9, r9, 1 \n\ -end_cpy: \n\ - rtsd r15, 8 \n\ - or r3, r0, r5 /* Return strcpy result */"); -#endif /* ! HAVE_HW_PCMP */ -} - - - - - diff --git a/lib/machine/microblaze/strlen.c b/lib/machine/microblaze/strlen.c deleted file mode 100644 index acb4464..0000000 --- a/lib/machine/microblaze/strlen.c +++ /dev/null @@ -1,150 +0,0 @@ -/* Copyright (c) 2009 Xilinx, Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of Xilinx nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -FUNCTION - <>---character string length - -INDEX - strlen - -SYNOPSIS - #include - size_t strlen(const char *<[str]>); - -DESCRIPTION - The <> function works out the length of the string - starting at <<*<[str]>>> by counting chararacters until it - reaches a <> character. - -RETURNS - <> returns the character count. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strlen ansi pure -*/ - -#include <_ansi.h> -#include -#include - -#define LBLOCKSIZE (sizeof (long)) -#define UNALIGNED(X) ((long)X & (LBLOCKSIZE - 1)) - -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -size_t -strlen (const char *str) -{ - -#ifndef HAVE_HW_PCMP - -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - const char *start = str; - - while (*str) - str++; - - return str - start; -#else - const char *start = str; - unsigned long *aligned_addr; - - if (!UNALIGNED (str)) - { - /* If the string is word-aligned, we can check for the presence of - a null in each word-sized block. */ - aligned_addr = (unsigned long*)str; - while (!DETECTNULL (*aligned_addr)) - aligned_addr++; - - /* Once a null is detected, we check each byte in that block for a - precise position of the null. */ - str = (char*)aligned_addr; - } - - while (*str) - str++; - return str - start; -#endif /* not PREFER_SIZE_OVER_SPEED */ - -#else - -#include "mb_endian.h" - - asm volatile (" \n\ - or r9, r0, r0 /* Index register */ \n\ -check_alignment: \n\ - andi r3, r5, 3 \n\ - bnei r3, align_arg \n\ -len_loop: \n" - LOAD4BYTES("r3", "r5", "r9") -" \n\ - pcmpbf r4, r3, r0 \n\ - bnei r4, end_len \n\ - brid len_loop \n\ - addik r9, r9, 4 \n\ -end_len: \n\ - lbu r3, r5, r9 \n\ - beqi r3, done_len \n\ - brid end_len \n\ - addik r9, r9, 1 \n\ -done_len: \n\ - rtsd r15, 8 \n\ - or r3, r0, r9 /* Return len */ \n\ -align_arg: \n\ - rsubik r10, r3, 4 \n\ -align_loop: \n\ - lbu r3, r5, r9 \n\ - beqid r3, done_len \n\ - addik r10, r10, -1 \n\ - bneid r10, align_loop \n\ - addik r9, r9, 1 \n\ - bri len_loop"); - -#endif /* ! HAVE_HW_PCMP */ -} diff --git a/lib/machine/mips/Makefile.inc b/lib/machine/mips/Makefile.inc deleted file mode 100644 index 22f0c6e..0000000 --- a/lib/machine/mips/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S %D%/strlen.c %D%/strcmp.S %D%/strncpy.c %D%/memset.S %D%/memcpy.S diff --git a/lib/machine/mips/machine/asm.h b/lib/machine/mips/machine/asm.h deleted file mode 100644 index dcd290e..0000000 --- a/lib/machine/mips/machine/asm.h +++ /dev/null @@ -1,361 +0,0 @@ -/* - * Copyright (c) 1996-2007 MIPS Technologies, Inc. - * Copyright (C) 2009 CodeSourcery, LLC. - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright - * notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with - * the distribution. - * * Neither the name of MIPS Technologies Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * asm.h: various macros to help assembly language writers - */ - -#ifndef _MIPS_ASM_H_ -#define _MIPS_ASM_H_ - -/* ABI specific stack frame layout and manipulation. */ -#if _MIPS_SIM==_ABIO32 && ! __mips64 -/* Standard O32 */ -#define SZREG 4 /* saved register size */ -#define REG_S sw /* store saved register */ -#define REG_L lw /* load saved register */ -#define SZARG 4 /* argument register size */ -#define NARGSAVE 4 /* arg register space on caller stack */ -#define ALSZ 7 /* stack alignment - 1 */ -#define ALMASK (~7) /* stack alignment mask */ -#define LOG2_STACK_ALGN 3 /* log2(8) */ -#define SZPTR 4 /* pointer size */ -#define LOG2_SZPTR 2 /* log2(4) */ -#define PTR_S sw /* store pointer */ -#define PTR_L lw /* load pointer */ -#define PTR_SUBU subu /* decrement pointer */ -#define PTR_ADDU addu /* increment pointer */ -#define PTR .word /* pointer type pseudo */ -#elif _MIPS_SIM==_ABIO32 && __mips64 -/* Algorithmics O32+64-bit */ -#define SZREG 8 /* saved register size */ -#define REG_S sd /* store saved register */ -#define REG_L ld /* load saved register */ -#define SZARG 4 /* argument register size */ -#define NARGSAVE 4 /* arg register space on caller stack */ -#define ALSZ 7 /* stack alignment - 1 */ -#define ALMASK (~7) /* stack alignment mask */ -#define LOG2_STACK_ALGN 3 /* log2(8) */ -#define SZPTR 4 /* pointer size */ -#define LOG2_SZPTR 2 /* log2(4) */ -#define PTR_S sw /* store pointer */ -#define PTR_L lw /* load pointer */ -#define PTR_SUBU subu /* decrement pointer */ -#define PTR_ADDU addu /* increment pointer */ -#define PTR .word /* pointer type pseudo */ -#elif _MIPS_SIM==_ABIO64 -/* Cygnus O64 */ -#define SZREG 8 /* saved register size */ -#define REG_S sd /* store saved register */ -#define REG_L ld /* load saved register */ -#define SZARG 8 /* argument register size */ -#define NARGSAVE 4 /* arg register space on caller stack */ -#define ALSZ 7 /* stack alignment - 1 */ -#define ALMASK (~7) /* stack alignment mask */ -#define LOG2_STACK_ALGN 3 /* log2(8) */ -#define SZPTR 4 /* pointer size */ -#define LOG2_SZPTR 2 /* log2(4) */ -#define PTR_S sw /* store pointer */ -#define PTR_L lw /* load pointer */ -#define PTR_SUBU subu /* decrement pointer */ -#define PTR_ADDU addu /* increment pointer */ -#define PTR .word /* pointer type pseudo */ -#elif _MIPS_SIM==_ABIN32 -/* Standard N32 */ -#define SZREG 8 /* saved register size */ -#define REG_S sd /* store saved register */ -#define REG_L ld /* load saved register */ -#define SZARG 8 /* argument register size */ -#define NARGSAVE 0 /* arg register space on caller stack */ -#define ALSZ 15 /* stack alignment - 1 */ -#define ALMASK (~15) /* stack alignment mask */ -#define LOG2_STACK_ALGN 4 /* log2(16) */ -#define SZPTR 4 /* pointer size */ -#define LOG2_SZPTR 2 /* log2(4) */ -#define PTR_S sw /* store pointer */ -#define PTR_L lw /* load pointer */ -#define PTR_SUBU subu /* decrement pointer (SGI uses sub) */ -#define PTR_ADDU addu /* increment pointer (SGI uses add) */ -#define PTR .word /* pointer type pseudo */ -#elif _MIPS_SIM==_ABI64 -/* Standard N64 */ -#define SZREG 8 /* saved register size */ -#define REG_S sd /* store saved register */ -#define REG_L ld /* load saved register */ -#define SZARG 8 /* argument register size */ -#define NARGSAVE 0 /* arg register space on caller stack */ -#define ALSZ 15 /* stack alignment - 1 */ -#define ALMASK (~15) /* stack alignment mask */ -#define LOG2_STACK_ALGN 4 /* log2(16) */ -#define SZPTR 8 /* pointer size */ -#define LOG2_SZPTR 3 /* log2(8) */ -#define PTR_S sd /* store pointer */ -#define PTR_L ld /* load pointer */ -#define PTR_SUBU dsubu /* decrement pointer */ -#define PTR_ADDU daddu /* increment pointer */ -#define PTR .dword /* pointer type pseudo */ -#else -#error Unknown ABI -#endif - -/* Concatenate two names. */ -#ifdef __STDC__ -# define _ASMCONCAT(A, B) A ## B -#else -# define _ASMCONCAT(A, B) A/**/B -#endif - -/* Name of reset code section. */ -#ifndef _RESET_SECTION -# define _RESET_SECTION .section .reset, "ax", @progbits -#endif - -#ifndef _RESET_SECTION_NAMED -/* No function section support for now, since binutils fails to cope with - external branches. */ -# define _RESET_SECTION_NAMED(name) .pushsection .reset, "ax", @progbits -#endif - -/* Name of boot code section. */ -#ifndef _BOOT_SECTION -# define _BOOT_SECTION .section .boot, "ax", @progbits -#endif - -#ifndef _BOOT_SECTION_NAMED -/* No function section support for now, since binutils fails to cope with - external branches. */ -# define _BOOT_SECTION_NAMED(name) .pushsection .boot, "ax", @progbits -#endif - -/* Name of standard code section. */ -#ifndef _NORMAL_SECTION_UNNAMED -# define _NORMAL_SECTION_UNNAMED .section .text, "ax", @progbits -#endif - -#ifndef _NORMAL_SECTION_NAMED -# ifdef _FUNCTION_SECTIONS_ -# define _NORMAL_SECTION_NAMED(name) .pushsection .text ##.name, "ax", @progbits -# else -# define _NORMAL_SECTION_NAMED(name) .pushsection .text, "ax", @progbits -# endif -#endif - -/* Default code section. */ -#ifndef _TEXT_SECTION_NAMED -# if defined(_RESETCODE) -# define _TEXT_SECTION_NAMED _RESET_SECTION_NAMED -# elif defined(_BOOTCODE) -# define _TEXT_SECTION_NAMED _BOOT_SECTION_NAMED -# else -# define _TEXT_SECTION_NAMED _NORMAL_SECTION_NAMED -# endif -#endif - -#ifndef _TEXT_SECTION -# if defined(_RESETCODE) -# define _TEXT_SECTION _RESET_SECTION -# elif defined(_BOOTCODE) -# define _TEXT_SECTION _BOOT_SECTION -# else -# define _TEXT_SECTION _NORMAL_SECTION_UNNAMED -# endif - _TEXT_SECTION -#endif - -/* - * Leaf functions declarations. - */ - -/* Global leaf function. */ -#define LEAF(name) \ - _TEXT_SECTION_NAMED(name); \ - .globl name; \ - .balign 4; \ - .ent name; \ -name: - -/* Static/Local leaf function. */ -#define SLEAF(name) \ - _TEXT_SECTION_NAMED(name); \ - .balign 4; \ - .ent name; \ -name: - -/* Weak leaf function. */ -#define WLEAF(name) \ - _TEXT_SECTION_NAMED(name); \ - .weakext name; \ - .balign 4; \ - .ent name; \ -name: - -/* Weak alias leaf function. */ -#define ALEAF(name,alias) \ - _TEXT_SECTION_NAMED(name); \ - .weakext alias,name; \ - .balign 4; \ - .ent name; \ -name: - -/* - * Alternative function entrypoints. - */ - -/* Global alternative entrypoint. */ -#define AENT(name) \ - .globl name; \ - .balign 4; \ - .aent name; \ -name: -#define XLEAF(name) AENT(name) - -/* Local/static alternative entrypoint. */ -#define SAENT(name) \ - .balign 4; \ - .aent name; \ -name: -#define SXLEAF(name) SAENT(name) - - -/* - * Leaf functions declarations. - */ - -/* Global nested function. */ -#define NESTED(name, framesz, rareg) \ - _TEXT_SECTION_NAMED(name); \ - .globl name; \ - .balign 4; \ - .ent name; \ - .frame sp, framesz, rareg; \ -name: - -/* Static/Local nested function. */ -#define SNESTED(name, framesz, rareg) \ - _TEXT_SECTION_NAMED(name); \ - .balign 4; \ - .ent name; \ - .frame sp, framesz, rareg; \ -name: - -/* Weak nested function. */ -#define WNESTED(name, framesz, rareg) \ - _TEXT_SECTION_NAMED(name); \ - .weakext name; \ - .balign 4; \ - .ent name; \ - .frame sp, framesz, rareg; \ -name: - -/* Weak alias nested function. */ -#define ANESTED(name, alias, framesz, rareg) \ - _TEXT_SECTION_NAMED(name); \ - .weakext alias, name; \ - .balign 4; \ - .ent name; \ - .frame sp, framesz, rareg; \ -name: - -/* - * Function termination - */ -#define END(name) \ - .size name,.-name; \ - .end name; \ - .popsection - -#define SEND(name) END(name) -#define WEND(name) END(name) -#define AEND(name,alias) END(name) - -/* - * Global data declaration. - */ -#define EXPORT(name) \ - .globl name; \ - .type name,@object; \ -name: - -/* - * Global data declaration with size. - */ -#define EXPORTS(name,sz) \ - .globl name; \ - .type name,@object; \ - .size name,sz; \ -name: - -/* - * Weak data declaration with size. - */ -#define WEXPORT(name,sz) \ - .weakext name; \ - .type name,@object; \ - .size name,sz; \ -name: - -/* - * Global data reference with size. - */ -#define IMPORT(name, size) \ - .extern name,size - -/* - * Global zeroed data. - */ -#define BSS(name,size) \ - .type name,@object; \ - .comm name,size - -/* - * Local zeroed data. - */ -#define LBSS(name,size) \ - .lcomm name,size - -/* - * Insert call to _mcount if profiling. - */ -#ifdef __PROFILING__ -#define _MCOUNT \ - .set push; \ - .set noat; \ - move $1,$31; \ - jal _mcount; \ - .set pop -#else -#define _MCOUNT -#endif - -#endif diff --git a/lib/machine/mips/machine/fenv-fp.h b/lib/machine/mips/machine/fenv-fp.h deleted file mode 100644 index 5f446e3..0000000 --- a/lib/machine/mips/machine/fenv-fp.h +++ /dev/null @@ -1,207 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2004-2005 David Schultz - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -__fenv_static inline int -feclearexcept(int excepts) -{ - fexcept_t fcsr; - - excepts &= FE_ALL_EXCEPT; - __cfc1(fcsr); - fcsr &= ~(excepts | (excepts << _FCSR_CAUSE_SHIFT)); - __ctc1(fcsr); - - return (0); -} - -__fenv_static inline int -fegetexceptflag(fexcept_t *flagp, int excepts) -{ - fexcept_t fcsr; - - excepts &= FE_ALL_EXCEPT; - __cfc1(fcsr); - *flagp = fcsr & excepts; - - return (0); -} - -__fenv_static inline int -fesetexceptflag(const fexcept_t *flagp, int excepts) -{ - fexcept_t fcsr; - - excepts &= FE_ALL_EXCEPT; - __cfc1(fcsr); - fcsr &= ~excepts; - fcsr |= *flagp & excepts; - __ctc1(fcsr); - - return (0); -} - -__fenv_static inline int -feraiseexcept(int excepts) -{ - fexcept_t fcsr; - - excepts &= FE_ALL_EXCEPT; - __cfc1(fcsr); - fcsr |= excepts | (excepts << _FCSR_CAUSE_SHIFT); - __ctc1(fcsr); - - return (0); -} - -__fenv_static inline int -fetestexcept(int excepts) -{ - fexcept_t fcsr; - - excepts &= FE_ALL_EXCEPT; - __cfc1(fcsr); - - return (fcsr & excepts); -} - -__fenv_static inline int -fegetround(void) -{ - fexcept_t fcsr; - - __cfc1(fcsr); - - return (fcsr & _ROUND_MASK); -} - -__fenv_static inline int -fesetround(int rounding_mode) -{ - fexcept_t fcsr; - - if (rounding_mode & ~_ROUND_MASK) - return (-1); - - __cfc1(fcsr); - fcsr &= ~_ROUND_MASK; - fcsr |= rounding_mode; - __ctc1(fcsr); - - return (0); -} - -__fenv_static inline int -fegetenv(fenv_t *envp) -{ - - __cfc1(*envp); - - return (0); -} - -__fenv_static inline int -feholdexcept(fenv_t *envp) -{ - fexcept_t fcsr; - - __cfc1(fcsr); - *envp = fcsr; - fcsr &= ~(FE_ALL_EXCEPT | _ENABLE_MASK); - __ctc1(fcsr); - - return (0); -} - -__fenv_static inline int -fesetenv(const fenv_t *envp) -{ - - __ctc1(*envp); - - return (0); -} - -__fenv_static inline int -feupdateenv(const fenv_t *envp) -{ - fexcept_t fcsr; - - __cfc1(fcsr); - fesetenv(envp); - feraiseexcept(fcsr); - - return (0); -} -#if __BSD_VISIBLE - -/* We currently provide no external definitions of the functions below. */ - -#ifdef __mips_soft_float -int feenableexcept(int __mask); -int fedisableexcept(int __mask); -int fegetexcept(void); -#else -static inline int -feenableexcept(int __mask) -{ - fenv_t __old_fcsr, __new_fcsr; - - __cfc1(__old_fcsr); - __new_fcsr = __old_fcsr | (__mask & FE_ALL_EXCEPT) << _ENABLE_SHIFT; - __ctc1(__new_fcsr); - - return ((__old_fcsr >> _ENABLE_SHIFT) & FE_ALL_EXCEPT); -} - -static inline int -fedisableexcept(int __mask) -{ - fenv_t __old_fcsr, __new_fcsr; - - __cfc1(__old_fcsr); - __new_fcsr = __old_fcsr & ~((__mask & FE_ALL_EXCEPT) << _ENABLE_SHIFT); - __ctc1(__new_fcsr); - - return ((__old_fcsr >> _ENABLE_SHIFT) & FE_ALL_EXCEPT); -} - -static inline int -fegetexcept(void) -{ - fexcept_t fcsr; - - __cfc1(fcsr); - - return ((fcsr & _ENABLE_MASK) >> _ENABLE_SHIFT); -} - -#endif /* !__mips_soft_float */ - -#endif /* __BSD_VISIBLE */ \ No newline at end of file diff --git a/lib/machine/mips/machine/fenv-softfloat.h b/lib/machine/mips/machine/fenv-softfloat.h deleted file mode 100644 index 43340e5..0000000 --- a/lib/machine/mips/machine/fenv-softfloat.h +++ /dev/null @@ -1,169 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2004-2011 David Schultz - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -/* - * This file implements the functionality of on platforms that - * lack an FPU and use softfloat in libc for floating point. To use it, - * you must write an that provides the following: - * - * - a typedef for fenv_t, which may be an integer or struct type - * - a typedef for fexcept_t (XXX This file assumes fexcept_t is a - * simple integer type containing the exception mask.) - * - definitions of FE_* constants for the five exceptions and four - * rounding modes in IEEE 754, as described in fenv(3) - * - a definition, and the corresponding external symbol, for FE_DFL_ENV - * - a macro __set_env(env, flags, mask, rnd), which sets the given fenv_t - * from the exception flags, mask, and rounding mode - * - macros __env_flags(env), __env_mask(env), and __env_round(env), which - * extract fields from an fenv_t - * - a definition of __fenv_static - * - * If the architecture supports an optional FPU, it's recommended that you - * define fenv_t and fexcept_t to match the hardware ABI. Otherwise, it - * doesn't matter how you define them. - */ -#include - -__fenv_static inline int -feclearexcept(int excepts) -{ - - return (0); -} - -__fenv_static inline int -fegetexceptflag(fexcept_t *flagp, int excepts) -{ - - return (0); - -} - -__fenv_static inline int -fesetexceptflag(const fexcept_t *flagp, int excepts) -{ - - return (0); -} - -__fenv_static inline int -feraiseexcept(int excepts) -{ - - return( excepts != 0 ); - -} - -__fenv_static inline int -fetestexcept(int excepts) -{ - - return (0); -} - -__fenv_static inline int -fegetround(void) -{ - -#ifdef FE_TONEAREST - return FE_TONEAREST; -#else - return 0; -#endif - -} - -__fenv_static inline int -fesetround(int rounding_mode) -{ - - return (0); -} - -__fenv_static inline int -fegetenv(fenv_t *envp) -{ - - return (0); -} - -__fenv_static inline int -feholdexcept(fenv_t *envp) -{ - - return (0); -} - -__fenv_static inline int -fesetenv(const fenv_t *envp) -{ - - - return (0); -} - -__fenv_static inline int -feupdateenv(const fenv_t *envp) -{ - -#if defined FE_NOMASK_ENV && FE_ALL_EXCEPT != 0 - if (envp == FE_NOMASK_ENV) - return 1; -#endif - - return (0); -} - -#if __BSD_VISIBLE - -/* We currently provide no external definitions of the functions below. */ - -__fenv_static inline int -feenableexcept(int __mask) -{ - - return (0); -} - -__fenv_static inline int -fedisableexcept(int __mask) -{ - - return (0); -} - -__fenv_static inline int -fegetexcept(void) -{ - - return (0); -} - -#endif /* __BSD_VISIBLE */ diff --git a/lib/machine/mips/machine/regdef.h b/lib/machine/mips/machine/regdef.h deleted file mode 100644 index 0164164..0000000 --- a/lib/machine/mips/machine/regdef.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (c) 1996-2007 MIPS Technologies, Inc. - * Copyright (C) 2009 CodeSourcery, LLC. - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright - * notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with - * the distribution. - * * Neither the name of MIPS Technologies Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * regdef.h : MIPS Rx000 symbolic register names for assembler - */ - -#ifndef _MIPS_REGDEF_H_ -#define _MIPS_REGDEF_H_ - -#define zero $0 - -#define AT $1 - -#define v0 $2 -#define v1 $3 - -#define a0 $4 -#define a1 $5 -#define a2 $6 -#define a3 $7 - -#if _MIPS_SIM==_ABIN32 || _MIPS_SIM==_ABI64 || _MIPS_SIM==_ABIEABI -#define a4 $8 -#define a5 $9 -#define a6 $10 -#define a7 $11 -#define t0 $12 -#define t1 $13 -#define t2 $14 -#define t3 $15 -#define ta0 $8 /* alias for $a4 */ -#define ta1 $9 /* alias for $a5 */ -#define ta2 $10 /* alias for $a6 */ -#define ta3 $11 /* alias for $a7 */ -#else -#define t0 $8 -#define t1 $9 -#define t2 $10 -#define t3 $11 -#define t4 $12 -#define t5 $13 -#define t6 $14 -#define t7 $15 -#define ta0 $12 /* alias for $t4 */ -#define ta1 $13 /* alias for $t5 */ -#define ta2 $14 /* alias for $t6 */ -#define ta3 $15 /* alias for $t7 */ -#endif - -#define s0 $16 -#define s1 $17 -#define s2 $18 -#define s3 $19 -#define s4 $20 -#define s5 $21 -#define s6 $22 -#define s7 $23 -#define s8 $30 /* == fp */ - -#define t8 $24 -#define t9 $25 -#define k0 $26 -#define k1 $27 - -#define gp $28 - -#define sp $29 -#define fp $30 -#define ra $31 - -#endif diff --git a/lib/machine/mips/memcpy.S b/lib/machine/mips/memcpy.S deleted file mode 100644 index 471343f..0000000 --- a/lib/machine/mips/memcpy.S +++ /dev/null @@ -1,873 +0,0 @@ -/* - * Copyright (c) 2012-2015 - * MIPS Technologies, Inc., California. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the MIPS Technologies, Inc., nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE MIPS TECHNOLOGIES, INC. ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE MIPS TECHNOLOGIES, INC. BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifdef ANDROID_CHANGES -# include "machine/asm.h" -# include "machine/regdef.h" -# define USE_MEMMOVE_FOR_OVERLAP -# define PREFETCH_LOAD_HINT PREFETCH_HINT_LOAD_STREAMED -# define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE -#elif _LIBC -# include "machine/asm.h" -# include "machine/regdef.h" -# define PREFETCH_LOAD_HINT PREFETCH_HINT_LOAD_STREAMED -# define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE -#else -# include -# include -#endif - -/* Check to see if the MIPS architecture we are compiling for supports - * prefetching. - */ - -#if (__mips == 4) || (__mips == 5) || (__mips == 32) || (__mips == 64) -# ifndef DISABLE_PREFETCH -# define USE_PREFETCH -# endif -#endif - -#if defined(_MIPS_SIM) && ((_MIPS_SIM == _ABI64) || (_MIPS_SIM == _ABIN32)) -# ifndef DISABLE_DOUBLE -# define USE_DOUBLE -# endif -#endif - - -#if __mips_isa_rev > 5 -# if (PREFETCH_STORE_HINT == PREFETCH_HINT_PREPAREFORSTORE) -# undef PREFETCH_STORE_HINT -# define PREFETCH_STORE_HINT PREFETCH_HINT_STORE_STREAMED -# endif -# define R6_CODE -#endif - -/* Some asm.h files do not have the L macro definition. */ -#ifndef L -# if _MIPS_SIM == _ABIO32 -# define L(label) $L ## label -# else -# define L(label) .L ## label -# endif -#endif - -/* Some asm.h files do not have the PTR_ADDIU macro definition. */ -#ifndef PTR_ADDIU -# ifdef USE_DOUBLE -# define PTR_ADDIU daddiu -# else -# define PTR_ADDIU addiu -# endif -#endif - -/* Some asm.h files do not have the PTR_SRA macro definition. */ -#ifndef PTR_SRA -# ifdef USE_DOUBLE -# define PTR_SRA dsra -# else -# define PTR_SRA sra -# endif -#endif - -/* New R6 instructions that may not be in asm.h. */ -#ifndef PTR_LSA -# if _MIPS_SIM == _ABI64 -# define PTR_LSA dlsa -# else -# define PTR_LSA lsa -# endif -#endif - -/* - * Using PREFETCH_HINT_LOAD_STREAMED instead of PREFETCH_LOAD on load - * prefetches appears to offer a slight preformance advantage. - * - * Using PREFETCH_HINT_PREPAREFORSTORE instead of PREFETCH_STORE - * or PREFETCH_STORE_STREAMED offers a large performance advantage - * but PREPAREFORSTORE has some special restrictions to consider. - * - * Prefetch with the 'prepare for store' hint does not copy a memory - * location into the cache, it just allocates a cache line and zeros - * it out. This means that if you do not write to the entire cache - * line before writing it out to memory some data will get zero'ed out - * when the cache line is written back to memory and data will be lost. - * - * Also if you are using this memcpy to copy overlapping buffers it may - * not behave correctly when using the 'prepare for store' hint. If you - * use the 'prepare for store' prefetch on a memory area that is in the - * memcpy source (as well as the memcpy destination), then you will get - * some data zero'ed out before you have a chance to read it and data will - * be lost. - * - * If you are going to use this memcpy routine with the 'prepare for store' - * prefetch you may want to set USE_MEMMOVE_FOR_OVERLAP in order to avoid - * the problem of running memcpy on overlapping buffers. - * - * There are ifdef'ed sections of this memcpy to make sure that it does not - * do prefetches on cache lines that are not going to be completely written. - * This code is only needed and only used when PREFETCH_STORE_HINT is set to - * PREFETCH_HINT_PREPAREFORSTORE. This code assumes that cache lines are - * 32 bytes and if the cache line is larger it will not work correctly. - */ - -#ifdef USE_PREFETCH -# define PREFETCH_HINT_LOAD 0 -# define PREFETCH_HINT_STORE 1 -# define PREFETCH_HINT_LOAD_STREAMED 4 -# define PREFETCH_HINT_STORE_STREAMED 5 -# define PREFETCH_HINT_LOAD_RETAINED 6 -# define PREFETCH_HINT_STORE_RETAINED 7 -# define PREFETCH_HINT_WRITEBACK_INVAL 25 -# define PREFETCH_HINT_PREPAREFORSTORE 30 - -/* - * If we have not picked out what hints to use at this point use the - * standard load and store prefetch hints. - */ -# ifndef PREFETCH_STORE_HINT -# define PREFETCH_STORE_HINT PREFETCH_HINT_STORE -# endif -# ifndef PREFETCH_LOAD_HINT -# define PREFETCH_LOAD_HINT PREFETCH_HINT_LOAD -# endif - -/* - * We double everything when USE_DOUBLE is true so we do 2 prefetches to - * get 64 bytes in that case. The assumption is that each individual - * prefetch brings in 32 bytes. - */ - -# ifdef USE_DOUBLE -# define PREFETCH_CHUNK 64 -# define PREFETCH_FOR_LOAD(chunk, reg) \ - pref PREFETCH_LOAD_HINT, (chunk)*64(reg); \ - pref PREFETCH_LOAD_HINT, ((chunk)*64)+32(reg) -# define PREFETCH_FOR_STORE(chunk, reg) \ - pref PREFETCH_STORE_HINT, (chunk)*64(reg); \ - pref PREFETCH_STORE_HINT, ((chunk)*64)+32(reg) -# else -# define PREFETCH_CHUNK 32 -# define PREFETCH_FOR_LOAD(chunk, reg) \ - pref PREFETCH_LOAD_HINT, (chunk)*32(reg) -# define PREFETCH_FOR_STORE(chunk, reg) \ - pref PREFETCH_STORE_HINT, (chunk)*32(reg) -# endif -/* MAX_PREFETCH_SIZE is the maximum size of a prefetch, it must not be less - * than PREFETCH_CHUNK, the assumed size of each prefetch. If the real size - * of a prefetch is greater than MAX_PREFETCH_SIZE and the PREPAREFORSTORE - * hint is used, the code will not work correctly. If PREPAREFORSTORE is not - * used then MAX_PREFETCH_SIZE does not matter. */ -# define MAX_PREFETCH_SIZE 128 -/* PREFETCH_LIMIT is set based on the fact that we never use an offset greater - * than 5 on a STORE prefetch and that a single prefetch can never be larger - * than MAX_PREFETCH_SIZE. We add the extra 32 when USE_DOUBLE is set because - * we actually do two prefetches in that case, one 32 bytes after the other. */ -# ifdef USE_DOUBLE -# define PREFETCH_LIMIT (5 * PREFETCH_CHUNK) + 32 + MAX_PREFETCH_SIZE -# else -# define PREFETCH_LIMIT (5 * PREFETCH_CHUNK) + MAX_PREFETCH_SIZE -# endif -# if (PREFETCH_STORE_HINT == PREFETCH_HINT_PREPAREFORSTORE) \ - && ((PREFETCH_CHUNK * 4) < MAX_PREFETCH_SIZE) -/* We cannot handle this because the initial prefetches may fetch bytes that - * are before the buffer being copied. We start copies with an offset - * of 4 so avoid this situation when using PREPAREFORSTORE. */ -#error "PREFETCH_CHUNK is too large and/or MAX_PREFETCH_SIZE is too small." -# endif -#else /* USE_PREFETCH not defined */ -# define PREFETCH_FOR_LOAD(offset, reg) -# define PREFETCH_FOR_STORE(offset, reg) -#endif - -/* Allow the routine to be named something else if desired. */ -#ifndef MEMCPY_NAME -# define MEMCPY_NAME memcpy -#endif - -/* We use these 32/64 bit registers as temporaries to do the copying. */ -#define REG0 t0 -#define REG1 t1 -#define REG2 t2 -#define REG3 t3 -#if defined(_MIPS_SIM) && (_MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIO64) -# define REG4 t4 -# define REG5 t5 -# define REG6 t6 -# define REG7 t7 -#else -# define REG4 ta0 -# define REG5 ta1 -# define REG6 ta2 -# define REG7 ta3 -#endif - -/* We load/store 64 bits at a time when USE_DOUBLE is true. - * The C_ prefix stands for CHUNK and is used to avoid macro name - * conflicts with system header files. */ - -#ifdef USE_DOUBLE -# define C_ST sd -# define C_LD ld -# if __MIPSEB -# define C_LDHI ldl /* high part is left in big-endian */ -# define C_STHI sdl /* high part is left in big-endian */ -# define C_LDLO ldr /* low part is right in big-endian */ -# define C_STLO sdr /* low part is right in big-endian */ -# else -# define C_LDHI ldr /* high part is right in little-endian */ -# define C_STHI sdr /* high part is right in little-endian */ -# define C_LDLO ldl /* low part is left in little-endian */ -# define C_STLO sdl /* low part is left in little-endian */ -# endif -# define C_ALIGN dalign /* r6 align instruction */ -#else -# define C_ST sw -# define C_LD lw -# if __MIPSEB -# define C_LDHI lwl /* high part is left in big-endian */ -# define C_STHI swl /* high part is left in big-endian */ -# define C_LDLO lwr /* low part is right in big-endian */ -# define C_STLO swr /* low part is right in big-endian */ -# else -# define C_LDHI lwr /* high part is right in little-endian */ -# define C_STHI swr /* high part is right in little-endian */ -# define C_LDLO lwl /* low part is left in little-endian */ -# define C_STLO swl /* low part is left in little-endian */ -# endif -# define C_ALIGN align /* r6 align instruction */ -#endif - -/* Bookkeeping values for 32 vs. 64 bit mode. */ -#ifdef USE_DOUBLE -# define NSIZE 8 -# define NSIZEMASK 0x3f -# define NSIZEDMASK 0x7f -#else -# define NSIZE 4 -# define NSIZEMASK 0x1f -# define NSIZEDMASK 0x3f -#endif -#define UNIT(unit) ((unit)*NSIZE) -#define UNITM1(unit) (((unit)*NSIZE)-1) - -#ifdef ANDROID_CHANGES -LEAF(MEMCPY_NAME, 0) -#else -LEAF(MEMCPY_NAME) -#endif - .set nomips16 - .set noreorder -/* - * Below we handle the case where memcpy is called with overlapping src and dst. - * Although memcpy is not required to handle this case, some parts of Android - * like Skia rely on such usage. We call memmove to handle such cases. - */ -#ifdef USE_MEMMOVE_FOR_OVERLAP - PTR_SUBU t0,a0,a1 - PTR_SRA t2,t0,31 - xor t1,t0,t2 - PTR_SUBU t0,t1,t2 - sltu t2,t0,a2 - beq t2,zero,L(memcpy) - la t9,memmove - jr t9 - nop -L(memcpy): -#endif -/* - * If the size is less than 2*NSIZE (8 or 16), go to L(lastb). Regardless of - * size, copy dst pointer to v0 for the return value. - */ - slti t2,a2,(2 * NSIZE) - bne t2,zero,L(lasts) -#if defined(RETURN_FIRST_PREFETCH) || defined(RETURN_LAST_PREFETCH) - move v0,zero -#else - move v0,a0 -#endif - -#ifndef R6_CODE - -/* - * If src and dst have different alignments, go to L(unaligned), if they - * have the same alignment (but are not actually aligned) do a partial - * load/store to make them aligned. If they are both already aligned - * we can start copying at L(aligned). - */ - xor t8,a1,a0 - andi t8,t8,(NSIZE-1) /* t8 is a0/a1 word-displacement */ - bne t8,zero,L(unaligned) - PTR_SUBU a3, zero, a0 - - andi a3,a3,(NSIZE-1) /* copy a3 bytes to align a0/a1 */ - beq a3,zero,L(aligned) /* if a3=0, it is already aligned */ - PTR_SUBU a2,a2,a3 /* a2 is the remining bytes count */ - - C_LDHI t8,0(a1) - PTR_ADDU a1,a1,a3 - C_STHI t8,0(a0) - PTR_ADDU a0,a0,a3 - -#else /* R6_CODE */ - -/* - * Align the destination and hope that the source gets aligned too. If it - * doesn't we jump to L(r6_unaligned*) to do unaligned copies using the r6 - * align instruction. - */ - andi t8,a0,7 - lapc t9,L(atable) - PTR_LSA t9,t8,t9,2 - jrc t9 -L(atable): - bc L(lb0) - bc L(lb7) - bc L(lb6) - bc L(lb5) - bc L(lb4) - bc L(lb3) - bc L(lb2) - bc L(lb1) -L(lb7): - lb a3, 6(a1) - sb a3, 6(a0) -L(lb6): - lb a3, 5(a1) - sb a3, 5(a0) -L(lb5): - lb a3, 4(a1) - sb a3, 4(a0) -L(lb4): - lb a3, 3(a1) - sb a3, 3(a0) -L(lb3): - lb a3, 2(a1) - sb a3, 2(a0) -L(lb2): - lb a3, 1(a1) - sb a3, 1(a0) -L(lb1): - lb a3, 0(a1) - sb a3, 0(a0) - - li t9,8 - subu t8,t9,t8 - PTR_SUBU a2,a2,t8 - PTR_ADDU a0,a0,t8 - PTR_ADDU a1,a1,t8 -L(lb0): - - andi t8,a1,(NSIZE-1) - lapc t9,L(jtable) - PTR_LSA t9,t8,t9,2 - jrc t9 -L(jtable): - bc L(aligned) - bc L(r6_unaligned1) - bc L(r6_unaligned2) - bc L(r6_unaligned3) -# ifdef USE_DOUBLE - bc L(r6_unaligned4) - bc L(r6_unaligned5) - bc L(r6_unaligned6) - bc L(r6_unaligned7) -# endif -#endif /* R6_CODE */ - -L(aligned): - -/* - * Now dst/src are both aligned to (word or double word) aligned addresses - * Set a2 to count how many bytes we have to copy after all the 64/128 byte - * chunks are copied and a3 to the dst pointer after all the 64/128 byte - * chunks have been copied. We will loop, incrementing a0 and a1 until a0 - * equals a3. - */ - - andi t8,a2,NSIZEDMASK /* any whole 64-byte/128-byte chunks? */ - beq a2,t8,L(chkw) /* if a2==t8, no 64-byte/128-byte chunks */ - PTR_SUBU a3,a2,t8 /* subtract from a2 the reminder */ - PTR_ADDU a3,a0,a3 /* Now a3 is the final dst after loop */ - -/* When in the loop we may prefetch with the 'prepare to store' hint, - * in this case the a0+x should not be past the "t0-32" address. This - * means: for x=128 the last "safe" a0 address is "t0-160". Alternatively, - * for x=64 the last "safe" a0 address is "t0-96" In the current version we - * will use "prefetch hint,128(a0)", so "t0-160" is the limit. - */ -#if defined(USE_PREFETCH) && (PREFETCH_STORE_HINT == PREFETCH_HINT_PREPAREFORSTORE) - PTR_ADDU t0,a0,a2 /* t0 is the "past the end" address */ - PTR_SUBU t9,t0,PREFETCH_LIMIT /* t9 is the "last safe pref" address */ -#endif - PREFETCH_FOR_LOAD (0, a1) - PREFETCH_FOR_LOAD (1, a1) - PREFETCH_FOR_LOAD (2, a1) - PREFETCH_FOR_LOAD (3, a1) -#if defined(USE_PREFETCH) && (PREFETCH_STORE_HINT != PREFETCH_HINT_PREPAREFORSTORE) - PREFETCH_FOR_STORE (1, a0) - PREFETCH_FOR_STORE (2, a0) - PREFETCH_FOR_STORE (3, a0) -#endif -#if defined(RETURN_FIRST_PREFETCH) && defined(USE_PREFETCH) -# if PREFETCH_STORE_HINT == PREFETCH_HINT_PREPAREFORSTORE - sltu v1,t9,a0 - bgtz v1,L(skip_set) - nop - PTR_ADDIU v0,a0,(PREFETCH_CHUNK*4) -L(skip_set): -# else - PTR_ADDIU v0,a0,(PREFETCH_CHUNK*1) -# endif -#endif -#if defined(RETURN_LAST_PREFETCH) && defined(USE_PREFETCH) \ - && (PREFETCH_STORE_HINT != PREFETCH_HINT_PREPAREFORSTORE) - PTR_ADDIU v0,a0,(PREFETCH_CHUNK*3) -# ifdef USE_DOUBLE - PTR_ADDIU v0,v0,32 -# endif -#endif -L(loop16w): - C_LD t0,UNIT(0)(a1) -#if defined(USE_PREFETCH) && (PREFETCH_STORE_HINT == PREFETCH_HINT_PREPAREFORSTORE) - sltu v1,t9,a0 /* If a0 > t9 don't use next prefetch */ - bgtz v1,L(skip_pref) -#endif - C_LD t1,UNIT(1)(a1) -#ifndef R6_CODE - PREFETCH_FOR_STORE (4, a0) - PREFETCH_FOR_STORE (5, a0) -#else - PREFETCH_FOR_STORE (2, a0) -#endif -#if defined(RETURN_LAST_PREFETCH) && defined(USE_PREFETCH) - PTR_ADDIU v0,a0,(PREFETCH_CHUNK*5) -# ifdef USE_DOUBLE - PTR_ADDIU v0,v0,32 -# endif -#endif -L(skip_pref): - C_LD REG2,UNIT(2)(a1) - C_LD REG3,UNIT(3)(a1) - C_LD REG4,UNIT(4)(a1) - C_LD REG5,UNIT(5)(a1) - C_LD REG6,UNIT(6)(a1) - C_LD REG7,UNIT(7)(a1) -#ifndef R6_CODE - PREFETCH_FOR_LOAD (4, a1) -#else - PREFETCH_FOR_LOAD (3, a1) -#endif - C_ST t0,UNIT(0)(a0) - C_ST t1,UNIT(1)(a0) - C_ST REG2,UNIT(2)(a0) - C_ST REG3,UNIT(3)(a0) - C_ST REG4,UNIT(4)(a0) - C_ST REG5,UNIT(5)(a0) - C_ST REG6,UNIT(6)(a0) - C_ST REG7,UNIT(7)(a0) - - C_LD t0,UNIT(8)(a1) - C_LD t1,UNIT(9)(a1) - C_LD REG2,UNIT(10)(a1) - C_LD REG3,UNIT(11)(a1) - C_LD REG4,UNIT(12)(a1) - C_LD REG5,UNIT(13)(a1) - C_LD REG6,UNIT(14)(a1) - C_LD REG7,UNIT(15)(a1) -#ifndef R6_CODE - PREFETCH_FOR_LOAD (5, a1) -#endif - C_ST t0,UNIT(8)(a0) - C_ST t1,UNIT(9)(a0) - C_ST REG2,UNIT(10)(a0) - C_ST REG3,UNIT(11)(a0) - C_ST REG4,UNIT(12)(a0) - C_ST REG5,UNIT(13)(a0) - C_ST REG6,UNIT(14)(a0) - C_ST REG7,UNIT(15)(a0) - PTR_ADDIU a0,a0,UNIT(16) /* adding 64/128 to dest */ - bne a0,a3,L(loop16w) - PTR_ADDIU a1,a1,UNIT(16) /* adding 64/128 to src */ - move a2,t8 - -/* Here we have src and dest word-aligned but less than 64-bytes or - * 128 bytes to go. Check for a 32(64) byte chunk and copy if if there - * is one. Otherwise jump down to L(chk1w) to handle the tail end of - * the copy. - */ - -L(chkw): - PREFETCH_FOR_LOAD (0, a1) - andi t8,a2,NSIZEMASK /* Is there a 32-byte/64-byte chunk. */ - /* The t8 is the reminder count past 32-bytes */ - beq a2,t8,L(chk1w) /* When a2=t8, no 32-byte chunk */ - nop - C_LD t0,UNIT(0)(a1) - C_LD t1,UNIT(1)(a1) - C_LD REG2,UNIT(2)(a1) - C_LD REG3,UNIT(3)(a1) - C_LD REG4,UNIT(4)(a1) - C_LD REG5,UNIT(5)(a1) - C_LD REG6,UNIT(6)(a1) - C_LD REG7,UNIT(7)(a1) - PTR_ADDIU a1,a1,UNIT(8) - C_ST t0,UNIT(0)(a0) - C_ST t1,UNIT(1)(a0) - C_ST REG2,UNIT(2)(a0) - C_ST REG3,UNIT(3)(a0) - C_ST REG4,UNIT(4)(a0) - C_ST REG5,UNIT(5)(a0) - C_ST REG6,UNIT(6)(a0) - C_ST REG7,UNIT(7)(a0) - PTR_ADDIU a0,a0,UNIT(8) - -/* - * Here we have less than 32(64) bytes to copy. Set up for a loop to - * copy one word (or double word) at a time. Set a2 to count how many - * bytes we have to copy after all the word (or double word) chunks are - * copied and a3 to the dst pointer after all the (d)word chunks have - * been copied. We will loop, incrementing a0 and a1 until a0 equals a3. - */ -L(chk1w): - andi a2,t8,(NSIZE-1) /* a2 is the reminder past one (d)word chunks */ - beq a2,t8,L(lastw) - PTR_SUBU a3,t8,a2 /* a3 is count of bytes in one (d)word chunks */ - PTR_ADDU a3,a0,a3 /* a3 is the dst address after loop */ - -/* copying in words (4-byte or 8-byte chunks) */ -L(wordCopy_loop): - C_LD REG3,UNIT(0)(a1) - PTR_ADDIU a0,a0,UNIT(1) - PTR_ADDIU a1,a1,UNIT(1) - bne a0,a3,L(wordCopy_loop) - C_ST REG3,UNIT(-1)(a0) - -/* If we have been copying double words, see if we can copy a single word - before doing byte copies. We can have, at most, one word to copy. */ - -L(lastw): -#ifdef USE_DOUBLE - andi t8,a2,3 /* a2 is the remainder past 4 byte chunks. */ - beq t8,a2,L(lastb) - move a2,t8 - lw REG3,0(a1) - sw REG3,0(a0) - PTR_ADDIU a0,a0,4 - PTR_ADDIU a1,a1,4 -#endif - -/* Copy the last 8 (or 16) bytes */ -L(lastb): - blez a2,L(leave) - PTR_ADDU a3,a0,a2 /* a3 is the last dst address */ -L(lastbloop): - lb v1,0(a1) - PTR_ADDIU a0,a0,1 - PTR_ADDIU a1,a1,1 - bne a0,a3,L(lastbloop) - sb v1,-1(a0) -L(leave): - j ra - nop - -/* We jump here with a memcpy of less than 8 or 16 bytes, depending on - whether or not USE_DOUBLE is defined. Instead of just doing byte - copies, check the alignment and size and use lw/sw if possible. - Otherwise, do byte copies. */ - -L(lasts): - andi t8,a2,3 - beq t8,a2,L(lastb) - - andi t9,a0,3 - bne t9,zero,L(lastb) - andi t9,a1,3 - bne t9,zero,L(lastb) - - PTR_SUBU a3,a2,t8 - PTR_ADDU a3,a0,a3 - -L(wcopy_loop): - lw REG3,0(a1) - PTR_ADDIU a0,a0,4 - PTR_ADDIU a1,a1,4 - bne a0,a3,L(wcopy_loop) - sw REG3,-4(a0) - - b L(lastb) - move a2,t8 - -#ifndef R6_CODE -/* - * UNALIGNED case, got here with a3 = "negu a0" - * This code is nearly identical to the aligned code above - * but only the destination (not the source) gets aligned - * so we need to do partial loads of the source followed - * by normal stores to the destination (once we have aligned - * the destination). - */ - -L(unaligned): - andi a3,a3,(NSIZE-1) /* copy a3 bytes to align a0/a1 */ - beqz a3,L(ua_chk16w) /* if a3=0, it is already aligned */ - PTR_SUBU a2,a2,a3 /* a2 is the remining bytes count */ - - C_LDHI v1,UNIT(0)(a1) - C_LDLO v1,UNITM1(1)(a1) - PTR_ADDU a1,a1,a3 - C_STHI v1,UNIT(0)(a0) - PTR_ADDU a0,a0,a3 - -/* - * Now the destination (but not the source) is aligned - * Set a2 to count how many bytes we have to copy after all the 64/128 byte - * chunks are copied and a3 to the dst pointer after all the 64/128 byte - * chunks have been copied. We will loop, incrementing a0 and a1 until a0 - * equals a3. - */ - -L(ua_chk16w): - andi t8,a2,NSIZEDMASK /* any whole 64-byte/128-byte chunks? */ - beq a2,t8,L(ua_chkw) /* if a2==t8, no 64-byte/128-byte chunks */ - PTR_SUBU a3,a2,t8 /* subtract from a2 the reminder */ - PTR_ADDU a3,a0,a3 /* Now a3 is the final dst after loop */ - -# if defined(USE_PREFETCH) && (PREFETCH_STORE_HINT == PREFETCH_HINT_PREPAREFORSTORE) - PTR_ADDU t0,a0,a2 /* t0 is the "past the end" address */ - PTR_SUBU t9,t0,PREFETCH_LIMIT /* t9 is the "last safe pref" address */ -# endif - PREFETCH_FOR_LOAD (0, a1) - PREFETCH_FOR_LOAD (1, a1) - PREFETCH_FOR_LOAD (2, a1) -# if defined(USE_PREFETCH) && (PREFETCH_STORE_HINT != PREFETCH_HINT_PREPAREFORSTORE) - PREFETCH_FOR_STORE (1, a0) - PREFETCH_FOR_STORE (2, a0) - PREFETCH_FOR_STORE (3, a0) -# endif -# if defined(RETURN_FIRST_PREFETCH) && defined(USE_PREFETCH) -# if (PREFETCH_STORE_HINT == PREFETCH_HINT_PREPAREFORSTORE) - sltu v1,t9,a0 - bgtz v1,L(ua_skip_set) - nop - PTR_ADDIU v0,a0,(PREFETCH_CHUNK*4) -L(ua_skip_set): -# else - PTR_ADDIU v0,a0,(PREFETCH_CHUNK*1) -# endif -# endif -L(ua_loop16w): - PREFETCH_FOR_LOAD (3, a1) - C_LDHI t0,UNIT(0)(a1) - C_LDHI t1,UNIT(1)(a1) - C_LDHI REG2,UNIT(2)(a1) -# if defined(USE_PREFETCH) && (PREFETCH_STORE_HINT == PREFETCH_HINT_PREPAREFORSTORE) - sltu v1,t9,a0 - bgtz v1,L(ua_skip_pref) -# endif - C_LDHI REG3,UNIT(3)(a1) - PREFETCH_FOR_STORE (4, a0) - PREFETCH_FOR_STORE (5, a0) -L(ua_skip_pref): - C_LDHI REG4,UNIT(4)(a1) - C_LDHI REG5,UNIT(5)(a1) - C_LDHI REG6,UNIT(6)(a1) - C_LDHI REG7,UNIT(7)(a1) - C_LDLO t0,UNITM1(1)(a1) - C_LDLO t1,UNITM1(2)(a1) - C_LDLO REG2,UNITM1(3)(a1) - C_LDLO REG3,UNITM1(4)(a1) - C_LDLO REG4,UNITM1(5)(a1) - C_LDLO REG5,UNITM1(6)(a1) - C_LDLO REG6,UNITM1(7)(a1) - C_LDLO REG7,UNITM1(8)(a1) - PREFETCH_FOR_LOAD (4, a1) - C_ST t0,UNIT(0)(a0) - C_ST t1,UNIT(1)(a0) - C_ST REG2,UNIT(2)(a0) - C_ST REG3,UNIT(3)(a0) - C_ST REG4,UNIT(4)(a0) - C_ST REG5,UNIT(5)(a0) - C_ST REG6,UNIT(6)(a0) - C_ST REG7,UNIT(7)(a0) - C_LDHI t0,UNIT(8)(a1) - C_LDHI t1,UNIT(9)(a1) - C_LDHI REG2,UNIT(10)(a1) - C_LDHI REG3,UNIT(11)(a1) - C_LDHI REG4,UNIT(12)(a1) - C_LDHI REG5,UNIT(13)(a1) - C_LDHI REG6,UNIT(14)(a1) - C_LDHI REG7,UNIT(15)(a1) - C_LDLO t0,UNITM1(9)(a1) - C_LDLO t1,UNITM1(10)(a1) - C_LDLO REG2,UNITM1(11)(a1) - C_LDLO REG3,UNITM1(12)(a1) - C_LDLO REG4,UNITM1(13)(a1) - C_LDLO REG5,UNITM1(14)(a1) - C_LDLO REG6,UNITM1(15)(a1) - C_LDLO REG7,UNITM1(16)(a1) - PREFETCH_FOR_LOAD (5, a1) - C_ST t0,UNIT(8)(a0) - C_ST t1,UNIT(9)(a0) - C_ST REG2,UNIT(10)(a0) - C_ST REG3,UNIT(11)(a0) - C_ST REG4,UNIT(12)(a0) - C_ST REG5,UNIT(13)(a0) - C_ST REG6,UNIT(14)(a0) - C_ST REG7,UNIT(15)(a0) - PTR_ADDIU a0,a0,UNIT(16) /* adding 64/128 to dest */ - bne a0,a3,L(ua_loop16w) - PTR_ADDIU a1,a1,UNIT(16) /* adding 64/128 to src */ - move a2,t8 - -/* Here we have src and dest word-aligned but less than 64-bytes or - * 128 bytes to go. Check for a 32(64) byte chunk and copy if if there - * is one. Otherwise jump down to L(ua_chk1w) to handle the tail end of - * the copy. */ - -L(ua_chkw): - PREFETCH_FOR_LOAD (0, a1) - andi t8,a2,NSIZEMASK /* Is there a 32-byte/64-byte chunk. */ - /* t8 is the reminder count past 32-bytes */ - beq a2,t8,L(ua_chk1w) /* When a2=t8, no 32-byte chunk */ - nop - C_LDHI t0,UNIT(0)(a1) - C_LDHI t1,UNIT(1)(a1) - C_LDHI REG2,UNIT(2)(a1) - C_LDHI REG3,UNIT(3)(a1) - C_LDHI REG4,UNIT(4)(a1) - C_LDHI REG5,UNIT(5)(a1) - C_LDHI REG6,UNIT(6)(a1) - C_LDHI REG7,UNIT(7)(a1) - C_LDLO t0,UNITM1(1)(a1) - C_LDLO t1,UNITM1(2)(a1) - C_LDLO REG2,UNITM1(3)(a1) - C_LDLO REG3,UNITM1(4)(a1) - C_LDLO REG4,UNITM1(5)(a1) - C_LDLO REG5,UNITM1(6)(a1) - C_LDLO REG6,UNITM1(7)(a1) - C_LDLO REG7,UNITM1(8)(a1) - PTR_ADDIU a1,a1,UNIT(8) - C_ST t0,UNIT(0)(a0) - C_ST t1,UNIT(1)(a0) - C_ST REG2,UNIT(2)(a0) - C_ST REG3,UNIT(3)(a0) - C_ST REG4,UNIT(4)(a0) - C_ST REG5,UNIT(5)(a0) - C_ST REG6,UNIT(6)(a0) - C_ST REG7,UNIT(7)(a0) - PTR_ADDIU a0,a0,UNIT(8) -/* - * Here we have less than 32(64) bytes to copy. Set up for a loop to - * copy one word (or double word) at a time. - */ -L(ua_chk1w): - andi a2,t8,(NSIZE-1) /* a2 is the reminder past one (d)word chunks */ - beq a2,t8,L(ua_smallCopy) - PTR_SUBU a3,t8,a2 /* a3 is count of bytes in one (d)word chunks */ - PTR_ADDU a3,a0,a3 /* a3 is the dst address after loop */ - -/* copying in words (4-byte or 8-byte chunks) */ -L(ua_wordCopy_loop): - C_LDHI v1,UNIT(0)(a1) - C_LDLO v1,UNITM1(1)(a1) - PTR_ADDIU a0,a0,UNIT(1) - PTR_ADDIU a1,a1,UNIT(1) - bne a0,a3,L(ua_wordCopy_loop) - C_ST v1,UNIT(-1)(a0) - -/* Copy the last 8 (or 16) bytes */ -L(ua_smallCopy): - beqz a2,L(leave) - PTR_ADDU a3,a0,a2 /* a3 is the last dst address */ -L(ua_smallCopy_loop): - lb v1,0(a1) - PTR_ADDIU a0,a0,1 - PTR_ADDIU a1,a1,1 - bne a0,a3,L(ua_smallCopy_loop) - sb v1,-1(a0) - - j ra - nop - -#else /* R6_CODE */ - -# if __MIPSEB -# define SWAP_REGS(X,Y) X, Y -# define ALIGN_OFFSET(N) (N) -# else -# define SWAP_REGS(X,Y) Y, X -# define ALIGN_OFFSET(N) (NSIZE-N) -# endif -# define R6_UNALIGNED_WORD_COPY(BYTEOFFSET) \ - andi REG7, a2, (NSIZE-1);/* REG7 is # of bytes to by bytes. */ \ - beq REG7, a2, L(lastb); /* Check for bytes to copy by word */ \ - PTR_SUBU a3, a2, REG7; /* a3 is number of bytes to be copied in */ \ - /* (d)word chunks. */ \ - move a2, REG7; /* a2 is # of bytes to copy byte by byte */ \ - /* after word loop is finished. */ \ - PTR_ADDU REG6, a0, a3; /* REG6 is the dst address after loop. */ \ - PTR_SUBU REG2, a1, t8; /* REG2 is the aligned src address. */ \ - PTR_ADDU a1, a1, a3; /* a1 is addr of source after word loop. */ \ - C_LD t0, UNIT(0)(REG2); /* Load first part of source. */ \ -L(r6_ua_wordcopy##BYTEOFFSET): \ - C_LD t1, UNIT(1)(REG2); /* Load second part of source. */ \ - C_ALIGN REG3, SWAP_REGS(t1,t0), ALIGN_OFFSET(BYTEOFFSET); \ - PTR_ADDIU a0, a0, UNIT(1); /* Increment destination pointer. */ \ - PTR_ADDIU REG2, REG2, UNIT(1); /* Increment aligned source pointer.*/ \ - move t0, t1; /* Move second part of source to first. */ \ - bne a0, REG6,L(r6_ua_wordcopy##BYTEOFFSET); \ - C_ST REG3, UNIT(-1)(a0); \ - j L(lastb); \ - nop - - /* We are generating R6 code, the destination is 4 byte aligned and - the source is not 4 byte aligned. t8 is 1, 2, or 3 depending on the - alignment of the source. */ - -L(r6_unaligned1): - R6_UNALIGNED_WORD_COPY(1) -L(r6_unaligned2): - R6_UNALIGNED_WORD_COPY(2) -L(r6_unaligned3): - R6_UNALIGNED_WORD_COPY(3) -# ifdef USE_DOUBLE -L(r6_unaligned4): - R6_UNALIGNED_WORD_COPY(4) -L(r6_unaligned5): - R6_UNALIGNED_WORD_COPY(5) -L(r6_unaligned6): - R6_UNALIGNED_WORD_COPY(6) -L(r6_unaligned7): - R6_UNALIGNED_WORD_COPY(7) -# endif -#endif /* R6_CODE */ - - .set at - .set reorder -END(MEMCPY_NAME) diff --git a/lib/machine/mips/memset.S b/lib/machine/mips/memset.S deleted file mode 100644 index 972c57b..0000000 --- a/lib/machine/mips/memset.S +++ /dev/null @@ -1,427 +0,0 @@ -/* - * Copyright (c) 2013 - * MIPS Technologies, Inc., California. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the MIPS Technologies, Inc., nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE MIPS TECHNOLOGIES, INC. ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE MIPS TECHNOLOGIES, INC. BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifdef ANDROID_CHANGES -# include "machine/asm.h" -# include "machine/regdef.h" -# define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE -#elif _LIBC -# include "machine/asm.h" -# include "machine/regdef.h" -# define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE -#else -# include -# include -#endif - -/* Check to see if the MIPS architecture we are compiling for supports - prefetching. */ - -#if (__mips == 4) || (__mips == 5) || (__mips == 32) || (__mips == 64) -# ifndef DISABLE_PREFETCH -# define USE_PREFETCH -# endif -#endif - -#if defined(_MIPS_SIM) && ((_MIPS_SIM == _ABI64) || (_MIPS_SIM == _ABIN32)) -# ifndef DISABLE_DOUBLE -# define USE_DOUBLE -# endif -#endif - -#ifndef USE_DOUBLE -# ifndef DISABLE_DOUBLE_ALIGN -# define DOUBLE_ALIGN -# endif -#endif - -/* Some asm.h files do not have the L macro definition. */ -#ifndef L -# if _MIPS_SIM == _ABIO32 -# define L(label) $L ## label -# else -# define L(label) .L ## label -# endif -#endif - -/* Some asm.h files do not have the PTR_ADDIU macro definition. */ -#ifndef PTR_ADDIU -# ifdef USE_DOUBLE -# define PTR_ADDIU daddiu -# else -# define PTR_ADDIU addiu -# endif -#endif - -/* New R6 instructions that may not be in asm.h. */ -#ifndef PTR_LSA -# if _MIPS_SIM == _ABI64 -# define PTR_LSA dlsa -# else -# define PTR_LSA lsa -# endif -#endif - -/* Using PREFETCH_HINT_PREPAREFORSTORE instead of PREFETCH_STORE - or PREFETCH_STORE_STREAMED offers a large performance advantage - but PREPAREFORSTORE has some special restrictions to consider. - - Prefetch with the 'prepare for store' hint does not copy a memory - location into the cache, it just allocates a cache line and zeros - it out. This means that if you do not write to the entire cache - line before writing it out to memory some data will get zero'ed out - when the cache line is written back to memory and data will be lost. - - There are ifdef'ed sections of this memcpy to make sure that it does not - do prefetches on cache lines that are not going to be completely written. - This code is only needed and only used when PREFETCH_STORE_HINT is set to - PREFETCH_HINT_PREPAREFORSTORE. This code assumes that cache lines are - less than MAX_PREFETCH_SIZE bytes and if the cache line is larger it will - not work correctly. */ - -#ifdef USE_PREFETCH -# define PREFETCH_HINT_STORE 1 -# define PREFETCH_HINT_STORE_STREAMED 5 -# define PREFETCH_HINT_STORE_RETAINED 7 -# define PREFETCH_HINT_PREPAREFORSTORE 30 - -/* If we have not picked out what hints to use at this point use the - standard load and store prefetch hints. */ -# ifndef PREFETCH_STORE_HINT -# define PREFETCH_STORE_HINT PREFETCH_HINT_STORE -# endif - -/* We double everything when USE_DOUBLE is true so we do 2 prefetches to - get 64 bytes in that case. The assumption is that each individual - prefetch brings in 32 bytes. */ -# ifdef USE_DOUBLE -# define PREFETCH_CHUNK 64 -# define PREFETCH_FOR_STORE(chunk, reg) \ - pref PREFETCH_STORE_HINT, (chunk)*64(reg); \ - pref PREFETCH_STORE_HINT, ((chunk)*64)+32(reg) -# else -# define PREFETCH_CHUNK 32 -# define PREFETCH_FOR_STORE(chunk, reg) \ - pref PREFETCH_STORE_HINT, (chunk)*32(reg) -# endif - -/* MAX_PREFETCH_SIZE is the maximum size of a prefetch, it must not be less - than PREFETCH_CHUNK, the assumed size of each prefetch. If the real size - of a prefetch is greater than MAX_PREFETCH_SIZE and the PREPAREFORSTORE - hint is used, the code will not work correctly. If PREPAREFORSTORE is not - used than MAX_PREFETCH_SIZE does not matter. */ -# define MAX_PREFETCH_SIZE 128 -/* PREFETCH_LIMIT is set based on the fact that we never use an offset greater - than 5 on a STORE prefetch and that a single prefetch can never be larger - than MAX_PREFETCH_SIZE. We add the extra 32 when USE_DOUBLE is set because - we actually do two prefetches in that case, one 32 bytes after the other. */ -# ifdef USE_DOUBLE -# define PREFETCH_LIMIT (5 * PREFETCH_CHUNK) + 32 + MAX_PREFETCH_SIZE -# else -# define PREFETCH_LIMIT (5 * PREFETCH_CHUNK) + MAX_PREFETCH_SIZE -# endif - -# if (PREFETCH_STORE_HINT == PREFETCH_HINT_PREPAREFORSTORE) \ - && ((PREFETCH_CHUNK * 4) < MAX_PREFETCH_SIZE) -/* We cannot handle this because the initial prefetches may fetch bytes that - are before the buffer being copied. We start copies with an offset - of 4 so avoid this situation when using PREPAREFORSTORE. */ -# error "PREFETCH_CHUNK is too large and/or MAX_PREFETCH_SIZE is too small." -# endif -#else /* USE_PREFETCH not defined */ -# define PREFETCH_FOR_STORE(offset, reg) -#endif - -#if __mips_isa_rev > 5 -# if (PREFETCH_STORE_HINT == PREFETCH_HINT_PREPAREFORSTORE) -# undef PREFETCH_STORE_HINT -# define PREFETCH_STORE_HINT PREFETCH_HINT_STORE_STREAMED -# endif -# define R6_CODE -#endif - -/* Allow the routine to be named something else if desired. */ -#ifndef MEMSET_NAME -# define MEMSET_NAME memset -#endif - -/* We load/store 64 bits at a time when USE_DOUBLE is true. - The C_ prefix stands for CHUNK and is used to avoid macro name - conflicts with system header files. */ - -#ifdef USE_DOUBLE -# define C_ST sd -# if __MIPSEB -# define C_STHI sdl /* high part is left in big-endian */ -# else -# define C_STHI sdr /* high part is right in little-endian */ -# endif -#else -# define C_ST sw -# if __MIPSEB -# define C_STHI swl /* high part is left in big-endian */ -# else -# define C_STHI swr /* high part is right in little-endian */ -# endif -#endif - -/* Bookkeeping values for 32 vs. 64 bit mode. */ -#ifdef USE_DOUBLE -# define NSIZE 8 -# define NSIZEMASK 0x3f -# define NSIZEDMASK 0x7f -#else -# define NSIZE 4 -# define NSIZEMASK 0x1f -# define NSIZEDMASK 0x3f -#endif -#define UNIT(unit) ((unit)*NSIZE) -#define UNITM1(unit) (((unit)*NSIZE)-1) - -#ifdef ANDROID_CHANGES -LEAF(MEMSET_NAME,0) -#else -LEAF(MEMSET_NAME) -#endif - - .set nomips16 - .set noreorder -/* If the size is less than 2*NSIZE (8 or 16), go to L(lastb). Regardless of - size, copy dst pointer to v0 for the return value. */ - slti t2,a2,(2 * NSIZE) - bne t2,zero,L(lastb) - move v0,a0 - -/* If memset value is not zero, we copy it to all the bytes in a 32 or 64 - bit word. */ - beq a1,zero,L(set0) /* If memset value is zero no smear */ - PTR_SUBU a3,zero,a0 - nop - - /* smear byte into 32 or 64 bit word */ -#if ((__mips == 64) || (__mips == 32)) && (__mips_isa_rev >= 2) -# ifdef USE_DOUBLE - dins a1, a1, 8, 8 /* Replicate fill byte into half-word. */ - dins a1, a1, 16, 16 /* Replicate fill byte into word. */ - dins a1, a1, 32, 32 /* Replicate fill byte into dbl word. */ -# else - ins a1, a1, 8, 8 /* Replicate fill byte into half-word. */ - ins a1, a1, 16, 16 /* Replicate fill byte into word. */ -# endif -#else -# ifdef USE_DOUBLE - and a1,0xff - dsll t2,a1,8 - or a1,t2 - dsll t2,a1,16 - or a1,t2 - dsll t2,a1,32 - or a1,t2 -# else - and a1,0xff - sll t2,a1,8 - or a1,t2 - sll t2,a1,16 - or a1,t2 -# endif -#endif - -/* If the destination address is not aligned do a partial store to get it - aligned. If it is already aligned just jump to L(aligned). */ -L(set0): -#ifndef R6_CODE - andi t2,a3,(NSIZE-1) /* word-unaligned address? */ - beq t2,zero,L(aligned) /* t2 is the unalignment count */ - PTR_SUBU a2,a2,t2 - C_STHI a1,0(a0) - PTR_ADDU a0,a0,t2 -#else /* R6_CODE */ - andi t2,a0,(NSIZE-1) - lapc t9,L(atable) - PTR_LSA t9,t2,t9,2 - jrc t9 -L(atable): - bc L(aligned) -# ifdef USE_DOUBLE - bc L(lb7) - bc L(lb6) - bc L(lb5) - bc L(lb4) -# endif - bc L(lb3) - bc L(lb2) - bc L(lb1) -L(lb7): - sb a1,6(a0) -L(lb6): - sb a1,5(a0) -L(lb5): - sb a1,4(a0) -L(lb4): - sb a1,3(a0) -L(lb3): - sb a1,2(a0) -L(lb2): - sb a1,1(a0) -L(lb1): - sb a1,0(a0) - - li t9,NSIZE - subu t2,t9,t2 - PTR_SUBU a2,a2,t2 - PTR_ADDU a0,a0,t2 -#endif /* R6_CODE */ - -L(aligned): -/* If USE_DOUBLE is not set we may still want to align the data on a 16 - byte boundry instead of an 8 byte boundry to maximize the opportunity - of proAptiv chips to do memory bonding (combining two sequential 4 - byte stores into one 8 byte store). We know there are at least 4 bytes - left to store or we would have jumped to L(lastb) earlier in the code. */ -#ifdef DOUBLE_ALIGN - andi t2,a3,4 - beq t2,zero,L(double_aligned) - PTR_SUBU a2,a2,t2 - sw a1,0(a0) - PTR_ADDU a0,a0,t2 -L(double_aligned): -#endif - -/* Now the destination is aligned to (word or double word) aligned address - Set a2 to count how many bytes we have to copy after all the 64/128 byte - chunks are copied and a3 to the dest pointer after all the 64/128 byte - chunks have been copied. We will loop, incrementing a0 until it equals - a3. */ - andi t8,a2,NSIZEDMASK /* any whole 64-byte/128-byte chunks? */ - beq a2,t8,L(chkw) /* if a2==t8, no 64-byte/128-byte chunks */ - PTR_SUBU a3,a2,t8 /* subtract from a2 the reminder */ - PTR_ADDU a3,a0,a3 /* Now a3 is the final dst after loop */ - -/* When in the loop we may prefetch with the 'prepare to store' hint, - in this case the a0+x should not be past the "t0-32" address. This - means: for x=128 the last "safe" a0 address is "t0-160". Alternatively, - for x=64 the last "safe" a0 address is "t0-96" In the current version we - will use "prefetch hint,128(a0)", so "t0-160" is the limit. */ -#if defined(USE_PREFETCH) \ - && (PREFETCH_STORE_HINT == PREFETCH_HINT_PREPAREFORSTORE) - PTR_ADDU t0,a0,a2 /* t0 is the "past the end" address */ - PTR_SUBU t9,t0,PREFETCH_LIMIT /* t9 is the "last safe pref" address */ -#endif -#if defined(USE_PREFETCH) \ - && (PREFETCH_STORE_HINT != PREFETCH_HINT_PREPAREFORSTORE) - PREFETCH_FOR_STORE (1, a0) - PREFETCH_FOR_STORE (2, a0) - PREFETCH_FOR_STORE (3, a0) -#endif - -L(loop16w): -#if defined(USE_PREFETCH) \ - && (PREFETCH_STORE_HINT == PREFETCH_HINT_PREPAREFORSTORE) - sltu v1,t9,a0 /* If a0 > t9 don't use next prefetch */ - bgtz v1,L(skip_pref) - nop -#endif -#ifndef R6_CODE - PREFETCH_FOR_STORE (4, a0) - PREFETCH_FOR_STORE (5, a0) -#else - PREFETCH_FOR_STORE (2, a0) -#endif -L(skip_pref): - C_ST a1,UNIT(0)(a0) - C_ST a1,UNIT(1)(a0) - C_ST a1,UNIT(2)(a0) - C_ST a1,UNIT(3)(a0) - C_ST a1,UNIT(4)(a0) - C_ST a1,UNIT(5)(a0) - C_ST a1,UNIT(6)(a0) - C_ST a1,UNIT(7)(a0) - C_ST a1,UNIT(8)(a0) - C_ST a1,UNIT(9)(a0) - C_ST a1,UNIT(10)(a0) - C_ST a1,UNIT(11)(a0) - C_ST a1,UNIT(12)(a0) - C_ST a1,UNIT(13)(a0) - C_ST a1,UNIT(14)(a0) - C_ST a1,UNIT(15)(a0) - PTR_ADDIU a0,a0,UNIT(16) /* adding 64/128 to dest */ - bne a0,a3,L(loop16w) - nop - move a2,t8 - -/* Here we have dest word-aligned but less than 64-bytes or 128 bytes to go. - Check for a 32(64) byte chunk and copy if if there is one. Otherwise - jump down to L(chk1w) to handle the tail end of the copy. */ -L(chkw): - andi t8,a2,NSIZEMASK /* is there a 32-byte/64-byte chunk. */ - /* the t8 is the reminder count past 32-bytes */ - beq a2,t8,L(chk1w)/* when a2==t8, no 32-byte chunk */ - nop - C_ST a1,UNIT(0)(a0) - C_ST a1,UNIT(1)(a0) - C_ST a1,UNIT(2)(a0) - C_ST a1,UNIT(3)(a0) - C_ST a1,UNIT(4)(a0) - C_ST a1,UNIT(5)(a0) - C_ST a1,UNIT(6)(a0) - C_ST a1,UNIT(7)(a0) - PTR_ADDIU a0,a0,UNIT(8) - -/* Here we have less than 32(64) bytes to set. Set up for a loop to - copy one word (or double word) at a time. Set a2 to count how many - bytes we have to copy after all the word (or double word) chunks are - copied and a3 to the dest pointer after all the (d)word chunks have - been copied. We will loop, incrementing a0 until a0 equals a3. */ -L(chk1w): - andi a2,t8,(NSIZE-1) /* a2 is the reminder past one (d)word chunks */ - beq a2,t8,L(lastb) - PTR_SUBU a3,t8,a2 /* a3 is count of bytes in one (d)word chunks */ - PTR_ADDU a3,a0,a3 /* a3 is the dst address after loop */ - -/* copying in words (4-byte or 8 byte chunks) */ -L(wordCopy_loop): - PTR_ADDIU a0,a0,UNIT(1) - bne a0,a3,L(wordCopy_loop) - C_ST a1,UNIT(-1)(a0) - -/* Copy the last 8 (or 16) bytes */ -L(lastb): - blez a2,L(leave) - PTR_ADDU a3,a0,a2 /* a3 is the last dst address */ -L(lastbloop): - PTR_ADDIU a0,a0,1 - bne a0,a3,L(lastbloop) - sb a1,-1(a0) -L(leave): - j ra - nop - - .set at - .set reorder -END(MEMSET_NAME) diff --git a/lib/machine/mips/setjmp.S b/lib/machine/mips/setjmp.S deleted file mode 100644 index cfc1d51..0000000 --- a/lib/machine/mips/setjmp.S +++ /dev/null @@ -1,159 +0,0 @@ -/* This is a simple version of setjmp and longjmp for MIPS 32 and 64. - - Ian Lance Taylor, Cygnus Support, 13 May 1993. */ - -#ifdef __mips16 -/* This file contains 32 bit assembly code. */ - .set nomips16 -#endif - -#define GPR_LAYOUT \ - GPR_OFFSET ($16, 0); \ - GPR_OFFSET ($17, 1); \ - GPR_OFFSET ($18, 2); \ - GPR_OFFSET ($19, 3); \ - GPR_OFFSET ($20, 4); \ - GPR_OFFSET ($21, 5); \ - GPR_OFFSET ($22, 6); \ - GPR_OFFSET ($23, 7); \ - GPR_OFFSET ($29, 8); \ - GPR_OFFSET ($30, 9); \ - GPR_OFFSET ($31, 10) - -#define NUM_GPRS_SAVED 11 - -#ifdef __mips_hard_float -#if _MIPS_SIM == _ABIN32 -#define FPR_LAYOUT \ - FPR_OFFSET ($f20, 0); \ - FPR_OFFSET ($f22, 1); \ - FPR_OFFSET ($f24, 2); \ - FPR_OFFSET ($f26, 3); \ - FPR_OFFSET ($f28, 4); \ - FPR_OFFSET ($f30, 5); -#elif _MIPS_SIM == _ABI64 -#define FPR_LAYOUT \ - FPR_OFFSET ($f24, 0); \ - FPR_OFFSET ($f25, 1); \ - FPR_OFFSET ($f26, 2); \ - FPR_OFFSET ($f27, 3); \ - FPR_OFFSET ($f28, 4); \ - FPR_OFFSET ($f29, 5); \ - FPR_OFFSET ($f30, 6); \ - FPR_OFFSET ($f31, 7); -#elif __mips_fpr == 0 || __mips_fpr == 64 - -/* This deals with the o32 FPXX and FP64 cases. Here we must use - SDC1 and LDC1 to access the FPRs. These instructions require - 8-byte aligned addresses. - Unfortunately, the MIPS jmp_buf only guarantees 4-byte alignment - and this cannot be increased without breaking compatibility with - pre-existing objects built against newlib. There are 11 GPRS - saved in the jmp_buf so a buffer that happens to be 8-byte aligned - ends up leaving the FPR slots 4-byte aligned and an (only) 4-byte - aligned buffer leads to the FPR slots being 8-byte aligned! - - To resolve this, we move the location of $31 to the last slot - in the jmp_buf when the overall buffer is 8-byte aligned. $31 - is simply loaded/stored twice to avoid adding complexity to the - GPR_LAYOUT macro above as well as FPR_LAYOUT. - - The location of the last slot is index 22 which is calculated - from there being 11 GPRs saved and then 12 FPRs saved so the - index of the last FPR is 11+11. - - The base of the jmp_buf is modified in $4 to allow the - FPR_OFFSET macros to just use the usual constant slot numbers - regardless of whether the realignment happened or not. */ - -#define FPR_LAYOUT \ - and $8, $4, 4; \ - beq $8, $0, 1f; \ - GPR_OFFSET ($31, 22); \ - addiu $4, $4, -4; \ -1: \ - FPR_OFFSET ($f20, 0); \ - FPR_OFFSET ($f22, 2); \ - FPR_OFFSET ($f24, 4); \ - FPR_OFFSET ($f26, 6); \ - FPR_OFFSET ($f28, 8); \ - FPR_OFFSET ($f30, 10); -#else /* Assuming _MIPS_SIM == _ABIO32 */ -#define FPR_LAYOUT \ - FPR_OFFSET ($f20, 0); \ - FPR_OFFSET ($f21, 1); \ - FPR_OFFSET ($f22, 2); \ - FPR_OFFSET ($f23, 3); \ - FPR_OFFSET ($f24, 4); \ - FPR_OFFSET ($f25, 5); \ - FPR_OFFSET ($f26, 6); \ - FPR_OFFSET ($f27, 7); \ - FPR_OFFSET ($f28, 8); \ - FPR_OFFSET ($f29, 9); \ - FPR_OFFSET ($f30, 10); \ - FPR_OFFSET ($f31, 11); -#endif -#else -#define FPR_LAYOUT -#endif - -#ifdef __mips64 -#define BYTES_PER_WORD 8 -#define LOAD_GPR ld -#define LOAD_FPR ldc1 -#define STORE_GPR sd -#define STORE_FPR sdc1 -#else -#define LOAD_GPR lw -#define STORE_GPR sw -#define BYTES_PER_WORD 4 -#if __mips_fpr == 0 || __mips_fpr == 64 -#define LOAD_FPR ldc1 -#define STORE_FPR sdc1 -#else -#define LOAD_FPR lwc1 -#define STORE_FPR swc1 -#endif -#endif - -#define GPOFF(INDEX) (INDEX * BYTES_PER_WORD) -#define FPOFF(INDEX) ((INDEX + NUM_GPRS_SAVED) * BYTES_PER_WORD) - -/* int setjmp (jmp_buf); */ - .globl setjmp - .ent setjmp -setjmp: - .frame $sp,0,$31 - -#define GPR_OFFSET(REG, INDEX) STORE_GPR REG,GPOFF(INDEX)($4) -#define FPR_OFFSET(REG, INDEX) STORE_FPR REG,FPOFF(INDEX)($4) - GPR_LAYOUT - FPR_LAYOUT -#undef GPR_OFFSET -#undef FPR_OFFSET - - move $2,$0 - j $31 - - .end setjmp - -/* volatile void longjmp (jmp_buf, int); */ - .globl longjmp - .ent longjmp -longjmp: - .frame $sp,0,$31 - -#define GPR_OFFSET(REG, INDEX) LOAD_GPR REG,GPOFF(INDEX)($4) -#define FPR_OFFSET(REG, INDEX) LOAD_FPR REG,FPOFF(INDEX)($4) - GPR_LAYOUT - FPR_LAYOUT -#undef GPR_OFFSET -#undef FPR_OFFSET - - bne $5,$0,1f - li $5,1 -1: - move $2,$5 - j $31 - - .end longjmp diff --git a/lib/machine/mips/strcmp.S b/lib/machine/mips/strcmp.S deleted file mode 100644 index 9d33a4e..0000000 --- a/lib/machine/mips/strcmp.S +++ /dev/null @@ -1,252 +0,0 @@ -/* - * Copyright (c) 2014 - * Imagination Technologies Limited. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the MIPS Technologies, Inc., nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY IMAGINATION TECHNOLOGIES LIMITED ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL IMAGINATION TECHNOLOGIES LIMITED BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifdef ANDROID_CHANGES -# include "machine/asm.h" -# include "machine/regdef.h" -#elif _LIBC -# include "machine/asm.h" -# include "machine/regdef.h" -#else -# include -# include -#endif - -/* Technically strcmp should not read past the end of the strings being - compared. We will read a full word that may contain excess bits beyond - the NULL string terminator but unless ENABLE_READAHEAD is set, we will not - read the next word after the end of string. Setting ENABLE_READAHEAD will - improve performance but is technically illegal based on the definition of - strcmp. */ -#ifdef ENABLE_READAHEAD -# define DELAY_READ -#else -# define DELAY_READ nop -#endif - -/* Testing on a little endian machine showed using CLZ was a - performance loss, so we are not turning it on by default. */ -#if defined(ENABLE_CLZ) && (__mips_isa_rev > 1) -# define USE_CLZ -#endif - -/* Some asm.h files do not have the L macro definition. */ -#ifndef L -# if _MIPS_SIM == _ABIO32 -# define L(label) $L ## label -# else -# define L(label) .L ## label -# endif -#endif - -/* Some asm.h files do not have the PTR_ADDIU macro definition. */ -#ifndef PTR_ADDIU -# ifdef USE_DOUBLE -# define PTR_ADDIU daddiu -# else -# define PTR_ADDIU addiu -# endif -#endif - -/* Allow the routine to be named something else if desired. */ -#ifndef STRCMP_NAME -# define STRCMP_NAME strcmp -#endif - -#ifdef ANDROID_CHANGES -LEAF(STRCMP_NAME, 0) -#else -LEAF(STRCMP_NAME) -#endif - .set nomips16 - .set noreorder - - or t0, a0, a1 - andi t0,0x3 - bne t0, zero, L(byteloop) - -/* Both strings are 4 byte aligned at this point. */ - - lui t8, 0x0101 - ori t8, t8, 0x0101 - lui t9, 0x7f7f - ori t9, 0x7f7f - -#define STRCMP32(OFFSET) \ - lw v0, OFFSET(a0); \ - lw v1, OFFSET(a1); \ - subu t0, v0, t8; \ - bne v0, v1, L(worddiff); \ - nor t1, v0, t9; \ - and t0, t0, t1; \ - bne t0, zero, L(returnzero) - -L(wordloop): - STRCMP32(0) - DELAY_READ - STRCMP32(4) - DELAY_READ - STRCMP32(8) - DELAY_READ - STRCMP32(12) - DELAY_READ - STRCMP32(16) - DELAY_READ - STRCMP32(20) - DELAY_READ - STRCMP32(24) - DELAY_READ - STRCMP32(28) - PTR_ADDIU a0, a0, 32 - b L(wordloop) - PTR_ADDIU a1, a1, 32 - -L(returnzero): - j ra - move v0, zero - -L(worddiff): -#ifdef USE_CLZ - subu t0, v0, t8 - nor t1, v0, t9 - and t1, t0, t1 - xor t0, v0, v1 - or t0, t0, t1 -# if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ - wsbh t0, t0 - rotr t0, t0, 16 -# endif - clz t1, t0 - and t1, 0xf8 -# if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ - neg t1 - addu t1, 24 -# endif - rotrv v0, v0, t1 - rotrv v1, v1, t1 - and v0, v0, 0xff - and v1, v1, 0xff - j ra - subu v0, v0, v1 -#else /* USE_CLZ */ -# if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ - andi t0, v0, 0xff - beq t0, zero, L(wexit01) - andi t1, v1, 0xff - bne t0, t1, L(wexit01) - - srl t8, v0, 8 - srl t9, v1, 8 - andi t8, t8, 0xff - beq t8, zero, L(wexit89) - andi t9, t9, 0xff - bne t8, t9, L(wexit89) - - srl t0, v0, 16 - srl t1, v1, 16 - andi t0, t0, 0xff - beq t0, zero, L(wexit01) - andi t1, t1, 0xff - bne t0, t1, L(wexit01) - - srl t8, v0, 24 - srl t9, v1, 24 -# else /* __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ */ - srl t0, v0, 24 - beq t0, zero, L(wexit01) - srl t1, v1, 24 - bne t0, t1, L(wexit01) - - srl t8, v0, 16 - srl t9, v1, 16 - andi t8, t8, 0xff - beq t8, zero, L(wexit89) - andi t9, t9, 0xff - bne t8, t9, L(wexit89) - - srl t0, v0, 8 - srl t1, v1, 8 - andi t0, t0, 0xff - beq t0, zero, L(wexit01) - andi t1, t1, 0xff - bne t0, t1, L(wexit01) - - andi t8, v0, 0xff - andi t9, v1, 0xff -# endif /* __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ */ - -L(wexit89): - j ra - subu v0, t8, t9 -L(wexit01): - j ra - subu v0, t0, t1 -#endif /* USE_CLZ */ - -/* It might seem better to do the 'beq' instruction between the two 'lbu' - instructions so that the nop is not needed but testing showed that this - code is actually faster (based on glibc strcmp test). */ -#define BYTECMP01(OFFSET) \ - lbu v0, OFFSET(a0); \ - lbu v1, OFFSET(a1); \ - beq v0, zero, L(bexit01); \ - nop; \ - bne v0, v1, L(bexit01) - -#define BYTECMP89(OFFSET) \ - lbu t8, OFFSET(a0); \ - lbu t9, OFFSET(a1); \ - beq t8, zero, L(bexit89); \ - nop; \ - bne t8, t9, L(bexit89) - -L(byteloop): - BYTECMP01(0) - BYTECMP89(1) - BYTECMP01(2) - BYTECMP89(3) - BYTECMP01(4) - BYTECMP89(5) - BYTECMP01(6) - BYTECMP89(7) - PTR_ADDIU a0, a0, 8 - b L(byteloop) - PTR_ADDIU a1, a1, 8 - -L(bexit01): - j ra - subu v0, v0, v1 -L(bexit89): - j ra - subu v0, t8, t9 - - .set at - .set reorder - -END(STRCMP_NAME) diff --git a/lib/machine/mips/strlen.c b/lib/machine/mips/strlen.c deleted file mode 100644 index a87bddd..0000000 --- a/lib/machine/mips/strlen.c +++ /dev/null @@ -1,74 +0,0 @@ -/* - * strlen.c -- strlen function. On at least some MIPS chips, a simple - * strlen is faster than the 'optimized' C version. - * - * Copyright (c) 2001, 2002 Red Hat, Inc. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include -#include - -/* MIPS16 needs to come first. */ - -#if defined(__mips16) -size_t -strlen (const char *str) -{ - const char *start = str; - - while (*str++ != '\0') - ; - - return str - start - 1; -} -#elif defined(__mips64) -__asm__("" /* 64-bit MIPS targets */ - " .set noreorder\n" - " .set nomacro\n" - " .globl strlen\n" - " .ent strlen\n" - "strlen:\n" - " daddiu $2,$4,1\n" - "\n" - "1: lbu $3,0($4)\n" - " bnez $3,1b\n" - " daddiu $4,$4,1\n" - "\n" - " jr $31\n" - " dsubu $2,$4,$2\n" - " .end strlen\n" - " .set macro\n" - " .set reorder\n"); - -#else -__asm__("" /* 32-bit MIPS targets */ - " .set noreorder\n" - " .set nomacro\n" - " .globl strlen\n" - " .ent strlen\n" - "strlen:\n" - " addiu $2,$4,1\n" - "\n" - "1: lbu $3,0($4)\n" -#if defined(_R3000) - " nop \n" -#endif - " bnez $3,1b\n" - " addiu $4,$4,1\n" - "\n" - " jr $31\n" - " subu $2,$4,$2\n" - " .end strlen\n" - " .set macro\n" - " .set reorder\n"); -#endif diff --git a/lib/machine/mips/strncpy.c b/lib/machine/mips/strncpy.c deleted file mode 100644 index 47413cb..0000000 --- a/lib/machine/mips/strncpy.c +++ /dev/null @@ -1,250 +0,0 @@ -/* - * strncpy.S -- strncmp function. On at least some MIPS chips, you get better - * code by hand unrolling the loops, and by using store words to zero the - * remainder of the buffer than the default newlib C version. - * - * Copyright (c) 2001 Red Hat, Inc. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. */ - -#include -#include -#include -#include - -#if !defined(__GNUC__) || (__GNUC__ < 3) -#define __builtin_expect(a,b) a - -#else -#ifdef __mips64 -/* Don't use limits test for the size of long, in order to allow the use of - 64-bit stores on MIPS3 machines, even if -mlong32 was used. */ -typedef unsigned word_type __attribute__ ((mode (DI))); -#else -typedef unsigned word_type __attribute__ ((mode (SI))); -#endif - -typedef unsigned si_type __attribute__ ((mode (SI))); -typedef unsigned hi_type __attribute__ ((mode (HI))); - -#ifndef UNROLL_FACTOR -#define UNROLL_FACTOR 4 - -#elif (UNROLL_FACTOR != 2) && (UNROLL_FACTOR != 4) -#error "UNROLL_FACTOR must be 2 or 4" -#endif -#endif - -char * -strncpy (char *dst0, const char *src0, size_t count) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) || defined(__mips16) || !defined(__GNUC__) || (__GNUC__ < 3) - char *dst, *end; - const char *src; - int ch; - - dst = dst0; - src = src0; - end = dst + count; - while (dst != end) - { - *dst++ = ch = *src++; - if (__builtin_expect (ch == '\0', 0)) - { - while (dst != end) - *dst++ = '\0'; - - break; - } - } - - return dst0; - -#else - unsigned char *dst; - unsigned char *dst_end; - unsigned char *end; - const unsigned char *src; - int ch0, ch1; -#if UNROLL_FACTOR > 2 - int ch2, ch3; -#endif - int ch; - int odd_bytes; - size_t long_count; - - dst = (unsigned char *)dst0; - src = (unsigned const char *)src0; - /* Take care of any odd bytes in the source data because we - * want to unroll where we read ahead 2 or 4 bytes at a time and then - * check each byte for the null terminator. This can result in - * a segfault for the case where the source pointer is unaligned, - * the null terminator is in valid memory, but reading 2 or 4 bytes at a - * time blindly eventually goes outside of valid memory. */ - while (((uintptr_t) src & (UNROLL_FACTOR - 1)) != 0 && count > 0) - { - *dst++ = ch = *src++; - --count; - if (ch == '\0') - { - end = dst + count; - while (dst != end) - *dst++ = '\0'; - - return dst0; - } - } - - if (__builtin_expect (count >= 4, 1)) - { - odd_bytes = (count & (UNROLL_FACTOR - 1)); - count -= odd_bytes; - - do - { - ch0 = src[0]; - ch1 = src[1]; -#if UNROLL_FACTOR > 2 - ch2 = src[2]; - ch3 = src[3]; -#endif - src += UNROLL_FACTOR; - count -= UNROLL_FACTOR; - - dst[0] = ch0; - if (ch0 == '\0') - goto found_null0; - - dst[1] = ch1; - if (ch1 == '\0') - goto found_null1; - -#if UNROLL_FACTOR > 2 - dst[2] = ch2; - if (ch2 == '\0') - goto found_null2; - - dst[3] = ch3; - if (ch3 == '\0') - goto found_null3; -#endif - - dst += UNROLL_FACTOR; - } - while (count); - - /* fall through, count == 0, no null found, deal with last bytes */ - count = odd_bytes; - } - - end = dst + count; - while (dst != end) - { - *dst++ = ch = *src++; - if (ch == '\0') - { - while (dst != end) - *dst++ = '\0'; - - break; - } - } - - return dst0; - - /* Found null byte in first byte, count has been decremented by 4, null has - been stored in dst[0]. */ - found_null0: - count++; /* add 1 to cover remaining byte */ - dst -= 1; /* adjust dst += 4 gets correct ptr */ - /* fall through */ - - /* Found null byte in second byte, count has been decremented by 4, null has - been stored in dst[1]. */ - found_null1: -#if UNROLL_FACTOR > 2 - count++; /* add 1 to cover remaining byte */ - dst -= 1; /* adjust dst += 4 gets correct ptr */ - /* fall through */ - - /* Found null byte in third byte, count has been decremented by 4, null has - been stored in dst[2]. */ - found_null2: - count++; /* add 1 to cover remaining byte */ - dst -= 1; /* adjust dst += 4 gets correct ptr */ - /* fall through */ - - /* Found null byte in fourth byte, count is accurate, dst has not been - updated yet. */ - found_null3: -#endif - count += odd_bytes; /* restore odd byte count */ - dst += UNROLL_FACTOR; - - /* Zero fill remainder of the array. Unroll the loop, and use word/dword - stores where we can. */ - while (count && (((long)dst) & (sizeof (word_type) - 1)) != 0) - { - count--; - *dst++ = 0; - } - - while (count >= UNROLL_FACTOR*sizeof (word_type)) - { - count -= UNROLL_FACTOR*sizeof (word_type); - dst += UNROLL_FACTOR*sizeof (word_type); -#if UNROLL_FACTOR > 2 - ((word_type *)(void *)dst)[-4] = 0; - ((word_type *)(void *)dst)[-3] = 0; -#endif - ((word_type *)(void *)dst)[-2] = 0; - ((word_type *)(void *)dst)[-1] = 0; - } - -#if UNROLL_FACTOR > 2 - if (count >= 2*sizeof (word_type)) - { - count -= 2*sizeof (word_type); - ((word_type *)(void *)dst)[0] = 0; - ((word_type *)(void *)dst)[1] = 0; - dst += 2*sizeof (word_type); - } -#endif - - if (count >= sizeof (word_type)) - { - count -= sizeof (word_type); - ((word_type *)(void *)dst)[0] = 0; - dst += sizeof (word_type); - } - -#ifdef __mips64 - if (count >= sizeof (si_type)) - { - count -= sizeof (si_type); - ((si_type *)(void *)dst)[0] = 0; - dst += sizeof (si_type); - } -#endif - - if (count >= sizeof (hi_type)) - { - count -= sizeof (hi_type); - ((hi_type *)(void *)dst)[0] = 0; - dst += sizeof (hi_type); - } - - if (count) - *dst = '\0'; - - return dst0; -#endif -} diff --git a/lib/machine/mips/sys/fenv.h b/lib/machine/mips/sys/fenv.h deleted file mode 100644 index 282d68c..0000000 --- a/lib/machine/mips/sys/fenv.h +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2004-2005 David Schultz - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _SYS_FENV_H_ -#define _SYS_FENV_H_ - -#include - -#ifndef __fenv_static -#define __fenv_static static -#endif - -typedef int fenv_t; -typedef int fexcept_t; - -/* Exception flags */ -#ifdef __mips_soft_float -#define _FPUSW_SHIFT 16 -#define FE_INVALID 0x0001 -#define FE_DIVBYZERO 0x0002 -#define FE_OVERFLOW 0x0004 -#define FE_UNDERFLOW 0x0008 -#define FE_INEXACT 0x0010 -#else -#define _FCSR_CAUSE_SHIFT 10 -#define FE_INVALID 0x0040 -#define FE_DIVBYZERO 0x0020 -#define FE_OVERFLOW 0x0010 -#define FE_UNDERFLOW 0x0008 -#define FE_INEXACT 0x0004 -#endif -#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | \ - FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW) - -/* Rounding modes */ -#define FE_TONEAREST 0x0000 -#define FE_TOWARDZERO 0x0001 -#define FE_UPWARD 0x0002 -#define FE_DOWNWARD 0x0003 -#define _ROUND_MASK (FE_TONEAREST | FE_DOWNWARD | \ - FE_UPWARD | FE_TOWARDZERO) - - -/* Default floating-point environment */ -extern const fenv_t *_fe_dfl_env; -#define FE_DFL_ENV (_fe_dfl_env) - -/* We need to be able to map status flag positions to mask flag positions */ -#define _ENABLE_SHIFT 5 -#define _ENABLE_MASK (FE_ALL_EXCEPT << _ENABLE_SHIFT) - -#if !defined(__mips_soft_float) && !defined(__mips_hard_float) -#error compiler didnt set soft/hard float macros -#endif - -#ifndef __mips_soft_float -#define __cfc1(__fcsr) __asm __volatile("cfc1 %0, $31" : "=r" (__fcsr)) -#define __ctc1(__fcsr) __asm __volatile("ctc1 %0, $31" :: "r" (__fcsr)) -#endif - -#endif /* !_FENV_H_ */ diff --git a/lib/machine/mn10200/Makefile.inc b/lib/machine/mn10200/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/mn10200/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/mn10200/setjmp.S b/lib/machine/mn10200/setjmp.S deleted file mode 100644 index f0036b1..0000000 --- a/lib/machine/mn10200/setjmp.S +++ /dev/null @@ -1,33 +0,0 @@ - .file "setjmp.S" - - .section .text - .align 1 - .global _setjmp -_setjmp: - mov d0,a0 - movx d2,(0,a0) - movx d3,(4,a0) - mov a1,(8,a0) - mov a2,(12,a0) - mov a3,(16,a0) - movx (0,a3),d0 - movx d0,(20,a0) - sub d0,d0 - rts - - .global _longjmp -_longjmp: - mov d0,a0 - movx (0,a0),d2 - movx (4,a0),d3 - mov (8,a0),a1 - mov (12,a0),a2 - mov (16,a0),a3 - movx (20,a0),d0 - movx d0,(0,a3) - cmp 0,d1 - bne L1 - mov 1,d1 -L1: - mov d1,d0 - rts diff --git a/lib/machine/mn10300/Makefile.inc b/lib/machine/mn10300/Makefile.inc deleted file mode 100644 index 299a388..0000000 --- a/lib/machine/mn10300/Makefile.inc +++ /dev/null @@ -1,5 +0,0 @@ -libc_a_CCASFLAGS_%C% = -Wa,--gdwarf-2 - -libc_a_SOURCES += \ - %D%/setjmp.S %D%/memchr.S %D%/memcmp.S %D%/memcpy.S %D%/memset.S %D%/strchr.S \ - %D%/strcmp.S %D%/strcpy.S %D%/strlen.S diff --git a/lib/machine/mn10300/memchr.S b/lib/machine/mn10300/memchr.S deleted file mode 100644 index 90b0f46..0000000 --- a/lib/machine/mn10300/memchr.S +++ /dev/null @@ -1,108 +0,0 @@ - .file "memchr.S" - - .section .text - .global _memchr - .type _memchr,@function -_memchr: - movm [d2,d3,a2,a3],(sp) -.Lend_of_prologue: - mov d0,a0 - mov d1,d2 - mov (28,sp),a1 -#ifndef __OPTIMIZE_SIZE__ - cmp 3,a1 - bls .L44 - mov a0,d3 - btst 3,d3 - bne .L44 - mov a0,a2 - mov 0,a3 - clr d1 - setlb - mov a3,d0 - asl 8,d0 - mov d2,a3 - add d0,a3 - inc d1 - cmp 3,d1 - lls - cmp 3,a1 - bls .L48 -.L33: - mov (a2),d0 - mov a3,d3 - xor d3,d0 - mov d0,d1 - not d1 - add -16843009,d0 - and d1,d0 - btst -2139062144,d0 - beq .L34 - mov a2,a0 - clr d1 - setlb - movbu (a0),d0 - cmp d2,d0 - beq .Lepilogue - inc a0 - inc d1 - cmp 3,d1 - lls -.L34: - add -4,a1 - inc4 a2 - cmp 3,a1 - bhi .L33 -.L48: - mov a2,a0 -.L44: -#endif - cmp 0,a1 - beq .L50 - setlb - movbu (a0),d0 - cmp d2,d0 - beq .Lepilogue - inc a0 - sub 1,a1 - lne -.L50: - mov 0,a0 -.Lepilogue: - ret [d2,d3,a2,a3],16 -.Lend_of_memchr: - .size _memchr, .Lend_of_memchr - _memchr - - .section .debug_frame,"",@progbits -.Lstart_of_debug_frame: - # Common Information Entry (CIE) - .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length -.Lstart_of_CIE: - .4byte 0xffffffff # CIE Identifier Tag - .byte 0x1 # CIE Version - .ascii "\0" # CIE Augmentation - .uleb128 0x1 # CIE Code Alignment Factor - .sleb128 -4 # CIE Data Alignment Factor - .byte 0x32 # CIE RA Column - .byte 0xc # DW_CFA_def_cfa - .uleb128 0x9 - .uleb128 0x0 - .byte 0xb2 # DW_CFA_offset, column 0x32 - .uleb128 0x0 - .align 2 -.Lend_of_CIE: - - # Frame Description Entry (FDE) - .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length -.Lstart_of_FDE: - .4byte .Lstart_of_debug_frame # FDE CIE offset - .4byte _memchr # FDE initial location - .4byte .Lend_of_memchr - _memchr # FDE address range - .byte 0x4 # DW_CFA_advance_loc4 - .4byte .Lend_of_prologue - _memchr - .byte 0xe # DW_CFA_def_cfa_offset - .uleb128 0x4 - .byte 0x87 # DW_CFA_offset, column 0x7 - .uleb128 0x1 - .align 2 -.Lend_of_FDE: diff --git a/lib/machine/mn10300/memcmp.S b/lib/machine/mn10300/memcmp.S deleted file mode 100644 index e272c54..0000000 --- a/lib/machine/mn10300/memcmp.S +++ /dev/null @@ -1,85 +0,0 @@ - .file "memcmp.S" - - .section .text - .global _memcmp - .type _memcmp,@function -_memcmp: - movm [d2,d3,a2,a3],(sp) -.Lend_of_prologue: - mov d0,a0 - mov d1,a1 - mov (28,sp),a2 -#ifndef __OPTIMIZE_SIZE__ - cmp 3,a2 - bls .L22 - mov a1,d2 - or d2,d0 - btst 3,d0 - bne .L22 - setlb - mov (a0),d1 - mov (a1),d0 - cmp d0,d1 - bne .L22 - inc4 a0 - inc4 a1 - add -4,a2 - cmp 3,a2 - lhi -.L22: -#endif - cmp 0,a2 - beq .L24 - setlb - movbu (a0),d3 - movbu (a1),d2 - cmp d2,d3 - beq .L23 - mov d3,d0 - sub d2,d0 - jmp .Lepilogue -.L23: - inc a0 - inc a1 - sub 1,a2 - lne -.L24: - clr d0 -.Lepilogue: - ret [d2,d3,a2,a3],16 -.Lend_of_func: - .size _memcmp, .Lend_of_func - _memcmp - - .section .debug_frame,"",@progbits -.Lstart_of_debug_frame: - # Common Information Entry (CIE) - .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length -.Lstart_of_CIE: - .4byte 0xffffffff # CIE Identifier Tag - .byte 0x1 # CIE Version - .ascii "\0" # CIE Augmentation - .uleb128 0x1 # CIE Code Alignment Factor - .sleb128 -4 # CIE Data Alignment Factor - .byte 0x32 # CIE RA Column - .byte 0xc # DW_CFA_def_cfa - .uleb128 0x9 - .uleb128 0x0 - .byte 0xb2 # DW_CFA_offset, column 0x32 - .uleb128 0x0 - .align 2 -.Lend_of_CIE: - - # Frame Description Entry (FDE) - .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length -.Lstart_of_FDE: - .4byte .Lstart_of_debug_frame # FDE CIE offset - .4byte _memcmp # FDE initial location - .4byte .Lend_of_func - _memcmp # FDE address range - .byte 0x4 # DW_CFA_advance_loc4 - .4byte .Lend_of_prologue - _memcmp - .byte 0xe # DW_CFA_def_cfa_offset - .uleb128 0x4 - .byte 0x87 # DW_CFA_offset, column 0x7 - .uleb128 0x1 - .align 2 -.Lend_of_FDE: diff --git a/lib/machine/mn10300/memcpy.S b/lib/machine/mn10300/memcpy.S deleted file mode 100644 index 8f2ab08..0000000 --- a/lib/machine/mn10300/memcpy.S +++ /dev/null @@ -1,101 +0,0 @@ - .file "memcpy.S" - - .section .text - .global _memcpy - .type _memcpy,@function -_memcpy: - movm [d2,d3,a2,a3],(sp) -.Lend_of_prologue: - mov d0,d2 - mov d1,a0 - mov d2,a1 - mov (28,sp),d1 -#ifndef __OPTIMIZE_SIZE__ - mov a0,d0 - or d2,d0 - btst 3,d0 - bne .L37 - cmp 15,d1 - bls .L34 - setlb - mov (a0),d0 - mov d0,(a1) - inc4 a0 - inc4 a1 - mov (a0),d0 - mov d0,(a1) - inc4 a0 - inc4 a1 - mov (a0),d0 - mov d0,(a1) - inc4 a0 - inc4 a1 - mov (a0),d0 - mov d0,(a1) - inc4 a0 - inc4 a1 - add -16,d1 - cmp 15,d1 - lhi -.L34: - cmp 3,d1 - bls .L37 - setlb - mov (a0),d0 - mov d0,(a1) - inc4 a0 - inc4 a1 - add -4,d1 - cmp 3,d1 - lhi -.L37: -#endif - cmp 0,d1 - beq .L36 - setlb - movbu (a0),d0 - movbu d0,(a1) - inc a0 - inc a1 - sub 1,d1 - lne -.L36: - mov d2,a0 -.Lepilogue: - ret [d2,d3,a2,a3],16 -.Lend_of_memcpy: - .size _memcpy, .Lend_of_memcpy - _memcpy - - .section .debug_frame,"",@progbits -.Lstart_of_debug_frame: - # Common Information Entry (CIE) - .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length -.Lstart_of_CIE: - .4byte 0xffffffff # CIE Identifier Tag - .byte 0x1 # CIE Version - .ascii "\0" # CIE Augmentation - .uleb128 0x1 # CIE Code Alignment Factor - .sleb128 -4 # CIE Data Alignment Factor - .byte 0x32 # CIE RA Column - .byte 0xc # DW_CFA_def_cfa - .uleb128 0x9 - .uleb128 0x0 - .byte 0xb2 # DW_CFA_offset, column 0x32 - .uleb128 0x0 - .align 2 -.Lend_of_CIE: - - # Frame Description Entry (FDE) - .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length -.Lstart_of_FDE: - .4byte .Lstart_of_debug_frame # FDE CIE offset - .4byte _memcpy # FDE initial location - .4byte .Lend_of_memcpy - _memcpy # FDE address range - .byte 0x4 # DW_CFA_advance_loc4 - .4byte .Lend_of_prologue - _memcpy - .byte 0xe # DW_CFA_def_cfa_offset - .uleb128 0x4 - .byte 0x87 # DW_CFA_offset, column 0x7 - .uleb128 0x1 - .align 2 -.Lend_of_FDE: diff --git a/lib/machine/mn10300/memset.S b/lib/machine/mn10300/memset.S deleted file mode 100644 index a927a5e..0000000 --- a/lib/machine/mn10300/memset.S +++ /dev/null @@ -1,95 +0,0 @@ - .file "memset.S" - - .section .text - .global _memset - .type _memset,@function -_memset: - movm [d2,d3,a2,a3], (sp) -.Lend_of_prologue: - mov d0, d3 - mov d1, d2 - mov (28, sp),a1 - mov d3, a0 -#ifndef __OPTIMIZE_SIZE__ - cmp 3, a1 - bls .L41 - btst 3, d3 - bne .L41 - extbu d2 - mov d2, d1 - asl 8, d1 - or d2, d1 - mov d1, d0 - asl 16, d0 - or d0, d1 - cmp 15, a1 - bls .L36 - setlb - mov d1, (a0) - inc4 a0 - mov d1, (a0) - inc4 a0 - mov d1, (a0) - inc4 a0 - mov d1, (a0) - inc4 a0 - add -16, a1 - cmp 15, a1 - lhi -.L36: - cmp 3, a1 - bls .L41 - setlb - mov d1, (a0) - inc4 a0 - add -4, a1 - cmp 3, a1 - lhi -.L41: -#endif - cmp 0, a1 - beq .Lepilogue - setlb - movbu d2, (a0) - inc a0 - sub 1, a1 - lne -.Lepilogue: - mov d3,a0 - ret [d2,d3,a2,a3], 16 -.Lend_of_memset: - .size _memset, .Lend_of_memset - _memset - - .section .debug_frame,"",@progbits -.Lstart_of_debug_frame: - # Common Information Entry (CIE) - .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length -.Lstart_of_CIE: - .4byte 0xffffffff # CIE Identifier Tag - .byte 0x1 # CIE Version - .ascii "\0" # CIE Augmentation - .uleb128 0x1 # CIE Code Alignment Factor - .sleb128 -4 # CIE Data Alignment Factor - .byte 0x32 # CIE RA Column - .byte 0xc # DW_CFA_def_cfa - .uleb128 0x9 - .uleb128 0x0 - .byte 0xb2 # DW_CFA_offset, column 0x32 - .uleb128 0x0 - .align 2 -.Lend_of_CIE: - - # Frame Description Entry (FDE) - .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length -.Lstart_of_FDE: - .4byte .Lstart_of_debug_frame # FDE CIE offset - .4byte _memset # FDE initial location - .4byte .Lend_of_memset - _memset # FDE address range - .byte 0x4 # DW_CFA_advance_loc4 - .4byte .Lend_of_prologue - _memset - .byte 0xe # DW_CFA_def_cfa_offset - .uleb128 0x4 - .byte 0x87 # DW_CFA_offset, column 0x7 - .uleb128 0x1 - .align 2 -.Lend_of_FDE: diff --git a/lib/machine/mn10300/setjmp.S b/lib/machine/mn10300/setjmp.S deleted file mode 100644 index 1444449..0000000 --- a/lib/machine/mn10300/setjmp.S +++ /dev/null @@ -1,92 +0,0 @@ - .file "setjmp.S" - - .section .text - .align 1 - .global _setjmp -#ifdef __AM33__ -#ifdef __AM33_2__ - .am33_2 -#else - .am33 -#endif -#endif -_setjmp: - mov d0,a0 - mov d2,(0,a0) - mov d3,(4,a0) - mov mdr,d1 - mov d1,(8,a0) - mov a2,(12,a0) - mov a3,(16,a0) - mov sp,a1 - mov a1,(20,a0) -#ifdef __AM33__ - add 24,a0 - mov r4,(a0+) - mov r5,(a0+) - mov r6,(a0+) - mov r7,(a0+) -#ifdef __AM33_2__ - fmov fs4,(a0+) - fmov fs5,(a0+) - fmov fs6,(a0+) - fmov fs7,(a0+) - fmov fs8,(a0+) - fmov fs9,(a0+) - fmov fs10,(a0+) - fmov fs11,(a0+) - fmov fs12,(a0+) - fmov fs13,(a0+) - fmov fs14,(a0+) - fmov fs15,(a0+) - fmov fs16,(a0+) - fmov fs17,(a0+) - fmov fs18,(a0+) - fmov fs19,(a0+) -#endif -#endif - sub d0,d0 - rets - - .global _longjmp -_longjmp: - mov d0,a0 - mov (8,a0),d2 - mov d2,mdr - mov (0,a0),d2 - mov (4,a0),d3 - mov (12,a0),a2 - mov (16,a0),a3 - mov (20,a0),a1 - mov a1,sp -#ifdef __AM33__ - add 24,a0 - mov (a0+),r4 - mov (a0+),r5 - mov (a0+),r6 - mov (a0+),r7 -#ifdef __AM33_2__ - fmov (a0+),fs4 - fmov (a0+),fs5 - fmov (a0+),fs6 - fmov (a0+),fs7 - fmov (a0+),fs8 - fmov (a0+),fs9 - fmov (a0+),fs10 - fmov (a0+),fs11 - fmov (a0+),fs12 - fmov (a0+),fs13 - fmov (a0+),fs14 - fmov (a0+),fs15 - fmov (a0+),fs16 - fmov (a0+),fs17 - fmov (a0+),fs18 - fmov (a0+),fs19 -#endif -#endif - cmp 0,d1 - bne L1 - mov 1,d1 -L1: - mov d1,d0 - retf [],0 diff --git a/lib/machine/mn10300/strchr.S b/lib/machine/mn10300/strchr.S deleted file mode 100644 index 21d9dc1..0000000 --- a/lib/machine/mn10300/strchr.S +++ /dev/null @@ -1,121 +0,0 @@ - .file "strchr.S" - - .section .text - .global _strchr - .type _strchr,@function -_strchr: - movm [d2,d3,a2,a3],(sp) - add -12,sp -.Lend_of_prologue: - mov d0,a1 - movbu d1,(7,sp) -#ifndef __OPTIMIZE_SIZE__ - btst 3,d0 - bne .L20 - clr d0 - setlb - mov sp,a2 - mov d0,d3 - add d3,a2 - mov a2,a0 - add 12,a0 - movbu (7,sp),d3 - movbu d3,(-4,a0) - inc d0 - cmp 3,d0 - lls - mov a1,a0 - mov -16843009,a1 - mov (a0),d2 - mov a1,d1 - add d2,d1 - mov d2,d0 - not d0 - and d0,d1 - mov -2139062144,d3 - mov d3,(0,sp) - btst -2139062144,d1 - bne .L27 - jmp .L38 -.L28: - inc4 a0 - mov (a0),d2 - mov a1,d1 - add d2,d1 - mov d2,d0 - not d0 - and d0,d1 - mov (0,sp),d3 - and d3,d1 - bne .L27 -.L38: - mov (8,sp),d0 - xor d2,d0 - mov a1,d1 - add d0,d1 - not d0 - and d0,d1 - and d3,d1 - beq .L28 -.L27: - mov a0,a1 -.L20: -#endif - movbu (a1),d0 - cmp 0,d0 - beq .L32 - movbu (7,sp),d1 - setlb - cmp d1,d0 - beq .L36 - inc a1 - movbu (a1),d0 - cmp 0,d0 - lne -.L32: - movbu (7,sp),d0 - movbu (a1),d3 - cmp d0,d3 - beq .L36 - mov 0,a0 - jmp .Lepilogue -.L36: - mov a1,a0 -.Lepilogue: - ret [d2,d3,a2,a3],28 -.Lend_of_strchr: - .size _strchr, .Lend_of_strchr - _strchr - - .section .debug_frame,"",@progbits -.Lstart_of_debug_frame: - # Common Information Entry (CIE) - .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length -.Lstart_of_CIE: - .4byte 0xffffffff # CIE Identifier Tag - .byte 0x1 # CIE Version - .ascii "\0" # CIE Augmentation - .uleb128 0x1 # CIE Code Alignment Factor - .sleb128 -4 # CIE Data Alignment Factor - .byte 0x32 # CIE RA Column - .byte 0xc # DW_CFA_def_cfa - .uleb128 0x9 - .uleb128 0x0 - .byte 0xb2 # DW_CFA_offset, column 0x32 - .uleb128 0x0 - .align 2 -.Lend_of_CIE: - - # Frame Description Entry (FDE) - .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length -.Lstart_of_FDE: - .4byte .Lstart_of_debug_frame # FDE CIE offset - .4byte _strchr # FDE initial location - .4byte .Lend_of_strchr - _strchr # FDE address range - .byte 0x4 # DW_CFA_advance_loc4 - .4byte .Lend_of_prologue - _strchr - .byte 0xe # DW_CFA_def_cfa_offset - .uleb128 0x4 - .byte 0x87 # DW_CFA_offset, column 0x7 - .uleb128 0x1 - .align 2 -.Lend_of_FDE: diff --git a/lib/machine/mn10300/strcmp.S b/lib/machine/mn10300/strcmp.S deleted file mode 100644 index c9c245b..0000000 --- a/lib/machine/mn10300/strcmp.S +++ /dev/null @@ -1,88 +0,0 @@ - .file "strcmp.S" - - .section .text - .global _strcmp - .type _strcmp,@function -_strcmp: - movm [d2,d3,a2,a3],(sp) -.Lend_of_prologue: - mov d0,a0 - mov d1,a1 -#ifndef __OPTIMIZE_SIZE__ - or d1,d0 - btst 3,d0 - bne .L11 - mov (a0),d1 - mov (a1),d0 - cmp d0,d1 - bne .L11 - mov -16843009,d3 - setlb - mov (a0),d0 - mov d3,d1 - add d0,d1 - not d0 - and d0,d1 - and -2139062144,d1 - beq .L6 - clr d0 - jmp .Lepilogue -.L6: - inc4 a0 - inc4 a1 - mov (a0),d1 - mov (a1),d0 - cmp d0,d1 - leq -.L11: -#endif - setlb - movbu (a1),d2 - movbu (a0),d0 - cmp 0,d0 - beq .L9 - cmp d2,d0 - bne .L9 - inc a0 - inc a1 - lra -.L9: - sub d2,d0 -.Lepilogue: - ret [d2,d3,a2,a3],16 -.Lend_of_strcmp: - .size _strcmp, .Lend_of_strcmp - _strcmp - - .section .debug_frame,"",@progbits -.Lstart_of_debug_frame: - # Common Information Entry (CIE) - .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length -.Lstart_of_CIE: - .4byte 0xffffffff # CIE Identifier Tag - .byte 0x1 # CIE Version - .ascii "\0" # CIE Augmentation - .uleb128 0x1 # CIE Code Alignment Factor - .sleb128 -4 # CIE Data Alignment Factor - .byte 0x32 # CIE RA Column - .byte 0xc # DW_CFA_def_cfa - .uleb128 0x9 - .uleb128 0x0 - .byte 0xb2 # DW_CFA_offset, column 0x32 - .uleb128 0x0 - .align 2 -.Lend_of_CIE: - - # Frame Description Entry (FDE) - .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length -.Lstart_of_FDE: - .4byte .Lstart_of_debug_frame # FDE CIE offset - .4byte _strcmp # FDE initial location - .4byte .Lend_of_strcmp - _strcmp # FDE address range - .byte 0x4 # DW_CFA_advance_loc4 - .4byte .Lend_of_prologue - _strcmp - .byte 0xe # DW_CFA_def_cfa_offset - .uleb128 0x4 - .byte 0x87 # DW_CFA_offset, column 0x7 - .uleb128 0x1 - .align 2 -.Lend_of_FDE: diff --git a/lib/machine/mn10300/strcpy.S b/lib/machine/mn10300/strcpy.S deleted file mode 100644 index 8afb0e0..0000000 --- a/lib/machine/mn10300/strcpy.S +++ /dev/null @@ -1,85 +0,0 @@ - .file "strcpy.S" - - .section .text - .global _strcpy - .type _strcpy,@function -_strcpy: - movm [d2,d3,a2,a3],(sp) -.Lend_of_prologue: - mov d0,d3 - mov d1,a0 - mov d3,a1 - mov a0,d0 -#ifndef __OPTIMIZE_SIZE__ - or d3,d0 - btst 3,d0 - bne .L2 - mov (a0),d0 - mov -16843009,a2 - mov a2,d1 - add d0,d1 - not d0 - and d0,d1 - mov -2139062144,d2 - btst -2139062144,d1 - bne .L2 - setlb - mov (a0),d0 - mov d0,(a1) - inc4 a0 - inc4 a1 - mov (a0),d0 - mov a2,d1 - add d0,d1 - not d0 - and d0,d1 - and d2,d1 - leq -.L2: -#endif - setlb - movbu (a0),d0 - movbu d0,(a1) - inc a0 - inc a1 - cmp 0,d0 - lne - mov d3,a0 -.Lepilogue: - ret [d2,d3,a2,a3],16 -.Lend_of_strcpy: - .size _strcpy, .Lend_of_strcpy - _strcpy - - .section .debug_frame,"",@progbits -.Lstart_of_debug_frame: - # Common Information Entry (CIE) - .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length -.Lstart_of_CIE: - .4byte 0xffffffff # CIE Identifier Tag - .byte 0x1 # CIE Version - .ascii "\0" # CIE Augmentation - .uleb128 0x1 # CIE Code Alignment Factor - .sleb128 -4 # CIE Data Alignment Factor - .byte 0x32 # CIE RA Column - .byte 0xc # DW_CFA_def_cfa - .uleb128 0x9 - .uleb128 0x0 - .byte 0xb2 # DW_CFA_offset, column 0x32 - .uleb128 0x0 - .align 2 -.Lend_of_CIE: - - # Frame Description Entry (FDE) - .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length -.Lstart_of_FDE: - .4byte .Lstart_of_debug_frame # FDE CIE offset - .4byte _strcpy # FDE initial location - .4byte .Lend_of_strcpy - _strcpy # FDE address range - .byte 0x4 # DW_CFA_advance_loc4 - .4byte .Lend_of_prologue - _strcpy - .byte 0xe # DW_CFA_def_cfa_offset - .uleb128 0x4 - .byte 0x87 # DW_CFA_offset, column 0x7 - .uleb128 0x1 - .align 2 -.Lend_of_FDE: diff --git a/lib/machine/mn10300/strlen.S b/lib/machine/mn10300/strlen.S deleted file mode 100644 index 62cc972..0000000 --- a/lib/machine/mn10300/strlen.S +++ /dev/null @@ -1,79 +0,0 @@ - .file "strlen.S" - - .section .text - .global _strlen - .type _strlen,@function -_strlen: - movm [d2,d3,a2,a3],(sp) -.Lend_of_prologue: - mov d0,a0 - mov a0,a2 -#ifndef __OPTIMIZE_SIZE__ - btst 3,d0 - bne .L21 - mov (a0),d0 - mov -16843009,a1 - mov a1,d1 - add d0,d1 - not d0 - and d0,d1 - mov -2139062144,d2 - btst -2139062144,d1 - bne .L21 - setlb - inc4 a0 - mov (a0),d0 - mov a1,d1 - add d0,d1 - not d0 - and d0,d1 - and d2,d1 - leq - jmp .L21 -#endif -.L19: - inc a0 -.L21: - movbu (a0),d3 - cmp 0,d3 - bne .L19 - sub a2,a0 - mov a0,d0 -.Lepilogue: - ret [d2,d3,a2,a3],16 -.Lend_of_strlen: - .size _strlen, .Lend_of_strlen - _strlen - - .section .debug_frame,"",@progbits -.Lstart_of_debug_frame: - # Common Information Entry (CIE) - .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length -.Lstart_of_CIE: - .4byte 0xffffffff # CIE Identifier Tag - .byte 0x1 # CIE Version - .ascii "\0" # CIE Augmentation - .uleb128 0x1 # CIE Code Alignment Factor - .sleb128 -4 # CIE Data Alignment Factor - .byte 0x32 # CIE RA Column - .byte 0xc # DW_CFA_def_cfa - .uleb128 0x9 - .uleb128 0x0 - .byte 0xb2 # DW_CFA_offset, column 0x32 - .uleb128 0x0 - .align 2 -.Lend_of_CIE: - - # Frame Description Entry (FDE) - .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length -.Lstart_of_FDE: - .4byte .Lstart_of_debug_frame # FDE CIE offset - .4byte _strlen # FDE initial location - .4byte .Lend_of_strlen - _strlen # FDE address range - .byte 0x4 # DW_CFA_advance_loc4 - .4byte .Lend_of_prologue - _strlen - .byte 0xe # DW_CFA_def_cfa_offset - .uleb128 0x4 - .byte 0x87 # DW_CFA_offset, column 0x7 - .uleb128 0x1 - .align 2 -.Lend_of_FDE: diff --git a/lib/machine/moxie/Makefile.inc b/lib/machine/moxie/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/moxie/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/moxie/setjmp.S b/lib/machine/moxie/setjmp.S deleted file mode 100644 index 014368d..0000000 --- a/lib/machine/moxie/setjmp.S +++ /dev/null @@ -1,76 +0,0 @@ -/* A setjmp.c for Moxie - Copyright (C) 2009, 2019 Anthony Green - - The authors hereby grant permission to use, copy, modify, distribute, - and license this software and its documentation for any purpose, provided - that existing copyright notices are retained in all copies and that this - notice is included verbatim in any distributions. No written agreement, - license, or royalty fee is required for any of the authorized uses. - Modifications to this software may be copyrighted by their authors - and need not follow the licensing terms described here, provided that - the new terms are clearly indicated on the first page of each file where - they apply. */ - -# setjmp/longjmp for moxie. The jmpbuf looks like this: -# -# Register jmpbuf offset -# $r6 0x00 -# $r7 0x04 -# $r8 0x08 -# $r9 0x0c -# $r10 0x10 -# $fp 0x14 -# $sp 0x18 -# stack frame fp 0x1c -# stack frame ra 0x20 -# stack frame sc 0x25 - - .text - .global setjmp - .type setjmp,@function -setjmp: - st.l ($r0), $r6 - sto.l 0x04($r0), $r7 - sto.l 0x08($r0), $r8 - sto.l 0x0c($r0), $r9 - sto.l 0x10($r0), $r10 - sto.l 0x14($r0), $sp - sto.l 0x18($r0), $fp - ldo.l $r1, 0x00($fp) - sto.l 0x1c($r0), $r1 - ldo.l $r1, 0x04($fp) - sto.l 0x20($r0), $r1 - ldo.l $r1, 0x08($fp) - sto.l 0x24($r0), $r1 - xor $r0, $r0 - ret -.Lend1: - .size setjmp,.Lend1-setjmp - - .global longjmp - .type longjmp,@function -longjmp: - ldo.l $r6, 0x00($r0) - ldo.l $r7, 0x04($r0) - ldo.l $r8, 0x08($r0) - ldo.l $r9, 0x0c($r0) - ldo.l $r10, 0x10($r0) - ldo.l $sp, 0x14($r0) - ldo.l $fp, 0x18($r0) - ldo.l $r2, 0x1c($r0) - sto.l 0x0($fp), $r2 - ldo.l $r2, 0x20($r0) - sto.l 0x4($fp), $r2 - ldo.l $r2, 0x24($r0) - sto.l 0x8($fp), $r2 - ldo.l $r2, 0x08($r0) - mov $r0, $r1 - xor $r2, $r2 - cmp $r0, $r2 - beq .Lreturn1 - ret -.Lreturn1: - inc $r0, 1 - ret -.Lend2: - .size longjmp,.Lend2-longjmp diff --git a/lib/machine/msp430/Makefile.inc b/lib/machine/msp430/Makefile.inc deleted file mode 100644 index 0571a60..0000000 --- a/lib/machine/msp430/Makefile.inc +++ /dev/null @@ -1,8 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S - -## tiny-printf.c and tiny-puts.c are derived from the nano printf/puts -## functions, so other supporting nano functions are required, and the tiny -## printf/puts will not work without them. -if NEWLIB_NANO_FORMATTED_IO -libc_a_SOURCES += %D%/tiny-puts.c %D%/tiny-printf.c -endif diff --git a/lib/machine/msp430/setjmp.S b/lib/machine/msp430/setjmp.S deleted file mode 100644 index f3deefa..0000000 --- a/lib/machine/msp430/setjmp.S +++ /dev/null @@ -1,107 +0,0 @@ -/* Copyright (c) 2013 Red Hat, Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the BSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. Any Red Hat trademarks that are - incorporated in the source code or documentation are not subject to - the BSD License and may only be used or replicated with the express - permission of Red Hat, Inc. -*/ - -# setjmp/longjmp for msp430. The jmpbuf looks like this: -# -# Register Jmpbuf offset -# small large -# r0 (pc) 0x00 0x00 -# r1 (sp) 0x02 0x04 -# r4 0x04 0x08 -# r5 0x06 0x0c -# r6 0x08 0x10 -# r7 0x0a 0x14 -# r8 0x0c 0x18 -# r9 0x0e 0x1c -# r10 0x10 0x20 - - .text - .global setjmp -setjmp: - ; Upon entry r12 points to the jump buffer. - ; Returns 0 to caller. - -#if defined __MSP430X_LARGE__ - mova @r1, r13 - mova r13, 0(r12) - mova r1, 4(r12) - mova r4, 8(r12) - mova r5, 12(r12) - mova r6, 16(r12) - mova r7, 20(r12) - mova r8, 24(r12) - mova r9, 28(r12) - mova r10, 32(r12) - clr r12 - reta -#else - ;; Get the return address off the stack - mov.w @r1, r13 - mov.w r13, 0(r12) - mov.w r1, 2(r12) - mov.w r4, 4(r12) - mov.w r5, 6(r12) - mov.w r6, 8(r12) - mov.w r7, 10(r12) - mov.w r8, 12(r12) - mov.w r9, 14(r12) - mov.w r10, 16(r12) - clr r12 - ret -#endif - .size setjmp , . - setjmp - - - .global longjmp -longjmp: - ; Upon entry r12 points to the jump buffer and - ; r13 contains the value to be returned by setjmp. - -#if defined __MSP430X_LARGE__ - mova @r12+, r14 - mova @r12+, r1 - mova @r12+, r4 - mova @r12+, r5 - mova @r12+, r6 - mova @r12+, r7 - mova @r12+, r8 - mova @r12+, r9 - mova @r12+, r10 -#else - mov.w @r12+, r14 - mov.w @r12+, r1 - mov.w @r12+, r4 - mov.w @r12+, r5 - mov.w @r12+, r6 - mov.w @r12+, r7 - mov.w @r12+, r8 - mov.w @r12+, r9 - mov.w @r12+, r10 -#endif - ; If caller attempts to return 0, return 1 instead. - cmp.w #0, r13 - jne .Lnot_zero - mov.w #1, r13 -.Lnot_zero: - mov.w r13, r12 - -#if defined __MSP430X_LARGE__ - adda #4, r1 - mova r14, r0 -#else - add.w #2, r1 - mov.w r14, r0 -#endif - .size longjmp , . - longjmp - diff --git a/lib/machine/msp430/tiny-printf.c b/lib/machine/msp430/tiny-printf.c deleted file mode 100644 index f2412a0..0000000 --- a/lib/machine/msp430/tiny-printf.c +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -/*static char *sccsid = "from: @(#)vfprintf.c 5.50 (Berkeley) 12/16/92";*/ -static char *rcsid = "$Id$"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "../../stdio/local.h" -#include "../../stdlib/local.h" -#include "../../stdio/fvwrite.h" -#include "../../stdio/nano-vfprintf_local.h" - -/* Bypass *putc* fns called by the default _sfputs_r to save code size. - Among other things, this means there is no buffering of the string before - it is sent to <>, but <> does its own buffering so we won't - lose chars when buf is larger than sizeof(CIOBUF). */ -int -__tiny__sfputs_r (struct _reent *ptr, - FILE *fp, - const char *buf, - size_t len) -{ - return write (1, buf, len); -} - -/* VFPRINTF_R from nano-vfprintf.c but: - - No support for reentrancy - - No support for streams - - __SINGLE_THREAD__ assumed. - - No STRING_ONLY variant (either way the formatted string would end up - being sent to <> via <<__tiny__sfputs_r>>. - Basically, format the string as normal, and send it to write. */ -int -__tiny_vfprintf_r (struct _reent *data, - FILE * fp, - const char *fmt0, - va_list ap) -{ - register char *fmt; /* Format string. */ - register int n, m; /* Handy integers (short term usage). */ - register char *cp; /* Handy char pointer (short term usage). */ - const char *flag_chars; - struct _prt_data_t prt_data; /* All data for decoding format string. */ - va_list ap_copy; - - /* Output function pointer. */ - int (*pfunc)(struct _reent *, FILE *, const char *, size_t len); - - pfunc = __tiny__sfputs_r; - - fmt = (char *)fmt0; - prt_data.ret = 0; - prt_data.blank = ' '; - prt_data.zero = '0'; - - /* GCC PR 14577 at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14557 */ - va_copy (ap_copy, ap); - - /* Scan the format for conversions (`%' character). */ - for (;;) - { - cp = fmt; - while (*fmt != '\0' && *fmt != '%') - fmt += 1; - - if ((m = fmt - cp) != 0) - { - PRINT (cp, m); - prt_data.ret += m; - } - if (*fmt == '\0') - goto done; - - fmt++; /* Skip over '%'. */ - - prt_data.flags = 0; - prt_data.width = 0; - prt_data.prec = -1; - prt_data.dprec = 0; - prt_data.l_buf[0] = '\0'; -#ifdef FLOATING_POINT - prt_data.lead = 0; -#endif - /* The flags. */ - /* - * ``Note that 0 is taken as a flag, not as the - * beginning of a field width.'' - * -- ANSI X3J11 - */ - flag_chars = "#-0+ "; - for (; cp = memchr (flag_chars, *fmt, 5); fmt++) - prt_data.flags |= (1 << (cp - flag_chars)); - - if (prt_data.flags & SPACESGN) - prt_data.l_buf[0] = ' '; - - /* - * ``If the space and + flags both appear, the space - * flag will be ignored.'' - * -- ANSI X3J11 - */ - if (prt_data.flags & PLUSSGN) - prt_data.l_buf[0] = '+'; - - /* The width. */ - if (*fmt == '*') - { - /* - * ``A negative field width argument is taken as a - * - flag followed by a positive field width.'' - * -- ANSI X3J11 - * They don't exclude field widths read from args. - */ - prt_data.width = GET_ARG (n, ap_copy, int); - if (prt_data.width < 0) - { - prt_data.width = -prt_data.width; - prt_data.flags |= LADJUST; - } - fmt++; - } - else - { - for (; is_digit (*fmt); fmt++) - prt_data.width = 10 * prt_data.width + to_digit (*fmt); - } - - /* The precision. */ - if (*fmt == '.') - { - fmt++; - if (*fmt == '*') - { - fmt++; - prt_data.prec = GET_ARG (n, ap_copy, int); - if (prt_data.prec < 0) - prt_data.prec = -1; - } - else - { - prt_data.prec = 0; - for (; is_digit (*fmt); fmt++) - prt_data.prec = 10 * prt_data.prec + to_digit (*fmt); - } - } - - /* The length modifiers. */ - flag_chars = "hlL"; - if ((cp = memchr (flag_chars, *fmt, 3)) != NULL) - { - prt_data.flags |= (SHORTINT << (cp - flag_chars)); - fmt++; - } - - /* The conversion specifiers. */ - prt_data.code = *fmt++; - cp = memchr ("efgEFG", prt_data.code, 6); -#ifdef FLOATING_POINT - /* If cp is not NULL, we are facing FLOATING POINT NUMBER. */ - if (cp) - { - /* Consume floating point argument if _printf_float is not - linked. */ - if (_printf_float == NULL) - { - if (prt_data.flags & LONGDBL) - GET_ARG (N, ap_copy, _LONG_DOUBLE); - else - GET_ARG (N, ap_copy, double); - } - else - n = _printf_float (data, &prt_data, fp, pfunc, &ap_copy); - } - else -#endif - n = _printf_i (data, &prt_data, fp, pfunc, &ap_copy); - - if (n == -1) - goto error; - - prt_data.ret += n; - } -done: -error: - va_end (ap_copy); - return (__sferror (fp) ? EOF : prt_data.ret); -} - -int -__wrap_printf (const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - struct _reent *ptr = _REENT; - - va_start (ap, fmt); - ret = __tiny_vfprintf_r (ptr, _stdout_r (ptr), fmt, ap); - va_end (ap); - return ret; -} - -int printf (const char *__restrict fmt, ...) __attribute__ ((weak, alias ("__wrap_printf"))); diff --git a/lib/machine/msp430/tiny-puts.c b/lib/machine/msp430/tiny-puts.c deleted file mode 100644 index 6a59f23..0000000 --- a/lib/machine/msp430/tiny-puts.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include - -int write (int fd, const char *buf, int len); - -int -__wrap_puts (const char * s) -{ - int res = write (1, s, strlen (s)); - if (res == EOF) - { - write (1, "\n", 1); - return EOF; - } - return write (1, "\n", 1); -} - -int puts (const char * s) __attribute__ ((weak, alias ("__wrap_puts"))); diff --git a/lib/machine/mt/Makefile.inc b/lib/machine/mt/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/mt/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/mt/setjmp.S b/lib/machine/mt/setjmp.S deleted file mode 100644 index e93bd33..0000000 --- a/lib/machine/mt/setjmp.S +++ /dev/null @@ -1,99 +0,0 @@ -# setjmp/longjmp for mt. -# -# The jmpbuf looks like this: -# -# Register jmpbuf offset -# R0 --- -- -# R1 0x4 4 -# R2 0x8 8 -# R3 0xc 12 -# R4 0x10 16 -# R5 0x14 20 -# R6 0x18 24 -# R7 0x1c 28 -# R8 0x20 32 -# R9 ---- -- -# R10 ---- -- -# R11 0x2c 44 -# R12 0x30 48 -# R13 0x34 52 -# R14 0x38 56 -# R15 0x3c 60 -# -# R1 contains the pointer to jmpbuf - .text - .global setjmp - .type setjmp ,@function -setjmp: - - stw r1, r1, #4 - or r0, r0, r0 - stw r2, r1, #8 - or r0, r0, r0 - stw r3, r1, #12 - or r0, r0, r0 - stw r4, r1, #16 - or r0, r0, r0 - stw r5, r1, #20 - or r0, r0, r0 - stw r6, r1, #24 - or r0, r0, r0 - stw r7, r1, #28 - or r0, r0, r0 - stw r8, r1, #32 - or r0, r0, r0 - stw r11, r1, #44 - or r0, r0, r0 - stw r12, r1, #48 - or r0, r0, r0 - stw r13, r1, #52 - or r0, r0, r0 - stw r14, r1, #56 - or r0, r0, r0 - stw r15, r1, #60 - - jal r0, r14 - addi r11, r0, #0 -.Lend1: - .size setjmp,.Lend1-setjmp - - .global longjmp - .type longjmp,@function -longjmp: - or r9, r1, r1 - or r11, r2, r2 - ldw r1, r1, #4 - or r0, r0, r0 - ldw r2, r1, #8 - or r0, r0, r0 - ldw r3, r1, #12 - or r0, r0, r0 - ldw r4, r1, #16 - or r0, r0, r0 - ldw r5, r1, #20 - or r0, r0, r0 - ldw r6, r1, #24 - or r0, r0, r0 - ldw r7, r1, #28 - or r0, r0, r0 - ldw r8, r1, #32 - or r0, r0, r0 - - - ldw r12, r1, #48 - or r0, r0, r0 - ldw r13, r1, #52 - or r0, r0, r0 - ldw r14, r1, #56 - or r0, r0, r0 - ldw r15, r1, #60 - - brne r0, r11, .L01 - or r0, r0, r0 - - addi r11, r0, #1 -.L01: - jal r0, r14 - or r0, r0, r0 -.Lend2: - .size longjmp,.Lend2-longjmp2 diff --git a/lib/machine/nds32/Makefile.inc b/lib/machine/nds32/Makefile.inc deleted file mode 100644 index b0fdfa0..0000000 --- a/lib/machine/nds32/Makefile.inc +++ /dev/null @@ -1,8 +0,0 @@ -libc_a_SOURCES += \ - %D%/abort.c \ - %D%/setjmp.S \ - %D%/strcmp.S \ - %D%/strcpy.S -if !IS_NDS32_ISA_V3M -libc_a_SOURCES += %D%/memcpy.S %D%/memset.S -endif diff --git a/lib/machine/nds32/abort.c b/lib/machine/nds32/abort.c deleted file mode 100644 index 5fa0b6e..0000000 --- a/lib/machine/nds32/abort.c +++ /dev/null @@ -1,38 +0,0 @@ -/* -FUNCTION -<>---abnormal termination of a program - -INDEX - abort - -SYNOPSIS - #include - void abort(void); - -DESCRIPTION -Use <> to signal that your program has detected a condition it -cannot deal with. Normally, <> ends your program's execution. - -In general implementation, <> raises the exception <>. -But for nds32 target, currently it is not necessary for MCU platform. -We can just call <<_exit>> to terminate program. - -RETURNS -<> does not return to its caller. - -PORTABILITY -ANSI C requires <>. - -Supporting OS subroutines required: <<_exit>>. -*/ - -#include - -void -abort (void) -{ - while (1) - { - _exit (1); - } -} diff --git a/lib/machine/nds32/acinclude.m4 b/lib/machine/nds32/acinclude.m4 deleted file mode 100644 index ae8ea5d..0000000 --- a/lib/machine/nds32/acinclude.m4 +++ /dev/null @@ -1,11 +0,0 @@ -if test "${machine_dir}" = "nds32"; then - dnl Use builtin macro to detect if this is for "AndeStar ISA V3m". - AC_CACHE_CHECK([for nds32 V3M ISA], newlib_cv_nds32_isa_v3m, [dnl - AC_PREPROC_IFELSE([AC_LANG_PROGRAM( -[[#ifdef __NDS32_ISA_V3M__ -# error "This is nds32_isa_v3m." -#endif -]])], [newlib_cv_nds32_isa_v3m="no"], [newlib_cv_nds32_isa_v3m="yes"])]) -fi - -AM_CONDITIONAL(IS_NDS32_ISA_V3M, test "$newlib_cv_nds32_isa_v3m" = "yes") diff --git a/lib/machine/nds32/memcpy.S b/lib/machine/nds32/memcpy.S deleted file mode 100644 index f27858c..0000000 --- a/lib/machine/nds32/memcpy.S +++ /dev/null @@ -1,77 +0,0 @@ -/* -Copyright (c) 2013 Andes Technology Corporation. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of the company may not be used to endorse or promote - products derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Function: - memcpy - copy memory regions - Syntax: - void *memcpy(void *s1, const void *s2, size_t n); - Description: - The memcpy function copies n characters from the object pointed to - by s2 into the object pointed to by s1. If copying takes place - between objects that overlap, the behavior is undeï¬ned. - Return value: - The memcpy function returns the value of s1. -*/ - .text - .align 2 - .globl memcpy - .type memcpy, @function -memcpy: - /* Corner cases. If *s1 equals *s2 - or size_t is zero, just go return. */ - beq $r0, $r1, .Lend_memcpy - beqz $r2, .Lend_memcpy - - /* Keep *s1 as return value. - Set $r3 as how many words to copy. - Set $r2 as how many bytes are less than a word. */ - move $r5, $r0 - srli $r3, $r2, 2 - andi $r2, $r2, 3 - beqz $r3, .Lbyte_copy - -.Lword_copy: - /* Do the word copy $r3 times. Then, do the byte copy $r2 times. */ - lmw.bim $r4, [$r1], $r4, 0 - addi $r3, $r3, -1 - smw.bim $r4, [$r5], $r4, 0 - bnez $r3, .Lword_copy /* Loop again ? */ - beqz $r2, .Lend_memcpy /* Fall THRU or go return ? */ - -.Lbyte_copy: - /* Do the byte copy $r2 times. */ - lbi.bi $r4, [$r1], 1 - addi $r2, $r2, -1 - sbi.bi $r4, [$r5], 1 - bnez $r2, .Lbyte_copy /* Loop again ? */ - -.Lend_memcpy: - ret - .size memcpy, .-memcpy diff --git a/lib/machine/nds32/memset.S b/lib/machine/nds32/memset.S deleted file mode 100644 index 51e5ff2..0000000 --- a/lib/machine/nds32/memset.S +++ /dev/null @@ -1,80 +0,0 @@ -/* -Copyright (c) 2013 Andes Technology Corporation. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of the company may not be used to endorse or promote - products derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Function: - memset - fill memory with a constant byte - Syntax: - void *memset(void *s, int c, size_t n); - Description: - The memset function copies the value of c (converted to an unsigned char) - into each of the first n characters of the object pointed to by s. - Return value: - The memset function returns the value of s. -*/ - .text - .align 2 - .globl memset - .type memset, @function -memset: - /* Corner case. If n is zero, just go return. */ - beqz $r2, .Lend_memset - - /* Keep $r0 as return value. - Set $r4 as how many words to copy. - Set $r2 as how many bytes are less than a word. */ - move $r5, $r0 - srli $r4, $r2, 2 - andi $r2, $r2, 3 - beqz $r4, .Lbyte_set - - /* Set $r1 a word-size pattern composed of the value of c - (converted to an unsigned char). Convert ??????ab to abababab. */ - andi $r1, $r1, 0xff /* Set $r1 = 000000ab. */ - slli $r3, $r1, 8 /* Set $r3 = 0000ab00. */ - or $r1, $r1, $r3 /* Set $r1 = 0000abab. */ - slli $r3, $r1, 16 /* Set $r3 = abab0000. */ - or $r1, $r1, $r3 /* Set $r1 = abababab. */ - -.Lword_set: - /* Do the word set $r4 times. Then, do the byte set $r2 times. */ - addi $r4, $r4, -1 - smw.bim $r1, [$r5], $r1 /* Set a word-size. */ - bnez $r4, .Lword_set /* Loop again ? */ - beqz $r2, .Lend_memset /* Fall THRU or go return ? */ - -.Lbyte_set: - /* Do the byte set $r2 times. */ - addi $r2, $r2, -1 - sbi.p $r1, [$r5], 1 /* Set a byte-size. */ - bnez $r2, .Lbyte_set /* Loop again ? */ - -.Lend_memset: - ret - .size memset, .-memset diff --git a/lib/machine/nds32/setjmp.S b/lib/machine/nds32/setjmp.S deleted file mode 100644 index 7197c86..0000000 --- a/lib/machine/nds32/setjmp.S +++ /dev/null @@ -1,166 +0,0 @@ -/* -Copyright (c) 2013 Andes Technology Corporation. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of the company may not be used to endorse or promote - products derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -The setjmp/longjmp for nds32. -The usage of thirty-two 32-bit General Purpose Registers (GPR): - $r28 : $fp - $r29 : $gp - $r30 : $lp - $r31 : $sp - - caller-save registers: $r0 ~ $r5, $r16 ~ $r23 - callee-save registers: $r6 ~ $r10, $r11 ~ $r14 - reserved for assembler : $r15 - reserved for other use : $r24, $r25, $r26, $r27 - -Save all callee-save registers and $fp, $gp, $lp and $sp is enough in theory. -For debugging issue, the layout of jum_buf in here should be in sync with GDB. -The $r16 ~ $r19 are used to store D0/D1, keep them for backward-compatible. -*/ - -/* int setjmp(jmp_buf env); */ - .text - .align 2 - .global setjmp - .type setjmp, @function -setjmp: -#if __NDS32_REDUCED_REGS__ - smw.bim $r6, [$r0], $r10, #0b0000 - addi $r0, $r0, #32 /* Leave room to keep jum_buf all the same. */ - smw.bim $r31, [$r0], $r31, #0b1111 -#else - smw.bim $r6, [$r0], $r14, #0b0000 - smw.bim $r16, [$r0], $r19, #0b1111 -#endif - -#if __NDS32_EXT_FPU_SP__ || __NDS32_EXT_FPU_DP__ - - /* Extract $fpcfg.freg (b[3:2]), then save into jmp_buf. */ - fmfcfg $r2 - slli $r2, $r2, #28 - srli $r2, $r2, #30 - swi.bi $r2, [$r0], #4 - - /* Make sure $r0 is double-word-aligned. */ - addi $r0, $r0, #7 - bitci $r0, $r0, #7 - - /* Case switch according to $fpcfg.freg */ - beqz $r2, .LCFG0_save /* Branch if $fpcfg.freg = 0b00. */ - xori $r15, $r2, #0b10 - beqz $r15, .LCFG2_save /* Branch $fpcfg.freg = 0b10. */ - srli $r2, $r2, #0b01 - beqz $r2, .LCFG1_save /* Branch if $fpcfg.freg = 0b01. */ - /* Fall-through if $fpcfg.freg = 0b11. */ -.LCFG3_save: - fsdi.bi $fd31, [$r0], #8 - fsdi.bi $fd29, [$r0], #8 - fsdi.bi $fd27, [$r0], #8 - fsdi.bi $fd25, [$r0], #8 - fsdi.bi $fd23, [$r0], #8 - fsdi.bi $fd21, [$r0], #8 - fsdi.bi $fd19, [$r0], #8 - fsdi.bi $fd17, [$r0], #8 -.LCFG2_save: - fsdi.bi $fd15, [$r0], #8 - fsdi.bi $fd13, [$r0], #8 - fsdi.bi $fd11, [$r0], #8 - fsdi.bi $fd9, [$r0], #8 -.LCFG1_save: - fsdi.bi $fd7, [$r0], #8 - fsdi.bi $fd5, [$r0], #8 -.LCFG0_save: - fsdi.bi $fd3, [$r0], #8 -#endif - - /* Set return value to zero. */ - movi $r0, 0 - ret - .size setjmp, .-setjmp - - -/* void longjmp(jmp_buf env, int val); */ - .text - .align 2 - .global longjmp - .type longjmp, @function -longjmp: -#if __NDS32_REDUCED_REGS__ - lmw.bim $r6, [$r0], $r10, #0b0000 - addi $r0, $r0, #32 - lmw.bim $r31, [$r0], $r31, #0b1111 -#else - lmw.bim $r6, [$r0], $r14, #0b0000 - lmw.bim $r16, [$r0], $r19, #0b1111 -#endif - -#if __NDS32_EXT_FPU_SP__ || __NDS32_EXT_FPU_DP__ - - /* Restore value of $fpcfg.freg (b[3:2]). */ - lwi.bi $r2, [$r0], #4 - - /* Make sure $r0 is double-word-aligned. */ - addi $r0, $r0, #7 - bitci $r0, $r0, #7 - - /* Case switch according to $fpcfg.freg */ - beqz $r2, .LCFG0_restore /* Branch if $fpcfg.freg = 0b00. */ - xori $r15, $r2, #0b10 - beqz $r15, .LCFG2_restore /* Branch $fpcfg.freg = 0b10. */ - srli $r2, $r2, #0b01 - beqz $r2, .LCFG1_restore /* Branch if $fpcfg.freg = 0b01. */ - /* Fall-through if $fpcfg.freg = 0b11. */ -.LCFG3_restore: - fldi.bi $fd31, [$r0], #8 - fldi.bi $fd29, [$r0], #8 - fldi.bi $fd27, [$r0], #8 - fldi.bi $fd25, [$r0], #8 - fldi.bi $fd23, [$r0], #8 - fldi.bi $fd21, [$r0], #8 - fldi.bi $fd19, [$r0], #8 - fldi.bi $fd17, [$r0], #8 -.LCFG2_restore: - fldi.bi $fd15, [$r0], #8 - fldi.bi $fd13, [$r0], #8 - fldi.bi $fd11, [$r0], #8 - fldi.bi $fd9, [$r0], #8 -.LCFG1_restore: - fldi.bi $fd7, [$r0], #8 - fldi.bi $fd5, [$r0], #8 -.LCFG0_restore: - fldi.bi $fd3, [$r0], #8 -#endif - - /* Set val as return value. If the value val is 0, 1 will be returned - instead. */ - movi $r0, 1 - cmovn $r0, $r1, $r1 /* r0=(r1!=0)? r1: r0 */ - ret - .size longjmp, .-longjmp diff --git a/lib/machine/nds32/strcmp.S b/lib/machine/nds32/strcmp.S deleted file mode 100644 index f3f37fb..0000000 --- a/lib/machine/nds32/strcmp.S +++ /dev/null @@ -1,96 +0,0 @@ -/* -Copyright (c) 2013 Andes Technology Corporation. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of the company may not be used to endorse or promote - products derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Function: - strcmp - compare two strings. - Syntax: - int strcmp(const char *s1, const char *s2); - Description: - This function compares the two strings s1 and s2. It returns an - integer less than, equal to, or greater than zero if s1 is found, - respectively, to be less than, to match, or be greater than s2. - Return value: - strcmp returns an integer less than, equal to, or greater than - zero if s1 (or the first n bytes thereof) is found, respectively, - to be less than, to match, or be greater than s2. -*/ - .text - .align 2 - .globl strcmp - .type strcmp, @function -strcmp: - /* If s1 or s2 are unaligned, then compare bytes. */ - or $r5, $r1, $r0 - andi $r5, $r5, #3 - bnez $r5, .Lbyte_mode - - /* If s1 and s2 are word-aligned, compare them a word at a time. */ - lwi $r5, [$r0+(0)] - lwi $r3, [$r1+(0)] - bne $r5, $r3, .Lbyte_mode /* A difference was detected, so - search bytewise. */ - - /* It's more efficient to set bit mask outside the word_mode loop. */ - sethi $r4, hi20(0xFEFEFEFF) /* Set $r4 as -0x01010101. */ - ori $r4, $r4, lo12(0xFEFEFEFF) - sethi $r2, hi20(0x80808080) - ori $r2, $r2, lo12(0x80808080) - b .Ldetect_null - -.align 2 -.Lword_mode: - lmw.aim $r5, [$r0], $r5 - lmw.aim $r3, [$r1], $r3 - bne $r5, $r3, .Lbyte_mode - -.Ldetect_null: - /* #define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) - DETECTNULL returns nonzero if (long)X contains a NULL byte. */ - nor $r3, $r5, $r5 /* r3 = ~(X) */ - add $r5, $r5, $r4 /* r2 = ((X) - 0x01010101) */ - and $r5, $r5, $r3 /* r2 = ~(X) & ((X) - 0x01010101) */ - and $r5, $r5, $r2 /* r2= r2 & 0x80808080 */ - beqz $r5, .Lword_mode /* No NULL byte, compare next word. */ - - /* To get here, *a1 == *a2, thus if we find a null in *a1, - then the strings must be equal, so return zero. */ - movi $r0, #0 - ret - -.Lbyte_mode: - /* Byte-mode compare. */ - lbi.bi $r5, [$r0], #1 - lbi.bi $r3, [$r1], #1 - bne $r5, $r3, 1f /* Mismatch, done. */ - bnez $r5, .Lbyte_mode -1: - sub $r0, $r5, $r3 - ret - .size strcmp, .-strcmp diff --git a/lib/machine/nds32/strcpy.S b/lib/machine/nds32/strcpy.S deleted file mode 100644 index 6d94396..0000000 --- a/lib/machine/nds32/strcpy.S +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright (c) 2013 Andes Technology Corporation. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of the company may not be used to endorse or promote - products derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Function: - strcpy - copy a string. - Syntax: - char *strcpy(char *dest, const char *src); - Description: - This function copies the string pointed to by src into the array - point to by dest (include the teminating null character). - Return value: - strcpy returns the dest as given. -*/ - .text - .align 2 - .globl strcpy - .type strcpy, @function -strcpy: - move $r3, $r0 /* Keep r0 as reture value. */ - /* If SRC or DEST is unaligned, then copy bytes. */ - or $r2, $r1, $r0 - andi $r2, $r2, #3 - bnez $r2, .Lbyte_mode - -.Lword_mode: - /* SRC and DEST are both "long int" aligned, try to do "long int" - sized copies. */ - /* #define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) - DETECTNULL returns nonzero if (long)X contains a NULL byte. */ - lwi $r2, [$r1+(0)] /* r2 is X */ - sethi $r4, hi20(0xFEFEFEFF) - ori $r4, $r4, lo12(0xFEFEFEFF) - add $r4, $r2, $r4 /* r4 = ((X) - 0x01010101) */ - nor $r5, $r2, $r2 /* r5 = ~(X) */ - and $r4, $r5, $r4 /* r4 = ~(X) & ((X) - 0x01010101) */ - sethi $r5, hi20(0x80808080) - ori $r5, $r5, lo12(0x80808080) - and $r4, $r4, $r5 /* r4 = r4 & 0x80808080 */ - bnez $r4, .Lbyte_mode /* Contains a NULL byte. */ - swi.bi $r2, [$r3], #4 - addi $r1, $r1, #4 - b .Lword_mode - -.Lbyte_mode: - lbi.bi $r4, [$r1], #1 /* r4 <- *src++ */ - sbi.bi $r4, [$r3], #1 /* r4 -> *dest++ */ - bnez $r4, .Lbyte_mode - ret - .size strcpy, .-strcpy diff --git a/lib/machine/necv70/Makefile.inc b/lib/machine/necv70/Makefile.inc deleted file mode 100644 index c9cb8f1..0000000 --- a/lib/machine/necv70/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/fastmath.S %D%/setjmp.S diff --git a/lib/machine/necv70/fastmath.S b/lib/machine/necv70/fastmath.S deleted file mode 100644 index bccb20f..0000000 --- a/lib/machine/necv70/fastmath.S +++ /dev/null @@ -1,251 +0,0 @@ - .globl _fast_sin -_fast_sin: - fsin.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_sinf -_fast_sinf: - fsin.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_cos -_fast_cos: - fcos.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_cosf -_fast_cosf: - fcos.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_tan -_fast_tan: - ftan.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_tanf -_fast_tanf: - ftan.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - - .globl _fast_fabs -_fast_fabs: - fabs.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_fabsf -_fast_fabsf: - fabs.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_sqrt -_fast_sqrt: - fsqrt.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_sqrtf -_fast_sqrtf: - fsqrt.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_acos -_fast_acos: - facos.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_acosf -_fast_acosf: - facos.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_asin -_fast_asin: - fasin.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_asinf -_fast_asinf: - fasin.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_atan -_fast_atan: - fatan.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_atanf -_fast_atanf: - fatan.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_cosh -_fast_cosh: - fcosh.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_coshf -_fast_coshf: - fcosh.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_sinh -_fast_sinh: - fsin.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_sinhf -_fast_sinhf: - fsin.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_tanh -_fast_tanh: - ftanh.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_tanhf -_fast_tanhf: - ftanh.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_atanh -_fast_atanh: - fatanh.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_atanhf -_fast_atanhf: - fatanh.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - .globl _fast_exp2 -_fast_exp2: - fexp2.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_exp2f -_fast_exp2f: - fexp2.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_exp10 -_fast_exp10: - fexp10.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_exp10f -_fast_exp10f: - fexp10.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_expe -_fast_expe: - fexpe.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_expef -_fast_expef: - fexpe.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_log2 -_fast_log2: - flog2.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_log2f -_fast_log2f: - flog2.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - .globl _fast_log10 -_fast_log10: - flog10.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_log10f -_fast_log10f: - flog10.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - - .globl _fast_loge -_fast_loge: - floge.l [ap],[ap] - mov.d [ap],r0 - ret #0 - - - .globl _fast_logef -_fast_logef: - floge.s [ap],[ap] - mov.w [ap],r0 - ret #0 - - diff --git a/lib/machine/necv70/machine/registers.h b/lib/machine/necv70/machine/registers.h deleted file mode 100644 index 9f02ed3..0000000 --- a/lib/machine/necv70/machine/registers.h +++ /dev/null @@ -1,14 +0,0 @@ - - -typedef struct -{ - int fp_rounding:2; /* fp rounding control */ - int integer_rounding:1; /* integer rounding */ - int rfu:1; /* reserved */ - int fp_trap:5; /* floating point trap bits */ - int otm:1; - int rfu2:3; - int att:3; - int rfu3:16; -} v60_tkcw_type; - diff --git a/lib/machine/necv70/necv70.tex b/lib/machine/necv70/necv70.tex deleted file mode 100644 index c7858c2..0000000 --- a/lib/machine/necv70/necv70.tex +++ /dev/null @@ -1,99 +0,0 @@ -@node machine,,syscalls,Top -@chapter NEC V70 Specific Functions - -The NEC V70 has machine instructions for fast IEEE floating-point -arithmetic, including operations normally provided by the library. - -When you use the @file{/usr/include/fastmath.h} header file, the -names of several library math functions are redefined to call the -@code{fastmath} routine (using the corresponding V70 machine instructions) -whenever possible. - -For example, -@example - -#include - -double sqsin(x) -double x; -@{ - return sin(x*x); -@} - -@end example -expands into the code -@example - -@dots{} -double sqsin(x) -double x; -@{ - return fast_sin(x*x); -@} - -@end example - -The library has an entry @code{fast_sin} which uses the machine -instruction @code{fsin.l} to perform the operation. Note that the -built-in instructions cannot set @code{errno} -in the same way that the C coded functions do. Refer to a V70 -instruction manual to see how errors are generated and handled. - -Also, the library provides true @code{float} entry points. The -@code{fast_sinf} entry point really performs a @code{fsin.s} -operation. Because of this, the instructions are only useful when -using code compiled with an ANSI C compiler. The prototypes -and definitions for the floating-point versions of the math library -routines are only defined if compiling a module with an ANSI C -compiler. - -@page -@section Entry points -The functions provided by @file{fastmath.h} are -@example - - double fast_sin(double); /* fsin.l */ - double fast_cos(double); /* fcos.l */ - double fast_tan(double); /* ftan.l */ - double fast_asin(double); /* fasin.l */ - double fast_acos(double); /* facos.l */ - double fast_atan(double); /* fatan.l */ - double fast_sinh(double); /* fsinh.l */ - double fast_cosh(double); /* fcosh.l */ - double fast_tanh(double); /* ftanh.l */ - double fast_asinh(double); /* fasinh.l */ - double fast_acosh(double); /* facosh.l */ - double fast_atanh(double); /* fatanh.l */ - double fast_fabs(double); /* fabs.l */ - double fast_sqrt(double); /* fsqrt.l */ - double fast_exp2(double); /* fexp2.l */ - double fast_exp10(double); /* fexp10.l */ - double fast_expe(double); /* fexpe.l */ - double fast_log10(double); /* flog10.l */ - double fast_log2(double); /* flog2.l */ - double fast_loge(double); /* floge.l */ - - float fast_sinf(float); /* fsin.s */ - float fast_cosf(float); /* fcos.s */ - float fast_tanf(float); /* ftan.s */ - float fast_asinf(float); /* fasin.s */ - float fast_acosf(float); /* facos.s */ - float fast_atanf(float); /* fatan.s */ - float fast_sinhf(float); /* fsinh.s */ - float fast_coshf(float); /* fcosh.s */ - float fast_tanhf(float); /* ftanh.s */ - float fast_asinhf(float); /* fasinh.s */ - float fast_acoshf(float); /* facosh.s */ - float fast_atanhf(float); /* fatanh.s */ - float fast_fabsf(float); /* fabs.s */ - float fast_sqrtf(float); /* fsqrt.s */ - float fast_exp2f(float); /* fexp2.s */ - float fast_exp10f(float); /* fexp10.s */ - float fast_expef(float); /* fexpe.s */ - float fast_log10f(float); /* flog10.s */ - float fast_log2f(float); /* flog2.s */ - float fast_logef(float); /* floge.s */ - -@end example - - diff --git a/lib/machine/necv70/setjmp.S b/lib/machine/necv70/setjmp.S deleted file mode 100644 index d8aca1d..0000000 --- a/lib/machine/necv70/setjmp.S +++ /dev/null @@ -1,33 +0,0 @@ - .globl _setjmp -_setjmp: - mov.w [ap],r0 - mov.d r15,[r0+] - mov.d r17,[r0+] - mov.d r19,[r0+] - mov.d r21,[r0+] - mov.d r23,[r0+] - mov.w -0x4[ap],[r0+] - mov.w fp,[r0+] - mov.w ap,[r0+] - mov.w -0x8[ap],[r0] - xor.w r0,r0 - ret #0x0 - - .globl _longjmp -_longjmp: - mov.w 0x4[ap],r0 - mov.w [ap],r1 - mov.d [r1+],r15 - mov.d [r1+],r17 - mov.d [r1+],r19 - mov.d [r1+],r21 - mov.d [r1+],r23 - mov.d [r1+],ap - mov.w [r1+],sp - test.w r0 - jne noz - mov.w #0x1,r0 -noz: jmp [0x0[r1]] - - - diff --git a/lib/machine/nios2/Makefile.inc b/lib/machine/nios2/Makefile.inc deleted file mode 100644 index 3b3f2dc..0000000 --- a/lib/machine/nios2/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.s diff --git a/lib/machine/nvptx/Makefile.inc b/lib/machine/nvptx/Makefile.inc deleted file mode 100644 index 9dc50dc..0000000 --- a/lib/machine/nvptx/Makefile.inc +++ /dev/null @@ -1,5 +0,0 @@ -libc_a_SOURCES += \ - %D%/_exit.c \ - %D%/calloc.c %D%/callocr.c %D%/malloc.c %D%/mallocr.c %D%/realloc.c %D%/reallocr.c \ - %D%/free.c %D%/write.c %D%/assert.c %D%/puts.c %D%/putchar.c %D%/printf.c %D%/abort.c \ - %D%/misc.c %D%/clock.c diff --git a/lib/machine/nvptx/_exit.c b/lib/machine/nvptx/_exit.c deleted file mode 100644 index f2253df..0000000 --- a/lib/machine/nvptx/_exit.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2014-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include -#include - -/* Sadly, PTX doesn't support weak declarations, only weak - definitions. Weakly define it here in case we're not using crt0 - (for instance in offloading). You probably shouldn't be calling - 'exit' in an offloaded region anyway, but that'd be a runtime - error, not a link error. */ -int *__attribute((weak)) __exitval_ptr; - -void __attribute__((noreturn)) -_exit (int status) -{ - if (__exitval_ptr) - { - *__exitval_ptr = status; - for (;;) - asm ("exit;" ::: "memory"); - } - else /* offloading */ - { - /* Map to 'abort'; see - '[nvptx] "exit" in offloaded region doesn't terminate process'. */ - abort (); - } -} diff --git a/lib/machine/nvptx/abort.c b/lib/machine/nvptx/abort.c deleted file mode 100644 index f0ce154..0000000 --- a/lib/machine/nvptx/abort.c +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2014-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include - -void __attribute__((noreturn)) -abort (void) -{ - for (;;) - __builtin_trap (); -} diff --git a/lib/machine/nvptx/assert.c b/lib/machine/nvptx/assert.c deleted file mode 100644 index 19c809c..0000000 --- a/lib/machine/nvptx/assert.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2016-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include -#include -#include - -#ifndef HAVE_ASSERT_FUNC -/* func can be NULL, in which case no function information is given. */ -void -__assert_func (const char *file, - int line, - const char *func, - const char *failedexpr) -{ - abort(); - /* NOTREACHED */ -} -#endif /* HAVE_ASSERT_FUNC */ - -void -__assert (const char *file, - int line, - const char *failedexpr) -{ - __assert_func (file, line, NULL, failedexpr); - /* NOTREACHED */ -} diff --git a/lib/machine/nvptx/calloc.c b/lib/machine/nvptx/calloc.c deleted file mode 100644 index f0ccf90..0000000 --- a/lib/machine/nvptx/calloc.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2014-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include -#include - -void * -calloc (size_t size, size_t len) -{ - void *p = malloc (size * len); - if (!p) - return p; - return memset (p, 0, size * len); -} diff --git a/lib/machine/nvptx/callocr.c b/lib/machine/nvptx/callocr.c deleted file mode 100644 index fa10f53..0000000 --- a/lib/machine/nvptx/callocr.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2014-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include - -void * -_calloc_r (struct _reent *ptr, size_t size, size_t len) -{ - return calloc (size, len); -} diff --git a/lib/machine/nvptx/clock.c b/lib/machine/nvptx/clock.c deleted file mode 100644 index 1ad69f1..0000000 --- a/lib/machine/nvptx/clock.c +++ /dev/null @@ -1,18 +0,0 @@ -/* clock.c - * Support file for nvptx in newlib. - */ -#include - -clock_t -clock () -{ - unsigned long long now; -#if __PTX_SM__ >= 310 - asm volatile("mov.u64 %0, %%globaltimer;" : "=r"(now)); - return now/((1000000000ull)/CLOCKS_PER_SEC); -#else - asm volatile("mov.u64 %0, %%clock64;" : "=r"(now)); - // Assume a GPU base clock frequency of 1250MHz. - return now/((1250000000ull)/CLOCKS_PER_SEC); -#endif -} diff --git a/lib/machine/nvptx/free.c b/lib/machine/nvptx/free.c deleted file mode 100644 index 7d329ce..0000000 --- a/lib/machine/nvptx/free.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2016-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include - -/* The CUDA-provided free. */ -void sys_free (void *) __asm__ ("free"); - -/* The user-visible free (renamed by compiler). */ -void free (void *ptr) -{ - if (ptr) - sys_free ((long long *)ptr - 1); -} diff --git a/lib/machine/nvptx/malloc.c b/lib/machine/nvptx/malloc.c deleted file mode 100644 index 37ab75a..0000000 --- a/lib/machine/nvptx/malloc.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2016-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include - -/* The CUDA-provided malloc. */ -void *sys_malloc (size_t) __asm__ ("malloc"); - -/* The user-visible malloc (renamed by compiler). */ -void *malloc (size_t size) -{ - long long *ptr = sys_malloc (size + sizeof (long long)); - if (ptr) - *(size_t *)ptr++ = size; - - return ptr; -} diff --git a/lib/machine/nvptx/mallocr.c b/lib/machine/nvptx/mallocr.c deleted file mode 100644 index bef89de..0000000 --- a/lib/machine/nvptx/mallocr.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2014-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include - -void *_malloc_r (struct _reent *r, size_t n) -{ - return malloc (n); -} - -void _free_r (struct _reent *r, void *p) -{ - free (p); -} diff --git a/lib/machine/nvptx/misc.c b/lib/machine/nvptx/misc.c deleted file mode 100644 index 56e66b9..0000000 --- a/lib/machine/nvptx/misc.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2014-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include -#include -#include -#include - -#undef errno -extern int errno; - -int -close(int fd) { - return -1; -} - -int -fstat (int fd, struct stat *buf) { - return -1; -} - -int -gettimeofday (struct timeval *tv, void *tz) { - return -1; -} - -int -getpid (void) { - return 0; -} - -int -isatty (int fd) { - return fd == 1; -} - -int -kill (int pid, int sig) { - errno = ESRCH; - return -1; -} - -off_t -lseek(int fd, off_t offset, int whence) { - return 0; -} - -int -open (const char *pathname, int flags, ...) { - return -1; -} - -int -read(int fd, void *buf, size_t count) { - return 0; -} - -int -stat (const char *file, struct stat *pstat) { - errno = EACCES; - return -1; -} - -void -sync (void) { -} - -int -unlink (const char *pathname) { - return -1; -} diff --git a/lib/machine/nvptx/printf.c b/lib/machine/nvptx/printf.c deleted file mode 100644 index d3f12bd..0000000 --- a/lib/machine/nvptx/printf.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2015-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include - -extern int vprintf (const char *, va_list); - -int -printf (const char *fmt, ...) -{ - va_list args; - int res; - - va_start (args, fmt); - res = vprintf (fmt, args); - va_end (args); - return res; -} diff --git a/lib/machine/nvptx/putchar.c b/lib/machine/nvptx/putchar.c deleted file mode 100644 index cb7537f..0000000 --- a/lib/machine/nvptx/putchar.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2015-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include - -extern int vprintf (const char *, va_list); - -int -putchar (int c) -{ - unsigned valist[1]; - - c = (unsigned char)c; - valist[0] = c; - int ret = vprintf ("%c", valist); - if (ret < 0) - c = -1; - return c; -} diff --git a/lib/machine/nvptx/puts.c b/lib/machine/nvptx/puts.c deleted file mode 100644 index ce4d17f..0000000 --- a/lib/machine/nvptx/puts.c +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2015-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include - -extern int vprintf (const char *, va_list); - -int -puts (const char *str) -{ - void *valist[1]; - - valist[0] = str; - return vprintf ("%s\n", valist); -} diff --git a/lib/machine/nvptx/realloc.c b/lib/machine/nvptx/realloc.c deleted file mode 100644 index 1cb84df..0000000 --- a/lib/machine/nvptx/realloc.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2016-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include - -void * -realloc (void *old_ptr, size_t new_size) -{ - void *new_ptr = malloc (new_size); - - if (old_ptr && new_ptr) - { - size_t old_size = *(size_t *)((long long *)old_ptr - 1); - size_t copy_size = old_size > new_size ? new_size : old_size; - __builtin_memcpy (new_ptr, old_ptr, copy_size); - free (old_ptr); - } - - return new_ptr; -} diff --git a/lib/machine/nvptx/reallocr.c b/lib/machine/nvptx/reallocr.c deleted file mode 100644 index e942f06..0000000 --- a/lib/machine/nvptx/reallocr.c +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2014-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include - -void *_realloc_r (struct _reent *r, void *p, size_t n) _NOTHROW -{ - return realloc (p, n); -} diff --git a/lib/machine/nvptx/write.c b/lib/machine/nvptx/write.c deleted file mode 100644 index 0544dd0..0000000 --- a/lib/machine/nvptx/write.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Support file for nvptx in newlib. - * Copyright (c) 2014-2018 Mentor Graphics. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include -#include -#include -#include - -_READ_WRITE_RETURN_TYPE write (int fd, const void *buf, size_t count) -{ - size_t i; - char *b = (char *)buf; - if (fd != 1 && fd != 2) - { - errno = EBADF; - return -1; - } - for (i = 0; i < count; i++) - printf ("%c", b[i]); - return count; -} diff --git a/lib/machine/or1k/Makefile.inc b/lib/machine/or1k/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/or1k/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/or1k/setjmp.S b/lib/machine/or1k/setjmp.S deleted file mode 100644 index f0663f3..0000000 --- a/lib/machine/or1k/setjmp.S +++ /dev/null @@ -1,108 +0,0 @@ -/* -Copyright (c) 2014, Hesham ALMatary -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -.align 4 -.global setjmp -.type setjmp,@function -setjmp: - - l.sw 0(r3), r1 - l.sw 4(r3), r2 - /* Skip r3-r8 as they are not preserved across function calls */ - l.sw 8(r3), r9 - /* Skip r10 as it's preserved to be used by TLS */ - /* Skip r11, setjmp always set it to 0 */ - /* The following set if registers are preserved across function calls */ - l.sw 12(r3), r14 - l.sw 16(r3), r16 - l.sw 20(r3), r18 - l.sw 24(r3), r20 - l.sw 28(r3), r22 - l.sw 32(r3), r24 - l.sw 36(r3), r26 - l.sw 40(r3), r28 - l.sw 44(r3), r30 - /* Save Status Register */ - l.mfspr r13, r0, 17 - l.sw 48(r3), r13 -/* Set result register to 0 and jump */ -// Different cases for optional delay slot -#if defined(__OR1K_NODELAY__) - l.addi r11, r0, 0 - l.jr r9 -#elif defined(__OR1K_DELAY__) - l.jr r9 - l.addi r11, r0, 0 -#else - l.addi r11, r0, 0 - l.jr r9 - l.nop -#endif - -.align 4 -.global longjmp -.type longjmp,@function -longjmp: - - /* If the second argument to longjmp is zero, set return address to 1, - otherwise set it to the value of the second argument */ - l.addi r11, r0, 1 - l.sfeq r4, r0 - l.bf 1f - l.nop - l.addi r11, r4, 0 - - /* Load status register */ -1: - l.lwz r15, 48(r3) - l.mtspr r0, r15, 17 - - l.lwz r1, 0(r3) - l.lwz r2, 4(r3) - /* Skip r3-r8 as they are not preserved across function calls */ - l.lwz r9, 8(r3) - /* Skip r11 as it's always set by longjmp */ - l.lwz r14, 12(r3) - l.lwz r16, 16(r3) - l.lwz r18, 20(r3) - l.lwz r20, 24(r3) - l.lwz r22, 28(r3) - l.lwz r24, 32(r3) - l.lwz r26, 36(r3) - l.lwz r28, 40(r3) - -// Different cases for optional delay slot -#if defined(__OR1K_NODELAY__) - l.lwz r30, 44(r3) - l.jr r9 -#elif defined(__OR1K_DELAY__) - l.jr r9 - l.lwz r30, 44(r3) -#else - l.lwz r30, 44(r3) - l.jr r9 - l.nop -#endif diff --git a/lib/machine/powerpc/Makefile.inc b/lib/machine/powerpc/Makefile.inc deleted file mode 100644 index 55c7ebd..0000000 --- a/lib/machine/powerpc/Makefile.inc +++ /dev/null @@ -1,35 +0,0 @@ -libc_a_CPPFLAGS_%C% = -I$(srcdir)/libc/stdio -I$(srcdir)/libc/stdlib - -libc_a_SOURCES += %D%/setjmp.S - -if HAVE_POWERPC_ALTIVEC -libc_a_SOURCES += \ - %D%/vfprintf.c \ - %D%/vfscanf.c \ - %D%/vec_malloc.c \ - %D%/vec_calloc.c \ - %D%/vec_free.c \ - %D%/vec_realloc.c \ - %D%/vec_mallocr.c \ - %D%/vec_callocr.c \ - %D%/vec_reallocr.c -endif -if HAVE_POWERPC_SPE -libc_a_SOURCES += \ - %D%/atosfix16.c \ - %D%/atosfix32.c \ - %D%/atosfix64.c \ - %D%/atoufix16.c \ - %D%/atoufix32.c \ - %D%/atoufix64.c \ - %D%/simdldtoa.c \ - %D%/strtosfix16.c \ - %D%/strtosfix32.c \ - %D%/strtosfix64.c \ - %D%/strtoufix16.c \ - %D%/strtoufix32.c \ - %D%/strtoufix64.c \ - %D%/ufix64toa.c \ - %D%/vfprintf.c \ - %D%/vfscanf.c -endif diff --git a/lib/machine/powerpc/acinclude.m4 b/lib/machine/powerpc/acinclude.m4 deleted file mode 100644 index 7057398..0000000 --- a/lib/machine/powerpc/acinclude.m4 +++ /dev/null @@ -1,10 +0,0 @@ -HAVE_POWERPC_ALTIVEC=no -HAVE_POWERPC_SPE=no -if test "${machine_dir}" = "powerpc"; then - case $host in - powerpc*-*altivec*) HAVE_POWERPC_ALTIVEC=yes ;; - powerpc*-*spe*) HAVE_POWERPC_SPE=yes ;; - esac -fi -AM_CONDITIONAL(HAVE_POWERPC_ALTIVEC, [test "$HAVE_POWERPC_ALTIVEC" = yes]) -AM_CONDITIONAL(HAVE_POWERPC_SPE, [test "$HAVE_POWERPC_SPE" = yes]) diff --git a/lib/machine/powerpc/atosfix16.c b/lib/machine/powerpc/atosfix16.c deleted file mode 100644 index b069d71..0000000 --- a/lib/machine/powerpc/atosfix16.c +++ /dev/null @@ -1,80 +0,0 @@ -/* -FUNCTION - <>, <>, <>---string to signed fixed-point - -INDEX - atosfix16 -INDEX - atosfix32 -INDEX - atosfix64 -INDEX - _atosfix16_r -INDEX - _atosfix32_r -INDEX - _atosfix64_r - -SYNOPSIS - #include - __int16_t atosfix16(const char *<[s]>); - __int32_t atosfix32(const char *<[s]>); - __int64_t atosfix32(const char *<[s]>); - - __int16_t _atosfix16_r(struct __reent *, const char *<[s]>); - __int32_t _atosfix32_r(struct __reent *, const char *<[s]>); - __int64_t _atosfix32_r(struct __reent *, const char *<[s]>); - -DESCRIPTION - <> converts the initial portion of a string to a sign - + 15-bit fraction fixed point value. - <> converts the initial portion of a string to a sign - + 31-bit fraction fixed point value. - <> converts the initial portion of a string to a sign - + 63-bit fraction fixed point value. - <> is implemented as <> - <> is implemented as <> - <> is implemented as <> - - The alternate functions <<_atosfix16_r>>, <<_atosfix32_r>>, - and <<_atosfix64_r>> are reentrant versions. - The extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS - The functions return the converted value, if any. If no conversion was - made, <<0>> is returned. If saturation occurs, <> is stored - in errno. - -PORTABILITY - <>, <>, and <> are non-standard. - - No supporting OS subroutines are directly required. The - OS subroutines required by <> are used. -*/ - -/* - * Jeff Johnston - 02/13/2002 - */ - -#ifdef __SPE__ - -#include -#include <_ansi.h> - -__int16_t -_atosfix16_r (struct _reent *reent, - const char *s) -{ - return _strtosfix16_r (reent, s, NULL); -} - -#ifndef _REENT_ONLY -__int16_t -atosfix16 (const char *s) -{ - return strtosfix16 (s, NULL); -} - -#endif /* !_REENT_ONLY */ - -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/atosfix32.c b/lib/machine/powerpc/atosfix32.c deleted file mode 100644 index e1915b2..0000000 --- a/lib/machine/powerpc/atosfix32.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Jeff Johnston - 02/13/2002 - */ - -#ifdef __SPE__ - -#include -#include <_ansi.h> - -__int32_t -_atosfix32_r (struct _reent *reent, - const char *s) -{ - return _strtosfix32_r (reent, s, NULL); -} - -#ifndef _REENT_ONLY -__int32_t -atosfix32 (const char *s) -{ - return strtosfix32 (s, NULL); -} - -#endif /* !_REENT_ONLY */ - -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/atosfix64.c b/lib/machine/powerpc/atosfix64.c deleted file mode 100644 index 5340b1e..0000000 --- a/lib/machine/powerpc/atosfix64.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Jeff Johnston - 02/13/2002 - */ - -#ifdef __SPE__ - -#include -#include <_ansi.h> - -__int64_t -_atosfix64_r (struct _reent *reent, - const char *s) -{ - return _strtosfix64_r (reent, s, NULL); -} - -#ifndef _REENT_ONLY -__int64_t -atosfix64 (const char *s) -{ - return strtosfix64 (s, NULL); -} - -#endif /* !_REENT_ONLY */ - -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/atoufix16.c b/lib/machine/powerpc/atoufix16.c deleted file mode 100644 index 4cc8338..0000000 --- a/lib/machine/powerpc/atoufix16.c +++ /dev/null @@ -1,80 +0,0 @@ -/* -FUNCTION - <>, <>, <>---string to unsigned fixed-point - -INDEX - atoufix16 -INDEX - atoufix32 -INDEX - atoufix64 -INDEX - _atoufix16_r -INDEX - _atoufix32_r -INDEX - _atoufix64_r - -SYNOPSIS - #include - __uint16_t atoufix16(const char *<[s]>); - __uint32_t atoufix32(const char *<[s]>); - __uint64_t atoufix32(const char *<[s]>); - - __uint16_t _atoufix16_r(struct __reent *, const char *<[s]>); - __uint32_t _atoufix32_r(struct __reent *, const char *<[s]>); - __uint64_t _atoufix32_r(struct __reent *, const char *<[s]>); - -DESCRIPTION - <> converts the initial portion of a string to a - 16-bit fraction unsigned fixed point value. - <> converts the initial portion of a string to a - 32-bit fraction unsigned fixed point value. - <> converts the initial portion of a string to a - 64-bit fraction unsigned fixed point value. - <> is implemented as <> - <> is implemented as <> - <> is implemented as <> - - The alternate functions <<_atoufix16_r>>, <<_atoufix32_r>>, - and <<_atoufix64_r>> are reentrant versions. - The extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS - The functions return the converted value, if any. If no conversion was - made, <<0>> is returned. If saturation occurs, <> is stored - in errno. - -PORTABILITY - <>, <>, and <> are non-standard. - - No supporting OS subroutines are directly required. The - OS subroutines required by <> are used. -*/ - -/* - * Jeff Johnston - 02/13/2002 - */ - -#ifdef __SPE__ - -#include -#include <_ansi.h> - -__uint16_t -_atoufix16_r (struct _reent *reent, - const char *s) -{ - return _strtoufix16_r (reent, s, NULL); -} - -#ifndef _REENT_ONLY -__uint16_t -atoufix16 (const char *s) -{ - return strtoufix16 (s, NULL); -} - -#endif /* !_REENT_ONLY */ - -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/atoufix32.c b/lib/machine/powerpc/atoufix32.c deleted file mode 100644 index aa2333a..0000000 --- a/lib/machine/powerpc/atoufix32.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Jeff Johnston - 02/13/2002 - */ - -#ifdef __SPE__ - -#include -#include <_ansi.h> - -__uint32_t -_atoufix32_r (struct _reent *reent, - const char *s) -{ - return _strtoufix32_r (reent, s, NULL); -} - -#ifndef _REENT_ONLY -__uint32_t -atoufix32 (const char *s) -{ - return strtoufix32 (s, NULL); -} - -#endif /* !_REENT_ONLY */ - -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/atoufix64.c b/lib/machine/powerpc/atoufix64.c deleted file mode 100644 index cf9517e..0000000 --- a/lib/machine/powerpc/atoufix64.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Jeff Johnston - 02/13/2002 - */ - -#ifdef __SPE__ - -#include -#include <_ansi.h> - -__uint64_t -_atoufix64_r (struct _reent *reent, - const char *s) -{ - return _strtoufix64_r (reent, s, NULL); -} - -#ifndef _REENT_ONLY -__uint64_t -atoufix64 (const char *s) -{ - return strtoufix64 (s, NULL); -} - -#endif /* !_REENT_ONLY */ - -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/fix64.h b/lib/machine/powerpc/fix64.h deleted file mode 100644 index ce94820..0000000 --- a/lib/machine/powerpc/fix64.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef _FIX64_H_ - -#define _FIX64_H_ - -#include -#include -#include -#include -#include - -#ifdef __IEEE_LITTLE_ENDIAN -#define IEEE_8087 -#endif - -#ifdef __IEEE_BIG_ENDIAN -#define IEEE_MC68k -#endif - -#ifdef __Z8000__ -#define Just_16 -#endif - -#if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(VAX) + defined(IBM) != 1 -Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined. -#endif - -union long_double_union -{ - long double ld; - __uint32_t i[4]; -}; - -typedef union long_double_union LONG_DOUBLE_UNION; - -extern void _simdstrtold (char *, char **, LONG_DOUBLE_UNION *); -extern int _simdldcheck (LONG_DOUBLE_UNION *); - -#define SIMD_LDBL_MANT_DIG 113 - -#ifdef IEEE_8087 -# define word0(x) (x.i[3]) -# define word1(x) (x.i[2]) -# define word2(x) (x.i[1]) -# define word3(x) (x.i[0]) -#else /* !IEEE_8087 */ -# define word0(x) (x.i[0]) -# define word1(x) (x.i[1]) -# define word2(x) (x.i[2]) -# define word3(x) (x.i[3]) -#endif /* !IEEE_8087 */ - -#undef Exp_shift -#define Exp_shift 16 -#undef Exp_mask -#define Exp_mask ((__uint32_t)0x7fff0000L) -#undef Exp_msk1 -#define Exp_msk1 ((__uint32_t)0x00010000L) -#undef Bias -#define Bias 16383 -#undef Ebits -#define Ebits 15 -#undef Sign_bit -#define Sign_bit ((__uint32_t)0x80000000L) -#define init(x) {} - -union fix64_union -{ - __uint64_t ll; - __uint32_t j[2]; -}; - -#ifdef __LITTLE_ENDIAN__ -# define hiword(y) (y.j[1]) -# define loword(y) (y.j[0]) -#else /* __BIG_ENDIAN__ */ -# define hiword(y) (y.j[0]) -# define loword(y) (y.j[1]) -#endif /* __BIG_ENDIAN__ */ - -#endif /* _FIX64_H_ */ diff --git a/lib/machine/powerpc/machine/fenv-fp.h b/lib/machine/powerpc/machine/fenv-fp.h deleted file mode 100644 index 7cf2021..0000000 --- a/lib/machine/powerpc/machine/fenv-fp.h +++ /dev/null @@ -1,198 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2004-2005 David Schultz - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -__fenv_static inline int -feclearexcept(int excepts) -{ - union __fpscr __r; - - if (excepts & FE_INVALID) - excepts |= FE_ALL_INVALID; - __mffs(&__r); - __r.__bits.__reg &= ~excepts; - __mtfsf(__r); - return (0); -} - - -__fenv_static inline int -fegetexceptflag(fexcept_t *flagp, int excepts) -{ - union __fpscr __r; - - __mffs(&__r); - *flagp = __r.__bits.__reg & excepts; - return (0); -} - -__fenv_static inline int -fesetexceptflag(const fexcept_t *flagp, int excepts) -{ - union __fpscr __r; - - if (excepts & FE_INVALID) - excepts |= FE_ALL_EXCEPT; - __mffs(&__r); - __r.__bits.__reg &= ~excepts; - __r.__bits.__reg |= *flagp & excepts; - __mtfsf(__r); - return (0); -} - -__fenv_static inline int -feraiseexcept(int excepts) -{ - union __fpscr __r; - - if (excepts & FE_INVALID) - excepts |= FE_VXSOFT; - __mffs(&__r); - __r.__bits.__reg |= excepts; - __mtfsf(__r); - return (0); -} - -__fenv_static inline int -fetestexcept(int excepts) -{ - union __fpscr __r; - - __mffs(&__r); - return (__r.__bits.__reg & excepts); -} - -__fenv_static inline int -fegetround(void) -{ - union __fpscr __r; - - __mffs(&__r); - return (__r.__bits.__reg & _ROUND_MASK); -} - -__fenv_static inline int -fesetround(int rounding_mode) -{ - union __fpscr __r; - - if (rounding_mode & ~_ROUND_MASK) - return (-1); - __mffs(&__r); - __r.__bits.__reg &= ~_ROUND_MASK; - __r.__bits.__reg |= rounding_mode; - __mtfsf(__r); - return (0); -} - -__fenv_static inline int -fegetenv(fenv_t *envp) -{ - union __fpscr __r; - - __mffs(&__r); - *envp = __r.__bits.__reg; - return (0); -} - -__fenv_static inline int -feholdexcept(fenv_t *envp) -{ - union __fpscr __r; - - __mffs(&__r); - *envp = __r.__bits.__reg; - __r.__bits.__reg &= ~(FE_ALL_EXCEPT | _ENABLE_MASK); - __mtfsf(__r); - return (0); -} - -__fenv_static inline int -fesetenv(const fenv_t *envp) -{ - union __fpscr __r; - - __r.__bits.__reg = *envp; - __mtfsf(__r); - return (0); -} - -__fenv_static inline int -feupdateenv(const fenv_t *envp) -{ - union __fpscr __r; - - __mffs(&__r); - __r.__bits.__reg &= FE_ALL_EXCEPT; - __r.__bits.__reg |= *envp; - __mtfsf(__r); - return (0); -} - -#if __BSD_VISIBLE - -/* We currently provide no external definitions of the functions below. */ - -static inline int -feenableexcept(int __mask) -{ - union __fpscr __r; - fenv_t __oldmask; - - __mffs(&__r); - __oldmask = __r.__bits.__reg; - __r.__bits.__reg |= (__mask & FE_ALL_EXCEPT) >> _FPUSW_SHIFT; - __mtfsf(__r); - return ((__oldmask & _ENABLE_MASK) << _FPUSW_SHIFT); -} - -static inline int -fedisableexcept(int __mask) -{ - union __fpscr __r; - fenv_t __oldmask; - - __mffs(&__r); - __oldmask = __r.__bits.__reg; - __r.__bits.__reg &= ~((__mask & FE_ALL_EXCEPT) >> _FPUSW_SHIFT); - __mtfsf(__r); - return ((__oldmask & _ENABLE_MASK) << _FPUSW_SHIFT); -} - -static inline int -fegetexcept(void) -{ - union __fpscr __r; - - __mffs(&__r); - return ((__r.__bits.__reg & _ENABLE_MASK) << _FPUSW_SHIFT); -} - -#endif /* __BSD_VISIBLE */ - diff --git a/lib/machine/powerpc/machine/malloc.h b/lib/machine/powerpc/machine/malloc.h deleted file mode 100644 index 32fbb26..0000000 --- a/lib/machine/powerpc/machine/malloc.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _MACHMALLOC_H_ -#define _MACHMALLOC_H_ - -# if defined(__ALTIVEC__) - -void *vec_calloc (size_t __nmemb, size_t __size); -void *_vec_calloc_r (struct _reent *, size_t __nmemb, size_t __size); -void vec_free (void *); -#define _vec_freer _freer -void *vec_malloc (size_t __size); -#define _vec_mallocr _memalign_r -void *vec_realloc (void *__r, size_t __size); -void *_vec_realloc_r (struct _reent *, void *__r, size_t __size); - -# endif /* __ALTIVEC__ */ - - -#endif /* _MACHMALLOC_H_ */ - - diff --git a/lib/machine/powerpc/machine/stdlib.h b/lib/machine/powerpc/machine/stdlib.h deleted file mode 100644 index 2db8010..0000000 --- a/lib/machine/powerpc/machine/stdlib.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef _MACHSTDLIB_H_ -#define _MACHSTDLIB_H_ - -#ifndef __STRICT_ANSI__ - -# if defined(__ALTIVEC__) - -void *vec_calloc (size_t __nmemb, size_t __size); -void *_vec_calloc_r (struct _reent *, size_t __nmemb, size_t __size); -void vec_free (void *); -#define _vec_freer _freer -void *vec_malloc (size_t __size); -#define _vec_mallocr _memalign_r -void *vec_realloc (void *__r, size_t __size); -void *_vec_realloc_r (struct _reent *, void *__r, size_t __size); - -# endif /* __ALTIVEC__ */ - -# if defined(__SPE__) - -#define __need_inttypes -#include - -#ifdef __cplusplus -extern "C" { -#endif -__int16_t atosfix16 (const char *__str); -__int16_t _atosfix16_r (struct _reent *, const char *__str); -__int32_t atosfix32 (const char *__str); -__int32_t _atosfix32_r (struct _reent *, const char *__str); -__int64_t atosfix64 (const char *__str); -__int64_t _atosfix64_r (struct _reent *, const char *__str); - -__uint16_t atoufix16 (const char *__str); -__uint16_t _atoufix16_r (struct _reent *, const char *__str); -__uint32_t atoufix32 (const char *__str); -__uint32_t _atoufix32_r (struct _reent *, const char *__str); -__uint64_t atoufix64 (const char *__str); -__uint64_t _atoufix64_r (struct _reent *, const char *__str); - -__int16_t strtosfix16 (const char *__str, char **__endptr); -__int16_t _strtosfix16_r (struct _reent *, const char *__str, - char **__endptr); -__int32_t strtosfix32 (const char *__str, char **__endptr); -__int32_t _strtosfix32_r (struct _reent *, const char *__str, - char **__endptr); -__int64_t strtosfix64 (const char *__str, char **__endptr); -__int64_t _strtosfix64_r (struct _reent *, const char *__str, - char **__endptr); - -__uint16_t strtoufix16 (const char *__str, char **__endptr); -__uint16_t _strtoufix16_r (struct _reent *, const char *__str, - char **__endptr); -__uint32_t strtoufix32 (const char *__str, char **__endptr); -__uint32_t _strtoufix32_r (struct _reent *, const char *__str, - char **__endptr); -__uint64_t strtoufix64 (const char *__str, char **__endptr); -__uint64_t _strtoufix64_r (struct _reent *, const char *__str, - char **__endptr); -#ifdef __cplusplus -} -#endif - -# endif /* __SPE__ */ - -#endif /* !__STRICT_ANSI__ */ - - -#endif /* _MACHSTDLIB_H_ */ - - diff --git a/lib/machine/powerpc/setjmp.S b/lib/machine/powerpc/setjmp.S deleted file mode 100644 index c7af5b1..0000000 --- a/lib/machine/powerpc/setjmp.S +++ /dev/null @@ -1,387 +0,0 @@ -/* This is a simple version of setjmp and longjmp for the PowerPC. - Ian Lance Taylor, Cygnus Support, 9 Feb 1994. - Modified by Jeff Johnston, Red Hat Inc. 2 Oct 2001. - Modified by Sebastian Huber, embedded brains GmbH. 22 Sep 2022. */ - -#include "ppc-asm.h" - -FUNC_START(setjmp) -#ifdef __ALTIVEC__ - addi 3,3,15 # align Altivec to 16 byte boundary -#if __powerpc64__ - clrrdi 3,3,4 -#else - rlwinm 3,3,0,0,27 -#endif -#else - addi 3,3,7 # align to 8 byte boundary -#if __powerpc64__ - clrrdi 3,3,3 -#else - rlwinm 3,3,0,0,28 -#endif -#endif -#if __SPE__ - /* If we are E500, then save 64-bit registers. */ - evstdd 1,0(3) # offset 0 - evstdd 2,8(3) # offset 8 - evstdd 13,16(3) # offset 16 - evstdd 14,24(3) # offset 24 - evstdd 15,32(3) # offset 32 - evstdd 16,40(3) # offset 40 - evstdd 17,48(3) # offset 48 - evstdd 18,56(3) # offset 56 - evstdd 19,64(3) # offset 64 - evstdd 20,72(3) # offset 72 - evstdd 21,80(3) # offset 80 - evstdd 22,88(3) # offset 88 - evstdd 23,96(3) # offset 96 - evstdd 24,104(3) # offset 104 - evstdd 25,112(3) # offset 112 - evstdd 26,120(3) # offset 120 - evstdd 27,128(3) # offset 128 - evstdd 28,136(3) # offset 136 - evstdd 29,144(3) # offset 144 - evstdd 30,152(3) # offset 152 - evstdd 31,160(3) # offset 160 - - /* Add 164 to r3 to account for the amount of data we just - stored. Note that we are not adding 168 because the next - store instruction uses an offset of 4. */ - addi 3,3,164 -#elif __powerpc64__ - /* In the first store, add 8 to r3 so that the subsequent floating - point stores are aligned on an 8 byte boundary and the Altivec - stores are aligned on a 16 byte boundary. */ - stdu 1,8(3) # offset 8 - stdu 2,8(3) # offset 16 - stdu 13,8(3) # offset 24 - stdu 14,8(3) # offset 32 - stdu 15,8(3) # offset 40 - stdu 16,8(3) # offset 48 - stdu 17,8(3) # offset 56 - stdu 18,8(3) # offset 64 - stdu 19,8(3) # offset 72 - stdu 20,8(3) # offset 80 - stdu 21,8(3) # offset 88 - stdu 22,8(3) # offset 96 - stdu 23,8(3) # offset 104 - stdu 24,8(3) # offset 112 - stdu 25,8(3) # offset 120 - stdu 26,8(3) # offset 128 - stdu 27,8(3) # offset 136 - stdu 28,8(3) # offset 144 - stdu 29,8(3) # offset 152 - stdu 30,8(3) # offset 160 - stdu 31,8(3) # offset 168 - mflr 4 - stdu 4,8(3) # offset 176 - mfcr 4 - stwu 4,8(3) # offset 184 -#else - stw 1,0(3) # offset 0 - stwu 2,4(3) # offset 4 - stwu 13,4(3) # offset 8 - stwu 14,4(3) # offset 12 - stwu 15,4(3) # offset 16 - stwu 16,4(3) # offset 20 - stwu 17,4(3) # offset 24 - stwu 18,4(3) # offset 28 - stwu 19,4(3) # offset 32 - stwu 20,4(3) # offset 36 - stwu 21,4(3) # offset 40 - stwu 22,4(3) # offset 44 - stwu 23,4(3) # offset 48 - stwu 24,4(3) # offset 52 - stwu 25,4(3) # offset 56 - stwu 26,4(3) # offset 60 - stwu 27,4(3) # offset 64 - stwu 28,4(3) # offset 68 - stwu 29,4(3) # offset 72 - stwu 30,4(3) # offset 76 - stwu 31,4(3) # offset 80 -#endif - -#if !__powerpc64__ - /* If __SPE__, then add 84 to the offset shown from this point on until - the end of this function. This difference comes from the fact that - we save 21 64-bit registers instead of 21 32-bit registers above. */ - mflr 4 - stwu 4,4(3) # offset 84 - mfcr 4 - stwu 4,4(3) # offset 88 - # one word pad to get floating point aligned on 8 byte boundary -#endif - - /* Check whether we need to save FPRs. Checking __NO_FPRS__ - on its own would be enough for GCC 4.1 and above, but older - compilers only define _SOFT_FLOAT, so check both. */ -#if !defined (__NO_FPRS__) && !defined (_SOFT_FLOAT) -#if defined (__rtems__) && !defined (__PPC_CPU_E6500__) - /* For some RTEMS multilibs, the FPU and Altivec units are disabled - during interrupt handling. Do not save and restore the - corresponding registers in this case. */ - mfmsr 5 - andi. 5,5,0x2000 - beq 1f -#endif - - /* If __powerpc64__, then add 96 to the offset shown from this point on until - the end of this function. This difference comes from the fact that - we save 23 64-bit registers instead of 23 32-bit registers above and - we take alignement requirements of floating point and Altivec stores - into account. */ - - stfdu 14,8(3) # offset 96 - stfdu 15,8(3) # offset 104 - stfdu 16,8(3) # offset 112 - stfdu 17,8(3) # offset 120 - stfdu 18,8(3) # offset 128 - stfdu 19,8(3) # offset 136 - stfdu 20,8(3) # offset 144 - stfdu 21,8(3) # offset 152 - stfdu 22,8(3) # offset 160 - stfdu 23,8(3) # offset 168 - stfdu 24,8(3) # offset 176 - stfdu 25,8(3) # offset 184 - stfdu 26,8(3) # offset 192 - stfdu 27,8(3) # offset 200 - stfdu 28,8(3) # offset 208 - stfdu 29,8(3) # offset 216 - stfdu 30,8(3) # offset 224 - stfdu 31,8(3) # offset 232 -1: -#endif - - /* This requires a total of 21 * 4 + 18 * 8 + 4 + 4 + 4 - bytes == 60 * 4 bytes == 240 bytes. */ - -#ifdef __ALTIVEC__ -#if defined (__rtems__) && !defined (__PPC_CPU_E6500__) - mfmsr 5 - andis. 5,5,0x200 - beq 1f -#endif - /* save Altivec vrsave and vr20-vr31 registers */ - mfspr 4,256 # vrsave register - stwu 4,16(3) # offset 248 - addi 3,3,8 - stvx 20,0,3 # offset 256 - addi 3,3,16 - stvx 21,0,3 # offset 272 - addi 3,3,16 - stvx 22,0,3 # offset 288 - addi 3,3,16 - stvx 23,0,3 # offset 304 - addi 3,3,16 - stvx 24,0,3 # offset 320 - addi 3,3,16 - stvx 25,0,3 # offset 336 - addi 3,3,16 - stvx 26,0,3 # offset 352 - addi 3,3,16 - stvx 27,0,3 # offset 368 - addi 3,3,16 - stvx 28,0,3 # offset 384 - addi 3,3,16 - stvx 29,0,3 # offset 400 - addi 3,3,16 - stvx 30,0,3 # offset 416 - addi 3,3,16 - stvx 31,0,3 # offset 432 -1: - - /* This requires a total of 240 + 8 + 8 + 12 * 16 == 448 bytes. */ -#endif - li 3,0 - blr -FUNC_END(setjmp) - - -FUNC_START(longjmp) -#ifdef __ALTIVEC__ - addi 3,3,15 # align Altivec to 16 byte boundary -#if __powerpc64__ - clrrdi 3,3,4 -#else - rlwinm 3,3,0,0,27 -#endif -#else - addi 3,3,7 # align to 8 byte boundary -#if __powerpc64__ - clrrdi 3,3,3 -#else - rlwinm 3,3,0,0,28 -#endif -#endif -#if __SPE__ - /* If we are E500, then restore 64-bit registers. */ - evldd 1,0(3) # offset 0 - evldd 2,8(3) # offset 8 - evldd 13,16(3) # offset 16 - evldd 14,24(3) # offset 24 - evldd 15,32(3) # offset 32 - evldd 16,40(3) # offset 40 - evldd 17,48(3) # offset 48 - evldd 18,56(3) # offset 56 - evldd 19,64(3) # offset 64 - evldd 20,72(3) # offset 72 - evldd 21,80(3) # offset 80 - evldd 22,88(3) # offset 88 - evldd 23,96(3) # offset 96 - evldd 24,104(3) # offset 104 - evldd 25,112(3) # offset 112 - evldd 26,120(3) # offset 120 - evldd 27,128(3) # offset 128 - evldd 28,136(3) # offset 136 - evldd 29,144(3) # offset 144 - evldd 30,152(3) # offset 152 - evldd 31,160(3) # offset 160 - - /* Add 164 to r3 to account for the amount of data we just - loaded. Note that we are not adding 168 because the next - load instruction uses an offset of 4. */ - addi 3,3,164 -#elif __powerpc64__ - /* In the first load, add 8 to r3 so that the subsequent floating - point loades are aligned on an 8 byte boundary and the Altivec - loads are aligned on a 16 byte boundary. */ - ldu 1,8(3) # offset 8 - ldu 2,8(3) # offset 16 - ldu 13,8(3) # offset 24 - ldu 14,8(3) # offset 32 - ldu 15,8(3) # offset 40 - ldu 16,8(3) # offset 48 - ldu 17,8(3) # offset 56 - ldu 18,8(3) # offset 64 - ldu 19,8(3) # offset 72 - ldu 20,8(3) # offset 80 - ldu 21,8(3) # offset 88 - ldu 22,8(3) # offset 96 - ldu 23,8(3) # offset 104 - ldu 24,8(3) # offset 112 - ldu 25,8(3) # offset 120 - ldu 26,8(3) # offset 128 - ldu 27,8(3) # offset 136 - ldu 28,8(3) # offset 144 - ldu 29,8(3) # offset 152 - ldu 30,8(3) # offset 160 - ldu 31,8(3) # offset 168 - ldu 5,8(3) # offset 176 - mtlr 5 - lwzu 5,8(3) # offset 184 - mtcrf 255,5 -#else - lwz 1,0(3) # offset 0 - lwzu 2,4(3) # offset 4 - lwzu 13,4(3) # offset 8 - lwzu 14,4(3) # offset 12 - lwzu 15,4(3) # offset 16 - lwzu 16,4(3) # offset 20 - lwzu 17,4(3) # offset 24 - lwzu 18,4(3) # offset 28 - lwzu 19,4(3) # offset 32 - lwzu 20,4(3) # offset 36 - lwzu 21,4(3) # offset 40 - lwzu 22,4(3) # offset 44 - lwzu 23,4(3) # offset 48 - lwzu 24,4(3) # offset 52 - lwzu 25,4(3) # offset 56 - lwzu 26,4(3) # offset 60 - lwzu 27,4(3) # offset 64 - lwzu 28,4(3) # offset 68 - lwzu 29,4(3) # offset 72 - lwzu 30,4(3) # offset 76 - lwzu 31,4(3) # offset 80 -#endif - /* If __SPE__, then add 84 to the offset shown from this point on until - the end of this function. This difference comes from the fact that - we restore 22 64-bit registers instead of 22 32-bit registers above. */ - -#if !__powerpc64__ - lwzu 5,4(3) # offset 84 - mtlr 5 - lwzu 5,4(3) # offset 88 - mtcrf 255,5 - # one word pad to get floating point aligned on 8 byte boundary -#endif - - /* Check whether we need to restore FPRs. Checking - __NO_FPRS__ on its own would be enough for GCC 4.1 and - above, but older compilers only define _SOFT_FLOAT, so - check both. */ -#if !defined (__NO_FPRS__) && !defined (_SOFT_FLOAT) -#if defined (__rtems__) && !defined (__PPC_CPU_E6500__) - mfmsr 5 - andi. 5,5,0x2000 - beq 1f -#endif - - /* If __powerpc64__, then add 96 to the offset shown from this point on until - the end of this function. This difference comes from the fact that - we restore 23 64-bit registers instead of 23 32-bit registers above and - we take alignement requirements of floating point and Altivec loads - into account. */ - - lfdu 14,8(3) # offset 96 - lfdu 15,8(3) # offset 104 - lfdu 16,8(3) # offset 112 - lfdu 17,8(3) # offset 120 - lfdu 18,8(3) # offset 128 - lfdu 19,8(3) # offset 136 - lfdu 20,8(3) # offset 144 - lfdu 21,8(3) # offset 152 - lfdu 22,8(3) # offset 160 - lfdu 23,8(3) # offset 168 - lfdu 24,8(3) # offset 176 - lfdu 25,8(3) # offset 184 - lfdu 26,8(3) # offset 192 - lfdu 27,8(3) # offset 200 - lfdu 28,8(3) # offset 208 - lfdu 29,8(3) # offset 216 - lfdu 30,8(3) # offset 224 - lfdu 31,8(3) # offset 232 -1: -#endif - -#ifdef __ALTIVEC__ -#if defined (__rtems__) && !defined (__PPC_CPU_E6500__) - mfmsr 5 - andis. 5,5,0x200 - beq 1f -#endif - /* restore Altivec vrsave and v20-v31 registers */ - lwzu 5,16(3) # offset 248 - mtspr 256,5 # vrsave - addi 3,3,8 - lvx 20,0,3 # offset 256 - addi 3,3,16 - lvx 21,0,3 # offset 272 - addi 3,3,16 - lvx 22,0,3 # offset 288 - addi 3,3,16 - lvx 23,0,3 # offset 304 - addi 3,3,16 - lvx 24,0,3 # offset 320 - addi 3,3,16 - lvx 25,0,3 # offset 336 - addi 3,3,16 - lvx 26,0,3 # offset 352 - addi 3,3,16 - lvx 27,0,3 # offset 368 - addi 3,3,16 - lvx 28,0,3 # offset 384 - addi 3,3,16 - lvx 29,0,3 # offset 400 - addi 3,3,16 - lvx 30,0,3 # offset 416 - addi 3,3,16 - lvx 31,0,3 # offset 432 -1: -#endif - - mr. 3,4 - bclr+ 4,2 - li 3,1 - blr -FUNC_END(longjmp) diff --git a/lib/machine/powerpc/simdldtoa.c b/lib/machine/powerpc/simdldtoa.c deleted file mode 100644 index 9a90e64..0000000 --- a/lib/machine/powerpc/simdldtoa.c +++ /dev/null @@ -1,3722 +0,0 @@ - - /* Extended precision arithmetic functions for long double I/O. - * This program has been placed in the public domain. - */ - -#ifdef __SPE__ - -#include <_ansi.h> -#include -#include -#include -#include "mprec.h" -#include "fix64.h" - -/* These are the externally visible entries. */ -/* linux name: long double _IO_strtold (char *, char **); */ -void _simdstrtold (char *, char **, LONG_DOUBLE_UNION *); -char * _simdldtoa_r (struct _reent *, LONG_DOUBLE_UNION *, int, int, int *, int *, char **); - - /* Number of 16 bit words in external x type format */ - #define NE 10 - - /* Number of 16 bit words in internal format */ - #define NI (NE+3) - - /* Array offset to exponent */ - #define E 1 - - /* Array offset to high guard word */ - #define M 2 - - /* Number of bits of precision */ - #define NBITS ((NI-4)*16) - - /* Maximum number of decimal digits in ASCII conversion - * = NBITS*log10(2) - */ - #define NDEC (NBITS*8/27) - - /* The exponent of 1.0 */ - #define EXONE (0x3fff) - - /* Maximum exponent digits - base 10 */ - #define MAX_EXP_DIGITS 5 - -/* Control structure for long doublue conversion including rounding precision values. - * rndprc can be set to 80 (if NE=6), 64, 56, 53, or 24 bits. - */ -typedef struct -{ - int rlast; - int rndprc; - int rw; - int re; - int outexpon; - unsigned short rmsk; - unsigned short rmbit; - unsigned short rebit; - unsigned short rbit[NI]; - unsigned short equot[NI]; -} LDPARMS; - -static void esub(short unsigned int *a, short unsigned int *b, short unsigned int *c, LDPARMS *ldp); -static void emul(short unsigned int *a, short unsigned int *b, short unsigned int *c, LDPARMS *ldp); -static void ediv(short unsigned int *a, short unsigned int *b, short unsigned int *c, LDPARMS *ldp); -static int ecmp(short unsigned int *a, short unsigned int *b); -static int enormlz(short unsigned int *x); -static int eshift(short unsigned int *x, int sc); -static void eshup1(register short unsigned int *x); -static void eshup8(register short unsigned int *x); -static void eshup6(register short unsigned int *x); -static void eshdn1(register short unsigned int *x); -static void eshdn8(register short unsigned int *x); -static void eshdn6(register short unsigned int *x); -static void eneg(short unsigned int *x); -static void emov(register short unsigned int *a, register short unsigned int *b); -static void eclear(register short unsigned int *x); -static void einfin(register short unsigned int *x, register LDPARMS *ldp); -static void efloor(short unsigned int *x, short unsigned int *y, LDPARMS *ldp); -static void etoasc(short unsigned int *x, char *string, int ndigs, int outformat, LDPARMS *ldp); - -#if SIMD_LDBL_MANT_DIG == 24 -static void e24toe(short unsigned int *pe, short unsigned int *y, LDPARMS *ldp); -#elif SIMD_LDBL_MANT_DIG == 53 -static void e53toe(short unsigned int *pe, short unsigned int *y, LDPARMS *ldp); -#elif SIMD_LDBL_MANT_DIG == 64 -static void e64toe(short unsigned int *pe, short unsigned int *y, LDPARMS *ldp); -#else -static void e113toe(short unsigned int *pe, short unsigned int *y, LDPARMS *ldp); -#endif - -/* econst.c */ -/* e type constants used by high precision check routines */ - -#if NE == 10 -/* 0.0 */ -static unsigned short ezero[NE] = - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,}; - -/* 1.0E0 */ -static unsigned short eone[NE] = - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x3fff,}; - -#else - -/* 0.0 */ -static unsigned short ezero[NE] = { -0, 0000000,0000000,0000000,0000000,0000000,}; -/* 1.0E0 */ -static unsigned short eone[NE] = { -0, 0000000,0000000,0000000,0100000,0x3fff,}; - -#endif - -/* Debugging routine for displaying errors */ -#ifdef DEBUG -/* Notice: the order of appearance of the following - * messages is bound to the error codes defined - * in mconf.h. - */ -static char *ermsg[7] = { -"unknown", /* error code 0 */ -"domain", /* error code 1 */ -"singularity", /* et seq. */ -"overflow", -"underflow", -"total loss of precision", -"partial loss of precision" -}; -#define mtherr(name, code) printf( "\n%s %s error\n", name, ermsg[code] ); -#else -#define mtherr(name, code) -#endif - -/* ieee.c - * - * Extended precision IEEE binary floating point arithmetic routines - * - * Numbers are stored in C language as arrays of 16-bit unsigned - * short integers. The arguments of the routines are pointers to - * the arrays. - * - * - * External e type data structure, simulates Intel 8087 chip - * temporary real format but possibly with a larger significand: - * - * NE-1 significand words (least significant word first, - * most significant bit is normally set) - * exponent (value = EXONE for 1.0, - * top bit is the sign) - * - * - * Internal data structure of a number (a "word" is 16 bits): - * - * ei[0] sign word (0 for positive, 0xffff for negative) - * ei[1] biased exponent (value = EXONE for the number 1.0) - * ei[2] high guard word (always zero after normalization) - * ei[3] - * to ei[NI-2] significand (NI-4 significand words, - * most significant word first, - * most significant bit is set) - * ei[NI-1] low guard word (0x8000 bit is rounding place) - * - * - * - * Routines for external format numbers - * - * asctoe( string, e ) ASCII string to extended double e type - * asctoe64( string, &d ) ASCII string to long double - * asctoe53( string, &d ) ASCII string to double - * asctoe24( string, &f ) ASCII string to single - * asctoeg( string, e, prec, ldp ) ASCII string to specified precision - * e24toe( &f, e, ldp ) IEEE single precision to e type - * e53toe( &d, e, ldp ) IEEE double precision to e type - * e64toe( &d, e, ldp ) IEEE long double precision to e type - * e113toe( &d, e, ldp ) IEEE long double precision to e type - * eabs(e) absolute value - * eadd( a, b, c ) c = b + a - * eclear(e) e = 0 - * ecmp (a, b) Returns 1 if a > b, 0 if a == b, - * -1 if a < b, -2 if either a or b is a NaN. - * ediv( a, b, c, ldp ) c = b / a - * efloor( a, b, ldp ) truncate to integer, toward -infinity - * efrexp( a, exp, s ) extract exponent and significand - * eifrac( e, &l, frac ) e to long integer and e type fraction - * euifrac( e, &l, frac ) e to unsigned long integer and e type fraction - * einfin( e, ldp ) set e to infinity, leaving its sign alone - * eldexp( a, n, b ) multiply by 2**n - * emov( a, b ) b = a - * emul( a, b, c, ldp ) c = b * a - * eneg(e) e = -e - * eround( a, b ) b = nearest integer value to a - * esub( a, b, c, ldp ) c = b - a - * e24toasc( &f, str, n ) single to ASCII string, n digits after decimal - * e53toasc( &d, str, n ) double to ASCII string, n digits after decimal - * e64toasc( &d, str, n ) long double to ASCII string - * etoasc(e,str,n,fmt,ldp)e to ASCII string, n digits after decimal - * etoe24( e, &f ) convert e type to IEEE single precision - * etoe53( e, &d ) convert e type to IEEE double precision - * etoe64( e, &d ) convert e type to IEEE long double precision - * ltoe( &l, e ) long (32 bit) integer to e type - * ultoe( &l, e ) unsigned long (32 bit) integer to e type - * eisneg( e ) 1 if sign bit of e != 0, else 0 - * eisinf( e ) 1 if e has maximum exponent (non-IEEE) - * or is infinite (IEEE) - * eisnan( e ) 1 if e is a NaN - * esqrt( a, b ) b = square root of a - * - * - * Routines for internal format numbers - * - * eaddm( ai, bi ) add significands, bi = bi + ai - * ecleaz(ei) ei = 0 - * ecleazs(ei) set ei = 0 but leave its sign alone - * ecmpm( ai, bi ) compare significands, return 1, 0, or -1 - * edivm( ai, bi, ldp ) divide significands, bi = bi / ai - * emdnorm(ai,l,s,exp,ldp) normalize and round off - * emovi( a, ai ) convert external a to internal ai - * emovo( ai, a, ldp ) convert internal ai to external a - * emovz( ai, bi ) bi = ai, low guard word of bi = 0 - * emulm( ai, bi, ldp ) multiply significands, bi = bi * ai - * enormlz(ei) left-justify the significand - * eshdn1( ai ) shift significand and guards down 1 bit - * eshdn8( ai ) shift down 8 bits - * eshdn6( ai ) shift down 16 bits - * eshift( ai, n ) shift ai n bits up (or down if n < 0) - * eshup1( ai ) shift significand and guards up 1 bit - * eshup8( ai ) shift up 8 bits - * eshup6( ai ) shift up 16 bits - * esubm( ai, bi ) subtract significands, bi = bi - ai - * - * - * The result is always normalized and rounded to NI-4 word precision - * after each arithmetic operation. - * - * Exception flags are NOT fully supported. - * - * Define INFINITY in mconf.h for support of infinity; otherwise a - * saturation arithmetic is implemented. - * - * Define NANS for support of Not-a-Number items; otherwise the - * arithmetic will never produce a NaN output, and might be confused - * by a NaN input. - * If NaN's are supported, the output of ecmp(a,b) is -2 if - * either a or b is a NaN. This means asking if(ecmp(a,b) < 0) - * may not be legitimate. Use if(ecmp(a,b) == -1) for less-than - * if in doubt. - * Signaling NaN's are NOT supported; they are treated the same - * as quiet NaN's. - * - * Denormals are always supported here where appropriate (e.g., not - * for conversion to DEC numbers). - */ - -/* - * Revision history: - * - * 5 Jan 84 PDP-11 assembly language version - * 6 Dec 86 C language version - * 30 Aug 88 100 digit version, improved rounding - * 15 May 92 80-bit long double support - * 22 Nov 00 Revised to fit into newlib by Jeff Johnston - * - * Author: S. L. Moshier. - * - * Copyright (c) 1984,2000 S.L. Moshier - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which 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, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - */ - -#include -/* #include "\usr\include\stdio.h" */ -/*#include "ehead.h"*/ -/*#include "mconf.h"*/ -/* mconf.h - * - * Common include file for math routines - * - * - * - * SYNOPSIS: - * - * #include "mconf.h" - * - * - * - * DESCRIPTION: - * - * This file contains definitions for error codes that are - * passed to the common error handling routine mtherr() - * (which see). - * - * The file also includes a conditional assembly definition - * for the type of computer arithmetic (IEEE, DEC, Motorola - * IEEE, or UNKnown). - * - * For Digital Equipment PDP-11 and VAX computers, certain - * IBM systems, and others that use numbers with a 56-bit - * significand, the symbol DEC should be defined. In this - * mode, most floating point constants are given as arrays - * of octal integers to eliminate decimal to binary conversion - * errors that might be introduced by the compiler. - * - * For computers, such as IBM PC, that follow the IEEE - * Standard for Binary Floating Point Arithmetic (ANSI/IEEE - * Std 754-1985), the symbol IBMPC should be defined. These - * numbers have 53-bit significands. In this mode, constants - * are provided as arrays of hexadecimal 16 bit integers. - * - * To accommodate other types of computer arithmetic, all - * constants are also provided in a normal decimal radix - * which one can hope are correctly converted to a suitable - * format by the available C language compiler. To invoke - * this mode, the symbol UNK is defined. - * - * An important difference among these modes is a predefined - * set of machine arithmetic constants for each. The numbers - * MACHEP (the machine roundoff error), MAXNUM (largest number - * represented), and several other parameters are preset by - * the configuration symbol. Check the file const.c to - * ensure that these values are correct for your computer. - * - * For ANSI C compatibility, define ANSIC equal to 1. Currently - * this affects only the atan2() function and others that use it. - */ - -/* Constant definitions for math error conditions - */ - -#define DOMAIN 1 /* argument domain error */ -#define SING 2 /* argument singularity */ -#define OVERFLOW 3 /* overflow range error */ -#define UNDERFLOW 4 /* underflow range error */ -#define TLOSS 5 /* total loss of precision */ -#define PLOSS 6 /* partial loss of precision */ - -#define EDOM 33 -#define ERANGE 34 - -typedef struct - { - double r; - double i; - }cmplx; - -/* Type of computer arithmetic */ - -#ifndef DEC -#ifdef __IEEE_LITTLE_ENDIAN -#define IBMPC 1 -#else /* !__IEEE_LITTLE_ENDIAN */ -#define MIEEE 1 -#endif /* !__IEEE_LITTLE_ENDIAN */ -#endif /* !DEC */ - -/* Define 1 for ANSI C atan2() function - * See atan.c and clog.c. - */ -#define ANSIC 1 - -/*define VOLATILE volatile*/ -#define VOLATILE - -#define NANS -#define INFINITY - -/* NaN's require infinity support. */ -#ifdef NANS -#ifndef INFINITY -#define INFINITY -#endif -#endif - -/* This handles 64-bit long ints. */ -#define LONGBITS (8 * sizeof(long)) - - -static void eaddm(short unsigned int *x, short unsigned int *y); -static void esubm(short unsigned int *x, short unsigned int *y); -static void emdnorm(short unsigned int *s, int lost, int subflg, long int exp, int rcntrl, LDPARMS *ldp); -static int asctoeg(char *ss, short unsigned int *y, int oprec, LDPARMS *ldp); -static void enan(short unsigned int *nan, int size); -#if SIMD_LDBL_MANT_DIG == 24 -static void toe24(short unsigned int *x, short unsigned int *y); -#elif SIMD_LDBL_MANT_DIG == 53 -static void toe53(short unsigned int *x, short unsigned int *y); -#elif SIMD_LDBL_MANT_DIG == 64 -static void toe64(short unsigned int *a, short unsigned int *b); -#else -static void toe113(short unsigned int *a, short unsigned int *b); -#endif -static void eiremain(short unsigned int *den, short unsigned int *num, LDPARMS *ldp); -static int ecmpm(register short unsigned int *a, register short unsigned int *b); -static int edivm(short unsigned int *den, short unsigned int *num, LDPARMS *ldp); -static int emulm(short unsigned int *a, short unsigned int *b, LDPARMS *ldp); -static int eisneg(short unsigned int *x); -static int eisinf(short unsigned int *x); -static void emovi(short unsigned int *a, short unsigned int *b); -static void emovo(short unsigned int *a, short unsigned int *b, LDPARMS *ldp); -static void emovz(register short unsigned int *a, register short unsigned int *b); -static void ecleaz(register short unsigned int *xi); -static void eadd1(short unsigned int *a, short unsigned int *b, short unsigned int *c, int subflg, LDPARMS *ldp); -static int eisnan(short unsigned int *x); -static int eiisnan(short unsigned int *x); - -#ifdef DEC -static void etodec(), todec(), dectoe(); -#endif - -/* -; Clear out entire external format number. -; -; unsigned short x[]; -; eclear( x ); -*/ - -static void eclear(register short unsigned int *x) -{ -register int i; - -for( i=0; irndprc < NBITS ) - { - if (ldp->rndprc == 113) - { - *(x - 9) = 0; - *(x - 8) = 0; - } - if( ldp->rndprc == 64 ) - { - *(x-5) = 0; - } - if( ldp->rndprc == 53 ) - { - *(x-4) = 0xf800; - } - else - { - *(x-4) = 0; - *(x-3) = 0; - *(x-2) = 0xff00; - } - } -#endif -} - -/* Move in external format number, - * converting it to internal format. - */ -static void emovi(short unsigned int *a, short unsigned int *b) -{ -register unsigned short *p, *q; -int i; - -q = b; -p = a + (NE-1); /* point to last word of external number */ -/* get the sign bit */ -if( *p & 0x8000 ) - *q++ = 0xffff; -else - *q++ = 0; -/* get the exponent */ -*q = *p--; -*q++ &= 0x7fff; /* delete the sign bit */ -#ifdef INFINITY -if( (*(q-1) & 0x7fff) == 0x7fff ) - { -#ifdef NANS - if( eisnan(a) ) - { - *q++ = 0; - for( i=3; i b -; 0 if a == b -; -1 if a < b -*/ -static int ecmpm(register short unsigned int *a, register short unsigned int *b) -{ -int i; - -a += M; /* skip up to significand area */ -b += M; -for( i=M; i *(--b) ) - return(1); -else - return(-1); -} - - -/* -; Shift significand down by 1 bit -*/ - -static void eshdn1(register short unsigned int *x) -{ -register unsigned short bits; -int i; - -x += M; /* point to significand area */ - -bits = 0; -for( i=M; i>= 1; - if( bits & 2 ) - *x |= 0x8000; - bits <<= 1; - ++x; - } -} - - - -/* -; Shift significand up by 1 bit -*/ - -static void eshup1(register short unsigned int *x) -{ -register unsigned short bits; -int i; - -x += NI-1; -bits = 0; - -for( i=M; i>= 8; - *x |= oldbyt; - oldbyt = newbyt; - ++x; - } -} - -/* -; Shift significand up by 8 bits -*/ - -static void eshup8(register short unsigned int *x) -{ -int i; -register unsigned short newbyt, oldbyt; - -x += NI-1; -oldbyt = 0; - -for( i=M; i> 8; - *x <<= 8; - *x |= oldbyt; - oldbyt = newbyt; - --x; - } -} - -/* -; Shift significand up by 16 bits -*/ - -static void eshup6(register short unsigned int *x) -{ -int i; -register unsigned short *p; - -p = x + M; -x += M + 1; - -for( i=M; i> 16) + (m >> 16) + *pp; - *pp = (unsigned short )carry; - *(pp-1) = carry >> 16; - } - } -for( i=M; iequot; - -p = &equot[0]; -*p++ = num[0]; -*p++ = num[1]; - -for( i=M; i tdenm ) - tquot = 0xffff; -*/ - /* Multiply denominator by trial quotient digit. */ - m16m( tquot, den, tprod ); - /* The quotient digit may have been overestimated. */ - if( ecmpm( tprod, num ) > 0 ) - { - tquot -= 1; - esubm( den, tprod ); - if( ecmpm( tprod, num ) > 0 ) - { - tquot -= 1; - esubm( den, tprod ); - } - } -/* - if( ecmpm( tprod, num ) > 0 ) - { - eshow( "tprod", tprod ); - eshow( "num ", num ); - printf( "tnum = %08lx, tden = %04x, tquot = %04x\n", - tnum, den[M+1], tquot ); - } -*/ - esubm( tprod, num ); -/* - if( ecmpm( num, den ) >= 0 ) - { - eshow( "num ", num ); - eshow( "den ", den ); - printf( "tnum = %08lx, tden = %04x, tquot = %04x\n", - tnum, den[M+1], tquot ); - } -*/ - equot[i] = tquot; - eshup6(num); - } -/* test for nonzero remainder after roundoff bit */ -p = &num[M]; -j = 0; -for( i=M; iequot; - -equot[0] = b[0]; -equot[1] = b[1]; -for( i=M; i NBITS ) - { - ecleazs( s ); - return; - } -#endif -exp -= j; -#ifndef INFINITY -if( exp >= 32767L ) - goto overf; -#else -if( (j > NBITS) && (exp < 32767L) ) - { - ecleazs( s ); - return; - } -#endif -if( exp < 0L ) - { - if( exp > (long )(-NBITS-1) ) - { - j = (int )exp; - i = eshift( s, j ); - if( i ) - lost = 1; - } - else - { - ecleazs( s ); - return; - } - } -/* Round off, unless told not to by rcntrl. */ -if( rcntrl == 0 ) - goto mdfin; -/* Set up rounding parameters if the control register changed. */ -if( ldp->rndprc != ldp->rlast ) - { - ecleaz( ldp->rbit ); - switch( ldp->rndprc ) - { - default: - case NBITS: - ldp->rw = NI-1; /* low guard word */ - ldp->rmsk = 0xffff; - ldp->rmbit = 0x8000; - ldp->rebit = 1; - ldp->re = ldp->rw - 1; - break; - case 113: - ldp->rw = 10; - ldp->rmsk = 0x7fff; - ldp->rmbit = 0x4000; - ldp->rebit = 0x8000; - ldp->re = ldp->rw; - break; - case 64: - ldp->rw = 7; - ldp->rmsk = 0xffff; - ldp->rmbit = 0x8000; - ldp->rebit = 1; - ldp->re = ldp->rw-1; - break; -/* For DEC arithmetic */ - case 56: - ldp->rw = 6; - ldp->rmsk = 0xff; - ldp->rmbit = 0x80; - ldp->rebit = 0x100; - ldp->re = ldp->rw; - break; - case 53: - ldp->rw = 6; - ldp->rmsk = 0x7ff; - ldp->rmbit = 0x0400; - ldp->rebit = 0x800; - ldp->re = ldp->rw; - break; - case 24: - ldp->rw = 4; - ldp->rmsk = 0xff; - ldp->rmbit = 0x80; - ldp->rebit = 0x100; - ldp->re = ldp->rw; - break; - } - ldp->rbit[ldp->re] = ldp->rebit; - ldp->rlast = ldp->rndprc; - } - -/* Shift down 1 temporarily if the data structure has an implied - * most significant bit and the number is denormal. - * For rndprc = 64 or NBITS, there is no implied bit. - * But Intel long double denormals lose one bit of significance even so. - */ -#if IBMPC -if( (exp <= 0) && (ldp->rndprc != NBITS) ) -#else -if( (exp <= 0) && (ldp->rndprc != 64) && (ldp->rndprc != NBITS) ) -#endif - { - lost |= s[NI-1] & 1; - eshdn1(s); - } -/* Clear out all bits below the rounding bit, - * remembering in r if any were nonzero. - */ -r = s[ldp->rw] & ldp->rmsk; -if( ldp->rndprc < NBITS ) - { - i = ldp->rw + 1; - while( i < NI ) - { - if( s[i] ) - r |= 1; - s[i] = 0; - ++i; - } - } -s[ldp->rw] &= ~ldp->rmsk; -if( (r & ldp->rmbit) != 0 ) - { - if( r == ldp->rmbit ) - { - if( lost == 0 ) - { /* round to even */ - if( (s[ldp->re] & ldp->rebit) == 0 ) - goto mddone; - } - else - { - if( subflg != 0 ) - goto mddone; - } - } - eaddm( ldp->rbit, s ); - } -mddone: -#if IBMPC -if( (exp <= 0) && (ldp->rndprc != NBITS) ) -#else -if( (exp <= 0) && (ldp->rndprc != 64) && (ldp->rndprc != NBITS) ) -#endif - { - eshup1(s); - } -if( s[2] != 0 ) - { /* overflow on roundoff */ - eshdn1(s); - exp += 1; - } -mdfin: -s[NI-1] = 0; -if( exp >= 32767L ) - { -#ifndef INFINITY -overf: -#endif -#ifdef INFINITY - s[1] = 32767; - for( i=2; irndprc < 64) || (ldp->rndprc == 113) ) - { - s[ldp->rw] &= ~ldp->rmsk; - if( ldp->rndprc == 24 ) - { - s[5] = 0; - s[6] = 0; - } - } -#endif - return; - } -if( exp < 0 ) - s[1] = 0; -else - s[1] = (unsigned short )exp; -} - - - -/* -; Subtract external format numbers. -; -; unsigned short a[NE], b[NE], c[NE]; -; LDPARMS *ldp; -; esub( a, b, c, ldp ); c = b - a -*/ - -static void esub(short unsigned int *a, short unsigned int *b, short unsigned int *c, LDPARMS *ldp) -{ - -#ifdef NANS -if( eisnan(a) ) - { - emov (a, c); - return; - } -if( eisnan(b) ) - { - emov(b,c); - return; - } -/* Infinity minus infinity is a NaN. - * Test for subtracting infinities of the same sign. - */ -if( eisinf(a) && eisinf(b) && ((eisneg (a) ^ eisneg (b)) == 0)) - { - mtherr( "esub", DOMAIN ); - enan( c, NBITS ); - return; - } -#endif -eadd1( a, b, c, 1, ldp ); -} - - - -static void eadd1(short unsigned int *a, short unsigned int *b, short unsigned int *c, int subflg, LDPARMS *ldp) -{ -unsigned short ai[NI], bi[NI], ci[NI]; -int i, lost, j, k; -long lt, lta, ltb; - -#ifdef INFINITY -if( eisinf(a) ) - { - emov(a,c); - if( subflg ) - eneg(c); - return; - } -if( eisinf(b) ) - { - emov(b,c); - return; - } -#endif -emovi( a, ai ); -emovi( b, bi ); -if( subflg ) - ai[0] = ~ai[0]; - -/* compare exponents */ -lta = ai[E]; -ltb = bi[E]; -lt = lta - ltb; -if( lt > 0L ) - { /* put the larger number in bi */ - emovz( bi, ci ); - emovz( ai, bi ); - emovz( ci, ai ); - ltb = bi[E]; - lt = -lt; - } -lost = 0; -if( lt != 0L ) - { - if( lt < (long )(-NBITS-1) ) - goto done; /* answer same as larger addend */ - k = (int )lt; - lost = eshift( ai, k ); /* shift the smaller number down */ - } -else - { -/* exponents were the same, so must compare significands */ - i = ecmpm( ai, bi ); - if( i == 0 ) - { /* the numbers are identical in magnitude */ - /* if different signs, result is zero */ - if( ai[0] != bi[0] ) - { - eclear(c); - return; - } - /* if same sign, result is double */ - /* double denomalized tiny number */ - if( (bi[E] == 0) && ((bi[3] & 0x8000) == 0) ) - { - eshup1( bi ); - goto done; - } - /* add 1 to exponent unless both are zero! */ - for( j=1; j 0 ) - { /* put the larger number in bi */ - emovz( bi, ci ); - emovz( ai, bi ); - emovz( ci, ai ); - } - } -if( ai[0] == bi[0] ) - { - eaddm( ai, bi ); - subflg = 0; - } -else - { - esubm( ai, bi ); - subflg = 1; - } -emdnorm( bi, lost, subflg, ltb, 64, ldp ); - -done: -emovo( bi, c, ldp ); -} - - - -/* -; Divide. -; -; unsigned short a[NE], b[NE], c[NE]; -; LDPARMS *ldp; -; ediv( a, b, c, ldp ); c = b / a -*/ -static void ediv(short unsigned int *a, short unsigned int *b, short unsigned int *c, LDPARMS *ldp) -{ -unsigned short ai[NI], bi[NI]; -int i; -long lt, lta, ltb; - -#ifdef NANS -/* Return any NaN input. */ -if( eisnan(a) ) - { - emov(a,c); - return; - } -if( eisnan(b) ) - { - emov(b,c); - return; - } -/* Zero over zero, or infinity over infinity, is a NaN. */ -if( ((ecmp(a,ezero) == 0) && (ecmp(b,ezero) == 0)) - || (eisinf (a) && eisinf (b)) ) - { - mtherr( "ediv", DOMAIN ); - enan( c, NBITS ); - return; - } -#endif -/* Infinity over anything else is infinity. */ -#ifdef INFINITY -if( eisinf(b) ) - { - if( eisneg(a) ^ eisneg(b) ) - *(c+(NE-1)) = 0x8000; - else - *(c+(NE-1)) = 0; - einfin(c, ldp); - return; - } -if( eisinf(a) ) - { - eclear(c); - return; - } -#endif -emovi( a, ai ); -emovi( b, bi ); -lta = ai[E]; -ltb = bi[E]; -if( bi[E] == 0 ) - { /* See if numerator is zero. */ - for( i=1; i 64 -static void e113toe(short unsigned int *pe, short unsigned int *y, LDPARMS *ldp) -{ -register unsigned short r; -unsigned short *e, *p; -unsigned short yy[NI]; -int denorm, i; - -e = pe; -denorm = 0; -ecleaz(yy); -#ifdef IBMPC -e += 7; -#endif -r = *e; -yy[0] = 0; -if( r & 0x8000 ) - yy[0] = 0xffff; -r &= 0x7fff; -#ifdef INFINITY -if( r == 0x7fff ) - { -#ifdef NANS -#ifdef IBMPC - for( i=0; i<7; i++ ) - { - if( pe[i] != 0 ) - { - enan( y, NBITS ); - return; - } - } -#else /* !IBMPC */ - for( i=1; i<8; i++ ) - { - if( pe[i] != 0 ) - { - enan( y, NBITS ); - return; - } - } -#endif /* !IBMPC */ -#endif /* NANS */ - eclear( y ); - einfin( y, ldp ); - if( *e & 0x8000 ) - eneg(y); - return; - } -#endif /* INFINITY */ -yy[E] = r; -p = &yy[M + 1]; -#ifdef IBMPC -for( i=0; i<7; i++ ) - *p++ = *(--e); -#else /* IBMPC */ -++e; -for( i=0; i<7; i++ ) - *p++ = *e++; -#endif /* IBMPC */ -/* If denormal, remove the implied bit; else shift down 1. */ -if( r == 0 ) - { - yy[M] = 0; - } -else - { - yy[M] = 1; - eshift( yy, -1 ); - } -emovo(yy,y,ldp); -} - -/* move out internal format to ieee long double */ -static void toe113(short unsigned int *a, short unsigned int *b) -{ -register unsigned short *p, *q; -unsigned short i; - -#ifdef NANS -if( eiisnan(a) ) - { - enan( b, 113 ); - return; - } -#endif -p = a; -#ifdef MIEEE -q = b; -#else -q = b + 7; /* point to output exponent */ -#endif - -/* If not denormal, delete the implied bit. */ -if( a[E] != 0 ) - { - eshup1 (a); - } -/* combine sign and exponent */ -i = *p++; -#ifdef MIEEE -if( i ) - *q++ = *p++ | 0x8000; -else - *q++ = *p++; -#else -if( i ) - *q-- = *p++ | 0x8000; -else - *q-- = *p++; -#endif -/* skip over guard word */ -++p; -/* move the significand */ -#ifdef MIEEE -for (i = 0; i < 7; i++) - *q++ = *p++; -#else -for (i = 0; i < 7; i++) - *q-- = *p++; -#endif -} -#endif /* SIMD_LDBL_MANT_DIG > 64 */ - - -#if SIMD_LDBL_MANT_DIG == 64 -static void e64toe(short unsigned int *pe, short unsigned int *y, LDPARMS *ldp) -{ -unsigned short yy[NI]; -unsigned short *p, *q, *e; -int i; - -e = pe; -p = yy; - -for( i=0; i>= 4; -/* If zero exponent, then the significand is denormalized. - * So, take back the understood high significand bit. */ -if( r == 0 ) - { - denorm = 1; - yy[M] &= ~0x10; - } -r += EXONE - 01777; -yy[E] = r; -p = &yy[M+1]; -#ifdef IBMPC -*p++ = *(--e); -*p++ = *(--e); -*p++ = *(--e); -#else /* !IBMPC */ -++e; -*p++ = *e++; -*p++ = *e++; -*p++ = *e++; -#endif /* !IBMPC */ -(void )eshift( yy, -5 ); -if( denorm ) - { /* if zero exponent, then normalize the significand */ - if( (k = enormlz(yy)) > NBITS ) - ecleazs(yy); - else - yy[E] -= (unsigned short )(k-1); - } -emovo( yy, y, ldp ); -#endif /* !DEC */ -} - -/* -; e type to IEEE double precision -; double d; -; unsigned short x[NE]; -; etoe53( x, &d ); -*/ - -#ifdef DEC - -static void etoe53( x, e ) -unsigned short *x, *e; -{ -etodec( x, e ); /* see etodec.c */ -} - -static void toe53( x, y ) -unsigned short *x, *y; -{ -todec( x, y ); -} - -#else - -static void toe53(short unsigned int *x, short unsigned int *y) -{ -unsigned short i; -unsigned short *p; - - -#ifdef NANS -if( eiisnan(x) ) - { - enan( y, 53 ); - return; - } -#endif -p = &x[0]; -#ifdef IBMPC -y += 3; -#endif -#ifdef DEC -y += 3; -#endif -*y = 0; /* output high order */ -if( *p++ ) - *y = 0x8000; /* output sign bit */ - -i = *p++; -if( i >= (unsigned int )2047 ) - { /* Saturate at largest number less than infinity. */ -#ifdef INFINITY - *y |= 0x7ff0; -#ifdef IBMPC - *(--y) = 0; - *(--y) = 0; - *(--y) = 0; -#else /* !IBMPC */ - ++y; - *y++ = 0; - *y++ = 0; - *y++ = 0; -#endif /* IBMPC */ -#else /* !INFINITY */ - *y |= (unsigned short )0x7fef; -#ifdef IBMPC - *(--y) = 0xffff; - *(--y) = 0xffff; - *(--y) = 0xffff; -#else /* !IBMPC */ - ++y; - *y++ = 0xffff; - *y++ = 0xffff; - *y++ = 0xffff; -#endif -#endif /* !INFINITY */ - return; - } -if( i == 0 ) - { - (void )eshift( x, 4 ); - } -else - { - i <<= 4; - (void )eshift( x, 5 ); - } -i |= *p++ & (unsigned short )0x0f; /* *p = xi[M] */ -*y |= (unsigned short )i; /* high order output already has sign bit set */ -#ifdef IBMPC -*(--y) = *p++; -*(--y) = *p++; -*(--y) = *p; -#else /* !IBMPC */ -++y; -*y++ = *p++; -*y++ = *p++; -*y++ = *p++; -#endif /* !IBMPC */ -} - -#endif /* not DEC */ -#endif /* SIMD_LDBL_MANT_DIG == 53 */ - -#if SIMD_LDBL_MANT_DIG == 24 -/* -; Convert IEEE single precision to e type -; float d; -; unsigned short x[N+2]; -; dtox( &d, x ); -*/ -void e24toe( short unsigned int *pe, short unsigned int *y, LDPARMS *ldp ) -{ -register unsigned short r; -register unsigned short *p, *e; -unsigned short yy[NI]; -int denorm, k; - -e = pe; -denorm = 0; /* flag if denormalized number */ -ecleaz(yy); -#ifdef IBMPC -e += 1; -#endif -#ifdef DEC -e += 1; -#endif -r = *e; -yy[0] = 0; -if( r & 0x8000 ) - yy[0] = 0xffff; -yy[M] = (r & 0x7f) | 0200; -r &= ~0x807f; /* strip sign and 7 significand bits */ -#ifdef INFINITY -if( r == 0x7f80 ) - { -#ifdef NANS -#ifdef MIEEE - if( ((pe[0] & 0x7f) != 0) || (pe[1] != 0) ) - { - enan( y, NBITS ); - return; - } -#else /* !MIEEE */ - if( ((pe[1] & 0x7f) != 0) || (pe[0] != 0) ) - { - enan( y, NBITS ); - return; - } -#endif /* !MIEEE */ -#endif /* NANS */ - eclear( y ); - einfin( y, ldp ); - if( yy[0] ) - eneg(y); - return; - } -#endif -r >>= 7; -/* If zero exponent, then the significand is denormalized. - * So, take back the understood high significand bit. */ -if( r == 0 ) - { - denorm = 1; - yy[M] &= ~0200; - } -r += EXONE - 0177; -yy[E] = r; -p = &yy[M+1]; -#ifdef IBMPC -*p++ = *(--e); -#endif -#ifdef DEC -*p++ = *(--e); -#endif -#ifdef MIEEE -++e; -*p++ = *e++; -#endif -(void )eshift( yy, -8 ); -if( denorm ) - { /* if zero exponent, then normalize the significand */ - if( (k = enormlz(yy)) > NBITS ) - ecleazs(yy); - else - yy[E] -= (unsigned short )(k-1); - } -emovo( yy, y, ldp ); -} - -static void toe24(short unsigned int *x, short unsigned int *y) -{ -unsigned short i; -unsigned short *p; - -#ifdef NANS -if( eiisnan(x) ) - { - enan( y, 24 ); - return; - } -#endif -p = &x[0]; -#ifdef IBMPC -y += 1; -#endif -#ifdef DEC -y += 1; -#endif -*y = 0; /* output high order */ -if( *p++ ) - *y = 0x8000; /* output sign bit */ - -i = *p++; -if( i >= 255 ) - { /* Saturate at largest number less than infinity. */ -#ifdef INFINITY - *y |= (unsigned short )0x7f80; -#ifdef IBMPC - *(--y) = 0; -#endif -#ifdef DEC - *(--y) = 0; -#endif -#ifdef MIEEE - ++y; - *y = 0; -#endif -#else /* !INFINITY */ - *y |= (unsigned short )0x7f7f; -#ifdef IBMPC - *(--y) = 0xffff; -#endif -#ifdef DEC - *(--y) = 0xffff; -#endif -#ifdef MIEEE - ++y; - *y = 0xffff; -#endif -#endif /* !INFINITY */ - return; - } -if( i == 0 ) - { - (void )eshift( x, 7 ); - } -else - { - i <<= 7; - (void )eshift( x, 8 ); - } -i |= *p++ & (unsigned short )0x7f; /* *p = xi[M] */ -*y |= i; /* high order output already has sign bit set */ -#ifdef IBMPC -*(--y) = *p; -#endif -#ifdef DEC -*(--y) = *p; -#endif -#ifdef MIEEE -++y; -*y = *p; -#endif -} -#endif /* SIMD_LDBL_MANT_DIG == 24 */ - -/* Compare two e type numbers. - * - * unsigned short a[NE], b[NE]; - * ecmp( a, b ); - * - * returns +1 if a > b - * 0 if a == b - * -1 if a < b - * -2 if either a or b is a NaN. - */ -static int ecmp(short unsigned int *a, short unsigned int *b) -{ -unsigned short ai[NI], bi[NI]; -register unsigned short *p, *q; -register int i; -int msign; - -#ifdef NANS -if (eisnan (a) || eisnan (b)) - return( -2 ); -#endif -emovi( a, ai ); -p = ai; -emovi( b, bi ); -q = bi; - -if( *p != *q ) - { /* the signs are different */ -/* -0 equals + 0 */ - for( i=1; i 0 ); - -return(0); /* equality */ - - - -diff: - -if( *(--p) > *(--q) ) - return( msign ); /* p is bigger */ -else - return( -msign ); /* p is littler */ -} - - -/* -; Shift significand -; -; Shifts significand area up or down by the number of bits -; given by the variable sc. -*/ -static int eshift(short unsigned int *x, int sc) -{ -unsigned short lost; -unsigned short *p; - -if( sc == 0 ) - return( 0 ); - -lost = 0; -p = x + NI-1; - -if( sc < 0 ) - { - sc = -sc; - while( sc >= 16 ) - { - lost |= *p; /* remember lost bits */ - eshdn6(x); - sc -= 16; - } - - while( sc >= 8 ) - { - lost |= *p & 0xff; - eshdn8(x); - sc -= 8; - } - - while( sc > 0 ) - { - lost |= *p & 1; - eshdn1(x); - sc -= 1; - } - } -else - { - while( sc >= 16 ) - { - eshup6(x); - sc -= 16; - } - - while( sc >= 8 ) - { - eshup8(x); - sc -= 8; - } - - while( sc > 0 ) - { - eshup1(x); - sc -= 1; - } - } -if( lost ) - lost = 1; -return( (int )lost ); -} - - - -/* -; normalize -; -; Shift normalizes the significand area pointed to by argument -; shift count (up = positive) is returned. -*/ -static int enormlz(short unsigned int *x) -{ -register unsigned short *p; -int sc; - -sc = 0; -p = &x[M]; -if( *p != 0 ) - goto normdn; -++p; -if( *p & 0x8000 ) - return( 0 ); /* already normalized */ -while( *p == 0 ) - { - eshup6(x); - sc += 16; -/* With guard word, there are NBITS+16 bits available. - * return true if all are zero. - */ - if( sc > NBITS ) - return( sc ); - } -/* see if high byte is zero */ -while( (*p & 0xff00) == 0 ) - { - eshup8(x); - sc += 8; - } -/* now shift 1 bit at a time */ -while( (*p & 0x8000) == 0) - { - eshup1(x); - sc += 1; - if( sc > (NBITS+16) ) - { - mtherr( "enormlz", UNDERFLOW ); - return( sc ); - } - } -return( sc ); - -/* Normalize by shifting down out of the high guard word - of the significand */ -normdn: - -if( *p & 0xff00 ) - { - eshdn8(x); - sc -= 8; - } -while( *p != 0 ) - { - eshdn1(x); - sc -= 1; - - if( sc < -NBITS ) - { - mtherr( "enormlz", OVERFLOW ); - return( sc ); - } - } -return( sc ); -} - - - - -/* Convert e type number to decimal format ASCII string. - * The constants are for 64 bit precision. - */ - -#define NTEN 12 -#define MAXP 4096 - -#if NE == 10 -static unsigned short etens[NTEN + 1][NE] = -{ - {0x6576, 0x4a92, 0x804a, 0x153f, - 0xc94c, 0x979a, 0x8a20, 0x5202, 0xc460, 0x7525,}, /* 10**4096 */ - {0x6a32, 0xce52, 0x329a, 0x28ce, - 0xa74d, 0x5de4, 0xc53d, 0x3b5d, 0x9e8b, 0x5a92,}, /* 10**2048 */ - {0x526c, 0x50ce, 0xf18b, 0x3d28, - 0x650d, 0x0c17, 0x8175, 0x7586, 0xc976, 0x4d48,}, - {0x9c66, 0x58f8, 0xbc50, 0x5c54, - 0xcc65, 0x91c6, 0xa60e, 0xa0ae, 0xe319, 0x46a3,}, - {0x851e, 0xeab7, 0x98fe, 0x901b, - 0xddbb, 0xde8d, 0x9df9, 0xebfb, 0xaa7e, 0x4351,}, - {0x0235, 0x0137, 0x36b1, 0x336c, - 0xc66f, 0x8cdf, 0x80e9, 0x47c9, 0x93ba, 0x41a8,}, - {0x50f8, 0x25fb, 0xc76b, 0x6b71, - 0x3cbf, 0xa6d5, 0xffcf, 0x1f49, 0xc278, 0x40d3,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0xf020, 0xb59d, 0x2b70, 0xada8, 0x9dc5, 0x4069,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0400, 0xc9bf, 0x8e1b, 0x4034,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x2000, 0xbebc, 0x4019,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x9c40, 0x400c,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xc800, 0x4005,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x4002,}, /* 10**1 */ -}; - -static unsigned short emtens[NTEN + 1][NE] = -{ - {0x2030, 0xcffc, 0xa1c3, 0x8123, - 0x2de3, 0x9fde, 0xd2ce, 0x04c8, 0xa6dd, 0x0ad8,}, /* 10**-4096 */ - {0x8264, 0xd2cb, 0xf2ea, 0x12d4, - 0x4925, 0x2de4, 0x3436, 0x534f, 0xceae, 0x256b,}, /* 10**-2048 */ - {0xf53f, 0xf698, 0x6bd3, 0x0158, - 0x87a6, 0xc0bd, 0xda57, 0x82a5, 0xa2a6, 0x32b5,}, - {0xe731, 0x04d4, 0xe3f2, 0xd332, - 0x7132, 0xd21c, 0xdb23, 0xee32, 0x9049, 0x395a,}, - {0xa23e, 0x5308, 0xfefb, 0x1155, - 0xfa91, 0x1939, 0x637a, 0x4325, 0xc031, 0x3cac,}, - {0xe26d, 0xdbde, 0xd05d, 0xb3f6, - 0xac7c, 0xe4a0, 0x64bc, 0x467c, 0xddd0, 0x3e55,}, - {0x2a20, 0x6224, 0x47b3, 0x98d7, - 0x3f23, 0xe9a5, 0xa539, 0xea27, 0xa87f, 0x3f2a,}, - {0x0b5b, 0x4af2, 0xa581, 0x18ed, - 0x67de, 0x94ba, 0x4539, 0x1ead, 0xcfb1, 0x3f94,}, - {0xbf71, 0xa9b3, 0x7989, 0xbe68, - 0x4c2e, 0xe15b, 0xc44d, 0x94be, 0xe695, 0x3fc9,}, - {0x3d4d, 0x7c3d, 0x36ba, 0x0d2b, - 0xfdc2, 0xcefc, 0x8461, 0x7711, 0xabcc, 0x3fe4,}, - {0xc155, 0xa4a8, 0x404e, 0x6113, - 0xd3c3, 0x652b, 0xe219, 0x1758, 0xd1b7, 0x3ff1,}, - {0xd70a, 0x70a3, 0x0a3d, 0xa3d7, - 0x3d70, 0xd70a, 0x70a3, 0x0a3d, 0xa3d7, 0x3ff8,}, - {0xcccd, 0xcccc, 0xcccc, 0xcccc, - 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0x3ffb,}, /* 10**-1 */ -}; -#else -static unsigned short etens[NTEN+1][NE] = { -{0xc94c,0x979a,0x8a20,0x5202,0xc460,0x7525,},/* 10**4096 */ -{0xa74d,0x5de4,0xc53d,0x3b5d,0x9e8b,0x5a92,},/* 10**2048 */ -{0x650d,0x0c17,0x8175,0x7586,0xc976,0x4d48,}, -{0xcc65,0x91c6,0xa60e,0xa0ae,0xe319,0x46a3,}, -{0xddbc,0xde8d,0x9df9,0xebfb,0xaa7e,0x4351,}, -{0xc66f,0x8cdf,0x80e9,0x47c9,0x93ba,0x41a8,}, -{0x3cbf,0xa6d5,0xffcf,0x1f49,0xc278,0x40d3,}, -{0xf020,0xb59d,0x2b70,0xada8,0x9dc5,0x4069,}, -{0x0000,0x0000,0x0400,0xc9bf,0x8e1b,0x4034,}, -{0x0000,0x0000,0x0000,0x2000,0xbebc,0x4019,}, -{0x0000,0x0000,0x0000,0x0000,0x9c40,0x400c,}, -{0x0000,0x0000,0x0000,0x0000,0xc800,0x4005,}, -{0x0000,0x0000,0x0000,0x0000,0xa000,0x4002,}, /* 10**1 */ -}; - -static unsigned short emtens[NTEN+1][NE] = { -{0x2de4,0x9fde,0xd2ce,0x04c8,0xa6dd,0x0ad8,}, /* 10**-4096 */ -{0x4925,0x2de4,0x3436,0x534f,0xceae,0x256b,}, /* 10**-2048 */ -{0x87a6,0xc0bd,0xda57,0x82a5,0xa2a6,0x32b5,}, -{0x7133,0xd21c,0xdb23,0xee32,0x9049,0x395a,}, -{0xfa91,0x1939,0x637a,0x4325,0xc031,0x3cac,}, -{0xac7d,0xe4a0,0x64bc,0x467c,0xddd0,0x3e55,}, -{0x3f24,0xe9a5,0xa539,0xea27,0xa87f,0x3f2a,}, -{0x67de,0x94ba,0x4539,0x1ead,0xcfb1,0x3f94,}, -{0x4c2f,0xe15b,0xc44d,0x94be,0xe695,0x3fc9,}, -{0xfdc2,0xcefc,0x8461,0x7711,0xabcc,0x3fe4,}, -{0xd3c3,0x652b,0xe219,0x1758,0xd1b7,0x3ff1,}, -{0x3d71,0xd70a,0x70a3,0x0a3d,0xa3d7,0x3ff8,}, -{0xcccd,0xcccc,0xcccc,0xcccc,0xcccc,0x3ffb,}, /* 10**-1 */ -}; -#endif - - - -/* ASCII string outputs for unix */ - - -#if 0 -void _IO_ldtostr(x, string, ndigs, flags, fmt) -long double *x; -char *string; -int ndigs; -int flags; -char fmt; -{ -unsigned short w[NI]; -char *t, *u; -LDPARMS rnd; -LDPARMS *ldp = &rnd; - -rnd.rlast = -1; -rnd.rndprc = NBITS; - -if (sizeof(long double) == 16) - e113toe( (unsigned short *)x, w, ldp ); -else - e64toe( (unsigned short *)x, w, ldp ); - -etoasc( w, string, ndigs, -1, ldp ); -if( ndigs == 0 && flags == 0 ) - { - /* Delete the decimal point unless alternate format. */ - t = string; - while( *t != '.' ) - ++t; - u = t + 1; - while( *t != '\0' ) - *t++ = *u++; - } -if (*string == ' ') - { - t = string; - u = t + 1; - while( *t != '\0' ) - *t++ = *u++; - } -if (fmt == 'E') - { - t = string; - while( *t != 'e' ) - ++t; - *t = 'E'; - } -} - -#endif - -/* This routine will not return more than NDEC+1 digits. */ - -char * -_simdldtoa_r (struct _reent *ptr, LONG_DOUBLE_UNION *d, int mode, int ndigits, int *decpt, - int *sign, char **rve) -{ -unsigned short e[NI]; -char *s, *p; -int i, j, k; -LDPARMS rnd; -LDPARMS *ldp = &rnd; -char *outstr; - -rnd.rlast = -1; -rnd.rndprc = NBITS; - - _REENT_CHECK_MP(ptr); - -/* reentrancy addition to use mprec storage pool */ -if (_REENT_MP_RESULT(ptr)) - { - _REENT_MP_RESULT(ptr)->_k = _REENT_MP_RESULT_K(ptr); - _REENT_MP_RESULT(ptr)->_maxwds = 1 << _REENT_MP_RESULT_K(ptr); - Bfree (ptr, _REENT_MP_RESULT(ptr)); - _REENT_MP_RESULT(ptr) = 0; - } - -#if SIMD_LDBL_MANT_DIG == 24 -e24toe( (unsigned short *)d, e, ldp ); -#elif SIMD_LDBL_MANT_DIG == 53 -e53toe( (unsigned short *)d, e, ldp ); -#elif SIMD_LDBL_MANT_DIG == 64 -e64toe( (unsigned short *)d, e, ldp ); -#else -e113toe( (unsigned short *)d, e, ldp ); -#endif - -if( eisneg(e) ) - *sign = 1; -else - *sign = 0; -/* Mode 3 is "f" format. */ -if( mode != 3 ) - ndigits -= 1; -/* Mode 0 is for %.999 format, which is supposed to give a - minimum length string that will convert back to the same binary value. - For now, just ask for 20 digits which is enough but sometimes too many. */ -if( mode == 0 ) - ndigits = 20; - -/* reentrancy addition to use mprec storage pool */ -/* we want to have enough space to hold the formatted result */ -i = ndigits + (mode == 3 ? (MAX_EXP_DIGITS + 1) : 1); -j = sizeof (__ULong); -for (_REENT_MP_RESULT_K(ptr) = 0; sizeof (_Bigint) - sizeof (__ULong) + j <= (unsigned)i; j <<= 1) - _REENT_MP_RESULT_K(ptr)++; -_REENT_MP_RESULT(ptr) = Balloc (ptr, _REENT_MP_RESULT_K(ptr)); -outstr = (char *)_REENT_MP_RESULT(ptr); - -/* This sanity limit must agree with the corresponding one in etoasc, to - keep straight the returned value of outexpon. */ -if( ndigits > NDEC ) - ndigits = NDEC; - -etoasc( e, outstr, ndigits, mode, ldp ); -s = outstr; -if( eisinf(e) || eisnan(e) ) - { - *decpt = 9999; - goto stripspaces; - } -*decpt = ldp->outexpon + 1; - -/* Transform the string returned by etoasc into what the caller wants. */ - -/* Look for decimal point and delete it from the string. */ -s = outstr; -while( *s != '\0' ) - { - if( *s == '.' ) - goto yesdecpt; - ++s; - } -goto nodecpt; - -yesdecpt: - -/* Delete the decimal point. */ -while( *s != '\0' ) - { - *s = *(s+1); - ++s; - } - -nodecpt: - -/* Back up over the exponent field. */ -while( *s != 'E' && s > outstr) - --s; -*s = '\0'; - -stripspaces: - -/* Strip leading spaces and sign. */ -p = outstr; -while( *p == ' ' || *p == '-') - ++p; - -/* Find new end of string. */ -s = outstr; -while( (*s++ = *p++) != '\0' ) - ; ---s; - -/* Strip trailing zeros. */ -if( mode == 2 ) - k = 1; -else if( ndigits > ldp->outexpon ) - k = ndigits; -else - k = ldp->outexpon; - -while( *(s-1) == '0' && ((s - outstr) > k)) - *(--s) = '\0'; - -/* In f format, flush small off-scale values to zero. - Rounding has been taken care of by etoasc. */ -if( mode == 3 && ((ndigits + ldp->outexpon) < 0)) - { - s = outstr; - *s = '\0'; - *decpt = 0; - } - -if( rve ) - *rve = s; -return outstr; -} - -/* Routine used to tell if long double is NaN or Infinity or regular number. - Returns: 0 = regular number - 1 = Nan - 2 = Infinity -*/ -int -_simdldcheck (LONG_DOUBLE_UNION *d) -{ -unsigned short e[NI]; -LDPARMS rnd; -LDPARMS *ldp = &rnd; - -rnd.rlast = -1; -rnd.rndprc = NBITS; - -#if SIMD_LDBL_MANT_DIG == 24 -e24toe( (unsigned short *)d, e, ldp ); -#elif SIMD_LDBL_MANT_DIG == 53 -e53toe( (unsigned short *)d, e, ldp ); -#elif SIMD_LDBL_MANT_DIG == 64 -e64toe( (unsigned short *)d, e, ldp ); -#else -e113toe( (unsigned short *)d, e, ldp ); -#endif - -if( (e[NE-1] & 0x7fff) == 0x7fff ) - { -#ifdef NANS - if( eisnan(e) ) - return( 1 ); -#endif - return( 2 ); - } -else - return( 0 ); -} /* _ldcheck */ - -static void etoasc(short unsigned int *x, char *string, int ndigits, int outformat, LDPARMS *ldp) -{ -long digit; -unsigned short y[NI], t[NI], u[NI], w[NI]; -unsigned short *p, *r, *ten; -unsigned short sign; -int i, j, k, expon, rndsav, ndigs; -char *s, *ss; -unsigned short m; -unsigned short *equot = ldp->equot; - -ndigs = ndigits; -rndsav = ldp->rndprc; -#ifdef NANS -if( eisnan(x) ) - { - sprintf( string, " NaN " ); - expon = 9999; - goto bxit; - } -#endif -ldp->rndprc = NBITS; /* set to full precision */ -emov( x, y ); /* retain external format */ -if( y[NE-1] & 0x8000 ) - { - sign = 0xffff; - y[NE-1] &= 0x7fff; - } -else - { - sign = 0; - } -expon = 0; -ten = &etens[NTEN][0]; -emov( eone, t ); -/* Test for zero exponent */ -if( y[NE-1] == 0 ) - { - for( k=0; k>= 1; - } -while( m != 0 ); - -/* Rescale from integer significand */ - u[NE-1] += y[NE-1] - (unsigned int )(EXONE + NBITS - 1); - emov( u, y ); -/* Find power of 10 */ - emov( eone, t ); - m = MAXP; - p = &etens[0][0]; - while( ecmp( ten, u ) <= 0 ) - { - if( ecmp( p, u ) <= 0 ) - { - ediv( p, u, u, ldp ); - emul( p, t, t, ldp ); - expon += (int )m; - } - m >>= 1; - if( m == 0 ) - break; - p += NE; - } - } -else - { /* Number is less than 1.0 */ -/* Pad significand with trailing decimal zeros. */ - if( y[NE-1] == 0 ) - { - while( (y[NE-2] & 0x8000) == 0 ) - { - emul( ten, y, y, ldp ); - expon -= 1; - } - } - else - { - emovi( y, w ); - for( i=0; i 0 ) - { - if( ecmp( p, w ) >= 0 ) - { - emul( r, w, w, ldp ); - emul( r, t, t, ldp ); - expon += k; - } - k /= 2; - if( k == 0 ) - break; - p += NE; - r += NE; - } - ediv( t, eone, t, ldp ); - } -isone: -/* Find the first (leading) digit. */ -emovi( t, w ); -emovz( w, t ); -emovi( y, w ); -emovz( w, y ); -eiremain( t, y, ldp ); -digit = equot[NI-1]; -while( (digit == 0) && (ecmp(y,ezero) != 0) ) - { - eshup1( y ); - emovz( y, u ); - eshup1( u ); - eshup1( u ); - eaddm( u, y ); - eiremain( t, y, ldp ); - digit = equot[NI-1]; - expon -= 1; - } -s = string; -if( sign ) - *s++ = '-'; -else - *s++ = ' '; -/* Examine number of digits requested by caller. */ -if( outformat == 3 ) - ndigs += expon; -/* -else if( ndigs < 0 ) - ndigs = 0; -*/ -if( ndigs > NDEC ) - ndigs = NDEC; -if( digit == 10 ) - { - *s++ = '1'; - *s++ = '.'; - if( ndigs > 0 ) - { - *s++ = '0'; - ndigs -= 1; - } - expon += 1; - if( ndigs < 0 ) - { - ss = s; - goto doexp; - } - } -else - { - *s++ = (char )digit + '0'; - *s++ = '.'; - } -/* Generate digits after the decimal point. */ -for( k=0; k<=ndigs; k++ ) - { -/* multiply current number by 10, without normalizing */ - eshup1( y ); - emovz( y, u ); - eshup1( u ); - eshup1( u ); - eaddm( u, y ); - eiremain( t, y, ldp ); - *s++ = (char )equot[NI-1] + '0'; - } -digit = equot[NI-1]; ---s; -ss = s; -/* round off the ASCII string */ -if( digit > 4 ) - { -/* Test for critical rounding case in ASCII output. */ - if( digit == 5 ) - { - emovo( y, t, ldp ); - if( ecmp(t,ezero) != 0 ) - goto roun; /* round to nearest */ - if( (*(s-1) & 1) == 0 ) - goto doexp; /* round to even */ - } -/* Round up and propagate carry-outs */ -roun: - --s; - k = *s & 0x7f; -/* Carry out to most significant digit? */ - if( ndigs < 0 ) - { - /* This will print like "1E-6". */ - *s = '1'; - expon += 1; - goto doexp; - } - else if( k == '.' ) - { - --s; - k = *s; - k += 1; - *s = (char )k; -/* Most significant digit carries to 10? */ - if( k > '9' ) - { - expon += 1; - *s = '1'; - } - goto doexp; - } -/* Round up and carry out from less significant digits */ - k += 1; - *s = (char )k; - if( k > '9' ) - { - *s = '0'; - goto roun; - } - } -doexp: -#ifdef __GO32__ -if( expon >= 0 ) - sprintf( ss, "e+%02d", expon ); -else - sprintf( ss, "e-%02d", -expon ); -#else - sprintf( ss, "E%d", expon ); -#endif -bxit: -ldp->rndprc = rndsav; -ldp->outexpon = expon; -} - - - - -/* -; ASCTOQ -; ASCTOQ.MAC LATEST REV: 11 JAN 84 -; SLM, 3 JAN 78 -; -; Convert ASCII string to quadruple precision floating point -; -; Numeric input is free field decimal number -; with max of 15 digits with or without -; decimal point entered as ASCII from teletype. -; Entering E after the number followed by a second -; number causes the second number to be interpreted -; as a power of 10 to be multiplied by the first number -; (i.e., "scientific" notation). -; -; Usage: -; asctoq( string, q ); -*/ - -void _simdstrtold (char *s, char **se, LONG_DOUBLE_UNION *x) -{ - LDPARMS rnd; - LDPARMS *ldp = &rnd; - int lenldstr; - - rnd.rlast = -1; - rnd.rndprc = NBITS; - - lenldstr = asctoeg( s, (unsigned short *)x, SIMD_LDBL_MANT_DIG, ldp ); - if (se) - *se = s + lenldstr; -} - -#define REASONABLE_LEN 200 - -static int -asctoeg(char *ss, short unsigned int *y, int oprec, LDPARMS *ldp) -{ -unsigned short yy[NI], xt[NI], tt[NI]; -int esign, decflg, sgnflg, nexp, exp, prec, lost; -int k, trail, c, rndsav; -long lexp; -unsigned short nsign, *p; -char *sp, *s, *lstr; -int lenldstr; -int mflag = 0; -char tmpstr[REASONABLE_LEN]; - -/* Copy the input string. */ -c = strlen (ss) + 2; -if (c <= REASONABLE_LEN) - lstr = tmpstr; -else - { - lstr = (char *) calloc (c, 1); - mflag = 1; - } -s = ss; -lenldstr = 0; -while( *s == ' ' ) /* skip leading spaces */ - { - ++s; - ++lenldstr; - } -sp = lstr; -for( k=0; krndprc; -ldp->rndprc = NBITS; /* Set to full precision */ -lost = 0; -nsign = 0; -decflg = 0; -sgnflg = 0; -nexp = 0; -exp = 0; -prec = 0; -ecleaz( yy ); -trail = 0; - -nxtcom: -k = *s - '0'; -if( (k >= 0) && (k <= 9) ) - { -/* Ignore leading zeros */ - if( (prec == 0) && (decflg == 0) && (k == 0) ) - goto donchr; -/* Identify and strip trailing zeros after the decimal point. */ - if( (trail == 0) && (decflg != 0) ) - { - sp = s; - while( (*sp >= '0') && (*sp <= '9') ) - ++sp; -/* Check for syntax error */ - c = *sp & 0x7f; - if( (c != 'e') && (c != 'E') && (c != '\0') - && (c != '\n') && (c != '\r') && (c != ' ') - && (c != ',') ) - goto error; - --sp; - while( *sp == '0' ) - *sp-- = 'z'; - trail = 1; - if( *s == 'z' ) - goto donchr; - } -/* If enough digits were given to more than fill up the yy register, - * continuing until overflow into the high guard word yy[2] - * guarantees that there will be a roundoff bit at the top - * of the low guard word after normalization. - */ - if( yy[2] == 0 ) - { - if( decflg ) - nexp += 1; /* count digits after decimal point */ - eshup1( yy ); /* multiply current number by 10 */ - emovz( yy, xt ); - eshup1( xt ); - eshup1( xt ); - eaddm( xt, yy ); - ecleaz( xt ); - xt[NI-2] = (unsigned short )k; - eaddm( xt, yy ); - } - else - { - /* Mark any lost non-zero digit. */ - lost |= k; - /* Count lost digits before the decimal point. */ - if (decflg == 0) - nexp -= 1; - } - prec += 1; - goto donchr; - } - -switch( *s ) - { - case 'z': - break; - case 'E': - case 'e': - goto expnt; - case '.': /* decimal point */ - if( decflg ) - goto error; - ++decflg; - break; - case '-': - nsign = 0xffff; - if( sgnflg ) - goto error; - ++sgnflg; - break; - case '+': - if( sgnflg ) - goto error; - ++sgnflg; - break; - case ',': - case ' ': - case '\0': - case '\n': - case '\r': - goto daldone; - case 'i': - case 'I': - goto infinite; - default: - error: -#ifdef NANS - enan( yy, NI*16 ); -#else - mtherr( "asctoe", DOMAIN ); - ecleaz(yy); -#endif - goto aexit; - } -donchr: -++s; -goto nxtcom; - -/* Exponent interpretation */ -expnt: - -esign = 1; -exp = 0; -++s; -/* check for + or - */ -if( *s == '-' ) - { - esign = -1; - ++s; - } -if( *s == '+' ) - ++s; -while( (*s >= '0') && (*s <= '9') ) - { - exp *= 10; - exp += *s++ - '0'; - if (exp > 4977) - { - if (esign < 0) - goto zero; - else - goto infinite; - } - } -if( esign < 0 ) - exp = -exp; -if( exp > 4932 ) - { -infinite: - ecleaz(yy); - yy[E] = 0x7fff; /* infinity */ - goto aexit; - } -if( exp < -4977 ) - { -zero: - ecleaz(yy); - goto aexit; - } - -daldone: -nexp = exp - nexp; -/* Pad trailing zeros to minimize power of 10, per IEEE spec. */ -while( (nexp > 0) && (yy[2] == 0) ) - { - emovz( yy, xt ); - eshup1( xt ); - eshup1( xt ); - eaddm( yy, xt ); - eshup1( xt ); - if( xt[2] != 0 ) - break; - nexp -= 1; - emovz( xt, yy ); - } -if( (k = enormlz(yy)) > NBITS ) - { - ecleaz(yy); - goto aexit; - } -lexp = (EXONE - 1 + NBITS) - k; -emdnorm( yy, lost, 0, lexp, 64, ldp ); -/* convert to external format */ - - -/* Multiply by 10**nexp. If precision is 64 bits, - * the maximum relative error incurred in forming 10**n - * for 0 <= n <= 324 is 8.2e-20, at 10**180. - * For 0 <= n <= 999, the peak relative error is 1.4e-19 at 10**947. - * For 0 >= n >= -999, it is -1.55e-19 at 10**-435. - */ -lexp = yy[E]; -if( nexp == 0 ) - { - k = 0; - goto expdon; - } -esign = 1; -if( nexp < 0 ) - { - nexp = -nexp; - esign = -1; - if( nexp > 4096 ) - { /* Punt. Can't handle this without 2 divides. */ - emovi( etens[0], tt ); - lexp -= tt[E]; - k = edivm( tt, yy, ldp ); - lexp += EXONE; - nexp -= 4096; - } - } -p = &etens[NTEN][0]; -emov( eone, xt ); -exp = 1; -do - { - if( exp & nexp ) - emul( p, xt, xt, ldp ); - p -= NE; - exp = exp + exp; - } -while( exp <= MAXP ); - -emovi( xt, tt ); -if( esign < 0 ) - { - lexp -= tt[E]; - k = edivm( tt, yy, ldp ); - lexp += EXONE; - } -else - { - lexp += tt[E]; - k = emulm( tt, yy, ldp ); - lexp -= EXONE - 1; - } - -expdon: - -/* Round and convert directly to the destination type */ -if( oprec == 53 ) - lexp -= EXONE - 0x3ff; -else if( oprec == 24 ) - lexp -= EXONE - 0177; -#ifdef DEC -else if( oprec == 56 ) - lexp -= EXONE - 0201; -#endif -ldp->rndprc = oprec; -emdnorm( yy, k, 0, lexp, 64, ldp ); - -aexit: - -ldp->rndprc = rndsav; -yy[0] = nsign; -switch( oprec ) - { -#ifdef DEC - case 56: - todec( yy, y ); /* see etodec.c */ - break; -#endif -#if SIMD_LDBL_MANT_DIG == 53 - case 53: - toe53( yy, y ); - break; -#elif SIMD_LDBL_MANT_DIG == 24 - case 24: - toe24( yy, y ); - break; -#elif SIMD_LDBL_MANT_DIG == 64 - case 64: - toe64( yy, y ); - break; -#elif SIMD_LDBL_MANT_DIG == 113 - case 113: - toe113( yy, y ); - break; -#else - case NBITS: - emovo( yy, y, ldp ); - break; -#endif - } -lenldstr += s - lstr; -if (mflag) - free (lstr); -return lenldstr; -} - - - -/* y = largest integer not greater than x - * (truncated toward minus infinity) - * - * unsigned short x[NE], y[NE] - * LDPARMS *ldp - * - * efloor( x, y, ldp ); - */ -static unsigned short bmask[] = { -0xffff, -0xfffe, -0xfffc, -0xfff8, -0xfff0, -0xffe0, -0xffc0, -0xff80, -0xff00, -0xfe00, -0xfc00, -0xf800, -0xf000, -0xe000, -0xc000, -0x8000, -0x0000, -}; - -static void efloor(short unsigned int *x, short unsigned int *y, LDPARMS *ldp) -{ -register unsigned short *p; -int e, expon, i; -unsigned short f[NE]; - -emov( x, f ); /* leave in external format */ -expon = (int )f[NE-1]; -e = (expon & 0x7fff) - (EXONE - 1); -if( e <= 0 ) - { - eclear(y); - goto isitneg; - } -/* number of bits to clear out */ -e = NBITS - e; -emov( f, y ); -if( e <= 0 ) - return; - -p = &y[0]; -while( e >= 16 ) - { - *p++ = 0; - e -= 16; - } -/* clear the remaining bits */ -*p &= bmask[e]; -/* truncate negatives toward minus infinity */ -isitneg: - -if( (unsigned short )expon & (unsigned short )0x8000 ) - { - for( i=0; iequot; - -ld = den[E]; -ld -= enormlz( den ); -ln = num[E]; -ln -= enormlz( num ); -ecleaz( equot ); -while( ln >= ld ) - { - if( ecmpm(den,num) <= 0 ) - { - esubm(den, num); - j = 1; - } - else - { - j = 0; - } - eshup1(equot); - equot[NI-1] |= j; - eshup1(num); - ln -= 1; - } -emdnorm( num, 0, 0, ln, 0, ldp ); -} - -/* NaN bit patterns - */ -#ifdef MIEEE -static unsigned short nan113[8] = { - 0x7fff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; -static unsigned short nan64[6] = {0x7fff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; -static unsigned short nan53[4] = {0x7fff, 0xffff, 0xffff, 0xffff}; -static unsigned short nan24[2] = {0x7fff, 0xffff}; -#else /* !MIEEE */ -static unsigned short nan113[8] = {0, 0, 0, 0, 0, 0, 0x8000, 0x7fff}; -static unsigned short nan64[6] = {0, 0, 0, 0, 0xc000, 0x7fff}; -static unsigned short nan53[4] = {0, 0, 0, 0x7ff8}; -static unsigned short nan24[2] = {0, 0x7fc0}; -#endif /* !MIEEE */ - - -static void enan (short unsigned int *nan, int size) -{ -int i, n; -unsigned short *p; - -switch( size ) - { -#ifndef DEC - case 113: - n = 8; - p = nan113; - break; - - case 64: - n = 6; - p = nan64; - break; - - case 53: - n = 4; - p = nan53; - break; - - case 24: - n = 2; - p = nan24; - break; - - case NBITS: - for( i=0; i>, <>, <>---string to signed fixed point - -INDEX - strtosfix16 -INDEX - strtosfix32 -INDEX - strtosfix64 -INDEX - _strtosfix16_r -INDEX - _strtosfix32_r -INDEX - _strtosfix64_r - -SYNOPSIS - #include - __int16 strtosfix16 (const char *<[s]>, char **<[ptr]>); - - __int32 strtosfix32 (const char *<[s]>, char **<[ptr]>); - - __int64 strtosfix64 (const char *<[s]>, char **<[ptr]>); - - __int16 _strtosfix16_r (void *<[reent]>, - const char *<[s]>, char **<[ptr]>); - - __int32 _strtosfix32_r (void *<[reent]>, - const char *<[s]>, char **<[ptr]>); - - __int64 _strtosfix64_r (void *<[reent]>, - const char *<[s]>, char **<[ptr]>); - -DESCRIPTION - The function <> converts the string <<*<[s]>>> to - a fixed-point sign + 15-bits fraction representation. The function - follows the same rules as <>. - - The substring converted is the longest initial - subsequence of <[s]>, beginning with the first - non-whitespace character, that has the format: - .[+|-]<[digits]>[.][<[digits]>][(e|E)[+|-]<[digits]>] - The substring contains no characters if <[s]> is empty, consists - entirely of whitespace, or if the first non-whitespace - character is something other than <<+>>, <<->>, <<.>>, or a - digit. If the substring is empty, no conversion is done, and - the value of <[s]> is stored in <<*<[ptr]>>>. Otherwise, - the substring is converted, and a pointer to the final string - (which will contain at least the terminating null character of - <[s]>) is stored in <<*<[ptr]>>>. If you want no - assignment to <<*<[ptr]>>>, pass a null pointer as <[ptr]>. - - <> is identical to <> except that it - converts to fixed-point sign + 31-bits fraction representation. - <> is also similar, except that it converts - to fixed-point sign + 63-bit fraction format. - - The alternate functions <<_strtosfix16_r>>, <<_strtosfix32_r>>, - and <<_strtosfix64_r>> are reentrant versions. - The extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS - The functions return the converted substring value, if any. If - no conversion can be performed, then 0 is returned. If the converted - value is a NaN, 0 is returned and errno is set to <>. - If the converted value exceeds the maximum positive fixed-point value, - the output value is saturated to the maximum value and <> is stored in - errno. If the converted value is less than the minimum fixed-point negative - value, then the output is saturated to the minimum value and <> is stored - in errno. Otherwise, the converted value is returned in the - specified fixed-point format. - -PORTABILITY - <>, <>, and <> are non-standard. - - The OS subroutines of <> are required. -*/ - -#ifdef __SPE__ - -#include <_ansi.h> -#include -#include -#include -#include -#include "vfieeefp.h" - -/* - * Convert a string to a fixed-point (sign + 15-bits) value. - * - * Ignores `locale' stuff. - */ -__int16_t -_strtosfix16_r (struct _reent *rptr, - const char *nptr, - char **endptr) -{ - union double_union dbl; - unsigned long tmp, tmp2; - int exp, negexp, sign; - __int16_t result; - - dbl.d = _strtod_r (rptr, nptr, endptr); - - /* treat NAN as domain error, +/- infinity as saturation */ - if (!finite(dbl.d)) - { - if (isnan (dbl.d)) - { - _REENT_ERRNO(rptr) = EDOM; - return 0; - } - _REENT_ERRNO(rptr) = ERANGE; - if (word0(dbl) & Sign_bit) - return SHRT_MIN; - return SHRT_MAX; - } - - /* check for normal saturation */ - if (dbl.d >= 1.0) - { - _REENT_ERRNO(rptr) = ERANGE; - return SHRT_MAX; - } - else if (dbl.d < -1.0) - { - _REENT_ERRNO(rptr) = ERANGE; - return SHRT_MIN; - } - - /* otherwise we have normal number in range */ - - /* strip off sign and exponent */ - sign = word0(dbl) & Sign_bit; - exp = ((word0(dbl) & Exp_mask) >> Exp_shift) - Bias; - negexp = -exp; - if (negexp > 15) - return 0; - /* add in implicit normalized bit */ - tmp = word0(dbl) | Exp_msk1; - /* remove exponent and sign */ - tmp <<= Ebits; - if (negexp != 0) - { - /* perform rounding */ - tmp2 = tmp + (1 << (negexp - 1)); - result = (short)(tmp2 >> (negexp + 16)); - /* check if rounding caused carry bit which must be added into result */ - if (tmp2 < tmp) - result |= (1 << (16 - negexp)); - /* check if positive saturation has occurred because of rounding */ - if (!sign && result < 0) - { - _REENT_ERRNO(rptr) = ERANGE; - return SHRT_MAX; - } - } - else - { - /* we have -1.0, no rounding necessary */ - return SHRT_MIN; - } - - return sign ? -result : result; -} - -#ifndef _REENT_ONLY - -__int16_t -strtosfix16 (const char *s, - char **ptr) -{ - return _strtosfix16_r (_REENT, s, ptr); -} - -#endif - -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/strtosfix32.c b/lib/machine/powerpc/strtosfix32.c deleted file mode 100644 index 6941be5..0000000 --- a/lib/machine/powerpc/strtosfix32.c +++ /dev/null @@ -1,102 +0,0 @@ -#ifdef __SPE__ - -#include <_ansi.h> -#include -#include -#include -#include -#include "vfieeefp.h" - -/* - * Convert a string to a fixed-point (sign + 31-bits) value. - * - * Ignores `locale' stuff. - */ -__int32_t -_strtosfix32_r (struct _reent *rptr, - const char *nptr, - char **endptr) -{ - union double_union dbl; - int exp, negexp, sign; - unsigned long tmp, tmp2; - long result = 0; - - dbl.d = _strtod_r (rptr, nptr, endptr); - - /* treat NAN as domain error, +/- infinity as saturation */ - if (!finite(dbl.d)) - { - if (isnan (dbl.d)) - { - _REENT_ERRNO(rptr) = EDOM; - return 0; - } - _REENT_ERRNO(rptr) = ERANGE; - if (word0(dbl) & Sign_bit) - return LONG_MIN; - return LONG_MAX; - } - - /* check for normal saturation */ - if (dbl.d >= 1.0) - { - _REENT_ERRNO(rptr) = ERANGE; - return LONG_MAX; - } - else if (dbl.d < -1.0) - { - _REENT_ERRNO(rptr) = ERANGE; - return LONG_MIN; - } - - /* otherwise we have normal number in range */ - - /* strip off sign and exponent */ - sign = word0(dbl) & Sign_bit; - exp = ((word0(dbl) & Exp_mask) >> Exp_shift) - Bias; - negexp = -exp; - if (negexp > 31) - return 0; - word0(dbl) &= ~(Exp_mask | Sign_bit); - /* add in implicit normalized bit */ - word0(dbl) |= Exp_msk1; - /* shift so result is contained in single word */ - tmp = word0(dbl) << Ebits; - tmp |= ((unsigned long)word1(dbl) >> (32 - Ebits)); - if (negexp != 0) - { - /* perform rounding */ - tmp2 = tmp + (1 << (negexp - 1)); - result = (long)(tmp2 >> negexp); - /* check if rounding caused carry bit which must be added into result */ - if (tmp2 < tmp) - result |= (1 << (32 - negexp)); - /* check if positive saturation has occurred because of rounding */ - if (!sign && result < 0) - { - _REENT_ERRNO(rptr) = ERANGE; - return LONG_MAX; - } - } - else - { - /* we have -1.0, no rounding necessary */ - return LONG_MIN; - } - - return sign ? -result : result; -} - -#ifndef _REENT_ONLY - -__int32_t -strtosfix32 (const char *s, - char **ptr) -{ - return _strtosfix32_r (_REENT, s, ptr); -} - -#endif - -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/strtosfix64.c b/lib/machine/powerpc/strtosfix64.c deleted file mode 100644 index 9da3ffa..0000000 --- a/lib/machine/powerpc/strtosfix64.c +++ /dev/null @@ -1,115 +0,0 @@ -#ifdef __SPE__ - -#include <_ansi.h> -#include -#include -#include -#include -#include "fix64.h" - -/* - * Convert a string to a fixed-point (sign + 63-bits) value. - * - * Ignores `locale' stuff. - */ -__int64_t -_strtosfix64_r (struct _reent *rptr, - const char *nptr, - char **endptr) -{ - union long_double_union ldbl; - int exp, negexp, sign, ld_type; - __uint64_t tmp, tmp2; - __int64_t result = 0; - - init(ldbl); - - _simdstrtold ((char *)nptr, endptr, &ldbl); - - /* treat NAN as domain error, +/- infinity as saturation */ - ld_type = _simdldcheck (&ldbl); - if (ld_type != 0) - { - if (ld_type == 1) - { - _REENT_ERRNO(rptr) = EDOM; - return 0; - } - _REENT_ERRNO(rptr) = ERANGE; - if (word0(ldbl) & Sign_bit) - return LONG_LONG_MIN; - return LONG_LONG_MAX; - } - - /* strip off sign and exponent */ - sign = word0(ldbl) & Sign_bit; - exp = ((word0(ldbl) & Exp_mask) >> Exp_shift) - Bias; - negexp = -exp; - if (negexp > 63) - return 0; - word0(ldbl) &= ~(Exp_mask | Sign_bit); - /* add in implicit normalized bit */ - word0(ldbl) |= Exp_msk1; - /* shift so result is contained in single word */ - tmp = word0(ldbl) << Ebits; - tmp |= ((unsigned long)word1(ldbl) >> (32 - Ebits)); - tmp <<= 32; - if (Ebits < 32) - tmp |= ((unsigned long)word1(ldbl) << Ebits); - tmp |= ((unsigned long)word2(ldbl) >> (32 - Ebits)); - - /* check for saturation */ - if (sign) - { - if (exp > 0 || (exp == 0 && tmp != 0x8000000000000000LL)) - { - _REENT_ERRNO(rptr) = ERANGE; - return LONG_LONG_MIN; - } - } - else - { - if (exp >= 0) - { - _REENT_ERRNO(rptr) = ERANGE; - return LONG_LONG_MAX; - } - } - - /* otherwise we have normal number in range */ - if (negexp != 0) - { - /* perform rounding */ - tmp2 = tmp + (1 << (negexp - 1)); - result = (long long)(tmp2 >> negexp); - /* check if rounding caused carry bit which must be added into result */ - if (tmp2 < tmp) - result |= (1 << (64 - negexp)); - /* check if positive saturation has occurred because of rounding */ - if (!sign && result < 0) - { - _REENT_ERRNO(rptr) = ERANGE; - return LONG_LONG_MAX; - } - } - else - { - /* we have -1.0, no rounding necessary */ - return LONG_LONG_MIN; - } - - return sign ? -result : result; -} - -#ifndef _REENT_ONLY - -__int64_t -strtosfix64 (const char *s, - char **ptr) -{ - return _strtosfix64_r (_REENT, s, ptr); -} - -#endif - -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/strtoufix16.c b/lib/machine/powerpc/strtoufix16.c deleted file mode 100644 index 415652d..0000000 --- a/lib/machine/powerpc/strtoufix16.c +++ /dev/null @@ -1,170 +0,0 @@ -/* -FUNCTION - <>, <>, <>---string to signed fixed point - -INDEX - strtoufix16 -INDEX - strtoufix32 -INDEX - strtoufix64 -INDEX - _strtoufix16_r -INDEX - _strtoufix32_r -INDEX - _strtoufix64_r - -SYNOPSIS - #include - __uint16_t strtoufix16 (const char *<[s]>, char **<[ptr]>); - - __uint32_t strtoufix32 (const char *<[s]>, char **<[ptr]>); - - __uint64_t strtoufix64 (const char *<[s]>, char **<[ptr]>); - - __uint16_t _strtoufix16_r (void *<[reent]>, - const char *<[s]>, char **<[ptr]>); - - __uint32_t _strtoufix32_r (void *<[reent]>, - const char *<[s]>, char **<[ptr]>); - - __uint64_t _strtoufix64_r (void *<[reent]>, - const char *<[s]>, char **<[ptr]>); - -DESCRIPTION - The function <> converts the string <<*<[s]>>> to - a fixed-point 16-bits fraction representation. The function - follows the same rules as <>. - - The substring converted is the longest initial - subsequence of <[s]>, beginning with the first - non-whitespace character, that has the format: - .[+|-]<[digits]>[.][<[digits]>][(e|E)[+|-]<[digits]>] - The substring contains no characters if <[s]> is empty, consists - entirely of whitespace, or if the first non-whitespace - character is something other than <<+>>, <<->>, <<.>>, or a - digit. If the substring is empty, no conversion is done, and - the value of <[s]> is stored in <<*<[ptr]>>>. Otherwise, - the substring is converted, and a pointer to the final string - (which will contain at least the terminating null character of - <[s]>) is stored in <<*<[ptr]>>>. If you want no - assignment to <<*<[ptr]>>>, pass a null pointer as <[ptr]>. - - <> is identical to <> except that it - converts to fixed-point 32-bit fraction representation. - <> is also similar, except that it converts - to fixed-point 64-bit fraction. - - The alternate functions <<_strtoufix16_r>>, <<_strtoufix32_r>>, - and <<_strtoufix64_r>> are reentrant versions. - The extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS - The functions return the converted substring value, if any. If - no conversion can be performed, then 0 is returned. If the converted - value is a NaN, 0 is returned and errno is set to <>. - If the converted value exceeds the maximum positive unsigned fixed-point value, - the output value is saturated to the maximum value and <> is stored in - errno. If the converted value is less than 0, then the output is saturated to 0 - and <> is stored in errno. Otherwise, the converted value is returned in the - specified fixed-point format. - -PORTABILITY - <>, <>, and <> are non-standard. - - The OS subroutines of <> are required. -*/ - -#ifdef __SPE__ - -#include <_ansi.h> -#include -#include -#include -#include -#include "vfieeefp.h" - -/* - * Convert a string to a fixed-point 16-bit value. - * - * Ignores `locale' stuff. - */ -__uint16_t -_strtoufix16_r (struct _reent *rptr, - const char *nptr, - char **endptr) -{ - union double_union dbl; - unsigned long tmp, tmp2, result; - int exp, negexp; - - dbl.d = _strtod_r (rptr, nptr, endptr); - - /* treat NAN as domain error, +/- infinity as saturation */ - if (!finite(dbl.d)) - { - if (isnan (dbl.d)) - { - _REENT_ERRNO(rptr) = EDOM; - return 0; - } - _REENT_ERRNO(rptr) = ERANGE; - if (word0(dbl) & Sign_bit) - return 0; - return USHRT_MAX; - } - - /* check for normal saturation */ - if (dbl.d >= 1.0) - { - _REENT_ERRNO(rptr) = ERANGE; - return USHRT_MAX; - } - else if (dbl.d < 0) - { - _REENT_ERRNO(rptr) = ERANGE; - return 0; - } - - /* otherwise we have normal postive number in range */ - - /* strip off exponent */ - exp = ((word0(dbl) & Exp_mask) >> Exp_shift) - Bias; - negexp = -exp; - if (negexp > 16) - return 0; - /* add in implicit normalized bit */ - tmp = word0(dbl) | Exp_msk1; - /* remove exponent and sign */ - tmp <<= Ebits; - /* perform rounding */ - tmp2 = tmp + (1 << (negexp + 14)); - result = tmp2 >> (negexp + 15); - /* if rounding causes carry, must add carry bit in */ - if (tmp2 < tmp) - { - if (negexp == 0) - { - /* we have overflow which means saturation */ - _REENT_ERRNO(rptr) = ERANGE; - return USHRT_MAX; - } - result |= (1 << (16 - negexp)); - } - - return (__uint16_t)result; -} - -#ifndef _REENT_ONLY - -__uint16_t -strtoufix16 (const char *s, - char **ptr) -{ - return _strtoufix16_r (_REENT, s, ptr); -} - -#endif - -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/strtoufix32.c b/lib/machine/powerpc/strtoufix32.c deleted file mode 100644 index 4340c71..0000000 --- a/lib/machine/powerpc/strtoufix32.c +++ /dev/null @@ -1,99 +0,0 @@ -#ifdef __SPE__ - -#include <_ansi.h> -#include -#include -#include -#include -#include "vfieeefp.h" - -/* - * Convert a string to a fixed-point 32-bit value. - * - * Ignores `locale' stuff. - */ -__uint32_t -_strtoufix32_r (struct _reent *rptr, - const char *nptr, - char **endptr) -{ - union double_union dbl; - int exp, negexp; - __uint32_t tmp, tmp2, result = 0; - - dbl.d = _strtod_r (rptr, nptr, endptr); - - /* treat NAN as domain error, +/- infinity as saturation */ - if (!finite(dbl.d)) - { - if (isnan (dbl.d)) - { - _REENT_ERRNO(rptr) = EDOM; - return 0; - } - _REENT_ERRNO(rptr) = ERANGE; - if (word0(dbl) & Sign_bit) - return 0; - return ULONG_MAX; - } - - /* check for normal saturation */ - if (dbl.d >= 1.0) - { - _REENT_ERRNO(rptr) = ERANGE; - return ULONG_MAX; - } - else if (dbl.d < 0) - { - _REENT_ERRNO(rptr) = ERANGE; - return 0; - } - - /* otherwise we have normal positive number in range */ - - /* strip off exponent */ - exp = ((word0(dbl) & Exp_mask) >> Exp_shift) - Bias; - negexp = -exp; - if (negexp > 32) - return 0; - word0(dbl) &= ~(Exp_mask | Sign_bit); - /* add in implicit normalized bit */ - word0(dbl) |= Exp_msk1; - /* shift so result is contained left-justified in word */ - tmp = word0(dbl) << Ebits; - tmp |= ((unsigned long)word1(dbl) >> (32 - Ebits)); - /* perform rounding */ - if (negexp > 1) - { - tmp2 = tmp + (1 << (negexp - 2)); - result = (tmp2 >> (negexp - 1)); - /* if rounding causes carry, add carry bit in */ - if (tmp2 < tmp) - result += 1 << (32 - negexp); - } - else - { - result = tmp + ((word1(dbl) & (1 << (32 - Ebits - 1))) != 0); - /* if rounding causes carry, then saturation has occurred */ - if (result < tmp) - { - _REENT_ERRNO(rptr) = ERANGE; - return ULONG_MAX; - } - } - - return result; -} - -#ifndef _REENT_ONLY - -__uint32_t -strtoufix32 (const char *s, - char **ptr) -{ - return _strtoufix32_r (_REENT, s, ptr); -} - -#endif - -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/strtoufix64.c b/lib/machine/powerpc/strtoufix64.c deleted file mode 100644 index 2057068..0000000 --- a/lib/machine/powerpc/strtoufix64.c +++ /dev/null @@ -1,114 +0,0 @@ -#ifdef __SPE__ - -#include <_ansi.h> -#include -#include -#include -#include -#include "fix64.h" - -/* - * Convert a string to a fixed-point 64-bit unsigned value. - * - * Ignores `locale' stuff. - */ -__uint64_t -_strtoufix64_r (struct _reent *rptr, - const char *nptr, - char **endptr) -{ - union long_double_union ldbl; - int exp, sign, negexp, ld_type; - __uint64_t tmp, tmp2, result = 0; - - init(ldbl); - - _simdstrtold ((char *)nptr, endptr, &ldbl); - - /* treat NAN as domain error, +/- infinity as saturation */ - ld_type = _simdldcheck (&ldbl); - if (ld_type != 0) - { - if (ld_type == 1) - { - _REENT_ERRNO(rptr) = EDOM; - return 0; - } - _REENT_ERRNO(rptr) = ERANGE; - if (word0(ldbl) & Sign_bit) - return 0; - return ULONG_LONG_MAX; - } - - /* strip off sign and exponent */ - sign = word0(ldbl) & Sign_bit; - exp = ((word0(ldbl) & Exp_mask) >> Exp_shift) - Bias; - negexp = -exp; - if (negexp > 63) - return 0; - word0(ldbl) &= ~(Exp_mask | Sign_bit); - /* add in implicit normalized bit */ - word0(ldbl) |= Exp_msk1; - /* shift so result is contained in single word */ - tmp = word0(ldbl) << Ebits; - tmp |= ((unsigned long)word1(ldbl) >> (32 - Ebits)); - tmp <<= 32; - if (Ebits < 32) - tmp |= ((unsigned long)word1(ldbl) << Ebits); - tmp |= ((unsigned long)word2(ldbl) >> (32 - Ebits)); - - /* check for saturation */ - if (sign) - { - _REENT_ERRNO(rptr) = ERANGE; - return 0; - } - else - { - if (exp > 0 || (exp == 0 && tmp >= 0x8000000000000000LL)) - { - _REENT_ERRNO(rptr) = ERANGE; - return ULONG_LONG_MAX; - } - } - - /* otherwise we have normal number in range */ - if (negexp > 1) - { - tmp2 = tmp + (1 << (negexp - 2)); - result = (tmp2 >> (negexp - 1)); - /* if rounding causes carry, add carry bit in */ - if (tmp2 < tmp) - result += 1 << (64 - negexp); - } - else - { - if (Ebits < 32) - { - result = tmp + ((word2(ldbl) & (1 << (32 - Ebits - 1))) != 0); - /* if rounding causes carry, then saturation has occurred */ - if (result < tmp) - { - _REENT_ERRNO(rptr) = ERANGE; - return ULONG_LONG_MAX; - } - } - else - result = tmp; - } - - return result; -} - -#ifndef _REENT_ONLY - -__uint64_t -strtoufix64 (const char *s, - char **ptr) -{ - return _strtoufix64_r (_REENT, s, ptr); -} - -#endif - -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/sys/fenv.h b/lib/machine/powerpc/sys/fenv.h deleted file mode 100644 index 39f12bf..0000000 --- a/lib/machine/powerpc/sys/fenv.h +++ /dev/null @@ -1,132 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2004-2005 David Schultz - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _SYS_FENV_H_ -#define _SYS_FENV_H_ - -#include -#include - -#ifndef __fenv_static -#define __fenv_static static -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef int fenv_t; -typedef int fexcept_t; - -/* Exception flags */ -#define FE_INEXACT 0x02000000 -#define FE_DIVBYZERO 0x04000000 -#define FE_UNDERFLOW 0x08000000 -#define FE_OVERFLOW 0x10000000 -#define FE_INVALID 0x20000000 /* all types of invalid FP ops */ - -/* - * The PowerPC architecture has extra invalid flags that indicate the - * specific type of invalid operation occurred. These flags may be - * tested, set, and cleared---but not masked---separately. All of - * these bits are cleared when FE_INVALID is cleared, but only - * FE_VXSOFT is set when FE_INVALID is explicitly set in software. - */ -#define FE_VXCVI 0x00000100 /* invalid integer convert */ -#define FE_VXSQRT 0x00000200 /* square root of a negative */ -#define FE_VXSOFT 0x00000400 /* software-requested exception */ -#define FE_VXVC 0x00080000 /* ordered comparison involving NaN */ -#define FE_VXIMZ 0x00100000 /* inf * 0 */ -#define FE_VXZDZ 0x00200000 /* 0 / 0 */ -#define FE_VXIDI 0x00400000 /* inf / inf */ -#define FE_VXISI 0x00800000 /* inf - inf */ -#define FE_VXSNAN 0x01000000 /* operation on a signalling NaN */ -#define FE_ALL_INVALID (FE_VXCVI | FE_VXSQRT | FE_VXSOFT | FE_VXVC | \ - FE_VXIMZ | FE_VXZDZ | FE_VXIDI | FE_VXISI | \ - FE_VXSNAN | FE_INVALID) -#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | \ - FE_ALL_INVALID | FE_OVERFLOW | FE_UNDERFLOW) - -/* Rounding modes */ -#define FE_TONEAREST 0x0000 -#define FE_TOWARDZERO 0x0001 -#define FE_UPWARD 0x0002 -#define FE_DOWNWARD 0x0003 -#define _ROUND_MASK (FE_TONEAREST | FE_DOWNWARD | \ - FE_UPWARD | FE_TOWARDZERO) - - - -/* Default floating-point environment */ -extern const fenv_t *_fe_dfl_env; -#define FE_DFL_ENV (_fe_dfl_env) - -/* We need to be able to map status flag positions to mask flag positions */ -#define _FPUSW_SHIFT 22 -#define _ENABLE_MASK ((FE_DIVBYZERO | FE_INEXACT | FE_INVALID | \ - FE_OVERFLOW | FE_UNDERFLOW) >> _FPUSW_SHIFT) - -#ifndef _SOFT_FLOAT -#ifdef __SPE__ -#define __mffs(__env) \ - __asm __volatile("mfspr %0, 512" : "=r" ((__env)->__bits.__reg)) -#define __mtfsf(__env) \ - __asm __volatile("mtspr 512,%0;isync" :: "r" ((__env).__bits.__reg)) -#else -#define __mffs(__env) \ - __asm __volatile("mffs %0" : "=f" ((__env)->__d)) -#define __mtfsf(__env) \ - __asm __volatile("mtfsf 255,%0" :: "f" ((__env).__d)) -#endif -#else -#define __mffs(__env) -#define __mtfsf(__env) -#endif - -union __fpscr { - double __d; - struct { -#if _BYTE_ORDER == _LITTLE_ENDIAN - fenv_t __reg; - __uint32_t __junk; -#else - __uint32_t __junk; - fenv_t __reg; -#endif - } __bits; -}; - - -#ifdef __cplusplus -} -#endif - - -#endif /* !_SYS_FENV_H_ */ diff --git a/lib/machine/powerpc/ufix64toa.c b/lib/machine/powerpc/ufix64toa.c deleted file mode 100644 index c829b9b..0000000 --- a/lib/machine/powerpc/ufix64toa.c +++ /dev/null @@ -1,90 +0,0 @@ -/* _ufix64toa_r: convert unsigned 64-bit fixed point to ASCII string. - * - * This routine converts an unsigned fixed-point number to long double format and - * then calls _ldtoa_r to do the conversion. - * - * Written by Jeff Johnston. - */ - -#ifdef __SPE__ - -#include <_ansi.h> -#include -#include -#include -#include -#include "fix64.h" - -extern char *_simdldtoa_r (struct _reent *, LONG_DOUBLE_UNION *, int, - int, int *, int *, char **); - -/* - * Convert an unsigned fixed-point 64-bit value to string. - * - * Ignores `locale' stuff. - */ - -char * -_ufix64toa_r (struct _reent *rptr, - __uint64_t value, - int mode, - int ndigits, - int *decpt, - int *sign, - char **rve) -{ - union long_double_union ldbl; - union fix64_union fix64; - unsigned long tmp; - int exp, negexp; - - /* if input is 0, no additional work is needed */ - if (value == 0) - { - ldbl.i[0] = ldbl.i[1] = ldbl.i[2] = ldbl.i[3] = 0; - } - else /* otherwise, we calculate long double equivalent of value */ - { - /* find exponent by locating most-significant one-bit */ - fix64.ll = value; - negexp = 1; - if (hiword(fix64) == 0) - { - tmp = loword(fix64); - negexp = 33; - } - else - { - tmp = hiword(fix64); - negexp = 1; - } - - while (negexp < 65) - { - if (tmp & 0x80000000) - break; - ++negexp; - tmp <<= 1; - } - - /* shift input appropriately */ - fix64.ll = value << (negexp - 1 + (Exp_msk1 != 0)); - - /* build long double */ - exp = -negexp + Bias; - word0(ldbl) = (exp << Exp_shift); - word1(ldbl) = hiword(fix64) << (32-Ebits-1); - word2(ldbl) = loword(fix64) << (32-Ebits-1); - word3(ldbl) = 0; - if (Ebits+1 < 32) - { - word0(ldbl) |= hiword(fix64) >> (Ebits + 1); - word1(ldbl) |= loword(fix64) >> (Ebits + 1); - } - } - - /* convert long double to character */ - return _simdldtoa_r (rptr, &ldbl, mode, ndigits, decpt, sign, rve); -} - -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/vec_calloc.c b/lib/machine/powerpc/vec_calloc.c deleted file mode 100644 index 7a90d57..0000000 --- a/lib/machine/powerpc/vec_calloc.c +++ /dev/null @@ -1,53 +0,0 @@ -/* -FUNCTION -<>---allocate space for arrays - -INDEX - vec_calloc - -INDEX - _vec_calloc_r - -SYNOPSIS - #include - void *vec_calloc(size_t <[n]>, size_t <[s]>); - void *vec_calloc_r(void *<[reent]>, size_t , <[s]>); - -DESCRIPTION -Use <> to request a block of memory sufficient to hold an -array of <[n]> elements, each of which has size <[s]>. - -The memory allocated by <> comes out of the same memory pool -used by <>, but the memory block is initialized to all zero -bytes. (To avoid the overhead of initializing the space, use -<> instead.) - -The alternate function <<_vec_calloc_r>> is reentrant. -The extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -If successful, a pointer to the newly allocated space. - -If unsuccessful, <>. - -PORTABILITY -<> is an non-ANSI extension described in the AltiVec Programming -Interface Manual. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include -#include - -#ifndef _REENT_ONLY - -void * -vec_calloc (size_t n, - size_t size) -{ - return _vec_calloc_r (_REENT, n, size); -} - -#endif diff --git a/lib/machine/powerpc/vec_callocr.c b/lib/machine/powerpc/vec_callocr.c deleted file mode 100644 index 6ce00d0..0000000 --- a/lib/machine/powerpc/vec_callocr.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_VECCALLOC -#include "vec_mallocr.c" diff --git a/lib/machine/powerpc/vec_free.c b/lib/machine/powerpc/vec_free.c deleted file mode 100644 index c893e5a..0000000 --- a/lib/machine/powerpc/vec_free.c +++ /dev/null @@ -1,14 +0,0 @@ -/* vec_free.c - a wrapper for _free_r */ -#include <_ansi.h> -#include -#include - -#ifndef _REENT_ONLY - -void -vec_free (void *aptr) -{ - _free_r (_REENT, aptr); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/machine/powerpc/vec_malloc.c b/lib/machine/powerpc/vec_malloc.c deleted file mode 100644 index b62fe07..0000000 --- a/lib/machine/powerpc/vec_malloc.c +++ /dev/null @@ -1,105 +0,0 @@ -/* -FUNCTION -<>, <>, <>---manage vector memory - -INDEX - vec_malloc -INDEX - vec_realloc -INDEX - vec_free -INDEX - _vec_malloc_r -INDEX - _vec_realloc_r -INDEX - _vec_free_r - -SYNOPSIS - #include - void *vec_malloc(size_t <[nbytes]>); - void *vec_realloc(void *<[aptr]>, size_t <[nbytes]>); - void vec_free(void *<[aptr]>); - - - void *_vec_malloc_r(void *<[reent]>, size_t <[nbytes]>); - void *_vec_realloc_r(void *<[reent]>, - void *<[aptr]>, size_t <[nbytes]>); - void _vec_free_r(void *<[reent]>, void *<[aptr]>); - -DESCRIPTION -These functions manage a pool of system memory that is 16-byte aligned.. - -Use <> to request allocation of an object with at least -<[nbytes]> bytes of storage available and is 16-byte aligned. If the space is -available, <> returns a pointer to a newly allocated block as its result. - -If you already have a block of storage allocated by <>, but -you no longer need all the space allocated to it, you can make it -smaller by calling <> with both the object pointer and the -new desired size as arguments. <> guarantees that the -contents of the smaller object match the beginning of the original object. - -Similarly, if you need more space for an object, use <> to -request the larger size; again, <> guarantees that the -beginning of the new, larger object matches the contents of the -original object. - -When you no longer need an object originally allocated by <> -or <> (or the related function <>), return it to the -memory storage pool by calling <> with the address of the object -as the argument. You can also use <> for this purpose by -calling it with <<0>> as the <[nbytes]> argument. - -The alternate functions <<_vec_malloc_r>>, <<_vec_realloc_r>>, <<_vec_free_r>>, -are reentrant versions. The extra argument <[reent]> is a pointer to a reentrancy -structure. - -If you have multiple threads of execution which may call any of these -routines, or if any of these routines may be called reentrantly, then -you must provide implementations of the <<__vec_malloc_lock>> and -<<__vec_malloc_unlock>> functions for your system. See the documentation -for those functions. - -These functions operate by calling the function <<_sbrk_r>> or -<>, which allocates space. You may need to provide one of these -functions for your system. <<_sbrk_r>> is called with a positive -value to allocate more space, and with a negative value to release -previously allocated space if it is no longer required. -@xref{Stubs}. - -RETURNS -<> returns a pointer to the newly allocated space, if -successful; otherwise it returns <>. If your application needs -to generate empty objects, you may use <> for this purpose. - -<> returns a pointer to the new block of memory, or <> -if a new block could not be allocated. <> is also the result -when you use `<,0)>>' (which has the same effect as -`<)>>'). You should always check the result of -<>; successful vec_reallocation is not guaranteed even when -you request a smaller object. - -<> does not return a result. - -PORTABILITY -<>, <>, and <> are all extensions -specified in the AltiVec Programming Interface Manual. - -Supporting OS subroutines required: <>. */ - -#include <_ansi.h> -#include -#include -#include - -#ifndef _REENT_ONLY - -void * -vec_malloc (size_t nbytes) /* get a block */ -{ - return _memalign_r (_REENT, 16, nbytes); -} - -#endif - diff --git a/lib/machine/powerpc/vec_mallocr.c b/lib/machine/powerpc/vec_mallocr.c deleted file mode 100644 index c375c8b..0000000 --- a/lib/machine/powerpc/vec_mallocr.c +++ /dev/null @@ -1,424 +0,0 @@ -/* This code is based on mallocr.c written by Doug Lea which is released - to the public domain. Any changes to libc/stdlib/mallocr.c - should be reflected here as well. */ - -/* Preliminaries */ - -#ifndef __STD_C -#ifdef __STDC__ -#define __STD_C 1 -#else -#if __cplusplus -#define __STD_C 1 -#else -#define __STD_C 0 -#endif /*__cplusplus*/ -#endif /*__STDC__*/ -#endif /*__STD_C*/ - -#ifndef Void_t -#if __STD_C -#define Void_t void -#else -#define Void_t char -#endif -#endif /*Void_t*/ - -#if __STD_C -#include /* for size_t */ -#else -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - In newlib, all the publically visible routines take a reentrancy - pointer. We don't currently do anything much with it, but we do - pass it to the lock routine. - */ - -#include -#include -#include - -#define MALLOC_LOCK __malloc_lock(reent_ptr) -#define MALLOC_UNLOCK __malloc_unlock(reent_ptr) - -#ifdef SMALL_MEMORY -#define malloc_getpagesize (128) -#else -#define malloc_getpagesize (4096) -#endif - -#if __STD_C -extern void __malloc_lock(struct _reent *); -extern void __malloc_unlock(struct _reent *); -#else -extern void __malloc_lock(); -extern void __malloc_unlock(); -#endif - -#if __STD_C -#define RARG struct _reent *reent_ptr, -#define RONEARG struct _reent *reent_ptr -#else -#define RARG reent_ptr -#define RONEARG reent_ptr -#define RDECL struct _reent *reent_ptr; -#endif - -#define RCALL reent_ptr, -#define RONECALL reent_ptr - -/* - Define MALLOC_LOCK and MALLOC_UNLOCK to C expressions to run to - lock and unlock the malloc data structures. MALLOC_LOCK may be - called recursively. - */ - -#ifndef MALLOC_LOCK -#define MALLOC_LOCK -#endif - -#ifndef MALLOC_UNLOCK -#define MALLOC_UNLOCK -#endif - -/* - INTERNAL_SIZE_T is the word-size used for internal bookkeeping - of chunk sizes. On a 64-bit machine, you can reduce malloc - overhead by defining INTERNAL_SIZE_T to be a 32 bit `unsigned int' - at the expense of not being able to handle requests greater than - 2^31. This limitation is hardly ever a concern; you are encouraged - to set this. However, the default version is the same as size_t. -*/ - -#ifndef INTERNAL_SIZE_T -#define INTERNAL_SIZE_T size_t -#endif - -/* - Following is needed on implementations whereby long > size_t. - The problem is caused because the code performs subtractions of - size_t values and stores the result in long values. In the case - where long > size_t and the first value is actually less than - the second value, the resultant value is positive. For example, - (long)(x - y) where x = 0 and y is 1 ends up being 0x00000000FFFFFFFF - which is 2*31 - 1 instead of 0xFFFFFFFFFFFFFFFF. This is due to the - fact that assignment from unsigned to signed won't sign extend. -*/ - -#ifdef SIZE_T_SMALLER_THAN_LONG -#define long_sub_size_t(x, y) ( (x < y) ? -((long)(y - x)) : (x - y) ); -#else -#define long_sub_size_t(x, y) ( (long)(x - y) ) -#endif - -/* - REALLOC_ZERO_BYTES_FREES should be set if a call to - realloc with zero bytes should be the same as a call to free. - Some people think it should. Otherwise, since this malloc - returns a unique pointer for malloc(0), so does realloc(p, 0). -*/ - -/* The following macros are only invoked with (2n+1)-multiples of - INTERNAL_SIZE_T units, with a positive integer n. This is exploited - for fast inline execution when n is small. */ - -#define MALLOC_ZERO(charp, nbytes) \ -do { \ - INTERNAL_SIZE_T mzsz = (nbytes); \ - if(mzsz <= 9*sizeof(mzsz)) { \ - INTERNAL_SIZE_T* mz = (INTERNAL_SIZE_T*) (charp); \ - if(mzsz >= 5*sizeof(mzsz)) { *mz++ = 0; \ - *mz++ = 0; \ - if(mzsz >= 7*sizeof(mzsz)) { *mz++ = 0; \ - *mz++ = 0; \ - if(mzsz >= 9*sizeof(mzsz)) { *mz++ = 0; \ - *mz++ = 0; }}} \ - *mz++ = 0; \ - *mz++ = 0; \ - *mz = 0; \ - } else memset((charp), 0, mzsz); \ -} while(0) - -#define MALLOC_COPY(dest,src,nbytes) \ -do { \ - INTERNAL_SIZE_T mcsz = (nbytes); \ - if(mcsz <= 9*sizeof(mcsz)) { \ - INTERNAL_SIZE_T* mcsrc = (INTERNAL_SIZE_T*) (src); \ - INTERNAL_SIZE_T* mcdst = (INTERNAL_SIZE_T*) (dest); \ - if(mcsz >= 5*sizeof(mcsz)) { *mcdst++ = *mcsrc++; \ - *mcdst++ = *mcsrc++; \ - if(mcsz >= 7*sizeof(mcsz)) { *mcdst++ = *mcsrc++; \ - *mcdst++ = *mcsrc++; \ - if(mcsz >= 9*sizeof(mcsz)) { *mcdst++ = *mcsrc++; \ - *mcdst++ = *mcsrc++; }}} \ - *mcdst++ = *mcsrc++; \ - *mcdst++ = *mcsrc++; \ - *mcdst = *mcsrc ; \ - } else memcpy(dest, src, mcsz); \ -} while(0) - -#define vECCALLOc _vec_calloc_r -#define fREe _free_r -#define mEMALIGn _memalign_r -#define vECREALLOc _vec_realloc_r -# -#if __STD_C - -Void_t* vECREALLOc(RARG Void_t*, size_t); -Void_t* vECCALLOc(RARG size_t, size_t); -#else -Void_t* vECREALLOc(); -Void_t* vECCALLOc(); -#endif - - -#ifdef __cplusplus -}; /* end of extern "C" */ -#endif - -/* - Type declarations -*/ - -struct malloc_chunk -{ - INTERNAL_SIZE_T prev_size; /* Size of previous chunk (if free). */ - INTERNAL_SIZE_T size; /* Size in bytes, including overhead. */ - struct malloc_chunk* fd; /* double links -- used only if free. */ - struct malloc_chunk* bk; -}; - -typedef struct malloc_chunk* mchunkptr; - -/* sizes, alignments */ - -#define SIZE_SZ (sizeof(INTERNAL_SIZE_T)) -#define MALLOC_ALIGN 16 -#define MALLOC_ALIGNMENT 16 -#define MALLOC_ALIGN_MASK (MALLOC_ALIGNMENT - 1) -#define MINSIZE (sizeof(struct malloc_chunk)) - -/* conversion from malloc headers to user pointers, and back */ - -#define chunk2mem(p) ((Void_t*)((char*)(p) + 2*SIZE_SZ)) -#define mem2chunk(mem) ((mchunkptr)((char*)(mem) - 2*SIZE_SZ)) -/* pad request bytes into a usable size */ - -#define request2size(req) \ - (((long)((req) + (SIZE_SZ + MALLOC_ALIGN_MASK)) < \ - (long)(MINSIZE + MALLOC_ALIGN_MASK)) ? ((MINSIZE + MALLOC_ALIGN_MASK) & ~(MALLOC_ALIGN_MASK)) : \ - (((req) + (SIZE_SZ + MALLOC_ALIGN_MASK)) & ~(MALLOC_ALIGN_MASK))) - - -/* Check if m has acceptable alignment */ - -#define aligned_OK(m) (((unsigned long)((m)) & (MALLOC_ALIGN_MASK)) == 0) - -/* - Physical chunk operations -*/ - - -/* size field is or'ed with PREV_INUSE when previous adjacent chunk in use */ - -#define PREV_INUSE 0x1 - -/* size field is or'ed with IS_MMAPPED if the chunk was obtained with mmap() */ - -#define IS_MMAPPED 0x2 - -/* Bits to mask off when extracting size */ - -#define SIZE_BITS (PREV_INUSE|IS_MMAPPED) - - -/* Ptr to next physical malloc_chunk. */ - -#define next_chunk(p) ((mchunkptr)( ((char*)(p)) + ((p)->size & ~PREV_INUSE) )) - -/* Ptr to previous physical malloc_chunk */ - -#define prev_chunk(p)\ - ((mchunkptr)( ((char*)(p)) - ((p)->prev_size) )) - - -/* Treat space at ptr + offset as a chunk */ - -#define chunk_at_offset(p, s) ((mchunkptr)(((char*)(p)) + (s))) - - - - -/* - Dealing with use bits -*/ - -/* extract p's inuse bit */ - -#define inuse(p)\ -((((mchunkptr)(((char*)(p))+((p)->size & ~PREV_INUSE)))->size) & PREV_INUSE) - -/* extract inuse bit of previous chunk */ - -#define prev_inuse(p) ((p)->size & PREV_INUSE) - -/* check for mmap()'ed chunk */ - -#define chunk_is_mmapped(p) ((p)->size & IS_MMAPPED) - -/* set/clear chunk as in use without otherwise disturbing */ - -#define set_inuse(p)\ -((mchunkptr)(((char*)(p)) + ((p)->size & ~PREV_INUSE)))->size |= PREV_INUSE - -#define clear_inuse(p)\ -((mchunkptr)(((char*)(p)) + ((p)->size & ~PREV_INUSE)))->size &= ~(PREV_INUSE) - -/* check/set/clear inuse bits in known places */ - -#define inuse_bit_at_offset(p, s)\ - (((mchunkptr)(((char*)(p)) + (s)))->size & PREV_INUSE) - -#define set_inuse_bit_at_offset(p, s)\ - (((mchunkptr)(((char*)(p)) + (s)))->size |= PREV_INUSE) - -#define clear_inuse_bit_at_offset(p, s)\ - (((mchunkptr)(((char*)(p)) + (s)))->size &= ~(PREV_INUSE)) - - - -/* - Dealing with size fields -*/ - -/* Get size, ignoring use bits */ - -#define chunksize(p) ((p)->size & ~(SIZE_BITS)) - -/* Set size at head, without disturbing its use bit */ - -#define set_head_size(p, s) ((p)->size = (((p)->size & PREV_INUSE) | (s))) - -/* Set size/use ignoring previous bits in header */ - -#define set_head(p, s) ((p)->size = (s)) - - - -#ifdef DEFINE_VECREALLOC - - -#if __STD_C -Void_t* vECREALLOc(RARG Void_t* oldmem, size_t bytes) -#else -Void_t* vECREALLOc(RARG oldmem, bytes) RDECL Void_t* oldmem; size_t bytes; -#endif -{ - INTERNAL_SIZE_T nb; /* padded request size */ - - mchunkptr oldp; /* chunk corresponding to oldmem */ - INTERNAL_SIZE_T oldsize; /* its size */ - - mchunkptr newp; /* chunk to return */ - INTERNAL_SIZE_T newsize; /* its size */ - Void_t* newmem; /* corresponding user mem */ - - mchunkptr remainder; /* holds split off extra space from newp */ - INTERNAL_SIZE_T remainder_size; /* its size */ - -#ifdef REALLOC_ZERO_BYTES_FREES - if (bytes == 0) { fREe(RCALL oldmem); return 0; } -#endif - - - /* realloc of null is supposed to be same as malloc */ - if (oldmem == 0) return mEMALIGn(RCALL 16, bytes); - - MALLOC_LOCK; - - newp = oldp = mem2chunk(oldmem); - newsize = oldsize = chunksize(oldp); - - nb = request2size(bytes); - - if ((long)(oldsize) < (long)(nb)) - { - /* Must allocate */ - - newmem = mEMALIGn (RCALL 16, bytes); - - if (newmem == 0) /* propagate failure */ - { - MALLOC_UNLOCK; - return 0; - } - - /* copy, free, and exit */ - MALLOC_COPY(newmem, oldmem, oldsize - SIZE_SZ); - fREe(RCALL oldmem); - MALLOC_UNLOCK; - return newmem; - } - - remainder_size = long_sub_size_t(newsize, nb); - - if (remainder_size >= (long)MINSIZE) /* split off remainder */ - { - remainder = chunk_at_offset(newp, nb); - set_head_size(newp, nb); - set_head(remainder, remainder_size | PREV_INUSE); - set_inuse_bit_at_offset(remainder, remainder_size); - fREe(RCALL chunk2mem(remainder)); /* let free() deal with it */ - } - else - { - set_head_size(newp, newsize); - set_inuse_bit_at_offset(newp, newsize); - } - - MALLOC_UNLOCK; - return chunk2mem(newp); -} - -#endif /* DEFINE_VECREALLOC */ - - -#ifdef DEFINE_VECCALLOC - -/* - - calloc calls malloc, then zeroes out the allocated chunk. - -*/ - -#if __STD_C -Void_t* vECCALLOc(RARG size_t n, size_t elem_size) -#else -Void_t* vECCALLOc(RARG n, elem_size) RDECL size_t n; size_t elem_size; -#endif -{ - INTERNAL_SIZE_T sz = n * elem_size; - - Void_t* mem; - - mem = mEMALIGn (RCALL 16, sz); - - if (mem == 0) - { - return 0; - } - - MALLOC_ZERO(mem, sz); - return mem; -} - -#endif /* DEFINE_VECCALLOC */ - diff --git a/lib/machine/powerpc/vec_realloc.c b/lib/machine/powerpc/vec_realloc.c deleted file mode 100644 index db6f320..0000000 --- a/lib/machine/powerpc/vec_realloc.c +++ /dev/null @@ -1,16 +0,0 @@ -/* vec_realloc.c -- a wrapper for _vec_realloc_r. */ - -#include <_ansi.h> -#include -#include - -#ifndef _REENT_ONLY - -void * -vec_realloc (void *ap, - size_t nbytes) -{ - return _vec_realloc_r (_REENT, ap, nbytes); -} - -#endif diff --git a/lib/machine/powerpc/vec_reallocr.c b/lib/machine/powerpc/vec_reallocr.c deleted file mode 100644 index d1d99de..0000000 --- a/lib/machine/powerpc/vec_reallocr.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_VECREALLOC -#include "vec_mallocr.c" diff --git a/lib/machine/powerpc/vfprintf.c b/lib/machine/powerpc/vfprintf.c deleted file mode 100644 index a8af4c3..0000000 --- a/lib/machine/powerpc/vfprintf.c +++ /dev/null @@ -1,1377 +0,0 @@ -/* -FUNCTION -<>, <>, <>---format argument list - -INDEX - vprintf -INDEX - vfprintf -INDEX - vsprintf -INDEX - vsnprintf - -SYNOPSIS - #include - #include - int vprintf(const char *<[fmt]>, va_list <[list]>); - int vfprintf(FILE *<[fp]>, const char *<[fmt]>, va_list <[list]>); - int vsprintf(char *<[str]>, const char *<[fmt]>, va_list <[list]>); - int vsnprintf(char *<[str]>, size_t <[size]>, const char *<[fmt]>, va_list <[list]>); - - int _vprintf_r(void *<[reent]>, const char *<[fmt]>, - va_list <[list]>); - int _vfprintf_r(void *<[reent]>, FILE *<[fp]>, const char *<[fmt]>, - va_list <[list]>); - int _vsprintf_r(void *<[reent]>, char *<[str]>, const char *<[fmt]>, - va_list <[list]>); - int _vsnprintf_r(void *<[reent]>, char *<[str]>, size_t <[size]>, const char *<[fmt]>, - va_list <[list]>); - -DESCRIPTION -<>, <>, <> and <> are (respectively) -variants of <>, <>, <> and <>. They differ -only in allowing their caller to pass the variable argument list as a -<> object (initialized by <>) rather than directly -accepting a variable number of arguments. - -RETURNS -The return values are consistent with the corresponding functions: -<> returns the number of bytes in the output string, -save that the concluding <> is not counted. -<> and <> return the number of characters transmitted. -If an error occurs, <> and <> return <>. No -error returns occur for <>. - -PORTABILITY -ANSI C requires all three functions. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -/*static char *sccsid = "from: @(#)vfprintf.c 5.50 (Berkeley) 12/16/92";*/ -static char *rcsid = "$Id$"; -#endif /* LIBC_SCCS and not lint */ - -/* - * Actual printf innards. - * - * This code is large and complicated... - */ - -#ifdef INTEGER_ONLY -#define VFPRINTF vfiprintf -#define _VFPRINTF_R _vfiprintf_r -#else -#define VFPRINTF vfprintf -#define _VFPRINTF_R _vfprintf_r -#ifndef NO_FLOATING_POINT -#define FLOATING_POINT -#endif -#endif - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#ifdef __ALTIVEC__ -#include -#endif - -#include - -#include "local.h" -#include "fvwrite.h" -#include "vfieeefp.h" - -/* Currently a test is made to see if long double processing is warranted. - This could be changed in the future should the _ldtoa_r code be - preferred over _dtoa_r. */ -#define _NO_LONGDBL -#if defined _WANT_IO_LONG_DOUBLE && (LDBL_MANT_DIG > DBL_MANT_DIG) -#undef _NO_LONGDBL -#endif - -#define _NO_LONGLONG -#if defined _WANT_IO_LONG_LONG && defined __GNUC__ -# undef _NO_LONGLONG -#endif - -#ifdef __ALTIVEC__ -typedef union -{ - vector int v; - float f[4]; - int i[16 / sizeof(int)]; - long l[4]; - short s[8]; - signed char c[16]; -} vec_16_byte_union; -#endif /* __ALTIVEC__ */ - -/* - * Flush out all the vectors defined by the given uio, - * then reset it so that it can be reused. - */ -static int -__sprint_r(rptr, fp, uio) - struct _reent *rptr; - FILE *fp; - register struct __suio *uio; -{ - register int err; - - if (uio->uio_resid == 0) { - uio->uio_iovcnt = 0; - return (0); - } - err = __sfvwrite_r(rptr, fp, uio); - uio->uio_resid = 0; - uio->uio_iovcnt = 0; - return (err); -} - -/* - * Helper function for `fprintf to unbuffered unix file': creates a - * temporary buffer. We only work on write-only files; this avoids - * worries about ungetc buffers and so forth. - */ -static int -__sbprintf_r(rptr, fp, fmt, ap) - struct _reent *rptr; - register FILE *fp; - const char *fmt; - va_list ap; -{ - int ret; - FILE fake; - unsigned char buf[BUFSIZ]; - - /* copy the important variables */ - fake._flags = fp->_flags & ~__SNBF; - fake._file = fp->_file; - fake._cookie = fp->_cookie; - fake._write = fp->_write; - - /* set up the buffer */ - fake._bf._base = fake._p = buf; - fake._bf._size = fake._w = sizeof(buf); - fake._lbfsize = 0; /* not actually used, but Just In Case */ - - /* do the work, then copy any error status */ - ret = _VFPRINTF_R(rptr, &fake, fmt, ap); - if (ret >= 0 && _fflush_r(rptr, &fake)) - ret = EOF; - if (fake._flags & __SERR) - fp->_flags |= __SERR; - return (ret); -} - - -#ifdef FLOATING_POINT -#include -#include -#include "floatio.h" - -#define BUF (MAXEXP+MAXFRACT+1) /* + decimal point */ -#define DEFPREC 6 - -#ifdef _NO_LONGDBL -static char *cvt (struct _reent *, double, int, int, char *, int *, int, int *); -#else -static char *cvt (struct _reent *, _LONG_DOUBLE, int, int, char *, int *, int, int *); -extern int _ldcheck (_LONG_DOUBLE *); -#endif - -static int exponent (char *, int, int); - -#ifdef __SPE__ -static char *cvt_ufix64 (struct _reent *, unsigned long long, int, int *, int *); -#endif /* __SPE__ */ - -#else /* no FLOATING_POINT */ - -#define BUF 40 - -#endif /* FLOATING_POINT */ - - -/* - * Macros for converting digits to letters and vice versa - */ -#define to_digit(c) ((c) - '0') -#define is_digit(c) ((unsigned)to_digit(c) <= 9) -#define to_char(n) ((n) + '0') - -/* - * Flags used during conversion. - */ -#define ALT 0x001 /* alternate form */ -#define HEXPREFIX 0x002 /* add 0x or 0X prefix */ -#define LADJUST 0x004 /* left adjustment */ -#define LONGDBL 0x008 /* long double */ -#define LONGINT 0x010 /* long integer */ -#ifndef _NO_LONGLONG -#define QUADINT 0x020 /* quad integer */ -#else /* ifdef _NO_LONGLONG, make QUADINT equivalent to LONGINT, so - that %lld behaves the same as %ld, not as %d, as expected if: - sizeof (long long) = sizeof long > sizeof int */ -#define QUADINT LONGINT -#endif -#define SHORTINT 0x040 /* short integer */ -#define ZEROPAD 0x080 /* zero (as opposed to blank) pad */ -#define FPT 0x100 /* Floating point number */ -#define VECTOR 0x200 /* vector */ -#define FIXEDPOINT 0x400 /* fixed-point */ - -int -VFPRINTF (FILE * fp, - const char *fmt0, - va_list ap) -{ - CHECK_INIT (_REENT, fp); - return _VFPRINTF_R (_REENT, fp, fmt0, ap); -} - -int -_VFPRINTF_R (struct _reent *data, - FILE * fp, - const char *fmt0, - va_list ap) -{ - register char *fmt; /* format string */ - register int ch; /* character from fmt */ - register int n, m; /* handy integers (short term usage) */ - register char *cp; /* handy char pointer (short term usage) */ - register struct __siov *iovp;/* for PRINT macro */ - register int flags; /* flags as above */ - int ret; /* return value accumulator */ - int width; /* width from format (%8d), or 0 */ - int prec; /* precision from format (%.3d), or -1 */ - char sign; /* sign prefix (' ', '+', '-', or \0) */ - char old_sign; /* saved value of sign when looping for vectors */ - int old_ch; /* saved value of ch when looping for vectors */ - char *format_anchor; /* start of format to process */ - wchar_t wc; -#ifdef FLOATING_POINT - char *decimal_point = localeconv()->decimal_point; - char softsign; /* temporary negative sign for floats */ -#ifdef _NO_LONGDBL - union { int i; double d; } _double_ = {0}; - #define _fpvalue (_double_.d) -#else - union { int i; _LONG_DOUBLE ld; } _long_double_ = {0}; - #define _fpvalue (_long_double_.ld) - int tmp; -#endif - int expt; /* integer value of exponent */ - int expsize = 0; /* character count for expstr */ - int ndig; /* actual number of digits returned by cvt */ - char expstr[7]; /* buffer for exponent string */ -#endif - -#ifndef _NO_LONGLONG -#define quad_t long long -#define u_quad_t unsigned long long -#else -#define quad_t long -#define u_quad_t u_long -#endif - - u_quad_t _uquad; /* integer arguments %[diouxX] */ - enum { OCT, DEC, HEX } base;/* base for [diouxX] conversion */ - int dprec; /* a copy of prec if [diouxX], 0 otherwise */ - int realsz; /* field size expanded by dprec */ - int size; /* size of converted field or string */ - char *xdigs = NULL; /* digits for [xX] conversion */ -#define NIOV 8 - struct __suio uio; /* output information: summary */ - struct __siov iov[NIOV];/* ... and individual io vectors */ - char buf[BUF]; /* space for %c, %[diouxX], %[eEfgG] */ - char ox[2]; /* space for 0x hex-prefix */ -#ifdef __ALTIVEC__ - char vec_sep; /* vector separator char */ - int vec_print_count; /* number of vector chunks remaining */ - vec_16_byte_union vec_tmp; -#endif /* __ALTIVEC__ */ - mbstate_t state; /* mbtowc calls from library must not change state */ - - /* - * Choose PADSIZE to trade efficiency vs. size. If larger printf - * fields occur frequently, increase PADSIZE and make the initialisers - * below longer. - */ -#define PADSIZE 16 /* pad chunk size */ - static const char blanks[PADSIZE] = - {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '}; - static const char zeroes[PADSIZE] = - {'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'}; - - /* - * BEWARE, these `goto error' on error, and PAD uses `n'. - */ -#define PRINT(ptr, len) { \ - iovp->iov_base = (ptr); \ - iovp->iov_len = (len); \ - uio.uio_resid += (len); \ - iovp++; \ - if (++uio.uio_iovcnt >= NIOV) { \ - if (__sprint_r(data, fp, &uio)) \ - goto error; \ - iovp = iov; \ - } \ -} -#define PAD(howmany, with) { \ - if ((n = (howmany)) > 0) { \ - while (n > PADSIZE) { \ - PRINT(with, PADSIZE); \ - n -= PADSIZE; \ - } \ - PRINT(with, n); \ - } \ -} -#define FLUSH() { \ - if (uio.uio_resid && __sprint_r(data, fp, &uio)) \ - goto error; \ - uio.uio_iovcnt = 0; \ - iovp = iov; \ -} - -#ifdef __ALTIVEC__ -#define GET_SHORT(ap) \ - (flags&VECTOR ? \ - (vec_print_count < 8 ? (short)vec_tmp.s[8 - vec_print_count] : \ - (vec_tmp.v = va_arg(ap, vector int), (short)vec_tmp.s[0])) : \ - (short)va_arg(ap, int)) -#define GET_USHORT(ap) \ - (flags&VECTOR ? \ - (vec_print_count < 8 ? (u_short)vec_tmp.s[8 - vec_print_count] : \ - (vec_tmp.v = va_arg(ap, vector int), (u_short)vec_tmp.s[0])) : \ - (u_short)va_arg(ap, int)) - -#define GET_LONG(ap) \ - (flags&VECTOR ? \ - (vec_print_count < 4 ? (long)vec_tmp.l[4 - vec_print_count] : \ - (vec_tmp.v = va_arg(ap, vector int), vec_tmp.l[0])) : \ - va_arg(ap, long int)) -#define GET_ULONG(ap) \ - (flags&VECTOR ? \ - (vec_print_count < 4 ? (u_long)vec_tmp.l[4 - vec_print_count] : \ - (vec_tmp.v = va_arg(ap, vector int), (u_long)vec_tmp.l[0])) : \ - (u_long)va_arg(ap, unsigned long int)) - -#define GET_INT(ap) \ - (flags&VECTOR ? \ - (vec_print_count < 16 ? \ - vec_tmp.c[16 - vec_print_count] : \ - (vec_tmp.v = va_arg(ap, vector int), (int)vec_tmp.c[0])) : \ - va_arg(ap, int)) -#define GET_UINT(ap) \ - (flags&VECTOR ? \ - (vec_print_count < 16 ? \ - (u_int)((unsigned char)vec_tmp.c[16 - vec_print_count]) : \ - (vec_tmp.v = va_arg(ap, vector int), (u_int)((unsigned char)vec_tmp.c[0]))) : \ - (u_int)va_arg(ap, unsigned int)) -#else /* !__ALTIVEC__ */ -#define GET_SHORT(ap) ((short)va_arg(ap, int)) -#define GET_USHORT(ap) ((u_short)va_arg(ap, int)) -#define GET_LONG(ap) (va_arg(ap, long int)) -#define GET_ULONG(ap) ((u_long)va_arg(ap, unsigned long int)) -#define GET_INT(ap) ((int)va_arg(ap, int)) -#define GET_UINT(ap) ((u_int)va_arg(ap, unsigned int)) -#endif /* !__ALTIVEC__ */ - -#ifndef _NO_LONGLONG -#define SARG() \ - (flags&QUADINT ? va_arg(ap, quad_t) : \ - flags&LONGINT ? GET_LONG(ap) : \ - flags&SHORTINT ? (long)GET_SHORT(ap) : \ - (long)GET_INT(ap)) -#define UARG() \ - (flags&QUADINT ? va_arg(ap, u_quad_t) : \ - flags&LONGINT ? GET_ULONG(ap) : \ - flags&SHORTINT ? (u_long)GET_USHORT(ap) : \ - (u_long)GET_UINT(ap)) -#ifdef __SPE__ -#define SFPARG() \ - (flags&LONGINT ? va_arg(ap, quad_t) : \ - flags&SHORTINT ? (long)GET_SHORT(ap) : \ - (long)va_arg(ap, int)) -#define UFPARG() \ - (flags&LONGINT ? va_arg(ap, u_quad_t) : \ - flags&SHORTINT ? (u_long)GET_USHORT(ap) : \ - (u_long)va_arg(ap, u_int)) -#endif /* __SPE__ */ -#else -#define SARG() \ - (flags&LONGINT ? GET_LONG(ap) : \ - flags&SHORTINT ? (long)GET_SHORT(ap) : \ - (long)GET_INT(ap)) -#define UARG() \ - (flags&LONGINT ? GET_ULONG(ap) : \ - flags&SHORTINT ? (u_long)GET_USHORT(ap) : \ - (u_long)GET_UINT(ap)) -#ifdef __SPE__ -#define SFPARG() \ - (flags&LONGINT ? (va_arg(ap, long) << 32) : \ - flags&SHORTINT ? (long)GET_SHORT(ap) : \ - (long)va_arg(ap, int)) -#define UFPARG() \ - (flags&LONGINT ? (va_arg(ap, u_long) <<32) : \ - flags&SHORTINT ? (u_long)GET_USHORT(ap) : \ - (u_long)va_arg(ap, u_int)) -#endif /* __SPE__ */ -#endif - - memset (&state, '\0', sizeof (state)); - - /* sorry, fprintf(read_only_file, "") returns EOF, not 0 */ - if (cantwrite (data, fp)) { - _funlockfile (fp); - return (EOF); - } - - /* optimise fprintf(stderr) (and other unbuffered Unix files) */ - if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) && - fp->_file >= 0) - return (__sbprintf_r(data, fp, fmt0, ap)); - - fmt = (char *)fmt0; - uio.uio_iov = iovp = iov; - uio.uio_resid = 0; - uio.uio_iovcnt = 0; - ret = 0; - - /* - * Scan the format for conversions (`%' character). - */ - - for (;;) { - cp = fmt; - while ((n = _mbtowc_r(data, &wc, fmt, MB_CUR_MAX, &state)) > 0) { - fmt += n; - if (wc == '%') { - fmt--; - break; - } - } - if ((m = fmt - cp) != 0) { - PRINT(cp, m); - ret += m; - } - if (n <= 0) - goto done; - fmt++; /* skip over '%' */ - - flags = 0; - dprec = 0; - width = 0; - prec = -1; - sign = '\0'; - old_sign = '\0'; -#ifdef __ALTIVEC__ - vec_print_count = 0; - vec_sep = ' '; -#endif /* __ALTIVEC__ */ - - format_anchor = fmt; -rflag: ch = *fmt++; - old_ch = ch; -reswitch: switch (ch) { - case ' ': - /* - * ``If the space and + flags both appear, the space - * flag will be ignored.'' - * -- ANSI X3J11 - */ - if (!sign) - sign = ' '; - goto rflag; - case '#': - flags |= ALT; - goto rflag; - case '*': - /* - * ``A negative field width argument is taken as a - * - flag followed by a positive field width.'' - * -- ANSI X3J11 - * They don't exclude field widths read from args. - */ - if ((width = va_arg(ap, int)) >= 0) - goto rflag; - width = -width; - /* FALLTHROUGH */ - case '-': - flags |= LADJUST; - goto rflag; - case '+': - sign = '+'; - goto rflag; -#ifdef __ALTIVEC__ - case ',': - case ';': - case ':': - case '_': - if (vec_sep != ' ') - { - fmt = format_anchor; - continue; - } - vec_sep = ch; - goto rflag; -#endif /* __ALTIVEC__ */ - case '.': - if ((ch = *fmt++) == '*') { - n = va_arg(ap, int); - prec = n < 0 ? -1 : n; - goto rflag; - } - n = 0; - while (is_digit(ch)) { - n = 10 * n + to_digit(ch); - ch = *fmt++; - } - prec = n < 0 ? -1 : n; - goto reswitch; - case '0': - /* - * ``Note that 0 is taken as a flag, not as the - * beginning of a field width.'' - * -- ANSI X3J11 - */ - flags |= ZEROPAD; - goto rflag; - case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - n = 0; - do { - n = 10 * n + to_digit(ch); - ch = *fmt++; - } while (is_digit(ch)); - width = n; - goto reswitch; -#ifdef FLOATING_POINT - case 'L': -#ifdef __ALTIVEC__ - if (flags & VECTOR) - { - fmt = format_anchor; - continue; - } -#endif /* __ALTIVEC__ */ - flags |= LONGDBL; - goto rflag; -#endif - case 'h': - if (flags & LONGINT) - { - fmt = format_anchor; - continue; - } - flags |= SHORTINT; -#ifdef __ALTIVEC__ - if (flags & VECTOR) - vec_print_count = 8; -#endif - goto rflag; - case 'l': - if (flags & SHORTINT) - { - fmt = format_anchor; - continue; - } - if (*fmt == 'l') { - fmt++; - flags |= QUADINT; - flags &= ~VECTOR; - } else { - flags |= LONGINT; -#ifdef __ALTIVEC__ - if (flags & VECTOR) - vec_print_count = 4; -#endif - } - goto rflag; -#ifdef __ALTIVEC__ - case 'v': - if (flags & VECTOR) - { - fmt = format_anchor; - continue; - } - flags |= VECTOR; - vec_print_count = (flags & SHORTINT) ? 8 : - ((flags & LONGINT) ? 4 : 16); - goto rflag; -#endif - case 'q': -#ifdef __ALTIVEC__ - if (flags & VECTOR) - { - fmt = format_anchor; - continue; - } -#endif /* __ALTIVEC__ */ - flags |= QUADINT; - goto rflag; - case 'c': -#ifdef __ALTIVEC__ - if (flags & VECTOR) - { - int k; - vec_16_byte_union tmp; - if (flags & (SHORTINT | LONGINT)) - { - fmt = format_anchor; - continue; - } - tmp.v = va_arg(ap, vector int); - cp = buf; - for (k = 0; k < 15; ++k) - { - *cp++ = tmp.c[k]; - if (vec_sep != ' ') - *cp++ = vec_sep; - } - *cp++ = tmp.c[15]; - size = cp - buf; - cp = buf; - vec_print_count = 0; - } - else -#endif /* __ALTIVEC__ */ - { - *(cp = buf) = va_arg(ap, int); - size = 1; - } - sign = '\0'; - break; - case 'D': - flags |= LONGINT; - /*FALLTHROUGH*/ - case 'd': - case 'i': -#ifdef __ALTIVEC__ - if (!(flags & VECTOR) && vec_sep != ' ') - { - fmt = format_anchor; - continue; - } -#endif /* __ALTIVEC__ */ - _uquad = SARG(); - if ((quad_t)_uquad < 0) - { - _uquad = -(quad_t)_uquad; - old_sign = sign; - sign = '-'; - } - base = DEC; - goto number; -#ifdef FLOATING_POINT - case 'e': - case 'E': - case 'f': - case 'g': - case 'G': - if (prec == -1) { - prec = DEFPREC; - } else if ((ch == 'g' || ch == 'G') && prec == 0) { - prec = 1; - } - -#ifdef _NO_LONGDBL - if (flags & LONGDBL) { - _fpvalue = (double) va_arg(ap, _LONG_DOUBLE); -#ifdef __ALTIVEC__ - } else if (flags & VECTOR) { - if (vec_print_count >= 4) - { - vec_print_count = 4; - vec_tmp.v = va_arg(ap, vector int); - } - _fpvalue = (double)vec_tmp.f[4 - vec_print_count]; - } else if (vec_sep != ' ') { - fmt = format_anchor; - continue; - -#endif /* __ALTIVEC__ */ - } else { - _fpvalue = va_arg(ap, double); - } - - /* do this before tricky precision changes */ - if (isinf(_fpvalue)) { - if (_fpvalue < 0) - { - old_sign = sign; - sign = '-'; - } - - cp = "Inf"; - size = 3; - break; - } - if (isnan(_fpvalue)) { - cp = "NaN"; - size = 3; - break; - } - -#else /* !_NO_LONGDBL */ - - if (flags & LONGDBL) { - _fpvalue = va_arg(ap, _LONG_DOUBLE); -#ifdef __ALTIVEC__ - } else if (flags & VECTOR) { - if (vec_print_count >= 4) - { - vec_print_count = 4; - vec_tmp.v = va_arg(ap, vector int); - } - _fpvalue = (_LONG_DOUBLE)k.f[4 - vec_print_count]; -#endif /* __ALTIVEC__ */ - } else { - _fpvalue = (_LONG_DOUBLE)va_arg(ap, double); - } - - /* do this before tricky precision changes */ - tmp = _ldcheck (&_fpvalue); - if (tmp == 2) { - if (_fpvalue < 0) - { - old_sign = sign; - sign = '-'; - } - cp = "Inf"; - size = 3; - break; - } - if (tmp == 1) { - cp = "NaN"; - size = 3; - break; - } -#endif /* !_NO_LONGDBL */ - - flags |= FPT; - - cp = cvt(data, _fpvalue, prec, flags, &softsign, - &expt, ch, &ndig); - - if (ch == 'g' || ch == 'G') { - if (expt <= -4 || expt > prec) - { - old_ch = ch; - ch = (ch == 'g') ? 'e' : 'E'; - } - else - ch = 'g'; - } - if (ch <= 'e') { /* 'e' or 'E' fmt */ - --expt; - expsize = exponent(expstr, expt, ch); - size = expsize + ndig; - if (ndig > 1 || flags & ALT) - ++size; - } else if (ch == 'f') { /* f fmt */ - if (expt > 0) { - size = expt; - if (prec || flags & ALT) - size += prec + 1; - } else /* "0.X" */ - size = (prec || flags & ALT) - ? prec + 2 - : 1; - } else if (expt >= ndig) { /* fixed g fmt */ - size = expt; - if (flags & ALT) - ++size; - } else - size = ndig + (expt > 0 ? - 1 : 2 - expt); - - if (softsign) - { - old_sign = sign; - sign = '-'; - } - break; -#endif /* FLOATING_POINT */ -#ifdef __SPE__ - case 'r': - flags |= FIXEDPOINT; - _uquad = SFPARG(); - if ((quad_t)_uquad < 0) - { - sign = '-'; - _uquad = -(quad_t)_uquad; - } - if (flags & SHORTINT) - _uquad <<= (sizeof(quad_t) - sizeof(short)) * 8 + 1; - else if (flags & LONGINT) - _uquad <<= 1; - else - _uquad <<= (sizeof(quad_t) - sizeof(long)) * 8 + 1; - - if (_uquad == 0 && sign) - { - /* we have -1.0 which has to be handled special */ - cp = "100000"; - expt = 1; - ndig = 6; - break; - } - - goto fixed_nosign; - case 'R': - flags |= FIXEDPOINT; - _uquad = UFPARG(); - if (flags & SHORTINT) - _uquad <<= (sizeof(quad_t) - sizeof(short)) * 8; - else if (!(flags & LONGINT)) - _uquad <<= (sizeof(quad_t) - sizeof(long)) * 8; - -fixed_nosign: - if (prec == -1) - prec = DEFPREC; - -#ifndef _NO_LONGLONG - cp = cvt_ufix64 (data, _uquad, prec, &expt, &ndig); -#else - cp = cvs_ufix32 (data, _uquad, prec, &expt, &ndig); -#endif - - /* act like %f of format "0.X" */ - size = prec + 2; - - break; -#endif /* __SPE__ */ - case 'n': -#ifdef __ALTIVEC__ - if (flags & VECTOR) - { - fmt = format_anchor; - continue; - } -#endif /* __ALTIVEC__ */ -#ifndef _NO_LONGLONG - if (flags & QUADINT) - *va_arg(ap, quad_t *) = ret; - else -#endif - if (flags & LONGINT) - *va_arg(ap, long *) = ret; - else if (flags & SHORTINT) - *va_arg(ap, short *) = ret; - else - *va_arg(ap, int *) = ret; - continue; /* no output */ - case 'O': - flags |= LONGINT; - /*FALLTHROUGH*/ - case 'o': -#ifdef __ALTIVEC__ - if (!(flags & VECTOR) && vec_sep != ' ') - { - fmt = format_anchor; - continue; - } -#endif /* __ALTIVEC__ */ - _uquad = UARG(); - base = OCT; - goto nosign; - case 'p': - /* - * ``The argument shall be a pointer to void. The - * value of the pointer is converted to a sequence - * of printable characters, in an implementation- - * defined manner.'' - * -- ANSI X3J11 - */ - /* NOSTRICT */ -#ifdef __ALTIVEC__ - if (flags & VECTOR) - _uquad = UARG(); - else if (vec_sep != ' ') - { - fmt = format_anchor; - continue; - } - else -#endif /* __ALTIVEC__ */ - _uquad = (u_long)(unsigned _POINTER_INT)va_arg(ap, void *); - base = HEX; - xdigs = "0123456789abcdef"; - flags |= HEXPREFIX; - ch = 'x'; - goto nosign; - case 's': -#ifdef __ALTIVEC__ - if (flags & VECTOR) - { - fmt = format_anchor; - continue; - } -#endif /* __ALTIVEC__ */ - if ((cp = va_arg(ap, char *)) == NULL) - cp = "(null)"; - if (prec >= 0) { - /* - * can't use strlen; can only look for the - * NUL in the first `prec' characters, and - * strlen() will go further. - */ - char *p = memchr(cp, 0, prec); - - if (p != NULL) { - size = p - cp; - if (size > prec) - size = prec; - } else - size = prec; - } else - size = strlen(cp); - sign = '\0'; - break; - case 'U': - flags |= LONGINT; - /*FALLTHROUGH*/ - case 'u': -#ifdef __ALTIVEC__ - if (!(flags & VECTOR) && vec_sep != ' ') - { - fmt = format_anchor; - continue; - } -#endif /* __ALTIVEC__ */ - _uquad = UARG(); - base = DEC; - goto nosign; - case 'X': - xdigs = "0123456789ABCDEF"; - goto hex; - case 'x': - xdigs = "0123456789abcdef"; -#ifdef __ALTIVEC__ - if (!(flags & VECTOR) && vec_sep != ' ') - { - fmt = format_anchor; - continue; - } -#endif /* __ALTIVEC__ */ -hex: _uquad = UARG(); - base = HEX; - /* leading 0x/X only if non-zero */ - if (flags & ALT && _uquad != 0) - flags |= HEXPREFIX; - - /* unsigned conversions */ -nosign: sign = '\0'; - /* - * ``... diouXx conversions ... if a precision is - * specified, the 0 flag will be ignored.'' - * -- ANSI X3J11 - */ -number: if ((dprec = prec) >= 0) - flags &= ~ZEROPAD; - - /* - * ``The result of converting a zero value with an - * explicit precision of zero is no characters.'' - * -- ANSI X3J11 - */ - cp = buf + BUF; - if (_uquad != 0 || prec != 0) { - /* - * Unsigned mod is hard, and unsigned mod - * by a constant is easier than that by - * a variable; hence this switch. - */ - switch (base) { - case OCT: - do { - *--cp = to_char(_uquad & 7); - _uquad >>= 3; - } while (_uquad); - /* handle octal leading 0 */ - if (flags & ALT && *cp != '0') - *--cp = '0'; - break; - - case DEC: - /* many numbers are 1 digit */ - while (_uquad >= 10) { - *--cp = to_char(_uquad % 10); - _uquad /= 10; - } - *--cp = to_char(_uquad); - break; - - case HEX: - do { - *--cp = xdigs[_uquad & 15]; - _uquad >>= 4; - } while (_uquad); - break; - - default: - cp = "bug in vfprintf: bad base"; - size = strlen(cp); - goto skipsize; - } - } - /* - * ...result is to be converted to an 'alternate form'. - * For o conversion, it increases the precision to force - * the first digit of the result to be a zero." - * -- ANSI X3J11 - * - * To demonstrate this case, compile and run: - * printf ("%#.0o",0); - */ - else if (base == OCT && (flags & ALT)) - *--cp = '0'; - - size = buf + BUF - cp; - skipsize: - break; - default: /* "%?" prints ?, unless ? is NUL */ - flags &= ~VECTOR; - if (ch == '\0') - goto done; - /* pretend it was %c with argument ch */ - cp = buf; - *cp = ch; - size = 1; - sign = '\0'; - break; - } - - /* - * All reasonable formats wind up here. At this point, `cp' - * points to a string which (if not flags&LADJUST) should be - * padded out to `width' places. If flags&ZEROPAD, it should - * first be prefixed by any sign or other prefix; otherwise, - * it should be blank padded before the prefix is emitted. - * After any left-hand padding and prefixing, emit zeroes - * required by a decimal [diouxX] precision, then print the - * string proper, then emit zeroes required by any leftover - * floating precision; finally, if LADJUST, pad with blanks. - * - * Compute actual size, so we know how much to pad. - * size excludes decimal prec; realsz includes it. - */ - realsz = dprec > size ? dprec : size; - if (sign) - realsz++; - else if (flags & HEXPREFIX) - realsz+= 2; - - /* right-adjusting blank padding */ - if ((flags & (LADJUST|ZEROPAD)) == 0) - PAD(width - realsz, blanks); - - /* prefix */ - if (sign) { - PRINT(&sign, 1); - } else if (flags & HEXPREFIX) { - ox[0] = '0'; - ox[1] = ch; - PRINT(ox, 2); - } - - /* right-adjusting zero padding */ - if ((flags & (LADJUST|ZEROPAD)) == ZEROPAD) - PAD(width - realsz, zeroes); - - /* leading zeroes from decimal precision */ - PAD(dprec - size, zeroes); - - /* the string or number proper */ -#ifdef FLOATING_POINT - if ((flags & FPT) == 0) { -#ifdef __SPE__ - if (flags & FIXEDPOINT) { - if (_uquad == 0 && !sign) { - /* kludge for __dtoa irregularity */ - PRINT("0", 1); - if (expt < ndig || (flags & ALT) != 0) { - PRINT(decimal_point, 1); - PAD(ndig - 1, zeroes); - } - } else if (expt <= 0) { - PRINT("0", 1); - if(expt || ndig) { - PRINT(decimal_point, 1); - PAD(-expt, zeroes); - PRINT(cp, ndig); - } - } else if (expt >= ndig) { - PRINT(cp, ndig); - PAD(expt - ndig, zeroes); - if (flags & ALT) - PRINT(".", 1); - } else { - PRINT(cp, expt); - cp += expt; - PRINT(".", 1); - PRINT(cp, ndig-expt); - } - } else -#endif /* __SPE__ */ - PRINT(cp, size); - } else { /* glue together f_p fragments */ - if (ch >= 'f') { /* 'f' or 'g' */ - if (_fpvalue == 0) { - /* kludge for __dtoa irregularity */ - PRINT("0", 1); - if (expt < ndig || (flags & ALT) != 0) { - PRINT(decimal_point, 1); - PAD(ndig - 1, zeroes); - } - } else if (expt <= 0) { - PRINT("0", 1); - if(expt || ndig) { - PRINT(decimal_point, 1); - PAD(-expt, zeroes); - PRINT(cp, ndig); - } - } else if (expt >= ndig) { - PRINT(cp, ndig); - PAD(expt - ndig, zeroes); - if (flags & ALT) - PRINT(".", 1); - } else { - PRINT(cp, expt); - cp += expt; - PRINT(".", 1); - PRINT(cp, ndig-expt); - } - } else { /* 'e' or 'E' */ - if (ndig > 1 || flags & ALT) { - ox[0] = *cp++; - ox[1] = '.'; - PRINT(ox, 2); - if (_fpvalue) { - PRINT(cp, ndig-1); - } else /* 0.[0..] */ - /* __dtoa irregularity */ - PAD(ndig - 1, zeroes); - } else /* XeYYY */ - PRINT(cp, 1); - PRINT(expstr, expsize); - } - } -#else - PRINT(cp, size); -#endif - /* left-adjusting padding (always blank) */ - if (flags & LADJUST) - PAD(width - realsz, blanks); - - /* finally, adjust ret */ - ret += width > realsz ? width : realsz; - -#ifdef __ALTIVEC__ - if ((flags & VECTOR) && vec_print_count-- > 1) - { - /* add vector separator */ - if (ch != 'c' || vec_sep != ' ') - { - PRINT(&vec_sep, 1); - ret += 1; - } - FLUSH(); - sign = old_sign; - ch = old_ch; - goto reswitch; - } -#endif /* __ALTIVEC__ */ - FLUSH(); /* copy out the I/O vectors */ - } -done: - FLUSH(); -error: - return (__sferror(fp) ? EOF : ret); - /* NOTREACHED */ -} - -#ifdef FLOATING_POINT - -#ifdef _NO_LONGDBL -extern char *_dtoa_r (struct _reent *, double, int, - int, int *, int *, char **); -#else -extern char *_ldtoa_r (struct _reent *, _LONG_DOUBLE, int, - int, int *, int *, char **); -#undef word0 -#define word0(x) ldword0(x) -#endif - -static char * -cvt(data, value, ndigits, flags, sign, decpt, ch, length) - struct _reent *data; -#ifdef _NO_LONGDBL - double value; -#else - _LONG_DOUBLE value; -#endif - int ndigits, flags, *decpt, ch, *length; - char *sign; -{ - int mode, dsgn; - char *digits, *bp, *rve; -#ifdef _NO_LONGDBL - union double_union tmp; -#else - struct ldieee *ldptr; -#endif - - if (ch == 'f') { - mode = 3; /* ndigits after the decimal point */ - } else { - /* To obtain ndigits after the decimal point for the 'e' - * and 'E' formats, round to ndigits + 1 significant - * figures. - */ - if (ch == 'e' || ch == 'E') { - ndigits++; - } - mode = 2; /* ndigits significant digits */ - } - -#ifdef _NO_LONGDBL - tmp.d = value; - - if (word0(tmp) & Sign_bit) { /* this will check for < 0 and -0.0 */ - value = -value; - *sign = '-'; - } else - *sign = '\000'; - - digits = _dtoa_r(data, value, mode, ndigits, decpt, &dsgn, &rve); -#else /* !_NO_LONGDBL */ - ldptr = (struct ldieee *)&value; - if (ldptr->sign) { /* this will check for < 0 and -0.0 */ - value = -value; - *sign = '-'; - } else - *sign = '\000'; - - digits = _ldtoa_r(data, value, mode, ndigits, decpt, &dsgn, &rve); -#endif /* !_NO_LONGDBL */ - - if ((ch != 'g' && ch != 'G') || flags & ALT) { /* Print trailing zeros */ - bp = digits + ndigits; - if (ch == 'f') { - if (*digits == '0' && value) - *decpt = -ndigits + 1; - bp += *decpt; - } - if (value == 0) /* kludge for __dtoa irregularity */ - rve = bp; - while (rve < bp) - *rve++ = '0'; - } - *length = rve - digits; - return (digits); -} - -static int -exponent(p0, exp, fmtch) - char *p0; - int exp, fmtch; -{ - register char *p, *t; - char expbuf[40]; - - p = p0; - *p++ = fmtch; - if (exp < 0) { - exp = -exp; - *p++ = '-'; - } - else - *p++ = '+'; - t = expbuf + 40; - if (exp > 9) { - do { - *--t = to_char(exp % 10); - } while ((exp /= 10) > 9); - *--t = to_char(exp); - for (; t < expbuf + 40; *p++ = *t++); - } - else { - *p++ = '0'; - *p++ = to_char(exp); - } - return (p - p0); -} -#endif /* FLOATING_POINT */ - -#ifdef __SPE__ -extern char *_ufix64toa_r (struct _reent *, unsigned long long, int, - int, int *, int *, char **); -static char * -cvt_ufix64 (data, value, ndigits, decpt, length) - struct _reent *data; - unsigned long long value; - int ndigits, *decpt, *length; -{ - int dsgn; - char *digits, *bp, *rve; - - /* treat the same as %f format and use mode=3 */ - digits = _ufix64toa_r (data, value, 3, ndigits, decpt, &dsgn, &rve); - - /* print trailing zeroes */ - bp = digits + ndigits; - if (*digits == '0' && value) - *decpt = -ndigits + 1; - bp += *decpt; - if (value == 0) /* kludge for __dtoa irregularity */ - rve = bp; - while (rve < bp) - *rve++ = '0'; - *length = rve - digits; - return (digits); -} -#endif /* __SPE__ */ diff --git a/lib/machine/powerpc/vfscanf.c b/lib/machine/powerpc/vfscanf.c deleted file mode 100644 index ccd290f..0000000 --- a/lib/machine/powerpc/vfscanf.c +++ /dev/null @@ -1,1219 +0,0 @@ -/* -FUNCTION -<>, <>, <>---format argument list - -INDEX - vscanf -INDEX - vfscanf -INDEX - vsscanf - -SYNOPSIS - #include - #include - int vscanf(const char *restrict <[fmt]>, va_list <[list]>); - int vfscanf(FILE *restrict <[fp]>, const char *restrict <[fmt]>, va_list <[list]>); - int vsscanf(const char *restrict <[str]>, const char *restrict <[fmt]>, va_list <[list]>); - - int _vscanf_r(void *<[reent]>, const char *restrict <[fmt]>, - va_list <[list]>); - int _vfscanf_r(void *<[reent]>, FILE *restrict <[fp]>, const char *restrict <[fmt]>, - va_list <[list]>); - int _vsscanf_r(void *<[reent]>, const char *restrict <[str]>, const char *restrict <[fmt]>, - va_list <[list]>); - -DESCRIPTION -<>, <>, and <> are (respectively) variants -of <>, <>, and <>. They differ only in -allowing their caller to pass the variable argument list as a -<> object (initialized by <>) rather than -directly accepting a variable number of arguments. - -RETURNS -The return values are consistent with the corresponding functions: -<> returns the number of input fields successfully scanned, -converted, and stored; the return value does not include scanned -fields which were not stored. - -If <> attempts to read at end-of-file, the return value -is <>. - -If no fields were stored, the return value is <<0>>. - -The routines <<_vscanf_r>>, <<_vfscanf_f>>, and <<_vsscanf_r>> are -reentrant versions which take an additional first parameter which points to the -reentrancy structure. - -PORTABILITY -These are GNU extensions. - -Supporting OS subroutines required: -*/ - -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" - -#ifndef NO_FLOATING_POINT -#define FLOATING_POINT -#endif - -#ifdef FLOATING_POINT -#include - -/* Currently a test is made to see if long double processing is warranted. - This could be changed in the future should the _ldtoa_r code be - preferred over _dtoa_r. */ -#define _NO_LONGDBL -#if defined _WANT_IO_LONG_DOUBLE && (LDBL_MANT_DIG > DBL_MANT_DIG) -#undef _NO_LONGDBL -#endif - -#define _NO_LONGLONG -#if defined _WANT_IO_LONG_LONG && defined __GNUC__ -# undef _NO_LONGLONG -#endif - -#include "floatio.h" -#define BUF (MAXEXP+MAXFRACT+3) /* 3 = sign + decimal point + NUL */ -/* An upper bound for how long a long prints in decimal. 4 / 13 approximates - log (2). Add one char for roundoff compensation and one for the sign. */ -#define MAX_LONG_LEN ((CHAR_BIT * sizeof (long) - 1) * 4 / 13 + 2) -#else -#define BUF 40 -#endif - -/* - * Flags used during conversion. - */ - -#define LONG 0x01 /* l: long or double */ -#define LONGDBL 0x02 /* L: long double or long long */ -#define SHORT 0x04 /* h: short */ -#define SUPPRESS 0x10 /* suppress assignment */ -#define POINTER 0x20 /* weird %p pointer (`fake hex') */ -#define NOSKIP 0x40 /* do not skip blanks */ - -/* - * The following are used in numeric conversions only: - * SIGNOK, NDIGITS, DPTOK, and EXPOK are for floating point; - * SIGNOK, NDIGITS, PFXOK, and NZDIGITS are for integral. - */ - -#define SIGNOK 0x80 /* +/- is (still) legal */ -#define NDIGITS 0x100 /* no digits detected */ - -#define DPTOK 0x200 /* (float) decimal point is still legal */ -#define EXPOK 0x400 /* (float) exponent (e+3, etc) still legal */ - -#define PFXOK 0x200 /* 0x prefix is (still) legal */ -#define NZDIGITS 0x400 /* no zero digits detected */ -#define NNZDIGITS 0x800 /* no non-zero digits detected */ - -#define VECTOR 0x2000 /* v: vector */ -#define FIXEDPOINT 0x4000 /* r/R: fixed-point */ -#define SIGNED 0x8000 /* r: signed fixed-point */ - -/* - * Conversion types. - */ - -#define CT_CHAR 0 /* %c conversion */ -#define CT_CCL 1 /* %[...] conversion */ -#define CT_STRING 2 /* %s conversion */ -#define CT_INT 3 /* integer, i.e., strtol or strtoul */ -#define CT_FLOAT 4 /* floating, i.e., strtod */ - -#if 0 -#define u_char unsigned char -#endif -#define u_char char -#define u_long unsigned long - -#ifndef _NO_LONGLONG -typedef unsigned long long u_long_long; -#endif - -typedef union -{ - char c[16] __attribute__ ((__aligned__ (16))); - short h[8]; - long l[4]; - int i[4]; - float f[4]; -} vec_union; - -/* - * vfscanf - */ - -#define BufferEmpty (fp->_r <= 0 && __srefill(fp)) - -#ifndef _REENT_ONLY - -int -vfscanf (register FILE *__restrict fp, - const char *__restrict fmt, - va_list ap) -{ - CHECK_INIT(_REENT, fp); - return __svfscanf_r (_REENT, fp, fmt, ap); -} - -int -__svfscanf (fp, fmt0, ap) - register FILE *fp; - char const *fmt0; - va_list ap; -{ - return __svfscanf_r (_REENT, fp, fmt0, ap); -} - -#endif /* !_REENT_ONLY */ - -int -_vfscanf_r (struct _reent *data, - register FILE *__restrict fp, - const char *__restrict fmt, - va_list ap) -{ - return __svfscanf_r (data, fp, fmt, ap); -} - - -int -__svfscanf_r (rptr, fp, fmt0, ap) - struct _reent *rptr; - register FILE *fp; - char const *fmt0; - va_list ap; -{ - register u_char *fmt = (u_char *) fmt0; - register int c; /* character from format, or conversion */ - register int type; /* conversion type */ - register size_t width; /* field width, or 0 */ - register char *p; /* points into all kinds of strings */ - register int n; /* handy integer */ - register int flags; /* flags as defined above */ - register char *p0; /* saves original value of p when necessary */ - int orig_flags; /* saved flags used when processing vector */ - int int_width; /* tmp area to store width when processing int */ - int nassigned; /* number of fields assigned */ - int nread; /* number of characters consumed from fp */ - int base = 0; /* base argument to strtol/strtoul */ - int nbytes = 1; /* number of bytes read from fmt string */ - wchar_t wc; /* wchar to use to read format string */ - char vec_sep; /* vector separator char */ - char last_space_char; /* last white-space char eaten - needed for vec support */ - int vec_read_count; /* number of vector items to read separately */ - int looped; /* has vector processing looped */ - u_long (*ccfn) () = 0; /* conversion function (strtol/strtoul) */ - char ccltab[256]; /* character class table for %[...] */ - char buf[BUF]; /* buffer for numeric conversions */ - vec_union vec_buf; - char *lptr; /* literal pointer */ -#ifdef _MB_CAPABLE - mbstate_t state; /* value to keep track of multibyte state */ -#endif - - char *ch_dest; - short *sp; - int *ip; - float *flp; - _LONG_DOUBLE *ldp; - double *dp; - long *lp; -#ifndef _NO_LONGLONG - long long *llp; -#else - u_long _uquad; -#endif - - /* `basefix' is used to avoid `if' tests in the integer scanner */ - static const short basefix[17] = - {10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - - nassigned = 0; - nread = 0; - for (;;) - { -#ifndef _MB_CAPABLE - wc = *fmt; -#else - memset (&state, '\0', sizeof (state)); - nbytes = _mbtowc_r (rptr, &wc, fmt, MB_CUR_MAX, &state); -#endif - fmt += nbytes; - if (wc == 0) - return nassigned; - if (nbytes == 1 && isspace (wc)) - { - for (;;) - { - if (BufferEmpty) - return nassigned; - if (!isspace (*fp->_p)) - break; - nread++, fp->_r--, fp->_p++; - } - continue; - } - if (wc != '%') - goto literal; - width = 0; - flags = 0; - vec_sep = ' '; - vec_read_count = 0; - looped = 0; - - /* - * switch on the format. continue if done; break once format - * type is derived. - */ - - again: - c = *fmt++; - - switch (c) - { - case '%': - literal: - lptr = fmt - nbytes; - for (n = 0; n < nbytes; ++n) - { - if (BufferEmpty) - goto input_failure; - if (*fp->_p != *lptr) - goto match_failure; - fp->_r--, fp->_p++; - nread++; - ++lptr; - } - continue; - - case '*': - flags |= SUPPRESS; - goto again; - case ',': - case ';': - case ':': - case '_': - if (flags == SUPPRESS || flags == 0) - vec_sep = c; - goto again; - case 'l': - if (flags & SHORT) - continue; /* invalid format, don't process any further */ - if (flags & LONG) - { - flags &= ~LONG; - flags &= ~VECTOR; - flags |= LONGDBL; - } - else - { - flags |= LONG; - if (flags & VECTOR) - vec_read_count = 4; - } - goto again; - case 'L': - flags |= LONGDBL; - flags &= ~VECTOR; - goto again; - case 'h': - flags |= SHORT; - if (flags & LONG) - continue; /* invalid format, don't process any further */ - if (flags & VECTOR) - vec_read_count = 8; - goto again; -#ifdef __ALTIVEC__ - case 'v': - flags |= VECTOR; - vec_read_count = (flags & SHORT) ? 8 : ((flags & LONG) ? 4 : 16); - goto again; -#endif - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - width = width * 10 + c - '0'; - goto again; - - /* - * Conversions. Those marked `compat' are for - * 4.[123]BSD compatibility. - * - * (According to ANSI, E and X formats are supposed to - * the same as e and x. Sorry about that.) - */ - - case 'D': /* compat */ - flags |= LONG; - /* FALLTHROUGH */ - case 'd': - type = CT_INT; - ccfn = (u_long (*)())_strtol_r; - base = 10; - break; - - case 'i': - type = CT_INT; - ccfn = (u_long (*)())_strtol_r; - base = 0; - break; - - case 'O': /* compat */ - flags |= LONG; - /* FALLTHROUGH */ - case 'o': - type = CT_INT; - ccfn = _strtoul_r; - base = 8; - break; - - case 'u': - type = CT_INT; - ccfn = _strtoul_r; - base = 10; - break; - - case 'X': /* compat XXX */ - case 'x': - flags |= PFXOK; /* enable 0x prefixing */ - type = CT_INT; - ccfn = _strtoul_r; - base = 16; - break; - -#ifdef FLOATING_POINT - case 'E': /* compat XXX */ - case 'G': /* compat XXX */ -/* ANSI says that E,G and X behave the same way as e,g,x */ - /* FALLTHROUGH */ - case 'e': - case 'f': - case 'g': - type = CT_FLOAT; - if (flags & VECTOR) - vec_read_count = 4; - break; - -# ifdef __SPE__ - /* treat fixed-point like %f floating point */ - case 'r': - flags |= SIGNED; - /* fallthrough */ - case 'R': - flags |= FIXEDPOINT; - type = CT_FLOAT; - break; -# endif -#endif - - case 's': - flags &= ~VECTOR; - type = CT_STRING; - break; - - case '[': - fmt = __sccl (ccltab, fmt); - flags |= NOSKIP; - flags &= ~VECTOR; - type = CT_CCL; - break; - - case 'c': - flags |= NOSKIP; - type = CT_CHAR; - if (flags & VECTOR) - { - /* not allowed to have h or l with c specifier */ - if (flags & (LONG | SHORT)) - continue; /* invalid format don't process any further */ - width = 0; - vec_read_count = 16; - } - break; - - case 'p': /* pointer format is like hex */ - flags |= POINTER | PFXOK; - type = CT_INT; - ccfn = _strtoul_r; - base = 16; - break; - - case 'n': - if (flags & SUPPRESS) /* ??? */ - continue; - flags &= ~VECTOR; - if (flags & SHORT) - { - sp = va_arg (ap, short *); - *sp = nread; - } - else if (flags & LONG) - { - lp = va_arg (ap, long *); - *lp = nread; - } -#ifndef _NO_LONGLONG - else if (flags & LONGDBL) - { - llp = va_arg (ap, long long*); - *llp = nread; - } -#endif - else - { - ip = va_arg (ap, int *); - *ip = nread; - } - continue; - - /* - * Disgusting backwards compatibility hacks. XXX - */ - case '\0': /* compat */ - return EOF; - - default: /* compat */ - if (isupper (c)) - flags |= LONG; - type = CT_INT; - ccfn = (u_long (*)())_strtol_r; - base = 10; - break; - } - - process: - /* - * We have a conversion that requires input. - */ - if (BufferEmpty) - goto input_failure; - - /* - * Consume leading white space, except for formats that - * suppress this. - */ - last_space_char = '\0'; - - if ((flags & NOSKIP) == 0) - { - while (isspace (*fp->_p)) - { - last_space_char = *fp->_p; - nread++; - if (--fp->_r > 0) - fp->_p++; - else -#ifndef CYGNUS_NEC - if (__srefill (fp)) -#endif - goto input_failure; - } - /* - * Note that there is at least one character in the - * buffer, so conversions that do not set NOSKIP ca - * no longer result in an input failure. - */ - } - - /* for vector formats process separator characters after first loop */ - if (looped && (flags & VECTOR)) - { - flags = orig_flags; - /* all formats other than default char have a separator char */ - if (vec_sep != ' ' || type != CT_CHAR) - { - if (vec_sep == ' ' && last_space_char != ' ' || - vec_sep != ' ' && *fp->_p != vec_sep) - goto match_failure; - if (vec_sep != ' ') - { - nread++; - if (--fp->_r > 0) - fp->_p++; - else -#ifndef CYGNUS_NEC - if (__srefill (fp)) -#endif - goto input_failure; - } - } - /* after eating the separator char, we must eat any white-space - after the separator char that precedes the data to convert */ - if ((flags & NOSKIP) == 0) - { - while (isspace (*fp->_p)) - { - last_space_char = *fp->_p; - nread++; - if (--fp->_r > 0) - fp->_p++; - else -#ifndef CYGNUS_NEC - if (__srefill (fp)) -#endif - goto input_failure; - } - } - - } - else /* save to counter-act changes made to flags when processing */ - orig_flags = flags; - - /* - * Do the conversion. - */ - switch (type) - { - - case CT_CHAR: - /* scan arbitrary characters (sets NOSKIP) */ - if (width == 0) - width = 1; - if (flags & SUPPRESS) - { - size_t sum = 0; - - for (;;) - { - if ((n = fp->_r) < (int)width) - { - sum += n; - width -= n; - fp->_p += n; -#ifndef CYGNUS_NEC - if (__srefill (fp)) - { -#endif - if (sum == 0) - goto input_failure; - break; -#ifndef CYGNUS_NEC - } -#endif - } - else - { - sum += width; - fp->_r -= width; - fp->_p += width; - break; - } - } - nread += sum; - } - else - { - int n = width; - if (!looped) - { - if (flags & VECTOR) - ch_dest = vec_buf.c; - else - ch_dest = va_arg (ap, char *); - } -#ifdef CYGNUS_NEC - /* Kludge city for the moment */ - if (fp->_r == 0) - goto input_failure; - - while (n && fp->_r) - { - *ch_dest++ = *(fp->_p++); - n--; - fp->_r--; - nread++; - } -#else - size_t r = fread (ch_dest, 1, width, fp); - - if (r == 0) - goto input_failure; - nread += r; - ch_dest += r; -#endif - if (!(flags & VECTOR)) - nassigned++; - } - break; - - case CT_CCL: - /* scan a (nonempty) character class (sets NOSKIP) */ - if (width == 0) - width = ~0; /* `infinity' */ - /* take only those things in the class */ - if (flags & SUPPRESS) - { - n = 0; - while (ccltab[*fp->_p]) - { - n++, fp->_r--, fp->_p++; - if (--width == 0) - break; - if (BufferEmpty) - { - if (n == 0) - goto input_failure; - break; - } - } - if (n == 0) - goto match_failure; - } - else - { - p0 = p = va_arg (ap, char *); - while (ccltab[*fp->_p]) - { - fp->_r--; - *p++ = *fp->_p++; - if (--width == 0) - break; - if (BufferEmpty) - { - if (p == p0) - goto input_failure; - break; - } - } - n = p - p0; - if (n == 0) - goto match_failure; - *p = 0; - nassigned++; - } - nread += n; - break; - - case CT_STRING: - /* like CCL, but zero-length string OK, & no NOSKIP */ - if (width == 0) - width = ~0; - if (flags & SUPPRESS) - { - n = 0; - while (!isspace (*fp->_p)) - { - n++, fp->_r--, fp->_p++; - if (--width == 0) - break; - if (BufferEmpty) - break; - } - nread += n; - } - else - { - p0 = p = va_arg (ap, char *); - while (!isspace (*fp->_p)) - { - fp->_r--; - *p++ = *fp->_p++; - if (--width == 0) - break; - if (BufferEmpty) - break; - } - *p = 0; - nread += p - p0; - nassigned++; - } - continue; - - case CT_INT: - { - unsigned int_width_left = 0; - int skips = 0; - int_width = width; -#ifdef hardway - if (int_width == 0 || int_width > sizeof (buf) - 1) -#else - /* size_t is unsigned, hence this optimisation */ - if (int_width - 1 > sizeof (buf) - 2) -#endif - { - int_width_left = width - (sizeof (buf) - 1); - int_width = sizeof (buf) - 1; - } - flags |= SIGNOK | NDIGITS | NZDIGITS | NNZDIGITS; - for (p = buf; int_width; int_width--) - { - c = *fp->_p; - /* - * Switch on the character; `goto ok' if we - * accept it as a part of number. - */ - switch (c) - { - /* - * The digit 0 is always legal, but is special. - * For %i conversions, if no digits (zero or nonzero) - * have been scanned (only signs), we will have base==0. - * In that case, we should set it to 8 and enable 0x - * prefixing. Also, if we have not scanned zero digits - * before this, do not turn off prefixing (someone else - * will turn it off if we have scanned any nonzero digits). - */ - case '0': - if (! (flags & NNZDIGITS)) - goto ok; - if (base == 0) - { - base = 8; - flags |= PFXOK; - } - if (flags & NZDIGITS) - { - flags &= ~(SIGNOK | NZDIGITS | NDIGITS); - goto ok; - } - flags &= ~(SIGNOK | PFXOK | NDIGITS); - if (int_width_left) - { - int_width_left--; - int_width++; - } - ++skips; - goto skip; - - /* 1 through 7 always legal */ - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - base = basefix[base]; - flags &= ~(SIGNOK | PFXOK | NDIGITS | NNZDIGITS); - goto ok; - - /* digits 8 and 9 ok iff decimal or hex */ - case '8': - case '9': - base = basefix[base]; - if (base <= 8) - break; /* not legal here */ - flags &= ~(SIGNOK | PFXOK | NDIGITS | NNZDIGITS); - goto ok; - - /* letters ok iff hex */ - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - /* no need to fix base here */ - if (base <= 10) - break; /* not legal here */ - flags &= ~(SIGNOK | PFXOK | NDIGITS | NNZDIGITS); - goto ok; - - /* sign ok only as first character */ - case '+': - case '-': - if (flags & SIGNOK) - { - flags &= ~SIGNOK; - goto ok; - } - break; - - /* x ok iff flag still set & 2nd char */ - case 'x': - case 'X': - if (flags & PFXOK && p == buf + 1) - { - base = 16;/* if %i */ - flags &= ~PFXOK; - /* We must reset the NZDIGITS and NDIGITS - flags that would have been unset by seeing - the zero that preceded the X or x. */ - flags |= NZDIGITS | NDIGITS; - goto ok; - } - break; - } - - /* - * If we got here, c is not a legal character - * for a number. Stop accumulating digits. - */ - break; - ok: - /* - * c is legal: store it and look at the next. - */ - *p++ = c; - skip: - if (--fp->_r > 0) - fp->_p++; - else -#ifndef CYGNUS_NEC - if (__srefill (fp)) -#endif - break; /* EOF */ - } - /* - * If we had only a sign, it is no good; push back the sign. - * If the number ends in `x', it was [sign] '0' 'x', so push back - * the x and treat it as [sign] '0'. - */ - if (flags & NDIGITS) - { - if (p > buf) - (void) ungetc (*(u_char *)-- p, fp); - goto match_failure; - } - c = ((u_char *) p)[-1]; - if (c == 'x' || c == 'X') - { - --p; - /*(void)*/ ungetc (c, fp); - } - if ((flags & SUPPRESS) == 0) - { - u_long res; - - *p = 0; - res = (*ccfn) (rptr, buf, (char **) NULL, base); - if ((flags & POINTER) && !(flags & VECTOR)) - *(va_arg (ap, void **)) = (void *) (unsigned _POINTER_INT) res; - else if (flags & SHORT) - { - if (!(flags & VECTOR)) - sp = va_arg (ap, short *); - else if (!looped) - sp = vec_buf.h; - *sp++ = res; - } - else if (flags & LONG) - { - if (!(flags & VECTOR)) - lp = va_arg (ap, long *); - else if (!looped) - lp = vec_buf.l; - *lp++ = res; - } -#ifndef _NO_LONGLONG - else if (flags & LONGDBL) - { - u_long_long resll; - if (ccfn == _strtoul_r) - resll = _strtoull_r (rptr, buf, (char **) NULL, base); - else - resll = _strtoll_r (rptr, buf, (char **) NULL, base); - llp = va_arg (ap, long long*); - *llp = resll; - } -#endif - else - { - if (!(flags & VECTOR)) - { - ip = va_arg (ap, int *); - *ip++ = res; - } - else - { - if (!looped) - ch_dest = vec_buf.c; - *ch_dest++ = (char)res; - } - } - if (!(flags & VECTOR)) - nassigned++; - } - nread += p - buf + skips; - break; - } - -#ifdef FLOATING_POINT - case CT_FLOAT: - { - /* scan a floating point number as if by strtod */ - /* This code used to assume that the number of digits is reasonable. - However, ANSI / ISO C makes no such stipulation; we have to get - exact results even when there is an unreasonable amount of - leading zeroes. */ - long leading_zeroes = 0; - long zeroes, exp_adjust; - char *exp_start = NULL; - unsigned fl_width = width; - unsigned width_left = 0; -#ifdef hardway - if (fl_width == 0 || fl_width > sizeof (buf) - 1) -#else - /* size_t is unsigned, hence this optimisation */ - if (fl_width - 1 > sizeof (buf) - 2) -#endif - { - width_left = fl_width - (sizeof (buf) - 1); - fl_width = sizeof (buf) - 1; - } - flags |= SIGNOK | NDIGITS | DPTOK | EXPOK; - zeroes = 0; - exp_adjust = 0; - for (p = buf; fl_width; ) - { - c = *fp->_p; - /* - * This code mimicks the integer conversion - * code, but is much simpler. - */ - switch (c) - { - - case '0': - if (flags & NDIGITS) - { - flags &= ~SIGNOK; - zeroes++; - if (width_left) - { - width_left--; - fl_width++; - } - goto fskip; - } - /* Fall through. */ - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - flags &= ~(SIGNOK | NDIGITS); - goto fok; - - case '+': - case '-': - if (flags & SIGNOK) - { - flags &= ~SIGNOK; - goto fok; - } - break; - case '.': - if (flags & DPTOK) - { - flags &= ~(SIGNOK | DPTOK); - leading_zeroes = zeroes; - goto fok; - } - break; - case 'e': - case 'E': - /* no exponent without some digits */ - if ((flags & (NDIGITS | EXPOK)) == EXPOK - || ((flags & EXPOK) && zeroes)) - { - if (! (flags & DPTOK)) - { - exp_adjust = zeroes - leading_zeroes; - exp_start = p; - } - flags = - (flags & ~(EXPOK | DPTOK)) | - SIGNOK | NDIGITS; - zeroes = 0; - goto fok; - } - break; - } - break; - fok: - *p++ = c; - fskip: - fl_width--; - ++nread; - if (--fp->_r > 0) - fp->_p++; - else -#ifndef CYGNUS_NEC - if (__srefill (fp)) -#endif - break; /* EOF */ - } - if (zeroes) - flags &= ~NDIGITS; - /* - * If no digits, might be missing exponent digits - * (just give back the exponent) or might be missing - * regular digits, but had sign and/or decimal point. - */ - if (flags & NDIGITS) - { - if (flags & EXPOK) - { - /* no digits at all */ - while (p > buf) - { - ungetc (*(u_char *)-- p, fp); - --nread; - } - goto match_failure; - } - /* just a bad exponent (e and maybe sign) */ - c = *(u_char *)-- p; - --nread; - if (c != 'e' && c != 'E') - { - (void) ungetc (c, fp); /* sign */ - c = *(u_char *)-- p; - --nread; - } - (void) ungetc (c, fp); - } - if ((flags & SUPPRESS) == 0) - { -#ifdef _NO_LONGDBL - double res; -#else /* !_NO_LONG_DBL */ - long double res; -#endif /* !_NO_LONG_DBL */ - long new_exp = 0; - - *p = 0; - if ((flags & (DPTOK | EXPOK)) == EXPOK) - { - exp_adjust = zeroes - leading_zeroes; - new_exp = -exp_adjust; - exp_start = p; - } - else if (exp_adjust) - new_exp = _strtol_r (rptr, (exp_start + 1), NULL, 10) - exp_adjust; - if (exp_adjust) - { - - /* If there might not be enough space for the new exponent, - truncate some trailing digits to make room. */ - if (exp_start >= buf + sizeof (buf) - MAX_LONG_LEN) - exp_start = buf + sizeof (buf) - MAX_LONG_LEN - 1; - sprintf (exp_start, "e%ld", new_exp); - } -#ifdef __SPE__ - if (flags & FIXEDPOINT) - { - __uint64_t ufix64; - if (flags & SIGNED) - ufix64 = (__uint64_t)_strtosfix64_r (rptr, buf, NULL); - else - ufix64 = _strtoufix64_r (rptr, buf, NULL); - if (flags & SHORT) - { - __uint16_t *sp = va_arg (ap, __uint16_t *); - *sp = (__uint16_t)(ufix64 >> 48); - } - else if (flags & LONG) - { - __uint64_t *llp = va_arg (ap, __uint64_t *); - *llp = ufix64; - } - else - { - __uint32_t *lp = va_arg (ap, __uint32_t *); - *lp = (__uint32_t)(ufix64 >> 32); - } - nassigned++; - break; - } - -#endif /* __SPE__ */ -#ifdef _NO_LONGDBL - res = _strtod_r (rptr, buf, NULL); -#else /* !_NO_LONGDBL */ - res = _strtold_r (rptr, buf, NULL); -#endif /* !_NO_LONGDBL */ - if (flags & LONG) - { - dp = va_arg (ap, double *); - *dp = res; - } - else if (flags & LONGDBL) - { - ldp = va_arg (ap, _LONG_DOUBLE *); - *ldp = res; - } - else - { - if (!(flags & VECTOR)) - flp = va_arg (ap, float *); - else if (!looped) - flp = vec_buf.f; - *flp++ = res; - } - if (!(flags & VECTOR)) - nassigned++; - } - break; - } -#endif /* FLOATING_POINT */ - } - if (vec_read_count-- > 1) - { - looped = 1; - goto process; - } - if (flags & VECTOR) - { - int i; - unsigned long *vp = va_arg (ap, unsigned long *); - for (i = 0; i < 4; ++i) - *vp++ = vec_buf.l[i]; - nassigned++; - } - } -input_failure: - return nassigned ? nassigned : -1; -match_failure: - return nassigned; -} - diff --git a/lib/machine/pru/Makefile.inc b/lib/machine/pru/Makefile.inc deleted file mode 100644 index 3b3f2dc..0000000 --- a/lib/machine/pru/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.s diff --git a/lib/machine/riscv/Makefile.inc b/lib/machine/riscv/Makefile.inc deleted file mode 100644 index 47bbce0..0000000 --- a/lib/machine/riscv/Makefile.inc +++ /dev/null @@ -1,3 +0,0 @@ -libc_a_SOURCES += \ - %D%/memmove.S %D%/memmove-stub.c %D%/memset.S %D%/memcpy-asm.S %D%/memcpy.c %D%/strlen.c \ - %D%/strcpy.c %D%/strcmp.S %D%/setjmp.S %D%/ieeefp.c %D%/ffs.c diff --git a/lib/machine/riscv/ffs.c b/lib/machine/riscv/ffs.c deleted file mode 100644 index 2f2176e..0000000 --- a/lib/machine/riscv/ffs.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2017 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ -#include - -int -ffs (int word) -{ -#if __riscv_xlen == 32 - return (__builtin_ffs (word)); -#else - int i; - - if (!word) - return 0; - - i = 0; - for (;;) - { - if (((1 << i++) & word) != 0) - return i; - } - return 0; -#endif -} diff --git a/lib/machine/riscv/ieeefp.c b/lib/machine/riscv/ieeefp.c deleted file mode 100644 index 60ecacf..0000000 --- a/lib/machine/riscv/ieeefp.c +++ /dev/null @@ -1,144 +0,0 @@ -/* Copyright (c) 2017 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#include - -#ifdef __riscv_flen -static void -fssr(unsigned value) -{ - asm volatile ("fscsr %0" :: "r"(value)); -} - -static unsigned -frsr() -{ - unsigned value; - asm volatile ("frcsr %0" : "=r" (value)); - return value; -} - -static fp_rnd -frm_fp_rnd (unsigned frm) -{ - switch (frm) - { - case 0: return FP_RN; - case 1: return FP_RZ; - case 2: return FP_RM; - case 3: return FP_RP; - /* 4 ~ 7 is invalid value, so just retun FP_RP. */ - default:return FP_RP; - } -} - -static fp_except -frm_fp_except (unsigned except) -{ - fp_except fp = 0; - if (except & (1 << 0)) - fp |= FP_X_IMP; - if (except & (1 << 1)) - fp |= FP_X_UFL; - if (except & (1 << 2)) - fp |= FP_X_OFL; - if (except & (1 << 3)) - fp |= FP_X_DX; - if (except & (1 << 4)) - fp |= FP_X_INV; - return fp; -} - -static unsigned -frm_except(fp_except fp) -{ - unsigned except = 0; - if (fp & FP_X_IMP) - except |= (1 << 0); - if (fp & FP_X_UFL) - except |= (1 << 1); - if (fp & FP_X_OFL) - except |= (1 << 2); - if (fp & FP_X_DX) - except |= (1 << 3); - if (fp & FP_X_INV) - except |= (1 << 4); - return except; -} - -#endif /* __riscv_flen */ - -fp_except -fpgetmask(void) -{ - return 0; -} - -fp_rnd -fpgetround(void) -{ -#ifdef __riscv_flen - unsigned rm = (frsr () >> 5) & 0x7; - return frm_fp_rnd (rm); -#else - return FP_RZ; -#endif /* __riscv_flen */ -} - -fp_except -fpgetsticky(void) -{ -#ifdef __riscv_flen - return frm_fp_except(frsr ()); -#else - return 0; -#endif /* __riscv_flen */ -} - -fp_except -fpsetmask(fp_except mask) -{ - return -1; -} - -fp_rnd -fpsetround(fp_rnd rnd_dir) -{ -#ifdef __riscv_flen - unsigned fsr = frsr (); - unsigned rm = (fsr >> 5) & 0x7; - unsigned new_rm; - switch (rnd_dir) - { - case FP_RN: new_rm = 0; break; - case FP_RZ: new_rm = 1; break; - case FP_RM: new_rm = 2; break; - case FP_RP: new_rm = 3; break; - default: return -1; - } - fssr (new_rm << 5 | fsr & 0x1f); - return frm_fp_rnd (rm); -#else - return -1; -#endif /* __riscv_flen */ -} - -fp_except -fpsetsticky(fp_except sticky) -{ -#ifdef __riscv_flen - unsigned fsr = frsr (); - fssr (frm_except(sticky) | (fsr & ~0x1f)); - return frm_fp_except(fsr); -#else - return -1; -#endif /* __riscv_flen */ -} diff --git a/lib/machine/riscv/memcpy-asm.S b/lib/machine/riscv/memcpy-asm.S deleted file mode 100644 index 5571e47..0000000 --- a/lib/machine/riscv/memcpy-asm.S +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2019 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) -.text -.global memcpy -.type memcpy, @function -memcpy: - mv t1, a0 - beqz a2, 2f - -1: - lb t2, 0(a1) - sb t2, 0(t1) - add a2, a2, -1 - add t1, t1, 1 - add a1, a1, 1 - bnez a2, 1b - -2: - ret - - .size memcpy, .-memcpy -#endif diff --git a/lib/machine/riscv/memcpy.c b/lib/machine/riscv/memcpy.c deleted file mode 100644 index 4098f3a..0000000 --- a/lib/machine/riscv/memcpy.c +++ /dev/null @@ -1,88 +0,0 @@ -/* Copyright (c) 2017 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) -//memcpy defined in memcpy-asm.S -#else - -#include -#include -#include "../../string/local.h" - -#define unlikely(X) __builtin_expect (!!(X), 0) - -void * -__inhibit_loop_to_libcall -memcpy(void *__restrict aa, const void *__restrict bb, size_t n) -{ - #define BODY(a, b, t) { \ - t tt = *b; \ - a++, b++; \ - *(a - 1) = tt; \ - } - - char *a = (char *)aa; - const char *b = (const char *)bb; - char *end = a + n; - uintptr_t msk = sizeof (long) - 1; - if (unlikely ((((uintptr_t)a & msk) != ((uintptr_t)b & msk)) - || n < sizeof (long))) - { -small: - if (__builtin_expect (a < end, 1)) - while (a < end) - BODY (a, b, char); - return aa; - } - - if (unlikely (((uintptr_t)a & msk) != 0)) - while ((uintptr_t)a & msk) - BODY (a, b, char); - - long *la = (long *)a; - const long *lb = (const long *)b; - long *lend = (long *)((uintptr_t)end & ~msk); - - if (unlikely (lend - la > 8)) - { - while (lend - la > 8) - { - long b0 = *lb++; - long b1 = *lb++; - long b2 = *lb++; - long b3 = *lb++; - long b4 = *lb++; - long b5 = *lb++; - long b6 = *lb++; - long b7 = *lb++; - long b8 = *lb++; - *la++ = b0; - *la++ = b1; - *la++ = b2; - *la++ = b3; - *la++ = b4; - *la++ = b5; - *la++ = b6; - *la++ = b7; - *la++ = b8; - } - } - - while (la < lend) - BODY (la, lb, long); - - a = (char *)la; - b = (const char *)lb; - if (unlikely (a < end)) - goto small; - return aa; -} -#endif diff --git a/lib/machine/riscv/memmove-stub.c b/lib/machine/riscv/memmove-stub.c deleted file mode 100644 index d882e46..0000000 --- a/lib/machine/riscv/memmove-stub.c +++ /dev/null @@ -1,14 +0,0 @@ -/* Copyright (c) 2019 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) -#include "../../string/memmove.c" -#endif diff --git a/lib/machine/riscv/memmove.S b/lib/machine/riscv/memmove.S deleted file mode 100644 index 66d9cd4..0000000 --- a/lib/machine/riscv/memmove.S +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright (c) 2019 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) -.text -.global memmove -.type memmove, @function -memmove: - beqz a2, 2f - - mv t1, a0 - li a3, 1 - bgtu a1, a0, 1f - - li a3, -1 - addi a4, a2 , -1 - add t1, t1, a4 - add a1, a1, a4 - -1: - lb t2, 0(a1) - sb t2, 0(t1) - add a2, a2, -1 - add t1, t1, a3 - add a1, a1, a3 - bnez a2, 1b - -2: - ret - - .size memmove, .-memmove -#endif diff --git a/lib/machine/riscv/memset.S b/lib/machine/riscv/memset.S deleted file mode 100644 index a717ae7..0000000 --- a/lib/machine/riscv/memset.S +++ /dev/null @@ -1,113 +0,0 @@ -/* Copyright (c) 2017 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -.text -.global memset -.type memset, @function -memset: -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - mv t1, a0 - beqz a2, 2f - -1: - sb a1, 0(t1) - add a2, a2, -1 - add t1, t1, 1 - bnez a2, 1b - -2: - ret - -#else - li t1, 15 - move a4, a0 - bleu a2, t1, .Ltiny - and a5, a4, 15 - bnez a5, .Lmisaligned - -.Laligned: - bnez a1, .Lwordify - -.Lwordified: - and a3, a2, ~15 - and a2, a2, 15 - add a3, a3, a4 - -#if __riscv_xlen == 64 -1:sd a1, 0(a4) - sd a1, 8(a4) -#else -1:sw a1, 0(a4) - sw a1, 4(a4) - sw a1, 8(a4) - sw a1, 12(a4) -#endif - add a4, a4, 16 - bltu a4, a3, 1b - - bnez a2, .Ltiny - ret - -.Ltiny: - sub a3, t1, a2 - sll a3, a3, 2 -1:auipc t0, %pcrel_hi(.Ltable) - add a3, a3, t0 -.option push -.option norvc -.Ltable_misaligned: - jr a3, %pcrel_lo(1b) -.Ltable: - sb a1,14(a4) - sb a1,13(a4) - sb a1,12(a4) - sb a1,11(a4) - sb a1,10(a4) - sb a1, 9(a4) - sb a1, 8(a4) - sb a1, 7(a4) - sb a1, 6(a4) - sb a1, 5(a4) - sb a1, 4(a4) - sb a1, 3(a4) - sb a1, 2(a4) - sb a1, 1(a4) - sb a1, 0(a4) -.option pop - ret - -.Lwordify: - and a1, a1, 0xFF - sll a3, a1, 8 - or a1, a1, a3 - sll a3, a1, 16 - or a1, a1, a3 -#if __riscv_xlen == 64 - sll a3, a1, 32 - or a1, a1, a3 -#endif - j .Lwordified - -.Lmisaligned: - sll a3, a5, 2 -1:auipc t0, %pcrel_hi(.Ltable_misaligned) - add a3, a3, t0 - mv t0, ra - jalr a3, %pcrel_lo(1b) - mv ra, t0 - - add a5, a5, -16 - sub a4, a4, a5 - add a2, a2, a5 - bleu a2, t1, .Ltiny - j .Laligned -#endif - .size memset, .-memset diff --git a/lib/machine/riscv/setjmp.S b/lib/machine/riscv/setjmp.S deleted file mode 100644 index eef242e..0000000 --- a/lib/machine/riscv/setjmp.S +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright (c) 2017 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#include - -/* int setjmp (jmp_buf); */ - .globl setjmp - .type setjmp, @function -setjmp: - REG_S ra, 0*SZREG(a0) - REG_S s0, 1*SZREG(a0) - REG_S s1, 2*SZREG(a0) - -#ifndef __riscv_32e - REG_S s2, 3*SZREG(a0) - REG_S s3, 4*SZREG(a0) - REG_S s4, 5*SZREG(a0) - REG_S s5, 6*SZREG(a0) - REG_S s6, 7*SZREG(a0) - REG_S s7, 8*SZREG(a0) - REG_S s8, 9*SZREG(a0) - REG_S s9, 10*SZREG(a0) - REG_S s10,11*SZREG(a0) - REG_S s11,12*SZREG(a0) - REG_S sp, 13*SZREG(a0) -#else - REG_S sp, 3*SZREG(a0) -#endif - -#ifndef __riscv_float_abi_soft - FREG_S fs0, 14*SZREG+ 0*SZFREG(a0) - FREG_S fs1, 14*SZREG+ 1*SZFREG(a0) - FREG_S fs2, 14*SZREG+ 2*SZFREG(a0) - FREG_S fs3, 14*SZREG+ 3*SZFREG(a0) - FREG_S fs4, 14*SZREG+ 4*SZFREG(a0) - FREG_S fs5, 14*SZREG+ 5*SZFREG(a0) - FREG_S fs6, 14*SZREG+ 6*SZFREG(a0) - FREG_S fs7, 14*SZREG+ 7*SZFREG(a0) - FREG_S fs8, 14*SZREG+ 8*SZFREG(a0) - FREG_S fs9, 14*SZREG+ 9*SZFREG(a0) - FREG_S fs10,14*SZREG+10*SZFREG(a0) - FREG_S fs11,14*SZREG+11*SZFREG(a0) -#endif - - li a0, 0 - ret - .size setjmp, .-setjmp - -/* volatile void longjmp (jmp_buf, int); */ - .globl longjmp - .type longjmp, @function -longjmp: - REG_L ra, 0*SZREG(a0) - REG_L s0, 1*SZREG(a0) - REG_L s1, 2*SZREG(a0) -#ifndef __riscv_32e - REG_L s2, 3*SZREG(a0) - REG_L s3, 4*SZREG(a0) - REG_L s4, 5*SZREG(a0) - REG_L s5, 6*SZREG(a0) - REG_L s6, 7*SZREG(a0) - REG_L s7, 8*SZREG(a0) - REG_L s8, 9*SZREG(a0) - REG_L s9, 10*SZREG(a0) - REG_L s10,11*SZREG(a0) - REG_L s11,12*SZREG(a0) - REG_L sp, 13*SZREG(a0) -#else - REG_L sp, 3*SZREG(a0) -#endif - -#ifndef __riscv_float_abi_soft - FREG_L fs0, 14*SZREG+ 0*SZFREG(a0) - FREG_L fs1, 14*SZREG+ 1*SZFREG(a0) - FREG_L fs2, 14*SZREG+ 2*SZFREG(a0) - FREG_L fs3, 14*SZREG+ 3*SZFREG(a0) - FREG_L fs4, 14*SZREG+ 4*SZFREG(a0) - FREG_L fs5, 14*SZREG+ 5*SZFREG(a0) - FREG_L fs6, 14*SZREG+ 6*SZFREG(a0) - FREG_L fs7, 14*SZREG+ 7*SZFREG(a0) - FREG_L fs8, 14*SZREG+ 8*SZFREG(a0) - FREG_L fs9, 14*SZREG+ 9*SZFREG(a0) - FREG_L fs10,14*SZREG+10*SZFREG(a0) - FREG_L fs11,14*SZREG+11*SZFREG(a0) -#endif - - seqz a0, a1 - add a0, a0, a1 # a0 = (a1 == 0) ? 1 : a1 - ret - .size longjmp, .-longjmp diff --git a/lib/machine/riscv/strcmp.S b/lib/machine/riscv/strcmp.S deleted file mode 100644 index 9af9ca1..0000000 --- a/lib/machine/riscv/strcmp.S +++ /dev/null @@ -1,196 +0,0 @@ -/* Copyright (c) 2017 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#include - -.text -.globl strcmp -.type strcmp, @function -strcmp: -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) -1: - lbu a2, 0(a0) - lbu a3, 0(a1) - add a0, a0, 1 - add a1, a1, 1 - bne a2, a3, 2f - bnez a2, 1b - -2: - sub a0, a2, a3 - ret - -.size strcmp, .-strcmp -#else - or a4, a0, a1 - li t2, -1 - and a4, a4, SZREG-1 - bnez a4, .Lmisaligned - -#if SZREG == 4 - li a5, 0x7f7f7f7f -#else - ld a5, mask -#endif - - .macro check_one_word i n - REG_L a2, \i*SZREG(a0) - REG_L a3, \i*SZREG(a1) - - and t0, a2, a5 - or t1, a2, a5 - add t0, t0, a5 - or t0, t0, t1 - - bne t0, t2, .Lnull\i - .if \i+1-\n - bne a2, a3, .Lmismatch - .else - add a0, a0, \n*SZREG - add a1, a1, \n*SZREG - beq a2, a3, .Lloop - # fall through to .Lmismatch - .endif - .endm - - .macro foundnull i n - .ifne \i - .Lnull\i: - add a0, a0, \i*SZREG - add a1, a1, \i*SZREG - .ifeq \i-1 - .Lnull0: - .endif - bne a2, a3, .Lmisaligned - li a0, 0 - ret - .endif - .endm - -.Lloop: - # examine full words at a time, favoring strings of a couple dozen chars -#if __riscv_xlen == 32 - check_one_word 0 5 - check_one_word 1 5 - check_one_word 2 5 - check_one_word 3 5 - check_one_word 4 5 -#else - check_one_word 0 3 - check_one_word 1 3 - check_one_word 2 3 -#endif - # backwards branch to .Lloop contained above - -.Lmismatch: - # words don't match, but a2 has no null byte. - -#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ - -#if __riscv_xlen == 64 - sll a4, a2, 48 - sll a5, a3, 48 - bne a4, a5, .Lmismatch_upper - sll a4, a2, 32 - sll a5, a3, 32 - bne a4, a5, .Lmismatch_upper -#endif - sll a4, a2, 16 - sll a5, a3, 16 - bne a4, a5, .Lmismatch_upper - - srl a4, a2, 8*SZREG-16 - srl a5, a3, 8*SZREG-16 - sub a0, a4, a5 - and a1, a0, 0xff - bnez a1, 1f - ret - -.Lmismatch_upper: - srl a4, a4, 8*SZREG-16 - srl a5, a5, 8*SZREG-16 - sub a0, a4, a5 - and a1, a0, 0xff - bnez a1, 1f - ret - -1:and a4, a4, 0xff - and a5, a5, 0xff - sub a0, a4, a5 - ret - -#else - -#if __riscv_xlen == 64 - srl a4, a2, 48 - srl a5, a3, 48 - bne a4, a5, .Lmismatch_lower - srl a4, a2, 32 - srl a5, a3, 32 - bne a4, a5, .Lmismatch_lower -#endif - srl a4, a2, 16 - srl a5, a3, 16 - bne a4, a5, .Lmismatch_lower - - srl a4, a2, 8 - srl a5, a3, 8 - bne a4, a5, 1f - and a4, a2, 0xff - and a5, a3, 0xff -1:sub a0, a4, a5 - ret - -.Lmismatch_lower: - srl a2, a4, 8 - srl a3, a5, 8 - bne a2, a3, 1f - and a2, a4, 0xff - and a3, a5, 0xff -1:sub a0, a2, a3 - ret - -#endif - -.Lmisaligned: - # misaligned - lbu a2, 0(a0) - lbu a3, 0(a1) - add a0, a0, 1 - add a1, a1, 1 - bne a2, a3, 1f - bnez a2, .Lmisaligned - -1: - sub a0, a2, a3 - ret - - # cases in which a null byte was detected -#if __riscv_xlen == 32 - foundnull 0 5 - foundnull 1 5 - foundnull 2 5 - foundnull 3 5 - foundnull 4 5 -#else - foundnull 0 3 - foundnull 1 3 - foundnull 2 3 -#endif -.size strcmp, .-strcmp - -#if SZREG == 8 -.section .srodata.cst8,"aM",@progbits,8 -.align 3 -mask: -.dword 0x7f7f7f7f7f7f7f7f -#endif -#endif diff --git a/lib/machine/riscv/strcpy.c b/lib/machine/riscv/strcpy.c deleted file mode 100644 index 6d802fa..0000000 --- a/lib/machine/riscv/strcpy.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (c) 2017 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#include -#include - -char *strcpy(char *dst, const char *src) -{ - char *dst0 = dst; - -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) - int misaligned = ((uintptr_t)dst | (uintptr_t)src) & (sizeof (long) - 1); - if (__builtin_expect(!misaligned, 1)) - { - long *ldst = (long *)dst; - const long *lsrc = (const long *)src; - - while (!__libc_detect_null(*lsrc)) - *ldst++ = *lsrc++; - - dst = (char *)ldst; - src = (const char *)lsrc; - - char c0 = src[0]; - char c1 = src[1]; - char c2 = src[2]; - if (!(*dst++ = c0)) return dst0; - if (!(*dst++ = c1)) return dst0; - char c3 = src[3]; - if (!(*dst++ = c2)) return dst0; - if (sizeof (long) == 4) goto out; - char c4 = src[4]; - if (!(*dst++ = c3)) return dst0; - char c5 = src[5]; - if (!(*dst++ = c4)) return dst0; - char c6 = src[6]; - if (!(*dst++ = c5)) return dst0; - if (!(*dst++ = c6)) return dst0; - -out: - *dst++ = 0; - return dst0; - } -#endif /* not PREFER_SIZE_OVER_SPEED */ - - char ch; - do - { - ch = *src; - src++; - dst++; - *(dst - 1) = ch; - } while (ch); - - return dst0; -} diff --git a/lib/machine/riscv/strlen.c b/lib/machine/riscv/strlen.c deleted file mode 100644 index 3b04066..0000000 --- a/lib/machine/riscv/strlen.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (c) 2017 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#include -#include - -size_t strlen(const char *str) -{ - const char *start = str; - -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - while (*str++) - ; - return str - start - 1; -#else - if (__builtin_expect ((uintptr_t)str & (sizeof (long) - 1), 0)) do - { - char ch = *str; - str++; - if (!ch) - return str - start - 1; - } while ((uintptr_t)str & (sizeof (long) - 1)); - - unsigned long *ls = (unsigned long *)str; - while (!__libc_detect_null (*ls++)) - ; - asm volatile ("" : "+r"(ls)); /* prevent "optimization" */ - - str = (const char *)ls; - size_t ret = str - start, sl = sizeof (long); - - char c0 = str[0 - sl], c1 = str[1 - sl], c2 = str[2 - sl], c3 = str[3 - sl]; - if (c0 == 0) return ret + 0 - sl; - if (c1 == 0) return ret + 1 - sl; - if (c2 == 0) return ret + 2 - sl; - if (sl == 4 || c3 == 0) return ret + 3 - sl; - - c0 = str[4 - sl], c1 = str[5 - sl], c2 = str[6 - sl], c3 = str[7 - sl]; - if (c0 == 0) return ret + 4 - sl; - if (c1 == 0) return ret + 5 - sl; - if (c2 == 0) return ret + 6 - sl; - - return ret + 7 - sl; -#endif /* not PREFER_SIZE_OVER_SPEED */ -} diff --git a/lib/machine/riscv/sys/asm.h b/lib/machine/riscv/sys/asm.h deleted file mode 100644 index 8c8aeb3..0000000 --- a/lib/machine/riscv/sys/asm.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright (c) 2017 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#ifndef _SYS_ASM_H -#define _SYS_ASM_H - -/* - * Macros to handle different pointer/register sizes for 32/64-bit code - */ -#if __riscv_xlen == 64 -# define PTRLOG 3 -# define SZREG 8 -# define REG_S sd -# define REG_L ld -#elif __riscv_xlen == 32 -# define PTRLOG 2 -# define SZREG 4 -# define REG_S sw -# define REG_L lw -#else -# error __riscv_xlen must equal 32 or 64 -#endif - -#ifndef __riscv_float_abi_soft -/* For ABI uniformity, reserve 8 bytes for floats, even if double-precision - floating-point is not supported in hardware. */ -# define SZFREG 8 -# ifdef __riscv_float_abi_single -# define FREG_L flw -# define FREG_S fsw -# elif defined(__riscv_float_abi_double) -# define FREG_L fld -# define FREG_S fsd -# elif defined(__riscv_float_abi_quad) -# define FREG_L flq -# define FREG_S fsq -# else -# error unsupported FLEN -# endif -#endif - -#endif /* sys/asm.h */ diff --git a/lib/machine/riscv/sys/fenv.h b/lib/machine/riscv/sys/fenv.h deleted file mode 100644 index 772f383..0000000 --- a/lib/machine/riscv/sys/fenv.h +++ /dev/null @@ -1,88 +0,0 @@ -/* Copyright (c) 2017 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#ifndef _SYS_FENV_H -#define _SYS_FENV_H - -#include - -#if __riscv_flen - -/* Per "The RISC-V Instruction Set Manual: Volume I: User-Level ISA: - * Version 2.1", Section 8.2, "Floating-Point Control and Status - * Register": - * - * Flag Mnemonic Flag Meaning - * ------------- ----------------- - * NV Invalid Operation - * DZ Divide by Zero - * OF Overflow - * UF Underflow - * NX Inexact - */ - -#define FE_INVALID 0x00000010 -#define FE_DIVBYZERO 0x00000008 -#define FE_OVERFLOW 0x00000004 -#define FE_UNDERFLOW 0x00000002 -#define FE_INEXACT 0x00000001 - -#define FE_ALL_EXCEPT (FE_INVALID|FE_DIVBYZERO|FE_OVERFLOW|FE_UNDERFLOW|FE_INEXACT) - -/* Per "The RISC-V Instruction Set Manual: Volume I: User-Level ISA: - * Version 2.1", Section 8.2, "Floating-Point Control and Status - * Register": - * - * Rounding Mode Mnemonic Meaning Meaning - * ------------- ---------------- ------- - * 000 RNE Round to Nearest, ties to Even - * 001 RTZ Round towards Zero - * 010 RDN Round Down (towards −∞) - * 011 RUP Round Up (towards +∞) - * 100 RMM Round to Nearest, ties to Max Magnitude - * 101 Invalid. Reserved for future use. - * 110 Invalid. Reserved for future use. - * 111 In instruction’s rm field, selects dynamic rounding mode; - * In Rounding Mode register, Invalid - */ - -#define FE_TONEAREST_MM 0x00000004 -#define FE_UPWARD 0x00000003 -#define FE_DOWNWARD 0x00000002 -#define FE_TOWARDZERO 0x00000001 -#define FE_TONEAREST 0x00000000 - -#define FE_RMODE_MASK 0x7 - -/* Per "The RISC-V Instruction Set Manual: Volume I: User-Level ISA: - * Version 2.1": - * - * "The F extension adds 32 floating-point registers, f0–f31, each 32 - * bits wide, and a floating-point control and status register fcsr, - * which contains the operating mode and exception status of the - * floating-point unit." - */ - -#else /* !__riscv_flen */ - -#define FE_ALL_EXCEPT 0x00000000 -#define FE_TONEAREST 0x00000000 - -#endif /* !__riscv_flen */ - -typedef size_t fenv_t; -typedef size_t fexcept_t; -extern const fenv_t fe_dfl_env; -extern const fenv_t *fe_dfl_env_p; - -#define FE_DFL_ENV fe_dfl_env_p - -#endif /* _SYS_FENV_H */ diff --git a/lib/machine/riscv/sys/string.h b/lib/machine/riscv/sys/string.h deleted file mode 100644 index beebe31..0000000 --- a/lib/machine/riscv/sys/string.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (c) 2017 SiFive Inc. All rights reserved. - - This copyrighted material is made available to anyone wishing to use, - modify, copy, or redistribute it subject to the terms and conditions - of the FreeBSD License. This program is distributed in the hope that - it will be useful, but WITHOUT ANY WARRANTY expressed or implied, - including the implied warranties of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. A copy of this license is available at - http://www.opensource.org/licenses. -*/ - -#ifndef _SYS_STRING_H -#define _SYS_STRING_H - -static __inline unsigned long __libc_detect_null(unsigned long w) -{ - unsigned long mask = 0x7f7f7f7f; - if (sizeof (long) == 8) - mask = ((mask << 16) << 16) | mask; - return ~(((w & mask) + mask) | w | mask); -} - -#endif diff --git a/lib/machine/rl78/Makefile.inc b/lib/machine/rl78/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/rl78/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/rl78/setjmp.S b/lib/machine/rl78/setjmp.S deleted file mode 100644 index 552f8e1..0000000 --- a/lib/machine/rl78/setjmp.S +++ /dev/null @@ -1,186 +0,0 @@ -/* - -Copyright (c) 2011 Red Hat Incorporated. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#ifdef __RL78_G10__ -; clobberable -r8 = 0xffec8 -r9 = 0xffec9 -r10 = 0xffeca -r11 = 0xffecb -r12 = 0xffecc -r13 = 0xffecd -r14 = 0xffece -r15 = 0xffecf -; preserved -r16 = 0xffed0 -r17 = 0xffed1 -r18 = 0xffed2 -r19 = 0xffed3 -r20 = 0xffed4 -r21 = 0xffed5 -r22 = 0xffed6 -r23 = 0xffed7 -#else -; clobberable -r8 = 0xffef0 -r9 = 0xffef1 -r10 = 0xffef2 -r11 = 0xffef3 -r12 = 0xffef4 -r13 = 0xffef5 -r14 = 0xffef6 -r15 = 0xffef7 -; preserved -r16 = 0xffee8 -r17 = 0xffee9 -r18 = 0xffeea -r19 = 0xffeeb -r20 = 0xffeec -r21 = 0xffeed -r22 = 0xffeee -r23 = 0xffeef -#endif - -/* The jump buffer has the following structure: - R0 .. R23 3*8 bytes - SP 2 bytes - ES 1 byte - CS 1 byte - PC 4 bytes -*/ - - .macro _saveb ofs,reg - mov a,\reg - mov [hl+\ofs],a - .endm - .macro _save ofs,reg - movw ax,\reg - movw [hl+\ofs],ax - .endm - - .global _setjmp - .type _setjmp, @function -_setjmp: - ;; R8 = setjmp (jmp_buf *[sp+4].w) - ;; must return zero !! - push ax - push hl - push ax - movw ax, [sp+10] - movw hl, ax - pop ax - movw [hl], ax - _save 2, bc - _save 4, de - pop ax - movw [hl+6], ax - _save 8, r8 - _save 10, r10 - _save 12, r12 - _save 14, r14 - _save 16, r16 - _save 18, r18 - _save 20, r20 - _save 22, r22 - - ;; The sp we have now includes one more pushed reg, plus $PC - movw ax, sp - addw ax, #6 - movw [hl+24], ax - - _saveb 26, es - _saveb 27, cs - _save 28, [sp+2] - _save 30, [sp+4] - - clrw ax - movw r8, ax - pop ax - ret - - .size _setjmp, . - _setjmp - - .macro _loadb ofs,reg - mov a,[hl+\ofs] - mov \reg,a - .endm - .macro _load ofs,reg - movw ax,[hl+\ofs] - movw \reg,ax - .endm - .macro _push ofs - movw ax,[hl+\ofs] - push ax - .endm - - .global _longjmp - .type _longjmp, @function -_longjmp: - ;; noreturn longjmp (jmp_buf *[sp+4].w, int [sp+6].w) - movw ax, [sp+6] - cmpw ax,#0 - sknz - onew ax - movw r8, ax - - movw ax, [sp+4] - movw hl, ax - movw ax, [hl+24] - movw sp, ax ; this is the *new* stack - - _push 30 ; high half of PC - _push 28 ; low half of PC - _push 6 ; HL - _push 0 ; AX - - _load 2, bc - _load 4, de - - _load 10, r10 - _load 12, r12 - _load 14, r14 - _load 16, r16 - _load 18, r18 - _load 20, r20 - _load 22, r22 - - _loadb 26, es - _loadb 27, cs - - pop ax - pop hl - - - ret ; pops PC (4 bytes) - - .size _longjmp, . - _longjmp - diff --git a/lib/machine/rx/Makefile.inc b/lib/machine/rx/Makefile.inc deleted file mode 100644 index 5c28f06..0000000 --- a/lib/machine/rx/Makefile.inc +++ /dev/null @@ -1,4 +0,0 @@ -libc_a_SOURCES += \ - %D%/setjmp.S \ - %D%/strncmp.S %D%/strcmp.S %D%/strncpy.S %D%/strcpy.S %D%/strlen.S %D%/strcat.S %D%/strncat.S \ - %D%/memset.S %D%/mempcpy.S %D%/memcpy.S %D%/memmove.S %D%/memchr.S diff --git a/lib/machine/rx/memchr.S b/lib/machine/rx/memchr.S deleted file mode 100644 index cdc97c8..0000000 --- a/lib/machine/rx/memchr.S +++ /dev/null @@ -1,32 +0,0 @@ - .file "memchr.S" - - .section .text - - .global _memchr - .type _memchr,@function -_memchr: - ;; R1: string pointer - ;; R2: byte sought - ;; R3: max number to scan -#ifdef __RX_DISALLOW_STRING_INSNS__ - mov.b r2, r2 ; The mov.b below sign extends as it loads, so make sure that r2 is sign-extended as well. -2: cmp #0, r3 - beq 1f - sub #1, r3 - mov.b [r1+], r5 - cmp r5, r2 - bne 2b - - sub #1, r1 ; We have found a match, bit now R1 points to the byte after the match. -1: rts -#else - cmp #0, r3 ; If r3 is 0 suntil.b will do nothing and not set any flags... - stz #1, r1 ; ...so store 1 into r1. It will be decremented by the SUB later. - suntil.b ; Search until *r1 == r2 or r3 bytes have been examined. - stnz #1, r1 ; If no match was found return NULL. - sub #1, r1 ; suntil.b leaves r1 pointing at the address *after* the match. - rts -#endif - - .size _memchr, . - _memchr - diff --git a/lib/machine/rx/memcpy.S b/lib/machine/rx/memcpy.S deleted file mode 100644 index eb671c0..0000000 --- a/lib/machine/rx/memcpy.S +++ /dev/null @@ -1,31 +0,0 @@ - .file "memcpy.S" - - .section .text - .global _memcpy - .type _memcpy,@function -_memcpy: -#ifdef __RX_DISALLOW_STRING_INSNS__ - /* Do not use the string instructions - they might prefetch - bytes from outside of valid memory. This is particularly - dangerous in I/O space. */ - - ;; FIXME: It would be more space efficient to just branch to _memmove... - - cmp #0, r3 ; If the count is zero, do nothing - beq 1f - - mov r1, r14 ; Save a copy of DEST - -2: mov.b [r2+], r5 - mov.b r5, [r14+] - sub #1, r3 - bne 2b - -1: rts -#else - mov r1, r4 ; Save a copy of DEST - smovf ; Copy R2 (source) to R1 (dest). Stop after R3 bytes. - mov r4, r1 ; Return DEST - rts -#endif - .size _memcpy, . - _memcpy diff --git a/lib/machine/rx/memmove.S b/lib/machine/rx/memmove.S deleted file mode 100644 index 60b7683..0000000 --- a/lib/machine/rx/memmove.S +++ /dev/null @@ -1,57 +0,0 @@ - .file "memmove.S" - - .section .text - .global _memmove - .type _memmove,@function -_memmove: - ;; R1: DEST - ;; R2: SRC - ;; R3: COUNT -#ifdef __RX_DISALLOW_STRING_INSNS__ - /* Do not use the string instructions - they might prefetch - bytes from outside of valid memory. This is particularly - dangerous in I/O space. */ - - cmp #0, r3 ; If the count is zero, do nothing - beq 4f - - cmp r1, r2 - blt 3f ; If SRC < DEST copy backwards - - mov r1, r14 ; Save a copy of DEST - -5: mov.b [r2+], r5 - mov.b r5, [r14+] - sub #1, r3 - bne 5b - -4: rts - -3: add r3, r1 - add r3, r2 - -6: mov.b [-r2], r5 - mov.b r5, [-r1] - sub #1, r3 - bne 6b - - rts -#else - mov r1, r4 ; Save a copy of DEST - cmp r1, r2 - blt 2f ; If SRC (r2) is less than DEST (r1) then copy backwards - smovf -1: - mov r4, r1 ; Return DEST - rts -2: - add r3, r1 ; The SMOVB instructions requires the DEST in r1 and the - add r3, r2 ; SRC in r2 but it needs them to point the last bytes of - sub #1, r2 ; the regions involved not the first bytes, hence these - sub #1, r1 ; additions and subtractions. - smovb - bra 1b - -#endif /* SMOVF allowed. */ - - .size _memmove, . - _memmove diff --git a/lib/machine/rx/mempcpy.S b/lib/machine/rx/mempcpy.S deleted file mode 100644 index f824524..0000000 --- a/lib/machine/rx/mempcpy.S +++ /dev/null @@ -1,25 +0,0 @@ - .file "mempcpy.S" - - .section .text - .global _mempcpy - .type _mempcpy,@function -_mempcpy: -#ifdef __RX_DISALLOW_STRING_INSNS__ - /* Do not use the string instructions - they might prefetch - bytes from outside of valid memory. This is particularly - dangerous in I/O space. */ - - cmp #0, r3 ; If the count is zero, do nothing - beq 2f - -1: mov.b [r2+], r5 - mov.b r5, [r1+] - sub #1, r3 - bne 1b - -2: rts -#else - smovf - rts -#endif - .size _mempcpy, . - _mempcpy diff --git a/lib/machine/rx/memset.S b/lib/machine/rx/memset.S deleted file mode 100644 index 5ce7a3b..0000000 --- a/lib/machine/rx/memset.S +++ /dev/null @@ -1,13 +0,0 @@ - .file "memset.S" - - .section .text - .global _memset - .type _memset,@function -_memset: - mov r1, r4 - sstr.b - mov r4, r1 - rts - - .size _memset, . - _memset - diff --git a/lib/machine/rx/setjmp.S b/lib/machine/rx/setjmp.S deleted file mode 100644 index bccc503..0000000 --- a/lib/machine/rx/setjmp.S +++ /dev/null @@ -1,89 +0,0 @@ -# setjmp/longjmp for Renesas RX. -# -# The jmpbuf looks like this: -# -# Register jmpbuf offset -# R0 0x0 -# R1 0x4 -# R2 0x8 -# R3 0xc -# R4 0x10 -# R5 0x14 -# R6 0x18 -# R7 0x1c -# R8 0x20 -# R9 0x24 -# R10 0x28 -# R11 0x2c -# R12 0x30 -# R13 0x34 -# R14 0x38 -# R15 0x3c -# PC 0x40 -# -# R1 contains the pointer to jmpbuf: -# -# int R1 = setjmp (jmp_buf R1) -# void longjmp (jmp_buf R1, int R2) -# -# The ABI allows for R1-R5 to be clobbered by functions. We must be -# careful to always leave the stack in a usable state in case an -# interrupt happens. - - .text - .global _setjmp - .type _setjmp, @function -_setjmp: - mov.l r0, [r1] ; save all the general registers - mov.l r1, 0x4[r1] ; longjmp won't use this, but someone else might. - mov.l r2, 0x8[r1] - mov.l r3, 0xc[r1] - mov.l r4, 0x10[r1] - mov.l r5, 0x14[r1] - mov.l r6, 0x18[r1] - mov.l r7, 0x1c[r1] - mov.l r8, 0x20[r1] - mov.l r9, 0x24[r1] - mov.l r10, 0x28[r1] - mov.l r11, 0x2c[r1] - mov.l r12, 0x30[r1] - mov.l r13, 0x34[r1] - mov.l r14, 0x38[r1] - mov.l r15, 0x3c[r1] - mov.l [r0], r2 ; get return address off the stack - mov.l r2, 0x40[r1] ; PC - mov #0, r1 ; Return 0. - rts -.Lend1: - .size _setjmp, .Lend1 - _setjmp - - - .global _longjmp - .type _longjmp, @function -_longjmp: - tst r2, r2 ; Set the Z flag if r2 is 0. - stz #1, r2 ; If the Z flag was set put 1 into the return register. - mov r2, 4[r1] ; Put r2 (our return value) into the setjmp buffer as r1. - - mov.l [r1], r0 ; Restore the stack - there's a slot for PC - mov.l 0x40[r1], r2 ; Get the saved PC - mov.l r2, [r0] ; Overwrite the old return address - - mov.l 0x3c[r1], r15 - mov.l 0x38[r1], r14 - mov.l 0x34[r1], r13 - mov.l 0x30[r1], r12 - mov.l 0x2c[r1], r11 - mov.l 0x28[r1], r10 - mov.l 0x24[r1], r9 - mov.l 0x20[r1], r8 - mov.l 0x1c[r1], r7 - mov.l 0x18[r1], r6 - mov.l 0x14[r1], r5 - mov.l 0x10[r1], r4 - mov.l 0xc[r1], r3 - mov.l 0x8[r1], r2 - mov.l 0x4[r1], r1 ; This sets up the new return value - rts -.Lend2: - .size _longjmp, .Lend2 - _longjmp diff --git a/lib/machine/rx/strcat.S b/lib/machine/rx/strcat.S deleted file mode 100644 index 22533fc..0000000 --- a/lib/machine/rx/strcat.S +++ /dev/null @@ -1,41 +0,0 @@ - .file "strcat.S" - - .section .text - .global _strcat - .type _strcat,@function -_strcat: - ;; On entry: r1 => Destination - ;; r2 => Source -#ifdef __RX_DISALLOW_STRING_INSNS__ - mov r1, r4 ; Save a copy of the dest pointer. - -1: mov.b [r4+], r5 ; Find the NUL byte at the end of R4. - cmp #0, r5 - bne 1b - - sub #1, r4 ; Move R4 back to point at the NUL byte. - -2: mov.b [r2+], r5 ; Copy bytes from R2 to R4 until we reach a NUL byte. - mov.b r5, [r4+] - cmp #0, r5 - bne 2b - - rts -#else - mov r1, r4 ; Save a copy of the dest pointer. - mov r2, r5 ; Save a copy of the source pointer. - - mov #0, r2 ; Search for the NUL byte. - mov #-1, r3 ; Limit on the number of bytes examined. - suntil.b ; Find the end of the destination string. - sub #1, r1 ; suntil.b leaves r1 pointing to the byte beyond the match. - - mov #-1, r3 ; Set a limit on the number of bytes copied. - mov r5, r2 ; Restore the source pointer. - smovu ; Copy source to destination - - mov r4, r1 ; Return the original dest pointer. - rts -#endif - .size _strcat, . - _strcat - diff --git a/lib/machine/rx/strcmp.S b/lib/machine/rx/strcmp.S deleted file mode 100644 index 6a06e6c..0000000 --- a/lib/machine/rx/strcmp.S +++ /dev/null @@ -1,33 +0,0 @@ - .file "strcmp.S" - - .section .text - - .global _strcmp - .type _strcmp,@function -_strcmp: -#ifdef __RX_DISALLOW_STRING_INSNS__ -2: mov.b [r1+], r4 - mov.b [r2+], r5 - cmp #0, r4 - beq 3f - cmp #0, r5 - beq 3f - cmp r4, r5 - beq 2b - -3: and #0xff, r4 ; We need to perform an unsigned comparison of the bytes. - and #0xff, r5 - sub r5, r4, r1 - rts -#else - mov #-1, r3 ; Strictly speaking this is incorrect, but I doubt if anyone will ever know. - scmpu ; Perform the string comparison - bnc 1f ; If Carry is not set skip over - scne.L r1 ; Set result based on Z flag - rts ; -1: ; - mov #-1,r1 ; Carry not set, result should be negative - rts ; -#endif - .size _strcmp, . - _strcmp - diff --git a/lib/machine/rx/strcpy.S b/lib/machine/rx/strcpy.S deleted file mode 100644 index 05766cc..0000000 --- a/lib/machine/rx/strcpy.S +++ /dev/null @@ -1,25 +0,0 @@ - .file "strcpy.S" - - .section .text - .global _strcpy - .type _strcpy,@function -_strcpy: - ;; R1: dest - ;; R2: source -#ifdef __RX_DISALLOW_STRING_INSNS__ - mov r1, r4 ; Leave the destination address unchanged in the result register. - -1: mov.b [r2+], r5 - mov.b r5, [r4+] - cmp #0, r5 - bne 1b - - rts -#else - mov r1, r4 - mov #-1, r3 ; Strictly speaking this is incorrect, but I doubt if anyone will ever know. - smovu - mov r4, r1 - rts -#endif - .size _strcpy, . - _strcpy diff --git a/lib/machine/rx/strlen.S b/lib/machine/rx/strlen.S deleted file mode 100644 index bf12c0c..0000000 --- a/lib/machine/rx/strlen.S +++ /dev/null @@ -1,29 +0,0 @@ - .file "strlen.S" - - .section .text - - .global _strlen - .type _strlen,@function -_strlen: -#ifdef __RX_DISALLOW_STRING_INSNS__ - mov r1, r4 - -1: mov.b [r1+], r5 - cmp #0, r5 - bne 1b - - sub #1, r1 - sub r4, r1 - rts -#else - add #0, r1, r4 ; Save a copy of the string start address and set the condition flags. - beq null_string ; Test for a NULL pointer. - mov #-1, r3 ; Set a limit on the number of bytes examined. - mov #0, r2 ; Stop searching when we find a NUL byte. - suntil.b ; Search until *r1 == r2 - sub #1, r1 ; suntil.b leaves r1 pointing to the byte beyond the match. -null_string: - sub r4, r1 ; Compute the length. - rts -#endif - .size _strlen, . - _strlen diff --git a/lib/machine/rx/strncat.S b/lib/machine/rx/strncat.S deleted file mode 100644 index ba544a4..0000000 --- a/lib/machine/rx/strncat.S +++ /dev/null @@ -1,58 +0,0 @@ - .file "strncat.S" - - .section .text - .global _strncat - .type _strncat,@function -_strncat: - ;; On entry: r1 => Destination - ;; r2 => Source - ;; r3 => Max number of bytes to copy -#ifdef __RX_DISALLOW_STRING_INSNS__ - cmp #0, r3 ; If max is zero we have nothing to do. - beq 2f - - mov r1, r4 ; Leave the desintation pointer intact for the return value. - -1: mov.b [r4+], r5 ; Find the NUL byte at the end of the destination. - cmp #0, r5 - bne 1b - - sub #1, r4 - -3: mov.b [r2+], r5 ; Copy bytes from the source into the destination ... - mov.b r5, [r4+] - cmp #0, r5 ; ... until we reach a NUL byte ... - beq 2f - sub #1, r3 - bne 3b ; ... or we have copied N bytes. - -2: rts -#else - mov r1, r4 ; Save a copy of the dest pointer. - mov r2, r5 ; Save a copy of the source pointer. - mov r3, r14 ; Save a copy of the byte count. - - mov #0, r2 ; Search for the NUL byte. - mov #-1, r3 ; Search until we run out of memory. - suntil.b ; Find the end of the destination string. - sub #1, r1 ; suntil.b leaves r1 pointing to the byte beyond the NUL. - - mov r14, r3 ; Restore the limit on the number of bytes copied. - mov r5, r2 ; Restore the source pointer. - mov r1, r5 ; Save a copy of the dest pointer. - smovu ; Copy source to destination. - - add #0, r14, r3 ; Restore the number of bytes to copy (again), but this time set the Z flag as well. - beq 1f ; If we copied 0 bytes then we already know that the dest string is NUL terminated, so we do not have to do anything. - mov #0, r2 ; Otherwise we must check to see if a NUL byte - mov r5, r1 ; was included in the bytes that were copied. - suntil.b - beq 1f ; Z flag is set if a match was found. - add r14, r5 ; Point at byte after end of copied bytes. - mov.b #0, [r5] ; Store a NUL there. -1: - mov r4, r1 ; Return the original dest pointer. - rts -#endif - .size _strncat, . - _strncat - diff --git a/lib/machine/rx/strncmp.S b/lib/machine/rx/strncmp.S deleted file mode 100644 index 4be8076..0000000 --- a/lib/machine/rx/strncmp.S +++ /dev/null @@ -1,41 +0,0 @@ - .file "strncmp.S" - - .section .text - .global _strncmp - .type _strncmp,@function -_strncmp: - ;; R1: string1 - ;; R2: string2 - ;; R3: max number of bytes to compare -#ifdef __RX_DISALLOW_STRING_INSNS__ - cmp #0, r3 ; For a length of zero, return zero - beq 4f - -2: mov.b [r1+], r4 - mov.b [r2+], r5 - cmp #0, r4 - beq 3f - cmp #0, r5 - beq 3f - sub #1, r3 - beq 3f - cmp r4, r5 - beq 2b - -3: and #0xff, r4 ; We need to perform an unsigned comparison of the bytes. - and #0xff, r5 - sub r5, r4, r1 - rts - -4: mov #0, r1 - rts -#else - scmpu ; Perform the string comparison - bnc 1f ; If Carry is not set skip over - scne.L r1 ; Set result based on Z flag - rts ; -1: ; - mov #-1,r1 ; Carry not set, result should be negative - rts ; -#endif - .size _strncmp, . - _strncmp diff --git a/lib/machine/rx/strncpy.S b/lib/machine/rx/strncpy.S deleted file mode 100644 index e5b6a83..0000000 --- a/lib/machine/rx/strncpy.S +++ /dev/null @@ -1,41 +0,0 @@ - .file "strncpy.S" - - .section .text - .global _strncpy - .type _strncpy,@function -_strncpy: -#ifdef __RX_DISALLOW_STRING_INSNS__ - cmp #0, r3 - beq 3f - - mov r1, r4 ; Preserve R1 for the return value. - -2: mov.b [r2+], r5 ; Copy bytes until... - mov.b r5, [r4+] - sub #1, r3 - beq 3f ; ... our count reaches zero - cmp #0, r5 - bne 2b ; ... or we have written a NUL byte - -4: mov.b r5, [r4+] ; Continue to write further NUL bytes - sub #1, r3 - bne 4b ; until the count reaches zero. - -3: rts - -#else - mov r1, r4 ; Save a copy of the dest pointer. - mov r3, r5 ; Save a copy of the byte count - smovu ; Copy the bytes - cmp #0, r3 ; If we have copied the number of bytes requested - beq 1f ; then skip the next bit: - add r4, r5, r1 ; Point to the last byte that we are supposed to write. - sub r3, r1 ; Subtract the number of bytes left to be written. - mov #0, r2 ; Fill the remaining bytes with NULs, - sstr.b -1: - mov r4, r1 ; Return the destination pointer - rts -#endif - .size _strncpy, . - _strncpy - diff --git a/lib/machine/sh/Makefile.inc b/lib/machine/sh/Makefile.inc deleted file mode 100644 index fd9e26d..0000000 --- a/lib/machine/sh/Makefile.inc +++ /dev/null @@ -1,5 +0,0 @@ -libc_a_SOURCES += %D%/memcpy.S %D%/memset.S %D%/setjmp.S %D%/strcpy.S %D%/strlen.S %D%/strcmp.S - -if SH64 -libc_a_SOURCES += %D%/strncpy.S -endif diff --git a/lib/machine/sh/acinclude.m4 b/lib/machine/sh/acinclude.m4 deleted file mode 100644 index 66ec3b4..0000000 --- a/lib/machine/sh/acinclude.m4 +++ /dev/null @@ -1,10 +0,0 @@ -if test "${machine_dir}" = "sh"; then - AC_CACHE_CHECK([for SH5 (64-bit)], newlib_cv_sh64, [dnl - AC_PREPROC_IFELSE([AC_LANG_PROGRAM( -[[#if !defined(__SH5__) -# error "not SH5" -#endif -]])], [newlib_cv_sh64=yes], [newlib_cv_sh64=no])]) -fi - -AM_CONDITIONAL(SH64, [test "$newlib_cv_sh64" = yes]) diff --git a/lib/machine/sh/asm.h b/lib/machine/sh/asm.h deleted file mode 100644 index db30b14..0000000 --- a/lib/machine/sh/asm.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifdef __STDC__ -# define _C_LABEL(x) _ ## x -#else -# define _C_LABEL(x) _/**/x -#endif -#define _ASM_LABEL(x) x - -#if __SH5__ -# if __SH5__ == 32 && __SHMEDIA__ -# define TEXT .section .text..SHmedia32, "ax" -# else -# define TEXT .text -# endif - -# define _ENTRY(name) \ - TEXT; .balign 8; .globl name; name: -#else -#define _ENTRY(name) \ - .text; .align 2; .globl name; name: -#endif /* __SH5__ */ - -#define ENTRY(name) \ - _ENTRY(_C_LABEL(name)) - -#if (defined (__sh2__) || defined (__SH2E__) || defined (__sh3__) || defined (__SH3E__) \ - || defined (__SH4_SINGLE__) || defined (__SH4__)) \ - || defined (__SH4_SINGLE_ONLY__) || defined (__SH5__) || defined (__SH2A__) -#define DELAYED_BRANCHES -#define SL(branch, dest, in_slot, in_slot_arg2) \ - branch##.s dest; in_slot, in_slot_arg2 -#else -#define SL(branch, dest, in_slot, in_slot_arg2) \ - in_slot, in_slot_arg2; branch dest -#endif - -#ifdef __LITTLE_ENDIAN__ -#define SHHI shlld -#define SHLO shlrd -#else -#define SHHI shlrd -#define SHLO shlld -#endif diff --git a/lib/machine/sh/memcpy.S b/lib/machine/sh/memcpy.S deleted file mode 100644 index 56e6c6f..0000000 --- a/lib/machine/sh/memcpy.S +++ /dev/null @@ -1,395 +0,0 @@ -! -! Fast SH memcpy -! -! by Toshiyasu Morita (tm@netcom.com) -! hacked by J"orn Rernnecke (joern.rennecke@superh.com) ("o for o-umlaut) -! SH5 code Copyright 2002 SuperH Ltd. -! -! Entry: ARG0: destination pointer -! ARG1: source pointer -! ARG3: byte count -! -! Exit: RESULT: destination pointer -! any other registers in the range r0-r7: trashed -! -! Notes: Usually one wants to do small reads and write a longword, but -! unfortunately it is difficult in some cases to concatanate bytes -! into a longword on the SH, so this does a longword read and small -! writes. -! -! This implementation makes two assumptions about how it is called: -! -! 1.: If the byte count is nonzero, the address of the last byte to be -! copied is unsigned greater than the address of the first byte to -! be copied. This could be easily swapped for a signed comparison, -! but the algorithm used needs some comparison. -! -! 2.: When there are two or three bytes in the last word of an 11-or-more -! bytes memory chunk to b copied, the rest of the word can be read -! without side effects. -! This could be easily changed by increasing the minumum size of -! a fast memcpy and the amount subtracted from r7 before L_2l_loop be 2, -! however, this would cost a few extra cyles on average. -! For SHmedia, the assumption is that any quadword can be read in its -! enirety if at least one byte is included in the copy. -! - -#include "asm.h" - -ENTRY(memcpy) - -#if __SHMEDIA__ - -#define LDUAQ(P,O,D0,D1) ldlo.q P,O,D0; ldhi.q P,O+7,D1 -#define STUAQ(P,O,D0,D1) stlo.q P,O,D0; sthi.q P,O+7,D1 -#define LDUAL(P,O,D0,D1) ldlo.l P,O,D0; ldhi.l P,O+3,D1 -#define STUAL(P,O,D0,D1) stlo.l P,O,D0; sthi.l P,O+3,D1 - - ld.b r3,0,r63 - pta/l Large,tr0 - movi 25,r0 - bgeu/u r4,r0,tr0 - nsb r4,r0 - shlli r0,5,r0 - movi (L1-L0+63*32 + 1) & 0xffff,r1 - sub r1, r0, r0 -L0: ptrel r0,tr0 - add r2,r4,r5 - ptabs r18,tr1 - add r3,r4,r6 - blink tr0,r63 - - .balign 8 -L1: - /* 0 byte memcpy */ - blink tr1,r63 - -L4_7: /* 4..7 byte memcpy cntd. */ - stlo.l r2, 0, r0 - or r6, r7, r6 - sthi.l r5, -1, r6 - stlo.l r5, -4, r6 - blink tr1,r63 - -L2_3: /* 2 or 3 byte memcpy cntd. */ - st.b r5,-1,r6 - blink tr1,r63 - - /* 1 byte memcpy */ - ld.b r3,0,r0 - st.b r2,0,r0 - blink tr1,r63 - -L8_15: /* 8..15 byte memcpy cntd. */ - stlo.q r2, 0, r0 - or r6, r7, r6 - sthi.q r5, -1, r6 - stlo.q r5, -8, r6 - blink tr1,r63 - - /* 2 or 3 byte memcpy */ - ld.b r3,0,r0 - ld.b r2,0,r63 - ld.b r3,1,r1 - st.b r2,0,r0 - pta/l L2_3,tr0 - ld.b r6,-1,r6 - st.b r2,1,r1 - blink tr0, r63 - - /* 4 .. 7 byte memcpy */ - LDUAL (r3, 0, r0, r1) - pta L4_7, tr0 - ldlo.l r6, -4, r7 - or r0, r1, r0 - sthi.l r2, 3, r0 - ldhi.l r6, -1, r6 - blink tr0, r63 - - /* 8 .. 15 byte memcpy */ - LDUAQ (r3, 0, r0, r1) - pta L8_15, tr0 - ldlo.q r6, -8, r7 - or r0, r1, r0 - sthi.q r2, 7, r0 - ldhi.q r6, -1, r6 - blink tr0, r63 - - /* 16 .. 24 byte memcpy */ - LDUAQ (r3, 0, r0, r1) - LDUAQ (r3, 8, r8, r9) - or r0, r1, r0 - sthi.q r2, 7, r0 - or r8, r9, r8 - sthi.q r2, 15, r8 - ldlo.q r6, -8, r7 - ldhi.q r6, -1, r6 - stlo.q r2, 8, r8 - stlo.q r2, 0, r0 - or r6, r7, r6 - sthi.q r5, -1, r6 - stlo.q r5, -8, r6 - blink tr1,r63 - -Large: - ld.b r2, 0, r63 - pta/l Loop_ua, tr1 - ori r3, -8, r7 - sub r2, r7, r22 - sub r3, r2, r6 - add r2, r4, r5 - ldlo.q r3, 0, r0 - addi r5, -16, r5 - movi 64+8, r27 // could subtract r7 from that. - stlo.q r2, 0, r0 - sthi.q r2, 7, r0 - ldx.q r22, r6, r0 - bgtu/l r27, r4, tr1 - - addi r5, -48, r27 - pta/l Loop_line, tr0 - addi r6, 64, r36 - addi r6, -24, r19 - addi r6, -16, r20 - addi r6, -8, r21 - -Loop_line: - ldx.q r22, r36, r63 - alloco r22, 32 - addi r22, 32, r22 - ldx.q r22, r19, r23 - sthi.q r22, -25, r0 - ldx.q r22, r20, r24 - ldx.q r22, r21, r25 - stlo.q r22, -32, r0 - ldx.q r22, r6, r0 - sthi.q r22, -17, r23 - sthi.q r22, -9, r24 - sthi.q r22, -1, r25 - stlo.q r22, -24, r23 - stlo.q r22, -16, r24 - stlo.q r22, -8, r25 - bgeu r27, r22, tr0 - -Loop_ua: - addi r22, 8, r22 - sthi.q r22, -1, r0 - stlo.q r22, -8, r0 - ldx.q r22, r6, r0 - bgtu/l r5, r22, tr1 - - add r3, r4, r7 - ldlo.q r7, -8, r1 - sthi.q r22, 7, r0 - ldhi.q r7, -1, r7 - ptabs r18,tr1 - stlo.q r22, 0, r0 - or r1, r7, r1 - sthi.q r5, 15, r1 - stlo.q r5, 8, r1 - blink tr1, r63 - -#else /* ! SHMEDIA, i.e. SH1 .. SH4 / SHcompact */ - -#ifdef __SH5__ -#define DST r2 -#define SRC r3 -#define COUNT r4 -#define TMP0 r5 -#define TMP1 r6 -#define RESULT r2 -#else -#define DST r4 -#define SRC r5 -#define COUNT r6 -#define TMP0 r2 -#define TMP1 r3 -#define RESULT r0 -#endif - -#ifdef __LITTLE_ENDIAN__ - ! Little endian version copies with increasing addresses. - mov DST,TMP1 ! Save return value - mov #11,r0 ! Check if small number of bytes - cmp/hs r0,COUNT - ! COUNT becomes src end address - SL(bf, L_small, add SRC,COUNT) - mov #1,r1 - tst r1,SRC ! check if source even - SL(bt, L_even, mov COUNT,r7) - mov.b @SRC+,r0 ! no, make it even. - mov.b r0,@DST - add #1,DST -L_even: tst r1,DST ! check if destination is even - add #-3,r7 - SL(bf, L_odddst, mov #2,r1) - tst r1,DST ! check if destination is 4-byte aligned - mov DST,r0 - SL(bt, L_al4dst, sub SRC,r0) - mov.w @SRC+,TMP0 - mov.w TMP0,@DST - ! add #2,DST DST is dead here. -L_al4dst: - tst r1,SRC - bt L_al4both - mov.w @SRC+,r1 - swap.w r1,r1 - add #-6,r0 - add #-6,r7 ! r7 := src end address minus 9. - .align 2 -L_2l_loop: - mov.l @SRC+,TMP0 ! Read & write two longwords per iteration - xtrct TMP0,r1 - mov.l r1,@(r0,SRC) - cmp/hs r7,SRC - mov.l @SRC+,r1 - xtrct r1,TMP0 - mov.l TMP0,@(r0,SRC) - bf L_2l_loop - add #-2,SRC - bra L_cleanup - add #5,r0 -L_al4both: - add #-4,r0 - .align 2 -L_al4both_loop: - mov.l @SRC+,DST ! Read longword, write longword per iteration - cmp/hs r7,SRC - SL(bf, L_al4both_loop, mov.l DST,@(r0,SRC)) - - bra L_cleanup - add #3,r0 - -L_odddst: - tst r1,SRC - SL(bt, L_al4src, add #-1,DST) - mov.w @SRC+,r0 - mov.b r0,@(1,DST) - shlr8 r0 - mov.b r0,@(2,DST) - add #2,DST -L_al4src: - .align 2 -L_odd_loop: - mov.l @SRC+,r0 ! Read longword, write byte, word, byte per iteration - cmp/hs r7,SRC - mov.b r0,@(1,DST) - shlr8 r0 - mov.w r0,@(2,DST) - shlr16 r0 - mov.b r0,@(4,DST) - SL(bf, L_odd_loop, add #4,DST) - .align 2 ! avoid nop in more frequently executed code. -L_cleanup2: - mov DST,r0 - sub SRC,r0 -L_cleanup: - cmp/eq COUNT,SRC - bt L_ready - .align 2 -L_cleanup_loop: - mov.b @SRC+,r1 - cmp/eq COUNT,SRC - mov.b r1,@(r0,SRC) - bf L_cleanup_loop -L_ready: - rts - mov TMP1,RESULT -L_small: - bra L_cleanup2 - add #-1,DST -#else /* ! __LITTLE_ENDIAN__ */ - ! Big endian version copies with decreasing addresses. - mov DST,r0 - add COUNT,r0 - sub DST,SRC - mov #11,r1 - cmp/hs r1,COUNT - SL(bf, L_small, add #-1,SRC) - mov SRC,TMP1 - add r0,TMP1 - shlr TMP1 - SL(bt, L_even, - mov DST,r7) - mov.b @(r0,SRC),TMP0 - add #-1,TMP1 - mov.b TMP0,@-r0 -L_even: - tst #1,r0 - add #-1,SRC - SL(bf, L_odddst, add #8,r7) - tst #2,r0 - bt L_al4dst - add #-1,TMP1 - mov.w @(r0,SRC),r1 - mov.w r1,@-r0 -L_al4dst: - shlr TMP1 - bt L_al4both - mov.w @(r0,SRC),r1 - swap.w r1,r1 - add #4,r7 - add #-4,SRC - .align 2 -L_2l_loop: - mov.l @(r0,SRC),TMP0 - xtrct TMP0,r1 - mov.l r1,@-r0 - cmp/hs r7,r0 - mov.l @(r0,SRC),r1 - xtrct r1,TMP0 - mov.l TMP0,@-r0 - bt L_2l_loop - bra L_cleanup - add #5,SRC - - nop ! avoid nop in executed code. -L_al4both: - add #-2,SRC - .align 2 -L_al4both_loop: - mov.l @(r0,SRC),r1 - cmp/hs r7,r0 - SL(bt, L_al4both_loop, - mov.l r1,@-r0) - bra L_cleanup - add #3,SRC - - nop ! avoid nop in executed code. -L_odddst: - shlr TMP1 - bt L_al4src - mov.w @(r0,SRC),r1 - mov.b r1,@-r0 - shlr8 r1 - mov.b r1,@-r0 -L_al4src: - add #-2,SRC - .align 2 -L_odd_loop: - mov.l @(r0,SRC),TMP0 - cmp/hs r7,r0 - mov.b TMP0,@-r0 - shlr8 TMP0 - mov.w TMP0,@-r0 - shlr16 TMP0 - mov.b TMP0,@-r0 - bt L_odd_loop - - add #3,SRC -L_cleanup: -L_small: - cmp/eq DST,r0 - bt L_ready - add #1,DST - .align 2 -L_cleanup_loop: - mov.b @(r0,SRC),TMP0 - cmp/eq DST,r0 - mov.b TMP0,@-r0 - bf L_cleanup_loop -L_ready: - rts - mov r0,RESULT -#endif /* ! __LITTLE_ENDIAN__ */ -#endif /* ! SHMEDIA */ diff --git a/lib/machine/sh/memset.S b/lib/machine/sh/memset.S deleted file mode 100644 index 2b45aff..0000000 --- a/lib/machine/sh/memset.S +++ /dev/null @@ -1,164 +0,0 @@ -! -! Fast SH memset -! -! by Toshiyasu Morita (tm@netcom.com) -! -! SH5 code by J"orn Rennecke (joern.rennecke@superh.com) -! Copyright 2002 SuperH Ltd. -! - -#include "asm.h" - -ENTRY(memset) -#if __SHMEDIA__ - pta/l multiquad, tr0 - ptabs r18, tr2 - - andi r2, -8, r25 - add r2, r4, r5 - addi r5, -1, r20 // calculate end address. - andi r20, -8, r20 - cmveq r4, r25, r20 - bne/u r25, r20, tr0 // multiquad - -! This sequence could clobber volatile objects that are in the same -! quadword as a very short char array. -! ldlo.q r2, 0, r7 -! shlli r4, 2, r4 -! movi -1, r8 -! SHHI r8, r4, r8 -! SHHI r8, r4, r8 -! mcmv r7, r8, r3 -! stlo.q r2, 0, r3 - - pta/l setlongs, tr0 - movi 4, r8 - bgeu/u r4, r8, tr0 - pta/l endset, tr0 - beqi/u r4, 0, tr0 - st.b r2, 0, r3 - beqi/u r4, 1, tr0 - nop - st.b r2, 1, r3 - beqi/l r4, 2, tr0 - st.b r2,2,r3 -endset: blink tr2, r63 -setlongs: - mshflo.b r3, r3, r3 - mperm.w r3, r63, r3 // Fill pattern now in every byte of r3 - stlo.l r2, 0, r3 - nop - nop - sthi.l r5, -1, r3 - blink tr2, r63 - -multiquad: - mshflo.b r3, r3, r3 - mperm.w r3, r63, r3 // Fill pattern now in every byte of r3 - pta/l lastquad, tr0 - stlo.q r2, 0, r3 - sub r20, r25, r24 - movi 64, r9 - beqi/u r24, 8, tr0 // lastquad - pta/l loop, tr1 - addi r20, -7*8, r8 // loop end address; This might overflow, so we need - // to use a different test before we start the loop - bgeu/u r24, r9, tr1// loop - st.q r25, 8, r3 - shlri r24, 4, r24 - st.q r20, -8, r3 - beqi/u r24, 1, tr0 // lastquad - st.q r25, 16, r3 - st.q r20, -16, r3 - beqi/u r24, 2, tr0 // lastquad - st.q r25, 24, r3 - st.q r20, -24, r3 -lastquad: - sthi.q r5, -1, r3 - blink tr2,r63 - -loop: - alloco r25, 32 - st.q r25, 8, r3 - st.q r25, 16, r3 - st.q r25, 24, r3 - st.q r25, 32, r3 - addi r25, 32, r25 - bgeu/l r8, r25, tr1 // loop - - st.q r20, -40, r3 - st.q r20, -32, r3 - st.q r20, -24, r3 - st.q r20, -16, r3 - st.q r20, -8, r3 - sthi.q r5, -1, r3 - blink tr2,r63 -#else /* ! SHMEDIA, i.e. SH1 .. SH4 / SHcompact */ -! Entry: r4: destination pointer -! r5: fill value -! r6: byte count -! -! Exit: r0-r3: trashed -! - -! This assumes that the first four bytes of the address space (0..3) are -! reserved - usually by the linker script. Otherwise, we would had to check -! for the case of objects of the size 12..15 at address 0..3 . - -#ifdef __SH5__ -#define DST r2 -#define VAL r3 -#define CNT r4 -#define TMP r5 -#else -#define DST r4 -#define VAL r5 -#define CNT r6 -#define TMP r2 -#endif - - mov #12,r0 ! Check for small number of bytes - cmp/gt CNT,r0 - mov DST,r0 - SL(bt, L_store_byte_loop_check0, add DST,CNT) - - tst #3,r0 ! Align destination - SL(bt, L_dup_bytes, extu.b r5,r5) - .balignw 4,0x0009 -L_align_loop: - mov.b VAL,@r0 - add #1,r0 - tst #3,r0 - bf L_align_loop - -L_dup_bytes: - swap.b VAL,TMP ! Duplicate bytes across longword - or TMP,VAL - swap.w VAL,TMP - or TMP,VAL - - add #-16,CNT - - .balignw 4,0x0009 -L_store_long_loop: - mov.l VAL,@r0 ! Store double longs to memory - cmp/hs CNT,r0 - mov.l VAL,@(4,r0) - SL(bf, L_store_long_loop, add #8,r0) - - add #16,CNT - -L_store_byte_loop_check0: - cmp/eq CNT,r0 - bt L_exit - .balignw 4,0x0009 -L_store_byte_loop: - mov.b VAL,@r0 ! Store bytes to memory - add #1,r0 - cmp/eq CNT,r0 - bf L_store_byte_loop - -L_exit: - rts - mov r4,r0 -#endif /* ! SHMEDIA */ diff --git a/lib/machine/sh/setjmp.S b/lib/machine/sh/setjmp.S deleted file mode 100644 index 520218f..0000000 --- a/lib/machine/sh/setjmp.S +++ /dev/null @@ -1,191 +0,0 @@ -/* We want to pretend we're in SHmedia mode, even when assembling for - SHcompact. */ -#if __SH5__ == 32 && ! __SHMEDIA__ -# undef __SHMEDIA__ -# define __SHMEDIA__ 1 -#endif - -#if __SHMEDIA__ - .mode SHmedia -#endif - -#include "asm.h" - -ENTRY(setjmp) -#if __SH5__ - ptabs r18, tr0 - gettr tr5, r5 - gettr tr6, r6 - gettr tr7, r7 - st.q r2, 0*8, r18 - st.q r2, 1*8, r10 - st.q r2, 2*8, r11 - st.q r2, 3*8, r12 - st.q r2, 4*8, r13 - st.q r2, 5*8, r14 - st.q r2, 6*8, r15 - st.q r2, 7*8, r28 - st.q r2, 8*8, r29 - st.q r2, 9*8, r30 - st.q r2, 10*8, r31 - st.q r2, 11*8, r32 - st.q r2, 12*8, r33 - st.q r2, 13*8, r34 - st.q r2, 14*8, r35 - st.q r2, 15*8, r44 - st.q r2, 16*8, r45 - st.q r2, 17*8, r46 - st.q r2, 18*8, r47 - st.q r2, 19*8, r48 - st.q r2, 20*8, r49 - st.q r2, 21*8, r50 - st.q r2, 22*8, r51 - st.q r2, 23*8, r52 - st.q r2, 24*8, r53 - st.q r2, 25*8, r54 - st.q r2, 26*8, r55 - st.q r2, 27*8, r56 - st.q r2, 28*8, r57 - st.q r2, 29*8, r58 - st.q r2, 30*8, r59 - st.q r2, 31*8, r5 - st.q r2, 32*8, r6 - st.q r2, 33*8, r7 -#if ! __SH4_NOFPU__ - fst.d r2, 34*8, dr12 - fst.d r2, 35*8, dr14 - fst.d r2, 36*8, dr36 - fst.d r2, 37*8, dr38 - fst.d r2, 38*8, dr40 - fst.d r2, 39*8, dr42 - fst.d r2, 40*8, dr44 - fst.d r2, 41*8, dr46 - fst.d r2, 42*8, dr48 - fst.d r2, 43*8, dr50 - fst.d r2, 44*8, dr52 - fst.d r2, 45*8, dr54 - fst.d r2, 46*8, dr56 - fst.d r2, 47*8, dr58 - fst.d r2, 48*8, dr60 - fst.d r2, 49*8, dr62 -#endif - movi 0, r2 - blink tr0, r63 -#else -#if defined (__SH2E__) || defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) - add #(13*4),r4 -#else - add #(9*4),r4 -#endif - - sts.l pr,@-r4 - -#if defined (__SH2E__) || defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) - fmov.s fr15,@-r4 ! call saved floating point registers - fmov.s fr14,@-r4 - fmov.s fr13,@-r4 - fmov.s fr12,@-r4 -#endif - - mov.l r15,@-r4 ! call saved integer registers - mov.l r14,@-r4 - mov.l r13,@-r4 - mov.l r12,@-r4 - - mov.l r11,@-r4 - mov.l r10,@-r4 - mov.l r9,@-r4 - mov.l r8,@-r4 - - rts - mov #0,r0 -#endif /* __SH5__ */ - -ENTRY(longjmp) -#if __SH5__ - ld.q r2, 0*8, r18 - ptabs r18, tr0 - ld.q r2, 1*8, r10 - ld.q r2, 2*8, r11 - ld.q r2, 3*8, r12 - ld.q r2, 4*8, r13 - ld.q r2, 5*8, r14 - ld.q r2, 6*8, r15 - ld.q r2, 7*8, r28 - ld.q r2, 8*8, r29 - ld.q r2, 9*8, r30 - ld.q r2, 10*8, r31 - ld.q r2, 11*8, r32 - ld.q r2, 12*8, r33 - ld.q r2, 13*8, r34 - ld.q r2, 14*8, r35 - ld.q r2, 15*8, r44 - ld.q r2, 16*8, r45 - ld.q r2, 17*8, r46 - ld.q r2, 18*8, r47 - ld.q r2, 19*8, r48 - ld.q r2, 20*8, r49 - ld.q r2, 21*8, r50 - ld.q r2, 22*8, r51 - ld.q r2, 23*8, r52 - ld.q r2, 24*8, r53 - ld.q r2, 25*8, r54 - ld.q r2, 26*8, r55 - ld.q r2, 27*8, r56 - ld.q r2, 28*8, r57 - ld.q r2, 29*8, r58 - ld.q r2, 30*8, r59 - ld.q r2, 31*8, r5 - ld.q r2, 32*8, r6 - ld.q r2, 33*8, r7 - ptabs r5, tr5 - ptabs r6, tr6 - ptabs r7, tr7 -#if ! __SH4_NOFPU__ - fld.d r2, 34*8, dr12 - fld.d r2, 35*8, dr14 - fld.d r2, 36*8, dr36 - fld.d r2, 37*8, dr38 - fld.d r2, 38*8, dr40 - fld.d r2, 39*8, dr42 - fld.d r2, 40*8, dr44 - fld.d r2, 41*8, dr46 - fld.d r2, 42*8, dr48 - fld.d r2, 43*8, dr50 - fld.d r2, 44*8, dr52 - fld.d r2, 45*8, dr54 - fld.d r2, 46*8, dr56 - fld.d r2, 47*8, dr58 - fld.d r2, 48*8, dr60 - fld.d r2, 49*8, dr62 -#endif - movi 1, r2 - cmvne r3, r3, r2 - blink tr0, r63 -#else - mov.l @r4+,r8 - mov.l @r4+,r9 - mov.l @r4+,r10 - mov.l @r4+,r11 - - mov.l @r4+,r12 - mov.l @r4+,r13 - mov.l @r4+,r14 - mov.l @r4+,r15 - -#if defined (__SH2E__) || defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) - fmov.s @r4+,fr12 ! call saved floating point registers - fmov.s @r4+,fr13 - fmov.s @r4+,fr14 - fmov.s @r4+,fr15 -#endif - - lds.l @r4+,pr - - mov r5,r0 - tst r0,r0 - bf retr4 - movt r0 -retr4: rts - nop -#endif /* __SH5__ */ diff --git a/lib/machine/sh/strcmp.S b/lib/machine/sh/strcmp.S deleted file mode 100644 index 8dcc20b..0000000 --- a/lib/machine/sh/strcmp.S +++ /dev/null @@ -1,225 +0,0 @@ -! SH5 code Copyright 2002 SuperH Ltd. - -#include "asm.h" - -ENTRY(strcmp) - -#if __SHMEDIA__ - ld.ub r2,0,r4 - pt/l quickret0,tr0 - ld.ub r3,0,r5 - ptabs r18,tr2 - beqi/u r4,0,tr0 - ld.ub r2,1,r6 - bne/u r4,r5,tr0 - pt/l quickret1,tr1 - ld.ub r3,1,r7 - beqi/u r6,0,tr1 - ld.ub r2,2,r4 - bne/u r6,r7,tr1 - ld.ub r3,2,r5 - beqi/u r4,0,tr0 - ld.ub r2,3,r6 - bne/u r4,r5,tr0 - ld.ub r3,3,r7 - beqi/u r6,0,tr1 - ld.ub r2,4,r4 - bne/u r6,r7,tr1 - ld.ub r3,4,r5 - beqi/u r4,0,tr0 - ld.ub r2,5,r6 - bne/u r4,r5,tr0 - ld.ub r3,5,r7 - beqi/u r6,0,tr1 - ld.ub r2,6,r4 - bne/u r6,r7,tr1 - ld.ub r3,6,r5 - beqi/u r4,0,tr0 - ld.ub r2,7,r6 - bne/u r4,r5,tr0 - ld.ub r3,7,r7 - beqi/u r6,0,tr1 - sub r3,r2,r3 - bne/u r6,r7,tr1 - - andi r2,-8,r2 - add r3,r2,r3 - ldlo.q r3,8,r23 - pt r23_zero,tr0 - shlli r3,3,r22 - sub r63,r22,r20 - movi 0x101,r6 - mperm.w r6,r63,r6 - SHLO r6,r22,r7 - msubs.ub r7,r23,r8 - pt loop,tr1 - bnei/u r8,0,tr0 // r23_zero - pt found_zero,tr0 - addi r3,15,r3 - andi r3,-8,r3 - sub r3,r2,r3 - bne/l r7,r6,tr1 // loop - /* The strings are aligned to each other. */ - /* It is possible to have a loop with six cycles / iteration - by re-ordering the exit conditions, but then it needs extra - time and/or code to sort out the r4 != r5 case. */ - pt al_loop,tr1 - pt al_found_zero,tr0 -al_loop: - ld.q r2,8,r4 - ldx.q r2,r3,r5 - addi r2,8,r2 - mcmpeq.b r63,r4,r8 - pt cmp_quad,tr3 - bnei/u r8,0,tr0 // al_found_zero - beq/l r4,r5,tr1 // al_loop - blink tr3,r63 // cmp_quad - - .balign 8 -quickret0: - sub r4,r5,r2 - blink tr2,r63 -quickret1: - sub r6,r7,r2 - blink tr2,r63 - -loop: - ld.q r2,8,r4 - ldx.q r2,r3,r19 - addi r2,8,r2 - msubs.ub r6,r4,r8 - mcmpeq.b r63,r19,r9 - SHHI r19,r20,r21 - or r21,r23,r5 - SHLO r19,r22,r23 - bne/u r8,r9,tr0 // found_zero - beq/l r4,r5,tr1 // loop -cmp_quad: -#ifdef __LITTLE_ENDIAN__ - byterev r4,r4 - byterev r5,r5 -#endif - cmpgtu r4,r5,r6 - cmpgtu r5,r4,r7 - sub r6,r7,r2 - blink tr2,r63 -found_zero: - pt zero_now,tr0 - pt cmp_quad,tr1 - SHHI r9,r20,r7 - bne/u r8,r7,tr0 // zero_now - bne/u r4,r5,tr1 // cmp_quad - SHLO r9,r22,r8 -r23_zero: - ld.q r2,8,r4 - add r23,r63,r5 -zero_now: -al_found_zero: -/* We konw that one of the values has at lest one zero, and r8 holds - an 0x01 or 0xff mask for every zero found in one of the operands. - If both operands have the first zero in the same place, this mask - allows us to truncate the comparison to the valid bytes in the - strings. If the first zero is in different places, it doesn't - matter if some invalid bytes are included, since the comparison - of the zero with the non-zero will determine the outcome. */ -#ifdef __LITTLE_ENDIAN__ - shlli r8,8,r8 - addi r8,-1,r9 - andc r9,r8,r8 - and r8,r4,r4 - and r8,r5,r5 -#else - shlri r8,1,r8 - nsb r8,r8 - addi r8,8,r8 - andi r8,56,r8 - sub r63,r8,r8 - shlrd r4,r8,r4 - shlrd r5,r8,r5 -#endif -#ifdef __LITTLE_ENDIAN__ - byterev r4,r4 - byterev r5,r5 -#endif - cmpgtu r4,r5,r6 - cmpgtu r5,r4,r7 - sub r6,r7,r2 - blink tr2,r63 - -#else /* ! __SHMEDIA__, i.e. SH 1..4 / SHcompact */ - -#ifdef __SH5__ -#define STR1 r2 -#define STR2 r3 -#define RESULT r2 -#define TMP r4 -#else -! Entry: r4: string1 -! r5: string2 -! Exit: r0: result -! r1-r2,r4-r5: clobbered -#define STR1 r4 -#define STR2 r5 -#define RESULT r0 -#define TMP r2 -#endif /* __SH5__ */ - - mov STR1,r0 - or STR2,r0 - tst #3,r0 - bf L_setup_char_loop - mov #0,r0 -#ifdef DELAYED_BRANCHES - mov.l @STR1+,r1 - .align 2 -Longword_loop: - mov.l @STR2+,TMP - cmp/str r0,r1 - bt Longword_loop_end - cmp/eq r1,TMP - bt.s Longword_loop - mov.l @STR1+,r1 - add #-4, STR1 -Longword_loop_end: - add #-4, STR1 - add #-4, STR2 -L_setup_char_loop: - mov.b @STR1+,r0 - .align 2 -L_char_loop: - mov.b @STR2+,r1 - tst r0,r0 - bt L_return - cmp/eq r0,r1 - bt.s L_char_loop - mov.b @STR1+,r0 - add #-2,STR1 - mov.b @STR1,r0 -#else /* ! DELAYED_BRANCHES */ - .align 2 -Longword_loop: - mov.l @r4+,r1 - mov.l @r5+,r2 - cmp/str r0,r1 - bt Longword_loop_end - cmp/eq r1,r2 - bt Longword_loop -Longword_loop_end: - add #-4, r4 - add #-4, r5 - .align 2 -L_setup_char_loop: -L_char_loop: - mov.b @r4+,r0 - mov.b @r5+,r1 - tst r0,r0 - bt L_return - cmp/eq r0,r1 - bt L_char_loop -#endif -L_return: - extu.b r0,RESULT - extu.b r1,r1 - rts - sub r1,RESULT -#endif /* ! __SHMEDIA__ */ diff --git a/lib/machine/sh/strcpy.S b/lib/machine/sh/strcpy.S deleted file mode 100644 index da951cd..0000000 --- a/lib/machine/sh/strcpy.S +++ /dev/null @@ -1,134 +0,0 @@ -! Entry: arg0: destination -! arg1: source -! Exit: result: destination -! -! SH5 code Copyright 2002 SuperH Ltd. - -#include "asm.h" - -ENTRY(strcpy) - -#if __SHMEDIA__ - - pta/l shortstring,tr1 - ldlo.q r3,0,r4 - ptabs r18,tr4 - shlli r3,3,r7 - addi r2, 8, r0 - mcmpeq.b r4,r63,r6 - SHHI r6,r7,r6 - bnei/u r6,0,tr1 // shortstring - pta/l no_lddst, tr2 - ori r3,-8,r23 - sub r2, r23, r0 - sub r3, r2, r21 - addi r21, 8, r20 - ldx.q r0, r21, r5 - pta/l loop, tr0 - ori r2,-8,r22 - mcmpeq.b r5, r63, r6 - bgt/u r22, r23, tr2 // no_lddst - - // r22 < r23 : Need to do a load from the destination. - // r22 == r23 : Doesn't actually need to load from destination, - // but still can be handled here. - ldlo.q r2, 0, r9 - movi -1, r8 - SHLO r8, r7, r8 - mcmv r4, r8, r9 - stlo.q r2, 0, r9 - beqi/l r6, 0, tr0 // loop - - add r5, r63, r4 - addi r0, 8, r0 - blink tr1, r63 // shortstring -no_lddst: - // r22 > r23: note that for r22 == r23 the sthi.q would clobber - // bytes before the destination region. - stlo.q r2, 0, r4 - SHHI r4, r7, r4 - sthi.q r0, -1, r4 - beqi/l r6, 0, tr0 // loop - - add r5, r63, r4 - addi r0, 8, r0 -shortstring: -#ifndef __LITTLE_ENDIAN__ - pta/l shortstring2,tr1 - byterev r4,r4 -#endif -shortstring2: - st.b r0,-8,r4 - andi r4,0xff,r5 - shlri r4,8,r4 - addi r0,1,r0 - bnei/l r5,0,tr1 - blink tr4,r63 // return - - .balign 8 -loop: - stlo.q r0, 0, r5 - ldx.q r0, r20, r4 - addi r0, 16, r0 - sthi.q r0, -9, r5 - mcmpeq.b r4, r63, r6 - bnei/u r6, 0, tr1 // shortstring - ldx.q r0, r21, r5 - stlo.q r0, -8, r4 - sthi.q r0, -1, r4 - mcmpeq.b r5, r63, r6 - beqi/l r6, 0, tr0 // loop - - add r5, r63, r4 - addi r0, 8, r0 - blink tr1, r63 // shortstring - -#else /* ! __SHMEDIA__, i.e. SH 1..4 / SHcompact */ - -#ifdef __SH5__ -#define DST r2 -#define SRC r3 -#define TMP r4 -#define RESULT R2 -! r0,r1,r3,r4: clobbered -#else -#define DST r4 -#define SRC r5 -#define TMP r2 -#define RESULT r0 -! r1-r2,r5: clobbered -#endif - mov DST,r0 - or SRC,r0 - tst #3,r0 - SL(bf, L_setup_char_loop, mov DST,r0) - mov.l @SRC+,r1 - mov #0,TMP - cmp/str TMP,r1 - SL(bt, Longword_loop_end, sub SRC,r0) - .align 2 -Longword_loop: - mov.l r1,@(r0,SRC) - mov.l @SRC+,r1 - cmp/str TMP,r1 - bt Longword_loop_end - mov.l r1,@(r0,SRC) - mov.l @SRC+,r1 - cmp/str TMP,r1 - bf Longword_loop -Longword_loop_end: - add #-4,SRC - add #3,r0 - .align 2 -L_char_loop: - mov.b @SRC+,r1 -L_char_loop_start: - tst r1,r1 - SL(bf, L_char_loop, mov.b r1,@(r0,SRC)) - rts - mov DST,RESULT -L_setup_char_loop: - mov.b @SRC+,r1 - bra L_char_loop_start - sub SRC,r0 -#endif /* ! __SHMEDIA__ */ diff --git a/lib/machine/sh/strlen.S b/lib/machine/sh/strlen.S deleted file mode 100644 index b55b86b..0000000 --- a/lib/machine/sh/strlen.S +++ /dev/null @@ -1,87 +0,0 @@ -! Entry: arg0: string start address -! Exit: result: length -! -! Copyright 2002 SuperH Ltd. - -#include "asm.h" - -ENTRY(strlen) - -#if __SHMEDIA__ - - ldlo.q r2,0,r3 - ptabs/l r18,tr0 - pta/l loop,tr1 - andi r2,-8,r0 - shlli r2,3,r1 - mcmpeq.b r3,r63,r3 - SHHI r3,r1,r4 - beqi/u r4,0,tr1 // loop -#ifdef __LITTLE_ENDIAN__ - movi -1,r2 - addi r3,-1,r4 - msad.ubq r3,r4,r2 -#else - shlri r3,1,r3 - nsb r3,r3 - shlri r3,3,r2 -#endif - blink tr0,r63 - -loop: - ldlo.q r0,8,r3 - addi r0,8,r0 - ldlo.q r0,8,r63 - mcmpeq.b r3,r63,r3 - beqi/l r3,0,tr1 // loop - sub r0,r2,r2 -#ifdef __LITTLE_ENDIAN__ - addi r3,-1,r4 - addi r2,-1,r2 - msad.ubq r3,r4,r2 -#else - shlri r3,1,r3 - nsb r3,r3 - shlri r3,3,r3 - add r2,r3,r2 -#endif - blink tr0,r63 - -#else /* ! __SHMEDIA__, i.e. SH 1..4 / SHcompact */ - -#ifdef __SH5__ -#define STR_INIT r2 -#define STR_ORIG r0 -#define STR_COPY STR_ORIG -#define MASK r1 -#define TMP r3 -#define RESULT r2 -! r0,r1,r3: clobbered -#else -#define STR_INIT r4 -#define STR_ORIG STR_INIT -#define STR_COPY STR -#define MASK r1 -#define TMP r3 -#define RESULT r0 -! r1,r3: clobbered -#endif -#define STR RESULT - - mov #3,MASK - and STR_INIT,MASK - tst MASK,MASK - SL(bf, L_char_loop, mov STR_INIT, STR_COPY) -L_word_loop: - mov.l @STR+,TMP - cmp/str MASK,TMP - bf L_word_loop - add #-4,STR -L_char_loop: - mov.b @STR+,TMP - tst TMP,TMP - bf L_char_loop - add #-1,STR - rts - sub STR_ORIG,STR -#endif /* ! __SHMEDIA__ */ diff --git a/lib/machine/sh/strncpy.S b/lib/machine/sh/strncpy.S deleted file mode 100644 index c22ae66..0000000 --- a/lib/machine/sh/strncpy.S +++ /dev/null @@ -1,209 +0,0 @@ -/* Copyright 2003 SuperH Ltd. */ - -#include "asm.h" - -#ifdef __SH5__ -#if __SHMEDIA__ - -#ifdef __LITTLE_ENDIAN__ -#define ZPAD_MASK(src, dst) addi src, -1, dst -#else -#define ZPAD_MASK(src, dst) \ - byterev src, dst; addi dst, -1, dst; byterev dst, dst -#endif - - -/* We assume that the destination is not in the first 16 bytes of memory. - A typical linker script will put the text section first, and as - this code is longer that 16 bytes, you have to get out of your way - to put data there. */ -ENTRY(strncpy) - pt L_small, tr2 - ldlo.q r3, 0, r0 - shlli r3, 3, r19 - mcmpeq.b r0, r63, r1 - SHHI r1, r19, r7 - add r2, r4, r20 - addi r20, -8, r5 - /* If the size is greater than 8, we know we can read beyond the first - (possibly partial) quadword, and write out a full first and last - (possibly unaligned and/or overlapping) quadword. */ - bge/u r2, r5, tr2 // L_small - pt L_found0, tr0 - addi r2, 8, r22 - bnei/u r7, 0, tr0 // L_found0 - ori r3, -8, r38 - pt L_end_early, tr1 - sub r2, r38, r22 - stlo.q r2, 0, r0 - sthi.q r2, 7, r0 - sub r3, r2, r6 - ldx.q r22, r6, r0 - /* Before each iteration, check that we can store in full the next quad we - are about to fetch. */ - addi r5, -8, r36 - bgtu/u r22, r36, tr1 // L_end_early - pt L_scan0, tr1 -L_scan0: - addi r22, 8, r22 - mcmpeq.b r0, r63, r1 - stlo.q r22, -8, r0 - bnei/u r1, 0, tr0 // L_found0 - sthi.q r22, -1, r0 - ldx.q r22, r6, r0 - bgeu/l r36, r22, tr1 // L_scan0 -L_end: - // At end; we might re-read a few bytes when we fetch the last quad. - // branch mispredict, so load is ready now. - mcmpeq.b r0, r63, r1 - addi r22, 8, r22 - bnei/u r1, 0, tr0 // L_found0 - add r3, r4, r7 - ldlo.q r7, -8, r1 - ldhi.q r7, -1, r7 - ptabs r18, tr0 - stlo.q r22, -8, r0 - or r1, r7, r1 - mcmpeq.b r1, r63, r7 - sthi.q r22, -1, r0 - ZPAD_MASK (r7, r7) - and r1, r7, r1 // mask out non-zero bytes after first zero byte - stlo.q r20, -8, r1 - sthi.q r20, -1, r1 - blink tr0, r63 - -L_end_early: - /* Check if we can store the current quad in full. */ - pt L_end, tr1 - add r3, r4, r7 - bgtu/u r5, r22, tr1 // L_end // Not really unlikely, but gap is short. - /* If not, that means we can just proceed to process the last quad. - Two pipeline stalls are unavoidable, as we don't have enough ILP. */ - ldlo.q r7, -8, r1 - ldhi.q r7, -1, r7 - ptabs r18, tr0 - or r1, r7, r1 - mcmpeq.b r1, r63, r7 - ZPAD_MASK (r7, r7) - and r1, r7, r1 // mask out non-zero bytes after first zero byte - stlo.q r20, -8, r1 - sthi.q r20, -1, r1 - blink tr0, r63 - -L_found0: - // r0: string to store, not yet zero-padding normalized. - // r1: result of mcmpeq.b r0, r63, r1. - // r22: store address plus 8. I.e. address where zero padding beyond the - // string in r0 goes. - // r20: store end address. - // r5: store end address minus 8. - pt L_write0_multiquad, tr0 - ZPAD_MASK (r1, r1) - and r0, r1, r0 // mask out non-zero bytes after first zero byte - stlo.q r22, -8, r0 - sthi.q r22, -1, r0 - andi r22, -8, r1 // Check if zeros to write fit in one quad word. - bgtu/l r5, r1, tr0 // L_write0_multiquad - ptabs r18, tr1 - sub r20, r22, r1 - shlli r1, 2, r1 // Do shift in two steps so that 64 bit case is - SHLO r0, r1, r0 // handled correctly. - SHLO r0, r1, r0 - sthi.q r20, -1, r0 - blink tr1, r63 - -L_write0_multiquad: - pt L_write0_loop, tr0 - ptabs r18, tr1 - stlo.q r22, 0, r63 - sthi.q r20, -1, r63 - addi r1, 8, r1 - bgeu/l r5, r1, tr0 // L_write0_loop - blink tr1, r63 - -L_write0_loop: - st.q r1, 0 ,r63 - addi r1, 8, r1 - bgeu/l r5, r1, tr0 // L_write0_loop - blink tr1, r63 - -L_small: - // r0: string to store, not yet zero-padding normalized. - // r1: result of mcmpeq.b r0, r63, r1. - // r7: nonzero indicates relevant zero found r0. - // r2: store address. - // r3: read address. - // r4: size, max 8 - // r20: store end address. - // r5: store end address minus 8. - pt L_nohi, tr0 - pt L_small_storelong, tr1 - ptabs r18, tr2 - sub r63, r4, r23 - bnei/u r7, 0, tr0 // L_nohi - ori r3, -8, r7 - bge/l r23, r7, tr0 // L_nohi - ldhi.q r3, 7, r1 - or r0, r1, r0 - mcmpeq.b r0, r63, r1 -L_nohi: - ZPAD_MASK (r1, r1) - and r0, r1, r0 - movi 4, r19 - bge/u r4, r19, tr1 // L_small_storelong - - pt L_small_end, tr0 -#ifndef __LITTLE_ENDIAN__ - byterev r0, r0 -#endif - beqi/u r4, 0, tr0 // L_small_end - st.b r2, 0, r0 - beqi/u r4, 1, tr0 // L_small_end - shlri r0, 8, r0 - st.b r2, 1, r0 - beqi/u r4, 2, tr0 // L_small_end - shlri r0, 8, r0 - st.b r2, 2, r0 -L_small_end: - blink tr2, r63 - -L_small_storelong: - shlli r23, 3, r7 - SHHI r0, r7, r1 -#ifdef __LITTLE_ENDIAN__ - shlri r1, 32, r1 -#else - shlri r0, 32, r0 -#endif - stlo.l r2, 0, r0 - sthi.l r2, 3, r0 - stlo.l r20, -4, r1 - sthi.l r20, -1, r1 - blink tr2, r63 - -#else /* SHcompact */ - -/* This code is optimized for size. Instruction selection is SH5 specific. - SH4 should use a different version. */ -ENTRY(strncpy) - mov #0, r6 - cmp/eq r4, r6 - bt return - mov r2, r5 - add #-1, r5 - add r5, r4 -loop: - bt/s found0 - add #1, r5 - mov.b @r3+, r1 -found0: - cmp/eq r5,r4 - mov.b r1, @r5 - bf/s loop - cmp/eq r1, r6 -return: - rts - nop - -#endif /* SHcompact */ -#endif /* __SH5__ */ diff --git a/lib/machine/shared_x86/sys/fenv.h b/lib/machine/shared_x86/sys/fenv.h deleted file mode 100644 index 243cac2..0000000 --- a/lib/machine/shared_x86/sys/fenv.h +++ /dev/null @@ -1,179 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2010-2019 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _SYS_FENV_H -#define _SYS_FENV_H 1 - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Primary sources: - - The Open Group Base Specifications Issue 6: - http://www.opengroup.org/onlinepubs/000095399/basedefs/fenv.h.html - - C99 Language spec (draft n1256): - - - Intel(R) 64 and IA-32 Architectures Software Developer's Manuals: - http://www.intel.com/products/processor/manuals/ - - GNU C library manual pages: - http://www.gnu.org/software/libc/manual/html_node/Control-Functions.html - http://www.gnu.org/software/libc/manual/html_node/Rounding.html - http://www.gnu.org/software/libc/manual/html_node/FP-Exceptions.html - http://www.gnu.org/software/libc/manual/html_node/Status-bit-operations.html - - Linux online man page(s): - http://linux.die.net/man/3/fegetexcept - - The documentation quotes these sources for reference. All definitions and - code have been developed solely based on the information from these specs. - -*/ - -/* Represents the entire floating-point environment. The floating-point - environment refers collectively to any floating-point status flags and - control modes supported by the implementation. - In this implementation, the struct contains the state information from - the fstenv/fnstenv instructions and a copy of the SSE MXCSR, since GCC - uses SSE for a lot of floating-point operations. (Cygwin assumes i686 - or above these days, as does the compiler.) */ - -typedef struct _fenv_t -{ - struct _fpu_env_info { - unsigned int _fpu_cw; /* low 16 bits only. */ - unsigned int _fpu_sw; /* low 16 bits only. */ - unsigned int _fpu_tagw; /* low 16 bits only. */ - unsigned int _fpu_ipoff; - unsigned int _fpu_ipsel; - unsigned int _fpu_opoff; - unsigned int _fpu_opsel; /* low 16 bits only. */ - } _fpu; - unsigned int _sse_mxcsr; -} fenv_t; - -/* Represents the floating-point status flags collectively, including - any status the implementation associates with the flags. A floating-point - status flag is a system variable whose value is set (but never cleared) - when a floating-point exception is raised, which occurs as a side effect - of exceptional floating-point arithmetic to provide auxiliary information. - A floating-point control mode is a system variable whose value may be - set by the user to affect the subsequent behavior of floating-point - arithmetic. */ - -typedef __uint32_t fexcept_t; - -/* The header shall define the following constants if and only - if the implementation supports the floating-point exception by means - of the floating-point functions feclearexcept(), fegetexceptflag(), - feraiseexcept(), fesetexceptflag(), and fetestexcept(). Each expands to - an integer constant expression with values such that bitwise-inclusive - ORs of all combinations of the constants result in distinct values. */ - -#define FE_DIVBYZERO (1 << 2) -#define FE_INEXACT (1 << 5) -#define FE_INVALID (1 << 0) -#define FE_OVERFLOW (1 << 3) -#define FE_UNDERFLOW (1 << 4) - -/* The header shall define the following constant, which is - simply the bitwise-inclusive OR of all floating-point exception - constants defined above: */ - -/* in agreement w/ Linux the subnormal exception will always be masked */ -#define FE_ALL_EXCEPT \ - (FE_INEXACT | FE_UNDERFLOW | FE_OVERFLOW | FE_DIVBYZERO | FE_INVALID) - -/* The header shall define the following constants if and only - if the implementation supports getting and setting the represented - rounding direction by means of the fegetround() and fesetround() - functions. Each expands to an integer constant expression whose values - are distinct non-negative vales. */ - -#define FE_DOWNWARD (1) -#define FE_TONEAREST (0) -#define FE_TOWARDZERO (3) -#define FE_UPWARD (2) - -/* Only Solaris and QNX implement fegetprec/fesetprec. As Solaris, use the - values defined by http://www.open-std.org/jtc1/sc22//WG14/www/docs/n752.htm - QNX defines different values. */ -#if __MISC_VISIBLE -#define FE_FLTPREC (0) -#define FE_DBLPREC (2) -#define FE_LDBLPREC (3) -#endif - -/* The header shall define the following constant, which - represents the default floating-point environment (that is, the one - installed at program startup) and has type pointer to const-qualified - fenv_t. It can be used as an argument to the functions within the - header that manage the floating-point environment. */ - -extern const fenv_t *_fe_dfl_env; -#define FE_DFL_ENV (_fe_dfl_env) - -/* Additional implementation-defined environments, with macro - definitions beginning with FE_ and an uppercase letter,and having - type "pointer to const-qualified fenv_t",may also be specified by - the implementation. */ - -#if __GNU_VISIBLE -/* If possible, the GNU C Library defines a macro FE_NOMASK_ENV which - represents an environment where every exception raised causes a trap - to occur. You can test for this macro using #ifdef. It is only defined - if _GNU_SOURCE is defined. */ -extern const fenv_t *_fe_nomask_env; -#define FE_NOMASK_ENV (_fe_nomask_env) - -/* These are GNU extensions defined in glibc. */ -int feenableexcept (int __excepts); -int fedisableexcept (int __excepts); -int fegetexcept (void); -#endif /* __GNU_VISIBLE */ - -#ifdef __CYGWIN__ - -#if __MISC_VISIBLE -int fegetprec (void); -int fesetprec (int __prec); -#endif - -#endif /* __CYGWIN__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* _FENV_H */ diff --git a/lib/machine/sparc/Makefile.inc b/lib/machine/sparc/Makefile.inc deleted file mode 100644 index 0630987..0000000 --- a/lib/machine/sparc/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/scan.c %D%/shuffle.c %D%/setjmp.S diff --git a/lib/machine/sparc/machine/sparclet.h b/lib/machine/sparc/machine/sparclet.h deleted file mode 100644 index 34a0e82..0000000 --- a/lib/machine/sparc/machine/sparclet.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Various stuff for the sparclet processor. - - This file is in the public domain. */ - -#ifndef _MACHINE_SPARCLET_H_ -#define _MACHINE_SPARCLET_H_ - -#ifdef __sparclet__ - -/* sparclet scan instruction */ - -extern __inline__ int -scan (int a, int b) -{ - int res; - __asm__ ("scan %1,%2,%0" : "=r" (res) : "r" (a), "r" (b)); - return res; -} - -/* sparclet shuffle instruction */ - -extern __inline__ int -shuffle (int a, int b) -{ - int res; - __asm__ ("shuffle %1,%2,%0" : "=r" (res) : "r" (a), "r" (b)); - return res; -} - -#endif /* __sparclet__ */ - -#endif /* _MACHINE_SPARCLET_H_ */ diff --git a/lib/machine/sparc/scan.c b/lib/machine/sparc/scan.c deleted file mode 100644 index d76c0b9..0000000 --- a/lib/machine/sparc/scan.c +++ /dev/null @@ -1,15 +0,0 @@ -/* Cover function to sparclet `scan' instruction. - - This file is in the public domain. */ - -#ifdef __sparclet__ - -int -scan (int a, int b) -{ - int res; - __asm__ ("scan %1,%2,%0" : "=r" (res) : "r" (a), "r" (b)); - return res; -} - -#endif diff --git a/lib/machine/sparc/setjmp.S b/lib/machine/sparc/setjmp.S deleted file mode 100644 index 613df2b..0000000 --- a/lib/machine/sparc/setjmp.S +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Modified for incorporation into newlib by Joel Sherrill - * (joel@OARcorp.com), On-Line Applications Research, 1995. - * Did the following: - * + merged in DEFS.h - * + removed error check since it prevented using this setjmp - * to "context switch" - * + added the support for the "user label" and "register" prefix - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * from: $Header$ - */ - -#if defined(LIBC_SCCS) && !defined(lint) - .asciz "@(#)_setjmp.s 8.1 (Berkeley) 6/4/93" -#endif /* LIBC_SCCS and not lint */ - -/* - * Recent versions of GNU cpp define variables which indicate the - * need for underscores and percents. If not using GNU cpp or - * the version does not support this, then you will obviously - * have to define these as appropriate. - */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -#ifndef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ -#endif - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* Use the right prefix for global labels. */ - -#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) - -/********************************************************************* - ********************************************************************* - * Contents of DEFS.h * - ********************************************************************* - *********************************************************************/ - -#ifdef PROF -#define ENTRY(x) \ - .align 4; .globl SYM(x); .proc 1; SYM(x):; .data; .align 4; 1: .long 0; \ - .text; save %sp,-96,%sp; sethi %hi(1b),%o0; call mcount; \ - or %lo(1b),%o0,%o0; restore -#else -#define ENTRY(x) \ - .align 4; .globl SYM(x); .proc 1; SYM(x): -#endif - - - -/********************************************************************* - ********************************************************************* - * END of DEFS.h * - ********************************************************************* - *********************************************************************/ - - -/* - * C library -- _setjmp, _longjmp - * - * _longjmp(a,v) - * will generate a "return(v?v:1)" from - * the last call to - * _setjmp(a) - * by unwinding the call stack. - * The previous signal state is NOT restored. - */ - - -/* #include "DEFS.h" */ - -ENTRY(setjmp) -ENTRY(_setjmp) - st %sp, [%o0] /* caller's stack pointer */ - st %i7, [%o0+4] /* caller's return pc */ - st %fp, [%o0+8] /* store caller's frame pointer */ - st %o7, [%o0+12] - retl - clr %o0 ! return 0 - -ENTRY(longjmp) -ENTRY(_longjmp) - ta 0x03 /* flush registers */ - addcc %o1, %g0, %g1 ! compute v ? v : 1 in a global register - be,a 0f - mov 1, %g1 -0: - ld [%o0], %sp /* caller's stack pointer */ - - ldd [%sp], %l0 - ldd [%sp+8], %l2 - ldd [%sp+16], %l4 - ldd [%sp+24], %l6 - - ldd [%sp+32], %i0 - ldd [%sp+40], %i2 - ldd [%sp+48], %i4 - - ld [%o0+4], %i7 /* caller's return pc */ - ld [%o0+8], %fp /* caller's frame pointer */ - ld [%o0+12], %o7 - - jmp %o7 + 8 ! success, return %g1 - mov %g1, %o0 - diff --git a/lib/machine/sparc/shuffle.c b/lib/machine/sparc/shuffle.c deleted file mode 100644 index 2c2ec1c..0000000 --- a/lib/machine/sparc/shuffle.c +++ /dev/null @@ -1,15 +0,0 @@ -/* Cover function to sparclet `shuffle' instruction. - - This file is in the public domain. */ - -#ifdef __sparclet__ - -int -shuffle (int a, int b) -{ - int res; - __asm__ ("shuffle %1,%2,%0" : "=r" (res) : "r" (a), "r" (b)); - return res; -} - -#endif diff --git a/lib/machine/sparc/sys/fenv.h b/lib/machine/sparc/sys/fenv.h deleted file mode 100644 index 0d8fb13..0000000 --- a/lib/machine/sparc/sys/fenv.h +++ /dev/null @@ -1,85 +0,0 @@ -/* $NetBSD: fenv.h,v 1.2 2017/01/14 12:00:13 martin Exp $ */ - -/*- - * Copyright (c) 2004-2005 David Schultz - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _SYS_FENV_H_ -#define _SYS_FENV_H_ - -#include - -#ifdef __arch64__ -typedef uint64_t fenv_t; -typedef uint64_t fexcept_t; -#else -typedef uint32_t fenv_t; -typedef uint32_t fexcept_t; -#endif - -/* - * Exception flags - * - * Symbols are defined in such a way, to correspond to the accrued - * exception bits (aexc) fields of FSR. - */ -#define FE_INEXACT 0x00000020 /* 0000100000 */ -#define FE_DIVBYZERO 0x00000040 /* 0001000000 */ -#define FE_UNDERFLOW 0x00000080 /* 0010000000 */ -#define FE_OVERFLOW 0x00000100 /* 0100000000 */ -#define FE_INVALID 0x00000200 /* 1000000000 */ - -#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | \ - FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW) - -/* - * Rounding modes - * - * We can't just use the hardware bit values here, because that would - * make FE_UPWARD and FE_DOWNWARD negative, which is not allowed. - */ -#define FE_TONEAREST 0 /* round to nearest representable number */ -#define FE_TOWARDZERO 1 /* round to zero (truncate) */ -#define FE_UPWARD 2 /* round toward positive infinity */ -#define FE_DOWNWARD 3 /* round toward negative infinity */ -#define _ROUND_MASK (FE_TONEAREST | FE_DOWNWARD | \ - FE_UPWARD | FE_TOWARDZERO) -#define _ROUND_SHIFT 30 - - - -/* Default floating-point environment */ -extern const fenv_t *_fe_dfl_env; -#define FE_DFL_ENV _fe_dfl_env - -/* We need to be able to map status flag positions to mask flag positions */ -#define _FPUSW_SHIFT 18 -#define _ENABLE_MASK (FE_ALL_EXCEPT << _FPUSW_SHIFT) - - - -#endif /* !_SYS_FENV_H_ */ diff --git a/lib/machine/spu/Makefile.inc b/lib/machine/spu/Makefile.inc deleted file mode 100644 index 5384a5f..0000000 --- a/lib/machine/spu/Makefile.inc +++ /dev/null @@ -1,28 +0,0 @@ -libc_a_SOURCES += \ - %D%/setjmp.S %D%/assert.c %D%/clearerr.c %D%/creat.c %D%/fclose.c %D%/feof.c \ - %D%/ferror.c %D%/fflush.c %D%/fgetc.c %D%/fgetpos.c %D%/fgets.c %D%/fileno.c %D%/fiprintf.S \ - %D%/fiscanf.S %D%/fopen.c %D%/fprintf.S %D%/fputc.c %D%/fputs.c %D%/fread.c %D%/freopen.c \ - %D%/fscanf.S %D%/fseek.c %D%/fsetpos.c %D%/ftell.c %D%/fwrite.c %D%/getc.c %D%/getchar.c \ - %D%/gets.c %D%/iprintf.S %D%/iscanf.S %D%/memcmp.c %D%/memcpy.c %D%/memmove.c \ - %D%/memset.c %D%/perror.c %D%/printf.S %D%/putc.c %D%/putchar.c %D%/puts.c %D%/remove.c \ - %D%/rename.c %D%/rewind.c %D%/scanf.S %D%/setbuf.c %D%/setvbuf.c %D%/siprintf.S %D%/siscanf.S \ - %D%/sleep.c %D%/sniprintf.S %D%/snprintf.S %D%/sprintf.S %D%/sscanf.S %D%/stdio.c %D%/strcat.c \ - %D%/strchr.c %D%/strcmp.c %D%/strcpy.c %D%/strcspn.c %D%/strlen.c %D%/strncat.c %D%/strncmp.c \ - %D%/strncpy.c %D%/strpbrk.c %D%/strrchr.c %D%/strspn.c %D%/strxfrm.c %D%/tmpfile.c \ - %D%/tmpnam.c %D%/ungetc.c %D%/usleep.c %D%/vfiprintf.c %D%/vfiscanf.c %D%/vfprintf.c \ - %D%/vfscanf.c %D%/viprintf.c %D%/viscanf.c %D%/vprintf.c %D%/vscanf.c %D%/vsiprintf.c \ - %D%/vsiscanf.c %D%/vsniprintf.c %D%/vsnprintf.c %D%/vsprintf.c %D%/vsscanf.c \ - %D%/stack_reg_va.S %D%/spu_clock_svcs.c %D%/spu_clock_stop.c %D%/spu_timer_flih.S \ - %D%/spu_timer_slih.c %D%/spu_timer_slih_reg.c %D%/spu_timer_svcs.c \ - %D%/spu_timer_stop.c %D%/spu_timer_free.c %D%/spu_timebase.c %D%/fdopen.c - -if HAVE_SPU_EA -libc_a_SOURCES += \ - %D%/calloc_ea.c %D%/free_ea.c %D%/malloc_ea.c %D%/memchr_ea.c %D%/memcmp_ea.c \ - %D%/memcpy_ea.c %D%/memmove_ea.c %D%/memset_ea.c %D%/mmap_ea.c %D%/mremap_ea.c %D%/msync_ea.c \ - %D%/munmap_ea.c %D%/posix_memalign_ea.c %D%/realloc_ea.c %D%/strcat_ea.c %D%/strchr_ea.c \ - %D%/strcmp_ea.c %D%/strcpy_ea.c %D%/strcspn_ea.c %D%/strlen_ea.c %D%/strncat_ea.c %D%/strncmp_ea.c \ - %D%/strncpy_ea.c %D%/strpbrk_ea.c %D%/strrchr_ea.c %D%/strspn_ea.c %D%/strstr_ea.c %D%/read_ea.c \ - %D%/pread_ea.c %D%/readv_ea.c %D%/write_ea.c %D%/pwrite_ea.c %D%/writev_ea.c %D%/spu-mcount.S \ - %D%/spu-gmon.c -endif diff --git a/lib/machine/spu/acinclude.m4 b/lib/machine/spu/acinclude.m4 deleted file mode 100644 index bca70e3..0000000 --- a/lib/machine/spu/acinclude.m4 +++ /dev/null @@ -1,9 +0,0 @@ -if test "${machine_dir}" = "spu"; then - AC_CACHE_CHECK([whether the compiler supports __ea], newlib_cv_spu_compiler_has_ea, [dnl - AC_PREPROC_IFELSE([AC_LANG_PROGRAM( -[[#if !defined (__EA32__) && !defined (__EA64__) -# error "__ea not supported" -#endif -]])], [newlib_cv_spu_compiler_has_ea=yes], [newlib_cv_spu_compiler_has_ea=no])]) -fi -AM_CONDITIONAL(HAVE_SPU_EA, test "$newlib_cv_spu_compiler_has_ea" = yes) diff --git a/lib/machine/spu/assert.c b/lib/machine/spu/assert.c deleted file mode 100644 index 90e94eb..0000000 --- a/lib/machine/spu/assert.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -#include - -/* - * SPU specific assert: just directly call exit(6), and use fprintf. That - * way we do not pull in the abort, signal.o code, nor (the likely - * otherwise unused) fiprintf. - */ - -/* func can be NULL, in which case no function information is given. */ -void -__assert_func (const char *file, - int line, - const char *func, - const char *failedexpr) -{ - fprintf(stderr, - "assertion \"%s\" failed: file \"%s\", line %d%s%s\n", - failedexpr, file, line, - func ? ", function: " : "", func ? func : ""); - /* - * On the SPU, we do not have signaling. Previously, standard newlib - * abort code was used. That eventually leads to a kill(SIGABRT), and - * for SPU too an exit(SIGABRT). SIGABRT was 6, so just use that value - * here. - */ - exit(6); - /* NOTREACHED */ -} - -void -__assert (const char *file, - int line, - const char *failedexpr) -{ - __assert_func (file, line, NULL, failedexpr); - /* NOTREACHED */ -} diff --git a/lib/machine/spu/c99ppe.h b/lib/machine/spu/c99ppe.h deleted file mode 100644 index 6e03d2c..0000000 --- a/lib/machine/spu/c99ppe.h +++ /dev/null @@ -1,115 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#ifndef __ASSEMBLER__ -#include -#include -#endif /* !__ASSEMBLER__ */ - -#define SPE_C99_SIGNALCODE 0x2100 - -#define SPE_C99_OP_SHIFT 24 -#define SPE_C99_OP_MASK 0xff -#define SPE_C99_DATA_MASK 0xffffff - -#define SPE_C99_CLEARERR 1 -#define SPE_C99_FCLOSE 2 -#define SPE_C99_FEOF 3 -#define SPE_C99_FERROR 4 -#define SPE_C99_FFLUSH 5 -#define SPE_C99_FGETC 6 -#define SPE_C99_FGETPOS 7 -#define SPE_C99_FGETS 8 -#define SPE_C99_FILENO 9 -#define SPE_C99_FOPEN 10 //implemented -#define SPE_C99_FPUTC 11 -#define SPE_C99_FPUTS 12 -#define SPE_C99_FREAD 13 -#define SPE_C99_FREOPEN 14 -#define SPE_C99_FSEEK 15 -#define SPE_C99_FSETPOS 16 -#define SPE_C99_FTELL 17 -#define SPE_C99_FWRITE 18 -#define SPE_C99_GETC 19 -#define SPE_C99_GETCHAR 20 -#define SPE_C99_GETS 21 -#define SPE_C99_PERROR 22 -#define SPE_C99_PUTC 23 -#define SPE_C99_PUTCHAR 24 -#define SPE_C99_PUTS 25 -#define SPE_C99_REMOVE 26 -#define SPE_C99_RENAME 27 -#define SPE_C99_REWIND 28 -#define SPE_C99_SETBUF 29 -#define SPE_C99_SETVBUF 30 -#define SPE_C99_SYSTEM 31 //not yet implemented in newlib -#define SPE_C99_TMPFILE 32 -#define SPE_C99_TMPNAM 33 -#define SPE_C99_UNGETC 34 -#define SPE_C99_VFPRINTF 35 -#define SPE_C99_VFSCANF 36 -#define SPE_C99_VPRINTF 37 -#define SPE_C99_VSCANF 38 -#define SPE_C99_VSNPRINTF 39 -#define SPE_C99_VSPRINTF 40 -#define SPE_C99_VSSCANF 41 -#define SPE_C99_LAST_OPCODE 42 - -#define SPE_C99_NR_OPCODES ((SPE_C99_LAST_OPCODE - SPE_C99_CLEARERR) + 1) - -#define SPE_STDIN 1 -#define SPE_STDOUT 2 -#define SPE_STDERR 3 -#define SPE_FOPEN_MAX FOPEN_MAX - -#ifdef __ASSEMBLER__ -#define SPE_STACK_REGS 72 /* Number of registers preserved in stack - in case of variable argument API. */ -#else /* !__ASSEMBLER__ */ -struct spe_reg128{ - unsigned int slot[4]; -}; - -void __sinit (struct _reent *); -FILE *__sfp (struct _reent *); -#define __sfp_free(fp) ( (fp)->_fp = 0 ) - -#define CHECK_INIT(ptr) \ - do \ - { \ - if (!_REENT_IS_NULL(ptr) && \ - !_REENT_CLEANUP(ptr)) \ - __sinit (ptr); \ - } \ - while (0) -#define CHECK_STR_INIT(ptr) /* currently, do nothing */ -#endif /* __ASSEMBLER__ */ diff --git a/lib/machine/spu/calloc_ea.c b/lib/machine/spu/calloc_ea.c deleted file mode 100644 index 019bf4b..0000000 --- a/lib/machine/spu/calloc_ea.c +++ /dev/null @@ -1,56 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include "ea_internal.h" -#include - -typedef struct -{ - unsigned long long nmemb; - unsigned int pad0[2]; - unsigned long long length; - unsigned int pad1[2]; -} calloc_ea_t; - -COMPAT_EA_ALIAS (calloc_ea); - -__ea void * -calloc_ea (size_ea_t nmemb, size_ea_t length) -{ - calloc_ea_t args; - - args.nmemb = (unsigned long long) nmemb; - args.length = (unsigned long long) length; - __send_to_ppe (JSRE_LIBEA_SIGNALCODE, SPE_LIBEA_CALLOC, &args); - return ull_to_eavoid (args.nmemb); -} diff --git a/lib/machine/spu/clearerr.c b/lib/machine/spu/clearerr.c deleted file mode 100644 index 27f726a..0000000 --- a/lib/machine/spu/clearerr.c +++ /dev/null @@ -1,53 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -#ifndef _REENT_ONLY - -void -clearerr (FILE * fp) - -{ - int ret; - - CHECK_INIT(_REENT); - - ret = fp->_fp; - - __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_CLEARERR, &ret); - - return; -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/creat.c b/lib/machine/spu/creat.c deleted file mode 100644 index 5b8c603..0000000 --- a/lib/machine/spu/creat.c +++ /dev/null @@ -1,14 +0,0 @@ -/* creat() "system call" */ - -/* copied from libc/posix/creat.c */ - -/* This is needed by f2c and therefore the SPEC benchmarks. */ - -#include - -int -creat (const char *path, - mode_t mode) -{ - return open (path, O_WRONLY | O_CREAT | O_TRUNC, mode); -} diff --git a/lib/machine/spu/ea_internal.h b/lib/machine/spu/ea_internal.h deleted file mode 100644 index 4f10d2e..0000000 --- a/lib/machine/spu/ea_internal.h +++ /dev/null @@ -1,147 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#ifndef __EA_INTERNAL_H -#define __EA_INTERNAL_H - -#include -#define JSRE_POSIX1_SIGNALCODE 0x2101 -#define SPE_POSIX1_FTOK 0x05 -#define SPE_POSIX1_MMAP 0x0b -#define SPE_POSIX1_MUNMAP 0x0e -/* implemented to here */ -#define SPE_POSIX1_MREMAP 0x0c -#define SPE_POSIX1_MSYNC 0x0d -#define SPE_POSIX1_SHMGET 0x14 -#define SPE_POSIX1_SHMCTL 0x12 -#define SPE_POSIX1_SHMAT 0x11 -#define SPE_POSIX1_SHMDT 0x13 -#define SPE_POSIX1_SHM_OPEN 0x15 -#define SPE_POSIX1_SHM_UNLINK 0x16 - -#define JSRE_LIBEA_SIGNALCODE 0x2105 -#define SPE_LIBEA_CALLOC 0x01 -#define SPE_LIBEA_FREE 0x02 -#define SPE_LIBEA_MALLOC 0x03 -#define SPE_LIBEA_REALLOC 0x04 -#define SPE_LIBEA_POSIX_MEMALIGN 0x05 - -#define PAD_INT 3 -#ifdef __EA64__ -#define PAD_LONG 2 -#else /* 32 bit */ -#define PAD_LONG 3 -#endif - -#define ROUND_UP_NEXT_128(x) (((x) + 128) & (~127)) -#define ROUND_DOWN_128(x) ((x) & (~127)) - -/* Macro that generates an __ea alias. */ -#ifdef __EA64__ -#define COMPAT_EA_ALIAS(name) asm (".global\t__" #name "64\n\t.set\t__" #name "64," #name) -#else -#define COMPAT_EA_ALIAS(name) asm (".global\t__" #name "32\n\t.set\t__" #name "32," #name) -#endif - -static inline __ea void* round_down_128_ea(__ea void* x) -{ - size_ea_t tmp = (size_ea_t) x; - tmp &= (~127); - return (__ea void*)tmp; -} - -static -inline __ea void* round_up_next_128_ea(__ea void* x) -{ - size_ea_t tmp = (size_ea_t) x; - tmp += 128; - tmp &= (~127); - return (__ea void*)tmp; -} - -#define __cache_fetch_dirty_all(x) \ - __cache_fetch_dirty(round_down_128_ea(x), 128) - -/* please optimize, this hurts my eyes */ -static inline size_t -three_way_min(size_t x, size_t y, size_t z) -{ - if (x < y) - if (x < z) - return x; - else - return z; - else - if (y < z) - return y; - else - return z; -} - -#undef eavoid_to_ul -#define eavoid_to_ul(X) ({ \ - unsigned long _y; \ - __asm__ ("# %0 %1" : "=r" (_y) : "0" (X)); \ - _y; \ -}) - -#undef eavoid_to_ull -#define eavoid_to_ull(X) ({ \ - unsigned long long _y; \ - __asm__ ("# %0 %1" : "=r" (_y) : "0" (X)); \ - _y; \ -}) - -#ifdef __EA32__ -#undef ull_to_eavoid -#define ull_to_eavoid(X) ({ \ - __ea void* _y; \ - unsigned long long X2; \ - (X2) = (X) << 32;\ - __asm__ ("# %0 %1" : "=r" (_y) : "0" (X2)); \ - _y; \ -}) -#else /*__EA64__*/ -#define ull_to_eavoid(X) ({ \ - __ea void* _y; \ - __asm__ ("# %0 %1" : "=r" (_y) : "0" (X)); \ - _y; \ -}) -#endif - -#undef ul_to_eavoid -#define ul_to_eavoid(X) ({ \ - __ea void* _y; \ - __asm__ ("# %0 %1" : "=r" (_y) : "0" (X)); \ - _y; \ -}) - -#endif /*__EA_INTERNAL_H*/ diff --git a/lib/machine/spu/fclose.c b/lib/machine/spu/fclose.c deleted file mode 100644 index 6a3e507..0000000 --- a/lib/machine/spu/fclose.c +++ /dev/null @@ -1,54 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -#ifndef _REENT_ONLY -int -fclose (FILE * fp) -{ - int ret; - - CHECK_INIT(_REENT); - - ret = fp->_fp; - - ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FCLOSE, &ret); - - __sfp_free(fp); - - return ret; -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/fdopen.c b/lib/machine/spu/fdopen.c deleted file mode 100644 index 6244e50..0000000 --- a/lib/machine/spu/fdopen.c +++ /dev/null @@ -1,43 +0,0 @@ -/* -(C) Copyright IBM Corp. 2009 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include - -#ifndef _REENT_ONLY -/* Just a stub for now. */ -FILE * -fdopen (int fd, - const char *mode) -{ - errno = ENOSYS; - return NULL; -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/feof.c b/lib/machine/spu/feof.c deleted file mode 100644 index 8e87414..0000000 --- a/lib/machine/spu/feof.c +++ /dev/null @@ -1,50 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -#ifndef _REENT_ONLY - -int -feof (FILE * fp) -{ - int result; - - CHECK_INIT(_REENT); - - result = fp->_fp; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FEOF, &result); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/ferror.c b/lib/machine/spu/ferror.c deleted file mode 100644 index be7970f..0000000 --- a/lib/machine/spu/ferror.c +++ /dev/null @@ -1,50 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -#ifndef _REENT_ONLY - -int -ferror (FILE * fp) -{ - int result; - - CHECK_INIT(_REENT); - - result = fp->_fp; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FERROR, &result); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/fflush.c b/lib/machine/spu/fflush.c deleted file mode 100644 index 6b45ac4..0000000 --- a/lib/machine/spu/fflush.c +++ /dev/null @@ -1,49 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -#ifndef _REENT_ONLY -int -fflush (FILE * fp) -{ - int result; - - CHECK_INIT(_REENT); - - result = fp->_fp; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FFLUSH, &result); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/fgetc.c b/lib/machine/spu/fgetc.c deleted file mode 100644 index 8e191cf..0000000 --- a/lib/machine/spu/fgetc.c +++ /dev/null @@ -1,50 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -#ifndef _REENT_ONLY - -int -fgetc (FILE * fp) -{ - int result; - - CHECK_INIT(_REENT); - - result = fp->_fp; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FGETC, &result); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/fgetpos.c b/lib/machine/spu/fgetpos.c deleted file mode 100644 index 68d41ac..0000000 --- a/lib/machine/spu/fgetpos.c +++ /dev/null @@ -1,59 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -typedef struct -{ - int fp; - unsigned int pad0[ 3 ]; - _fpos_t * pos; -} c99_fgetpos_t; - -#ifndef _REENT_ONLY - -int -fgetpos (FILE *__restrict fp, - _fpos_t *__restrict pos) -{ - c99_fgetpos_t arg; - - CHECK_INIT(_REENT); - - arg.fp = fp->_fp; - arg.pos = pos; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FGETPOS, &arg); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/fgets.c b/lib/machine/spu/fgets.c deleted file mode 100644 index cde29da..0000000 --- a/lib/machine/spu/fgets.c +++ /dev/null @@ -1,63 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -typedef struct -{ - char *buf; - unsigned int pad0[3]; - int n; - unsigned int pad1[3]; - int fp; -} c99_fgets_t; - -#ifndef _REENT_ONLY - -char * -fgets (char *__restrict buf, - int n, - FILE *__restrict fp) -{ - c99_fgets_t args; - - CHECK_INIT(_REENT); - - args.buf = buf; - args.n = n; - args.fp = fp->_fp; - - return (char*) __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FGETS, &args); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/fileno.c b/lib/machine/spu/fileno.c deleted file mode 100644 index cbf9e50..0000000 --- a/lib/machine/spu/fileno.c +++ /dev/null @@ -1,51 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -#ifndef _REENT_ONLY - -int -fileno (FILE *fp) - -{ - int ret; - - CHECK_INIT(_REENT); - - ret = fp->_fp; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FILENO, &ret); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/fiprintf.S b/lib/machine/spu/fiprintf.S deleted file mode 100644 index c0d23ca..0000000 --- a/lib/machine/spu/fiprintf.S +++ /dev/null @@ -1,32 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#define fprintf fiprintf -#include "fprintf.S" diff --git a/lib/machine/spu/fiscanf.S b/lib/machine/spu/fiscanf.S deleted file mode 100644 index 5211572..0000000 --- a/lib/machine/spu/fiscanf.S +++ /dev/null @@ -1,32 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#define fscanf fiscanf -#include "fscanf.S" diff --git a/lib/machine/spu/fopen.c b/lib/machine/spu/fopen.c deleted file mode 100644 index 13ecdad..0000000 --- a/lib/machine/spu/fopen.c +++ /dev/null @@ -1,77 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -typedef struct -{ - const char* file; - unsigned int pad0[ 3 ]; - const char* mode; - unsigned int pad1[ 3 ]; -} c99_fopen_t; - -#ifndef _REENT_ONLY -FILE * -fopen (const char *__restrict file, - const char *__restrict mode) -{ - int ret; - c99_fopen_t args; - FILE *fp; - struct _reent *ptr = _REENT; - - CHECK_INIT(ptr); - - fp = __sfp(ptr); - if (!fp) { - return NULL; - } - - args.file = file; - args.mode = mode; - - ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FOPEN, &args); - - if (ret) { - fp->_fp = ret; - return fp; - } - else { - __sfp_free(fp); - return NULL; - } -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/fprintf.S b/lib/machine/spu/fprintf.S deleted file mode 100644 index c4a3efa..0000000 --- a/lib/machine/spu/fprintf.S +++ /dev/null @@ -1,57 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#include "c99ppe.h" - - .text - .align 4 - GLOBL fprintf - .type fprintf, @function -fprintf: - stqd $0, 16($sp) /* save caller address */ - il $2, 2 /* number of fixed arguments */ - brsl $0, __stack_reg_va /* save register to the stack frame */ - - brsl $0, __check_init - lqd $3, 16*2($sp) /* $3 <- saved FP on the stack frame */ - lqd $2, 0($3) /* FP = fp->_fp */ - rotqby $2, $2, $3 - stqd $2, 16*2($sp) /* replace FP on the stack frame */ - - il $3, SPE_C99_SIGNALCODE - il $4, SPE_C99_VFPRINTF - ai $5, $sp, 16*2 /* data ($3 save address) */ - brsl $0, __send_to_ppe - - il $2, 16*(SPE_STACK_REGS+2+2) - a $sp, $sp, $2 - lqd $0, 16($sp) /* load caller address */ - bi $0 /* return to caller */ - .size fprintf, .-fprintf diff --git a/lib/machine/spu/fputc.c b/lib/machine/spu/fputc.c deleted file mode 100644 index bf25526..0000000 --- a/lib/machine/spu/fputc.c +++ /dev/null @@ -1,62 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -typedef struct -{ - int ch; - unsigned int pad0[ 3 ]; - int fp; - unsigned int pad1[ 3 ]; -} c99_fputc_t; - -#ifndef _REENT_ONLY - -int -fputc (c, fp) - int c; - register FILE *fp; -{ - c99_fputc_t args; - - CHECK_INIT(_REENT); - - args.ch = c; - args.fp = fp->_fp; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FPUTC, &args); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/fputs.c b/lib/machine/spu/fputs.c deleted file mode 100644 index 8984186..0000000 --- a/lib/machine/spu/fputs.c +++ /dev/null @@ -1,61 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -typedef struct -{ - const char* s; - unsigned int pad0[ 3 ]; - int fp; - unsigned int pad1[ 3 ]; -} c99_fputs_t; - -#ifndef _REENT_ONLY - -int -fputs (char const *__restrict s, - FILE *__restrict fp) -{ - c99_fputs_t args; - - CHECK_INIT(_REENT); - - args.s = s; - args.fp = fp->_fp; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FPUTS, &args); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/fread.c b/lib/machine/spu/fread.c deleted file mode 100644 index 12b6bb7..0000000 --- a/lib/machine/spu/fread.c +++ /dev/null @@ -1,68 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -typedef struct -{ - char* buf; - unsigned int pad0[ 3 ]; - size_t size; - unsigned int pad1[ 3 ]; - size_t count; - unsigned int pad2[ 3 ]; - int fp; -} c99_fread_t; - -#ifndef _REENT_ONLY - -size_t -fread (void *__restrict buf, - size_t size, - size_t count, - FILE *__restrict fp) -{ - c99_fread_t args; - - CHECK_INIT(_REENT); - - args.buf = buf; - args.size = size; - args.count = count; - args.fp = fp->_fp; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FREAD, &args); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/free_ea.c b/lib/machine/spu/free_ea.c deleted file mode 100644 index ac206a1..0000000 --- a/lib/machine/spu/free_ea.c +++ /dev/null @@ -1,51 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include "ea_internal.h" -#include -#include - -extern void __cache_flush (void) __attribute__ ((weak)); - -COMPAT_EA_ALIAS (free_ea); - -void free_ea(__ea void *ptr) -{ - unsigned long long ptr_arg; - ptr_arg = (unsigned long long) (size_ea_t) ptr; - /* Flush cache only if the application really uses the software cache. */ - if (__cache_flush) - __cache_flush (); - __send_to_ppe(JSRE_LIBEA_SIGNALCODE, SPE_LIBEA_FREE , &ptr_arg); - return; -} diff --git a/lib/machine/spu/freopen.c b/lib/machine/spu/freopen.c deleted file mode 100644 index 8babcfe..0000000 --- a/lib/machine/spu/freopen.c +++ /dev/null @@ -1,74 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -typedef struct -{ - const char *file; - unsigned int pad0[ 3 ]; - const char *mode; - unsigned int pad1[ 3 ]; - int fp; -} c99_freopen_t; - -#ifndef _REENT_ONLY - -FILE * -freopen (const char *__restrict file, - const char *__restrict mode, - FILE *__restrict fp) -{ - int ret; - c99_freopen_t args; - - CHECK_INIT(_REENT); - - args.file = file; - args.mode = mode; - args.fp = fp->_fp; - - ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FREOPEN, &args); - - if (ret) { - fp->_fp = ret; - return fp; - } - else { - __sfp_free(fp); - return NULL; - } -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/fscanf.S b/lib/machine/spu/fscanf.S deleted file mode 100644 index e0d5f7f..0000000 --- a/lib/machine/spu/fscanf.S +++ /dev/null @@ -1,57 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#include "c99ppe.h" - - .text - .align 4 - GLOBL fscanf - .type fscanf, @function -fscanf: - stqd $0, 16($sp) /* save caller address */ - il $2, 2 /* number of fixed arguments */ - brsl $0, __stack_reg_va /* save register to the stack frame */ - - brsl $0, __check_init - lqd $3, 16*2($sp) /* $3 <- saved FP on the stack frame */ - lqd $2, 0($3) /* FP = fp->_fp */ - rotqby $2, $2, $3 - stqd $2, 16*2($sp) /* replace FP on the stack frame */ - - il $3, SPE_C99_SIGNALCODE - il $4, SPE_C99_VFSCANF - ai $5, $sp, 16*2 /* data ($3 save address) */ - brsl $0, __send_to_ppe - - il $2, 16*(SPE_STACK_REGS+2+2) - a $sp, $sp, $2 - lqd $0, 16($sp) /* load caller address */ - bi $0 /* return to caller */ - .size fscanf, .-fscanf diff --git a/lib/machine/spu/fseek.c b/lib/machine/spu/fseek.c deleted file mode 100644 index df33ed8..0000000 --- a/lib/machine/spu/fseek.c +++ /dev/null @@ -1,64 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -typedef struct -{ - int fp; - unsigned int pad0[ 3 ]; - long offset; - unsigned int pad1[ 3 ]; - int whence; -} c99_fseek_t; - -#ifndef _REENT_ONLY - -int -fseek (register FILE *fp, - long offset, - int whence) -{ - c99_fseek_t args; - - CHECK_INIT(_REENT); - - args.fp = fp->_fp; - args.offset = offset; - args.whence = whence; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FSEEK, &args); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/fsetpos.c b/lib/machine/spu/fsetpos.c deleted file mode 100644 index 87daa4c..0000000 --- a/lib/machine/spu/fsetpos.c +++ /dev/null @@ -1,60 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -typedef struct -{ - int fp; - unsigned int pad0[ 3 ]; - const _fpos_t *pos; -} c99_fsetpos_t; - -#ifndef _REENT_ONLY - -int -fsetpos (FILE * iop, - const _fpos_t * pos) -{ - c99_fsetpos_t args; - - CHECK_INIT(_REENT); - - args.fp = iop->_fp; - args.pos = pos; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FSETPOS, &args); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/ftell.c b/lib/machine/spu/ftell.c deleted file mode 100644 index 8e56983..0000000 --- a/lib/machine/spu/ftell.c +++ /dev/null @@ -1,51 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - - -#ifndef _REENT_ONLY - -long -ftell (FILE * fp) -{ - long ret; - - CHECK_INIT(_REENT); - - ret = fp->_fp; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FTELL, &ret); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/fwrite.c b/lib/machine/spu/fwrite.c deleted file mode 100644 index 84572af..0000000 --- a/lib/machine/spu/fwrite.c +++ /dev/null @@ -1,68 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -#ifndef _REENT_ONLY - -typedef struct -{ - const char* buf; - unsigned int pad0[ 3 ]; - size_t size; - unsigned int pad1[ 3 ]; - size_t count; - unsigned int pad2[ 3 ]; - int fp; -} c99_fwrite_t; - -size_t -fwrite (const void *__restrict buf, - size_t size, - size_t count, - FILE * fp) -{ - c99_fwrite_t args; - - CHECK_INIT(_REENT); - - args.buf = buf; - args.size = size; - args.count = count; - args.fp = fp->_fp; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FWRITE, &args); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/getc.c b/lib/machine/spu/getc.c deleted file mode 100644 index 213bada..0000000 --- a/lib/machine/spu/getc.c +++ /dev/null @@ -1,54 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" -/* - * A subroutine version of the macro getc. - */ - -#ifndef _REENT_ONLY - -int -getc (fp) - FILE *fp; -{ - int ret; - - CHECK_INIT(_REENT); - - ret = fp->_fp; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_GETC, &ret); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/getchar.c b/lib/machine/spu/getchar.c deleted file mode 100644 index b166bba..0000000 --- a/lib/machine/spu/getchar.c +++ /dev/null @@ -1,48 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -#undef getchar - -#ifndef _REENT_ONLY - -int -getchar () -{ - int ret; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_GETCHAR, &ret); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/gets.c b/lib/machine/spu/gets.c deleted file mode 100644 index 1047c5f..0000000 --- a/lib/machine/spu/gets.c +++ /dev/null @@ -1,47 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -#ifndef _REENT_ONLY - -char * -gets (buf) - char *buf; -{ - /* The return value gets written over buf - */ - return (char*) __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_GETS, &buf); -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/include/ea.h b/lib/machine/spu/include/ea.h deleted file mode 100644 index 01e0dcc..0000000 --- a/lib/machine/spu/include/ea.h +++ /dev/null @@ -1,137 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#ifndef __EA_H -#define __EA_H - -#include -#include -#include -#include -#include - -/* - * take this out when compiler support is common - */ -#if (!defined( __EA32__ ) && !defined( __EA64__ )) -#warning "need __ea support in compiler to compile to take advantage of libea features" -#define __ea -#define __EA32__ -#endif - -#ifdef __EA64__ - -typedef uint64_t size_ea_t; -typedef int64_t ssize_ea_t; -typedef uint64_t key_ea_t; -#define MAP_FAILED_EA ((__ea void *) -1LL) - -#else - -typedef uint32_t size_ea_t; -typedef int32_t ssize_ea_t; -typedef uint32_t key_ea_t; -#define MAP_FAILED_EA ((__ea void *) -1) - -#endif - -typedef __ea void * eaptr; -struct iovec_ea -{ -#ifdef __EA32__ - unsigned int __pad1; /* 32 bit padding */ -#endif - /*__ea void *iov_base;*/ - eaptr iov_base; /* Starting address */ -#ifdef __EA32__ - unsigned int __pad2; /* 32 bit padding */ -#endif - size_ea_t iov_len; /* Number of bytes */ -}; - - -/* Memory Mapping functions */ -__ea void *mmap_ea (__ea void *start, size_ea_t length, int prot, int - flags, int fd, off_t offset); -int munmap_ea (__ea void *start, size_ea_t length); -__ea void *mremap_ea (__ea void *old_address, size_ea_t old_size, - size_ea_t new_size, unsigned long flags); -int msync_ea (__ea void *start, size_ea_t length, int flags); - -/* EA memory mangement functions */ -__ea void *calloc_ea (size_ea_t nmemb, size_ea_t length); -void free_ea (__ea void *ptr); -__ea void *malloc_ea (size_ea_t size); -__ea void *realloc_ea (__ea void *ptr, size_ea_t size); -int posix_memalign_ea (__ea void **memptr, size_ea_t alignment, size_ea_t size); - -/* String copying functions */ -__ea void *memcpy_ea (__ea void *dest, __ea const void *src, size_ea_t n); -__ea void *memmove_ea (__ea void *dest, __ea const void *src, size_ea_t n); -__ea char *strcpy_ea (__ea char *dest, __ea const char *src); -__ea char *strncpy_ea (__ea char *dest, __ea const char *src, size_ea_t n); - -/* Concatenation functions */ -__ea char *strcat_ea (__ea char *dest, __ea const char *src); -__ea char *strncat_ea (__ea char *dest, __ea const char *src, size_ea_t n); - -/* Comparison functions */ -int memcmp_ea (__ea void *s1, __ea const void *s2, size_ea_t n); -int strcmp_ea (__ea char *s1, __ea const char *s2); -int strncmp_ea (__ea void *s1, __ea const void *s2, size_ea_t n3); - -/* Search functions*/ -__ea void *memchr_ea (__ea const void *s, int c, size_ea_t n); -__ea char *strchr_ea (__ea const char *s, int c); -size_ea_t strcspn_ea (__ea const char *s, const char *reject); -__ea char *strpbrk_ea (__ea const char *s, const char *accept); -__ea char *strrchr_ea (__ea const char *s, int c); -size_ea_t strspn_ea (__ea const char *s, const char *accept); -__ea char * strstr_ea (__ea const char *s1, __ea const char *s2); - -/* Misc functions */ -__ea void *memset_ea (__ea void *dest, int c, size_ea_t n); -size_ea_t strlen_ea (__ea const char *s); - -/* Linux system call functions */ -ssize_ea_t read_ea(int fd, __ea void *buf, size_ea_t count); -ssize_ea_t pread_ea(int fd, __ea void *buf, size_ea_t count, off_t offset); -ssize_ea_t readv_ea(int fd, struct iovec_ea *vector, int count); -ssize_ea_t write_ea(int fd, __ea const void *buf, size_ea_t count); -ssize_ea_t pwrite_ea(int fd, __ea const void *buf, size_ea_t count, off_t offset); -ssize_ea_t writev_ea(int fd, struct iovec_ea *vector, int count); - - -#if defined( __EA64__ ) && defined( __EA32__ ) -#error __EA64__ and __EA32__ are both defined -#endif - -#endif diff --git a/lib/machine/spu/include/fenv.h b/lib/machine/spu/include/fenv.h deleted file mode 100644 index 6252c99..0000000 --- a/lib/machine/spu/include/fenv.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - (C) Copyright 2006, 2007 - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _FENV_H -#define _FENV_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Exception */ -void feclearexcept(int excepts); -void fegetexceptflag(fexcept_t *flagp, int excepts); -void feraiseexcept(int excepts); -void fesetexceptflag(const fexcept_t *flagp, int excepts); -int fetestexcept(int excepts); - -/* Rounding mode */ -int fegetround(void); -int fesetround(int rounding_mode); - -/* Float environment */ -void fegetenv(fenv_t *envp); -int feholdexcept(fenv_t *envp); -void fesetenv(const fenv_t *envp); -void feupdateenv(const fenv_t *envp); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/machine/spu/include/spu_timer.h b/lib/machine/spu/include/spu_timer.h deleted file mode 100644 index 4116aac..0000000 --- a/lib/machine/spu/include/spu_timer.h +++ /dev/null @@ -1,85 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _SPU_TIMER_H_ -#define _SPU_TIMER_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* Clock services. */ -extern void spu_clock_start (void); -extern int spu_clock_stop (void); -extern uint64_t spu_clock_read (void); - -/* Timer services. */ -extern int spu_timer_alloc (int interval, void (*func) (int)); -extern int spu_timer_free (int id); -extern int spu_timer_start (int id); -extern int spu_timer_stop (int id); -extern unsigned spu_timebase (void); - -/* Interrupt services. */ -extern void spu_slih_register (unsigned event_mask, - unsigned (*slih) (unsigned)); -extern unsigned spu_clock_slih (unsigned event_mask); - -/* Number of supported timers. */ -#define SPU_TIMER_NTIMERS 4 - -/* Recommended minimun spu timer interval time from (cat /proc/cpuinfo) - * QS20 100/14318000 = 6.98 usec - * QS21/QS22 100/26666666 = 3.75 usec - * PS3 100/79800000 = 1.25 usec */ -#define SPU_TIMER_MIN_INTERVAL 100 - -/* Clock error codes. */ -#define SPU_CLOCK_ERR_NOT_RUNNING -2 -#define SPU_CLOCK_ERR_STILL_RUNNING -3 -#define SPU_CLOCK_ERR_TIMERS_ACTIVE -4 - -/* Timer error codes. */ -#define SPU_TIMER_ERR_INVALID_PARM -10 -#define SPU_TIMER_ERR_NONE_FREE -11 -#define SPU_TIMER_ERR_INVALID_ID -12 -#define SPU_TIMER_ERR_ACTIVE -13 -#define SPU_TIMER_ERR_NOT_ACTIVE -14 -#define SPU_TIMER_ERR_NOCLOCK -15 -#define SPU_TIMER_ERR_FREE -16 -#define SPU_TIMER_ERR_NOT_STOPPED -17 - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/machine/spu/iprintf.S b/lib/machine/spu/iprintf.S deleted file mode 100644 index 1c3440b..0000000 --- a/lib/machine/spu/iprintf.S +++ /dev/null @@ -1,32 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#define printf iprintf -#include "printf.S" diff --git a/lib/machine/spu/iscanf.S b/lib/machine/spu/iscanf.S deleted file mode 100644 index f96be15..0000000 --- a/lib/machine/spu/iscanf.S +++ /dev/null @@ -1,32 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#define scanf iscanf -#include "scanf.S" diff --git a/lib/machine/spu/machine/_types.h b/lib/machine/spu/machine/_types.h deleted file mode 100644 index edff175..0000000 --- a/lib/machine/spu/machine/_types.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - Copyright 2007 - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _MACHINE__TYPES_H -#define _MACHINE__TYPES_H - -#include - -/* - * fpos_t large enough for either 32 or 64 bit ppc glibc fpos_t. - */ -#define __machine_fpos_t_defined -typedef struct { - char __pos[16]; -} _fpos_t; - -#ifdef __LARGE64_FILES -#define __machine_fpos64_t_defined -typedef _fpos_t _fpos64_t; -#endif - -#define __machine_dev_t_defined -typedef int __dev_t; - -#define __machine_uid_t_defined -typedef unsigned int __uid_t; -#define __machine_gid_t_defined -typedef unsigned int __gid_t; - -#endif /* _MACHINE__TYPES_H */ diff --git a/lib/machine/spu/malloc_ea.c b/lib/machine/spu/malloc_ea.c deleted file mode 100644 index e5f9e2f..0000000 --- a/lib/machine/spu/malloc_ea.c +++ /dev/null @@ -1,47 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include "ea_internal.h" -#include - -COMPAT_EA_ALIAS (malloc_ea); - -__ea void * -malloc_ea (size_ea_t size) -{ - unsigned long long sz; - - sz = (unsigned long long) size; - __send_to_ppe (JSRE_LIBEA_SIGNALCODE, SPE_LIBEA_MALLOC, &sz); - return ull_to_eavoid (sz); -} diff --git a/lib/machine/spu/memchr_ea.c b/lib/machine/spu/memchr_ea.c deleted file mode 100644 index 10d0d59..0000000 --- a/lib/machine/spu/memchr_ea.c +++ /dev/null @@ -1,73 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include "ea_internal.h" -#include -#include -#include - -COMPAT_EA_ALIAS (memchr_ea); - -__ea void * -memchr_ea (__ea const void *s, int c, size_ea_t n) -{ - __ea void *curr_s = (__ea void *) s; - void *local_s; - size_ea_t left_in_cacheline; - size_ea_t search_size; - void *where; - size_ea_t ret; - - while (n) - { - left_in_cacheline = ROUND_UP_NEXT_128 ((size_ea_t) curr_s) - - (size_ea_t) curr_s; - search_size = left_in_cacheline < n ? left_in_cacheline : n; - - local_s = __cache_fetch (curr_s); - where = memchr (local_s, c, search_size); - - if (where) - { - ret = (size_ea_t) curr_s + - ((size_ea_t) (int) where - (size_ea_t) (int) local_s); - return (__ea void *) ret; - } - - /* update values to take into account what we copied */ - curr_s += search_size; - n -= search_size; - } - - /* if we got here n was initially 0 */ - return NULL; -} diff --git a/lib/machine/spu/memcmp.c b/lib/machine/spu/memcmp.c deleted file mode 100644 index a0f5449..0000000 --- a/lib/machine/spu/memcmp.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - (C) Copyright 2008 - International Business Machines Corporation - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include "strncmp.h" - -/* - * Compare the two strings s1 and s2 of length n. Returns an integer less - * than, equal to, or greater than zero if s1 is found, respectively, - * to be less than, to match, or be greater than s2. - */ -int memcmp(const void *s1, const void *s2, size_t n) -{ - vec_uint4 end_v; - return _strncmp_internal (s1, s2, n, &end_v, 0 /* no zero check */); -} diff --git a/lib/machine/spu/memcmp_ea.c b/lib/machine/spu/memcmp_ea.c deleted file mode 100644 index 4088bcc..0000000 --- a/lib/machine/spu/memcmp_ea.c +++ /dev/null @@ -1,78 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include "ea_internal.h" -#include -#include - -COMPAT_EA_ALIAS (memcmp_ea); - -int -memcmp_ea (__ea void *s1, __ea const void *s2, size_ea_t n) -{ - __ea void *curr_s1 = s1; - __ea void *curr_s2 = (__ea void *) s2; - void *l_s1; - void *l_s2; - size_ea_t local_n; - size_ea_t s2_n; - size_ea_t s1_n; - int ret; - - ret = 0; - while (n) - { - l_s2 = __cache_fetch (curr_s2); - l_s1 = __cache_fetch (curr_s1); - - /* - * Use the smaller of the size left to compare (n), the space left in - * s2 cacheline (s2_n), or the space left in the s1 cacheline (s1_n). - */ - s2_n = ROUND_UP_NEXT_128 ((size_ea_t) curr_s2) - (size_ea_t) curr_s2; - s1_n = ROUND_UP_NEXT_128 ((size_ea_t) curr_s1) - (size_ea_t) curr_s1; - local_n = three_way_min (s2_n, s1_n, n); - - ret = memcmp (l_s1, l_s2, local_n); - if (ret) - return ret; - - /* update values to take into account what we copied */ - curr_s2 += local_n; - curr_s1 += local_n; - n -= local_n; - - } - - return ret; -} diff --git a/lib/machine/spu/memcpy.c b/lib/machine/spu/memcpy.c deleted file mode 100644 index 0483cd2..0000000 --- a/lib/machine/spu/memcpy.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ -#include -#include -#include -#include "../../string/local.h" - -/* Copy n bytes from memory area src to memory area dest. - * The memory areas may not overlap. The memcpy subroutine - * returns a pointer to dest. - * - * Faster implementation of this function can be implemented - * either with prior knowledge of the alignment or special - * casing specific optimal alignments. - */ -void * -__inhibit_loop_to_libcall -memcpy(void * __restrict__ dest, const void * __restrict__ src, size_t n) -{ - int adjust, delta; - unsigned int soffset1, doffset1, doffset2; - vec_uchar16 *vSrc, *vDst; - vec_uchar16 sdata1, sdata2, sdata, ddata, shuffle; - vec_uchar16 mask, mask1, mask2, mask3; - - vSrc = (vec_uchar16 *)(src); - vDst = (vec_uchar16 *)(dest); - - /* Handle any leading destination partial quadwords as - * well a very short copy (ie, such that the n characters - * all reside in a single (destination) quadword. - */ - soffset1 = (unsigned int)(src) & 15; - doffset1 = (unsigned int)(dest) & 15; - doffset2 = ((unsigned int)(dest) + n) & 15; - - /* Compute a shuffle pattern used to align the source string - * with the alignment of the destination string. - */ - - adjust = (int)spu_extract(spu_cmpgt(spu_promote(doffset1, 0), spu_promote(soffset1, 0)), 0); - delta = (int)soffset1 - (int)doffset1; - delta += adjust & 16; - - shuffle = (vec_uchar16)spu_add((vec_uint4)spu_splats((unsigned char)delta), - VEC_LITERAL(vec_uint4, 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F)); - - vSrc += adjust; - - sdata1 = *vSrc++; - sdata2 = *vSrc++; - - ddata = *vDst; - sdata = spu_shuffle(sdata1, sdata2, shuffle); - - /* Construct a series of masks used to data insert. The masks - * contain 0 when the destination word is unchanged, 1 when it - * must be replaced by source bytes. - * - * mask1 = mask for leading unchanged bytes - * mask2 = mask for trailing unchange bytes - * mask3 = mask indicating the more than one qword is being changed. - */ - mask = spu_splats((unsigned char)-1); - mask1 = spu_rlmaskqwbyte(mask, -doffset1); - mask2 = spu_slqwbyte(mask, 16-doffset2); - mask3 = (vec_uchar16)spu_cmpgt(spu_splats((unsigned int)(doffset1 + n)), 15); - - *vDst++ = spu_sel(ddata, sdata, spu_and(mask1, spu_or(mask2, mask3))); - - n += doffset1; - - /* Handle complete destination quadwords - */ - while (n > 31) { - sdata1 = sdata2; - sdata2 = *vSrc++; - *vDst++ = spu_shuffle(sdata1, sdata2, shuffle); - n -= 16; - } - - /* Handle any trailing partial (destination) quadwords - */ - mask = spu_and((vec_uchar16)spu_cmpgt(spu_splats((unsigned int)n), 16), mask2); - *vDst = spu_sel(*vDst, spu_shuffle(sdata2, *vSrc, shuffle), mask); - - return (dest); -} diff --git a/lib/machine/spu/memcpy_ea.c b/lib/machine/spu/memcpy_ea.c deleted file mode 100644 index ae67f86..0000000 --- a/lib/machine/spu/memcpy_ea.c +++ /dev/null @@ -1,78 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include "ea_internal.h" -#include -#include -#include "../../string/local.h" - -COMPAT_EA_ALIAS (memcpy_ea); - -__ea void * -__inhibit_loop_to_libcall -memcpy_ea (__ea void *dest, __ea const void *src, size_ea_t n) -{ - __ea void *curr_dest = dest; - __ea const void *curr_src = src; - void *l_dest; - void *l_src; - size_ea_t local_n; - size_ea_t src_n; - size_ea_t dst_n; - - while (n) - { - l_src = __cache_fetch ((__ea void *) curr_src); - - /* - * use the smaller of the size left to copy (n), the space left in the - * src cacheline (src_n), or the space left in the destination - * cacheline (dst_n) - */ - src_n = ROUND_UP_NEXT_128 ((size_ea_t) curr_src) - (size_ea_t) curr_src; - dst_n = - ROUND_UP_NEXT_128 ((size_ea_t) curr_dest) - (size_ea_t) curr_dest; - local_n = three_way_min (src_n, dst_n, n); - - l_dest = __cache_fetch_dirty (curr_dest, local_n); - - memcpy (l_dest, l_src, local_n); - - /* update values to take into account what we copied */ - curr_src += local_n; - curr_dest += local_n; - n -= local_n; - } - - return dest; -} diff --git a/lib/machine/spu/memmove.c b/lib/machine/spu/memmove.c deleted file mode 100644 index f2fe4f9..0000000 --- a/lib/machine/spu/memmove.c +++ /dev/null @@ -1,216 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include -#include "vec_literal.h" - -/* Copy n bytes from memory area src to memory area dest. - * Copying is performed as if the n characters pointed to - * by src are first copied into a temporary array that does - * not overlap the src and dest arrays. Then the n characters - * of the temporary array are copied into the destination - * array. The memmove subroutine returns a pointer to dest. - */ - -void * memmove(void * __restrict__ dest, const void * __restrict__ src, size_t n) -{ - int adjust, delta; - unsigned int soffset1, soffset2, doffset1, doffset2; - vec_uchar16 *vSrc, *vDst; - vec_uchar16 sdata1, sdata2, sdata, ddata, shuffle; - vec_uchar16 mask, mask1, mask2, mask3, one = spu_splats((unsigned char)-1); - - soffset1 = (unsigned int)(src) & 15; - doffset1 = (unsigned int)(dest) & 15; - doffset2 = ((unsigned int)(dest) + n) & 15; - - /* Construct a series of masks used to data insert. The masks - * contains 0 bit when the destination word is unchanged, 1 when it - * must be replaced by source bits. - * - * mask1 = mask for leading unchanged bytes - * mask2 = mask for trailing unchange bytes - * mask3 = mask indicating the more than one qword is being changed. - */ - mask = one; - mask1 = spu_rlmaskqwbyte(mask, -doffset1); - mask2 = spu_slqwbyte(mask, 16-doffset2); - mask3 = (vec_uchar16)spu_cmpgt(spu_splats((unsigned int)(doffset1 + n)), 15); - - vDst = (vec_uchar16 *)(dest); - - delta = (int)soffset1 - (int)doffset1; - - /* The follow check only works if the SPU addresses are not - * wrapped. No provisions have been made to correct for this - * limitation. - */ - if (((unsigned int)dest - (unsigned int)src) >= (unsigned int)n) { - /* Forward copy. Perform a memcpy. - * - * Handle any leading destination partial quadwords as - * well a very short copy (ie, such that the n characters - * all reside in a single (destination) quadword. - */ - vSrc = (vec_uchar16 *)(src); - vDst = (vec_uchar16 *)(dest); - - /* Handle any leading destination partial quadwords as - * well a very short copy (ie, such that the n characters - * all reside in a single (destination) quadword. - */ - soffset1 = (unsigned int)(src) & 15; - doffset1 = (unsigned int)(dest) & 15; - doffset2 = ((unsigned int)(dest) + n) & 15; - - /* Compute a shuffle pattern used to align the source string - * with the alignment of the destination string. - */ - - adjust = (int)spu_extract(spu_cmpgt(spu_promote(doffset1, 0), spu_promote(soffset1, 0)), 0); - delta = (int)soffset1 - (int)doffset1; - delta += adjust & 16; - - shuffle = (vec_uchar16)spu_add((vec_uint4)spu_splats((unsigned char)delta), - VEC_LITERAL(vec_uint4, 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F)); - - vSrc += adjust; - - sdata1 = *vSrc++; - sdata2 = *vSrc++; - - ddata = *vDst; - sdata = spu_shuffle(sdata1, sdata2, shuffle); - - /* Construct a series of masks used to data insert. The masks - * contain 0 when the destination word is unchanged, 1 when it - * must be replaced by source bytes. - * - * mask1 = mask for leading unchanged bytes - * mask2 = mask for trailing unchange bytes - * mask3 = mask indicating the more than one qword is being changed. - */ - mask = one; - mask1 = spu_rlmaskqwbyte(mask, -doffset1); - mask2 = spu_slqwbyte(mask, 16-doffset2); - mask3 = (vec_uchar16)spu_cmpgt(spu_splats((unsigned int)(doffset1 + n)), 15); - - *vDst++ = spu_sel(ddata, sdata, spu_and(mask1, spu_or(mask2, mask3))); - - n += doffset1; - - /* Handle complete destination quadwords - */ - while (n > 31) { - sdata1 = sdata2; - sdata2 = *vSrc++; - *vDst++ = spu_shuffle(sdata1, sdata2, shuffle); - n -= 16; - } - - /* Handle any trailing partial (destination) quadwords - */ - mask = spu_and((vec_uchar16)spu_cmpgt(spu_splats((unsigned int)n), 16), mask2); - *vDst = spu_sel(*vDst, spu_shuffle(sdata2, *vSrc, shuffle), mask); - - } else { - /* Backward copy. - * - * Handle any leading destination partial quadwords as - * well a very short copy (ie, such that the n characters - * all reside in a single (destination) quadword. - */ - vSrc = (vec_uchar16 *)((unsigned int)src + n-1); - vDst = (vec_uchar16 *)((unsigned int)dest + n-1); - - /* Handle any leading destination partial quadwords as - * well a very short copy (ie, such that the n characters - * all reside in a single (destination) quadword. - */ - soffset1 = (unsigned int)(src) & 15; - soffset2 = (unsigned int)(vSrc) & 15; - doffset1 = (unsigned int)(dest) & 15; - doffset2 = (unsigned int)(vDst) & 15; - - /* Compute a shuffle pattern used to align the source string - * with the alignment of the destination string. - */ - adjust = (int)spu_extract(spu_cmpgt(spu_promote(soffset2, 0), spu_promote(doffset2, 0)), 0); - delta = (int)doffset2 - (int)soffset2; - delta += adjust & 16; - - shuffle = (vec_uchar16)spu_sub(VEC_LITERAL(vec_uint4, 0x10111213, 0x14151617, 0x18191A1B, 0x1C1D1E1F), - (vec_uint4)spu_splats((unsigned char)delta)); - - vSrc -= adjust; - - sdata2 = *vSrc--; - sdata1 = *vSrc--; - - ddata = *vDst; - sdata = spu_shuffle(sdata1, sdata2, shuffle); - - /* Construct a series of masks used to data insert. The masks - * contain 0 when the destination word is unchanged, 1 when it - * must be replaced by source bytes. - * - * mask1 = mask for leading unchanged bytes - * mask2 = mask for trailing unchange bytes - * mask3 = mask indicating the more than one qword is being changed. - */ - mask = one; - mask1 = spu_rlmaskqwbyte(mask, -doffset1); - mask2 = spu_slqwbyte(mask, 15-doffset2); - mask3 = (vec_uchar16)spu_cmpgt(spu_splats((int)(doffset2 - n)), -2); - - *vDst-- = spu_sel(ddata, sdata, spu_and(mask2, spu_orc(mask1, mask3))); - - n -= doffset2 + 1; - - /* Handle complete destination quadwords - */ - while ((int)n > 15) { - sdata2 = sdata1; - sdata1 = *vSrc--; - *vDst-- = spu_shuffle(sdata1, sdata2, shuffle); - n -= 16; - } - - /* Handle any trailing partial (destination) quadwords - */ - mask = spu_and((vec_uchar16)spu_cmpgt(spu_splats((int)n), 0), mask1); - *vDst = spu_sel(*vDst, spu_shuffle(*vSrc, sdata1, shuffle), mask); - } - return (dest); -} - diff --git a/lib/machine/spu/memmove_ea.c b/lib/machine/spu/memmove_ea.c deleted file mode 100644 index 356ab56..0000000 --- a/lib/machine/spu/memmove_ea.c +++ /dev/null @@ -1,77 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include "ea_internal.h" -#include -#include - -COMPAT_EA_ALIAS (memmove_ea); - -__ea void * -memmove_ea (__ea void *dest, __ea const void *src, size_ea_t n) -{ - __ea void *curr_dest = dest; - __ea void *curr_src; - void *l_dest; - void *l_src; - size_ea_t local_n; - size_ea_t src_n; - size_ea_t dst_n; - - curr_src = (__ea void *) src; - while (n) - { - l_src = __cache_fetch (curr_src); - - /* - * use the smaller of the size left to copy (n), the space left in the - * src cacheline (src_n), or the space left in the destination - * cacheline (dst_n). - */ - src_n = ROUND_UP_NEXT_128 ((size_ea_t) curr_src) - (size_ea_t) curr_src; - dst_n = - ROUND_UP_NEXT_128 ((size_ea_t) curr_dest) - (size_ea_t) curr_dest; - local_n = three_way_min (src_n, dst_n, n); - - l_dest = __cache_fetch_dirty (curr_dest, local_n); - - memmove (l_dest, l_src, local_n); - - /* update values to take into account what we copied */ - curr_src += local_n; - curr_dest += local_n; - n -= local_n; - } - - return dest; -} diff --git a/lib/machine/spu/memset.c b/lib/machine/spu/memset.c deleted file mode 100644 index 0b1958d..0000000 --- a/lib/machine/spu/memset.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include - -/* Fills the first n bytes of the memory area pointed to by s - * with the constant byte c. Returns a pointer to the memory area s. - */ -void * memset(void *s, int c, size_t n) -{ - int skip, cnt, i; - vec_uchar16 *vs; - vec_uchar16 vc, mask, one = spu_splats((unsigned char)-1); - - vs = (vec_uchar16 *)(s); - vc = spu_splats((unsigned char)c); - cnt = (int)(n); - - /* Handle any leading partial quadwords as well a - * very short settings (ie, such that the n characters - * all reside in a single quadword. - */ - skip = (int)(s) & 15; - if (skip) { - mask = spu_rlmaskqwbyte(one, -skip); - cnt -= 16 - skip; - if (cnt < 0) { - mask = spu_and(mask, spu_slqwbyte(one, (unsigned int)(-cnt))); - } - *vs = spu_sel(*vs, vc, mask); - vs++; - } - - /* Handle 8 quadwords at a time - */ - for (i=127; i 0) { - mask = spu_slqwbyte(one, (unsigned int)(16-cnt)); - *vs = spu_sel(*vs, vc, mask); - } - - return (s); -} diff --git a/lib/machine/spu/memset_ea.c b/lib/machine/spu/memset_ea.c deleted file mode 100644 index 1d60273..0000000 --- a/lib/machine/spu/memset_ea.c +++ /dev/null @@ -1,66 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include -#include "ea_internal.h" -#include -#include "../../string/local.h" - -COMPAT_EA_ALIAS (memset_ea); - -__ea void * -__inhibit_loop_to_libcall -memset_ea (__ea void *dest, int c, size_ea_t n) -{ - __ea void *curr_dest = dest; - void *l_dest; - size_ea_t local_n; - size_ea_t dst_n; - - while (n) - { - dst_n = - ROUND_UP_NEXT_128 ((size_ea_t) curr_dest) - (size_ea_t) curr_dest; - local_n = dst_n < n ? dst_n : n; - - l_dest = __cache_fetch_dirty (curr_dest, local_n); - - memset (l_dest, c, local_n); - - /* update values to take into account what we copied */ - curr_dest += local_n; - n -= local_n; - } - - return dest; -} diff --git a/lib/machine/spu/mk_syscalls b/lib/machine/spu/mk_syscalls deleted file mode 100644 index 8ed87e5..0000000 --- a/lib/machine/spu/mk_syscalls +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/perl -w -# -# (C) Copyright 2007 TOSHIBA CORPORATION -# All Rights Reserved -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the names of Toshiba nor the names of its -# contributors may be used to endorse or promote products derived from this -# software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -open(DEFS, "syscall.def"); - -while ($line = ) { - next if ($line =~ /^#.*/); - - ($opcode, $name, $fp, $parms) = split(" ", $line); - $filename = ">" . $name . ".S"; - open(SOURCE, $filename); - - print SOURCE "\/\*\n"; - print SOURCE " Copyright (c) 2007, Toshiba Corporation\n\n"; - - print SOURCE " All rights reserved.\n\n"; - - print SOURCE " Redistribution and use in source and binary forms, with or without\n"; - print SOURCE " modification, are permitted provided that the following conditions are met:\n\n"; - - print SOURCE " \* Redistributions of source code must retain the above copyright notice,\n"; - print SOURCE " this list of conditions and the following disclaimer.\n"; - print SOURCE " \* Redistributions in binary form must reproduce the above copyright\n"; - print SOURCE " notice, this list of conditions and the following disclaimer in the\n"; - print SOURCE " documentation and/or other materials provided with the distribution.\n"; - print SOURCE " \* Neither the names of Toshiba nor the names of its\n"; - print SOURCE " contributors may be used to endorse or promote products derived from this\n"; - print SOURCE " software without specific prior written permission.\n\n"; - - print SOURCE " THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n"; - print SOURCE " AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n"; - print SOURCE " IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n"; - print SOURCE " ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n"; - print SOURCE " LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n"; - print SOURCE " CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n"; - print SOURCE " SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n"; - print SOURCE " INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n"; - print SOURCE " CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n"; - print SOURCE " ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n"; - print SOURCE " POSSIBILITY OF SUCH DAMAGE.\n"; - print SOURCE " \*\/\n\n"; - print SOURCE "#include \"c99ppe.h\"\n\n"; - print SOURCE " .text\n"; - print SOURCE " .align 4\n"; - print SOURCE " GLOBL ", $name, "\n"; - print SOURCE " .type ", $name, ", \@function\n"; - print SOURCE $name, ":\n"; - - print SOURCE " stqd \$0, 16(\$sp) \/\* save caller address \*\/\n"; - print SOURCE " il \$2, ", $parms, " \/\* number of fixed arguments \*\/\n"; - print SOURCE " brsl \$0, __stack_reg_va \/\* save register to the stack frame \*\/\n\n"; - - if ($fp > 0) { - print SOURCE " brsl \$0, __check_init\n"; - print SOURCE " lqd \$3, 16\*2(\$sp) \/\* \$3 <- saved FP on the stack frame \*\/\n"; - print SOURCE " lqd \$2, 0(\$3) \/\* FP = fp->_fp \*\/\n"; - print SOURCE " rotqby \$2, \$2, \$3\n"; - print SOURCE " stqd \$2, 16\*2(\$sp) \/\* replace FP on the stack frame \*\/\n\n"; - } - - print SOURCE " il \$3, SPE_C99_SIGNALCODE\n"; - print SOURCE " il \$4, ", $opcode, "\n"; - print SOURCE " ai \$5, \$sp, 16\*2 \/\* data (\$3 save address) \*\/\n"; - print SOURCE " brsl \$0, __send_to_ppe\n\n"; - - print SOURCE " il \$2, 16\*(SPE_STACK_REGS+2+2)\n"; - print SOURCE " a \$sp, \$sp, \$2\n"; - print SOURCE " lqd \$0, 16(\$sp) \/\* load caller address \*\/\n"; - print SOURCE " bi \$0 \/\* return to caller \*\/\n"; - - print SOURCE " .size ", $name, ", .-", $name, "\n"; - - close(SOURCE); -} - diff --git a/lib/machine/spu/mmap_ea.c b/lib/machine/spu/mmap_ea.c deleted file mode 100644 index 0b4a5d8..0000000 --- a/lib/machine/spu/mmap_ea.c +++ /dev/null @@ -1,66 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include -#include "ea_internal.h" -#include - -COMPAT_EA_ALIAS (mmap_ea); - -__ea void *mmap_ea (__ea void *start, size_ea_t length, int prot, int - flags, int fd, off_t offset) -{ -#ifdef __EA64__ - if (length > 0xffffffffULL) { - errno = ENOMEM; - return MAP_FAILED_EADDR; - } else { - return (__ea void *) mmap_eaddr ((unsigned long long) start, - (size_t) length, prot, flags, fd, offset); - } -#else /* __EA32__ */ - unsigned long long res; - /* - * mmap_eaddr returns 64 bits. For ea32, only the lower 32 bits can be - * returned. - */ - res = mmap_eaddr ((unsigned long long) (unsigned int) start, length, - prot, flags, fd, offset); - if (res != MAP_FAILED_EADDR && res > 0xffffffffULL) { - munmap_eaddr (res, length); - errno = ENOMEM; - res = MAP_FAILED_EADDR; - } - return (__ea void *) (int) res; -#endif -} diff --git a/lib/machine/spu/mremap_ea.c b/lib/machine/spu/mremap_ea.c deleted file mode 100644 index dfd778e..0000000 --- a/lib/machine/spu/mremap_ea.c +++ /dev/null @@ -1,62 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include -#include "ea_internal.h" -#include - -COMPAT_EA_ALIAS (mremap_ea); - -__ea void * -mremap_ea (__ea void *old_address, size_ea_t old_size, - size_ea_t new_size, unsigned long flags) -{ -#ifdef __EA64__ - return (__ea void *) mremap_eaddr ((unsigned long long) old_address, - old_size, new_size, flags); -#else /* __EA32__ */ - unsigned long long res; - res = mremap_eaddr ((unsigned long long) (unsigned int) old_address, - old_size, new_size, flags); - if (res != MAP_FAILED_EADDR && res > 0xffffffffULL) - { - /* - * We cannot reliably undo the successful remap, so unmap the address. - */ - munmap_eaddr (res, new_size); - errno = ENOMEM; - res = MAP_FAILED_EADDR; - } - return (__ea void *) (int) res; -#endif -} diff --git a/lib/machine/spu/msync_ea.c b/lib/machine/spu/msync_ea.c deleted file mode 100644 index cfb9597..0000000 --- a/lib/machine/spu/msync_ea.c +++ /dev/null @@ -1,44 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include "ea_internal.h" -#include - -COMPAT_EA_ALIAS (msync_ea); - -int -msync_ea (__ea void *start, size_ea_t length, int flags) -{ - return msync_eaddr ((unsigned long long) (size_ea_t) start, length, - flags); -} diff --git a/lib/machine/spu/munmap_ea.c b/lib/machine/spu/munmap_ea.c deleted file mode 100644 index 7b4f624..0000000 --- a/lib/machine/spu/munmap_ea.c +++ /dev/null @@ -1,43 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include "ea_internal.h" -#include - -COMPAT_EA_ALIAS (munmap_ea); - -int -munmap_ea (__ea void *start, size_ea_t length) -{ - return munmap_eaddr ((unsigned long long) (size_ea_t) start, length); -} diff --git a/lib/machine/spu/perror.c b/lib/machine/spu/perror.c deleted file mode 100644 index ec073b2..0000000 --- a/lib/machine/spu/perror.c +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -#include "c99ppe.h" - -#ifndef _REENT_ONLY - -typedef struct -{ - const char* str; - unsigned int pad0[ 3 ]; - int arg_errno; - unsigned int pad1[ 3 ]; -} c99_perror_t; - -void -perror (const char *s) - -{ - c99_perror_t arg; - - arg.str = s; - arg.arg_errno = errno; - __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_PERROR, &arg); - - return; -} -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/posix_memalign_ea.c b/lib/machine/spu/posix_memalign_ea.c deleted file mode 100644 index a1a7361..0000000 --- a/lib/machine/spu/posix_memalign_ea.c +++ /dev/null @@ -1,66 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include "ea_internal.h" -#include - -typedef struct -{ - unsigned int memptr; - unsigned int pad0[3]; - unsigned long long align; - unsigned int pad1[2]; - unsigned long long size; - unsigned int pad2[2]; -} memalign_ea_t; - -COMPAT_EA_ALIAS (posix_memalign_ea); - -int -posix_memalign_ea (__ea void **memptr, size_ea_t align, size_ea_t size) -{ - memalign_ea_t arg; - - /* - * Note that memptr is an LS address that will store an EA address. So, - * it fits in 32 bits. - * - * The assist call will store 32 or 64 bits, depending on whether it's - * 32 or 64 bit ppu code. - */ - arg.memptr = (unsigned int) memptr; - arg.align = (unsigned long long) align; - arg.size = (unsigned long long) size; - return __send_to_ppe (JSRE_LIBEA_SIGNALCODE, SPE_LIBEA_POSIX_MEMALIGN, - &arg); -} diff --git a/lib/machine/spu/pread_ea.c b/lib/machine/spu/pread_ea.c deleted file mode 100644 index 124afcd..0000000 --- a/lib/machine/spu/pread_ea.c +++ /dev/null @@ -1,59 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Ken Werner -*/ - -#include "ea_internal.h" -#include -#include -#include "sys/linux_syscalls.h" - -extern void __cache_flush (void) __attribute__ ((weak)); - -COMPAT_EA_ALIAS (pread_ea); - -ssize_ea_t -pread_ea (int fd, __ea void *buf, size_ea_t count, off_t offset) -{ - struct spu_syscall_block s = { - __NR_pread64, - { - fd, - (size_ea_t) buf, - count, - offset, - 0, - 0} - }; - /* Flush cache only if the application really uses the software cache. */ - if (__cache_flush) - __cache_flush (); - return __linux_syscall (&s); -} diff --git a/lib/machine/spu/printf.S b/lib/machine/spu/printf.S deleted file mode 100644 index d4485c9..0000000 --- a/lib/machine/spu/printf.S +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#include "c99ppe.h" - - .text - .align 4 - GLOBL printf - .type printf, @function -printf: - stqd $0, 16($sp) /* save caller address */ - il $2, 1 /* number of fixed arguments */ - brsl $0, __stack_reg_va /* save register to the stack frame */ - - il $3, SPE_C99_SIGNALCODE - il $4, SPE_C99_VPRINTF - ai $5, $sp, 16*2 /* data ($3 save address) */ - brsl $0, __send_to_ppe - - il $2, 16*(SPE_STACK_REGS+2+2) - a $sp, $sp, $2 - lqd $0, 16($sp) /* load caller address */ - bi $0 /* return to caller */ - .size printf, .-printf diff --git a/lib/machine/spu/putc.c b/lib/machine/spu/putc.c deleted file mode 100644 index dc478d3..0000000 --- a/lib/machine/spu/putc.c +++ /dev/null @@ -1,63 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -typedef struct -{ - int ch; - unsigned int pad0[ 3 ]; - int fp; - unsigned int pad1[ 3 ]; -} c99_putc_t; - -#ifndef _REENT_ONLY - -int -putc (c, fp) - int c; - register FILE *fp; -{ - c99_putc_t args; - - CHECK_INIT(_REENT); - - args.ch = c; - args.fp = fp->_fp; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_PUTC, &args); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/putchar.c b/lib/machine/spu/putchar.c deleted file mode 100644 index 7da00e0..0000000 --- a/lib/machine/spu/putchar.c +++ /dev/null @@ -1,18 +0,0 @@ -#include - -#include "c99ppe.h" - -#undef putchar - -#ifndef _REENT_ONLY - -int -putchar (c) - int c; -{ - /* c gets overwritten before return */ - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_PUTCHAR, &c); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/puts.c b/lib/machine/spu/puts.c deleted file mode 100644 index 2f05067..0000000 --- a/lib/machine/spu/puts.c +++ /dev/null @@ -1,15 +0,0 @@ -#include - -#include "c99ppe.h" - -#ifndef _REENT_ONLY - -int -puts (char const * s) -{ - /* The return value gets written over s - */ - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_PUTS, &s); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/pwrite_ea.c b/lib/machine/spu/pwrite_ea.c deleted file mode 100644 index e08012c..0000000 --- a/lib/machine/spu/pwrite_ea.c +++ /dev/null @@ -1,59 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Ken Werner -*/ - -#include "ea_internal.h" -#include -#include -#include "sys/linux_syscalls.h" - -extern void __cache_flush (void) __attribute__ ((weak)); - -COMPAT_EA_ALIAS (pwrite_ea); - -ssize_ea_t -pwrite_ea (int fd, __ea const void *buf, size_ea_t count, off_t offset) -{ - struct spu_syscall_block s = { - __NR_pwrite64, - { - fd, - (size_ea_t) buf, - count, - offset, - 0, - 0} - }; - /* Flush cache only if the application really uses the software cache. */ - if (__cache_flush) - __cache_flush (); - return __linux_syscall (&s); -} diff --git a/lib/machine/spu/read_ea.c b/lib/machine/spu/read_ea.c deleted file mode 100644 index adc72d2..0000000 --- a/lib/machine/spu/read_ea.c +++ /dev/null @@ -1,59 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Ken Werner -*/ - -#include "ea_internal.h" -#include -#include -#include "sys/linux_syscalls.h" - -extern void __cache_flush (void) __attribute__ ((weak)); - -COMPAT_EA_ALIAS (read_ea); - -ssize_ea_t -read_ea (int fd, __ea void *buf, size_ea_t count) -{ - struct spu_syscall_block s = { - __NR_read, - { - fd, - (size_ea_t) buf, - count, - 0, - 0, - 0} - }; - /* Flush cache only if the application really uses the software cache. */ - if (__cache_flush) - __cache_flush (); - return __linux_syscall (&s); -} diff --git a/lib/machine/spu/readv_ea.c b/lib/machine/spu/readv_ea.c deleted file mode 100644 index f8875d9..0000000 --- a/lib/machine/spu/readv_ea.c +++ /dev/null @@ -1,69 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Ken Werner -*/ - -#include "ea_internal.h" -#include -#include -#include "sys/linux_syscalls.h" - -extern void __cache_flush (void) __attribute__ ((weak)); - -COMPAT_EA_ALIAS (readv_ea); - -ssize_ea_t -readv_ea (int fd, struct iovec_ea *vector, int count) -{ -#ifdef __EA32__ - int i; -#endif - struct spu_syscall_block s = { - __NR_readv, - { - fd, - (size_ea_t) (__ea void *) vector, - count, - 0, - 0, - 0} - }; -#ifdef __EA32__ - for (i = 0; i < count; ++i) - { - vector[i].__pad1 = 0x0; /* 32 bit padding */ - vector[i].__pad2 = 0x0; /* 32 bit padding */ - } -#endif - /* Flush cache only if the application really uses the software cache. */ - if (__cache_flush) - __cache_flush (); - return __linux_syscall (&s); -} diff --git a/lib/machine/spu/realloc_ea.c b/lib/machine/spu/realloc_ea.c deleted file mode 100644 index 4b7dc87..0000000 --- a/lib/machine/spu/realloc_ea.c +++ /dev/null @@ -1,55 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include"ea_internal.h" -#include - -typedef struct -{ - unsigned long long ptr; - unsigned int pad0[2]; - unsigned long long size; - unsigned int pad1[2]; -} realloc_ea_t; - -COMPAT_EA_ALIAS (realloc_ea); - -__ea void * -realloc_ea (__ea void *ptr, size_ea_t size) -{ - realloc_ea_t args; - args.ptr = (unsigned long long) (size_ea_t) ptr; - args.size = (unsigned long long) size; - __send_to_ppe (JSRE_LIBEA_SIGNALCODE, SPE_LIBEA_REALLOC, &args); - return ull_to_eavoid (args.ptr); -} diff --git a/lib/machine/spu/remove.c b/lib/machine/spu/remove.c deleted file mode 100644 index 1a379de..0000000 --- a/lib/machine/spu/remove.c +++ /dev/null @@ -1,46 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -int -remove (filename) - const char *filename; -{ - - /* The return value gets written over buf - */ - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_REMOVE, &filename); -} - diff --git a/lib/machine/spu/rename.c b/lib/machine/spu/rename.c deleted file mode 100644 index e60355d..0000000 --- a/lib/machine/spu/rename.c +++ /dev/null @@ -1,56 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -typedef struct -{ - const char *old; - unsigned int pad0[ 3 ]; - const char *new; - unsigned int pad1[ 3 ]; -} c99_rename_t; - -int -rename (old, new) - const char *old; - const char *new; -{ - c99_rename_t args; - args.old = old; - args.new = new; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_RENAME, &args); -} diff --git a/lib/machine/spu/rewind.c b/lib/machine/spu/rewind.c deleted file mode 100644 index e075fc7..0000000 --- a/lib/machine/spu/rewind.c +++ /dev/null @@ -1,53 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -#ifndef _REENT_ONLY - -void -rewind (FILE * fp) -{ - int ret; - - CHECK_INIT(_REENT); - - ret = fp->_fp; - - __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_REWIND, &ret); - - return; -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/scanf.S b/lib/machine/spu/scanf.S deleted file mode 100644 index 0400658..0000000 --- a/lib/machine/spu/scanf.S +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#include "c99ppe.h" - - .text - .align 4 - GLOBL scanf - .type scanf, @function -scanf: - stqd $0, 16($sp) /* save caller address */ - il $2, 1 /* number of fixed arguments */ - brsl $0, __stack_reg_va /* save register to the stack frame */ - - il $3, SPE_C99_SIGNALCODE - il $4, SPE_C99_VSCANF - ai $5, $sp, 16*2 /* data ($3 save address) */ - brsl $0, __send_to_ppe - - il $2, 16*(SPE_STACK_REGS+2+2) - a $sp, $sp, $2 - lqd $0, 16($sp) /* load caller address */ - bi $0 /* return to caller */ - .size scanf, .-scanf diff --git a/lib/machine/spu/setbuf.c b/lib/machine/spu/setbuf.c deleted file mode 100644 index 427d5dc..0000000 --- a/lib/machine/spu/setbuf.c +++ /dev/null @@ -1,64 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -typedef struct -{ - int fp; - unsigned int pad0[ 3 ]; - char *buf; - unsigned int pad1[ 3 ]; -} c99_setbuf_t; - -#ifndef _REENT_ONLY - -void -setbuf (FILE *__restrict fp, - char *__restrict buf) -{ - c99_setbuf_t args; - - CHECK_INIT(_REENT); - - args.fp = fp->_fp; - args.buf = buf; - - __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_SETBUF, &args); - - return; -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/setjmp.S b/lib/machine/spu/setjmp.S deleted file mode 100644 index 891806b..0000000 --- a/lib/machine/spu/setjmp.S +++ /dev/null @@ -1,183 +0,0 @@ -/* -(C) Copyright IBM Corp. 2005, 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Andreas Neukoetter (ti95neuk@de.ibm.com) -*/ - -/* - int setjmp( jmp_buf env ); -*/ - .text - .align 2 - .global setjmp - .type setjmp, @function -setjmp: - stqd $80, 2*16($3) - stqd $81, 3*16($3) - stqd $82, 4*16($3) - stqd $83, 5*16($3) - stqd $84, 6*16($3) - stqd $85, 7*16($3) - stqd $86, 8*16($3) - stqd $87, 9*16($3) - stqd $88, 10*16($3) - stqd $89, 11*16($3) - stqd $90, 12*16($3) - stqd $91, 13*16($3) - stqd $92, 14*16($3) - stqd $93, 15*16($3) - stqd $94, 16*16($3) - stqd $95, 17*16($3) - stqd $96, 18*16($3) - stqd $97, 19*16($3) - stqd $98, 20*16($3) - stqd $99, 21*16($3) - stqd $100, 22*16($3) - stqd $101, 23*16($3) - stqd $102, 24*16($3) - stqd $103, 25*16($3) - stqd $104, 26*16($3) - stqd $105, 27*16($3) - stqd $106, 28*16($3) - stqd $107, 29*16($3) - stqd $108, 30*16($3) - stqd $109, 31*16($3) - stqd $110, 32*16($3) - stqd $111, 33*16($3) - stqd $112, 34*16($3) - stqd $113, 35*16($3) - stqd $114, 36*16($3) - stqd $115, 37*16($3) - stqd $116, 38*16($3) - stqd $117, 39*16($3) - stqd $118, 40*16($3) - stqd $119, 41*16($3) - - hbr setjmp_ret, $0 - lnop # pipe1 bubble added for instruction fetch - - stqd $120, 42*16($3) - stqd $121, 43*16($3) - stqd $122, 44*16($3) - stqd $123, 45*16($3) - stqd $124, 46*16($3) - stqd $125, 47*16($3) - stqd $126, 48*16($3) - stqd $127, 49*16($3) - - stqd $0, 0*16($3) - stqd $1, 1*16($3) - - il $3, 0 - -setjmp_ret: - bi $0 - .size setjmp, .-setjmp - -/* - int longjmp( jmp_buf env, int val ); -*/ - .text - .align 2 - .global longjmp - .type longjmp, @function -longjmp: - lr $127, $1 - - lqd $0, 0*16($3) - lqd $1, 1*16($3) - - sf $126, $127, $1 - rotqbyi $126, $126, 12 - fsmbi $127, 0x0F00 - and $126, $126, $127 - a $1, $1, $126 - - # restore all the non-volatile registers - - lqd $80, 2*16($3) - lqd $81, 3*16($3) - lqd $82, 4*16($3) - lqd $83, 5*16($3) - lqd $84, 6*16($3) - lqd $85, 7*16($3) - lqd $86, 8*16($3) - lqd $87, 9*16($3) - lqd $88, 10*16($3) - lqd $89, 11*16($3) - lqd $90, 12*16($3) - lqd $91, 13*16($3) - lqd $92, 14*16($3) - lqd $93, 15*16($3) - lqd $94, 16*16($3) - lqd $95, 17*16($3) - lqd $96, 18*16($3) - lqd $97, 19*16($3) - lqd $98, 20*16($3) - lqd $99, 21*16($3) - lqd $100, 22*16($3) - lqd $101, 23*16($3) - lqd $102, 24*16($3) - lqd $103, 25*16($3) - lqd $104, 26*16($3) - lqd $105, 27*16($3) - lqd $106, 28*16($3) - lqd $107, 29*16($3) - lqd $108, 30*16($3) - lqd $109, 31*16($3) - - hbr longjmp_ret, $0 - - lqd $110, 32*16($3) - lqd $111, 33*16($3) - lqd $112, 34*16($3) - lqd $113, 35*16($3) - lqd $114, 36*16($3) - lqd $115, 37*16($3) - lqd $116, 38*16($3) - lqd $117, 39*16($3) - lqd $118, 40*16($3) - lqd $119, 41*16($3) - lqd $120, 42*16($3) - lqd $121, 43*16($3) - lqd $122, 44*16($3) - lqd $123, 45*16($3) - lqd $124, 46*16($3) - lqd $125, 47*16($3) - - ceqi $5, $4, 0 - lqd $126, 48*16($3) - lqd $127, 49*16($3) - - sf $3, $5, $4 - -longjmp_ret: - bi $0 - .size longjmp, .-longjmp - diff --git a/lib/machine/spu/setvbuf.c b/lib/machine/spu/setvbuf.c deleted file mode 100644 index 91c1cf3..0000000 --- a/lib/machine/spu/setvbuf.c +++ /dev/null @@ -1,70 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -typedef struct -{ - int fp; - unsigned int pad0[ 3 ]; - char *buf; - unsigned int pad1[ 3 ]; - int mode; - unsigned int pad2[ 3 ]; - size_t size; - unsigned int pad3[ 3 ]; -} c99_setvbuf_t; - -#ifndef _REENT_ONLY - -int -setvbuf (FILE * fp, - char *buf, - int mode, - size_t size) -{ - c99_setvbuf_t args; - - CHECK_INIT(_REENT); - - args.fp = fp->_fp; - args.buf = buf; - args.mode = mode; - args.size = size; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_SETVBUF, &args); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/siprintf.S b/lib/machine/spu/siprintf.S deleted file mode 100644 index 9463501..0000000 --- a/lib/machine/spu/siprintf.S +++ /dev/null @@ -1,32 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#define sprintf siprintf -#include "sprintf.S" diff --git a/lib/machine/spu/siscanf.S b/lib/machine/spu/siscanf.S deleted file mode 100644 index 4f8755f..0000000 --- a/lib/machine/spu/siscanf.S +++ /dev/null @@ -1,32 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#define sscanf siscanf -#include "sscanf.S" diff --git a/lib/machine/spu/sleep.c b/lib/machine/spu/sleep.c deleted file mode 100644 index f3aa979..0000000 --- a/lib/machine/spu/sleep.c +++ /dev/null @@ -1,18 +0,0 @@ -/* Copied from libc/posix/sleep.c, removed the check for HAVE_NANOSLEEP */ - -/* Written 2000 by Werner Almesberger */ - -#include -#include -#include - -unsigned sleep(unsigned seconds) -{ - struct timespec ts; - - ts.tv_sec = seconds; - ts.tv_nsec = 0; - if (!nanosleep(&ts,&ts)) return 0; - if (errno == EINTR) return ts.tv_sec; - return -1; -} diff --git a/lib/machine/spu/sniprintf.S b/lib/machine/spu/sniprintf.S deleted file mode 100644 index e62278e..0000000 --- a/lib/machine/spu/sniprintf.S +++ /dev/null @@ -1,32 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#define snprintf sniprintf -#include "snprintf.S" diff --git a/lib/machine/spu/snprintf.S b/lib/machine/spu/snprintf.S deleted file mode 100644 index 17d03e3..0000000 --- a/lib/machine/spu/snprintf.S +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#include "c99ppe.h" - - .text - .align 4 - GLOBL snprintf - .type snprintf, @function -snprintf: - stqd $0, 16($sp) /* save caller address */ - il $2, 3 /* number of fixed arguments */ - brsl $0, __stack_reg_va /* save register to the stack frame */ - - il $3, SPE_C99_SIGNALCODE - il $4, SPE_C99_VSNPRINTF - ai $5, $sp, 16*2 /* data ($3 save address) */ - brsl $0, __send_to_ppe - - il $2, 16*(SPE_STACK_REGS+2+2) - a $sp, $sp, $2 - lqd $0, 16($sp) /* load caller address */ - bi $0 /* return to caller */ - .size snprintf, .-snprintf diff --git a/lib/machine/spu/sprintf.S b/lib/machine/spu/sprintf.S deleted file mode 100644 index 9464aed..0000000 --- a/lib/machine/spu/sprintf.S +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#include "c99ppe.h" - - .text - .align 4 - GLOBL sprintf - .type sprintf, @function -sprintf: - stqd $0, 16($sp) /* save caller address */ - il $2, 2 /* number of fixed arguments */ - brsl $0, __stack_reg_va /* save register to the stack frame */ - - il $3, SPE_C99_SIGNALCODE - il $4, SPE_C99_VSPRINTF - ai $5, $sp, 16*2 /* data ($3 save address) */ - brsl $0, __send_to_ppe - - il $2, 16*(SPE_STACK_REGS+2+2) - a $sp, $sp, $2 - lqd $0, 16($sp) /* load caller address */ - bi $0 /* return to caller */ - .size sprintf, .-sprintf diff --git a/lib/machine/spu/spu-gmon.c b/lib/machine/spu/spu-gmon.c deleted file mode 100644 index 5709bf6..0000000 --- a/lib/machine/spu/spu-gmon.c +++ /dev/null @@ -1,440 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Ken Werner -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* Magic cookie. */ -#define GMON_MAGIC_COOKIE "gmon" - -/* Version number. */ -#define GMON_VERSION 1 - -/* Fraction of text space to allocate for histogram counters. */ -#define HISTFRACTION 4 - -/* Histogram counter type. */ -#define HISTCOUNTER unsigned short - -/* Fraction of text space to allocate for "from" hash buckets. HASHFRACTION is - based on the minimum number of bytes of separation between two subroutine - call points in the object code. */ -#define HASHFRACTION 4 - -/* Percent of text space to allocate for tostructs with a minimum. */ -#define ARCDENSITY 3 - -/* Minimal amount of arcs. */ -#define MINARCS 50 - -/* Rounding macros. */ -#define ROUNDDOWN(x,y) (((x)/(y))*(y)) -#define ROUNDUP(x,y) ((((x)+(y)-1)/(y))*(y)) - -/* Sampling rate in Hertz. */ -#define SAMPLE_INTERVAL 100 - -/* Tag definitions for the gmon.out sub headers. */ -#define GMON_TAG_TIME_HIST 0 -#define GMON_TAG_CG_ARC 1 - -struct tostruct -{ - uintptr_t selfpc; - long count; - unsigned short link; -}; - -struct gmon_hdr -{ - char cookie[4]; - int32_t version; - char spare[3 * 4]; -}; - -struct gmon_hist_hdr -{ - uintptr_t low_pc; - uintptr_t high_pc; - int32_t hist_size; - int32_t prof_rate; - char dimen[15]; - char dimen_abbrev; -} __attribute__ ((packed)); - -struct rawarc -{ - uintptr_t raw_frompc; - uintptr_t raw_selfpc; - long raw_count; -} __attribute__ ((packed)); - -/* start and end of the text section */ -extern char _start; -extern char _etext; - -/* EAR entry for the starting address of SPE executable image. */ -extern const unsigned long long _EAR_; -asm (".section .toe,\"a\",@nobits\n\r" - ".align 4\n\r" - ".type _EAR_, @object\n\r" - ".size _EAR_, 16\n" "_EAR_: .space 16\n" ".previous"); - -/* froms are indexing tos */ -static __ea unsigned short *froms; -static __ea struct tostruct *tos = 0; -static long tolimit = 0; -static uintptr_t s_lowpc = 0; -static uintptr_t s_highpc = 0; -static unsigned long s_textsize = 0; - -static int fd; -static int hist_size; -static int timer_id; - -void -__sample (int id) -{ - unsigned int pc; - unsigned int pc_backup; - off_t offset; - unsigned short val; - - if (id != timer_id) - return; - - /* Fetch program counter. */ - pc = spu_read_srr0 () & ~3; - pc_backup = pc; - if (pc < s_lowpc || pc > s_highpc) - return; - pc -= (uintptr_t) & _start; - offset = pc / HISTFRACTION * sizeof (HISTCOUNTER) + sizeof (struct gmon_hdr) - + 1 + sizeof (struct gmon_hist_hdr); - - /* Read, increment and write the counter. */ - if (pread (fd, &val, 2, offset) != 2) - { - perror ("can't read the histogram"); - return; - } - if (val < USHRT_MAX) - ++val; - if (pwrite (fd, &val, 2, offset) != 2) - { - perror ("can't write the histogram"); - } -} - -static void -write_histogram (int fd) -{ - struct gmon_hist_hdr hist_hdr; - u_char tag = GMON_TAG_TIME_HIST; - hist_hdr.low_pc = s_lowpc; - hist_hdr.high_pc = s_highpc; - hist_hdr.hist_size = hist_size / sizeof (HISTCOUNTER); /* Amount of bins. */ - hist_hdr.prof_rate = 100; /* Hertz. */ - strncpy (hist_hdr.dimen, "seconds", sizeof (hist_hdr.dimen)); - hist_hdr.dimen_abbrev = 's'; - struct iovec iov[2] = { - {&tag, sizeof (tag)}, - {&hist_hdr, sizeof (struct gmon_hist_hdr)} - }; - if (writev (fd, iov, 2) != sizeof (struct gmon_hist_hdr) + sizeof (tag)) - perror ("can't write the histogram header"); - - /* Skip the already written histogram data. */ - lseek (fd, hist_size, SEEK_CUR); -} - -static void -write_callgraph (int fd) -{ - int fromindex, endfrom; - uintptr_t frompc; - int toindex; - struct rawarc rawarc; - u_char tag = GMON_TAG_CG_ARC; - endfrom = s_textsize / (HASHFRACTION * sizeof (*froms)); - for (fromindex = 0; fromindex < endfrom; ++fromindex) - { - if (froms[fromindex]) - { - frompc = s_lowpc + (fromindex * HASHFRACTION * sizeof (*froms)); - for (toindex = froms[fromindex]; toindex != 0; - toindex = tos[toindex].link) - { - rawarc.raw_frompc = frompc; - rawarc.raw_selfpc = tos[toindex].selfpc; - rawarc.raw_count = tos[toindex].count; - struct iovec iov[2] = { - {&tag, sizeof (tag)}, - {&rawarc, sizeof (struct rawarc)} - }; - if (writev (fd, iov, 2) != sizeof (tag) + sizeof (struct rawarc)) - perror ("can't write the callgraph"); - } - } - } -} - -void -__mcleanup (void) -{ - struct gmon_hdr ghdr; - - /* Disable sampling. */ - spu_timer_stop (timer_id); - spu_timer_free (timer_id); - spu_clock_stop (); - - /* Jump to the beginning of the gmon.out file. */ - if (lseek (fd, 0, SEEK_SET) == -1) - { - perror ("Cannot seek to the beginning of the gmon.out file."); - close (fd); - return; - } - - /* Write the gmon.out header. */ - memset (&ghdr, '\0', sizeof (struct gmon_hdr)); - memcpy (&ghdr.cookie[0], GMON_MAGIC_COOKIE, sizeof (ghdr.cookie)); - ghdr.version = GMON_VERSION; - if (write (fd, &ghdr, sizeof (struct gmon_hdr)) == -1) - { - perror ("Cannot write the gmon header to the gmon.out file."); - close (fd); - return; - } - - /* Write the sampling buffer (histogram). */ - write_histogram (fd); - - /* Write the call graph. */ - write_callgraph (fd); - - close (fd); -} - -void -__monstartup (unsigned long long spu_id) -{ - char filename[64]; - s_lowpc = - ROUNDDOWN ((uintptr_t) & _start, HISTFRACTION * sizeof (HISTCOUNTER)); - s_highpc = - ROUNDUP ((uintptr_t) & _etext, HISTFRACTION * sizeof (HISTCOUNTER)); - s_textsize = s_highpc - s_lowpc; - - hist_size = s_textsize / HISTFRACTION * sizeof (HISTCOUNTER); - - /* Allocate froms. */ - froms = malloc_ea (s_textsize / HASHFRACTION); - if (froms == NULL) - { - fprintf (stderr, "Cannot allocate ea memory for the froms array.\n"); - return; - } - memset_ea (froms, 0, s_textsize / HASHFRACTION); - - /* Determine tolimit. */ - tolimit = s_textsize * ARCDENSITY / 100; - if (tolimit < MINARCS) - tolimit = MINARCS; - - /* Allocate tos. */ - tos = malloc_ea (tolimit * sizeof (struct tostruct)); - if (tos == NULL) - { - fprintf (stderr, "Cannot allocate ea memory for the tos array.\n"); - return; - } - memset_ea (tos, 0, tolimit * sizeof (struct tostruct)); - - /* Determine the gmon.out file name. */ - if (spu_id) - snprintf (filename, sizeof (filename), "gmon-%d-%llu-%llu.out", - linux_getpid (), spu_id, _EAR_); - else - strncpy (filename, "gmon.out", sizeof (filename)); - /* Open the gmon.out file. */ - fd = open (filename, O_RDWR | O_CREAT | O_TRUNC, 0644); - if (fd == -1) - { - char errstr[128]; - snprintf (errstr, sizeof (errstr), "Cannot open file: %s", filename); - perror (errstr); - return; - } - /* Truncate the file up to the size where the histogram fits in. */ - if (ftruncate (fd, - sizeof (struct gmon_hdr) + 1 + - sizeof (struct gmon_hist_hdr) + hist_size) == -1) - { - char errstr[128]; - snprintf (errstr, sizeof (errstr), "Cannot truncate file: %s", filename); - perror (errstr); - return; - } - - /* Start the histogram sampler. */ - spu_slih_register (MFC_DECREMENTER_EVENT, spu_clock_slih); - timer_id = spu_timer_alloc (spu_timebase () / SAMPLE_INTERVAL, __sample); - spu_clock_start (); - spu_timer_start (timer_id); - - atexit (__mcleanup); -} - -void -__mcount_internal (uintptr_t frompc, uintptr_t selfpc) -{ - /* sefpc: the address of the function just entered. */ - /* frompc: the caller of the function just entered. */ - unsigned int mach_stat; - __ea unsigned short *frompcindex; - unsigned short toindex; - __ea struct tostruct *top; - __ea struct tostruct *prevtop; - - /* Save current state and disable interrupts. */ - mach_stat = spu_readch(SPU_RdMachStat); - spu_idisable (); - - /* Sanity checks. */ - if (frompc < s_lowpc || frompc > s_highpc) - goto done; - frompc -= s_lowpc; - if (frompc > s_textsize) - goto done; - - /* frompc indexes into the froms array the value at that position indexes - into the tos array. */ - frompcindex = &froms[(frompc) / (HASHFRACTION * sizeof (*froms))]; - toindex = *frompcindex; - if (toindex == 0) - { - /* First time traversing this arc link of tos[0] incremented. */ - toindex = ++tos[0].link; - /* Sanity check. */ - if (toindex >= tolimit) - { - --tos[0].link; - goto done; - } - /* Save the index into the froms array for the next time we traverse this arc. */ - *frompcindex = toindex; - top = &tos[toindex]; - /* Sets the address of the function just entered. */ - top->selfpc = selfpc; - top->count = 1; - top->link = 0; - goto done; - } - - /* toindex points to a tostruct */ - top = &tos[toindex]; - if (top->selfpc == selfpc) - { - /* The arc is at front of the chain. This is the most common case. */ - top->count++; - goto done; - } - - /* top->selfpc != selfpc - The pc we have got is not the pc we already stored (i.e. multiple function - calls to the same fuction within a function. The arc is not at front of - the chain. */ - for (;;) - { - if (top->link == 0) - { - /* We are at the end of the chain and selfpc was not found. Thus we create - a new tostruct and link it to the head of the chain. */ - toindex = ++tos[0].link; - /* Sanity check. */ - if (toindex >= tolimit) - { - --tos[0].link; - goto done; - } - top = &tos[toindex]; - top->selfpc = selfpc; - top->count = 1; - /* Link back to the old tos entry. */ - top->link = *frompcindex; - /* Store a link to the new top in the froms array which makes the - current tos head of the chain. */ - *frompcindex = toindex; - goto done; - } - else - { - /* Otherwise check the next arc on the chain. */ - prevtop = top; - top = &tos[top->link]; - if (top->selfpc == selfpc) - { - /* selfpc matches; increment its count. */ - top->count++; - /* Move it to the head of the chain. */ - /* Save previous tos index. */ - toindex = prevtop->link; - /* Link the former to to the current tos. */ - prevtop->link = top->link; - /* Link back to the old tos entry. */ - top->link = *frompcindex; - /* Store a link to the new top in the froms array which makes the - current tos head of the chain. */ - *frompcindex = toindex; - goto done; - } - } - } -done: - /* Enable interrupts if necessary. */ - if (__builtin_expect (mach_stat & 1, 0)) - spu_ienable (); -} diff --git a/lib/machine/spu/spu-mcount.S b/lib/machine/spu/spu-mcount.S deleted file mode 100644 index 624dc76..0000000 --- a/lib/machine/spu/spu-mcount.S +++ /dev/null @@ -1,93 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Ken Werner -*/ - -/* _mcount extracts the address of the function just entered and the address - of the caller of that function and then calls __mcount_internal. The - prologue calls mcount without saving any registers. The return address is - stored in $75. The _mcount function has to: - - create a new stack frame - - save registers $2 to $75 on the stack - - copy the two addresses ($0 and $75) into the argument registers $3 and $4 - - call __mcount_internal - - restore registers - - return to $75 */ - -/* The following two convenience macros assist in the coding of the - saving and restoring the register. - - saveregs first, last Saves registers from first to the last. - restoreregs first, last Restores registers from last down to first. - - Note: first must be less than or equal to last. */ -.macro saveregs first, last - stqd $\first, \first*16($SP) -.if \last-\first - saveregs "(\first+1)",\last -.endif -.endm - -.macro restoreregs first, last - lqd $\last, \last*16($SP) -.if \last-\first - restoreregs \first,"(\last-1)" -.endif -.endm - -/* _mcount needs to be resident since the overlay manager uses the scratch - registers too. */ -.text - .align 3 /* 8 byte alignment. */ - .global _mcount - .type _mcount, @function - -_mcount: - stqd $lr, 16($sp) /* Save link register in the callers stack frame. */ - stqd $lr, -1216($sp) /* Store back pointer. */ - il $lr, -1216 /* Push a new stack frame. */ - a $sp, $sp, $lr /* Frame size: 16 * (74 + 2) = 1216. */ - - /* Save registers $2 to $75 on the stack. */ - saveregs 2, 75 - - /* Bring the __mcount_internal arguments in place. */ - lqd $3, 1232($sp) /* frompc (the link register). */ - ori $4, $75, 0 /* selfpc (the gcc prologue puts "brsl $75, _mcount" in - front of every function). */ - brsl $lr, __mcount_internal - - /* Restore register $2 to $75 from the stack. */ - restoreregs 2, 75 - - il $lr, 1216 - a $sp, $sp, $lr /* Pop the stack frame. */ - lqd $lr, 16($sp) /* Restore link register. */ - bi $75 /* Branch to the called function. */ diff --git a/lib/machine/spu/spu_clock_stop.c b/lib/machine/spu/spu_clock_stop.c deleted file mode 100644 index da31b42..0000000 --- a/lib/machine/spu/spu_clock_stop.c +++ /dev/null @@ -1,67 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -/* SPU clock stop library service. */ -#include -#include "spu_timer_internal.h" - -/* Stops the SPU clock: - * decrements clock start count - * when count is zero, disables the decrementer event and stops the - decrementer - Returns 0 on success and <0 on failure: - * SPU_CLOCK_ERR_NOT_RUNNING - clock was already off - * SPU_CLOCK_ERR_TIMERS_ACTIVE - active timers exist - * SPU_CLOCK_ERR_STILL_RUNNING - start count was decremented but clock was - not stopped */ -int -spu_clock_stop (void) -{ - if (__spu_clock_startcnt == 0) - return SPU_CLOCK_ERR_NOT_RUNNING; - - if (__spu_clock_startcnt == 1 && (__spu_timers_active || __spu_timers_handled)) - return SPU_CLOCK_ERR_TIMERS_ACTIVE; - - /* Don't stop clock if the clock is still in use. */ - if (--__spu_clock_startcnt != 0) - return SPU_CLOCK_ERR_STILL_RUNNING; - - /* Clock stopped, stop decrementer. */ - __disable_spu_decr (); - - /* Clock is enabled on clock start - restore to original state (saved at start). */ - if (__likely (!__spu_clock_state_was_enabled)) - { - spu_idisable (); - } - - return 0; -} diff --git a/lib/machine/spu/spu_clock_svcs.c b/lib/machine/spu/spu_clock_svcs.c deleted file mode 100644 index 6cc2af4..0000000 --- a/lib/machine/spu/spu_clock_svcs.c +++ /dev/null @@ -1,93 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -/* SPU clock start and read library services. */ -#include -#include "spu_timer_internal.h" - -/* The software managed timebase value. */ -volatile uint64_t __spu_tb_val __attribute__ ((aligned (16))); - -/* Timeout value of the current interval. */ -volatile int __spu_tb_timeout __attribute__ ((aligned (16))); - -/* Clock start count (clock is running if >0). */ -volatile unsigned __spu_clock_startcnt __attribute__ ((aligned (16))); - -/* Saved interrupt state from clock_start. */ -volatile unsigned __spu_clock_state_was_enabled; - -/* Initializes the software managed timebase, enables the decrementer event, - starts the decrementer and enables interrupts. Must be called before - clock or timer services can be used. Should only be called by base app/lib - code (not from an interrupt/timer handler). - Returns with interrupts ENABLED. */ -void -spu_clock_start (void) -{ - /* Increment clock start and return if it was already running. */ - if (++__spu_clock_startcnt > 1) - return; - - __spu_clock_state_was_enabled = spu_readch (SPU_RdMachStat) & 0x1; - - spu_idisable (); - __spu_tb_timeout = CLOCK_START_VALUE; - __spu_tb_val = 0; - - /* Disable, write, enable the decrementer. */ - __enable_spu_decr (__spu_tb_timeout, __disable_spu_decr ()); - - spu_ienable (); - - return; -} - -/* Returns a monotonically increasing, 64-bit counter, in timebase units, - relative to the last call to spu_clock_start(). */ -uint64_t -spu_clock_read (void) -{ - int64_t time; - unsigned was_enabled; - - /* Return 0 if clock is off. */ - if (__spu_clock_startcnt == 0) - return 0LL; - - was_enabled = spu_readch (SPU_RdMachStat) & 0x1; - spu_idisable (); - - time = __spu_tb_val + (__spu_tb_timeout - spu_readch (SPU_RdDec)); - - if (__likely (was_enabled)) - spu_ienable (); - return time; -} diff --git a/lib/machine/spu/spu_timebase.c b/lib/machine/spu/spu_timebase.c deleted file mode 100644 index cb8f34d..0000000 --- a/lib/machine/spu/spu_timebase.c +++ /dev/null @@ -1,51 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include - -/* This function queries /proc/cpuinfo and returns the SPU time base in - Hertz. */ -unsigned int -spu_timebase (void) -{ - FILE *f; - unsigned tb = 0; - char line[64]; - if ((f = fopen ("/proc/cpuinfo", "r"))) - { - while (fgets (line, sizeof (line), f)) - if (sscanf (line, "timebase : %u", &tb)) - break; - fclose (f); - } - return (tb); -} - diff --git a/lib/machine/spu/spu_timer_flih.S b/lib/machine/spu/spu_timer_flih.S deleted file mode 100644 index 63f5f07..0000000 --- a/lib/machine/spu/spu_timer_flih.S +++ /dev/null @@ -1,152 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -/* First-level interrupt handler. */ - -/* The following two convenience macros assist in the coding of the - saving and restoring the volatile register starting from register - 2 up to register 79. - - saveregs first, last Saves registers from first to the last. - restoreregs first, last Restores registers from last down to first. - - Note: first must be less than or equal to last. */ - -.macro saveregs first, last - stqd $\first, -(STACK_SKIP+\first)*16($SP) -.if \last-\first - saveregs "(\first+1)",\last -.endif -.endm - - -.macro restoreregs first, last - lqd $\last, (82-\last)*16($SP) -.if \last-\first - restoreregs \first,"(\last-1)" -.endif -.endm - - .section .interrupt,"ax" - .align 3 - .type spu_flih, @function -spu_flih: - /* Adjust the stack pointer to skip the maximum register save area - (STACK_SKIP quadword registers) in case an interrupt occurred while - executing a leaf function that used the stack area without actually - allocating its own stack frame. */ - .set STACK_SKIP, 125 - - /* Save the current link register on a new stack frame for the - normal spu_flih() version of this file. */ - stqd $0, -(STACK_SKIP+80)*16($SP) - stqd $SP, -(STACK_SKIP+82)*16($SP) /* Save back chain pointer. */ - - saveregs 2, 39 - - il $2, -(STACK_SKIP+82)*16 /* Stack frame size. */ - rdch $3, $SPU_RdEventStat /* Read event status. */ - - rdch $6, $SPU_RdEventMask /* Read event mask. */ - hbrp /* Open a slot for instruction prefetch. */ - - saveregs 40,59 - - clz $4, $3 /* Get first slih index. */ - stqd $6, -(STACK_SKIP+1)*16($SP) /* Save event mask on stack. */ - - saveregs 60, 67 - - /* Do not disable/ack the decrementer event here. - The timer library manages this and expects it - to be enabled upon entry to the SLIH. */ - il $7, 0x20 - andc $5, $3, $7 - andc $7, $6, $5 /* Clear event bits. */ - saveregs 68, 69 - - wrch $SPU_WrEventAck, $3 /* Ack events(s) - include decrementer event. */ - wrch $SPU_WrEventMask, $7 /* Disable event(s) - exclude decrementer event. */ - - saveregs 70, 79 - - a $SP, $SP, $2 /* Instantiate flih stack frame. */ -next_event: - /* Fetch and dispatch the event handler for the first non-zero event. The - dispatch handler is indexed into the __spu_slih_handlers array using the - count of zero off the event status as an index. */ - ila $5, __spu_slih_handlers /* Slih array offset. */ - - shli $4, $4, 2 /* Slih entry offset. */ - lqx $5, $4, $5 /* Load slih address. */ - rotqby $5, $5, $4 /* Rotate to word 0. */ - bisl $0, $5 /* Branch to slih. */ - - clz $4, $3 /* Get next slih index. */ - brnz $3, next_event - - - lqd $2, 81*16($SP) /* Read event mask from stack. */ - - restoreregs 40, 79 - - wrch $SPU_WrEventMask, $2 /* Restore event mask. */ - hbrp /* Open a slot for instruction pre-fetch. */ - - restoreregs 2, 39 - - /* Restore the link register from the new stack frame for the - normal spu_flih() version of this file. */ - lqd $0, 2*16($SP) - - lqd $SP, 0*16($SP) /* restore stack pointer from back chain ptr. */ - - irete /* Return from interrupt and re-enable interrupts. */ - .size spu_flih, .-spu_flih -/* spu_slih_handlers[] - Here we initialize 33 default event handlers. The first entry in this array - corresponds to the event handler for the event associated with bit 0 of - Channel 0 (External Event Status). The 32nd entry in this array corresponds - to bit 31 of Channel 0 (DMA Tag Status Update Event). The 33rd entry in - this array is a special case entry to handle "phantom events" which occur - when the channel count for Channel 0 is 1, causing an asynchronous SPU - interrupt, but the value returned for a read of Channel 0 is 0. The index - calculated into this array by spu_flih() for this case is 32, hence the - 33rd entry. */ -.data - .align 4 - .extern __spu_default_slih - .global __spu_slih_handlers - .type __spu_slih_handlers, @object -__spu_slih_handlers: - .rept 33 - .long __spu_default_slih - .endr - .size __spu_slih_handlers, .-__spu_slih_handlers diff --git a/lib/machine/spu/spu_timer_free.c b/lib/machine/spu/spu_timer_free.c deleted file mode 100644 index 9fb3e0c..0000000 --- a/lib/machine/spu/spu_timer_free.c +++ /dev/null @@ -1,86 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -/* SPU timer free library service. */ -#include -#include "spu_timer_internal.h" - - -/* Frees an allocated timer. The timer must be in the stopped state for this - to succeed. Maybe be called: - * after allocated, before it's started - * after it's been explicitly stopped - Returns 0 on success, timer sucessfully deallocated. Returns <0 on failure - * SPU_TIMER_INVALID_ID - id out of range - * SPU_TIMER_ERR_FREE - id in free state - * SPU_TIMER_ERR_ACTIVE - id in handled or active state */ -int -spu_timer_free (int id) -{ - spu_timer_t *t, **pn; - unsigned was_enabled; - - if (id < 0 || id >= SPU_TIMER_NTIMERS) - return SPU_TIMER_ERR_INVALID_ID; - - if (__spu_timers[id].state == SPU_TIMER_STOPPED) - { - - was_enabled = spu_readch (SPU_RdMachStat) & 0x1; - spu_idisable (); - - t = __spu_timers_stopped; - pn = &__spu_timers_stopped; - - while (t && (t->id != id)) - { - pn = &t->next; - t = t->next; - } -#ifdef SPU_TIMER_DEBUG - if (!t) - ABORT (); -#endif - *pn = t->next; - - /* Add timer back to free list (mask). */ - __spu_timers_avail |= (1 << (id)); - __spu_timers[id].state = SPU_TIMER_FREE; - - if (__likely (was_enabled)) - spu_ienable (); - - return 0; - } - - /* Handle invalid states. */ - return (__spu_timers[id].state == SPU_TIMER_FREE) ? - SPU_TIMER_ERR_FREE : SPU_TIMER_ERR_ACTIVE; -} diff --git a/lib/machine/spu/spu_timer_internal.h b/lib/machine/spu/spu_timer_internal.h deleted file mode 100644 index 132235a..0000000 --- a/lib/machine/spu/spu_timer_internal.h +++ /dev/null @@ -1,140 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -/* Internal definitions for SPU timer library. */ -#ifndef _SPU_TIMER_INTERNAL_H_ -#define _SPU_TIMER_INTERNAL_H_ - -#include -#include -#include -#include - -#ifdef SPU_TIMER_DEBUG -#include -#include -#endif - -/* The timer state tells which list its on. */ -typedef enum spu_timer_state -{ - SPU_TIMER_FREE = 0, - SPU_TIMER_ACTIVE = 1, - SPU_TIMER_HANDLED = 2, - SPU_TIMER_STOPPED = 3 -} spu_timer_state_t; - -typedef struct spu_timer -{ - int tmout __attribute__ ((__aligned__ (16))); /* Time until expiration (tb). */ - int intvl __attribute__ ((__aligned__ (16))); /* Interval. */ - int id __attribute__ ((__aligned__ (16))); - spu_timer_state_t state __attribute__ ((__aligned__ (16))); - void (*func) (int) __attribute__ ((__aligned__ (16))); /* Handler. */ - struct spu_timer *next __attribute__ ((__aligned__ (16))); -} spu_timer_t; - - -/* Max decrementer value. */ -#define DECR_MAX 0xFFFFFFFFU - - /* Arbitrary non-triggering value. */ -#define CLOCK_START_VALUE 0x7FFFFFFF - -#define MIN_INTVL 1 -#define MAX_INTVL INT_MAX - -/* Timers within 15 tics will expire together. */ -#define TIMER_INTERVAL_WINDOW 15 - -/* Disables the decrementer and returns the saved event mask for a subsequent - call to __enable_spu_decr. The decrementer interrupt is acknowledged in the - flih when the event is received, but is required also as part of the - procedure to stop the decrementer. */ -static inline unsigned -__disable_spu_decr (void) -{ - unsigned mask = spu_readch (SPU_RdEventMask); - spu_writech (SPU_WrEventMask, mask & ~MFC_DECREMENTER_EVENT); - spu_writech (SPU_WrEventAck, MFC_DECREMENTER_EVENT); - spu_sync_c (); - return mask; -} - -/* Writes and enables the decrementer, along with the given event mask. */ -static inline void -__enable_spu_decr (int val, unsigned mask) -{ - spu_writech (SPU_WrDec, (val)); - spu_writech (SPU_WrEventMask, mask | MFC_DECREMENTER_EVENT); - spu_sync_c (); -} - -/* These are shared between modules but are not inlined, to save space. */ -extern void __spu_timer_start (int id, int reset); -extern void __reset_spu_decr (int val); - -/* The timers. */ -extern spu_timer_t __spu_timers[]; - -/* Active timer list. */ -extern spu_timer_t *__spu_timers_active; - -/* Stopped (allocated) timer list. */ -extern spu_timer_t *__spu_timers_stopped; - -/* List of timers being handled. */ -extern spu_timer_t *__spu_timers_handled; - -/* Bitmask of available timers. */ -extern unsigned __spu_timers_avail; - -/* The software managed timebase value. */ -extern volatile uint64_t __spu_tb_val; - -/* Timeout value of the current interval. */ -extern volatile int __spu_tb_timeout; - -/* Clock start count (clock is running if >0). */ -extern volatile unsigned __spu_clock_startcnt; - -/* Saved interrupt state from clock_start. */ -extern volatile unsigned __spu_clock_state_was_enabled; - -#define __likely(_c) __builtin_expect((_c), 1) -#define __unlikely(_c) __builtin_expect((_c), 0) - -#define ABORT() \ -{\ - fprintf(stderr, "Internal error, aborting: %s:%d\n", __FILE__, __LINE__);\ - assert(0);\ -} - -#endif diff --git a/lib/machine/spu/spu_timer_slih.c b/lib/machine/spu/spu_timer_slih.c deleted file mode 100644 index 8b54b13..0000000 --- a/lib/machine/spu/spu_timer_slih.c +++ /dev/null @@ -1,221 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -/* Second Level Interrupt handler and related services for SPU timers. */ -#include "spu_timer_internal.h" -/* Resets decrementer to the specified value. Also updates software timebase - to account for the time between the last decrementer reset and now. There - are two cases: - * Called by application to start a new timer. - * Called by spu_clock to active the next timer. - In both cases, the amount of time is the current interval timeout minus the - current decrementer value. */ -void -__reset_spu_decr (int val) -{ - - /* The interrupt occurs when the msb goes from 0 to 1 or when the decrementer - goes from 0 to -1. To be precisely accurate we should set the timer to - the intverval -1, unless the interval passed in is 0 in which case it - should be left at 0. */ - int enable_val = (__likely (val)) ? val - 1 : 0; - - /* Decrementer must be stopped before writing it - minimize the time - stopped. */ - unsigned mask = __disable_spu_decr (); - - /* Perform tb correction before resettting the decrementer. the corrected - value is the current timeout value minus the current decrementer value. - Occasionally the read returns 0 - a second read will clear this - condition. */ - spu_readch (SPU_RdDec); - int decval = spu_readch (SPU_RdDec); - /* Restart decrementer with next timeout val. */ - __enable_spu_decr (enable_val, mask); - - /* Update the timebase values before enabling for interrupts. */ - __spu_tb_val += __spu_tb_timeout - decval; - __spu_tb_timeout = enable_val; -} - -/* Update software timebase and timeout value for the 'next to expire' timer. - Called when starting a new timer so the timer list will have timeouts - relative to the current time. */ -static inline void -__update_spu_tb_val (void) -{ - int elapsed = __spu_tb_timeout - spu_readch (SPU_RdDec); -#ifdef SPU_TIMER_DEBUG - if (elapsed < 0) - ABORT (); -#endif - __spu_tb_val += elapsed; - - /* Adjust the timeout for the timer next to expire. Note this could cause - the timeout to go negative, if it was just about to expire when we called - spu_timer_start. This is OK, since this can happen any time interrupts - are disabled. We just schedule an immediate timeout in this case. */ - if (__spu_timers_active) - { - __spu_timers_active->tmout -= elapsed; - if (__spu_timers_active->tmout < 0) - __spu_timers_active->tmout = 0; - } -} - -/* Add an allocated timer to the active list. The active list is sorted by - timeout value. The timer at the head of the list is the timer that will - expire next. The rest of the timers have a timeout value that is relative - to the timer ahead of it on the list. This relative value is determined - here, when the timer is added to the active list. When its position in the - list is found, the timer's timeout value is set to its interval minus the - sum of all the timeout values ahead of it. The timeout value for the timer - following the newly added timer is then adjusted to a new relative value. If - the newly added timer is at the head of the list, the decrementer is reset. - This function is called by SLIH to restart multiple timers (reset == 0) or - by spu_timer_start() to start a single timer (reset == 1). */ -void -__spu_timer_start (int id, int reset) -{ - spu_timer_t *t; - spu_timer_t **pn; - spu_timer_t *start = &__spu_timers[id]; - unsigned tmout_time = 0; - unsigned my_intvl = start->intvl; - unsigned was_enabled = spu_readch (SPU_RdMachStat) & 0x1; - - spu_idisable (); - - t = __spu_timers_active; - pn = &__spu_timers_active; - - /* If the active list is empty, just add the timer with the timeout set to - the interval. Otherwise find the place in the list for the timer, setting - its timeout to its interval minus the sum of timeouts ahead of it. */ - start->state = SPU_TIMER_ACTIVE; - if (__likely (!t)) - { - __spu_timers_active = start; - start->next = NULL; - start->tmout = my_intvl; - } - else - { - - /* Update swtb and timeout val of the next timer, so all times are - relative to now. */ - if (reset) - __update_spu_tb_val (); - - while (t && (my_intvl >= (tmout_time + t->tmout))) - { - tmout_time += t->tmout; - pn = &t->next;; - t = t->next; - } - start->next = t; - start->tmout = my_intvl - tmout_time; - *pn = start; - - /* Adjust timeout for timer after us. */ - if (t) - t->tmout -= start->tmout; - } - - if (reset && (__spu_timers_active == start)) - __reset_spu_decr (__spu_timers_active->tmout); - - if (__unlikely (was_enabled)) - spu_ienable (); -} - -/* SLIH for decrementer. Manages software timebase and timers. - Called by SPU FLIH. Assumes decrementer is still running - (event not yet acknowledeged). */ -unsigned int -spu_clock_slih (unsigned status) -{ - int decr_reset_val; - spu_timer_t *active, *handled; - unsigned was_enabled = spu_readch (SPU_RdMachStat) & 0x1; - - status &= ~MFC_DECREMENTER_EVENT; - - spu_idisable (); - - /* The decrementer has now expired. The decrementer event was acknowledged - in the FLIH but not disabled. The decrementer will continue to run while - we're running the clock/timer handler. The software clock keeps running, - and accounts for all the time spent running handlers. Add the current - timeout to the software timebase and set the timeout to DECR_MAX. This - allows the "clock read" code to continue to work while we're in here, and - gives us the most possible time to finish before another underflow. */ - __spu_tb_val += __spu_tb_timeout; - __spu_tb_timeout = DECR_MAX; - - /* For all timers that have the current timeout value, move them from the - active list to the handled list and call their handlers. Note that the - handled/stopped lists may be manipulated by the handlers if they wish to - stop/free the timers. Note that only the first expired timer will reflect - the real timeout value; the rest of the timers that had the same timeout - value will have a relative value of zero. */ - if (__spu_timers_active) - { - __spu_timers_active->tmout = 0; - while ((active = __spu_timers_active) - && (active->tmout <= TIMER_INTERVAL_WINDOW)) - { - __spu_timers_active = active->next; - active->next = __spu_timers_handled; - __spu_timers_handled = active; - active->state = SPU_TIMER_HANDLED; - (*active->func) (active->id); - } - } - - /* put the handled timers back on the list and restart decrementer. */ - while ((handled = __spu_timers_handled) != NULL) - { - __spu_timers_handled = handled->next; - __spu_timer_start (handled->id, 0); - } - - /* Reset the decrementer before returning. If we have any active timers, we - set it to the timeout value for the timer at the head of the list, else - the default clock value. */ - decr_reset_val = __spu_timers_active ? __spu_timers_active->tmout : CLOCK_START_VALUE; - - __reset_spu_decr (decr_reset_val); - - if (__likely (was_enabled)) - spu_ienable (); - - return status; -} diff --git a/lib/machine/spu/spu_timer_slih_reg.c b/lib/machine/spu/spu_timer_slih_reg.c deleted file mode 100644 index cd1e86f..0000000 --- a/lib/machine/spu/spu_timer_slih_reg.c +++ /dev/null @@ -1,72 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - - -/* Services for SLIH registration. */ -#include -#include - -#define SPU_EVENT_ID(_mask) \ - (spu_extract(spu_cntlz(spu_promote(_mask, 0)), 0)) -typedef unsigned (*spu_slih_t) (unsigned); - -extern spu_slih_t __spu_slih_handlers[]; - -/* This function is called whenever an event occurs for which no second level - event handler was registered. The default event handler does nothing and - zeros the most significant event bit indicating that the event was processed - (when in reality, it was discarded). */ -unsigned -__spu_default_slih (unsigned events) -{ - unsigned int mse; - - mse = 0x80000000 >> SPU_EVENT_ID (events); - events &= ~mse; - - return (events); -} - -/* Registers a SPU second level interrupt handler for the events specified by - mask. The event mask consists of a set of bits corresponding to the event - status bits (see channel 0 description). A mask containing multiple 1 bits - will set the second level event handler for each of the events. */ -void -spu_slih_register (unsigned mask, spu_slih_t func) -{ - unsigned int id; - - while (mask) - { - id = SPU_EVENT_ID (mask); - __spu_slih_handlers[id] = (func) ? func : __spu_default_slih; - mask &= ~(0x80000000 >> id); - } -} diff --git a/lib/machine/spu/spu_timer_stop.c b/lib/machine/spu/spu_timer_stop.c deleted file mode 100644 index 94286c9..0000000 --- a/lib/machine/spu/spu_timer_stop.c +++ /dev/null @@ -1,101 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -/* SPU timer stop library service. */ -#include -#include "spu_timer_internal.h" - -/* Stop a timer. Moves it from either the active or handled list to the - stopped list. Returns 0 on sucess, timer was successfully stopped. - Returns <0 - Failure: - * SPU_TIMER_ERR_NOT_ACTIVE - timer was not active - * SPU_TIMER_ERR_INVALID_ID - invalid timer id - * SPU_TIMER_ERR_NOCLOCK - spu clock is not running */ -int -spu_timer_stop (int id) -{ - spu_timer_t *t, **pn; - unsigned was_enabled; - - if (id < 0 || id >= SPU_TIMER_NTIMERS) - return SPU_TIMER_ERR_INVALID_ID; - - if (__spu_clock_startcnt == 0) - return SPU_TIMER_ERR_NOCLOCK; - - - /* Free or stopped states. */ - if (__spu_timers[id].state == SPU_TIMER_ACTIVE || - __spu_timers[id].state == SPU_TIMER_HANDLED) - { - was_enabled = spu_readch (SPU_RdMachStat) & 0x1; - spu_idisable (); - - /* Timer is on either active list or handled list. */ - t = (__spu_timers[id].state == SPU_TIMER_ACTIVE) - ? __spu_timers_active : __spu_timers_handled; - - pn = (__spu_timers[id].state == SPU_TIMER_ACTIVE) - ? &__spu_timers_active : &__spu_timers_handled; - - while (t && t->id != id) - { - pn = &t->next; - t = t->next; - } -#ifdef SPU_TIMER_DEBUG - if (!t) - ABORT (); /* Internal error. */ -#endif - /* Fix timeout of next timer and decrementer if we were at the head of - the active list. */ - if (t->next) - { - t->next->tmout += t->tmout; - if (__spu_timers_active == t) - __reset_spu_decr (t->next->tmout); - } - else - __reset_spu_decr (CLOCK_START_VALUE); - - *pn = t->next; /* Update this elements to pointer. */ - t->next = __spu_timers_stopped; - __spu_timers_stopped = t; - - __spu_timers[id].state = SPU_TIMER_STOPPED; - - if (__likely (was_enabled)) - spu_ienable (); - - return 0; - } - - return SPU_TIMER_ERR_NOT_ACTIVE; -} diff --git a/lib/machine/spu/spu_timer_svcs.c b/lib/machine/spu/spu_timer_svcs.c deleted file mode 100644 index 8e7013c..0000000 --- a/lib/machine/spu/spu_timer_svcs.c +++ /dev/null @@ -1,115 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -/* SPU timer start and alloc library services. */ -#include -#include "spu_timer_internal.h" - -/* The timers. */ -spu_timer_t __spu_timers[SPU_TIMER_NTIMERS] __attribute__ ((aligned (16))); - -/* Active timer list. */ -spu_timer_t *__spu_timers_active; - -/* Stopped (allocated) timer list. */ -spu_timer_t *__spu_timers_stopped; - -/* List of timers being handled. */ -spu_timer_t *__spu_timers_handled; - -/* Bitmask of available timers. */ -unsigned __spu_timers_avail = - ((1 << (SPU_TIMER_NTIMERS - 1)) + ((1 << (SPU_TIMER_NTIMERS - 1)) - 1)); - -/* Allocates an SPU interval timer and returns the timer ID. Must be called - before starting a timer. interval specifies the expiration interval in - timebase units. func specifies the function pointer to expiration handler. - Returns the timer ID on success or <0 on Failure: - * SPU_TIMER_ERR_NONE_FREE - no free timers to allocate - * SPU_TIMER_ERR_INVALID_PARM - invalid parm */ -int -spu_timer_alloc (int interval, void (*func) (int)) -{ - unsigned was_enabled; - int id; - if (interval < MIN_INTVL || interval > MAX_INTVL || func == NULL) - return SPU_TIMER_ERR_INVALID_PARM; - - was_enabled = spu_readch (SPU_RdMachStat) & 0x1; - - /* Get id of next available timer. */ - id = spu_extract ((spu_sub ((unsigned) 31, - spu_cntlz (spu_promote - (__spu_timers_avail, 0)))), 0); - - /* No timers avail. */ - if (id == -1) - return SPU_TIMER_ERR_NONE_FREE; - - /* Higher order bits represent lower timer ids. */ - __spu_timers_avail &= ~(1 << (id)); - id = (SPU_TIMER_NTIMERS - 1) - id; - - /* Initialize timer and put it on stopped list. */ - (__spu_timers + id)->func = func; - (__spu_timers + id)->intvl = interval; - (__spu_timers + id)->id = id; - (__spu_timers + id)->state = SPU_TIMER_STOPPED; - - spu_idisable (); - (__spu_timers + id)->next = __spu_timers_stopped; - __spu_timers_stopped = &__spu_timers[id]; - - if (__likely (was_enabled)) - spu_ienable (); - return id; -} - -/* External interface for starting a timer. See description of - __spu_timer_start(). Returns 0 on success and <0 on failure: - * SPU_TIMER_ERR_INVALID_ID - invalid id - * SPU_TIMER_ERR_NOCLOCK - clock is off - * SPU_TIMER_ERR_NOT_STOPPED - timer not in stopped state */ -int -spu_timer_start (int id) -{ - if (id < 0 || id >= SPU_TIMER_NTIMERS) - return SPU_TIMER_ERR_INVALID_ID; - - if (__spu_clock_startcnt == 0) - return SPU_TIMER_ERR_NOCLOCK; - - if (__spu_timers[id].state != SPU_TIMER_STOPPED) - return SPU_TIMER_ERR_NOT_STOPPED; - - __spu_timer_start (id, 1); - - return 0; -} diff --git a/lib/machine/spu/sscanf.S b/lib/machine/spu/sscanf.S deleted file mode 100644 index a3dbb01..0000000 --- a/lib/machine/spu/sscanf.S +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ - -#include "c99ppe.h" - - .text - .align 4 - GLOBL sscanf - .type sscanf, @function -sscanf: - stqd $0, 16($sp) /* save caller address */ - il $2, 2 /* number of fixed arguments */ - brsl $0, __stack_reg_va /* save register to the stack frame */ - - il $3, SPE_C99_SIGNALCODE - il $4, SPE_C99_VSSCANF - ai $5, $sp, 16*2 /* data ($3 save address) */ - brsl $0, __send_to_ppe - - il $2, 16*(SPE_STACK_REGS+2+2) - a $sp, $sp, $2 - lqd $0, 16($sp) /* load caller address */ - bi $0 /* return to caller */ - .size sscanf, .-sscanf diff --git a/lib/machine/spu/stack_reg_va.S b/lib/machine/spu/stack_reg_va.S deleted file mode 100644 index 754e4e6..0000000 --- a/lib/machine/spu/stack_reg_va.S +++ /dev/null @@ -1,170 +0,0 @@ -/* - Copyright (c) 2007, Toshiba Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of Toshiba nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ -/* - * This file contains code use to construct a PIC, spu side, syscall - * function with variable parameters in accordance with the CBE ABI. - * - * This function is equivalent to constructing a va_list structure and - * calling the va_list form of the function. Therefore, for example, - * a printf function stack frame will look like this: - * - * | Stack | high memory - * | Parms | - * | | - * |------------| - * | Link Reg | - * |------------| - * | Back Chain |<-----. <---- input SP - * |------------| | - * | Reg 74 | | - * |------------| | - * | Reg 73 | | - * |------------| | - * // ... // | - * |------------| | - * | Reg 5 | | - * |------------| | - * | Reg 4 |<--. | - * |------------| | | - * va_list.| call_stack |------' - * |------------| | - * va_list.| next_arg |---' - * |------------| - * | format (r3)| <---- start of parameters - * |------------| |------------| - * | stack | | | - * | code | |(Back Chain)| <---- output SP - * | 1-3 qwords | <---- code_ptr `------------' - * `------------' - * low memory - * - * This was written in assembly so that it is smaller than what would - * be produced by using va_start. - */ - -#include "c99ppe.h" - -#define parms $2 /* Number of fixed arguments */ - -#define offset $67 -#define flag $68 -#define regdec $69 -#define link $70 - -#define code_ptr $71 -#define ptr $72 -#define inst $73 -#define tmp $74 - - .text - .global __stack_reg_va - .type __stack_reg_va, @function - -__stack_reg_va: - - /* Save registers 69-74 explicitly so that we have some - * working registers. - */ - stqd $74, 16*(-1)($sp) - stqd $73, 16*(-2)($sp) - stqd $72, 16*(-3)($sp) - stqd $71, 16*(-4)($sp) - stqd $70, 16*(-5)($sp) - stqd $69, 16*(-6)($sp) - - /* Construct self-modifying stack code that saves the remaining - * volatile registers onto the stack. - */ - il regdec, -1 /* for decrement register value in save instruction */ - shlqbyi regdec, regdec, 12 - il tmp, -(SPE_STACK_REGS+2+3)*16 - a code_ptr, $sp, tmp - lqr tmp, save_regs_1 /* store stack code */ - stqd tmp, 0(code_ptr) - lqr inst, save_regs_2 - ai ptr, $sp, 16*(-6) - sync - bisl link, code_ptr /* branch to the constructed stack code */ - - /* Adjust pointer so that it points to the first variable - * argument on the stack. - */ - ai offset, parms, -1 /* offset = parms - 1 */ - mpyi offset, offset, 16 /* offset = offset * 16 */ - a ptr, ptr, offset /* ptr = ptr + offset */ - - /* Store the va_list to the parameter list. - */ - stqd $sp, 16*(-1)(ptr) - stqd ptr, 16*(-2)(ptr) - - /* Make $3 store address. - */ - ai offset, parms, 2 /* offset = parms + 2 */ - mpyi offset, offset, -16 /* offset = offset * -16 */ - a ptr, ptr, offset /* ptr = ptr + offset */ - - /* Save all the fixed (non-variable arguments on the stack) - */ - ceqi flag, parms, 0x01 /* if(parms==1) flag=0xFFFFFFFF */ - brnz flag, reg_3 /* if(flag!=0) jump */ - ceqi flag, parms, 0x02 /* if(parms==2) flag=0xFFFFFFFF */ - brnz flag, reg_4 /* if(flag!=0) jump */ - stqd $5, 16*2(ptr) -reg_4: - stqd $4, 16*1(ptr) -reg_3: - stqd $3, 0(ptr) - - il $3, -16*(SPE_STACK_REGS+2+2) - stqx $sp, $3, $sp /* save back chain */ - a $sp, $sp, $3 - bi $0 /* return to caller */ - -/***************************** stack code *********************************************/ - - /* The following code is copied into the stack for re-entract, - * self-modified, code execution. This code copies the volatile - * registers into a va_list parameter array. - */ - .balignl 16, 0 -save_regs_1: - stqd inst, 16(code_ptr) /* store instruction */ - sync - a inst, inst, regdec /* decrement register number in the instruction */ - ceqbi tmp, inst, 3 /* if (reg-num == 3) tmp = 0x000000FF 000..0 */ -save_regs_2: - stqd $68, -16(ptr) - ai ptr, ptr, -16 - brz tmp, save_regs_1 /* if (tmp == 0) jump */ - bi link /* finish to make va_list */ - - .size __stack_reg_va, .-__stack_reg_va - diff --git a/lib/machine/spu/stdio.c b/lib/machine/spu/stdio.c deleted file mode 100644 index fd45b00..0000000 --- a/lib/machine/spu/stdio.c +++ /dev/null @@ -1,84 +0,0 @@ -/* -Copyright (C) 2007 Sony Computer Entertainment Inc. -Copyright 2007 Sony Corp. - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Kazunori Asayama -*/ - -#include - -#include "c99ppe.h" - - -static FILE __fp[SPE_FOPEN_MAX]; - -FILE * -__sfp (struct _reent *d) -{ - int i; - for (i = 0; i < SPE_FOPEN_MAX; i++) { - if (!__fp[i]._fp) { - return &__fp[i]; - } - } - _REENT_ERRNO(d) = EMFILE; - return NULL; -} - -static void -__cleanup (struct _reent *s) -{ - int i; - for (i = 0; i < SPE_FOPEN_MAX; i++) { - if (__fp[i]._fp) { - fclose(&__fp[i]); - } - } -} - -void -__sinit (struct _reent *s) -{ - _REENT_CLEANUP(s) = __cleanup; - - _REENT_STDIN(s) = &s->__sf[0]; - _REENT_STDIN(s)->_fp = SPE_STDIN; - - _REENT_STDOUT(s) = &s->__sf[1]; - _REENT_STDOUT(s)->_fp = SPE_STDOUT; - - _REENT_STDERR(s) = &s->__sf[2]; - _REENT_STDERR(s)->_fp = SPE_STDERR; -} - -void -__check_init (void) -{ - CHECK_INIT(_REENT); -} diff --git a/lib/machine/spu/straddr.h b/lib/machine/spu/straddr.h deleted file mode 100644 index 3de594d..0000000 --- a/lib/machine/spu/straddr.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - (C) Copyright 2008 - International Business Machines Corporation, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include "vec_literal.h" - -/* - * Supply the inline _straddr for use by strncpy and strncat. -* -* _straddr: search the string s, and return the address of the first byte -* containing zero. -*/ -static inline char *_straddr(const char *s) -{ - unsigned int cnt, cmp, skip, mask; - vec_uchar16 *ptr, data; - - /* - * Compensate for unaligned strings. - */ - ptr = (vec_uchar16 *)s; /* implicit (s & ~0xf) */ - skip = (unsigned int)(ptr) & 0xf; - /* - * skip the first skip bytes starting at (s & ~0xf). - */ - mask = 0xFFFF >> skip; - - data = *ptr; - cmp = spu_extract(spu_gather(spu_cmpeq(data, 0)), 0); - cmp &= mask; - - cnt = spu_extract(spu_cntlz(spu_promote(cmp, 0)), 0); - - while (cnt == 32) { - data = *++ptr; - cnt = spu_extract(spu_cntlz(spu_gather(spu_cmpeq(data, 0))), 0); - /* - * The first 16 bits for gather on a byte vector are zero, so if cnt - * is 32, none of the 16 bytes in data was zero. And, there are (cnt - - * 16) non-zero bytes in data. - */ - } - /* - * The first non-zero byte is at ptr aligned down plus the number of - * non-zero bytes seen. - */ - return ((char*) (((int) ptr & ~0xf) + (cnt - 16))); -} diff --git a/lib/machine/spu/strcat.c b/lib/machine/spu/strcat.c deleted file mode 100644 index 9a5185c..0000000 --- a/lib/machine/spu/strcat.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - (C) Copyright 2008 - International Business Machines Corporation, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include -#include "straddr.h" -#include "strcpy.h" - -/* - * Appends the string pointed to by src (up to and including the /0 - * character) to the array pointed to by dest overwriting the - * /0 character at the end of dest. The strings may not overlap and - * the dest string must have enough space for the result. - */ -char *strcat(char * __restrict__ dest, const char * __restrict__ src) -{ - _strncpy(_straddr(dest), src, 0, 0, 0); - return dest; -} diff --git a/lib/machine/spu/strcat_ea.c b/lib/machine/spu/strcat_ea.c deleted file mode 100644 index f6178e4..0000000 --- a/lib/machine/spu/strcat_ea.c +++ /dev/null @@ -1,55 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include "ea_internal.h" -#include - -COMPAT_EA_ALIAS (strcat_ea); - -/* - * Maybe not the fastest thing ever since it reads through the data once on - * strlen and once on memcpy, but it should work. - */ -__ea char * -strcat_ea (__ea char *dest, __ea const char *src) -{ - size_ea_t length_src; - size_ea_t length_dest; - __ea char *new_dest; - - length_src = strlen_ea (src); - length_dest = strlen_ea (dest); - new_dest = dest + length_dest; - memcpy_ea ((__ea void *) new_dest, (__ea void *) src, length_src + 1); - return dest; -} diff --git a/lib/machine/spu/strchr.c b/lib/machine/spu/strchr.c deleted file mode 100644 index dc93d60..0000000 --- a/lib/machine/spu/strchr.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include - -/* Scans the string pointed to by s for the character c and - * returns a pointer to the first occurance of c. If - * c is not found, then NULL is returned. - */ -char *strchr(const char *s, int c) -{ - unsigned int cmp, skip; - vec_uchar16 *ptr, data, vc; - vec_uint4 cmp_c, cmp_0; - vec_uint4 result; - vec_uint4 mask; - vec_uint4 one = spu_splats(0xffffU); - /* Scan memory array a quadword at a time. Skip leading - * mis-aligned bytes. - */ - ptr = (vec_uchar16 *)s; - - skip = (unsigned int)(ptr) & 15; - mask = spu_rlmask(one, -skip); - - vc = spu_splats((unsigned char)(c)); - - data = *ptr++; - - cmp_c = spu_and(spu_gather(spu_cmpeq(data, vc)), mask); - cmp_0 = spu_and(spu_gather(spu_cmpeq(data, 0)), mask); - - cmp = spu_extract(spu_or(cmp_c, cmp_0), 0); - - while (cmp == 0) { - data = *ptr++; - cmp_c = spu_gather(spu_cmpeq(data, vc)); - cmp_0 = spu_gather(spu_cmpeq(data, 0)); - - cmp = spu_extract(spu_or(cmp_c, cmp_0), 0); - } - - /* Compute the location of the first character. If it is beyond - * the end of the string, then return NULL. - */ - result = spu_add(spu_promote((unsigned int)ptr - (skip+32), 0), - spu_cntlz(spu_promote(cmp, 0))); - - result = spu_andc(result, spu_cmpgt(cmp_0, cmp_c)); - - return ((char *)spu_extract(result, 0)); -} diff --git a/lib/machine/spu/strchr_ea.c b/lib/machine/spu/strchr_ea.c deleted file mode 100644 index 6c751c8..0000000 --- a/lib/machine/spu/strchr_ea.c +++ /dev/null @@ -1,47 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include "ea_internal.h" -#include -#include -#include - -COMPAT_EA_ALIAS (strchr_ea); - -__ea char * -strchr_ea (__ea const char *s, int c) -{ - size_ea_t size; - - size = strlen_ea (s); - return (char *) memchr_ea (s, c, size); -} diff --git a/lib/machine/spu/strcmp.c b/lib/machine/spu/strcmp.c deleted file mode 100644 index 2db1a13..0000000 --- a/lib/machine/spu/strcmp.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include "vec_literal.h" - -/* Compare the two strings s1 and s2. Return an integer less than, equal - * to, or greater than zero if s1 is found, respectively, to be less than, - * to match, or be greater than s2. - */ - -int strcmp(const char *s1, const char *s2) -{ - unsigned int offset1, offset2; - vec_uint4 gt_v, lt_v, mask_v; - vec_uint4 cnt1_v, cnt2_v; - vec_uint4 end1_v, end2_v, end_v, neq_v; - vec_uchar16 shuffle1, shuffle2; - vec_uchar16 data1A, data1B, data1, data2A, data2B, data2; - vec_uchar16 *ptr1, *ptr2; - - ptr1 = (vec_uchar16 *)s1; - ptr2 = (vec_uchar16 *)s2; - - offset1 = (unsigned int)(ptr1) & 15; - offset2 = (unsigned int)(ptr2) & 15; - - shuffle1 = (vec_uchar16)spu_add((vec_uint4)spu_splats((unsigned char)offset1), - VEC_LITERAL(vec_uint4, 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F)); - shuffle2 = (vec_uchar16)spu_add((vec_uint4)spu_splats((unsigned char)offset2), - VEC_LITERAL(vec_uint4, 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F)); - - data1A = *ptr1++; - data2A = *ptr2++; - - do { - data1B = *ptr1++; - data2B = *ptr2++; - - data1 = spu_shuffle(data1A, data1B, shuffle1); - data2 = spu_shuffle(data2A, data2B, shuffle2); - - data1A = data1B; - data2A = data2B; - - neq_v = spu_gather(spu_xor(spu_cmpeq(data1, data2), -1)); - - end1_v = spu_gather(spu_cmpeq(data1, 0)); - end2_v = spu_gather(spu_cmpeq(data2, 0)); - end_v = spu_or(end1_v, end2_v), 0; - } while (spu_extract(spu_or(end_v, neq_v), 0) == 0); - - cnt1_v = spu_cntlz(end1_v); - cnt2_v = spu_cntlz(end2_v); - - gt_v = spu_gather(spu_cmpgt(data1, data2)); - lt_v = spu_gather(spu_cmpgt(data2, data1)); - - mask_v = spu_and(spu_cmpeq(cnt1_v, cnt2_v), - spu_cmpeq(spu_rlmask(neq_v, (vec_int4)spu_add((vec_uint4)cnt1_v, -32)), 0)); - - gt_v = spu_sub(-1, spu_sl(spu_cmpgt(gt_v, lt_v), 1)); - - return (spu_extract(spu_andc(gt_v, mask_v), 0)); -} diff --git a/lib/machine/spu/strcmp_ea.c b/lib/machine/spu/strcmp_ea.c deleted file mode 100644 index 2c9c5eb..0000000 --- a/lib/machine/spu/strcmp_ea.c +++ /dev/null @@ -1,86 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include -#include -#include -#include "ea_internal.h" -#include "strncmp.h" -#include - -COMPAT_EA_ALIAS (strcmp_ea); - -/* - * It's not clear what is returned if both strings are equal to - * each other up to the length of the shorter string. - */ -int -strcmp_ea (__ea char *s1, __ea const char *s2) -{ - __ea char *curr_s1 = (__ea char *) s1; - __ea char *curr_s2 = (__ea char *) s2; - void *l_s1; - void *l_s2; - size_ea_t s2_n; - size_ea_t s1_n; - int min; - int ret; - vec_uint4 end_v; - - while (1) - { - l_s2 = __cache_fetch (curr_s2); - l_s1 = __cache_fetch (curr_s1); - /* - * Use the smaller of the the space left in s2 cacheline or - * the space left in the s1 cacheline. - */ - s2_n = ROUND_UP_NEXT_128 ((size_ea_t) curr_s2) - (size_ea_t) curr_s2; - s1_n = ROUND_UP_NEXT_128 ((size_ea_t) curr_s1) - (size_ea_t) curr_s1; - min = MIN (s2_n, s1_n); - - ret = _strncmp_internal (l_s1, l_s2, min, &end_v, 1); - /* - * Only the first slot of end_v is set. - */ - if (ret || spu_extract (end_v, 0)) - /* - * If any NUL values were seen (end_v values of zero) we still have - * to return ret, as it might not be zero. - */ - return ret; - - curr_s1 += min; - curr_s2 += min; - } -} diff --git a/lib/machine/spu/strcpy.c b/lib/machine/spu/strcpy.c deleted file mode 100644 index 69045ba..0000000 --- a/lib/machine/spu/strcpy.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - (C) Copyright 2008 - International Business Machines Corporation, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include "strcpy.h" - -/* - * Copy the string pointed to by src (up to and including the /0 - * character) into the array pointed to by dest. If copy between - * two arrays that overlap, then behavior is undefined. - */ -char * strcpy(char * __restrict__ dest, const char * __restrict__ src) -{ - return _strncpy(dest, src, 0, 0, 0); -} diff --git a/lib/machine/spu/strcpy.h b/lib/machine/spu/strcpy.h deleted file mode 100644 index 9040575..0000000 --- a/lib/machine/spu/strcpy.h +++ /dev/null @@ -1,185 +0,0 @@ -/* - (C) Copyright 2008 - International Business Machines Corporation, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include "vec_literal.h" -#include - -/* - * Supply an inline _strncpy for strcpy/cat and strncpy/cat. Relies on - * checklen and lastzero code being optimized out when they are constant - * zero values. - */ -static inline void * _strncpy(char * __restrict__ dest, const char * - __restrict__ src, size_t maxlen, int - checklen, int lastzero) -{ - int adjust, offset, soffset, doffset, shift; - vec_uchar16 *vsrc, *vdest; - vec_uchar16 sdata1, sdata2, sdata, shuffle; - vec_uchar16 mask1, maskzero, cmp0; - vec_uint4 nonzeroes, gathered_cmp, vtmp, vtmp2; - vec_uint4 curlen; /* assumes size_t is 4 bytes */ - const vec_uint4 val31 = { 31, 31, 31, 31 }; - const vec_uint4 val_0123 = { 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F }; - const vec_uchar16 all_ones = { 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff }; - - vsrc = (vec_uchar16 *) src; - vdest = (vec_uchar16 *) dest; - soffset = (int) src & 15; - doffset = (int) dest & 15; - - if (checklen) { - /* - * Set curlen so it is the number of bytes we would copy if starting - * from vdest & ~0xf. - * - * curlen could probably be replaced by comparing vdest plus some - * offset to dest + maxlen, that would help mainly in the while loop - * but would lose only one instruction (the curlen -= 16). - */ - curlen = spu_splats((unsigned int) (maxlen + doffset)); - } - - /* - * Setup a shuffle pattern to align the source string with the - * alignment of the destination string. - */ - vtmp = spu_cmpgt(spu_promote(doffset, 0), spu_promote(soffset, 0)); - adjust = spu_extract(vtmp, 0); - offset = soffset - doffset; - offset += adjust & 16; - shuffle = spu_splats((unsigned char) offset); - shuffle = (vec_uchar16) spu_add((vec_uint4) shuffle, val_0123); - - vsrc += adjust; - sdata1 = *vsrc++; - sdata2 = *vsrc++; - sdata = spu_shuffle(sdata1, sdata2, shuffle); - - /* - * mask out leading bytes - */ - mask1 = spu_rlmaskqwbyte(all_ones, -doffset); - - cmp0 = spu_and(mask1, spu_cmpeq(sdata, 0)); - nonzeroes = spu_cntlz(spu_gather(cmp0)); - /* - * First element of nonzeroes - 15 is the number of leading non-zero - * bytes plus 1 for the zero byte. - */ - if (checklen) { - vtmp = spu_add(curlen, 15); - vtmp2 = spu_cmpgt(nonzeroes, vtmp); - nonzeroes = spu_sel(nonzeroes, vtmp, vtmp2); - } - - vtmp = spu_cmpgt(nonzeroes, val31); - /* - * Note: using immediate (constant 31) vs a vector value (val31) does - * not give different results, and we have to have a vector val31 for - * the spu_sel below, so use val31 everywhere. - */ - vtmp = spu_sel(nonzeroes, val31, vtmp); - /* - * So vtmp is now min(nonzeroes, 31), the number of bytes + 16 that we - * want to copy from the first 16 bytes of the source. - */ - if (checklen) { - curlen = spu_sub(vtmp, curlen); - curlen = spu_sub(15, curlen); - } - - /* - * We want a right shift 0xff with fill by ones of (vtmp - 15) bytes, but - * that doesn't exist so use spu_slqwbyte and vtmp all ones left by - * (31 - vtmp). Note: this can also use spu_rlqwbytebc with spu_rlqw. - */ - shift = spu_extract(spu_sub(val31, vtmp), 0); - maskzero = spu_slqwbyte(all_ones, shift); - maskzero = spu_and(mask1, maskzero); - *vdest = spu_sel(*vdest, sdata, maskzero); - - vtmp = spu_cmpgt(nonzeroes, val31); - if (checklen) { - vtmp2 = spu_cmpgt(curlen, 0); - vtmp = spu_and(vtmp, vtmp2); - } - if (spu_extract(vtmp, 0)) { - sdata1 = sdata2; - sdata2 = *vsrc++; - sdata = spu_shuffle(sdata1, sdata2, shuffle); - cmp0 = spu_cmpeq(sdata, 0); - gathered_cmp = spu_gather(cmp0); - /* - * Copy 16 bytes at a time. - */ - while ((spu_extract(gathered_cmp, 0) == 0) && - (!checklen || (spu_extract(curlen, 0) > 15))) { - if (checklen) - curlen = spu_add(curlen, -16); - *++vdest = sdata; - sdata1 = sdata2; - sdata2 = *vsrc++; - sdata = spu_shuffle(sdata1, sdata2, shuffle); - cmp0 = spu_cmpeq(sdata, 0); - gathered_cmp = spu_gather(cmp0); - } - /* - * Copy 0 to 15 trailing bytes, either up to the smaller of curlen or - * the number of non-zero bytes. - */ - nonzeroes = spu_cntlz(gathered_cmp); - if (checklen) { - vtmp = spu_add(curlen, 15); - vtmp2 = spu_cmpgt(nonzeroes, vtmp); - nonzeroes = spu_sel(nonzeroes, vtmp, vtmp2); - curlen = spu_sub(nonzeroes, curlen); - curlen = spu_sub(15, curlen); - } - shift = spu_extract(spu_sub(val31, nonzeroes), 0); - maskzero = spu_slqwbyte(all_ones, shift); - ++vdest; - *vdest = spu_sel(*vdest, sdata, maskzero); - } - - if (checklen && lastzero) { - /* - * For strncat. - */ - dest[maxlen - spu_extract(curlen, 0)] = '\0'; - } - - /* Pad null bytes if the length of the "src" is less than "n" (strncpy). */ - if (checklen && !lastzero && spu_extract(curlen, 0)) - memset(dest + maxlen - spu_extract(curlen, 0), 0, spu_extract(curlen, 0)); - return (dest); -} diff --git a/lib/machine/spu/strcpy_ea.c b/lib/machine/spu/strcpy_ea.c deleted file mode 100644 index 7d39058..0000000 --- a/lib/machine/spu/strcpy_ea.c +++ /dev/null @@ -1,51 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include "ea_internal.h" -#include - -COMPAT_EA_ALIAS (strcpy_ea); - -/* - * Not the fastest since it reads through the data once on - * strlen and once on memcpy. - */ -__ea char * -strcpy_ea (__ea char *dest, __ea const char *src) -{ - size_ea_t length; - - length = strlen_ea (src); - memcpy_ea ((__ea void *) dest, (__ea void *) src, length + 1); - return dest; -} diff --git a/lib/machine/spu/strcspn.c b/lib/machine/spu/strcspn.c deleted file mode 100644 index 5f75a29..0000000 --- a/lib/machine/spu/strcspn.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include -#include "vec_literal.h" - -/* Computes the length of the maximum initial segement - * of the string pointed to by s1 which consists entirely - * of characters not contained in the string pointed to by s2. - */ -size_t strcspn(const char *s1, const char *s2) -{ - size_t len, cnt; - unsigned int offset; - vec_uchar16 shuffle, match, initial_splat, splat; - vec_uchar16 data1, data2, dataA, dataB, *ptr1, *ptr2; - - ptr1 = (vec_uchar16 *)s1; - - offset = (unsigned int)(s1) & 15; - shuffle = (vec_uchar16)spu_add((vec_uint4)spu_splats((unsigned char) offset), - VEC_LITERAL(vec_uint4, 0x0010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F)); - - len = 0; - - dataA = *ptr1++; - dataB = *ptr1++; - - initial_splat = spu_splats((unsigned char)((unsigned int)(s2) & 0xF)); - - /* For each quadword of the string s1. - */ - do { - data1 = spu_shuffle(dataA, dataB, shuffle); - - - ptr2 = (vec_uchar16 *)s2; - data2 = *ptr2; - data2 = spu_shuffle(data2, data2, initial_splat); - ptr2 = (vec_uchar16 *)((unsigned int)(ptr2) + 1); - splat = initial_splat; - - match = spu_cmpeq(data1, 0); - - /* For each character of s2, compare agains a quadword of s1, - * accumulating match success in the variable match. - */ - while (spu_extract((vec_uint4)data2, 0)) { - match = spu_or(match, spu_cmpeq(data1, data2)); - - splat = spu_and((vec_uchar16)(spu_add((vec_uint4)splat, VEC_SPLAT_U32(0x01010101))), 0xF); - - data2 = *ptr2; - data2 = spu_shuffle(data2, data2, splat); - ptr2 = (vec_uchar16 *)((unsigned int)(ptr2) + 1); - } - - cnt = spu_extract(spu_cntlz(spu_gather(match)), 0); - len = (len - 16) + cnt; - - dataA = dataB; - dataB = *ptr1++; - } while (cnt == 32); - - return (len); -} diff --git a/lib/machine/spu/strcspn_ea.c b/lib/machine/spu/strcspn_ea.c deleted file mode 100644 index 2cc0f08..0000000 --- a/lib/machine/spu/strcspn_ea.c +++ /dev/null @@ -1,63 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include "ea_internal.h" -#include -#include -#include - -COMPAT_EA_ALIAS (strcspn_ea); - -size_ea_t -strcspn_ea (__ea const char *s, const char *reject) -{ - size_ea_t s_length; - size_ea_t found_length; - __ea void *found_it; - size_ea_t ret; - size_t i; - size_t rej_length; - - s_length = strlen_ea (s); - rej_length = strlen (reject); - ret = s_length; - - for (i = 0; i < rej_length; i++) - { - found_it = memchr_ea (s, reject[i], s_length); - found_length = (size_ea_t) found_it - (size_ea_t) s; - if (found_length < ret) - ret = found_length; - } - - return ret; -} diff --git a/lib/machine/spu/strlen.c b/lib/machine/spu/strlen.c deleted file mode 100644 index a8403e0..0000000 --- a/lib/machine/spu/strlen.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include - -/* - * Calculates the length of the string s, not including the terminating - * \0 character. - */ -size_t strlen(const char *s) -{ - unsigned int cnt, cmp, skip, mask; - vec_uchar16 *ptr, data; - - /* - * Compensate for initial mis-aligned string. - */ - ptr = (vec_uchar16 *)s; /* implicit 16 byte alignment when dereferenced */ - skip = (unsigned int)(ptr) & 15; - mask = 0xFFFF >> skip; - - data = *ptr; - cmp = spu_extract(spu_gather(spu_cmpeq(data, 0)), 0); - cmp &= mask; - - cnt = spu_extract(spu_cntlz(spu_promote(cmp, 0)), 0); - - while (cnt == 32) { - data = *++ptr; - cnt = spu_extract(spu_cntlz(spu_gather(spu_cmpeq(data, 0))), 0); - } - - /* - * The length is ptr aligned down to a 16 byte boundary, plus the offset - * to the zero byte, minus the starting address s. - */ - return ((((int) ptr & ~0xf) + (cnt - 16)) - (int) s); -} diff --git a/lib/machine/spu/strlen_ea.c b/lib/machine/spu/strlen_ea.c deleted file mode 100644 index f00cec2..0000000 --- a/lib/machine/spu/strlen_ea.c +++ /dev/null @@ -1,67 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include "ea_internal.h" -#include -#include -#include - -COMPAT_EA_ALIAS (strlen_ea); - -size_ea_t -strlen_ea (__ea const char *s) -{ - __ea void *curr_s = (__ea void *) s; - void *local_s; - size_ea_t left_in_cacheline; - void *where_null; - size_ea_t length_of_string = 0; - - while (1) - { - left_in_cacheline = - ROUND_UP_NEXT_128 ((size_ea_t) curr_s) - (size_ea_t) curr_s; - local_s = __cache_fetch (curr_s); - where_null = memchr (local_s, '\0', left_in_cacheline); - - if (where_null) - { - length_of_string += ((size_ea_t) (int) where_null - (size_ea_t) - (int) local_s); - return length_of_string; - } - - /* update values to take into account what we copied */ - curr_s += left_in_cacheline; - length_of_string += left_in_cacheline; - } -} diff --git a/lib/machine/spu/strncat.c b/lib/machine/spu/strncat.c deleted file mode 100644 index 3eeea7a..0000000 --- a/lib/machine/spu/strncat.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - (C) Copyright 2008 - International Business Machines Corporation, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include -#include "straddr.h" -#include "strcpy.h" - -/* - * Appends the string pointed to by src (up to and including the /0 - * character) to the array pointed to by dest (overwriting the - * /0 character at the end of dest. The strings may not overlap and - * the dest string must have enough space for the result. - */ -char * strncat(char * __restrict__ dest, const char * __restrict__ src, - size_t n) -{ - _strncpy(_straddr(dest), src, n, 1, 1); - return dest; -} diff --git a/lib/machine/spu/strncat_ea.c b/lib/machine/spu/strncat_ea.c deleted file mode 100644 index b6c7389..0000000 --- a/lib/machine/spu/strncat_ea.c +++ /dev/null @@ -1,60 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include "ea_internal.h" -#include - -COMPAT_EA_ALIAS (strncat_ea); - -/* - * Not the fastest thing ever since it reads through the data once on - * strlen and once on memcpy. - */ -__ea char * -strncat_ea (__ea char *dest, __ea const char *src, size_ea_t n) -{ - size_ea_t length_src; - size_ea_t length_dest; - __ea char *new_dest; - size_ea_t smaller_length; - - length_src = strlen_ea (src); - length_dest = strlen_ea (dest); - new_dest = dest + length_dest; - smaller_length = length_src < n ? length_src : n; - memcpy_ea ((__ea void *) new_dest, (__ea void *) src, smaller_length); - /* null out last character */ - memset_ea ((__ea void *) (new_dest + smaller_length), 0, 1); - - return dest; -} diff --git a/lib/machine/spu/strncmp.c b/lib/machine/spu/strncmp.c deleted file mode 100644 index d96504c..0000000 --- a/lib/machine/spu/strncmp.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include -#include "strncmp.h" - -/* - * Compare the two strings s1 and s2 of length n. Returns an integer less - * than, equal to, or greater than zero if s1 is found, respectively, - * to be less than, to match, or be greater than s2. - */ -int strncmp(const char *s1, const char *s2, size_t n) -{ - vec_uint4 end_v; - return _strncmp_internal (s1, s2, n, &end_v, 1); -} diff --git a/lib/machine/spu/strncmp.h b/lib/machine/spu/strncmp.h deleted file mode 100644 index f464564..0000000 --- a/lib/machine/spu/strncmp.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - (C) Copyright 2001,2006,2008 - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include - -/* - * Internal _strncmp_internal for strncmp and memcmp: - * - * Compare the two strings s1 and s2 of length n. Returns an integer less - * than, equal to, or greater than zero if s1 is found, respectively, - * to be less than, to match, or be greater than s2. Check for zero bytes - * only if check_zeroes is set. In additin, the vector value *end_v will - * contain all zeroes if we hit a NUL character that caused the comparison - * to complete, *end_v is modified only if check_zeroes is set. - */ -static inline int -_strncmp_internal(const char *s1, const char *s2, size_t n, vec_uint4 - *end_v, int check_zeroes) -{ - unsigned int offset1, offset2; - vec_int4 n_v; - vec_uint4 cnt1_v, cnt2_v, max_cnt_v; - vec_uint4 gt_v, lt_v, mask_v, end1_v, end2_v, neq_v, tmp1_v; - vec_uint4 shift_n_v, shift_eos_v, max_shift_v; - vec_uchar16 shuffle1, shuffle2; - vec_uchar16 data1A, data1B, data1, data2A, data2B, data2; - vec_uchar16 *ptr1, *ptr2; - - data1 = data2 = spu_splats((unsigned char)0); - - ptr1 = (vec_uchar16 *)s1; - ptr2 = (vec_uchar16 *)s2; - - offset1 = (unsigned int)(ptr1) & 15; - offset2 = (unsigned int)(ptr2) & 15; - - shuffle1 = (vec_uchar16) - spu_add((vec_uint4)spu_splats((unsigned char)offset1), - ((vec_uint4) {0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F})); - shuffle2 = (vec_uchar16) - spu_add((vec_uint4)spu_splats((unsigned char)offset2), - ((vec_uint4) {0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F})); - data1A = *ptr1++; - data2A = *ptr2++; - - n_v = spu_promote((int)n, 0); - - do { - data1B = *ptr1++; - data2B = *ptr2++; - - /* - * Quadword align each of the input strings so that we operate on full - * quadwords. - */ - data1 = spu_shuffle(data1A, data1B, shuffle1); - data2 = spu_shuffle(data2A, data2B, shuffle2); - - data1A = data1B; - data2A = data2B; - - neq_v = spu_gather(spu_xor(spu_cmpeq(data1, data2), -1)); - - if (check_zeroes) { - end1_v = spu_gather(spu_cmpeq(data1, 0)); - end2_v = spu_gather(spu_cmpeq(data2, 0)); - *end_v = spu_or(end1_v, end2_v); - } - - n_v = spu_add(n_v, -16); - - /* - * Repeat until either - * 1) the character count expired - * 2) check_zeroes is set and a null character is discovered in one of - * the input strings - * 3) the strings do not compare equal - */ - if (check_zeroes) { - tmp1_v = spu_or(*end_v, neq_v); - tmp1_v = spu_cmpeq(tmp1_v, 0); - } else { - tmp1_v = spu_cmpeq(neq_v, 0); - } - tmp1_v = spu_and(tmp1_v, spu_cmpgt(n_v, 0)); - } while (spu_extract(tmp1_v, 0)); - - /* - * Construct a mask to eliminate characters that are not of interest - * in the comparison. - */ - mask_v = spu_splats((unsigned int)0xFFFF); - shift_n_v = - spu_andc((__vector unsigned int)spu_sub(0, n_v), spu_cmpgt(n_v, -1)); - if (check_zeroes) { - cnt1_v = spu_cntlz(end1_v); - cnt2_v = spu_cntlz(end2_v); - max_cnt_v = spu_sel(cnt1_v, cnt2_v, spu_cmpgt(cnt2_v, cnt1_v)); - shift_eos_v = spu_sub(32, max_cnt_v); - max_shift_v = - spu_sel(shift_n_v, shift_eos_v, spu_cmpgt(shift_eos_v, shift_n_v)); - mask_v = spu_and(spu_sl(mask_v, spu_extract(max_shift_v, 0)), mask_v); - } else { - mask_v = spu_and(spu_sl(mask_v, spu_extract(shift_n_v, 0)), mask_v); - } - - /* - * Determine if greater then or less then in the case that they are - * not equal. gt_v is either 1 (in the case s1 is greater then s2), or - * -1 (in the case that s2 is greater then s1). - * - * There are no byte vector math instructions, so we can't subtract - * data1 from data2. - */ - gt_v = spu_gather(spu_cmpgt(data1, data2)); - lt_v = spu_gather(spu_cmpgt(data2, data1)); - gt_v = spu_sub(-1, spu_sl(spu_cmpgt(gt_v, lt_v), 1)); - - /* - * Construct a mask to be applied to gt_v if the strings are discovered - * to be equal. - */ - mask_v = spu_cmpeq(spu_and(neq_v, mask_v), 0); - return (spu_extract(spu_andc(gt_v, mask_v), 0)); -} diff --git a/lib/machine/spu/strncmp_ea.c b/lib/machine/spu/strncmp_ea.c deleted file mode 100644 index 1a4f366..0000000 --- a/lib/machine/spu/strncmp_ea.c +++ /dev/null @@ -1,87 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include -#include -#include "ea_internal.h" -#include "strncmp.h" -#include - -COMPAT_EA_ALIAS (strncmp_ea); - -int -strncmp_ea (__ea void *s1, __ea const void *s2, size_ea_t n3) -{ - __ea void *curr_s1 = (__ea void *) s1; - __ea void *curr_s2 = (__ea void *) s2; - void *l_s1; - void *l_s2; - int min; - size_ea_t s2_n; - size_ea_t s1_n; - int ret; - vec_uint4 end_v; - - ret = 0; /* in case n3 is 0 */ - while (n3) - { - l_s2 = __cache_fetch (curr_s2); - l_s1 = __cache_fetch (curr_s1); - - /* - * Use the smaller of the size left to compare (n3), the space left in - * s2 cacheline (s2_n), or the space left in the s1 cacheline (s1_n) - */ - s2_n = ROUND_UP_NEXT_128 ((size_ea_t) curr_s2) - (size_ea_t) curr_s2; - s1_n = ROUND_UP_NEXT_128 ((size_ea_t) curr_s1) - (size_ea_t) curr_s1; - min = three_way_min (s2_n, s1_n, n3); - - ret = _strncmp_internal (l_s1, l_s2, min, &end_v, 1); - /* - * Only the first slot of end_v is set. - */ - /* if (ret || spu_extract(spu_cmpeq(end_v, 0), 0)) { */ - /* if (ret || spu_extract(spu_gather(spu_cmpeq(end_v, 0)), 0)) { */ - if (ret || spu_extract (end_v, 0)) - /* - * If any NUL values were seen (end_v values of zero) we still have - * to return ret, as it might not be zero. - */ - return ret; - - curr_s2 += min; - curr_s1 += min; - n3 -= min; - } - return ret; -} diff --git a/lib/machine/spu/strncpy.c b/lib/machine/spu/strncpy.c deleted file mode 100644 index 9c70b04..0000000 --- a/lib/machine/spu/strncpy.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - (C) Copyright 2008 - International Business Machines Corporation, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include -#include "strcpy.h" - -/* - * Copy the string up to n character from memory area src to memory area - * dest. The memory areas may not overlap. The strncpy subroutine returns - * a pointer to dest. - */ -char * strncpy(char * __restrict__ dest, const char * __restrict__ src, size_t n) -{ - return _strncpy(dest, src, n, 1, 0); -} diff --git a/lib/machine/spu/strncpy_ea.c b/lib/machine/spu/strncpy_ea.c deleted file mode 100644 index c29ba91..0000000 --- a/lib/machine/spu/strncpy_ea.c +++ /dev/null @@ -1,57 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include -#include "ea_internal.h" -#include - -COMPAT_EA_ALIAS (strncpy_ea); - -/* - * Not the fastest since it reads through the data once on strlen and once - * on memcpy. - */ -__ea char * -strncpy_ea (__ea char *dest, __ea const char *src, size_ea_t n) -{ - size_ea_t length = strlen_ea (src); - if (length < n) - { - memcpy_ea ((__ea void *) dest, (__ea void *) src, length); - memset_ea ((__ea void *) (dest + length), 0, n - length); - } - else - { - memcpy_ea ((__ea void *) dest, (__ea void *) src, n); - } - return dest; -} diff --git a/lib/machine/spu/strpbrk.c b/lib/machine/spu/strpbrk.c deleted file mode 100644 index 461a586..0000000 --- a/lib/machine/spu/strpbrk.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include -#include "vec_literal.h" - -/* Locates the first occurance in string pointed to by s1 of - * any character in the string pointed to by s2. A null pointer - * is returned if no character in s2 occurs in s1. - */ -char * strpbrk(const char *s1, const char *s2) -{ - unsigned int offset; - vec_uint4 cnt; - vec_uchar16 shuffle, match, initial_splat, splat, eos; - vec_uchar16 data1, data2, dataA, dataB, *ptr1, *ptr2; - - ptr1 = (vec_uchar16 *)s1; - - offset = (unsigned int)(s1) & 15; - shuffle = (vec_uchar16)spu_add((vec_uint4)spu_splats((unsigned char) offset), - VEC_LITERAL(vec_uint4, 0x0010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F)); - - dataA = *ptr1++; - dataB = *ptr1++; - - initial_splat = spu_splats((unsigned char)((unsigned int)(s2) & 0xF)); - - /* For each quadword of the string s1. - */ - do { - data1 = spu_shuffle(dataA, dataB, shuffle); - - eos = match = spu_cmpeq(data1, 0); - - ptr2 = (vec_uchar16 *)s2; - data2 = *ptr2; - data2 = spu_shuffle(data2, data2, initial_splat); - ptr2 = (vec_uchar16 *)((unsigned int)(ptr2) + 1); - splat = initial_splat; - - /* For each character of s2, compare agains a quadword of s1, - * accumulating match success in the variable match. - */ - while (spu_extract((vec_uint4)data2, 0)) { - match = spu_or(match, spu_cmpeq(data1, data2)); - - splat = spu_and((vec_uchar16)(spu_add((vec_uint4)splat, VEC_SPLAT_U32(0x01010101))), 0xF); - - data2 = *ptr2; - data2 = spu_shuffle(data2, data2, splat); - ptr2 = (vec_uchar16 *)((unsigned int)(ptr2) + 1); - } - - cnt = spu_cntlz(spu_gather(match)); - - dataA = dataB; - dataB = *ptr1++; - } while (spu_extract(cnt, 0) == 32); - - /* Compute the first match pointer, zeroing it (NIL) if it is the end of - * string. - */ - return ((char *)spu_extract(spu_andc(spu_add(spu_add(spu_promote((unsigned int)(ptr1), 0), -64), cnt), - spu_cmpeq(cnt, spu_cntlz(spu_gather(eos)))), 0)); -} diff --git a/lib/machine/spu/strpbrk_ea.c b/lib/machine/spu/strpbrk_ea.c deleted file mode 100644 index a8b69f5..0000000 --- a/lib/machine/spu/strpbrk_ea.c +++ /dev/null @@ -1,47 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include "ea_internal.h" -#include -#include -#include - -COMPAT_EA_ALIAS (strpbrk_ea); - -__ea char * -strpbrk_ea (__ea const char *s, const char *accept) -{ - size_ea_t where; - - where = strcspn_ea (s, accept); - return (__ea char *) ((size_ea_t) s + where); -} diff --git a/lib/machine/spu/strrchr.c b/lib/machine/spu/strrchr.c deleted file mode 100644 index d311710..0000000 --- a/lib/machine/spu/strrchr.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include -#include "vec_literal.h" - -/* Scans the string pointed to by s for the character c and - * returns a pointer to the last occurance of c. If - * c is not found, then NULL is returned. - */ -char * strrchr(const char *s, int c) -{ - int nskip; - vec_uchar16 *ptr, data, vc; - vec_uint4 cmp_c, cmp_0, cmp; - vec_uint4 res_ptr, res_cmp; - vec_uint4 mask, result; - vec_uint4 one = spu_splats(0xffffU); - /* Scan memory array a quadword at a time. Skip leading - * mis-aligned bytes. - */ - ptr = (vec_uchar16 *)s; - - nskip = -((unsigned int)(ptr) & 15); - mask = spu_rlmask(one, nskip); - - vc = spu_splats((unsigned char)(c)); - - data = *ptr++; - ptr = (vec_uchar16 *)((unsigned int)ptr & ~15); - - cmp_c = spu_and(spu_gather(spu_cmpeq(data, vc)), mask); - cmp_0 = spu_and(spu_gather(spu_cmpeq(data, 0)), mask); - - res_ptr = spu_splats(0U); - res_cmp = spu_splats(0U); - - while (spu_extract(cmp_0, 0) == 0) { - cmp = spu_cmpeq(cmp_c, 0); - - res_ptr = spu_sel(spu_promote((unsigned int)(ptr), 0), res_ptr, cmp); - res_cmp = spu_sel(cmp_c, res_cmp, cmp); - - data = *ptr++; - - cmp_c = spu_gather(spu_cmpeq(data, vc)); - cmp_0 = spu_gather(spu_cmpeq(data, 0)); - - cmp = spu_cmpeq(cmp_c, 0); - } - - /* Compute the location of the last character before termination - * character. - * - * First mask off compare results following the first termination character. - */ - mask = spu_sl(one, 31 - spu_extract(spu_cntlz(cmp_0), 0)); - cmp_c = spu_and(cmp_c, mask); - - /* Conditionally update res_ptr and res_cmd if a match was found in the last - * quadword. - */ - cmp = spu_cmpeq(cmp_c, 0); - - res_ptr = spu_sel(spu_promote((unsigned int)(ptr), 0), res_ptr, cmp); - res_cmp = spu_sel(cmp_c, res_cmp, cmp); - - /* Bit reserve res_cmp for locating last occurance. - */ - mask = spu_cmpeq(res_cmp, 0); - - res_cmp = (vec_uint4)spu_maskb(spu_extract(res_cmp, 0)); - res_cmp = spu_gather((vec_uchar16)spu_shuffle(res_cmp, res_cmp, - VEC_LITERAL(vec_uchar16, - 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0))); - - /* Compute the location (ptr) of the last occurance of c. If no - * occurance was found (ie, element 0 of res_cmp == 0, then return - * NULL. - */ - result = spu_sub(spu_add(res_ptr, 15), spu_cntlz(res_cmp)); - result = spu_andc(result, mask); - - return ((char *)spu_extract(result, 0)); -} diff --git a/lib/machine/spu/strrchr_ea.c b/lib/machine/spu/strrchr_ea.c deleted file mode 100644 index 76ebb31..0000000 --- a/lib/machine/spu/strrchr_ea.c +++ /dev/null @@ -1,84 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include "ea_internal.h" -#include -#include -#include - -static __ea char * -similie_ls_to_ea (char *l1, __ea char *ea1, char *l2) -{ - return (__ea char *) ((size_ea_t) ea1 + - ((size_ea_t) (int) l2 - (size_ea_t) (int) l1)); -} - -COMPAT_EA_ALIAS (strrchr_ea); - -__ea char * -strrchr_ea (__ea const char *s, int c) -{ - size_ea_t string_length; - char *curr_ptr; - __ea char *string_start_local; - __ea char *end_of_string_ea; - __ea char *start_of_cacheline_ea; - char *start_of_cachline_local; - - string_start_local = __cache_fetch ((__ea char *) s); - string_length = strlen_ea (s); - end_of_string_ea = (__ea char *) s + string_length; - - start_of_cacheline_ea = round_down_128_ea (end_of_string_ea - 1); - start_of_cachline_local = __cache_fetch (start_of_cacheline_ea); - /*this next line should be the same cacheline, just the end of the string */ - curr_ptr = __cache_fetch (end_of_string_ea - 1); - - while (1) - { - /*search backwards through this cachline */ - while (curr_ptr >= start_of_cachline_local) - { - if (*curr_ptr == (char) c) - return similie_ls_to_ea (start_of_cachline_local, - start_of_cacheline_ea, curr_ptr); - curr_ptr--; - if (curr_ptr < string_start_local) - return NULL; - } - - /* iterate cacheline backwards */ - start_of_cacheline_ea -= 128; - start_of_cachline_local = __cache_fetch (start_of_cacheline_ea); - curr_ptr = __cache_fetch (start_of_cacheline_ea + 128); - } -} diff --git a/lib/machine/spu/strspn.c b/lib/machine/spu/strspn.c deleted file mode 100644 index 511e631..0000000 --- a/lib/machine/spu/strspn.c +++ /dev/null @@ -1,95 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include -#include "vec_literal.h" - -/* Computes the length of the maximum initial segement - * of the string pointed to by s1 which consists entirely - * of characters from the string pointed to by s2. - */ -size_t strspn(const char *s1, const char *s2) -{ - size_t len, cnt; - unsigned int offset; - vec_uchar16 shuffle, match, initial_splat, splat; - vec_uchar16 data1, data2, dataA, dataB, *ptr1, *ptr2; - - ptr1 = (vec_uchar16 *)s1; - - offset = (unsigned int)(s1) & 15; - shuffle = (vec_uchar16)spu_add((vec_uint4)spu_splats((unsigned char) offset), - VEC_LITERAL(vec_uint4, 0x0010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F)); - - len = 0; - - dataA = *ptr1++; - dataB = *ptr1++; - - initial_splat = spu_splats((unsigned char)((unsigned int)(s2) & 0xF)); - - /* For each quadword of the string s1. - */ - do { - data1 = spu_shuffle(dataA, dataB, shuffle); - - match = spu_splats((unsigned char)0); - - ptr2 = (vec_uchar16 *)s2; - data2 = *ptr2; - data2 = spu_shuffle(data2, data2, initial_splat); - ptr2 = (vec_uchar16 *)((unsigned int)(ptr2) + 1); - splat = initial_splat; - - /* For each character of s2, compare agains a quadword of s1, - * accumulating match success in the variable match. - */ - while (spu_extract((vec_uint4)data2, 0)) { - match = spu_or(match, spu_cmpeq(data1, data2)); - - splat = spu_and((vec_uchar16)(spu_add((vec_uint4)splat, VEC_SPLAT_U32(0x01010101))), 0xF); - - data2 = *ptr2; - data2 = spu_shuffle(data2, data2, splat); - ptr2 = (vec_uchar16 *)((unsigned int)(ptr2) + 1); - } - - cnt = spu_extract(spu_cntlz(spu_gather(spu_xor(match, -1))), 0); - len = (len - 16) + cnt; - - dataA = dataB; - dataB = *ptr1++; - } while (cnt == 32); - - return (len); -} diff --git a/lib/machine/spu/strspn_ea.c b/lib/machine/spu/strspn_ea.c deleted file mode 100644 index d1e2947..0000000 --- a/lib/machine/spu/strspn_ea.c +++ /dev/null @@ -1,65 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include "ea_internal.h" -#include -#include -#include - -COMPAT_EA_ALIAS (strspn_ea); - -size_ea_t -strspn_ea (__ea const char *s, const char *accept) -{ - __ea void *curr_s = (__ea void *) s; - char *local_s; - size_ea_t length_of_string = 0; - size_ea_t s_len; - int i; - - s_len = strlen_ea (s); - - for (i = 0; i < s_len; i++) - { - local_s = (char *) __cache_fetch (curr_s); - if (!strchr (accept, local_s[0])) - { - return length_of_string; - } - else - { - length_of_string++; - curr_s++; - } - } - return length_of_string; -} diff --git a/lib/machine/spu/strstr_ea.c b/lib/machine/spu/strstr_ea.c deleted file mode 100644 index 9200cbf..0000000 --- a/lib/machine/spu/strstr_ea.c +++ /dev/null @@ -1,75 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007, 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include -#include "ea_internal.h" -#include -#include -#include - -COMPAT_EA_ALIAS (strstr_ea); - -__ea char *strstr_ea (__ea const char *s1, __ea const char *s2) -{ - __ea char *ret; - __ea char *curr; - size_ea_t s2_length; - size_ea_t s1_length; - int i; - int found; - - ret = (__ea char *) s1; - s2_length = strlen_ea (s2); - s1_length = strlen_ea (s1); - while (ret < (s1 + s1_length)) { - /* search for first letter */ - //temporary hack for broken 64 bit compiler - ret = strchr_ea (ret, s2[0]); - /*if we find it search for the rest */ - if (ret) { - found = 1; - for (i = 1; i < s2_length; i++) { - //temporary hack for broken 64 bit compiler - curr = strchr_ea (ret, s2[i]); - /* if the letter doesn't exist or isn't in the right spot we unfind */ - if (!curr || (curr != (ret + i))) - found = 0; - } - } - if (found) { - return ret; - } else { - ret++; - } - /*go back and try again with the rest of it */ - } - return NULL; -} diff --git a/lib/machine/spu/strxfrm.c b/lib/machine/spu/strxfrm.c deleted file mode 100644 index 02bb9a8..0000000 --- a/lib/machine/spu/strxfrm.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#include -#include -#include - -#define min(a, b) (a) < (b) ? (a) : (b) - -/* The strxfrm() function transforms the src string into a form such that - * the result of strcmp() on two strings that have been transformed with - * strxfrm() is the same as the result of strcoll() on the two strings - * before their transformation. The first n characters of the transformed - * string are placed in dest. - * - * The strxfrm() function returns the number of bytes required to store - * the transformed string in dest excluding the terminating character - * If the value returned is n or more, the contents of dest are indeterminate. - * - * Note: Since this library/function only supports a single locale, no - * transformation is performed. - */ - -size_t strxfrm(char * __restrict__ dest, const char * __restrict__ src, size_t n) -{ - size_t len; - - len = strlen(src); - (void)memcpy((void *)dest, (void *)src, min(n,len + 1)); - - return len; -} diff --git a/lib/machine/spu/sys/custom_file.h b/lib/machine/spu/sys/custom_file.h deleted file mode 100644 index 60c0d23..0000000 --- a/lib/machine/spu/sys/custom_file.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __CUSTOM_FILE_H__ -#define __CUSTOM_FILE_H__ 1 - -/* - * Cell SPE support - */ -struct __sFILE_spu { - int _fp; /* pseudo FILE pointer on PPE */ -}; -typedef struct __sFILE_spu __FILE; - -#endif /* __CUSTOM_FILE_H__ */ - diff --git a/lib/machine/spu/sys/dirent.h b/lib/machine/spu/sys/dirent.h deleted file mode 100644 index 00ed414..0000000 --- a/lib/machine/spu/sys/dirent.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - Copyright 2007 - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ -#ifndef _SYS_DIRENT_H -#define _SYS_DIRENT_H -#ifdef __cplusplus -extern "C" { -#endif - -#define MAXNAMLEN 255 - -struct dirent { - ino_t d_ino; - char d_name[MAXNAMLEN + 1]; -}; - -typedef struct { - unsigned long long ppc_dir; - /* - * Allow one readdir for each opendir, and store the data here. - */ - struct dirent dirent; -} DIR; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/lib/machine/spu/sys/errno.h b/lib/machine/spu/sys/errno.h deleted file mode 100644 index 8758283..0000000 --- a/lib/machine/spu/sys/errno.h +++ /dev/null @@ -1,178 +0,0 @@ -/* - * The SPU must have these values match those on the PPU linux side, so - * the assisted calls (system or library ones) that set errno will use the - * same values. - * - * This file is based on the CRIS file, with these modifications: - * - * EDEADLOCK - instead of EDEADLK (35) use 58 (for some reason ppc only does - * this, it is not used by ppc kernel code nor glibc code). - * - * ECANCELED value of 125 added, in linux and posix value of 125, in generic - * newlib errno.h, value of 140 - * - * ENOTSUP as EOPNOTSUPP (95) added, in linux and posix value 95, in - * generic newlib errno.h, value of 134 - */ - -/* This file is to be kept in sync with newlib/libc/include/sys/errno.h - on which it is based, except values used or returned by syscalls must - be those of the Linux ppc. */ - -#ifndef _SYS_ERRNO_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS_ERRNO_H_ - -#include - -#define errno (_impure_data._errno) - -/* Please don't use these variables directly. - Use strerror instead. */ -extern const char * const _sys_errlist[]; -extern int _sys_nerr; - -#define __errno_r(ptr) _REENT_ERRNO(ptr) - -/* Adjusted to the linux asm/errno.h */ -#define EPERM 1 /* Operation not permitted */ -#define ENOENT 2 /* No such file or directory */ -#define ESRCH 3 /* No such process */ -#define EINTR 4 /* Interrupted system call */ -#define EIO 5 /* I/O error */ -#define ENXIO 6 /* No such device or address */ -#define E2BIG 7 /* Arg list too long */ -#define ENOEXEC 8 /* Exec format error */ -#define EBADF 9 /* Bad file number */ -#define ECHILD 10 /* No child processes */ -#define EAGAIN 11 /* Try again */ -#define ENOMEM 12 /* Out of memory */ -#define EACCES 13 /* Permission denied */ -#define EFAULT 14 /* Bad address */ -#define ENOTBLK 15 /* Block device required */ -#define EBUSY 16 /* Device or resource busy */ -#define EEXIST 17 /* File exists */ -#define EXDEV 18 /* Cross-device link */ -#define ENODEV 19 /* No such device */ -#define ENOTDIR 20 /* Not a directory */ -#define EISDIR 21 /* Is a directory */ -#define EINVAL 22 /* Invalid argument */ -#define ENFILE 23 /* File table overflow */ -#define EMFILE 24 /* Too many open files */ -#define ENOTTY 25 /* Not a typewriter */ -#define ETXTBSY 26 /* Text file busy */ -#define EFBIG 27 /* File too large */ -#define ENOSPC 28 /* No space left on device */ -#define ESPIPE 29 /* Illegal seek */ -#define EROFS 30 /* Read-only file system */ -#define EMLINK 31 /* Too many links */ -#define EPIPE 32 /* Broken pipe */ -#define EDOM 33 /* Math argument out of domain of func */ -#define ERANGE 34 /* Math result not representable */ -#define EDEADLK 35 /* Resource deadlock would occur */ -#define ENAMETOOLONG 36 /* File name too long */ -#define ENOLCK 37 /* No record locks available */ -#define ENOSYS 38 /* Function not implemented */ -#define ENOTEMPTY 39 /* Directory not empty */ -#define ELOOP 40 /* Too many symbolic links encountered */ -#define EWOULDBLOCK EAGAIN /* Operation would block */ -#define ENOMSG 42 /* No message of desired type */ -#define EIDRM 43 /* Identifier removed */ -#define ECHRNG 44 /* Channel number out of range */ -#define EL2NSYNC 45 /* Level 2 not synchronized */ -#define EL3HLT 46 /* Level 3 halted */ -#define EL3RST 47 /* Level 3 reset */ -#define ELNRNG 48 /* Link number out of range */ -#define EUNATCH 49 /* Protocol driver not attached */ -#define ENOCSI 50 /* No CSI structure available */ -#define EL2HLT 51 /* Level 2 halted */ -#define EBADE 52 /* Invalid exchange */ -#define EBADR 53 /* Invalid request descriptor */ -#define EXFULL 54 /* Exchange full */ -#define ENOANO 55 /* No anode */ -#define EBADRQC 56 /* Invalid request code */ -#define EBADSLT 57 /* Invalid slot */ - -#define EDEADLOCK 58 - -#define EBFONT 59 /* Bad font file format */ -/* This is only used internally in newlib; not returned by the kernel. - EBFONT seems the closest match for a "bad file format" error. */ -#define EFTYPE EBFONT /* Inappropriate file type or format */ -#define ENOSTR 60 /* Device not a stream */ -#define ENODATA 61 /* No data available */ -#define ETIME 62 /* Timer expired */ -#define ENOSR 63 /* Out of streams resources */ -#define ENONET 64 /* Machine is not on the network */ -#define ENOPKG 65 /* Package not installed */ -#define EREMOTE 66 /* Object is remote */ -#define ENOLINK 67 /* Link has been severed */ -#define EADV 68 /* Advertise error */ -#define ESRMNT 69 /* Srmount error */ -#define ECOMM 70 /* Communication error on send */ -#define EPROTO 71 /* Protocol error */ -#define EMULTIHOP 72 /* Multihop attempted */ -#define EDOTDOT 73 /* RFS specific error */ -#define EBADMSG 74 /* Not a data message */ -#define EOVERFLOW 75 /* Value too large for defined data type */ -#define ENOTUNIQ 76 /* Name not unique on network */ -#define EBADFD 77 /* File descriptor in bad state */ -#define EREMCHG 78 /* Remote address changed */ -#define ELIBACC 79 /* Can not access a needed shared library */ -#define ELIBBAD 80 /* Accessing a corrupted shared library */ -#define ELIBSCN 81 /* .lib section in a.out corrupted */ -#define ELIBMAX 82 /* Attempting to link in too many shared libraries */ -#define ELIBEXEC 83 /* Cannot exec a shared library directly */ -#define EILSEQ 84 /* Illegal byte sequence */ -#define ERESTART 85 /* Interrupted system call should be restarted */ -#define ESTRPIPE 86 /* Streams pipe error */ -#define EUSERS 87 /* Too many users */ -#define ENOTSOCK 88 /* Socket operation on non-socket */ -#define EDESTADDRREQ 89 /* Destination address required */ -#define EMSGSIZE 90 /* Message too long */ -#define EPROTOTYPE 91 /* Protocol wrong type for socket */ -#define ENOPROTOOPT 92 /* Protocol not available */ -#define EPROTONOSUPPORT 93 /* Protocol not supported */ -#define ESOCKTNOSUPPORT 94 /* Socket type not supported */ -#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ -#define ENOTSUP EOPNOTSUPP -#define EPFNOSUPPORT 96 /* Protocol family not supported */ -#define EAFNOSUPPORT 97 /* Address family not supported by protocol */ -#define EADDRINUSE 98 /* Address already in use */ -#define EADDRNOTAVAIL 99 /* Cannot assign requested address */ -#define ENETDOWN 100 /* Network is down */ -#define ENETUNREACH 101 /* Network is unreachable */ -#define ENETRESET 102 /* Network dropped connection because of reset */ -#define ECONNABORTED 103 /* Software caused connection abort */ -#define ECONNRESET 104 /* Connection reset by peer */ -#define ENOBUFS 105 /* No buffer space available */ -#define EISCONN 106 /* Transport endpoint is already connected */ -#define ENOTCONN 107 /* Transport endpoint is not connected */ -#define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */ -#define ETOOMANYREFS 109 /* Too many references: cannot splice */ -#define ETIMEDOUT 110 /* Connection timed out */ -#define ECONNREFUSED 111 /* Connection refused */ -#define EHOSTDOWN 112 /* Host is down */ -#define EHOSTUNREACH 113 /* No route to host */ -#define EALREADY 114 /* Operation already in progress */ -#define EINPROGRESS 115 /* Operation now in progress */ -#define ESTALE 116 /* Stale NFS file handle */ -#define EUCLEAN 117 /* Structure needs cleaning */ -#define ENOTNAM 118 /* Not a XENIX named type file */ -#define ENAVAIL 119 /* No XENIX semaphores available */ -#define EISNAM 120 /* Is a named type file */ -#define EREMOTEIO 121 /* Remote I/O error */ -#define EDQUOT 122 /* Quota exceeded */ - -#define ENOMEDIUM 123 /* No medium found */ -#define EMEDIUMTYPE 124 /* Wrong medium type */ -#define ECANCELED 125 /* Operation Canceled */ - -#define __ELASTERROR 2000 /* Users can add values starting here */ - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_ERRNO_H */ diff --git a/lib/machine/spu/sys/fenv.h b/lib/machine/spu/sys/fenv.h deleted file mode 100644 index e74fa96..0000000 --- a/lib/machine/spu/sys/fenv.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - (C) Copyright 2006, 2007 - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -#ifndef _SYS_FENV_H -#define _SYS_FENV_H - -/* - * The exception macros are such that the functions to pack/unpack them - * will map a 32 bit fenv_t from/to the 128 bit fpscr. - * - * Suffixes: - * _SNGL: single precision - * _DBL: double precision - * _N: element number, no suffix for element 0. - */ - -#define FE_OVERFLOW_SNGL 0x08000000 -#define FE_UNDERFLOW_SNGL 0x04000000 -#define FE_DIFF_SNGL 0x02000000 -#define FE_DIVBYZERO_SNGL 0x00000040 - -#define FE_OVERFLOW_SNGL_1 0x00040000 -#define FE_UNDERFLOW_SNGL_1 0x00020000 -#define FE_DIFF_SNGL_1 0x00010000 -#define FE_DIVBYZERO_SNGL_1 0x00000020 - -#define FE_OVERFLOW_SNGL_2 0x00000200 -#define FE_UNDERFLOW_SNGL_2 0x00000100 -#define FE_DIFF_SNGL_2 0x00000080 -#define FE_DIVBYZERO_SNGL_2 0x00000010 - -#define FE_OVERFLOW_SNGL_3 0x00000004 -#define FE_UNDERFLOW_SNGL_3 0x00000002 -#define FE_DIFF_SNGL_3 0x00000001 -#define FE_DIVBYZERO_SNGL_3 0x00000008 - -#define FE_ALL_EXCEPT_SNGL (FE_OVERFLOW_SNGL | FE_UNDERFLOW_SNGL \ - | FE_DIFF_SNGL | FE_DIVBYZERO_SNGL) -#define FE_ALL_EXCEPT_SNGL_1 (FE_OVERFLOW_SNGL_1 | FE_UNDERFLOW_SNGL_1 \ - | FE_DIFF_SNGL_1 | FE_DIVBYZERO_SNGL_1) -#define FE_ALL_EXCEPT_SNGL_2 (FE_OVERFLOW_SNGL_2 | FE_UNDERFLOW_SNGL_2 \ - | FE_DIFF_SNGL_2 | FE_DIVBYZERO_SNGL_2) -#define FE_ALL_EXCEPT_SNGL_3 (FE_OVERFLOW_SNGL_3 | FE_UNDERFLOW_SNGL_3 \ - | FE_DIFF_SNGL_3 | FE_DIVBYZERO_SNGL_3) - -#define FE_OVERFLOW_DBL 0x01000000 -#define FE_UNDERFLOW_DBL 0x00800000 -#define FE_INEXACT_DBL 0x00400000 -#define FE_INVALID_DBL 0x00200000 -#define FE_NC_NAN_DBL 0x00100000 -#define FE_NC_DENORM_DBL 0x00080000 - -#define FE_OVERFLOW_DBL_1 0x00008000 -#define FE_UNDERFLOW_DBL_1 0x00004000 -#define FE_INEXACT_DBL_1 0x00002000 -#define FE_INVALID_DBL_1 0x00001000 -#define FE_NC_NAN_DBL_1 0x00000800 -#define FE_NC_DENORM_DBL_1 0x00000400 - -#define FE_ALL_EXCEPT_DBL (FE_OVERFLOW_DBL | FE_UNDERFLOW_DBL | \ - FE_INEXACT_DBL | FE_INVALID_DBL | \ - FE_NC_NAN_DBL | FE_NC_DENORM_DBL) -#define FE_ALL_EXCEPT_DBL_1 (FE_OVERFLOW_DBL_1 | FE_UNDERFLOW_DBL_1 | \ - FE_INEXACT_DBL_1 | FE_INVALID_DBL_1 | \ - FE_NC_NAN_DBL_1 | FE_NC_DENORM_DBL_1) - -#define FE_ALL_EXCEPT (FE_ALL_EXCEPT_SNGL | FE_ALL_EXCEPT_SNGL_1 | \ - FE_ALL_EXCEPT_SNGL_2 | FE_ALL_EXCEPT_SNGL_3 | \ - FE_ALL_EXCEPT_DBL | FE_ALL_EXCEPT_DBL_1) - -/* - * Warning: some of these are single and some double precision only, - * because of the hardware implementation. - */ -#define FE_DIVBYZERO (FE_DIVBYZERO_SNGL | FE_DIVBYZERO_SNGL_1 | \ - FE_DIVBYZERO_SNGL_2 | FE_DIVBYZERO_SNGL_3) -#define FE_INEXACT (FE_INEXACT_DBL | FE_INEXACT_DBL_1) -#define FE_INVALID (FE_INVALID_DBL | FE_INVALID_DBL_1) -#define FE_NC_NAN (FE_NC_NAN_DBL | FE_NC_NAN_DBL_1) -#define FE_NC_DENORM (FE_NC_DENORM_DBL | FE_NC_DENORM_DBL_1) - -/* - * __FE_ROUND_ELE_n values are set so that they can easily be used as a - * mask when setting the fpscr. These tell us whether we are setting the - * round mode for a specific element (double precision floating point - * only, so there are only two elements). - */ -#define __FE_ROUND_ELE_0 0xc00 -#define __FE_ROUND_ELE_1 0x300 - -/* - * The following map directly to round values in the fpscr. - */ -#define __FE_SPU_TONEAREST 0 -#define __FE_SPU_TOWARDZERO 1 -#define __FE_SPU_UPWARD 2 -#define __FE_SPU_DOWNWARD 3 - -#define FE_TONEAREST (__FE_ROUND_ELE_0 | (__FE_SPU_TONEAREST << 2)) -#define FE_TOWARDZERO (__FE_ROUND_ELE_0 | (__FE_SPU_TOWARDZERO << 2)) -#define FE_UPWARD (__FE_ROUND_ELE_0 | (__FE_SPU_UPWARD << 2)) -#define FE_DOWNWARD (__FE_ROUND_ELE_0 | (__FE_SPU_DOWNWARD << 2)) - -#define FE_TONEAREST_1 (__FE_ROUND_ELE_1 | __FE_SPU_TONEAREST) -#define FE_TOWARDZERO_1 (__FE_ROUND_ELE_1 | __FE_SPU_TOWARDZERO) -#define FE_UPWARD_1 (__FE_ROUND_ELE_1 | __FE_SPU_UPWARD) -#define FE_DOWNWARD_1 (__FE_ROUND_ELE_1 | __FE_SPU_DOWNWARD) - -typedef unsigned int fexcept_t; -typedef unsigned int fenv_t; - -extern const fenv_t __fe_dfl_env; -#define FE_DFL_ENV (&__fe_dfl_env) - -#endif /* fenv.h */ diff --git a/lib/machine/spu/sys/linux_syscalls.h b/lib/machine/spu/sys/linux_syscalls.h deleted file mode 100644 index a02e897..0000000 --- a/lib/machine/spu/sys/linux_syscalls.h +++ /dev/null @@ -1,310 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Ken Werner -*/ - -#ifndef __LINUX_SYSCALLS_H -#define __LINUX_SYSCALLS_H - -#include - -/* The system call numbers. See kernel source file - arch/powerpc/include/asm/unistd.h. */ -#define __NR_read 3 -#define __NR_write 4 -#define __NR_open 5 -#define __NR_close 6 -#define __NR_waitpid 7 -#define __NR_creat 8 -#define __NR_link 9 -#define __NR_unlink 10 - -#define __NR_chdir 12 -#define __NR_time 13 -#define __NR_mkdod 14 -#define __NR_chmod 15 -#define __NR_lchown 16 - -#define __NR_lseek 19 -#define __NR_getpid 20 - -#define __NR_setuid 23 -#define __NR_getuid 24 -#define __NR_stime 25 - -#define __NR_alarm 27 - -#define __NR_access 33 -#define __NR_nice 34 - -#define __NR_sync 36 -#define __NR_kill 37 -#define __NR_rename 38 -#define __NR_mkdir 39 -#define __NR_rmdir 40 -#define __NR_dup 41 -#define __NR_pipe 42 -#define __NR_times 43 - -#define __NR_brk 45 -#define __NR_setgid 46 -#define __NR_getgid 47 - -#define __NR_geteuid 49 -#define __NR_getegid 50 - -#define __NR_ioctl 54 -#define __NR_fcntl 55 - -#define __NR_setpgid 57 - -#define __NR_umask 60 -#define __NR_chroot 61 - -#define __NR_dup2 63 -#define __NR_getppid 64 -#define __NR_getpgrp 65 -#define __NR_setsid 66 - -#define __NR_sgetmask 68 -#define __NR_ssetmask 69 -#define __NR_setreuid 70 -#define __NR_setregid 71 - -#define __NR_sethostname 74 -#define __NR_setrlimit 75 - -#define __NR_getrusage 77 -#define __NR_gettimeofday 78 -#define __NR_settimeofday 79 -#define __NR_getgroups 80 -#define __NR_setgroups 81 - -#define __NR_symlink 83 - -#define __NR_readlink 85 - -#define __NR_mmap 90 -#define __NR_munmap 91 -#define __NR_truncate 92 -#define __NR_ftruncate 93 -#define __NR_fchmod 94 -#define __NR_fchown 95 -#define __NR_getpriority 96 -#define __NR_setpriority 97 - -#define __NR_socketcall 102 -#define __NR_syslog 103 -#define __NR_setitimer 104 -#define __NR_getitimer 105 -#define __NR_newstat 106 -#define __NR_newlstat 107 -#define __NR_newfstat 108 - -#define __NR_vhangup 111 - -#define __NR_wait4 114 - -#define __NR_sysinfo 116 - -#define __NR_fsync 118 - -#define __NR_setdomainname 121 -#define __NR_newuname 122 - -#define __NR_adjtimex 124 -#define __NR_mprotect 125 - -#define __NR_getpgid 132 -#define __NR_fchdir 133 -#define __NR_bdflush 134 - -#define __NR_personality 136 - -#define __NR_setfsuid 138 -#define __NR_setfsgid 139 -#define __NR__llseek 140 -#define __NR_getdents 141 -#define __NR__newselect 142 -#define __NR_flock 143 -#define __NR_msync 144 -#define __NR_readv 145 -#define __NR_writev 146 -#define __NR_getsid 147 -#define __NR_fdatasync 148 - -#define __NR_mlock 150 -#define __NR_munlock 151 -#define __NR_mlockall 152 -#define __NR_munlockall 153 -#define __NR_sched_setparam 154 -#define __NR_sched_getparam 155 -#define __NR_sched_setscheduler 156 -#define __NR_sched_getscheduler 157 -#define __NR_sched_yield 158 -#define __NR_sched_get_priority_max 159 -#define __NR_sched_get_priority_min 160 -#define __NR_sched_rr_get_interval 161 -#define __NR_nanosleep 162 -#define __NR_mremap 163 -#define __NR_setresuid 164 -#define __NR_getresuid 165 - -#define __NR_poll 167 - -#define __NR_setresgid 169 -#define __NR_getresgid 170 -#define __NR_prctl 171 - -#define __NR_pread64 179 -#define __NR_pwrite64 180 -#define __NR_chown 181 -#define __NR_getcwd 182 -#define __NR_capget 183 -#define __NR_capset 184 - -#define __NR_sendfile 185 - -#define __NR_getrlimit 190 -#define __NR_readahead 191 - -#define __NR_getdents64 202 -#define __NR_pivot_root 203 - -#define __NR_madvise 205 -#define __NR_mincore 206 -#define __NR_gettid 207 -#define __NR_tkill 208 -#define __NR_setxattr 209 -#define __NR_lsetxattr 210 -#define __NR_fsetxattr 211 -#define __NR_getxattr 212 -#define __NR_lgetxattr 213 -#define __NR_fgetxattr 214 -#define __NR_listxattr 215 -#define __NR_llistxattr 216 -#define __NR_flistxattr 217 -#define __NR_removexattr 218 -#define __NR_lremovexattr 219 -#define __NR_fremovexattr 220 -#define __NR_futex 221 -#define __NR_sched_setaffinity 222 -#define __NR_sched_getaffinity 223 - -#define __NR_io_setup 227 -#define __NR_io_destroy 228 -#define __NR_io_getevents 229 -#define __NR_io_submit 230 -#define __NR_io_cancel 231 - -#define __NR_fadvise64 233 - -#define __NR_epoll_create 236 -#define __NR_epoll_ctl 237 -#define __NR_epoll_wait 238 -#define __NR_remap_file_pages 239 -#define __NR_timer_create 240 -#define __NR_timer_settime 241 -#define __NR_timer_gettime 242 -#define __NR_timer_getoverrun 243 -#define __NR_timer_delete 244 -#define __NR_clock_settime 245 -#define __NR_clock_gettime 246 -#define __NR_clock_getres 247 -#define __NR_clock_nanosleep 248 - -#define __NR_tgkill 250 -#define __NR_utimes 251 -#define __NR_statfs64 252 -#define __NR_fstatfs64 253 - -#define __NR_rtas 255 - -#define __NR_unshare 282 -#define __NR_splice 283 -#define __NR_tee 284 -#define __NR_vmsplice 285 -#define __NR_openat 286 -#define __NR_mkdirat 287 -#define __NR_mknodat 288 -#define __NR_fchownat 289 -#define __NR_futimesat 290 -#define __NR_fstatat64 291 -#define __NR_unlinkat 292 -#define __NR_renameat 293 -#define __NR_linkat 294 -#define __NR_symlinkat 295 -#define __NR_readlinkat 296 -#define __NR_fchmodat 297 -#define __NR_faccessat 298 -#define __NR_get_robust_list 299 -#define __NR_set_robust_list 300 -#define __NR_move_pages 301 -#define __NR_getcpu 302 - -#define __NR_utimensat 304 -#define __NR_signalfd 305 -#define __NR_timerfd 306 -#define __NR_eventfd 307 -#define __NR_sync_file_range2 308 -#define __NR_fallocate 309 -#define __NR_subpage_prot 310 -#define __NR_timerfd_settime 311 -#define __NR_timerfd_gettime 312 -#define __NR_signalfd4 313 -#define __NR_eventfd2 314 -#define __NR_epoll_create1 315 -#define __NR_dup3 316 -#define __NR_pipe2 317 -#define __NR_inotify_init1 318 - -/* System callbacks from the SPU. See kernel source file - arch/powerpc/include/asm/spu.h. */ -struct spu_syscall_block -{ - unsigned long long nr_ret; /* System call nr and return value. */ - unsigned long long parm[6]; /* System call arguments. */ -}; - -#ifdef __cplusplus -extern "C" { -#endif - -/* Issues a Linux system call. */ -int __linux_syscall (struct spu_syscall_block *s); - -/* Linux system calls. */ -pid_t linux_getpid(void); -pid_t linux_gettid(void); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/lib/machine/spu/sys/mman.h b/lib/machine/spu/sys/mman.h deleted file mode 100644 index 84fad62..0000000 --- a/lib/machine/spu/sys/mman.h +++ /dev/null @@ -1,85 +0,0 @@ -/* -(C) Copyright IBM Corp. 2007 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -#ifndef _MMAN_H_ -#define _MMAN_H_ - -#include - -/* - * Prots to 'mmap'. - */ -#define PROT_READ 0x1 -#define PROT_WRITE 0x2 -#define PROT_EXEC 0x4 -#define PROT_NONE 0x0 -/* - * Flags to 'mmap'. - */ -#define MAP_SHARED 0x001 -#define MAP_PRIVATE 0x002 -#define MAP_FIXED 0x010 -#define MAP_FILE 0x000 -#define MAP_ANONYMOUS 0x020 -#define MAP_ANON MAP_ANONYMOUS -#define MAP_GROWSDOWN 0x0100 -#define MAP_DENYWRITE 0x0800 -#define MAP_EXECUTABLE 0x1000 -#define MAP_LOCKED 0x0080 -#define MAP_NORESERVE 0x0040 -/* - * Failed flag from 'mmap'. - */ -#define MAP_FAILED_EADDR ((unsigned long long) (-1LL)) -/* - * Flags to 'mremap'. - */ -#define MREMAP_MAYMOVE 1 -/* - * Flags to 'msync'. - */ -#define MS_ASYNC 1 -#define MS_SYNC 4 -#define MS_INVALIDATE 2 - - -extern int shm_open(const char *name, int oflag, mode_t mode); -extern int shm_unlink(const char * name); - -unsigned long long mmap_eaddr(unsigned long long start, size_t length, int - prot, int flags, int fd, off_t offset); -unsigned long long mremap_eaddr(unsigned long long old_addr, size_t - old_size, size_t new_size, int flags); -unsigned long long msync_eaddr(unsigned long long start, size_t length, - int flags); -unsigned long long munmap_eaddr(unsigned long long start, size_t length); - -#endif /* _MMAN_H_ */ diff --git a/lib/machine/spu/sys/sched.h b/lib/machine/spu/sys/sched.h deleted file mode 100644 index 60d95c9..0000000 --- a/lib/machine/spu/sys/sched.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef _SYS_SCHED_H -#define _SYS_SCHED_H -#ifdef __cplusplus -extern "C" { -#endif - -int sched_yield(void); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/lib/machine/spu/sys/syscall.h b/lib/machine/spu/sys/syscall.h deleted file mode 100644 index caac531..0000000 --- a/lib/machine/spu/sys/syscall.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _SYS_SYSCALL_H -#define _SYS_SYSCALL_H -#ifdef __cplusplus -extern "C" { -#endif -int __send_to_ppe(unsigned int signalcode, unsigned int opcode, void *data); -#ifdef __cplusplus -} -#endif -#endif diff --git a/lib/machine/spu/sys/uio.h b/lib/machine/spu/sys/uio.h deleted file mode 100644 index 9ed1549..0000000 --- a/lib/machine/spu/sys/uio.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef _SYS_UIO_H -#define _SYS_UIO_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Per POSIX - */ - -struct iovec { - void *iov_base; - size_t iov_len; -}; - -ssize_t readv(int, const struct iovec *, int); -ssize_t writev(int, const struct iovec *, int); - -#ifdef __cplusplus -}; -#endif - -#endif diff --git a/lib/machine/spu/sys/utime.h b/lib/machine/spu/sys/utime.h deleted file mode 100644 index 18731a1..0000000 --- a/lib/machine/spu/sys/utime.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _SYS_UTIME_H -#define _SYS_UTIME_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Per POSIX - */ -struct utimbuf -{ - time_t actime; - time_t modtime; -}; - -int utime(const char *, const struct utimbuf *); - -#ifdef __cplusplus -}; -#endif - -#endif diff --git a/lib/machine/spu/syscall.def b/lib/machine/spu/syscall.def deleted file mode 100644 index bcf2e47..0000000 --- a/lib/machine/spu/syscall.def +++ /dev/null @@ -1,38 +0,0 @@ -# -# (C) Copyright 2007 TOSHIBA CORPORATION -# All Rights Reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the names of Toshiba nor the names of its -# contributors may be used to endorse or promote products derived from this -# software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -# -# OPCODE NAME FP PARMS(Number of fixed arguments) -# -SPE_C99_VFPRINTF fprintf 1 2 -SPE_C99_VFSCANF fscanf 1 2 -SPE_C99_VPRINTF printf 0 1 -SPE_C99_VSCANF scanf 0 1 -SPE_C99_VSNPRINTF snprintf 0 3 -SPE_C99_VSPRINTF sprintf 0 2 -SPE_C99_VSSCANF sscanf 0 2 diff --git a/lib/machine/spu/tmpfile.c b/lib/machine/spu/tmpfile.c deleted file mode 100644 index e926cbc..0000000 --- a/lib/machine/spu/tmpfile.c +++ /dev/null @@ -1,65 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -#ifndef _REENT_ONLY - -FILE * -tmpfile (void) -{ - int ret; - FILE* fp; - struct _reent *ptr = _REENT; - - CHECK_INIT(ptr); - - fp = __sfp(ptr); - if (!fp) { - return NULL; - } - - ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_TMPFILE, &ret); - - if (ret) { - fp->_fp = ret; - return fp; - } - else { - __sfp_free(fp); - return NULL; - } -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/tmpnam.c b/lib/machine/spu/tmpnam.c deleted file mode 100644 index 898a1a7..0000000 --- a/lib/machine/spu/tmpnam.c +++ /dev/null @@ -1,43 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include - -#include "c99ppe.h" - -char * -tmpnam (char *s) -{ - /* The return value gets written over buf - */ - return (char*) __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_TMPNAM, &s); -} diff --git a/lib/machine/spu/ungetc.c b/lib/machine/spu/ungetc.c deleted file mode 100644 index 631e71d..0000000 --- a/lib/machine/spu/ungetc.c +++ /dev/null @@ -1,63 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -typedef struct -{ - int c; - unsigned int pad0[ 3 ]; - int fp; - unsigned int pad1[ 3 ]; -} c99_ungetc_t; - -#ifndef _REENT_ONLY - -int -ungetc (c, fp) - int c; - register FILE *fp; -{ - c99_ungetc_t args; - - CHECK_INIT(_REENT); - - args.c = c; - args.fp = fp->_fp; - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_UNGETC, &args); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/usleep.c b/lib/machine/spu/usleep.c deleted file mode 100644 index c587f31..0000000 --- a/lib/machine/spu/usleep.c +++ /dev/null @@ -1,18 +0,0 @@ -/* Copied from libc/posix/usleep.c, removed the check for HAVE_NANOSLEEP */ - -/* Written 2002 by Jeff Johnston */ - -#include -#include -#include - -int usleep(useconds_t useconds) -{ - struct timespec ts; - - ts.tv_sec = (long int)useconds / 1000000; - ts.tv_nsec = ((long int)useconds % 1000000) * 1000; - if (!nanosleep(&ts,&ts)) return 0; - if (errno == EINTR) return ts.tv_sec; - return -1; -} diff --git a/lib/machine/spu/vec_literal.h b/lib/machine/spu/vec_literal.h deleted file mode 100644 index d376a1b..0000000 --- a/lib/machine/spu/vec_literal.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _VEC_LITERAL_H_ -#define _VEC_LITERAL_H_ - -/* This header files provides an abstraction for the various implementations - * of vector literal construction. The two formats are: - * - * 1) Altivec styled using parenthesis - * 2) C grammer friendly styled using curly braces - * - * The macro, VEC_LITERAL has been developed to provide some portability - * in these two styles. To achieve true portability, user must specify all - * elements of the vector being initialized. A single element can be provided - * but only the first element guarenteed across both construction styles. - * - * The VEC_SPLAT_* macros have been provided for portability of vector literal - * construction when all the elements of the vector contain the same value. - */ - -/* Use curly brace style. - */ -#define VEC_LITERAL(_type, ...) ((_type){__VA_ARGS__}) - -#define VEC_SPLAT_U8(_val) ((__vector unsigned char){_val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val}) -#define VEC_SPLAT_S8(_val) ((__vector signed char){_val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val}) - -#define VEC_SPLAT_U16(_val) ((__vector unsigned short){_val, _val, _val, _val, _val, _val, _val, _val}) -#define VEC_SPLAT_S16(_val) ((__vector signed short){_val, _val, _val, _val, _val, _val, _val, _val}) - -#define VEC_SPLAT_U32(_val) ((__vector unsigned int){_val, _val, _val, _val}) -#define VEC_SPLAT_S32(_val) ((__vector signed int){_val, _val, _val, _val}) -#define VEC_SPLAT_F32(_val) ((__vector float){_val, _val, _val, _val}) - -#define VEC_SPLAT_U64(_val) ((__vector unsigned long long){_val, _val}) -#define VEC_SPLAT_S64(_val) ((__vector signed long long){_val, _val}) -#define VEC_SPLAT_F64(_val) ((__vector double){_val, _val}) - -#endif /* _VEC_LITERAL_H_ */ diff --git a/lib/machine/spu/vfiprintf.c b/lib/machine/spu/vfiprintf.c deleted file mode 100644 index 83394a6..0000000 --- a/lib/machine/spu/vfiprintf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define INTEGER_ONLY -#include "vfprintf.c" diff --git a/lib/machine/spu/vfiscanf.c b/lib/machine/spu/vfiscanf.c deleted file mode 100644 index 261122e..0000000 --- a/lib/machine/spu/vfiscanf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define INTEGER_ONLY -#include "vfscanf.c" diff --git a/lib/machine/spu/vfprintf.c b/lib/machine/spu/vfprintf.c deleted file mode 100644 index deda415..0000000 --- a/lib/machine/spu/vfprintf.c +++ /dev/null @@ -1,71 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -#include - -#ifdef INTEGER_ONLY -# define vfprintf vfiprintf -#endif - -typedef struct -{ - int fp; - unsigned int pad0[ 3 ]; - char* fmt; - unsigned int pad1[ 3 ]; - va_list ap; -} c99_vfprintf_t; - -#ifndef _REENT_ONLY - -int -vfprintf (FILE *__restrict fp, - const char *__restrict fmt0, - va_list ap) -{ - c99_vfprintf_t args; - - CHECK_INIT(_REENT); - - args.fp = fp->_fp; - args.fmt = (char*) fmt0; - va_copy(args.ap,ap); - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFPRINTF, &args); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/vfscanf.c b/lib/machine/spu/vfscanf.c deleted file mode 100644 index 9e093ba..0000000 --- a/lib/machine/spu/vfscanf.c +++ /dev/null @@ -1,71 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -#include - -#ifdef INTEGER_ONLY -# define vfscanf vfiscanf -#endif - -typedef struct -{ - int fp; - unsigned int pad0[ 3 ]; - char* fmt; - unsigned int pad1[ 3 ]; - va_list ap; -} c99_vfscanf_t; - -#ifndef _REENT_ONLY - -int -vfscanf (FILE *__restrict fp, - const char *__restrict fmt, - va_list ap) -{ - c99_vfscanf_t args; - - CHECK_INIT(_REENT); - - args.fp = fp->_fp; - args.fmt = (char*) fmt; - va_copy(args.ap,ap); - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFSCANF, &args); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/viprintf.c b/lib/machine/spu/viprintf.c deleted file mode 100644 index f0753ff..0000000 --- a/lib/machine/spu/viprintf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define INTEGER_ONLY -#include "vprintf.c" diff --git a/lib/machine/spu/viscanf.c b/lib/machine/spu/viscanf.c deleted file mode 100644 index 4e239e3..0000000 --- a/lib/machine/spu/viscanf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define INTEGER_ONLY -#include "vscanf.c" diff --git a/lib/machine/spu/vprintf.c b/lib/machine/spu/vprintf.c deleted file mode 100644 index d2ebc4e..0000000 --- a/lib/machine/spu/vprintf.c +++ /dev/null @@ -1,33 +0,0 @@ -#include <_ansi.h> -#include - -#include "c99ppe.h" - -#include - -#ifdef INTEGER_ONLY -# define vprintf viprintf -#endif - -typedef struct -{ - const char* fmt; - unsigned int pad0[ 3 ]; - va_list ap; -} c99_vprintf_t; - -#ifndef _REENT_ONLY - -int -vprintf (const char *fmt, - va_list ap) -{ - c99_vprintf_t args; - - args.fmt = fmt; - va_copy(args.ap,ap); - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VPRINTF, &args); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/vscanf.c b/lib/machine/spu/vscanf.c deleted file mode 100644 index c246d57..0000000 --- a/lib/machine/spu/vscanf.c +++ /dev/null @@ -1,65 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -#include - -#ifdef INTEGER_ONLY -# define vscanf viscanf -#endif - -typedef struct -{ - char* fmt; - unsigned int pad0[ 3 ]; - va_list ap; -} c99_vscanf_t; - -#ifndef _REENT_ONLY - -int -vscanf (const char *fmt, - va_list ap) -{ - c99_vscanf_t args; - - args.fmt = (char*) fmt; - va_copy(args.ap,ap); - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSCANF, &args); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/vsiprintf.c b/lib/machine/spu/vsiprintf.c deleted file mode 100644 index fbd64e4..0000000 --- a/lib/machine/spu/vsiprintf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define INTEGER_ONLY -#include "vsprintf.c" diff --git a/lib/machine/spu/vsiscanf.c b/lib/machine/spu/vsiscanf.c deleted file mode 100644 index 73a44cd..0000000 --- a/lib/machine/spu/vsiscanf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define INTEGER_ONLY -#include "vsscanf.c" diff --git a/lib/machine/spu/vsniprintf.c b/lib/machine/spu/vsniprintf.c deleted file mode 100644 index fb6f641..0000000 --- a/lib/machine/spu/vsniprintf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define INTEGER_ONLY -#include "vsnprintf.c" diff --git a/lib/machine/spu/vsnprintf.c b/lib/machine/spu/vsnprintf.c deleted file mode 100644 index 298165f..0000000 --- a/lib/machine/spu/vsnprintf.c +++ /dev/null @@ -1,43 +0,0 @@ -#include <_ansi.h> -#include - -#include "c99ppe.h" - -#include - -#ifdef INTEGER_ONLY -# define vsnprintf vsniprintf -#endif - -typedef struct -{ - char* str; - unsigned int pad0[ 3 ]; - size_t size; - unsigned int pad1[ 3 ]; - const char* fmt; - unsigned int pad2[ 3 ]; - va_list ap; -} c99_vsnprintf_t; - -#ifndef _REENT_ONLY - -int -vsnprintf (char *__restrict str, - size_t size, - const char *__restrict fmt, - va_list ap) -{ - c99_vsnprintf_t args; - - CHECK_STR_INIT(_REENT); - - args.str = str; - args.size = size; - args.fmt = fmt; - va_copy(args.ap,ap); - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSNPRINTF, &args); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/vsprintf.c b/lib/machine/spu/vsprintf.c deleted file mode 100644 index 8317a66..0000000 --- a/lib/machine/spu/vsprintf.c +++ /dev/null @@ -1,40 +0,0 @@ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -#include - -#ifdef INTEGER_ONLY -# define vsprintf vsiprintf -#endif - -typedef struct -{ - char *str; - unsigned int pad0[ 3 ]; - char *fmt; - unsigned int pad1[ 3 ]; - va_list ap; -} c99_vsprintf_t; - -#ifndef _REENT_ONLY - -int -vsprintf (char *__restrict str, - const char *__restrict fmt, - va_list ap) -{ - c99_vsprintf_t args; - - CHECK_STR_INIT(_REENT); - - args.str = str; - args.fmt = (char*) fmt; - va_copy(args.ap,ap); - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSPRINTF, &args); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/vsscanf.c b/lib/machine/spu/vsscanf.c deleted file mode 100644 index ed64214..0000000 --- a/lib/machine/spu/vsscanf.c +++ /dev/null @@ -1,71 +0,0 @@ -/* -(C) Copyright IBM Corp. 2006 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Joel Schopp -*/ - -#include <_ansi.h> -#include - -#include "c99ppe.h" - -#include - -#ifdef INTEGER_ONLY -# define vsscanf vsiscanf -#endif - -typedef struct -{ - const char *str; - unsigned int pad0[ 3 ]; - const char *fmt; - unsigned int pad1[ 3 ]; - va_list ap; -} c99_vsscanf_t; - -#ifndef _REENT_ONLY - -int -vsscanf (const char *__restrict str, - const char *__restrict fmt, - va_list ap) -{ - c99_vsscanf_t args; - - CHECK_STR_INIT(_REENT); - - args.str = str; - args.fmt = (char*) fmt; - va_copy(args.ap,ap); - - return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSSCANF, &args); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/machine/spu/write_ea.c b/lib/machine/spu/write_ea.c deleted file mode 100644 index 05d6bdf..0000000 --- a/lib/machine/spu/write_ea.c +++ /dev/null @@ -1,60 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Ken Werner -*/ - -#include "ea_internal.h" -#include -#include -#include "sys/linux_syscalls.h" - -extern void __cache_flush (void) __attribute__ ((weak)); - - -COMPAT_EA_ALIAS (write_ea); - -ssize_ea_t -write_ea (int fd, __ea const void *buf, size_ea_t count) -{ - struct spu_syscall_block s = { - __NR_write, - { - fd, - (size_ea_t) buf, - count, - 0, - 0, - 0} - }; - /* Flush cache only if the application really uses the software cache. */ - if (__cache_flush) - __cache_flush (); - return __linux_syscall (&s); -} diff --git a/lib/machine/spu/writev_ea.c b/lib/machine/spu/writev_ea.c deleted file mode 100644 index efda38b..0000000 --- a/lib/machine/spu/writev_ea.c +++ /dev/null @@ -1,69 +0,0 @@ -/* -(C) Copyright IBM Corp. 2008 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Author: Ken Werner -*/ - -#include "ea_internal.h" -#include -#include -#include "sys/linux_syscalls.h" - -extern void __cache_flush (void) __attribute__ ((weak)); - -COMPAT_EA_ALIAS (writev_ea); - -ssize_ea_t -writev_ea (int fd, struct iovec_ea *vector, int count) -{ -#ifdef __EA32__ - int i; -#endif - struct spu_syscall_block s = { - __NR_writev, - { - fd, - (size_ea_t) (__ea void *) vector, - count, - 0, - 0, - 0} - }; -#ifdef __EA32__ - for (i = 0; i < count; ++i) - { - vector[i].__pad1 = 0x0; /* 32 bit padding */ - vector[i].__pad2 = 0x0; /* 32 bit padding */ - } -#endif - /* Flush cache only if the application really uses the software cache. */ - if (__cache_flush) - __cache_flush (); - return __linux_syscall (&s); -} diff --git a/lib/machine/tic4x/Makefile.inc b/lib/machine/tic4x/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/tic4x/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/tic4x/setjmp.S b/lib/machine/tic4x/setjmp.S deleted file mode 100644 index d6e8d25..0000000 --- a/lib/machine/tic4x/setjmp.S +++ /dev/null @@ -1,75 +0,0 @@ -/* setjmp/longjmp routines. - * - * Written by Michael Hayes . - * - * The author hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - - .sect .text - .global setjmp - .global longjmp - -setjmp: - pop r1 - ldi sp, ar0 -#ifndef _REGPARM - ldi *ar0, ar2 -#endif - - sti r4, *ar2++ - sti r5, *ar2++ - stf r6, *ar2++ - stf r7, *ar2++ -#ifdef _TMS320C4x - sti r8, *ar2++ -#endif - sti ar3, *ar2++ - sti ar4, *ar2++ - sti ar5, *ar2++ - sti ar6, *ar2++ - sti ar7, *ar2++ - bd r1 - sti r1, *ar2++ - sti ar0, *ar2 - ldi 0, r0 - - -longjmp: -#ifndef _REGPARM - ldi sp, ar0 - ldi *-ar0(1), ar2 - ldi *-ar0(2), r0 - ldiz 1, r0 -#else - ldi r2, r0 - ldiz 1, r0 -#endif - - ldi *ar2++, r4 - ldi *ar2++, r5 - ldf *ar2++, r6 - ldf *ar2++, r7 -#ifdef _TMS320C4x - ldi *ar2++, r8 -#endif - ldi *ar2++, ar3 - ldi *ar2++, ar4 - ldi *ar2++, ar5 - ldi *ar2++, ar6 - ldi *ar2++, ar7 - ldi *ar2++, r1 - ldi *ar2, sp - - b r1 - .end - - - diff --git a/lib/machine/tic6x/Makefile.inc b/lib/machine/tic6x/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/tic6x/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/tic6x/setjmp.S b/lib/machine/tic6x/setjmp.S deleted file mode 100644 index cd40d58..0000000 --- a/lib/machine/tic6x/setjmp.S +++ /dev/null @@ -1,96 +0,0 @@ -;****************************************************************************** -;* SETJMP v7.2.0I10181 * -;* * -;* Copyright (c) 1996-2010 Texas Instruments Incorporated * -;* http://www.ti.com/ * -;* * -;* Redistribution and use in source and binary forms, with or without * -;* modification, are permitted provided that the following conditions * -;* are met: * -;* * -;* Redistributions of source code must retain the above copyright * -;* notice, this list of conditions and the following disclaimer. * -;* * -;* Redistributions in binary form must reproduce the above copyright * -;* notice, this list of conditions and the following disclaimer in * -;* the documentation and/or other materials provided with the * -;* distribution. * -;* * -;* Neither the name of Texas Instruments Incorporated nor the names * -;* of its contributors may be used to endorse or promote products * -;* derived from this software without specific prior written * -;* permission. * -;* * -;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * -;* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * -;* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * -;* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * -;* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * -;* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * -;* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * -;* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * -;* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * -;* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * -;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * -;* * -;****************************************************************************** - -.text -.globl setjmp -.type setjmp,%function -setjmp: - MV .L2X A4, B4 -|| STW .D1T2 B3, *+A4(48) - - STW .D1T1 A10, *+A4(0) -|| STW .D2T2 B10, *+B4(4) -|| RET .S2 B3 - - STW .D1T1 A11, *+A4(8) -|| STW .D2T2 B11, *+B4(12) - - STW .D1T1 A12, *+A4(16) -|| STW .D2T2 B12, *+B4(20) - - STW .D1T1 A13, *+A4(24) -|| STW .D2T2 B13, *+B4(28) - - STW .D1T1 A14, *+A4(32) -|| STW .D2T2 B14, *+B4(36) - - STW .D1T1 A15, *+A4(40) -|| STW .D2T2 B15, *+B4(44) -|| ZERO .S1 A4 -.size setjmp, . - setjmp - -.globl longjmp -.type longjmp,%function -longjmp: - LDW .D1T1 *+A4(48), A3 - - MV .L2X A4, B6 -|| MV .S1 A4, A6 -|| MV .D2 B4, B2 - - LDW .D1T1 *+A6(0), A10 -|| LDW .D2T2 *+B6(4), B10 -|| [B2] MV .L1X B4, A4 -|| [!B2] MVK .S1 1, A4 - - LDW .D1T1 *+A6(8), A11 -|| LDW .D2T2 *+B6(12), B11 - - LDW .D1T1 *+A6(16), A12 -|| LDW .D2T2 *+B6(20), B12 - - LDW .D1T1 *+A6(24), A13 -|| LDW .D2T2 *+B6(28), B13 - - LDW .D1T1 *+A6(32), A14 -|| LDW .D2T2 *+B6(36), B14 - - LDW .D1T1 *+A6(40), A15 -|| LDW .D2T2 *+B6(44), B15 -|| RET .S2X A3 - NOP 5 -.size longjmp, . - longjmp diff --git a/lib/machine/tic80/Makefile.inc b/lib/machine/tic80/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/tic80/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/tic80/setjmp.S b/lib/machine/tic80/setjmp.S deleted file mode 100644 index 1946344..0000000 --- a/lib/machine/tic80/setjmp.S +++ /dev/null @@ -1,50 +0,0 @@ -/* These are predefined by new versions of GNU cpp. */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* Use the right prefix for global labels. */ - -#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) - - .global SYM (setjmp) - .global SYM (_setjmp) - .global SYM (longjmp) - - .section .text,"x" - .align 4 -SYM (_setjmp): -SYM (setjmp): - st.d 0(r2),r20 - st.d 8(r2),r22 - st.d 16(r2),r24 - st.d 24(r2),r26 - st.d 32(r2),r28 - st.d 40(r2),r30 - st 48(r2),r1 - jsr r31(r0),r0 - addu 0,r0,r2 - - .section .text,"x" - .align 4 -SYM (longjmp): - ld.d 0(r2),r20 - ld.d 8(r2),r22 - ld.d 16(r2),r24 - ld.d 24(r2),r26 - ld.d 32(r2),r28 - ld.d 40(r2),r30 - bcnd L1,r4,ne0.w - ld 48(r2),r1 - - jsr r31(r0),r0 - addu 1,r0,r2 -L1: - jsr r31(r0),r0 - addu r4,r0,r2 diff --git a/lib/machine/v850/Makefile.inc b/lib/machine/v850/Makefile.inc deleted file mode 100644 index 67137bc..0000000 --- a/lib/machine/v850/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S diff --git a/lib/machine/v850/setjmp.S b/lib/machine/v850/setjmp.S deleted file mode 100644 index 4b01537..0000000 --- a/lib/machine/v850/setjmp.S +++ /dev/null @@ -1,47 +0,0 @@ - .file "setjmp.S" - - .section .text - .align 1 - .global _setjmp -_setjmp: - st.w r1,0[r6] - st.w r3,4[r6] - st.w r4,8[r6] - st.w r20,12[r6] - st.w r21,16[r6] - st.w r22,20[r6] - st.w r23,24[r6] - st.w r24,28[r6] - st.w r25,32[r6] - st.w r26,36[r6] - st.w r27,40[r6] - st.w r28,44[r6] - st.w r29,48[r6] - st.w r30,52[r6] - st.w r31,56[r6] - mov r0, r10 - jmp [r31] - - .global _longjmp -_longjmp: - ld.w 0[r6],r1 - ld.w 4[r6],r3 - ld.w 8[r6],r4 - ld.w 12[r6],r20 - ld.w 16[r6],r21 - ld.w 20[r6],r22 - ld.w 24[r6],r23 - ld.w 28[r6],r24 - ld.w 32[r6],r25 - ld.w 36[r6],r26 - ld.w 40[r6],r27 - ld.w 44[r6],r28 - ld.w 48[r6],r29 - ld.w 52[r6],r30 - ld.w 56[r6],r31 - cmp r7, r0 - jne 1f - mov 1,r7 -1: - mov r7, r10 - jmp [r31] diff --git a/lib/machine/visium/Makefile.inc b/lib/machine/visium/Makefile.inc deleted file mode 100644 index f931eaa..0000000 --- a/lib/machine/visium/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/memcpy.c %D%/memset.c %D%/memmove.c %D%/setjmp.S diff --git a/lib/machine/visium/memcpy.c b/lib/machine/visium/memcpy.c deleted file mode 100644 index e644031..0000000 --- a/lib/machine/visium/memcpy.c +++ /dev/null @@ -1,879 +0,0 @@ -/* memcpy for the Visium processor. - - Copyright (c) 2015 Rolls-Royce Controls and Data Services Limited. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Rolls-Royce Controls and Data Services Limited nor - the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - THE POSSIBILITY OF SUCH DAMAGE. */ - -/* This file must be kept in sync with libgcc/config/visium/memcpy.c */ - -#include -#include "memcpy.h" -#include "../../string/local.h" - -#define INST_BARRIER __asm__ __volatile__ ("":::"memory"); - -#define MOVE_32_OBJECTS(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - m1 = in [1]; \ - m2 = in [2]; \ - m3 = in [3]; \ - out [0] = m0; \ - out [1] = m1; \ - out [2] = m2; \ - out [3] = m3; \ - INST_BARRIER \ - m0 = in [4]; \ - m1 = in [5]; \ - m2 = in [6]; \ - m3 = in [7]; \ - out [4] = m0; \ - out [5] = m1; \ - out [6] = m2; \ - out [7] = m3; \ - INST_BARRIER \ - m0 = in [8]; \ - m1 = in [9]; \ - m2 = in [10]; \ - m3 = in [11]; \ - out [8] = m0; \ - out [9] = m1; \ - out [10] = m2; \ - out [11] = m3; \ - INST_BARRIER \ - m0 = in [12]; \ - m1 = in [13]; \ - m2 = in [14]; \ - m3 = in [15]; \ - out [12] = m0; \ - out [13] = m1; \ - out [14] = m2; \ - out [15] = m3; \ - INST_BARRIER \ - m0 = in [16]; \ - m1 = in [17]; \ - m2 = in [18]; \ - m3 = in [19]; \ - out [16] = m0; \ - out [17] = m1; \ - out [18] = m2; \ - out [19] = m3; \ - INST_BARRIER \ - m0 = in [20]; \ - m1 = in [21]; \ - m2 = in [22]; \ - m3 = in [23]; \ - out [20] = m0; \ - out [21] = m1; \ - out [22] = m2; \ - out [23] = m3; \ - INST_BARRIER \ - m0 = in [24]; \ - m1 = in [25]; \ - m2 = in [26]; \ - m3 = in [27]; \ - out [24] = m0; \ - out [25] = m1; \ - out [26] = m2; \ - out [27] = m3; \ - INST_BARRIER \ - m0 = in [28]; \ - m1 = in [29]; \ - m2 = in [30]; \ - m3 = in [31]; \ - out [28] = m0; \ - out [29] = m1; \ - out [30] = m2; \ - out [31] = m3; \ - INST_BARRIER \ - in += 32; \ - out += 32; \ -} while(0) - -#define MOVE_16_OBJECTS(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - m1 = in [1]; \ - m2 = in [2]; \ - m3 = in [3]; \ - out [0] = m0; \ - out [1] = m1; \ - out [2] = m2; \ - out [3] = m3; \ - INST_BARRIER \ - m0 = in [4]; \ - m1 = in [5]; \ - m2 = in [6]; \ - m3 = in [7]; \ - out [4] = m0; \ - out [5] = m1; \ - out [6] = m2; \ - out [7] = m3; \ - INST_BARRIER \ - m0 = in [8]; \ - m1 = in [9]; \ - m2 = in [10]; \ - m3 = in [11]; \ - out [8] = m0; \ - out [9] = m1; \ - out [10] = m2; \ - out [11] = m3; \ - INST_BARRIER \ - m0 = in [12]; \ - m1 = in [13]; \ - m2 = in [14]; \ - m3 = in [15]; \ - out [12] = m0; \ - out [13] = m1; \ - out [14] = m2; \ - out [15] = m3; \ - INST_BARRIER \ - in += 16; \ - out += 16; \ -} while(0) - -#define MOVE_12_OBJECTS(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - m1 = in [1]; \ - m2 = in [2]; \ - m3 = in [3]; \ - out [0] = m0; \ - out [1] = m1; \ - out [2] = m2; \ - out [3] = m3; \ - INST_BARRIER \ - m0 = in [4]; \ - m1 = in [5]; \ - m2 = in [6]; \ - m3 = in [7]; \ - out [4] = m0; \ - out [5] = m1; \ - out [6] = m2; \ - out [7] = m3; \ - INST_BARRIER \ - m0 = in [8]; \ - m1 = in [9]; \ - m2 = in [10]; \ - m3 = in [11]; \ - out [8] = m0; \ - out [9] = m1; \ - out [10] = m2; \ - out [11] = m3; \ - INST_BARRIER \ - in += 12; \ - out += 12; \ -} while(0) - -#define MOVE_11_OBJECTS(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - m1 = in [1]; \ - m2 = in [2]; \ - m3 = in [3]; \ - out [0] = m0; \ - out [1] = m1; \ - out [2] = m2; \ - out [3] = m3; \ - INST_BARRIER \ - m0 = in [4]; \ - m1 = in [5]; \ - m2 = in [6]; \ - m3 = in [7]; \ - out [4] = m0; \ - out [5] = m1; \ - out [6] = m2; \ - out [7] = m3; \ - INST_BARRIER \ - m0 = in [8]; \ - m1 = in [9]; \ - m2 = in [10]; \ - out [8] = m0; \ - out [9] = m1; \ - out [10] = m2; \ - INST_BARRIER \ - in += 11; \ - out += 11; \ -} while(0) - -#define MOVE_10_OBJECTS(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - m1 = in [1]; \ - m2 = in [2]; \ - m3 = in [3]; \ - out [0] = m0; \ - out [1] = m1; \ - out [2] = m2; \ - out [3] = m3; \ - INST_BARRIER \ - m0 = in [4]; \ - m1 = in [5]; \ - m2 = in [6]; \ - m3 = in [7]; \ - out [4] = m0; \ - m0 = in [8]; \ - out [5] = m1; \ - m1 = in [9]; \ - out [6] = m2; \ - out [7] = m3; \ - out [8] = m0; \ - out [9] = m1; \ - INST_BARRIER \ - in += 10; \ - out += 10; \ -} while(0) - -#define MOVE_9_OBJECTS(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - m1 = in [1]; \ - m2 = in [2]; \ - m3 = in [3]; \ - out [0] = m0; \ - out [1] = m1; \ - out [2] = m2; \ - out [3] = m3; \ - INST_BARRIER \ - m0 = in [4]; \ - m1 = in [5]; \ - m2 = in [6]; \ - m3 = in [7]; \ - out [4] = m0; \ - out [5] = m1; \ - out [6] = m2; \ - out [7] = m3; \ - INST_BARRIER \ - m0 = in [8]; \ - out [8] = m0; \ - in += 9; \ - out += 9; \ -} while(0) - -#define MOVE_8_OBJECTS(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - m1 = in [1]; \ - m2 = in [2]; \ - m3 = in [3]; \ - out [0] = m0; \ - out [1] = m1; \ - out [2] = m2; \ - out [3] = m3; \ - INST_BARRIER \ - m0 = in [4]; \ - m1 = in [5]; \ - m2 = in [6]; \ - m3 = in [7]; \ - out [4] = m0; \ - out [5] = m1; \ - out [6] = m2; \ - out [7] = m3; \ - INST_BARRIER \ - in += 8; \ - out += 8; \ -} while(0) - -#define MOVE_7_OBJECTS(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - m1 = in [1]; \ - m2 = in [2]; \ - m3 = in [3]; \ - out [0] = m0; \ - out [1] = m1; \ - out [2] = m2; \ - out [3] = m3; \ - INST_BARRIER \ - m0 = in [4]; \ - m1 = in [5]; \ - m2 = in [6]; \ - out [4] = m0; \ - out [5] = m1; \ - out [6] = m2; \ - INST_BARRIER \ - in += 7; \ - out += 7; \ -} while(0) - -#define MOVE_6_OBJECTS(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - m1 = in [1]; \ - m2 = in [2]; \ - m3 = in [3]; \ - out [0] = m0; \ - INST_BARRIER \ - m0 = in [4]; \ - out [1] = m1; \ - INST_BARRIER \ - m1 = in [5]; \ - out [2] = m2; \ - out [3] = m3; \ - out [4] = m0; \ - out [5] = m1; \ - INST_BARRIER \ - in += 6; \ - out += 6; \ -} while(0) - -#define MOVE_5_OBJECTS(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - m1 = in [1]; \ - m2 = in [2]; \ - m3 = in [3]; \ - INST_BARRIER \ - out [0] = m0; \ - m0 = in [4]; \ - INST_BARRIER \ - out [1] = m1; \ - out [2] = m2; \ - out [3] = m3; \ - out [4] = m0; \ - INST_BARRIER \ - in += 5; \ - out += 5; \ -} while(0) - -#define MOVE_4_OBJECTS(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - m1 = in [1]; \ - m2 = in [2]; \ - m3 = in [3]; \ - out [0] = m0; \ - out [1] = m1; \ - out [2] = m2; \ - out [3] = m3; \ - INST_BARRIER \ - in += 4; \ - out += 4; \ -} while(0) - -#define MOVE_3_OBJECTS(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - m1 = in [1]; \ - m2 = in [2]; \ - out [0] = m0; \ - out [1] = m1; \ - out [2] = m2; \ - INST_BARRIER \ - in += 3; \ - out += 3; \ -} while(0) - -#define MOVE_2_OBJECTS(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - m1 = in [1]; \ - out [0] = m0; \ - out [1] = m1; \ - INST_BARRIER \ - in += 2; \ - out += 2; \ -} while(0) - -#define MOVE_1_OBJECT(in,out) \ -do { \ - INST_BARRIER \ - m0 = in [0]; \ - out [0] = m0; \ - INST_BARRIER \ - in += 1; \ - out += 1; \ -} while(0) - - -static inline void -__inhibit_loop_to_libcall -__int_memcpy (void *__restrict s1, const void *__restrict s2, size_t n) -{ - int value = n; - int loop_var; - const int *in = s2; - int *out = s1; - int count; - int m0,m1,m2,m3; - - /* This code currently give a stall for any value with a 1->2 in the low 5 - bits, i.e. 1,2, 33,34 ? not acceptable! */ - switch (value & 0x1f) - { - case 0: - break; - case 1: - MOVE_1_OBJECT (in, out); - break; - case 2: - MOVE_2_OBJECTS (in, out); - break; - case 3: - MOVE_3_OBJECTS (in, out); - break; - case 4: - MOVE_4_OBJECTS (in, out); - break; - case 5: - MOVE_5_OBJECTS (in, out); - break; - case 6: - MOVE_6_OBJECTS (in, out); - break; - case 7: - MOVE_7_OBJECTS (in, out); - break; - case 8: - MOVE_8_OBJECTS (in, out); - break; - case 9: - MOVE_9_OBJECTS (in, out); - break; - case 10: - MOVE_10_OBJECTS (in, out); - break; - case 11: - MOVE_11_OBJECTS (in, out); - break; - case 12: - MOVE_12_OBJECTS (in, out); - break; - case 13: - MOVE_9_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 14: - MOVE_12_OBJECTS (in, out); - MOVE_2_OBJECTS (in, out); - break; - case 15: - MOVE_11_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 16: - MOVE_16_OBJECTS (in, out); - break; - case 17: - MOVE_11_OBJECTS (in, out); - MOVE_6_OBJECTS (in, out); - break; - case 18: - MOVE_9_OBJECTS (in, out); - MOVE_9_OBJECTS (in, out); - break; - case 19: - MOVE_16_OBJECTS (in, out); - MOVE_3_OBJECTS (in, out); - break; - case 20: - MOVE_16_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 21: - MOVE_16_OBJECTS (in, out); - MOVE_5_OBJECTS (in, out); - break; - case 22: - MOVE_16_OBJECTS (in, out); - MOVE_6_OBJECTS (in, out); - break; - case 23: - MOVE_16_OBJECTS (in, out); - MOVE_7_OBJECTS (in, out); - break; - case 24: - MOVE_16_OBJECTS (in, out); - MOVE_8_OBJECTS (in, out); - break; - case 25: - MOVE_16_OBJECTS (in, out); - MOVE_9_OBJECTS (in, out); - break; - case 26: - MOVE_16_OBJECTS (in, out); - MOVE_10_OBJECTS (in, out); - break; - case 27: - MOVE_16_OBJECTS (in, out); - MOVE_11_OBJECTS (in, out); - break; - case 28: - MOVE_16_OBJECTS (in, out); - MOVE_8_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 29: - MOVE_16_OBJECTS (in, out); - MOVE_9_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 30: - MOVE_16_OBJECTS (in, out); - MOVE_12_OBJECTS (in, out); - MOVE_2_OBJECTS (in, out); - break; - case 31: - MOVE_16_OBJECTS (in, out); - MOVE_11_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - } - - /* This loop governs the asmptoptic behaviour of this algorithm, for long - word copies. */ - count = value >> 5; - for (loop_var = 0; loop_var < count; loop_var++) - MOVE_32_OBJECTS (in, out); -} - -static inline void -__inhibit_loop_to_libcall -__shrt_int_memcpy (void *__restrict s1, const void *__restrict s2, size_t n) -{ - int value = n; - int loop_var; - const short int *in = s2; - int short *out = s1; - int count; - int m0,m1,m2,m3; - - /* This code currently give a stall for any value with a 1->2 in the low 5 - bits, i.e. 1,2, 33,34 ? not acceptable! */ - switch (value & 0x1f) - { - case 0: - break; - case 1: - MOVE_1_OBJECT (in, out); - break; - case 2: - MOVE_2_OBJECTS (in, out); - break; - case 3: - MOVE_3_OBJECTS (in, out); - break; - case 4: - MOVE_4_OBJECTS (in, out); - break; - case 5: - MOVE_5_OBJECTS (in, out); - break; - case 6: - MOVE_6_OBJECTS (in, out); - break; - case 7: - MOVE_7_OBJECTS (in, out); - break; - case 8: - MOVE_8_OBJECTS (in, out); - break; - case 9: - MOVE_9_OBJECTS (in, out); - break; - case 10: - MOVE_10_OBJECTS (in, out); - break; - case 11: - MOVE_11_OBJECTS (in, out); - break; - case 12: - MOVE_12_OBJECTS (in, out); - break; - case 13: - MOVE_9_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 14: - MOVE_12_OBJECTS (in, out); - MOVE_2_OBJECTS (in, out); - break; - case 15: - MOVE_11_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 16: - MOVE_16_OBJECTS (in, out); - break; - case 17: - MOVE_11_OBJECTS (in, out); - MOVE_6_OBJECTS (in, out); - break; - case 18: - MOVE_9_OBJECTS (in, out); - MOVE_9_OBJECTS (in, out); - break; - case 19: - MOVE_16_OBJECTS (in, out); - MOVE_3_OBJECTS (in, out); - break; - case 20: - MOVE_16_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 21: - MOVE_16_OBJECTS (in, out); - MOVE_5_OBJECTS (in, out); - break; - case 22: - MOVE_16_OBJECTS (in, out); - MOVE_6_OBJECTS (in, out); - break; - case 23: - MOVE_16_OBJECTS (in, out); - MOVE_7_OBJECTS (in, out); - break; - case 24: - MOVE_16_OBJECTS (in, out); - MOVE_8_OBJECTS (in, out); - break; - case 25: - MOVE_16_OBJECTS (in, out); - MOVE_9_OBJECTS (in, out); - break; - case 26: - MOVE_16_OBJECTS (in, out); - MOVE_10_OBJECTS (in, out); - break; - case 27: - MOVE_16_OBJECTS (in, out); - MOVE_11_OBJECTS (in, out); - break; - case 28: - MOVE_16_OBJECTS (in, out); - MOVE_8_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 29: - MOVE_16_OBJECTS (in, out); - MOVE_9_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 30: - MOVE_16_OBJECTS (in, out); - MOVE_12_OBJECTS (in, out); - MOVE_2_OBJECTS (in, out); - break; - case 31: - MOVE_16_OBJECTS (in, out); - MOVE_11_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - } - - /* This loop governs the asmptoptic behaviour of this algorithm, for long - word copies. */ - count = value >> 5; - for (loop_var = 0; loop_var < count; loop_var++) - MOVE_32_OBJECTS (in, out); -} - - -static inline void -__inhibit_loop_to_libcall -__byte_memcpy (void *__restrict s1, const void *__restrict s2, size_t n) -{ - int value = n; - int loop_var; - const char *in = s2; - char *out = s1; - int count; - int m0,m1,m2,m3; - - /* This code currently give a stall for any value with a 1->2 in the low 5 - bits, i.e. 1,2, 33,34 ? not acceptable! */ - switch (value & 0x1f) - { - case 0: - break; - case 1: - MOVE_1_OBJECT (in, out); - break; - case 2: - MOVE_2_OBJECTS (in, out); - break; - case 3: - MOVE_3_OBJECTS (in, out); - break; - case 4: - MOVE_4_OBJECTS (in, out); - break; - case 5: - MOVE_5_OBJECTS (in, out); - break; - case 6: - MOVE_6_OBJECTS (in, out); - break; - case 7: - MOVE_7_OBJECTS (in, out); - break; - case 8: - MOVE_8_OBJECTS (in, out); - break; - case 9: - MOVE_9_OBJECTS (in, out); - break; - case 10: - MOVE_10_OBJECTS (in, out); - break; - case 11: - MOVE_11_OBJECTS (in, out); - break; - case 12: - MOVE_12_OBJECTS (in, out); - break; - case 13: - MOVE_9_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 14: - MOVE_12_OBJECTS (in, out); - MOVE_2_OBJECTS (in, out); - break; - case 15: - MOVE_11_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 16: - MOVE_16_OBJECTS (in, out); - break; - case 17: - MOVE_11_OBJECTS (in, out); - MOVE_6_OBJECTS (in, out); - break; - case 18: - MOVE_9_OBJECTS (in, out); - MOVE_9_OBJECTS (in, out); - break; - case 19: - MOVE_16_OBJECTS (in, out); - MOVE_3_OBJECTS (in, out); - break; - case 20: - MOVE_16_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 21: - MOVE_16_OBJECTS (in, out); - MOVE_5_OBJECTS (in, out); - break; - case 22: - MOVE_16_OBJECTS (in, out); - MOVE_6_OBJECTS (in, out); - break; - case 23: - MOVE_16_OBJECTS (in, out); - MOVE_7_OBJECTS (in, out); - break; - case 24: - MOVE_16_OBJECTS (in, out); - MOVE_8_OBJECTS (in, out); - break; - case 25: - MOVE_16_OBJECTS (in, out); - MOVE_9_OBJECTS (in, out); - break; - case 26: - MOVE_16_OBJECTS (in, out); - MOVE_10_OBJECTS (in, out); - break; - case 27: - MOVE_16_OBJECTS (in, out); - MOVE_11_OBJECTS (in, out); - break; - case 28: - MOVE_16_OBJECTS (in, out); - MOVE_8_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 29: - MOVE_16_OBJECTS (in, out); - MOVE_9_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - case 30: - MOVE_16_OBJECTS (in, out); - MOVE_12_OBJECTS (in, out); - MOVE_2_OBJECTS (in, out); - break; - case 31: - MOVE_16_OBJECTS (in, out); - MOVE_11_OBJECTS (in, out); - MOVE_4_OBJECTS (in, out); - break; - } - - /* This loop governs the asmptoptic behaviour of this algorithm, for long - word copies. */ - count = value >> 5; - for (loop_var = 0; loop_var < count; loop_var++) - MOVE_32_OBJECTS (in, out); -} - - -/* Exposed interface. */ - -void * -__inhibit_loop_to_libcall -memcpy (void *__restrict s1, const void *__restrict s2, size_t n) -{ - void *result = s1; - - /* None of the following handles copying zero bytes. */ - if (n != 0) - { - unsigned test = (unsigned) s2 | (unsigned) s1 | (unsigned) n; - - if (test & 1) - __byte_memcpy (s1, s2, n); - else if (test & 2) - __shrt_int_memcpy (s1, s2, n >> 1); - else -#ifdef __VISIUM_ARCH_BMI__ - __asm__ __volatile__ ("bmd %0,%1,%2" - : "+t" (s1), "+u" (s2), "+v" (n) - : - : "r4", "r5", "r6", "memory"); -#else - __int_memcpy (s1, s2, n >> 2); -#endif /* __VISIUM_ARCH_BMI__ */ - } - - return result; -} diff --git a/lib/machine/visium/memcpy.h b/lib/machine/visium/memcpy.h deleted file mode 100644 index a645aa7..0000000 --- a/lib/machine/visium/memcpy.h +++ /dev/null @@ -1,31 +0,0 @@ -/* memcpy for the Visium processor. - - Copyright (c) 2015 Rolls-Royce Controls and Data Services Limited. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Rolls-Royce Controls and Data Services Limited nor - the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - THE POSSIBILITY OF SUCH DAMAGE. */ - -void * -memcpy (void *__restrict s1, const void *__restrict s2, size_t n); diff --git a/lib/machine/visium/memmove.c b/lib/machine/visium/memmove.c deleted file mode 100644 index d594213..0000000 --- a/lib/machine/visium/memmove.c +++ /dev/null @@ -1,52 +0,0 @@ -/* memmove for the Visium processor. - - Copyright (c) 2015 Rolls-Royce Controls and Data Services Limited. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Rolls-Royce Controls and Data Services Limited nor - the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - THE POSSIBILITY OF SUCH DAMAGE. */ - -#include - -void * -memmove (void *dst, const void *src, size_t len) -{ - char *d = dst; - const char *s = src; - - /* The overlap case is allegedly rare - with this implementation - it will have a high penalty on the GR6. */ - if (s < d && d < s + len) - { - s += len; - d += len; - - while (len--) - *--d = *--s; - - return dst; - } - - return memcpy (dst, src, len); -} diff --git a/lib/machine/visium/memset.c b/lib/machine/visium/memset.c deleted file mode 100644 index 5c3906a..0000000 --- a/lib/machine/visium/memset.c +++ /dev/null @@ -1,681 +0,0 @@ -/* memset for the Visium processor. - - Copyright (c) 2015 Rolls-Royce Controls and Data Services Limited. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Rolls-Royce Controls and Data Services Limited nor - the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - THE POSSIBILITY OF SUCH DAMAGE. */ - -/* This file must be kept in sync with libgcc/config/visium/memset.c */ - -#include -#include "memset.h" -#include "../../string/local.h" - -#define SET_32_OBJECTS(out) \ -do { \ - out [0] = m0; \ - out [1] = m0; \ - out [2] = m0; \ - out [3] = m0; \ - out [4] = m0; \ - out [5] = m0; \ - out [6] = m0; \ - out [7] = m0; \ - out [8] = m0; \ - out [9] = m0; \ - out [10] = m0; \ - out [11] = m0; \ - out [12] = m0; \ - out [13] = m0; \ - out [14] = m0; \ - out [15] = m0; \ - out [16] = m0; \ - out [17] = m0; \ - out [18] = m0; \ - out [19] = m0; \ - out [20] = m0; \ - out [21] = m0; \ - out [22] = m0; \ - out [23] = m0; \ - out [24] = m0; \ - out [25] = m0; \ - out [26] = m0; \ - out [27] = m0; \ - out [28] = m0; \ - out [29] = m0; \ - out [30] = m0; \ - out [31] = m0; \ - out += 32; \ -} while(0) - -#define SET_16_OBJECTS(out) \ -do { \ - out [0] = m0; \ - out [1] = m0; \ - out [2] = m0; \ - out [3] = m0; \ - out [4] = m0; \ - out [5] = m0; \ - out [6] = m0; \ - out [7] = m0; \ - out [8] = m0; \ - out [9] = m0; \ - out [10] = m0; \ - out [11] = m0; \ - out [12] = m0; \ - out [13] = m0; \ - out [14] = m0; \ - out [15] = m0; \ - out += 16; \ -} while(0) - -#define SET_12_OBJECTS(out) \ -do { \ - out [0] = m0; \ - out [1] = m0; \ - out [2] = m0; \ - out [3] = m0; \ - out [4] = m0; \ - out [5] = m0; \ - out [6] = m0; \ - out [7] = m0; \ - out [8] = m0; \ - out [9] = m0; \ - out [10] = m0; \ - out [11] = m0; \ - out += 12; \ -} while(0) - -#define SET_11_OBJECTS(out) \ -do { \ - out [0] = m0; \ - out [1] = m0; \ - out [2] = m0; \ - out [3] = m0; \ - out [4] = m0; \ - out [5] = m0; \ - out [6] = m0; \ - out [7] = m0; \ - out [8] = m0; \ - out [9] = m0; \ - out [10] = m0; \ - out += 11; \ -} while(0) - -#define SET_10_OBJECTS(out) \ -do { \ - out [0] = m0; \ - out [1] = m0; \ - out [2] = m0; \ - out [3] = m0; \ - out [4] = m0; \ - out [5] = m0; \ - out [6] = m0; \ - out [7] = m0; \ - out [8] = m0; \ - out [9] = m0; \ - out += 10; \ -} while(0) - -#define SET_9_OBJECTS(out) \ -do { \ - out [0] = m0; \ - out [1] = m0; \ - out [2] = m0; \ - out [3] = m0; \ - out [4] = m0; \ - out [5] = m0; \ - out [6] = m0; \ - out [7] = m0; \ - out [8] = m0; \ - out += 9; \ -} while(0) - -#define SET_8_OBJECTS(out) \ -do { \ - out [0] = m0; \ - out [1] = m0; \ - out [2] = m0; \ - out [3] = m0; \ - out [4] = m0; \ - out [5] = m0; \ - out [6] = m0; \ - out [7] = m0; \ - out += 8; \ -} while(0) - -#define SET_7_OBJECTS(out) \ -do { \ - out [0] = m0; \ - out [1] = m0; \ - out [2] = m0; \ - out [3] = m0; \ - out [4] = m0; \ - out [5] = m0; \ - out [6] = m0; \ - out += 7; \ -} while(0) - -#define SET_6_OBJECTS(out) \ -do { \ - out [0] = m0; \ - out [1] = m0; \ - out [2] = m0; \ - out [3] = m0; \ - out [4] = m0; \ - out [5] = m0; \ - out += 6; \ -} while(0) - -#define SET_5_OBJECTS(out) \ -do { \ - out [0] = m0; \ - out [1] = m0; \ - out [2] = m0; \ - out [3] = m0; \ - out [4] = m0; \ - out += 5; \ -} while(0) - -#define SET_4_OBJECTS(out) \ -do { \ - out [0] = m0; \ - out [1] = m0; \ - out [2] = m0; \ - out [3] = m0; \ - out += 4; \ -} while(0) - -#define SET_3_OBJECTS(out) \ -do { \ - out [0] = m0; \ - out [1] = m0; \ - out [2] = m0; \ - out += 3; \ -} while(0) - -#define SET_2_OBJECTS(out) \ -do { \ - out [0] = m0; \ - out [1] = m0; \ - out += 2; \ -} while(0) - -#define SET_1_OBJECT(out) \ -do { \ - out [0] = m0; \ - out += 1; \ -} while(0) - -static inline void -__inhibit_loop_to_libcall -__int_memset (void *__restrict s1, int val, size_t n) -{ - int value = n; - int loop_var; - int *out = s1; - int count; - int m0 = val; - - /* This code currently give a stall for any value with a 1->2 in the low 5 - bits, i.e. 1,2, 33,34 ? not acceptable! */ - switch (value & 0x1f) - { - case 0: - break; - case 1: - SET_1_OBJECT (out); - break; - case 2: - SET_2_OBJECTS (out); - break; - case 3: - SET_3_OBJECTS (out); - break; - case 4: - SET_4_OBJECTS (out); - break; - case 5: - SET_5_OBJECTS (out); - break; - case 6: - SET_6_OBJECTS (out); - break; - case 7: - SET_7_OBJECTS (out); - break; - case 8: - SET_8_OBJECTS (out); - break; - case 9: - SET_9_OBJECTS (out); - break; - case 10: - SET_10_OBJECTS (out); - break; - case 11: - SET_11_OBJECTS (out); - break; - case 12: - SET_12_OBJECTS (out); - break; - case 13: - SET_9_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 14: - SET_12_OBJECTS (out); - SET_2_OBJECTS (out); - break; - case 15: - SET_11_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 16: - SET_16_OBJECTS (out); - break; - case 17: - SET_11_OBJECTS (out); - SET_6_OBJECTS (out); - break; - case 18: - SET_9_OBJECTS (out); - SET_9_OBJECTS (out); - break; - case 19: - SET_16_OBJECTS (out); - SET_3_OBJECTS (out); - break; - case 20: - SET_16_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 21: - SET_16_OBJECTS (out); - SET_5_OBJECTS (out); - break; - case 22: - SET_16_OBJECTS (out); - SET_6_OBJECTS (out); - break; - case 23: - SET_16_OBJECTS (out); - SET_7_OBJECTS (out); - break; - case 24: - SET_16_OBJECTS (out); - SET_8_OBJECTS (out); - break; - case 25: - SET_16_OBJECTS (out); - SET_9_OBJECTS (out); - break; - case 26: - SET_16_OBJECTS (out); - SET_10_OBJECTS (out); - break; - case 27: - SET_16_OBJECTS (out); - SET_11_OBJECTS (out); - break; - case 28: - SET_16_OBJECTS (out); - SET_8_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 29: - SET_16_OBJECTS (out); - SET_9_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 30: - SET_16_OBJECTS (out); - SET_12_OBJECTS (out); - SET_2_OBJECTS (out); - break; - case 31: - SET_16_OBJECTS (out); - SET_11_OBJECTS (out); - SET_4_OBJECTS (out); - break; - } - - /* This loop governs the asmptoptic behaviour of this algorithm, for long - word copies. */ - count = value >> 5; - for (loop_var = 0; loop_var < count; loop_var++) - SET_32_OBJECTS (out); -} - -static inline void -__inhibit_loop_to_libcall -__short_int_memset (void *__restrict s1, int val, size_t n) -{ - int value = n; - int loop_var; - int short *out = s1; - int count; - int m0 = val; - - /* This code currently give a stall for any value with a 1->2 in the low 5 - bits, i.e. 1,2, 33,34 ? not acceptable! */ - switch (value & 0x1f) - { - case 0: - break; - case 1: - SET_1_OBJECT (out); - break; - case 2: - SET_2_OBJECTS (out); - break; - case 3: - SET_3_OBJECTS (out); - break; - case 4: - SET_4_OBJECTS (out); - break; - case 5: - SET_5_OBJECTS (out); - break; - case 6: - SET_6_OBJECTS (out); - break; - case 7: - SET_7_OBJECTS (out); - break; - case 8: - SET_8_OBJECTS (out); - break; - case 9: - SET_9_OBJECTS (out); - break; - case 10: - SET_10_OBJECTS (out); - break; - case 11: - SET_11_OBJECTS (out); - break; - case 12: - SET_12_OBJECTS (out); - break; - case 13: - SET_9_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 14: - SET_12_OBJECTS (out); - SET_2_OBJECTS (out); - break; - case 15: - SET_11_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 16: - SET_16_OBJECTS (out); - break; - case 17: - SET_11_OBJECTS (out); - SET_6_OBJECTS (out); - break; - case 18: - SET_9_OBJECTS (out); - SET_9_OBJECTS (out); - break; - case 19: - SET_16_OBJECTS (out); - SET_3_OBJECTS (out); - break; - case 20: - SET_16_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 21: - SET_16_OBJECTS (out); - SET_5_OBJECTS (out); - break; - case 22: - SET_16_OBJECTS (out); - SET_6_OBJECTS (out); - break; - case 23: - SET_16_OBJECTS (out); - SET_7_OBJECTS (out); - break; - case 24: - SET_16_OBJECTS (out); - SET_8_OBJECTS (out); - break; - case 25: - SET_16_OBJECTS (out); - SET_9_OBJECTS (out); - break; - case 26: - SET_16_OBJECTS (out); - SET_10_OBJECTS (out); - break; - case 27: - SET_16_OBJECTS (out); - SET_11_OBJECTS (out); - break; - case 28: - SET_16_OBJECTS (out); - SET_8_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 29: - SET_16_OBJECTS (out); - SET_9_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 30: - SET_16_OBJECTS (out); - SET_12_OBJECTS (out); - SET_2_OBJECTS (out); - break; - case 31: - SET_16_OBJECTS (out); - SET_11_OBJECTS (out); - SET_4_OBJECTS (out); - break; - } - - /* This loop governs the asmptoptic behaviour of this algorithm, for long - word copies. */ - count = value >> 5; - for (loop_var = 0; loop_var < count; loop_var++) - SET_32_OBJECTS (out); -} - -static inline void -__inhibit_loop_to_libcall -__byte_memset (void *__restrict s1, int val, size_t n) -{ - int value = n; - int loop_var; - char *out = s1; - int count; - int m0 = val; - - /* This code currently give a stall for any value with a 1->2 in the low 5 - bits, i.e. 1,2, 33,34 ? not acceptable! */ - switch (value & 0x1f) - { - case 0: - break; - case 1: - SET_1_OBJECT (out); - break; - case 2: - SET_2_OBJECTS (out); - break; - case 3: - SET_3_OBJECTS (out); - break; - case 4: - SET_4_OBJECTS (out); - break; - case 5: - SET_5_OBJECTS (out); - break; - case 6: - SET_6_OBJECTS (out); - break; - case 7: - SET_7_OBJECTS (out); - break; - case 8: - SET_8_OBJECTS (out); - break; - case 9: - SET_9_OBJECTS (out); - break; - case 10: - SET_10_OBJECTS (out); - break; - case 11: - SET_11_OBJECTS (out); - break; - case 12: - SET_12_OBJECTS (out); - break; - case 13: - SET_9_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 14: - SET_12_OBJECTS (out); - SET_2_OBJECTS (out); - break; - case 15: - SET_11_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 16: - SET_16_OBJECTS (out); - break; - case 17: - SET_11_OBJECTS (out); - SET_6_OBJECTS (out); - break; - case 18: - SET_9_OBJECTS (out); - SET_9_OBJECTS (out); - break; - case 19: - SET_16_OBJECTS (out); - SET_3_OBJECTS (out); - break; - case 20: - SET_16_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 21: - SET_16_OBJECTS (out); - SET_5_OBJECTS (out); - break; - case 22: - SET_16_OBJECTS (out); - SET_6_OBJECTS (out); - break; - case 23: - SET_16_OBJECTS (out); - SET_7_OBJECTS (out); - break; - case 24: - SET_16_OBJECTS (out); - SET_8_OBJECTS (out); - break; - case 25: - SET_16_OBJECTS (out); - SET_9_OBJECTS (out); - break; - case 26: - SET_16_OBJECTS (out); - SET_10_OBJECTS (out); - break; - case 27: - SET_16_OBJECTS (out); - SET_11_OBJECTS (out); - break; - case 28: - SET_16_OBJECTS (out); - SET_8_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 29: - SET_16_OBJECTS (out); - SET_9_OBJECTS (out); - SET_4_OBJECTS (out); - break; - case 30: - SET_16_OBJECTS (out); - SET_12_OBJECTS (out); - SET_2_OBJECTS (out); - break; - case 31: - SET_16_OBJECTS (out); - SET_11_OBJECTS (out); - SET_4_OBJECTS (out); - break; - } - - /* This loop governs the asmptoptic behaviour of this algorithm, for long - word copies. */ - count = value >> 5; - for (loop_var = 0; loop_var < count; loop_var++) - SET_32_OBJECTS (out); -} - - -/* Exposed interface. */ - -void * -__inhibit_loop_to_libcall -memset (void *s, int c, size_t n) -{ - void *result = s; - - /* None of the following handles setting zero bytes. */ - if (n != 0) - { - unsigned test = (unsigned) s | (unsigned) n; - - if (test & 1) - __byte_memset (s, c, n); - else if (test & 2) - { - short int sc = (short int) ((c << 8) + (char) c); - __short_int_memset (s, sc, n >> 1); - } - else - { - int ic = (c << 24) + ((char) c << 16) + ((char) c << 8) + (char) c; - __int_memset (s, ic, n >> 2); - } - } - - return result; -} diff --git a/lib/machine/visium/memset.h b/lib/machine/visium/memset.h deleted file mode 100644 index 0ca5974..0000000 --- a/lib/machine/visium/memset.h +++ /dev/null @@ -1,31 +0,0 @@ -/* memset for the Visium processor. - - Copyright (c) 2015 Rolls-Royce Controls and Data Services Limited. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Rolls-Royce Controls and Data Services Limited nor - the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - THE POSSIBILITY OF SUCH DAMAGE. */ - -void * -memset (void *s, int c, size_t n); diff --git a/lib/machine/visium/setjmp.S b/lib/machine/visium/setjmp.S deleted file mode 100644 index 5ef429b..0000000 --- a/lib/machine/visium/setjmp.S +++ /dev/null @@ -1,67 +0,0 @@ -/* setjmp/longjmp for the Visium processor. - - Copyright (c) 2015 Rolls-Royce Controls and Data Services Limited. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Rolls-Royce Controls and Data Services Limited nor - the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - THE POSSIBILITY OF SUCH DAMAGE. */ - - .text - .globl setjmp - .type setjmp, @function -setjmp: - write.l 0(r1),r11 - write.l 1(r1),r12 - write.l 2(r1),r13 - write.l 3(r1),r14 - write.l 4(r1),r15 - write.l 5(r1),r16 - write.l 6(r1),r17 - write.l 7(r1),r18 - write.l 8(r1),r19 - write.l 9(r1),r21 - write.l 10(r1),r22 - write.l 11(r1),r23 - bra tr,r21,r0 - moviq r1,0 - .size setjmp, .-setjmp - - .globl longjmp - .type longjmp, @function -longjmp: - read.l r11,0(r1) - read.l r12,1(r1) - read.l r13,2(r1) - read.l r14,3(r1) - read.l r15,4(r1) - read.l r16,5(r1) - read.l r17,6(r1) - read.l r18,7(r1) - read.l r19,8(r1) - read.l r21,9(r1) - read.l r22,10(r1) - read.l r23,11(r1) - bra tr,r21,r0 - move.l r1,r2 - .size longjmp, .-longjmp diff --git a/lib/machine/w65/Makefile.inc b/lib/machine/w65/Makefile.inc deleted file mode 100644 index c06f859..0000000 --- a/lib/machine/w65/Makefile.inc +++ /dev/null @@ -1,3 +0,0 @@ -libc_a_SOURCES += \ - %D%/udivhi3.S %D%/umodhi3.S %D%/smulhi3.S %D%/lshrhi.S %D%/sdivhi3.S %D%/mulsi3.c \ - %D%/divsi3.c %D%/cmpsi.c diff --git a/lib/machine/w65/cmpsi.c b/lib/machine/w65/cmpsi.c deleted file mode 100644 index 3773c9d..0000000 --- a/lib/machine/w65/cmpsi.c +++ /dev/null @@ -1,28 +0,0 @@ - -union u { - struct { - short int msw; - unsigned short lsw; -} w; -long l; -}; - -int -__cmpsi2(long arga, - short int msw_b, unsigned short int lsw_b) -{ - union u u; - u.l = arga; - - if (u.w.msw != msw_b) - { - if (u.w.msw < msw_b) return 0; - return 2; - } - if (u.w.lsw != lsw_b) - { - if (u.w.lsw < lsw_b) return 0; - return 2; - } - return 1; -} diff --git a/lib/machine/w65/divsi3.c b/lib/machine/w65/divsi3.c deleted file mode 100644 index bf74992..0000000 --- a/lib/machine/w65/divsi3.c +++ /dev/null @@ -1,134 +0,0 @@ - -#define divnorm(num, den, sign) \ -{ \ - if (num < 0) \ - { \ - num = -num; \ - sign = 1; \ - } \ - else \ - { \ - sign = 0; \ - } \ - \ - if (den < 0) \ - { \ - den = - den; \ - sign = 1 - sign; \ - } \ -} - - - - - -static unsigned long -divmodsi4(int modwanted, unsigned long num, unsigned long den) -{ - long int bit = 1; - long int res = 0; - long prevden; - while (den < num && bit && !(den & (1L<<31))) - { - den <<=1; - bit <<=1; - } - while (bit) - { - if (num >= den) - { - num -= den; - res |= bit; - } - bit >>=1; - den >>=1; - } - if (modwanted) return num; - return res; -} - - -#define exitdiv(sign, res) if (sign) { res = - res;} return res; - -long -__modsi3 (long numerator, long denominator) -{ - int sign = 0; - long dividend; - long modul; - - - if (numerator < 0) - { - numerator = -numerator; - sign = 1; - } - if (denominator < 0) - { - denominator = -denominator; - } - - modul = divmodsi4 (1, numerator, denominator); - if (sign) - return - modul; - return modul; -} - - -long -__divsi3 (long numerator, long denominator) -{ - int sign; - long dividend; - long modul; - divnorm (numerator, denominator, sign); - - dividend = divmodsi4 (0, numerator, denominator); - exitdiv (sign, dividend); -} - -long -__umodsi3 (unsigned long numerator, unsigned long denominator) -{ - long dividend; - long modul; - -modul= divmodsi4 (1, numerator, denominator); - return modul; -} - -long -__udivsi3 (unsigned long numerator, unsigned long denominator) -{ - int sign; - long dividend; - long modul; - dividend = divmodsi4 (0, numerator, denominator); - return dividend; -} - - - - - - -#ifdef TEST - - - -main () -{ - long int i, j, k, m; - for (i = -10000; i < 10000; i += 8) - { - for (j = -10000; j < 10000; j += 11) - { - k = i / j; - m = __divsi3 (i, j); - if (k != m) - printf ("fail %d %d %d %d\n", i, j, k, m); - } - } -} - -#endif diff --git a/lib/machine/w65/lshrhi.S b/lib/machine/w65/lshrhi.S deleted file mode 100644 index 564229f..0000000 --- a/lib/machine/w65/lshrhi.S +++ /dev/null @@ -1,48 +0,0 @@ - - - .global ___lshrhi15 -___lshrhi15: - lsr a - - .global ___lshrhi14 -___lshrhi14: - lsr a - .global ___lshrhi13 -___lshrhi13: - lsr a - .global ___lshrhi12 -___lshrhi12: - lsr a - .global ___lshrhi11 -___lshrhi11: - lsr a - .global ___lshrhi10 -___lshrhi10: - lsr a - .global ___lshrhi9 -___lshrhi9: - lsr a - .global ___lshrhi8 -___lshrhi8: - lsr a - .global ___lshrhi7 -___lshrhi7: - lsr a - .global ___lshrhi6 -___lshrhi6: - lsr a - .global ___lshrhi5 -___lshrhi5: - lsr a - .global ___lshrhi4 -___lshrhi4: - lsr a - .global ___lshrhi3 -___lshrhi3: - lsr a - .global ___lshrhi2 -___lshrhi2: - lsr a - lsr a - rtl - diff --git a/lib/machine/w65/mulsi3.c b/lib/machine/w65/mulsi3.c deleted file mode 100644 index b48fe97..0000000 --- a/lib/machine/w65/mulsi3.c +++ /dev/null @@ -1,17 +0,0 @@ - - -long -__mulsi3(unsigned long a, unsigned long b) -{ - long res = 0; - while (a) - { - if (a & 1) - { - res += b; - } - b <<= 1; - a >>=1; - } - return res; -} diff --git a/lib/machine/w65/sdivhi3.S b/lib/machine/w65/sdivhi3.S deleted file mode 100644 index 7958f11..0000000 --- a/lib/machine/w65/sdivhi3.S +++ /dev/null @@ -1,35 +0,0 @@ - .global ___sdivhi3 - -___sdivhi3: - lda udv - ply - beq Lend !if positive result - - eor #0xFFFF !negate result - inc a - -Lend: sta ___udivhi3 - stx - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -union IEEEl2bits { - long double e; - struct { - unsigned int manl :32; - unsigned int manh :32; - unsigned int exp :15; - unsigned int sign :1; - unsigned int junkl :16; - unsigned int junkh :32; - } bits; - struct { - unsigned long man :64; - unsigned int expsign :16; - unsigned long junk :48; - } xbits; -}; - -#define LDBL_NBIT 0x80000000 -#define mask_nbit_l(u) ((u).bits.manh &= ~LDBL_NBIT) - -#define LDBL_MANH_SIZE 32 -#define LDBL_MANL_SIZE 32 - -#define LDBL_TO_ARRAY32(u, a) do { \ - (a)[0] = (uint32_t)(u).bits.manl; \ - (a)[1] = (uint32_t)(u).bits.manh; \ -} while (0) diff --git a/lib/machine/x86_64/memcpy.S b/lib/machine/x86_64/memcpy.S deleted file mode 100644 index 81dd0c4..0000000 --- a/lib/machine/x86_64/memcpy.S +++ /dev/null @@ -1,113 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 2007 by Ellips BV. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - - #include "x86_64mach.h" - - .global SYM (memcpy) - SOTYPE_FUNCTION(memcpy) - -SYM (memcpy): - movq rdi, rax /* Store destination in return value */ - cmpq $16, rdx - jb byte_copy - - movq rdi, r8 /* Align destination on quad word boundary */ - andq $7, r8 - jz quadword_aligned - movq $8, rcx - subq r8, rcx - subq rcx, rdx - rep movsb - -quadword_aligned: - cmpq $256, rdx - jb quadword_copy - - pushq rax - pushq r12 - pushq r13 - pushq r14 - - movq rdx, rcx /* Copy 128 bytes at a time with minimum cache polution */ - shrq $7, rcx - - .p2align 4 -loop: - prefetchnta 768 (rsi) - prefetchnta 832 (rsi) - - movq (rsi), rax - movq 8 (rsi), r8 - movq 16 (rsi), r9 - movq 24 (rsi), r10 - movq 32 (rsi), r11 - movq 40 (rsi), r12 - movq 48 (rsi), r13 - movq 56 (rsi), r14 - - movntiq rax, (rdi) - movntiq r8 , 8 (rdi) - movntiq r9 , 16 (rdi) - movntiq r10, 24 (rdi) - movntiq r11, 32 (rdi) - movntiq r12, 40 (rdi) - movntiq r13, 48 (rdi) - movntiq r14, 56 (rdi) - - movq 64 (rsi), rax - movq 72 (rsi), r8 - movq 80 (rsi), r9 - movq 88 (rsi), r10 - movq 96 (rsi), r11 - movq 104 (rsi), r12 - movq 112 (rsi), r13 - movq 120 (rsi), r14 - - movntiq rax, 64 (rdi) - movntiq r8 , 72 (rdi) - movntiq r9 , 80 (rdi) - movntiq r10, 88 (rdi) - movntiq r11, 96 (rdi) - movntiq r12, 104 (rdi) - movntiq r13, 112 (rdi) - movntiq r14, 120 (rdi) - - leaq 128 (rsi), rsi - leaq 128 (rdi), rdi - - dec rcx - jnz loop - - sfence - movq rdx, rcx - andq $127, rcx - rep movsb - popq r14 - popq r13 - popq r12 - popq rax - ret - - -byte_copy: - movq rdx, rcx - rep movsb - ret - - -quadword_copy: - movq rdx, rcx - shrq $3, rcx - .p2align 4 - rep movsq - movq rdx, rcx - andq $7, rcx - rep movsb /* Copy the remaining bytes */ - ret diff --git a/lib/machine/x86_64/memset.S b/lib/machine/x86_64/memset.S deleted file mode 100644 index 4ba53e3..0000000 --- a/lib/machine/x86_64/memset.S +++ /dev/null @@ -1,88 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 2007 by Ellips BV. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - - #include "x86_64mach.h" - - .global SYM (memset) - SOTYPE_FUNCTION(memset) - -SYM (memset): - movq rdi, r9 /* Save return value */ - movq rsi, rax - movq rdx, rcx - cmpq $16, rdx - jb byte_set - - movq rdi, r8 /* Align on quad word boundary */ - andq $7, r8 - jz quadword_aligned - movq $8, rcx - subq r8, rcx - subq rcx, rdx - rep stosb - movq rdx, rcx - -quadword_aligned: - movabs $0x0101010101010101, r8 - movzbl sil, eax - imul r8, rax - cmpq $256, rdx - jb quadword_set - - shrq $7, rcx /* Store 128 bytes at a time with minimum cache polution */ - - .p2align 4 -loop: - movntiq rax, (rdi) - movntiq rax, 8 (rdi) - movntiq rax, 16 (rdi) - movntiq rax, 24 (rdi) - movntiq rax, 32 (rdi) - movntiq rax, 40 (rdi) - movntiq rax, 48 (rdi) - movntiq rax, 56 (rdi) - movntiq rax, 64 (rdi) - movntiq rax, 72 (rdi) - movntiq rax, 80 (rdi) - movntiq rax, 88 (rdi) - movntiq rax, 96 (rdi) - movntiq rax, 104 (rdi) - movntiq rax, 112 (rdi) - movntiq rax, 120 (rdi) - - leaq 128 (rdi), rdi - - dec rcx - jnz loop - - sfence - movq rdx, rcx - andq $127, rcx - rep stosb - movq r9, rax - ret - - -byte_set: - rep stosb - movq r9, rax - ret - - -quadword_set: - shrq $3, rcx - .p2align 4 - rep stosq - movq rdx, rcx - andq $7, rcx - rep stosb /* Store the remaining bytes */ - movq r9, rax - ret - diff --git a/lib/machine/x86_64/setjmp.S b/lib/machine/x86_64/setjmp.S deleted file mode 100644 index 5f5e03d..0000000 --- a/lib/machine/x86_64/setjmp.S +++ /dev/null @@ -1,53 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 2007 by Ellips BV. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - - /* - ** jmp_buf: - ** rbx rbp r12 r13 r14 r15 rsp rip - ** 0 8 16 24 32 40 48 56 - */ - - #include "x86_64mach.h" - - .global SYM (setjmp) - .global SYM (longjmp) - SOTYPE_FUNCTION(setjmp) - SOTYPE_FUNCTION(longjmp) - -SYM (setjmp): - movq rbx, 0 (rdi) - movq rbp, 8 (rdi) - movq r12, 16 (rdi) - movq r13, 24 (rdi) - movq r14, 32 (rdi) - movq r15, 40 (rdi) - leaq 8 (rsp), rax - movq rax, 48 (rdi) - movq (rsp), rax - movq rax, 56 (rdi) - movq $0, rax - ret - -SYM (longjmp): - movq rsi, rax /* Return value */ - - movq 8 (rdi), rbp - - __CLI - movq 48 (rdi), rsp - pushq 56 (rdi) - movq 0 (rdi), rbx - movq 16 (rdi), r12 - movq 24 (rdi), r13 - movq 32 (rdi), r14 - movq 40 (rdi), r15 - __STI - - ret diff --git a/lib/machine/x86_64/x86_64mach.h b/lib/machine/x86_64/x86_64mach.h deleted file mode 100644 index 05e6392..0000000 --- a/lib/machine/x86_64/x86_64mach.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - ** This file is distributed WITHOUT ANY WARRANTY; without even the implied - ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -#define __REG_PREFIX__ % - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a##b - -/* Use the right prefix for global labels. */ - -#define SYM(x) CONCAT1(__USER_LABEL_PREFIX__, x) - -/* Use the right prefix for registers. */ - -#define REG(x) CONCAT1(__REG_PREFIX__, x) - -#define rax REG(rax) -#define rbx REG(rbx) -#define rcx REG(rcx) -#define rdx REG(rdx) -#define rsi REG(rsi) -#define rdi REG(rdi) -#define rbp REG(rbp) -#define rsp REG(rsp) - -#define r8 REG(r8) -#define r9 REG(r9) -#define r10 REG(r10) -#define r11 REG(r11) -#define r12 REG(r12) -#define r13 REG(r13) -#define r14 REG(r14) -#define r15 REG(r15) - -#define eax REG(eax) -#define ebx REG(ebx) -#define ecx REG(ecx) -#define edx REG(edx) -#define esi REG(esi) -#define edi REG(edi) -#define ebp REG(ebp) -#define esp REG(esp) - -#define st0 REG(st) -#define st1 REG(st(1)) -#define st2 REG(st(2)) -#define st3 REG(st(3)) -#define st4 REG(st(4)) -#define st5 REG(st(5)) -#define st6 REG(st(6)) -#define st7 REG(st(7)) - -#define ax REG(ax) -#define bx REG(bx) -#define cx REG(cx) -#define dx REG(dx) - -#define ah REG(ah) -#define bh REG(bh) -#define ch REG(ch) -#define dh REG(dh) - -#define al REG(al) -#define bl REG(bl) -#define cl REG(cl) -#define dl REG(dl) - -#define sil REG(sil) - -#define mm1 REG(mm1) -#define mm2 REG(mm2) -#define mm3 REG(mm3) -#define mm4 REG(mm4) -#define mm5 REG(mm5) -#define mm6 REG(mm6) -#define mm7 REG(mm7) - -#define xmm0 REG(xmm0) -#define xmm1 REG(xmm1) -#define xmm2 REG(xmm2) -#define xmm3 REG(xmm3) -#define xmm4 REG(xmm4) -#define xmm5 REG(xmm5) -#define xmm6 REG(xmm6) -#define xmm7 REG(xmm7) - -#define cr0 REG(cr0) -#define cr1 REG(cr1) -#define cr2 REG(cr2) -#define cr3 REG(cr3) -#define cr4 REG(cr4) - -#ifdef _I386MACH_NEED_SOTYPE_FUNCTION -#define SOTYPE_FUNCTION(sym) .type SYM(sym),@function -#else -#define SOTYPE_FUNCTION(sym) -#endif - -#ifndef _I386MACH_DISABLE_HW_INTERRUPTS -#define __CLI -#define __STI -#else -#define __CLI cli -#define __STI sti -#endif diff --git a/lib/machine/xc16x/Makefile.inc b/lib/machine/xc16x/Makefile.inc deleted file mode 100644 index 853f9ad..0000000 --- a/lib/machine/xc16x/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S %D%/puts.c %D%/putchar.c diff --git a/lib/machine/xc16x/putchar.c b/lib/machine/xc16x/putchar.c deleted file mode 100644 index 13a6aa3..0000000 --- a/lib/machine/xc16x/putchar.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (C) 2006 KPIT Cummins - * Copyright (C) 2009 Conny Marco Menebröcker - * All rights reserved. - * - * Redistribution and use in source and binary forms is permitted - * provided that the above copyright notice and following paragraph are - * duplicated in all such forms. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ -void putchar (int c) -{ - asm("trap #1"); -} - diff --git a/lib/machine/xc16x/puts.c b/lib/machine/xc16x/puts.c deleted file mode 100644 index c833a8f..0000000 --- a/lib/machine/xc16x/puts.c +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2006 KPIT Cummins - * Copyright (C) 2009 Conny Marco Menebröcker - * All rights reserved. - * - * Redistribution and use in source and binary forms is permitted - * provided that the above copyright notice and following paragraph are - * duplicated in all such forms. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ -int puts(const char *s) -{ /* Print string Function */ - - int a; - while ((a = *s++)) - putchar(a); - return putchar('\n'); -} - diff --git a/lib/machine/xc16x/setjmp.S b/lib/machine/xc16x/setjmp.S deleted file mode 100644 index fc0b5c1..0000000 --- a/lib/machine/xc16x/setjmp.S +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2006 KPIT Cummins - * Copyright (C) 2009 Conny Marco Menebröcker - * All rights reserved. - * - * Redistribution and use in source and binary forms is permitted - * provided that the above copyright notice and following paragraph are - * duplicated in all such forms. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -.section .text -.global setjmp -_setjmp: -#ifdef __xc16xL__ -rets - -#else - -ret -#endif diff --git a/lib/machine/xstormy16/Makefile.inc b/lib/machine/xstormy16/Makefile.inc deleted file mode 100644 index c8df172..0000000 --- a/lib/machine/xstormy16/Makefile.inc +++ /dev/null @@ -1,14 +0,0 @@ -libc_a_SOURCES += \ - %D%/setjmp.S \ - %D%/calloc.c \ - %D%/callocr.c \ - %D%/cfree.c \ - %D%/freer.c \ - %D%/malign.c \ - %D%/malloc.c \ - %D%/mallocr.c \ - %D%/msize.c \ - %D%/mstats.c \ - %D%/realloc.c \ - %D%/reallocr.c \ - %D%/valloc.c diff --git a/lib/machine/xstormy16/calloc.c b/lib/machine/xstormy16/calloc.c deleted file mode 100644 index 46adf7f..0000000 --- a/lib/machine/xstormy16/calloc.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_CALLOC -#include "tiny-malloc.c" diff --git a/lib/machine/xstormy16/callocr.c b/lib/machine/xstormy16/callocr.c deleted file mode 100644 index 3e5053c..0000000 --- a/lib/machine/xstormy16/callocr.c +++ /dev/null @@ -1,7 +0,0 @@ -#include - -void * -_calloc_r (struct _reent *r, size_t a, size_t b) -{ - return calloc (a, b); -} diff --git a/lib/machine/xstormy16/cfree.c b/lib/machine/xstormy16/cfree.c deleted file mode 100644 index 2ab5913..0000000 --- a/lib/machine/xstormy16/cfree.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_CFREE -#include "tiny-malloc.c" diff --git a/lib/machine/xstormy16/freer.c b/lib/machine/xstormy16/freer.c deleted file mode 100644 index f79ef55..0000000 --- a/lib/machine/xstormy16/freer.c +++ /dev/null @@ -1,7 +0,0 @@ -#include - -void -_free_r (struct _reent *r, void *x) -{ - free (x); -} diff --git a/lib/machine/xstormy16/malign.c b/lib/machine/xstormy16/malign.c deleted file mode 100644 index 2daba41..0000000 --- a/lib/machine/xstormy16/malign.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_MEMALIGN -#include "tiny-malloc.c" diff --git a/lib/machine/xstormy16/malloc.c b/lib/machine/xstormy16/malloc.c deleted file mode 100644 index f590201..0000000 --- a/lib/machine/xstormy16/malloc.c +++ /dev/null @@ -1,4 +0,0 @@ -/* stdlib/malloc.c defines all these symbols in this file. */ -#define DEFINE_FREE -#define DEFINE_MALLOC -#include "tiny-malloc.c" diff --git a/lib/machine/xstormy16/mallocr.c b/lib/machine/xstormy16/mallocr.c deleted file mode 100644 index d54df0b..0000000 --- a/lib/machine/xstormy16/mallocr.c +++ /dev/null @@ -1,7 +0,0 @@ -#include - -void * -_malloc_r (struct _reent *r, size_t sz) -{ - return malloc (sz); -} diff --git a/lib/machine/xstormy16/msize.c b/lib/machine/xstormy16/msize.c deleted file mode 100644 index 90b0848..0000000 --- a/lib/machine/xstormy16/msize.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_MALLOC_USABLE_SIZE -#include "tiny-malloc.c" diff --git a/lib/machine/xstormy16/mstats.c b/lib/machine/xstormy16/mstats.c deleted file mode 100644 index 1bd24da..0000000 --- a/lib/machine/xstormy16/mstats.c +++ /dev/null @@ -1,6 +0,0 @@ -/* stdlib/mstats.c defines all these symbols in this file. - TODO: Missing mstats function. */ -#define DEFINE_MALLINFO -#define DEFINE_MALLOC_STATS -#define DEFINE_MALLOPT -#include "tiny-malloc.c" diff --git a/lib/machine/xstormy16/realloc.c b/lib/machine/xstormy16/realloc.c deleted file mode 100644 index 64a29fa..0000000 --- a/lib/machine/xstormy16/realloc.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_REALLOC -#include "tiny-malloc.c" diff --git a/lib/machine/xstormy16/reallocr.c b/lib/machine/xstormy16/reallocr.c deleted file mode 100644 index 2bf5385..0000000 --- a/lib/machine/xstormy16/reallocr.c +++ /dev/null @@ -1,7 +0,0 @@ -#include - -void * -_realloc_r (struct _reent *r, void *x, size_t sz) -{ - return realloc (x, sz); -} diff --git a/lib/machine/xstormy16/setjmp.S b/lib/machine/xstormy16/setjmp.S deleted file mode 100644 index f2f7210..0000000 --- a/lib/machine/xstormy16/setjmp.S +++ /dev/null @@ -1,57 +0,0 @@ -;; xstormy16 -;; Copyright (C) 2001 by Red Hat, Incorporated. All rights reserved. -;; -;; Permission to use, copy, modify, and distribute this software -;; is freely granted, provided that this notice is preserved. -;; - .file "setjmp.S" - - .section .text - .align 1 - .global setjmp - .type setjmp,@function -setjmp: - mov r0,r10 - mov (r2++),r0 - mov r0,r11 - mov (r2++),r0 - mov r0,r12 - mov (r2++),r0 - mov r0,r13 - mov (r2++),r0 - pop r0 ; PC high word - pop r1 ; PC low word - mov (r2++), r0 - mov (r2++), r1 - mov r3,sp - mov (r2++),r3 - mov.w r2,#0 - mov r8, r0 - mov r9, r1 - jmp r8, r9 - .size setjmp,.-setjmp - - .global longjmp - .type longjmp,@function -longjmp: - mov r0,(r2++) - mov r10,r0 - mov r0,(r2++) - mov r11,r0 - mov r0,(r2++) - mov r12,r0 - mov r0,(r2++) - mov r13,r0 - mov r0,(r2++) - mov r8, r0 - mov r1,(r2++) - mov r9, r1 - mov r4,(r2++) - mov sp,r4 -;; status arg (r3) to longjmp is return value -;; if it's zero, return 1 - bnz r3, #0, 0f - mov.w r3,#1 -0: mov r2, r3 - jmp r8,r9 - .size longjmp,.-longjmp diff --git a/lib/machine/xstormy16/tiny-malloc.c b/lib/machine/xstormy16/tiny-malloc.c deleted file mode 100644 index e6f67a8..0000000 --- a/lib/machine/xstormy16/tiny-malloc.c +++ /dev/null @@ -1,603 +0,0 @@ -/* A replacement malloc with: - - Much reduced code size; - - Smaller RAM footprint; - - The ability to handle downward-growing heaps; - but - - Slower; - - Probably higher memory fragmentation; - - Doesn't support threads (but, if it did support threads, - it wouldn't need a global lock, only a compare-and-swap instruction); - - Assumes the maximum alignment required is the alignment of a pointer; - - Assumes that memory is already there and doesn't need to be allocated. - -* Synopsis of public routines - - malloc(size_t n); - Return a pointer to a newly allocated chunk of at least n bytes, or null - if no space is available. - free(void* p); - Release the chunk of memory pointed to by p, or no effect if p is null. - realloc(void* p, size_t n); - Return a pointer to a chunk of size n that contains the same data - as does chunk p up to the minimum of (n, p's size) bytes, or null - if no space is available. The returned pointer may or may not be - the same as p. If p is null, equivalent to malloc. Unless the - #define REALLOC_ZERO_BYTES_FREES below is set, realloc with a - size argument of zero (re)allocates a minimum-sized chunk. - memalign(size_t alignment, size_t n); - Return a pointer to a newly allocated chunk of n bytes, aligned - in accord with the alignment argument, which must be a power of - two. Will fail if 'alignment' is too large. - calloc(size_t unit, size_t quantity); - Returns a pointer to quantity * unit bytes, with all locations - set to zero. - cfree(void* p); - Equivalent to free(p). - malloc_trim(size_t pad); - Release all but pad bytes of freed top-most memory back - to the system. Return 1 if successful, else 0. - malloc_usable_size(void* p); - Report the number usable allocated bytes associated with allocated - chunk p. This may or may not report more bytes than were requested, - due to alignment and minimum size constraints. - malloc_stats(); - Prints brief summary statistics on stderr. - mallinfo() - Returns (by copy) a struct containing various summary statistics. - mallopt(int parameter_number, int parameter_value) - Changes one of the tunable parameters described below. Returns - 1 if successful in changing the parameter, else 0. Actually, returns 0 - always, as no parameter can be changed. -*/ - -#ifdef __xstormy16__ -#define MALLOC_DIRECTION -1 -#endif - -#ifndef MALLOC_DIRECTION -#define MALLOC_DIRECTION 1 -#endif - -#include - -void* malloc(size_t); -void free(void*); -void* realloc(void*, size_t); -void* memalign(size_t, size_t); -void* valloc(size_t); -void* pvalloc(size_t); -void* calloc(size_t, size_t); -void cfree(void*); -int malloc_trim(size_t); -size_t malloc_usable_size(void*); -void malloc_stats(void); -int mallopt(int, int); -struct mallinfo mallinfo(void); - -typedef struct freelist_entry { - size_t size; - struct freelist_entry *next; -} *fle; - -extern void * __malloc_end; -extern fle __malloc_freelist; - -/* Return the number of bytes that need to be added to X to make it - aligned to an ALIGN boundary. ALIGN must be a power of 2. */ -#define M_ALIGN(x, align) (-(size_t)(x) & ((align) - 1)) - -/* Return the number of bytes that need to be subtracted from X to make it - aligned to an ALIGN boundary. ALIGN must be a power of 2. */ -#define M_ALIGN_SUB(x, align) ((size_t)(x) & ((align) - 1)) - -extern void __malloc_start; - -/* This is the minimum gap allowed between __malloc_end and the top of - the stack. This is only checked for when __malloc_end is - decreased; if instead the stack grows into the heap, silent data - corruption will result. */ -#define MALLOC_MINIMUM_GAP 32 - -#ifdef __xstormy16__ -register void * stack_pointer asm ("r15"); -#define MALLOC_LIMIT stack_pointer -#else -#define MALLOC_LIMIT __builtin_frame_address (0) -#endif - -#if MALLOC_DIRECTION < 0 -#define CAN_ALLOC_P(required) \ - (((size_t) __malloc_end - (size_t)MALLOC_LIMIT \ - - MALLOC_MINIMUM_GAP) >= (required)) -#else -#define CAN_ALLOC_P(required) \ - (((size_t)MALLOC_LIMIT - (size_t) __malloc_end \ - - MALLOC_MINIMUM_GAP) >= (required)) -#endif - -/* real_size is the size we actually have to allocate, allowing for - overhead and alignment. */ -#define REAL_SIZE(sz) \ - ((sz) < sizeof (struct freelist_entry) - sizeof (size_t) \ - ? sizeof (struct freelist_entry) \ - : sz + sizeof (size_t) + M_ALIGN(sz, sizeof (size_t))) - -#ifdef DEFINE_MALLOC - -void * __malloc_end = &__malloc_start; -fle __malloc_freelist; - -void * -malloc (size_t sz) -{ - fle *nextfree; - fle block; - - /* real_size is the size we actually have to allocate, allowing for - overhead and alignment. */ - size_t real_size = REAL_SIZE (sz); - - /* Look for the first block on the freelist that is large enough. */ - for (nextfree = &__malloc_freelist; - *nextfree; - nextfree = &(*nextfree)->next) - { - block = *nextfree; - - if (block->size >= real_size) - { - /* If the block found is just the right size, remove it from - the free list. Otherwise, split it. */ - if (block->size < real_size + sizeof (struct freelist_entry)) - { - *nextfree = block->next; - return (void *)&block->next; - } - else - { - size_t newsize = block->size - real_size; - fle newnext = block->next; - *nextfree = (fle)((size_t)block + real_size); - (*nextfree)->size = newsize; - (*nextfree)->next = newnext; - goto done; - } - } - - /* If this is the last block on the freelist, and it was too small, - enlarge it. */ - if (! block->next - && __malloc_end == (void *)((size_t)block + block->size)) - { - size_t moresize = real_size - block->size; - if (! CAN_ALLOC_P (moresize)) - return NULL; - - *nextfree = NULL; - if (MALLOC_DIRECTION < 0) - { - block = __malloc_end = (void *)((size_t)block - moresize); - } - else - { - __malloc_end = (void *)((size_t)block + real_size); - } - - goto done; - } - } - - /* No free space at the end of the free list. Allocate new space - and use that. */ - - if (! CAN_ALLOC_P (real_size)) - return NULL; - - if (MALLOC_DIRECTION > 0) - { - block = __malloc_end; - __malloc_end = (void *)((size_t)__malloc_end + real_size); - } - else - { - block = __malloc_end = (void *)((size_t)__malloc_end - real_size); - } - done: - block->size = real_size; - return (void *)&block->next; -} - -#endif - -#ifdef DEFINE_FREE - -void -free (void *block_p) -{ - fle *nextfree; - fle block = (fle)((size_t) block_p - offsetof (struct freelist_entry, next)); - - if (block_p == NULL) - return; - - /* Look on the freelist to see if there's a free block just before - or just after this block. */ - for (nextfree = &__malloc_freelist; - *nextfree; - nextfree = &(*nextfree)->next) - { - fle thisblock = *nextfree; - if ((size_t)thisblock + thisblock->size == (size_t) block) - { - thisblock->size += block->size; - if (MALLOC_DIRECTION > 0 - && thisblock->next - && (size_t) block + block->size == (size_t) thisblock->next) - { - thisblock->size += thisblock->next->size; - thisblock->next = thisblock->next->next; - } - return; - } - else if ((size_t) thisblock == (size_t) block + block->size) - { - if (MALLOC_DIRECTION < 0 - && thisblock->next - && (size_t) block == ((size_t) thisblock->next - + thisblock->next->size)) - { - *nextfree = thisblock->next; - thisblock->next->size += block->size + thisblock->size; - } - else - { - block->size += thisblock->size; - block->next = thisblock->next; - *nextfree = block; - } - return; - } - else if ((MALLOC_DIRECTION > 0 - && (size_t) thisblock > (size_t) block) - || (MALLOC_DIRECTION < 0 - && (size_t) thisblock < (size_t) block)) - break; - } - - block->next = *nextfree; - *nextfree = block; - return; -} -#endif - -#ifdef DEFINE_REALLOC -#include - -void * -realloc (void *block_p, size_t sz) -{ - fle block = (fle)((size_t) block_p - offsetof (struct freelist_entry, next)); - size_t real_size = REAL_SIZE (sz); - size_t old_real_size; - - if (block_p == NULL) - return malloc (sz); - - old_real_size = block->size; - - /* Perhaps we need to allocate more space. */ - if (old_real_size < real_size) - { - void *result; - size_t old_size = old_real_size - sizeof (size_t); - - /* Need to allocate, copy, and free. */ - result = malloc (sz); - if (result == NULL) - return NULL; - memcpy (result, block_p, old_size < sz ? old_size : sz); - free (block_p); - return result; - } - /* Perhaps we can free some space. */ - if (old_real_size - real_size >= sizeof (struct freelist_entry)) - { - fle newblock = (fle)((size_t)block + real_size); - block->size = real_size; - newblock->size = old_real_size - real_size; - free (&newblock->next); - } - return block_p; -} -#endif - -#ifdef DEFINE_CALLOC -#include - -void * -calloc (size_t n, size_t elem_size) -{ - void *result; - size_t sz = n * elem_size; - result = malloc (sz); - if (result != NULL) - memset (result, 0, sz); - return result; -} -#endif - -#ifdef DEFINE_CFREE -void -cfree (void *p) -{ - free (p); -} -#endif - -#ifdef DEFINE_MEMALIGN -void * -memalign (size_t align, size_t sz) -{ - fle *nextfree; - fle block; - - /* real_size is the size we actually have to allocate, allowing for - overhead and alignment. */ - size_t real_size = REAL_SIZE (sz); - - /* Some sanity checking on 'align'. */ - if ((align & (align - 1)) != 0 - || align <= 0) - return NULL; - - /* Look for the first block on the freelist that is large enough. */ - /* One tricky part is this: We want the result to be a valid pointer - to free. That means that there has to be room for a size_t - before the block. If there's additional space before the block, - it should go on the freelist, or it'll be lost---we could add it - to the size of the block before it in memory, but finding the - previous block is expensive. */ - for (nextfree = &__malloc_freelist; - ; - nextfree = &(*nextfree)->next) - { - size_t before_size; - size_t old_size; - - /* If we've run out of free blocks, allocate more space. */ - if (! *nextfree) - { - old_size = real_size; - if (MALLOC_DIRECTION < 0) - { - old_size += M_ALIGN_SUB (((size_t)__malloc_end - - old_size + sizeof (size_t)), - align); - if (! CAN_ALLOC_P (old_size)) - return NULL; - block = __malloc_end = (void *)((size_t)__malloc_end - old_size); - } - else - { - block = __malloc_end; - old_size += M_ALIGN ((size_t)__malloc_end + sizeof (size_t), - align); - if (! CAN_ALLOC_P (old_size)) - return NULL; - __malloc_end = (void *)((size_t)__malloc_end + old_size); - } - *nextfree = block; - block->size = old_size; - block->next = NULL; - } - else - { - block = *nextfree; - old_size = block->size; - } - - - before_size = M_ALIGN (&block->next, align); - if (before_size != 0) - before_size = sizeof (*block) + M_ALIGN (&(block+1)->next, align); - - /* If this is the last block on the freelist, and it is too small, - enlarge it. */ - if (! block->next - && old_size < real_size + before_size - && __malloc_end == (void *)((size_t)block + block->size)) - { - if (MALLOC_DIRECTION < 0) - { - size_t moresize = real_size - block->size; - moresize += M_ALIGN_SUB ((size_t)&block->next - moresize, align); - if (! CAN_ALLOC_P (moresize)) - return NULL; - block = __malloc_end = (void *)((size_t)block - moresize); - block->next = NULL; - block->size = old_size = old_size + moresize; - before_size = 0; - } - else - { - if (! CAN_ALLOC_P (before_size + real_size - block->size)) - return NULL; - __malloc_end = (void *)((size_t)block + before_size + real_size); - block->size = old_size = before_size + real_size; - } - - /* Two out of the four cases below will now be possible; which - two depends on MALLOC_DIRECTION. */ - } - - if (old_size >= real_size + before_size) - { - /* This block will do. If there needs to be space before it, - split the block. */ - if (before_size != 0) - { - fle old_block = block; - - old_block->size = before_size; - block = (fle)((size_t)block + before_size); - - /* If there's no space after the block, we're now nearly - done; just make a note of the size required. - Otherwise, we need to create a new free space block. */ - if (old_size - before_size - <= real_size + sizeof (struct freelist_entry)) - { - block->size = old_size - before_size; - return (void *)&block->next; - } - else - { - fle new_block; - new_block = (fle)((size_t)block + real_size); - new_block->size = old_size - before_size - real_size; - if (MALLOC_DIRECTION > 0) - { - new_block->next = old_block->next; - old_block->next = new_block; - } - else - { - new_block->next = old_block; - *nextfree = new_block; - } - goto done; - } - } - else - { - /* If the block found is just the right size, remove it from - the free list. Otherwise, split it. */ - if (old_size <= real_size + sizeof (struct freelist_entry)) - { - *nextfree = block->next; - return (void *)&block->next; - } - else - { - size_t newsize = old_size - real_size; - fle newnext = block->next; - *nextfree = (fle)((size_t)block + real_size); - (*nextfree)->size = newsize; - (*nextfree)->next = newnext; - goto done; - } - } - } - } - - done: - block->size = real_size; - return (void *)&block->next; -} -#endif - -#ifdef DEFINE_VALLOC -void * -valloc (size_t sz) -{ - return memalign (128, sz); -} -#endif -#ifdef DEFINE_PVALLOC -void * -pvalloc (size_t sz) -{ - return memalign (128, sz + M_ALIGN (sz, 128)); -} -#endif - -#ifdef DEFINE_MALLINFO -#include "malloc.h" -#include - -struct mallinfo -mallinfo (void) -{ - struct mallinfo r; - fle fr; - size_t free_size; - size_t total_size; - size_t free_blocks; - - memset (&r, 0, sizeof (r)); - - free_size = 0; - free_blocks = 0; - for (fr = __malloc_freelist; fr; fr = fr->next) - { - free_size += fr->size; - free_blocks++; - if (! fr->next) - { - int atend; - if (MALLOC_DIRECTION > 0) - atend = (void *)((size_t)fr + fr->size) == __malloc_end; - else - atend = (void *)fr == __malloc_end; - if (atend) - r.keepcost = fr->size; - } - } - - if (MALLOC_DIRECTION > 0) - total_size = (char *)__malloc_end - (char *)&__malloc_start; - else - total_size = (char *)&__malloc_start - (char *)__malloc_end; - -#ifdef DEBUG - /* Fixme: should walk through all the in-use blocks and see if - they're valid. */ -#endif - - r.arena = total_size; - r.fordblks = free_size; - r.uordblks = total_size - free_size; - r.ordblks = free_blocks; - return r; -} -#endif - -#ifdef DEFINE_MALLOC_STATS -#include "malloc.h" -#include - -void -malloc_stats(void) -{ - struct mallinfo i; - FILE *fp; - - fp = stderr; - i = mallinfo(); - fprintf (fp, "malloc has reserved %u bytes between %p and %p\n", - i.arena, &__malloc_start, __malloc_end); - fprintf (fp, "there are %u bytes free in %u chunks\n", - i.fordblks, i.ordblks); - fprintf (fp, "of which %u bytes are at the end of the reserved space\n", - i.keepcost); - fprintf (fp, "and %u bytes are in use.\n", i.uordblks); -} -#endif - -#ifdef DEFINE_MALLOC_USABLE_SIZE -size_t -malloc_usable_size (void *block_p) -{ - fle block = (fle)((size_t) block_p - offsetof (struct freelist_entry, next)); - return block->size - sizeof (size_t); -} -#endif - -#ifdef DEFINE_MALLOPT -int -mallopt (int n, int v) -{ - (void)n; (void)v; - return 0; -} -#endif diff --git a/lib/machine/xstormy16/valloc.c b/lib/machine/xstormy16/valloc.c deleted file mode 100644 index d6543bc..0000000 --- a/lib/machine/xstormy16/valloc.c +++ /dev/null @@ -1,4 +0,0 @@ -/* stdlib/valloc.c defines all these symbols in this file. */ -#define DEFINE_PVALLOC -#define DEFINE_VALLOC -#include "tiny-malloc.c" diff --git a/lib/machine/z8k/Makefile.inc b/lib/machine/z8k/Makefile.inc deleted file mode 100644 index 5e4a2a1..0000000 --- a/lib/machine/z8k/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -libc_a_SOURCES += %D%/setjmp.S %D%/memset.S %D%/memcpy.S %D%/memmove.S %D%/memcmp.S diff --git a/lib/machine/z8k/args.h b/lib/machine/z8k/args.h deleted file mode 100644 index 3f60624..0000000 --- a/lib/machine/z8k/args.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifdef __Z8001__ - -segm -#define PARG_0 rr6 -#else -unsegm -#define PARG_0 r7 -#endif - -#define LARG_0 rr6 -#define ARG_0 r7 - -#define LARG_1 rr4 diff --git a/lib/machine/z8k/memcmp.S b/lib/machine/z8k/memcmp.S deleted file mode 100644 index ae41e63..0000000 --- a/lib/machine/z8k/memcmp.S +++ /dev/null @@ -1,185 +0,0 @@ -/* - * memcmp routine for Z8000 - * Copyright (C) 2004 Christian Groessler - * - * Permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* int memcmp(const void *b1, const void *b2, size_t length); - */ - - name "memcmp.S" - - .text - even -global _memcmp - -_memcmp: - -#ifdef __Z8001__ - segm - -#ifdef __STD_CALL__ - ldl rr6,rr14(#4) - ldl rr4,rr14(#8) - ldl rr2,rr14(#12) -#endif - -/* rr2 - length (high word ignored) - * rr4 - b2 - * rr6 - b1 - */ - - clr r1 /* initialize return value */ - testl rr2 - jr z,finish - - bitb rl7,#0 /* odd b1? */ - jr nz,testb2 - bitb rl5,#0 /* odd b2? */ - jr nz,odd_cmp /* b1 even, b2 odd */ - jr t,even_cmp - -testb2: - bitb rl5,#0 - jr z,odd_cmp /* b2 even, b1 odd */ - - cpsib @rr6,@rr4,r3,eq - jr z,beq /* bytes are the same */ - jr t,byte_diff - -beq: jr ov,finish /* jump if r3 is zero now */ - -/* compare words */ -even_cmp: - ld r2,r3 /* remember length */ - srl r3,#1 - jr z,no_words - - cpsir @rr6,@rr4,r3,ne - jr nz,no_words - - dec r7,#2 - dec r5,#2 /* point to different bytes */ - ldk r3,#2 - jr t,odd_cmp - -no_words: - bitb rl2,#0 /* odd length? */ - jr z,finish - - cpsib @rr6,@rr4,r3,eq - jr z,finish /* last bytes are the same */ - jr t,byte_diff - -/* compare bytes */ -odd_cmp: - cpsirb @rr6,@rr4,r3,ne - jr nz,finish - -byte_diff: - dec r7,#1 - dec r5,#1 /* point to different bytes */ - - ldb rl1,@rr6 - clr r0 - ldb rl0,@rr4 - sub r1,r0 - -finish: /* set return value */ -#ifdef __STD_CALL__ - ld r7,r1 -#else - ld r2,r1 -#endif - - -#else /* above Z8001, below Z8002 */ - - - unsegm - -#ifdef __STD_CALL__ - ld r7,r15(#2) - ld r6,r15(#4) - ld r5,r15(#6) -#endif - -/* r5 - length - * r6 - b2 - * r7 - b1 - */ - - clr r1 /* initialize return value */ - test r5 - jr z,finish - - bitb rl7,#0 /* odd destination address? */ - jr nz,testb2 - bitb rl6,#0 /* odd source address? */ - jr nz,odd_cmp /* b1 even, b2 odd */ - jr t,even_cmp - -testb2: - bitb rl6,#0 - jr z,odd_cmp /* b2 even, b1 odd */ - - cpsib @r7,@r6,r5,eq - jr z,beq /* bytes are the same */ - jr t,byte_diff - -beq: jr ov,finish /* jump if r3 is zero now */ - -/* compare words */ -even_cmp: - ld r4,r5 /* remember length */ - srl r5,#1 - jr z,no_words - - cpsir @r7,@r6,r5,ne - jr nz,no_words - - dec r7,#2 - dec r6,#2 /* point to different bytes */ - ldk r5,#2 - jr t,odd_cmp - -no_words: - bitb rl4,#0 /* odd length? */ - jr z,finish - - cpsib @r7,@r6,r4,eq - jr z,finish /* last bytes are the same */ - jr t,byte_diff - -/* compare bytes */ -odd_cmp: - cpsirb @r7,@r6,r5,ne - jr nz,finish - -byte_diff: - dec r7,#1 - dec r6,#1 /* point to different bytes */ - - ldb rl1,@r7 - clr r0 - ldb rl0,@r6 - sub r1,r0 - -finish: -#ifdef __STD_CALL__ - ld r7,r1 -#else - ld r2,r1 -#endif - -#endif /* Z8002 */ - - ret - .end diff --git a/lib/machine/z8k/memcpy.S b/lib/machine/z8k/memcpy.S deleted file mode 100644 index ede6037..0000000 --- a/lib/machine/z8k/memcpy.S +++ /dev/null @@ -1,145 +0,0 @@ -/* - * memcpy routine for Z8000 - * Copyright (C) 2004 Christian Groessler - * - * Permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* void *memcpy(void *dest, const void *src, size_t length); - */ - - name "memcpy.S" - - .text - even -global _memcpy -global memmove_entry - -_memcpy: - -#ifdef __Z8001__ - segm - -#ifdef __STD_CALL__ - ldl rr6,rr14(#4) - ldl rr4,rr14(#8) - ldl rr2,rr14(#12) -#else - pushl @rr14,rr6 -#endif - -/* rr2 - length (high word ignored) - * rr4 - src - * rr6 - dest - */ - - testl rr2 - jr z,finish - -memmove_entry: /* external entry point from memmove */ - - bitb rl7,#0 /* odd destination address? */ - jr nz,testsrc - bitb rl5,#0 /* odd source address? */ - jr nz,odd_copy - jr t,even_copy /* dest even, src odd */ - -testsrc: - bitb rl5,#0 - jr z,odd_copy /* src even, dest odd */ - ldib @rr6,@rr4,r3 - jr ov,finish /* jump if r3 is zero now */ - -/* copy words */ -even_copy: - ld r2,r3 /* remember length */ - srl r3,#1 - jr z,no_words - - ldir @rr6,@rr4,r3 - -no_words: - bitb rl2,#0 /* odd length? */ - jr z,finish - ldib @rr6,@rr4,r2 /* yes, copy last byte */ - jr finish - -/* copy bytes */ -odd_copy: - ldirb @rr6,@rr4,r3 - -finish: -#ifdef __STD_CALL__ - ldl rr6,rr14(#4) -#else - popl rr2,@rr14 -#endif - - -#else /* above Z8001, below Z8002 */ - - - unsegm - -#ifdef __STD_CALL__ - ld r7,r15(#2) - ld r6,r15(#4) - ld r5,r15(#6) -#else - ld r2,r7 /* buffer pointer return value */ -#endif - -/* r5 - length - * r6 - src - * r7 - dest - */ - test r5 - jr z,finish - -memmove_entry: /* external entry point from memmove */ - - bitb rl7,#0 /* odd destination address? */ - jr nz,testsrc - bitb rl6,#0 /* odd source address? */ - jr nz,odd_copy - jr t,even_copy /* dest even, src odd */ - -testsrc: - bitb rl6,#0 - jr z,odd_copy /* src even, dest odd */ - ldib @r7,@r6,r5 - jr ov,finish /* jump if r5 is zero now */ - -/* copy words */ -even_copy: - ld r4,r5 /* remember length */ - srl r5,#1 - jr z,no_words - - ldir @r7,@r6,r5 - -no_words: - bitb rl4,#0 /* odd length? */ - jr z,finish - ldib @r7,@r6,r4 /* yes, copy last byte */ - jr finish - -/* copy bytes */ -odd_copy: - ldirb @r7,@r6,r5 - -finish: -#ifdef __STD_CALL__ - ld r7,r15(#2) -#endif - -#endif /* Z8002 */ - - ret - .end diff --git a/lib/machine/z8k/memmove.S b/lib/machine/z8k/memmove.S deleted file mode 100644 index c4d0c73..0000000 --- a/lib/machine/z8k/memmove.S +++ /dev/null @@ -1,180 +0,0 @@ -/* - * memmove routine for Z8000 - * Copyright (C) 2004 Christian Groessler - * - * Permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* void *memmove(void *dest, const void *src, size_t length); - */ - - name "memmove.S" - - .text - even -global _memmove - -_memmove: - -#ifdef __Z8001__ - segm - -#ifdef __STD_CALL__ - ldl rr6,rr14(#4) - ldl rr4,rr14(#8) - ldl rr2,rr14(#12) -#else - pushl @rr14,rr6 -#endif - -/* rr2 - length (high word ignored) - * rr4 - src - * rr6 - dest - */ - - testl rr2 - jr z,finish - -/* check for destructive overlap (src < dest && dest < src + length) */ - - cpl rr6,rr4 - jp ule,memmove_entry /* non-destructive, let memcpy do the work */ - ldl rr0,rr2 - addl rr0,rr4 /* rr0 = src + length */ - cpl rr0,rr6 - jp ult,memmove_entry /* non-destructive, let memcpy do the work */ - -/* set-up pointers to copy backwards, add (length - 1) */ - addl rr4,rr2 /* src + length */ - addl rr6,rr2 /* dest + length */ - subl rr4,#1 - subl rr6,#1 - -/* check alignment */ - bitb rl7,#0 /* odd destination address? */ - jr z,testsrc - bitb rl5,#0 /* odd source address? */ - jr z,odd_copy - jr even_copy - -testsrc: - bitb rl5,#0 - jr nz,odd_copy /* src even, dest odd */ - lddb @rr6,@rr4,r3 - jr ov,finish /* jump if r5 is zero now */ - -/* copy words */ -even_copy: - ld r2,r3 /* remember length */ - srl r3,#1 -/* jr z,no_words it cannot be zero here */ - - dec r5,#1 - dec r7,#1 - lddr @rr6,@rr4,r3 - -no_words: - bitb rl2,#0 /* odd length? */ - jr z,finish - inc r5,#1 - inc r7,#1 - lddb @rr6,@rr4,r2 /* yes, copy last byte */ - jr finish - -/* copy bytes */ -odd_copy: - lddrb @rr6,@rr4,r3 - -finish: -#ifdef __STD_CALL__ - ldl rr6,rr14(#4) -#else - popl rr2,@rr14 -#endif - - -#else /* above Z8001, below Z8002 */ - - - unsegm - -#ifdef __STD_CALL__ - ld r7,r15(#2) - ld r6,r15(#4) - ld r5,r15(#6) -#else - ld r2,r7 /* buffer pointer return value */ -#endif - -/* r5 - length - * r6 - src - * r7 - dest - */ - test r5 - jr z,finish - -/* check for destructive overlap (src < dest && dest < src + length) */ - - cp r7,r6 - jp ule,memmove_entry /* non-destructive, let memcpy do the work */ - ld r0,r5 - add r0,r6 /* r0 = src + length */ - cp r0,r7 - jp ult,memmove_entry /* non-destructive, let memcpy do the work */ - -/* set-up pointers to copy backwards, add (length - 1) */ - add r6,r5 /* src + length */ - add r7,r5 /* dest + length */ - dec r6,#1 - dec r7,#1 - -/* check alignment */ - bitb rl7,#0 /* odd destination address? */ - jr z,testsrc - bitb rl6,#0 /* odd source address? */ - jr z,odd_copy - jr even_copy - -testsrc: - bitb rl6,#0 - jr nz,odd_copy /* src even, dest odd */ - lddb @r7,@r6,r5 - jr ov,finish /* jump if r5 is zero now */ - -/* copy words */ -even_copy: - ld r4,r5 /* remember length */ - srl r5,#1 -/* jr z,no_words it cannot be zero here */ - - dec r6,#1 - dec r7,#1 - lddr @r7,@r6,r5 - -no_words: - bitb rl4,#0 /* odd length? */ - jr z,finish - inc r6,#1 - inc r7,#1 - lddb @r7,@r6,r4 /* yes, copy last byte */ - jr finish - -/* copy bytes */ -odd_copy: - lddrb @r7,@r6,r5 - -finish: -#ifdef __STD_CALL__ - ld r7,r15(#2) -#endif - -#endif /* Z8002 */ - - ret - .end diff --git a/lib/machine/z8k/memset.S b/lib/machine/z8k/memset.S deleted file mode 100644 index 43184c7..0000000 --- a/lib/machine/z8k/memset.S +++ /dev/null @@ -1,135 +0,0 @@ -/* - * memset routine for Z8000 - * Copyright (C) 2004 Christian Groessler - * - * Permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* void *memset(void *buffer, int value, size_t length); - */ - - name "memset.S" - - .text - even -global _memset - -_memset: - -#ifdef __Z8001__ - segm - -#ifdef __STD_CALL__ - ldl rr6,rr14(#4) - ld r5,rr14(#8) - ldl rr2,rr14(#10) -#else - pushl @rr14,rr6 -#endif - -/* rr2 - length - * rl5 - value - * rr6 - buffer - */ - testl rr2 - jr z,finish - - ldb rh5,rl5 - ld r1,r5 /* r1 contains value */ - bit r7,#0 - jr z,not_odd - - ldb @rr6,rl1 - inc r7,#1 - subl rr2,#1 - jr z,finish - -not_odd:ld r0,r3 /* remember length */ - srl r3,#1 - jr z,no_words - - ldl rr4,rr6 - ld @rr6,r1 - inc r7,#2 - dec r3,#1 - jr z,no_words - - ldir @rr6,@rr4,r3 /* fill words */ - -no_words: - bit r0,#0 /* one byte remaining? */ - jr z,finish - - ldb @rr6,rl1 - -finish: -#ifdef __STD_CALL__ - ldl rr6,rr14(#4) -#else - popl rr2,@rr14 -#endif - - -#else /* above Z8001, below Z8002 */ - - - unsegm - -#ifdef __STD_CALL__ - ld r7,r15(#2) - ld r6,r15(#4) - ld r5,r15(#6) -#else - ld r2,r7 /* buffer pointer return value */ -#endif - -/* r5 - length - * r6 - value - * r7 - buffer - */ - test r5 - jr z,finish - - ldb rh6,rl6 - ld r1,r6 /* r1 contains value */ - bit r7,#0 - jr z,not_odd - - ldb @r7,rl1 - inc r7,#1 - dec r5,#1 - jr z,finish - -not_odd:ld r0,r5 /* remember length */ - srl r5,#1 - jr z,no_words - - ld r4,r7 - ld @r7,r1 - inc r7,#2 - dec r5,#1 - jr z,no_words - - ldir @r7,@r4,r5 /* fill words */ - -no_words: - bit r0,#0 /* one byte remaining? */ - jr z,finish - - ldb @r7,rl1 - -finish: -#ifdef __STD_CALL__ - ld r7,r15(#2) -#endif - -#endif /* Z8002 */ - - ret - .end diff --git a/lib/machine/z8k/setjmp.S b/lib/machine/z8k/setjmp.S deleted file mode 100644 index 30240e1..0000000 --- a/lib/machine/z8k/setjmp.S +++ /dev/null @@ -1,102 +0,0 @@ - .global _setjmp - .global _longjmp - -#ifdef __Z8001__ - segm - -#ifdef __STD_CALL__ - -_setjmp: - ldl rr6,rr14(#4) ! get argument - ldl rr2,@rr14 ! fetch pc - ldl @rr6,rr2 ! save it - ldl rr6(#16),rr8 - ldl rr6(#4),rr10 - ldl rr6(#8),rr12 ! remember frame pointer - ldl rr6(#12),rr14 ! remember stack pointer - ldk r7,#0 - ret t - -_longjmp: - ldl rr4,rr14(#4) ! get first argument - ld r7,rr14(#8) ! get return value - ldl rr8,rr4(#16) - ldl rr10,rr4(#4) - ldl rr12,rr4(#8) ! restore old frame pointer - ldl rr14,rr4(#12) ! restore old stack pointer - ldl rr4,@rr4 ! return address - inc r15,#4 - jp @rr4 - -#else /* above __STD_CALL_, below not */ - -_setjmp: - ldl rr2,@rr14 ! fetch pc - ldl @rr6,rr2 ! save it - ldl rr6(16),rr8 - ldl rr6(4),rr10 - ldl rr6(8),rr12 ! and the other special regs - ldl rr6(12),rr14 - ldk r2,#0 - ret t - -_longjmp: - ld r2,r5 ! get return value - ldl rr4,rr6(0) - ldl rr8,rr6(16) - ldl rr10,rr6(4) - ldl rr12,rr6(8) - ldl rr14,rr6(12) - inc r15,#4 - jp @rr4 - -#endif /* not __STD_CALL__ */ -#else /* above Z8001, below Z8002 */ - unseg - -#ifdef __STD_CALL__ - -_setjmp: - ld r7,r15(#2) ! get argument - ld r2,@r15 ! fetch pc - ld @r7,r2 ! save it - ldl r7(#14),rr8 - ldl r7(#2),rr10 - ldl r7(#6),rr12 ! remember frame pointer - ldl r7(#10),rr14 ! remember stack pointer - ldk r7,#0 - ret t - -_longjmp: - ld r4,r15(#2) ! get first argument (jmp_buf) - ld r7,r15(#4) ! get return value - ldl rr8,r4(#14) - ldl rr10,r4(#2) - ldl rr12,r4(#6) ! restore old frame pointer - ldl rr14,r4(#10) ! restore old stack pointer - ld r4,@r4 ! return address - inc r15,#2 - jp @r4 - -#else /* above __STD_CALL_, below not */ - -_setjmp: - ld r2,@r15 ! fetch pc - ld @r7,r2 ! save it - ldl r7(4),rr10 - ldl r7(8),rr12 ! and the other special regs - ldl r7(12),rr14 - ldk r2,#0 - ret t - -_longjmp: - ld r2,r6 ! get return value - ld r4,@r7 - ldl rr10,r7(4) - ldl rr12,r7(8) - ldl rr14,r7(12) - inc r15,#2 - jp @r4 - -#endif /* not __STD_CALL__ */ -#endif /* Z8002 version */ diff --git a/lib/misc/Makefile.inc b/lib/misc/Makefile.inc deleted file mode 100644 index 78bb022..0000000 --- a/lib/misc/Makefile.inc +++ /dev/null @@ -1,18 +0,0 @@ -libc_a_SOURCES += \ - %D%/__dprintf.c \ - %D%/unctrl.c \ - %D%/ffs.c \ - %D%/init.c \ - %D%/fini.c - -if NEWLIB_RETARGETABLE_LOCKING -libc_a_SOURCES += \ - %D%/lock.c -endif - -LIBC_CHEWOUT_FILES += \ - %D%/ffs.def \ - %D%/lock.def \ - %D%/unctrl.def - -LIBC_CHAPTERS += %D%/misc.tex diff --git a/lib/misc/__dprintf.c b/lib/misc/__dprintf.c deleted file mode 100644 index 31454f4..0000000 --- a/lib/misc/__dprintf.c +++ /dev/null @@ -1,268 +0,0 @@ -/* Debugging printf, for debugging the library itself. - - We don't assume stdio is working. - We do assume _write_r is working. -*/ - -#include <_ansi.h> -#include "ctype.h" -#include "reent.h" -#include "string.h" -#include "unctrl.h" - -#ifdef __STDC__ -#include "stdarg.h" -#else -#include "varargs.h" -#endif - -#if 0 -static char *parse_number (); -#endif - -static long get_number (char *, long, int); -static void print_number (int, int, long); -static void write_char (char c); -static void write_string (const char *s); - -/* Non-zero for big-endian systems. */ -static int big_endian_p; - -/* For now hardcode 2 (stderr) as the console file descriptor. - May wish to let the caller pass in a file descriptor or some such but - this is only for debugging purposes anyway. */ -#define CONSOLE_FD 2 - -/* Standalone printf routine. - - The format string has been enhanced so that multiple values can be dumped - without having to have a %-field for each one (say if you want to dump - 20 words at a certain address). A modifier of `N' says the next argument - is a count, and the one after that is a pointer. - - Example: __dprintf ("%Nx\n", 20, p); /-* print 20 ints at `p' *-/ - - Supported formats are: c d u x s p. - - All ints are retrieved a byte at a time so alignment issues are not - a problem. - - This routine is used in situations where the only debugging capability - is console output and was written to aid debugging newlib itself. We don't - use printf ourselves as we may be debugging it. We do assume _write_r is - working. -*/ - -void -#ifdef __STDC__ -__dprintf (const char *fmt, ...) -#else -__dprintf (fmt, va_alist) - char *fmt; - va_dcl -#endif -{ - va_list args; - - /* Which endian are we? */ - { - short tmp = 1; - big_endian_p = *(char *) &tmp == 0; - } - -#ifdef __STDC__ - va_start (args, fmt); -#else - va_start (args); -#endif - - while (*fmt) - { - char c, *p; - int count; - long l; - - if (*fmt != '%' || *++fmt == '%') - { - write_char (*fmt++); - continue; - } - - if (*fmt == 'N') - { - count = va_arg (args, int); - p = va_arg (args, char *); - ++fmt; - c = *fmt++; - - while (--count >= 0) - { - switch (c) - { - case 'c' : - write_string (unctrl (*p++)); - break; - case 'p' : - print_number (16, 1, get_number (p, sizeof (char *), 1)); - p += sizeof (char *); - break; - case 'd' : - case 'u' : - case 'x' : - print_number (c == 'x' ? 16 : 10, c != 'd', - get_number (p, sizeof (int), c != 'd')); - p += sizeof (int); - break; - case 's' : - write_string (*(char **) p); - p += sizeof (char *); - break; - } - if (count > 0) - write_char (' '); - } - } - else - { - switch (c = *fmt++) - { - case 'c' : - c = va_arg (args, int); - write_string (unctrl (c)); - break; - case 'p' : - l = (_POINTER_INT) va_arg (args, char *); - print_number (16, 1, l); - break; - case 'd' : - case 'u' : - case 'x' : - l = va_arg (args, int); - print_number (c == 'x' ? 16 : 10, c != 'd', l); - break; - case 's' : - p = va_arg (args, char *); - write_string (p); - break; - } - } - } - - va_end (args); -} - -#if 0 -/* Parse a positive decimal integer at S. - FIXME: Was used in earlier version, but not currently used. - Keep for now. */ - -static char * -parse_number (s, p) - char *s; - long *p; -{ - long x = 0; - - while (isdigit (*s)) - { - x = (x * 10) + (*s - '0'); - ++s; - } - - *p = x; - return s; -} -#endif - -/* Fetch the number at S of SIZE bytes. */ - -static long -get_number (char *s, - long size, - int unsigned_p) -{ - long x; - unsigned char *p = (unsigned char *) s; - - switch (size) - { - case 1 : - x = *p; - if (!unsigned_p) - x = (x ^ 0x80) - 0x80; - return x; - case 2 : - if (big_endian_p) - x = (p[0] << 8) | p[1]; - else - x = (p[1] << 8) | p[0]; - if (!unsigned_p) - x = (x ^ 0x8000) - 0x8000; - return x; - case 4 : - if (big_endian_p) - x = ((long)p[0] << 24) | ((long)p[1] << 16) | (p[2] << 8) | p[3]; - else - x = ((long)p[3] << 24) | ((long)p[2] << 16) | (p[1] << 8) | p[0]; - if (!unsigned_p) - x = (x ^ 0x80000000L) - 0x80000000L; - return x; -#if 0 /* FIXME: Is there a standard mechanism for knowing if - long longs exist? */ - case 8 : -#endif - default : - return 0; - } -} - -/* Print X in base BASE. */ - -static void -print_number (int base, - int unsigned_p, - long n) -{ - static char chars[16] = "0123456789abcdef"; - char *p, buf[32]; - unsigned long x; - - if (!unsigned_p && n < 0) - { - write_char ('-'); - x = -n; - } - else - x = n; - - p = buf + sizeof (buf); - *--p = '\0'; - do - { - *--p = chars[x % base]; - x /= base; - } - while (x != 0); - - write_string (p); -} - -/* Write C to the console. - We go through the file descriptor directly because we can't assume - stdio is working. */ - -static void -write_char (char c) -{ - _write_r (_REENT, CONSOLE_FD, &c, 1); -} - -/* Write S to the console. - We go through the file descriptor directly because we can't assume - stdio is working. */ - -static void -write_string (const char *s) -{ - _write_r (_REENT, CONSOLE_FD, s, strlen (s)); -} diff --git a/lib/misc/ffs.c b/lib/misc/ffs.c deleted file mode 100644 index 068f254..0000000 --- a/lib/misc/ffs.c +++ /dev/null @@ -1,32 +0,0 @@ -/* -FUNCTION - <>---find first bit set in a word - -INDEX - ffs - -SYNOPSIS - #include - int ffs(int <[word]>); - -DESCRIPTION - -<> returns the first bit set in a word. - -RETURNS -<> returns 0 if <[c]> is 0, 1 if <[c]> is odd, 2 if <[c]> is a multiple of -2, etc. - -PORTABILITY -<> is not ANSI C. - -No supporting OS subroutines are required. */ - -#include - -int -ffs(int i) -{ - - return (__builtin_ffs(i)); -} diff --git a/lib/misc/fini.c b/lib/misc/fini.c deleted file mode 100644 index 5f20160..0000000 --- a/lib/misc/fini.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2010 CodeSourcery, Inc. - * - * Permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* Handle ELF .{pre_init,init,fini}_array sections. */ -#include - -#ifdef _HAVE_INITFINI_ARRAY -extern void (*__fini_array_start []) (void) __attribute__((weak)); -extern void (*__fini_array_end []) (void) __attribute__((weak)); - -#ifdef _HAVE_INIT_FINI -extern void _fini (void); -#endif - -/* Run all the cleanup routines. */ -void -__libc_fini_array (void) -{ - size_t count; - size_t i; - - count = __fini_array_end - __fini_array_start; - for (i = count; i > 0; i--) - __fini_array_start[i-1] (); - -#ifdef _HAVE_INIT_FINI - _fini (); -#endif -} -#endif diff --git a/lib/misc/init.c b/lib/misc/init.c deleted file mode 100644 index 3aef7ad..0000000 --- a/lib/misc/init.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2004 CodeSourcery, LLC - * - * Permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* Handle ELF .{pre_init,init,fini}_array sections. */ -#include - -#ifdef _HAVE_INITFINI_ARRAY - -/* These magic symbols are provided by the linker. */ -extern void (*__preinit_array_start []) (void) __attribute__((weak)); -extern void (*__preinit_array_end []) (void) __attribute__((weak)); -extern void (*__init_array_start []) (void) __attribute__((weak)); -extern void (*__init_array_end []) (void) __attribute__((weak)); - -#ifdef _HAVE_INIT_FINI -extern void _init (void); -#endif - -/* Iterate over all the init routines. */ -void -__libc_init_array (void) -{ - size_t count; - size_t i; - - count = __preinit_array_end - __preinit_array_start; - for (i = 0; i < count; i++) - __preinit_array_start[i] (); - -#ifdef _HAVE_INIT_FINI - _init (); -#endif - - count = __init_array_end - __init_array_start; - for (i = 0; i < count; i++) - __init_array_start[i] (); -} -#endif diff --git a/lib/misc/lock.c b/lib/misc/lock.c deleted file mode 100644 index c03c36a..0000000 --- a/lib/misc/lock.c +++ /dev/null @@ -1,153 +0,0 @@ -/* -FUNCTION -<<__retarget_lock_init>>, <<__retarget_lock_init_recursive>>, <<__retarget_lock_close>>, <<__retarget_lock_close_recursive>>, <<__retarget_lock_acquire>>, <<__retarget_lock_acquire_recursive>>, <<__retarget_lock_try_acquire>>, <<__retarget_lock_try_acquire_recursive>>, <<__retarget_lock_release>>, <<__retarget_lock_release_recursive>>---locking routines - -INDEX - __lock___sfp_recursive_mutex -INDEX - __lock___atexit_recursive_mutex -INDEX - __lock___at_quick_exit_mutex -INDEX - __lock___malloc_recursive_mutex -INDEX - __lock___env_recursive_mutex -INDEX - __lock___tz_mutex -INDEX - __lock___dd_hash_mutex -INDEX - __lock___arc4random_mutex - -INDEX - __retarget_lock_init -INDEX - __retarget_lock_init_recursive -INDEX - __retarget_lock_close -INDEX - __retarget_lock_close_recursive -INDEX - __retarget_lock_acquire -INDEX - __retarget_lock_acquire_recursive -INDEX - __retarget_lock_try_acquire -INDEX - __retarget_lock_try_acquire_recursive -INDEX - __retarget_lock_release -INDEX - __retarget_lock_release_recursive - -SYNOPSIS - #include - struct __lock __lock___sfp_recursive_mutex; - struct __lock __lock___atexit_recursive_mutex; - struct __lock __lock___at_quick_exit_mutex; - struct __lock __lock___malloc_recursive_mutex; - struct __lock __lock___env_recursive_mutex; - struct __lock __lock___tz_mutex; - struct __lock __lock___dd_hash_mutex; - struct __lock __lock___arc4random_mutex; - - void __retarget_lock_init (_LOCK_T * <[lock_ptr]>); - void __retarget_lock_init_recursive (_LOCK_T * <[lock_ptr]>); - void __retarget_lock_close (_LOCK_T <[lock]>); - void __retarget_lock_close_recursive (_LOCK_T <[lock]>); - void __retarget_lock_acquire (_LOCK_T <[lock]>); - void __retarget_lock_acquire_recursive (_LOCK_T <[lock]>); - int __retarget_lock_try_acquire (_LOCK_T <[lock]>); - int __retarget_lock_try_acquire_recursive (_LOCK_T <[lock]>); - void __retarget_lock_release (_LOCK_T <[lock]>); - void __retarget_lock_release_recursive (_LOCK_T <[lock]>); - -DESCRIPTION -Newlib was configured to allow the target platform to provide the locking -routines and static locks at link time. As such, a dummy default -implementation of these routines and static locks is provided for -single-threaded application to link successfully out of the box on bare-metal -systems. - -For multi-threaded applications the target platform is required to provide -an implementation for @strong{all} these routines and static locks. If some -routines or static locks are missing, the link will fail with doubly defined -symbols. - -PORTABILITY -These locking routines and static lock are newlib-specific. Supporting OS -subroutines are required for linking multi-threaded applications. -*/ - -/* dummy lock routines and static locks for single-threaded apps */ - -#ifndef __SINGLE_THREAD__ - -#include - -struct __lock { - char unused; -}; - -struct __lock __lock___sfp_recursive_mutex; -struct __lock __lock___atexit_recursive_mutex; -struct __lock __lock___at_quick_exit_mutex; -struct __lock __lock___malloc_recursive_mutex; -struct __lock __lock___env_recursive_mutex; -struct __lock __lock___tz_mutex; -struct __lock __lock___dd_hash_mutex; -struct __lock __lock___arc4random_mutex; - -void -__retarget_lock_init (_LOCK_T *lock) -{ -} - -void -__retarget_lock_init_recursive(_LOCK_T *lock) -{ -} - -void -__retarget_lock_close(_LOCK_T lock) -{ -} - -void -__retarget_lock_close_recursive(_LOCK_T lock) -{ -} - -void -__retarget_lock_acquire (_LOCK_T lock) -{ -} - -void -__retarget_lock_acquire_recursive (_LOCK_T lock) -{ -} - -int -__retarget_lock_try_acquire(_LOCK_T lock) -{ - return 1; -} - -int -__retarget_lock_try_acquire_recursive(_LOCK_T lock) -{ - return 1; -} - -void -__retarget_lock_release (_LOCK_T lock) -{ -} - -void -__retarget_lock_release_recursive (_LOCK_T lock) -{ -} - -#endif /* !defined(__SINGLE_THREAD__) */ diff --git a/lib/misc/misc.tex b/lib/misc/misc.tex deleted file mode 100644 index 248243b..0000000 --- a/lib/misc/misc.tex +++ /dev/null @@ -1,18 +0,0 @@ -@node Misc -@chapter Miscellaneous Macros and Functions -This chapter describes miscellaneous routines not covered elsewhere. - -@menu -* ffs:: Return first bit set in a word -* __retarget_lock_init:: Retargetable locking routines -* unctrl:: Return printable representation of a character -@end menu - -@page -@include misc/ffs.def - -@page -@include misc/lock.def - -@page -@include misc/unctrl.def diff --git a/lib/misc/unctrl.c b/lib/misc/unctrl.c deleted file mode 100644 index cd2d937..0000000 --- a/lib/misc/unctrl.c +++ /dev/null @@ -1,137 +0,0 @@ -/* -FUNCTION - <>---get printable representation of a character - -INDEX - unctrl -INDEX - unctrllen - -SYNOPSIS - #include - char *unctrl(int <[c]>); - int unctrllen(int <[c]>); - -DESCRIPTION -<> is a macro which returns the printable representation of <[c]> -as a string. -<> is a macro which returns the length of the printable -representation of <[c]>. - -RETURNS -<> returns a string of the printable representation of <[c]>. - -<> returns the length of the string which is the printable -representation of <[c]>. - -PORTABILITY -<> and <> are not ANSI C. - -No supporting OS subroutines are required. -*/ - -/* - * Copyright (c) 1981, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)unctrl.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ - -const char * const __unctrl[256] = { - "^@", "^A", "^B", "^C", "^D", "^E", "^F", "^G", - "^H", "^I", "^J", "^K", "^L", "^M", "^N", "^O", - "^P", "^Q", "^R", "^S", "^T", "^U", "^V", "^W", - "^X", "^Y", "^Z", "^[", "^\\", "^]", "^~", "^_", - " ", "!", "\"", "#", "$", "%", "&", "'", - "(", ")", "*", "+", ",", "-", ".", "/", - "0", "1", "2", "3", "4", "5", "6", "7", - "8", "9", ":", ";", "<", "=", ">", "?", - "@", "A", "B", "C", "D", "E", "F", "G", - "H", "I", "J", "K", "L", "M", "N", "O", - "P", "Q", "R", "S", "T", "U", "V", "W", - "X", "Y", "Z", "[", "\\", "]", "^", "_", - "`", "a", "b", "c", "d", "e", "f", "g", - "h", "i", "j", "k", "l", "m", "n", "o", - "p", "q", "r", "s", "t", "u", "v", "w", - "x", "y", "z", "{", "|", "}", "~", "^?", - - "0x80", "0x81", "0x82", "0x83", "0x84", "0x85", "0x86", "0x87", - "0x88", "0x89", "0x8a", "0x8b", "0x8c", "0x8d", "0x8e", "0x8f", - "0x90", "0x91", "0x92", "0x93", "0x94", "0x95", "0x96", "0x97", - "0x98", "0x99", "0x9a", "0x9b", "0x9c", "0x9d", "0x9e", "0x9f", - "0xa0", "0xa1", "0xa2", "0xa3", "0xa4", "0xa5", "0xa6", "0xa7", - "0xa8", "0xa9", "0xaa", "0xab", "0xac", "0xad", "0xae", "0xaf", - "0xb0", "0xb1", "0xb2", "0xb3", "0xb4", "0xb5", "0xb6", "0xb7", - "0xb8", "0xb9", "0xba", "0xbb", "0xbc", "0xbd", "0xbe", "0xbf", - "0xc0", "0xc1", "0xc2", "0xc3", "0xc4", "0xc5", "0xc6", "0xc7", - "0xc8", "0xc9", "0xca", "0xcb", "0xcc", "0xcd", "0xce", "0xcf", - "0xd0", "0xd1", "0xd2", "0xd3", "0xd4", "0xd5", "0xd6", "0xd7", - "0xd8", "0xd9", "0xda", "0xdb", "0xdc", "0xdd", "0xde", "0xdf", - "0xe0", "0xe1", "0xe2", "0xe3", "0xe4", "0xe5", "0xe6", "0xe7", - "0xe8", "0xe9", "0xea", "0xeb", "0xec", "0xed", "0xee", "0xef", - "0xf0", "0xf1", "0xf2", "0xf3", "0xf4", "0xf5", "0xf6", "0xf7", - "0xf8", "0xf9", "0xfa", "0xfb", "0xfc", "0xfd", "0xfe", "0xff", -}; - -const char __unctrllen[256] = { - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, -}; diff --git a/lib/neatlibc b/lib/neatlibc new file mode 160000 index 0000000..d111f51 --- /dev/null +++ b/lib/neatlibc @@ -0,0 +1 @@ +Subproject commit d111f5115422bd527cb0034a0a697fd487e98e2d diff --git a/lib/neatlibcaarch64/aarch64/bits.S b/lib/neatlibcaarch64/aarch64/bits.S new file mode 100644 index 0000000..1c9fa51 --- /dev/null +++ b/lib/neatlibcaarch64/aarch64/bits.S @@ -0,0 +1,20 @@ +.global htonl +.global ntohl +ntohl: +htonl: + eor x1, x0, x0, ror #16 + bic x1, x1, #0x00ff0000 + mov x0, x0, ror #8 + eor x0, x0, x1, lsr #8 + ret + +.global htons +.global ntohs +ntohs: +htons: + mov x1, x0, lsr #8 + and x0, x0, #255 + and x1, x1, #255 + mov x0, x0, lsl #8 + orr x0, x0, x1 + ret diff --git a/lib/neatlibcaarch64/aarch64/lmem.S b/lib/neatlibcaarch64/aarch64/lmem.S new file mode 100644 index 0000000..bc5c62c --- /dev/null +++ b/lib/neatlibcaarch64/aarch64/lmem.S @@ -0,0 +1,26 @@ + +.global __memcpylong +__memcpylong: + mov x12, x0 // Save the base address in x12 +memcpylong_loop: + subs x2, x2, #4 // Decrement the counter (in bytes) + bmi memcpylong_ret // If the counter is negative, exit + ldr w3, [x1], #4 // Load 4 bytes from address in x1 into w3 and increment x1 + str w3, [x0], #4 // Store 4 bytes from w3 to address in x0 and increment x0 + b memcpylong_loop // Repeat the loop +memcpylong_ret: + mov x0, x12 // Restore the original base address + ret // Return from function + +.global __memsetlong +__memsetlong: + mov x12, x0 // Save the base address in x12 +memsetlong_loop: + subs x2, x2, #4 // Decrement the counter (in bytes) + bmi memsetlong_ret // If the counter is negative, exit + str w1, [x0], #4 // Store 4 bytes of the value in w1 to address in x0 and increment x0 + b memsetlong_loop // Repeat the loop +memsetlong_ret: + mov x0, x12 // Restore the original base address + ret // Return from function + diff --git a/lib/neatlibcaarch64/aarch64/string.S b/lib/neatlibcaarch64/aarch64/string.S new file mode 100644 index 0000000..483fb58 --- /dev/null +++ b/lib/neatlibcaarch64/aarch64/string.S @@ -0,0 +1,167 @@ +.global memcpy +memcpy: + mov x12, x0 +memcpy_loop: + subs x2, x2, #1 + bmi memcpy_ret + ldrb w3, [x1], #1 + strb w3, [x0], #1 + b memcpy_loop +memcpy_ret: + mov x0, x12 + ret + +.global memset +memset: + mov x12, x0 +memset_loop: + subs x2, x2, #1 + bmi memset_ret + strb w1, [x0], #1 + b memset_loop +memset_ret: + mov x0, x12 + ret + +.global memmove +memmove: + mov x12, x0 + cmp x0, x1 + ble memmove_fw + add x3, x1, x2 + cmp x0, x3 + bgt memmove_fw + + // copying the memory in reverse order + add x0, x0, x2 + add x1, x1, x2 +memmove_bw: + subs x2, x2, #1 + bmi memmove_ret + ldrb w3, [x1, #-1]! + strb w3, [x0, #-1]! + b memmove_bw +memmove_fw: + subs x2, x2, #1 + bmi memmove_ret + ldrb w3, [x1], #1 + strb w3, [x0], #1 + b memmove_fw +memmove_ret: + mov x0, x12 + ret + +.global memchr +memchr: + subs x2, x2, #1 + bmi memchr_failed + ldrb w3, [x0], #1 + cmp w3, w1 + bne memchr + sub x0, x0, #1 + b memchr_ret +memchr_failed: + mov x0, #0 +memchr_ret: + ret + +.global memrchr +memrchr: + mov x12, #0 +memrchr_loop: + subs x2, x2, #1 + bmi memrchr_ret + ldrb w3, [x0], #1 + cmp w3, w1 + cset x12, eq + b memrchr_loop +memrchr_ret: + mov x0, x12 + ret + +.global memcmp +memcmp: + subs x2, x2, #1 + bmi memcmp_match + ldrb w3, [x0], #1 + ldrb w12, [x1], #1 + subs w3, w3, w12 + cset x0, ne + bne memcmp_ret + b memcmp +memcmp_match: + mov x0, #0 +memcmp_ret: + ret + +.global strlen +strlen: + mov x2, x0 +strlen_loop: + ldrb w1, [x0], #1 + tst w1, w1 + bne strlen_loop + sub x0, x0, x2 + sub x0, x0, #1 + ret + +.global strchr +strchr: + ldrb w2, [x0], #1 + cmp w1, w2 + sub x0, x0, #1 + beq strchr_ret + tst w2, w2 + bne strchr + mov x0, #0 +strchr_ret: + ret + +.global strrchr +strrchr: + mov x3, #0 +strrchr_loop: + ldrb w2, [x0], #1 + cmp w1, w2 + cset x3, eq + tst w2, w2 + bne strrchr_loop +strrchr_ret: + mov x0, x3 + ret + +.global strcmp +strcmp: + ldrb w2, [x0], #1 + ldrb w3, [x1], #1 + cmp w2, w3 + beq strcmp + sub x0, x2, x3 + ret + +.global strcpy +strcpy: + mov x3, x0 +strcpy_loop: + ldrb w2, [x1], #1 + strb w2, [x0], #1 + tst w2, w2 + bne strcpy_loop + mov x0, x3 + ret + +.global strncmp +strncmp: + mov x12, x2 +strncmp_loop: + subs x12, x12, #1 + cset x0, mi + bmi strncmp_ret + ldrb w2, [x0], #1 + ldrb w3, [x1], #1 + cmp w2, w3 + beq strncmp_loop + sub x0, x2, x3 +strncmp_ret: + ret + diff --git a/lib/neatlibcaarch64/aarch64/syscall.S b/lib/neatlibcaarch64/aarch64/syscall.S new file mode 100644 index 0000000..7b9cf88 --- /dev/null +++ b/lib/neatlibcaarch64/aarch64/syscall.S @@ -0,0 +1,294 @@ +__syscall: + stp x4, x5, [sp, #-16]! + stp x7, lr, [sp, #-16]! + ldr x4, [sp, #32] + ldr x5, [sp, #40] + mov x7, x12 + svc #0 + + cmn x0, #4096 + csneg x2, x0, x0, cs + ldr x3, =errno + cset x0, cs + str x2, [x3], cs + ldp x4, x5, [sp], #16 + ldp x7, lr, [sp], #16 + ret + +.extern errno + +.global _exit +_exit: + mov x12, #1 + b __syscall + +.global fork +fork: + mov x12, #2 + b __syscall + +.global read +read: + mov x12, #3 + b __syscall + +.global write +write: + mov x12, #4 + b __syscall + +.global open +open: + mov x12, #5 + b __syscall + +.global close +close: + mov x12, #6 + b __syscall + +.global waitpid +waitpid: + mov x12, #7 + b __syscall + +.global creat +creat: + mov x12, #8 + b __syscall + +.global link +link: + mov x12, #9 + b __syscall + +.global unlink +unlink: + mov x12, #10 + b __syscall + +.global execve +execve: + mov x12, #11 + b __syscall + +.global chdir +chdir: + mov x12, #12 + b __syscall + +.global time +time: + mov x12, #13 + b __syscall + +.global mknod +mknod: + mov x12, #14 + b __syscall + +.global chmod +chmod: + mov x12, #15 + b __syscall + +.global lseek +lseek: + mov x12, #19 + b __syscall + +.global getpid +getpid: + mov x12, #20 + b __syscall + +.global mount +mount: + mov x12, #21 + b __syscall + +.global umount +umount: + mov x12, #22 + b __syscall + +.global setuid +setuid: + mov x12, #23 + b __syscall + +.global getuid +getuid: + mov x12, #24 + b __syscall + +.global access +access: + mov x12, #33 + b __syscall + +.global sync +sync: + mov x12, #36 + b __syscall + +.global kill +kill: + mov x12, #37 + b __syscall + +.global mkdir +mkdir: + mov x12, #39 + b __syscall + +.global rmdir +rmdir: + mov x12, #40 + b __syscall + +.global dup +dup: + mov x12, #41 + b __syscall + +.global pipe +pipe: + mov x12, #42 + b __syscall + +.global brk +brk: + mov x12, #45 + b __syscall + +.global setgid +setgid: + mov x12, #46 + b __syscall + +.global getgid +getgid: + mov x12, #47 + b __syscall + +.global geteuid +geteuid: + mov x12, #49 + b __syscall + +.global getegid +getegid: + mov x12, #50 + b __syscall + +.global ioctl +ioctl: + mov x12, #54 + b __syscall + +.global fcntl +fcntl: + mov x12, #55 + b __syscall + +.global dup2 +dup2: + mov x12, #63 + b __syscall + +.global getppid +getppid: + mov x12, #64 + b __syscall + +.global setsid +setsid: + mov x12, #66 + b __syscall + +.global sigaction +sigaction: + mov x12, #67 + b __syscall + +.global gettimeofday +gettimeofday: + mov x12, #78 + b __syscall + +.global settimeofday +settimeofday: + mov x12, #79 + b __syscall + +.global mmap +mmap: + mov x12, #192 + b __syscall + +.global munmap +munmap: + mov x12, #91 + b __syscall + +.global stat +stat: + mov x12, #106 + b __syscall + +.global lstat +lstat: + mov x12, #107 + b __syscall + +.global fstat +fstat: + mov x12, #108 + b __syscall + +.global sigreturn +sigreturn: + mov x12, #119 + b __syscall + +.global clone +clone: + mov x12, #120 + b __syscall + +.global uname +uname: + mov x12, #122 + b __syscall + +.global fchdir +fchdir: + mov x12, #133 + b __syscall + +.global getdents +getdents: + mov x12, #141 + b __syscall + +.global nanosleep +nanosleep: + mov x12, #162 + b __syscall + +.global poll +poll: + mov x12, #168 + b __syscall + +.global chown +chown: + mov x12, #182 + b __syscall + +.global getcwd +getcwd: + mov x12, #183 + b __syscall + diff --git a/lib/neatlibcarm/arm/bits.S b/lib/neatlibcarm/arm/bits.S new file mode 100644 index 0000000..85b50b6 --- /dev/null +++ b/lib/neatlibcarm/arm/bits.S @@ -0,0 +1,21 @@ + +.global htonl +.global ntohl +ntohl: +htonl: + eor r1, r0, r0, ror #16 + bic r1, r1, #0x00ff0000 + mov r0, r0, ror #8 + eor r0, r0, r1, lsr #8 + mov pc, lr + +.global htons +.global ntohs +ntohs: +htons: + mov r1, r0, lsr #8 + and r0, r0, #255 + and r1, r1, #255 + mov r0, r0, lsl #8 + orr r0, r0, r1 + mov pc, lr diff --git a/lib/neatlibcarm/arm/lmem.S b/lib/neatlibcarm/arm/lmem.S new file mode 100644 index 0000000..10d1913 --- /dev/null +++ b/lib/neatlibcarm/arm/lmem.S @@ -0,0 +1,25 @@ + +.global __memcpylong +__memcpylong: + mov r12, r0 @ Save the base address in r12 +memcpylong_loop: + subs r2, r2, #4 @ Decrement the counter (in bytes) + bmi memcpylong_ret @ If the counter is negative, exit + ldr r3, [r1], #4 @ Load 4 bytes from address in r1 into r3 and increment r1 + str r3, [r0], #4 @ Store 4 bytes from r3 to address in r0 and increment r0 + b memcpylong_loop @ Repeat the loop +memcpylong_ret: + mov r0, r12 @ Restore the original base address + mov pc, lr @ Return from function + +.global __memsetlong +__memsetlong: + mov r12, r0 @ Save the base address in r12 +memsetlong_loop: + subs r2, r2, #4 @ Decrement the counter (in bytes) + bmi memsetlong_ret @ If the counter is negative, exit + str r1, [r0], #4 @ Store 4 bytes of the value in r1 to address in r0 and increment r0 + b memsetlong_loop @ Repeat the loop +memsetlong_ret: + mov r0, r12 @ Restore the original base address + mov pc, lr @ Return from function diff --git a/lib/neatlibcarm/arm/string.S b/lib/neatlibcarm/arm/string.S new file mode 100644 index 0000000..f77819c --- /dev/null +++ b/lib/neatlibcarm/arm/string.S @@ -0,0 +1,166 @@ +.global memcpy +memcpy: + mov r12, r0 +memcpy_loop: + subs r2, r2, #1 + bmi memcpy_ret + ldrb r3, [r1], #1 + strb r3, [r0], #1 + b memcpy_loop +memcpy_ret: + mov r0, r12 + mov pc, lr + +.global memset +memset: + mov r12, r0 +memset_loop: + subs r2, r2, #1 + bmi memset_ret + strb r1, [r0], #1 + b memset_loop +memset_ret: + mov r0, r12 + mov pc, lr + +.global memmove +memmove: + mov r12, r0 + cmp r0, r1 + ble memmove_fw + add r3, r1, r2 + cmp r0, r3 + bgt memmove_fw + + @ copying the memory in reverse order + add r0, r0, r2 + add r1, r1, r2 +memmove_bw: + subs r2, r2, #1 + bmi memmove_ret + ldrb r3, [r1, #-1]! + strb r3, [r0, #-1]! + b memmove_bw +memmove_fw: + subs r2, r2, #1 + bmi memmove_ret + ldrb r3, [r1], #1 + strb r3, [r0], #1 + b memmove_fw +memmove_ret: + mov r0, r12 + mov pc, lr + +.global memchr +memchr: + subs r2, r2, #1 + bmi memchr_failed + ldrb r3, [r0], #1 + cmp r3, r1 + bne memchr + sub r0, r0, #1 + b memchr_ret +memchr_failed: + mov r0, #0 +memchr_ret: + mov pc, lr + +.global memrchr +memrchr: + mov r12, #0 +memrchr_loop: + subs r2, r2, #1 + bmi memrchr_ret + ldrb r3, [r0], #1 + cmp r3, r1 + subeq r12, r0, #1 + b memrchr_loop +memrchr_ret: + mov r0, r12 + mov pc, lr + +.global memcmp +memcmp: + subs r2, r2, #1 + bmi memcmp_match + ldrb r3, [r0], #1 + ldrb r12, [r1], #1 + subs r3, r3, r12 + movne r0, r3 + bne memcmp_ret + b memcmp +memcmp_match: + mov r0, #0 +memcmp_ret: + mov pc, lr + +.global strlen +strlen: + mov r2, r0 +strlen_loop: + ldrb r1, [r0], #1 + tst r1, r1 + bne strlen_loop + sub r0, r0, r2 + sub r0, r0, #1 + mov pc, lr + +.global strchr +strchr: + ldrb r2, [r0], #1 + cmp r1, r2 + subeq r0, r0, #1 + beq strchr_ret + tst r2, r2 + bne strchr + mov r0, #0 +strchr_ret: + mov pc, lr + +.global strrchr +strrchr: + mov r3, #0 +strrchr_loop: + ldrb r2, [r0], #1 + cmp r1, r2 + subeq r3, r0, #1 + tst r2, r2 + bne strrchr_loop +strrchr_ret: + mov r0, r3 + mov pc, lr + +.global strcmp +strcmp: + ldrb r2, [r0], #1 + ldrb r3, [r1], #1 + cmp r2, r3 + beq strcmp + sub r0, r2, r3 + mov pc, lr + +.global strcpy +strcpy: + mov r3, r0 +strcpy_loop: + ldrb r2, [r1], #1 + strb r2, [r0], #1 + tst r2, r2 + bne strcpy_loop + mov r0, r3 + mov pc, lr + +.global strncmp +strncmp: + mov r12, r2 +strncmp_loop: + subs r12, r12, #1 + movmi r0, #0 + bmi strncmp_ret + ldrb r2, [r0], #1 + ldrb r3, [r1], #1 + cmp r2, r3 + beq strncmp_loop + sub r0, r2, r3 +strncmp_ret: + mov pc, lr diff --git a/lib/neatlibcarm/arm/syscall.S b/lib/neatlibcarm/arm/syscall.S new file mode 100644 index 0000000..bd3f79c --- /dev/null +++ b/lib/neatlibcarm/arm/syscall.S @@ -0,0 +1,291 @@ + +__syscall: + stmfd sp!, {r4, r5, r7, lr} + ldr r4, [sp, #16] + ldr r5, [sp, #20] + mov r7, r12 + swi #0 + + cmn r0, #4096 + rsbcs r2, r0, #0 + ldrcs r3, =errno + mvncs r0, #0 + strcs r2, [r3] + ldmfd sp!, {r4, r5, r7, pc} + +.extern errno + +.global _exit +_exit: + mov r12, #1 + b __syscall + +.global fork +fork: + mov r12, #2 + b __syscall + +.global read +read: + mov r12, #3 + b __syscall + +.global write +write: + mov r12, #4 + b __syscall + +.global open +open: + mov r12, #5 + b __syscall + +.global close +close: + mov r12, #6 + b __syscall + +.global waitpid +waitpid: + mov r12, #7 + b __syscall + +.global creat +creat: + mov r12, #8 + b __syscall + +.global link +link: + mov r12, #9 + b __syscall + +.global unlink +unlink: + mov r12, #10 + b __syscall + +.global execve +execve: + mov r12, #11 + b __syscall + +.global chdir +chdir: + mov r12, #12 + b __syscall + +.global time +time: + mov r12, #13 + b __syscall + +.global mknod +mknod: + mov r12, #14 + b __syscall + +.global chmod +chmod: + mov r12, #15 + b __syscall + +.global lseek +lseek: + mov r12, #19 + b __syscall + +.global getpid +getpid: + mov r12, #20 + b __syscall + +.global mount +mount: + mov r12, #21 + b __syscall + +.global umount +umount: + mov r12, #22 + b __syscall + +.global setuid +setuid: + mov r12, #23 + b __syscall + +.global getuid +getuid: + mov r12, #24 + b __syscall + +.global access +access: + mov r12, #33 + b __syscall + +.global sync +sync: + mov r12, #36 + b __syscall + +.global kill +kill: + mov r12, #37 + b __syscall + +.global mkdir +mkdir: + mov r12, #39 + b __syscall + +.global rmdir +rmdir: + mov r12, #40 + b __syscall + +.global dup +dup: + mov r12, #41 + b __syscall + +.global pipe +pipe: + mov r12, #42 + b __syscall + +.global brk +brk: + mov r12, #45 + b __syscall + +.global setgid +setgid: + mov r12, #46 + b __syscall + +.global getgid +getgid: + mov r12, #47 + b __syscall + +.global geteuid +geteuid: + mov r12, #49 + b __syscall + +.global getegid +getegid: + mov r12, #50 + b __syscall + +.global ioctl +ioctl: + mov r12, #54 + b __syscall + +.global fcntl +fcntl: + mov r12, #55 + b __syscall + +.global dup2 +dup2: + mov r12, #63 + b __syscall + +.global getppid +getppid: + mov r12, #64 + b __syscall + +.global setsid +setsid: + mov r12, #66 + b __syscall + +.global sigaction +sigaction: + mov r12, #67 + b __syscall + +.global gettimeofday +gettimeofday: + mov r12, #78 + b __syscall + +.global settimeofday +settimeofday: + mov r12, #79 + b __syscall + +.global mmap +mmap: + mov r12, #192 + b __syscall + +.global munmap +munmap: + mov r12, #91 + b __syscall + +.global stat +stat: + mov r12, #106 + b __syscall + +.global lstat +lstat: + mov r12, #107 + b __syscall + +.global fstat +fstat: + mov r12, #108 + b __syscall + +.global sigreturn +sigreturn: + mov r12, #119 + b __syscall + +.global clone +clone: + mov r12, #120 + b __syscall + +.global uname +uname: + mov r12, #122 + b __syscall + +.global fchdir +fchdir: + mov r12, #133 + b __syscall + +.global getdents +getdents: + mov r12, #141 + b __syscall + +.global nanosleep +nanosleep: + mov r12, #162 + b __syscall + +.global poll +poll: + mov r12, #168 + b __syscall + +.global chown +chown: + mov r12, #182 + b __syscall + +.global getcwd +getcwd: + mov r12, #183 + b __syscall diff --git a/lib/posix/COPYRIGHT b/lib/posix/COPYRIGHT deleted file mode 100644 index dc823b1..0000000 --- a/lib/posix/COPYRIGHT +++ /dev/null @@ -1,52 +0,0 @@ -Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved. -This software is not subject to any license of the American Telephone -and Telegraph Company or of the Regents of the University of California. - -Permission is granted to anyone to use this software for any purpose on -any computer system, and to alter it and redistribute it, subject -to the following restrictions: - -1. The author is not responsible for the consequences of use of this - software, no matter how awful, even if they arise from flaws in it. - -2. The origin of this software must not be misrepresented, either by - explicit claim or by omission. Since few users ever read sources, - credits must appear in the documentation. - -3. Altered versions must be plainly marked as such, and must not be - misrepresented as being the original software. Since few users - ever read sources, credits must appear in the documentation. - -4. This notice may not be removed or altered. - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -/*- - * Copyright (c) 1994 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)COPYRIGHT 8.1 (Berkeley) 3/16/94 - */ diff --git a/lib/posix/Makefile.inc b/lib/posix/Makefile.inc deleted file mode 100644 index 9995805..0000000 --- a/lib/posix/Makefile.inc +++ /dev/null @@ -1,43 +0,0 @@ -if HAVE_POSIX_DIR - -libc_a_SOURCES += \ - %D%/closedir.c %D%/collate.c %D%/collcmp.c %D%/creat.c %D%/dirfd.c \ - %D%/fnmatch.c %D%/glob.c %D%/_isatty.c %D%/isatty.c \ - %D%/opendir.c %D%/readdir.c %D%/readdir_r.c \ - %D%/regcomp.c %D%/regerror.c %D%/regexec.c %D%/regfree.c \ - %D%/rewinddir.c %D%/sleep.c %D%/usleep.c \ - %D%/telldir.c %D%/ftw.c %D%/nftw.c - -%C%_ELIX_2_SOURCES = \ - %D%/scandir.c %D%/seekdir.c - -%C%_ELIX_3_SOURCES = \ - %D%/execl.c %D%/execle.c %D%/execlp.c %D%/execv.c \ - %D%/execve.c %D%/execvp.c %D%/wordexp.c %D%/wordfree.c - -%C%_ELIX_4_SOURCES = \ - %D%/popen.c %D%/posix_spawn.c - -if ELIX_LEVEL_1 -libc_a_SOURCES += -else -if ELIX_LEVEL_2 -libc_a_SOURCES += $(%C%_ELIX_2_SOURCES) -else -if ELIX_LEVEL_3 -libc_a_SOURCES += $(%C%_ELIX_2_SOURCES) $(%C%_ELIX_3_SOURCES) -else -libc_a_SOURCES += $(%C%_ELIX_2_SOURCES) $(%C%_ELIX_3_SOURCES) $(%C%_ELIX_4_SOURCES) -endif -endif -endif - -endif - -libc_a_CPPFLAGS_%C% = -D_GNU_SOURCE - -LIBC_CHEWOUT_FILES += \ - %D%/popen.def \ - %D%/posix_spawn.def - -LIBC_CHAPTERS += %D%/posix.tex diff --git a/lib/posix/_isatty.c b/lib/posix/_isatty.c deleted file mode 100644 index c4dcc1f..0000000 --- a/lib/posix/_isatty.c +++ /dev/null @@ -1,21 +0,0 @@ -/* isatty.c */ - -/* Dumb implementation so programs will at least run. */ - -#include -#include - -int -_isatty (int fd) -{ - struct stat buf; - - if (fstat (fd, &buf) < 0) { - errno = EBADF; - return 0; - } - if (S_ISCHR (buf.st_mode)) - return 1; - errno = ENOTTY; - return 0; -} diff --git a/lib/posix/cclass.h b/lib/posix/cclass.h deleted file mode 100644 index 08343d4..0000000 --- a/lib/posix/cclass.h +++ /dev/null @@ -1,59 +0,0 @@ -/*- - * Copyright (c) 1992, 1993, 1994 Henry Spencer. - * Copyright (c) 1992, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Henry Spencer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)cclass.h 8.3 (Berkeley) 3/20/94 - * $FreeBSD: src/lib/libc/regex/cclass.h,v 1.4 2002/03/22 23:41:56 obrien Exp $ - */ - - -typedef enum {CALNUM, CALPHA, CBLANK, CCNTRL, CDIGIT, CGRAPH, - CLOWER, CPRINT, CPUNCT, CSPACE, CUPPER, CXDIGIT} citype; - -/* character-class table */ -static struct cclass { - char *name; - citype fidx; -} cclasses[] = { - {"alnum", CALNUM}, - {"alpha", CALPHA}, - {"blank", CBLANK}, - {"cntrl", CCNTRL}, - {"digit", CDIGIT}, - {"graph", CGRAPH}, - {"lower", CLOWER}, - {"print", CPRINT}, - {"punct", CPUNCT}, - {"space", CSPACE}, - {"upper", CUPPER}, - {"xdigit", CXDIGIT}, - {NULL, } -}; diff --git a/lib/posix/closedir.c b/lib/posix/closedir.c deleted file mode 100644 index c19e21f..0000000 --- a/lib/posix/closedir.c +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef HAVE_OPENDIR - -/* - * Copyright (c) 1983 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)closedir.c 5.9 (Berkeley) 2/23/91"; -#endif /* LIBC_SCCS and not lint */ - -#include -#include -#include -#include -#include - -extern void _cleanupdir (DIR *dirp); - -/* - * close a directory. - */ -int -closedir (register DIR *dirp) -{ - int rc; - -#ifdef HAVE_DD_LOCK - __lock_acquire_recursive(dirp->dd_lock); -#endif - rc = close(dirp->dd_fd); - _cleanupdir(dirp); - free((void *)dirp->dd_buf); -#ifdef HAVE_DD_LOCK - __lock_release_recursive(dirp->dd_lock); - __lock_close_recursive(dirp->dd_lock); -#endif - free((void *)dirp); - return rc; -} - -#endif /* ! HAVE_OPENDIR */ diff --git a/lib/posix/cname.h b/lib/posix/cname.h deleted file mode 100644 index efb177c..0000000 --- a/lib/posix/cname.h +++ /dev/null @@ -1,138 +0,0 @@ -/*- - * Copyright (c) 1992, 1993, 1994 Henry Spencer. - * Copyright (c) 1992, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Henry Spencer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)cname.h 8.3 (Berkeley) 3/20/94 - * $FreeBSD: src/lib/libc/regex/cname.h,v 1.3 2002/03/22 23:41:56 obrien Exp $ - */ - -/* character-name table */ -static struct cname { - char *name; - char code; -} cnames[] = { - {"NUL", '\0'}, - {"SOH", '\001'}, - {"STX", '\002'}, - {"ETX", '\003'}, - {"EOT", '\004'}, - {"ENQ", '\005'}, - {"ACK", '\006'}, - {"BEL", '\007'}, - {"alert", '\007'}, - {"BS", '\010'}, - {"backspace", '\b'}, - {"HT", '\011'}, - {"tab", '\t'}, - {"LF", '\012'}, - {"newline", '\n'}, - {"VT", '\013'}, - {"vertical-tab", '\v'}, - {"FF", '\014'}, - {"form-feed", '\f'}, - {"CR", '\015'}, - {"carriage-return", '\r'}, - {"SO", '\016'}, - {"SI", '\017'}, - {"DLE", '\020'}, - {"DC1", '\021'}, - {"DC2", '\022'}, - {"DC3", '\023'}, - {"DC4", '\024'}, - {"NAK", '\025'}, - {"SYN", '\026'}, - {"ETB", '\027'}, - {"CAN", '\030'}, - {"EM", '\031'}, - {"SUB", '\032'}, - {"ESC", '\033'}, - {"IS4", '\034'}, - {"FS", '\034'}, - {"IS3", '\035'}, - {"GS", '\035'}, - {"IS2", '\036'}, - {"RS", '\036'}, - {"IS1", '\037'}, - {"US", '\037'}, - {"space", ' '}, - {"exclamation-mark", '!'}, - {"quotation-mark", '"'}, - {"number-sign", '#'}, - {"dollar-sign", '$'}, - {"percent-sign", '%'}, - {"ampersand", '&'}, - {"apostrophe", '\''}, - {"left-parenthesis", '('}, - {"right-parenthesis", ')'}, - {"asterisk", '*'}, - {"plus-sign", '+'}, - {"comma", ','}, - {"hyphen", '-'}, - {"hyphen-minus", '-'}, - {"period", '.'}, - {"full-stop", '.'}, - {"slash", '/'}, - {"solidus", '/'}, - {"zero", '0'}, - {"one", '1'}, - {"two", '2'}, - {"three", '3'}, - {"four", '4'}, - {"five", '5'}, - {"six", '6'}, - {"seven", '7'}, - {"eight", '8'}, - {"nine", '9'}, - {"colon", ':'}, - {"semicolon", ';'}, - {"less-than-sign", '<'}, - {"equals-sign", '='}, - {"greater-than-sign", '>'}, - {"question-mark", '?'}, - {"commercial-at", '@'}, - {"left-square-bracket", '['}, - {"backslash", '\\'}, - {"reverse-solidus", '\\'}, - {"right-square-bracket",']'}, - {"circumflex", '^'}, - {"circumflex-accent", '^'}, - {"underscore", '_'}, - {"low-line", '_'}, - {"grave-accent", '`'}, - {"left-brace", '{'}, - {"left-curly-bracket", '{'}, - {"vertical-line", '|'}, - {"right-brace", '}'}, - {"right-curly-bracket", '}'}, - {"tilde", '~'}, - {"DEL", '\177'}, - {NULL, 0} -}; diff --git a/lib/posix/collate.c b/lib/posix/collate.c deleted file mode 100644 index a2f62c9..0000000 --- a/lib/posix/collate.c +++ /dev/null @@ -1,215 +0,0 @@ -/*- - * Copyright (c) 1995 Alex Tatmanjants - * at Electronni Visti IA, Kiev, Ukraine. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "namespace.h" -#include "rune.h" -#include -#include -#include -#include -#include -#include "sysexits.h" -#include "un-namespace.h" - -#include "collate.h" - -extern char *_PathLocale; -int __collate_load_error = 1; -int __collate_substitute_nontrivial; -char __collate_version[STR_LEN]; -u_char __collate_substitute_table[UCHAR_MAX + 1][STR_LEN]; -struct __collate_st_char_pri __collate_char_pri_table[UCHAR_MAX + 1]; -struct __collate_st_chain_pri __collate_chain_pri_table[TABLE_SIZE]; - -#define FREAD(a, b, c, d) \ - do { \ - if (fread(a, b, c, d) != c) { \ - fclose(d); \ - return -1; \ - } \ - } while(0) - -void __collate_err(int ex, const char *f); - -int -__collate_load_tables(encoding) - char *encoding; -{ - char buf[PATH_MAX]; - FILE *fp; - int i, save_load_error; - - save_load_error = __collate_load_error; - __collate_load_error = 1; - if (!encoding) { - __collate_load_error = save_load_error; - return -1; - } - if (!strcmp(encoding, "C") || !strcmp(encoding, "POSIX")) - return 0; - if (!_PathLocale) { - __collate_load_error = save_load_error; - return -1; - } - /* Range checking not needed, encoding has fixed size */ - (void) strcpy(buf, _PathLocale); - (void) strcat(buf, "/"); - (void) strcat(buf, encoding); - (void) strcat(buf, "/LC_COLLATE"); - if ((fp = fopen(buf, "r")) == NULL) { - __collate_load_error = save_load_error; - return -1; - } - FREAD(__collate_version, sizeof(__collate_version), 1, fp); - if (strcmp(__collate_version, COLLATE_VERSION) != 0) { - fclose(fp); - return -1; - } - FREAD(__collate_substitute_table, sizeof(__collate_substitute_table), - 1, fp); - FREAD(__collate_char_pri_table, sizeof(__collate_char_pri_table), 1, - fp); - FREAD(__collate_chain_pri_table, sizeof(__collate_chain_pri_table), 1, - fp); - fclose(fp); - __collate_load_error = 0; - - __collate_substitute_nontrivial = 0; - for (i = 0; i < UCHAR_MAX + 1; i++) { - if (__collate_substitute_table[i][0] != i || - __collate_substitute_table[i][1] != 0) { - __collate_substitute_nontrivial = 1; - break; - } - } - - return 0; -} - -u_char * -__collate_substitute(s) - const u_char *s; -{ - int dest_len, len, nlen; - int delta = strlen((const char *) s); - u_char *dest_str = NULL; - - if(s == NULL || *s == '\0') - return __collate_strdup((u_char *) ""); - delta += delta / 8; - dest_str = (u_char *) malloc(dest_len = delta); - if(dest_str == NULL) - __collate_err(EX_OSERR, __FUNCTION__); - len = 0; - while(*s) { - nlen = len + strlen((const char *) - __collate_substitute_table[*s]); - if (dest_len <= nlen) { - dest_str = reallocf(dest_str, dest_len = nlen + delta); - if(dest_str == NULL) - __collate_err(EX_OSERR, __FUNCTION__); - } - strcpy((char *) dest_str + len, - (const char *) __collate_substitute_table[*s++]); - len = nlen; - } - return dest_str; -} - -void -__collate_lookup(t, len, prim, sec) - const u_char *t; - int *len, *prim, *sec; -{ - struct __collate_st_chain_pri *p2; - - *len = 1; - *prim = *sec = 0; - for(p2 = __collate_chain_pri_table; p2->str[0]; p2++) { - if(strncmp((const char *) t, (const char *) p2->str, - strlen((const char *) p2->str)) == 0) { - *len = strlen((const char *) p2->str); - *prim = p2->prim; - *sec = p2->sec; - return; - } - } - *prim = __collate_char_pri_table[*t].prim; - *sec = __collate_char_pri_table[*t].sec; -} - -u_char * -__collate_strdup(s) - u_char *s; -{ - u_char *t = (u_char *) strdup((const char *) s); - - if (t == NULL) - __collate_err(EX_OSERR, __FUNCTION__); - return t; -} - -void -__collate_err(int ex, const char *f) -{ - const char *s; - int serrno = errno; - int dummy; - - /* Be careful to change write counts if you change the strings */ - write(STDERR_FILENO, "collate_error: ", 15); - write(STDERR_FILENO, f, strlen(f)); - write(STDERR_FILENO, ": ", 2); - s = _strerror_r(_REENT, serrno, 1, &dummy); - write(STDERR_FILENO, s, strlen(s)); - write(STDERR_FILENO, "\n", 1); - exit(ex); -} - -#ifdef COLLATE_DEBUG -void -__collate_print_tables() -{ - int i; - struct __collate_st_chain_pri *p2; - - printf("Substitute table:\n"); - for (i = 0; i < UCHAR_MAX + 1; i++) - if (i != *__collate_substitute_table[i]) - printf("\t'%c' --> \"%s\"\n", i, - __collate_substitute_table[i]); - printf("Chain priority table:\n"); - for (p2 = __collate_chain_pri_table; p2->str[0]; p2++) - printf("\t\"%s\" : %d %d\n\n", p2->str, p2->prim, p2->sec); - printf("Char priority table:\n"); - for (i = 0; i < UCHAR_MAX + 1; i++) - printf("\t'%c' : %d %d\n", i, __collate_char_pri_table[i].prim, - __collate_char_pri_table[i].sec); -} -#endif diff --git a/lib/posix/collate.h b/lib/posix/collate.h deleted file mode 100644 index 2e04518..0000000 --- a/lib/posix/collate.h +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * Copyright (c) 1995 Alex Tatmanjants - * at Electronni Visti IA, Kiev, Ukraine. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: src/lib/libc/locale/collate.h,v 1.11 2002/03/21 22:46:54 obrien Exp $ - */ - -#ifndef _COLLATE_H_ -#define _COLLATE_H_ - -#include -#include -#include - -#define STR_LEN 10 -#define TABLE_SIZE 100 -#define COLLATE_VERSION "1.0\n" - -struct __collate_st_char_pri { - int prim, sec; -}; -struct __collate_st_chain_pri { - u_char str[STR_LEN]; - int prim, sec; -}; - -extern int __collate_load_error; -extern int __collate_substitute_nontrivial; -extern char __collate_version[STR_LEN]; -extern u_char __collate_substitute_table[UCHAR_MAX + 1][STR_LEN]; -extern struct __collate_st_char_pri __collate_char_pri_table[UCHAR_MAX + 1]; -extern struct __collate_st_chain_pri __collate_chain_pri_table[TABLE_SIZE]; - -__BEGIN_DECLS -u_char *__collate_strdup(u_char *); -u_char *__collate_substitute(const u_char *); -int __collate_load_tables(char *); -void __collate_lookup(const u_char *, int *, int *, int *); -int __collate_range_cmp(int, int); -#ifdef COLLATE_DEBUG -void __collate_print_tables(void); -#endif -__END_DECLS - -#endif /* !_COLLATE_H_ */ diff --git a/lib/posix/collcmp.c b/lib/posix/collcmp.c deleted file mode 100644 index 7770897..0000000 --- a/lib/posix/collcmp.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 1996 by Andrey A. Chernov, Moscow, Russia. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#define ASCII_COMPATIBLE_COLLATE /* see share/colldef */ - -#include -#include "collate.h" -#ifndef ASCII_COMPATIBLE_COLLATE -#include -#endif - -/* - * Compare two characters converting collate information - * into ASCII-compatible range, it allows to handle - * "[a-z]"-type ranges with national characters. - */ - -int __collate_range_cmp (c1, c2) - int c1, c2; -{ - static char s1[2], s2[2]; - int ret; -#ifndef ASCII_COMPATIBLE_COLLATE - int as1, as2, al1, al2; -#endif - - c1 &= UCHAR_MAX; - c2 &= UCHAR_MAX; - if (c1 == c2) - return (0); - -#ifndef ASCII_COMPATIBLE_COLLATE - as1 = isascii(c1); - as2 = isascii(c2); - al1 = isalpha(c1); - al2 = isalpha(c2); - - if (as1 || as2 || al1 || al2) { - if ((as1 && as2) || (!al1 && !al2)) - return (c1 - c2); - if (al1 && !al2) { - if (isupper(c1)) - return ('A' - c2); - else - return ('a' - c2); - } else if (al2 && !al1) { - if (isupper(c2)) - return (c1 - 'A'); - else - return (c1 - 'a'); - } - } -#endif - s1[0] = c1; - s2[0] = c2; - if ((ret = strcoll(s1, s2)) != 0) - return (ret); - return (c1 - c2); -} diff --git a/lib/posix/creat.c b/lib/posix/creat.c deleted file mode 100644 index fab8073..0000000 --- a/lib/posix/creat.c +++ /dev/null @@ -1,12 +0,0 @@ -/* creat() "system call" */ - -/* This is needed by f2c and therefore the SPEC benchmarks. */ - -#include - -int -creat (const char *path, - mode_t mode) -{ - return open (path, O_WRONLY | O_CREAT | O_TRUNC, mode); -} diff --git a/lib/posix/dirfd.c b/lib/posix/dirfd.c deleted file mode 100644 index 439dfa2..0000000 --- a/lib/posix/dirfd.c +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef HAVE_OPENDIR - -/*- - * Copyright (c) 2018 embedded brains GmbH - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -int -dirfd(DIR *dirp) -{ - - return (__dirfd(dirp)); -} - -#endif /* ! HAVE_OPENDIR */ diff --git a/lib/posix/engine.c b/lib/posix/engine.c deleted file mode 100644 index c80834a..0000000 --- a/lib/posix/engine.c +++ /dev/null @@ -1,1141 +0,0 @@ -/*- - * Copyright (c) 1992, 1993, 1994 Henry Spencer. - * Copyright (c) 1992, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Henry Spencer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)engine.c 8.5 (Berkeley) 3/20/94 - */ - -#include -#include <_ansi.h> - -/* - * The matching engine and friends. This file is #included by regexec.c - * after suitable #defines of a variety of macros used herein, so that - * different state representations can be used without duplicating masses - * of code. - */ - -#ifdef SNAMES -#define matcher smatcher -#define fast sfast -#define slow sslow -#define dissect sdissect -#define backref sbackref -#define step sstep -#define print sprint -#define at sat -#define match smat -#endif -#ifdef LNAMES -#define matcher lmatcher -#define fast lfast -#define slow lslow -#define dissect ldissect -#define backref lbackref -#define step lstep -#define print lprint -#define at lat -#define match lmat -#endif - -/* another structure passed up and down to avoid zillions of parameters */ -struct match { - struct re_guts *g; - int eflags; - regmatch_t *pmatch; /* [nsub+1] (0 element unused) */ - char *offp; /* offsets work from here */ - char *beginp; /* start of string -- virtual NUL precedes */ - char *endp; /* end of string -- virtual NUL here */ - char *coldp; /* can be no match starting before here */ - char **lastpos; /* [nplus+1] */ - STATEVARS; - states st; /* current states */ - states fresh; /* states for a fresh start */ - states tmp; /* temporary */ - states empty; /* empty set of states */ -}; - -/* ========= begin header generated by ./mkh ========= */ -#ifdef __cplusplus -extern "C" { -#endif - -/* === engine.c === */ -static int matcher(struct re_guts *g, char *string, size_t nmatch, regmatch_t pmatch[], int eflags); -static char *dissect(struct match *m, char *start, char *stop, sopno startst, sopno stopst); -static char *backref(struct match *m, char *start, char *stop, sopno startst, sopno stopst, sopno lev); -static char *fast(struct match *m, char *start, char *stop, sopno startst, sopno stopst); -static char *slow(struct match *m, char *start, char *stop, sopno startst, sopno stopst); -static states step(struct re_guts *g, sopno start, sopno stop, states bef, int ch, states aft); -#define BOL (OUT+1) -#define EOL (BOL+1) -#define BOLEOL (BOL+2) -#define NOTHING (BOL+3) -#define BOW (BOL+4) -#define EOW (BOL+5) -#define CODEMAX (BOL+5) /* highest code used */ -#define NONCHAR(c) ((c) > CHAR_MAX) -#define NNONCHAR (CODEMAX-CHAR_MAX) -#ifdef REDEBUG -static void print(struct match *m, char *caption, states st, int ch, FILE *d); -#endif -#ifdef REDEBUG -static void at(struct match *m, char *title, char *start, char *stop, sopno startst, sopno stopst); -#endif -#ifdef REDEBUG -static char *pchar(int ch); -#endif - -#ifdef __cplusplus -} -#endif -/* ========= end header generated by ./mkh ========= */ - -#ifdef REDEBUG -#define SP(t, s, c) print(m, t, s, c, stdout) -#define AT(t, p1, p2, s1, s2) at(m, t, p1, p2, s1, s2) -#define NOTE(str) { if (m->eflags®_TRACE) printf("=%s\n", (str)); } -#else -#define SP(t, s, c) /* nothing */ -#define AT(t, p1, p2, s1, s2) /* nothing */ -#define NOTE(s) /* nothing */ -#endif - -/* - - matcher - the actual matching engine - == static int matcher(struct re_guts *g, char *string, \ - == size_t nmatch, regmatch_t pmatch[], int eflags); - */ -static int /* 0 success, REG_NOMATCH failure */ -matcher(g, string, nmatch, pmatch, eflags) -struct re_guts *g; -char *string; -size_t nmatch; -regmatch_t pmatch[]; -int eflags; -{ - char *endp; - int i; - struct match mv; - struct match *m = &mv; - char *dp = NULL; - const sopno gf = g->firststate+1; /* +1 for OEND */ - const sopno gl = g->laststate; - char *start; - char *stop; - /* Boyer-Moore algorithms variables */ - char *pp; - int cj, mj; - char *mustfirst; - char *mustlast; - int *matchjump; - int *charjump; - - /* simplify the situation where possible */ - if (g->cflags®_NOSUB) - nmatch = 0; - if (eflags®_STARTEND) { - start = string + pmatch[0].rm_so; - stop = string + pmatch[0].rm_eo; - } else { - start = string; - stop = start + strlen(start); - } - if (stop < start) - return(REG_INVARG); - - /* prescreening; this does wonders for this rather slow code */ - if (g->must != NULL) { - if (g->charjump != NULL && g->matchjump != NULL) { - mustfirst = g->must; - mustlast = g->must + g->mlen - 1; - charjump = g->charjump; - matchjump = g->matchjump; - pp = mustlast; - for (dp = start+g->mlen-1; dp < stop;) { - /* Fast skip non-matches */ - while (dp < stop && charjump[(unsigned char) *dp]) - dp += charjump[(unsigned char) *dp]; - - if (dp >= stop) - break; - - /* Greedy matcher */ - /* We depend on not being used for - * for strings of length 1 - */ - while (*--dp == *--pp && pp != mustfirst); - - if (*dp == *pp) - break; - - /* Jump to next possible match */ - mj = matchjump[pp - mustfirst]; - cj = charjump[(unsigned char) *dp]; - dp += (cj < mj ? mj : cj); - pp = mustlast; - } - if (pp != mustfirst) - return(REG_NOMATCH); - } else { - for (dp = start; dp < stop; dp++) - if (*dp == g->must[0] && - stop - dp >= g->mlen && - memcmp(dp, g->must, (size_t)g->mlen) == 0) - break; - if (dp == stop) /* we didn't find g->must */ - return(REG_NOMATCH); - } - } - - /* match struct setup */ - m->g = g; - m->eflags = eflags; - m->pmatch = NULL; - m->lastpos = NULL; - m->offp = string; - m->beginp = start; - m->endp = stop; - STATESETUP(m, 4); - SETUP(m->st); - SETUP(m->fresh); - SETUP(m->tmp); - SETUP(m->empty); - CLEAR(m->empty); - - /* Adjust start according to moffset, to speed things up */ - if (g->moffset > -1) - start = ((dp - g->moffset) < start) ? start : dp - g->moffset; - - /* this loop does only one repetition except for backrefs */ - for (;;) { - endp = fast(m, start, stop, gf, gl); - if (endp == NULL) { /* a miss */ - STATETEARDOWN(m); - return(REG_NOMATCH); - } - if (nmatch == 0 && !g->backrefs) - break; /* no further info needed */ - - /* where? */ - assert(m->coldp != NULL); - for (;;) { - NOTE("finding start"); - endp = slow(m, m->coldp, stop, gf, gl); - if (endp != NULL) - break; - assert(m->coldp < m->endp); - m->coldp++; - } - if (nmatch == 1 && !g->backrefs) - break; /* no further info needed */ - - /* oh my, he wants the subexpressions... */ - if (m->pmatch == NULL) - m->pmatch = (regmatch_t *)malloc((m->g->nsub + 1) * - sizeof(regmatch_t)); - if (m->pmatch == NULL) { - STATETEARDOWN(m); - return(REG_ESPACE); - } - for (i = 1; i <= m->g->nsub; i++) - m->pmatch[i].rm_so = m->pmatch[i].rm_eo = -1; - if (!g->backrefs && !(m->eflags®_BACKR)) { - NOTE("dissecting"); - dp = dissect(m, m->coldp, endp, gf, gl); - } else { - if (g->nplus > 0 && m->lastpos == NULL) - m->lastpos = (char **)malloc((g->nplus+1) * - sizeof(char *)); - if (g->nplus > 0 && m->lastpos == NULL) { - free(m->pmatch); - STATETEARDOWN(m); - return(REG_ESPACE); - } - NOTE("backref dissect"); - dp = backref(m, m->coldp, endp, gf, gl, (sopno)0); - } - if (dp != NULL) - break; - - /* uh-oh... we couldn't find a subexpression-level match */ - assert(g->backrefs); /* must be back references doing it */ - assert(g->nplus == 0 || m->lastpos != NULL); - for (;;) { - if (dp != NULL || endp <= m->coldp) - break; /* defeat */ - NOTE("backoff"); - endp = slow(m, m->coldp, endp-1, gf, gl); - if (endp == NULL) - break; /* defeat */ - /* try it on a shorter possibility */ -#ifndef NDEBUG - for (i = 1; i <= m->g->nsub; i++) { - assert(m->pmatch[i].rm_so == -1); - assert(m->pmatch[i].rm_eo == -1); - } -#endif - NOTE("backoff dissect"); - dp = backref(m, m->coldp, endp, gf, gl, (sopno)0); - } - assert(dp == NULL || dp == endp); - if (dp != NULL) /* found a shorter one */ - break; - - /* despite initial appearances, there is no match here */ - NOTE("false alarm"); - start = m->coldp + 1; /* recycle starting later */ - assert(start <= stop); - } - - /* fill in the details if requested */ - if (nmatch > 0) { - pmatch[0].rm_so = m->coldp - m->offp; - pmatch[0].rm_eo = endp - m->offp; - } - if (nmatch > 1) { - assert(m->pmatch != NULL); - for (i = 1; i < nmatch; i++) - if (i <= m->g->nsub) - pmatch[i] = m->pmatch[i]; - else { - pmatch[i].rm_so = -1; - pmatch[i].rm_eo = -1; - } - } - - if (m->pmatch != NULL) - free((char *)m->pmatch); - if (m->lastpos != NULL) - free((char *)m->lastpos); - STATETEARDOWN(m); - return(0); -} - -/* - - dissect - figure out what matched what, no back references - == static char *dissect(struct match *m, char *start, \ - == char *stop, sopno startst, sopno stopst); - */ -static char * /* == stop (success) always */ -dissect(m, start, stop, startst, stopst) -struct match *m; -char *start; -char *stop; -sopno startst; -sopno stopst; -{ - int i; - sopno ss; /* start sop of current subRE */ - sopno es; /* end sop of current subRE */ - char *sp; /* start of string matched by it */ - char *stp; /* string matched by it cannot pass here */ - char *rest; /* start of rest of string */ - char *tail; /* string unmatched by rest of RE */ - sopno ssub; /* start sop of subsubRE */ - sopno esub; /* end sop of subsubRE */ - char *ssp; /* start of string matched by subsubRE */ - char *sep; /* end of string matched by subsubRE */ - char *oldssp; /* previous ssp */ -#if __GNUC_PREREQ (4, 6) -/* dp is only used for assertion testing which, for some reason, is not - recognized as usage. */ -#pragma GCC diagnostic ignored "-Wunused-but-set-variable" -#endif - char *dp; - - AT("diss", start, stop, startst, stopst); - sp = start; - for (ss = startst; ss < stopst; ss = es) { - /* identify end of subRE */ - es = ss; - switch (OP(m->g->strip[es])) { - case OPLUS_: - case OQUEST_: - es += OPND(m->g->strip[es]); - break; - case OCH_: - while (OP(m->g->strip[es]) != O_CH) - es += OPND(m->g->strip[es]); - break; - } - es++; - - /* figure out what it matched */ - switch (OP(m->g->strip[ss])) { - case OEND: - assert(nope); - break; - case OCHAR: - sp++; - break; - case OBOL: - case OEOL: - case OBOW: - case OEOW: - break; - case OANY: - case OANYOF: - sp++; - break; - case OBACK_: - case O_BACK: - assert(nope); - break; - /* cases where length of match is hard to find */ - case OQUEST_: - stp = stop; - for (;;) { - /* how long could this one be? */ - rest = slow(m, sp, stp, ss, es); - assert(rest != NULL); /* it did match */ - /* could the rest match the rest? */ - tail = slow(m, rest, stop, es, stopst); - if (tail == stop) - break; /* yes! */ - /* no -- try a shorter match for this one */ - stp = rest - 1; - assert(stp >= sp); /* it did work */ - } - ssub = ss + 1; - esub = es - 1; - /* did innards match? */ - if (slow(m, sp, rest, ssub, esub) != NULL) { - dp = dissect(m, sp, rest, ssub, esub); - assert(dp == rest); - } else /* no */ - assert(sp == rest); - sp = rest; - break; - case OPLUS_: - stp = stop; - for (;;) { - /* how long could this one be? */ - rest = slow(m, sp, stp, ss, es); - assert(rest != NULL); /* it did match */ - /* could the rest match the rest? */ - tail = slow(m, rest, stop, es, stopst); - if (tail == stop) - break; /* yes! */ - /* no -- try a shorter match for this one */ - stp = rest - 1; - assert(stp >= sp); /* it did work */ - } - ssub = ss + 1; - esub = es - 1; - ssp = sp; - oldssp = ssp; - for (;;) { /* find last match of innards */ - sep = slow(m, ssp, rest, ssub, esub); - if (sep == NULL || sep == ssp) - break; /* failed or matched null */ - oldssp = ssp; /* on to next try */ - ssp = sep; - } - if (sep == NULL) { - /* last successful match */ - sep = ssp; - ssp = oldssp; - } - assert(sep == rest); /* must exhaust substring */ - assert(slow(m, ssp, sep, ssub, esub) == rest); - dp = dissect(m, ssp, sep, ssub, esub); - assert(dp == sep); - sp = rest; - break; - case OCH_: - stp = stop; - for (;;) { - /* how long could this one be? */ - rest = slow(m, sp, stp, ss, es); - assert(rest != NULL); /* it did match */ - /* could the rest match the rest? */ - tail = slow(m, rest, stop, es, stopst); - if (tail == stop) - break; /* yes! */ - /* no -- try a shorter match for this one */ - stp = rest - 1; - assert(stp >= sp); /* it did work */ - } - ssub = ss + 1; - esub = ss + OPND(m->g->strip[ss]) - 1; - assert(OP(m->g->strip[esub]) == OOR1); - for (;;) { /* find first matching branch */ - if (slow(m, sp, rest, ssub, esub) == rest) - break; /* it matched all of it */ - /* that one missed, try next one */ - assert(OP(m->g->strip[esub]) == OOR1); - esub++; - assert(OP(m->g->strip[esub]) == OOR2); - ssub = esub + 1; - esub += OPND(m->g->strip[esub]); - if (OP(m->g->strip[esub]) == OOR2) - esub--; - else - assert(OP(m->g->strip[esub]) == O_CH); - } - dp = dissect(m, sp, rest, ssub, esub); - assert(dp == rest); - sp = rest; - break; - case O_PLUS: - case O_QUEST: - case OOR1: - case OOR2: - case O_CH: - assert(nope); - break; - case OLPAREN: - i = OPND(m->g->strip[ss]); - assert(0 < i && i <= m->g->nsub); - m->pmatch[i].rm_so = sp - m->offp; - break; - case ORPAREN: - i = OPND(m->g->strip[ss]); - assert(0 < i && i <= m->g->nsub); - m->pmatch[i].rm_eo = sp - m->offp; - break; - default: /* uh oh */ - assert(nope); - break; - } - } - - assert(sp == stop); - return(sp); -} - -/* - - backref - figure out what matched what, figuring in back references - == static char *backref(struct match *m, char *start, \ - == char *stop, sopno startst, sopno stopst, sopno lev); - */ -static char * /* == stop (success) or NULL (failure) */ -backref(m, start, stop, startst, stopst, lev) -struct match *m; -char *start; -char *stop; -sopno startst; -sopno stopst; -sopno lev; /* PLUS nesting level */ -{ - int i; - sopno ss; /* start sop of current subRE */ - char *sp; /* start of string matched by it */ - sopno ssub; /* start sop of subsubRE */ - sopno esub; /* end sop of subsubRE */ - char *ssp; /* start of string matched by subsubRE */ - char *dp; - size_t len; - int hard; - sop s; - regoff_t offsave; - cset *cs; - - AT("back", start, stop, startst, stopst); - sp = start; - - /* get as far as we can with easy stuff */ - hard = 0; - for (ss = startst; !hard && ss < stopst; ss++) - switch (OP(s = m->g->strip[ss])) { - case OCHAR: - if (sp == stop || *sp++ != (char)OPND(s)) - return(NULL); - break; - case OANY: - if (sp == stop) - return(NULL); - sp++; - break; - case OANYOF: - cs = &m->g->sets[OPND(s)]; - if (sp == stop || !CHIN(cs, *sp++)) - return(NULL); - break; - case OBOL: - if ( (sp == m->beginp && !(m->eflags®_NOTBOL)) || - (sp < m->endp && *(sp-1) == '\n' && - (m->g->cflags®_NEWLINE)) ) - { /* yes */ } - else - return(NULL); - break; - case OEOL: - if ( (sp == m->endp && !(m->eflags®_NOTEOL)) || - (sp < m->endp && *sp == '\n' && - (m->g->cflags®_NEWLINE)) ) - { /* yes */ } - else - return(NULL); - break; - case OBOW: - if (( (sp == m->beginp && !(m->eflags®_NOTBOL)) || - (sp < m->endp && *(sp-1) == '\n' && - (m->g->cflags®_NEWLINE)) || - (sp > m->beginp && - !ISWORD(*(sp-1))) ) && - (sp < m->endp && ISWORD(*sp)) ) - { /* yes */ } - else - return(NULL); - break; - case OEOW: - if (( (sp == m->endp && !(m->eflags®_NOTEOL)) || - (sp < m->endp && *sp == '\n' && - (m->g->cflags®_NEWLINE)) || - (sp < m->endp && !ISWORD(*sp)) ) && - (sp > m->beginp && ISWORD(*(sp-1))) ) - { /* yes */ } - else - return(NULL); - break; - case O_QUEST: - break; - case OOR1: /* matches null but needs to skip */ - ss++; - s = m->g->strip[ss]; - do { - assert(OP(s) == OOR2); - ss += OPND(s); - } while (OP(s = m->g->strip[ss]) != O_CH); - /* note that the ss++ gets us past the O_CH */ - break; - default: /* have to make a choice */ - hard = 1; - break; - } - if (!hard) { /* that was it! */ - if (sp != stop) - return(NULL); - return(sp); - } - ss--; /* adjust for the for's final increment */ - - /* the hard stuff */ - AT("hard", sp, stop, ss, stopst); - s = m->g->strip[ss]; - switch (OP(s)) { - case OBACK_: /* the vilest depths */ - i = OPND(s); - assert(0 < i && i <= m->g->nsub); - if (m->pmatch[i].rm_eo == -1) - return(NULL); - assert(m->pmatch[i].rm_so != -1); - len = m->pmatch[i].rm_eo - m->pmatch[i].rm_so; - assert(stop - m->beginp >= len); - if (sp > stop - len) - return(NULL); /* not enough left to match */ - ssp = m->offp + m->pmatch[i].rm_so; - if (memcmp(sp, ssp, len) != 0) - return(NULL); - while (m->g->strip[ss] != SOP(O_BACK, i)) - ss++; - return(backref(m, sp+len, stop, ss+1, stopst, lev)); - break; - case OQUEST_: /* to null or not */ - dp = backref(m, sp, stop, ss+1, stopst, lev); - if (dp != NULL) - return(dp); /* not */ - return(backref(m, sp, stop, ss+OPND(s)+1, stopst, lev)); - break; - case OPLUS_: - assert(m->lastpos != NULL); - assert(lev+1 <= m->g->nplus); - m->lastpos[lev+1] = sp; - return(backref(m, sp, stop, ss+1, stopst, lev+1)); - break; - case O_PLUS: - if (sp == m->lastpos[lev]) /* last pass matched null */ - return(backref(m, sp, stop, ss+1, stopst, lev-1)); - /* try another pass */ - m->lastpos[lev] = sp; - dp = backref(m, sp, stop, ss-OPND(s)+1, stopst, lev); - if (dp == NULL) - return(backref(m, sp, stop, ss+1, stopst, lev-1)); - else - return(dp); - break; - case OCH_: /* find the right one, if any */ - ssub = ss + 1; - esub = ss + OPND(s) - 1; - assert(OP(m->g->strip[esub]) == OOR1); - for (;;) { /* find first matching branch */ - dp = backref(m, sp, stop, ssub, esub, lev); - if (dp != NULL) - return(dp); - /* that one missed, try next one */ - if (OP(m->g->strip[esub]) == O_CH) - return(NULL); /* there is none */ - esub++; - assert(OP(m->g->strip[esub]) == OOR2); - ssub = esub + 1; - esub += OPND(m->g->strip[esub]); - if (OP(m->g->strip[esub]) == OOR2) - esub--; - else - assert(OP(m->g->strip[esub]) == O_CH); - } - break; - case OLPAREN: /* must undo assignment if rest fails */ - i = OPND(s); - assert(0 < i && i <= m->g->nsub); - offsave = m->pmatch[i].rm_so; - m->pmatch[i].rm_so = sp - m->offp; - dp = backref(m, sp, stop, ss+1, stopst, lev); - if (dp != NULL) - return(dp); - m->pmatch[i].rm_so = offsave; - return(NULL); - break; - case ORPAREN: /* must undo assignment if rest fails */ - i = OPND(s); - assert(0 < i && i <= m->g->nsub); - offsave = m->pmatch[i].rm_eo; - m->pmatch[i].rm_eo = sp - m->offp; - dp = backref(m, sp, stop, ss+1, stopst, lev); - if (dp != NULL) - return(dp); - m->pmatch[i].rm_eo = offsave; - return(NULL); - break; - default: /* uh oh */ - assert(nope); - break; - } - - /* "can't happen" */ - assert(nope); - /* NOTREACHED */ - return "shut up gcc"; -} - -/* - - fast - step through the string at top speed - == static char *fast(struct match *m, char *start, \ - == char *stop, sopno startst, sopno stopst); - */ -static char * /* where tentative match ended, or NULL */ -fast(m, start, stop, startst, stopst) -struct match *m; -char *start; -char *stop; -sopno startst; -sopno stopst; -{ - states st = m->st; - states fresh = m->fresh; - states tmp = m->tmp; - char *p = start; - int c = (start == m->beginp) ? OUT : *(start-1); - int lastc; /* previous c */ - int flagch; - int i; - char *coldp; /* last p after which no match was underway */ - - CLEAR(st); - SET1(st, startst); - st = step(m->g, startst, stopst, st, NOTHING, st); - ASSIGN(fresh, st); - SP("start", st, *p); - coldp = NULL; - for (;;) { - /* next character */ - lastc = c; - c = (p == m->endp) ? OUT : *p; - if (EQ(st, fresh)) - coldp = p; - - /* is there an EOL and/or BOL between lastc and c? */ - flagch = '\0'; - i = 0; - if ( (lastc == '\n' && m->g->cflags®_NEWLINE) || - (lastc == OUT && !(m->eflags®_NOTBOL)) ) { - flagch = BOL; - i = m->g->nbol; - } - if ( (c == '\n' && m->g->cflags®_NEWLINE) || - (c == OUT && !(m->eflags®_NOTEOL)) ) { - flagch = (flagch == BOL) ? BOLEOL : EOL; - i += m->g->neol; - } - if (i != 0) { - for (; i > 0; i--) - st = step(m->g, startst, stopst, st, flagch, st); - SP("boleol", st, c); - } - - /* how about a word boundary? */ - if ( (flagch == BOL || (lastc != OUT && !ISWORD(lastc))) && - (c != OUT && ISWORD(c)) ) { - flagch = BOW; - } - if ( (lastc != OUT && ISWORD(lastc)) && - (flagch == EOL || (c != OUT && !ISWORD(c))) ) { - flagch = EOW; - } - if (flagch == BOW || flagch == EOW) { - st = step(m->g, startst, stopst, st, flagch, st); - SP("boweow", st, c); - } - - /* are we done? */ - if (ISSET(st, stopst) || p == stop) - break; /* NOTE BREAK OUT */ - - /* no, we must deal with this character */ - ASSIGN(tmp, st); - ASSIGN(st, fresh); - assert(c != OUT); - st = step(m->g, startst, stopst, tmp, c, st); - SP("aft", st, c); - assert(EQ(step(m->g, startst, stopst, st, NOTHING, st), st)); - p++; - } - - assert(coldp != NULL); - m->coldp = coldp; - if (ISSET(st, stopst)) - return(p+1); - else - return(NULL); -} - -/* - - slow - step through the string more deliberately - == static char *slow(struct match *m, char *start, \ - == char *stop, sopno startst, sopno stopst); - */ -static char * /* where it ended */ -slow(m, start, stop, startst, stopst) -struct match *m; -char *start; -char *stop; -sopno startst; -sopno stopst; -{ - states st = m->st; - states empty = m->empty; - states tmp = m->tmp; - char *p = start; - int c = (start == m->beginp) ? OUT : *(start-1); - int lastc; /* previous c */ - int flagch; - int i; - char *matchp; /* last p at which a match ended */ - - AT("slow", start, stop, startst, stopst); - CLEAR(st); - SET1(st, startst); - SP("sstart", st, *p); - st = step(m->g, startst, stopst, st, NOTHING, st); - matchp = NULL; - for (;;) { - /* next character */ - lastc = c; - c = (p == m->endp) ? OUT : *p; - - /* is there an EOL and/or BOL between lastc and c? */ - flagch = '\0'; - i = 0; - if ( (lastc == '\n' && m->g->cflags®_NEWLINE) || - (lastc == OUT && !(m->eflags®_NOTBOL)) ) { - flagch = BOL; - i = m->g->nbol; - } - if ( (c == '\n' && m->g->cflags®_NEWLINE) || - (c == OUT && !(m->eflags®_NOTEOL)) ) { - flagch = (flagch == BOL) ? BOLEOL : EOL; - i += m->g->neol; - } - if (i != 0) { - for (; i > 0; i--) - st = step(m->g, startst, stopst, st, flagch, st); - SP("sboleol", st, c); - } - - /* how about a word boundary? */ - if ( (flagch == BOL || (lastc != OUT && !ISWORD(lastc))) && - (c != OUT && ISWORD(c)) ) { - flagch = BOW; - } - if ( (lastc != OUT && ISWORD(lastc)) && - (flagch == EOL || (c != OUT && !ISWORD(c))) ) { - flagch = EOW; - } - if (flagch == BOW || flagch == EOW) { - st = step(m->g, startst, stopst, st, flagch, st); - SP("sboweow", st, c); - } - - /* are we done? */ - if (ISSET(st, stopst)) - matchp = p; - if (EQ(st, empty) || p == stop) - break; /* NOTE BREAK OUT */ - - /* no, we must deal with this character */ - ASSIGN(tmp, st); - ASSIGN(st, empty); - assert(c != OUT); - st = step(m->g, startst, stopst, tmp, c, st); - SP("saft", st, c); - assert(EQ(step(m->g, startst, stopst, st, NOTHING, st), st)); - p++; - } - - return(matchp); -} - - -/* - - step - map set of states reachable before char to set reachable after - == static states step(struct re_guts *g, sopno start, sopno stop, \ - == states bef, int ch, states aft); - == #define BOL (OUT+1) - == #define EOL (BOL+1) - == #define BOLEOL (BOL+2) - == #define NOTHING (BOL+3) - == #define BOW (BOL+4) - == #define EOW (BOL+5) - == #define CODEMAX (BOL+5) // highest code used - == #define NONCHAR(c) ((c) > CHAR_MAX) - == #define NNONCHAR (CODEMAX-CHAR_MAX) - */ -static states -step(g, start, stop, bef, ch, aft) -struct re_guts *g; -sopno start; /* start state within strip */ -sopno stop; /* state after stop state within strip */ -states bef; /* states reachable before */ -int ch; /* character or NONCHAR code */ -states aft; /* states already known reachable after */ -{ - cset *cs; - sop s; - sopno pc; - onestate here; /* note, macros know this name */ - sopno look; - int i; - - for (pc = start, INIT(here, pc); pc != stop; pc++, INC(here)) { - s = g->strip[pc]; - switch (OP(s)) { - case OEND: - assert(pc == stop-1); - break; - case OCHAR: - /* only characters can match */ - assert(!NONCHAR(ch) || ch != (char)OPND(s)); - if (ch == (char)OPND(s)) - FWD(aft, bef, 1); - break; - case OBOL: - if (ch == BOL || ch == BOLEOL) - FWD(aft, bef, 1); - break; - case OEOL: - if (ch == EOL || ch == BOLEOL) - FWD(aft, bef, 1); - break; - case OBOW: - if (ch == BOW) - FWD(aft, bef, 1); - break; - case OEOW: - if (ch == EOW) - FWD(aft, bef, 1); - break; - case OANY: - if (!NONCHAR(ch)) - FWD(aft, bef, 1); - break; - case OANYOF: - cs = &g->sets[OPND(s)]; - if (!NONCHAR(ch) && CHIN(cs, ch)) - FWD(aft, bef, 1); - break; - case OBACK_: /* ignored here */ - case O_BACK: - FWD(aft, aft, 1); - break; - case OPLUS_: /* forward, this is just an empty */ - FWD(aft, aft, 1); - break; - case O_PLUS: /* both forward and back */ - FWD(aft, aft, 1); - i = ISSETBACK(aft, OPND(s)); - BACK(aft, aft, OPND(s)); - if (!i && ISSETBACK(aft, OPND(s))) { - /* oho, must reconsider loop body */ - pc -= OPND(s) + 1; - INIT(here, pc); - } - break; - case OQUEST_: /* two branches, both forward */ - FWD(aft, aft, 1); - FWD(aft, aft, OPND(s)); - break; - case O_QUEST: /* just an empty */ - FWD(aft, aft, 1); - break; - case OLPAREN: /* not significant here */ - case ORPAREN: - FWD(aft, aft, 1); - break; - case OCH_: /* mark the first two branches */ - FWD(aft, aft, 1); - assert(OP(g->strip[pc+OPND(s)]) == OOR2); - FWD(aft, aft, OPND(s)); - break; - case OOR1: /* done a branch, find the O_CH */ - if (ISSTATEIN(aft, here)) { - for (look = 1; - OP(s = g->strip[pc+look]) != O_CH; - look += OPND(s)) - assert(OP(s) == OOR2); - FWD(aft, aft, look); - } - break; - case OOR2: /* propagate OCH_'s marking */ - FWD(aft, aft, 1); - if (OP(g->strip[pc+OPND(s)]) != O_CH) { - assert(OP(g->strip[pc+OPND(s)]) == OOR2); - FWD(aft, aft, OPND(s)); - } - break; - case O_CH: /* just empty */ - FWD(aft, aft, 1); - break; - default: /* ooooops... */ - assert(nope); - break; - } - } - - return(aft); -} - -#ifdef REDEBUG -/* - - print - print a set of states - == #ifdef REDEBUG - == static void print(struct match *m, char *caption, states st, \ - == int ch, FILE *d); - == #endif - */ -static void -print(m, caption, st, ch, d) -struct match *m; -char *caption; -states st; -int ch; -FILE *d; -{ - struct re_guts *g = m->g; - int i; - int first = 1; - - if (!(m->eflags®_TRACE)) - return; - - fprintf(d, "%s", caption); - if (ch != '\0') - fprintf(d, " %s", pchar(ch)); - for (i = 0; i < g->nstates; i++) - if (ISSET(st, i)) { - fprintf(d, "%s%d", (first) ? "\t" : ", ", i); - first = 0; - } - fprintf(d, "\n"); -} - -/* - - at - print current situation - == #ifdef REDEBUG - == static void at(struct match *m, char *title, char *start, char *stop, \ - == sopno startst, sopno stopst); - == #endif - */ -static void -at(m, title, start, stop, startst, stopst) -struct match *m; -char *title; -char *start; -char *stop; -sopno startst; -sopno stopst; -{ - if (!(m->eflags®_TRACE)) - return; - - printf("%s %s-", title, pchar(*start)); - printf("%s ", pchar(*stop)); - printf("%ld-%ld\n", (long)startst, (long)stopst); -} - -#ifndef PCHARDONE -#define PCHARDONE /* never again */ -/* - - pchar - make a character printable - == #ifdef REDEBUG - == static char *pchar(int ch); - == #endif - * - * Is this identical to regchar() over in debug.c? Well, yes. But a - * duplicate here avoids having a debugging-capable regexec.o tied to - * a matching debug.o, and this is convenient. It all disappears in - * the non-debug compilation anyway, so it doesn't matter much. - */ -static char * /* -> representation */ -pchar(ch) -int ch; -{ - static char pbuf[10]; - - if (isprint((uch)ch) || ch == ' ') - sprintf(pbuf, "%c", ch); - else - sprintf(pbuf, "\\%o", ch); - return(pbuf); -} -#endif -#endif - -#undef matcher -#undef fast -#undef slow -#undef dissect -#undef backref -#undef step -#undef print -#undef at -#undef match diff --git a/lib/posix/execl.c b/lib/posix/execl.c deleted file mode 100644 index c3b4e55..0000000 --- a/lib/posix/execl.c +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef _NO_EXECVE - -/* execl.c */ - -/* This and the other exec*.c files in this directory require - the target to provide the _execve syscall. */ - -#include <_ansi.h> -#include - -/* Only deal with a pointer to environ, to work around subtle bugs with shared - libraries and/or small data systems where the user declares his own - 'environ'. */ -static char ***p_environ = &environ; - - -#include - -int -execl (const char *path, - const char *arg0, ...) - - -{ - int i; - va_list args; - const char *argv[256]; - - va_start (args, arg0); - argv[0] = arg0; - i = 1; - do - argv[i] = va_arg (args, const char *); - while (argv[i++] != NULL); - va_end (args); - - return _execve (path, (char * const *) argv, *p_environ); -} -#endif /* !_NO_EXECVE */ diff --git a/lib/posix/execle.c b/lib/posix/execle.c deleted file mode 100644 index 34f0ea3..0000000 --- a/lib/posix/execle.c +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef _NO_EXECVE - -/* execle.c */ - -/* This and the other exec*.c files in this directory require - the target to provide the _execve syscall. */ - -#include <_ansi.h> -#include - - -#include - -int -execle (const char *path, - const char *arg0, ...) - - -{ - int i; - va_list args; - const char * const *envp; - const char *argv[256]; - - va_start (args, arg0); - argv[0] = arg0; - i = 1; - do - argv[i] = va_arg (args, const char *); - while (argv[i++] != NULL); - envp = va_arg (args, const char * const *); - va_end (args); - - return _execve (path, (char * const *) argv, (char * const *) envp); -} - -#endif /* !_NO_EXECVE */ diff --git a/lib/posix/execlp.c b/lib/posix/execlp.c deleted file mode 100644 index b845c88..0000000 --- a/lib/posix/execlp.c +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef _NO_EXECVE - -/* execlp.c */ - -/* This and the other exec*.c files in this directory require - the target to provide the _execve syscall. */ - -#include <_ansi.h> -#include - - -#include - -int -execlp (const char *path, - const char *arg0, ...) - - -{ - int i; - va_list args; - const char *argv[256]; - - va_start (args, arg0); - argv[0] = arg0; - i = 1; - do - argv[i] = va_arg (args, const char *); - while (argv[i++] != NULL); - va_end (args); - - return execvp (path, (char * const *) argv); -} - -#endif /* !_NO_EXECVE */ diff --git a/lib/posix/execv.c b/lib/posix/execv.c deleted file mode 100644 index 6a1052c..0000000 --- a/lib/posix/execv.c +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _NO_EXECVE - -/* execv.c */ - -/* This and the other exec*.c files in this directory require - the target to provide the _execve syscall. */ - -#include <_ansi.h> -#include - -/* Only deal with a pointer to environ, to work around subtle bugs with shared - libraries and/or small data systems where the user declares his own - 'environ'. */ -static char ***p_environ = &environ; - -int -execv (const char *path, - char * const argv[]) -{ - return _execve (path, (char * const *) argv, *p_environ); -} - -#endif /* !_NO_EXECVE */ diff --git a/lib/posix/execve.c b/lib/posix/execve.c deleted file mode 100644 index 99c1454..0000000 --- a/lib/posix/execve.c +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _NO_EXECVE - -/* execve.c */ - -/* This and the other exec*.c files in this directory require - the target to provide the _execve syscall. */ - - -#include - - -int -execve (const char *path, - char * const argv[], - char * const envp[]) -{ - return _execve (path, argv, envp); -} - -#endif /* !_NO_EXECVE */ diff --git a/lib/posix/execvp.c b/lib/posix/execvp.c deleted file mode 100644 index be7e71c..0000000 --- a/lib/posix/execvp.c +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef _NO_EXECVE - -/* execvp.c */ - -/* This and the other exec*.c files in this directory require - the target to provide the _execve syscall. */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include - -#define PATH_DELIM ':' - -/* - * Copy string, until c or is encountered. - * NUL-terminate the destination string (s1). - */ - -static char * -strccpy (char *s1, - char *s2, - char c) -{ - char *dest = s1; - - while (*s2 && *s2 != c) - *s1++ = *s2++; - *s1 = 0; - - return dest; -} - -int -execvp (const char *file, - char * const argv[]) -{ - char *path = getenv ("PATH"); - char buf[MAXNAMLEN]; - - /* If $PATH doesn't exist, just pass FILE on unchanged. */ - if (!path) - return execv (file, argv); - - /* If FILE contains a directory, don't search $PATH. */ - if (strchr (file, '/') - ) - return execv (file, argv); - - while (*path) - { - strccpy (buf, path, PATH_DELIM); - /* An empty entry means the current directory. */ - if (*buf != 0 && buf[strlen(buf) - 1] != '/') - strcat (buf, "/"); - strcat (buf, file); - if (execv (buf, argv) == -1 && errno != ENOENT) - return -1; - while (*path && *path != PATH_DELIM) - path++; - if (*path == PATH_DELIM) - path++; /* skip over delim */ - } - - return -1; -} - -#endif /* !_NO_EXECVE */ diff --git a/lib/posix/fnmatch.3 b/lib/posix/fnmatch.3 deleted file mode 100644 index aec25ea..0000000 --- a/lib/posix/fnmatch.3 +++ /dev/null @@ -1,147 +0,0 @@ -.\" Copyright (c) 1989, 1991, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" This code is derived from software contributed to Berkeley by -.\" Guido van Rossum. -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)fnmatch.3 8.3 (Berkeley) 4/28/95 -.\" $FreeBSD: src/lib/libc/gen/fnmatch.3,v 1.12 2001/10/01 16:08:50 ru Exp $ -.\" -.Dd April 28, 1995 -.Dt FNMATCH 3 -.Os -.Sh NAME -.Nm fnmatch -.Nd match filename or pathname -.Sh LIBRARY -.Lb libc -.Sh SYNOPSIS -.In fnmatch.h -.Ft int -.Fn fnmatch "const char *pattern" "const char *string" "int flags" -.Sh DESCRIPTION -The -.Fn fnmatch -function -matches patterns according to the rules used by the shell. -It checks the string specified by the -.Fa string -argument to see if it matches the pattern specified by the -.Fa pattern -argument. -.Pp -The -.Fa flags -argument modifies the interpretation of -.Fa pattern -and -.Fa string . -The value of -.Fa flags -is the bitwise inclusive -.Tn OR -of any of the following -constants, which are defined in the include file -.Pa fnmatch.h . -.Bl -tag -width FNM_PATHNAME -.It Dv FNM_NOESCAPE -Normally, every occurrence of a backslash -.Pq Ql \e -followed by a character in -.Fa pattern -is replaced by that character. -This is done to negate any special meaning for the character. -If the -.Dv FNM_NOESCAPE -flag is set, a backslash character is treated as an ordinary character. -.It Dv FNM_PATHNAME -Slash characters in -.Fa string -must be explicitly matched by slashes in -.Fa pattern . -If this flag is not set, then slashes are treated as regular characters. -.It Dv FNM_PERIOD -Leading periods in -.Fa string -must be explicitly matched by periods in -.Fa pattern . -If this flag is not set, then leading periods are treated as regular -characters. -The definition of -.Dq leading -is related to the specification of -.Dv FNM_PATHNAME . -A period is always -.Dq leading -if it is the first character in -.Ar string . -Additionally, if -.Dv FNM_PATHNAME -is set, -a period is -leading -if it immediately follows a slash. -.It Dv FNM_LEADING_DIR -Ignore -.Nm /* -rest after successful -.Fa pattern -matching. -.It Dv FNM_CASEFOLD -Ignore case distinctions in both the -.Fa pattern -and the -.Fa string . -.El -.Sh RETURN VALUES -The -.Fn fnmatch -function returns zero if -.Fa string -matches the pattern specified by -.Fa pattern , -otherwise, it returns the value -.Dv FNM_NOMATCH . -.Sh SEE ALSO -.Xr sh 1 , -.Xr glob 3 , -.Xr regex 3 -.Sh STANDARDS -The -.Fn fnmatch -function conforms to -.St -p1003.2 . -.Sh HISTORY -The -.Fn fnmatch -function first appeared in -.Bx 4.4 . -.Sh BUGS -The pattern -.Ql * -matches the empty string, even if -.Dv FNM_PATHNAME -is specified. diff --git a/lib/posix/fnmatch.c b/lib/posix/fnmatch.c deleted file mode 100644 index 1a679ab..0000000 --- a/lib/posix/fnmatch.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright (c) 1989, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Guido van Rossum. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _NO_FNMATCH - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)fnmatch.c 8.2 (Berkeley) 4/16/94"; -#endif /* LIBC_SCCS and not lint */ -#include - -/* - * Function fnmatch() as specified in POSIX 1003.2-1992, section B.6. - * Compares a filename or pathname to a pattern. - */ - -#include -#include -#include -#include - -#include "collate.h" - -#define EOS '\0' - -#define RANGE_MATCH 1 -#define RANGE_NOMATCH 0 -#define RANGE_ERROR (-1) - -static int rangematch(const char *, char, int, char **); - -int -fnmatch(pattern, string, flags) - const char *pattern, *string; - int flags; -{ - const char *stringstart; - char *newp; - char c, test; - - for (stringstart = string;;) - switch (c = *pattern++) { - case EOS: - if ((flags & FNM_LEADING_DIR) && *string == '/') - return (0); - return (*string == EOS ? 0 : FNM_NOMATCH); - case '?': - if (*string == EOS) - return (FNM_NOMATCH); - if (*string == '/' && (flags & FNM_PATHNAME)) - return (FNM_NOMATCH); - if (*string == '.' && (flags & FNM_PERIOD) && - (string == stringstart || - ((flags & FNM_PATHNAME) && *(string - 1) == '/'))) - return (FNM_NOMATCH); - ++string; - break; - case '*': - c = *pattern; - /* Collapse multiple stars. */ - while (c == '*') - c = *++pattern; - - if (*string == '.' && (flags & FNM_PERIOD) && - (string == stringstart || - ((flags & FNM_PATHNAME) && *(string - 1) == '/'))) - return (FNM_NOMATCH); - - /* Optimize for pattern with * at end or before /. */ - if (c == EOS) - if (flags & FNM_PATHNAME) - return ((flags & FNM_LEADING_DIR) || - strchr(string, '/') == NULL ? - 0 : FNM_NOMATCH); - else - return (0); - else if (c == '/' && flags & FNM_PATHNAME) { - if ((string = strchr(string, '/')) == NULL) - return (FNM_NOMATCH); - break; - } - - /* General case, use recursion. */ - while ((test = *string) != EOS) { - if (!fnmatch(pattern, string, flags & ~FNM_PERIOD)) - return (0); - if (test == '/' && flags & FNM_PATHNAME) - break; - ++string; - } - return (FNM_NOMATCH); - case '[': - if (*string == EOS) - return (FNM_NOMATCH); - if (*string == '/' && (flags & FNM_PATHNAME)) - return (FNM_NOMATCH); - if (*string == '.' && (flags & FNM_PERIOD) && - (string == stringstart || - ((flags & FNM_PATHNAME) && *(string - 1) == '/'))) - return (FNM_NOMATCH); - - switch (rangematch(pattern, *string, flags, &newp)) { - case RANGE_ERROR: - goto norm; - case RANGE_MATCH: - pattern = newp; - break; - case RANGE_NOMATCH: - return (FNM_NOMATCH); - } - ++string; - break; - case '\\': - if (!(flags & FNM_NOESCAPE)) { - if ((c = *pattern++) == EOS) { - c = '\\'; - --pattern; - } - } - /* FALLTHROUGH */ - default: - norm: - if (c == *string) - ; - else if ((flags & FNM_CASEFOLD) && - (tolower((unsigned char)c) == - tolower((unsigned char)*string))) - ; - else - return (FNM_NOMATCH); - string++; - break; - } - /* NOTREACHED */ -} - -static int -rangematch(pattern, test, flags, newp) - const char *pattern; - char test; - int flags; - char **newp; -{ - int negate, ok; - char c, c2; - - /* - * A bracket expression starting with an unquoted circumflex - * character produces unspecified results (IEEE 1003.2-1992, - * 3.13.2). This implementation treats it like '!', for - * consistency with the regular expression syntax. - * J.T. Conklin (conklin@ngai.kaleida.com) - */ - if ( (negate = (*pattern == '!' || *pattern == '^')) ) - ++pattern; - - if (flags & FNM_CASEFOLD) - test = tolower((unsigned char)test); - - /* - * A right bracket shall lose its special meaning and represent - * itself in a bracket expression if it occurs first in the list. - * -- POSIX.2 2.8.3.2 - */ - ok = 0; - c = *pattern++; - do { - if (c == '\\' && !(flags & FNM_NOESCAPE)) - c = *pattern++; - if (c == EOS) - return (RANGE_ERROR); - - if (c == '/' && (flags & FNM_PATHNAME)) - return (RANGE_NOMATCH); - - if (flags & FNM_CASEFOLD) - c = tolower((unsigned char)c); - - if (*pattern == '-' - && (c2 = *(pattern+1)) != EOS && c2 != ']') { - pattern += 2; - if (c2 == '\\' && !(flags & FNM_NOESCAPE)) - c2 = *pattern++; - if (c2 == EOS) - return (RANGE_ERROR); - - if (flags & FNM_CASEFOLD) - c2 = tolower((unsigned char)c2); - - if (__collate_load_error ? - c <= test && test <= c2 : - __collate_range_cmp(c, test) <= 0 - && __collate_range_cmp(test, c2) <= 0 - ) - ok = 1; - } else if (c == test) - ok = 1; - } while ((c = *pattern++) != ']'); - - *newp = (char *)pattern; - return (ok == negate ? RANGE_NOMATCH : RANGE_MATCH); -} - -#endif /* !_NO_FNMATCH */ diff --git a/lib/posix/ftw.c b/lib/posix/ftw.c deleted file mode 100644 index 18cfc24..0000000 --- a/lib/posix/ftw.c +++ /dev/null @@ -1,33 +0,0 @@ -/* -* Copyright © 2005-2020 Rich Felker, et al. -* -* Permission is hereby granted, free of charge, to any person obtaining -* a copy of this software and associated documentation files (the -* "Software"), to deal in the Software without restriction, including -* without limitation the rights to use, copy, modify, merge, publish, -* distribute, sublicense, and/or sell copies of the Software, and to -* permit persons to whom the Software is furnished to do so, subject to -* the following conditions: -* -* The above copyright notice and this permission notice shall be -* included in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#include - -int ftw(const char *path, int (*fn)(const char *, const struct stat *, int), int fd_limit) -{ - /* The following cast assumes that calling a function with one - * argument more than it needs behaves as expected. This is - * actually undefined, but works on all real-world machines. */ - return nftw(path, (int (*)())fn, fd_limit, FTW_PHYS); -} - diff --git a/lib/posix/glob.3 b/lib/posix/glob.3 deleted file mode 100644 index d90a1b5..0000000 --- a/lib/posix/glob.3 +++ /dev/null @@ -1,462 +0,0 @@ -.\" Copyright (c) 1989, 1991, 1993, 1994 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" This code is derived from software contributed to Berkeley by -.\" Guido van Rossum. -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)glob.3 8.3 (Berkeley) 4/16/94 -.\" $FreeBSD: src/lib/libc/gen/glob.3,v 1.20 2001/10/01 16:08:51 ru Exp $ -.\" -.Dd April 16, 1994 -.Dt GLOB 3 -.Os -.Sh NAME -.Nm glob , -.Nm globfree -.Nd generate pathnames matching a pattern -.Sh LIBRARY -.Lb libc -.Sh SYNOPSIS -.In glob.h -.Ft int -.Fn glob "const char *pattern" "int flags" "int (*errfunc)(const char *, int)" "glob_t *pglob" -.Ft void -.Fn globfree "glob_t *pglob" -.Sh DESCRIPTION -The -.Fn glob -function -is a pathname generator that implements the rules for file name pattern -matching used by the shell. -.Pp -The include file -.Pa glob.h -defines the structure type -.Fa glob_t , -which contains at least the following fields: -.Bd -literal -typedef struct { - int gl_pathc; /* count of total paths so far */ - int gl_matchc; /* count of paths matching pattern */ - int gl_offs; /* reserved at beginning of gl_pathv */ - int gl_flags; /* returned flags */ - char **gl_pathv; /* list of paths matching pattern */ -} glob_t; -.Ed -.Pp -The argument -.Fa pattern -is a pointer to a pathname pattern to be expanded. -The -.Fn glob -argument -matches all accessible pathnames against the pattern and creates -a list of the pathnames that match. -In order to have access to a pathname, -.Fn glob -requires search permission on every component of a path except the last -and read permission on each directory of any filename component of -.Fa pattern -that contains any of the special characters -.Ql * , -.Ql ?\& -or -.Ql \&[ . -.Pp -The -.Fn glob -argument -stores the number of matched pathnames into the -.Fa gl_pathc -field, and a pointer to a list of pointers to pathnames into the -.Fa gl_pathv -field. -The first pointer after the last pathname is -.Dv NULL . -If the pattern does not match any pathnames, the returned number of -matched paths is set to zero. -.Pp -It is the caller's responsibility to create the structure pointed to by -.Fa pglob . -The -.Fn glob -function allocates other space as needed, including the memory pointed -to by -.Fa gl_pathv . -.Pp -The argument -.Fa flags -is used to modify the behavior of -.Fn glob . -The value of -.Fa flags -is the bitwise inclusive -.Tn OR -of any of the following -values defined in -.Pa glob.h : -.Bl -tag -width GLOB_ALTDIRFUNC -.It Dv GLOB_APPEND -Append pathnames generated to the ones from a previous call (or calls) -to -.Fn glob . -The value of -.Fa gl_pathc -will be the total matches found by this call and the previous call(s). -The pathnames are appended to, not merged with the pathnames returned by -the previous call(s). -Between calls, the caller must not change the setting of the -.Dv GLOB_DOOFFS -flag, nor change the value of -.Fa gl_offs -when -.Dv GLOB_DOOFFS -is set, nor (obviously) call -.Fn globfree -for -.Fa pglob . -.It Dv GLOB_DOOFFS -Make use of the -.Fa gl_offs -field. -If this flag is set, -.Fa gl_offs -is used to specify how many -.Dv NULL -pointers to prepend to the beginning -of the -.Fa gl_pathv -field. -In other words, -.Fa gl_pathv -will point to -.Fa gl_offs -.Dv NULL -pointers, -followed by -.Fa gl_pathc -pathname pointers, followed by a -.Dv NULL -pointer. -.It Dv GLOB_ERR -Causes -.Fn glob -to return when it encounters a directory that it cannot open or read. -Ordinarily, -.Fn glob -continues to find matches. -.It Dv GLOB_MARK -Each pathname that is a directory that matches -.Fa pattern -has a slash -appended. -.It Dv GLOB_NOCHECK -If -.Fa pattern -does not match any pathname, then -.Fn glob -returns a list -consisting of only -.Fa pattern , -with the number of total pathnames is set to 1, and the number of matched -pathnames set to 0. -If -.Dv GLOB_QUOTE -is set, its effect is present in the pattern returned. -.It Dv GLOB_NOSORT -By default, the pathnames are sorted in ascending -.Tn ASCII -order; -this flag prevents that sorting (speeding up -.Fn glob ) . -.El -.Pp -The following values may also be included in -.Fa flags , -however, they are non-standard extensions to -.St -p1003.2 . -.Bl -tag -width GLOB_ALTDIRFUNC -.It Dv GLOB_ALTDIRFUNC -The following additional fields in the pglob structure have been -initialized with alternate functions for glob to use to open, read, -and close directories and to get stat information on names found -in those directories. -.Bd -literal -void *(*gl_opendir)(const char * name); -struct dirent *(*gl_readdir)(void *); -void (*gl_closedir)(void *); -int (*gl_lstat)(const char *name, struct stat *st); -int (*gl_stat)(const char *name, struct stat *st); -.Ed -.Pp -This extension is provided to allow programs such as -.Xr restore 8 -to provide globbing from directories stored on tape. -.It Dv GLOB_BRACE -Pre-process the pattern string to expand -.Ql {pat,pat,...} -strings like -.Xr csh 1 . -The pattern -.Ql {} -is left unexpanded for historical reasons (and -.Xr csh 1 -does the same thing to -ease typing -of -.Xr find 1 -patterns). -.It Dv GLOB_MAGCHAR -Set by the -.Fn glob -function if the pattern included globbing characters. -See the description of the usage of the -.Fa gl_matchc -structure member for more details. -.It Dv GLOB_NOMAGIC -Is the same as -.Dv GLOB_NOCHECK -but it only appends the -.Fa pattern -if it does not contain any of the special characters ``*'', ``?'' or ``[''. -.Dv GLOB_NOMAGIC -is provided to simplify implementing the historic -.Xr csh 1 -globbing behavior and should probably not be used anywhere else. -.It Dv GLOB_QUOTE -Use the backslash -.Pq Ql \e -character for quoting: every occurrence of -a backslash followed by a character in the pattern is replaced by that -character, avoiding any special interpretation of the character. -.It Dv GLOB_TILDE -Expand patterns that start with -.Ql ~ -to user name home directories. -.It Dv GLOB_LIMIT -Limit the total number of returned pathnames to the value provided in -.Fa gl_matchc -(default -.Dv ARG_MAX ) . -This option should be set for programs -that can be coerced into a denial of service attack -via patterns that expand to a very large number of matches, -such as a long string of -.Ql */../*/.. . -.El -.Pp -If, during the search, a directory is encountered that cannot be opened -or read and -.Fa errfunc -is -.Pf non- Dv NULL , -.Fn glob -calls -.Fa \*(lp*errfunc\*(rp Ns ( Fa path , errno ) . -This may be unintuitive: a pattern like -.Ql */Makefile -will try to -.Xr stat 2 -.Ql foo/Makefile -even if -.Ql foo -is not a directory, resulting in a -call to -.Fa errfunc . -The error routine can suppress this action by testing for -.Er ENOENT -and -.Er ENOTDIR ; -however, the -.Dv GLOB_ERR -flag will still cause an immediate -return when this happens. -.Pp -If -.Fa errfunc -returns non-zero, -.Fn glob -stops the scan and returns -.Dv GLOB_ABEND -after setting -.Fa gl_pathc -and -.Fa gl_pathv -to reflect any paths already matched. -This also happens if an error is encountered and -.Dv GLOB_ERR -is set in -.Fa flags , -regardless of the return value of -.Fa errfunc , -if called. -If -.Dv GLOB_ERR -is not set and either -.Fa errfunc -is -.Dv NULL -or -.Fa errfunc -returns zero, the error is ignored. -.Pp -The -.Fn globfree -function frees any space associated with -.Fa pglob -from a previous call(s) to -.Fn glob . -.Sh RETURN VALUES -On successful completion, -.Fn glob -returns zero. -In addition the fields of -.Fa pglob -contain the values described below: -.Bl -tag -width GLOB_NOCHECK -.It Fa gl_pathc -contains the total number of matched pathnames so far. -This includes other matches from previous invocations of -.Fn glob -if -.Dv GLOB_APPEND -was specified. -.It Fa gl_matchc -contains the number of matched pathnames in the current invocation of -.Fn glob . -.It Fa gl_flags -contains a copy of the -.Fa flags -parameter with the bit -.Dv GLOB_MAGCHAR -set if -.Fa pattern -contained any of the special characters ``*'', ``?'' or ``['', cleared -if not. -.It Fa gl_pathv -contains a pointer to a -.Dv NULL Ns -terminated -list of matched pathnames. -However, if -.Fa gl_pathc -is zero, the contents of -.Fa gl_pathv -are undefined. -.El -.Pp -If -.Fn glob -terminates due to an error, it sets errno and returns one of the -following non-zero constants, which are defined in the include -file -.Aq Pa glob.h : -.Bl -tag -width GLOB_NOCHECK -.It Dv GLOB_NOSPACE -An attempt to allocate memory failed, or if -.Fa errno -was 0 -.Dv GLOB_LIMIT -was specified in the flags and -.Fa pglob\->gl_matchc -or more patterns were matched. -.It Dv GLOB_ABEND -The scan was stopped because an error was encountered and either -.Dv GLOB_ERR -was set or -.Fa \*(lp*errfunc\*(rp\*(lp\*(rp -returned non-zero. -.El -.Pp -The arguments -.Fa pglob\->gl_pathc -and -.Fa pglob\->gl_pathv -are still set as specified above. -.Sh EXAMPLES -A rough equivalent of -.Ql "ls -l *.c *.h" -can be obtained with the -following code: -.Bd -literal -offset indent -glob_t g; - -g.gl_offs = 2; -glob("*.c", GLOB_DOOFFS, NULL, &g); -glob("*.h", GLOB_DOOFFS | GLOB_APPEND, NULL, &g); -g.gl_pathv[0] = "ls"; -g.gl_pathv[1] = "-l"; -execvp("ls", g.gl_pathv); -.Ed -.Sh SEE ALSO -.Xr sh 1 , -.Xr fnmatch 3 , -.Xr regexp 3 -.Sh STANDARDS -The -.Fn glob -function is expected to be -.St -p1003.2 -compatible with the exception -that the flags -.Dv GLOB_ALTDIRFUNC , -.Dv GLOB_BRACE , -.Dv GLOB_LIMIT , -.Dv GLOB_MAGCHAR , -.Dv GLOB_NOMAGIC , -.Dv GLOB_QUOTE , -and -.Dv GLOB_TILDE , -and the fields -.Fa gl_matchc -and -.Fa gl_flags -should not be used by applications striving for strict -.Tn POSIX -conformance. -.Sh HISTORY -The -.Fn glob -and -.Fn globfree -functions first appeared in -.Bx 4.4 . -.Sh BUGS -Patterns longer than -.Dv MAXPATHLEN -may cause unchecked errors. -.Pp -The -.Fn glob -argument -may fail and set errno for any of the errors specified for the -library routines -.Xr stat 2 , -.Xr closedir 3 , -.Xr opendir 3 , -.Xr readdir 3 , -.Xr malloc 3 , -and -.Xr free 3 . diff --git a/lib/posix/glob.c b/lib/posix/glob.c deleted file mode 100644 index 5e6c2fc..0000000 --- a/lib/posix/glob.c +++ /dev/null @@ -1,913 +0,0 @@ -/* - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Guido van Rossum. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifdef __CYGWIN__ -#define _NO_GLOB /* Cygwin provides its own glob. */ -#endif - -#ifndef _NO_GLOB - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)glob.c 8.3 (Berkeley) 10/13/93"; -#endif /* LIBC_SCCS and not lint */ -#include - -/* - * glob(3) -- a superset of the one defined in POSIX 1003.2. - * - * The [!...] convention to negate a range is supported (SysV, Posix, ksh). - * - * Optional extra services, controlled by flags not defined by POSIX: - * - * GLOB_QUOTE: - * Escaping convention: \ inhibits any special meaning the following - * character might have (except \ at end of string is retained). - * GLOB_MAGCHAR: - * Set in gl_flags if pattern contained a globbing character. - * GLOB_NOMAGIC: - * Same as GLOB_NOCHECK, but it will only append pattern if it did - * not contain any magic characters. [Used in csh style globbing] - * GLOB_ALTDIRFUNC: - * Use alternately specified directory access functions. - * GLOB_TILDE: - * expand ~user/foo to the /home/dir/of/user/foo - * GLOB_BRACE: - * expand {1,2}{a,b} to 1a 1b 2a 2b - * gl_matchc: - * Number of matches in the current invocation of glob. - */ - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "collate.h" - -#define DOLLAR '$' -#define DOT '.' -#define EOS '\0' -#define LBRACKET '[' -#define NOT '!' -#define QUESTION '?' -#define QUOTE '\\' -#define RANGE '-' -#define RBRACKET ']' -#define SEP '/' -#define STAR '*' -#define TILDE '~' -#define UNDERSCORE '_' -#define LBRACE '{' -#define RBRACE '}' -#define SLASH '/' -#define COMMA ',' - -#ifndef DEBUG - -#define M_QUOTE 0x8000 -#define M_PROTECT 0x4000 -#define M_MASK 0xffff -#define M_ASCII 0x00ff - -typedef u_short Char; - -#else - -#define M_QUOTE 0x80 -#define M_PROTECT 0x40 -#define M_MASK 0xff -#define M_ASCII 0x7f - -typedef char Char; - -#endif - - -#define CHAR(c) ((Char)((c)&M_ASCII)) -#define META(c) ((Char)((c)|M_QUOTE)) -#define M_ALL META('*') -#define M_END META(']') -#define M_NOT META('!') -#define M_ONE META('?') -#define M_RNG META('-') -#define M_SET META('[') -#define ismeta(c) (((c)&M_QUOTE) != 0) - - -static int compare(const void *, const void *); -static int g_Ctoc(const Char *, char *, u_int); -static int g_lstat(Char *, struct stat *, glob_t *); -static DIR *g_opendir(Char *, glob_t *); -static Char *g_strchr(Char *, int); -#ifdef notdef -static Char *g_strcat(Char *, const Char *); -#endif -static int g_stat(Char *, struct stat *, glob_t *); -static int glob0(const Char *, glob_t *, int *); -static int glob1(Char *, glob_t *, int *); -static int glob2(Char *, Char *, Char *, Char *, glob_t *, int *); -static int glob3(Char *, Char *, Char *, Char *, Char *, glob_t *, int *); -static int globextend(const Char *, glob_t *, int *); -static const Char * - globtilde(const Char *, Char *, size_t, glob_t *); -static int globexp1(const Char *, glob_t *, int *); -static int globexp2(const Char *, const Char *, glob_t *, int *, int *); -static int match(Char *, Char *, Char *); -#ifdef DEBUG -static void qprintf(const char *, Char *); -#endif - -int -glob(pattern, flags, errfunc, pglob) - const char *__restrict pattern; - int flags, (*errfunc)(const char *, int); - glob_t *__restrict pglob; -{ - const u_char *patnext; - int c, limit; - Char *bufnext, *bufend, patbuf[MAXPATHLEN]; - - patnext = (u_char *) pattern; - if (!(flags & GLOB_APPEND)) { - pglob->gl_pathc = 0; - pglob->gl_pathv = NULL; - if (!(flags & GLOB_DOOFFS)) - pglob->gl_offs = 0; - } - if (flags & GLOB_LIMIT) { - limit = pglob->gl_matchc; - if (limit == 0) - limit = ARG_MAX; - } else - limit = 0; - pglob->gl_flags = flags & ~GLOB_MAGCHAR; - pglob->gl_errfunc = errfunc; - pglob->gl_matchc = 0; - - bufnext = patbuf; - bufend = bufnext + MAXPATHLEN - 1; - if (flags & GLOB_QUOTE) { - /* Protect the quoted characters. */ - while (bufnext < bufend && (c = *patnext++) != EOS) - if (c == QUOTE) { - if ((c = *patnext++) == EOS) { - c = QUOTE; - --patnext; - } - *bufnext++ = c | M_PROTECT; - } - else - *bufnext++ = c; - } - else - while (bufnext < bufend && (c = *patnext++) != EOS) - *bufnext++ = c; - *bufnext = EOS; - - if (flags & GLOB_BRACE) - return globexp1(patbuf, pglob, &limit); - else - return glob0(patbuf, pglob, &limit); -} - -/* - * Expand recursively a glob {} pattern. When there is no more expansion - * invoke the standard globbing routine to glob the rest of the magic - * characters - */ -static int -globexp1(pattern, pglob, limit) - const Char *pattern; - glob_t *pglob; - int *limit; -{ - const Char* ptr = pattern; - int rv; - - /* Protect a single {}, for find(1), like csh */ - if (pattern[0] == LBRACE && pattern[1] == RBRACE && pattern[2] == EOS) - return glob0(pattern, pglob, limit); - - while ((ptr = (const Char *) g_strchr((Char *) ptr, LBRACE)) != NULL) - if (!globexp2(ptr, pattern, pglob, &rv, limit)) - return rv; - - return glob0(pattern, pglob, limit); -} - - -/* - * Recursive brace globbing helper. Tries to expand a single brace. - * If it succeeds then it invokes globexp1 with the new pattern. - * If it fails then it tries to glob the rest of the pattern and returns. - */ -static int -globexp2(ptr, pattern, pglob, rv, limit) - const Char *ptr, *pattern; - glob_t *pglob; - int *rv, *limit; -{ - int i; - Char *lm, *ls; - const Char *pe, *pm, *pl; - Char patbuf[MAXPATHLEN]; - - /* copy part up to the brace */ - for (lm = patbuf, pm = pattern; pm != ptr; *lm++ = *pm++) - continue; - *lm = EOS; - ls = lm; - - /* Find the balanced brace */ - for (i = 0, pe = ++ptr; *pe; pe++) - if (*pe == LBRACKET) { - /* Ignore everything between [] */ - for (pm = pe++; *pe != RBRACKET && *pe != EOS; pe++) - continue; - if (*pe == EOS) { - /* - * We could not find a matching RBRACKET. - * Ignore and just look for RBRACE - */ - pe = pm; - } - } - else if (*pe == LBRACE) - i++; - else if (*pe == RBRACE) { - if (i == 0) - break; - i--; - } - - /* Non matching braces; just glob the pattern */ - if (i != 0 || *pe == EOS) { - *rv = glob0(patbuf, pglob, limit); - return 0; - } - - for (i = 0, pl = pm = ptr; pm <= pe; pm++) - switch (*pm) { - case LBRACKET: - /* Ignore everything between [] */ - for (pl = pm++; *pm != RBRACKET && *pm != EOS; pm++) - continue; - if (*pm == EOS) { - /* - * We could not find a matching RBRACKET. - * Ignore and just look for RBRACE - */ - pm = pl; - } - break; - - case LBRACE: - i++; - break; - - case RBRACE: - if (i) { - i--; - break; - } - /* FALLTHROUGH */ - case COMMA: - if (i && *pm == COMMA) - break; - else { - /* Append the current string */ - for (lm = ls; (pl < pm); *lm++ = *pl++) - continue; - /* - * Append the rest of the pattern after the - * closing brace - */ - for (pl = pe + 1; (*lm++ = *pl++) != EOS;) - continue; - - /* Expand the current pattern */ -#ifdef DEBUG - qprintf("globexp2:", patbuf); -#endif - *rv = globexp1(patbuf, pglob, limit); - - /* move after the comma, to the next string */ - pl = pm + 1; - } - break; - - default: - break; - } - *rv = 0; - return 0; -} - - - -/* - * expand tilde from the passwd file. - */ -static const Char * -globtilde(pattern, patbuf, patbuf_len, pglob) - const Char *pattern; - Char *patbuf; - size_t patbuf_len; - glob_t *pglob; -{ - struct passwd *pwd; - char *h; - const Char *p; - Char *b, *eb; - - if (*pattern != TILDE || !(pglob->gl_flags & GLOB_TILDE)) - return pattern; - - /* - * Copy up to the end of the string or / - */ - eb = &patbuf[patbuf_len - 1]; - for (p = pattern + 1, h = (char *) patbuf; - h < (char *)eb && *p && *p != SLASH; *h++ = *p++) - continue; - - *h = EOS; - - if (((char *) patbuf)[0] == EOS) { - /* - * handle a plain ~ or ~/ by expanding $HOME first (iff - * we're not running setuid or setgid) and then trying - * the password file - */ - if ( -#ifndef __NETBSD_SYSCALLS - issetugid() != 0 || -#endif - (h = getenv("HOME")) == NULL) { -/* If we are not EL/IX level 4, we cannot use getpwxxx interfaces */ -#if !defined(_ELIX_LEVEL) || _ELIX_LEVEL >= 4 - if (((h = getlogin()) != NULL && - (pwd = getpwnam(h)) != NULL) || - (pwd = getpwuid(getuid())) != NULL) - h = pwd->pw_dir; - else -#endif /* !_ELIX_LEVEL || _ELIX_LEVEL >= 4 */ - return pattern; - } - } - else { - /* - * Expand a ~user - */ - -#if !defined(_ELIX_LEVEL) || _ELIX_LEVEL >= 4 - if ((pwd = getpwnam((char*) patbuf)) != NULL) - h = pwd->pw_dir; - else -#endif /* !_ELIX_LEVEL || _ELIX_LEVEL >= 4 */ - return pattern; - } - - /* Copy the home directory */ - for (b = patbuf; b < eb && *h; *b++ = *h++) - continue; - - /* Append the rest of the pattern */ - while (b < eb && (*b++ = *p++) != EOS) - continue; - *b = EOS; - - return patbuf; -} - - -/* - * The main glob() routine: compiles the pattern (optionally processing - * quotes), calls glob1() to do the real pattern matching, and finally - * sorts the list (unless unsorted operation is requested). Returns 0 - * if things went well, nonzero if errors occurred. It is not an error - * to find no matches. - */ -static int -glob0(pattern, pglob, limit) - const Char *pattern; - glob_t *pglob; - int *limit; -{ - const Char *qpatnext; - int c, err, oldpathc; - Char *bufnext, patbuf[MAXPATHLEN]; - - qpatnext = globtilde(pattern, patbuf, MAXPATHLEN, pglob); - oldpathc = pglob->gl_pathc; - bufnext = patbuf; - - /* We don't need to check for buffer overflow any more. */ - while ((c = *qpatnext++) != EOS) { - switch (c) { - case LBRACKET: - c = *qpatnext; - if (c == NOT) - ++qpatnext; - if (*qpatnext == EOS || - g_strchr((Char *) qpatnext+1, RBRACKET) == NULL) { - *bufnext++ = LBRACKET; - if (c == NOT) - --qpatnext; - break; - } - *bufnext++ = M_SET; - if (c == NOT) - *bufnext++ = M_NOT; - c = *qpatnext++; - do { - *bufnext++ = CHAR(c); - if (*qpatnext == RANGE && - (c = qpatnext[1]) != RBRACKET) { - *bufnext++ = M_RNG; - *bufnext++ = CHAR(c); - qpatnext += 2; - } - } while ((c = *qpatnext++) != RBRACKET); - pglob->gl_flags |= GLOB_MAGCHAR; - *bufnext++ = M_END; - break; - case QUESTION: - pglob->gl_flags |= GLOB_MAGCHAR; - *bufnext++ = M_ONE; - break; - case STAR: - pglob->gl_flags |= GLOB_MAGCHAR; - /* collapse adjacent stars to one, - * to avoid exponential behavior - */ - if (bufnext == patbuf || bufnext[-1] != M_ALL) - *bufnext++ = M_ALL; - break; - default: - *bufnext++ = CHAR(c); - break; - } - } - *bufnext = EOS; -#ifdef DEBUG - qprintf("glob0:", patbuf); -#endif - - if ((err = glob1(patbuf, pglob, limit)) != 0) - return(err); - - /* - * If there was no match we are going to append the pattern - * if GLOB_NOCHECK was specified or if GLOB_NOMAGIC was specified - * and the pattern did not contain any magic characters - * GLOB_NOMAGIC is there just for compatibility with csh. - */ - if (pglob->gl_pathc == oldpathc && - ((pglob->gl_flags & GLOB_NOCHECK) || - ((pglob->gl_flags & GLOB_NOMAGIC) && - !(pglob->gl_flags & GLOB_MAGCHAR)))) - return(globextend(pattern, pglob, limit)); - else if (!(pglob->gl_flags & GLOB_NOSORT)) - qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, - pglob->gl_pathc - oldpathc, sizeof(char *), compare); - return(0); -} - -static int -compare(p, q) - const void *p, *q; -{ - return(strcmp(*(char **)p, *(char **)q)); -} - -static int -glob1(pattern, pglob, limit) - Char *pattern; - glob_t *pglob; - int *limit; -{ - Char pathbuf[MAXPATHLEN]; - - /* A null pathname is invalid -- POSIX 1003.1 sect. 2.4. */ - if (*pattern == EOS) - return(0); - return(glob2(pathbuf, pathbuf, pathbuf + MAXPATHLEN - 1, - pattern, pglob, limit)); -} - -/* - * The functions glob2 and glob3 are mutually recursive; there is one level - * of recursion for each segment in the pattern that contains one or more - * meta characters. - */ -static int -glob2(pathbuf, pathend, pathend_last, pattern, pglob, limit) - Char *pathbuf, *pathend, *pathend_last, *pattern; - glob_t *pglob; - int *limit; -{ - struct stat sb; - Char *p, *q; - int anymeta; - - /* - * Loop over pattern segments until end of pattern or until - * segment with meta character found. - */ - for (anymeta = 0;;) { - if (*pattern == EOS) { /* End of pattern? */ - *pathend = EOS; - if (g_lstat(pathbuf, &sb, pglob)) - return(0); - - if (((pglob->gl_flags & GLOB_MARK) && - pathend[-1] != SEP) && (S_ISDIR(sb.st_mode) - || (S_ISLNK(sb.st_mode) && - (g_stat(pathbuf, &sb, pglob) == 0) && - S_ISDIR(sb.st_mode)))) { - if (pathend + 1 > pathend_last) - return (1); - *pathend++ = SEP; - *pathend = EOS; - } - ++pglob->gl_matchc; - return(globextend(pathbuf, pglob, limit)); - } - - /* Find end of next segment, copy tentatively to pathend. */ - q = pathend; - p = pattern; - while (*p != EOS && *p != SEP) { - if (ismeta(*p)) - anymeta = 1; - if (q + 1 > pathend_last) - return (1); - *q++ = *p++; - } - - if (!anymeta) { /* No expansion, do next segment. */ - pathend = q; - pattern = p; - while (*pattern == SEP) { - if (pathend + 1 > pathend_last) - return (1); - *pathend++ = *pattern++; - } - } else /* Need expansion, recurse. */ - return(glob3(pathbuf, pathend, pathend_last, pattern, p, - pglob, limit)); - } - /* NOTREACHED */ -} - -static int -glob3(pathbuf, pathend, pathend_last, pattern, restpattern, pglob, limit) - Char *pathbuf, *pathend, *pathend_last, *pattern, *restpattern; - glob_t *pglob; - int *limit; -{ - struct dirent *dp; - DIR *dirp; - int err; - char buf[MAXPATHLEN]; - - /* - * The readdirfunc declaration can't be prototyped, because it is - * assigned, below, to two functions which are prototyped in glob.h - * and dirent.h as taking pointers to differently typed opaque - * structures. - */ - struct dirent *(*readdirfunc)(); - - if (pathend > pathend_last) - return (1); - *pathend = EOS; - errno = 0; - - if ((dirp = g_opendir(pathbuf, pglob)) == NULL) { - /* TODO: don't call for ENOENT or ENOTDIR? */ - if (pglob->gl_errfunc) { - if (g_Ctoc(pathbuf, buf, sizeof(buf))) - return (GLOB_ABEND); - if (pglob->gl_errfunc(buf, errno) || - pglob->gl_flags & GLOB_ERR) - return (GLOB_ABEND); - } - return(0); - } - - err = 0; - - /* Search directory for matching names. */ - if (pglob->gl_flags & GLOB_ALTDIRFUNC) - readdirfunc = pglob->gl_readdir; - else - readdirfunc = readdir; - while ((dp = (*readdirfunc)(dirp))) { - u_char *sc; - Char *dc; - - /* Initial DOT must be matched literally. */ - if (dp->d_name[0] == DOT && *pattern != DOT) - continue; - dc = pathend; - sc = (u_char *) dp->d_name; - while (dc < pathend_last && (*dc++ = *sc++) != EOS) - ; - if (!match(pathend, pattern, restpattern)) { - *pathend = EOS; - continue; - } - err = glob2(pathbuf, --dc, pathend_last, restpattern, - pglob, limit); - if (err) - break; - } - - if (pglob->gl_flags & GLOB_ALTDIRFUNC) - (*pglob->gl_closedir)(dirp); - else - closedir(dirp); - return(err); -} - - -/* - * Extend the gl_pathv member of a glob_t structure to accomodate a new item, - * add the new item, and update gl_pathc. - * - * This assumes the BSD realloc, which only copies the block when its size - * crosses a power-of-two boundary; for v7 realloc, this would cause quadratic - * behavior. - * - * Return 0 if new item added, error code if memory couldn't be allocated. - * - * Invariant of the glob_t structure: - * Either gl_pathc is zero and gl_pathv is NULL; or gl_pathc > 0 and - * gl_pathv points to (gl_offs + gl_pathc + 1) items. - */ -static int -globextend(path, pglob, limit) - const Char *path; - glob_t *pglob; - int *limit; -{ - char **pathv; - int i; - u_int newsize, len; - char *copy; - const Char *p; - - if (*limit && pglob->gl_pathc > *limit) { - errno = 0; - return (GLOB_NOSPACE); - } - - newsize = sizeof(*pathv) * (2 + pglob->gl_pathc + pglob->gl_offs); - pathv = pglob->gl_pathv ? - realloc((char *)pglob->gl_pathv, newsize) : - malloc(newsize); - if (pathv == NULL) { - if (pglob->gl_pathv) { - free(pglob->gl_pathv); - pglob->gl_pathv = NULL; - } - return(GLOB_NOSPACE); - } - - if (pglob->gl_pathv == NULL && pglob->gl_offs > 0) { - /* first time around -- clear initial gl_offs items */ - pathv += pglob->gl_offs; - for (i = pglob->gl_offs; --i >= 0; ) - *--pathv = NULL; - } - pglob->gl_pathv = pathv; - - for (p = path; *p++;) - continue; - len = (size_t)(p - path); - if ((copy = malloc(len)) != NULL) { - if (g_Ctoc(path, copy, len)) { - free(copy); - return (GLOB_NOSPACE); - } - pathv[pglob->gl_offs + pglob->gl_pathc++] = copy; - } - pathv[pglob->gl_offs + pglob->gl_pathc] = NULL; - return(copy == NULL ? GLOB_NOSPACE : 0); -} - -/* - * pattern matching function for filenames. Each occurrence of the * - * pattern causes a recursion level. - */ -static int -match(name, pat, patend) - Char *name, *pat, *patend; -{ - int ok, negate_range; - Char c, k; - - while (pat < patend) { - c = *pat++; - switch (c & M_MASK) { - case M_ALL: - if (pat == patend) - return(1); - do - if (match(name, pat, patend)) - return(1); - while (*name++ != EOS); - return(0); - case M_ONE: - if (*name++ == EOS) - return(0); - break; - case M_SET: - ok = 0; - if ((k = *name++) == EOS) - return(0); - if ((negate_range = ((*pat & M_MASK) == M_NOT)) != EOS) - ++pat; - while (((c = *pat++) & M_MASK) != M_END) - if ((*pat & M_MASK) == M_RNG) { - if (__collate_load_error ? - CHAR(c) <= CHAR(k) && CHAR(k) <= CHAR(pat[1]) : - __collate_range_cmp(CHAR(c), CHAR(k)) <= 0 - && __collate_range_cmp(CHAR(k), CHAR(pat[1])) <= 0 - ) - ok = 1; - pat += 2; - } else if (c == k) - ok = 1; - if (ok == negate_range) - return(0); - break; - default: - if (*name++ != c) - return(0); - break; - } - } - return(*name == EOS); -} - -/* Free allocated data belonging to a glob_t structure. */ -void -globfree(pglob) - glob_t *pglob; -{ - int i; - char **pp; - - if (pglob->gl_pathv != NULL) { - pp = pglob->gl_pathv + pglob->gl_offs; - for (i = pglob->gl_pathc; i--; ++pp) - if (*pp) - free(*pp); - free(pglob->gl_pathv); - pglob->gl_pathv = NULL; - } -} - -static DIR * -g_opendir(str, pglob) - Char *str; - glob_t *pglob; -{ - char buf[MAXPATHLEN]; - - if (!*str) - strcpy(buf, "."); - else { - if (g_Ctoc(str, buf, sizeof(buf))) - return (NULL); - } - - if (pglob->gl_flags & GLOB_ALTDIRFUNC) - return((*pglob->gl_opendir)(buf)); - - return(opendir(buf)); -} - -static int -g_lstat(fn, sb, pglob) - Char *fn; - struct stat *sb; - glob_t *pglob; -{ - char buf[MAXPATHLEN]; - - if (g_Ctoc(fn, buf, sizeof(buf))) { - errno = ENAMETOOLONG; - return (-1); - } - if (pglob->gl_flags & GLOB_ALTDIRFUNC) - return((*pglob->gl_lstat)(buf, sb)); - return(lstat(buf, sb)); -} - -static int -g_stat(fn, sb, pglob) - Char *fn; - struct stat *sb; - glob_t *pglob; -{ - char buf[MAXPATHLEN]; - - if (g_Ctoc(fn, buf, sizeof(buf))) { - errno = ENAMETOOLONG; - return (-1); - } - if (pglob->gl_flags & GLOB_ALTDIRFUNC) - return((*pglob->gl_stat)(buf, sb)); - return(stat(buf, sb)); -} - -static Char * -g_strchr(str, ch) - Char *str; - int ch; -{ - do { - if (*str == ch) - return (str); - } while (*str++); - return (NULL); -} - -static int -g_Ctoc(str, buf, len) - const Char *str; - char *buf; - u_int len; -{ - - while (len--) { - if ((*buf++ = *str++) == '\0') - return (0); - } - return (1); -} - -#ifdef DEBUG -static void -qprintf(str, s) - const char *str; - Char *s; -{ - Char *p; - - (void)printf("%s:\n", str); - for (p = s; *p; p++) - (void)printf("%c", CHAR(*p)); - (void)printf("\n"); - for (p = s; *p; p++) - (void)printf("%c", *p & M_PROTECT ? '"' : ' '); - (void)printf("\n"); - for (p = s; *p; p++) - (void)printf("%c", ismeta(*p) ? '_' : ' '); - (void)printf("\n"); -} -#endif -#endif /* !_NO_GLOB */ diff --git a/lib/posix/isatty.c b/lib/posix/isatty.c deleted file mode 100644 index 8a6740a..0000000 --- a/lib/posix/isatty.c +++ /dev/null @@ -1,10 +0,0 @@ -/* isatty.c */ - -#include -#include - -int -isatty (int fd) -{ - return _isatty (fd); -} diff --git a/lib/posix/namespace.h b/lib/posix/namespace.h deleted file mode 100644 index 807349b..0000000 --- a/lib/posix/namespace.h +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (c) 2001 Daniel Eischen . - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: src/lib/libc/include/namespace.h,v 1.9 2002/03/29 22:43:42 markm Exp $ - */ - -#ifndef _NAMESPACE_H_ -#define _NAMESPACE_H_ - -/* - * Adjust names so that headers declare "hidden" names. - */ - -/* - * ISO C (C90) section. Most names in libc aren't in ISO C, so they - * should be here. Most aren't here... - */ -#define err _err -#define warn _warn - -/* - * Prototypes for syscalls/functions that need to be overridden - * in libc_r/libpthread. - */ -#define accept _accept -#define __acl_aclcheck_fd ___acl_aclcheck_fd -#define __acl_delete_fd ___acl_delete_fd -#define __acl_get_fd ___acl_get_fd -#define __acl_set_fd ___acl_set_fd -#define bind _bind -#define __cap_get_fd ___cap_get_fd -#define __cap_set_fd ___cap_set_fd -#define close _close -#define connect _connect -#define dup _dup -#define dup2 _dup2 -#define execve _execve -#define fcntl _fcntl -/*#define flock _flock */ -#define fstat _fstat -#define fstatfs _fstatfs -#define fsync _fsync -#define getdirentries _getdirentries -#define getlogin _getlogin -#define getpeername _getpeername -#define getprogname _getprogname -#define getsockname _getsockname -#define getsockopt _getsockopt -#define ioctl _ioctl -/* #define kevent _kevent */ -#define listen _listen -#define nanosleep _nanosleep -#define open _open -#define poll _poll -#define pthread_cond_signal _pthread_cond_signal -#define pthread_cond_wait _pthread_cond_wait -#define pthread_cond_init _pthread_cond_init -#define pthread_exit _pthread_exit -#define pthread_getspecific _pthread_getspecific -#define pthread_key_create _pthread_key_create -#define pthread_key_delete _pthread_key_delete -#define pthread_main_np _pthread_main_np -#define pthread_mutex_destroy _pthread_mutex_destroy -#define pthread_mutex_init _pthread_mutex_init -#define pthread_mutex_lock _pthread_mutex_lock -#define pthread_mutex_trylock _pthread_mutex_trylock -#define pthread_mutex_unlock _pthread_mutex_unlock -#define pthread_mutexattr_init _pthread_mutexattr_init -#define pthread_mutexattr_destroy _pthread_mutexattr_destroy -#define pthread_mutexattr_settype _pthread_mutexattr_settype -#define pthread_once _pthread_once -#define pthread_rwlock_init _pthread_rwlock_init -#define pthread_rwlock_rdlock _pthread_rwlock_rdlock -#define pthread_rwlock_wrlock _pthread_rwlock_wrlock -#define pthread_rwlock_unlock _pthread_rwlock_unlock -#define pthread_self _pthread_self -#define pthread_setspecific _pthread_setspecific -#define pthread_sigmask _pthread_sigmask -#define read _read -#define readv _readv -#define recvfrom _recvfrom -#define recvmsg _recvmsg -#define select _select -#define sendmsg _sendmsg -#define sendto _sendto -#define setsockopt _setsockopt -/*#define sigaction _sigaction*/ -#define sigprocmask _sigprocmask -#define sigsuspend _sigsuspend -#define socket _socket -#define socketpair _socketpair -#define wait4 _wait4 -/*#define write _write*/ -#define writev _writev - - -/* - * Other hidden syscalls/functions that libc_r needs to override - * but are not used internally by libc. - * - * XXX - When modifying libc to use one of the following, remove - * the prototype from below and place it in the list above. - */ -#if 0 -#define creat _creat -#define fchflags _fchflags -#define fchmod _fchmod -#define fpathconf _fpathconf -#define msync _msync -#define nfssvc _nfssvc -#define pause _pause -#define pthread_rwlock_destroy _pthread_rwlock_destroy -#define pthread_rwlock_tryrdlock _pthread_rwlock_tryrdlock -#define pthread_rwlock_trywrlock _pthread_rwlock_trywrlock -#define pthread_rwlockattr_init _pthread_rwlockattr_init -#define pthread_rwlockattr_destroy _pthread_rwlockattr_destroy -#define sched_yield _sched_yield -#define sendfile _sendfile -#define shutdown _shutdown -#define sigaltstack _sigaltstack -#define sigpending _sigpending -#define sigreturn _sigreturn -#define sigsetmask _sigsetmask -#define sleep _sleep -#define system _system -#define tcdrain _tcdrain -#define wait _wait -#define waitpid _waitpid -#endif - -#endif /* _NAMESPACE_H_ */ diff --git a/lib/posix/nftw.c b/lib/posix/nftw.c deleted file mode 100644 index c45cc8f..0000000 --- a/lib/posix/nftw.c +++ /dev/null @@ -1,156 +0,0 @@ -/* -* Copyright © 2005-2020 Rich Felker, et al. -* -* Permission is hereby granted, free of charge, to any person obtaining -* a copy of this software and associated documentation files (the -* "Software"), to deal in the Software without restriction, including -* without limitation the rights to use, copy, modify, merge, publish, -* distribute, sublicense, and/or sell copies of the Software, and to -* permit persons to whom the Software is furnished to do so, subject to -* the following conditions: -* -* The above copyright notice and this permission notice shall be -* included in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -/* Pull in _STDIO_WITH_THREAD_CANCELLATION_SUPPORT */ -#include "../stdio/local.h" - -struct history -{ - struct history *chain; - dev_t dev; - ino_t ino; - int level; - int base; -}; - -#undef dirfd -#define dirfd(d) (*(int *)d) - -static int do_nftw(char *path, int (*fn)(const char *, const struct stat *, int, struct FTW *), int fd_limit, int flags, struct history *h) -{ - size_t l = strlen(path), j = l && path[l-1]=='/' ? l-1 : l; - struct stat st; - struct history new; - int type; - int r; - struct FTW lev; - - if ((flags & FTW_PHYS) ? lstat(path, &st) : stat(path, &st) < 0) { - if (!(flags & FTW_PHYS) && errno==ENOENT && !lstat(path, &st)) - type = FTW_SLN; - else if (errno != EACCES) return -1; - else type = FTW_NS; - } else if (S_ISDIR(st.st_mode)) { - if (access(path, R_OK) < 0) type = FTW_DNR; - else if (flags & FTW_DEPTH) type = FTW_DP; - else type = FTW_D; - } else if (S_ISLNK(st.st_mode)) { - if (flags & FTW_PHYS) type = FTW_SL; - else type = FTW_SLN; - } else { - type = FTW_F; - } - - if ((flags & FTW_MOUNT) && h && st.st_dev != h->dev) - return 0; - - new.chain = h; - new.dev = st.st_dev; - new.ino = st.st_ino; - new.level = h ? h->level+1 : 0; - new.base = j+1; - - lev.level = new.level; - if (h) { - lev.base = h->base; - } else { - size_t k; - for (k=j; k && path[k]=='/'; k--); - for (; k && path[k-1]!='/'; k--); - lev.base = k; - } - - if (!(flags & FTW_DEPTH) && (r=fn(path, &st, type, &lev))) - return r; - - for (; h; h = h->chain) - if (h->dev == st.st_dev && h->ino == st.st_ino) - return 0; - - if ((type == FTW_D || type == FTW_DP) && fd_limit) { - DIR *d = opendir(path); - if (d) { - struct dirent *de; - while ((de = readdir(d))) { - if (de->d_name[0] == '.' - && (!de->d_name[1] - || (de->d_name[1]=='.' - && !de->d_name[2]))) continue; - if (strlen(de->d_name) >= PATH_MAX-l) { - errno = ENAMETOOLONG; - closedir(d); - return -1; - } - path[j]='/'; - strcpy(path+j+1, de->d_name); - if ((r=do_nftw(path, fn, fd_limit-1, flags, &new))) { - closedir(d); - return r; - } - } - closedir(d); - } else if (errno != EACCES) { - return -1; - } - } - - path[l] = 0; - if ((flags & FTW_DEPTH) && (r=fn(path, &st, type, &lev))) - return r; - - return 0; -} - -int nftw(const char *path, int (*fn)(const char *, const struct stat *, int, struct FTW *), int fd_limit, int flags) -{ - int r, cs; - size_t l; - char pathbuf[PATH_MAX+1]; - - if (fd_limit <= 0) return 0; - - l = strlen(path); - if (l > PATH_MAX) { - errno = ENAMETOOLONG; - return -1; - } - memcpy(pathbuf, path, l+1); - -#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT - pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs); -#endif - r = do_nftw(pathbuf, fn, fd_limit, flags, NULL); -#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT - pthread_setcancelstate(cs, 0); -#endif - return r; -} - diff --git a/lib/posix/opendir.c b/lib/posix/opendir.c deleted file mode 100644 index 4dbad1a..0000000 --- a/lib/posix/opendir.c +++ /dev/null @@ -1,99 +0,0 @@ -#ifndef HAVE_OPENDIR - -/* - * Copyright (c) 1983 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)opendir.c 5.11 (Berkeley) 2/23/91"; -#endif /* LIBC_SCCS and not lint */ - -#include -#include -#include -#include -#include - -static DIR * -_opendir_common(int fd) -{ - DIR *dirp; - - if ((dirp = (DIR *)malloc(sizeof(DIR))) == NULL) { - close (fd); - return NULL; - } - /* - * If CLSIZE is an exact multiple of DIRBLKSIZ, use a CLSIZE - * buffer that it cluster boundary aligned. - * Hopefully this can be a big win someday by allowing page trades - * to user space to be done by getdirentries() - */ - dirp->dd_buf = malloc (512); - dirp->dd_len = 512; - - if (dirp->dd_buf == NULL) { - free (dirp); - close (fd); - return NULL; - } - dirp->dd_fd = fd; - dirp->dd_loc = 0; - dirp->dd_seek = 0; - /* - * Set up seek point for rewinddir. - */ - -#ifdef HAVE_DD_LOCK - /* if we have a locking mechanism, initialize it */ - __lock_init_recursive(dirp->dd_lock); -#endif - - return dirp; -} - -DIR * -opendir(const char *name) -{ - int fd; - - if ((fd = open(name, O_RDONLY | O_DIRECTORY | O_CLOEXEC)) == -1) - return (NULL); - return (_opendir_common(fd)); -} - -DIR * -fdopendir(int fd) -{ - - if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) - return (NULL); - return (_opendir_common(fd)); -} - -#endif /* ! HAVE_OPENDIR */ diff --git a/lib/posix/popen.c b/lib/posix/popen.c deleted file mode 100644 index 04aca4c..0000000 --- a/lib/posix/popen.c +++ /dev/null @@ -1,228 +0,0 @@ -/* $NetBSD: popen.c,v 1.11 1995/06/16 07:05:33 jtc Exp $ */ - -/* - * Copyright (c) 1988, 1993, 2006 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software written by Ken Arnold and - * published in UNIX Review, Vol. 6, No. 8. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>---tie a stream to a command string - -INDEX - popen -INDEX - pclose - -SYNOPSIS - #include - FILE *popen(const char *<[s]>, const char *<[mode]>); - - int pclose(FILE *<[f]>); - -DESCRIPTION -Use <> to create a stream to a child process executing a -command string <<*<[s]>>> as processed by <> on your system. -The argument <[mode]> must start with either `<>', where the stream -reads from the child's <>, or `<>', where the stream writes -to the child's <>. As an extension, <[mode]> may also contain -`<>' to set the close-on-exec bit of the parent's file descriptor. -The stream created by <> must be closed by <> to avoid -resource leaks. - -Streams created by prior calls to <> are not visible in -subsequent <> children, regardless of the close-on-exec bit. - -Use ``<>'' to test whether your system has <> -available. - -RETURNS -<> returns a file stream opened with the specified <[mode]>, -or <> if a child process could not be created. <> -returns -1 if the stream was not created by <> or if the -application used <> or similar to steal the status; otherwise -it returns the exit status of the child which can be interpreted -in the same manner as a status obtained by <>. - -PORTABILITY -POSIX.2 requires <> and <>, but only specifies a mode -of just <> or <>. Where <> is found is left unspecified. - -Supporting OS subroutines required: <<_exit>>, <<_execve>>, <<_fork_r>>, -<<_wait_r>>, <>, <>, <>. -*/ - -#ifndef _NO_POPEN - -#if defined(LIBC_SCCS) && !defined(lint) -#if 0 -static char sccsid[] = "@(#)popen.c 8.1 (Berkeley) 6/4/93"; -#else -static char rcsid[] = "$NetBSD: popen.c,v 1.11 1995/06/16 07:05:33 jtc Exp $"; -#endif -#endif /* LIBC_SCCS and not lint */ - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -static struct pid { - struct pid *next; - FILE *fp; - pid_t pid; -} *pidlist; - -FILE * -popen (const char *program, - const char *type) -{ - struct pid *cur; - FILE *iop; - int pdes[2], pid; - - if ((*type != 'r' && *type != 'w') - || (type[1] -#ifdef HAVE_FCNTL - && (type[2] || (type[1] != 'e')) -#endif - )) { - errno = EINVAL; - return (NULL); - } - - if ((cur = malloc(sizeof(struct pid))) == NULL) - return (NULL); - - if (pipe(pdes) < 0) { - free(cur); - return (NULL); - } - - switch (pid = vfork()) { - case -1: /* Error. */ - (void)close(pdes[0]); - (void)close(pdes[1]); - free(cur); - return (NULL); - /* NOTREACHED */ - case 0: /* Child. */ - if (*type == 'r') { - if (pdes[1] != STDOUT_FILENO) { - (void)dup2(pdes[1], STDOUT_FILENO); - (void)close(pdes[1]); - } - if (pdes[0] != STDOUT_FILENO) { - (void) close(pdes[0]); - } - } else { - if (pdes[0] != STDIN_FILENO) { - (void)dup2(pdes[0], STDIN_FILENO); - (void)close(pdes[0]); - } - (void)close(pdes[1]); - } - /* Close all fd's created by prior popen. */ - for (cur = pidlist; cur; cur = cur->next) - (void)close (fileno (cur->fp)); - execl(_PATH_BSHELL, "sh", "-c", program, NULL); - _exit(127); - /* NOTREACHED */ - } - - /* Parent; assume fdopen can't fail. */ - if (*type == 'r') { - iop = fdopen(pdes[0], type); - (void)close(pdes[1]); - } else { - iop = fdopen(pdes[1], type); - (void)close(pdes[0]); - } - -#ifdef HAVE_FCNTL - /* Mark pipe cloexec if requested. */ - if (type[1] == 'e') - fcntl (fileno (iop), F_SETFD, - fcntl (fileno (iop), F_GETFD, 0) | FD_CLOEXEC); -#endif /* HAVE_FCNTL */ - - /* Link into list of file descriptors. */ - cur->fp = iop; - cur->pid = pid; - cur->next = pidlist; - pidlist = cur; - - return (iop); -} - -/* - * pclose -- - * Pclose returns -1 if stream is not associated with a `popened' command, - * if already `pclosed', or waitpid returns an error. - */ -int -pclose (FILE *iop) -{ - register struct pid *cur, *last; - int pstat; - pid_t pid; - - (void)fclose(iop); - - /* Find the appropriate file pointer. */ - for (last = NULL, cur = pidlist; cur; last = cur, cur = cur->next) - if (cur->fp == iop) - break; - if (cur == NULL) - return (-1); - - do { - pid = waitpid(cur->pid, &pstat, 0); - } while (pid == -1 && errno == EINTR); - - /* Remove the entry from the linked list. */ - if (last == NULL) - pidlist = cur->next; - else - last->next = cur->next; - free(cur); - - return (pid == -1 ? -1 : pstat); -} - -#endif /* !_NO_POPEN */ diff --git a/lib/posix/posix.tex b/lib/posix/posix.tex deleted file mode 100644 index 6fb662b..0000000 --- a/lib/posix/posix.tex +++ /dev/null @@ -1,16 +0,0 @@ -@node Posix -@chapter Posix Functions - -This chapter groups several utility functions specified by POSIX, but -not by C. Each function documents which header to use. - -@menu -* popen:: Create a stream tied to a child process -* posix_spawn:: Spawn a process -@end menu - -@page -@include posix/popen.def - -@page -@include posix/posix_spawn.def diff --git a/lib/posix/posix_spawn.c b/lib/posix/posix_spawn.c deleted file mode 100644 index 6fd6159..0000000 --- a/lib/posix/posix_spawn.c +++ /dev/null @@ -1,710 +0,0 @@ -/*- - * Copyright (c) 2008 Ed Schouten - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>---spawn a process - -INDEX - posix_spawn -INDEX - posix_spawnp - -SYNOPSIS - #include - - int posix_spawn(pid_t *<[pid]>, const char *<[path]>, - const posix_spawn_file_actions_t *<[file_actions]>, - const posix_spawnattr_t *<[attrp]>, - char *const <[argv]>[], char *const <[envp]>[]); - int posix_spawnp(pid_t *<[pid]>, const char *<[file]>, - const posix_spawn_file_actions_t *<[file_actions]>, - const posix_spawnattr_t *<[attrp]>, - char *const <[argv]>[], char *const <[envp]>[]); - -DESCRIPTION -Use <> and <> to create a new child process -from the specified process image file. <> is the argument count -and <> is an array of argument strings passed to the new program. -<> is an array of stings, which are passed as environment to the -new program. - -The <> argument to <> identifies the new process -image file to execute. The <> argument to <> is -used to construct a pathname that identifies the new process image -file by duplicating the actions of the shell in searching for an -executable file if the specified filename does not contain a `<>' -character. The <> is sought in the colon-separated list of -directory pathnames specified in the <> environment variable. - -The file descriptors remain open across <> and -<> except for those marked as close-on-exec. The open -file descriptors in the child process can be modified by the spawn file -actions object pointed to by <>. - -The spawn attributes object type pointed to by <> argument -may contain any of the attributes defined in <>. - -RETURNS -<> and <> return the process ID of the newly -spawned child process in the variable pointed by a non-NULL <<*<[pid]>>> -argument and zero as the function return value upon successful -completion. Otherwise, <> and <> return an -error number as the function return value to indicate the error; the -value stored into the variable pointed to by a non-NULL <<*<[pid]>>> -argument is unspecified. - -PORTABILITY -POSIX.1-2008 requires <> and <>. - -Supporting OS subroutines required: <<_close>>, <>, <<_fcntl>>, -<<_execve>>, <>, <<_exit>>, <<_open>>, <>, -<>, <>, <>, -<>, <>, <>, <>, <>. -*/ - -#ifndef _NO_POSIX_SPAWN - -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -/* Only deal with a pointer to environ, to work around subtle bugs with shared - libraries and/or small data systems where the user declares his own - 'environ'. */ -static char ***p_environ = &environ; - -struct __posix_spawnattr { - short sa_flags; - pid_t sa_pgroup; - struct sched_param sa_schedparam; - int sa_schedpolicy; - sigset_t sa_sigdefault; - sigset_t sa_sigmask; -}; - -struct __posix_spawn_file_actions { - STAILQ_HEAD(, __posix_spawn_file_actions_entry) fa_list; -}; - -typedef struct __posix_spawn_file_actions_entry { - STAILQ_ENTRY(__posix_spawn_file_actions_entry) fae_list; - enum { - FAE_OPEN, - FAE_DUP2, - FAE_CLOSE, - FAE_CHDIR, - FAE_FCHDIR - } fae_action; - - int fae_fildes; - union { - struct { - char *path; -#define fae_path fae_data.open.path - int oflag; -#define fae_oflag fae_data.open.oflag - mode_t mode; -#define fae_mode fae_data.open.mode - } open; - struct { - int newfildes; -#define fae_newfildes fae_data.dup2.newfildes - } dup2; - char *dir; -#define fae_dir fae_data.dir - int dirfd; -#define fae_dirfd fae_data.dirfd - } fae_data; -} posix_spawn_file_actions_entry_t; - -/* - * Spawn routines - */ - -static int -process_spawnattr(const posix_spawnattr_t sa) -{ - struct sigaction sigact = { .sa_flags = 0, .sa_handler = SIG_DFL }; - int i; - - /* - * POSIX doesn't really describe in which order everything - * should be set. We'll just set them in the order in which they - * are mentioned. - */ - - /* Set process group */ - if (sa->sa_flags & POSIX_SPAWN_SETPGROUP) { - if (setpgid(0, sa->sa_pgroup) != 0) - return (errno); - } - - /* Set scheduler policy */ - if (sa->sa_flags & POSIX_SPAWN_SETSCHEDULER) { - if (sched_setscheduler(0, sa->sa_schedpolicy, - &sa->sa_schedparam) != 0) - return (errno); - } else if (sa->sa_flags & POSIX_SPAWN_SETSCHEDPARAM) { - if (sched_setparam(0, &sa->sa_schedparam) != 0) - return (errno); - } - - /* Reset user ID's */ - if (sa->sa_flags & POSIX_SPAWN_RESETIDS) { - if (setegid(getgid()) != 0) - return (errno); - if (seteuid(getuid()) != 0) - return (errno); - } - - /* Set signal masks/defaults */ - if (sa->sa_flags & POSIX_SPAWN_SETSIGMASK) { - sigprocmask(SIG_SETMASK, &sa->sa_sigmask, NULL); - } - - if (sa->sa_flags & POSIX_SPAWN_SETSIGDEF) { - for (i = 1; i < NSIG; i++) { - if (sigismember(&sa->sa_sigdefault, i)) - if (sigaction(i, &sigact, NULL) != 0) - return (errno); - } - } - - return (0); -} - -static int -process_file_actions_entry(posix_spawn_file_actions_entry_t *fae) -{ - int fd; - - switch (fae->fae_action) { - case FAE_OPEN: - /* Perform an open(), make it use the right fd */ - fd = _open(fae->fae_path, fae->fae_oflag, fae->fae_mode); - if (fd < 0) - return (errno); - if (fd != fae->fae_fildes) { - if (dup2(fd, fae->fae_fildes) == -1) - return (errno); - if (_close(fd) != 0) { - if (errno == EBADF) - return (EBADF); - } - } -#ifdef HAVE_FCNTL - if (_fcntl(fae->fae_fildes, F_SETFD, 0) == -1) - return (errno); -#endif /* HAVE_FCNTL */ - break; - case FAE_DUP2: - /* Perform a dup2() */ - if (dup2(fae->fae_fildes, fae->fae_newfildes) == -1) - return (errno); -#ifdef HAVE_FCNTL - if (_fcntl(fae->fae_newfildes, F_SETFD, 0) == -1) - return (errno); -#endif /* HAVE_FCNTL */ - break; - case FAE_CLOSE: - /* Perform a close(), do not fail if already closed */ - (void)_close(fae->fae_fildes); - break; -#ifdef HAVE_CHDIR - case FAE_CHDIR: - /* Perform a chdir. */ - if (chdir (fae->fae_dir) == -1) - return (errno); - break; -#endif -#ifdef HAVE_FCHDIR - case FAE_FCHDIR: - /* Perform a chdir. */ - if (fchdir (fae->fae_dirfd) == -1) - return (errno); - break; - } -#endif - return (0); -} - -static int -process_file_actions(const posix_spawn_file_actions_t fa) -{ - posix_spawn_file_actions_entry_t *fae; - int error; - - /* Replay all file descriptor modifications */ - STAILQ_FOREACH(fae, &fa->fa_list, fae_list) { - error = process_file_actions_entry(fae); - if (error) - return (error); - } - return (0); -} - -#ifdef __CYGWIN__ -/* Cygwin's vfork does not follow BSD vfork semantics. Rather it's equivalent - to fork. While that's POSIX compliant, the below FreeBSD implementation - relying on BSD vfork semantics doesn't work as expected on Cygwin. The - following Cygwin-specific code handles the synchronization FreeBSD gets - for free by using vfork. */ - -extern int __posix_spawn_sem_create (void **semp); -extern void __posix_spawn_sem_release (void *sem, int error); -extern int __posix_spawn_sem_wait_and_close (void *sem, void *proc); -extern int __posix_spawn_fork (void **proc); -extern int __posix_spawn_execvpe (const char *path, char * const *argv, - char *const *envp, void *sem, - int use_env_path); - - -static int -do_posix_spawn(pid_t *pid, const char *path, - const posix_spawn_file_actions_t *fa, - const posix_spawnattr_t *sa, - char * const argv[], char * const envp[], int use_env_path) -{ - int error; - void *sem, *proc; - pid_t p; - - error = __posix_spawn_sem_create(&sem); - if (error) - return error; - - p = __posix_spawn_fork(&proc); - switch (p) { - case -1: - return (errno); - case 0: - if (sa != NULL) { - error = process_spawnattr(*sa); - if (error) { - __posix_spawn_sem_release(sem, error); - _exit(127); - } - } - if (fa != NULL) { - error = process_file_actions(*fa); - if (error) { - __posix_spawn_sem_release(sem, error); - _exit(127); - } - } - __posix_spawn_execvpe(path, argv, - envp != NULL ? envp : *p_environ, - sem, use_env_path); - _exit(127); - default: - error = __posix_spawn_sem_wait_and_close(sem, proc); - if (error != 0) - waitpid(p, NULL, WNOHANG); - else if (pid != NULL) - *pid = p; - return (error); - } -} -#else -static int -do_posix_spawn(pid_t *pid, const char *path, - const posix_spawn_file_actions_t *fa, - const posix_spawnattr_t *sa, - char * const argv[], char * const envp[], int use_env_path) -{ - pid_t p; - volatile int error = 0; - - p = vfork(); - switch (p) { - case -1: - return (errno); - case 0: - if (sa != NULL) { - error = process_spawnattr(*sa); - if (error) - _exit(127); - } - if (fa != NULL) { - error = process_file_actions(*fa); - if (error) - _exit(127); - } - if (use_env_path) - execvpe(path, argv, envp != NULL ? envp : *p_environ); - else - _execve(path, argv, envp != NULL ? envp : *p_environ); - error = errno; - _exit(127); - default: - if (error != 0) - waitpid(p, NULL, WNOHANG); - else if (pid != NULL) - *pid = p; - return (error); - } -} -#endif - -int -posix_spawn (pid_t *pid, - const char *path, - const posix_spawn_file_actions_t *fa, - const posix_spawnattr_t *sa, - char * const argv[], - char * const envp[]) -{ - return do_posix_spawn(pid, path, fa, sa, argv, envp, 0); -} - -int -posix_spawnp (pid_t *pid, - const char *path, - const posix_spawn_file_actions_t *fa, - const posix_spawnattr_t *sa, - char * const argv[], - char * const envp[]) -{ - return do_posix_spawn(pid, path, fa, sa, argv, envp, 1); -} - -/* - * File descriptor actions - */ - -int -posix_spawn_file_actions_init (posix_spawn_file_actions_t *ret) -{ - posix_spawn_file_actions_t fa; - - fa = malloc(sizeof(struct __posix_spawn_file_actions)); - if (fa == NULL) - return (-1); - - STAILQ_INIT(&fa->fa_list); - *ret = fa; - return (0); -} - -int -posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *fa) -{ - posix_spawn_file_actions_entry_t *fae; - - while ((fae = STAILQ_FIRST(&(*fa)->fa_list)) != NULL) { - /* Remove file action entry from the queue */ - STAILQ_REMOVE_HEAD(&(*fa)->fa_list, fae_list); - - /* Deallocate file action entry */ - switch (fae->fae_action) { - case FAE_OPEN: - free(fae->fae_path); - break; -#ifdef HAVE_CHDIR - case FAE_CHDIR: - free(fae->fae_dir); - break; -#endif - default: - break; - } - free(fae); - } - - free(*fa); - return (0); -} - -int -posix_spawn_file_actions_addopen (posix_spawn_file_actions_t * __restrict fa, - int fildes, - const char * __restrict path, - int oflag, - mode_t mode) -{ - posix_spawn_file_actions_entry_t *fae; - int error; - - if (fildes < 0) - return (EBADF); - - /* Allocate object */ - fae = malloc(sizeof(posix_spawn_file_actions_entry_t)); - if (fae == NULL) - return (errno); - - /* Set values and store in queue */ - fae->fae_action = FAE_OPEN; - fae->fae_path = strdup(path); - if (fae->fae_path == NULL) { - error = errno; - free(fae); - return (error); - } - fae->fae_fildes = fildes; - fae->fae_oflag = oflag; - fae->fae_mode = mode; - - STAILQ_INSERT_TAIL(&(*fa)->fa_list, fae, fae_list); - return (0); -} - -int -posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *fa, - int fildes, - int newfildes) -{ - posix_spawn_file_actions_entry_t *fae; - - if (fildes < 0 || newfildes < 0) - return (EBADF); - - /* Allocate object */ - fae = malloc(sizeof(posix_spawn_file_actions_entry_t)); - if (fae == NULL) - return (errno); - - /* Set values and store in queue */ - fae->fae_action = FAE_DUP2; - fae->fae_fildes = fildes; - fae->fae_newfildes = newfildes; - - STAILQ_INSERT_TAIL(&(*fa)->fa_list, fae, fae_list); - return (0); -} - -int -posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *fa, - int fildes) -{ - posix_spawn_file_actions_entry_t *fae; - - if (fildes < 0) - return (EBADF); - - /* Allocate object */ - fae = malloc(sizeof(posix_spawn_file_actions_entry_t)); - if (fae == NULL) - return (errno); - - /* Set values and store in queue */ - fae->fae_action = FAE_CLOSE; - fae->fae_fildes = fildes; - - STAILQ_INSERT_TAIL(&(*fa)->fa_list, fae, fae_list); - return (0); -} - -#ifdef HAVE_CHDIR -int -posix_spawn_file_actions_addchdir_np ( - posix_spawn_file_actions_t * __restrict fa, - const char * __restrict path) -{ - posix_spawn_file_actions_entry_t *fae; - int error; - - /* Allocate object */ - fae = malloc(sizeof(posix_spawn_file_actions_entry_t)); - if (fae == NULL) - return (errno); - - /* Set values and store in queue */ - fae->fae_action = FAE_CHDIR; - fae->fae_dir = strdup(path); - if (fae->fae_dir == NULL) { - error = errno; - free(fae); - return (error); - } - - STAILQ_INSERT_TAIL(&(*fa)->fa_list, fae, fae_list); - return (0); -} -#endif - -#ifdef HAVE_FCHDIR -int -posix_spawn_file_actions_addfchdir_np ( - posix_spawn_file_actions_t * __restrict fa, - int fd) -{ - posix_spawn_file_actions_entry_t *fae; - - /* POSIX proposal documents it as implemented in FreeBSD and Musl. - Return EBADF if fd is negative. - https://www.austingroupbugs.net/view.php?id=1208 */ - if (fd < 0) - return EBADF; - - /* Allocate object */ - fae = malloc(sizeof(posix_spawn_file_actions_entry_t)); - if (fae == NULL) - return (errno); - - /* Set values and store in queue */ - fae->fae_action = FAE_FCHDIR; - fae->fae_dirfd = fd; - - STAILQ_INSERT_TAIL(&(*fa)->fa_list, fae, fae_list); - return (0); -} -#endif - -/* - * Spawn attributes - */ - -int -posix_spawnattr_init (posix_spawnattr_t *ret) -{ - posix_spawnattr_t sa; - - sa = calloc(1, sizeof(struct __posix_spawnattr)); - if (sa == NULL) - return (errno); - - /* Set defaults as specified by POSIX, cleared above */ - *ret = sa; - return (0); -} - -int -posix_spawnattr_destroy (posix_spawnattr_t *sa) -{ - free(*sa); - return (0); -} - -int -posix_spawnattr_getflags (const posix_spawnattr_t * __restrict sa, - short * __restrict flags) -{ - *flags = (*sa)->sa_flags; - return (0); -} - -int -posix_spawnattr_getpgroup (const posix_spawnattr_t * __restrict sa, - pid_t * __restrict pgroup) -{ - *pgroup = (*sa)->sa_pgroup; - return (0); -} - -int -posix_spawnattr_getschedparam (const posix_spawnattr_t * __restrict sa, - struct sched_param * __restrict schedparam) -{ - *schedparam = (*sa)->sa_schedparam; - return (0); -} - -int -posix_spawnattr_getschedpolicy (const posix_spawnattr_t * __restrict sa, - int * __restrict schedpolicy) -{ - *schedpolicy = (*sa)->sa_schedpolicy; - return (0); -} - -int -posix_spawnattr_getsigdefault (const posix_spawnattr_t * __restrict sa, - sigset_t * __restrict sigdefault) -{ - *sigdefault = (*sa)->sa_sigdefault; - return (0); -} - -int -posix_spawnattr_getsigmask (const posix_spawnattr_t * __restrict sa, - sigset_t * __restrict sigmask) -{ - *sigmask = (*sa)->sa_sigmask; - return (0); -} - -int -posix_spawnattr_setflags (posix_spawnattr_t *sa, - short flags) -{ - (*sa)->sa_flags = flags; - return (0); -} - -int -posix_spawnattr_setpgroup (posix_spawnattr_t *sa, - pid_t pgroup) -{ - (*sa)->sa_pgroup = pgroup; - return (0); -} - -int -posix_spawnattr_setschedparam (posix_spawnattr_t * __restrict sa, - const struct sched_param * __restrict schedparam) -{ - (*sa)->sa_schedparam = *schedparam; - return (0); -} - -int -posix_spawnattr_setschedpolicy (posix_spawnattr_t *sa, - int schedpolicy) -{ - (*sa)->sa_schedpolicy = schedpolicy; - return (0); -} - -int -posix_spawnattr_setsigdefault (posix_spawnattr_t * __restrict sa, - const sigset_t * __restrict sigdefault) -{ - (*sa)->sa_sigdefault = *sigdefault; - return (0); -} - -int -posix_spawnattr_setsigmask (posix_spawnattr_t * __restrict sa, - const sigset_t * __restrict sigmask) -{ - (*sa)->sa_sigmask = *sigmask; - return (0); -} - -#endif /* !_NO_POSIX_SPAWN */ diff --git a/lib/posix/readdir.c b/lib/posix/readdir.c deleted file mode 100644 index fef83c1..0000000 --- a/lib/posix/readdir.c +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef HAVE_OPENDIR - -/* - * Copyright (c) 1983 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)readdir.c 5.7 (Berkeley) 6/1/90"; -#endif /* LIBC_SCCS and not lint */ - -#include - -extern int getdents (int fd, void *dp, int count); - -/* - * get next entry in a directory. - */ -struct dirent * -readdir (register DIR *dirp) -{ - register struct dirent *dp; - -#ifdef HAVE_DD_LOCK - __lock_acquire_recursive(dirp->dd_lock); -#endif - - for (;;) { - if (dirp->dd_loc == 0) { - dirp->dd_size = getdents (dirp->dd_fd, - dirp->dd_buf, - dirp->dd_len); - - if (dirp->dd_size <= 0) { -#ifdef HAVE_DD_LOCK - __lock_release_recursive(dirp->dd_lock); -#endif - return NULL; - } - } - if (dirp->dd_loc >= dirp->dd_size) { - dirp->dd_loc = 0; - continue; - } - dp = (struct dirent *)(dirp->dd_buf + dirp->dd_loc); - if (dp->d_reclen <= 0 || - dp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc) { -#ifdef HAVE_DD_LOCK - __lock_release_recursive(dirp->dd_lock); -#endif - return NULL; - } - dirp->dd_loc += dp->d_reclen; - if (dp->d_ino == 0) - continue; -#ifdef HAVE_DD_LOCK - __lock_release_recursive(dirp->dd_lock); -#endif - return (dp); - } -} - -#endif /* ! HAVE_OPENDIR */ diff --git a/lib/posix/readdir_r.c b/lib/posix/readdir_r.c deleted file mode 100644 index ac55cc8..0000000 --- a/lib/posix/readdir_r.c +++ /dev/null @@ -1,100 +0,0 @@ -#ifndef HAVE_OPENDIR - -/* - * Copyright (c) 1983 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* this code is modified from readdir.c by Jeff Johnston, June 5, 2002 */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)readdir.c 5.7 (Berkeley) 6/1/90"; -#endif /* LIBC_SCCS and not lint */ - -#include -#include -#include -#include - -extern int getdents (int fd, void *dp, int count); - -/* - * get next entry in a directory using supplied dirent structure. - */ -int -readdir_r (register DIR *__restrict dirp, - struct dirent *__restrict dp, - struct dirent **__restrict dpp) { - -struct dirent *tmpdp; - -#ifdef HAVE_DD_LOCK - __lock_acquire_recursive(dirp->dd_lock); -#endif - - for (;;) { - if (dirp->dd_loc == 0) { - dirp->dd_size = getdents (dirp->dd_fd, - dirp->dd_buf, - dirp->dd_len); - - if (dirp->dd_size <= 0) { -#ifdef HAVE_DD_LOCK - __lock_release_recursive(dirp->dd_lock); -#endif - *dpp = NULL; - return dirp->dd_size == 0 ? 0 : errno; - } - } - if (dirp->dd_loc >= dirp->dd_size) { - dirp->dd_loc = 0; - continue; - } - tmpdp = (struct dirent *)(dirp->dd_buf + dirp->dd_loc); - - if (tmpdp->d_reclen <= 0 || - tmpdp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc) { -#ifdef HAVE_DD_LOCK - __lock_release_recursive(dirp->dd_lock); -#endif - *dpp = NULL; - return -1; - } - memcpy (dp, tmpdp, MIN (tmpdp->d_reclen, sizeof (struct dirent))); - - dirp->dd_loc += dp->d_reclen; - if (dp->d_ino == 0) - continue; -#ifdef HAVE_DD_LOCK - __lock_release_recursive(dirp->dd_lock); -#endif - *dpp = dp; - return 0; - } -} - -#endif /* ! HAVE_OPENDIR */ diff --git a/lib/posix/regcomp.c b/lib/posix/regcomp.c deleted file mode 100644 index 002f978..0000000 --- a/lib/posix/regcomp.c +++ /dev/null @@ -1,2088 +0,0 @@ -/*- - * Copyright (c) 1992, 1993, 1994 Henry Spencer. - * Copyright (c) 1992, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Henry Spencer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)regcomp.c 8.5 (Berkeley) 3/20/94 - */ - -#ifndef _NO_REGEX - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)regcomp.c 8.5 (Berkeley) 3/20/94"; -#endif /* LIBC_SCCS and not lint */ -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "collate.h" - -#include "utils.h" -#include "regex2.h" - -#include "cclass.h" -#include "cname.h" - -/* - * parse structure, passed up and down to avoid global variables and - * other clumsinesses - */ -struct parse { - char *next; /* next character in RE */ - char *end; /* end of string (-> NUL normally) */ - int error; /* has an error been seen? */ - sop *strip; /* malloced strip */ - sopno ssize; /* malloced strip size (allocated) */ - sopno slen; /* malloced strip length (used) */ - int ncsalloc; /* number of csets allocated */ - struct re_guts *g; -# define NPAREN 10 /* we need to remember () 1-9 for back refs */ - sopno pbegin[NPAREN]; /* -> ( ([0] unused) */ - sopno pend[NPAREN]; /* -> ) ([0] unused) */ -}; - -/* ========= begin header generated by ./mkh ========= */ -#ifdef __cplusplus -extern "C" { -#endif - -/* === regcomp.c === */ -static void p_ere(struct parse *p, int stop); -static void p_ere_exp(struct parse *p); -static void p_str(struct parse *p); -static void p_bre(struct parse *p, int end1, int end2); -static int p_simp_re(struct parse *p, int starordinary); -static int p_count(struct parse *p); -static void p_bracket(struct parse *p); -static void p_b_term(struct parse *p, cset *cs); -static void p_b_cclass(struct parse *p, cset *cs); -static void p_b_eclass(struct parse *p, cset *cs); -static char p_b_symbol(struct parse *p); -static char p_b_coll_elem(struct parse *p, int endc); -static char othercase(int ch); -static void bothcases(struct parse *p, int ch); -static void ordinary(struct parse *p, int ch); -static void nonnewline(struct parse *p); -static void repeat(struct parse *p, sopno start, int from, int to); -static int seterr(struct parse *p, int e); -static cset *allocset(struct parse *p); -static void freeset(struct parse *p, cset *cs); -static int freezeset(struct parse *p, cset *cs); -static int firstch(struct parse *p, cset *cs); -static int nch(struct parse *p, cset *cs); -#if used -static void mcadd(struct parse *p, cset *cs, char *cp); -static void mcsub(cset *cs, char *cp); -static int mcin(cset *cs, char *cp); -static char *mcfind(cset *cs, char *cp); -#endif -static void mcinvert(struct parse *p, cset *cs); -static void mccase(struct parse *p, cset *cs); -static int isinsets(struct re_guts *g, int c); -static int samesets(struct re_guts *g, int c1, int c2); -static void categorize(struct parse *p, struct re_guts *g); -static sopno dupl(struct parse *p, sopno start, sopno finish); -static void doemit(struct parse *p, sop op, size_t opnd); -static void doinsert(struct parse *p, sop op, size_t opnd, sopno pos); -static void dofwd(struct parse *p, sopno pos, sop value); -static void enlarge(struct parse *p, sopno size); -static void stripsnug(struct parse *p, struct re_guts *g); -static void findmust(struct parse *p, struct re_guts *g); -static int altoffset(sop *scan, int offset, int mccs); -static void computejumps(struct parse *p, struct re_guts *g); -static void computematchjumps(struct parse *p, struct re_guts *g); -static sopno pluscount(struct parse *p, struct re_guts *g); - -#ifdef __cplusplus -} -#endif -/* ========= end header generated by ./mkh ========= */ - -static char nuls[10]; /* place to point scanner in event of error */ - -/* - * macros for use with parse structure - * BEWARE: these know that the parse structure is named `p' !!! - */ -#define PEEK() (*p->next) -#define PEEK2() (*(p->next+1)) -#define MORE() (p->next < p->end) -#define MORE2() (p->next+1 < p->end) -#define SEE(c) (MORE() && PEEK() == (c)) -#define SEETWO(a, b) (MORE() && MORE2() && PEEK() == (a) && PEEK2() == (b)) -#define EAT(c) ((SEE(c)) ? (NEXT(), 1) : 0) -#define EATTWO(a, b) ((SEETWO(a, b)) ? (NEXT2(), 1) : 0) -#define NEXT() (p->next++) -#define NEXT2() (p->next += 2) -#define NEXTn(n) (p->next += (n)) -#define GETNEXT() (*p->next++) -#define SETERROR(e) seterr(p, (e)) -#define REQUIRE(co, e) ((co) || SETERROR(e)) -#define MUSTSEE(c, e) (REQUIRE(MORE() && PEEK() == (c), e)) -#define MUSTEAT(c, e) (REQUIRE(MORE() && GETNEXT() == (c), e)) -#define MUSTNOTSEE(c, e) (REQUIRE(!MORE() || PEEK() != (c), e)) -#define EMIT(op, sopnd) doemit(p, (sop)(op), (size_t)(sopnd)) -#define INSERT(op, pos) doinsert(p, (sop)(op), HERE()-(pos)+1, pos) -#define AHEAD(pos) dofwd(p, pos, HERE()-(pos)) -#define ASTERN(sop, pos) EMIT(sop, HERE()-pos) -#define HERE() (p->slen) -#define THERE() (p->slen - 1) -#define THERETHERE() (p->slen - 2) -#define DROP(n) (p->slen -= (n)) - -#ifndef NDEBUG -static int never = 0; /* for use in asserts; shuts lint up */ -#else -#define never 0 /* some s have bugs too */ -#endif - -/* Macro used by computejump()/computematchjump() */ -#define MIN(a,b) ((a)<(b)?(a):(b)) - -/* - - regcomp - interface for parser and compilation - = extern int regcomp(regex_t *__restrict, const char *__restrict, int); - = #define REG_BASIC 0000 - = #define REG_EXTENDED 0001 - = #define REG_ICASE 0002 - = #define REG_NOSUB 0004 - = #define REG_NEWLINE 0010 - = #define REG_NOSPEC 0020 - = #define REG_PEND 0040 - = #define REG_DUMP 0200 - */ -int /* 0 success, otherwise REG_something */ -regcomp(preg, pattern, cflags) -regex_t *__restrict preg; -const char *__restrict pattern; -int cflags; -{ - struct parse pa; - struct re_guts *g; - struct parse *p = &pa; - int i; - size_t len; -#ifdef REDEBUG -# define GOODFLAGS(f) (f) -#else -# define GOODFLAGS(f) ((f)&~REG_DUMP) -#endif - - cflags = GOODFLAGS(cflags); - if ((cflags®_EXTENDED) && (cflags®_NOSPEC)) - return(REG_INVARG); - - if (cflags®_PEND) { - if (preg->re_endp < pattern) - return(REG_INVARG); - len = preg->re_endp - pattern; - } else - len = strlen((char *)pattern); - - /* do the mallocs early so failure handling is easy */ - g = (struct re_guts *)malloc(sizeof(struct re_guts) + - (NC-1)*sizeof(cat_t)); - if (g == NULL) - return(REG_ESPACE); - p->ssize = len/(size_t)2*(size_t)3 + (size_t)1; /* ugh */ - p->strip = (sop *)malloc(p->ssize * sizeof(sop)); - p->slen = 0; - if (p->strip == NULL) { - free((char *)g); - return(REG_ESPACE); - } - - /* set things up */ - p->g = g; - p->next = (char *)pattern; /* convenience; we do not modify it */ - p->end = p->next + len; - p->error = 0; - p->ncsalloc = 0; - for (i = 0; i < NPAREN; i++) { - p->pbegin[i] = 0; - p->pend[i] = 0; - } - g->csetsize = NC; - g->sets = NULL; - g->setbits = NULL; - g->ncsets = 0; - g->cflags = cflags; - g->iflags = 0; - g->nbol = 0; - g->neol = 0; - g->must = NULL; - g->moffset = -1; - g->charjump = NULL; - g->matchjump = NULL; - g->mlen = 0; - g->nsub = 0; - g->ncategories = 1; /* category 0 is "everything else" */ - g->categories = &g->catspace[-(CHAR_MIN)]; - (void) memset((char *)g->catspace, 0, NC*sizeof(cat_t)); - g->backrefs = 0; - - /* do it */ - EMIT(OEND, 0); - g->firststate = THERE(); - if (cflags®_EXTENDED) - p_ere(p, OUT); - else if (cflags®_NOSPEC) - p_str(p); - else - p_bre(p, OUT, OUT); - EMIT(OEND, 0); - g->laststate = THERE(); - - /* tidy up loose ends and fill things in */ - categorize(p, g); - stripsnug(p, g); - findmust(p, g); - /* only use Boyer-Moore algorithm if the pattern is bigger - * than three characters - */ - if(g->mlen > 3) { - computejumps(p, g); - computematchjumps(p, g); - if(g->matchjump == NULL && g->charjump != NULL) { - free(g->charjump); - g->charjump = NULL; - } - } - g->nplus = pluscount(p, g); - g->magic = MAGIC2; - preg->re_nsub = g->nsub; - preg->re_g = g; - preg->re_magic = MAGIC1; -#ifndef REDEBUG - /* not debugging, so can't rely on the assert() in regexec() */ - if (g->iflags&BAD) - SETERROR(REG_ASSERT); -#endif - - /* win or lose, we're done */ - if (p->error != 0) /* lose */ - regfree(preg); - return(p->error); -} - -/* - - p_ere - ERE parser top level, concatenation and alternation - == static void p_ere(struct parse *p, int stop); - */ -static void -p_ere(p, stop) -struct parse *p; -int stop; /* character this ERE should end at */ -{ - char c; - sopno prevback = 0; - sopno prevfwd = 0; - sopno conc; - int first = 1; /* is this the first alternative? */ - - for (;;) { - /* do a bunch of concatenated expressions */ - conc = HERE(); - while (MORE() && (c = PEEK()) != '|' && c != stop) - p_ere_exp(p); - (void)REQUIRE(HERE() != conc, REG_EMPTY); /* require nonempty */ - - if (!EAT('|')) - break; /* NOTE BREAK OUT */ - - if (first) { - INSERT(OCH_, conc); /* offset is wrong */ - prevfwd = conc; - prevback = conc; - first = 0; - } - ASTERN(OOR1, prevback); - prevback = THERE(); - AHEAD(prevfwd); /* fix previous offset */ - prevfwd = HERE(); - EMIT(OOR2, 0); /* offset is very wrong */ - } - - if (!first) { /* tail-end fixups */ - AHEAD(prevfwd); - ASTERN(O_CH, prevback); - } - - assert(!MORE() || SEE(stop)); -} - -/* - - p_ere_exp - parse one subERE, an atom possibly followed by a repetition op - == static void p_ere_exp(struct parse *p); - */ -static void -p_ere_exp(p) -struct parse *p; -{ - char c; - sopno pos; - int count; - int count2; - sopno subno; - int wascaret = 0; - - assert(MORE()); /* caller should have ensured this */ - c = GETNEXT(); - - pos = HERE(); - switch (c) { - case '(': - (void)REQUIRE(MORE(), REG_EPAREN); - p->g->nsub++; - subno = p->g->nsub; - if (subno < NPAREN) - p->pbegin[subno] = HERE(); - EMIT(OLPAREN, subno); - if (!SEE(')')) - p_ere(p, ')'); - if (subno < NPAREN) { - p->pend[subno] = HERE(); - assert(p->pend[subno] != 0); - } - EMIT(ORPAREN, subno); - (void)MUSTEAT(')', REG_EPAREN); - break; -#ifndef POSIX_MISTAKE - case ')': /* happens only if no current unmatched ( */ - /* - * You may ask, why the ifndef? Because I didn't notice - * this until slightly too late for 1003.2, and none of the - * other 1003.2 regular-expression reviewers noticed it at - * all. So an unmatched ) is legal POSIX, at least until - * we can get it fixed. - */ - SETERROR(REG_EPAREN); - break; -#endif - case '^': - EMIT(OBOL, 0); - p->g->iflags |= USEBOL; - p->g->nbol++; - wascaret = 1; - break; - case '$': - EMIT(OEOL, 0); - p->g->iflags |= USEEOL; - p->g->neol++; - break; - case '|': - SETERROR(REG_EMPTY); - break; - case '*': - case '+': - case '?': - SETERROR(REG_BADRPT); - break; - case '.': - if (p->g->cflags®_NEWLINE) - nonnewline(p); - else - EMIT(OANY, 0); - break; - case '[': - p_bracket(p); - break; - case '\\': - (void)REQUIRE(MORE(), REG_EESCAPE); - c = GETNEXT(); - ordinary(p, c); - break; - case '{': /* okay as ordinary except if digit follows */ - (void)REQUIRE(!MORE() || !isdigit((uch)PEEK()), REG_BADRPT); - /* FALLTHROUGH */ - default: - ordinary(p, c); - break; - } - - if (!MORE()) - return; - c = PEEK(); - /* we call { a repetition if followed by a digit */ - if (!( c == '*' || c == '+' || c == '?' || - (c == '{' && MORE2() && isdigit((uch)PEEK2())) )) - return; /* no repetition, we're done */ - NEXT(); - - (void)REQUIRE(!wascaret, REG_BADRPT); - switch (c) { - case '*': /* implemented as +? */ - /* this case does not require the (y|) trick, noKLUDGE */ - INSERT(OPLUS_, pos); - ASTERN(O_PLUS, pos); - INSERT(OQUEST_, pos); - ASTERN(O_QUEST, pos); - break; - case '+': - INSERT(OPLUS_, pos); - ASTERN(O_PLUS, pos); - break; - case '?': - /* KLUDGE: emit y? as (y|) until subtle bug gets fixed */ - INSERT(OCH_, pos); /* offset slightly wrong */ - ASTERN(OOR1, pos); /* this one's right */ - AHEAD(pos); /* fix the OCH_ */ - EMIT(OOR2, 0); /* offset very wrong... */ - AHEAD(THERE()); /* ...so fix it */ - ASTERN(O_CH, THERETHERE()); - break; - case '{': - count = p_count(p); - if (EAT(',')) { - if (isdigit((uch)PEEK())) { - count2 = p_count(p); - (void)REQUIRE(count <= count2, REG_BADBR); - } else /* single number with comma */ - count2 = INFINITY; - } else /* just a single number */ - count2 = count; - repeat(p, pos, count, count2); - if (!EAT('}')) { /* error heuristics */ - while (MORE() && PEEK() != '}') - NEXT(); - (void)REQUIRE(MORE(), REG_EBRACE); - SETERROR(REG_BADBR); - } - break; - } - - if (!MORE()) - return; - c = PEEK(); - if (!( c == '*' || c == '+' || c == '?' || - (c == '{' && MORE2() && isdigit((uch)PEEK2())) ) ) - return; - SETERROR(REG_BADRPT); -} - -/* - - p_str - string (no metacharacters) "parser" - == static void p_str(struct parse *p); - */ -static void -p_str(p) -struct parse *p; -{ - (void)REQUIRE(MORE(), REG_EMPTY); - while (MORE()) - ordinary(p, GETNEXT()); -} - -/* - - p_bre - BRE parser top level, anchoring and concatenation - == static void p_bre(struct parse *p, int end1, \ - == int end2); - * Giving end1 as OUT essentially eliminates the end1/end2 check. - * - * This implementation is a bit of a kludge, in that a trailing $ is first - * taken as an ordinary character and then revised to be an anchor. The - * only undesirable side effect is that '$' gets included as a character - * category in such cases. This is fairly harmless; not worth fixing. - * The amount of lookahead needed to avoid this kludge is excessive. - */ -static void -p_bre(p, end1, end2) -struct parse *p; -int end1; /* first terminating character */ -int end2; /* second terminating character */ -{ - sopno start = HERE(); - int first = 1; /* first subexpression? */ - int wasdollar = 0; - - if (EAT('^')) { - EMIT(OBOL, 0); - p->g->iflags |= USEBOL; - p->g->nbol++; - } - while (MORE() && !SEETWO(end1, end2)) { - wasdollar = p_simp_re(p, first); - first = 0; - } - if (wasdollar) { /* oops, that was a trailing anchor */ - DROP(1); - EMIT(OEOL, 0); - p->g->iflags |= USEEOL; - p->g->neol++; - } - - (void)REQUIRE(HERE() != start, REG_EMPTY); /* require nonempty */ -} - -/* - - p_simp_re - parse a simple RE, an atom possibly followed by a repetition - == static int p_simp_re(struct parse *p, int starordinary); - */ -static int /* was the simple RE an unbackslashed $? */ -p_simp_re(p, starordinary) -struct parse *p; -int starordinary; /* is a leading * an ordinary character? */ -{ - int c; - int count; - int count2; - sopno pos; - int i; - sopno subno; -# define BACKSL (1<g->cflags®_NEWLINE) - nonnewline(p); - else - EMIT(OANY, 0); - break; - case '[': - p_bracket(p); - break; - case BACKSL|'{': - SETERROR(REG_BADRPT); - break; - case BACKSL|'(': - p->g->nsub++; - subno = p->g->nsub; - if (subno < NPAREN) - p->pbegin[subno] = HERE(); - EMIT(OLPAREN, subno); - /* the MORE here is an error heuristic */ - if (MORE() && !SEETWO('\\', ')')) - p_bre(p, '\\', ')'); - if (subno < NPAREN) { - p->pend[subno] = HERE(); - assert(p->pend[subno] != 0); - } - EMIT(ORPAREN, subno); - (void)REQUIRE(EATTWO('\\', ')'), REG_EPAREN); - break; - case BACKSL|')': /* should not get here -- must be user */ - case BACKSL|'}': - SETERROR(REG_EPAREN); - break; - case BACKSL|'1': - case BACKSL|'2': - case BACKSL|'3': - case BACKSL|'4': - case BACKSL|'5': - case BACKSL|'6': - case BACKSL|'7': - case BACKSL|'8': - case BACKSL|'9': - i = (c&~BACKSL) - '0'; - assert(i < NPAREN); - if (p->pend[i] != 0) { - assert(i <= p->g->nsub); - EMIT(OBACK_, i); - assert(p->pbegin[i] != 0); - assert(OP(p->strip[p->pbegin[i]]) == OLPAREN); - assert(OP(p->strip[p->pend[i]]) == ORPAREN); - (void) dupl(p, p->pbegin[i]+1, p->pend[i]); - EMIT(O_BACK, i); - } else - SETERROR(REG_ESUBREG); - p->g->backrefs = 1; - break; - case '*': - (void)REQUIRE(starordinary, REG_BADRPT); - /* FALLTHROUGH */ - default: - ordinary(p, (char)c); - break; - } - - if (EAT('*')) { /* implemented as +? */ - /* this case does not require the (y|) trick, noKLUDGE */ - INSERT(OPLUS_, pos); - ASTERN(O_PLUS, pos); - INSERT(OQUEST_, pos); - ASTERN(O_QUEST, pos); - } else if (EATTWO('\\', '{')) { - count = p_count(p); - if (EAT(',')) { - if (MORE() && isdigit((uch)PEEK())) { - count2 = p_count(p); - (void)REQUIRE(count <= count2, REG_BADBR); - } else /* single number with comma */ - count2 = INFINITY; - } else /* just a single number */ - count2 = count; - repeat(p, pos, count, count2); - if (!EATTWO('\\', '}')) { /* error heuristics */ - while (MORE() && !SEETWO('\\', '}')) - NEXT(); - (void)REQUIRE(MORE(), REG_EBRACE); - SETERROR(REG_BADBR); - } - } else if (c == '$') /* $ (but not \$) ends it */ - return(1); - - return(0); -} - -/* - - p_count - parse a repetition count - == static int p_count(struct parse *p); - */ -static int /* the value */ -p_count(p) -struct parse *p; -{ - int count = 0; - int ndigits = 0; - - while (MORE() && isdigit((uch)PEEK()) && count <= DUPMAX) { - count = count*10 + (GETNEXT() - '0'); - ndigits++; - } - - (void)REQUIRE(ndigits > 0 && count <= DUPMAX, REG_BADBR); - return(count); -} - -/* - - p_bracket - parse a bracketed character list - == static void p_bracket(struct parse *p); - * - * Note a significant property of this code: if the allocset() did SETERROR, - * no set operations are done. - */ -static void -p_bracket(p) -struct parse *p; -{ - cset *cs = allocset(p); - int invert = 0; - - /* Dept of Truly Sickening Special-Case Kludges */ - if (p->next + 5 < p->end && strncmp(p->next, "[:<:]]", 6) == 0) { - EMIT(OBOW, 0); - NEXTn(6); - return; - } - if (p->next + 5 < p->end && strncmp(p->next, "[:>:]]", 6) == 0) { - EMIT(OEOW, 0); - NEXTn(6); - return; - } - - if (EAT('^')) - invert++; /* make note to invert set at end */ - if (EAT(']')) - CHadd(cs, ']'); - else if (EAT('-')) - CHadd(cs, '-'); - while (MORE() && PEEK() != ']' && !SEETWO('-', ']')) - p_b_term(p, cs); - if (EAT('-')) - CHadd(cs, '-'); - (void)MUSTEAT(']', REG_EBRACK); - - if (p->error != 0) /* don't mess things up further */ - return; - - if (p->g->cflags®_ICASE) { - int i; - int ci; - - for (i = p->g->csetsize - 1; i >= 0; i--) - if (CHIN(cs, i) && isalpha(i)) { - ci = othercase(i); - if (ci != i) - CHadd(cs, ci); - } - if (cs->multis != NULL) - mccase(p, cs); - } - if (invert) { - int i; - - for (i = p->g->csetsize - 1; i >= 0; i--) - if (CHIN(cs, i)) - CHsub(cs, i); - else - CHadd(cs, i); - if (p->g->cflags®_NEWLINE) - CHsub(cs, '\n'); - if (cs->multis != NULL) - mcinvert(p, cs); - } - - assert(cs->multis == NULL); /* xxx */ - - if (nch(p, cs) == 1) { /* optimize singleton sets */ - ordinary(p, firstch(p, cs)); - freeset(p, cs); - } else - EMIT(OANYOF, freezeset(p, cs)); -} - -/* - - p_b_term - parse one term of a bracketed character list - == static void p_b_term(struct parse *p, cset *cs); - */ -static void -p_b_term(p, cs) -struct parse *p; -cset *cs; -{ - char c; - char start, finish; - int i; - - /* classify what we've got */ - switch ((MORE()) ? PEEK() : '\0') { - case '[': - c = (MORE2()) ? PEEK2() : '\0'; - break; - case '-': - SETERROR(REG_ERANGE); - return; /* NOTE RETURN */ - break; - default: - c = '\0'; - break; - } - - switch (c) { - case ':': /* character class */ - NEXT2(); - (void)REQUIRE(MORE(), REG_EBRACK); - c = PEEK(); - (void)REQUIRE(c != '-' && c != ']', REG_ECTYPE); - p_b_cclass(p, cs); - (void)REQUIRE(MORE(), REG_EBRACK); - (void)REQUIRE(EATTWO(':', ']'), REG_ECTYPE); - break; - case '=': /* equivalence class */ - NEXT2(); - (void)REQUIRE(MORE(), REG_EBRACK); - c = PEEK(); - (void)REQUIRE(c != '-' && c != ']', REG_ECOLLATE); - p_b_eclass(p, cs); - (void)REQUIRE(MORE(), REG_EBRACK); - (void)REQUIRE(EATTWO('=', ']'), REG_ECOLLATE); - break; - default: /* symbol, ordinary character, or range */ -/* xxx revision needed for multichar stuff */ - start = p_b_symbol(p); - if (SEE('-') && MORE2() && PEEK2() != ']') { - /* range */ - NEXT(); - if (EAT('-')) - finish = '-'; - else - finish = p_b_symbol(p); - } else - finish = start; - if (start == finish) - CHadd(cs, start); - else { - if (__collate_load_error) { - (void)REQUIRE((uch)start <= (uch)finish, REG_ERANGE); - for (i = (uch)start; i <= (uch)finish; i++) - CHadd(cs, i); - } else { - (void)REQUIRE(__collate_range_cmp(start, finish) <= 0, REG_ERANGE); - for (i = CHAR_MIN; i <= CHAR_MAX; i++) { - if ( __collate_range_cmp(start, i) <= 0 - && __collate_range_cmp(i, finish) <= 0 - ) - CHadd(cs, i); - } - } - } - break; - } -} - -/* - - p_b_cclass - parse a character-class name and deal with it - == static void p_b_cclass(struct parse *p, cset *cs); - */ -static void -p_b_cclass(p, cs) -struct parse *p; -cset *cs; -{ - int c; - char *sp = p->next; - struct cclass *cp; - size_t len; - - while (MORE() && isalpha((uch)PEEK())) - NEXT(); - len = p->next - sp; - for (cp = cclasses; cp->name != NULL; cp++) - if (strncmp(cp->name, sp, len) == 0 && cp->name[len] == '\0') - break; - if (cp->name == NULL) { - /* oops, didn't find it */ - SETERROR(REG_ECTYPE); - return; - } - - switch (cp->fidx) { - case CALNUM: - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (isalnum((uch)c)) - CHadd(cs, c); - break; - case CALPHA: - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (isalpha((uch)c)) - CHadd(cs, c); - break; - case CBLANK: - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (isblank((uch)c)) - CHadd(cs, c); - break; - case CCNTRL: - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (iscntrl((uch)c)) - CHadd(cs, c); - break; - case CDIGIT: - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (isdigit((uch)c)) - CHadd(cs, c); - break; - case CGRAPH: - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (isgraph((uch)c)) - CHadd(cs, c); - break; - case CLOWER: - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (islower((uch)c)) - CHadd(cs, c); - break; - case CPRINT: - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (isprint((uch)c)) - CHadd(cs, c); - break; - case CPUNCT: - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (ispunct((uch)c)) - CHadd(cs, c); - break; - case CSPACE: - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (isspace((uch)c)) - CHadd(cs, c); - break; - case CUPPER: - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (isupper((uch)c)) - CHadd(cs, c); - break; - case CXDIGIT: - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (isxdigit((uch)c)) - CHadd(cs, c); - break; - } -#if 0 - for (u = cp->multis; *u != '\0'; u += strlen(u) + 1) - MCadd(p, cs, u); -#endif -} - -/* - - p_b_eclass - parse an equivalence-class name and deal with it - == static void p_b_eclass(struct parse *p, cset *cs); - * - * This implementation is incomplete. xxx - */ -static void -p_b_eclass(p, cs) -struct parse *p; -cset *cs; -{ - char c; - - c = p_b_coll_elem(p, '='); - CHadd(cs, c); -} - -/* - - p_b_symbol - parse a character or [..]ed multicharacter collating symbol - == static char p_b_symbol(struct parse *p); - */ -static char /* value of symbol */ -p_b_symbol(p) -struct parse *p; -{ - char value; - - (void)REQUIRE(MORE(), REG_EBRACK); - if (!EATTWO('[', '.')) - return(GETNEXT()); - - /* collating symbol */ - value = p_b_coll_elem(p, '.'); - (void)REQUIRE(EATTWO('.', ']'), REG_ECOLLATE); - return(value); -} - -/* - - p_b_coll_elem - parse a collating-element name and look it up - == static char p_b_coll_elem(struct parse *p, int endc); - */ -static char /* value of collating element */ -p_b_coll_elem(p, endc) -struct parse *p; -int endc; /* name ended by endc,']' */ -{ - char *sp = p->next; - struct cname *cp; - int len; - - while (MORE() && !SEETWO(endc, ']')) - NEXT(); - if (!MORE()) { - SETERROR(REG_EBRACK); - return(0); - } - len = p->next - sp; - for (cp = cnames; cp->name != NULL; cp++) - if (strncmp(cp->name, sp, len) == 0 && cp->name[len] == '\0') - return(cp->code); /* known name */ - if (len == 1) - return(*sp); /* single character */ - SETERROR(REG_ECOLLATE); /* neither */ - return(0); -} - -/* - - othercase - return the case counterpart of an alphabetic - == static char othercase(int ch); - */ -static char /* if no counterpart, return ch */ -othercase(ch) -int ch; -{ - ch = (uch)ch; - assert(isalpha(ch)); - if (isupper(ch)) - return(tolower(ch)); - else if (islower(ch)) - return(toupper(ch)); - else /* peculiar, but could happen */ - return(ch); -} - -/* - - bothcases - emit a dualcase version of a two-case character - == static void bothcases(struct parse *p, int ch); - * - * Boy, is this implementation ever a kludge... - */ -static void -bothcases(p, ch) -struct parse *p; -int ch; -{ - char *oldnext = p->next; - char *oldend = p->end; - char bracket[3]; - - ch = (uch)ch; - assert(othercase(ch) != ch); /* p_bracket() would recurse */ - p->next = bracket; - p->end = bracket+2; - bracket[0] = ch; - bracket[1] = ']'; - bracket[2] = '\0'; - p_bracket(p); - assert(p->next == bracket+2); - p->next = oldnext; - p->end = oldend; -} - -/* - - ordinary - emit an ordinary character - == static void ordinary(struct parse *p, int ch); - */ -static void -ordinary(p, ch) -struct parse *p; -int ch; -{ - cat_t *cap = p->g->categories; - - if ((p->g->cflags®_ICASE) && isalpha((uch)ch) && othercase(ch) != ch) - bothcases(p, ch); - else { - EMIT(OCHAR, (uch)ch); - if (cap[ch] == 0) - cap[ch] = p->g->ncategories++; - } -} - -/* - - nonnewline - emit REG_NEWLINE version of OANY - == static void nonnewline(struct parse *p); - * - * Boy, is this implementation ever a kludge... - */ -static void -nonnewline(p) -struct parse *p; -{ - char *oldnext = p->next; - char *oldend = p->end; - char bracket[4]; - - p->next = bracket; - p->end = bracket+3; - bracket[0] = '^'; - bracket[1] = '\n'; - bracket[2] = ']'; - bracket[3] = '\0'; - p_bracket(p); - assert(p->next == bracket+3); - p->next = oldnext; - p->end = oldend; -} - -/* - - repeat - generate code for a bounded repetition, recursively if needed - == static void repeat(struct parse *p, sopno start, int from, int to); - */ -static void -repeat(p, start, from, to) -struct parse *p; -sopno start; /* operand from here to end of strip */ -int from; /* repeated from this number */ -int to; /* to this number of times (maybe INFINITY) */ -{ - sopno finish = HERE(); -# define N 2 -# define INF 3 -# define REP(f, t) ((f)*8 + (t)) -# define MAP(n) (((n) <= 1) ? (n) : ((n) == INFINITY) ? INF : N) - sopno copy; - - if (p->error != 0) /* head off possible runaway recursion */ - return; - - assert(from <= to); - - switch (REP(MAP(from), MAP(to))) { - case REP(0, 0): /* must be user doing this */ - DROP(finish-start); /* drop the operand */ - break; - case REP(0, 1): /* as x{1,1}? */ - case REP(0, N): /* as x{1,n}? */ - case REP(0, INF): /* as x{1,}? */ - /* KLUDGE: emit y? as (y|) until subtle bug gets fixed */ - INSERT(OCH_, start); /* offset is wrong... */ - repeat(p, start+1, 1, to); - ASTERN(OOR1, start); - AHEAD(start); /* ... fix it */ - EMIT(OOR2, 0); - AHEAD(THERE()); - ASTERN(O_CH, THERETHERE()); - break; - case REP(1, 1): /* trivial case */ - /* done */ - break; - case REP(1, N): /* as x?x{1,n-1} */ - /* KLUDGE: emit y? as (y|) until subtle bug gets fixed */ - INSERT(OCH_, start); - ASTERN(OOR1, start); - AHEAD(start); - EMIT(OOR2, 0); /* offset very wrong... */ - AHEAD(THERE()); /* ...so fix it */ - ASTERN(O_CH, THERETHERE()); - copy = dupl(p, start+1, finish+1); - assert(copy == finish+4); - repeat(p, copy, 1, to-1); - break; - case REP(1, INF): /* as x+ */ - INSERT(OPLUS_, start); - ASTERN(O_PLUS, start); - break; - case REP(N, N): /* as xx{m-1,n-1} */ - copy = dupl(p, start, finish); - repeat(p, copy, from-1, to-1); - break; - case REP(N, INF): /* as xx{n-1,INF} */ - copy = dupl(p, start, finish); - repeat(p, copy, from-1, to); - break; - default: /* "can't happen" */ - SETERROR(REG_ASSERT); /* just in case */ - break; - } -} - -/* - - seterr - set an error condition - == static int seterr(struct parse *p, int e); - */ -static int /* useless but makes type checking happy */ -seterr(p, e) -struct parse *p; -int e; -{ - if (p->error == 0) /* keep earliest error condition */ - p->error = e; - p->next = nuls; /* try to bring things to a halt */ - p->end = nuls; - return(0); /* make the return value well-defined */ -} - -/* - - allocset - allocate a set of characters for [] - == static cset *allocset(struct parse *p); - */ -static cset * -allocset(p) -struct parse *p; -{ - int no = p->g->ncsets++; - size_t nc; - size_t nbytes; - cset *cs; - size_t css = (size_t)p->g->csetsize; - int i; - - if (no >= p->ncsalloc) { /* need another column of space */ - p->ncsalloc += CHAR_BIT; - nc = p->ncsalloc; - assert(nc % CHAR_BIT == 0); - nbytes = nc / CHAR_BIT * css; - if (p->g->sets == NULL) - p->g->sets = (cset *)malloc(nc * sizeof(cset)); - else - p->g->sets = (cset *)reallocf((char *)p->g->sets, - nc * sizeof(cset)); - if (p->g->setbits == NULL) - p->g->setbits = (uch *)malloc(nbytes); - else { - p->g->setbits = (uch *)reallocf((char *)p->g->setbits, - nbytes); - /* xxx this isn't right if setbits is now NULL */ - for (i = 0; i < no; i++) - p->g->sets[i].ptr = p->g->setbits + css*(i/CHAR_BIT); - } - if (p->g->sets != NULL && p->g->setbits != NULL) - (void) memset((char *)p->g->setbits + (nbytes - css), - 0, css); - else { - no = 0; - SETERROR(REG_ESPACE); - /* caller's responsibility not to do set ops */ - } - } - - assert(p->g->sets != NULL); /* xxx */ - cs = &p->g->sets[no]; - cs->ptr = p->g->setbits + css*((no)/CHAR_BIT); - cs->mask = 1 << ((no) % CHAR_BIT); - cs->hash = 0; - cs->smultis = 0; - cs->multis = NULL; - - return(cs); -} - -/* - - freeset - free a now-unused set - == static void freeset(struct parse *p, cset *cs); - */ -static void -freeset(p, cs) -struct parse *p; -cset *cs; -{ - int i; - cset *top = &p->g->sets[p->g->ncsets]; - size_t css = (size_t)p->g->csetsize; - - for (i = 0; i < css; i++) - CHsub(cs, i); - if (cs == top-1) /* recover only the easy case */ - p->g->ncsets--; -} - -/* - - freezeset - final processing on a set of characters - == static int freezeset(struct parse *p, cset *cs); - * - * The main task here is merging identical sets. This is usually a waste - * of time (although the hash code minimizes the overhead), but can win - * big if REG_ICASE is being used. REG_ICASE, by the way, is why the hash - * is done using addition rather than xor -- all ASCII [aA] sets xor to - * the same value! - */ -static int /* set number */ -freezeset(p, cs) -struct parse *p; -cset *cs; -{ - short h = cs->hash; - int i; - cset *top = &p->g->sets[p->g->ncsets]; - cset *cs2; - size_t css = (size_t)p->g->csetsize; - - /* look for an earlier one which is the same */ - for (cs2 = &p->g->sets[0]; cs2 < top; cs2++) - if (cs2->hash == h && cs2 != cs) { - /* maybe */ - for (i = 0; i < css; i++) - if (!!CHIN(cs2, i) != !!CHIN(cs, i)) - break; /* no */ - if (i == css) - break; /* yes */ - } - - if (cs2 < top) { /* found one */ - freeset(p, cs); - cs = cs2; - } - - return((int)(cs - p->g->sets)); -} - -/* - - firstch - return first character in a set (which must have at least one) - == static int firstch(struct parse *p, cset *cs); - */ -static int /* character; there is no "none" value */ -firstch(p, cs) -struct parse *p; -cset *cs; -{ - int i; - size_t css = (size_t)p->g->csetsize; - - for (i = 0; i < css; i++) - if (CHIN(cs, i)) - return((char)i); - assert(never); - return(0); /* arbitrary */ -} - -/* - - nch - number of characters in a set - == static int nch(struct parse *p, cset *cs); - */ -static int -nch(p, cs) -struct parse *p; -cset *cs; -{ - int i; - size_t css = (size_t)p->g->csetsize; - int n = 0; - - for (i = 0; i < css; i++) - if (CHIN(cs, i)) - n++; - return(n); -} - -#if used -/* - - mcadd - add a collating element to a cset - == static void mcadd(struct parse *p, cset *cs, \ - == char *cp); - */ -static void -mcadd(p, cs, cp) -struct parse *p; -cset *cs; -char *cp; -{ - size_t oldend = cs->smultis; - - cs->smultis += strlen(cp) + 1; - if (cs->multis == NULL) - cs->multis = malloc(cs->smultis); - else - cs->multis = reallocf(cs->multis, cs->smultis); - if (cs->multis == NULL) { - SETERROR(REG_ESPACE); - return; - } - - (void) strcpy(cs->multis + oldend - 1, cp); - cs->multis[cs->smultis - 1] = '\0'; -} - -/* - - mcsub - subtract a collating element from a cset - == static void mcsub(cset *cs, char *cp); - */ -static void -mcsub(cs, cp) -cset *cs; -char *cp; -{ - char *fp = mcfind(cs, cp); - size_t len = strlen(fp); - - assert(fp != NULL); - (void) memmove(fp, fp + len + 1, - cs->smultis - (fp + len + 1 - cs->multis)); - cs->smultis -= len; - - if (cs->smultis == 0) { - free(cs->multis); - cs->multis = NULL; - return; - } - - cs->multis = reallocf(cs->multis, cs->smultis); - assert(cs->multis != NULL); -} - -/* - - mcin - is a collating element in a cset? - == static int mcin(cset *cs, char *cp); - */ -static int -mcin(cs, cp) -cset *cs; -char *cp; -{ - return(mcfind(cs, cp) != NULL); -} - -/* - - mcfind - find a collating element in a cset - == static char *mcfind(cset *cs, char *cp); - */ -static char * -mcfind(cs, cp) -cset *cs; -char *cp; -{ - char *p; - - if (cs->multis == NULL) - return(NULL); - for (p = cs->multis; *p != '\0'; p += strlen(p) + 1) - if (strcmp(cp, p) == 0) - return(p); - return(NULL); -} -#endif - -/* - - mcinvert - invert the list of collating elements in a cset - == static void mcinvert(struct parse *p, cset *cs); - * - * This would have to know the set of possibilities. Implementation - * is deferred. - */ -static void -mcinvert(p, cs) -struct parse *p; -cset *cs; -{ - assert(cs->multis == NULL); /* xxx */ -} - -/* - - mccase - add case counterparts of the list of collating elements in a cset - == static void mccase(struct parse *p, cset *cs); - * - * This would have to know the set of possibilities. Implementation - * is deferred. - */ -static void -mccase(p, cs) -struct parse *p; -cset *cs; -{ - assert(cs->multis == NULL); /* xxx */ -} - -/* - - isinsets - is this character in any sets? - == static int isinsets(struct re_guts *g, int c); - */ -static int /* predicate */ -isinsets(g, c) -struct re_guts *g; -int c; -{ - uch *col; - int i; - int ncols = (g->ncsets+(CHAR_BIT-1)) / CHAR_BIT; - unsigned uc = (uch)c; - - for (i = 0, col = g->setbits; i < ncols; i++, col += g->csetsize) - if (col[uc] != 0) - return(1); - return(0); -} - -/* - - samesets - are these two characters in exactly the same sets? - == static int samesets(struct re_guts *g, int c1, int c2); - */ -static int /* predicate */ -samesets(g, c1, c2) -struct re_guts *g; -int c1; -int c2; -{ - uch *col; - int i; - int ncols = (g->ncsets+(CHAR_BIT-1)) / CHAR_BIT; - unsigned uc1 = (uch)c1; - unsigned uc2 = (uch)c2; - - for (i = 0, col = g->setbits; i < ncols; i++, col += g->csetsize) - if (col[uc1] != col[uc2]) - return(0); - return(1); -} - -/* - - categorize - sort out character categories - == static void categorize(struct parse *p, struct re_guts *g); - */ -static void -categorize(p, g) -struct parse *p; -struct re_guts *g; -{ - cat_t *cats = g->categories; - int c; - int c2; - cat_t cat; - - /* avoid making error situations worse */ - if (p->error != 0) - return; - - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (cats[c] == 0 && isinsets(g, c)) { - cat = g->ncategories++; - cats[c] = cat; - for (c2 = c+1; c2 <= CHAR_MAX; c2++) - if (cats[c2] == 0 && samesets(g, c, c2)) - cats[c2] = cat; - } -} - -/* - - dupl - emit a duplicate of a bunch of sops - == static sopno dupl(struct parse *p, sopno start, sopno finish); - */ -static sopno /* start of duplicate */ -dupl(p, start, finish) -struct parse *p; -sopno start; /* from here */ -sopno finish; /* to this less one */ -{ - sopno ret = HERE(); - sopno len = finish - start; - - assert(finish >= start); - if (len == 0) - return(ret); - enlarge(p, p->ssize + len); /* this many unexpected additions */ - assert(p->ssize >= p->slen + len); - (void) memcpy((char *)(p->strip + p->slen), - (char *)(p->strip + start), (size_t)len*sizeof(sop)); - p->slen += len; - return(ret); -} - -/* - - doemit - emit a strip operator - == static void doemit(struct parse *p, sop op, size_t opnd); - * - * It might seem better to implement this as a macro with a function as - * hard-case backup, but it's just too big and messy unless there are - * some changes to the data structures. Maybe later. - */ -static void -doemit(p, op, opnd) -struct parse *p; -sop op; -size_t opnd; -{ - /* avoid making error situations worse */ - if (p->error != 0) - return; - - /* deal with oversize operands ("can't happen", more or less) */ - assert(opnd < 1<slen >= p->ssize) - enlarge(p, (p->ssize+1) / 2 * 3); /* +50% */ - assert(p->slen < p->ssize); - - /* finally, it's all reduced to the easy case */ - p->strip[p->slen++] = SOP(op, opnd); -} - -/* - - doinsert - insert a sop into the strip - == static void doinsert(struct parse *p, sop op, size_t opnd, sopno pos); - */ -static void -doinsert(p, op, opnd, pos) -struct parse *p; -sop op; -size_t opnd; -sopno pos; -{ - sopno sn; - sop s; - int i; - - /* avoid making error situations worse */ - if (p->error != 0) - return; - - sn = HERE(); - EMIT(op, opnd); /* do checks, ensure space */ - assert(HERE() == sn+1); - s = p->strip[sn]; - - /* adjust paren pointers */ - assert(pos > 0); - for (i = 1; i < NPAREN; i++) { - if (p->pbegin[i] >= pos) { - p->pbegin[i]++; - } - if (p->pend[i] >= pos) { - p->pend[i]++; - } - } - - memmove((char *)&p->strip[pos+1], (char *)&p->strip[pos], - (HERE()-pos-1)*sizeof(sop)); - p->strip[pos] = s; -} - -/* - - dofwd - complete a forward reference - == static void dofwd(struct parse *p, sopno pos, sop value); - */ -static void -dofwd(p, pos, value) -struct parse *p; -sopno pos; -sop value; -{ - /* avoid making error situations worse */ - if (p->error != 0) - return; - - assert(value < 1<strip[pos] = OP(p->strip[pos]) | value; -} - -/* - - enlarge - enlarge the strip - == static void enlarge(struct parse *p, sopno size); - */ -static void -enlarge(p, size) -struct parse *p; -sopno size; -{ - sop *sp; - - if (p->ssize >= size) - return; - - sp = (sop *)realloc(p->strip, size*sizeof(sop)); - if (sp == NULL) { - SETERROR(REG_ESPACE); - return; - } - p->strip = sp; - p->ssize = size; -} - -/* - - stripsnug - compact the strip - == static void stripsnug(struct parse *p, struct re_guts *g); - */ -static void -stripsnug(p, g) -struct parse *p; -struct re_guts *g; -{ - g->nstates = p->slen; - g->strip = (sop *)realloc((char *)p->strip, p->slen * sizeof(sop)); - if (g->strip == NULL) { - SETERROR(REG_ESPACE); - g->strip = p->strip; - } -} - -/* - - findmust - fill in must and mlen with longest mandatory literal string - == static void findmust(struct parse *p, struct re_guts *g); - * - * This algorithm could do fancy things like analyzing the operands of | - * for common subsequences. Someday. This code is simple and finds most - * of the interesting cases. - * - * Note that must and mlen got initialized during setup. - */ -static void -findmust(p, g) -struct parse *p; -struct re_guts *g; -{ - sop *scan; - sop *start = NULL; - sop *newstart = NULL; - sopno newlen; - sop s; - char *cp; - sopno i; - int offset; - int cs, mccs; - - /* avoid making error situations worse */ - if (p->error != 0) - return; - - /* Find out if we can handle OANYOF or not */ - mccs = 0; - for (cs = 0; cs < g->ncsets; cs++) - if (g->sets[cs].multis != NULL) - mccs = 1; - - /* find the longest OCHAR sequence in strip */ - newlen = 0; - offset = 0; - g->moffset = 0; - scan = g->strip + 1; - do { - s = *scan++; - switch (OP(s)) { - case OCHAR: /* sequence member */ - if (newlen == 0) /* new sequence */ - newstart = scan - 1; - newlen++; - break; - case OPLUS_: /* things that don't break one */ - case OLPAREN: - case ORPAREN: - break; - case OQUEST_: /* things that must be skipped */ - case OCH_: - offset = altoffset(scan, offset, mccs); - scan--; - do { - scan += OPND(s); - s = *scan; - /* assert() interferes w debug printouts */ - if (OP(s) != O_QUEST && OP(s) != O_CH && - OP(s) != OOR2) { - g->iflags |= BAD; - return; - } - } while (OP(s) != O_QUEST && OP(s) != O_CH); - /* fallthrough */ - case OBOW: /* things that break a sequence */ - case OEOW: - case OBOL: - case OEOL: - case O_QUEST: - case O_CH: - case OEND: - if (newlen > g->mlen) { /* ends one */ - start = newstart; - g->mlen = newlen; - if (offset > -1) { - g->moffset += offset; - offset = newlen; - } else - g->moffset = offset; - } else { - if (offset > -1) - offset += newlen; - } - newlen = 0; - break; - case OANY: - if (newlen > g->mlen) { /* ends one */ - start = newstart; - g->mlen = newlen; - if (offset > -1) { - g->moffset += offset; - offset = newlen; - } else - g->moffset = offset; - } else { - if (offset > -1) - offset += newlen; - } - if (offset > -1) - offset++; - newlen = 0; - break; - case OANYOF: /* may or may not invalidate offset */ - /* First, everything as OANY */ - if (newlen > g->mlen) { /* ends one */ - start = newstart; - g->mlen = newlen; - if (offset > -1) { - g->moffset += offset; - offset = newlen; - } else - g->moffset = offset; - } else { - if (offset > -1) - offset += newlen; - } - if (offset > -1) - offset++; - newlen = 0; - /* And, now, if we found out we can't deal with - * it, make offset = -1. - */ - if (mccs) - offset = -1; - break; - default: - /* Anything here makes it impossible or too hard - * to calculate the offset -- so we give up; - * save the last known good offset, in case the - * must sequence doesn't occur later. - */ - if (newlen > g->mlen) { /* ends one */ - start = newstart; - g->mlen = newlen; - if (offset > -1) - g->moffset += offset; - else - g->moffset = offset; - } - offset = -1; - newlen = 0; - break; - } - } while (OP(s) != OEND); - - if (g->mlen == 0) { /* there isn't one */ - g->moffset = -1; - return; - } - - /* turn it into a character string */ - g->must = malloc((size_t)g->mlen + 1); - if (g->must == NULL) { /* argh; just forget it */ - g->mlen = 0; - g->moffset = -1; - return; - } - cp = g->must; - scan = start; - for (i = g->mlen; i > 0; i--) { - while (OP(s = *scan++) != OCHAR) - continue; - assert(cp < g->must + g->mlen); - *cp++ = (char)OPND(s); - } - assert(cp == g->must + g->mlen); - *cp++ = '\0'; /* just on general principles */ -} - -/* - - altoffset - choose biggest offset among multiple choices - == static int altoffset(sop *scan, int offset, int mccs); - * - * Compute, recursively if necessary, the largest offset among multiple - * re paths. - */ -static int -altoffset(scan, offset, mccs) -sop *scan; -int offset; -int mccs; -{ - int largest; - int try; - sop s; - - /* If we gave up already on offsets, return */ - if (offset == -1) - return -1; - - largest = 0; - try = 0; - s = *scan++; - while (OP(s) != O_QUEST && OP(s) != O_CH) { - switch (OP(s)) { - case OOR1: - if (try > largest) - largest = try; - try = 0; - break; - case OQUEST_: - case OCH_: - try = altoffset(scan, try, mccs); - if (try == -1) - return -1; - scan--; - do { - scan += OPND(s); - s = *scan; - if (OP(s) != O_QUEST && OP(s) != O_CH && - OP(s) != OOR2) - return -1; - } while (OP(s) != O_QUEST && OP(s) != O_CH); - /* We must skip to the next position, or we'll - * leave altoffset() too early. - */ - scan++; - break; - case OANYOF: - if (mccs) - return -1; - case OCHAR: - case OANY: - try++; - case OBOW: - case OEOW: - case OLPAREN: - case ORPAREN: - case OOR2: - break; - default: - try = -1; - break; - } - if (try == -1) - return -1; - s = *scan++; - } - - if (try > largest) - largest = try; - - return largest+offset; -} - -/* - - computejumps - compute char jumps for BM scan - == static void computejumps(struct parse *p, struct re_guts *g); - * - * This algorithm assumes g->must exists and is has size greater than - * zero. It's based on the algorithm found on Computer Algorithms by - * Sara Baase. - * - * A char jump is the number of characters one needs to jump based on - * the value of the character from the text that was mismatched. - */ -static void -computejumps(p, g) -struct parse *p; -struct re_guts *g; -{ - int ch; - int mindex; - - /* Avoid making errors worse */ - if (p->error != 0) - return; - - g->charjump = (int*) malloc((NC + 1) * sizeof(int)); - if (g->charjump == NULL) /* Not a fatal error */ - return; - /* Adjust for signed chars, if necessary */ - g->charjump = &g->charjump[-(CHAR_MIN)]; - - /* If the character does not exist in the pattern, the jump - * is equal to the number of characters in the pattern. - */ - for (ch = CHAR_MIN; ch < (CHAR_MAX + 1); ch++) - g->charjump[ch] = g->mlen; - - /* If the character does exist, compute the jump that would - * take us to the last character in the pattern equal to it - * (notice that we match right to left, so that last character - * is the first one that would be matched). - */ - for (mindex = 0; mindex < g->mlen; mindex++) - g->charjump[(unsigned char) g->must[mindex]] = g->mlen - mindex - 1; -} - -/* - - computematchjumps - compute match jumps for BM scan - == static void computematchjumps(struct parse *p, struct re_guts *g); - * - * This algorithm assumes g->must exists and is has size greater than - * zero. It's based on the algorithm found on Computer Algorithms by - * Sara Baase. - * - * A match jump is the number of characters one needs to advance based - * on the already-matched suffix. - * Notice that all values here are minus (g->mlen-1), because of the way - * the search algorithm works. - */ -static void -computematchjumps(p, g) -struct parse *p; -struct re_guts *g; -{ - int mindex; /* General "must" iterator */ - int suffix; /* Keeps track of matching suffix */ - int ssuffix; /* Keeps track of suffixes' suffix */ - int* pmatches; /* pmatches[k] points to the next i - * such that i+1...mlen is a substring - * of k+1...k+mlen-i-1 - */ - - /* Avoid making errors worse */ - if (p->error != 0) - return; - - pmatches = (int*) malloc(g->mlen * sizeof(unsigned int)); - if (pmatches == NULL) { - g->matchjump = NULL; - return; - } - - g->matchjump = (int*) malloc(g->mlen * sizeof(unsigned int)); - if (g->matchjump == NULL) /* Not a fatal error */ - return; - - /* Set maximum possible jump for each character in the pattern */ - for (mindex = 0; mindex < g->mlen; mindex++) - g->matchjump[mindex] = 2*g->mlen - mindex - 1; - - /* Compute pmatches[] */ - for (mindex = g->mlen - 1, suffix = g->mlen; mindex >= 0; - mindex--, suffix--) { - pmatches[mindex] = suffix; - - /* If a mismatch is found, interrupting the substring, - * compute the matchjump for that position. If no - * mismatch is found, then a text substring mismatched - * against the suffix will also mismatch against the - * substring. - */ - while (suffix < g->mlen - && g->must[mindex] != g->must[suffix]) { - g->matchjump[suffix] = MIN(g->matchjump[suffix], - g->mlen - mindex - 1); - suffix = pmatches[suffix]; - } - } - - /* Compute the matchjump up to the last substring found to jump - * to the beginning of the largest must pattern prefix matching - * it's own suffix. - */ - for (mindex = 0; mindex <= suffix; mindex++) - g->matchjump[mindex] = MIN(g->matchjump[mindex], - g->mlen + suffix - mindex); - - ssuffix = pmatches[suffix]; - while (suffix < g->mlen) { - while (suffix <= ssuffix && suffix < g->mlen) { - g->matchjump[suffix] = MIN(g->matchjump[suffix], - g->mlen + ssuffix - suffix); - suffix++; - } - if (suffix < g->mlen) - ssuffix = pmatches[ssuffix]; - } - - free(pmatches); -} - -/* - - pluscount - count + nesting - == static sopno pluscount(struct parse *p, struct re_guts *g); - */ -static sopno /* nesting depth */ -pluscount(p, g) -struct parse *p; -struct re_guts *g; -{ - sop *scan; - sop s; - sopno plusnest = 0; - sopno maxnest = 0; - - if (p->error != 0) - return(0); /* there may not be an OEND */ - - scan = g->strip + 1; - do { - s = *scan++; - switch (OP(s)) { - case OPLUS_: - plusnest++; - break; - case O_PLUS: - if (plusnest > maxnest) - maxnest = plusnest; - plusnest--; - break; - } - } while (OP(s) != OEND); - if (plusnest != 0) - g->iflags |= BAD; - return(maxnest); -} - -#endif /* !_NO_REGEX */ diff --git a/lib/posix/regerror.c b/lib/posix/regerror.c deleted file mode 100644 index a48d37c..0000000 --- a/lib/posix/regerror.c +++ /dev/null @@ -1,178 +0,0 @@ -/*- - * Copyright (c) 1992, 1993, 1994 Henry Spencer. - * Copyright (c) 1992, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Henry Spencer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)regerror.c 8.4 (Berkeley) 3/20/94 - */ - -#ifndef _NO_REGEX - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)regerror.c 8.4 (Berkeley) 3/20/94"; -#endif /* LIBC_SCCS and not lint */ -#include - -#include -#include -#include -#include -#include -#include - -#include "utils.h" - -/* ========= begin header generated by ./mkh ========= */ -#ifdef __cplusplus -extern "C" { -#endif - -/* === regerror.c === */ -static char *regatoi(const regex_t *preg, char *localbuf); - -#ifdef __cplusplus -} -#endif -/* ========= end header generated by ./mkh ========= */ -/* - = #define REG_NOMATCH 1 - = #define REG_BADPAT 2 - = #define REG_ECOLLATE 3 - = #define REG_ECTYPE 4 - = #define REG_EESCAPE 5 - = #define REG_ESUBREG 6 - = #define REG_EBRACK 7 - = #define REG_EPAREN 8 - = #define REG_EBRACE 9 - = #define REG_BADBR 10 - = #define REG_ERANGE 11 - = #define REG_ESPACE 12 - = #define REG_BADRPT 13 - = #define REG_EMPTY 14 - = #define REG_ASSERT 15 - = #define REG_INVARG 16 - = #define REG_ATOI 255 // convert name to number (!) - = #define REG_ITOA 0400 // convert number to name (!) - */ -static struct rerr { - int code; - char *name; - char *explain; -} rerrs[] = { - {REG_NOMATCH, "REG_NOMATCH", "regexec() failed to match"}, - {REG_BADPAT, "REG_BADPAT", "invalid regular expression"}, - {REG_ECOLLATE, "REG_ECOLLATE", "invalid collating element"}, - {REG_ECTYPE, "REG_ECTYPE", "invalid character class"}, - {REG_EESCAPE, "REG_EESCAPE", "trailing backslash (\\)"}, - {REG_ESUBREG, "REG_ESUBREG", "invalid backreference number"}, - {REG_EBRACK, "REG_EBRACK", "brackets ([ ]) not balanced"}, - {REG_EPAREN, "REG_EPAREN", "parentheses not balanced"}, - {REG_EBRACE, "REG_EBRACE", "braces not balanced"}, - {REG_BADBR, "REG_BADBR", "invalid repetition count(s)"}, - {REG_ERANGE, "REG_ERANGE", "invalid character range"}, - {REG_ESPACE, "REG_ESPACE", "out of memory"}, - {REG_BADRPT, "REG_BADRPT", "repetition-operator operand invalid"}, - {REG_EMPTY, "REG_EMPTY", "empty (sub)expression"}, - {REG_ASSERT, "REG_ASSERT", "\"can't happen\" -- you found a bug"}, - {REG_INVARG, "REG_INVARG", "invalid argument to regex routine"}, - {0, "", "*** unknown regexp error code ***"} -}; - -/* - - regerror - the interface to error numbers - = extern size_t regerror(int, const regex_t *__restrict, - = char *__restrict, size_t); - */ -/* ARGSUSED */ -size_t -regerror(errcode, preg, errbuf, errbuf_size) -int errcode; -const regex_t *__restrict preg; -char *__restrict errbuf; -size_t errbuf_size; -{ - struct rerr *r; - size_t len; - int target = errcode &~ REG_ITOA; - char *s; - char convbuf[50]; - - if (errcode == REG_ATOI) - s = regatoi(preg, convbuf); - else { - for (r = rerrs; r->code != 0; r++) - if (r->code == target) - break; - - if (errcode®_ITOA) { - if (r->code != 0) - (void) strcpy(convbuf, r->name); - else - sprintf(convbuf, "REG_0x%x", target); - assert(strlen(convbuf) < sizeof(convbuf)); - s = convbuf; - } else - s = r->explain; - } - - len = strlen(s) + 1; - if (errbuf_size > 0) { - if (errbuf_size > len) - (void) strcpy(errbuf, s); - else { - (void) strncpy(errbuf, s, errbuf_size-1); - errbuf[errbuf_size-1] = '\0'; - } - } - - return(len); -} - -/* - - regatoi - internal routine to implement REG_ATOI - == static char *regatoi(const regex_t *preg, char *localbuf); - */ -static char * -regatoi(preg, localbuf) -const regex_t *preg; -char *localbuf; -{ - struct rerr *r; - - for (r = rerrs; r->code != 0; r++) - if (strcmp(r->name, preg->re_endp) == 0) - break; - if (r->code == 0) - return("0"); - - sprintf(localbuf, "%d", r->code); - return(localbuf); -} -#endif /* !_NO_REGEX */ diff --git a/lib/posix/regex.3 b/lib/posix/regex.3 deleted file mode 100644 index d9bf901..0000000 --- a/lib/posix/regex.3 +++ /dev/null @@ -1,697 +0,0 @@ -.\" Copyright (c) 1992, 1993, 1994 Henry Spencer. -.\" Copyright (c) 1992, 1993, 1994 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" This code is derived from software contributed to Berkeley by -.\" Henry Spencer. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)regex.3 8.4 (Berkeley) 3/20/94 -.\" $FreeBSD: src/lib/libc/regex/regex.3,v 1.9 2001/10/01 16:08:58 ru Exp $ -.\" -.Dd March 20, 1994 -.Dt REGEX 3 -.Os -.Sh NAME -.Nm regcomp , -.Nm regexec , -.Nm regerror , -.Nm regfree -.Nd regular-expression library -.Sh LIBRARY -.Lb libc -.Sh SYNOPSIS -.In sys/types.h -.In regex.h -.Ft int -.Fn regcomp "regex_t *restrict preg" "const char *_restrictpattern" "int cflags" -.Ft int -.Fo regexec -.Fa "const regex_t *_restrict preg" "const char *_restrict string" -.Fa "size_t nmatch" "regmatch_t pmatch[_restrict]" "int eflags" -.Fc -.Ft size_t -.Fo regerror -.Fa "int errcode" "const regex_t *_restrict preg" -.Fa "char *_restrict errbuf" "size_t errbuf_size" -.Fc -.Ft void -.Fn regfree "regex_t *preg" -.Sh DESCRIPTION -These routines implement -.St -p1003.2 -regular expressions -.Pq Do RE Dc Ns s ; -see -.Xr re_format 7 . -.Fn Regcomp -compiles an RE written as a string into an internal form, -.Fn regexec -matches that internal form against a string and reports results, -.Fn regerror -transforms error codes from either into human-readable messages, -and -.Fn regfree -frees any dynamically-allocated storage used by the internal form -of an RE. -.Pp -The header -.Aq Pa regex.h -declares two structure types, -.Ft regex_t -and -.Ft regmatch_t , -the former for compiled internal forms and the latter for match reporting. -It also declares the four functions, -a type -.Ft regoff_t , -and a number of constants with names starting with -.Dq Dv REG_ . -.Pp -.Fn Regcomp -compiles the regular expression contained in the -.Fa pattern -string, -subject to the flags in -.Fa cflags , -and places the results in the -.Ft regex_t -structure pointed to by -.Fa preg . -.Fa Cflags -is the bitwise OR of zero or more of the following flags: -.Bl -tag -width REG_EXTENDED -.It Dv REG_EXTENDED -Compile modern -.Pq Dq extended -REs, -rather than the obsolete -.Pq Dq basic -REs that -are the default. -.It Dv REG_BASIC -This is a synonym for 0, -provided as a counterpart to -.Dv REG_EXTENDED -to improve readability. -.It Dv REG_NOSPEC -Compile with recognition of all special characters turned off. -All characters are thus considered ordinary, -so the -.Dq RE -is a literal string. -This is an extension, -compatible with but not specified by -.St -p1003.2 , -and should be used with -caution in software intended to be portable to other systems. -.Dv REG_EXTENDED -and -.Dv REG_NOSPEC -may not be used -in the same call to -.Fn regcomp . -.It Dv REG_ICASE -Compile for matching that ignores upper/lower case distinctions. -See -.Xr re_format 7 . -.It Dv REG_NOSUB -Compile for matching that need only report success or failure, -not what was matched. -.It Dv REG_NEWLINE -Compile for newline-sensitive matching. -By default, newline is a completely ordinary character with no special -meaning in either REs or strings. -With this flag, -.Ql [^ -bracket expressions and -.Ql .\& -never match newline, -a -.Ql ^\& -anchor matches the null string after any newline in the string -in addition to its normal function, -and the -.Ql $\& -anchor matches the null string before any newline in the -string in addition to its normal function. -.It Dv REG_PEND -The regular expression ends, -not at the first NUL, -but just before the character pointed to by the -.Va re_endp -member of the structure pointed to by -.Fa preg . -The -.Va re_endp -member is of type -.Ft "const char *" . -This flag permits inclusion of NULs in the RE; -they are considered ordinary characters. -This is an extension, -compatible with but not specified by -.St -p1003.2 , -and should be used with -caution in software intended to be portable to other systems. -.El -.Pp -When successful, -.Fn regcomp -returns 0 and fills in the structure pointed to by -.Fa preg . -One member of that structure -(other than -.Va re_endp ) -is publicized: -.Va re_nsub , -of type -.Ft size_t , -contains the number of parenthesized subexpressions within the RE -(except that the value of this member is undefined if the -.Dv REG_NOSUB -flag was used). -If -.Fn regcomp -fails, it returns a non-zero error code; -see -.Sx DIAGNOSTICS . -.Pp -.Fn Regexec -matches the compiled RE pointed to by -.Fa preg -against the -.Fa string , -subject to the flags in -.Fa eflags , -and reports results using -.Fa nmatch , -.Fa pmatch , -and the returned value. -The RE must have been compiled by a previous invocation of -.Fn regcomp . -The compiled form is not altered during execution of -.Fn regexec , -so a single compiled RE can be used simultaneously by multiple threads. -.Pp -By default, -the NUL-terminated string pointed to by -.Fa string -is considered to be the text of an entire line, minus any terminating -newline. -The -.Fa eflags -argument is the bitwise OR of zero or more of the following flags: -.Bl -tag -width REG_STARTEND -.It Dv REG_NOTBOL -The first character of -the string -is not the beginning of a line, so the -.Ql ^\& -anchor should not match before it. -This does not affect the behavior of newlines under -.Dv REG_NEWLINE . -.It Dv REG_NOTEOL -The NUL terminating -the string -does not end a line, so the -.Ql $\& -anchor should not match before it. -This does not affect the behavior of newlines under -.Dv REG_NEWLINE . -.It Dv REG_STARTEND -The string is considered to start at -.Fa string -+ -.Fa pmatch Ns [0]. Ns Va rm_so -and to have a terminating NUL located at -.Fa string -+ -.Fa pmatch Ns [0]. Ns Va rm_eo -(there need not actually be a NUL at that location), -regardless of the value of -.Fa nmatch . -See below for the definition of -.Fa pmatch -and -.Fa nmatch . -This is an extension, -compatible with but not specified by -.St -p1003.2 , -and should be used with -caution in software intended to be portable to other systems. -Note that a non-zero -.Va rm_so -does not imply -.Dv REG_NOTBOL ; -.Dv REG_STARTEND -affects only the location of the string, -not how it is matched. -.El -.Pp -See -.Xr re_format 7 -for a discussion of what is matched in situations where an RE or a -portion thereof could match any of several substrings of -.Fa string . -.Pp -Normally, -.Fn regexec -returns 0 for success and the non-zero code -.Dv REG_NOMATCH -for failure. -Other non-zero error codes may be returned in exceptional situations; -see -.Sx DIAGNOSTICS . -.Pp -If -.Dv REG_NOSUB -was specified in the compilation of the RE, -or if -.Fa nmatch -is 0, -.Fn regexec -ignores the -.Fa pmatch -argument (but see below for the case where -.Dv REG_STARTEND -is specified). -Otherwise, -.Fa pmatch -points to an array of -.Fa nmatch -structures of type -.Ft regmatch_t . -Such a structure has at least the members -.Va rm_so -and -.Va rm_eo , -both of type -.Ft regoff_t -(a signed arithmetic type at least as large as an -.Ft off_t -and a -.Ft ssize_t ) , -containing respectively the offset of the first character of a substring -and the offset of the first character after the end of the substring. -Offsets are measured from the beginning of the -.Fa string -argument given to -.Fn regexec . -An empty substring is denoted by equal offsets, -both indicating the character following the empty substring. -.Pp -The 0th member of the -.Fa pmatch -array is filled in to indicate what substring of -.Fa string -was matched by the entire RE. -Remaining members report what substring was matched by parenthesized -subexpressions within the RE; -member -.Va i -reports subexpression -.Va i , -with subexpressions counted (starting at 1) by the order of their opening -parentheses in the RE, left to right. -Unused entries in the array (corresponding either to subexpressions that -did not participate in the match at all, or to subexpressions that do not -exist in the RE (that is, -.Va i -> -.Fa preg Ns -> Ns Va re_nsub ) ) -have both -.Va rm_so -and -.Va rm_eo -set to -1. -If a subexpression participated in the match several times, -the reported substring is the last one it matched. -(Note, as an example in particular, that when the RE -.Ql "(b*)+" -matches -.Ql bbb , -the parenthesized subexpression matches each of the three -.So Li b Sc Ns s -and then -an infinite number of empty strings following the last -.Ql b , -so the reported substring is one of the empties.) -.Pp -If -.Dv REG_STARTEND -is specified, -.Fa pmatch -must point to at least one -.Ft regmatch_t -(even if -.Fa nmatch -is 0 or -.Dv REG_NOSUB -was specified), -to hold the input offsets for -.Dv REG_STARTEND . -Use for output is still entirely controlled by -.Fa nmatch ; -if -.Fa nmatch -is 0 or -.Dv REG_NOSUB -was specified, -the value of -.Fa pmatch Ns [0] -will not be changed by a successful -.Fn regexec . -.Pp -.Fn Regerror -maps a non-zero -.Fa errcode -from either -.Fn regcomp -or -.Fn regexec -to a human-readable, printable message. -If -.Fa preg -is -.No non\- Ns Dv NULL , -the error code should have arisen from use of -the -.Ft regex_t -pointed to by -.Fa preg , -and if the error code came from -.Fn regcomp , -it should have been the result from the most recent -.Fn regcomp -using that -.Ft regex_t . -.No ( Fn Regerror -may be able to supply a more detailed message using information -from the -.Ft regex_t . ) -.Fn Regerror -places the NUL-terminated message into the buffer pointed to by -.Fa errbuf , -limiting the length (including the NUL) to at most -.Fa errbuf_size -bytes. -If the whole message won't fit, -as much of it as will fit before the terminating NUL is supplied. -In any case, -the returned value is the size of buffer needed to hold the whole -message (including terminating NUL). -If -.Fa errbuf_size -is 0, -.Fa errbuf -is ignored but the return value is still correct. -.Pp -If the -.Fa errcode -given to -.Fn regerror -is first ORed with -.Dv REG_ITOA , -the -.Dq message -that results is the printable name of the error code, -e.g.\& -.Dq Dv REG_NOMATCH , -rather than an explanation thereof. -If -.Fa errcode -is -.Dv REG_ATOI , -then -.Fa preg -shall be -.No non\- Ns Dv NULL -and the -.Va re_endp -member of the structure it points to -must point to the printable name of an error code; -in this case, the result in -.Fa errbuf -is the decimal digits of -the numeric value of the error code -(0 if the name is not recognized). -.Dv REG_ITOA -and -.Dv REG_ATOI -are intended primarily as debugging facilities; -they are extensions, -compatible with but not specified by -.St -p1003.2 , -and should be used with -caution in software intended to be portable to other systems. -Be warned also that they are considered experimental and changes are possible. -.Pp -.Fn Regfree -frees any dynamically-allocated storage associated with the compiled RE -pointed to by -.Fa preg . -The remaining -.Ft regex_t -is no longer a valid compiled RE -and the effect of supplying it to -.Fn regexec -or -.Fn regerror -is undefined. -.Pp -None of these functions references global variables except for tables -of constants; -all are safe for use from multiple threads if the arguments are safe. -.Sh IMPLEMENTATION CHOICES -There are a number of decisions that -.St -p1003.2 -leaves up to the implementor, -either by explicitly saying -.Dq undefined -or by virtue of them being -forbidden by the RE grammar. -This implementation treats them as follows. -.Pp -See -.Xr re_format 7 -for a discussion of the definition of case-independent matching. -.Pp -There is no particular limit on the length of REs, -except insofar as memory is limited. -Memory usage is approximately linear in RE size, and largely insensitive -to RE complexity, except for bounded repetitions. -See -.Sx BUGS -for one short RE using them -that will run almost any system out of memory. -.Pp -A backslashed character other than one specifically given a magic meaning -by -.St -p1003.2 -(such magic meanings occur only in obsolete -.Bq Dq basic -REs) -is taken as an ordinary character. -.Pp -Any unmatched -.Ql [\& -is a -.Dv REG_EBRACK -error. -.Pp -Equivalence classes cannot begin or end bracket-expression ranges. -The endpoint of one range cannot begin another. -.Pp -.Dv RE_DUP_MAX , -the limit on repetition counts in bounded repetitions, is 255. -.Pp -A repetition operator -.Ql ( ?\& , -.Ql *\& , -.Ql +\& , -or bounds) -cannot follow another -repetition operator. -A repetition operator cannot begin an expression or subexpression -or follow -.Ql ^\& -or -.Ql |\& . -.Pp -.Ql |\& -cannot appear first or last in a (sub)expression or after another -.Ql |\& , -i.e. an operand of -.Ql |\& -cannot be an empty subexpression. -An empty parenthesized subexpression, -.Ql "()" , -is legal and matches an -empty (sub)string. -An empty string is not a legal RE. -.Pp -A -.Ql {\& -followed by a digit is considered the beginning of bounds for a -bounded repetition, which must then follow the syntax for bounds. -A -.Ql {\& -.Em not -followed by a digit is considered an ordinary character. -.Pp -.Ql ^\& -and -.Ql $\& -beginning and ending subexpressions in obsolete -.Pq Dq basic -REs are anchors, not ordinary characters. -.Sh SEE ALSO -.Xr grep 1 , -.Xr re_format 7 -.Pp -.St -p1003.2 , -sections 2.8 (Regular Expression Notation) -and -B.5 (C Binding for Regular Expression Matching). -.Sh DIAGNOSTICS -Non-zero error codes from -.Fn regcomp -and -.Fn regexec -include the following: -.Pp -.Bl -tag -width REG_ECOLLATE -compact -.It Dv REG_NOMATCH -.Fn regexec -failed to match -.It Dv REG_BADPAT -invalid regular expression -.It Dv REG_ECOLLATE -invalid collating element -.It Dv REG_ECTYPE -invalid character class -.It Dv REG_EESCAPE -.Ql \e -applied to unescapable character -.It Dv REG_ESUBREG -invalid backreference number -.It Dv REG_EBRACK -brackets -.Ql "[ ]" -not balanced -.It Dv REG_EPAREN -parentheses -.Ql "( )" -not balanced -.It Dv REG_EBRACE -braces -.Ql "{ }" -not balanced -.It Dv REG_BADBR -invalid repetition count(s) in -.Ql "{ }" -.It Dv REG_ERANGE -invalid character range in -.Ql "[ ]" -.It Dv REG_ESPACE -ran out of memory -.It Dv REG_BADRPT -.Ql ?\& , -.Ql *\& , -or -.Ql +\& -operand invalid -.It Dv REG_EMPTY -empty (sub)expression -.It Dv REG_ASSERT -can't happen - you found a bug -.It Dv REG_INVARG -invalid argument, e.g. negative-length string -.El -.Sh HISTORY -Originally written by -.An Henry Spencer . -Altered for inclusion in the -.Bx 4.4 -distribution. -.Sh BUGS -This is an alpha release with known defects. -Please report problems. -.Pp -The back-reference code is subtle and doubts linger about its correctness -in complex cases. -.Pp -.Fn Regexec -performance is poor. -This will improve with later releases. -.Fa Nmatch -exceeding 0 is expensive; -.Fa nmatch -exceeding 1 is worse. -.Fn Regexec -is largely insensitive to RE complexity -.Em except -that back -references are massively expensive. -RE length does matter; in particular, there is a strong speed bonus -for keeping RE length under about 30 characters, -with most special characters counting roughly double. -.Pp -.Fn Regcomp -implements bounded repetitions by macro expansion, -which is costly in time and space if counts are large -or bounded repetitions are nested. -An RE like, say, -.Ql "((((a{1,100}){1,100}){1,100}){1,100}){1,100}" -will (eventually) run almost any existing machine out of swap space. -.Pp -There are suspected problems with response to obscure error conditions. -Notably, -certain kinds of internal overflow, -produced only by truly enormous REs or by multiply nested bounded repetitions, -are probably not handled well. -.Pp -Due to a mistake in -.St -p1003.2 , -things like -.Ql "a)b" -are legal REs because -.Ql )\& -is -a special character only in the presence of a previous unmatched -.Ql (\& . -This can't be fixed until the spec is fixed. -.Pp -The standard's definition of back references is vague. -For example, does -.Ql "a\e(\e(b\e)*\e2\e)*d" -match -.Ql "abbbd" ? -Until the standard is clarified, -behavior in such cases should not be relied on. -.Pp -The implementation of word-boundary matching is a bit of a kludge, -and bugs may lurk in combinations of word-boundary matching and anchoring. diff --git a/lib/posix/regex2.h b/lib/posix/regex2.h deleted file mode 100644 index 595bd89..0000000 --- a/lib/posix/regex2.h +++ /dev/null @@ -1,173 +0,0 @@ -/*- - * Copyright (c) 1992, 1993, 1994 Henry Spencer. - * Copyright (c) 1992, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Henry Spencer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)regex2.h 8.4 (Berkeley) 3/20/94 - * $FreeBSD: src/lib/libc/regex/regex2.h,v 1.6 2002/03/22 23:41:56 obrien Exp $ - */ - -/* - * First, the stuff that ends up in the outside-world include file - = typedef off_t regoff_t; - = typedef struct { - = int re_magic; - = size_t re_nsub; // number of parenthesized subexpressions - = const char *re_endp; // end pointer for REG_PEND - = struct re_guts *re_g; // none of your business :-) - = } regex_t; - = typedef struct { - = regoff_t rm_so; // start of match - = regoff_t rm_eo; // end of match - = } regmatch_t; - */ -/* - * internals of regex_t - */ -#define MAGIC1 ((('r'^0200)<<8) | 'e') - -/* - * The internal representation is a *strip*, a sequence of - * operators ending with an endmarker. (Some terminology etc. is a - * historical relic of earlier versions which used multiple strips.) - * Certain oddities in the representation are there to permit running - * the machinery backwards; in particular, any deviation from sequential - * flow must be marked at both its source and its destination. Some - * fine points: - * - * - OPLUS_ and O_PLUS are *inside* the loop they create. - * - OQUEST_ and O_QUEST are *outside* the bypass they create. - * - OCH_ and O_CH are *outside* the multi-way branch they create, while - * OOR1 and OOR2 are respectively the end and the beginning of one of - * the branches. Note that there is an implicit OOR2 following OCH_ - * and an implicit OOR1 preceding O_CH. - * - * In state representations, an operator's bit is on to signify a state - * immediately *preceding* "execution" of that operator. - */ -typedef unsigned long sop; /* strip operator */ -typedef long sopno; -#define OPRMASK 0xf8000000L -#define OPDMASK 0x07ffffffL -#define OPSHIFT ((unsigned)27) -#define OP(n) ((n)&OPRMASK) -#define OPND(n) ((n)&OPDMASK) -#define SOP(op, opnd) ((op)|(opnd)) -/* operators meaning operand */ -/* (back, fwd are offsets) */ -#define OEND (1L< uch [csetsize] */ - uch mask; /* bit within array */ - short hash; /* hash code */ - size_t smultis; - char *multis; /* -> char[smulti] ab\0cd\0ef\0\0 */ -} cset; -/* note that CHadd and CHsub are unsafe, and CHIN doesn't yield 0/1 */ -#define CHadd(cs, c) ((cs)->ptr[(uch)(c)] |= (cs)->mask, (cs)->hash += (uch)(c)) -#define CHsub(cs, c) ((cs)->ptr[(uch)(c)] &= ~(cs)->mask, (cs)->hash -= (uch)(c)) -#define CHIN(cs, c) ((cs)->ptr[(uch)(c)] & (cs)->mask) -#define MCadd(p, cs, cp) mcadd(p, cs, cp) /* regcomp() internal fns */ -#define MCsub(p, cs, cp) mcsub(p, cs, cp) -#define MCin(p, cs, cp) mcin(p, cs, cp) - -/* stuff for character categories */ -typedef unsigned char cat_t; - -/* - * main compiled-expression structure - */ -struct re_guts { - int magic; -# define MAGIC2 ((('R'^0200)<<8)|'E') - sop *strip; /* malloced area for strip */ - int csetsize; /* number of bits in a cset vector */ - int ncsets; /* number of csets in use */ - cset *sets; /* -> cset [ncsets] */ - uch *setbits; /* -> uch[csetsize][ncsets/CHAR_BIT] */ - int cflags; /* copy of regcomp() cflags argument */ - sopno nstates; /* = number of sops */ - sopno firststate; /* the initial OEND (normally 0) */ - sopno laststate; /* the final OEND */ - int iflags; /* internal flags */ -# define USEBOL 01 /* used ^ */ -# define USEEOL 02 /* used $ */ -# define BAD 04 /* something wrong */ - int nbol; /* number of ^ used */ - int neol; /* number of $ used */ - int ncategories; /* how many character categories */ - cat_t *categories; /* ->catspace[-CHAR_MIN] */ - char *must; /* match must contain this string */ - int moffset; /* latest point at which must may be located */ - int *charjump; /* Boyer-Moore char jump table */ - int *matchjump; /* Boyer-Moore match jump table */ - int mlen; /* length of must */ - size_t nsub; /* copy of re_nsub */ - int backrefs; /* does it use back references? */ - sopno nplus; /* how deep does it nest +s? */ - /* catspace must be last */ - cat_t catspace[1]; /* actually [NC] */ -}; - -/* misc utilities */ -#define OUT (CHAR_MAX+1) /* a non-character value */ -#define ISWORD(c) (isalnum((uch)(c)) || (c) == '_') diff --git a/lib/posix/regexec.c b/lib/posix/regexec.c deleted file mode 100644 index 6e39e9e..0000000 --- a/lib/posix/regexec.c +++ /dev/null @@ -1,184 +0,0 @@ -/*- - * Copyright (c) 1992, 1993, 1994 Henry Spencer. - * Copyright (c) 1992, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Henry Spencer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)regexec.c 8.3 (Berkeley) 3/20/94 - */ - -#ifndef _NO_REGEX - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)regexec.c 8.3 (Berkeley) 3/20/94"; -#endif /* LIBC_SCCS and not lint */ -#include - -/* - * the outer shell of regexec() - * - * This file includes engine.c *twice*, after muchos fiddling with the - * macros that code uses. This lets the same code operate on two different - * representations for state sets. - */ -#include -#include -#include -#include -#include -#include -#include - -#include "utils.h" -#include "regex2.h" - -#ifndef NDEBUG -static int nope = 0; /* for use in asserts; shuts lint up */ -#endif - -/* macros for manipulating states, small version */ -#define states long -#define states1 states /* for later use in regexec() decision */ -#define CLEAR(v) ((v) = 0) -#define SET0(v, n) ((v) &= ~((unsigned long)1 << (n))) -#define SET1(v, n) ((v) |= (unsigned long)1 << (n)) -#define ISSET(v, n) (((v) & ((unsigned long)1 << (n))) != 0) -#define ASSIGN(d, s) ((d) = (s)) -#define EQ(a, b) ((a) == (b)) -#define STATEVARS long dummy /* dummy version */ -#define STATESETUP(m, n) /* nothing */ -#define STATETEARDOWN(m) /* nothing */ -#define SETUP(v) ((v) = 0) -#define onestate long -#define INIT(o, n) ((o) = (unsigned long)1 << (n)) -#define INC(o) ((o) <<= 1) -#define ISSTATEIN(v, o) (((v) & (o)) != 0) -/* some abbreviations; note that some of these know variable names! */ -/* do "if I'm here, I can also be there" etc without branches */ -#define FWD(dst, src, n) ((dst) |= ((unsigned long)(src)&(here)) << (n)) -#define BACK(dst, src, n) ((dst) |= ((unsigned long)(src)&(here)) >> (n)) -#define ISSETBACK(v, n) (((v) & ((unsigned long)here >> (n))) != 0) -/* function names */ -#define SNAMES /* engine.c looks after details */ - -#include "engine.c" - -/* now undo things */ -#undef states -#undef CLEAR -#undef SET0 -#undef SET1 -#undef ISSET -#undef ASSIGN -#undef EQ -#undef STATEVARS -#undef STATESETUP -#undef STATETEARDOWN -#undef SETUP -#undef onestate -#undef INIT -#undef INC -#undef ISSTATEIN -#undef FWD -#undef BACK -#undef ISSETBACK -#undef SNAMES - -/* macros for manipulating states, large version */ -#define states char * -#define CLEAR(v) memset(v, 0, m->g->nstates) -#define SET0(v, n) ((v)[n] = 0) -#define SET1(v, n) ((v)[n] = 1) -#define ISSET(v, n) ((v)[n]) -#define ASSIGN(d, s) memcpy(d, s, m->g->nstates) -#define EQ(a, b) (memcmp(a, b, m->g->nstates) == 0) -#define STATEVARS long vn; char *space -#define STATESETUP(m, nv) { (m)->space = malloc((nv)*(m)->g->nstates); \ - if ((m)->space == NULL) return(REG_ESPACE); \ - (m)->vn = 0; } -#define STATETEARDOWN(m) { free((m)->space); } -#define SETUP(v) ((v) = &m->space[m->vn++ * m->g->nstates]) -#define onestate long -#define INIT(o, n) ((o) = (n)) -#define INC(o) ((o)++) -#define ISSTATEIN(v, o) ((v)[o]) -/* some abbreviations; note that some of these know variable names! */ -/* do "if I'm here, I can also be there" etc without branches */ -#define FWD(dst, src, n) ((dst)[here+(n)] |= (src)[here]) -#define BACK(dst, src, n) ((dst)[here-(n)] |= (src)[here]) -#define ISSETBACK(v, n) ((v)[here - (n)]) -/* function names */ -#define LNAMES /* flag */ - -#include "engine.c" - -/* - - regexec - interface for matching - = extern int regexec(const regex_t *__restrict, const char *__restrict, - = size_t, regmatch_t [__restrict], int); - = #define REG_NOTBOL 00001 - = #define REG_NOTEOL 00002 - = #define REG_STARTEND 00004 - = #define REG_TRACE 00400 // tracing of execution - = #define REG_LARGE 01000 // force large representation - = #define REG_BACKR 02000 // force use of backref code - * - * We put this here so we can exploit knowledge of the state representation - * when choosing which matcher to call. Also, by this point the matchers - * have been prototyped. - */ -int /* 0 success, REG_NOMATCH failure */ -regexec(preg, string, nmatch, pmatch, eflags) -const regex_t *__restrict preg; -const char *__restrict string; -size_t nmatch; -regmatch_t pmatch[__restrict]; -int eflags; -{ - struct re_guts *g = preg->re_g; -#ifdef REDEBUG -# define GOODFLAGS(f) (f) -#else -# define GOODFLAGS(f) ((f)&(REG_NOTBOL|REG_NOTEOL|REG_STARTEND)) -#endif - - if (preg->re_magic != MAGIC1 || g->magic != MAGIC2) - return(REG_BADPAT); - assert(!(g->iflags&BAD)); - if (g->iflags&BAD) /* backstop for no-debug case */ - return(REG_BADPAT); - eflags = GOODFLAGS(eflags); - - if (g->nstates <= CHAR_BIT*sizeof(states1) && !(eflags®_LARGE)) - return(smatcher(g, (char *)string, nmatch, pmatch, eflags)); - else - return(lmatcher(g, (char *)string, nmatch, pmatch, eflags)); -} - -#endif /* !_NO_REGEX */ diff --git a/lib/posix/regfree.c b/lib/posix/regfree.c deleted file mode 100644 index bed8f91..0000000 --- a/lib/posix/regfree.c +++ /dev/null @@ -1,86 +0,0 @@ -/*- - * Copyright (c) 1992, 1993, 1994 Henry Spencer. - * Copyright (c) 1992, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Henry Spencer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)regfree.c 8.3 (Berkeley) 3/20/94 - */ - -#ifndef _NO_REGEX - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)regfree.c 8.3 (Berkeley) 3/20/94"; -#endif /* LIBC_SCCS and not lint */ -#include - -#include -#include -#include -#include -#include - -#include "utils.h" -#include "regex2.h" - -/* - - regfree - free everything - = extern void regfree(regex_t *); - */ -void -regfree(preg) -regex_t *preg; -{ - struct re_guts *g; - - if (preg->re_magic != MAGIC1) /* oops */ - return; /* nice to complain, but hard */ - - g = preg->re_g; - if (g == NULL || g->magic != MAGIC2) /* oops again */ - return; - preg->re_magic = 0; /* mark it invalid */ - g->magic = 0; /* mark it invalid */ - - if (g->strip != NULL) - free((char *)g->strip); - if (g->sets != NULL) - free((char *)g->sets); - if (g->setbits != NULL) - free((char *)g->setbits); - if (g->must != NULL) - free(g->must); - if (g->charjump != NULL) - free(&g->charjump[CHAR_MIN]); - if (g->matchjump != NULL) - free(g->matchjump); - free((char *)g); -} - -#endif /* !_NO_REGEX */ diff --git a/lib/posix/rewinddir.c b/lib/posix/rewinddir.c deleted file mode 100644 index da5e0de..0000000 --- a/lib/posix/rewinddir.c +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef HAVE_OPENDIR - -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)rewinddir.c 5.1 (Berkeley) 5/25/90"; -#endif /* LIBC_SCCS and not lint */ - -#include -#include -#include - -void -rewinddir (DIR *dirp) -{ -#ifdef HAVE_DD_LOCK - __lock_acquire_recursive(dirp->dd_lock); -#endif - _seekdir((dirp), 0L); -#ifdef HAVE_DD_LOCK - __lock_release_recursive(dirp->dd_lock); -#endif -} - -#endif /* ! HAVE_OPENDIR */ diff --git a/lib/posix/rune.h b/lib/posix/rune.h deleted file mode 100644 index 888e6fb..0000000 --- a/lib/posix/rune.h +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * Copyright (c) 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Paul Borman at Krystal Technologies. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)rune.h 8.1 (Berkeley) 6/27/93 - * $FreeBSD: src/include/rune.h,v 1.2 2002/03/23 17:24:53 imp Exp $ - */ - -#ifndef _RUNE_H_ -#define _RUNE_H_ - -#include "runetype.h" -#include - -#define _PATH_LOCALE "/usr/share/locale" - -#define _INVALID_RUNE _CurrentRuneLocale->invalid_rune - -#define __sgetrune _CurrentRuneLocale->sgetrune -#define __sputrune _CurrentRuneLocale->sputrune - -#define sgetrune(s, n, r) (*__sgetrune)((s), (n), (r)) -#define sputrune(c, s, n, r) (*__sputrune)((c), (s), (n), (r)) - -__BEGIN_DECLS -char *mbrune(const char *, rune_t); -char *mbrrune(const char *, rune_t); -char *mbmb(const char *, char *); -long fgetrune(FILE *); -int fputrune(rune_t, FILE *); -int fungetrune(rune_t, FILE *); -int setrunelocale(char *); -void setinvalidrune(rune_t); -__END_DECLS - -#endif /*! _RUNE_H_ */ diff --git a/lib/posix/runetype.h b/lib/posix/runetype.h deleted file mode 100644 index 4562521..0000000 --- a/lib/posix/runetype.h +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * Copyright (c) 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Paul Borman at Krystal Technologies. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)runetype.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/include/runetype.h,v 1.5 2002/03/26 01:35:05 bde Exp $ - */ - -#ifndef _RUNETYPE_H_ -#define _RUNETYPE_H_ - -#include -#include -#include - -#ifdef _BSD_RUNE_T_ -typedef _BSD_RUNE_T_ rune_t; -#undef _BSD_RUNE_T_ -#else -typedef int rune_t; -#endif - -#define _CACHED_RUNES (1 <<8 ) /* Must be a power of 2 */ -#define _CRMASK (~(_CACHED_RUNES - 1)) - -/* - * The lower 8 bits of runetype[] contain the digit value of the rune. - */ -typedef struct { - rune_t min; /* First rune of the range */ - rune_t max; /* Last rune (inclusive) of the range */ - rune_t map; /* What first maps to in maps */ - unsigned long *types; /* Array of types in range */ -} _RuneEntry; - -typedef struct { - int nranges; /* Number of ranges stored */ - _RuneEntry *ranges; /* Pointer to the ranges */ -} _RuneRange; - -typedef struct { - char magic[8]; /* Magic saying what version we are */ - char encoding[32]; /* ASCII name of this encoding */ - - rune_t (*sgetrune)(const char *, size_t, char const **); - int (*sputrune)(rune_t, char *, size_t, char **); - rune_t invalid_rune; - - unsigned long runetype[_CACHED_RUNES]; - rune_t maplower[_CACHED_RUNES]; - rune_t mapupper[_CACHED_RUNES]; - - /* - * The following are to deal with Runes larger than _CACHED_RUNES - 1. - * Their data is actually contiguous with this structure so as to make - * it easier to read/write from/to disk. - */ - _RuneRange runetype_ext; - _RuneRange maplower_ext; - _RuneRange mapupper_ext; - - void *variable; /* Data which depends on the encoding */ - int variable_len; /* how long that data is */ -} _RuneLocale; - -#define _RUNE_MAGIC_1 "RuneMagi" /* Indicates version 0 of RuneLocale */ - -extern _RuneLocale _DefaultRuneLocale; -extern _RuneLocale *_CurrentRuneLocale; - -#endif /* !_RUNETYPE_H_ */ diff --git a/lib/posix/scandir.c b/lib/posix/scandir.c deleted file mode 100644 index 7fd0089..0000000 --- a/lib/posix/scandir.c +++ /dev/null @@ -1,157 +0,0 @@ -#ifndef HAVE_OPENDIR - -/*- - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright (c) 1983, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -__SCCSID("@(#)scandir.c 8.3 (Berkeley) 1/2/94"); -__FBSDID("$FreeBSD: head/lib/libc/gen/scandir.c 335898 2018-07-03 17:31:45Z jhb $"); - -/* - * Scan the directory dirname calling select to make a list of selected - * directory entries then sort using qsort and compare routine dcomp. - * Returns the number of entries and a pointer to a list of pointers to - * struct dirent (through namelist). Returns -1 if there were any errors. - */ - -#include -#include -#include -#include -#include - -/* - * The DIRSIZ macro gives the minimum record length which will hold - * the directory entry. This requires the amount of space in struct dirent - * without the d_name field, plus enough space for the name with a terminating - * null byte (dp->d_namlen+1), rounded up to a 4 byte boundary. - */ -#undef DIRSIZ -#ifdef _DIRENT_HAVE_D_NAMLEN -#define DIRSIZ(dp) \ - (offsetof (struct dirent, d_name) + (((dp)->d_namlen+1 + 3) &~ 3)) -#else -#define DIRSIZ(dp) \ - (offsetof (struct dirent, d_name) + ((strlen((dp)->d_name)+1 + 3) &~ 3)) -#endif - - -int -scandir(const char *dirname, struct dirent ***namelist, - int (*select)(const struct dirent *), int (*dcomp)(const struct dirent **, - const struct dirent **)) -{ - register struct dirent *d, *p, **names = NULL; - register size_t arraysz, numitems; - DIR *dirp; - - if ((dirp = opendir(dirname)) == NULL) - return(-1); -#ifdef HAVE_DD_LOCK - __lock_acquire_recursive(dirp->dd_lock); -#endif - - numitems = 0; - arraysz = 32; /* initial estimate of the array size */ - names = (struct dirent **)malloc(arraysz * sizeof(struct dirent *)); - if (names == NULL) - goto fail; - - while ((d = readdir(dirp)) != NULL) { - if (select != NULL && !(*select)(d)) - continue; /* just selected names */ - /* - * Make a minimum size copy of the data - */ - p = (struct dirent *)malloc(DIRSIZ(d)); - if (p == NULL) - goto fail; - p->d_ino = d->d_ino; -#ifdef DT_UNKNOWN - p->d_type = d->d_type; -#endif - p->d_reclen = d->d_reclen; -#ifdef _DIRENT_HAVE_D_NAMLEN - p->d_namlen = d->d_namlen; - bcopy(d->d_name, p->d_name, p->d_namlen + 1); -#else - strcpy(p->d_name, d->d_name); -#endif - /* - * Check to make sure the array has space left and - * realloc the maximum size. - */ - if (numitems >= arraysz) { - struct dirent **names2; - - names2 = reallocarray(names, arraysz, - 2 * sizeof(struct dirent *)); - if (names2 == NULL) { - free(p); - goto fail; - } - names = names2; - arraysz *= 2; - } - names[numitems++] = p; - } - closedir(dirp); - if (numitems && dcomp != NULL) - qsort(names, numitems, sizeof(struct dirent *), (void *)dcomp); - *namelist = names; -#ifdef HAVE_DD_LOCK - __lock_release_recursive(dirp->dd_lock); -#endif - return (numitems); - -fail: - while (numitems > 0) - free(names[--numitems]); - free(names); - closedir(dirp); -#ifdef HAVE_DD_LOCK - __lock_release_recursive(dirp->dd_lock); -#endif - return (-1); -} - -/* - * Alphabetic order comparison routine for those who want it. - * POSIX 2008 requires that alphasort() uses strcoll(). - */ -int -alphasort(const struct dirent **d1, const struct dirent **d2) -{ - - return (strcoll((*d1)->d_name, (*d2)->d_name)); -} - -#endif /* ! HAVE_OPENDIR */ diff --git a/lib/posix/seekdir.c b/lib/posix/seekdir.c deleted file mode 100644 index cb47bb1..0000000 --- a/lib/posix/seekdir.c +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef HAVE_OPENDIR - -/* - * Copyright (c) 1983 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)seekdir.c 5.7 (Berkeley) 6/1/90"; -#endif /* LIBC_SCCS and not lint */ - -#include -#include -#include - -/* - * Seek to an entry in a directory. - * _seekdir is in telldir.c so that it can share opaque data structures. - */ -void -seekdir (DIR *dirp, - long loc) -{ -#ifdef HAVE_DD_LOCK - __lock_acquire_recursive(dirp->dd_lock); -#endif - _seekdir(dirp, loc); -#ifdef HAVE_DD_LOCK - __lock_release_recursive(dirp->dd_lock); -#endif -} - -#endif /* ! HAVE_OPENDIR */ diff --git a/lib/posix/sleep.c b/lib/posix/sleep.c deleted file mode 100644 index 0d6cd71..0000000 --- a/lib/posix/sleep.c +++ /dev/null @@ -1,23 +0,0 @@ -/* libc/posix/sleep.c - sleep function */ - -/* Written 2000 by Werner Almesberger */ - -#ifdef HAVE_NANOSLEEP - -#include -#include -#include -#include - -unsigned sleep(unsigned seconds) -{ - struct timespec ts; - - ts.tv_sec = seconds; - ts.tv_nsec = 0; - if (!nanosleep(&ts,&ts)) return 0; - if (errno == EINTR) return ts.tv_sec & UINT_MAX; - return -1; -} - -#endif diff --git a/lib/posix/sysexits.h b/lib/posix/sysexits.h deleted file mode 100644 index 37246b6..0000000 --- a/lib/posix/sysexits.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (c) 1987, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)sysexits.h 8.1 (Berkeley) 6/2/93 - */ - -#ifndef _SYSEXITS_H -#define _SYSEXITS_H 1 - -/* - * SYSEXITS.H -- Exit status codes for system programs. - * - * This include file attempts to categorize possible error - * exit statuses for system programs, notably delivermail - * and the Berkeley network. - * - * Error numbers begin at EX__BASE to reduce the possibility of - * clashing with other exit statuses that random programs may - * already return. The meaning of the codes is approximately - * as follows: - * - * EX_USAGE -- The command was used incorrectly, e.g., with - * the wrong number of arguments, a bad flag, a bad - * syntax in a parameter, or whatever. - * EX_DATAERR -- The input data was incorrect in some way. - * This should only be used for user's data & not - * system files. - * EX_NOINPUT -- An input file (not a system file) did not - * exist or was not readable. This could also include - * errors like "No message" to a mailer (if it cared - * to catch it). - * EX_NOUSER -- The user specified did not exist. This might - * be used for mail addresses or remote logins. - * EX_NOHOST -- The host specified did not exist. This is used - * in mail addresses or network requests. - * EX_UNAVAILABLE -- A service is unavailable. This can occur - * if a support program or file does not exist. This - * can also be used as a catchall message when something - * you wanted to do doesn't work, but you don't know - * why. - * EX_SOFTWARE -- An internal software error has been detected. - * This should be limited to non-operating system related - * errors as possible. - * EX_OSERR -- An operating system error has been detected. - * This is intended to be used for such things as "cannot - * fork", "cannot create pipe", or the like. It includes - * things like getuid returning a user that does not - * exist in the passwd file. - * EX_OSFILE -- Some system file (e.g., /etc/passwd, /etc/utmp, - * etc.) does not exist, cannot be opened, or has some - * sort of error (e.g., syntax error). - * EX_CANTCREAT -- A (user specified) output file cannot be - * created. - * EX_IOERR -- An error occurred while doing I/O on some file. - * EX_TEMPFAIL -- temporary failure, indicating something that - * is not really an error. In sendmail, this means - * that a mailer (e.g.) could not create a connection, - * and the request should be reattempted later. - * EX_PROTOCOL -- the remote system returned something that - * was "not possible" during a protocol exchange. - * EX_NOPERM -- You did not have sufficient permission to - * perform the operation. This is not intended for - * file system problems, which should use NOINPUT or - * CANTCREAT, but rather for higher level permissions. - */ - -#define EX_OK 0 /* successful termination */ - -#define EX__BASE 64 /* base value for error messages */ - -#define EX_USAGE 64 /* command line usage error */ -#define EX_DATAERR 65 /* data format error */ -#define EX_NOINPUT 66 /* cannot open input */ -#define EX_NOUSER 67 /* addressee unknown */ -#define EX_NOHOST 68 /* host name unknown */ -#define EX_UNAVAILABLE 69 /* service unavailable */ -#define EX_SOFTWARE 70 /* internal software error */ -#define EX_OSERR 71 /* system error (e.g., can't fork) */ -#define EX_OSFILE 72 /* critical OS file missing */ -#define EX_CANTCREAT 73 /* can't create (user) output file */ -#define EX_IOERR 74 /* input/output error */ -#define EX_TEMPFAIL 75 /* temp failure; user is invited to retry */ -#define EX_PROTOCOL 76 /* remote error in protocol */ -#define EX_NOPERM 77 /* permission denied */ -#define EX_CONFIG 78 /* configuration error */ - -#define EX__MAX 78 /* maximum listed value */ - -#endif /* sysexits.h */ diff --git a/lib/posix/telldir.c b/lib/posix/telldir.c deleted file mode 100644 index beac537..0000000 --- a/lib/posix/telldir.c +++ /dev/null @@ -1,204 +0,0 @@ -#ifndef HAVE_OPENDIR - -/* - * Copyright (c) 1983 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)telldir.c 5.9 (Berkeley) 2/23/91"; -#endif /* LIBC_SCCS and not lint */ - -#include -#include -#include -#include -#include - -/* - * The option SINGLEUSE may be defined to say that a telldir - * cookie may be used only once before it is freed. This option - * is used to avoid having memory usage grow without bound. - */ -#define SINGLEUSE - -/* - * One of these structures is malloced to describe the current directory - * position each time telldir is called. It records the current magic - * cookie returned by getdirentries and the offset within the buffer - * associated with that return value. - */ -struct ddloc { - struct ddloc *loc_next;/* next structure in list */ - long loc_index; /* key associated with structure */ - long loc_seek; /* magic cookie returned by getdirentries */ - long loc_loc; /* offset of entry in buffer */ - DIR *loc_dirp; /* DIR pointer */ -}; - -#define NDIRHASH 32 /* Num of hash lists, must be a power of 2 */ -#define LOCHASH(i) ((i)&(NDIRHASH-1)) - -static long dd_loccnt = 1; /* Index of entry for sequential readdir's */ -static struct ddloc *dd_hash[NDIRHASH]; /* Hash list heads for ddlocs */ - -#if !defined(__SINGLE_THREAD__) && defined(HAVE_DD_LOCK) -__LOCK_INIT(static, __dd_hash_mutex); -#endif - -/* - * return a pointer into a directory - */ - -#if !defined(_ELIX_LEVEL) || (_ELIX_LEVEL >= 2) - -long -telldir (DIR *dirp) -{ - register int index; - register struct ddloc *lp; - - if ((lp = (struct ddloc *)malloc(sizeof(struct ddloc))) == NULL) - return (-1); - -#ifdef HAVE_DD_LOCK - __lock_acquire_recursive(dirp->dd_lock); -#ifndef __SINGLE_THREAD__ - __lock_acquire(__dd_hash_mutex); -#endif -#endif - index = dd_loccnt++; - lp->loc_index = index; - lp->loc_seek = dirp->dd_seek; - lp->loc_loc = dirp->dd_loc; - lp->loc_dirp = dirp; - lp->loc_next = dd_hash[LOCHASH(index)]; - dd_hash[LOCHASH(index)] = lp; -#ifdef HAVE_DD_LOCK -#ifndef __SINGLE_THREAD__ - __lock_release(__dd_hash_mutex); -#endif - __lock_release_recursive(dirp->dd_lock); -#endif - return (index); -} - -#endif /* !_ELIX_LEVEL || _ELIX_LEVEL >= 2 */ - -/* - * seek to an entry in a directory. - * Only values returned by "telldir" should be passed to seekdir. - */ -void -_seekdir (register DIR *dirp, - long loc) -{ - register struct ddloc *lp; - register struct ddloc **prevlp; - struct dirent *dp; - -#if !defined(__SINGLE_THREAD__) && defined(HAVE_DD_LOCK) - __lock_acquire(__dd_hash_mutex); -#endif - if (loc != 0) { - prevlp = &dd_hash[LOCHASH(loc)]; - lp = *prevlp; - while (lp != NULL) { - if (lp->loc_index == loc) - break; - prevlp = &lp->loc_next; - lp = lp->loc_next; - } - if (lp == NULL) { -#if !defined(__SINGLE_THREAD__) && defined(HAVE_DD_LOCK) - __lock_release(__dd_hash_mutex); -#endif - return; - } - if (lp->loc_loc == dirp->dd_loc && lp->loc_seek == dirp->dd_seek) - goto found; - (void) lseek(dirp->dd_fd, lp->loc_seek, 0); - dirp->dd_seek = lp->loc_seek; - dirp->dd_loc = 0; - while (dirp->dd_loc < lp->loc_loc) { - dp = readdir(dirp); - if (dp == NULL) - break; - } -found: -#ifdef SINGLEUSE - *prevlp = lp->loc_next; - free((caddr_t)lp); -#endif - } else { - // loc 0 means rewinding - (void) lseek(dirp->dd_fd, 0, 0); - dirp->dd_seek = 0; - dirp->dd_loc = 0; - } -#if !defined(__SINGLE_THREAD__) && defined(HAVE_DD_LOCK) - __lock_release(__dd_hash_mutex); -#endif -} - -/* clean out any hash entries from a closed directory */ -void -_cleanupdir (register DIR *dirp) -{ - int i; - -#if !defined(__SINGLE_THREAD__) && defined(HAVE_DD_LOCK) - __lock_acquire(__dd_hash_mutex); -#endif - for (i = 0; i < NDIRHASH; ++i) { - struct ddloc head; - register struct ddloc *lp; - register struct ddloc *prevlp; - - lp = dd_hash[i]; - head.loc_next = lp; - prevlp = &head; - while (lp != NULL) { - struct ddloc *nextlp; - - nextlp = lp->loc_next; - if (lp->loc_dirp == dirp) { - prevlp->loc_next = nextlp; - free((caddr_t)lp); - } - else - prevlp = lp; - lp = nextlp; - } - dd_hash[i] = head.loc_next; - } -#if !defined(__SINGLE_THREAD__) && defined(HAVE_DD_LOCK) - __lock_release(__dd_hash_mutex); -#endif - -} -#endif /* ! HAVE_OPENDIR */ diff --git a/lib/posix/un-namespace.h b/lib/posix/un-namespace.h deleted file mode 100644 index 01d9b8f..0000000 --- a/lib/posix/un-namespace.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (c) 2001 Daniel Eischen . - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: src/lib/libc/include/un-namespace.h,v 1.7 2002/03/29 22:43:42 markm Exp $ - */ - -#ifndef _UN_NAMESPACE_H_ -#define _UN_NAMESPACE_H_ - -#undef accept -#undef __acl_aclcheck_fd -#undef __acl_delete_fd -#undef __acl_get_fd -#undef __acl_set_fd -#undef bind -#undef __cap_get_fd -#undef __cap_set_fd -#undef close -#undef connect -#undef dup -#undef dup2 -#undef execve -#undef fcntl -#undef flock -#undef fstat -#undef fstatfs -#undef fsync -#undef getdirentries -#undef getlogin -#undef getpeername -#undef getprogname -#undef getsockname -#undef getsockopt -#undef ioctl -#undef kevent -#undef listen -#undef nanosleep -#undef open -#undef pthread_getspecific -#undef pthread_key_create -#undef pthread_key_delete -#undef pthread_mutex_destroy -#undef pthread_mutex_init -#undef pthread_mutex_lock -#undef pthread_mutex_trylock -#undef pthread_mutex_unlock -#undef pthread_mutexattr_init -#undef pthread_mutexattr_destroy -#undef pthread_mutexattr_settype -#undef pthread_once -#undef pthread_self -#undef pthread_setspecific -#undef read -#undef readv -#undef recvfrom -#undef recvmsg -#undef select -#undef sendmsg -#undef sendto -#undef setsockopt -#undef sigaction -#undef sigprocmask -#undef sigsuspend -#undef socket -#undef socketpair -#undef wait4 -#undef write -#undef writev - -#if 0 -#undef creat -#undef fchflags -#undef fchmod -#undef fpathconf -#undef msync -#undef nfssvc -#undef pause -#undef poll -#undef pthread_rwlock_destroy -#undef pthread_rwlock_init -#undef pthread_rwlock_rdlock -#undef pthread_rwlock_tryrdlock -#undef pthread_rwlock_trywrlock -#undef pthread_rwlock_unlock -#undef pthread_rwlock_wrlock -#undef pthread_rwlockattr_init -#undef pthread_rwlockattr_destroy -#undef sched_yield -#undef sendfile -#undef shutdown -#undef sigaltstack -#undef sigpending -#undef sigreturn -#undef sigsetmask -#undef sleep -#undef system -#undef tcdrain -#undef wait -#undef waitpid -#endif /* 0 */ - -#ifdef _SIGNAL_H_ -int _sigaction(int, const struct sigaction *, struct sigaction *); -#endif - -#ifdef _SYS_EVENT_H_ -int _kevent(int, const struct kevent *, int, struct kevent *, - int, const struct timespec *); -#endif - -#ifdef _SYS_FCNTL_H_ -int _flock(int, int); -#endif - -#undef err -#undef warn - -#endif /* _UN_NAMESPACE_H_ */ diff --git a/lib/posix/usleep.c b/lib/posix/usleep.c deleted file mode 100644 index cc1b314..0000000 --- a/lib/posix/usleep.c +++ /dev/null @@ -1,21 +0,0 @@ -/* libc/posix/usleep.c - usleep function */ - -/* Written 2002 by Jeff Johnston */ - -#ifdef HAVE_NANOSLEEP - -#include -#include -#include - -int usleep(useconds_t useconds) -{ - struct timespec ts; - - ts.tv_sec = (long int)useconds / 1000000; - ts.tv_nsec = ((long int)useconds % 1000000) * 1000; - if (!nanosleep(&ts,&ts)) return 0; - return -1; -} - -#endif diff --git a/lib/posix/utils.h b/lib/posix/utils.h deleted file mode 100644 index e4499b3..0000000 --- a/lib/posix/utils.h +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * Copyright (c) 1992, 1993, 1994 Henry Spencer. - * Copyright (c) 1992, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Henry Spencer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)utils.h 8.3 (Berkeley) 3/20/94 - * $FreeBSD: src/lib/libc/regex/utils.h,v 1.2 2002/03/22 23:41:56 obrien Exp $ - */ - -/* utility definitions */ -#define DUPMAX _POSIX2_RE_DUP_MAX /* xxx is this right? */ -#define INFINITY (DUPMAX + 1) -#define NC (CHAR_MAX - CHAR_MIN + 1) -typedef unsigned char uch; - -/* switch off assertions (if not already off) if no REDEBUG */ -#ifndef REDEBUG -#ifndef NDEBUG -#define NDEBUG /* no assertions please */ -#endif -#endif -#include - -/* for old systems with bcopy() but no memmove() */ -#ifdef USEBCOPY -#define memmove(d, s, c) bcopy(s, d, c) -#endif diff --git a/lib/posix/wordexp.c b/lib/posix/wordexp.c deleted file mode 100644 index dcda3d2..0000000 --- a/lib/posix/wordexp.c +++ /dev/null @@ -1,243 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ -#ifndef _NO_WORDEXP - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include "wordexp2.h" - -#define MAXLINELEN 500 - -/* Note: This implementation of wordexp requires a version of bash - that supports the --wordexp and --protected arguments to be present - on the system. It does not support the WRDE_UNDEF flag. */ -int -wordexp(const char *__restrict words, wordexp_t *__restrict pwordexp, int flags) -{ - FILE *f = NULL; - FILE *f_err = NULL; - char tmp[MAXLINELEN]; - int i = 0; - int offs = 0; - char *iter; - pid_t pid; - int num_words = 0; - int num_bytes = 0; - int fd[2]; - int fd_err[2]; - int err = WRDE_NOSPACE; - ext_wordv_t *wordv = NULL; - char *eword; - struct ewords_entry *entry; - - if (pwordexp == NULL) - { - return WRDE_NOSPACE; - } - - if (flags & WRDE_REUSE) - wordfree(pwordexp); - - if ((flags & WRDE_APPEND) == 0) - { - pwordexp->we_wordc = 0; - pwordexp->we_wordv = NULL; - } - - if (flags & WRDE_DOOFFS) - { - offs = pwordexp->we_offs; - - if (pwordexp->we_wordv) - wordv = WE_WORDV_TO_EXT_WORDV(pwordexp->we_wordv); - wordv = (ext_wordv_t *)realloc(wordv, sizeof(ext_wordv_t) + (offs + pwordexp->we_wordc) * sizeof(char *)); - if (!wordv) - return err; - if (!pwordexp->we_wordv) - SLIST_INIT(&wordv->list); - pwordexp->we_wordv = wordv->we_wordv; - - for (i = 0; i < offs; i++) - pwordexp->we_wordv[i] = NULL; - } - - if (pipe(fd)) - return err; - if (pipe(fd_err)) - { - close(fd[0]); - close(fd[1]); - return err; - } - pid = fork(); - - if (pid == -1) - { - /* In "parent" process, but fork failed */ - close(fd_err[0]); - close(fd_err[1]); - close(fd[0]); - close(fd[1]); - return err; - } - else if (pid > 0) - { - /* In parent process. */ - - /* Close write end of parent's pipe. */ - close(fd[1]); - close(fd_err[1]); - - /* f_err is the standard error from the shell command. */ - if (!(f_err = fdopen(fd_err[0], "r"))) - goto cleanup; - - /* Check for errors. */ - if (fgets(tmp, MAXLINELEN, f_err)) - { - if (strstr(tmp, "EOF")) - err = WRDE_SYNTAX; - else if (strstr(tmp, "`\n'") || strstr(tmp, "`|'") - || strstr(tmp, "`&'") || strstr(tmp, "`;'") - || strstr(tmp, "`<'") || strstr(tmp, "`>'") - || strstr(tmp, "`('") || strstr(tmp, "`)'") - || strstr(tmp, "`{'") || strstr(tmp, "`}'")) - err = WRDE_BADCHAR; - else if (strstr(tmp, "command substitution")) - err = WRDE_CMDSUB; - else - err = WRDE_SYNTAX; - - if (flags & WRDE_SHOWERR) - { - fputs(tmp, stderr); - while(fgets(tmp, MAXLINELEN, f_err)) - fputs(tmp, stderr); - } - - goto cleanup; - } - - /* f is the standard output from the shell command. */ - if (!(f = fdopen(fd[0], "r"))) - goto cleanup; - - /* Get number of words expanded by shell. */ - if (!fgets(tmp, MAXLINELEN, f)) - goto cleanup; - - if((iter = strchr(tmp, '\n'))) - *iter = '\0'; - - num_words = atoi(tmp); - - if (pwordexp->we_wordv) - wordv = WE_WORDV_TO_EXT_WORDV(pwordexp->we_wordv); - wordv = (ext_wordv_t *)realloc(wordv, sizeof(ext_wordv_t) + (offs + pwordexp->we_wordc + num_words) * sizeof(char *)); - if (!wordv) - return err; - if (!pwordexp->we_wordv) - SLIST_INIT(&wordv->list); - pwordexp->we_wordv = wordv->we_wordv; - - /* Get number of bytes required for storage of all num_words words. */ - if (!fgets(tmp, MAXLINELEN, f)) - goto cleanup; - - if((iter = strchr(tmp, '\n'))) - *iter = '\0'; - - num_bytes = atoi(tmp); - - if (!(entry = (struct ewords_entry *)malloc(sizeof(struct ewords_entry) + num_bytes + num_words))) - goto cleanup; - SLIST_INSERT_HEAD(&wordv->list, entry, next); - - /* Get expansion from the shell output. */ - if (!fread(entry->ewords, 1, num_bytes + num_words, f)) - goto cleanup; - entry->ewords[num_bytes + num_words] = 0; - - /* Store each entry in pwordexp's we_wordv vector. */ - eword = entry->ewords; - for(i = 0; i < num_words; i++, eword = iter) - { - if (!eword) - break; - pwordexp->we_wordv[offs + pwordexp->we_wordc + i] = eword; - if ((iter = strchr(eword, '\n'))) - *iter++ = '\0'; - } - - pwordexp->we_wordv[offs + pwordexp->we_wordc + i] = NULL; - pwordexp->we_wordc += num_words; - if (i == num_words) - err = WRDE_SUCCESS; - -cleanup: - if (f) - fclose(f); - else - close(fd[0]); - if (f_err) - fclose(f_err); - else - close(fd_err[0]); - - /* Wait for child to finish. */ - waitpid (pid, NULL, 0); - - return err; - } - else - { - /* In child process. */ - - /* Close read end of child's pipe. */ - close(fd[0]); - close(fd_err[0]); - - /* Pipe standard output to parent process via fd. */ - if (fd[1] != STDOUT_FILENO) - { - if (dup2(fd[1], STDOUT_FILENO) == -1) - _exit(EXIT_FAILURE); - /* fd[1] no longer required. */ - close(fd[1]); - } - - /* Pipe standard error to parent process via fd_err. */ - if (fd_err[1] != STDERR_FILENO) - { - if (dup2(fd_err[1], STDERR_FILENO) == -1) - _exit(EXIT_FAILURE); - /* fd_err[1] no longer required. */ - close(fd_err[1]); - } - - if (flags & WRDE_NOCMD) - execl("/bin/bash", "bash", "--protected", "--wordexp", words, (char *)0); - else - execl("/bin/bash", "bash", "--wordexp", words, (char *)0); - _exit(EXIT_FAILURE); - } - return WRDE_SUCCESS; -} -#endif /* !_NO_WORDEXP */ diff --git a/lib/posix/wordexp2.h b/lib/posix/wordexp2.h deleted file mode 100644 index 2030832..0000000 --- a/lib/posix/wordexp2.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright (C) 2012 by Peter Rosin. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ -#ifndef _WORDEXP2_H_ - -struct ewords_entry { - SLIST_ENTRY(ewords_entry) next; - char ewords[1]; -}; - -typedef struct { - SLIST_HEAD(ewords_head, ewords_entry) list; - char *we_wordv[1]; -} ext_wordv_t; - -#define WE_WORDV_TO_EXT_WORDV(wordv) \ - (ext_wordv_t *)((void *)(wordv) - offsetof(ext_wordv_t, we_wordv)) - -#endif /* !_WORDEXP2_H_ */ diff --git a/lib/posix/wordfree.c b/lib/posix/wordfree.c deleted file mode 100644 index 024a619..0000000 --- a/lib/posix/wordfree.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _NO_WORDEXP - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include "wordexp2.h" - -void -wordfree(wordexp_t *pwordexp) -{ - ext_wordv_t *wordv; - - if (pwordexp == NULL) - return; - - if (pwordexp->we_wordv == NULL) - return; - - wordv = WE_WORDV_TO_EXT_WORDV(pwordexp->we_wordv); - while (!SLIST_EMPTY(&wordv->list)) { - struct ewords_entry *entry = SLIST_FIRST(&wordv->list); - SLIST_REMOVE_HEAD(&wordv->list, next); - free(entry); - } - - free(wordv); - pwordexp->we_wordv = NULL; -} - -#endif /* !_NO_WORDEXP */ diff --git a/lib/reent/Makefile.inc b/lib/reent/Makefile.inc deleted file mode 100644 index 38ddf57..0000000 --- a/lib/reent/Makefile.inc +++ /dev/null @@ -1,67 +0,0 @@ -libc_a_SOURCES += \ - %D%/closer.c \ - %D%/reent.c \ - %D%/impure.c \ - %D%/fcntlr.c \ - %D%/fstatr.c \ - %D%/getreent.c \ - %D%/gettimeofdayr.c \ - %D%/isattyr.c \ - %D%/linkr.c \ - %D%/lseekr.c \ - %D%/mkdirr.c \ - %D%/openr.c \ - %D%/readr.c \ - %D%/renamer.c \ - %D%/signalr.c \ - %D%/sbrkr.c \ - %D%/statr.c \ - %D%/timesr.c \ - %D%/unlinkr.c \ - %D%/writer.c - -%C%_ELIX_2_SOURCES = -if HAVE_STDIO64_DIR -%C%_ELIX_2_SOURCES += \ - %D%/fstat64r.c \ - %D%/lseek64r.c \ - %D%/stat64r.c \ - %D%/open64r.c -endif -%C%_ELIX_3_SOURCES = %D%/execr.c - -if ELIX_LEVEL_1 -libc_a_SOURCES += -else -if ELIX_LEVEL_2 -libc_a_SOURCES += $(%C%_ELIX_2_SOURCES) -else -libc_a_SOURCES += $(%C%_ELIX_2_SOURCES) $(%C%_ELIX_3_SOURCES) -endif -endif - -LIBC_CHEWOUT_FILES += \ - %D%/closer.def \ - %D%/reent.def \ - %D%/execr.def \ - %D%/fcntlr.def \ - %D%/fstatr.def \ - %D%/gettimeofdayr.def \ - %D%/linkr.def \ - %D%/lseekr.def \ - %D%/mkdirr.def \ - %D%/openr.def \ - %D%/readr.def \ - %D%/renamer.def \ - %D%/signalr.def \ - %D%/sbrkr.def \ - %D%/statr.def \ - %D%/timesr.def \ - %D%/unlinkr.def \ - %D%/fstat64r.def \ - %D%/lseek64r.def \ - %D%/stat64r.def \ - %D%/open64r.def \ - %D%/writer.def - -LIBC_CHAPTERS += %D%/reent.tex diff --git a/lib/reent/closer.c b/lib/reent/closer.c deleted file mode 100644 index 2d72b2a..0000000 --- a/lib/reent/closer.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Reentrant version of close system call. */ - -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of this functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifndef REENTRANT_SYSCALLS_PROVIDED - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_close_r>>---Reentrant version of close - -INDEX - _close_r - -SYNOPSIS - #include - int _close_r(struct _reent *<[ptr]>, int <[fd]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -int -_close_r (ptr, fd) - struct _reent *ptr; - int fd; -{ - int ret; - - errno = 0; - if ((ret = _close (fd)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/execr.c b/lib/reent/execr.c deleted file mode 100644 index 541fb86..0000000 --- a/lib/reent/execr.c +++ /dev/null @@ -1,125 +0,0 @@ -/* Reentrant versions of execution system calls. These - implementations just call the usual system calls. */ - -#include -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -/* If NO_EXEC is defined, we don't need these functions. */ - -#if defined (REENTRANT_SYSCALLS_PROVIDED) || defined (NO_EXEC) - -int _dummy_exec_syscalls = 1; - -#else - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_execve_r>>---Reentrant version of execve -INDEX - _execve_r - -SYNOPSIS - #include - int _execve_r(struct _reent *<[ptr]>, const char *<[name]>, - char *const <[argv]>[], char *const <[env]>[]); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -int -_execve_r (struct _reent *ptr, - const char *name, - char *const argv[], - char *const env[]) -{ - int ret; - - errno = 0; - if ((ret = _execve (name, argv, env)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - - -/* -NEWPAGE -FUNCTION - <<_fork_r>>---Reentrant version of fork - -INDEX - _fork_r - -SYNOPSIS - #include - int _fork_r(struct _reent *<[ptr]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -#ifndef NO_FORK - -int -_fork_r (struct _reent *ptr) -{ - int ret; - - errno = 0; - if ((ret = _fork ()) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif - -/* -NEWPAGE -FUNCTION - <<_wait_r>>---Reentrant version of wait - -INDEX - _wait_r - -SYNOPSIS - #include - int _wait_r(struct _reent *<[ptr]>, int *<[status]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -int -_wait_r (struct _reent *ptr, - int *status) -{ - int ret; - - errno = 0; - if ((ret = _wait (status)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/fcntlr.c b/lib/reent/fcntlr.c deleted file mode 100644 index f60aa09..0000000 --- a/lib/reent/fcntlr.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Reentrant versions of fcntl system call. This implementation just - calls the fcntl system call. */ - -#include -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifndef REENTRANT_SYSCALLS_PROVIDED - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_fcntl_r>>---Reentrant version of fcntl - -INDEX - _fcntl_r - -SYNOPSIS - #include - int _fcntl_r(struct _reent *<[ptr]>, - int <[fd]>, int <[cmd]>, <[arg]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -int -_fcntl_r (struct _reent *ptr, - int fd, - int cmd, - int arg) -{ - int ret; - - errno = 0; - if ((ret = _fcntl (fd, cmd, arg)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/fstat64r.c b/lib/reent/fstat64r.c deleted file mode 100644 index a049206..0000000 --- a/lib/reent/fstat64r.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Reentrant versions of fstat system call. This implementation just - calls the fstat system call. */ - -#include -#include -#include -#include <_syslist.h> - -#ifdef __LARGE64_FILES - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifdef REENTRANT_SYSCALLS_PROVIDED - -int _dummy_fstat_syscalls = 1; - -#else - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_fstat64_r>>---Reentrant version of fstat64 - -INDEX - _fstat64_r - -SYNOPSIS - #include - int _fstat64_r(struct _reent *<[ptr]>, - int <[fd]>, struct stat64 *<[pstat]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. This function is only enabled on systems - that define __LARGE64_FILES. -*/ - -int -_fstat64_r (struct _reent *ptr, - int fd, - struct stat64 *pstat) -{ - int ret; - - errno = 0; - if ((ret = _fstat64 (fd, pstat)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ - -#endif /* __LARGE64_FILES */ diff --git a/lib/reent/fstatr.c b/lib/reent/fstatr.c deleted file mode 100644 index 9a02e9a..0000000 --- a/lib/reent/fstatr.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Reentrant versions of fstat system call. This implementation just - calls the fstat system call. */ - -#include -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifdef REENTRANT_SYSCALLS_PROVIDED - -int _dummy_fstat_syscalls = 1; - -#else - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_fstat_r>>---Reentrant version of fstat - -INDEX - _fstat_r - -SYNOPSIS - #include - int _fstat_r(struct _reent *<[ptr]>, - int <[fd]>, struct stat *<[pstat]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -int -_fstat_r (ptr, fd, pstat) - struct _reent *ptr; - int fd; - struct stat *pstat; -{ - int ret; - - errno = 0; - if ((ret = _fstat (fd, pstat)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/getreent.c b/lib/reent/getreent.c deleted file mode 100644 index 5fa98e9..0000000 --- a/lib/reent/getreent.c +++ /dev/null @@ -1,22 +0,0 @@ -/* default reentrant pointer when multithread enabled */ - -#ifdef GETREENT_PROVIDED - -int _dummy_getreent; - -#else - -#include <_ansi.h> -#include - -#ifdef __getreent -#undef __getreent -#endif - -struct _reent * -__getreent (void) -{ - return _impure_ptr; -} - -#endif diff --git a/lib/reent/gettimeofdayr.c b/lib/reent/gettimeofdayr.c deleted file mode 100644 index aa60e5e..0000000 --- a/lib/reent/gettimeofdayr.c +++ /dev/null @@ -1,67 +0,0 @@ -/* Reentrant version of gettimeofday system call - This implementation just calls the times/gettimeofday system calls. - Gettimeofday may not be available on all targets. It's presence - here is dubious. Consider it for internal use only. */ - -#include -#include -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifdef REENTRANT_SYSCALLS_PROVIDED - -int _dummy_gettimeofday_syscalls = 1; - -#else - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_gettimeofday_r>>---Reentrant version of gettimeofday - -INDEX - _gettimeofday_r - -SYNOPSIS - #include - #include - int _gettimeofday_r(struct _reent *<[ptr]>, - struct timeval *<[ptimeval]>, - void *<[ptimezone]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. - - This function is only available for a few targets. - Check libc.a to see if its available on yours. -*/ - -int -_gettimeofday_r (struct _reent *ptr, - struct timeval *ptimeval, - void *ptimezone) -{ - int ret; - - errno = 0; - if ((ret = _gettimeofday (ptimeval, ptimezone)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/impure.c b/lib/reent/impure.c deleted file mode 100644 index a87b91f..0000000 --- a/lib/reent/impure.c +++ /dev/null @@ -1,20 +0,0 @@ -#include - -#ifndef _REENT_THREAD_LOCAL - -/* Redeclare these symbols locally as weak so that the file containing - their definitions (along with a lot of other stuff) isn't sucked in - unless they are actually used by other compilation units. This is - important to reduce image size for targets with very small amounts - of memory. */ -#ifdef _REENT_SMALL -extern __FILE __sf[3] _ATTRIBUTE ((weak)); -#endif - -struct _reent __ATTRIBUTE_IMPURE_DATA__ _impure_data = _REENT_INIT (_impure_data); -#ifdef __CYGWIN__ -extern struct _reent reent_data __attribute__ ((alias("_impure_data"))); -#endif -struct _reent *__ATTRIBUTE_IMPURE_PTR__ _impure_ptr = &_impure_data; - -#endif /* _REENT_THREAD_LOCAL */ diff --git a/lib/reent/isattyr.c b/lib/reent/isattyr.c deleted file mode 100644 index f769455..0000000 --- a/lib/reent/isattyr.c +++ /dev/null @@ -1,57 +0,0 @@ -/* Reentrant versions of isatty system call. */ - -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifdef REENTRANT_SYSCALLS_PROVIDED - -int _dummy_isatty_syscalls = 1; - -#else - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_isatty_r>>---Reentrant version of isatty - -INDEX - _isatty_r - -SYNOPSIS - #include - int _isatty_r(struct _reent *<[ptr]>, - int <[fd]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -int -_isatty_r (ptr, fd) - struct _reent *ptr; - int fd; -{ - int ret; - - errno = 0; - if ((ret = _isatty (fd)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/linkr.c b/lib/reent/linkr.c deleted file mode 100644 index 169b6ee..0000000 --- a/lib/reent/linkr.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Reentrant versions of file system calls. These implementations - just call the usual system calls. */ - -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifdef REENTRANT_SYSCALLS_PROVIDED - -int _dummy_link_syscalls = 1; - -#else - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_link_r>>---Reentrant version of link - -INDEX - _link_r - -SYNOPSIS - #include - int _link_r(struct _reent *<[ptr]>, - const char *<[old]>, const char *<[new]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -int -_link_r (struct _reent *ptr, - const char *old, - const char *new) -{ - int ret; - - errno = 0; - if ((ret = _link (old, new)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/lseek64r.c b/lib/reent/lseek64r.c deleted file mode 100644 index c9afd01..0000000 --- a/lib/reent/lseek64r.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Reentrant versions of lseek system call. */ - -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of this functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef __LARGE64_FILES - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifndef REENTRANT_SYSCALLS_PROVIDED - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_lseek64_r>>---Reentrant version of lseek - -INDEX - _lseek64_r - -SYNOPSIS - #include - off64_t _lseek64_r(struct _reent *<[ptr]>, - int <[fd]>, off64_t <[pos]>, int <[whence]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. This function only exists on a system - with large file support. -*/ - -_off64_t -_lseek64_r (struct _reent *ptr, - int fd, - _off64_t pos, - int whence) -{ - _off64_t ret; - - errno = 0; - if ((ret = _lseek64 (fd, pos, whence)) == (_off64_t) -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ - -#endif /* __LARGE64_FILES */ diff --git a/lib/reent/lseekr.c b/lib/reent/lseekr.c deleted file mode 100644 index 77e66b8..0000000 --- a/lib/reent/lseekr.c +++ /dev/null @@ -1,54 +0,0 @@ -/* Reentrant versions of lseek system call. */ - -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of this functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifndef REENTRANT_SYSCALLS_PROVIDED - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_lseek_r>>---Reentrant version of lseek - -INDEX - _lseek_r - -SYNOPSIS - #include - off_t _lseek_r(struct _reent *<[ptr]>, - int <[fd]>, off_t <[pos]>, int <[whence]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -_off_t -_lseek_r (struct _reent *ptr, - int fd, - _off_t pos, - int whence) -{ - _off_t ret; - - errno = 0; - if ((ret = _lseek (fd, pos, whence)) == (_off_t) -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/mkdirr.c b/lib/reent/mkdirr.c deleted file mode 100644 index cf66a24..0000000 --- a/lib/reent/mkdirr.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Reentrant versions of mkdir system call. */ - -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of this functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifndef REENTRANT_SYSCALLS_PROVIDED - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_mkdir_r>>---Reentrant version of mkdir - -INDEX - _mkdir_r - -SYNOPSIS - #include - int _mkdir_r(struct _reent *<[ptr]>, - const char *<[path]>, int <[mode]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -#include - -int -_mkdir_r (struct _reent *ptr, - const char *path, - int mode) -{ - int ret; - - errno = 0; - if ((ret = _mkdir (path, mode)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/open64r.c b/lib/reent/open64r.c deleted file mode 100644 index fe288d0..0000000 --- a/lib/reent/open64r.c +++ /dev/null @@ -1,61 +0,0 @@ -/* Reentrant versions of open system call. */ - -#include -#include -#include -#include <_syslist.h> - -#ifdef __LARGE64_FILES - -/* Some targets provides their own versions of this functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifndef REENTRANT_SYSCALLS_PROVIDED - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_open64_r>>---Reentrant version of open64 - -INDEX - _open64_r - -SYNOPSIS - #include - int _open64_r(struct _reent *<[ptr]>, - const char *<[file]>, int <[flags]>, int <[mode]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. This function only exists on systems with - large file support. -*/ - -int -_open64_r (ptr, file, flags, mode) - struct _reent *ptr; - const char *file; - int flags; - int mode; -{ - int ret; - - errno = 0; - if ((ret = _open64 (file, flags, mode)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ - -#endif /* __LARGE64_FILES */ diff --git a/lib/reent/openr.c b/lib/reent/openr.c deleted file mode 100644 index 8243154..0000000 --- a/lib/reent/openr.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Reentrant versions of open system call. */ - -#include -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of this functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifndef REENTRANT_SYSCALLS_PROVIDED - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_open_r>>---Reentrant version of open - -INDEX - _open_r - -SYNOPSIS - #include - int _open_r(struct _reent *<[ptr]>, - const char *<[file]>, int <[flags]>, int <[mode]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -int -_open_r (struct _reent *ptr, - const char *file, - int flags, - int mode) -{ - int ret; - - errno = 0; - if ((ret = _open (file, flags, mode)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/readr.c b/lib/reent/readr.c deleted file mode 100644 index b2ae300..0000000 --- a/lib/reent/readr.c +++ /dev/null @@ -1,54 +0,0 @@ -/* Reentrant versions of read system call. */ - -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of this functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifndef REENTRANT_SYSCALLS_PROVIDED - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_read_r>>---Reentrant version of read - -INDEX - _read_r - -SYNOPSIS - #include - _ssize_t _read_r(struct _reent *<[ptr]>, - int <[fd]>, void *<[buf]>, size_t <[cnt]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -_ssize_t -_read_r (struct _reent *ptr, - int fd, - void *buf, - size_t cnt) -{ - _ssize_t ret; - - errno = 0; - if ((ret = (_ssize_t)_read (fd, buf, cnt)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/reent.c b/lib/reent/reent.c deleted file mode 100644 index db80ca0..0000000 --- a/lib/reent/reent.c +++ /dev/null @@ -1,101 +0,0 @@ -/* -FUNCTION - <>---definition of impure data. - -INDEX - reent - -DESCRIPTION - This module defines the impure data area used by the - non-reentrant functions, such as strtok. -*/ - -#include -#include - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifndef REENTRANT_SYSCALLS_PROVIDED - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -int errno; - -#endif - -void -_reclaim_reent (struct _reent *ptr) -{ -#ifndef _REENT_THREAD_LOCAL - if (ptr != _impure_ptr) -#endif - { - /* used by mprec routines. */ -#ifdef _REENT_SMALL - if (ptr->_mp) /* don't bother allocating it! */ - { -#endif - if (_REENT_MP_FREELIST(ptr)) - { - int i; - for (i = 0; i < _Kmax; i++) - { - struct _Bigint *thisone, *nextone; - - nextone = _REENT_MP_FREELIST(ptr)[i]; - while (nextone) - { - thisone = nextone; - nextone = nextone->_next; - _free_r (ptr, thisone); - } - } - - _free_r (ptr, _REENT_MP_FREELIST(ptr)); - } - if (_REENT_MP_RESULT(ptr)) - _free_r (ptr, _REENT_MP_RESULT(ptr)); -#ifdef _REENT_SMALL - } -#endif - -#ifdef _REENT_SMALL - if (_REENT_EMERGENCY(ptr)) - _free_r (ptr, _REENT_EMERGENCY(ptr)); - if (ptr->_mp) - _free_r (ptr, ptr->_mp); - if (ptr->_r48) - _free_r (ptr, ptr->_r48); - if (ptr->_localtime_buf) - _free_r (ptr, ptr->_localtime_buf); - if (ptr->_asctime_buf) - _free_r (ptr, ptr->_asctime_buf); - if (ptr->_signal_buf) - _free_r (ptr, ptr->_signal_buf); - if (ptr->_misc) - _free_r (ptr, ptr->_misc); -#endif - - if (_REENT_CVTBUF(ptr)) - _free_r (ptr, _REENT_CVTBUF(ptr)); - /* We should free _sig_func to avoid a memory leak, but how to - do it safely considering that a signal may be delivered immediately - after the free? - if (_REENT_SIG_FUNC(ptr)) - _free_r (ptr, _REENT_SIG_FUNC(ptr));*/ - - if (_REENT_CLEANUP(ptr)) - { - /* cleanup won't reclaim memory 'coz usually it's run - before the program exits, and who wants to wait for that? */ - _REENT_CLEANUP(ptr) (ptr); - } - - /* Malloc memory not reclaimed; no good way to return memory anyway. */ - - } -} diff --git a/lib/reent/reent.tex b/lib/reent/reent.tex deleted file mode 100644 index 881c572..0000000 --- a/lib/reent/reent.tex +++ /dev/null @@ -1,117 +0,0 @@ -@node Reentrancy -@chapter Reentrancy - -@cindex reentrancy -Reentrancy is a characteristic of library functions which allows multiple -processes to use the same address space with assurance that the values stored -in those spaces will remain constant between calls. The Red Hat -newlib implementation of the library functions ensures that -whenever possible, these library functions are reentrant. However, -there are some functions that can not be trivially made reentrant. -Hooks have been provided to allow you to use these functions in a fully -reentrant fashion. - -@findex _reent -@findex reent.h -@cindex reentrancy structure -These hooks use the structure @code{_reent} defined in @file{reent.h}. -A variable defined as @samp{struct _reent} is called a @dfn{reentrancy -structure}. All functions which must manipulate global information are -available in two versions. The first version has the usual name, and -uses a single global instance of the reentrancy structure. The second -has a different name, normally formed by prepending @samp{_} and -appending @samp{_r}, and takes a pointer to the particular reentrancy -structure to use. - -For example, the function @code{fopen} takes two arguments, @var{file} -and @var{mode}, and uses the global reentrancy structure. The function -@code{_fopen_r} takes the arguments, @var{struct_reent}, which is a -pointer to an instance of the reentrancy structure, @var{file} -and @var{mode}. - -There are two versions of @samp{struct _reent}, a normal one and one -for small memory systems, controlled by the @code{_REENT_SMALL} -definition from the (automatically included) @file{}. - -@cindex global reentrancy structure -@findex _impure_ptr -Each function which uses the global reentrancy structure uses the global -variable @code{_impure_ptr}, which points to a reentrancy structure. - -This means that you have two ways to achieve reentrancy. Both require -that each thread of execution control initialize a unique global -variable of type @samp{struct _reent}: - -@enumerate -@item -@cindex extra argument, reentrant fns -Use the reentrant versions of the library functions, after initializing -a global reentrancy structure for each process. Use the pointer to this -structure as the extra argument for all library functions. - -@item -Ensure that each thread of execution control has a pointer to its own -unique reentrancy structure in the global variable @code{_impure_ptr}, -and call the standard library subroutines. -@end enumerate - -@cindex list of reentrant functions -@cindex reentrant function list -The following functions are provided in both reentrant -and non-reentrant versions. - -@example -@exdent @emph{Equivalent for errno variable:} -_errno_r - -@exdent @emph{Locale functions:} -_localeconv_r _setlocale_r - -@exdent @emph{Equivalents for stdio variables:} -_stdin_r _stdout_r _stderr_r - -@page -@exdent @emph{Stdio functions:} -_fdopen_r _perror_r _tempnam_r -_fopen_r _putchar_r _tmpnam_r -_getchar_r _puts_r _tmpfile_r -_gets_r _remove_r _vfprintf_r -_iprintf_r _rename_r _vsnprintf_r -_mkstemp_r _snprintf_r _vsprintf_r -_mktemp_t _sprintf_r - -@exdent @emph{Signal functions:} -_init_signal_r _signal_r -_kill_r __sigtramp_r -_raise_r - -@exdent @emph{Stdlib functions:} -_calloc_r _mblen_r _setenv_r -_dtoa_r _mbstowcs_r _srand_r -_free_r _mbtowc_r _strtod_r -_getenv_r _memalign_r _strtol_r -_mallinfo_r _mstats_r _strtoul_r -_malloc_r _putenv_r _system_r -_malloc_r _rand_r _wcstombs_r -_malloc_stats_r _realloc_r _wctomb_r - -@exdent @emph{String functions:} -_strdup_r _strtok_r - -@exdent @emph{System functions:} -_close_r _link_r _unlink_r -_execve_r _lseek_r _wait_r -_fcntl_r _open_r _write_r -_fork_r _read_r -_fstat_r _sbrk_r -_gettimeofday_r _stat_r -_getpid_r _times_r - -@ifset STDIO64 -@exdent @emph{Additional 64-bit I/O System functions:} -_fstat64_r _lseek64_r _open64_r -@end ifset - -@exdent @emph{Time function:} -_asctime_r -@end example diff --git a/lib/reent/renamer.c b/lib/reent/renamer.c deleted file mode 100644 index 7e1e111..0000000 --- a/lib/reent/renamer.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Reentrant version of rename system call. */ - -#include -#include -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifndef REENTRANT_SYSCALLS_PROVIDED - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_rename_r>>---Reentrant version of rename - -INDEX - _rename_r - -SYNOPSIS - #include - int _rename_r(struct _reent *<[ptr]>, - const char *<[old]>, const char *<[new]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -int -_rename_r (struct _reent *ptr, - const char *old, - const char *new) -{ - int ret = 0; - -#ifdef HAVE_RENAME - errno = 0; - if ((ret = _rename (old, new)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; -#else - if (_link_r (ptr, old, new) == -1) - return -1; - - if (_unlink_r (ptr, old) == -1) - { - /* ??? Should we unlink new? (rhetorical question) */ - return -1; - } -#endif - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/sbrkr.c b/lib/reent/sbrkr.c deleted file mode 100644 index ec948fe..0000000 --- a/lib/reent/sbrkr.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Reentrant version of sbrk system call. */ - -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#if defined (REENTRANT_SYSCALLS_PROVIDED) - -int _dummy_sbrk_syscalls = 1; - -#else - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_sbrk_r>>---Reentrant version of sbrk - -INDEX - _sbrk_r - -SYNOPSIS - #include - void *_sbrk_r(struct _reent *<[ptr]>, ptrdiff_t <[incr]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -void * -_sbrk_r (struct _reent *ptr, - ptrdiff_t incr) -{ - char *ret; - void *_sbrk(ptrdiff_t); - - errno = 0; - if ((ret = (char *)(_sbrk (incr))) == (void *) -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/signalr.c b/lib/reent/signalr.c deleted file mode 100644 index 863ae74..0000000 --- a/lib/reent/signalr.c +++ /dev/null @@ -1,87 +0,0 @@ -/* Reentrant versions of syscalls need to support signal/raise. - These implementations just call the usual system calls. */ - -#include -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifdef REENTRANT_SYSCALLS_PROVIDED - -int _dummy_link_syscalls = 1; - -#else - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_kill_r>>---Reentrant version of kill - -INDEX - _kill_r - -SYNOPSIS - #include - int _kill_r(struct _reent *<[ptr]>, int <[pid]>, int <[sig]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -int -_kill_r (struct _reent *ptr, - int pid, - int sig) -{ - int ret; - - errno = 0; - if ((ret = _kill (pid, sig)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -/* -NEWPAGE -FUNCTION - <<_getpid_r>>---Reentrant version of getpid - -INDEX - _getpid_r - -SYNOPSIS - #include - int _getpid_r(struct _reent *<[ptr]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. - - We never need <>, of course, but for consistency we - still must have the reentrant pointer argument. -*/ - -int -_getpid_r (struct _reent *ptr) -{ - int ret; - ret = _getpid (); - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/stat64r.c b/lib/reent/stat64r.c deleted file mode 100644 index 160d08e..0000000 --- a/lib/reent/stat64r.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Reentrant versions of stat64 system call. This implementation just - calls the stat64 system call. */ - -#include -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in - TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifdef REENTRANT_SYSCALLS_PROVIDED - -int _dummy_stat64_syscalls = 1; - -#else - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_stat64_r>>---Reentrant version of stat64 - -INDEX - _stat64_r - -SYNOPSIS - #include - int _stat64_r(struct _reent *<[ptr]>, - const char *<[file]>, struct stat64 *<[pstat]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -int -_stat64_r (struct _reent *ptr, - const char *file, - struct stat64 *pstat) -{ - int ret; - - errno = 0; - if ((ret = _stat64 (file, pstat)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/statr.c b/lib/reent/statr.c deleted file mode 100644 index 99453e7..0000000 --- a/lib/reent/statr.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Reentrant versions of stat system call. This implementation just - calls the stat system call. */ - -#include -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in - TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifdef REENTRANT_SYSCALLS_PROVIDED - -int _dummy_stat_syscalls = 1; - -#else - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_stat_r>>---Reentrant version of stat - -INDEX - _stat_r - -SYNOPSIS - #include - int _stat_r(struct _reent *<[ptr]>, - const char *<[file]>, struct stat *<[pstat]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -int -_stat_r (struct _reent *ptr, - const char *file, - struct stat *pstat) -{ - int ret; - - errno = 0; - if ((ret = _stat (file, pstat)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/timesr.c b/lib/reent/timesr.c deleted file mode 100644 index bb89003..0000000 --- a/lib/reent/timesr.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Reentrant versions of times system calls */ - -#include -#include -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifdef REENTRANT_SYSCALLS_PROVIDED - -int _dummy_times_syscalls = 1; - -#else - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_times_r>>---Reentrant version of times - -INDEX - _times_r - -SYNOPSIS - #include - #include - clock_t _times_r(struct _reent *<[ptr]>, struct tms *<[ptms]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -clock_t -_times_r (struct _reent *ptr, - struct tms *ptms) -{ - clock_t ret; - - ret = _times (ptms); - return ret; -} -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/unlinkr.c b/lib/reent/unlinkr.c deleted file mode 100644 index 495e65b..0000000 --- a/lib/reent/unlinkr.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Reentrant versions of file system calls. These implementations - just call the usual system calls. */ - -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifndef REENTRANT_SYSCALLS_PROVIDED - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_unlink_r>>---Reentrant version of unlink - -INDEX - _unlink_r - -SYNOPSIS - #include - int _unlink_r(struct _reent *<[ptr]>, const char *<[file]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -int -_unlink_r (struct _reent *ptr, - const char *file) -{ - int ret; - - errno = 0; - if ((ret = _unlink (file)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/reent/writer.c b/lib/reent/writer.c deleted file mode 100644 index ac2217c..0000000 --- a/lib/reent/writer.c +++ /dev/null @@ -1,54 +0,0 @@ -/* Reentrant versions of write system call. */ - -#include -#include -#include <_syslist.h> - -/* Some targets provides their own versions of this functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - -#ifdef _REENT_ONLY -#ifndef REENTRANT_SYSCALLS_PROVIDED -#define REENTRANT_SYSCALLS_PROVIDED -#endif -#endif - -#ifndef REENTRANT_SYSCALLS_PROVIDED - -/* We use the errno variable used by the system dependent layer. */ -#undef errno -extern int errno; - -/* -FUNCTION - <<_write_r>>---Reentrant version of write - -INDEX - _write_r - -SYNOPSIS - #include - _ssize_t _write_r(struct _reent *<[ptr]>, - int <[fd]>, const void *<[buf]>, size_t <[cnt]>); - -DESCRIPTION - This is a reentrant version of <>. It - takes a pointer to the global data block, which holds - <>. -*/ - -_ssize_t -_write_r (struct _reent *ptr, - int fd, - const void *buf, - size_t cnt) -{ - _ssize_t ret; - - errno = 0; - if ((ret = (_ssize_t)_write (fd, buf, cnt)) == -1 && errno != 0) - _REENT_ERRNO(ptr) = errno; - return ret; -} - -#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/lib/search/Makefile.inc b/lib/search/Makefile.inc deleted file mode 100644 index 5c28f19..0000000 --- a/lib/search/Makefile.inc +++ /dev/null @@ -1,45 +0,0 @@ -libc_a_SOURCES += \ - %D%/bsearch.c \ - %D%/db_local.h \ - %D%/extern.h \ - %D%/hash.h \ - %D%/ndbm.c \ - %D%/page.h \ - %D%/qsort.c - -## Following are EL/IX level 2 interfaces -if !ELIX_LEVEL_1 -libc_a_SOURCES += \ - %D%/hash.c \ - %D%/hash_bigkey.c \ - %D%/hash_buf.c \ - %D%/hash_func.c \ - %D%/hash_log2.c \ - %D%/hash_page.c \ - %D%/hcreate.c \ - %D%/hcreate_r.c \ - %D%/tdelete.c \ - %D%/tdestroy.c \ - %D%/tfind.c \ - %D%/tsearch.c \ - %D%/twalk.c -endif - -## Following are EL/IX level 4 interfaces -if ELIX_LEVEL_1 -else -if ELIX_LEVEL_2 -else -if ELIX_LEVEL_3 -else -libc_a_SOURCES += \ - %D%/bsd_qsort_r.c \ - %D%/qsort_r.c -endif !ELIX_LEVEL_3 -endif !ELIX_LEVEL_2 -endif !ELIX_LEVEL_1 - -LIBC_CHEWOUT_FILES += \ - %D%/bsearch.def \ - %D%/qsort.def \ - %D%/qsort_r.def diff --git a/lib/search/bsd_qsort_r.c b/lib/search/bsd_qsort_r.c deleted file mode 100644 index f4a3757..0000000 --- a/lib/search/bsd_qsort_r.c +++ /dev/null @@ -1,2 +0,0 @@ -#define I_AM_QSORT_R -#include "qsort.c" diff --git a/lib/search/bsearch.c b/lib/search/bsearch.c deleted file mode 100644 index 29b7874..0000000 --- a/lib/search/bsearch.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * bsearch.c - * Original Author: G. Haley - * Rewritten by: G. Noer - * - * Searches an array of nmemb members, the initial member of which is pointed - * to by base, for a member that matches the object pointed to by key. The - * contents of the array shall be in ascending order according to a comparison - * function pointed to by compar. The function shall return an integer less - * than, equal to or greater than zero if the first argument is considered to be - * respectively less than, equal to or greater than the second. Returns a - * pointer to the matching member of the array, or a null pointer if no match - * is found. - */ - -/* -FUNCTION -<>---binary search - -INDEX - bsearch - -SYNOPSIS - #include - void *bsearch(const void *<[key]>, const void *<[base]>, - size_t <[nmemb]>, size_t <[size]>, - int (*<[compar]>)(const void *, const void *)); - -DESCRIPTION -<> searches an array beginning at <[base]> for any element -that matches <[key]>, using binary search. <[nmemb]> is the element -count of the array; <[size]> is the size of each element. - -The array must be sorted in ascending order with respect to the -comparison function <[compar]> (which you supply as the last argument of -<>). - -You must define the comparison function <<(*<[compar]>)>> to have two -arguments; its result must be negative if the first argument is -less than the second, zero if the two arguments match, and -positive if the first argument is greater than the second (where -``less than'' and ``greater than'' refer to whatever arbitrary -ordering is appropriate). - -RETURNS -Returns a pointer to an element of <[array]> that matches <[key]>. If -more than one matching element is available, the result may point to -any of them. - -PORTABILITY -<> is ANSI. - -No supporting OS subroutines are required. -*/ - -#include - -void * -bsearch (const void *key, - const void *base, - size_t nmemb, - size_t size, - int (*compar) (const void *, const void *)) -{ - void *current; - size_t lower = 0; - size_t upper = nmemb; - size_t index; - int result; - - if (nmemb == 0 || size == 0) - return NULL; - - while (lower < upper) - { - index = (lower + upper) / 2; - current = (void *) (((char *) base) + (index * size)); - - result = compar (key, current); - - if (result < 0) - upper = index; - else if (result > 0) - lower = index + 1; - else - return current; - } - - return NULL; -} - diff --git a/lib/search/db_local.h b/lib/search/db_local.h deleted file mode 100644 index 8167953..0000000 --- a/lib/search/db_local.h +++ /dev/null @@ -1,214 +0,0 @@ -/*- - * Copyright (c) 1990, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)db.h 8.7 (Berkeley) 6/16/94 - * $FreeBSD: src/include/db.h,v 1.5 2002/03/26 01:35:05 bde Exp $ - */ - -#ifndef _DB_H_ -#define _DB_H_ - -#include -#include -#include - -#include - -#define RET_ERROR -1 /* Return values. */ -#define RET_SUCCESS 0 -#define RET_SPECIAL 1 - -#define MAX_PAGE_NUMBER 0xffffffff /* >= # of pages in a file */ -typedef __uint32_t pgno_t; -#define MAX_PAGE_OFFSET 65535 /* >= # of bytes in a page */ -typedef __uint16_t indx_t; -#define MAX_REC_NUMBER 0xffffffff /* >= # of records in a tree */ -typedef __uint32_t recno_t; - -/* Key/data structure -- a Data-Base Thang. */ -typedef struct { - void *data; /* data */ - size_t size; /* data length */ -} DBT; - -/* Routine flags. */ -#define R_CURSOR 1 /* del, put, seq */ -#define __R_UNUSED 2 /* UNUSED */ -#define R_FIRST 3 /* seq */ -#define R_IAFTER 4 /* put (RECNO) */ -#define R_IBEFORE 5 /* put (RECNO) */ -#define R_LAST 6 /* seq (BTREE, RECNO) */ -#define R_NEXT 7 /* seq */ -#define R_NOOVERWRITE 8 /* put */ -#define R_PREV 9 /* seq (BTREE, RECNO) */ -#define R_SETCURSOR 10 /* put (RECNO) */ -#define R_RECNOSYNC 11 /* sync (RECNO) */ - -typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE; - -/* - * !!! - * The following flags are included in the dbopen(3) call as part of the - * open(2) flags. In order to avoid conflicts with the open flags, start - * at the top of the 16 or 32-bit number space and work our way down. If - * the open flags were significantly expanded in the future, it could be - * a problem. Wish I'd left another flags word in the dbopen call. - * - * !!! - * None of this stuff is implemented yet. The only reason that it's here - * is so that the access methods can skip copying the key/data pair when - * the DB_LOCK flag isn't set. - */ -#if UINT_MAX > 65535 -#define DB_LOCK 0x20000000 /* Do locking. */ -#define DB_SHMEM 0x40000000 /* Use shared memory. */ -#define DB_TXN 0x80000000 /* Do transactions. */ -#else -#define DB_LOCK 0x2000 /* Do locking. */ -#define DB_SHMEM 0x4000 /* Use shared memory. */ -#define DB_TXN 0x8000 /* Do transactions. */ -#endif - -/* Access method description structure. */ -typedef struct __db { - DBTYPE type; /* Underlying db type. */ - int (*close)(struct __db *); - int (*del)(const struct __db *, const DBT *, u_int); - int (*get)(const struct __db *, const DBT *, DBT *, u_int); - int (*put)(const struct __db *, DBT *, const DBT *, u_int); - int (*seq)(const struct __db *, DBT *, DBT *, u_int); - int (*sync)(const struct __db *, u_int); - void *internal; /* Access method private. */ - int (*fd)(const struct __db *); -} DB; - -#define BTREEMAGIC 0x053162 -#define BTREEVERSION 3 - -/* Structure used to pass parameters to the btree routines. */ -typedef struct { -#define R_DUP 0x01 /* duplicate keys */ - u_long flags; - u_int cachesize; /* bytes to cache */ - int maxkeypage; /* maximum keys per page */ - int minkeypage; /* minimum keys per page */ - u_int psize; /* page size */ - int (*compare) /* comparison function */ - (const DBT *, const DBT *); - size_t (*prefix) /* prefix function */ - (const DBT *, const DBT *); - int lorder; /* byte order */ -} BTREEINFO; - -#define HASHMAGIC 0x061561L -#define HASHVERSION 2 - -/* Structure used to pass parameters to the hashing routines. */ -typedef struct { - u_int bsize; /* bucket size */ - u_int ffactor; /* fill factor */ - u_int nelem; /* number of elements */ - u_int cachesize; /* bytes to cache */ - __uint32_t /* hash function */ - (*hash)(const void *, size_t); - int lorder; /* byte order */ -} HASHINFO; - -/* Structure used to pass parameters to the record routines. */ -typedef struct { -#define R_FIXEDLEN 0x01 /* fixed-length records */ -#define R_NOKEY 0x02 /* key not required */ -#define R_SNAPSHOT 0x04 /* snapshot the input */ - u_long flags; - u_int cachesize; /* bytes to cache */ - u_int psize; /* page size */ - int lorder; /* byte order */ - size_t reclen; /* record length (fixed-length records) */ - u_char bval; /* delimiting byte (variable-length records */ - char *bfname; /* btree file name */ -} RECNOINFO; - -/* - * Little endian <==> big endian 32-bit swap macros. - * M_32_SWAP swap a memory location - * P_32_SWAP swap a referenced memory location - * P_32_COPY swap from one location to another - */ -#define M_32_SWAP(a) { \ - __uint32_t _tmp = a; \ - ((char *)&a)[0] = ((char *)&_tmp)[3]; \ - ((char *)&a)[1] = ((char *)&_tmp)[2]; \ - ((char *)&a)[2] = ((char *)&_tmp)[1]; \ - ((char *)&a)[3] = ((char *)&_tmp)[0]; \ -} -#define P_32_SWAP(a) { \ - __uint32_t _tmp = *(__uint32_t *)a; \ - ((char *)a)[0] = ((char *)&_tmp)[3]; \ - ((char *)a)[1] = ((char *)&_tmp)[2]; \ - ((char *)a)[2] = ((char *)&_tmp)[1]; \ - ((char *)a)[3] = ((char *)&_tmp)[0]; \ -} -#define P_32_COPY(a, b) { \ - ((char *)&(b))[0] = ((char *)&(a))[3]; \ - ((char *)&(b))[1] = ((char *)&(a))[2]; \ - ((char *)&(b))[2] = ((char *)&(a))[1]; \ - ((char *)&(b))[3] = ((char *)&(a))[0]; \ -} - -/* - * Little endian <==> big endian 16-bit swap macros. - * M_16_SWAP swap a memory location - * P_16_SWAP swap a referenced memory location - * P_16_COPY swap from one location to another - */ -#define M_16_SWAP(a) { \ - __uint16_t _tmp = a; \ - ((char *)&a)[0] = ((char *)&_tmp)[1]; \ - ((char *)&a)[1] = ((char *)&_tmp)[0]; \ -} -#define P_16_SWAP(a) { \ - __uint16_t _tmp = *(__uint16_t *)a; \ - ((char *)a)[0] = ((char *)&_tmp)[1]; \ - ((char *)a)[1] = ((char *)&_tmp)[0]; \ -} -#define P_16_COPY(a, b) { \ - ((char *)&(b))[0] = ((char *)&(a))[1]; \ - ((char *)&(b))[1] = ((char *)&(a))[0]; \ -} - -__BEGIN_DECLS -DB *dbopen(const char *, int, int, DBTYPE, const void *); - -#ifdef __DBINTERFACE_PRIVATE -DB *__bt_open(const char *, int, int, const BTREEINFO *, int); -DB *__hash_open(const char *, int, int, int, const HASHINFO *); -DB *__rec_open(const char *, int, int, const RECNOINFO *, int); -void __dbpanic(DB *dbp); -#endif -__END_DECLS -#endif /* !_DB_H_ */ diff --git a/lib/search/extern.h b/lib/search/extern.h deleted file mode 100644 index 58a2a04..0000000 --- a/lib/search/extern.h +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * Copyright (c) 1991, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)extern.h 8.4 (Berkeley) 6/16/94 - * $FreeBSD: src/lib/libc/db/hash/extern.h,v 1.3 2002/03/22 09:18:22 obrien Exp $ - */ - -BUFHEAD *__add_ovflpage(HTAB *, BUFHEAD *); -int __addel(HTAB *, BUFHEAD *, const DBT *, const DBT *); -int __big_delete(HTAB *, BUFHEAD *); -int __big_insert(HTAB *, BUFHEAD *, const DBT *, const DBT *); -int __big_keydata(HTAB *, BUFHEAD *, DBT *, DBT *, int); -int __big_return(HTAB *, BUFHEAD *, int, DBT *, int); -int __big_split(HTAB *, BUFHEAD *, BUFHEAD *, BUFHEAD *, - int, __uint32_t, SPLIT_RETURN *); -int __buf_free(HTAB *, int, int); -void __buf_init(HTAB *, int); -__uint32_t __call_hash(HTAB *, char *, int); -int __delpair(HTAB *, BUFHEAD *, int); -int __expand_table(HTAB *); -int __find_bigpair(HTAB *, BUFHEAD *, int, char *, int); -__uint16_t __find_last_page(HTAB *, BUFHEAD **); -void __free_ovflpage(HTAB *, BUFHEAD *); -BUFHEAD *__get_buf(HTAB *, __uint32_t, BUFHEAD *, int); -int __get_page(HTAB *, char *, __uint32_t, int, int, int); -int __ibitmap(HTAB *, int, int, int); -__uint32_t __log2(__uint32_t); -int __put_page(HTAB *, char *, __uint32_t, int, int); -void __reclaim_buf(HTAB *, BUFHEAD *); -int __split_page(HTAB *, __uint32_t, __uint32_t); - -/* Default hash routine. */ -extern __uint32_t (*__default_hash)(const void *, size_t); - -#ifdef HASH_STATISTICS -extern int hash_accesses, hash_collisions, hash_expansions, hash_overflows; -#endif diff --git a/lib/search/hash.c b/lib/search/hash.c deleted file mode 100644 index 33ff275..0000000 --- a/lib/search/hash.c +++ /dev/null @@ -1,1037 +0,0 @@ -/*- - * Copyright (c) 1990, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Margo Seltzer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)hash.c 8.9 (Berkeley) 6/16/94"; -#endif /* LIBC_SCCS and not lint */ -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#ifdef DEBUG -#include -#endif - -#define __DBINTERFACE_PRIVATE /* activate prototypes from db_local.h */ -#include "db_local.h" -#include "hash.h" -#include "page.h" -#include "extern.h" - -static int alloc_segs(HTAB *, int); -static int flush_meta(HTAB *); -static int hash_access(HTAB *, ACTION, DBT *, DBT *); -static int hash_close(DB *); -static int hash_delete(const DB *, const DBT *, u_int); -static int hash_fd(const DB *); -static int hash_get(const DB *, const DBT *, DBT *, u_int); -static int hash_put(const DB *, DBT *, const DBT *, u_int); -static void *hash_realloc(SEGMENT **, int, int); -static int hash_seq(const DB *, DBT *, DBT *, u_int); -static int hash_sync(const DB *, u_int); -static int hdestroy(HTAB *); -static HTAB *init_hash(HTAB *, const char *, const HASHINFO *); -static int init_htab(HTAB *, int); -#if (BYTE_ORDER == LITTLE_ENDIAN) -static void swap_header(HTAB *); -static void swap_header_copy(HASHHDR *, HASHHDR *); -#endif - -/* Macros for min/max. */ -#ifndef MIN -#define MIN(a,b) (((a)<(b))?(a):(b)) -#endif -#ifndef MAX -#define MAX(a,b) (((a)>(b))?(a):(b)) -#endif - -/* Fast arithmetic, relying on powers of 2, */ -#define MOD(x, y) ((x) & ((y) - 1)) - -#define RETURN_ERROR(ERR, LOC) { save_errno = ERR; goto LOC; } - -/* Return values */ -#define SUCCESS (0) -#define ERROR (-1) -#define ABNORMAL (1) - -#ifdef HASH_STATISTICS -int hash_accesses, hash_collisions, hash_expansions, hash_overflows; -#endif - -/************************** INTERFACE ROUTINES ***************************/ -/* OPEN/CLOSE */ - -extern DB * -__hash_open (const char *file, - int flags, - int mode, - int dflags, - const HASHINFO *info) /* Special directives for create */ -{ - HTAB *hashp; - -#ifdef __USE_INTERNAL_STAT64 - struct stat64 statbuf; -#else - struct stat statbuf; -#endif - DB *dbp; - int bpages, hdrsize, new_table, nsegs, save_errno; - - if ((flags & O_ACCMODE) == O_WRONLY) { - errno = EINVAL; - return (NULL); - } - - if (!(hashp = (HTAB *)calloc(1, sizeof(HTAB)))) - return (NULL); - hashp->fp = -1; - - /* - * Even if user wants write only, we need to be able to read - * the actual file, so we need to open it read/write. But, the - * field in the hashp structure needs to be accurate so that - * we can check accesses. - */ - hashp->flags = flags; - - new_table = 0; - if (!file || (flags & O_TRUNC) || -#ifdef __USE_INTERNAL_STAT64 - (_stat64_r(_REENT, file, &statbuf) && (errno == ENOENT))) { -#else - (_stat_r(_REENT, file, &statbuf) && (errno == ENOENT))) { -#endif - if (errno == ENOENT) - errno = 0; /* Just in case someone looks at errno */ - new_table = 1; - } - if (file) { - if ((hashp->fp = open(file, flags, mode)) == -1) - RETURN_ERROR(errno, error0); - - /* if the .db file is empty, and we had permission to create - a new .db file, then reinitialize the database */ - if ((flags & O_CREAT) && -#ifdef __USE_INTERNAL_STAT64 - _fstat64_r(_REENT, hashp->fp, &statbuf) == 0 && statbuf.st_size == 0) -#else - _fstat_r(_REENT, hashp->fp, &statbuf) == 0 && statbuf.st_size == 0) -#endif - new_table = 1; - -#ifdef HAVE_FCNTL - (void)fcntl(hashp->fp, F_SETFD, 1); -#endif - } - if (new_table) { - if (!(hashp = init_hash(hashp, file, (HASHINFO *)info))) - RETURN_ERROR(errno, error1); - } else { - /* Table already exists */ - if (info && info->hash) - hashp->hash = info->hash; - else - hashp->hash = __default_hash; - - hdrsize = read(hashp->fp, &hashp->hdr, sizeof(HASHHDR)); -#if (BYTE_ORDER == LITTLE_ENDIAN) - swap_header(hashp); -#endif - if (hdrsize == -1) - RETURN_ERROR(errno, error1); - if (hdrsize != sizeof(HASHHDR)) - RETURN_ERROR(EFTYPE, error1); - /* Verify file type, versions and hash function */ - if (hashp->MAGIC != HASHMAGIC) - RETURN_ERROR(EFTYPE, error1); -#define OLDHASHVERSION 1 - if (hashp->HASH_VERSION != HASHVERSION && - hashp->HASH_VERSION != OLDHASHVERSION) - RETURN_ERROR(EFTYPE, error1); - if (hashp->hash(CHARKEY, sizeof(CHARKEY)) != hashp->H_CHARKEY) - RETURN_ERROR(EFTYPE, error1); - /* Check bucket size isn't too big for target int. */ - if (hashp->BSIZE > INT_MAX) - RETURN_ERROR(EFTYPE, error1); - /* - * Figure out how many segments we need. Max_Bucket is the - * maximum bucket number, so the number of buckets is - * max_bucket + 1. - */ - nsegs = (hashp->MAX_BUCKET + 1 + hashp->SGSIZE - 1) / - hashp->SGSIZE; - hashp->nsegs = 0; - if (alloc_segs(hashp, nsegs)) - /* - * If alloc_segs fails, table will have been destroyed - * and errno will have been set. - */ - return (NULL); - /* Read in bitmaps */ - bpages = (hashp->SPARES[hashp->OVFL_POINT] + - (hashp->BSIZE << BYTE_SHIFT) - 1) >> - (hashp->BSHIFT + BYTE_SHIFT); - - hashp->nmaps = bpages; - (void)memset(&hashp->mapp[0], 0, bpages * sizeof(__uint32_t *)); - } - - /* Initialize Buffer Manager */ - if (info && info->cachesize) - __buf_init(hashp, info->cachesize); - else - __buf_init(hashp, DEF_BUFSIZE); - - hashp->new_file = new_table; - hashp->save_file = file && (hashp->flags & O_RDWR); - hashp->cbucket = -1; - if (!(dbp = (DB *)malloc(sizeof(DB)))) { - save_errno = errno; - hdestroy(hashp); - errno = save_errno; - return (NULL); - } - dbp->internal = hashp; - dbp->close = hash_close; - dbp->del = hash_delete; - dbp->fd = hash_fd; - dbp->get = hash_get; - dbp->put = hash_put; - dbp->seq = hash_seq; - dbp->sync = hash_sync; - dbp->type = DB_HASH; - -#ifdef DEBUG - (void)fprintf(stderr, -"%s\n%s%x\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n%s%x\n%s%x\n%s%d\n%s%d\n", - "init_htab:", - "TABLE POINTER ", hashp, - "BUCKET SIZE ", hashp->BSIZE, - "BUCKET SHIFT ", hashp->BSHIFT, - "DIRECTORY SIZE ", hashp->DSIZE, - "SEGMENT SIZE ", hashp->SGSIZE, - "SEGMENT SHIFT ", hashp->SSHIFT, - "FILL FACTOR ", hashp->FFACTOR, - "MAX BUCKET ", hashp->MAX_BUCKET, - "OVFL POINT ", hashp->OVFL_POINT, - "LAST FREED ", hashp->LAST_FREED, - "HIGH MASK ", hashp->HIGH_MASK, - "LOW MASK ", hashp->LOW_MASK, - "NSEGS ", hashp->nsegs, - "NKEYS ", hashp->NKEYS); -#endif -#ifdef HASH_STATISTICS - hash_overflows = hash_accesses = hash_collisions = hash_expansions = 0; -#endif - return (dbp); - -error1: - if (hashp != NULL) - (void)close(hashp->fp); - -error0: - free(hashp); - errno = save_errno; - return (NULL); -} - -static int -hash_close(dbp) - DB *dbp; -{ - HTAB *hashp; - int retval; - - if (!dbp) - return (ERROR); - - hashp = (HTAB *)dbp->internal; - retval = hdestroy(hashp); - free(dbp); - return (retval); -} - -static int -hash_fd(dbp) - const DB *dbp; -{ - HTAB *hashp; - - if (!dbp) - return (ERROR); - - hashp = (HTAB *)dbp->internal; - if (hashp->fp == -1) { - errno = ENOENT; - return (-1); - } - return (hashp->fp); -} - -/************************** LOCAL CREATION ROUTINES **********************/ -static HTAB * -init_hash(hashp, file, info) - HTAB *hashp; - const char *file; - const HASHINFO *info; -{ -#ifdef __USE_INTERNAL_STAT64 - struct stat64 statbuf; -#else - struct stat statbuf; -#endif - int nelem; - - nelem = 1; - hashp->NKEYS = 0; - hashp->LORDER = DB_BYTE_ORDER; - hashp->BSIZE = DEF_BUCKET_SIZE; - hashp->BSHIFT = DEF_BUCKET_SHIFT; - hashp->SGSIZE = DEF_SEGSIZE; - hashp->SSHIFT = DEF_SEGSIZE_SHIFT; - hashp->DSIZE = DEF_DIRSIZE; - hashp->FFACTOR = DEF_FFACTOR; - hashp->hash = __default_hash; - memset(hashp->SPARES, 0, sizeof(hashp->SPARES)); - memset(hashp->BITMAPS, 0, sizeof (hashp->BITMAPS)); - - /* Fix bucket size to be optimal for file system */ - if (file != NULL) { -#ifdef __USE_INTERNAL_STAT64 - if (_stat64_r(_REENT, file, &statbuf)) -#else - if (_stat_r(_REENT, file, &statbuf)) -#endif - return (NULL); - hashp->BSIZE = MIN(statbuf.st_blksize, MAX_BSIZE); - hashp->BSHIFT = __log2(hashp->BSIZE); - } - - if (info) { - if (info->bsize) { - /* Round pagesize up to power of 2 */ - hashp->BSHIFT = __log2(info->bsize); - hashp->BSIZE = 1 << hashp->BSHIFT; - if (hashp->BSIZE > MAX_BSIZE) { - errno = EINVAL; - return (NULL); - } - } - if (info->ffactor) - hashp->FFACTOR = info->ffactor; - if (info->hash) - hashp->hash = info->hash; - if (info->nelem) - nelem = info->nelem; - if (info->lorder) { - if (info->lorder != DB_BIG_ENDIAN && - info->lorder != DB_LITTLE_ENDIAN) { - errno = EINVAL; - return (NULL); - } - hashp->LORDER = info->lorder; - } - } - /* init_htab should destroy the table and set errno if it fails */ - if (init_htab(hashp, nelem)) - return (NULL); - else - return (hashp); -} -/* - * This calls alloc_segs which may run out of memory. Alloc_segs will destroy - * the table and set errno, so we just pass the error information along. - * - * Returns 0 on No Error - */ -static int -init_htab(hashp, nelem) - HTAB *hashp; - int nelem; -{ - int nbuckets, nsegs; - int l2; - - /* - * Divide number of elements by the fill factor and determine a - * desired number of buckets. Allocate space for the next greater - * power of two number of buckets. - */ - nelem = (nelem - 1) / hashp->FFACTOR + 1; - - l2 = __log2(MAX(nelem, 2)); - nbuckets = 1 << l2; - - hashp->SPARES[l2] = l2 + 1; - hashp->SPARES[l2 + 1] = l2 + 1; - hashp->OVFL_POINT = l2; - hashp->LAST_FREED = 2; - - /* First bitmap page is at: splitpoint l2 page offset 1 */ - if (__ibitmap(hashp, OADDR_OF(l2, 1), l2 + 1, 0)) - return (-1); - - hashp->MAX_BUCKET = hashp->LOW_MASK = nbuckets - 1; - hashp->HIGH_MASK = (nbuckets << 1) - 1; - hashp->HDRPAGES = ((MAX(sizeof(HASHHDR), MINHDRSIZE) - 1) >> - hashp->BSHIFT) + 1; - - nsegs = (nbuckets - 1) / hashp->SGSIZE + 1; - nsegs = 1 << __log2(nsegs); - - if (nsegs > hashp->DSIZE) - hashp->DSIZE = nsegs; - return (alloc_segs(hashp, nsegs)); -} - -/********************** DESTROY/CLOSE ROUTINES ************************/ - -/* - * Flushes any changes to the file if necessary and destroys the hashp - * structure, freeing all allocated space. - */ -static int -hdestroy(hashp) - HTAB *hashp; -{ - int i, save_errno; - - save_errno = 0; - -#ifdef HASH_STATISTICS - (void)fprintf(stderr, "hdestroy: accesses %ld collisions %ld\n", - hash_accesses, hash_collisions); - (void)fprintf(stderr, "hdestroy: expansions %ld\n", - hash_expansions); - (void)fprintf(stderr, "hdestroy: overflows %ld\n", - hash_overflows); - (void)fprintf(stderr, "keys %ld maxp %d segmentcount %d\n", - hashp->NKEYS, hashp->MAX_BUCKET, hashp->nsegs); - - for (i = 0; i < NCACHED; i++) - (void)fprintf(stderr, - "spares[%d] = %d\n", i, hashp->SPARES[i]); -#endif - /* - * Call on buffer manager to free buffers, and if required, - * write them to disk. - */ - if (__buf_free(hashp, 1, hashp->save_file)) - save_errno = errno; - if (hashp->dir) { - free(*hashp->dir); /* Free initial segments */ - /* Free extra segments */ - while (hashp->exsegs--) - free(hashp->dir[--hashp->nsegs]); - free(hashp->dir); - } - if (flush_meta(hashp) && !save_errno) - save_errno = errno; - /* Free Bigmaps */ - for (i = 0; i < hashp->nmaps; i++) - if (hashp->mapp[i]) - free(hashp->mapp[i]); - - if (hashp->fp != -1) - (void)close(hashp->fp); - - free(hashp); - - if (save_errno) { - errno = save_errno; - return (ERROR); - } - return (SUCCESS); -} -/* - * Write modified pages to disk - * - * Returns: - * 0 == OK - * -1 ERROR - */ -static int -hash_sync(dbp, flags) - const DB *dbp; - u_int flags; -{ - HTAB *hashp; - - if (flags != 0) { - errno = EINVAL; - return (ERROR); - } - - if (!dbp) - return (ERROR); - - hashp = (HTAB *)dbp->internal; - if (!hashp->save_file) - return (0); - if (__buf_free(hashp, 0, 1) || flush_meta(hashp)) - return (ERROR); - hashp->new_file = 0; - return (0); -} - -/* - * Returns: - * 0 == OK - * -1 indicates that errno should be set - */ -static int -flush_meta(hashp) - HTAB *hashp; -{ - HASHHDR *whdrp; -#if (BYTE_ORDER == LITTLE_ENDIAN) - HASHHDR whdr; -#endif - int fp, i, wsize; - - if (!hashp->save_file) - return (0); - hashp->MAGIC = HASHMAGIC; - hashp->HASH_VERSION = HASHVERSION; - hashp->H_CHARKEY = hashp->hash(CHARKEY, sizeof(CHARKEY)); - - fp = hashp->fp; - whdrp = &hashp->hdr; -#if (BYTE_ORDER == LITTLE_ENDIAN) - whdrp = &whdr; - swap_header_copy(&hashp->hdr, whdrp); -#endif - if ((lseek(fp, (off_t)0, SEEK_SET) == -1) || - ((wsize = write(fp, whdrp, sizeof(HASHHDR))) == -1)) - return (-1); - else - if (wsize != sizeof(HASHHDR)) { - errno = EFTYPE; - hashp->error = errno; - return (-1); - } - for (i = 0; i < NCACHED; i++) - if (hashp->mapp[i]) - if (__put_page(hashp, (char *)hashp->mapp[i], - hashp->BITMAPS[i], 0, 1)) - return (-1); - return (0); -} - -/*******************************SEARCH ROUTINES *****************************/ -/* - * All the access routines return - * - * Returns: - * 0 on SUCCESS - * 1 to indicate an external ERROR (i.e. key not found, etc) - * -1 to indicate an internal ERROR (i.e. out of memory, etc) - */ -static int -hash_get(dbp, key, data, flag) - const DB *dbp; - const DBT *key; - DBT *data; - u_int flag; -{ - HTAB *hashp; - - hashp = (HTAB *)dbp->internal; - if (flag) { - hashp->error = errno = EINVAL; - return (ERROR); - } - return (hash_access(hashp, HASH_GET, (DBT *)key, data)); -} - -static int -hash_put(dbp, key, data, flag) - const DB *dbp; - DBT *key; - const DBT *data; - u_int flag; -{ - HTAB *hashp; - - hashp = (HTAB *)dbp->internal; - if (flag && flag != R_NOOVERWRITE) { - hashp->error = EINVAL; - errno = EINVAL; - return (ERROR); - } - if ((hashp->flags & O_ACCMODE) == O_RDONLY) { - hashp->error = errno = EPERM; - return (ERROR); - } - return (hash_access(hashp, flag == R_NOOVERWRITE ? - HASH_PUTNEW : HASH_PUT, (DBT *)key, (DBT *)data)); -} - -static int -hash_delete(dbp, key, flag) - const DB *dbp; - const DBT *key; - u_int flag; /* Ignored */ -{ - HTAB *hashp; - - hashp = (HTAB *)dbp->internal; - if (flag && flag != R_CURSOR) { - hashp->error = errno = EINVAL; - return (ERROR); - } - if ((hashp->flags & O_ACCMODE) == O_RDONLY) { - hashp->error = errno = EPERM; - return (ERROR); - } - return (hash_access(hashp, HASH_DELETE, (DBT *)key, NULL)); -} - -/* - * Assume that hashp has been set in wrapper routine. - */ -static int -hash_access(hashp, action, key, val) - HTAB *hashp; - ACTION action; - DBT *key, *val; -{ - BUFHEAD *rbufp; - BUFHEAD *bufp, *save_bufp; - __uint16_t *bp; - int n, ndx, off, size; - char *kp; - __uint16_t pageno; - -#ifdef HASH_STATISTICS - hash_accesses++; -#endif - - off = hashp->BSIZE; - size = key->size; - kp = (char *)key->data; - rbufp = __get_buf(hashp, __call_hash(hashp, kp, size), NULL, 0); - if (!rbufp) - return (ERROR); - save_bufp = rbufp; - - /* Pin the bucket chain */ - rbufp->flags |= BUF_PIN; - for (bp = (__uint16_t *)rbufp->page, n = *bp++, ndx = 1; ndx < n;) - if (bp[1] >= REAL_KEY) { - /* Real key/data pair */ - if (size == off - *bp && - memcmp(kp, rbufp->page + *bp, size) == 0) - goto found; - off = bp[1]; -#ifdef HASH_STATISTICS - hash_collisions++; -#endif - bp += 2; - ndx += 2; - } else if (bp[1] == OVFLPAGE) { - rbufp = __get_buf(hashp, *bp, rbufp, 0); - if (!rbufp) { - save_bufp->flags &= ~BUF_PIN; - return (ERROR); - } - /* FOR LOOP INIT */ - bp = (__uint16_t *)rbufp->page; - n = *bp++; - ndx = 1; - off = hashp->BSIZE; - } else if (bp[1] < REAL_KEY) { - if ((ndx = - __find_bigpair(hashp, rbufp, ndx, kp, size)) > 0) - goto found; - if (ndx == -2) { - bufp = rbufp; - if (!(pageno = - __find_last_page(hashp, &bufp))) { - ndx = 0; - rbufp = bufp; - break; /* FOR */ - } - rbufp = __get_buf(hashp, pageno, bufp, 0); - if (!rbufp) { - save_bufp->flags &= ~BUF_PIN; - return (ERROR); - } - /* FOR LOOP INIT */ - bp = (__uint16_t *)rbufp->page; - n = *bp++; - ndx = 1; - off = hashp->BSIZE; - } else { - save_bufp->flags &= ~BUF_PIN; - return (ERROR); - } - } - - /* Not found */ - switch (action) { - case HASH_PUT: - case HASH_PUTNEW: - if (__addel(hashp, rbufp, key, val)) { - save_bufp->flags &= ~BUF_PIN; - return (ERROR); - } else { - save_bufp->flags &= ~BUF_PIN; - return (SUCCESS); - } - case HASH_GET: - case HASH_DELETE: - default: - save_bufp->flags &= ~BUF_PIN; - return (ABNORMAL); - } - -found: - switch (action) { - case HASH_PUTNEW: - save_bufp->flags &= ~BUF_PIN; - return (ABNORMAL); - case HASH_GET: - bp = (__uint16_t *)rbufp->page; - if (bp[ndx + 1] < REAL_KEY) { - if (__big_return(hashp, rbufp, ndx, val, 0)) - return (ERROR); - } else { - val->data = (u_char *)rbufp->page + (int)bp[ndx + 1]; - val->size = bp[ndx] - bp[ndx + 1]; - } - break; - case HASH_PUT: - if ((__delpair(hashp, rbufp, ndx)) || - (__addel(hashp, rbufp, key, val))) { - save_bufp->flags &= ~BUF_PIN; - return (ERROR); - } - break; - case HASH_DELETE: - if (__delpair(hashp, rbufp, ndx)) - return (ERROR); - break; - default: - abort(); - } - save_bufp->flags &= ~BUF_PIN; - return (SUCCESS); -} - -static int -hash_seq(dbp, key, data, flag) - const DB *dbp; - DBT *key, *data; - u_int flag; -{ - __uint32_t bucket; - BUFHEAD *bufp; - HTAB *hashp; - __uint16_t *bp, ndx; - - hashp = (HTAB *)dbp->internal; - if (flag && flag != R_FIRST && flag != R_NEXT) { - hashp->error = errno = EINVAL; - return (ERROR); - } -#ifdef HASH_STATISTICS - hash_accesses++; -#endif - if ((hashp->cbucket < 0) || (flag == R_FIRST)) { - hashp->cbucket = 0; - hashp->cndx = 1; - hashp->cpage = NULL; - } - - for (bp = NULL; !bp || !bp[0]; ) { - if (!(bufp = hashp->cpage)) { - for (bucket = hashp->cbucket; - bucket <= hashp->MAX_BUCKET; - bucket++, hashp->cndx = 1) { - bufp = __get_buf(hashp, bucket, NULL, 0); - if (!bufp) - return (ERROR); - hashp->cpage = bufp; - bp = (__uint16_t *)bufp->page; - if (bp[0]) - break; - } - hashp->cbucket = bucket; - if (hashp->cbucket > hashp->MAX_BUCKET) { - hashp->cbucket = -1; - return (ABNORMAL); - } - } else - bp = (__uint16_t *)hashp->cpage->page; - -#ifdef DEBUG - assert(bp); - assert(bufp); -#endif - while (bp[hashp->cndx + 1] == OVFLPAGE) { - bufp = hashp->cpage = - __get_buf(hashp, bp[hashp->cndx], bufp, 0); - if (!bufp) - return (ERROR); - bp = (__uint16_t *)(bufp->page); - hashp->cndx = 1; - } - if (!bp[0]) { - hashp->cpage = NULL; - ++hashp->cbucket; - } - } - ndx = hashp->cndx; - if (bp[ndx + 1] < REAL_KEY) { - if (__big_keydata(hashp, bufp, key, data, 1)) - return (ERROR); - } else { - key->data = (u_char *)hashp->cpage->page + bp[ndx]; - key->size = (ndx > 1 ? bp[ndx - 1] : hashp->BSIZE) - bp[ndx]; - data->data = (u_char *)hashp->cpage->page + bp[ndx + 1]; - data->size = bp[ndx] - bp[ndx + 1]; - ndx += 2; - if (ndx > bp[0]) { - hashp->cpage = NULL; - hashp->cbucket++; - hashp->cndx = 1; - } else - hashp->cndx = ndx; - } - return (SUCCESS); -} - -/********************************* UTILITIES ************************/ - -/* - * Returns: - * 0 ==> OK - * -1 ==> Error - */ -extern int -__expand_table(hashp) - HTAB *hashp; -{ - __uint32_t old_bucket, new_bucket; - int dirsize, new_segnum, spare_ndx; - -#ifdef HASH_STATISTICS - hash_expansions++; -#endif - new_bucket = ++hashp->MAX_BUCKET; - old_bucket = (hashp->MAX_BUCKET & hashp->LOW_MASK); - - new_segnum = new_bucket >> hashp->SSHIFT; - - /* Check if we need a new segment */ - if (new_segnum >= hashp->nsegs) { - /* Check if we need to expand directory */ - if (new_segnum >= hashp->DSIZE) { - /* Reallocate directory */ - dirsize = hashp->DSIZE * sizeof(SEGMENT *); - if (!hash_realloc(&hashp->dir, dirsize, dirsize << 1)) - return (-1); - hashp->DSIZE = dirsize << 1; - } - if ((hashp->dir[new_segnum] = - (SEGMENT)calloc(hashp->SGSIZE, sizeof(SEGMENT))) == NULL) - return (-1); - hashp->exsegs++; - hashp->nsegs++; - } - /* - * If the split point is increasing (MAX_BUCKET's log base 2 - * * increases), we need to copy the current contents of the spare - * split bucket to the next bucket. - */ - spare_ndx = __log2(hashp->MAX_BUCKET + 1); - if (spare_ndx > hashp->OVFL_POINT) { - hashp->SPARES[spare_ndx] = hashp->SPARES[hashp->OVFL_POINT]; - hashp->OVFL_POINT = spare_ndx; - } - - if (new_bucket > hashp->HIGH_MASK) { - /* Starting a new doubling */ - hashp->LOW_MASK = hashp->HIGH_MASK; - hashp->HIGH_MASK = new_bucket | hashp->LOW_MASK; - } - /* Relocate records to the new bucket */ - return (__split_page(hashp, old_bucket, new_bucket)); -} - -/* - * If realloc guarantees that the pointer is not destroyed if the realloc - * fails, then this routine can go away. - */ -static void * -hash_realloc(p_ptr, oldsize, newsize) - SEGMENT **p_ptr; - int oldsize, newsize; -{ - void *p; - - if ( (p = malloc(newsize)) ) { - memmove(p, *p_ptr, oldsize); - memset((char *)p + oldsize, 0, newsize - oldsize); - free(*p_ptr); - *p_ptr = p; - } - return (p); -} - -extern __uint32_t -__call_hash(hashp, k, len) - HTAB *hashp; - char *k; - int len; -{ - int n, bucket; - - n = hashp->hash(k, len); - bucket = n & hashp->HIGH_MASK; - if (bucket > hashp->MAX_BUCKET) - bucket = bucket & hashp->LOW_MASK; - return (bucket); -} - -/* - * Allocate segment table. On error, destroy the table and set errno. - * - * Returns 0 on success - */ -static int -alloc_segs(hashp, nsegs) - HTAB *hashp; - int nsegs; -{ - int i; - SEGMENT store; - - int save_errno; - - if ((hashp->dir = - (SEGMENT *)calloc(hashp->DSIZE, sizeof(SEGMENT *))) == NULL) { - save_errno = errno; - (void)hdestroy(hashp); - errno = save_errno; - return (-1); - } - /* Allocate segments */ - if ((store = - (SEGMENT)calloc(nsegs << hashp->SSHIFT, sizeof(SEGMENT))) == NULL) { - save_errno = errno; - (void)hdestroy(hashp); - errno = save_errno; - return (-1); - } - for (i = 0; i < nsegs; i++, hashp->nsegs++) - hashp->dir[i] = &store[i << hashp->SSHIFT]; - return (0); -} - -#if (BYTE_ORDER == LITTLE_ENDIAN) -/* - * Hashp->hdr needs to be byteswapped. - */ -static void -swap_header_copy(srcp, destp) - HASHHDR *srcp, *destp; -{ - int i; - - P_32_COPY(srcp->magic, destp->magic); - P_32_COPY(srcp->version, destp->version); - P_32_COPY(srcp->lorder, destp->lorder); - P_32_COPY(srcp->bsize, destp->bsize); - P_32_COPY(srcp->bshift, destp->bshift); - P_32_COPY(srcp->dsize, destp->dsize); - P_32_COPY(srcp->ssize, destp->ssize); - P_32_COPY(srcp->sshift, destp->sshift); - P_32_COPY(srcp->ovfl_point, destp->ovfl_point); - P_32_COPY(srcp->last_freed, destp->last_freed); - P_32_COPY(srcp->max_bucket, destp->max_bucket); - P_32_COPY(srcp->high_mask, destp->high_mask); - P_32_COPY(srcp->low_mask, destp->low_mask); - P_32_COPY(srcp->ffactor, destp->ffactor); - P_32_COPY(srcp->nkeys, destp->nkeys); - P_32_COPY(srcp->hdrpages, destp->hdrpages); - P_32_COPY(srcp->h_charkey, destp->h_charkey); - for (i = 0; i < NCACHED; i++) { - P_32_COPY(srcp->spares[i], destp->spares[i]); - P_16_COPY(srcp->bitmaps[i], destp->bitmaps[i]); - } -} - -static void -swap_header(hashp) - HTAB *hashp; -{ - HASHHDR *hdrp; - int i; - - hdrp = &hashp->hdr; - - M_32_SWAP(hdrp->magic); - M_32_SWAP(hdrp->version); - M_32_SWAP(hdrp->lorder); - M_32_SWAP(hdrp->bsize); - M_32_SWAP(hdrp->bshift); - M_32_SWAP(hdrp->dsize); - M_32_SWAP(hdrp->ssize); - M_32_SWAP(hdrp->sshift); - M_32_SWAP(hdrp->ovfl_point); - M_32_SWAP(hdrp->last_freed); - M_32_SWAP(hdrp->max_bucket); - M_32_SWAP(hdrp->high_mask); - M_32_SWAP(hdrp->low_mask); - M_32_SWAP(hdrp->ffactor); - M_32_SWAP(hdrp->nkeys); - M_32_SWAP(hdrp->hdrpages); - M_32_SWAP(hdrp->h_charkey); - for (i = 0; i < NCACHED; i++) { - M_32_SWAP(hdrp->spares[i]); - M_16_SWAP(hdrp->bitmaps[i]); - } -} -#endif diff --git a/lib/search/hash.h b/lib/search/hash.h deleted file mode 100644 index 5f64592..0000000 --- a/lib/search/hash.h +++ /dev/null @@ -1,317 +0,0 @@ -/*- - * Copyright (c) 1990, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Margo Seltzer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)hash.h 8.3 (Berkeley) 5/31/94 - * $FreeBSD: src/lib/libc/db/hash/hash.h,v 1.6 2002/03/21 22:46:26 obrien Exp $ - */ - -#include -#define __need_size_t -#include -#include - -/* Check that newlib understands the byte order of its target system. */ -#ifndef BYTE_ORDER -#error BYTE_ORDER not defined by sys/param.h -#endif - -/* Define DB endianness constants based on target endianness. */ -#define DB_LITTLE_ENDIAN 1234 -#define DB_BIG_ENDIAN 4321 -#if (BYTE_ORDER == LITTLE_ENDIAN) -#define DB_BYTE_ORDER DB_LITTLE_ENDIAN -#else -#define DB_BYTE_ORDER DB_BIG_ENDIAN -#endif - -/* Operations */ -typedef enum { - HASH_GET, HASH_PUT, HASH_PUTNEW, HASH_DELETE, HASH_FIRST, HASH_NEXT -} ACTION; - -/* Buffer Management structures */ -typedef struct _bufhead BUFHEAD; - -struct _bufhead { - BUFHEAD *prev; /* LRU links */ - BUFHEAD *next; /* LRU links */ - BUFHEAD *ovfl; /* Overflow page buffer header */ - __uint32_t addr; /* Address of this page */ - char *page; /* Actual page data */ - char flags; -#define BUF_MOD 0x0001 -#define BUF_DISK 0x0002 -#define BUF_BUCKET 0x0004 -#define BUF_PIN 0x0008 -}; - -#define IS_BUCKET(X) ((X) & BUF_BUCKET) - -typedef BUFHEAD **SEGMENT; - -/* Hash Table Information */ -typedef struct hashhdr { /* Disk resident portion */ - int32_t magic; /* Magic NO for hash tables */ - int32_t version; /* Version ID */ - __uint32_t lorder; /* Byte Order */ - int32_t bsize; /* Bucket/Page Size */ - int32_t bshift; /* Bucket shift */ - int32_t dsize; /* Directory Size */ - int32_t ssize; /* Segment Size */ - int32_t sshift; /* Segment shift */ - int32_t ovfl_point; /* Where overflow pages are being - * allocated */ - int32_t last_freed; /* Last overflow page freed */ - int32_t max_bucket; /* ID of Maximum bucket in use */ - int32_t high_mask; /* Mask to modulo into entire table */ - int32_t low_mask; /* Mask to modulo into lower half of - * table */ - int32_t ffactor; /* Fill factor */ - int32_t nkeys; /* Number of keys in hash table */ - int32_t hdrpages; /* Size of table header */ - int32_t h_charkey; /* value of hash(CHARKEY) */ -#define NCACHED 32 /* number of bit maps and spare - * points */ - int32_t spares[NCACHED];/* spare pages for overflow */ - __uint16_t bitmaps[NCACHED]; /* address of overflow page - * bitmaps */ -} HASHHDR; - -typedef struct htab { /* Memory resident data structure */ - HASHHDR hdr; /* Header */ - int nsegs; /* Number of allocated segments */ - int exsegs; /* Number of extra allocated - * segments */ - __uint32_t /* Hash function */ - (*hash)(const void *, size_t); - int flags; /* Flag values */ - int fp; /* File pointer */ - char *tmp_buf; /* Temporary Buffer for BIG data */ - char *tmp_key; /* Temporary Buffer for BIG keys */ - BUFHEAD *cpage; /* Current page */ - int32_t cbucket; /* Current bucket */ - int cndx; /* Index of next item on cpage */ - int error; /* Error Number -- for DBM - * compatibility */ - int new_file; /* Indicates if fd is backing store - * or no */ - int save_file; /* Indicates whether we need to flush - * file at - * exit */ - __uint32_t *mapp[NCACHED]; /* Pointers to page maps */ - int nmaps; /* Initial number of bitmaps */ - int nbufs; /* Number of buffers left to - * allocate */ - BUFHEAD bufhead; /* Header of buffer lru list */ - SEGMENT *dir; /* Hash Bucket directory */ -} HTAB; - -/* - * Constants - */ -#if INT_MAX == 32767 -#define MAX_BSIZE 4096 -#else -#define MAX_BSIZE 65536 /* 2^16 */ -#endif -#define MIN_BUFFERS 6 -#define MINHDRSIZE 512 -#if INT_MAX == 32767 -#define DEF_BUFSIZE 4096 -#else -#define DEF_BUFSIZE 65536 /* 64 K */ -#endif -#define DEF_BUCKET_SIZE 4096 -#define DEF_BUCKET_SHIFT 12 /* log2(BUCKET) */ -#define DEF_SEGSIZE 256 -#define DEF_SEGSIZE_SHIFT 8 /* log2(SEGSIZE) */ -#define DEF_DIRSIZE 256 -#define DEF_FFACTOR 65536 -#define MIN_FFACTOR 4 -#define SPLTMAX 8 -#define CHARKEY "%$sniglet^&" -#define NUMKEY 1038583 -#define BYTE_SHIFT 3 -#define INT_TO_BYTE 2 -#define INT_BYTE_SHIFT 5 -#define ALL_SET ((__uint32_t)0xFFFFFFFF) -#define ALL_CLEAR 0 - -#define PTROF(X) ((BUFHEAD *)((ptrdiff_t)(X)&~0x3)) -#define ISMOD(X) ((__uint32_t)(ptrdiff_t)(X)&0x1) -#define DOMOD(X) ((X) = (char *)((ptrdiff_t)(X)|0x1)) -#define ISDISK(X) ((__uint32_t)(ptrdiff_t)(X)&0x2) -#define DODISK(X) ((X) = (char *)((ptrdiff_t)(X)|0x2)) - -#define BITS_PER_MAP 32 - -/* Given the address of the beginning of a big map, clear/set the nth bit */ -#define CLRBIT(A, N) ((A)[(N)/BITS_PER_MAP] &= ~(1<<((N)%BITS_PER_MAP))) -#define SETBIT(A, N) ((A)[(N)/BITS_PER_MAP] |= (1<<((N)%BITS_PER_MAP))) -#define ISSET(A, N) ((A)[(N)/BITS_PER_MAP] & (1<<((N)%BITS_PER_MAP))) - -/* Overflow management */ -/* - * Overflow page numbers are allocated per split point. At each doubling of - * the table, we can allocate extra pages. So, an overflow page number has - * the top 5 bits indicate which split point and the lower 11 bits indicate - * which page at that split point is indicated (pages within split points are - * numberered starting with 1). - */ - -#define SPLITSHIFT 11 -#define SPLITMASK 0x7FF -#define SPLITNUM(N) (((__uint32_t)(N)) >> SPLITSHIFT) -#define OPAGENUM(N) ((N) & SPLITMASK) -#define OADDR_OF(S,O) ((__uint32_t)((__uint32_t)(S) << SPLITSHIFT) + (O)) - -#define BUCKET_TO_PAGE(B) \ - (B) + hashp->HDRPAGES + ((B) ? hashp->SPARES[__log2((B)+1)-1] : 0) -#define OADDR_TO_PAGE(B) \ - BUCKET_TO_PAGE ( (1 << SPLITNUM((B))) -1 ) + OPAGENUM((B)); - -/* - * page.h contains a detailed description of the page format. - * - * Normally, keys and data are accessed from offset tables in the top of - * each page which point to the beginning of the key and data. There are - * four flag values which may be stored in these offset tables which indicate - * the following: - * - * - * OVFLPAGE Rather than a key data pair, this pair contains - * the address of an overflow page. The format of - * the pair is: - * OVERFLOW_PAGE_NUMBER OVFLPAGE - * - * PARTIAL_KEY This must be the first key/data pair on a page - * and implies that page contains only a partial key. - * That is, the key is too big to fit on a single page - * so it starts on this page and continues on the next. - * The format of the page is: - * KEY_OFF PARTIAL_KEY OVFL_PAGENO OVFLPAGE - * - * KEY_OFF -- offset of the beginning of the key - * PARTIAL_KEY -- 1 - * OVFL_PAGENO - page number of the next overflow page - * OVFLPAGE -- 0 - * - * FULL_KEY This must be the first key/data pair on the page. It - * is used in two cases. - * - * Case 1: - * There is a complete key on the page but no data - * (because it wouldn't fit). The next page contains - * the data. - * - * Page format it: - * KEY_OFF FULL_KEY OVFL_PAGENO OVFL_PAGE - * - * KEY_OFF -- offset of the beginning of the key - * FULL_KEY -- 2 - * OVFL_PAGENO - page number of the next overflow page - * OVFLPAGE -- 0 - * - * Case 2: - * This page contains no key, but part of a large - * data field, which is continued on the next page. - * - * Page format it: - * DATA_OFF FULL_KEY OVFL_PAGENO OVFL_PAGE - * - * KEY_OFF -- offset of the beginning of the data on - * this page - * FULL_KEY -- 2 - * OVFL_PAGENO - page number of the next overflow page - * OVFLPAGE -- 0 - * - * FULL_KEY_DATA - * This must be the first key/data pair on the page. - * There are two cases: - * - * Case 1: - * This page contains a key and the beginning of the - * data field, but the data field is continued on the - * next page. - * - * Page format is: - * KEY_OFF FULL_KEY_DATA OVFL_PAGENO DATA_OFF - * - * KEY_OFF -- offset of the beginning of the key - * FULL_KEY_DATA -- 3 - * OVFL_PAGENO - page number of the next overflow page - * DATA_OFF -- offset of the beginning of the data - * - * Case 2: - * This page contains the last page of a big data pair. - * There is no key, only the tail end of the data - * on this page. - * - * Page format is: - * DATA_OFF FULL_KEY_DATA - * - * DATA_OFF -- offset of the beginning of the data on - * this page - * FULL_KEY_DATA -- 3 - * OVFL_PAGENO - page number of the next overflow page - * OVFLPAGE -- 0 - * - * OVFL_PAGENO and OVFLPAGE are optional (they are - * not present if there is no next page). - */ - -#define OVFLPAGE 0 -#define PARTIAL_KEY 1 -#define FULL_KEY 2 -#define FULL_KEY_DATA 3 -#define REAL_KEY 4 - -/* Short hands for accessing structure */ -#define BSIZE hdr.bsize -#define BSHIFT hdr.bshift -#define DSIZE hdr.dsize -#define SGSIZE hdr.ssize -#define SSHIFT hdr.sshift -#define LORDER hdr.lorder -#define OVFL_POINT hdr.ovfl_point -#define LAST_FREED hdr.last_freed -#define MAX_BUCKET hdr.max_bucket -#define FFACTOR hdr.ffactor -#define HIGH_MASK hdr.high_mask -#define LOW_MASK hdr.low_mask -#define NKEYS hdr.nkeys -#define HDRPAGES hdr.hdrpages -#define SPARES hdr.spares -#define BITMAPS hdr.bitmaps -#define HASH_VERSION hdr.version -#define MAGIC hdr.magic -#define NEXT_FREE hdr.next_free -#define H_CHARKEY hdr.h_charkey diff --git a/lib/search/hash_bigkey.c b/lib/search/hash_bigkey.c deleted file mode 100644 index e110e46..0000000 --- a/lib/search/hash_bigkey.c +++ /dev/null @@ -1,666 +0,0 @@ -/*- - * Copyright (c) 1990, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Margo Seltzer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)hash_bigkey.c 8.3 (Berkeley) 5/31/94"; -#endif /* LIBC_SCCS and not lint */ -#include - -/* - * PACKAGE: hash - * DESCRIPTION: - * Big key/data handling for the hashing package. - * - * ROUTINES: - * External - * __big_keydata - * __big_split - * __big_insert - * __big_return - * __big_delete - * __find_last_page - * Internal - * collect_key - * collect_data - */ - -#include - -#include -#include -#include -#include - -#ifdef DEBUG -#include -#endif - -#include "db_local.h" -#include "hash.h" -#include "page.h" -#include "extern.h" - -static int collect_key(HTAB *, BUFHEAD *, int, DBT *, int); -static int collect_data(HTAB *, BUFHEAD *, int, int); - -/* - * Big_insert - * - * You need to do an insert and the key/data pair is too big - * - * Returns: - * 0 ==> OK - *-1 ==> ERROR - */ -extern int -__big_insert(hashp, bufp, key, val) - HTAB *hashp; - BUFHEAD *bufp; - const DBT *key, *val; -{ - __uint16_t *p; - int key_size, n, val_size; - __uint16_t space, move_bytes, off; - char *cp, *key_data, *val_data; - - cp = bufp->page; /* Character pointer of p. */ - p = (__uint16_t *)cp; - - key_data = (char *)key->data; - key_size = key->size; - val_data = (char *)val->data; - val_size = val->size; - - /* First move the Key */ - for (space = FREESPACE(p) - BIGOVERHEAD; key_size; - space = FREESPACE(p) - BIGOVERHEAD) { - move_bytes = MIN(space, key_size); - off = OFFSET(p) - move_bytes; - memmove(cp + off, key_data, move_bytes); - key_size -= move_bytes; - key_data += move_bytes; - n = p[0]; - p[++n] = off; - p[0] = ++n; - FREESPACE(p) = off - PAGE_META(n); - OFFSET(p) = off; - p[n] = PARTIAL_KEY; - bufp = __add_ovflpage(hashp, bufp); - if (!bufp) - return (-1); - n = p[0]; - if (!key_size) { - if (FREESPACE(p)) { - move_bytes = MIN(FREESPACE(p), val_size); - off = OFFSET(p) - move_bytes; - p[n] = off; - memmove(cp + off, val_data, move_bytes); - val_data += move_bytes; - val_size -= move_bytes; - p[n - 2] = FULL_KEY_DATA; - FREESPACE(p) = FREESPACE(p) - move_bytes; - OFFSET(p) = off; - } else - p[n - 2] = FULL_KEY; - } - p = (__uint16_t *)bufp->page; - cp = bufp->page; - bufp->flags |= BUF_MOD; - } - - /* Now move the data */ - for (space = FREESPACE(p) - BIGOVERHEAD; val_size; - space = FREESPACE(p) - BIGOVERHEAD) { - move_bytes = MIN(space, val_size); - /* - * Here's the hack to make sure that if the data ends on the - * same page as the key ends, FREESPACE is at least one. - */ - if (space == val_size && val_size == val->size) - move_bytes--; - off = OFFSET(p) - move_bytes; - memmove(cp + off, val_data, move_bytes); - val_size -= move_bytes; - val_data += move_bytes; - n = p[0]; - p[++n] = off; - p[0] = ++n; - FREESPACE(p) = off - PAGE_META(n); - OFFSET(p) = off; - if (val_size) { - p[n] = FULL_KEY; - bufp = __add_ovflpage(hashp, bufp); - if (!bufp) - return (-1); - cp = bufp->page; - p = (__uint16_t *)cp; - } else - p[n] = FULL_KEY_DATA; - bufp->flags |= BUF_MOD; - } - return (0); -} - -/* - * Called when bufp's page contains a partial key (index should be 1) - * - * All pages in the big key/data pair except bufp are freed. We cannot - * free bufp because the page pointing to it is lost and we can't get rid - * of its pointer. - * - * Returns: - * 0 => OK - *-1 => ERROR - */ -extern int -__big_delete(hashp, bufp) - HTAB *hashp; - BUFHEAD *bufp; -{ - BUFHEAD *last_bfp, *rbufp; - __uint16_t *bp, pageno; - int key_done, n; - - rbufp = bufp; - last_bfp = NULL; - bp = (__uint16_t *)bufp->page; - pageno = 0; - key_done = 0; - - while (!key_done || (bp[2] != FULL_KEY_DATA)) { - if (bp[2] == FULL_KEY || bp[2] == FULL_KEY_DATA) - key_done = 1; - - /* - * If there is freespace left on a FULL_KEY_DATA page, then - * the data is short and fits entirely on this page, and this - * is the last page. - */ - if (bp[2] == FULL_KEY_DATA && FREESPACE(bp)) - break; - pageno = bp[bp[0] - 1]; - rbufp->flags |= BUF_MOD; - rbufp = __get_buf(hashp, pageno, rbufp, 0); - if (last_bfp) - __free_ovflpage(hashp, last_bfp); - last_bfp = rbufp; - if (!rbufp) - return (-1); /* Error. */ - bp = (__uint16_t *)rbufp->page; - } - - /* - * If we get here then rbufp points to the last page of the big - * key/data pair. Bufp points to the first one -- it should now be - * empty pointing to the next page after this pair. Can't free it - * because we don't have the page pointing to it. - */ - - /* This is information from the last page of the pair. */ - n = bp[0]; - pageno = bp[n - 1]; - - /* Now, bp is the first page of the pair. */ - bp = (__uint16_t *)bufp->page; - if (n > 2) { - /* There is an overflow page. */ - bp[1] = pageno; - bp[2] = OVFLPAGE; - bufp->ovfl = rbufp->ovfl; - } else - /* This is the last page. */ - bufp->ovfl = NULL; - n -= 2; - bp[0] = n; - FREESPACE(bp) = hashp->BSIZE - PAGE_META(n); - OFFSET(bp) = hashp->BSIZE - 1; - - bufp->flags |= BUF_MOD; - if (rbufp) - __free_ovflpage(hashp, rbufp); - if (last_bfp != rbufp) - __free_ovflpage(hashp, last_bfp); - - hashp->NKEYS--; - return (0); -} -/* - * Returns: - * 0 = key not found - * -1 = get next overflow page - * -2 means key not found and this is big key/data - * -3 error - */ -extern int -__find_bigpair(hashp, bufp, ndx, key, size) - HTAB *hashp; - BUFHEAD *bufp; - int ndx; - char *key; - int size; -{ - __uint16_t *bp; - char *p; - int ksize; - __uint16_t bytes; - char *kkey; - - bp = (__uint16_t *)bufp->page; - p = bufp->page; - ksize = size; - kkey = key; - - for (bytes = hashp->BSIZE - bp[ndx]; - bytes <= size && bp[ndx + 1] == PARTIAL_KEY; - bytes = hashp->BSIZE - bp[ndx]) { - if (memcmp(p + bp[ndx], kkey, bytes)) - return (-2); - kkey += bytes; - ksize -= bytes; - bufp = __get_buf(hashp, bp[ndx + 2], bufp, 0); - if (!bufp) - return (-3); - p = bufp->page; - bp = (__uint16_t *)p; - ndx = 1; - } - - if (bytes != ksize || memcmp(p + bp[ndx], kkey, bytes)) { -#ifdef HASH_STATISTICS - ++hash_collisions; -#endif - return (-2); - } else - return (ndx); -} - -/* - * Given the buffer pointer of the first overflow page of a big pair, - * find the end of the big pair - * - * This will set bpp to the buffer header of the last page of the big pair. - * It will return the pageno of the overflow page following the last page - * of the pair; 0 if there isn't any (i.e. big pair is the last key in the - * bucket) - */ -extern __uint16_t -__find_last_page(hashp, bpp) - HTAB *hashp; - BUFHEAD **bpp; -{ - BUFHEAD *bufp; - __uint16_t *bp, pageno; - int n; - - bufp = *bpp; - bp = (__uint16_t *)bufp->page; - for (;;) { - n = bp[0]; - - /* - * This is the last page if: the tag is FULL_KEY_DATA and - * either only 2 entries OVFLPAGE marker is explicit there - * is freespace on the page. - */ - if (bp[2] == FULL_KEY_DATA && - ((n == 2) || (bp[n] == OVFLPAGE) || (FREESPACE(bp)))) - break; - - pageno = bp[n - 1]; - bufp = __get_buf(hashp, pageno, bufp, 0); - if (!bufp) - return (0); /* Need to indicate an error! */ - bp = (__uint16_t *)bufp->page; - } - - *bpp = bufp; - if (bp[0] > 2) - return (bp[3]); - else - return (0); -} - -/* - * Return the data for the key/data pair that begins on this page at this - * index (index should always be 1). - */ -extern int -__big_return(hashp, bufp, ndx, val, set_current) - HTAB *hashp; - BUFHEAD *bufp; - int ndx; - DBT *val; - int set_current; -{ - BUFHEAD *save_p; - __uint16_t *bp, len, off, save_addr; - char *tp; - - bp = (__uint16_t *)bufp->page; - while (bp[ndx + 1] == PARTIAL_KEY) { - bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); - if (!bufp) - return (-1); - bp = (__uint16_t *)bufp->page; - ndx = 1; - } - - if (bp[ndx + 1] == FULL_KEY) { - bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); - if (!bufp) - return (-1); - bp = (__uint16_t *)bufp->page; - save_p = bufp; - save_addr = save_p->addr; - off = bp[1]; - len = 0; - } else - if (!FREESPACE(bp)) { - /* - * This is a hack. We can't distinguish between - * FULL_KEY_DATA that contains complete data or - * incomplete data, so we require that if the data - * is complete, there is at least 1 byte of free - * space left. - */ - off = bp[bp[0]]; - len = bp[1] - off; - save_p = bufp; - save_addr = bufp->addr; - bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); - if (!bufp) - return (-1); - bp = (__uint16_t *)bufp->page; - } else { - /* The data is all on one page. */ - tp = (char *)bp; - off = bp[bp[0]]; - val->data = (u_char *)tp + off; - val->size = bp[1] - off; - if (set_current) { - if (bp[0] == 2) { /* No more buckets in - * chain */ - hashp->cpage = NULL; - hashp->cbucket++; - hashp->cndx = 1; - } else { - hashp->cpage = __get_buf(hashp, - bp[bp[0] - 1], bufp, 0); - if (!hashp->cpage) - return (-1); - hashp->cndx = 1; - if (!((__uint16_t *) - hashp->cpage->page)[0]) { - hashp->cbucket++; - hashp->cpage = NULL; - } - } - } - return (0); - } - - val->size = collect_data(hashp, bufp, (int)len, set_current); - if (val->size == -1) - return (-1); - if (save_p->addr != save_addr) { - /* We are pretty short on buffers. */ - errno = EINVAL; /* OUT OF BUFFERS */ - return (-1); - } - memmove(hashp->tmp_buf, (save_p->page) + off, len); - val->data = (u_char *)hashp->tmp_buf; - return (0); -} -/* - * Count how big the total datasize is by recursing through the pages. Then - * allocate a buffer and copy the data as you recurse up. - */ -static int -collect_data(hashp, bufp, len, set) - HTAB *hashp; - BUFHEAD *bufp; - int len, set; -{ - __uint16_t *bp; - char *p; - BUFHEAD *xbp; - __uint16_t save_addr; - int mylen, totlen; - - p = bufp->page; - bp = (__uint16_t *)p; - mylen = hashp->BSIZE - bp[1]; - save_addr = bufp->addr; - - if (bp[2] == FULL_KEY_DATA) { /* End of Data */ - totlen = len + mylen; - if (hashp->tmp_buf) - free(hashp->tmp_buf); - if ((hashp->tmp_buf = (char *)malloc(totlen)) == NULL) - return (-1); - if (set) { - hashp->cndx = 1; - if (bp[0] == 2) { /* No more buckets in chain */ - hashp->cpage = NULL; - hashp->cbucket++; - } else { - hashp->cpage = - __get_buf(hashp, bp[bp[0] - 1], bufp, 0); - if (!hashp->cpage) - return (-1); - else if (!((__uint16_t *)hashp->cpage->page)[0]) { - hashp->cbucket++; - hashp->cpage = NULL; - } - } - } - } else { - xbp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); - if (!xbp || ((totlen = - collect_data(hashp, xbp, len + mylen, set)) < 1)) - return (-1); - } - if (bufp->addr != save_addr) { - errno = EINVAL; /* Out of buffers. */ - return (-1); - } - memmove(&hashp->tmp_buf[len], (bufp->page) + bp[1], mylen); - return (totlen); -} - -/* - * Fill in the key and data for this big pair. - */ -extern int -__big_keydata(hashp, bufp, key, val, set) - HTAB *hashp; - BUFHEAD *bufp; - DBT *key, *val; - int set; -{ - key->size = collect_key(hashp, bufp, 0, val, set); - if (key->size == -1) - return (-1); - key->data = (u_char *)hashp->tmp_key; - return (0); -} - -/* - * Count how big the total key size is by recursing through the pages. Then - * collect the data, allocate a buffer and copy the key as you recurse up. - */ -static int -collect_key(hashp, bufp, len, val, set) - HTAB *hashp; - BUFHEAD *bufp; - int len; - DBT *val; - int set; -{ - BUFHEAD *xbp; - char *p; - int mylen, totlen; - __uint16_t *bp, save_addr; - - p = bufp->page; - bp = (__uint16_t *)p; - mylen = hashp->BSIZE - bp[1]; - - save_addr = bufp->addr; - totlen = len + mylen; - if (bp[2] == FULL_KEY || bp[2] == FULL_KEY_DATA) { /* End of Key. */ - if (hashp->tmp_key != NULL) - free(hashp->tmp_key); - if ((hashp->tmp_key = (char *)malloc(totlen)) == NULL) - return (-1); - if (__big_return(hashp, bufp, 1, val, set)) - return (-1); - } else { - xbp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); - if (!xbp || ((totlen = - collect_key(hashp, xbp, totlen, val, set)) < 1)) - return (-1); - } - if (bufp->addr != save_addr) { - errno = EINVAL; /* MIS -- OUT OF BUFFERS */ - return (-1); - } - memmove(&hashp->tmp_key[len], (bufp->page) + bp[1], mylen); - return (totlen); -} - -/* - * Returns: - * 0 => OK - * -1 => error - */ -extern int -__big_split(hashp, op, np, big_keyp, addr, obucket, ret) - HTAB *hashp; - BUFHEAD *op; /* Pointer to where to put keys that go in old bucket */ - BUFHEAD *np; /* Pointer to new bucket page */ - /* Pointer to first page containing the big key/data */ - BUFHEAD *big_keyp; - int addr; /* Address of big_keyp */ - __uint32_t obucket;/* Old Bucket */ - SPLIT_RETURN *ret; -{ - BUFHEAD *tmpp; - __uint16_t *tp; - BUFHEAD *bp; - DBT key, val; - __uint32_t change; - __uint16_t free_space, n, off; - - bp = big_keyp; - - /* Now figure out where the big key/data goes */ - if (__big_keydata(hashp, big_keyp, &key, &val, 0)) - return (-1); - change = (__call_hash(hashp, key.data, key.size) != obucket); - - if ( (ret->next_addr = __find_last_page(hashp, &big_keyp)) ) { - if (!(ret->nextp = - __get_buf(hashp, ret->next_addr, big_keyp, 0))) - return (-1);; - } else - ret->nextp = NULL; - - /* Now make one of np/op point to the big key/data pair */ -#ifdef DEBUG - assert(np->ovfl == NULL); -#endif - if (change) - tmpp = np; - else - tmpp = op; - - tmpp->flags |= BUF_MOD; -#ifdef DEBUG1 - (void)fprintf(stderr, - "BIG_SPLIT: %d->ovfl was %d is now %d\n", tmpp->addr, - (tmpp->ovfl ? tmpp->ovfl->addr : 0), (bp ? bp->addr : 0)); -#endif - tmpp->ovfl = bp; /* one of op/np point to big_keyp */ - tp = (__uint16_t *)tmpp->page; -#ifdef DEBUG - assert(FREESPACE(tp) >= OVFLSIZE); -#endif - n = tp[0]; - off = OFFSET(tp); - free_space = FREESPACE(tp); - tp[++n] = (__uint16_t)addr; - tp[++n] = OVFLPAGE; - tp[0] = n; - OFFSET(tp) = off; - FREESPACE(tp) = free_space - OVFLSIZE; - - /* - * Finally, set the new and old return values. BIG_KEYP contains a - * pointer to the last page of the big key_data pair. Make sure that - * big_keyp has no following page (2 elements) or create an empty - * following page. - */ - - ret->newp = np; - ret->oldp = op; - - tp = (__uint16_t *)big_keyp->page; - big_keyp->flags |= BUF_MOD; - if (tp[0] > 2) { - /* - * There may be either one or two offsets on this page. If - * there is one, then the overflow page is linked on normally - * and tp[4] is OVFLPAGE. If there are two, tp[4] contains - * the second offset and needs to get stuffed in after the - * next overflow page is added. - */ - n = tp[4]; - free_space = FREESPACE(tp); - off = OFFSET(tp); - tp[0] -= 2; - FREESPACE(tp) = free_space + OVFLSIZE; - OFFSET(tp) = off; - tmpp = __add_ovflpage(hashp, big_keyp); - if (!tmpp) - return (-1); - tp[4] = n; - } else - tmpp = big_keyp; - - if (change) - ret->newp = tmpp; - else - ret->oldp = tmpp; - return (0); -} diff --git a/lib/search/hash_buf.c b/lib/search/hash_buf.c deleted file mode 100644 index 2b92168..0000000 --- a/lib/search/hash_buf.c +++ /dev/null @@ -1,360 +0,0 @@ -/*- - * Copyright (c) 1990, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Margo Seltzer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)hash_buf.c 8.5 (Berkeley) 7/15/94"; -#endif /* LIBC_SCCS and not lint */ -#include - -/* - * PACKAGE: hash - * - * DESCRIPTION: - * Contains buffer management - * - * ROUTINES: - * External - * __buf_init - * __get_buf - * __buf_free - * __reclaim_buf - * Internal - * newbuf - */ - -#include - -#include -#include -#include - -#ifdef DEBUG -#include -#endif - -#include "db_local.h" -#include "hash.h" -#include "page.h" -#include "extern.h" - -static BUFHEAD *newbuf(HTAB *, __uint32_t, BUFHEAD *); - -/* Unlink B from its place in the lru */ -#define BUF_REMOVE(B) { \ - (B)->prev->next = (B)->next; \ - (B)->next->prev = (B)->prev; \ -} - -/* Insert B after P */ -#define BUF_INSERT(B, P) { \ - (B)->next = (P)->next; \ - (B)->prev = (P); \ - (P)->next = (B); \ - (B)->next->prev = (B); \ -} - -#define MRU hashp->bufhead.next -#define LRU hashp->bufhead.prev - -#define MRU_INSERT(B) BUF_INSERT((B), &hashp->bufhead) -#define LRU_INSERT(B) BUF_INSERT((B), LRU) - -/* Macros for min/max. */ -#ifndef MIN -#define MIN(a,b) (((a)<(b))?(a):(b)) -#endif -#ifndef MAX -#define MAX(a,b) (((a)>(b))?(a):(b)) -#endif - -/* - * We are looking for a buffer with address "addr". If prev_bp is NULL, then - * address is a bucket index. If prev_bp is not NULL, then it points to the - * page previous to an overflow page that we are trying to find. - * - * CAVEAT: The buffer header accessed via prev_bp's ovfl field may no longer - * be valid. Therefore, you must always verify that its address matches the - * address you are seeking. - */ -extern BUFHEAD * -__get_buf(hashp, addr, prev_bp, newpage) - HTAB *hashp; - __uint32_t addr; - BUFHEAD *prev_bp; - int newpage; /* If prev_bp set, indicates a new overflow page. */ -{ - BUFHEAD *bp; - __uint32_t is_disk_mask; - int is_disk, segment_ndx = 0; - SEGMENT segp = NULL; - - is_disk = 0; - is_disk_mask = 0; - if (prev_bp) { - bp = prev_bp->ovfl; - if (!bp || (bp->addr != addr)) - bp = NULL; - if (!newpage) - is_disk = BUF_DISK; - } else { - /* Grab buffer out of directory */ - segment_ndx = addr & (hashp->SGSIZE - 1); - - /* valid segment ensured by __call_hash() */ - segp = hashp->dir[addr >> hashp->SSHIFT]; -#ifdef DEBUG - assert(segp != NULL); -#endif - bp = PTROF(segp[segment_ndx]); - is_disk_mask = ISDISK(segp[segment_ndx]); - is_disk = is_disk_mask || !hashp->new_file; - } - - if (!bp) { - bp = newbuf(hashp, addr, prev_bp); - if (!bp || - __get_page(hashp, bp->page, addr, !prev_bp, is_disk, 0)) - return (NULL); - if (!prev_bp) - segp[segment_ndx] = - (BUFHEAD *)((ptrdiff_t)bp | (intptr_t)is_disk_mask); - } else { - BUF_REMOVE(bp); - MRU_INSERT(bp); - } - return (bp); -} - -/* - * We need a buffer for this page. Either allocate one, or evict a resident - * one (if we have as many buffers as we're allowed) and put this one in. - * - * If newbuf finds an error (returning NULL), it also sets errno. - */ -static BUFHEAD * -newbuf(hashp, addr, prev_bp) - HTAB *hashp; - __uint32_t addr; - BUFHEAD *prev_bp; -{ - BUFHEAD *bp; /* The buffer we're going to use */ - BUFHEAD *xbp; /* Temp pointer */ - BUFHEAD *next_xbp; - SEGMENT segp; - int segment_ndx; - __uint16_t oaddr, *shortp; - - oaddr = 0; - bp = LRU; - /* - * If LRU buffer is pinned, the buffer pool is too small. We need to - * allocate more buffers. - */ - if (hashp->nbufs || (bp->flags & BUF_PIN)) { - /* Allocate a new one */ - if ((bp = (BUFHEAD *)malloc(sizeof(BUFHEAD))) == NULL) - return (NULL); -#ifdef PURIFY - memset(bp, 0xff, sizeof(BUFHEAD)); -#endif - if ((bp->page = (char *)malloc(hashp->BSIZE)) == NULL) { - free(bp); - return (NULL); - } -#ifdef PURIFY - memset(bp->page, 0xff, hashp->BSIZE); -#endif - if (hashp->nbufs) - hashp->nbufs--; - } else { - /* Kick someone out */ - BUF_REMOVE(bp); - /* - * If this is an overflow page with addr 0, it's already been - * flushed back in an overflow chain and initialized. - */ - if ((bp->addr != 0) || (bp->flags & BUF_BUCKET)) { - /* - * Set oaddr before __put_page so that you get it - * before bytes are swapped. - */ - shortp = (__uint16_t *)bp->page; - if (shortp[0]) - oaddr = shortp[shortp[0] - 1]; - if ((bp->flags & BUF_MOD) && __put_page(hashp, bp->page, - bp->addr, (int)IS_BUCKET(bp->flags), 0)) - return (NULL); - /* - * Update the pointer to this page (i.e. invalidate it). - * - * If this is a new file (i.e. we created it at open - * time), make sure that we mark pages which have been - * written to disk so we retrieve them from disk later, - * rather than allocating new pages. - */ - if (IS_BUCKET(bp->flags)) { - segment_ndx = bp->addr & (hashp->SGSIZE - 1); - segp = hashp->dir[bp->addr >> hashp->SSHIFT]; -#ifdef DEBUG - assert(segp != NULL); -#endif - - if (hashp->new_file && - ((bp->flags & BUF_MOD) || - ISDISK(segp[segment_ndx]))) - segp[segment_ndx] = (BUFHEAD *)BUF_DISK; - else - segp[segment_ndx] = NULL; - } - /* - * Since overflow pages can only be access by means of - * their bucket, free overflow pages associated with - * this bucket. - */ - for (xbp = bp; xbp->ovfl;) { - next_xbp = xbp->ovfl; - xbp->ovfl = 0; - xbp = next_xbp; - - /* Check that ovfl pointer is up date. */ - if (IS_BUCKET(xbp->flags) || - (oaddr != xbp->addr)) - break; - - shortp = (__uint16_t *)xbp->page; - if (shortp[0]) - /* set before __put_page */ - oaddr = shortp[shortp[0] - 1]; - if ((xbp->flags & BUF_MOD) && __put_page(hashp, - xbp->page, xbp->addr, 0, 0)) - return (NULL); - xbp->addr = 0; - xbp->flags = 0; - BUF_REMOVE(xbp); - LRU_INSERT(xbp); - } - } - } - - /* Now assign this buffer */ - bp->addr = addr; -#ifdef DEBUG1 - (void)fprintf(stderr, "NEWBUF1: %d->ovfl was %d is now %d\n", - bp->addr, (bp->ovfl ? bp->ovfl->addr : 0), 0); -#endif - bp->ovfl = NULL; - if (prev_bp) { - /* - * If prev_bp is set, this is an overflow page, hook it in to - * the buffer overflow links. - */ -#ifdef DEBUG1 - (void)fprintf(stderr, "NEWBUF2: %d->ovfl was %d is now %d\n", - prev_bp->addr, (prev_bp->ovfl ? bp->ovfl->addr : 0), - (bp ? bp->addr : 0)); -#endif - prev_bp->ovfl = bp; - bp->flags = 0; - } else - bp->flags = BUF_BUCKET; - MRU_INSERT(bp); - return (bp); -} - -extern void -__buf_init(hashp, nbytes) - HTAB *hashp; - int nbytes; -{ - BUFHEAD *bfp; - int npages; - - bfp = &(hashp->bufhead); - npages = (nbytes + hashp->BSIZE - 1) >> hashp->BSHIFT; - npages = MAX(npages, MIN_BUFFERS); - - hashp->nbufs = npages; - bfp->next = bfp; - bfp->prev = bfp; - /* - * This space is calloc'd so these are already null. - * - * bfp->ovfl = NULL; - * bfp->flags = 0; - * bfp->page = NULL; - * bfp->addr = 0; - */ -} - -extern int -__buf_free(hashp, do_free, to_disk) - HTAB *hashp; - int do_free, to_disk; -{ - BUFHEAD *bp; - - /* Need to make sure that buffer manager has been initialized */ - if (!LRU) - return (0); - for (bp = LRU; bp != &hashp->bufhead;) { - /* Check that the buffer is valid */ - if (bp->addr || IS_BUCKET(bp->flags)) { - if (to_disk && (bp->flags & BUF_MOD) && - __put_page(hashp, bp->page, - bp->addr, IS_BUCKET(bp->flags), 0)) - return (-1); - } - /* Check if we are freeing stuff */ - if (do_free) { - if (bp->page) - free(bp->page); - BUF_REMOVE(bp); - free(bp); - bp = LRU; - } else - bp = bp->prev; - } - return (0); -} - -extern void -__reclaim_buf(hashp, bp) - HTAB *hashp; - BUFHEAD *bp; -{ - bp->ovfl = 0; - bp->addr = 0; - bp->flags = 0; - BUF_REMOVE(bp); - LRU_INSERT(bp); -} diff --git a/lib/search/hash_func.c b/lib/search/hash_func.c deleted file mode 100644 index 30263d0..0000000 --- a/lib/search/hash_func.c +++ /dev/null @@ -1,216 +0,0 @@ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Margo Seltzer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)hash_func.c 8.2 (Berkeley) 2/21/94"; -#endif /* LIBC_SCCS and not lint */ -#include -#include - -#include "db_local.h" -#include "hash.h" -#include "page.h" -#include "extern.h" - -#if 0 -static __uint32_t hash1(const void *, size_t); -static __uint32_t hash2(const void *, size_t); -static __uint32_t hash3(const void *, size_t); -#endif -static __uint32_t hash4(const void *, size_t); - -/* Global default hash function */ -__uint32_t (*__default_hash)(const void *, size_t) = hash4; - -/* - * HASH FUNCTIONS - * - * Assume that we've already split the bucket to which this key hashes, - * calculate that bucket, and check that in fact we did already split it. - * - * This came from ejb's hsearch. - */ - -#define PRIME1 37 -#define PRIME2 1048583 - -#if 0 -static __uint32_t -hash1(keyarg, len) - const void *keyarg; - size_t len; -{ - const u_char *key; - __uint32_t h; - - /* Convert string to integer */ - for (key = keyarg, h = 0; len--;) - h = h * PRIME1 ^ (*key++ - ' '); - h %= PRIME2; - return (h); -} -#endif - -/* - * Phong's linear congruential hash - */ -#define dcharhash(h, c) ((h) = 0x63c63cd9*(h) + 0x9c39c33d + (c)) - -#if 0 -static __uint32_t -hash2(keyarg, len) - const void *keyarg; - size_t len; -{ - const u_char *e, *key; - __uint32_t h; - u_char c; - - key = keyarg; - e = key + len; - for (h = 0; key != e;) { - c = *key++; - if (!c && key > e) - break; - dcharhash(h, c); - } - return (h); -} -#endif - -/* - * This is INCREDIBLY ugly, but fast. We break the string up into 8 byte - * units. On the first time through the loop we get the "leftover bytes" - * (strlen % 8). On every other iteration, we perform 8 HASHC's so we handle - * all 8 bytes. Essentially, this saves us 7 cmp & branch instructions. If - * this routine is heavily used enough, it's worth the ugly coding. - * - * OZ's original sdbm hash - */ -#if 0 -static __uint32_t -hash3(keyarg, len) - const void *keyarg; - size_t len; -{ - const u_char *key; - size_t loop; - __uint32_t h; - -#define HASHC h = *key++ + 65599 * h - - h = 0; - key = keyarg; - if (len > 0) { - loop = (len + 8 - 1) >> 3; - - switch (len & (8 - 1)) { - case 0: - do { - HASHC; - /* FALLTHROUGH */ - case 7: - HASHC; - /* FALLTHROUGH */ - case 6: - HASHC; - /* FALLTHROUGH */ - case 5: - HASHC; - /* FALLTHROUGH */ - case 4: - HASHC; - /* FALLTHROUGH */ - case 3: - HASHC; - /* FALLTHROUGH */ - case 2: - HASHC; - /* FALLTHROUGH */ - case 1: - HASHC; - } while (--loop); - } - } - return (h); -} -#endif - -/* Hash function from Chris Torek. */ -static __uint32_t -hash4(keyarg, len) - const void *keyarg; - size_t len; -{ - const u_char *key; - size_t loop; - __uint32_t h; - -#define HASH4a h = (h << 5) - h + *key++; -#define HASH4b h = (h << 5) + h + *key++; -#define HASH4 HASH4b - - h = 0; - key = keyarg; - if (len > 0) { - loop = (len + 8 - 1) >> 3; - - switch (len & (8 - 1)) { - case 0: - do { - HASH4; - /* FALLTHROUGH */ - case 7: - HASH4; - /* FALLTHROUGH */ - case 6: - HASH4; - /* FALLTHROUGH */ - case 5: - HASH4; - /* FALLTHROUGH */ - case 4: - HASH4; - /* FALLTHROUGH */ - case 3: - HASH4; - /* FALLTHROUGH */ - case 2: - HASH4; - /* FALLTHROUGH */ - case 1: - HASH4; - } while (--loop); - } - } - return (h); -} diff --git a/lib/search/hash_log2.c b/lib/search/hash_log2.c deleted file mode 100644 index 622c228..0000000 --- a/lib/search/hash_log2.c +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * Copyright (c) 1990, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Margo Seltzer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)hash_log2.c 8.2 (Berkeley) 5/31/94"; -#endif /* LIBC_SCCS and not lint */ -#include - -#include - -#include "db_local.h" - -__uint32_t -__log2(num) - __uint32_t num; -{ - __uint32_t i, limit; - - limit = 1; - for (i = 0; limit < num; limit = limit << 1, i++); - return (i); -} diff --git a/lib/search/hash_page.c b/lib/search/hash_page.c deleted file mode 100644 index 9d15b0c..0000000 --- a/lib/search/hash_page.c +++ /dev/null @@ -1,944 +0,0 @@ -/*- - * Copyright (c) 1990, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Margo Seltzer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)hash_page.c 8.7 (Berkeley) 8/16/94"; -#endif /* LIBC_SCCS and not lint */ -#include - -/* - * PACKAGE: hashing - * - * DESCRIPTION: - * Page manipulation for hashing package. - * - * ROUTINES: - * - * External - * __get_page - * __add_ovflpage - * Internal - * overflow_page - * open_temp - */ - -#include - -#include -#include -#include -#include -#include -#include -#include -#ifdef DEBUG -#include -#endif - -#include "db_local.h" -#include "hash.h" -#include "page.h" -#include "extern.h" - -static __uint32_t *fetch_bitmap(HTAB *, int); -static __uint32_t first_free(__uint32_t); -static int open_temp(HTAB *); -static __uint16_t overflow_page(HTAB *); -static void putpair(char *, const DBT *, const DBT *); -static void squeeze_key(__uint16_t *, const DBT *, const DBT *); -static int ugly_split -(HTAB *, __uint32_t, BUFHEAD *, BUFHEAD *, int, int); - -#define PAGE_INIT(P) { \ - ((__uint16_t *)(P))[0] = 0; \ - ((__uint16_t *)(P))[1] = hashp->BSIZE - 3 * sizeof(__uint16_t); \ - ((__uint16_t *)(P))[2] = hashp->BSIZE; \ -} - -/* - * This is called AFTER we have verified that there is room on the page for - * the pair (PAIRFITS has returned true) so we go right ahead and start moving - * stuff on. - */ -static void -putpair(p, key, val) - char *p; - const DBT *key, *val; -{ - __uint16_t *bp, n, off; - - bp = (__uint16_t *)p; - - /* Enter the key first. */ - n = bp[0]; - - off = OFFSET(bp) - key->size; - memmove(p + off, key->data, key->size); - bp[++n] = off; - - /* Now the data. */ - off -= val->size; - memmove(p + off, val->data, val->size); - bp[++n] = off; - - /* Adjust page info. */ - bp[0] = n; - bp[n + 1] = off - ((n + 3) * sizeof(__uint16_t)); - bp[n + 2] = off; -} - -/* - * Returns: - * 0 OK - * -1 error - */ -extern int -__delpair(hashp, bufp, ndx) - HTAB *hashp; - BUFHEAD *bufp; - int ndx; -{ - __uint16_t *bp, newoff; - int n; - __uint16_t pairlen; - - bp = (__uint16_t *)bufp->page; - n = bp[0]; - - if (bp[ndx + 1] < REAL_KEY) - return (__big_delete(hashp, bufp)); - if (ndx != 1) - newoff = bp[ndx - 1]; - else - newoff = hashp->BSIZE; - pairlen = newoff - bp[ndx + 1]; - - if (ndx != (n - 1)) { - /* Hard Case -- need to shuffle keys */ - int i; - char *src = bufp->page + (int)OFFSET(bp); - char *dst = src + (int)pairlen; - memmove(dst, src, bp[ndx + 1] - OFFSET(bp)); - - /* Now adjust the pointers */ - for (i = ndx + 2; i <= n; i += 2) { - if (bp[i + 1] == OVFLPAGE) { - bp[i - 2] = bp[i]; - bp[i - 1] = bp[i + 1]; - } else { - bp[i - 2] = bp[i] + pairlen; - bp[i - 1] = bp[i + 1] + pairlen; - } - } - } - /* Finally adjust the page data */ - bp[n] = OFFSET(bp) + pairlen; - bp[n - 1] = bp[n + 1] + pairlen + 2 * sizeof(__uint16_t); - bp[0] = n - 2; - hashp->NKEYS--; - - bufp->flags |= BUF_MOD; - return (0); -} -/* - * Returns: - * 0 ==> OK - * -1 ==> Error - */ -extern int -__split_page(hashp, obucket, nbucket) - HTAB *hashp; - __uint32_t obucket, nbucket; -{ - BUFHEAD *new_bufp, *old_bufp; - __uint16_t *ino; - char *np; - DBT key, val; - int n, ndx, retval; - __uint16_t copyto, diff, off, moved; - char *op; - - copyto = (__uint16_t)hashp->BSIZE; - off = (__uint16_t)hashp->BSIZE; - old_bufp = __get_buf(hashp, obucket, NULL, 0); - if (old_bufp == NULL) - return (-1); - new_bufp = __get_buf(hashp, nbucket, NULL, 0); - if (new_bufp == NULL) - return (-1); - - old_bufp->flags |= (BUF_MOD | BUF_PIN); - new_bufp->flags |= (BUF_MOD | BUF_PIN); - - ino = (__uint16_t *)(op = old_bufp->page); - np = new_bufp->page; - - moved = 0; - - for (n = 1, ndx = 1; n < ino[0]; n += 2) { - if (ino[n + 1] < REAL_KEY) { - retval = ugly_split(hashp, obucket, old_bufp, new_bufp, - (int)copyto, (int)moved); - old_bufp->flags &= ~BUF_PIN; - new_bufp->flags &= ~BUF_PIN; - return (retval); - - } - key.data = (u_char *)op + ino[n]; - key.size = off - ino[n]; - - if (__call_hash(hashp, key.data, key.size) == obucket) { - /* Don't switch page */ - diff = copyto - off; - if (diff) { - copyto = ino[n + 1] + diff; - memmove(op + copyto, op + ino[n + 1], - off - ino[n + 1]); - ino[ndx] = copyto + ino[n] - ino[n + 1]; - ino[ndx + 1] = copyto; - } else - copyto = ino[n + 1]; - ndx += 2; - } else { - /* Switch page */ - val.data = (u_char *)op + ino[n + 1]; - val.size = ino[n] - ino[n + 1]; - putpair(np, &key, &val); - moved += 2; - } - - off = ino[n + 1]; - } - - /* Now clean up the page */ - ino[0] -= moved; - FREESPACE(ino) = copyto - sizeof(__uint16_t) * (ino[0] + 3); - OFFSET(ino) = copyto; - -#ifdef DEBUG3 - (void)fprintf(stderr, "split %d/%d\n", - ((__uint16_t *)np)[0] / 2, - ((__uint16_t *)op)[0] / 2); -#endif - /* unpin both pages */ - old_bufp->flags &= ~BUF_PIN; - new_bufp->flags &= ~BUF_PIN; - return (0); -} - -/* - * Called when we encounter an overflow or big key/data page during split - * handling. This is special cased since we have to begin checking whether - * the key/data pairs fit on their respective pages and because we may need - * overflow pages for both the old and new pages. - * - * The first page might be a page with regular key/data pairs in which case - * we have a regular overflow condition and just need to go on to the next - * page or it might be a big key/data pair in which case we need to fix the - * big key/data pair. - * - * Returns: - * 0 ==> success - * -1 ==> failure - */ -static int -ugly_split(hashp, obucket, old_bufp, new_bufp, copyto, moved) - HTAB *hashp; - __uint32_t obucket; /* Same as __split_page. */ - BUFHEAD *old_bufp, *new_bufp; - int copyto; /* First byte on page which contains key/data values. */ - int moved; /* Number of pairs moved to new page. */ -{ - BUFHEAD *bufp; /* Buffer header for ino */ - __uint16_t *ino; /* Page keys come off of */ - __uint16_t *np; /* New page */ - __uint16_t *op; /* Page keys go on to if they aren't moving */ - - BUFHEAD *last_bfp; /* Last buf header OVFL needing to be freed */ - DBT key, val; - SPLIT_RETURN ret; - __uint16_t n, off, ov_addr, scopyto; - char *cino; /* Character value of ino */ - - bufp = old_bufp; - ino = (__uint16_t *)old_bufp->page; - np = (__uint16_t *)new_bufp->page; - op = (__uint16_t *)old_bufp->page; - last_bfp = NULL; - scopyto = (__uint16_t)copyto; /* ANSI */ - - n = ino[0] - 1; - while (n < ino[0]) { - if (ino[2] < REAL_KEY && ino[2] != OVFLPAGE) { - if (__big_split(hashp, old_bufp, - new_bufp, bufp, bufp->addr, obucket, &ret)) - return (-1); - old_bufp = ret.oldp; - if (!old_bufp) - return (-1); - op = (__uint16_t *)old_bufp->page; - new_bufp = ret.newp; - if (!new_bufp) - return (-1); - np = (__uint16_t *)new_bufp->page; - bufp = ret.nextp; - if (!bufp) - return (0); - cino = (char *)bufp->page; - ino = (__uint16_t *)cino; - last_bfp = ret.nextp; - } else if (ino[n + 1] == OVFLPAGE) { - ov_addr = ino[n]; - /* - * Fix up the old page -- the extra 2 are the fields - * which contained the overflow information. - */ - ino[0] -= (moved + 2); - FREESPACE(ino) = - scopyto - sizeof(__uint16_t) * (ino[0] + 3); - OFFSET(ino) = scopyto; - - bufp = __get_buf(hashp, ov_addr, bufp, 0); - if (!bufp) - return (-1); - - ino = (__uint16_t *)bufp->page; - n = 1; - scopyto = hashp->BSIZE; - moved = 0; - - if (last_bfp) - __free_ovflpage(hashp, last_bfp); - last_bfp = bufp; - } - /* Move regular sized pairs of there are any */ - off = hashp->BSIZE; - for (n = 1; (n < ino[0]) && (ino[n + 1] >= REAL_KEY); n += 2) { - cino = (char *)ino; - key.data = (u_char *)cino + ino[n]; - key.size = off - ino[n]; - val.data = (u_char *)cino + ino[n + 1]; - val.size = ino[n] - ino[n + 1]; - off = ino[n + 1]; - - if (__call_hash(hashp, key.data, key.size) == obucket) { - /* Keep on old page */ - if (PAIRFITS(op, (&key), (&val))) - putpair((char *)op, &key, &val); - else { - old_bufp = - __add_ovflpage(hashp, old_bufp); - if (!old_bufp) - return (-1); - op = (__uint16_t *)old_bufp->page; - putpair((char *)op, &key, &val); - } - old_bufp->flags |= BUF_MOD; - } else { - /* Move to new page */ - if (PAIRFITS(np, (&key), (&val))) - putpair((char *)np, &key, &val); - else { - new_bufp = - __add_ovflpage(hashp, new_bufp); - if (!new_bufp) - return (-1); - np = (__uint16_t *)new_bufp->page; - putpair((char *)np, &key, &val); - } - new_bufp->flags |= BUF_MOD; - } - } - } - if (last_bfp) - __free_ovflpage(hashp, last_bfp); - return (0); -} - -/* - * Add the given pair to the page - * - * Returns: - * 0 ==> OK - * 1 ==> failure - */ -extern int -__addel(hashp, bufp, key, val) - HTAB *hashp; - BUFHEAD *bufp; - const DBT *key, *val; -{ - __uint16_t *bp, *sop; - int do_expand; - - bp = (__uint16_t *)bufp->page; - do_expand = 0; - while (bp[0] && (bp[2] < REAL_KEY || bp[bp[0]] < REAL_KEY)) - /* Exception case */ - if (bp[2] == FULL_KEY_DATA && bp[0] == 2) - /* This is the last page of a big key/data pair - and we need to add another page */ - break; - else if (bp[2] < REAL_KEY && bp[bp[0]] != OVFLPAGE) { - bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); - if (!bufp) - return (-1); - bp = (__uint16_t *)bufp->page; - } else - /* Try to squeeze key on this page */ - if (FREESPACE(bp) > PAIRSIZE(key, val)) { - squeeze_key(bp, key, val); - return (0); - } else { - bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); - if (!bufp) - return (-1); - bp = (__uint16_t *)bufp->page; - } - - if (PAIRFITS(bp, key, val)) - putpair(bufp->page, key, val); - else { - do_expand = 1; - bufp = __add_ovflpage(hashp, bufp); - if (!bufp) - return (-1); - sop = (__uint16_t *)bufp->page; - - if (PAIRFITS(sop, key, val)) - putpair((char *)sop, key, val); - else - if (__big_insert(hashp, bufp, key, val)) - return (-1); - } - bufp->flags |= BUF_MOD; - /* - * If the average number of keys per bucket exceeds the fill factor, - * expand the table. - */ - hashp->NKEYS++; - if (do_expand || - (hashp->NKEYS / (hashp->MAX_BUCKET + 1) > hashp->FFACTOR)) - return (__expand_table(hashp)); - return (0); -} - -/* - * - * Returns: - * pointer on success - * NULL on error - */ -extern BUFHEAD * -__add_ovflpage(hashp, bufp) - HTAB *hashp; - BUFHEAD *bufp; -{ - __uint16_t *sp; - __uint16_t ndx, ovfl_num; -#ifdef DEBUG1 - int tmp1, tmp2; -#endif - sp = (__uint16_t *)bufp->page; - - /* Check if we are dynamically determining the fill factor */ - if (hashp->FFACTOR == DEF_FFACTOR) { - hashp->FFACTOR = sp[0] >> 1; - if (hashp->FFACTOR < MIN_FFACTOR) - hashp->FFACTOR = MIN_FFACTOR; - } - bufp->flags |= BUF_MOD; - ovfl_num = overflow_page(hashp); -#ifdef DEBUG1 - tmp1 = bufp->addr; - tmp2 = bufp->ovfl ? bufp->ovfl->addr : 0; -#endif - if (!ovfl_num || !(bufp->ovfl = __get_buf(hashp, ovfl_num, bufp, 1))) - return (NULL); - bufp->ovfl->flags |= BUF_MOD; -#ifdef DEBUG1 - (void)fprintf(stderr, "ADDOVFLPAGE: %d->ovfl was %d is now %d\n", - tmp1, tmp2, bufp->ovfl->addr); -#endif - ndx = sp[0]; - /* - * Since a pair is allocated on a page only if there's room to add - * an overflow page, we know that the OVFL information will fit on - * the page. - */ - sp[ndx + 4] = OFFSET(sp); - sp[ndx + 3] = FREESPACE(sp) - OVFLSIZE; - sp[ndx + 1] = ovfl_num; - sp[ndx + 2] = OVFLPAGE; - sp[0] = ndx + 2; -#ifdef HASH_STATISTICS - hash_overflows++; -#endif - return (bufp->ovfl); -} - -/* - * Returns: - * 0 indicates SUCCESS - * -1 indicates FAILURE - */ -extern int -__get_page(hashp, p, bucket, is_bucket, is_disk, is_bitmap) - HTAB *hashp; - char *p; - __uint32_t bucket; - int is_bucket, is_disk, is_bitmap; -{ - int fd, page, size; - int rsize; - __uint16_t *bp; - - fd = hashp->fp; - size = hashp->BSIZE; - - if ((fd == -1) || !is_disk) { - PAGE_INIT(p); - return (0); - } - if (is_bucket) - page = BUCKET_TO_PAGE(bucket); - else - page = OADDR_TO_PAGE(bucket); - if ((lseek(fd, (off_t)page << hashp->BSHIFT, SEEK_SET) == -1) || - ((rsize = read(fd, p, size)) == -1)) - return (-1); - bp = (__uint16_t *)p; - if (!rsize) - bp[0] = 0; /* We hit the EOF, so initialize a new page */ - else - if (rsize != size) { - errno = EFTYPE; - return (-1); - } - if (!is_bitmap && !bp[0]) { - PAGE_INIT(p); - } else - if (hashp->LORDER != DB_BYTE_ORDER) { - int i, max; - - if (is_bitmap) { - max = hashp->BSIZE >> 2; /* divide by 4 */ - for (i = 0; i < max; i++) - M_32_SWAP(((int *)p)[i]); - } else { - M_16_SWAP(bp[0]); - max = bp[0] + 2; - for (i = 1; i <= max; i++) - M_16_SWAP(bp[i]); - } - } - return (0); -} - -/* - * Write page p to disk - * - * Returns: - * 0 ==> OK - * -1 ==>failure - */ -extern int -__put_page(hashp, p, bucket, is_bucket, is_bitmap) - HTAB *hashp; - char *p; - __uint32_t bucket; - int is_bucket, is_bitmap; -{ - int fd, page, size; - int wsize; - - size = hashp->BSIZE; - if ((hashp->fp == -1) && open_temp(hashp)) - return (-1); - fd = hashp->fp; - - if (hashp->LORDER != DB_BYTE_ORDER) { - int i; - int max; - - if (is_bitmap) { - max = hashp->BSIZE >> 2; /* divide by 4 */ - for (i = 0; i < max; i++) - M_32_SWAP(((int *)p)[i]); - } else { - max = ((__uint16_t *)p)[0] + 2; - for (i = 0; i <= max; i++) - M_16_SWAP(((__uint16_t *)p)[i]); - } - } - if (is_bucket) - page = BUCKET_TO_PAGE(bucket); - else - page = OADDR_TO_PAGE(bucket); - if ((lseek(fd, (off_t)page << hashp->BSHIFT, SEEK_SET) == -1) || - ((wsize = write(fd, p, size)) == -1)) - /* Errno is set */ - return (-1); - if (wsize != size) { - errno = EFTYPE; - return (-1); - } - return (0); -} - -#define BYTE_MASK ((1 << INT_BYTE_SHIFT) -1) -/* - * Initialize a new bitmap page. Bitmap pages are left in memory - * once they are read in. - */ -extern int -__ibitmap(hashp, pnum, nbits, ndx) - HTAB *hashp; - int pnum, nbits, ndx; -{ - __uint32_t *ip; - int clearbytes, clearints; - - if ((ip = (__uint32_t *)malloc(hashp->BSIZE)) == NULL) - return (1); - hashp->nmaps++; - clearints = ((nbits - 1) >> INT_BYTE_SHIFT) + 1; - clearbytes = clearints << INT_TO_BYTE; - (void)memset((char *)ip, 0, clearbytes); - (void)memset(((char *)ip) + clearbytes, 0xFF, - hashp->BSIZE - clearbytes); - ip[clearints - 1] = ALL_SET << (nbits & BYTE_MASK); - SETBIT(ip, 0); - hashp->BITMAPS[ndx] = (__uint16_t)pnum; - hashp->mapp[ndx] = ip; - return (0); -} - -static __uint32_t -first_free(map) - __uint32_t map; -{ - __uint32_t i, mask; - - mask = 0x1; - for (i = 0; i < BITS_PER_MAP; i++) { - if (!(mask & map)) - return (i); - mask = mask << 1; - } - return (i); -} - -static __uint16_t -overflow_page(hashp) - HTAB *hashp; -{ - __uint32_t *freep = NULL; - int max_free, offset, splitnum; - __uint16_t addr; - int bit, first_page, free_bit, free_page, i, in_use_bits, j; -#ifdef DEBUG2 - int tmp1, tmp2; -#endif - splitnum = hashp->OVFL_POINT; - max_free = hashp->SPARES[splitnum]; - - free_page = (max_free - 1) >> (hashp->BSHIFT + BYTE_SHIFT); - free_bit = (max_free - 1) & ((hashp->BSIZE << BYTE_SHIFT) - 1); - - /* Look through all the free maps to find the first free block */ - first_page = hashp->LAST_FREED >>(hashp->BSHIFT + BYTE_SHIFT); - for ( i = first_page; i <= free_page; i++ ) { - if (!(freep = (__uint32_t *)hashp->mapp[i]) && - !(freep = fetch_bitmap(hashp, i))) - return (0); - if (i == free_page) - in_use_bits = free_bit; - else - in_use_bits = (hashp->BSIZE << BYTE_SHIFT) - 1; - - if (i == first_page) { - bit = hashp->LAST_FREED & - ((hashp->BSIZE << BYTE_SHIFT) - 1); - j = bit / BITS_PER_MAP; - bit = bit & ~(BITS_PER_MAP - 1); - } else { - bit = 0; - j = 0; - } - for (; bit <= in_use_bits; j++, bit += BITS_PER_MAP) - if (freep[j] != ALL_SET) - goto found; - } - - /* No Free Page Found */ - hashp->LAST_FREED = hashp->SPARES[splitnum]; - hashp->SPARES[splitnum]++; - offset = hashp->SPARES[splitnum] - - (splitnum ? hashp->SPARES[splitnum - 1] : 0); - -#define OVMSG "HASH: Out of overflow pages. Increase page size\n" - if (offset > SPLITMASK) { - if (++splitnum >= NCACHED) { - (void)write(STDERR_FILENO, OVMSG, sizeof(OVMSG) - 1); - return (0); - } - hashp->OVFL_POINT = splitnum; - hashp->SPARES[splitnum] = hashp->SPARES[splitnum-1]; - hashp->SPARES[splitnum-1]--; - offset = 1; - } - - /* Check if we need to allocate a new bitmap page */ - if (free_bit == (hashp->BSIZE << BYTE_SHIFT) - 1) { - free_page++; - if (free_page >= NCACHED) { - (void)write(STDERR_FILENO, OVMSG, sizeof(OVMSG) - 1); - return (0); - } - /* - * This is tricky. The 1 indicates that you want the new page - * allocated with 1 clear bit. Actually, you are going to - * allocate 2 pages from this map. The first is going to be - * the map page, the second is the overflow page we were - * looking for. The init_bitmap routine automatically, sets - * the first bit of itself to indicate that the bitmap itself - * is in use. We would explicitly set the second bit, but - * don't have to if we tell init_bitmap not to leave it clear - * in the first place. - */ - if (__ibitmap(hashp, - (int)OADDR_OF(splitnum, offset), 1, free_page)) - return (0); - hashp->SPARES[splitnum]++; -#ifdef DEBUG2 - free_bit = 2; -#endif - offset++; - if (offset > SPLITMASK) { - if (++splitnum >= NCACHED) { - (void)write(STDERR_FILENO, OVMSG, - sizeof(OVMSG) - 1); - return (0); - } - hashp->OVFL_POINT = splitnum; - hashp->SPARES[splitnum] = hashp->SPARES[splitnum-1]; - hashp->SPARES[splitnum-1]--; - offset = 0; - } - } else { - /* - * Free_bit addresses the last used bit. Bump it to address - * the first available bit. - */ - free_bit++; - SETBIT(freep, free_bit); - } - - /* Calculate address of the new overflow page */ - addr = OADDR_OF(splitnum, offset); -#ifdef DEBUG2 - (void)fprintf(stderr, "OVERFLOW_PAGE: ADDR: %d BIT: %d PAGE %d\n", - addr, free_bit, free_page); -#endif - return (addr); - -found: - bit = bit + first_free(freep[j]); - SETBIT(freep, bit); -#ifdef DEBUG2 - tmp1 = bit; - tmp2 = i; -#endif - /* - * Bits are addressed starting with 0, but overflow pages are addressed - * beginning at 1. Bit is a bit addressnumber, so we need to increment - * it to convert it to a page number. - */ - bit = 1 + bit + (i * (hashp->BSIZE << BYTE_SHIFT)); - if (bit >= hashp->LAST_FREED) - hashp->LAST_FREED = bit - 1; - - /* Calculate the split number for this page */ - for (i = 0; (i < splitnum) && (bit > hashp->SPARES[i]); i++); - offset = (i ? bit - hashp->SPARES[i - 1] : bit); - if (offset >= SPLITMASK) - return (0); /* Out of overflow pages */ - addr = OADDR_OF(i, offset); -#ifdef DEBUG2 - (void)fprintf(stderr, "OVERFLOW_PAGE: ADDR: %d BIT: %d PAGE %d\n", - addr, tmp1, tmp2); -#endif - - /* Allocate and return the overflow page */ - return (addr); -} - -/* - * Mark this overflow page as free. - */ -extern void -__free_ovflpage(hashp, obufp) - HTAB *hashp; - BUFHEAD *obufp; -{ - __uint16_t addr; - __uint32_t *freep; - int bit_address, free_page, free_bit; - __uint16_t ndx; - - addr = obufp->addr; -#ifdef DEBUG1 - (void)fprintf(stderr, "Freeing %d\n", addr); -#endif - ndx = (((__uint16_t)addr) >> SPLITSHIFT); - bit_address = - (ndx ? hashp->SPARES[ndx - 1] : 0) + (addr & SPLITMASK) - 1; - if (bit_address < hashp->LAST_FREED) - hashp->LAST_FREED = bit_address; - free_page = (bit_address >> (hashp->BSHIFT + BYTE_SHIFT)); - free_bit = bit_address & ((hashp->BSIZE << BYTE_SHIFT) - 1); - - if (!(freep = hashp->mapp[free_page])) - freep = fetch_bitmap(hashp, free_page); -#ifdef DEBUG - /* - * This had better never happen. It means we tried to read a bitmap - * that has already had overflow pages allocated off it, and we - * failed to read it from the file. - */ - if (!freep) - assert(0); -#endif - CLRBIT(freep, free_bit); -#ifdef DEBUG2 - (void)fprintf(stderr, "FREE_OVFLPAGE: ADDR: %d BIT: %d PAGE %d\n", - obufp->addr, free_bit, free_page); -#endif - __reclaim_buf(hashp, obufp); -} - -/* - * Returns: - * 0 success - * -1 failure - */ -static int -open_temp(hashp) - HTAB *hashp; -{ - sigset_t set, oset; - static char namestr[] = "_hashXXXXXX"; - - /* Block signals; make sure file goes away at process exit. */ - (void)sigfillset(&set); - (void)sigprocmask(SIG_BLOCK, &set, &oset); - if ((hashp->fp = mkstemp(namestr)) != -1) { - (void)unlink(namestr); -#ifdef HAVE_FCNTL - (void)fcntl(hashp->fp, F_SETFD, 1); -#endif - } - (void)sigprocmask(SIG_SETMASK, &oset, (sigset_t *)NULL); - return (hashp->fp != -1 ? 0 : -1); -} - -/* - * We have to know that the key will fit, but the last entry on the page is - * an overflow pair, so we need to shift things. - */ -static void -squeeze_key(sp, key, val) - __uint16_t *sp; - const DBT *key, *val; -{ - char *p; - __uint16_t free_space, n, off, pageno; - - p = (char *)sp; - n = sp[0]; - free_space = FREESPACE(sp); - off = OFFSET(sp); - - pageno = sp[n - 1]; - off -= key->size; - sp[n - 1] = off; - memmove(p + off, key->data, key->size); - off -= val->size; - sp[n] = off; - memmove(p + off, val->data, val->size); - sp[0] = n + 2; - sp[n + 1] = pageno; - sp[n + 2] = OVFLPAGE; - FREESPACE(sp) = free_space - PAIRSIZE(key, val); - OFFSET(sp) = off; -} - -static __uint32_t * -fetch_bitmap(hashp, ndx) - HTAB *hashp; - int ndx; -{ - if (ndx >= hashp->nmaps) - return (NULL); - if ((hashp->mapp[ndx] = (__uint32_t *)malloc(hashp->BSIZE)) == NULL) - return (NULL); - if (__get_page(hashp, - (char *)hashp->mapp[ndx], hashp->BITMAPS[ndx], 0, 1, 1)) { - free(hashp->mapp[ndx]); - return (NULL); - } - return (hashp->mapp[ndx]); -} - -#ifdef DEBUG4 -int -print_chain(addr) - int addr; -{ - BUFHEAD *bufp; - short *bp, oaddr; - - (void)fprintf(stderr, "%d ", addr); - bufp = __get_buf(hashp, addr, NULL, 0); - bp = (short *)bufp->page; - while (bp[0] && ((bp[bp[0]] == OVFLPAGE) || - ((bp[0] > 2) && bp[2] < REAL_KEY))) { - oaddr = bp[bp[0] - 1]; - (void)fprintf(stderr, "%d ", (int)oaddr); - bufp = __get_buf(hashp, (int)oaddr, bufp, 0); - bp = (short *)bufp->page; - } - (void)fprintf(stderr, "\n"); -} -#endif diff --git a/lib/search/hcreate.3 b/lib/search/hcreate.3 deleted file mode 100644 index 1619c98..0000000 --- a/lib/search/hcreate.3 +++ /dev/null @@ -1,206 +0,0 @@ -.\" $FreeBSD: src/lib/libc/stdlib/hcreate.3,v 1.2 2001/07/09 15:54:36 ru Exp $ -.\" -.Dd May 8, 2001 -.Os -.Dt HCREATE 3 -.Sh NAME -.Nm hcreate , hdestroy , hsearch -.Nd manage hash search table -.Sh LIBRARY -.Lb libc -.Sh SYNOPSIS -.In search.h -.Ft int -.Fn hcreate "size_t nel" -.Ft void -.Fn hdestroy void -.Ft ENTRY * -.Fn hsearch "ENTRY item" "ACTION action" -.Sh DESCRIPTION -The -.Fn hcreate , -.Fn hdestroy , -and -.Fn hsearch -functions manage hash search tables. -.Pp -The -.Fn hcreate -function allocates sufficient space for the table, and the application should -ensure it is called before -.Fn hsearch -is used. -The -.Fa nel -argument is an estimate of the maximum -number of entries that the table should contain. -This number may be adjusted upward by the -algorithm in order to obtain certain mathematically favorable circumstances. -.Pp -The -.Fn hdestroy -function disposes of the search table, and may be followed by another call to -.Fn hcreate . -After the call to -.Fn hdestroy , -the data can no longer be considered accessible. -.Pp -The -.Fn hsearch -function is a hash-table search routine. -It returns a pointer into a hash table -indicating the location at which an entry can be found. -The -.Fa item -argument is a structure of type -.Vt ENTRY -(defined in the -.Aq Pa search.h -header) containing two pointers: -.Fa item.key -points to the comparison key (a -.Vt "char *" ) , -and -.Fa item.data -(a -.Vt "void *" ) -points to any other data to be associated with -that key. -The comparison function used by -.Fn hsearch -is -.Xr strcmp 3 . -The -.Fa action -argument is a -member of an enumeration type -.Vt ACTION -indicating the disposition of the entry if it cannot be -found in the table. -.Dv ENTER -indicates that the -.Fa item -should be inserted in the table at an -appropriate point. -.Dv FIND -indicates that no entry should be made. -Unsuccessful resolution is -indicated by the return of a -.Dv NULL -pointer. -.Sh RETURN VALUES -The -.Fn hcreate -function returns 0 if it cannot allocate sufficient space for the table; -otherwise, it returns non-zero. -.Pp -The -.Fn hdestroy -function does not return a value. -.Pp -The -.Fn hsearch -function returns a -.Dv NULL -pointer if either the -.Fa action -is -.Dv FIND -and the -.Fa item -could not be found or the -.Fa action -is -.Dv ENTER -and the table is full. -.Sh ERRORS -The -.Fn hcreate -and -.Fn hsearch -functions may fail if: -.Bl -tag -width Er -.It Bq Er ENOMEM -Insufficient storage space is available. -.El -.Sh EXAMPLES -The following example reads in strings followed by two numbers -and stores them in a hash table, discarding duplicates. -It then reads in strings and finds the matching entry in the hash -table and prints it out. -.Bd -literal -#include -#include -#include - -struct info { /* This is the info stored in the table */ - int age, room; /* other than the key. */ -}; - -#define NUM_EMPL 5000 /* # of elements in search table. */ - -int -main(void) -{ - char string_space[NUM_EMPL*20]; /* Space to store strings. */ - struct info info_space[NUM_EMPL]; /* Space to store employee info. */ - char *str_ptr = string_space; /* Next space in string_space. */ - struct info *info_ptr = info_space; /* Next space in info_space. */ - ENTRY item; - ENTRY *found_item; /* Name to look for in table. */ - char name_to_find[30]; - int i = 0; - - /* Create table; no error checking is performed. */ - (void) hcreate(NUM_EMPL); - - while (scanf("%s%d%d", str_ptr, &info_ptr->age, - &info_ptr->room) != EOF && i++ < NUM_EMPL) { - /* Put information in structure, and structure in item. */ - item.key = str_ptr; - item.data = info_ptr; - str_ptr += strlen(str_ptr) + 1; - info_ptr++; - /* Put item into table. */ - (void) hsearch(item, ENTER); - } - - /* Access table. */ - item.key = name_to_find; - while (scanf("%s", item.key) != EOF) { - if ((found_item = hsearch(item, FIND)) != NULL) { - /* If item is in the table. */ - (void)printf("found %s, age = %d, room = %d\en", - found_item->key, - ((struct info *)found_item->data)->age, - ((struct info *)found_item->data)->room); - } else - (void)printf("no such employee %s\en", name_to_find); - } - return 0; -} -.Ed -.Sh SEE ALSO -.Xr bsearch 3 , -.Xr lsearch 3 , -.Xr malloc 3 , -.Xr strcmp 3 , -.Xr tsearch 3 -.Sh STANDARDS -The -.Fn hcreate , -.Fn hdestroy , -and -.Fn hsearch -functions conform to -.St -xpg4.2 . -.Sh HISTORY -The -.Fn hcreate , -.Fn hdestroy , -and -.Fn hsearch -functions first appeared in -.At V . -.Sh BUGS -The interface permits the use of only one hash table at a time. diff --git a/lib/search/hcreate.c b/lib/search/hcreate.c deleted file mode 100644 index 7664353..0000000 --- a/lib/search/hcreate.c +++ /dev/null @@ -1,80 +0,0 @@ -/* $NetBSD: hcreate.c,v 1.2 2001/02/19 21:26:04 ross Exp $ */ - -/* - * Copyright (c) 2001 Christopher G. Demetriou - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * <> - */ - -/* - * hcreate() / hsearch() / hdestroy() - * - * SysV/XPG4 hash table functions. - * - * Implementation done based on NetBSD manual page and Solaris manual page, - * plus my own personal experience about how they're supposed to work. - * - * I tried to look at Knuth (as cited by the Solaris manual page), but - * nobody had a copy in the office, so... - */ - -#include -#if 0 -#if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: hcreate.c,v 1.2 2001/02/19 21:26:04 ross Exp $"); -#endif /* LIBC_SCCS and not lint */ -#endif - -#include -#include -#include -#include -#include - -static struct hsearch_data htab; - -int -hcreate (size_t nel) -{ - return hcreate_r (nel, &htab); -} - -void -hdestroy (void) -{ - hdestroy_r (&htab); -} - -ENTRY * -hsearch (ENTRY item, - ACTION action) -{ - ENTRY *retval; - - hsearch_r (item, action, &retval, &htab); - - return retval; -} diff --git a/lib/search/hcreate_r.c b/lib/search/hcreate_r.c deleted file mode 100644 index 400a57f..0000000 --- a/lib/search/hcreate_r.c +++ /dev/null @@ -1,194 +0,0 @@ -/* $NetBSD: hcreate.c,v 1.2 2001/02/19 21:26:04 ross Exp $ */ - -/* - * Copyright (c) 2001 Christopher G. Demetriou - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * <> - */ - -/* - * hcreate() / hsearch() / hdestroy() - * - * SysV/XPG4 hash table functions. - * - * Implementation done based on NetBSD manual page and Solaris manual page, - * plus my own personal experience about how they're supposed to work. - * - * I tried to look at Knuth (as cited by the Solaris manual page), but - * nobody had a copy in the office, so... - */ - -#include -#if 0 -#if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: hcreate.c,v 1.2 2001/02/19 21:26:04 ross Exp $"); -#endif /* LIBC_SCCS and not lint */ -#endif - -#include -#include -#include -#include -#include -#include - -/* - * DO NOT MAKE THIS STRUCTURE LARGER THAN 32 BYTES (4 ptrs on 64-bit - * ptr machine) without adjusting MAX_BUCKETS_LG2 below. - */ -struct internal_entry { - SLIST_ENTRY(internal_entry) link; - ENTRY ent; -}; -SLIST_HEAD(internal_head, internal_entry); - -#define MIN_BUCKETS_LG2 4 -#define MIN_BUCKETS (1 << MIN_BUCKETS_LG2) - -/* - * max * sizeof internal_entry must fit into size_t. - * assumes internal_entry is <= 32 (2^5) bytes. - */ -#ifdef __MSP430X_LARGE__ -/* 20-bit size_t. */ -#define MAX_BUCKETS_LG2 (20 - 1 - 5) -#else -#define MAX_BUCKETS_LG2 (sizeof (size_t) * 8 - 1 - 5) -#endif -#define MAX_BUCKETS ((size_t)1 << MAX_BUCKETS_LG2) - -/* Default hash function, from db/hash/hash_func.c */ -extern __uint32_t (*__default_hash)(const void *, size_t); - -int -hcreate_r(size_t nel, struct hsearch_data *htab) -{ - size_t idx; - unsigned int p2; - - /* Make sure this this isn't called when a table already exists. */ - if (htab->htable != NULL) { - errno = EINVAL; - return 0; - } - - /* If nel is too small, make it min sized. */ - if (nel < MIN_BUCKETS) - nel = MIN_BUCKETS; - - /* If it's too large, cap it. */ - if (nel > MAX_BUCKETS) - nel = MAX_BUCKETS; - - /* If it's is not a power of two in size, round up. */ - if ((nel & (nel - 1)) != 0) { - for (p2 = 0; nel != 0; p2++) - nel >>= 1; - nel = 1 << p2; - } - - /* Allocate the table. */ - htab->htablesize = nel; - htab->htable = malloc(htab->htablesize * sizeof htab->htable[0]); - if (htab->htable == NULL) { - errno = ENOMEM; - return 0; - } - - /* Initialize it. */ - for (idx = 0; idx < htab->htablesize; idx++) - SLIST_INIT(&(htab->htable[idx])); - - return 1; -} - -void -hdestroy_r(struct hsearch_data *htab) -{ -#if 0 - struct internal_entry *ie; - size_t idx; -#endif - if (htab->htable == NULL) - return; - -#if 0 - for (idx = 0; idx < htab->htablesize; idx++) { - while (!SLIST_EMPTY(&(htab->htable[idx]))) { - ie = SLIST_FIRST(&(htab->htable[idx])); - SLIST_REMOVE_HEAD(&(htab->htable[idx]), link); - free(ie->ent.key); - free(ie); - } - } -#endif - free(htab->htable); - htab->htable = NULL; -} - -int -hsearch_r(ENTRY item, ACTION action, ENTRY **retval, struct hsearch_data *htab) -{ - struct internal_head *head; - struct internal_entry *ie; - __uint32_t hashval; - size_t len; - - len = strlen(item.key); - hashval = (*__default_hash)(item.key, len); - - head = &(htab->htable[hashval & (htab->htablesize - 1)]); - ie = SLIST_FIRST(head); - while (ie != NULL) { - if (strcmp(ie->ent.key, item.key) == 0) - break; - ie = SLIST_NEXT(ie, link); - } - - if (ie != NULL) - { - *retval = &ie->ent; - return 1; - } - else if (action == FIND) - { - *retval = NULL; - return 0; - } - - ie = malloc(sizeof *ie); - if (ie == NULL) - { - *retval = NULL; - return 0; - } - ie->ent.key = item.key; - ie->ent.data = item.data; - - SLIST_INSERT_HEAD(head, ie, link); - *retval = &ie->ent; - return 1; -} diff --git a/lib/search/ndbm.c b/lib/search/ndbm.c deleted file mode 100644 index 7f32960..0000000 --- a/lib/search/ndbm.c +++ /dev/null @@ -1,217 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Margo Seltzer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)ndbm.c 8.4 (Berkeley) 7/21/94"; -#endif /* LIBC_SCCS and not lint */ -#include -__FBSDID("$FreeBSD$ : src/lib/libc/db/hash/ndbm.c Nov 20 19:49:47 2017 UTC by pfg - SVN Revision 326025"); - -/* - * This package provides a dbm compatible interface to the new hashing - * package described in db(3). - */ - -#include - -#include -#include -#include - -#include -#include "hash.h" - -#define __DBINTERFACE_PRIVATE /* activate prototypes from db_local.h */ -#include "db_local.h" - -/* - * Returns: - * *DBM on success - * NULL on failure - */ -extern DBM * -dbm_open(const char *file, int flags, mode_t mode) -{ - HASHINFO info; - char path[MAXPATHLEN]; - - info.bsize = 4096; - info.ffactor = 40; - info.nelem = 1; - info.cachesize = 0; - info.hash = NULL; - info.lorder = 0; - - if( strlen(file) >= sizeof(path) - strlen(DBM_SUFFIX)) { - errno = ENAMETOOLONG; - return(NULL); - } - (void)strcpy(path, file); - (void)strcat(path, DBM_SUFFIX); - return ((DBM *)__hash_open(path, flags, mode, 0, &info)); -} - -extern void -dbm_close(DBM *db) -{ - (void)(db->close)(db); -} - -/* - * Returns: - * DATUM on success - * NULL on failure - */ -extern datum -dbm_fetch(DBM *db, datum key) -{ - datum retdata; - int status; - DBT dbtkey, dbtretdata; - - dbtkey.data = key.dptr; - dbtkey.size = key.dsize; - status = (db->get)(db, &dbtkey, &dbtretdata, 0); - if (status) { - dbtretdata.data = NULL; - dbtretdata.size = 0; - } - retdata.dptr = dbtretdata.data; - retdata.dsize = dbtretdata.size; - return (retdata); -} - -/* - * Returns: - * DATUM on success - * NULL on failure - */ -extern datum -dbm_firstkey(DBM *db) -{ - int status; - datum retkey; - DBT dbtretkey, dbtretdata; - - status = (db->seq)(db, &dbtretkey, &dbtretdata, R_FIRST); - if (status) - dbtretkey.data = NULL; - retkey.dptr = dbtretkey.data; - retkey.dsize = dbtretkey.size; - return (retkey); -} - -/* - * Returns: - * DATUM on success - * NULL on failure - */ -extern datum -dbm_nextkey(DBM *db) -{ - int status; - datum retkey; - DBT dbtretkey, dbtretdata; - - status = (db->seq)(db, &dbtretkey, &dbtretdata, R_NEXT); - if (status) - dbtretkey.data = NULL; - retkey.dptr = dbtretkey.data; - retkey.dsize = dbtretkey.size; - return (retkey); -} - -/* - * Returns: - * 0 on success - * <0 failure - */ -extern int -dbm_delete(DBM *db, datum key) -{ - int status; - DBT dbtkey; - - dbtkey.data = key.dptr; - dbtkey.size = key.dsize; - status = (db->del)(db, &dbtkey, 0); - if (status) - return (-1); - else - return (0); -} - -/* - * Returns: - * 0 on success - * <0 failure - * 1 if DBM_INSERT and entry exists - */ -extern int -dbm_store(DBM *db, datum key, datum data, int flags) -{ - DBT dbtkey, dbtdata; - - dbtkey.data = key.dptr; - dbtkey.size = key.dsize; - dbtdata.data = data.dptr; - dbtdata.size = data.dsize; - return ((db->put)(db, &dbtkey, &dbtdata, - (flags == DBM_INSERT) ? R_NOOVERWRITE : 0)); -} - -extern int -dbm_error(DBM *db) -{ - HTAB *hp; - - hp = (HTAB *)db->internal; - return (hp->error); -} - -extern int -dbm_clearerr(DBM *db) -{ - HTAB *hp; - - hp = (HTAB *)db->internal; - hp->error = 0; - return (0); -} - -extern int -dbm_dirfno(DBM *db) -{ - return(((HTAB *)db->internal)->fp); -} diff --git a/lib/search/page.h b/lib/search/page.h deleted file mode 100644 index f9afc70..0000000 --- a/lib/search/page.h +++ /dev/null @@ -1,89 +0,0 @@ -/*- - * Copyright (c) 1990, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Margo Seltzer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)page.h 8.2 (Berkeley) 5/31/94 - * $FreeBSD: src/lib/libc/db/hash/page.h,v 1.2 2002/03/22 23:41:40 obrien Exp $ - */ - -/* - * Definitions for hashing page file format. - */ - -/* - * routines dealing with a data page - * - * page format: - * +------------------------------+ - * p | n | keyoff | datoff | keyoff | - * +------------+--------+--------+ - * | datoff | free | ptr | --> | - * +--------+---------------------+ - * | F R E E A R E A | - * +--------------+---------------+ - * | <---- - - - | data | - * +--------+-----+----+----------+ - * | key | data | key | - * +--------+----------+----------+ - * - * Pointer to the free space is always: p[p[0] + 2] - * Amount of free space on the page is: p[p[0] + 1] - */ - -/* - * How many bytes required for this pair? - * 2 shorts in the table at the top of the page + room for the - * key and room for the data - * - * We prohibit entering a pair on a page unless there is also room to append - * an overflow page. The reason for this it that you can get in a situation - * where a single key/data pair fits on a page, but you can't append an - * overflow page and later you'd have to split the key/data and handle like - * a big pair. - * You might as well do this up front. - */ - -#define PAIRSIZE(K,D) (2*sizeof(__uint16_t) + (K)->size + (D)->size) -#define BIGOVERHEAD (4*sizeof(__uint16_t)) -#define KEYSIZE(K) (4*sizeof(__uint16_t) + (K)->size); -#define OVFLSIZE (2*sizeof(__uint16_t)) -#define FREESPACE(P) ((P)[(P)[0]+1]) -#define OFFSET(P) ((P)[(P)[0]+2]) -#define PAIRFITS(P,K,D) \ - (((P)[2] >= REAL_KEY) && \ - (PAIRSIZE((K),(D)) + OVFLSIZE) <= FREESPACE((P))) -#define PAGE_META(N) (((N)+3) * sizeof(__uint16_t)) - -typedef struct { - BUFHEAD *newp; - BUFHEAD *oldp; - BUFHEAD *nextp; - __uint16_t next_addr; -} SPLIT_RETURN; diff --git a/lib/search/qsort.c b/lib/search/qsort.c deleted file mode 100644 index b53400a..0000000 --- a/lib/search/qsort.c +++ /dev/null @@ -1,345 +0,0 @@ -/* -FUNCTION -<>---sort an array - -INDEX - qsort - -SYNOPSIS - #include - void qsort(void *<[base]>, size_t <[nmemb]>, size_t <[size]>, - int (*<[compar]>)(const void *, const void *) ); - -DESCRIPTION -<> sorts an array (beginning at <[base]>) of <[nmemb]> objects. -<[size]> describes the size of each element of the array. - -You must supply a pointer to a comparison function, using the argument -shown as <[compar]>. (This permits sorting objects of unknown -properties.) Define the comparison function to accept two arguments, -each a pointer to an element of the array starting at <[base]>. The -result of <<(*<[compar]>)>> must be negative if the first argument is -less than the second, zero if the two arguments match, and positive if -the first argument is greater than the second (where ``less than'' and -``greater than'' refer to whatever arbitrary ordering is appropriate). - -The array is sorted in place; that is, when <> returns, the -array elements beginning at <[base]> have been reordered. - -RETURNS -<> does not return a result. - -PORTABILITY -<> is required by ANSI (without specifying the sorting algorithm). -*/ - -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include -#include - -#ifndef __GNUC__ -#define inline -#endif - -#if defined(I_AM_QSORT_R) -typedef int cmp_t(void *, const void *, const void *); -#elif defined(I_AM_GNU_QSORT_R) -typedef int cmp_t(const void *, const void *, void *); -#else -typedef int cmp_t(const void *, const void *); -#endif -static inline char *med3 (char *, char *, char *, cmp_t *, void *); -static inline void swapfunc (char *, char *, int, int); - -#define min(a, b) (a) < (b) ? a : b - -/* - * Qsort routine from Bentley & McIlroy's "Engineering a Sort Function". - */ -#define swapcode(TYPE, parmi, parmj, n) { \ - long i = (n) / sizeof (TYPE); \ - TYPE *pi = (TYPE *) (parmi); \ - TYPE *pj = (TYPE *) (parmj); \ - do { \ - TYPE t = *pi; \ - *pi++ = *pj; \ - *pj++ = t; \ - } while (--i > 0); \ -} - -#define SWAPINIT(a, es) swaptype = ((char *)a - (char *)0) % sizeof(long) || \ - es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1; - -static inline void -swapfunc (char *a, - char *b, - int n, - int swaptype) -{ - if(swaptype <= 1) - swapcode(long, a, b, n) - else - swapcode(char, a, b, n) -} - -#define swap(a, b) \ - if (swaptype == 0) { \ - long t = *(long *)(a); \ - *(long *)(a) = *(long *)(b); \ - *(long *)(b) = t; \ - } else \ - swapfunc(a, b, es, swaptype) - -#define vecswap(a, b, n) if ((n) > 0) swapfunc(a, b, n, swaptype) - -#if defined(I_AM_QSORT_R) -#define CMP(t, x, y) (cmp((t), (x), (y))) -#elif defined(I_AM_GNU_QSORT_R) -#define CMP(t, x, y) (cmp((x), (y), (t))) -#else -#define CMP(t, x, y) (cmp((x), (y))) -#endif - -static inline char * -med3 (char *a, - char *b, - char *c, - cmp_t *cmp, - void *thunk -#if !defined(I_AM_QSORT_R) && !defined(I_AM_GNU_QSORT_R) -__unused -#endif -) -{ - return CMP(thunk, a, b) < 0 ? - (CMP(thunk, b, c) < 0 ? b : (CMP(thunk, a, c) < 0 ? c : a )) - :(CMP(thunk, b, c) > 0 ? b : (CMP(thunk, a, c) < 0 ? a : c )); -} - -/* - * Classical function call recursion wastes a lot of stack space. Each - * recursion level requires a full stack frame comprising all local variables - * and additional space as dictated by the processor calling convention. - * - * This implementation instead stores the variables that are unique for each - * recursion level in a parameter stack array, and uses iteration to emulate - * recursion. Function call recursion is not used until the array is full. - * - * To ensure the stack consumption isn't worsened by this design, the size of - * the parameter stack array is chosen to be similar to the stack frame - * excluding the array. Each function call recursion level can handle this - * number of iterative recursion levels. - */ -#define PARAMETER_STACK_LEVELS 8u - -#if defined(I_AM_QSORT_R) -void -__bsd_qsort_r (void *a, - size_t n, - size_t es, - void *thunk, - cmp_t *cmp) -#elif defined(I_AM_GNU_QSORT_R) -void -qsort_r (void *a, - size_t n, - size_t es, - cmp_t *cmp, - void *thunk) -#else -#define thunk NULL -void -qsort (void *a, - size_t n, - size_t es, - cmp_t *cmp) -#endif -{ - char *pa, *pb, *pc, *pd, *pl, *pm, *pn; - size_t d, r; - int cmp_result; - int swaptype, swap_cnt; - size_t recursion_level = 0; - struct { void *a; size_t n; } parameter_stack[PARAMETER_STACK_LEVELS]; - - SWAPINIT(a, es); -loop: swap_cnt = 0; - if (n < 7) { - /* Short arrays are insertion sorted. */ - for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es) - for (pl = pm; pl > (char *) a && CMP(thunk, pl - es, pl) > 0; - pl -= es) - swap(pl, pl - es); - goto pop; - } - - /* Select a pivot element, move it to the left. */ - pm = (char *) a + (n / 2) * es; - if (n > 7) { - pl = a; - pn = (char *) a + (n - 1) * es; - if (n > 40) { - d = (n / 8) * es; - pl = med3(pl, pl + d, pl + 2 * d, cmp, thunk); - pm = med3(pm - d, pm, pm + d, cmp, thunk); - pn = med3(pn - 2 * d, pn - d, pn, cmp, thunk); - } - pm = med3(pl, pm, pn, cmp, thunk); - } - swap(a, pm); - - /* - * Sort the array relative the pivot in four ranges as follows: - * { elems == pivot, elems < pivot, elems > pivot, elems == pivot } - */ - pa = pb = (char *) a + es; - pc = pd = (char *) a + (n - 1) * es; - for (;;) { - /* Scan left to right stopping at first element > pivot. */ - while (pb <= pc && (cmp_result = CMP(thunk, pb, a)) <= 0) { - /* Move elements == pivot to the left (to pa) */ - if (cmp_result == 0) { - swap_cnt = 1; - swap(pa, pb); - pa += es; - } - pb += es; - } - /* Scan right to left stopping at first element < pivot. */ - while (pb <= pc && (cmp_result = CMP(thunk, pc, a)) >= 0) { - /* Move elements == pivot to the right (to pd) */ - if (cmp_result == 0) { - swap_cnt = 1; - swap(pc, pd); - pd -= es; - } - pc -= es; - } - if (pb > pc) - break; - /* The scan has found two elements to swap with each other. */ - swap(pb, pc); - swap_cnt = 1; - pb += es; - pc -= es; - } - if (swap_cnt == 0) { /* Switch to insertion sort */ - for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es) - for (pl = pm; pl > (char *) a && CMP(thunk, pl - es, pl) > 0; - pl -= es) - swap(pl, pl - es); - goto pop; - } - - /* - * Rearrange the array in three parts sorted like this: - * { elements < pivot, elements == pivot, elements > pivot } - */ - pn = (char *) a + n * es; - r = min(pa - (char *)a, pb - pa); - vecswap(a, pb - r, r); - r = min(pd - pc, pn - pd - es); - vecswap(pb, pn - r, r); - d = pb - pa; /* d = Size of left part. */ - r = pd - pc; /* r = Size of right part. */ - pn -= r; /* pn = Base of right part. */ - - /* - * Check which of the left and right parts are larger. - * Set (a, n) to (base, size) of the larger part. - * Set (pa, r) to (base, size) of the smaller part. - */ - if (r > d) { /* Right part is the larger part */ - pa = a; - a = pn; - n = r; - r = d; - } - else { /* Left part is the larger part, or both are equal. */ - pa = pn; - n = d; - } - - /* - * The left and right parts each need further sorting if they - * contain two elements or more. If both need sorting we use - * recursion to sort the smaller part and save the larger part - * to be sorted by iteration after the recursion. - * Using recursion only for the smaller part guarantees a - * recursion depth that is bounded to be less than (log2(n)). - */ - if (r > es) { /* Smaller part > 1 element. Both parts need sorting. */ - if (recursion_level < PARAMETER_STACK_LEVELS) { - /* - * The smaller part needs to be recursively sorted - * before the larger part is sorted. To avoid function - * call recursion the parameters for the larger part - * are pushed on the parameter_stack array. The smaller - * part is sorted using iteration and the larger part - * will be sorted when the parameter_stack is popped - * after the smaller part has been sorted. - */ - parameter_stack[recursion_level].a = a; - parameter_stack[recursion_level].n = n / es; - recursion_level++; - a = pa; - n = r / es; - goto loop; - } - else { - /* - * The parameter_stack array is full. The smaller part - * is sorted using function call recursion. The larger - * part will be sorted after the function call returns. - */ -#if defined(I_AM_QSORT_R) - __bsd_qsort_r(pa, r / es, es, thunk, cmp); -#elif defined(I_AM_GNU_QSORT_R) - qsort_r(pa, r / es, es, cmp, thunk); -#else - qsort(pa, r / es, es, cmp); -#endif - } - } - if (n > es) { /* The larger part needs sorting. Iterate to sort. */ - n = n / es; - goto loop; - } - /* Both left and right parts are one element or less - level done. */ -pop: - if (recursion_level != 0) { - recursion_level--; - a = parameter_stack[recursion_level].a; - n = parameter_stack[recursion_level].n; - goto loop; - } -} diff --git a/lib/search/qsort_r.c b/lib/search/qsort_r.c deleted file mode 100644 index c4b6fb7..0000000 --- a/lib/search/qsort_r.c +++ /dev/null @@ -1,48 +0,0 @@ -/* -FUNCTION -<>---sort an array - -INDEX - qsort_r - -SYNOPSIS - #define _BSD_SOURCE - #include - void qsort_r(void *<[base]>, size_t <[nmemb]>, size_t <[size]>, - void *<[thunk]>, - int (*<[compar]>)(void*, const void *, const void *)); - - #define _GNU_SOURCE - #include - void qsort_r(void *<[base]>, size_t <[nmemb]>, size_t <[size]>, - int (*<[compar]>)(const void *, const void *, void *), - void *<[thunk]>); - -DESCRIPTION -<> sorts an array (beginning at <[base]>) of <[nmemb]> objects. -<[size]> describes the size of each element of the array. - -You must supply a pointer to a comparison function, using the argument -shown as <[compar]>. (This permits sorting objects of unknown -properties.) There are two forms of this function, in each the -comparison function is defined to accept three arguments, but in a -different order. Two are pointers to an element of the array starting at -<[base]>, and another being an arbitrary pointer <[thunk]>. The -result of <<(*<[compar]>)>> must be negative if the first argument is -less than the second, zero if the two arguments match, and positive if -the first argument is greater than the second (where ``less than'' and -``greater than'' refer to whatever arbitrary ordering is appropriate). - -The array is sorted in place; that is, when <> returns, the -array elements beginning at <[base]> have been reordered. - -RETURNS -<> does not return a result. - -PORTABILITY -<>, in various forms, appears in both BSD and glibc. -*/ - -#define _GNU_SOURCE -#define I_AM_GNU_QSORT_R -#include "qsort.c" diff --git a/lib/search/tdelete.c b/lib/search/tdelete.c deleted file mode 100644 index a595200..0000000 --- a/lib/search/tdelete.c +++ /dev/null @@ -1,66 +0,0 @@ -/* $NetBSD: tdelete.c,v 1.2 1999/09/16 11:45:37 lukem Exp $ */ - -/* - * Tree search generalized from Knuth (6.2.2) Algorithm T just like - * the AT&T man page says. - * - * The node_t structure is for internal use only, lint doesn't grok it. - * - * Written by reading the System V Interface Definition, not the code. - * - * Totally public domain. - */ - -#include -#if 0 -#if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: tdelete.c,v 1.2 1999/09/16 11:45:37 lukem Exp $"); -#endif /* LIBC_SCCS and not lint */ -#endif - -#include -#define _SEARCH_PRIVATE -#include -#include - - -/* delete node with given key */ -void * -tdelete (const void *__restrict vkey, /* key to be deleted */ - void **__restrict vrootp, /* address of the root of tree */ - int (*compar)(const void *, const void *)) -{ - node_t **rootp = (node_t **)vrootp; - node_t *p, *q, *r; - int cmp; - - if (rootp == NULL || (p = *rootp) == NULL) - return NULL; - - while ((cmp = (*compar)(vkey, (*rootp)->key)) != 0) { - p = *rootp; - rootp = (cmp < 0) ? - &(*rootp)->llink : /* follow llink branch */ - &(*rootp)->rlink; /* follow rlink branch */ - if (*rootp == NULL) - return NULL; /* key not found */ - } - r = (*rootp)->rlink; /* D1: */ - if ((q = (*rootp)->llink) == NULL) /* Left NULL? */ - q = r; - else if (r != NULL) { /* Right link is NULL? */ - if (r->llink == NULL) { /* D2: Find successor */ - r->llink = q; - q = r; - } else { /* D3: Find NULL link */ - for (q = r->llink; q->llink != NULL; q = r->llink) - r = q; - r->llink = q->rlink; - q->llink = (*rootp)->llink; - q->rlink = (*rootp)->rlink; - } - } - free(*rootp); /* D4: Free node */ - *rootp = q; /* link parent to new node */ - return p; -} diff --git a/lib/search/tdestroy.c b/lib/search/tdestroy.c deleted file mode 100644 index 04c6b70..0000000 --- a/lib/search/tdestroy.c +++ /dev/null @@ -1,50 +0,0 @@ -/* $NetBSD: tdelete.c,v 1.2 1999/09/16 11:45:37 lukem Exp $ */ - -/* - * Tree search generalized from Knuth (6.2.2) Algorithm T just like - * the AT&T man page says. - * - * The node_t structure is for internal use only, lint doesn't grok it. - * - * Written by reading the System V Interface Definition, not the code. - * - * Totally public domain. - */ - -#include -#if 0 -#if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: tdelete.c,v 1.2 1999/09/16 11:45:37 lukem Exp $"); -#endif /* LIBC_SCCS and not lint */ -#endif - -#include -#define _SEARCH_PRIVATE -#include -#include - - -/* Walk the nodes of a tree */ -static void -trecurse(root, free_action) - node_t *root; /* Root of the tree to be walked */ - void (*free_action)(void *); -{ - if (root->llink != NULL) - trecurse(root->llink, free_action); - if (root->rlink != NULL) - trecurse(root->rlink, free_action); - - (*free_action) ((void *) root->key); - free(root); -} - -void -tdestroy (void *vrootp, - void (*freefct)(void *)) -{ - node_t *root = (node_t *) vrootp; - - if (root != NULL) - trecurse(root, freefct); -} diff --git a/lib/search/tfind.c b/lib/search/tfind.c deleted file mode 100644 index 670f41f..0000000 --- a/lib/search/tfind.c +++ /dev/null @@ -1,47 +0,0 @@ -/* $NetBSD: tfind.c,v 1.2 1999/09/16 11:45:37 lukem Exp $ */ - -/* - * Tree search generalized from Knuth (6.2.2) Algorithm T just like - * the AT&T man page says. - * - * The node_t structure is for internal use only, lint doesn't grok it. - * - * Written by reading the System V Interface Definition, not the code. - * - * Totally public domain. - */ - -#include -#if 0 -#if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: tfind.c,v 1.2 1999/09/16 11:45:37 lukem Exp $"); -#endif /* LIBC_SCCS and not lint */ -#endif - -#include -#define _SEARCH_PRIVATE -#include -#include - -/* find a node, or return 0 */ -void * -tfind (const void *vkey, /* key to be found */ - void **vrootp, /* address of the tree root */ - int (*compar)(const void *, const void *)) -{ - node_t **rootp = (node_t **)vrootp; - - if (rootp == NULL) - return NULL; - - while (*rootp != NULL) { /* T1: */ - int r; - - if ((r = (*compar)(vkey, (*rootp)->key)) == 0) /* T2: */ - return *rootp; /* key found */ - rootp = (r < 0) ? - &(*rootp)->llink : /* T3: follow left branch */ - &(*rootp)->rlink; /* T4: follow right branch */ - } - return NULL; -} diff --git a/lib/search/tsearch.3 b/lib/search/tsearch.3 deleted file mode 100644 index a36fe89..0000000 --- a/lib/search/tsearch.3 +++ /dev/null @@ -1,118 +0,0 @@ -.\" $NetBSD$ -.\" Copyright (c) 1997 Todd C. Miller -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. The name of the author may not be used to endorse or promote products -.\" derived from this software without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, -.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -.\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -.\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -.\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -.\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -.\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" OpenBSD: tsearch.3,v 1.2 1998/06/21 22:13:49 millert Exp -.\" $FreeBSD: src/lib/libc/stdlib/tsearch.3,v 1.7 2001/09/07 14:46:36 asmodai Exp $ -.\" -.Dd June 15, 1997 -.Dt TSEARCH 3 -.Os -.Sh NAME -.Nm tsearch , tfind , tdelete , twalk -.Nd manipulate binary search trees -.Sh SYNOPSIS -.In search.h -.Ft void * -.Fn tdelete "const void *key" "void **rootp" "int (*compar) (const void *, const void *)" -.Ft void * -.Fn tfind "const void *key" "void **rootp" "int (*compar) (const void *, const void *)" -.Ft void * -.Fn tsearch "const void *key" "void **rootp" "int (*compar) (const void *, const void *)" -.Ft void -.Fn twalk "const void *root" "void (*compar) (const void *, VISIT, int)" -.Sh DESCRIPTION -The -.Fn tdelete , -.Fn tfind , -.Fn tsearch , -and -.Fn twalk -functions manage binary search trees based on algorithms T and D -from Knuth (6.2.2). The comparison function passed in by -the user has the same style of return values as -.Xr strcmp 3 . -.Pp -.Fn Tfind -searches for the datum matched by the argument -.Fa key -in the binary tree rooted at -.Fa rootp , -returning a pointer to the datum if it is found and NULL -if it is not. -.Pp -.Fn Tsearch -is identical to -.Fn tfind -except that if no match is found, -.Fa key -is inserted into the tree and a pointer to it is returned. If -.Fa rootp -points to a NULL value a new binary search tree is created. -.Pp -.Fn Tdelete -deletes a node from the specified binary search tree and returns -a pointer to the parent of the node to be deleted. -It takes the same arguments as -.Fn tfind -and -.Fn tsearch . -If the node to be deleted is the root of the binary search tree, -.Fa rootp -will be adjusted. -.Pp -.Fn Twalk -walks the binary search tree rooted in -.Fa root -and calls the function -.Fa action -on each node. -.Fa Action -is called with three arguments: a pointer to the current node, -a value from the enum -.Sy "typedef enum { preorder, postorder, endorder, leaf } VISIT;" -specifying the traversal type, and a node level (where level -zero is the root of the tree). -.Sh SEE ALSO -.Xr bsearch 3 , -.Xr hsearch 3 , -.Xr lsearch 3 -.Sh RETURN VALUES -The -.Fn tsearch -function returns NULL if allocation of a new node fails (usually -due to a lack of free memory). -.Pp -.Fn Tfind , -.Fn tsearch , -and -.Fn tdelete -return NULL if -.Fa rootp -is NULL or the datum cannot be found. -.Pp -The -.Fn twalk -function returns no value. diff --git a/lib/search/tsearch.c b/lib/search/tsearch.c deleted file mode 100644 index 82d6944..0000000 --- a/lib/search/tsearch.c +++ /dev/null @@ -1,57 +0,0 @@ -/* $NetBSD: tsearch.c,v 1.3 1999/09/16 11:45:37 lukem Exp $ */ - -/* - * Tree search generalized from Knuth (6.2.2) Algorithm T just like - * the AT&T man page says. - * - * The node_t structure is for internal use only, lint doesn't grok it. - * - * Written by reading the System V Interface Definition, not the code. - * - * Totally public domain. - */ - -#include -#if 0 -#if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: tsearch.c,v 1.3 1999/09/16 11:45:37 lukem Exp $"); -#endif /* LIBC_SCCS and not lint */ -#endif - -#include -#define _SEARCH_PRIVATE -#include -#include - -/* find or insert datum into search tree */ -void * -tsearch (const void *vkey, /* key to be located */ - void **vrootp, /* address of tree root */ - int (*compar)(const void *, const void *)) -{ - node_t *q; - node_t **rootp = (node_t **)vrootp; - - if (rootp == NULL) - return NULL; - - while (*rootp != NULL) { /* Knuth's T1: */ - int r; - - if ((r = (*compar)(vkey, (*rootp)->key)) == 0) /* T2: */ - return *rootp; /* we found it! */ - - rootp = (r < 0) ? - &(*rootp)->llink : /* T3: follow left branch */ - &(*rootp)->rlink; /* T4: follow right branch */ - } - - q = malloc(sizeof(node_t)); /* T5: key not found */ - if (q != 0) { /* make new node */ - *rootp = q; /* link new node to old */ - /* LINTED const castaway ok */ - q->key = (void *)vkey; /* initialize new node */ - q->llink = q->rlink = NULL; - } - return q; -} diff --git a/lib/search/twalk.c b/lib/search/twalk.c deleted file mode 100644 index 02ef522..0000000 --- a/lib/search/twalk.c +++ /dev/null @@ -1,57 +0,0 @@ -/* $NetBSD: twalk.c,v 1.1 1999/02/22 10:33:16 christos Exp $ */ - -/* - * Tree search generalized from Knuth (6.2.2) Algorithm T just like - * the AT&T man page says. - * - * The node_t structure is for internal use only, lint doesn't grok it. - * - * Written by reading the System V Interface Definition, not the code. - * - * Totally public domain. - */ - -#include -#if 0 -#if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: twalk.c,v 1.1 1999/02/22 10:33:16 christos Exp $"); -#endif /* LIBC_SCCS and not lint */ -#endif - -#include -#define _SEARCH_PRIVATE -#include -#include - -static void trecurse(const node_t *, - void (*action)(const void *, VISIT, int), int level); - -/* Walk the nodes of a tree */ -static void -trecurse(root, action, level) - const node_t *root; /* Root of the tree to be walked */ - void (*action)(const void *, VISIT, int); - int level; -{ - - if (root->llink == NULL && root->rlink == NULL) - (*action)(root, leaf, level); - else { - (*action)(root, preorder, level); - if (root->llink != NULL) - trecurse(root->llink, action, level + 1); - (*action)(root, postorder, level); - if (root->rlink != NULL) - trecurse(root->rlink, action, level + 1); - (*action)(root, endorder, level); - } -} - -/* Walk the nodes of a tree */ -void -twalk (const void *vroot, /* Root of the tree to be walked */ - void (*action)(const void *, VISIT, int)) -{ - if (vroot != NULL && action != NULL) - trecurse(vroot, action, 0); -} diff --git a/lib/signal/Makefile.inc b/lib/signal/Makefile.inc deleted file mode 100644 index edf53f8..0000000 --- a/lib/signal/Makefile.inc +++ /dev/null @@ -1,14 +0,0 @@ -if HAVE_SIGNAL_DIR - -libc_a_SOURCES += \ - %D%/psignal.c %D%/raise.c %D%/signal.c %D%/sig2str.c - -endif - -LIBC_CHEWOUT_FILES += \ - %D%/psignal.def \ - %D%/raise.def \ - %D%/signal.def \ - %D%/sig2str.def - -LIBC_CHAPTERS += %D%/signal.tex diff --git a/lib/signal/psignal.c b/lib/signal/psignal.c deleted file mode 100644 index f847ab2..0000000 --- a/lib/signal/psignal.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright 2002, 2011 Red Hat Inc. */ -/* -FUNCTION -<>---print a signal message on standard error - -INDEX - psignal - -SYNOPSIS - #include - void psignal(int <[signal]>, const char *<[prefix]>); - -DESCRIPTION -Use <> to print (on standard error) a signal message -corresponding to the value of the signal number <[signal]>. -Unless you use <> as the value of the argument <[prefix]>, the -signal message will begin with the string at <[prefix]>, followed by a -colon and a space (<<: >>). The remainder of the signal message is one -of the strings described for <>. - -RETURNS -<> returns no result. - -PORTABILITY -POSIX.1-2008 requires <>, but the strings issued vary from one -implementation to another. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include - -#define WRITE_STR(str) \ -{ \ - const char *p = (str); \ - size_t len = strlen (p); \ - while (len) \ - { \ - ssize_t len1 = write (fileno (stderr), p, len); \ - if (len1 < 0) \ - break; \ - len -= len1; \ - p += len1; \ - } \ -} - -void -psignal (int sig, - const char *s) -{ - fflush (stderr); - if (s != NULL && *s != '\0') - { - WRITE_STR (s); - WRITE_STR (": "); - } - WRITE_STR (strsignal (sig)); - -#ifdef __SCLE - WRITE_STR ((stderr->_flags & __SCLE) ? "\r\n" : "\n"); -#else - WRITE_STR ("\n"); -#endif -} diff --git a/lib/signal/raise.c b/lib/signal/raise.c deleted file mode 100644 index c678c6e..0000000 --- a/lib/signal/raise.c +++ /dev/null @@ -1,69 +0,0 @@ -/* Embedded systems may want the simulated signals if no other form exists, - but UNIX versions will want to use the host facilities. - Define SIMULATED_SIGNALS when you want to use the simulated versions. -*/ - -/* -FUNCTION -<>---send a signal - -INDEX - raise -INDEX - _raise_r - -SYNOPSIS - #include - int raise(int <[sig]>); - - int _raise_r(void *<[reent]>, int <[sig]>); - -DESCRIPTION -Send the signal <[sig]> (one of the macros from `<>'). -This interrupts your program's normal flow of execution, and allows a signal -handler (if you've defined one, using <>) to take control. - -The alternate function <<_raise_r>> is a reentrant version. The extra -argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -The result is <<0>> if <[sig]> was successfully raised, <<1>> -otherwise. However, the return value (since it depends on the normal -flow of execution) may not be visible, unless the signal handler for -<[sig]> terminates with a <> or unless <> is in -effect for this signal. - -PORTABILITY -ANSI C requires <>, but allows the full set of signal numbers -to vary from one implementation to another. - -Required OS subroutines: <>, <>. -*/ - -#ifndef SIGNAL_PROVIDED - -int _dummy_raise; - -#else - -#include -#include - -#ifndef _REENT_ONLY - -int -raise (int sig) -{ - return _raise_r (_REENT, sig); -} - -#endif - -int -_raise_r (struct _reent *reent, - int sig) -{ - return _kill_r (reent, _getpid_r (reent), sig); -} - -#endif /* SIGNAL_PROVIDED */ diff --git a/lib/signal/sig2str.c b/lib/signal/sig2str.c deleted file mode 100644 index f4df913..0000000 --- a/lib/signal/sig2str.c +++ /dev/null @@ -1,302 +0,0 @@ -/* SPDX-License-Identifier: BSD-2-Clause */ -/* - * Copyright (C) 2021 Matthew Joyce - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>---Translate between signal number and name - -INDEX - sig2str -INDEX - str2sig - -SYNOPSIS - #include - int sig2str(int <[signum]>, char *<[str]>); - - int str2sig(const char *restrict <[str]>, int *restrict <[pnum]>); - -DESCRIPTION -The <> function translates the signal number specified by <[signum]> to -a signal name and stores this string in the location specified by <[str]>. The -application must ensure that <[str]> points to a location that can store the -string including the terminating null byte. The symbolic constant -<[SIG2STR_MAX]> defined in `<>' gives the maximum number of bytes -required. - -The <> function translates the signal name in the string pointed to by -<[str]> to a signal number and stores this value in the location specified by -<[pnum]>. - -RETURNS -<> returns <<0>> if <[signum]>> is a valid, supported signal number. -Otherwise, it returns <<-1>>. - -<> returns <<0>> if it stores a value in the location pointed to by -<[pnum]>. Otherwise it returns <<-1>>. -*/ - -#include -#include -#include -#include - -#define SPACES_TO_N 6 /* Allows indexing to RT Signal number in str2sig */ -#define NUM_OF_SIGS (sizeof(sig_array) / sizeof(sig_name_and_num)) - -typedef struct sig_name_and_num { - const char *sig_name; - const int sig_num; -} sig_name_and_num; - -static const sig_name_and_num sig_array[] = { - { "EXIT", 0 }, - #ifdef SIGHUP - { "HUP", SIGHUP }, - #endif - #ifdef SIGINT - { "INT", SIGINT }, - #endif - #ifdef SIGQUIT - { "QUIT", SIGQUIT }, - #endif - #ifdef SIGILL - { "ILL", SIGILL }, - #endif - #ifdef SIGTRAP - { "TRAP", SIGTRAP }, - #endif - #ifdef SIGABRT - { "ABRT", SIGABRT }, - #endif - #ifdef SIGIOT - { "IOT", SIGIOT}, - #endif - #ifdef SIGEMT - { "EMT", SIGEMT }, - #endif - #ifdef SIGFPE - { "FPE", SIGFPE }, - #endif - #ifdef SIGKILL - { "KILL", SIGKILL }, - #endif - #ifdef SIGBUS - { "BUS", SIGBUS }, - #endif - #ifdef SIGSEGV - { "SEGV", SIGSEGV }, - #endif - #ifdef SIGSYS - { "SYS", SIGSYS }, - #endif - #ifdef SIGPIPE - { "PIPE", SIGPIPE }, - #endif - #ifdef SIGALRM - { "ALRM", SIGALRM }, - #endif - #ifdef SIGTERM - { "TERM", SIGTERM }, - #endif - #ifdef SIGURG - { "URG", SIGURG }, - #endif - #ifdef SIGSTOP - { "STOP", SIGSTOP }, - #endif - #ifdef SIGTSTP - { "TSTP", SIGTSTP }, - #endif - #ifdef SIGCONT - { "CONT", SIGCONT }, - #endif - #ifdef SIGCHLD - { "CHLD", SIGCHLD }, - #endif - #ifdef SIGCLD - { "CLD", SIGCLD }, - #endif - #ifdef SIGTTIN - { "TTIN", SIGTTIN }, - #endif - #ifdef SIGTTOU - { "TTOU", SIGTTOU }, - #endif - #ifdef SIGIO - { "IO", SIGIO }, - #endif - #ifdef SIGPOLL - { "POLL", SIGPOLL }, - #endif - #ifdef SIGWINCH - { "WINCH", SIGWINCH }, - #endif - #ifdef SIGUSR1 - { "USR1", SIGUSR1 }, - #endif - #ifdef SIGUSR2 - { "USR2", SIGUSR2 }, - #endif - #ifdef SIGPWR - { "PWR", SIGPWR }, - #endif - #ifdef SIGXCPU - { "XCPU", SIGXCPU }, - #endif - #ifdef SIGXFSZ - { "XFSZ", SIGXFSZ }, - #endif - #ifdef SIGVTALRM - { "VTALRM", SIGVTALRM }, - #endif - #ifdef SIGPROF - { "PROF", SIGPROF }, - #endif - #ifdef SIGLOST - { "LOST", SIGLOST }, - #endif - /* The Issue 8 standard requires that SIGRTMIN and SIGRTMAX be included - * as valid results to be saved from calls to sig2str/str2sig. */ - #ifdef SIGRTMIN - { "RTMIN", SIGRTMIN }, - #endif - #ifdef SIGRTMAX - { "RTMAX", SIGRTMAX } - #endif -}; - -int -sig2str(int signum, char *str) -{ - const sig_name_and_num *sptr; - -#if defined (SIGRTMIN) && defined (SIGRTMAX) - /* If signum falls in lower half of the real time signals range, define - * the saved str value as "RTMIN+n" according to the Issue 8 standard */ - if ((SIGRTMIN + 1) <= signum && - signum <= (SIGRTMIN + SIGRTMAX) / 2) { - sprintf(str, "RTMIN+%d", (signum-SIGRTMIN)); - return 0; - } - - /* If signum falls in upper half of the real time signals range, define - * the saved str value as "RTMAX-m" according to the Issue 8 standard */ - if ((((SIGRTMIN + SIGRTMAX) / 2) + 1) <= signum && - signum <= (SIGRTMAX - 1)) { - sprintf(str, "RTMAX-%d", (SIGRTMAX - signum)); - return 0; - } -#endif - - /* Otherwise, search for signal matching signum in sig_array. If found, - * save its string value in str. */ - for (sptr = sig_array; sptr < &sig_array[NUM_OF_SIGS]; sptr++) { - if (sptr->sig_num == signum) { - strcpy(str, sptr->sig_name); - return 0; - } - } - - /* If signum is not a recognized signal number, return -1 */ - return -1; -} - -int -str2sig(const char *__restrict str, int *__restrict pnum) -{ - unsigned long j = 0; - char *endp; - const sig_name_and_num *sptr; - unsigned long is_valid_decimal; - -#if defined (SIGRTMIN) && defined (SIGRTMAX) - /* i686 Cygwin only supports one RT signal. For this case, skip checks - * for "RTMIN+n" and "RTMAX-m". */ - if (SIGRTMIN != SIGRTMAX) { - - /* If str is in RT signal range, get number of of RT signal, save it as an - * integer. */ - if (strncmp(str, "RTMIN+", SPACES_TO_N) == 0) { - j = strtoul(&str[SPACES_TO_N], &endp, 10); - - /* If number is valid, save it in pnum. */ - if (*endp == '\0') { - if (1 <= j && - j <= ((SIGRTMAX - SIGRTMIN)-1)) { - *pnum = (SIGRTMIN + j); - return 0; - } - return -1; - } - return -1; - } - - /* If str is in RT signal range, get number of of RT signal, save it as an - * integer. */ - if (strncmp(str, "RTMAX-", SPACES_TO_N) == 0) { - j = strtoul(&str[SPACES_TO_N], &endp, 10); // and endptr null check - - /* If number is valid, save it in pnum. */ - if (*endp == '\0') { - if (1 <= j && - j <= ((SIGRTMAX - SIGRTMIN)-1)) { - *pnum = (SIGRTMAX - j); - return 0; - } - return -1; - } - return -1; - } - } -#endif - - /*If str is a valid signal name, save its corresponding number in pnum. */ - for (sptr = sig_array; sptr < &sig_array[NUM_OF_SIGS]; sptr++) { - if (strcmp(sptr->sig_name, str) == 0) { - *pnum = sptr->sig_num; - return 0; - } - } - - /* str was not found in sig_array. Check whether str is a string - * representation of a valid integer. */ - is_valid_decimal = strtoul(str, &endp, 10); - - if (*endp != '\0') { - return -1; - } - - /* If str is a representation of a decimal value, save its integer value - * in pnum. */ - if (1 <= is_valid_decimal && - is_valid_decimal <= (NSIG - 1)) { - *pnum = is_valid_decimal; - return 0; - } - - return -1; -} diff --git a/lib/signal/signal.c b/lib/signal/signal.c deleted file mode 100644 index 77d78f0..0000000 --- a/lib/signal/signal.c +++ /dev/null @@ -1,227 +0,0 @@ -/* -FUNCTION -<>---specify handler subroutine for a signal - -INDEX - signal -INDEX - _signal_r - -SYNOPSIS - #include - void (*signal(int <[sig]>, void(*<[func]>)(int))) (int); - - void (*_signal_r(void *<[reent]>, int <[sig]>, void(*<[func]>)(int))) (int); - -DESCRIPTION -<> provides a simple signal-handling implementation for embedded -targets. - -<> allows you to request changed treatment for a particular -signal <[sig]>. You can use one of the predefined macros <> -(select system default handling) or <> (ignore this signal) -as the value of <[func]>; otherwise, <[func]> is a function pointer -that identifies a subroutine in your program as the handler for this signal. - -Some of the execution environment for signal handlers is -unpredictable; notably, the only library function required to work -correctly from within a signal handler is <> itself, and -only when used to redefine the handler for the current signal value. - -Static storage is likewise unreliable for signal handlers, with one -exception: if you declare a static storage location as `<>', then you may use that location in a signal handler to -store signal values. - -If your signal handler terminates using <> (or implicit -return), your program's execution continues at the point -where it was when the signal was raised (whether by your program -itself, or by an external event). Signal handlers can also -use functions such as <> and <> to avoid returning. - -The alternate function <<_signal_r>> is the reentrant version. -The extra argument <[reent]> is a pointer to a reentrancy structure. - -@c FIXME: do we have setjmp.h and assoc fns? - -RETURNS -If your request for a signal handler cannot be honored, the result is -<>; a specific error number is also recorded in <>. - -Otherwise, the result is the previous handler (a function pointer or -one of the predefined macros). - -PORTABILITY -ANSI C requires <>. - -No supporting OS subroutines are required to link with <>, but -it will not have any useful effects, except for software generated signals, -without an operating system that can actually raise exceptions. -*/ - -/* - * signal.c - * Original Author: G. Haley - * - * signal associates the function pointed to by func with the signal sig. When - * a signal occurs, the value of func determines the action taken as follows: - * if func is SIG_DFL, the default handling for that signal will occur; if func - * is SIG_IGN, the signal will be ignored; otherwise, the default handling for - * the signal is restored (SIG_DFL), and the function func is called with sig - * as its argument. Returns the value of func for the previous call to signal - * for the signal sig, or SIG_ERR if the request fails. - */ - -/* _init_signal initialises the signal handlers for each signal. This function - is called by crt0 at program startup. */ - -#ifdef SIGNAL_PROVIDED - -int _dummy_simulated_signal; - -#else - -#include -#include -#include -#include -#include -#include <_syslist.h> - -#ifdef _REENT_THREAD_LOCAL -_Thread_local void (**_tls_sig_func)(int); -#endif - -int -_init_signal_r (struct _reent *ptr) -{ - int i; - - if (_REENT_SIG_FUNC(ptr) == NULL) - { - _REENT_SIG_FUNC(ptr) = (_sig_func_ptr *)_malloc_r (ptr, sizeof (_sig_func_ptr) * NSIG); - if (_REENT_SIG_FUNC(ptr) == NULL) - return -1; - - for (i = 0; i < NSIG; i++) - _REENT_SIG_FUNC(ptr)[i] = SIG_DFL; - } - - return 0; -} - -_sig_func_ptr -_signal_r (struct _reent *ptr, - int sig, - _sig_func_ptr func) -{ - _sig_func_ptr old_func; - - if (sig < 0 || sig >= NSIG) - { - _REENT_ERRNO(ptr) = EINVAL; - return SIG_ERR; - } - - if (_REENT_SIG_FUNC(ptr) == NULL && _init_signal_r (ptr) != 0) - return SIG_ERR; - - old_func = _REENT_SIG_FUNC(ptr)[sig]; - _REENT_SIG_FUNC(ptr)[sig] = func; - - return old_func; -} - -int -_raise_r (struct _reent *ptr, - int sig) -{ - _sig_func_ptr func; - - if (sig < 0 || sig >= NSIG) - { - _REENT_ERRNO(ptr) = EINVAL; - return -1; - } - - if (_REENT_SIG_FUNC(ptr) == NULL) - func = SIG_DFL; - else - func = _REENT_SIG_FUNC(ptr)[sig]; - - if (func == SIG_DFL) - return _kill_r (ptr, _getpid_r (ptr), sig); - else if (func == SIG_IGN) - return 0; - else if (func == SIG_ERR) - { - _REENT_ERRNO(ptr) = EINVAL; - return 1; - } - else - { - _REENT_SIG_FUNC(ptr)[sig] = SIG_DFL; - func (sig); - return 0; - } -} - -int -__sigtramp_r (struct _reent *ptr, - int sig) -{ - _sig_func_ptr func; - - if (sig < 0 || sig >= NSIG) - { - return -1; - } - - if (_REENT_SIG_FUNC(ptr) == NULL && _init_signal_r (ptr) != 0) - return -1; - - func = _REENT_SIG_FUNC(ptr)[sig]; - if (func == SIG_DFL) - return 1; - else if (func == SIG_ERR) - return 2; - else if (func == SIG_IGN) - return 3; - else - { - _REENT_SIG_FUNC(ptr)[sig] = SIG_DFL; - func (sig); - return 0; - } -} - -#ifndef _REENT_ONLY - -int -raise (int sig) -{ - return _raise_r (_REENT, sig); -} - -_sig_func_ptr -signal (int sig, - _sig_func_ptr func) -{ - return _signal_r (_REENT, sig, func); -} - -int -_init_signal (void) -{ - return _init_signal_r (_REENT); -} - -int -__sigtramp (int sig) -{ - return __sigtramp_r (_REENT, sig); -} - -#endif - -#endif /* !SIGNAL_PROVIDED */ diff --git a/lib/signal/signal.tex b/lib/signal/signal.tex deleted file mode 100644 index f7dbf9d..0000000 --- a/lib/signal/signal.tex +++ /dev/null @@ -1,78 +0,0 @@ -@node Signals -@chapter Signal Handling (@file{signal.h}) - -A @dfn{signal} is an event that interrupts the normal flow of control -in your program. Your operating environment normally defines the full -set of signals available (see @file{sys/signal.h}), as well as the -default means of dealing with them---typically, either printing an -error message and aborting your program, or ignoring the signal. - -All systems support at least the following signals: -@table @code -@item SIGABRT -Abnormal termination of a program; raised by the @code{abort} function. - -@item SIGFPE -A domain error in arithmetic, such as overflow, or division by zero. - -@item SIGILL -Attempt to execute as a function data that is not executable. - -@item SIGINT -Interrupt; an interactive attention signal. - -@item SIGSEGV -An attempt to access a memory location that is not available. - -@item SIGTERM -A request that your program end execution. -@end table - -Two functions are available for dealing with asynchronous -signals---one to allow your program to send signals to itself (this is -called @dfn{raising} a signal), and one to specify subroutines (called -@dfn{handlers} to handle particular signals that you anticipate may -occur---whether raised by your own program or the operating environment. - -To support these functions, @file{signal.h} defines three macros: - -@table @code -@item SIG_DFL -Used with the @code{signal} function in place of a pointer to a -handler subroutine, to select the operating environment's default -handling of a signal. - -@item SIG_IGN -Used with the @code{signal} function in place of a pointer to a -handler, to ignore a particular signal. - -@item SIG_ERR -Returned by the @code{signal} function in place of a pointer to a -handler, to indicate that your request to set up a handler could not -be honored for some reason. -@end table - -@file{signal.h} also defines an integral type, @code{sig_atomic_t}. -This type is not used in any function declarations; it exists only to -allow your signal handlers to declare a static storage location where -they may store a signal value. (Static storage is not otherwise -reliable from signal handlers.) - -@menu -* psignal:: Print a signal message to standard error -* raise:: Send a signal -* sig2str:: Translate between signal number and name -* signal:: Specify handler subroutine for a signal -@end menu - -@page -@include signal/psignal.def - -@page -@include signal/raise.def - -@page -@include signal/sig2str.def - -@page -@include signal/signal.def diff --git a/lib/ssp/Makefile.inc b/lib/ssp/Makefile.inc deleted file mode 100644 index f1dc912..0000000 --- a/lib/ssp/Makefile.inc +++ /dev/null @@ -1,46 +0,0 @@ -## General sources. -%C%_ELIX_SOURCES = \ - %D%/chk_fail.c \ - %D%/stack_protector.c - -## String sources. -%C%_ELIX_SOURCES += \ - %D%/memcpy_chk.c \ - %D%/memmove_chk.c \ - %D%/mempcpy_chk.c \ - %D%/memset_chk.c \ - %D%/stpcpy_chk.c \ - %D%/stpncpy_chk.c \ - %D%/strcat_chk.c \ - %D%/strcpy_chk.c \ - %D%/strncat_chk.c \ - %D%/strncpy_chk.c - -## Stdio sources. -if HAVE_STDIO_DIR -%C%_ELIX_SOURCES += \ - %D%/gets_chk.c \ - %D%/snprintf_chk.c \ - %D%/sprintf_chk.c \ - %D%/vsnprintf_chk.c \ - %D%/vsprintf_chk.c -endif - -## None of these functions are specified by EL/IX -if ELIX_LEVEL_1 -else -if ELIX_LEVEL_2 -else -if ELIX_LEVEL_3 -else -if ELIX_LEVEL_4 -else -libc_a_SOURCES += $(%C%_ELIX_SOURCES) -endif -endif -endif -endif - -LIBC_CHEWOUT_FILES += - -LIBC_CHAPTERS += %D%/ssp.tex diff --git a/lib/ssp/chk_fail.c b/lib/ssp/chk_fail.c deleted file mode 100644 index b1f8e42..0000000 --- a/lib/ssp/chk_fail.c +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include - -void -__attribute__((__noreturn__)) -__chk_fail(void) -{ - char msg[] = "*** buffer overflow detected ***: terminated\n"; - write (2, msg, strlen (msg)); - raise (SIGABRT); - _exit (127); -} diff --git a/lib/ssp/gets_chk.c b/lib/ssp/gets_chk.c deleted file mode 100644 index b4f7015..0000000 --- a/lib/ssp/gets_chk.c +++ /dev/null @@ -1,78 +0,0 @@ -/* $NetBSD: gets_chk.c,v 1.7 2013/10/04 20:49:16 christos Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: gets_chk.c,v 1.7 2013/10/04 20:49:16 christos Exp $"); - -/*LINTLIBRARY*/ - -#include -#include -#include -#include -#include -#include - -extern char *__gets(char *); -#undef gets -#ifdef __NEWLIB__ -#define __gets gets -#endif - -char * -__gets_chk(char * __restrict buf, size_t slen) -{ - char *abuf; - size_t len; - - if (slen >= (size_t)INT_MAX) - return __gets(buf); - - if ((abuf = malloc(slen + 1)) == NULL) - return __gets(buf); - - if (fgets(abuf, (int)(slen + 1), stdin) == NULL) { - free(abuf); - return NULL; - } - - len = strlen(abuf); - if (len > 0 && abuf[len - 1] == '\n') - --len; - - if (len >= slen) - __chk_fail(); - - (void)memcpy(buf, abuf, len); - - buf[len] = '\0'; - free(abuf); - return buf; -} diff --git a/lib/ssp/memcpy_chk.c b/lib/ssp/memcpy_chk.c deleted file mode 100644 index 63f536d..0000000 --- a/lib/ssp/memcpy_chk.c +++ /dev/null @@ -1,54 +0,0 @@ -/* $NetBSD: memcpy_chk.c,v 1.7 2015/05/13 19:57:16 joerg Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: memcpy_chk.c,v 1.7 2015/05/13 19:57:16 joerg Exp $"); - -/*LINTLIBRARY*/ - -#include -#include - -#undef memcpy - -void *__memcpy_chk(void * __restrict, const void * __restrict, size_t, size_t); - -void * -__memcpy_chk(void * __restrict dst, const void * __restrict src, size_t len, - size_t slen) -{ - if (len > slen) - __chk_fail(); - - if (__ssp_overlap((const char *)src, (const char *)dst, len)) - __chk_fail(); - - return memcpy(dst, src, len); -} diff --git a/lib/ssp/memmove_chk.c b/lib/ssp/memmove_chk.c deleted file mode 100644 index f8f03d7..0000000 --- a/lib/ssp/memmove_chk.c +++ /dev/null @@ -1,50 +0,0 @@ -/* $NetBSD: memmove_chk.c,v 1.5 2014/09/17 00:39:28 joerg Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: memmove_chk.c,v 1.5 2014/09/17 00:39:28 joerg Exp $"); - -/*LINTLIBRARY*/ - -#include -#include - -#undef memmove - -void *__memmove_chk(void *, void *src, size_t, size_t); - -void * -__memmove_chk(void *dst, void *src, size_t len, - size_t slen) -{ - if (len > slen) - __chk_fail(); - return memmove(dst, src, len); -} diff --git a/lib/ssp/mempcpy_chk.c b/lib/ssp/mempcpy_chk.c deleted file mode 100644 index fc2ccf8..0000000 --- a/lib/ssp/mempcpy_chk.c +++ /dev/null @@ -1,21 +0,0 @@ -#define _GNU_SOURCE -#include -#include -#include - -#undef mempcpy - -void *__mempcpy_chk(void * __restrict, const void * __restrict, size_t, size_t); - -void * -__mempcpy_chk(void * __restrict dst, const void * __restrict src, size_t len, - size_t slen) -{ - if (len > slen) - __chk_fail(); - - if (__ssp_overlap((const char *)src, (const char *)dst, len)) - __chk_fail(); - - return mempcpy(dst, src, len); -} diff --git a/lib/ssp/memset_chk.c b/lib/ssp/memset_chk.c deleted file mode 100644 index 0e303b9..0000000 --- a/lib/ssp/memset_chk.c +++ /dev/null @@ -1,49 +0,0 @@ -/* $NetBSD: memset_chk.c,v 1.5 2014/09/17 00:39:28 joerg Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: memset_chk.c,v 1.5 2014/09/17 00:39:28 joerg Exp $"); - -/*LINTLIBRARY*/ - -#include -#include - -#undef memset - -void *__memset_chk(void * __restrict, int, size_t, size_t); - -void * -__memset_chk(void * __restrict dst, int val, size_t len, size_t slen) -{ - if (len > slen) - __chk_fail(); - return memset(dst, val, len); -} diff --git a/lib/ssp/snprintf_chk.c b/lib/ssp/snprintf_chk.c deleted file mode 100644 index cede5a4..0000000 --- a/lib/ssp/snprintf_chk.c +++ /dev/null @@ -1,59 +0,0 @@ -/* $NetBSD: snprintf_chk.c,v 1.5 2008/04/28 20:23:00 martin Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: snprintf_chk.c,v 1.5 2008/04/28 20:23:00 martin Exp $"); - -/*LINTLIBRARY*/ - -#include -#include -#include -#include - -#undef vsnprintf - -/*ARGSUSED*/ -int -__snprintf_chk(char * __restrict buf, size_t len, int flags, size_t slen, - const char * __restrict fmt, ...) -{ - va_list ap; - int rv; - - if (len > slen) - __chk_fail(); - - va_start(ap, fmt); - rv = vsnprintf(buf, len, fmt, ap); - va_end(ap); - - return rv; -} diff --git a/lib/ssp/sprintf_chk.c b/lib/ssp/sprintf_chk.c deleted file mode 100644 index 1e92479..0000000 --- a/lib/ssp/sprintf_chk.c +++ /dev/null @@ -1,63 +0,0 @@ -/* $NetBSD: sprintf_chk.c,v 1.6 2009/02/05 05:40:36 lukem Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: sprintf_chk.c,v 1.6 2009/02/05 05:40:36 lukem Exp $"); - -/*LINTLIBRARY*/ - -#include -#include -#include -#include -#include - -#undef vsnprintf -#undef vsprintf - -int -/*ARGSUSED*/ -__sprintf_chk(char * __restrict buf, int flags, size_t slen, - const char * __restrict fmt, ...) -{ - va_list ap; - int rv; - - va_start(ap, fmt); - if (slen > (size_t)INT_MAX) - rv = vsprintf(buf, fmt, ap); - else { - if ((rv = vsnprintf(buf, slen, fmt, ap)) >= 0 && (size_t)rv >= slen) - __chk_fail(); - } - va_end(ap); - - return rv; -} diff --git a/lib/ssp/ssp.tex b/lib/ssp/ssp.tex deleted file mode 100644 index 9270350..0000000 --- a/lib/ssp/ssp.tex +++ /dev/null @@ -1,57 +0,0 @@ -@node Overflow Protection -@chapter Overflow Protection - -@menu -* Stack Smashing Protection:: Checks enabled with -fstack-protector* -* Object Size Checking:: Checks enabled with _FORTIFY_SOURCE -@end menu - -@node Stack Smashing Protection -@section Stack Smashing Protection -Stack Smashing Protection is a compiler feature which emits extra code -to check for stack smashing attacks. It depends on a canary, which is -initialized with the process, and functions for process termination when -an overflow is detected. These are private entry points intended solely -for use by the compiler, and are used when any of the @code{-fstack-protector}, -@code{-fstack-protector-all}, @code{-fstack-protector-explicit}, or -@code{-fstack-protector-strong} compiler flags are enabled. - -@node Object Size Checking -@section Object Size Checking -Object Size Checking is a feature which wraps certain functions with checks -to prevent buffer overflows. These are enabled when compiling with -optimization (@code{-O1} and higher) and @code{_FORTIFY_SOURCE} defined -to 1, or for stricter checks, to 2. - -@cindex list of overflow protected functions -The following functions use object size checking to detect buffer overflows -when enabled: - -@example -@exdent @emph{String functions:} -bcopy memmove strcpy -bzero mempcpy strcat -explicit_bzero memset strncat -memcpy stpcpy strncpy - -@exdent @emph{Wide Character String functions:} -fgetws wcrtomb wcsrtombs -fgetws_unlocked wcscat wmemcpy -mbsnrtowcs wcscpy wmemmove -mbsrtowcs wcsncat wmempcpy -wcpcpy wcsncpy wmemset -wcpncpy wcsnrtombs - -@exdent @emph{Stdio functions:} -fgets fread_unlocked sprintf -fgets_unlocked gets vsnprintf -fread snprintf vsprintf - -@exdent @emph{Stdlib functions:} -mbstowcs wcstombs wctomb - -@exdent @emph{System functions:} -getcwd read ttyname_r -pread readlink - -@end example diff --git a/lib/ssp/stack_protector.c b/lib/ssp/stack_protector.c deleted file mode 100644 index 5e9d75f..0000000 --- a/lib/ssp/stack_protector.c +++ /dev/null @@ -1,51 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#if defined(__AMDGCN__) || defined(__nvptx__) -/* Global constructors not supported on this target, yet. */ -uintptr_t __stack_chk_guard = 0x00000aff; /* 0, 0, '\n', 255 */ - -#else -uintptr_t __stack_chk_guard = 0; - -void -__attribute__((__constructor__)) -__stack_chk_init (void) -{ - if (__stack_chk_guard != 0) - return; - -#if defined(__CYGWIN__) || defined(__rtems__) - arc4random_buf(&__stack_chk_guard, sizeof(__stack_chk_guard)); -#else - /* If getentropy is not available, use the "terminator canary". */ - ((unsigned char *)&__stack_chk_guard)[0] = 0; - ((unsigned char *)&__stack_chk_guard)[1] = 0; - ((unsigned char *)&__stack_chk_guard)[2] = '\n'; - ((unsigned char *)&__stack_chk_guard)[3] = 255; -#endif -} -#endif - -void -__attribute__((__noreturn__)) -__stack_chk_fail (void) -{ - char msg[] = "*** stack smashing detected ***: terminated\n"; - write (2, msg, strlen (msg)); - raise (SIGABRT); - _exit (127); -} - -#ifdef __ELF__ -void -__attribute__((visibility ("hidden"))) -__stack_chk_fail_local (void) -{ - __stack_chk_fail(); -} -#endif diff --git a/lib/ssp/stpcpy_chk.c b/lib/ssp/stpcpy_chk.c deleted file mode 100644 index ed1d74a..0000000 --- a/lib/ssp/stpcpy_chk.c +++ /dev/null @@ -1,58 +0,0 @@ -/* $NetBSD: stpcpy_chk.c,v 1.6 2015/05/09 15:42:21 christos Exp $ */ - -/*- - * Copyright (c) 2013 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: stpcpy_chk.c,v 1.6 2015/05/09 15:42:21 christos Exp $"); - -/*LINTLIBRARY*/ - -#include -#include - -#undef memcpy - -#if !__GNUC_PREREQ__(4, 8) -char *__stpcpy_chk(char * __restrict, const char * __restrict, size_t); -#endif - -char * -__stpcpy_chk(char * __restrict dst, const char * __restrict src, size_t slen) -{ - size_t len = strlen(src); - - if (len >= slen) - __chk_fail(); - - if (__ssp_overlap(src, dst, len)) - __chk_fail(); - - (void)memcpy(dst, src, len + 1); - return dst + len; -} diff --git a/lib/ssp/stpncpy_chk.c b/lib/ssp/stpncpy_chk.c deleted file mode 100644 index 7566261..0000000 --- a/lib/ssp/stpncpy_chk.c +++ /dev/null @@ -1,56 +0,0 @@ -/* $NetBSD: stpncpy_chk.c,v 1.3 2015/05/09 15:42:21 christos Exp $ */ - -/*- - * Copyright (c) 2013 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: stpncpy_chk.c,v 1.3 2015/05/09 15:42:21 christos Exp $"); - -/*LINTLIBRARY*/ - -#include -#include - -#undef stpncpy - -#if !__GNUC_PREREQ__(4, 8) -char *__stpncpy_chk(char * __restrict, const char * __restrict, size_t, size_t); -#endif - -char * -__stpncpy_chk(char * __restrict dst, const char * __restrict src, size_t len, - size_t slen) -{ - if (len > slen) - __chk_fail(); - - if (__ssp_overlap(src, dst, len)) - __chk_fail(); - - return stpncpy(dst, src, len); -} diff --git a/lib/ssp/strcat_chk.c b/lib/ssp/strcat_chk.c deleted file mode 100644 index d57f955..0000000 --- a/lib/ssp/strcat_chk.c +++ /dev/null @@ -1,62 +0,0 @@ -/* $NetBSD: strcat_chk.c,v 1.5 2014/09/17 00:39:28 joerg Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: strcat_chk.c,v 1.5 2014/09/17 00:39:28 joerg Exp $"); - -/*LINTLIBRARY*/ - -#include -#include - -char *__strcat_chk(char * __restrict, const char * __restrict, size_t); - -char * -__strcat_chk(char * __restrict dst, const char * __restrict src, size_t slen) -{ - char *d; - - for (d = dst; *d; d++) { - if (slen-- == 0) - __chk_fail(); - } - - while (*src) { - if (slen-- == 0) - __chk_fail(); - *d++ = *src++; - } - - if (slen-- == 0) - __chk_fail(); - - *d = '\0'; - return dst; -} diff --git a/lib/ssp/strcpy_chk.c b/lib/ssp/strcpy_chk.c deleted file mode 100644 index cef160a..0000000 --- a/lib/ssp/strcpy_chk.c +++ /dev/null @@ -1,55 +0,0 @@ -/* $NetBSD: strcpy_chk.c,v 1.8 2015/05/09 15:42:21 christos Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: strcpy_chk.c,v 1.8 2015/05/09 15:42:21 christos Exp $"); - -/*LINTLIBRARY*/ - -#include -#include - -#undef memcpy - -char *__strcpy_chk(char * __restrict, const char * __restrict, size_t); - -char * -__strcpy_chk(char * __restrict dst, const char * __restrict src, size_t slen) -{ - size_t len = strlen(src) + 1; - - if (len > slen) - __chk_fail(); - - if (__ssp_overlap(src, dst, len)) - __chk_fail(); - - return memcpy(dst, src, len); -} diff --git a/lib/ssp/strncat_chk.c b/lib/ssp/strncat_chk.c deleted file mode 100644 index 5ce5a9e..0000000 --- a/lib/ssp/strncat_chk.c +++ /dev/null @@ -1,73 +0,0 @@ -/* $NetBSD: strncat_chk.c,v 1.5 2014/09/17 00:39:28 joerg Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: strncat_chk.c,v 1.5 2014/09/17 00:39:28 joerg Exp $"); - -/*LINTLIBRARY*/ - -#include -#include -#include - -char *__strncat_chk(char * __restrict, const char * __restrict, size_t, - size_t); - -char * -__strncat_chk(char * __restrict dst, const char * __restrict src, size_t len, - size_t slen) -{ - char *d; - - if (len == 0) - return dst; - - if (len > slen) - __chk_fail(); - - for (d = dst; *d; d++) { - if (slen-- == 0) - __chk_fail(); - } - - do { - if ((*d = *src++) == '\0') - break; - if (slen-- == 0) - __chk_fail(); - d++; - } while (--len != 0); - - if (slen-- == 0) - __chk_fail(); - - *d = '\0'; - return dst; -} diff --git a/lib/ssp/strncpy_chk.c b/lib/ssp/strncpy_chk.c deleted file mode 100644 index 591157a..0000000 --- a/lib/ssp/strncpy_chk.c +++ /dev/null @@ -1,55 +0,0 @@ -/* $NetBSD: strncpy_chk.c,v 1.6 2015/05/09 15:42:21 christos Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: strncpy_chk.c,v 1.6 2015/05/09 15:42:21 christos Exp $"); - -/*LINTLIBRARY*/ - -#include -#include - -#undef strncpy - -char *__strncpy_chk(char * __restrict, const char * __restrict, size_t, - size_t); - -char * -__strncpy_chk(char * __restrict dst, const char * __restrict src, size_t len, - size_t slen) -{ - if (len > slen) - __chk_fail(); - - if (__ssp_overlap(src, dst, len)) - __chk_fail(); - - return strncpy(dst, src, len); -} diff --git a/lib/ssp/vsnprintf_chk.c b/lib/ssp/vsnprintf_chk.c deleted file mode 100644 index 2b88029..0000000 --- a/lib/ssp/vsnprintf_chk.c +++ /dev/null @@ -1,51 +0,0 @@ -/* $NetBSD: vsnprintf_chk.c,v 1.5 2008/04/28 20:23:00 martin Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: vsnprintf_chk.c,v 1.5 2008/04/28 20:23:00 martin Exp $"); - -/*LINTLIBRARY*/ - -#include -#include -#include -#include - -#undef vsnprintf - -int -__vsnprintf_chk(char * __restrict buf, size_t len, int flags, size_t slen, - const char * __restrict fmt, va_list ap) -{ - if (len > slen) - __chk_fail(); - - return vsnprintf(buf, len, fmt, ap); -} diff --git a/lib/ssp/vsprintf_chk.c b/lib/ssp/vsprintf_chk.c deleted file mode 100644 index fec8a18..0000000 --- a/lib/ssp/vsprintf_chk.c +++ /dev/null @@ -1,60 +0,0 @@ -/* $NetBSD: vsprintf_chk.c,v 1.6 2009/02/05 05:39:38 lukem Exp $ */ - -/*- - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include -__RCSID("$NetBSD: vsprintf_chk.c,v 1.6 2009/02/05 05:39:38 lukem Exp $"); - -/*LINTLIBRARY*/ - -#include -#include -#include -#include -#include - -#undef vsprintf -#undef vsnprintf - -/*ARGSUSED*/ -int -__vsprintf_chk(char * __restrict buf, int flags, size_t slen, - const char * __restrict fmt, va_list ap) -{ - int rv; - - if (slen > (size_t)INT_MAX) - rv = vsprintf(buf, fmt, ap); - else { - if ((rv = vsnprintf(buf, slen, fmt, ap)) >= 0 && (size_t)rv >= slen) - __chk_fail(); - } - - return rv; -} diff --git a/lib/stdio/Makefile.inc b/lib/stdio/Makefile.inc deleted file mode 100644 index 2126cea..0000000 --- a/lib/stdio/Makefile.inc +++ /dev/null @@ -1,285 +0,0 @@ -if HAVE_STDIO_DIR - -if NEWLIB_NANO_FORMATTED_IO -libc_a_SOURCES += \ - %D%/nano-vfprintf_float.c \ - %D%/nano-svfprintf.c \ - %D%/nano-svfscanf.c \ - %D%/nano-vfprintf.c \ - %D%/nano-vfprintf_i.c \ - %D%/nano-vfscanf.c \ - %D%/nano-vfscanf_i.c \ - %D%/nano-vfscanf_float.c -else -libc_a_SOURCES += \ - %D%/fiprintf.c \ - %D%/fiscanf.c \ - %D%/iprintf.c \ - %D%/iscanf.c \ - %D%/siprintf.c \ - %D%/siscanf.c \ - %D%/sniprintf.c \ - %D%/svfiprintf.c \ - %D%/svfiscanf.c \ - %D%/svfprintf.c \ - %D%/svfscanf.c \ - %D%/vdiprintf.c \ - %D%/vfprintf.c \ - %D%/vfiprintf.c \ - %D%/vfiscanf.c \ - %D%/vfscanf.c \ - %D%/vfwprintf.c \ - %D%/viprintf.c \ - %D%/viscanf.c \ - %D%/vsiprintf.c \ - %D%/vsiscanf.c \ - %D%/vsniprintf.c -endif - -libc_a_SOURCES += \ - %D%/clearerr.c \ - %D%/fclose.c \ - %D%/fdopen.c \ - %D%/feof.c \ - %D%/ferror.c \ - %D%/fflush.c \ - %D%/fgetc.c \ - %D%/fgetpos.c \ - %D%/fgets.c \ - %D%/fileno.c \ - %D%/findfp.c \ - %D%/flags.c \ - %D%/fopen.c \ - %D%/fprintf.c \ - %D%/fputc.c \ - %D%/fputs.c \ - %D%/fread.c \ - %D%/freopen.c \ - %D%/fscanf.c \ - %D%/fseek.c \ - %D%/fsetpos.c \ - %D%/ftell.c \ - %D%/fvwrite.c \ - %D%/fwalk.c \ - %D%/fwrite.c \ - %D%/getc.c \ - %D%/getchar.c \ - %D%/getc_u.c \ - %D%/getchar_u.c \ - %D%/getdelim.c \ - %D%/getline.c \ - %D%/gets.c \ - %D%/makebuf.c \ - %D%/perror.c \ - %D%/printf.c \ - %D%/putc.c \ - %D%/putchar.c \ - %D%/putc_u.c \ - %D%/putchar_u.c \ - %D%/puts.c \ - %D%/refill.c \ - %D%/remove.c \ - %D%/rename.c \ - %D%/rewind.c \ - %D%/rget.c \ - %D%/scanf.c \ - %D%/sccl.c \ - %D%/setbuf.c \ - %D%/setbuffer.c \ - %D%/setlinebuf.c \ - %D%/setvbuf.c \ - %D%/snprintf.c \ - %D%/sprintf.c \ - %D%/sscanf.c \ - %D%/stdio.c \ - %D%/svfiwprintf.c \ - %D%/svfiwscanf.c \ - %D%/svfwprintf.c \ - %D%/svfwscanf.c \ - %D%/tmpfile.c \ - %D%/tmpnam.c \ - %D%/ungetc.c \ - %D%/vdprintf.c \ - %D%/vfiwprintf.c \ - %D%/vfiwscanf.c \ - %D%/vfwscanf.c \ - %D%/vprintf.c \ - %D%/vscanf.c \ - %D%/vsnprintf.c \ - %D%/vsprintf.c \ - %D%/vsscanf.c \ - %D%/wbuf.c \ - %D%/wsetup.c - -## The following are EL/IX level 2 interfaces -if !ELIX_LEVEL_1 -%C%_ELIX_2_SOURCES = \ - %D%/asprintf.c \ - %D%/fcloseall.c \ - %D%/fseeko.c \ - %D%/ftello.c \ - %D%/getw.c \ - %D%/mktemp.c \ - %D%/putw.c \ - %D%/vasprintf.c -if !NEWLIB_NANO_FORMATTED_IO -%C%_ELIX_2_SOURCES += \ - %D%/asiprintf.c \ - %D%/vasiprintf.c -endif !NEWLIB_NANO_FORMATTED_IO -endif !ELIX_LEVEL_1 - -## The following are EL/IX level 2 interfaces -if ELIX_LEVEL_1 -%C%_ELIX_4_SOURCES = -else -if ELIX_LEVEL_2 -%C%_ELIX_4_SOURCES = -else -if ELIX_LEVEL_3 -%C%_ELIX_4_SOURCES = -else -%C%_ELIX_4_SOURCES = \ - %D%/asnprintf.c \ - %D%/clearerr_u.c \ - %D%/dprintf.c \ - %D%/feof_u.c \ - %D%/ferror_u.c \ - %D%/fflush_u.c \ - %D%/fgetc_u.c \ - %D%/fgets_u.c \ - %D%/fgetwc.c \ - %D%/fgetwc_u.c \ - %D%/fgetws.c \ - %D%/fgetws_u.c \ - %D%/fileno_u.c \ - %D%/fmemopen.c \ - %D%/fopencookie.c \ - %D%/fpurge.c \ - %D%/fputc_u.c \ - %D%/fputs_u.c \ - %D%/fputwc.c \ - %D%/fputwc_u.c \ - %D%/fputws.c \ - %D%/fputws_u.c \ - %D%/fread_u.c \ - %D%/fsetlocking.c \ - %D%/funopen.c \ - %D%/fwide.c \ - %D%/fwprintf.c \ - %D%/fwrite_u.c \ - %D%/fwscanf.c \ - %D%/getwc.c \ - %D%/getwc_u.c \ - %D%/getwchar.c \ - %D%/getwchar_u.c \ - %D%/open_memstream.c \ - %D%/putwc.c \ - %D%/putwc_u.c \ - %D%/putwchar.c \ - %D%/putwchar_u.c \ - %D%/stdio_ext.c \ - %D%/swprintf.c \ - %D%/swscanf.c \ - %D%/ungetwc.c \ - %D%/vasnprintf.c \ - %D%/vswprintf.c \ - %D%/vswscanf.c \ - %D%/vwprintf.c \ - %D%/vwscanf.c \ - %D%/wprintf.c \ - %D%/wscanf.c -if !NEWLIB_NANO_FORMATTED_IO -%C%_ELIX_4_SOURCES += \ - %D%/asniprintf.c \ - %D%/diprintf.c \ - %D%/vasniprintf.c -endif !NEWLIB_NANO_FORMATTED_IO -endif !ELIX_LEVEL_3 -endif !ELIX_LEVEL_2 -endif !ELIX_LEVEL_1 - -libc_a_SOURCES += $(%C%_ELIX_2_SOURCES) $(%C%_ELIX_4_SOURCES) - -endif - -LIBC_CHEWOUT_FILES += \ - %D%/clearerr.def \ - %D%/diprintf.def \ - %D%/dprintf.def \ - %D%/fcloseall.def \ - %D%/fclose.def \ - %D%/fdopen.def \ - %D%/feof.def \ - %D%/ferror.def \ - %D%/fflush.def \ - %D%/fgetc.def \ - %D%/fgetpos.def \ - %D%/fgets.def \ - %D%/fgetwc.def \ - %D%/fgetws.def \ - %D%/fileno.def \ - %D%/fmemopen.def \ - %D%/fopen.def \ - %D%/fopencookie.def \ - %D%/fpurge.def \ - %D%/fputc.def \ - %D%/fputs.def \ - %D%/fputwc.def \ - %D%/fputws.def \ - %D%/fread.def \ - %D%/freopen.def \ - %D%/fseek.def \ - %D%/fsetlocking.def \ - %D%/fsetpos.def \ - %D%/ftell.def \ - %D%/funopen.def \ - %D%/fwide.def \ - %D%/fwrite.def \ - %D%/getc.def \ - %D%/getc_u.def \ - %D%/getchar.def \ - %D%/getchar_u.def \ - %D%/getdelim.def \ - %D%/getline.def \ - %D%/gets.def \ - %D%/getw.def \ - %D%/getwchar.def \ - %D%/mktemp.def \ - %D%/nano-vfprintf.def \ - %D%/nano-vfscanf.def \ - %D%/open_memstream.def \ - %D%/perror.def \ - %D%/putc.def \ - %D%/putc_u.def \ - %D%/putchar.def \ - %D%/putchar_u.def \ - %D%/puts.def \ - %D%/putw.def \ - %D%/putwchar.def \ - %D%/remove.def \ - %D%/rename.def \ - %D%/rewind.def \ - %D%/setbuf.def \ - %D%/setbuffer.def \ - %D%/setlinebuf.def \ - %D%/setvbuf.def \ - %D%/siprintf.def \ - %D%/siscanf.def \ - %D%/sprintf.def \ - %D%/sscanf.def \ - %D%/stdio_ext.def \ - %D%/swprintf.def \ - %D%/swscanf.def \ - %D%/tmpfile.def \ - %D%/tmpnam.def \ - %D%/ungetc.def \ - %D%/ungetwc.def \ - %D%/vfprintf.def \ - %D%/vfscanf.def \ - %D%/vfwprintf.def \ - %D%/vfwscanf.def \ - %D%/viprintf.def \ - %D%/viscanf.def - -LIBC_CHAPTERS += %D%/stdio.tex diff --git a/lib/stdio/asiprintf.c b/lib/stdio/asiprintf.c deleted file mode 100644 index af25e9a..0000000 --- a/lib/stdio/asiprintf.c +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* This code was copied from asprintf.c */ -/* doc in siprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -int -_asiprintf_r (struct _reent *ptr, - char **strp, - const char *fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - /* mark a zero-length reallocatable buffer */ - f._flags = __SWR | __SSTR | __SMBF; - f._bf._base = f._p = NULL; - f._bf._size = f._w = 0; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfiprintf_r (ptr, &f, fmt, ap); - va_end (ap); - if (ret >= 0) - { - *f._p = 0; - *strp = (char *) f._bf._base; - } - return (ret); -} - -#ifndef _REENT_ONLY - -int -asiprintf (char **strp, - const char *fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - /* mark a zero-length reallocatable buffer */ - f._flags = __SWR | __SSTR | __SMBF; - f._bf._base = f._p = NULL; - f._bf._size = f._w = 0; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfiprintf_r (_REENT, &f, fmt, ap); - va_end (ap); - if (ret >= 0) - { - *f._p = 0; - *strp = (char *) f._bf._base; - } - return (ret); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/asniprintf.c b/lib/stdio/asniprintf.c deleted file mode 100644 index 97e7774..0000000 --- a/lib/stdio/asniprintf.c +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (C) 2007, 2008 Eric Blake - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ -/* This code was derived from asprintf.c */ -/* doc in siprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -char * -_asniprintf_r (struct _reent *ptr, - char *buf, - size_t *lenp, - const char *fmt, ...) -{ - int ret; - va_list ap; - FILE f; - size_t len = *lenp; - - if (buf && len) - { - /* mark an existing buffer, but allow allocation of larger string */ - f._flags = __SWR | __SSTR | __SOPT; - } - else - { - /* mark a zero-length reallocatable buffer */ - f._flags = __SWR | __SSTR | __SMBF; - len = 0; - buf = NULL; - } - f._bf._base = f._p = (unsigned char *) buf; - /* For now, inherit the 32-bit signed limit of FILE._bf._size. - FIXME - it would be nice to rewrite sys/reent.h to support size_t - for _size. */ - if (len > INT_MAX) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - return NULL; - } - f._bf._size = f._w = len; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfiprintf_r (ptr, &f, fmt, ap); - va_end (ap); - if (ret < 0) - return NULL; - *lenp = ret; - *f._p = '\0'; - return (char *) f._bf._base; -} - -#ifndef _REENT_ONLY - -char * -asniprintf (char *buf, - size_t *lenp, - const char *fmt, ...) -{ - int ret; - va_list ap; - FILE f; - size_t len = *lenp; - struct _reent *ptr = _REENT; - - if (buf && len) - { - /* mark an existing buffer, but allow allocation of larger string */ - f._flags = __SWR | __SSTR | __SOPT; - } - else - { - /* mark a zero-length reallocatable buffer */ - f._flags = __SWR | __SSTR | __SMBF; - len = 0; - buf = NULL; - } - f._bf._base = f._p = (unsigned char *) buf; - /* For now, inherit the 32-bit signed limit of FILE._bf._size. - FIXME - it would be nice to rewrite sys/reent.h to support size_t - for _size. */ - if (len > INT_MAX) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - return NULL; - } - f._bf._size = f._w = len; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfiprintf_r (ptr, &f, fmt, ap); - va_end (ap); - if (ret < 0) - return NULL; - *lenp = ret; - *f._p = '\0'; - return (char *) f._bf._base; -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/asnprintf.c b/lib/stdio/asnprintf.c deleted file mode 100644 index f825561..0000000 --- a/lib/stdio/asnprintf.c +++ /dev/null @@ -1,117 +0,0 @@ -/* Copyright (C) 2007, 2008 Eric Blake - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ -/* This code was derived from asprintf.c */ -/* doc in sprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -char * -_asnprintf_r (struct _reent *__restrict ptr, - char *buf, - size_t *lenp, - const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - FILE f; - size_t len = *lenp; - - if (buf && len) - { - /* mark an existing buffer, but allow allocation of larger string */ - f._flags = __SWR | __SSTR | __SOPT; - } - else - { - /* mark a zero-length reallocatable buffer */ - f._flags = __SWR | __SSTR | __SMBF; - len = 0; - buf = NULL; - } - f._bf._base = f._p = (unsigned char *) buf; - /* For now, inherit the 32-bit signed limit of FILE._bf._size. - FIXME - it would be nice to rewrite sys/reent.h to support size_t - for _size. */ - if (len > INT_MAX) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - return NULL; - } - f._bf._size = f._w = len; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfprintf_r (ptr, &f, fmt, ap); - va_end (ap); - if (ret < 0) - return NULL; - *lenp = ret; - *f._p = '\0'; - return (char *) f._bf._base; -} - -#ifdef _NANO_FORMATTED_IO -char * -_asniprintf_r (struct _reent *, char *, size_t *, const char *, ...) - _ATTRIBUTE ((__alias__("_asnprintf_r"))); -#endif - -#ifndef _REENT_ONLY - -char * -asnprintf (char *__restrict buf, - size_t *__restrict lenp, - const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - FILE f; - size_t len = *lenp; - struct _reent *ptr = _REENT; - - if (buf && len) - { - /* mark an existing buffer, but allow allocation of larger string */ - f._flags = __SWR | __SSTR | __SOPT; - } - else - { - /* mark a zero-length reallocatable buffer */ - f._flags = __SWR | __SSTR | __SMBF; - len = 0; - buf = NULL; - } - f._bf._base = f._p = (unsigned char *) buf; - /* For now, inherit the 32-bit signed limit of FILE._bf._size. - FIXME - it would be nice to rewrite sys/reent.h to support size_t - for _size. */ - if (len > INT_MAX) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - return NULL; - } - f._bf._size = f._w = len; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfprintf_r (ptr, &f, fmt, ap); - va_end (ap); - if (ret < 0) - return NULL; - *lenp = ret; - *f._p = '\0'; - return (char *) f._bf._base; -} - -#ifdef _NANO_FORMATTED_IO -char * -asniprintf (char *, size_t *, const char *, ...) - _ATTRIBUTE ((__alias__("asnprintf"))); -#endif -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/asprintf.c b/lib/stdio/asprintf.c deleted file mode 100644 index 542e70e..0000000 --- a/lib/stdio/asprintf.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 1990, 2007 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* This code was copied from sprintf.c */ -/* doc in sprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -int -_asprintf_r (struct _reent *ptr, - char **__restrict strp, - const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - /* mark a zero-length reallocatable buffer */ - f._flags = __SWR | __SSTR | __SMBF; - f._bf._base = f._p = NULL; - f._bf._size = f._w = 0; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfprintf_r (ptr, &f, fmt, ap); - va_end (ap); - if (ret >= 0) - { - *f._p = 0; - *strp = (char *) f._bf._base; - } - return (ret); -} - -#ifdef _NANO_FORMATTED_IO -int -_asiprintf_r (struct _reent *, char **, const char *, ...) - _ATTRIBUTE ((__alias__("_asprintf_r"))); -#endif - -#ifndef _REENT_ONLY - -int -asprintf (char **__restrict strp, - const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - /* mark a zero-length reallocatable buffer */ - f._flags = __SWR | __SSTR | __SMBF; - f._bf._base = f._p = NULL; - f._bf._size = f._w = 0; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfprintf_r (_REENT, &f, fmt, ap); - va_end (ap); - if (ret >= 0) - { - *f._p = 0; - *strp = (char *) f._bf._base; - } - return (ret); -} - -#ifdef _NANO_FORMATTED_IO -int -asiprintf (char **, const char *, ...) - _ATTRIBUTE ((__alias__("asprintf"))); -#endif -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/clearerr.c b/lib/stdio/clearerr.c deleted file mode 100644 index ff08a8b..0000000 --- a/lib/stdio/clearerr.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---clear file or stream error indicator - -INDEX - clearerr -INDEX - clearerr_unlocked - -SYNOPSIS - #include - void clearerr(FILE *<[fp]>); - - #define _BSD_SOURCE - #include - void clearerr_unlocked(FILE *<[fp]>); - -DESCRIPTION -The <> functions maintain an error indicator with each file -pointer <[fp]>, to record whether any read or write errors have -occurred on the associated file or stream. Similarly, it maintains an -end-of-file indicator to record whether there is no more data in the -file. - -Use <> to reset both of these indicators. - -See <> and <> to query the two indicators. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -RETURNS -<> does not return a result. - -PORTABILITY -ANSI C requires <>. - -<> is a BSD extension also provided by GNU libc. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include -#include "local.h" - -/* A subroutine version of the macro clearerr. */ - -#undef clearerr - -void -clearerr (FILE * fp) -{ - CHECK_INIT(_REENT, fp); - _newlib_flockfile_start (fp); - __sclearerr (fp); - _newlib_flockfile_end (fp); -} diff --git a/lib/stdio/clearerr_u.c b/lib/stdio/clearerr_u.c deleted file mode 100644 index 4952f77..0000000 --- a/lib/stdio/clearerr_u.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include -#include "local.h" - -/* A subroutine version of the macro clearerr_unlocked. */ - -#undef clearerr_unlocked - -void -clearerr_unlocked (FILE * fp) -{ - CHECK_INIT(_REENT, fp); - __sclearerr (fp); -} diff --git a/lib/stdio/diprintf.c b/lib/stdio/diprintf.c deleted file mode 100644 index 8ac5835..0000000 --- a/lib/stdio/diprintf.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright (C) 2005, 2007 Shaun Jackman - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -/* -FUNCTION -<>, <>---print to a file descriptor (integer only) - -INDEX - diprintf -INDEX - _diprintf_r -INDEX - vdiprintf -INDEX - _vdiprintf_r - -SYNOPSIS - #include - #include - int diprintf(int <[fd]>, const char *<[format]>, ...); - int vdiprintf(int <[fd]>, const char *<[format]>, va_list <[ap]>); - int _diprintf_r(struct _reent *<[ptr]>, int <[fd]>, - const char *<[format]>, ...); - int _vdiprintf_r(struct _reent *<[ptr]>, int <[fd]>, - const char *<[format]>, va_list <[ap]>); - -DESCRIPTION -<> and <> are similar to <> and <>, -except that only integer format specifiers are processed. - -The functions <<_diprintf_r>> and <<_vdiprintf_r>> are simply -reentrant versions of the functions above. - -RETURNS -Similar to <> and <>. - -PORTABILITY -This set of functions is an integer-only extension, and is not portable. - -Supporting OS subroutines required: <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include - -int -_diprintf_r (struct _reent *ptr, - int fd, - const char *format, ...) -{ - va_list ap; - int n; - - va_start (ap, format); - n = _vdiprintf_r (ptr, fd, format, ap); - va_end (ap); - return n; -} - -#ifndef _REENT_ONLY - -int -diprintf (int fd, - const char *format, ...) -{ - va_list ap; - int n; - - va_start (ap, format); - n = _vdiprintf_r (_REENT, fd, format, ap); - va_end (ap); - return n; -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/dprintf.c b/lib/stdio/dprintf.c deleted file mode 100644 index ae9f86d..0000000 --- a/lib/stdio/dprintf.c +++ /dev/null @@ -1,97 +0,0 @@ -/* Copyright 2005, 2007 Shaun Jackman - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -/* -FUNCTION -<>, <>---print to a file descriptor - -INDEX - dprintf -INDEX - _dprintf_r -INDEX - vdprintf -INDEX - _vdprintf_r - -SYNOPSIS - #include - #include - int dprintf(int <[fd]>, const char *restrict <[format]>, ...); - int vdprintf(int <[fd]>, const char *restrict <[format]>, - va_list <[ap]>); - int _dprintf_r(struct _reent *<[ptr]>, int <[fd]>, - const char *restrict <[format]>, ...); - int _vdprintf_r(struct _reent *<[ptr]>, int <[fd]>, - const char *restrict <[format]>, va_list <[ap]>); - -DESCRIPTION -<> and <> allow printing a format, similarly to -<>, but write to a file descriptor instead of to a <> -stream. - -The functions <<_dprintf_r>> and <<_vdprintf_r>> are simply -reentrant versions of the functions above. - -RETURNS -The return value and errors are exactly as for <>, except that -<> may also be set to <> if the heap is exhausted. - -PORTABILITY -This function is originally a GNU extension in glibc and is not portable. - -Supporting OS subroutines required: <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -int -_dprintf_r (struct _reent *ptr, - int fd, - const char *__restrict format, ...) -{ - va_list ap; - int n; - _REENT_SMALL_CHECK_INIT (ptr); - va_start (ap, format); - n = _vdprintf_r (ptr, fd, format, ap); - va_end (ap); - return n; -} - -#ifdef _NANO_FORMATTED_IO -int -_diprintf_r (struct _reent *, int, const char *, ...) - _ATTRIBUTE ((__alias__("_dprintf_r"))); -#endif - -#ifndef _REENT_ONLY - -int -dprintf (int fd, - const char *__restrict format, ...) -{ - va_list ap; - int n; - struct _reent *ptr = _REENT; - - _REENT_SMALL_CHECK_INIT (ptr); - va_start (ap, format); - n = _vdprintf_r (ptr, fd, format, ap); - va_end (ap); - return n; -} - -#ifdef _NANO_FORMATTED_IO -int -diprintf (int, const char *, ...) - _ATTRIBUTE ((__alias__("dprintf"))); -#endif -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/fclose.c b/lib/stdio/fclose.c deleted file mode 100644 index 983ae2c..0000000 --- a/lib/stdio/fclose.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---close a file - -INDEX - fclose -INDEX - _fclose_r - -SYNOPSIS - #include - int fclose(FILE *<[fp]>); - int _fclose_r(struct _reent *<[reent]>, FILE *<[fp]>); - -DESCRIPTION -If the file or stream identified by <[fp]> is open, <> closes -it, after first ensuring that any pending data is written (by calling -<)>>). - -The alternate function <<_fclose_r>> is a reentrant version. -The extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -<> returns <<0>> if successful (including when <[fp]> is -<> or not an open file); otherwise, it returns <>. - -PORTABILITY -<> is required by ANSI C. - -Required OS subroutines: <>, <>, <>, <>, -<>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -int -_fclose_r (struct _reent *rptr, - register FILE * fp) -{ - int r; - - if (fp == NULL) - return (0); /* on NULL */ - - CHECK_INIT (rptr, fp); - - /* We can't use the _newlib_flockfile_XXX macros here due to the - interlocked locking with the sfp_lock. */ -#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT - int __oldcancel; - pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &__oldcancel); -#endif - if (!(fp->_flags2 & __SNLK)) - _flockfile (fp); - - if (fp->_flags == 0) /* not open! */ - { - if (!(fp->_flags2 & __SNLK)) - _funlockfile (fp); -#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT - pthread_setcancelstate (__oldcancel, &__oldcancel); -#endif - return (0); - } -#ifdef _STDIO_BSD_SEMANTICS - /* BSD and Glibc systems only flush streams which have been written to. */ - r = (fp->_flags & __SWR) ? __sflush_r (rptr, fp) : 0; -#else - /* Follow POSIX semantics exactly. Unconditionally flush to allow - special handling for seekable read files to reposition file to last - byte processed as opposed to last byte read ahead into the buffer. */ - r = __sflush_r (rptr, fp); -#endif - if (fp->_close != NULL && fp->_close (rptr, fp->_cookie) < 0) - r = EOF; - if (fp->_flags & __SMBF) - _free_r (rptr, (char *) fp->_bf._base); - if (HASUB (fp)) - FREEUB (rptr, fp); - if (HASLB (fp)) - FREELB (rptr, fp); - __sfp_lock_acquire (); - fp->_flags = 0; /* release this FILE for reuse */ - if (!(fp->_flags2 & __SNLK)) - _funlockfile (fp); -#ifndef __SINGLE_THREAD__ - __lock_close_recursive (fp->_lock); -#endif - - __sfp_lock_release (); -#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT - pthread_setcancelstate (__oldcancel, &__oldcancel); -#endif - - return (r); -} - -#ifndef _REENT_ONLY - -int -fclose (register FILE * fp) -{ - return _fclose_r(_REENT, fp); -} - -#endif diff --git a/lib/stdio/fcloseall.c b/lib/stdio/fcloseall.c deleted file mode 100644 index e840af2..0000000 --- a/lib/stdio/fcloseall.c +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---close all files - -INDEX - fcloseall -INDEX - _fcloseall_r - -SYNOPSIS - #include - int fcloseall(void); - int _fcloseall_r (struct _reent *<[ptr]>); - -DESCRIPTION -<> closes all files in the current reentrancy struct's domain. -The function <<_fcloseall_r>> is the same function, except the reentrancy -struct is passed in as the <[ptr]> argument. - -This function is not recommended as it closes all streams, including -the std streams. - -RETURNS -<> returns <<0>> if all closes are successful. Otherwise, -EOF is returned. - -PORTABILITY -<> is a glibc extension. - -Required OS subroutines: <>, <>, <>, <>, -<>, <>, <>. -*/ -/* This file based upon fwalk.c. */ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -int -_fcloseall_r (struct _reent *ptr) -{ - /* There are no thread-specific FILE objects */ - return 0; -} - -#ifndef _REENT_ONLY - -int -fcloseall (void) -{ - return _fwalk_sglue (_GLOBAL_REENT, _fclose_r, &__sglue); -} - -#endif diff --git a/lib/stdio/fdopen.c b/lib/stdio/fdopen.c deleted file mode 100644 index 3481154..0000000 --- a/lib/stdio/fdopen.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---turn open file into a stream - -INDEX - fdopen -INDEX - _fdopen_r - -SYNOPSIS - #include - FILE *fdopen(int <[fd]>, const char *<[mode]>); - FILE *_fdopen_r(struct _reent *<[reent]>, - int <[fd]>, const char *<[mode]>); - -DESCRIPTION -<> produces a file descriptor of type <>, from a -descriptor for an already-open file (returned, for example, by the -system subroutine <> rather than by <>). -The <[mode]> argument has the same meanings as in <>. - -RETURNS -File pointer or <>, as for <>. - -PORTABILITY -<> is ANSI. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" -#include <_syslist.h> - -FILE * -_fdopen_r (struct _reent *ptr, - int fd, - const char *mode) -{ - register FILE *fp; - int flags, oflags; -#ifdef HAVE_FCNTL - int fdflags, fdmode; -#endif - - if ((flags = __sflags (ptr, mode, &oflags)) == 0) - return 0; - - /* make sure the mode the user wants is a subset of the actual mode */ -#ifdef HAVE_FCNTL - if ((fdflags = _fcntl_r (ptr, fd, F_GETFL, 0)) < 0) - return 0; - fdmode = fdflags & O_ACCMODE; - if (fdmode != O_RDWR && (fdmode != (oflags & O_ACCMODE))) - { - _REENT_ERRNO(ptr) = EBADF; - return 0; - } -#endif - - if ((fp = __sfp (ptr)) == 0) - return 0; - - _newlib_flockfile_start (fp); - - fp->_flags = flags; - /* POSIX recommends setting the O_APPEND bit on fd to match append - streams. Someone may later clear O_APPEND on fileno(fp), but the - stream must still remain in append mode. Rely on __sflags - setting __SAPP properly. */ -#ifdef HAVE_FCNTL - if ((oflags & O_APPEND) && !(fdflags & O_APPEND)) - _fcntl_r (ptr, fd, F_SETFL, fdflags | O_APPEND); -#endif - fp->_file = fd; - fp->_cookie = (void *) fp; - -#undef _read -#undef _write -#undef _seek -#undef _close - - fp->_read = __sread; - fp->_write = __swrite; - fp->_seek = __sseek; - fp->_close = __sclose; - -#ifdef __SCLE - /* Explicit given mode results in explicit setting mode on fd */ - if (oflags & O_BINARY) - setmode (fp->_file, O_BINARY); - else if (oflags & O_TEXT) - setmode (fp->_file, O_TEXT); - if (__stextmode (fp->_file)) - fp->_flags |= __SCLE; -#endif - - _newlib_flockfile_end (fp); - return fp; -} - -#ifndef _REENT_ONLY - -FILE * -fdopen (int fd, - const char *mode) -{ - return _fdopen_r (_REENT, fd, mode); -} - -#endif diff --git a/lib/stdio/feof.c b/lib/stdio/feof.c deleted file mode 100644 index 674986b..0000000 --- a/lib/stdio/feof.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---test for end of file - -INDEX - feof -INDEX - feof_unlocked - -SYNOPSIS - #include - int feof(FILE *<[fp]>); - - #define _BSD_SOURCE - #include - int feof_unlocked(FILE *<[fp]>); - -DESCRIPTION -<> tests whether or not the end of the file identified by <[fp]> -has been reached. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -RETURNS -<> returns <<0>> if the end of file has not yet been reached; if -at end of file, the result is nonzero. - -PORTABILITY -<> is required by ANSI C. - -<> is a BSD extension also provided by GNU libc. - -No supporting OS subroutines are required. -*/ - -#include -#include "local.h" - -/* A subroutine version of the macro feof. */ - -#undef feof - -int -feof (FILE * fp) -{ - int result; - CHECK_INIT(_REENT, fp); - _newlib_flockfile_start (fp); - result = __sfeof (fp); - _newlib_flockfile_end (fp); - return result; -} diff --git a/lib/stdio/feof_u.c b/lib/stdio/feof_u.c deleted file mode 100644 index e9238e1..0000000 --- a/lib/stdio/feof_u.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include "local.h" - -/* A subroutine version of the macro feof_unlocked. */ - -#undef feof_unlocked - -int -feof_unlocked (FILE * fp) -{ - CHECK_INIT(_REENT, fp); - return __sfeof (fp); -} diff --git a/lib/stdio/ferror.c b/lib/stdio/ferror.c deleted file mode 100644 index dc4d830..0000000 --- a/lib/stdio/ferror.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---test whether read/write error has occurred - -INDEX - ferror -INDEX - ferror_unlocked - -SYNOPSIS - #include - int ferror(FILE *<[fp]>); - - #define _BSD_SOURCE - #include - int ferror_unlocked(FILE *<[fp]>); - -DESCRIPTION -The <> functions maintain an error indicator with each file -pointer <[fp]>, to record whether any read or write errors have -occurred on the associated file or stream. -Use <> to query this indicator. - -See <> to reset the error indicator. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -RETURNS -<> returns <<0>> if no errors have occurred; it returns a -nonzero value otherwise. - -PORTABILITY -ANSI C requires <>. - -<> is a BSD extension also provided by GNU libc. - -No supporting OS subroutines are required. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include "local.h" - -/* A subroutine version of the macro ferror. */ - -#undef ferror - -int -ferror (FILE * fp) -{ - int result; - CHECK_INIT(_REENT, fp); - _newlib_flockfile_start (fp); - result = __sferror (fp); - _newlib_flockfile_end (fp); - return result; -} diff --git a/lib/stdio/ferror_u.c b/lib/stdio/ferror_u.c deleted file mode 100644 index ae1e278..0000000 --- a/lib/stdio/ferror_u.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include -#include "local.h" - -/* A subroutine version of the macro ferror_unlocked. */ - -#undef ferror_unlocked - -int -ferror_unlocked (FILE * fp) -{ - CHECK_INIT(_REENT, fp); - return __sferror (fp); -} diff --git a/lib/stdio/fflush.c b/lib/stdio/fflush.c deleted file mode 100644 index d51e901..0000000 --- a/lib/stdio/fflush.c +++ /dev/null @@ -1,294 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---flush buffered file output - -INDEX - fflush -INDEX - fflush_unlocked -INDEX - _fflush_r -INDEX - _fflush_unlocked_r - -SYNOPSIS - #include - int fflush(FILE *<[fp]>); - - #define _BSD_SOURCE - #include - int fflush_unlocked(FILE *<[fp]>); - - #include - int _fflush_r(struct _reent *<[reent]>, FILE *<[fp]>); - - #define _BSD_SOURCE - #include - int _fflush_unlocked_r(struct _reent *<[reent]>, FILE *<[fp]>); - -DESCRIPTION -The <> output functions can buffer output before delivering it -to the host system, in order to minimize the overhead of system calls. - -Use <> to deliver any such pending output (for the file -or stream identified by <[fp]>) to the host system. - -If <[fp]> is <>, <> delivers pending output from all -open files. - -Additionally, if <[fp]> is a seekable input stream visiting a file -descriptor, set the position of the file descriptor to match next -unread byte, useful for obeying POSIX semantics when ending a process -without consuming all input from the stream. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -The alternate functions <<_fflush_r>> and <<_fflush_unlocked_r>> are -reentrant versions, where the extra argument <[reent]> is a pointer to -a reentrancy structure, and <[fp]> must not be NULL. - -RETURNS -<> returns <<0>> unless it encounters a write error; in that -situation, it returns <>. - -PORTABILITY -ANSI C requires <>. The behavior on input streams is only -specified by POSIX, and not all implementations follow POSIX rules. - -<> is a BSD extension also provided by GNU libc. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include -#include -#include "local.h" - -#ifdef __IMPL_UNLOCKED__ -#define _fflush_r _fflush_unlocked_r -#define fflush fflush_unlocked -#endif - -#ifndef __IMPL_UNLOCKED__ -/* Flush a single file, or (if fp is NULL) all files. */ - -/* Core function which does not lock file pointer. This gets called - directly from __srefill. */ -int -__sflush_r (struct _reent *ptr, - register FILE * fp) -{ - register unsigned char *p; - register _READ_WRITE_BUFSIZE_TYPE n; - register _READ_WRITE_RETURN_TYPE t; - short flags; - - flags = fp->_flags; - if ((flags & __SWR) == 0) - { -#ifdef _FSEEK_OPTIMIZATION - /* For a read stream, an fflush causes the next seek to be - unoptimized (i.e. forces a system-level seek). This conforms - to the POSIX and SUSv3 standards. */ - fp->_flags |= __SNPT; -#endif - - /* For a seekable stream with buffered read characters, we will attempt - a seek to the current position now. A subsequent read will then get - the next byte from the file rather than the buffer. This conforms - to the POSIX and SUSv3 standards. Note that the standards allow - this seek to be deferred until necessary, but we choose to do it here - to make the change simpler, more contained, and less likely - to miss a code scenario. */ - if ((fp->_r > 0 || fp->_ur > 0) && fp->_seek != NULL) - { - int tmp_errno; -#ifdef __LARGE64_FILES - _fpos64_t curoff; -#else - _fpos_t curoff; -#endif - - /* Save last errno and set errno to 0, so we can check if a device - returns with a valid position -1. We restore the last errno if - no other error condition has been encountered. */ - tmp_errno = _REENT_ERRNO(ptr); - _REENT_ERRNO(ptr) = 0; - /* Get the physical position we are at in the file. */ - if (fp->_flags & __SOFF) - curoff = fp->_offset; - else - { - /* We don't know current physical offset, so ask for it. - Only ESPIPE and EINVAL are ignorable. */ -#ifdef __LARGE64_FILES - if (fp->_flags & __SL64) - curoff = fp->_seek64 (ptr, fp->_cookie, 0, SEEK_CUR); - else -#endif - curoff = fp->_seek (ptr, fp->_cookie, 0, SEEK_CUR); - if (curoff == -1L && _REENT_ERRNO(ptr) != 0) - { - int result = EOF; - if (_REENT_ERRNO(ptr) == ESPIPE || _REENT_ERRNO(ptr) == EINVAL) - { - result = 0; - _REENT_ERRNO(ptr) = tmp_errno; - } - else - fp->_flags |= __SERR; - return result; - } - } - if (fp->_flags & __SRD) - { - /* Current offset is at end of buffer. Compensate for - characters not yet read. */ - curoff -= fp->_r; - if (HASUB (fp)) - curoff -= fp->_ur; - } - /* Now physically seek to after byte last read. */ -#ifdef __LARGE64_FILES - if (fp->_flags & __SL64) - curoff = fp->_seek64 (ptr, fp->_cookie, curoff, SEEK_SET); - else -#endif - curoff = fp->_seek (ptr, fp->_cookie, curoff, SEEK_SET); - if (curoff != -1 || _REENT_ERRNO(ptr) == 0 - || _REENT_ERRNO(ptr) == ESPIPE || _REENT_ERRNO(ptr) == EINVAL) - { - /* Seek successful or ignorable error condition. - We can clear read buffer now. */ -#ifdef _FSEEK_OPTIMIZATION - fp->_flags &= ~__SNPT; -#endif - fp->_r = 0; - fp->_p = fp->_bf._base; - if ((fp->_flags & __SOFF) && (curoff != -1 || _REENT_ERRNO(ptr) == 0)) - fp->_offset = curoff; - _REENT_ERRNO(ptr) = tmp_errno; - if (HASUB (fp)) - FREEUB (ptr, fp); - } - else - { - fp->_flags |= __SERR; - return EOF; - } - } - return 0; - } - if ((p = fp->_bf._base) == NULL) - { - /* Nothing to flush. */ - return 0; - } - n = fp->_p - p; /* write this much */ - - /* - * Set these immediately to avoid problems with longjmp - * and to allow exchange buffering (via setvbuf) in user - * write function. - */ - fp->_p = p; - fp->_w = flags & (__SLBF | __SNBF) ? 0 : fp->_bf._size; - - while (n > 0) - { - t = fp->_write (ptr, fp->_cookie, (char *) p, n); - if (t <= 0) - { - fp->_flags |= __SERR; - return EOF; - } - p += t; - n -= t; - } - return 0; -} - -#ifdef _STDIO_BSD_SEMANTICS -/* Called from cleanup_stdio(). At exit time, we don't need file locking, - and we don't want to move the underlying file pointer unless we're - writing. */ -int -__sflushw_r (struct _reent *ptr, - register FILE *fp) -{ - return (fp->_flags & __SWR) ? __sflush_r (ptr, fp) : 0; -} -#endif - -#endif /* __IMPL_UNLOCKED__ */ - -int -_fflush_r (struct _reent *ptr, - register FILE * fp) -{ - int ret; - -#ifdef _REENT_SMALL - /* For REENT_SMALL platforms, it is possible we are being - called for the first time on a std stream. This std - stream can belong to a reentrant struct that is not - _REENT. If CHECK_INIT gets called below based on _REENT, - we will end up changing said file pointers to the equivalent - std stream off of _REENT. This causes unexpected behavior if - there is any data to flush on the _REENT std stream. There - are two alternatives to fix this: 1) make a reentrant fflush - or 2) simply recognize that this file has nothing to flush - and return immediately before performing a CHECK_INIT. Choice - 2 is implemented here due to its simplicity. */ - if (fp->_bf._base == NULL) - return 0; -#endif /* _REENT_SMALL */ - - CHECK_INIT (ptr, fp); - - if (!fp->_flags) - return 0; - - _newlib_flockfile_start (fp); - ret = __sflush_r (ptr, fp); - _newlib_flockfile_end (fp); - return ret; -} - -#ifndef _REENT_ONLY - -int -fflush (register FILE * fp) -{ - if (fp == NULL) - return _fwalk_sglue (_GLOBAL_REENT, _fflush_r, &__sglue); - - return _fflush_r (_REENT, fp); -} - -#endif /* _REENT_ONLY */ diff --git a/lib/stdio/fflush_u.c b/lib/stdio/fflush_u.c deleted file mode 100644 index adcc460..0000000 --- a/lib/stdio/fflush_u.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define __IMPL_UNLOCKED__ -#include "fflush.c" diff --git a/lib/stdio/fgetc.c b/lib/stdio/fgetc.c deleted file mode 100644 index 21a6a9d..0000000 --- a/lib/stdio/fgetc.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---get a character from a file or stream - -INDEX - fgetc -INDEX - fgetc_unlocked -INDEX - _fgetc_r -INDEX - _fgetc_unlocked_r - -SYNOPSIS - #include - int fgetc(FILE *<[fp]>); - - #define _BSD_SOURCE - #include - int fgetc_unlocked(FILE *<[fp]>); - - #include - int _fgetc_r(struct _reent *<[ptr]>, FILE *<[fp]>); - - #define _BSD_SOURCE - #include - int _fgetc_unlocked_r(struct _reent *<[ptr]>, FILE *<[fp]>); - -DESCRIPTION -Use <> to get the next single character from the file or stream -identified by <[fp]>. As a side effect, <> advances the file's -current position indicator. - -For a macro version of this function, see <>. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -The functions <<_fgetc_r>> and <<_fgetc_unlocked_r>> are simply reentrant -versions that are passed the additional reentrant structure pointer -argument: <[ptr]>. - -RETURNS -The next character (read as an <>, and cast to -<>), unless there is no more data, or the host system reports a -read error; in either of these situations, <> returns <>. - -You can distinguish the two situations that cause an <> result by -using the <> and <> functions. - -PORTABILITY -ANSI C requires <>. - -<> is a BSD extension also provided by GNU libc. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include "local.h" - -int -_fgetc_r (struct _reent * ptr, - FILE * fp) -{ - int result; - CHECK_INIT(ptr, fp); - _newlib_flockfile_start (fp); - result = __sgetc_r (ptr, fp); - _newlib_flockfile_end (fp); - return result; -} - -#ifndef _REENT_ONLY - -int -fgetc (FILE * fp) -{ -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) - int result; - struct _reent *reent = _REENT; - - CHECK_INIT(reent, fp); - _newlib_flockfile_start (fp); - result = __sgetc_r (reent, fp); - _newlib_flockfile_end (fp); - return result; -#else - return _fgetc_r (_REENT, fp); -#endif -} - -#endif /* !_REENT_ONLY */ - diff --git a/lib/stdio/fgetc_u.c b/lib/stdio/fgetc_u.c deleted file mode 100644 index 9a5719c..0000000 --- a/lib/stdio/fgetc_u.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include -#include "local.h" - -int -_fgetc_unlocked_r (struct _reent * ptr, - FILE * fp) -{ - CHECK_INIT(ptr, fp); - return __sgetc_r (ptr, fp); -} - -#ifndef _REENT_ONLY - -int -fgetc_unlocked (FILE * fp) -{ -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) - struct _reent *reent = _REENT; - - CHECK_INIT(reent, fp); - return __sgetc_r (reent, fp); -#else - return _fgetc_unlocked_r (_REENT, fp); -#endif -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/fgetpos.c b/lib/stdio/fgetpos.c deleted file mode 100644 index ba92730..0000000 --- a/lib/stdio/fgetpos.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---record position in a stream or file - -INDEX - fgetpos -INDEX - _fgetpos_r - -SYNOPSIS - #include - int fgetpos(FILE *restrict <[fp]>, fpos_t *restrict <[pos]>); - int _fgetpos_r(struct _reent *<[ptr]>, FILE *restrict <[fp]>, fpos_t *restrict <[pos]>); - -DESCRIPTION -Objects of type <> can have a ``position'' that records how much -of the file your program has already read. Many of the <> functions -depend on this position, and many change it as a side effect. - -You can use <> to report on the current position for a file -identified by <[fp]>; <> will write a value -representing that position at <<*<[pos]>>>. Later, you can -use this value with <> to return the file to this -position. - -In the current implementation, <> simply uses a character -count to represent the file position; this is the same number that -would be returned by <>. - -RETURNS -<> returns <<0>> when successful. If <> fails, the -result is <<1>>. Failure occurs on streams that do not support -positioning; the global <> indicates this condition with the -value <>. - -PORTABILITY -<> is required by the ANSI C standard, but the meaning of the -value it records is not specified beyond requiring that it be -acceptable as an argument to <>. In particular, other -conforming C implementations may return a different result from -<> than what <> writes at <<*<[pos]>>>. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include -#include - -int -_fgetpos_r (struct _reent * ptr, - FILE *__restrict fp, - _fpos_t *__restrict pos) -{ - *pos = _ftell_r (ptr, fp); - - if (*pos != -1) - { - return 0; - } - return 1; -} - -#ifndef _REENT_ONLY - -int -fgetpos (FILE *__restrict fp, - _fpos_t *__restrict pos) -{ - return _fgetpos_r (_REENT, fp, pos); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/fgets.c b/lib/stdio/fgets.c deleted file mode 100644 index 96a44a7..0000000 --- a/lib/stdio/fgets.c +++ /dev/null @@ -1,198 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---get character string from a file or stream - -INDEX - fgets -INDEX - fgets_unlocked -INDEX - _fgets_r -INDEX - _fgets_unlocked_r - -SYNOPSIS - #include - char *fgets(char *restrict <[buf]>, int <[n]>, FILE *restrict <[fp]>); - - #define _GNU_SOURCE - #include - char *fgets_unlocked(char *restrict <[buf]>, int <[n]>, FILE *restrict <[fp]>); - - #include - char *_fgets_r(struct _reent *<[ptr]>, char *restrict <[buf]>, int <[n]>, FILE *restrict <[fp]>); - - #include - char *_fgets_unlocked_r(struct _reent *<[ptr]>, char *restrict <[buf]>, int <[n]>, FILE *restrict <[fp]>); - -DESCRIPTION - Reads at most <[n-1]> characters from <[fp]> until a newline - is found. The characters including to the newline are stored - in <[buf]>. The buffer is terminated with a 0. - - <> is a non-thread-safe version of <>. - <> may only safely be used within a scope - protected by flockfile() (or ftrylockfile()) and funlockfile(). This - function may safely be used in a multi-threaded program if and only - if they are called while the invoking thread owns the (FILE *) - object, as is the case after a successful call to the flockfile() or - ftrylockfile() functions. If threads are disabled, then - <> is equivalent to <>. - - The functions <<_fgets_r>> and <<_fgets_unlocked_r>> are simply - reentrant versions that are passed the additional reentrant structure - pointer argument: <[ptr]>. - -RETURNS - <> returns the buffer passed to it, with the data - filled in. If end of file occurs with some data already - accumulated, the data is returned with no other indication. If - no data are read, NULL is returned instead. - -PORTABILITY - <> should replace all uses of <>. Note however - that <> returns all of the data, while <> removes - the trailing newline (with no indication that it has done so.) - - <> is a GNU extension. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include "local.h" - -#ifdef __IMPL_UNLOCKED__ -#define _fgets_r _fgets_unlocked_r -#define fgets fgets_unlocked -#endif - -/* - * Read at most n-1 characters from the given file. - * Stop when a newline has been read, or the count runs out. - * Return first argument, or NULL if no characters were read. - */ - -char * -_fgets_r (struct _reent * ptr, - char *__restrict buf, - int n, - FILE *__restrict fp) -{ - size_t len; - char *s; - unsigned char *p, *t; - - if (n < 2) /* sanity check */ - return 0; - - s = buf; - - CHECK_INIT(ptr, fp); - - _newlib_flockfile_start (fp); -#ifdef __SCLE - if (fp->_flags & __SCLE) - { - int c = 0; - /* Sorry, have to do it the slow way */ - while (--n > 0 && (c = __sgetc_r (ptr, fp)) != EOF) - { - *s++ = c; - if (c == '\n') - break; - } - if (c == EOF && s == buf) - { - _newlib_flockfile_exit (fp); - return NULL; - } - *s = 0; - _newlib_flockfile_exit (fp); - return buf; - } -#endif - - n--; /* leave space for NUL */ - do - { - /* - * If the buffer is empty, refill it. - */ - if ((len = fp->_r) <= 0) - { - if (__srefill_r (ptr, fp)) - { - /* EOF: stop with partial or no line */ - if (s == buf) - { - _newlib_flockfile_exit (fp); - return 0; - } - break; - } - len = fp->_r; - } - p = fp->_p; - - /* - * Scan through at most n bytes of the current buffer, - * looking for '\n'. If found, copy up to and including - * newline, and stop. Otherwise, copy entire chunk - * and loop. - */ - if (len > n) - len = n; - t = (unsigned char *) memchr ((void *) p, '\n', len); - if (t != 0) - { - len = ++t - p; - fp->_r -= len; - fp->_p = t; - (void) memcpy ((void *) s, (void *) p, len); - s[len] = 0; - _newlib_flockfile_exit (fp); - return (buf); - } - fp->_r -= len; - fp->_p += len; - (void) memcpy ((void *) s, (void *) p, len); - s += len; - } - while ((n -= len) != 0); - *s = 0; - _newlib_flockfile_end (fp); - return buf; -} - -#ifndef _REENT_ONLY - -char * -fgets (char *__restrict buf, - int n, - FILE *__restrict fp) -{ - return _fgets_r (_REENT, buf, n, fp); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/fgets_u.c b/lib/stdio/fgets_u.c deleted file mode 100644 index b36748d..0000000 --- a/lib/stdio/fgets_u.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define __IMPL_UNLOCKED__ -#include "fgets.c" diff --git a/lib/stdio/fgetwc.c b/lib/stdio/fgetwc.c deleted file mode 100644 index 522697e..0000000 --- a/lib/stdio/fgetwc.c +++ /dev/null @@ -1,193 +0,0 @@ -/*- - * Copyright (c) 2002-2004 Tim J. Robbins. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>, <>, <>---get a wide character from a file or stream - -INDEX - fgetwc -INDEX - fgetwc_unlocked -INDEX - _fgetwc_r -INDEX - _fgetwc_unlocked_r -INDEX - getwc -INDEX - getwc_unlocked -INDEX - _getwc_r -INDEX - _getwc_unlocked_r - -SYNOPSIS - #include - #include - wint_t fgetwc(FILE *<[fp]>); - - #define _GNU_SOURCE - #include - #include - wint_t fgetwc_unlocked(FILE *<[fp]>); - - #include - #include - wint_t _fgetwc_r(struct _reent *<[ptr]>, FILE *<[fp]>); - - #include - #include - wint_t _fgetwc_unlocked_r(struct _reent *<[ptr]>, FILE *<[fp]>); - - #include - #include - wint_t getwc(FILE *<[fp]>); - - #define _GNU_SOURCE - #include - #include - wint_t getwc_unlocked(FILE *<[fp]>); - - #include - #include - wint_t _getwc_r(struct _reent *<[ptr]>, FILE *<[fp]>); - - #include - #include - wint_t _getwc_unlocked_r(struct _reent *<[ptr]>, FILE *<[fp]>); - -DESCRIPTION -Use <> to get the next wide character from the file or stream -identified by <[fp]>. As a side effect, <> advances the file's -current position indicator. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -The <> and <> functions or macros functions identically -to <> and <>. It may be implemented as a macro, and -may evaluate its argument more than once. There is no reason ever to use it. - -<<_fgetwc_r>>, <<_getwc_r>>, <<_fgetwc_unlocked_r>>, and <<_getwc_unlocked_r>> -are simply reentrant versions of the above functions that are passed the -additional reentrant structure pointer argument: <[ptr]>. - -RETURNS -The next wide character cast to <>, unless there is no more data, -or the host system reports a read error; in either of these situations, -<> and <> return <>. - -You can distinguish the two situations that cause an <> result by -using the <> and <> functions. - -PORTABILITY -<> and <> are required by C99 and POSIX.1-2001. - -<> and <> are GNU extensions. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -wint_t -__fgetwc (struct _reent *ptr, - register FILE *fp) -{ - wchar_t wc; - size_t nconv; - - if (fp->_r <= 0 && __srefill_r (ptr, fp)) - return (WEOF); - if (MB_CUR_MAX == 1) - { - /* Fast path for single-byte encodings. */ - wc = *fp->_p++; - fp->_r--; - return (wc); - } - do - { - nconv = _mbrtowc_r (ptr, &wc, (char *) fp->_p, fp->_r, &fp->_mbstate); - if (nconv == (size_t)-1) - break; - else if (nconv == (size_t)-2) - continue; - else if (nconv == 0) - { - /* - * Assume that the only valid representation of - * the null wide character is a single null byte. - */ - fp->_p++; - fp->_r--; - return (L'\0'); - } - else - { - fp->_p += nconv; - fp->_r -= nconv; - return (wc); - } - } - while (__srefill_r(ptr, fp) == 0); - fp->_flags |= __SERR; - errno = EILSEQ; - return (WEOF); -} - -wint_t -_fgetwc_r (struct _reent *ptr, - register FILE *fp) -{ - wint_t r; - - _newlib_flockfile_start (fp); - ORIENT(fp, 1); - r = __fgetwc (ptr, fp); - _newlib_flockfile_end (fp); - return r; -} - -wint_t -fgetwc (FILE *fp) -{ - struct _reent *reent = _REENT; - - CHECK_INIT(reent, fp); - return _fgetwc_r (reent, fp); -} diff --git a/lib/stdio/fgetwc_u.c b/lib/stdio/fgetwc_u.c deleted file mode 100644 index cbb9736..0000000 --- a/lib/stdio/fgetwc_u.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include -#include -#include "local.h" - -wint_t -_fgetwc_unlocked_r (struct _reent *ptr, - register FILE *fp) -{ - ORIENT(fp, 1); - return __fgetwc (ptr, fp); -} - -wint_t -fgetwc_unlocked (FILE *fp) -{ - struct _reent *reent = _REENT; - - CHECK_INIT(reent, fp); - return _fgetwc_unlocked_r (reent, fp); -} diff --git a/lib/stdio/fgetws.c b/lib/stdio/fgetws.c deleted file mode 100644 index c942806..0000000 --- a/lib/stdio/fgetws.c +++ /dev/null @@ -1,182 +0,0 @@ -/*- - * Copyright (c) 2002-2004 Tim J. Robbins. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>---get wide character string from a file or stream - -INDEX - fgetws -INDEX - fgetws_unlocked -INDEX - _fgetws_r -INDEX - _fgetws_unlocked_r - -SYNOPSIS - #include - wchar_t *fgetws(wchar_t *__restrict <[ws]>, int <[n]>, - FILE *__restrict <[fp]>); - - #define _GNU_SOURCE - #include - wchar_t *fgetws_unlocked(wchar_t *__restrict <[ws]>, int <[n]>, - FILE *__restrict <[fp]>); - - #include - wchar_t *_fgetws_r(struct _reent *<[ptr]>, wchar_t *<[ws]>, - int <[n]>, FILE *<[fp]>); - - #include - wchar_t *_fgetws_unlocked_r(struct _reent *<[ptr]>, wchar_t *<[ws]>, - int <[n]>, FILE *<[fp]>); - -DESCRIPTION -Reads at most <[n-1]> wide characters from <[fp]> until a newline -is found. The wide characters including to the newline are stored -in <[ws]>. The buffer is terminated with a 0. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -The <<_fgetws_r>> and <<_fgetws_unlocked_r>> functions are simply reentrant -version of the above and are passed an additional reentrancy structure -pointer: <[ptr]>. - -RETURNS -<> returns the buffer passed to it, with the data -filled in. If end of file occurs with some data already -accumulated, the data is returned with no other indication. If -no data are read, NULL is returned instead. - -PORTABILITY -<> is required by C99 and POSIX.1-2001. - -<> is a GNU extension. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -#ifdef __IMPL_UNLOCKED__ -#define _fgetws_r _fgetws_unlocked_r -#define fgetws fgetws_unlocked -#endif - -wchar_t * -_fgetws_r (struct _reent *ptr, - wchar_t * ws, - int n, - FILE * fp) -{ - wchar_t *wsp; - size_t nconv; - const char *src; - unsigned char *nl; - - _newlib_flockfile_start (fp); - ORIENT (fp, 1); - - if (n <= 0) - { - errno = EINVAL; - goto error; - } - - if (fp->_r <= 0 && __srefill_r (ptr, fp)) - /* EOF */ - goto error; - wsp = ws; - do - { - src = (char *) fp->_p; - nl = memchr (fp->_p, '\n', fp->_r); - nconv = _mbsnrtowcs_r (ptr, wsp, &src, - /* Read all bytes up to the next NL, or up to the - end of the buffer if there is no NL. */ - nl != NULL ? (nl - fp->_p + 1) : fp->_r, - /* But never more than n - 1 wide chars. */ - n - 1, - &fp->_mbstate); - if (nconv == (size_t) -1) - /* Conversion error */ - goto error; - if (src == NULL) - { - /* - * We hit a null byte. Increment the character count, - * since mbsnrtowcs()'s return value doesn't include - * the terminating null, then resume conversion - * after the null. - */ - nconv++; - src = memchr (fp->_p, '\0', fp->_r); - src++; - } - fp->_r -= (unsigned char *) src - fp->_p; - fp->_p = (unsigned char *) src; - n -= nconv; - wsp += nconv; - } - while (wsp[-1] != L'\n' && n > 1 && (fp->_r > 0 - || __srefill_r (ptr, fp) == 0)); - if (wsp == ws) - /* EOF */ - goto error; - if (!mbsinit (&fp->_mbstate)) - /* Incomplete character */ - goto error; - *wsp++ = L'\0'; - _newlib_flockfile_exit (fp); - return ws; - -error: - _newlib_flockfile_end (fp); - return NULL; -} - -wchar_t * -fgetws (wchar_t *__restrict ws, - int n, - FILE *__restrict fp) -{ - struct _reent *reent = _REENT; - - CHECK_INIT (reent, fp); - return _fgetws_r (reent, ws, n, fp); -} diff --git a/lib/stdio/fgetws_u.c b/lib/stdio/fgetws_u.c deleted file mode 100644 index ae4d7d9..0000000 --- a/lib/stdio/fgetws_u.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define __IMPL_UNLOCKED__ -#include "fgetws.c" diff --git a/lib/stdio/fileno.c b/lib/stdio/fileno.c deleted file mode 100644 index 4faa6a8..0000000 --- a/lib/stdio/fileno.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---return file descriptor associated with stream - -INDEX - fileno -INDEX - fileno_unlocked - -SYNOPSIS - #include - int fileno(FILE *<[fp]>); - - #define _BSD_SOURCE - #include - int fileno_unlocked(FILE *<[fp]>); - -DESCRIPTION -You can use <> to return the file descriptor identified by <[fp]>. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -RETURNS -<> returns a non-negative integer when successful. -If <[fp]> is not an open stream, <> returns -1. - -PORTABILITY -<> is not part of ANSI C. -POSIX requires <>. - -<> is a BSD extension also provided by GNU libc. - -Supporting OS subroutines required: none. -*/ - -#include <_ansi.h> -#include -#include -#include "local.h" - -int -fileno (FILE * f) -{ - int result; - CHECK_INIT (_REENT, f); - _newlib_flockfile_start (f); - if (f->_flags) - result = __sfileno (f); - else - { - result = -1; - _REENT_ERRNO(_REENT) = EBADF; - } - _newlib_flockfile_end (f); - return result; -} diff --git a/lib/stdio/fileno_u.c b/lib/stdio/fileno_u.c deleted file mode 100644 index f3940e8..0000000 --- a/lib/stdio/fileno_u.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include -#include -#include "local.h" - -int -fileno_unlocked (FILE * f) -{ - int result; - CHECK_INIT (_REENT, f); - if (f->_flags) - result = __sfileno (f); - else - { - result = -1; - _REENT_ERRNO(_REENT) = EBADF; - } - return result; -} diff --git a/lib/stdio/findfp.c b/lib/stdio/findfp.c deleted file mode 100644 index 2cc5495..0000000 --- a/lib/stdio/findfp.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* No user fns here. Pesch 15apr92. */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include "local.h" - -void (*__stdio_exit_handler) (void); - -__FILE __sf[3]; - -struct _glue __sglue = {NULL, 3, &__sf[0]}; - -#ifdef _REENT_THREAD_LOCAL -_Thread_local __FILE *_tls_stdin = &__sf[0]; -_Thread_local __FILE *_tls_stdout = &__sf[1]; -_Thread_local __FILE *_tls_stderr = &__sf[2]; -_Thread_local void (*_tls_cleanup)(struct _reent *); -#endif - -#ifdef _STDIO_BSD_SEMANTICS - /* BSD and Glibc systems only flush streams which have been written to - at exit time. Calling flush rather than close for speed, as on - the aforementioned systems. */ -#define CLEANUP_FILE __sflushw_r -#else - /* Otherwise close files and flush read streams, too. - Note we call flush directly if "--enable-lite-exit" is in effect. */ -#ifdef _LITE_EXIT -#define CLEANUP_FILE _fflush_r -#else -#define CLEANUP_FILE _fclose_r -#endif -#endif - -#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) -_NOINLINE_STATIC void -#else -static void -#endif -std (FILE *ptr, - int flags, - int file) -{ - ptr->_p = 0; - ptr->_r = 0; - ptr->_w = 0; - ptr->_flags = flags; - ptr->_flags2 = 0; - ptr->_file = file; - ptr->_bf._base = 0; - ptr->_bf._size = 0; - ptr->_lbfsize = 0; - memset (&ptr->_mbstate, 0, sizeof (_mbstate_t)); - ptr->_cookie = ptr; - ptr->_read = __sread; -#ifndef __LARGE64_FILES - ptr->_write = __swrite; -#else /* __LARGE64_FILES */ - ptr->_write = __swrite64; - ptr->_seek64 = __sseek64; - ptr->_flags |= __SL64; -#endif /* __LARGE64_FILES */ - ptr->_seek = __sseek; -#ifdef _STDIO_CLOSE_PER_REENT_STD_STREAMS - ptr->_close = __sclose; -#else /* _STDIO_CLOSE_STD_STREAMS */ - ptr->_close = NULL; -#endif /* _STDIO_CLOSE_STD_STREAMS */ -#ifndef __SINGLE_THREAD__ - if (ptr == &__sf[0] || ptr == &__sf[1] || ptr == &__sf[2]) - __lock_init_recursive (ptr->_lock); -#endif -#ifdef __SCLE - if (__stextmode (ptr->_file)) - ptr->_flags |= __SCLE; -#endif -} - -static inline void -stdin_init(FILE *ptr) -{ - std (ptr, __SRD, 0); -} - -static inline void -stdout_init(FILE *ptr) -{ - /* On platforms that have true file system I/O, we can verify - whether stdout is an interactive terminal or not, as part of - __smakebuf on first use of the stream. For all other platforms, - we will default to line buffered mode here. Technically, POSIX - requires both stdin and stdout to be line-buffered, but tradition - leaves stdin alone on systems without fcntl. */ -#ifdef HAVE_FCNTL - std (ptr, __SWR, 1); -#else - std (ptr, __SWR | __SLBF, 1); -#endif -} - -static inline void -stderr_init(FILE *ptr) -{ - /* POSIX requires stderr to be opened for reading and writing, even - when the underlying fd 2 is write-only. */ - std (ptr, __SRW | __SNBF, 2); -} - -struct glue_with_file { - struct _glue glue; - FILE file; -}; - -static struct _glue * -sfmoreglue (struct _reent *d, int n) -{ - struct glue_with_file *g; - - g = (struct glue_with_file *) - _malloc_r (d, sizeof (*g) + (n - 1) * sizeof (FILE)); - if (g == NULL) - return NULL; - g->glue._next = NULL; - g->glue._niobs = n; - g->glue._iobs = &g->file; - memset (&g->file, 0, n * sizeof (FILE)); - return &g->glue; -} - -static void -stdio_exit_handler (void) -{ - (void) _fwalk_sglue (_GLOBAL_REENT, CLEANUP_FILE, &__sglue); -} - -static void -global_stdio_init (void) -{ - if (__stdio_exit_handler == NULL) { - __stdio_exit_handler = stdio_exit_handler; - stdin_init (&__sf[0]); - stdout_init (&__sf[1]); - stderr_init (&__sf[2]); - } -} - -/* - * Find a free FILE for fopen et al. - */ - -FILE * -__sfp (struct _reent *d) -{ - FILE *fp; - int n; - struct _glue *g; - - _newlib_sfp_lock_start (); - global_stdio_init (); - - for (g = &__sglue;; g = g->_next) - { - for (fp = g->_iobs, n = g->_niobs; --n >= 0; fp++) - if (fp->_flags == 0) - goto found; - if (g->_next == NULL && - (g->_next = sfmoreglue (d, NDYNAMIC)) == NULL) - break; - } - _newlib_sfp_lock_exit (); - _REENT_ERRNO(d) = ENOMEM; - return NULL; - -found: - fp->_file = -1; /* no file */ - fp->_flags = 1; /* reserve this slot; caller sets real flags */ - fp->_flags2 = 0; -#ifndef __SINGLE_THREAD__ - __lock_init_recursive (fp->_lock); -#endif - _newlib_sfp_lock_end (); - - fp->_p = NULL; /* no current pointer */ - fp->_w = 0; /* nothing to read or write */ - fp->_r = 0; - fp->_bf._base = NULL; /* no buffer */ - fp->_bf._size = 0; - fp->_lbfsize = 0; /* not line buffered */ - memset (&fp->_mbstate, 0, sizeof (_mbstate_t)); - /* fp->_cookie = ; */ /* caller sets cookie, _read/_write etc */ - fp->_ub._base = NULL; /* no ungetc buffer */ - fp->_ub._size = 0; - fp->_lb._base = NULL; /* no line buffer */ - fp->_lb._size = 0; - - return fp; -} - -/* - * exit() calls _cleanup() through *__cleanup, set whenever we - * open or buffer a file. This chicanery is done so that programs - * that do not use stdio need not link it all in. - * - * The name `_cleanup' is, alas, fairly well known outside stdio. - */ - -static void -cleanup_stdio (struct _reent *ptr) -{ - if (_REENT_STDIN(ptr) != &__sf[0]) - CLEANUP_FILE (ptr, _REENT_STDIN(ptr)); - if (_REENT_STDOUT(ptr) != &__sf[1]) - CLEANUP_FILE (ptr, _REENT_STDOUT(ptr)); - if (_REENT_STDERR(ptr) != &__sf[2]) - CLEANUP_FILE (ptr, _REENT_STDERR(ptr)); -} - -/* - * __sinit() is called whenever stdio's internal variables must be set up. - */ - -void -__sinit (struct _reent *s) -{ - __sfp_lock_acquire (); - - if (_REENT_CLEANUP(s)) - { - __sfp_lock_release (); - return; - } - - /* make sure we clean up on exit */ - _REENT_CLEANUP(s) = cleanup_stdio; /* conservative */ - - global_stdio_init (); - __sfp_lock_release (); -} - -#ifndef __SINGLE_THREAD__ - -__LOCK_INIT_RECURSIVE(static, __sfp_recursive_mutex); - -void -__sfp_lock_acquire (void) -{ - __lock_acquire_recursive (__sfp_recursive_mutex); -} - -void -__sfp_lock_release (void) -{ - __lock_release_recursive (__sfp_recursive_mutex); -} - -/* Walkable file locking routine. */ -static int -__fp_lock (struct _reent * ptr __unused, FILE * fp) -{ - if (!(fp->_flags2 & __SNLK)) - _flockfile (fp); - - return 0; -} - -/* Walkable file unlocking routine. */ -static int -__fp_unlock (struct _reent * ptr __unused, FILE * fp) -{ - if (!(fp->_flags2 & __SNLK)) - _funlockfile (fp); - - return 0; -} - -void -__fp_lock_all (void) -{ - __sfp_lock_acquire (); - (void) _fwalk_sglue (NULL, __fp_lock, &__sglue); -} - -void -__fp_unlock_all (void) -{ - (void) _fwalk_sglue (NULL, __fp_unlock, &__sglue); - __sfp_lock_release (); -} -#endif diff --git a/lib/stdio/fiprintf.c b/lib/stdio/fiprintf.c deleted file mode 100644 index 8829eb8..0000000 --- a/lib/stdio/fiprintf.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in siprintf.c */ - -#include <_ansi.h> -#include -#include -#include - -int -_fiprintf_r (struct _reent *ptr, - FILE * fp, - const char *fmt, ...) -{ - int ret; - va_list ap; - - va_start (ap, fmt); - ret = _vfiprintf_r (ptr, fp, fmt, ap); - va_end (ap); - return ret; -} - -#ifndef _REENT_ONLY - -int -fiprintf (FILE * fp, - const char *fmt, ...) -{ - int ret; - va_list ap; - - va_start (ap, fmt); - ret = _vfiprintf_r (_REENT, fp, fmt, ap); - va_end (ap); - return ret; -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/fiscanf.c b/lib/stdio/fiscanf.c deleted file mode 100644 index a1c8361..0000000 --- a/lib/stdio/fiscanf.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -fiscanf(FILE *fp, const char *fmt, ...) -{ - int ret; - va_list ap; - - va_start (ap, fmt); - ret = __svfiscanf_r (_REENT, fp, fmt, ap); - va_end (ap); - return ret; -} - -#endif /* !_REENT_ONLY */ - -int -_fiscanf_r(struct _reent *ptr, FILE *fp, const char *fmt, ...) -{ - int ret; - va_list ap; - - va_start (ap, fmt); - ret = __svfiscanf_r (ptr, fp, fmt, ap); - va_end (ap); - return (ret); -} - diff --git a/lib/stdio/flags.c b/lib/stdio/flags.c deleted file mode 100644 index d686fa0..0000000 --- a/lib/stdio/flags.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 1990 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* No user fns here. Pesch 15apr92 */ - -#include <_ansi.h> -#include -#include -#include -#include -#include - -/* - * Return the (stdio) flags for a given mode. Store the flags - * to be passed to an open() syscall through *optr. - * Return 0 on error. - */ - -int -__sflags (struct _reent *ptr, - register char *mode, - int *optr) -{ - register int ret, m, o; - - switch (mode[0]) - { - case 'r': /* open for reading */ - ret = __SRD; - m = O_RDONLY; - o = 0; - break; - - case 'w': /* open for writing */ - ret = __SWR; - m = O_WRONLY; - o = O_CREAT | O_TRUNC; - break; - - case 'a': /* open for appending */ - ret = __SWR | __SAPP; - m = O_WRONLY; - o = O_CREAT | O_APPEND; - break; - default: /* illegal mode */ - _REENT_ERRNO(ptr) = EINVAL; - return (0); - } - while (*++mode) - { - switch (*mode) - { - case '+': - ret = (ret & ~(__SRD | __SWR)) | __SRW; - m = (m & ~O_ACCMODE) | O_RDWR; - break; - case 'b': -#ifdef O_BINARY - m |= O_BINARY; -#endif - break; -#ifdef __CYGWIN__ - case 't': - m |= O_TEXT; - break; -#endif -#if defined (O_CLOEXEC) && defined (_GLIBC_EXTENSION) - case 'e': - m |= O_CLOEXEC; - break; -#endif - case 'x': - m |= O_EXCL; - break; - default: - break; - } - } - *optr = m | o; - return ret; -} diff --git a/lib/stdio/floatio.h b/lib/stdio/floatio.h deleted file mode 100644 index 4bddcb7..0000000 --- a/lib/stdio/floatio.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - * - * %W% (Berkeley) %G% - */ - -/* - * Floating point scanf/printf (input/output) definitions. - */ - -#ifdef _NO_LONGDBL -/* 11-bit exponent (VAX G floating point) is 308 decimal digits */ -#define MAXEXP 308 -#else /* !_NO_LONGDBL */ -/* 15-bit exponent (Intel extended floating point) is 4932 decimal digits */ -#define MAXEXP 4932 -#endif /* !_NO_LONGDBL */ -/* 128 bit fraction takes up 39 decimal digits; max reasonable precision */ -#define MAXFRACT 39 diff --git a/lib/stdio/fmemopen.c b/lib/stdio/fmemopen.c deleted file mode 100644 index 886ba7e..0000000 --- a/lib/stdio/fmemopen.c +++ /dev/null @@ -1,364 +0,0 @@ -/* Copyright (C) 2007 Eric Blake - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -/* -FUNCTION -<>---open a stream around a fixed-length string - -INDEX - fmemopen - -SYNOPSIS - #include - FILE *fmemopen(void *restrict <[buf]>, size_t <[size]>, - const char *restrict <[mode]>); - -DESCRIPTION -<> creates a seekable <> stream that wraps a -fixed-length buffer of <[size]> bytes starting at <[buf]>. The stream -is opened with <[mode]> treated as in <>, where append mode -starts writing at the first NUL byte. If <[buf]> is NULL, then -<[size]> bytes are automatically provided as if by <>, with -the initial size of 0, and <[mode]> must contain <<+>> so that data -can be read after it is written. - -The stream maintains a current position, which moves according to -bytes read or written, and which can be one past the end of the array. -The stream also maintains a current file size, which is never greater -than <[size]>. If <[mode]> starts with <>, the position starts at -<<0>>, and file size starts at <[size]> if <[buf]> was provided. If -<[mode]> starts with <>, the position and file size start at <<0>>, -and if <[buf]> was provided, the first byte is set to NUL. If -<[mode]> starts with <>, the position and file size start at the -location of the first NUL byte, or else <[size]> if <[buf]> was -provided. - -When reading, NUL bytes have no significance, and reads cannot exceed -the current file size. When writing, the file size can increase up to -<[size]> as needed, and NUL bytes may be embedded in the stream (see -<> for an alternative that automatically enlarges the -buffer). When the stream is flushed or closed after a write that -changed the file size, a NUL byte is written at the current position -if there is still room; if the stream is not also open for reading, a -NUL byte is additionally written at the last byte of <[buf]> when the -stream has exceeded <[size]>, so that a write-only <[buf]> is always -NUL-terminated when the stream is flushed or closed (and the initial -<[size]> should take this into account). It is not possible to seek -outside the bounds of <[size]>. A NUL byte written during a flush is -restored to its previous value when seeking elsewhere in the string. - -RETURNS -The return value is an open FILE pointer on success. On error, -<> is returned, and <> will be set to EINVAL if <[size]> -is zero or <[mode]> is invalid, ENOMEM if <[buf]> was NULL and memory -could not be allocated, or EMFILE if too many streams are already -open. - -PORTABILITY -This function is being added to POSIX 200x, but is not in POSIX 2001. - -Supporting OS subroutines required: <>. -*/ - -#include -#include -#include -#include -#include "local.h" - -/* Describe details of an open memstream. */ -typedef struct fmemcookie { - void *storage; /* storage to free on close */ - char *buf; /* buffer start */ - size_t pos; /* current position */ - size_t eof; /* current file size */ - size_t max; /* maximum file size */ - char append; /* nonzero if appending */ - char writeonly; /* 1 if write-only */ - char saved; /* saved character that lived at pos before write-only NUL */ -} fmemcookie; - -/* Read up to non-zero N bytes into BUF from stream described by - COOKIE; return number of bytes read (0 on EOF). */ -static _READ_WRITE_RETURN_TYPE -fmemreader (struct _reent *ptr, - void *cookie, - char *buf, - _READ_WRITE_BUFSIZE_TYPE n) -{ - fmemcookie *c = (fmemcookie *) cookie; - /* Can't read beyond current size, but EOF condition is not an error. */ - if (c->pos > c->eof) - return 0; - if (n >= c->eof - c->pos) - n = c->eof - c->pos; - memcpy (buf, c->buf + c->pos, n); - c->pos += n; - return n; -} - -/* Write up to non-zero N bytes of BUF into the stream described by COOKIE, - returning the number of bytes written or EOF on failure. */ -static _READ_WRITE_RETURN_TYPE -fmemwriter (struct _reent *ptr, - void *cookie, - const char *buf, - _READ_WRITE_BUFSIZE_TYPE n) -{ - fmemcookie *c = (fmemcookie *) cookie; - int adjust = 0; /* true if at EOF, but still need to write NUL. */ - - /* Append always seeks to eof; otherwise, if we have previously done - a seek beyond eof, ensure all intermediate bytes are NUL. */ - if (c->append) - c->pos = c->eof; - else if (c->pos > c->eof) - memset (c->buf + c->eof, '\0', c->pos - c->eof); - /* Do not write beyond EOF; saving room for NUL on write-only stream. */ - if (c->pos + n > c->max - c->writeonly) - { - adjust = c->writeonly; - n = c->max - c->pos; - } - /* Now n is the number of bytes being modified, and adjust is 1 if - the last byte is NUL instead of from buf. Write a NUL if - write-only; or if read-write, eof changed, and there is still - room. When we are within the file contents, remember what we - overwrite so we can restore it if we seek elsewhere later. */ - if (c->pos + n > c->eof) - { - c->eof = c->pos + n; - if (c->eof - adjust < c->max) - c->saved = c->buf[c->eof - adjust] = '\0'; - } - else if (c->writeonly) - { - if (n) - { - c->saved = c->buf[c->pos + n - adjust]; - c->buf[c->pos + n - adjust] = '\0'; - } - else - adjust = 0; - } - c->pos += n; - if (n - adjust) - memcpy (c->buf + c->pos - n, buf, n - adjust); - else - { - _REENT_ERRNO(ptr) = ENOSPC; - return EOF; - } - return n; -} - -/* Seek to position POS relative to WHENCE within stream described by - COOKIE; return resulting position or fail with EOF. */ -static _fpos_t -fmemseeker (struct _reent *ptr, - void *cookie, - _fpos_t pos, - int whence) -{ - fmemcookie *c = (fmemcookie *) cookie; -#ifndef __LARGE64_FILES - off_t offset = (off_t) pos; -#else /* __LARGE64_FILES */ - _off64_t offset = (_off64_t) pos; -#endif /* __LARGE64_FILES */ - - if (whence == SEEK_CUR) - offset += c->pos; - else if (whence == SEEK_END) - offset += c->eof; - if (offset < 0) - { - _REENT_ERRNO(ptr) = EINVAL; - offset = -1; - } - else if (offset > c->max) - { - _REENT_ERRNO(ptr) = ENOSPC; - offset = -1; - } -#ifdef __LARGE64_FILES - else if ((_fpos_t) offset != offset) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - offset = -1; - } -#endif /* __LARGE64_FILES */ - else - { - if (c->writeonly && c->pos < c->eof) - { - c->buf[c->pos] = c->saved; - c->saved = '\0'; - } - c->pos = offset; - if (c->writeonly && c->pos < c->eof) - { - c->saved = c->buf[c->pos]; - c->buf[c->pos] = '\0'; - } - } - return (_fpos_t) offset; -} - -/* Seek to position POS relative to WHENCE within stream described by - COOKIE; return resulting position or fail with EOF. */ -#ifdef __LARGE64_FILES -static _fpos64_t -fmemseeker64 (struct _reent *ptr, - void *cookie, - _fpos64_t pos, - int whence) -{ - _off64_t offset = (_off64_t) pos; - fmemcookie *c = (fmemcookie *) cookie; - if (whence == SEEK_CUR) - offset += c->pos; - else if (whence == SEEK_END) - offset += c->eof; - if (offset < 0) - { - _REENT_ERRNO(ptr) = EINVAL; - offset = -1; - } - else if (offset > c->max) - { - _REENT_ERRNO(ptr) = ENOSPC; - offset = -1; - } - else - { - if (c->writeonly && c->pos < c->eof) - { - c->buf[c->pos] = c->saved; - c->saved = '\0'; - } - c->pos = offset; - if (c->writeonly && c->pos < c->eof) - { - c->saved = c->buf[c->pos]; - c->buf[c->pos] = '\0'; - } - } - return (_fpos64_t) offset; -} -#endif /* __LARGE64_FILES */ - -/* Reclaim resources used by stream described by COOKIE. */ -static int -fmemcloser (struct _reent *ptr, - void *cookie) -{ - fmemcookie *c = (fmemcookie *) cookie; - _free_r (ptr, c->storage); - return 0; -} - -/* Open a memstream around buffer BUF of SIZE bytes, using MODE. - Return the new stream, or fail with NULL. */ -FILE * -_fmemopen_r (struct _reent *ptr, - void *__restrict buf, - size_t size, - const char *__restrict mode) -{ - FILE *fp; - fmemcookie *c; - int flags; - int dummy; - - if ((flags = __sflags (ptr, mode, &dummy)) == 0) - return NULL; - if (!size || !(buf || flags & __SRW)) - { - _REENT_ERRNO(ptr) = EINVAL; - return NULL; - } - if ((fp = __sfp (ptr)) == NULL) - return NULL; - if ((c = (fmemcookie *) _malloc_r (ptr, sizeof *c + (buf ? 0 : size))) - == NULL) - { - _newlib_sfp_lock_start (); - fp->_flags = 0; /* release */ -#ifndef __SINGLE_THREAD__ - __lock_close_recursive (fp->_lock); -#endif - _newlib_sfp_lock_end (); - return NULL; - } - - c->storage = c; - c->max = size; - /* 9 modes to worry about. */ - /* w/a, buf or no buf: Guarantee a NUL after any file writes. */ - c->writeonly = (flags & __SWR) != 0; - c->saved = '\0'; - if (!buf) - { - /* r+/w+/a+, and no buf: file starts empty. */ - c->buf = (char *) (c + 1); - c->buf[0] = '\0'; - c->pos = c->eof = 0; - c->append = (flags & __SAPP) != 0; - } - else - { - c->buf = (char *) buf; - switch (*mode) - { - case 'a': - /* a/a+ and buf: position and size at first NUL. */ - buf = memchr (c->buf, '\0', size); - c->eof = c->pos = buf ? (char *) buf - c->buf : size; - if (!buf && c->writeonly) - /* a: guarantee a NUL within size even if no writes. */ - c->buf[size - 1] = '\0'; - c->append = 1; - break; - case 'r': - /* r/r+ and buf: read at beginning, full size available. */ - c->pos = c->append = 0; - c->eof = size; - break; - case 'w': - /* w/w+ and buf: write at beginning, truncate to empty. */ - c->pos = c->append = c->eof = 0; - *c->buf = '\0'; - break; - default: - abort (); - } - } - - _newlib_flockfile_start (fp); - fp->_file = -1; - fp->_flags = flags; - fp->_cookie = c; - fp->_read = flags & (__SRD | __SRW) ? fmemreader : NULL; - fp->_write = flags & (__SWR | __SRW) ? fmemwriter : NULL; - fp->_seek = fmemseeker; -#ifdef __LARGE64_FILES - fp->_seek64 = fmemseeker64; - fp->_flags |= __SL64; -#endif - fp->_close = fmemcloser; - _newlib_flockfile_end (fp); - return fp; -} - -#ifndef _REENT_ONLY -FILE * -fmemopen (void *__restrict buf, - size_t size, - const char *__restrict mode) -{ - return _fmemopen_r (_REENT, buf, size, mode); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/fopen.c b/lib/stdio/fopen.c deleted file mode 100644 index 1ac551f..0000000 --- a/lib/stdio/fopen.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---open a file - -INDEX - fopen -INDEX - _fopen_r - -SYNOPSIS - #include - FILE *fopen(const char *<[file]>, const char *<[mode]>); - - FILE *_fopen_r(struct _reent *<[reent]>, - const char *<[file]>, const char *<[mode]>); - -DESCRIPTION -<> initializes the data structures needed to read or write a -file. Specify the file's name as the string at <[file]>, and the kind -of access you need to the file with the string at <[mode]>. - -The alternate function <<_fopen_r>> is a reentrant version. -The extra argument <[reent]> is a pointer to a reentrancy structure. - -Three fundamental kinds of access are available: read, write, and append. -<<*<[mode]>>> must begin with one of the three characters `<>', -`<>', or `<>', to select one of these: - -o+ -o r -Open the file for reading; the operation will fail if the file does -not exist, or if the host system does not permit you to read it. - -o w -Open the file for writing @emph{from the beginning} of the file: -effectively, this always creates a new file. If the file whose name you -specified already existed, its old contents are discarded. - -o a -Open the file for appending data, that is writing from the end of -file. When you open a file this way, all data always goes to the -current end of file; you cannot change this using <>. -o- - -Some host systems distinguish between ``binary'' and ``text'' files. -Such systems may perform data transformations on data written to, or -read from, files opened as ``text''. -If your system is one of these, then you can append a `<>' to any -of the three modes above, to specify that you are opening the file as -a binary file (the default is to open the file as a text file). - -`<>', then, means ``read binary''; `<>', ``write binary''; and -`<>', ``append binary''. - -To make C programs more portable, the `<>' is accepted on all -systems, whether or not it makes a difference. - -Finally, you might need to both read and write from the same file. -You can also append a `<<+>>' to any of the three modes, to permit -this. (If you want to append both `<>' and `<<+>>', you can do it -in either order: for example, <<"rb+">> means the same thing as -<<"r+b">> when used as a mode string.) - -Use <<"r+">> (or <<"rb+">>) to permit reading and writing anywhere in -an existing file, without discarding any data; <<"w+">> (or <<"wb+">>) -to create a new file (or begin by discarding all data from an old one) -that permits reading and writing anywhere in it; and <<"a+">> (or -<<"ab+">>) to permit reading anywhere in an existing file, but writing -only at the end. - -RETURNS -<> returns a file pointer which you can use for other file -operations, unless the file you requested could not be opened; in that -situation, the result is <>. If the reason for failure was an -invalid string at <[mode]>, <> is set to <>. - -PORTABILITY -<> is required by ANSI C. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>, <>. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include -#include -#ifdef __CYGWIN__ -#include -#endif -#include "local.h" - -FILE * -_fopen_r (struct _reent *ptr, - const char *__restrict file, - const char *__restrict mode) -{ - register FILE *fp; - register int f; - int flags, oflags; - - if ((flags = __sflags (ptr, mode, &oflags)) == 0) - return NULL; - if ((fp = __sfp (ptr)) == NULL) - return NULL; - - if ((f = _open_r (ptr, file, oflags, 0666)) < 0) - { - _newlib_sfp_lock_start (); - fp->_flags = 0; /* release */ -#ifndef __SINGLE_THREAD__ - __lock_close_recursive (fp->_lock); -#endif - _newlib_sfp_lock_end (); - return NULL; - } - - _newlib_flockfile_start (fp); - - fp->_file = f; - fp->_flags = flags; - fp->_cookie = (void *) fp; - fp->_read = __sread; - fp->_write = __swrite; - fp->_seek = __sseek; - fp->_close = __sclose; - - if (fp->_flags & __SAPP) - _fseek_r (ptr, fp, 0, SEEK_END); - -#ifdef __SCLE - if (__stextmode (fp->_file)) - fp->_flags |= __SCLE; -#endif - - _newlib_flockfile_end (fp); - return fp; -} - -#ifndef _REENT_ONLY - -FILE * -fopen (const char *file, - const char *mode) -{ - return _fopen_r (_REENT, file, mode); -} - -#endif diff --git a/lib/stdio/fopencookie.c b/lib/stdio/fopencookie.c deleted file mode 100644 index ab406a8..0000000 --- a/lib/stdio/fopencookie.c +++ /dev/null @@ -1,256 +0,0 @@ -/* Copyright (C) 2007 Eric Blake - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -/* -FUNCTION -<>---open a stream with custom callbacks - -INDEX - fopencookie - -SYNOPSIS - #include - FILE *fopencookie(const void *<[cookie]>, const char *<[mode]>, - cookie_io_functions_t <[functions]>); - -DESCRIPTION -<> creates a <> stream where I/O is performed using -custom callbacks. The callbacks are registered via the structure: - - typedef ssize_t (*cookie_read_function_t)(void *_cookie, char *_buf, - size_t _n); - typedef ssize_t (*cookie_write_function_t)(void *_cookie, - const char *_buf, size_t _n); - typedef int (*cookie_seek_function_t)(void *_cookie, off_t *_off, - int _whence); - typedef int (*cookie_close_function_t)(void *_cookie); - -. typedef struct -. { -. cookie_read_function_t *read; -. cookie_write_function_t *write; -. cookie_seek_function_t *seek; -. cookie_close_function_t *close; -. } cookie_io_functions_t; - -The stream is opened with <[mode]> treated as in <>. The -callbacks <[functions.read]> and <[functions.write]> may only be NULL -when <[mode]> does not require them. - -<[functions.read]> should return -1 on failure, or else the number of -bytes read (0 on EOF). It is similar to <>, except that -<[cookie]> will be passed as the first argument. - -<[functions.write]> should return -1 on failure, or else the number of -bytes written. It is similar to <>, except that <[cookie]> -will be passed as the first argument. - -<[functions.seek]> should return -1 on failure, and 0 on success, with -*<[_off]> set to the current file position. It is a cross between -<> and <>, with the <[_whence]> argument interpreted in -the same manner. A NULL <[functions.seek]> makes the stream behave -similarly to a pipe in relation to stdio functions that require -positioning. - -<[functions.close]> should return -1 on failure, or 0 on success. It -is similar to <>, except that <[cookie]> will be passed as the -first argument. A NULL <[functions.close]> merely flushes all data -then lets <> succeed. A failed close will still invalidate -the stream. - -Read and write I/O functions are allowed to change the underlying -buffer on fully buffered or line buffered streams by calling -<>. They are also not required to completely fill or empty -the buffer. They are not, however, allowed to change streams from -unbuffered to buffered or to change the state of the line buffering -flag. They must also be prepared to have read or write calls occur on -buffers other than the one most recently specified. - -RETURNS -The return value is an open FILE pointer on success. On error, -<> is returned, and <> will be set to EINVAL if a -function pointer is missing or <[mode]> is invalid, ENOMEM if the -stream cannot be created, or EMFILE if too many streams are already -open. - -PORTABILITY -This function is a newlib extension, copying the prototype from Linux. -It is not portable. See also the <> interface from BSD. - -Supporting OS subroutines required: <>. -*/ - -#define _GNU_SOURCE -#include -#include -#include -#include "local.h" - -typedef struct fccookie { - void *cookie; - FILE *fp; - cookie_read_function_t *readfn; - cookie_write_function_t *writefn; - cookie_seek_function_t *seekfn; - cookie_close_function_t *closefn; -} fccookie; - -static _READ_WRITE_RETURN_TYPE -fcreader (struct _reent *ptr, - void *cookie, - char *buf, - _READ_WRITE_BUFSIZE_TYPE n) -{ - int result; - fccookie *c = (fccookie *) cookie; - errno = 0; - if ((result = c->readfn (c->cookie, buf, n)) < 0 && errno) - _REENT_ERRNO(ptr) = errno; - return result; -} - -static _READ_WRITE_RETURN_TYPE -fcwriter (struct _reent *ptr, - void *cookie, - const char *buf, - _READ_WRITE_BUFSIZE_TYPE n) -{ - int result; - fccookie *c = (fccookie *) cookie; - if (c->fp->_flags & __SAPP && c->fp->_seek) - { -#ifdef __LARGE64_FILES - c->fp->_seek64 (ptr, cookie, 0, SEEK_END); -#else - c->fp->_seek (ptr, cookie, 0, SEEK_END); -#endif - } - errno = 0; - if ((result = c->writefn (c->cookie, buf, n)) < 0 && errno) - _REENT_ERRNO(ptr) = errno; - return result; -} - -static _fpos_t -fcseeker (struct _reent *ptr, - void *cookie, - _fpos_t pos, - int whence) -{ - fccookie *c = (fccookie *) cookie; -#ifndef __LARGE64_FILES - off_t offset = (off_t) pos; -#else /* __LARGE64_FILES */ - _off64_t offset = (_off64_t) pos; -#endif /* __LARGE64_FILES */ - - errno = 0; - if (c->seekfn (c->cookie, &offset, whence) < 0 && errno) - _REENT_ERRNO(ptr) = errno; -#ifdef __LARGE64_FILES - else if ((_fpos_t)offset != offset) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - offset = -1; - } -#endif /* __LARGE64_FILES */ - return (_fpos_t) offset; -} - -#ifdef __LARGE64_FILES -static _fpos64_t -fcseeker64 (struct _reent *ptr, - void *cookie, - _fpos64_t pos, - int whence) -{ - _off64_t offset; - fccookie *c = (fccookie *) cookie; - errno = 0; - if (c->seekfn (c->cookie, &offset, whence) < 0 && errno) - _REENT_ERRNO(ptr) = errno; - return (_fpos64_t) offset; -} -#endif /* __LARGE64_FILES */ - -static int -fccloser (struct _reent *ptr, - void *cookie) -{ - int result = 0; - fccookie *c = (fccookie *) cookie; - if (c->closefn) - { - errno = 0; - if ((result = c->closefn (c->cookie)) < 0 && errno) - _REENT_ERRNO(ptr) = errno; - } - _free_r (ptr, c); - return result; -} - -FILE * -_fopencookie_r (struct _reent *ptr, - void *cookie, - const char *mode, - cookie_io_functions_t functions) -{ - FILE *fp; - fccookie *c; - int flags; - int dummy; - - if ((flags = __sflags (ptr, mode, &dummy)) == 0) - return NULL; - if (((flags & (__SRD | __SRW)) && !functions.read) - || ((flags & (__SWR | __SRW)) && !functions.write)) - { - _REENT_ERRNO(ptr) = EINVAL; - return NULL; - } - if ((fp = __sfp (ptr)) == NULL) - return NULL; - if ((c = (fccookie *) _malloc_r (ptr, sizeof *c)) == NULL) - { - _newlib_sfp_lock_start (); - fp->_flags = 0; /* release */ -#ifndef __SINGLE_THREAD__ - __lock_close_recursive (fp->_lock); -#endif - _newlib_sfp_lock_end (); - return NULL; - } - - _newlib_flockfile_start (fp); - fp->_file = -1; - fp->_flags = flags; - c->cookie = cookie; - c->fp = fp; - fp->_cookie = c; - c->readfn = functions.read; - fp->_read = fcreader; - c->writefn = functions.write; - fp->_write = fcwriter; - c->seekfn = functions.seek; - fp->_seek = functions.seek ? fcseeker : NULL; -#ifdef __LARGE64_FILES - fp->_seek64 = functions.seek ? fcseeker64 : NULL; - fp->_flags |= __SL64; -#endif - c->closefn = functions.close; - fp->_close = fccloser; - _newlib_flockfile_end (fp); - return fp; -} - -#ifndef _REENT_ONLY -FILE * -fopencookie (void *cookie, - const char *mode, - cookie_io_functions_t functions) -{ - return _fopencookie_r (_REENT, cookie, mode, functions); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/fprintf.c b/lib/stdio/fprintf.c deleted file mode 100644 index b6c0ea8..0000000 --- a/lib/stdio/fprintf.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in sprintf.c */ - -#include <_ansi.h> -#include -#include -#include - -int -_fprintf_r (struct _reent *ptr, - FILE *__restrict fp, - const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - - va_start (ap, fmt); - ret = _vfprintf_r (ptr, fp, fmt, ap); - va_end (ap); - return ret; -} - -#ifdef _NANO_FORMATTED_IO -int -_fiprintf_r (struct _reent *, FILE *, const char *, ...) - _ATTRIBUTE ((__alias__("_fprintf_r"))); -#endif - -#ifndef _REENT_ONLY - -int -fprintf (FILE *__restrict fp, - const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - - va_start (ap, fmt); - ret = _vfprintf_r (_REENT, fp, fmt, ap); - va_end (ap); - return ret; -} - -#ifdef _NANO_FORMATTED_IO -int -fiprintf (FILE *, const char *, ...) - _ATTRIBUTE ((__alias__("fprintf"))); -#endif -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/fpurge.c b/lib/stdio/fpurge.c deleted file mode 100644 index 93ac0e2..0000000 --- a/lib/stdio/fpurge.c +++ /dev/null @@ -1,110 +0,0 @@ -/* Copyright (C) 2009 Eric Blake - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -/* -FUNCTION -<>---discard pending file I/O - -INDEX - fpurge -INDEX - _fpurge_r -INDEX - __fpurge - -SYNOPSIS - #include - int fpurge(FILE *<[fp]>); - - int _fpurge_r(struct _reent *<[reent]>, FILE *<[fp]>); - - #include - #include - void __fpurge(FILE *<[fp]>); - - -DESCRIPTION -Use <> to clear all buffers of the given stream. For output -streams, this discards data not yet written to disk. For input streams, -this discards any data from <> and any data retrieved from disk -but not yet read via <>. This is more severe than <>, -and generally is only needed when manually altering the underlying file -descriptor of a stream. - -<<__fpurge>> behaves exactly like <> but does not return a value. - -The alternate function <<_fpurge_r>> is a reentrant version, where the -extra argument <[reent]> is a pointer to a reentrancy structure, and -<[fp]> must not be NULL. - -RETURNS -<> returns <<0>> unless <[fp]> is not valid, in which case it -returns <> and sets <>. - -PORTABILITY -These functions are not portable to any standard. - -No supporting OS subroutines are required. -*/ - -#include <_ansi.h> -#include -#ifndef __rtems__ -#include -#endif -#include -#include "local.h" - -/* Discard I/O from a single file. */ - -int -_fpurge_r (struct _reent *ptr, - register FILE * fp) -{ - int t; - - CHECK_INIT (ptr, fp); - - _newlib_flockfile_start (fp); - - t = fp->_flags; - if (!t) - { - _REENT_ERRNO(ptr) = EBADF; - _newlib_flockfile_exit (fp); - return EOF; - } - fp->_p = fp->_bf._base; - if ((t & __SWR) == 0) - { - fp->_r = 0; - if (HASUB (fp)) - FREEUB (ptr, fp); - } - else - fp->_w = t & (__SLBF | __SNBF) ? 0 : fp->_bf._size; - _newlib_flockfile_end (fp); - return 0; -} - -#ifndef _REENT_ONLY - -int -fpurge (register FILE * fp) -{ - return _fpurge_r (_REENT, fp); -} - -#ifndef __rtems__ - -void -__fpurge (register FILE * fp) -{ - _fpurge_r (_REENT, fp); -} - -#endif - -#endif /* _REENT_ONLY */ diff --git a/lib/stdio/fputc.c b/lib/stdio/fputc.c deleted file mode 100644 index 5dfa9c0..0000000 --- a/lib/stdio/fputc.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---write a character on a stream or file - -INDEX - fputc -INDEX - fputc_unlocked -INDEX - _fputc_r -INDEX - _fputc_unlocked_r - -SYNOPSIS - #include - int fputc(int <[ch]>, FILE *<[fp]>); - - #define _BSD_SOURCE - #include - int fputc_unlocked(int <[ch]>, FILE *<[fp]>); - - #include - int _fputc_r(struct _rent *<[ptr]>, int <[ch]>, FILE *<[fp]>); - - #include - int _fputc_unlocked_r(struct _rent *<[ptr]>, int <[ch]>, FILE *<[fp]>); - -DESCRIPTION -<> converts the argument <[ch]> from an <> to an -<>, then writes it to the file or stream identified by -<[fp]>. - -If the file was opened with append mode (or if the stream cannot -support positioning), then the new character goes at the end of the -file or stream. Otherwise, the new character is written at the -current value of the position indicator, and the position indicator -oadvances by one. - -For a macro version of this function, see <>. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -The <<_fputc_r>> and <<_fputc_unlocked_r>> functions are simply reentrant -versions of the above that take an additional reentrant structure -argument: <[ptr]>. - -RETURNS -If successful, <> returns its argument <[ch]>. If an error -intervenes, the result is <>. You can use `<)>>' to -query for errors. - -PORTABILITY -<> is required by ANSI C. - -<> is a BSD extension also provided by GNU libc. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include "local.h" - -int -_fputc_r (struct _reent *ptr, - int ch, - FILE * file) -{ - int result; - CHECK_INIT(ptr, file); - _newlib_flockfile_start (file); - result = _putc_r (ptr, ch, file); - _newlib_flockfile_end (file); - return result; -} - -#ifndef _REENT_ONLY -int -fputc (int ch, - FILE * file) -{ -#if !defined(__OPTIMIZE_SIZE__) && !defined(PREFER_SIZE_OVER_SPEED) - int result; - struct _reent *reent = _REENT; - - CHECK_INIT(reent, file); - _newlib_flockfile_start (file); - result = _putc_r (reent, ch, file); - _newlib_flockfile_end (file); - return result; -#else - return _fputc_r (_REENT, ch, file); -#endif -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/fputc_u.c b/lib/stdio/fputc_u.c deleted file mode 100644 index 9e16069..0000000 --- a/lib/stdio/fputc_u.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include -#include "local.h" - -int -_fputc_unlocked_r (struct _reent *ptr, - int ch, - FILE * file) -{ - CHECK_INIT(ptr, file); - return _putc_unlocked_r (ptr, ch, file); -} - -#ifndef _REENT_ONLY -int -fputc_unlocked (int ch, - FILE * file) -{ -#if !defined(__OPTIMIZE_SIZE__) && !defined(PREFER_SIZE_OVER_SPEED) - struct _reent *reent = _REENT; - - CHECK_INIT(reent, file); - return _putc_unlocked_r (reent, ch, file); -#else - return _fputc_unlocked_r (_REENT, ch, file); -#endif -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/fputs.c b/lib/stdio/fputs.c deleted file mode 100644 index 4e9cb75..0000000 --- a/lib/stdio/fputs.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---write a character string in a file or stream - -INDEX - fputs -INDEX - fputs_unlocked -INDEX - _fputs_r -INDEX - _fputs_unlocked_r - -SYNOPSIS - #include - int fputs(const char *restrict <[s]>, FILE *restrict <[fp]>); - - #define _GNU_SOURCE - #include - int fputs_unlocked(const char *restrict <[s]>, FILE *restrict <[fp]>); - - #include - int _fputs_r(struct _reent *<[ptr]>, const char *restrict <[s]>, FILE *restrict <[fp]>); - - #include - int _fputs_unlocked_r(struct _reent *<[ptr]>, const char *restrict <[s]>, FILE *restrict <[fp]>); - -DESCRIPTION -<> writes the string at <[s]> (but without the trailing null) -to the file or stream identified by <[fp]>. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -<<_fputs_r>> and <<_fputs_unlocked_r>> are simply reentrant versions of the -above that take an additional reentrant struct pointer argument: <[ptr]>. - -RETURNS -If successful, the result is <<0>>; otherwise, the result is <>. - -PORTABILITY -ANSI C requires <>, but does not specify that the result on -success must be <<0>>; any non-negative value is permitted. - -<> is a GNU extension. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include "fvwrite.h" -#include "local.h" - -#ifdef __IMPL_UNLOCKED__ -#define _fputs_r _fputs_unlocked_r -#define fputs fputs_unlocked -#endif - -/* - * Write the given string to the given file. - */ -int -_fputs_r (struct _reent * ptr, - char const *__restrict s, - FILE *__restrict fp) -{ -#ifdef _FVWRITE_IN_STREAMIO - int result; - struct __suio uio; - struct __siov iov; - - iov.iov_base = s; - iov.iov_len = uio.uio_resid = strlen (s); - uio.uio_iov = &iov; - uio.uio_iovcnt = 1; - - CHECK_INIT(ptr, fp); - - _newlib_flockfile_start (fp); - ORIENT (fp, -1); - result = __sfvwrite_r (ptr, fp, &uio); - _newlib_flockfile_end (fp); - return result; -#else - const char *p = s; - - CHECK_INIT(ptr, fp); - - _newlib_flockfile_start (fp); - ORIENT (fp, -1); - /* Make sure we can write. */ - if (cantwrite (ptr, fp)) - goto error; - - while (*p) - { - if (__sputc_r (ptr, *p++, fp) == EOF) - goto error; - } - _newlib_flockfile_exit (fp); - return 0; - -error: - _newlib_flockfile_end (fp); - return EOF; -#endif -} - -#ifndef _REENT_ONLY -int -fputs (char const *__restrict s, - FILE *__restrict fp) -{ - return _fputs_r (_REENT, s, fp); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/fputs_u.c b/lib/stdio/fputs_u.c deleted file mode 100644 index 3b03cec..0000000 --- a/lib/stdio/fputs_u.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define __IMPL_UNLOCKED__ -#include "fputs.c" diff --git a/lib/stdio/fputwc.c b/lib/stdio/fputwc.c deleted file mode 100644 index 9a4e80d..0000000 --- a/lib/stdio/fputwc.c +++ /dev/null @@ -1,186 +0,0 @@ -/*- - * Copyright (c) 2002-2004 Tim J. Robbins. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>, <>, <>---write a wide character on a stream or file - -INDEX - fputwc -INDEX - fputwc_unlocked -INDEX - _fputwc_r -INDEX - _fputwc_unlocked_r -INDEX - putwc -INDEX - putwc_unlocked -INDEX - _putwc_r -INDEX - _putwc_unlocked_r - -SYNOPSIS - #include - #include - wint_t fputwc(wchar_t <[wc]>, FILE *<[fp]>); - - #define _GNU_SOURCE - #include - #include - wint_t fputwc_unlocked(wchar_t <[wc]>, FILE *<[fp]>); - - #include - #include - wint_t _fputwc_r(struct _reent *<[ptr]>, wchar_t <[wc]>, FILE *<[fp]>); - - #include - #include - wint_t _fputwc_unlocked_r(struct _reent *<[ptr]>, wchar_t <[wc]>, FILE *<[fp]>); - - #include - #include - wint_t putwc(wchar_t <[wc]>, FILE *<[fp]>); - - #define _GNU_SOURCE - #include - #include - wint_t putwc_unlocked(wchar_t <[wc]>, FILE *<[fp]>); - - #include - #include - wint_t _putwc_r(struct _reent *<[ptr]>, wchar_t <[wc]>, FILE *<[fp]>); - - #include - #include - wint_t _putwc_unlocked_r(struct _reent *<[ptr]>, wchar_t <[wc]>, FILE *<[fp]>); - -DESCRIPTION -<> writes the wide character argument <[wc]> to the file or -stream identified by <[fp]>. - -If the file was opened with append mode (or if the stream cannot -support positioning), then the new wide character goes at the end of the -file or stream. Otherwise, the new wide character is written at the -current value of the position indicator, and the position indicator -oadvances by one. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -The <> and <> functions or macros function identically -to <> and <>. They may be implemented as a macro, and -may evaluate its argument more than once. There is no reason ever to use them. - -The <<_fputwc_r>>, <<_putwc_r>>, <<_fputwc_unlocked_r>>, and -<<_putwc_unlocked_r>> functions are simply reentrant versions of the above -that take an additional reentrant structure argument: <[ptr]>. - -RETURNS -If successful, <> and <> return their argument <[wc]>. -If an error intervenes, the result is <>. You can use -`<)>>' to query for errors. - -PORTABILITY -<> and <> are required by C99 and POSIX.1-2001. - -<> and <> are GNU extensions. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include "local.h" - -wint_t -__fputwc (struct _reent *ptr, - wchar_t wc, - FILE *fp) -{ - char buf[MB_LEN_MAX]; - size_t i, len; - - if (MB_CUR_MAX == 1 && wc > 0 && wc <= UCHAR_MAX) - { - /* - * Assume single-byte locale with no special encoding. - * A more careful test would be to check - * _CurrentRuneLocale->encoding. - */ - *buf = (unsigned char)wc; - len = 1; - } - else - { - if ((len = _wcrtomb_r (ptr, buf, wc, &fp->_mbstate)) == (size_t) -1) - { - fp->_flags |= __SERR; - return WEOF; - } - } - - for (i = 0; i < len; i++) - if (__sputc_r (ptr, (unsigned char) buf[i], fp) == EOF) - return WEOF; - - return (wint_t) wc; -} - -wint_t -_fputwc_r (struct _reent *ptr, - wchar_t wc, - FILE *fp) -{ - wint_t r; - - _newlib_flockfile_start (fp); - ORIENT(fp, 1); - r = __fputwc(ptr, wc, fp); - _newlib_flockfile_end (fp); - return r; -} - -wint_t -fputwc (wchar_t wc, - FILE *fp) -{ - struct _reent *reent = _REENT; - - CHECK_INIT(reent, fp); - return _fputwc_r (reent, wc, fp); -} diff --git a/lib/stdio/fputwc_u.c b/lib/stdio/fputwc_u.c deleted file mode 100644 index d4e5153..0000000 --- a/lib/stdio/fputwc_u.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include -#include -#include "local.h" - -wint_t -_fputwc_unlocked_r (struct _reent *ptr, - wchar_t wc, - FILE *fp) -{ - ORIENT(fp, 1); - return __fputwc(ptr, wc, fp); -} - -wint_t -fputwc_unlocked (wchar_t wc, - FILE *fp) -{ - struct _reent *reent = _REENT; - - CHECK_INIT(reent, fp); - return _fputwc_unlocked_r (reent, wc, fp); -} diff --git a/lib/stdio/fputws.c b/lib/stdio/fputws.c deleted file mode 100644 index 92f2cbf..0000000 --- a/lib/stdio/fputws.c +++ /dev/null @@ -1,167 +0,0 @@ -/*- - * Copyright (c) 2002-2004 Tim J. Robbins. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>---write a wide character string in a file or stream - -INDEX - fputws -INDEX - fputws_unlocked -INDEX - _fputws_r -INDEX - _fputws_unlocked_r - -SYNOPSIS - #include - int fputws(const wchar_t *__restrict <[ws]>, FILE *__restrict <[fp]>); - - #define _GNU_SOURCE - #include - int fputws_unlocked(const wchar_t *__restrict <[ws]>, FILE *__restrict <[fp]>); - - #include - int _fputws_r(struct _reent *<[ptr]>, const wchar_t *<[ws]>, - FILE *<[fp]>); - - #include - int _fputws_unlocked_r(struct _reent *<[ptr]>, const wchar_t *<[ws]>, - FILE *<[fp]>); - -DESCRIPTION -<> writes the wide character string at <[ws]> (but without the -trailing null) to the file or stream identified by <[fp]>. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -<<_fputws_r>> and <<_fputws_unlocked_r>> are simply reentrant versions of the -above that take an additional reentrant struct pointer argument: <[ptr]>. - -RETURNS -If successful, the result is a non-negative integer; otherwise, the result -is <<-1>> to indicate an error. - -PORTABILITY -<> is required by C99 and POSIX.1-2001. - -<> is a GNU extension. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "fvwrite.h" -#include "local.h" - -#ifdef __IMPL_UNLOCKED__ -#define _fputws_r _fputws_unlocked_r -#define fputws fputws_unlocked -#endif - -int -_fputws_r (struct _reent *ptr, - const wchar_t *ws, - FILE *fp) -{ - size_t nbytes; - char buf[BUFSIZ]; -#ifdef _FVWRITE_IN_STREAMIO - struct __suio uio; - struct __siov iov; - - _newlib_flockfile_start (fp); - ORIENT (fp, 1); - if (cantwrite (ptr, fp) != 0) - goto error; - uio.uio_iov = &iov; - uio.uio_iovcnt = 1; - iov.iov_base = buf; - do - { - nbytes = _wcsrtombs_r(ptr, buf, &ws, sizeof (buf), &fp->_mbstate); - if (nbytes == (size_t) -1) - goto error; - iov.iov_len = uio.uio_resid = nbytes; - if (__sfvwrite_r(ptr, fp, &uio) != 0) - goto error; - } - while (ws != NULL); - _newlib_flockfile_exit (fp); - return (0); - -error: - _newlib_flockfile_end (fp); - return (-1); -#else - _newlib_flockfile_start (fp); - ORIENT (fp, 1); - if (cantwrite (ptr, fp) != 0) - goto error; - - do - { - size_t i = 0; - nbytes = _wcsrtombs_r (ptr, buf, &ws, sizeof (buf), &fp->_mbstate); - if (nbytes == (size_t) -1) - goto error; - while (i < nbytes) - { - if (__sputc_r (ptr, buf[i], fp) == EOF) - goto error; - i++; - } - } - while (ws != NULL); - _newlib_flockfile_exit (fp); - return (0); - -error: - _newlib_flockfile_end (fp); - return (-1); -#endif -} - -int -fputws (const wchar_t *__restrict ws, - FILE *__restrict fp) -{ - struct _reent *reent = _REENT; - - CHECK_INIT (reent, fp); - return _fputws_r (reent, ws, fp); -} diff --git a/lib/stdio/fputws_u.c b/lib/stdio/fputws_u.c deleted file mode 100644 index 0583e79..0000000 --- a/lib/stdio/fputws_u.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define __IMPL_UNLOCKED__ -#include "fputws.c" diff --git a/lib/stdio/fread.c b/lib/stdio/fread.c deleted file mode 100644 index df83214..0000000 --- a/lib/stdio/fread.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - * Copyright (c) 1990, 2007 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---read array elements from a file - -INDEX - fread -INDEX - fread_unlocked -INDEX - _fread_r -INDEX - _fread_unlocked_r - -SYNOPSIS - #include - size_t fread(void *restrict <[buf]>, size_t <[size]>, size_t <[count]>, - FILE *restrict <[fp]>); - - #define _BSD_SOURCE - #include - size_t fread_unlocked(void *restrict <[buf]>, size_t <[size]>, size_t <[count]>, - FILE *restrict <[fp]>); - - #include - size_t _fread_r(struct _reent *<[ptr]>, void *restrict <[buf]>, - size_t <[size]>, size_t <[count]>, FILE *restrict <[fp]>); - - #include - size_t _fread_unlocked_r(struct _reent *<[ptr]>, void *restrict <[buf]>, - size_t <[size]>, size_t <[count]>, FILE *restrict <[fp]>); - -DESCRIPTION -<> attempts to copy, from the file or stream identified by -<[fp]>, <[count]> elements (each of size <[size]>) into memory, -starting at <[buf]>. <> may copy fewer elements than -<[count]> if an error, or end of file, intervenes. - -<> also advances the file position indicator (if any) for -<[fp]> by the number of @emph{characters} actually read. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -<<_fread_r>> and <<_fread_unlocked_r>> are simply reentrant versions of the -above that take an additional reentrant structure pointer argument: <[ptr]>. - -RETURNS -The result of <> is the number of elements it succeeded in -reading. - -PORTABILITY -ANSI C requires <>. - -<> is a BSD extension also provided by GNU libc. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#ifdef __IMPL_UNLOCKED__ -#define _fread_r _fread_unlocked_r -#define fread fread_unlocked -#endif - -#ifdef __SCLE -static size_t -crlf_r (struct _reent * ptr, - FILE * fp, - char * buf, - size_t count, - int eof) -{ - int r; - char *s, *d, *e; - - if (count == 0) - return 0; - - e = buf + count; - for (s=d=buf; s_r < 0) - fp->_r = 0; - total = resid; - p = buf; - -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) - - /* Optimize unbuffered I/O. */ - if (fp->_flags & __SNBF) - { - /* First copy any available characters from ungetc buffer. */ - int copy_size = resid > fp->_r ? fp->_r : resid; - (void) memcpy ((void *) p, (void *) fp->_p, (size_t) copy_size); - fp->_p += copy_size; - fp->_r -= copy_size; - p += copy_size; - resid -= copy_size; - - /* If still more data needed, free any allocated ungetc buffer. */ - if (HASUB (fp) && resid > 0) - FREEUB (ptr, fp); - - /* Finally read directly into user's buffer if needed. */ - while (resid > 0) - { - int rc = 0; - /* save fp buffering state */ - void *old_base = fp->_bf._base; - void * old_p = fp->_p; - int old_size = fp->_bf._size; - /* allow __refill to use user's buffer */ - fp->_bf._base = (unsigned char *) p; - fp->_bf._size = resid; - fp->_p = (unsigned char *) p; - rc = __srefill_r (ptr, fp); - /* restore fp buffering back to original state */ - fp->_bf._base = old_base; - fp->_bf._size = old_size; - fp->_p = old_p; - resid -= fp->_r; - p += fp->_r; - fp->_r = 0; - if (rc) - { -#ifdef __SCLE - if (fp->_flags & __SCLE) - { - _newlib_flockfile_exit (fp); - return crlf_r (ptr, fp, buf, total-resid, 1) / size; - } -#endif - _newlib_flockfile_exit (fp); - return (total - resid) / size; - } - } - } - else -#endif /* !PREFER_SIZE_OVER_SPEED && !__OPTIMIZE_SIZE__ */ - { - while (resid > (r = fp->_r)) - { - (void) memcpy ((void *) p, (void *) fp->_p, (size_t) r); - fp->_p += r; - /* fp->_r = 0 ... done in __srefill */ - p += r; - resid -= r; - if (__srefill_r (ptr, fp)) - { - /* no more input: return partial result */ -#ifdef __SCLE - if (fp->_flags & __SCLE) - { - _newlib_flockfile_exit (fp); - return crlf_r (ptr, fp, buf, total-resid, 1) / size; - } -#endif - _newlib_flockfile_exit (fp); - return (total - resid) / size; - } - } - (void) memcpy ((void *) p, (void *) fp->_p, resid); - fp->_r -= resid; - fp->_p += resid; - } - - /* Perform any CR/LF clean-up if necessary. */ -#ifdef __SCLE - if (fp->_flags & __SCLE) - { - _newlib_flockfile_exit (fp); - return crlf_r(ptr, fp, buf, total, 0) / size; - } -#endif - _newlib_flockfile_end (fp); - return count; -} - -#ifndef _REENT_ONLY -size_t -fread (void *__restrict buf, - size_t size, - size_t count, - FILE *__restrict fp) -{ - return _fread_r (_REENT, buf, size, count, fp); -} -#endif diff --git a/lib/stdio/fread_u.c b/lib/stdio/fread_u.c deleted file mode 100644 index 48239a9..0000000 --- a/lib/stdio/fread_u.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define __IMPL_UNLOCKED__ -#include "fread.c" diff --git a/lib/stdio/freopen.c b/lib/stdio/freopen.c deleted file mode 100644 index f0da9a1..0000000 --- a/lib/stdio/freopen.c +++ /dev/null @@ -1,252 +0,0 @@ -/* - * Copyright (c) 1990, 2007 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---open a file using an existing file descriptor - -INDEX - freopen -INDEX - _freopen_r - -SYNOPSIS - #include - FILE *freopen(const char *restrict <[file]>, const char *restrict <[mode]>, - FILE *restrict <[fp]>); - FILE *_freopen_r(struct _reent *<[ptr]>, const char *restrict <[file]>, - const char *restrict <[mode]>, FILE *restrict <[fp]>); - -DESCRIPTION -Use this variant of <> if you wish to specify a particular file -descriptor <[fp]> (notably <>, <>, or <>) for -the file. - -If <[fp]> was associated with another file or stream, <> -closes that other file or stream (but ignores any errors while closing -it). - -<[file]> and <[mode]> are used just as in <>. - -If <[file]> is <>, the underlying stream is modified rather than -closed. The file cannot be given a more permissive access mode (for -example, a <[mode]> of "w" will fail on a read-only file descriptor), -but can change status such as append or binary mode. If modification -is not possible, failure occurs. - -RETURNS -If successful, the result is the same as the argument <[fp]>. If the -file cannot be opened as specified, the result is <>. - -PORTABILITY -ANSI C requires <>. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" - -/* - * Re-direct an existing, open (probably) file to some other file. - */ - -FILE * -_freopen_r (struct _reent *ptr, - const char *__restrict file, - const char *__restrict mode, - register FILE *__restrict fp) -{ - register int f; - int flags, oflags, oflags2; - int e = 0; - - CHECK_INIT (ptr, fp); - - /* We can't use the _newlib_flockfile_XXX macros here due to the - interlocked locking with the sfp_lock. */ -#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT - int __oldcancel; - pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &__oldcancel); -#endif - oflags2 = fp->_flags2; - if (!(oflags2 & __SNLK)) - _flockfile (fp); - - if ((flags = __sflags (ptr, mode, &oflags)) == 0) - { - if (!(oflags2 & __SNLK)) - _funlockfile (fp); -#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT - pthread_setcancelstate (__oldcancel, &__oldcancel); -#endif - _fclose_r (ptr, fp); - return NULL; - } - - /* - * Remember whether the stream was open to begin with, and - * which file descriptor (if any) was associated with it. - * If it was attached to a descriptor, defer closing it, - * so that, e.g., freopen("/dev/stdin", "r", stdin) works. - * This is unnecessary if it was not a Unix file. - */ - - if (fp->_flags == 0) - fp->_flags = __SEOF; /* hold on to it */ - else - { - if (fp->_flags & __SWR) - _fflush_r (ptr, fp); - /* - * If close is NULL, closing is a no-op, hence pointless. - * If file is NULL, the file should not be closed. - */ - if (fp->_close != NULL && file != NULL) - fp->_close (ptr, fp->_cookie); - } - - /* - * Now get a new descriptor to refer to the new file, or reuse the - * existing file descriptor if file is NULL. - */ - - if (file != NULL) - { - f = _open_r (ptr, (char *) file, oflags, 0666); - e = _REENT_ERRNO(ptr); - } - else - { -#ifdef HAVE_FCNTL - int oldflags; - /* - * Reuse the file descriptor, but only if the new access mode is - * equal or less permissive than the old. F_SETFL correctly - * ignores creation flags. - */ - f = fp->_file; - if ((oldflags = _fcntl_r (ptr, f, F_GETFL, 0)) == -1 - || ! ((oldflags & O_ACCMODE) == O_RDWR - || ((oldflags ^ oflags) & O_ACCMODE) == 0) - || _fcntl_r (ptr, f, F_SETFL, oflags) == -1) - f = -1; -#else - /* We cannot modify without fcntl support. */ - f = -1; -#endif - -#ifdef __SCLE - /* - * F_SETFL doesn't change textmode. Don't mess with modes of ttys. - */ - if (0 <= f && ! _isatty_r (ptr, f) - && setmode (f, oflags & (O_BINARY | O_TEXT)) == -1) - f = -1; -#endif - - if (f < 0) - { - e = EBADF; - if (fp->_close != NULL) - fp->_close (ptr, fp->_cookie); - } - } - - /* - * Finish closing fp. Even if the open succeeded above, - * we cannot keep fp->_base: it may be the wrong size. - * This loses the effect of any setbuffer calls, - * but stdio has always done this before. - */ - - if (fp->_flags & __SMBF) - _free_r (ptr, (char *) fp->_bf._base); - fp->_w = 0; - fp->_r = 0; - fp->_p = NULL; - fp->_bf._base = NULL; - fp->_bf._size = 0; - fp->_lbfsize = 0; - if (HASUB (fp)) - FREEUB (ptr, fp); - fp->_ub._size = 0; - if (HASLB (fp)) - FREELB (ptr, fp); - fp->_lb._size = 0; - fp->_flags &= ~__SORD; - fp->_flags2 &= ~__SWID; - memset (&fp->_mbstate, 0, sizeof (_mbstate_t)); - - if (f < 0) - { /* did not get it after all */ - __sfp_lock_acquire (); - fp->_flags = 0; /* set it free */ - _REENT_ERRNO(ptr) = e; /* restore in case _close clobbered */ - if (!(oflags2 & __SNLK)) - _funlockfile (fp); -#ifndef __SINGLE_THREAD__ - __lock_close_recursive (fp->_lock); -#endif - __sfp_lock_release (); -#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT - pthread_setcancelstate (__oldcancel, &__oldcancel); -#endif - return NULL; - } - - fp->_flags = flags; - fp->_file = f; - fp->_cookie = (void *) fp; - fp->_read = __sread; - fp->_write = __swrite; - fp->_seek = __sseek; - fp->_close = __sclose; - -#ifdef __SCLE - if (__stextmode (fp->_file)) - fp->_flags |= __SCLE; -#endif - - if (!(oflags2 & __SNLK)) - _funlockfile (fp); -#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT - pthread_setcancelstate (__oldcancel, &__oldcancel); -#endif - return fp; -} - -#ifndef _REENT_ONLY - -FILE * -freopen (const char *__restrict file, - const char *__restrict mode, - register FILE *__restrict fp) -{ - return _freopen_r (_REENT, file, mode, fp); -} - -#endif /*!_REENT_ONLY */ diff --git a/lib/stdio/fscanf.c b/lib/stdio/fscanf.c deleted file mode 100644 index 40964d2..0000000 --- a/lib/stdio/fscanf.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -fscanf(FILE *__restrict fp, const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - - va_start (ap, fmt); - ret = _vfscanf_r (_REENT, fp, fmt, ap); - va_end (ap); - return ret; -} - -#ifdef _NANO_FORMATTED_IO -int -fiscanf (FILE *, const char *, ...) - _ATTRIBUTE ((__alias__("fscanf"))); -#endif - -#endif /* !_REENT_ONLY */ - -int -_fscanf_r(struct _reent *ptr, FILE *__restrict fp, const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - - va_start (ap, fmt); - ret = _vfscanf_r (ptr, fp, fmt, ap); - va_end (ap); - return (ret); -} - -#ifdef _NANO_FORMATTED_IO -int -_fiscanf_r (struct _reent *, FILE *, const char *, ...) - _ATTRIBUTE ((__alias__("_fscanf_r"))); -#endif diff --git a/lib/stdio/fseek.c b/lib/stdio/fseek.c deleted file mode 100644 index e9278af..0000000 --- a/lib/stdio/fseek.c +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---set file position - -INDEX - fseek -INDEX - fseeko -INDEX - _fseek_r -INDEX - _fseeko_r - -SYNOPSIS - #include - int fseek(FILE *<[fp]>, long <[offset]>, int <[whence]>); - int fseeko(FILE *<[fp]>, off_t <[offset]>, int <[whence]>); - int _fseek_r(struct _reent *<[ptr]>, FILE *<[fp]>, - long <[offset]>, int <[whence]>); - int _fseeko_r(struct _reent *<[ptr]>, FILE *<[fp]>, - off_t <[offset]>, int <[whence]>); - -DESCRIPTION -Objects of type <> can have a ``position'' that records how much -of the file your program has already read. Many of the <> functions -depend on this position, and many change it as a side effect. - -You can use <>/<> to set the position for the file identified by -<[fp]>. The value of <[offset]> determines the new position, in one -of three ways selected by the value of <[whence]> (defined as macros -in `<>'): - -<>---<[offset]> is the absolute file position (an offset -from the beginning of the file) desired. <[offset]> must be positive. - -<>---<[offset]> is relative to the current file position. -<[offset]> can meaningfully be either positive or negative. - -<>---<[offset]> is relative to the current end of file. -<[offset]> can meaningfully be either positive (to increase the size -of the file) or negative. - -See <>/<> to determine the current file position. - -RETURNS -<>/<> return <<0>> when successful. On failure, the -result is <>. The reason for failure is indicated in <>: -either <> (the stream identified by <[fp]> doesn't support -repositioning) or <> (invalid file position). - -PORTABILITY -ANSI C requires <>. - -<> is defined by the Single Unix specification. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -int -_fseek_r (struct _reent *ptr, - register FILE *fp, - long offset, - int whence) -{ - return _fseeko_r (ptr, fp, offset, whence); -} - -#ifndef _REENT_ONLY - -int -fseek (register FILE *fp, - long offset, - int whence) -{ - return _fseek_r (_REENT, fp, offset, whence); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/fseeko.c b/lib/stdio/fseeko.c deleted file mode 100644 index 6fcc8ef..0000000 --- a/lib/stdio/fseeko.c +++ /dev/null @@ -1,368 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---set file position - -INDEX - fseek -INDEX - fseeko -INDEX - _fseek_r -INDEX - _fseeko_r - -SYNOPSIS - #include - int fseek(FILE *<[fp]>, long <[offset]>, int <[whence]>) - int fseeko(FILE *<[fp]>, off_t <[offset]>, int <[whence]>) - int _fseek_r(struct _reent *<[ptr]>, FILE *<[fp]>, - long <[offset]>, int <[whence]>) - int _fseeko_r(struct _reent *<[ptr]>, FILE *<[fp]>, - off_t <[offset]>, int <[whence]>) - -DESCRIPTION -Objects of type <> can have a ``position'' that records how much -of the file your program has already read. Many of the <> functions -depend on this position, and many change it as a side effect. - -You can use <>/<> to set the position for the file identified by -<[fp]>. The value of <[offset]> determines the new position, in one -of three ways selected by the value of <[whence]> (defined as macros -in `<>'): - -<>---<[offset]> is the absolute file position (an offset -from the beginning of the file) desired. <[offset]> must be positive. - -<>---<[offset]> is relative to the current file position. -<[offset]> can meaningfully be either positive or negative. - -<>---<[offset]> is relative to the current end of file. -<[offset]> can meaningfully be either positive (to increase the size -of the file) or negative. - -See <>/<> to determine the current file position. - -RETURNS -<>/<> return <<0>> when successful. On failure, the -result is <>. The reason for failure is indicated in <>: -either <> (the stream identified by <[fp]> doesn't support -repositioning) or <> (invalid file position). - -PORTABILITY -ANSI C requires <>. - -<> is defined by the Single Unix specification. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" - -#define POS_ERR (-(_fpos_t)1) - -/* - * Seek the given file to the given offset. - * `Whence' must be one of the three SEEK_* macros. - */ - -int -_fseeko_r (struct _reent *ptr, - register FILE *fp, - _off_t offset, - int whence) -{ - _fpos_t (*seekfn) (struct _reent *, void *, _fpos_t, int); - _fpos_t target; - _fpos_t curoff = 0; - size_t n; -#ifdef __USE_INTERNAL_STAT64 - struct stat64 st; -#else - struct stat st; -#endif - int havepos; - - /* Make sure stdio is set up. */ - - CHECK_INIT (ptr, fp); - - _newlib_flockfile_start (fp); - - /* If we've been doing some writing, and we're in append mode - then we don't really know where the filepos is. */ - - if (fp->_flags & __SAPP && fp->_flags & __SWR) - { - /* So flush the buffer and seek to the end. */ - _fflush_r (ptr, fp); - } - - /* Have to be able to seek. */ - - if ((seekfn = fp->_seek) == NULL) - { - _REENT_ERRNO(ptr) = ESPIPE; /* ??? */ - _newlib_flockfile_exit (fp); - return EOF; - } - - /* - * Change any SEEK_CUR to SEEK_SET, and check `whence' argument. - * After this, whence is either SEEK_SET or SEEK_END. - */ - - switch (whence) - { - case SEEK_CUR: - /* - * In order to seek relative to the current stream offset, - * we have to first find the current stream offset a la - * ftell (see ftell for details). - */ - _fflush_r (ptr, fp); /* may adjust seek offset on append stream */ - if (fp->_flags & __SOFF) - curoff = fp->_offset; - else - { - curoff = seekfn (ptr, fp->_cookie, (_fpos_t) 0, SEEK_CUR); - if (curoff == -1L) - { - _newlib_flockfile_exit (fp); - return EOF; - } - } - if (fp->_flags & __SRD) - { - curoff -= fp->_r; - if (HASUB (fp)) - curoff -= fp->_ur; - } - else if (fp->_flags & __SWR && fp->_p != NULL) - curoff += fp->_p - fp->_bf._base; - - offset += curoff; - whence = SEEK_SET; - havepos = 1; - break; - - case SEEK_SET: - case SEEK_END: - havepos = 0; - break; - - default: - _REENT_ERRNO(ptr) = EINVAL; - _newlib_flockfile_exit (fp); - return (EOF); - } - - /* - * Can only optimise if: - * reading (and not reading-and-writing); - * not unbuffered; and - * this is a `regular' Unix file (and hence seekfn==__sseek). - * We must check __NBF first, because it is possible to have __NBF - * and __SOPT both set. - */ - - if (fp->_bf._base == NULL) - __smakebuf_r (ptr, fp); - -#ifdef _FSEEK_OPTIMIZATION - if (fp->_flags & (__SWR | __SRW | __SNBF | __SNPT)) - goto dumb; - if ((fp->_flags & __SOPT) == 0) - { - if (seekfn != __sseek - || fp->_file < 0 -#ifdef __USE_INTERNAL_STAT64 - || _fstat64_r (ptr, fp->_file, &st) -#else - || _fstat_r (ptr, fp->_file, &st) -#endif - || (st.st_mode & S_IFMT) != S_IFREG) - { - fp->_flags |= __SNPT; - goto dumb; - } -#ifdef HAVE_BLKSIZE - fp->_blksize = st.st_blksize; -#else - fp->_blksize = 1024; -#endif - fp->_flags |= __SOPT; - } - - /* - * We are reading; we can try to optimise. - * Figure out where we are going and where we are now. - */ - - if (whence == SEEK_SET) - target = offset; - else - { -#ifdef __USE_INTERNAL_STAT64 - if (_fstat64_r (ptr, fp->_file, &st)) -#else - if (_fstat_r (ptr, fp->_file, &st)) -#endif - goto dumb; - target = st.st_size + offset; - } - - if (!havepos) - { - if (fp->_flags & __SOFF) - curoff = fp->_offset; - else - { - curoff = seekfn (ptr, fp->_cookie, 0L, SEEK_CUR); - if (curoff == POS_ERR) - goto dumb; - } - curoff -= fp->_r; - if (HASUB (fp)) - curoff -= fp->_ur; - } - - /* - * Compute the number of bytes in the input buffer (pretending - * that any ungetc() input has been discarded). Adjust current - * offset backwards by this count so that it represents the - * file offset for the first byte in the current input buffer. - */ - - if (HASUB (fp)) - { - curoff += fp->_r; /* kill off ungetc */ - n = fp->_up - fp->_bf._base; - curoff -= n; - n += fp->_ur; - } - else - { - n = fp->_p - fp->_bf._base; - curoff -= n; - n += fp->_r; - } - - /* - * If the target offset is within the current buffer, - * simply adjust the pointers, clear EOF, undo ungetc(), - * and return. - */ - - if (target >= curoff && target < curoff + n) - { - register int o = target - curoff; - - fp->_p = fp->_bf._base + o; - fp->_r = n - o; - if (HASUB (fp)) - FREEUB (ptr, fp); - fp->_flags &= ~__SEOF; - memset (&fp->_mbstate, 0, sizeof (_mbstate_t)); - _newlib_flockfile_exit (fp); - return 0; - } - - /* - * The place we want to get to is not within the current buffer, - * but we can still be kind to the kernel copyout mechanism. - * By aligning the file offset to a block boundary, we can let - * the kernel use the VM hardware to map pages instead of - * copying bytes laboriously. Using a block boundary also - * ensures that we only read one block, rather than two. - */ - - curoff = target & ~(fp->_blksize - 1); - if (seekfn (ptr, fp->_cookie, curoff, SEEK_SET) == POS_ERR) - goto dumb; - fp->_r = 0; - fp->_p = fp->_bf._base; - if (HASUB (fp)) - FREEUB (ptr, fp); - fp->_flags &= ~__SEOF; - n = target - curoff; - if (n) - { - if (__srefill_r (ptr, fp) || fp->_r < n) - goto dumb; - fp->_p += n; - fp->_r -= n; - } - memset (&fp->_mbstate, 0, sizeof (_mbstate_t)); - _newlib_flockfile_exit (fp); - return 0; - - /* - * We get here if we cannot optimise the seek ... just - * do it. Allow the seek function to change fp->_bf._base. - */ -#endif - -dumb: - if (_fflush_r (ptr, fp) - || seekfn (ptr, fp->_cookie, offset, whence) == POS_ERR) - { - _newlib_flockfile_exit (fp); - return EOF; - } - /* success: clear EOF indicator and discard ungetc() data */ - if (HASUB (fp)) - FREEUB (ptr, fp); - fp->_p = fp->_bf._base; - fp->_r = 0; - /* fp->_w = 0; *//* unnecessary (I think...) */ - fp->_flags &= ~__SEOF; - /* Reset no-optimization flag after successful seek. The - no-optimization flag may be set in the case of a read - stream that is flushed which by POSIX/SUSv3 standards, - means that a corresponding seek must not optimize. The - optimization is then allowed if no subsequent flush - is performed. */ - fp->_flags &= ~__SNPT; - memset (&fp->_mbstate, 0, sizeof (_mbstate_t)); - _newlib_flockfile_end (fp); - return 0; -} - -#ifndef _REENT_ONLY - -int -fseeko (register FILE *fp, - _off_t offset, - int whence) -{ - return _fseeko_r (_REENT, fp, offset, whence); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/fsetlocking.c b/lib/stdio/fsetlocking.c deleted file mode 100644 index 062b93a..0000000 --- a/lib/stdio/fsetlocking.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -/* -FUNCTION -<<__fsetlocking>>---set or query locking mode on FILE stream - -INDEX - __fsetlocking - -SYNOPSIS - #include - #include - int __fsetlocking(FILE *<[fp]>, int <[type]>); - -DESCRIPTION -This function sets how the stdio functions handle locking of FILE <[fp]>. -The following values describe <[type]>: - -<> is the default state, where stdio functions -automatically lock and unlock the stream. - -<> means that automatic locking in stdio functions -is disabled. Applications which set this take all responsibility for file -locking themselves. - -<> returns the current locking mode without changing it. - -RETURNS -<<__fsetlocking>> returns the current locking mode of <[fp]>. - -PORTABILITY -This function originates from Solaris and is also provided by GNU libc. - -No supporting OS subroutines are required. -*/ - -#ifndef __rtems__ - -#include <_ansi.h> -#include -#include -#include "local.h" - -int -__fsetlocking (FILE * fp, - int type) -{ - int result; - CHECK_INIT(_REENT, fp); - result = (fp->_flags2 & __SNLK) ? FSETLOCKING_BYCALLER : FSETLOCKING_INTERNAL; - switch (type) - { - case FSETLOCKING_BYCALLER: - fp->_flags2 |= __SNLK; - break; - case FSETLOCKING_INTERNAL: - fp->_flags2 &= ~__SNLK; - break; - case FSETLOCKING_QUERY: - default: - break; - } - return result; -} - -#endif /* __rtems__ */ diff --git a/lib/stdio/fsetpos.c b/lib/stdio/fsetpos.c deleted file mode 100644 index 6258600..0000000 --- a/lib/stdio/fsetpos.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---restore position of a stream or file - -INDEX - fsetpos -INDEX - _fsetpos_r - -SYNOPSIS - #include - int fsetpos(FILE *<[fp]>, const fpos_t *<[pos]>); - int _fsetpos_r(struct _reent *<[ptr]>, FILE *<[fp]>, - const fpos_t *<[pos]>); - -DESCRIPTION -Objects of type <> can have a ``position'' that records how much -of the file your program has already read. Many of the <> functions -depend on this position, and many change it as a side effect. - -You can use <> to return the file identified by <[fp]> to a previous -position <<*<[pos]>>> (after first recording it with <>). - -See <> for a similar facility. - -RETURNS -<> returns <<0>> when successful. If <> fails, the -result is <<1>>. The reason for failure is indicated in <>: -either <> (the stream identified by <[fp]> doesn't support -repositioning) or <> (invalid file position). - -PORTABILITY -ANSI C requires <>, but does not specify the nature of -<<*<[pos]>>> beyond identifying it as written by <>. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include - -int -_fsetpos_r (struct _reent * ptr, - FILE * iop, - const _fpos_t * pos) -{ - int x = _fseek_r (ptr, iop, *pos, SEEK_SET); - - if (x != 0) - return 1; - return 0; -} - -#ifndef _REENT_ONLY - -int -fsetpos (FILE * iop, - const _fpos_t * pos) -{ - return _fsetpos_r (_REENT, iop, pos); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/ftell.c b/lib/stdio/ftell.c deleted file mode 100644 index f68b3af..0000000 --- a/lib/stdio/ftell.c +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---return position in a stream or file - -INDEX - ftell -INDEX - ftello -INDEX - _ftell_r -INDEX - _ftello_r - -SYNOPSIS - #include - long ftell(FILE *<[fp]>); - off_t ftello(FILE *<[fp]>); - long _ftell_r(struct _reent *<[ptr]>, FILE *<[fp]>); - off_t _ftello_r(struct _reent *<[ptr]>, FILE *<[fp]>); - -DESCRIPTION -Objects of type <> can have a ``position'' that records how much -of the file your program has already read. Many of the <> functions -depend on this position, and many change it as a side effect. - -The result of <>/<> is the current position for a file -identified by <[fp]>. If you record this result, you can later -use it with <>/<> to return the file to this -position. The difference between <> and <> is that -<> returns <> and <> returns <>. - -In the current implementation, <>/<> simply uses a character -count to represent the file position; this is the same number that -would be recorded by <>. - -RETURNS -<>/<> return the file position, if possible. If they cannot do -this, they return <<-1L>>. Failure occurs on streams that do not support -positioning; the global <> indicates this condition with the -value <>. - -PORTABILITY -<> is required by the ANSI C standard, but the meaning of its -result (when successful) is not specified beyond requiring that it be -acceptable as an argument to <>. In particular, other -conforming C implementations may return a different result from -<> than what <> records. - -<> is defined by the Single Unix specification. - -No supporting OS subroutines are required. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -/* - * ftell: return current offset. - */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -long -_ftell_r (struct _reent *ptr, - register FILE * fp) -{ - _fpos_t pos; - - pos = _ftello_r (ptr, fp); - if ((long)pos != pos) - { - pos = -1; - _REENT_ERRNO(ptr) = EOVERFLOW; - } - return (long)pos; -} - -#ifndef _REENT_ONLY - -long -ftell (register FILE * fp) -{ - return _ftell_r (_REENT, fp); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/ftello.c b/lib/stdio/ftello.c deleted file mode 100644 index d62d48a..0000000 --- a/lib/stdio/ftello.c +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---return position in a stream or file - -INDEX - ftell -INDEX - ftello -INDEX - _ftell_r -INDEX - _ftello_r - -SYNOPSIS - #include - long ftell(FILE *<[fp]>); - off_t ftello(FILE *<[fp]>); - long _ftell_r(struct _reent *<[ptr]>, FILE *<[fp]>); - off_t _ftello_r(struct _reent *<[ptr]>, FILE *<[fp]>); - -DESCRIPTION -Objects of type <> can have a ``position'' that records how much -of the file your program has already read. Many of the <> functions -depend on this position, and many change it as a side effect. - -The result of <>/<> is the current position for a file -identified by <[fp]>. If you record this result, you can later -use it with <>/<> to return the file to this -position. The difference between <> and <> is that -<> returns <> and <> returns <>. - -In the current implementation, <>/<> simply uses a character -count to represent the file position; this is the same number that -would be recorded by <>. - -RETURNS -<>/<> return the file position, if possible. If they cannot do -this, they return <<-1L>>. Failure occurs on streams that do not support -positioning; the global <> indicates this condition with the -value <>. - -PORTABILITY -<> is required by the ANSI C standard, but the meaning of its -result (when successful) is not specified beyond requiring that it be -acceptable as an argument to <>. In particular, other -conforming C implementations may return a different result from -<> than what <> records. - -<> is defined by the Single Unix specification. - -No supporting OS subroutines are required. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -/* - * ftello: return current offset. - */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -_off_t -_ftello_r (struct _reent * ptr, - register FILE * fp) -{ - _fpos_t pos; - - /* Ensure stdio is set up. */ - - CHECK_INIT (ptr, fp); - - _newlib_flockfile_start (fp); - - if (fp->_seek == NULL) - { - _REENT_ERRNO(ptr) = ESPIPE; - _newlib_flockfile_exit (fp); - return (_off_t) -1; - } - - /* Find offset of underlying I/O object, then adjust for buffered bytes. */ - if (!(fp->_flags & __SRD) && (fp->_flags & __SWR) && - fp->_p != NULL && fp->_p - fp->_bf._base > 0 && - (fp->_flags & __SAPP)) - { - pos = fp->_seek (ptr, fp->_cookie, (_fpos_t) 0, SEEK_END); - if (pos == (_fpos_t) -1) - { - _newlib_flockfile_exit (fp); - return (_off_t) -1; - } - } - else if (fp->_flags & __SOFF) - pos = fp->_offset; - else - { - pos = fp->_seek (ptr, fp->_cookie, (_fpos_t) 0, SEEK_CUR); - if (pos == (_fpos_t) -1) - { - _newlib_flockfile_exit (fp); - return (_off_t) -1; - } - } - if (fp->_flags & __SRD) - { - /* - * Reading. Any unread characters (including - * those from ungetc) cause the position to be - * smaller than that in the underlying object. - */ - pos -= fp->_r; - if (HASUB (fp)) - pos -= fp->_ur; - } - else if ((fp->_flags & __SWR) && fp->_p != NULL) - { - /* - * Writing. Any buffered characters cause the - * position to be greater than that in the - * underlying object. - */ - pos += fp->_p - fp->_bf._base; - } - - _newlib_flockfile_end (fp); - return (_off_t) pos; -} - -#ifndef _REENT_ONLY - -_off_t -ftello (register FILE * fp) -{ - return _ftello_r (_REENT, fp); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/funopen.c b/lib/stdio/funopen.c deleted file mode 100644 index 4ed5019..0000000 --- a/lib/stdio/funopen.c +++ /dev/null @@ -1,272 +0,0 @@ -/* Copyright (C) 2007 Eric Blake - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -/* -FUNCTION -<>, <>, <>---open a stream with custom callbacks - -INDEX - funopen -INDEX - fropen -INDEX - fwopen - -SYNOPSIS - #include - FILE *funopen(const void *<[cookie]>, - int (*<[readfn]>) (void *cookie, char *buf, int n), - int (*<[writefn]>) (void *cookie, const char *buf, int n), - fpos_t (*<[seekfn]>) (void *cookie, fpos_t off, int whence), - int (*<[closefn]>) (void *cookie)); - FILE *fropen(const void *<[cookie]>, - int (*<[readfn]>) (void *cookie, char *buf, int n)); - FILE *fwopen(const void *<[cookie]>, - int (*<[writefn]>) (void *cookie, const char *buf, int n)); - -DESCRIPTION -<> creates a <> stream where I/O is performed using -custom callbacks. At least one of <[readfn]> and <[writefn]> must be -provided, which determines whether the stream behaves with mode <"r">, -<"w">, or <"r+">. - -<[readfn]> should return -1 on failure, or else the number of bytes -read (0 on EOF). It is similar to <>, except that rather -than bounds a transaction size, and <[cookie]> will be passed -as the first argument. A NULL <[readfn]> makes attempts to read the -stream fail. - -<[writefn]> should return -1 on failure, or else the number of bytes -written. It is similar to <>, except that rather than - bounds a transaction size, and <[cookie]> will be passed as -the first argument. A NULL <[writefn]> makes attempts to write the -stream fail. - -<[seekfn]> should return (fpos_t)-1 on failure, or else the current -file position. It is similar to <>, except that <[cookie]> -will be passed as the first argument. A NULL <[seekfn]> makes the -stream behave similarly to a pipe in relation to stdio functions that -require positioning. This implementation assumes fpos_t and off_t are -the same type. - -<[closefn]> should return -1 on failure, or 0 on success. It is -similar to <>, except that <[cookie]> will be passed as the -first argument. A NULL <[closefn]> merely flushes all data then lets -<> succeed. A failed close will still invalidate the stream. - -Read and write I/O functions are allowed to change the underlying -buffer on fully buffered or line buffered streams by calling -<>. They are also not required to completely fill or empty -the buffer. They are not, however, allowed to change streams from -unbuffered to buffered or to change the state of the line buffering -flag. They must also be prepared to have read or write calls occur on -buffers other than the one most recently specified. - -The functions <> and <> are convenience macros around -<> that only use the specified callback. - -RETURNS -The return value is an open FILE pointer on success. On error, -<> is returned, and <> will be set to EINVAL if a -function pointer is missing, ENOMEM if the stream cannot be created, -or EMFILE if too many streams are already open. - -PORTABILITY -This function is a newlib extension, copying the prototype from BSD. -It is not portable. See also the <> interface from Linux. - -Supporting OS subroutines required: <>. -*/ - -#include -#include -#include -#include "local.h" - -typedef int (*funread)(void *_cookie, char *_buf, _READ_WRITE_BUFSIZE_TYPE _n); -typedef int (*funwrite)(void *_cookie, const char *_buf, - _READ_WRITE_BUFSIZE_TYPE _n); -#ifdef __LARGE64_FILES -typedef _fpos64_t (*funseek)(void *_cookie, _fpos64_t _off, int _whence); -#else -typedef fpos_t (*funseek)(void *_cookie, fpos_t _off, int _whence); -#endif -typedef int (*funclose)(void *_cookie); - -typedef struct funcookie { - void *cookie; - funread readfn; - funwrite writefn; - funseek seekfn; - funclose closefn; -} funcookie; - -static _READ_WRITE_RETURN_TYPE -funreader (struct _reent *ptr, - void *cookie, - char *buf, - _READ_WRITE_BUFSIZE_TYPE n) -{ - int result; - funcookie *c = (funcookie *) cookie; - errno = 0; - if ((result = c->readfn (c->cookie, buf, n)) < 0 && errno) - _REENT_ERRNO(ptr) = errno; - return result; -} - -static _READ_WRITE_RETURN_TYPE -funwriter (struct _reent *ptr, - void *cookie, - const char *buf, - _READ_WRITE_BUFSIZE_TYPE n) -{ - int result; - funcookie *c = (funcookie *) cookie; - errno = 0; - if ((result = c->writefn (c->cookie, buf, n)) < 0 && errno) - _REENT_ERRNO(ptr) = errno; - return result; -} - -static _fpos_t -funseeker (struct _reent *ptr, - void *cookie, - _fpos_t off, - int whence) -{ - funcookie *c = (funcookie *) cookie; -#ifndef __LARGE64_FILES - fpos_t result; - errno = 0; - if ((result = c->seekfn (c->cookie, (fpos_t) off, whence)) < 0 && errno) - _REENT_ERRNO(ptr) = errno; -#else /* __LARGE64_FILES */ - _fpos64_t result; - errno = 0; - if ((result = c->seekfn (c->cookie, (_fpos64_t) off, whence)) < 0 && errno) - _REENT_ERRNO(ptr) = errno; - else if ((_fpos_t)result != result) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - result = -1; - } -#endif /* __LARGE64_FILES */ - return result; -} - -#ifdef __LARGE64_FILES -static _fpos64_t -funseeker64 (struct _reent *ptr, - void *cookie, - _fpos64_t off, - int whence) -{ - _fpos64_t result; - funcookie *c = (funcookie *) cookie; - errno = 0; - if ((result = c->seekfn (c->cookie, off, whence)) < 0 && errno) - _REENT_ERRNO(ptr) = errno; - return result; -} -#endif /* __LARGE64_FILES */ - -static int -funcloser (struct _reent *ptr, - void *cookie) -{ - int result = 0; - funcookie *c = (funcookie *) cookie; - if (c->closefn) - { - errno = 0; - if ((result = c->closefn (c->cookie)) < 0 && errno) - _REENT_ERRNO(ptr) = errno; - } - _free_r (ptr, c); - return result; -} - -FILE * -_funopen_r (struct _reent *ptr, - const void *cookie, - funread readfn, - funwrite writefn, - funseek seekfn, - funclose closefn) -{ - FILE *fp; - funcookie *c; - - if (!readfn && !writefn) - { - _REENT_ERRNO(ptr) = EINVAL; - return NULL; - } - if ((fp = __sfp (ptr)) == NULL) - return NULL; - if ((c = (funcookie *) _malloc_r (ptr, sizeof *c)) == NULL) - { - _newlib_sfp_lock_start (); - fp->_flags = 0; /* release */ -#ifndef __SINGLE_THREAD__ - __lock_close_recursive (fp->_lock); -#endif - _newlib_sfp_lock_end (); - return NULL; - } - - _newlib_flockfile_start (fp); - fp->_file = -1; - c->cookie = (void *) cookie; /* cast away const */ - fp->_cookie = c; - if (readfn) - { - c->readfn = readfn; - fp->_read = funreader; - if (writefn) - { - fp->_flags = __SRW; - c->writefn = writefn; - fp->_write = funwriter; - } - else - { - fp->_flags = __SRD; - c->writefn = NULL; - fp->_write = NULL; - } - } - else - { - fp->_flags = __SWR; - c->writefn = writefn; - fp->_write = funwriter; - c->readfn = NULL; - fp->_read = NULL; - } - c->seekfn = seekfn; - fp->_seek = seekfn ? funseeker : NULL; -#ifdef __LARGE64_FILES - fp->_seek64 = seekfn ? funseeker64 : NULL; - fp->_flags |= __SL64; -#endif - c->closefn = closefn; - fp->_close = funcloser; - _newlib_flockfile_end (fp); - return fp; -} - -#ifndef _REENT_ONLY -FILE * -funopen (const void *cookie, - funread readfn, - funwrite writefn, - funseek seekfn, - funclose closefn) -{ - return _funopen_r (_REENT, cookie, readfn, writefn, seekfn, closefn); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/fvwrite.c b/lib/stdio/fvwrite.c deleted file mode 100644 index 34361cb..0000000 --- a/lib/stdio/fvwrite.c +++ /dev/null @@ -1,265 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* No user fns here. Pesch 15apr92. */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" -#include "fvwrite.h" - -#define MIN(a, b) ((a) < (b) ? (a) : (b)) -#define COPY(n) (void) memmove ((void *) fp->_p, (void *) p, (size_t) (n)) - -#define GETIOV(extra_work) \ - while (len == 0) \ - { \ - extra_work; \ - p = iov->iov_base; \ - len = iov->iov_len; \ - iov++; \ - } - -/* - * Write some memory regions. Return zero on success, EOF on error. - * - * This routine is large and unsightly, but most of the ugliness due - * to the three different kinds of output buffering is handled here. - */ - -int -__sfvwrite_r (struct _reent *ptr, - register FILE *fp, - register struct __suio *uio) -{ - register size_t len; - register const char *p = NULL; - register struct __siov *iov; - register _READ_WRITE_RETURN_TYPE w, s; - char *nl; - int nlknown, nldist; - - if ((len = uio->uio_resid) == 0) - return 0; - - /* make sure we can write */ - if (cantwrite (ptr, fp)) - return EOF; - - iov = uio->uio_iov; - len = 0; - -#ifdef __SCLE - if (fp->_flags & __SCLE) /* text mode */ - { - do - { - GETIOV (;); - while (len > 0) - { - if (putc (*p, fp) == EOF) - return EOF; - p++; - len--; - uio->uio_resid--; - } - } - while (uio->uio_resid > 0); - return 0; - } -#endif - - if (fp->_flags & __SNBF) - { - /* - * Unbuffered: Split buffer in the largest multiple of BUFSIZ < INT_MAX - * as some legacy code may expect int instead of size_t. - */ - do - { - GETIOV (;); - w = fp->_write (ptr, fp->_cookie, p, - MIN (len, INT_MAX - INT_MAX % BUFSIZ)); - if (w <= 0) - goto err; - p += w; - len -= w; - } - while ((uio->uio_resid -= w) != 0); - } - else if ((fp->_flags & __SLBF) == 0) - { - /* - * Fully buffered: fill partially full buffer, if any, - * and then flush. If there is no partial buffer, write - * one _bf._size byte chunk directly (without copying). - * - * String output is a special case: write as many bytes - * as fit, but pretend we wrote everything. This makes - * snprintf() return the number of bytes needed, rather - * than the number used, and avoids its write function - * (so that the write function can be invalid). If - * we are dealing with the asprintf routines, we will - * dynamically increase the buffer size as needed. - */ - do - { - GETIOV (;); - w = fp->_w; - if (fp->_flags & __SSTR) - { - if (len >= w && fp->_flags & (__SMBF | __SOPT)) - { /* must be asprintf family */ - unsigned char *str; - int curpos = (fp->_p - fp->_bf._base); - /* Choose a geometric growth factor to avoid - quadratic realloc behavior, but use a rate less - than (1+sqrt(5))/2 to accomodate malloc - overhead. asprintf EXPECTS us to overallocate, so - that it can add a trailing \0 without - reallocating. The new allocation should thus be - max(prev_size*1.5, curpos+len+1). */ - int newsize = fp->_bf._size * 3 / 2; - if (newsize < curpos + len + 1) - newsize = curpos + len + 1; - if (fp->_flags & __SOPT) - { - /* asnprintf leaves original buffer alone. */ - str = (unsigned char *)_malloc_r (ptr, newsize); - if (!str) - { - _REENT_ERRNO(ptr) = ENOMEM; - goto err; - } - memcpy (str, fp->_bf._base, curpos); - fp->_flags = (fp->_flags & ~__SOPT) | __SMBF; - } - else - { - str = (unsigned char *)_realloc_r (ptr, fp->_bf._base, - newsize); - if (!str) - { - /* Free buffer which is no longer used and clear - __SMBF flag to avoid double free in fclose. */ - _free_r (ptr, fp->_bf._base); - fp->_flags &= ~__SMBF; - /* Ensure correct errno, even if free changed it. */ - _REENT_ERRNO(ptr) = ENOMEM; - goto err; - } - } - fp->_bf._base = str; - fp->_p = str + curpos; - fp->_bf._size = newsize; - w = len; - fp->_w = newsize - curpos; - } - if (len < w) - w = len; - COPY (w); /* copy MIN(fp->_w,len), */ - fp->_w -= w; - fp->_p += w; - w = len; /* but pretend copied all */ - } - else if (fp->_p > fp->_bf._base || len < fp->_bf._size) - { - /* pass through the buffer */ - w = MIN (len, w); - COPY (w); - fp->_w -= w; - fp->_p += w; - if (fp->_w == 0 && _fflush_r (ptr, fp)) - goto err; - } - else - { - /* write directly */ - w = ((int)MIN (len, INT_MAX)) / fp->_bf._size * fp->_bf._size; - w = fp->_write (ptr, fp->_cookie, p, w); - if (w <= 0) - goto err; - } - p += w; - len -= w; - } - while ((uio->uio_resid -= w) != 0); - } - else - { - /* - * Line buffered: like fully buffered, but we - * must check for newlines. Compute the distance - * to the first newline (including the newline), - * or `infinity' if there is none, then pretend - * that the amount to write is MIN(len,nldist). - */ - nlknown = 0; - nldist = 0; - do - { - GETIOV (nlknown = 0); - if (!nlknown) - { - nl = memchr ((void *) p, '\n', len); - nldist = nl ? nl + 1 - p : len + 1; - nlknown = 1; - } - s = MIN (len, nldist); - w = fp->_w + fp->_bf._size; - if (fp->_p > fp->_bf._base && s > w) - { - COPY (w); - /* fp->_w -= w; */ - fp->_p += w; - if (_fflush_r (ptr, fp)) - goto err; - } - else if (s >= (w = fp->_bf._size)) - { - w = fp->_write (ptr, fp->_cookie, p, w); - if (w <= 0) - goto err; - } - else - { - w = s; - COPY (w); - fp->_w -= w; - fp->_p += w; - } - if ((nldist -= w) == 0) - { - /* copied the newline: flush and forget */ - if (_fflush_r (ptr, fp)) - goto err; - nlknown = 0; - } - p += w; - len -= w; - } - while ((uio->uio_resid -= w) != 0); - } - return 0; - -err: - fp->_flags |= __SERR; - return EOF; -} diff --git a/lib/stdio/fvwrite.h b/lib/stdio/fvwrite.h deleted file mode 100644 index 767174b..0000000 --- a/lib/stdio/fvwrite.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 1990, 2007 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* %W% (Berkeley) %G% */ -#include <_ansi.h> - -/* - * I/O descriptors for __sfvwrite_r(). - */ -struct __siov { - const void *iov_base; - size_t iov_len; -}; -struct __suio { - struct __siov *uio_iov; - int uio_iovcnt; - size_t uio_resid; -}; - - -extern int __sfvwrite_r (struct _reent *, FILE *, struct __suio *); -extern int __swsetup_r (struct _reent *, FILE *); diff --git a/lib/stdio/fwalk.c b/lib/stdio/fwalk.c deleted file mode 100644 index b1284c6..0000000 --- a/lib/stdio/fwalk.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* No user fns here. Pesch 15apr92. */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include -#include - -int -_fwalk_sglue (struct _reent *ptr, int (*func) (struct _reent *, FILE *), - struct _glue *g) -{ - FILE *fp; - int n, ret = 0; - - /* - * It should be safe to walk the list without locking it; - * new nodes are only added to the end and none are ever - * removed. - * - * Avoid locking this list while walking it or else you will - * introduce a potential deadlock in [at least] refill.c. - */ - do { - for (fp = g->_iobs, n = g->_niobs; --n >= 0; fp++) - if (fp->_flags != 0 && fp->_flags != 1 && fp->_file != -1) - ret |= (*func) (ptr, fp); - g = g->_next; - } while (g != NULL); - - return ret; -} diff --git a/lib/stdio/fwide.c b/lib/stdio/fwide.c deleted file mode 100644 index 9b5a3d1..0000000 --- a/lib/stdio/fwide.c +++ /dev/null @@ -1,76 +0,0 @@ -/* -FUNCTION -<>---set and determine the orientation of a FILE stream - -INDEX - fwide -INDEX - _fwide_r - -SYNOPSIS - #include - int fwide(FILE *<[fp]>, int <[mode]>); - - int _fwide_r(struct _reent *<[ptr]>, FILE *<[fp]>, int <[mode]>); - -DESCRIPTION -When <[mode]> is zero, the <> function determines the current -orientation of <[fp]>. It returns a value > 0 if <[fp]> is -wide-character oriented, i.e. if wide character I/O is permitted but -char I/O is disallowed. It returns a value < 0 if <[fp]> is byte -oriented, i.e. if char I/O is permitted but wide character I/O is -disallowed. It returns zero if <[fp]> has no orientation yet; in -this case the next I/O operation might change the orientation (to byte -oriented if it is a char I/O operation, or to wide-character oriented -if it is a wide character I/O operation). - -Once a stream has an orientation, it cannot be changed and persists -until the stream is closed, unless the stream is re-opened with freopen, -which removes the orientation of the stream. - -When <[mode]> is non-zero, the <> function first attempts to set -<[fp]>'s orientation (to wide-character oriented if <[mode]> > 0, or to -byte oriented if <[mode]> < 0). It then returns a value denoting the -current orientation, as above. - -RETURNS -The <> function returns <[fp]>'s orientation, after possibly -changing it. A return value > 0 means wide-character oriented. A return -value < 0 means byte oriented. A return value of zero means undecided. - -PORTABILITY -C99, POSIX.1-2001. - -*/ - -#include <_ansi.h> -#include -#include "local.h" - -int -_fwide_r (struct _reent *ptr, - FILE *fp, - int mode) -{ - int ret; - - CHECK_INIT(ptr, fp); - - _newlib_flockfile_start (fp); - if (mode != 0) { - ORIENT (fp, mode); - } - if (!(fp->_flags & __SORD)) - ret = 0; - else - ret = (fp->_flags2 & __SWID) ? 1 : -1; - _newlib_flockfile_end (fp); - return ret; -} - -int -fwide (FILE *fp, - int mode) -{ - return _fwide_r (_REENT, fp, mode); -} diff --git a/lib/stdio/fwprintf.c b/lib/stdio/fwprintf.c deleted file mode 100644 index e578664..0000000 --- a/lib/stdio/fwprintf.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in swprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include - -int -_fwprintf_r (struct _reent *ptr, - FILE *fp, - const wchar_t *fmt, ...) -{ - int ret; - va_list ap; - - va_start (ap, fmt); - ret = _vfwprintf_r (ptr, fp, fmt, ap); - va_end (ap); - return ret; -} - -#ifndef _REENT_ONLY - -int -fwprintf (FILE *__restrict fp, - const wchar_t *__restrict fmt, ...) -{ - int ret; - va_list ap; - - va_start (ap, fmt); - ret = _vfwprintf_r (_REENT, fp, fmt, ap); - va_end (ap); - return ret; -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/fwrite.c b/lib/stdio/fwrite.c deleted file mode 100644 index d499f6f..0000000 --- a/lib/stdio/fwrite.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>---write array elements - -INDEX - fwrite -INDEX - fwrite_unlocked -INDEX - _fwrite_r -INDEX - _fwrite_unlocked_r - -SYNOPSIS - #include - size_t fwrite(const void *restrict <[buf]>, size_t <[size]>, - size_t <[count]>, FILE *restrict <[fp]>); - - #define _BSD_SOURCE - #include - size_t fwrite_unlocked(const void *restrict <[buf]>, size_t <[size]>, - size_t <[count]>, FILE *restrict <[fp]>); - - #include - size_t _fwrite_r(struct _reent *<[ptr]>, const void *restrict <[buf]>, size_t <[size]>, - size_t <[count]>, FILE *restrict <[fp]>); - - #include - size_t _fwrite_unlocked_r(struct _reent *<[ptr]>, const void *restrict <[buf]>, size_t <[size]>, - size_t <[count]>, FILE *restrict <[fp]>); - -DESCRIPTION -<> attempts to copy, starting from the memory location -<[buf]>, <[count]> elements (each of size <[size]>) into the file or -stream identified by <[fp]>. <> may copy fewer elements than -<[count]> if an error intervenes. - -<> also advances the file position indicator (if any) for -<[fp]> by the number of @emph{characters} actually written. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -<<_fwrite_r>> and <<_fwrite_unlocked_r>> are simply reentrant versions of the -above that take an additional reentrant structure argument: <[ptr]>. - -RETURNS -If <> succeeds in writing all the elements you specify, the -result is the same as the argument <[count]>. In any event, the -result is the number of complete elements that <> copied to -the file. - -PORTABILITY -ANSI C requires <>. - -<> is a BSD extension also provided by GNU libc. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#if 0 -#include -#endif -#include "local.h" -#if 1 -#include "fvwrite.h" -#endif - -#ifdef __IMPL_UNLOCKED__ -#define _fwrite_r _fwrite_unlocked_r -#define fwrite fwrite_unlocked -#endif - -/* - * Write `count' objects (each size `size') from memory to the given file. - * Return the number of whole objects written. - */ - -size_t -_fwrite_r (struct _reent * ptr, - const void *__restrict buf, - size_t size, - size_t count, - FILE * __restrict fp) -{ - size_t n; -#ifdef _FVWRITE_IN_STREAMIO - struct __suio uio; - struct __siov iov; - - iov.iov_base = buf; - uio.uio_resid = iov.iov_len = n = count * size; - uio.uio_iov = &iov; - uio.uio_iovcnt = 1; - - /* - * The usual case is success (__sfvwrite_r returns 0); - * skip the divide if this happens, since divides are - * generally slow and since this occurs whenever size==0. - */ - - CHECK_INIT(ptr, fp); - - _newlib_flockfile_start (fp); - ORIENT (fp, -1); - if (__sfvwrite_r (ptr, fp, &uio) == 0) - { - _newlib_flockfile_exit (fp); - return count; - } - _newlib_flockfile_end (fp); - return (n - uio.uio_resid) / size; -#else - size_t i = 0; - const char *p = buf; - n = count * size; - CHECK_INIT (ptr, fp); - - _newlib_flockfile_start (fp); - ORIENT (fp, -1); - /* Make sure we can write. */ - if (cantwrite (ptr, fp)) - goto ret; - - while (i < n) - { - if (__sputc_r (ptr, p[i], fp) == EOF) - break; - - i++; - } - -ret: - _newlib_flockfile_end (fp); - return i / size; -#endif -} - -#ifndef _REENT_ONLY -size_t -fwrite (const void *__restrict buf, - size_t size, - size_t count, - FILE * fp) -{ - return _fwrite_r (_REENT, buf, size, count, fp); -} -#endif diff --git a/lib/stdio/fwrite_u.c b/lib/stdio/fwrite_u.c deleted file mode 100644 index 80154a0..0000000 --- a/lib/stdio/fwrite_u.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define __IMPL_UNLOCKED__ -#include "fwrite.c" diff --git a/lib/stdio/fwscanf.c b/lib/stdio/fwscanf.c deleted file mode 100644 index 59a96dd..0000000 --- a/lib/stdio/fwscanf.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* Doc in swscanf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -fwscanf (FILE *__restrict fp, const wchar_t *__restrict fmt, ...) -{ - int ret; - va_list ap; - - va_start (ap, fmt); - ret = _vfwscanf_r (_REENT, fp, fmt, ap); - va_end (ap); - return ret; -} - -#endif /* !_REENT_ONLY */ - -int -_fwscanf_r (struct _reent *ptr, FILE *fp, const wchar_t *fmt, ...) -{ - int ret; - va_list ap; - - va_start (ap, fmt); - ret = _vfwscanf_r (ptr, fp, fmt, ap); - va_end (ap); - return (ret); -} - diff --git a/lib/stdio/getc.c b/lib/stdio/getc.c deleted file mode 100644 index c878132..0000000 --- a/lib/stdio/getc.c +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---read a character (macro) - -INDEX - getc -INDEX - _getc_r - -SYNOPSIS - #include - int getc(FILE *<[fp]>); - - #include - int _getc_r(struct _reent *<[ptr]>, FILE *<[fp]>); - -DESCRIPTION -<> is a macro, defined in <>. You can use <> -to get the next single character from the file or stream -identified by <[fp]>. As a side effect, <> advances the file's -current position indicator. - -For a subroutine version of this macro, see <>. - -The <<_getc_r>> function is simply the reentrant version of <> -which passes an additional reentrancy structure pointer argument: <[ptr]>. - -RETURNS -The next character (read as an <>, and cast to -<>), unless there is no more data, or the host system reports a -read error; in either of these situations, <> returns <>. - -You can distinguish the two situations that cause an <> result by -using the <> and <> functions. - -PORTABILITY -ANSI C requires <>; it suggests, but does not require, that -<> be implemented as a macro. The standard explicitly permits -macro implementations of <> to use the argument more than once; -therefore, in a portable program, you should not use an expression -with side effects as the <> argument. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include "local.h" - -/* - * A subroutine version of the macro getc. - */ - -#undef getc - -int -_getc_r (struct _reent *ptr, - register FILE *fp) -{ - int result; - CHECK_INIT (ptr, fp); - _newlib_flockfile_start (fp); - result = __sgetc_r (ptr, fp); - _newlib_flockfile_end (fp); - return result; -} - -#ifndef _REENT_ONLY - -int -getc (register FILE *fp) -{ - int result; - struct _reent *reent = _REENT; - - CHECK_INIT (reent, fp); - _newlib_flockfile_start (fp); - result = __sgetc_r (reent, fp); - _newlib_flockfile_end (fp); - return result; -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/getc_u.c b/lib/stdio/getc_u.c deleted file mode 100644 index 8bbbb4e..0000000 --- a/lib/stdio/getc_u.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---non-thread-safe version of getc (macro) - -INDEX - getc_unlocked -INDEX - _getc_unlocked_r - -SYNOPSIS - #include - int getc_unlocked(FILE *<[fp]>); - - #include - int _getc_unlocked_r(FILE *<[fp]>); - -DESCRIPTION -<> is a non-thread-safe version of <> declared in -<>. <> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). These -functions may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the ( FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -The <<_getc_unlocked_r>> function is simply the reentrant version of -<> which passes an additional reentrancy structure pointer -argument: <[ptr]>. - -RETURNS -See <>. - -PORTABILITY -POSIX 1003.1 requires <>. <> may be -implemented as a macro, so arguments should not have side-effects. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include - -/* - * A subroutine version of the macro getc_unlocked. - */ - -#undef getc_unlocked - -int -_getc_unlocked_r (struct _reent *ptr, - register FILE *fp) -{ - /* CHECK_INIT is called (eventually) by __srefill_r. */ - - return __sgetc_r (ptr, fp); -} - -#ifndef _REENT_ONLY - -int -getc_unlocked (register FILE *fp) -{ - return __sgetc_r (_REENT, fp); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/getchar.c b/lib/stdio/getchar.c deleted file mode 100644 index e6b18f0..0000000 --- a/lib/stdio/getchar.c +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---read a character (macro) - -INDEX - getchar -INDEX - _getchar_r - -SYNOPSIS - #include - int getchar(void); - - int _getchar_r(struct _reent *<[reent]>); - -DESCRIPTION -<> is a macro, defined in <>. You can use <> -to get the next single character from the standard input stream. -As a side effect, <> advances the standard input's -current position indicator. - -The alternate function <<_getchar_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - - -RETURNS -The next character (read as an <>, and cast to -<>), unless there is no more data, or the host system reports a -read error; in either of these situations, <> returns <>. - -You can distinguish the two situations that cause an <> result by -using `<>' and `<>'. - -PORTABILITY -ANSI C requires <>; it suggests, but does not require, that -<> be implemented as a macro. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -/* - * A subroutine version of the macro getchar. - */ - -#include <_ansi.h> -#include -#include -#include "local.h" - -#undef getchar - -int -_getchar_r (struct _reent *reent) -{ - _REENT_SMALL_CHECK_INIT (reent); - return _getc_r (reent, _stdin_r (reent)); -} - -#ifndef _REENT_ONLY - -int -getchar (void) -{ - struct _reent *reent = _REENT; - - /* CHECK_INIT is called (eventually) by __srefill_r. */ - _REENT_SMALL_CHECK_INIT (reent); - return _getc_r (reent, _stdin_r (reent)); -} - -#endif diff --git a/lib/stdio/getchar_u.c b/lib/stdio/getchar_u.c deleted file mode 100644 index f4ba0f9..0000000 --- a/lib/stdio/getchar_u.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---non-thread-safe version of getchar (macro) - -INDEX - getchar_unlocked -INDEX - _getchar_unlocked_r - -SYNOPSIS - #include - int getchar_unlocked(void); - - #include - int _getchar_unlocked_r(struct _reent *<[ptr]>); - -DESCRIPTION -<> is a non-thread-safe version of <> -declared in <>. <> may only safely be used -within a scope protected by flockfile() (or ftrylockfile()) and -funlockfile(). These functions may safely be used in a multi-threaded -program if and only if they are called while the invoking thread owns -the ( FILE *) object, as is the case after a successful call to the -flockfile() or ftrylockfile() functions. If threads are disabled, -then <> is equivalent to <>. - -The <<_getchar_unlocked_r>> function is simply the reentrant version of -<> which passes an addtional reentrancy structure pointer -argument: <[ptr]>. - -RETURNS -See <>. - -PORTABILITY -POSIX 1003.1 requires <>. <> may -be implemented as a macro. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -/* - * A subroutine version of the macro getchar_unlocked. - */ - -#include <_ansi.h> -#include -#include - -#undef getchar_unlocked - -int -_getchar_unlocked_r (struct _reent *ptr) -{ - return _getc_unlocked_r (ptr, _stdin_r (ptr)); -} - -#ifndef _REENT_ONLY - -int -getchar_unlocked (void) -{ - /* CHECK_INIT is called (eventually) by __srefill_r. */ - - return _getc_unlocked_r (_REENT, _stdin_r (_REENT)); -} - -#endif diff --git a/lib/stdio/getdelim.c b/lib/stdio/getdelim.c deleted file mode 100644 index 90cd5d4..0000000 --- a/lib/stdio/getdelim.c +++ /dev/null @@ -1,133 +0,0 @@ -/* Copyright 2002, Red Hat Inc. - all rights reserved */ -/* -FUNCTION -<>---read a line up to a specified line delimiter - -INDEX - getdelim - -SYNOPSIS - #include - int getdelim(char **<[bufptr]>, size_t *<[n]>, - int <[delim]>, FILE *<[fp]>); - -DESCRIPTION -<> reads a file <[fp]> up to and possibly including a specified -delimiter <[delim]>. The line is read into a buffer pointed to -by <[bufptr]> and designated with size *<[n]>. If the buffer is -not large enough, it will be dynamically grown by <>. -As the buffer is grown, the pointer to the size <[n]> will be -updated. - -RETURNS -<> returns <<-1>> if no characters were successfully read; -otherwise, it returns the number of bytes successfully read. -At end of file, the result is nonzero. - -PORTABILITY -<> is a glibc extension. - -No supporting OS subroutines are directly required. -*/ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#define MIN_LINE_SIZE 4 -#define DEFAULT_LINE_SIZE 128 - -ssize_t -__getdelim (char **bufptr, - size_t *n, - int delim, - FILE *fp) -{ - char *buf; - char *ptr; - size_t newsize, numbytes; - int pos; - int ch; - int cont; - - if (fp == NULL || bufptr == NULL || n == NULL) - { - errno = EINVAL; - return -1; - } - - buf = *bufptr; - if (buf == NULL || *n < MIN_LINE_SIZE) - { - buf = (char *)realloc (*bufptr, DEFAULT_LINE_SIZE); - if (buf == NULL) - { - return -1; - } - *bufptr = buf; - *n = DEFAULT_LINE_SIZE; - } - - CHECK_INIT (_REENT, fp); - - _newlib_flockfile_start (fp); - - numbytes = *n; - ptr = buf; - - cont = 1; - - while (cont) - { - /* fill buffer - leaving room for nul-terminator */ - while (--numbytes > 0) - { - if ((ch = getc_unlocked (fp)) == EOF) - { - cont = 0; - break; - } - else - { - *ptr++ = ch; - if (ch == delim) - { - cont = 0; - break; - } - } - } - - if (cont) - { - /* Buffer is too small so reallocate a larger buffer. */ - pos = ptr - buf; - newsize = (*n << 1); - buf = realloc (buf, newsize); - if (buf == NULL) - { - cont = 0; - break; - } - - /* After reallocating, continue in new buffer */ - *bufptr = buf; - *n = newsize; - ptr = buf + pos; - numbytes = newsize - pos; - } - } - - _newlib_flockfile_end (fp); - - /* if no input data, return failure */ - if (ptr == buf) - return -1; - - /* otherwise, nul-terminate and return number of bytes read */ - *ptr = '\0'; - return (ssize_t)(ptr - buf); -} - diff --git a/lib/stdio/getline.c b/lib/stdio/getline.c deleted file mode 100644 index 1c59afd..0000000 --- a/lib/stdio/getline.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2002, Red Hat Inc. - all rights reserved */ -/* -FUNCTION -<>---read a line from a file - -INDEX - getline - -SYNOPSIS - #include - ssize_t getline(char **<[bufptr]>, size_t *<[n]>, FILE *<[fp]>); - -DESCRIPTION -<> reads a file <[fp]> up to and possibly including the -newline character. The line is read into a buffer pointed to -by <[bufptr]> and designated with size *<[n]>. If the buffer is -not large enough, it will be dynamically grown by <>. -As the buffer is grown, the pointer to the size <[n]> will be -updated. - -<> is equivalent to getdelim(bufptr, n, '\n', fp); - -RETURNS -<> returns <<-1>> if no characters were successfully read, -otherwise, it returns the number of bytes successfully read. -at end of file, the result is nonzero. - -PORTABILITY -<> is a glibc extension. - -No supporting OS subroutines are directly required. -*/ - -#include <_ansi.h> -#include - -extern ssize_t __getdelim (char **, size_t *, int, FILE *); - -ssize_t -__getline (char **lptr, - size_t *n, - FILE *fp) -{ - return __getdelim (lptr, n, '\n', fp); -} - diff --git a/lib/stdio/gets.c b/lib/stdio/gets.c deleted file mode 100644 index 82bfc57..0000000 --- a/lib/stdio/gets.c +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---get character string (obsolete, use <> instead) - -INDEX - gets -INDEX - _gets_r - -SYNOPSIS - #include - - char *gets(char *<[buf]>); - - char *_gets_r(struct _reent *<[reent]>, char *<[buf]>); - -DESCRIPTION - Reads characters from standard input until a newline is found. - The characters up to the newline are stored in <[buf]>. The - newline is discarded, and the buffer is terminated with a 0. - - This is a @emph{dangerous} function, as it has no way of checking - the amount of space available in <[buf]>. One of the attacks - used by the Internet Worm of 1988 used this to overrun a - buffer allocated on the stack of the finger daemon and - overwrite the return address, causing the daemon to execute - code downloaded into it over the connection. - - The alternate function <<_gets_r>> is a reentrant version. The extra - argument <[reent]> is a pointer to a reentrancy structure. - - -RETURNS - <> returns the buffer passed to it, with the data filled - in. If end of file occurs with some data already accumulated, - the data is returned with no other indication. If end of file - occurs with no data in the buffer, NULL is returned. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include "local.h" - -char * -_gets_r (struct _reent *ptr, - char *buf) -{ - register int c; - register char *s = buf; - FILE *fp; - - _REENT_SMALL_CHECK_INIT (ptr); - fp = _stdin_r (ptr); - CHECK_INIT (ptr, fp); - _newlib_flockfile_start (fp); - while ((c = __sgetc_r (ptr, fp)) != '\n') - if (c == EOF) - if (s == buf) - { - _newlib_flockfile_exit (fp); - return NULL; - } - else - break; - else - *s++ = c; - *s = 0; - _newlib_flockfile_end (fp); - return buf; -} - -#ifndef _REENT_ONLY - -char * -gets (char *buf) -{ - return _gets_r (_REENT, buf); -} - -#endif diff --git a/lib/stdio/getw.c b/lib/stdio/getw.c deleted file mode 100644 index 38ef778..0000000 --- a/lib/stdio/getw.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---read a word (int) - -INDEX - getw - -SYNOPSIS - #include - int getw(FILE *<[fp]>); - -DESCRIPTION -<> is a function, defined in <>. You can use <> -to get the next word from the file or stream identified by <[fp]>. As -a side effect, <> advances the file's current position -indicator. - -RETURNS -The next word (read as an <>), unless there is no more -data or the host system reports a read error; in either of these -situations, <> returns <>. Since <> is a valid -<>, you must use <> or <> to distinguish these -situations. - -PORTABILITY -<> is a remnant of K&R C; it is not part of any ISO C Standard. -<> should be used instead. In fact, this implementation of -<> is based upon <>. - -Supporting OS subroutines required: <>. */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include - -int -getw (register FILE *fp) -{ - int result; - if (fread ((char*)&result, sizeof (result), 1, fp) != 1) - return EOF; - return result; -} diff --git a/lib/stdio/getwc.c b/lib/stdio/getwc.c deleted file mode 100644 index 15b3974..0000000 --- a/lib/stdio/getwc.c +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * Copyright (c) 2002 Tim J. Robbins. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#undef getwc - -wint_t -_getwc_r (struct _reent *ptr, - FILE *fp) -{ - return _fgetwc_r (ptr, fp); -} - -/* - * Synonym for fgetwc(). The only difference is that getwc(), if it is a - * macro, may evaluate `fp' more than once. - */ -wint_t -getwc (FILE *fp) -{ - return fgetwc(fp); -} diff --git a/lib/stdio/getwc_u.c b/lib/stdio/getwc_u.c deleted file mode 100644 index 366ab0f..0000000 --- a/lib/stdio/getwc_u.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define _GNU_SOURCE -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#undef getwc_unlocked - -wint_t -_getwc_unlocked_r (struct _reent *ptr, - FILE *fp) -{ - return _fgetwc_unlocked_r (ptr, fp); -} - -/* - * Synonym for fgetwc_unlocked(). The only difference is that getwc(), if it is - * a macro, may evaluate `fp' more than once. - */ -wint_t -getwc_unlocked (FILE *fp) -{ - return fgetwc_unlocked(fp); -} diff --git a/lib/stdio/getwchar.c b/lib/stdio/getwchar.c deleted file mode 100644 index 1485392..0000000 --- a/lib/stdio/getwchar.c +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * Copyright (c) 2002 Tim J. Robbins. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>---read a wide character from standard input - -INDEX - getwchar -INDEX - getwchar_unlocked -INDEX - _getwchar_r -INDEX - _getwchar_unlocked_r - -SYNOPSIS - #include - wint_t getwchar(void); - - #define _GNU_SOURCE - #include - wint_t getwchar_unlocked(void); - - #include - wint_t _getwchar_r(struct _reent *<[reent]>); - - #include - wint_t _getwchar_unlocked_r(struct _reent *<[reent]>); - -DESCRIPTION -<> function or macro is the wide character equivalent of -the <> function. You can use <> to get the next -wide character from the standard input stream. As a side effect, -<> advances the standard input's current position indicator. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -The alternate functions <<_getwchar_r>> and <<_getwchar_unlocked_r>> are -reentrant versions of the above. The extra argument <[reent]> is a pointer to -a reentrancy structure. - -RETURNS -The next wide character cast to <>, unless there is no more -data, or the host system reports a read error; in either of these -situations, <> returns <>. - -You can distinguish the two situations that cause an <> result by -using `<>' and `<>'. - -PORTABILITY -<> is required by C99. - -<> is a GNU extension. -*/ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#undef getwchar - -wint_t -_getwchar_r (struct _reent *ptr) -{ - return _fgetwc_r (ptr, stdin); -} - -/* - * Synonym for fgetwc(stdin). - */ -wint_t -getwchar (void) -{ - _REENT_SMALL_CHECK_INIT (_REENT); - return fgetwc (stdin); -} diff --git a/lib/stdio/getwchar_u.c b/lib/stdio/getwchar_u.c deleted file mode 100644 index c1f8d2d..0000000 --- a/lib/stdio/getwchar_u.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define _GNU_SOURCE -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#undef getwchar_unlocked - -wint_t -_getwchar_unlocked_r (struct _reent *ptr) -{ - return _fgetwc_unlocked_r (ptr, stdin); -} - -/* - * Synonym for fgetwc_unlocked(stdin). - */ -wint_t -getwchar_unlocked (void) -{ - _REENT_SMALL_CHECK_INIT (_REENT); - return fgetwc_unlocked (stdin); -} diff --git a/lib/stdio/iprintf.c b/lib/stdio/iprintf.c deleted file mode 100644 index 7e32eda..0000000 --- a/lib/stdio/iprintf.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in siprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -iprintf (const char *fmt, ...) -{ - int ret; - va_list ap; - struct _reent *ptr = _REENT; - - _REENT_SMALL_CHECK_INIT (ptr); - va_start (ap, fmt); - ret = _vfiprintf_r (ptr, _stdout_r (ptr), fmt, ap); - va_end (ap); - return ret; -} - -#endif /* ! _REENT_ONLY */ - -int -_iprintf_r (struct _reent *ptr, - const char *fmt, ...) -{ - int ret; - va_list ap; - - _REENT_SMALL_CHECK_INIT (ptr); - va_start (ap, fmt); - ret = _vfiprintf_r (ptr, _stdout_r (ptr), fmt, ap); - va_end (ap); - return ret; -} diff --git a/lib/stdio/iscanf.c b/lib/stdio/iscanf.c deleted file mode 100644 index 35c3899..0000000 --- a/lib/stdio/iscanf.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -iscanf(const char *fmt, ...) -{ - int ret; - va_list ap; - - _REENT_SMALL_CHECK_INIT (_REENT); - va_start (ap, fmt); - ret = __svfiscanf_r (_REENT, _stdin_r (_REENT), fmt, ap); - va_end (ap); - return ret; -} - -#endif /* !_REENT_ONLY */ - -int -_iscanf_r(struct _reent *ptr, const char *fmt, ...) -{ - int ret; - va_list ap; - - _REENT_SMALL_CHECK_INIT (ptr); - va_start (ap, fmt); - ret = __svfiscanf_r (ptr, _stdin_r (ptr), fmt, ap); - va_end (ap); - return (ret); -} - diff --git a/lib/stdio/local.h b/lib/stdio/local.h deleted file mode 100644 index b34c7c9..0000000 --- a/lib/stdio/local.h +++ /dev/null @@ -1,321 +0,0 @@ -/* - * Copyright (c) 1990, 2007 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - * - * %W% (UofMD/Berkeley) %G% - */ - -/* - * Information local to this implementation of stdio, - * in particular, macros and private variables. - */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#ifdef __SCLE -# include -#endif - -/* The following define determines if the per-reent stdin, stdout and stderr - streams are closed during _reclaim_reent(). The stdin, stdout and stderr - streams are initialized to use file descriptors 0, 1 and 2 respectively. In - case _STDIO_CLOSE_PER_REENT_STD_STREAMS is defined these file descriptors - will be closed via close() provided the owner of the reent structure - triggerd the on demand reent initilization, see CHECK_INIT(). */ -#if !defined(__tirtos__) -#define _STDIO_CLOSE_PER_REENT_STD_STREAMS -#endif - -/* The following macros are supposed to replace calls to _flockfile/_funlockfile - and __sfp_lock_acquire/__sfp_lock_release. In case of multi-threaded - environments using pthreads, it's not sufficient to lock the stdio functions - against concurrent threads accessing the same data, the locking must also be - secured against thread cancellation. - - The below macros have to be used in pairs. The _newlib_XXX_start macro - starts with a opening curly brace, the _newlib_XXX_end macro ends with a - closing curly brace, so the start macro and the end macro mark the code - start and end of a critical section. In case the code leaves the critical - section before reaching the end of the critical section's code end, use - the appropriate _newlib_XXX_exit macro. */ - -#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS) \ - && !defined (__rtems__) -#define _STDIO_WITH_THREAD_CANCELLATION_SUPPORT -#endif - -#if defined(__SINGLE_THREAD__) || defined(__IMPL_UNLOCKED__) - -# define _newlib_flockfile_start(_fp) -# define _newlib_flockfile_exit(_fp) -# define _newlib_flockfile_end(_fp) -# define _newlib_sfp_lock_start() -# define _newlib_sfp_lock_exit() -# define _newlib_sfp_lock_end() - -#elif defined(_STDIO_WITH_THREAD_CANCELLATION_SUPPORT) -#include - -/* Start a stream oriented critical section: */ -# define _newlib_flockfile_start(_fp) \ - { \ - int __oldfpcancel; \ - pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &__oldfpcancel); \ - if (!(_fp->_flags2 & __SNLK)) \ - _flockfile (_fp) - -/* Exit from a stream oriented critical section prematurely: */ -# define _newlib_flockfile_exit(_fp) \ - if (!(_fp->_flags2 & __SNLK)) \ - _funlockfile (_fp); \ - pthread_setcancelstate (__oldfpcancel, &__oldfpcancel); - -/* End a stream oriented critical section: */ -# define _newlib_flockfile_end(_fp) \ - if (!(_fp->_flags2 & __SNLK)) \ - _funlockfile (_fp); \ - pthread_setcancelstate (__oldfpcancel, &__oldfpcancel); \ - } - -/* Start a stream list oriented critical section: */ -# define _newlib_sfp_lock_start() \ - { \ - int __oldsfpcancel; \ - pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &__oldsfpcancel); \ - __sfp_lock_acquire () - -/* Exit from a stream list oriented critical section prematurely: */ -# define _newlib_sfp_lock_exit() \ - __sfp_lock_release (); \ - pthread_setcancelstate (__oldsfpcancel, &__oldsfpcancel); - -/* End a stream list oriented critical section: */ -# define _newlib_sfp_lock_end() \ - __sfp_lock_release (); \ - pthread_setcancelstate (__oldsfpcancel, &__oldsfpcancel); \ - } - -#else /* !__SINGLE_THREAD__ && !__IMPL_UNLOCKED__ && !_STDIO_WITH_THREAD_CANCELLATION_SUPPORT */ - -# define _newlib_flockfile_start(_fp) \ - { \ - if (!(_fp->_flags2 & __SNLK)) \ - _flockfile (_fp) - -# define _newlib_flockfile_exit(_fp) \ - if (!(_fp->_flags2 & __SNLK)) \ - _funlockfile(_fp); \ - -# define _newlib_flockfile_end(_fp) \ - if (!(_fp->_flags2 & __SNLK)) \ - _funlockfile(_fp); \ - } - -# define _newlib_sfp_lock_start() \ - { \ - __sfp_lock_acquire () - -# define _newlib_sfp_lock_exit() \ - __sfp_lock_release (); - -# define _newlib_sfp_lock_end() \ - __sfp_lock_release (); \ - } - -#endif /* __SINGLE_THREAD__ || __IMPL_UNLOCKED__ */ - -extern wint_t __fgetwc (struct _reent *, FILE *); -extern wint_t __fputwc (struct _reent *, wchar_t, FILE *); -extern u_char *__sccl (char *, u_char *fmt); -extern int __svfscanf_r (struct _reent *,FILE *, const char *,va_list); -extern int __ssvfscanf_r (struct _reent *,FILE *, const char *,va_list); -extern int __svfiscanf_r (struct _reent *,FILE *, const char *,va_list); -extern int __ssvfiscanf_r (struct _reent *,FILE *, const char *,va_list); -extern int __svfwscanf_r (struct _reent *,FILE *, const wchar_t *,va_list); -extern int __ssvfwscanf_r (struct _reent *,FILE *, const wchar_t *,va_list); -extern int __svfiwscanf_r (struct _reent *,FILE *, const wchar_t *,va_list); -extern int __ssvfiwscanf_r (struct _reent *,FILE *, const wchar_t *,va_list); -int _svfprintf_r (struct _reent *, FILE *, const char *, - va_list) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _svfiprintf_r (struct _reent *, FILE *, const char *, - va_list) - _ATTRIBUTE ((__format__ (__printf__, 3, 0))); -int _svfwprintf_r (struct _reent *, FILE *, const wchar_t *, - va_list); -int _svfiwprintf_r (struct _reent *, FILE *, const wchar_t *, - va_list); -extern FILE *__sfp (struct _reent *); -extern int __sflags (struct _reent *,const char*, int*); -extern int __sflush_r (struct _reent *,FILE *); -#ifdef _STDIO_BSD_SEMANTICS -extern int __sflushw_r (struct _reent *,FILE *); -#endif -extern int __srefill_r (struct _reent *,FILE *); -extern _READ_WRITE_RETURN_TYPE __sread (struct _reent *, void *, char *, - _READ_WRITE_BUFSIZE_TYPE); -extern _READ_WRITE_RETURN_TYPE __seofread (struct _reent *, void *, - char *, - _READ_WRITE_BUFSIZE_TYPE); -extern _READ_WRITE_RETURN_TYPE __swrite (struct _reent *, void *, - const char *, - _READ_WRITE_BUFSIZE_TYPE); -extern _fpos_t __sseek (struct _reent *, void *, _fpos_t, int); -extern int __sclose (struct _reent *, void *); -extern int __stextmode (int); -extern void __sinit (struct _reent *); -extern void __smakebuf_r (struct _reent *, FILE *); -extern int __swhatbuf_r (struct _reent *, FILE *, size_t *, int *); -extern int __submore (struct _reent *, FILE *); - -#ifdef __LARGE64_FILES -extern _fpos64_t __sseek64 (struct _reent *, void *, _fpos64_t, int); -extern _READ_WRITE_RETURN_TYPE __swrite64 (struct _reent *, void *, - const char *, - _READ_WRITE_BUFSIZE_TYPE); -#endif - -/* Called by the main entry point fns to ensure stdio has been initialized. */ - -#define CHECK_INIT(ptr, fp) \ - do \ - { \ - struct _reent *_check_init_ptr = (ptr); \ - if (!_REENT_IS_NULL(_check_init_ptr) && \ - !_REENT_CLEANUP(_check_init_ptr)) \ - __sinit (_check_init_ptr); \ - } \ - while (0) - -/* Return true and set errno and stream error flag iff the given FILE - cannot be written now. */ - -#define cantwrite(ptr, fp) \ - ((((fp)->_flags & __SWR) == 0 || (fp)->_bf._base == NULL) && \ - __swsetup_r(ptr, fp)) - -/* Test whether the given stdio file has an active ungetc buffer; - release such a buffer, without restoring ordinary unread data. */ - -#define HASUB(fp) ((fp)->_ub._base != NULL) -#define FREEUB(ptr, fp) { \ - if ((fp)->_ub._base != (fp)->_ubuf) \ - _free_r(ptr, (char *)(fp)->_ub._base); \ - (fp)->_ub._base = NULL; \ -} - -/* Test for an fgetline() buffer. */ - -#define HASLB(fp) ((fp)->_lb._base != NULL) -#define FREELB(ptr, fp) { _free_r(ptr,(char *)(fp)->_lb._base); \ - (fp)->_lb._base = NULL; } - -#ifdef _WIDE_ORIENT -/* - * Set the orientation for a stream. If o > 0, the stream has wide- - * orientation. If o < 0, the stream has byte-orientation. - */ -#define ORIENT(fp,ori) \ - do \ - { \ - if (!((fp)->_flags & __SORD)) \ - { \ - (fp)->_flags |= __SORD; \ - if (ori > 0) \ - (fp)->_flags2 |= __SWID; \ - else \ - (fp)->_flags2 &= ~__SWID; \ - } \ - } \ - while (0) -#else -#define ORIENT(fp,ori) -#endif - -/* WARNING: _dcvt is defined in the stdlib directory, not here! */ - -char *_dcvt (struct _reent *, char *, double, int, int, char, int); -char *_sicvt (char *, short, char); -char *_icvt (char *, int, char); -char *_licvt (char *, long, char); -#ifdef __GNUC__ -char *_llicvt (char *, long long, char); -#endif - -#define CVT_BUF_SIZE 128 - -#define NDYNAMIC 4 /* add four more whenever necessary */ - -#ifdef __SINGLE_THREAD__ -#define __sfp_lock_acquire() -#define __sfp_lock_release() -#define __sinit_lock_acquire() -#define __sinit_lock_release() -#else -void __sfp_lock_acquire (void); -void __sfp_lock_release (void); -#endif - -/* Types used in positional argument support in vfprinf/vfwprintf. - The implementation is char/wchar_t dependent but the class and state - tables are only defined once in vfprintf.c. */ -typedef enum __packed { - ZERO, /* '0' */ - DIGIT, /* '1-9' */ - DOLLAR, /* '$' */ - MODFR, /* spec modifier */ - SPEC, /* format specifier */ - DOT, /* '.' */ - STAR, /* '*' */ - FLAG, /* format flag */ - OTHER, /* all other chars */ - MAX_CH_CLASS /* place-holder */ -} __CH_CLASS; - -typedef enum __packed { - START, /* start */ - SFLAG, /* seen a flag */ - WDIG, /* seen digits in width area */ - WIDTH, /* processed width */ - SMOD, /* seen spec modifier */ - SDOT, /* seen dot */ - VARW, /* have variable width specifier */ - VARP, /* have variable precision specifier */ - PREC, /* processed precision */ - VWDIG, /* have digits in variable width specification */ - VPDIG, /* have digits in variable precision specification */ - DONE, /* done */ - MAX_STATE, /* place-holder */ -} __STATE; - -typedef enum __packed { - NOOP, /* do nothing */ - NUMBER, /* build a number from digits */ - SKIPNUM, /* skip over digits */ - GETMOD, /* get and process format modifier */ - GETARG, /* get and process argument */ - GETPW, /* get variable precision or width */ - GETPWB, /* get variable precision or width and pushback fmt char */ - GETPOS, /* get positional parameter value */ - PWPOS, /* get positional parameter value for variable width or precision */ -} __ACTION; - -extern const __CH_CLASS __chclass[256]; -extern const __STATE __state_table[MAX_STATE][MAX_CH_CLASS]; -extern const __ACTION __action_table[MAX_STATE][MAX_CH_CLASS]; diff --git a/lib/stdio/makebuf.c b/lib/stdio/makebuf.c deleted file mode 100644 index b9c75bb..0000000 --- a/lib/stdio/makebuf.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (c) 1990, 2007 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* No user fns here. Pesch 15apr92. */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -#define _DEFAULT_ASPRINTF_BUFSIZE 64 - -/* - * Allocate a file buffer, or switch to unbuffered I/O. - * Per the ANSI C standard, ALL tty devices default to line buffered. - * - * As a side effect, we set __SOPT or __SNPT (en/dis-able fseek - * optimization) right after the _fstat() that finds the buffer size. - */ - -void -__smakebuf_r (struct _reent *ptr, - register FILE *fp) -{ - register void *p; - int flags; - size_t size; - int couldbetty; - - if (fp->_flags & __SNBF) - { - fp->_bf._base = fp->_p = fp->_nbuf; - fp->_bf._size = 1; - return; - } - flags = __swhatbuf_r (ptr, fp, &size, &couldbetty); - if ((p = _malloc_r (ptr, size)) == NULL) - { - if (!(fp->_flags & __SSTR)) - { - fp->_flags = (fp->_flags & ~__SLBF) | __SNBF; - fp->_bf._base = fp->_p = fp->_nbuf; - fp->_bf._size = 1; - } - } - else - { - fp->_flags |= __SMBF; - fp->_bf._base = fp->_p = (unsigned char *) p; - fp->_bf._size = size; - if (couldbetty && _isatty_r (ptr, fp->_file)) - fp->_flags = (fp->_flags & ~__SNBF) | __SLBF; - fp->_flags |= flags; - } -} - -/* - * Internal routine to determine `proper' buffering for a file. - */ -int -__swhatbuf_r (struct _reent *ptr, - FILE *fp, - size_t *bufsize, - int *couldbetty) -{ -#ifdef _FSEEK_OPTIMIZATION - const int snpt = __SNPT; -#else - const int snpt = 0; -#endif - -#ifdef __USE_INTERNAL_STAT64 - struct stat64 st; - - if (fp->_file < 0 || _fstat64_r (ptr, fp->_file, &st) < 0) -#else - struct stat st; - - if (fp->_file < 0 || _fstat_r (ptr, fp->_file, &st) < 0) -#endif - { - *couldbetty = 0; - /* Check if we are be called by asprintf family for initial buffer. */ - if (fp->_flags & __SMBF) - *bufsize = _DEFAULT_ASPRINTF_BUFSIZE; - else - *bufsize = BUFSIZ; - return (0); - } - - /* could be a tty iff it is a character device */ - *couldbetty = S_ISCHR(st.st_mode); -#ifdef HAVE_BLKSIZE - if (st.st_blksize > 0) - { - /* - * Optimise fseek() only if it is a regular file. (The test for - * __sseek is mainly paranoia.) It is safe to set _blksize - * unconditionally; it will only be used if __SOPT is also set. - */ - *bufsize = st.st_blksize; - fp->_blksize = st.st_blksize; - return ((st.st_mode & S_IFMT) == S_IFREG ? __SOPT : snpt); - } -#endif - *bufsize = BUFSIZ; - return (snpt); -} diff --git a/lib/stdio/mktemp.c b/lib/stdio/mktemp.c deleted file mode 100644 index 2659681..0000000 --- a/lib/stdio/mktemp.c +++ /dev/null @@ -1,371 +0,0 @@ -/* - * Copyright (c) 1987 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that: (1) source distributions retain this entire copyright - * notice and comment, and (2) distributions including binaries display - * the following acknowledgement: ``This product includes software - * developed by the University of California, Berkeley and its contributors'' - * in the documentation or other materials provided with the distribution. - * Neither the name of the University nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* This is file MKTEMP.C */ -/* This file may have been modified by DJ Delorie (Jan 1991). If so, -** these modifications are Copyright (C) 1991 DJ Delorie. -*/ - -/* -FUNCTION -<>, <>, <>, <>, -<>---generate unused file name -<>---generate unused directory - -INDEX - mktemp -INDEX - mkdtemp -INDEX - mkstemp -INDEX - mkstemps -INDEX - mkostemp -INDEX - mkostemps -INDEX - _mktemp_r -INDEX - _mkdtemp_r -INDEX - _mkstemp_r -INDEX - _mkstemps_r -INDEX - _mkostemp_r -INDEX - _mkostemps_r - -SYNOPSIS - #include - char *mktemp(char *<[path]>); - char *mkdtemp(char *<[path]>); - int mkstemp(char *<[path]>); - int mkstemps(char *<[path]>, int <[suffixlen]>); - int mkostemp(char *<[path]>, int <[flags]>); - int mkostemps(char *<[path]>, int <[suffixlen]>, int <[flags]>); - - char *_mktemp_r(struct _reent *<[reent]>, char *<[path]>); - char *_mkdtemp_r(struct _reent *<[reent]>, char *<[path]>); - int *_mkstemp_r(struct _reent *<[reent]>, char *<[path]>); - int *_mkstemps_r(struct _reent *<[reent]>, char *<[path]>, int <[len]>); - int *_mkostemp_r(struct _reent *<[reent]>, char *<[path]>, - int <[flags]>); - int *_mkostemps_r(struct _reent *<[reent]>, char *<[path]>, int <[len]>, - int <[flags]>); - -DESCRIPTION -<>, <>, and <> attempt to generate a file name -that is not yet in use for any existing file. <> and <> -create the file and open it for reading and writing; <> simply -generates the file name (making <> a security risk). <> -and <> allow the addition of other <> flags, such -as <>, <>, or <>. On platforms with a -separate text mode, <> forces <>, while <> -allows the choice between <>, <>, or 0 for default. -<> attempts to create a directory instead of a file, with a -permissions mask of 0700. - -You supply a simple pattern for the generated file name, as the string -at <[path]>. The pattern should be a valid filename (including path -information if you wish) ending with at least six `<>' -characters. The generated filename will match the leading part of the -name you supply, with the trailing `<>' characters replaced by some -combination of digits and letters. With <>, the `<>' -characters end <[suffixlen]> bytes before the end of the string. - -The alternate functions <<_mktemp_r>>, <<_mkdtemp_r>>, <<_mkstemp_r>>, -<<_mkostemp_r>>, <<_mkostemps_r>>, and <<_mkstemps_r>> are reentrant -versions. The extra argument <[reent]> is a pointer to a reentrancy -structure. - -RETURNS -<> returns the pointer <[path]> to the modified string -representing an unused filename, unless it could not generate one, or -the pattern you provided is not suitable for a filename; in that case, -it returns <>. Be aware that there is an inherent race between -generating the name and attempting to create a file by that name; -you are advised to use <>. - -<> returns the pointer <[path]> to the modified string if the -directory was created, otherwise it returns <>. - -<>, <>, <>, and <> return a file -descriptor to the newly created file, unless it could not generate an -unused filename, or the pattern you provided is not suitable for a -filename; in that case, it returns <<-1>>. - -NOTES -Never use <>. The generated filenames are easy to guess and -there's a race between the test if the file exists and the creation -of the file. In combination this makes <> prone to attacks -and using it is a security risk. Whenever possible use <> -instead. It doesn't suffer the race condition. - -PORTABILITY -ANSI C does not require either <> or <>; the System -V Interface Definition requires <> as of Issue 2. POSIX 2001 -requires <>, and POSIX 2008 requires <> while -deprecating <>. <>, <>, and <> -are not standardized. - -Supporting OS subroutines required: <>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include - -static int -_gettemp (struct _reent *ptr, - char *path, - register int *doopen, - int domkdir, - size_t suffixlen, - int flags) -{ - register char *start, *trv; - char *end; -#ifdef __USE_INTERNAL_STAT64 - struct stat64 sbuf; -#else - struct stat sbuf; -#endif - unsigned int pid; - - pid = _getpid_r (ptr); - for (trv = path; *trv; ++trv) /* extra X's get set to 0's */ - continue; - if (trv - path < suffixlen) - { - _REENT_ERRNO(ptr) = EINVAL; - return 0; - } - trv -= suffixlen; - end = trv; - while (path < trv && *--trv == 'X') - { - *trv = (pid % 10) + '0'; - pid /= 10; - } - if (end - trv < 6) - { - _REENT_ERRNO(ptr) = EINVAL; - return 0; - } - - /* - * Check the target directory; if you have six X's and it - * doesn't exist this runs for a *very* long time. - */ - - for (start = trv + 1;; --trv) - { - if (trv <= path) - break; - if (*trv == '/') - { - *trv = '\0'; -#ifdef __USE_INTERNAL_STAT64 - if (_stat64_r (ptr, path, &sbuf)) -#else - if (_stat_r (ptr, path, &sbuf)) -#endif - return (0); - if (!(sbuf.st_mode & S_IFDIR)) - { - _REENT_ERRNO(ptr) = ENOTDIR; - return (0); - } - *trv = '/'; - break; - } - } - - for (;;) - { -#if !defined _ELIX_LEVEL || _ELIX_LEVEL >= 4 - if (domkdir) - { -#ifdef HAVE_MKDIR - if (_mkdir_r (ptr, path, 0700) == 0) - return 1; - if (_REENT_ERRNO(ptr) != EEXIST) - return 0; -#else /* !HAVE_MKDIR */ - _REENT_ERRNO(ptr) = ENOSYS; - return 0; -#endif /* !HAVE_MKDIR */ - } - else -#endif /* _ELIX_LEVEL */ - if (doopen) - { - if ((*doopen = _open_r (ptr, path, O_CREAT | O_EXCL | O_RDWR | flags, - 0600)) >= 0) - return 1; - if (_REENT_ERRNO(ptr) != EEXIST) - return 0; - } -#ifdef __USE_INTERNAL_STAT64 - else if (_stat64_r (ptr, path, &sbuf)) -#else - else if (_stat_r (ptr, path, &sbuf)) -#endif - return (_REENT_ERRNO(ptr) == ENOENT ? 1 : 0); - - /* tricky little algorithm for backward compatibility */ - for (trv = start;;) - { - if (trv == end) - return 0; - if (*trv == 'z') - *trv++ = 'a'; - else - { - /* Safe, since it only encounters 7-bit characters. */ - if (isdigit ((unsigned char) *trv)) - *trv = 'a'; - else - ++ * trv; - break; - } - } - } - /*NOTREACHED*/ -} - -#ifndef O_BINARY -# define O_BINARY 0 -#endif - -int -_mkstemp_r (struct _reent *ptr, - char *path) -{ - int fd; - - return (_gettemp (ptr, path, &fd, 0, 0, O_BINARY) ? fd : -1); -} - -#if !defined _ELIX_LEVEL || _ELIX_LEVEL >= 4 -char * -_mkdtemp_r (struct _reent *ptr, - char *path) -{ - return (_gettemp (ptr, path, (int *) NULL, 1, 0, 0) ? path : NULL); -} - -int -_mkstemps_r (struct _reent *ptr, - char *path, - int len) -{ - int fd; - - return (_gettemp (ptr, path, &fd, 0, len, O_BINARY) ? fd : -1); -} - -int -_mkostemp_r (struct _reent *ptr, - char *path, - int flags) -{ - int fd; - - return (_gettemp (ptr, path, &fd, 0, 0, flags & ~O_ACCMODE) ? fd : -1); -} - -int -_mkostemps_r (struct _reent *ptr, - char *path, - int len, - int flags) -{ - int fd; - - return (_gettemp (ptr, path, &fd, 0, len, flags & ~O_ACCMODE) ? fd : -1); -} -#endif /* _ELIX_LEVEL */ - -char * -_mktemp_r (struct _reent *ptr, - char *path) -{ - return (_gettemp (ptr, path, (int *) NULL, 0, 0, 0) ? path : (char *) NULL); -} - -#ifndef _REENT_ONLY - -int -mkstemp (char *path) -{ - int fd; - - return (_gettemp (_REENT, path, &fd, 0, 0, O_BINARY) ? fd : -1); -} - -# if !defined _ELIX_LEVEL || _ELIX_LEVEL >= 4 -char * -mkdtemp (char *path) -{ - return (_gettemp (_REENT, path, (int *) NULL, 1, 0, 0) ? path : NULL); -} - -int -mkstemps (char *path, - int len) -{ - int fd; - - return (_gettemp (_REENT, path, &fd, 0, len, O_BINARY) ? fd : -1); -} - -int -mkostemp (char *path, - int flags) -{ - int fd; - - return (_gettemp (_REENT, path, &fd, 0, 0, flags & ~O_ACCMODE) ? fd : -1); -} - -int -mkostemps (char *path, - int len, - int flags) -{ - int fd; - - return (_gettemp (_REENT, path, &fd, 0, len, flags & ~O_ACCMODE) ? fd : -1); -} -# endif /* _ELIX_LEVEL */ - -char * -mktemp (char *path) -{ - return (_gettemp (_REENT, path, (int *) NULL, 0, 0, 0) ? path : (char *) NULL); -} - -#endif /* ! defined (_REENT_ONLY) */ diff --git a/lib/stdio/nano-svfprintf.c b/lib/stdio/nano-svfprintf.c deleted file mode 100644 index 6d2daef..0000000 --- a/lib/stdio/nano-svfprintf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define STRING_ONLY -#include "nano-vfprintf.c" diff --git a/lib/stdio/nano-svfscanf.c b/lib/stdio/nano-svfscanf.c deleted file mode 100644 index 8fe4d9b..0000000 --- a/lib/stdio/nano-svfscanf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define STRING_ONLY -#include "nano-vfscanf.c" diff --git a/lib/stdio/nano-vfprintf.c b/lib/stdio/nano-vfprintf.c deleted file mode 100644 index 0d42a94..0000000 --- a/lib/stdio/nano-vfprintf.c +++ /dev/null @@ -1,661 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>, <>, <>, <>, <>---format argument list - -INDEX - vfprintf -INDEX - _vfprintf_r -INDEX - vprintf -INDEX - _vprintf_r -INDEX - vsprintf -INDEX - _vsprintf_r -INDEX - vsnprintf -INDEX - _vsnprintf_r -INDEX - vasprintf -INDEX - _vasprintf_r -INDEX - vasnprintf -INDEX - _vasnprintf_r - -SYNOPSIS - #include - #include - int vprintf(const char *<[fmt]>, va_list <[list]>); - int vfprintf(FILE *<[fp]>, const char *<[fmt]>, va_list <[list]>); - int vsprintf(char *<[str]>, const char *<[fmt]>, va_list <[list]>); - int vsnprintf(char *<[str]>, size_t <[size]>, const char *<[fmt]>, - va_list <[list]>); - int vasprintf(char **<[strp]>, const char *<[fmt]>, va_list <[list]>); - char *vasnprintf(char *<[str]>, size_t *<[size]>, const char *<[fmt]>, - va_list <[list]>); - - int _vprintf_r(struct _reent *<[reent]>, const char *<[fmt]>, - va_list <[list]>); - int _vfprintf_r(struct _reent *<[reent]>, FILE *<[fp]>, - const char *<[fmt]>, va_list <[list]>); - int _vsprintf_r(struct _reent *<[reent]>, char *<[str]>, - const char *<[fmt]>, va_list <[list]>); - int _vasprintf_r(struct _reent *<[reent]>, char **<[str]>, - const char *<[fmt]>, va_list <[list]>); - int _vsnprintf_r(struct _reent *<[reent]>, char *<[str]>, - size_t <[size]>, const char *<[fmt]>, va_list <[list]>); - char *_vasnprintf_r(struct _reent *<[reent]>, char *<[str]>, - size_t *<[size]>, const char *<[fmt]>, va_list <[list]>); - -DESCRIPTION -<>, <>, <>, <>, <>, -and <> are (respectively) variants of <>, -<>, <>, <>, <>, and -<>. They differ only in allowing their caller to pass the -variable argument list as a <> object (initialized by -<>) rather than directly accepting a variable number of -arguments. The caller is responsible for calling <>. - -<<_vprintf_r>>, <<_vfprintf_r>>, <<_vasprintf_r>>, <<_vsprintf_r>>, -<<_vsnprintf_r>>, and <<_vasnprintf_r>> are reentrant versions of the -above. - -RETURNS -The return values are consistent with the corresponding functions. - -PORTABILITY -ANSI C requires <>, <>, <>, and -<>. The remaining functions are newlib extensions. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -/*static char *sccsid = "from: @(#)vfprintf.c 5.50 (Berkeley) 12/16/92";*/ -static char *rcsid = "$Id$"; -#endif /* LIBC_SCCS and not lint */ - -/* Actual printf innards. - This code is large and complicated... */ -#include - -#define VFPRINTF vfprintf -#ifdef STRING_ONLY -# define _VFPRINTF_R _svfprintf_r -#else -# define _VFPRINTF_R _vfprintf_r -#endif - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" -#include "../stdlib/local.h" -#include "fvwrite.h" -#include "vfieeefp.h" -#include "nano-vfprintf_local.h" - -/* The __ssputs_r function is shared between all versions of vfprintf - and vfwprintf. */ -#ifdef STRING_ONLY -int -__ssputs_r (struct _reent *ptr, - FILE *fp, - const char *buf, - size_t len) -{ - register int w; - - w = fp->_w; - if (len >= w && fp->_flags & (__SMBF | __SOPT)) - { - /* Must be asprintf family. */ - unsigned char *str; - int curpos = (fp->_p - fp->_bf._base); - /* Choose a geometric growth factor to avoid - * quadratic realloc behavior, but use a rate less - * than (1+sqrt(5))/2 to accomodate malloc - * overhead. asprintf EXPECTS us to overallocate, so - * that it can add a trailing \0 without - * reallocating. The new allocation should thus be - * max(prev_size*1.5, curpos+len+1). */ - int newsize = fp->_bf._size * 3 / 2; - if (newsize < curpos + len + 1) - newsize = curpos + len + 1; - if (fp->_flags & __SOPT) - { - /* asnprintf leaves original buffer alone. */ - str = (unsigned char *)_malloc_r (ptr, newsize); - if (!str) - { - _REENT_ERRNO(ptr) = ENOMEM; - goto err; - } - memcpy (str, fp->_bf._base, curpos); - fp->_flags = (fp->_flags & ~__SOPT) | __SMBF; - } - else - { - str = (unsigned char *)_realloc_r (ptr, fp->_bf._base, newsize); - if (!str) - { - /* Free unneeded buffer. */ - _free_r (ptr, fp->_bf._base); - /* Ensure correct errno, even if free changed it. */ - _REENT_ERRNO(ptr) = ENOMEM; - goto err; - } - } - fp->_bf._base = str; - fp->_p = str + curpos; - fp->_bf._size = newsize; - w = len; - fp->_w = newsize - curpos; - } - if (len < w) - w = len; - - (void)memmove ((void *) fp->_p, (void *) buf, (size_t) (w)); - fp->_w -= w; - fp->_p += w; - return 0; - -err: - fp->_flags |= __SERR; - return EOF; -} -/* __ssprint_r is the original implementation of __SPRINT. In nano - version formatted IO it is reimplemented as __ssputs_r for non-wide - char output, but __ssprint_r cannot be discarded because it is used - by a serial of functions like svfwprintf for wide char output. */ -int -__ssprint_r (struct _reent *ptr, - FILE *fp, - register struct __suio *uio) -{ - register size_t len; - register int w; - register struct __siov *iov; - register const char *p = NULL; - - iov = uio->uio_iov; - len = 0; - - if (uio->uio_resid == 0) - { - uio->uio_iovcnt = 0; - return (0); - } - - do - { - while (len == 0) - { - p = iov->iov_base; - len = iov->iov_len; - iov++; - } - w = fp->_w; - if (len >= w && fp->_flags & (__SMBF | __SOPT)) - { - /* Must be asprintf family. */ - unsigned char *str; - int curpos = (fp->_p - fp->_bf._base); - /* Choose a geometric growth factor to avoid - * quadratic realloc behavior, but use a rate less - * than (1+sqrt(5))/2 to accomodate malloc - * overhead. asprintf EXPECTS us to overallocate, so - * that it can add a trailing \0 without - * reallocating. The new allocation should thus be - * max(prev_size*1.5, curpos+len+1). */ - int newsize = fp->_bf._size * 3 / 2; - if (newsize < curpos + len + 1) - newsize = curpos + len + 1; - - if (fp->_flags & __SOPT) - { - /* asnprintf leaves original buffer alone. */ - str = (unsigned char *)_malloc_r (ptr, newsize); - if (!str) - { - _REENT_ERRNO(ptr) = ENOMEM; - goto err; - } - memcpy (str, fp->_bf._base, curpos); - fp->_flags = (fp->_flags & ~__SOPT) | __SMBF; - } - else - { - str = (unsigned char *)_realloc_r (ptr, fp->_bf._base, - newsize); - if (!str) - { - /* Free unneeded buffer. */ - _free_r (ptr, fp->_bf._base); - /* Ensure correct errno, even if free changed it. */ - _REENT_ERRNO(ptr) = ENOMEM; - goto err; - } - } - fp->_bf._base = str; - fp->_p = str + curpos; - fp->_bf._size = newsize; - w = len; - fp->_w = newsize - curpos; - } - if (len < w) - w = len; - - (void)memmove ((void *) fp->_p, (void *) p, (size_t) (w)); - fp->_w -= w; - fp->_p += w; - /* Pretend we copied all. */ - w = len; - p += w; - len -= w; - } - while ((uio->uio_resid -= w) != 0); - - uio->uio_resid = 0; - uio->uio_iovcnt = 0; - return 0; - -err: - fp->_flags |= __SERR; - uio->uio_resid = 0; - uio->uio_iovcnt = 0; - return EOF; -} -#else -/* As __ssputs_r, __sprint_r is used by output functions for wide char, - like vfwprint. */ -/* Flush out all the vectors defined by the given uio, - then reset it so that it can be reused. */ -int -__sprint_r (struct _reent *ptr, - FILE *fp, - register struct __suio *uio) -{ - register int err = 0; - - if (uio->uio_resid == 0) - { - uio->uio_iovcnt = 0; - return 0; - } -#if defined _WIDE_ORIENT && (!defined _ELIX_LEVEL || _ELIX_LEVEL >= 4) - if (fp->_flags2 & __SWID) - { - struct __siov *iov; - wchar_t *p; - int i, len; - - iov = uio->uio_iov; - for (; uio->uio_resid != 0; - uio->uio_resid -= len * sizeof (wchar_t), iov++) - { - p = (wchar_t *) iov->iov_base; - len = iov->iov_len / sizeof (wchar_t); - for (i = 0; i < len; i++) - { - if (_fputwc_r (ptr, p[i], fp) == WEOF) - { - err = -1; - goto out; - } - } - } - } - else -#endif - err = __sfvwrite_r(ptr, fp, uio); -out: - uio->uio_resid = 0; - uio->uio_iovcnt = 0; - return err; -} - -_NOINLINE_STATIC int -__sfputc_r (struct _reent *ptr, - int c, - FILE *fp) -{ - if (--fp->_w >= 0 || (fp->_w >= fp->_lbfsize && (char)c != '\n')) - return (*fp->_p++ = c); - else - return (__swbuf_r(ptr, c, fp)); -} - -int -__sfputs_r (struct _reent *ptr, - FILE *fp, - const char *buf, - size_t len) -{ - register int i; - -#if defined _WIDE_ORIENT && (!defined _ELIX_LEVEL || _ELIX_LEVEL >= 4) - if (fp->_flags2 & __SWID) - { - wchar_t *p; - - p = (wchar_t *) buf; - for (i = 0; i < (len / sizeof (wchar_t)); i++) - { - if (_fputwc_r (ptr, p[i], fp) == WEOF) - return -1; - } - } - else -#endif - { - for (i = 0; i < len; i++) - { - /* Call __sfputc_r to skip _fputc_r. */ - if (__sfputc_r (ptr, (int)buf[i], fp) == EOF) - return -1; - } - } - return (0); -} -#endif /* STRING_ONLY. */ - -int _VFPRINTF_R (struct _reent *, FILE *, const char *, va_list); - -#ifndef STRING_ONLY -int -VFPRINTF (FILE * fp, - const char *fmt0, - va_list ap) -{ - int result; - result = _VFPRINTF_R (_REENT, fp, fmt0, ap); - return result; -} - -int -vfiprintf (FILE *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("vfprintf"))); -#endif - -#ifdef STRING_ONLY -# define __SPRINT __ssputs_r -#else -# define __SPRINT __sfputs_r -#endif - -/* Do not need FLUSH for all sprintf functions. */ -#ifdef STRING_ONLY -# define FLUSH() -#else -# define FLUSH() -#endif - -int -_VFPRINTF_R (struct _reent *data, - FILE * fp, - const char *fmt0, - va_list ap) -{ - register char *fmt; /* Format string. */ - register int n, m; /* Handy integers (short term usage). */ - register char *cp; /* Handy char pointer (short term usage). */ - const char *flag_chars; - struct _prt_data_t prt_data; /* All data for decoding format string. */ - va_list ap_copy; - - /* Output function pointer. */ - int (*pfunc)(struct _reent *, FILE *, const char *, size_t len); - - pfunc = __SPRINT; - -#ifndef STRING_ONLY - /* Initialize std streams if not dealing with sprintf family. */ - CHECK_INIT (data, fp); - _newlib_flockfile_start (fp); - - /* Sorry, fprintf(read_only_file, "") returns EOF, not 0. */ - if (cantwrite (data, fp)) - { - _newlib_flockfile_exit (fp); - return (EOF); - } - -#else - /* Create initial buffer if we are called by asprintf family. */ - if (fp->_flags & __SMBF && !fp->_bf._base) - { - fp->_bf._base = fp->_p = _malloc_r (data, 64); - if (!fp->_p) - { - _REENT_ERRNO(data) = ENOMEM; - return EOF; - } - fp->_bf._size = 64; - } -#endif - - fmt = (char *)fmt0; - prt_data.ret = 0; - prt_data.blank = ' '; - prt_data.zero = '0'; - - /* GCC PR 14577 at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14557 */ - va_copy (ap_copy, ap); - - /* Scan the format for conversions (`%' character). */ - for (;;) - { - cp = fmt; - while (*fmt != '\0' && *fmt != '%') - fmt += 1; - - if ((m = fmt - cp) != 0) - { - PRINT (cp, m); - prt_data.ret += m; - } - if (*fmt == '\0') - goto done; - - fmt++; /* Skip over '%'. */ - - prt_data.flags = 0; - prt_data.width = 0; - prt_data.prec = -1; - prt_data.dprec = 0; - prt_data.l_buf[0] = '\0'; -#ifdef FLOATING_POINT - prt_data.lead = 0; -#endif - /* The flags. */ - /* - * ``Note that 0 is taken as a flag, not as the - * beginning of a field width.'' - * -- ANSI X3J11 - */ - flag_chars = "#-0+ "; - for (; cp = memchr (flag_chars, *fmt, 5); fmt++) - prt_data.flags |= (1 << (cp - flag_chars)); - - if (prt_data.flags & SPACESGN) - prt_data.l_buf[0] = ' '; - - /* - * ``If the space and + flags both appear, the space - * flag will be ignored.'' - * -- ANSI X3J11 - */ - if (prt_data.flags & PLUSSGN) - prt_data.l_buf[0] = '+'; - - /* The width. */ - if (*fmt == '*') - { - /* - * ``A negative field width argument is taken as a - * - flag followed by a positive field width.'' - * -- ANSI X3J11 - * They don't exclude field widths read from args. - */ - prt_data.width = GET_ARG (n, ap_copy, int); - if (prt_data.width < 0) - { - prt_data.width = -prt_data.width; - prt_data.flags |= LADJUST; - } - fmt++; - } - else - { - for (; is_digit (*fmt); fmt++) - prt_data.width = 10 * prt_data.width + to_digit (*fmt); - } - - /* The precision. */ - if (*fmt == '.') - { - fmt++; - if (*fmt == '*') - { - fmt++; - prt_data.prec = GET_ARG (n, ap_copy, int); - if (prt_data.prec < 0) - prt_data.prec = -1; - } - else - { - prt_data.prec = 0; - for (; is_digit (*fmt); fmt++) - prt_data.prec = 10 * prt_data.prec + to_digit (*fmt); - } - } - - /* The length modifiers. */ - flag_chars = "hlL"; - if ((cp = memchr (flag_chars, *fmt, 3)) != NULL) - { - prt_data.flags |= (SHORTINT << (cp - flag_chars)); - fmt++; - } - - /* The conversion specifiers. */ - prt_data.code = *fmt++; - cp = memchr ("efgEFG", prt_data.code, 6); -#ifdef FLOATING_POINT - /* If cp is not NULL, we are facing FLOATING POINT NUMBER. */ - if (cp) - { - /* Consume floating point argument if _printf_float is not - linked. */ - if (_printf_float == NULL) - { - if (prt_data.flags & LONGDBL) - GET_ARG (N, ap_copy, _LONG_DOUBLE); - else - GET_ARG (N, ap_copy, double); - } - else - n = _printf_float (data, &prt_data, fp, pfunc, &ap_copy); - } - else -#endif - n = _printf_i (data, &prt_data, fp, pfunc, &ap_copy); - - if (n == -1) - goto error; - - prt_data.ret += n; - } -done: - FLUSH (); -error: -#ifndef STRING_ONLY - _newlib_flockfile_end (fp); -#endif - va_end (ap_copy); - return (__sferror (fp) ? EOF : prt_data.ret); -} - -#ifdef STRING_ONLY -int -_svfiprintf_r (struct _reent *, FILE *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("_svfprintf_r"))); -#else -int -_vfiprintf_r (struct _reent *, FILE *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("_vfprintf_r"))); -#endif diff --git a/lib/stdio/nano-vfprintf_float.c b/lib/stdio/nano-vfprintf_float.c deleted file mode 100644 index 524f67a..0000000 --- a/lib/stdio/nano-vfprintf_float.c +++ /dev/null @@ -1,367 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" -#include "../stdlib/local.h" -#include "fvwrite.h" -#include "vfieeefp.h" -#include "nano-vfprintf_local.h" - -char *__cvt (struct _reent *data, _PRINTF_FLOAT_TYPE value, int ndigits, - int flags, char *sign, int *decpt, int ch, int *length, - char *buf); - -int __exponent (char *p0, int exp, int fmtch); - -#ifdef FLOATING_POINT - -/* Using reentrant DATA, convert finite VALUE into a string of digits - with no decimal point, using NDIGITS precision and FLAGS as guides - to whether trailing zeros must be included. Set *SIGN to nonzero - if VALUE was negative. Set *DECPT to the exponent plus one. Set - *LENGTH to the length of the returned string. CH must be one of - [aAeEfFgG]; if it is [aA], then the return string lives in BUF, - otherwise the return value shares the mprec reentrant storage. */ -char * -__cvt (struct _reent *data, _PRINTF_FLOAT_TYPE value, int ndigits, int flags, - char *sign, int *decpt, int ch, int *length, char *buf) -{ - int mode, dsgn; - char *digits, *bp, *rve; - union double_union tmp; - - tmp.d = value; - /* This will check for "< 0" and "-0.0". */ - if (word0 (tmp) & Sign_bit) - { - value = -value; - *sign = '-'; - } - else - *sign = '\000'; - - if (ch == 'f' || ch == 'F') - { - /* Ndigits after the decimal point. */ - mode = 3; - } - else - { - /* To obtain ndigits after the decimal point for the 'e' - and 'E' formats, round to ndigits + 1 significant figures. */ - if (ch == 'e' || ch == 'E') - { - ndigits++; - } - /* Ndigits significant digits. */ - mode = 2; - } - - digits = _DTOA_R (data, value, mode, ndigits, decpt, &dsgn, &rve); - - /* Print trailing zeros. */ - if ((ch != 'g' && ch != 'G') || flags & ALT) - { - bp = digits + ndigits; - if (ch == 'f' || ch == 'F') - { - if (*digits == '0' && value) - *decpt = -ndigits + 1; - bp += *decpt; - } - /* Kludge for __dtoa irregularity. */ - if (value == 0) - rve = bp; - while (rve < bp) - *rve++ = '0'; - } - *length = rve - digits; - return (digits); -} - -/* This function is copied from exponent in vfprintf.c with support for - C99 formats removed. We don't use the original function in order to - decouple nano implementation of formatted IO from the Newlib one. */ -int -__exponent (char *p0, int exp, int fmtch) -{ - register char *p, *t; - char expbuf[MAXEXPLEN]; -#define isa 0 - - p = p0; - *p++ = isa ? 'p' - 'a' + fmtch : fmtch; - if (exp < 0) - { - exp = -exp; - *p++ = '-'; - } - else - *p++ = '+'; - t = expbuf + MAXEXPLEN; - if (exp > 9) - { - do - { - *--t = to_char (exp % 10); - } - while ((exp /= 10) > 9); - *--t = to_char (exp); - for (; t < expbuf + MAXEXPLEN; *p++ = *t++); - } - else - { - if (!isa) - *p++ = '0'; - *p++ = to_char (exp); - } - return (p - p0); -} - -/* Decode and print floating point number specified by "eEfgG". */ -int -_printf_float (struct _reent *data, - struct _prt_data_t *pdata, - FILE * fp, - int (*pfunc) (struct _reent *, FILE *, const char *, - size_t len), va_list * ap) -{ -#define _fpvalue (pdata->_double_) - - char *decimal_point = _localeconv_r (data)->decimal_point; - size_t decp_len = strlen (decimal_point); - /* Temporary negative sign for floats. */ - char softsign; - /* Integer value of exponent. */ - int expt; - /* Character count for expstr. */ - int expsize = 0; - /* Actual number of digits returned by cvt. */ - int ndig = 0; - char *cp; - int n; - /* Field size expanded by dprec(not for _printf_float). */ - int realsz; - char code = pdata->code; - - if (pdata->flags & LONGDBL) - { - _fpvalue = (double) GET_ARG (N, *ap, _LONG_DOUBLE); - } - else - { - _fpvalue = GET_ARG (N, *ap, double); - } - - /* Do this before tricky precision changes. - - If the output is infinite or NaN, leading - zeros are not permitted. Otherwise, scanf - could not read what printf wrote. */ - if (isinf (_fpvalue)) - { - if (_fpvalue < 0) - pdata->l_buf[0] = '-'; - if (code <= 'G') /* 'A', 'E', 'F', or 'G'. */ - cp = "INF"; - else - cp = "inf"; - pdata->size = 3; - pdata->flags &= ~ZEROPAD; - goto print_float; - } - if (isnan (_fpvalue)) - { - if (signbit (_fpvalue)) - pdata->l_buf[0] = '-'; - if (code <= 'G') /* 'A', 'E', 'F', or 'G'. */ - cp = "NAN"; - else - cp = "nan"; - pdata->size = 3; - pdata->flags &= ~ZEROPAD; - goto print_float; - } - - if (pdata->prec == -1) - { - pdata->prec = DEFPREC; - } - else if ((code == 'g' || code == 'G') && pdata->prec == 0) - { - pdata->prec = 1; - } - - pdata->flags |= FPT; - - cp = __cvt (data, _fpvalue, pdata->prec, pdata->flags, &softsign, - &expt, code, &ndig, cp); - - if (code == 'g' || code == 'G') - { - if (expt <= -4 || expt > pdata->prec) - /* 'e' or 'E'. */ - code -= 2; - else - code = 'g'; - } - if (code <= 'e') - { - /* 'a', 'A', 'e', or 'E' fmt. */ - --expt; - expsize = __exponent (pdata->expstr, expt, code); - pdata->size = expsize + ndig; - if (ndig > 1 || pdata->flags & ALT) - ++pdata->size; - } - else - { - if (code == 'f') - { - /* 'f' fmt. */ - if (expt > 0) - { - pdata->size = expt; - if (pdata->prec || pdata->flags & ALT) - pdata->size += pdata->prec + 1; - } - else - /* "0.X". */ - pdata->size = (pdata->prec || pdata->flags & ALT) - ? pdata->prec + 2 : 1; - } - else if (expt >= ndig) - { - /* Fixed g fmt. */ - pdata->size = expt; - if (pdata->flags & ALT) - ++pdata->size; - } - else - pdata->size = ndig + (expt > 0 ? 1 : 2 - expt); - pdata->lead = expt; - } - - if (softsign) - pdata->l_buf[0] = '-'; -print_float: - if (_printf_common (data, pdata, &realsz, fp, pfunc) == -1) - goto error; - - if ((pdata->flags & FPT) == 0) - { - PRINT (cp, pdata->size); - } - else - { - /* Glue together f_p fragments. */ - if (code >= 'f') - { - /* 'f' or 'g'. */ - if (_fpvalue == 0) - { - /* Kludge for __dtoa irregularity. */ - PRINT ("0", 1); - if (expt < ndig || pdata->flags & ALT) - { - PRINT (decimal_point, decp_len); - PAD (ndig - 1, pdata->zero); - } - } - else if (expt <= 0) - { - PRINT ("0", 1); - if (expt || ndig || pdata->flags & ALT) - { - PRINT (decimal_point, decp_len); - PAD (-expt, pdata->zero); - PRINT (cp, ndig); - } - } - else - { - char *convbuf = cp; - PRINTANDPAD (cp, convbuf + ndig, pdata->lead, pdata->zero); - cp += pdata->lead; - if (expt < ndig || pdata->flags & ALT) - PRINT (decimal_point, decp_len); - PRINTANDPAD (cp, convbuf + ndig, ndig - expt, pdata->zero); - } - } - else - { - /* 'a', 'A', 'e', or 'E'. */ - if (ndig > 1 || pdata->flags & ALT) - { - PRINT (cp, 1); - cp++; - PRINT (decimal_point, decp_len); - if (_fpvalue) - { - PRINT (cp, ndig - 1); - } - /* "0.[0..]". */ - else - /* __dtoa irregularity. */ - PAD (ndig - 1, pdata->zero); - } - else /* "XeYYY". */ - PRINT (cp, 1); - PRINT (pdata->expstr, expsize); - } - } - - /* Left-adjusting padding (always blank). */ - if (pdata->flags & LADJUST) - PAD (pdata->width - realsz, pdata->blank); - - return (pdata->width > realsz ? pdata->width : realsz); -error: - return -1; - -#undef _fpvalue -} - -#endif diff --git a/lib/stdio/nano-vfprintf_i.c b/lib/stdio/nano-vfprintf_i.c deleted file mode 100644 index f7da952..0000000 --- a/lib/stdio/nano-vfprintf_i.c +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" -#include "../stdlib/local.h" -#include "fvwrite.h" -#include "vfieeefp.h" -#include "nano-vfprintf_local.h" - -/* Decode and print non-floating point data. */ -int -_printf_common (struct _reent *data, - struct _prt_data_t *pdata, - int *realsz, - FILE *fp, - int (*pfunc)(struct _reent *, FILE *, - const char *, size_t len)) -{ - int n; - /* - * All reasonable formats wind up here. At this point, `cp' - * points to a string which (if not flags&LADJUST) should be - * padded out to `width' places. If flags&ZEROPAD, it should - * first be prefixed by any sign or other prefix; otherwise, - * it should be blank padded before the prefix is emitted. - * After any left-hand padding and prefixing, emit zeroes - * required by a decimal [diouxX] precision, then print the - * string proper, then emit zeroes required by any leftover - * floating precision; finally, if LADJUST, pad with blanks. - * If flags&FPT, ch must be in [aAeEfg]. - * - * Compute actual size, so we know how much to pad. - * size excludes decimal prec; realsz includes it. - */ - *realsz = pdata->dprec > pdata->size ? pdata->dprec : pdata->size; - if (pdata->l_buf[0]) - (*realsz)++; - - if (pdata->flags & HEXPREFIX) - *realsz += 2; - - /* Right-adjusting blank padding. */ - if ((pdata->flags & (LADJUST|ZEROPAD)) == 0) - PAD (pdata->width - *realsz, pdata->blank); - - /* Prefix. */ - n = 0; - if (pdata->l_buf[0]) - n++; - - if (pdata->flags & HEXPREFIX) - { - pdata->l_buf[n++] = '0'; - pdata->l_buf[n++] = pdata->l_buf[2]; - } - - PRINT (pdata->l_buf, n); - n = pdata->width - *realsz; - if ((pdata->flags & (LADJUST|ZEROPAD)) != ZEROPAD || n < 0) - n = 0; - - if (pdata->dprec > pdata->size) - n += pdata->dprec - pdata->size; - - PAD (n, pdata->zero); - return 0; -error: - return -1; -} -int -_printf_i (struct _reent *data, struct _prt_data_t *pdata, FILE *fp, - int (*pfunc)(struct _reent *, FILE *, const char *, size_t len), - va_list *ap) -{ - /* Field size expanded by dprec. */ - int realsz; - u_quad_t _uquad; - int base; - int n; - char *cp = pdata->buf + BUF; - char *xdigs = "0123456789ABCDEF"; - - /* Decoding the conversion specifier. */ - switch (pdata->code) - { - case 'c': - *--cp = GET_ARG (N, *ap, int); - pdata->size = 1; - goto non_number_nosign; - case 'd': - case 'i': - _uquad = SARG (pdata->flags); - if ((long) _uquad < 0) - { - _uquad = -_uquad; - pdata->l_buf[0] = '-'; - } - base = 10; - goto number; - case 'u': - case 'o': - _uquad = UARG (pdata->flags); - base = (pdata->code == 'o') ? 8 : 10; - goto nosign; - case 'X': - pdata->l_buf[2] = 'X'; - goto hex; - case 'p': - /* - * ``The argument shall be a pointer to void. The - * value of the pointer is converted to a sequence - * of printable characters, in an implementation- - * defined manner.'' - * -- ANSI X3J11 - */ - pdata->flags |= HEXPREFIX; - if (sizeof (void*) > sizeof (int)) - pdata->flags |= LONGINT; - /* NOSTRICT. */ - case 'x': - pdata->l_buf[2] = 'x'; - xdigs = "0123456789abcdef"; -hex: - _uquad = UARG (pdata->flags); - base = 16; - if (pdata->flags & ALT) - pdata->flags |= HEXPREFIX; - - /* Leading 0x/X only if non-zero. */ - if (_uquad == 0) - pdata->flags &= ~HEXPREFIX; - - /* Unsigned conversions. */ -nosign: - pdata->l_buf[0] = '\0'; - /* - * ``... diouXx conversions ... if a precision is - * specified, the 0 flag will be ignored.'' - * -- ANSI X3J11 - */ -number: - if ((pdata->dprec = pdata->prec) >= 0) - pdata->flags &= ~ZEROPAD; - - /* - * ``The result of converting a zero value with an - * explicit precision of zero is no characters.'' - * -- ANSI X3J11 - */ - if (_uquad != 0 || pdata->prec != 0) - { - do - { - *--cp = xdigs[_uquad % base]; - _uquad /= base; - } - while (_uquad); - } - /* For 'o' conversion, '#' increases the precision to force the first - digit of the result to be zero. */ - if (base == 8 && (pdata->flags & ALT) && pdata->prec <= pdata->size) - *--cp = '0'; - - pdata->size = pdata->buf + BUF - cp; - break; - case 'n': - if (pdata->flags & LONGINT) - *GET_ARG (N, *ap, long_ptr_t) = pdata->ret; - else if (pdata->flags & SHORTINT) - *GET_ARG (N, *ap, short_ptr_t) = pdata->ret; - else - *GET_ARG (N, *ap, int_ptr_t) = pdata->ret; - case '\0': - pdata->size = 0; - break; - case 's': - cp = GET_ARG (N, *ap, char_ptr_t); - /* Precision gives the maximum number of chars to be written from a - string, and take prec == -1 into consideration. - Use normal Newlib approach here to support case where cp is not - nul-terminated. */ - char *p = memchr (cp, 0, pdata->prec); - - if (p != NULL) - pdata->prec = p - cp; - - pdata->size = pdata->prec; - goto non_number_nosign; - default: - /* "%?" prints ?, unless ? is NUL. */ - /* Pretend it was %c with argument ch. */ - *--cp = pdata->code; - pdata->size = 1; -non_number_nosign: - pdata->l_buf[0] = '\0'; - break; - } - - /* Output. */ - n = _printf_common (data, pdata, &realsz, fp, pfunc); - if (n == -1) - goto error; - - PRINT (cp, pdata->size); - /* Left-adjusting padding (always blank). */ - if (pdata->flags & LADJUST) - PAD (pdata->width - realsz, pdata->blank); - - return (pdata->width > realsz ? pdata->width : realsz); -error: - return -1; -} - diff --git a/lib/stdio/nano-vfprintf_local.h b/lib/stdio/nano-vfprintf_local.h deleted file mode 100644 index 15ddce0..0000000 --- a/lib/stdio/nano-vfprintf_local.h +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef VFPRINTF_LOCAL -#define VFPRINTF_LOCAL - -#ifndef NO_FLOATING_POINT -# define FLOATING_POINT -#endif - -#define _NO_POS_ARGS -#undef _WANT_IO_C99_FORMATS - -/* Currently a test is made to see if long double processing is warranted. - This could be changed in the future should the _ldtoa_r code be - preferred over _dtoa_r. */ -#define _NO_LONGDBL - -#define _NO_LONGLONG - -#define _PRINTF_FLOAT_TYPE double - -#if defined (FLOATING_POINT) -# include -#endif -#ifdef FLOATING_POINT -# include - -/* For %La, an exponent of 15 bits occupies the exponent character, - a sign, and up to 5 digits. */ -# define MAXEXPLEN 7 -# define DEFPREC 6 - -extern char *_dtoa_r (struct _reent *, double, int, - int, int *, int *, char **); - -# define _DTOA_R _dtoa_r -# define FREXP frexp - -#endif /* FLOATING_POINT. */ - -/* BUF must be big enough for the maximum %#llo (assuming long long is - at most 64 bits, this would be 23 characters), the maximum - multibyte character %C, and the maximum default precision of %La - (assuming long double is at most 128 bits with 113 bits of - mantissa, this would be 29 characters). %e, %f, and %g use - reentrant storage shared with mprec. All other formats that use - buf get by with fewer characters. Making BUF slightly bigger - reduces the need for malloc in %.*a and %S, when large precision or - long strings are processed. - The bigger size of 100 bytes is used on systems which allow number - strings using the locale's grouping character. Since that's a multibyte - value, we should use a conservative value. */ -#define BUF 40 - -#define quad_t long -#define u_quad_t unsigned long - -typedef quad_t * quad_ptr_t; -typedef void *void_ptr_t; -typedef char * char_ptr_t; -typedef long * long_ptr_t; -typedef int * int_ptr_t; -typedef short * short_ptr_t; - -/* Macros for converting digits to letters and vice versa. */ -#define to_digit(c) ((c) - '0') -#define is_digit(c) ((unsigned)to_digit (c) <= 9) -#define to_char(n) ((n) + '0') - -/* Flags used during conversion. */ -#define ALT 0x001 /* Alternate form. */ -#define LADJUST 0x002 /* Left adjustment. */ -#define ZEROPAD 0x004 /* Zero (as opposed to blank) pad. */ -#define PLUSSGN 0x008 /* Plus sign flag. */ -#define SPACESGN 0x010 /* Space flag. */ -#define HEXPREFIX 0x020 /* Add 0x or 0X prefix. */ -#define SHORTINT 0x040 /* Short integer. */ -#define LONGINT 0x080 /* Long integer. */ -#define LONGDBL 0x100 /* Long double. */ -/* ifdef _NO_LONGLONG, make QUADINT equivalent to LONGINT, so - that %lld behaves the same as %ld, not as %d, as expected if: - sizeof (long long) = sizeof long > sizeof int. */ -#define QUADINT LONGINT -#define FPT 0x400 /* Floating point number. */ -/* Define as 0, to make SARG and UARG occupy fewer instructions. */ -# define CHARINT 0 - -/* Macros to support positional arguments. */ -#define GET_ARG(n, ap, type) (va_arg ((ap), type)) - -/* To extend shorts properly, we need both signed and unsigned - argument extraction methods. Also they should be used in nano-vfprintf_i.c - and nano-vfprintf_float.c only, since ap is a pointer to va_list. */ -#define SARG(flags) \ - (flags&LONGINT ? GET_ARG (N, (*ap), long) : \ - flags&SHORTINT ? (long)(short)GET_ARG (N, (*ap), int) : \ - flags&CHARINT ? (long)(signed char)GET_ARG (N, (*ap), int) : \ - (long)GET_ARG (N, (*ap), int)) -#define UARG(flags) \ - (flags&LONGINT ? GET_ARG (N, (*ap), u_long) : \ - flags&SHORTINT ? (u_long)(u_short)GET_ARG (N, (*ap), int) : \ - flags&CHARINT ? (u_long)(unsigned char)GET_ARG (N, (*ap), int) : \ - (u_long)GET_ARG (N, (*ap), u_int)) - -/* BEWARE, these `goto error' on error. And they are used - in more than one functions. - - Following macros are each referred about twice in printf for integer, - so it is not worth to rewrite them into functions. This situation may - change in the future. */ -#define PRINT(ptr, len) { \ - if (pfunc (data, fp, (ptr), (len)) == EOF) \ - goto error; \ -} -#define PAD(howmany, ch) { \ - int temp_i = 0; \ - while (temp_i < (howmany)) \ - { \ - if (pfunc (data, fp, &(ch), 1) == EOF) \ - goto error; \ - temp_i++; \ - } \ -} -#define PRINTANDPAD(p, ep, len, ch) { \ - int temp_n = (ep) - (p); \ - if (temp_n > (len)) \ - temp_n = (len); \ - if (temp_n > 0) \ - PRINT((p), temp_n); \ - PAD((len) - (temp_n > 0 ? temp_n : 0), (ch)); \ -} - -/* All data needed to decode format string are kept in below struct. */ -struct _prt_data_t -{ - int flags; /* Flags. */ - int prec; /* Precision. */ - int dprec; /* Decimal precision. */ - int width; /* Width. */ - int size; /* Size of converted field or string. */ - int ret; /* Return value accumulator. */ - char code; /* Current conversion specifier. */ - char blank; /* Blank character. */ - char zero; /* Zero character. */ - char buf[BUF]; /* Output buffer for non-floating point number. */ - char l_buf[3]; /* Sign&hex_prefix, "+/-" and "0x/X". */ -#ifdef FLOATING_POINT - _PRINTF_FLOAT_TYPE _double_; /* Double value. */ - char expstr[MAXEXPLEN]; /* Buffer for exponent string. */ - int lead; /* The sig figs before decimal or group sep. */ -#endif -}; - -extern int -_printf_common (struct _reent *data, - struct _prt_data_t *pdata, - int *realsz, - FILE *fp, - int (*pfunc)(struct _reent *, FILE *, - const char *, size_t len)); - -extern int -_printf_i (struct _reent *data, struct _prt_data_t *pdata, FILE *fp, - int (*pfunc)(struct _reent *, FILE *, const char *, size_t len), - va_list *ap); - -/* Make _printf_float weak symbol, so it won't be linked in if target program - does not need it. */ -extern int -_printf_float (struct _reent *data, - struct _prt_data_t *pdata, - FILE *fp, - int (*pfunc)(struct _reent *, FILE *, - const char *, size_t len), - va_list *ap) _ATTRIBUTE((__weak__)); -#endif diff --git a/lib/stdio/nano-vfscanf.c b/lib/stdio/nano-vfscanf.c deleted file mode 100644 index 57d25b8..0000000 --- a/lib/stdio/nano-vfscanf.c +++ /dev/null @@ -1,465 +0,0 @@ -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>, <>---format argument list - -INDEX - vfscanf -INDEX - _vfscanf_r -INDEX - vscanf -INDEX - _vscanf_r -INDEX - vsscanf -INDEX - _vsscanf_r - -SYNOPSIS - #include - #include - int vscanf(const char *<[fmt]>, va_list <[list]>); - int vfscanf(FILE *<[fp]>, const char *<[fmt]>, va_list <[list]>); - int vsscanf(const char *<[str]>, const char *<[fmt]>, va_list <[list]>); - - int _vscanf_r(struct _reent *<[reent]>, const char *<[fmt]>, - va_list <[list]>); - int _vfscanf_r(struct _reent *<[reent]>, FILE *<[fp]>, const char *<[fmt]>, - va_list <[list]>); - int _vsscanf_r(struct _reent *<[reent]>, const char *<[str]>, - const char *<[fmt]>, va_list <[list]>); - -DESCRIPTION -<>, <>, and <> are (respectively) variants -of <>, <>, and <>. They differ only in -allowing their caller to pass the variable argument list as a -<> object (initialized by <>) rather than -directly accepting a variable number of arguments. - -RETURNS -The return values are consistent with the corresponding functions: -<> returns the number of input fields successfully scanned, -converted, and stored; the return value does not include scanned -fields which were not stored. - -If <> attempts to read at end-of-file, the return value -is <>. - -If no fields were stored, the return value is <<0>>. - -The routines <<_vscanf_r>>, <<_vfscanf_f>>, and <<_vsscanf_r>> are -reentrant versions which take an additional first parameter which points to the -reentrancy structure. - -PORTABILITY -These are GNU extensions. - -Supporting OS subroutines required: -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" -#include "../stdlib/local.h" -#include "nano-vfscanf_local.h" - -#define VFSCANF vfscanf -#define _VFSCANF_R _vfscanf_r -#define __SVFSCANF __svfscanf -#ifdef STRING_ONLY -# define __SVFSCANF_R __ssvfscanf_r -#else -# define __SVFSCANF_R __svfscanf_r -#endif - -/* vfscanf. */ - -#ifndef STRING_ONLY - -#ifndef _REENT_ONLY - -int -VFSCANF (register FILE *fp, - const char *fmt, - va_list ap) -{ - CHECK_INIT(_REENT, fp); - return __SVFSCANF_R (_REENT, fp, fmt, ap); -} - -int -vfiscanf (FILE *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("vfscanf"))); - -int -__SVFSCANF (register FILE *fp, - char const *fmt0, - va_list ap) -{ - return __SVFSCANF_R (_REENT, fp, fmt0, ap); -} - -#endif - -int -_VFSCANF_R (struct _reent *data, - register FILE *fp, - const char *fmt, - va_list ap) -{ - CHECK_INIT(data, fp); - return __SVFSCANF_R (data, fp, fmt, ap); -} - -int -_vfiscanf_r (struct _reent *, FILE *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("_vfscanf_r"))); -#endif /* !STRING_ONLY. */ - -#if defined (STRING_ONLY) -/* When dealing with the sscanf family, we don't want to use the - regular ungetc which will drag in file I/O items we don't need. - So, we create our own trimmed-down version. */ -int -_sungetc_r (struct _reent *data, - int c, - register FILE *fp) -{ - if (c == EOF) - return (EOF); - - /* After ungetc, we won't be at eof anymore. */ - fp->_flags &= ~__SEOF; - c = (unsigned char) c; - - /* If we are in the middle of ungetc'ing, just continue. - This may require expanding the current ungetc buffer. */ - - if (HASUB (fp)) - { - if (fp->_r >= fp->_ub._size && __submore (data, fp)) - return EOF; - - *--fp->_p = c; - fp->_r++; - return c; - } - - /* If we can handle this by simply backing up, do so, - but never replace the original character. - (This makes sscanf() work when scanning `const' data). */ - if (fp->_bf._base != NULL && fp->_p > fp->_bf._base && fp->_p[-1] == c) - { - fp->_p--; - fp->_r++; - return c; - } - - /* Create an ungetc buffer. - Initially, we will use the `reserve' buffer. */ - fp->_ur = fp->_r; - fp->_up = fp->_p; - fp->_ub._base = fp->_ubuf; - fp->_ub._size = sizeof (fp->_ubuf); - fp->_ubuf[sizeof (fp->_ubuf) - 1] = c; - fp->_p = &fp->_ubuf[sizeof (fp->_ubuf) - 1]; - fp->_r = 1; - return c; -} - -/* String only version of __srefill_r for sscanf family. */ -int -__ssrefill_r (struct _reent * ptr, - register FILE * fp) -{ - /* Our only hope of further input is the ungetc buffer. - If there is anything in that buffer to read, return. */ - if (HASUB (fp)) - { - FREEUB (ptr, fp); - if ((fp->_r = fp->_ur) != 0) - { - fp->_p = fp->_up; - return 0; - } - } - - /* Otherwise we are out of character input. */ - fp->_p = fp->_bf._base; - fp->_r = 0; - fp->_flags |= __SEOF; - return EOF; -} - -#else -int _sungetc_r (struct _reent *, int, register FILE *); -int __ssrefill_r (struct _reent *, register FILE *); -size_t _sfread_r (struct _reent *, void *buf, size_t, size_t, FILE *); -#endif /* !STRING_ONLY. */ - -int -__SVFSCANF_R (struct _reent *rptr, - register FILE *fp, - char const *fmt0, - va_list ap) -{ - register u_char *fmt = (u_char *) fmt0; - register int c; /* Character from format, or conversion. */ - register char *p; /* Points into all kinds of strings. */ - char ccltab[256]; /* Character class table for %[...]. */ - va_list ap_copy; - - int ret; - char *cp; - - struct _scan_data_t scan_data; - int (*scan_func)(struct _reent*, struct _scan_data_t*, FILE *, va_list *); - - _newlib_flockfile_start (fp); - - scan_data.nassigned = 0; - scan_data.nread = 0; - scan_data.ccltab = ccltab; - scan_data.pfn_ungetc = _ungetc_r; - scan_data.pfn_refill = __srefill_r; - - /* GCC PR 14577 at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14557 */ - va_copy (ap_copy, ap); - - for (;;) - { - if (*fmt == 0) - goto all_done; - - if (isspace (*fmt)) - { - while ((fp->_r > 0 || !scan_data.pfn_refill(rptr, fp)) - && isspace (*fp->_p)) - { - scan_data.nread++; - fp->_r--; - fp->_p++; - } - fmt++; - continue; - } - if ((c = *fmt++) != '%') - goto literal; - - scan_data.width = 0; - scan_data.flags = 0; - - if (*fmt == '*') - { - scan_data.flags |= SUPPRESS; - fmt++; - } - - for (; is_digit (*fmt); fmt++) - scan_data.width = 10 * scan_data.width + to_digit (*fmt); - - /* The length modifiers. */ - p = "hlL"; - if ((cp = memchr (p, *fmt, 3)) != NULL) { - scan_data.flags |= (SHORT << (cp - p)); - fmt++; - } - - /* Switch on the format. continue if done; break once format - type is derived. */ - c = *fmt++; - switch (c) - { - case '%': - literal: - if ((fp->_r <= 0 && scan_data.pfn_refill(rptr, fp))) - goto input_failure; - if (*fp->_p != c) - goto match_failure; - fp->_r--, fp->_p++; - scan_data.nread++; - continue; - - case 'p': - scan_data.flags |= POINTER; - case 'x': - case 'X': - scan_data.flags |= PFXOK; - scan_data.base = 16; - goto number; - case 'd': - case 'u': - scan_data.base = 10; - goto number; - case 'i': - scan_data.base = 0; - goto number; - case 'o': - scan_data.base = 8; - number: - scan_data.code = (c < 'o') ? CT_INT : CT_UINT; - break; - - case '[': - fmt = (u_char *) __sccl (ccltab, (unsigned char *) fmt); - scan_data.flags |= NOSKIP; - scan_data.code = CT_CCL; - break; - case 'c': - scan_data.flags |= NOSKIP; - scan_data.code = CT_CHAR; - break; - case 's': - scan_data.code = CT_STRING; - break; - - case 'n': - if (scan_data.flags & SUPPRESS) /* ??? */ - continue; - - if (scan_data.flags & SHORT) - *GET_ARG (N, ap_copy, short *) = scan_data.nread; - else if (scan_data.flags & LONG) - *GET_ARG (N, ap_copy, long *) = scan_data.nread; - else - *GET_ARG (N, ap_copy, int *) = scan_data.nread; - - continue; - - /* Disgusting backwards compatibility hacks. XXX. */ - case '\0': /* compat. */ - _newlib_flockfile_exit (fp); - va_end (ap_copy); - return EOF; - -#ifdef FLOATING_POINT - case 'e': case 'E': - case 'f': case 'F': - case 'g': case 'G': - scan_data.code = CT_FLOAT; - break; -#endif - default: /* compat. */ - scan_data.code = CT_INT; - scan_data.base = 10; - break; - } - - /* We have a conversion that requires input. */ - if ((fp->_r <= 0 && scan_data.pfn_refill (rptr, fp))) - goto input_failure; - - /* Consume leading white space, except for formats that - suppress this. */ - if ((scan_data.flags & NOSKIP) == 0) - { - while (isspace (*fp->_p)) - { - scan_data.nread++; - if (--fp->_r > 0) - fp->_p++; - else if (scan_data.pfn_refill (rptr, fp)) - goto input_failure; - } - /* Note that there is at least one character in the - buffer, so conversions that do not set NOSKIP ca - no longer result in an input failure. */ - } - ret = 0; - if (scan_data.code < CT_INT) - ret = _scanf_chars (rptr, &scan_data, fp, &ap_copy); - else if (scan_data.code < CT_FLOAT) - ret = _scanf_i (rptr, &scan_data, fp, &ap_copy); -#ifdef FLOATING_POINT - else if (_scanf_float) - ret = _scanf_float (rptr, &scan_data, fp, &ap_copy); -#endif - - if (ret == MATCH_FAILURE) - goto match_failure; - else if (ret == INPUT_FAILURE) - goto input_failure; - } -input_failure: - /* On read failure, return EOF failure regardless of matches; errno - should have been set prior to here. On EOF failure (including - invalid format string), return EOF if no matches yet, else number - of matches made prior to failure. */ - _newlib_flockfile_exit (fp); - va_end (ap_copy); - return scan_data.nassigned && !(fp->_flags & __SERR) ? scan_data.nassigned - : EOF; -match_failure: -all_done: - /* Return number of matches, which can be 0 on match failure. */ - _newlib_flockfile_end (fp); - va_end (ap_copy); - return scan_data.nassigned; -} - -#ifdef STRING_ONLY -int -__ssvfiscanf_r (struct _reent *, FILE *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("__ssvfscanf_r"))); -#else -int -__svfiscanf_r (struct _reent *, FILE *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("__svfscanf_r"))); -#endif - diff --git a/lib/stdio/nano-vfscanf_float.c b/lib/stdio/nano-vfscanf_float.c deleted file mode 100644 index 056046f..0000000 --- a/lib/stdio/nano-vfscanf_float.c +++ /dev/null @@ -1,342 +0,0 @@ -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" -#include "../stdlib/local.h" -#include "nano-vfscanf_local.h" - -#ifdef FLOATING_POINT -int -_scanf_float (struct _reent *rptr, - struct _scan_data_t *pdata, - FILE *fp, va_list *ap) -{ - int c; - char *p; - float *flp; - _LONG_DOUBLE *ldp; - - /* Scan a floating point number as if by strtod. */ - /* This code used to assume that the number of digits is reasonable. - However, ANSI / ISO C makes no such stipulation; we have to get - exact results even when there is an unreasonable amount of leading - zeroes. */ - long leading_zeroes = 0; - long zeroes, exp_adjust; - char *exp_start = NULL; - unsigned width_left = 0; - char nancount = 0; - char infcount = 0; -#ifdef hardway - if (pdata->width == 0 || pdata->width > BUF - 1) -#else - /* size_t is unsigned, hence this optimisation. */ - if (pdata->width - 1 > BUF - 2) -#endif - { - width_left = pdata->width - (BUF - 1); - pdata->width = BUF - 1; - } - pdata->flags |= SIGNOK | NDIGITS | DPTOK | EXPOK; - zeroes = 0; - exp_adjust = 0; - for (p = pdata->buf; pdata->width; ) - { - c = *fp->_p; - /* This code mimicks the integer conversion code, - but is much simpler. */ - switch (c) - { - case '0': - if (pdata->flags & NDIGITS) - { - pdata->flags &= ~SIGNOK; - zeroes++; - if (width_left) - { - width_left--; - pdata->width++; - } - goto fskip; - } - /* Fall through. */ - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (nancount + infcount == 0) - { - pdata->flags &= ~(SIGNOK | NDIGITS); - goto fok; - } - break; - - case '+': - case '-': - if (pdata->flags & SIGNOK) - { - pdata->flags &= ~SIGNOK; - goto fok; - } - break; - case 'n': - case 'N': - if (nancount == 0 && zeroes == 0 - && (pdata->flags & (NDIGITS | DPTOK | EXPOK)) == - (NDIGITS | DPTOK | EXPOK)) - { - pdata->flags &= ~(SIGNOK | DPTOK | EXPOK | NDIGITS); - nancount = 1; - goto fok; - } - if (nancount == 2) - { - nancount = 3; - goto fok; - } - if (infcount == 1 || infcount == 4) - { - infcount++; - goto fok; - } - break; - case 'a': - case 'A': - if (nancount == 1) - { - nancount = 2; - goto fok; - } - break; - case 'i': - case 'I': - if (infcount == 0 && zeroes == 0 - && (pdata->flags & (NDIGITS | DPTOK | EXPOK)) == - (NDIGITS | DPTOK | EXPOK)) - { - pdata->flags &= ~(SIGNOK | DPTOK | EXPOK | NDIGITS); - infcount = 1; - goto fok; - } - if (infcount == 3 || infcount == 5) - { - infcount++; - goto fok; - } - break; - case 'f': - case 'F': - if (infcount == 2) - { - infcount = 3; - goto fok; - } - break; - case 't': - case 'T': - if (infcount == 6) - { - infcount = 7; - goto fok; - } - break; - case 'y': - case 'Y': - if (infcount == 7) - { - infcount = 8; - goto fok; - } - break; - case '.': - if (pdata->flags & DPTOK) - { - pdata->flags &= ~(SIGNOK | DPTOK); - leading_zeroes = zeroes; - goto fok; - } - break; - case 'e': - case 'E': - /* No exponent without some digits. */ - if ((pdata->flags & (NDIGITS | EXPOK)) == EXPOK - || ((pdata->flags & EXPOK) && zeroes)) - { - if (! (pdata->flags & DPTOK)) - { - exp_adjust = zeroes - leading_zeroes; - exp_start = p; - } - pdata->flags = - (pdata->flags & ~(EXPOK | DPTOK)) | SIGNOK | NDIGITS; - zeroes = 0; - goto fok; - } - break; - } - break; -fok: - *p++ = c; -fskip: - pdata->width--; - ++pdata->nread; - if (--fp->_r > 0) - fp->_p++; - else if (pdata->pfn_refill (rptr, fp)) - /* "EOF". */ - break; - } - if (zeroes) - pdata->flags &= ~NDIGITS; - /* We may have a 'N' or possibly even [sign] 'N' 'a' as the - start of 'NaN', only to run out of chars before it was - complete (or having encountered a non-matching char). So - check here if we have an outstanding nancount, and if so - put back the chars we did swallow and treat as a failed - match. - - FIXME - we still don't handle NAN([0xdigits]). */ - if (nancount - 1U < 2U) - { - /* "nancount && nancount < 3". */ - /* Newlib's ungetc works even if we called __srefill in - the middle of a partial parse, but POSIX does not - guarantee that in all implementations of ungetc. */ - while (p > pdata->buf) - { - pdata->pfn_ungetc (rptr, *--p, fp); /* "[-+nNaA]". */ - --pdata->nread; - } - return MATCH_FAILURE; - } - /* Likewise for 'inf' and 'infinity'. But be careful that - 'infinite' consumes only 3 characters, leaving the stream - at the second 'i'. */ - if (infcount - 1U < 7U) - { - /* "infcount && infcount < 8". */ - if (infcount >= 3) /* valid 'inf', but short of 'infinity'. */ - while (infcount-- > 3) - { - pdata->pfn_ungetc (rptr, *--p, fp); /* "[iInNtT]". */ - --pdata->nread; - } - else - { - while (p > pdata->buf) - { - pdata->pfn_ungetc (rptr, *--p, fp); /* "[-+iInN]". */ - --pdata->nread; - } - return MATCH_FAILURE; - } - } - /* If no digits, might be missing exponent digits - (just give back the exponent) or might be missing - regular digits, but had sign and/or decimal point. */ - if (pdata->flags & NDIGITS) - { - if (pdata->flags & EXPOK) - { - /* No digits at all. */ - while (p > pdata->buf) - { - pdata->pfn_ungetc (rptr, *--p, fp); /* "[-+.]". */ - --pdata->nread; - } - return MATCH_FAILURE; - } - /* Just a bad exponent (e and maybe sign). */ - c = *--p; - --pdata->nread; - if (c != 'e' && c != 'E') - { - pdata->pfn_ungetc (rptr, c, fp); /* "[-+]". */ - c = *--p; - --pdata->nread; - } - pdata->pfn_ungetc (rptr, c, fp); /* "[eE]". */ - } - if ((pdata->flags & SUPPRESS) == 0) - { - double fp; - long new_exp = 0; - - *p = 0; - if ((pdata->flags & (DPTOK | EXPOK)) == EXPOK) - { - exp_adjust = zeroes - leading_zeroes; - new_exp = -exp_adjust; - exp_start = p; - } - else if (exp_adjust) - new_exp = _strtol_r (rptr, (exp_start + 1), NULL, 10) - exp_adjust; - - if (exp_adjust) - { - /* If there might not be enough space for the new exponent, - truncate some trailing digits to make room. */ - if (exp_start >= pdata->buf + BUF - MAX_LONG_LEN) - exp_start = pdata->buf + BUF - MAX_LONG_LEN - 1; - sprintf (exp_start, "e%ld", new_exp); - } - - /* Current _strtold routine is markedly slower than - _strtod_r. Only use it if we have a long double - result. */ - fp = _strtod_r (rptr, pdata->buf, NULL); - - /* Do not support long double. */ - if (pdata->flags & LONG) - *GET_ARG (N, *ap, double *) = fp; - else if (pdata->flags & LONGDBL) - { - ldp = GET_ARG (N, *ap, _LONG_DOUBLE *); - *ldp = fp; - } - else - { - flp = GET_ARG (N, *ap, float *); - if (isnan (fp)) - *flp = nanf (""); - else - *flp = fp; - } - pdata->nassigned++; - } - return 0; -} -#endif - diff --git a/lib/stdio/nano-vfscanf_i.c b/lib/stdio/nano-vfscanf_i.c deleted file mode 100644 index fc80117..0000000 --- a/lib/stdio/nano-vfscanf_i.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" -#include "../stdlib/local.h" - -#include "nano-vfscanf_local.h" - -int -_scanf_chars (struct _reent *rptr, - struct _scan_data_t *pdata, - FILE *fp, va_list *ap) -{ - int n; - char *p; - - if (pdata->width == 0) - pdata->width = (pdata->code == CT_CHAR) ? 1 : (size_t)~0; - - n = 0; - if ((pdata->flags & SUPPRESS) == 0) - p = GET_ARG (N, *ap, char *); - - /* It's impossible to have EOF when we get here. */ - while ((pdata->code == CT_CHAR) - || (pdata->code == CT_CCL && pdata->ccltab[*fp->_p]) - || (pdata->code == CT_STRING && !isspace (*fp->_p))) - { - n++; - if ((pdata->flags & SUPPRESS) == 0) - *p++ = *fp->_p; - - fp->_r--, fp->_p++; - if (--pdata->width == 0) - break; - - if ((fp->_r <= 0 && pdata->pfn_refill (rptr, fp))) - break; - } - /* For CT_CHAR, it is impossible to have input_failure(n == 0) here. - For CT_CCL, it is impossible to have input_failure here. - For CT_STRING, it is possible to have empty string. */ - if (n == 0 && pdata->code == CT_CCL) - return MATCH_FAILURE; - - if ((pdata->flags & SUPPRESS) == 0) - { - pdata->nassigned++; - if (pdata->code != CT_CHAR) - *p = 0; - } - pdata->nread += n; - return 0; -} -int -_scanf_i (struct _reent *rptr, - struct _scan_data_t *pdata, - FILE *fp, va_list *ap) -{ -#define CCFN_PARAMS (struct _reent *, const char *, char **, int) - /* Conversion function (strtol/strtoul). */ - u_long (*ccfn)CCFN_PARAMS=0; - char *p; - int n; - char *xdigits = "A-Fa-f8901234567]"; - char *prefix_chars[3] = {"+-", "00", "xX"}; - - /* Scan an integer as if by strtol/strtoul. */ - unsigned width_left = 0; - int skips = 0; - - ccfn = (pdata->code == CT_INT) ? (u_long (*)CCFN_PARAMS)_strtol_r : _strtoul_r; -#ifdef hardway - if (pdata->width == 0 || pdata->width > BUF - 1) -#else - /* size_t is unsigned, hence this optimisation. */ - if (pdata->width - 1 > BUF - 2) -#endif - { - width_left = pdata->width - (BUF - 1); - pdata->width = BUF - 1; - } - p = pdata->buf; - pdata->flags |= NDIGITS | NZDIGITS | NNZDIGITS; - - /* Process [sign] [0] [xX] prefixes sequently. */ - for (n = 0; n < 3; n++) - { - if (!memchr (prefix_chars[n], *fp->_p, 2)) - continue; - - if (n == 1) - { - if (pdata->base == 0) - { - pdata->base = 8; - pdata->flags |= PFXOK; - } - pdata->flags &= ~(NZDIGITS | NDIGITS); - } - else if (n == 2) - { - if ((pdata->flags & (PFXOK | NZDIGITS)) != PFXOK) - continue; - pdata->base = 16; - - /* We must reset the NZDIGITS and NDIGITS - flags that would have been unset by seeing - the zero that preceded the X or x. - - ??? It seems unnecessary to reset the NZDIGITS. */ - pdata->flags |= NDIGITS; - } - if (pdata->width-- > 0) - { - *p++ = *fp->_p++; - fp->_r--; - if ((fp->_r <= 0 && pdata->pfn_refill (rptr, fp))) - goto match_end; - } - } - - if (pdata->base == 0) - pdata->base = 10; - - /* The check is un-necessary if xdigits points to exactly the string: - "A-Fa-f8901234567]". The code is kept only for reading's sake. */ -#if 0 - if (pdata->base != 16) -#endif - xdigits = xdigits + 16 - pdata->base; - - /* Initilize ccltab according to pdata->base. */ - __sccl (pdata->ccltab, (unsigned char *) xdigits); - for (; pdata->width; pdata->width--) - { - n = *fp->_p; - if (pdata->ccltab[n] == 0) - break; - else if (n == '0' && (pdata->flags & NNZDIGITS)) - { - ++skips; - if (width_left) - { - width_left--; - pdata->width++; - } - goto skip; - } - pdata->flags &= ~(NDIGITS | NNZDIGITS); - /* Char is legal: store it and look at the next. */ - *p++ = *fp->_p; -skip: - if (--fp->_r > 0) - fp->_p++; - else if (pdata->pfn_refill (rptr, fp)) - /* "EOF". */ - break; - } - /* If we had only a sign, it is no good; push back the sign. - If the number ends in `x', it was [sign] '0' 'x', so push back - the x and treat it as [sign] '0'. - Use of ungetc here and below assumes ASCII encoding; we are only - pushing back 7-bit characters, so casting to unsigned char is - not necessary. */ -match_end: - if (pdata->flags & NDIGITS) - { - if (p > pdata->buf) - pdata->pfn_ungetc (rptr, *--p, fp); /* "[-+xX]". */ - - if (p == pdata->buf) - return MATCH_FAILURE; - } - if ((pdata->flags & SUPPRESS) == 0) - { - u_long ul; - *p = 0; - ul = (*ccfn) (rptr, pdata->buf, (char **) NULL, pdata->base); - if (pdata->flags & POINTER) - *GET_ARG (N, *ap, void **) = (void *) (uintptr_t) ul; - else if (pdata->flags & SHORT) - *GET_ARG (N, *ap, short *) = ul; - else if (pdata->flags & LONG) - *GET_ARG (N, *ap, long *) = ul; - else - *GET_ARG (N, *ap, int *) = ul; - - pdata->nassigned++; - } - pdata->nread += p - pdata->buf + skips; - return 0; -} - diff --git a/lib/stdio/nano-vfscanf_local.h b/lib/stdio/nano-vfscanf_local.h deleted file mode 100644 index d696ec0..0000000 --- a/lib/stdio/nano-vfscanf_local.h +++ /dev/null @@ -1,178 +0,0 @@ -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* - * Copyright (c) 2012-2014 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef VFSCANF_LOCAL -#define VFSCANF_LOCAL - -#ifndef NO_FLOATING_POINT -#define FLOATING_POINT -#endif - -#ifdef STRING_ONLY -#undef _newlib_flockfile_start -#undef _newlib_flockfile_exit -#undef _newlib_flockfile_end -#define _newlib_flockfile_start(x) {} -#define _newlib_flockfile_exit(x) {} -#define _newlib_flockfile_end(x) {} -#define _ungetc_r _sungetc_r -#define __srefill_r __ssrefill_r -#endif - -#ifdef FLOATING_POINT -#include -#include - -/* Currently a test is made to see if long double processing is warranted. - This could be changed in the future should the _ldtoa_r code be - preferred over _dtoa_r. */ -#define _NO_LONGDBL - -#include "floatio.h" - -#if ((MAXEXP+MAXFRACT+3) > MB_LEN_MAX) -/* "3 = sign + decimal point + NUL". */ -# define BUF (MAXEXP+MAXFRACT+3) -#else -# define BUF MB_LEN_MAX -#endif - -/* An upper bound for how long a long prints in decimal. 4 / 13 approximates - log (2). Add one char for roundoff compensation and one for the sign. */ -#define MAX_LONG_LEN ((CHAR_BIT * sizeof (long) - 1) * 4 / 13 + 2) -#else -#define BUF 40 -#endif - - -#define _NO_LONGLONG -#undef _WANT_IO_C99_FORMATS -#undef _WANT_IO_POS_ARGS - -#define _NO_POS_ARGS - -/* Macros for converting digits to letters and vice versa. */ -#define to_digit(c) ((c) - '0') -#define is_digit(c) ((unsigned)to_digit (c) <= 9) -#define to_char(n) ((n) + '0') - -/* - * Flags used during conversion. - */ - -#define SHORT 0x01 /* "h": short. */ -#define LONG 0x02 /* "l": long or double. */ -#define LONGDBL 0x04 /* "L/ll": long double or long long. */ -#define CHAR 0x08 /* "hh": 8 bit integer. */ -#define SUPPRESS 0x10 /* Suppress assignment. */ -#define POINTER 0x20 /* Weird %p pointer (`fake hex'). */ -#define NOSKIP 0x40 /* Do not skip blanks */ - -/* The following are used in numeric conversions only: - SIGNOK, NDIGITS, DPTOK, and EXPOK are for floating point; - SIGNOK, NDIGITS, PFXOK, and NZDIGITS are for integral. */ - -#define SIGNOK 0x80 /* "+/-" is (still) legal. */ -#define NDIGITS 0x100 /* No digits detected. */ - -#define DPTOK 0x200 /* (Float) decimal point is still legal. */ -#define EXPOK 0x400 /* (Float) exponent (e+3, etc) still legal. */ - -#define PFXOK 0x200 /* "0x" prefix is (still) legal. */ -#define NZDIGITS 0x400 /* No zero digits detected. */ -#define NNZDIGITS 0x800 /* No non-zero digits detected. */ - -/* Conversion types. */ - -#define CT_CHAR 0 /* "%c" conversion. */ -#define CT_CCL 1 /* "%[...]" conversion. */ -#define CT_STRING 2 /* "%s" conversion. */ -#define CT_INT 3 /* Integer, i.e., strtol. */ -#define CT_UINT 4 /* Unsigned integer, i.e., strtoul. */ -#define CT_FLOAT 5 /* Floating, i.e., strtod. */ - -#define u_char unsigned char -#define u_long unsigned long - -/* Macro to support positional arguments. */ -#define GET_ARG(n, ap, type) (va_arg ((ap), type)) - -#define MATCH_FAILURE 1 -#define INPUT_FAILURE 2 - - -/* All data needed to decode format string are kept in below struct. */ -struct _scan_data_t -{ - int flags; /* Flags. */ - int base; /* Base. */ - size_t width; /* Width. */ - int nassigned; /* Number of assignments so far. */ - int nread; /* Number of chars read so far. */ - char *ccltab; /* Table used for [ format. */ - int code; /* Current conversion specifier. */ - char buf[BUF]; /* Internal buffer for scan. */ - /* Internal buffer for scan. */ - int (*pfn_ungetc)(struct _reent*, int, FILE*); - /* Internal buffer for scan. */ - int (*pfn_refill)(struct _reent*, FILE*); -}; - -extern int -_scanf_chars (struct _reent *rptr, - struct _scan_data_t *pdata, - FILE *fp, va_list *ap); -extern int -_scanf_i (struct _reent *rptr, - struct _scan_data_t *pdata, - FILE *fp, va_list *ap); -/* Make _scanf_float weak symbol, so it won't be linked in if target program - does not need it. */ -extern int -_scanf_float (struct _reent *rptr, - struct _scan_data_t *pdata, - FILE *fp, va_list *ap) _ATTRIBUTE((__weak__)); - -#endif diff --git a/lib/stdio/open_memstream.c b/lib/stdio/open_memstream.c deleted file mode 100644 index e3a52ed..0000000 --- a/lib/stdio/open_memstream.c +++ /dev/null @@ -1,405 +0,0 @@ -/* Copyright (C) 2007 Eric Blake - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -/* -FUNCTION -<>, <>---open a write stream around an arbitrary-length string - -INDEX - open_memstream -INDEX - open_wmemstream - -SYNOPSIS - #include - FILE *open_memstream(char **restrict <[buf]>, - size_t *restrict <[size]>); - - #include - FILE *open_wmemstream(wchar_t **restrict <[buf]>, - size_t *restrict <[size]>); - -DESCRIPTION -<> creates a seekable, byte-oriented <> stream that -wraps an arbitrary-length buffer, created as if by <>. The current -contents of *<[buf]> are ignored; this implementation uses *<[size]> -as a hint of the maximum size expected, but does not fail if the hint -was wrong. The parameters <[buf]> and <[size]> are later stored -through following any call to <> or <>, set to the -current address and usable size of the allocated string; although -after fflush, the pointer is only valid until another stream operation -that results in a write. Behavior is undefined if the user alters -either *<[buf]> or *<[size]> prior to <>. - -<> is like <> just with the associated -stream being wide-oriented. The size set in <[size]> in subsequent -operations is the number of wide characters. - -The stream is write-only, since the user can directly read *<[buf]> -after a flush; see <> for a way to wrap a string with a -readable stream. The user is responsible for calling <> on -the final *<[buf]> after <>. - -Any time the stream is flushed, a NUL byte is written at the current -position (but is not counted in the buffer length), so that the string -is always NUL-terminated after at most *<[size]> bytes (or wide characters -in case of <>). However, data previously written beyond -the current stream offset is not lost, and the NUL value written during a -flush is restored to its previous value when seeking elsewhere in the string. - -RETURNS -The return value is an open FILE pointer on success. On error, -<> is returned, and <> will be set to EINVAL if <[buf]> -or <[size]> is NULL, ENOMEM if memory could not be allocated, or -EMFILE if too many streams are already open. - -PORTABILITY -POSIX.1-2008 - -Supporting OS subroutines required: <>. -*/ - -#include -#include -#include -#include -#include -#include -#include "local.h" - -#ifndef __LARGE64_FILES -# define OFF_T off_t -#else -# define OFF_T _off64_t -#endif - -/* Describe details of an open memstream. */ -typedef struct memstream { - void *storage; /* storage to free on close */ - char **pbuf; /* pointer to the current buffer */ - size_t *psize; /* pointer to the current size, smaller of pos or eof */ - size_t pos; /* current position */ - size_t eof; /* current file size */ - size_t max; /* current malloc buffer size, always > eof */ - union { - char c; - wchar_t w; - } saved; /* saved character that lived at *psize before NUL */ - int8_t wide; /* wide-oriented (>0) or byte-oriented (<0) */ -} memstream; - -/* Write up to non-zero N bytes of BUF into the stream described by COOKIE, - returning the number of bytes written or EOF on failure. */ -static _READ_WRITE_RETURN_TYPE -memwriter (struct _reent *ptr, - void *cookie, - const char *buf, - _READ_WRITE_BUFSIZE_TYPE n) -{ - memstream *c = (memstream *) cookie; - char *cbuf = *c->pbuf; - - /* size_t is unsigned, but off_t is signed. Don't let stream get so - big that user cannot do ftello. */ - if (sizeof (OFF_T) == sizeof (size_t) && (ssize_t) (c->pos + n) < 0) - { - _REENT_ERRNO(ptr) = EFBIG; - return EOF; - } - /* Grow the buffer, if necessary. Choose a geometric growth factor - to avoid quadratic realloc behavior, but use a rate less than - (1+sqrt(5))/2 to accomodate malloc overhead. Overallocate, so - that we can add a trailing \0 without reallocating. The new - allocation should thus be max(prev_size*1.5, c->pos+n+1). */ - if (c->pos + n >= c->max) - { - size_t newsize = c->max * 3 / 2; - if (newsize < c->pos + n + 1) - newsize = c->pos + n + 1; - cbuf = _realloc_r (ptr, cbuf, newsize); - if (! cbuf) - return EOF; /* errno already set to ENOMEM */ - *c->pbuf = cbuf; - c->max = newsize; - } - /* If we have previously done a seek beyond eof, ensure all - intermediate bytes are NUL. */ - if (c->pos > c->eof) - memset (cbuf + c->eof, '\0', c->pos - c->eof); - memcpy (cbuf + c->pos, buf, n); - c->pos += n; - /* If the user has previously written further, remember what the - trailing NUL is overwriting. Otherwise, extend the stream. */ - if (c->pos > c->eof) - c->eof = c->pos; - else if (c->wide > 0) - c->saved.w = *(wchar_t *)(cbuf + c->pos); - else - c->saved.c = cbuf[c->pos]; - cbuf[c->pos] = '\0'; - *c->psize = (c->wide > 0) ? c->pos / sizeof (wchar_t) : c->pos; - return n; -} - -/* Seek to position POS relative to WHENCE within stream described by - COOKIE; return resulting position or fail with EOF. */ -static _fpos_t -memseeker (struct _reent *ptr, - void *cookie, - _fpos_t pos, - int whence) -{ - memstream *c = (memstream *) cookie; - OFF_T offset = (OFF_T) pos; - - if (whence == SEEK_CUR) - offset += c->pos; - else if (whence == SEEK_END) - offset += c->eof; - if (offset < 0) - { - _REENT_ERRNO(ptr) = EINVAL; - offset = -1; - } - else if ((size_t) offset != offset) - { - _REENT_ERRNO(ptr) = ENOSPC; - offset = -1; - } -#ifdef __LARGE64_FILES - else if ((_fpos_t) offset != offset) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - offset = -1; - } -#endif /* __LARGE64_FILES */ - else - { - if (c->pos < c->eof) - { - if (c->wide > 0) - *(wchar_t *)((*c->pbuf) + c->pos) = c->saved.w; - else - (*c->pbuf)[c->pos] = c->saved.c; - c->saved.w = L'\0'; - } - c->pos = offset; - if (c->pos < c->eof) - { - if (c->wide > 0) - { - c->saved.w = *(wchar_t *)((*c->pbuf) + c->pos); - *(wchar_t *)((*c->pbuf) + c->pos) = L'\0'; - *c->psize = c->pos / sizeof (wchar_t); - } - else - { - c->saved.c = (*c->pbuf)[c->pos]; - (*c->pbuf)[c->pos] = '\0'; - *c->psize = c->pos; - } - } - else if (c->wide > 0) - *c->psize = c->eof / sizeof (wchar_t); - else - *c->psize = c->eof; - } - return (_fpos_t) offset; -} - -/* Seek to position POS relative to WHENCE within stream described by - COOKIE; return resulting position or fail with EOF. */ -#ifdef __LARGE64_FILES -static _fpos64_t -memseeker64 (struct _reent *ptr, - void *cookie, - _fpos64_t pos, - int whence) -{ - _off64_t offset = (_off64_t) pos; - memstream *c = (memstream *) cookie; - - if (whence == SEEK_CUR) - offset += c->pos; - else if (whence == SEEK_END) - offset += c->eof; - if (offset < 0) - { - _REENT_ERRNO(ptr) = EINVAL; - offset = -1; - } - else if ((size_t) offset != offset) - { - _REENT_ERRNO(ptr) = ENOSPC; - offset = -1; - } - else - { - if (c->pos < c->eof) - { - if (c->wide > 0) - *(wchar_t *)((*c->pbuf) + c->pos) = c->saved.w; - else - (*c->pbuf)[c->pos] = c->saved.c; - c->saved.w = L'\0'; - } - c->pos = offset; - if (c->pos < c->eof) - { - if (c->wide > 0) - { - c->saved.w = *(wchar_t *)((*c->pbuf) + c->pos); - *(wchar_t *)((*c->pbuf) + c->pos) = L'\0'; - *c->psize = c->pos / sizeof (wchar_t); - } - else - { - c->saved.c = (*c->pbuf)[c->pos]; - (*c->pbuf)[c->pos] = '\0'; - *c->psize = c->pos; - } - } - else if (c->wide > 0) - *c->psize = c->eof / sizeof (wchar_t); - else - *c->psize = c->eof; - } - return (_fpos64_t) offset; -} -#endif /* __LARGE64_FILES */ - -/* Reclaim resources used by stream described by COOKIE. */ -static int -memcloser (struct _reent *ptr, - void *cookie) -{ - memstream *c = (memstream *) cookie; - char *buf; - - /* Be nice and try to reduce any unused memory. */ - buf = _realloc_r (ptr, *c->pbuf, - c->wide > 0 ? (*c->psize + 1) * sizeof (wchar_t) - : *c->psize + 1); - if (buf) - *c->pbuf = buf; - _free_r (ptr, c->storage); - return 0; -} - -/* Open a memstream that tracks a dynamic buffer in BUF and SIZE. - Return the new stream, or fail with NULL. */ -static FILE * -internal_open_memstream_r (struct _reent *ptr, - char **buf, - size_t *size, - int wide) -{ - FILE *fp; - memstream *c; - - if (!buf || !size) - { - _REENT_ERRNO(ptr) = EINVAL; - return NULL; - } - if ((fp = __sfp (ptr)) == NULL) - return NULL; - if ((c = (memstream *) _malloc_r (ptr, sizeof *c)) == NULL) - { - _newlib_sfp_lock_start (); - fp->_flags = 0; /* release */ -#ifndef __SINGLE_THREAD__ - __lock_close_recursive (fp->_lock); -#endif - _newlib_sfp_lock_end (); - return NULL; - } - /* Use *size as a hint for initial sizing, but bound the initial - malloc between 64 bytes (same as asprintf, to avoid frequent - mallocs on small strings) and 64k bytes (to avoid overusing the - heap if *size was garbage). */ - c->max = *size; - if (wide == 1) - c->max *= sizeof(wchar_t); - if (c->max < 64) - c->max = 64; -#if (SIZE_MAX >= 64 * 1024) - else if (c->max > (size_t)64 * 1024) - c->max = (size_t)64 * 1024; -#endif - *size = 0; - *buf = _malloc_r (ptr, c->max); - if (!*buf) - { - _newlib_sfp_lock_start (); - fp->_flags = 0; /* release */ -#ifndef __SINGLE_THREAD__ - __lock_close_recursive (fp->_lock); -#endif - _newlib_sfp_lock_end (); - _free_r (ptr, c); - return NULL; - } - if (wide == 1) - **((wchar_t **)buf) = L'\0'; - else - **buf = '\0'; - - c->storage = c; - c->pbuf = buf; - c->psize = size; - c->pos = 0; - c->eof = 0; - c->saved.w = L'\0'; - c->wide = (int8_t) wide; - - _newlib_flockfile_start (fp); - fp->_file = -1; - fp->_flags = __SWR; - fp->_cookie = c; - fp->_read = NULL; - fp->_write = memwriter; - fp->_seek = memseeker; -#ifdef __LARGE64_FILES - fp->_seek64 = memseeker64; - fp->_flags |= __SL64; -#endif - fp->_close = memcloser; - ORIENT (fp, wide); - _newlib_flockfile_end (fp); - return fp; -} - -FILE * -_open_memstream_r (struct _reent *ptr, - char **buf, - size_t *size) -{ - return internal_open_memstream_r (ptr, buf, size, -1); -} - -FILE * -_open_wmemstream_r (struct _reent *ptr, - wchar_t **buf, - size_t *size) -{ - return internal_open_memstream_r (ptr, (char **)buf, size, 1); -} - -#ifndef _REENT_ONLY -FILE * -open_memstream (char **buf, - size_t *size) -{ - return _open_memstream_r (_REENT, buf, size); -} - -FILE * -open_wmemstream (wchar_t **buf, - size_t *size) -{ - return _open_wmemstream_r (_REENT, buf, size); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/perror.c b/lib/stdio/perror.c deleted file mode 100644 index 2033a6f..0000000 --- a/lib/stdio/perror.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---print an error message on standard error - -INDEX - perror -INDEX - _perror_r - -SYNOPSIS - #include - void perror(char *<[prefix]>); - - void _perror_r(struct _reent *<[reent]>, char *<[prefix]>); - -DESCRIPTION -Use <> to print (on standard error) an error message -corresponding to the current value of the global variable <>. -Unless you use <> as the value of the argument <[prefix]>, the -error message will begin with the string at <[prefix]>, followed by a -colon and a space (<<: >>). The remainder of the error message is one -of the strings described for <>. - -The alternate function <<_perror_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -<> returns no result. - -PORTABILITY -ANSI C requires <>, but the strings issued vary from one -implementation to another. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#define WRITE_STR(str) \ -{ \ - const char *p = (str); \ - size_t len = strlen (p); \ - while (len) \ - { \ - ssize_t len1 = _write_r (ptr, fileno (fp), p, len); \ - if (len1 < 0) \ - break; \ - len -= len1; \ - p += len1; \ - } \ -} - -void -_perror_r (struct _reent *ptr, - const char *s) -{ - char *error; - int dummy; - FILE *fp = _stderr_r (ptr); - - CHECK_INIT (ptr, fp); - - _newlib_flockfile_start(fp); - _fflush_r (ptr, fp); - if (s != NULL && *s != '\0') - { - WRITE_STR (s); - WRITE_STR (": "); - } - - if ((error = _strerror_r (ptr, _REENT_ERRNO(ptr), 1, &dummy)) != NULL) - WRITE_STR (error); - -#ifdef __SCLE - WRITE_STR ((fp->_flags & __SCLE) ? "\r\n" : "\n"); -#else - WRITE_STR ("\n"); -#endif - fp->_flags &= ~__SOFF; - _newlib_flockfile_end(fp); -} - -#ifndef _REENT_ONLY - -void -perror (const char *s) -{ - _perror_r (_REENT, s); -} - -#endif diff --git a/lib/stdio/printf.c b/lib/stdio/printf.c deleted file mode 100644 index 3a07164..0000000 --- a/lib/stdio/printf.c +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in sprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -int -_printf_r (struct _reent *ptr, - const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - - _REENT_SMALL_CHECK_INIT (ptr); - va_start (ap, fmt); - ret = _vfprintf_r (ptr, _stdout_r (ptr), fmt, ap); - va_end (ap); - return ret; -} - -#ifdef _NANO_FORMATTED_IO -int -_iprintf_r (struct _reent *, const char *, ...) - _ATTRIBUTE ((__alias__("_printf_r"))); -#endif - -#ifndef _REENT_ONLY - -int -printf (const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - struct _reent *ptr = _REENT; - - _REENT_SMALL_CHECK_INIT (ptr); - va_start (ap, fmt); - ret = _vfprintf_r (ptr, _stdout_r (ptr), fmt, ap); - va_end (ap); - return ret; -} - -#ifdef _NANO_FORMATTED_IO -int -iprintf (const char *, ...) - _ATTRIBUTE ((__alias__("printf"))); -#endif -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/putc.c b/lib/stdio/putc.c deleted file mode 100644 index 6a410e2..0000000 --- a/lib/stdio/putc.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---write a character (macro) - -INDEX - putc -INDEX - _putc_r - -SYNOPSIS - #include - int putc(int <[ch]>, FILE *<[fp]>); - - #include - int _putc_r(struct _reent *<[ptr]>, int <[ch]>, FILE *<[fp]>); - -DESCRIPTION -<> is a macro, defined in <>. <> -writes the argument <[ch]> to the file or stream identified by -<[fp]>, after converting it from an <> to an <>. - -If the file was opened with append mode (or if the stream cannot -support positioning), then the new character goes at the end of the -file or stream. Otherwise, the new character is written at the -current value of the position indicator, and the position indicator -advances by one. - -For a subroutine version of this macro, see <>. - -The <<_putc_r>> function is simply the reentrant version of -<> that takes an additional reentrant structure argument: <[ptr]>. - -RETURNS -If successful, <> returns its argument <[ch]>. If an error -intervenes, the result is <>. You can use `<)>>' to -query for errors. - -PORTABILITY -ANSI C requires <>; it suggests, but does not require, that -<> be implemented as a macro. The standard explicitly permits -macro implementations of <> to use the <[fp]> argument more than once; -therefore, in a portable program, you should not use an expression -with side effects as this argument. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include "local.h" - -/* - * A subroutine version of the macro putc. - */ - -#undef putc - -int -_putc_r (struct _reent *ptr, - int c, - register FILE *fp) -{ - int result; - CHECK_INIT (ptr, fp); - _newlib_flockfile_start (fp); - result = __sputc_r (ptr, c, fp); - _newlib_flockfile_end (fp); - return result; -} - -#ifndef _REENT_ONLY -int -putc (int c, - register FILE *fp) -{ -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) - int result; - struct _reent *reent = _REENT; - - CHECK_INIT (reent, fp); - _newlib_flockfile_start (fp); - result = __sputc_r (reent, c, fp); - _newlib_flockfile_end (fp); - return result; -#else - return _putc_r (_REENT, c, fp); -#endif -} -#endif /* !_REENT_ONLY */ - diff --git a/lib/stdio/putc_u.c b/lib/stdio/putc_u.c deleted file mode 100644 index 3bb53e5..0000000 --- a/lib/stdio/putc_u.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---non-thread-safe version of putc (macro) - -INDEX - putc_unlocked -INDEX - _putc_unlocked_r - -SYNOPSIS - #include - int putc_unlocked(int <[ch]>, FILE *<[fp]>); - - #include - int _putc_unlocked_r(struct _reent *<[ptr]>, int <[ch]>, FILE *<[fp]>); - -DESCRIPTION -<> is a non-thread-safe version of <> declared in -<>. <> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). These -functions may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the ( FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -The function <<_putc_unlocked_r>> is simply the reentrant version of -<> that takes an additional reentrant structure pointer -argument: <[ptr]>. - -RETURNS -See <>. - -PORTABILITY -POSIX 1003.1 requires <>. <> may be -implemented as a macro, so arguments should not have side-effects. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include - -/* - * A subroutine version of the macro putc_unlocked. - */ - -#undef putc_unlocked - -int -_putc_unlocked_r (struct _reent *ptr, - int c, - register FILE *fp) -{ - /* CHECK_INIT is (eventually) called by __swbuf. */ - - return __sputc_r (ptr, c, fp); -} - -#ifndef _REENT_ONLY -int -putc_unlocked (int c, - register FILE *fp) -{ - /* CHECK_INIT is (eventually) called by __swbuf. */ - - return __sputc_r (_REENT, c, fp); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/putchar.c b/lib/stdio/putchar.c deleted file mode 100644 index 6e1b1f1..0000000 --- a/lib/stdio/putchar.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---write a character (macro) - -INDEX - putchar -INDEX - _putchar_r - -SYNOPSIS - #include - int putchar(int <[ch]>); - - int _putchar_r(struct _reent *<[reent]>, int <[ch]>); - -DESCRIPTION -<> is a macro, defined in <>. <> -writes its argument to the standard output stream, -after converting it from an <> to an <>. - -The alternate function <<_putchar_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -If successful, <> returns its argument <[ch]>. If an error -intervenes, the result is <>. You can use `<>' to -query for errors. - -PORTABILITY -ANSI C requires <>; it suggests, but does not require, that -<> be implemented as a macro. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -/* - * A subroutine version of the macro putchar. - */ - -#include <_ansi.h> -#include -#include -#include "local.h" - -#undef putchar - -int -_putchar_r (struct _reent *ptr, - int c) -{ - _REENT_SMALL_CHECK_INIT (ptr); - return _putc_r (ptr, c, _stdout_r (ptr)); -} - -#ifndef _REENT_ONLY - -int -putchar (int c) -{ - struct _reent *reent = _REENT; - - _REENT_SMALL_CHECK_INIT (reent); - return _putc_r (reent, c, _stdout_r (reent)); -} - -#endif diff --git a/lib/stdio/putchar_u.c b/lib/stdio/putchar_u.c deleted file mode 100644 index 0292435..0000000 --- a/lib/stdio/putchar_u.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---non-thread-safe version of putchar (macro) - -INDEX - putchar_unlocked - -SYNOPSIS - #include - int putchar_unlocked(int <[ch]>); - -DESCRIPTION -<> is a non-thread-safe version of <> -declared in <>. <> may only safely be used -within a scope protected by flockfile() (or ftrylockfile()) and -funlockfile(). These functions may safely be used in a multi-threaded -program if and only if they are called while the invoking thread owns -the ( FILE *) object, as is the case after a successful call to the -flockfile() or ftrylockfile() functions. If threads are disabled, -then <> is equivalent to <>. - -RETURNS -See <>. - -PORTABILITY -POSIX 1003.1 requires <>. <> may -be implemented as a macro. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -/* - * A subroutine version of the macro putchar_unlocked. - */ - -#include <_ansi.h> -#include -#include - -#undef putchar_unlocked - -int -_putchar_unlocked_r (struct _reent *ptr, - int c) -{ - return putc_unlocked (c, _stdout_r (ptr)); -} - -#ifndef _REENT_ONLY - -int -putchar_unlocked (int c) -{ - /* CHECK_INIT is (eventually) called by __swbuf. */ - - return _putchar_unlocked_r (_REENT, c); -} - -#endif diff --git a/lib/stdio/puts.c b/lib/stdio/puts.c deleted file mode 100644 index d4d7b7f..0000000 --- a/lib/stdio/puts.c +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---write a character string - -INDEX - puts -INDEX - _puts_r - -SYNOPSIS - #include - int puts(const char *<[s]>); - - int _puts_r(struct _reent *<[reent]>, const char *<[s]>); - -DESCRIPTION -<> writes the string at <[s]> (followed by a newline, instead of -the trailing null) to the standard output stream. - -The alternate function <<_puts_r>> is a reentrant version. The extra -argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -If successful, the result is a nonnegative integer; otherwise, the -result is <>. - -PORTABILITY -ANSI C requires <>, but does not specify that the result on -success must be <<0>>; any non-negative value is permitted. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include -#include "fvwrite.h" -#include "local.h" - -/* - * Write the given string to stdout, appending a newline. - */ - -int -_puts_r (struct _reent *ptr, - const char * s) -{ -#ifdef _FVWRITE_IN_STREAMIO - int result; - size_t c = strlen (s); - struct __suio uio; - struct __siov iov[2]; - FILE *fp; - - iov[0].iov_base = s; - iov[0].iov_len = c; - iov[1].iov_base = "\n"; - iov[1].iov_len = 1; - uio.uio_resid = c + 1; - uio.uio_iov = &iov[0]; - uio.uio_iovcnt = 2; - - _REENT_SMALL_CHECK_INIT (ptr); - fp = _stdout_r (ptr); - CHECK_INIT (ptr, fp); - _newlib_flockfile_start (fp); - ORIENT (fp, -1); - result = (__sfvwrite_r (ptr, fp, &uio) ? EOF : '\n'); - _newlib_flockfile_end (fp); - return result; -#else - int result = EOF; - const char *p = s; - FILE *fp; - _REENT_SMALL_CHECK_INIT (ptr); - - fp = _stdout_r (ptr); - CHECK_INIT (ptr, fp); - _newlib_flockfile_start (fp); - ORIENT (fp, -1); - /* Make sure we can write. */ - if (cantwrite (ptr, fp)) - goto err; - - while (*p) - { - if (__sputc_r (ptr, *p++, fp) == EOF) - goto err; - } - if (__sputc_r (ptr, '\n', fp) == EOF) - goto err; - - result = '\n'; - -err: - _newlib_flockfile_end (fp); - return result; -#endif -} - -#ifndef _REENT_ONLY - -int -puts (char const * s) -{ - return _puts_r (_REENT, s); -} - -#endif diff --git a/lib/stdio/putw.c b/lib/stdio/putw.c deleted file mode 100644 index bec9aa2..0000000 --- a/lib/stdio/putw.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---write a word (int) - -INDEX - putw - -SYNOPSIS - #include - int putw(int <[w]>, FILE *<[fp]>); - -DESCRIPTION -<> is a function, defined in <>. You can use <> -to write a word to the file or stream identified by <[fp]>. As a side -effect, <> advances the file's current position indicator. - -RETURNS -Zero on success, <> on failure. - -PORTABILITY -<> is a remnant of K&R C; it is not part of any ISO C Standard. -<> should be used instead. In fact, this implementation of -<> is based upon <>. - -Supporting OS subroutines required: <>. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include - -int -putw (int w, - register FILE *fp) -{ - if (fwrite ((const char*)&w, sizeof (w), 1, fp) != 1) - return EOF; - return 0; -} diff --git a/lib/stdio/putwc.c b/lib/stdio/putwc.c deleted file mode 100644 index a6c3100..0000000 --- a/lib/stdio/putwc.c +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * Copyright (c) 2002 Tim J. Robbins. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#undef putwc - -wint_t -_putwc_r (struct _reent *ptr, - wchar_t wc, - FILE *fp) -{ - return _fputwc_r (ptr, wc, fp); -} -/* - * Synonym for fputwc(). The only difference is that putwc(), if it is a - * macro, may evaluate `fp' more than once. - */ -wint_t -putwc (wchar_t wc, - FILE *fp) -{ - return fputwc (wc, fp); -} diff --git a/lib/stdio/putwc_u.c b/lib/stdio/putwc_u.c deleted file mode 100644 index 0ec11f0..0000000 --- a/lib/stdio/putwc_u.c +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define _GNU_SOURCE -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#undef putwc_unlocked - -wint_t -_putwc_unlocked_r (struct _reent *ptr, - wchar_t wc, - FILE *fp) -{ - return _fputwc_unlocked_r (ptr, wc, fp); -} -/* - * Synonym for fputwc_unlocked(). The only difference is that putwc_unlocked(), - * if it is a macro, may evaluate `fp' more than once. - */ -wint_t -putwc_unlocked (wchar_t wc, - FILE *fp) -{ - return fputwc_unlocked (wc, fp); -} diff --git a/lib/stdio/putwchar.c b/lib/stdio/putwchar.c deleted file mode 100644 index 238cb50..0000000 --- a/lib/stdio/putwchar.c +++ /dev/null @@ -1,104 +0,0 @@ -/*- - * Copyright (c) 2002 Tim J. Robbins. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>---write a wide character to standard output - -INDEX - putwchar -INDEX - putwchar_unlocked -INDEX - _putwchar_r -INDEX - _putwchar_unlocked_r - -SYNOPSIS - #include - wint_t putwchar(wchar_t <[wc]>); - - #include - wint_t putwchar_unlocked(wchar_t <[wc]>); - - #include - wint_t _putwchar_r(struct _reent *<[reent]>, wchar_t <[wc]>); - - #include - wint_t _putwchar_unlocked_r(struct _reent *<[reent]>, wchar_t <[wc]>); - -DESCRIPTION -The <> function or macro is the wide-character equivalent of -the <> function. It writes the wide character wc to stdout. - -<> is a non-thread-safe version of <>. -<> may only safely be used within a scope -protected by flockfile() (or ftrylockfile()) and funlockfile(). This -function may safely be used in a multi-threaded program if and only -if they are called while the invoking thread owns the (FILE *) -object, as is the case after a successful call to the flockfile() or -ftrylockfile() functions. If threads are disabled, then -<> is equivalent to <>. - -The alternate functions <<_putwchar_r>> and <<_putwchar_unlocked_r>> are -reentrant versions of the above. The extra argument <[reent]> is a pointer -to a reentrancy structure. - -RETURNS -If successful, <> returns its argument <[wc]>. If an error -intervenes, the result is <>. You can use `<>' to -query for errors. - -PORTABILITY -<> is required by C99. - -<> is a GNU extension. -*/ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#undef putwchar - -wint_t -_putwchar_r (struct _reent *ptr, - wchar_t wc) -{ - return _fputwc_r (ptr, wc, stdout); -} - -/* - * Synonym for fputwc(wc, stdout). - */ -wint_t -putwchar (wchar_t wc) -{ - _REENT_SMALL_CHECK_INIT (_REENT); - return fputwc (wc, stdout); -} diff --git a/lib/stdio/putwchar_u.c b/lib/stdio/putwchar_u.c deleted file mode 100644 index a5e6a57..0000000 --- a/lib/stdio/putwchar_u.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2014 Red Hat, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define _GNU_SOURCE -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#undef putwchar_unlocked - -wint_t -_putwchar_unlocked_r (struct _reent *ptr, - wchar_t wc) -{ - return _fputwc_unlocked_r (ptr, wc, stdout); -} - -/* - * Synonym for fputwc_unlocked(wc, stdout). - */ -wint_t -putwchar_unlocked (wchar_t wc) -{ - _REENT_SMALL_CHECK_INIT (_REENT); - return fputwc_unlocked (wc, stdout); -} diff --git a/lib/stdio/refill.c b/lib/stdio/refill.c deleted file mode 100644 index 7bd3880..0000000 --- a/lib/stdio/refill.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* No user fns here. Pesch 15apr92. */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -static int -lflush (struct _reent * ptr __unused, FILE *fp) -{ - if ((fp->_flags & (__SLBF | __SWR)) == (__SLBF | __SWR)) - return _fflush_r (_REENT, fp); - return 0; -} - -/* - * Refill a stdio buffer. - * Return EOF on eof or error, 0 otherwise. - */ - -int -__srefill_r (struct _reent * ptr, - register FILE * fp) -{ - /* make sure stdio is set up */ - - CHECK_INIT (ptr, fp); - - ORIENT (fp, -1); - - fp->_r = 0; /* largely a convenience for callers */ - - /* SysV does not make this test; take it out for compatibility */ - if (fp->_flags & __SEOF) - return EOF; - - /* if not already reading, have to be reading and writing */ - if ((fp->_flags & __SRD) == 0) - { - if ((fp->_flags & __SRW) == 0) - { - _REENT_ERRNO(ptr) = EBADF; - fp->_flags |= __SERR; - return EOF; - } - /* switch to reading */ - if (fp->_flags & __SWR) - { - if (_fflush_r (ptr, fp)) - return EOF; - fp->_flags &= ~__SWR; - fp->_w = 0; - fp->_lbfsize = 0; - } - fp->_flags |= __SRD; - } - else - { - /* - * We were reading. If there is an ungetc buffer, - * we must have been reading from that. Drop it, - * restoring the previous buffer (if any). If there - * is anything in that buffer, return. - */ - if (HASUB (fp)) - { - FREEUB (ptr, fp); - if ((fp->_r = fp->_ur) != 0) - { - fp->_p = fp->_up; - return 0; - } - } - } - - if (fp->_bf._base == NULL) - __smakebuf_r (ptr, fp); - - /* - * Before reading from a line buffered or unbuffered file, - * flush all line buffered output files, per the ANSI C - * standard. - */ - if (fp->_flags & (__SLBF | __SNBF)) - { - /* Ignore this file in _fwalk_sglue to avoid potential deadlock. */ - short orig_flags = fp->_flags; - fp->_flags = 1; - (void) _fwalk_sglue (_GLOBAL_REENT, lflush, &__sglue); - fp->_flags = orig_flags; - - /* Now flush this file without locking it. */ - if ((fp->_flags & (__SLBF|__SWR)) == (__SLBF|__SWR)) - __sflush_r (ptr, fp); - } - - fp->_p = fp->_bf._base; - fp->_r = fp->_read (ptr, fp->_cookie, (char *) fp->_p, fp->_bf._size); - if (fp->_r <= 0) - { - if (fp->_r == 0) - fp->_flags |= __SEOF; - else - { - fp->_r = 0; - fp->_flags |= __SERR; - } - return EOF; - } - return 0; -} diff --git a/lib/stdio/remove.c b/lib/stdio/remove.c deleted file mode 100644 index d8dfdbd..0000000 --- a/lib/stdio/remove.c +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---delete a file's name - -INDEX - remove -INDEX - _remove_r - -SYNOPSIS - #include - int remove(char *<[filename]>); - - int _remove_r(struct _reent *<[reent]>, char *<[filename]>); - -DESCRIPTION -Use <> to dissolve the association between a particular -filename (the string at <[filename]>) and the file it represents. -After calling <> with a particular filename, you will no -longer be able to open the file by that name. - -In this implementation, you may use <> on an open file without -error; existing file descriptors for the file will continue to access -the file's data until the program using them closes the file. - -The alternate function <<_remove_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -<> returns <<0>> if it succeeds, <<-1>> if it fails. - -PORTABILITY -ANSI C requires <>, but only specifies that the result on -failure be nonzero. The behavior of <> when you call it on an -open file may vary among implementations. - -Supporting OS subroutine required: <>. -*/ - -#include <_ansi.h> -#include -#include - -int -_remove_r (struct _reent *ptr, - const char *filename) -{ - if (_unlink_r (ptr, filename) == -1) - return -1; - - return 0; -} - -#ifndef _REENT_ONLY - -int -remove (const char *filename) -{ - return _remove_r (_REENT, filename); -} - -#endif diff --git a/lib/stdio/rename.c b/lib/stdio/rename.c deleted file mode 100644 index 16ef3e3..0000000 --- a/lib/stdio/rename.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---rename a file - -INDEX - rename - -SYNOPSIS - #include - int rename(const char *<[old]>, const char *<[new]>); - -DESCRIPTION -Use <> to establish a new name (the string at <[new]>) for a -file now known by the string at <[old]>. After a successful -<>, the file is no longer accessible by the string at <[old]>. - -If <> fails, the file named <<*<[old]>>> is unaffected. The -conditions for failure depend on the host operating system. - -RETURNS -The result is either <<0>> (when successful) or <<-1>> (when the file -could not be renamed). - -PORTABILITY -ANSI C requires <>, but only specifies that the result on -failure be nonzero. The effects of using the name of an existing file -as <<*<[new]>>> may vary from one implementation to another. - -Supporting OS subroutines required: <>, <>, or <>. -*/ - -#include <_ansi.h> -#include -#include -#include - -#ifndef _REENT_ONLY - -int -rename (const char *old, - const char *new) -{ - return _rename_r (_REENT, old, new); -} - -#endif diff --git a/lib/stdio/rewind.c b/lib/stdio/rewind.c deleted file mode 100644 index aafac0c..0000000 --- a/lib/stdio/rewind.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---reinitialize a file or stream - -INDEX - rewind -INDEX - _rewind_r - -SYNOPSIS - #include - void rewind(FILE *<[fp]>); - void _rewind_r(struct _reent *<[ptr]>, FILE *<[fp]>); - -DESCRIPTION -<> returns the file position indicator (if any) for the file -or stream identified by <[fp]> to the beginning of the file. It also -clears any error indicator and flushes any pending output. - -RETURNS -<> does not return a result. - -PORTABILITY -ANSI C requires <>. - -No supporting OS subroutines are required. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include - -void -_rewind_r (struct _reent * ptr, - register FILE * fp) -{ - (void) _fseek_r (ptr, fp, 0L, SEEK_SET); - clearerr (fp); -} - -#ifndef _REENT_ONLY - -void -rewind (register FILE * fp) -{ - _rewind_r (_REENT, fp); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/rget.c b/lib/stdio/rget.c deleted file mode 100644 index a9a0d2f..0000000 --- a/lib/stdio/rget.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* No user fns here. Pesch 15apr92. */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include "local.h" - -/* - * Handle getc() when the buffer ran out: - * Refill, then return the first character - * in the newly-filled buffer. - */ - -int -__srget_r (struct _reent *ptr, - register FILE *fp) -{ - /* Ensure that any fake std stream is resolved before - we call __srefill_r so we may access the true read buffer. */ - CHECK_INIT(ptr, fp); - - if (__srefill_r (ptr, fp) == 0) - { - fp->_r--; - return *fp->_p++; - } - return EOF; -} - -/* This function isn't any longer declared in stdio.h, but it's - required for backward compatibility with applications built against - earlier dynamically built newlib libraries. */ -int -__srget (register FILE *fp) -{ - return __srget_r (_REENT, fp); -} diff --git a/lib/stdio/scanf.c b/lib/stdio/scanf.c deleted file mode 100644 index a9d23b9..0000000 --- a/lib/stdio/scanf.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -scanf(const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - struct _reent *reent = _REENT; - - _REENT_SMALL_CHECK_INIT (reent); - va_start (ap, fmt); - ret = _vfscanf_r (reent, _stdin_r (reent), fmt, ap); - va_end (ap); - return ret; -} - -#ifdef _NANO_FORMATTED_IO -int -iscanf (const char *, ...) - _ATTRIBUTE ((__alias__("scanf"))); -#endif - -#endif /* !_REENT_ONLY */ - -int -_scanf_r(struct _reent *ptr, const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - - _REENT_SMALL_CHECK_INIT (ptr); - va_start (ap, fmt); - ret = _vfscanf_r (ptr, _stdin_r (ptr), fmt, ap); - va_end (ap); - return (ret); -} - -#ifdef _NANO_FORMATTED_IO -int -_iscanf_r (struct _reent *, const char *, ...) - _ATTRIBUTE ((__alias__("_scanf_r"))); -#endif diff --git a/lib/stdio/sccl.c b/lib/stdio/sccl.c deleted file mode 100644 index dd705e4..0000000 --- a/lib/stdio/sccl.c +++ /dev/null @@ -1,126 +0,0 @@ -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* Split from vfscanf.c */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -/* - * Fill in the given table from the scanset at the given format - * (just after `['). Return a pointer to the character past the - * closing `]'. The table has a 1 wherever characters should be - * considered part of the scanset. - */ - -u_char * -__sccl (register char *tab, - register u_char *fmt) -{ - register int c, n, v; - - /* first `clear' the whole table */ - c = *fmt++; /* first char hat => negated scanset */ - if (c == '^') - { - v = 1; /* default => accept */ - c = *fmt++; /* get new first char */ - } - else - v = 0; /* default => reject */ - /* should probably use memset here */ - for (n = 0; n < 256; n++) - tab[n] = v; - if (c == 0) - return fmt - 1; /* format ended before closing ] */ - - /* - * Now set the entries corresponding to the actual scanset to the - * opposite of the above. - * - * The first character may be ']' (or '-') without being special; the - * last character may be '-'. - */ - - v = 1 - v; - for (;;) - { - tab[c] = v; /* take character c */ - doswitch: - n = *fmt++; /* and examine the next */ - switch (n) - { - - case 0: /* format ended too soon */ - return fmt - 1; - - case '-': - /* - * A scanset of the form [01+-] is defined as `the digit 0, the - * digit 1, the character +, the character -', but the effect of a - * scanset such as [a-zA-Z0-9] is implementation defined. The V7 - * Unix scanf treats `a-z' as `the letters a through z', but treats - * `a-a' as `the letter a, the character -, and the letter a'. - * - * For compatibility, the `-' is not considerd to define a range if - * the character following it is either a close bracket (required by - * ANSI) or is not numerically greater than the character we just - * stored in the table (c). - */ - n = *fmt; - if (n == ']' || n < c) - { - c = '-'; - break; /* resume the for(;;) */ - } - fmt++; - do - { /* fill in the range */ - tab[++c] = v; - } - while (c < n); -#if 1 /* XXX another disgusting compatibility hack */ - /* - * Alas, the V7 Unix scanf also treats formats such - * as [a-c-e] as `the letters a through e'. This too - * is permitted by the standard.... - */ - goto doswitch; -#else - c = *fmt++; - if (c == 0) - return fmt - 1; - if (c == ']') - return fmt; -#endif - - break; - - - case ']': /* end of scanset */ - return fmt; - - default: /* just another character */ - c = n; - break; - } - } - /* NOTREACHED */ -} diff --git a/lib/stdio/setbuf.c b/lib/stdio/setbuf.c deleted file mode 100644 index 92739ee..0000000 --- a/lib/stdio/setbuf.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---specify full buffering for a file or stream - -INDEX - setbuf - -SYNOPSIS - #include - void setbuf(FILE *<[fp]>, char *<[buf]>); - -DESCRIPTION -<> specifies that output to the file or stream identified by <[fp]> -should be fully buffered. All output for this file will go to a -buffer (of size <>, specified in `<>'). Output will -be passed on to the host system only when the buffer is full, or when -an input operation intervenes. - -You may, if you wish, supply your own buffer by passing a pointer to -it as the argument <[buf]>. It must have size <>. You can -also use <> as the value of <[buf]>, to signal that the -<> function is to allocate the buffer. - -WARNINGS -You may only use <> before performing any file operation other -than opening the file. - -If you supply a non-null <[buf]>, you must ensure that the associated -storage continues to be available until you close the stream -identified by <[fp]>. - -RETURNS -<> does not return a result. - -PORTABILITY -Both ANSI C and the System V Interface Definition (Issue 2) require -<>. However, they differ on the meaning of a <> buffer -pointer: the SVID issue 2 specification says that a <> buffer -pointer requests unbuffered output. For maximum portability, avoid -<> buffer pointers. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include "local.h" - -void -setbuf (FILE *__restrict fp, - char *__restrict buf) -{ - (void) setvbuf (fp, buf, buf ? _IOFBF : _IONBF, BUFSIZ); -} diff --git a/lib/stdio/setbuffer.c b/lib/stdio/setbuffer.c deleted file mode 100644 index de0a480..0000000 --- a/lib/stdio/setbuffer.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* -Modified copy of setbuf.c to support the setbuffer function -defined as part of BSD. -Modifications by Gareth Pearce, 2001. -*/ - -/* -FUNCTION -<>---specify full buffering for a file or stream with size - -INDEX - setbuffer - -SYNOPSIS - #include - void setbuffer(FILE *<[fp]>, char *<[buf]>, int <[size]>); - -DESCRIPTION -<> specifies that output to the file or stream identified by -<[fp]> should be fully buffered. All output for this file will go to a -buffer (of size <[size]>). Output will be passed on to the host system -only when the buffer is full, or when an input operation intervenes. - -You may, if you wish, supply your own buffer by passing a pointer to -it as the argument <[buf]>. It must have size <[size]>. You can -also use <> as the value of <[buf]>, to signal that the -<> function is to allocate the buffer. - -WARNINGS -You may only use <> before performing any file operation -other than opening the file. - -If you supply a non-null <[buf]>, you must ensure that the associated -storage continues to be available until you close the stream -identified by <[fp]>. - -RETURNS -<> does not return a result. - -PORTABILITY -This function comes from BSD not ANSI or POSIX. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include "local.h" - -void -setbuffer (FILE * fp, - char *buf, - int size) -{ - (void) setvbuf (fp, buf, buf ? _IOFBF : _IONBF, (size_t) size); -} diff --git a/lib/stdio/setlinebuf.c b/lib/stdio/setlinebuf.c deleted file mode 100644 index 70c48ad..0000000 --- a/lib/stdio/setlinebuf.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* -Modified copy of setbuf.c to support setlinebuf function -defined as part of BSD. -Modifications by Gareth Pearce, 2001. -*/ - -/* -FUNCTION -<>---specify line buffering for a file or stream - -INDEX - setlinebuf - -SYNOPSIS - #include - void setlinebuf(FILE *<[fp]>); - -DESCRIPTION -<> specifies that output to the file or stream identified by -<[fp]> should be line buffered. This causes the file or stream to pass -on output to the host system at every newline, as well as when the -buffer is full, or when an input operation intervenes. - -WARNINGS -You may only use <> before performing any file operation -other than opening the file. - -RETURNS -<> returns as per setvbuf. - -PORTABILITY -This function comes from BSD not ANSI or POSIX. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include "local.h" - -int -setlinebuf (FILE * fp) -{ - return (setvbuf (fp, (char *) NULL, _IOLBF, (size_t) 0)); -} diff --git a/lib/stdio/setvbuf.c b/lib/stdio/setvbuf.c deleted file mode 100644 index e27ea08..0000000 --- a/lib/stdio/setvbuf.c +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---specify file or stream buffering - -INDEX - setvbuf - -SYNOPSIS - #include - int setvbuf(FILE *<[fp]>, char *<[buf]>, - int <[mode]>, size_t <[size]>); - -DESCRIPTION -Use <> to specify what kind of buffering you want for the -file or stream identified by <[fp]>, by using one of the following -values (from <>) as the <[mode]> argument: - -o+ -o _IONBF -Do not use a buffer: send output directly to the host system for the -file or stream identified by <[fp]>. - -o _IOFBF -Use full output buffering: output will be passed on to the host system -only when the buffer is full, or when an input operation intervenes. - -o _IOLBF -Use line buffering: pass on output to the host system at every -newline, as well as when the buffer is full, or when an input -operation intervenes. -o- - -Use the <[size]> argument to specify how large a buffer you wish. You -can supply the buffer itself, if you wish, by passing a pointer to a -suitable area of memory as <[buf]>. Otherwise, you may pass <> -as the <[buf]> argument, and <> will allocate the buffer. - -WARNINGS -You may only use <> before performing any file operation other -than opening the file. - -If you supply a non-null <[buf]>, you must ensure that the associated -storage continues to be available until you close the stream -identified by <[fp]>. - -RETURNS -A <<0>> result indicates success, <> failure (invalid <[mode]> or -<[size]> can cause failure). - -PORTABILITY -Both ANSI C and the System V Interface Definition (Issue 2) require -<>. However, they differ on the meaning of a <> buffer -pointer: the SVID issue 2 specification says that a <> buffer -pointer requests unbuffered output. For maximum portability, avoid -<> buffer pointers. - -Both specifications describe the result on failure only as a -nonzero value. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include "local.h" - -/* - * Set one of the three kinds of buffering, optionally including a buffer. - */ - -int -setvbuf (register FILE * fp, - char *buf, - register int mode, - register size_t size) -{ - int ret = 0; - struct _reent *reent = _REENT; - size_t iosize; - int ttyflag; - - CHECK_INIT (reent, fp); - - /* - * Verify arguments. The `int' limit on `size' is due to this - * particular implementation. Note, buf and size are ignored - * when setting _IONBF. - */ - if (mode != _IONBF) - if ((mode != _IOFBF && mode != _IOLBF) || (int)(_POINTER_INT) size < 0) - return (EOF); - - - /* - * Write current buffer, if any; drop read count, if any. - * Make sure putc() will not think fp is line buffered. - * Free old buffer if it was from malloc(). Clear line and - * non buffer flags, and clear malloc flag. - */ - _newlib_flockfile_start (fp); - _fflush_r (reent, fp); - if (HASUB(fp)) - FREEUB(reent, fp); - fp->_r = fp->_lbfsize = 0; - if (fp->_flags & __SMBF) - _free_r (reent, (void *) fp->_bf._base); - fp->_flags &= ~(__SLBF | __SNBF | __SMBF | __SOPT | __SNPT | __SEOF); - - if (mode == _IONBF) - goto nbf; - - /* - * Find optimal I/O size for seek optimization. This also returns - * a `tty flag' to suggest that we check isatty(fd), but we do not - * care since our caller told us how to buffer. - */ - fp->_flags |= __swhatbuf_r (reent, fp, &iosize, &ttyflag); - if (size == 0) - { - buf = NULL; - size = iosize; - } - - /* Allocate buffer if needed. */ - if (buf == NULL) - { - if ((buf = malloc (size)) == NULL) - { - /* - * Unable to honor user's request. We will return - * failure, but try again with file system size. - */ - ret = EOF; - if (size != iosize) - { - size = iosize; - buf = malloc (size); - } - } - if (buf == NULL) - { - /* No luck; switch to unbuffered I/O. */ -nbf: - fp->_flags |= __SNBF; - fp->_w = 0; - fp->_bf._base = fp->_p = fp->_nbuf; - fp->_bf._size = 1; - _newlib_flockfile_exit (fp); - return (ret); - } - fp->_flags |= __SMBF; - } - - /* - * We're committed to buffering from here, so make sure we've - * registered to flush buffers on exit. - */ - if (!_REENT_CLEANUP(reent)) - __sinit(reent); - -#ifdef _FSEEK_OPTIMIZATION - /* - * Kill any seek optimization if the buffer is not the - * right size. - * - * SHOULD WE ALLOW MULTIPLES HERE (i.e., ok iff (size % iosize) == 0)? - */ - if (size != iosize) - fp->_flags |= __SNPT; -#endif - - /* - * Fix up the FILE fields, and set __cleanup for output flush on - * exit (since we are buffered in some way). - */ - if (mode == _IOLBF) - fp->_flags |= __SLBF; - fp->_bf._base = fp->_p = (unsigned char *) buf; - fp->_bf._size = size; - /* fp->_lbfsize is still 0 */ - if (fp->_flags & __SWR) - { - /* - * Begin or continue writing: see __swsetup(). Note - * that __SNBF is impossible (it was handled earlier). - */ - if (fp->_flags & __SLBF) - { - fp->_w = 0; - fp->_lbfsize = -fp->_bf._size; - } - else - fp->_w = size; - } - else - { - /* begin/continue reading, or stay in intermediate state */ - fp->_w = 0; - } - - _newlib_flockfile_end (fp); - return 0; -} diff --git a/lib/stdio/siprintf.c b/lib/stdio/siprintf.c deleted file mode 100644 index bd29edd..0000000 --- a/lib/stdio/siprintf.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>, <>, <>, <>, <>---format output (integer only) - -INDEX - fiprintf -INDEX - _fiprintf_r -INDEX - iprintf -INDEX - _iprintf_r -INDEX - siprintf -INDEX - _siprintf_r -INDEX - sniprintf -INDEX - _sniprintf_r -INDEX - asiprintf -INDEX - _asiprintf_r -INDEX - asniprintf -INDEX - _asniprintf_r - -SYNOPSIS - #include - - int iprintf(const char *<[format]>, ...); - int fiprintf(FILE *<[fd]>, const char *<[format]> , ...); - int siprintf(char *<[str]>, const char *<[format]>, ...); - int sniprintf(char *<[str]>, size_t <[size]>, const char *<[format]>, - ...); - int asiprintf(char **<[strp]>, const char *<[format]>, ...); - char *asniprintf(char *<[str]>, size_t *<[size]>, - const char *<[format]>, ...); - - int _iprintf_r(struct _reent *<[ptr]>, const char *<[format]>, ...); - int _fiprintf_r(struct _reent *<[ptr]>, FILE *<[fd]>, - const char *<[format]>, ...); - int _siprintf_r(struct _reent *<[ptr]>, char *<[str]>, - const char *<[format]>, ...); - int _sniprintf_r(struct _reent *<[ptr]>, char *<[str]>, size_t <[size]>, - const char *<[format]>, ...); - int _asiprintf_r(struct _reent *<[ptr]>, char **<[strp]>, - const char *<[format]>, ...); - char *_asniprintf_r(struct _reent *<[ptr]>, char *<[str]>, - size_t *<[size]>, const char *<[format]>, ...); - -DESCRIPTION - <>, <>, <>, <>, - <>, and <> are the same as <>, - <>, <>, <>, <>, and - <>, respectively, except that they restrict usage - to non-floating-point format specifiers. - - <<_iprintf_r>>, <<_fiprintf_r>>, <<_asiprintf_r>>, - <<_siprintf_r>>, <<_sniprintf_r>>, <<_asniprintf_r>> are - simply reentrant versions of the functions above. - -RETURNS -Similar to <>, <>, <>, <>, <>, -and <>. - -PORTABILITY -<>, <>, <>, <>, <>, -and <> are newlib extensions. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -int -_siprintf_r (struct _reent *ptr, - char *str, - const char *fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = INT_MAX; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfiprintf_r (ptr, &f, fmt, ap); - va_end (ap); - *f._p = 0; - return (ret); -} - -#ifndef _REENT_ONLY - -int -siprintf (char *str, - const char *fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = INT_MAX; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfiprintf_r (_REENT, &f, fmt, ap); - va_end (ap); - *f._p = 0; - return (ret); -} - -#endif diff --git a/lib/stdio/siscanf.c b/lib/stdio/siscanf.c deleted file mode 100644 index b88b810..0000000 --- a/lib/stdio/siscanf.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>, <>---scan and format non-floating input - -INDEX - iscanf -INDEX - _iscanf_r -INDEX - fiscanf -INDEX - _fiscanf_r -INDEX - siscanf -INDEX - _siscanf_r - -SYNOPSIS - #include - - int iscanf(const char *<[format]>, ...); - int fiscanf(FILE *<[fd]>, const char *<[format]>, ...); - int siscanf(const char *<[str]>, const char *<[format]>, ...); - - int _iscanf_r(struct _reent *<[ptr]>, const char *<[format]>, ...); - int _fiscanf_r(struct _reent *<[ptr]>, FILE *<[fd]>, - const char *<[format]>, ...); - int _siscanf_r(struct _reent *<[ptr]>, const char *<[str]>, - const char *<[format]>, ...); - -DESCRIPTION - <>, <>, and <> are the same as - <>, <>, and <> respectively, only that - they restrict the available formats to non-floating-point - format specifiers. - - The routines <<_iscanf_r>>, <<_fiscanf_r>>, and <<_siscanf_r>> are reentrant - versions of <>, <>, and <> that take an additional - first argument pointing to a reentrancy structure. - -RETURNS - <> returns the number of input fields successfully - scanned, converted and stored; the return value does - not include scanned fields which were not stored. - - If <> attempts to read at end-of-file, the return - value is <>. - - If no fields were stored, the return value is <<0>>. - -PORTABILITY -<>, <>, and <> are newlib extensions. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -siscanf (const char *str, - const char *fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - f._flags = __SRD | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._r = strlen (str); - f._read = __seofread; - f._ub._base = NULL; - f._lb._base = NULL; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = __ssvfiscanf_r (_REENT, &f, fmt, ap); - va_end (ap); - return ret; -} - -#endif /* !_REENT_ONLY */ - -int -_siscanf_r (struct _reent *ptr, - const char *str, - const char *fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - f._flags = __SRD | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._r = strlen (str); - f._read = __seofread; - f._ub._base = NULL; - f._lb._base = NULL; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = __ssvfiscanf_r (ptr, &f, fmt, ap); - va_end (ap); - return ret; -} diff --git a/lib/stdio/sniprintf.c b/lib/stdio/sniprintf.c deleted file mode 100644 index b05ffcb..0000000 --- a/lib/stdio/sniprintf.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 1990, 2007 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* This code created by modifying snprintf.c so copyright inherited. */ -/* doc in siprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -int -_sniprintf_r (struct _reent *ptr, - char *str, - size_t size, - const char *fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - if (size > INT_MAX) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - return EOF; - } - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = (size > 0 ? size - 1 : 0); - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfiprintf_r (ptr, &f, fmt, ap); - va_end (ap); - if (ret < EOF) - _REENT_ERRNO(ptr) = EOVERFLOW; - if (size > 0) - *f._p = 0; - return (ret); -} - -#ifndef _REENT_ONLY - -int -sniprintf (char *str, - size_t size, - const char *fmt, ...) -{ - int ret; - va_list ap; - FILE f; - struct _reent *ptr = _REENT; - - if (size > INT_MAX) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - return EOF; - } - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = (size > 0 ? size - 1 : 0); - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfiprintf_r (ptr, &f, fmt, ap); - va_end (ap); - if (ret < EOF) - _REENT_ERRNO(ptr) = EOVERFLOW; - if (size > 0) - *f._p = 0; - return (ret); -} - -#endif diff --git a/lib/stdio/snprintf.c b/lib/stdio/snprintf.c deleted file mode 100644 index 4a3084b..0000000 --- a/lib/stdio/snprintf.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 1990, 2007 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in sprintf.c */ -/* This code created by modifying sprintf.c so copyright inherited. */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -int -_snprintf_r (struct _reent *ptr, - char *__restrict str, - size_t size, - const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - if (size > INT_MAX) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - return EOF; - } - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = (size > 0 ? size - 1 : 0); - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfprintf_r (ptr, &f, fmt, ap); - va_end (ap); - if (ret < EOF) - _REENT_ERRNO(ptr) = EOVERFLOW; - if (size > 0) - *f._p = 0; - return (ret); -} - -#ifdef _NANO_FORMATTED_IO -int -_sniprintf_r (struct _reent *, char *, size_t, const char *, ...) - _ATTRIBUTE ((__alias__("_snprintf_r"))); -#endif - -#ifndef _REENT_ONLY - -int -snprintf (char *__restrict str, - size_t size, - const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - FILE f; - struct _reent *ptr = _REENT; - - if (size > INT_MAX) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - return EOF; - } - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = (size > 0 ? size - 1 : 0); - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfprintf_r (ptr, &f, fmt, ap); - va_end (ap); - if (ret < EOF) - _REENT_ERRNO(ptr) = EOVERFLOW; - if (size > 0) - *f._p = 0; - return (ret); -} - -#ifdef _NANO_FORMATTED_IO -int -sniprintf (char *, size_t, const char *, ...) - _ATTRIBUTE ((__alias__("snprintf"))); -#endif -#endif diff --git a/lib/stdio/sprintf.c b/lib/stdio/sprintf.c deleted file mode 100644 index be66ec6..0000000 --- a/lib/stdio/sprintf.c +++ /dev/null @@ -1,629 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>, <>, <>, <>, <>---format output - -INDEX - fprintf -INDEX - _fprintf_r -INDEX - printf -INDEX - _printf_r -INDEX - asprintf -INDEX - _asprintf_r -INDEX - sprintf -INDEX - _sprintf_r -INDEX - snprintf -INDEX - _snprintf_r -INDEX - asnprintf -INDEX - _asnprintf_r - -SYNOPSIS - #include - - int printf(const char *restrict <[format]>, ...); - int fprintf(FILE *restrict <[fd]>, const char *restrict <[format]>, ...); - int sprintf(char *restrict <[str]>, const char *restrict <[format]>, ...); - int snprintf(char *restrict <[str]>, size_t <[size]>, const char *restrict <[format]>, - ...); - int asprintf(char **restrict <[strp]>, const char *restrict <[format]>, ...); - char *asnprintf(char *restrict <[str]>, size_t *restrict <[size]>, const char *restrict <[format]>, - ...); - - int _printf_r(struct _reent *<[ptr]>, const char *restrict <[format]>, ...); - int _fprintf_r(struct _reent *<[ptr]>, FILE *restrict <[fd]>, - const char *restrict <[format]>, ...); - int _sprintf_r(struct _reent *<[ptr]>, char *restrict <[str]>, - const char *restrict <[format]>, ...); - int _snprintf_r(struct _reent *<[ptr]>, char *restrict <[str]>, size_t <[size]>, - const char *restrict <[format]>, ...); - int _asprintf_r(struct _reent *<[ptr]>, char **restrict <[strp]>, - const char *restrict <[format]>, ...); - char *_asnprintf_r(struct _reent *<[ptr]>, char *restrict <[str]>, - size_t *restrict <[size]>, const char *restrict <[format]>, ...); - -DESCRIPTION - <> accepts a series of arguments, applies to each a - format specifier from <<*<[format]>>>, and writes the - formatted data to <>, without a terminating NUL - character. The behavior of <> is undefined if there - are not enough arguments for the format. <> returns - when it reaches the end of the format string. If there are - more arguments than the format requires, excess arguments are - ignored. - - <> is like <>, except that output is directed - to the stream <[fd]> rather than <>. - - <> is like <>, except that output is directed - to the buffer <[str]>, and a terminating NUL is output. - Behavior is undefined if more output is generated than the - buffer can hold. - - <> is like <>, except that output is - limited to at most <[size]> bytes, including the terminating - <>. As a special case, if <[size]> is 0, <[str]> can be - NULL, and <> merely calculates how many bytes would - be printed. - - <> is like <>, except that the output is - stored in a dynamically allocated buffer, <[pstr]>, which - should be freed later with <>. - - <> is like <>, except that the return type - is either the original <[str]> if it was large enough, or a - dynamically allocated string if the output exceeds *<[size]>; - the length of the result is returned in *<[size]>. When - dynamic allocation occurs, the contents of the original - <[str]> may have been modified. - - For <>, <>, and <>, the behavior - is undefined if the output <<*<[str]>>> overlaps with one of - the arguments. Behavior is also undefined if the argument for - <<%n>> within <<*<[format]>>> overlaps another argument. - - <[format]> is a pointer to a character string containing two - types of objects: ordinary characters (other than <<%>>), - which are copied unchanged to the output, and conversion - specifications, each of which is introduced by <<%>>. (To - include <<%>> in the output, use <<%%>> in the format string.) - A conversion specification has the following form: - -. %[<[pos]>][<[flags]>][<[width]>][.<[prec]>][<[size]>]<[type]> - - The fields of the conversion specification have the following - meanings: - - O+ - o <[pos]> - - Conversions normally consume arguments in the order that they - are presented. However, it is possible to consume arguments - out of order, and reuse an argument for more than one - conversion specification (although the behavior is undefined - if the same argument is requested with different types), by - specifying <[pos]>, which is a decimal integer followed by - '$'. The integer must be between 1 and from - limits.h, and if argument <<%n$>> is requested, all earlier - arguments must be requested somewhere within <[format]>. If - positional parameters are used, then all conversion - specifications except for <<%%>> must specify a position. - This positional parameters method is a POSIX extension to the C - standard definition for the functions. - - o <[flags]> - - <[flags]> is an optional sequence of characters which control - output justification, numeric signs, decimal points, trailing - zeros, and octal and hex prefixes. The flag characters are - minus (<<->>), plus (<<+>>), space ( ), zero (<<0>>), sharp - (<<#>>), and quote (<<'>>). They can appear in any - combination, although not all flags can be used for all - conversion specification types. - - o+ - o ' - A POSIX extension to the C standard. However, this - implementation presently treats it as a no-op, which - is the default behavior for the C locale, anyway. (If - it did what it is supposed to, when <[type]> were <>, - <>, <>, <>, <>, <>, or <>, the - integer portion of the conversion would be formatted - with thousands' grouping wide characters.) - - o - - The result of the conversion is left - justified, and the right is padded with - blanks. If you do not use this flag, the - result is right justified, and padded on the - left. - - o + - The result of a signed conversion (as - determined by <[type]> of <>, <>, <>, - <>, <>, <>, <>, <>, <>, or - <>) will always begin with a plus or minus - sign. (If you do not use this flag, positive - values do not begin with a plus sign.) - - o " " (space) - If the first character of a signed conversion - specification is not a sign, or if a signed - conversion results in no characters, the - result will begin with a space. If the space - ( ) flag and the plus (<<+>>) flag both - appear, the space flag is ignored. - - o 0 - If the <[type]> character is <>, <>, - <>, <>, <>, <>, <>, <>, - <>, <>, <>, <>, <>, or <>: leading - zeros are used to pad the field width - (following any indication of sign or base); no - spaces are used for padding. If the zero - (<<0>>) and minus (<<->>) flags both appear, - the zero (<<0>>) flag will be ignored. For - <>, <>, <>, <>, <>, and <> - conversions, if a precision <[prec]> is - specified, the zero (<<0>>) flag is ignored. - - Note that <<0>> is interpreted as a flag, not - as the beginning of a field width. - - o # - The result is to be converted to an - alternative form, according to the <[type]> - character. - o- - - The alternative form output with the # flag depends on the <[type]> - character: - - o+ - o o - Increases precision to force the first - digit of the result to be a zero. - - o x - A non-zero result will have a <<0x>> - prefix. - - o X - A non-zero result will have a <<0X>> - prefix. - - o a, A, e, E, f, or F - The result will always contain a - decimal point even if no digits follow - the point. (Normally, a decimal point - appears only if a digit follows it.) - Trailing zeros are removed. - - o g or G - The result will always contain a - decimal point even if no digits follow - the point. Trailing zeros are not - removed. - - o all others - Undefined. - - o- - - o <[width]> - - <[width]> is an optional minimum field width. You can - either specify it directly as a decimal integer, or - indirectly by using instead an asterisk (<<*>>), in - which case an <> argument is used as the field - width. If positional arguments are used, then the - width must also be specified positionally as <<*m$>>, - with m as a decimal integer. Negative field widths - are treated as specifying the minus (<<->>) flag for - left justfication, along with a positive field width. - The resulting format may be wider than the specified - width. - - o <[prec]> - - <[prec]> is an optional field; if present, it is - introduced with `<<.>>' (a period). You can specify - the precision either directly as a decimal integer or - indirectly by using an asterisk (<<*>>), in which case - an <> argument is used as the precision. If - positional arguments are used, then the precision must - also be specified positionally as <<*m$>>, with m as a - decimal integer. Supplying a negative precision is - equivalent to omitting the precision. If only a - period is specified the precision is zero. The effect - depends on the conversion <[type]>. - - o+ - o d, i, o, u, x, or X - Minimum number of digits to appear. If no - precision is given, defaults to 1. - - o a or A - Number of digits to appear after the decimal - point. If no precision is given, the - precision defaults to the minimum needed for - an exact representation. - - o e, E, f or F - Number of digits to appear after the decimal - point. If no precision is given, the - precision defaults to 6. - - o g or G - Maximum number of significant digits. A - precision of 0 is treated the same as a - precision of 1. If no precision is given, the - precision defaults to 6. - - o s or S - Maximum number of characters to print from the - string. If no precision is given, the entire - string is printed. - - o all others - undefined. - - o- - - o <[size]> - - <[size]> is an optional modifier that changes the data - type that the corresponding argument has. Behavior is - unspecified if a size is given that does not match the - <[type]>. - - o+ - o hh - With <>, <>, <>, <>, <>, or - <>, specifies that the argument should be - converted to a <> or <> before printing. - - With <>, specifies that the argument is a - pointer to a <>. - - o h - With <>, <>, <>, <>, <>, or - <>, specifies that the argument should be - converted to a <> or <> - before printing. - - With <>, specifies that the argument is a - pointer to a <>. - - o l - With <>, <>, <>, <>, <>, or - <>, specifies that the argument is a - <> or <>. - - With <>, specifies that the argument has - type <>. - - With <>, specifies that the argument is a - pointer to <>. - - With <>, specifies that the argument is a - pointer to a <>. - - With <>, <>, <>, <>, <>, <>, - <>, or <>, has no effect (because of - vararg promotion rules, there is no need to - distinguish between <> and <>). - - o ll - With <>, <>, <>, <>, <>, or - <>, specifies that the argument is a - <> or <>. - - With <>, specifies that the argument is a - pointer to a <>. - - o j - With <>, <>, <>, <>, <>, or - <>, specifies that the argument is an - <> or <>. - - With <>, specifies that the argument is a - pointer to an <>. - - o z - With <>, <>, <>, <>, <>, or - <>, specifies that the argument is a <>. - - With <>, specifies that the argument is a - pointer to a <>. - - o t - With <>, <>, <>, <>, <>, or - <>, specifies that the argument is a - <>. - - With <>, specifies that the argument is a - pointer to a <>. - - o L - With <>, <>, <>, <>, <>, <>, - <>, or <>, specifies that the argument - is a <>. - - o- - - o <[type]> - - <[type]> specifies what kind of conversion <> - performs. Here is a table of these: - - o+ - o % - Prints the percent character (<<%>>). - - o c - Prints <[arg]> as single character. If the - <> size specifier is in effect, a multibyte - character is printed. - - o C - Short for <<%lc>>. A POSIX extension to the C standard. - - o s - Prints the elements of a pointer to <> - until the precision or a null character is - reached. If the <> size specifier is in - effect, the pointer is to an array of - <>, and the string is converted to - multibyte characters before printing. - - o S - Short for <<%ls>>. A POSIX extension to the C standard. - - o d or i - Prints a signed decimal integer; takes an - <>. Leading zeros are inserted as - necessary to reach the precision. A value of 0 with - a precision of 0 produces an empty string. - - o D - Newlib extension, short for <<%ld>>. - - o o - Prints an unsigned octal integer; takes an - <>. Leading zeros are inserted as - necessary to reach the precision. A value of 0 with - a precision of 0 produces an empty string. - - o O - Newlib extension, short for <<%lo>>. - - o u - Prints an unsigned decimal integer; takes an - <>. Leading zeros are inserted as - necessary to reach the precision. A value of 0 with - a precision of 0 produces an empty string. - - o U - Newlib extension, short for <<%lu>>. - - o x - Prints an unsigned hexadecimal integer (using - <> as digits beyond <<9>>); takes an - <>. Leading zeros are inserted as - necessary to reach the precision. A value of 0 with - a precision of 0 produces an empty string. - - o X - Like <>, but uses <> as digits - beyond <<9>>. - - o f - Prints a signed value of the form - <<[-]9999.9999>>, with the precision - determining how many digits follow the decimal - point; takes a <> (remember that - <> promotes to <> as a vararg). - The low order digit is rounded to even. If - the precision results in at most DECIMAL_DIG - digits, the result is rounded correctly; if - more than DECIMAL_DIG digits are printed, the - result is only guaranteed to round back to the - original value. - - If the value is infinite, the result is - <>, and no zero padding is performed. If - the value is not a number, the result is - <>, and no zero padding is performed. - - o F - Like <>, but uses <> and <> for - non-finite numbers. - - o e - Prints a signed value of the form - <<[-]9.9999e[+|-]999>>; takes a <>. - The digit before the decimal point is non-zero - if the value is non-zero. The precision - determines how many digits appear between - <<.>> and <>, and the exponent always - contains at least two digits. The value zero - has an exponent of zero. If the value is not - finite, it is printed like <>. - - o E - Like <>, but using <> to introduce the - exponent, and like <> for non-finite - values. - - o g - Prints a signed value in either <> or <> - form, based on the given value and - precision---an exponent less than -4 or - greater than the precision selects the <> - form. Trailing zeros and the decimal point - are printed only if necessary; takes a - <>. - - o G - Like <>, except use <> or <> form. - - o a - Prints a signed value of the form - <<[-]0x1.ffffp[+|-]9>>; takes a <>. - The letters <> are used for digits - beyond <<9>>. The precision determines how - many digits appear after the decimal point. - The exponent contains at least one digit, and - is a decimal value representing the power of - 2; a value of 0 has an exponent of 0. - Non-finite values are printed like <>. - - o A - Like <>, except uses <>, <

>, and - <> instead of lower case. - - o n - Takes a pointer to <>, and stores a count - of the number of bytes written so far. No - output is created. - - o p - Takes a pointer to <>, and prints it in - an implementation-defined format. This - implementation is similar to <<%#tx>>), except - that <<0x>> appears even for the NULL pointer. - - o m - Prints the output of <>; no - argument is required. A GNU extension. - - o- - O- - - <<_printf_r>>, <<_fprintf_r>>, <<_asprintf_r>>, - <<_sprintf_r>>, <<_snprintf_r>>, <<_asnprintf_r>> are simply - reentrant versions of the functions above. - -RETURNS -On success, <> and <> return the number of bytes in -the output string, except the concluding <> is not counted. -<> returns the number of bytes that would be in the output -string, except the concluding <> is not counted. <> and -<> return the number of characters transmitted. -<> returns the original <[str]> if there was enough room, -otherwise it returns an allocated string. - -If an error occurs, the result of <>, <>, -<>, and <> is a negative value, and the result of -<> is NULL. No error returns occur for <>. For -<> and <>, <> may be set according to -<>. For <> and <>, <> may be set -to ENOMEM if allocation fails, and for <>, <> may be -set to EOVERFLOW if <[size]> or the output length exceeds INT_MAX. - -BUGS -The ``''' (quote) flag does not work when locale's thousands_sep is not empty. - -PORTABILITY -ANSI C requires <>, <>, <>, and -<>. <> and <> are newlib extensions. - -The ANSI C standard specifies that implementations must support at -least formatted output of up to 509 characters. This implementation -has no inherent limit. - -Depending on how newlib was configured, not all format specifiers are -supported. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -int -_sprintf_r (struct _reent *ptr, - char *__restrict str, - const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = INT_MAX; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfprintf_r (ptr, &f, fmt, ap); - va_end (ap); - *f._p = '\0'; /* terminate the string */ - return (ret); -} - -#ifdef _NANO_FORMATTED_IO -int -_siprintf_r (struct _reent *, char *, const char *, ...) - _ATTRIBUTE ((__alias__("_sprintf_r"))); -#endif - -#ifndef _REENT_ONLY - -int -sprintf (char *__restrict str, - const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = INT_MAX; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfprintf_r (_REENT, &f, fmt, ap); - va_end (ap); - *f._p = '\0'; /* terminate the string */ - return (ret); -} - -#ifdef _NANO_FORMATTED_IO -int -siprintf (char *, const char *, ...) - _ATTRIBUTE ((__alias__("sprintf"))); -#endif -#endif diff --git a/lib/stdio/sscanf.c b/lib/stdio/sscanf.c deleted file mode 100644 index 9c50361..0000000 --- a/lib/stdio/sscanf.c +++ /dev/null @@ -1,478 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>, <>---scan and format input - -INDEX - scanf -INDEX - _scanf_r -INDEX - fscanf -INDEX - _fscanf_r -INDEX - sscanf -INDEX - _sscanf_r - -SYNOPSIS - #include - - int scanf(const char *restrict <[format]>, ...); - int fscanf(FILE *restrict <[fd]>, const char *restrict <[format]>, ...); - int sscanf(const char *restrict <[str]>, const char *restrict <[format]>, ...); - - int _scanf_r(struct _reent *<[ptr]>, const char *restrict <[format]>, ...); - int _fscanf_r(struct _reent *<[ptr]>, FILE *restrict <[fd]>, - const char *restrict <[format]>, ...); - int _sscanf_r(struct _reent *<[ptr]>, const char *restrict <[str]>, - const char *restrict <[format]>, ...); - -DESCRIPTION - <> scans a series of input fields from standard input, - one character at a time. Each field is interpreted according to - a format specifier passed to <> in the format string at - <<*<[format]>>>. <> stores the interpreted input from - each field at the address passed to it as the corresponding argument - following <[format]>. You must supply the same number of - format specifiers and address arguments as there are input fields. - - There must be sufficient address arguments for the given format - specifiers; if not the results are unpredictable and likely - disasterous. Excess address arguments are merely ignored. - - <> often produces unexpected results if the input diverges from - an expected pattern. Since the combination of <> or <> - followed by <> is safe and easy, that is the preferred way - to be certain that a program is synchronized with input at the end - of a line. - - <> and <> are identical to <>, other than the - source of input: <> reads from a file, and <> - from a string. - - The routines <<_scanf_r>>, <<_fscanf_r>>, and <<_sscanf_r>> are reentrant - versions of <>, <>, and <> that take an additional - first argument pointing to a reentrancy structure. - - The string at <<*<[format]>>> is a character sequence composed - of zero or more directives. Directives are composed of - one or more whitespace characters, non-whitespace characters, - and format specifications. - - Whitespace characters are blank (<< >>), tab (<<\t>>), or - newline (<<\n>>). - When <> encounters a whitespace character in the format string - it will read (but not store) all consecutive whitespace characters - up to the next non-whitespace character in the input. - - Non-whitespace characters are all other ASCII characters except the - percent sign (<<%>>). When <> encounters a non-whitespace - character in the format string it will read, but not store - a matching non-whitespace character. - - Format specifications tell <> to read and convert characters - from the input field into specific types of values, and store then - in the locations specified by the address arguments. - - Trailing whitespace is left unread unless explicitly - matched in the format string. - - The format specifiers must begin with a percent sign (<<%>>) - and have the following form: - -. %[*][<[width]>][<[size]>]<[type]> - - Each format specification begins with the percent character (<<%>>). - The other fields are: - O+ - o * - - an optional marker; if present, it suppresses interpretation and - assignment of this input field. - - o <[width]> - - an optional maximum field width: a decimal integer, - which controls the maximum number of characters that - will be read before converting the current input field. If the - input field has fewer than <[width]> characters, <> - reads all the characters in the field, and then - proceeds with the next field and its format specification. - - If a whitespace or a non-convertable character occurs - before <[width]> character are read, the characters up - to that character are read, converted, and stored. - Then <> proceeds to the next format specification. - - o <[size]> - - <>, <>, <>, <>, <>, and <> are optional size - characters which override the default way that <> - interprets the data type of the corresponding argument. - - @multitable @columnfractions 0.18 0.30 0.52 - @headitem - Modifier - @tab - Type(s) - @tab - @item - hh - @tab - d, i, o, u, x, n - @tab - convert input to char, store in char object - @item - h - @tab - d, i, o, u, x, n - @tab - convert input to short, store in short object - @item - h - @tab - D, I, O, U, X, e, f, c, s, p - @tab - no effect - @item - j - @tab - d, i, o, u, x, n - @tab - convert input to intmax_t, store in intmax_t object - @item - j - @tab - all others - @tab - no effect - @item - l - @tab - d, i, o, u, x, n - @tab - convert input to long, store in long object - @item - l - @tab - e, f, g - @tab - convert input to double, store in a double object - @item - l - @tab - D, I, O, U, X, c, s, p - @tab - no effect - @item - ll - @tab - d, i, o, u, x, n - @tab - convert to long long, store in long long object - @item - L - @tab - d, i, o, u, x, n - @tab - convert to long long, store in long long object - @item - L - @tab - e, f, g, E, G - @tab - convert to long double, store in long double object - @item - L - @tab - all others - @tab - no effect - @item - t - @tab - d, i, o, u, x, n - @tab - convert input to ptrdiff_t, store in ptrdiff_t object - @item - t - @tab - all others - @tab - no effect - @item - z - @tab - d, i, o, u, x, n - @tab - convert input to size_t, store in size_t object - @item - z - @tab - all others - @tab - no effect - @end multitable - - o <[type]> - - A character to specify what kind of conversion - <> performs. Here is a table of the conversion - characters: - - o+ - o % - No conversion is done; the percent character (<<%>>) is stored. - - o c - Scans one character. Corresponding <[arg]>: <<(char *arg)>>. - - o s - Reads a character string into the array supplied. - Corresponding <[arg]>: <<(char arg[])>>. - - o [<[pattern]>] - Reads a non-empty character string into memory - starting at <[arg]>. This area must be large - enough to accept the sequence and a - terminating null character which will be added - automatically. (<[pattern]> is discussed in the paragraph following - this table). Corresponding <[arg]>: <<(char *arg)>>. - - o d - Reads a decimal integer into the corresponding <[arg]>: <<(int *arg)>>. - - o D - Reads a decimal integer into the corresponding - <[arg]>: <<(long *arg)>>. - - o o - Reads an octal integer into the corresponding <[arg]>: <<(int *arg)>>. - - o O - Reads an octal integer into the corresponding <[arg]>: <<(long *arg)>>. - - o u - Reads an unsigned decimal integer into the corresponding - <[arg]>: <<(unsigned int *arg)>>. - - o U - Reads an unsigned decimal integer into the corresponding <[arg]>: - <<(unsigned long *arg)>>. - - o x,X - Read a hexadecimal integer into the corresponding <[arg]>: - <<(int *arg)>>. - - o e, f, g - Read a floating-point number into the corresponding <[arg]>: - <<(float *arg)>>. - - o E, F, G - Read a floating-point number into the corresponding <[arg]>: - <<(double *arg)>>. - - o i - Reads a decimal, octal or hexadecimal integer into the - corresponding <[arg]>: <<(int *arg)>>. - - o I - Reads a decimal, octal or hexadecimal integer into the - corresponding <[arg]>: <<(long *arg)>>. - - o n - Stores the number of characters read in the corresponding - <[arg]>: <<(int *arg)>>. - - o p - Stores a scanned pointer. ANSI C leaves the details - to each implementation; this implementation treats - <<%p>> exactly the same as <<%U>>. Corresponding - <[arg]>: <<(void **arg)>>. - o- - - A <[pattern]> of characters surrounded by square brackets can be used - instead of the <> type character. <[pattern]> is a set of - characters which define a search set of possible characters making up - the <> input field. If the first character in the brackets is a - caret (<<^>>), the search set is inverted to include all ASCII characters - except those between the brackets. There is also a range facility - which you can use as a shortcut. <<%[0-9] >> matches all decimal digits. - The hyphen must not be the first or last character in the set. - The character prior to the hyphen must be lexically less than the - character after it. - - Here are some <[pattern]> examples: - o+ - o %[abcd] - matches strings containing only <>, <>, <>, and <>. - - o %[^abcd] - matches strings containing any characters except <>, <>, - <>, or <> - - o %[A-DW-Z] - matches strings containing <>, <>, <>, <>, <>, - <>, <>, <> - - o %[z-a] - matches the characters <>, <<->>, and <> - o- - - Floating point numbers (for field types <>, <>, <>, <>, - <>, <>) must correspond to the following general form: - -. [+/-] ddddd[.]ddd [E|e[+|-]ddd] - - where objects inclosed in square brackets are optional, and <> - represents decimal, octal, or hexadecimal digits. - O- - -RETURNS - <> returns the number of input fields successfully - scanned, converted and stored; the return value does - not include scanned fields which were not stored. - - If <> attempts to read at end-of-file, the return - value is <>. - - If no fields were stored, the return value is <<0>>. - - <> might stop scanning a particular field before - reaching the normal field end character, or may - terminate entirely. - - <> stops scanning and storing the current field - and moves to the next input field (if any) - in any of the following situations: - - O+ - o The assignment suppressing character (<<*>>) appears - after the <<%>> in the format specification; the current - input field is scanned but not stored. - - o <[width]> characters have been read (<[width]> is a - width specification, a positive decimal integer). - - o The next character read cannot be converted - under the the current format (for example, - if a <> is read when the format is decimal). - - o The next character in the input field does not appear - in the search set (or does appear in the inverted search set). - O- - - When <> stops scanning the current input field for one of - these reasons, the next character is considered unread and - used as the first character of the following input field, or the - first character in a subsequent read operation on the input. - - <> will terminate under the following circumstances: - - O+ - o The next character in the input field conflicts - with a corresponding non-whitespace character in the - format string. - - o The next character in the input field is <>. - - o The format string has been exhausted. - O- - - When the format string contains a character sequence that is - not part of a format specification, the same character - sequence must appear in the input; <> will - scan but not store the matched characters. If a - conflict occurs, the first conflicting character remains in the input - as if it had never been read. - -PORTABILITY -<> is ANSI C. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -sscanf (const char *__restrict str, - const char * fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - f._flags = __SRD | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._r = strlen (str); - f._read = __seofread; - f._ub._base = NULL; - f._lb._base = NULL; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = __ssvfscanf_r (_REENT, &f, fmt, ap); - va_end (ap); - return ret; -} - -#ifdef _NANO_FORMATTED_IO -int -siscanf (const char *, const char *, ...) - _ATTRIBUTE ((__alias__("sscanf"))); -#endif - -#endif /* !_REENT_ONLY */ - -int -_sscanf_r (struct _reent *ptr, - const char *__restrict str, - const char *__restrict fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - f._flags = __SRD | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._r = strlen (str); - f._read = __seofread; - f._ub._base = NULL; - f._lb._base = NULL; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = __ssvfscanf_r (ptr, &f, fmt, ap); - va_end (ap); - return ret; -} - -#ifdef _NANO_FORMATTED_IO -int -_siscanf_r (struct _reent *, const char *, const char *, ...) - _ATTRIBUTE ((__alias__("_sscanf_r"))); -#endif diff --git a/lib/stdio/stdio.c b/lib/stdio/stdio.c deleted file mode 100644 index 6347949..0000000 --- a/lib/stdio/stdio.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* No user fns here. Pesch 15apr92. */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -/* - * Small standard I/O/seek/close functions. - * These maintain the `known seek offset' for seek optimisation. - */ - -_READ_WRITE_RETURN_TYPE -__sread (struct _reent *ptr, - void *cookie, - char *buf, - _READ_WRITE_BUFSIZE_TYPE n) -{ - register FILE *fp = (FILE *) cookie; - register ssize_t ret; - -#ifdef __SCLE - int oldmode = 0; - if (fp->_flags & __SCLE) - oldmode = setmode (fp->_file, O_BINARY); -#endif - - ret = _read_r (ptr, fp->_file, buf, n); - -#ifdef __SCLE - if (oldmode) - setmode (fp->_file, oldmode); -#endif - - /* If the read succeeded, update the current offset. */ - - if (ret >= 0) - fp->_offset += ret; - else - fp->_flags &= ~__SOFF; /* paranoia */ - return ret; -} - -/* Dummy function used in sscanf/swscanf. */ -_READ_WRITE_RETURN_TYPE -__seofread (struct _reent *_ptr, - void *cookie, - char *buf, - _READ_WRITE_BUFSIZE_TYPE len) -{ - return 0; -} - -_READ_WRITE_RETURN_TYPE -__swrite (struct _reent *ptr, - void *cookie, - char const *buf, - _READ_WRITE_BUFSIZE_TYPE n) -{ - register FILE *fp = (FILE *) cookie; - ssize_t w; -#ifdef __SCLE - int oldmode=0; -#endif - - if (fp->_flags & __SAPP) - _lseek_r (ptr, fp->_file, (_off_t) 0, SEEK_END); - fp->_flags &= ~__SOFF; /* in case O_APPEND mode is set */ - -#ifdef __SCLE - if (fp->_flags & __SCLE) - oldmode = setmode (fp->_file, O_BINARY); -#endif - - w = _write_r (ptr, fp->_file, buf, n); - -#ifdef __SCLE - if (oldmode) - setmode (fp->_file, oldmode); -#endif - - return w; -} - -_fpos_t -__sseek (struct _reent *ptr, - void *cookie, - _fpos_t offset, - int whence) -{ - register FILE *fp = (FILE *) cookie; - register _off_t ret; - - ret = _lseek_r (ptr, fp->_file, (_off_t) offset, whence); - if (ret == -1L) - fp->_flags &= ~__SOFF; - else - { - fp->_flags |= __SOFF; - fp->_offset = ret; - } - return ret; -} - -int -__sclose (struct _reent *ptr, - void *cookie) -{ - FILE *fp = (FILE *) cookie; - - return _close_r (ptr, fp->_file); -} - -#ifdef __SCLE -int -__stextmode (int fd) -{ -#ifdef __CYGWIN__ - extern int _cygwin_istext_for_stdio (int); - return _cygwin_istext_for_stdio (fd); -#else - return 0; -#endif -} -#endif diff --git a/lib/stdio/stdio.tex b/lib/stdio/stdio.tex deleted file mode 100644 index 5352c54..0000000 --- a/lib/stdio/stdio.tex +++ /dev/null @@ -1,327 +0,0 @@ -@node Stdio -@chapter Input and Output (@file{stdio.h}) - -This chapter comprises functions to manage files -or other input/output streams. Among these functions are subroutines -to generate or scan strings according to specifications from a format string. - -The underlying facilities for input and output depend on the host -system, but these functions provide a uniform interface. - -The corresponding declarations are in @file{stdio.h}. - -The reentrant versions of these functions use macros - -@example -_stdin_r(@var{reent}) -_stdout_r(@var{reent}) -_stderr_r(@var{reent}) -@end example - -@noindent -instead of the globals @code{stdin}, @code{stdout}, and -@code{stderr}. The argument @var{reent} is a pointer to a reentrancy -structure. - -@menu -* clearerr:: Clear file or stream error indicator -* diprintf:: Print to a file descriptor (integer only) -* dprintf:: Print to a file descriptor -* fclose:: Close a file -* fcloseall:: Close all files -* fdopen:: Turn an open file into a stream -* feof:: Test for end of file -* ferror:: Test whether read/write error has occurred -* fflush:: Flush buffered file output -* fgetc:: Get a character from a file or stream -* fgetpos:: Record position in a stream or file -* fgets:: Get character string from a file or stream -* fgetwc:: Get a wide character from a file or stream -* fgetws:: Get a wide character string from a file or stream -* fileno:: Get file descriptor associated with stream -* fmemopen:: Open a stream around a fixed-length buffer -* fopen:: Open a file -* fopencookie:: Open a stream with custom callbacks -* fpurge:: Discard all pending I/O on a stream -* fputc:: Write a character on a stream or file -* fputs:: Write a character string in a file or stream -* fputwc:: Write a wide character to a file or stream -* fputws:: Write a wide character string to a file or stream -* fread:: Read array elements from a file -* freopen:: Open a file using an existing file descriptor -* fseek:: Set file position -* __fsetlocking:: Set or query locking mode on FILE stream -* fsetpos:: Restore position of a stream or file -* ftell:: Return position in a stream or file -* funopen:: Open a stream with custom callbacks -* fwide:: Set and determine the orientation of a FILE stream -* fwrite:: Write array elements from memory to a file or stream -* getc:: Get a character from a file or stream (macro) -* getc_unlocked:: Get a character from a file or stream (macro) -* getchar:: Get a character from standard input (macro) -* getchar_unlocked:: Get a character from standard input (macro) -* getdelim:: Get character string from a file or stream -* getline:: Get character string from a file or stream -* gets:: Get character string from standard input (obsolete) -* getw:: Get a word (int) from a file or stream -* getwchar:: Get a wide character from standard input -* mktemp:: Generate unused file name -* open_memstream:: Open a write stream around an arbitrary-length buffer -* perror:: Print an error message on standard error -* putc:: Write a character on a stream or file (macro) -* putc_unlocked:: Write a character on a stream or file (macro) -* putchar:: Write a character on standard output (macro) -* putchar_unlocked:: Write a character on standard output (macro) -* puts:: Write a character string on standard output -* putw:: Write a word (int) to a file or stream -* putwchar:: Write a wide character to standard output -* remove:: Delete a file's name -* rename:: Rename a file -* rewind:: Reinitialize a file or stream -* setbuf:: Specify full buffering for a file or stream -* setbuffer:: Specify full buffering for a file or stream with size -* setlinebuf:: Specify line buffering for a file or stream -* setvbuf:: Specify buffering for a file or stream -* siprintf:: Write formatted output (integer only) -* siscanf:: Scan and format input (integer only) -* sprintf:: Write formatted output -* sscanf:: Scan and format input -* stdio_ext:: Access internals of FILE structure -* swprintf:: Write formatted wide character output -* swscanf:: Scan and format wide character input -* tmpfile:: Create a temporary file -* tmpnam:: Generate name for a temporary file -* ungetc:: Push data back into a stream -* ungetwc:: Push wide character data back into a stream -* vfprintf:: Format variable argument list -* vfscanf:: Scan variable argument list -* vfwprintf:: Format variable wide character argument list -* vfwscanf:: Scan and format argument list from wide character input -* viprintf:: Format variable argument list (integer only) -* viscanf:: Scan variable format list (integer only) -@end menu - -@page -@include stdio/clearerr.def - -@page -@include stdio/diprintf.def - -@page -@include stdio/dprintf.def - -@page -@include stdio/fclose.def - -@page -@include stdio/fcloseall.def - -@page -@include stdio/fdopen.def - -@page -@include stdio/feof.def - -@page -@include stdio/ferror.def - -@page -@include stdio/fflush.def - -@page -@include stdio/fgetc.def - -@page -@include stdio/fgetpos.def - -@page -@include stdio/fgets.def - -@page -@include stdio/fgetwc.def - -@page -@include stdio/fgetws.def - -@page -@include stdio/fileno.def - -@page -@include stdio/fmemopen.def - -@page -@include stdio/fopen.def - -@page -@include stdio/fopencookie.def - -@page -@include stdio/fpurge.def - -@page -@include stdio/fputc.def - -@page -@include stdio/fputs.def - -@page -@include stdio/fputwc.def - -@page -@include stdio/fputws.def - -@page -@include stdio/fread.def - -@page -@include stdio/freopen.def - -@page -@include stdio/fseek.def - -@page -@include stdio/fsetlocking.def - -@page -@include stdio/fsetpos.def - -@page -@include stdio/ftell.def - -@page -@include stdio/funopen.def - -@page -@include stdio/fwide.def - -@page -@include stdio/fwrite.def - -@page -@include stdio/getc.def - -@page -@include stdio/getc_u.def - -@page -@include stdio/getchar.def - -@page -@include stdio/getchar_u.def - -@page -@include stdio/getdelim.def - -@page -@include stdio/getline.def - -@page -@include stdio/gets.def - -@page -@include stdio/getw.def - -@page -@include stdio/getwchar.def - -@page -@include stdio/mktemp.def - -@page -@include stdio/open_memstream.def - -@page -@include stdio/perror.def - -@page -@include stdio/putc.def - -@page -@include stdio/putc_u.def - -@page -@include stdio/putchar.def - -@page -@include stdio/putchar_u.def - -@page -@include stdio/puts.def - -@page -@include stdio/putw.def - -@page -@include stdio/putwchar.def - -@page -@include stdio/remove.def - -@page -@include stdio/rename.def - -@page -@include stdio/rewind.def - -@page -@include stdio/setbuf.def - -@page -@include stdio/setbuffer.def - -@page -@include stdio/setlinebuf.def - -@page -@include stdio/setvbuf.def - -@page -@include stdio/siprintf.def - -@page -@include stdio/siscanf.def - -@page -@include stdio/sprintf.def - -@page -@include stdio/sscanf.def - -@page -@include stdio/stdio_ext.def - -@page -@include stdio/swprintf.def - -@page -@include stdio/swscanf.def - -@page -@include stdio/tmpfile.def - -@page -@include stdio/tmpnam.def - -@page -@include stdio/ungetc.def - -@page -@include stdio/ungetwc.def - -@page -@include stdio/vfprintf.def - -@page -@include stdio/vfscanf.def - -@page -@include stdio/vfwprintf.def - -@page -@include stdio/vfwscanf.def - -@page -@include stdio/viprintf.def - -@page -@include stdio/viscanf.def diff --git a/lib/stdio/stdio_ext.c b/lib/stdio/stdio_ext.c deleted file mode 100644 index 857091f..0000000 --- a/lib/stdio/stdio_ext.c +++ /dev/null @@ -1,106 +0,0 @@ -/* -FUNCTION -<>,<<__fbufsize>>,<<__fpending>>,<<__flbf>>,<<__freadable>>,<<__fwritable>>,<<__freading>>,<<__fwriting>>---access internals of FILE structure - -INDEX - __fbufsize -INDEX - __fpending -INDEX - __flbf -INDEX - __freadable -INDEX - __fwritable -INDEX - __freading -INDEX - __fwriting - -SYNOPSIS - #include - #include - size_t __fbufsize(FILE *<[fp]>); - size_t __fpending(FILE *<[fp]>); - int __flbf(FILE *<[fp]>); - int __freadable(FILE *<[fp]>); - int __fwritable(FILE *<[fp]>); - int __freading(FILE *<[fp]>); - int __fwriting(FILE *<[fp]>); - -DESCRIPTION -These functions provides access to the internals of the FILE structure <[fp]>. - -RETURNS -<<__fbufsize>> returns the number of bytes in the buffer of stream <[fp]>. - -<<__fpending>> returns the number of bytes in the output buffer of stream <[fp]>. - -<<__flbf>> returns nonzero if stream <[fp]> is line-buffered, and <<0>> if not. - -<<__freadable>> returns nonzero if stream <[fp]> may be read, and <<0>> if not. - -<<__fwritable>> returns nonzero if stream <[fp]> may be written, and <<0>> if not. - -<<__freading>> returns nonzero if stream <[fp]> if the last operation on -it was a read, or if it read-only, and <<0>> if not. - -<<__fwriting>> returns nonzero if stream <[fp]> if the last operation on -it was a write, or if it write-only, and <<0>> if not. - -PORTABILITY -These functions originate from Solaris and are also provided by GNU libc. - -No supporting OS subroutines are required. -*/ - -#ifndef __rtems__ - -#include <_ansi.h> -#include - -/* Subroutine versions of the inline or macro functions. */ - -size_t -__fbufsize (FILE * fp) -{ - return (size_t) fp->_bf._size; -} - -size_t -__fpending (FILE * fp) -{ - return fp->_p - fp->_bf._base; -} - -int -__flbf (FILE * fp) -{ - return (fp->_flags & __SLBF) != 0; -} - -int -__freadable (FILE * fp) -{ - return (fp->_flags & (__SRD | __SRW)) != 0; -} - -int -__fwritable (FILE * fp) -{ - return (fp->_flags & (__SWR | __SRW)) != 0; -} - -int -__freading (FILE * fp) -{ - return (fp->_flags & __SRD) != 0; -} - -int -__fwriting (FILE * fp) -{ - return (fp->_flags & __SWR) != 0; -} - -#endif /* __rtems__ */ diff --git a/lib/stdio/svfiprintf.c b/lib/stdio/svfiprintf.c deleted file mode 100644 index bbcc81c..0000000 --- a/lib/stdio/svfiprintf.c +++ /dev/null @@ -1,3 +0,0 @@ -#define INTEGER_ONLY -#define STRING_ONLY -#include "vfprintf.c" diff --git a/lib/stdio/svfiscanf.c b/lib/stdio/svfiscanf.c deleted file mode 100644 index e79cc79..0000000 --- a/lib/stdio/svfiscanf.c +++ /dev/null @@ -1,3 +0,0 @@ -#define INTEGER_ONLY -#define STRING_ONLY -#include "vfscanf.c" diff --git a/lib/stdio/svfiwprintf.c b/lib/stdio/svfiwprintf.c deleted file mode 100644 index a9df2ca..0000000 --- a/lib/stdio/svfiwprintf.c +++ /dev/null @@ -1,3 +0,0 @@ -#define INTEGER_ONLY -#define STRING_ONLY -#include "vfwprintf.c" diff --git a/lib/stdio/svfiwscanf.c b/lib/stdio/svfiwscanf.c deleted file mode 100644 index 7e6a36f..0000000 --- a/lib/stdio/svfiwscanf.c +++ /dev/null @@ -1,3 +0,0 @@ -#define INTEGER_ONLY -#define STRING_ONLY -#include "vfwscanf.c" diff --git a/lib/stdio/svfprintf.c b/lib/stdio/svfprintf.c deleted file mode 100644 index fe053c2..0000000 --- a/lib/stdio/svfprintf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define STRING_ONLY -#include "vfprintf.c" diff --git a/lib/stdio/svfscanf.c b/lib/stdio/svfscanf.c deleted file mode 100644 index ed01020..0000000 --- a/lib/stdio/svfscanf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define STRING_ONLY -#include "vfscanf.c" diff --git a/lib/stdio/svfwprintf.c b/lib/stdio/svfwprintf.c deleted file mode 100644 index 1ee9dd5..0000000 --- a/lib/stdio/svfwprintf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define STRING_ONLY -#include "vfwprintf.c" diff --git a/lib/stdio/svfwscanf.c b/lib/stdio/svfwscanf.c deleted file mode 100644 index 3b2987d..0000000 --- a/lib/stdio/svfwscanf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define STRING_ONLY -#include "vfwscanf.c" diff --git a/lib/stdio/swprintf.c b/lib/stdio/swprintf.c deleted file mode 100644 index 634b22b..0000000 --- a/lib/stdio/swprintf.c +++ /dev/null @@ -1,633 +0,0 @@ -/* - * Copyright (c) 1990, 2007 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>, <>---wide character format output - -INDEX - fwprintf -INDEX - _fwprintf_r -INDEX - wprintf -INDEX - _wprintf_r -INDEX - swprintf -INDEX - _swprintf_r - -SYNOPSIS - #include - - int wprintf(const wchar_t *<[format]>, ...); - int fwprintf(FILE *__restrict <[fd]>, - const wchar_t *__restrict <[format]>, ...); - int swprintf(wchar_t *__restrict <[str]>, size_t <[size]>, - const wchar_t *__restrict <[format]>, ...); - - int _wprintf_r(struct _reent *<[ptr]>, const wchar_t *<[format]>, ...); - int _fwprintf_r(struct _reent *<[ptr]>, FILE *<[fd]>, - const wchar_t *<[format]>, ...); - int _swprintf_r(struct _reent *<[ptr]>, wchar_t *<[str]>, - size_t <[size]>, const wchar_t *<[format]>, ...); - -DESCRIPTION - <> accepts a series of arguments, applies to each a - format specifier from <<*<[format]>>>, and writes the - formatted data to <>, without a terminating NUL - wide character. The behavior of <> is undefined if there - are not enough arguments for the format or if any argument is not the - right type for the corresponding conversion specifier. <> - returns when it reaches the end of the format string. If there are - more arguments than the format requires, excess arguments are - ignored. - - <> is like <>, except that output is directed - to the stream <[fd]> rather than <>. - - <> is like <>, except that output is directed - to the buffer <[str]> with a terminating wide <>, and the - resulting string length is limited to at most <[size]> wide characters, - including the terminating <>. It is considered an error if the - output (including the terminating wide-<>) does not fit into - <[size]> wide characters. (This error behavior is not the same as for - <>, which <> is otherwise completely analogous to. - While <> allows the needed size to be known simply by giving - <[size]>=0, <> does not, giving an error instead.) - - For <> the behavior is undefined if the output - <<*<[str]>>> overlaps with one of the arguments. Behavior is also - undefined if the argument for <<%n>> within <<*<[format]>>> - overlaps another argument. - - <[format]> is a pointer to a wide character string containing two - types of objects: ordinary characters (other than <<%>>), - which are copied unchanged to the output, and conversion - specifications, each of which is introduced by <<%>>. (To - include <<%>> in the output, use <<%%>> in the format string.) - A conversion specification has the following form: - -. %[<[pos]>][<[flags]>][<[width]>][.<[prec]>][<[size]>]<[type]> - - The fields of the conversion specification have the following - meanings: - - O+ - o <[pos]> - - Conversions normally consume arguments in the order that they - are presented. However, it is possible to consume arguments - out of order, and reuse an argument for more than one - conversion specification (although the behavior is undefined - if the same argument is requested with different types), by - specifying <[pos]>, which is a decimal integer followed by - '$'. The integer must be between 1 and from - limits.h, and if argument <<%n$>> is requested, all earlier - arguments must be requested somewhere within <[format]>. If - positional parameters are used, then all conversion - specifications except for <<%%>> must specify a position. - This positional parameters method is a POSIX extension to the C - standard definition for the functions. - - o <[flags]> - - <[flags]> is an optional sequence of characters which control - output justification, numeric signs, decimal points, trailing - zeros, and octal and hex prefixes. The flag characters are - minus (<<->>), plus (<<+>>), space ( ), zero (<<0>>), sharp - (<<#>>), and quote (<<'>>). They can appear in any - combination, although not all flags can be used for all - conversion specification types. - - o+ - o ' - A POSIX extension to the C standard. However, this - implementation presently treats it as a no-op, which - is the default behavior for the C locale, anyway. (If - it did what it is supposed to, when <[type]> were <>, - <>, <>, <>, <>, <>, or <>, the - integer portion of the conversion would be formatted - with thousands' grouping wide characters.) - - o - - The result of the conversion is left - justified, and the right is padded with - blanks. If you do not use this flag, the - result is right justified, and padded on the - left. - - o + - The result of a signed conversion (as - determined by <[type]> of <>, <>, <>, - <>, <>, <>, <>, <>, <>, or - <>) will always begin with a plus or minus - sign. (If you do not use this flag, positive - values do not begin with a plus sign.) - - o " " (space) - If the first character of a signed conversion - specification is not a sign, or if a signed - conversion results in no characters, the - result will begin with a space. If the space - ( ) flag and the plus (<<+>>) flag both - appear, the space flag is ignored. - - o 0 - If the <[type]> character is <>, <>, - <>, <>, <>, <>, <>, <>, - <>, <>, <>, <>, <>, or <>: leading - zeros are used to pad the field width - (following any indication of sign or base); no - spaces are used for padding. If the zero - (<<0>>) and minus (<<->>) flags both appear, - the zero (<<0>>) flag will be ignored. For - <>, <>, <>, <>, <>, and <> - conversions, if a precision <[prec]> is - specified, the zero (<<0>>) flag is ignored. - - Note that <<0>> is interpreted as a flag, not - as the beginning of a field width. - - o # - The result is to be converted to an - alternative form, according to the <[type]> - character. - o- - - The alternative form output with the # flag depends on the <[type]> - character: - - o+ - o o - Increases precision to force the first - digit of the result to be a zero. - - o x - A non-zero result will have a <<0x>> - prefix. - - o X - A non-zero result will have a <<0X>> - prefix. - - o a, A, e, E, f, or F - The result will always contain a - decimal point even if no digits follow - the point. (Normally, a decimal point - appears only if a digit follows it.) - Trailing zeros are removed. - - o g or G - The result will always contain a - decimal point even if no digits follow - the point. Trailing zeros are not - removed. - - o all others - Undefined. - - o- - - - o <[width]> - - <[width]> is an optional minimum field width. You can - either specify it directly as a decimal integer, or - indirectly by using instead an asterisk (<<*>>), in - which case an <> argument is used as the field - width. If positional arguments are used, then the - width must also be specified positionally as <<*m$>>, - with m as a decimal integer. Negative field widths - are treated as specifying the minus (<<->>) flag for - left justfication, along with a positive field width. - The resulting format may be wider than the specified - width. - - o <[prec]> - - <[prec]> is an optional field; if present, it is - introduced with `<<.>>' (a period). You can specify - the precision either directly as a decimal integer or - indirectly by using an asterisk (<<*>>), in which case - an <> argument is used as the precision. If - positional arguments are used, then the precision must - also be specified positionally as <<*m$>>, with m as a - decimal integer. Supplying a negative precision is - equivalent to omitting the precision. If only a - period is specified the precision is zero. The effect - depends on the conversion <[type]>. - - o+ - o d, i, o, u, x, or X - Minimum number of digits to appear. If no - precision is given, defaults to 1. - - o a or A - Number of digits to appear after the decimal - point. If no precision is given, the - precision defaults to the minimum needed for - an exact representation. - - o e, E, f or F - Number of digits to appear after the decimal - point. If no precision is given, the - precision defaults to 6. - - o g or G - Maximum number of significant digits. A - precision of 0 is treated the same as a - precision of 1. If no precision is given, the - precision defaults to 6. - - o s or S - Maximum number of characters to print from the - string. If no precision is given, the entire - string is printed. - - o all others - undefined. - - o- - - o <[size]> - - <[size]> is an optional modifier that changes the data - type that the corresponding argument has. Behavior is - unspecified if a size is given that does not match the - <[type]>. - - o+ - o hh - With <>, <>, <>, <>, <>, or - <>, specifies that the argument should be - converted to a <> or <> before printing. - - With <>, specifies that the argument is a - pointer to a <>. - - o h - With <>, <>, <>, <>, <>, or - <>, specifies that the argument should be - converted to a <> or <> - before printing. - - With <>, specifies that the argument is a - pointer to a <>. - - o l - With <>, <>, <>, <>, <>, or - <>, specifies that the argument is a - <> or <>. - - With <>, specifies that the argument has - type <>. - - With <>, specifies that the argument is a - pointer to <>. - - With <>, specifies that the argument is a - pointer to a <>. - - With <>, <>, <>, <>, <>, <>, - <>, or <>, has no effect (because of - vararg promotion rules, there is no need to - distinguish between <> and <>). - - o ll - With <>, <>, <>, <>, <>, or - <>, specifies that the argument is a - <> or <>. - - With <>, specifies that the argument is a - pointer to a <>. - - o j - With <>, <>, <>, <>, <>, or - <>, specifies that the argument is an - <> or <>. - - With <>, specifies that the argument is a - pointer to an <>. - - o z - With <>, <>, <>, <>, <>, or - <>, specifies that the argument is a <>. - - With <>, specifies that the argument is a - pointer to a <>. - - o t - With <>, <>, <>, <>, <>, or - <>, specifies that the argument is a - <>. - - With <>, specifies that the argument is a - pointer to a <>. - - o L - With <>, <>, <>, <>, <>, <>, - <>, or <>, specifies that the argument - is a <>. - - o- - - o <[type]> - - <[type]> specifies what kind of conversion <> - performs. Here is a table of these: - - o+ - o % - Prints the percent character (<<%>>). - - o c - If no <> qualifier is present, the int argument shall - be converted to a wide character as if by calling - the btowc() function and the resulting wide character - shall be written. Otherwise, the wint_t argument - shall be converted to wchar_t, and written. - - o C - Short for <<%lc>>. A POSIX extension to the C standard. - - o s - If no <> qualifier is present, the application - shall ensure that the argument is a pointer to a - character array containing a character sequence - beginning in the initial shift state. Characters - from the array shall be converted as if by repeated - calls to the mbrtowc() function, with the conversion - state described by an mbstate_t object initialized to - zero before the first character is converted, and - written up to (but not including) the terminating - null wide character. If the precision is specified, - no more than that many wide characters shall be - written. If the precision is not specified, or is - greater than the size of the array, the application - shall ensure that the array contains a null wide - character. - - If an <> qualifier is present, the application - shall ensure that the argument is a pointer to an - array of type wchar_t. Wide characters from the array - shall be written up to (but not including) a - terminating null wide character. If no precision is - specified, or is greater than the size of the array, - the application shall ensure that the array contains - a null wide character. If a precision is specified, - no more than that many wide characters shall be - written. - - o S - Short for <<%ls>>. A POSIX extension to the C standard. - - o d or i - Prints a signed decimal integer; takes an - <>. Leading zeros are inserted as - necessary to reach the precision. A value of 0 with - a precision of 0 produces an empty string. - - o o - Prints an unsigned octal integer; takes an - <>. Leading zeros are inserted as - necessary to reach the precision. A value of 0 with - a precision of 0 produces an empty string. - - o u - Prints an unsigned decimal integer; takes an - <>. Leading zeros are inserted as - necessary to reach the precision. A value of 0 with - a precision of 0 produces an empty string. - - o x - Prints an unsigned hexadecimal integer (using - <> as digits beyond <<9>>); takes an - <>. Leading zeros are inserted as - necessary to reach the precision. A value of 0 with - a precision of 0 produces an empty string. - - o X - Like <>, but uses <> as digits - beyond <<9>>. - - o f - Prints a signed value of the form - <<[-]9999.9999>>, with the precision - determining how many digits follow the decimal - point; takes a <> (remember that - <> promotes to <> as a vararg). - The low order digit is rounded to even. If - the precision results in at most DECIMAL_DIG - digits, the result is rounded correctly; if - more than DECIMAL_DIG digits are printed, the - result is only guaranteed to round back to the - original value. - - If the value is infinite, the result is - <>, and no zero padding is performed. If - the value is not a number, the result is - <>, and no zero padding is performed. - - o F - Like <>, but uses <> and <> for - non-finite numbers. - - o e - Prints a signed value of the form - <<[-]9.9999e[+|-]999>>; takes a <>. - The digit before the decimal point is non-zero - if the value is non-zero. The precision - determines how many digits appear between - <<.>> and <>, and the exponent always - contains at least two digits. The value zero - has an exponent of zero. If the value is not - finite, it is printed like <>. - - o E - Like <>, but using <> to introduce the - exponent, and like <> for non-finite - values. - - o g - Prints a signed value in either <> or <> - form, based on the given value and - precision---an exponent less than -4 or - greater than the precision selects the <> - form. Trailing zeros and the decimal point - are printed only if necessary; takes a - <>. - - o G - Like <>, except use <> or <> form. - - o a - Prints a signed value of the form - <<[-]0x1.ffffp[+|-]9>>; takes a <>. - The letters <> are used for digits - beyond <<9>>. The precision determines how - many digits appear after the decimal point. - The exponent contains at least one digit, and - is a decimal value representing the power of - 2; a value of 0 has an exponent of 0. - Non-finite values are printed like <>. - - o A - Like <>, except uses <>, <

>, and - <> instead of lower case. - - o n - Takes a pointer to <>, and stores a count - of the number of bytes written so far. No - output is created. - - o p - Takes a pointer to <>, and prints it in - an implementation-defined format. This - implementation is similar to <<%#tx>>), except - that <<0x>> appears even for the NULL pointer. - - o m - Prints the output of <>; no - argument is required. A GNU extension. - - o- - O- - - <<_wprintf_r>>, <<_fwprintf_r>>, <<_swprintf_r>>, are simply - reentrant versions of the functions above. - -RETURNS -On success, <> return the number of wide characters in -the output string, except the concluding <> is not counted. -<> and <> return the number of characters transmitted. - -If an error occurs, the result of <>, <>, and -<> is a negative value. For <> and <>, -<> may be set according to <>. For <>, <> -may be set to EOVERFLOW if <[size]> is greater than INT_MAX / sizeof (wchar_t), -or when the output does not fit into <[size]> wide characters (including the -terminating wide <>). - -BUGS -The ``''' (quote) flag does not work when locale's thousands_sep is not empty. - -PORTABILITY -POSIX-1.2008 with extensions; C99 (compliant except for POSIX extensions). - -Depending on how newlib was configured, not all format specifiers are -supported. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include "local.h" - -/* NOTE: _swprintf_r() should be identical to swprintf() except for the - * former having ptr as a parameter and the latter needing to declare it as - * a variable set to _REENT. */ - -int -_swprintf_r (struct _reent *ptr, - wchar_t *str, - size_t size, - const wchar_t *fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - if (size > INT_MAX / sizeof (wchar_t)) - { - _REENT_ERRNO(ptr) = EOVERFLOW; /* POSIX extension */ - return EOF; - } - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = (size > 0 ? (size - 1) * sizeof (wchar_t) : 0); - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfwprintf_r (ptr, &f, fmt, ap); - va_end (ap); - /* _svfwprintf_r() does not put in a terminating NUL, so add one if - * appropriate, which is whenever size is > 0. _svfwprintf_r() stops - * after n-1, so always just put at the end. */ - if (size > 0) { - *(wchar_t *)f._p = L'\0'; /* terminate the string */ - } - if(ret >= size) { - /* _svfwprintf_r() returns how many wide characters it would have printed - * if there were enough space. Return an error if too big to fit in str, - * unlike snprintf, which returns the size needed. */ - _REENT_ERRNO(ptr) = EOVERFLOW; /* POSIX extension */ - ret = -1; - } - return (ret); -} - -#ifndef _REENT_ONLY - -int -swprintf (wchar_t *__restrict str, - size_t size, - const wchar_t *__restrict fmt, ...) -{ - int ret; - va_list ap; - FILE f; - struct _reent *ptr = _REENT; - - if (size > INT_MAX / sizeof (wchar_t)) - { - _REENT_ERRNO(ptr) = EOVERFLOW; /* POSIX extension */ - return EOF; - } - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = (size > 0 ? (size - 1) * sizeof (wchar_t) : 0); - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = _svfwprintf_r (ptr, &f, fmt, ap); - va_end (ap); - /* _svfwprintf_r() does not put in a terminating NUL, so add one if - * appropriate, which is whenever size is > 0. _svfwprintf_r() stops - * after n-1, so always just put at the end. */ - if (size > 0) { - *(wchar_t *)f._p = L'\0'; /* terminate the string */ - } - if(ret >= size) { - /* _svfwprintf_r() returns how many wide characters it would have printed - * if there were enough space. Return an error if too big to fit in str, - * unlike snprintf, which returns the size needed. */ - _REENT_ERRNO(ptr) = EOVERFLOW; /* POSIX extension */ - ret = -1; - } - return (ret); -} - -#endif diff --git a/lib/stdio/swscanf.c b/lib/stdio/swscanf.c deleted file mode 100644 index 578ac3c..0000000 --- a/lib/stdio/swscanf.c +++ /dev/null @@ -1,459 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>, <>---scan and format wide character input - -INDEX - wscanf -INDEX - _wscanf_r -INDEX - fwscanf -INDEX - _fwscanf_r -INDEX - swscanf -INDEX - _swscanf_r - -SYNOPSIS - #include - - int wscanf(const wchar_t *__restrict <[format]>, ...); - int fwscanf(FILE *__restrict <[fd]>, - const wchar_t *__restrict <[format]>, ...); - int swscanf(const wchar_t *__restrict <[str]>, - const wchar_t *__restrict <[format]>, ...); - - int _wscanf_r(struct _reent *<[ptr]>, const wchar_t *<[format]>, ...); - int _fwscanf_r(struct _reent *<[ptr]>, FILE *<[fd]>, - const wchar_t *<[format]>, ...); - int _swscanf_r(struct _reent *<[ptr]>, const wchar_t *<[str]>, - const wchar_t *<[format]>, ...); - -DESCRIPTION - <> scans a series of input fields from standard input, - one wide character at a time. Each field is interpreted according to - a format specifier passed to <> in the format string at - <<*<[format]>>>. <> stores the interpreted input from - each field at the address passed to it as the corresponding argument - following <[format]>. You must supply the same number of - format specifiers and address arguments as there are input fields. - - There must be sufficient address arguments for the given format - specifiers; if not the results are unpredictable and likely - disasterous. Excess address arguments are merely ignored. - - <> often produces unexpected results if the input diverges from - an expected pattern. Since the combination of <> or <> - followed by <> is safe and easy, that is the preferred way - to be certain that a program is synchronized with input at the end - of a line. - - <> and <> are identical to <>, other than the - source of input: <> reads from a file, and <> - from a string. - - The routines <<_wscanf_r>>, <<_fwscanf_r>>, and <<_swscanf_r>> are reentrant - versions of <>, <>, and <> that take an additional - first argument pointing to a reentrancy structure. - - The string at <<*<[format]>>> is a wide character sequence composed - of zero or more directives. Directives are composed of - one or more whitespace characters, non-whitespace characters, - and format specifications. - - Whitespace characters are blank (<< >>), tab (<<\t>>), or - newline (<<\n>>). - When <> encounters a whitespace character in the format string - it will read (but not store) all consecutive whitespace characters - up to the next non-whitespace character in the input. - - Non-whitespace characters are all other ASCII characters except the - percent sign (<<%>>). When <> encounters a non-whitespace - character in the format string it will read, but not store - a matching non-whitespace character. - - Format specifications tell <> to read and convert characters - from the input field into specific types of values, and store then - in the locations specified by the address arguments. - - Trailing whitespace is left unread unless explicitly - matched in the format string. - - The format specifiers must begin with a percent sign (<<%>>) - and have the following form: - -. %[*][<[width]>][<[size]>]<[type]> - - Each format specification begins with the percent character (<<%>>). - The other fields are: - O+ - o * - - an optional marker; if present, it suppresses interpretation and - assignment of this input field. - - o <[width]> - - an optional maximum field width: a decimal integer, - which controls the maximum number of characters that - will be read before converting the current input field. If the - input field has fewer than <[width]> characters, <> - reads all the characters in the field, and then - proceeds with the next field and its format specification. - - If a whitespace or a non-convertable wide character occurs - before <[width]> character are read, the characters up - to that character are read, converted, and stored. - Then <> proceeds to the next format specification. - - o <[size]> - - <>, <>, <>, <>, <>, and <> are optional size - characters which override the default way that <> - interprets the data type of the corresponding argument. - - @multitable @columnfractions 0.18 0.30 0.52 - @headitem - Modifier - @tab - Type(s) - @tab - @item - hh - @tab - d, i, o, u, x, n - @tab - convert input to char, store in char object - @item - h - @tab - d, i, o, u, x, n - @tab - convert input to short, store in short object - @item - h - @tab - e, f, c, s, p - @tab - no effect - @item - j - @tab - d, i, o, u, x, n - @tab - convert input to intmax_t, store in intmax_t object - @item - j - @tab - all others - @tab - no effect - @item - l - @tab - d, i, o, u, x, n - @tab - convert input to long, store in long object - @item - l - @tab - e, f, g - @tab - convert input to double, store in a double object - @item - l - @tab - c, s, [ - @tab - the input is stored in a wchar_t object - @item - l - @tab - p - @tab - no effect - @item - ll - @tab - d, i, o, u, x, n - @tab - convert to long long, store in long long object - @item - L - @tab - d, i, o, u, x, n - @tab - convert to long long, store in long long object - @item - L - @tab - e, f, g, E, G - @tab - convert to long double, store in long double object - @item - L - @tab - all others - @tab - no effect - @item - t - @tab - d, i, o, u, x, n - @tab - convert input to ptrdiff_t, store in ptrdiff_t object - @item - t - @tab - all others - @tab - no effect - @item - z - @tab - d, i, o, u, x, n - @tab - convert input to size_t, store in size_t object - @item - z - @tab - all others - @tab - no effect - @end multitable - - o <[type]> - - A character to specify what kind of conversion - <> performs. Here is a table of the conversion - characters: - - o+ - o % - No conversion is done; the percent character (<<%>>) is stored. - - o c - Scans one wide character. Corresponding <[arg]>: <<(char *arg)>>. - Otherwise, if an <> specifier is present, the corresponding - <[arg]> is a <<(wchar_t *arg)>>. - - o s - Reads a character string into the array supplied. - Corresponding <[arg]>: <<(char arg[])>>. - If an <> specifier is present, the corresponding <[arg]> is a <<(wchar_t *arg)>>. - - o [<[pattern]>] - Reads a non-empty character string into memory - starting at <[arg]>. This area must be large - enough to accept the sequence and a - terminating null character which will be added - automatically. (<[pattern]> is discussed in the paragraph following - this table). Corresponding <[arg]>: <<(char *arg)>>. - If an <> specifier is present, the corresponding <[arg]> is - a <<(wchar_t *arg)>>. - - o d - Reads a decimal integer into the corresponding <[arg]>: <<(int *arg)>>. - - o o - Reads an octal integer into the corresponding <[arg]>: <<(int *arg)>>. - - o u - Reads an unsigned decimal integer into the corresponding - <[arg]>: <<(unsigned int *arg)>>. - - o x,X - Read a hexadecimal integer into the corresponding <[arg]>: - <<(int *arg)>>. - - o e, f, g - Read a floating-point number into the corresponding <[arg]>: - <<(float *arg)>>. - - o E, F, G - Read a floating-point number into the corresponding <[arg]>: - <<(double *arg)>>. - - o i - Reads a decimal, octal or hexadecimal integer into the - corresponding <[arg]>: <<(int *arg)>>. - - o n - Stores the number of characters read in the corresponding - <[arg]>: <<(int *arg)>>. - - o p - Stores a scanned pointer. ANSI C leaves the details - to each implementation; this implementation treats - <<%p>> exactly the same as <<%U>>. Corresponding - <[arg]>: <<(void **arg)>>. - o- - - A <[pattern]> of characters surrounded by square brackets can be used - instead of the <> type character. <[pattern]> is a set of - characters which define a search set of possible characters making up - the <> input field. If the first character in the brackets is a - caret (<<^>>), the search set is inverted to include all ASCII characters - except those between the brackets. There is no range facility as is - defined in the corresponding non-wide character scanf functions. - Ranges are not part of the POSIX standard. - - Here are some <[pattern]> examples: - o+ - o %[abcd] - matches wide character strings containing only - <>, <>, <>, and <>. - - o %[^abcd] - matches wide character strings containing any characters except - <>, <>, <>, or <>. - - o %[A-DW-Z] - Note: No wide character ranges, so this expression matches wide - character strings containing <>, <<->>, <>, <>, <>. - o- - - Floating point numbers (for field types <>, <>, <>, <>, - <>, <>) must correspond to the following general form: - -. [+/-] ddddd[.]ddd [E|e[+|-]ddd] - - where objects inclosed in square brackets are optional, and <> - represents decimal, octal, or hexadecimal digits. - O- - -RETURNS - <> returns the number of input fields successfully - scanned, converted and stored; the return value does - not include scanned fields which were not stored. - - If <> attempts to read at end-of-file, the return - value is <>. - - If no fields were stored, the return value is <<0>>. - - <> might stop scanning a particular field before - reaching the normal field end character, or may - terminate entirely. - - <> stops scanning and storing the current field - and moves to the next input field (if any) - in any of the following situations: - - O+ - o The assignment suppressing character (<<*>>) appears - after the <<%>> in the format specification; the current - input field is scanned but not stored. - - o <[width]> characters have been read (<[width]> is a - width specification, a positive decimal integer). - - o The next wide character read cannot be converted - under the the current format (for example, - if a <> is read when the format is decimal). - - o The next wide character in the input field does not appear - in the search set (or does appear in the inverted search set). - O- - - When <> stops scanning the current input field for one of - these reasons, the next character is considered unread and - used as the first character of the following input field, or the - first character in a subsequent read operation on the input. - - <> will terminate under the following circumstances: - - O+ - o The next wide character in the input field conflicts - with a corresponding non-whitespace character in the - format string. - - o The next wide character in the input field is <>. - - o The format string has been exhausted. - O- - - When the format string contains a wide character sequence that is - not part of a format specification, the same wide character - sequence must appear in the input; <> will - scan but not store the matched characters. If a - conflict occurs, the first conflicting wide character remains in the - input as if it had never been read. - -PORTABILITY -<> is C99, POSIX-1.2008. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -swscanf (const wchar_t *__restrict str, const wchar_t *__restrict fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - f._flags = __SRD | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._r = wcslen (str) * sizeof (wchar_t); - f._read = __seofread; - f._ub._base = NULL; - f._lb._base = NULL; - f._flags2 = 0; - f._ur = 0; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = __ssvfwscanf_r (_REENT, &f, fmt, ap); - va_end (ap); - return ret; -} - -#endif /* !_REENT_ONLY */ - -int -_swscanf_r (struct _reent *ptr, const wchar_t *str, const wchar_t *fmt, ...) -{ - int ret; - va_list ap; - FILE f; - - f._flags = __SRD | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._r = wcslen (str) * sizeof (wchar_t); - f._read = __seofread; - f._ub._base = NULL; - f._lb._base = NULL; - f._file = -1; /* No file. */ - va_start (ap, fmt); - ret = __ssvfwscanf_r (ptr, &f, fmt, ap); - va_end (ap); - return ret; -} diff --git a/lib/stdio/tmpfile.c b/lib/stdio/tmpfile.c deleted file mode 100644 index 5fe6e3b..0000000 --- a/lib/stdio/tmpfile.c +++ /dev/null @@ -1,88 +0,0 @@ -/* -FUNCTION -<>---create a temporary file - -INDEX - tmpfile -INDEX - _tmpfile_r - -SYNOPSIS - #include - FILE *tmpfile(void); - - FILE *_tmpfile_r(struct _reent *<[reent]>); - -DESCRIPTION -Create a temporary file (a file which will be deleted automatically), -using a name generated by <>. The temporary file is opened with -the mode <<"wb+">>, permitting you to read and write anywhere in it -as a binary file (without any data transformations the host system may -perform for text files). - -The alternate function <<_tmpfile_r>> is a reentrant version. The -argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -<> normally returns a pointer to the temporary file. If no -temporary file could be created, the result is NULL, and <> -records the reason for failure. - -PORTABILITY -Both ANSI C and the System V Interface Definition (Issue 2) require -<>. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>, <>, <>. - -<> also requires the global pointer <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include - -#ifndef O_BINARY -# define O_BINARY 0 -#endif - -FILE * -_tmpfile_r (struct _reent *ptr) -{ - FILE *fp; - int e; - char *f; - char buf[L_tmpnam]; - int fd; - - do - { - if ((f = _tmpnam_r (ptr, buf)) == NULL) - return NULL; - fd = _open_r (ptr, f, O_RDWR | O_CREAT | O_EXCL | O_BINARY, - S_IRUSR | S_IWUSR); - } - while (fd < 0 && _REENT_ERRNO(ptr) == EEXIST); - if (fd < 0) - return NULL; - fp = _fdopen_r (ptr, fd, "wb+"); - e = _REENT_ERRNO(ptr); - if (!fp) - _close_r (ptr, fd); - (void) _remove_r (ptr, f); - _REENT_ERRNO(ptr) = e; - return fp; -} - -#ifndef _REENT_ONLY - -FILE * -tmpfile (void) -{ - return _tmpfile_r (_REENT); -} - -#endif diff --git a/lib/stdio/tmpnam.c b/lib/stdio/tmpnam.c deleted file mode 100644 index dc04cf3..0000000 --- a/lib/stdio/tmpnam.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - * tmpname.c - * Original Author: G. Haley - */ -/* -FUNCTION -<>, <>---name for a temporary file - -INDEX - tmpnam -INDEX - tempnam -INDEX - _tmpnam_r -INDEX - _tempnam_r - -SYNOPSIS - #include - char *tmpnam(char *<[s]>); - char *tempnam(char *<[dir]>, char *<[pfx]>); - char *_tmpnam_r(struct _reent *<[reent]>, char *<[s]>); - char *_tempnam_r(struct _reent *<[reent]>, char *<[dir]>, char *<[pfx]>); - -DESCRIPTION -Use either of these functions to generate a name for a temporary file. -The generated name is guaranteed to avoid collision with other files -(for up to <> calls of either function). - -<> generates file names with the value of <> -(defined in `<>') as the leading directory component of the path. - -You can use the <> argument <[s]> to specify a suitable area -of memory for the generated filename; otherwise, you can call -<> to use an internal static buffer. - -<> allows you more control over the generated filename: you -can use the argument <[dir]> to specify the path to a directory for -temporary files, and you can use the argument <[pfx]> to specify a -prefix for the base filename. - -If <[dir]> is <>, <> will attempt to use the value of -environment variable <> instead; if there is no such value, -<> uses the value of <> (defined in `<>'). - -If you don't need any particular prefix to the basename of temporary -files, you can pass <> as the <[pfx]> argument to <>. - -<<_tmpnam_r>> and <<_tempnam_r>> are reentrant versions of <> -and <> respectively. The extra argument <[reent]> is a -pointer to a reentrancy structure. - -WARNINGS -The generated filenames are suitable for temporary files, but do not -in themselves make files temporary. Files with these names must still -be explicitly removed when you no longer want them. - -If you supply your own data area <[s]> for <>, you must ensure -that it has room for at least <> elements of type <>. - -RETURNS -Both <> and <> return a pointer to the newly -generated filename. - -PORTABILITY -ANSI C requires <>, but does not specify the use of -<>. The System V Interface Definition (Issue 2) requires -both <> and <>. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>, <>, <>. - -The global pointer <> is also required. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include - -#ifdef _REENT_THREAD_LOCAL -_Thread_local int _tls_inc; -_Thread_local char _tls_emergency[_REENT_EMERGENCY_SIZE]; -#endif - -/* Try to open the file specified, if it can't be opened then try - another one. Return nonzero if successful, otherwise zero. */ - -static int -worker (struct _reent *ptr, - char *result, - const char *part1, - const char *part2, - int part3, - int *part4) -{ - /* Generate the filename and make sure that there isn't one called - it already. */ - - while (1) - { - int t; - _sprintf_r (ptr, result, "%s/%s%x.%x", part1, part2, part3, *part4); - (*part4)++; - t = _open_r (ptr, result, O_RDONLY, 0); - if (t == -1) - { - if (_REENT_ERRNO(ptr) == ENOSYS) - { - result[0] = '\0'; - return 0; - } - break; - } - _close_r (ptr, t); - } - return 1; -} - -char * -_tmpnam_r (struct _reent *p, - char *s) -{ - char *result; - int pid; - - if (s == NULL) - { - /* ANSI states we must use an internal static buffer if s is NULL */ - _REENT_CHECK_EMERGENCY(p); - result = _REENT_EMERGENCY(p); - } - else - { - result = s; - } - pid = _getpid_r (p); - - if (worker (p, result, P_tmpdir, "t", pid, &_REENT_INC(p))) - { - _REENT_INC(p)++; - return result; - } - - return NULL; -} - -char * -_tempnam_r (struct _reent *p, - const char *dir, - const char *pfx) -{ - char *filename; - int length; - const char *prefix = (pfx) ? pfx : ""; - if (dir == NULL && (dir = getenv ("TMPDIR")) == NULL) - dir = P_tmpdir; - - /* two 8 digit numbers + . / */ - length = strlen (dir) + strlen (prefix) + (4 * sizeof (int)) + 2 + 1; - - filename = _malloc_r (p, length); - if (filename) - { - if (! worker (p, filename, dir, prefix, - _getpid_r (p) ^ (int) (_POINTER_INT) p, &_REENT_INC(p))) - return NULL; - } - return filename; -} - -#ifndef _REENT_ONLY - -char * -tempnam (const char *dir, - const char *pfx) -{ - return _tempnam_r (_REENT, dir, pfx); -} - -char * -tmpnam (char *s) -{ - return _tmpnam_r (_REENT, s); -} - -#endif diff --git a/lib/stdio/ungetc.c b/lib/stdio/ungetc.c deleted file mode 100644 index 533c28e..0000000 --- a/lib/stdio/ungetc.c +++ /dev/null @@ -1,214 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* -FUNCTION -<>---push data back into a stream - -INDEX - ungetc -INDEX - _ungetc_r - -SYNOPSIS - #include - int ungetc(int <[c]>, FILE *<[stream]>); - - int _ungetc_r(struct _reent *<[reent]>, int <[c]>, FILE *<[stream]>); - -DESCRIPTION -<> is used to return bytes back to <[stream]> to be read again. -If <[c]> is EOF, the stream is unchanged. Otherwise, the unsigned -char <[c]> is put back on the stream, and subsequent reads will see -the bytes pushed back in reverse order. Pushed byes are lost if the -stream is repositioned, such as by <>, <>, or -<>. - -The underlying file is not changed, but it is possible to push back -something different than what was originally read. Ungetting a -character will clear the end-of-stream marker, and decrement the file -position indicator. Pushing back beyond the beginning of a file gives -unspecified behavior. - -The alternate function <<_ungetc_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -The character pushed back, or <> on error. - -PORTABILITY -ANSI C requires <>, but only requires a pushback buffer of one -byte; although this implementation can handle multiple bytes, not all -can. Pushing back a signed char is a common application bug. - -Supporting OS subroutines required: <>. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -/* - * Expand the ungetc buffer `in place'. That is, adjust fp->_p when - * the buffer moves, so that it points the same distance from the end, - * and move the bytes in the buffer around as necessary so that they - * are all at the end (stack-style). - */ - -/*static*/ -int -__submore (struct _reent *rptr, - register FILE *fp) -{ - register int i; - register unsigned char *p; - - if (fp->_ub._base == fp->_ubuf) - { - /* - * Get a new buffer (rather than expanding the old one). - */ - if ((p = (unsigned char *) _malloc_r (rptr, (size_t) BUFSIZ)) == NULL) - return EOF; - fp->_ub._base = p; - fp->_ub._size = BUFSIZ; - p += BUFSIZ - sizeof (fp->_ubuf); - for (i = sizeof (fp->_ubuf); --i >= 0;) - p[i] = fp->_ubuf[i]; - fp->_p = p; - return 0; - } - i = fp->_ub._size; - p = (unsigned char *) _realloc_r (rptr, (void *) (fp->_ub._base), i << 1); - if (p == NULL) - return EOF; - (void) memcpy ((void *) (p + i), (void *) p, (size_t) i); - fp->_p = p + i; - fp->_ub._base = p; - fp->_ub._size = i << 1; - return 0; -} - -int -_ungetc_r (struct _reent *rptr, - int c, - register FILE *fp) -{ - if (c == EOF) - return (EOF); - - /* Ensure stdio has been initialized. - ??? Might be able to remove this as some other stdio routine should - have already been called to get the char we are un-getting. */ - - CHECK_INIT (rptr, fp); - - _newlib_flockfile_start (fp); - - ORIENT (fp, -1); - - /* After ungetc, we won't be at eof anymore */ - fp->_flags &= ~__SEOF; - - if ((fp->_flags & __SRD) == 0) - { - /* - * Not already reading: no good unless reading-and-writing. - * Otherwise, flush any current write stuff. - */ - if ((fp->_flags & __SRW) == 0) - { - _newlib_flockfile_exit (fp); - return EOF; - } - if (fp->_flags & __SWR) - { - if (_fflush_r (rptr, fp)) - { - _newlib_flockfile_exit (fp); - return EOF; - } - fp->_flags &= ~__SWR; - fp->_w = 0; - fp->_lbfsize = 0; - } - fp->_flags |= __SRD; - } - c = (unsigned char) c; - - /* - * If we are in the middle of ungetc'ing, just continue. - * This may require expanding the current ungetc buffer. - */ - - if (HASUB (fp)) - { - if (fp->_r >= fp->_ub._size && __submore (rptr, fp)) - { - _newlib_flockfile_exit (fp); - return EOF; - } - *--fp->_p = c; - fp->_r++; - _newlib_flockfile_exit (fp); - return c; - } - - /* - * If we can handle this by simply backing up, do so, - * but never replace the original character. - * (This makes sscanf() work when scanning `const' data.) - */ - - if (fp->_bf._base != NULL && fp->_p > fp->_bf._base && fp->_p[-1] == c) - { - fp->_p--; - fp->_r++; - _newlib_flockfile_exit (fp); - return c; - } - - /* - * Create an ungetc buffer. - * Initially, we will use the `reserve' buffer. - */ - - fp->_ur = fp->_r; - fp->_up = fp->_p; - fp->_ub._base = fp->_ubuf; - fp->_ub._size = sizeof (fp->_ubuf); - fp->_ubuf[sizeof (fp->_ubuf) - 1] = c; - fp->_p = &fp->_ubuf[sizeof (fp->_ubuf) - 1]; - fp->_r = 1; - _newlib_flockfile_end (fp); - return c; -} - -#ifndef _REENT_ONLY -int -ungetc (int c, - register FILE *fp) -{ - return _ungetc_r (_REENT, c, fp); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/ungetwc.c b/lib/stdio/ungetwc.c deleted file mode 100644 index 16d37f2..0000000 --- a/lib/stdio/ungetwc.c +++ /dev/null @@ -1,115 +0,0 @@ -/*- - * Copyright (c) 2002-2004 Tim J. Robbins. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* -FUNCTION -<>---push wide character data back into a stream - -INDEX - ungetwc -INDEX - _ungetwc_r - -SYNOPSIS - #include - #include - wint_t ungetwc(wint_t <[wc]>, FILE *<[stream]>); - - wint_t _ungetwc_r(struct _reent *<[reent]>, wint_t <[wc]>, FILE *<[stream]>); - -DESCRIPTION -<> is used to return wide characters back to <[stream]> to be -read again. If <[wc]> is WEOF, the stream is unchanged. Otherwise, the -wide character <[wc]> is put back on the stream, and subsequent reads will see -the wide chars pushed back in reverse order. Pushed wide chars are lost if the -stream is repositioned, such as by <>, <>, or -<>. - -The underlying file is not changed, but it is possible to push back -something different than what was originally read. Ungetting a -character will clear the end-of-stream marker, and decrement the file -position indicator. Pushing back beyond the beginning of a file gives -unspecified behavior. - -The alternate function <<_ungetwc_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -The wide character pushed back, or <> on error. - -PORTABILITY -C99 -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include "local.h" - -wint_t -_ungetwc_r (struct _reent *ptr, - wint_t wc, - register FILE *fp) -{ - char buf[MB_LEN_MAX]; - size_t len; - - _newlib_flockfile_start (fp); - ORIENT (fp, 1); - if (wc == WEOF) - wc = WEOF; - else if ((len = _wcrtomb_r(ptr, buf, wc, &fp->_mbstate)) == (size_t)-1) - { - fp->_flags |= __SERR; - wc = WEOF; - } - else - while (len-- != 0) - if (_ungetc_r(ptr, (unsigned char)buf[len], fp) == EOF) - { - wc = WEOF; - break; - } - _newlib_flockfile_end (fp); - return wc; -} - -/* - * MT-safe version. - */ -wint_t -ungetwc (wint_t wc, - FILE *fp) -{ - struct _reent *reent = _REENT; - - CHECK_INIT (reent, fp); - return _ungetwc_r (reent, wc, fp); -} diff --git a/lib/stdio/vasiprintf.c b/lib/stdio/vasiprintf.c deleted file mode 100644 index 1deb2db..0000000 --- a/lib/stdio/vasiprintf.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 1990, 2007 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* This code was based on vsiprintf.c */ -/* doc in vfprintf.c */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include - -#include "local.h" - -#ifndef _REENT_ONLY - -int -vasiprintf (char **strp, - const char *fmt, - va_list ap) -{ - return _vasiprintf_r (_REENT, strp, fmt, ap); -} - -#endif /* !_REENT_ONLY */ - -int -_vasiprintf_r (struct _reent *ptr, - char **strp, - const char *fmt, - va_list ap) -{ - int ret; - FILE f; - - f._flags = __SWR | __SSTR | __SMBF ; - f._bf._base = f._p = NULL; - f._bf._size = f._w = 0; - f._file = -1; /* No file. */ - ret = _svfiprintf_r (ptr, &f, fmt, ap); - if (ret >= 0) - { - *f._p = 0; - *strp = (char *) f._bf._base; - } - return ret; -} diff --git a/lib/stdio/vasniprintf.c b/lib/stdio/vasniprintf.c deleted file mode 100644 index b24cd96..0000000 --- a/lib/stdio/vasniprintf.c +++ /dev/null @@ -1,69 +0,0 @@ -/* Copyright (C) 2007, 2008 Eric Blake - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ -/* This code was derived from asprintf.c */ -/* doc in viprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -char * -_vasniprintf_r (struct _reent *ptr, - char *buf, - size_t *lenp, - const char *fmt, - va_list ap) -{ - int ret; - FILE f; - size_t len = *lenp; - - if (buf && len) - { - /* mark an existing buffer, but allow allocation of larger string */ - f._flags = __SWR | __SSTR | __SOPT; - } - else - { - /* mark a zero-length reallocatable buffer */ - f._flags = __SWR | __SSTR | __SMBF; - len = 0; - buf = NULL; - } - f._bf._base = f._p = (unsigned char *) buf; - /* For now, inherit the 32-bit signed limit of FILE._bf._size. - FIXME - it would be nice to rewrite sys/reent.h to support size_t - for _size. */ - if (len > INT_MAX) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - return NULL; - } - f._bf._size = f._w = len; - f._file = -1; /* No file. */ - ret = _svfiprintf_r (ptr, &f, fmt, ap); - if (ret < 0) - return NULL; - *lenp = ret; - *f._p = '\0'; - return (char *) f._bf._base; -} - -#ifndef _REENT_ONLY - -char * -vasniprintf (char *buf, - size_t *lenp, - const char *fmt, - va_list ap) -{ - return _vasniprintf_r (_REENT, buf, lenp, fmt, ap); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/vasnprintf.c b/lib/stdio/vasnprintf.c deleted file mode 100644 index b3787ec..0000000 --- a/lib/stdio/vasnprintf.c +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright (C) 2007 Eric Blake - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ -/* This code was derived from asprintf.c */ -/* doc in vfprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -char * -_vasnprintf_r (struct _reent *ptr, - char *buf, - size_t *lenp, - const char *fmt, - va_list ap) -{ - int ret; - FILE f; - size_t len = *lenp; - - if (buf && len) - { - /* mark an existing buffer, but allow allocation of larger string */ - f._flags = __SWR | __SSTR | __SOPT; - } - else - { - /* mark a zero-length reallocatable buffer */ - f._flags = __SWR | __SSTR | __SMBF; - len = 0; - buf = NULL; - } - f._bf._base = f._p = (unsigned char *) buf; - /* For now, inherit the 32-bit signed limit of FILE._bf._size. - FIXME - it would be nice to rewrite sys/reent.h to support size_t - for _size. */ - if (len > INT_MAX) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - return NULL; - } - f._bf._size = f._w = len; - f._file = -1; /* No file. */ - ret = _svfprintf_r (ptr, &f, fmt, ap); - if (ret < 0) - return NULL; - *lenp = ret; - *f._p = '\0'; - return (char *) f._bf._base; -} - -#ifdef _NANO_FORMATTED_IO -char * -_vasniprintf_r (struct _reent*, char *, size_t *, - const char *, __VALIST) - _ATTRIBUTE ((__alias__("_vasnprintf_r"))); -#endif - -#ifndef _REENT_ONLY - -char * -vasnprintf (char *buf, - size_t *lenp, - const char *fmt, - va_list ap) -{ - return _vasnprintf_r (_REENT, buf, lenp, fmt, ap); -} - -#ifdef _NANO_FORMATTED_IO -char * -vasniprintf (char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("vasnprintf"))); -#endif -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/vasprintf.c b/lib/stdio/vasprintf.c deleted file mode 100644 index d7ec9c8..0000000 --- a/lib/stdio/vasprintf.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (c) 1990, 2007 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* This code was based on vsprintf.c */ -/* doc in vfprintf.c */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include - -#include "local.h" - -#ifndef _REENT_ONLY - -int -vasprintf (char **strp, - const char *fmt, - va_list ap) -{ - return _vasprintf_r (_REENT, strp, fmt, ap); -} - -#ifdef _NANO_FORMATTED_IO -int -vasiprintf (char **, const char *, __VALIST) - _ATTRIBUTE ((__alias__("vasprintf"))); -#endif - -#endif /* !_REENT_ONLY */ - -int -_vasprintf_r (struct _reent *ptr, - char **strp, - const char *fmt, - va_list ap) -{ - int ret; - FILE f; - - f._flags = __SWR | __SSTR | __SMBF ; - f._bf._base = f._p = NULL; - f._bf._size = f._w = 0; - f._file = -1; /* No file. */ - ret = _svfprintf_r (ptr, &f, fmt, ap); - if (ret >= 0) - { - *f._p = 0; - *strp = (char *) f._bf._base; - } - return ret; -} - -#ifdef _NANO_FORMATTED_IO -int -_vasiprintf_r (struct _reent *, char **, const char *, __VALIST) - _ATTRIBUTE ((__alias__("_vasprintf_r"))); -#endif diff --git a/lib/stdio/vdiprintf.c b/lib/stdio/vdiprintf.c deleted file mode 100644 index 22a71b3..0000000 --- a/lib/stdio/vdiprintf.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2005, 2007 Shaun Jackman - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ -/* doc in diprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -int -_vdiprintf_r (struct _reent *ptr, - int fd, - const char *format, - va_list ap) -{ - char *p; - char buf[512]; - size_t n = sizeof buf; - - _REENT_SMALL_CHECK_INIT (ptr); - p = _vasniprintf_r (ptr, buf, &n, format, ap); - if (!p) - return -1; - n = _write_r (ptr, fd, p, n); - if (p != buf) - _free_r (ptr, p); - return n; -} - -#ifndef _REENT_ONLY - -int -vdiprintf (int fd, - const char *format, - va_list ap) -{ - return _vdiprintf_r (_REENT, fd, format, ap); -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/vdprintf.c b/lib/stdio/vdprintf.c deleted file mode 100644 index d22463e..0000000 --- a/lib/stdio/vdprintf.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Copyright 2005, 2007 Shaun Jackman - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ -/* doc in dprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -int -_vdprintf_r (struct _reent *ptr, - int fd, - const char *__restrict format, - va_list ap) -{ - char *p; - char buf[512]; - size_t n = sizeof buf; - - _REENT_SMALL_CHECK_INIT (ptr); - p = _vasnprintf_r (ptr, buf, &n, format, ap); - if (!p) - return -1; - n = _write_r (ptr, fd, p, n); - if (p != buf) - _free_r (ptr, p); - return n; -} - -#ifdef _NANO_FORMATTED_IO -int -_vdiprintf_r (struct _reent *, int, const char *, __VALIST) - _ATTRIBUTE ((__alias__("_vdprintf_r"))); -#endif - -#ifndef _REENT_ONLY - -int -vdprintf (int fd, - const char *__restrict format, - va_list ap) -{ - return _vdprintf_r (_REENT, fd, format, ap); -} - -#ifdef _NANO_FORMATTED_IO -int -vdiprintf (int, const char *, __VALIST) - _ATTRIBUTE ((__alias__("vdprintf"))); -#endif -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/vfieeefp.h b/lib/stdio/vfieeefp.h deleted file mode 100644 index e85cabb..0000000 --- a/lib/stdio/vfieeefp.h +++ /dev/null @@ -1,284 +0,0 @@ -/**************************************************************** - * - * The author of this software is David M. Gay. - * - * Copyright (c) 1991 by AT&T. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which 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 AUTHOR NOR AT&T MAKES ANY - * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY - * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - ***************************************************************/ - -/* Please send bug reports to - David M. Gay - AT&T Bell Laboratories, Room 2C-463 - 600 Mountain Avenue - Murray Hill, NJ 07974-2070 - U.S.A. - dmg@research.att.com or research!dmg - */ - -/* This header file is a modification of mprec.h that only contains floating - point union code. */ - -#include -#include -#include -#include -#include -#include -#include - -#ifdef __IEEE_LITTLE_ENDIAN -#define IEEE_8087 -#endif - -#ifdef __IEEE_BIG_ENDIAN -#define IEEE_MC68k -#endif - -#ifdef __Z8000__ -#define Just_16 -#endif - -#ifdef Unsigned_Shifts -#define Sign_Extend(a,b) if (b < 0) a |= (__uint32_t)0xffff0000; -#else -#define Sign_Extend(a,b) /*no-op*/ -#endif - -#if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(VAX) + defined(IBM) != 1 -Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined. -#endif - -#ifdef _WANT_IO_LONG_DOUBLE -/* If we are going to examine or modify specific bits in a long double using - the lword0 or lwordx macros, then we must wrap the long double inside - a union. This is necessary to avoid undefined behavior according to - the ANSI C spec. */ - -#ifdef IEEE_8087 -#if LDBL_MANT_DIG == 24 -struct ldieee -{ - unsigned manh:23; - unsigned exp:8; - unsigned sign:1; -} __packed; -#elif LDBL_MANT_DIG == 53 -struct ldieee -{ - unsigned manl:20; - unsigned manh:32; - unsigned exp:11; - unsigned sign:1; -} __packed; -#elif LDBL_MANT_DIG == 64 -struct ldieee -{ - unsigned manl:32; - unsigned manh:32; - unsigned exp:15; - unsigned sign:1; -} __packed; -#elif LDBL_MANT_DIG > 64 -struct ldieee -{ - unsigned manl3:16; - unsigned manl2:32; - unsigned manl:32; - unsigned manh:32; - unsigned exp:15; - unsigned sign:1; -} __packed; -#endif /* LDBL_MANT_DIG */ -#else /* !IEEE_8087 */ -#if LDBL_MANT_DIG == 24 -struct ldieee -{ - unsigned sign:1; - unsigned exp:8; - unsigned manh:23; -} __packed; -#elif LDBL_MANT_DIG == 53 -struct ldieee -{ - unsigned sign:1; - unsigned exp:11; - unsigned manh:32; - unsigned manl:20; -} __packed; -#elif LDBL_MANT_DIG == 64 -struct ldieee -{ - unsigned sign:1; - unsigned exp:15; - unsigned manh:32; - unsigned manl:32; -} __packed; -#elif LDBL_MANT_DIG > 64 -struct ldieee -{ - unsigned sign:1; - unsigned exp:15; - unsigned manh:32; - unsigned manl:32; - unsigned manl2:32; - unsigned manl3:16; -} __packed; -#endif /* LDBL_MANT_DIG */ -#endif /* !IEEE_8087 */ -#endif /* _WANT_IO_LONG_DOUBLE */ - -/* If we are going to examine or modify specific bits in a double using - the word0 and/or word1 macros, then we must wrap the double inside - a union. This is necessary to avoid undefined behavior according to - the ANSI C spec. */ -union double_union -{ - double d; - __uint32_t i[2]; -}; - -#ifdef IEEE_8087 -#define word0(x) (x.i[1]) -#define word1(x) (x.i[0]) -#else -#define word0(x) (x.i[0]) -#define word1(x) (x.i[1]) -#endif - -/* #define P DBL_MANT_DIG */ -/* Ten_pmax = floor(P*log(2)/log(5)) */ -/* Bletch = (highest power of 2 < DBL_MAX_10_EXP) / 16 */ -/* Quick_max = floor((P-1)*log(FLT_RADIX)/log(10) - 1) */ -/* Int_max = floor(P*log(FLT_RADIX)/log(10) - 1) */ - -#if defined(IEEE_8087) + defined(IEEE_MC68k) -#if defined (_DOUBLE_IS_32BITS) -#define Exp_shift 23 -#define Exp_shift1 23 -#define Exp_msk1 ((__uint32_t)0x00800000L) -#define Exp_msk11 ((__uint32_t)0x00800000L) -#define Exp_mask ((__uint32_t)0x7f800000L) -#define P 24 -#define Bias 127 -#define IEEE_Arith -#define Emin (-126) -#define Exp_1 ((__uint32_t)0x3f800000L) -#define Exp_11 ((__uint32_t)0x3f800000L) -#define Ebits 8 -#define Frac_mask ((__uint32_t)0x007fffffL) -#define Frac_mask1 ((__uint32_t)0x007fffffL) -#define Ten_pmax 10 -#define Sign_bit ((__uint32_t)0x80000000L) -#define Ten_pmax 10 -#define Bletch 2 -#define Bndry_mask ((__uint32_t)0x007fffffL) -#define Bndry_mask1 ((__uint32_t)0x007fffffL) -#define LSB 1 -#define Sign_bit ((__uint32_t)0x80000000L) -#define Log2P 1 -#define Tiny0 0 -#define Tiny1 1 -#define Quick_max 5 -#define Int_max 6 -#define Infinite(x) (word0(x) == ((__uint32_t)0x7f800000L)) -#undef word0 -#undef word1 - -#define word0(x) (x.i[0]) -#define word1(x) 0 -#else - -#define Exp_shift 20 -#define Exp_shift1 20 -#define Exp_msk1 ((__uint32_t)0x100000L) -#define Exp_msk11 ((__uint32_t)0x100000L) -#define Exp_mask ((__uint32_t)0x7ff00000L) -#define P 53 -#define Bias 1023 -#define IEEE_Arith -#define Emin (-1022) -#define Exp_1 ((__uint32_t)0x3ff00000L) -#define Exp_11 ((__uint32_t)0x3ff00000L) -#define Ebits 11 -#define Frac_mask ((__uint32_t)0xfffffL) -#define Frac_mask1 ((__uint32_t)0xfffffL) -#define Ten_pmax 22 -#define Bletch 0x10 -#define Bndry_mask ((__uint32_t)0xfffffL) -#define Bndry_mask1 ((__uint32_t)0xfffffL) -#define LSB 1 -#define Sign_bit ((__uint32_t)0x80000000L) -#define Log2P 1 -#define Tiny0 0 -#define Tiny1 1 -#define Quick_max 14 -#define Int_max 14 -#define Infinite(x) (word0(x) == ((__uint32_t)0x7ff00000L)) /* sufficient test for here */ -#endif - -#else -#undef Sudden_Underflow -#define Sudden_Underflow -#ifdef IBM -#define Exp_shift 24 -#define Exp_shift1 24 -#define Exp_msk1 ((__uint32_t)0x1000000L) -#define Exp_msk11 ((__uint32_t)0x1000000L) -#define Exp_mask ((__uint32_t)0x7f000000L) -#define P 14 -#define Bias 65 -#define Exp_1 ((__uint32_t)0x41000000L) -#define Exp_11 ((__uint32_t)0x41000000L) -#define Ebits 8 /* exponent has 7 bits, but 8 is the right value in b2d */ -#define Frac_mask ((__uint32_t)0xffffffL) -#define Frac_mask1 ((__uint32_t)0xffffffL) -#define Bletch 4 -#define Ten_pmax 22 -#define Bndry_mask ((__uint32_t)0xefffffL) -#define Bndry_mask1 ((__uint32_t)0xffffffL) -#define LSB 1 -#define Sign_bit ((__uint32_t)0x80000000L) -#define Log2P 4 -#define Tiny0 ((__uint32_t)0x100000L) -#define Tiny1 0 -#define Quick_max 14 -#define Int_max 15 -#else /* VAX */ -#define Exp_shift 23 -#define Exp_shift1 7 -#define Exp_msk1 0x80 -#define Exp_msk11 ((__uint32_t)0x800000L) -#define Exp_mask ((__uint32_t)0x7f80L) -#define P 56 -#define Bias 129 -#define Exp_1 ((__uint32_t)0x40800000L) -#define Exp_11 ((__uint32_t)0x4080L) -#define Ebits 8 -#define Frac_mask ((__uint32_t)0x7fffffL) -#define Frac_mask1 ((__uint32_t)0xffff007fL) -#define Ten_pmax 24 -#define Bletch 2 -#define Bndry_mask ((__uint32_t)0xffff007fL) -#define Bndry_mask1 ((__uint32_t)0xffff007fL) -#define LSB ((__uint32_t)0x10000L) -#define Sign_bit ((__uint32_t)0x8000L) -#define Log2P 1 -#define Tiny0 0x80 -#define Tiny1 0 -#define Quick_max 15 -#define Int_max 15 -#endif -#endif - - diff --git a/lib/stdio/vfiprintf.c b/lib/stdio/vfiprintf.c deleted file mode 100644 index 83394a6..0000000 --- a/lib/stdio/vfiprintf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define INTEGER_ONLY -#include "vfprintf.c" diff --git a/lib/stdio/vfiscanf.c b/lib/stdio/vfiscanf.c deleted file mode 100644 index 261122e..0000000 --- a/lib/stdio/vfiscanf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define INTEGER_ONLY -#include "vfscanf.c" diff --git a/lib/stdio/vfiwprintf.c b/lib/stdio/vfiwprintf.c deleted file mode 100644 index 32546b5..0000000 --- a/lib/stdio/vfiwprintf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define INTEGER_ONLY -#include "vfwprintf.c" diff --git a/lib/stdio/vfiwscanf.c b/lib/stdio/vfiwscanf.c deleted file mode 100644 index 8b96cd3..0000000 --- a/lib/stdio/vfiwscanf.c +++ /dev/null @@ -1,2 +0,0 @@ -#define INTEGER_ONLY -#include "vfwscanf.c" diff --git a/lib/stdio/vfprintf.c b/lib/stdio/vfprintf.c deleted file mode 100644 index 6a198e2..0000000 --- a/lib/stdio/vfprintf.c +++ /dev/null @@ -1,2345 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>, <>, <>, <>, <>---format argument list - -INDEX - vfprintf -INDEX - _vfprintf_r -INDEX - vprintf -INDEX - _vprintf_r -INDEX - vsprintf -INDEX - _vsprintf_r -INDEX - vsnprintf -INDEX - _vsnprintf_r -INDEX - vasprintf -INDEX - _vasprintf_r -INDEX - vasnprintf -INDEX - _vasnprintf_r - -SYNOPSIS - #include - #include - int vprintf(const char *<[fmt]>, va_list <[list]>); - int vfprintf(FILE *<[fp]>, const char *<[fmt]>, va_list <[list]>); - int vsprintf(char *<[str]>, const char *<[fmt]>, va_list <[list]>); - int vsnprintf(char *<[str]>, size_t <[size]>, const char *<[fmt]>, - va_list <[list]>); - int vasprintf(char **<[strp]>, const char *<[fmt]>, va_list <[list]>); - char *vasnprintf(char *<[str]>, size_t *<[size]>, const char *<[fmt]>, - va_list <[list]>); - - int _vprintf_r(struct _reent *<[reent]>, const char *<[fmt]>, - va_list <[list]>); - int _vfprintf_r(struct _reent *<[reent]>, FILE *<[fp]>, - const char *<[fmt]>, va_list <[list]>); - int _vsprintf_r(struct _reent *<[reent]>, char *<[str]>, - const char *<[fmt]>, va_list <[list]>); - int _vasprintf_r(struct _reent *<[reent]>, char **<[str]>, - const char *<[fmt]>, va_list <[list]>); - int _vsnprintf_r(struct _reent *<[reent]>, char *<[str]>, - size_t <[size]>, const char *<[fmt]>, va_list <[list]>); - char *_vasnprintf_r(struct _reent *<[reent]>, char *<[str]>, - size_t *<[size]>, const char *<[fmt]>, va_list <[list]>); - -DESCRIPTION -<>, <>, <>, <>, <>, -and <> are (respectively) variants of <>, -<>, <>, <>, <>, and -<>. They differ only in allowing their caller to pass the -variable argument list as a <> object (initialized by -<>) rather than directly accepting a variable number of -arguments. The caller is responsible for calling <>. - -<<_vprintf_r>>, <<_vfprintf_r>>, <<_vasprintf_r>>, <<_vsprintf_r>>, -<<_vsnprintf_r>>, and <<_vasnprintf_r>> are reentrant versions of the -above. - -RETURNS -The return values are consistent with the corresponding functions. - -PORTABILITY -ANSI C requires <>, <>, <>, and -<>. The remaining functions are newlib extensions. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -/*static char *sccsid = "from: @(#)vfprintf.c 5.50 (Berkeley) 12/16/92";*/ -static char *rcsid = "$Id$"; -#endif /* LIBC_SCCS and not lint */ - -/* - * Actual printf innards. - * - * This code is large and complicated... - */ -#include - -#ifdef INTEGER_ONLY -# define VFPRINTF vfiprintf -# ifdef STRING_ONLY -# define _VFPRINTF_R _svfiprintf_r -# else -# define _VFPRINTF_R _vfiprintf_r -# endif -#else -# define VFPRINTF vfprintf -# ifdef STRING_ONLY -# define _VFPRINTF_R _svfprintf_r -# else -# define _VFPRINTF_R _vfprintf_r -# endif -# ifndef NO_FLOATING_POINT -# define FLOATING_POINT -# endif -#endif - -#define _NO_POS_ARGS -#ifdef _WANT_IO_POS_ARGS -# undef _NO_POS_ARGS -#endif - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" -#include "../stdlib/local.h" -#include "fvwrite.h" -#include "vfieeefp.h" - -/* Currently a test is made to see if long double processing is warranted. - This could be changed in the future should the _ldtoa_r code be - preferred over _dtoa_r. */ -#define _NO_LONGDBL -#if defined _WANT_IO_LONG_DOUBLE && (LDBL_MANT_DIG > DBL_MANT_DIG) -#undef _NO_LONGDBL -#endif - -#define _NO_LONGLONG -#if defined _WANT_IO_LONG_LONG \ - && (defined __GNUC__ || __STDC_VERSION__ >= 199901L) -# undef _NO_LONGLONG -#endif - -#ifdef STRING_ONLY -# ifdef _FVWRITE_IN_STREAMIO -# define __SPRINT __ssprint_r -# else -# define __SPRINT __ssputs_r -# endif -#else -# ifdef _FVWRITE_IN_STREAMIO -# define __SPRINT __sprint_r -# else -# define __SPRINT __sfputs_r -# endif -#endif - -/* The __sprint_r/__ssprint_r functions are shared between all versions of - vfprintf and vfwprintf. They must only be defined once, which we do in - the INTEGER_ONLY versions here. */ -#ifdef STRING_ONLY -#ifdef INTEGER_ONLY -#ifndef _FVWRITE_IN_STREAMIO -int -__ssputs_r (struct _reent *ptr, - FILE *fp, - const char *buf, - size_t len) -{ - register int w; - - w = fp->_w; - if (len >= w && fp->_flags & (__SMBF | __SOPT)) { - /* must be asprintf family */ - unsigned char *str; - int curpos = (fp->_p - fp->_bf._base); - /* Choose a geometric growth factor to avoid - * quadratic realloc behavior, but use a rate less - * than (1+sqrt(5))/2 to accomodate malloc - * overhead. asprintf EXPECTS us to overallocate, so - * that it can add a trailing \0 without - * reallocating. The new allocation should thus be - * max(prev_size*1.5, curpos+len+1). */ - int newsize = fp->_bf._size * 3 / 2; - if (newsize < curpos + len + 1) - newsize = curpos + len + 1; - if (fp->_flags & __SOPT) - { - /* asnprintf leaves original buffer alone. */ - str = (unsigned char *)_malloc_r (ptr, newsize); - if (!str) - { - _REENT_ERRNO(ptr) = ENOMEM; - goto err; - } - memcpy (str, fp->_bf._base, curpos); - fp->_flags = (fp->_flags & ~__SOPT) | __SMBF; - } - else - { - str = (unsigned char *)_realloc_r (ptr, fp->_bf._base, - newsize); - if (!str) { - /* Free unneeded buffer. */ - _free_r (ptr, fp->_bf._base); - /* Ensure correct errno, even if free - * changed it. */ - _REENT_ERRNO(ptr) = ENOMEM; - goto err; - } - } - fp->_bf._base = str; - fp->_p = str + curpos; - fp->_bf._size = newsize; - w = len; - fp->_w = newsize - curpos; - } - if (len < w) - w = len; - (void)memmove ((void *) fp->_p, (void *) buf, (size_t) (w)); - fp->_w -= w; - fp->_p += w; - - return 0; - -err: - fp->_flags |= __SERR; - return EOF; -} -#endif - -int -__ssprint_r (struct _reent *ptr, - FILE *fp, - register struct __suio *uio) -{ - register size_t len; - register int w; - register struct __siov *iov; - register const char *p = NULL; - - iov = uio->uio_iov; - len = 0; - - if (uio->uio_resid == 0) { - uio->uio_iovcnt = 0; - return (0); - } - - do { - while (len == 0) { - p = iov->iov_base; - len = iov->iov_len; - iov++; - } - w = fp->_w; - if (len >= w && fp->_flags & (__SMBF | __SOPT)) { - /* must be asprintf family */ - unsigned char *str; - int curpos = (fp->_p - fp->_bf._base); - /* Choose a geometric growth factor to avoid - * quadratic realloc behavior, but use a rate less - * than (1+sqrt(5))/2 to accomodate malloc - * overhead. asprintf EXPECTS us to overallocate, so - * that it can add a trailing \0 without - * reallocating. The new allocation should thus be - * max(prev_size*1.5, curpos+len+1). */ - int newsize = fp->_bf._size * 3 / 2; - if (newsize < curpos + len + 1) - newsize = curpos + len + 1; - if (fp->_flags & __SOPT) - { - /* asnprintf leaves original buffer alone. */ - str = (unsigned char *)_malloc_r (ptr, newsize); - if (!str) - { - _REENT_ERRNO(ptr) = ENOMEM; - goto err; - } - memcpy (str, fp->_bf._base, curpos); - fp->_flags = (fp->_flags & ~__SOPT) | __SMBF; - } - else - { - str = (unsigned char *)_realloc_r (ptr, fp->_bf._base, - newsize); - if (!str) { - /* Free unneeded buffer. */ - _free_r (ptr, fp->_bf._base); - /* Ensure correct errno, even if free - * changed it. */ - _REENT_ERRNO(ptr) = ENOMEM; - goto err; - } - } - fp->_bf._base = str; - fp->_p = str + curpos; - fp->_bf._size = newsize; - w = len; - fp->_w = newsize - curpos; - } - if (len < w) - w = len; - (void)memmove ((void *) fp->_p, (void *) p, (size_t) (w)); - fp->_w -= w; - fp->_p += w; - w = len; /* pretend we copied all */ - p += w; - len -= w; - } while ((uio->uio_resid -= w) != 0); - - uio->uio_resid = 0; - uio->uio_iovcnt = 0; - return 0; - -err: - fp->_flags |= __SERR; - uio->uio_resid = 0; - uio->uio_iovcnt = 0; - return EOF; -} -#else /* !INTEGER_ONLY */ -#ifndef _FVWRITE_IN_STREAMIO -int __ssputs_r (struct _reent *, FILE *, const char *, size_t); -#endif -int __ssprint_r (struct _reent *, FILE *, register struct __suio *); -#endif /* !INTEGER_ONLY */ - -#else /* !STRING_ONLY */ -#ifdef INTEGER_ONLY - -#ifndef _FVWRITE_IN_STREAMIO -int -__sfputs_r (struct _reent *ptr, - FILE *fp, - const char *buf, - size_t len) -{ - register int i; - -#if defined _WIDE_ORIENT && (!defined _ELIX_LEVEL || _ELIX_LEVEL >= 4) - if (fp->_flags2 & __SWID) { - wchar_t *p; - - p = (wchar_t *) buf; - for (i = 0; i < (len / sizeof (wchar_t)); i++) { - if (_fputwc_r (ptr, p[i], fp) == WEOF) - return -1; - } - } else { -#else - { -#endif - for (i = 0; i < len; i++) { - if (_fputc_r (ptr, buf[i], fp) == EOF) - return -1; - } - } - return (0); -} -#endif -/* - * Flush out all the vectors defined by the given uio, - * then reset it so that it can be reused. - */ -int -__sprint_r (struct _reent *ptr, - FILE *fp, - register struct __suio *uio) -{ - register int err = 0; - - if (uio->uio_resid == 0) { - uio->uio_iovcnt = 0; - return (0); - } -#if defined _WIDE_ORIENT && (!defined _ELIX_LEVEL || _ELIX_LEVEL >= 4) - if (fp->_flags2 & __SWID) { - struct __siov *iov; - wchar_t *p; - int i, len; - - iov = uio->uio_iov; - for (; uio->uio_resid != 0; - uio->uio_resid -= len * sizeof (wchar_t), iov++) { - p = (wchar_t *) iov->iov_base; - len = iov->iov_len / sizeof (wchar_t); - for (i = 0; i < len; i++) { - if (_fputwc_r (ptr, p[i], fp) == WEOF) { - err = -1; - goto out; - } - } - } - } else -#endif - err = __sfvwrite_r(ptr, fp, uio); -out: - uio->uio_resid = 0; - uio->uio_iovcnt = 0; - return (err); -} -#else /* !INTEGER_ONLY */ -#ifndef _FVWRITE_IN_STREAMIO -int __sfputs_r (struct _reent *, FILE *, const char *buf, size_t); -#endif -int __sprint_r (struct _reent *, FILE *, register struct __suio *); -#endif /* !INTEGER_ONLY */ - -#ifdef _UNBUF_STREAM_OPT -/* - * Helper function for `fprintf to unbuffered unix file': creates a - * temporary buffer. We only work on write-only files; this avoids - * worries about ungetc buffers and so forth. - * - * Make sure to avoid inlining. - */ -_NOINLINE_STATIC int -__sbprintf (struct _reent *rptr, - register FILE *fp, - const char *fmt, - va_list ap) -{ - int ret; - FILE fake; - unsigned char buf[BUFSIZ]; - - /* copy the important variables */ - fake._flags = fp->_flags & ~__SNBF; - fake._flags2 = fp->_flags2; - fake._file = fp->_file; - fake._cookie = fp->_cookie; - fake._write = fp->_write; - - /* set up the buffer */ - fake._bf._base = fake._p = buf; - fake._bf._size = fake._w = sizeof (buf); - fake._lbfsize = 0; /* not actually used, but Just In Case */ -#ifndef __SINGLE_THREAD__ - __lock_init_recursive (fake._lock); -#endif - - /* do the work, then copy any error status */ - ret = _VFPRINTF_R (rptr, &fake, fmt, ap); - if (ret >= 0 && _fflush_r (rptr, &fake)) - ret = EOF; - if (fake._flags & __SERR) - fp->_flags |= __SERR; - -#ifndef __SINGLE_THREAD__ - __lock_close_recursive (fake._lock); -#endif - return (ret); -} -#endif /* _UNBUF_STREAM_OPT */ -#endif /* !STRING_ONLY */ - - -#if defined (FLOATING_POINT) || defined (_WANT_IO_C99_FORMATS) -# include -#endif -#ifdef FLOATING_POINT -# include - -/* For %La, an exponent of 15 bits occupies the exponent character, a - sign, and up to 5 digits. */ -# define MAXEXPLEN 7 -# define DEFPREC 6 - -# ifdef _NO_LONGDBL - -extern char *_dtoa_r (struct _reent *, double, int, - int, int *, int *, char **); - -# define _PRINTF_FLOAT_TYPE double -# define _DTOA_R _dtoa_r -# define FREXP frexp - -# else /* !_NO_LONGDBL */ - -extern char *_ldtoa_r (struct _reent *, _LONG_DOUBLE, int, - int, int *, int *, char **); - -extern int _ldcheck (_LONG_DOUBLE *); - -# define _PRINTF_FLOAT_TYPE _LONG_DOUBLE -# define _DTOA_R _ldtoa_r -# define FREXP frexpl -# endif /* !_NO_LONGDBL */ - -static char *cvt(struct _reent *, _PRINTF_FLOAT_TYPE, int, int, char *, int *, - int, int *, char *); - -static int exponent(char *, int, int); - -#endif /* FLOATING_POINT */ - -/* BUF must be big enough for the maximum %#llo (assuming long long is - at most 64 bits, this would be 23 characters), the maximum - multibyte character %C, and the maximum default precision of %La - (assuming long double is at most 128 bits with 113 bits of - mantissa, this would be 29 characters). %e, %f, and %g use - reentrant storage shared with mprec. All other formats that use - buf get by with fewer characters. Making BUF slightly bigger - reduces the need for malloc in %.*a and %S, when large precision or - long strings are processed. - The bigger size of 100 bytes is used on systems which allow number - strings using the locale's grouping character. Since that's a multibyte - value, we should use a conservative value. - */ -#ifdef _WANT_IO_C99_FORMATS -#define BUF 100 -#else -#define BUF 40 -#endif -#if defined _MB_CAPABLE && MB_LEN_MAX > BUF -# undef BUF -# define BUF MB_LEN_MAX -#endif - -#ifndef _NO_LONGLONG -# define quad_t long long -# define u_quad_t unsigned long long -#else -# define quad_t long -# define u_quad_t unsigned long -#endif - -typedef quad_t * quad_ptr_t; -typedef void *void_ptr_t; -typedef char * char_ptr_t; -typedef long * long_ptr_t; -typedef int * int_ptr_t; -typedef short * short_ptr_t; - -#ifndef _NO_POS_ARGS -# ifdef NL_ARGMAX -# define MAX_POS_ARGS NL_ARGMAX -# else -# define MAX_POS_ARGS 32 -# endif - -union arg_val -{ - int val_int; - u_int val_u_int; - long val_long; - u_long val_u_long; - float val_float; - double val_double; - _LONG_DOUBLE val__LONG_DOUBLE; - int_ptr_t val_int_ptr_t; - short_ptr_t val_short_ptr_t; - long_ptr_t val_long_ptr_t; - char_ptr_t val_char_ptr_t; - quad_ptr_t val_quad_ptr_t; - void_ptr_t val_void_ptr_t; - quad_t val_quad_t; - u_quad_t val_u_quad_t; - wint_t val_wint_t; -}; - -static union arg_val * -get_arg (struct _reent *data, int n, char *fmt, - va_list *ap, int *numargs, union arg_val *args, - int *arg_type, char **last_fmt); -#endif /* !_NO_POS_ARGS */ - -/* - * Macros for converting digits to letters and vice versa - */ -#define to_digit(c) ((c) - '0') -#define is_digit(c) ((unsigned)to_digit (c) <= 9) -#define to_char(n) ((n) + '0') - -/* - * Flags used during conversion. - */ -#define ALT 0x001 /* alternate form */ -#define HEXPREFIX 0x002 /* add 0x or 0X prefix */ -#define LADJUST 0x004 /* left adjustment */ -#define LONGDBL 0x008 /* long double */ -#define LONGINT 0x010 /* long integer */ -#ifndef _NO_LONGLONG -# define QUADINT 0x020 /* quad integer */ -#else /* ifdef _NO_LONGLONG, make QUADINT equivalent to LONGINT, so - that %lld behaves the same as %ld, not as %d, as expected if: - sizeof (long long) = sizeof long > sizeof int */ -# define QUADINT LONGINT -#endif -#define SHORTINT 0x040 /* short integer */ -#define ZEROPAD 0x080 /* zero (as opposed to blank) pad */ -#define FPT 0x100 /* Floating point number */ -#ifdef _WANT_IO_C99_FORMATS -# define CHARINT 0x200 /* char as integer */ -#else /* define as 0, to make SARG and UARG occupy fewer instructions */ -# define CHARINT 0 -#endif -#ifdef _WANT_IO_C99_FORMATS -# define GROUPING 0x400 /* use grouping ("'" flag) */ -#endif - -int _VFPRINTF_R (struct _reent *, FILE *, const char *, va_list); - -#ifndef STRING_ONLY -int -VFPRINTF (FILE * fp, - const char *fmt0, - va_list ap) -{ - int result; - result = _VFPRINTF_R (_REENT, fp, fmt0, ap); - return result; -} -#endif /* STRING_ONLY */ - -int -_VFPRINTF_R (struct _reent *data, - FILE * fp, - const char *fmt0, - va_list ap) -{ - register char *fmt; /* format string */ - register int ch; /* character from fmt */ - register int n, m; /* handy integers (short term usage) */ - register char *cp; /* handy char pointer (short term usage) */ - register int flags; /* flags as above */ - char *fmt_anchor; /* current format spec being processed */ -#ifndef _NO_POS_ARGS - int N; /* arg number */ - int arg_index; /* index into args processed directly */ - int numargs; /* number of varargs read */ - char *saved_fmt; /* saved fmt pointer */ - union arg_val args[MAX_POS_ARGS]; - int arg_type[MAX_POS_ARGS]; - int is_pos_arg; /* is current format positional? */ - int old_is_pos_arg; /* is current format positional? */ -#endif - int ret; /* return value accumulator */ - int width; /* width from format (%8d), or 0 */ - int prec; /* precision from format (%.3d), or -1 */ - char sign; /* sign prefix (' ', '+', '-', or \0) */ -#ifdef _WANT_IO_C99_FORMATS - /* locale specific numeric grouping */ - char *thousands_sep = NULL; - size_t thsnd_len = 0; - const char *grouping = NULL; -#endif -#ifdef FLOATING_POINT - char *decimal_point = _localeconv_r (data)->decimal_point; - size_t decp_len = strlen (decimal_point); - char softsign; /* temporary negative sign for floats */ - union { int i; _PRINTF_FLOAT_TYPE fp; } _double_ = {0}; -# define _fpvalue (_double_.fp) - int expt; /* integer value of exponent */ - int expsize = 0; /* character count for expstr */ - char expstr[MAXEXPLEN]; /* buffer for exponent string */ - int lead; /* sig figs before decimal or group sep */ -#endif /* FLOATING_POINT */ -#if defined (FLOATING_POINT) || defined (_WANT_IO_C99_FORMATS) - int ndig = 0; /* actual number of digits returned by cvt */ -#endif -#if defined (FLOATING_POINT) && defined (_WANT_IO_C99_FORMATS) - int nseps; /* number of group separators with ' */ - int nrepeats; /* number of repeats of the last group */ -#endif - u_quad_t _uquad; /* integer arguments %[diouxX] */ - enum { OCT, DEC, HEX } base;/* base for [diouxX] conversion */ - int dprec; /* a copy of prec if [diouxX], 0 otherwise */ - int realsz; /* field size expanded by dprec */ - int size; /* size of converted field or string */ - char *xdigs = NULL; /* digits for [xX] conversion */ -#ifdef _FVWRITE_IN_STREAMIO -#define NIOV 8 - struct __suio uio; /* output information: summary */ - struct __siov iov[NIOV];/* ... and individual io vectors */ - register struct __siov *iovp;/* for PRINT macro */ -#endif - char buf[BUF]; /* space for %c, %S, %[diouxX], %[aA] */ - char ox[2]; /* space for 0x hex-prefix */ -#ifdef _MB_CAPABLE - wchar_t wc; - mbstate_t state; /* mbtowc calls from library must not change state */ -#endif - char *malloc_buf = NULL;/* handy pointer for malloced buffers */ - - /* - * Choose PADSIZE to trade efficiency vs. size. If larger printf - * fields occur frequently, increase PADSIZE and make the initialisers - * below longer. - */ -#define PADSIZE 16 /* pad chunk size */ - static const char blanks[PADSIZE] = - {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '}; - static const char zeroes[PADSIZE] = - {'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'}; - -#ifdef _MB_CAPABLE - memset (&state, '\0', sizeof (state)); -#endif - /* - * BEWARE, these `goto error' on error, and PAD uses `n'. - */ -#ifdef _FVWRITE_IN_STREAMIO -#define PRINT(ptr, len) { \ - iovp->iov_base = (ptr); \ - iovp->iov_len = (len); \ - uio.uio_resid += (len); \ - iovp++; \ - if (++uio.uio_iovcnt >= NIOV) { \ - if (__SPRINT(data, fp, &uio)) \ - goto error; \ - iovp = iov; \ - } \ -} -#define PAD(howmany, with) { \ - if ((n = (howmany)) > 0) { \ - while (n > PADSIZE) { \ - PRINT (with, PADSIZE); \ - n -= PADSIZE; \ - } \ - PRINT (with, n); \ - } \ -} -#define PRINTANDPAD(p, ep, len, with) { \ - int n = (ep) - (p); \ - if (n > (len)) \ - n = (len); \ - if (n > 0) \ - PRINT((p), n); \ - PAD((len) - (n > 0 ? n : 0), (with)); \ -} -#define FLUSH() { \ - if (uio.uio_resid && __SPRINT(data, fp, &uio)) \ - goto error; \ - uio.uio_iovcnt = 0; \ - iovp = iov; \ -} -#else -#define PRINT(ptr, len) { \ - if (__SPRINT (data, fp, (ptr), (len)) == EOF) \ - goto error; \ -} -#define PAD(howmany, with) { \ - if ((n = (howmany)) > 0) { \ - while (n > PADSIZE) { \ - PRINT (with, PADSIZE); \ - n -= PADSIZE; \ - } \ - PRINT (with, n); \ - } \ -} -#define PRINTANDPAD(p, ep, len, with) { \ - int n = (ep) - (p); \ - if (n > (len)) \ - n = (len); \ - if (n > 0) \ - PRINT((p), n); \ - PAD((len) - (n > 0 ? n : 0), (with)); \ -} -#define FLUSH() -#endif - - /* Macros to support positional arguments */ -#ifndef _NO_POS_ARGS -# define GET_ARG(n, ap, type) \ - (is_pos_arg \ - ? (n < numargs \ - ? args[n].val_##type \ - : get_arg (data, n, fmt_anchor, &ap, &numargs, args, \ - arg_type, &saved_fmt)->val_##type) \ - : (arg_index++ < numargs \ - ? args[n].val_##type \ - : (numargs < MAX_POS_ARGS \ - ? args[numargs++].val_##type = va_arg (ap, type) \ - : va_arg (ap, type)))) -#else -# define GET_ARG(n, ap, type) (va_arg (ap, type)) -#endif - - /* - * To extend shorts properly, we need both signed and unsigned - * argument extraction methods. - */ -#ifndef _NO_LONGLONG -#define SARG() \ - (flags&QUADINT ? GET_ARG (N, ap, quad_t) : \ - flags&LONGINT ? GET_ARG (N, ap, long) : \ - flags&SHORTINT ? (long)(short)GET_ARG (N, ap, int) : \ - flags&CHARINT ? (long)(signed char)GET_ARG (N, ap, int) : \ - (long)GET_ARG (N, ap, int)) -#define UARG() \ - (flags&QUADINT ? GET_ARG (N, ap, u_quad_t) : \ - flags&LONGINT ? GET_ARG (N, ap, u_long) : \ - flags&SHORTINT ? (u_long)(u_short)GET_ARG (N, ap, int) : \ - flags&CHARINT ? (u_long)(unsigned char)GET_ARG (N, ap, int) : \ - (u_long)GET_ARG (N, ap, u_int)) -#else -#define SARG() \ - (flags&LONGINT ? GET_ARG (N, ap, long) : \ - flags&SHORTINT ? (long)(short)GET_ARG (N, ap, int) : \ - flags&CHARINT ? (long)(signed char)GET_ARG (N, ap, int) : \ - (long)GET_ARG (N, ap, int)) -#define UARG() \ - (flags&LONGINT ? GET_ARG (N, ap, u_long) : \ - flags&SHORTINT ? (u_long)(u_short)GET_ARG (N, ap, int) : \ - flags&CHARINT ? (u_long)(unsigned char)GET_ARG (N, ap, int) : \ - (u_long)GET_ARG (N, ap, u_int)) -#endif - -#ifndef STRING_ONLY - /* Initialize std streams if not dealing with sprintf family. */ - CHECK_INIT (data, fp); - _newlib_flockfile_start (fp); - - ORIENT(fp, -1); - - /* sorry, fprintf(read_only_file, "") returns EOF, not 0 */ - if (cantwrite (data, fp)) { - _newlib_flockfile_exit (fp); - return (EOF); - } - -#ifdef _UNBUF_STREAM_OPT - /* optimise fprintf(stderr) (and other unbuffered Unix files) */ - if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) && - fp->_file >= 0) { - _newlib_flockfile_exit (fp); - return (__sbprintf (data, fp, fmt0, ap)); - } -#endif -#else /* STRING_ONLY */ - /* Create initial buffer if we are called by asprintf family. */ - if (fp->_flags & __SMBF && !fp->_bf._base) - { - fp->_bf._base = fp->_p = _malloc_r (data, 64); - if (!fp->_p) - { - _REENT_ERRNO(data) = ENOMEM; - return EOF; - } - fp->_bf._size = 64; - } -#endif /* STRING_ONLY */ - - fmt = (char *)fmt0; -#ifdef _FVWRITE_IN_STREAMIO - uio.uio_iov = iovp = iov; - uio.uio_resid = 0; - uio.uio_iovcnt = 0; -#endif - ret = 0; -#ifndef _NO_POS_ARGS - arg_index = 0; - saved_fmt = NULL; - arg_type[0] = -1; - numargs = 0; - is_pos_arg = 0; -#endif - - /* - * Scan the format for conversions (`%' character). - */ - for (;;) { - cp = fmt; -#ifdef _MB_CAPABLE - while ((n = __MBTOWC (data, &wc, fmt, MB_CUR_MAX, - &state)) != 0) { - if (n < 0) { - /* Wave invalid chars through. */ - memset (&state, 0, sizeof state); - n = 1; - } - else if (wc == '%') - break; - fmt += n; - } -#else - while (*fmt != '\0' && *fmt != '%') - fmt += 1; -#endif - if ((m = fmt - cp) != 0) { - PRINT (cp, m); - ret += m; - } -#ifdef _MB_CAPABLE - if (n <= 0) - goto done; -#else - if (*fmt == '\0') - goto done; -#endif - fmt_anchor = fmt; - fmt++; /* skip over '%' */ - - flags = 0; - dprec = 0; - width = 0; - prec = -1; - sign = '\0'; -#ifdef FLOATING_POINT - lead = 0; -#ifdef _WANT_IO_C99_FORMATS - nseps = nrepeats = 0; -#endif -#endif -#ifndef _NO_POS_ARGS - N = arg_index; - is_pos_arg = 0; -#endif - -rflag: ch = *fmt++; -reswitch: switch (ch) { -#ifdef _WANT_IO_C99_FORMATS - case '\'': - thousands_sep = _localeconv_r (data)->thousands_sep; - thsnd_len = strlen (thousands_sep); - grouping = _localeconv_r (data)->grouping; - if (thsnd_len > 0 && grouping && *grouping) - flags |= GROUPING; - goto rflag; -#endif - case ' ': - /* - * ``If the space and + flags both appear, the space - * flag will be ignored.'' - * -- ANSI X3J11 - */ - if (!sign) - sign = ' '; - goto rflag; - case '#': - flags |= ALT; - goto rflag; - case '*': -#ifndef _NO_POS_ARGS - /* we must check for positional arg used for dynamic width */ - n = N; - old_is_pos_arg = is_pos_arg; - is_pos_arg = 0; - if (is_digit (*fmt)) { - char *old_fmt = fmt; - - n = 0; - ch = *fmt++; - do { - n = 10 * n + to_digit (ch); - ch = *fmt++; - } while (is_digit (ch)); - - if (ch == '$') { - if (n <= MAX_POS_ARGS) { - n -= 1; - is_pos_arg = 1; - } - else - goto error; - } - else { - fmt = old_fmt; - goto rflag; - } - } -#endif /* !_NO_POS_ARGS */ - - /* - * ``A negative field width argument is taken as a - * - flag followed by a positive field width.'' - * -- ANSI X3J11 - * They don't exclude field widths read from args. - */ - width = GET_ARG (n, ap, int); -#ifndef _NO_POS_ARGS - is_pos_arg = old_is_pos_arg; -#endif - if (width >= 0) - goto rflag; - width = -width; - /* FALLTHROUGH */ - case '-': - flags |= LADJUST; - goto rflag; - case '+': - sign = '+'; - goto rflag; - case '.': - if ((ch = *fmt++) == '*') { -#ifndef _NO_POS_ARGS - /* we must check for positional arg used for dynamic width */ - n = N; - old_is_pos_arg = is_pos_arg; - is_pos_arg = 0; - if (is_digit (*fmt)) { - char *old_fmt = fmt; - - n = 0; - ch = *fmt++; - do { - n = 10 * n + to_digit (ch); - ch = *fmt++; - } while (is_digit (ch)); - - if (ch == '$') { - if (n <= MAX_POS_ARGS) { - n -= 1; - is_pos_arg = 1; - } - else - goto error; - } - else { - fmt = old_fmt; - goto rflag; - } - } -#endif /* !_NO_POS_ARGS */ - prec = GET_ARG (n, ap, int); -#ifndef _NO_POS_ARGS - is_pos_arg = old_is_pos_arg; -#endif - if (prec < 0) - prec = -1; - goto rflag; - } - n = 0; - while (is_digit (ch)) { - n = 10 * n + to_digit (ch); - ch = *fmt++; - } - prec = n < 0 ? -1 : n; - goto reswitch; - case '0': - /* - * ``Note that 0 is taken as a flag, not as the - * beginning of a field width.'' - * -- ANSI X3J11 - */ - flags |= ZEROPAD; - goto rflag; - case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - n = 0; - do { - n = 10 * n + to_digit (ch); - ch = *fmt++; - } while (is_digit (ch)); -#ifndef _NO_POS_ARGS - if (ch == '$') { - if (n <= MAX_POS_ARGS) { - N = n - 1; - is_pos_arg = 1; - goto rflag; - } - else - goto error; - } -#endif /* !_NO_POS_ARGS */ - width = n; - goto reswitch; -#ifdef FLOATING_POINT - case 'L': - flags |= LONGDBL; - goto rflag; -#endif - case 'h': -#ifdef _WANT_IO_C99_FORMATS - if (*fmt == 'h') { - fmt++; - flags |= CHARINT; - } else -#endif - flags |= SHORTINT; - goto rflag; - case 'l': -#if defined _WANT_IO_C99_FORMATS || !defined _NO_LONGLONG - if (*fmt == 'l') { - fmt++; - flags |= QUADINT; - } else -#endif - flags |= LONGINT; - goto rflag; - case 'q': /* extension */ - flags |= QUADINT; - goto rflag; -#ifdef _WANT_IO_C99_FORMATS - case 'j': - if (sizeof (intmax_t) == sizeof (long)) - flags |= LONGINT; - else - flags |= QUADINT; - goto rflag; - case 'z': - if (sizeof (size_t) < sizeof (int)) - /* POSIX states size_t is 16 or more bits, as is short. */ - flags |= SHORTINT; - else if (sizeof (size_t) == sizeof (int)) - /* no flag needed */; - else if (sizeof (size_t) <= sizeof (long)) - flags |= LONGINT; - else - /* POSIX states that at least one programming - environment must support size_t no wider than - long, but that means other environments can - have size_t as wide as long long. */ - flags |= QUADINT; - goto rflag; - case 't': - if (sizeof (ptrdiff_t) < sizeof (int)) - /* POSIX states ptrdiff_t is 16 or more bits, as - is short. */ - flags |= SHORTINT; - else if (sizeof (ptrdiff_t) == sizeof (int)) - /* no flag needed */; - else if (sizeof (ptrdiff_t) <= sizeof (long)) - flags |= LONGINT; - else - /* POSIX states that at least one programming - environment must support ptrdiff_t no wider than - long, but that means other environments can - have ptrdiff_t as wide as long long. */ - flags |= QUADINT; - goto rflag; - case 'C': -#endif /* _WANT_IO_C99_FORMATS */ - case 'c': - cp = buf; -#ifdef _MB_CAPABLE - if (ch == 'C' || (flags & LONGINT)) { - mbstate_t ps; - - memset ((void *)&ps, '\0', sizeof (mbstate_t)); - if ((size = (int)_wcrtomb_r (data, cp, - (wchar_t)GET_ARG (N, ap, wint_t), - &ps)) == -1) { - fp->_flags |= __SERR; - goto error; - } - } - else -#endif /* _MB_CAPABLE */ - { - *cp = GET_ARG (N, ap, int); - size = 1; - } - sign = '\0'; - break; - case 'D': /* extension */ - flags |= LONGINT; - /*FALLTHROUGH*/ - case 'd': - case 'i': - _uquad = SARG (); -#ifndef _NO_LONGLONG - if ((quad_t)_uquad < 0) -#else - if ((long) _uquad < 0) -#endif - { - - _uquad = -_uquad; - sign = '-'; - } - base = DEC; - goto number; -#ifdef FLOATING_POINT -# ifdef _WANT_IO_C99_FORMATS - case 'a': - case 'A': - case 'F': -# endif - case 'e': - case 'E': - case 'f': - case 'g': - case 'G': -# ifdef _NO_LONGDBL - if (flags & LONGDBL) { - _fpvalue = (double) GET_ARG (N, ap, _LONG_DOUBLE); - } else { - _fpvalue = GET_ARG (N, ap, double); - } - - /* do this before tricky precision changes - - If the output is infinite or NaN, leading - zeros are not permitted. Otherwise, scanf - could not read what printf wrote. - */ - if (isinf (_fpvalue)) { - if (_fpvalue < 0) - sign = '-'; - if (ch <= 'G') /* 'A', 'E', 'F', or 'G' */ - cp = "INF"; - else - cp = "inf"; - size = 3; - flags &= ~ZEROPAD; - break; - } - if (isnan (_fpvalue)) { - if (signbit (_fpvalue)) - sign = '-'; - if (ch <= 'G') /* 'A', 'E', 'F', or 'G' */ - cp = "NAN"; - else - cp = "nan"; - size = 3; - flags &= ~ZEROPAD; - break; - } - -# else /* !_NO_LONGDBL */ - - if (flags & LONGDBL) { - _fpvalue = GET_ARG (N, ap, _LONG_DOUBLE); - } else { - _fpvalue = (_LONG_DOUBLE)GET_ARG (N, ap, double); - } - - /* do this before tricky precision changes */ - expt = _ldcheck (&_fpvalue); - if (expt == 2) { - if (_fpvalue < 0) - sign = '-'; - if (ch <= 'G') /* 'A', 'E', 'F', or 'G' */ - cp = "INF"; - else - cp = "inf"; - size = 3; - flags &= ~ZEROPAD; - break; - } - if (expt == 1) { - if (signbit (_fpvalue)) - sign = '-'; - if (ch <= 'G') /* 'A', 'E', 'F', or 'G' */ - cp = "NAN"; - else - cp = "nan"; - size = 3; - flags &= ~ZEROPAD; - break; - } -# endif /* !_NO_LONGDBL */ - -# ifdef _WANT_IO_C99_FORMATS - if (ch == 'a' || ch == 'A') { - ox[0] = '0'; - ox[1] = ch == 'a' ? 'x' : 'X'; - flags |= HEXPREFIX; - if (prec >= BUF) - { - if ((malloc_buf = - (char *)_malloc_r (data, prec + 1)) - == NULL) - { - fp->_flags |= __SERR; - goto error; - } - cp = malloc_buf; - } - else - cp = buf; - } else -# endif /* _WANT_IO_C99_FORMATS */ - if (prec == -1) { - prec = DEFPREC; - } else if ((ch == 'g' || ch == 'G') && prec == 0) { - prec = 1; - } - - flags |= FPT; - - cp = cvt (data, _fpvalue, prec, flags, &softsign, - &expt, ch, &ndig, cp); - - if (ch == 'g' || ch == 'G') { - if (expt <= -4 || expt > prec) - ch -= 2; /* 'e' or 'E' */ - else - ch = 'g'; - } -# ifdef _WANT_IO_C99_FORMATS - else if (ch == 'F') - ch = 'f'; -# endif - if (ch <= 'e') { /* 'a', 'A', 'e', or 'E' fmt */ - --expt; - expsize = exponent (expstr, expt, ch); - size = expsize + ndig; - if (ndig > 1 || flags & ALT) - size += decp_len; -# ifdef _WANT_IO_C99_FORMATS - flags &= ~GROUPING; -# endif - } else { - if (ch == 'f') { /* f fmt */ - if (expt > 0) { - size = expt; - if (prec || flags & ALT) - size += prec + decp_len; - } else /* "0.X" */ - size = (prec || flags & ALT) - ? prec + 1 + decp_len - : 1; - } else if (expt >= ndig) { /* fixed g fmt */ - size = expt; - if (flags & ALT) - size += decp_len; - } else { - size = ndig + decp_len; - if (expt <= 0) - size += 1 - expt; - } -# ifdef _WANT_IO_C99_FORMATS - if ((flags & GROUPING) && expt > 0) { - /* space for thousands' grouping */ - nseps = nrepeats = 0; - lead = expt; - while (*grouping != CHAR_MAX) { - if (lead <= *grouping) - break; - lead -= *grouping; - if (grouping[1]) { - nseps++; - grouping++; - } else - nrepeats++; - } - size += (nseps + nrepeats) * thsnd_len; - } else -# endif - lead = expt; - } - - if (softsign) - sign = '-'; - break; -#endif /* FLOATING_POINT */ -#ifdef _GLIBC_EXTENSION - case 'm': /* extension */ - { - int dummy; - cp = _strerror_r (data, _REENT_ERRNO(data), 1, &dummy); - } - flags &= ~LONGINT; - goto string; -#endif - case 'n': -#ifndef _NO_LONGLONG - if (flags & QUADINT) - *GET_ARG (N, ap, quad_ptr_t) = ret; - else -#endif - if (flags & LONGINT) - *GET_ARG (N, ap, long_ptr_t) = ret; - else if (flags & SHORTINT) - *GET_ARG (N, ap, short_ptr_t) = ret; -#ifdef _WANT_IO_C99_FORMATS - else if (flags & CHARINT) - *GET_ARG (N, ap, char_ptr_t) = ret; -#endif - else - *GET_ARG (N, ap, int_ptr_t) = ret; - continue; /* no output */ - case 'O': /* extension */ - flags |= LONGINT; - /*FALLTHROUGH*/ - case 'o': - _uquad = UARG (); - base = OCT; -#ifdef _WANT_IO_C99_FORMATS - flags &= ~GROUPING; -#endif - goto nosign; - case 'p': - /* - * ``The argument shall be a pointer to void. The - * value of the pointer is converted to a sequence - * of printable characters, in an implementation- - * defined manner.'' - * -- ANSI X3J11 - */ - /* NOSTRICT */ - _uquad = (uintptr_t) GET_ARG (N, ap, void_ptr_t); - base = HEX; - xdigs = "0123456789abcdef"; - flags |= HEXPREFIX; - ox[0] = '0'; - ox[1] = ch = 'x'; - goto nosign; - case 's': -#ifdef _WANT_IO_C99_FORMATS - case 'S': -#endif - cp = GET_ARG (N, ap, char_ptr_t); -#ifdef _GLIBC_EXTENSION -string: -#endif - sign = '\0'; -#ifndef __OPTIMIZE_SIZE__ - /* Behavior is undefined if the user passed a - NULL string when precision is not 0. - However, if we are not optimizing for size, - we might as well mirror glibc behavior. */ - if (cp == NULL) { - cp = "(null)"; - size = ((unsigned) prec > 6U) ? 6 : prec; - } - else -#endif /* __OPTIMIZE_SIZE__ */ -#ifdef _MB_CAPABLE - if (ch == 'S' || (flags & LONGINT)) { - mbstate_t ps; - const wchar_t *wcp; - - wcp = (const wchar_t *)cp; - size = m = 0; - memset ((void *)&ps, '\0', sizeof (mbstate_t)); - - /* Count number of bytes needed for multibyte - string that will be produced from widechar - string. */ - if (prec >= 0) { - while (1) { - if (wcp[m] == L'\0') - break; - if ((n = (int)_wcrtomb_r (data, - buf, wcp[m], &ps)) == -1) { - fp->_flags |= __SERR; - goto error; - } - if (n + size > prec) - break; - m += 1; - size += n; - if (size == prec) - break; - } - } - else { - if ((size = (int)_wcsrtombs_r (data, - NULL, &wcp, 0, &ps)) == -1) { - fp->_flags |= __SERR; - goto error; - } - wcp = (const wchar_t *)cp; - } - - if (size == 0) - break; - - if (size >= BUF) { - if ((malloc_buf = - (char *)_malloc_r (data, size + 1)) - == NULL) { - fp->_flags |= __SERR; - goto error; - } - cp = malloc_buf; - } else - cp = buf; - - /* Convert widechar string to multibyte string. */ - memset ((void *)&ps, '\0', sizeof (mbstate_t)); - if (_wcsrtombs_r (data, cp, &wcp, size, &ps) - != size) { - fp->_flags |= __SERR; - goto error; - } - cp[size] = '\0'; - } - else -#endif /* _MB_CAPABLE */ - if (prec >= 0) { - /* - * can't use strlen; can only look for the - * NUL in the first `prec' characters, and - * strlen () will go further. - */ - char *p = memchr (cp, 0, prec); - - if (p != NULL) - size = p - cp; - else - size = prec; - } else - size = strlen (cp); - - break; - case 'U': /* extension */ - flags |= LONGINT; - /*FALLTHROUGH*/ - case 'u': - _uquad = UARG (); - base = DEC; - goto nosign; - case 'X': - xdigs = "0123456789ABCDEF"; - goto hex; - case 'x': - xdigs = "0123456789abcdef"; -hex: _uquad = UARG (); - base = HEX; - /* leading 0x/X only if non-zero */ - if (flags & ALT && _uquad != 0) { - ox[0] = '0'; - ox[1] = ch; - flags |= HEXPREFIX; - } - -#ifdef _WANT_IO_C99_FORMATS - flags &= ~GROUPING; -#endif - /* unsigned conversions */ -nosign: sign = '\0'; - /* - * ``... diouXx conversions ... if a precision is - * specified, the 0 flag will be ignored.'' - * -- ANSI X3J11 - */ -number: if ((dprec = prec) >= 0) - flags &= ~ZEROPAD; - - /* - * ``The result of converting a zero value with an - * explicit precision of zero is no characters.'' - * -- ANSI X3J11 - */ - cp = buf + BUF; - if (_uquad != 0 || prec != 0) { - /* - * Unsigned mod is hard, and unsigned mod - * by a constant is easier than that by - * a variable; hence this switch. - */ - switch (base) { - case OCT: - do { - *--cp = to_char (_uquad & 7); - _uquad >>= 3; - } while (_uquad); - /* handle octal leading 0 */ - if (flags & ALT && *cp != '0') - *--cp = '0'; - break; - - case DEC: - /* many numbers are 1 digit */ - if (_uquad < 10) { - *--cp = to_char(_uquad); - break; - } -#ifdef _WANT_IO_C99_FORMATS - ndig = 0; -#endif - do { - *--cp = to_char (_uquad % 10); -#ifdef _WANT_IO_C99_FORMATS - ndig++; - /* If (*grouping == CHAR_MAX) then no - more grouping */ - if ((flags & GROUPING) - && ndig == *grouping - && *grouping != CHAR_MAX - && _uquad > 9) { - cp -= thsnd_len; - strncpy (cp, thousands_sep, - thsnd_len); - ndig = 0; - /* If (grouping[1] == '\0') then we - have to use *grouping character - (last grouping rule) for all - next cases. */ - if (grouping[1] != '\0') - grouping++; - } -#endif - _uquad /= 10; - } while (_uquad != 0); - break; - - case HEX: - do { - *--cp = xdigs[_uquad & 15]; - _uquad >>= 4; - } while (_uquad); - break; - - default: - cp = "bug in vfprintf: bad base"; - size = strlen (cp); - goto skipsize; - } - } - /* - * ...result is to be converted to an 'alternate form'. - * For o conversion, it increases the precision to force - * the first digit of the result to be a zero." - * -- ANSI X3J11 - * - * To demonstrate this case, compile and run: - * printf ("%#.0o",0); - */ - else if (base == OCT && (flags & ALT)) - *--cp = '0'; - - size = buf + BUF - cp; - skipsize: - break; - default: /* "%?" prints ?, unless ? is NUL */ - if (ch == '\0') - goto done; - /* pretend it was %c with argument ch */ - cp = buf; - *cp = ch; - size = 1; - sign = '\0'; - break; - } - - /* - * All reasonable formats wind up here. At this point, `cp' - * points to a string which (if not flags&LADJUST) should be - * padded out to `width' places. If flags&ZEROPAD, it should - * first be prefixed by any sign or other prefix; otherwise, - * it should be blank padded before the prefix is emitted. - * After any left-hand padding and prefixing, emit zeroes - * required by a decimal [diouxX] precision, then print the - * string proper, then emit zeroes required by any leftover - * floating precision; finally, if LADJUST, pad with blanks. - * If flags&FPT, ch must be in [aAeEfg]. - * - * Compute actual size, so we know how much to pad. - * size excludes decimal prec; realsz includes it. - */ - realsz = dprec > size ? dprec : size; - if (sign) - realsz++; - if (flags & HEXPREFIX) - realsz+= 2; - - /* right-adjusting blank padding */ - if ((flags & (LADJUST|ZEROPAD)) == 0) - PAD (width - realsz, blanks); - - /* prefix */ - if (sign) - PRINT (&sign, 1); - if (flags & HEXPREFIX) - PRINT (ox, 2); - - /* right-adjusting zero padding */ - if ((flags & (LADJUST|ZEROPAD)) == ZEROPAD) - PAD (width - realsz, zeroes); - - /* leading zeroes from decimal precision */ - PAD (dprec - size, zeroes); - - /* the string or number proper */ -#ifdef FLOATING_POINT - if ((flags & FPT) == 0) { - PRINT (cp, size); - } else { /* glue together f_p fragments */ - if (ch >= 'f') { /* 'f' or 'g' */ - if (_fpvalue == 0) { - /* kludge for __dtoa irregularity */ - PRINT ("0", 1); - if (expt < ndig || flags & ALT) { - PRINT (decimal_point, decp_len); - PAD (ndig - 1, zeroes); - } - } else if (expt <= 0) { - PRINT ("0", 1); - if (expt || ndig || flags & ALT) { - PRINT (decimal_point, decp_len); - PAD (-expt, zeroes); - PRINT (cp, ndig); - } - } else { - char *convbuf = cp; - PRINTANDPAD(cp, convbuf + ndig, - lead, zeroes); - cp += lead; -#ifdef _WANT_IO_C99_FORMATS - if (flags & GROUPING) { - while (nseps > 0 || nrepeats > 0) { - if (nrepeats > 0) - nrepeats--; - else { - grouping--; - nseps--; - } - PRINT(thousands_sep, thsnd_len); - PRINTANDPAD (cp, convbuf + ndig, - *grouping, zeroes); - cp += *grouping; - } - if (cp > convbuf + ndig) - cp = convbuf + ndig; - } -#endif - if (expt < ndig || flags & ALT) - PRINT (decimal_point, decp_len); - PRINTANDPAD (cp, convbuf + ndig, - ndig - expt, zeroes); - } - } else { /* 'a', 'A', 'e', or 'E' */ - if (ndig > 1 || flags & ALT) { - PRINT (cp, 1); - cp++; - PRINT (decimal_point, decp_len); - if (_fpvalue) { - PRINT (cp, ndig - 1); - } else /* 0.[0..] */ - /* __dtoa irregularity */ - PAD (ndig - 1, zeroes); - } else /* XeYYY */ - PRINT (cp, 1); - PRINT (expstr, expsize); - } - } -#else /* !FLOATING_POINT */ - PRINT (cp, size); -#endif - /* left-adjusting padding (always blank) */ - if (flags & LADJUST) - PAD (width - realsz, blanks); - - /* finally, adjust ret */ - ret += width > realsz ? width : realsz; - - FLUSH (); /* copy out the I/O vectors */ - - if (malloc_buf != NULL) { - _free_r (data, malloc_buf); - malloc_buf = NULL; - } - } -done: - FLUSH (); -error: - if (malloc_buf != NULL) - _free_r (data, malloc_buf); -#ifndef STRING_ONLY - _newlib_flockfile_end (fp); -#endif - return (__sferror (fp) ? EOF : ret); - /* NOTREACHED */ -} - -#ifdef FLOATING_POINT - -/* Using reentrant DATA, convert finite VALUE into a string of digits - with no decimal point, using NDIGITS precision and FLAGS as guides - to whether trailing zeros must be included. Set *SIGN to nonzero - if VALUE was negative. Set *DECPT to the exponent plus one. Set - *LENGTH to the length of the returned string. CH must be one of - [aAeEfFgG]; if it is [aA], then the return string lives in BUF, - otherwise the return value shares the mprec reentrant storage. */ -static char * -cvt(struct _reent *data, _PRINTF_FLOAT_TYPE value, int ndigits, int flags, - char *sign, int *decpt, int ch, int *length, char *buf) -{ - int mode, dsgn; - char *digits, *bp, *rve; -# ifdef _NO_LONGDBL - union double_union tmp; - - tmp.d = value; - if (word0 (tmp) & Sign_bit) { /* this will check for < 0 and -0.0 */ - value = -value; - *sign = '-'; - } else - *sign = '\000'; -# else /* !_NO_LONGDBL */ - union - { - struct ldieee ieee; - _LONG_DOUBLE val; - } ld; - - ld.val = value; - if (ld.ieee.sign) { /* this will check for < 0 and -0.0 */ - value = -value; - *sign = '-'; - } else - *sign = '\000'; -# endif /* !_NO_LONGDBL */ - -# ifdef _WANT_IO_C99_FORMATS - if (ch == 'a' || ch == 'A') { - /* This code assumes FLT_RADIX is a power of 2. The initial - division ensures the digit before the decimal will be less - than FLT_RADIX (unless it is rounded later). There is no - loss of precision in these calculations. */ - value = FREXP (value, decpt) / 8; - if (!value) - *decpt = 1; - digits = ch == 'a' ? "0123456789abcdef" : "0123456789ABCDEF"; - bp = buf; - do { - value *= 16; - mode = (int) value; - value -= mode; - *bp++ = digits[mode]; - } while (ndigits-- && value); - if (value > 0.5 || (value == 0.5 && mode & 1)) { - /* round to even */ - rve = bp; - while (*--rve == digits[0xf]) { - *rve = '0'; - } - *rve = *rve == '9' ? digits[0xa] : *rve + 1; - } else { - while (ndigits-- >= 0) { - *bp++ = '0'; - } - } - *length = bp - buf; - return buf; - } -# endif /* _WANT_IO_C99_FORMATS */ - if (ch == 'f' || ch == 'F') { - mode = 3; /* ndigits after the decimal point */ - } else { - /* To obtain ndigits after the decimal point for the 'e' - * and 'E' formats, round to ndigits + 1 significant - * figures. - */ - if (ch == 'e' || ch == 'E') { - ndigits++; - } - mode = 2; /* ndigits significant digits */ - } - - digits = _DTOA_R (data, value, mode, ndigits, decpt, &dsgn, &rve); - - if ((ch != 'g' && ch != 'G') || flags & ALT) { /* Print trailing zeros */ - bp = digits + ndigits; - if (ch == 'f' || ch == 'F') { - if (*digits == '0' && value) - *decpt = -ndigits + 1; - bp += *decpt; - } - if (value == 0) /* kludge for __dtoa irregularity */ - rve = bp; - while (rve < bp) - *rve++ = '0'; - } - *length = rve - digits; - return (digits); -} - -static int -exponent(char *p0, int exp, int fmtch) -{ - register char *p, *t; - char expbuf[MAXEXPLEN]; -# ifdef _WANT_IO_C99_FORMATS - int isa = fmtch == 'a' || fmtch == 'A'; -# else -# define isa 0 -# endif - - p = p0; - *p++ = isa ? 'p' - 'a' + fmtch : fmtch; - if (exp < 0) { - exp = -exp; - *p++ = '-'; - } - else - *p++ = '+'; - t = expbuf + MAXEXPLEN; - if (exp > 9) { - do { - *--t = to_char (exp % 10); - } while ((exp /= 10) > 9); - *--t = to_char (exp); - for (; t < expbuf + MAXEXPLEN; *p++ = *t++); - } - else { - if (!isa) - *p++ = '0'; - *p++ = to_char (exp); - } - return (p - p0); -} -#endif /* FLOATING_POINT */ - - -#ifndef _NO_POS_ARGS - -/* Positional argument support. - Written by Jeff Johnston - - Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/* The below constant state tables are shared between all versions of - vfprintf and vfwprintf. They must only be defined once, which we do in - the STRING_ONLY/INTEGER_ONLY versions here. */ -#if defined (STRING_ONLY) && defined(INTEGER_ONLY) - -const __CH_CLASS __chclass[256] = { - /* 00-07 */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* 08-0f */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* 10-17 */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* 18-1f */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* 20-27 */ FLAG, OTHER, OTHER, FLAG, DOLLAR, OTHER, OTHER, FLAG, - /* 28-2f */ OTHER, OTHER, STAR, FLAG, OTHER, FLAG, DOT, OTHER, - /* 30-37 */ ZERO, DIGIT, DIGIT, DIGIT, DIGIT, DIGIT, DIGIT, DIGIT, - /* 38-3f */ DIGIT, DIGIT, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* 40-47 */ OTHER, SPEC, OTHER, SPEC, SPEC, SPEC, SPEC, SPEC, - /* 48-4f */ OTHER, OTHER, OTHER, OTHER, MODFR, OTHER, OTHER, SPEC, - /* 50-57 */ OTHER, OTHER, OTHER, SPEC, OTHER, SPEC, OTHER, OTHER, - /* 58-5f */ SPEC, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* 60-67 */ OTHER, SPEC, OTHER, SPEC, SPEC, SPEC, SPEC, SPEC, - /* 68-6f */ MODFR, SPEC, MODFR, OTHER, MODFR, OTHER, SPEC, SPEC, - /* 70-77 */ SPEC, MODFR, OTHER, SPEC, MODFR, SPEC, OTHER, OTHER, - /* 78-7f */ SPEC, OTHER, MODFR, OTHER, OTHER, OTHER, OTHER, OTHER, - /* 80-87 */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* 88-8f */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* 90-97 */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* 98-9f */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* a0-a7 */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* a8-af */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* b0-b7 */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* b8-bf */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* c0-c7 */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* c8-cf */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* d0-d7 */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* d8-df */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* e0-e7 */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* e8-ef */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* f0-f7 */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, - /* f8-ff */ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, -}; - -const __STATE __state_table[MAX_STATE][MAX_CH_CLASS] = { - /* '0' '1-9' '$' MODFR SPEC '.' '*' FLAG OTHER */ - /* START */ { SFLAG, WDIG, DONE, SMOD, DONE, SDOT, VARW, SFLAG, DONE }, - /* SFLAG */ { SFLAG, WDIG, DONE, SMOD, DONE, SDOT, VARW, SFLAG, DONE }, - /* WDIG */ { DONE, DONE, WIDTH, SMOD, DONE, SDOT, DONE, DONE, DONE }, - /* WIDTH */ { DONE, DONE, DONE, SMOD, DONE, SDOT, DONE, DONE, DONE }, - /* SMOD */ { DONE, DONE, DONE, DONE, DONE, DONE, DONE, DONE, DONE }, - /* SDOT */ { SDOT, PREC, DONE, SMOD, DONE, DONE, VARP, DONE, DONE }, - /* VARW */ { DONE, VWDIG, DONE, SMOD, DONE, SDOT, DONE, DONE, DONE }, - /* VARP */ { DONE, VPDIG, DONE, SMOD, DONE, DONE, DONE, DONE, DONE }, - /* PREC */ { DONE, DONE, DONE, SMOD, DONE, DONE, DONE, DONE, DONE }, - /* VWDIG */ { DONE, DONE, WIDTH, DONE, DONE, DONE, DONE, DONE, DONE }, - /* VPDIG */ { DONE, DONE, PREC, DONE, DONE, DONE, DONE, DONE, DONE }, -}; - -const __ACTION __action_table[MAX_STATE][MAX_CH_CLASS] = { - /* '0' '1-9' '$' MODFR SPEC '.' '*' FLAG OTHER */ - /* START */ { NOOP, NUMBER, NOOP, GETMOD, GETARG, NOOP, NOOP, NOOP, NOOP }, - /* SFLAG */ { NOOP, NUMBER, NOOP, GETMOD, GETARG, NOOP, NOOP, NOOP, NOOP }, - /* WDIG */ { NOOP, NOOP, GETPOS, GETMOD, GETARG, NOOP, NOOP, NOOP, NOOP }, - /* WIDTH */ { NOOP, NOOP, NOOP, GETMOD, GETARG, NOOP, NOOP, NOOP, NOOP }, - /* SMOD */ { NOOP, NOOP, NOOP, NOOP, GETARG, NOOP, NOOP, NOOP, NOOP }, - /* SDOT */ { NOOP, SKIPNUM, NOOP, GETMOD, GETARG, NOOP, NOOP, NOOP, NOOP }, - /* VARW */ { NOOP, NUMBER, NOOP, GETPW, GETPWB, GETPW, NOOP, NOOP, NOOP }, - /* VARP */ { NOOP, NUMBER, NOOP, GETPW, GETPWB, NOOP, NOOP, NOOP, NOOP }, - /* PREC */ { NOOP, NOOP, NOOP, GETMOD, GETARG, NOOP, NOOP, NOOP, NOOP }, - /* VWDIG */ { NOOP, NOOP, PWPOS, NOOP, NOOP, NOOP, NOOP, NOOP, NOOP }, - /* VPDIG */ { NOOP, NOOP, PWPOS, NOOP, NOOP, NOOP, NOOP, NOOP, NOOP }, -}; - -#endif /* STRING_ONLY && INTEGER_ONLY */ - -/* function to get positional parameter N where n = N - 1 */ -static union arg_val * -get_arg (struct _reent *data, - int n, - char *fmt, - va_list *ap, - int *numargs_p, - union arg_val *args, - int *arg_type, - char **last_fmt) -{ - int ch; - int number, flags; - int spec_type; - int numargs = *numargs_p; - __CH_CLASS chtype; - __STATE state, next_state; - __ACTION action; - int pos, last_arg; - int max_pos_arg = n; - /* Only need types that can be reached via vararg promotions. */ - enum types { INT, LONG_INT, QUAD_INT, CHAR_PTR, DOUBLE, LONG_DOUBLE, WIDE_CHAR }; -# ifdef _MB_CAPABLE - wchar_t wc; - mbstate_t wc_state; - int nbytes; -# endif - - /* if this isn't the first call, pick up where we left off last time */ - if (*last_fmt != NULL) - fmt = *last_fmt; - -# ifdef _MB_CAPABLE - memset (&wc_state, '\0', sizeof (wc_state)); -# endif - - /* we need to process either to end of fmt string or until we have actually - read the desired parameter from the vararg list. */ - while (*fmt && n >= numargs) - { -# ifdef _MB_CAPABLE - while ((nbytes = __MBTOWC (data, &wc, fmt, MB_CUR_MAX, &wc_state)) > 0) - { - fmt += nbytes; - if (wc == '%') - break; - } - - if (nbytes <= 0) - break; -# else - while (*fmt != '\0' && *fmt != '%') - fmt += 1; - - if (*fmt == '\0') - break; - - fmt++; -# endif /* ! _MB_CAPABLE */ - state = START; - flags = 0; - pos = -1; - number = 0; - spec_type = INT; - - /* Use state/action table to process format specifiers. We ignore invalid - formats and we are only interested in information that tells us how to - read the vararg list. */ - while (state != DONE) - { - ch = *fmt++; - chtype = __chclass[ch]; - next_state = __state_table[state][chtype]; - action = __action_table[state][chtype]; - state = next_state; - - switch (action) - { - case GETMOD: /* we have format modifier */ - switch (ch) - { - case 'h': - /* No flag needed, since short and char promote to int. */ - break; - case 'L': - flags |= LONGDBL; - break; - case 'q': - flags |= QUADINT; - break; -# ifdef _WANT_IO_C99_FORMATS - case 'j': - if (sizeof (intmax_t) == sizeof (long)) - flags |= LONGINT; - else - flags |= QUADINT; - break; - case 'z': - if (sizeof (size_t) <= sizeof (int)) - /* no flag needed */; - else if (sizeof (size_t) <= sizeof (long)) - flags |= LONGINT; - else - /* POSIX states that at least one programming - environment must support size_t no wider than - long, but that means other environments can - have size_t as wide as long long. */ - flags |= QUADINT; - break; - case 't': - if (sizeof (ptrdiff_t) <= sizeof (int)) - /* no flag needed */; - else if (sizeof (ptrdiff_t) <= sizeof (long)) - flags |= LONGINT; - else - /* POSIX states that at least one programming - environment must support ptrdiff_t no wider than - long, but that means other environments can - have ptrdiff_t as wide as long long. */ - flags |= QUADINT; - break; -# endif /* _WANT_IO_C99_FORMATS */ - case 'l': - default: -# if defined _WANT_IO_C99_FORMATS || !defined _NO_LONGLONG - if (*fmt == 'l') - { - flags |= QUADINT; - ++fmt; - } - else -# endif - flags |= LONGINT; - break; - } - break; - case GETARG: /* we have format specifier */ - { - numargs &= (MAX_POS_ARGS - 1); - /* process the specifier and translate it to a type to fetch from varargs */ - switch (ch) - { - case 'd': - case 'i': - case 'o': - case 'x': - case 'X': - case 'u': - if (flags & LONGINT) - spec_type = LONG_INT; -# ifndef _NO_LONGLONG - else if (flags & QUADINT) - spec_type = QUAD_INT; -# endif - else - spec_type = INT; - break; - case 'D': - case 'U': - case 'O': - spec_type = LONG_INT; - break; -# ifdef _WANT_IO_C99_FORMATS - case 'a': - case 'A': - case 'F': -# endif - case 'f': - case 'g': - case 'G': - case 'E': - case 'e': -# ifndef _NO_LONGDBL - if (flags & LONGDBL) - spec_type = LONG_DOUBLE; - else -# endif - spec_type = DOUBLE; - break; - case 's': -# ifdef _WANT_IO_C99_FORMATS - case 'S': -# endif - case 'p': - case 'n': - spec_type = CHAR_PTR; - break; - case 'c': -# ifdef _WANT_IO_C99_FORMATS - if (flags & LONGINT) - spec_type = WIDE_CHAR; - else -# endif - spec_type = INT; - break; -# ifdef _WANT_IO_C99_FORMATS - case 'C': - spec_type = WIDE_CHAR; - break; -# endif - } - - /* if we have a positional parameter, just store the type, otherwise - fetch the parameter from the vararg list */ - if (pos != -1) - arg_type[pos] = spec_type; - else - { - switch (spec_type) - { - case LONG_INT: - args[numargs++].val_long = va_arg (*ap, long); - break; - case QUAD_INT: - args[numargs++].val_quad_t = va_arg (*ap, quad_t); - break; - case WIDE_CHAR: - args[numargs++].val_wint_t = va_arg (*ap, wint_t); - break; - case INT: - args[numargs++].val_int = va_arg (*ap, int); - break; - case CHAR_PTR: - args[numargs++].val_char_ptr_t = va_arg (*ap, char *); - break; - case DOUBLE: - args[numargs++].val_double = va_arg (*ap, double); - break; - case LONG_DOUBLE: - args[numargs++].val__LONG_DOUBLE = va_arg (*ap, _LONG_DOUBLE); - break; - } - } - } - break; - case GETPOS: /* we have positional specifier */ - if (arg_type[0] == -1) - memset (arg_type, 0, sizeof (int) * MAX_POS_ARGS); - pos = number - 1; - max_pos_arg = (max_pos_arg > pos ? max_pos_arg : pos); - break; - case PWPOS: /* we have positional specifier for width or precision */ - if (arg_type[0] == -1) - memset (arg_type, 0, sizeof (int) * MAX_POS_ARGS); - number -= 1; - arg_type[number] = INT; - max_pos_arg = (max_pos_arg > number ? max_pos_arg : number); - break; - case GETPWB: /* we require format pushback */ - --fmt; - /* fallthrough */ - case GETPW: /* we have a variable precision or width to acquire */ - args[numargs++].val_int = va_arg (*ap, int); - break; - case NUMBER: /* we have a number to process */ - number = (ch - '0'); - while ((ch = *fmt) != '\0' && is_digit (ch)) - { - number = number * 10 + (ch - '0'); - ++fmt; - } - break; - case SKIPNUM: /* we have a number to skip */ - while ((ch = *fmt) != '\0' && is_digit (ch)) - ++fmt; - break; - case NOOP: - default: - break; /* do nothing */ - } - } - } - - /* process all arguments up to at least the one we are looking for and if we - have seen the end of the string, then process up to the max argument needed */ - if (*fmt == '\0') - last_arg = max_pos_arg; - else - last_arg = n; - - while (numargs <= last_arg) - { - switch (arg_type[numargs]) - { - case LONG_INT: - args[numargs++].val_long = va_arg (*ap, long); - break; - case QUAD_INT: - args[numargs++].val_quad_t = va_arg (*ap, quad_t); - break; - case CHAR_PTR: - args[numargs++].val_char_ptr_t = va_arg (*ap, char *); - break; - case DOUBLE: - args[numargs++].val_double = va_arg (*ap, double); - break; - case LONG_DOUBLE: - args[numargs++].val__LONG_DOUBLE = va_arg (*ap, _LONG_DOUBLE); - break; - case WIDE_CHAR: - args[numargs++].val_wint_t = va_arg (*ap, wint_t); - break; - case INT: - default: - args[numargs++].val_int = va_arg (*ap, int); - break; - } - } - - /* alter the global numargs value and keep a reference to the last bit of the fmt - string we processed here because the caller will continue processing where we started */ - *numargs_p = numargs; - *last_fmt = fmt; - return &args[n]; -} -#endif /* !_NO_POS_ARGS */ diff --git a/lib/stdio/vfscanf.c b/lib/stdio/vfscanf.c deleted file mode 100644 index cfeea98..0000000 --- a/lib/stdio/vfscanf.c +++ /dev/null @@ -1,1991 +0,0 @@ -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>, <>---format argument list - -INDEX - vfscanf -INDEX - _vfscanf_r -INDEX - vscanf -INDEX - _vscanf_r -INDEX - vsscanf -INDEX - _vsscanf_r - -SYNOPSIS - #include - #include - int vscanf(const char *<[fmt]>, va_list <[list]>); - int vfscanf(FILE *<[fp]>, const char *<[fmt]>, va_list <[list]>); - int vsscanf(const char *<[str]>, const char *<[fmt]>, va_list <[list]>); - - int _vscanf_r(struct _reent *<[reent]>, const char *<[fmt]>, - va_list <[list]>); - int _vfscanf_r(struct _reent *<[reent]>, FILE *<[fp]>, const char *<[fmt]>, - va_list <[list]>); - int _vsscanf_r(struct _reent *<[reent]>, const char *<[str]>, - const char *<[fmt]>, va_list <[list]>); - -DESCRIPTION -<>, <>, and <> are (respectively) variants -of <>, <>, and <>. They differ only in -allowing their caller to pass the variable argument list as a -<> object (initialized by <>) rather than -directly accepting a variable number of arguments. - -RETURNS -The return values are consistent with the corresponding functions: -<> returns the number of input fields successfully scanned, -converted, and stored; the return value does not include scanned -fields which were not stored. - -If <> attempts to read at end-of-file, the return value -is <>. - -If no fields were stored, the return value is <<0>>. - -The routines <<_vscanf_r>>, <<_vfscanf_f>>, and <<_vsscanf_r>> are -reentrant versions which take an additional first parameter which points to the -reentrancy structure. - -PORTABILITY -These are GNU extensions. - -Supporting OS subroutines required: -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" -#include "../stdlib/local.h" - -#ifdef INTEGER_ONLY -#define VFSCANF vfiscanf -#define _VFSCANF_R _vfiscanf_r -#define __SVFSCANF __svfiscanf -#ifdef STRING_ONLY -# define __SVFSCANF_R __ssvfiscanf_r -#else -# define __SVFSCANF_R __svfiscanf_r -#endif -#else -#define VFSCANF vfscanf -#define _VFSCANF_R _vfscanf_r -#define __SVFSCANF __svfscanf -#ifdef STRING_ONLY -# define __SVFSCANF_R __ssvfscanf_r -#else -# define __SVFSCANF_R __svfscanf_r -#endif -#ifndef NO_FLOATING_POINT -#define FLOATING_POINT -#endif -#endif - -#ifdef STRING_ONLY -#undef _newlib_flockfile_start -#undef _newlib_flockfile_exit -#undef _newlib_flockfile_end -#define _newlib_flockfile_start(x) {} -#define _newlib_flockfile_exit(x) {} -#define _newlib_flockfile_end(x) {} -#define _ungetc_r _sungetc_r -#define __srefill_r __ssrefill_r -#define _fread_r _sfread_r -#endif - -#ifdef FLOATING_POINT -#include -#include -#include - -/* Currently a test is made to see if long double processing is warranted. - This could be changed in the future should the _ldtoa_r code be - preferred over _dtoa_r. */ -#define _NO_LONGDBL -#if defined _WANT_IO_LONG_DOUBLE && (LDBL_MANT_DIG > DBL_MANT_DIG) -#undef _NO_LONGDBL -#endif - -#include "floatio.h" - -#define BUF (MAXEXP+MAXFRACT+MB_LEN_MAX+2) /* decimal point + sign + NUL */ - -/* An upper bound for how long a long prints in decimal. 4 / 13 approximates - log (2). Add one char for roundoff compensation and one for the sign. */ -#define MAX_LONG_LEN ((CHAR_BIT * sizeof (long) - 1) * 4 / 13 + 2) -#else -#define BUF 40 -#endif - -#define _NO_LONGLONG -#if defined _WANT_IO_LONG_LONG \ - && (defined __GNUC__ || __STDC_VERSION__ >= 199901L) -# undef _NO_LONGLONG -#endif - -#define _NO_POS_ARGS -#ifdef _WANT_IO_POS_ARGS -# undef _NO_POS_ARGS -# ifdef NL_ARGMAX -# define MAX_POS_ARGS NL_ARGMAX -# else -# define MAX_POS_ARGS 32 -# endif - -static void * get_arg (int, va_list *, int *, void **); -#endif /* _WANT_IO_POS_ARGS */ - -/* - * Flags used during conversion. - */ - -#define LONG 0x01 /* l: long or double */ -#define LONGDBL 0x02 /* L/ll: long double or long long */ -#define SHORT 0x04 /* h: short */ -#define CHAR 0x08 /* hh: 8 bit integer */ -#define SUPPRESS 0x10 /* suppress assignment */ -#define POINTER 0x20 /* weird %p pointer (`fake hex') */ -#define NOSKIP 0x40 /* do not skip blanks */ -#define MALLOC 0x80 /* handle 'm' modifier */ - -/* - * The following are used in numeric conversions only: - * SIGNOK, NDIGITS, DPTOK, EXPOK and HEXFLT are for floating point; - * SIGNOK, NDIGITS, PFXOK, and NZDIGITS are for integral. - */ - -#define SIGNOK 0x80 /* +/- is (still) legal */ -#define NDIGITS 0x100 /* no digits detected */ - -#define DPTOK 0x200 /* (float) decimal point is still legal */ -#define EXPOK 0x400 /* (float) exponent (e+3, etc) still legal */ -#define HEXFLT 0x800 /* (float) hex prefix found, expect hex float */ - -#define PFXOK 0x200 /* 0x prefix is (still) legal */ -#define NZDIGITS 0x400 /* no zero digits detected */ -#define NNZDIGITS 0x800 /* no non-zero digits detected */ - -/* - * Conversion types. - */ - -#define CT_CHAR 0 /* %c conversion */ -#define CT_CCL 1 /* %[...] conversion */ -#define CT_STRING 2 /* %s conversion */ -#define CT_INT 3 /* integer, i.e., strtol or strtoul */ -#define CT_FLOAT 4 /* floating, i.e., strtod */ - -#define u_char unsigned char -#define u_long unsigned long - -#ifndef _NO_LONGLONG -typedef unsigned long long u_long_long; -#endif - -/* - * vfscanf - */ - -#define BufferEmpty (fp->_r <= 0 && __srefill_r(rptr, fp)) - -#ifndef STRING_ONLY - -#ifndef _REENT_ONLY - -int -VFSCANF (register FILE *fp, - const char *fmt, - va_list ap) -{ - struct _reent *reent = _REENT; - - CHECK_INIT(reent, fp); - return __SVFSCANF_R (reent, fp, fmt, ap); -} - -int -__SVFSCANF (register FILE *fp, - char const *fmt0, - va_list ap) -{ - return __SVFSCANF_R (_REENT, fp, fmt0, ap); -} - -#endif /* !_REENT_ONLY */ - -int -_VFSCANF_R (struct _reent *data, - register FILE *fp, - const char *fmt, - va_list ap) -{ - CHECK_INIT(data, fp); - return __SVFSCANF_R (data, fp, fmt, ap); -} -#endif /* !STRING_ONLY */ - -#if defined (STRING_ONLY) && defined (INTEGER_ONLY) -/* When dealing with the sscanf family, we don't want to use the - * regular ungetc which will drag in file I/O items we don't need. - * So, we create our own trimmed-down version. */ -int -_sungetc_r (struct _reent *data, - int c, - register FILE *fp) -{ - if (c == EOF) - return (EOF); - - /* After ungetc, we won't be at eof anymore */ - fp->_flags &= ~__SEOF; - c = (unsigned char) c; - - /* - * If we are in the middle of ungetc'ing, just continue. - * This may require expanding the current ungetc buffer. - */ - - if (HASUB (fp)) - { - if (fp->_r >= fp->_ub._size && __submore (data, fp)) - { - return EOF; - } - *--fp->_p = c; - fp->_r++; - return c; - } - - /* - * If we can handle this by simply backing up, do so, - * but never replace the original character. - * (This makes sscanf() work when scanning `const' data.) - */ - - if (fp->_bf._base != NULL && fp->_p > fp->_bf._base && fp->_p[-1] == c) - { - fp->_p--; - fp->_r++; - return c; - } - - /* - * Create an ungetc buffer. - * Initially, we will use the `reserve' buffer. - */ - - fp->_ur = fp->_r; - fp->_up = fp->_p; - fp->_ub._base = fp->_ubuf; - fp->_ub._size = sizeof (fp->_ubuf); - fp->_ubuf[sizeof (fp->_ubuf) - 1] = c; - fp->_p = &fp->_ubuf[sizeof (fp->_ubuf) - 1]; - fp->_r = 1; - return c; -} - -/* String only version of __srefill_r for sscanf family. */ -int -__ssrefill_r (struct _reent * ptr, - register FILE * fp) -{ - /* - * Our only hope of further input is the ungetc buffer. - * If there is anything in that buffer to read, return. - */ - if (HASUB (fp)) - { - FREEUB (ptr, fp); - if ((fp->_r = fp->_ur) != 0) - { - fp->_p = fp->_up; - return 0; - } - } - - /* Otherwise we are out of character input. */ - fp->_p = fp->_bf._base; - fp->_r = 0; - fp->_flags |= __SEOF; - return EOF; -} - -size_t -_sfread_r (struct _reent * ptr, - void *buf, - size_t size, - size_t count, - FILE * fp) -{ - register size_t resid; - register char *p; - register int r; - size_t total; - - if ((resid = count * size) == 0) - return 0; - - total = resid; - p = buf; - - while (resid > (r = fp->_r)) - { - (void) memcpy ((void *) p, (void *) fp->_p, (size_t) r); - fp->_p += r; - fp->_r = 0; - p += r; - resid -= r; - if (__ssrefill_r (ptr, fp)) - { - /* no more input: return partial result */ - return (total - resid) / size; - } - } - (void) memcpy ((void *) p, (void *) fp->_p, resid); - fp->_r -= resid; - fp->_p += resid; - return count; -} -#else /* !STRING_ONLY || !INTEGER_ONLY */ -int _sungetc_r (struct _reent *, int, register FILE *); -int __ssrefill_r (struct _reent *, register FILE *); -size_t _sfread_r (struct _reent *, void *buf, size_t, size_t, FILE *); -#endif /* !STRING_ONLY || !INTEGER_ONLY */ - -static inline int -__wctob (struct _reent *rptr, wint_t wc) -{ - mbstate_t mbs; - unsigned char pmb[MB_LEN_MAX]; - - if (wc == WEOF) - return EOF; - memset (&mbs, '\0', sizeof (mbs)); - return __WCTOMB (rptr, (char *) pmb, wc, &mbs) == 1 ? (int) pmb[0] : 0; -} - -int -__SVFSCANF_R (struct _reent *rptr, - register FILE *fp, - char const *fmt0, - va_list ap) -{ - register u_char *fmt = (u_char *) fmt0; - register int c; /* character from format, or conversion */ - register size_t width; /* field width, or 0 */ - register char *p; /* points into all kinds of strings */ - register int n; /* handy integer */ - register int flags; /* flags as defined above */ - register char *p0; /* saves original value of p when necessary */ - int nassigned; /* number of fields assigned */ - int nread; /* number of characters consumed from fp */ -#ifndef _NO_POS_ARGS - int N; /* arg number */ - int arg_index = 0; /* index into args processed directly */ - int numargs = 0; /* number of varargs read */ - void *args[MAX_POS_ARGS]; /* positional args read */ - int is_pos_arg; /* is current format positional? */ -#endif - int base = 0; /* base argument to strtol/strtoul */ - int nbytes = 1; /* number of bytes read from fmt string */ - wchar_t wc; /* wchar to use to read format string */ - wchar_t *wcp; /* handy wide character pointer */ - size_t mbslen = 0; /* length of converted multibyte sequence */ -#ifdef _MB_CAPABLE - mbstate_t state; /* value to keep track of multibyte state */ -#endif -#ifdef _WANT_IO_C99_FORMATS -#define _WANT_IO_POSIX_EXTENSIONS -#endif -#ifdef _WANT_IO_POSIX_EXTENSIONS - /* POSIX requires that fscanf frees all allocated strings from 'm' - conversions in case it returns EOF. m_ptr is used to keep track. - It will be allocated on the stack the first time an 'm' conversion - takes place, and it will be free'd on return from the function. - This implementation tries to save space by only allocating 8 - pointer slots at a time. Most scenarios should never have to call - realloc again. This implementation allows only up to 65528 'm' - conversions per fscanf invocation for now. That should be enough - for almost all scenarios, right? */ - struct m_ptrs { - void ***m_arr; /* Array of pointer args to 'm' conversion */ - uint16_t m_siz; /* Number of slots in m_arr */ - uint16_t m_cnt; /* Number of valid entries in m_arr */ - } *m_ptr = NULL; - #define init_m_ptr() \ - do \ - { \ - if (!m_ptr) \ - { \ - m_ptr = (struct m_ptrs *) alloca (sizeof *m_ptr); \ - m_ptr->m_arr = NULL; \ - m_ptr->m_siz = 0; \ - m_ptr->m_cnt = 0; \ - } \ - } \ - while (0) - #define push_m_ptr(arg) \ - do \ - { \ - if (m_ptr->m_cnt >= m_ptr->m_siz) \ - { \ - void ***n = NULL; \ - \ - if (m_ptr->m_siz + 8 > 0 && m_ptr->m_siz + 8 < UINT16_MAX) \ - n = (void ***) realloc (m_ptr->m_arr, \ - (m_ptr->m_siz + 8) * \ - sizeof (void **)); \ - if (!n) \ - { \ - nassigned = EOF; \ - goto match_failure; \ - } \ - m_ptr->m_arr = n; \ - m_ptr->m_siz += 8; \ - } \ - m_ptr->m_arr[m_ptr->m_cnt++] = (void **) (arg); \ - } \ - while (0) - #define alloc_m_ptr(_type, _p, _p0, _p_p, _w) \ - ({ \ - _p_p = GET_ARG (N, ap, _type **); \ - if (!_p_p) \ - goto match_failure; \ - _p0 = (_type *) malloc ((_w) * sizeof (_type)); \ - if (!_p0) \ - { \ - nassigned = EOF; \ - goto match_failure; \ - } \ - *_p_p = _p0; \ - push_m_ptr (_p_p); \ - _p = _p0; \ - _w; \ - }) - /* For systems with wchar_t == 2 (UTF-16) check if there's room for - at least 2 wchar_t's (surrogate pairs). */ - #define realloc_m_ptr(_type, _p, _p0, _p_p, _w) \ - ({ \ - size_t _nw = (_w); \ - ptrdiff_t _dif = _p - _p0; \ - if (_p_p && \ - ((sizeof (_type) == 2 && _dif >= _nw - 1) \ - || _dif >= _nw)) \ - { \ - _p0 = (_type *) realloc (_p0, (_nw << 1) * sizeof (_type)); \ - if (!_p0) \ - { \ - nassigned = EOF; \ - goto match_failure; \ - } \ - _p = _p0 + _dif; \ - *_p_p = _p0; \ - _nw <<= 1; \ - } \ - _nw; \ - }) - #define shrink_m_ptr(_type, _p_p, _w, _cw) \ - ({ \ - size_t _nw = (_w); \ - if (_p_p && _nw < _cw) \ - { \ - _type *_np_p = (_type *) \ - realloc (*_p_p, _nw * sizeof (_type)); \ - if (_np_p) \ - *_p_p = _np_p; \ - } \ - }) - #define free_m_ptr() \ - do \ - { \ - if (m_ptr) \ - { \ - if (nassigned == EOF) \ - { \ - int i; \ - for (i = 0; i < m_ptr->m_cnt; ++i) \ - { \ - free (*m_ptr->m_arr[i]); \ - *m_ptr->m_arr[i] = NULL; \ - } \ - } \ - if (m_ptr->m_arr) \ - free (m_ptr->m_arr); \ - } \ - } \ - while (0) -#endif - - #define CCFN_PARAMS (struct _reent *, const char *, char **, int) - u_long (*ccfn)CCFN_PARAMS=0; /* conversion function (strtol/strtoul) */ - char ccltab[256]; /* character class table for %[...] */ - char buf[BUF]; /* buffer for numeric conversions */ - unsigned char *lptr; /* literal pointer */ - - char *cp; - short *sp; - int *ip; -#ifdef FLOATING_POINT - float *flp; - _LONG_DOUBLE *ldp; - double *dp; -#endif - long *lp; -#ifndef _NO_LONGLONG - long long *llp; -#endif - - /* `basefix' is used to avoid `if' tests in the integer scanner */ - static const short basefix[17] = - {10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - - /* Macro to support positional arguments */ -#ifndef _NO_POS_ARGS -# define GET_ARG(n, ap, type) \ - ((type) (is_pos_arg \ - ? (n < numargs \ - ? args[n] \ - : get_arg (n, &ap, &numargs, args)) \ - : (arg_index++ < numargs \ - ? args[n] \ - : (numargs < MAX_POS_ARGS \ - ? args[numargs++] = va_arg (ap, void *) \ - : va_arg (ap, void *))))) -#else -# define GET_ARG(n, ap, type) (va_arg (ap, type)) -#endif - - _newlib_flockfile_start (fp); - - ORIENT (fp, -1); - - nassigned = 0; - nread = 0; -#ifdef _MB_CAPABLE - memset (&state, 0, sizeof (state)); -#endif - - for (;;) - { -#ifndef _MB_CAPABLE - wc = *fmt; -#else - nbytes = __MBTOWC (rptr, &wc, (char *) fmt, MB_CUR_MAX, &state); - if (nbytes < 0) { - wc = 0xFFFD; /* Unicode replacement character */ - nbytes = 1; - memset (&state, 0, sizeof (state)); - } -#endif - fmt += nbytes; - - if (wc == 0) - goto all_done; - if (nbytes == 1 && isspace (wc)) - { - for (;;) - { - if (BufferEmpty || !isspace (*fp->_p)) - break; - nread++, fp->_r--, fp->_p++; - } - continue; - } - if (wc != '%') - goto literal; - width = 0; - flags = 0; -#ifndef _NO_POS_ARGS - N = arg_index; - is_pos_arg = 0; -#endif - - /* - * switch on the format. continue if done; break once format - * type is derived. - */ - - again: - c = *fmt++; - - switch (c) - { - case '%': - literal: - lptr = fmt - nbytes; - for (n = 0; n < nbytes; ++n) - { - if (BufferEmpty) - goto input_failure; - if (*fp->_p != *lptr) - goto match_failure; - fp->_r--, fp->_p++; - nread++; - ++lptr; - } - continue; - - case '*': - if ((flags & (CHAR | SHORT | LONG | LONGDBL | SUPPRESS | MALLOC)) - || width) - goto match_failure; - flags |= SUPPRESS; - goto again; - case 'l': - if (flags & (CHAR | SHORT | LONG | LONGDBL)) - goto match_failure; -#if defined _WANT_IO_C99_FORMATS || !defined _NO_LONGLONG - if (*fmt == 'l') /* Check for 'll' = long long (SUSv3) */ - { - ++fmt; - flags |= LONGDBL; - } - else -#endif - flags |= LONG; - goto again; - case 'L': - if (flags & (CHAR | SHORT | LONG | LONGDBL)) - goto match_failure; - flags |= LONGDBL; - goto again; - case 'h': - if (flags & (CHAR | SHORT | LONG | LONGDBL)) - goto match_failure; -#ifdef _WANT_IO_C99_FORMATS - if (*fmt == 'h') /* Check for 'hh' = char int (SUSv3) */ - { - ++fmt; - flags |= CHAR; - } - else -#endif - flags |= SHORT; - goto again; -#ifdef _WANT_IO_C99_FORMATS - case 'j': /* intmax_t */ - if (flags & (CHAR | SHORT | LONG | LONGDBL)) - goto match_failure; - if (sizeof (intmax_t) == sizeof (long)) - flags |= LONG; - else - flags |= LONGDBL; - goto again; - case 't': /* ptrdiff_t */ - if (flags & (CHAR | SHORT | LONG | LONGDBL)) - goto match_failure; - if (sizeof (ptrdiff_t) < sizeof (int)) - /* POSIX states ptrdiff_t is 16 or more bits, as - is short. */ - flags |= SHORT; - else if (sizeof (ptrdiff_t) == sizeof (int)) - /* no flag needed */; - else if (sizeof (ptrdiff_t) <= sizeof (long)) - flags |= LONG; - else - /* POSIX states that at least one programming - environment must support ptrdiff_t no wider than - long, but that means other environments can - have ptrdiff_t as wide as long long. */ - flags |= LONGDBL; - goto again; - case 'z': /* size_t */ - if (flags & (CHAR | SHORT | LONG | LONGDBL)) - goto match_failure; - if (sizeof (size_t) < sizeof (int)) - /* POSIX states size_t is 16 or more bits, as is short. */ - flags |= SHORT; - else if (sizeof (size_t) == sizeof (int)) - /* no flag needed */; - else if (sizeof (size_t) <= sizeof (long)) - flags |= LONG; - else - /* POSIX states that at least one programming - environment must support size_t no wider than - long, but that means other environments can - have size_t as wide as long long. */ - flags |= LONGDBL; - goto again; -#endif /* _WANT_IO_C99_FORMATS */ -#ifdef _WANT_IO_POSIX_EXTENSIONS - case 'm': - if (flags & (CHAR | SHORT | LONG | LONGDBL | MALLOC)) - goto match_failure; - init_m_ptr (); - flags |= MALLOC; - goto again; -#endif - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (flags & (CHAR | SHORT | LONG | LONGDBL | MALLOC)) - goto match_failure; - width = width * 10 + c - '0'; - goto again; - -#ifndef _NO_POS_ARGS - case '$': - if (flags & (CHAR | SHORT | LONG | LONGDBL | SUPPRESS | MALLOC)) - goto match_failure; - if (width <= MAX_POS_ARGS) - { - N = width - 1; - is_pos_arg = 1; - width = 0; - goto again; - } - _REENT_ERRNO(rptr) = EINVAL; - goto input_failure; -#endif /* !_NO_POS_ARGS */ - - /* - * Conversions. Those marked `compat' are for - * 4.[123]BSD compatibility. - * - * (According to ANSI, E and X formats are supposed to - * the same as e and x. Sorry about that.) - */ - - case 'D': /* compat */ - flags |= LONG; - /* FALLTHROUGH */ - case 'd': - c = CT_INT; - ccfn = (u_long (*)CCFN_PARAMS)_strtol_r; - base = 10; - break; - - case 'i': - c = CT_INT; - ccfn = (u_long (*)CCFN_PARAMS)_strtol_r; - base = 0; - break; - - case 'O': /* compat */ - flags |= LONG; - /* FALLTHROUGH */ - case 'o': - c = CT_INT; - ccfn = _strtoul_r; - base = 8; - break; - - case 'u': - c = CT_INT; - ccfn = _strtoul_r; - base = 10; - break; - - case 'X': - case 'x': - flags |= PFXOK; /* enable 0x prefixing */ - c = CT_INT; - ccfn = _strtoul_r; - base = 16; - break; - -#ifdef FLOATING_POINT -# ifdef _WANT_IO_C99_FORMATS - case 'a': - case 'A': - case 'F': -# endif - case 'E': - case 'G': - case 'e': - case 'f': - case 'g': - c = CT_FLOAT; - break; -#endif - -#ifdef _WANT_IO_C99_FORMATS - case 'S': - flags |= LONG; - /* FALLTHROUGH */ -#endif - - case 's': - c = CT_STRING; - break; - - case '[': - fmt = (u_char *) __sccl (ccltab, (unsigned char *) fmt); - flags |= NOSKIP; - c = CT_CCL; - break; - -#ifdef _WANT_IO_C99_FORMATS - case 'C': - flags |= LONG; - /* FALLTHROUGH */ -#endif - - case 'c': - flags |= NOSKIP; - c = CT_CHAR; - break; - - case 'p': /* pointer format is like hex */ - flags |= POINTER | PFXOK; - c = CT_INT; - ccfn = _strtoul_r; - base = 16; - break; - - case 'n': - if (flags & SUPPRESS) /* ??? */ - continue; -#ifdef _WANT_IO_C99_FORMATS - if (flags & CHAR) - { - cp = GET_ARG (N, ap, char *); - *cp = nread; - } - else -#endif - if (flags & SHORT) - { - sp = GET_ARG (N, ap, short *); - *sp = nread; - } - else if (flags & LONG) - { - lp = GET_ARG (N, ap, long *); - *lp = nread; - } -#ifndef _NO_LONGLONG - else if (flags & LONGDBL) - { - llp = GET_ARG (N, ap, long long*); - *llp = nread; - } -#endif - else - { - ip = GET_ARG (N, ap, int *); - *ip = nread; - } - continue; - - default: - goto match_failure; - } - - /* - * We have a conversion that requires input. - */ - if (BufferEmpty) - goto input_failure; - - /* - * Consume leading white space, except for formats that - * suppress this. - */ - if ((flags & NOSKIP) == 0) - { - while (isspace (*fp->_p)) - { - nread++; - if (--fp->_r > 0) - fp->_p++; - else - if (__srefill_r (rptr, fp)) - goto input_failure; - } - /* - * Note that there is at least one character in the - * buffer, so conversions that do not set NOSKIP ca - * no longer result in an input failure. - */ - } - - /* - * Do the conversion. - */ - switch (c) - { - - case CT_CHAR: - /* scan arbitrary characters (sets NOSKIP) */ - if (width == 0) - width = 1; -#if !defined(_ELIX_LEVEL) || _ELIX_LEVEL >= 2 - if (flags & LONG) - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - wchar_t **wcp_p = NULL; - wchar_t *wcp0 = NULL; - size_t wcp_siz = 0; -#endif - mbstate_t state; - if (flags & SUPPRESS) - wcp = NULL; -#ifdef _WANT_IO_POSIX_EXTENSIONS - else if (flags & MALLOC) - wcp_siz = alloc_m_ptr (wchar_t, wcp, wcp0, wcp_p, 32); -#endif - else - wcp = GET_ARG (N, ap, wchar_t *); - n = 0; - while (width != 0) - { - if (n == MB_CUR_MAX) - goto input_failure; - buf[n++] = *fp->_p; - fp->_r -= 1; - fp->_p += 1; - /* Got a high surrogate, allow low surrogate to slip - through */ - if (mbslen != 3 || state.__count != 4) - memset (&state, 0, sizeof (mbstate_t)); - if ((mbslen = _mbrtowc_r (rptr, wcp, buf, n, &state)) - == (size_t)-1) - goto input_failure; /* Invalid sequence */ - if (mbslen == 0 && !(flags & SUPPRESS)) - *wcp = L'\0'; - if (mbslen != (size_t)-2) /* Incomplete sequence */ - { - nread += n; - /* Handle high surrogate */ - if (mbslen != 3 || state.__count != 4) - width -= 1; - if (!(flags & SUPPRESS)) - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - wcp_siz = realloc_m_ptr (wchar_t, wcp, wcp0, wcp_p, - wcp_siz); -#endif - wcp++; - } - n = 0; - } - if (BufferEmpty) - { - if (n != 0) - goto input_failure; - break; - } - } -#ifdef _WANT_IO_POSIX_EXTENSIONS - shrink_m_ptr (wchar_t, wcp_p, wcp - wcp0, wcp_siz); -#endif - if (!(flags & SUPPRESS)) - nassigned++; - } - else -#endif /* ELIX_LEVEL */ - if (flags & SUPPRESS) - { - size_t sum = 0; - for (;;) - { - if ((n = fp->_r) < (int)width) - { - sum += n; - width -= n; - fp->_p += n; - if (__srefill_r (rptr, fp)) - { - if (sum == 0) - goto input_failure; - break; - } - } - else - { - sum += width; - fp->_r -= width; - fp->_p += width; - break; - } - } - nread += sum; - } - else - { - size_t r; -#ifdef _WANT_IO_POSIX_EXTENSIONS - char **p_p = NULL; - if (flags & MALLOC) - alloc_m_ptr (char, p, p0, p_p, width); - else -#endif - p = GET_ARG (N, ap, char *); - r = _fread_r (rptr, p, 1, width, fp); - if (r == 0) - goto input_failure; -#ifdef _WANT_IO_POSIX_EXTENSIONS - shrink_m_ptr (char, p_p, r, width); -#endif - nread += r; - nassigned++; - } - break; - - case CT_CCL: - /* scan a (nonempty) character class (sets NOSKIP) */ - if (width == 0) - width = SIZE_MAX; - /* take only those things in the class */ -#if !defined(_ELIX_LEVEL) || _ELIX_LEVEL >= 2 - if (flags & LONG) - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - wchar_t **wcp_p = NULL; - wchar_t *wcp0 = NULL; - size_t wcp_siz = 0; -#endif - mbstate_t state; - if (flags & SUPPRESS) - wcp = &wc; -#ifdef _WANT_IO_POSIX_EXTENSIONS - else if (flags & MALLOC) - wcp_siz = alloc_m_ptr (wchar_t, wcp, wcp0, wcp_p, 32); -#endif - else - wcp = GET_ARG (N, ap, wchar_t *); - n = 0; - while (width != 0) { - if (n == MB_CUR_MAX) - goto input_failure; - buf[n++] = *fp->_p; - fp->_r -= 1; - fp->_p += 1; - /* Got a high surrogate, allow low surrogate to slip - through */ - if (mbslen != 3 || state.__count != 4) - memset (&state, 0, sizeof (mbstate_t)); - if ((mbslen = _mbrtowc_r (rptr, wcp, buf, n, &state)) - == (size_t)-1) - goto input_failure; - if (mbslen == 0) - *wcp = L'\0'; - if (mbslen != (size_t)-2) /* Incomplete sequence */ - { - if (!ccltab[__wctob (rptr, *wcp)]) - { - while (n != 0) - _ungetc_r (rptr, (unsigned char) buf[--n], fp); - break; - } - nread += n; - /* Handle high surrogate */ - if (mbslen != 3 || state.__count != 4) - width -= 1; - if ((flags & SUPPRESS) == 0) - { - wcp += 1; -#ifdef _WANT_IO_POSIX_EXTENSIONS - wcp_siz = realloc_m_ptr (wchar_t, wcp, wcp0, wcp_p, - wcp_siz); -#endif - } - n = 0; - } - if (BufferEmpty) - { - if (n != 0) - goto input_failure; - break; - } - } - if (!(flags & SUPPRESS)) - { - *wcp = L'\0'; -#ifdef _WANT_IO_POSIX_EXTENSIONS - shrink_m_ptr (wchar_t, wcp_p, wcp - wcp0 + 1, wcp_siz); -#endif - nassigned++; - } - } - else -#endif /* ELIX_LEVEL */ - if (flags & SUPPRESS) - { - n = 0; - while (ccltab[*fp->_p]) - { - n++, fp->_r--, fp->_p++; - if (--width == 0) - break; - if (BufferEmpty) - { - if (n == 0) - goto input_failure; - break; - } - } - if (n == 0) - goto match_failure; - nread += n; - } - else - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - char **p_p = NULL; - size_t p_siz = 0; - - if (flags & MALLOC) - p_siz = alloc_m_ptr (char, p, p0, p_p, 32); - else -#endif - p0 = p = GET_ARG (N, ap, char *); - while (ccltab[*fp->_p]) - { - fp->_r--; - *p++ = *fp->_p++; -#ifdef _WANT_IO_POSIX_EXTENSIONS - p_siz = realloc_m_ptr (char, p, p0, p_p, p_siz); -#endif - if (--width == 0) - break; - if (BufferEmpty) - { - if (p == p0) - goto input_failure; - break; - } - } - n = p - p0; - if (n == 0) - goto match_failure; - *p = 0; -#ifdef _WANT_IO_POSIX_EXTENSIONS - shrink_m_ptr (char, p_p, n + 1, p_siz); -#endif - nassigned++; - nread += n; - } - break; - - case CT_STRING: - /* like CCL, but zero-length string OK, & no NOSKIP */ - if (width == 0) - width = SIZE_MAX; -#if !defined(_ELIX_LEVEL) || _ELIX_LEVEL >= 2 - if (flags & LONG) - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - wchar_t **wcp_p = NULL; - wchar_t *wcp0 = NULL; - size_t wcp_siz = 0; -#endif - /* Process %S and %ls placeholders */ - mbstate_t state; - if (flags & SUPPRESS) - wcp = &wc; -#ifdef _WANT_IO_POSIX_EXTENSIONS - else if (flags & MALLOC) - wcp_siz = alloc_m_ptr (wchar_t, wcp, wcp0, wcp_p, 32); -#endif - else - wcp = GET_ARG (N, ap, wchar_t *); - n = 0; - while (!isspace (*fp->_p) && width != 0) - { - if (n == MB_CUR_MAX) - goto input_failure; - buf[n++] = *fp->_p; - fp->_r -= 1; - fp->_p += 1; - /* Got a high surrogate, allow low surrogate to slip - through */ - if (mbslen != 3 || state.__count != 4) - memset (&state, 0, sizeof (mbstate_t)); - if ((mbslen = _mbrtowc_r (rptr, wcp, buf, n, &state)) - == (size_t)-1) - goto input_failure; - if (mbslen == 0) - *wcp = L'\0'; - if (mbslen != (size_t)-2) /* Incomplete sequence */ - { - if (iswspace(*wcp)) - { - while (n != 0) - _ungetc_r (rptr, (unsigned char) buf[--n], fp); - break; - } - nread += n; - /* Handle high surrogate */ - if (mbslen != 3 || state.__count != 4) - width -= 1; - if ((flags & SUPPRESS) == 0) - { - wcp += 1; -#ifdef _WANT_IO_POSIX_EXTENSIONS - wcp_siz = realloc_m_ptr (wchar_t, wcp, wcp0, wcp_p, - wcp_siz); -#endif - } - n = 0; - } - if (BufferEmpty) - { - if (n != 0) - goto input_failure; - break; - } - } - if (!(flags & SUPPRESS)) - { - *wcp = L'\0'; -#ifdef _WANT_IO_POSIX_EXTENSIONS - shrink_m_ptr (wchar_t, wcp_p, wcp - wcp0 + 1, wcp_siz); -#endif - nassigned++; - } - } - else -#endif - if (flags & SUPPRESS) - { - n = 0; - while (!isspace (*fp->_p)) - { - n++, fp->_r--, fp->_p++; - if (--width == 0) - break; - if (BufferEmpty) - break; - } - nread += n; - } - else - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - char **p_p = NULL; - size_t p_siz = 0; - - if (flags & MALLOC) - p_siz = alloc_m_ptr (char, p, p0, p_p, 32); - else -#endif - p0 = GET_ARG (N, ap, char *); - p = p0; - while (!isspace (*fp->_p)) - { - fp->_r--; - *p++ = *fp->_p++; -#ifdef _WANT_IO_POSIX_EXTENSIONS - p_siz = realloc_m_ptr (char, p, p0, p_p, p_siz); -#endif - if (--width == 0) - break; - if (BufferEmpty) - break; - } - *p = 0; -#ifdef _WANT_IO_POSIX_EXTENSIONS - shrink_m_ptr (char, p_p, p - p0 + 1, p_siz); -#endif - nread += p - p0; - nassigned++; - } - continue; - - case CT_INT: - { - /* scan an integer as if by strtol/strtoul */ - unsigned width_left = 0; - int skips = 0; -#ifdef hardway - if (width == 0 || width > sizeof (buf) - 1) -#else - /* size_t is unsigned, hence this optimisation */ - if (width - 1 > sizeof (buf) - 2) -#endif - { - width_left = width - (sizeof (buf) - 1); - width = sizeof (buf) - 1; - } - flags |= SIGNOK | NDIGITS | NZDIGITS | NNZDIGITS; - for (p = buf; width; width--) - { - c = *fp->_p; - /* - * Switch on the character; `goto ok' if we - * accept it as a part of number. - */ - switch (c) - { - /* - * The digit 0 is always legal, but is special. - * For %i conversions, if no digits (zero or nonzero) - * have been scanned (only signs), we will have base==0. - * In that case, we should set it to 8 and enable 0x - * prefixing. Also, if we have not scanned zero digits - * before this, do not turn off prefixing (someone else - * will turn it off if we have scanned any nonzero digits). - */ - case '0': - if (! (flags & NNZDIGITS)) - goto ok; - if (base == 0) - { - base = 8; - flags |= PFXOK; - } - if (flags & NZDIGITS) - { - flags &= ~(SIGNOK | NZDIGITS | NDIGITS); - goto ok; - } - flags &= ~(SIGNOK | PFXOK | NDIGITS); - if (width_left) - { - width_left--; - width++; - } - ++skips; - goto skip; - - /* 1 through 7 always legal */ - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - base = basefix[base]; - flags &= ~(SIGNOK | PFXOK | NDIGITS | NNZDIGITS); - goto ok; - - /* digits 8 and 9 ok iff decimal or hex */ - case '8': - case '9': - base = basefix[base]; - if (base <= 8) - break; /* not legal here */ - flags &= ~(SIGNOK | PFXOK | NDIGITS | NNZDIGITS); - goto ok; - - /* letters ok iff hex */ - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - /* no need to fix base here */ - if (base <= 10) - break; /* not legal here */ - flags &= ~(SIGNOK | PFXOK | NDIGITS | NNZDIGITS); - goto ok; - - /* sign ok only as first character */ - case '+': - case '-': - if (flags & SIGNOK) - { - flags &= ~SIGNOK; - goto ok; - } - break; - - /* x ok iff flag still set & single 0 seen */ - case 'x': - case 'X': - if ((flags & (PFXOK | NZDIGITS)) == PFXOK) - { - base = 16;/* if %i */ - flags &= ~PFXOK; - /* We must reset the NZDIGITS and NDIGITS - flags that would have been unset by seeing - the zero that preceded the X or x. */ - flags |= NZDIGITS | NDIGITS; - goto ok; - } - break; - } - - /* - * If we got here, c is not a legal character - * for a number. Stop accumulating digits. - */ - break; - ok: - /* - * c is legal: store it and look at the next. - */ - *p++ = c; - skip: - if (--fp->_r > 0) - fp->_p++; - else - if (__srefill_r (rptr, fp)) - break; /* EOF */ - } - /* - * If we had only a sign, it is no good; push back the sign. - * If the number ends in `x', it was [sign] '0' 'x', so push back - * the x and treat it as [sign] '0'. - * Use of ungetc here and below assumes ASCII encoding; we are only - * pushing back 7-bit characters, so casting to unsigned char is - * not necessary. - */ - if (flags & NDIGITS) - { - if (p > buf) - _ungetc_r (rptr, *--p, fp); /* [-+xX] */ - if (p == buf) - goto match_failure; - } - if ((flags & SUPPRESS) == 0) - { - u_long res; - - *p = 0; - res = (*ccfn) (rptr, buf, (char **) NULL, base); - if (flags & POINTER) - { - void **vp = GET_ARG (N, ap, void **); -#ifndef _NO_LONGLONG - if (sizeof (uintptr_t) > sizeof (u_long)) - { - u_long_long resll; - resll = _strtoull_r (rptr, buf, (char **) NULL, base); - *vp = (void *) (uintptr_t) resll; - } - else -#endif /* !_NO_LONGLONG */ - *vp = (void *) (uintptr_t) res; - } -#ifdef _WANT_IO_C99_FORMATS - else if (flags & CHAR) - { - cp = GET_ARG (N, ap, char *); - *cp = res; - } -#endif - else if (flags & SHORT) - { - sp = GET_ARG (N, ap, short *); - *sp = res; - } - else if (flags & LONG) - { - lp = GET_ARG (N, ap, long *); - *lp = res; - } -#ifndef _NO_LONGLONG - else if (flags & LONGDBL) - { - u_long_long resll; - if (ccfn == _strtoul_r) - resll = _strtoull_r (rptr, buf, (char **) NULL, base); - else - resll = _strtoll_r (rptr, buf, (char **) NULL, base); - llp = GET_ARG (N, ap, long long*); - *llp = resll; - } -#endif - else - { - ip = GET_ARG (N, ap, int *); - *ip = res; - } - nassigned++; - } - nread += p - buf + skips; - break; - } -#ifdef FLOATING_POINT - case CT_FLOAT: - { - /* scan a floating point number as if by strtod */ - /* This code used to assume that the number of digits is reasonable. - However, ANSI / ISO C makes no such stipulation; we have to get - exact results even when there is an unreasonable amount of - leading zeroes. */ - long leading_zeroes = 0; - long zeroes, exp_adjust; - char *exp_start = NULL; - unsigned width_left = 0; - char nancount = 0; - char infcount = 0; - const char *decpt = _localeconv_r (rptr)->decimal_point; -#ifdef _MB_CAPABLE - int decptpos = 0; -#endif -#ifdef hardway - if (width == 0 || width > sizeof (buf) - 1) -#else - /* size_t is unsigned, hence this optimisation */ - if (width - 1 > sizeof (buf) - 2) -#endif - { - width_left = width - (sizeof (buf) - 1); - width = sizeof (buf) - 1; - } - flags |= SIGNOK | NDIGITS | DPTOK | EXPOK; - zeroes = 0; - exp_adjust = 0; - for (p = buf; width; ) - { - c = *fp->_p; - /* - * This code mimicks the integer conversion - * code, but is much simpler. - */ - switch (c) - { - case '0': - if (flags & NDIGITS) - { - flags &= ~SIGNOK; - zeroes++; - if (width_left) - { - width_left--; - width++; - } - goto fskip; - } - /* Fall through. */ - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (nancount + infcount == 0) - { - flags &= ~(SIGNOK | NDIGITS); - goto fok; - } - break; - - /* Chars a, e and f have various special meanings apart from - their hex value. They are handled separately, see below. */ - case 'b': - case 'B': - case 'c': - case 'C': - case 'd': - case 'D': - if ((flags & HEXFLT) && nancount + infcount == 0) - { - flags &= ~(SIGNOK | NDIGITS); - goto fok; - } - break; - - case 'x': - case 'X': - /* Did we have exactly one leading zero yet? */ - if ((flags & (SIGNOK | NDIGITS | HEXFLT)) == NDIGITS - && zeroes == 1) - { - flags |= HEXFLT; - flags &= ~NDIGITS; - /* We skipped the first zero, so we have to add - it now to the buffer. */ - *p++ = '0'; - width--; - zeroes = 0; - goto fok; - } - break; - - case '+': - case '-': - if (flags & SIGNOK) - { - flags &= ~SIGNOK; - goto fok; - } - break; - case 'n': - case 'N': - if (nancount == 0 && zeroes == 0 - && (flags & (NDIGITS | DPTOK | EXPOK)) == - (NDIGITS | DPTOK | EXPOK)) - { - flags &= ~(SIGNOK | DPTOK | EXPOK | NDIGITS); - nancount = 1; - goto fok; - } - if (nancount == 2) - { - nancount = 3; - goto fok; - } - if (infcount == 1 || infcount == 4) - { - infcount++; - goto fok; - } - break; - case 'a': - case 'A': - if ((flags & HEXFLT) && nancount + infcount == 0) - { - flags &= ~(SIGNOK | NDIGITS); - goto fok; - } - if (nancount == 1) - { - nancount = 2; - goto fok; - } - break; - case 'i': - case 'I': - if (infcount == 0 && zeroes == 0 - && (flags & (NDIGITS | DPTOK | EXPOK)) == - (NDIGITS | DPTOK | EXPOK)) - { - flags &= ~(SIGNOK | DPTOK | EXPOK | NDIGITS); - infcount = 1; - goto fok; - } - if (infcount == 3 || infcount == 5) - { - infcount++; - goto fok; - } - break; - case 'f': - case 'F': - if ((flags & HEXFLT) && nancount + infcount == 0) - { - flags &= ~(SIGNOK | NDIGITS); - goto fok; - } - if (infcount == 2) - { - infcount = 3; - goto fok; - } - break; - case 't': - case 'T': - if (infcount == 6) - { - infcount = 7; - goto fok; - } - break; - case 'y': - case 'Y': - if (infcount == 7) - { - infcount = 8; - goto fok; - } - break; - - case 'p': - case 'P': - /* p is the exponent marker in hex case. */ - if (!(flags & HEXFLT)) - break; - goto fexp; - case 'e': - case 'E': - /* e is just a digit in hex case, not the exponent marker. */ - if (flags & HEXFLT) - { - if (nancount + infcount == 0) - { - flags &= ~(SIGNOK | NDIGITS); - goto fok; - } - break; - } - - fexp: - /* no exponent without some digits */ - if ((flags & (NDIGITS | EXPOK)) == EXPOK - || ((flags & EXPOK) && zeroes)) - { - if (! (flags & DPTOK)) - { - exp_adjust = zeroes - leading_zeroes; - exp_start = p; - } - flags = - (flags & ~(EXPOK | DPTOK | HEXFLT)) | - SIGNOK | NDIGITS; - zeroes = 0; - goto fok; - } - break; - default: -#ifndef _MB_CAPABLE - if ((unsigned char) c == (unsigned char) decpt[0] - && (flags & DPTOK)) - { - flags &= ~(SIGNOK | DPTOK); - leading_zeroes = zeroes; - goto fok; - } - break; -#else - if (flags & DPTOK) - { - while ((unsigned char) c - == (unsigned char) decpt[decptpos]) - { - if (decpt[++decptpos] == '\0') - { - /* We read the complete decpt seq. */ - flags &= ~(SIGNOK | DPTOK); - leading_zeroes = zeroes; - p = stpncpy (p, decpt, decptpos); - decptpos = 0; - goto fskip; - } - ++nread; - if (--fp->_r > 0) - fp->_p++; - else if (__srefill_r (rptr, fp)) - break; /* EOF */ - c = *fp->_p; - } - if (decptpos > 0) - { - /* We read part of a multibyte decimal point, - but the rest is invalid or we're at EOF, - so back off. */ - while (decptpos-- > 0) - { - _ungetc_r (rptr, (unsigned char) decpt[decptpos], - fp); - --nread; - } - } - } - break; -#endif - } - break; - fok: - *p++ = c; - fskip: - width--; - ++nread; - if (--fp->_r > 0) - fp->_p++; - else - if (__srefill_r (rptr, fp)) - break; /* EOF */ - } - if (zeroes) - flags &= ~NDIGITS; - /* We may have a 'N' or possibly even [sign] 'N' 'a' as the - start of 'NaN', only to run out of chars before it was - complete (or having encountered a non-matching char). So - check here if we have an outstanding nancount, and if so - put back the chars we did swallow and treat as a failed - match. - - FIXME - we still don't handle NAN([0xdigits]). */ - if (nancount - 1U < 2U) /* nancount && nancount < 3 */ - { - /* Newlib's ungetc works even if we called __srefill in - the middle of a partial parse, but POSIX does not - guarantee that in all implementations of ungetc. */ - while (p > buf) - { - _ungetc_r (rptr, *--p, fp); /* [-+nNaA] */ - --nread; - } - goto match_failure; - } - /* Likewise for 'inf' and 'infinity'. But be careful that - 'infinite' consumes only 3 characters, leaving the stream - at the second 'i'. */ - if (infcount - 1U < 7U) /* infcount && infcount < 8 */ - { - if (infcount >= 3) /* valid 'inf', but short of 'infinity' */ - while (infcount-- > 3) - { - _ungetc_r (rptr, *--p, fp); /* [iInNtT] */ - --nread; - } - else - { - while (p > buf) - { - _ungetc_r (rptr, *--p, fp); /* [-+iInN] */ - --nread; - } - goto match_failure; - } - } - /* - * If no digits, might be missing exponent digits - * (just give back the exponent) or might be missing - * regular digits, but had sign and/or decimal point. - */ - if (flags & NDIGITS) - { - if (flags & EXPOK) - { - /* no digits at all */ - while (p > buf) - { - _ungetc_r (rptr, *--p, fp); /* [-+.] */ - --nread; - } - goto match_failure; - } - /* just a bad exponent (e and maybe sign) */ - c = *--p; - --nread; - if (c != 'e' && c != 'E') - { - _ungetc_r (rptr, c, fp); /* [-+] */ - c = *--p; - --nread; - } - _ungetc_r (rptr, c, fp); /* [eE] */ - } - if ((flags & SUPPRESS) == 0) - { - double res = 0; -#ifdef _NO_LONGDBL -#define QUAD_RES res; -#else /* !_NO_LONG_DBL */ - long double qres = 0; -#define QUAD_RES qres; -#endif /* !_NO_LONG_DBL */ - long new_exp = 0; - - *p = 0; - if ((flags & (DPTOK | EXPOK)) == EXPOK) - { - exp_adjust = zeroes - leading_zeroes; - new_exp = -exp_adjust; - exp_start = p; - } - else if (exp_adjust) - new_exp = _strtol_r (rptr, (exp_start + 1), NULL, 10) - exp_adjust; - if (exp_adjust) - { - - /* If there might not be enough space for the new exponent, - truncate some trailing digits to make room. */ - if (exp_start >= buf + sizeof (buf) - MAX_LONG_LEN) - exp_start = buf + sizeof (buf) - MAX_LONG_LEN - 1; - sprintf (exp_start, "e%ld", new_exp); - } - - /* FIXME: Is that still true? - Current _strtold routine is markedly slower than - _strtod_r. Only use it if we have a long double - result. */ -#ifndef _NO_LONGDBL /* !_NO_LONGDBL */ - if (flags & LONGDBL) - qres = _strtold_r (rptr, buf, NULL); - else -#endif - res = _strtod_r (rptr, buf, NULL); - - if (flags & LONG) - { - dp = GET_ARG (N, ap, double *); - *dp = res; - } - else if (flags & LONGDBL) - { - ldp = GET_ARG (N, ap, _LONG_DOUBLE *); - *ldp = QUAD_RES; - } - else - { - flp = GET_ARG (N, ap, float *); - if (isnan (res)) - *flp = nanf (""); - else - *flp = res; - } - nassigned++; - } - break; - } -#endif /* FLOATING_POINT */ - } - } -input_failure: - /* On read failure, return EOF failure regardless of matches; errno - should have been set prior to here. On EOF failure (including - invalid format string), return EOF if no matches yet, else number - of matches made prior to failure. */ - nassigned = nassigned && !(fp->_flags & __SERR) ? nassigned : EOF; -match_failure: -all_done: - /* Return number of matches, which can be 0 on match failure. */ - _newlib_flockfile_end (fp); -#ifdef _WANT_IO_POSIX_EXTENSIONS - free_m_ptr (); -#endif - return nassigned; -} - -#ifndef _NO_POS_ARGS -/* Process all intermediate arguments. Fortunately, with scanf, all - intermediate arguments are sizeof(void*), so we don't need to scan - ahead in the format string. */ -static void * -get_arg (int n, va_list *ap, int *numargs_p, void **args) -{ - int numargs = *numargs_p; - while (n >= numargs) - args[numargs++] = va_arg (*ap, void *); - *numargs_p = numargs; - return args[n]; -} -#endif /* !_NO_POS_ARGS */ diff --git a/lib/stdio/vfwprintf.c b/lib/stdio/vfwprintf.c deleted file mode 100644 index 7807a12..0000000 --- a/lib/stdio/vfwprintf.c +++ /dev/null @@ -1,2016 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* -FUNCTION -<>, <>, <>---wide character format argument list - -INDEX - vfwprintf -INDEX - _vfwprintf_r -INDEX - vwprintf -INDEX - _vwprintf_r -INDEX - vswprintf -INDEX - _vswprintf_r - -SYNOPSIS - #include - #include - #include - int vwprintf(const wchar_t *__restrict <[fmt]>, va_list <[list]>); - int vfwprintf(FILE *__restrict <[fp]>, - const wchar_t *__restrict <[fmt]>, va_list <[list]>); - int vswprintf(wchar_t * __restrict <[str]>, size_t <[size]>, - const wchar_t *__ restrict <[fmt]>, va_list <[list]>); - - int _vwprintf_r(struct _reent *<[reent]>, const wchar_t *<[fmt]>, - va_list <[list]>); - int _vfwprintf_r(struct _reent *<[reent]>, FILE *<[fp]>, - const wchar_t *<[fmt]>, va_list <[list]>); - int _vswprintf_r(struct _reent *<[reent]>, wchar_t *<[str]>, - size_t <[size]>, const wchar_t *<[fmt]>, va_list <[list]>); - -DESCRIPTION -<>, <> and <> are (respectively) variants -of <>, <> and <>. They differ only in allowing -their caller to pass the variable argument list as a <> object -(initialized by <>) rather than directly accepting a variable -number of arguments. The caller is responsible for calling <>. - -<<_vwprintf_r>>, <<_vfwprintf_r>> and <<_vswprintf_r>> are reentrant -versions of the above. - -RETURNS -The return values are consistent with the corresponding functions. - -PORTABILITY -POSIX-1.2008 with extensions; C99 (compliant except for POSIX extensions). - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. - -SEEALSO -<>, <> and <>. -*/ - -/* - * Actual wprintf innards. - * - * This code is large and complicated... - */ -#include - -#ifdef INTEGER_ONLY -# define VFWPRINTF vfiwprintf -# ifdef STRING_ONLY -# define _VFWPRINTF_R _svfiwprintf_r -# else -# define _VFWPRINTF_R _vfiwprintf_r -# endif -#else -# define VFWPRINTF vfwprintf -# ifdef STRING_ONLY -# define _VFWPRINTF_R _svfwprintf_r -# else -# define _VFWPRINTF_R _vfwprintf_r -# endif -# ifndef NO_FLOATING_POINT -# define FLOATING_POINT -# endif -#endif - -#define _NO_POS_ARGS -#ifdef _WANT_IO_POS_ARGS -# undef _NO_POS_ARGS -#endif - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" -#include "fvwrite.h" -#include "vfieeefp.h" -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ -#include "../locale/setlocale.h" -#endif - -/* Currently a test is made to see if long double processing is warranted. - This could be changed in the future should the _ldtoa_r code be - preferred over _dtoa_r. */ -#define _NO_LONGDBL -#if defined _WANT_IO_LONG_DOUBLE && (LDBL_MANT_DIG > DBL_MANT_DIG) -#undef _NO_LONGDBL -#endif - -#define _NO_LONGLONG -#if defined _WANT_IO_LONG_LONG \ - && (defined __GNUC__ || __STDC_VERSION__ >= 199901L) -# undef _NO_LONGLONG -#endif - -int _VFWPRINTF_R (struct _reent *, FILE *, const wchar_t *, va_list); -/* Defined in vfprintf.c. */ -#ifdef _FVWRITE_IN_STREAMIO -# ifdef STRING_ONLY -# define __SPRINT __ssprint_r -# else -# define __SPRINT __sprint_r -# endif -int __SPRINT (struct _reent *, FILE *, register struct __suio *); -#else -# ifdef STRING_ONLY -# define __SPRINT __ssputs_r -# else -# define __SPRINT __sfputs_r -# endif -int __SPRINT (struct _reent *, FILE *, const char *, size_t); -#endif -#ifndef STRING_ONLY -#ifdef _UNBUF_STREAM_OPT -/* - * Helper function for `fprintf to unbuffered unix file': creates a - * temporary buffer. We only work on write-only files; this avoids - * worries about ungetc buffers and so forth. - */ -static int -__sbwprintf (struct _reent *rptr, - register FILE *fp, - const wchar_t *fmt, - va_list ap) -{ - int ret; - FILE fake; - unsigned char buf[BUFSIZ]; - - /* copy the important variables */ - fake._flags = fp->_flags & ~__SNBF; - fake._flags2 = fp->_flags2; - fake._file = fp->_file; - fake._cookie = fp->_cookie; - fake._write = fp->_write; - - /* set up the buffer */ - fake._bf._base = fake._p = buf; - fake._bf._size = fake._w = sizeof (buf); - fake._lbfsize = 0; /* not actually used, but Just In Case */ -#ifndef __SINGLE_THREAD__ - __lock_init_recursive (fake._lock); -#endif - - /* do the work, then copy any error status */ - ret = _VFWPRINTF_R (rptr, &fake, fmt, ap); - if (ret >= 0 && _fflush_r (rptr, &fake)) - ret = EOF; - if (fake._flags & __SERR) - fp->_flags |= __SERR; - -#ifndef __SINGLE_THREAD__ - __lock_close_recursive (fake._lock); -#endif - return (ret); -} -#endif /* _UNBUF_STREAM_OPT */ -#endif /* !STRING_ONLY */ - - -#if defined (FLOATING_POINT) || defined (_WANT_IO_C99_FORMATS) -# include -#endif -#ifdef FLOATING_POINT -# include - -/* For %La, an exponent of 15 bits occupies the exponent character, a - sign, and up to 5 digits. */ -# define MAXEXPLEN 7 -# define DEFPREC 6 - -# ifdef _NO_LONGDBL - -extern char *_dtoa_r (struct _reent *, double, int, - int, int *, int *, char **); - -# define _PRINTF_FLOAT_TYPE double -# define _DTOA_R _dtoa_r -# define FREXP frexp - -# else /* !_NO_LONGDBL */ - -extern char *_ldtoa_r (struct _reent *, _LONG_DOUBLE, int, - int, int *, int *, char **); - -extern int _ldcheck (_LONG_DOUBLE *); - -# define _PRINTF_FLOAT_TYPE _LONG_DOUBLE -# define _DTOA_R _ldtoa_r -# define FREXP frexpl -# endif /* !_NO_LONGDBL */ - -static wchar_t *wcvt(struct _reent *, _PRINTF_FLOAT_TYPE, int, int, wchar_t *, - int *, int, int *, wchar_t *, int); - -static int wexponent(wchar_t *, int, int); - -#endif /* FLOATING_POINT */ - -/* BUF must be big enough for the maximum %#llo (assuming long long is - at most 64 bits, this would be 23 characters), the maximum - multibyte character %C, and the maximum default precision of %La - (assuming long double is at most 128 bits with 113 bits of - mantissa, this would be 29 characters). %e, %f, and %g use - reentrant storage shared with mprec. All other formats that use - buf get by with fewer characters. Making BUF slightly bigger - reduces the need for malloc in %.*a and %ls/%S, when large precision or - long strings are processed. - The bigger size of 100 bytes is used on systems which allow number - strings using the locale's grouping character. Since that's a multibyte - value, we should use a conservative value. - */ -#ifdef _WANT_IO_C99_FORMATS -#define BUF 100 -#else -#define BUF 40 -#endif -#if defined _MB_CAPABLE && MB_LEN_MAX > BUF -# undef BUF -# define BUF MB_LEN_MAX -#endif - -#ifndef _NO_LONGLONG -# define quad_t long long -# define u_quad_t unsigned long long -#else -# define quad_t long -# define u_quad_t unsigned long -#endif - -typedef quad_t * quad_ptr_t; -typedef void *void_ptr_t; -typedef char * char_ptr_t; -typedef wchar_t* wchar_ptr_t; -typedef long * long_ptr_t; -typedef int * int_ptr_t; -typedef short * short_ptr_t; - -#ifndef _NO_POS_ARGS -# ifdef NL_ARGMAX -# define MAX_POS_ARGS NL_ARGMAX -# else -# define MAX_POS_ARGS 32 -# endif - -union arg_val -{ - int val_int; - u_int val_u_int; - long val_long; - u_long val_u_long; - float val_float; - double val_double; - _LONG_DOUBLE val__LONG_DOUBLE; - int_ptr_t val_int_ptr_t; - short_ptr_t val_short_ptr_t; - long_ptr_t val_long_ptr_t; - char_ptr_t val_char_ptr_t; - wchar_ptr_t val_wchar_ptr_t; - quad_ptr_t val_quad_ptr_t; - void_ptr_t val_void_ptr_t; - quad_t val_quad_t; - u_quad_t val_u_quad_t; - wint_t val_wint_t; -}; - -static union arg_val * -get_arg (struct _reent *data, int n, wchar_t *fmt, - va_list *ap, int *numargs, union arg_val *args, - int *arg_type, wchar_t **last_fmt); -#endif /* !_NO_POS_ARGS */ - -/* - * Macros for converting digits to letters and vice versa - */ -#define to_digit(c) ((c) - L'0') -#define is_digit(c) ((unsigned)to_digit (c) <= 9) -#define to_char(n) ((n) + L'0') - -/* - * Flags used during conversion. - */ -#define ALT 0x001 /* alternate form */ -#define HEXPREFIX 0x002 /* add 0x or 0X prefix */ -#define LADJUST 0x004 /* left adjustment */ -#define LONGDBL 0x008 /* long double */ -#define LONGINT 0x010 /* long integer */ -#ifndef _NO_LONGLONG -# define QUADINT 0x020 /* quad integer */ -#else /* ifdef _NO_LONGLONG, make QUADINT equivalent to LONGINT, so - that %lld behaves the same as %ld, not as %d, as expected if: - sizeof (long long) = sizeof long > sizeof int */ -# define QUADINT LONGINT -#endif -#define SHORTINT 0x040 /* short integer */ -#define ZEROPAD 0x080 /* zero (as opposed to blank) pad */ -#define FPT 0x100 /* Floating point number */ -#ifdef _WANT_IO_C99_FORMATS -# define CHARINT 0x200 /* char as integer */ -#else /* define as 0, to make SARG and UARG occupy fewer instructions */ -# define CHARINT 0 -#endif -#ifdef _WANT_IO_C99_FORMATS -# define GROUPING 0x400 /* use grouping ("'" flag) */ -#endif - -#ifndef STRING_ONLY -int -VFWPRINTF (FILE *__restrict fp, - const wchar_t *__restrict fmt0, - va_list ap) -{ - int result; - result = _VFWPRINTF_R (_REENT, fp, fmt0, ap); - return result; -} -#endif /* STRING_ONLY */ - -int -_VFWPRINTF_R (struct _reent *data, - FILE * fp, - const wchar_t *fmt0, - va_list ap) -{ - register wchar_t *fmt; /* format string */ - register wint_t ch; /* character from fmt */ - register int n, m; /* handy integers (short term usage) */ - register wchar_t *cp; /* handy char pointer (short term usage) */ - register int flags; /* flags as above */ - wchar_t *fmt_anchor; /* current format spec being processed */ -#ifndef _NO_POS_ARGS - int N; /* arg number */ - int arg_index; /* index into args processed directly */ - int numargs; /* number of varargs read */ - wchar_t *saved_fmt; /* saved fmt pointer */ - union arg_val args[MAX_POS_ARGS]; - int arg_type[MAX_POS_ARGS]; - int is_pos_arg; /* is current format positional? */ - int old_is_pos_arg; /* is current format positional? */ -#endif - int ret; /* return value accumulator */ - int width; /* width from format (%8d), or 0 */ - int prec; /* precision from format (%.3d), or -1 */ - wchar_t sign; /* sign prefix (' ', '+', '-', or \0) */ -#ifdef _WANT_IO_C99_FORMATS - /* locale specific numeric grouping */ - wchar_t thousands_sep = L'\0'; - const char *grouping = NULL; -#endif -#if defined (_MB_CAPABLE) && !defined (__HAVE_LOCALE_INFO_EXTENDED__) \ - && (defined (FLOATING_POINT) || defined (_WANT_IO_C99_FORMATS)) - mbstate_t state; /* mbtowc calls from library must not change state */ -#endif -#ifdef FLOATING_POINT - wchar_t decimal_point; - wchar_t softsign; /* temporary negative sign for floats */ - union { int i; _PRINTF_FLOAT_TYPE fp; } _double_ = {0}; -# define _fpvalue (_double_.fp) - int expt; /* integer value of exponent */ - int expsize = 0; /* character count for expstr */ - wchar_t expstr[MAXEXPLEN]; /* buffer for exponent string */ - int lead; /* sig figs before decimal or group sep */ -#endif /* FLOATING_POINT */ -#if defined (FLOATING_POINT) || defined (_WANT_IO_C99_FORMATS) - int ndig = 0; /* actual number of digits returned by cvt */ -#endif -#if defined (FLOATING_POINT) && defined (_WANT_IO_C99_FORMATS) - int nseps; /* number of group separators with ' */ - int nrepeats; /* number of repeats of the last group */ -#endif - u_quad_t _uquad; /* integer arguments %[diouxX] */ - enum { OCT, DEC, HEX } base;/* base for [diouxX] conversion */ - int dprec; /* a copy of prec if [diouxX], 0 otherwise */ - int realsz; /* field size expanded by dprec */ - int size = 0; /* size of converted field or string */ - wchar_t *xdigs = NULL; /* digits for [xX] conversion */ -#ifdef _FVWRITE_IN_STREAMIO -#define NIOV 8 - struct __suio uio; /* output information: summary */ - struct __siov iov[NIOV];/* ... and individual io vectors */ - register struct __siov *iovp;/* for PRINT macro */ -#endif - wchar_t buf[BUF]; /* space for %c, %ls/%S, %[diouxX], %[aA] */ - wchar_t ox[2]; /* space for 0x hex-prefix */ - wchar_t *malloc_buf = NULL;/* handy pointer for malloced buffers */ - - /* - * Choose PADSIZE to trade efficiency vs. size. If larger printf - * fields occur frequently, increase PADSIZE and make the initialisers - * below longer. - */ -#define PADSIZE 16 /* pad chunk size */ - static const wchar_t blanks[PADSIZE] = - {L' ',L' ',L' ',L' ',L' ',L' ',L' ',L' ', - L' ',L' ',L' ',L' ',L' ',L' ',L' ',L' '}; - static const wchar_t zeroes[PADSIZE] = - {L'0',L'0',L'0',L'0',L'0',L'0',L'0',L'0', - L'0',L'0',L'0',L'0',L'0',L'0',L'0',L'0'}; - -#ifdef FLOATING_POINT -#ifdef _MB_CAPABLE -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - decimal_point = *__get_current_numeric_locale ()->wdecimal_point; -#else - { - size_t nconv; - - memset (&state, '\0', sizeof (state)); - nconv = _mbrtowc_r (data, &decimal_point, - _localeconv_r (data)->decimal_point, - MB_CUR_MAX, &state); - if (nconv == (size_t) -1 || nconv == (size_t) -2) - decimal_point = L'.'; - } -#endif -#else - decimal_point = (wchar_t) *_localeconv_r (data)->decimal_point; -#endif -#endif - /* - * BEWARE, these `goto error' on error, and PAD uses `n'. - */ -#ifdef _FVWRITE_IN_STREAMIO -#define PRINT(ptr, len) { \ - iovp->iov_base = (char *) (ptr); \ - iovp->iov_len = (len) * sizeof (wchar_t); \ - uio.uio_resid += (len) * sizeof (wchar_t); \ - iovp++; \ - if (++uio.uio_iovcnt >= NIOV) { \ - if (__SPRINT(data, fp, &uio)) \ - goto error; \ - iovp = iov; \ - } \ -} -#define PAD(howmany, with) { \ - if ((n = (howmany)) > 0) { \ - while (n > PADSIZE) { \ - PRINT (with, PADSIZE); \ - n -= PADSIZE; \ - } \ - PRINT (with, n); \ - } \ -} -#define PRINTANDPAD(p, ep, len, with) { \ - int n = (ep) - (p); \ - if (n > (len)) \ - n = (len); \ - if (n > 0) \ - PRINT((p), n); \ - PAD((len) - (n > 0 ? n : 0), (with)); \ -} -#define FLUSH() { \ - if (uio.uio_resid && __SPRINT(data, fp, &uio)) \ - goto error; \ - uio.uio_iovcnt = 0; \ - iovp = iov; \ -} -#else -#define PRINT(ptr, len) { \ - if (__SPRINT (data, fp, (const char *)(ptr), (len) * sizeof (wchar_t)) == EOF) \ - goto error; \ -} -#define PAD(howmany, with) { \ - if ((n = (howmany)) > 0) { \ - while (n > PADSIZE) { \ - PRINT (with, PADSIZE); \ - n -= PADSIZE; \ - } \ - PRINT (with, n); \ - } \ -} -#define PRINTANDPAD(p, ep, len, with) { \ - int n = (ep) - (p); \ - if (n > (len)) \ - n = (len); \ - if (n > 0) \ - PRINT((p), n); \ - PAD((len) - (n > 0 ? n : 0), (with)); \ -} -#define FLUSH() -#endif - - /* Macros to support positional arguments */ -#ifndef _NO_POS_ARGS -# define GET_ARG(n, ap, type) \ - (is_pos_arg \ - ? (n < numargs \ - ? args[n].val_##type \ - : get_arg (data, n, fmt_anchor, &ap, &numargs, args, \ - arg_type, &saved_fmt)->val_##type) \ - : (arg_index++ < numargs \ - ? args[n].val_##type \ - : (numargs < MAX_POS_ARGS \ - ? args[numargs++].val_##type = va_arg (ap, type) \ - : va_arg (ap, type)))) -#else -# define GET_ARG(n, ap, type) (va_arg (ap, type)) -#endif - - /* - * To extend shorts properly, we need both signed and unsigned - * argument extraction methods. - */ -#ifndef _NO_LONGLONG -#define SARG() \ - (flags&QUADINT ? GET_ARG (N, ap, quad_t) : \ - flags&LONGINT ? GET_ARG (N, ap, long) : \ - flags&SHORTINT ? (long)(short)GET_ARG (N, ap, int) : \ - flags&CHARINT ? (long)(signed char)GET_ARG (N, ap, int) : \ - (long)GET_ARG (N, ap, int)) -#define UARG() \ - (flags&QUADINT ? GET_ARG (N, ap, u_quad_t) : \ - flags&LONGINT ? GET_ARG (N, ap, u_long) : \ - flags&SHORTINT ? (u_long)(u_short)GET_ARG (N, ap, int) : \ - flags&CHARINT ? (u_long)(unsigned char)GET_ARG (N, ap, int) : \ - (u_long)GET_ARG (N, ap, u_int)) -#else -#define SARG() \ - (flags&LONGINT ? GET_ARG (N, ap, long) : \ - flags&SHORTINT ? (long)(short)GET_ARG (N, ap, int) : \ - flags&CHARINT ? (long)(signed char)GET_ARG (N, ap, int) : \ - (long)GET_ARG (N, ap, int)) -#define UARG() \ - (flags&LONGINT ? GET_ARG (N, ap, u_long) : \ - flags&SHORTINT ? (u_long)(u_short)GET_ARG (N, ap, int) : \ - flags&CHARINT ? (u_long)(unsigned char)GET_ARG (N, ap, int) : \ - (u_long)GET_ARG (N, ap, u_int)) -#endif - -#ifndef STRING_ONLY - /* Initialize std streams if not dealing with sprintf family. */ - CHECK_INIT (data, fp); - _newlib_flockfile_start (fp); - - ORIENT(fp, 1); - - /* sorry, fwprintf(read_only_file, "") returns EOF, not 0 */ - if (cantwrite (data, fp)) { - _newlib_flockfile_exit (fp); - return (EOF); - } - -#ifdef _UNBUF_STREAM_OPT - /* optimise fwprintf(stderr) (and other unbuffered Unix files) */ - if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) && - fp->_file >= 0) { - _newlib_flockfile_exit (fp); - return (__sbwprintf (data, fp, fmt0, ap)); - } -#endif -#else /* STRING_ONLY */ - /* Create initial buffer if we are called by asprintf family. */ - if (fp->_flags & __SMBF && !fp->_bf._base) - { - fp->_bf._base = fp->_p = _malloc_r (data, 64); - if (!fp->_p) - { - _REENT_ERRNO(data) = ENOMEM; - return EOF; - } - fp->_bf._size = 64; - } -#endif /* STRING_ONLY */ - - fmt = (wchar_t *)fmt0; -#ifdef _FVWRITE_IN_STREAMIO - uio.uio_iov = iovp = iov; - uio.uio_resid = 0; - uio.uio_iovcnt = 0; -#endif - ret = 0; -#ifndef _NO_POS_ARGS - arg_index = 0; - saved_fmt = NULL; - arg_type[0] = -1; - numargs = 0; - is_pos_arg = 0; -#endif - - /* - * Scan the format for conversions (`%' character). - */ - for (;;) { - cp = fmt; - while (*fmt != L'\0' && *fmt != L'%') - ++fmt; - if ((m = fmt - cp) != 0) { - PRINT (cp, m); - ret += m; - } - if (*fmt == L'\0') - goto done; - fmt_anchor = fmt; - fmt++; /* skip over '%' */ - - flags = 0; - dprec = 0; - width = 0; - prec = -1; - sign = L'\0'; -#ifdef FLOATING_POINT - lead = 0; -#ifdef _WANT_IO_C99_FORMATS - nseps = nrepeats = 0; -#endif -#endif -#ifndef _NO_POS_ARGS - N = arg_index; - is_pos_arg = 0; -#endif - -rflag: ch = *fmt++; -reswitch: switch (ch) { -#ifdef _WANT_IO_C99_FORMATS - case L'\'': -#ifdef _MB_CAPABLE -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - thousands_sep = *__get_current_numeric_locale ()->wthousands_sep; -#else - { - size_t nconv; - - memset (&state, '\0', sizeof (state)); - nconv = _mbrtowc_r (data, &thousands_sep, - _localeconv_r (data)->thousands_sep, - MB_CUR_MAX, &state); - if (nconv == (size_t) -1 || nconv == (size_t) -2) - thousands_sep = L'\0'; - } -#endif -#else - thousands_sep = (wchar_t) *_localeconv_r(data)->thousands_sep; -#endif - grouping = _localeconv_r (data)->grouping; - if (thousands_sep && grouping && *grouping) - flags |= GROUPING; - goto rflag; -#endif - case L' ': - /* - * ``If the space and + flags both appear, the space - * flag will be ignored.'' - * -- ANSI X3J11 - */ - if (!sign) - sign = L' '; - goto rflag; - case L'#': - flags |= ALT; - goto rflag; - case L'*': -#ifndef _NO_POS_ARGS - /* we must check for positional arg used for dynamic width */ - n = N; - old_is_pos_arg = is_pos_arg; - is_pos_arg = 0; - if (is_digit (*fmt)) { - wchar_t *old_fmt = fmt; - - n = 0; - ch = *fmt++; - do { - n = 10 * n + to_digit (ch); - ch = *fmt++; - } while (is_digit (ch)); - - if (ch == L'$') { - if (n <= MAX_POS_ARGS) { - n -= 1; - is_pos_arg = 1; - } - else - goto error; - } - else { - fmt = old_fmt; - goto rflag; - } - } -#endif /* !_NO_POS_ARGS */ - - /* - * ``A negative field width argument is taken as a - * - flag followed by a positive field width.'' - * -- ANSI X3J11 - * They don't exclude field widths read from args. - */ - width = GET_ARG (n, ap, int); -#ifndef _NO_POS_ARGS - is_pos_arg = old_is_pos_arg; -#endif - if (width >= 0) - goto rflag; - width = -width; - /* FALLTHROUGH */ - case L'-': - flags |= LADJUST; - goto rflag; - case L'+': - sign = L'+'; - goto rflag; - case L'.': - if ((ch = *fmt++) == L'*') { -#ifndef _NO_POS_ARGS - /* we must check for positional arg used for dynamic width */ - n = N; - old_is_pos_arg = is_pos_arg; - is_pos_arg = 0; - if (is_digit (*fmt)) { - wchar_t *old_fmt = fmt; - - n = 0; - ch = *fmt++; - do { - n = 10 * n + to_digit (ch); - ch = *fmt++; - } while (is_digit (ch)); - - if (ch == L'$') { - if (n <= MAX_POS_ARGS) { - n -= 1; - is_pos_arg = 1; - } - else - goto error; - } - else { - fmt = old_fmt; - goto rflag; - } - } -#endif /* !_NO_POS_ARGS */ - prec = GET_ARG (n, ap, int); -#ifndef _NO_POS_ARGS - is_pos_arg = old_is_pos_arg; -#endif - if (prec < 0) - prec = -1; - goto rflag; - } - n = 0; - while (is_digit (ch)) { - n = 10 * n + to_digit (ch); - ch = *fmt++; - } - prec = n < 0 ? -1 : n; - goto reswitch; - case L'0': - /* - * ``Note that 0 is taken as a flag, not as the - * beginning of a field width.'' - * -- ANSI X3J11 - */ - flags |= ZEROPAD; - goto rflag; - case L'1': case L'2': case L'3': case L'4': - case L'5': case L'6': case L'7': case L'8': case L'9': - n = 0; - do { - n = 10 * n + to_digit (ch); - ch = *fmt++; - } while (is_digit (ch)); -#ifndef _NO_POS_ARGS - if (ch == L'$') { - if (n <= MAX_POS_ARGS) { - N = n - 1; - is_pos_arg = 1; - goto rflag; - } - else - goto error; - } -#endif /* !_NO_POS_ARGS */ - width = n; - goto reswitch; -#ifdef FLOATING_POINT - case L'L': - flags |= LONGDBL; - goto rflag; -#endif - case L'h': -#ifdef _WANT_IO_C99_FORMATS - if (*fmt == L'h') { - fmt++; - flags |= CHARINT; - } else -#endif - flags |= SHORTINT; - goto rflag; - case L'l': -#if defined _WANT_IO_C99_FORMATS || !defined _NO_LONGLONG - if (*fmt == L'l') { - fmt++; - flags |= QUADINT; - } else -#endif - flags |= LONGINT; - goto rflag; - case L'q': /* GNU extension */ - flags |= QUADINT; - goto rflag; -#ifdef _WANT_IO_C99_FORMATS - case L'j': - if (sizeof (intmax_t) == sizeof (long)) - flags |= LONGINT; - else - flags |= QUADINT; - goto rflag; - case L'z': - if (sizeof (size_t) < sizeof (int)) - /* POSIX states size_t is 16 or more bits, as is short. */ - flags |= SHORTINT; - else if (sizeof (size_t) == sizeof (int)) - /* no flag needed */; - else if (sizeof (size_t) <= sizeof (long)) - flags |= LONGINT; - else - /* POSIX states that at least one programming - environment must support size_t no wider than - long, but that means other environments can - have size_t as wide as long long. */ - flags |= QUADINT; - goto rflag; - case L't': - if (sizeof (ptrdiff_t) < sizeof (int)) - /* POSIX states ptrdiff_t is 16 or more bits, as - is short. */ - flags |= SHORTINT; - else if (sizeof (ptrdiff_t) == sizeof (int)) - /* no flag needed */; - else if (sizeof (ptrdiff_t) <= sizeof (long)) - flags |= LONGINT; - else - /* POSIX states that at least one programming - environment must support ptrdiff_t no wider than - long, but that means other environments can - have ptrdiff_t as wide as long long. */ - flags |= QUADINT; - goto rflag; - case L'C': /* POSIX extension */ -#endif /* _WANT_IO_C99_FORMATS */ - case L'c': - cp = buf; - if (ch == L'c' && !(flags & LONGINT)) { - wint_t wc = btowc ((int) GET_ARG (N, ap, int)); - if (wc == WEOF) { - fp->_flags |= __SERR; - goto error; - } - cp[0] = (wchar_t) wc; - } - else - { - cp[0] = GET_ARG (N, ap, int); - } - cp[1] = L'\0'; - size = 1; - sign = L'\0'; - break; - case L'd': - case L'i': - _uquad = SARG (); -#ifndef _NO_LONGLONG - if ((quad_t)_uquad < 0) -#else - if ((long) _uquad < 0) -#endif - { - - _uquad = -_uquad; - sign = L'-'; - } - base = DEC; - goto number; -#ifdef FLOATING_POINT -# ifdef _WANT_IO_C99_FORMATS - case L'a': - case L'A': - case L'F': -# endif - case L'e': - case L'E': - case L'f': - case L'g': - case L'G': -# ifdef _NO_LONGDBL - if (flags & LONGDBL) { - _fpvalue = (double) GET_ARG (N, ap, _LONG_DOUBLE); - } else { - _fpvalue = GET_ARG (N, ap, double); - } - - /* do this before tricky precision changes - - If the output is infinite or NaN, leading - zeros are not permitted. Otherwise, scanf - could not read what printf wrote. - */ - if (isinf (_fpvalue)) { - if (_fpvalue < 0) - sign = '-'; - if (ch <= L'G') /* 'A', 'E', 'F', or 'G' */ - cp = L"INF"; - else - cp = L"inf"; - size = 3; - flags &= ~ZEROPAD; - break; - } - if (isnan (_fpvalue)) { - if (signbit (_fpvalue)) - sign = L'-'; - if (ch <= L'G') /* 'A', 'E', 'F', or 'G' */ - cp = L"NAN"; - else - cp = L"nan"; - size = 3; - flags &= ~ZEROPAD; - break; - } - -# else /* !_NO_LONGDBL */ - - if (flags & LONGDBL) { - _fpvalue = GET_ARG (N, ap, _LONG_DOUBLE); - } else { - _fpvalue = (_LONG_DOUBLE)GET_ARG (N, ap, double); - } - - /* do this before tricky precision changes */ - expt = _ldcheck (&_fpvalue); - if (expt == 2) { - if (_fpvalue < 0) - sign = L'-'; - if (ch <= L'G') /* 'A', 'E', 'F', or 'G' */ - cp = L"INF"; - else - cp = L"inf"; - size = 3; - flags &= ~ZEROPAD; - break; - } - if (expt == 1) { - if (signbit (_fpvalue)) - sign = L'-'; - if (ch <= L'G') /* 'A', 'E', 'F', or 'G' */ - cp = L"NAN"; - else - cp = L"nan"; - size = 3; - flags &= ~ZEROPAD; - break; - } -# endif /* !_NO_LONGDBL */ - - cp = buf; -# ifdef _WANT_IO_C99_FORMATS - if (ch == L'a' || ch == L'A') { - ox[0] = L'0'; - ox[1] = ch == L'a' ? L'x' : L'X'; - flags |= HEXPREFIX; - if (prec >= BUF) - { - if ((malloc_buf = - (wchar_t *)_malloc_r (data, (prec + 1) * sizeof (wchar_t))) - == NULL) - { - fp->_flags |= __SERR; - goto error; - } - cp = malloc_buf; - } - } else -# endif /* _WANT_IO_C99_FORMATS */ - if (prec == -1) { - prec = DEFPREC; - } else if ((ch == L'g' || ch == L'G') && prec == 0) { - prec = 1; - } - - flags |= FPT; - - cp = wcvt (data, _fpvalue, prec, flags, &softsign, - &expt, ch, &ndig, cp, BUF); - - /* If buf is not large enough for the converted wchar_t - sequence, call wcvt again with a malloced new buffer. - This should happen fairly rarely. - */ - if (cp == buf && ndig > BUF && malloc_buf == NULL) { - if ((malloc_buf = - (wchar_t *)_malloc_r (data, ndig * sizeof (wchar_t))) - == NULL) - { - fp->_flags |= __SERR; - goto error; - } - cp = wcvt (data, _fpvalue, prec, flags, &softsign, - &expt, ch, &ndig, malloc_buf, ndig); - } - - if (ch == L'g' || ch == L'G') { - if (expt <= -4 || expt > prec) - ch -= 2; /* 'e' or 'E' */ - else - ch = L'g'; - } -# ifdef _WANT_IO_C99_FORMATS - else if (ch == L'F') - ch = L'f'; -# endif - if (ch <= L'e') { /* 'a', 'A', 'e', or 'E' fmt */ - --expt; - expsize = wexponent (expstr, expt, ch); - size = expsize + ndig; - if (ndig > 1 || flags & ALT) - ++size; -# ifdef _WANT_IO_C99_FORMATS - flags &= ~GROUPING; -# endif - } else { - if (ch == L'f') { /* f fmt */ - if (expt > 0) { - size = expt; - if (prec || flags & ALT) - size += prec + 1; - } else /* "0.X" */ - size = (prec || flags & ALT) - ? prec + 2 - : 1; - } else if (expt >= ndig) { /* fixed g fmt */ - size = expt; - if (flags & ALT) - ++size; - } else - size = ndig + (expt > 0 ? - 1 : 2 - expt); -# ifdef _WANT_IO_C99_FORMATS - if ((flags & GROUPING) && expt > 0) { - /* space for thousands' grouping */ - nseps = nrepeats = 0; - lead = expt; - while (*grouping != CHAR_MAX) { - if (lead <= *grouping) - break; - lead -= *grouping; - if (grouping[1]) { - nseps++; - grouping++; - } else - nrepeats++; - } - size += nseps + nrepeats; - } else -# endif - lead = expt; - } - if (softsign) - sign = L'-'; - break; -#endif /* FLOATING_POINT */ -#ifdef _GLIBC_EXTENSION - case L'm': /* GNU extension */ - { - int dummy; - cp = (wchar_t *) _strerror_r (data, _REENT_ERRNO(data), 1, &dummy); - } - flags &= ~LONGINT; - goto string; -#endif - case L'n': -#ifndef _NO_LONGLONG - if (flags & QUADINT) - *GET_ARG (N, ap, quad_ptr_t) = ret; - else -#endif - if (flags & LONGINT) - *GET_ARG (N, ap, long_ptr_t) = ret; - else if (flags & SHORTINT) - *GET_ARG (N, ap, short_ptr_t) = ret; -#ifdef _WANT_IO_C99_FORMATS - else if (flags & CHARINT) - *GET_ARG (N, ap, char_ptr_t) = ret; -#endif - else - *GET_ARG (N, ap, int_ptr_t) = ret; - continue; /* no output */ - case L'o': - _uquad = UARG (); - base = OCT; -#ifdef _WANT_IO_C99_FORMATS - flags &= ~GROUPING; -#endif - goto nosign; - case L'p': - /* - * ``The argument shall be a pointer to void. The - * value of the pointer is converted to a sequence - * of printable characters, in an implementation- - * defined manner.'' - * -- ANSI X3J11 - */ - /* NOSTRICT */ - _uquad = (uintptr_t) GET_ARG (N, ap, void_ptr_t); - base = HEX; - xdigs = L"0123456789abcdef"; - flags |= HEXPREFIX; - ox[0] = L'0'; - ox[1] = ch = L'x'; - goto nosign; - case L's': -#ifdef _WANT_IO_C99_FORMATS - case L'S': /* POSIX extension */ -#endif - cp = GET_ARG (N, ap, wchar_ptr_t); -#ifdef _GLIBC_EXTENSION -string: -#endif - sign = '\0'; -#ifndef __OPTIMIZE_SIZE__ - /* Behavior is undefined if the user passed a - NULL string when precision is not 0. - However, if we are not optimizing for size, - we might as well mirror glibc behavior. */ - if (cp == NULL) { - cp = L"(null)"; - size = ((unsigned) prec > 6U) ? 6 : prec; - } - else -#endif /* __OPTIMIZE_SIZE__ */ -#ifdef _MB_CAPABLE - if (ch != L'S' && !(flags & LONGINT)) { - char *arg = (char *) cp; - size_t insize = 0, nchars = 0, nconv = 0; - mbstate_t ps; - wchar_t *p; - - if (prec >= 0) { - char *p = arg; - memset ((void *)&ps, '\0', sizeof (mbstate_t)); - while (nchars < (size_t)prec) { - nconv = mbrlen (p, MB_CUR_MAX, &ps); - if (nconv == 0 || nconv == (size_t)-1 || - nconv == (size_t)-2) - break; - p += nconv; - ++nchars; - insize += nconv; - } - if (nconv == (size_t) -1 || nconv == (size_t) -2) { - fp->_flags |= __SERR; - goto error; - } - } else - insize = strlen(arg); - if (insize >= BUF) { - if ((malloc_buf = (wchar_t *) _malloc_r (data, (insize + 1) * sizeof (wchar_t))) - == NULL) { - fp->_flags |= __SERR; - goto error; - } - cp = malloc_buf; - } else - cp = buf; - memset ((void *)&ps, '\0', sizeof (mbstate_t)); - p = cp; - while (insize != 0) { - nconv = _mbrtowc_r (data, p, arg, insize, &ps); - if (nconv == 0 || nconv == (size_t)-1 || nconv == (size_t)-2) - break; - ++p; - arg += nconv; - insize -= nconv; - } - if (nconv == (size_t) -1 || nconv == (size_t) -2) { - fp->_flags |= __SERR; - goto error; - } - *p = L'\0'; - size = p - cp; - } -#else - if (ch != L'S' && !(flags & LONGINT)) { - char *arg = (char *) cp; - size_t insize = 0; - - if (prec >= 0) { - char *p = memchr (arg, '\0', prec); - insize = p ? p - arg : prec; - } else - insize = strlen (arg); - if (insize >= BUF) { - if ((malloc_buf = (wchar_t *) _malloc_r (data, (insize + 1) * sizeof (wchar_t))) - == NULL) { - fp->_flags |= __SERR; - goto error; - } - cp = malloc_buf; - } else - cp = buf; - for (size = 0; size < insize; ++size) - cp[size] = arg[size]; - cp[size] = L'\0'; - } -#endif /* _MB_CAPABLE */ - else if (prec >= 0) { - /* - * can't use wcslen; can only look for the - * NUL in the first `prec' characters, and - * strlen () will go further. - */ - wchar_t *p = wmemchr (cp, L'\0', prec); - - if (p != NULL) { - size = p - cp; - if (size > prec) - size = prec; - } else - size = prec; - } else - size = wcslen (cp); - - break; - case L'u': - _uquad = UARG (); - base = DEC; - goto nosign; - case L'X': - xdigs = L"0123456789ABCDEF"; - goto hex; - case L'x': - xdigs = L"0123456789abcdef"; -hex: _uquad = UARG (); - base = HEX; - /* leading 0x/X only if non-zero */ - if (flags & ALT && _uquad != 0) { - ox[0] = L'0'; - ox[1] = ch; - flags |= HEXPREFIX; - } - -#ifdef _WANT_IO_C99_FORMATS - flags &= ~GROUPING; -#endif - /* unsigned conversions */ -nosign: sign = L'\0'; - /* - * ``... diouXx conversions ... if a precision is - * specified, the 0 flag will be ignored.'' - * -- ANSI X3J11 - */ -number: if ((dprec = prec) >= 0) - flags &= ~ZEROPAD; - - /* - * ``The result of converting a zero value with an - * explicit precision of zero is no characters.'' - * -- ANSI X3J11 - */ - cp = buf + BUF; - if (_uquad != 0 || prec != 0) { - /* - * Unsigned mod is hard, and unsigned mod - * by a constant is easier than that by - * a variable; hence this switch. - */ - switch (base) { - case OCT: - do { - *--cp = to_char (_uquad & 7); - _uquad >>= 3; - } while (_uquad); - /* handle octal leading 0 */ - if (flags & ALT && *cp != L'0') - *--cp = L'0'; - break; - - case DEC: - /* many numbers are 1 digit */ - if (_uquad < 10) { - *--cp = to_char(_uquad); - break; - } -#ifdef _WANT_IO_C99_FORMATS - ndig = 0; -#endif - do { - *--cp = to_char (_uquad % 10); -#ifdef _WANT_IO_C99_FORMATS - ndig++; - /* If (*grouping == CHAR_MAX) then no - more grouping */ - if ((flags & GROUPING) - && ndig == *grouping - && *grouping != CHAR_MAX - && _uquad > 9) { - *--cp = thousands_sep; - ndig = 0; - /* If (grouping[1] == '\0') then we - have to use *grouping character - (last grouping rule) for all - next cases. */ - if (grouping[1] != '\0') - grouping++; - } -#endif - _uquad /= 10; - } while (_uquad != 0); - break; - - case HEX: - do { - *--cp = xdigs[_uquad & 15]; - _uquad >>= 4; - } while (_uquad); - break; - - default: - cp = L"bug in vfprintf: bad base"; - size = wcslen (cp); - goto skipsize; - } - } - /* - * ...result is to be converted to an 'alternate form'. - * For o conversion, it increases the precision to force - * the first digit of the result to be a zero." - * -- ANSI X3J11 - * - * To demonstrate this case, compile and run: - * printf ("%#.0o",0); - */ - else if (base == OCT && (flags & ALT)) - *--cp = L'0'; - - size = buf + BUF - cp; - skipsize: - break; - default: /* "%?" prints ?, unless ? is NUL */ - if (ch == L'\0') - goto done; - /* pretend it was %c with argument ch */ - cp = buf; - *cp = ch; - size = 1; - sign = L'\0'; - break; - } - - /* - * All reasonable formats wind up here. At this point, `cp' - * points to a string which (if not flags&LADJUST) should be - * padded out to `width' places. If flags&ZEROPAD, it should - * first be prefixed by any sign or other prefix; otherwise, - * it should be blank padded before the prefix is emitted. - * After any left-hand padding and prefixing, emit zeroes - * required by a decimal [diouxX] precision, then print the - * string proper, then emit zeroes required by any leftover - * floating precision; finally, if LADJUST, pad with blanks. - * If flags&FPT, ch must be in [aAeEfg]. - * - * Compute actual size, so we know how much to pad. - * size excludes decimal prec; realsz includes it. - */ - realsz = dprec > size ? dprec : size; - if (sign) - realsz++; - if (flags & HEXPREFIX) - realsz+= 2; - - /* right-adjusting blank padding */ - if ((flags & (LADJUST|ZEROPAD)) == 0) - PAD (width - realsz, blanks); - - /* prefix */ - if (sign) - PRINT (&sign, 1); - if (flags & HEXPREFIX) - PRINT (ox, 2); - - /* right-adjusting zero padding */ - if ((flags & (LADJUST|ZEROPAD)) == ZEROPAD) - PAD (width - realsz, zeroes); - - /* leading zeroes from decimal precision */ - PAD (dprec - size, zeroes); - - /* the string or number proper */ -#ifdef FLOATING_POINT - if ((flags & FPT) == 0) { - PRINT (cp, size); - } else { /* glue together f_p fragments */ - if (ch >= L'f') { /* 'f' or 'g' */ - if (_fpvalue == 0) { - /* kludge for __dtoa irregularity */ - PRINT (L"0", 1); - if (expt < ndig || flags & ALT) { - PRINT (&decimal_point, 1); - PAD (ndig - 1, zeroes); - } - } else if (expt <= 0) { - PRINT (L"0", 1); - if (expt || ndig || flags & ALT) { - PRINT (&decimal_point, 1); - PAD (-expt, zeroes); - PRINT (cp, ndig); - } - } else { - wchar_t *convbuf = cp; - PRINTANDPAD(cp, convbuf + ndig, - lead, zeroes); - cp += lead; -#ifdef _WANT_IO_C99_FORMATS - if (flags & GROUPING) { - while (nseps > 0 || nrepeats > 0) { - if (nrepeats > 0) - nrepeats--; - else { - grouping--; - nseps--; - } - PRINT (&thousands_sep, 1); - PRINTANDPAD (cp, convbuf + ndig, - *grouping, zeroes); - cp += *grouping; - } - if (cp > convbuf + ndig) - cp = convbuf + ndig; - } -#endif - if (expt < ndig || flags & ALT) - PRINT (&decimal_point, 1); - PRINTANDPAD (cp, convbuf + ndig, - ndig - expt, zeroes); - } - - } else { /* 'a', 'A', 'e', or 'E' */ - if (ndig > 1 || flags & ALT) { - PRINT (cp, 1); - cp++; - PRINT (&decimal_point, 1); - if (_fpvalue) { - PRINT (cp, ndig - 1); - } else /* 0.[0..] */ - /* __dtoa irregularity */ - PAD (ndig - 1, zeroes); - } else /* XeYYY */ - PRINT (cp, 1); - PRINT (expstr, expsize); - } - } -#else /* !FLOATING_POINT */ - PRINT (cp, size); -#endif - /* left-adjusting padding (always blank) */ - if (flags & LADJUST) - PAD (width - realsz, blanks); - - /* finally, adjust ret */ - ret += width > realsz ? width : realsz; - - FLUSH (); /* copy out the I/O vectors */ - - if (malloc_buf != NULL) { - _free_r (data, malloc_buf); - malloc_buf = NULL; - } - } -done: - FLUSH (); -error: - if (malloc_buf != NULL) - _free_r (data, malloc_buf); -#ifndef STRING_ONLY - _newlib_flockfile_end (fp); -#endif - return (__sferror (fp) ? EOF : ret); - /* NOTREACHED */ -} - -#ifdef FLOATING_POINT - -/* Using reentrant DATA, convert finite VALUE into a string of digits - with no decimal point, using NDIGITS precision and FLAGS as guides - to whether trailing zeros must be included. Set *SIGN to nonzero - if VALUE was negative. Set *DECPT to the exponent plus one. Set - *LENGTH to the length of the returned string. CH must be one of - [aAeEfFgG]; different from vfprintf.c:cvt(), the return string - lives in BUF regardless of CH. LEN is the length of BUF, except - when CH is [aA], in which case LEN is not in use. If BUF is not - large enough for the converted string, only the first LEN number - of characters will be returned in BUF, but *LENGTH will be set to - the full length of the string before the truncation. */ -static wchar_t * -wcvt(struct _reent *data, _PRINTF_FLOAT_TYPE value, int ndigits, int flags, - wchar_t *sign, int *decpt, int ch, int *length, wchar_t *buf, int len) -{ - int mode, dsgn; -# ifdef _NO_LONGDBL - union double_union tmp; - - tmp.d = value; - if (word0 (tmp) & Sign_bit) { /* this will check for < 0 and -0.0 */ - value = -value; - *sign = L'-'; - } else - *sign = L'\0'; -# else /* !_NO_LONGDBL */ - union - { - struct ldieee ieee; - _LONG_DOUBLE val; - } ld; - - ld.val = value; - if (ld.ieee.sign) { /* this will check for < 0 and -0.0 */ - value = -value; - *sign = L'-'; - } else - *sign = L'\0'; -# endif /* !_NO_LONGDBL */ - -# ifdef _WANT_IO_C99_FORMATS - if (ch == L'a' || ch == L'A') { - wchar_t *digits, *bp, *rve; - /* This code assumes FLT_RADIX is a power of 2. The initial - division ensures the digit before the decimal will be less - than FLT_RADIX (unless it is rounded later). There is no - loss of precision in these calculations. */ - value = FREXP (value, decpt) / 8; - if (!value) - *decpt = 1; - digits = ch == L'a' ? L"0123456789abcdef" : L"0123456789ABCDEF"; - bp = buf; - do { - value *= 16; - mode = (int) value; - value -= mode; - *bp++ = digits[mode]; - } while (ndigits-- && value); - if (value > 0.5 || (value == 0.5 && mode & 1)) { - /* round to even */ - rve = bp; - while (*--rve == digits[0xf]) { - *rve = L'0'; - } - *rve = *rve == L'9' ? digits[0xa] : *rve + 1; - } else { - while (ndigits-- >= 0) { - *bp++ = L'0'; - } - } - *length = bp - buf; - return buf; - } -# endif /* _WANT_IO_C99_FORMATS */ - if (ch == L'f' || ch == L'F') { - mode = 3; /* ndigits after the decimal point */ - } else { - /* To obtain ndigits after the decimal point for the 'e' - * and 'E' formats, round to ndigits + 1 significant - * figures. - */ - if (ch == L'e' || ch == L'E') { - ndigits++; - } - mode = 2; /* ndigits significant digits */ - } - - { - char *digits, *bp, *rve; -#ifndef _MB_CAPABLE - int i; -#endif - - digits = _DTOA_R (data, value, mode, ndigits, decpt, &dsgn, &rve); - - if ((ch != L'g' && ch != L'G') || flags & ALT) { /* Print trailing zeros */ - bp = digits + ndigits; - if (ch == L'f' || ch == L'F') { - if (*digits == L'0' && value) - *decpt = -ndigits + 1; - bp += *decpt; - } - if (value == 0) /* kludge for __dtoa irregularity */ - rve = bp; - while (rve < bp) - *rve++ = '0'; - } - - *length = rve - digits; /* full length of the string */ -#ifdef _MB_CAPABLE - _mbsnrtowcs_r (data, buf, (const char **) &digits, *length, - len, NULL); -#else - for (i = 0; i < *length && i < len; ++i) - buf[i] = (wchar_t) digits[i]; -#endif - return buf; - } -} - -static int -wexponent(wchar_t *p0, int exp, int fmtch) -{ - register wchar_t *p, *t; - wchar_t expbuf[MAXEXPLEN]; -# ifdef _WANT_IO_C99_FORMATS - int isa = fmtch == L'a' || fmtch == L'A'; -# else -# define isa 0 -# endif - - p = p0; - *p++ = isa ? L'p' - L'a' + fmtch : fmtch; - if (exp < 0) { - exp = -exp; - *p++ = L'-'; - } - else - *p++ = L'+'; - t = expbuf + MAXEXPLEN; - if (exp > 9) { - do { - *--t = to_char (exp % 10); - } while ((exp /= 10) > 9); - *--t = to_char (exp); - for (; t < expbuf + MAXEXPLEN; *p++ = *t++); - } - else { - if (!isa) - *p++ = L'0'; - *p++ = to_char (exp); - } - return (p - p0); -} -#endif /* FLOATING_POINT */ - - -#ifndef _NO_POS_ARGS - -/* Positional argument support. - Written by Jeff Johnston - - Copyright (c) 2002 Red Hat Incorporated. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/* function to get positional parameter N where n = N - 1 */ -static union arg_val * -get_arg (struct _reent *data, - int n, - wchar_t *fmt, - va_list *ap, - int *numargs_p, - union arg_val *args, - int *arg_type, - wchar_t **last_fmt) -{ - wchar_t ch; - int number, flags; - int spec_type; - int numargs = *numargs_p; - __CH_CLASS chtype; - __STATE state, next_state; - __ACTION action; - int pos, last_arg; - int max_pos_arg = n; - /* Only need types that can be reached via vararg promotions. */ - enum types { INT, LONG_INT, QUAD_INT, CHAR_PTR, DOUBLE, LONG_DOUBLE, WIDE_CHAR }; - - /* if this isn't the first call, pick up where we left off last time */ - if (*last_fmt != NULL) - fmt = *last_fmt; - - /* we need to process either to end of fmt string or until we have actually - read the desired parameter from the vararg list. */ - while (*fmt && n >= numargs) - { - while (*fmt != L'\0' && *fmt != L'%') - fmt += 1; - - if (*fmt == L'\0') - break; - state = START; - flags = 0; - pos = -1; - number = 0; - spec_type = INT; - - /* Use state/action table to process format specifiers. We ignore invalid - formats and we are only interested in information that tells us how to - read the vararg list. */ - while (state != DONE) - { - ch = *fmt++; - chtype = ch < (wchar_t) 256 ? __chclass[ch] : OTHER; - next_state = __state_table[state][chtype]; - action = __action_table[state][chtype]; - state = next_state; - - switch (action) - { - case GETMOD: /* we have format modifier */ - switch (ch) - { - case L'h': - /* No flag needed, since short and char promote to int. */ - break; - case L'L': - flags |= LONGDBL; - break; - case L'q': - flags |= QUADINT; - break; -# ifdef _WANT_IO_C99_FORMATS - case L'j': - if (sizeof (intmax_t) == sizeof (long)) - flags |= LONGINT; - else - flags |= QUADINT; - break; - case L'z': - if (sizeof (size_t) <= sizeof (int)) - /* no flag needed */; - else if (sizeof (size_t) <= sizeof (long)) - flags |= LONGINT; - else - /* POSIX states that at least one programming - environment must support size_t no wider than - long, but that means other environments can - have size_t as wide as long long. */ - flags |= QUADINT; - break; - case L't': - if (sizeof (ptrdiff_t) <= sizeof (int)) - /* no flag needed */; - else if (sizeof (ptrdiff_t) <= sizeof (long)) - flags |= LONGINT; - else - /* POSIX states that at least one programming - environment must support ptrdiff_t no wider than - long, but that means other environments can - have ptrdiff_t as wide as long long. */ - flags |= QUADINT; - break; -# endif /* _WANT_IO_C99_FORMATS */ - case L'l': - default: -# if defined _WANT_IO_C99_FORMATS || !defined _NO_LONGLONG - if (*fmt == L'l') - { - flags |= QUADINT; - ++fmt; - } - else -# endif - flags |= LONGINT; - break; - } - break; - case GETARG: /* we have format specifier */ - { - numargs &= (MAX_POS_ARGS - 1); - /* process the specifier and translate it to a type to fetch from varargs */ - switch (ch) - { - case L'd': - case L'i': - case L'o': - case L'x': - case L'X': - case L'u': - if (flags & LONGINT) - spec_type = LONG_INT; -# ifndef _NO_LONGLONG - else if (flags & QUADINT) - spec_type = QUAD_INT; -# endif - else - spec_type = INT; - break; -# ifdef _WANT_IO_C99_FORMATS - case L'a': - case L'A': - case L'F': -# endif - case L'f': - case L'g': - case L'G': - case L'E': - case L'e': -# ifndef _NO_LONGDBL - if (flags & LONGDBL) - spec_type = LONG_DOUBLE; - else -# endif - spec_type = DOUBLE; - break; - case L's': -# ifdef _WANT_IO_C99_FORMATS - case L'S': /* POSIX extension */ -# endif - case L'p': - case L'n': - spec_type = CHAR_PTR; - break; - case L'c': -# ifdef _WANT_IO_C99_FORMATS - if (flags & LONGINT) - spec_type = WIDE_CHAR; - else -# endif - spec_type = INT; - break; -# ifdef _WANT_IO_C99_FORMATS - case L'C': /* POSIX extension */ - spec_type = WIDE_CHAR; - break; -# endif - } - - /* if we have a positional parameter, just store the type, otherwise - fetch the parameter from the vararg list */ - if (pos != -1) - arg_type[pos] = spec_type; - else - { - switch (spec_type) - { - case LONG_INT: - args[numargs++].val_long = va_arg (*ap, long); - break; - case QUAD_INT: - args[numargs++].val_quad_t = va_arg (*ap, quad_t); - break; - case WIDE_CHAR: - args[numargs++].val_wint_t = va_arg (*ap, wint_t); - break; - case INT: - args[numargs++].val_int = va_arg (*ap, int); - break; - case CHAR_PTR: - args[numargs++].val_wchar_ptr_t = va_arg (*ap, wchar_t *); - break; - case DOUBLE: - args[numargs++].val_double = va_arg (*ap, double); - break; - case LONG_DOUBLE: - args[numargs++].val__LONG_DOUBLE = va_arg (*ap, _LONG_DOUBLE); - break; - } - } - } - break; - case GETPOS: /* we have positional specifier */ - if (arg_type[0] == -1) - memset (arg_type, 0, sizeof (int) * MAX_POS_ARGS); - pos = number - 1; - max_pos_arg = (max_pos_arg > pos ? max_pos_arg : pos); - break; - case PWPOS: /* we have positional specifier for width or precision */ - if (arg_type[0] == -1) - memset (arg_type, 0, sizeof (int) * MAX_POS_ARGS); - number -= 1; - arg_type[number] = INT; - max_pos_arg = (max_pos_arg > number ? max_pos_arg : number); - break; - case GETPWB: /* we require format pushback */ - --fmt; - /* fallthrough */ - case GETPW: /* we have a variable precision or width to acquire */ - args[numargs++].val_int = va_arg (*ap, int); - break; - case NUMBER: /* we have a number to process */ - number = (ch - '0'); - while ((ch = *fmt) != '\0' && is_digit (ch)) - { - number = number * 10 + (ch - '0'); - ++fmt; - } - break; - case SKIPNUM: /* we have a number to skip */ - while ((ch = *fmt) != '\0' && is_digit (ch)) - ++fmt; - break; - case NOOP: - default: - break; /* do nothing */ - } - } - } - - /* process all arguments up to at least the one we are looking for and if we - have seen the end of the string, then process up to the max argument needed */ - if (*fmt == '\0') - last_arg = max_pos_arg; - else - last_arg = n; - - while (numargs <= last_arg) - { - switch (arg_type[numargs]) - { - case LONG_INT: - args[numargs++].val_long = va_arg (*ap, long); - break; - case QUAD_INT: - args[numargs++].val_quad_t = va_arg (*ap, quad_t); - break; - case CHAR_PTR: - args[numargs++].val_wchar_ptr_t = va_arg (*ap, wchar_t *); - break; - case DOUBLE: - args[numargs++].val_double = va_arg (*ap, double); - break; - case LONG_DOUBLE: - args[numargs++].val__LONG_DOUBLE = va_arg (*ap, _LONG_DOUBLE); - break; - case WIDE_CHAR: - args[numargs++].val_wint_t = va_arg (*ap, wint_t); - break; - case INT: - default: - args[numargs++].val_int = va_arg (*ap, int); - break; - } - } - - /* alter the global numargs value and keep a reference to the last bit of the fmt - string we processed here because the caller will continue processing where we started */ - *numargs_p = numargs; - *last_fmt = fmt; - return &args[n]; -} -#endif /* !_NO_POS_ARGS */ diff --git a/lib/stdio/vfwscanf.c b/lib/stdio/vfwscanf.c deleted file mode 100644 index df966f9..0000000 --- a/lib/stdio/vfwscanf.c +++ /dev/null @@ -1,1646 +0,0 @@ -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>, <>---scan and format argument list from wide character input - -INDEX - vfwscanf -INDEX - _vfwscanf -INDEX - vwscanf -INDEX - _vwscanf -INDEX - vswscanf -INDEX - _vswscanf - -SYNOPSIS - #include - #include - int vwscanf(const wchar_t *__restrict <[fmt]>, va_list <[list]>); - int vfwscanf(FILE *__restrict <[fp]>, - const wchar_t *__restrict <[fmt]>, va_list <[list]>); - int vswscanf(const wchar_t *__restrict <[str]>, - const wchar_t *__restrict <[fmt]>, va_list <[list]>); - - int _vwscanf(struct _reent *<[reent]>, const wchar_t *<[fmt]>, - va_list <[list]>); - int _vfwscanf(struct _reent *<[reent]>, FILE *<[fp]>, - const wchar_t *<[fmt]>, va_list <[list]>); - int _vswscanf(struct _reent *<[reent]>, const wchar_t *<[str]>, - const wchar_t *<[fmt]>, va_list <[list]>); - -DESCRIPTION -<>, <>, and <> are (respectively) variants -of <>, <>, and <>. They differ only in -allowing their caller to pass the variable argument list as a -<> object (initialized by <>) rather than -directly accepting a variable number of arguments. - -RETURNS -The return values are consistent with the corresponding functions: -<> returns the number of input fields successfully scanned, -converted, and stored; the return value does not include scanned -fields which were not stored. - -If <> attempts to read at end-of-file, the return value -is <>. - -If no fields were stored, the return value is <<0>>. - -The routines <<_vwscanf>>, <<_vfwscanf>>, and <<_vswscanf>> are -reentrant versions which take an additional first parameter which points -to the reentrancy structure. - -PORTABILITY -C99, POSIX-1.2008 -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "local.h" - -#ifdef INTEGER_ONLY -#define VFWSCANF vfiwscanf -#define _VFWSCANF_R _vfiwscanf_r -#define __SVFWSCANF __svfiwscanf -#ifdef STRING_ONLY -# define __SVFWSCANF_R __ssvfiwscanf_r -#else -# define __SVFWSCANF_R __svfiwscanf_r -#endif -#else -#define VFWSCANF vfwscanf -#define _VFWSCANF_R _vfwscanf_r -#define __SVFWSCANF __svfwscanf -#ifdef STRING_ONLY -# define __SVFWSCANF_R __ssvfwscanf_r -#else -# define __SVFWSCANF_R __svfwscanf_r -#endif -#ifndef NO_FLOATING_POINT -#define FLOATING_POINT -#endif -#endif - -#ifdef STRING_ONLY -#undef _newlib_flockfile_start -#undef _newlib_flockfile_exit -#undef _newlib_flockfile_end -#define _newlib_flockfile_start(x) {} -#define _newlib_flockfile_exit(x) {} -#define _newlib_flockfile_end(x) {} -#define _ungetwc_r _sungetwc_r -#define __srefill_r __ssrefill_r -#define _fgetwc_r _sfgetwc_r -#endif - -#ifdef FLOATING_POINT -#include -#include -#include -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ -#include "../locale/setlocale.h" -#endif - -/* Currently a test is made to see if long double processing is warranted. - This could be changed in the future should the _ldtoa_r code be - preferred over _dtoa_r. */ -#define _NO_LONGDBL -#if defined _WANT_IO_LONG_DOUBLE && (LDBL_MANT_DIG > DBL_MANT_DIG) -#undef _NO_LONGDBL -extern _LONG_DOUBLE _wcstold_r (wchar_t *s, wchar_t **sptr); -#endif - -#include "floatio.h" - -#if ((MAXEXP+MAXFRACT+3) > MB_LEN_MAX) -# define BUF (MAXEXP+MAXFRACT+3) /* 3 = sign + decimal point + NUL */ -#else -# define BUF MB_LEN_MAX -#endif - -/* An upper bound for how long a long prints in decimal. 4 / 13 approximates - log (2). Add one char for roundoff compensation and one for the sign. */ -#define MAX_LONG_LEN ((CHAR_BIT * sizeof (long) - 1) * 4 / 13 + 2) -#else -#define BUF 40 -#endif - -#define _NO_LONGLONG -#if defined _WANT_IO_LONG_LONG \ - && (defined __GNUC__ || __STDC_VERSION__ >= 199901L) -# undef _NO_LONGLONG -#endif - -#define _NO_POS_ARGS -#ifdef _WANT_IO_POS_ARGS -# undef _NO_POS_ARGS -# ifdef NL_ARGMAX -# define MAX_POS_ARGS NL_ARGMAX -# else -# define MAX_POS_ARGS 32 -# endif - -static void * get_arg (int, va_list *, int *, void **); -#endif /* _WANT_IO_POS_ARGS */ - -/* - * Flags used during conversion. - */ - -#define LONG 0x01 /* l: long or double */ -#define LONGDBL 0x02 /* L/ll: long double or long long */ -#define SHORT 0x04 /* h: short */ -#define CHAR 0x08 /* hh: 8 bit integer */ -#define SUPPRESS 0x10 /* suppress assignment */ -#define POINTER 0x20 /* weird %p pointer (`fake hex') */ -#define NOSKIP 0x40 /* do not skip blanks */ -#define MALLOC 0x80 /* handle 'm' modifier */ - -/* - * The following are used in numeric conversions only: - * SIGNOK, NDIGITS, DPTOK, and EXPOK are for floating point; - * SIGNOK, NDIGITS, PFXOK, and NZDIGITS are for integral. - */ - -#define SIGNOK 0x80 /* +/- is (still) legal */ -#define NDIGITS 0x100 /* no digits detected */ - -#define DPTOK 0x200 /* (float) decimal point is still legal */ -#define EXPOK 0x400 /* (float) exponent (e+3, etc) still legal */ - -#define PFXOK 0x200 /* 0x prefix is (still) legal */ -#define NZDIGITS 0x400 /* no zero digits detected */ -#define HAVESIGN 0x10000 /* sign detected */ - -/* - * Conversion types. - */ - -#define CT_CHAR 0 /* %c conversion */ -#define CT_CCL 1 /* %[...] conversion */ -#define CT_STRING 2 /* %s conversion */ -#define CT_INT 3 /* integer, i.e., wcstol or wcstoul */ -#define CT_FLOAT 4 /* floating, i.e., wcstod */ - -#define INCCL(_c) \ - (cclcompl ? (wmemchr(ccls, (_c), ccle - ccls) == NULL) : \ - (wmemchr(ccls, (_c), ccle - ccls) != NULL)) - -/* - * vfwscanf - */ - -#ifndef STRING_ONLY - -#ifndef _REENT_ONLY - -int -VFWSCANF (register FILE *__restrict fp, - const wchar_t *__restrict fmt, - va_list ap) -{ - struct _reent *reent = _REENT; - - CHECK_INIT(reent, fp); - return __SVFWSCANF_R (reent, fp, fmt, ap); -} - -int -__SVFWSCANF (register FILE *fp, - wchar_t const *fmt0, - va_list ap) -{ - return __SVFWSCANF_R (_REENT, fp, fmt0, ap); -} - -#endif /* !_REENT_ONLY */ - -int -_VFWSCANF_R (struct _reent *data, - register FILE *fp, - const wchar_t *fmt, - va_list ap) -{ - CHECK_INIT(data, fp); - return __SVFWSCANF_R (data, fp, fmt, ap); -} -#endif /* !STRING_ONLY */ - -#ifdef STRING_ONLY -/* When dealing with the swscanf family, we don't want to use the - * regular ungetwc which will drag in file I/O items we don't need. - * So, we create our own trimmed-down version. */ -static wint_t -_sungetwc_r (struct _reent *data, - wint_t wc, - register FILE *fp) -{ - if (wc == WEOF) - return (WEOF); - - /* After ungetc, we won't be at eof anymore */ - fp->_flags &= ~__SEOF; - - /* All ungetwc usage in scanf un-gets the current character, so - * just back up over the string if we aren't at the start - */ - if (fp->_bf._base != NULL && fp->_p > fp->_bf._base) - { - fp->_p -= sizeof (wchar_t); - fp->_r += sizeof (wchar_t); - } - - return wc; -} - -extern int __ssrefill_r (struct _reent *ptr, register FILE * fp); - -static size_t -_sfgetwc_r (struct _reent * ptr, - FILE * fp) -{ - wchar_t wc; - - if (fp->_r <= 0 && __ssrefill_r (ptr, fp)) - return (WEOF); - wc = *(wchar_t *) fp->_p; - fp->_p += sizeof (wchar_t); - fp->_r -= sizeof (wchar_t); - return (wc); -} -#endif /* STRING_ONLY */ - -int -__SVFWSCANF_R (struct _reent *rptr, - register FILE *fp, - wchar_t const *fmt0, - va_list ap) -{ - register wchar_t *fmt = (wchar_t *) fmt0; - register wint_t c; /* character from format, or conversion */ - register size_t width; /* field width, or 0 */ - register wchar_t *p = NULL; /* points into all kinds of strings */ - register int n; /* handy integer */ - register int flags; /* flags as defined above */ - register wchar_t *p0; /* saves original value of p when necessary */ - int nassigned; /* number of fields assigned */ - int nread; /* number of characters consumed from fp */ -#ifndef _NO_POS_ARGS - int N; /* arg number */ - int arg_index = 0; /* index into args processed directly */ - int numargs = 0; /* number of varargs read */ - void *args[MAX_POS_ARGS]; /* positional args read */ - int is_pos_arg; /* is current format positional? */ -#endif - int base = 0; /* base argument to wcstol/wcstoul */ - - mbstate_t mbs; /* value to keep track of multibyte state */ - - #define CCFN_PARAMS (struct _reent *, const wchar_t *, wchar_t **, int) - unsigned long (*ccfn)CCFN_PARAMS=0; /* conversion function (wcstol/wcstoul) */ - wchar_t buf[BUF]; /* buffer for numeric conversions */ - const wchar_t *ccls; /* character class start */ - const wchar_t *ccle; /* character class end */ - int cclcompl = 0; /* ccl is complemented? */ - wint_t wi; /* handy wint_t */ - char *mbp = NULL; /* multibyte string pointer for %c %s %[ */ - size_t nconv; /* number of bytes in mb. conversion */ - char mbbuf[MB_LEN_MAX]; /* temporary mb. character buffer */ - - char *cp; - short *sp; - int *ip; -#ifdef FLOATING_POINT - float *flp; - _LONG_DOUBLE *ldp; - double *dp; - wchar_t decpt; -#endif - long *lp; -#ifndef _NO_LONGLONG - long long *llp; -#endif -#ifdef _WANT_IO_C99_FORMATS -#define _WANT_IO_POSIX_EXTENSIONS -#endif -#ifdef _WANT_IO_POSIX_EXTENSIONS - /* POSIX requires that fwscanf frees all allocated strings from 'm' - conversions in case it returns EOF. m_ptr is used to keep track. - It will be allocated on the stack the first time an 'm' conversion - takes place, and it will be free'd on return from the function. - This implementation tries to save space by only allocating 8 - pointer slots at a time. Most scenarios should never have to call - realloc again. This implementation allows only up to 65528 'm' - conversions per fwscanf invocation for now. That should be enough - for almost all scenarios, right? */ - struct m_ptrs { - void ***m_arr; /* Array of pointer args to 'm' conversion */ - uint16_t m_siz; /* Number of slots in m_arr */ - uint16_t m_cnt; /* Number of valid entries in m_arr */ - } *m_ptr = NULL; - #define init_m_ptr() \ - do \ - { \ - if (!m_ptr) \ - { \ - m_ptr = (struct m_ptrs *) alloca (sizeof *m_ptr); \ - m_ptr->m_arr = NULL; \ - m_ptr->m_siz = 0; \ - m_ptr->m_cnt = 0; \ - } \ - } \ - while (0) - #define push_m_ptr(arg) \ - do \ - { \ - if (m_ptr->m_cnt >= m_ptr->m_siz) \ - { \ - void ***n = NULL; \ - \ - if (m_ptr->m_siz + 8 > 0 && m_ptr->m_siz + 8 < UINT16_MAX) \ - n = (void ***) realloc (m_ptr->m_arr, \ - (m_ptr->m_siz + 8) * \ - sizeof (void **)); \ - if (!n) \ - { \ - nassigned = EOF; \ - goto match_failure; \ - } \ - m_ptr->m_arr = n; \ - m_ptr->m_siz += 8; \ - } \ - m_ptr->m_arr[m_ptr->m_cnt++] = (void **) (arg); \ - } \ - while (0) - #define alloc_m_ptr(_type, _p, _p0, _p_p, _w) \ - ({ \ - _p_p = GET_ARG (N, ap, _type **); \ - if (!_p_p) \ - goto match_failure; \ - _p0 = (_type *) malloc ((_w) * sizeof (_type)); \ - if (!_p0) \ - { \ - nassigned = EOF; \ - goto match_failure; \ - } \ - *_p_p = _p0; \ - push_m_ptr (_p_p); \ - _p = _p0; \ - _w; \ - }) - /* For char output, check if there's room for at least MB_CUR_MAX - characters. */ - #define realloc_m_ptr(_type, _p, _p0, _p_p, _w) \ - ({ \ - size_t _nw = (_w); \ - ptrdiff_t _dif = _p - _p0; \ - if (_p_p && \ - ((sizeof (_type) == 1 && _dif >= _nw - MB_CUR_MAX) \ - || _dif >= _nw)) \ - { \ - _p0 = (_type *) realloc (_p0, (_nw << 1) * sizeof (_type)); \ - if (!_p0) \ - { \ - nassigned = EOF; \ - goto match_failure; \ - } \ - _p = _p0 + _dif; \ - *_p_p = _p0; \ - _nw <<= 1; \ - } \ - _nw; \ - }) - #define shrink_m_ptr(_type, _p_p, _w, _cw) \ - ({ \ - size_t _nw = (_w); \ - if (_p_p && _nw < _cw) \ - { \ - _type *_np_p = (_type *) \ - realloc (*_p_p, _nw * sizeof (_type)); \ - if (_np_p) \ - *_p_p = _np_p; \ - } \ - }) - #define free_m_ptr() \ - do \ - { \ - if (m_ptr) \ - { \ - if (nassigned == EOF) \ - { \ - int i; \ - for (i = 0; i < m_ptr->m_cnt; ++i) \ - { \ - free (*m_ptr->m_arr[i]); \ - *m_ptr->m_arr[i] = NULL; \ - } \ - } \ - if (m_ptr->m_arr) \ - free (m_ptr->m_arr); \ - } \ - } \ - while (0) -#endif - - /* `basefix' is used to avoid `if' tests in the integer scanner */ - static const short basefix[17] = - {10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - - /* Macro to support positional arguments */ -#ifndef _NO_POS_ARGS -# define GET_ARG(n, ap, type) \ - ((type) (is_pos_arg \ - ? (n < numargs \ - ? args[n] \ - : get_arg (n, &ap, &numargs, args)) \ - : (arg_index++ < numargs \ - ? args[n] \ - : (numargs < MAX_POS_ARGS \ - ? args[numargs++] = va_arg (ap, void *) \ - : va_arg (ap, void *))))) -#else -# define GET_ARG(n, ap, type) (va_arg (ap, type)) -#endif - -#ifdef FLOATING_POINT -#ifdef _MB_CAPABLE -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - decpt = *__get_current_numeric_locale ()->wdecimal_point; -#else - { - size_t nconv; - - memset (&mbs, '\0', sizeof (mbs)); - nconv = _mbrtowc_r (rptr, &decpt, - _localeconv_r (rptr)->decimal_point, - MB_CUR_MAX, &mbs); - if (nconv == (size_t) -1 || nconv == (size_t) -2) - decpt = L'.'; - } -#endif /* !__HAVE_LOCALE_INFO_EXTENDED__ */ -#else - decpt = (wchar_t) *_localeconv_r (rptr)->decimal_point; -#endif /* !_MB_CAPABLE */ -#endif /* FLOATING_POINT */ - - _newlib_flockfile_start (fp); - - ORIENT (fp, 1); - - nassigned = 0; - nread = 0; - ccls = ccle = NULL; - for (;;) - { - c = *fmt++; - if (c == L'\0') - goto all_done; - if (iswspace (c)) - { - while ((c = _fgetwc_r (rptr, fp)) != WEOF && iswspace(c)) - ; - if (c != WEOF) - _ungetwc_r (rptr, c, fp); - continue; - } - if (c != L'%') - goto literal; - width = 0; - flags = 0; -#ifndef _NO_POS_ARGS - N = arg_index; - is_pos_arg = 0; -#endif - - /* - * switch on the format. continue if done; break once format - * type is derived. - */ - - again: - c = *fmt++; - - switch (c) - { - case L'%': - literal: - if ((wi = _fgetwc_r (rptr, fp)) == WEOF) - goto input_failure; - if (wi != c) - { - _ungetwc_r (rptr, wi, fp); - goto input_failure; - } - nread++; - continue; - - case L'*': - if ((flags & (CHAR | SHORT | LONG | LONGDBL | SUPPRESS | MALLOC)) - || width) - goto match_failure; - flags |= SUPPRESS; - goto again; - case L'l': - if (flags & (CHAR | SHORT | LONG | LONGDBL)) - goto match_failure; -#if defined _WANT_IO_C99_FORMATS || !defined _NO_LONGLONG - if (*fmt == L'l') /* Check for 'll' = long long (SUSv3) */ - { - ++fmt; - flags |= LONGDBL; - } - else -#endif - flags |= LONG; - goto again; - case L'L': - if (flags & (CHAR | SHORT | LONG | LONGDBL)) - goto match_failure; - flags |= LONGDBL; - goto again; - case L'h': -#ifdef _WANT_IO_C99_FORMATS - if (flags & (CHAR | SHORT | LONG | LONGDBL)) - goto match_failure; - if (*fmt == 'h') /* Check for 'hh' = char int (SUSv3) */ - { - ++fmt; - flags |= CHAR; - } - else -#endif - flags |= SHORT; - goto again; -#ifdef _WANT_IO_C99_FORMATS - case L'j': /* intmax_t */ - if (flags & (CHAR | SHORT | LONG | LONGDBL)) - goto match_failure; - if (sizeof (intmax_t) == sizeof (long)) - flags |= LONG; - else - flags |= LONGDBL; - goto again; - case L't': /* ptrdiff_t */ - if (flags & (CHAR | SHORT | LONG | LONGDBL)) - goto match_failure; - if (sizeof (ptrdiff_t) < sizeof (int)) - /* POSIX states ptrdiff_t is 16 or more bits, as - is short. */ - flags |= SHORT; - else if (sizeof (ptrdiff_t) == sizeof (int)) - /* no flag needed */; - else if (sizeof (ptrdiff_t) <= sizeof (long)) - flags |= LONG; - else - /* POSIX states that at least one programming - environment must support ptrdiff_t no wider than - long, but that means other environments can - have ptrdiff_t as wide as long long. */ - flags |= LONGDBL; - goto again; - case L'z': /* size_t */ - if (flags & (CHAR | SHORT | LONG | LONGDBL)) - goto match_failure; - if (sizeof (size_t) < sizeof (int)) - /* POSIX states size_t is 16 or more bits, as is short. */ - flags |= SHORT; - else if (sizeof (size_t) == sizeof (int)) - /* no flag needed */; - else if (sizeof (size_t) <= sizeof (long)) - flags |= LONG; - else - /* POSIX states that at least one programming - environment must support size_t no wider than - long, but that means other environments can - have size_t as wide as long long. */ - flags |= LONGDBL; - goto again; -#endif /* _WANT_IO_C99_FORMATS */ -#ifdef _WANT_IO_POSIX_EXTENSIONS - case 'm': - if (flags & (CHAR | SHORT | LONG | LONGDBL | MALLOC)) - goto match_failure; - init_m_ptr (); - flags |= MALLOC; - goto again; -#endif - - case L'0': - case L'1': - case L'2': - case L'3': - case L'4': - case L'5': - case L'6': - case L'7': - case L'8': - case L'9': - if (flags & (CHAR | SHORT | LONG | LONGDBL | MALLOC)) - goto match_failure; - width = width * 10 + c - L'0'; - goto again; - -#ifndef _NO_POS_ARGS - case L'$': - if (flags & (CHAR | SHORT | LONG | LONGDBL | SUPPRESS | MALLOC)) - goto match_failure; - if (width <= MAX_POS_ARGS) - { - N = width - 1; - is_pos_arg = 1; - width = 0; - goto again; - } - _REENT_ERRNO(rptr) = EINVAL; - goto input_failure; -#endif /* !_NO_POS_ARGS */ - - case L'd': - c = CT_INT; - ccfn = (unsigned long (*)CCFN_PARAMS)_wcstol_r; - base = 10; - break; - - case L'i': - c = CT_INT; - ccfn = (unsigned long (*)CCFN_PARAMS)_wcstol_r; - base = 0; - break; - - case L'o': - c = CT_INT; - ccfn = _wcstoul_r; - base = 8; - break; - - case L'u': - c = CT_INT; - ccfn = _wcstoul_r; - base = 10; - break; - - case L'X': - case L'x': - flags |= PFXOK; /* enable 0x prefixing */ - c = CT_INT; - ccfn = _wcstoul_r; - base = 16; - break; - -#ifdef FLOATING_POINT -# ifdef _WANT_IO_C99_FORMATS - case L'A': - case L'a': - case L'F': -# endif - case L'E': - case L'G': - case L'e': - case L'f': - case L'g': - c = CT_FLOAT; - break; -#endif - -#ifdef _WANT_IO_C99_FORMATS - case L'S': - flags |= LONG; - /* FALLTHROUGH */ -#endif - - case L's': - c = CT_STRING; - break; - - case L'[': - if (*fmt == '^') - { - cclcompl = 1; - ++fmt; - } - else - cclcompl = 0; - ccls = fmt; - if (*fmt == ']') - fmt++; - while (*fmt != '\0' && *fmt != ']') - fmt++; - ccle = fmt; - fmt++; - flags |= NOSKIP; - c = CT_CCL; - break; - -#ifdef _WANT_IO_C99_FORMATS - case 'C': - flags |= LONG; - /* FALLTHROUGH */ -#endif - - case 'c': - flags |= NOSKIP; - c = CT_CHAR; - break; - - case 'p': /* pointer format is like hex */ - flags |= POINTER | PFXOK; - c = CT_INT; - ccfn = _wcstoul_r; - base = 16; - break; - - case 'n': - if (flags & SUPPRESS) /* ??? */ - continue; -#ifdef _WANT_IO_C99_FORMATS - if (flags & CHAR) - { - cp = GET_ARG (N, ap, char *); - *cp = nread; - } - else -#endif - if (flags & SHORT) - { - sp = GET_ARG (N, ap, short *); - *sp = nread; - } - else if (flags & LONG) - { - lp = GET_ARG (N, ap, long *); - *lp = nread; - } -#ifndef _NO_LONGLONG - else if (flags & LONGDBL) - { - llp = GET_ARG (N, ap, long long*); - *llp = nread; - } -#endif - else - { - ip = GET_ARG (N, ap, int *); - *ip = nread; - } - continue; - - default: - goto match_failure; - } - - /* - * Consume leading white space, except for formats that - * suppress this. - */ - if ((flags & NOSKIP) == 0) - { - while ((wi = _fgetwc_r (rptr, fp)) != WEOF && iswspace (wi)) - nread++; - if (wi == WEOF) - goto input_failure; - _ungetwc_r (rptr, wi, fp); - } - - /* - * Do the conversion. - */ - switch (c) - { - - case CT_CHAR: - /* scan arbitrary characters (sets NOSKIP) */ - if (width == 0) - width = 1; - if (flags & LONG) - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - wchar_t **p_p = NULL; - wchar_t *p0 = NULL; - size_t p_siz = 0; -#endif - - if (flags & SUPPRESS) - ; -#ifdef _WANT_IO_POSIX_EXTENSIONS - else if (flags & MALLOC) - p_siz = alloc_m_ptr (wchar_t, p, p0, p_p, 32); -#endif - else - p = GET_ARG(N, ap, wchar_t *); - n = 0; - while (width-- != 0 && (wi = _fgetwc_r (rptr, fp)) != WEOF) - { - if (!(flags & SUPPRESS)) - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - /* Check before ++ because we never add a \0 */ - p_siz = realloc_m_ptr (wchar_t, p, p0, p_p, p_siz); -#endif - *p++ = (wchar_t) wi; - } - n++; - } - if (n == 0) - goto input_failure; - nread += n; -#ifdef _WANT_IO_POSIX_EXTENSIONS - shrink_m_ptr (wchar_t, p_p, p - p0, p_siz); -#endif - if (!(flags & SUPPRESS)) - nassigned++; - } - else - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - char **mbp_p = NULL; - char *mbp0 = NULL; - size_t mbp_siz = 0; -#endif - - if (flags & SUPPRESS) - mbp = mbbuf; -#ifdef _WANT_IO_POSIX_EXTENSIONS - else if (flags & MALLOC) - mbp_siz = alloc_m_ptr (char, mbp, mbp0, mbp_p, 32); -#endif - else - mbp = GET_ARG(N, ap, char *); - n = 0; - memset ((void *)&mbs, '\0', sizeof (mbstate_t)); - while (width != 0 && (wi = _fgetwc_r (rptr, fp)) != WEOF) - { - nconv = _wcrtomb_r (rptr, mbp, wi, &mbs); - if (nconv == (size_t) -1) - goto input_failure; - /* Ignore high surrogate in width counting */ - if (nconv != 0 || mbs.__count != -4) - width--; - if (!(flags & SUPPRESS)) - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - mbp_siz = realloc_m_ptr (char, mbp, mbp0, mbp_p, mbp_siz); -#endif - mbp += nconv; - } - n++; - } - if (n == 0) - goto input_failure; - nread += n; -#ifdef _WANT_IO_POSIX_EXTENSIONS - shrink_m_ptr (char, mbp_p, mbp - mbp0, mbp_siz); -#endif - if (!(flags & SUPPRESS)) - nassigned++; - } - break; - - case CT_CCL: - /* scan a (nonempty) character class (sets NOSKIP) */ - if (width == 0) - width = SIZE_MAX; /* `infinity' */ - /* take only those things in the class */ - if ((flags & SUPPRESS) && (flags & LONG)) - { - n = 0; - while ((wi = _fgetwc_r (rptr, fp)) != WEOF - && width-- != 0 && INCCL (wi)) - n++; - if (wi != WEOF) - _ungetwc_r (rptr, wi, fp); - if (n == 0) - goto match_failure; - } - else if (flags & LONG) - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - wchar_t **p_p = NULL; - size_t p_siz = 0; - - if (flags & MALLOC) - p_siz = alloc_m_ptr (wchar_t, p, p0, p_p, 32); - else -#endif - p0 = p = GET_ARG(N, ap, wchar_t *); - while ((wi = _fgetwc_r (rptr, fp)) != WEOF - && width-- != 0 && INCCL (wi)) - { - *p++ = (wchar_t) wi; -#ifdef _WANT_IO_POSIX_EXTENSIONS - p_siz = realloc_m_ptr (wchar_t, p, p0, p_p, p_siz); -#endif - } - if (wi != WEOF) - _ungetwc_r (rptr, wi, fp); - n = p - p0; - if (n == 0) - goto match_failure; - *p = L'\0'; -#ifdef _WANT_IO_POSIX_EXTENSIONS - shrink_m_ptr (wchar_t, p_p, n + 1, p_siz); -#endif - nassigned++; - } - else - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - char **mbp_p = NULL; - char *mbp0 = NULL; - size_t mbp_siz = 0; -#endif - - if (flags & SUPPRESS) - mbp = mbbuf; -#ifdef _WANT_IO_POSIX_EXTENSIONS - else if (flags & MALLOC) - mbp_siz = alloc_m_ptr (char, mbp, mbp0, mbp_p, 32); -#endif - else - mbp = GET_ARG(N, ap, char *); - n = 0; - memset ((void *) &mbs, '\0', sizeof (mbstate_t)); - while ((wi = _fgetwc_r (rptr, fp)) != WEOF - && width != 0 && INCCL (wi)) - { - nconv = _wcrtomb_r (rptr, mbp, wi, &mbs); - if (nconv == (size_t) -1) - goto input_failure; - /* Ignore high surrogate in width counting */ - if (nconv != 0 || mbs.__count != -4) - width--; - if (!(flags & SUPPRESS)) - { - mbp += nconv; -#ifdef _WANT_IO_POSIX_EXTENSIONS - mbp_siz = realloc_m_ptr (char, mbp, mbp0, mbp_p, mbp_siz); -#endif - } - n++; - } - if (wi != WEOF) - _ungetwc_r (rptr, wi, fp); - if (!(flags & SUPPRESS)) - { - *mbp = 0; -#ifdef _WANT_IO_POSIX_EXTENSIONS - shrink_m_ptr (char, mbp_p, mbp - mbp0 + 1, mbp_siz); -#endif - nassigned++; - } - } - nread += n; - break; - - case CT_STRING: - /* like CCL, but zero-length string OK, & no NOSKIP */ - if (width == 0) - width = SIZE_MAX; - if ((flags & SUPPRESS) && (flags & LONG)) - { - while ((wi = _fgetwc_r (rptr, fp)) != WEOF - && width-- != 0 && !iswspace (wi)) - nread++; - if (wi != WEOF) - _ungetwc_r (rptr, wi, fp); - } - else if (flags & LONG) - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - wchar_t **p_p = NULL; - size_t p_siz = 0; - - if (flags & MALLOC) - p_siz = alloc_m_ptr (wchar_t, p, p0, p_p, 32); - else -#endif - p0 = p = GET_ARG(N, ap, wchar_t *); - while ((wi = _fgetwc_r (rptr, fp)) != WEOF - && width-- != 0 && !iswspace (wi)) - { - *p++ = (wchar_t) wi; -#ifdef _WANT_IO_POSIX_EXTENSIONS - p_siz = realloc_m_ptr (wchar_t, p, p0, p_p, p_siz); -#endif - nread++; - } - if (wi != WEOF) - _ungetwc_r (rptr, wi, fp); - *p = L'\0'; -#ifdef _WANT_IO_POSIX_EXTENSIONS - shrink_m_ptr (wchar_t, p_p, p - p0 + 1, p_siz); -#endif - nassigned++; - } - else - { -#ifdef _WANT_IO_POSIX_EXTENSIONS - char **mbp_p = NULL; - char *mbp0 = NULL; - size_t mbp_siz = 0; -#endif - - if (flags & SUPPRESS) - mbp = mbbuf; -#ifdef _WANT_IO_POSIX_EXTENSIONS - else if (flags & MALLOC) - mbp_siz = alloc_m_ptr (char, mbp, mbp0, mbp_p, 32); -#endif - else - mbp = GET_ARG(N, ap, char *); - memset ((void *) &mbs, '\0', sizeof (mbstate_t)); - while ((wi = _fgetwc_r (rptr, fp)) != WEOF - && width != 0 && !iswspace (wi)) - { - nconv = wcrtomb(mbp, wi, &mbs); - if (nconv == (size_t)-1) - goto input_failure; - /* Ignore high surrogate in width counting */ - if (nconv != 0 || mbs.__count != -4) - width--; - if (!(flags & SUPPRESS)) - { - mbp += nconv; -#ifdef _WANT_IO_POSIX_EXTENSIONS - mbp_siz = realloc_m_ptr (char, mbp, mbp0, mbp_p, mbp_siz); -#endif - } - nread++; - } - if (wi != WEOF) - _ungetwc_r (rptr, wi, fp); - if (!(flags & SUPPRESS)) - { - *mbp = 0; -#ifdef _WANT_IO_POSIX_EXTENSIONS - shrink_m_ptr (char, mbp_p, mbp - mbp0 + 1, mbp_siz); -#endif - nassigned++; - } - } - continue; - - case CT_INT: - { - /* scan an integer as if by wcstol/wcstoul */ - if (width == 0 || width > sizeof (buf) / sizeof (*buf) - 1) - width = sizeof(buf) / sizeof (*buf) - 1; - flags |= SIGNOK | NDIGITS | NZDIGITS; - for (p = buf; width; width--) - { - c = _fgetwc_r (rptr, fp); - /* - * Switch on the character; `goto ok' if we - * accept it as a part of number. - */ - switch (c) - { - /* - * The digit 0 is always legal, but is special. - * For %i conversions, if no digits (zero or nonzero) - * have been scanned (only signs), we will have base==0. - * In that case, we should set it to 8 and enable 0x - * prefixing. Also, if we have not scanned zero digits - * before this, do not turn off prefixing (someone else - * will turn it off if we have scanned any nonzero digits). - */ - case L'0': - if (base == 0) - { - base = 8; - flags |= PFXOK; - } - if (flags & NZDIGITS) - flags &= ~(SIGNOK | NZDIGITS | NDIGITS); - else - flags &= ~(SIGNOK | PFXOK | NDIGITS); - goto ok; - - /* 1 through 7 always legal */ - case L'1': - case L'2': - case L'3': - case L'4': - case L'5': - case L'6': - case L'7': - base = basefix[base]; - flags &= ~(SIGNOK | PFXOK | NDIGITS); - goto ok; - - /* digits 8 and 9 ok iff decimal or hex */ - case L'8': - case L'9': - base = basefix[base]; - if (base <= 8) - break; /* not legal here */ - flags &= ~(SIGNOK | PFXOK | NDIGITS); - goto ok; - - /* letters ok iff hex */ - case L'A': - case L'B': - case L'C': - case L'D': - case L'E': - case L'F': - case L'a': - case L'b': - case L'c': - case L'd': - case L'e': - case L'f': - /* no need to fix base here */ - if (base <= 10) - break; /* not legal here */ - flags &= ~(SIGNOK | PFXOK | NDIGITS); - goto ok; - - /* sign ok only as first character */ - case L'+': - case L'-': - if (flags & SIGNOK) - { - flags &= ~SIGNOK; - flags |= HAVESIGN; - goto ok; - } - break; - - /* x ok iff flag still set & single 0 seen */ - case L'x': - case L'X': - if ((flags & PFXOK) && p == buf + 1 + !!(flags & HAVESIGN)) - { - base = 16;/* if %i */ - flags &= ~PFXOK; - goto ok; - } - break; - } - - /* - * If we got here, c is not a legal character - * for a number. Stop accumulating digits. - */ - if (c != WEOF) - _ungetwc_r (rptr, c, fp); - break; - ok: - /* - * c is legal: store it and look at the next. - */ - *p++ = (wchar_t) c; - } - /* - * If we had only a sign, it is no good; push back the sign. - * If the number ends in `x', it was [sign] '0' 'x', so push back - * the x and treat it as [sign] '0'. - * Use of ungetc here and below assumes ASCII encoding; we are only - * pushing back 7-bit characters, so casting to unsigned char is - * not necessary. - */ - if (flags & NDIGITS) - { - if (p > buf) - _ungetwc_r (rptr, *--p, fp); /* [-+xX] */ - goto match_failure; - } - c = p[-1]; - if (c == L'x' || c == L'X') - { - --p; - _ungetwc_r (rptr, c, fp); - } - if ((flags & SUPPRESS) == 0) - { - unsigned long res; - - *p = 0; - res = (*ccfn) (rptr, buf, (wchar_t **) NULL, base); - if (flags & POINTER) - { - void **vp = GET_ARG (N, ap, void **); -#ifndef _NO_LONGLONG - if (sizeof (uintptr_t) > sizeof (unsigned long)) - { - unsigned long long resll; - resll = _wcstoull_r (rptr, buf, (wchar_t **) NULL, base); - *vp = (void *) (uintptr_t) resll; - } - else -#endif /* !_NO_LONGLONG */ - *vp = (void *) (uintptr_t) res; - } -#ifdef _WANT_IO_C99_FORMATS - else if (flags & CHAR) - { - cp = GET_ARG (N, ap, char *); - *cp = res; - } -#endif - else if (flags & SHORT) - { - sp = GET_ARG (N, ap, short *); - *sp = res; - } - else if (flags & LONG) - { - lp = GET_ARG (N, ap, long *); - *lp = res; - } -#ifndef _NO_LONGLONG - else if (flags & LONGDBL) - { - unsigned long long resll; - if (ccfn == _wcstoul_r) - resll = _wcstoull_r (rptr, buf, (wchar_t **) NULL, base); - else - resll = _wcstoll_r (rptr, buf, (wchar_t **) NULL, base); - llp = GET_ARG (N, ap, long long*); - *llp = resll; - } -#endif - else - { - ip = GET_ARG (N, ap, int *); - *ip = res; - } - nassigned++; - } - nread += p - buf; - break; - } -#ifdef FLOATING_POINT - case CT_FLOAT: - { - /* scan a floating point number as if by wcstod */ - /* This code used to assume that the number of digits is reasonable. - However, ANSI / ISO C makes no such stipulation; we have to get - exact results even when there is an unreasonable amount of - leading zeroes. */ - long leading_zeroes = 0; - long zeroes, exp_adjust; - wchar_t *exp_start = NULL; - unsigned width_left = 0; - char nancount = 0; - char infcount = 0; -#ifdef hardway - if (width == 0 || width > sizeof (buf) / sizeof (*buf) - 1) -#else - /* size_t is unsigned, hence this optimisation */ - if (width - 1 > sizeof (buf) / sizeof (*buf) - 2) -#endif - { - width_left = width - (sizeof (buf) / sizeof (*buf) - 1); - width = sizeof (buf) / sizeof (*buf) - 1; - } - flags |= SIGNOK | NDIGITS | DPTOK | EXPOK; - zeroes = 0; - exp_adjust = 0; - for (p = buf; width; ) - { - c = _fgetwc_r (rptr, fp); - /* - * This code mimicks the integer conversion - * code, but is much simpler. - */ - switch (c) - { - case L'0': - if (flags & NDIGITS) - { - flags &= ~SIGNOK; - zeroes++; - if (width_left) - { - width_left--; - width++; - } - goto fskip; - } - /* Fall through. */ - case L'1': - case L'2': - case L'3': - case L'4': - case L'5': - case L'6': - case L'7': - case L'8': - case L'9': - if (nancount + infcount == 0) - { - flags &= ~(SIGNOK | NDIGITS); - goto fok; - } - break; - - case L'+': - case L'-': - if (flags & SIGNOK) - { - flags &= ~SIGNOK; - goto fok; - } - break; - case L'n': - case L'N': - if (nancount == 0 && zeroes == 0 - && (flags & (NDIGITS | DPTOK | EXPOK)) == - (NDIGITS | DPTOK | EXPOK)) - { - flags &= ~(SIGNOK | DPTOK | EXPOK | NDIGITS); - nancount = 1; - goto fok; - } - if (nancount == 2) - { - nancount = 3; - goto fok; - } - if (infcount == 1 || infcount == 4) - { - infcount++; - goto fok; - } - break; - case L'a': - case L'A': - if (nancount == 1) - { - nancount = 2; - goto fok; - } - break; - case L'i': - if (infcount == 0 && zeroes == 0 - && (flags & (NDIGITS | DPTOK | EXPOK)) == - (NDIGITS | DPTOK | EXPOK)) - { - flags &= ~(SIGNOK | DPTOK | EXPOK | NDIGITS); - infcount = 1; - goto fok; - } - if (infcount == 3 || infcount == 5) - { - infcount++; - goto fok; - } - break; - case L'f': - case L'F': - if (infcount == 2) - { - infcount = 3; - goto fok; - } - break; - case L't': - case L'T': - if (infcount == 6) - { - infcount = 7; - goto fok; - } - break; - case L'y': - case L'Y': - if (infcount == 7) - { - infcount = 8; - goto fok; - } - break; - case L'e': - case L'E': - /* no exponent without some digits */ - if ((flags & (NDIGITS | EXPOK)) == EXPOK - || ((flags & EXPOK) && zeroes)) - { - if (! (flags & DPTOK)) - { - exp_adjust = zeroes - leading_zeroes; - exp_start = p; - } - flags = - (flags & ~(EXPOK | DPTOK)) | - SIGNOK | NDIGITS; - zeroes = 0; - goto fok; - } - break; - default: - if ((wchar_t) c == decpt && (flags & DPTOK)) - { - flags &= ~(SIGNOK | DPTOK); - leading_zeroes = zeroes; - goto fok; - } - break; - } - if (c != WEOF) - _ungetwc_r (rptr, c, fp); - break; - fok: - *p++ = c; - fskip: - width--; - ++nread; - } - if (zeroes) - flags &= ~NDIGITS; - /* We may have a 'N' or possibly even [sign] 'N' 'a' as the - start of 'NaN', only to run out of chars before it was - complete (or having encountered a non-matching char). So - check here if we have an outstanding nancount, and if so - put back the chars we did swallow and treat as a failed - match. - - FIXME - we still don't handle NAN([0xdigits]). */ - if (nancount - 1U < 2U) /* nancount && nancount < 3 */ - { - /* Newlib's ungetc works even if we called __srefill in - the middle of a partial parse, but POSIX does not - guarantee that in all implementations of ungetc. */ - while (p > buf) - { - _ungetwc_r (rptr, *--p, fp); /* [-+nNaA] */ - --nread; - } - goto match_failure; - } - /* Likewise for 'inf' and 'infinity'. But be careful that - 'infinite' consumes only 3 characters, leaving the stream - at the second 'i'. */ - if (infcount - 1U < 7U) /* infcount && infcount < 8 */ - { - if (infcount >= 3) /* valid 'inf', but short of 'infinity' */ - while (infcount-- > 3) - { - _ungetwc_r (rptr, *--p, fp); /* [iInNtT] */ - --nread; - } - else - { - while (p > buf) - { - _ungetwc_r (rptr, *--p, fp); /* [-+iInN] */ - --nread; - } - goto match_failure; - } - } - /* - * If no digits, might be missing exponent digits - * (just give back the exponent) or might be missing - * regular digits, but had sign and/or decimal point. - */ - if (flags & NDIGITS) - { - if (flags & EXPOK) - { - /* no digits at all */ - while (p > buf) - { - _ungetwc_r (rptr, *--p, fp); /* [-+.] */ - --nread; - } - goto match_failure; - } - /* just a bad exponent (e and maybe sign) */ - c = *--p; - --nread; - if (c != L'e' && c != L'E') - { - _ungetwc_r (rptr, c, fp); /* [-+] */ - c = *--p; - --nread; - } - _ungetwc_r (rptr, c, fp); /* [eE] */ - } - if ((flags & SUPPRESS) == 0) - { - double res = 0; -#ifdef _NO_LONGDBL -#define QUAD_RES res; -#else /* !_NO_LONG_DBL */ - long double qres = 0; -#define QUAD_RES qres; -#endif /* !_NO_LONG_DBL */ - long new_exp = 0; - - *p = 0; - if ((flags & (DPTOK | EXPOK)) == EXPOK) - { - exp_adjust = zeroes - leading_zeroes; - new_exp = -exp_adjust; - exp_start = p; - } - else if (exp_adjust) - new_exp = _wcstol_r (rptr, (exp_start + 1), NULL, 10) - exp_adjust; - if (exp_adjust) - { - - /* If there might not be enough space for the new exponent, - truncate some trailing digits to make room. */ - if (exp_start >= buf + sizeof (buf) / sizeof (*buf) - - MAX_LONG_LEN) - exp_start = buf + sizeof (buf) / sizeof (*buf) - - MAX_LONG_LEN - 1; - swprintf (exp_start, MAX_LONG_LEN, L"e%ld", new_exp); - } - - /* FIXME: We don't have wcstold yet. */ -#if 0//ndef _NO_LONGDBL /* !_NO_LONGDBL */ - if (flags & LONGDBL) - qres = _wcstold_r (rptr, buf, NULL); - else -#endif - res = _wcstod_r (rptr, buf, NULL); - - if (flags & LONG) - { - dp = GET_ARG (N, ap, double *); - *dp = res; - } - else if (flags & LONGDBL) - { - ldp = GET_ARG (N, ap, _LONG_DOUBLE *); - *ldp = QUAD_RES; - } - else - { - flp = GET_ARG (N, ap, float *); - if (isnan (res)) - *flp = nanf (""); - else - *flp = res; - } - nassigned++; - } - break; - } -#endif /* FLOATING_POINT */ - } - } -input_failure: - /* On read failure, return EOF failure regardless of matches; errno - should have been set prior to here. On EOF failure (including - invalid format string), return EOF if no matches yet, else number - of matches made prior to failure. */ - nassigned = nassigned && !(fp->_flags & __SERR) ? nassigned : EOF; -match_failure: -all_done: - /* Return number of matches, which can be 0 on match failure. */ - _newlib_flockfile_end (fp); -#ifdef _WANT_IO_POSIX_EXTENSIONS - free_m_ptr (); -#endif - return nassigned; -} - -#ifndef _NO_POS_ARGS -/* Process all intermediate arguments. Fortunately, with wscanf, all - intermediate arguments are sizeof(void*), so we don't need to scan - ahead in the format string. */ -static void * -get_arg (int n, va_list *ap, int *numargs_p, void **args) -{ - int numargs = *numargs_p; - while (n >= numargs) - args[numargs++] = va_arg (*ap, void *); - *numargs_p = numargs; - return args[n]; -} -#endif /* !_NO_POS_ARGS */ diff --git a/lib/stdio/viprintf.c b/lib/stdio/viprintf.c deleted file mode 100644 index 12b7b10..0000000 --- a/lib/stdio/viprintf.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>, <>, <>, <>, <>---format argument list (integer only) - -INDEX - viprintf -INDEX - _viprintf_r -INDEX - vfiprintf -INDEX - _vfiprintf_r -INDEX - vsiprintf -INDEX - _vsiprintf_r -INDEX - vsniprintf -INDEX - _vsniprintf_r -INDEX - vasiprintf -INDEX - _vasiprintf_r -INDEX - vasniprintf -INDEX - _vasniprintf_r - -SYNOPSIS - #include - #include - int viprintf(const char *<[fmt]>, va_list <[list]>); - int vfiprintf(FILE *<[fp]>, const char *<[fmt]>, va_list <[list]>); - int vsiprintf(char *<[str]>, const char *<[fmt]>, va_list <[list]>); - int vsniprintf(char *<[str]>, size_t <[size]>, const char *<[fmt]>, - va_list <[list]>); - int vasiprintf(char **<[strp]>, const char *<[fmt]>, va_list <[list]>); - char *vasniprintf(char *<[str]>, size_t *<[size]>, const char *<[fmt]>, - va_list <[list]>); - - int _viprintf_r(struct _reent *<[reent]>, const char *<[fmt]>, - va_list <[list]>); - int _vfiprintf_r(struct _reent *<[reent]>, FILE *<[fp]>, - const char *<[fmt]>, va_list <[list]>); - int _vsiprintf_r(struct _reent *<[reent]>, char *<[str]>, - const char *<[fmt]>, va_list <[list]>); - int _vsniprintf_r(struct _reent *<[reent]>, char *<[str]>, - size_t <[size]>, const char *<[fmt]>, va_list <[list]>); - int _vasiprintf_r(struct _reent *<[reent]>, char **<[str]>, - const char *<[fmt]>, va_list <[list]>); - char *_vasniprintf_r(struct _reent *<[reent]>, char *<[str]>, - size_t *<[size]>, const char *<[fmt]>, va_list <[list]>); - -DESCRIPTION -<>, <>, <>, <>, -<>, and <> are (respectively) variants of -<>, <>, <>, <>, <>, -and <>. They differ only in allowing their caller to pass -the variable argument list as a <> object (initialized by -<>) rather than directly accepting a variable number of -arguments. The caller is responsible for calling <>. - -<<_viprintf_r>>, <<_vfiprintf_r>>, <<_vasiprintf_r>>, -<<_vsiprintf_r>>, <<_vsniprintf_r>>, and <<_vasniprintf_r>> are -reentrant versions of the above. - -RETURNS -The return values are consistent with the corresponding functions: - -PORTABILITY -All of these functions are newlib extensions. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -viprintf (const char *fmt, - va_list ap) -{ - struct _reent *reent = _REENT; - - _REENT_SMALL_CHECK_INIT (reent); - return _vfiprintf_r (reent, _stdout_r (reent), fmt, ap); -} - -#endif /* !_REENT_ONLY */ - -int -_viprintf_r (struct _reent *ptr, - const char *fmt, - va_list ap) -{ - _REENT_SMALL_CHECK_INIT (ptr); - return _vfiprintf_r (ptr, _stdout_r (ptr), fmt, ap); -} diff --git a/lib/stdio/viscanf.c b/lib/stdio/viscanf.c deleted file mode 100644 index 6cc16cd..0000000 --- a/lib/stdio/viscanf.c +++ /dev/null @@ -1,107 +0,0 @@ -/*- - * Code created by modifying iscanf.c which has following copyright. - * - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>, <>, <>---format argument list - -INDEX - viscanf -INDEX - _viscanf_r -INDEX - vfiscanf -INDEX - _vfiscanf_r -INDEX - vsiscanf -INDEX - _vsiscanf_r - -SYNOPSIS - #include - #include - int viscanf(const char *<[fmt]>, va_list <[list]>); - int vfiscanf(FILE *<[fp]>, const char *<[fmt]>, va_list <[list]>); - int vsiscanf(const char *<[str]>, const char *<[fmt]>, va_list <[list]>); - - int _viscanf_r(struct _reent *<[reent]>, const char *<[fmt]>, - va_list <[list]>); - int _vfiscanf_r(struct _reent *<[reent]>, FILE *<[fp]>, const char *<[fmt]>, - va_list <[list]>); - int _vsiscanf_r(struct _reent *<[reent]>, const char *<[str]>, - const char *<[fmt]>, va_list <[list]>); - -DESCRIPTION -<>, <>, and <> are (respectively) variants -of <>, <>, and <>. They differ only in -allowing their caller to pass the variable argument list as a -<> object (initialized by <>) rather than -directly accepting a variable number of arguments. - -RETURNS -The return values are consistent with the corresponding functions: -<> returns the number of input fields successfully scanned, -converted, and stored; the return value does not include scanned -fields which were not stored. - -If <> attempts to read at end-of-file, the return value -is <>. - -If no fields were stored, the return value is <<0>>. - -The routines <<_viscanf_r>>, <<_vfiscanf_f>>, and <<_vsiscanf_r>> are -reentrant versions which take an additional first parameter which points to the -reentrancy structure. - -PORTABILITY -These are newlib extensions. - -Supporting OS subroutines required: -*/ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -viscanf (const char *fmt, - va_list ap) -{ - struct _reent *reent = _REENT; - - _REENT_SMALL_CHECK_INIT (reent); - return __svfiscanf_r (reent, _stdin_r (reent), fmt, ap); -} - -#endif /* !_REENT_ONLY */ - -int -_viscanf_r (struct _reent *ptr, - const char *fmt, - va_list ap) -{ - _REENT_SMALL_CHECK_INIT (ptr); - return __svfiscanf_r (ptr, _stdin_r (ptr), fmt, ap); -} - diff --git a/lib/stdio/vprintf.c b/lib/stdio/vprintf.c deleted file mode 100644 index 8e13cbb..0000000 --- a/lib/stdio/vprintf.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in vfprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -vprintf (const char *fmt, - va_list ap) -{ - struct _reent *reent = _REENT; - - _REENT_SMALL_CHECK_INIT (reent); - return _vfprintf_r (reent, _stdout_r (reent), fmt, ap); -} - -#ifdef _NANO_FORMATTED_IO -int -viprintf (const char *, __VALIST) _ATTRIBUTE ((__alias__("vprintf"))); -#endif - -#endif /* !_REENT_ONLY */ - -int -_vprintf_r (struct _reent *ptr, - const char *__restrict fmt, - va_list ap) -{ - _REENT_SMALL_CHECK_INIT (ptr); - return _vfprintf_r (ptr, _stdout_r (ptr), fmt, ap); -} - -#ifdef _NANO_FORMATTED_IO -int -_viprintf_r (struct _reent *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("_vprintf_r"))); -#endif diff --git a/lib/stdio/vscanf.c b/lib/stdio/vscanf.c deleted file mode 100644 index 9e12357..0000000 --- a/lib/stdio/vscanf.c +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * Code created by modifying scanf.c which has following copyright. - * - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -vscanf (const char *fmt, - va_list ap) -{ - struct _reent *reent = _REENT; - - _REENT_SMALL_CHECK_INIT (reent); - return __svfscanf_r (reent, _stdin_r (reent), fmt, ap); -} - -#ifdef _NANO_FORMATTED_IO -int -viscanf (const char *, __VALIST) _ATTRIBUTE ((__alias__("vscanf"))); -#endif - -#endif /* !_REENT_ONLY */ - -int -_vscanf_r (struct _reent *ptr, - const char *__restrict fmt, - va_list ap) -{ - _REENT_SMALL_CHECK_INIT (ptr); - return __svfscanf_r (ptr, _stdin_r (ptr), fmt, ap); -} - -#ifdef _NANO_FORMATTED_IO -int -_viscanf_r (struct _reent *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("_vscanf_r"))); -#endif diff --git a/lib/stdio/vsiprintf.c b/lib/stdio/vsiprintf.c deleted file mode 100644 index 8128cb7..0000000 --- a/lib/stdio/vsiprintf.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in viprintf.c */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include -#include - -#include "local.h" - -#ifndef _REENT_ONLY - -int -vsiprintf (char *str, - const char *fmt, - va_list ap) -{ - return _vsiprintf_r (_REENT, str, fmt, ap); -} - -#endif /* !_REENT_ONLY */ - -int -_vsiprintf_r (struct _reent *ptr, - char *str, - const char *fmt, - va_list ap) -{ - int ret; - FILE f; - - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = INT_MAX; - f._file = -1; /* No file. */ - ret = _svfiprintf_r (ptr, &f, fmt, ap); - *f._p = 0; - return ret; -} diff --git a/lib/stdio/vsiscanf.c b/lib/stdio/vsiscanf.c deleted file mode 100644 index d7135ef..0000000 --- a/lib/stdio/vsiscanf.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Code created by modifying iscanf.c which has following copyright. - * - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -/* - * vsiscanf - */ - -#ifndef _REENT_ONLY - -int -vsiscanf (const char *str, - const char *fmt, - va_list ap) -{ - return _vsiscanf_r (_REENT, str, fmt, ap); -} - -#endif /* !_REENT_ONLY */ - -int -_vsiscanf_r (struct _reent *ptr, - const char *str, - const char *fmt, - va_list ap) -{ - FILE f; - - f._flags = __SRD | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._r = strlen (str); - f._read = __seofread; - f._ub._base = NULL; - f._lb._base = NULL; - f._file = -1; /* No file. */ - return __ssvfiscanf_r (ptr, &f, fmt, ap); -} diff --git a/lib/stdio/vsniprintf.c b/lib/stdio/vsniprintf.c deleted file mode 100644 index e7625ff..0000000 --- a/lib/stdio/vsniprintf.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 1990, 2007 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in viprintf.c */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include -#include -#include - -#include "local.h" - -#ifndef _REENT_ONLY - -int -vsniprintf (char *str, - size_t size, - const char *fmt, - va_list ap) -{ - return _vsniprintf_r (_REENT, str, size, fmt, ap); -} - -#endif /* !_REENT_ONLY */ - -int -_vsniprintf_r (struct _reent *ptr, - char *str, - size_t size, - const char *fmt, - va_list ap) -{ - int ret; - FILE f; - - if (size > INT_MAX) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - return EOF; - } - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = (size > 0 ? size - 1 : 0); - f._file = -1; /* No file. */ - ret = _svfiprintf_r (ptr, &f, fmt, ap); - if (ret < EOF) - _REENT_ERRNO(ptr) = EOVERFLOW; - if (size > 0) - *f._p = 0; - return ret; -} diff --git a/lib/stdio/vsnprintf.c b/lib/stdio/vsnprintf.c deleted file mode 100644 index ecf82ea..0000000 --- a/lib/stdio/vsnprintf.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in vfprintf.c */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include -#include -#include - -#include "local.h" - -#ifndef _REENT_ONLY - -int -vsnprintf (char *__restrict str, - size_t size, - const char *__restrict fmt, - va_list ap) -{ - return _vsnprintf_r (_REENT, str, size, fmt, ap); -} - -#ifdef _NANO_FORMATTED_IO -int -vsniprintf (char *, size_t, const char *, __VALIST) - _ATTRIBUTE ((__alias__("vsnprintf"))); -#endif - -#endif /* !_REENT_ONLY */ - -int -_vsnprintf_r (struct _reent *ptr, - char *__restrict str, - size_t size, - const char *__restrict fmt, - va_list ap) -{ - int ret; - FILE f; - - if (size > INT_MAX) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - return EOF; - } - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = (size > 0 ? size - 1 : 0); - f._file = -1; /* No file. */ - ret = _svfprintf_r (ptr, &f, fmt, ap); - if (ret < EOF) - _REENT_ERRNO(ptr) = EOVERFLOW; - if (size > 0) - *f._p = 0; - return ret; -} - -#ifdef _NANO_FORMATTED_IO -int -_vsniprintf_r (struct _reent *, char *, size_t, const char *, __VALIST) - _ATTRIBUTE ((__alias__("_vsnprintf_r"))); -#endif diff --git a/lib/stdio/vsprintf.c b/lib/stdio/vsprintf.c deleted file mode 100644 index 4d51fd0..0000000 --- a/lib/stdio/vsprintf.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in vfprintf.c */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include -#include - -#include "local.h" - -#ifndef _REENT_ONLY - -int -vsprintf (char *__restrict str, - const char *__restrict fmt, - va_list ap) -{ - return _vsprintf_r (_REENT, str, fmt, ap); -} - -#ifdef _NANO_FORMATTED_IO -int -vsiprintf (char *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("vsprintf"))); -#endif - -#endif /* !_REENT_ONLY */ - -int -_vsprintf_r (struct _reent *ptr, - char *__restrict str, - const char *__restrict fmt, - va_list ap) -{ - int ret; - FILE f; - - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = INT_MAX; - f._file = -1; /* No file. */ - ret = _svfprintf_r (ptr, &f, fmt, ap); - *f._p = 0; - return ret; -} - -#ifdef _NANO_FORMATTED_IO -int -_vsiprintf_r (struct _reent *, char *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("_vsprintf_r"))); -#endif diff --git a/lib/stdio/vsscanf.c b/lib/stdio/vsscanf.c deleted file mode 100644 index e9e8408..0000000 --- a/lib/stdio/vsscanf.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Code created by modifying scanf.c which has following copyright. - * - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -/* - * vsscanf - */ - -#ifndef _REENT_ONLY - -int -vsscanf (const char *__restrict str, - const char *__restrict fmt, - va_list ap) -{ - return _vsscanf_r (_REENT, str, fmt, ap); -} - -#ifdef _NANO_FORMATTED_IO -int -vsiscanf (const char *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("vsscanf"))); -#endif - -#endif /* !_REENT_ONLY */ - -int -_vsscanf_r (struct _reent *ptr, - const char *__restrict str, - const char *__restrict fmt, - va_list ap) -{ - FILE f; - - f._flags = __SRD | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._r = strlen (str); - f._read = __seofread; - f._ub._base = NULL; - f._lb._base = NULL; - f._file = -1; /* No file. */ - return __ssvfscanf_r (ptr, &f, fmt, ap); -} - -#ifdef _NANO_FORMATTED_IO -int -_vsiscanf_r (struct _reent *, const char *, const char *, __VALIST) - _ATTRIBUTE ((__alias__("_vsscanf_r"))); -#endif diff --git a/lib/stdio/vswprintf.c b/lib/stdio/vswprintf.c deleted file mode 100644 index 08a8545..0000000 --- a/lib/stdio/vswprintf.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in vfwprintf.c */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include - -#include "local.h" - -int -_vswprintf_r (struct _reent *ptr, - wchar_t *str, - size_t size, - const wchar_t *fmt, - va_list ap) -{ - int ret; - FILE f; - - if (size > INT_MAX / sizeof (wchar_t)) - { - _REENT_ERRNO(ptr) = EOVERFLOW; /* POSIX extension */ - return EOF; - } - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._w = (size > 0 ? (size - 1) * sizeof (wchar_t) : 0); - f._file = -1; /* No file. */ - ret = _svfwprintf_r (ptr, &f, fmt, ap); - /* _svfwprintf_r() does not put in a terminating NUL, so add one if - * appropriate, which is whenever size is > 0. _svfwprintf_r() stops - * after n-1, so always just put at the end. */ - if (size > 0) { - *(wchar_t *)f._p = L'\0'; /* terminate the string */ - } - if(ret >= size) { - /* _svfwprintf_r() returns how many wide characters it would have printed - * if there were enough space. Return an error if too big to fit in str, - * unlike snprintf, which returns the size needed. */ - _REENT_ERRNO(ptr) = EOVERFLOW; /* POSIX extension */ - ret = -1; - } - return ret; -} - -#ifndef _REENT_ONLY - -int -vswprintf (wchar_t *__restrict str, - size_t size, - const wchar_t *__restrict fmt, - va_list ap) -{ - return _vswprintf_r (_REENT, str, size, fmt, ap); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdio/vswscanf.c b/lib/stdio/vswscanf.c deleted file mode 100644 index 415c98b..0000000 --- a/lib/stdio/vswscanf.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Code created by modifying scanf.c which has following copyright. - * - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* Doc in vfwscanf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "local.h" - -/* - * vsscanf - */ - -#ifndef _REENT_ONLY - -int -vswscanf (const wchar_t *__restrict str, const wchar_t * __restrict fmt, - va_list ap) -{ - return _vswscanf_r (_REENT, str, fmt, ap); -} - -#endif /* !_REENT_ONLY */ - -int -_vswscanf_r (struct _reent *ptr, const wchar_t *str, const wchar_t *fmt, - va_list ap) -{ - FILE f; - - f._flags = __SRD | __SSTR; - f._bf._base = f._p = (unsigned char *) str; - f._bf._size = f._r = wcslen (str) * sizeof (wchar_t); - f._read = __seofread; - f._ub._base = NULL; - f._lb._base = NULL; - f._flags2 = 0; - f._ur = 0; - f._file = -1; /* No file. */ - return __ssvfwscanf_r (ptr, &f, fmt, ap); -} diff --git a/lib/stdio/vwprintf.c b/lib/stdio/vwprintf.c deleted file mode 100644 index 358d876..0000000 --- a/lib/stdio/vwprintf.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in vfwprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -vwprintf (const wchar_t *__restrict fmt, - va_list ap) -{ - struct _reent *reent = _REENT; - - _REENT_SMALL_CHECK_INIT (reent); - return _vfwprintf_r (reent, _stdout_r (reent), fmt, ap); -} - -#endif /* !_REENT_ONLY */ - -int -_vwprintf_r (struct _reent *ptr, - const wchar_t *fmt, - va_list ap) -{ - _REENT_SMALL_CHECK_INIT (ptr); - return _vfwprintf_r (ptr, _stdout_r (ptr), fmt, ap); -} diff --git a/lib/stdio/vwscanf.c b/lib/stdio/vwscanf.c deleted file mode 100644 index c994bad..0000000 --- a/lib/stdio/vwscanf.c +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * Code created by modifying scanf.c which has following copyright. - * - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* Doc in vfwscanf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -vwscanf (const wchar_t *__restrict fmt, va_list ap) -{ - struct _reent *reent = _REENT; - - _REENT_SMALL_CHECK_INIT (reent); - return __svfwscanf_r (reent, _stdin_r (reent), fmt, ap); -} - -#endif /* !_REENT_ONLY */ - -int -_vwscanf_r (struct _reent *ptr, const wchar_t *fmt, va_list ap) -{ - _REENT_SMALL_CHECK_INIT (ptr); - return __svfwscanf_r (ptr, _stdin_r (ptr), fmt, ap); -} - diff --git a/lib/stdio/wbuf.c b/lib/stdio/wbuf.c deleted file mode 100644 index 2474903..0000000 --- a/lib/stdio/wbuf.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* No user fns here. Pesch 15apr92. */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include <_ansi.h> -#include -#include -#include "local.h" -#include "fvwrite.h" - -/* - * Write the given character into the (probably full) buffer for - * the given file. Flush the buffer out if it is or becomes full, - * or if c=='\n' and the file is line buffered. - */ - -int -__swbuf_r (struct _reent *ptr, - register int c, - register FILE *fp) -{ - register int n; - - /* Ensure stdio has been initialized. */ - - CHECK_INIT (ptr, fp); - - /* - * In case we cannot write, or longjmp takes us out early, - * make sure _w is 0 (if fully- or un-buffered) or -_bf._size - * (if line buffered) so that we will get called again. - * If we did not do this, a sufficient number of putc() - * calls might wrap _w from negative to positive. - */ - - fp->_w = fp->_lbfsize; - if (cantwrite (ptr, fp)) - return EOF; - c = (unsigned char) c; - - ORIENT (fp, -1); - - /* - * If it is completely full, flush it out. Then, in any case, - * stuff c into the buffer. If this causes the buffer to fill - * completely, or if c is '\n' and the file is line buffered, - * flush it (perhaps a second time). The second flush will always - * happen on unbuffered streams, where _bf._size==1; fflush() - * guarantees that putc() will always call wbuf() by setting _w - * to 0, so we need not do anything else. - */ - - n = fp->_p - fp->_bf._base; - if (n >= fp->_bf._size) - { - if (_fflush_r (ptr, fp)) - return EOF; - n = 0; - } - fp->_w--; - *fp->_p++ = c; - if (++n == fp->_bf._size || (fp->_flags & __SLBF && c == '\n')) - if (_fflush_r (ptr, fp)) - return EOF; - return c; -} - -/* This function isn't any longer declared in stdio.h, but it's - required for backward compatibility with applications built against - earlier dynamically built newlib libraries. */ -int -__swbuf (register int c, - register FILE *fp) -{ - return __swbuf_r (_REENT, c, fp); -} diff --git a/lib/stdio/wprintf.c b/lib/stdio/wprintf.c deleted file mode 100644 index 32be6f1..0000000 --- a/lib/stdio/wprintf.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* doc in swprintf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -int -_wprintf_r (struct _reent *ptr, - const wchar_t *fmt, ...) -{ - int ret; - va_list ap; - - _REENT_SMALL_CHECK_INIT (ptr); - va_start (ap, fmt); - ret = _vfwprintf_r (ptr, _stdout_r (ptr), fmt, ap); - va_end (ap); - return ret; -} - -#ifndef _REENT_ONLY - -int -wprintf (const wchar_t *__restrict fmt, ...) -{ - int ret; - va_list ap; - struct _reent *ptr = _REENT; - - _REENT_SMALL_CHECK_INIT (ptr); - va_start (ap, fmt); - ret = _vfwprintf_r (ptr, _stdout_r (ptr), fmt, ap); - va_end (ap); - return ret; -} - -#endif /* ! _REENT_ONLY */ diff --git a/lib/stdio/wscanf.c b/lib/stdio/wscanf.c deleted file mode 100644 index 4de7922..0000000 --- a/lib/stdio/wscanf.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - /* Doc in swscanf.c */ - -#include <_ansi.h> -#include -#include -#include -#include -#include "local.h" - -#ifndef _REENT_ONLY - -int -wscanf(const wchar_t *__restrict fmt, ...) -{ - int ret; - va_list ap; - struct _reent *reent = _REENT; - - _REENT_SMALL_CHECK_INIT (reent); - va_start (ap, fmt); - ret = _vfwscanf_r (reent, _stdin_r (reent), fmt, ap); - va_end (ap); - return ret; -} - -#endif /* !_REENT_ONLY */ - -int -_wscanf_r(struct _reent *ptr, const wchar_t *fmt, ...) -{ - int ret; - va_list ap; - - _REENT_SMALL_CHECK_INIT (ptr); - va_start (ap, fmt); - ret = _vfwscanf_r (ptr, _stdin_r (ptr), fmt, ap); - va_end (ap); - return (ret); -} - diff --git a/lib/stdio/wsetup.c b/lib/stdio/wsetup.c deleted file mode 100644 index 0fd9690..0000000 --- a/lib/stdio/wsetup.c +++ /dev/null @@ -1,93 +0,0 @@ -/* No user fns here. Pesch 15apr92. */ - -/* - * Copyright (c) 1990, 2007 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -/* - * Various output routines call wsetup to be sure it is safe to write, - * because either _flags does not include __SWR, or _buf is NULL. - * _wsetup returns 0 if OK to write, nonzero and set errno otherwise. - */ - -int -__swsetup_r (struct _reent *ptr, - register FILE * fp) -{ - /* Make sure stdio is set up. */ - - CHECK_INIT (_REENT, fp); - - /* - * If we are not writing, we had better be reading and writing. - */ - - if ((fp->_flags & __SWR) == 0) - { - if ((fp->_flags & __SRW) == 0) - { - _REENT_ERRNO(ptr) = EBADF; - fp->_flags |= __SERR; - return EOF; - } - if (fp->_flags & __SRD) - { - /* clobber any ungetc data */ - if (HASUB (fp)) - FREEUB (ptr, fp); - fp->_flags &= ~(__SRD | __SEOF); - fp->_r = 0; - fp->_p = fp->_bf._base; - } - fp->_flags |= __SWR; - } - - /* - * Make a buffer if necessary, then set _w. - * A string I/O file should not explicitly allocate a buffer - * unless asprintf is being used. - */ - if (fp->_bf._base == NULL - && (!(fp->_flags & __SSTR) || (fp->_flags & __SMBF))) - __smakebuf_r (ptr, fp); - - if (fp->_flags & __SLBF) - { - /* - * It is line buffered, so make _lbfsize be -_bufsize - * for the putc() macro. We will change _lbfsize back - * to 0 whenever we turn off __SWR. - */ - fp->_w = 0; - fp->_lbfsize = -fp->_bf._size; - } - else - fp->_w = fp->_flags & __SNBF ? 0 : fp->_bf._size; - - if (!fp->_bf._base && (fp->_flags & __SMBF)) - { - /* __smakebuf_r set errno, but not flag */ - fp->_flags |= __SERR; - return EOF; - } - return 0; -} diff --git a/lib/stdio64/Makefile.inc b/lib/stdio64/Makefile.inc deleted file mode 100644 index 8746c93..0000000 --- a/lib/stdio64/Makefile.inc +++ /dev/null @@ -1,31 +0,0 @@ -if HAVE_STDIO64_DIR - -## All interfaces are EL/IX level 2 -if !ELIX_LEVEL_1 -libc_a_SOURCES += \ - %D%/fdopen64.c \ - %D%/fgetpos64.c \ - %D%/fopen64.c \ - %D%/freopen64.c \ - %D%/fseeko64.c \ - %D%/fsetpos64.c \ - %D%/ftello64.c \ - %D%/stdio64.c \ - %D%/tmpfile64.c -endif - -libc_a_CPPFLAGS_%C% = -I$(srcdir)/%D%/../stdio - -endif - -LIBC_CHEWOUT_FILES += \ - %D%/fdopen64.def \ - %D%/fgetpos64.def \ - %D%/fopen64.def \ - %D%/freopen64.def \ - %D%/fseeko64.def \ - %D%/fsetpos64.def \ - %D%/ftello64.def \ - %D%/tmpfile64.def - -LIBC_CHAPTERS += %D%/stdio64.tex diff --git a/lib/stdio64/fdopen64.c b/lib/stdio64/fdopen64.c deleted file mode 100644 index d93b3d4..0000000 --- a/lib/stdio64/fdopen64.c +++ /dev/null @@ -1,116 +0,0 @@ -/* -FUNCTION -<>---turn open large file into a stream - -INDEX - fdopen64 -INDEX - _fdopen64_r - -SYNOPSIS - #include - FILE *fdopen64(int <[fd]>, const char *<[mode]>); - FILE *_fdopen64_r(void *<[reent]>, - int <[fd]>, const char *<[mode]>); - -DESCRIPTION -<> produces a file descriptor of type <>, from a -descriptor for an already-open file (returned, for example, by the -system subroutine <> rather than by <>). -The <[mode]> argument has the same meanings as in <>. - -RETURNS -File pointer or <>, as for <>. -*/ - -#include -#include - -#include -#include -#include "local.h" -#include <_syslist.h> -#include - -extern int __sflags (); - -FILE * -_fdopen64_r (struct _reent *ptr, - int fd, - const char *mode) -{ - register FILE *fp; - int flags, oflags; -#ifdef HAVE_FCNTL - int fdflags, fdmode; -#endif - - if ((flags = __sflags (ptr, mode, &oflags)) == 0) - return 0; - - /* make sure the mode the user wants is a subset of the actual mode */ -#ifdef HAVE_FCNTL - if ((fdflags = _fcntl_r (ptr, fd, F_GETFL, 0)) < 0) - return 0; - fdmode = fdflags & O_ACCMODE; - if (fdmode != O_RDWR && (fdmode != (oflags & O_ACCMODE))) - { - _REENT_ERRNO(ptr) = EBADF; - return 0; - } -#endif - - if ((fp = __sfp (ptr)) == 0) - return 0; - - _newlib_flockfile_start(fp); - - fp->_flags = flags; - /* POSIX recommends setting the O_APPEND bit on fd to match append - streams. Someone may later clear O_APPEND on fileno(fp), but the - stream must still remain in append mode. Rely on __sflags - setting __SAPP properly. */ -#ifdef HAVE_FCNTL - if ((oflags & O_APPEND) && !(fdflags & O_APPEND)) - _fcntl_r (ptr, fd, F_SETFL, fdflags | O_APPEND); -#endif - fp->_file = fd; - fp->_cookie = (void *) fp; - -#undef _read -#undef _write -#undef _seek -#undef _close - - fp->_read = __sread; - fp->_write = __swrite64; - fp->_seek = __sseek; - fp->_seek64 = __sseek64; - fp->_close = __sclose; - -#ifdef __SCLE - /* Explicit given mode results in explicit setting mode on fd */ - if (oflags & O_BINARY) - setmode(fp->_file, O_BINARY); - else if (oflags & O_TEXT) - setmode(fp->_file, O_TEXT); - if (__stextmode(fp->_file)) - fp->_flags |= __SCLE; -#endif - - fp->_flags |= __SL64; - - _newlib_flockfile_end(fp); - return fp; -} - -#ifndef _REENT_ONLY - -FILE * -fdopen64 (int fd, - const char *mode) -{ - return _fdopen64_r (_REENT, fd, mode); -} - -#endif diff --git a/lib/stdio64/fgetpos64.c b/lib/stdio64/fgetpos64.c deleted file mode 100644 index 52ead9d..0000000 --- a/lib/stdio64/fgetpos64.c +++ /dev/null @@ -1,72 +0,0 @@ -/* -FUNCTION -<>---record position in a large stream or file - -INDEX - fgetpos64 -INDEX - _fgetpos64_r - -SYNOPSIS - #include - int fgetpos64(FILE *<[fp]>, _fpos64_t *<[pos]>); - int _fgetpos64_r(struct _reent *<[ptr]>, FILE *<[fp]>, - _fpos64_t *<[pos]>); - -DESCRIPTION -Objects of type <> can have a ``position'' that records how much -of the file your program has already read. Many of the <> functions -depend on this position, and many change it as a side effect. - -You can use <> to report on the current position for a file -identified by <[fp]> that was opened by <>; <> will write -a value representing that position at <<*<[pos]>>>. Later, you can -use this value with <> to return the file to this -position. - -In the current implementation, <> simply uses a character -count to represent the file position; this is the same number that -would be returned by <>. - -RETURNS -<> returns <<0>> when successful. If <> fails, the -result is <<1>>. Failure occurs on streams that do not support -positioning or streams not opened via <>; the global <> -indicates these conditions with the value <>. - -PORTABILITY -<> is a glibc extension. - -No supporting OS subroutines are required. -*/ - -#include - -#ifdef __LARGE64_FILES - -int -_fgetpos64_r (struct _reent * ptr, - FILE * fp, - _fpos64_t * pos) -{ - *pos = (_fpos64_t)_ftello64_r (ptr, fp); - - if (*pos != -1) - { - return 0; - } - return 1; -} - -#ifndef _REENT_ONLY - -int -fgetpos64 (FILE * fp, - _fpos64_t * pos) -{ - return _fgetpos64_r (_REENT, fp, pos); -} - -#endif /* !_REENT_ONLY */ - -#endif /* __LARGE64_FILES */ diff --git a/lib/stdio64/fopen64.c b/lib/stdio64/fopen64.c deleted file mode 100644 index 75d2c2c..0000000 --- a/lib/stdio64/fopen64.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---open a large file - -INDEX - fopen64 -INDEX - _fopen64_r - -SYNOPSIS - #include - FILE *fopen64(const char *<[file]>, const char *<[mode]>); - FILE *_fopen64_r(void *<[reent]>, - const char *<[file]>, const char *<[mode]>); - -DESCRIPTION -<> is identical to <> except it opens a large file that -is potentially >2GB in size. See <> for further details. - -RETURNS -<> return a file pointer which you can use for other file -operations, unless the file you requested could not be opened; in that -situation, the result is <>. If the reason for failure was an -invalid string at <[mode]>, <> is set to <>. - -PORTABILITY -<> is a glibc extension. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>, <>. -*/ - -/* Copied from fopen.c */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -#include -#include -#include "local.h" -#ifdef __CYGWIN__ -#include -#endif -#include - -#ifdef __LARGE64_FILES - -FILE * -_fopen64_r (struct _reent *ptr, - const char *file, - const char *mode) -{ - register FILE *fp; - register int f; - int flags, oflags; - - if ((flags = __sflags (ptr, mode, &oflags)) == 0) - return NULL; - if ((fp = __sfp (ptr)) == NULL) - return NULL; - - if ((f = _open64_r (ptr, file, oflags, 0666)) < 0) - { - _newlib_sfp_lock_start (); - fp->_flags = 0; /* release */ -#ifndef __SINGLE_THREAD__ - __lock_close_recursive (fp->_lock); -#endif - _newlib_sfp_lock_end (); - return NULL; - } - - _newlib_flockfile_start (fp); - - fp->_file = f; - fp->_flags = flags; - fp->_cookie = (void *) fp; - fp->_read = __sread; - fp->_write = __swrite64; - fp->_seek = __sseek; - fp->_seek64 = __sseek64; - fp->_close = __sclose; - - if (fp->_flags & __SAPP) - _fseeko64_r (ptr, fp, 0, SEEK_END); - -#ifdef __SCLE - if (__stextmode (fp->_file)) - fp->_flags |= __SCLE; -#endif - - fp->_flags |= __SL64; - - _newlib_flockfile_end (fp); - return fp; -} - -#ifndef _REENT_ONLY - -FILE * -fopen64 (const char *file, - const char *mode) -{ - return _fopen64_r (_REENT, file, mode); -} - -#endif - -#endif /* __LARGE64_FILES */ diff --git a/lib/stdio64/freopen64.c b/lib/stdio64/freopen64.c deleted file mode 100644 index 4d1e9b7..0000000 --- a/lib/stdio64/freopen64.c +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---open a large file using an existing file descriptor - -INDEX - freopen64 -INDEX - _freopen64_r - -SYNOPSIS - #include - FILE *freopen64(const char *<[file]>, const char *<[mode]>, - FILE *<[fp]>); - FILE *_freopen64_r(struct _reent *<[ptr]>, const char *<[file]>, - const char *<[mode]>, FILE *<[fp]>); - -DESCRIPTION -Use this variant of <> if you wish to specify a particular file -descriptor <[fp]> (notably <>, <>, or <>) for -the file. - -If <[fp]> was associated with another file or stream, <> -closes that other file or stream (but ignores any errors while closing -it). - -<[file]> and <[mode]> are used just as in <>. - -If <[file]> is <>, the underlying stream is modified rather than -closed. The file cannot be given a more permissive access mode (for -example, a <[mode]> of "w" will fail on a read-only file descriptor), -but can change status such as append or binary mode. If modification -is not possible, failure occurs. - -RETURNS -If successful, the result is the same as the argument <[fp]>. If the -file cannot be opened as specified, the result is <>. - -PORTABILITY -<> is a glibc extension. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>, <>. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include "local.h" - -/* - * Re-direct an existing, open (probably) file to some other file. - */ - -#ifdef __LARGE64_FILES - -FILE * -_freopen64_r (struct _reent *ptr, - const char *file, - const char *mode, - register FILE *fp) -{ - register int f; - int flags, oflags, oflags2; - int e = 0; - - - CHECK_INIT (ptr, fp); - - /* We can't use the _newlib_flockfile_XXX macros here due to the - interlocked locking with the sfp_lock. */ -#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT - int __oldcancel; - pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &__oldcancel); -#endif - oflags2 = fp->_flags2; - if (!(oflags2 & __SNLK)) - _flockfile (fp); - - if ((flags = __sflags (ptr, mode, &oflags)) == 0) - { - if (!(oflags2 & __SNLK)) - _funlockfile (fp); -#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT - pthread_setcancelstate (__oldcancel, &__oldcancel); -#endif - _fclose_r (ptr, fp); - return NULL; - } - - /* - * Remember whether the stream was open to begin with, and - * which file descriptor (if any) was associated with it. - * If it was attached to a descriptor, defer closing it, - * so that, e.g., freopen("/dev/stdin", "r", stdin) works. - * This is unnecessary if it was not a Unix file. - */ - - if (fp->_flags == 0) - fp->_flags = __SEOF; /* hold on to it */ - else - { - if (fp->_flags & __SWR) - _fflush_r (ptr, fp); - /* - * If close is NULL, closing is a no-op, hence pointless. - * If file is NULL, the file should not be closed. - */ - if (fp->_close != NULL && file != NULL) - fp->_close (ptr, fp->_cookie); - } - - /* - * Now get a new descriptor to refer to the new file, or reuse the - * existing file descriptor if file is NULL. - */ - - if (file != NULL) - { - f = _open64_r (ptr, (char *) file, oflags, 0666); - e = _REENT_ERRNO(ptr); - } - else - { -#ifdef HAVE_FCNTL - int oldflags; - /* - * Reuse the file descriptor, but only if the new access mode is - * equal or less permissive than the old. F_SETFL correctly - * ignores creation flags. - */ - f = fp->_file; - if ((oldflags = _fcntl_r (ptr, f, F_GETFL, 0)) == -1 - || ! ((oldflags & O_ACCMODE) == O_RDWR - || ((oldflags ^ oflags) & O_ACCMODE) == 0) - || _fcntl_r (ptr, f, F_SETFL, oflags) == -1) - f = -1; -#else - /* We cannot modify without fcntl support. */ - f = -1; -#endif - -#ifdef __SCLE - /* - * F_SETFL doesn't change textmode. Don't mess with modes of ttys. - */ - if (0 <= f && ! isatty (f) - && setmode (f, oflags & (O_BINARY | O_TEXT)) == -1) - f = -1; -#endif - - if (f < 0) - { - e = EBADF; - if (fp->_close != NULL) - fp->_close (ptr, fp->_cookie); - } - } - - /* - * Finish closing fp. Even if the open succeeded above, - * we cannot keep fp->_base: it may be the wrong size. - * This loses the effect of any setbuffer calls, - * but stdio has always done this before. - */ - - if (fp->_flags & __SMBF) - _free_r (ptr, (char *) fp->_bf._base); - fp->_w = 0; - fp->_r = 0; - fp->_p = NULL; - fp->_bf._base = NULL; - fp->_bf._size = 0; - fp->_lbfsize = 0; - if (HASUB (fp)) - FREEUB (ptr, fp); - fp->_ub._size = 0; - if (HASLB (fp)) - FREELB (ptr, fp); - fp->_lb._size = 0; - fp->_flags &= ~__SORD; - fp->_flags2 &= ~__SWID; - memset (&fp->_mbstate, 0, sizeof (_mbstate_t)); - - if (f < 0) - { /* did not get it after all */ - __sfp_lock_acquire (); - fp->_flags = 0; /* set it free */ - _REENT_ERRNO(ptr) = e; /* restore in case _close clobbered */ - if (!(oflags2 & __SNLK)) - _funlockfile (fp); -#ifndef __SINGLE_THREAD__ - __lock_close_recursive (fp->_lock); -#endif - __sfp_lock_release (); -#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS) - pthread_setcancelstate (__oldcancel, &__oldcancel); -#endif - return NULL; - } - - fp->_flags = flags; - fp->_file = f; - fp->_cookie = (void *) fp; - fp->_read = __sread; - fp->_write = __swrite64; - fp->_seek = __sseek; - fp->_seek64 = __sseek64; - fp->_close = __sclose; - -#ifdef __SCLE - if (__stextmode(fp->_file)) - fp->_flags |= __SCLE; -#endif - - fp->_flags |= __SL64; - - if (!(oflags2 & __SNLK)) - _funlockfile (fp); -#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS) - pthread_setcancelstate (__oldcancel, &__oldcancel); -#endif - return fp; -} - -#ifndef _REENT_ONLY - -FILE * -freopen64 (const char *file, - const char *mode, - register FILE *fp) -{ - return _freopen64_r (_REENT, file, mode, fp); -} - -#endif /* !_REENT_ONLY */ - -#endif /* __LARGE64_FILES */ diff --git a/lib/stdio64/fseeko64.c b/lib/stdio64/fseeko64.c deleted file mode 100644 index c5b30ae..0000000 --- a/lib/stdio64/fseeko64.c +++ /dev/null @@ -1,353 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---set file position for large file - -INDEX - fseeko64 -INDEX - _fseeko64_r - -SYNOPSIS - #include - int fseeko64(FILE *<[fp]>, _off64_t <[offset]>, int <[whence]>); - int _fseeko64_r (struct _reent *<[ptr]>, FILE *<[fp]>, - _off64_t <[offset]>, int <[whence]>); - -DESCRIPTION -Objects of type <> can have a ``position'' that records how much -of the file your program has already read. Many of the <> functions -depend on this position, and many change it as a side effect. - -You can use <> to set the position for the file identified by -<[fp]> that was opened via <>. The value of <[offset]> determines -the new position, in one of three ways selected by the value of <[whence]> -(defined as macros in `<>'): - -<>---<[offset]> is the absolute file position (an offset -from the beginning of the file) desired. <[offset]> must be positive. - -<>---<[offset]> is relative to the current file position. -<[offset]> can meaningfully be either positive or negative. - -<>---<[offset]> is relative to the current end of file. -<[offset]> can meaningfully be either positive (to increase the size -of the file) or negative. - -See <> to determine the current file position. - -RETURNS -<> returns <<0>> when successful. On failure, the -result is <>. The reason for failure is indicated in <>: -either <> (the stream identified by <[fp]> doesn't support -repositioning or wasn't opened via <>) or <> -(invalid file position). - -PORTABILITY -<> is a glibc extension. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include "local.h" - -#define POS_ERR (-(_fpos64_t)1) - -#ifdef __LARGE64_FILES - -/* - * Seek the given file to the given offset. - * `Whence' must be one of the three SEEK_* macros. - */ - -_off64_t -_fseeko64_r (struct _reent *ptr, - register FILE *fp, - _off64_t offset, - int whence) -{ - _fpos64_t (*seekfn) (struct _reent *, void *, _fpos64_t, int); - _fpos64_t target, curoff; - size_t n; - - struct stat64 st; - int havepos; - - /* Only do 64-bit seek on large file. */ - if (!(fp->_flags & __SL64)) - { - if ((_off_t) offset != offset) - { - _REENT_ERRNO(ptr) = EOVERFLOW; - return EOF; - } - return (_off64_t) _fseeko_r (ptr, fp, offset, whence); - } - - /* Make sure stdio is set up. */ - - CHECK_INIT (ptr, fp); - - _newlib_flockfile_start (fp); - - curoff = fp->_offset; - - /* If we've been doing some writing, and we're in append mode - then we don't really know where the filepos is. */ - - if (fp->_flags & __SAPP && fp->_flags & __SWR) - { - /* So flush the buffer and seek to the end. */ - _fflush_r (ptr, fp); - } - - /* Have to be able to seek. */ - - if ((seekfn = fp->_seek64) == NULL) - { - _REENT_ERRNO(ptr) = ESPIPE; /* ??? */ - _newlib_flockfile_exit(fp); - return EOF; - } - - /* - * Change any SEEK_CUR to SEEK_SET, and check `whence' argument. - * After this, whence is either SEEK_SET or SEEK_END. - */ - - switch (whence) - { - case SEEK_CUR: - /* - * In order to seek relative to the current stream offset, - * we have to first find the current stream offset a la - * ftell (see ftell for details). - */ - _fflush_r (ptr, fp); /* may adjust seek offset on append stream */ - if (fp->_flags & __SOFF) - curoff = fp->_offset; - else - { - curoff = seekfn (ptr, fp->_cookie, (_fpos64_t) 0, SEEK_CUR); - if (curoff == -1L) - { - _newlib_flockfile_exit(fp); - return EOF; - } - } - if (fp->_flags & __SRD) - { - curoff -= fp->_r; - if (HASUB (fp)) - curoff -= fp->_ur; - } - else if (fp->_flags & __SWR && fp->_p != NULL) - curoff += fp->_p - fp->_bf._base; - - offset += curoff; - whence = SEEK_SET; - havepos = 1; - break; - - case SEEK_SET: - case SEEK_END: - havepos = 0; - break; - - default: - _REENT_ERRNO(ptr) = EINVAL; - _newlib_flockfile_exit(fp); - return (EOF); - } - - /* - * Can only optimise if: - * reading (and not reading-and-writing); - * not unbuffered; and - * this is a `regular' Unix file (and hence seekfn==__sseek). - * We must check __NBF first, because it is possible to have __NBF - * and __SOPT both set. - */ - - if (fp->_bf._base == NULL) - __smakebuf_r (ptr, fp); - -#if _FSEEK_OPTIMIZATION - if (fp->_flags & (__SWR | __SRW | __SNBF | __SNPT)) - goto dumb; - if ((fp->_flags & __SOPT) == 0) - { - if (seekfn != __sseek64 - || fp->_file < 0 - || _fstat64_r (ptr, fp->_file, &st) - || (st.st_mode & S_IFMT) != S_IFREG) - { - fp->_flags |= __SNPT; - goto dumb; - } -#ifdef HAVE_BLKSIZE - fp->_blksize = st.st_blksize; -#else - fp->_blksize = 1024; -#endif - fp->_flags |= __SOPT; - } - - /* - * We are reading; we can try to optimise. - * Figure out where we are going and where we are now. - */ - - if (whence == SEEK_SET) - target = offset; - else - { - if (_fstat64_r (ptr, fp->_file, &st)) - goto dumb; - target = st.st_size + offset; - } - - if (!havepos) - { - if (fp->_flags & __SOFF) - curoff = fp->_offset; - else - { - curoff = seekfn (ptr, fp->_cookie, (_fpos64_t)0, SEEK_CUR); - if (curoff == POS_ERR) - goto dumb; - } - curoff -= fp->_r; - if (HASUB (fp)) - curoff -= fp->_ur; - } - - /* - * Compute the number of bytes in the input buffer (pretending - * that any ungetc() input has been discarded). Adjust current - * offset backwards by this count so that it represents the - * file offset for the first byte in the current input buffer. - */ - - if (HASUB (fp)) - { - curoff += fp->_r; /* kill off ungetc */ - n = fp->_up - fp->_bf._base; - curoff -= n; - n += fp->_ur; - } - else - { - n = fp->_p - fp->_bf._base; - curoff -= n; - n += fp->_r; - } - - /* - * If the target offset is within the current buffer, - * simply adjust the pointers, clear EOF, undo ungetc(), - * and return. - */ - - if (target >= curoff && target < curoff + n) - { - register int o = target - curoff; - - fp->_p = fp->_bf._base + o; - fp->_r = n - o; - if (HASUB (fp)) - FREEUB (ptr, fp); - fp->_flags &= ~__SEOF; - _newlib_flockfile_exit(fp); - return 0; - } - - /* - * The place we want to get to is not within the current buffer, - * but we can still be kind to the kernel copyout mechanism. - * By aligning the file offset to a block boundary, we can let - * the kernel use the VM hardware to map pages instead of - * copying bytes laboriously. Using a block boundary also - * ensures that we only read one block, rather than two. - */ - - curoff = target & ~((_fpos64_t)(fp->_blksize - 1)); - if (seekfn (ptr, fp->_cookie, curoff, SEEK_SET) == POS_ERR) - goto dumb; - fp->_r = 0; - fp->_p = fp->_bf._base; - if (HASUB (fp)) - FREEUB (ptr, fp); - fp->_flags &= ~__SEOF; - n = target - curoff; - if (n) - { - if (__srefill_r (ptr, fp) || fp->_r < n) - goto dumb; - fp->_p += n; - fp->_r -= n; - } - _newlib_flockfile_end(fp); - return 0; - - /* - * We get here if we cannot optimise the seek ... just - * do it. Allow the seek function to change fp->_bf._base. - */ -#endif - -dumb: - if (_fflush_r (ptr, fp) - || seekfn (ptr, fp->_cookie, offset, whence) == POS_ERR) - { - _funlockfile(fp); - return EOF; - } - /* success: clear EOF indicator and discard ungetc() data */ - if (HASUB (fp)) - FREEUB (ptr, fp); - fp->_p = fp->_bf._base; - fp->_r = 0; - /* fp->_w = 0; *//* unnecessary (I think...) */ - fp->_flags &= ~__SEOF; - _funlockfile(fp); - return 0; -} - -#ifndef _REENT_ONLY - -_off64_t -fseeko64 (register FILE *fp, - _off64_t offset, - int whence) -{ - return _fseeko64_r (_REENT, fp, offset, whence); -} - -#endif /* !_REENT_ONLY */ - -#endif /* __LARGE64_FILES */ diff --git a/lib/stdio64/fsetpos64.c b/lib/stdio64/fsetpos64.c deleted file mode 100644 index 254eb53..0000000 --- a/lib/stdio64/fsetpos64.c +++ /dev/null @@ -1,66 +0,0 @@ -/* -FUNCTION -<>---restore position of a large stream or file - -INDEX - fsetpos64 -INDEX - _fsetpos64_r - -SYNOPSIS - #include - int fsetpos64(FILE *<[fp]>, const _fpos64_t *<[pos]>); - int _fsetpos64_r(struct _reent *<[ptr]>, FILE *<[fp]>, - const _fpos64_t *<[pos]>); - -DESCRIPTION -Objects of type <> can have a ``position'' that records how much -of the file your program has already read. Many of the <> functions -depend on this position, and many change it as a side effect. - -You can use <> to return the large file identified by <[fp]> to a -previous position <<*<[pos]>>> (after first recording it with <>). - -See <> for a similar facility. - -RETURNS -<> returns <<0>> when successful. If <> fails, the -result is <<1>>. The reason for failure is indicated in <>: -either <> (the stream identified by <[fp]> doesn't support -64-bit repositioning) or <> (invalid file position). - -PORTABILITY -<> is a glibc extension. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include - -#ifdef __LARGE64_FILES - -int -_fsetpos64_r (struct _reent *ptr, - FILE * iop, - const _fpos64_t * pos) -{ - int x = _fseeko64_r (ptr, iop, (_off64_t)(*pos), SEEK_SET); - - if (x != 0) - return 1; - return 0; -} - -#ifndef _REENT_ONLY - -int -fsetpos64 (FILE * iop, - const _fpos64_t * pos) -{ - return _fsetpos64_r (_REENT, iop, pos); -} - -#endif /* !_REENT_ONLY */ - -#endif /* __LARGE64_FILES */ diff --git a/lib/stdio64/ftello64.c b/lib/stdio64/ftello64.c deleted file mode 100644 index cd00def..0000000 --- a/lib/stdio64/ftello64.c +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* -FUNCTION -<>---return position in a stream or file - -INDEX - ftello64 -INDEX - _ftello64_r - -SYNOPSIS - #include - _off64_t ftello64(FILE *<[fp]>); - _off64_t _ftello64_r(struct _reent *<[ptr]>, FILE *<[fp]>); - -DESCRIPTION -Objects of type <> can have a ``position'' that records how much -of the file your program has already read. Many of the <> functions -depend on this position, and many change it as a side effect. - -The result of <> is the current position for a large file -identified by <[fp]>. If you record this result, you can later -use it with <> to return the file to this -position. The difference between <> and <> is that -<> returns <> and <> is designed to work -for large files (>2GB) and returns <<_off64_t>>. - -In the current implementation, <> simply uses a character -count to represent the file position; this is the same number that -would be recorded by <>. - -The function exists only if the __LARGE64_FILES flag is defined. -An error occurs if the <[fp]> was not opened via <>. - -RETURNS -<> returns the file position, if possible. If it cannot do -this, it returns <<-1>>. Failure occurs on streams that do not support -positioning or not opened via <>; the global <> indicates -this condition with the value <>. - -PORTABILITY -<> is a glibc extension. - -No supporting OS subroutines are required. -*/ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "%W% (Berkeley) %G%"; -#endif /* LIBC_SCCS and not lint */ - -/* - * ftello64: return current offset. - */ - -#include -#include - -#include "local.h" - -#ifdef __LARGE64_FILES - -_off64_t -_ftello64_r (struct _reent *ptr, - register FILE * fp) -{ - _fpos64_t pos; - - /* Only do 64-bit tell on large file. */ - if (!(fp->_flags & __SL64)) - return (_off64_t) _ftello_r (ptr, fp); - - /* Ensure stdio is set up. */ - - CHECK_INIT (ptr, fp); - - _newlib_flockfile_start(fp); - - if (fp->_seek64 == NULL) - { - _REENT_ERRNO(ptr) = ESPIPE; - _newlib_flockfile_exit(fp); - return (_off64_t) -1; - } - - /* Find offset of underlying I/O object, then adjust for buffered bytes. */ - if (!(fp->_flags & __SRD) && (fp->_flags & __SWR) && - fp->_p != NULL && fp->_p - fp->_bf._base > 0 && - (fp->_flags & __SAPP)) - { - pos = fp->_seek64 (ptr, fp->_cookie, (_fpos64_t) 0, SEEK_END); - if (pos == (_fpos64_t) -1) - { - _newlib_flockfile_exit (fp); - return (_off64_t) -1; - } - } - else if (fp->_flags & __SOFF) - pos = fp->_offset; - else - { - pos = fp->_seek64 (ptr, fp->_cookie, (_fpos64_t) 0, SEEK_CUR); - if (pos == (_fpos64_t) -1) - { - _newlib_flockfile_exit(fp); - return (_off64_t) pos; - } - } - if (fp->_flags & __SRD) - { - /* - * Reading. Any unread characters (including - * those from ungetc) cause the position to be - * smaller than that in the underlying object. - */ - pos -= fp->_r; - if (HASUB (fp)) - pos -= fp->_ur; - } - else if (fp->_flags & __SWR && fp->_p != NULL) - { - /* - * Writing. Any buffered characters cause the - * position to be greater than that in the - * underlying object. - */ - pos += fp->_p - fp->_bf._base; - } - - _newlib_flockfile_end(fp); - return (_off64_t) pos; -} - -#ifndef _REENT_ONLY - -_off64_t -ftello64 (register FILE * fp) -{ - return _ftello64_r (_REENT, fp); -} - -#endif /* !_REENT_ONLY */ - -#endif /* __LARGE64_FILES */ diff --git a/lib/stdio64/stdio64.c b/lib/stdio64/stdio64.c deleted file mode 100644 index 95cb252..0000000 --- a/lib/stdio64/stdio64.c +++ /dev/null @@ -1,79 +0,0 @@ -/* No user fns here. Pesch 15apr92. */ - -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * and/or other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include -#include -#include -#include -#include -#include "local.h" - -#ifdef __LARGE64_FILES -_fpos64_t -__sseek64 (struct _reent *ptr, - void *cookie, - _fpos64_t offset, - int whence) -{ - register FILE *fp = (FILE *) cookie; - register _off64_t ret; - - ret = _lseek64_r (ptr, fp->_file, (_off64_t) offset, whence); - if (ret == (_fpos64_t)-1L) - fp->_flags &= ~__SOFF; - else - { - fp->_flags |= __SOFF; - fp->_offset = ret; - } - return ret; -} - -_READ_WRITE_RETURN_TYPE -__swrite64 (struct _reent *ptr, - void *cookie, - char const *buf, - _READ_WRITE_BUFSIZE_TYPE n) -{ - register FILE *fp = (FILE *) cookie; - _READ_WRITE_RETURN_TYPE w; -#ifdef __SCLE - int oldmode=0; -#endif - - if (fp->_flags & __SAPP) - (void) _lseek64_r (ptr, fp->_file, (_off64_t)0, SEEK_END); - fp->_flags &= ~__SOFF; /* in case O_APPEND mode is set */ - -#ifdef __SCLE - if (fp->_flags & __SCLE) - oldmode = setmode(fp->_file, O_BINARY); -#endif - - w = _write_r (ptr, fp->_file, buf, n); - -#ifdef __SCLE - if (oldmode) - setmode(fp->_file, oldmode); -#endif - - return w; -} - -#endif /* __LARGE64_FILES */ diff --git a/lib/stdio64/stdio64.tex b/lib/stdio64/stdio64.tex deleted file mode 100644 index 95f898f..0000000 --- a/lib/stdio64/stdio64.tex +++ /dev/null @@ -1,46 +0,0 @@ -@node Stdio64 -@chapter Large File Input and Output (@file{stdio.h}) - -This chapter comprises additional functions to manage large files which -are potentially larger than 2GB. - -The underlying facilities for input and output depend on the host -system, but these functions provide a uniform interface. - -The corresponding declarations are in @file{stdio.h}. - -@menu -* fdopen64:: Turn open large file into a stream -* fopen64:: Open a large file -* freopen64:: Open a large file using an existing file descriptor -* fsetpos64:: Restore position of a large stream or file -* fgetpos64:: Get position of a large stream or file -* ftello64:: Return position in a large stream or file -* fseeko64:: Set large file position -* tmpfile64:: Create a temporary large file -@end menu - -@page -@include stdio64/fdopen64.def - -@page -@include stdio64/fopen64.def - -@page -@include stdio64/freopen64.def - -@page -@include stdio64/ftello64.def - -@page -@include stdio64/fseeko64.def - -@page -@include stdio64/fgetpos64.def - -@page -@include stdio64/fsetpos64.def - -@page -@include stdio64/tmpfile64.def - diff --git a/lib/stdio64/tmpfile64.c b/lib/stdio64/tmpfile64.c deleted file mode 100644 index 35b035c..0000000 --- a/lib/stdio64/tmpfile64.c +++ /dev/null @@ -1,93 +0,0 @@ -/* -FUNCTION -<>---create a large temporary file - -INDEX - tmpfile64 -INDEX - _tmpfile64_r - -SYNOPSIS - #include - FILE *tmpfile64(void); - - FILE *_tmpfile64_r(void *<[reent]>); - -DESCRIPTION -Create a large temporary file (a file which will be deleted automatically), -using a name generated by <>. The temporary file is opened with -the mode <<"wb+">>, permitting you to read and write anywhere in it -as a binary file (without any data transformations the host system may -perform for text files). The file may be larger than 2GB. - -The alternate function <<_tmpfile64_r>> is a reentrant version. The -argument <[reent]> is a pointer to a reentrancy structure. - -Both <> and <<_tmpfile64_r>> are only defined if __LARGE64_FILES -is defined. - -RETURNS -<> normally returns a pointer to the temporary file. If no -temporary file could be created, the result is NULL, and <> -records the reason for failure. - -PORTABILITY -<> is a glibc extension. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>, <>, <>. - -<> also requires the global pointer <>. -*/ - -#include -#include -#include -#include -#include - -#ifndef O_BINARY -# define O_BINARY 0 -#endif - -#ifdef __LARGE64_FILES - -FILE * -_tmpfile64_r (struct _reent *ptr) -{ - FILE *fp; - int e; - char *f; - char buf[L_tmpnam]; - int fd; - - do - { - if ((f = _tmpnam_r (ptr, buf)) == NULL) - return NULL; - fd = _open64_r (ptr, f, O_RDWR | O_CREAT | O_EXCL | O_BINARY, - S_IRUSR | S_IWUSR); - } - while (fd < 0 && _REENT_ERRNO(ptr) == EEXIST); - if (fd < 0) - return NULL; - fp = _fdopen64_r (ptr, fd, "wb+"); - e = _REENT_ERRNO(ptr); - if (!fp) - _close_r (ptr, fd); - (void) _remove_r (ptr, f); - _REENT_ERRNO(ptr) = e; - return fp; -} - -#ifndef _REENT_ONLY - -FILE * -tmpfile64 (void) -{ - return _tmpfile64_r (_REENT); -} - -#endif - -#endif /* __LARGE64_FILES */ diff --git a/lib/stdlib/Makefile.inc b/lib/stdlib/Makefile.inc deleted file mode 100644 index 9812add..0000000 --- a/lib/stdlib/Makefile.inc +++ /dev/null @@ -1,247 +0,0 @@ -libc_a_SOURCES += \ - %D%/__adjust.c \ - %D%/__atexit.c \ - %D%/__call_atexit.c \ - %D%/__exp10.c \ - %D%/__ten_mu.c \ - %D%/_Exit.c \ - %D%/abort.c \ - %D%/abs.c \ - %D%/aligned_alloc.c \ - %D%/assert.c \ - %D%/atexit.c \ - %D%/atof.c \ - %D%/atoff.c \ - %D%/atoi.c \ - %D%/atol.c \ - %D%/calloc.c \ - %D%/callocr.c \ - %D%/cfreer.c \ - %D%/div.c \ - %D%/dtoa.c \ - %D%/dtoastub.c \ - %D%/environ.c \ - %D%/envlock.c \ - %D%/eprintf.c \ - %D%/exit.c \ - %D%/freer.c \ - %D%/gdtoa-gethex.c \ - %D%/gdtoa-hexnan.c \ - %D%/getenv.c \ - %D%/getenv_r.c \ - %D%/imaxabs.c \ - %D%/imaxdiv.c \ - %D%/itoa.c \ - %D%/labs.c \ - %D%/ldiv.c \ - %D%/ldtoa.c \ - %D%/gdtoa-ldtoa.c \ - %D%/gdtoa-gdtoa.c \ - %D%/gdtoa-dmisc.c \ - %D%/gdtoa-gmisc.c \ - %D%/mallinfor.c \ - %D%/malloc.c \ - %D%/mallocr.c \ - %D%/mallstatsr.c \ - %D%/mblen.c \ - %D%/mblen_r.c \ - %D%/mbstowcs.c \ - %D%/mbstowcs_r.c \ - %D%/mbtowc.c \ - %D%/mbtowc_r.c \ - %D%/mlock.c \ - %D%/mprec.c \ - %D%/msizer.c \ - %D%/mstats.c \ - %D%/on_exit_args.c \ - %D%/quick_exit.c \ - %D%/rand.c \ - %D%/rand_r.c \ - %D%/random.c \ - %D%/realloc.c \ - %D%/reallocarray.c \ - %D%/reallocf.c \ - %D%/reallocr.c \ - %D%/sb_charsets.c \ - %D%/strtod.c \ - %D%/strtoimax.c \ - %D%/strtol.c \ - %D%/strtoul.c \ - %D%/strtoumax.c \ - %D%/utoa.c \ - %D%/wcstod.c \ - %D%/wcstoimax.c \ - %D%/wcstol.c \ - %D%/wcstoul.c \ - %D%/wcstoumax.c \ - %D%/wcstombs.c \ - %D%/wcstombs_r.c \ - %D%/wctomb.c \ - %D%/wctomb_r.c - -if HAVE_LONG_DOUBLE -libc_a_SOURCES += \ - %D%/strtodg.c \ - %D%/strtold.c \ - %D%/strtorx.c \ - %D%/wcstold.c -endif # HAVE_LONG_DOUBLE - -if NEWLIB_NANO_MALLOC -MALIGNR = nano-malignr -MALLOPTR = nano-malloptr -PVALLOCR = nano-pvallocr -VALLOCR = nano-vallocr -FREER = nano-freer -REALLOCR = nano-reallocr -CALLOCR = nano-callocr -CFREER = nano-cfreer -MALLINFOR = nano-mallinfor -MALLSTATSR = nano-mallstatsr -MSIZER = nano-msizer -MALLOCR = nano-mallocr -else -MALIGNR = malignr -MALLOPTR = malloptr -PVALLOCR = pvallocr -VALLOCR = vallocr -FREER = freer -REALLOCR = reallocr -CALLOCR = callocr -CFREER = cfreer -MALLINFOR = mallinfor -MALLSTATSR = mallstatsr -MSIZER = msizer -MALLOCR = mallocr -endif - -libc_a_SOURCES += \ - %D%/arc4random.c \ - %D%/arc4random_uniform.c \ - %D%/cxa_atexit.c \ - %D%/cxa_finalize.c \ - %D%/drand48.c \ - %D%/ecvtbuf.c \ - %D%/efgcvt.c \ - %D%/erand48.c \ - %D%/jrand48.c \ - %D%/lcong48.c \ - %D%/lrand48.c \ - %D%/mrand48.c \ - %D%/msize.c \ - %D%/mtrim.c \ - %D%/nrand48.c \ - %D%/rand48.c \ - %D%/seed48.c \ - %D%/srand48.c \ - %D%/strtoll.c \ - %D%/strtoll_r.c \ - %D%/strtoull.c \ - %D%/strtoull_r.c \ - %D%/wcstoll.c \ - %D%/wcstoll_r.c \ - %D%/wcstoull.c \ - %D%/wcstoull_r.c \ - %D%/atoll.c \ - %D%/llabs.c \ - %D%/lldiv.c - -%C%_ELIX_2_SOURCES = \ - %D%/a64l.c \ - %D%/btowc.c \ - %D%/getopt.c \ - %D%/getsubopt.c \ - %D%/l64a.c \ - %D%/malign.c \ - %D%/malignr.c \ - %D%/malloptr.c \ - %D%/mbrlen.c \ - %D%/mbrtowc.c \ - %D%/mbsinit.c \ - %D%/mbsnrtowcs.c \ - %D%/mbsrtowcs.c \ - %D%/on_exit.c \ - %D%/pvallocr.c \ - %D%/valloc.c \ - %D%/vallocr.c \ - %D%/wcrtomb.c \ - %D%/wcsnrtombs.c \ - %D%/wcsrtombs.c \ - %D%/wctob.c - -%C%_ELIX_3_SOURCES = \ - %D%/putenv.c \ - %D%/putenv_r.c \ - %D%/setenv.c \ - %D%/setenv_r.c - -%C%_ELIX_4_SOURCES = \ - %D%/rpmatch.c \ - %D%/system.c - -if ELIX_LEVEL_1 -%C%_ELIX_SOURCES = -else -if ELIX_LEVEL_2 -%C%_ELIX_SOURCES = $(%C%_ELIX_2_SOURCES) -else -if ELIX_LEVEL_3 -%C%_ELIX_SOURCES = $(%C%_ELIX_2_SOURCES) $(%C%_ELIX_3_SOURCES) -else -%C%_ELIX_SOURCES = $(%C%_ELIX_2_SOURCES) $(%C%_ELIX_3_SOURCES) $(%C%_ELIX_4_SOURCES) -endif -endif -endif -libc_a_SOURCES += $(%C%_ELIX_SOURCES) - -LIBC_CHEWOUT_FILES += \ - %D%/_Exit.def \ - %D%/a64l.def \ - %D%/abort.def \ - %D%/abs.def \ - %D%/assert.def \ - %D%/atexit.def \ - %D%/atof.def \ - %D%/atoi.def \ - %D%/atoll.def \ - %D%/calloc.def \ - %D%/div.def \ - %D%/ecvtbuf.def \ - %D%/efgcvt.def \ - %D%/envlock.def \ - %D%/exit.def \ - %D%/getenv.def \ - %D%/itoa.def \ - %D%/labs.def \ - %D%/ldiv.def \ - %D%/llabs.def \ - %D%/lldiv.def \ - %D%/malloc.def \ - %D%/mblen.def \ - %D%/mbsnrtowcs.def \ - %D%/mbstowcs.def \ - %D%/mbtowc.def \ - %D%/mlock.def \ - %D%/mstats.def \ - %D%/on_exit.def \ - %D%/rand.def \ - %D%/rand48.def \ - %D%/random.def \ - %D%/rpmatch.def \ - %D%/strtod.def \ - %D%/strtol.def \ - %D%/strtoll.def \ - %D%/strtoul.def \ - %D%/strtoull.def \ - %D%/utoa.def \ - %D%/wcsnrtombs.def \ - %D%/wcstod.def \ - %D%/wcstol.def \ - %D%/wcstoll.def \ - %D%/wcstoul.def \ - %D%/wcstoull.def \ - %D%/system.def \ - %D%/wcstombs.def \ - %D%/wctomb.def - -LIBC_CHAPTERS += %D%/stdlib.tex diff --git a/lib/stdlib/_Exit.c b/lib/stdlib/_Exit.c deleted file mode 100644 index 8e205a0..0000000 --- a/lib/stdlib/_Exit.c +++ /dev/null @@ -1,40 +0,0 @@ -/* -FUNCTION -<<_Exit>>---end program execution with no cleanup processing - -INDEX - _Exit - -SYNOPSIS - #include - void _Exit(int <[code]>); - -DESCRIPTION -Use <<_Exit>> to return control from a program to the host operating -environment. Use the argument <[code]> to pass an exit status to the -operating environment: two particular values, <> and -<>, are defined in `<>' to indicate success or -failure in a portable fashion. - -<<_Exit>> differs from <> in that it does not run any -application-defined cleanup functions registered with <> and -it does not clean up files and streams. It is identical to <<_exit>>. - -RETURNS -<<_Exit>> does not return to its caller. - -PORTABILITY -<<_Exit>> is defined by the C99 standard. - -Supporting OS subroutines required: <<_exit>>. -*/ - -#include -#include /* for _exit() declaration */ -#include - -void -_Exit (int code) -{ - _exit (code); -} diff --git a/lib/stdlib/__adjust.c b/lib/stdlib/__adjust.c deleted file mode 100644 index ab6f125..0000000 --- a/lib/stdlib/__adjust.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * return (*acc) scaled by 10**dexp. - */ - -#include <_ansi.h> -#include -#include "std.h" - -#define abs(x) (((x) < 0) ? -(x) : (x)) - -double -__adjust (struct _reent *ptr, - double *acc, - int dexp, - int sign) - /* *acc the 64 bit accumulator */ - /* dexp decimal exponent */ - /* sign sign flag */ -{ - double r; - - if (dexp > MAXE) - { - _REENT_ERRNO(ptr) = ERANGE; - return (sign) ? -HUGE_VAL : HUGE_VAL; - } - else if (dexp < MINE) - { - _REENT_ERRNO(ptr) = ERANGE; - return 0.0; - } - - r = *acc; - if (sign) - r = -r; - if (dexp == 0) - return r; - - if (dexp < 0) - return r / __exp10 (abs (dexp)); - else - return r * __exp10 (dexp); -} diff --git a/lib/stdlib/__atexit.c b/lib/stdlib/__atexit.c deleted file mode 100644 index e59f04c..0000000 --- a/lib/stdlib/__atexit.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Common routine to implement atexit-like functionality. - * - * This is also the key function to be configured as lite exit, a size-reduced - * implementation of exit that doesn't invoke clean-up functions such as _fini - * or global destructors. - * - * Default (without lite exit) call graph is like: - * _start -> atexit -> __register_exitproc - * _start -> __libc_init_array -> __cxa_atexit -> __register_exitproc - * on_exit -> __register_exitproc - * _start -> exit -> __call_exitprocs - * - * Here an -> means arrow tail invokes arrow head. All invocations here - * are non-weak reference in current newlib/libgloss. - * - * Lite exit makes some of above calls as weak reference, so that size expansive - * functions __register_exitproc and __call_exitprocs may not be linked. These - * calls are: - * _start w-> atexit - * __cxa_atexit w-> __register_exitproc - * exit w-> __call_exitprocs - * - * Lite exit also makes sure that __call_exitprocs will be referenced as non-weak - * whenever __register_exitproc is referenced as non-weak. - * - * Thus with lite exit libs, a program not explicitly calling atexit or on_exit - * will escape from the burden of cleaning up code. A program with atexit or on_exit - * will work consistently to normal libs. - * - * Lite exit is enabled with --enable-lite-exit, and is controlled with macro - * _LITE_EXIT. - */ - -#include -#include -#include -#include -#include "atexit.h" - -/* Make this a weak reference to avoid pulling in malloc. */ -#ifndef MALLOC_PROVIDED -void * malloc(size_t) _ATTRIBUTE((__weak__)); -#endif - -#ifdef _LITE_EXIT -/* As __call_exitprocs is weak reference in lite exit, make a - non-weak reference to it here. */ -const void * __atexit_dummy = &__call_exitprocs; -#endif - -#ifndef __SINGLE_THREAD__ -extern _LOCK_RECURSIVE_T __atexit_recursive_mutex; -#endif - -struct _atexit __atexit0 = _ATEXIT_INIT; - -/* - * Register a function to be performed at exit or on shared library unload. - */ - -int -__register_exitproc (int type, - void (*fn) (void), - void *arg, - void *d) -{ - struct _on_exit_args * args; - register struct _atexit *p; - -#ifndef __SINGLE_THREAD__ - __lock_acquire_recursive(__atexit_recursive_mutex); -#endif - - p = __atexit; - if (p == NULL) - { - __atexit = p = &__atexit0; -#ifdef _REENT_SMALL - extern struct _on_exit_args * const __on_exit_args _ATTRIBUTE ((weak)); - if (&__on_exit_args != NULL) - p->_on_exit_args_ptr = __on_exit_args; -#endif /* def _REENT_SMALL */ - } - if (p->_ind >= _ATEXIT_SIZE) - { -#if !defined (_ATEXIT_DYNAMIC_ALLOC) || !defined (MALLOC_PROVIDED) -#ifndef __SINGLE_THREAD__ - __lock_release_recursive(__atexit_recursive_mutex); -#endif - return -1; -#else - p = (struct _atexit *) malloc (sizeof *p); - if (p == NULL) - { -#ifndef __SINGLE_THREAD__ - __lock_release_recursive(__atexit_recursive_mutex); -#endif - return -1; - } - p->_ind = 0; - p->_next = __atexit; - __atexit = p; -#ifndef _REENT_SMALL - p->_on_exit_args._fntypes = 0; - p->_on_exit_args._is_cxa = 0; -#else - p->_on_exit_args_ptr = NULL; -#endif -#endif - } - - if (type != __et_atexit) - { -#ifdef _REENT_SMALL - args = p->_on_exit_args_ptr; - if (args == NULL) - { -#ifndef _ATEXIT_DYNAMIC_ALLOC -#ifndef __SINGLE_THREAD__ - __lock_release_recursive(__atexit_recursive_mutex); -#endif - return -1; -#else - if (malloc) - args = malloc (sizeof * p->_on_exit_args_ptr); - - if (args == NULL) - { -#ifndef __SINGLE_THREAD__ - __lock_release_recursive(__atexit_recursive_mutex); -#endif - return -1; - } - args->_fntypes = 0; - args->_is_cxa = 0; - p->_on_exit_args_ptr = args; -#endif - } -#else - args = &p->_on_exit_args; -#endif - args->_fnargs[p->_ind] = arg; - args->_fntypes |= (1 << p->_ind); - args->_dso_handle[p->_ind] = d; - if (type == __et_cxa) - args->_is_cxa |= (1 << p->_ind); - } - p->_fns[p->_ind++] = fn; -#ifndef __SINGLE_THREAD__ - __lock_release_recursive(__atexit_recursive_mutex); -#endif - return 0; -} diff --git a/lib/stdlib/__call_atexit.c b/lib/stdlib/__call_atexit.c deleted file mode 100644 index 7104403..0000000 --- a/lib/stdlib/__call_atexit.c +++ /dev/null @@ -1,159 +0,0 @@ -/* - * COmmon routine to call call registered atexit-like routines. - */ - - -#include -#include -#include -#include "atexit.h" - -/* Make this a weak reference to avoid pulling in free. */ -#ifndef MALLOC_PROVIDED -void free(void *) _ATTRIBUTE((__weak__)); -#endif - -#ifndef __SINGLE_THREAD__ -__LOCK_INIT_RECURSIVE(, __atexit_recursive_mutex); -#endif - -struct _atexit *__atexit = _NULL; - -#ifdef _WANT_REGISTER_FINI - -/* If "__libc_fini" is defined, finalizers (either - "__libc_fini_array", or "_fini", as appropriate) will be run after - all user-specified atexit handlers. For example, you can define - "__libc_fini" to "_fini" in your linker script if you want the C - library, rather than startup code, to register finalizers. If you - do that, then your startup code need not contain references to - "atexit" or "exit". As a result, only applications that reference - "exit" explicitly will pull in finalization code. - - The choice of whether to register finalizers from libc or from - startup code is deferred to link-time, rather than being a - configure-time option, so that the same C library binary can be - used with multiple BSPs, some of which register finalizers from - startup code, while others defer to the C library. */ -extern char __libc_fini __attribute__((weak)); - -/* Register the application finalization function with atexit. These - finalizers should run last. Therefore, we want to call atexit as - soon as possible. */ -static void -register_fini(void) __attribute__((constructor (0))); - -static void -register_fini(void) -{ - if (&__libc_fini) { -#ifdef _HAVE_INITFINI_ARRAY - extern void __libc_fini_array (void); - atexit (__libc_fini_array); -#else - extern void _fini (void); - atexit (_fini); -#endif - } -} - -#endif /* _WANT_REGISTER_FINI */ - -/* - * Call registered exit handlers. If D is null then all handlers are called, - * otherwise only the handlers from that DSO are called. - */ - -void -__call_exitprocs (int code, void *d) -{ - register struct _atexit *p; - struct _atexit **lastp; - register struct _on_exit_args * args; - register int n; - int i; - void (*fn) (void); - - -#ifndef __SINGLE_THREAD__ - __lock_acquire_recursive(__atexit_recursive_mutex); -#endif - - restart: - - p = __atexit; - lastp = &__atexit; - while (p) - { -#ifdef _REENT_SMALL - args = p->_on_exit_args_ptr; -#else - args = &p->_on_exit_args; -#endif - for (n = p->_ind - 1; n >= 0; n--) - { - int ind; - - i = 1 << n; - - /* Skip functions not from this dso. */ - if (d && (!args || args->_dso_handle[n] != d)) - continue; - - /* Remove the function now to protect against the - function calling exit recursively. */ - fn = p->_fns[n]; - if (n == p->_ind - 1) - p->_ind--; - else - p->_fns[n] = NULL; - - /* Skip functions that have already been called. */ - if (!fn) - continue; - - ind = p->_ind; - - /* Call the function. */ - if (!args || (args->_fntypes & i) == 0) - fn (); - else if ((args->_is_cxa & i) == 0) - (*((void (*)(int, void *)) fn))(code, args->_fnargs[n]); - else - (*((void (*)(void *)) fn))(args->_fnargs[n]); - - /* The function we called call atexit and registered another - function (or functions). Call these new functions before - continuing with the already registered functions. */ - if (ind != p->_ind || *lastp != p) - goto restart; - } - -#if !defined (_ATEXIT_DYNAMIC_ALLOC) || !defined (MALLOC_PROVIDED) - break; -#else - /* Move to the next block. Free empty blocks except the last one, - which is part of _GLOBAL_REENT. */ - if (p->_ind == 0 && p->_next) - { - /* Remove empty block from the list. */ - *lastp = p->_next; -#ifdef _REENT_SMALL - if (args) - free (args); -#endif - free (p); - p = *lastp; - } - else - { - lastp = &p->_next; - p = p->_next; - } -#endif - } -#ifndef __SINGLE_THREAD__ - __lock_release_recursive(__atexit_recursive_mutex); -#endif - -} diff --git a/lib/stdlib/__exp10.c b/lib/stdlib/__exp10.c deleted file mode 100644 index cf22374..0000000 --- a/lib/stdlib/__exp10.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * compute 10**x by successive squaring. - */ - -#include <_ansi.h> -#include "std.h" - -double -__exp10 (unsigned x) -{ - static const double powtab[] = - {1.0, - 10.0, - 100.0, - 1000.0, - 10000.0}; - - if (x < (sizeof (powtab) / sizeof (double))) - return powtab[x]; - else if (x & 1) - { - return 10.0 * __exp10 (x - 1); - } - else - { - double n = __exp10 (x / 2); - return n * n; - } -} diff --git a/lib/stdlib/__ten_mu.c b/lib/stdlib/__ten_mu.c deleted file mode 100644 index 25af8d0..0000000 --- a/lib/stdlib/__ten_mu.c +++ /dev/null @@ -1,23 +0,0 @@ -/* - * [atw] multiply 64 bit accumulator by 10 and add digit. - * The KA/CA way to do this should be to use - * a 64-bit integer internally and use "adjust" to - * convert it to float at the end of processing. - */ - -#include <_ansi.h> -#include "std.h" - -int -__ten_mul (double *acc, - int digit) -{ - /* - * [atw] Crude, but effective (at least on a KB)... - */ - - *acc *= 10; - *acc += digit; - - return 0; /* no overflow */ -} diff --git a/lib/stdlib/_mallocr.c b/lib/stdlib/_mallocr.c deleted file mode 100644 index 1997b6d..0000000 --- a/lib/stdlib/_mallocr.c +++ /dev/null @@ -1,3721 +0,0 @@ -#include -#ifdef MALLOC_PROVIDED -int _dummy_mallocr = 1; -#elif defined(_NANO_MALLOC) -# include "nano-mallocr.c" -#else -/* ---------- To make a malloc.h, start cutting here ------------ */ - -/* - A version of malloc/free/realloc written by Doug Lea and released to the - public domain. Send questions/comments/complaints/performance data - to dl@cs.oswego.edu - -* VERSION 2.6.5 Wed Jun 17 15:55:16 1998 Doug Lea (dl at gee) - - Note: There may be an updated version of this malloc obtainable at - ftp://g.oswego.edu/pub/misc/malloc.c - Check before installing! - - Note: This version differs from 2.6.4 only by correcting a - statement ordering error that could cause failures only - when calls to this malloc are interposed with calls to - other memory allocators. - -* Why use this malloc? - - This is not the fastest, most space-conserving, most portable, or - most tunable malloc ever written. However it is among the fastest - while also being among the most space-conserving, portable and tunable. - Consistent balance across these factors results in a good general-purpose - allocator. For a high-level description, see - http://g.oswego.edu/dl/html/malloc.html - -* Synopsis of public routines - - (Much fuller descriptions are contained in the program documentation below.) - - malloc(size_t n); - Return a pointer to a newly allocated chunk of at least n bytes, or null - if no space is available. - free(Void_t* p); - Release the chunk of memory pointed to by p, or no effect if p is null. - realloc(Void_t* p, size_t n); - Return a pointer to a chunk of size n that contains the same data - as does chunk p up to the minimum of (n, p's size) bytes, or null - if no space is available. The returned pointer may or may not be - the same as p. If p is null, equivalent to malloc. Unless the - #define REALLOC_ZERO_BYTES_FREES below is set, realloc with a - size argument of zero (re)allocates a minimum-sized chunk. - memalign(size_t alignment, size_t n); - Return a pointer to a newly allocated chunk of n bytes, aligned - in accord with the alignment argument, which must be a power of - two. - valloc(size_t n); - Equivalent to memalign(pagesize, n), where pagesize is the page - size of the system (or as near to this as can be figured out from - all the includes/defines below.) - pvalloc(size_t n); - Equivalent to valloc(minimum-page-that-holds(n)), that is, - round up n to nearest pagesize. - calloc(size_t unit, size_t quantity); - Returns a pointer to quantity * unit bytes, with all locations - set to zero. - cfree(Void_t* p); - Equivalent to free(p). - malloc_trim(size_t pad); - Release all but pad bytes of freed top-most memory back - to the system. Return 1 if successful, else 0. - malloc_usable_size(Void_t* p); - Report the number usable allocated bytes associated with allocated - chunk p. This may or may not report more bytes than were requested, - due to alignment and minimum size constraints. - malloc_stats(); - Prints brief summary statistics on stderr. - mallinfo() - Returns (by copy) a struct containing various summary statistics. - mallopt(int parameter_number, int parameter_value) - Changes one of the tunable parameters described below. Returns - 1 if successful in changing the parameter, else 0. - -* Vital statistics: - - Alignment: 8-byte - 8 byte alignment is currently hardwired into the design. This - seems to suffice for all current machines and C compilers. - - Assumed pointer representation: 4 or 8 bytes - Code for 8-byte pointers is untested by me but has worked - reliably by Wolfram Gloger, who contributed most of the - changes supporting this. - - Assumed size_t representation: 4 or 8 bytes - Note that size_t is allowed to be 4 bytes even if pointers are 8. - - Minimum overhead per allocated chunk: 4 or 8 bytes - Each malloced chunk has a hidden overhead of 4 bytes holding size - and status information. - - Minimum allocated size: 4-byte ptrs: 16 bytes (including 4 overhead) - 8-byte ptrs: 24/32 bytes (including, 4/8 overhead) - - When a chunk is freed, 12 (for 4byte ptrs) or 20 (for 8 byte - ptrs but 4 byte size) or 24 (for 8/8) additional bytes are - needed; 4 (8) for a trailing size field - and 8 (16) bytes for free list pointers. Thus, the minimum - allocatable size is 16/24/32 bytes. - - Even a request for zero bytes (i.e., malloc(0)) returns a - pointer to something of the minimum allocatable size. - - Maximum allocated size: 4-byte size_t: 2^31 - 8 bytes - 8-byte size_t: 2^63 - 16 bytes - - It is assumed that (possibly signed) size_t bit values suffice to - represent chunk sizes. `Possibly signed' is due to the fact - that `size_t' may be defined on a system as either a signed or - an unsigned type. To be conservative, values that would appear - as negative numbers are avoided. - Requests for sizes with a negative sign bit will return a - minimum-sized chunk. - - Maximum overhead wastage per allocated chunk: normally 15 bytes - - Alignnment demands, plus the minimum allocatable size restriction - make the normal worst-case wastage 15 bytes (i.e., up to 15 - more bytes will be allocated than were requested in malloc), with - two exceptions: - 1. Because requests for zero bytes allocate non-zero space, - the worst case wastage for a request of zero bytes is 24 bytes. - 2. For requests >= mmap_threshold that are serviced via - mmap(), the worst case wastage is 8 bytes plus the remainder - from a system page (the minimal mmap unit); typically 4096 bytes. - -* Limitations - - Here are some features that are NOT currently supported - - * No user-definable hooks for callbacks and the like. - * No automated mechanism for fully checking that all accesses - to malloced memory stay within their bounds. - * No support for compaction. - -* Synopsis of compile-time options: - - People have reported using previous versions of this malloc on all - versions of Unix, sometimes by tweaking some of the defines - below. It has been tested most extensively on Solaris and - Linux. It is also reported to work on WIN32 platforms. - People have also reported adapting this malloc for use in - stand-alone embedded systems. - - The implementation is in straight, hand-tuned ANSI C. Among other - consequences, it uses a lot of macros. Because of this, to be at - all usable, this code should be compiled using an optimizing compiler - (for example gcc -O2) that can simplify expressions and control - paths. - - __STD_C (default: derived from C compiler defines) - Nonzero if using ANSI-standard C compiler, a C++ compiler, or - a C compiler sufficiently close to ANSI to get away with it. - DEBUG (default: NOT defined) - Define to enable debugging. Adds fairly extensive assertion-based - checking to help track down memory errors, but noticeably slows down - execution. - SEPARATE_OBJECTS (default: NOT defined) - Define this to compile into separate .o files. You must then - compile malloc.c several times, defining a DEFINE_* macro each - time. The list of DEFINE_* macros appears below. - MALLOC_LOCK (default: NOT defined) - MALLOC_UNLOCK (default: NOT defined) - Define these to C expressions which are run to lock and unlock - the malloc data structures. Calls may be nested; that is, - MALLOC_LOCK may be called more than once before the corresponding - MALLOC_UNLOCK calls. MALLOC_LOCK must avoid waiting for a lock - that it already holds. - MALLOC_ALIGNMENT (default: NOT defined) - Define this to 16 if you need 16 byte alignment instead of 8 byte alignment - which is the normal default. - REALLOC_ZERO_BYTES_FREES (default: NOT defined) - Define this if you think that realloc(p, 0) should be equivalent - to free(p). Otherwise, since malloc returns a unique pointer for - malloc(0), so does realloc(p, 0). - HAVE_MEMCPY (default: defined) - Define if you are not otherwise using ANSI STD C, but still - have memcpy and memset in your C library and want to use them. - Otherwise, simple internal versions are supplied. - USE_MEMCPY (default: 1 if HAVE_MEMCPY is defined, 0 otherwise) - Define as 1 if you want the C library versions of memset and - memcpy called in realloc and calloc (otherwise macro versions are used). - At least on some platforms, the simple macro versions usually - outperform libc versions. - HAVE_MMAP (default: defined as 1) - Define to non-zero to optionally make malloc() use mmap() to - allocate very large blocks. - HAVE_MREMAP (default: defined as 0 unless Linux libc set) - Define to non-zero to optionally make realloc() use mremap() to - reallocate very large blocks. - malloc_getpagesize (default: derived from system #includes) - Either a constant or routine call returning the system page size. - HAVE_USR_INCLUDE_MALLOC_H (default: NOT defined) - Optionally define if you are on a system with a /usr/include/malloc.h - that declares struct mallinfo. It is not at all necessary to - define this even if you do, but will ensure consistency. - INTERNAL_SIZE_T (default: size_t) - Define to a 32-bit type (probably `unsigned int') if you are on a - 64-bit machine, yet do not want or need to allow malloc requests of - greater than 2^31 to be handled. This saves space, especially for - very small chunks. - INTERNAL_LINUX_C_LIB (default: NOT defined) - Defined only when compiled as part of Linux libc. - Also note that there is some odd internal name-mangling via defines - (for example, internally, `malloc' is named `mALLOc') needed - when compiling in this case. These look funny but don't otherwise - affect anything. - _LIBC (default: NOT defined) - Defined only when compiled as part of the Cygnus newlib - distribution. - WIN32 (default: undefined) - Define this on MS win (95, nt) platforms to compile in sbrk emulation. - LACKS_UNISTD_H (default: undefined) - Define this if your system does not have a . - MORECORE (default: sbrk) - The name of the routine to call to obtain more memory from the system. - MORECORE_FAILURE (default: -1) - The value returned upon failure of MORECORE. - MORECORE_CLEARS (default 1) - True (1) if the routine mapped to MORECORE zeroes out memory (which - holds for sbrk). - DEFAULT_TRIM_THRESHOLD - DEFAULT_TOP_PAD - DEFAULT_MMAP_THRESHOLD - DEFAULT_MMAP_MAX - Default values of tunable parameters (described in detail below) - controlling interaction with host system routines (sbrk, mmap, etc). - These values may also be changed dynamically via mallopt(). The - preset defaults are those that give best performance for typical - programs/systems. - - -*/ - - - - -/* Preliminaries */ - -#ifndef __STD_C -#ifdef __STDC__ -#define __STD_C 1 -#else -#if __cplusplus -#define __STD_C 1 -#else -#define __STD_C 0 -#endif /*__cplusplus*/ -#endif /*__STDC__*/ -#endif /*__STD_C*/ - -#ifndef Void_t -#if __STD_C -#define Void_t void -#else -#define Void_t char -#endif -#endif /*Void_t*/ - -#if __STD_C -#include /* for size_t */ -#else -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include /* needed for malloc_stats */ -#include /* needed for overflow checks */ -#include /* needed to set errno to ENOMEM */ - -#ifdef WIN32 -#define WIN32_LEAN_AND_MEAN -#include -#endif - -/* - Compile-time options -*/ - - -/* - - Special defines for Cygnus newlib distribution. - - */ - -#ifdef _LIBC - -#include - -/* - In newlib, all the publically visible routines take a reentrancy - pointer. We don't currently do anything much with it, but we do - pass it to the lock routine. - */ - -#include - -#define POINTER_UINT unsigned _POINTER_INT -#define SEPARATE_OBJECTS -#define HAVE_MMAP 0 -#define MORECORE(size) _sbrk_r(reent_ptr, (size)) -#define MORECORE_CLEARS 0 -#define MALLOC_LOCK __malloc_lock(reent_ptr) -#define MALLOC_UNLOCK __malloc_unlock(reent_ptr) - -#ifdef __CYGWIN__ -# undef _WIN32 -# undef WIN32 -#endif - -#ifndef _WIN32 -#ifndef HAVE_SYSCONF_PAGESIZE -#ifdef SMALL_MEMORY -#define malloc_getpagesize (128) -#else -#define malloc_getpagesize (4096) -#endif -#endif -#endif - -#if __STD_C -extern void __malloc_lock(struct _reent *); -extern void __malloc_unlock(struct _reent *); -#else -extern void __malloc_lock(); -extern void __malloc_unlock(); -#endif - -#if __STD_C -#define RARG struct _reent *reent_ptr, -#define RONEARG struct _reent *reent_ptr -#else -#define RARG reent_ptr -#define RONEARG reent_ptr -#define RDECL struct _reent *reent_ptr; -#endif - -#define RERRNO reent_ptr->_errno -#define RCALL reent_ptr, -#define RONECALL reent_ptr - -#else /* ! _LIBC */ - -#define POINTER_UINT unsigned long -#define RARG -#define RONEARG -#define RDECL -#define RERRNO errno -#define RCALL -#define RONECALL - -#endif /* ! _LIBC */ - -/* - Debugging: - - Because freed chunks may be overwritten with link fields, this - malloc will often die when freed memory is overwritten by user - programs. This can be very effective (albeit in an annoying way) - in helping track down dangling pointers. - - If you compile with -DDEBUG, a number of assertion checks are - enabled that will catch more memory errors. You probably won't be - able to make much sense of the actual assertion errors, but they - should help you locate incorrectly overwritten memory. The - checking is fairly extensive, and will slow down execution - noticeably. Calling malloc_stats or mallinfo with DEBUG set will - attempt to check every non-mmapped allocated and free chunk in the - course of computing the summmaries. (By nature, mmapped regions - cannot be checked very much automatically.) - - Setting DEBUG may also be helpful if you are trying to modify - this code. The assertions in the check routines spell out in more - detail the assumptions and invariants underlying the algorithms. - -*/ - -#if DEBUG -#include -#else -#define assert(x) ((void)0) -#endif - - -/* - SEPARATE_OBJECTS should be defined if you want each function to go - into a separate .o file. You must then compile malloc.c once per - function, defining the appropriate DEFINE_ macro. See below for the - list of macros. - */ - -#ifndef SEPARATE_OBJECTS -#define DEFINE_MALLOC -#define DEFINE_FREE -#define DEFINE_REALLOC -#define DEFINE_CALLOC -#define DEFINE_CFREE -#define DEFINE_MEMALIGN -#define DEFINE_VALLOC -#define DEFINE_PVALLOC -#define DEFINE_MALLINFO -#define DEFINE_MALLOC_STATS -#define DEFINE_MALLOC_USABLE_SIZE -#define DEFINE_MALLOPT - -#define STATIC static -#else -#define STATIC -#endif - -/* - Define MALLOC_LOCK and MALLOC_UNLOCK to C expressions to run to - lock and unlock the malloc data structures. MALLOC_LOCK may be - called recursively. - */ - -#ifndef MALLOC_LOCK -#define MALLOC_LOCK -#endif - -#ifndef MALLOC_UNLOCK -#define MALLOC_UNLOCK -#endif - -/* - INTERNAL_SIZE_T is the word-size used for internal bookkeeping - of chunk sizes. On a 64-bit machine, you can reduce malloc - overhead by defining INTERNAL_SIZE_T to be a 32 bit `unsigned int' - at the expense of not being able to handle requests greater than - 2^31. This limitation is hardly ever a concern; you are encouraged - to set this. However, the default version is the same as size_t. -*/ - -#ifndef INTERNAL_SIZE_T -#define INTERNAL_SIZE_T size_t -#endif - -/* - Following is needed on implementations whereby long > size_t. - The problem is caused because the code performs subtractions of - size_t values and stores the result in long values. In the case - where long > size_t and the first value is actually less than - the second value, the resultant value is positive. For example, - (long)(x - y) where x = 0 and y is 1 ends up being 0x00000000FFFFFFFF - which is 2*31 - 1 instead of 0xFFFFFFFFFFFFFFFF. This is due to the - fact that assignment from unsigned to signed won't sign extend. -*/ - -#define long_sub_size_t(x, y) \ - (sizeof (long) > sizeof (INTERNAL_SIZE_T) && x < y \ - ? -(long) (y - x) \ - : (long) (x - y)) - -/* - REALLOC_ZERO_BYTES_FREES should be set if a call to - realloc with zero bytes should be the same as a call to free. - Some people think it should. Otherwise, since this malloc - returns a unique pointer for malloc(0), so does realloc(p, 0). -*/ - - -/* #define REALLOC_ZERO_BYTES_FREES */ - - -/* - WIN32 causes an emulation of sbrk to be compiled in - mmap-based options are not currently supported in WIN32. -*/ - -/* #define WIN32 */ -#ifdef WIN32 -#define MORECORE wsbrk -#define HAVE_MMAP 0 -#endif - - -/* - HAVE_MEMCPY should be defined if you are not otherwise using - ANSI STD C, but still have memcpy and memset in your C library - and want to use them in calloc and realloc. Otherwise simple - macro versions are defined here. - - USE_MEMCPY should be defined as 1 if you actually want to - have memset and memcpy called. People report that the macro - versions are often enough faster than libc versions on many - systems that it is better to use them. - -*/ - -#define HAVE_MEMCPY - -/* Although the original macro is called USE_MEMCPY, newlib actually - uses memmove to handle cases whereby a platform's memcpy implementation - copies backwards and thus destructive overlap may occur in realloc - whereby we are reclaiming free memory prior to the old allocation. */ -#ifndef USE_MEMCPY -#ifdef HAVE_MEMCPY -#define USE_MEMCPY 1 -#else -#define USE_MEMCPY 0 -#endif -#endif - -#if (__STD_C || defined(HAVE_MEMCPY)) - -#if __STD_C -void* memset(void*, int, size_t); -void* memcpy(void*, const void*, size_t); -void* memmove(void*, const void*, size_t); -#else -Void_t* memset(); -Void_t* memcpy(); -Void_t* memmove(); -#endif -#endif - -#if USE_MEMCPY - -/* The following macros are only invoked with (2n+1)-multiples of - INTERNAL_SIZE_T units, with a positive integer n. This is exploited - for fast inline execution when n is small. */ - -#define MALLOC_ZERO(charp, nbytes) \ -do { \ - INTERNAL_SIZE_T mzsz = (nbytes); \ - if(mzsz <= 9*sizeof(mzsz)) { \ - INTERNAL_SIZE_T* mz = (INTERNAL_SIZE_T*) (charp); \ - if(mzsz >= 5*sizeof(mzsz)) { *mz++ = 0; \ - *mz++ = 0; \ - if(mzsz >= 7*sizeof(mzsz)) { *mz++ = 0; \ - *mz++ = 0; \ - if(mzsz >= 9*sizeof(mzsz)) { *mz++ = 0; \ - *mz++ = 0; }}} \ - *mz++ = 0; \ - *mz++ = 0; \ - *mz = 0; \ - } else memset((charp), 0, mzsz); \ -} while(0) - -#define MALLOC_COPY(dest,src,nbytes) \ -do { \ - INTERNAL_SIZE_T mcsz = (nbytes); \ - if(mcsz <= 9*sizeof(mcsz)) { \ - INTERNAL_SIZE_T* mcsrc = (INTERNAL_SIZE_T*) (src); \ - INTERNAL_SIZE_T* mcdst = (INTERNAL_SIZE_T*) (dest); \ - if(mcsz >= 5*sizeof(mcsz)) { *mcdst++ = *mcsrc++; \ - *mcdst++ = *mcsrc++; \ - if(mcsz >= 7*sizeof(mcsz)) { *mcdst++ = *mcsrc++; \ - *mcdst++ = *mcsrc++; \ - if(mcsz >= 9*sizeof(mcsz)) { *mcdst++ = *mcsrc++; \ - *mcdst++ = *mcsrc++; }}} \ - *mcdst++ = *mcsrc++; \ - *mcdst++ = *mcsrc++; \ - *mcdst = *mcsrc ; \ - } else memmove(dest, src, mcsz); \ -} while(0) - -#else /* !USE_MEMCPY */ - -/* Use Duff's device for good zeroing/copying performance. */ - -#define MALLOC_ZERO(charp, nbytes) \ -do { \ - INTERNAL_SIZE_T* mzp = (INTERNAL_SIZE_T*)(charp); \ - long mctmp = (nbytes)/sizeof(INTERNAL_SIZE_T), mcn; \ - if (mctmp < 8) mcn = 0; else { mcn = (mctmp-1)/8; mctmp %= 8; } \ - switch (mctmp) { \ - case 0: for(;;) { *mzp++ = 0; \ - case 7: *mzp++ = 0; \ - case 6: *mzp++ = 0; \ - case 5: *mzp++ = 0; \ - case 4: *mzp++ = 0; \ - case 3: *mzp++ = 0; \ - case 2: *mzp++ = 0; \ - case 1: *mzp++ = 0; if(mcn <= 0) break; mcn--; } \ - } \ -} while(0) - -#define MALLOC_COPY(dest,src,nbytes) \ -do { \ - INTERNAL_SIZE_T* mcsrc = (INTERNAL_SIZE_T*) src; \ - INTERNAL_SIZE_T* mcdst = (INTERNAL_SIZE_T*) dest; \ - long mctmp = (nbytes)/sizeof(INTERNAL_SIZE_T), mcn; \ - if (mctmp < 8) mcn = 0; else { mcn = (mctmp-1)/8; mctmp %= 8; } \ - switch (mctmp) { \ - case 0: for(;;) { *mcdst++ = *mcsrc++; \ - case 7: *mcdst++ = *mcsrc++; \ - case 6: *mcdst++ = *mcsrc++; \ - case 5: *mcdst++ = *mcsrc++; \ - case 4: *mcdst++ = *mcsrc++; \ - case 3: *mcdst++ = *mcsrc++; \ - case 2: *mcdst++ = *mcsrc++; \ - case 1: *mcdst++ = *mcsrc++; if(mcn <= 0) break; mcn--; } \ - } \ -} while(0) - -#endif - - -/* - Define HAVE_MMAP to optionally make malloc() use mmap() to - allocate very large blocks. These will be returned to the - operating system immediately after a free(). -*/ - -#ifndef HAVE_MMAP -#define HAVE_MMAP 1 -#endif - -/* - Define HAVE_MREMAP to make realloc() use mremap() to re-allocate - large blocks. This is currently only possible on Linux with - kernel versions newer than 1.3.77. -*/ - -#ifndef HAVE_MREMAP -#ifdef INTERNAL_LINUX_C_LIB -#define HAVE_MREMAP 1 -#else -#define HAVE_MREMAP 0 -#endif -#endif - -#if HAVE_MMAP - -#include -#include -#include - -#if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) -#define MAP_ANONYMOUS MAP_ANON -#endif - -#endif /* HAVE_MMAP */ - -/* - Access to system page size. To the extent possible, this malloc - manages memory from the system in page-size units. - - The following mechanics for getpagesize were adapted from - bsd/gnu getpagesize.h -*/ - -#ifndef LACKS_UNISTD_H -# include -#endif - -#ifndef malloc_getpagesize -# ifdef _SC_PAGESIZE /* some SVR4 systems omit an underscore */ -# ifndef _SC_PAGE_SIZE -# define _SC_PAGE_SIZE _SC_PAGESIZE -# endif -# endif -# ifdef _SC_PAGE_SIZE -# define malloc_getpagesize sysconf(_SC_PAGE_SIZE) -# else -# if defined(BSD) || defined(DGUX) || defined(HAVE_GETPAGESIZE) - extern size_t getpagesize(); -# define malloc_getpagesize getpagesize() -# else -# include -# ifdef EXEC_PAGESIZE -# define malloc_getpagesize EXEC_PAGESIZE -# else -# ifdef NBPG -# ifndef CLSIZE -# define malloc_getpagesize NBPG -# else -# define malloc_getpagesize (NBPG * CLSIZE) -# endif -# else -# ifdef NBPC -# define malloc_getpagesize NBPC -# else -# ifdef PAGESIZE -# define malloc_getpagesize PAGESIZE -# else -# define malloc_getpagesize (4096) /* just guess */ -# endif -# endif -# endif -# endif -# endif -# endif -#endif - - - -/* - - This version of malloc supports the standard SVID/XPG mallinfo - routine that returns a struct containing the same kind of - information you can get from malloc_stats. It should work on - any SVID/XPG compliant system that has a /usr/include/malloc.h - defining struct mallinfo. (If you'd like to install such a thing - yourself, cut out the preliminary declarations as described above - and below and save them in a malloc.h file. But there's no - compelling reason to bother to do this.) - - The main declaration needed is the mallinfo struct that is returned - (by-copy) by mallinfo(). The SVID/XPG malloinfo struct contains a - bunch of fields, most of which are not even meaningful in this - version of malloc. Some of these fields are are instead filled by - mallinfo() with other numbers that might possibly be of interest. - - HAVE_USR_INCLUDE_MALLOC_H should be set if you have a - /usr/include/malloc.h file that includes a declaration of struct - mallinfo. If so, it is included; else an SVID2/XPG2 compliant - version is declared below. These must be precisely the same for - mallinfo() to work. - -*/ - -/* #define HAVE_USR_INCLUDE_MALLOC_H */ - -#if HAVE_USR_INCLUDE_MALLOC_H -#include "/usr/include/malloc.h" -#else - -/* SVID2/XPG mallinfo structure */ - -struct mallinfo { - int arena; /* total space allocated from system */ - int ordblks; /* number of non-inuse chunks */ - int smblks; /* unused -- always zero */ - int hblks; /* number of mmapped regions */ - int hblkhd; /* total space in mmapped regions */ - int usmblks; /* unused -- always zero */ - int fsmblks; /* unused -- always zero */ - int uordblks; /* total allocated space */ - int fordblks; /* total non-inuse space */ - int keepcost; /* top-most, releasable (via malloc_trim) space */ -}; - -/* SVID2/XPG mallopt options */ - -#define M_MXFAST 1 /* UNUSED in this malloc */ -#define M_NLBLKS 2 /* UNUSED in this malloc */ -#define M_GRAIN 3 /* UNUSED in this malloc */ -#define M_KEEP 4 /* UNUSED in this malloc */ - -#endif - -/* mallopt options that actually do something */ - -#define M_TRIM_THRESHOLD -1 -#define M_TOP_PAD -2 -#define M_MMAP_THRESHOLD -3 -#define M_MMAP_MAX -4 - - - -#ifndef DEFAULT_TRIM_THRESHOLD -#define DEFAULT_TRIM_THRESHOLD (128L * 1024L) -#endif - -/* - M_TRIM_THRESHOLD is the maximum amount of unused top-most memory - to keep before releasing via malloc_trim in free(). - - Automatic trimming is mainly useful in long-lived programs. - Because trimming via sbrk can be slow on some systems, and can - sometimes be wasteful (in cases where programs immediately - afterward allocate more large chunks) the value should be high - enough so that your overall system performance would improve by - releasing. - - The trim threshold and the mmap control parameters (see below) - can be traded off with one another. Trimming and mmapping are - two different ways of releasing unused memory back to the - system. Between these two, it is often possible to keep - system-level demands of a long-lived program down to a bare - minimum. For example, in one test suite of sessions measuring - the XF86 X server on Linux, using a trim threshold of 128K and a - mmap threshold of 192K led to near-minimal long term resource - consumption. - - If you are using this malloc in a long-lived program, it should - pay to experiment with these values. As a rough guide, you - might set to a value close to the average size of a process - (program) running on your system. Releasing this much memory - would allow such a process to run in memory. Generally, it's - worth it to tune for trimming rather tham memory mapping when a - program undergoes phases where several large chunks are - allocated and released in ways that can reuse each other's - storage, perhaps mixed with phases where there are no such - chunks at all. And in well-behaved long-lived programs, - controlling release of large blocks via trimming versus mapping - is usually faster. - - However, in most programs, these parameters serve mainly as - protection against the system-level effects of carrying around - massive amounts of unneeded memory. Since frequent calls to - sbrk, mmap, and munmap otherwise degrade performance, the default - parameters are set to relatively high values that serve only as - safeguards. - - The default trim value is high enough to cause trimming only in - fairly extreme (by current memory consumption standards) cases. - It must be greater than page size to have any useful effect. To - disable trimming completely, you can set to (unsigned long)(-1); - - -*/ - - -#ifndef DEFAULT_TOP_PAD -#define DEFAULT_TOP_PAD (0) -#endif - -/* - M_TOP_PAD is the amount of extra `padding' space to allocate or - retain whenever sbrk is called. It is used in two ways internally: - - * When sbrk is called to extend the top of the arena to satisfy - a new malloc request, this much padding is added to the sbrk - request. - - * When malloc_trim is called automatically from free(), - it is used as the `pad' argument. - - In both cases, the actual amount of padding is rounded - so that the end of the arena is always a system page boundary. - - The main reason for using padding is to avoid calling sbrk so - often. Having even a small pad greatly reduces the likelihood - that nearly every malloc request during program start-up (or - after trimming) will invoke sbrk, which needlessly wastes - time. - - Automatic rounding-up to page-size units is normally sufficient - to avoid measurable overhead, so the default is 0. However, in - systems where sbrk is relatively slow, it can pay to increase - this value, at the expense of carrying around more memory than - the program needs. - -*/ - - -#ifndef DEFAULT_MMAP_THRESHOLD -#define DEFAULT_MMAP_THRESHOLD (128 * 1024) -#endif - -/* - - M_MMAP_THRESHOLD is the request size threshold for using mmap() - to service a request. Requests of at least this size that cannot - be allocated using already-existing space will be serviced via mmap. - (If enough normal freed space already exists it is used instead.) - - Using mmap segregates relatively large chunks of memory so that - they can be individually obtained and released from the host - system. A request serviced through mmap is never reused by any - other request (at least not directly; the system may just so - happen to remap successive requests to the same locations). - - Segregating space in this way has the benefit that mmapped space - can ALWAYS be individually released back to the system, which - helps keep the system level memory demands of a long-lived - program low. Mapped memory can never become `locked' between - other chunks, as can happen with normally allocated chunks, which - menas that even trimming via malloc_trim would not release them. - - However, it has the disadvantages that: - - 1. The space cannot be reclaimed, consolidated, and then - used to service later requests, as happens with normal chunks. - 2. It can lead to more wastage because of mmap page alignment - requirements - 3. It causes malloc performance to be more dependent on host - system memory management support routines which may vary in - implementation quality and may impose arbitrary - limitations. Generally, servicing a request via normal - malloc steps is faster than going through a system's mmap. - - All together, these considerations should lead you to use mmap - only for relatively large requests. - - -*/ - - - -#ifndef DEFAULT_MMAP_MAX -#if HAVE_MMAP -#define DEFAULT_MMAP_MAX (64) -#else -#define DEFAULT_MMAP_MAX (0) -#endif -#endif - -/* - M_MMAP_MAX is the maximum number of requests to simultaneously - service using mmap. This parameter exists because: - - 1. Some systems have a limited number of internal tables for - use by mmap. - 2. In most systems, overreliance on mmap can degrade overall - performance. - 3. If a program allocates many large regions, it is probably - better off using normal sbrk-based allocation routines that - can reclaim and reallocate normal heap memory. Using a - small value allows transition into this mode after the - first few allocations. - - Setting to 0 disables all use of mmap. If HAVE_MMAP is not set, - the default value is 0, and attempts to set it to non-zero values - in mallopt will fail. -*/ - - - - -/* - - Special defines for linux libc - - Except when compiled using these special defines for Linux libc - using weak aliases, this malloc is NOT designed to work in - multithreaded applications. No semaphores or other concurrency - control are provided to ensure that multiple malloc or free calls - don't run at the same time, which could be disasterous. A single - semaphore could be used across malloc, realloc, and free (which is - essentially the effect of the linux weak alias approach). It would - be hard to obtain finer granularity. - -*/ - - -#ifdef INTERNAL_LINUX_C_LIB - -#if __STD_C - -Void_t * __default_morecore_init (ptrdiff_t); -Void_t *(*__morecore)(ptrdiff_t) = __default_morecore_init; - -#else - -Void_t * __default_morecore_init (); -Void_t *(*__morecore)() = __default_morecore_init; - -#endif - -#define MORECORE (*__morecore) -#define MORECORE_FAILURE 0 -#define MORECORE_CLEARS 1 - -#else /* INTERNAL_LINUX_C_LIB */ - -#ifndef _LIBC -#if __STD_C -extern Void_t* sbrk(ptrdiff_t); -#else -extern Void_t* sbrk(); -#endif -#endif - -#ifndef MORECORE -#define MORECORE sbrk -#endif - -#ifndef MORECORE_FAILURE -#define MORECORE_FAILURE -1 -#endif - -#ifndef MORECORE_CLEARS -#define MORECORE_CLEARS 1 -#endif - -#endif /* INTERNAL_LINUX_C_LIB */ - -#if defined(INTERNAL_LINUX_C_LIB) && defined(__ELF__) - -#define cALLOc __libc_calloc -#define fREe __libc_free -#define mALLOc __libc_malloc -#define mEMALIGn __libc_memalign -#define rEALLOc __libc_realloc -#define vALLOc __libc_valloc -#define pvALLOc __libc_pvalloc -#define mALLINFo __libc_mallinfo -#define mALLOPt __libc_mallopt - -#pragma weak calloc = __libc_calloc -#pragma weak free = __libc_free -#pragma weak cfree = __libc_free -#pragma weak malloc = __libc_malloc -#pragma weak memalign = __libc_memalign -#pragma weak realloc = __libc_realloc -#pragma weak valloc = __libc_valloc -#pragma weak pvalloc = __libc_pvalloc -#pragma weak mallinfo = __libc_mallinfo -#pragma weak mallopt = __libc_mallopt - -#else - -#ifdef _LIBC - -#define cALLOc _calloc_r -#define fREe _free_r -#define mALLOc _malloc_r -#define mEMALIGn _memalign_r -#define rEALLOc _realloc_r -#define vALLOc _valloc_r -#define pvALLOc _pvalloc_r -#define mALLINFo _mallinfo_r -#define mALLOPt _mallopt_r - -#define malloc_stats _malloc_stats_r -#define malloc_trim _malloc_trim_r -#define malloc_usable_size _malloc_usable_size_r - -#define malloc_update_mallinfo __malloc_update_mallinfo - -#define malloc_av_ __malloc_av_ -#define malloc_current_mallinfo __malloc_current_mallinfo -#define malloc_max_sbrked_mem __malloc_max_sbrked_mem -#define malloc_max_total_mem __malloc_max_total_mem -#define malloc_sbrk_base __malloc_sbrk_base -#define malloc_top_pad __malloc_top_pad -#define malloc_trim_threshold __malloc_trim_threshold - -#else /* ! _LIBC */ - -#define cALLOc calloc -#define fREe free -#define mALLOc malloc -#define mEMALIGn memalign -#define rEALLOc realloc -#define vALLOc valloc -#define pvALLOc pvalloc -#define mALLINFo mallinfo -#define mALLOPt mallopt - -#endif /* ! _LIBC */ -#endif - -/* Public routines */ - -#if __STD_C - -Void_t* mALLOc(RARG size_t); -void fREe(RARG Void_t*); -Void_t* rEALLOc(RARG Void_t*, size_t); -Void_t* mEMALIGn(RARG size_t, size_t); -Void_t* vALLOc(RARG size_t); -Void_t* pvALLOc(RARG size_t); -Void_t* cALLOc(RARG size_t, size_t); -void cfree(Void_t*); -int malloc_trim(RARG size_t); -size_t malloc_usable_size(RARG Void_t*); -void malloc_stats(RONEARG); -int mALLOPt(RARG int, int); -struct mallinfo mALLINFo(RONEARG); -#else -Void_t* mALLOc(); -void fREe(); -Void_t* rEALLOc(); -Void_t* mEMALIGn(); -Void_t* vALLOc(); -Void_t* pvALLOc(); -Void_t* cALLOc(); -void cfree(); -int malloc_trim(); -size_t malloc_usable_size(); -void malloc_stats(); -int mALLOPt(); -struct mallinfo mALLINFo(); -#endif - - -#ifdef __cplusplus -}; /* end of extern "C" */ -#endif - -/* ---------- To make a malloc.h, end cutting here ------------ */ - - -/* - Emulation of sbrk for WIN32 - All code within the ifdef WIN32 is untested by me. -*/ - - -#ifdef WIN32 - -#define AlignPage(add) (((add) + (malloc_getpagesize-1)) & \ -~(malloc_getpagesize-1)) - -/* resrve 64MB to insure large contiguous space */ -#define RESERVED_SIZE (1024*1024*64) -#define NEXT_SIZE (2048*1024) -#define TOP_MEMORY ((unsigned long)2*1024*1024*1024) - -struct GmListElement; -typedef struct GmListElement GmListElement; - -struct GmListElement -{ - GmListElement* next; - void* base; -}; - -static GmListElement* head = 0; -static unsigned int gNextAddress = 0; -static unsigned int gAddressBase = 0; -static unsigned int gAllocatedSize = 0; - -static -GmListElement* makeGmListElement (void* bas) -{ - GmListElement* this; - this = (GmListElement*)(void*)LocalAlloc (0, sizeof (GmListElement)); - ASSERT (this); - if (this) - { - this->base = bas; - this->next = head; - head = this; - } - return this; -} - -void gcleanup () -{ - BOOL rval; - ASSERT ( (head == NULL) || (head->base == (void*)gAddressBase)); - if (gAddressBase && (gNextAddress - gAddressBase)) - { - rval = VirtualFree ((void*)gAddressBase, - gNextAddress - gAddressBase, - MEM_DECOMMIT); - ASSERT (rval); - } - while (head) - { - GmListElement* next = head->next; - rval = VirtualFree (head->base, 0, MEM_RELEASE); - ASSERT (rval); - LocalFree (head); - head = next; - } -} - -static -void* findRegion (void* start_address, unsigned long size) -{ - MEMORY_BASIC_INFORMATION info; - while ((unsigned long)start_address < TOP_MEMORY) - { - VirtualQuery (start_address, &info, sizeof (info)); - if (info.State != MEM_FREE) - start_address = (char*)info.BaseAddress + info.RegionSize; - else if (info.RegionSize >= size) - return start_address; - else - start_address = (char*)info.BaseAddress + info.RegionSize; - } - return NULL; - -} - - -void* wsbrk (long size) -{ - void* tmp; - if (size > 0) - { - if (gAddressBase == 0) - { - gAllocatedSize = max (RESERVED_SIZE, AlignPage (size)); - gNextAddress = gAddressBase = - (unsigned int)VirtualAlloc (NULL, gAllocatedSize, - MEM_RESERVE, PAGE_NOACCESS); - } else if (AlignPage (gNextAddress + size) > (gAddressBase + -gAllocatedSize)) - { - long new_size = max (NEXT_SIZE, AlignPage (size)); - void* new_address = (void*)(gAddressBase+gAllocatedSize); - do - { - new_address = findRegion (new_address, new_size); - - if (new_address == 0) - return (void*)-1; - - gAddressBase = gNextAddress = - (unsigned int)VirtualAlloc (new_address, new_size, - MEM_RESERVE, PAGE_NOACCESS); - // repeat in case of race condition - // The region that we found has been snagged - // by another thread - } - while (gAddressBase == 0); - - ASSERT (new_address == (void*)gAddressBase); - - gAllocatedSize = new_size; - - if (!makeGmListElement ((void*)gAddressBase)) - return (void*)-1; - } - if ((size + gNextAddress) > AlignPage (gNextAddress)) - { - void* res; - res = VirtualAlloc ((void*)AlignPage (gNextAddress), - (size + gNextAddress - - AlignPage (gNextAddress)), - MEM_COMMIT, PAGE_READWRITE); - if (res == 0) - return (void*)-1; - } - tmp = (void*)gNextAddress; - gNextAddress = (unsigned int)tmp + size; - return tmp; - } - else if (size < 0) - { - unsigned int alignedGoal = AlignPage (gNextAddress + size); - /* Trim by releasing the virtual memory */ - if (alignedGoal >= gAddressBase) - { - VirtualFree ((void*)alignedGoal, gNextAddress - alignedGoal, - MEM_DECOMMIT); - gNextAddress = gNextAddress + size; - return (void*)gNextAddress; - } - else - { - VirtualFree ((void*)gAddressBase, gNextAddress - gAddressBase, - MEM_DECOMMIT); - gNextAddress = gAddressBase; - return (void*)-1; - } - } - else - { - return (void*)gNextAddress; - } -} - -#endif - - - -/* - Type declarations -*/ - - -struct malloc_chunk -{ - INTERNAL_SIZE_T prev_size; /* Size of previous chunk (if free). */ - INTERNAL_SIZE_T size; /* Size in bytes, including overhead. */ - struct malloc_chunk* fd; /* double links -- used only if free. */ - struct malloc_chunk* bk; -}; - -typedef struct malloc_chunk* mchunkptr; - -/* - - malloc_chunk details: - - (The following includes lightly edited explanations by Colin Plumb.) - - Chunks of memory are maintained using a `boundary tag' method as - described in e.g., Knuth or Standish. (See the paper by Paul - Wilson ftp://ftp.cs.utexas.edu/pub/garbage/allocsrv.ps for a - survey of such techniques.) Sizes of free chunks are stored both - in the front of each chunk and at the end. This makes - consolidating fragmented chunks into bigger chunks very fast. The - size fields also hold bits representing whether chunks are free or - in use. - - An allocated chunk looks like this: - - - chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Size of previous chunk, if allocated | | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Size of chunk, in bytes |P| - mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | User data starts here... . - . . - . (malloc_usable_space() bytes) . - . | -nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Size of chunk | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - - Where "chunk" is the front of the chunk for the purpose of most of - the malloc code, but "mem" is the pointer that is returned to the - user. "Nextchunk" is the beginning of the next contiguous chunk. - - Chunks always begin on even word boundries, so the mem portion - (which is returned to the user) is also on an even word boundary, and - thus double-word aligned. - - Free chunks are stored in circular doubly-linked lists, and look like this: - - chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Size of previous chunk | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - `head:' | Size of chunk, in bytes |P| - mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Forward pointer to next chunk in list | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Back pointer to previous chunk in list | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Unused space (may be 0 bytes long) . - . . - . | -nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - `foot:' | Size of chunk, in bytes | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - The P (PREV_INUSE) bit, stored in the unused low-order bit of the - chunk size (which is always a multiple of two words), is an in-use - bit for the *previous* chunk. If that bit is *clear*, then the - word before the current chunk size contains the previous chunk - size, and can be used to find the front of the previous chunk. - (The very first chunk allocated always has this bit set, - preventing access to non-existent (or non-owned) memory.) - - Note that the `foot' of the current chunk is actually represented - as the prev_size of the NEXT chunk. (This makes it easier to - deal with alignments etc). - - The two exceptions to all this are - - 1. The special chunk `top', which doesn't bother using the - trailing size field since there is no - next contiguous chunk that would have to index off it. (After - initialization, `top' is forced to always exist. If it would - become less than MINSIZE bytes long, it is replenished via - malloc_extend_top.) - - 2. Chunks allocated via mmap, which have the second-lowest-order - bit (IS_MMAPPED) set in their size fields. Because they are - never merged or traversed from any other chunk, they have no - foot size or inuse information. - - Available chunks are kept in any of several places (all declared below): - - * `av': An array of chunks serving as bin headers for consolidated - chunks. Each bin is doubly linked. The bins are approximately - proportionally (log) spaced. There are a lot of these bins - (128). This may look excessive, but works very well in - practice. All procedures maintain the invariant that no - consolidated chunk physically borders another one. Chunks in - bins are kept in size order, with ties going to the - approximately least recently used chunk. - - The chunks in each bin are maintained in decreasing sorted order by - size. This is irrelevant for the small bins, which all contain - the same-sized chunks, but facilitates best-fit allocation for - larger chunks. (These lists are just sequential. Keeping them in - order almost never requires enough traversal to warrant using - fancier ordered data structures.) Chunks of the same size are - linked with the most recently freed at the front, and allocations - are taken from the back. This results in LRU or FIFO allocation - order, which tends to give each chunk an equal opportunity to be - consolidated with adjacent freed chunks, resulting in larger free - chunks and less fragmentation. - - * `top': The top-most available chunk (i.e., the one bordering the - end of available memory) is treated specially. It is never - included in any bin, is used only if no other chunk is - available, and is released back to the system if it is very - large (see M_TRIM_THRESHOLD). - - * `last_remainder': A bin holding only the remainder of the - most recently split (non-top) chunk. This bin is checked - before other non-fitting chunks, so as to provide better - locality for runs of sequentially allocated chunks. - - * Implicitly, through the host system's memory mapping tables. - If supported, requests greater than a threshold are usually - serviced via calls to mmap, and then later released via munmap. - -*/ - - - - - - -/* sizes, alignments */ - -#define SIZE_SZ (sizeof(INTERNAL_SIZE_T)) -#ifndef MALLOC_ALIGNMENT -#define MALLOC_ALIGN 8 -#define MALLOC_ALIGNMENT (SIZE_SZ < 4 ? 8 : (SIZE_SZ + SIZE_SZ)) -#else -#define MALLOC_ALIGN MALLOC_ALIGNMENT -#endif -#define MALLOC_ALIGN_MASK (MALLOC_ALIGNMENT - 1) -#define MINSIZE (sizeof(struct malloc_chunk)) - -/* conversion from malloc headers to user pointers, and back */ - -#define chunk2mem(p) ((Void_t*)((char*)(p) + 2*SIZE_SZ)) -#define mem2chunk(mem) ((mchunkptr)((char*)(mem) - 2*SIZE_SZ)) - -/* pad request bytes into a usable size */ - -#define request2size(req) \ - (((unsigned long)((req) + (SIZE_SZ + MALLOC_ALIGN_MASK)) < \ - (unsigned long)(MINSIZE + MALLOC_ALIGN_MASK)) ? ((MINSIZE + MALLOC_ALIGN_MASK) & ~(MALLOC_ALIGN_MASK)) : \ - (((req) + (SIZE_SZ + MALLOC_ALIGN_MASK)) & ~(MALLOC_ALIGN_MASK))) - -/* Check if m has acceptable alignment */ - -#define aligned_OK(m) (((unsigned long)((m)) & (MALLOC_ALIGN_MASK)) == 0) - - - - -/* - Physical chunk operations -*/ - - -/* size field is or'ed with PREV_INUSE when previous adjacent chunk in use */ - -#define PREV_INUSE 0x1 - -/* size field is or'ed with IS_MMAPPED if the chunk was obtained with mmap() */ - -#define IS_MMAPPED 0x2 - -/* Bits to mask off when extracting size */ - -#define SIZE_BITS (PREV_INUSE|IS_MMAPPED) - - -/* Ptr to next physical malloc_chunk. */ - -#define next_chunk(p) ((mchunkptr)( ((char*)(p)) + ((p)->size & ~PREV_INUSE) )) - -/* Ptr to previous physical malloc_chunk */ - -#define prev_chunk(p)\ - ((mchunkptr)( ((char*)(p)) - ((p)->prev_size) )) - - -/* Treat space at ptr + offset as a chunk */ - -#define chunk_at_offset(p, s) ((mchunkptr)(((char*)(p)) + (s))) - - - - -/* - Dealing with use bits -*/ - -/* extract p's inuse bit */ - -#define inuse(p)\ -((((mchunkptr)(((char*)(p))+((p)->size & ~PREV_INUSE)))->size) & PREV_INUSE) - -/* extract inuse bit of previous chunk */ - -#define prev_inuse(p) ((p)->size & PREV_INUSE) - -/* check for mmap()'ed chunk */ - -#define chunk_is_mmapped(p) ((p)->size & IS_MMAPPED) - -/* set/clear chunk as in use without otherwise disturbing */ - -#define set_inuse(p)\ -((mchunkptr)(((char*)(p)) + ((p)->size & ~PREV_INUSE)))->size |= PREV_INUSE - -#define clear_inuse(p)\ -((mchunkptr)(((char*)(p)) + ((p)->size & ~PREV_INUSE)))->size &= ~(PREV_INUSE) - -/* check/set/clear inuse bits in known places */ - -#define inuse_bit_at_offset(p, s)\ - (((mchunkptr)(((char*)(p)) + (s)))->size & PREV_INUSE) - -#define set_inuse_bit_at_offset(p, s)\ - (((mchunkptr)(((char*)(p)) + (s)))->size |= PREV_INUSE) - -#define clear_inuse_bit_at_offset(p, s)\ - (((mchunkptr)(((char*)(p)) + (s)))->size &= ~(PREV_INUSE)) - - - - -/* - Dealing with size fields -*/ - -/* Get size, ignoring use bits */ - -#define chunksize(p) ((p)->size & ~(SIZE_BITS)) - -/* Set size at head, without disturbing its use bit */ - -#define set_head_size(p, s) ((p)->size = (((p)->size & PREV_INUSE) | (s))) - -/* Set size/use ignoring previous bits in header */ - -#define set_head(p, s) ((p)->size = (s)) - -/* Set size at footer (only when chunk is not in use) */ - -#define set_foot(p, s) (((mchunkptr)((char*)(p) + (s)))->prev_size = (s)) - - - - - -/* - Bins - - The bins, `av_' are an array of pairs of pointers serving as the - heads of (initially empty) doubly-linked lists of chunks, laid out - in a way so that each pair can be treated as if it were in a - malloc_chunk. (This way, the fd/bk offsets for linking bin heads - and chunks are the same). - - Bins for sizes < 512 bytes contain chunks of all the same size, spaced - 8 bytes apart. Larger bins are approximately logarithmically - spaced. (See the table below.) The `av_' array is never mentioned - directly in the code, but instead via bin access macros. - - Bin layout: - - 64 bins of size 8 - 32 bins of size 64 - 16 bins of size 512 - 8 bins of size 4096 - 4 bins of size 32768 - 2 bins of size 262144 - 1 bin of size what's left - - There is actually a little bit of slop in the numbers in bin_index - for the sake of speed. This makes no difference elsewhere. - - The special chunks `top' and `last_remainder' get their own bins, - (this is implemented via yet more trickery with the av_ array), - although `top' is never properly linked to its bin since it is - always handled specially. - -*/ - -#ifdef SEPARATE_OBJECTS -#define av_ malloc_av_ -#endif - -#define NAV 128 /* number of bins */ - -typedef struct malloc_chunk* mbinptr; - -/* access macros */ - -#define bin_at(i) ((mbinptr)((char*)&(av_[2*(i) + 2]) - 2*SIZE_SZ)) -#define next_bin(b) ((mbinptr)((char*)(b) + 2 * sizeof(mbinptr))) -#define prev_bin(b) ((mbinptr)((char*)(b) - 2 * sizeof(mbinptr))) - -/* - The first 2 bins are never indexed. The corresponding av_ cells are instead - used for bookkeeping. This is not to save space, but to simplify - indexing, maintain locality, and avoid some initialization tests. -*/ - -#define top (bin_at(0)->fd) /* The topmost chunk */ -#define last_remainder (bin_at(1)) /* remainder from last split */ - - -/* - Because top initially points to its own bin with initial - zero size, thus forcing extension on the first malloc request, - we avoid having any special code in malloc to check whether - it even exists yet. But we still need to in malloc_extend_top. -*/ - -#define initial_top ((mchunkptr)(bin_at(0))) - -/* Helper macro to initialize bins */ - -#define IAV(i) bin_at(i), bin_at(i) - -#ifdef DEFINE_MALLOC -STATIC mbinptr av_[NAV * 2 + 2] = { - 0, 0, - IAV(0), IAV(1), IAV(2), IAV(3), IAV(4), IAV(5), IAV(6), IAV(7), - IAV(8), IAV(9), IAV(10), IAV(11), IAV(12), IAV(13), IAV(14), IAV(15), - IAV(16), IAV(17), IAV(18), IAV(19), IAV(20), IAV(21), IAV(22), IAV(23), - IAV(24), IAV(25), IAV(26), IAV(27), IAV(28), IAV(29), IAV(30), IAV(31), - IAV(32), IAV(33), IAV(34), IAV(35), IAV(36), IAV(37), IAV(38), IAV(39), - IAV(40), IAV(41), IAV(42), IAV(43), IAV(44), IAV(45), IAV(46), IAV(47), - IAV(48), IAV(49), IAV(50), IAV(51), IAV(52), IAV(53), IAV(54), IAV(55), - IAV(56), IAV(57), IAV(58), IAV(59), IAV(60), IAV(61), IAV(62), IAV(63), - IAV(64), IAV(65), IAV(66), IAV(67), IAV(68), IAV(69), IAV(70), IAV(71), - IAV(72), IAV(73), IAV(74), IAV(75), IAV(76), IAV(77), IAV(78), IAV(79), - IAV(80), IAV(81), IAV(82), IAV(83), IAV(84), IAV(85), IAV(86), IAV(87), - IAV(88), IAV(89), IAV(90), IAV(91), IAV(92), IAV(93), IAV(94), IAV(95), - IAV(96), IAV(97), IAV(98), IAV(99), IAV(100), IAV(101), IAV(102), IAV(103), - IAV(104), IAV(105), IAV(106), IAV(107), IAV(108), IAV(109), IAV(110), IAV(111), - IAV(112), IAV(113), IAV(114), IAV(115), IAV(116), IAV(117), IAV(118), IAV(119), - IAV(120), IAV(121), IAV(122), IAV(123), IAV(124), IAV(125), IAV(126), IAV(127) -}; -#else -extern mbinptr av_[NAV * 2 + 2]; -#endif - - - -/* field-extraction macros */ - -#define first(b) ((b)->fd) -#define last(b) ((b)->bk) - -/* - Indexing into bins -*/ - -#define bin_index(sz) \ -(((((unsigned long)(sz)) >> 9) == 0) ? (((unsigned long)(sz)) >> 3): \ - ((((unsigned long)(sz)) >> 9) <= 4) ? 56 + (((unsigned long)(sz)) >> 6): \ - ((((unsigned long)(sz)) >> 9) <= 20) ? 91 + (((unsigned long)(sz)) >> 9): \ - ((((unsigned long)(sz)) >> 9) <= 84) ? 110 + (((unsigned long)(sz)) >> 12): \ - ((((unsigned long)(sz)) >> 9) <= 340) ? 119 + (((unsigned long)(sz)) >> 15): \ - ((((unsigned long)(sz)) >> 9) <= 1364) ? 124 + (((unsigned long)(sz)) >> 18): \ - 126) -/* - bins for chunks < 512 are all spaced SMALLBIN_WIDTH bytes apart, and hold - identically sized chunks. This is exploited in malloc. -*/ - -#define MAX_SMALLBIN_SIZE 512 -#define SMALLBIN_WIDTH 8 -#define SMALLBIN_WIDTH_BITS 3 -#define MAX_SMALLBIN (MAX_SMALLBIN_SIZE / SMALLBIN_WIDTH) - 1 - -#define smallbin_index(sz) (((unsigned long)(sz)) >> SMALLBIN_WIDTH_BITS) - -/* - Requests are `small' if both the corresponding and the next bin are small -*/ - -#define is_small_request(nb) (nb < MAX_SMALLBIN_SIZE - SMALLBIN_WIDTH) - - - -/* - To help compensate for the large number of bins, a one-level index - structure is used for bin-by-bin searching. `binblocks' is a - one-word bitvector recording whether groups of BINBLOCKWIDTH bins - have any (possibly) non-empty bins, so they can be skipped over - all at once during during traversals. The bits are NOT always - cleared as soon as all bins in a block are empty, but instead only - when all are noticed to be empty during traversal in malloc. -*/ - -#define BINBLOCKWIDTH 4 /* bins per block */ - -#define binblocks (bin_at(0)->size) /* bitvector of nonempty blocks */ - -/* bin<->block macros */ - -#define idx2binblock(ix) ((unsigned long)1 << (ix / BINBLOCKWIDTH)) -#define mark_binblock(ii) (binblocks |= idx2binblock(ii)) -#define clear_binblock(ii) (binblocks &= ~(idx2binblock(ii))) - - - - - -/* Other static bookkeeping data */ - -#ifdef SEPARATE_OBJECTS -#define trim_threshold malloc_trim_threshold -#define top_pad malloc_top_pad -#define n_mmaps_max malloc_n_mmaps_max -#define mmap_threshold malloc_mmap_threshold -#define sbrk_base malloc_sbrk_base -#define max_sbrked_mem malloc_max_sbrked_mem -#define max_total_mem malloc_max_total_mem -#define current_mallinfo malloc_current_mallinfo -#define n_mmaps malloc_n_mmaps -#define max_n_mmaps malloc_max_n_mmaps -#define mmapped_mem malloc_mmapped_mem -#define max_mmapped_mem malloc_max_mmapped_mem -#endif - -/* variables holding tunable values */ - -#ifdef DEFINE_MALLOC - -STATIC unsigned long trim_threshold = DEFAULT_TRIM_THRESHOLD; -STATIC unsigned long top_pad = DEFAULT_TOP_PAD; -#if HAVE_MMAP -STATIC unsigned int n_mmaps_max = DEFAULT_MMAP_MAX; -STATIC unsigned long mmap_threshold = DEFAULT_MMAP_THRESHOLD; -#endif - -/* The first value returned from sbrk */ -STATIC char* sbrk_base = (char*)(-1); - -/* The maximum memory obtained from system via sbrk */ -STATIC unsigned long max_sbrked_mem = 0; - -/* The maximum via either sbrk or mmap */ -STATIC unsigned long max_total_mem = 0; - -/* internal working copy of mallinfo */ -STATIC struct mallinfo current_mallinfo = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - -#if HAVE_MMAP - -/* Tracking mmaps */ - -STATIC unsigned int n_mmaps = 0; -STATIC unsigned int max_n_mmaps = 0; -STATIC unsigned long mmapped_mem = 0; -STATIC unsigned long max_mmapped_mem = 0; - -#endif - -#else /* ! DEFINE_MALLOC */ - -extern unsigned long trim_threshold; -extern unsigned long top_pad; -#if HAVE_MMAP -extern unsigned int n_mmaps_max; -extern unsigned long mmap_threshold; -#endif -extern char* sbrk_base; -extern unsigned long max_sbrked_mem; -extern unsigned long max_total_mem; -extern struct mallinfo current_mallinfo; -#if HAVE_MMAP -extern unsigned int n_mmaps; -extern unsigned int max_n_mmaps; -extern unsigned long mmapped_mem; -extern unsigned long max_mmapped_mem; -#endif - -#endif /* ! DEFINE_MALLOC */ - -/* The total memory obtained from system via sbrk */ -#define sbrked_mem (current_mallinfo.arena) - - - -/* - Debugging support -*/ - -#if DEBUG - - -/* - These routines make a number of assertions about the states - of data structures that should be true at all times. If any - are not true, it's very likely that a user program has somehow - trashed memory. (It's also possible that there is a coding error - in malloc. In which case, please report it!) -*/ - -#if __STD_C -static void do_check_chunk(mchunkptr p) -#else -static void do_check_chunk(p) mchunkptr p; -#endif -{ - INTERNAL_SIZE_T sz = p->size & ~PREV_INUSE; - - /* No checkable chunk is mmapped */ - assert(!chunk_is_mmapped(p)); - - /* Check for legal address ... */ - assert((char*)p >= sbrk_base); - if (p != top) - assert((char*)p + sz <= (char*)top); - else - assert((char*)p + sz <= sbrk_base + sbrked_mem); - -} - - -#if __STD_C -static void do_check_free_chunk(mchunkptr p) -#else -static void do_check_free_chunk(p) mchunkptr p; -#endif -{ - INTERNAL_SIZE_T sz = p->size & ~PREV_INUSE; - mchunkptr next = chunk_at_offset(p, sz); - - do_check_chunk(p); - - /* Check whether it claims to be free ... */ - assert(!inuse(p)); - - /* Unless a special marker, must have OK fields */ - if ((long)sz >= (long)MINSIZE) - { - assert((sz & MALLOC_ALIGN_MASK) == 0); - assert(aligned_OK(chunk2mem(p))); - /* ... matching footer field */ - assert(next->prev_size == sz); - /* ... and is fully consolidated */ - assert(prev_inuse(p)); - assert (next == top || inuse(next)); - - /* ... and has minimally sane links */ - assert(p->fd->bk == p); - assert(p->bk->fd == p); - } - else /* markers are always of size SIZE_SZ */ - assert(sz == SIZE_SZ); -} - -#if __STD_C -static void do_check_inuse_chunk(mchunkptr p) -#else -static void do_check_inuse_chunk(p) mchunkptr p; -#endif -{ - mchunkptr next = next_chunk(p); - do_check_chunk(p); - - /* Check whether it claims to be in use ... */ - assert(inuse(p)); - - /* ... and is surrounded by OK chunks. - Since more things can be checked with free chunks than inuse ones, - if an inuse chunk borders them and debug is on, it's worth doing them. - */ - if (!prev_inuse(p)) - { - mchunkptr prv = prev_chunk(p); - assert(next_chunk(prv) == p); - do_check_free_chunk(prv); - } - if (next == top) - { - assert(prev_inuse(next)); - assert(chunksize(next) >= MINSIZE); - } - else if (!inuse(next)) - do_check_free_chunk(next); - -} - -#if __STD_C -static void do_check_malloced_chunk(mchunkptr p, INTERNAL_SIZE_T s) -#else -static void do_check_malloced_chunk(p, s) mchunkptr p; INTERNAL_SIZE_T s; -#endif -{ - INTERNAL_SIZE_T sz = p->size & ~PREV_INUSE; - long room = long_sub_size_t(sz, s); - - do_check_inuse_chunk(p); - - /* Legal size ... */ - assert((long)sz >= (long)MINSIZE); - assert((sz & MALLOC_ALIGN_MASK) == 0); - assert(room >= 0); - assert(room < (long)MINSIZE); - - /* ... and alignment */ - assert(aligned_OK(chunk2mem(p))); - - - /* ... and was allocated at front of an available chunk */ - assert(prev_inuse(p)); - -} - - -#define check_free_chunk(P) do_check_free_chunk(P) -#define check_inuse_chunk(P) do_check_inuse_chunk(P) -#define check_chunk(P) do_check_chunk(P) -#define check_malloced_chunk(P,N) do_check_malloced_chunk(P,N) -#else -#define check_free_chunk(P) -#define check_inuse_chunk(P) -#define check_chunk(P) -#define check_malloced_chunk(P,N) -#endif - - - -/* - Macro-based internal utilities -*/ - - -/* - Linking chunks in bin lists. - Call these only with variables, not arbitrary expressions, as arguments. -*/ - -/* - Place chunk p of size s in its bin, in size order, - putting it ahead of others of same size. -*/ - - -#define frontlink(P, S, IDX, BK, FD) \ -{ \ - if (S < MAX_SMALLBIN_SIZE) \ - { \ - IDX = smallbin_index(S); \ - mark_binblock(IDX); \ - BK = bin_at(IDX); \ - FD = BK->fd; \ - P->bk = BK; \ - P->fd = FD; \ - FD->bk = BK->fd = P; \ - } \ - else \ - { \ - IDX = bin_index(S); \ - BK = bin_at(IDX); \ - FD = BK->fd; \ - if (FD == BK) mark_binblock(IDX); \ - else \ - { \ - while (FD != BK && S < chunksize(FD)) FD = FD->fd; \ - BK = FD->bk; \ - } \ - P->bk = BK; \ - P->fd = FD; \ - FD->bk = BK->fd = P; \ - } \ -} - - -/* take a chunk off a list */ - -#define unlink(P, BK, FD) \ -{ \ - BK = P->bk; \ - FD = P->fd; \ - FD->bk = BK; \ - BK->fd = FD; \ -} \ - -/* Place p as the last remainder */ - -#define link_last_remainder(P) \ -{ \ - last_remainder->fd = last_remainder->bk = P; \ - P->fd = P->bk = last_remainder; \ -} - -/* Clear the last_remainder bin */ - -#define clear_last_remainder \ - (last_remainder->fd = last_remainder->bk = last_remainder) - - - - - - -/* Routines dealing with mmap(). */ - -#if HAVE_MMAP - -#ifdef DEFINE_MALLOC - -#if __STD_C -static mchunkptr mmap_chunk(size_t size) -#else -static mchunkptr mmap_chunk(size) size_t size; -#endif -{ - size_t page_mask = malloc_getpagesize - 1; - mchunkptr p; - -#ifndef MAP_ANONYMOUS - static int fd = -1; -#endif - - if(n_mmaps >= n_mmaps_max) return 0; /* too many regions */ - - /* For mmapped chunks, the overhead is one SIZE_SZ unit larger, because - * there is no following chunk whose prev_size field could be used. - */ - size = (size + SIZE_SZ + page_mask) & ~page_mask; - -#ifdef MAP_ANONYMOUS - p = (mchunkptr)mmap(0, size, PROT_READ|PROT_WRITE, - MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); -#else /* !MAP_ANONYMOUS */ - if (fd < 0) - { - fd = open("/dev/zero", O_RDWR); - if(fd < 0) return 0; - } - p = (mchunkptr)mmap(0, size, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0); -#endif - - if(p == (mchunkptr)-1) return 0; - - n_mmaps++; - if (n_mmaps > max_n_mmaps) max_n_mmaps = n_mmaps; - - /* We demand that eight bytes into a page must be 8-byte aligned. */ - assert(aligned_OK(chunk2mem(p))); - - /* The offset to the start of the mmapped region is stored - * in the prev_size field of the chunk; normally it is zero, - * but that can be changed in memalign(). - */ - p->prev_size = 0; - set_head(p, size|IS_MMAPPED); - - mmapped_mem += size; - if ((unsigned long)mmapped_mem > (unsigned long)max_mmapped_mem) - max_mmapped_mem = mmapped_mem; - if ((unsigned long)(mmapped_mem + sbrked_mem) > (unsigned long)max_total_mem) - max_total_mem = mmapped_mem + sbrked_mem; - return p; -} - -#endif /* DEFINE_MALLOC */ - -#ifdef SEPARATE_OBJECTS -#define munmap_chunk malloc_munmap_chunk -#endif - -#ifdef DEFINE_FREE - -#if __STD_C -STATIC void munmap_chunk(mchunkptr p) -#else -STATIC void munmap_chunk(p) mchunkptr p; -#endif -{ - INTERNAL_SIZE_T size = chunksize(p); - int ret; - - assert (chunk_is_mmapped(p)); - assert(! ((char*)p >= sbrk_base && (char*)p < sbrk_base + sbrked_mem)); - assert((n_mmaps > 0)); - assert(((p->prev_size + size) & (malloc_getpagesize-1)) == 0); - - n_mmaps--; - mmapped_mem -= (size + p->prev_size); - - ret = munmap((char *)p - p->prev_size, size + p->prev_size); - - /* munmap returns non-zero on failure */ - assert(ret == 0); -} - -#else /* ! DEFINE_FREE */ - -#if __STD_C -extern void munmap_chunk(mchunkptr); -#else -extern void munmap_chunk(); -#endif - -#endif /* ! DEFINE_FREE */ - -#if HAVE_MREMAP - -#ifdef DEFINE_REALLOC - -#if __STD_C -static mchunkptr mremap_chunk(mchunkptr p, size_t new_size) -#else -static mchunkptr mremap_chunk(p, new_size) mchunkptr p; size_t new_size; -#endif -{ - size_t page_mask = malloc_getpagesize - 1; - INTERNAL_SIZE_T offset = p->prev_size; - INTERNAL_SIZE_T size = chunksize(p); - char *cp; - - assert (chunk_is_mmapped(p)); - assert(! ((char*)p >= sbrk_base && (char*)p < sbrk_base + sbrked_mem)); - assert((n_mmaps > 0)); - assert(((size + offset) & (malloc_getpagesize-1)) == 0); - - /* Note the extra SIZE_SZ overhead as in mmap_chunk(). */ - new_size = (new_size + offset + SIZE_SZ + page_mask) & ~page_mask; - - cp = (char *)mremap((char *)p - offset, size + offset, new_size, 1); - - if (cp == (char *)-1) return 0; - - p = (mchunkptr)(cp + offset); - - assert(aligned_OK(chunk2mem(p))); - - assert((p->prev_size == offset)); - set_head(p, (new_size - offset)|IS_MMAPPED); - - mmapped_mem -= size + offset; - mmapped_mem += new_size; - if ((unsigned long)mmapped_mem > (unsigned long)max_mmapped_mem) - max_mmapped_mem = mmapped_mem; - if ((unsigned long)(mmapped_mem + sbrked_mem) > (unsigned long)max_total_mem) - max_total_mem = mmapped_mem + sbrked_mem; - return p; -} - -#endif /* DEFINE_REALLOC */ - -#endif /* HAVE_MREMAP */ - -#endif /* HAVE_MMAP */ - - - - -#ifdef DEFINE_MALLOC - -/* - Extend the top-most chunk by obtaining memory from system. - Main interface to sbrk (but see also malloc_trim). -*/ - -#if __STD_C -static void malloc_extend_top(RARG INTERNAL_SIZE_T nb) -#else -static void malloc_extend_top(RARG nb) RDECL INTERNAL_SIZE_T nb; -#endif -{ - char* brk; /* return value from sbrk */ - INTERNAL_SIZE_T front_misalign; /* unusable bytes at front of sbrked space */ - INTERNAL_SIZE_T correction; /* bytes for 2nd sbrk call */ - int correction_failed = 0; /* whether we should relax the assertion */ - char* new_brk; /* return of 2nd sbrk call */ - INTERNAL_SIZE_T top_size; /* new size of top chunk */ - - mchunkptr old_top = top; /* Record state of old top */ - INTERNAL_SIZE_T old_top_size = chunksize(old_top); - char* old_end = (char*)(chunk_at_offset(old_top, old_top_size)); - - /* Pad request with top_pad plus minimal overhead */ - - INTERNAL_SIZE_T sbrk_size = nb + top_pad + MINSIZE; - unsigned long pagesz = malloc_getpagesize; - - /* If not the first time through, round to preserve page boundary */ - /* Otherwise, we need to correct to a page size below anyway. */ - /* (We also correct below if an intervening foreign sbrk call.) */ - - if (sbrk_base != (char*)(-1)) - sbrk_size = (sbrk_size + (pagesz - 1)) & ~(pagesz - 1); - - brk = (char*)(MORECORE (sbrk_size)); - - /* Fail if sbrk failed or if a foreign sbrk call killed our space */ - if (brk == (char*)(MORECORE_FAILURE) || - (brk < old_end && old_top != initial_top)) - return; - - sbrked_mem += sbrk_size; - - if (brk == old_end /* can just add bytes to current top, unless - previous correction failed */ - && ((POINTER_UINT)old_end & (pagesz - 1)) == 0) - { - top_size = sbrk_size + old_top_size; - set_head(top, top_size | PREV_INUSE); - } - else - { - if (sbrk_base == (char*)(-1)) /* First time through. Record base */ - sbrk_base = brk; - else /* Someone else called sbrk(). Count those bytes as sbrked_mem. */ - sbrked_mem += brk - (char*)old_end; - - /* Guarantee alignment of first new chunk made from this space */ - front_misalign = (POINTER_UINT)chunk2mem(brk) & MALLOC_ALIGN_MASK; - if (front_misalign > 0) - { - correction = (MALLOC_ALIGNMENT) - front_misalign; - brk += correction; - } - else - correction = 0; - - /* Guarantee the next brk will be at a page boundary */ - correction += pagesz - ((POINTER_UINT)(brk + sbrk_size) & (pagesz - 1)); - - /* To guarantee page boundary, correction should be less than pagesz */ - correction &= (pagesz - 1); - - /* Allocate correction */ - new_brk = (char*)(MORECORE (correction)); - if (new_brk == (char*)(MORECORE_FAILURE)) - { - correction = 0; - correction_failed = 1; - new_brk = brk + sbrk_size; - if (front_misalign > 0) - new_brk -= (MALLOC_ALIGNMENT) - front_misalign; - } - - sbrked_mem += correction; - - top = (mchunkptr)brk; - top_size = new_brk - brk + correction; - set_head(top, top_size | PREV_INUSE); - - if (old_top != initial_top) - { - - /* There must have been an intervening foreign sbrk call. */ - /* A double fencepost is necessary to prevent consolidation */ - - /* If not enough space to do this, then user did something very wrong */ - if (old_top_size < MINSIZE) - { - set_head(top, PREV_INUSE); /* will force null return from malloc */ - return; - } - - /* Also keep size a multiple of MALLOC_ALIGNMENT */ - old_top_size = (old_top_size - 3*SIZE_SZ) & ~MALLOC_ALIGN_MASK; - set_head_size(old_top, old_top_size); - chunk_at_offset(old_top, old_top_size )->size = - SIZE_SZ|PREV_INUSE; - chunk_at_offset(old_top, old_top_size + SIZE_SZ)->size = - SIZE_SZ|PREV_INUSE; - /* If possible, release the rest. */ - if (old_top_size >= MINSIZE) - fREe(RCALL chunk2mem(old_top)); - } - } - - if ((unsigned long)sbrked_mem > (unsigned long)max_sbrked_mem) - max_sbrked_mem = sbrked_mem; -#if HAVE_MMAP - if ((unsigned long)(mmapped_mem + sbrked_mem) > (unsigned long)max_total_mem) - max_total_mem = mmapped_mem + sbrked_mem; -#else - if ((unsigned long)(sbrked_mem) > (unsigned long)max_total_mem) - max_total_mem = sbrked_mem; -#endif - - /* We always land on a page boundary */ - assert(((unsigned long)((char*)top + top_size) & (pagesz - 1)) == 0 - || correction_failed); -} - -#endif /* DEFINE_MALLOC */ - - -/* Main public routines */ - -#ifdef DEFINE_MALLOC - -/* - Malloc Algorthim: - - The requested size is first converted into a usable form, `nb'. - This currently means to add 4 bytes overhead plus possibly more to - obtain 8-byte alignment and/or to obtain a size of at least - MINSIZE (currently 16 bytes), the smallest allocatable size. - (All fits are considered `exact' if they are within MINSIZE bytes.) - - From there, the first successful of the following steps is taken: - - 1. The bin corresponding to the request size is scanned, and if - a chunk of exactly the right size is found, it is taken. - - 2. The most recently remaindered chunk is used if it is big - enough. This is a form of (roving) first fit, used only in - the absence of exact fits. Runs of consecutive requests use - the remainder of the chunk used for the previous such request - whenever possible. This limited use of a first-fit style - allocation strategy tends to give contiguous chunks - coextensive lifetimes, which improves locality and can reduce - fragmentation in the long run. - - 3. Other bins are scanned in increasing size order, using a - chunk big enough to fulfill the request, and splitting off - any remainder. This search is strictly by best-fit; i.e., - the smallest (with ties going to approximately the least - recently used) chunk that fits is selected. - - 4. If large enough, the chunk bordering the end of memory - (`top') is split off. (This use of `top' is in accord with - the best-fit search rule. In effect, `top' is treated as - larger (and thus less well fitting) than any other available - chunk since it can be extended to be as large as necessary - (up to system limitations). - - 5. If the request size meets the mmap threshold and the - system supports mmap, and there are few enough currently - allocated mmapped regions, and a call to mmap succeeds, - the request is allocated via direct memory mapping. - - 6. Otherwise, the top of memory is extended by - obtaining more space from the system (normally using sbrk, - but definable to anything else via the MORECORE macro). - Memory is gathered from the system (in system page-sized - units) in a way that allows chunks obtained across different - sbrk calls to be consolidated, but does not require - contiguous memory. Thus, it should be safe to intersperse - mallocs with other sbrk calls. - - - All allocations are made from the the `lowest' part of any found - chunk. (The implementation invariant is that prev_inuse is - always true of any allocated chunk; i.e., that each allocated - chunk borders either a previously allocated and still in-use chunk, - or the base of its memory arena.) - -*/ - -#if __STD_C -Void_t* mALLOc(RARG size_t bytes) -#else -Void_t* mALLOc(RARG bytes) RDECL size_t bytes; -#endif -{ -#ifdef MALLOC_PROVIDED - - return malloc (bytes); // Make sure that the pointer returned by malloc is returned back. - -#else - - mchunkptr victim; /* inspected/selected chunk */ - INTERNAL_SIZE_T victim_size; /* its size */ - int idx; /* index for bin traversal */ - mbinptr bin; /* associated bin */ - mchunkptr remainder; /* remainder from a split */ - long remainder_size; /* its size */ - int remainder_index; /* its bin index */ - unsigned long block; /* block traverser bit */ - int startidx; /* first bin of a traversed block */ - mchunkptr fwd; /* misc temp for linking */ - mchunkptr bck; /* misc temp for linking */ - mbinptr q; /* misc temp */ - - INTERNAL_SIZE_T nb = request2size(bytes); /* padded request size; */ - - /* Check for overflow and just fail, if so. */ - if (nb > INT_MAX || nb < bytes) - { - RERRNO = ENOMEM; - return 0; - } - - MALLOC_LOCK; - - /* Check for exact match in a bin */ - - if (is_small_request(nb)) /* Faster version for small requests */ - { - idx = smallbin_index(nb); - - /* No traversal or size check necessary for small bins. */ - - q = bin_at(idx); - victim = last(q); - -#if MALLOC_ALIGN != 16 - /* Also scan the next one, since it would have a remainder < MINSIZE */ - if (victim == q) - { - q = next_bin(q); - victim = last(q); - } -#endif - if (victim != q) - { - victim_size = chunksize(victim); - unlink(victim, bck, fwd); - set_inuse_bit_at_offset(victim, victim_size); - check_malloced_chunk(victim, nb); - MALLOC_UNLOCK; - return chunk2mem(victim); - } - - idx += 2; /* Set for bin scan below. We've already scanned 2 bins. */ - - } - else - { - idx = bin_index(nb); - bin = bin_at(idx); - - for (victim = last(bin); victim != bin; victim = victim->bk) - { - victim_size = chunksize(victim); - remainder_size = long_sub_size_t(victim_size, nb); - - if (remainder_size >= (long)MINSIZE) /* too big */ - { - --idx; /* adjust to rescan below after checking last remainder */ - break; - } - - else if (remainder_size >= 0) /* exact fit */ - { - unlink(victim, bck, fwd); - set_inuse_bit_at_offset(victim, victim_size); - check_malloced_chunk(victim, nb); - MALLOC_UNLOCK; - return chunk2mem(victim); - } - } - - ++idx; - - } - - /* Try to use the last split-off remainder */ - - if ( (victim = last_remainder->fd) != last_remainder) - { - victim_size = chunksize(victim); - remainder_size = long_sub_size_t(victim_size, nb); - - if (remainder_size >= (long)MINSIZE) /* re-split */ - { - remainder = chunk_at_offset(victim, nb); - set_head(victim, nb | PREV_INUSE); - link_last_remainder(remainder); - set_head(remainder, remainder_size | PREV_INUSE); - set_foot(remainder, remainder_size); - check_malloced_chunk(victim, nb); - MALLOC_UNLOCK; - return chunk2mem(victim); - } - - clear_last_remainder; - - if (remainder_size >= 0) /* exhaust */ - { - set_inuse_bit_at_offset(victim, victim_size); - check_malloced_chunk(victim, nb); - MALLOC_UNLOCK; - return chunk2mem(victim); - } - - /* Else place in bin */ - - frontlink(victim, victim_size, remainder_index, bck, fwd); - } - - /* - If there are any possibly nonempty big-enough blocks, - search for best fitting chunk by scanning bins in blockwidth units. - */ - - if ( (block = idx2binblock(idx)) <= binblocks) - { - - /* Get to the first marked block */ - - if ( (block & binblocks) == 0) - { - /* force to an even block boundary */ - idx = (idx & ~(BINBLOCKWIDTH - 1)) + BINBLOCKWIDTH; - block <<= 1; - while ((block & binblocks) == 0) - { - idx += BINBLOCKWIDTH; - block <<= 1; - } - } - - /* For each possibly nonempty block ... */ - for (;;) - { - startidx = idx; /* (track incomplete blocks) */ - q = bin = bin_at(idx); - - /* For each bin in this block ... */ - do - { - /* Find and use first big enough chunk ... */ - - for (victim = last(bin); victim != bin; victim = victim->bk) - { - victim_size = chunksize(victim); - remainder_size = long_sub_size_t(victim_size, nb); - - if (remainder_size >= (long)MINSIZE) /* split */ - { - remainder = chunk_at_offset(victim, nb); - set_head(victim, nb | PREV_INUSE); - unlink(victim, bck, fwd); - link_last_remainder(remainder); - set_head(remainder, remainder_size | PREV_INUSE); - set_foot(remainder, remainder_size); - check_malloced_chunk(victim, nb); - MALLOC_UNLOCK; - return chunk2mem(victim); - } - - else if (remainder_size >= 0) /* take */ - { - set_inuse_bit_at_offset(victim, victim_size); - unlink(victim, bck, fwd); - check_malloced_chunk(victim, nb); - MALLOC_UNLOCK; - return chunk2mem(victim); - } - - } - - bin = next_bin(bin); - -#if MALLOC_ALIGN == 16 - if (idx < MAX_SMALLBIN) - { - bin = next_bin(bin); - ++idx; - } -#endif - } while ((++idx & (BINBLOCKWIDTH - 1)) != 0); - - /* Clear out the block bit. */ - - do /* Possibly backtrack to try to clear a partial block */ - { - if ((startidx & (BINBLOCKWIDTH - 1)) == 0) - { - binblocks &= ~block; - break; - } - --startidx; - q = prev_bin(q); - } while (first(q) == q); - - /* Get to the next possibly nonempty block */ - - if ( (block <<= 1) <= binblocks && (block != 0) ) - { - while ((block & binblocks) == 0) - { - idx += BINBLOCKWIDTH; - block <<= 1; - } - } - else - break; - } - } - - - /* Try to use top chunk */ - - /* Require that there be a remainder, ensuring top always exists */ - remainder_size = long_sub_size_t(chunksize(top), nb); - if (chunksize(top) < nb || remainder_size < (long)MINSIZE) - { - -#if HAVE_MMAP - /* If big and would otherwise need to extend, try to use mmap instead */ - if ((unsigned long)nb >= (unsigned long)mmap_threshold && - (victim = mmap_chunk(nb)) != 0) - { - MALLOC_UNLOCK; - return chunk2mem(victim); - } -#endif - - /* Try to extend */ - malloc_extend_top(RCALL nb); - remainder_size = long_sub_size_t(chunksize(top), nb); - if (chunksize(top) < nb || remainder_size < (long)MINSIZE) - { - MALLOC_UNLOCK; - return 0; /* propagate failure */ - } - } - - victim = top; - set_head(victim, nb | PREV_INUSE); - top = chunk_at_offset(victim, nb); - set_head(top, remainder_size | PREV_INUSE); - check_malloced_chunk(victim, nb); - MALLOC_UNLOCK; - return chunk2mem(victim); - -#endif /* MALLOC_PROVIDED */ -} - -#endif /* DEFINE_MALLOC */ - -#ifdef DEFINE_FREE - -/* - - free() algorithm : - - cases: - - 1. free(0) has no effect. - - 2. If the chunk was allocated via mmap, it is release via munmap(). - - 3. If a returned chunk borders the current high end of memory, - it is consolidated into the top, and if the total unused - topmost memory exceeds the trim threshold, malloc_trim is - called. - - 4. Other chunks are consolidated as they arrive, and - placed in corresponding bins. (This includes the case of - consolidating with the current `last_remainder'). - -*/ - - -#if __STD_C -void fREe(RARG Void_t* mem) -#else -void fREe(RARG mem) RDECL Void_t* mem; -#endif -{ -#ifdef MALLOC_PROVIDED - - free (mem); - -#else - - mchunkptr p; /* chunk corresponding to mem */ - INTERNAL_SIZE_T hd; /* its head field */ - INTERNAL_SIZE_T sz; /* its size */ - int idx; /* its bin index */ - mchunkptr next; /* next contiguous chunk */ - INTERNAL_SIZE_T nextsz; /* its size */ - INTERNAL_SIZE_T prevsz; /* size of previous contiguous chunk */ - mchunkptr bck; /* misc temp for linking */ - mchunkptr fwd; /* misc temp for linking */ - int islr; /* track whether merging with last_remainder */ - - if (mem == 0) /* free(0) has no effect */ - return; - - MALLOC_LOCK; - - p = mem2chunk(mem); - hd = p->size; - -#if HAVE_MMAP - if (hd & IS_MMAPPED) /* release mmapped memory. */ - { - munmap_chunk(p); - MALLOC_UNLOCK; - return; - } -#endif - - check_inuse_chunk(p); - - sz = hd & ~PREV_INUSE; - next = chunk_at_offset(p, sz); - nextsz = chunksize(next); - - if (next == top) /* merge with top */ - { - sz += nextsz; - - if (!(hd & PREV_INUSE)) /* consolidate backward */ - { - prevsz = p->prev_size; - p = chunk_at_offset(p, -prevsz); - sz += prevsz; - unlink(p, bck, fwd); - } - - set_head(p, sz | PREV_INUSE); - top = p; - if ((unsigned long)(sz) >= (unsigned long)trim_threshold) - malloc_trim(RCALL top_pad); - MALLOC_UNLOCK; - return; - } - - set_head(next, nextsz); /* clear inuse bit */ - - islr = 0; - - if (!(hd & PREV_INUSE)) /* consolidate backward */ - { - prevsz = p->prev_size; - p = chunk_at_offset(p, -prevsz); - sz += prevsz; - - if (p->fd == last_remainder) /* keep as last_remainder */ - islr = 1; - else - unlink(p, bck, fwd); - } - - if (!(inuse_bit_at_offset(next, nextsz))) /* consolidate forward */ - { - sz += nextsz; - - if (!islr && next->fd == last_remainder) /* re-insert last_remainder */ - { - islr = 1; - link_last_remainder(p); - } - else - unlink(next, bck, fwd); - } - - - set_head(p, sz | PREV_INUSE); - set_foot(p, sz); - if (!islr) - frontlink(p, sz, idx, bck, fwd); - - MALLOC_UNLOCK; - -#endif /* MALLOC_PROVIDED */ -} - -#endif /* DEFINE_FREE */ - -#ifdef DEFINE_REALLOC - -/* - - Realloc algorithm: - - Chunks that were obtained via mmap cannot be extended or shrunk - unless HAVE_MREMAP is defined, in which case mremap is used. - Otherwise, if their reallocation is for additional space, they are - copied. If for less, they are just left alone. - - Otherwise, if the reallocation is for additional space, and the - chunk can be extended, it is, else a malloc-copy-free sequence is - taken. There are several different ways that a chunk could be - extended. All are tried: - - * Extending forward into following adjacent free chunk. - * Shifting backwards, joining preceding adjacent space - * Both shifting backwards and extending forward. - * Extending into newly sbrked space - - Unless the #define REALLOC_ZERO_BYTES_FREES is set, realloc with a - size argument of zero (re)allocates a minimum-sized chunk. - - If the reallocation is for less space, and the new request is for - a `small' (<512 bytes) size, then the newly unused space is lopped - off and freed. - - The old unix realloc convention of allowing the last-free'd chunk - to be used as an argument to realloc is no longer supported. - I don't know of any programs still relying on this feature, - and allowing it would also allow too many other incorrect - usages of realloc to be sensible. - - -*/ - - -#if __STD_C -Void_t* rEALLOc(RARG Void_t* oldmem, size_t bytes) -#else -Void_t* rEALLOc(RARG oldmem, bytes) RDECL Void_t* oldmem; size_t bytes; -#endif -{ -#ifdef MALLOC_PROVIDED - - realloc (oldmem, bytes); - -#else - - INTERNAL_SIZE_T nb; /* padded request size */ - - mchunkptr oldp; /* chunk corresponding to oldmem */ - INTERNAL_SIZE_T oldsize; /* its size */ - - mchunkptr newp; /* chunk to return */ - INTERNAL_SIZE_T newsize; /* its size */ - Void_t* newmem; /* corresponding user mem */ - - mchunkptr next; /* next contiguous chunk after oldp */ - INTERNAL_SIZE_T nextsize; /* its size */ - - mchunkptr prev; /* previous contiguous chunk before oldp */ - INTERNAL_SIZE_T prevsize; /* its size */ - - mchunkptr remainder; /* holds split off extra space from newp */ - INTERNAL_SIZE_T remainder_size; /* its size */ - - mchunkptr bck; /* misc temp for linking */ - mchunkptr fwd; /* misc temp for linking */ - -#ifdef REALLOC_ZERO_BYTES_FREES - if (bytes == 0) { fREe(RCALL oldmem); return 0; } -#endif - - - /* realloc of null is supposed to be same as malloc */ - if (oldmem == 0) return mALLOc(RCALL bytes); - - MALLOC_LOCK; - - newp = oldp = mem2chunk(oldmem); - newsize = oldsize = chunksize(oldp); - - - nb = request2size(bytes); - - /* Check for overflow and just fail, if so. */ - if (nb > INT_MAX || nb < bytes) - { - RERRNO = ENOMEM; - return 0; - } - -#if HAVE_MMAP - if (chunk_is_mmapped(oldp)) - { -#if HAVE_MREMAP - newp = mremap_chunk(oldp, nb); - if(newp) - { - MALLOC_UNLOCK; - return chunk2mem(newp); - } -#endif - /* Note the extra SIZE_SZ overhead. */ - if(oldsize - SIZE_SZ >= nb) - { - MALLOC_UNLOCK; - return oldmem; /* do nothing */ - } - /* Must alloc, copy, free. */ - newmem = mALLOc(RCALL bytes); - if (newmem == 0) - { - MALLOC_UNLOCK; - return 0; /* propagate failure */ - } - MALLOC_COPY(newmem, oldmem, oldsize - 2*SIZE_SZ); - munmap_chunk(oldp); - MALLOC_UNLOCK; - return newmem; - } -#endif - - check_inuse_chunk(oldp); - - if ((long)(oldsize) < (long)(nb)) - { - - /* Try expanding forward */ - - next = chunk_at_offset(oldp, oldsize); - if (next == top || !inuse(next)) - { - nextsize = chunksize(next); - - /* Forward into top only if a remainder */ - if (next == top) - { - if ((long)(nextsize + newsize) >= (long)(nb + MINSIZE)) - { - newsize += nextsize; - top = chunk_at_offset(oldp, nb); - set_head(top, (newsize - nb) | PREV_INUSE); - set_head_size(oldp, nb); - MALLOC_UNLOCK; - return chunk2mem(oldp); - } - } - - /* Forward into next chunk */ - else if (((long)(nextsize + newsize) >= (long)(nb))) - { - unlink(next, bck, fwd); - newsize += nextsize; - goto split; - } - } - else - { - next = 0; - nextsize = 0; - } - - /* Try shifting backwards. */ - - if (!prev_inuse(oldp)) - { - prev = prev_chunk(oldp); - prevsize = chunksize(prev); - - /* try forward + backward first to save a later consolidation */ - - if (next != 0) - { - /* into top */ - if (next == top) - { - if ((long)(nextsize + prevsize + newsize) >= (long)(nb + MINSIZE)) - { - unlink(prev, bck, fwd); - newp = prev; - newsize += prevsize + nextsize; - newmem = chunk2mem(newp); - MALLOC_COPY(newmem, oldmem, oldsize - SIZE_SZ); - top = chunk_at_offset(newp, nb); - set_head(top, (newsize - nb) | PREV_INUSE); - set_head_size(newp, nb); - MALLOC_UNLOCK; - return newmem; - } - } - - /* into next chunk */ - else if (((long)(nextsize + prevsize + newsize) >= (long)(nb))) - { - unlink(next, bck, fwd); - unlink(prev, bck, fwd); - newp = prev; - newsize += nextsize + prevsize; - newmem = chunk2mem(newp); - MALLOC_COPY(newmem, oldmem, oldsize - SIZE_SZ); - goto split; - } - } - - /* backward only */ - if (prev != 0 && (long)(prevsize + newsize) >= (long)nb) - { - unlink(prev, bck, fwd); - newp = prev; - newsize += prevsize; - newmem = chunk2mem(newp); - MALLOC_COPY(newmem, oldmem, oldsize - SIZE_SZ); - goto split; - } - } - - /* Must allocate */ - - newmem = mALLOc (RCALL bytes); - - if (newmem == 0) /* propagate failure */ - { - MALLOC_UNLOCK; - return 0; - } - - /* Avoid copy if newp is next chunk after oldp. */ - /* (This can only happen when new chunk is sbrk'ed.) */ - - if ( (newp = mem2chunk(newmem)) == next_chunk(oldp)) - { - newsize += chunksize(newp); - newp = oldp; - goto split; - } - - /* Otherwise copy, free, and exit */ - MALLOC_COPY(newmem, oldmem, oldsize - SIZE_SZ); - fREe(RCALL oldmem); - MALLOC_UNLOCK; - return newmem; - } - - - split: /* split off extra room in old or expanded chunk */ - - remainder_size = long_sub_size_t(newsize, nb); - - if (remainder_size >= (long)MINSIZE) /* split off remainder */ - { - remainder = chunk_at_offset(newp, nb); - set_head_size(newp, nb); - set_head(remainder, remainder_size | PREV_INUSE); - set_inuse_bit_at_offset(remainder, remainder_size); - fREe(RCALL chunk2mem(remainder)); /* let free() deal with it */ - } - else - { - set_head_size(newp, newsize); - set_inuse_bit_at_offset(newp, newsize); - } - - check_inuse_chunk(newp); - MALLOC_UNLOCK; - return chunk2mem(newp); - -#endif /* MALLOC_PROVIDED */ -} - -#endif /* DEFINE_REALLOC */ - -#ifdef DEFINE_MEMALIGN - -/* - - memalign algorithm: - - memalign requests more than enough space from malloc, finds a spot - within that chunk that meets the alignment request, and then - possibly frees the leading and trailing space. - - The alignment argument must be a power of two. This property is not - checked by memalign, so misuse may result in random runtime errors. - - 8-byte alignment is guaranteed by normal malloc calls, so don't - bother calling memalign with an argument of 8 or less. - - Overreliance on memalign is a sure way to fragment space. - -*/ - - -#if __STD_C -Void_t* mEMALIGn(RARG size_t alignment, size_t bytes) -#else -Void_t* mEMALIGn(RARG alignment, bytes) RDECL size_t alignment; size_t bytes; -#endif -{ - INTERNAL_SIZE_T nb; /* padded request size */ - char* m; /* memory returned by malloc call */ - mchunkptr p; /* corresponding chunk */ - char* brk; /* alignment point within p */ - mchunkptr newp; /* chunk to return */ - INTERNAL_SIZE_T newsize; /* its size */ - INTERNAL_SIZE_T leadsize; /* leading space befor alignment point */ - mchunkptr remainder; /* spare room at end to split off */ - long remainder_size; /* its size */ - - /* If need less alignment than we give anyway, just relay to malloc */ - - if (alignment <= MALLOC_ALIGNMENT) return mALLOc(RCALL bytes); - - /* Otherwise, ensure that it is at least a minimum chunk size */ - - if (alignment < MINSIZE) alignment = MINSIZE; - - /* Call malloc with worst case padding to hit alignment. */ - - nb = request2size(bytes); - - /* Check for overflow. */ - if (nb > __SIZE_MAX__ - (alignment + MINSIZE) || nb < bytes) - { - RERRNO = ENOMEM; - return 0; - } - - m = (char*)(mALLOc(RCALL nb + alignment + MINSIZE)); - - if (m == 0) return 0; /* propagate failure */ - - MALLOC_LOCK; - - p = mem2chunk(m); - - if ((((unsigned long)(m)) % alignment) == 0) /* aligned */ - { -#if HAVE_MMAP - if(chunk_is_mmapped(p)) - { - MALLOC_UNLOCK; - return chunk2mem(p); /* nothing more to do */ - } -#endif - } - else /* misaligned */ - { - /* - Find an aligned spot inside chunk. - Since we need to give back leading space in a chunk of at - least MINSIZE, if the first calculation places us at - a spot with less than MINSIZE leader, we can move to the - next aligned spot -- we've allocated enough total room so that - this is always possible. - */ - - brk = (char*)mem2chunk(((unsigned long)(m + alignment - 1)) & -alignment); - if ((long)(brk - (char*)(p)) < (long)MINSIZE) brk = brk + alignment; - - newp = (mchunkptr)brk; - leadsize = brk - (char*)(p); - newsize = chunksize(p) - leadsize; - -#if HAVE_MMAP - if(chunk_is_mmapped(p)) - { - newp->prev_size = p->prev_size + leadsize; - set_head(newp, newsize|IS_MMAPPED); - MALLOC_UNLOCK; - return chunk2mem(newp); - } -#endif - - /* give back leader, use the rest */ - - set_head(newp, newsize | PREV_INUSE); - set_inuse_bit_at_offset(newp, newsize); - set_head_size(p, leadsize); - fREe(RCALL chunk2mem(p)); - p = newp; - - assert (newsize >= nb && (((unsigned long)(chunk2mem(p))) % alignment) == 0); - } - - /* Also give back spare room at the end */ - - remainder_size = long_sub_size_t(chunksize(p), nb); - - if (remainder_size >= (long)MINSIZE) - { - remainder = chunk_at_offset(p, nb); - set_head(remainder, remainder_size | PREV_INUSE); - set_head_size(p, nb); - fREe(RCALL chunk2mem(remainder)); - } - - check_inuse_chunk(p); - MALLOC_UNLOCK; - return chunk2mem(p); - -} - -#endif /* DEFINE_MEMALIGN */ - -#ifdef DEFINE_VALLOC - -/* - valloc just invokes memalign with alignment argument equal - to the page size of the system (or as near to this as can - be figured out from all the includes/defines above.) -*/ - -#if __STD_C -Void_t* vALLOc(RARG size_t bytes) -#else -Void_t* vALLOc(RARG bytes) RDECL size_t bytes; -#endif -{ - return mEMALIGn (RCALL malloc_getpagesize, bytes); -} - -#endif /* DEFINE_VALLOC */ - -#ifdef DEFINE_PVALLOC - -/* - pvalloc just invokes valloc for the nearest pagesize - that will accommodate request -*/ - - -#if __STD_C -Void_t* pvALLOc(RARG size_t bytes) -#else -Void_t* pvALLOc(RARG bytes) RDECL size_t bytes; -#endif -{ - size_t pagesize = malloc_getpagesize; - if (bytes > __SIZE_MAX__ - pagesize) - { - RERRNO = ENOMEM; - return 0; - } - return mEMALIGn (RCALL pagesize, (bytes + pagesize - 1) & ~(pagesize - 1)); -} - -#endif /* DEFINE_PVALLOC */ - -#ifdef DEFINE_CALLOC - -/* - - calloc calls malloc, then zeroes out the allocated chunk. - -*/ - -#if __STD_C -Void_t* cALLOc(RARG size_t n, size_t elem_size) -#else -Void_t* cALLOc(RARG n, elem_size) RDECL size_t n; size_t elem_size; -#endif -{ - mchunkptr p; - INTERNAL_SIZE_T csz; - - INTERNAL_SIZE_T sz; - -#if MORECORE_CLEARS - mchunkptr oldtop; - INTERNAL_SIZE_T oldtopsize; -#endif - Void_t* mem; - - if (__builtin_mul_overflow((INTERNAL_SIZE_T) n, (INTERNAL_SIZE_T) elem_size, &sz)) - { - errno = ENOMEM; - return 0; - } - - /* check if expand_top called, in which case don't need to clear */ -#if MORECORE_CLEARS - MALLOC_LOCK; - oldtop = top; - oldtopsize = chunksize(top); -#endif - - mem = mALLOc (RCALL sz); - - if (mem == 0) - { -#if MORECORE_CLEARS - MALLOC_UNLOCK; -#endif - return 0; - } - else - { - p = mem2chunk(mem); - - /* Two optional cases in which clearing not necessary */ - - -#if HAVE_MMAP - if (chunk_is_mmapped(p)) - { -#if MORECORE_CLEARS - MALLOC_UNLOCK; -#endif - return mem; - } -#endif - - csz = chunksize(p); - -#if MORECORE_CLEARS - if (p == oldtop && csz > oldtopsize) - { - /* clear only the bytes from non-freshly-sbrked memory */ - csz = oldtopsize; - } - MALLOC_UNLOCK; -#endif - - MALLOC_ZERO(mem, csz - SIZE_SZ); - return mem; - } -} - -#endif /* DEFINE_CALLOC */ - -#if defined(DEFINE_CFREE) && !defined(__CYGWIN__) - -/* - - cfree just calls free. It is needed/defined on some systems - that pair it with calloc, presumably for odd historical reasons. - -*/ - -#if !defined(INTERNAL_LINUX_C_LIB) || !defined(__ELF__) -#if !defined(_LIBC) || !defined(_REENT_ONLY) -#if __STD_C -void cfree(Void_t *mem) -#else -void cfree(mem) Void_t *mem; -#endif -{ -#ifdef _LIBC - fREe(_REENT, mem); -#else - fREe(mem); -#endif -} -#endif -#endif - -#endif /* DEFINE_CFREE */ - -#ifdef DEFINE_FREE - -/* - - Malloc_trim gives memory back to the system (via negative - arguments to sbrk) if there is unused memory at the `high' end of - the malloc pool. You can call this after freeing large blocks of - memory to potentially reduce the system-level memory requirements - of a program. However, it cannot guarantee to reduce memory. Under - some allocation patterns, some large free blocks of memory will be - locked between two used chunks, so they cannot be given back to - the system. - - The `pad' argument to malloc_trim represents the amount of free - trailing space to leave untrimmed. If this argument is zero, - only the minimum amount of memory to maintain internal data - structures will be left (one page or less). Non-zero arguments - can be supplied to maintain enough trailing space to service - future expected allocations without having to re-obtain memory - from the system. - - Malloc_trim returns 1 if it actually released any memory, else 0. - -*/ - -#if __STD_C -int malloc_trim(RARG size_t pad) -#else -int malloc_trim(RARG pad) RDECL size_t pad; -#endif -{ - long top_size; /* Amount of top-most memory */ - long extra; /* Amount to release */ - char* current_brk; /* address returned by pre-check sbrk call */ - char* new_brk; /* address returned by negative sbrk call */ - - unsigned long pagesz = malloc_getpagesize; - - MALLOC_LOCK; - - top_size = chunksize(top); - extra = ((top_size - pad - MINSIZE + (pagesz-1)) / pagesz - 1) * pagesz; - - if (extra < (long)pagesz) /* Not enough memory to release */ - { - MALLOC_UNLOCK; - return 0; - } - - else - { - /* Test to make sure no one else called sbrk */ - current_brk = (char*)(MORECORE (0)); - if (current_brk != (char*)(top) + top_size) - { - MALLOC_UNLOCK; - return 0; /* Apparently we don't own memory; must fail */ - } - - else - { - new_brk = (char*)(MORECORE (-extra)); - - if (new_brk == (char*)(MORECORE_FAILURE)) /* sbrk failed? */ - { - /* Try to figure out what we have */ - current_brk = (char*)(MORECORE (0)); - top_size = current_brk - (char*)top; - if (top_size >= (long)MINSIZE) /* if not, we are very very dead! */ - { - sbrked_mem = current_brk - sbrk_base; - set_head(top, top_size | PREV_INUSE); - } - check_chunk(top); - MALLOC_UNLOCK; - return 0; - } - - else - { - /* Success. Adjust top accordingly. */ - set_head(top, (top_size - extra) | PREV_INUSE); - sbrked_mem -= extra; - check_chunk(top); - MALLOC_UNLOCK; - return 1; - } - } - } -} - -#endif /* DEFINE_FREE */ - -#ifdef DEFINE_MALLOC_USABLE_SIZE - -/* - malloc_usable_size: - - This routine tells you how many bytes you can actually use in an - allocated chunk, which may be more than you requested (although - often not). You can use this many bytes without worrying about - overwriting other allocated objects. Not a particularly great - programming practice, but still sometimes useful. - -*/ - -#if __STD_C -size_t malloc_usable_size(RARG Void_t* mem) -#else -size_t malloc_usable_size(RARG mem) RDECL Void_t* mem; -#endif -{ - mchunkptr p; - if (mem == 0) - return 0; - else - { - p = mem2chunk(mem); - if(!chunk_is_mmapped(p)) - { - if (!inuse(p)) return 0; -#if DEBUG - MALLOC_LOCK; - check_inuse_chunk(p); - MALLOC_UNLOCK; -#endif - return chunksize(p) - SIZE_SZ; - } - return chunksize(p) - 2*SIZE_SZ; - } -} - -#endif /* DEFINE_MALLOC_USABLE_SIZE */ - -#ifdef DEFINE_MALLINFO - -/* Utility to update current_mallinfo for malloc_stats and mallinfo() */ - -STATIC void malloc_update_mallinfo() -{ - int i; - mbinptr b; - mchunkptr p; -#if DEBUG - mchunkptr q; -#endif - - INTERNAL_SIZE_T avail = chunksize(top); - int navail = ((long)(avail) >= (long)MINSIZE)? 1 : 0; - - for (i = 1; i < NAV; ++i) - { - b = bin_at(i); - for (p = last(b); p != b; p = p->bk) - { -#if DEBUG - check_free_chunk(p); - for (q = next_chunk(p); - q < top && inuse(q) && (long)(chunksize(q)) >= (long)MINSIZE; - q = next_chunk(q)) - check_inuse_chunk(q); -#endif - avail += chunksize(p); - navail++; - } - } - - current_mallinfo.ordblks = navail; - current_mallinfo.uordblks = sbrked_mem - avail; - current_mallinfo.fordblks = avail; -#if HAVE_MMAP - current_mallinfo.hblks = n_mmaps; - current_mallinfo.hblkhd = mmapped_mem; -#endif - current_mallinfo.keepcost = chunksize(top); - -} - -#else /* ! DEFINE_MALLINFO */ - -#if __STD_C -extern void malloc_update_mallinfo(void); -#else -extern void malloc_update_mallinfo(); -#endif - -#endif /* ! DEFINE_MALLINFO */ - -#ifdef DEFINE_MALLOC_STATS - -/* - - malloc_stats: - - Prints on stderr the amount of space obtain from the system (both - via sbrk and mmap), the maximum amount (which may be more than - current if malloc_trim and/or munmap got called), the maximum - number of simultaneous mmap regions used, and the current number - of bytes allocated via malloc (or realloc, etc) but not yet - freed. (Note that this is the number of bytes allocated, not the - number requested. It will be larger than the number requested - because of alignment and bookkeeping overhead.) - -*/ - -#if __STD_C -void malloc_stats(RONEARG) -#else -void malloc_stats(RONEARG) RDECL -#endif -{ - unsigned long local_max_total_mem; - int local_sbrked_mem; - struct mallinfo local_mallinfo; -#if HAVE_MMAP - unsigned long local_mmapped_mem, local_max_n_mmaps; -#endif - FILE *fp; - - MALLOC_LOCK; - malloc_update_mallinfo(); - local_max_total_mem = max_total_mem; - local_sbrked_mem = sbrked_mem; - local_mallinfo = current_mallinfo; -#if HAVE_MMAP - local_mmapped_mem = mmapped_mem; - local_max_n_mmaps = max_n_mmaps; -#endif - MALLOC_UNLOCK; - -#ifdef _LIBC - _REENT_SMALL_CHECK_INIT(reent_ptr); - fp = _stderr_r(reent_ptr); -#define fprintf fiprintf -#else - fp = stderr; -#endif - - fprintf(fp, "max system bytes = %10u\n", - (unsigned int)(local_max_total_mem)); -#if HAVE_MMAP - fprintf(fp, "system bytes = %10u\n", - (unsigned int)(local_sbrked_mem + local_mmapped_mem)); - fprintf(fp, "in use bytes = %10u\n", - (unsigned int)(local_mallinfo.uordblks + local_mmapped_mem)); -#else - fprintf(fp, "system bytes = %10u\n", - (unsigned int)local_sbrked_mem); - fprintf(fp, "in use bytes = %10u\n", - (unsigned int)local_mallinfo.uordblks); -#endif -#if HAVE_MMAP - fprintf(fp, "max mmap regions = %10u\n", - (unsigned int)local_max_n_mmaps); -#endif -} - -#endif /* DEFINE_MALLOC_STATS */ - -#ifdef DEFINE_MALLINFO - -/* - mallinfo returns a copy of updated current mallinfo. -*/ - -#if __STD_C -struct mallinfo mALLINFo(RONEARG) -#else -struct mallinfo mALLINFo(RONEARG) RDECL -#endif -{ - struct mallinfo ret; - - MALLOC_LOCK; - malloc_update_mallinfo(); - ret = current_mallinfo; - MALLOC_UNLOCK; - return ret; -} - -#endif /* DEFINE_MALLINFO */ - -#ifdef DEFINE_MALLOPT - -/* - mallopt: - - mallopt is the general SVID/XPG interface to tunable parameters. - The format is to provide a (parameter-number, parameter-value) pair. - mallopt then sets the corresponding parameter to the argument - value if it can (i.e., so long as the value is meaningful), - and returns 1 if successful else 0. - - See descriptions of tunable parameters above. - -*/ - -#if __STD_C -int mALLOPt(RARG int param_number, int value) -#else -int mALLOPt(RARG param_number, value) RDECL int param_number; int value; -#endif -{ - MALLOC_LOCK; - switch(param_number) - { - case M_TRIM_THRESHOLD: - trim_threshold = value; MALLOC_UNLOCK; return 1; - case M_TOP_PAD: - top_pad = value; MALLOC_UNLOCK; return 1; - case M_MMAP_THRESHOLD: -#if HAVE_MMAP - mmap_threshold = value; -#endif - MALLOC_UNLOCK; - return 1; - case M_MMAP_MAX: -#if HAVE_MMAP - n_mmaps_max = value; MALLOC_UNLOCK; return 1; -#else - MALLOC_UNLOCK; return value == 0; -#endif - - default: - MALLOC_UNLOCK; - return 0; - } -} - -#endif /* DEFINE_MALLOPT */ - -/* - -History: - - V2.6.5 Wed Jun 17 15:57:31 1998 Doug Lea (dl at gee) - * Fixed ordering problem with boundary-stamping - - V2.6.3 Sun May 19 08:17:58 1996 Doug Lea (dl at gee) - * Added pvalloc, as recommended by H.J. Liu - * Added 64bit pointer support mainly from Wolfram Gloger - * Added anonymously donated WIN32 sbrk emulation - * Malloc, calloc, getpagesize: add optimizations from Raymond Nijssen - * malloc_extend_top: fix mask error that caused wastage after - foreign sbrks - * Add linux mremap support code from HJ Liu - - V2.6.2 Tue Dec 5 06:52:55 1995 Doug Lea (dl at gee) - * Integrated most documentation with the code. - * Add support for mmap, with help from - Wolfram Gloger (Gloger@lrz.uni-muenchen.de). - * Use last_remainder in more cases. - * Pack bins using idea from colin@nyx10.cs.du.edu - * Use ordered bins instead of best-fit threshhold - * Eliminate block-local decls to simplify tracing and debugging. - * Support another case of realloc via move into top - * Fix error occuring when initial sbrk_base not word-aligned. - * Rely on page size for units instead of SBRK_UNIT to - avoid surprises about sbrk alignment conventions. - * Add mallinfo, mallopt. Thanks to Raymond Nijssen - (raymond@es.ele.tue.nl) for the suggestion. - * Add `pad' argument to malloc_trim and top_pad mallopt parameter. - * More precautions for cases where other routines call sbrk, - courtesy of Wolfram Gloger (Gloger@lrz.uni-muenchen.de). - * Added macros etc., allowing use in linux libc from - H.J. Lu (hjl@gnu.ai.mit.edu) - * Inverted this history list - - V2.6.1 Sat Dec 2 14:10:57 1995 Doug Lea (dl at gee) - * Re-tuned and fixed to behave more nicely with V2.6.0 changes. - * Removed all preallocation code since under current scheme - the work required to undo bad preallocations exceeds - the work saved in good cases for most test programs. - * No longer use return list or unconsolidated bins since - no scheme using them consistently outperforms those that don't - given above changes. - * Use best fit for very large chunks to prevent some worst-cases. - * Added some support for debugging - - V2.6.0 Sat Nov 4 07:05:23 1995 Doug Lea (dl at gee) - * Removed footers when chunks are in use. Thanks to - Paul Wilson (wilson@cs.texas.edu) for the suggestion. - - V2.5.4 Wed Nov 1 07:54:51 1995 Doug Lea (dl at gee) - * Added malloc_trim, with help from Wolfram Gloger - (wmglo@Dent.MED.Uni-Muenchen.DE). - - V2.5.3 Tue Apr 26 10:16:01 1994 Doug Lea (dl at g) - - V2.5.2 Tue Apr 5 16:20:40 1994 Doug Lea (dl at g) - * realloc: try to expand in both directions - * malloc: swap order of clean-bin strategy; - * realloc: only conditionally expand backwards - * Try not to scavenge used bins - * Use bin counts as a guide to preallocation - * Occasionally bin return list chunks in first scan - * Add a few optimizations from colin@nyx10.cs.du.edu - - V2.5.1 Sat Aug 14 15:40:43 1993 Doug Lea (dl at g) - * faster bin computation & slightly different binning - * merged all consolidations to one part of malloc proper - (eliminating old malloc_find_space & malloc_clean_bin) - * Scan 2 returns chunks (not just 1) - * Propagate failure in realloc if malloc returns 0 - * Add stuff to allow compilation on non-ANSI compilers - from kpv@research.att.com - - V2.5 Sat Aug 7 07:41:59 1993 Doug Lea (dl at g.oswego.edu) - * removed potential for odd address access in prev_chunk - * removed dependency on getpagesize.h - * misc cosmetics and a bit more internal documentation - * anticosmetics: mangled names in macros to evade debugger strangeness - * tested on sparc, hp-700, dec-mips, rs6000 - with gcc & native cc (hp, dec only) allowing - Detlefs & Zorn comparison study (in SIGPLAN Notices.) - - Trial version Fri Aug 28 13:14:29 1992 Doug Lea (dl at g.oswego.edu) - * Based loosely on libg++-1.2X malloc. (It retains some of the overall - structure of old version, but most details differ.) - -*/ -#endif diff --git a/lib/stdlib/a64l.c b/lib/stdlib/a64l.c deleted file mode 100644 index dcac2e0..0000000 --- a/lib/stdlib/a64l.c +++ /dev/null @@ -1,188 +0,0 @@ -/* -FUNCTION -<>, <>---convert between radix-64 ASCII string and long - -INDEX - a64l -INDEX - l64a - -SYNOPSIS - #include - long a64l(const char *<[input]>); - char *l64a(long <[input]>); - -DESCRIPTION -Conversion is performed between long and radix-64 characters. The -<> routine transforms up to 32 bits of input value starting from -least significant bits to the most significant bits. The input value -is split up into a maximum of 5 groups of 6 bits and possibly one -group of 2 bits (bits 31 and 30). - -Each group of 6 bits forms a value from 0--63 which is translated into -a character as follows: - -O+ -o 0 = '.' -o 1 = '/' -o 2--11 = '0' to '9' -o 12--37 = 'A' to 'Z' -o 38--63 = 'a' to 'z' -O- - -When the remaining bits are zero or all bits have been translated, a -null terminator is appended to the string. An input value of 0 -results in the empty string. - -The <> function performs the reverse translation. Each -character is used to generate a 6-bit value for up to 30 bits and then -a 2-bit value to complete a 32-bit result. The null terminator means -that the remaining digits are 0. An empty input string or NULL string -results in 0L. An invalid string results in undefined behavior. If -the size of a long is greater than 32 bits, the result is sign-extended. - -RETURNS -<> returns a null-terminated string of 0 to 6 characters. -<> returns the 32-bit translated value from the input character string. - -PORTABILITY -<> and <> are non-ANSI and are defined by the Single Unix Specification. - -Supporting OS subroutines required: None. -*/ - -#include <_ansi.h> -#include -#include - -long -a64l (const char *input) -{ - const char *ptr; - char ch; - int i, digit; - unsigned long result = 0; - - if (input == NULL) - return 0; - - ptr = input; - - /* it easiest to go from most significant digit to least so find end of input or up - to 6 characters worth */ - for (i = 0; i < 6; ++i) - { - if (*ptr) - ++ptr; - } - - while (ptr > input) - { - ch = *(--ptr); - -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - if (ch >= 'a') - digit = (ch - 'a') + 38; - else if (ch >= 'A') - digit = (ch - 'A') + 12; - else if (ch >= '0') - digit = (ch - '0') + 2; - else if (ch == '/') - digit = 1; - else - digit = 0; -#else /* !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) */ - switch (ch) - { - case '/': - digit = 1; - break; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - digit = (ch - '0') + 2; - break; - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - 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': - digit = (ch - 'A') + 12; - break; - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - 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': - digit = (ch - 'a') + 38; - break; - default: - digit = 0; - break; - } -#endif /* !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) */ - - result = (result << 6) + digit; - } - -#if LONG_MAX > 2147483647 - /* for implementations where long is > 32 bits, the result must be sign-extended */ - if (result & 0x80000000) - return (((long)-1 >> 32) << 32) + result; -#endif - - return result; -} - - - - diff --git a/lib/stdlib/abort.c b/lib/stdlib/abort.c deleted file mode 100644 index 065dee5..0000000 --- a/lib/stdlib/abort.c +++ /dev/null @@ -1,63 +0,0 @@ -/* NetWare can not use this implementation of abort. It provides its - own version of abort in clib.nlm. If we can not use clib.nlm, then - we must write abort in sys/netware. */ - -#ifdef ABORT_PROVIDED - -int _dummy_abort = 1; - -#else - -/* -FUNCTION -<>---abnormal termination of a program - -INDEX - abort - -SYNOPSIS - #include - void abort(void); - -DESCRIPTION -Use <> to signal that your program has detected a condition it -cannot deal with. Normally, <> ends your program's execution. - -Before terminating your program, <> raises the exception <> -(using `<>'). If you have used <> to register -an exception handler for this condition, that handler has the -opportunity to retain control, thereby avoiding program termination. - -In this implementation, <> does not perform any stream- or -file-related cleanup (the host environment may do so; if not, you can -arrange for your program to do its own cleanup with a <> -exception handler). - -RETURNS -<> does not return to its caller. - -PORTABILITY -ANSI C requires <>. - -Supporting OS subroutines required: <<_exit>> and optionally, <>. -*/ - -#include -#include -#include - -void -abort (void) -{ -#ifdef ABORT_MESSAGE - write (2, "Abort called\n", sizeof ("Abort called\n")-1); -#endif - - while (1) - { - raise (SIGABRT); - _exit (1); - } -} - -#endif diff --git a/lib/stdlib/abs.c b/lib/stdlib/abs.c deleted file mode 100644 index 85a3fec..0000000 --- a/lib/stdlib/abs.c +++ /dev/null @@ -1,38 +0,0 @@ -/* -FUNCTION -<>---integer absolute value (magnitude) - -INDEX - abs - -SYNOPSIS - #include - int abs(int <[i]>); - -DESCRIPTION -<> returns -@tex -$|x|$, -@end tex -the absolute value of <[i]> (also called the magnitude -of <[i]>). That is, if <[i]> is negative, the result is the opposite -of <[i]>, but if <[i]> is nonnegative the result is <[i]>. - -The similar function <> uses and returns <> rather than <> values. - -RETURNS -The result is a nonnegative integer. - -PORTABILITY -<> is ANSI. - -No supporting OS subroutines are required. -*/ - -#include - -int -abs (int i) -{ - return (i < 0) ? -i : i; -} diff --git a/lib/stdlib/aligned_alloc.c b/lib/stdlib/aligned_alloc.c deleted file mode 100644 index 06b3883..0000000 --- a/lib/stdlib/aligned_alloc.c +++ /dev/null @@ -1,37 +0,0 @@ -/* C11 aligned_alloc - Copyright (c) 2020 Arm Ltd. All rights reserved. - - SPDX-License-Identifier: BSD-3-Clause - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. The name of the company may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#include -#include -#include - -void * -aligned_alloc (size_t align, size_t size) -{ - return _memalign_r (_REENT, align, size); -} diff --git a/lib/stdlib/arc4random.c b/lib/stdlib/arc4random.c deleted file mode 100644 index 09a134c..0000000 --- a/lib/stdlib/arc4random.c +++ /dev/null @@ -1,218 +0,0 @@ -/* $OpenBSD: arc4random.c,v 1.58 2022/07/31 13:41:45 tb Exp $ */ - -/* - * Copyright (c) 1996, David Mazieres - * Copyright (c) 2008, Damien Miller - * Copyright (c) 2013, Markus Friedl - * Copyright (c) 2014, Theo de Raadt - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * ChaCha based random number generator for OpenBSD. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define KEYSTREAM_ONLY -#include "chacha_private.h" - -#define minimum(a, b) ((a) < (b) ? (a) : (b)) - -#if defined(__GNUC__) || defined(_MSC_VER) -#define inline __inline -#else /* __GNUC__ || _MSC_VER */ -#define inline -#endif /* !__GNUC__ && !_MSC_VER */ - -#define KEYSZ 32 -#define IVSZ 8 -#define BLOCKSZ 64 -#define RSBUFSZ (16*BLOCKSZ) - -#if SIZE_MAX <= 65535 -#define REKEY_BASE ( 32*1024) /* NB. should be a power of 2 */ -#elif SIZE_MAX <= 1048575 -#define REKEY_BASE ( 512*1024) /* NB. should be a power of 2 */ -#else -#define REKEY_BASE (1024*1024) /* NB. should be a power of 2 */ -#endif - -/* Marked MAP_INHERIT_ZERO, so zero'd out in fork children. */ -static struct _rs { - size_t rs_have; /* valid bytes at end of rs_buf */ - size_t rs_count; /* bytes till reseed */ -} *rs; - -/* Maybe be preserved in fork children, if _rs_allocate() decides. */ -static struct _rsx { - chacha_ctx rs_chacha; /* chacha context for random keystream */ - u_char rs_buf[RSBUFSZ]; /* keystream blocks */ -} *rsx; - -static inline int _rs_allocate(struct _rs **, struct _rsx **); -static inline void _rs_forkdetect(void); -#include "arc4random.h" - -static inline void _rs_rekey(u_char *dat, size_t datlen); - -static inline void -_rs_init(u_char *buf, size_t n) -{ - if (n < KEYSZ + IVSZ) - return; - - if (rs == NULL) { - if (_rs_allocate(&rs, &rsx) == -1) - _exit(1); - } - - chacha_keysetup(&rsx->rs_chacha, buf, KEYSZ * 8); - chacha_ivsetup(&rsx->rs_chacha, buf + KEYSZ); -} - -static void -_rs_stir(void) -{ - u_char rnd[KEYSZ + IVSZ]; - uint32_t rekey_fuzz = 0; - - memset(rnd, 0, (KEYSZ + IVSZ) * sizeof(u_char)); - - if (getentropy(rnd, sizeof rnd) == -1) - _getentropy_fail(); - - if (!rs) - _rs_init(rnd, sizeof(rnd)); - else - _rs_rekey(rnd, sizeof(rnd)); - explicit_bzero(rnd, sizeof(rnd)); /* discard source seed */ - - /* invalidate rs_buf */ - rs->rs_have = 0; - memset(rsx->rs_buf, 0, sizeof(rsx->rs_buf)); - - /* rekey interval should not be predictable */ - chacha_encrypt_bytes(&rsx->rs_chacha, (uint8_t *)&rekey_fuzz, - (uint8_t *)&rekey_fuzz, sizeof(rekey_fuzz)); - rs->rs_count = REKEY_BASE + (rekey_fuzz % REKEY_BASE); -} - -static inline void -_rs_stir_if_needed(size_t len) -{ - _rs_forkdetect(); - if (!rs || rs->rs_count <= len) - _rs_stir(); - if (rs->rs_count <= len) - rs->rs_count = 0; - else - rs->rs_count -= len; -} - -static inline void -_rs_rekey(u_char *dat, size_t datlen) -{ -#ifndef KEYSTREAM_ONLY - memset(rsx->rs_buf, 0, sizeof(rsx->rs_buf)); -#endif - /* fill rs_buf with the keystream */ - chacha_encrypt_bytes(&rsx->rs_chacha, rsx->rs_buf, - rsx->rs_buf, sizeof(rsx->rs_buf)); - /* mix in optional user provided data */ - if (dat) { - size_t i, m; - - m = minimum(datlen, KEYSZ + IVSZ); - for (i = 0; i < m; i++) - rsx->rs_buf[i] ^= dat[i]; - } - /* immediately reinit for backtracking resistance */ - _rs_init(rsx->rs_buf, KEYSZ + IVSZ); - memset(rsx->rs_buf, 0, KEYSZ + IVSZ); - rs->rs_have = sizeof(rsx->rs_buf) - KEYSZ - IVSZ; -} - -static inline void -_rs_random_buf(void *_buf, size_t n) -{ - u_char *buf = (u_char *)_buf; - u_char *keystream; - size_t m; - - _rs_stir_if_needed(n); - while (n > 0) { - if (rs->rs_have > 0) { - m = minimum(n, rs->rs_have); - keystream = rsx->rs_buf + sizeof(rsx->rs_buf) - - rs->rs_have; - memcpy(buf, keystream, m); - memset(keystream, 0, m); - buf += m; - n -= m; - rs->rs_have -= m; - } - if (rs->rs_have == 0) - _rs_rekey(NULL, 0); - } -} - -static inline void -_rs_random_u32(uint32_t *val) -{ - u_char *keystream; - - _rs_stir_if_needed(sizeof(*val)); - if (rs->rs_have < sizeof(*val)) - _rs_rekey(NULL, 0); - keystream = rsx->rs_buf + sizeof(rsx->rs_buf) - rs->rs_have; - memcpy(val, keystream, sizeof(*val)); - memset(keystream, 0, sizeof(*val)); - rs->rs_have -= sizeof(*val); -} - -uint32_t -arc4random(void) -{ - uint32_t val; - -#ifndef __SINGLE_THREAD__ - _ARC4_LOCK(); -#endif - _rs_random_u32(&val); -#ifndef __SINGLE_THREAD__ - _ARC4_UNLOCK(); -#endif - return val; -} - -void -arc4random_buf(void *buf, size_t n) -{ -#ifndef __SINGLE_THREAD__ - _ARC4_LOCK(); -#endif - _rs_random_buf(buf, n); -#ifndef __SINGLE_THREAD__ - _ARC4_UNLOCK(); -#endif -} diff --git a/lib/stdlib/arc4random.h b/lib/stdlib/arc4random.h deleted file mode 100644 index 4b98553..0000000 --- a/lib/stdlib/arc4random.h +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * Copyright (c) 2016 embedded brains GmbH - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * Newlib ports may override the default implementations via the following - * define and macros - * o _ARC4RANDOM_DATA, - * o _ARC4RANDOM_GETENTROPY_FAIL(), - * o _ARC4RANDOM_ALLOCATE(rsp, rspx), and - * o _ARC4RANDOM_FORKDETECT(). - */ -#include - -#include -#include - -#ifndef _ARC4_LOCK_INIT - -#define _ARC4_LOCK_INIT __LOCK_INIT(static, __arc4random_mutex); - -#define _ARC4_LOCK() __lock_acquire(__arc4random_mutex) - -#define _ARC4_UNLOCK() __lock_release(__arc4random_mutex) - -#endif /* _ARC4_LOCK_INIT */ - -#ifndef __SINGLE_THREAD__ -_ARC4_LOCK_INIT -#endif - -#ifdef _ARC4RANDOM_DATA -_ARC4RANDOM_DATA -#else -static struct { - struct _rs rs; - struct _rsx rsx; -} _arc4random_data; -#endif - -static inline void -_getentropy_fail(void) -{ -#ifdef _ARC4RANDOM_GETENTROPY_FAIL - _ARC4RANDOM_GETENTROPY_FAIL(); -#else - raise(SIGKILL); -#endif -} - -static inline int -_rs_allocate(struct _rs **rsp, struct _rsx **rsxp) -{ -#ifdef _ARC4RANDOM_ALLOCATE - _ARC4RANDOM_ALLOCATE(rsp, rsxp); -#else - *rsp = &_arc4random_data.rs; - *rsxp = &_arc4random_data.rsx; - return (0); -#endif -} - -static inline void -_rs_forkdetect(void) -{ -#ifdef _ARC4RANDOM_FORKDETECT - _ARC4RANDOM_FORKDETECT(); -#endif -} diff --git a/lib/stdlib/arc4random_uniform.c b/lib/stdlib/arc4random_uniform.c deleted file mode 100644 index 2d22434..0000000 --- a/lib/stdlib/arc4random_uniform.c +++ /dev/null @@ -1,56 +0,0 @@ -/* $OpenBSD: arc4random_uniform.c,v 1.2 2015/09/13 08:31:47 guenther Exp $ */ - -/* - * Copyright (c) 2008, Damien Miller - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include -#include - -/* - * Calculate a uniformly distributed random number less than upper_bound - * avoiding "modulo bias". - * - * Uniformity is achieved by generating new random numbers until the one - * returned is outside the range [0, 2**32 % upper_bound). This - * guarantees the selected random number will be inside - * [2**32 % upper_bound, 2**32) which maps back to [0, upper_bound) - * after reduction modulo upper_bound. - */ -uint32_t -arc4random_uniform(uint32_t upper_bound) -{ - uint32_t r, min; - - if (upper_bound < 2) - return 0; - - /* 2**32 % x == (2**32 - x) % x */ - min = -upper_bound % upper_bound; - - /* - * This could theoretically loop forever but each retry has - * p > 0.5 (worst case, usually far better) of selecting a - * number inside the range we need, so it should rarely need - * to re-roll. - */ - for (;;) { - r = arc4random(); - if (r >= min) - break; - } - - return r % upper_bound; -} diff --git a/lib/stdlib/assert.c b/lib/stdlib/assert.c deleted file mode 100644 index 46ac92b..0000000 --- a/lib/stdlib/assert.c +++ /dev/null @@ -1,74 +0,0 @@ -/* -FUNCTION -<>---macro for debugging diagnostics - -INDEX - assert - -SYNOPSIS - #include - void assert(int <[expression]>); - -DESCRIPTION - Use this macro to embed debuggging diagnostic statements in - your programs. The argument <[expression]> should be an - expression which evaluates to true (nonzero) when your program - is working as you intended. - - When <[expression]> evaluates to false (zero), <> - calls <>, after first printing a message showing what - failed and where: - -. Assertion failed: <[expression]>, file <[filename]>, line <[lineno]>, function: <[func]> - - If the name of the current function is not known (for example, - when using a C89 compiler that does not understand __func__), - the function location is omitted. - - The macro is defined to permit you to turn off all uses of - <> at compile time by defining <> as a - preprocessor variable. If you do this, the <> macro - expands to - -. (void(0)) - -RETURNS - <> does not return a value. - -PORTABILITY - The <> macro is required by ANSI, as is the behavior - when <> is defined. - -Supporting OS subroutines required (only if enabled): <>, <>, -<>, <>, <>, <>, <>, <>, <>. -*/ - -#include -#include -#include - -#ifndef HAVE_ASSERT_FUNC -/* func can be NULL, in which case no function information is given. */ -void -__assert_func (const char *file, - int line, - const char *func, - const char *failedexpr) -{ - fiprintf(stderr, - "assertion \"%s\" failed: file \"%s\", line %d%s%s\n", - failedexpr, file, line, - func ? ", function: " : "", func ? func : ""); - abort(); - /* NOTREACHED */ -} -#endif /* HAVE_ASSERT_FUNC */ - -void -__assert (const char *file, - int line, - const char *failedexpr) -{ - __assert_func (file, line, NULL, failedexpr); - /* NOTREACHED */ -} diff --git a/lib/stdlib/atexit.c b/lib/stdlib/atexit.c deleted file mode 100644 index 63617f8..0000000 --- a/lib/stdlib/atexit.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 1990 Regents of the University of California. - * All rights reserved. - * - * %sccs.include.redist.c% - */ - -/* -FUNCTION -<>---request execution of functions at program exit - -INDEX - atexit - -SYNOPSIS - #include - int atexit (void (*<[function]>)(void)); - -DESCRIPTION -You can use <> to enroll functions in a list of functions that -will be called when your program terminates normally. The argument is -a pointer to a user-defined function (which must not require arguments and -must not return a result). - -The functions are kept in a LIFO stack; that is, the last function -enrolled by <> will be the first to execute when your program -exits. - -There is no built-in limit to the number of functions you can enroll -in this list; however, after every group of 32 functions is enrolled, -<> will call <> to get space for the next part of the -list. The initial list of 32 functions is statically allocated, so -you can always count on at least that many slots available. - -RETURNS -<> returns <<0>> if it succeeds in enrolling your function, -<<-1>> if it fails (possible only if no space was available for -<> to extend the list of functions). - -PORTABILITY -<> is required by the ANSI standard, which also specifies that -implementations must support enrolling at least 32 functions. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include -#include "atexit.h" - -/* - * Register a function to be performed at exit. - */ - -int -atexit (void (*fn) (void)) -{ - return __register_exitproc (__et_atexit, fn, NULL, NULL); -} diff --git a/lib/stdlib/atexit.h b/lib/stdlib/atexit.h deleted file mode 100644 index df99963..0000000 --- a/lib/stdlib/atexit.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Common definitions for atexit-like routines - */ - -enum __atexit_types -{ - __et_atexit, - __et_onexit, - __et_cxa -}; - -void __call_exitprocs (int, void *); -int __register_exitproc (int, void (*fn) (void), void *, void *); - diff --git a/lib/stdlib/atof.c b/lib/stdlib/atof.c deleted file mode 100644 index 17ba0fa..0000000 --- a/lib/stdlib/atof.c +++ /dev/null @@ -1,63 +0,0 @@ -/* -FUNCTION - <>, <>---string to double or float - -INDEX - atof -INDEX - atoff - -SYNOPSIS - #include - double atof(const char *<[s]>); - float atoff(const char *<[s]>); - -DESCRIPTION -<> converts the initial portion of a string to a <>. -<> converts the initial portion of a string to a <>. - -The functions parse the character string <[s]>, -locating a substring which can be converted to a floating-point -value. The substring must match the format: -. [+|-]<[digits]>[.][<[digits]>][(e|E)[+|-]<[digits]>] -The substring converted is the longest initial -fragment of <[s]> that has the expected format, beginning with -the first non-whitespace character. The substring -is empty if <> is empty, consists entirely -of whitespace, or if the first non-whitespace character is -something other than <<+>>, <<->>, <<.>>, or a digit. - -<)>> is implemented as <, NULL)>>. -<)>> is implemented as <, NULL)>>. - -RETURNS -<> returns the converted substring value, if any, as a -<>; or <<0.0>>, if no conversion could be performed. -If the correct value is out of the range of representable values, plus -or minus <> is returned, and <> is stored in -<>. -If the correct value would cause underflow, <<0.0>> is returned -and <> is stored in <>. - -<> obeys the same rules as <>, except that it -returns a <>. - -PORTABILITY -<> is ANSI C. <>, <>, and <> are subsumed by <> -and <>, but are used extensively in existing code. These functions are -less reliable, but may be faster if the argument is verified to be in a valid -range. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - - -#include -#include <_ansi.h> - -double -atof (const char *s) -{ - return strtod (s, NULL); -} diff --git a/lib/stdlib/atoff.c b/lib/stdlib/atoff.c deleted file mode 100644 index e25ff29..0000000 --- a/lib/stdlib/atoff.c +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include <_ansi.h> - -float -atoff (const char *s) -{ - return strtof (s, NULL); -} diff --git a/lib/stdlib/atoi.c b/lib/stdlib/atoi.c deleted file mode 100644 index 4da53e8..0000000 --- a/lib/stdlib/atoi.c +++ /dev/null @@ -1,62 +0,0 @@ -/* -FUNCTION - <>, <>---string to integer - -INDEX - atoi -INDEX - atol -INDEX - _atoi_r -INDEX - _atol_r - -SYNOPSIS - #include - int atoi(const char *<[s]>); - long atol(const char *<[s]>); - int _atoi_r(struct _reent *<[ptr]>, const char *<[s]>); - long _atol_r(struct _reent *<[ptr]>, const char *<[s]>); - -DESCRIPTION - <> converts the initial portion of a string to an <>. - <> converts the initial portion of a string to a <>. - - <> is implemented as <<(int)strtol(s, NULL, 10).>> - <> is implemented as <> - - <<_atoi_r>> and <<_atol_r>> are reentrant versions of <> and - <> respectively, passing the reentrancy struct pointer. - -RETURNS - The functions return the converted value, if any. If no conversion was - made, <<0>> is returned. - -PORTABILITY -<>, <> are ANSI. - -No supporting OS subroutines are required. -*/ - -/* - * Andy Wilson, 2-Oct-89. - */ - -#include -#include <_ansi.h> - -#ifndef _REENT_ONLY -int -atoi (const char *s) -{ - return (int) strtol (s, NULL, 10); -} -#endif /* !_REENT_ONLY */ - -int -_atoi_r (struct _reent *ptr, - const char *s) -{ - return (int) _strtol_r (ptr, s, NULL, 10); -} - diff --git a/lib/stdlib/atol.c b/lib/stdlib/atol.c deleted file mode 100644 index a5c8ee9..0000000 --- a/lib/stdlib/atol.c +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Andy Wilson, 2-Oct-89. - */ - -#include -#include <_ansi.h> - -#ifndef _REENT_ONLY -long -atol (const char *s) -{ - return strtol (s, NULL, 10); -} -#endif /* !_REENT_ONLY */ - -long -_atol_r (struct _reent *ptr, const char *s) -{ - return _strtol_r (ptr, s, NULL, 10); -} - diff --git a/lib/stdlib/atoll.c b/lib/stdlib/atoll.c deleted file mode 100644 index 11edeae..0000000 --- a/lib/stdlib/atoll.c +++ /dev/null @@ -1,79 +0,0 @@ -/* -FUNCTION -<>---convert a string to a long long integer - -INDEX - atoll -INDEX - _atoll_r - -SYNOPSIS - #include - long long atoll(const char *<[str]>); - long long _atoll_r(struct _reent *<[ptr]>, const char *<[str]>); - -DESCRIPTION -The function <> converts the initial portion of the string -pointed to by <<*<[str]>>> to a type <>. A call to -atoll(str) in this implementation is equivalent to -strtoll(str, (char **)NULL, 10) including behavior on error. - -The alternate function <<_atoll_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - - -RETURNS -The converted value. - -PORTABILITY -<> is ISO 9899 (C99) and POSIX 1003.1-2001 compatable. - -No supporting OS subroutines are required. -*/ - -/* - * Copyright (c) 1988, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#ifndef _REENT_ONLY -long long -atoll (const char *str) -{ - return strtoll(str, (char **)NULL, 10); -} -#endif /* !_REENT_ONLY */ - -long long -_atoll_r (struct _reent *ptr, - const char *str) -{ - return _strtoll_r(ptr, str, (char **)NULL, 10); -} diff --git a/lib/stdlib/btowc.c b/lib/stdlib/btowc.c deleted file mode 100644 index 7605ce6..0000000 --- a/lib/stdlib/btowc.c +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include -#include -#include -#include -#include "local.h" - -wint_t -btowc (int c) -{ - mbstate_t mbs; - int retval = 0; - wchar_t pwc; - unsigned char b; - - if (c == EOF) - return WEOF; - - b = (unsigned char)c; - - /* Put mbs in initial state. */ - memset (&mbs, '\0', sizeof (mbs)); - - _REENT_CHECK_MISC(_REENT); - - retval = __MBTOWC (_REENT, &pwc, (const char *) &b, 1, &mbs); - - if (retval != 0 && retval != 1) - return WEOF; - - return (wint_t)pwc; -} diff --git a/lib/stdlib/calloc.c b/lib/stdlib/calloc.c deleted file mode 100644 index 208e27e..0000000 --- a/lib/stdlib/calloc.c +++ /dev/null @@ -1,56 +0,0 @@ -#ifdef MALLOC_PROVIDED -int _dummy_calloc = 1; -#else -/* -FUNCTION -<>---allocate space for arrays - -INDEX - calloc - -INDEX - _calloc_r - -SYNOPSIS - #include - void *calloc(size_t <[n]>, size_t <[s]>); - void *_calloc_r(void *<[reent]>, size_t <[n]>, size_t <[s]>); - -DESCRIPTION -Use <> to request a block of memory sufficient to hold an -array of <[n]> elements, each of which has size <[s]>. - -The memory allocated by <> comes out of the same memory pool -used by <>, but the memory block is initialized to all zero -bytes. (To avoid the overhead of initializing the space, use -<> instead.) - -The alternate function <<_calloc_r>> is reentrant. -The extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -If successful, a pointer to the newly allocated space. - -If unsuccessful, <>. - -PORTABILITY -<> is ANSI. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include -#include - -#ifndef _REENT_ONLY - -void * -calloc (size_t n, - size_t size) -{ - return _calloc_r (_REENT, n, size); -} - -#endif -#endif /* MALLOC_PROVIDED */ diff --git a/lib/stdlib/callocr.c b/lib/stdlib/callocr.c deleted file mode 100644 index 80fee60..0000000 --- a/lib/stdlib/callocr.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_CALLOC -#include "_mallocr.c" diff --git a/lib/stdlib/cfreer.c b/lib/stdlib/cfreer.c deleted file mode 100644 index a644664..0000000 --- a/lib/stdlib/cfreer.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_CFREE -#include "_mallocr.c" diff --git a/lib/stdlib/chacha_private.h b/lib/stdlib/chacha_private.h deleted file mode 100644 index 2ecf10b..0000000 --- a/lib/stdlib/chacha_private.h +++ /dev/null @@ -1,221 +0,0 @@ -/* -chacha-merged.c version 20080118 -D. J. Bernstein -Public domain. -*/ - -/* $OpenBSD: chacha_private.h,v 1.3 2022/02/28 21:56:29 dtucker Exp $ */ - -#include - -typedef uint8_t u8; -typedef uint32_t u32; - -typedef struct -{ - u32 input[16]; /* could be compressed */ -} chacha_ctx; - -#define U8V(v) ((u8)(v)) -#define U32V(v) ((u32)(v)) - -#define ROTL32(v, n) \ - (U32V((v) << (n)) | ((v) >> (32 - (n)))) - -#define U8TO32_LITTLE(p) \ - (((u32)((p)[0]) ) | \ - ((u32)((p)[1]) << 8) | \ - ((u32)((p)[2]) << 16) | \ - ((u32)((p)[3]) << 24)) - -#define U32TO8_LITTLE(p, v) \ - do { \ - (p)[0] = U8V((v) ); \ - (p)[1] = U8V((v) >> 8); \ - (p)[2] = U8V((v) >> 16); \ - (p)[3] = U8V((v) >> 24); \ - } while (0) - -#define ROTATE(v,c) (ROTL32(v,c)) -#define XOR(v,w) ((v) ^ (w)) -#define PLUS(v,w) (U32V((v) + (w))) -#define PLUSONE(v) (PLUS((v),1)) - -#define QUARTERROUND(a,b,c,d) \ - a = PLUS(a,b); d = ROTATE(XOR(d,a),16); \ - c = PLUS(c,d); b = ROTATE(XOR(b,c),12); \ - a = PLUS(a,b); d = ROTATE(XOR(d,a), 8); \ - c = PLUS(c,d); b = ROTATE(XOR(b,c), 7); - -static const char sigma[16] = "expand 32-byte k"; -static const char tau[16] = "expand 16-byte k"; - -static void -chacha_keysetup(chacha_ctx *x,const u8 *k,u32 kbits) -{ - const char *constants; - - x->input[4] = U8TO32_LITTLE(k + 0); - x->input[5] = U8TO32_LITTLE(k + 4); - x->input[6] = U8TO32_LITTLE(k + 8); - x->input[7] = U8TO32_LITTLE(k + 12); - if (kbits == 256) { /* recommended */ - k += 16; - constants = sigma; - } else { /* kbits == 128 */ - constants = tau; - } - x->input[8] = U8TO32_LITTLE(k + 0); - x->input[9] = U8TO32_LITTLE(k + 4); - x->input[10] = U8TO32_LITTLE(k + 8); - x->input[11] = U8TO32_LITTLE(k + 12); - x->input[0] = U8TO32_LITTLE(constants + 0); - x->input[1] = U8TO32_LITTLE(constants + 4); - x->input[2] = U8TO32_LITTLE(constants + 8); - x->input[3] = U8TO32_LITTLE(constants + 12); -} - -static void -chacha_ivsetup(chacha_ctx *x,const u8 *iv) -{ - x->input[12] = 0; - x->input[13] = 0; - x->input[14] = U8TO32_LITTLE(iv + 0); - x->input[15] = U8TO32_LITTLE(iv + 4); -} - -static void -chacha_encrypt_bytes(chacha_ctx *x,const u8 *m,u8 *c,u32 bytes) -{ - u32 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15; - u32 j0, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14, j15; - u8 *ctarget = NULL; - u8 tmp[64]; - u_int i; - - if (!bytes) return; - - j0 = x->input[0]; - j1 = x->input[1]; - j2 = x->input[2]; - j3 = x->input[3]; - j4 = x->input[4]; - j5 = x->input[5]; - j6 = x->input[6]; - j7 = x->input[7]; - j8 = x->input[8]; - j9 = x->input[9]; - j10 = x->input[10]; - j11 = x->input[11]; - j12 = x->input[12]; - j13 = x->input[13]; - j14 = x->input[14]; - j15 = x->input[15]; - - for (;;) { - if (bytes < 64) { - for (i = 0;i < bytes;++i) tmp[i] = m[i]; - m = tmp; - ctarget = c; - c = tmp; - } - x0 = j0; - x1 = j1; - x2 = j2; - x3 = j3; - x4 = j4; - x5 = j5; - x6 = j6; - x7 = j7; - x8 = j8; - x9 = j9; - x10 = j10; - x11 = j11; - x12 = j12; - x13 = j13; - x14 = j14; - x15 = j15; - for (i = 20;i > 0;i -= 2) { - QUARTERROUND( x0, x4, x8,x12) - QUARTERROUND( x1, x5, x9,x13) - QUARTERROUND( x2, x6,x10,x14) - QUARTERROUND( x3, x7,x11,x15) - QUARTERROUND( x0, x5,x10,x15) - QUARTERROUND( x1, x6,x11,x12) - QUARTERROUND( x2, x7, x8,x13) - QUARTERROUND( x3, x4, x9,x14) - } - x0 = PLUS(x0,j0); - x1 = PLUS(x1,j1); - x2 = PLUS(x2,j2); - x3 = PLUS(x3,j3); - x4 = PLUS(x4,j4); - x5 = PLUS(x5,j5); - x6 = PLUS(x6,j6); - x7 = PLUS(x7,j7); - x8 = PLUS(x8,j8); - x9 = PLUS(x9,j9); - x10 = PLUS(x10,j10); - x11 = PLUS(x11,j11); - x12 = PLUS(x12,j12); - x13 = PLUS(x13,j13); - x14 = PLUS(x14,j14); - x15 = PLUS(x15,j15); - -#ifndef KEYSTREAM_ONLY - x0 = XOR(x0,U8TO32_LITTLE(m + 0)); - x1 = XOR(x1,U8TO32_LITTLE(m + 4)); - x2 = XOR(x2,U8TO32_LITTLE(m + 8)); - x3 = XOR(x3,U8TO32_LITTLE(m + 12)); - x4 = XOR(x4,U8TO32_LITTLE(m + 16)); - x5 = XOR(x5,U8TO32_LITTLE(m + 20)); - x6 = XOR(x6,U8TO32_LITTLE(m + 24)); - x7 = XOR(x7,U8TO32_LITTLE(m + 28)); - x8 = XOR(x8,U8TO32_LITTLE(m + 32)); - x9 = XOR(x9,U8TO32_LITTLE(m + 36)); - x10 = XOR(x10,U8TO32_LITTLE(m + 40)); - x11 = XOR(x11,U8TO32_LITTLE(m + 44)); - x12 = XOR(x12,U8TO32_LITTLE(m + 48)); - x13 = XOR(x13,U8TO32_LITTLE(m + 52)); - x14 = XOR(x14,U8TO32_LITTLE(m + 56)); - x15 = XOR(x15,U8TO32_LITTLE(m + 60)); -#endif - - j12 = PLUSONE(j12); - if (!j12) { - j13 = PLUSONE(j13); - /* stopping at 2^70 bytes per nonce is user's responsibility */ - } - - U32TO8_LITTLE(c + 0,x0); - U32TO8_LITTLE(c + 4,x1); - U32TO8_LITTLE(c + 8,x2); - U32TO8_LITTLE(c + 12,x3); - U32TO8_LITTLE(c + 16,x4); - U32TO8_LITTLE(c + 20,x5); - U32TO8_LITTLE(c + 24,x6); - U32TO8_LITTLE(c + 28,x7); - U32TO8_LITTLE(c + 32,x8); - U32TO8_LITTLE(c + 36,x9); - U32TO8_LITTLE(c + 40,x10); - U32TO8_LITTLE(c + 44,x11); - U32TO8_LITTLE(c + 48,x12); - U32TO8_LITTLE(c + 52,x13); - U32TO8_LITTLE(c + 56,x14); - U32TO8_LITTLE(c + 60,x15); - - if (bytes <= 64) { - if (bytes < 64) { - for (i = 0;i < bytes;++i) ctarget[i] = c[i]; - } - x->input[12] = j12; - x->input[13] = j13; - return; - } - bytes -= 64; - c += 64; -#ifndef KEYSTREAM_ONLY - m += 64; -#endif - } -} diff --git a/lib/stdlib/cxa_atexit.c b/lib/stdlib/cxa_atexit.c deleted file mode 100644 index ae2d21a..0000000 --- a/lib/stdlib/cxa_atexit.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Implementation of __cxa_atexit. - */ - -#include -#include -#include -#include -#include "atexit.h" - -#ifdef _REENT_SMALL - -#include "on_exit_args.h" - -/* force linking of static instance of _on_exit_args */ -const void * const __cxa_atexit_dummy = &__on_exit_args; - -#endif /* def _REENT_SMALL */ - -/* - * Register a function to be performed at exit or DSO unload. - */ - -int -__cxa_atexit (void (*fn) (void *), - void *arg, - void *d) -{ -#ifdef _LITE_EXIT - /* Refer to comments in __atexit.c for more details of lite exit. */ - int __register_exitproc (int, void (*fn) (void), void *, void *) - __attribute__ ((weak)); - - if (!__register_exitproc) - return 0; - else -#endif - return __register_exitproc (__et_cxa, (void (*)(void)) fn, arg, d); -} diff --git a/lib/stdlib/cxa_finalize.c b/lib/stdlib/cxa_finalize.c deleted file mode 100644 index 4675328..0000000 --- a/lib/stdlib/cxa_finalize.c +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Implementation if __cxa_finalize. - */ - - -#include -#include -#include "atexit.h" - -/* - * Call registered exit handlers. If D is null then all handlers are called, - * otherwise only the handlers from that DSO are called. - */ - -void -__cxa_finalize (void * d) -{ - __call_exitprocs (0, d); -} diff --git a/lib/stdlib/div.c b/lib/stdlib/div.c deleted file mode 100644 index 4868c6d..0000000 --- a/lib/stdlib/div.c +++ /dev/null @@ -1,122 +0,0 @@ -/* -FUNCTION -<

>---divide two integers - -INDEX - div - -SYNOPSIS - #include - div_t div(int <[n]>, int <[d]>); - -DESCRIPTION -Divide -@tex -$n/d$, -@end tex -@ifnottex -<[n]>/<[d]>, -@end ifnottex -returning quotient and remainder as two integers in a structure <>. - -RETURNS -The result is represented with the structure - -. typedef struct -. { -. int quot; -. int rem; -. } div_t; - -where the <> field represents the quotient, and <> the -remainder. For nonzero <[d]>, if `<<<[r]> = div(<[n]>,<[d]>);>>' then -<[n]> equals `<<<[r]>.rem + <[d]>*<[r]>.quot>>'. - -To divide <> rather than <> values, use the similar -function <>. - -PORTABILITY -<
> is ANSI. - -No supporting OS subroutines are required. -*/ - -/* - * Copyright (c) 1990 Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include /* div_t */ - -div_t -div (int num, - int denom) -{ - div_t r; - - r.quot = num / denom; - r.rem = num % denom; - /* - * The ANSI standard says that |r.quot| <= |n/d|, where - * n/d is to be computed in infinite precision. In other - * words, we should always truncate the quotient towards - * 0, never -infinity or +infinity. - * - * Machine division and remainer may work either way when - * one or both of n or d is negative. If only one is - * negative and r.quot has been truncated towards -inf, - * r.rem will have the same sign as denom and the opposite - * sign of num; if both are negative and r.quot has been - * truncated towards -inf, r.rem will be positive (will - * have the opposite sign of num). These are considered - * `wrong'. - * - * If both are num and denom are positive, r will always - * be positive. - * - * This all boils down to: - * if num >= 0, but r.rem < 0, we got the wrong answer. - * In that case, to get the right answer, add 1 to r.quot and - * subtract denom from r.rem. - * if num < 0, but r.rem > 0, we also have the wrong answer. - * In this case, to get the right answer, subtract 1 from r.quot and - * add denom to r.rem. - */ - if (num >= 0 && r.rem < 0) { - ++r.quot; - r.rem -= denom; - } - else if (num < 0 && r.rem > 0) { - --r.quot; - r.rem += denom; - } - return (r); -} diff --git a/lib/stdlib/drand48.c b/lib/stdlib/drand48.c deleted file mode 100644 index 0616894..0000000 --- a/lib/stdlib/drand48.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ - -#include "rand48.h" - -double -_drand48_r (struct _reent *r) -{ - _REENT_CHECK_RAND48(r); - return _erand48_r(r, __rand48_seed); -} - -#ifndef _REENT_ONLY -double -drand48 (void) -{ - return _drand48_r (_REENT); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/dtoa.c b/lib/stdlib/dtoa.c deleted file mode 100644 index 198fa66..0000000 --- a/lib/stdlib/dtoa.c +++ /dev/null @@ -1,863 +0,0 @@ -/**************************************************************** - * - * The author of this software is David M. Gay. - * - * Copyright (c) 1991 by AT&T. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which 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 AUTHOR NOR AT&T MAKES ANY - * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY - * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - ***************************************************************/ - -/* Please send bug reports to - David M. Gay - AT&T Bell Laboratories, Room 2C-463 - 600 Mountain Avenue - Murray Hill, NJ 07974-2070 - U.S.A. - dmg@research.att.com or research!dmg - */ - -#include <_ansi.h> -#include -#include -#include -#include "mprec.h" - -#ifdef _REENT_THREAD_LOCAL -_Thread_local struct _Bigint *_tls_mp_result; -_Thread_local int _tls_mp_result_k; -#endif - -static int -quorem (_Bigint * b, _Bigint * S) -{ - int n; - __Long borrow, y; - __ULong carry, q, ys; - __ULong *bx, *bxe, *sx, *sxe; -#ifdef Pack_32 - __Long z; - __ULong si, zs; -#endif - - n = S->_wds; -#ifdef DEBUG - /*debug*/ if (b->_wds > n) - /*debug*/ Bug ("oversize b in quorem"); -#endif - if (b->_wds < n) - return 0; - sx = S->_x; - sxe = sx + --n; - bx = b->_x; - bxe = bx + n; - q = *bxe / (*sxe + 1); /* ensure q <= true quotient */ -#ifdef DEBUG - /*debug*/ if (q > 9) - /*debug*/ Bug ("oversized quotient in quorem"); -#endif - if (q) - { - borrow = 0; - carry = 0; - do - { -#ifdef Pack_32 - si = *sx++; - ys = (si & 0xffff) * q + carry; - zs = (si >> 16) * q + (ys >> 16); - carry = zs >> 16; - y = (*bx & 0xffff) - (ys & 0xffff) + borrow; - borrow = y >> 16; - Sign_Extend (borrow, y); - z = (*bx >> 16) - (zs & 0xffff) + borrow; - borrow = z >> 16; - Sign_Extend (borrow, z); - Storeinc (bx, z, y); -#else - ys = *sx++ * q + carry; - carry = ys >> 16; - y = *bx - (ys & 0xffff) + borrow; - borrow = y >> 16; - Sign_Extend (borrow, y); - *bx++ = y & 0xffff; -#endif - } - while (sx <= sxe); - if (!*bxe) - { - bx = b->_x; - while (--bxe > bx && !*bxe) - --n; - b->_wds = n; - } - } - if (cmp (b, S) >= 0) - { - q++; - borrow = 0; - carry = 0; - bx = b->_x; - sx = S->_x; - do - { -#ifdef Pack_32 - si = *sx++; - ys = (si & 0xffff) + carry; - zs = (si >> 16) + (ys >> 16); - carry = zs >> 16; - y = (*bx & 0xffff) - (ys & 0xffff) + borrow; - borrow = y >> 16; - Sign_Extend (borrow, y); - z = (*bx >> 16) - (zs & 0xffff) + borrow; - borrow = z >> 16; - Sign_Extend (borrow, z); - Storeinc (bx, z, y); -#else - ys = *sx++ + carry; - carry = ys >> 16; - y = *bx - (ys & 0xffff) + borrow; - borrow = y >> 16; - Sign_Extend (borrow, y); - *bx++ = y & 0xffff; -#endif - } - while (sx <= sxe); - bx = b->_x; - bxe = bx + n; - if (!*bxe) - { - while (--bxe > bx && !*bxe) - --n; - b->_wds = n; - } - } - return q; -} - -/* dtoa for IEEE arithmetic (dmg): convert double to ASCII string. - * - * Inspired by "How to Print Floating-Point Numbers Accurately" by - * Guy L. Steele, Jr. and Jon L. White [Proc. ACM SIGPLAN '90, pp. 92-101]. - * - * Modifications: - * 1. Rather than iterating, we use a simple numeric overestimate - * to determine k = floor(log10(d)). We scale relevant - * quantities using O(log2(k)) rather than O(k) multiplications. - * 2. For some modes > 2 (corresponding to ecvt and fcvt), we don't - * try to generate digits strictly left to right. Instead, we - * compute with fewer bits and propagate the carry if necessary - * when rounding the final digit up. This is often faster. - * 3. Under the assumption that input will be rounded nearest, - * mode 0 renders 1e23 as 1e23 rather than 9.999999999999999e22. - * That is, we allow equality in stopping tests when the - * round-nearest rule will give the same floating-point value - * as would satisfaction of the stopping test with strict - * inequality. - * 4. We remove common factors of powers of 2 from relevant - * quantities. - * 5. When converting floating-point integers less than 1e16, - * we use floating-point arithmetic rather than resorting - * to multiple-precision integers. - * 6. When asked to produce fewer than 15 digits, we first try - * to get by with floating-point arithmetic; we resort to - * multiple-precision integer arithmetic only if we cannot - * guarantee that the floating-point calculation has given - * the correctly rounded result. For k requested digits and - * "uniformly" distributed input, the probability is - * something like 10^(k-15) that we must resort to the long - * calculation. - */ - - -char * -_dtoa_r (struct _reent *ptr, - double _d, - int mode, - int ndigits, - int *decpt, - int *sign, - char **rve) -{ - /* Arguments ndigits, decpt, sign are similar to those - of ecvt and fcvt; trailing zeros are suppressed from - the returned string. If not null, *rve is set to point - to the end of the return value. If d is +-Infinity or NaN, - then *decpt is set to 9999. - - mode: - 0 ==> shortest string that yields d when read in - and rounded to nearest. - 1 ==> like 0, but with Steele & White stopping rule; - e.g. with IEEE P754 arithmetic , mode 0 gives - 1e23 whereas mode 1 gives 9.999999999999999e22. - 2 ==> max(1,ndigits) significant digits. This gives a - return value similar to that of ecvt, except - that trailing zeros are suppressed. - 3 ==> through ndigits past the decimal point. This - gives a return value similar to that from fcvt, - except that trailing zeros are suppressed, and - ndigits can be negative. - 4-9 should give the same return values as 2-3, i.e., - 4 <= mode <= 9 ==> same return as mode - 2 + (mode & 1). These modes are mainly for - debugging; often they run slower but sometimes - faster than modes 2-3. - 4,5,8,9 ==> left-to-right digit generation. - 6-9 ==> don't try fast floating-point estimate - (if applicable). - - Values of mode other than 0-9 are treated as mode 0. - - Sufficient space is allocated to the return value - to hold the suppressed trailing zeros. - */ - - int bbits, b2, b5, be, dig, i, ieps, ilim, ilim0, ilim1, j, j1, k, k0, - k_check, leftright, m2, m5, s2, s5, spec_case, try_quick; - union double_union d, d2, eps; - __Long L; -#ifndef Sudden_Underflow - int denorm; - __ULong x; -#endif - _Bigint *b, *b1, *delta, *mlo = NULL, *mhi, *S; - double ds; - char *s, *s0; - - d.d = _d; - - _REENT_CHECK_MP(ptr); - if (_REENT_MP_RESULT(ptr)) - { - _REENT_MP_RESULT(ptr)->_k = _REENT_MP_RESULT_K(ptr); - _REENT_MP_RESULT(ptr)->_maxwds = 1 << _REENT_MP_RESULT_K(ptr); - Bfree (ptr, _REENT_MP_RESULT(ptr)); - _REENT_MP_RESULT(ptr) = 0; - } - - if (word0 (d) & Sign_bit) - { - /* set sign for everything, including 0's and NaNs */ - *sign = 1; - word0 (d) &= ~Sign_bit; /* clear sign bit */ - } - else - *sign = 0; - -#if defined(IEEE_Arith) + defined(VAX) -#ifdef IEEE_Arith - if ((word0 (d) & Exp_mask) == Exp_mask) -#else - if (word0 (d) == 0x8000) -#endif - { - /* Infinity or NaN */ - *decpt = 9999; - s = -#ifdef IEEE_Arith - !word1 (d) && !(word0 (d) & 0xfffff) ? "Infinity" : -#endif - "NaN"; - if (rve) - *rve = -#ifdef IEEE_Arith - s[3] ? s + 8 : -#endif - s + 3; - return s; - } -#endif -#ifdef IBM - d.d += 0; /* normalize */ -#endif - if (!d.d) - { - *decpt = 1; - s = "0"; - if (rve) - *rve = s + 1; - return s; - } - - b = d2b (ptr, d.d, &be, &bbits); -#ifdef Sudden_Underflow - i = (int) (word0 (d) >> Exp_shift1 & (Exp_mask >> Exp_shift1)); -#else - if ((i = (int) (word0 (d) >> Exp_shift1 & (Exp_mask >> Exp_shift1))) != 0) - { -#endif - d2.d = d.d; - word0 (d2) &= Frac_mask1; - word0 (d2) |= Exp_11; -#ifdef IBM - if (j = 11 - hi0bits (word0 (d2) & Frac_mask)) - d2.d /= 1 << j; -#endif - - /* log(x) ~=~ log(1.5) + (x-1.5)/1.5 - * log10(x) = log(x) / log(10) - * ~=~ log(1.5)/log(10) + (x-1.5)/(1.5*log(10)) - * log10(d) = (i-Bias)*log(2)/log(10) + log10(d2) - * - * This suggests computing an approximation k to log10(d) by - * - * k = (i - Bias)*0.301029995663981 - * + ( (d2-1.5)*0.289529654602168 + 0.176091259055681 ); - * - * We want k to be too large rather than too small. - * The error in the first-order Taylor series approximation - * is in our favor, so we just round up the constant enough - * to compensate for any error in the multiplication of - * (i - Bias) by 0.301029995663981; since |i - Bias| <= 1077, - * and 1077 * 0.30103 * 2^-52 ~=~ 7.2e-14, - * adding 1e-13 to the constant term more than suffices. - * Hence we adjust the constant term to 0.1760912590558. - * (We could get a more accurate k by invoking log10, - * but this is probably not worthwhile.) - */ - - i -= Bias; -#ifdef IBM - i <<= 2; - i += j; -#endif -#ifndef Sudden_Underflow - denorm = 0; - } - else - { - /* d is denormalized */ - - i = bbits + be + (Bias + (P - 1) - 1); -#if defined (_DOUBLE_IS_32BITS) - x = word0 (d) << (32 - i); -#else - x = (i > 32) ? (word0 (d) << (64 - i)) | (word1 (d) >> (i - 32)) - : (word1 (d) << (32 - i)); -#endif - d2.d = x; - word0 (d2) -= 31 * Exp_msk1; /* adjust exponent */ - i -= (Bias + (P - 1) - 1) + 1; - denorm = 1; - } -#endif -#if defined (_DOUBLE_IS_32BITS) - ds = (d2.d - 1.5) * 0.289529651 + 0.176091269 + i * 0.30103001; -#else - ds = (d2.d - 1.5) * 0.289529654602168 + 0.1760912590558 + i * 0.301029995663981; -#endif - k = (int) ds; - if (ds < 0. && ds != k) - k--; /* want k = floor(ds) */ - k_check = 1; - if (k >= 0 && k <= Ten_pmax) - { - if (d.d < tens[k]) - k--; - k_check = 0; - } - j = bbits - i - 1; - if (j >= 0) - { - b2 = 0; - s2 = j; - } - else - { - b2 = -j; - s2 = 0; - } - if (k >= 0) - { - b5 = 0; - s5 = k; - s2 += k; - } - else - { - b2 -= k; - b5 = -k; - s5 = 0; - } - if (mode < 0 || mode > 9) - mode = 0; - try_quick = 1; - if (mode > 5) - { - mode -= 4; - try_quick = 0; - } - leftright = 1; - ilim = ilim1 = -1; - switch (mode) - { - case 0: - case 1: - i = 18; - ndigits = 0; - break; - case 2: - leftright = 0; - /* no break */ - case 4: - if (ndigits <= 0) - ndigits = 1; - ilim = ilim1 = i = ndigits; - break; - case 3: - leftright = 0; - /* no break */ - case 5: - i = ndigits + k + 1; - ilim = i; - ilim1 = i - 1; - if (i <= 0) - i = 1; - } - j = sizeof (__ULong); - for (_REENT_MP_RESULT_K(ptr) = 0; sizeof (_Bigint) - sizeof (__ULong) + j <= i; - j <<= 1) - _REENT_MP_RESULT_K(ptr)++; - _REENT_MP_RESULT(ptr) = eBalloc (ptr, _REENT_MP_RESULT_K(ptr)); - s = s0 = (char *) _REENT_MP_RESULT(ptr); - - if (ilim >= 0 && ilim <= Quick_max && try_quick) - { - /* Try to get by with floating-point arithmetic. */ - - i = 0; - d2.d = d.d; - k0 = k; - ilim0 = ilim; - ieps = 2; /* conservative */ - if (k > 0) - { - ds = tens[k & 0xf]; - j = k >> 4; - if (j & Bletch) - { - /* prevent overflows */ - j &= Bletch - 1; - d.d /= bigtens[n_bigtens - 1]; - ieps++; - } - for (; j; j >>= 1, i++) - if (j & 1) - { - ieps++; - ds *= bigtens[i]; - } - d.d /= ds; - } - else if ((j1 = -k) != 0) - { - d.d *= tens[j1 & 0xf]; - for (j = j1 >> 4; j; j >>= 1, i++) - if (j & 1) - { - ieps++; - d.d *= bigtens[i]; - } - } - if (k_check && d.d < 1. && ilim > 0) - { - if (ilim1 <= 0) - goto fast_failed; - ilim = ilim1; - k--; - d.d *= 10.; - ieps++; - } - eps.d = ieps * d.d + 7.; - word0 (eps) -= (P - 1) * Exp_msk1; - if (ilim == 0) - { - S = mhi = 0; - d.d -= 5.; - if (d.d > eps.d) - goto one_digit; - if (d.d < -eps.d) - goto no_digits; - goto fast_failed; - } -#ifndef No_leftright - if (leftright) - { - /* Use Steele & White method of only - * generating digits needed. - */ - eps.d = 0.5 / tens[ilim - 1] - eps.d; - for (i = 0;;) - { - L = d.d; - d.d -= L; - *s++ = '0' + (int) L; - if (d.d < eps.d) - goto ret1; - if (1. - d.d < eps.d) - goto bump_up; - if (++i >= ilim) - break; - eps.d *= 10.; - d.d *= 10.; - } - } - else - { -#endif - /* Generate ilim digits, then fix them up. */ - eps.d *= tens[ilim - 1]; - for (i = 1;; i++, d.d *= 10.) - { - L = d.d; - d.d -= L; - *s++ = '0' + (int) L; - if (i == ilim) - { - if (d.d > 0.5 + eps.d) - goto bump_up; - else if (d.d < 0.5 - eps.d) - { - while (*--s == '0'); - s++; - goto ret1; - } - break; - } - } -#ifndef No_leftright - } -#endif - fast_failed: - s = s0; - d.d = d2.d; - k = k0; - ilim = ilim0; - } - - /* Do we have a "small" integer? */ - - if (be >= 0 && k <= Int_max) - { - /* Yes. */ - ds = tens[k]; - if (ndigits < 0 && ilim <= 0) - { - S = mhi = 0; - if (ilim < 0 || d.d <= 5 * ds) - goto no_digits; - goto one_digit; - } - for (i = 1;; i++) - { - L = d.d / ds; - d.d -= L * ds; -#ifdef Check_FLT_ROUNDS - /* If FLT_ROUNDS == 2, L will usually be high by 1 */ - if (d.d < 0) - { - L--; - d.d += ds; - } -#endif - *s++ = '0' + (int) L; - if (i == ilim) - { - d.d += d.d; - if ((d.d > ds) || ((d.d == ds) && (L & 1))) - { - bump_up: - while (*--s == '9') - if (s == s0) - { - k++; - *s = '0'; - break; - } - ++*s++; - } - break; - } - if (!(d.d *= 10.)) - break; - } - goto ret1; - } - - m2 = b2; - m5 = b5; - mhi = mlo = 0; - if (leftright) - { - if (mode < 2) - { - i = -#ifndef Sudden_Underflow - denorm ? be + (Bias + (P - 1) - 1 + 1) : -#endif -#ifdef IBM - 1 + 4 * P - 3 - bbits + ((bbits + be - 1) & 3); -#else - 1 + P - bbits; -#endif - } - else - { - j = ilim - 1; - if (m5 >= j) - m5 -= j; - else - { - s5 += j -= m5; - b5 += j; - m5 = 0; - } - if ((i = ilim) < 0) - { - m2 -= i; - i = 0; - } - } - b2 += i; - s2 += i; - mhi = i2b (ptr, 1); - } - if (m2 > 0 && s2 > 0) - { - i = m2 < s2 ? m2 : s2; - b2 -= i; - m2 -= i; - s2 -= i; - } - if (b5 > 0) - { - if (leftright) - { - if (m5 > 0) - { - mhi = pow5mult (ptr, mhi, m5); - b1 = mult (ptr, mhi, b); - Bfree (ptr, b); - b = b1; - } - if ((j = b5 - m5) != 0) - b = pow5mult (ptr, b, j); - } - else - b = pow5mult (ptr, b, b5); - } - S = i2b (ptr, 1); - if (s5 > 0) - S = pow5mult (ptr, S, s5); - - /* Check for special case that d is a normalized power of 2. */ - - spec_case = 0; - if (mode < 2) - { - if (!word1 (d) && !(word0 (d) & Bndry_mask) -#ifndef Sudden_Underflow - && word0 (d) & Exp_mask -#endif - ) - { - /* The special case */ - b2 += Log2P; - s2 += Log2P; - spec_case = 1; - } - } - - /* Arrange for convenient computation of quotients: - * shift left if necessary so divisor has 4 leading 0 bits. - * - * Perhaps we should just compute leading 28 bits of S once - * and for all and pass them and a shift to quorem, so it - * can do shifts and ors to compute the numerator for q. - */ - -#ifdef Pack_32 - if ((i = ((s5 ? 32 - hi0bits (S->_x[S->_wds - 1]) : 1) + s2) & 0x1f) != 0) - i = 32 - i; -#else - if ((i = ((s5 ? 32 - hi0bits (S->_x[S->_wds - 1]) : 1) + s2) & 0xf) != 0) - i = 16 - i; -#endif - if (i > 4) - { - i -= 4; - b2 += i; - m2 += i; - s2 += i; - } - else if (i < 4) - { - i += 28; - b2 += i; - m2 += i; - s2 += i; - } - if (b2 > 0) - b = lshift (ptr, b, b2); - if (s2 > 0) - S = lshift (ptr, S, s2); - if (k_check) - { - if (cmp (b, S) < 0) - { - k--; - b = multadd (ptr, b, 10, 0); /* we botched the k estimate */ - if (leftright) - mhi = multadd (ptr, mhi, 10, 0); - ilim = ilim1; - } - } - if (ilim <= 0 && mode > 2) - { - if (ilim < 0 || cmp (b, S = multadd (ptr, S, 5, 0)) <= 0) - { - /* no digits, fcvt style */ - no_digits: - k = -1 - ndigits; - goto ret; - } - one_digit: - *s++ = '1'; - k++; - goto ret; - } - if (leftright) - { - if (m2 > 0) - mhi = lshift (ptr, mhi, m2); - - /* Compute mlo -- check for special case - * that d is a normalized power of 2. - */ - - mlo = mhi; - if (spec_case) - { - mhi = eBalloc (ptr, mhi->_k); - Bcopy (mhi, mlo); - mhi = lshift (ptr, mhi, Log2P); - } - - for (i = 1;; i++) - { - dig = quorem (b, S) + '0'; - /* Do we yet have the shortest decimal string - * that will round to d? - */ - j = cmp (b, mlo); - delta = diff (ptr, S, mhi); - j1 = delta->_sign ? 1 : cmp (b, delta); - Bfree (ptr, delta); -#ifndef ROUND_BIASED - if (j1 == 0 && !mode && !(word1 (d) & 1)) - { - if (dig == '9') - goto round_9_up; - if (j > 0) - dig++; - *s++ = dig; - goto ret; - } -#endif - if ((j < 0) || ((j == 0) && !mode -#ifndef ROUND_BIASED - && !(word1 (d) & 1) -#endif - )) - { - if (j1 > 0) - { - b = lshift (ptr, b, 1); - j1 = cmp (b, S); - if (((j1 > 0) || ((j1 == 0) && (dig & 1))) - && dig++ == '9') - goto round_9_up; - } - *s++ = dig; - goto ret; - } - if (j1 > 0) - { - if (dig == '9') - { /* possible if i == 1 */ - round_9_up: - *s++ = '9'; - goto roundoff; - } - *s++ = dig + 1; - goto ret; - } - *s++ = dig; - if (i == ilim) - break; - b = multadd (ptr, b, 10, 0); - if (mlo == mhi) - mlo = mhi = multadd (ptr, mhi, 10, 0); - else - { - mlo = multadd (ptr, mlo, 10, 0); - mhi = multadd (ptr, mhi, 10, 0); - } - } - } - else - for (i = 1;; i++) - { - *s++ = dig = quorem (b, S) + '0'; - if (i >= ilim) - break; - b = multadd (ptr, b, 10, 0); - } - - /* Round off last digit */ - - b = lshift (ptr, b, 1); - j = cmp (b, S); - if ((j > 0) || ((j == 0) && (dig & 1))) - { - roundoff: - while (*--s == '9') - if (s == s0) - { - k++; - *s++ = '1'; - goto ret; - } - ++*s++; - } - else - { - while (*--s == '0'); - s++; - } -ret: - Bfree (ptr, S); - if (mhi) - { - if (mlo && mlo != mhi) - Bfree (ptr, mlo); - Bfree (ptr, mhi); - } -ret1: - Bfree (ptr, b); - *s = 0; - *decpt = k + 1; - if (rve) - *rve = s; - return s0; -} diff --git a/lib/stdlib/dtoastub.c b/lib/stdlib/dtoastub.c deleted file mode 100644 index d1c8a67..0000000 --- a/lib/stdlib/dtoastub.c +++ /dev/null @@ -1,21 +0,0 @@ -#include <_ansi.h> -#include -#include -#include - -/* Nothing in newlib actually *calls* dtoa, they all call _dtoa_r, so this - is a safe way of providing it to the user. */ -#ifndef _REENT_ONLY - -char * -__dtoa (double d, - int mode, - int ndigits, - int *decpt, - int *sign, - char **rve) -{ - return _dtoa_r (_REENT, d, mode, ndigits, decpt, sign, rve); -} - -#endif diff --git a/lib/stdlib/ecvtbuf.c b/lib/stdlib/ecvtbuf.c deleted file mode 100644 index 5148966..0000000 --- a/lib/stdlib/ecvtbuf.c +++ /dev/null @@ -1,451 +0,0 @@ -/* -FUNCTION -<>, <>---double or float to string - -INDEX - ecvtbuf -INDEX - fcvtbuf - -SYNOPSIS - #include - - char *ecvtbuf(double <[val]>, int <[chars]>, int *<[decpt]>, - int *<[sgn]>, char *<[buf]>); - - char *fcvtbuf(double <[val]>, int <[decimals]>, int *<[decpt]>, - int *<[sgn]>, char *<[buf]>); - -DESCRIPTION - <> and <> produce (null-terminated) strings - of digits representating the <> number <[val]>. - - The only difference between <> and <> is the - interpretation of the second argument (<[chars]> or - <[decimals]>). For <>, the second argument <[chars]> - specifies the total number of characters to write (which is - also the number of significant digits in the formatted string, - since these two functions write only digits). For <>, - the second argument <[decimals]> specifies the number of - characters to write after the decimal point; all digits for - the integer part of <[val]> are always included. - - Since <> and <> write only digits in the - output string, they record the location of the decimal point - in <<*<[decpt]>>>, and the sign of the number in <<*<[sgn]>>>. - After formatting a number, <<*<[decpt]>>> contains the number - of digits to the left of the decimal point. <<*<[sgn]>>> - contains <<0>> if the number is positive, and <<1>> if it is - negative. For both functions, you supply a pointer <[buf]> to - an area of memory to hold the converted string. - -RETURNS - Both functions return a pointer to <[buf]>, the string - containing a character representation of <[val]>. - -PORTABILITY - Neither function is ANSI C. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include "mprec.h" -#include "local.h" - -#ifdef _REENT_THREAD_LOCAL -_Thread_local char *_tls_cvtbuf; -_Thread_local int _tls_cvtlen; -#endif - -static void -print_f (struct _reent *ptr, - char *buf, - double invalue, - int ndigit, - char type, - int dot, - int mode) -{ - int decpt; - int sign; - char *p, *start, *end; - - start = p = _dtoa_r (ptr, invalue, mode, ndigit, &decpt, &sign, &end); - - if (decpt == 9999) - { - strcpy (buf, p); - return; - } - while (*p && decpt > 0) - { - *buf++ = *p++; - decpt--; - } - /* Even if not in buffer */ - while (decpt > 0) - { - *buf++ = '0'; - decpt--; - } - - if (dot || *p) - { - if (p == start) - *buf++ = '0'; - if (decpt < 0 && ndigit > 0) - *buf++ = '.'; - while (decpt < 0 && ndigit > 0) - { - *buf++ = '0'; - decpt++; - ndigit--; - } - - /* Print rest of stuff */ - while (*p && ndigit > 0) - { - *buf++ = *p++; - ndigit--; - } - /* And trailing zeros */ - while (ndigit > 0) - { - *buf++ = '0'; - ndigit--; - } - } - *buf++ = 0; -} - -/* Print number in e format with width chars after. - - TYPE is one of 'e' or 'E'. It may also be one of 'g' or 'G' indicating - that _gcvt is calling us and we should remove trailing zeroes. - - WIDTH is the number of digits of precision after the decimal point. */ - -static void -print_e (struct _reent *ptr, - char *buf, - double invalue, - int width, - char type, - int dot) -{ - int sign; - char *end; - char *p; - int decpt; - int top; - int ndigit = width; - - p = _dtoa_r (ptr, invalue, 2, width + 1, &decpt, &sign, &end); - - if (decpt == 9999) - { - strcpy (buf, p); - return; - } - - *buf++ = *p++; - if (ndigit > 0) - dot = 1; - - while (*p && ndigit > 0) - { - if (dot) { - *buf++ = '.'; - dot = 0; - } - *buf++ = *p++; - ndigit--; - } - - /* Add trailing zeroes to fill out to ndigits unless this is 'g' format. - Also, convert g/G to e/E. */ - - if (type == 'g') - type = 'e'; - else if (type == 'G') - type = 'E'; - else - { - while (ndigit > 0) - { - if (dot) { - *buf++ = '.'; - dot = 0; - } - *buf++ = '0'; - ndigit--; - } - } - - /* Add the exponent. */ - - *buf++ = type; - decpt--; - if (decpt < 0) - { - *buf++ = '-'; - decpt = -decpt; - } - else - { - *buf++ = '+'; - } - if (decpt > 99) - { - int top = decpt / 100; - *buf++ = top + '0'; - decpt -= top * 100; - } - top = decpt / 10; - *buf++ = top + '0'; - decpt -= top * 10; - *buf++ = decpt + '0'; - - *buf++ = 0; -} - -#ifndef _REENT_ONLY - -/* Undocumented behaviour: when given NULL as a buffer, return a - pointer to static space in the rent structure. This is only to - support ecvt and fcvt, which aren't ANSI anyway. */ - -char * -fcvtbuf (double invalue, - int ndigit, - int *decpt, - int *sign, - char *fcvt_buf) -{ - struct _reent *reent = _REENT; - char *save; - char *p; - char *end; - int done = 0; - - if (fcvt_buf == NULL) - { - if (_REENT_CVTLEN(reent) <= ndigit + 35) - { - if ((fcvt_buf = (char *) _realloc_r (reent, _REENT_CVTBUF(reent), - ndigit + 36)) == NULL) - return NULL; - _REENT_CVTLEN(reent) = ndigit + 36; - _REENT_CVTBUF(reent) = fcvt_buf; - } - - fcvt_buf = _REENT_CVTBUF(reent) ; - } - - save = fcvt_buf; - - p = _dtoa_r (reent, invalue, 3, ndigit, decpt, sign, &end); - - /* Now copy */ - - done = -*decpt; - while (p < end) - { - *fcvt_buf++ = *p++; - done++; - } - /* And unsuppress the trailing zeroes */ - while (done < ndigit) - { - *fcvt_buf++ = '0'; - done++; - } - *fcvt_buf++ = 0; - return save; -} - -char * -ecvtbuf (double invalue, - int ndigit, - int *decpt, - int *sign, - char *fcvt_buf) -{ - struct _reent *reent = _REENT; - char *save; - char *p; - char *end; - int done = 0; - - if (fcvt_buf == NULL) - { - if (_REENT_CVTLEN(reent) <= ndigit) - { - if ((fcvt_buf = (char *) _realloc_r (reent, _REENT_CVTBUF(reent), - ndigit + 1)) == NULL) - return NULL; - _REENT_CVTLEN(reent) = ndigit + 1; - _REENT_CVTBUF(reent) = fcvt_buf; - } - - fcvt_buf = _REENT_CVTBUF(reent) ; - } - - save = fcvt_buf; - - p = _dtoa_r (reent, invalue, 2, ndigit, decpt, sign, &end); - - /* Now copy */ - - while (p < end) - { - *fcvt_buf++ = *p++; - done++; - } - /* And unsuppress the trailing zeroes */ - while (done < ndigit) - { - *fcvt_buf++ = '0'; - done++; - } - *fcvt_buf++ = 0; - return save; -} - -#endif - -char * -_gcvt (struct _reent *ptr, - double invalue, - int ndigit, - char *buf, - char type, - int dot) -{ - char *save = buf; - - if (invalue < 0) - { - invalue = -invalue; - } - - if (invalue == 0) - { - *buf++ = '0'; - *buf = '\0'; - } - else - /* Which one to print ? - ANSI says that anything with more that 4 zeros after the . or more - than precision digits before is printed in e with the qualification - that trailing zeroes are removed from the fraction portion. */ - - if (0.0001 >= invalue || invalue >= _mprec_log10 (ndigit)) - { - /* We subtract 1 from ndigit because in the 'e' format the precision is - the number of digits after the . but in 'g' format it is the number - of significant digits. - - We defer changing type to e/E so that print_e() can know it's us - calling and thus should remove trailing zeroes. */ - - print_e (ptr, buf, invalue, ndigit - 1, type, dot); - } - else - { - int decpt; - int sign; - char *end; - char *p; - - /* We always want ndigits of precision, even if that means printing - * a bunch of leading zeros for numbers < 1.0 - */ - p = _dtoa_r (ptr, invalue, 2, ndigit, &decpt, &sign, &end); - - if (decpt == 9999) - { - strcpy (buf, p); - return save; - } - while (*p && decpt > 0) - { - *buf++ = *p++; - decpt--; - ndigit--; - } - /* Even if not in buffer */ - while (decpt > 0 && ndigit > 0) - { - *buf++ = '0'; - decpt--; - ndigit--; - } - - if (dot || *p) - { - if (buf == save) - *buf++ = '0'; - *buf++ = '.'; - - /* Leading zeros don't count towards 'ndigit' */ - while (decpt < 0) - { - *buf++ = '0'; - decpt++; - } - - /* Print rest of stuff */ - while (*p && ndigit > 0) - { - *buf++ = *p++; - ndigit--; - } - /* And trailing zeros */ - if (dot) - { - while (ndigit > 0) - { - *buf++ = '0'; - ndigit--; - } - } - } - *buf++ = 0; - } - - return save; -} - -char * -_dcvt (struct _reent *ptr, - char *buffer, - double invalue, - int precision, - int width, - char type, - int dot) -{ - switch (type) - { - case 'f': - case 'F': - print_f (ptr, buffer, invalue, precision, type, precision == 0 ? dot : 1, 3); - break; - case 'g': - case 'G': - if (precision == 0) - precision = 1; - _gcvt (ptr, invalue, precision, buffer, type, dot); - break; - case 'e': - case 'E': - print_e (ptr, buffer, invalue, precision, type, dot); - } - return buffer; -} diff --git a/lib/stdlib/efgcvt.c b/lib/stdlib/efgcvt.c deleted file mode 100644 index 3cdb9c4..0000000 --- a/lib/stdlib/efgcvt.c +++ /dev/null @@ -1,168 +0,0 @@ -/* -FUNCTION -<>, <>, <>, <>---double or float to string - -INDEX - ecvt -INDEX - ecvtf -INDEX - fcvt -INDEX - fcvtf - -SYNOPSIS - #include - - char *ecvt(double <[val]>, int <[chars]>, int *<[decpt]>, int *<[sgn]>); - char *ecvtf(float <[val]>, int <[chars]>, int *<[decpt]>, int *<[sgn]>); - - char *fcvt(double <[val]>, int <[decimals]>, - int *<[decpt]>, int *<[sgn]>); - char *fcvtf(float <[val]>, int <[decimals]>, - int *<[decpt]>, int *<[sgn]>); - -DESCRIPTION -<> and <> produce (null-terminated) strings of digits -representating the <> number <[val]>. -<> and <> produce the corresponding character -representations of <> numbers. - -(The <> functions <> and <> are reentrant -versions of <> and <>.) - -The only difference between <> and <> is the -interpretation of the second argument (<[chars]> or <[decimals]>). -For <>, the second argument <[chars]> specifies the total number -of characters to write (which is also the number of significant digits -in the formatted string, since these two functions write only digits). -For <>, the second argument <[decimals]> specifies the number of -characters to write after the decimal point; all digits for the integer -part of <[val]> are always included. - -Since <> and <> write only digits in the output string, -they record the location of the decimal point in <<*<[decpt]>>>, and -the sign of the number in <<*<[sgn]>>>. After formatting a number, -<<*<[decpt]>>> contains the number of digits to the left of the -decimal point. <<*<[sgn]>>> contains <<0>> if the number is positive, -and <<1>> if it is negative. - -RETURNS -All four functions return a pointer to the new string containing a -character representation of <[val]>. - -PORTABILITY -None of these functions are ANSI C. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. - -NEWPAGE -FUNCTION -<>, <>---format double or float as string - -INDEX - gcvt -INDEX - gcvtf - -SYNOPSIS - #include - - char *gcvt(double <[val]>, int <[precision]>, char *<[buf]>); - char *gcvtf(float <[val]>, int <[precision]>, char *<[buf]>); - -DESCRIPTION -<> writes a fully formatted number as a null-terminated -string in the buffer <<*<[buf]>>>. <> produces corresponding -character representations of <> numbers. - -<> uses the same rules as the <> format -`<<%.<[precision]>g>>'---only negative values are signed (with -`<<->>'), and either exponential or ordinary decimal-fraction format -is chosen depending on the number of significant digits (specified by -<[precision]>). - -RETURNS -The result is a pointer to the formatted representation of <[val]> -(the same as the argument <[buf]>). - -PORTABILITY -Neither function is ANSI C. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -#define _XOPEN_SOURCE -#define _XOPEN_SOURCE_EXTENDED -#include <_ansi.h> -#include -#include -#include -#include "local.h" - -char * ecvtbuf (double, int, int*, int*, char *); -char * fcvtbuf (double, int, int*, int*, char *); - -char * -fcvt (double d, - int ndigit, - int *decpt, - int *sign) -{ - return fcvtbuf (d, ndigit, decpt, sign, NULL); -} - -char * -fcvtf (float d, - int ndigit, - int *decpt, - int *sign) -{ - return fcvt ((float) d, ndigit, decpt, sign); -} - - -char * -gcvt (double d, - int ndigit, - char *buf) -{ - char *tbuf = buf; - if (d < 0) { - *buf = '-'; - buf++; - ndigit--; - } - return (_gcvt (_REENT, d, ndigit, buf, 'g', 0) ? tbuf : 0); -} - - -char * -gcvtf (float d, - int ndigit, - char *buf) -{ - double asd = d; - return gcvt (asd, ndigit, buf); -} - - -char * -ecvt (double d, - int ndigit, - int *decpt, - int *sign) -{ - return ecvtbuf (d, ndigit, decpt, sign, NULL); -} - -char * -ecvtf (float d, - int ndigit, - int *decpt, - int *sign) -{ - return ecvt ((double) d, ndigit, decpt, sign); -} diff --git a/lib/stdlib/environ.c b/lib/stdlib/environ.c deleted file mode 100644 index 8cc2392..0000000 --- a/lib/stdlib/environ.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 1995, 1996, 2002 Red Hat Incorporated. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * The name of Red Hat Incorporated may not be used to endorse - * or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* Provide a definition of `environ' if crt0.o doesn't. */ - -static char *initial_env[] = { 0 }; - -/* Posix says `environ' is a pointer to a null terminated list of pointers. - Hence `environ' itself is never NULL. */ -char **environ = &initial_env[0]; diff --git a/lib/stdlib/envlock.c b/lib/stdlib/envlock.c deleted file mode 100644 index 3afe30e..0000000 --- a/lib/stdlib/envlock.c +++ /dev/null @@ -1,54 +0,0 @@ -/* -FUNCTION -<<__env_lock>>, <<__env_unlock>>---lock environ variable - -INDEX - __env_lock -INDEX - __env_unlock - -SYNOPSIS - #include - void __env_lock (struct _reent *<[reent]>); - void __env_unlock (struct _reent *<[reent]>); - -DESCRIPTION -The <> family of routines call these functions when they need to -modify the environ variable. The version of these routines supplied in the -library use the lock API defined in sys/lock.h. If multiple threads of -execution can call <>, or if <> can be called reentrantly, -then you need to define your own versions of these functions in order to -safely lock the memory pool during a call. If you do not, the memory pool -may become corrupted. - -A call to <> may call <<__env_lock>> recursively; that is, -the sequence of calls may go <<__env_lock>>, <<__env_lock>>, -<<__env_unlock>>, <<__env_unlock>>. Any implementation of these -routines must be careful to avoid causing a thread to wait for a lock -that it already holds. -*/ - -#include "envlock.h" -#include - -#ifndef __SINGLE_THREAD__ -__LOCK_INIT_RECURSIVE(static, __env_recursive_mutex); -#endif - -void -__env_lock (ptr) - struct _reent *ptr; -{ -#ifndef __SINGLE_THREAD__ - __lock_acquire_recursive (__env_recursive_mutex); -#endif -} - -void -__env_unlock (ptr) - struct _reent *ptr; -{ -#ifndef __SINGLE_THREAD__ - __lock_release_recursive (__env_recursive_mutex); -#endif -} diff --git a/lib/stdlib/eprintf.c b/lib/stdlib/eprintf.c deleted file mode 100644 index 46cf810..0000000 --- a/lib/stdlib/eprintf.c +++ /dev/null @@ -1,26 +0,0 @@ -/* This is an implementation of the __eprintf function which is - compatible with the assert.h which is distributed with gcc. - - This function is provided because in some cases libgcc.a will not - provide __eprintf. This will happen if inhibit_libc is defined, - which is done because at the time that libgcc2.c is compiled, the - correct may not be available. newlib provides its own - copy of assert.h, which calls __assert, not __eprintf. However, in - some cases you may accidentally wind up compiling with the gcc - assert.h. In such a case, this __eprintf will be used if there - does not happen to be one in libgcc2.c. */ - -#include -#include - -void -__eprintf (format, file, line, expression) - const char *format; - const char *file; - unsigned int line; - const char *expression; -{ - (void) fiprintf (stderr, format, file, line, expression); - abort (); - /*NOTREACHED*/ -} diff --git a/lib/stdlib/erand48.c b/lib/stdlib/erand48.c deleted file mode 100644 index 1be4a95..0000000 --- a/lib/stdlib/erand48.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ - -#include "rand48.h" - -double -_erand48_r (struct _reent *r, - unsigned short xseed[3]) -{ - __dorand48(r, xseed); - return ldexp((double) xseed[0], -48) + - ldexp((double) xseed[1], -32) + - ldexp((double) xseed[2], -16); -} - -#ifndef _REENT_ONLY -double -erand48 (unsigned short xseed[3]) -{ - return _erand48_r (_REENT, xseed); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/exit.c b/lib/stdlib/exit.c deleted file mode 100644 index 9b7bd51..0000000 --- a/lib/stdlib/exit.c +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 1990 Regents of the University of California. - * All rights reserved. - * - * %sccs.include.redist.c% - */ - -/* -FUNCTION -<>---end program execution - -INDEX - exit - -SYNOPSIS - #include - void exit(int <[code]>); - -DESCRIPTION -Use <> to return control from a program to the host operating -environment. Use the argument <[code]> to pass an exit status to the -operating environment: two particular values, <> and -<>, are defined in `<>' to indicate success or -failure in a portable fashion. - -<> does two kinds of cleanup before ending execution of your -program. First, it calls all application-defined cleanup functions -you have enrolled with <>. Second, files and streams are -cleaned up: any pending output is delivered to the host system, each -open file or stream is closed, and files created by <> are -deleted. - -RETURNS -<> does not return to its caller. - -PORTABILITY -ANSI C requires <>, and specifies that <> and -<> must be defined. - -Supporting OS subroutines required: <<_exit>>. -*/ - -#include -#include /* for _exit() declaration */ -#include -#include "atexit.h" - -/* - * Exit, flushing stdio buffers if necessary. - */ - -void -exit (int code) -{ -#ifdef _LITE_EXIT - /* Refer to comments in __atexit.c for more details of lite exit. */ - void __call_exitprocs (int, void *) __attribute__((weak)); - if (__call_exitprocs) -#endif - __call_exitprocs (code, NULL); - - if (__stdio_exit_handler != NULL) - (*__stdio_exit_handler) (); - - _exit (code); -} diff --git a/lib/stdlib/freer.c b/lib/stdlib/freer.c deleted file mode 100644 index 1418d0c..0000000 --- a/lib/stdlib/freer.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_FREE -#include "_mallocr.c" diff --git a/lib/stdlib/gdtoa-dmisc.c b/lib/stdlib/gdtoa-dmisc.c deleted file mode 100644 index 332023d..0000000 --- a/lib/stdlib/gdtoa-dmisc.c +++ /dev/null @@ -1,230 +0,0 @@ -/**************************************************************** - -The author of this software is David M. Gay. - -Copyright (C) 1998 by Lucent Technologies -All Rights Reserved - -Permission to use, copy, modify, and distribute this software and -its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notice appear in all -copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the name of Lucent or any of its entities -not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. -IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY -SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER -IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - -****************************************************************/ - -/* Please send bug reports to David M. Gay (dmg at acm dot org, - * with " at " changed at "@" and " dot " changed to "."). */ - -#include -#include - -#ifdef _USE_GDTOA -#include "gdtoaimp.h" - -#ifndef MULTIPLE_THREADS - char *dtoa_result; -#endif - - char * -#ifdef KR_headers -rv_alloc(ptr, i) struct _reent *ptr, int i; -#else -rv_alloc(struct _reent *ptr, int i) -#endif -{ - int j, k, *r; - - j = sizeof(ULong); - for(k = 0; - sizeof(Bigint) - sizeof(ULong) - sizeof(int) + j <= i; - j <<= 1) - k++; - r = (int*)Balloc(ptr, k); - if (r == NULL) - return ( -#ifndef MULTIPLE_THREADS - dtoa_result = -#endif - NULL); - *r = k; - return -#ifndef MULTIPLE_THREADS - dtoa_result = -#endif - (char *)(r+1); - } - - char * -#ifdef KR_headers -nrv_alloc(ptr, s, rve, n) struct _reent *ptr, char *s, **rve; int n; -#else -nrv_alloc(struct _reent *ptr, char *s, char **rve, int n) -#endif -{ - char *rv, *t; - - t = rv = rv_alloc(ptr, n); - if (t == NULL) - return (NULL); - while((*t = *s++) !=0) - t++; - if (rve) - *rve = t; - return rv; - } - -/* freedtoa(s) must be used to free values s returned by dtoa - * when MULTIPLE_THREADS is #defined. It should be used in all cases, - * but for consistency with earlier versions of dtoa, it is optional - * when MULTIPLE_THREADS is not defined. - */ - - void -#ifdef KR_headers -freedtoa(ptr, s) struct _reent *ptr, char *s; -#else -freedtoa(struct _reent *ptr, char *s) -#endif -{ - Bigint *b = (Bigint *)((int *)s - 1); - b->_maxwds = 1 << (b->_k = *(int*)b); - Bfree(ptr, b); -#ifndef MULTIPLE_THREADS - if (s == dtoa_result) - dtoa_result = 0; -#endif - } -DEF_STRONG(freedtoa); - - int -quorem -#ifdef KR_headers - (b, S) Bigint *b, *S; -#else - (Bigint *b, Bigint *S) -#endif -{ - int n; - ULong *bx, *bxe, q, *sx, *sxe; -#ifdef ULLong - ULLong borrow, carry, y, ys; -#else - ULong borrow, carry, y, ys; -#ifdef Pack_32 - ULong si, z, zs; -#endif -#endif - - n = S->_wds; -#ifdef DEBUG - /*debug*/ if (b->_wds > n) - /*debug*/ Bug("oversize b in quorem"); -#endif - if (b->_wds < n) - return 0; - sx = S->_x; - sxe = sx + --n; - bx = b->_x; - bxe = bx + n; - q = *bxe / (*sxe + 1); /* ensure q <= true quotient */ -#ifdef DEBUG - /*debug*/ if (q > 9) - /*debug*/ Bug("oversized quotient in quorem"); -#endif - if (q) { - borrow = 0; - carry = 0; - do { -#ifdef ULLong - ys = *sx++ * (ULLong)q + carry; - carry = ys >> 32; - y = *bx - (ys & 0xffffffffUL) - borrow; - borrow = y >> 32 & 1UL; - *bx++ = y & 0xffffffffUL; -#else -#ifdef Pack_32 - si = *sx++; - ys = (si & 0xffff) * q + carry; - zs = (si >> 16) * q + (ys >> 16); - carry = zs >> 16; - y = (*bx & 0xffff) - (ys & 0xffff) - borrow; - borrow = (y & 0x10000) >> 16; - z = (*bx >> 16) - (zs & 0xffff) - borrow; - borrow = (z & 0x10000) >> 16; - Storeinc(bx, z, y); -#else - ys = *sx++ * q + carry; - carry = ys >> 16; - y = *bx - (ys & 0xffff) - borrow; - borrow = (y & 0x10000) >> 16; - *bx++ = y & 0xffff; -#endif -#endif - } - while(sx <= sxe); - if (!*bxe) { - bx = b->_x; - while(--bxe > bx && !*bxe) - --n; - b->_wds = n; - } - } - if (cmp(b, S) >= 0) { - q++; - borrow = 0; - carry = 0; - bx = b->_x; - sx = S->_x; - do { -#ifdef ULLong - ys = *sx++ + carry; - carry = ys >> 32; - y = *bx - (ys & 0xffffffffUL) - borrow; - borrow = y >> 32 & 1UL; - *bx++ = y & 0xffffffffUL; -#else -#ifdef Pack_32 - si = *sx++; - ys = (si & 0xffff) + carry; - zs = (si >> 16) + (ys >> 16); - carry = zs >> 16; - y = (*bx & 0xffff) - (ys & 0xffff) - borrow; - borrow = (y & 0x10000) >> 16; - z = (*bx >> 16) - (zs & 0xffff) - borrow; - borrow = (z & 0x10000) >> 16; - Storeinc(bx, z, y); -#else - ys = *sx++ + carry; - carry = ys >> 16; - y = *bx - (ys & 0xffff) - borrow; - borrow = (y & 0x10000) >> 16; - *bx++ = y & 0xffff; -#endif -#endif - } - while(sx <= sxe); - bx = b->_x; - bxe = bx + n; - if (!*bxe) { - while(--bxe > bx && !*bxe) - --n; - b->_wds = n; - } - } - return q; - } -#endif /* _USE_GDTOA */ diff --git a/lib/stdlib/gdtoa-gdtoa.c b/lib/stdlib/gdtoa-gdtoa.c deleted file mode 100644 index da2338c..0000000 --- a/lib/stdlib/gdtoa-gdtoa.c +++ /dev/null @@ -1,837 +0,0 @@ -/**************************************************************** - -The author of this software is David M. Gay. - -Copyright (C) 1998, 1999 by Lucent Technologies -All Rights Reserved - -Permission to use, copy, modify, and distribute this software and -its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notice appear in all -copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the name of Lucent or any of its entities -not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. -IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY -SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER -IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - -****************************************************************/ - -/* Please send bug reports to David M. Gay (dmg at acm dot org, - * with " at " changed at "@" and " dot " changed to "."). */ - -#include -#include - -#ifdef _USE_GDTOA -#include "gdtoaimp.h" - - static Bigint * -#ifdef KR_headers -bitstob(ptr, bits, nbits, bbits) ULong *bits; -struct _reent ptr, int nbits; int *bbits; -#else -bitstob(struct _reent *ptr, ULong *bits, int nbits, int *bbits) -#endif -{ - int i, k; - Bigint *b; - ULong *be, *x, *x0; - - i = ULbits; - k = 0; - while(i < nbits) { - i <<= 1; - k++; - } -#ifndef Pack_32 - if (!k) - k = 1; -#endif - b = Balloc(ptr, k); - if (b == NULL) - return (NULL); - be = bits + ((nbits - 1) >> kshift); - x = x0 = b->_x; - do { - *x++ = *bits & ALL_ON; -#ifdef Pack_16 - *x++ = (*bits >> 16) & ALL_ON; -#endif - } while(++bits <= be); - i = x - x0; - while(!x0[--i]) - if (!i) { - b->_wds = 0; - *bbits = 0; - goto ret; - } - b->_wds = i + 1; - *bbits = i*ULbits + 32 - hi0bits(b->_x[i]); - ret: - return b; - } - -/* dtoa for IEEE arithmetic (dmg): convert double to ASCII string. - * - * Inspired by "How to Print Floating-Point Numbers Accurately" by - * Guy L. Steele, Jr. and Jon L. White [Proc. ACM SIGPLAN '90, pp. 112-126]. - * - * Modifications: - * 1. Rather than iterating, we use a simple numeric overestimate - * to determine k = floor(log10(d)). We scale relevant - * quantities using O(log2(k)) rather than O(k) multiplications. - * 2. For some modes > 2 (corresponding to ecvt and fcvt), we don't - * try to generate digits strictly left to right. Instead, we - * compute with fewer bits and propagate the carry if necessary - * when rounding the final digit up. This is often faster. - * 3. Under the assumption that input will be rounded nearest, - * mode 0 renders 1e23 as 1e23 rather than 9.999999999999999e22. - * That is, we allow equality in stopping tests when the - * round-nearest rule will give the same floating-point value - * as would satisfaction of the stopping test with strict - * inequality. - * 4. We remove common factors of powers of 2 from relevant - * quantities. - * 5. When converting floating-point integers less than 1e16, - * we use floating-point arithmetic rather than resorting - * to multiple-precision integers. - * 6. When asked to produce fewer than 15 digits, we first try - * to get by with floating-point arithmetic; we resort to - * multiple-precision integer arithmetic only if we cannot - * guarantee that the floating-point calculation has given - * the correctly rounded result. For k requested digits and - * "uniformly" distributed input, the probability is - * something like 10^(k-15) that we must resort to the Long - * calculation. - */ - - char * -gdtoa -#ifdef KR_headers - (ptr, fpi, be, bits, kindp, mode, ndigits, decpt, rve) - struct _reent *ptr, FPI *fpi; int be; ULong *bits; - int *kindp, mode, ndigits, *decpt; char **rve; -#else - (struct _reent *ptr, FPI *fpi, int be, ULong *bits, int *kindp, - int mode, int ndigits, int *decpt, char **rve) -#endif -{ - /* Arguments ndigits and decpt are similar to the second and third - arguments of ecvt and fcvt; trailing zeros are suppressed from - the returned string. If not null, *rve is set to point - to the end of the return value. If d is +-Infinity or NaN, - then *decpt is set to 9999. - be = exponent: value = (integer represented by bits) * (2 to the power of be). - - mode: - 0 ==> shortest string that yields d when read in - and rounded to nearest. - 1 ==> like 0, but with Steele & White stopping rule; - e.g. with IEEE P754 arithmetic , mode 0 gives - 1e23 whereas mode 1 gives 9.999999999999999e22. - 2 ==> max(1,ndigits) significant digits. This gives a - return value similar to that of ecvt, except - that trailing zeros are suppressed. - 3 ==> through ndigits past the decimal point. This - gives a return value similar to that from fcvt, - except that trailing zeros are suppressed, and - ndigits can be negative. - 4-9 should give the same return values as 2-3, i.e., - 4 <= mode <= 9 ==> same return as mode - 2 + (mode & 1). These modes are mainly for - debugging; often they run slower but sometimes - faster than modes 2-3. - 4,5,8,9 ==> left-to-right digit generation. - 6-9 ==> don't try fast floating-point estimate - (if applicable). - - Values of mode other than 0-9 are treated as mode 0. - - Sufficient space is allocated to the return value - to hold the suppressed trailing zeros. - */ - - int bbits, b2, b5, be0, dig, i, ieps, ilim, ilim0, ilim1, inex; - int j, j1, k, k0, k_check, kind, leftright, m2, m5, nbits; - int rdir, s2, s5, spec_case, try_quick; - Long L; - Bigint *b, *b1, *delta, *mlo, *mhi, *mhi1, *S; - double d2, ds; - char *s, *s0; - U d, eps; - -#ifndef MULTIPLE_THREADS - if (dtoa_result) { - freedtoa(ptr, dtoa_result); - dtoa_result = 0; - } -#endif - inex = 0; - kind = *kindp &= ~STRTOG_Inexact; - switch(kind & STRTOG_Retmask) { - case STRTOG_Zero: - goto ret_zero; - case STRTOG_Normal: - case STRTOG_Denormal: - break; - case STRTOG_Infinite: - *decpt = -32768; - return nrv_alloc(ptr, "Infinity", rve, 8); - case STRTOG_NaN: - *decpt = -32768; - return nrv_alloc(ptr, "NaN", rve, 3); - default: - return 0; - } - b = bitstob(ptr, bits, nbits = fpi->nbits, &bbits); - if (b == NULL) - return (NULL); - be0 = be; - if ( (i = trailz(b)) !=0) { - rshift(b, i); - be += i; - bbits -= i; - } - if (!b->_wds) { - Bfree(ptr, b); - ret_zero: - *decpt = 1; - return nrv_alloc(ptr, "0", rve, 1); - } - - dval(d) = b2d(b, &i); - i = be + bbits - 1; - word0(d) &= Frac_mask1; - word0(d) |= Exp_11; -#ifdef IBM - if ( (j = 11 - hi0bits(word0(d) & Frac_mask)) !=0) - dval(d) /= 1 << j; -#endif - - /* log(x) ~=~ log(1.5) + (x-1.5)/1.5 - * log10(x) = log(x) / log(10) - * ~=~ log(1.5)/log(10) + (x-1.5)/(1.5*log(10)) - * log10(&d) = (i-Bias)*log(2)/log(10) + log10(d2) - * - * This suggests computing an approximation k to log10(&d) by - * - * k = (i - Bias)*0.301029995663981 - * + ( (d2-1.5)*0.289529654602168 + 0.176091259055681 ); - * - * We want k to be too large rather than too small. - * The error in the first-order Taylor series approximation - * is in our favor, so we just round up the constant enough - * to compensate for any error in the multiplication of - * (i - Bias) by 0.301029995663981; since |i - Bias| <= 1077, - * and 1077 * 0.30103 * 2^-52 ~=~ 7.2e-14, - * adding 1e-13 to the constant term more than suffices. - * Hence we adjust the constant term to 0.1760912590558. - * (We could get a more accurate k by invoking log10, - * but this is probably not worthwhile.) - */ -#ifdef IBM - i <<= 2; - i += j; -#endif - ds = (dval(d)-1.5)*0.289529654602168 + 0.1760912590558 + i*0.301029995663981; - - /* correct assumption about exponent range */ - if ((j = i) < 0) - j = -j; - if ((j -= 1077) > 0) - ds += j * 7e-17; - - k = (int)ds; - if (ds < 0. && ds != k) - k--; /* want k = floor(ds) */ - k_check = 1; -#ifdef IBM - j = be + bbits - 1; - if ( (j1 = j & 3) !=0) - dval(d) *= 1 << j1; - word0(d) += j << Exp_shift - 2 & Exp_mask; -#else - word0(d) += (be + bbits - 1) << Exp_shift; -#endif - if (k >= 0 && k <= Ten_pmax) { - if (dval(d) < tens[k]) - k--; - k_check = 0; - } - j = bbits - i - 1; - if (j >= 0) { - b2 = 0; - s2 = j; - } - else { - b2 = -j; - s2 = 0; - } - if (k >= 0) { - b5 = 0; - s5 = k; - s2 += k; - } - else { - b2 -= k; - b5 = -k; - s5 = 0; - } - if (mode < 0 || mode > 9) - mode = 0; - try_quick = 1; - if (mode > 5) { - mode -= 4; - try_quick = 0; - } - else if (i >= -4 - Emin || i < Emin) - try_quick = 0; - leftright = 1; - ilim = ilim1 = -1; /* Values for cases 0 and 1; done here to */ - /* silence erroneous "gcc -Wall" warning. */ - switch(mode) { - case 0: - case 1: - i = (int)(nbits * .30103) + 3; - ndigits = 0; - break; - case 2: - leftright = 0; - /* no break */ - case 4: - if (ndigits <= 0) - ndigits = 1; - ilim = ilim1 = i = ndigits; - break; - case 3: - leftright = 0; - /* no break */ - case 5: - i = ndigits + k + 1; - ilim = i; - ilim1 = i - 1; - if (i <= 0) - i = 1; - } - s = s0 = rv_alloc(ptr, i); - if (s == NULL) - return (NULL); - - if ( (rdir = fpi->rounding - 1) !=0) { - if (rdir < 0) - rdir = 2; - if (kind & STRTOG_Neg) - rdir = 3 - rdir; - } - - /* Now rdir = 0 ==> round near, 1 ==> round up, 2 ==> round down. */ - - if (ilim >= 0 && ilim <= Quick_max && try_quick && !rdir -#ifndef IMPRECISE_INEXACT - && k == 0 -#endif - ) { - - /* Try to get by with floating-point arithmetic. */ - - i = 0; - d2 = dval(d); -#ifdef IBM - if ( (j = 11 - hi0bits(word0(d) & Frac_mask)) !=0) - dval(d) /= 1 << j; -#endif - k0 = k; - ilim0 = ilim; - ieps = 2; /* conservative */ - if (k > 0) { - ds = tens[k&0xf]; - j = k >> 4; - if (j & Bletch) { - /* prevent overflows */ - j &= Bletch - 1; - dval(d) /= bigtens[n_bigtens-1]; - ieps++; - } - for(; j; j >>= 1, i++) - if (j & 1) { - ieps++; - ds *= bigtens[i]; - } - } - else { - ds = 1.; - if ( (j1 = -k) !=0) { - dval(d) *= tens[j1 & 0xf]; - for(j = j1 >> 4; j; j >>= 1, i++) - if (j & 1) { - ieps++; - dval(d) *= bigtens[i]; - } - } - } - if (k_check && dval(d) < 1. && ilim > 0) { - if (ilim1 <= 0) - goto fast_failed; - ilim = ilim1; - k--; - dval(d) *= 10.; - ieps++; - } - dval(eps) = ieps*dval(d) + 7.; - word0(eps) -= (P-1)*Exp_msk1; - if (ilim == 0) { - S = mhi = 0; - dval(d) -= 5.; - if (dval(d) > dval(eps)) - goto one_digit; - if (dval(d) < -dval(eps)) - goto no_digits; - goto fast_failed; - } -#ifndef No_leftright - if (leftright) { - /* Use Steele & White method of only - * generating digits needed. - */ - dval(eps) = ds*0.5/tens[ilim-1] - dval(eps); - for(i = 0;;) { - L = (Long)(dval(d)/ds); - dval(d) -= L*ds; - *s++ = '0' + (int)L; - if (dval(d) < dval(eps)) { - if (dval(d)) - inex = STRTOG_Inexlo; - goto ret1; - } - if (ds - dval(d) < dval(eps)) - goto bump_up; - if (++i >= ilim) - break; - dval(eps) *= 10.; - dval(d) *= 10.; - } - } - else { -#endif - /* Generate ilim digits, then fix them up. */ - dval(eps) *= tens[ilim-1]; - for(i = 1;; i++, dval(d) *= 10.) { - if ( (L = (Long)(dval(d)/ds)) !=0) - dval(d) -= L*ds; - *s++ = '0' + (int)L; - if (i == ilim) { - ds *= 0.5; - if (dval(d) > ds + dval(eps)) - goto bump_up; - else if (dval(d) < ds - dval(eps)) { - if (dval(d)) - inex = STRTOG_Inexlo; - goto clear_trailing0; - } - break; - } - } -#ifndef No_leftright - } -#endif - fast_failed: - s = s0; - dval(d) = d2; - k = k0; - ilim = ilim0; - } - - /* Do we have a "small" integer? */ - - if (be >= 0 && k <= Int_max) { - /* Yes. */ - ds = tens[k]; - if (ndigits < 0 && ilim <= 0) { - S = mhi = 0; - if (ilim < 0 || dval(d) <= 5*ds) - goto no_digits; - goto one_digit; - } - for(i = 1;; i++, dval(d) *= 10.) { - L = dval(d) / ds; - dval(d) -= L*ds; -#ifdef Check_FLT_ROUNDS - /* If FLT_ROUNDS == 2, L will usually be high by 1 */ - if (dval(d) < 0) { - L--; - dval(d) += ds; - } -#endif - *s++ = '0' + (int)L; - if (dval(d) == 0.) - break; - if (i == ilim) { - if (rdir) { - if (rdir == 1) - goto bump_up; - inex = STRTOG_Inexlo; - goto ret1; - } - dval(d) += dval(d); -#ifdef ROUND_BIASED - if (dval(d) >= ds) -#else - if (dval(d) > ds || (dval(d) == ds && L & 1)) -#endif - { - bump_up: - inex = STRTOG_Inexhi; - while(*--s == '9') - if (s == s0) { - k++; - *s = '0'; - break; - } - ++*s++; - } - else { - inex = STRTOG_Inexlo; - clear_trailing0: - while(*--s == '0'){} - ++s; - } - break; - } - } - goto ret1; - } - - m2 = b2; - m5 = b5; - mhi = mlo = 0; - if (leftright) { - i = nbits - bbits; - if (be - i++ < fpi->emin && mode != 3 && mode != 5) { - /* denormal */ - i = be - fpi->emin + 1; - if (mode >= 2 && ilim > 0 && ilim < i) - goto small_ilim; - } - else if (mode >= 2) { - small_ilim: - j = ilim - 1; - if (m5 >= j) - m5 -= j; - else { - s5 += j -= m5; - b5 += j; - m5 = 0; - } - if ((i = ilim) < 0) { - m2 -= i; - i = 0; - } - } - b2 += i; - s2 += i; - mhi = i2b(ptr, 1); - if (mhi == NULL) - return (NULL); - } - if (m2 > 0 && s2 > 0) { - i = m2 < s2 ? m2 : s2; - b2 -= i; - m2 -= i; - s2 -= i; - } - if (b5 > 0) { - if (leftright) { - if (m5 > 0) { - mhi = pow5mult(ptr, mhi, m5); - if (mhi == NULL) - return (NULL); - b1 = mult(ptr, mhi, b); - if (b1 == NULL) - return (NULL); - Bfree(ptr, b); - b = b1; - } - if ( (j = b5 - m5) !=0) { - b = pow5mult(ptr, b, j); - if (b == NULL) - return (NULL); - } - } - else { - b = pow5mult(ptr, b, b5); - if (b == NULL) - return (NULL); - } - } - S = i2b(ptr, 1); - if (S == NULL) - return (NULL); - if (s5 > 0) { - S = pow5mult(ptr, S, s5); - if (S == NULL) - return (NULL); - } - - /* Check for special case that d is a normalized power of 2. */ - - spec_case = 0; - if (mode < 2) { - if (bbits == 1 && be0 > fpi->emin + 1) { - /* The special case */ - b2++; - s2++; - spec_case = 1; - } - } - - /* Arrange for convenient computation of quotients: - * shift left if necessary so divisor has 4 leading 0 bits. - * - * Perhaps we should just compute leading 28 bits of S once - * and for all and pass them and a shift to quorem, so it - * can do shifts and ors to compute the numerator for q. - */ - i = ((s5 ? hi0bits(S->_x[S->_wds-1]) : ULbits - 1) - s2 - 4) & kmask; - m2 += i; - if ((b2 += i) > 0) { - b = lshift(ptr, b, b2); - if (b == NULL) - return (NULL); - } - if ((s2 += i) > 0) { - S = lshift(ptr, S, s2); - if (S == NULL) - return (NULL); - } - if (k_check) { - if (cmp(b,S) < 0) { - k--; - b = multadd(ptr, b, 10, 0); /* we botched the k estimate */ - if (b == NULL) - return (NULL); - if (leftright) { - mhi = multadd(ptr, mhi, 10, 0); - if (mhi == NULL) - return (NULL); - } - ilim = ilim1; - } - } - if (ilim <= 0 && mode > 2) { - S = multadd(ptr, S,5,0); - if (S == NULL) - return (NULL); - if (ilim < 0 || cmp(b,S) <= 0) { - /* no digits, fcvt style */ - no_digits: - k = -1 - ndigits; - inex = STRTOG_Inexlo; - goto ret; - } - one_digit: - inex = STRTOG_Inexhi; - *s++ = '1'; - k++; - goto ret; - } - if (leftright) { - if (m2 > 0) { - mhi = lshift(ptr, mhi, m2); - if (mhi == NULL) - return (NULL); - } - - /* Compute mlo -- check for special case - * that d is a normalized power of 2. - */ - - mlo = mhi; - if (spec_case) { - mhi = Balloc(ptr, mhi->_k); - if (mhi == NULL) - return (NULL); - Bcopy(mhi, mlo); - mhi = lshift(ptr, mhi, 1); - if (mhi == NULL) - return (NULL); - } - - for(i = 1;;i++) { - dig = quorem(b,S) + '0'; - /* Do we yet have the shortest decimal string - * that will round to d? - */ - j = cmp(b, mlo); - delta = diff(ptr, S, mhi); - if (delta == NULL) - return (NULL); - j1 = delta->_sign ? 1 : cmp(b, delta); - Bfree(ptr, delta); -#ifndef ROUND_BIASED - if (j1 == 0 && !mode && !(bits[0] & 1) && !rdir) { - if (dig == '9') - goto round_9_up; - if (j <= 0) { - if (b->_wds > 1 || b->_x[0]) - inex = STRTOG_Inexlo; - } - else { - dig++; - inex = STRTOG_Inexhi; - } - *s++ = dig; - goto ret; - } -#endif - if (j < 0 || (j == 0 && !mode -#ifndef ROUND_BIASED - && !(bits[0] & 1) -#endif - )) { - if (rdir && (b->_wds > 1 || b->_x[0])) { - if (rdir == 2) { - inex = STRTOG_Inexlo; - goto accept; - } - while (cmp(S,mhi) > 0) { - *s++ = dig; - mhi1 = multadd(ptr, mhi, 10, 0); - if (mhi1 == NULL) - return (NULL); - if (mlo == mhi) - mlo = mhi1; - mhi = mhi1; - b = multadd(ptr, b, 10, 0); - if (b == NULL) - return (NULL); - dig = quorem(b,S) + '0'; - } - if (dig++ == '9') - goto round_9_up; - inex = STRTOG_Inexhi; - goto accept; - } - if (j1 > 0) { - b = lshift(ptr, b, 1); - if (b == NULL) - return (NULL); - j1 = cmp(b, S); -#ifdef ROUND_BIASED - if (j1 >= 0 /*)*/ -#else - if ((j1 > 0 || (j1 == 0 && dig & 1)) -#endif - && dig++ == '9') - goto round_9_up; - inex = STRTOG_Inexhi; - } - if (b->_wds > 1 || b->_x[0]) - inex = STRTOG_Inexlo; - accept: - *s++ = dig; - goto ret; - } - if (j1 > 0 && rdir != 2) { - if (dig == '9') { /* possible if i == 1 */ - round_9_up: - *s++ = '9'; - inex = STRTOG_Inexhi; - goto roundoff; - } - inex = STRTOG_Inexhi; - *s++ = dig + 1; - goto ret; - } - *s++ = dig; - if (i == ilim) - break; - b = multadd(ptr, b, 10, 0); - if (b == NULL) - return (NULL); - if (mlo == mhi) { - mlo = mhi = multadd(ptr, mhi, 10, 0); - if (mlo == NULL) - return (NULL); - } - else { - mlo = multadd(ptr, mlo, 10, 0); - if (mlo == NULL) - return (NULL); - mhi = multadd(ptr, mhi, 10, 0); - if (mhi == NULL) - return (NULL); - } - } - } - else - for(i = 1;; i++) { - *s++ = dig = quorem(b,S) + '0'; - if (i >= ilim) - break; - b = multadd(ptr, b, 10, 0); - if (b == NULL) - return (NULL); - } - - /* Round off last digit */ - - if (rdir) { - if (rdir == 2 || (b->_wds <= 1 && !b->_x[0])) - goto chopzeros; - goto roundoff; - } - b = lshift(ptr, b, 1); - if (b == NULL) - return (NULL); - j = cmp(b, S); -#ifdef ROUND_BIASED - if (j >= 0) -#else - if (j > 0 || (j == 0 && dig & 1)) -#endif - { - roundoff: - inex = STRTOG_Inexhi; - while(*--s == '9') - if (s == s0) { - k++; - *s++ = '1'; - goto ret; - } - ++*s++; - } - else { - chopzeros: - if (b->_wds > 1 || b->_x[0]) - inex = STRTOG_Inexlo; - while(*--s == '0'){} - ++s; - } - ret: - Bfree(ptr, S); - if (mhi) { - if (mlo && mlo != mhi) - Bfree(ptr, mlo); - Bfree(ptr, mhi); - } - ret1: - Bfree(ptr, b); - *s = 0; - *decpt = k + 1; - if (rve) - *rve = s; - *kindp |= inex; - return s0; - } -DEF_STRONG(gdtoa); -#endif /* _USE_GDTOA */ diff --git a/lib/stdlib/gdtoa-gethex.c b/lib/stdlib/gdtoa-gethex.c deleted file mode 100644 index 74f30e6..0000000 --- a/lib/stdlib/gdtoa-gethex.c +++ /dev/null @@ -1,359 +0,0 @@ -/**************************************************************** - -The author of this software is David M. Gay. - -Copyright (C) 1998 by Lucent Technologies -All Rights Reserved - -Permission to use, copy, modify, and distribute this software and -its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notice appear in all -copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the name of Lucent or any of its entities -not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. -IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY -SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER -IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - -****************************************************************/ - -/* Please send bug reports to David M. Gay (dmg at acm dot org, - * with " at " changed at "@" and " dot " changed to "."). */ - -#include <_ansi.h> -#include -#include -#include -#include "mprec.h" -#include "gdtoa.h" - -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) && !defined(_SMALL_HEXDIG) -const unsigned char __hexdig[256]= -{ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,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,17,18,19,20,21,22,23,24,25,0,0,0,0,0,0, - 0,26,27,28,29,30,31,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,26,27,28,29,30,31,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -}; -#else /* !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) && !defined(_SMALL_HEXDIG) */ -unsigned char -__hexdig_fun (unsigned char c) -{ - if(c>='0' && c<='9') return c-'0'+0x10; - else if(c>='a' && c<='f') return c-'a'+0x10+10; - else if(c>='A' && c<='F') return c-'A'+0x10+10; - else return 0; -} -#endif /* !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) && !defined(_SMALL_HEXDIG) */ - -static void -rshift (_Bigint *b, - int k) -{ - __ULong *x, *x1, *xe, y; - int n; - - x = x1 = b->_x; - n = k >> kshift; - if (n < b->_wds) { - xe = x + b->_wds; - x += n; - if (k &= kmask) { - n = ULbits - k; - y = *x++ >> k; - while(x < xe) { - *x1++ = (y | (*x << n)) & ALL_ON; - y = *x++ >> k; - } - if ((*x1 = y) !=0) - x1++; - } - else - while(x < xe) - *x1++ = *x++; - } - if ((b->_wds = x1 - b->_x) == 0) - b->_x[0] = 0; -} - -static _Bigint * -increment (struct _reent *ptr, - _Bigint *b) -{ - __ULong *x, *xe; - _Bigint *b1; -#ifdef Pack_16 - __ULong carry = 1, y; -#endif - - x = b->_x; - xe = x + b->_wds; -#ifdef Pack_32 - do { - if (*x < (__ULong)0xffffffffL) { - ++*x; - return b; - } - *x++ = 0; - } while(x < xe); -#else - do { - y = *x + carry; - carry = y >> 16; - *x++ = y & 0xffff; - if (!carry) - return b; - } while(x < xe); - if (carry) -#endif - { - if (b->_wds >= b->_maxwds) { - b1 = eBalloc(ptr, b->_k+1); - Bcopy(b1, b); - Bfree(ptr, b); - b = b1; - } - b->_x[b->_wds++] = 1; - } - return b; -} - - -int -gethex (struct _reent *ptr, const char **sp, const FPI *fpi, - Long *exp, _Bigint **bp, int sign, locale_t loc) -{ - _Bigint *b; - const unsigned char *decpt, *s0, *s, *s1; - int esign, havedig, irv, k, n, nbits, up, zret; - __ULong L, lostbits, *x; - Long e, e1; -#ifdef __HAVE_LOCALE_INFO__ - const unsigned char *decimalpoint = (const unsigned char *) - __get_numeric_locale(loc)->decimal_point; - const size_t decp_len = strlen ((const char *) decimalpoint); - const unsigned char decp_end = decimalpoint[decp_len - 1]; -#else - const unsigned char *decimalpoint = (const unsigned char *) "."; - const size_t decp_len = 1; - const unsigned char decp_end = (unsigned char) '.'; -#endif - - havedig = 0; - s0 = *(const unsigned char **)sp + 2; - while(s0[havedig] == '0') - havedig++; - s0 += havedig; - s = s0; - decpt = 0; - zret = 0; - e = 0; - if (!__get_hexdig(*s)) { - zret = 1; - if (strncmp ((const char *) s, (const char *) decimalpoint, - decp_len) != 0) - goto pcheck; - decpt = (s += decp_len); - if (!__get_hexdig(*s)) - goto pcheck; - while(*s == '0') - s++; - if (__get_hexdig(*s)) - zret = 0; - havedig = 1; - s0 = s; - } - while(__get_hexdig(*s)) - s++; - if (strncmp ((const char *) s, (const char *) decimalpoint, - decp_len) == 0 - && !decpt) { - decpt = (s += decp_len); - while(__get_hexdig(*s)) - s++; - } - if (decpt) - e = -(((Long)(s-decpt)) << 2); - pcheck: - s1 = s; - switch(*s) { - case 'p': - case 'P': - esign = 0; - switch(*++s) { - case '-': - esign = 1; - /* no break */ - case '+': - s++; - } - if ((n = __get_hexdig(*s)) == 0 || n > 0x19) { - s = s1; - break; - } - e1 = n - 0x10; - while((n = __get_hexdig(*++s)) !=0 && n <= 0x19) - e1 = 10*e1 + n - 0x10; - if (esign) - e1 = -e1; - e += e1; - } - *sp = (char*)s; - if (zret) - return havedig ? STRTOG_Zero : STRTOG_NoNumber; - n = s1 - s0 - 1; - for(k = 0; n > 7; n >>= 1) - k++; - b = eBalloc(ptr, k); - x = b->_x; - n = 0; - L = 0; - while(s1 > s0) { - if (*--s1 == decp_end && s1 - decp_len + 1 >= s0 - && strncmp ((const char *) s1 - decp_len + 1, - (const char *) decimalpoint, decp_len) == 0) { - s1 -= decp_len - 1; /* Note the --s1 above! */ - continue; - } - if (n == 32) { - *x++ = L; - L = 0; - n = 0; - } - L |= (__get_hexdig(*s1) & 0x0f) << n; - n += 4; - } - *x++ = L; - b->_wds = n = x - b->_x; - n = 32*n - hi0bits(L); - nbits = fpi->nbits; - lostbits = 0; - x = b->_x; - if (n > nbits) { - n -= nbits; - if (any_on(b,n)) { - lostbits = 1; - k = n - 1; - if (x[k>>kshift] & 1 << (k & kmask)) { - lostbits = 2; - if (k > 1 && any_on(b,k-1)) - lostbits = 3; - } - } - rshift(b, n); - e += n; - } - else if (n < nbits) { - n = nbits - n; - b = lshift(ptr, b, n); - e -= n; - x = b->_x; - } - if (e > fpi->emax) { - ovfl: - Bfree(ptr, b); - *bp = 0; - return STRTOG_Infinite | STRTOG_Overflow | STRTOG_Inexhi; - } - irv = STRTOG_Normal; - if (e < fpi->emin) { - irv = STRTOG_Denormal; - n = fpi->emin - e; - if (n >= nbits) { - switch (fpi->rounding) { - case FPI_Round_near: - if (n == nbits && (n < 2 || any_on(b,n-1))) - goto one_bit; - break; - case FPI_Round_up: - if (!sign) - goto one_bit; - break; - case FPI_Round_down: - if (sign) { - one_bit: - *exp = fpi->emin; - x[0] = b->_wds = 1; - *bp = b; - return STRTOG_Denormal | STRTOG_Inexhi - | STRTOG_Underflow; - } - } - Bfree(ptr, b); - *bp = 0; - return STRTOG_Zero | STRTOG_Inexlo | STRTOG_Underflow; - } - k = n - 1; - if (lostbits) - lostbits = 1; - else if (k > 0) - lostbits = any_on(b,k); - if (x[k>>kshift] & 1 << (k & kmask)) - lostbits |= 2; - nbits -= n; - rshift(b,n); - e = fpi->emin; - } - if (lostbits) { - up = 0; - switch(fpi->rounding) { - case FPI_Round_zero: - break; - case FPI_Round_near: - if ((lostbits & 2) - && ((lostbits & 1) | (x[0] & 1))) - up = 1; - break; - case FPI_Round_up: - up = 1 - sign; - break; - case FPI_Round_down: - up = sign; - } - if (up) { - k = b->_wds; - b = increment(ptr, b); - x = b->_x; - if (irv == STRTOG_Denormal) { - if (nbits == fpi->nbits - 1 - && x[nbits >> kshift] & 1 << (nbits & kmask)) - irv = STRTOG_Normal; - } - else if ((b->_wds > k) - || ((n = nbits & kmask) !=0 - && (hi0bits(x[k-1]) < 32-n))) { - rshift(b,1); - if (++e > fpi->emax) - goto ovfl; - } - irv |= STRTOG_Inexhi; - } - else - irv |= STRTOG_Inexlo; - } - *bp = b; - *exp = e; - return irv; -} - diff --git a/lib/stdlib/gdtoa-gmisc.c b/lib/stdlib/gdtoa-gmisc.c deleted file mode 100644 index 40c3c2d..0000000 --- a/lib/stdlib/gdtoa-gmisc.c +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************** - -The author of this software is David M. Gay. - -Copyright (C) 1998 by Lucent Technologies -All Rights Reserved - -Permission to use, copy, modify, and distribute this software and -its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notice appear in all -copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the name of Lucent or any of its entities -not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. -IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY -SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER -IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - -****************************************************************/ - -/* Please send bug reports to David M. Gay (dmg at acm dot org, - * with " at " changed at "@" and " dot " changed to "."). */ - -#include -#include - -#ifdef _USE_GDTOA -#include "gdtoaimp.h" - - void -#ifdef KR_headers -rshift(b, k) Bigint *b; int k; -#else -rshift(Bigint *b, int k) -#endif -{ - ULong *x, *x1, *xe, y; - int n; - - x = x1 = b->_x; - n = k >> kshift; - if (n < b->_wds) { - xe = x + b->_wds; - x += n; - if (k &= kmask) { - n = ULbits - k; - y = *x++ >> k; - while(x < xe) { - *x1++ = (y | (*x << n)) & ALL_ON; - y = *x++ >> k; - } - if ((*x1 = y) !=0) - x1++; - } - else - while(x < xe) - *x1++ = *x++; - } - if ((b->_wds = x1 - b->_x) == 0) - b->_x[0] = 0; - } - - int -#ifdef KR_headers -trailz(b) Bigint *b; -#else -trailz(Bigint *b) -#endif -{ - ULong L, *x, *xe; - int n = 0; - - x = b->_x; - xe = x + b->_wds; - for(n = 0; x < xe && !*x; x++) - n += ULbits; - if (x < xe) { - L = *x; - n += lo0bits(&L); - } - return n; - } -#endif /* _USE_GDTOA */ diff --git a/lib/stdlib/gdtoa-hexnan.c b/lib/stdlib/gdtoa-hexnan.c deleted file mode 100644 index a17e5a6..0000000 --- a/lib/stdlib/gdtoa-hexnan.c +++ /dev/null @@ -1,155 +0,0 @@ -/**************************************************************** - -The author of this software is David M. Gay. - -Copyright (C) 2000 by Lucent Technologies -All Rights Reserved - -Permission to use, copy, modify, and distribute this software and -its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notice appear in all -copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the name of Lucent or any of its entities -not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. -IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY -SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER -IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - -****************************************************************/ - -/* Please send bug reports to - David M. Gay - Bell Laboratories, Room 2C-463 - 600 Mountain Avenue - Murray Hill, NJ 07974-0636 - U.S.A. - dmg@bell-labs.com - */ - -/* Modified 06-21-2006 by Jeff Johnston to work with newlib. */ - -#include <_ansi.h> -#include -#include -#include "mprec.h" -#include "gdtoa.h" - -#ifdef INFNAN_CHECK -int -match (const char **sp, - char *t) -{ - int c, d; - const char *s = *sp; - - while( (d = *t++) !=0) { - if ((c = *++s) >= 'A' && c <= 'Z') - c += 'a' - 'A'; - if (c != d) - return 0; - } - *sp = s + 1; - return 1; -} - -static void -L_shift (__ULong *x, - __ULong *x1, - int i) -{ - int j; - - i = 8 - i; - i <<= 2; - j = ULbits - i; - do { - *x |= x[1] << j; - x[1] >>= i; - } while(++x < x1); -} - -int -hexnan (const char **sp, - const FPI *fpi, - __ULong *x0) -{ - __ULong c, h, *x, *x1, *xe; - const char *s; - int havedig, hd0, i, nbits; - - nbits = fpi->nbits; - x = x0 + (nbits >> kshift); - if (nbits & kmask) - x++; - *--x = 0; - x1 = xe = x; - havedig = hd0 = i = 0; - s = *sp; - while((c = *(const unsigned char*)++s)) { - if (!(h = __get_hexdig(c))) { - if (c <= ' ') { - if (hd0 < havedig) { - if (x < x1 && i < 8) - L_shift(x, x1, i); - if (x <= x0) { - i = 8; - continue; - } - hd0 = havedig; - *--x = 0; - x1 = x; - i = 0; - } - continue; - } - if (/*(*/ c == ')') { - *sp = s + 1; - break; - } - return STRTOG_NaN; - } - havedig++; - if (++i > 8) { - if (x <= x0) - continue; - i = 1; - *--x = 0; - } - *x = ((*x << 4) | (h & 0xf)); - } - if (!havedig) - return STRTOG_NaN; - if (x < x1 && i < 8) - L_shift(x, x1, i); - if (x > x0) { - x1 = x0; - do *x1++ = *x++; - while(x <= xe); - do *x1++ = 0; - while(x1 <= xe); - } - else { - /* truncate high-order word if necessary */ - if ( (i = nbits & (ULbits-1)) !=0) - *xe &= ((__ULong)0xffffffff) >> (ULbits - i); - } - for(x1 = xe;; --x1) { - if (*x1 != 0) - break; - if (x1 == x0) { - *x1 = 1; - break; - } - } - return STRTOG_NaNbits; -} -#endif /* INFNAN_CHECK */ diff --git a/lib/stdlib/gdtoa-ldtoa.c b/lib/stdlib/gdtoa-ldtoa.c deleted file mode 100644 index 14b9904..0000000 --- a/lib/stdlib/gdtoa-ldtoa.c +++ /dev/null @@ -1,159 +0,0 @@ -/* $OpenBSD: ldtoa.c,v 1.4 2016/03/09 16:28:47 deraadt Exp $ */ -/*- - * Copyright (c) 2003 David Schultz - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#ifdef _USE_GDTOA -#include -#include -#include -#include -#include -#include -#include -#include "gdtoaimp.h" - -#if (LDBL_MANT_DIG > DBL_MANT_DIG) - -/* - * ldtoa() is a wrapper for gdtoa() that makes it smell like dtoa(), - * except that the floating point argument is passed by reference. - * When dtoa() is passed a NaN or infinity, it sets expt to 9999. - * However, a long double could have a valid exponent of 9999, so we - * use INT_MAX in ldtoa() instead. - */ -char * -_ldtoa_r(struct _reent *ptr, - long double ld, int mode, int ndigits, int *decpt, int *sign, char **rve) -{ - FPI fpi = { - LDBL_MANT_DIG, /* nbits */ - LDBL_MIN_EXP - LDBL_MANT_DIG, /* emin */ - LDBL_MAX_EXP - LDBL_MANT_DIG, /* emax */ - FLT_ROUNDS, /* rounding */ -#ifdef Sudden_Underflow /* unused, but correct anyway */ - 1 -#else - 0 -#endif - }; - int be, kind; - char *ret; - struct ieee_ext *p = (struct ieee_ext *)&ld; - uint32_t bits[(LDBL_MANT_DIG + 31) / 32]; - void *vbits = bits; - - _REENT_CHECK_MP (ptr); - - /* reentrancy addition to use mprec storage pool */ - if (_REENT_MP_RESULT (ptr)) { - _REENT_MP_RESULT (ptr)->_k = _REENT_MP_RESULT_K (ptr); - _REENT_MP_RESULT (ptr)->_maxwds = 1 << _REENT_MP_RESULT_K (ptr); - Bfree (ptr, _REENT_MP_RESULT (ptr)); - _REENT_MP_RESULT (ptr) = 0; - } - - /* - * gdtoa doesn't know anything about the sign of the number, so - * if the number is negative, we need to swap rounding modes of - * 2 (upwards) and 3 (downwards). - */ - *sign = p->ext_sign; - fpi.rounding ^= (fpi.rounding >> 1) & p->ext_sign; - - be = p->ext_exp - (LDBL_MAX_EXP - 1) - (LDBL_MANT_DIG - 1); - EXT_TO_ARRAY32(p, bits); - - switch (fpclassify(ld)) { - case FP_NORMAL: - kind = STRTOG_Normal; -#ifdef EXT_IMPLICIT_NBIT - bits[LDBL_MANT_DIG / 32] |= 1 << ((LDBL_MANT_DIG - 1) % 32); -#endif /* EXT_IMPLICIT_NBIT */ - break; - case FP_ZERO: - kind = STRTOG_Zero; - break; - case FP_SUBNORMAL: - kind = STRTOG_Denormal; - be++; - break; - case FP_INFINITE: - kind = STRTOG_Infinite; - break; - case FP_NAN: - kind = STRTOG_NaN; - break; - default: - abort(); - } - - ret = gdtoa(ptr, &fpi, be, vbits, &kind, mode, ndigits, decpt, rve); - if (*decpt == -32768) - *decpt = INT_MAX; - return ret; -} -DEF_STRONG(_ldtoa_r); - -#else /* (LDBL_MANT_DIG == DBL_MANT_DIG) */ - -char * -_ldtoa_r(struct _reent *ptr, - long double ld, int mode, int ndigits, int *decpt, int *sign, - char **rve) -{ - char *ret; - - ret = _dtoa_r(ptr, (double)ld, mode, ndigits, decpt, sign, rve); - if (*decpt == 9999) - *decpt = INT_MAX; - return ret; -} -DEF_STRONG(_ldtoa_r); - -#endif /* (LDBL_MANT_DIG == DBL_MANT_DIG) */ - -/* Routine used to tell if long double is NaN or Infinity or regular number. - Returns: 0 = regular number - 1 = Nan - 2 = Infinity -*/ -int -_ldcheck (long double *d) -{ - switch (fpclassify(*d)) { - case FP_NAN: - return 1; - case FP_INFINITE: - return 2; - default: - return 0; - } -} - -#endif /* _USE_GDTOA */ diff --git a/lib/stdlib/gdtoa.h b/lib/stdlib/gdtoa.h deleted file mode 100644 index f4d2a56..0000000 --- a/lib/stdlib/gdtoa.h +++ /dev/null @@ -1,172 +0,0 @@ -/**************************************************************** - -The author of this software is David M. Gay. - -Copyright (C) 1998 by Lucent Technologies -All Rights Reserved - -Permission to use, copy, modify, and distribute this software and -its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notice appear in all -copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the name of Lucent or any of its entities -not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. -IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY -SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER -IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - -****************************************************************/ - -/* Please send bug reports to David M. Gay (dmg at acm dot org, - * with " at " changed at "@" and " dot " changed to "."). */ - -#ifndef GDTOA_H_INCLUDED -#define GDTOA_H_INCLUDED - -#include /* for size_t */ -#include - -#define PROTO_NORMAL(x) -#define __BEGIN_HIDDEN_DECLS -#define __END_HIDDEN_DECLS -#define DEF_STRONG(x) - -#ifndef ULong -#define ULong __ULong -#endif - -#ifndef ANSI -#ifdef KR_headers -#define ANSI(x) () -#define Void /*nothing*/ -#else -#define ANSI(x) x -#define Void void -#endif -#endif /* ANSI */ - -#ifndef CONST -#ifdef KR_headers -#define CONST /* blank */ -#else -#define CONST const -#endif -#endif /* CONST */ - - enum { /* return values from strtodg */ - STRTOG_Zero = 0x000, - STRTOG_Normal = 0x001, - STRTOG_Denormal = 0x002, - STRTOG_Infinite = 0x003, - STRTOG_NaN = 0x004, - STRTOG_NaNbits = 0x005, - STRTOG_NoNumber = 0x006, - STRTOG_NoMemory = 0x007, - STRTOG_Retmask = 0x00f, - - /* The following may be or-ed into one of the above values. */ - - STRTOG_Inexlo = 0x010, /* returned result rounded toward zero */ - STRTOG_Inexhi = 0x020, /* returned result rounded away from zero */ - STRTOG_Inexact = 0x030, - STRTOG_Underflow= 0x040, - STRTOG_Overflow = 0x080, - STRTOG_Neg = 0x100 /* does not affect STRTOG_Inexlo or STRTOG_Inexhi */ - }; - - typedef struct -FPI { - int nbits; - int emin; - int emax; - int rounding; - int sudden_underflow; - } FPI; - -enum { /* FPI.rounding values: same as FLT_ROUNDS */ - FPI_Round_zero = 0, - FPI_Round_near = 1, - FPI_Round_up = 2, - FPI_Round_down = 3 - }; - -typedef unsigned short __UShort; -typedef struct _Bigint Bigint; - -#ifdef __cplusplus -extern "C" { -#endif - -extern char* __dtoa ANSI((struct _reent *ptr, - double d, int mode, int ndigits, int *decpt, - int *sign, char **rve)); -extern char* __gdtoa ANSI((struct _reent *ptr, - FPI *fpi, int be, ULong *bits, int *kindp, - int mode, int ndigits, int *decpt, char **rve)); -extern void __freedtoa ANSI((struct _reent *, char*)); -extern float strtof ANSI((CONST char *, char **)); -extern double strtod ANSI((CONST char *, char **)); -extern int __strtodg ANSI((CONST char*, char**, FPI*, Long*, ULong*)); -char *__hdtoa(double, const char *, int, int *, int *, char **); -char *__hldtoa(long double, const char *, int, int *, int *, char **); -char *__ldtoa(struct _reent *ptr, - long double *, int, int, int *, int *, char **); - -PROTO_NORMAL(__dtoa); -PROTO_NORMAL(__gdtoa); -PROTO_NORMAL(__freedtoa); -PROTO_NORMAL(__hdtoa); -PROTO_NORMAL(__hldtoa); -PROTO_NORMAL(__ldtoa); - -__BEGIN_HIDDEN_DECLS -extern char* __g_ddfmt ANSI((char*, double*, int, size_t)); -extern char* __g_dfmt ANSI((char*, double*, int, size_t)); -extern char* __g_ffmt ANSI((char*, float*, int, size_t)); -extern char* __g_Qfmt ANSI((char*, void*, int, size_t)); -extern char* __g_xfmt ANSI((char*, void*, int, size_t)); -extern char* __g_xLfmt ANSI((char*, void*, int, size_t)); - -extern int __strtoId ANSI((CONST char*, char**, double*, double*)); -extern int __strtoIdd ANSI((CONST char*, char**, double*, double*)); -extern int __strtoIf ANSI((CONST char*, char**, float*, float*)); -extern int __strtoIQ ANSI((CONST char*, char**, void*, void*)); -extern int __strtoIx ANSI((CONST char*, char**, void*, void*)); -extern int __strtoIxL ANSI((CONST char*, char**, void*, void*)); -extern int __strtord ANSI((CONST char*, char**, int, double*)); -extern int __strtordd ANSI((CONST char*, char**, int, double*)); -extern int __strtorf ANSI((CONST char*, char**, int, float*)); -extern int __strtorQ ANSI((CONST char*, char**, int, void*)); -extern int __strtorx ANSI((CONST char*, char**, int, void*)); -extern int __strtorxL ANSI((CONST char*, char**, int, void*)); -#if 1 -extern int __strtodI ANSI((CONST char*, char**, double*)); -extern int __strtopd ANSI((CONST char*, char**, double*)); -extern int __strtopdd ANSI((CONST char*, char**, double*)); -extern int __strtopf ANSI((CONST char*, char**, float*)); -extern int __strtopQ ANSI((CONST char*, char**, void*)); -extern int __strtopx ANSI((CONST char*, char**, void*)); -extern int __strtopxL ANSI((CONST char*, char**, void*)); -#else -#define __strtopd(s,se,x) strtord(s,se,1,x) -#define __strtopdd(s,se,x) strtordd(s,se,1,x) -#define __strtopf(s,se,x) strtorf(s,se,1,x) -#define __strtopQ(s,se,x) strtorQ(s,se,1,x) -#define __strtopx(s,se,x) strtorx(s,se,1,x) -#define __strtopxL(s,se,x) strtorxL(s,se,1,x) -#endif -__END_HIDDEN_DECLS - -#ifdef __cplusplus -} -#endif -#endif /* GDTOA_H_INCLUDED */ diff --git a/lib/stdlib/gdtoaimp.h b/lib/stdlib/gdtoaimp.h deleted file mode 100644 index f2da3fc..0000000 --- a/lib/stdlib/gdtoaimp.h +++ /dev/null @@ -1,206 +0,0 @@ -/**************************************************************** - -The author of this software is David M. Gay. - -Copyright (C) 1998-2000 by Lucent Technologies -All Rights Reserved - -Permission to use, copy, modify, and distribute this software and -its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notice appear in all -copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the name of Lucent or any of its entities -not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. -IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY -SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER -IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - -****************************************************************/ - -/* This is a variation on dtoa.c that converts arbitary binary - floating-point formats to and from decimal notation. It uses - double-precision arithmetic internally, so there are still - various #ifdefs that adapt the calculations to the native - double-precision arithmetic (any of IEEE, VAX D_floating, - or IBM mainframe arithmetic). - - Please send bug reports to David M. Gay (dmg at acm dot org, - with " at " changed at "@" and " dot " changed to "."). - */ - -/* On a machine with IEEE extended-precision registers, it is - * necessary to specify double-precision (53-bit) rounding precision - * before invoking strtod or dtoa. If the machine uses (the equivalent - * of) Intel 80x87 arithmetic, the call - * _control87(PC_53, MCW_PC); - * does this with many compilers. Whether this or another call is - * appropriate depends on the compiler; for this to work, it may be - * necessary to #include "float.h" or another system-dependent header - * file. - */ - -/* strtod for IEEE-, VAX-, and IBM-arithmetic machines. - * - * This strtod returns a nearest machine number to the input decimal - * string (or sets errno to ERANGE). With IEEE arithmetic, ties are - * broken by the IEEE round-even rule. Otherwise ties are broken by - * biased rounding (add half and chop). - * - * Inspired loosely by William D. Clinger's paper "How to Read Floating - * Point Numbers Accurately" [Proc. ACM SIGPLAN '90, pp. 112-126]. - * - * Modifications: - * - * 1. We only require IEEE, IBM, or VAX double-precision - * arithmetic (not IEEE double-extended). - * 2. We get by with floating-point arithmetic in a case that - * Clinger missed -- when we're computing d * 10^n - * for a small integer d and the integer n is not too - * much larger than 22 (the maximum integer k for which - * we can represent 10^k exactly), we may be able to - * compute (d*10^k) * 10^(e-k) with just one roundoff. - * 3. Rather than a bit-at-a-time adjustment of the binary - * result in the hard case, we use floating-point - * arithmetic to determine the adjustment to within - * one bit; only in really hard cases do we need to - * compute a second residual. - * 4. Because of 3., we don't need a large table of powers of 10 - * for ten-to-e (just some small tables, e.g. of 10^k - * for 0 <= k <= 22). - */ - -/* - * #define IEEE_8087 for IEEE-arithmetic machines where the least - * significant byte has the lowest address. - * #define IEEE_MC68k for IEEE-arithmetic machines where the most - * significant byte has the lowest address. - * #define Long int on machines with 32-bit ints and 64-bit longs. - * #define Sudden_Underflow for IEEE-format machines without gradual - * underflow (i.e., that flush to zero on underflow). - * #define IBM for IBM mainframe-style floating-point arithmetic. - * #define VAX for VAX-style floating-point arithmetic (D_floating). - * #define No_leftright to omit left-right logic in fast floating-point - * computation of dtoa and gdtoa. This will cause modes 4 and 5 to be - * treated the same as modes 2 and 3 for some inputs. - * #define Check_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3. - * #define RND_PRODQUOT to use rnd_prod and rnd_quot (assembly routines - * that use extended-precision instructions to compute rounded - * products and quotients) with IBM. - * #define ROUND_BIASED for IEEE-format with biased rounding and arithmetic - * that rounds toward +Infinity. - * #define ROUND_BIASED_without_Round_Up for IEEE-format with biased - * rounding when the underlying floating-point arithmetic uses - * unbiased rounding. This prevent using ordinary floating-point - * arithmetic when the result could be computed with one rounding error. - * #define Inaccurate_Divide for IEEE-format with correctly rounded - * products but inaccurate quotients, e.g., for Intel i860. - * #define NO_LONG_LONG on machines that do not have a "long long" - * integer type (of >= 64 bits). On such machines, you can - * #define Just_16 to store 16 bits per 32-bit Long when doing - * high-precision integer arithmetic. Whether this speeds things - * up or slows things down depends on the machine and the number - * being converted. If long long is available and the name is - * something other than "long long", #define Llong to be the name, - * and if "unsigned Llong" does not work as an unsigned version of - * Llong, #define #ULLong to be the corresponding unsigned type. - * #define KR_headers for old-style C function headers. - * #define Bad_float_h if your system lacks a float.h or if it does not - * define some or all of DBL_DIG, DBL_MAX_10_EXP, DBL_MAX_EXP, - * FLT_RADIX, FLT_ROUNDS, and DBL_MAX. - * #define MALLOC your_malloc, where your_malloc(n) acts like malloc(n) - * if memory is available and otherwise does something you deem - * appropriate. If MALLOC is undefined, malloc will be invoked - * directly -- and assumed always to succeed. Similarly, if you - * want something other than the system's free() to be called to - * recycle memory acquired from MALLOC, #define FREE to be the - * name of the alternate routine. (FREE or free is only called in - * pathological cases, e.g., in a gdtoa call after a gdtoa return in - * mode 3 with thousands of digits requested.) - * #define Omit_Private_Memory to omit logic (added Jan. 1998) for making - * memory allocations from a private pool of memory when possible. - * When used, the private pool is PRIVATE_MEM bytes long: 2304 bytes, - * unless #defined to be a different length. This default length - * suffices to get rid of MALLOC calls except for unusual cases, - * such as decimal-to-binary conversion of a very long string of - * digits. When converting IEEE double precision values, the - * longest string gdtoa can return is about 751 bytes long. For - * conversions by strtod of strings of 800 digits and all gdtoa - * conversions of IEEE doubles in single-threaded executions with - * 8-byte pointers, PRIVATE_MEM >= 7400 appears to suffice; with - * 4-byte pointers, PRIVATE_MEM >= 7112 appears adequate. - * #define NO_INFNAN_CHECK if you do not wish to have INFNAN_CHECK - * #defined automatically on IEEE systems. On such systems, - * when INFNAN_CHECK is #defined, strtod checks - * for Infinity and NaN (case insensitively). - * When INFNAN_CHECK is #defined and No_Hex_NaN is not #defined, - * strtodg also accepts (case insensitively) strings of the form - * NaN(x), where x is a string of hexadecimal digits (optionally - * preceded by 0x or 0X) and spaces; if there is only one string - * of hexadecimal digits, it is taken for the fraction bits of the - * resulting NaN; if there are two or more strings of hexadecimal - * digits, each string is assigned to the next available sequence - * of 32-bit words of fractions bits (starting with the most - * significant), right-aligned in each sequence. - * Unless GDTOA_NON_PEDANTIC_NANCHECK is #defined, input "NaN(...)" - * is consumed even when ... has the wrong form (in which case the - * "(...)" is consumed but ignored). - * #define MULTIPLE_THREADS if the system offers preemptively scheduled - * multiple threads. In this case, you must provide (or suitably - * #define) two locks, acquired by ACQUIRE_DTOA_LOCK(n) and freed - * by FREE_DTOA_LOCK(n) for n = 0 or 1. (The second lock, accessed - * in pow5mult, ensures lazy evaluation of only one copy of high - * powers of 5; omitting this lock would introduce a small - * probability of wasting memory, but would otherwise be harmless.) - * You must also invoke freedtoa(s) to free the value s returned by - * dtoa. You may do so whether or not MULTIPLE_THREADS is #defined. - * #define IMPRECISE_INEXACT if you do not care about the setting of - * the STRTOG_Inexact bits in the special case of doing IEEE double - * precision conversions (which could also be done by the strtod in - * dtoa.c). - * #define NO_HEX_FP to disable recognition of C9x's hexadecimal - * floating-point constants. - * #define -DNO_ERRNO to suppress setting errno (in strtod.c and - * strtodg.c). - * #define NO_STRING_H to use private versions of memcpy. - * On some K&R systems, it may also be necessary to - * #define DECLARE_SIZE_T in this case. - * #define USE_LOCALE to use the current locale's decimal_point value. - */ - -#ifndef GDTOAIMP_H_INCLUDED -#define GDTOAIMP_H_INCLUDED -#include "mprec.h" -#include "gdtoa.h" - -#ifndef __SINGLE_THREAD__ -#define MULTIPLE_THREADS -#endif - -#define dtoa __dtoa -#define gdtoa __gdtoa -#define freedtoa __freedtoa - -#define dtoa_result __dtoa_result_D2A -#define nrv_alloc __nrv_alloc_D2A -#define quorem __quorem_D2A -#define rshift __rshift_D2A -#define rv_alloc __rv_alloc_D2A -#define trailz __trailz_D2A - -extern char *dtoa_result; -extern char *nrv_alloc ANSI((struct _reent *, char*, char **, int)); -extern int quorem ANSI((Bigint*, Bigint*)); -extern void rshift ANSI((Bigint*, int)); -extern char *rv_alloc ANSI((struct _reent *, int)); -extern int trailz ANSI((Bigint*)); - -#endif /* GDTOAIMP_H_INCLUDED */ diff --git a/lib/stdlib/getenv.c b/lib/stdlib/getenv.c deleted file mode 100644 index 9ccb903..0000000 --- a/lib/stdlib/getenv.c +++ /dev/null @@ -1,85 +0,0 @@ -/* -FUNCTION -<>---look up environment variable - -INDEX - getenv -INDEX - environ - -SYNOPSIS - #include - char *getenv(const char *<[name]>); - -DESCRIPTION -<> searches the list of environment variable names and values -(using the global pointer ``<>'') for a variable whose -name matches the string at <[name]>. If a variable name matches, -<> returns a pointer to the associated value. - -RETURNS -A pointer to the (string) value of the environment variable, or -<> if there is no such environment variable. - -PORTABILITY -<> is ANSI, but the rules for properly forming names of environment -variables vary from one system to another. - -<> requires a global pointer <>. -*/ - -/* - * Copyright (c) 1987, 2000 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that: (1) source distributions retain this entire copyright - * notice and comment, and (2) distributions including binaries display - * the following acknowledgement: ``This product includes software - * developed by the University of California, Berkeley and its contributors'' - * in the documentation or other materials provided with the distribution. - * Neither the name of the University nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#ifndef _REENT_ONLY - -#include -#include -#include - -/* - * _findenv -- - * Returns pointer to value associated with name, if any, else NULL. - * Sets offset to be the offset of the name/value combination in the - * environmental array, for use by setenv(3) and unsetenv(3). - * Explicitly removes '=' in argument name. - * - * This routine *should* be a static; don't use it. - */ - -char * -_findenv (register const char *name, - int *offset) -{ - return _findenv_r (_REENT, name, offset); -} - -/* - * getenv -- - * Returns ptr to value associated with name, if any, else NULL. - */ - -char * -getenv (const char *name) -{ - int offset; - - return _findenv_r (_REENT, name, &offset); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/getenv_r.c b/lib/stdlib/getenv_r.c deleted file mode 100644 index 6e51800..0000000 --- a/lib/stdlib/getenv_r.c +++ /dev/null @@ -1,126 +0,0 @@ -/* -FUNCTION -<<_getenv_r>>---look up environment variable - -INDEX - _getenv_r -INDEX - environ - -SYNOPSIS - #include - char *_getenv_r(struct _reent *<[reent_ptr]>, const char *<[name]>); - -DESCRIPTION -<<_getenv_r>> searches the list of environment variable names and values -(using the global pointer ``<>'') for a variable whose -name matches the string at <[name]>. If a variable name matches, -<<_getenv_r>> returns a pointer to the associated value. - -RETURNS -A pointer to the (string) value of the environment variable, or -<> if there is no such environment variable. - -PORTABILITY -<<_getenv_r>> is not ANSI; the rules for properly forming names of environment -variables vary from one system to another. This implementation does not -permit '=' to be in identifiers. - -<<_getenv_r>> requires a global pointer <>. -*/ - -/* This file may have been modified by DJ Delorie (Jan 1991). If so, -** these modifications are Copyright (C) 1991 DJ Delorie. -*/ - -/* - * Copyright (c) 1987 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that: (1) source distributions retain this entire copyright - * notice and comment, and (2) distributions including binaries display - * the following acknowledgement: ``This product includes software - * developed by the University of California, Berkeley and its contributors'' - * in the documentation or other materials provided with the distribution. - * Neither the name of the University nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include -#include -#include -#include "envlock.h" - -extern char **environ; - -/* Only deal with a pointer to environ, to work around subtle bugs with shared - libraries and/or small data systems where the user declares his own - 'environ'. */ -static char ***p_environ = &environ; - -/* - * _findenv -- - * Returns pointer to value associated with name, if any, else NULL. - * Sets offset to be the offset of the name/value combination in the - * environmental array, for use by setenv(3) and unsetenv(3). - * - * This routine *should* be a static; don't use it. - */ - -char * -_findenv_r (struct _reent *reent_ptr, - register const char *name, - int *offset) -{ - register int len; - register char **p; - const char *c; - - ENV_LOCK; - - /* In some embedded systems, this does not get set. This protects - newlib from dereferencing a bad pointer. */ - if (!*p_environ) - { - ENV_UNLOCK; - return NULL; - } - - c = name; - while (*c && *c != '=') c++; - - /* Identifiers may not contain an '=', so cannot match if does */ - if(*c != '=') - { - len = c - name; - for (p = *p_environ; *p; ++p) - if (!strncmp (*p, name, len)) - if (*(c = *p + len) == '=') - { - *offset = p - *p_environ; - ENV_UNLOCK; - return (char *) (++c); - } - } - ENV_UNLOCK; - return NULL; -} - -/* - * _getenv_r -- - * Returns ptr to value associated with name, if any, else NULL. - */ - -char * -_getenv_r (struct _reent *reent_ptr, - const char *name) -{ - int offset; - - return _findenv_r (reent_ptr, name, &offset); -} diff --git a/lib/stdlib/getopt.c b/lib/stdlib/getopt.c deleted file mode 100644 index d4f225a..0000000 --- a/lib/stdlib/getopt.c +++ /dev/null @@ -1,526 +0,0 @@ -/**************************************************************************** - -getopt.c - Read command line options - -AUTHOR: Gregory Pietsch -CREATED Fri Jan 10 21:13:05 1997 - -DESCRIPTION: - -The getopt() function parses the command line arguments. Its arguments argc -and argv are the argument count and array as passed to the main() function -on program invocation. The argument optstring is a list of available option -characters. If such a character is followed by a colon (`:'), the option -takes an argument, which is placed in optarg. If such a character is -followed by two colons, the option takes an optional argument, which is -placed in optarg. If the option does not take an argument, optarg is NULL. - -The external variable optind is the index of the next array element of argv -to be processed; it communicates from one call to the next which element to -process. - -The getopt_long() function works like getopt() except that it also accepts -long options started by two dashes `--'. If these take values, it is either -in the form - ---arg=value - - or - ---arg value - -It takes the additional arguments longopts which is a pointer to the first -element of an array of type struct option. The last element of the array -has to be filled with NULL for the name field. - -The longind pointer points to the index of the current long option relative -to longopts if it is non-NULL. - -The getopt() function returns the option character if the option was found -successfully, `:' if there was a missing parameter for one of the options, -`?' for an unknown option character, and EOF for the end of the option list. - -The getopt_long() function's return value is described in the header file. - -The function getopt_long_only() is identical to getopt_long(), except that a -plus sign `+' can introduce long options as well as `--'. - -The following describes how to deal with options that follow non-option -argv-elements. - -If the caller did not specify anything, the default is REQUIRE_ORDER if the -environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise. - -REQUIRE_ORDER means don't recognize them as options; stop option processing -when the first non-option is seen. This is what Unix does. This mode of -operation is selected by either setting the environment variable -POSIXLY_CORRECT, or using `+' as the first character of the optstring -parameter. - -PERMUTE is the default. We permute the contents of ARGV as we scan, so that -eventually all the non-options are at the end. This allows options to be -given in any order, even with programs that were not written to expect this. - -RETURN_IN_ORDER is an option available to programs that were written to -expect options and other argv-elements in any order and that care about the -ordering of the two. We describe each non-option argv-element as if it were -the argument of an option with character code 1. Using `-' as the first -character of the optstring parameter selects this mode of operation. - -The special argument `--' forces an end of option-scanning regardless of the -value of ordering. In the case of RETURN_IN_ORDER, only `--' can cause -getopt() and friends to return EOF with optind != argc. - -2012-08-26: Tried to make the error handling more sus4-like. The functions -return a colon if getopt() and friends detect a missing argument and the -first character of shortopts/optstring starts with a colon (`:'). If getopt() -and friends detect a missing argument and shortopts/optstring does not start -with a colon, the function returns a question mark (`?'). If it was a missing -argument to a short option, optopt is set to the character in question. The -colon goes after the ordering character (`+' or `-'). - -COPYRIGHT NOTICE AND DISCLAIMER: - -Copyright (C) 1997 Gregory Pietsch - -This file and the accompanying getopt.h header file are hereby placed in the -public domain without restrictions. Just give the author credit, don't -claim you wrote it or prevent anyone else from using it. - -Gregory Pietsch's current e-mail address: -gpietsch@comcast.net -****************************************************************************/ - -#ifndef HAVE_GETOPT - -/* include files */ -#include -#include -#include -#define __need_getopt_newlib -#include - -/* macros */ - -/* types */ -typedef enum GETOPT_ORDERING_T -{ - PERMUTE, - RETURN_IN_ORDER, - REQUIRE_ORDER -} GETOPT_ORDERING_T; - -/* globally-defined variables */ -char *optarg = 0; -int optind = 0; -int opterr = 1; -int optopt = '?'; - -/* static variables */ -static int optwhere = 0; -static int permute_from = 0; -static int num_nonopts = 0; - -/* functions */ - -/* reverse_argv_elements: reverses num elements starting at argv */ -static void -reverse_argv_elements (char **argv, int num) -{ - int i; - char *tmp; - - for (i = 0; i < (num >> 1); i++) - { - tmp = argv[i]; - argv[i] = argv[num - i - 1]; - argv[num - i - 1] = tmp; - } -} - -/* permute: swap two blocks of argv-elements given their lengths */ -static void -permute (char *const argv[], int len1, int len2) -{ - reverse_argv_elements ((char **) argv, len1); - reverse_argv_elements ((char **) argv, len1 + len2); - reverse_argv_elements ((char **) argv, len2); -} - -/* is_option: is this argv-element an option or the end of the option list? */ -static int -is_option (char *argv_element, int only) -{ - return ((argv_element == 0) - || (argv_element[0] == '-') || (only && argv_element[0] == '+')); -} - -/* read_globals: read the values from the globals into a getopt_data - structure */ -static void -read_globals (struct getopt_data *data) -{ - data->optarg = optarg; - data->optind = optind; - data->opterr = opterr; - data->optopt = optopt; - data->optwhere = optwhere; - data->permute_from = permute_from; - data->num_nonopts = num_nonopts; -} - -/* write_globals: write the values into the globals from a getopt_data - structure */ -static void -write_globals (struct getopt_data *data) -{ - optarg = data->optarg; - optind = data->optind; - opterr = data->opterr; - optopt = data->optopt; - optwhere = data->optwhere; - permute_from = data->permute_from; - num_nonopts = data->num_nonopts; -} - -/* getopt_internal: the function that does all the dirty work - NOTE: to reduce the code and RAM footprint this function uses - fputs()/fputc() to do output to stderr instead of fprintf(). */ -static int -getopt_internal (int argc, char *const argv[], const char *shortopts, - const struct option *longopts, int *longind, int only, - struct getopt_data *data) -{ - GETOPT_ORDERING_T ordering = PERMUTE; - int optindex = 0; - size_t match_chars = 0; - char *possible_arg = 0; - int longopt_match = -1; - int has_arg = -1; - char *cp = 0; - int arg_next = 0; - int initial_colon = 0; - - /* first, deal with silly parameters and easy stuff */ - if (argc == 0 || argv == 0 || (shortopts == 0 && longopts == 0) - || data->optind >= argc || argv[data->optind] == 0) - return EOF; - if (strcmp (argv[data->optind], "--") == 0) - { - data->optind++; - return EOF; - } - - /* if this is our first time through */ - if (data->optind == 0) - { - data->optind = 1; - data->optwhere = 1; - data->permute_from = 0; - data->num_nonopts = 0; - } - - /* define ordering */ - if (shortopts != 0 && (*shortopts == '-' || *shortopts == '+')) - { - ordering = (*shortopts == '-') ? RETURN_IN_ORDER : REQUIRE_ORDER; - shortopts++; - } - else - ordering = (getenv ("POSIXLY_CORRECT") != 0) ? REQUIRE_ORDER : PERMUTE; - - /* check for initial colon in shortopts */ - if (shortopts != 0 && *shortopts == ':') - { - ++shortopts; - initial_colon = 1; - } - - /* - * based on ordering, find our next option, if we're at the beginning of - * one - */ - if (data->optwhere == 1) - { - switch (ordering) - { - default: /* shouldn't happen */ - case PERMUTE: - data->permute_from = data->optind; - data->num_nonopts = 0; - while (!is_option (argv[data->optind], only)) - { - data->optind++; - data->num_nonopts++; - } - if (argv[data->optind] == 0) - { - /* no more options */ - data->optind = data->permute_from; - return EOF; - } - else if (strcmp (argv[data->optind], "--") == 0) - { - /* no more options, but have to get `--' out of the way */ - permute (argv + data->permute_from, data->num_nonopts, 1); - data->optind = data->permute_from + 1; - return EOF; - } - break; - case RETURN_IN_ORDER: - if (!is_option (argv[data->optind], only)) - { - data->optarg = argv[data->optind++]; - return (data->optopt = 1); - } - break; - case REQUIRE_ORDER: - if (!is_option (argv[data->optind], only)) - return EOF; - break; - } - } - /* End of option list? */ - if (argv[data->optind] == 0) - return EOF; - - /* we've got an option, so parse it */ - - /* first, is it a long option? */ - if (longopts != 0 - && (memcmp (argv[data->optind], "--", 2) == 0 - || (only && argv[data->optind][0] == '+')) && data->optwhere == 1) - { - /* handle long options */ - if (memcmp (argv[data->optind], "--", 2) == 0) - data->optwhere = 2; - longopt_match = -1; - possible_arg = strchr (argv[data->optind] + data->optwhere, '='); - if (possible_arg == 0) - { - /* no =, so next argv might be arg */ - match_chars = strlen (argv[data->optind]); - possible_arg = argv[data->optind] + match_chars; - match_chars = match_chars - data->optwhere; - } - else - match_chars = (possible_arg - argv[data->optind]) - data->optwhere; - for (optindex = 0; longopts[optindex].name != 0; ++optindex) - { - if (memcmp - (argv[data->optind] + data->optwhere, longopts[optindex].name, - match_chars) == 0) - { - /* do we have an exact match? */ - if (match_chars == strlen (longopts[optindex].name)) - { - longopt_match = optindex; - break; - } - /* do any characters match? */ - else - { - if (longopt_match < 0) - longopt_match = optindex; - else - { - /* we have ambiguous options */ - if (data->opterr) - { - fputs (argv[0], stderr); - fputs (": option `", stderr); - fputs (argv[data->optind], stderr); - fputs ("' is ambiguous (could be `--", stderr); - fputs (longopts[longopt_match].name, stderr); - fputs ("' or `--", stderr); - fputs (longopts[optindex].name, stderr); - fputs ("')\n", stderr); - } - return (data->optopt = '?'); - } - } - } - } - if (longopt_match >= 0) - has_arg = longopts[longopt_match].has_arg; - } - - /* if we didn't find a long option, is it a short option? */ - if (longopt_match < 0 && shortopts != 0) - { - cp = strchr (shortopts, argv[data->optind][data->optwhere]); - if (cp == 0) - { - /* couldn't find option in shortopts */ - if (data->opterr) - { - fputs (argv[0], stderr); - fputs (": invalid option -- `-", stderr); - fputc (argv[data->optind][data->optwhere], stderr); - fputs ("'\n", stderr); - } - data->optwhere++; - if (argv[data->optind][data->optwhere] == '\0') - { - data->optind++; - data->optwhere = 1; - } - return (data->optopt = '?'); - } - has_arg = ((cp[1] == ':') - ? ((cp[2] == ':') ? OPTIONAL_ARG : REQUIRED_ARG) : NO_ARG); - possible_arg = argv[data->optind] + data->optwhere + 1; - data->optopt = *cp; - } - - /* get argument and reset data->optwhere */ - arg_next = 0; - switch (has_arg) - { - case OPTIONAL_ARG: - if (*possible_arg == '=') - possible_arg++; - data->optarg = (*possible_arg != '\0') ? possible_arg : 0; - data->optwhere = 1; - break; - case REQUIRED_ARG: - if (*possible_arg == '=') - possible_arg++; - if (*possible_arg != '\0') - { - data->optarg = possible_arg; - data->optwhere = 1; - } - else if (data->optind + 1 >= argc) - { - if (data->opterr) - { - fputs (argv[0], stderr); - fputs (": argument required for option `-", stderr); - if (longopt_match >= 0) - { - fputc ('-', stderr); - fputs (longopts[longopt_match].name, stderr); - data->optopt = initial_colon ? ':' : '\?'; - } - else - { - fputc (*cp, stderr); - data->optopt = *cp; - } - fputs ("'\n", stderr); - } - data->optind++; - return initial_colon ? ':' : '\?'; - } - else - { - data->optarg = argv[data->optind + 1]; - arg_next = 1; - data->optwhere = 1; - } - break; - default: /* shouldn't happen */ - case NO_ARG: - if (longopt_match < 0) - { - data->optwhere++; - if (argv[data->optind][data->optwhere] == '\0') - data->optwhere = 1; - } - else - data->optwhere = 1; - data->optarg = 0; - break; - } - - /* do we have to permute or otherwise modify data->optind? */ - if (ordering == PERMUTE && data->optwhere == 1 && data->num_nonopts != 0) - { - permute (argv + data->permute_from, data->num_nonopts, 1 + arg_next); - data->optind = data->permute_from + 1 + arg_next; - } - else if (data->optwhere == 1) - data->optind = data->optind + 1 + arg_next; - - /* finally return */ - if (longopt_match >= 0) - { - if (longind != 0) - *longind = longopt_match; - if (longopts[longopt_match].flag != 0) - { - *(longopts[longopt_match].flag) = longopts[longopt_match].val; - return 0; - } - else - return longopts[longopt_match].val; - } - else - return data->optopt; -} - -int -getopt (int argc, char *const argv[], const char *optstring) -{ - struct getopt_data data; - int r; - - read_globals (&data); - r = getopt_internal (argc, argv, optstring, 0, 0, 0, &data); - write_globals (&data); - return r; -} - -int -getopt_long (int argc, char *const argv[], const char *shortopts, - const struct option *longopts, int *longind) -{ - struct getopt_data data; - int r; - - read_globals (&data); - r = getopt_internal (argc, argv, shortopts, longopts, longind, 0, &data); - write_globals (&data); - return r; -} - -int -getopt_long_only (int argc, char *const argv[], const char *shortopts, - const struct option *longopts, int *longind) -{ - struct getopt_data data; - int r; - - read_globals (&data); - r = getopt_internal (argc, argv, shortopts, longopts, longind, 1, &data); - write_globals (&data); - return r; -} - -int -__getopt_r (int argc, char *const argv[], const char *optstring, - struct getopt_data *data) -{ - return getopt_internal (argc, argv, optstring, 0, 0, 0, data); -} - -int -__getopt_long_r (int argc, char *const argv[], const char *shortopts, - const struct option *longopts, int *longind, - struct getopt_data *data) -{ - return getopt_internal (argc, argv, shortopts, longopts, longind, 0, data); -} - -int -__getopt_long_only_r (int argc, char *const argv[], const char *shortopts, - const struct option *longopts, int *longind, - struct getopt_data *data) -{ - return getopt_internal (argc, argv, shortopts, longopts, longind, 1, data); -} - -#endif /* !HAVE_GETOPT */ - -/* end of file GETOPT.C */ diff --git a/lib/stdlib/getsubopt.3 b/lib/stdlib/getsubopt.3 deleted file mode 100644 index cf33d25..0000000 --- a/lib/stdlib/getsubopt.3 +++ /dev/null @@ -1,145 +0,0 @@ -.\" Copyright (c) 1990, 1991, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)getsubopt.3 8.1 (Berkeley) 6/9/93 -.\" $FreeBSD: src/lib/libc/stdlib/getsubopt.3,v 1.9 2001/09/07 14:46:35 asmodai Exp $ -.\" -.Dd June 9, 1993 -.Dt GETSUBOPT 3 -.Os -.Sh NAME -.Nm getsubopt -.Nd get sub options from an argument -.Sh LIBRARY -.Lb libc -.Sh SYNOPSIS -.In unistd.h -.Vt extern char *suboptarg ; -.Ft int -.Fn getsubopt "char **optionp" "char * const *tokens" "char **valuep" -.Sh DESCRIPTION -The -.Fn getsubopt -function -parses a string containing tokens delimited by one or more tab, space or -comma -.Pq Ql \&, -characters. -It is intended for use in parsing groups of option arguments provided -as part of a utility command line. -.Pp -The argument -.Fa optionp -is a pointer to a pointer to the string. -The argument -.Fa tokens -is a pointer to a -.Dv NULL Ns -terminated -array of pointers to strings. -.Pp -The -.Fn getsubopt -function -returns the zero-based offset of the pointer in the -.Fa tokens -array referencing a string which matches the first token -in the string, or, \-1 if the string contains no tokens or -.Fa tokens -does not contain a matching string. -.Pp -If the token is of the form ``name=value'', the location referenced by -.Fa valuep -will be set to point to the start of the ``value'' portion of the token. -.Pp -On return from -.Fn getsubopt , -.Fa optionp -will be set to point to the start of the next token in the string, -or the null at the end of the string if no more tokens are present. -The external variable -.Fa suboptarg -will be set to point to the start of the current token, or -.Dv NULL -if no -tokens were present. -The argument -.Fa valuep -will be set to point to the ``value'' portion of the token, or -.Dv NULL -if no ``value'' portion was present. -.Sh EXAMPLES -.Bd -literal -compact -char *tokens[] = { - #define ONE 0 - "one", - #define TWO 1 - "two", - NULL -}; - -\&... - -extern char *optarg, *suboptarg; -char *options, *value; - -while ((ch = getopt(argc, argv, "ab:")) != \-1) { - switch(ch) { - case 'a': - /* process ``a'' option */ - break; - case 'b': - options = optarg; - while (*options) { - switch(getsubopt(&options, tokens, &value)) { - case ONE: - /* process ``one'' sub option */ - break; - case TWO: - /* process ``two'' sub option */ - if (!value) - error("no value for two"); - i = atoi(value); - break; - case \-1: - if (suboptarg) - error("illegal sub option %s", - suboptarg); - else - error("missing sub option"); - break; - } - break; - } -.Ed -.Sh SEE ALSO -.Xr getopt 3 , -.Xr strsep 3 -.Sh HISTORY -The -.Fn getsubopt -function first appeared in -.Bx 4.4 . diff --git a/lib/stdlib/getsubopt.c b/lib/stdlib/getsubopt.c deleted file mode 100644 index 298624d..0000000 --- a/lib/stdlib/getsubopt.c +++ /dev/null @@ -1,97 +0,0 @@ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)getsubopt.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ -#include - -#include -#include -#include - -/* - * The SVID interface to getsubopt provides no way of figuring out which - * part of the suboptions list wasn't matched. This makes error messages - * tricky... The extern variable suboptarg is a pointer to the token - * which didn't match. - */ -char *suboptarg; - -int -getsubopt(optionp, tokens, valuep) - char **optionp, **valuep; - char * const *tokens; -{ - int cnt; - char *p; - - suboptarg = *valuep = NULL; - - if (!optionp || !*optionp) - return(-1); - - /* skip leading white-space, commas */ - for (p = *optionp; *p && (*p == ',' || *p == ' ' || *p == '\t'); ++p); - - if (!*p) { - *optionp = p; - return(-1); - } - - /* save the start of the token, and skip the rest of the token. */ - for (suboptarg = p; - *++p && *p != ',' && *p != '=' && *p != ' ' && *p != '\t';); - - if (*p) { - /* - * If there's an equals sign, set the value pointer, and - * skip over the value part of the token. Terminate the - * token. - */ - if (*p == '=') { - *p = '\0'; - for (*valuep = ++p; - *p && *p != ',' && *p != ' ' && *p != '\t'; ++p); - if (*p) - *p++ = '\0'; - } else - *p++ = '\0'; - /* Skip any whitespace or commas after this token. */ - for (; *p && (*p == ',' || *p == ' ' || *p == '\t'); ++p); - } - - /* set optionp for next round. */ - *optionp = p; - - for (cnt = 0; *tokens; ++tokens, ++cnt) - if (!strcmp(suboptarg, *tokens)) - return(cnt); - return(-1); -} diff --git a/lib/stdlib/imaxabs.c b/lib/stdlib/imaxabs.c deleted file mode 100644 index e438646..0000000 --- a/lib/stdlib/imaxabs.c +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * Copyright (c) 2001 Mike Barcroft - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD: head/lib/libc/stdlib/imaxabs.c 86368 2001-11-15 02:05:03Z mike $"); - -#include -#include -intmax_t -imaxabs(intmax_t j) -{ - return (j < 0 ? -j : j); -} diff --git a/lib/stdlib/imaxdiv.c b/lib/stdlib/imaxdiv.c deleted file mode 100644 index eb3e99a..0000000 --- a/lib/stdlib/imaxdiv.c +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * Copyright (c) 2001 Mike Barcroft - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD: head/lib/libc/stdlib/imaxdiv.c 301115 2016-06-01 10:14:25Z ache $"); - -#include -#include - -/* See comments in div.c for implementation details. */ -imaxdiv_t -imaxdiv(intmax_t numer, intmax_t denom) -{ - imaxdiv_t retval; - - retval.quot = numer / denom; - retval.rem = numer % denom; -#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) - if (numer >= 0 && retval.rem < 0) { - retval.quot++; - retval.rem -= denom; - } -#endif - return (retval); -} diff --git a/lib/stdlib/itoa.c b/lib/stdlib/itoa.c deleted file mode 100644 index 7a7daf0..0000000 --- a/lib/stdlib/itoa.c +++ /dev/null @@ -1,67 +0,0 @@ -/* -FUNCTION -<>---integer to string - -INDEX - itoa - -SYNOPSIS - #include - char *itoa(int <[value]>, char *<[str]>, int <[base]>); - char *__itoa(int <[value]>, char *<[str]>, int <[base]>); - -DESCRIPTION -<> converts the integer <[value]> to a null-terminated string -using the specified base, which must be between 2 and 36, inclusive. -If <[base]> is 10, <[value]> is treated as signed and the string will be -prefixed with '-' if negative. For all other bases, <[value]> is treated as -unsigned. <[str]> should be an array long enough to contain the converted -value, which in the worst case is sizeof(int)*8+1 bytes. - -RETURNS -A pointer to the string, <[str]>, or NULL if <[base]> is invalid. - -PORTABILITY -<> is non-ANSI. - -No supporting OS subroutine calls are required. -*/ - -#include - -char * -__itoa (int value, - char *str, - int base) -{ - unsigned uvalue; - int i = 0; - - /* Check base is supported. */ - if ((base < 2) || (base > 36)) - { - str[0] = '\0'; - return NULL; - } - - /* Negative numbers are only supported for decimal. - * Cast to unsigned to avoid overflow for maximum negative value. */ - if ((base == 10) && (value < 0)) - { - str[i++] = '-'; - uvalue = (unsigned)-value; - } - else - uvalue = (unsigned)value; - - __utoa (uvalue, &str[i], base); - return str; -} - -char * -itoa (int value, - char *str, - int base) -{ - return __itoa (value, str, base); -} diff --git a/lib/stdlib/jrand48.c b/lib/stdlib/jrand48.c deleted file mode 100644 index 185e0da..0000000 --- a/lib/stdlib/jrand48.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ - -#include "rand48.h" - -long -_jrand48_r (struct _reent *r, - unsigned short xseed[3]) -{ - __dorand48(r, xseed); - return ((long) xseed[2] << 16) + (long) xseed[1]; -} - -#ifndef _REENT_ONLY -long -jrand48 (unsigned short xseed[3]) -{ - return _jrand48_r (_REENT, xseed); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/l64a.c b/lib/stdlib/l64a.c deleted file mode 100644 index 6f12b61..0000000 --- a/lib/stdlib/l64a.c +++ /dev/null @@ -1,66 +0,0 @@ -/* l64a - convert long to radix-64 ascii string - * - * Conversion is performed on at most 32-bits of input value starting - * from least significant bits to the most significant bits. - * - * The routine splits the input value into groups of 6 bits for up to - * 32 bits of input. This means that the last group may be 2 bits - * (bits 30 and 31). - * - * Each group of 6 bits forms a value from 0-63 which is converted into - * a character as follows: - * 0 = '.' - * 1 = '/' - * 2-11 = '0' to '9' - * 12-37 = 'A' to 'Z' - * 38-63 = 'a' to 'z' - * - * When the remaining bits are zero or all 32 bits have been translated, - * a nul terminator is appended to the resulting string. An input value of - * 0 results in an empty string. - */ - -#include <_ansi.h> -#include -#include - -#ifdef _REENT_THREAD_LOCAL -_Thread_local char _tls_l64a_buf[8]; -#endif - -static const char R64_ARRAY[] = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - -char * -l64a (long value) -{ - return _l64a_r (_REENT, value); -} - -char * -_l64a_r (struct _reent *rptr, - long value) -{ - char *ptr; - char *result; - int i, index; - unsigned long tmp = (unsigned long)value & 0xffffffff; - - _REENT_CHECK_MISC(rptr); - result = _REENT_L64A_BUF(rptr); - ptr = result; - - for (i = 0; i < 6; ++i) - { - if (tmp == 0) - { - *ptr = '\0'; - break; - } - - index = tmp & (64 - 1); - *ptr++ = R64_ARRAY[index]; - tmp >>= 6; - } - - return result; -} diff --git a/lib/stdlib/labs.c b/lib/stdlib/labs.c deleted file mode 100644 index f6761d0..0000000 --- a/lib/stdlib/labs.c +++ /dev/null @@ -1,43 +0,0 @@ -/* -FUNCTION -<>---long integer absolute value - -INDEX - labs - -SYNOPSIS - #include - long labs(long <[i]>); - -DESCRIPTION -<> returns -@tex -$|x|$, -@end tex -the absolute value of <[i]> (also called the magnitude -of <[i]>). That is, if <[i]> is negative, the result is the opposite -of <[i]>, but if <[i]> is nonnegative the result is <[i]>. - -The similar function <> uses and returns <> rather than -<> values. - -RETURNS -The result is a nonnegative long integer. - -PORTABILITY -<> is ANSI. - -No supporting OS subroutine calls are required. -*/ - -#include - -long -labs (long x) -{ - if (x < 0) - { - x = -x; - } - return x; -} diff --git a/lib/stdlib/lcong48.c b/lib/stdlib/lcong48.c deleted file mode 100644 index d1109f0..0000000 --- a/lib/stdlib/lcong48.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ - -#include "rand48.h" - -#ifdef _REENT_THREAD_LOCAL -_Thread_local unsigned short _tls_rand48_seed[3] = {_RAND48_SEED_0, _RAND48_SEED_1, - _RAND48_SEED_2}; -_Thread_local unsigned short _tls_rand48_mult[3] = {_RAND48_MULT_0, _RAND48_MULT_1, - _RAND48_MULT_2}; -_Thread_local unsigned short _tls_rand48_add = _RAND48_ADD; -#endif - -void -_lcong48_r (struct _reent *r, - unsigned short p[7]) -{ - _REENT_CHECK_RAND48(r); - __rand48_seed[0] = p[0]; - __rand48_seed[1] = p[1]; - __rand48_seed[2] = p[2]; - __rand48_mult[0] = p[3]; - __rand48_mult[1] = p[4]; - __rand48_mult[2] = p[5]; - __rand48_add = p[6]; -} - -#ifndef _REENT_ONLY -void -lcong48 (unsigned short p[7]) -{ - _lcong48_r (_REENT, p); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/ldiv.c b/lib/stdlib/ldiv.c deleted file mode 100644 index 39bb36e..0000000 --- a/lib/stdlib/ldiv.c +++ /dev/null @@ -1,99 +0,0 @@ -/* -FUNCTION -<>---divide two long integers - -INDEX - ldiv - -SYNOPSIS - #include - ldiv_t ldiv(long <[n]>, long <[d]>); - -DESCRIPTION -Divide -@tex -$n/d$, -@end tex -@ifnottex -<[n]>/<[d]>, -@end ifnottex -returning quotient and remainder as two long integers in a structure <>. - -RETURNS -The result is represented with the structure - -. typedef struct -. { -. long quot; -. long rem; -. } ldiv_t; - -where the <> field represents the quotient, and <> the -remainder. For nonzero <[d]>, if `<<<[r]> = ldiv(<[n]>,<[d]>);>>' then -<[n]> equals `<<<[r]>.rem + <[d]>*<[r]>.quot>>'. - -To divide <> rather than <> values, use the similar -function <
>. - -PORTABILITY -<> is ANSI. - -No supporting OS subroutines are required. -*/ - - -/* - * Copyright (c) 1990 Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include /* ldiv_t */ - -ldiv_t -ldiv (long num, - long denom) -{ - ldiv_t r; - - /* see div.c for comments */ - - r.quot = num / denom; - r.rem = num % denom; - if (num >= 0 && r.rem < 0) { - ++r.quot; - r.rem -= denom; - } - else if (num < 0 && r.rem > 0) { - --r.quot; - r.rem += denom; - } - return (r); -} diff --git a/lib/stdlib/ldtoa.c b/lib/stdlib/ldtoa.c deleted file mode 100644 index 36613fa..0000000 --- a/lib/stdlib/ldtoa.c +++ /dev/null @@ -1,3908 +0,0 @@ - /* Extended precision arithmetic functions for long double I/O. - * This program has been placed in the public domain. - */ - -#include -#include - -#ifndef _USE_GDTOA -#include <_ansi.h> -#include -#include -#include -#include "mprec.h" - -/* These are the externally visible entries. */ -/* linux name: long double _IO_strtold (char *, char **); */ -long double _strtold (char *, char **); -char *_ldtoa_r (struct _reent *, long double, int, int, int *, int *, - char **); -int _ldcheck (long double *); -#if 0 -void _IO_ldtostr (long double *, char *, int, int, char); -#endif - - /* Number of 16 bit words in external x type format */ -#define NE 10 - - /* Number of 16 bit words in internal format */ -#define NI (NE+3) - - /* Array offset to exponent */ -#define E 1 - - /* Array offset to high guard word */ -#define M 2 - - /* Number of bits of precision */ -#define NBITS ((NI-4)*16) - - /* Maximum number of decimal digits in ASCII conversion */ -#define NDEC 1023 - /* Use static stack buffer for up to 44 digits */ -#define NDEC_SML 44 - - /* The exponent of 1.0 */ -#define EXONE (0x3fff) - - /* Maximum exponent digits - base 10 */ -#define MAX_EXP_DIGITS 5 - -/* Control structure for long double conversion including rounding precision values. - * rndprc can be set to 80 (if NE=6), 64, 56, 53, or 24 bits. - */ -typedef struct -{ - int rlast; - int rndprc; - int rw; - int re; - int outexpon; - unsigned short rmsk; - unsigned short rmbit; - unsigned short rebit; - unsigned short rbit[NI]; - unsigned short equot[NI]; -} LDPARMS; - -static void esub (const short unsigned int *a, const short unsigned int *b, - short unsigned int *c, LDPARMS * ldp); -static void emul (const short unsigned int *a, const short unsigned int *b, - short unsigned int *c, LDPARMS * ldp); -static void ediv (const short unsigned int *a, const short unsigned int *b, - short unsigned int *c, LDPARMS * ldp); -static int ecmp (const short unsigned int *a, const short unsigned int *b); -static int enormlz (short unsigned int *x); -static int eshift (short unsigned int *x, int sc); -static void eshup1 (register short unsigned int *x); -static void eshup8 (register short unsigned int *x); -static void eshup6 (register short unsigned int *x); -static void eshdn1 (register short unsigned int *x); -static void eshdn8 (register short unsigned int *x); -static void eshdn6 (register short unsigned int *x); -static void eneg (short unsigned int *x); -static void emov (register const short unsigned int *a, - register short unsigned int *b); -static void eclear (register short unsigned int *x); -static void einfin (register short unsigned int *x, register LDPARMS * ldp); -static void efloor (short unsigned int *x, short unsigned int *y, - LDPARMS * ldp); -static void etoasc (short unsigned int *x, char *string, int ndec, int ndigs, - int outformat, LDPARMS * ldp); - -union uconv -{ - unsigned short pe; - long double d; -}; - -#if LDBL_MANT_DIG == 24 -static void e24toe (short unsigned int *pe, short unsigned int *y, - LDPARMS * ldp); -#elif LDBL_MANT_DIG == 53 -static void e53toe (short unsigned int *pe, short unsigned int *y, - LDPARMS * ldp); -#elif LDBL_MANT_DIG == 64 -static void e64toe (short unsigned int *pe, short unsigned int *y, - LDPARMS * ldp); -#else -static void e113toe (short unsigned int *pe, short unsigned int *y, - LDPARMS * ldp); -#endif - -/* econst.c */ -/* e type constants used by high precision check routines */ - -#if NE == 10 -/* 0.0 */ -static const unsigned short ezero[NE] = { 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, -}; - -/* 1.0E0 */ -static const unsigned short eone[NE] = { 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x3fff, -}; - -#else - -/* 0.0 */ -static const unsigned short ezero[NE] = { - 0, 0000000, 0000000, 0000000, 0000000, 0000000, -}; - -/* 1.0E0 */ -static const unsigned short eone[NE] = { - 0, 0000000, 0000000, 0000000, 0100000, 0x3fff, -}; - -#endif - -/* Debugging routine for displaying errors */ -#ifdef DEBUG -/* Notice: the order of appearance of the following - * messages is bound to the error codes defined - * in mconf.h. - */ -static const char *const ermsg[7] = { - "unknown", /* error code 0 */ - "domain", /* error code 1 */ - "singularity", /* et seq. */ - "overflow", - "underflow", - "total loss of precision", - "partial loss of precision" -}; - -#define mtherr(name, code) printf( "\n%s %s error\n", name, ermsg[code] ); -#else -#define mtherr(name, code) -#endif - -/* ieee.c - * - * Extended precision IEEE binary floating point arithmetic routines - * - * Numbers are stored in C language as arrays of 16-bit unsigned - * short integers. The arguments of the routines are pointers to - * the arrays. - * - * - * External e type data structure, simulates Intel 8087 chip - * temporary real format but possibly with a larger significand: - * - * NE-1 significand words (least significant word first, - * most significant bit is normally set) - * exponent (value = EXONE for 1.0, - * top bit is the sign) - * - * - * Internal data structure of a number (a "word" is 16 bits): - * - * ei[0] sign word (0 for positive, 0xffff for negative) - * ei[1] biased exponent (value = EXONE for the number 1.0) - * ei[2] high guard word (always zero after normalization) - * ei[3] - * to ei[NI-2] significand (NI-4 significand words, - * most significant word first, - * most significant bit is set) - * ei[NI-1] low guard word (0x8000 bit is rounding place) - * - * - * - * Routines for external format numbers - * - * asctoe( string, e ) ASCII string to extended double e type - * asctoe64( string, &d ) ASCII string to long double - * asctoe53( string, &d ) ASCII string to double - * asctoe24( string, &f ) ASCII string to single - * asctoeg( string, e, prec, ldp ) ASCII string to specified precision - * e24toe( &f, e, ldp ) IEEE single precision to e type - * e53toe( &d, e, ldp ) IEEE double precision to e type - * e64toe( &d, e, ldp ) IEEE long double precision to e type - * e113toe( &d, e, ldp ) IEEE long double precision to e type - * eabs(e) absolute value - * eadd( a, b, c ) c = b + a - * eclear(e) e = 0 - * ecmp (a, b) Returns 1 if a > b, 0 if a == b, - * -1 if a < b, -2 if either a or b is a NaN. - * ediv( a, b, c, ldp ) c = b / a - * efloor( a, b, ldp ) truncate to integer, toward -infinity - * efrexp( a, exp, s ) extract exponent and significand - * eifrac( e, &l, frac ) e to long integer and e type fraction - * euifrac( e, &l, frac ) e to unsigned long integer and e type fraction - * einfin( e, ldp ) set e to infinity, leaving its sign alone - * eldexp( a, n, b ) multiply by 2**n - * emov( a, b ) b = a - * emul( a, b, c, ldp ) c = b * a - * eneg(e) e = -e - * eround( a, b ) b = nearest integer value to a - * esub( a, b, c, ldp ) c = b - a - * e24toasc( &f, str, n ) single to ASCII string, n digits after decimal - * e53toasc( &d, str, n ) double to ASCII string, n digits after decimal - * e64toasc( &d, str, n ) long double to ASCII string - * etoasc(e,str,ndec,n,fmt,ldp)e to ASCII string, n digits after decimal - * etoe24( e, &f ) convert e type to IEEE single precision - * etoe53( e, &d ) convert e type to IEEE double precision - * etoe64( e, &d ) convert e type to IEEE long double precision - * ltoe( &l, e ) long (32 bit) integer to e type - * ultoe( &l, e ) unsigned long (32 bit) integer to e type - * eisneg( e ) 1 if sign bit of e != 0, else 0 - * eisinf( e ) 1 if e has maximum exponent (non-IEEE) - * or is infinite (IEEE) - * eisnan( e ) 1 if e is a NaN - * esqrt( a, b ) b = square root of a - * - * - * Routines for internal format numbers - * - * eaddm( ai, bi ) add significands, bi = bi + ai - * ecleaz(ei) ei = 0 - * ecleazs(ei) set ei = 0 but leave its sign alone - * ecmpm( ai, bi ) compare significands, return 1, 0, or -1 - * edivm( ai, bi, ldp ) divide significands, bi = bi / ai - * emdnorm(ai,l,s,exp,ldp) normalize and round off - * emovi( a, ai ) convert external a to internal ai - * emovo( ai, a, ldp ) convert internal ai to external a - * emovz( ai, bi ) bi = ai, low guard word of bi = 0 - * emulm( ai, bi, ldp ) multiply significands, bi = bi * ai - * enormlz(ei) left-justify the significand - * eshdn1( ai ) shift significand and guards down 1 bit - * eshdn8( ai ) shift down 8 bits - * eshdn6( ai ) shift down 16 bits - * eshift( ai, n ) shift ai n bits up (or down if n < 0) - * eshup1( ai ) shift significand and guards up 1 bit - * eshup8( ai ) shift up 8 bits - * eshup6( ai ) shift up 16 bits - * esubm( ai, bi ) subtract significands, bi = bi - ai - * - * - * The result is always normalized and rounded to NI-4 word precision - * after each arithmetic operation. - * - * Exception flags are NOT fully supported. - * - * Define USE_INFINITY in mconf.h for support of infinity; otherwise a - * saturation arithmetic is implemented. - * - * Define NANS for support of Not-a-Number items; otherwise the - * arithmetic will never produce a NaN output, and might be confused - * by a NaN input. - * If NaN's are supported, the output of ecmp(a,b) is -2 if - * either a or b is a NaN. This means asking if(ecmp(a,b) < 0) - * may not be legitimate. Use if(ecmp(a,b) == -1) for less-than - * if in doubt. - * Signaling NaN's are NOT supported; they are treated the same - * as quiet NaN's. - * - * Denormals are always supported here where appropriate (e.g., not - * for conversion to DEC numbers). - */ - -/* - * Revision history: - * - * 5 Jan 84 PDP-11 assembly language version - * 6 Dec 86 C language version - * 30 Aug 88 100 digit version, improved rounding - * 15 May 92 80-bit long double support - * 22 Nov 00 Revised to fit into newlib by Jeff Johnston - * - * Author: S. L. Moshier. - * - * Copyright (c) 1984,2000 S.L. Moshier - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which 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, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - */ - -#include -/* #include "\usr\include\stdio.h" */ -/*#include "ehead.h"*/ -/*#include "mconf.h"*/ -/* mconf.h - * - * Common include file for math routines - * - * - * - * SYNOPSIS: - * - * #include "mconf.h" - * - * - * - * DESCRIPTION: - * - * This file contains definitions for error codes that are - * passed to the common error handling routine mtherr() - * (which see). - * - * The file also includes a conditional assembly definition - * for the type of computer arithmetic (IEEE, DEC, Motorola - * IEEE, or UNKnown). - * - * For Digital Equipment PDP-11 and VAX computers, certain - * IBM systems, and others that use numbers with a 56-bit - * significand, the symbol DEC should be defined. In this - * mode, most floating point constants are given as arrays - * of octal integers to eliminate decimal to binary conversion - * errors that might be introduced by the compiler. - * - * For computers, such as IBM PC, that follow the IEEE - * Standard for Binary Floating Point Arithmetic (ANSI/IEEE - * Std 754-1985), the symbol IBMPC should be defined. These - * numbers have 53-bit significands. In this mode, constants - * are provided as arrays of hexadecimal 16 bit integers. - * - * To accommodate other types of computer arithmetic, all - * constants are also provided in a normal decimal radix - * which one can hope are correctly converted to a suitable - * format by the available C language compiler. To invoke - * this mode, the symbol UNK is defined. - * - * An important difference among these modes is a predefined - * set of machine arithmetic constants for each. The numbers - * MACHEP (the machine roundoff error), MAXNUM (largest number - * represented), and several other parameters are preset by - * the configuration symbol. Check the file const.c to - * ensure that these values are correct for your computer. - * - * For ANSI C compatibility, define ANSIC equal to 1. Currently - * this affects only the atan2() function and others that use it. - */ - -/* Constant definitions for math error conditions - */ - -#define DOMAIN 1 /* argument domain error */ -#define SING 2 /* argument singularity */ -#define OVERFLOW 3 /* overflow range error */ -#define UNDERFLOW 4 /* underflow range error */ -#define TLOSS 5 /* total loss of precision */ -#define PLOSS 6 /* partial loss of precision */ - -#define EDOM 33 -#define ERANGE 34 - -typedef struct -{ - double r; - double i; -} cmplx; - -/* Type of computer arithmetic */ - -#ifndef DEC -#ifdef __IEEE_LITTLE_ENDIAN -#define IBMPC 1 -#else /* !__IEEE_LITTLE_ENDIAN */ -#define MIEEE 1 -#endif /* !__IEEE_LITTLE_ENDIAN */ -#endif /* !DEC */ - -/* Define 1 for ANSI C atan2() function - * See atan.c and clog.c. - */ -#define ANSIC 1 - -/*define VOLATILE volatile*/ -#define VOLATILE - -#define NANS -#define USE_INFINITY - -/* NaN's require infinity support. */ -#ifdef NANS -#ifndef INFINITY -#define USE_INFINITY -#endif -#endif - -/* This handles 64-bit long ints. */ -#define LONGBITS (8 * sizeof(long)) - - -static void eaddm (short unsigned int *x, short unsigned int *y); -static void esubm (short unsigned int *x, short unsigned int *y); -static void emdnorm (short unsigned int *s, int lost, int subflg, - long int exp, int rcntrl, LDPARMS * ldp); -#if 0 /* Broken, unusable implementation of strtold */ -static int asctoeg (char *ss, short unsigned int *y, int oprec, - LDPARMS * ldp); -#endif -static void enan (short unsigned int *nan, int size); -#if LDBL_MANT_DIG == 24 -static void toe24 (short unsigned int *x, short unsigned int *y); -#elif LDBL_MANT_DIG == 53 -static void toe53 (short unsigned int *x, short unsigned int *y); -#elif LDBL_MANT_DIG == 64 -static void toe64 (short unsigned int *a, short unsigned int *b); -#else -static void toe113 (short unsigned int *a, short unsigned int *b); -#endif -static void eiremain (short unsigned int *den, short unsigned int *num, - LDPARMS * ldp); -static int ecmpm (register short unsigned int *a, - register short unsigned int *b); -static int edivm (short unsigned int *den, short unsigned int *num, - LDPARMS * ldp); -static int emulm (short unsigned int *a, short unsigned int *b, - LDPARMS * ldp); -static int eisneg (const short unsigned int *x); -static int eisinf (const short unsigned int *x); -static void emovi (const short unsigned int *a, short unsigned int *b); -static void emovo (short unsigned int *a, short unsigned int *b, - LDPARMS * ldp); -static void emovz (register short unsigned int *a, - register short unsigned int *b); -static void ecleaz (register short unsigned int *xi); -static void eadd1 (const short unsigned int *a, const short unsigned int *b, - short unsigned int *c, int subflg, LDPARMS * ldp); -static int eisnan (const short unsigned int *x); -static int eiisnan (short unsigned int *x); - -#ifdef DEC -static void etodec (), todec (), dectoe (); -#endif - -/* -; Clear out entire external format number. -; -; unsigned short x[]; -; eclear( x ); -*/ - -static void -eclear (register short unsigned int *x) -{ - register int i; - - for (i = 0; i < NE; i++) - *x++ = 0; -} - - - -/* Move external format number from a to b. - * - * emov( a, b ); - */ - -static void -emov (register const short unsigned int *a, register short unsigned int *b) -{ - register int i; - - for (i = 0; i < NE; i++) - *b++ = *a++; -} - - -/* -; Negate external format number -; -; unsigned short x[NE]; -; eneg( x ); -*/ - -static void -eneg (short unsigned int *x) -{ - -#ifdef NANS - if (eisnan (x)) - return; -#endif - x[NE - 1] ^= 0x8000; /* Toggle the sign bit */ -} - - - -/* Return 1 if external format number is negative, - * else return zero. - */ -static int -eisneg (const short unsigned int *x) -{ - -#ifdef NANS - if (eisnan (x)) - return (0); -#endif - if (x[NE - 1] & 0x8000) - return (1); - else - return (0); -} - - -/* Return 1 if external format number has maximum possible exponent, - * else return zero. - */ -static int -eisinf (const short unsigned int *x) -{ - - if ((x[NE - 1] & 0x7fff) == 0x7fff) - { -#ifdef NANS - if (eisnan (x)) - return (0); -#endif - return (1); - } - else - return (0); -} - -/* Check if e-type number is not a number. - */ -static int -eisnan (const short unsigned int *x) -{ - -#ifdef NANS - int i; -/* NaN has maximum exponent */ - if ((x[NE - 1] & 0x7fff) != 0x7fff) - return (0); -/* ... and non-zero significand field. */ - for (i = 0; i < NE - 1; i++) - { - if (*x++ != 0) - return (1); - } -#endif - return (0); -} - -/* -; Fill entire number, including exponent and significand, with -; largest possible number. These programs implement a saturation -; value that is an ordinary, legal number. A special value -; "infinity" may also be implemented; this would require tests -; for that value and implementation of special rules for arithmetic -; operations involving inifinity. -*/ - -static void -einfin (register short unsigned int *x, register LDPARMS * ldp) -{ - register int i; - -#ifdef USE_INFINITY - for (i = 0; i < NE - 1; i++) - *x++ = 0; - *x |= 32767; - ldp = ldp; -#else - for (i = 0; i < NE - 1; i++) - *x++ = 0xffff; - *x |= 32766; - if (ldp->rndprc < NBITS) - { - if (ldp->rndprc == 113) - { - *(x - 9) = 0; - *(x - 8) = 0; - } - if (ldp->rndprc == 64) - { - *(x - 5) = 0; - } - if (ldp->rndprc == 53) - { - *(x - 4) = 0xf800; - } - else - { - *(x - 4) = 0; - *(x - 3) = 0; - *(x - 2) = 0xff00; - } - } -#endif -} - -/* Move in external format number, - * converting it to internal format. - */ -static void -emovi (const short unsigned int *a, short unsigned int *b) -{ - register const unsigned short *p; - register unsigned short *q; - int i; - - q = b; - p = a + (NE - 1); /* point to last word of external number */ -/* get the sign bit */ - if (*p & 0x8000) - *q++ = 0xffff; - else - *q++ = 0; -/* get the exponent */ - *q = *p--; - *q++ &= 0x7fff; /* delete the sign bit */ -#ifdef USE_INFINITY - if ((*(q - 1) & 0x7fff) == 0x7fff) - { -#ifdef NANS - if (eisnan (a)) - { - *q++ = 0; - for (i = 3; i < NI; i++) - *q++ = *p--; - return; - } -#endif - for (i = 2; i < NI; i++) - *q++ = 0; - return; - } -#endif -/* clear high guard word */ - *q++ = 0; -/* move in the significand */ - for (i = 0; i < NE - 1; i++) - *q++ = *p--; -/* clear low guard word */ - *q = 0; -} - - -/* Move internal format number out, - * converting it to external format. - */ -static void -emovo (short unsigned int *a, short unsigned int *b, LDPARMS * ldp) -{ - register unsigned short *p, *q; - unsigned short i; - - p = a; - q = b + (NE - 1); /* point to output exponent */ -/* combine sign and exponent */ - i = *p++; - if (i) - *q-- = *p++ | 0x8000; - else - *q-- = *p++; -#ifdef USE_INFINITY - if (*(p - 1) == 0x7fff) - { -#ifdef NANS - if (eiisnan (a)) - { - enan (b, NBITS); - return; - } -#endif - einfin (b, ldp); - return; - } -#endif -/* skip over guard word */ - ++p; -/* move the significand */ - for (i = 0; i < NE - 1; i++) - *q-- = *p++; -} - - -/* Clear out internal format number. - */ - -static void -ecleaz (register short unsigned int *xi) -{ - register int i; - - for (i = 0; i < NI; i++) - *xi++ = 0; -} - -/* same, but don't touch the sign. */ - -static void -ecleazs (register short unsigned int *xi) -{ - register int i; - - ++xi; - for (i = 0; i < NI - 1; i++) - *xi++ = 0; -} - - - - -/* Move internal format number from a to b. - */ -static void -emovz (register short unsigned int *a, register short unsigned int *b) -{ - register int i; - - for (i = 0; i < NI - 1; i++) - *b++ = *a++; -/* clear low guard word */ - *b = 0; -} - -/* Return nonzero if internal format number is a NaN. - */ - -static int -eiisnan (short unsigned int *x) -{ - int i; - - if ((x[E] & 0x7fff) == 0x7fff) - { - for (i = M + 1; i < NI; i++) - { - if (x[i] != 0) - return (1); - } - } - return (0); -} - -#if LDBL_MANT_DIG == 64 - -/* Return nonzero if internal format number is infinite. */ -static int -eiisinf (unsigned short x[]) -{ - -#ifdef NANS - if (eiisnan (x)) - return (0); -#endif - if ((x[E] & 0x7fff) == 0x7fff) - return (1); - return (0); -} -#endif /* LDBL_MANT_DIG == 64 */ - -/* -; Compare significands of numbers in internal format. -; Guard words are included in the comparison. -; -; unsigned short a[NI], b[NI]; -; cmpm( a, b ); -; -; for the significands: -; returns +1 if a > b -; 0 if a == b -; -1 if a < b -*/ -static int -ecmpm (register short unsigned int *a, register short unsigned int *b) -{ - int i; - - a += M; /* skip up to significand area */ - b += M; - for (i = M; i < NI; i++) - { - if (*a++ != *b++) - goto difrnt; - } - return (0); - -difrnt: - if (*(--a) > *(--b)) - return (1); - else - return (-1); -} - - -/* -; Shift significand down by 1 bit -*/ - -static void -eshdn1 (register short unsigned int *x) -{ - register unsigned short bits; - int i; - - x += M; /* point to significand area */ - - bits = 0; - for (i = M; i < NI; i++) - { - if (*x & 1) - bits |= 1; - *x >>= 1; - if (bits & 2) - *x |= 0x8000; - bits <<= 1; - ++x; - } -} - - - -/* -; Shift significand up by 1 bit -*/ - -static void -eshup1 (register short unsigned int *x) -{ - register unsigned short bits; - int i; - - x += NI - 1; - bits = 0; - - for (i = M; i < NI; i++) - { - if (*x & 0x8000) - bits |= 1; - *x <<= 1; - if (bits & 2) - *x |= 1; - bits <<= 1; - --x; - } -} - - - -/* -; Shift significand down by 8 bits -*/ - -static void -eshdn8 (register short unsigned int *x) -{ - register unsigned short newbyt, oldbyt; - int i; - - x += M; - oldbyt = 0; - for (i = M; i < NI; i++) - { - newbyt = *x << 8; - *x >>= 8; - *x |= oldbyt; - oldbyt = newbyt; - ++x; - } -} - -/* -; Shift significand up by 8 bits -*/ - -static void -eshup8 (register short unsigned int *x) -{ - int i; - register unsigned short newbyt, oldbyt; - - x += NI - 1; - oldbyt = 0; - - for (i = M; i < NI; i++) - { - newbyt = *x >> 8; - *x <<= 8; - *x |= oldbyt; - oldbyt = newbyt; - --x; - } -} - -/* -; Shift significand up by 16 bits -*/ - -static void -eshup6 (register short unsigned int *x) -{ - int i; - register unsigned short *p; - - p = x + M; - x += M + 1; - - for (i = M; i < NI - 1; i++) - *p++ = *x++; - - *p = 0; -} - -/* -; Shift significand down by 16 bits -*/ - -static void -eshdn6 (register short unsigned int *x) -{ - int i; - register unsigned short *p; - - x += NI - 1; - p = x + 1; - - for (i = M; i < NI - 1; i++) - *(--p) = *(--x); - - *(--p) = 0; -} - -/* -; Add significands -; x + y replaces y -*/ - -static void -eaddm (short unsigned int *x, short unsigned int *y) -{ - register unsigned long a; - int i; - unsigned int carry; - - x += NI - 1; - y += NI - 1; - carry = 0; - for (i = M; i < NI; i++) - { - a = (unsigned long) (*x) + (unsigned long) (*y) + carry; - if (a & 0x10000) - carry = 1; - else - carry = 0; - *y = (unsigned short) a; - --x; - --y; - } -} - -/* -; Subtract significands -; y - x replaces y -*/ - -static void -esubm (short unsigned int *x, short unsigned int *y) -{ - unsigned long a; - int i; - unsigned int carry; - - x += NI - 1; - y += NI - 1; - carry = 0; - for (i = M; i < NI; i++) - { - a = (unsigned long) (*y) - (unsigned long) (*x) - carry; - if (a & 0x10000) - carry = 1; - else - carry = 0; - *y = (unsigned short) a; - --x; - --y; - } -} - - -/* Divide significands */ - - -/* Multiply significand of e-type number b -by 16-bit quantity a, e-type result to c. */ - -static void -m16m (short unsigned int a, short unsigned int *b, short unsigned int *c) -{ - register unsigned short *pp; - register unsigned long carry; - unsigned short *ps; - unsigned short p[NI]; - unsigned long aa, m; - int i; - - aa = a; - pp = &p[NI - 2]; - *pp++ = 0; - *pp = 0; - ps = &b[NI - 1]; - - for (i = M + 1; i < NI; i++) - { - if (*ps == 0) - { - --ps; - --pp; - *(pp - 1) = 0; - } - else - { - m = (unsigned long) aa **ps--; - carry = (m & 0xffff) + *pp; - *pp-- = (unsigned short) carry; - carry = (carry >> 16) + (m >> 16) + *pp; - *pp = (unsigned short) carry; - *(pp - 1) = carry >> 16; - } - } - for (i = M; i < NI; i++) - c[i] = p[i]; -} - - -/* Divide significands. Neither the numerator nor the denominator -is permitted to have its high guard word nonzero. */ - - -static int -edivm (short unsigned int *den, short unsigned int *num, LDPARMS * ldp) -{ - int i; - register unsigned short *p; - unsigned long tnum; - unsigned short j, tdenm, tquot; - unsigned short tprod[NI + 1]; - unsigned short *equot = ldp->equot; - - p = &equot[0]; - *p++ = num[0]; - *p++ = num[1]; - - for (i = M; i < NI; i++) - { - *p++ = 0; - } - eshdn1 (num); - tdenm = den[M + 1]; - for (i = M; i < NI; i++) - { - /* Find trial quotient digit (the radix is 65536). */ - tnum = (((unsigned long) num[M]) << 16) + num[M + 1]; - - /* Do not execute the divide instruction if it will overflow. */ - if ((tdenm * 0xffffUL) < tnum) - tquot = 0xffff; - else - tquot = tnum / tdenm; - - /* Prove that the divide worked. */ -/* - tcheck = (unsigned long )tquot * tdenm; - if( tnum - tcheck > tdenm ) - tquot = 0xffff; -*/ - /* Multiply denominator by trial quotient digit. */ - m16m (tquot, den, tprod); - /* The quotient digit may have been overestimated. */ - if (ecmpm (tprod, num) > 0) - { - tquot -= 1; - esubm (den, tprod); - if (ecmpm (tprod, num) > 0) - { - tquot -= 1; - esubm (den, tprod); - } - } -/* - if( ecmpm( tprod, num ) > 0 ) - { - eshow( "tprod", tprod ); - eshow( "num ", num ); - printf( "tnum = %08lx, tden = %04x, tquot = %04x\n", - tnum, den[M+1], tquot ); - } -*/ - esubm (tprod, num); -/* - if( ecmpm( num, den ) >= 0 ) - { - eshow( "num ", num ); - eshow( "den ", den ); - printf( "tnum = %08lx, tden = %04x, tquot = %04x\n", - tnum, den[M+1], tquot ); - } -*/ - equot[i] = tquot; - eshup6 (num); - } -/* test for nonzero remainder after roundoff bit */ - p = &num[M]; - j = 0; - for (i = M; i < NI; i++) - { - j |= *p++; - } - if (j) - j = 1; - - for (i = 0; i < NI; i++) - num[i] = equot[i]; - - return ((int) j); -} - - - -/* Multiply significands */ -static int -emulm (short unsigned int *a, short unsigned int *b, LDPARMS * ldp) -{ - unsigned short *p, *q; - unsigned short pprod[NI]; - unsigned short j; - int i; - unsigned short *equot = ldp->equot; - - equot[0] = b[0]; - equot[1] = b[1]; - for (i = M; i < NI; i++) - equot[i] = 0; - - j = 0; - p = &a[NI - 1]; - q = &equot[NI - 1]; - for (i = M + 1; i < NI; i++) - { - if (*p == 0) - { - --p; - } - else - { - m16m (*p--, b, pprod); - eaddm (pprod, equot); - } - j |= *q; - eshdn6 (equot); - } - - for (i = 0; i < NI; i++) - b[i] = equot[i]; - -/* return flag for lost nonzero bits */ - return ((int) j); -} - - -/* -static void eshow(str, x) -char *str; -unsigned short *x; -{ -int i; - -printf( "%s ", str ); -for( i=0; i NBITS) - { - ecleazs (s); - return; - } -#endif - exp -= j; -#ifndef USE_INFINITY - if (exp >= 32767L) - goto overf; -#else - if ((j > NBITS) && (exp < 32767L)) - { - ecleazs (s); - return; - } -#endif - if (exp < 0L) - { - if (exp > (long) (-NBITS - 1)) - { - j = (int) exp; - i = eshift (s, j); - if (i) - lost = 1; - } - else - { - ecleazs (s); - return; - } - } -/* Round off, unless told not to by rcntrl. */ - if (rcntrl == 0) - goto mdfin; -/* Set up rounding parameters if the control register changed. */ - if (ldp->rndprc != ldp->rlast) - { - ecleaz (ldp->rbit); - switch (ldp->rndprc) - { - default: - case NBITS: - ldp->rw = NI - 1; /* low guard word */ - ldp->rmsk = 0xffff; - ldp->rmbit = 0x8000; - ldp->rebit = 1; - ldp->re = ldp->rw - 1; - break; - case 113: - ldp->rw = 10; - ldp->rmsk = 0x7fff; - ldp->rmbit = 0x4000; - ldp->rebit = 0x8000; - ldp->re = ldp->rw; - break; - case 64: - ldp->rw = 7; - ldp->rmsk = 0xffff; - ldp->rmbit = 0x8000; - ldp->rebit = 1; - ldp->re = ldp->rw - 1; - break; -/* For DEC arithmetic */ - case 56: - ldp->rw = 6; - ldp->rmsk = 0xff; - ldp->rmbit = 0x80; - ldp->rebit = 0x100; - ldp->re = ldp->rw; - break; - case 53: - ldp->rw = 6; - ldp->rmsk = 0x7ff; - ldp->rmbit = 0x0400; - ldp->rebit = 0x800; - ldp->re = ldp->rw; - break; - case 24: - ldp->rw = 4; - ldp->rmsk = 0xff; - ldp->rmbit = 0x80; - ldp->rebit = 0x100; - ldp->re = ldp->rw; - break; - } - ldp->rbit[ldp->re] = ldp->rebit; - ldp->rlast = ldp->rndprc; - } - -/* Shift down 1 temporarily if the data structure has an implied - * most significant bit and the number is denormal. - * For rndprc = 64 or NBITS, there is no implied bit. - * But Intel long double denormals lose one bit of significance even so. - */ -#if IBMPC - if ((exp <= 0) && (ldp->rndprc != NBITS)) -#else - if ((exp <= 0) && (ldp->rndprc != 64) && (ldp->rndprc != NBITS)) -#endif - { - lost |= s[NI - 1] & 1; - eshdn1 (s); - } -/* Clear out all bits below the rounding bit, - * remembering in r if any were nonzero. - */ - r = s[ldp->rw] & ldp->rmsk; - if (ldp->rndprc < NBITS) - { - i = ldp->rw + 1; - while (i < NI) - { - if (s[i]) - r |= 1; - s[i] = 0; - ++i; - } - } - s[ldp->rw] &= ~ldp->rmsk; - if ((r & ldp->rmbit) != 0) - { - if (r == ldp->rmbit) - { - if (lost == 0) - { /* round to even */ - if ((s[ldp->re] & ldp->rebit) == 0) - goto mddone; - } - else - { - if (subflg != 0) - goto mddone; - } - } - eaddm (ldp->rbit, s); - } -mddone: -#if IBMPC - if ((exp <= 0) && (ldp->rndprc != NBITS)) -#else - if ((exp <= 0) && (ldp->rndprc != 64) && (ldp->rndprc != NBITS)) -#endif - { - eshup1 (s); - } - if (s[2] != 0) - { /* overflow on roundoff */ - eshdn1 (s); - exp += 1; - } -mdfin: - s[NI - 1] = 0; - if (exp >= 32767L) - { -#ifndef USE_INFINITY - overf: -#endif -#ifdef USE_INFINITY - s[1] = 32767; - for (i = 2; i < NI - 1; i++) - s[i] = 0; -#else - s[1] = 32766; - s[2] = 0; - for (i = M + 1; i < NI - 1; i++) - s[i] = 0xffff; - s[NI - 1] = 0; - if ((ldp->rndprc < 64) || (ldp->rndprc == 113)) - { - s[ldp->rw] &= ~ldp->rmsk; - if (ldp->rndprc == 24) - { - s[5] = 0; - s[6] = 0; - } - } -#endif - return; - } - if (exp < 0) - s[1] = 0; - else - s[1] = (unsigned short) exp; -} - - - -/* -; Subtract external format numbers. -; -; unsigned short a[NE], b[NE], c[NE]; -; LDPARMS *ldp; -; esub( a, b, c, ldp ); c = b - a -*/ - -static void -esub (const short unsigned int *a, const short unsigned int *b, - short unsigned int *c, LDPARMS * ldp) -{ - -#ifdef NANS - if (eisnan (a)) - { - emov (a, c); - return; - } - if (eisnan (b)) - { - emov (b, c); - return; - } -/* Infinity minus infinity is a NaN. - * Test for subtracting infinities of the same sign. - */ - if (eisinf (a) && eisinf (b) && ((eisneg (a) ^ eisneg (b)) == 0)) - { - mtherr ("esub", DOMAIN); - enan (c, NBITS); - return; - } -#endif - eadd1 (a, b, c, 1, ldp); -} - - - -static void -eadd1 (const short unsigned int *a, const short unsigned int *b, - short unsigned int *c, int subflg, LDPARMS * ldp) -{ - unsigned short ai[NI], bi[NI], ci[NI]; - int i, lost, j, k; - long lt, lta, ltb; - -#ifdef USE_INFINITY - if (eisinf (a)) - { - emov (a, c); - if (subflg) - eneg (c); - return; - } - if (eisinf (b)) - { - emov (b, c); - return; - } -#endif - emovi (a, ai); - emovi (b, bi); - if (subflg) - ai[0] = ~ai[0]; - -/* compare exponents */ - lta = ai[E]; - ltb = bi[E]; - lt = lta - ltb; - if (lt > 0L) - { /* put the larger number in bi */ - emovz (bi, ci); - emovz (ai, bi); - emovz (ci, ai); - ltb = bi[E]; - lt = -lt; - } - lost = 0; - if (lt != 0L) - { - if (lt < (long) (-NBITS - 1)) - goto done; /* answer same as larger addend */ - k = (int) lt; - lost = eshift (ai, k); /* shift the smaller number down */ - } - else - { -/* exponents were the same, so must compare significands */ - i = ecmpm (ai, bi); - if (i == 0) - { /* the numbers are identical in magnitude */ - /* if different signs, result is zero */ - if (ai[0] != bi[0]) - { - eclear (c); - return; - } - /* if same sign, result is double */ - /* double denomalized tiny number */ - if ((bi[E] == 0) && ((bi[3] & 0x8000) == 0)) - { - eshup1 (bi); - goto done; - } - /* add 1 to exponent unless both are zero! */ - for (j = 1; j < NI - 1; j++) - { - if (bi[j] != 0) - { -/* This could overflow, but let emovo take care of that. */ - ltb += 1; - break; - } - } - bi[E] = (unsigned short) ltb; - goto done; - } - if (i > 0) - { /* put the larger number in bi */ - emovz (bi, ci); - emovz (ai, bi); - emovz (ci, ai); - } - } - if (ai[0] == bi[0]) - { - eaddm (ai, bi); - subflg = 0; - } - else - { - esubm (ai, bi); - subflg = 1; - } - emdnorm (bi, lost, subflg, ltb, 64, ldp); - -done: - emovo (bi, c, ldp); -} - - - -/* -; Divide. -; -; unsigned short a[NE], b[NE], c[NE]; -; LDPARMS *ldp; -; ediv( a, b, c, ldp ); c = b / a -*/ -static void -ediv (const short unsigned int *a, const short unsigned int *b, - short unsigned int *c, LDPARMS * ldp) -{ - unsigned short ai[NI], bi[NI]; - int i; - long lt, lta, ltb; - -#ifdef NANS -/* Return any NaN input. */ - if (eisnan (a)) - { - emov (a, c); - return; - } - if (eisnan (b)) - { - emov (b, c); - return; - } -/* Zero over zero, or infinity over infinity, is a NaN. */ - if (((ecmp (a, ezero) == 0) && (ecmp (b, ezero) == 0)) - || (eisinf (a) && eisinf (b))) - { - mtherr ("ediv", DOMAIN); - enan (c, NBITS); - return; - } -#endif -/* Infinity over anything else is infinity. */ -#ifdef USE_INFINITY - if (eisinf (b)) - { - if (eisneg (a) ^ eisneg (b)) - *(c + (NE - 1)) = 0x8000; - else - *(c + (NE - 1)) = 0; - einfin (c, ldp); - return; - } - if (eisinf (a)) - { - eclear (c); - return; - } -#endif - emovi (a, ai); - emovi (b, bi); - lta = ai[E]; - ltb = bi[E]; - if (bi[E] == 0) - { /* See if numerator is zero. */ - for (i = 1; i < NI - 1; i++) - { - if (bi[i] != 0) - { - ltb -= enormlz (bi); - goto dnzro1; - } - } - eclear (c); - return; - } -dnzro1: - - if (ai[E] == 0) - { /* possible divide by zero */ - for (i = 1; i < NI - 1; i++) - { - if (ai[i] != 0) - { - lta -= enormlz (ai); - goto dnzro2; - } - } - if (ai[0] == bi[0]) - *(c + (NE - 1)) = 0; - else - *(c + (NE - 1)) = 0x8000; - einfin (c, ldp); - mtherr ("ediv", SING); - return; - } -dnzro2: - - i = edivm (ai, bi, ldp); -/* calculate exponent */ - lt = ltb - lta + EXONE; - emdnorm (bi, i, 0, lt, 64, ldp); -/* set the sign */ - if (ai[0] == bi[0]) - bi[0] = 0; - else - bi[0] = 0Xffff; - emovo (bi, c, ldp); -} - - - -/* -; Multiply. -; -; unsigned short a[NE], b[NE], c[NE]; -; LDPARMS *ldp -; emul( a, b, c, ldp ); c = b * a -*/ -static void -emul (const short unsigned int *a, const short unsigned int *b, - short unsigned int *c, LDPARMS * ldp) -{ - unsigned short ai[NI], bi[NI]; - int i, j; - long lt, lta, ltb; - -#ifdef NANS -/* NaN times anything is the same NaN. */ - if (eisnan (a)) - { - emov (a, c); - return; - } - if (eisnan (b)) - { - emov (b, c); - return; - } -/* Zero times infinity is a NaN. */ - if ((eisinf (a) && (ecmp (b, ezero) == 0)) - || (eisinf (b) && (ecmp (a, ezero) == 0))) - { - mtherr ("emul", DOMAIN); - enan (c, NBITS); - return; - } -#endif -/* Infinity times anything else is infinity. */ -#ifdef USE_INFINITY - if (eisinf (a) || eisinf (b)) - { - if (eisneg (a) ^ eisneg (b)) - *(c + (NE - 1)) = 0x8000; - else - *(c + (NE - 1)) = 0; - einfin (c, ldp); - return; - } -#endif - emovi (a, ai); - emovi (b, bi); - lta = ai[E]; - ltb = bi[E]; - if (ai[E] == 0) - { - for (i = 1; i < NI - 1; i++) - { - if (ai[i] != 0) - { - lta -= enormlz (ai); - goto mnzer1; - } - } - eclear (c); - return; - } -mnzer1: - - if (bi[E] == 0) - { - for (i = 1; i < NI - 1; i++) - { - if (bi[i] != 0) - { - ltb -= enormlz (bi); - goto mnzer2; - } - } - eclear (c); - return; - } -mnzer2: - -/* Multiply significands */ - j = emulm (ai, bi, ldp); -/* calculate exponent */ - lt = lta + ltb - (EXONE - 1); - emdnorm (bi, j, 0, lt, 64, ldp); -/* calculate sign of product */ - if (ai[0] == bi[0]) - bi[0] = 0; - else - bi[0] = 0xffff; - emovo (bi, c, ldp); -} - - - -#if LDBL_MANT_DIG > 64 -static void -e113toe (short unsigned int *pe, short unsigned int *y, LDPARMS * ldp) -{ - register unsigned short r; - unsigned short *e, *p; - unsigned short yy[NI]; - int denorm, i; - - e = pe; - denorm = 0; - ecleaz (yy); -#ifdef IBMPC - e += 7; -#endif - r = *e; - yy[0] = 0; - if (r & 0x8000) - yy[0] = 0xffff; - r &= 0x7fff; -#ifdef USE_INFINITY - if (r == 0x7fff) - { -#ifdef NANS -#ifdef IBMPC - for (i = 0; i < 7; i++) - { - if (pe[i] != 0) - { - enan (y, NBITS); - return; - } - } -#else /* !IBMPC */ - for (i = 1; i < 8; i++) - { - if (pe[i] != 0) - { - enan (y, NBITS); - return; - } - } -#endif /* !IBMPC */ -#endif /* NANS */ - eclear (y); - einfin (y, ldp); - if (*e & 0x8000) - eneg (y); - return; - } -#endif /* INFINITY */ - yy[E] = r; - p = &yy[M + 1]; -#ifdef IBMPC - for (i = 0; i < 7; i++) - *p++ = *(--e); -#else /* IBMPC */ - ++e; - for (i = 0; i < 7; i++) - *p++ = *e++; -#endif /* IBMPC */ -/* If denormal, remove the implied bit; else shift down 1. */ - if (r == 0) - { - yy[M] = 0; - } - else - { - yy[M] = 1; - eshift (yy, -1); - } - emovo (yy, y, ldp); -} - -/* move out internal format to ieee long double */ -static void -__attribute__ ((__unused__)) -toe113 (short unsigned int *a, short unsigned int *b) -{ - register unsigned short *p, *q; - unsigned short i; - -#ifdef NANS - if (eiisnan (a)) - { - enan (b, 113); - return; - } -#endif - p = a; -#ifdef MIEEE - q = b; -#else - q = b + 7; /* point to output exponent */ -#endif - -/* If not denormal, delete the implied bit. */ - if (a[E] != 0) - { - eshup1 (a); - } -/* combine sign and exponent */ - i = *p++; -#ifdef MIEEE - if (i) - *q++ = *p++ | 0x8000; - else - *q++ = *p++; -#else - if (i) - *q-- = *p++ | 0x8000; - else - *q-- = *p++; -#endif -/* skip over guard word */ - ++p; -/* move the significand */ -#ifdef MIEEE - for (i = 0; i < 7; i++) - *q++ = *p++; -#else - for (i = 0; i < 7; i++) - *q-- = *p++; -#endif -} -#endif /* LDBL_MANT_DIG > 64 */ - - -#if LDBL_MANT_DIG == 64 -static void -e64toe (short unsigned int *pe, short unsigned int *y, LDPARMS * ldp) -{ - unsigned short yy[NI]; - unsigned short *p, *q, *e; - int i; - - e = pe; - p = yy; - - for (i = 0; i < NE - 5; i++) - *p++ = 0; -#ifdef IBMPC - for (i = 0; i < 5; i++) - *p++ = *e++; -#endif -#ifdef DEC - for (i = 0; i < 5; i++) - *p++ = *e++; -#endif -#ifdef MIEEE - p = &yy[0] + (NE - 1); - *p-- = *e++; - ++e; /* MIEEE skips over 2nd short */ - for (i = 0; i < 4; i++) - *p-- = *e++; -#endif - -#ifdef IBMPC -/* For Intel long double, shift denormal significand up 1 - -- but only if the top significand bit is zero. */ - if ((yy[NE - 1] & 0x7fff) == 0 && (yy[NE - 2] & 0x8000) == 0) - { - unsigned short temp[NI + 1]; - emovi (yy, temp); - eshup1 (temp); - emovo (temp, y, ldp); - return; - } -#endif -#ifdef USE_INFINITY -/* Point to the exponent field. */ - p = &yy[NE - 1]; - if ((*p & 0x7fff) == 0x7fff) - { -#ifdef NANS -#ifdef IBMPC - for (i = 0; i < 4; i++) - { - if ((i != 3 && pe[i] != 0) - /* Check for Intel long double infinity pattern. */ - || (i == 3 && pe[i] != 0x8000)) - { - enan (y, NBITS); - return; - } - } -#endif -#ifdef MIEEE - for (i = 2; i <= 5; i++) - { - if (pe[i] != 0) - { - enan (y, NBITS); - return; - } - } -#endif -#endif /* NANS */ - eclear (y); - einfin (y, ldp); - if (*p & 0x8000) - eneg (y); - return; - } -#endif /* USE_INFINITY */ - p = yy; - q = y; - for (i = 0; i < NE; i++) - *q++ = *p++; -} - -/* move out internal format to ieee long double */ -static void -__attribute__ ((__unused__)) -toe64 (short unsigned int *a, short unsigned int *b) -{ - register unsigned short *p, *q; - unsigned short i; - -#ifdef NANS - if (eiisnan (a)) - { - enan (b, 64); - return; - } -#endif -#ifdef IBMPC -/* Shift Intel denormal significand down 1. */ - if (a[E] == 0) - eshdn1 (a); -#endif - p = a; -#ifdef MIEEE - q = b; -#else - q = b + 4; /* point to output exponent */ -/* NOTE: Intel data type is 96 bits wide, clear the last word here. */ - *(q + 1) = 0; -#endif - -/* combine sign and exponent */ - i = *p++; -#ifdef MIEEE - if (i) - *q++ = *p++ | 0x8000; - else - *q++ = *p++; - *q++ = 0; /* leave 2nd short blank */ -#else - if (i) - *q-- = *p++ | 0x8000; - else - *q-- = *p++; -#endif -/* skip over guard word */ - ++p; -/* move the significand */ -#ifdef MIEEE - for (i = 0; i < 4; i++) - *q++ = *p++; -#else -#ifdef USE_INFINITY -#ifdef IBMPC - if (eiisinf (a)) - { - /* Intel long double infinity. */ - *q-- = 0x8000; - *q-- = 0; - *q-- = 0; - *q = 0; - return; - } -#endif /* IBMPC */ -#endif /* USE_INFINITY */ - for (i = 0; i < 4; i++) - *q-- = *p++; -#endif -} - -#endif /* LDBL_MANT_DIG == 64 */ - -#if LDBL_MANT_DIG == 53 -/* -; Convert IEEE double precision to e type -; double d; -; unsigned short x[N+2]; -; e53toe( &d, x ); -*/ -static void -e53toe (short unsigned int *pe, short unsigned int *y, LDPARMS * ldp) -{ -#ifdef DEC - - dectoe (pe, y); /* see etodec.c */ - -#else - - register unsigned short r; - register unsigned short *p, *e; - unsigned short yy[NI]; - int denorm, k; - - e = pe; - denorm = 0; /* flag if denormalized number */ - ecleaz (yy); -#ifdef IBMPC - e += 3; -#endif -#ifdef DEC - e += 3; -#endif - r = *e; - yy[0] = 0; - if (r & 0x8000) - yy[0] = 0xffff; - yy[M] = (r & 0x0f) | 0x10; - r &= ~0x800f; /* strip sign and 4 significand bits */ -#ifdef USE_INFINITY - if (r == 0x7ff0) - { -#ifdef NANS -#ifdef IBMPC - if (((pe[3] & 0xf) != 0) || (pe[2] != 0) - || (pe[1] != 0) || (pe[0] != 0)) - { - enan (y, NBITS); - return; - } -#else /* !IBMPC */ - if (((pe[0] & 0xf) != 0) || (pe[1] != 0) - || (pe[2] != 0) || (pe[3] != 0)) - { - enan (y, NBITS); - return; - } -#endif /* !IBMPC */ -#endif /* NANS */ - eclear (y); - einfin (y, ldp); - if (yy[0]) - eneg (y); - return; - } -#endif - r >>= 4; -/* If zero exponent, then the significand is denormalized. - * So, take back the understood high significand bit. */ - if (r == 0) - { - denorm = 1; - yy[M] &= ~0x10; - } - r += EXONE - 01777; - yy[E] = r; - p = &yy[M + 1]; -#ifdef IBMPC - *p++ = *(--e); - *p++ = *(--e); - *p++ = *(--e); -#else /* !IBMPC */ - ++e; - *p++ = *e++; - *p++ = *e++; - *p++ = *e++; -#endif /* !IBMPC */ - (void) eshift (yy, -5); - if (denorm) - { /* if zero exponent, then normalize the significand */ - if ((k = enormlz (yy)) > NBITS) - ecleazs (yy); - else - yy[E] -= (unsigned short) (k - 1); - } - emovo (yy, y, ldp); -#endif /* !DEC */ -} - -/* -; e type to IEEE double precision -; double d; -; unsigned short x[NE]; -; etoe53( x, &d ); -*/ - -#ifdef DEC - -static void -etoe53 (x, e) - unsigned short *x, *e; -{ - etodec (x, e); /* see etodec.c */ -} - -static void -__attribute__ ((__unused__)) -toe53 (x, y) - unsigned short *x, *y; -{ - todec (x, y); -} - -#else - -static void -__attribute__ ((__unused__)) -toe53 (short unsigned int *x, short unsigned int *y) -{ - unsigned short i; - unsigned short *p; - - -#ifdef NANS - if (eiisnan (x)) - { - enan (y, 53); - return; - } -#endif - p = &x[0]; -#ifdef IBMPC - y += 3; -#endif -#ifdef DEC - y += 3; -#endif - *y = 0; /* output high order */ - if (*p++) - *y = 0x8000; /* output sign bit */ - - i = *p++; - if (i >= (unsigned int) 2047) - { /* Saturate at largest number less than infinity. */ -#ifdef USE_INFINITY - *y |= 0x7ff0; -#ifdef IBMPC - *(--y) = 0; - *(--y) = 0; - *(--y) = 0; -#else /* !IBMPC */ - ++y; - *y++ = 0; - *y++ = 0; - *y++ = 0; -#endif /* IBMPC */ -#else /* !USE_INFINITY */ - *y |= (unsigned short) 0x7fef; -#ifdef IBMPC - *(--y) = 0xffff; - *(--y) = 0xffff; - *(--y) = 0xffff; -#else /* !IBMPC */ - ++y; - *y++ = 0xffff; - *y++ = 0xffff; - *y++ = 0xffff; -#endif -#endif /* !USE_INFINITY */ - return; - } - if (i == 0) - { - (void) eshift (x, 4); - } - else - { - i <<= 4; - (void) eshift (x, 5); - } - i |= *p++ & (unsigned short) 0x0f; /* *p = xi[M] */ - *y |= (unsigned short) i; /* high order output already has sign bit set */ -#ifdef IBMPC - *(--y) = *p++; - *(--y) = *p++; - *(--y) = *p; -#else /* !IBMPC */ - ++y; - *y++ = *p++; - *y++ = *p++; - *y++ = *p++; -#endif /* !IBMPC */ -} - -#endif /* not DEC */ -#endif /* LDBL_MANT_DIG == 53 */ - -#if LDBL_MANT_DIG == 24 -/* -; Convert IEEE single precision to e type -; float d; -; unsigned short x[N+2]; -; dtox( &d, x ); -*/ -void -e24toe (short unsigned int *pe, short unsigned int *y, LDPARMS * ldp) -{ - register unsigned short r; - register unsigned short *p, *e; - unsigned short yy[NI]; - int denorm, k; - - e = pe; - denorm = 0; /* flag if denormalized number */ - ecleaz (yy); -#ifdef IBMPC - e += 1; -#endif -#ifdef DEC - e += 1; -#endif - r = *e; - yy[0] = 0; - if (r & 0x8000) - yy[0] = 0xffff; - yy[M] = (r & 0x7f) | 0200; - r &= ~0x807f; /* strip sign and 7 significand bits */ -#ifdef USE_INFINITY - if (r == 0x7f80) - { -#ifdef NANS -#ifdef MIEEE - if (((pe[0] & 0x7f) != 0) || (pe[1] != 0)) - { - enan (y, NBITS); - return; - } -#else /* !MIEEE */ - if (((pe[1] & 0x7f) != 0) || (pe[0] != 0)) - { - enan (y, NBITS); - return; - } -#endif /* !MIEEE */ -#endif /* NANS */ - eclear (y); - einfin (y, ldp); - if (yy[0]) - eneg (y); - return; - } -#endif - r >>= 7; -/* If zero exponent, then the significand is denormalized. - * So, take back the understood high significand bit. */ - if (r == 0) - { - denorm = 1; - yy[M] &= ~0200; - } - r += EXONE - 0177; - yy[E] = r; - p = &yy[M + 1]; -#ifdef IBMPC - *p++ = *(--e); -#endif -#ifdef DEC - *p++ = *(--e); -#endif -#ifdef MIEEE - ++e; - *p++ = *e++; -#endif - (void) eshift (yy, -8); - if (denorm) - { /* if zero exponent, then normalize the significand */ - if ((k = enormlz (yy)) > NBITS) - ecleazs (yy); - else - yy[E] -= (unsigned short) (k - 1); - } - emovo (yy, y, ldp); -} - -static void -__attribute__ ((__unused__)) -toe24 (short unsigned int *x, short unsigned int *y) -{ - unsigned short i; - unsigned short *p; - -#ifdef NANS - if (eiisnan (x)) - { - enan (y, 24); - return; - } -#endif - p = &x[0]; -#ifdef IBMPC - y += 1; -#endif -#ifdef DEC - y += 1; -#endif - *y = 0; /* output high order */ - if (*p++) - *y = 0x8000; /* output sign bit */ - - i = *p++; - if (i >= 255) - { /* Saturate at largest number less than infinity. */ -#ifdef USE_INFINITY - *y |= (unsigned short) 0x7f80; -#ifdef IBMPC - *(--y) = 0; -#endif -#ifdef DEC - *(--y) = 0; -#endif -#ifdef MIEEE - ++y; - *y = 0; -#endif -#else /* !USE_INFINITY */ - *y |= (unsigned short) 0x7f7f; -#ifdef IBMPC - *(--y) = 0xffff; -#endif -#ifdef DEC - *(--y) = 0xffff; -#endif -#ifdef MIEEE - ++y; - *y = 0xffff; -#endif -#endif /* !USE_INFINITY */ - return; - } - if (i == 0) - { - (void) eshift (x, 7); - } - else - { - i <<= 7; - (void) eshift (x, 8); - } - i |= *p++ & (unsigned short) 0x7f; /* *p = xi[M] */ - *y |= i; /* high order output already has sign bit set */ -#ifdef IBMPC - *(--y) = *p; -#endif -#ifdef DEC - *(--y) = *p; -#endif -#ifdef MIEEE - ++y; - *y = *p; -#endif -} -#endif /* LDBL_MANT_DIG == 24 */ - -/* Compare two e type numbers. - * - * unsigned short a[NE], b[NE]; - * ecmp( a, b ); - * - * returns +1 if a > b - * 0 if a == b - * -1 if a < b - * -2 if either a or b is a NaN. - */ -static int -ecmp (const short unsigned int *a, const short unsigned int *b) -{ - unsigned short ai[NI], bi[NI]; - register unsigned short *p, *q; - register int i; - int msign; - -#ifdef NANS - if (eisnan (a) || eisnan (b)) - return (-2); -#endif - emovi (a, ai); - p = ai; - emovi (b, bi); - q = bi; - - if (*p != *q) - { /* the signs are different */ -/* -0 equals + 0 */ - for (i = 1; i < NI - 1; i++) - { - if (ai[i] != 0) - goto nzro; - if (bi[i] != 0) - goto nzro; - } - return (0); - nzro: - if (*p == 0) - return (1); - else - return (-1); - } -/* both are the same sign */ - if (*p == 0) - msign = 1; - else - msign = -1; - i = NI - 1; - do - { - if (*p++ != *q++) - { - goto diff; - } - } - while (--i > 0); - - return (0); /* equality */ - - - -diff: - - if (*(--p) > *(--q)) - return (msign); /* p is bigger */ - else - return (-msign); /* p is littler */ -} - - -/* -; Shift significand -; -; Shifts significand area up or down by the number of bits -; given by the variable sc. -*/ -static int -eshift (short unsigned int *x, int sc) -{ - unsigned short lost; - unsigned short *p; - - if (sc == 0) - return (0); - - lost = 0; - p = x + NI - 1; - - if (sc < 0) - { - sc = -sc; - while (sc >= 16) - { - lost |= *p; /* remember lost bits */ - eshdn6 (x); - sc -= 16; - } - - while (sc >= 8) - { - lost |= *p & 0xff; - eshdn8 (x); - sc -= 8; - } - - while (sc > 0) - { - lost |= *p & 1; - eshdn1 (x); - sc -= 1; - } - } - else - { - while (sc >= 16) - { - eshup6 (x); - sc -= 16; - } - - while (sc >= 8) - { - eshup8 (x); - sc -= 8; - } - - while (sc > 0) - { - eshup1 (x); - sc -= 1; - } - } - if (lost) - lost = 1; - return ((int) lost); -} - - - -/* -; normalize -; -; Shift normalizes the significand area pointed to by argument -; shift count (up = positive) is returned. -*/ -static int -enormlz (short unsigned int *x) -{ - register unsigned short *p; - int sc; - - sc = 0; - p = &x[M]; - if (*p != 0) - goto normdn; - ++p; - if (*p & 0x8000) - return (0); /* already normalized */ - while (*p == 0) - { - eshup6 (x); - sc += 16; -/* With guard word, there are NBITS+16 bits available. - * return true if all are zero. - */ - if (sc > NBITS) - return (sc); - } -/* see if high byte is zero */ - while ((*p & 0xff00) == 0) - { - eshup8 (x); - sc += 8; - } -/* now shift 1 bit at a time */ - while ((*p & 0x8000) == 0) - { - eshup1 (x); - sc += 1; - if (sc > (NBITS + 16)) - { - mtherr ("enormlz", UNDERFLOW); - return (sc); - } - } - return (sc); - -/* Normalize by shifting down out of the high guard word - of the significand */ -normdn: - - if (*p & 0xff00) - { - eshdn8 (x); - sc -= 8; - } - while (*p != 0) - { - eshdn1 (x); - sc -= 1; - - if (sc < -NBITS) - { - mtherr ("enormlz", OVERFLOW); - return (sc); - } - } - return (sc); -} - - - - -/* Convert e type number to decimal format ASCII string. - * The constants are for 64 bit precision. - */ - -#define NTEN 12 -#define MAXP 4096 - -#if NE == 10 -static const unsigned short etens[NTEN + 1][NE] = { - {0x6576, 0x4a92, 0x804a, 0x153f, - 0xc94c, 0x979a, 0x8a20, 0x5202, 0xc460, 0x7525,}, /* 10**4096 */ - {0x6a32, 0xce52, 0x329a, 0x28ce, - 0xa74d, 0x5de4, 0xc53d, 0x3b5d, 0x9e8b, 0x5a92,}, /* 10**2048 */ - {0x526c, 0x50ce, 0xf18b, 0x3d28, - 0x650d, 0x0c17, 0x8175, 0x7586, 0xc976, 0x4d48,}, - {0x9c66, 0x58f8, 0xbc50, 0x5c54, - 0xcc65, 0x91c6, 0xa60e, 0xa0ae, 0xe319, 0x46a3,}, - {0x851e, 0xeab7, 0x98fe, 0x901b, - 0xddbb, 0xde8d, 0x9df9, 0xebfb, 0xaa7e, 0x4351,}, - {0x0235, 0x0137, 0x36b1, 0x336c, - 0xc66f, 0x8cdf, 0x80e9, 0x47c9, 0x93ba, 0x41a8,}, - {0x50f8, 0x25fb, 0xc76b, 0x6b71, - 0x3cbf, 0xa6d5, 0xffcf, 0x1f49, 0xc278, 0x40d3,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0xf020, 0xb59d, 0x2b70, 0xada8, 0x9dc5, 0x4069,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0400, 0xc9bf, 0x8e1b, 0x4034,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x2000, 0xbebc, 0x4019,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x9c40, 0x400c,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xc800, 0x4005,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x4002,}, /* 10**1 */ -}; - -static const unsigned short emtens[NTEN + 1][NE] = { - {0x2030, 0xcffc, 0xa1c3, 0x8123, - 0x2de3, 0x9fde, 0xd2ce, 0x04c8, 0xa6dd, 0x0ad8,}, /* 10**-4096 */ - {0x8264, 0xd2cb, 0xf2ea, 0x12d4, - 0x4925, 0x2de4, 0x3436, 0x534f, 0xceae, 0x256b,}, /* 10**-2048 */ - {0xf53f, 0xf698, 0x6bd3, 0x0158, - 0x87a6, 0xc0bd, 0xda57, 0x82a5, 0xa2a6, 0x32b5,}, - {0xe731, 0x04d4, 0xe3f2, 0xd332, - 0x7132, 0xd21c, 0xdb23, 0xee32, 0x9049, 0x395a,}, - {0xa23e, 0x5308, 0xfefb, 0x1155, - 0xfa91, 0x1939, 0x637a, 0x4325, 0xc031, 0x3cac,}, - {0xe26d, 0xdbde, 0xd05d, 0xb3f6, - 0xac7c, 0xe4a0, 0x64bc, 0x467c, 0xddd0, 0x3e55,}, - {0x2a20, 0x6224, 0x47b3, 0x98d7, - 0x3f23, 0xe9a5, 0xa539, 0xea27, 0xa87f, 0x3f2a,}, - {0x0b5b, 0x4af2, 0xa581, 0x18ed, - 0x67de, 0x94ba, 0x4539, 0x1ead, 0xcfb1, 0x3f94,}, - {0xbf71, 0xa9b3, 0x7989, 0xbe68, - 0x4c2e, 0xe15b, 0xc44d, 0x94be, 0xe695, 0x3fc9,}, - {0x3d4d, 0x7c3d, 0x36ba, 0x0d2b, - 0xfdc2, 0xcefc, 0x8461, 0x7711, 0xabcc, 0x3fe4,}, - {0xc155, 0xa4a8, 0x404e, 0x6113, - 0xd3c3, 0x652b, 0xe219, 0x1758, 0xd1b7, 0x3ff1,}, - {0xd70a, 0x70a3, 0x0a3d, 0xa3d7, - 0x3d70, 0xd70a, 0x70a3, 0x0a3d, 0xa3d7, 0x3ff8,}, - {0xcccd, 0xcccc, 0xcccc, 0xcccc, - 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0x3ffb,}, /* 10**-1 */ -}; -#else -static const unsigned short etens[NTEN + 1][NE] = { - {0xc94c, 0x979a, 0x8a20, 0x5202, 0xc460, 0x7525,}, /* 10**4096 */ - {0xa74d, 0x5de4, 0xc53d, 0x3b5d, 0x9e8b, 0x5a92,}, /* 10**2048 */ - {0x650d, 0x0c17, 0x8175, 0x7586, 0xc976, 0x4d48,}, - {0xcc65, 0x91c6, 0xa60e, 0xa0ae, 0xe319, 0x46a3,}, - {0xddbc, 0xde8d, 0x9df9, 0xebfb, 0xaa7e, 0x4351,}, - {0xc66f, 0x8cdf, 0x80e9, 0x47c9, 0x93ba, 0x41a8,}, - {0x3cbf, 0xa6d5, 0xffcf, 0x1f49, 0xc278, 0x40d3,}, - {0xf020, 0xb59d, 0x2b70, 0xada8, 0x9dc5, 0x4069,}, - {0x0000, 0x0000, 0x0400, 0xc9bf, 0x8e1b, 0x4034,}, - {0x0000, 0x0000, 0x0000, 0x2000, 0xbebc, 0x4019,}, - {0x0000, 0x0000, 0x0000, 0x0000, 0x9c40, 0x400c,}, - {0x0000, 0x0000, 0x0000, 0x0000, 0xc800, 0x4005,}, - {0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x4002,}, /* 10**1 */ -}; - -static const unsigned short emtens[NTEN + 1][NE] = { - {0x2de4, 0x9fde, 0xd2ce, 0x04c8, 0xa6dd, 0x0ad8,}, /* 10**-4096 */ - {0x4925, 0x2de4, 0x3436, 0x534f, 0xceae, 0x256b,}, /* 10**-2048 */ - {0x87a6, 0xc0bd, 0xda57, 0x82a5, 0xa2a6, 0x32b5,}, - {0x7133, 0xd21c, 0xdb23, 0xee32, 0x9049, 0x395a,}, - {0xfa91, 0x1939, 0x637a, 0x4325, 0xc031, 0x3cac,}, - {0xac7d, 0xe4a0, 0x64bc, 0x467c, 0xddd0, 0x3e55,}, - {0x3f24, 0xe9a5, 0xa539, 0xea27, 0xa87f, 0x3f2a,}, - {0x67de, 0x94ba, 0x4539, 0x1ead, 0xcfb1, 0x3f94,}, - {0x4c2f, 0xe15b, 0xc44d, 0x94be, 0xe695, 0x3fc9,}, - {0xfdc2, 0xcefc, 0x8461, 0x7711, 0xabcc, 0x3fe4,}, - {0xd3c3, 0x652b, 0xe219, 0x1758, 0xd1b7, 0x3ff1,}, - {0x3d71, 0xd70a, 0x70a3, 0x0a3d, 0xa3d7, 0x3ff8,}, - {0xcccd, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0x3ffb,}, /* 10**-1 */ -}; -#endif - - - -/* ASCII string outputs for unix */ - - -#if 0 -void -_IO_ldtostr (x, string, ndigs, flags, fmt) - long double *x; - char *string; - int ndigs; - int flags; - char fmt; -{ - unsigned short w[NI]; - char *t, *u; - LDPARMS rnd; - LDPARMS *ldp = &rnd; - - rnd.rlast = -1; - rnd.rndprc = NBITS; - - if (sizeof (long double) == 16) - e113toe ((unsigned short *) x, w, ldp); - else - e64toe ((unsigned short *) x, w, ldp); - - etoasc (w, string, ndigs, -1, ldp); - if (ndigs == 0 && flags == 0) - { - /* Delete the decimal point unless alternate format. */ - t = string; - while (*t != '.') - ++t; - u = t + 1; - while (*t != '\0') - *t++ = *u++; - } - if (*string == ' ') - { - t = string; - u = t + 1; - while (*t != '\0') - *t++ = *u++; - } - if (fmt == 'E') - { - t = string; - while (*t != 'e') - ++t; - *t = 'E'; - } -} - -#endif - -/* This routine will not return more than NDEC+1 digits. */ - -char * -_ldtoa_r (struct _reent *ptr, long double d, int mode, int ndigits, - int *decpt, int *sign, char **rve) -{ - unsigned short e[NI]; - char *s, *p; - int i, j, k; - int orig_ndigits; - LDPARMS rnd; - LDPARMS *ldp = &rnd; - char *outstr; - char outbuf_sml[NDEC_SML + MAX_EXP_DIGITS + 10]; - char *outbuf = outbuf_sml; - union uconv du; - du.d = d; - - orig_ndigits = ndigits; - rnd.rlast = -1; - rnd.rndprc = NBITS; - - _REENT_CHECK_MP (ptr); - -/* reentrancy addition to use mprec storage pool */ - if (_REENT_MP_RESULT (ptr)) - { - _REENT_MP_RESULT (ptr)->_k = _REENT_MP_RESULT_K (ptr); - _REENT_MP_RESULT (ptr)->_maxwds = 1 << _REENT_MP_RESULT_K (ptr); - Bfree (ptr, _REENT_MP_RESULT (ptr)); - _REENT_MP_RESULT (ptr) = 0; - } - -#if LDBL_MANT_DIG == 24 - e24toe (&du.pe, e, ldp); -#elif LDBL_MANT_DIG == 53 - e53toe (&du.pe, e, ldp); -#elif LDBL_MANT_DIG == 64 - e64toe (&du.pe, e, ldp); -#else - e113toe (&du.pe, e, ldp); -#endif - - if (eisneg (e)) - *sign = 1; - else - *sign = 0; -/* Mode 3 is "f" format. */ - if (mode != 3) - ndigits -= 1; -/* Mode 0 is for %.999 format, which is supposed to give a - minimum length string that will convert back to the same binary value. - For now, just ask for 20 digits which is enough but sometimes too many. */ - if (mode == 0) - ndigits = 20; - -/* This sanity limit must agree with the corresponding one in etoasc, to - keep straight the returned value of outexpon. Note that we use a dynamic - limit now, either ndec (<= NDEC) or NDEC_SML, depending on ndigits. */ - __int32_t ndec; - if (mode == 3) /* %f */ - { - __int32_t expon = (e[NE - 1] & 0x7fff) - (EXONE - 1); /* exponent part */ - /* log2(10) approximately 485/146 */ - ndec = expon * 146 / 485 + ndigits; - } - else /* %g/%e */ - ndec = ndigits; - if (ndec < 0) - ndec = 0; - if (ndec > NDEC) - ndec = NDEC; - - /* Allocate buffer if more than NDEC_SML digits are requested. */ - if (ndec > NDEC_SML) - { - outbuf = (char *) _malloc_r (ptr, ndec + MAX_EXP_DIGITS + 10); - if (!outbuf) - { - ndec = NDEC_SML; - outbuf = outbuf_sml; - } - } - - etoasc (e, outbuf, (int) ndec, ndigits, mode, ldp); - s = outbuf; - if (eisinf (e) || eisnan (e)) - { - *decpt = 9999; - goto stripspaces; - } - *decpt = ldp->outexpon + 1; - -/* Transform the string returned by etoasc into what the caller wants. */ - -/* Look for decimal point and delete it from the string. */ - s = outbuf; - while (*s != '\0') - { - if (*s == '.') - goto yesdecpt; - ++s; - } - goto nodecpt; - -yesdecpt: - -/* Delete the decimal point. */ - while (*s != '\0') - { - *s = *(s + 1); - ++s; - } - -nodecpt: - -/* Back up over the exponent field. */ - while (*s != 'E' && s > outbuf) - --s; - *s = '\0'; - -stripspaces: - -/* Strip leading spaces and sign. */ - p = outbuf; - while (*p == ' ' || *p == '-') - ++p; - -/* Find new end of string. */ - s = outbuf; - while ((*s++ = *p++) != '\0') - ; - --s; - -/* Strip trailing zeros. */ - if (mode == 2) - k = 1; - else if (ndigits > ldp->outexpon) - k = ndigits; - else - k = ldp->outexpon; - - while (*(s - 1) == '0' && ((s - outbuf) > k)) - *(--s) = '\0'; - -/* In f format, flush small off-scale values to zero. - Rounding has been taken care of by etoasc. */ - if (mode == 3 && ((ndigits + ldp->outexpon) < 0)) - { - s = outbuf; - *s = '\0'; - *decpt = 0; - } - -/* reentrancy addition to use mprec storage pool */ -/* we want to have enough space to hold the formatted result */ - - if (mode == 3) /* f format, account for sign + dec digits + decpt + frac */ - i = *decpt + orig_ndigits + 3; - else /* account for sign + max precision digs + E + exp sign + exponent */ - i = orig_ndigits + MAX_EXP_DIGITS + 4; - - j = sizeof (__ULong); - for (_REENT_MP_RESULT_K (ptr) = 0; - sizeof (_Bigint) - sizeof (__ULong) + j <= i; j <<= 1) - _REENT_MP_RESULT_K (ptr)++; - _REENT_MP_RESULT (ptr) = eBalloc (ptr, _REENT_MP_RESULT_K (ptr)); - -/* Copy from internal temporary buffer to permanent buffer. */ - outstr = (char *) _REENT_MP_RESULT (ptr); - strcpy (outstr, outbuf); - - if (rve) - *rve = outstr + (s - outbuf); - - if (outbuf != outbuf_sml) - _free_r (ptr, outbuf); - - return outstr; -} - -/* Routine used to tell if long double is NaN or Infinity or regular number. - Returns: 0 = regular number - 1 = Nan - 2 = Infinity -*/ -int -_ldcheck (long double *d) -{ - unsigned short e[NI]; - LDPARMS rnd; - LDPARMS *ldp = &rnd; - - union uconv du; - - rnd.rlast = -1; - rnd.rndprc = NBITS; - du.d = *d; -#if LDBL_MANT_DIG == 24 - e24toe (&du.pe, e, ldp); -#elif LDBL_MANT_DIG == 53 - e53toe (&du.pe, e, ldp); -#elif LDBL_MANT_DIG == 64 - e64toe (&du.pe, e, ldp); -#else - e113toe (&du.pe, e, ldp); -#endif - - if ((e[NE - 1] & 0x7fff) == 0x7fff) - { -#ifdef NANS - if (eisnan (e)) - return (1); -#endif - return (2); - } - else - return (0); -} /* _ldcheck */ - -static void -etoasc (short unsigned int *x, char *string, int ndec, int ndigits, - int outformat, LDPARMS * ldp) -{ - long digit; - unsigned short y[NI], t[NI], u[NI], w[NI]; - const unsigned short *p, *r, *ten; - unsigned short sign; - int i, j, k, expon, rndsav, ndigs; - char *s, *ss; - unsigned short m; - unsigned short *equot = ldp->equot; - - ndigs = ndigits; - rndsav = ldp->rndprc; -#ifdef NANS - if (eisnan (x)) - { - sprintf (string, " NaN "); - expon = 9999; - goto bxit; - } -#endif - ldp->rndprc = NBITS; /* set to full precision */ - emov (x, y); /* retain external format */ - if (y[NE - 1] & 0x8000) - { - sign = 0xffff; - y[NE - 1] &= 0x7fff; - } - else - { - sign = 0; - } - expon = 0; - ten = &etens[NTEN][0]; - emov (eone, t); -/* Test for zero exponent */ - if (y[NE - 1] == 0) - { - for (k = 0; k < NE - 1; k++) - { - if (y[k] != 0) - goto tnzro; /* denormalized number */ - } - goto isone; /* legal all zeros */ - } -tnzro: - -/* Test for infinity. - */ - if (y[NE - 1] == 0x7fff) - { - if (sign) - sprintf (string, " -Infinity "); - else - sprintf (string, " Infinity "); - expon = 9999; - goto bxit; - } - -/* Test for exponent nonzero but significand denormalized. - * This is an error condition. - */ - if ((y[NE - 1] != 0) && ((y[NE - 2] & 0x8000) == 0)) - { - mtherr ("etoasc", DOMAIN); - sprintf (string, "NaN"); - expon = 9999; - goto bxit; - } - -/* Compare to 1.0 */ - i = ecmp (eone, y); - if (i == 0) - goto isone; - - if (i < 0) - { /* Number is greater than 1 */ -/* Convert significand to an integer and strip trailing decimal zeros. */ - emov (y, u); - u[NE - 1] = EXONE + NBITS - 1; - - p = &etens[NTEN - 4][0]; - m = 16; - do - { - ediv (p, u, t, ldp); - efloor (t, w, ldp); - for (j = 0; j < NE - 1; j++) - { - if (t[j] != w[j]) - goto noint; - } - emov (t, u); - expon += (int) m; - noint: - p += NE; - m >>= 1; - } - while (m != 0); - -/* Rescale from integer significand */ - u[NE - 1] += y[NE - 1] - (unsigned int) (EXONE + NBITS - 1); - emov (u, y); -/* Find power of 10 */ - emov (eone, t); - m = MAXP; - p = &etens[0][0]; - while (ecmp (ten, u) <= 0) - { - if (ecmp (p, u) <= 0) - { - ediv (p, u, u, ldp); - emul (p, t, t, ldp); - expon += (int) m; - } - m >>= 1; - if (m == 0) - break; - p += NE; - } - } - else - { /* Number is less than 1.0 */ -/* Pad significand with trailing decimal zeros. */ - if (y[NE - 1] == 0) - { - while ((y[NE - 2] & 0x8000) == 0) - { - emul (ten, y, y, ldp); - expon -= 1; - } - } - else - { - emovi (y, w); - for (i = 0; i < ndec + 1; i++) - { - if ((w[NI - 1] & 0x7) != 0) - break; -/* multiply by 10 */ - emovz (w, u); - eshdn1 (u); - eshdn1 (u); - eaddm (w, u); - u[1] += 3; - while (u[2] != 0) - { - eshdn1 (u); - u[1] += 1; - } - if (u[NI - 1] != 0) - break; - if (eone[NE - 1] <= u[1]) - break; - emovz (u, w); - expon -= 1; - } - emovo (w, y, ldp); - } - k = -MAXP; - p = &emtens[0][0]; - r = &etens[0][0]; - emov (y, w); - emov (eone, t); - while (ecmp (eone, w) > 0) - { - if (ecmp (p, w) >= 0) - { - emul (r, w, w, ldp); - emul (r, t, t, ldp); - expon += k; - } - k /= 2; - if (k == 0) - break; - p += NE; - r += NE; - } - ediv (t, eone, t, ldp); - } -isone: -/* Find the first (leading) digit. */ - emovi (t, w); - emovz (w, t); - emovi (y, w); - emovz (w, y); - eiremain (t, y, ldp); - digit = equot[NI - 1]; - while ((digit == 0) && (ecmp (y, ezero) != 0)) - { - eshup1 (y); - emovz (y, u); - eshup1 (u); - eshup1 (u); - eaddm (u, y); - eiremain (t, y, ldp); - digit = equot[NI - 1]; - expon -= 1; - } - s = string; - if (sign) - *s++ = '-'; - else - *s++ = ' '; -/* Examine number of digits requested by caller. */ - if (outformat == 3) - ndigs += expon; -/* -else if( ndigs < 0 ) - ndigs = 0; -*/ - if (ndigs > ndec) - ndigs = ndec; - if (digit == 10) - { - *s++ = '1'; - *s++ = '.'; - if (ndigs > 0) - { - *s++ = '0'; - ndigs -= 1; - } - expon += 1; - if (ndigs < 0) - { - ss = s; - goto doexp; - } - } - else - { - *s++ = (char) digit + '0'; - *s++ = '.'; - } -/* Generate digits after the decimal point. */ - for (k = 0; k <= ndigs; k++) - { -/* multiply current number by 10, without normalizing */ - eshup1 (y); - emovz (y, u); - eshup1 (u); - eshup1 (u); - eaddm (u, y); - eiremain (t, y, ldp); - *s++ = (char) equot[NI - 1] + '0'; - } - digit = equot[NI - 1]; - --s; - ss = s; -/* round off the ASCII string */ - if (digit > 4) - { -/* Test for critical rounding case in ASCII output. */ - if (digit == 5) - { - emovo (y, t, ldp); - if (ecmp (t, ezero) != 0) - goto roun; /* round to nearest */ - if (ndigs < 0 || (*(s - 1 - (*(s - 1) == '.')) & 1) == 0) - goto doexp; /* round to even */ - } -/* Round up and propagate carry-outs */ - roun: - --s; - k = *s & 0x7f; -/* Carry out to most significant digit? */ - if (ndigs < 0) - { - /* This will print like "1E-6". */ - *s = '1'; - expon += 1; - goto doexp; - } - else if (k == '.') - { - --s; - k = *s; - k += 1; - *s = (char) k; -/* Most significant digit carries to 10? */ - if (k > '9') - { - expon += 1; - *s = '1'; - } - goto doexp; - } -/* Round up and carry out from less significant digits */ - k += 1; - *s = (char) k; - if (k > '9') - { - *s = '0'; - goto roun; - } - } -doexp: -#ifdef __GO32__ - if (expon >= 0) - sprintf (ss, "e+%02d", expon); - else - sprintf (ss, "e-%02d", -expon); -#else - sprintf (ss, "E%d", expon); -#endif -bxit: - ldp->rndprc = rndsav; - ldp->outexpon = expon; -} - - -#if 0 /* Broken, unusable implementation of strtold */ - -/* -; ASCTOQ -; ASCTOQ.MAC LATEST REV: 11 JAN 84 -; SLM, 3 JAN 78 -; -; Convert ASCII string to quadruple precision floating point -; -; Numeric input is free field decimal number -; with max of 15 digits with or without -; decimal point entered as ASCII from teletype. -; Entering E after the number followed by a second -; number causes the second number to be interpreted -; as a power of 10 to be multiplied by the first number -; (i.e., "scientific" notation). -; -; Usage: -; asctoq( string, q ); -*/ - -long double -_strtold (char *s, char **se) -{ - union uconv x; - LDPARMS rnd; - LDPARMS *ldp = &rnd; - int lenldstr; - - rnd.rlast = -1; - rnd.rndprc = NBITS; - - lenldstr = asctoeg (s, &x.pe, LDBL_MANT_DIG, ldp); - if (se) - *se = s + lenldstr; - return x.d; -} - -#define REASONABLE_LEN 200 - -static int -asctoeg (char *ss, short unsigned int *y, int oprec, LDPARMS * ldp) -{ - unsigned short yy[NI], xt[NI], tt[NI]; - int esign, decflg, sgnflg, nexp, exp, prec, lost; - int k, trail, c, rndsav; - long lexp; - unsigned short nsign; - const unsigned short *p; - char *sp, *s, *lstr; - int lenldstr; - int mflag = 0; - char tmpstr[REASONABLE_LEN]; - -/* Copy the input string. */ - c = strlen (ss) + 2; - if (c <= REASONABLE_LEN) - lstr = tmpstr; - else - { - lstr = (char *) calloc (c, 1); - mflag = 1; - } - s = ss; - lenldstr = 0; - while (*s == ' ') /* skip leading spaces */ - { - ++s; - ++lenldstr; - } - sp = lstr; - for (k = 0; k < c; k++) - { - if ((*sp++ = *s++) == '\0') - break; - } - *sp = '\0'; - s = lstr; - - rndsav = ldp->rndprc; - ldp->rndprc = NBITS; /* Set to full precision */ - lost = 0; - nsign = 0; - decflg = 0; - sgnflg = 0; - nexp = 0; - exp = 0; - prec = 0; - ecleaz (yy); - trail = 0; - -nxtcom: - k = *s - '0'; - if ((k >= 0) && (k <= 9)) - { -/* Ignore leading zeros */ - if ((prec == 0) && (decflg == 0) && (k == 0)) - goto donchr; -/* Identify and strip trailing zeros after the decimal point. */ - if ((trail == 0) && (decflg != 0)) - { - sp = s; - while ((*sp >= '0') && (*sp <= '9')) - ++sp; -/* Check for syntax error */ - c = *sp & 0x7f; - if ((c != 'e') && (c != 'E') && (c != '\0') - && (c != '\n') && (c != '\r') && (c != ' ') && (c != ',')) - goto error; - --sp; - while (*sp == '0') - *sp-- = 'z'; - trail = 1; - if (*s == 'z') - goto donchr; - } -/* If enough digits were given to more than fill up the yy register, - * continuing until overflow into the high guard word yy[2] - * guarantees that there will be a roundoff bit at the top - * of the low guard word after normalization. - */ - if (yy[2] == 0) - { - if (decflg) - nexp += 1; /* count digits after decimal point */ - eshup1 (yy); /* multiply current number by 10 */ - emovz (yy, xt); - eshup1 (xt); - eshup1 (xt); - eaddm (xt, yy); - ecleaz (xt); - xt[NI - 2] = (unsigned short) k; - eaddm (xt, yy); - } - else - { - /* Mark any lost non-zero digit. */ - lost |= k; - /* Count lost digits before the decimal point. */ - if (decflg == 0) - nexp -= 1; - } - prec += 1; - goto donchr; - } - - switch (*s) - { - case 'z': - break; - case 'E': - case 'e': - goto expnt; - case '.': /* decimal point */ - if (decflg) - goto error; - ++decflg; - break; - case '-': - nsign = 0xffff; - if (sgnflg) - goto error; - ++sgnflg; - break; - case '+': - if (sgnflg) - goto error; - ++sgnflg; - break; - case ',': - case ' ': - case '\0': - case '\n': - case '\r': - goto daldone; - case 'i': - case 'I': - goto infinite; - default: - error: -#ifdef NANS - enan (yy, NI * 16); -#else - mtherr ("asctoe", DOMAIN); - ecleaz (yy); -#endif - goto aexit; - } -donchr: - ++s; - goto nxtcom; - -/* Exponent interpretation */ -expnt: - - esign = 1; - exp = 0; - ++s; -/* check for + or - */ - if (*s == '-') - { - esign = -1; - ++s; - } - if (*s == '+') - ++s; - while ((*s >= '0') && (*s <= '9')) - { - exp *= 10; - exp += *s++ - '0'; - if (exp > 4977) - { - if (esign < 0) - goto zero; - else - goto infinite; - } - } - if (esign < 0) - exp = -exp; - if (exp > 4932) - { - infinite: - ecleaz (yy); - yy[E] = 0x7fff; /* infinity */ - goto aexit; - } - if (exp < -4977) - { - zero: - ecleaz (yy); - goto aexit; - } - -daldone: - nexp = exp - nexp; -/* Pad trailing zeros to minimize power of 10, per IEEE spec. */ - while ((nexp > 0) && (yy[2] == 0)) - { - emovz (yy, xt); - eshup1 (xt); - eshup1 (xt); - eaddm (yy, xt); - eshup1 (xt); - if (xt[2] != 0) - break; - nexp -= 1; - emovz (xt, yy); - } - if ((k = enormlz (yy)) > NBITS) - { - ecleaz (yy); - goto aexit; - } - lexp = (EXONE - 1 + NBITS) - k; - emdnorm (yy, lost, 0, lexp, 64, ldp); -/* convert to external format */ - - -/* Multiply by 10**nexp. If precision is 64 bits, - * the maximum relative error incurred in forming 10**n - * for 0 <= n <= 324 is 8.2e-20, at 10**180. - * For 0 <= n <= 999, the peak relative error is 1.4e-19 at 10**947. - * For 0 >= n >= -999, it is -1.55e-19 at 10**-435. - */ - lexp = yy[E]; - if (nexp == 0) - { - k = 0; - goto expdon; - } - esign = 1; - if (nexp < 0) - { - nexp = -nexp; - esign = -1; - if (nexp > 4096) - { /* Punt. Can't handle this without 2 divides. */ - emovi (etens[0], tt); - lexp -= tt[E]; - k = edivm (tt, yy, ldp); - lexp += EXONE; - nexp -= 4096; - } - } - p = &etens[NTEN][0]; - emov (eone, xt); - exp = 1; - do - { - if (exp & nexp) - emul (p, xt, xt, ldp); - p -= NE; - exp = exp + exp; - } - while (exp <= MAXP); - - emovi (xt, tt); - if (esign < 0) - { - lexp -= tt[E]; - k = edivm (tt, yy, ldp); - lexp += EXONE; - } - else - { - lexp += tt[E]; - k = emulm (tt, yy, ldp); - lexp -= EXONE - 1; - } - -expdon: - -/* Round and convert directly to the destination type */ - if (oprec == 53) - lexp -= EXONE - 0x3ff; - else if (oprec == 24) - lexp -= EXONE - 0177; -#ifdef DEC - else if (oprec == 56) - lexp -= EXONE - 0201; -#endif - ldp->rndprc = oprec; - emdnorm (yy, k, 0, lexp, 64, ldp); - -aexit: - - ldp->rndprc = rndsav; - yy[0] = nsign; - switch (oprec) - { -#ifdef DEC - case 56: - todec (yy, y); /* see etodec.c */ - break; -#endif -#if LDBL_MANT_DIG == 53 - case 53: - toe53 (yy, y); - break; -#elif LDBL_MANT_DIG == 24 - case 24: - toe24 (yy, y); - break; -#elif LDBL_MANT_DIG == 64 - case 64: - toe64 (yy, y); - break; -#elif LDBL_MANT_DIG == 113 - case 113: - toe113 (yy, y); - break; -#else - case NBITS: - emovo (yy, y, ldp); - break; -#endif - } - lenldstr += s - lstr; - if (mflag) - free (lstr); - return lenldstr; -} - -#endif - -/* y = largest integer not greater than x - * (truncated toward minus infinity) - * - * unsigned short x[NE], y[NE] - * LDPARMS *ldp - * - * efloor( x, y, ldp ); - */ -static const unsigned short bmask[] = { - 0xffff, - 0xfffe, - 0xfffc, - 0xfff8, - 0xfff0, - 0xffe0, - 0xffc0, - 0xff80, - 0xff00, - 0xfe00, - 0xfc00, - 0xf800, - 0xf000, - 0xe000, - 0xc000, - 0x8000, - 0x0000, -}; - -static void -efloor (short unsigned int *x, short unsigned int *y, LDPARMS * ldp) -{ - register unsigned short *p; - int e, expon, i; - unsigned short f[NE]; - - emov (x, f); /* leave in external format */ - expon = (int) f[NE - 1]; - e = (expon & 0x7fff) - (EXONE - 1); - if (e <= 0) - { - eclear (y); - goto isitneg; - } -/* number of bits to clear out */ - e = NBITS - e; - emov (f, y); - if (e <= 0) - return; - - p = &y[0]; - while (e >= 16) - { - *p++ = 0; - e -= 16; - } -/* clear the remaining bits */ - *p &= bmask[e]; -/* truncate negatives toward minus infinity */ -isitneg: - - if ((unsigned short) expon & (unsigned short) 0x8000) - { - for (i = 0; i < NE - 1; i++) - { - if (f[i] != y[i]) - { - esub (eone, y, y, ldp); - break; - } - } - } -} - - - -static void -eiremain (short unsigned int *den, short unsigned int *num, LDPARMS * ldp) -{ - long ld, ln; - unsigned short j; - unsigned short *equot = ldp->equot; - - ld = den[E]; - ld -= enormlz (den); - ln = num[E]; - ln -= enormlz (num); - ecleaz (equot); - while (ln >= ld) - { - if (ecmpm (den, num) <= 0) - { - esubm (den, num); - j = 1; - } - else - { - j = 0; - } - eshup1 (equot); - equot[NI - 1] |= j; - eshup1 (num); - ln -= 1; - } - emdnorm (num, 0, 0, ln, 0, ldp); -} - -/* NaN bit patterns - */ -#ifdef MIEEE -#if !defined(__mips) -static const unsigned short nan113[8] = { - 0x7fff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff -}; - -static const unsigned short nan64[6] = { - 0x7fff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff -}; -static const unsigned short nan53[4] = { 0x7fff, 0xffff, 0xffff, 0xffff }; -static const unsigned short nan24[2] = { 0x7fff, 0xffff }; -#elif defined(__mips_nan2008) /* __mips */ -static const unsigned short nan113[8] = { 0x7fff, 0x8000, 0, 0, 0, 0, 0, 0 }; -static const unsigned short nan64[6] = { 0x7fff, 0xc000, 0, 0, 0, 0 }; -static const unsigned short nan53[4] = { 0x7ff8, 0, 0, 0 }; -static const unsigned short nan24[2] = { 0x7fc0, 0 }; -#else /* __mips && !__mips_nan2008 */ -static const unsigned short nan113[8] = { - 0x7fff, 0x7fff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff -}; - -static const unsigned short nan64[6] = { - 0x7fff, 0xbfff, 0xffff, 0xffff, 0xffff, 0xffff -}; -static const unsigned short nan53[4] = { 0x7ff7, 0xffff, 0xffff, 0xffff }; -static const unsigned short nan24[2] = { 0x7fbf, 0xffff }; -#endif /* __mips && !__mips_nan2008 */ -#else /* !MIEEE */ -#if !defined(__mips) || defined(__mips_nan2008) -static const unsigned short nan113[8] = { 0, 0, 0, 0, 0, 0, 0x8000, 0x7fff }; -static const unsigned short nan64[6] = { 0, 0, 0, 0, 0xc000, 0x7fff }; -static const unsigned short nan53[4] = { 0, 0, 0, 0x7ff8 }; -static const unsigned short nan24[2] = { 0, 0x7fc0 }; -#else /* __mips && !__mips_nan2008 */ -static const unsigned short nan113[8] = { - 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x7fff, 0x7fff -}; - -static const unsigned short nan64[6] = { - 0xffff, 0xffff, 0xffff, 0xffff, 0xbfff, 0x7fff -}; -static const unsigned short nan53[4] = { 0xffff, 0xffff, 0xffff, 0x7ff7 }; -static const unsigned short nan24[2] = { 0xffff, 0x7fbf }; -#endif /* __mips && !__mips_nan2008 */ -#endif /* !MIEEE */ - - -static void -enan (short unsigned int *nan, int size) -{ - int i, n; - const unsigned short *p; - - switch (size) - { -#ifndef DEC - case 113: - n = 8; - p = nan113; - break; - - case 64: - n = 6; - p = nan64; - break; - - case 53: - n = 4; - p = nan53; - break; - - case 24: - n = 2; - p = nan24; - break; - - case NBITS: -#if !defined(__mips) || defined(__mips_nan2008) - for (i = 0; i < NE - 2; i++) - *nan++ = 0; - *nan++ = 0xc000; -#else /* __mips && !__mips_nan2008 */ - for (i = 0; i < NE - 2; i++) - *nan++ = 0xffff; - *nan++ = 0xbfff; -#endif /* __mips && !__mips_nan2008 */ - *nan++ = 0x7fff; - return; - - case NI * 16: - *nan++ = 0; - *nan++ = 0x7fff; - *nan++ = 0; -#if !defined(__mips) || defined(__mips_nan2008) - *nan++ = 0xc000; - for (i = 4; i < NI - 1; i++) - *nan++ = 0; -#else /* __mips && !__mips_nan2008 */ - *nan++ = 0xbfff; - for (i = 4; i < NI - 1; i++) - *nan++ = 0xffff; -#endif /* __mips && !__mips_nan2008 */ - *nan++ = 0; - return; -#endif - default: - mtherr ("enan", DOMAIN); - return; - } - for (i = 0; i < n; i++) - *nan++ = *p++; -} - -#endif /* !_USE_GDTOA */ diff --git a/lib/stdlib/llabs.c b/lib/stdlib/llabs.c deleted file mode 100644 index a020dea..0000000 --- a/lib/stdlib/llabs.c +++ /dev/null @@ -1,60 +0,0 @@ -/* -FUNCTION -<>---compute the absolute value of an long long integer. - -INDEX - llabs - -SYNOPSIS - #include - long long llabs(long long <[j]>); - -DESCRIPTION -The <> function computes the absolute value of the long long integer -argument <[j]> (also called the magnitude of <[j]>). - -The similar function <> uses and returns <> rather than -<> values. - -RETURNS -A nonnegative long long integer. - -PORTABILITY -<> is ISO 9899 (C99) compatable. - -No supporting OS subroutines are required. -*/ - -/*- - * Copyright (c) 2001 Mike Barcroft - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -long long -llabs (long long j) -{ - return (j < 0 ? -j : j); -} diff --git a/lib/stdlib/lldiv.c b/lib/stdlib/lldiv.c deleted file mode 100644 index 2dadf0e..0000000 --- a/lib/stdlib/lldiv.c +++ /dev/null @@ -1,109 +0,0 @@ -/* -FUNCTION -<>---divide two long long integers - -INDEX - lldiv - -SYNOPSIS - #include - lldiv_t lldiv(long long <[n]>, long long <[d]>); - -DESCRIPTION -Divide -@tex -$n/d$, -@end tex -@ifnottex -<[n]>/<[d]>, -@end ifnottex -returning quotient and remainder as two long long integers in a structure -<>. - -RETURNS -The result is represented with the structure - -. typedef struct -. { -. long long quot; -. long long rem; -. } lldiv_t; - -where the <> field represents the quotient, and <> the -remainder. For nonzero <[d]>, if `<<<[r]> = ldiv(<[n]>,<[d]>);>>' then -<[n]> equals `<<<[r]>.rem + <[d]>*<[r]>.quot>>'. - -To divide <> rather than <> values, use the similar -function <>. - -PORTABILITY -<> is ISO 9899 (C99) compatable. - -No supporting OS subroutines are required. -*/ - -/*- - * Copyright (c) 2001 Mike Barcroft - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -/* - * The ANSI standard says that |r.quot| <= |n/d|, where - * n/d is to be computed in infinite precision. In other - * words, we should always truncate the quotient towards - * 0, never -infinity. - * - * Machine division and remainer may work either way when - * one or both of n or d is negative. If only one is - * negative and r.quot has been truncated towards -inf, - * r.rem will have the same sign as denom and the opposite - * sign of num; if both are negative and r.quot has been - * truncated towards -inf, r.rem will be positive (will - * have the opposite sign of num). These are considered - * `wrong'. - * - * If both are num and denom are positive, r will always - * be positive. - * - * This all boils down to: - * if num >= 0, but r.rem < 0, we got the wrong answer. - * In that case, to get the right answer, add 1 to r.quot and - * subtract denom from r.rem. - */ -lldiv_t -lldiv (long long numer, long long denom) -{ - lldiv_t retval; - - retval.quot = numer / denom; - retval.rem = numer % denom; - if (numer >= 0 && retval.rem < 0) { - retval.quot++; - retval.rem -= denom; - } - return (retval); -} - diff --git a/lib/stdlib/local.h b/lib/stdlib/local.h deleted file mode 100644 index 26fd4f0..0000000 --- a/lib/stdlib/local.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Misc. local definitions for libc/stdlib */ - -#ifndef _LOCAL_H_ -#define _LOCAL_H_ - -char * _gcvt (struct _reent *, double , int , char *, char, int); - -#include "../locale/setlocale.h" - -#ifndef __machine_mbstate_t_defined -#include -#endif - -typedef int wctomb_f (struct _reent *, char *, wchar_t, mbstate_t *); -typedef wctomb_f *wctomb_p; - -wctomb_f __ascii_wctomb; -#ifdef _MB_CAPABLE -wctomb_f __utf8_wctomb; -wctomb_f __sjis_wctomb; -wctomb_f __eucjp_wctomb; -wctomb_f __jis_wctomb; -wctomb_p __iso_wctomb (int val); -wctomb_p __cp_wctomb (int val); -#ifdef __CYGWIN__ -wctomb_f __gbk_wctomb; -wctomb_f __gb18030_wctomb; -wctomb_f __kr_wctomb; -wctomb_f __big5_wctomb; -#endif -#endif - -#define __WCTOMB (__get_current_locale ()->wctomb) - -typedef int mbtowc_f (struct _reent *, wchar_t *, const char *, size_t, - mbstate_t *); -typedef mbtowc_f *mbtowc_p; - -mbtowc_f __ascii_mbtowc; -#ifdef _MB_CAPABLE -mbtowc_f __utf8_mbtowc; -mbtowc_f __sjis_mbtowc; -mbtowc_f __eucjp_mbtowc; -mbtowc_f __jis_mbtowc; -mbtowc_p __iso_mbtowc (int val); -mbtowc_p __cp_mbtowc (int val); -#ifdef __CYGWIN__ -mbtowc_f __gbk_mbtowc; -mbtowc_f __gb18030_mbtowc; -mbtowc_f __kr_mbtowc; -mbtowc_f __big5_mbtowc; -#endif -#endif - -#define __MBTOWC (__get_current_locale ()->mbtowc) - -extern wchar_t __iso_8859_conv[14][0x60]; -int __iso_8859_val_index (int); -int __iso_8859_index (const char *); - -extern wchar_t __cp_conv[][0x80]; -int __cp_val_index (int); -int __cp_index (const char *); - -#endif diff --git a/lib/stdlib/lrand48.c b/lib/stdlib/lrand48.c deleted file mode 100644 index a28284e..0000000 --- a/lib/stdlib/lrand48.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ - -#include "rand48.h" - -long -_lrand48_r (struct _reent *r) -{ - _REENT_CHECK_RAND48(r); - __dorand48(r, __rand48_seed); - return (long)((unsigned long) __rand48_seed[2] << 15) + - ((unsigned long) __rand48_seed[1] >> 1); -} - -#ifndef _REENT_ONLY -long -lrand48 (void) -{ - return _lrand48_r (_REENT); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/malign.c b/lib/stdlib/malign.c deleted file mode 100644 index 480060c..0000000 --- a/lib/stdlib/malign.c +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef MALLOC_PROVIDED -/* malign.c -- a wrapper for memalign_r. */ - -#include <_ansi.h> -#include -#include -#include - -#ifndef _REENT_ONLY - -void * -memalign (size_t align, - size_t nbytes) -{ - return _memalign_r (_REENT, align, nbytes); -} - -#endif -#endif diff --git a/lib/stdlib/malignr.c b/lib/stdlib/malignr.c deleted file mode 100644 index c48fbad..0000000 --- a/lib/stdlib/malignr.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_MEMALIGN -#include "_mallocr.c" diff --git a/lib/stdlib/mallinfor.c b/lib/stdlib/mallinfor.c deleted file mode 100644 index dc1a55d..0000000 --- a/lib/stdlib/mallinfor.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_MALLINFO -#include "_mallocr.c" diff --git a/lib/stdlib/malloc.c b/lib/stdlib/malloc.c deleted file mode 100644 index f5ac292..0000000 --- a/lib/stdlib/malloc.c +++ /dev/null @@ -1,175 +0,0 @@ -/* VxWorks provides its own version of malloc, and we can't use this - one because VxWorks does not provide sbrk. So we have a hook to - not compile this code. */ - -/* The routines here are simple cover fns to the routines that do the real - work (the reentrant versions). */ -/* FIXME: Does the warning below (see WARNINGS) about non-reentrancy still - apply? A first guess would be "no", but how about reentrancy in the *same* - thread? */ - -#ifdef MALLOC_PROVIDED - -int _dummy_malloc = 1; - -#else - -/* -FUNCTION -<>, <>, <>---manage memory - -INDEX - malloc -INDEX - realloc -INDEX - reallocf -INDEX - free -INDEX - memalign -INDEX - malloc_usable_size -INDEX - _malloc_r -INDEX - _realloc_r -INDEX - _reallocf_r -INDEX - _free_r -INDEX - _memalign_r -INDEX - _malloc_usable_size_r - -SYNOPSIS - #include - void *malloc(size_t <[nbytes]>); - void *realloc(void *<[aptr]>, size_t <[nbytes]>); - void *reallocf(void *<[aptr]>, size_t <[nbytes]>); - void free(void *<[aptr]>); - - void *memalign(size_t <[align]>, size_t <[nbytes]>); - - size_t malloc_usable_size(void *<[aptr]>); - - void *_malloc_r(void *<[reent]>, size_t <[nbytes]>); - void *_realloc_r(void *<[reent]>, - void *<[aptr]>, size_t <[nbytes]>); - void *_reallocf_r(void *<[reent]>, - void *<[aptr]>, size_t <[nbytes]>); - void _free_r(void *<[reent]>, void *<[aptr]>); - - void *_memalign_r(void *<[reent]>, - size_t <[align]>, size_t <[nbytes]>); - - size_t _malloc_usable_size_r(void *<[reent]>, void *<[aptr]>); - -DESCRIPTION -These functions manage a pool of system memory. - -Use <> to request allocation of an object with at least -<[nbytes]> bytes of storage available. If the space is available, -<> returns a pointer to a newly allocated block as its result. - -If you already have a block of storage allocated by <>, but -you no longer need all the space allocated to it, you can make it -smaller by calling <> with both the object pointer and the -new desired size as arguments. <> guarantees that the -contents of the smaller object match the beginning of the original object. - -Similarly, if you need more space for an object, use <> to -request the larger size; again, <> guarantees that the -beginning of the new, larger object matches the contents of the -original object. - -When you no longer need an object originally allocated by <> -or <> (or the related function <>), return it to the -memory storage pool by calling <> with the address of the object -as the argument. You can also use <> for this purpose by -calling it with <<0>> as the <[nbytes]> argument. - -The <> function behaves just like <> except if the -function is required to allocate new storage and this fails. In this -case <> will free the original object passed in whereas -<> will not. - -The <> function returns a block of size <[nbytes]> aligned -to a <[align]> boundary. The <[align]> argument must be a power of -two. - -The <> function takes a pointer to a block -allocated by <>. It returns the amount of space that is -available in the block. This may or may not be more than the size -requested from <>, due to alignment or minimum size -constraints. - -The alternate functions <<_malloc_r>>, <<_realloc_r>>, <<_reallocf_r>>, -<<_free_r>>, <<_memalign_r>>, and <<_malloc_usable_size_r>> are reentrant -versions. The extra argument <[reent]> is a pointer to a reentrancy structure. - -If you have multiple threads of execution which may call any of these -routines, or if any of these routines may be called reentrantly, then -you must provide implementations of the <<__malloc_lock>> and -<<__malloc_unlock>> functions for your system. See the documentation -for those functions. - -These functions operate by calling the function <<_sbrk_r>> or -<>, which allocates space. You may need to provide one of these -functions for your system. <<_sbrk_r>> is called with a positive -value to allocate more space, and with a negative value to release -previously allocated space if it is no longer required. -@xref{Stubs}. - -RETURNS -<> returns a pointer to the newly allocated space, if -successful; otherwise it returns <>. If your application needs -to generate empty objects, you may use <> for this purpose. - -<> returns a pointer to the new block of memory, or <> -if a new block could not be allocated. <> is also the result -when you use `<,0)>>' (which has the same effect as -`<)>>'). You should always check the result of -<>; successful reallocation is not guaranteed even when -you request a smaller object. - -<> does not return a result. - -<> returns a pointer to the newly allocated space. - -<> returns the usable size. - -PORTABILITY -<>, <>, and <> are specified by the ANSI C -standard, but other conforming implementations of <> may -behave differently when <[nbytes]> is zero. - -<> is part of SVR4. - -<> is not portable. - -Supporting OS subroutines required: <>. */ - -#include <_ansi.h> -#include -#include -#include - -#ifndef _REENT_ONLY - -void * -malloc (size_t nbytes) /* get a block */ -{ - return _malloc_r (_REENT, nbytes); -} - -void -free (void *aptr) -{ - _free_r (_REENT, aptr); -} - -#endif - -#endif /* ! defined (MALLOC_PROVIDED) */ diff --git a/lib/stdlib/mallocr.c b/lib/stdlib/mallocr.c deleted file mode 100644 index c2ab1ca..0000000 --- a/lib/stdlib/mallocr.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_MALLOC -#include "_mallocr.c" diff --git a/lib/stdlib/malloptr.c b/lib/stdlib/malloptr.c deleted file mode 100644 index f67be24..0000000 --- a/lib/stdlib/malloptr.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_MALLOPT -#include "_mallocr.c" diff --git a/lib/stdlib/mallstatsr.c b/lib/stdlib/mallstatsr.c deleted file mode 100644 index 15cd737..0000000 --- a/lib/stdlib/mallstatsr.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_MALLOC_STATS -#include "_mallocr.c" diff --git a/lib/stdlib/mbctype.h b/lib/stdlib/mbctype.h deleted file mode 100644 index 359c83c..0000000 --- a/lib/stdlib/mbctype.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _MBCTYPE_H_ - -#define _MBCTYPE_H_ - -/* escape character used for JIS encoding */ -#define ESC_CHAR 0x1b - -/* functions used to support SHIFT_JIS, EUC-JP, and JIS multibyte encodings */ - -int _issjis1 (int c); -int _issjis2 (int c); -int _iseucjp (int c); -int _isjis (int c); - -#define _issjis1(c) (((c) >= 0x81 && (c) <= 0x9f) || ((c) >= 0xe0 && (c) <= 0xef)) -#define _issjis2(c) (((c) >= 0x40 && (c) <= 0x7e) || ((c) >= 0x80 && (c) <= 0xfc)) -#define _iseucjp1(c) ((c) == 0x8e || (c) == 0x8f || ((c) >= 0xa1 && (c) <= 0xfe)) -#define _iseucjp2(c) ((c) >= 0xa1 && (c) <= 0xfe) -#define _isjis(c) ((c) >= 0x21 && (c) <= 0x7e) - -#endif /* _MBCTYPE_H_ */ diff --git a/lib/stdlib/mblen.c b/lib/stdlib/mblen.c deleted file mode 100644 index 24df615..0000000 --- a/lib/stdlib/mblen.c +++ /dev/null @@ -1,78 +0,0 @@ -/* -FUNCTION -<>---minimal multibyte length function - -INDEX - mblen - -SYNOPSIS - #include - int mblen(const char *<[s]>, size_t <[n]>); - -DESCRIPTION -When _MB_CAPABLE is not defined, this is a minimal ANSI-conforming -implementation of <>. In this case, the -only ``multi-byte character sequences'' recognized are single bytes, -and thus <<1>> is returned unless <[s]> is the null pointer or -has a length of 0 or is the empty string. - -When _MB_CAPABLE is defined, this routine calls <<_mbtowc_r>> to perform -the conversion, passing a state variable to allow state dependent -decoding. The result is based on the locale setting which may -be restricted to a defined set of locales. - -RETURNS -This implementation of <> returns <<0>> if -<[s]> is <> or the empty string; it returns <<1>> if not _MB_CAPABLE or -the character is a single-byte character; it returns <<-1>> -if the multi-byte character is invalid; otherwise it returns -the number of bytes in the multibyte character. - -PORTABILITY -<> is required in the ANSI C standard. However, the precise -effects vary with the locale. - -<> requires no supporting OS subroutines. -*/ - -#ifndef _REENT_ONLY - -#include -#include -#include -#include "local.h" - -#ifdef _REENT_THREAD_LOCAL -_Thread_local _mbstate_t _tls_mblen_state; -#endif - -int -mblen (const char *s, - size_t n) -{ -#ifdef _MB_CAPABLE - int retval = 0; - struct _reent *reent = _REENT; - mbstate_t *state; - - _REENT_CHECK_MISC(reent); - state = &(_REENT_MBLEN_STATE(reent)); - retval = __MBTOWC (reent, NULL, s, n, state); - if (retval < 0) - { - state->__count = 0; - return -1; - } - else - return retval; - -#else /* not _MB_CAPABLE */ - if (s == NULL || *s == '\0') - return 0; - if (n == 0) - return -1; - return 1; -#endif /* not _MB_CAPABLE */ -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/mblen_r.c b/lib/stdlib/mblen_r.c deleted file mode 100644 index ff17370..0000000 --- a/lib/stdlib/mblen_r.c +++ /dev/null @@ -1,68 +0,0 @@ -/* -FUNCTION -<<_mblen_r>>---reentrant minimal multibyte length function - -INDEX - _mblen_r - -SYNOPSIS - #include - int _mblen_r(struct _reent *<[r]>, const char *<[s]>, size_t <[n]>, int *<[state]>); - -DESCRIPTION -When _MB_CAPABLE is not defined, this is a minimal ANSI-conforming -implementation of <<_mblen_r>>. In this case, the -only ``multi-byte character sequences'' recognized are single bytes, -and thus <<1>> is returned unless <[s]> is the null pointer or -has a length of 0 or is the empty string. - -When _MB_CAPABLE is defined, this routine calls <<_mbtowc_r>> to perform -the conversion, passing a state variable to allow state dependent -decoding. The result is based on the locale setting which may -be restricted to a defined set of locales. - -RETURNS -This implementation of <<_mblen_r>> returns <<0>> if -<[s]> is <> or the empty string; it returns <<1>> if not _MB_CAPABLE or -the character is a single-byte character; it returns <<-1>> -if the multi-byte character is invalid; otherwise it returns -the number of bytes in the multibyte character. - -PORTABILITY -<<_mblen>> is required in the ANSI C standard. However, the precise -effects vary with the locale. - -<<_mblen_r>> requires no supporting OS subroutines. -*/ - -#include -#include -#include -#include "local.h" - -int -_mblen_r (struct _reent *r, - const char *s, - size_t n, - mbstate_t *state) -{ -#ifdef _MB_CAPABLE - int retval; - retval = __MBTOWC (r, NULL, s, n, state); - - if (retval < 0) - { - state->__count = 0; - return -1; - } - - return retval; -#else /* not _MB_CAPABLE */ - if (s == NULL || *s == '\0') - return 0; - if (n == 0) - return -1; - return 1; -#endif /* not _MB_CAPABLE */ -} - diff --git a/lib/stdlib/mbrlen.c b/lib/stdlib/mbrlen.c deleted file mode 100644 index 39e175e..0000000 --- a/lib/stdlib/mbrlen.c +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#ifdef _REENT_THREAD_LOCAL -_Thread_local _mbstate_t _tls_mbrlen_state; -#endif - -size_t -mbrlen(const char *__restrict s, size_t n, mbstate_t *__restrict ps) -{ -#ifdef _MB_CAPABLE - if (ps == NULL) - { - struct _reent *reent = _REENT; - - _REENT_CHECK_MISC(reent); - ps = &(_REENT_MBRLEN_STATE(reent)); - } -#endif - - return mbrtowc(NULL, s, n, ps); -} diff --git a/lib/stdlib/mbrtowc.c b/lib/stdlib/mbrtowc.c deleted file mode 100644 index e641b8c..0000000 --- a/lib/stdlib/mbrtowc.c +++ /dev/null @@ -1,82 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include "local.h" - -#ifdef _REENT_THREAD_LOCAL -_Thread_local _mbstate_t _tls_mbrtowc_state; -#endif - -size_t -_mbrtowc_r (struct _reent *ptr, - wchar_t *pwc, - const char *s, - size_t n, - mbstate_t *ps) -{ - int retval = 0; - -#ifdef _MB_CAPABLE - if (ps == NULL) - { - _REENT_CHECK_MISC(ptr); - ps = &(_REENT_MBRTOWC_STATE(ptr)); - } -#endif - - if (s == NULL) - retval = __MBTOWC (ptr, NULL, "", 1, ps); - else - retval = __MBTOWC (ptr, pwc, s, n, ps); - - if (retval == -1) - { - ps->__count = 0; - _REENT_ERRNO(ptr) = EILSEQ; - return (size_t)(-1); - } - else - return (size_t)retval; -} - -#ifndef _REENT_ONLY -size_t -mbrtowc (wchar_t *__restrict pwc, - const char *__restrict s, - size_t n, - mbstate_t *__restrict ps) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - return _mbrtowc_r (_REENT, pwc, s, n, ps); -#else - int retval = 0; - struct _reent *reent = _REENT; - -#ifdef _MB_CAPABLE - if (ps == NULL) - { - _REENT_CHECK_MISC(reent); - ps = &(_REENT_MBRTOWC_STATE(reent)); - } -#endif - - if (s == NULL) - retval = __MBTOWC (reent, NULL, "", 1, ps); - else - retval = __MBTOWC (reent, pwc, s, n, ps); - - if (retval == -1) - { - ps->__count = 0; - _REENT_ERRNO(reent) = EILSEQ; - return (size_t)(-1); - } - else - return (size_t)retval; -#endif /* not PREFER_SIZE_OVER_SPEED */ -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/mbsinit.c b/lib/stdlib/mbsinit.c deleted file mode 100644 index e32369a..0000000 --- a/lib/stdlib/mbsinit.c +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include -#include - -int -mbsinit(const mbstate_t *ps) -{ - if (ps == NULL || ps->__count == 0) - return 1; - else - return 0; -} diff --git a/lib/stdlib/mbsnrtowcs.c b/lib/stdlib/mbsnrtowcs.c deleted file mode 100644 index 2effc50..0000000 --- a/lib/stdlib/mbsnrtowcs.c +++ /dev/null @@ -1,151 +0,0 @@ -/* -FUNCTION -<>, <>---convert a character string to a wide-character string - -INDEX - mbsrtowcs -INDEX - _mbsrtowcs_r -INDEX - mbsnrtowcs -INDEX - _mbsnrtowcs_r - -SYNOPSIS - #include - size_t mbsrtowcs(wchar_t *__restrict <[dst]>, - const char **__restrict <[src]>, - size_t <[len]>, - mbstate_t *__restrict <[ps]>); - - #include - size_t _mbsrtowcs_r(struct _reent *<[ptr]>, wchar_t *<[dst]>, - const char **<[src]>, size_t <[len]>, - mbstate_t *<[ps]>); - - #include - size_t mbsnrtowcs(wchar_t *__ restrict <[dst]>, - const char **__restrict <[src]>, size_t <[nms]>, - size_t <[len]>, mbstate_t *__restrict <[ps]>); - - #include - size_t _mbsnrtowcs_r(struct _reent *<[ptr]>, wchar_t *<[dst]>, - const char **<[src]>, size_t <[nms]>, - size_t <[len]>, mbstate_t *<[ps]>); - -DESCRIPTION -The <> function converts a sequence of multibyte characters -pointed to indirectly by <[src]> into a sequence of corresponding wide -characters and stores at most <[len]> of them in the wchar_t array pointed -to by <[dst]>, until it encounters a terminating null character ('\0'). - -If <[dst]> is NULL, no characters are stored. - -If <[dst]> is not NULL, the pointer pointed to by <[src]> is updated to point -to the character after the one that conversion stopped at. If conversion -stops because a null character is encountered, *<[src]> is set to NULL. - -The mbstate_t argument, <[ps]>, is used to keep track of the shift state. If -it is NULL, <> uses an internal, static mbstate_t object, which -is initialized to the initial conversion state at program startup. - -The <> function behaves identically to <>, except that -conversion stops after reading at most <[nms]> bytes from the buffer pointed -to by <[src]>. - -RETURNS -The <> and <> functions return the number of wide -characters stored in the array pointed to by <[dst]> if successful, otherwise -it returns (size_t)-1. - -PORTABILITY -<> is defined by the C99 standard. -<> is defined by the POSIX.1-2008 standard. -*/ - -#include -#include -#include -#include -#include -#include - -#ifdef _REENT_THREAD_LOCAL -_Thread_local _mbstate_t _tls_mbsrtowcs_state; -#endif - -size_t -_mbsnrtowcs_r (struct _reent *r, - wchar_t *dst, - const char **src, - size_t nms, - size_t len, - mbstate_t *ps) -{ - wchar_t *ptr = dst; - const char *tmp_src; - size_t max; - size_t count = 0; - int bytes; - -#ifdef _MB_CAPABLE - if (ps == NULL) - { - _REENT_CHECK_MISC(r); - ps = &(_REENT_MBSRTOWCS_STATE(r)); - } -#endif - - if (dst == NULL) - { - /* Ignore original len value and do not alter src pointer if the - dst pointer is NULL. */ - len = (size_t)-1; - tmp_src = *src; - src = &tmp_src; - } - - max = len; - while (len > 0) - { - bytes = _mbrtowc_r (r, ptr, *src, nms, ps); - if (bytes > 0) - { - *src += bytes; - nms -= bytes; - ++count; - ptr = (dst == NULL) ? NULL : ptr + 1; - --len; - } - else if (bytes == -2) - { - *src += nms; - return count; - } - else if (bytes == 0) - { - *src = NULL; - return count; - } - else - { - ps->__count = 0; - _REENT_ERRNO(r) = EILSEQ; - return (size_t)-1; - } - } - - return (size_t)max; -} - -#ifndef _REENT_ONLY -size_t -mbsnrtowcs (wchar_t *__restrict dst, - const char **__restrict src, - size_t nms, - size_t len, - mbstate_t *__restrict ps) -{ - return _mbsnrtowcs_r (_REENT, dst, src, nms, len, ps); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/mbsrtowcs.c b/lib/stdlib/mbsrtowcs.c deleted file mode 100644 index 82589c6..0000000 --- a/lib/stdlib/mbsrtowcs.c +++ /dev/null @@ -1,29 +0,0 @@ -/* doc in mbsnrtowcs.c */ - -#include -#include -#include -#include -#include -#include - -size_t -_mbsrtowcs_r (struct _reent *r, - wchar_t *dst, - const char **src, - size_t len, - mbstate_t *ps) -{ - return _mbsnrtowcs_r (r, dst, src, (size_t) -1, len, ps); -} - -#ifndef _REENT_ONLY -size_t -mbsrtowcs (wchar_t *__restrict dst, - const char **__restrict src, - size_t len, - mbstate_t *__restrict ps) -{ - return _mbsnrtowcs_r (_REENT, dst, src, (size_t) -1, len, ps); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/mbstowcs.c b/lib/stdlib/mbstowcs.c deleted file mode 100644 index 253059c..0000000 --- a/lib/stdlib/mbstowcs.c +++ /dev/null @@ -1,75 +0,0 @@ -/* -FUNCTION -<>---minimal multibyte string to wide char converter - -INDEX - mbstowcs - -SYNOPSIS - #include - int mbstowcs(wchar_t *restrict <[pwc]>, const char *restrict <[s]>, size_t <[n]>); - -DESCRIPTION -When _MB_CAPABLE is not defined, this is a minimal ANSI-conforming -implementation of <>. In this case, the -only ``multi-byte character sequences'' recognized are single bytes, -and they are ``converted'' to wide-char versions simply by byte -extension. - -When _MB_CAPABLE is defined, this routine calls <<_mbstowcs_r>> to perform -the conversion, passing a state variable to allow state dependent -decoding. The result is based on the locale setting which may -be restricted to a defined set of locales. - -RETURNS -This implementation of <> returns <<0>> if -<[s]> is <> or is the empty string; -it returns <<-1>> if _MB_CAPABLE and one of the -multi-byte characters is invalid or incomplete; -otherwise it returns the minimum of: <> or the -number of multi-byte characters in <> plus 1 (to -compensate for the nul character). -If the return value is -1, the state of the <> string is -indeterminate. If the input has a length of 0, the output -string will be modified to contain a wchar_t nul terminator. - -PORTABILITY -<> is required in the ANSI C standard. However, the precise -effects vary with the locale. - -<> requires no supporting OS subroutines. -*/ - -#ifndef _REENT_ONLY - -#include -#include -#include - -size_t -mbstowcs (wchar_t *__restrict pwcs, - const char *__restrict s, - size_t n) -{ -#ifdef _MB_CAPABLE - mbstate_t state; - state.__count = 0; - - return _mbstowcs_r (_REENT, pwcs, s, n, &state); -#else /* not _MB_CAPABLE */ - - int count = 0; - - if (n != 0) { - do { - if ((*pwcs++ = (wchar_t) *s++) == 0) - break; - count++; - } while (--n != 0); - } - - return count; -#endif /* not _MB_CAPABLE */ -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/mbstowcs_r.c b/lib/stdlib/mbstowcs_r.c deleted file mode 100644 index 43aea2c..0000000 --- a/lib/stdlib/mbstowcs_r.c +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include -#include "local.h" - -size_t -_mbstowcs_r (struct _reent *r, - wchar_t *__restrict pwcs, - const char *__restrict s, - size_t n, - mbstate_t *state) -{ - size_t ret = 0; - char *t = (char *)s; - int bytes; - - if (!pwcs) - n = (size_t) 1; /* Value doesn't matter as long as it's not 0. */ - while (n > 0) - { - bytes = __MBTOWC (r, pwcs, t, MB_CUR_MAX, state); - if (bytes < 0) - { - state->__count = 0; - return -1; - } - else if (bytes == 0) - break; - t += bytes; - ++ret; - if (pwcs) - { - ++pwcs; - --n; - } - } - return ret; -} diff --git a/lib/stdlib/mbtowc.c b/lib/stdlib/mbtowc.c deleted file mode 100644 index fbd8df6..0000000 --- a/lib/stdlib/mbtowc.c +++ /dev/null @@ -1,92 +0,0 @@ -/* -FUNCTION -<>---minimal multibyte to wide char converter - -INDEX - mbtowc - -SYNOPSIS - #include - int mbtowc(wchar_t *restrict <[pwc]>, const char *restrict <[s]>, size_t <[n]>); - -DESCRIPTION -When _MB_CAPABLE is not defined, this is a minimal ANSI-conforming -implementation of <>. In this case, -only ``multi-byte character sequences'' recognized are single bytes, -and they are ``converted'' to themselves. -Each call to <> copies one character from <<*<[s]>>> to -<<*<[pwc]>>>, unless <[s]> is a null pointer. The argument n -is ignored. - -When _MB_CAPABLE is defined, this routine calls <<_mbtowc_r>> to perform -the conversion, passing a state variable to allow state dependent -decoding. The result is based on the locale setting which may -be restricted to a defined set of locales. - -RETURNS -This implementation of <> returns <<0>> if -<[s]> is <> or is the empty string; -it returns <<1>> if not _MB_CAPABLE or -the character is a single-byte character; it returns <<-1>> -if n is <<0>> or the multi-byte character is invalid; -otherwise it returns the number of bytes in the multibyte character. -If the return value is -1, no changes are made to the <> -output string. If the input is the empty string, a wchar_t nul -is placed in the output string and 0 is returned. If the input -has a length of 0, no changes are made to the <> output string. - -PORTABILITY -<> is required in the ANSI C standard. However, the precise -effects vary with the locale. - -<> requires no supporting OS subroutines. -*/ - -#ifndef _REENT_ONLY - -#include -#include -#include -#include "local.h" - -#ifdef _REENT_THREAD_LOCAL -_Thread_local _mbstate_t _tls_mbtowc_state; -#endif - -int -mbtowc (wchar_t *__restrict pwc, - const char *__restrict s, - size_t n) -{ -#ifdef _MB_CAPABLE - int retval = 0; - struct _reent *reent = _REENT; - mbstate_t *ps; - - _REENT_CHECK_MISC(reent); - ps = &(_REENT_MBTOWC_STATE(reent)); - - retval = __MBTOWC (reent, pwc, s, n, ps); - - if (retval < 0) - { - ps->__count = 0; - return -1; - } - return retval; -#else /* not _MB_CAPABLE */ - if (s == NULL) - return 0; - if (n == 0) - return -1; - if (pwc) - *pwc = (wchar_t) *s; - return (*s != '\0'); -#endif /* not _MB_CAPABLE */ -} - -#endif /* !_REENT_ONLY */ - - - - diff --git a/lib/stdlib/mbtowc_r.c b/lib/stdlib/mbtowc_r.c deleted file mode 100644 index 01e596d..0000000 --- a/lib/stdlib/mbtowc_r.c +++ /dev/null @@ -1,976 +0,0 @@ -#include -#include -#include -#include "mbctype.h" -#include -#include -#include -#include "local.h" - -int -_mbtowc_r (struct _reent *r, - wchar_t *__restrict pwc, - const char *__restrict s, - size_t n, - mbstate_t *state) -{ - return __MBTOWC (r, pwc, s, n, state); -} - -int -__ascii_mbtowc (struct _reent *r, - wchar_t *pwc, - const char *s, - size_t n, - mbstate_t *state) -{ - wchar_t dummy; - unsigned char *t = (unsigned char *)s; - - if (pwc == NULL) - pwc = &dummy; - - if (s == NULL) - return 0; - - if (n == 0) - return -2; - -#ifdef __CYGWIN__ - if ((wchar_t)*t >= 0x80) - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } -#endif - - *pwc = (wchar_t)*t; - - if (*t == '\0') - return 0; - - return 1; -} - -#ifdef _MB_CAPABLE -typedef enum __packed { ESCAPE, DOLLAR, BRACKET, AT, B, J, - NUL, JIS_CHAR, OTHER, JIS_C_NUM } JIS_CHAR_TYPE; -typedef enum __packed { ASCII, JIS, A_ESC, A_ESC_DL, JIS_1, J_ESC, J_ESC_BR, - INV, JIS_S_NUM } JIS_STATE; -typedef enum __packed { COPY_A, COPY_J1, COPY_J2, MAKE_A, NOOP, EMPTY, ERROR } JIS_ACTION; - -/************************************************************************************** - * state/action tables for processing JIS encoding - * Where possible, switches to JIS are grouped with proceding JIS characters and switches - * to ASCII are grouped with preceding JIS characters. Thus, maximum returned length - * is 2 (switch to JIS) + 2 (JIS characters) + 2 (switch back to ASCII) = 6. - *************************************************************************************/ - -#ifndef __CYGWIN__ -static JIS_STATE JIS_state_table[JIS_S_NUM][JIS_C_NUM] = { -/* ESCAPE DOLLAR BRACKET AT B J NUL JIS_CHAR OTHER */ -/* ASCII */ { A_ESC, ASCII, ASCII, ASCII, ASCII, ASCII, ASCII, ASCII, ASCII }, -/* JIS */ { J_ESC, JIS_1, JIS_1, JIS_1, JIS_1, JIS_1, INV, JIS_1, INV }, -/* A_ESC */ { ASCII, A_ESC_DL, ASCII, ASCII, ASCII, ASCII, ASCII, ASCII, ASCII }, -/* A_ESC_DL */{ ASCII, ASCII, ASCII, JIS, JIS, ASCII, ASCII, ASCII, ASCII }, -/* JIS_1 */ { INV, JIS, JIS, JIS, JIS, JIS, INV, JIS, INV }, -/* J_ESC */ { INV, INV, J_ESC_BR, INV, INV, INV, INV, INV, INV }, -/* J_ESC_BR */{ INV, INV, INV, INV, ASCII, ASCII, INV, INV, INV }, -}; - -static JIS_ACTION JIS_action_table[JIS_S_NUM][JIS_C_NUM] = { -/* ESCAPE DOLLAR BRACKET AT B J NUL JIS_CHAR OTHER */ -/* ASCII */ { NOOP, COPY_A, COPY_A, COPY_A, COPY_A, COPY_A, EMPTY, COPY_A, COPY_A}, -/* JIS */ { NOOP, COPY_J1, COPY_J1, COPY_J1, COPY_J1, COPY_J1, ERROR, COPY_J1, ERROR }, -/* A_ESC */ { COPY_A, NOOP, COPY_A, COPY_A, COPY_A, COPY_A, COPY_A, COPY_A, COPY_A}, -/* A_ESC_DL */{ COPY_A, COPY_A, COPY_A, NOOP, NOOP, COPY_A, COPY_A, COPY_A, COPY_A}, -/* JIS_1 */ { ERROR, COPY_J2, COPY_J2, COPY_J2, COPY_J2, COPY_J2, ERROR, COPY_J2, ERROR }, -/* J_ESC */ { ERROR, ERROR, NOOP, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR }, -/* J_ESC_BR */{ ERROR, ERROR, ERROR, ERROR, MAKE_A, MAKE_A, ERROR, ERROR, ERROR }, -}; -#endif /* !__CYGWIN__ */ - -/* we override the mbstate_t __count field for more complex encodings and use it store a state value */ -#define __state __count - -#ifdef _MB_EXTENDED_CHARSETS_ISO -static int -___iso_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - int iso_idx, mbstate_t *state) -{ - wchar_t dummy; - unsigned char *t = (unsigned char *)s; - - if (pwc == NULL) - pwc = &dummy; - - if (s == NULL) - return 0; - - if (n == 0) - return -2; - - if (*t >= 0xa0) - { - if (iso_idx >= 0) - { - *pwc = __iso_8859_conv[iso_idx][*t - 0xa0]; - if (*pwc == 0) /* Invalid character */ - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - return 1; - } - } - - *pwc = (wchar_t) *t; - - if (*t == '\0') - return 0; - - return 1; -} - -static int -__iso_8859_1_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, -1, state); -} - -static int -__iso_8859_2_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 0, state); -} - -static int -__iso_8859_3_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 1, state); -} - -static int -__iso_8859_4_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 2, state); -} - -static int -__iso_8859_5_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 3, state); -} - -static int -__iso_8859_6_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 4, state); -} - -static int -__iso_8859_7_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 5, state); -} - -static int -__iso_8859_8_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 6, state); -} - -static int -__iso_8859_9_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 7, state); -} - -static int -__iso_8859_10_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 8, state); -} - -static int -__iso_8859_11_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 9, state); -} - -static int -__iso_8859_13_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 10, state); -} - -static int -__iso_8859_14_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 11, state); -} - -static int -__iso_8859_15_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 12, state); -} - -static int -__iso_8859_16_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___iso_mbtowc (r, pwc, s, n, 13, state); -} - -static mbtowc_p __iso_8859_mbtowc[17] = { - NULL, - __iso_8859_1_mbtowc, - __iso_8859_2_mbtowc, - __iso_8859_3_mbtowc, - __iso_8859_4_mbtowc, - __iso_8859_5_mbtowc, - __iso_8859_6_mbtowc, - __iso_8859_7_mbtowc, - __iso_8859_8_mbtowc, - __iso_8859_9_mbtowc, - __iso_8859_10_mbtowc, - __iso_8859_11_mbtowc, - NULL, /* No ISO 8859-12 */ - __iso_8859_13_mbtowc, - __iso_8859_14_mbtowc, - __iso_8859_15_mbtowc, - __iso_8859_16_mbtowc -}; - -/* val *MUST* be valid! All checks for validity are supposed to be - performed before calling this function. */ -mbtowc_p -__iso_mbtowc (int val) -{ - return __iso_8859_mbtowc[val]; -} -#endif /* _MB_EXTENDED_CHARSETS_ISO */ - -#ifdef _MB_EXTENDED_CHARSETS_WINDOWS -static int -___cp_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - int cp_idx, mbstate_t *state) -{ - wchar_t dummy; - unsigned char *t = (unsigned char *)s; - - if (pwc == NULL) - pwc = &dummy; - - if (s == NULL) - return 0; - - if (n == 0) - return -2; - - if (*t >= 0x80) - { - if (cp_idx >= 0) - { - *pwc = __cp_conv[cp_idx][*t - 0x80]; - if (*pwc == 0) /* Invalid character */ - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - return 1; - } - } - - *pwc = (wchar_t)*t; - - if (*t == '\0') - return 0; - - return 1; -} - -static int -__cp_437_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 0, state); -} - -static int -__cp_720_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 1, state); -} - -static int -__cp_737_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 2, state); -} - -static int -__cp_775_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 3, state); -} - -static int -__cp_850_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 4, state); -} - -static int -__cp_852_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 5, state); -} - -static int -__cp_855_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 6, state); -} - -static int -__cp_857_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 7, state); -} - -static int -__cp_858_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 8, state); -} - -static int -__cp_862_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 9, state); -} - -static int -__cp_866_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 10, state); -} - -static int -__cp_874_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 11, state); -} - -static int -__cp_1125_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 12, state); -} - -static int -__cp_1250_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 13, state); -} - -static int -__cp_1251_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 14, state); -} - -static int -__cp_1252_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 15, state); -} - -static int -__cp_1253_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 16, state); -} - -static int -__cp_1254_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 17, state); -} - -static int -__cp_1255_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 18, state); -} - -static int -__cp_1256_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 19, state); -} - -static int -__cp_1257_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 20, state); -} - -static int -__cp_1258_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 21, state); -} - -static int -__cp_20866_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 22, state); -} - -static int -__cp_21866_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 23, state); -} - -static int -__cp_101_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 24, state); -} - -static int -__cp_102_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 25, state); -} - -static int -__cp_103_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n, - mbstate_t *state) -{ - return ___cp_mbtowc (r, pwc, s, n, 26, state); -} - -static mbtowc_p __cp_xxx_mbtowc[27] = { - __cp_437_mbtowc, - __cp_720_mbtowc, - __cp_737_mbtowc, - __cp_775_mbtowc, - __cp_850_mbtowc, - __cp_852_mbtowc, - __cp_855_mbtowc, - __cp_857_mbtowc, - __cp_858_mbtowc, - __cp_862_mbtowc, - __cp_866_mbtowc, - __cp_874_mbtowc, - __cp_1125_mbtowc, - __cp_1250_mbtowc, - __cp_1251_mbtowc, - __cp_1252_mbtowc, - __cp_1253_mbtowc, - __cp_1254_mbtowc, - __cp_1255_mbtowc, - __cp_1256_mbtowc, - __cp_1257_mbtowc, - __cp_1258_mbtowc, - __cp_20866_mbtowc, - __cp_21866_mbtowc, - __cp_101_mbtowc, - __cp_102_mbtowc, - __cp_103_mbtowc, -}; - -/* val *MUST* be valid! All checks for validity are supposed to be - performed before calling this function. */ -mbtowc_p -__cp_mbtowc (int val) -{ - return __cp_xxx_mbtowc[__cp_val_index (val)]; -} -#endif /* _MB_EXTENDED_CHARSETS_WINDOWS */ - -int -__utf8_mbtowc (struct _reent *r, - wchar_t *pwc, - const char *s, - size_t n, - mbstate_t *state) -{ - wchar_t dummy; - unsigned char *t = (unsigned char *)s; - int ch; - int i = 0; - - if (pwc == NULL) - pwc = &dummy; - - if (s == NULL) - return 0; - - if (n == 0) - return -2; - - if (state->__count == 0) - ch = t[i++]; - else - ch = state->__value.__wchb[0]; - - if (ch == '\0') - { - *pwc = 0; - state->__count = 0; - return 0; /* s points to the null character */ - } - - if (ch <= 0x7f) - { - /* single-byte sequence */ - state->__count = 0; - *pwc = ch; - return 1; - } - if (ch >= 0xc0 && ch <= 0xdf) - { - /* two-byte sequence */ - state->__value.__wchb[0] = ch; - if (state->__count == 0) - state->__count = 1; - else if (n < (size_t)-1) - ++n; - if (n < 2) - return -2; - ch = t[i++]; - if (ch < 0x80 || ch > 0xbf) - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - if (state->__value.__wchb[0] < 0xc2) - { - /* overlong UTF-8 sequence */ - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - state->__count = 0; - *pwc = (wchar_t)((state->__value.__wchb[0] & 0x1f) << 6) - | (wchar_t)(ch & 0x3f); - return i; - } - if (ch >= 0xe0 && ch <= 0xef) - { - /* three-byte sequence */ - wchar_t tmp; - state->__value.__wchb[0] = ch; - if (state->__count == 0) - state->__count = 1; - else if (n < (size_t)-1) - ++n; - if (n < 2) - return -2; - ch = (state->__count == 1) ? t[i++] : state->__value.__wchb[1]; - if (state->__value.__wchb[0] == 0xe0 && ch < 0xa0) - { - /* overlong UTF-8 sequence */ - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - if (ch < 0x80 || ch > 0xbf) - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - state->__value.__wchb[1] = ch; - if (state->__count == 1) - state->__count = 2; - else if (n < (size_t)-1) - ++n; - if (n < 3) - return -2; - ch = t[i++]; - if (ch < 0x80 || ch > 0xbf) - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - state->__count = 0; - tmp = (wchar_t)((state->__value.__wchb[0] & 0x0f) << 12) - | (wchar_t)((state->__value.__wchb[1] & 0x3f) << 6) - | (wchar_t)(ch & 0x3f); - *pwc = tmp; - return i; - } - if (ch >= 0xf0 && ch <= 0xf4) - { - /* four-byte sequence */ - wint_t tmp; - state->__value.__wchb[0] = ch; - if (state->__count == 0) - state->__count = 1; - else if (n < (size_t)-1) - ++n; - if (n < 2) - return -2; - ch = (state->__count == 1) ? t[i++] : state->__value.__wchb[1]; - if ((state->__value.__wchb[0] == 0xf0 && ch < 0x90) - || (state->__value.__wchb[0] == 0xf4 && ch >= 0x90)) - { - /* overlong UTF-8 sequence or result is > 0x10ffff */ - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - if (ch < 0x80 || ch > 0xbf) - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - state->__value.__wchb[1] = ch; - if (state->__count == 1) - state->__count = 2; - else if (n < (size_t)-1) - ++n; - if (n < 3) - return -2; - ch = (state->__count == 2) ? t[i++] : state->__value.__wchb[2]; - if (ch < 0x80 || ch > 0xbf) - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - state->__value.__wchb[2] = ch; - if (state->__count == 2) - state->__count = 3; - else if (n < (size_t)-1) - ++n; - if (state->__count == 3 && sizeof(wchar_t) == 2) - { - /* On systems which have wchar_t being UTF-16 values, the value - doesn't fit into a single wchar_t in this case. So what we - do here is to store the state with a special value of __count - and return the first half of a surrogate pair. The first - three bytes of a UTF-8 sequence are enough to generate the - first half of a UTF-16 surrogate pair. As return value we - choose to return the number of bytes actually read up to - here. - The second half of the surrogate pair is returned in case we - recognize the special __count value of four, and the next - byte is actually a valid value. See below. */ - tmp = (wint_t)((state->__value.__wchb[0] & 0x07) << 18) - | (wint_t)((state->__value.__wchb[1] & 0x3f) << 12) - | (wint_t)((state->__value.__wchb[2] & 0x3f) << 6); - state->__count = 4; - *pwc = 0xd800 | ((tmp - 0x10000) >> 10); - return i; - } - if (n < 4) - return -2; - ch = t[i++]; - if (ch < 0x80 || ch > 0xbf) - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - tmp = (wint_t)((state->__value.__wchb[0] & 0x07) << 18) - | (wint_t)((state->__value.__wchb[1] & 0x3f) << 12) - | (wint_t)((state->__value.__wchb[2] & 0x3f) << 6) - | (wint_t)(ch & 0x3f); - if (state->__count == 4 && sizeof(wchar_t) == 2) - /* Create the second half of the surrogate pair for systems with - wchar_t == UTF-16 . */ - *pwc = 0xdc00 | (tmp & 0x3ff); - else - *pwc = tmp; - state->__count = 0; - return i; - } - - _REENT_ERRNO(r) = EILSEQ; - return -1; -} - -/* Cygwin defines its own doublebyte charset conversion functions - because the underlying OS requires wchar_t == UTF-16. */ -#ifndef __CYGWIN__ -int -__sjis_mbtowc (struct _reent *r, - wchar_t *pwc, - const char *s, - size_t n, - mbstate_t *state) -{ - wchar_t dummy; - unsigned char *t = (unsigned char *)s; - int ch; - int i = 0; - - if (pwc == NULL) - pwc = &dummy; - - if (s == NULL) - return 0; /* not state-dependent */ - - if (n == 0) - return -2; - - ch = t[i++]; - if (state->__count == 0) - { - if (_issjis1 (ch)) - { - state->__value.__wchb[0] = ch; - state->__count = 1; - if (n <= 1) - return -2; - ch = t[i++]; - } - } - if (state->__count == 1) - { - if (_issjis2 (ch)) - { - *pwc = (((wchar_t)state->__value.__wchb[0]) << 8) + (wchar_t)ch; - state->__count = 0; - return i; - } - else - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - } - - *pwc = (wchar_t)*t; - - if (*t == '\0') - return 0; - - return 1; -} - -int -__eucjp_mbtowc (struct _reent *r, - wchar_t *pwc, - const char *s, - size_t n, - mbstate_t *state) -{ - wchar_t dummy; - unsigned char *t = (unsigned char *)s; - int ch; - int i = 0; - - if (pwc == NULL) - pwc = &dummy; - - if (s == NULL) - return 0; - - if (n == 0) - return -2; - - ch = t[i++]; - if (state->__count == 0) - { - if (_iseucjp1 (ch)) - { - state->__value.__wchb[0] = ch; - state->__count = 1; - if (n <= 1) - return -2; - ch = t[i++]; - } - } - if (state->__count == 1) - { - if (_iseucjp2 (ch)) - { - if (state->__value.__wchb[0] == 0x8f) - { - state->__value.__wchb[1] = ch; - state->__count = 2; - if (n <= i) - return -2; - ch = t[i++]; - } - else - { - *pwc = (((wchar_t)state->__value.__wchb[0]) << 8) + (wchar_t)ch; - state->__count = 0; - return i; - } - } - else - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - } - if (state->__count == 2) - { - if (_iseucjp2 (ch)) - { - *pwc = (((wchar_t)state->__value.__wchb[1]) << 8) - + (wchar_t)(ch & 0x7f); - state->__count = 0; - return i; - } - else - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - } - - *pwc = (wchar_t)*t; - - if (*t == '\0') - return 0; - - return 1; -} - -int -__jis_mbtowc (struct _reent *r, - wchar_t *pwc, - const char *s, - size_t n, - mbstate_t *state) -{ - wchar_t dummy; - unsigned char *t = (unsigned char *)s; - JIS_STATE curr_state; - JIS_ACTION action; - JIS_CHAR_TYPE ch; - unsigned char *ptr; - unsigned int i; - int curr_ch; - - if (pwc == NULL) - pwc = &dummy; - - if (s == NULL) - { - state->__state = ASCII; - return 1; /* state-dependent */ - } - - if (n == 0) - return -2; - - curr_state = state->__state; - ptr = t; - - for (i = 0; i < n; ++i) - { - curr_ch = t[i]; - switch (curr_ch) - { - case ESC_CHAR: - ch = ESCAPE; - break; - case '$': - ch = DOLLAR; - break; - case '@': - ch = AT; - break; - case '(': - ch = BRACKET; - break; - case 'B': - ch = B; - break; - case 'J': - ch = J; - break; - case '\0': - ch = NUL; - break; - default: - if (_isjis (curr_ch)) - ch = JIS_CHAR; - else - ch = OTHER; - } - - action = JIS_action_table[curr_state][ch]; - curr_state = JIS_state_table[curr_state][ch]; - - switch (action) - { - case NOOP: - break; - case EMPTY: - state->__state = ASCII; - *pwc = (wchar_t)0; - return 0; - case COPY_A: - state->__state = ASCII; - *pwc = (wchar_t)*ptr; - return (i + 1); - case COPY_J1: - state->__value.__wchb[0] = t[i]; - break; - case COPY_J2: - state->__state = JIS; - *pwc = (((wchar_t)state->__value.__wchb[0]) << 8) + (wchar_t)(t[i]); - return (i + 1); - case MAKE_A: - ptr = (unsigned char *)(t + i + 1); - break; - case ERROR: - default: - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - - } - - state->__state = curr_state; - return -2; /* n < bytes needed */ -} -#endif /* !__CYGWIN__*/ -#endif /* _MB_CAPABLE */ diff --git a/lib/stdlib/mlock.c b/lib/stdlib/mlock.c deleted file mode 100644 index 23aa101..0000000 --- a/lib/stdlib/mlock.c +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef MALLOC_PROVIDED -/* -FUNCTION -<<__malloc_lock>>, <<__malloc_unlock>>---lock malloc pool - -INDEX - __malloc_lock -INDEX - __malloc_unlock - -SYNOPSIS - #include - void __malloc_lock (struct _reent *<[reent]>); - void __malloc_unlock (struct _reent *<[reent]>); - -DESCRIPTION -The <> family of routines call these functions when they need to lock -the memory pool. The version of these routines supplied in the library use -the lock API defined in sys/lock.h. If multiple threads of execution can -call <>, or if <> can be called reentrantly, then you need to -define your own versions of these functions in order to safely lock the -memory pool during a call. If you do not, the memory pool may become -corrupted. - -A call to <> may call <<__malloc_lock>> recursively; that is, -the sequence of calls may go <<__malloc_lock>>, <<__malloc_lock>>, -<<__malloc_unlock>>, <<__malloc_unlock>>. Any implementation of these -routines must be careful to avoid causing a thread to wait for a lock -that it already holds. -*/ - -#include -#include - -#ifndef __SINGLE_THREAD__ -__LOCK_INIT_RECURSIVE(static, __malloc_recursive_mutex); -#endif - -void -__malloc_lock (ptr) - struct _reent *ptr; -{ -#ifndef __SINGLE_THREAD__ - __lock_acquire_recursive (__malloc_recursive_mutex); -#endif -} - -void -__malloc_unlock (ptr) - struct _reent *ptr; -{ -#ifndef __SINGLE_THREAD__ - __lock_release_recursive (__malloc_recursive_mutex); -#endif -} - -#endif diff --git a/lib/stdlib/mman.h b/lib/stdlib/mman.h deleted file mode 100644 index c36687f..0000000 --- a/lib/stdlib/mman.h +++ /dev/null @@ -1,166 +0,0 @@ -/* $OpenBSD: mman.h,v 1.35 2022/10/07 14:59:39 deraadt Exp $ */ -/* $NetBSD: mman.h,v 1.11 1995/03/26 20:24:23 jtc Exp $ */ - -/*- - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)mman.h 8.1 (Berkeley) 6/2/93 - */ - -#ifndef _KERNEL -#include -#endif - -/* - * Protections are chosen from these bits, or-ed together - */ -#define PROT_NONE 0x00 /* no permissions */ -#define PROT_READ 0x01 /* pages can be read */ -#define PROT_WRITE 0x02 /* pages can be written */ -#define PROT_EXEC 0x04 /* pages can be executed */ - -/* - * Flags contain sharing type and options. - * Sharing types; choose one. - */ -#define MAP_SHARED 0x0001 /* share changes */ -#define MAP_PRIVATE 0x0002 /* changes are private */ - -/* - * Other flags - */ -#define MAP_FIXED 0x0010 /* map addr must be exactly as requested */ -#define __MAP_NOREPLACE 0x0800 /* fail if address not available */ -#define MAP_ANON 0x1000 /* allocated from memory, swap space */ -#define MAP_ANONYMOUS MAP_ANON /* alternate POSIX spelling */ -#define __MAP_NOFAULT 0x2000 -#define MAP_STACK 0x4000 /* mapping is used for a stack */ -#define MAP_CONCEAL 0x8000 /* omit from dumps */ - -#define MAP_FLAGMASK 0xfff7 - -#ifndef _KERNEL -/* - * Legacy defines for userland source compatibility. - * Can be removed once no longer needed in base and ports. - */ -#define MAP_COPY MAP_PRIVATE /* "copy" region at mmap time */ -#define MAP_FILE 0 /* map from file (default) */ -#define MAP_HASSEMAPHORE 0 /* region may contain semaphores */ -#define MAP_INHERIT 0 /* region is retained after exec */ -#define MAP_NOEXTEND 0 /* for MAP_FILE, don't change file size */ -#define MAP_NORESERVE 0 /* Sun: don't reserve needed swap area */ -#define MAP_RENAME 0 /* Sun: rename private pages to file */ -#define MAP_TRYFIXED 0 /* attempt hint address, even within heap */ -#endif - -/* - * Error return from mmap() - */ -#define MAP_FAILED ((void *)-1) - -/* - * POSIX memory advisory values. - * Note: keep consistent with the original definitions below. - */ -#define POSIX_MADV_NORMAL 0 /* no further special treatment */ -#define POSIX_MADV_RANDOM 1 /* expect random page references */ -#define POSIX_MADV_SEQUENTIAL 2 /* expect sequential page references */ -#define POSIX_MADV_WILLNEED 3 /* will need these pages */ -#define POSIX_MADV_DONTNEED 4 /* don't need these pages */ - -#if __BSD_VISIBLE -/* - * Original advice values, equivalent to POSIX definitions, - * and few implementation-specific ones. For in-kernel and historic use. - */ -#define MADV_NORMAL POSIX_MADV_NORMAL -#define MADV_RANDOM POSIX_MADV_RANDOM -#define MADV_SEQUENTIAL POSIX_MADV_SEQUENTIAL -#define MADV_WILLNEED POSIX_MADV_WILLNEED -#define MADV_DONTNEED POSIX_MADV_DONTNEED -#define MADV_SPACEAVAIL 5 /* insure that resources are reserved */ -#define MADV_FREE 6 /* pages are empty, free them */ -#endif - -/* - * Flags to minherit - */ -#define MAP_INHERIT_SHARE 0 /* share with child */ -#define MAP_INHERIT_COPY 1 /* copy into child */ -#define MAP_INHERIT_NONE 2 /* absent from child */ -#define MAP_INHERIT_ZERO 3 /* zero in child */ - -/* - * Flags to msync - */ -#define MS_ASYNC 0x01 /* perform asynchronous writes */ -#define MS_SYNC 0x02 /* perform synchronous writes */ -#define MS_INVALIDATE 0x04 /* invalidate cached data */ - -/* - * Flags to mlockall - */ -#define MCL_CURRENT 0x01 /* lock all pages currently mapped */ -#define MCL_FUTURE 0x02 /* lock all pages mapped in the future */ - -#ifndef _KERNEL -#include - -#ifndef _SIZE_T_DEFINED_ -#define _SIZE_T_DEFINED_ -typedef __size_t size_t; -#endif - -#ifndef _OFF_T_DEFINED_ -#define _OFF_T_DEFINED_ -typedef __off_t off_t; -#endif - -__BEGIN_DECLS -void * mmap(void *, size_t, int, int, int, off_t); -int mprotect(void *, size_t, int); -int munmap(void *, size_t); -int msync(void *, size_t, int); -int mlock(const void *, size_t); -int munlock(const void *, size_t); -int mlockall(int); -int munlockall(void); -#if __BSD_VISIBLE -int madvise(void *, size_t, int); -int minherit(void *, size_t, int); -int mimmutable(void *, size_t); -void * mquery(void *, size_t, int, int, int, off_t); -#endif -int posix_madvise(void *, size_t, int); -int shm_open(const char *, int, __mode_t); -int shm_unlink(const char *); -int shm_mkstemp(char *); -__END_DECLS - -#endif /* !_KERNEL */ diff --git a/lib/stdlib/mprec.c b/lib/stdlib/mprec.c deleted file mode 100644 index 1f534b0..0000000 --- a/lib/stdlib/mprec.c +++ /dev/null @@ -1,1044 +0,0 @@ -/**************************************************************** - * - * The author of this software is David M. Gay. - * - * Copyright (c) 1991 by AT&T. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which 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 AUTHOR NOR AT&T MAKES ANY - * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY - * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - ***************************************************************/ - -/* Please send bug reports to - David M. Gay - AT&T Bell Laboratories, Room 2C-463 - 600 Mountain Avenue - Murray Hill, NJ 07974-2070 - U.S.A. - dmg@research.att.com or research!dmg - */ - -/* strtod for IEEE-, VAX-, and IBM-arithmetic machines. - * - * This strtod returns a nearest machine number to the input decimal - * string (or sets errno to ERANGE). With IEEE arithmetic, ties are - * broken by the IEEE round-even rule. Otherwise ties are broken by - * biased rounding (add half and chop). - * - * Inspired loosely by William D. Clinger's paper "How to Read Floating - * Point Numbers Accurately" [Proc. ACM SIGPLAN '90, pp. 92-101]. - * - * Modifications: - * - * 1. We only require IEEE, IBM, or VAX double-precision - * arithmetic (not IEEE double-extended). - * 2. We get by with floating-point arithmetic in a case that - * Clinger missed -- when we're computing d * 10^n - * for a small integer d and the integer n is not too - * much larger than 22 (the maximum integer k for which - * we can represent 10^k exactly), we may be able to - * compute (d*10^k) * 10^(e-k) with just one roundoff. - * 3. Rather than a bit-at-a-time adjustment of the binary - * result in the hard case, we use floating-point - * arithmetic to determine the adjustment to within - * one bit; only in really hard cases do we need to - * compute a second residual. - * 4. Because of 3., we don't need a large table of powers of 10 - * for ten-to-e (just some small tables, e.g. of 10^k - * for 0 <= k <= 22). - */ - -/* - * #define IEEE_8087 for IEEE-arithmetic machines where the least - * significant byte has the lowest address. - * #define IEEE_MC68k for IEEE-arithmetic machines where the most - * significant byte has the lowest address. - * #define Sudden_Underflow for IEEE-format machines without gradual - * underflow (i.e., that flush to zero on underflow). - * #define IBM for IBM mainframe-style floating-point arithmetic. - * #define VAX for VAX-style floating-point arithmetic. - * #define Unsigned_Shifts if >> does treats its left operand as unsigned. - * #define No_leftright to omit left-right logic in fast floating-point - * computation of dtoa. - * #define Check_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3. - * #define RND_PRODQUOT to use rnd_prod and rnd_quot (assembly routines - * that use extended-precision instructions to compute rounded - * products and quotients) with IBM. - * #define ROUND_BIASED for IEEE-format with biased rounding. - * #define Inaccurate_Divide for IEEE-format with correctly rounded - * products but inaccurate quotients, e.g., for Intel i860. - * #define Just_16 to store 16 bits per 32-bit long when doing high-precision - * integer arithmetic. Whether this speeds things up or slows things - * down depends on the machine and the number being converted. - */ - -#include <_ansi.h> -#include -#include -#include -#include "mprec.h" - -#ifdef _REENT_THREAD_LOCAL -_Thread_local struct _Bigint *_tls_mp_p5s; -_Thread_local struct _Bigint **_tls_mp_freelist; -#endif - -/* This is defined in sys/reent.h as (sizeof (size_t) << 3) now, as in NetBSD. - The old value of 15 was wrong and made newlib vulnerable against buffer - overrun attacks (CVE-2009-0689), same as other implementations of gdtoa - based on BSD code. -#define _Kmax 15 -*/ - -_Bigint * -Balloc (struct _reent *ptr, int k) -{ - int x; - _Bigint *rv ; - - _REENT_CHECK_MP(ptr); - if (_REENT_MP_FREELIST(ptr) == NULL) - { - /* Allocate a list of pointers to the mprec objects */ - _REENT_MP_FREELIST(ptr) = (struct _Bigint **) _calloc_r (ptr, - sizeof (struct _Bigint *), - _Kmax + 1); - if (_REENT_MP_FREELIST(ptr) == NULL) - { - return NULL; - } - } - - if ((rv = _REENT_MP_FREELIST(ptr)[k]) != 0) - { - _REENT_MP_FREELIST(ptr)[k] = rv->_next; - } - else - { - x = 1 << k; - /* Allocate an mprec Bigint and stick in in the freelist */ - rv = (_Bigint *) _calloc_r (ptr, - 1, - sizeof (_Bigint) + - (x-1) * sizeof(rv->_x)); - if (rv == NULL) return NULL; - rv->_k = k; - rv->_maxwds = x; - } - rv->_sign = rv->_wds = 0; - return rv; -} - -void -Bfree (struct _reent *ptr, _Bigint * v) -{ - _REENT_CHECK_MP(ptr); - if (v) - { - v->_next = _REENT_MP_FREELIST(ptr)[v->_k]; - _REENT_MP_FREELIST(ptr)[v->_k] = v; - } -} - -_Bigint * -multadd (struct _reent *ptr, - _Bigint * b, - int m, - int a) -{ - int i, wds; - __ULong *x, y; -#ifdef Pack_32 - __ULong xi, z; -#endif - _Bigint *b1; - - wds = b->_wds; - x = b->_x; - i = 0; - do - { -#ifdef Pack_32 - xi = *x; - y = (xi & 0xffff) * m + a; - z = (xi >> 16) * m + (y >> 16); - a = (int) (z >> 16); - *x++ = (z << 16) + (y & 0xffff); -#else - y = *x * m + a; - a = (int) (y >> 16); - *x++ = y & 0xffff; -#endif - } - while (++i < wds); - if (a) - { - if (wds >= b->_maxwds) - { - b1 = eBalloc (ptr, b->_k + 1); - Bcopy (b1, b); - Bfree (ptr, b); - b = b1; - } - b->_x[wds++] = a; - b->_wds = wds; - } - return b; -} - -_Bigint * -s2b (struct _reent * ptr, - const char *s, - int nd0, - int nd, - __ULong y9) -{ - _Bigint *b; - int i, k; - __Long x, y; - - x = (nd + 8) / 9; - for (k = 0, y = 1; x > y; y <<= 1, k++); -#ifdef Pack_32 - b = eBalloc (ptr, k); - b->_x[0] = y9; - b->_wds = 1; -#else - b = eBalloc (ptr, k + 1); - b->_x[0] = y9 & 0xffff; - b->_wds = (b->_x[1] = y9 >> 16) ? 2 : 1; -#endif - - i = 9; - if (9 < nd0) - { - s += 9; - do - b = multadd (ptr, b, 10, *s++ - '0'); - while (++i < nd0); - s++; - } - else - s += 10; - for (; i < nd; i++) - b = multadd (ptr, b, 10, *s++ - '0'); - return b; -} - -int -hi0bits (register __ULong x) -{ - register int k = 0; - - if (!(x & 0xffff0000)) - { - k = 16; - x <<= 16; - } - if (!(x & 0xff000000)) - { - k += 8; - x <<= 8; - } - if (!(x & 0xf0000000)) - { - k += 4; - x <<= 4; - } - if (!(x & 0xc0000000)) - { - k += 2; - x <<= 2; - } - if (!(x & 0x80000000)) - { - k++; - if (!(x & 0x40000000)) - return 32; - } - return k; -} - -int -lo0bits (__ULong *y) -{ - register int k; - register __ULong x = *y; - - if (x & 7) - { - if (x & 1) - return 0; - if (x & 2) - { - *y = x >> 1; - return 1; - } - *y = x >> 2; - return 2; - } - k = 0; - if (!(x & 0xffff)) - { - k = 16; - x >>= 16; - } - if (!(x & 0xff)) - { - k += 8; - x >>= 8; - } - if (!(x & 0xf)) - { - k += 4; - x >>= 4; - } - if (!(x & 0x3)) - { - k += 2; - x >>= 2; - } - if (!(x & 1)) - { - k++; - x >>= 1; - if (!x & 1) - return 32; - } - *y = x; - return k; -} - -_Bigint * -i2b (struct _reent * ptr, int i) -{ - _Bigint *b; - - b = eBalloc (ptr, 1); - b->_x[0] = i; - b->_wds = 1; - return b; -} - -_Bigint * -mult (struct _reent * ptr, _Bigint * a, _Bigint * b) -{ - _Bigint *c; - int k, wa, wb, wc; - __ULong carry, y, z; - __ULong *x, *xa, *xae, *xb, *xbe, *xc, *xc0; -#ifdef Pack_32 - __ULong z2; -#endif - - if (a->_wds < b->_wds) - { - c = a; - a = b; - b = c; - } - k = a->_k; - wa = a->_wds; - wb = b->_wds; - wc = wa + wb; - if (wc > a->_maxwds) - k++; - c = eBalloc (ptr, k); - for (x = c->_x, xa = x + wc; x < xa; x++) - *x = 0; - xa = a->_x; - xae = xa + wa; - xb = b->_x; - xbe = xb + wb; - xc0 = c->_x; -#ifdef Pack_32 - for (; xb < xbe; xb++, xc0++) - { - if ((y = *xb & 0xffff) != 0) - { - x = xa; - xc = xc0; - carry = 0; - do - { - z = (*x & 0xffff) * y + (*xc & 0xffff) + carry; - carry = z >> 16; - z2 = (*x++ >> 16) * y + (*xc >> 16) + carry; - carry = z2 >> 16; - Storeinc (xc, z2, z); - } - while (x < xae); - *xc = carry; - } - if ((y = *xb >> 16) != 0) - { - x = xa; - xc = xc0; - carry = 0; - z2 = *xc; - do - { - z = (*x & 0xffff) * y + (*xc >> 16) + carry; - carry = z >> 16; - Storeinc (xc, z, z2); - z2 = (*x++ >> 16) * y + (*xc & 0xffff) + carry; - carry = z2 >> 16; - } - while (x < xae); - *xc = z2; - } - } -#else - for (; xb < xbe; xc0++) - { - if (y = *xb++) - { - x = xa; - xc = xc0; - carry = 0; - do - { - z = *x++ * y + *xc + carry; - carry = z >> 16; - *xc++ = z & 0xffff; - } - while (x < xae); - *xc = carry; - } - } -#endif - for (xc0 = c->_x, xc = xc0 + wc; wc > 0 && !*--xc; --wc); - c->_wds = wc; - return c; -} - -_Bigint * -pow5mult (struct _reent * ptr, _Bigint * b, int k) -{ - _Bigint *b1, *p5, *p51; - int i; - static const int p05[3] = {5, 25, 125}; - - if ((i = k & 3) != 0) - b = multadd (ptr, b, p05[i - 1], 0); - - if (!(k >>= 2)) - return b; - _REENT_CHECK_MP(ptr); - if (!(p5 = _REENT_MP_P5S(ptr))) - { - /* first time */ - p5 = _REENT_MP_P5S(ptr) = i2b (ptr, 625); - p5->_next = 0; - } - for (;;) - { - if (k & 1) - { - b1 = mult (ptr, b, p5); - Bfree (ptr, b); - b = b1; - } - if (!(k >>= 1)) - break; - if (!(p51 = p5->_next)) - { - p51 = p5->_next = mult (ptr, p5, p5); - p51->_next = 0; - } - p5 = p51; - } - return b; -} - -_Bigint * -lshift (struct _reent * ptr, _Bigint * b, int k) -{ - int i, k1, n, n1; - _Bigint *b1; - __ULong *x, *x1, *xe, z; - -#ifdef Pack_32 - n = k >> 5; -#else - n = k >> 4; -#endif - k1 = b->_k; - n1 = n + b->_wds + 1; - for (i = b->_maxwds; n1 > i; i <<= 1) - k1++; - b1 = eBalloc (ptr, k1); - x1 = b1->_x; - for (i = 0; i < n; i++) - *x1++ = 0; - x = b->_x; - xe = x + b->_wds; -#ifdef Pack_32 - if (k &= 0x1f) - { - k1 = 32 - k; - z = 0; - do - { - *x1++ = *x << k | z; - z = *x++ >> k1; - } - while (x < xe); - if ((*x1 = z) != 0) - ++n1; - } -#else - if (k &= 0xf) - { - k1 = 16 - k; - z = 0; - do - { - *x1++ = *x << k & 0xffff | z; - z = *x++ >> k1; - } - while (x < xe); - if (*x1 = z) - ++n1; - } -#endif - else - do - *x1++ = *x++; - while (x < xe); - b1->_wds = n1 - 1; - Bfree (ptr, b); - return b1; -} - -int -cmp (_Bigint * a, _Bigint * b) -{ - __ULong *xa, *xa0, *xb, *xb0; - int i, j; - - i = a->_wds; - j = b->_wds; -#ifdef DEBUG - if (i > 1 && !a->_x[i - 1]) - Bug ("cmp called with a->_x[a->_wds-1] == 0"); - if (j > 1 && !b->_x[j - 1]) - Bug ("cmp called with b->_x[b->_wds-1] == 0"); -#endif - if (i -= j) - return i; - xa0 = a->_x; - xa = xa0 + j; - xb0 = b->_x; - xb = xb0 + j; - for (;;) - { - if (*--xa != *--xb) - return *xa < *xb ? -1 : 1; - if (xa <= xa0) - break; - } - return 0; -} - -_Bigint * -diff (struct _reent * ptr, - _Bigint * a, _Bigint * b) -{ - _Bigint *c; - int i, wa, wb; - __Long borrow, y; /* We need signed shifts here. */ - __ULong *xa, *xae, *xb, *xbe, *xc; -#ifdef Pack_32 - __Long z; -#endif - - i = cmp (a, b); - if (!i) - { - c = eBalloc (ptr, 0); - c->_wds = 1; - c->_x[0] = 0; - return c; - } - if (i < 0) - { - c = a; - a = b; - b = c; - i = 1; - } - else - i = 0; - c = eBalloc (ptr, a->_k); - c->_sign = i; - wa = a->_wds; - xa = a->_x; - xae = xa + wa; - wb = b->_wds; - xb = b->_x; - xbe = xb + wb; - xc = c->_x; - borrow = 0; -#ifdef Pack_32 - do - { - y = (*xa & 0xffff) - (*xb & 0xffff) + borrow; - borrow = y >> 16; - Sign_Extend (borrow, y); - z = (*xa++ >> 16) - (*xb++ >> 16) + borrow; - borrow = z >> 16; - Sign_Extend (borrow, z); - Storeinc (xc, z, y); - } - while (xb < xbe); - while (xa < xae) - { - y = (*xa & 0xffff) + borrow; - borrow = y >> 16; - Sign_Extend (borrow, y); - z = (*xa++ >> 16) + borrow; - borrow = z >> 16; - Sign_Extend (borrow, z); - Storeinc (xc, z, y); - } -#else - do - { - y = *xa++ - *xb++ + borrow; - borrow = y >> 16; - Sign_Extend (borrow, y); - *xc++ = y & 0xffff; - } - while (xb < xbe); - while (xa < xae) - { - y = *xa++ + borrow; - borrow = y >> 16; - Sign_Extend (borrow, y); - *xc++ = y & 0xffff; - } -#endif - while (!*--xc) - wa--; - c->_wds = wa; - return c; -} - -double -ulp (double _x) -{ - union double_union x, a; - register __Long L; - - x.d = _x; - - L = (word0 (x) & Exp_mask) - (P - 1) * Exp_msk1; -#ifndef Sudden_Underflow - if (L > 0) - { -#endif -#ifdef IBM - L |= Exp_msk1 >> 4; -#endif - word0 (a) = L; -#ifndef _DOUBLE_IS_32BITS - word1 (a) = 0; -#endif - -#ifndef Sudden_Underflow - } - else - { - L = -L >> Exp_shift; - if (L < Exp_shift) - { - word0 (a) = 0x80000 >> L; -#ifndef _DOUBLE_IS_32BITS - word1 (a) = 0; -#endif - } - else - { - word0 (a) = 0; - L -= Exp_shift; -#ifndef _DOUBLE_IS_32BITS - word1 (a) = L >= 31 ? 1 : 1 << (31 - L); -#endif - } - } -#endif - return a.d; -} - -double -b2d (_Bigint * a, int *e) -{ - __ULong *xa, *xa0, w, y, z; - int k; - union double_union d; -#ifdef VAX - __ULong d0, d1; -#else -#define d0 word0(d) -#define d1 word1(d) -#endif - - xa0 = a->_x; - xa = xa0 + a->_wds; - y = *--xa; -#ifdef DEBUG - if (!y) - Bug ("zero y in b2d"); -#endif - k = hi0bits (y); - *e = 32 - k; -#ifdef Pack_32 - if (k < Ebits) - { - d0 = Exp_1 | y >> (Ebits - k); - w = xa > xa0 ? *--xa : 0; -#ifndef _DOUBLE_IS_32BITS - d1 = y << ((32 - Ebits) + k) | w >> (Ebits - k); -#endif - goto ret_d; - } - z = xa > xa0 ? *--xa : 0; - if (k -= Ebits) - { - d0 = Exp_1 | y << k | z >> (32 - k); - y = xa > xa0 ? *--xa : 0; -#ifndef _DOUBLE_IS_32BITS - d1 = z << k | y >> (32 - k); -#endif - } - else - { - d0 = Exp_1 | y; -#ifndef _DOUBLE_IS_32BITS - d1 = z; -#endif - } -#else - if (k < Ebits + 16) - { - z = xa > xa0 ? *--xa : 0; - d0 = Exp_1 | y << k - Ebits | z >> Ebits + 16 - k; - w = xa > xa0 ? *--xa : 0; - y = xa > xa0 ? *--xa : 0; - d1 = z << k + 16 - Ebits | w << k - Ebits | y >> 16 + Ebits - k; - goto ret_d; - } - z = xa > xa0 ? *--xa : 0; - w = xa > xa0 ? *--xa : 0; - k -= Ebits + 16; - d0 = Exp_1 | y << k + 16 | z << k | w >> 16 - k; - y = xa > xa0 ? *--xa : 0; - d1 = w << k + 16 | y << k; -#endif -ret_d: -#ifdef VAX - word0 (d) = d0 >> 16 | d0 << 16; - word1 (d) = d1 >> 16 | d1 << 16; -#else -#undef d0 -#undef d1 -#endif - return d.d; -} - -_Bigint * -d2b (struct _reent * ptr, - double _d, - int *e, - int *bits) - -{ - union double_union d; - _Bigint *b; - int de, i, k; - __ULong *x, y, z; -#ifdef VAX - __ULong d0, d1; -#endif - d.d = _d; -#ifdef VAX - d0 = word0 (d) >> 16 | word0 (d) << 16; - d1 = word1 (d) >> 16 | word1 (d) << 16; -#else -#define d0 word0(d) -#define d1 word1(d) - d.d = _d; -#endif - -#ifdef Pack_32 - b = eBalloc (ptr, 1); -#else - b = eBalloc (ptr, 2); -#endif - x = b->_x; - - z = d0 & Frac_mask; - d0 &= 0x7fffffff; /* clear sign bit, which we ignore */ -#ifdef Sudden_Underflow - de = (int) (d0 >> Exp_shift); -#ifndef IBM - z |= Exp_msk11; -#endif -#else - if ((de = (int) (d0 >> Exp_shift)) != 0) - z |= Exp_msk1; -#endif -#ifdef Pack_32 -#ifndef _DOUBLE_IS_32BITS - if (d1) - { - y = d1; - k = lo0bits (&y); - if (k) - { - x[0] = y | z << (32 - k); - z >>= k; - } - else - x[0] = y; - i = b->_wds = (x[1] = z) ? 2 : 1; - } - else -#endif - { -#ifdef DEBUG - if (!z) - Bug ("Zero passed to d2b"); -#endif - k = lo0bits (&z); - x[0] = z; - i = b->_wds = 1; -#ifndef _DOUBLE_IS_32BITS - k += 32; -#endif - } -#else - if (d1) - { - y = d1; - k = lo0bits (&y); - if (k) - if (k >= 16) - { - x[0] = y | z << 32 - k & 0xffff; - x[1] = z >> k - 16 & 0xffff; - x[2] = z >> k; - i = 2; - } - else - { - x[0] = y & 0xffff; - x[1] = y >> 16 | z << 16 - k & 0xffff; - x[2] = z >> k & 0xffff; - x[3] = z >> k + 16; - i = 3; - } - else - { - x[0] = y & 0xffff; - x[1] = y >> 16; - x[2] = z & 0xffff; - x[3] = z >> 16; - i = 3; - } - } - else - { -#ifdef DEBUG - if (!z) - Bug ("Zero passed to d2b"); -#endif - k = lo0bits (&z); - if (k >= 16) - { - x[0] = z; - i = 0; - } - else - { - x[0] = z & 0xffff; - x[1] = z >> 16; - i = 1; - } - k += 32; - } - while (!x[i]) - --i; - b->_wds = i + 1; -#endif -#ifndef Sudden_Underflow - if (de) - { -#endif -#ifdef IBM - *e = (de - Bias - (P - 1) << 2) + k; - *bits = 4 * P + 8 - k - hi0bits (word0 (d) & Frac_mask); -#else - *e = de - Bias - (P - 1) + k; - *bits = P - k; -#endif -#ifndef Sudden_Underflow - } - else - { - *e = de - Bias - (P - 1) + 1 + k; -#ifdef Pack_32 - *bits = 32 * i - hi0bits (x[i - 1]); -#else - *bits = (i + 2) * 16 - hi0bits (x[i]); -#endif - } -#endif - return b; -} -#undef d0 -#undef d1 - -double -ratio (_Bigint * a, _Bigint * b) - -{ - union double_union da, db; - int k, ka, kb; - - da.d = b2d (a, &ka); - db.d = b2d (b, &kb); -#ifdef Pack_32 - k = ka - kb + 32 * (a->_wds - b->_wds); -#else - k = ka - kb + 16 * (a->_wds - b->_wds); -#endif -#ifdef IBM - if (k > 0) - { - word0 (da) += (k >> 2) * Exp_msk1; - if (k &= 3) - da.d *= 1 << k; - } - else - { - k = -k; - word0 (db) += (k >> 2) * Exp_msk1; - if (k &= 3) - db.d *= 1 << k; - } -#else - if (k > 0) - word0 (da) += k * Exp_msk1; - else - { - k = -k; - word0 (db) += k * Exp_msk1; - } -#endif - return da.d / db.d; -} - - -const double - tens[] = -{ - 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, - 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, - 1e20, 1e21, 1e22, 1e23, 1e24 - -}; - -#if !defined(_DOUBLE_IS_32BITS) && !defined(__v800) -const double bigtens[] = -{1e16, 1e32, 1e64, 1e128, 1e256}; - -const double tinytens[] = -{1e-16, 1e-32, 1e-64, 1e-128, 1e-256}; -#else -const double bigtens[] = -{1e16, 1e32}; - -const double tinytens[] = -{1e-16, 1e-32}; -#endif - - -double -_mprec_log10 (int dig) -{ - double v = 1.0; - if (dig < 24) - return tens[dig]; - while (dig > 0) - { - v *= 10; - dig--; - } - return v; -} - -void -copybits (__ULong *c, - int n, - _Bigint *b) -{ - __ULong *ce, *x, *xe; -#ifdef Pack_16 - int nw, nw1; -#endif - - ce = c + ((n-1) >> kshift) + 1; - x = b->_x; -#ifdef Pack_32 - xe = x + b->_wds; - while(x < xe) - *c++ = *x++; -#else - nw = b->_wds; - nw1 = nw & 1; - for(xe = x + (nw - nw1); x < xe; x += 2) - Storeinc(c, x[1], x[0]); - if (nw1) - *c++ = *x; -#endif - while(c < ce) - *c++ = 0; -} - -__ULong -any_on (_Bigint *b, - int k) -{ - int n, nwds; - __ULong *x, *x0, x1, x2; - - x = b->_x; - nwds = b->_wds; - n = k >> kshift; - if (n > nwds) - n = nwds; - else if (n < nwds && (k &= kmask)) { - x1 = x2 = x[n]; - x1 >>= k; - x1 <<= k; - if (x1 != x2) - return 1; - } - x0 = x; - x += n; - while(x > x0) - if (*--x) - return 1; - return 0; -} - diff --git a/lib/stdlib/mprec.h b/lib/stdlib/mprec.h deleted file mode 100644 index 83de932..0000000 --- a/lib/stdlib/mprec.h +++ /dev/null @@ -1,410 +0,0 @@ -/**************************************************************** - * - * The author of this software is David M. Gay. - * - * Copyright (c) 1991 by AT&T. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which 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 AUTHOR NOR AT&T MAKES ANY - * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY - * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - ***************************************************************/ - -/* Please send bug reports to - David M. Gay - AT&T Bell Laboratories, Room 2C-463 - 600 Mountain Avenue - Murray Hill, NJ 07974-2070 - U.S.A. - dmg@research.att.com or research!dmg - */ - -#include -#include -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" - -#ifdef __IEEE_LITTLE_ENDIAN -#define IEEE_8087 -#endif - -#ifdef __IEEE_BIG_ENDIAN -#define IEEE_MC68k -#endif - -#ifdef __Z8000__ -#define Just_16 -#endif - -#ifdef DEBUG -#include "stdio.h" -#define Bug(x) {fprintf(stderr, "%s\n", x); exit(1);} -#endif - -#ifdef Unsigned_Shifts -#define Sign_Extend(a,b) if (b < 0) a |= (__uint32_t)0xffff0000; -#else -#define Sign_Extend(a,b) /*no-op*/ -#endif - -#if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(VAX) + defined(IBM) != 1 -Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined. -#endif - -/* If we are going to examine or modify specific bits in a double using - the word0 and/or word1 macros, then we must wrap the double inside - a union. This is necessary to avoid undefined behavior according to - the ANSI C spec. */ -union double_union -{ - double d; - __uint32_t i[2]; -}; - -#ifdef IEEE_8087 -#define word0(x) (x.i[1]) -#define word1(x) (x.i[0]) -#else -#define word0(x) (x.i[0]) -#define word1(x) (x.i[1]) -#endif - -/* The following is taken from gdtoaimp.h for use with new strtod, but - adjusted to avoid invalid type-punning. */ -typedef __int32_t Long; - -/* Unfortunately, because __ULong might be a different type than - __uint32_t, we can't re-use union double_union as-is without - further edits in strtod.c. */ -typedef union { double d; __ULong i[2]; } U; - -#define dword0(x) word0(x) -#define dword1(x) word1(x) -#define dval(x) (x.d) - -#undef SI -#ifdef Sudden_Underflow -#define SI 1 -#else -#define SI 0 -#endif - -#define Storeinc(a,b,c) (*(a)++ = ((b) << 16) | ((c) & 0xffff)) - -/* #define P DBL_MANT_DIG */ -/* Ten_pmax = floor(P*log(2)/log(5)) */ -/* Bletch = (highest power of 2 < DBL_MAX_10_EXP) / 16 */ -/* Quick_max = floor((P-1)*log(FLT_RADIX)/log(10) - 1) */ -/* Int_max = floor(P*log(FLT_RADIX)/log(10) - 1) */ - -#if defined(IEEE_8087) + defined(IEEE_MC68k) -#if defined (_DOUBLE_IS_32BITS) -#define Exp_shift 23 -#define Exp_shift1 23 -#define Exp_msk1 ((__uint32_t)0x00800000L) -#define Exp_msk11 ((__uint32_t)0x00800000L) -#define Exp_mask ((__uint32_t)0x7f800000L) -#define P 24 -#define Bias 127 -#define NO_HEX_FP /* not supported in this case */ -#define IEEE_Arith -#define Emin (-126) -#define Exp_1 ((__uint32_t)0x3f800000L) -#define Exp_11 ((__uint32_t)0x3f800000L) -#define Ebits 8 -#define Frac_mask ((__uint32_t)0x007fffffL) -#define Frac_mask1 ((__uint32_t)0x007fffffL) -#define Ten_pmax 10 -#define Sign_bit ((__uint32_t)0x80000000L) -#define Ten_pmax 10 -#define Bletch 2 -#define Bndry_mask ((__uint32_t)0x007fffffL) -#define Bndry_mask1 ((__uint32_t)0x007fffffL) -#define LSB 1 -#define Sign_bit ((__uint32_t)0x80000000L) -#define Log2P 1 -#define Tiny0 0 -#define Tiny1 1 -#define Quick_max 5 -#define Int_max 6 -#define Infinite(x) (word0(x) == ((__uint32_t)0x7f800000L)) -#undef word0 -#undef word1 -#undef dword0 -#undef dword1 - -#define word0(x) (x.i[0]) -#define word1(x) 0 -#define dword0(x) word0(x) -#define dword1(x) 0 -#else - -#define Exp_shift 20 -#define Exp_shift1 20 -#define Exp_msk1 ((__uint32_t)0x100000L) -#define Exp_msk11 ((__uint32_t)0x100000L) -#define Exp_mask ((__uint32_t)0x7ff00000L) -#define P 53 -#define Bias 1023 -#define IEEE_Arith -#define Emin (-1022) -#define Exp_1 ((__uint32_t)0x3ff00000L) -#define Exp_11 ((__uint32_t)0x3ff00000L) -#define Ebits 11 -#define Frac_mask ((__uint32_t)0xfffffL) -#define Frac_mask1 ((__uint32_t)0xfffffL) -#define Ten_pmax 22 -#define Bletch 0x10 -#define Bndry_mask ((__uint32_t)0xfffffL) -#define Bndry_mask1 ((__uint32_t)0xfffffL) -#define LSB 1 -#define Sign_bit ((__uint32_t)0x80000000L) -#define Log2P 1 -#define Tiny0 0 -#define Tiny1 1 -#define Quick_max 14 -#define Int_max 14 -#define Infinite(x) (word0(x) == ((__uint32_t)0x7ff00000L)) /* sufficient test for here */ - -#endif /* !_DOUBLE_IS_32BITS */ - -#ifndef Flt_Rounds -#ifdef FLT_ROUNDS -#define Flt_Rounds FLT_ROUNDS -#else -#define Flt_Rounds 1 -#endif -#endif /*Flt_Rounds*/ - -#else /* !IEEE_8087 && !IEEE_MC68k */ -#undef Sudden_Underflow -#define Sudden_Underflow -#ifdef IBM -#define Flt_Rounds 0 -#define Exp_shift 24 -#define Exp_shift1 24 -#define Exp_msk1 ((__uint32_t)0x1000000L) -#define Exp_msk11 ((__uint32_t)0x1000000L) -#define Exp_mask ((__uint32_t)0x7f000000L) -#define P 14 -#define Bias 65 -#define Exp_1 ((__uint32_t)0x41000000L) -#define Exp_11 ((__uint32_t)0x41000000L) -#define Ebits 8 /* exponent has 7 bits, but 8 is the right value in b2d */ -#define Frac_mask ((__uint32_t)0xffffffL) -#define Frac_mask1 ((__uint32_t)0xffffffL) -#define Bletch 4 -#define Ten_pmax 22 -#define Bndry_mask ((__uint32_t)0xefffffL) -#define Bndry_mask1 ((__uint32_t)0xffffffL) -#define LSB 1 -#define Sign_bit ((__uint32_t)0x80000000L) -#define Log2P 4 -#define Tiny0 ((__uint32_t)0x100000L) -#define Tiny1 0 -#define Quick_max 14 -#define Int_max 15 -#else /* VAX */ -#define Flt_Rounds 1 -#define Exp_shift 23 -#define Exp_shift1 7 -#define Exp_msk1 0x80 -#define Exp_msk11 ((__uint32_t)0x800000L) -#define Exp_mask ((__uint32_t)0x7f80L) -#define P 56 -#define Bias 129 -#define Exp_1 ((__uint32_t)0x40800000L) -#define Exp_11 ((__uint32_t)0x4080L) -#define Ebits 8 -#define Frac_mask ((__uint32_t)0x7fffffL) -#define Frac_mask1 ((__uint32_t)0xffff007fL) -#define Ten_pmax 24 -#define Bletch 2 -#define Bndry_mask ((__uint32_t)0xffff007fL) -#define Bndry_mask1 ((__uint32_t)0xffff007fL) -#define LSB ((__uint32_t)0x10000L) -#define Sign_bit ((__uint32_t)0x8000L) -#define Log2P 1 -#define Tiny0 0x80 -#define Tiny1 0 -#define Quick_max 15 -#define Int_max 15 -#endif -#endif - -#ifndef IEEE_Arith -#define ROUND_BIASED -#else -#define Scale_Bit 0x10 -#if defined(_DOUBLE_IS_32BITS) && defined(__v800) -#define n_bigtens 2 -#else -#define n_bigtens 5 -#endif -#endif - -#ifdef IBM -#define n_bigtens 3 -#endif - -#ifdef VAX -#define n_bigtens 2 -#endif - -#ifndef __NO_INFNAN_CHECK -#define INFNAN_CHECK -#endif - -#ifdef RND_PRODQUOT -#define rounded_product(a,b) a = rnd_prod(a, b) -#define rounded_quotient(a,b) a = rnd_quot(a, b) -#ifdef KR_headers -extern double rnd_prod(), rnd_quot(); -#else -extern double rnd_prod(double, double), rnd_quot(double, double); -#endif -#else -#define rounded_product(a,b) a *= b -#define rounded_quotient(a,b) a /= b -#endif - -#define Big0 (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1)) -#define Big1 ((__uint32_t)0xffffffffL) - -#ifndef Just_16 -/* When Pack_32 is not defined, we store 16 bits per 32-bit long. - * This makes some inner loops simpler and sometimes saves work - * during multiplications, but it often seems to make things slightly - * slower. Hence the default is now to store 32 bits per long. - */ - - #ifndef Pack_32 - #define Pack_32 - #endif -#else /* Just_16 */ - #ifndef Pack_16 - #define Pack_16 - #endif -#endif /* Just_16 */ - -#ifdef Pack_32 -#define ULbits 32 -#define kshift 5 -#define kmask 31 -#define ALL_ON 0xffffffff -#else -#define ULbits 16 -#define kshift 4 -#define kmask 15 -#define ALL_ON 0xffff -#endif - -#ifdef __cplusplus -extern "C" double strtod(const char *s00, char **se); -extern "C" char *dtoa(double d, int mode, int ndigits, - int *decpt, int *sign, char **rve); -#endif - - -typedef struct _Bigint _Bigint; - -#define Balloc _Balloc -#define Bfree _Bfree -#define multadd __multadd -#define s2b __s2b -#define lo0bits __lo0bits -#define hi0bits __hi0bits -#define i2b __i2b -#define mult __multiply -#define pow5mult __pow5mult -#define lshift __lshift -#define match __match -#define cmp __mcmp -#define diff __mdiff -#define ulp __ulp -#define b2d __b2d -#define d2b __d2b -#define ratio __ratio -#define any_on __any_on -#define gethex __gethex -#define copybits __copybits -#define hexnan __hexnan - -#define eBalloc(__reent_ptr, __len) ({ \ - void *__ptr = Balloc(__reent_ptr, __len); \ - if (__ptr == NULL) \ - __assert_func(__FILE__, __LINE__, (char *)0, "Balloc succeeded"); \ - __ptr; \ - }) - -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) && !defined(_SMALL_HEXDIG) -#define __get_hexdig(x) __hexdig[x] /* NOTE: must evaluate arg only once */ -#else /* !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) && !defined(_SMALL_HEXDIG) */ -#define __get_hexdig(x) __hexdig_fun(x) -#endif /* !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) && !defined(_SMALL_HEXDIG) */ - -#define tens __mprec_tens -#define bigtens __mprec_bigtens -#define tinytens __mprec_tinytens - -struct _reent ; -struct FPI; -double ulp (double x); -double b2d (_Bigint *a , int *e); -_Bigint * Balloc (struct _reent *p, int k); -void Bfree (struct _reent *p, _Bigint *v); -_Bigint * multadd (struct _reent *p, _Bigint *, int, int); -_Bigint * s2b (struct _reent *, const char*, int, int, __ULong); -_Bigint * i2b (struct _reent *,int); -_Bigint * mult (struct _reent *, _Bigint *, _Bigint *); -_Bigint * pow5mult (struct _reent *, _Bigint *, int k); -int hi0bits (__ULong); -int lo0bits (__ULong *); -_Bigint * d2b (struct _reent *p, double d, int *e, int *bits); -_Bigint * lshift (struct _reent *p, _Bigint *b, int k); -int match (const char**, char*); -_Bigint * diff (struct _reent *p, _Bigint *a, _Bigint *b); -int cmp (_Bigint *a, _Bigint *b); -int gethex (struct _reent *p, const char **sp, const struct FPI *fpi, Long *exp, _Bigint **bp, int sign, locale_t loc); -double ratio (_Bigint *a, _Bigint *b); -__ULong any_on (_Bigint *b, int k); -void copybits (__ULong *c, int n, _Bigint *b); -double _strtod_l (struct _reent *ptr, const char *__restrict s00, - char **__restrict se, locale_t loc); -#if defined (_HAVE_LONG_DOUBLE) && !defined (_LDBL_EQ_DBL) -int _strtorx_l (struct _reent *, const char *, char **, int, - void *, locale_t); -int _strtodg_l (struct _reent *p, const char *s00, char **se, - struct FPI *fpi, Long *exp, __ULong *bits, - locale_t); -#endif /* _HAVE_LONG_DOUBLE && !_LDBL_EQ_DBL */ - -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) || defined(_SMALL_HEXDIG) -unsigned char __hexdig_fun (unsigned char); -#endif /* !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) && !defined(_SMALL_HEXDIG) */ -#ifdef INFNAN_CHECK -int hexnan (const char **sp, const struct FPI *fpi, __ULong *x0); -#endif - -#define Bcopy(x,y) memcpy((char *)&x->_sign, (char *)&y->_sign, y->_wds*sizeof(__Long) + 2*sizeof(int)) - -extern const double tinytens[]; -extern const double bigtens[]; -extern const double tens[]; -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) && !defined(_SMALL_HEXDIG) -extern const unsigned char __hexdig[]; -#endif /* !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) && !defined(_SMALL_HEXDIG) */ - - -double _mprec_log10 (int); diff --git a/lib/stdlib/mrand48.c b/lib/stdlib/mrand48.c deleted file mode 100644 index bb1e454..0000000 --- a/lib/stdlib/mrand48.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ - -#include "rand48.h" - -long -_mrand48_r (struct _reent *r) -{ - _REENT_CHECK_RAND48(r); - __dorand48(r, __rand48_seed); - return ((long) __rand48_seed[2] << 16) + (long) __rand48_seed[1]; -} - -#ifndef _REENT_ONLY -long -mrand48 (void) -{ - return _mrand48_r (_REENT); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/msize.c b/lib/stdlib/msize.c deleted file mode 100644 index 108550d..0000000 --- a/lib/stdlib/msize.c +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef MALLOC_PROVIDED -/* msize.c -- a wrapper for malloc_usable_size. */ - -#include <_ansi.h> -#include -#include -#include - -#ifndef _REENT_ONLY - -size_t -malloc_usable_size (void *ptr) -{ - return _malloc_usable_size_r (_REENT, ptr); -} - -#endif -#endif diff --git a/lib/stdlib/msizer.c b/lib/stdlib/msizer.c deleted file mode 100644 index 1d683f4..0000000 --- a/lib/stdlib/msizer.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_MALLOC_USABLE_SIZE -#include "_mallocr.c" diff --git a/lib/stdlib/mstats.c b/lib/stdlib/mstats.c deleted file mode 100644 index 85c20f1..0000000 --- a/lib/stdlib/mstats.c +++ /dev/null @@ -1,136 +0,0 @@ -/* VxWorks provides its own version of malloc, and we can't use this - one because VxWorks does not provide sbrk. So we have a hook to - not compile this code. */ - -#ifdef MALLOC_PROVIDED - -int _dummy_mstats = 1; - -#else - -/* -FUNCTION -<>, <>, <>---malloc support - -INDEX - mallinfo -INDEX - malloc_stats -INDEX - mallopt -INDEX - _mallinfo_r -INDEX - _malloc_stats_r -INDEX - _mallopt_r - -SYNOPSIS - #include - struct mallinfo mallinfo(void); - void malloc_stats(void); - int mallopt(int <[parameter]>, <[value]>); - - struct mallinfo _mallinfo_r(void *<[reent]>); - void _malloc_stats_r(void *<[reent]>); - int _mallopt_r(void *<[reent]>, int <[parameter]>, <[value]>); - -DESCRIPTION -<> returns a structure describing the current state of -memory allocation. The structure is defined in malloc.h. The -following fields are defined: <> is the total amount of space -in the heap; <> is the number of chunks which are not in use; -<> is the total amount of space allocated by <>; -<> is the total amount of space not in use; <> is -the size of the top most memory block. - -<> print some statistics about memory allocation on -standard error. - -<> takes a parameter and a value. The parameters are defined -in malloc.h, and may be one of the following: <> -sets the maximum amount of unused space in the top most block before -releasing it back to the system in <> (the space is released by -calling <<_sbrk_r>> with a negative argument); <> is the -amount of padding to allocate whenever <<_sbrk_r>> is called to -allocate more space. - -The alternate functions <<_mallinfo_r>>, <<_malloc_stats_r>>, and -<<_mallopt_r>> are reentrant versions. The extra argument <[reent]> -is a pointer to a reentrancy structure. - -RETURNS -<> returns a mallinfo structure. The structure is defined -in malloc.h. - -<> does not return a result. - -<> returns zero if the parameter could not be set, or -non-zero if it could be set. - -PORTABILITY -<> and <> are provided by SVR4, but <> -takes different parameters on different systems. <> is -not portable. - -*/ - -#include <_ansi.h> -#include -#include -#include -#include - -#ifndef _REENT_ONLY - -struct mallinfo -mallinfo (void) -{ - return _mallinfo_r (_REENT); -} - -#if !defined (_ELIX_LEVEL) || _ELIX_LEVEL >= 2 -void -malloc_stats (void) -{ - _malloc_stats_r (_REENT); -} - -int -mallopt (int p, - int v) -{ - return _mallopt_r (_REENT, p, v); -} - -#endif /* !_ELIX_LEVEL || _ELIX_LEVEL >= 2 */ - -#endif - -#if !defined (_ELIX_LEVEL) || _ELIX_LEVEL >= 2 - -/* mstats is now compatibility code. It used to be real, for a - previous version of the malloc routines. It now just calls - malloc_stats. */ - -void -_mstats_r (struct _reent *ptr, - char *s) -{ - _REENT_SMALL_CHECK_INIT(ptr); - fiprintf (_stderr_r (ptr), "Memory allocation statistics %s\n", s); - _malloc_stats_r (ptr); -} - -#ifndef _REENT_ONLY -void -mstats (char *s) -{ - _mstats_r (_REENT, s); -} - -#endif - -#endif /* !_ELIX_LEVEL || _ELIX_LEVEL >= 2 */ - -#endif /* ! defined (MALLOC_PROVIDED) */ diff --git a/lib/stdlib/mtrim.c b/lib/stdlib/mtrim.c deleted file mode 100644 index bf927fa..0000000 --- a/lib/stdlib/mtrim.c +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef MALLOC_PROVIDED -/* mtrim.c -- a wrapper for malloc_trim. */ - -#include <_ansi.h> -#include -#include -#include - -#ifndef _REENT_ONLY - -int -malloc_trim (size_t pad) -{ - return _malloc_trim_r (_REENT, pad); -} - -#endif -#endif diff --git a/lib/stdlib/nano-mallocr.c b/lib/stdlib/nano-mallocr.c deleted file mode 100644 index a2b50fa..0000000 --- a/lib/stdlib/nano-mallocr.c +++ /dev/null @@ -1,737 +0,0 @@ -/* - * Copyright (c) 2012, 2013 ARM Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the company may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* Implementation of <> <> <> <>, optional - * as to be reenterable. - * - * Interface documentation refer to malloc.c. - */ - -#include -#include -#include -#include -#include - -#if DEBUG -#include -#else -#undef assert -#define assert(x) ((void)0) -#endif - -#ifndef MAX -#define MAX(a,b) ((a) >= (b) ? (a) : (b)) -#endif - -#define _SBRK_R(X) _sbrk_r(X) - -#ifdef _LIBC - -#include -#include - -#define RARG struct _reent *reent_ptr, -#define RONEARG struct _reent *reent_ptr -#define RCALL reent_ptr, -#define RONECALL reent_ptr - -#define MALLOC_LOCK __malloc_lock(reent_ptr) -#define MALLOC_UNLOCK __malloc_unlock(reent_ptr) - -#define RERRNO reent_ptr->_errno - -#define nano_malloc _malloc_r -#define nano_free _free_r -#define nano_realloc _realloc_r -#define nano_memalign _memalign_r -#define nano_valloc _valloc_r -#define nano_pvalloc _pvalloc_r -#define nano_calloc _calloc_r -#define nano_cfree _cfree_r -#define nano_malloc_usable_size _malloc_usable_size_r -#define nano_malloc_stats _malloc_stats_r -#define nano_mallinfo _mallinfo_r -#define nano_mallopt _mallopt_r - -#else /* ! _LIBC */ - -#define RARG -#define RONEARG -#define RCALL -#define RONECALL -#define MALLOC_LOCK -#define MALLOC_UNLOCK -#define RERRNO errno - -#define nano_malloc malloc -#define nano_free free -#define nano_realloc realloc -#define nano_memalign memalign -#define nano_valloc valloc -#define nano_pvalloc pvalloc -#define nano_calloc calloc -#define nano_cfree cfree -#define nano_malloc_usable_size malloc_usable_size -#define nano_malloc_stats malloc_stats -#define nano_mallinfo mallinfo -#define nano_mallopt mallopt -#endif /* ! _LIBC */ - -/* Redefine names to avoid conflict with user names */ -#define free_list __malloc_free_list -#define sbrk_start __malloc_sbrk_start -#define current_mallinfo __malloc_current_mallinfo - -#define ALIGN_PTR(ptr, align) \ - (((ptr) + (align) - (intptr_t)1) & ~((align) - (intptr_t)1)) -#define ALIGN_SIZE(size, align) \ - (((size) + (align) - (size_t)1) & ~((align) - (size_t)1)) - -/* Alignment of allocated block */ -#define MALLOC_ALIGN (8U) -#define CHUNK_ALIGN (sizeof(void*)) -#define MALLOC_PADDING ((MAX(MALLOC_ALIGN, CHUNK_ALIGN)) - CHUNK_ALIGN) - -/* as well as the minimal allocation size - * to hold a free pointer */ -#define MALLOC_MINSIZE (sizeof(void *)) -#define MALLOC_PAGE_ALIGN (0x1000) -#define MAX_ALLOC_SIZE (0x80000000U) - -typedef size_t malloc_size_t; - -typedef struct malloc_chunk -{ - /* -------------------------------------- - * chunk->| size | - * -------------------------------------- - * | Padding for alignment | - * | This includes padding inserted by | - * | the compiler (to align fields) and | - * | explicit padding inserted by this | - * | implementation. If any explicit | - * | padding is being used then the | - * | sizeof (size) bytes at | - * | mem_ptr - CHUNK_OFFSET must be | - * | initialized with the negative | - * | offset to size. | - * -------------------------------------- - * mem_ptr->| When allocated: data | - * | When freed: pointer to next free | - * | chunk | - * -------------------------------------- - */ - /* size of the allocated payload area, including size before - CHUNK_OFFSET */ - long size; - - /* since here, the memory is either the next free block, or data load */ - struct malloc_chunk * next; -}chunk; - - -#define CHUNK_OFFSET ((malloc_size_t)(&(((struct malloc_chunk *)0)->next))) - -/* size of smallest possible chunk. A memory piece smaller than this size - * won't be able to create a chunk */ -#define MALLOC_MINCHUNK (CHUNK_OFFSET + MALLOC_PADDING + MALLOC_MINSIZE) - -/* Forward data declarations */ -extern chunk * free_list; -extern char * sbrk_start; -extern struct mallinfo current_mallinfo; - -/* Forward function declarations */ -extern void * nano_malloc(RARG malloc_size_t); -extern void nano_free (RARG void * free_p); -extern void nano_cfree(RARG void * ptr); -extern void * nano_calloc(RARG malloc_size_t n, malloc_size_t elem); -extern void nano_malloc_stats(RONEARG); -extern malloc_size_t nano_malloc_usable_size(RARG void * ptr); -extern void * nano_realloc(RARG void * ptr, malloc_size_t size); -extern void * nano_memalign(RARG size_t align, size_t s); -extern int nano_mallopt(RARG int parameter_number, int parameter_value); -extern void * nano_valloc(RARG size_t s); -extern void * nano_pvalloc(RARG size_t s); - -static inline chunk * get_chunk_from_ptr(void * ptr) -{ - /* Assume that there is no explicit padding in the - chunk, and that the chunk starts at ptr - CHUNK_OFFSET. */ - chunk * c = (chunk *)((char *)ptr - CHUNK_OFFSET); - - /* c->size being negative indicates that there is explicit padding in - the chunk. In which case, c->size is currently the negative offset to - the true size. */ - if (c->size < 0) c = (chunk *)((char *)c + c->size); - return c; -} - -#ifdef DEFINE_MALLOC -/* List list header of free blocks */ -chunk * free_list = NULL; - -/* Starting point of memory allocated from system */ -char * sbrk_start = NULL; - -/** Function sbrk_aligned - * Algorithm: - * Use sbrk() to obtain more memory and ensure it is CHUNK_ALIGN aligned - * Optimise for the case that it is already aligned - only ask for extra - * padding after we know we need it - */ -static void* sbrk_aligned(RARG malloc_size_t s) -{ - char *p, *align_p; - - if (sbrk_start == NULL) sbrk_start = _SBRK_R(RCALL 0); - - p = _SBRK_R(RCALL s); - - /* sbrk returns -1 if fail to allocate */ - if (p == (void *)-1) - return p; - - align_p = (char*)ALIGN_PTR((uintptr_t)p, CHUNK_ALIGN); - if (align_p != p) - { - /* p is not aligned, ask for a few more bytes so that we have s - * bytes reserved from align_p. */ - p = _SBRK_R(RCALL align_p - p); - if (p == (void *)-1) - return p; - } - return align_p; -} - -/** Function nano_malloc - * Algorithm: - * Walk through the free list to find the first match. If fails to find - * one, call sbrk to allocate a new chunk. - */ -void * nano_malloc(RARG malloc_size_t s) -{ - chunk *p, *r; - char * ptr, * align_ptr; - int offset; - - malloc_size_t alloc_size; - - alloc_size = ALIGN_SIZE(s, CHUNK_ALIGN); /* size of aligned data load */ - alloc_size += MALLOC_PADDING; /* padding */ - alloc_size += CHUNK_OFFSET; /* size of chunk head */ - alloc_size = MAX(alloc_size, MALLOC_MINCHUNK); - - if (alloc_size >= MAX_ALLOC_SIZE || alloc_size < s) - { - RERRNO = ENOMEM; - return NULL; - } - - MALLOC_LOCK; - - p = free_list; - r = p; - - while (r) - { - int rem = r->size - alloc_size; - if (rem >= 0) - { - if (rem >= MALLOC_MINCHUNK) - { - if (p == r) - { - /* First item in the list, break it into two chunks - * and return the first one */ - r->size = alloc_size; - free_list = (chunk *)((char *)r + alloc_size); - free_list->size = rem; - free_list->next = r->next; - } else { - /* Any other item in the list. Split and return - * the first one */ - r->size = alloc_size; - p->next = (chunk *)((char *)r + alloc_size); - p->next->size = rem; - p->next->next = r->next; - } - } - /* Find a chunk that is exactly the size or slightly bigger - * than requested size, just return this chunk */ - else if (p == r) - { - /* Now it implies p==r==free_list. Move the free_list - * to next chunk */ - free_list = r->next; - } - else - { - /* Normal case. Remove it from free_list */ - p->next = r->next; - } - break; - } - p=r; - r=r->next; - } - - /* Failed to find a appropriate chunk. Ask for more memory */ - if (r == NULL) - { - r = sbrk_aligned(RCALL alloc_size); - - /* sbrk returns -1 if fail to allocate */ - if (r == (void *)-1) - { - /* sbrk didn't have the requested amount. Let's check - * if the last item in the free list is adjacent to the - * current heap end (sbrk(0)). In that case, only ask - * for the difference in size and merge them */ - p = free_list; - r = p; - - while (r) - { - p=r; - r=r->next; - } - - if (p != NULL && (char *)p + p->size == (char *)_SBRK_R(RCALL 0)) - { - /* The last free item has the heap end as neighbour. - * Let's ask for a smaller amount and merge */ - alloc_size -= p->size; - - if (sbrk_aligned(RCALL alloc_size) != (void *)-1) - { - p->size += alloc_size; - - /* Remove chunk from free_list. Since p != NULL there is - at least one chunk */ - r = free_list; - if (r->next == NULL) - { - /* There is only a single chunk, remove it */ - free_list = NULL; - } - else - { - /* Search for the chunk before the one to be removed */ - while (p != r->next) - { - r = r->next; - } - r->next = NULL; - } - r = p; - } - else - { - RERRNO = ENOMEM; - MALLOC_UNLOCK; - return NULL; - } - } - else - { - RERRNO = ENOMEM; - MALLOC_UNLOCK; - return NULL; - } - } - else - { - r->size = alloc_size; - } - } - MALLOC_UNLOCK; - - ptr = (char *)r + CHUNK_OFFSET; - - align_ptr = (char *)ALIGN_PTR((uintptr_t)ptr, MALLOC_ALIGN); - offset = align_ptr - ptr; - - if (offset) - { - /* Initialize sizeof (malloc_chunk.size) bytes at - align_ptr - CHUNK_OFFSET with negative offset to the - size field (at the start of the chunk). - - The negative offset to size from align_ptr - CHUNK_OFFSET is - the size of any remaining padding minus CHUNK_OFFSET. This is - equivalent to the total size of the padding, because the size of - any remaining padding is the total size of the padding minus - CHUNK_OFFSET. - - Note that the size of the padding must be at least CHUNK_OFFSET. - - The rest of the padding is not initialized. */ - *(long *)((char *)r + offset) = -offset; - } - - assert(align_ptr + size <= (char *)r + alloc_size); - return align_ptr; -} -#endif /* DEFINE_MALLOC */ - -#ifdef DEFINE_FREE -#define MALLOC_CHECK_DOUBLE_FREE - -/** Function nano_free - * Implementation of libc free. - * Algorithm: - * Maintain a global free chunk single link list, headed by global - * variable free_list. - * When free, insert the to-be-freed chunk into free list. The place to - * insert should make sure all chunks are sorted by address from low to - * high. Then merge with neighbor chunks if adjacent. - */ -void nano_free (RARG void * free_p) -{ - chunk * p_to_free; - chunk * p, * q; - - if (free_p == NULL) return; - - p_to_free = get_chunk_from_ptr(free_p); - - MALLOC_LOCK; - if (free_list == NULL) - { - /* Set first free list element */ - p_to_free->next = free_list; - free_list = p_to_free; - MALLOC_UNLOCK; - return; - } - - if (p_to_free < free_list) - { - if ((char *)p_to_free + p_to_free->size == (char *)free_list) - { - /* Chunk to free is just before the first element of - * free list */ - p_to_free->size += free_list->size; - p_to_free->next = free_list->next; - } - else - { - /* Insert before current free_list */ - p_to_free->next = free_list; - } - free_list = p_to_free; - MALLOC_UNLOCK; - return; - } - - q = free_list; - /* Walk through the free list to find the place for insert. */ - do - { - p = q; - q = q->next; - } while (q && q <= p_to_free); - - /* Now p <= p_to_free and either q == NULL or q > p_to_free - * Try to merge with chunks immediately before/after it. */ - - if ((char *)p + p->size == (char *)p_to_free) - { - /* Chunk to be freed is adjacent - * to a free chunk before it */ - p->size += p_to_free->size; - /* If the merged chunk is also adjacent - * to the chunk after it, merge again */ - if ((char *)p + p->size == (char *) q) - { - p->size += q->size; - p->next = q->next; - } - } -#ifdef MALLOC_CHECK_DOUBLE_FREE - else if ((char *)p + p->size > (char *)p_to_free) - { - /* Report double free fault */ - RERRNO = ENOMEM; - MALLOC_UNLOCK; - return; - } -#endif - else if ((char *)p_to_free + p_to_free->size == (char *) q) - { - /* Chunk to be freed is adjacent - * to a free chunk after it */ - p_to_free->size += q->size; - p_to_free->next = q->next; - p->next = p_to_free; - } - else - { - /* Not adjacent to any chunk. Just insert it. Resulting - * a fragment. */ - p_to_free->next = q; - p->next = p_to_free; - } - MALLOC_UNLOCK; -} -#endif /* DEFINE_FREE */ - -#ifdef DEFINE_CFREE -void nano_cfree(RARG void * ptr) -{ - nano_free(RCALL ptr); -} -#endif /* DEFINE_CFREE */ - -#ifdef DEFINE_CALLOC -/* Function nano_calloc - * Implement calloc simply by calling malloc and set zero */ -void * nano_calloc(RARG malloc_size_t n, malloc_size_t elem) -{ - malloc_size_t bytes; - void * mem; - - if (__builtin_mul_overflow (n, elem, &bytes)) - { - RERRNO = ENOMEM; - return NULL; - } - mem = nano_malloc(RCALL bytes); - if (mem != NULL) memset(mem, 0, bytes); - return mem; -} -#endif /* DEFINE_CALLOC */ - -#ifdef DEFINE_REALLOC -/* Function nano_realloc - * Implement realloc by malloc + memcpy */ -void * nano_realloc(RARG void * ptr, malloc_size_t size) -{ - void * mem; - chunk * p_to_realloc; - malloc_size_t old_size; - - if (ptr == NULL) return nano_malloc(RCALL size); - - if (size == 0) - { - nano_free(RCALL ptr); - return NULL; - } - - old_size = nano_malloc_usable_size(RCALL ptr); - if (size <= old_size && (old_size >> 1) < size) - return ptr; - - mem = nano_malloc(RCALL size); - if (mem != NULL) - { - if (old_size > size) - old_size = size; - memcpy(mem, ptr, old_size); - nano_free(RCALL ptr); - } - return mem; -} -#endif /* DEFINE_REALLOC */ - -#ifdef DEFINE_MALLINFO -struct mallinfo current_mallinfo={0,0,0,0,0,0,0,0,0,0}; - -struct mallinfo nano_mallinfo(RONEARG) -{ - char * sbrk_now; - chunk * pf; - size_t free_size = 0; - size_t total_size; - - MALLOC_LOCK; - - if (sbrk_start == NULL) total_size = 0; - else { - sbrk_now = _SBRK_R(RCALL 0); - - if (sbrk_now == (void *)-1) - total_size = (size_t)-1; - else - total_size = (size_t) (sbrk_now - sbrk_start); - } - - for (pf = free_list; pf; pf = pf->next) - free_size += pf->size; - - current_mallinfo.arena = total_size; - current_mallinfo.fordblks = free_size; - current_mallinfo.uordblks = total_size - free_size; - - MALLOC_UNLOCK; - return current_mallinfo; -} -#endif /* DEFINE_MALLINFO */ - -#ifdef DEFINE_MALLOC_STATS -void nano_malloc_stats(RONEARG) -{ - nano_mallinfo(RONECALL); - fiprintf(stderr, "max system bytes = %10u\n", - current_mallinfo.arena); - fiprintf(stderr, "system bytes = %10u\n", - current_mallinfo.arena); - fiprintf(stderr, "in use bytes = %10u\n", - current_mallinfo.uordblks); -} -#endif /* DEFINE_MALLOC_STATS */ - -#ifdef DEFINE_MALLOC_USABLE_SIZE -malloc_size_t nano_malloc_usable_size(RARG void * ptr) -{ - chunk * c = (chunk *)((char *)ptr - CHUNK_OFFSET); - int size_or_offset = c->size; - - if (size_or_offset < 0) - { - /* Padding is used. Excluding the padding size */ - c = (chunk *)((char *)c + c->size); - return c->size - CHUNK_OFFSET + size_or_offset; - } - return c->size - CHUNK_OFFSET; -} -#endif /* DEFINE_MALLOC_USABLE_SIZE */ - -#ifdef DEFINE_MEMALIGN -/* Function nano_memalign - * Allocate memory block aligned at specific boundary. - * align: required alignment. Must be power of 2. Return NULL - * if not power of 2. Undefined behavior is bigger than - * pointer value range. - * s: required size. - * Return: allocated memory pointer aligned to align - * Algorithm: Malloc a big enough block, padding pointer to aligned - * address, then truncate and free the tail if too big. - * Record the offset of align pointer and original pointer - * in the padding area. - */ -void * nano_memalign(RARG size_t align, size_t s) -{ - chunk * chunk_p; - malloc_size_t size_allocated, offset, ma_size, size_with_padding; - char * allocated, * aligned_p; - - /* Return NULL if align isn't power of 2 */ - if ((align & (align-1)) != 0) return NULL; - - align = MAX(align, MALLOC_ALIGN); - - /* Make sure ma_size does not overflow */ - if (s > __SIZE_MAX__ - CHUNK_ALIGN) - { - RERRNO = ENOMEM; - return NULL; - } - ma_size = ALIGN_SIZE(MAX(s, MALLOC_MINSIZE), CHUNK_ALIGN); - - /* Make sure size_with_padding does not overflow */ - if (ma_size > __SIZE_MAX__ - (align - MALLOC_ALIGN)) - { - RERRNO = ENOMEM; - return NULL; - } - size_with_padding = ma_size + (align - MALLOC_ALIGN); - - allocated = nano_malloc(RCALL size_with_padding); - if (allocated == NULL) return NULL; - - chunk_p = get_chunk_from_ptr(allocated); - aligned_p = (char *)ALIGN_PTR( - (uintptr_t)((char *)chunk_p + CHUNK_OFFSET), - (uintptr_t)align); - offset = aligned_p - ((char *)chunk_p + CHUNK_OFFSET); - - if (offset) - { - if (offset >= MALLOC_MINCHUNK) - { - /* Padding is too large, free it */ - chunk * front_chunk = chunk_p; - chunk_p = (chunk *)((char *)chunk_p + offset); - chunk_p->size = front_chunk->size - offset; - front_chunk->size = offset; - nano_free(RCALL (char *)front_chunk + CHUNK_OFFSET); - } - else - { - /* Padding is used. Need to set a jump offset for aligned pointer - * to get back to chunk head */ - assert(offset >= sizeof(int)); - *(long *)((char *)chunk_p + offset) = -offset; - } - } - - size_allocated = chunk_p->size; - if ((char *)chunk_p + size_allocated > - (aligned_p + ma_size + MALLOC_MINCHUNK)) - { - /* allocated much more than what's required for padding, free - * tail part */ - chunk * tail_chunk = (chunk *)(aligned_p + ma_size); - chunk_p->size = aligned_p + ma_size - (char *)chunk_p; - tail_chunk->size = size_allocated - chunk_p->size; - nano_free(RCALL (char *)tail_chunk + CHUNK_OFFSET); - } - return aligned_p; -} -#endif /* DEFINE_MEMALIGN */ - -#ifdef DEFINE_MALLOPT -int nano_mallopt(RARG int parameter_number, int parameter_value) -{ - return 0; -} -#endif /* DEFINE_MALLOPT */ - -#ifdef DEFINE_VALLOC -void * nano_valloc(RARG size_t s) -{ - return nano_memalign(RCALL MALLOC_PAGE_ALIGN, s); -} -#endif /* DEFINE_VALLOC */ - -#ifdef DEFINE_PVALLOC -void * nano_pvalloc(RARG size_t s) -{ - /* Make sure size given to nano_valloc does not overflow */ - if (s > __SIZE_MAX__ - MALLOC_PAGE_ALIGN) - { - RERRNO = ENOMEM; - return NULL; - } - return nano_valloc(RCALL ALIGN_SIZE(s, MALLOC_PAGE_ALIGN)); -} -#endif /* DEFINE_PVALLOC */ diff --git a/lib/stdlib/nrand48.c b/lib/stdlib/nrand48.c deleted file mode 100644 index cca0e5f..0000000 --- a/lib/stdlib/nrand48.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ - -#include "rand48.h" - -long -_nrand48_r (struct _reent *r, - unsigned short xseed[3]) -{ - __dorand48 (r, xseed); - return (long)((unsigned long) xseed[2] << 15) + - ((unsigned long) xseed[1] >> 1); -} - -#ifndef _REENT_ONLY -long -nrand48 (unsigned short xseed[3]) -{ - return _nrand48_r (_REENT, xseed); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/on_exit.c b/lib/stdlib/on_exit.c deleted file mode 100644 index 2eaf035..0000000 --- a/lib/stdlib/on_exit.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 1990 Regents of the University of California. - * All rights reserved. - * - * %sccs.include.redist.c% - * - * This function is a modified version of atexit.c - */ - -/* -FUNCTION -<>---request execution of function with argument at program exit - -INDEX - on_exit - -SYNOPSIS - #include - int on_exit (void (*<[function]>)(int, void *), void *<[arg]>); - -DESCRIPTION -You can use <> to enroll functions in a list of functions that -will be called when your program terminates normally. The argument is -a pointer to a user-defined function which takes two arguments. The -first is the status code passed to exit and the second argument is of type -pointer to void. The function must not return a result. The value -of <[arg]> is registered and passed as the argument to <[function]>. - -The functions are kept in a LIFO stack; that is, the last function -enrolled by <> or <> will be the first to execute when -your program exits. You can intermix functions using <> and -<>. - -There is no built-in limit to the number of functions you can enroll -in this list; however, after every group of 32 functions is enrolled, -<>/<> will call <> to get space for the next part -of the list. The initial list of 32 functions is statically allocated, so -you can always count on at least that many slots available. - -RETURNS -<> returns <<0>> if it succeeds in enrolling your function, -<<-1>> if it fails (possible only if no space was available for -<> to extend the list of functions). - -PORTABILITY -<> is a non-standard glibc extension - -Supporting OS subroutines required: None -*/ - -#include -#include -#include "atexit.h" - -#ifdef _REENT_SMALL - -#include "on_exit_args.h" - -/* force linking of static instance of _on_exit_args */ -const void * const __on_exit_dummy = &__on_exit_args; - -#endif /* def _REENT_SMALL */ - -/* - * Register a function to be performed at exit. - */ - -int -on_exit (void (*fn) (int, void *), - void *arg) -{ - return __register_exitproc (__et_onexit, (void (*)(void)) fn, arg, NULL); -} diff --git a/lib/stdlib/on_exit_args.c b/lib/stdlib/on_exit_args.c deleted file mode 100644 index 88f9ffd..0000000 --- a/lib/stdlib/on_exit_args.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Static instance of _on_exit_args struct. - * - * When _REENT_SMALL is used, _atexit struct only contains a pointer to - * _on_exit_args struct, so this was always allocated with malloc() - even for - * the first 32 calls of atexit()-like functions, which are guaranteed to - * succeed, but could fail because of "out of memory" error. This is even worse - * when _ATEXIT_DYNAMIC_ALLOC is _NOT_ defined, in which case malloc() is not - * used by internals of atexit()-like functions. In such configuration all calls - * to the functions that need _on_exit_args struct (on_exit() and - * __cxa_atexit()) would fail. - * - * Thats why a static instance of _on_exit_args struct is provided for - * _REENT_SMALL configuration. This way the first 32 calls to atexit()-like - * functions don't need malloc() and will always succeed. - * - * Because this struct is not needed for "normal" atexit(), it is used as a weak - * reference in __register_exitproc(), but any use of on_exit() or - * __cxa_atexit() will force it to be linked. - */ - -#include - -#ifdef _REENT_SMALL - -static struct _on_exit_args _on_exit_args_instance = {{_NULL}, {_NULL}, 0, 0}; - -struct _on_exit_args * const __on_exit_args = &_on_exit_args_instance; - -#endif /* def _REENT_SMALL */ diff --git a/lib/stdlib/on_exit_args.h b/lib/stdlib/on_exit_args.h deleted file mode 100644 index c54ad1e..0000000 --- a/lib/stdlib/on_exit_args.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef NEWLIB_CYGWIN_NEWLIB_LIBC_STDLIB_ON_EXIT_ARGS_H_ -#define NEWLIB_CYGWIN_NEWLIB_LIBC_STDLIB_ON_EXIT_ARGS_H_ - -#include - -#ifdef _REENT_SMALL - -extern struct _on_exit_args * const __on_exit_args; - -#endif /* def _REENT_SMALL */ - -#endif /* def NEWLIB_CYGWIN_NEWLIB_LIBC_STDLIB_ON_EXIT_ARGS_H_ */ diff --git a/lib/stdlib/putenv.c b/lib/stdlib/putenv.c deleted file mode 100644 index 10b0657..0000000 --- a/lib/stdlib/putenv.c +++ /dev/null @@ -1,30 +0,0 @@ -/*- - * Copyright (c) 1988 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that: (1) source distributions retain this entire copyright - * notice and comment, and (2) distributions including binaries display - * the following acknowledgement: ``This product includes software - * developed by the University of California, Berkeley and its contributors'' - * in the documentation or other materials provided with the distribution. - * Neither the name of the University nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#ifndef _REENT_ONLY - -#include -#include - -int -putenv (char *str) -{ - return _putenv_r (_REENT, str); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/putenv_r.c b/lib/stdlib/putenv_r.c deleted file mode 100644 index 459348b..0000000 --- a/lib/stdlib/putenv_r.c +++ /dev/null @@ -1,55 +0,0 @@ -/* This file may have been modified by DJ Delorie (Jan 1991). If so, -** these modifications are Copyright (C) 1991 DJ Delorie. -*/ - -/*- - * Copyright (c) 1988 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that: (1) source distributions retain this entire copyright - * notice and comment, and (2) distributions including binaries display - * the following acknowledgement: ``This product includes software - * developed by the University of California, Berkeley and its contributors'' - * in the documentation or other materials provided with the distribution. - * Neither the name of the University nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include -#include -#include - -#include "envlock.h" - -/* _putenv_r - reentrant version of putenv that either adds - or replaces the environment variable "name" - with "value" which is specified by str as "name=value". */ -int -_putenv_r (struct _reent *reent_ptr, - char *str) -{ - register char *p, *equal; - int rval; - - p = _strdup_r (reent_ptr, str); - - if (!p) - return 1; - - if (!(equal = strchr (p, '='))) - { - (void) _free_r (reent_ptr, p); - return 1; - } - - *equal = '\0'; - rval = _setenv_r (reent_ptr, p, equal + 1, 1); - (void) _free_r (reent_ptr, p); - - return rval; -} diff --git a/lib/stdlib/pvallocr.c b/lib/stdlib/pvallocr.c deleted file mode 100644 index afc2038..0000000 --- a/lib/stdlib/pvallocr.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_PVALLOC -#include "_mallocr.c" diff --git a/lib/stdlib/quick_exit.c b/lib/stdlib/quick_exit.c deleted file mode 100644 index 5ab2609..0000000 --- a/lib/stdlib/quick_exit.c +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * Copyright (c) 2011 David Chisnall - * Copyright (c) 2015 embedded brains GmbH - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#include -#include -#include - -/** - * Linked list of quick exit handlers. This is simpler than the atexit() - * version, because it is not required to support C++ destructors or - * DSO-specific cleanups. - */ -struct quick_exit_handler { - struct quick_exit_handler *next; - void (*cleanup)(void); -}; - -/** - * Lock protecting the handlers list. - */ -#ifndef __SINGLE_THREAD__ -__LOCK_INIT(static, __at_quick_exit_mutex); -#endif -/** - * Stack of cleanup handlers. These will be invoked in reverse order when - */ -static struct quick_exit_handler *handlers; - -int -at_quick_exit(void (*func)(void)) -{ - struct quick_exit_handler *h; - - h = malloc(sizeof(*h)); - - if (NULL == h) - return (1); - h->cleanup = func; -#ifndef __SINGLE_THREAD__ - __lock_acquire(__at_quick_exit_mutex); -#endif - h->next = handlers; - handlers = h; -#ifndef __SINGLE_THREAD__ - __lock_release(__at_quick_exit_mutex); -#endif - return (0); -} - -void -quick_exit(int status) -{ - struct quick_exit_handler *h; - - /* - * XXX: The C++ spec requires us to call std::terminate if there is an - * exception here. - */ - for (h = handlers; NULL != h; h = h->next) - h->cleanup(); - _exit(status); -} diff --git a/lib/stdlib/rand.c b/lib/stdlib/rand.c deleted file mode 100644 index ba9cc80..0000000 --- a/lib/stdlib/rand.c +++ /dev/null @@ -1,88 +0,0 @@ -/* -FUNCTION -<>, <>---pseudo-random numbers - -INDEX - rand -INDEX - srand -INDEX - rand_r - -SYNOPSIS - #include - int rand(void); - void srand(unsigned int <[seed]>); - int rand_r(unsigned int *<[seed]>); - -DESCRIPTION -<> returns a different integer each time it is called; each -integer is chosen by an algorithm designed to be unpredictable, so -that you can use <> when you require a random number. -The algorithm depends on a static variable called the ``random seed''; -starting with a given value of the random seed always produces the -same sequence of numbers in successive calls to <>. - -You can set the random seed using <>; it does nothing beyond -storing its argument in the static variable used by <>. You can -exploit this to make the pseudo-random sequence less predictable, if -you wish, by using some other unpredictable value (often the least -significant parts of a time-varying value) as the random seed before -beginning a sequence of calls to <>; or, if you wish to ensure -(for example, while debugging) that successive runs of your program -use the same ``random'' numbers, you can use <> to set the same -random seed at the outset. - -RETURNS -<> returns the next pseudo-random integer in sequence; it is a -number between <<0>> and <> (inclusive). - -<> does not return a result. - -NOTES -<> and <> are unsafe for multi-threaded applications. -<> is thread-safe and should be used instead. - - -PORTABILITY -<> is required by ANSI, but the algorithm for pseudo-random -number generation is not specified; therefore, even if you use -the same random seed, you cannot expect the same sequence of results -on two different systems. - -<> requires no supporting OS subroutines. -*/ - -#ifndef _REENT_ONLY - -#include -#include - -#ifdef _REENT_THREAD_LOCAL -_Thread_local unsigned long long _tls_rand_next = 1; -#endif - -void -srand (unsigned int seed) -{ - struct _reent *reent = _REENT; - - _REENT_CHECK_RAND48(reent); - _REENT_RAND_NEXT(reent) = seed; -} - -int -rand (void) -{ - struct _reent *reent = _REENT; - - /* This multiplier was obtained from Knuth, D.E., "The Art of - Computer Programming," Vol 2, Seminumerical Algorithms, Third - Edition, Addison-Wesley, 1998, p. 106 (line 26) & p. 108 */ - _REENT_CHECK_RAND48(reent); - _REENT_RAND_NEXT(reent) = - _REENT_RAND_NEXT(reent) * __extension__ 6364136223846793005LL + 1; - return (int)((_REENT_RAND_NEXT(reent) >> 32) & RAND_MAX); -} - -#endif /* _REENT_ONLY */ diff --git a/lib/stdlib/rand48.c b/lib/stdlib/rand48.c deleted file mode 100644 index 626b3ef..0000000 --- a/lib/stdlib/rand48.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ - -/* -FUNCTION - <>, <>, <>, <>, <>, <>, <>, <>, <>, <>---pseudo-random number generators and initialization routines - -INDEX - rand48 -INDEX - drand48 -INDEX - erand48 -INDEX - lrand48 -INDEX - nrand48 -INDEX - mrand48 -INDEX - jrand48 -INDEX - srand48 -INDEX - seed48 -INDEX - lcong48 - -SYNOPSIS - #include - double drand48(void); - double erand48(unsigned short <[xseed]>[3]); - long lrand48(void); - long nrand48(unsigned short <[xseed]>[3]); - long mrand48(void); - long jrand48(unsigned short <[xseed]>[3]); - void srand48(long <[seed]>); - unsigned short *seed48(unsigned short <[xseed]>[3]); - void lcong48(unsigned short <[p]>[7]); - -DESCRIPTION -The <> family of functions generates pseudo-random numbers -using a linear congruential algorithm working on integers 48 bits in size. -The particular formula employed is -r(n+1) = (a * r(n) + c) mod m -where the default values are -for the multiplicand a = 0xfdeece66d = 25214903917 and -the addend c = 0xb = 11. The modulo is always fixed at m = 2 ** 48. -r(n) is called the seed of the random number generator. - -For all the six generator routines described next, the first -computational step is to perform a single iteration of the algorithm. - -<> and <> -return values of type double. The full 48 bits of r(n+1) are -loaded into the mantissa of the returned value, with the exponent set -such that the values produced lie in the interval [0.0, 1.0]. - -<> and <> -return values of type long in the range -[0, 2**31-1]. The high-order (31) bits of -r(n+1) are loaded into the lower bits of the returned value, with -the topmost (sign) bit set to zero. - -<> and <> -return values of type long in the range -[-2**31, 2**31-1]. The high-order (32) bits of -r(n+1) are loaded into the returned value. - -<>, <>, and <> -use an internal buffer to store r(n). For these functions -the initial value of r(0) = 0x1234abcd330e = 20017429951246. - -On the other hand, <>, <>, and <> -use a user-supplied buffer to store the seed r(n), -which consists of an array of 3 shorts, where the zeroth member -holds the least significant bits. - -All functions share the same multiplicand and addend. - -<> is used to initialize the internal buffer r(n) of -<>, <>, and <> -such that the 32 bits of the seed value are copied into the upper 32 bits -of r(n), with the lower 16 bits of r(n) arbitrarily being set to 0x330e. -Additionally, the constant multiplicand and addend of the algorithm are -reset to the default values given above. - -<> also initializes the internal buffer r(n) of -<>, <>, and <>, -but here all 48 bits of the seed can be specified in an array of 3 shorts, -where the zeroth member specifies the lowest bits. Again, -the constant multiplicand and addend of the algorithm are -reset to the default values given above. -<> returns a pointer to an array of 3 shorts which contains -the old seed. -This array is statically allocated, thus its contents are lost after -each new call to <>. - -Finally, <> allows full control over the multiplicand and -addend used in <>, <>, <>, <>, -<>, and <>, -and the seed used in <>, <>, and <>. -An array of 7 shorts is passed as parameter; the first three shorts are -used to initialize the seed; the second three are used to initialize the -multiplicand; and the last short is used to initialize the addend. -It is thus not possible to use values greater than 0xffff as the addend. - -Note that all three methods of seeding the random number generator -always also set the multiplicand and addend for any of the six -generator calls. - -For a more powerful random number generator, see <>. - -PORTABILITY -SUS requires these functions. - -No supporting OS subroutines are required. -*/ - -#include "rand48.h" - -void -__dorand48 (struct _reent *r, - unsigned short xseed[3]) -{ - unsigned long accu; - unsigned short temp[2]; - - _REENT_CHECK_RAND48(r); - accu = (unsigned long) __rand48_mult[0] * (unsigned long) xseed[0] + - (unsigned long) __rand48_add; - temp[0] = (unsigned short) accu; /* lower 16 bits */ - accu >>= sizeof(unsigned short) * 8; - accu += (unsigned long) __rand48_mult[0] * (unsigned long) xseed[1] + - (unsigned long) __rand48_mult[1] * (unsigned long) xseed[0]; - temp[1] = (unsigned short) accu; /* middle 16 bits */ - accu >>= sizeof(unsigned short) * 8; - accu += __rand48_mult[0] * xseed[2] + __rand48_mult[1] * xseed[1] + __rand48_mult[2] * xseed[0]; - xseed[0] = temp[0]; - xseed[1] = temp[1]; - xseed[2] = (unsigned short) accu; -} diff --git a/lib/stdlib/rand48.h b/lib/stdlib/rand48.h deleted file mode 100644 index 26455e3..0000000 --- a/lib/stdlib/rand48.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ - -#ifndef _RAND48_H_ -#define _RAND48_H_ - -#include -#include - -extern void __dorand48 (struct _reent *r, unsigned short[3]); -#define __rand48_seed _REENT_RAND48_SEED(r) -#define __rand48_mult _REENT_RAND48_MULT(r) -#define __rand48_add _REENT_RAND48_ADD(r) - -#if 0 -/* following values are defined in */ -#define RAND48_SEED_0 (0x330e) -#define RAND48_SEED_1 (0xabcd) -#define RAND48_SEED_2 (0x1234) -#define RAND48_MULT_0 (0xe66d) -#define RAND48_MULT_1 (0xdeec) -#define RAND48_MULT_2 (0x0005) -#define RAND48_ADD (0x000b) -#endif - -#endif /* _RAND48_H_ */ diff --git a/lib/stdlib/rand_r.c b/lib/stdlib/rand_r.c deleted file mode 100644 index 0670285..0000000 --- a/lib/stdlib/rand_r.c +++ /dev/null @@ -1,37 +0,0 @@ -#include - -/* Pseudo-random generator based on Minimal Standard by - Lewis, Goodman, and Miller in 1969. - - I[j+1] = a*I[j] (mod m) - - where a = 16807 - m = 2147483647 - - Using Schrage's algorithm, a*I[j] (mod m) can be rewritten as: - - a*(I[j] mod q) - r*{I[j]/q} if >= 0 - a*(I[j] mod q) - r*{I[j]/q} + m otherwise - - where: {} denotes integer division - q = {m/a} = 127773 - r = m (mod a) = 2836 - - note that the seed value of 0 cannot be used in the calculation as - it results in 0 itself -*/ - -int -rand_r (unsigned int *seed) -{ - long k; - long s = (long)(*seed); - if (s == 0) - s = 0x12345987; - k = s / 127773; - s = 16807 * (s - k * 127773) - 2836 * k; - if (s < 0) - s += 2147483647; - (*seed) = (unsigned int)s; - return (int)(s & RAND_MAX); -} diff --git a/lib/stdlib/random.c b/lib/stdlib/random.c deleted file mode 100644 index 131dc05..0000000 --- a/lib/stdlib/random.c +++ /dev/null @@ -1,82 +0,0 @@ -/* -FUNCTION -<>, <>---pseudo-random numbers - -INDEX - random -INDEX - srandom - -SYNOPSIS - #define _XOPEN_SOURCE 500 - #include - long int random(void); - void srandom(unsigned int <[seed]>); - - - -DESCRIPTION -<> returns a different integer each time it is called; each -integer is chosen by an algorithm designed to be unpredictable, so -that you can use <> when you require a random number. -The algorithm depends on a static variable called the ``random seed''; -starting with a given value of the random seed always produces the -same sequence of numbers in successive calls to <>. - -You can set the random seed using <>; it does nothing beyond -storing its argument in the static variable used by <>. You can -exploit this to make the pseudo-random sequence less predictable, if -you wish, by using some other unpredictable value (often the least -significant parts of a time-varying value) as the random seed before -beginning a sequence of calls to <>; or, if you wish to ensure -(for example, while debugging) that successive runs of your program -use the same ``random'' numbers, you can use <> to set the same -random seed at the outset. - -RETURNS -<> returns the next pseudo-random integer in sequence; it is a -number between <<0>> and <> (inclusive). - -<> does not return a result. - -NOTES -<> and <> are unsafe for multi-threaded applications. - -_XOPEN_SOURCE may be any value >= 500. - -PORTABILITY -<> is required by XSI. This implementation uses the same -algorithm as <>. - -<> requires no supporting OS subroutines. -*/ - -#ifndef _REENT_ONLY - -#include -#include - -void -srandom (unsigned int seed) -{ - struct _reent *reent = _REENT; - - _REENT_CHECK_RAND48(reent); - _REENT_RAND_NEXT(reent) = seed; -} - -long int -random (void) -{ - struct _reent *reent = _REENT; - - /* This multiplier was obtained from Knuth, D.E., "The Art of - Computer Programming," Vol 2, Seminumerical Algorithms, Third - Edition, Addison-Wesley, 1998, p. 106 (line 26) & p. 108 */ - _REENT_CHECK_RAND48(reent); - _REENT_RAND_NEXT(reent) = - _REENT_RAND_NEXT(reent) * __extension__ 6364136223846793005LL + 1; - return (long int)((_REENT_RAND_NEXT(reent) >> 32) & RAND_MAX); -} - -#endif /* _REENT_ONLY */ diff --git a/lib/stdlib/realloc.c b/lib/stdlib/realloc.c deleted file mode 100644 index 999e8e0..0000000 --- a/lib/stdlib/realloc.c +++ /dev/null @@ -1,21 +0,0 @@ -#ifdef MALLOC_PROVIDED -int _dummy_realloc = 1; -#else -/* realloc.c -- a wrapper for realloc_r. */ - -#include <_ansi.h> -#include -#include -#include - -#ifndef _REENT_ONLY - -void * -realloc (void *ap, - size_t nbytes) -{ - return _realloc_r (_REENT, ap, nbytes); -} - -#endif -#endif /* MALLOC_PROVIDED */ diff --git a/lib/stdlib/reallocarray.c b/lib/stdlib/reallocarray.c deleted file mode 100644 index d1f63c6..0000000 --- a/lib/stdlib/reallocarray.c +++ /dev/null @@ -1,35 +0,0 @@ -/* $OpenBSD: reallocarray.c,v 1.2 2014/12/08 03:45:00 bcook Exp $ */ -/* - * Copyright (c) 2008 Otto Moerbeek - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include -#include -#include -#include -#include - -void * -reallocarray(void *optr, size_t nmemb, size_t size) -{ - ptrdiff_t bytes; - - if (__builtin_mul_overflow (nmemb, size, &bytes)) - { - errno = ENOMEM; - return NULL; - } - return realloc(optr, bytes); -} diff --git a/lib/stdlib/reallocf.c b/lib/stdlib/reallocf.c deleted file mode 100644 index d62752a..0000000 --- a/lib/stdlib/reallocf.c +++ /dev/null @@ -1,53 +0,0 @@ -/*- - * Copyright (c) 1998, M. Warner Losh - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* Documented in malloc.c. */ - -#include - -#include - -void * -_reallocf_r (struct _reent *reentptr, - void *ptr, - size_t size) -{ - void *nptr; - - nptr = _realloc_r(reentptr, ptr, size); - if (!nptr && ptr) - _free_r(reentptr, ptr); - return (nptr); -} - -#ifndef _REENT_ONLY -void * -reallocf (void *ptr, - size_t size) -{ - return _reallocf_r(_REENT, ptr, size); -} -#endif diff --git a/lib/stdlib/reallocr.c b/lib/stdlib/reallocr.c deleted file mode 100644 index 45c21d2..0000000 --- a/lib/stdlib/reallocr.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_REALLOC -#include "_mallocr.c" diff --git a/lib/stdlib/rpmatch.c b/lib/stdlib/rpmatch.c deleted file mode 100644 index 42a3513..0000000 --- a/lib/stdlib/rpmatch.c +++ /dev/null @@ -1,82 +0,0 @@ -/* -FUNCTION -<>---determine whether response to question is affirmative or negative - -INDEX - rpmatch - -SYNOPSIS - #include - int rpmatch(const char *<[response]>); - -DESCRIPTION -The <> function determines whether <[response]> is an affirmative -or negative response to a question according to the current locale. - -RETURNS -<> returns 1 if <[response]> is affirmative, 0 if negative, or -1 -if not recognized as either. - -PORTABILITY -<> is a BSD extension also found in glibc. - -NOTES -No supporting OS subroutines are required. -*/ - -/* This code is originally taken from FreeBSD. */ -/*- - * Copyright (c) 2004-2005 Tim J. Robbins. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include -#include -#include - -int -rpmatch (const char *response) -{ - regex_t yes, no; - int ret; - - if (regcomp(&yes, nl_langinfo(YESEXPR), REG_EXTENDED|REG_NOSUB) != 0) - return (-1); - if (regcomp(&no, nl_langinfo(NOEXPR), REG_EXTENDED|REG_NOSUB) != 0) { - regfree(&yes); - return (-1); - } - if (regexec(&yes, response, 0, NULL, 0) == 0) - ret = 1; - else if (regexec(&no, response, 0, NULL, 0) == 0) - ret = 0; - else - ret = -1; - regfree(&yes); - regfree(&no); - return (ret); -} diff --git a/lib/stdlib/sb_charsets.c b/lib/stdlib/sb_charsets.c deleted file mode 100644 index 4984a2f..0000000 --- a/lib/stdlib/sb_charsets.c +++ /dev/null @@ -1,813 +0,0 @@ -#include -#include - -#ifdef _MB_CAPABLE -#ifdef _MB_EXTENDED_CHARSETS_ISO -/* Tables for the ISO-8859-x to UTF conversion. The first index into the - table is a value computed from the value x (function __iso_8859_index), - the second index is the value of the incoming character - 0xa0. - Values < 0xa0 don't have to be converted anyway. */ -wchar_t __iso_8859_conv[14][0x60] = { - /* ISO-8859-2 */ - { 0xa0, 0x104, 0x2d8, 0x141, 0xa4, 0x13d, 0x15a, 0xa7, - 0xa8, 0x160, 0x15e, 0x164, 0x179, 0xad, 0x17d, 0x17b, - 0xb0, 0x105, 0x2db, 0x142, 0xb4, 0x13e, 0x15b, 0x2c7, - 0xb8, 0x161, 0x15f, 0x165, 0x17a, 0x2dd, 0x17e, 0x17c, - 0x154, 0xc1, 0xc2, 0x102, 0xc4, 0x139, 0x106, 0xc7, - 0x10c, 0xc9, 0x118, 0xcb, 0x11a, 0xcd, 0xce, 0x10e, - 0x110, 0x143, 0x147, 0xd3, 0xd4, 0x150, 0xd6, 0xd7, - 0x158, 0x16e, 0xda, 0x170, 0xdc, 0xdd, 0x162, 0xdf, - 0x155, 0xe1, 0xe2, 0x103, 0xe4, 0x13a, 0x107, 0xe7, - 0x10d, 0xe9, 0x119, 0xeb, 0x11b, 0xed, 0xee, 0x10f, - 0x111, 0x144, 0x148, 0xf3, 0xf4, 0x151, 0xf6, 0xf7, - 0x159, 0x16f, 0xfa, 0x171, 0xfc, 0xfd, 0x163, 0x2d9 }, - /* ISO-8859-3 */ - { 0xa0, 0x126, 0x2d8, 0xa3, 0xa4, 0xf7f5, 0x124, 0xa7, - 0xa8, 0x130, 0x15e, 0x11e, 0x134, 0xad, 0xf7f6, 0x17b, - 0xb0, 0x127, 0xb2, 0xb3, 0xb4, 0xb5, 0x125, 0xb7, - 0xb8, 0x131, 0x15f, 0x11f, 0x135, 0xbd, 0xf7f7, 0x17c, - 0xc0, 0xc1, 0xc2, 0xf7f8, 0xc4, 0x10a, 0x108, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xf7f9, 0xd1, 0xd2, 0xd3, 0xd4, 0x120, 0xd6, 0xd7, - 0x11c, 0xd9, 0xda, 0xdb, 0xdc, 0x16c, 0x15c, 0xdf, - 0xe0, 0xe1, 0xe2, 0xf7fa, 0xe4, 0x10b, 0x109, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0xf7fb, 0xf1, 0xf2, 0xf3, 0xf4, 0x121, 0xf6, 0xf7, - 0x11d, 0xf9, 0xfa, 0xfb, 0xfc, 0x16d, 0x15d, 0x2d9 }, - /* ISO-8859-4 */ - { 0xa0, 0x104, 0x138, 0x156, 0xa4, 0x128, 0x13b, 0xa7, - 0xa8, 0x160, 0x112, 0x122, 0x166, 0xad, 0x17d, 0xaf, - 0xb0, 0x105, 0x2db, 0x157, 0xb4, 0x129, 0x13c, 0x2c7, - 0xb8, 0x161, 0x113, 0x123, 0x167, 0x14a, 0x17e, 0x14b, - 0x100, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x12e, - 0x10c, 0xc9, 0x118, 0xcb, 0x116, 0xcd, 0xce, 0x12a, - 0x110, 0x145, 0x14c, 0x136, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0x172, 0xda, 0xdb, 0xdc, 0x168, 0x16a, 0xdf, - 0x101, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x12f, - 0x10d, 0xe9, 0x119, 0xeb, 0x117, 0xed, 0xee, 0x12b, - 0x111, 0x146, 0x14d, 0x137, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0x173, 0xfa, 0xfb, 0xfc, 0x169, 0x16b, 0x2d9 }, - /* ISO-8859-5 */ - { 0xa0, 0x401, 0x402, 0x403, 0x404, 0x405, 0x406, 0x407, - 0x408, 0x409, 0x40a, 0x40b, 0x40c, 0xad, 0x40e, 0x40f, - 0x410, 0x411, 0x412, 0x413, 0x414, 0x415, 0x416, 0x417, - 0x418, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, 0x41f, - 0x420, 0x421, 0x422, 0x423, 0x424, 0x425, 0x426, 0x427, - 0x428, 0x429, 0x42a, 0x42b, 0x42c, 0x42d, 0x42e, 0x42f, - 0x430, 0x431, 0x432, 0x433, 0x434, 0x435, 0x436, 0x437, - 0x438, 0x439, 0x43a, 0x43b, 0x43c, 0x43d, 0x43e, 0x43f, - 0x440, 0x441, 0x442, 0x443, 0x444, 0x445, 0x446, 0x447, - 0x448, 0x449, 0x44a, 0x44b, 0x44c, 0x44d, 0x44e, 0x44f, - 0x2116, 0x451, 0x452, 0x453, 0x454, 0x455, 0x456, 0x457, - 0x458, 0x459, 0x45a, 0x45b, 0x45c, 0xa7, 0x45e, 0x45f }, - /* ISO-8859-6 */ - { 0xa0, 0xf7c8, 0xf7c9, 0xf7ca, 0xa4, 0xf7cb, 0xf7cc, 0xf7cd, - 0xf7ce, 0xf7cf, 0xf7d0, 0xf7d1, 0x60c, 0xad, 0xf7d2, 0xf7d3, - 0xf7d4, 0xf7d5, 0xf7d6, 0xf7d7, 0xf7d8, 0xf7d9, 0xf7da, 0xf7db, - 0xf7dc, 0xf7dd, 0xf7de, 0x61b, 0xf7df, 0xf7e0, 0xf7e1, 0x61f, - 0xf7e2, 0x621, 0x622, 0x623, 0x624, 0x625, 0x626, 0x627, - 0x628, 0x629, 0x62a, 0x62b, 0x62c, 0x62d, 0x62e, 0x62f, - 0x630, 0x631, 0x632, 0x633, 0x634, 0x635, 0x636, 0x637, - 0x638, 0x639, 0x63a, 0xf7e3, 0xf7e4, 0xf7e5, 0xf7e6, 0xf7e7, - 0x640, 0x641, 0x642, 0x643, 0x644, 0x645, 0x646, 0x647, - 0x648, 0x649, 0x64a, 0x64b, 0x64c, 0x64d, 0x64e, 0x64f, - 0x650, 0x651, 0x652, 0xf7e8, 0xf7e9, 0xf7ea, 0xf7eb, 0xf7ec, - 0xf7ed, 0xf7ee, 0xf7ef, 0xf7f0, 0xf7f1, 0xf7f2, 0xf7f3, 0xf7f4 }, - /* ISO-8859-7 */ - { 0xa0, 0x2bd, 0x2bc, 0xa3, 0xf7c2, 0xf7c3, 0xa6, 0xa7, - 0xa8, 0xa9, 0xf7c4, 0xab, 0xac, 0xad, 0xf7c5, 0x2015, - 0xb0, 0xb1, 0xb2, 0xb3, 0x384, 0x385, 0x386, 0xb7, - 0x388, 0x389, 0x38a, 0xbb, 0x38c, 0xbd, 0x38e, 0x38f, - 0x390, 0x391, 0x392, 0x393, 0x394, 0x395, 0x396, 0x397, - 0x398, 0x399, 0x39a, 0x39b, 0x39c, 0x39d, 0x39e, 0x39f, - 0x3a0, 0x3a1, 0xf7c6, 0x3a3, 0x3a4, 0x3a5, 0x3a6, 0x3a7, - 0x3a8, 0x3a9, 0x3aa, 0x3ab, 0x3ac, 0x3ad, 0x3ae, 0x3af, - 0x3b0, 0x3b1, 0x3b2, 0x3b3, 0x3b4, 0x3b5, 0x3b6, 0x3b7, - 0x3b8, 0x3b9, 0x3ba, 0x3bb, 0x3bc, 0x3bd, 0x3be, 0x3bf, - 0x3c0, 0x3c1, 0x3c2, 0x3c3, 0x3c4, 0x3c5, 0x3c6, 0x3c7, - 0x3c8, 0x3c9, 0x3ca, 0x3cb, 0x3cc, 0x3cd, 0x3ce, 0xf7c7 }, - /* ISO-8859-8 */ - { 0xa0, 0xf79c, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xd7, 0xab, 0xac, 0xad, 0xae, 0x203e, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xf7, 0xbb, 0xbc, 0xbd, 0xbe, 0xf79d, - 0xf79e, 0xf79f, 0xf7a0, 0xf7a1, 0xf7a2, 0xf7a3, 0xf7a4, 0xf7a5, - 0xf7a6, 0xf7a7, 0xf7a8, 0xf7a9, 0xf7aa, 0xf7ab, 0xf7ac, 0xf7ad, - 0xf7ae, 0xf7af, 0xf7b0, 0xf7b1, 0xf7b2, 0xf7b3, 0xf7b4, 0xf7b5, - 0xf7b6, 0xf7b7, 0xf7b8, 0xf7b9, 0xf7ba, 0xf7bb, 0xf7bc, 0x2017, - 0x5d0, 0x5d1, 0x5d2, 0x5d3, 0x5d4, 0x5d5, 0x5d6, 0x5d7, - 0x5d8, 0x5d9, 0x5da, 0x5db, 0x5dc, 0x5dd, 0x5de, 0x5df, - 0x5e0, 0x5e1, 0x5e2, 0x5e3, 0x5e4, 0x5e5, 0x5e6, 0x5e7, - 0x5e8, 0x5e9, 0x5ea, 0xf7bd, 0xf7be, 0xf7bf, 0xf7c0, 0xf7c1 }, - /* ISO-8859-9 */ - { 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0x11e, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x130, 0x15e, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0x11f, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x131, 0x15f, 0xff }, - /* ISO-8859-10 */ - { 0xa0, 0x104, 0x112, 0x122, 0x12a, 0x128, 0x136, 0xa7, - 0x13b, 0x110, 0x160, 0x166, 0x17d, 0xad, 0x16a, 0x14a, - 0xb0, 0x105, 0x113, 0x123, 0x12b, 0x129, 0x137, 0xb7, - 0x13c, 0x111, 0x161, 0x167, 0x17e, 0x2015, 0x16b, 0x14b, - 0x100, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x12e, - 0x10c, 0xc9, 0x118, 0xcb, 0x116, 0xcd, 0xce, 0xcf, - 0xd0, 0x145, 0x14c, 0xd3, 0xd4, 0xd5, 0xd6, 0x168, - 0xd8, 0x172, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0x101, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x12f, - 0x10d, 0xe9, 0x119, 0xeb, 0x117, 0xed, 0xee, 0xef, - 0xf0, 0x146, 0x14d, 0xf3, 0xf4, 0xf5, 0xf6, 0x169, - 0xf8, 0x173, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x138 }, - /* ISO-8859-11 */ - { 0xa0, 0xe01, 0xe02, 0xe03, 0xe04, 0xe05, 0xe06, 0xe07, - 0xe08, 0xe09, 0xe0a, 0xe0b, 0xe0c, 0xe0d, 0xe0e, 0xe0f, - 0xe10, 0xe11, 0xe12, 0xe13, 0xe14, 0xe15, 0xe16, 0xe17, - 0xe18, 0xe19, 0xe1a, 0xe1b, 0xe1c, 0xe1d, 0xe1e, 0xe1f, - 0xe20, 0xe21, 0xe22, 0xe23, 0xe24, 0xe25, 0xe26, 0xe27, - 0xe28, 0xe29, 0xe2a, 0xe2b, 0xe2c, 0xe2d, 0xe2e, 0xe2f, - 0xe30, 0xe31, 0xe32, 0xe33, 0xe34, 0xe35, 0xe36, 0xe37, - 0xe38, 0xe39, 0xe3a, 0xdb, 0xdc, 0xdd, 0xde, 0xe3f, - 0xe40, 0xe41, 0xe42, 0xe43, 0xe44, 0xe45, 0xe46, 0xe47, - 0xe48, 0xe49, 0xe4a, 0xe4b, 0xe4c, 0xe4d, 0xe4e, 0xe4f, - 0xe50, 0xe51, 0xe52, 0xe53, 0xe54, 0xe55, 0xe56, 0xe57, - 0xe58, 0xe59, 0xe5a, 0xe5b, 0xe31, 0xe34, 0xe47, 0xff }, - /* ISO-8859-12 doesn't exist. The below code decrements the index - into the table by one for ISO numbers > 12. */ - /* ISO-8859-13 */ - { 0xa0, 0x201d, 0xa2, 0xa3, 0xa4, 0x201e, 0xa6, 0xa7, - 0xd8, 0xa9, 0x156, 0xab, 0xac, 0xad, 0xae, 0xc6, - 0xb0, 0xb1, 0xb2, 0xb3, 0x201c, 0xb5, 0xb6, 0xb7, - 0xf8, 0xb9, 0x157, 0xbb, 0xbc, 0xbd, 0xbe, 0xe6, - 0x104, 0x12e, 0x100, 0x106, 0xc4, 0xc5, 0x118, 0x112, - 0x10c, 0xc9, 0x179, 0x116, 0x122, 0x136, 0x12a, 0x13b, - 0x160, 0x143, 0x145, 0xd3, 0x14c, 0xd5, 0xd6, 0xd7, - 0x172, 0x141, 0x15a, 0x16a, 0xdc, 0x17b, 0x17d, 0xdf, - 0x105, 0x12f, 0x101, 0x107, 0xe4, 0xe5, 0x119, 0x113, - 0x10d, 0xe9, 0x17a, 0x117, 0x123, 0x137, 0x12b, 0x13c, - 0x161, 0x144, 0x146, 0xf3, 0x14d, 0xf5, 0xf6, 0xf7, - 0x173, 0x142, 0x15b, 0x16b, 0xfc, 0x17c, 0x17e, 0x2019 }, - /* ISO-8859-14 */ - { 0xa0, 0x1e02, 0x1e03, 0xa3, 0x10a, 0x10b, 0x1e0a, 0xa7, - 0x1e80, 0xa9, 0x1e82, 0x1e0b, 0x1ef2, 0xad, 0xae, 0x178, - 0x1e1e, 0x1e1f, 0x120, 0x121, 0x1e40, 0x1e41, 0xb6, 0x1e56, - 0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0x174, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0x1e6a, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x176, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0x175, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x1e6b, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x177, 0xff }, - /* ISO-8859-15 */ - { 0xa0, 0xa1, 0xa2, 0xa3, 0x20ac, 0xa5, 0x160, 0xa7, - 0x161, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0x17d, 0xb5, 0xb6, 0xb7, - 0x17e, 0xb9, 0xba, 0xbb, 0x152, 0x153, 0x178, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff }, - /* ISO-8859-16 */ - { 0xa0, 0x104, 0x105, 0x141, 0x20ac, 0x201e, 0x160, 0xa7, - 0x161, 0xa9, 0x218, 0xab, 0x179, 0xad, 0x17a, 0x17b, - 0xb0, 0xb1, 0x10c, 0x142, 0x17d, 0x201d, 0xb6, 0xb7, - 0x17e, 0x10d, 0x219, 0xbb, 0x152, 0x153, 0x178, 0x17c, - 0xc0, 0xc1, 0xc2, 0x102, 0xc4, 0x106, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0x110, 0x143, 0xd2, 0xd3, 0xd4, 0x150, 0xd6, 0x15a, - 0x170, 0xd9, 0xda, 0xdb, 0xdc, 0x118, 0x21a, 0xdf, - 0xe0, 0xe1, 0xe2, 0x103, 0xe4, 0x107, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0x111, 0x144, 0xf2, 0xf3, 0xf4, 0x151, 0xf6, 0x15b, - 0x171, 0xf9, 0xfa, 0xfb, 0xfc, 0x119, 0x21b, 0xff } -}; -#endif /* _MB_EXTENDED_CHARSETS_ISO */ - -#ifdef _MB_EXTENDED_CHARSETS_WINDOWS -/* Tables for the Windows default singlebyte ANSI codepage conversion. - The first index into the table is a value computed from the codepage - value (function __cp_index), the second index is the value of the - incoming character - 0x80. - Values < 0x80 don't have to be converted anyway. */ -wchar_t __cp_conv[27][0x80] = { - /* CP437 */ - { 0xc7, 0xfc, 0xe9, 0xe2, 0xe4, 0xe0, 0xe5, 0xe7, - 0xea, 0xeb, 0xe8, 0xef, 0xee, 0xec, 0xc4, 0xc5, - 0xc9, 0xe6, 0xc6, 0xf4, 0xf6, 0xf2, 0xfb, 0xf9, - 0xff, 0xd6, 0xdc, 0xa2, 0xa3, 0xa5, 0x20a7, 0x192, - 0xe1, 0xed, 0xf3, 0xfa, 0xf1, 0xd1, 0xaa, 0xba, - 0xbf, 0x2310, 0xac, 0xbd, 0xbc, 0xa1, 0xab, 0xbb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x3b1, 0xdf, 0x393, 0x3c0, 0x3a3, 0x3c3, 0xb5, 0x3c4, - 0x3a6, 0x398, 0x3a9, 0x3b4, 0x221e, 0x3c6, 0x3b5, 0x2229, - 0x2261, 0xb1, 0x2265, 0x2264, 0x2320, 0x2321, 0xf7, 0x2248, - 0xb0, 0x2219, 0xb7, 0x221a, 0x207f, 0xb2, 0x25a0, 0xa0 }, - /* CP720 */ - { 0x80, 0x81, 0xe9, 0xe2, 0x84, 0xe0, 0x86, 0xe7, - 0xea, 0xeb, 0xe8, 0xef, 0xee, 0x8d, 0x8e, 0x8f, - 0x90, 0x651, 0x652, 0xf4, 0xa4, 0x640, 0xfb, 0xf9, - 0x621, 0x622, 0x623, 0x624, 0xa3, 0x625, 0x626, 0x627, - 0x628, 0x629, 0x62a, 0x62b, 0x62c, 0x62d, 0x62e, 0x62f, - 0x630, 0x631, 0x632, 0x633, 0x634, 0x635, 0xab, 0xbb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x636, 0x637, 0x638, 0x639, 0x63a, 0x641, 0xb5, 0x642, - 0x643, 0x644, 0x645, 0x646, 0x647, 0x648, 0x649, 0x64a, - 0x2261, 0x64b, 0x64c, 0x64d, 0x64e, 0x64f, 0x650, 0x2248, - 0xb0, 0x2219, 0xb7, 0x221a, 0x207f, 0xb2, 0x25a0, 0xa0 }, - /* CP737 */ - { 0x391, 0x392, 0x393, 0x394, 0x395, 0x396, 0x397, 0x398, - 0x399, 0x39a, 0x39b, 0x39c, 0x39d, 0x39e, 0x39f, 0x3a0, - 0x3a1, 0x3a3, 0x3a4, 0x3a5, 0x3a6, 0x3a7, 0x3a8, 0x3a9, - 0x3b1, 0x3b2, 0x3b3, 0x3b4, 0x3b5, 0x3b6, 0x3b7, 0x3b8, - 0x3b9, 0x3ba, 0x3bb, 0x3bc, 0x3bd, 0x3be, 0x3bf, 0x3c0, - 0x3c1, 0x3c3, 0x3c2, 0x3c4, 0x3c5, 0x3c6, 0x3c7, 0x3c8, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x3c9, 0x3ac, 0x3ad, 0x3ae, 0x3ca, 0x3af, 0x3cc, 0x3cd, - 0x3cb, 0x3ce, 0x386, 0x388, 0x389, 0x38a, 0x38c, 0x38e, - 0x38f, 0xb1, 0x2265, 0x2264, 0x3aa, 0x3ab, 0xf7, 0x2248, - 0xb0, 0x2219, 0xb7, 0x221a, 0x207f, 0xb2, 0x25a0, 0xa0 }, - /* CP775 */ - { 0x106, 0xfc, 0xe9, 0x101, 0xe4, 0x123, 0xe5, 0x107, - 0x142, 0x113, 0x156, 0x157, 0x12b, 0x179, 0xc4, 0xc5, - 0xc9, 0xe6, 0xc6, 0x14d, 0xf6, 0x122, 0xa2, 0x15a, - 0x15b, 0xd6, 0xdc, 0xf8, 0xa3, 0xd8, 0xd7, 0xa4, - 0x100, 0x12a, 0xf3, 0x17b, 0x17c, 0x17a, 0x201d, 0xa6, - 0xa9, 0xae, 0xac, 0xbd, 0xbc, 0x141, 0xab, 0xbb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x104, 0x10c, 0x118, - 0x116, 0x2563, 0x2551, 0x2557, 0x255d, 0x12e, 0x160, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x172, 0x16a, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x17d, - 0x105, 0x10d, 0x119, 0x117, 0x12f, 0x161, 0x173, 0x16b, - 0x17e, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0xd3, 0xdf, 0x14c, 0x143, 0xf5, 0xd5, 0xb5, 0x144, - 0x136, 0x137, 0x13b, 0x13c, 0x146, 0x112, 0x145, 0x2019, - 0xad, 0xb1, 0x201c, 0xbe, 0xb6, 0xa7, 0xf7, 0x201e, - 0xb0, 0x2219, 0xb7, 0xb9, 0xb3, 0xb2, 0x25a0, 0xa0 }, - /* CP850 */ - { 0xc7, 0xfc, 0xe9, 0xe2, 0xe4, 0xe0, 0xe5, 0xe7, - 0xea, 0xeb, 0xe8, 0xef, 0xee, 0xec, 0xc4, 0xc5, - 0xc9, 0xe6, 0xc6, 0xf4, 0xf6, 0xf2, 0xfb, 0xf9, - 0xff, 0xd6, 0xdc, 0xf8, 0xa3, 0xd8, 0xd7, 0x192, - 0xe1, 0xed, 0xf3, 0xfa, 0xf1, 0xd1, 0xaa, 0xba, - 0xbf, 0xae, 0xac, 0xbd, 0xbc, 0xa1, 0xab, 0xbb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0xc1, 0xc2, 0xc0, - 0xa9, 0x2563, 0x2551, 0x2557, 0x255d, 0xa2, 0xa5, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0xe3, 0xc3, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0xa4, - 0xf0, 0xd0, 0xca, 0xcb, 0xc8, 0x131, 0xcd, 0xce, - 0xcf, 0x2518, 0x250c, 0x2588, 0x2584, 0xa6, 0xcc, 0x2580, - 0xd3, 0xdf, 0xd4, 0xd2, 0xf5, 0xd5, 0xb5, 0xfe, - 0xde, 0xda, 0xdb, 0xd9, 0xfd, 0xdd, 0xaf, 0xb4, - 0xad, 0xb1, 0x2017, 0xbe, 0xb6, 0xa7, 0xf7, 0xb8, - 0xb0, 0xa8, 0xb7, 0xb9, 0xb3, 0xb2, 0x25a0, 0xa0 }, - /* CP852 */ - { 0xc7, 0xfc, 0xe9, 0xe2, 0xe4, 0x16f, 0x107, 0xe7, - 0x142, 0xeb, 0x150, 0x151, 0xee, 0x179, 0xc4, 0x106, - 0xc9, 0x139, 0x13a, 0xf4, 0xf6, 0x13d, 0x13e, 0x15a, - 0x15b, 0xd6, 0xdc, 0x164, 0x165, 0x141, 0xd7, 0x10d, - 0xe1, 0xed, 0xf3, 0xfa, 0x104, 0x105, 0x17d, 0x17e, - 0x118, 0x119, 0xac, 0x17a, 0x10c, 0x15f, 0xab, 0xbb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0xc1, 0xc2, 0x11a, - 0x15e, 0x2563, 0x2551, 0x2557, 0x255d, 0x17b, 0x17c, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x102, 0x103, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0xa4, - 0x111, 0x110, 0x10e, 0xcb, 0x10f, 0x147, 0xcd, 0xce, - 0x11b, 0x2518, 0x250c, 0x2588, 0x2584, 0x162, 0x16e, 0x2580, - 0xd3, 0xdf, 0xd4, 0x143, 0x144, 0x148, 0x160, 0x161, - 0x154, 0xda, 0x155, 0x170, 0xfd, 0xdd, 0x163, 0xb4, - 0xad, 0x2dd, 0x2db, 0x2c7, 0x2d8, 0xa7, 0xf7, 0xb8, - 0xb0, 0xa8, 0x2d9, 0x171, 0x158, 0x159, 0x25a0, 0xa0 }, - /* CP855 */ - { 0x452, 0x402, 0x453, 0x403, 0x451, 0x401, 0x454, 0x404, - 0x455, 0x405, 0x456, 0x406, 0x457, 0x407, 0x458, 0x408, - 0x459, 0x409, 0x45a, 0x40a, 0x45b, 0x40b, 0x45c, 0x40c, - 0x45e, 0x40e, 0x45f, 0x40f, 0x44e, 0x42e, 0x44a, 0x42a, - 0x430, 0x410, 0x431, 0x411, 0x446, 0x426, 0x434, 0x414, - 0x435, 0x415, 0x444, 0x424, 0x433, 0x413, 0xab, 0xbb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x445, 0x425, 0x438, - 0x418, 0x2563, 0x2551, 0x2557, 0x255d, 0x439, 0x419, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x43a, 0x41a, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0xa4, - 0x43b, 0x41b, 0x43c, 0x41c, 0x43d, 0x41d, 0x43e, 0x41e, - 0x43f, 0x2518, 0x250c, 0x2588, 0x2584, 0x41f, 0x44f, 0x2580, - 0x42f, 0x440, 0x420, 0x441, 0x421, 0x442, 0x422, 0x443, - 0x423, 0x436, 0x416, 0x432, 0x412, 0x44c, 0x42c, 0x2116, - 0xad, 0x44b, 0x42b, 0x437, 0x417, 0x448, 0x428, 0x44d, - 0x42d, 0x449, 0x429, 0x447, 0x427, 0xa7, 0x25a0, 0xa0 }, - /* CP857 */ - { 0xc7, 0xfc, 0xe9, 0xe2, 0xe4, 0xe0, 0xe5, 0xe7, - 0xea, 0xeb, 0xe8, 0xef, 0xee, 0x131, 0xc4, 0xc5, - 0xc9, 0xe6, 0xc6, 0xf4, 0xf6, 0xf2, 0xfb, 0xf9, - 0x130, 0xd6, 0xdc, 0xf8, 0xa3, 0xd8, 0x15e, 0x15f, - 0xe1, 0xed, 0xf3, 0xfa, 0xf1, 0xd1, 0x11e, 0x11f, - 0xbf, 0xae, 0xac, 0xbd, 0xbc, 0xa1, 0xab, 0xbb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0xc1, 0xc2, 0xc0, - 0xa9, 0x2563, 0x2551, 0x2557, 0x255d, 0xa2, 0xa5, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0xe3, 0xc3, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0xa4, - 0xba, 0xaa, 0xca, 0xcb, 0xc8, 0xf8bb, 0xcd, 0xce, - 0xcf, 0x2518, 0x250c, 0x2588, 0x2584, 0xa6, 0xcc, 0x2580, - 0xd3, 0xdf, 0xd4, 0xd2, 0xf5, 0xd5, 0xb5, 0xf8bc, - 0xd7, 0xda, 0xdb, 0xd9, 0xec, 0xff, 0xaf, 0xb4, - 0xad, 0xb1, 0xf8bd, 0xbe, 0xb6, 0xa7, 0xf7, 0xb8, - 0xb0, 0xa8, 0xb7, 0xb9, 0xb3, 0xb2, 0x25a0, 0xa0 }, - /* CP858 */ - { 0xc7, 0xfc, 0xe9, 0xe2, 0xe4, 0xe0, 0xe5, 0xe7, - 0xea, 0xeb, 0xe8, 0xef, 0xee, 0xec, 0xc4, 0xc5, - 0xc9, 0xe6, 0xc6, 0xf4, 0xf6, 0xf2, 0xfb, 0xf9, - 0xff, 0xd6, 0xdc, 0xf8, 0xa3, 0xd8, 0xd7, 0x192, - 0xe1, 0xed, 0xf3, 0xfa, 0xf1, 0xd1, 0xaa, 0xba, - 0xbf, 0xae, 0xac, 0xbd, 0xbc, 0xa1, 0xab, 0xbb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0xc1, 0xc2, 0xc0, - 0xa9, 0x2563, 0x2551, 0x2557, 0x255d, 0xa2, 0xa5, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0xe3, 0xc3, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0xa4, - 0xf0, 0xd0, 0xca, 0xcb, 0xc8, 0x20ac, 0xcd, 0xce, - 0xcf, 0x2518, 0x250c, 0x2588, 0x2584, 0xa6, 0xcc, 0x2580, - 0xd3, 0xdf, 0xd4, 0xd2, 0xf5, 0xd5, 0xb5, 0xfe, - 0xde, 0xda, 0xdb, 0xd9, 0xfd, 0xdd, 0xaf, 0xb4, - 0xad, 0xb1, 0x2017, 0xbe, 0xb6, 0xa7, 0xf7, 0xb8, - 0xb0, 0xa8, 0xb7, 0xb9, 0xb3, 0xb2, 0x25a0, 0xa0 }, - /* CP862 */ - { 0x5d0, 0x5d1, 0x5d2, 0x5d3, 0x5d4, 0x5d5, 0x5d6, 0x5d7, - 0x5d8, 0x5d9, 0x5da, 0x5db, 0x5dc, 0x5dd, 0x5de, 0x5df, - 0x5e0, 0x5e1, 0x5e2, 0x5e3, 0x5e4, 0x5e5, 0x5e6, 0x5e7, - 0x5e8, 0x5e9, 0x5ea, 0xa2, 0xa3, 0xa5, 0x20a7, 0x192, - 0xe1, 0xed, 0xf3, 0xfa, 0xf1, 0xd1, 0xaa, 0xba, - 0xbf, 0x2310, 0xac, 0xbd, 0xbc, 0xa1, 0xab, 0xbb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x3b1, 0xdf, 0x393, 0x3c0, 0x3a3, 0x3c3, 0xb5, 0x3c4, - 0x3a6, 0x398, 0x3a9, 0x3b4, 0x221e, 0x3c6, 0x3b5, 0x2229, - 0x2261, 0xb1, 0x2265, 0x2264, 0x2320, 0x2321, 0xf7, 0x2248, - 0xb0, 0x2219, 0xb7, 0x221a, 0x207f, 0xb2, 0x25a0, 0xa0 }, - /* CP866 */ - { 0x410, 0x411, 0x412, 0x413, 0x414, 0x415, 0x416, 0x417, - 0x418, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, 0x41f, - 0x420, 0x421, 0x422, 0x423, 0x424, 0x425, 0x426, 0x427, - 0x428, 0x429, 0x42a, 0x42b, 0x42c, 0x42d, 0x42e, 0x42f, - 0x430, 0x431, 0x432, 0x433, 0x434, 0x435, 0x436, 0x437, - 0x438, 0x439, 0x43a, 0x43b, 0x43c, 0x43d, 0x43e, 0x43f, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x440, 0x441, 0x442, 0x443, 0x444, 0x445, 0x446, 0x447, - 0x448, 0x449, 0x44a, 0x44b, 0x44c, 0x44d, 0x44e, 0x44f, - 0x401, 0x451, 0x404, 0x454, 0x407, 0x457, 0x40e, 0x45e, - 0xb0, 0x2219, 0xb7, 0x221a, 0x2116, 0xa4, 0x25a0, 0xa0 }, - /* CP874 */ - { 0x20ac, 0x81, 0x82, 0x83, 0x84, 0x2026, 0x86, 0x87, - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0xe01, 0xe02, 0xe03, 0xe04, 0xe05, 0xe06, 0xe07, - 0xe08, 0xe09, 0xe0a, 0xe0b, 0xe0c, 0xe0d, 0xe0e, 0xe0f, - 0xe10, 0xe11, 0xe12, 0xe13, 0xe14, 0xe15, 0xe16, 0xe17, - 0xe18, 0xe19, 0xe1a, 0xe1b, 0xe1c, 0xe1d, 0xe1e, 0xe1f, - 0xe20, 0xe21, 0xe22, 0xe23, 0xe24, 0xe25, 0xe26, 0xe27, - 0xe28, 0xe29, 0xe2a, 0xe2b, 0xe2c, 0xe2d, 0xe2e, 0xe2f, - 0xe30, 0xe31, 0xe32, 0xe33, 0xe34, 0xe35, 0xe36, 0xe37, - 0xe38, 0xe39, 0xe3a, 0xf8c1, 0xf8c2, 0xf8c3, 0xf8c4, 0xe3f, - 0xe40, 0xe41, 0xe42, 0xe43, 0xe44, 0xe45, 0xe46, 0xe47, - 0xe48, 0xe49, 0xe4a, 0xe4b, 0xe4c, 0xe4d, 0xe4e, 0xe4f, - 0xe50, 0xe51, 0xe52, 0xe53, 0xe54, 0xe55, 0xe56, 0xe57, - 0xe58, 0xe59, 0xe5a, 0xe5b, 0xf8c5, 0xf8c6, 0xf8c7, 0xf8c8 }, - /* CP1125 */ - { 0x410, 0x411, 0x412, 0x413, 0x414, 0x415, 0x416, 0x417, - 0x418, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, 0x41f, - 0x420, 0x421, 0x422, 0x423, 0x424, 0x425, 0x426, 0x427, - 0x428, 0x429, 0x42a, 0x42b, 0x42c, 0x42d, 0x42e, 0x42f, - 0x430, 0x431, 0x432, 0x433, 0x434, 0x435, 0x436, 0x437, - 0x438, 0x439, 0x43a, 0x43b, 0x43c, 0x43d, 0x43e, 0x43f, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x440, 0x441, 0x442, 0x443, 0x444, 0x445, 0x446, 0x447, - 0x448, 0x449, 0x44a, 0x44b, 0x44c, 0x44d, 0x44e, 0x44f, - 0x401, 0x451, 0x490, 0x491, 0x404, 0x454, 0x406, 0x456, - 0x407, 0x457, 0xb7, 0x221a, 0x2116, 0xa4, 0x25a0, 0xa0 }, - /* CP1250 */ - { 0x20ac, 0x81, 0x201a, 0x83, 0x201e, 0x2026, 0x2020, 0x2021, - 0x88, 0x2030, 0x160, 0x2039, 0x15a, 0x164, 0x17d, 0x179, - 0x90, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x98, 0x2122, 0x161, 0x203a, 0x15b, 0x165, 0x17e, 0x17a, - 0xa0, 0x2c7, 0x2d8, 0x141, 0xa4, 0x104, 0xa6, 0xa7, - 0xa8, 0xa9, 0x15e, 0xab, 0xac, 0xad, 0xae, 0x17b, - 0xb0, 0xb1, 0x2db, 0x142, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0x105, 0x15f, 0xbb, 0x13d, 0x2dd, 0x13e, 0x17c, - 0x154, 0xc1, 0xc2, 0x102, 0xc4, 0x139, 0x106, 0xc7, - 0x10c, 0xc9, 0x118, 0xcb, 0x11a, 0xcd, 0xce, 0x10e, - 0x110, 0x143, 0x147, 0xd3, 0xd4, 0x150, 0xd6, 0xd7, - 0x158, 0x16e, 0xda, 0x170, 0xdc, 0xdd, 0x162, 0xdf, - 0x155, 0xe1, 0xe2, 0x103, 0xe4, 0x13a, 0x107, 0xe7, - 0x10d, 0xe9, 0x119, 0xeb, 0x11b, 0xed, 0xee, 0x10f, - 0x111, 0x144, 0x148, 0xf3, 0xf4, 0x151, 0xf6, 0xf7, - 0x159, 0x16f, 0xfa, 0x171, 0xfc, 0xfd, 0x163, 0x2d9 }, - /* CP1251 */ - { 0x402, 0x403, 0x201a, 0x453, 0x201e, 0x2026, 0x2020, 0x2021, - 0x20ac, 0x2030, 0x409, 0x2039, 0x40a, 0x40c, 0x40b, 0x40f, - 0x452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x98, 0x2122, 0x459, 0x203a, 0x45a, 0x45c, 0x45b, 0x45f, - 0xa0, 0x40e, 0x45e, 0x408, 0xa4, 0x490, 0xa6, 0xa7, - 0x401, 0xa9, 0x404, 0xab, 0xac, 0xad, 0xae, 0x407, - 0xb0, 0xb1, 0x406, 0x456, 0x491, 0xb5, 0xb6, 0xb7, - 0x451, 0x2116, 0x454, 0xbb, 0x458, 0x405, 0x455, 0x457, - 0x410, 0x411, 0x412, 0x413, 0x414, 0x415, 0x416, 0x417, - 0x418, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, 0x41f, - 0x420, 0x421, 0x422, 0x423, 0x424, 0x425, 0x426, 0x427, - 0x428, 0x429, 0x42a, 0x42b, 0x42c, 0x42d, 0x42e, 0x42f, - 0x430, 0x431, 0x432, 0x433, 0x434, 0x435, 0x436, 0x437, - 0x438, 0x439, 0x43a, 0x43b, 0x43c, 0x43d, 0x43e, 0x43f, - 0x440, 0x441, 0x442, 0x443, 0x444, 0x445, 0x446, 0x447, - 0x448, 0x449, 0x44a, 0x44b, 0x44c, 0x44d, 0x44e, 0x44f }, - /* CP1252 */ - { 0x20ac, 0x81, 0x201a, 0x192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x2c6, 0x2030, 0x160, 0x2039, 0x152, 0x8d, 0x17d, 0x8f, - 0x90, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x2dc, 0x2122, 0x161, 0x203a, 0x153, 0x9d, 0x17e, 0x178, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff }, - /* CP1253 */ - { 0x20ac, 0x81, 0x201a, 0x192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x88, 0x2030, 0x8a, 0x2039, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x98, 0x2122, 0x9a, 0x203a, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0x385, 0x386, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xf8f9, 0xab, 0xac, 0xad, 0xae, 0x2015, - 0xb0, 0xb1, 0xb2, 0xb3, 0x384, 0xb5, 0xb6, 0xb7, - 0x388, 0x389, 0x38a, 0xbb, 0x38c, 0xbd, 0x38e, 0x38f, - 0x390, 0x391, 0x392, 0x393, 0x394, 0x395, 0x396, 0x397, - 0x398, 0x399, 0x39a, 0x39b, 0x39c, 0x39d, 0x39e, 0x39f, - 0x3a0, 0x3a1, 0xf8fa, 0x3a3, 0x3a4, 0x3a5, 0x3a6, 0x3a7, - 0x3a8, 0x3a9, 0x3aa, 0x3ab, 0x3ac, 0x3ad, 0x3ae, 0x3af, - 0x3b0, 0x3b1, 0x3b2, 0x3b3, 0x3b4, 0x3b5, 0x3b6, 0x3b7, - 0x3b8, 0x3b9, 0x3ba, 0x3bb, 0x3bc, 0x3bd, 0x3be, 0x3bf, - 0x3c0, 0x3c1, 0x3c2, 0x3c3, 0x3c4, 0x3c5, 0x3c6, 0x3c7, - 0x3c8, 0x3c9, 0x3ca, 0x3cb, 0x3cc, 0x3cd, 0x3ce, 0xf8fb }, - /* CP1254 */ - { 0x20ac, 0x81, 0x201a, 0x192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x2c6, 0x2030, 0x160, 0x2039, 0x152, 0x8d, 0x8e, 0x8f, - 0x90, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x2dc, 0x2122, 0x161, 0x203a, 0x153, 0x9d, 0x9e, 0x178, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0x11e, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x130, 0x15e, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0x11f, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x131, 0x15f, 0xff }, - /* CP1255 */ - { 0x20ac, 0x81, 0x201a, 0x192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x2c6, 0x2030, 0x8a, 0x2039, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x2dc, 0x2122, 0x9a, 0x203a, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0xa1, 0xa2, 0xa3, 0x20aa, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xd7, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xf7, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0x5b0, 0x5b1, 0x5b2, 0x5b3, 0x5b4, 0x5b5, 0x5b6, 0x5b7, - 0x5b8, 0x5b9, 0x5ba, 0x5bb, 0x5bc, 0x5bd, 0x5be, 0x5bf, - 0x5c0, 0x5c1, 0x5c2, 0x5c3, 0x5f0, 0x5f1, 0x5f2, 0x5f3, - 0x5f4, 0xf88d, 0xf88e, 0xf88f, 0xf890, 0xf891, 0xf892, 0xf893, - 0x5d0, 0x5d1, 0x5d2, 0x5d3, 0x5d4, 0x5d5, 0x5d6, 0x5d7, - 0x5d8, 0x5d9, 0x5da, 0x5db, 0x5dc, 0x5dd, 0x5de, 0x5df, - 0x5e0, 0x5e1, 0x5e2, 0x5e3, 0x5e4, 0x5e5, 0x5e6, 0x5e7, - 0x5e8, 0x5e9, 0x5ea, 0xf894, 0xf895, 0x200e, 0x200f, 0xf896 }, - /* CP1256 */ - { 0x20ac, 0x67e, 0x201a, 0x192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x2c6, 0x2030, 0x679, 0x2039, 0x152, 0x686, 0x698, 0x688, - 0x6af, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x6a9, 0x2122, 0x691, 0x203a, 0x153, 0x200c, 0x200d, 0x6ba, - 0xa0, 0x60c, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0x6be, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0x61b, 0xbb, 0xbc, 0xbd, 0xbe, 0x61f, - 0x6c1, 0x621, 0x622, 0x623, 0x624, 0x625, 0x626, 0x627, - 0x628, 0x629, 0x62a, 0x62b, 0x62c, 0x62d, 0x62e, 0x62f, - 0x630, 0x631, 0x632, 0x633, 0x634, 0x635, 0x636, 0xd7, - 0x637, 0x638, 0x639, 0x63a, 0x640, 0x641, 0x642, 0x643, - 0xe0, 0x644, 0xe2, 0x645, 0x646, 0x647, 0x648, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0x649, 0x64a, 0xee, 0xef, - 0x64b, 0x64c, 0x64d, 0x64e, 0xf4, 0x64f, 0x650, 0xf7, - 0x651, 0xf9, 0x652, 0xfb, 0xfc, 0x200e, 0x200f, 0x6d2 }, - /* CP1257 */ - { 0x20ac, 0x81, 0x201a, 0x83, 0x201e, 0x2026, 0x2020, 0x2021, - 0x88, 0x2030, 0x8a, 0x2039, 0x8c, 0xa8, 0x2c7, 0xb8, - 0x90, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x98, 0x2122, 0x9a, 0x203a, 0x9c, 0xaf, 0x2db, 0x9f, - 0xa0, 0xf8fc, 0xa2, 0xa3, 0xa4, 0xf8fd, 0xa6, 0xa7, - 0xd8, 0xa9, 0x156, 0xab, 0xac, 0xad, 0xae, 0xc6, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xf8, 0xb9, 0x157, 0xbb, 0xbc, 0xbd, 0xbe, 0xe6, - 0x104, 0x12e, 0x100, 0x106, 0xc4, 0xc5, 0x118, 0x112, - 0x10c, 0xc9, 0x179, 0x116, 0x122, 0x136, 0x12a, 0x13b, - 0x160, 0x143, 0x145, 0xd3, 0x14c, 0xd5, 0xd6, 0xd7, - 0x172, 0x141, 0x15a, 0x16a, 0xdc, 0x17b, 0x17d, 0xdf, - 0x105, 0x12f, 0x101, 0x107, 0xe4, 0xe5, 0x119, 0x113, - 0x10d, 0xe9, 0x17a, 0x117, 0x123, 0x137, 0x12b, 0x13c, - 0x161, 0x144, 0x146, 0xf3, 0x14d, 0xf5, 0xf6, 0xf7, - 0x173, 0x142, 0x15b, 0x16b, 0xfc, 0x17c, 0x17e, 0x2d9 }, - /* CP1258 */ - { 0x20ac, 0x81, 0x201a, 0x192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x2c6, 0x2030, 0x8a, 0x2039, 0x152, 0x8d, 0x8e, 0x8f, - 0x90, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x2dc, 0x2122, 0x9a, 0x203a, 0x153, 0x9d, 0x9e, 0x178, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0x102, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0x300, 0xcd, 0xce, 0xcf, - 0x110, 0xd1, 0x309, 0xd3, 0xd4, 0x1a0, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x1af, 0x303, 0xdf, - 0xe0, 0xe1, 0xe2, 0x103, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0x301, 0xed, 0xee, 0xef, - 0x111, 0xf1, 0x323, 0xf3, 0xf4, 0x1a1, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x1b0, 0x20ab, 0xff }, - /* CP20866 (KOI8-R) */ - { 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, - 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, - 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, - 0x2264, 0x2265, 0xa0, 0x2321, 0xb0, 0xb2, 0xb7, 0xf7, - 0x2550, 0x2551, 0x2552, 0x451, 0x2553, 0x2554, 0x2555, 0x2556, - 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, - 0x255f, 0x2560, 0x2561, 0x401, 0x2562, 0x2563, 0x2564, 0x2565, - 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0xa9, - 0x44e, 0x430, 0x431, 0x446, 0x434, 0x435, 0x444, 0x433, - 0x445, 0x438, 0x439, 0x43a, 0x43b, 0x43c, 0x43d, 0x43e, - 0x43f, 0x44f, 0x440, 0x441, 0x442, 0x443, 0x436, 0x432, - 0x44c, 0x44b, 0x437, 0x448, 0x44d, 0x449, 0x447, 0x44a, - 0x42e, 0x410, 0x411, 0x426, 0x414, 0x415, 0x424, 0x413, - 0x425, 0x418, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, - 0x41f, 0x42f, 0x420, 0x421, 0x422, 0x423, 0x416, 0x412, - 0x42c, 0x42b, 0x417, 0x428, 0x42d, 0x429, 0x427, 0x42a }, - /* CP21866 (KOI8-U) */ - { 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, - 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, - 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, - 0x2264, 0x2265, 0xa0, 0x2321, 0xb0, 0xb2, 0xb7, 0xf7, - 0x2550, 0x2551, 0x2552, 0x451, 0x454, 0x2554, 0x456, 0x457, - 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x491, 0x45e, 0x255e, - 0x255f, 0x2560, 0x2561, 0x401, 0x404, 0x2563, 0x406, 0x407, - 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x490, 0x40e, 0xa9, - 0x44e, 0x430, 0x431, 0x446, 0x434, 0x435, 0x444, 0x433, - 0x445, 0x438, 0x439, 0x43a, 0x43b, 0x43c, 0x43d, 0x43e, - 0x43f, 0x44f, 0x440, 0x441, 0x442, 0x443, 0x436, 0x432, - 0x44c, 0x44b, 0x437, 0x448, 0x44d, 0x449, 0x447, 0x44a, - 0x42e, 0x410, 0x411, 0x426, 0x414, 0x415, 0x424, 0x413, - 0x425, 0x418, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, - 0x41f, 0x42f, 0x420, 0x421, 0x422, 0x423, 0x416, 0x412, - 0x42c, 0x42b, 0x417, 0x428, 0x42d, 0x429, 0x427, 0x42a }, - /* The following are not valid Windows codepages, but they fit nicely here. - The CP numbers are only used internally and are guranteed not to clash - with valid Windows codepage identifier. */ - /* CP101 (GEORGIAN-PS) Georgian charset, used as the default charset in - the ka_GE locale (Georgian, Georgia). Apparently derived from Windows - CP1252. */ - { 0x80, 0x81, 0x201a, 0x192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x2c6, 0x2030, 0x160, 0x2039, 0x152, 0x8d, 0x8e, 0x8f, - 0x90, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x2dc, 0x2122, 0x161, 0x203a, 0x153, 0x9d, 0x9e, 0x178, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10f1, - 0x10d7, 0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10f2, 0x10dd, - 0x10de, 0x10df, 0x10e0, 0x10e1, 0x10e2, 0x10f3, 0x10e3, 0x10e4, - 0x10e5, 0x10e6, 0x10e7, 0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec, - 0x10ed, 0x10ee, 0x10f4, 0x10ef, 0x10f0, 0x10f5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff }, - /* CP102 (PT154) Cyrillic-Asian charset, used as the default charset in - the kk_KZ locale (Kazakh, Kazakhstan). */ - { 0x496, 0x492, 0x4ee, 0x493, 0x201e, 0x2026, 0x4b6, 0x4ae, - 0x4b2, 0x4af, 0x4a0, 0x4e2, 0x4a2, 0x49a, 0x4ba, 0x4b8, - 0x497, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x4b3, 0x4b7, 0x4a1, 0x4e3, 0x4a3, 0x49b, 0x4bb, 0x4b9, - 0xa0, 0x40e, 0x45e, 0x408, 0x4e8, 0x498, 0x4b0, 0xa7, - 0x401, 0xa9, 0x4d8, 0xab, 0xac, 0x4ef, 0xae, 0x49c, - 0xb0, 0x4b1, 0x406, 0x456, 0x499, 0x4e9, 0xb6, 0xb7, - 0x451, 0x2116, 0x4d9, 0xbb, 0x458, 0x4aa, 0x4ab, 0x49d, - 0x410, 0x411, 0x412, 0x413, 0x414, 0x415, 0x416, 0x417, - 0x418, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, 0x41f, - 0x420, 0x421, 0x422, 0x423, 0x424, 0x425, 0x426, 0x427, - 0x428, 0x429, 0x42a, 0x42b, 0x42c, 0x42d, 0x42e, 0x42f, - 0x430, 0x431, 0x432, 0x433, 0x434, 0x435, 0x436, 0x437, - 0x438, 0x439, 0x43a, 0x43b, 0x43c, 0x43d, 0x43e, 0x43f, - 0x440, 0x441, 0x442, 0x443, 0x444, 0x445, 0x446, 0x447, - 0x448, 0x449, 0x44a, 0x44b, 0x44c, 0x44d, 0x44e, 0x44f }, - /* CP103 (KOI8-T) */ - { 0x049b, 0x0493, 0x201a, 0x0492, 0x201e, 0x2026, 0x2020, 0x2021, - 0x88, 0x2030, 0x04b3, 0x2039, 0x04b2, 0x04b7, 0x04b6, 0x8f, - 0x049a, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x98, 0x2122, 0x9a, 0x203a, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0x04ef, 0x04ee, 0x0451, 0xa4, 0x04e3, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0x401, 0xb4, 0x04e2, 0xb6, 0xb7, - 0xb8, 0x2116, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xa9, - 0x44e, 0x430, 0x431, 0x446, 0x434, 0x435, 0x444, 0x433, - 0x445, 0x438, 0x439, 0x43a, 0x43b, 0x43c, 0x43d, 0x43e, - 0x43f, 0x44f, 0x440, 0x441, 0x442, 0x443, 0x436, 0x432, - 0x44c, 0x44b, 0x437, 0x448, 0x44d, 0x449, 0x447, 0x44a, - 0x42e, 0x410, 0x411, 0x426, 0x414, 0x415, 0x424, 0x413, - 0x425, 0x418, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, - 0x41f, 0x42f, 0x420, 0x421, 0x422, 0x423, 0x416, 0x412, - 0x42c, 0x42b, 0x417, 0x428, 0x42d, 0x429, 0x427, 0x42a }, -}; -#endif /* _MB_EXTENDED_CHARSETS_WINDOWS */ - -/* Handle one to five decimal digits. Return -1 in any other case. */ -static int -__micro_atoi (const char *s) -{ - int ret = 0; - - if (!*s) - return -1; - while (*s) - { - if (*s < '0' || *s > '9' || ret >= 100000) - return -1; - ret = 10 * ret + (*s++ - '0'); - } - return ret; -} - -#ifdef _MB_EXTENDED_CHARSETS_ISO -int -__iso_8859_val_index (int val) -{ - if (val >= 2 && val <= 16) - { - val -= 2; - if (val > 10) - --val; - return (int) val; - } - return -1; -} - -int -__iso_8859_index (const char *charset_ext) -{ - return __iso_8859_val_index (__micro_atoi (charset_ext)); -} -#endif /* _MB_EXTENDED_CHARSETS_ISO */ - -#ifdef _MB_EXTENDED_CHARSETS_WINDOWS -int -__cp_val_index (int val) -{ - int cp_idx; - switch (val) - { - case 437: - cp_idx = 0; - break; - case 720: - cp_idx = 1; - break; - case 737: - cp_idx = 2; - break; - case 775: - cp_idx = 3; - break; - case 850: - cp_idx = 4; - break; - case 852: - cp_idx = 5; - break; - case 855: - cp_idx = 6; - break; - case 857: - cp_idx = 7; - break; - case 858: - cp_idx = 8; - break; - case 862: - cp_idx = 9; - break; - case 866: - cp_idx = 10; - break; - case 874: - cp_idx = 11; - break; - case 1125: - cp_idx = 12; - break; - case 1250: - cp_idx = 13; - break; - case 1251: - cp_idx = 14; - break; - case 1252: - cp_idx = 15; - break; - case 1253: - cp_idx = 16; - break; - case 1254: - cp_idx = 17; - break; - case 1255: - cp_idx = 18; - break; - case 1256: - cp_idx = 19; - break; - case 1257: - cp_idx = 20; - break; - case 1258: - cp_idx = 21; - break; - case 20866: - cp_idx = 22; - break; - case 21866: - cp_idx = 23; - break; - case 101: - cp_idx = 24; - break; - case 102: - cp_idx = 25; - break; - case 103: - cp_idx = 26; - break; - default: - cp_idx = -1; - break; - } - return cp_idx; -} - -int -__cp_index (const char *charset_ext) -{ - return __cp_val_index (__micro_atoi (charset_ext)); -} - -#endif /* _MB_EXTENDED_CHARSETS_WINDOWS */ -#endif /* _MB_CAPABLE */ diff --git a/lib/stdlib/seed48.c b/lib/stdlib/seed48.c deleted file mode 100644 index 25f0e50..0000000 --- a/lib/stdlib/seed48.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ - -#include "rand48.h" - -unsigned short * -_seed48_r (struct _reent *r, - unsigned short xseed[3]) -{ - static unsigned short sseed[3]; - - _REENT_CHECK_RAND48(r); - sseed[0] = __rand48_seed[0]; - sseed[1] = __rand48_seed[1]; - sseed[2] = __rand48_seed[2]; - __rand48_seed[0] = xseed[0]; - __rand48_seed[1] = xseed[1]; - __rand48_seed[2] = xseed[2]; - __rand48_mult[0] = _RAND48_MULT_0; - __rand48_mult[1] = _RAND48_MULT_1; - __rand48_mult[2] = _RAND48_MULT_2; - __rand48_add = _RAND48_ADD; - return sseed; -} - -#ifndef _REENT_ONLY -unsigned short * -seed48 (unsigned short xseed[3]) -{ - return _seed48_r (_REENT, xseed); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/setenv.c b/lib/stdlib/setenv.c deleted file mode 100644 index d8f5bfe..0000000 --- a/lib/stdlib/setenv.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1987 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that: (1) source distributions retain this entire copyright - * notice and comment, and (2) distributions including binaries display - * the following acknowledgement: ``This product includes software - * developed by the University of California, Berkeley and its contributors'' - * in the documentation or other materials provided with the distribution. - * Neither the name of the University nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#ifndef _REENT_ONLY - -#include -#include -#include - -extern int _unsetenv_r (struct _reent *, const char *); - -/* - * setenv -- - * Set the value of the environmental variable "name" to be - * "value". If rewrite is set, replace any current value. - */ - -int -setenv (const char *name, - const char *value, - int rewrite) -{ - return _setenv_r (_REENT, name, value, rewrite); -} - -/* - * unsetenv(name) -- - * Delete environmental variable "name". - */ -int -unsetenv (const char *name) -{ - return _unsetenv_r (_REENT, name); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/setenv_r.c b/lib/stdlib/setenv_r.c deleted file mode 100644 index 84d87a6..0000000 --- a/lib/stdlib/setenv_r.c +++ /dev/null @@ -1,158 +0,0 @@ -/* This file may have been modified by DJ Delorie (Jan 1991). If so, -** these modifications are Copyright (C) 1991 DJ Delorie. -*/ - -/* - * Copyright (c) 1987 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that: (1) source distributions retain this entire copyright - * notice and comment, and (2) distributions including binaries display - * the following acknowledgement: ``This product includes software - * developed by the University of California, Berkeley and its contributors'' - * in the documentation or other materials provided with the distribution. - * Neither the name of the University nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include - -#include -#include -#include -#include -#include -#include "envlock.h" - -extern char **environ; - -/* Only deal with a pointer to environ, to work around subtle bugs with shared - libraries and/or small data systems where the user declares his own - 'environ'. */ -static char ***p_environ = &environ; - -/* _findenv_r is defined in getenv_r.c. */ -extern char *_findenv_r (struct _reent *, const char *, int *); - -/* - * _setenv_r -- - * Set the value of the environmental variable "name" to be - * "value". If rewrite is set, replace any current value. - * If "name" contains equal sign, -1 is returned, and errno is - * set to EINVAL; - */ - -int -_setenv_r (struct _reent *reent_ptr, - const char *name, - const char *value, - int rewrite) -{ - static int alloced; /* if allocated space before */ - register char *C; - int l_value, offset; - - if (strchr(name, '=')) - { - errno = EINVAL; - return -1; - } - - ENV_LOCK; - - l_value = strlen (value); - if ((C = _findenv_r (reent_ptr, name, &offset))) - { /* find if already exists */ - if (!rewrite) - { - ENV_UNLOCK; - return 0; - } - if (strlen (C) >= l_value) - { /* old larger; copy over */ - while ((*C++ = *value++) != 0); - ENV_UNLOCK; - return 0; - } - } - else - { /* create new slot */ - register int cnt; - register char **P; - - for (P = *p_environ, cnt = 0; *P; ++P, ++cnt); - if (alloced) - { /* just increase size */ - *p_environ = (char **) _realloc_r (reent_ptr, (char *) environ, - (size_t) (sizeof (char *) * (cnt + 2))); - if (!*p_environ) - { - ENV_UNLOCK; - return -1; - } - } - else - { /* get new space */ - alloced = 1; /* copy old entries into it */ - P = (char **) _malloc_r (reent_ptr, (size_t) (sizeof (char *) * (cnt + 2))); - if (!P) - { - ENV_UNLOCK; - return (-1); - } - memcpy((char *) P,(char *) *p_environ, cnt * sizeof (char *)); - *p_environ = P; - } - (*p_environ)[cnt + 1] = NULL; - offset = cnt; - } - for (C = (char *) name; *C && *C != '='; ++C); /* no `=' in name */ - if (!((*p_environ)[offset] = /* name + `=' + value */ - _malloc_r (reent_ptr, (size_t) ((int) (C - name) + l_value + 2)))) - { - ENV_UNLOCK; - return -1; - } - for (C = (*p_environ)[offset]; (*C = *name++) && *C != '='; ++C); - for (*C++ = '='; (*C++ = *value++) != 0;); - - ENV_UNLOCK; - - return 0; -} - -/* - * _unsetenv_r(name) -- - * Delete environmental variable "name". - */ -int -_unsetenv_r (struct _reent *reent_ptr, - const char *name) -{ - register char **P; - int offset; - - /* Name cannot be NULL, empty, or contain an equal sign. */ - if (name == NULL || name[0] == '\0' || strchr(name, '=')) - { - errno = EINVAL; - return -1; - } - - ENV_LOCK; - - while (_findenv_r (reent_ptr, name, &offset)) /* if set multiple times */ - { - for (P = &(*p_environ)[offset];; ++P) - if (!(*P = *(P + 1))) - break; - } - - ENV_UNLOCK; - return 0; -} diff --git a/lib/stdlib/srand48.c b/lib/stdlib/srand48.c deleted file mode 100644 index 573f620..0000000 --- a/lib/stdlib/srand48.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ - -#include "rand48.h" - -void -_srand48_r (struct _reent *r, - long seed) -{ - _REENT_CHECK_RAND48(r); - __rand48_seed[0] = _RAND48_SEED_0; - __rand48_seed[1] = (unsigned short) seed; - __rand48_seed[2] = (unsigned short) ((unsigned long)seed >> 16); - __rand48_mult[0] = _RAND48_MULT_0; - __rand48_mult[1] = _RAND48_MULT_1; - __rand48_mult[2] = _RAND48_MULT_2; - __rand48_add = _RAND48_ADD; -} - -#ifndef _REENT_ONLY -void -srand48 (long seed) -{ - _srand48_r (_REENT, seed); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/std.h b/lib/stdlib/std.h deleted file mode 100644 index c000a67..0000000 --- a/lib/stdlib/std.h +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include -#include -#include -#include -#ifndef CYGNUS_NEC -#include -#endif - -#define Ise(c) ((c == 'e') || (c == 'E') || (c == 'd') || (c == 'D')) -#define Isdigit(c) ((c <= '9') && (c >= '0')) -#define Isspace(c) ((c == ' ') || (c == '\t') || (c=='\n') || (c=='\v') \ - || (c == '\r') || (c == '\f')) -#define Issign(c) ((c == '-') || (c == '+')) -#define Val(c) ((c - '0')) - -#define MAXE 308 -#define MINE (-308) - -/* flags */ -#define SIGN 0x01 -#define ESIGN 0x02 -#define DECP 0x04 - -int __ten_mul(double *acc, int digit); -double __adjust(struct _reent *ptr, double *acc, int dexp, int sign); -double __exp10(unsigned x); diff --git a/lib/stdlib/stdlib.tex b/lib/stdlib/stdlib.tex deleted file mode 100644 index 75d80f4..0000000 --- a/lib/stdlib/stdlib.tex +++ /dev/null @@ -1,210 +0,0 @@ -@node Stdlib -@chapter Standard Utility Functions (@file{stdlib.h}) - -This chapter groups utility functions useful in a variety of programs. -The corresponding declarations are in the header file @file{stdlib.h}. - -@menu -* _Exit:: End program execution without cleaning up -* a64l:: String to long long -* abort:: Abnormal termination of a program -* abs:: Integer absolute value (magnitude) -* assert:: Macro for Debugging Diagnostics -* atexit:: Request execution of functions at program exit -* atof:: String to double or float -* atoi:: String to integer -* atoll:: String to long long -* bsearch:: Binary search -* calloc:: Allocate space for arrays -* div:: Divide two integers -* ecvtbuf:: Double or float to string of digits -* ecvt:: Double or float to string of digits (malloc result) -* __env_lock:: Lock environment list for getenv and setenv -* gcvt:: Format double or float as string -* exit:: End program execution -* getenv:: Look up environment variable -* itoa:: Integer to string -* labs:: Long integer absolute value (magnitude) -* ldiv:: Divide two long integers -* llabs:: Long long integer absolute value (magnitude) -* lldiv:: Divide two long long integers -* malloc:: Allocate and manage memory (malloc, realloc, free) -* mallinfo:: Get information about allocated memory -* __malloc_lock:: Lock memory pool for malloc and free -* mbsrtowcs:: Convert a character string to a wide-character string -* mbstowcs:: Minimal multibyte string to wide string converter -* mblen:: Minimal multibyte length -* mbtowc:: Minimal multibyte to wide character converter -* on_exit:: Request execution of functions at program exit -* qsort:: Array sort -* rand:: Pseudo-random numbers -* random:: Pseudo-random numbers -* rand48:: Uniformly distributed pseudo-random numbers -* rpmatch:: Determine whether response is affirmative or negative -* strtod:: String to double or float -* strtol:: String to long -* strtoll:: String to long long -* strtoul:: String to unsigned long -* strtoull:: String to unsigned long long -* wcsrtombs:: Convert a wide-character string to a character string -* wcstod:: Wide string to double or float -* wcstol:: Wide string to long -* wcstoll:: Wide string to long long -* wcstoul:: Wide string to unsigned long -* wcstoull:: Wide string to unsigned long long -* system:: Execute command string -* utoa:: Unsigned integer to string -* wcstombs:: Minimal wide string to multibyte string converter -* wctomb:: Minimal wide character to multibyte converter -@end menu - -@page -@include stdlib/_Exit.def - -@page -@include stdlib/a64l.def - -@page -@include stdlib/abort.def - -@page -@include stdlib/abs.def - -@page -@include stdlib/assert.def - -@page -@include stdlib/atexit.def - -@page -@include stdlib/atof.def - -@page -@include stdlib/atoi.def - -@page -@include stdlib/atoll.def - -@page -@include search/bsearch.def - -@page -@include stdlib/calloc.def - -@page -@include stdlib/div.def - -@page -@include stdlib/efgcvt.def - -@page -@include stdlib/ecvtbuf.def - -@page -@include stdlib/envlock.def - -@page -@include stdlib/exit.def - -@page -@include stdlib/getenv.def - -@page -@include stdlib/itoa.def - -@page -@include stdlib/labs.def - -@page -@include stdlib/ldiv.def - -@page -@include stdlib/llabs.def - -@page -@include stdlib/lldiv.def - -@page -@include stdlib/malloc.def - -@page -@include stdlib/mstats.def - -@page -@include stdlib/mlock.def - -@page -@include stdlib/mblen.def - -@page -@include stdlib/mbsnrtowcs.def - -@page -@include stdlib/mbstowcs.def - -@page -@include stdlib/mbtowc.def - -@page -@include stdlib/on_exit.def - -@page -@include search/qsort.def - -@page -@include stdlib/rand.def - -@page -@include stdlib/random.def - -@page -@include stdlib/rand48.def - -@page -@include stdlib/rpmatch.def - -@page -@include stdlib/strtod.def - -@page -@include stdlib/strtol.def - -@page -@include stdlib/strtoll.def - -@page -@include stdlib/strtoul.def - -@page -@include stdlib/strtoull.def - -@page -@include stdlib/wcsnrtombs.def - -@page -@include stdlib/wcstod.def - -@page -@include stdlib/wcstol.def - -@page -@include stdlib/wcstoll.def - -@page -@include stdlib/wcstoul.def - -@page -@include stdlib/wcstoull.def - -@page -@include stdlib/system.def - -@page -@include stdlib/utoa.def - -@page -@include stdlib/wcstombs.def - -@page -@include stdlib/wctomb.def - diff --git a/lib/stdlib/strtod.c b/lib/stdlib/strtod.c deleted file mode 100644 index 9156ed7..0000000 --- a/lib/stdlib/strtod.c +++ /dev/null @@ -1,1348 +0,0 @@ -/* -FUNCTION - <>, <>, <>, <>, <>, <>---string to double or float - -INDEX - strtod - -INDEX - strtof - -INDEX - strtold - -INDEX - strtod_l - -INDEX - strtof_l - -INDEX - strtold_l - -INDEX - _strtod_r - -SYNOPSIS - #include - double strtod(const char *restrict <[str]>, char **restrict <[tail]>); - float strtof(const char *restrict <[str]>, char **restrict <[tail]>); - long double strtold(const char *restrict <[str]>, - char **restrict <[tail]>); - - #include - double strtod_l(const char *restrict <[str]>, char **restrict <[tail]>, - locale_t <[locale]>); - float strtof_l(const char *restrict <[str]>, char **restrict <[tail]>, - locale_t <[locale]>); - long double strtold_l(const char *restrict <[str]>, - char **restrict <[tail]>, - locale_t <[locale]>); - - double _strtod_r(void *<[reent]>, - const char *restrict <[str]>, char **restrict <[tail]>); - -DESCRIPTION - <>, <>, <> parse the character string - <[str]>, producing a substring which can be converted to a double, - float, or long double value, respectively. The substring converted - is the longest initial subsequence of <[str]>, beginning with the - first non-whitespace character, that has one of these formats: - .[+|-]<[digits]>[.[<[digits]>]][(e|E)[+|-]<[digits]>] - .[+|-].<[digits]>[(e|E)[+|-]<[digits]>] - .[+|-](i|I)(n|N)(f|F)[(i|I)(n|N)(i|I)(t|T)(y|Y)] - .[+|-](n|N)(a|A)(n|N)[<(>[<[hexdigits]>]<)>] - .[+|-]0(x|X)<[hexdigits]>[.[<[hexdigits]>]][(p|P)[+|-]<[digits]>] - .[+|-]0(x|X).<[hexdigits]>[(p|P)[+|-]<[digits]>] - The substring contains no characters if <[str]> is empty, consists - entirely of whitespace, or if the first non-whitespace - character is something other than <<+>>, <<->>, <<.>>, or a - digit, and cannot be parsed as infinity or NaN. If the platform - does not support NaN, then NaN is treated as an empty substring. - If the substring is empty, no conversion is done, and - the value of <[str]> is stored in <<*<[tail]>>>. Otherwise, - the substring is converted, and a pointer to the final string - (which will contain at least the terminating null character of - <[str]>) is stored in <<*<[tail]>>>. If you want no - assignment to <<*<[tail]>>>, pass a null pointer as <[tail]>. - - This implementation returns the nearest machine number to the - input decimal string. Ties are broken by using the IEEE - round-even rule. However, <> is currently subject to - double rounding errors. - - <>, <>, <> are like <>, - <>, <> but perform the conversion based on the - locale specified by the locale object locale. If <[locale]> is - LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is - undefined. - - The alternate function <<_strtod_r>> is a reentrant version. - The extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS - These functions return the converted substring value, if any. If - no conversion could be performed, 0 is returned. If the correct - value is out of the range of representable values, plus or minus - <> (<>, <>) is returned, and - <> is stored in errno. If the correct value would cause - underflow, 0 is returned and <> is stored in errno. - -PORTABILITY -<> is ANSI. -<>, <> are C99. -<>, <>, <> are GNU extensions. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -/**************************************************************** - -The author of this software is David M. Gay. - -Copyright (C) 1998-2001 by Lucent Technologies -All Rights Reserved - -Permission to use, copy, modify, and distribute this software and -its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notice appear in all -copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the name of Lucent or any of its entities -not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. -IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY -SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER -IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - -****************************************************************/ - -/* Please send bug reports to David M. Gay (dmg at acm dot org, - * with " at " changed at "@" and " dot " changed to "."). */ - -/* Original file gdtoa-strtod.c Modified 06-21-2006 by Jeff Johnston to work within newlib. */ - -#define _GNU_SOURCE -#include <_ansi.h> -#include -#include -#include -#include "mprec.h" -#include "gdtoa.h" -#include "../locale/setlocale.h" - -/* #ifndef NO_FENV_H */ -/* #include */ -/* #endif */ - -#include "locale.h" - -#ifdef IEEE_Arith -#ifndef NO_IEEE_Scale -#define Avoid_Underflow -#undef tinytens -/* The factor of 2^106 in tinytens[4] helps us avoid setting the underflow */ -/* flag unnecessarily. It leads to a song and dance at the end of strtod. */ -static const double tinytens[] = { 1e-16, 1e-32, -#ifdef _DOUBLE_IS_32BITS - 0.0, 0.0, 0.0 -#else - 1e-64, 1e-128, - 9007199254740992. * 9007199254740992.e-256 -#endif - }; - -#endif -#endif - -#ifdef Honor_FLT_ROUNDS -#define Rounding rounding -#undef Check_FLT_ROUNDS -#define Check_FLT_ROUNDS -#else -#define Rounding Flt_Rounds -#endif - -#ifdef IEEE_MC68k -#define _0 0 -#define _1 1 -#else -#define _0 1 -#define _1 0 -#endif - -#ifdef Avoid_Underflow /*{*/ - static double -sulp (U x, - int scale) -{ - U u; - double rv; - int i; - - rv = ulp(dval(x)); - if (!scale || (i = 2*P + 1 - ((dword0(x) & Exp_mask) >> Exp_shift)) <= 0) - return rv; /* Is there an example where i <= 0 ? */ - dword0(u) = Exp_1 + ((__int32_t)i << Exp_shift); -#ifndef _DOUBLE_IS_32BITS - dword1(u) = 0; -#endif - return rv * u.d; - } -#endif /*}*/ - - -#ifndef NO_HEX_FP - -static void -ULtod (__ULong *L, - __ULong *bits, - Long exp, - int k) -{ - switch(k & STRTOG_Retmask) { - case STRTOG_NoNumber: - case STRTOG_Zero: - L[0] = L[1] = 0; - break; - - case STRTOG_Denormal: - L[_1] = bits[0]; - L[_0] = bits[1]; - break; - - case STRTOG_Normal: - case STRTOG_NaNbits: - L[_1] = bits[0]; - L[_0] = (bits[1] & ~0x100000) | ((exp + 0x3ff + 52) << 20); - break; - - case STRTOG_Infinite: - L[_0] = 0x7ff00000; - L[_1] = 0; - break; - - case STRTOG_NaN: - L[_0] = 0x7fffffff; - L[_1] = (__ULong)-1; - } - if (k & STRTOG_Neg) - L[_0] |= 0x80000000L; -} -#endif /* !NO_HEX_FP */ - -double -_strtod_l (struct _reent *ptr, const char *__restrict s00, char **__restrict se, - locale_t loc) -{ -#ifdef Avoid_Underflow - int scale; -#endif - int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, decpt, dsign, - e, e1, esign, i, j, k, nd, nd0, nf, nz, nz0, sign; - const char *s, *s0, *s1; - double aadj, adj; - U aadj1, rv, rv0; - Long L; - __ULong y, z; - _Bigint *bb = NULL, *bb1, *bd = NULL, *bd0, *bs = NULL, *delta = NULL; -#ifdef Avoid_Underflow - __ULong Lsb, Lsb1; -#endif -#ifdef SET_INEXACT - int inexact, oldinexact; -#endif -#ifdef Honor_FLT_ROUNDS - int rounding; -#endif -#ifdef __HAVE_LOCALE_INFO__ - const char *decimal_point = __get_numeric_locale(loc)->decimal_point; - const int dec_len = strlen (decimal_point); -#else - const char *decimal_point = "."; - const int dec_len = 1; -#endif - - delta = bs = bd = NULL; - sign = nz0 = nz = decpt = 0; - dval(rv) = 0.; - for(s = s00;;s++) switch(*s) { - case '-': - sign = 1; - /* no break */ - case '+': - if (*++s) - goto break2; - /* no break */ - case 0: - goto ret0; - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case ' ': - continue; - default: - goto break2; - } - break2: - if (*s == '0') { -#ifndef NO_HEX_FP - { - static const FPI fpi = { 53, 1-1023-53+1, 2046-1023-53+1, 1, SI }; - Long exp; - __ULong bits[2]; - switch(s[1]) { - case 'x': - case 'X': - /* If the number is not hex, then the parse of - 0 is still valid. */ - s00 = s + 1; - { -#if defined(FE_DOWNWARD) && defined(FE_TONEAREST) && defined(FE_TOWARDZERO) && defined(FE_UPWARD) - FPI fpi1 = fpi; - switch(fegetround()) { - case FE_TOWARDZERO: fpi1.rounding = 0; break; - case FE_UPWARD: fpi1.rounding = 2; break; - case FE_DOWNWARD: fpi1.rounding = 3; - } -#else -#define fpi1 fpi -#endif - switch((i = gethex(ptr, &s, &fpi1, &exp, &bb, sign, loc)) & STRTOG_Retmask) { - case STRTOG_NoNumber: - s = s00; - sign = 0; - /* FALLTHROUGH */ - case STRTOG_Zero: - break; - default: - if (bb) { - copybits(bits, fpi.nbits, bb); - Bfree(ptr,bb); - } - ULtod(rv.i, bits, exp, i); -#ifndef NO_ERRNO - /* try to avoid the bug of testing an 8087 register value */ - if ((dword0(rv)&Exp_mask) == 0) - errno = ERANGE; -#endif - }} - goto ret; - } - } -#endif - nz0 = 1; - while(*++s == '0') ; - if (!*s) - goto ret; - } - s0 = s; - y = z = 0; - for(nd = nf = 0; (c = *s) >= '0' && c <= '9'; nd++, s++) - if (nd < 9) - y = 10*y + c - '0'; - else - z = 10*z + c - '0'; - nd0 = nd; - if (strncmp (s, decimal_point, dec_len) == 0) - { - decpt = 1; - c = *(s += dec_len); - if (!nd) { - for(; c == '0'; c = *++s) - nz++; - if (c > '0' && c <= '9') { - s0 = s; - nf += nz; - nz = 0; - goto have_dig; - } - goto dig_done; - } - for(; c >= '0' && c <= '9'; c = *++s) { - have_dig: - nz++; - if (c -= '0') { - nf += nz; - for(i = 1; i < nz; i++) - if (nd++ < 9) - y *= 10; - else if (nd <= DBL_DIG + 1) - z *= 10; - if (nd++ < 9) - y = 10*y + c; - else if (nd <= DBL_DIG + 1) - z = 10*z + c; - nz = 0; - } - } - } - dig_done: - e = 0; - if (c == 'e' || c == 'E') { - if (!nd && !nz && !nz0) { - goto ret0; - } - s00 = s; - esign = 0; - switch(c = *++s) { - case '-': - esign = 1; - case '+': - c = *++s; - } - if (c >= '0' && c <= '9') { - while(c == '0') - c = *++s; - if (c > '0' && c <= '9') { - L = c - '0'; - s1 = s; - while((c = *++s) >= '0' && c <= '9') - L = 10*L + c - '0'; - if (s - s1 > 8 || L > 19999) - /* Avoid confusion from exponents - * so large that e might overflow. - */ - e = 19999; /* safe for 16 bit ints */ - else - e = (int)L; - if (esign) - e = -e; - } - else - e = 0; - } - else - s = s00; - } - if (!nd) { - if (!nz && !nz0) { -#ifdef INFNAN_CHECK - /* Check for Nan and Infinity */ - __ULong bits[2]; - static const FPI fpinan = /* only 52 explicit bits */ - { 52, 1-1023-53+1, 2046-1023-53+1, 1, SI }; - if (!decpt) - switch(c) { - case 'i': - case 'I': - if (match(&s,"nf")) { - --s; - if (!match(&s,"inity")) - ++s; - dword0(rv) = 0x7ff00000; -#ifndef _DOUBLE_IS_32BITS - dword1(rv) = 0; -#endif /*!_DOUBLE_IS_32BITS*/ - goto ret; - } - break; - case 'n': - case 'N': - if (match(&s, "an")) { -#ifndef No_Hex_NaN - if (*s == '(' /*)*/ - && hexnan(&s, &fpinan, bits) - == STRTOG_NaNbits) { - dword0(rv) = 0x7ff00000 | bits[1]; -#ifndef _DOUBLE_IS_32BITS - dword1(rv) = bits[0]; -#endif /*!_DOUBLE_IS_32BITS*/ - } - else { -#endif - dval(rv) = nan (""); -#ifndef No_Hex_NaN - } -#endif - goto ret; - } - } -#endif /* INFNAN_CHECK */ - ret0: - s = s00; - sign = 0; - } - goto ret; - } - e1 = e -= nf; - - /* Now we have nd0 digits, starting at s0, followed by a - * decimal point, followed by nd-nd0 digits. The number we're - * after is the integer represented by those digits times - * 10**e */ - - if (!nd0) - nd0 = nd; - k = nd < DBL_DIG + 1 ? nd : DBL_DIG + 1; - dval(rv) = y; - if (k > 9) { -#ifdef SET_INEXACT - if (k > DBL_DIG) - oldinexact = get_inexact(); -#endif - dval(rv) = tens[k - 9] * dval(rv) + z; - } - bd0 = 0; - if (nd <= DBL_DIG -#ifndef RND_PRODQUOT -#ifndef Honor_FLT_ROUNDS - && Flt_Rounds == 1 -#endif -#endif - ) { - if (!e) - goto ret; - if (e > 0) { - if (e <= Ten_pmax) { -#ifdef VAX - goto vax_ovfl_check; -#else -#ifdef Honor_FLT_ROUNDS - /* round correctly FLT_ROUNDS = 2 or 3 */ - if (sign) { - dval(rv) = -dval(rv); - sign = 0; - } -#endif - /* rv = */ rounded_product(dval(rv), tens[e]); - goto ret; -#endif - } - i = DBL_DIG - nd; - if (e <= Ten_pmax + i) { - /* A fancier test would sometimes let us do - * this for larger i values. - */ -#ifdef Honor_FLT_ROUNDS - /* round correctly FLT_ROUNDS = 2 or 3 */ - if (sign) { - dval(rv) = -dval(rv); - sign = 0; - } -#endif - e -= i; - dval(rv) *= tens[i]; -#ifdef VAX - /* VAX exponent range is so narrow we must - * worry about overflow here... - */ - vax_ovfl_check: - dword0(rv) -= P*Exp_msk1; - /* rv = */ rounded_product(dval(rv), tens[e]); - if ((dword0(rv) & Exp_mask) - > Exp_msk1*(DBL_MAX_EXP+Bias-1-P)) - goto ovfl; - dword0(rv) += P*Exp_msk1; -#else - /* rv = */ rounded_product(dval(rv), tens[e]); -#endif - goto ret; - } - } -#ifndef Inaccurate_Divide - else if (e >= -Ten_pmax) { -#ifdef Honor_FLT_ROUNDS - /* round correctly FLT_ROUNDS = 2 or 3 */ - if (sign) { - dval(rv) = -dval(rv); - sign = 0; - } -#endif - /* rv = */ rounded_quotient(dval(rv), tens[-e]); - goto ret; - } -#endif - } - e1 += nd - k; - -#ifdef IEEE_Arith -#ifdef SET_INEXACT - inexact = 1; - if (k <= DBL_DIG) - oldinexact = get_inexact(); -#endif -#ifdef Avoid_Underflow - scale = 0; -#endif -#ifdef Honor_FLT_ROUNDS - if ((rounding = Flt_Rounds) >= 2) { - if (sign) - rounding = rounding == 2 ? 0 : 2; - else - if (rounding != 2) - rounding = 0; - } -#endif -#endif /*IEEE_Arith*/ - - /* Get starting approximation = rv * 10**e1 */ - - if (e1 > 0) { - if ( (i = e1 & 15) !=0) - dval(rv) *= tens[i]; - if (e1 &= ~15) { - if (e1 > DBL_MAX_10_EXP) { - ovfl: -#ifndef NO_ERRNO - _REENT_ERRNO(ptr) = ERANGE; -#endif - /* Can't trust HUGE_VAL */ -#ifdef IEEE_Arith -#ifdef Honor_FLT_ROUNDS - switch(rounding) { - case 0: /* toward 0 */ - case 3: /* toward -infinity */ - dword0(rv) = Big0; -#ifndef _DOUBLE_IS_32BITS - dword1(rv) = Big1; -#endif /*!_DOUBLE_IS_32BITS*/ - break; - default: - dword0(rv) = Exp_mask; -#ifndef _DOUBLE_IS_32BITS - dword1(rv) = 0; -#endif /*!_DOUBLE_IS_32BITS*/ - } -#else /*Honor_FLT_ROUNDS*/ - dword0(rv) = Exp_mask; -#ifndef _DOUBLE_IS_32BITS - dword1(rv) = 0; -#endif /*!_DOUBLE_IS_32BITS*/ -#endif /*Honor_FLT_ROUNDS*/ -#ifdef SET_INEXACT - /* set overflow bit */ - dval(rv0) = 1e300; - dval(rv0) *= dval(rv0); -#endif -#else /*IEEE_Arith*/ - dword0(rv) = Big0; -#ifndef _DOUBLE_IS_32BITS - dword1(rv) = Big1; -#endif /*!_DOUBLE_IS_32BITS*/ -#endif /*IEEE_Arith*/ - if (bd0) - goto retfree; - goto ret; - } - e1 >>= 4; - for(j = 0; e1 > 1; j++, e1 >>= 1) - if (e1 & 1) - dval(rv) *= bigtens[j]; - /* The last multiplication could overflow. */ - dword0(rv) -= P*Exp_msk1; - dval(rv) *= bigtens[j]; - if ((z = dword0(rv) & Exp_mask) - > Exp_msk1*(DBL_MAX_EXP+Bias-P)) - goto ovfl; - if (z > Exp_msk1*(DBL_MAX_EXP+Bias-1-P)) { - /* set to largest number */ - /* (Can't trust DBL_MAX) */ - dword0(rv) = Big0; -#ifndef _DOUBLE_IS_32BITS - dword1(rv) = Big1; -#endif /*!_DOUBLE_IS_32BITS*/ - } - else - dword0(rv) += P*Exp_msk1; - } - } - else if (e1 < 0) { - e1 = -e1; - if ( (i = e1 & 15) !=0) - dval(rv) /= tens[i]; - if (e1 >>= 4) { - if (e1 >= 1 << n_bigtens) - goto undfl; -#ifdef Avoid_Underflow - if (e1 & Scale_Bit) - scale = 2*P; - for(j = 0; e1 > 0; j++, e1 >>= 1) - if (e1 & 1) - dval(rv) *= tinytens[j]; - if (scale && (j = 2*P + 1 - ((dword0(rv) & Exp_mask) - >> Exp_shift)) > 0) { - /* scaled rv is denormal; zap j low bits */ - if (j >= 32) { -#ifndef _DOUBLE_IS_32BITS - dword1(rv) = 0; -#endif /*!_DOUBLE_IS_32BITS*/ - if (j >= 53) - dword0(rv) = (P+2)*Exp_msk1; - else - dword0(rv) &= 0xffffffff << (j-32); - } -#ifndef _DOUBLE_IS_32BITS - else - dword1(rv) &= 0xffffffff << j; -#endif /*!_DOUBLE_IS_32BITS*/ - } -#else - for(j = 0; e1 > 1; j++, e1 >>= 1) - if (e1 & 1) - dval(rv) *= tinytens[j]; - /* The last multiplication could underflow. */ - dval(rv0) = dval(rv); - dval(rv) *= tinytens[j]; - if (!dval(rv)) { - dval(rv) = 2.*dval(rv0); - dval(rv) *= tinytens[j]; -#endif - if (!dval(rv)) { - undfl: - dval(rv) = 0.; -#ifndef NO_ERRNO - _REENT_ERRNO(ptr) = ERANGE; -#endif - if (bd0) - goto retfree; - goto ret; - } -#ifndef Avoid_Underflow -#ifndef _DOUBLE_IS_32BITS - dword0(rv) = Tiny0; - dword1(rv) = Tiny1; -#else - dword0(rv) = Tiny1; -#endif /*_DOUBLE_IS_32BITS*/ - /* The refinement below will clean - * this approximation up. - */ - } -#endif - } - } - - /* Now the hard part -- adjusting rv to the correct value.*/ - - /* Put digits into bd: true value = bd * 10^e */ - - bd0 = s2b(ptr, s0, nd0, nd, y); - if (bd0 == NULL) - goto ovfl; - - for(;;) { - bd = Balloc(ptr,bd0->_k); - if (bd == NULL) - goto ovfl; - Bcopy(bd, bd0); - bb = d2b(ptr,dval(rv), &bbe, &bbbits); /* rv = bb * 2^bbe */ - if (bb == NULL) - goto ovfl; - bs = i2b(ptr,1); - if (bs == NULL) - goto ovfl; - - if (e >= 0) { - bb2 = bb5 = 0; - bd2 = bd5 = e; - } - else { - bb2 = bb5 = -e; - bd2 = bd5 = 0; - } - if (bbe >= 0) - bb2 += bbe; - else - bd2 -= bbe; - bs2 = bb2; -#ifdef Honor_FLT_ROUNDS - if (rounding != 1) - bs2++; -#endif -#ifdef Avoid_Underflow - Lsb = LSB; - Lsb1 = 0; - j = bbe - scale; - i = j + bbbits - 1; /* logb(rv) */ - j = P + 1 - bbbits; - if (i < Emin) { /* denormal */ - i = Emin - i; - j -= i; - if (i < 32) - Lsb <<= i; - else - Lsb1 = Lsb << (i-32); - } -#else /*Avoid_Underflow*/ -#ifdef Sudden_Underflow -#ifdef IBM - j = 1 + 4*P - 3 - bbbits + ((bbe + bbbits - 1) & 3); -#else - j = P + 1 - bbbits; -#endif -#else /*Sudden_Underflow*/ - j = bbe; - i = j + bbbits - 1; /* logb(rv) */ - if (i < Emin) /* denormal */ - j += P - Emin; - else - j = P + 1 - bbbits; -#endif /*Sudden_Underflow*/ -#endif /*Avoid_Underflow*/ - bb2 += j; - bd2 += j; -#ifdef Avoid_Underflow - bd2 += scale; -#endif - i = bb2 < bd2 ? bb2 : bd2; - if (i > bs2) - i = bs2; - if (i > 0) { - bb2 -= i; - bd2 -= i; - bs2 -= i; - } - if (bb5 > 0) { - bs = pow5mult(ptr, bs, bb5); - if (bs == NULL) - goto ovfl; - bb1 = mult(ptr, bs, bb); - if (bb1 == NULL) - goto ovfl; - Bfree(ptr, bb); - bb = bb1; - } - if (bb2 > 0) { - bb = lshift(ptr, bb, bb2); - if (bb == NULL) - goto ovfl; - } - if (bd5 > 0) { - bd = pow5mult(ptr, bd, bd5); - if (bd == NULL) - goto ovfl; - } - if (bd2 > 0) { - bd = lshift(ptr, bd, bd2); - if (bd == NULL) - goto ovfl; - } - if (bs2 > 0) { - bs = lshift(ptr, bs, bs2); - if (bs == NULL) - goto ovfl; - } - delta = diff(ptr, bb, bd); - if (delta == NULL) - goto ovfl; - dsign = delta->_sign; - delta->_sign = 0; - i = cmp(delta, bs); -#ifdef Honor_FLT_ROUNDS - if (rounding != 1) { - if (i < 0) { - /* Error is less than an ulp */ - if (!delta->_x[0] && delta->_wds <= 1) { - /* exact */ -#ifdef SET_INEXACT - inexact = 0; -#endif - break; - } - if (rounding) { - if (dsign) { - adj = 1.; - goto apply_adj; - } - } - else if (!dsign) { - adj = -1.; - if (!dword1(rv) - && !(dword0(rv) & Frac_mask)) { - y = dword0(rv) & Exp_mask; -#ifdef Avoid_Underflow - if (!scale || y > 2*P*Exp_msk1) -#else - if (y) -#endif - { - delta = lshift(ptr, delta,Log2P); - if (cmp(delta, bs) <= 0) - adj = -0.5; - } - } - apply_adj: -#ifdef Avoid_Underflow - if (scale && (y = dword0(rv) & Exp_mask) - <= 2*P*Exp_msk1) - dword0(adj) += (2*P+1)*Exp_msk1 - y; -#else -#ifdef Sudden_Underflow - if ((dword0(rv) & Exp_mask) <= - P*Exp_msk1) { - dword0(rv) += P*Exp_msk1; - dval(rv) += adj*ulp(dval(rv)); - dword0(rv) -= P*Exp_msk1; - } - else -#endif /*Sudden_Underflow*/ -#endif /*Avoid_Underflow*/ - dval(rv) += adj*ulp(dval(rv)); - } - break; - } - adj = ratio(delta, bs); - if (adj < 1.) - adj = 1.; - if (adj <= 0x7ffffffe) { - /* adj = rounding ? ceil(adj) : floor(adj); */ - y = adj; - if (y != adj) { - if (!((rounding>>1) ^ dsign)) - y++; - adj = y; - } - } -#ifdef Avoid_Underflow - if (scale && (y = dword0(rv) & Exp_mask) <= 2*P*Exp_msk1) - dword0(adj) += (2*P+1)*Exp_msk1 - y; -#else -#ifdef Sudden_Underflow - if ((dword0(rv) & Exp_mask) <= P*Exp_msk1) { - dword0(rv) += P*Exp_msk1; - adj *= ulp(dval(rv)); - if (dsign) - dval(rv) += adj; - else - dval(rv) -= adj; - dword0(rv) -= P*Exp_msk1; - goto cont; - } -#endif /*Sudden_Underflow*/ -#endif /*Avoid_Underflow*/ - adj *= ulp(dval(rv)); - if (dsign) { - if (dword0(rv) == Big0 && dword1(rv) == Big1) - goto ovfl; - dval(rv) += adj; - else - dval(rv) -= adj; - goto cont; - } -#endif /*Honor_FLT_ROUNDS*/ - - if (i < 0) { - /* Error is less than half an ulp -- check for - * special case of mantissa a power of two. - */ - if (dsign || dword1(rv) || dword0(rv) & Bndry_mask -#ifdef IEEE_Arith -#ifdef Avoid_Underflow - || (dword0(rv) & Exp_mask) <= (2*P+1)*Exp_msk1 -#else - || (dword0(rv) & Exp_mask) <= Exp_msk1 -#endif -#endif - ) { -#ifdef SET_INEXACT - if (!delta->x[0] && delta->wds <= 1) - inexact = 0; -#endif - break; - } - if (!delta->_x[0] && delta->_wds <= 1) { - /* exact result */ -#ifdef SET_INEXACT - inexact = 0; -#endif - break; - } - delta = lshift(ptr,delta,Log2P); - if (cmp(delta, bs) > 0) - goto drop_down; - break; - } - if (i == 0) { - /* exactly half-way between */ - if (dsign) { - if ((dword0(rv) & Bndry_mask1) == Bndry_mask1 - && dword1(rv) == ( -#ifdef Avoid_Underflow - (scale && (y = dword0(rv) & Exp_mask) <= 2*P*Exp_msk1) - ? (0xffffffff & (0xffffffff << (2*P+1-(y>>Exp_shift)))) : -#endif - 0xffffffff)) { - /*boundary case -- increment exponent*/ - if (dword0(rv) == Big0 && dword1(rv) == Big1) - goto ovfl; - dword0(rv) = (dword0(rv) & Exp_mask) - + Exp_msk1 -#ifdef IBM - | Exp_msk1 >> 4 -#endif - ; -#ifndef _DOUBLE_IS_32BITS - dword1(rv) = 0; -#endif /*!_DOUBLE_IS_32BITS*/ -#ifdef Avoid_Underflow - dsign = 0; -#endif - break; - } - } - else if (!(dword0(rv) & Bndry_mask) && !dword1(rv)) { - drop_down: - /* boundary case -- decrement exponent */ -#ifdef Sudden_Underflow /*{{*/ - L = dword0(rv) & Exp_mask; -#ifdef IBM - if (L < Exp_msk1) -#else -#ifdef Avoid_Underflow - if (L <= (scale ? (2*P+1)*Exp_msk1 : Exp_msk1)) -#else - if (L <= Exp_msk1) -#endif /*Avoid_Underflow*/ -#endif /*IBM*/ - goto undfl; - L -= Exp_msk1; -#else /*Sudden_Underflow}{*/ -#ifdef Avoid_Underflow - if (scale) { - L = dword0(rv) & Exp_mask; - if (L <= (2*P+1)*Exp_msk1) { - if (L > (P+2)*Exp_msk1) - /* round even ==> */ - /* accept rv */ - break; - /* rv = smallest denormal */ - goto undfl; - } - } -#endif /*Avoid_Underflow*/ - L = (dword0(rv) & Exp_mask) - Exp_msk1; -#endif /*Sudden_Underflow}*/ - dword0(rv) = L | Bndry_mask1; -#ifndef _DOUBLE_IS_32BITS - dword1(rv) = 0xffffffff; -#endif /*!_DOUBLE_IS_32BITS*/ -#ifdef IBM - goto cont; -#else - break; -#endif - } -#ifndef ROUND_BIASED -#ifdef Avoid_Underflow - if (Lsb1) { - if (!(dword0(rv) & Lsb1)) - break; - } - else if (!(dword1(rv) & Lsb)) - break; -#else - if (!(dword1(rv) & LSB)) - break; -#endif -#endif - if (dsign) -#ifdef Avoid_Underflow - dval(rv) += sulp(rv, scale); -#else - dval(rv) += ulp(dval(rv)); -#endif -#ifndef ROUND_BIASED - else { -#ifdef Avoid_Underflow - dval(rv) -= sulp(rv, scale); -#else - dval(rv) -= ulp(dval(rv)); -#endif -#ifndef Sudden_Underflow - if (!dval(rv)) - goto undfl; -#endif - } -#ifdef Avoid_Underflow - dsign = 1 - dsign; -#endif -#endif - break; - } - if ((aadj = ratio(delta, bs)) <= 2.) { - if (dsign) - aadj = dval(aadj1) = 1.; - else if (dword1(rv) || dword0(rv) & Bndry_mask) { -#ifndef Sudden_Underflow - if (dword1(rv) == Tiny1 && !dword0(rv)) - goto undfl; -#endif - aadj = 1.; - dval(aadj1) = -1.; - } - else { - /* special case -- power of FLT_RADIX to be */ - /* rounded down... */ - - if (aadj < 2./FLT_RADIX) - aadj = 1./FLT_RADIX; - else - aadj *= 0.5; - dval(aadj1) = -aadj; - } - } - else { - aadj *= 0.5; - dval(aadj1) = dsign ? aadj : -aadj; -#ifdef Check_FLT_ROUNDS - switch(Rounding) { - case 2: /* towards +infinity */ - dval(aadj1) -= 0.5; - break; - case 0: /* towards 0 */ - case 3: /* towards -infinity */ - dval(aadj1) += 0.5; - } -#else - if (Flt_Rounds == 0) - dval(aadj1) += 0.5; -#endif /*Check_FLT_ROUNDS*/ - } - y = dword0(rv) & Exp_mask; - - /* Check for overflow */ - - if (y == Exp_msk1*(DBL_MAX_EXP+Bias-1)) { - dval(rv0) = dval(rv); - dword0(rv) -= P*Exp_msk1; - adj = dval(aadj1) * ulp(dval(rv)); - dval(rv) += adj; - if ((dword0(rv) & Exp_mask) >= - Exp_msk1*(DBL_MAX_EXP+Bias-P)) { - if (dword0(rv0) == Big0 && dword1(rv0) == Big1) - goto ovfl; - dword0(rv) = Big0; -#ifndef _DOUBLE_IS_32BITS - dword1(rv) = Big1; -#endif /*!_DOUBLE_IS_32BITS*/ - goto cont; - } - else - dword0(rv) += P*Exp_msk1; - } - else { -#ifdef Avoid_Underflow - if (scale && y <= 2*P*Exp_msk1) { - if (aadj <= 0x7fffffff) { - if ((z = aadj) == 0) - z = 1; - aadj = z; - dval(aadj1) = dsign ? aadj : -aadj; - } - dword0(aadj1) += (2*P+1)*Exp_msk1 - y; - } - adj = dval(aadj1) * ulp(dval(rv)); - dval(rv) += adj; -#else -#ifdef Sudden_Underflow - if ((dword0(rv) & Exp_mask) <= P*Exp_msk1) { - dval(rv0) = dval(rv); - dword0(rv) += P*Exp_msk1; - adj = dval(aadj1) * ulp(dval(rv)); - dval(rv) += adj; -#ifdef IBM - if ((dword0(rv) & Exp_mask) < P*Exp_msk1) -#else - if ((dword0(rv) & Exp_mask) <= P*Exp_msk1) -#endif - { - if (dword0(rv0) == Tiny0 - && dword1(rv0) == Tiny1) - goto undfl; -#ifndef _DOUBLE_IS_32BITS - dword0(rv) = Tiny0; - dword1(rv) = Tiny1; -#else - dword0(rv) = Tiny1; -#endif /*_DOUBLE_IS_32BITS*/ - goto cont; - } - else - dword0(rv) -= P*Exp_msk1; - } - else { - adj = dval(aadj1) * ulp(dval(rv)); - dval(rv) += adj; - } -#else /*Sudden_Underflow*/ - /* Compute adj so that the IEEE rounding rules will - * correctly round rv + adj in some half-way cases. - * If rv * ulp(rv) is denormalized (i.e., - * y <= (P-1)*Exp_msk1), we must adjust aadj to avoid - * trouble from bits lost to denormalization; - * example: 1.2e-307 . - */ - if (y <= (P-1)*Exp_msk1 && aadj > 1.) { - dval(aadj1) = (double)(int)(aadj + 0.5); - if (!dsign) - dval(aadj1) = -dval(aadj1); - } - adj = dval(aadj1) * ulp(dval(rv)); - dval(rv) += adj; -#endif /*Sudden_Underflow*/ -#endif /*Avoid_Underflow*/ - } - z = dword0(rv) & Exp_mask; -#ifndef SET_INEXACT -#ifdef Avoid_Underflow - if (!scale) -#endif - if (y == z) { - /* Can we stop now? */ -#ifndef _DOUBLE_IS_32BITS - /* If FE_INVALID floating point exceptions are - enabled, a conversion to a 32 bit value is - dangerous. A positive double value can result - in a negative 32 bit int, thus raising SIGFPE. - To avoid this, always convert into 64 bit here. */ - __int64_t L = (__int64_t)aadj; -#else - L = (Long)aadj; -#endif - aadj -= L; - /* The tolerances below are conservative. */ - if (dsign || dword1(rv) || dword0(rv) & Bndry_mask) { - if (aadj < .4999999 || aadj > .5000001) - break; - } - else if (aadj < .4999999/FLT_RADIX) - break; - } -#endif - cont: - Bfree(ptr,bb); - Bfree(ptr,bd); - Bfree(ptr,bs); - Bfree(ptr,delta); - } -#ifdef SET_INEXACT - if (inexact) { - if (!oldinexact) { - dword0(rv0) = Exp_1 + (70 << Exp_shift); -#ifndef _DOUBLE_IS_32BITS - dword1(rv0) = 0; -#endif /*!_DOUBLE_IS_32BITS*/ - dval(rv0) += 1.; - } - } - else if (!oldinexact) - clear_inexact(); -#endif -#ifdef Avoid_Underflow - if (scale) { - dword0(rv0) = Exp_1 - 2*P*Exp_msk1; -#ifndef _DOUBLE_IS_32BITS - dword1(rv0) = 0; -#endif /*!_DOUBLE_IS_32BITS*/ - dval(rv) *= dval(rv0); -#ifndef NO_ERRNO - /* try to avoid the bug of testing an 8087 register value */ - if ((dword0(rv) & Exp_mask) == 0) - _REENT_ERRNO(ptr) = ERANGE; -#endif - } -#endif /* Avoid_Underflow */ -#ifdef SET_INEXACT - if (inexact && !(dword0(rv) & Exp_mask)) { - /* set underflow bit */ - dval(rv0) = 1e-300; - dval(rv0) *= dval(rv0); - } -#endif - retfree: - Bfree(ptr,bb); - Bfree(ptr,bd); - Bfree(ptr,bs); - Bfree(ptr,bd0); - Bfree(ptr,delta); - ret: - if (se) - *se = (char *)s; - return sign ? -dval(rv) : dval(rv); -} - -double -_strtod_r (struct _reent *ptr, - const char *__restrict s00, - char **__restrict se) -{ - return _strtod_l (ptr, s00, se, __get_current_locale ()); -} - -#ifndef _REENT_ONLY - -double -strtod_l (const char *__restrict s00, char **__restrict se, locale_t loc) -{ - return _strtod_l (_REENT, s00, se, loc); -} - -double -strtod (const char *__restrict s00, char **__restrict se) -{ - return _strtod_l (_REENT, s00, se, __get_current_locale ()); -} - -float -strtof_l (const char *__restrict s00, char **__restrict se, locale_t loc) -{ - double val = _strtod_l (_REENT, s00, se, loc); - if (isnan (val)) - return signbit (val) ? -nanf ("") : nanf (""); - float retval = (float) val; -#ifndef NO_ERRNO - if (isinf (retval) && !isinf (val)) - _REENT_ERRNO(_REENT) = ERANGE; -#endif - return retval; -} - -/* - * These two functions are not quite correct as they return true for - * zero, however they are 'good enough' for the test in strtof below - * as we only need to know whether the double test is false when - * the float test is true. - */ -static inline int -isdenorm(double d) -{ - U u; - dval(u) = d; - return (dword0(u) & Exp_mask) == 0; -} - -static inline int -isdenormf(float f) -{ - union { float f; __uint32_t i; } u; - u.f = f; - return (u.i & 0x7f800000) == 0; -} - -float -strtof (const char *__restrict s00, - char **__restrict se) -{ - double val = _strtod_l (_REENT, s00, se, __get_current_locale ()); - if (isnan (val)) - return signbit (val) ? -nanf ("") : nanf (""); - float retval = (float) val; -#ifndef NO_ERRNO - if ((isinf (retval) && !isinf (val)) || (isdenormf(retval) && !isdenorm(val))) - _REENT_ERRNO(_REENT) = ERANGE; -#endif - return retval; -} - -#endif diff --git a/lib/stdlib/strtodg.c b/lib/stdlib/strtodg.c deleted file mode 100644 index 0b5af99..0000000 --- a/lib/stdlib/strtodg.c +++ /dev/null @@ -1,1126 +0,0 @@ -/**************************************************************** - -The author of this software is David M. Gay. - -Copyright (C) 1998-2001 by Lucent Technologies -All Rights Reserved - -Permission to use, copy, modify, and distribute this software and -its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notice appear in all -copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the name of Lucent or any of its entities -not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. -IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY -SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER -IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - -****************************************************************/ - -/* Please send bug reports to David M. Gay (dmg at acm dot org, - * with " at " changed at "@" and " dot " changed to "."). */ - -#include <_ansi.h> -#include -#include -#include -#include "mprec.h" -#include "gdtoa.h" - -#include "locale.h" - -#if defined (_HAVE_LONG_DOUBLE) && !defined (_LDBL_EQ_DBL) - -#define USE_LOCALE - - static const int -fivesbits[] = { 0, 3, 5, 7, 10, 12, 14, 17, 19, 21, - 24, 26, 28, 31, 33, 35, 38, 40, 42, 45, - 47, 49, 52 -#ifdef VAX - , 54, 56 -#endif - }; - -static _Bigint * -sum (struct _reent *p, _Bigint *a, _Bigint *b) -{ - _Bigint *c; - __ULong carry, *xc, *xa, *xb, *xe, y; -#ifdef Pack_32 - __ULong z; -#endif - - if (a->_wds < b->_wds) { - c = b; b = a; a = c; - } - c = eBalloc(p, a->_k); - c->_wds = a->_wds; - carry = 0; - xa = a->_x; - xb = b->_x; - xc = c->_x; - xe = xc + b->_wds; -#ifdef Pack_32 - do { - y = (*xa & 0xffff) + (*xb & 0xffff) + carry; - carry = (y & 0x10000) >> 16; - z = (*xa++ >> 16) + (*xb++ >> 16) + carry; - carry = (z & 0x10000) >> 16; - Storeinc(xc, z, y); - } - while(xc < xe); - xe += a->_wds - b->_wds; - while(xc < xe) { - y = (*xa & 0xffff) + carry; - carry = (y & 0x10000) >> 16; - z = (*xa++ >> 16) + carry; - carry = (z & 0x10000) >> 16; - Storeinc(xc, z, y); - } -#else - do { - y = *xa++ + *xb++ + carry; - carry = (y & 0x10000) >> 16; - *xc++ = y & 0xffff; - } - while(xc < xe); - xe += a->_wds - b->_wds; - while(xc < xe) { - y = *xa++ + carry; - carry = (y & 0x10000) >> 16; - *xc++ = y & 0xffff; - } -#endif - if (carry) { - if (c->_wds == c->_maxwds) { - b = eBalloc(p, c->_k + 1); - Bcopy(b, c); - Bfree(p, c); - c = b; - } - c->_x[c->_wds++] = 1; - } - return c; - } - -static void -rshift (_Bigint *b, int k) -{ - __ULong *x, *x1, *xe, y; - int n; - - x = x1 = b->_x; - n = k >> kshift; - if (n < b->_wds) { - xe = x + b->_wds; - x += n; - if (k &= kmask) { - n = ULbits - k; - y = *x++ >> k; - while(x < xe) { - *x1++ = (y | (*x << n)) & ALL_ON; - y = *x++ >> k; - } - if ((*x1 = y) !=0) - x1++; - } - else - while(x < xe) - *x1++ = *x++; - } - if ((b->_wds = x1 - b->_x) == 0) - b->_x[0] = 0; - } - -static int -trailz (_Bigint *b) -{ - __ULong L, *x, *xe; - int n = 0; - - x = b->_x; - xe = x + b->_wds; - for(n = 0; x < xe && !*x; x++) - n += ULbits; - if (x < xe) { - L = *x; - n += lo0bits(&L); - } - return n; - } - -_Bigint * -increment (struct _reent *p, _Bigint *b) -{ - __ULong *x, *xe; - _Bigint *b1; -#ifdef Pack_16 - __ULong carry = 1, y; -#endif - - x = b->_x; - xe = x + b->_wds; -#ifdef Pack_32 - do { - if (*x < (__ULong)0xffffffffL) { - ++*x; - return b; - } - *x++ = 0; - } while(x < xe); -#else - do { - y = *x + carry; - carry = y >> 16; - *x++ = y & 0xffff; - if (!carry) - return b; - } while(x < xe); - if (carry) -#endif - { - if (b->_wds >= b->_maxwds) { - b1 = eBalloc(p,b->_k+1); - Bcopy(b1,b); - Bfree(p,b); - b = b1; - } - b->_x[b->_wds++] = 1; - } - return b; - } - -int -decrement (_Bigint *b) -{ - __ULong *x, *xe; -#ifdef Pack_16 - __ULong borrow = 1, y; -#endif - - x = b->_x; - xe = x + b->_wds; -#ifdef Pack_32 - do { - if (*x) { - --*x; - break; - } - *x++ = 0xffffffffL; - } - while(x < xe); -#else - do { - y = *x - borrow; - borrow = (y & 0x10000) >> 16; - *x++ = y & 0xffff; - } while(borrow && x < xe); -#endif - return STRTOG_Inexlo; - } - -static int -all_on (_Bigint *b, int n) -{ - __ULong *x, *xe; - - x = b->_x; - xe = x + (n >> kshift); - while(x < xe) - if ((*x++ & ALL_ON) != ALL_ON) - return 0; - if (n &= kmask) - return ((*x | (ALL_ON << n)) & ALL_ON) == ALL_ON; - return 1; - } - -_Bigint * -set_ones (struct _reent *p, _Bigint *b, int n) -{ - int k; - __ULong *x, *xe; - - k = (n + ((1 << kshift) - 1)) >> kshift; - if (b->_k < k) { - Bfree(p,b); - b = eBalloc(p,k); - } - k = n >> kshift; - if (n &= kmask) - k++; - b->_wds = k; - x = b->_x; - xe = x + k; - while(x < xe) - *x++ = ALL_ON; - if (n) - x[-1] >>= ULbits - n; - return b; - } - -static int -rvOK (struct _reent *p, double d, FPI *fpi, Long *exp, __ULong *bits, int exact, - int rd, int *irv) -{ - _Bigint *b; - __ULong carry, inex, lostbits; - int bdif, e, j, k, k1, nb, rv; - - carry = rv = 0; - b = d2b(p, d, &e, &bdif); - bdif -= nb = fpi->nbits; - e += bdif; - if (bdif <= 0) { - if (exact) - goto trunc; - goto ret; - } - if (P == nb) { - if ( -#ifndef IMPRECISE_INEXACT - exact && -#endif - fpi->rounding == -#ifdef RND_PRODQUOT - FPI_Round_near -#else - Flt_Rounds -#endif - ) goto trunc; - goto ret; - } - switch(rd) { - case 1: - goto trunc; - case 2: - break; - default: /* round near */ - k = bdif - 1; - if (k < 0) - goto trunc; - if (!k) { - if (!exact) - goto ret; - if (b->_x[0] & 2) - break; - goto trunc; - } - if (b->_x[k>>kshift] & ((__ULong)1 << (k & kmask))) - break; - goto trunc; - } - /* "break" cases: round up 1 bit, then truncate; bdif > 0 */ - carry = 1; - trunc: - inex = lostbits = 0; - if (bdif > 0) { - if ( (lostbits = any_on(b, bdif)) !=0) - inex = STRTOG_Inexlo; - rshift(b, bdif); - if (carry) { - inex = STRTOG_Inexhi; - b = increment(p, b); - if ( (j = nb & kmask) !=0) - j = ULbits - j; - if (hi0bits(b->_x[b->_wds - 1]) != j) { - if (!lostbits) - lostbits = b->_x[0] & 1; - rshift(b, 1); - e++; - } - } - } - else if (bdif < 0) - b = lshift(p, b, -bdif); - if (e < fpi->emin) { - k = fpi->emin - e; - e = fpi->emin; - if (k > nb || fpi->sudden_underflow) { - b->_wds = inex = 0; - *irv = STRTOG_Underflow | STRTOG_Inexlo; -#ifndef NO_ERRNO - errno = ERANGE; -#endif - } - else { - k1 = k - 1; - if (k1 > 0 && !lostbits) - lostbits = any_on(b, k1); - if (!lostbits && !exact) - goto ret; - lostbits |= - carry = b->_x[k1>>kshift] & (1 << (k1 & kmask)); - rshift(b, k); - *irv = STRTOG_Denormal; - if (carry) { - b = increment(p, b); - inex = STRTOG_Inexhi | STRTOG_Underflow; -#ifndef NO_ERRNO - errno = ERANGE; -#endif - } - else if (lostbits) - inex = STRTOG_Inexlo | STRTOG_Underflow; -#ifndef NO_ERRNO - errno = ERANGE; -#endif - } - } - else if (e > fpi->emax) { - e = fpi->emax + 1; - *irv = STRTOG_Infinite | STRTOG_Overflow | STRTOG_Inexhi; -#ifndef NO_ERRNO - errno = ERANGE; -#endif - b->_wds = inex = 0; - } - *exp = e; - copybits(bits, nb, b); - *irv |= inex; - rv = 1; - ret: - Bfree(p,b); - return rv; - } - -static int -mantbits (U d) -{ - __ULong L; -#ifdef VAX - L = word1(d) << 16 | word1(d) >> 16; - if (L) -#else - if ( (L = word1(d)) !=0) -#endif - return P - lo0bits(&L); -#ifdef VAX - L = word0(d) << 16 | word0(d) >> 16 | Exp_msk11; -#else - L = word0(d) | Exp_msk1; -#endif - return P - 32 - lo0bits(&L); - } - -int -_strtodg_l (struct _reent *p, const char *s00, char **se, FPI *fpi, Long *exp, - __ULong *bits, locale_t loc) -{ - int abe, abits, asub; - int bb0, bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, decpt, denorm; - int dsign, e, e1, e2, emin, esign, finished, i, inex, irv; - int j, k, nbits, nd, nd0, nf, nz, nz0, rd, rvbits, rve, rve1, sign; - int sudden_underflow; - const char *s, *s0, *s1; - //double adj, adj0, rv, tol; - double adj0, tol; - U adj, rv; - Long L; - __ULong y, z; - _Bigint *ab, *bb, *bb1, *bd, *bd0, *bs, *delta, *rvb, *rvb0; - const char *decimal_point = __get_numeric_locale(loc)->decimal_point; - int dec_len = strlen (decimal_point); - - irv = STRTOG_Zero; - denorm = sign = nz0 = nz = 0; - dval(rv) = 0.; - rvb = 0; - nbits = fpi->nbits; - for(s = s00;;s++) switch(*s) { - case '-': - sign = 1; - /* no break */ - case '+': - if (*++s) - goto break2; - /* no break */ - case 0: - sign = 0; - irv = STRTOG_NoNumber; - s = s00; - goto ret; - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case ' ': - continue; - default: - goto break2; - } - break2: - if (*s == '0') { -#ifndef NO_HEX_FP - switch(s[1]) { - case 'x': - case 'X': - irv = gethex(p, &s, fpi, exp, &rvb, sign, loc); - if (irv == STRTOG_NoNumber) { - s = s00; - sign = 0; - } - goto ret; - } -#endif - nz0 = 1; - while(*++s == '0') ; - if (!*s) - goto ret; - } - sudden_underflow = fpi->sudden_underflow; - s0 = s; - y = z = 0; - for(decpt = nd = nf = 0; (c = *s) >= '0' && c <= '9'; nd++, s++) - if (nd < 9) - y = 10*y + c - '0'; - else if (nd < 16) - z = 10*z + c - '0'; - nd0 = nd; -#ifdef USE_LOCALE - if (strncmp (s, decimal_point, dec_len) == 0) -#else - if (c == '.') -#endif - { - decpt = 1; -#ifdef USE_LOCALE - c = *(s += dec_len); -#else - c = *++s; -#endif - if (!nd) { - for(; c == '0'; c = *++s) - nz++; - if (c > '0' && c <= '9') { - s0 = s; - nf += nz; - nz = 0; - goto have_dig; - } - goto dig_done; - } - for(; c >= '0' && c <= '9'; c = *++s) { - have_dig: - nz++; - if (c -= '0') { - nf += nz; - for(i = 1; i < nz; i++) - if (nd++ < 9) - y *= 10; - else if (nd <= DBL_DIG + 1) - z *= 10; - if (nd++ < 9) - y = 10*y + c; - else if (nd <= DBL_DIG + 1) - z = 10*z + c; - nz = 0; - } - } - } - dig_done: - e = 0; - if (c == 'e' || c == 'E') { - if (!nd && !nz && !nz0) { - irv = STRTOG_NoNumber; - s = s00; - goto ret; - } - s00 = s; - esign = 0; - switch(c = *++s) { - case '-': - esign = 1; - case '+': - c = *++s; - } - if (c >= '0' && c <= '9') { - while(c == '0') - c = *++s; - if (c > '0' && c <= '9') { - L = c - '0'; - s1 = s; - while((c = *++s) >= '0' && c <= '9') - L = 10*L + c - '0'; - if (s - s1 > 8 || L > 19999) - /* Avoid confusion from exponents - * so large that e might overflow. - */ - e = 19999; /* safe for 16 bit ints */ - else - e = (int)L; - if (esign) - e = -e; - } - else - e = 0; - } - else - s = s00; - } - if (!nd) { - if (!nz && !nz0) { -#ifdef INFNAN_CHECK - /* Check for Nan and Infinity */ - if (!decpt) - switch(c) { - case 'i': - case 'I': - if (match(&s,"nf")) { - --s; - if (!match(&s,"inity")) - ++s; - irv = STRTOG_Infinite; - goto infnanexp; - } - break; - case 'n': - case 'N': - if (match(&s, "an")) { - irv = STRTOG_NaN; - *exp = fpi->emax + 1; -#ifndef No_Hex_NaN - if (*s == '(') /*)*/ - irv = hexnan(&s, fpi, bits); -#endif - goto infnanexp; - } - } -#endif /* INFNAN_CHECK */ - irv = STRTOG_NoNumber; - s = s00; - } - goto ret; - } - - irv = STRTOG_Normal; - e1 = e -= nf; - rd = 0; - switch(fpi->rounding & 3) { - case FPI_Round_up: - rd = 2 - sign; - break; - case FPI_Round_zero: - rd = 1; - break; - case FPI_Round_down: - rd = 1 + sign; - } - - /* Now we have nd0 digits, starting at s0, followed by a - * decimal point, followed by nd-nd0 digits. The number we're - * after is the integer represented by those digits times - * 10**e */ - - if (!nd0) - nd0 = nd; - k = nd < DBL_DIG + 1 ? nd : DBL_DIG + 1; - dval(rv) = y; - if (k > 9) - dval(rv) = tens[k - 9] * dval(rv) + z; - bd0 = 0; - if (nbits <= P && nd <= DBL_DIG) { - if (!e) { - if (rvOK(p, dval(rv), fpi, exp, bits, 1, rd, &irv)) - goto ret; - } - else if (e > 0) { - if (e <= Ten_pmax) { -#ifdef VAX - goto vax_ovfl_check; -#else - i = fivesbits[e] + mantbits(rv) <= P; - /* rv = */ rounded_product(dval(rv), tens[e]); - if (rvOK(p, dval(rv), fpi, exp, bits, i, rd, &irv)) - goto ret; - e1 -= e; - goto rv_notOK; -#endif - } - i = DBL_DIG - nd; - if (e <= Ten_pmax + i) { - /* A fancier test would sometimes let us do - * this for larger i values. - */ - e2 = e - i; - e1 -= i; - dval(rv) *= tens[i]; -#ifdef VAX - /* VAX exponent range is so narrow we must - * worry about overflow here... - */ - vax_ovfl_check: - dval(adj) = dval(rv); - word0(adj) -= P*Exp_msk1; - /* adj = */ rounded_product(dval(adj), tens[e2]); - if ((word0(adj) & Exp_mask) - > Exp_msk1*(DBL_MAX_EXP+Bias-1-P)) - goto rv_notOK; - word0(adj) += P*Exp_msk1; - dval(rv) = dval(adj); -#else - /* rv = */ rounded_product(dval(rv), tens[e2]); -#endif - if (rvOK(p, dval(rv), fpi, exp, bits, 0, rd, &irv)) - goto ret; - e1 -= e2; - } - } -#ifndef Inaccurate_Divide - else if (e >= -Ten_pmax) { - /* rv = */ rounded_quotient(dval(rv), tens[-e]); - if (rvOK(p, dval(rv), fpi, exp, bits, 0, rd, &irv)) - goto ret; - e1 -= e; - } -#endif - } - rv_notOK: - e1 += nd - k; - - /* Get starting approximation = rv * 10**e1 */ - - e2 = 0; - if (e1 > 0) { - if ( (i = e1 & 15) !=0) - dval(rv) *= tens[i]; - if (e1 &= ~15) { - e1 >>= 4; - while(e1 >= (1 << (n_bigtens-1))) { - e2 += ((word0(rv) & Exp_mask) - >> Exp_shift1) - Bias; - word0(rv) &= ~Exp_mask; - word0(rv) |= Bias << Exp_shift1; - dval(rv) *= bigtens[n_bigtens-1]; - e1 -= 1 << (n_bigtens-1); - } - e2 += ((word0(rv) & Exp_mask) >> Exp_shift1) - Bias; - word0(rv) &= ~Exp_mask; - word0(rv) |= Bias << Exp_shift1; - for(j = 0; e1 > 0; j++, e1 >>= 1) - if (e1 & 1) - dval(rv) *= bigtens[j]; - } - } - else if (e1 < 0) { - e1 = -e1; - if ( (i = e1 & 15) !=0) - dval(rv) /= tens[i]; - if (e1 &= ~15) { - e1 >>= 4; - while(e1 >= (1 << (n_bigtens-1))) { - e2 += ((word0(rv) & Exp_mask) - >> Exp_shift1) - Bias; - word0(rv) &= ~Exp_mask; - word0(rv) |= Bias << Exp_shift1; - dval(rv) *= tinytens[n_bigtens-1]; - e1 -= 1 << (n_bigtens-1); - } - e2 += ((word0(rv) & Exp_mask) >> Exp_shift1) - Bias; - word0(rv) &= ~Exp_mask; - word0(rv) |= Bias << Exp_shift1; - for(j = 0; e1 > 0; j++, e1 >>= 1) - if (e1 & 1) - dval(rv) *= tinytens[j]; - } - } -#ifdef IBM - /* e2 is a correction to the (base 2) exponent of the return - * value, reflecting adjustments above to avoid overflow in the - * native arithmetic. For native IBM (base 16) arithmetic, we - * must multiply e2 by 4 to change from base 16 to 2. - */ - e2 <<= 2; -#endif - rvb = d2b(p, dval(rv), &rve, &rvbits); /* rv = rvb * 2^rve */ - rve += e2; - if ((j = rvbits - nbits) > 0) { - rshift(rvb, j); - rvbits = nbits; - rve += j; - } - bb0 = 0; /* trailing zero bits in rvb */ - e2 = rve + rvbits - nbits; - if (e2 > fpi->emax + 1) - goto huge; - rve1 = rve + rvbits - nbits; - if (e2 < (emin = fpi->emin)) { - denorm = 1; - j = rve - emin; - if (j > 0) { - rvb = lshift(p, rvb, j); - rvbits += j; - } - else if (j < 0) { - rvbits += j; - if (rvbits <= 0) { - if (rvbits < -1) { - ufl: - rvb->_wds = 0; - rvb->_x[0] = 0; - *exp = emin; - irv = STRTOG_Underflow | STRTOG_Inexlo; -#ifndef NO_ERRNO - errno = ERANGE; -#endif - goto ret; - } - rvb->_x[0] = rvb->_wds = rvbits = 1; - } - else - rshift(rvb, -j); - } - rve = rve1 = emin; - if (sudden_underflow && e2 + 1 < emin) - goto ufl; - } - - /* Now the hard part -- adjusting rv to the correct value.*/ - - /* Put digits into bd: true value = bd * 10^e */ - - bd0 = s2b(p, s0, nd0, nd, y); - - for(;;) { - bd = eBalloc(p,bd0->_k); - Bcopy(bd, bd0); - bb = eBalloc(p,rvb->_k); - Bcopy(bb, rvb); - bbbits = rvbits - bb0; - bbe = rve + bb0; - bs = i2b(p, 1); - - if (e >= 0) { - bb2 = bb5 = 0; - bd2 = bd5 = e; - } - else { - bb2 = bb5 = -e; - bd2 = bd5 = 0; - } - if (bbe >= 0) - bb2 += bbe; - else - bd2 -= bbe; - bs2 = bb2; - j = nbits + 1 - bbbits; - i = bbe + bbbits - nbits; - if (i < emin) /* denormal */ - j += i - emin; - bb2 += j; - bd2 += j; - i = bb2 < bd2 ? bb2 : bd2; - if (i > bs2) - i = bs2; - if (i > 0) { - bb2 -= i; - bd2 -= i; - bs2 -= i; - } - if (bb5 > 0) { - bs = pow5mult(p, bs, bb5); - bb1 = mult(p, bs, bb); - Bfree(p,bb); - bb = bb1; - } - bb2 -= bb0; - if (bb2 > 0) - bb = lshift(p, bb, bb2); - else if (bb2 < 0) - rshift(bb, -bb2); - if (bd5 > 0) - bd = pow5mult(p, bd, bd5); - if (bd2 > 0) - bd = lshift(p, bd, bd2); - if (bs2 > 0) - bs = lshift(p, bs, bs2); - asub = 1; - inex = STRTOG_Inexhi; - delta = diff(p, bb, bd); - if (delta->_wds <= 1 && !delta->_x[0]) - break; - dsign = delta->_sign; - delta->_sign = finished = 0; - L = 0; - i = cmp(delta, bs); - if (rd && i <= 0) { - irv = STRTOG_Normal; - if ( (finished = dsign ^ (rd&1)) !=0) { - if (dsign != 0) { - irv |= STRTOG_Inexhi; - goto adj1; - } - irv |= STRTOG_Inexlo; - if (rve1 == emin) - goto adj1; - for(i = 0, j = nbits; j >= ULbits; - i++, j -= ULbits) { - if (rvb->_x[i] & ALL_ON) - goto adj1; - } - if (j > 1 && lo0bits(rvb->_x + i) < j - 1) - goto adj1; - rve = rve1 - 1; - rvb = set_ones(p, rvb, rvbits = nbits); - break; - } - irv |= dsign ? STRTOG_Inexlo : STRTOG_Inexhi; - break; - } - if (i < 0) { - /* Error is less than half an ulp -- check for - * special case of mantissa a power of two. - */ - irv = dsign - ? STRTOG_Normal | STRTOG_Inexlo - : STRTOG_Normal | STRTOG_Inexhi; - if (dsign || bbbits > 1 || denorm || rve1 == emin) - break; - delta = lshift(p, delta,1); - if (cmp(delta, bs) > 0) { - irv = STRTOG_Normal | STRTOG_Inexlo; - goto drop_down; - } - break; - } - if (i == 0) { - /* exactly half-way between */ - if (dsign) { - if (denorm && all_on(rvb, rvbits)) { - /*boundary case -- increment exponent*/ - rvb->_wds = 1; - rvb->_x[0] = 1; - rve = emin + nbits - (rvbits = 1); - irv = STRTOG_Normal | STRTOG_Inexhi; - denorm = 0; - break; - } - irv = STRTOG_Normal | STRTOG_Inexlo; - } - else if (bbbits == 1) { - irv = STRTOG_Normal; - drop_down: - /* boundary case -- decrement exponent */ - if (rve1 == emin) { - irv = STRTOG_Normal | STRTOG_Inexhi; - if (rvb->_wds == 1 && rvb->_x[0] == 1) - sudden_underflow = 1; - break; - } - rve -= nbits; - rvb = set_ones(p, rvb, rvbits = nbits); - break; - } - else - irv = STRTOG_Normal | STRTOG_Inexhi; - if ((bbbits < nbits && !denorm) || !(rvb->_x[0] & 1)) - break; - if (dsign) { - rvb = increment(p, rvb); - j = kmask & (ULbits - (rvbits & kmask)); - if (hi0bits(rvb->_x[rvb->_wds - 1]) != j) - rvbits++; - irv = STRTOG_Normal | STRTOG_Inexhi; - } - else { - if (bbbits == 1) - goto undfl; - decrement(rvb); - irv = STRTOG_Normal | STRTOG_Inexlo; - } - break; - } - if ((dval(adj) = ratio(delta, bs)) <= 2.) { - adj1: - inex = STRTOG_Inexlo; - if (dsign) { - asub = 0; - inex = STRTOG_Inexhi; - } - else if (denorm && bbbits <= 1) { - undfl: - rvb->_wds = 0; - rve = emin; - irv = STRTOG_Underflow | STRTOG_Inexlo; -#ifndef NO_ERRNO - errno = ERANGE; -#endif - break; - } - adj0 = dval(adj) = 1.; - } - else { - adj0 = dval(adj) *= 0.5; - if (dsign) { - asub = 0; - inex = STRTOG_Inexlo; - } - if (dval(adj) < 2147483647.) { - L = adj0; - adj0 -= L; - switch(rd) { - case 0: - if (adj0 >= .5) - goto inc_L; - break; - case 1: - if (asub && adj0 > 0.) - goto inc_L; - break; - case 2: - if (!asub && adj0 > 0.) { - inc_L: - L++; - inex = STRTOG_Inexact - inex; - } - } - dval(adj) = L; - } - } - y = rve + rvbits; - - /* adj *= ulp(dval(rv)); */ - /* if (asub) rv -= adj; else rv += adj; */ - - if (!denorm && rvbits < nbits) { - rvb = lshift(p, rvb, j = nbits - rvbits); - rve -= j; - rvbits = nbits; - } - ab = d2b(p, dval(adj), &abe, &abits); - if (abe < 0) - rshift(ab, -abe); - else if (abe > 0) - ab = lshift(p, ab, abe); - rvb0 = rvb; - if (asub) { - /* rv -= adj; */ - j = hi0bits(rvb->_x[rvb->_wds-1]); - rvb = diff(p, rvb, ab); - k = rvb0->_wds - 1; - if (denorm) - /* do nothing */; - else if (rvb->_wds <= k - || hi0bits( rvb->_x[k]) > - hi0bits(rvb0->_x[k])) { - /* unlikely; can only have lost 1 high bit */ - if (rve1 == emin) { - --rvbits; - denorm = 1; - } - else { - rvb = lshift(p, rvb, 1); - --rve; - --rve1; - L = finished = 0; - } - } - } - else { - rvb = sum(p, rvb, ab); - k = rvb->_wds - 1; - if (k >= rvb0->_wds - || hi0bits(rvb->_x[k]) < hi0bits(rvb0->_x[k])) { - if (denorm) { - if (++rvbits == nbits) - denorm = 0; - } - else { - rshift(rvb, 1); - rve++; - rve1++; - L = 0; - } - } - } - Bfree(p,ab); - Bfree(p,rvb0); - if (finished) - break; - - z = rve + rvbits; - if (y == z && L) { - /* Can we stop now? */ - tol = dval(adj) * 5e-16; /* > max rel error */ - dval(adj) = adj0 - .5; - if (dval(adj) < -tol) { - if (adj0 > tol) { - irv |= inex; - break; - } - } - else if (dval(adj) > tol && adj0 < 1. - tol) { - irv |= inex; - break; - } - } - bb0 = denorm ? 0 : trailz(rvb); - Bfree(p,bb); - Bfree(p,bd); - Bfree(p,bs); - Bfree(p,delta); - } - if (!denorm && (j = nbits - rvbits)) { - if (j > 0) - rvb = lshift(p, rvb, j); - else - rshift(rvb, -j); - rve -= j; - } - *exp = rve; - Bfree(p,bb); - Bfree(p,bd); - Bfree(p,bs); - Bfree(p,bd0); - Bfree(p,delta); - if (rve > fpi->emax) { - huge: - rvb->_wds = 0; - irv = STRTOG_Infinite | STRTOG_Overflow | STRTOG_Inexhi; -#ifndef NO_ERRNO - errno = ERANGE; -#endif - infnanexp: - *exp = fpi->emax + 1; - } - ret: - if (denorm) { - if (sudden_underflow) { - rvb->_wds = 0; - irv = STRTOG_Underflow | STRTOG_Inexlo; -#ifndef NO_ERRNO - errno = ERANGE; -#endif - } - else { - irv = (irv & ~STRTOG_Retmask) | - (rvb->_wds > 0 ? STRTOG_Denormal : STRTOG_Zero); - if (irv & STRTOG_Inexact) - irv |= STRTOG_Underflow; -#ifndef NO_ERRNO - errno = ERANGE; -#endif - } - } - if (se) - *se = (char *)s; - if (sign) - irv |= STRTOG_Neg; - if (rvb) { - copybits(bits, nbits, rvb); - Bfree(p,rvb); - } - return irv; - } - -#endif /* _HAVE_LONG_DOUBLE && !_LDBL_EQ_DBL */ diff --git a/lib/stdlib/strtoimax.c b/lib/stdlib/strtoimax.c deleted file mode 100644 index a64b7da..0000000 --- a/lib/stdlib/strtoimax.c +++ /dev/null @@ -1,172 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Copyright (c) 2011 The FreeBSD Foundation - * All rights reserved. - * Portions of this software were developed by David Chisnall - * under sponsorship from the FreeBSD Foundation. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "from @(#)strtol.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ -#include -__FBSDID("$FreeBSD: head/lib/libc/stdlib/strtoimax.c 251672 2013-06-13 00:19:30Z emaste $"); - -#include -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" - -/* - * Convert a string to an intmax_t integer. - * - * Assumes that the upper and lower case - * alphabets and digits are each contiguous. - */ - -/* - *Reentrant version of strtoimax. - */ -static intmax_t -_strtoimax_l(struct _reent *rptr, const char * __restrict nptr, - char ** __restrict endptr, int base, locale_t loc) -{ - const char *s = nptr; - uintmax_t acc = 0; - char c; - uintmax_t cutoff; - int neg = 0, any = 0, cutlim; - - /* - * Skip white space and pick up leading +/- sign if any. - * If base is 0, allow 0x for hex and 0 for octal, else - * assume decimal; if base is already 16, allow 0x. - */ - do { - c = *s++; - } while (isspace_l(c, loc)); - if (c == '-') { - neg = 1; - c = *s++; - } else { - neg = 0; - if (c == '+') - c = *s++; - } - if ((base == 0 || base == 16) && - c == '0' && (*s == 'x' || *s == 'X')) { - c = s[1]; - s += 2; - base = 16; - } - if (base == 0) - base = c == '0' ? 8 : 10; - - if (base < 2 || base > 36) - goto noconv; - - /* - * Compute the cutoff value between legal numbers and illegal - * numbers. That is the largest legal value, divided by the - * base. An input number that is greater than this value, if - * followed by a legal input character, is too big. One that - * is equal to this value may be valid or not; the limit - * between valid and invalid numbers is then based on the last - * digit. For instance, if the range for intmax_t is - * [-9223372036854775808..9223372036854775807] and the input base - * is 10, cutoff will be set to 922337203685477580 and cutlim to - * either 7 (neg==0) or 8 (neg==1), meaning that if we have - * accumulated a value > 922337203685477580, or equal but the - * next digit is > 7 (or 8), the number is too big, and we will - * return a range error. - * - * Set 'any' if any `digits' consumed; make it negative to indicate - * overflow. - */ - cutoff = neg ? -(uintmax_t)INTMAX_MIN : INTMAX_MAX; - cutlim = cutoff % base; - cutoff /= base; - for ( ; ; c = *s++) { - if (c >= '0' && c <= '9') - c -= '0'; - else if (c >= 'A' && c <= 'Z') - c -= 'A' - 10; - else if (c >= 'a' && c <= 'z') - c -= 'a' - 10; - else - break; - if (c >= base) - break; - if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - any = -1; - else { - any = 1; - acc *= base; - acc += c; - } - } - if (any < 0) { - acc = neg ? INTMAX_MIN : INTMAX_MAX; - _REENT_ERRNO(rptr) = ERANGE; - } else if (!any) { -noconv: - _REENT_ERRNO(rptr) = EINVAL; - } else if (neg) - acc = -acc; - if (endptr != NULL) - *endptr = (char *)(any ? s - 1 : nptr); - return (acc); -} - -intmax_t -_strtoimax_r(struct _reent *rptr, const char *__restrict nptr, - char **__restrict endptr, int base) -{ - return _strtoimax_l(rptr, nptr, endptr, base, __get_current_locale()); -} - -#ifndef _REENT_ONLY - -intmax_t -strtoimax_l(const char * __restrict nptr, char ** __restrict endptr, int base, - locale_t loc) -{ - return _strtoimax_l(_REENT, nptr, endptr, base, loc); -} - -intmax_t -strtoimax(const char* __restrict nptr, char** __restrict endptr, int base) -{ - return _strtoimax_l(_REENT, nptr, endptr, base, __get_current_locale()); -} - -#endif diff --git a/lib/stdlib/strtol.c b/lib/stdlib/strtol.c deleted file mode 100644 index 09d4333..0000000 --- a/lib/stdlib/strtol.c +++ /dev/null @@ -1,241 +0,0 @@ -/* -FUNCTION - <>, <>---string to long - -INDEX - strtol - -INDEX - strtol_l - -INDEX - _strtol_r - -SYNOPSIS - #include - long strtol(const char *restrict <[s]>, char **restrict <[ptr]>, - int <[base]>); - - #include - long strtol_l(const char *restrict <[s]>, char **restrict <[ptr]>, - int <[base]>, locale_t <[locale]>); - - long _strtol_r(void *<[reent]>, const char *restrict <[s]>, - char **restrict <[ptr]>,int <[base]>); - -DESCRIPTION -The function <> converts the string <<*<[s]>>> to -a <>. First, it breaks down the string into three parts: -leading whitespace, which is ignored; a subject string consisting -of characters resembling an integer in the radix specified by <[base]>; -and a trailing portion consisting of zero or more unparseable characters, -and always including the terminating null character. Then, it attempts -to convert the subject string into a <> and returns the -result. - -If the value of <[base]> is 0, the subject string is expected to look -like a normal C integer constant: an optional sign, a possible `<<0x>>' -indicating a hexadecimal base, and a number. If <[base]> is between -2 and 36, the expected form of the subject is a sequence of letters -and digits representing an integer in the radix specified by <[base]>, -with an optional plus or minus sign. The letters <>--<> (or, -equivalently, <>--<>) are used to signify values from 10 to 35; -only letters whose ascribed values are less than <[base]> are -permitted. If <[base]> is 16, a leading <<0x>> is permitted. - -The subject sequence is the longest initial sequence of the input -string that has the expected form, starting with the first -non-whitespace character. If the string is empty or consists entirely -of whitespace, or if the first non-whitespace character is not a -permissible letter or digit, the subject string is empty. - -If the subject string is acceptable, and the value of <[base]> is zero, -<> attempts to determine the radix from the input string. A -string with a leading <<0x>> is treated as a hexadecimal value; a string with -a leading 0 and no <> is treated as octal; all other strings are -treated as decimal. If <[base]> is between 2 and 36, it is used as the -conversion radix, as described above. If the subject string begins with -a minus sign, the value is negated. Finally, a pointer to the first -character past the converted subject string is stored in <[ptr]>, if -<[ptr]> is not <>. - -If the subject string is empty (or not in acceptable form), no conversion -is performed and the value of <[s]> is stored in <[ptr]> (if <[ptr]> is -not <>). - -<> is like <> but performs the conversion based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -The alternate function <<_strtol_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -<>, <> return the converted value, if any. If no -conversion was made, 0 is returned. - -<>, <> return <> or <> if the -magnitude of the converted value is too large, and sets <> -to <>. - -PORTABILITY -<> is ANSI. -<> is a GNU extension. - -No supporting OS subroutines are required. -*/ - -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define _GNU_SOURCE -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" - -/* - * Convert a string to a long integer. - */ -static long -_strtol_l (struct _reent *rptr, const char *__restrict nptr, - char **__restrict endptr, int base, locale_t loc) -{ - register const unsigned char *s = (const unsigned char *)nptr; - register unsigned long acc; - register int c; - register unsigned long cutoff; - register int neg = 0, any, cutlim; - - if (base < 0 || base == 1 || base > 36) { - errno = EINVAL; - return 0; - } - - /* - * Skip white space and pick up leading +/- sign if any. - * If base is 0, allow 0x for hex and 0 for octal, else - * assume decimal; if base is already 16, allow 0x. - */ - do { - c = *s++; - } while (isspace_l(c, loc)); - if (c == '-') { - neg = 1; - c = *s++; - } else if (c == '+') - c = *s++; - if ((base == 0 || base == 16) && - c == '0' && (*s == 'x' || *s == 'X')) { - c = s[1]; - s += 2; - base = 16; - } - if (base == 0) - base = c == '0' ? 8 : 10; - - /* - * Compute the cutoff value between legal numbers and illegal - * numbers. That is the largest legal value, divided by the - * base. An input number that is greater than this value, if - * followed by a legal input character, is too big. One that - * is equal to this value may be valid or not; the limit - * between valid and invalid numbers is then based on the last - * digit. For instance, if the range for longs is - * [-2147483648..2147483647] and the input base is 10, - * cutoff will be set to 214748364 and cutlim to either - * 7 (neg==0) or 8 (neg==1), meaning that if we have accumulated - * a value > 214748364, or equal but the next digit is > 7 (or 8), - * the number is too big, and we will return a range error. - * - * Set any if any `digits' consumed; make it negative to indicate - * overflow. - */ - cutoff = neg ? -(unsigned long)LONG_MIN : LONG_MAX; - cutlim = cutoff % (unsigned long)base; - cutoff /= (unsigned long)base; - for (acc = 0, any = 0;; c = *s++) { - if (c >= '0' && c <= '9') - c -= '0'; - else if (c >= 'A' && c <= 'Z') - c -= 'A' - 10; - else if (c >= 'a' && c <= 'z') - c -= 'a' - 10; - else - break; - if (c >= base) - break; - if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) { - any = -1; - } else { - any = 1; - acc *= base; - acc += c; - } - } - if (any < 0) { - acc = neg ? LONG_MIN : LONG_MAX; - _REENT_ERRNO(rptr) = ERANGE; - } else if (neg) - acc = -acc; - if (endptr != 0) - *endptr = (char *) (any ? (char *)s - 1 : nptr); - return (acc); -} - -long -_strtol_r (struct _reent *rptr, - const char *__restrict nptr, - char **__restrict endptr, - int base) -{ - return _strtol_l (rptr, nptr, endptr, base, __get_current_locale ()); -} - -#ifndef _REENT_ONLY - -long -strtol_l (const char *__restrict s, char **__restrict ptr, int base, - locale_t loc) -{ - return _strtol_l (_REENT, s, ptr, base, loc); -} - -long -strtol (const char *__restrict s, - char **__restrict ptr, - int base) -{ - return _strtol_l (_REENT, s, ptr, base, __get_current_locale ()); -} - -#endif diff --git a/lib/stdlib/strtold.c b/lib/stdlib/strtold.c deleted file mode 100644 index 6bd1c2c..0000000 --- a/lib/stdlib/strtold.c +++ /dev/null @@ -1,105 +0,0 @@ -/* -(C) Copyright IBM Corp. 2009 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include "local.h" -#include "mprec.h" -#undef FLT_ROUNDS - -#ifdef _HAVE_LONG_DOUBLE - -/* Intel MCU has no x87 floating point unit */ -#if (defined (__x86_64__) || defined (__i386__)) && !defined (__iamcu__) -static const int map[] = { - 1, /* round to nearest */ - 3, /* round to zero */ - 2, /* round to negative infinity */ - 0 /* round to positive infinity */ -}; - -int -__flt_rounds(void) -{ - int x; - - /* Assume that the x87 and the SSE unit agree on the rounding mode. */ - __asm("fnstcw %0" : "=m" (x)); - return (map[(x >> 10) & 0x03]); -} -#define FLT_ROUNDS __flt_rounds() -#else -#define FLT_ROUNDS 0 -#endif - -long double -_strtold_r (struct _reent *ptr, const char *__restrict s00, - char **__restrict se) -{ -#ifdef _LDBL_EQ_DBL - /* On platforms where long double is as wide as double. */ - return _strtod_l (ptr, s00, se, __get_current_locale ()); -#else - long double result; - - _strtorx_l (ptr, s00, se, FLT_ROUNDS, &result, __get_current_locale ()); - return result; -#endif -} - -long double -strtold_l (const char *__restrict s00, char **__restrict se, locale_t loc) -{ -#ifdef _LDBL_EQ_DBL - /* On platforms where long double is as wide as double. */ - return _strtod_l (_REENT, s00, se, loc); -#else - long double result; - - _strtorx_l (_REENT, s00, se, FLT_ROUNDS, &result, loc); - return result; -#endif -} - -long double -strtold (const char *__restrict s00, char **__restrict se) -{ -#ifdef _LDBL_EQ_DBL - /* On platforms where long double is as wide as double. */ - return _strtod_l (_REENT, s00, se, __get_current_locale ()); -#else - long double result; - - _strtorx_l (_REENT, s00, se, FLT_ROUNDS, &result, __get_current_locale ()); - return result; -#endif -} - -#endif /* _HAVE_LONG_DOUBLE */ - diff --git a/lib/stdlib/strtoll.c b/lib/stdlib/strtoll.c deleted file mode 100644 index 0f2fa53..0000000 --- a/lib/stdlib/strtoll.c +++ /dev/null @@ -1,238 +0,0 @@ -/* -FUNCTION - <>, <>---string to long long - -INDEX - strtoll - -INDEX - strtoll_l - -INDEX - _strtoll_r - -SYNOPSIS - #include - long long strtoll(const char *restrict <[s]>, char **restrict <[ptr]>, - int <[base]>); - - #include - long long strtoll_l(const char *restrict <[s]>, - char **restrict <[ptr]>, int <[base]>, - locale_t <[locale]>); - - long long _strtoll_r(void *<[reent]>, - const char *restrict <[s]>, - char **restrict <[ptr]>, int <[base]>); - -DESCRIPTION -The function <> converts the string <<*<[s]>>> to -a <>. First, it breaks down the string into three parts: -leading whitespace, which is ignored; a subject string consisting -of characters resembling an integer in the radix specified by <[base]>; -and a trailing portion consisting of zero or more unparseable characters, -and always including the terminating null character. Then, it attempts -to convert the subject string into a <> and returns the -result. - -If the value of <[base]> is 0, the subject string is expected to look -like a normal C integer constant: an optional sign, a possible `<<0x>>' -indicating a hexadecimal base, and a number. If <[base]> is between -2 and 36, the expected form of the subject is a sequence of letters -and digits representing an integer in the radix specified by <[base]>, -with an optional plus or minus sign. The letters <>--<> (or, -equivalently, <>--<>) are used to signify values from 10 to 35; -only letters whose ascribed values are less than <[base]> are -permitted. If <[base]> is 16, a leading <<0x>> is permitted. - -The subject sequence is the longest initial sequence of the input -string that has the expected form, starting with the first -non-whitespace character. If the string is empty or consists entirely -of whitespace, or if the first non-whitespace character is not a -permissible letter or digit, the subject string is empty. - -If the subject string is acceptable, and the value of <[base]> is zero, -<> attempts to determine the radix from the input string. A -string with a leading <<0x>> is treated as a hexadecimal value; a string with -a leading 0 and no <> is treated as octal; all other strings are -treated as decimal. If <[base]> is between 2 and 36, it is used as the -conversion radix, as described above. If the subject string begins with -a minus sign, the value is negated. Finally, a pointer to the first -character past the converted subject string is stored in <[ptr]>, if -<[ptr]> is not <>. - -If the subject string is empty (or not in acceptable form), no conversion -is performed and the value of <[s]> is stored in <[ptr]> (if <[ptr]> is -not <>). - -<> is like <> but performs the conversion based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -The alternate function <<_strtoll_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -<>, <> return the converted value, if any. If no -conversion was made, 0 is returned. - -<>, <> return <> or <> -if the magnitude of the converted value is too large, and sets <> -to <>. - -PORTABILITY -<> is ANSI. -<> is a GNU extension. - -No supporting OS subroutines are required. -*/ - -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define _GNU_SOURCE -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" - -/* - * Convert a string to a long long integer. - */ -static long long -_strtoll_l (struct _reent *rptr, const char *__restrict nptr, - char **__restrict endptr, int base, locale_t loc) -{ - register const unsigned char *s = (const unsigned char *)nptr; - register unsigned long long acc; - register int c; - register unsigned long long cutoff; - register int neg = 0, any, cutlim; - - /* - * Skip white space and pick up leading +/- sign if any. - * If base is 0, allow 0x for hex and 0 for octal, else - * assume decimal; if base is already 16, allow 0x. - */ - do { - c = *s++; - } while (isspace_l(c, loc)); - if (c == '-') { - neg = 1; - c = *s++; - } else if (c == '+') - c = *s++; - if ((base == 0 || base == 16) && - c == '0' && (*s == 'x' || *s == 'X')) { - c = s[1]; - s += 2; - base = 16; - } - if (base == 0) - base = c == '0' ? 8 : 10; - - /* - * Compute the cutoff value between legal numbers and illegal - * numbers. That is the largest legal value, divided by the - * base. An input number that is greater than this value, if - * followed by a legal input character, is too big. One that - * is equal to this value may be valid or not; the limit - * between valid and invalid numbers is then based on the last - * digit. For instance, if the range for longs is - * [-2147483648..2147483647] and the input base is 10, - * cutoff will be set to 214748364 and cutlim to either - * 7 (neg==0) or 8 (neg==1), meaning that if we have accumulated - * a value > 214748364, or equal but the next digit is > 7 (or 8), - * the number is too big, and we will return a range error. - * - * Set any if any `digits' consumed; make it negative to indicate - * overflow. - */ - cutoff = neg ? -(unsigned long long)LONG_LONG_MIN : LONG_LONG_MAX; - cutlim = cutoff % (unsigned long long)base; - cutoff /= (unsigned long long)base; - for (acc = 0, any = 0;; c = *s++) { - if (c >= '0' && c <= '9') - c -= '0'; - else if (c >= 'A' && c <= 'Z') - c -= 'A' - 10; - else if (c >= 'a' && c <= 'z') - c -= 'a' - 10; - else - break; - if (c >= base) - break; - if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - any = -1; - else { - any = 1; - acc *= base; - acc += c; - } - } - if (any < 0) { - acc = neg ? LONG_LONG_MIN : LONG_LONG_MAX; - _REENT_ERRNO(rptr) = ERANGE; - } else if (neg) - acc = -acc; - if (endptr != 0) - *endptr = (char *) (any ? (char *)s - 1 : nptr); - return (acc); -} - -long long -_strtoll_r (struct _reent *rptr, - const char *__restrict nptr, - char **__restrict endptr, - int base) -{ - return _strtoll_l (rptr, nptr, endptr, base, __get_current_locale ()); -} - -#ifndef _REENT_ONLY - -long long -strtoll_l (const char *__restrict s, char **__restrict ptr, int base, - locale_t loc) -{ - return _strtoll_l (_REENT, s, ptr, base, loc); -} - -long long -strtoll (const char *__restrict s, - char **__restrict ptr, - int base) -{ - return _strtoll_l (_REENT, s, ptr, base, __get_current_locale ()); -} - -#endif diff --git a/lib/stdlib/strtoll_r.c b/lib/stdlib/strtoll_r.c deleted file mode 100644 index 2997587..0000000 --- a/lib/stdlib/strtoll_r.c +++ /dev/null @@ -1 +0,0 @@ -/* dummy */ diff --git a/lib/stdlib/strtorx.c b/lib/stdlib/strtorx.c deleted file mode 100644 index 4faed85..0000000 --- a/lib/stdlib/strtorx.c +++ /dev/null @@ -1,123 +0,0 @@ -/**************************************************************** - -The author of this software is David M. Gay. - -Copyright (C) 1998, 2000 by Lucent Technologies -All Rights Reserved - -Permission to use, copy, modify, and distribute this software and -its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notice appear in all -copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the name of Lucent or any of its entities -not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. -IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY -SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER -IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - -****************************************************************/ - -/* Please send bug reports to David M. Gay (dmg at acm dot org, - * with " at " changed at "@" and " dot " changed to "."). */ - -#include <_ansi.h> -#include -#include -#include -#include "mprec.h" -#include "gdtoa.h" - -#if defined (_HAVE_LONG_DOUBLE) && !defined (_LDBL_EQ_DBL) - -/* one or the other of IEEE_MC68k or IEEE_8087 should be #defined */ - -#ifdef IEEE_MC68k -#define _0 0 -#define _1 1 -#define _2 2 -#define _3 3 -#define _4 4 -#endif -#ifdef IEEE_8087 -#define _0 4 -#define _1 3 -#define _2 2 -#define _3 1 -#define _4 0 -#endif - - void -#ifdef KR_headers -ULtox(L, bits, exp, k) __UShort *L; __ULong *bits; Long exp; int k; -#else -ULtox(__UShort *L, __ULong *bits, Long exp, int k) -#endif -{ - switch(k & STRTOG_Retmask) { - case STRTOG_NoNumber: - case STRTOG_Zero: - L[0] = L[1] = L[2] = L[3] = L[4] = 0; - break; - - case STRTOG_Denormal: - L[_0] = 0; - goto normal_bits; - - case STRTOG_Normal: - case STRTOG_NaNbits: - L[_0] = exp + 0x3fff + 63; - normal_bits: - L[_4] = (__UShort)bits[0]; - L[_3] = (__UShort)(bits[0] >> 16); - L[_2] = (__UShort)bits[1]; - L[_1] = (__UShort)(bits[1] >> 16); - break; - - case STRTOG_Infinite: - L[_0] = 0x7fff; - L[_1] = 0x8000; - L[_2] = L[_3] = L[_4] = 0; - break; - - case STRTOG_NaN: - *((long double*)L) = __builtin_nanl (""); - } - if (k & STRTOG_Neg) - L[_0] |= 0x8000; - } - - int -#ifdef KR_headers -_strtorx_l(p, s, sp, rounding, L, loc) struct _reent *p; const char *s; char **sp; int rounding; void *L; locale_t loc; -#else -_strtorx_l(struct _reent *p, const char *s, char **sp, int rounding, void *L, - locale_t loc) -#endif -{ - static FPI fpi0 = { 64, 1-16383-64+1, 32766 - 16383 - 64 + 1, 1, SI }; - FPI *fpi, fpi1; - __ULong bits[2]; - Long exp; - int k; - - fpi = &fpi0; - if (rounding != FPI_Round_near) { - fpi1 = fpi0; - fpi1.rounding = rounding; - fpi = &fpi1; - } - k = _strtodg_l(p, s, sp, fpi, &exp, bits, loc); - ULtox((__UShort*)L, bits, exp, k); - return k; - } - -#endif /* _HAVE_LONG_DOUBLE && !_LDBL_EQ_DBL */ diff --git a/lib/stdlib/strtoul.c b/lib/stdlib/strtoul.c deleted file mode 100644 index d31bde5..0000000 --- a/lib/stdlib/strtoul.c +++ /dev/null @@ -1,215 +0,0 @@ -/* -FUNCTION - <>, <>---string to unsigned long - -INDEX - strtoul - -INDEX - strtoul_l - -INDEX - _strtoul_r - -SYNOPSIS - #include - unsigned long strtoul(const char *restrict <[s]>, - char **restrict <[ptr]>, int <[base]>); - - #include - unsigned long strtoul_l(const char *restrict <[s]>, - char **restrict <[ptr]>, int <[base]>, - locale_t <[locale]>); - - unsigned long _strtoul_r(void *<[reent]>, const char *restrict <[s]>, - char **restrict <[ptr]>, int <[base]>); - -DESCRIPTION -The function <> converts the string <<*<[s]>>> to -an <>. First, it breaks down the string into three parts: -leading whitespace, which is ignored; a subject string consisting -of the digits meaningful in the radix specified by <[base]> -(for example, <<0>> through <<7>> if the value of <[base]> is 8); -and a trailing portion consisting of one or more unparseable characters, -which always includes the terminating null character. Then, it attempts -to convert the subject string into an unsigned long integer, and returns the -result. - -If the value of <[base]> is zero, the subject string is expected to look -like a normal C integer constant (save that no optional sign is permitted): -a possible <<0x>> indicating hexadecimal radix, and a number. -If <[base]> is between 2 and 36, the expected form of the subject is a -sequence of digits (which may include letters, depending on the -base) representing an integer in the radix specified by <[base]>. -The letters <>--<> (or <>--<>) are used as digits valued from -10 to 35. If <[base]> is 16, a leading <<0x>> is permitted. - -The subject sequence is the longest initial sequence of the input -string that has the expected form, starting with the first -non-whitespace character. If the string is empty or consists entirely -of whitespace, or if the first non-whitespace character is not a -permissible digit, the subject string is empty. - -If the subject string is acceptable, and the value of <[base]> is zero, -<> attempts to determine the radix from the input string. A -string with a leading <<0x>> is treated as a hexadecimal value; a string with -a leading <<0>> and no <> is treated as octal; all other strings are -treated as decimal. If <[base]> is between 2 and 36, it is used as the -conversion radix, as described above. Finally, a pointer to the first -character past the converted subject string is stored in <[ptr]>, if -<[ptr]> is not <>. - -If the subject string is empty (that is, if <<*>><[s]> does not start -with a substring in acceptable form), no conversion -is performed and the value of <[s]> is stored in <[ptr]> (if <[ptr]> is -not <>). - -<> is like <> but performs the conversion based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -The alternate function <<_strtoul_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -<>, <> return the converted value, if any. If no -conversion was made, <<0>> is returned. - -<>, <> return <> if the magnitude of the -converted value is too large, and sets <> to <>. - -PORTABILITY -<> is ANSI. -<> is a GNU extension. - -<> requires no supporting OS subroutines. -*/ - -/* - * Copyright (c) 1990 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define _GNU_SOURCE -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" - -/* - * Convert a string to an unsigned long integer. - */ -static unsigned long -_strtoul_l (struct _reent *rptr, const char *__restrict nptr, - char **__restrict endptr, int base, locale_t loc) -{ - register const unsigned char *s = (const unsigned char *)nptr; - register unsigned long acc; - register int c; - register unsigned long cutoff; - register int neg = 0, any, cutlim; - - /* - * See strtol for comments as to the logic used. - */ - do { - c = *s++; - } while (isspace_l(c, loc)); - if (c == '-') { - neg = 1; - c = *s++; - } else if (c == '+') - c = *s++; - if ((base == 0 || base == 16) && - c == '0' && (*s == 'x' || *s == 'X')) { - c = s[1]; - s += 2; - base = 16; - } - if (base == 0) - base = c == '0' ? 8 : 10; - cutoff = (unsigned long)ULONG_MAX / (unsigned long)base; - cutlim = (unsigned long)ULONG_MAX % (unsigned long)base; - for (acc = 0, any = 0;; c = *s++) { - if (c >= '0' && c <= '9') - c -= '0'; - else if (c >= 'A' && c <= 'Z') - c -= 'A' - 10; - else if (c >= 'a' && c <= 'z') - c -= 'a' - 10; - else - break; - if (c >= base) - break; - if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - any = -1; - else { - any = 1; - acc *= base; - acc += c; - } - } - if (any < 0) { - acc = ULONG_MAX; - _REENT_ERRNO(rptr) = ERANGE; - } else if (neg) - acc = -acc; - if (endptr != 0) - *endptr = (char *) (any ? (char *)s - 1 : nptr); - return (acc); -} - -unsigned long -_strtoul_r (struct _reent *rptr, - const char *__restrict nptr, - char **__restrict endptr, - int base) -{ - return _strtoul_l (rptr, nptr, endptr, base, __get_current_locale ()); -} - -#ifndef _REENT_ONLY - -unsigned long -strtoul_l (const char *__restrict s, char **__restrict ptr, int base, - locale_t loc) -{ - return _strtoul_l (_REENT, s, ptr, base, loc); -} - -unsigned long -strtoul (const char *__restrict s, - char **__restrict ptr, - int base) -{ - return _strtoul_l (_REENT, s, ptr, base, __get_current_locale ()); -} - -#endif diff --git a/lib/stdlib/strtoull.c b/lib/stdlib/strtoull.c deleted file mode 100644 index 943de6b..0000000 --- a/lib/stdlib/strtoull.c +++ /dev/null @@ -1,213 +0,0 @@ -/* -FUNCTION - <>, <>---string to unsigned long long - -INDEX - strtoull - -INDEX - strtoull_l - -SYNOPSIS - #include - unsigned long long strtoull(const char *restrict <[s]>, - char **restrict <[ptr]>, int <[base]>); - - #include - unsigned long long strtoull_l(const char *restrict <[s]>, - char **restrict <[ptr]>, int <[base]>, - locale_t <[locale]>); - - unsigned long long _strtoull_r(void *<[reent]>, - const char *restrict <[s]>, - char **restrict <[ptr]>, int <[base]>); - -DESCRIPTION -The function <> converts the string <<*<[s]>>> to -an <>. First, it breaks down the string into three parts: -leading whitespace, which is ignored; a subject string consisting -of the digits meaningful in the radix specified by <[base]> -(for example, <<0>> through <<7>> if the value of <[base]> is 8); -and a trailing portion consisting of one or more unparseable characters, -which always includes the terminating null character. Then, it attempts -to convert the subject string into an unsigned long long integer, and returns the -result. - -If the value of <[base]> is zero, the subject string is expected to look -like a normal C integer constant (save that no optional sign is permitted): -a possible <<0x>> indicating hexadecimal radix, and a number. -If <[base]> is between 2 and 36, the expected form of the subject is a -sequence of digits (which may include letters, depending on the -base) representing an integer in the radix specified by <[base]>. -The letters <>--<> (or <>--<>) are used as digits valued from -10 to 35. If <[base]> is 16, a leading <<0x>> is permitted. - -The subject sequence is the longest initial sequence of the input -string that has the expected form, starting with the first -non-whitespace character. If the string is empty or consists entirely -of whitespace, or if the first non-whitespace character is not a -permissible digit, the subject string is empty. - -If the subject string is acceptable, and the value of <[base]> is zero, -<> attempts to determine the radix from the input string. A -string with a leading <<0x>> is treated as a hexadecimal value; a string with -a leading <<0>> and no <> is treated as octal; all other strings are -treated as decimal. If <[base]> is between 2 and 36, it is used as the -conversion radix, as described above. Finally, a pointer to the first -character past the converted subject string is stored in <[ptr]>, if -<[ptr]> is not <>. - -If the subject string is empty (that is, if <<*>><[s]> does not start -with a substring in acceptable form), no conversion -is performed and the value of <[s]> is stored in <[ptr]> (if <[ptr]> is -not <>). - -<> is like <> but performs the conversion based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -The alternate function <<_strtoull_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -<>, <> return the converted value, if any. If no -conversion was made, <<0>> is returned. - -<>, <> return <> if the magnitude -of the converted value is too large, and sets <> to <>. - -PORTABILITY -<> is ANSI. -<> is a GNU extension. - -<> requires no supporting OS subroutines. -*/ - -/* - * Copyright (c) 1990 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define _GNU_SOURCE -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" - -/* - * Convert a string to an unsigned long long integer. - */ -static unsigned long long -_strtoull_l (struct _reent *rptr, const char *__restrict nptr, - char **__restrict endptr, int base, locale_t loc) -{ - register const unsigned char *s = (const unsigned char *)nptr; - register unsigned long long acc; - register int c; - register unsigned long long cutoff; - register int neg = 0, any, cutlim; - - /* - * See strtol for comments as to the logic used. - */ - do { - c = *s++; - } while (isspace_l(c, loc)); - if (c == '-') { - neg = 1; - c = *s++; - } else if (c == '+') - c = *s++; - if ((base == 0 || base == 16) && - c == '0' && (*s == 'x' || *s == 'X')) { - c = s[1]; - s += 2; - base = 16; - } - if (base == 0) - base = c == '0' ? 8 : 10; - cutoff = (unsigned long long)ULONG_LONG_MAX / (unsigned long long)base; - cutlim = (unsigned long long)ULONG_LONG_MAX % (unsigned long long)base; - for (acc = 0, any = 0;; c = *s++) { - if (c >= '0' && c <= '9') - c -= '0'; - else if (c >= 'A' && c <= 'Z') - c -= 'A' - 10; - else if (c >= 'a' && c <= 'z') - c -= 'a' - 10; - else - break; - if (c >= base) - break; - if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - any = -1; - else { - any = 1; - acc *= base; - acc += c; - } - } - if (any < 0) { - acc = ULONG_LONG_MAX; - _REENT_ERRNO(rptr) = ERANGE; - } else if (neg) - acc = -acc; - if (endptr != 0) - *endptr = (char *) (any ? (char *)s - 1 : nptr); - return (acc); -} - -unsigned long long -_strtoull_r (struct _reent *rptr, - const char *__restrict nptr, - char **__restrict endptr, - int base) -{ - return _strtoull_l (rptr, nptr, endptr, base, __get_current_locale ()); -} - -#ifndef _REENT_ONLY - -unsigned long long -strtoull_l (const char *__restrict s, char **__restrict ptr, int base, - locale_t loc) -{ - return _strtoull_l (_REENT, s, ptr, base, loc); -} - -unsigned long long -strtoull (const char *__restrict s, - char **__restrict ptr, - int base) -{ - return _strtoull_l (_REENT, s, ptr, base, __get_current_locale ()); -} - -#endif diff --git a/lib/stdlib/strtoull_r.c b/lib/stdlib/strtoull_r.c deleted file mode 100644 index 2997587..0000000 --- a/lib/stdlib/strtoull_r.c +++ /dev/null @@ -1 +0,0 @@ -/* dummy */ diff --git a/lib/stdlib/strtoumax.c b/lib/stdlib/strtoumax.c deleted file mode 100644 index adcf2b3..0000000 --- a/lib/stdlib/strtoumax.c +++ /dev/null @@ -1,151 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Copyright (c) 2011 The FreeBSD Foundation - * All rights reserved. - * Portions of this software were developed by David Chisnall - * under sponsorship from the FreeBSD Foundation. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "from @(#)strtoul.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ -#include -__FBSDID("$FreeBSD: head/lib/libc/stdlib/strtoumax.c 251672 2013-06-13 00:19:30Z emaste $"); - -#include -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" - -/* - * Convert a string to a uintmax_t integer. - * - * Assumes that the upper and lower case - * alphabets and digits are each contiguous. - */ - -/* - *Reentrant version of strtoumax. - */ -static uintmax_t -_strtoumax_l(struct _reent *rptr, const char * __restrict nptr, - char ** __restrict endptr, int base, locale_t loc) -{ - const char *s = nptr; - uintmax_t acc; - char c; - uintmax_t cutoff; - int neg = 0, any, cutlim; - - /* - * See strtoimax for comments as to the logic used. - */ - do { - c = *s++; - } while (isspace_l(c, loc)); - if (c == '-') { - neg = 1; - c = *s++; - } else { - neg = 0; - if (c == '+') - c = *s++; - } - if ((base == 0 || base == 16) && - c == '0' && (*s == 'x' || *s == 'X')) { - c = s[1]; - s += 2; - base = 16; - } - if (base == 0) - base = c == '0' ? 8 : 10; - acc = any = 0; - if (base < 2 || base > 36) - goto noconv; - - cutoff = UINTMAX_MAX / base; - cutlim = UINTMAX_MAX % base; - for ( ; ; c = *s++) { - if (c >= '0' && c <= '9') - c -= '0'; - else if (c >= 'A' && c <= 'Z') - c -= 'A' - 10; - else if (c >= 'a' && c <= 'z') - c -= 'a' - 10; - else - break; - if (c >= base) - break; - if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - any = -1; - else { - any = 1; - acc *= base; - acc += c; - } - } - if (any < 0) { - acc = UINTMAX_MAX; - _REENT_ERRNO(rptr) = ERANGE; - } else if (!any) { -noconv: - _REENT_ERRNO(rptr) = EINVAL; - } else if (neg) - acc = -acc; - if (endptr != NULL) - *endptr = (char *)(any ? s - 1 : nptr); - return (acc); -} - -uintmax_t -_strtoumax_r(struct _reent *rptr, const char *__restrict nptr, - char **__restrict endptr, int base) -{ - return _strtoumax_l(rptr, nptr, endptr, base, __get_current_locale()); -} - -#ifndef _REENT_ONLY - -uintmax_t -strtoumax_l(const char * __restrict nptr, char ** __restrict endptr, int base, - locale_t loc) -{ - return _strtoumax_l(_REENT, nptr, endptr, base, loc); -} - -uintmax_t -strtoumax(const char* __restrict nptr, char** __restrict endptr, int base) -{ - return _strtoumax_l(_REENT, nptr, endptr, base, __get_current_locale()); -} - -#endif diff --git a/lib/stdlib/system.c b/lib/stdlib/system.c deleted file mode 100644 index f30b7df..0000000 --- a/lib/stdlib/system.c +++ /dev/null @@ -1,178 +0,0 @@ -/* -FUNCTION -<>---execute command string - -INDEX - system -INDEX - _system_r - -SYNOPSIS - #include - int system(char *<[s]>); - - int _system_r(void *<[reent]>, char *<[s]>); - -DESCRIPTION - -Use <> to pass a command string <<*<[s]>>> to <> on -your system, and wait for it to finish executing. - -Use ``<>'' to test whether your system has <> -available. - -The alternate function <<_system_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -<> returns a non-zero value if <> is available, and -<<0>> if it is not. - -With a command argument, the result of <> is the exit status -returned by <>. - -PORTABILITY -ANSI C requires <>, but leaves the nature and effects of a -command processor undefined. ANSI C does, however, specify that -<> return zero or nonzero to report on the existence of -a command processor. - -POSIX.2 requires <>, and requires that it invoke a <>. -Where <> is found is left unspecified. - -Supporting OS subroutines required: <<_exit>>, <<_execve>>, <<_fork_r>>, -<<_wait_r>>. -*/ - -#include <_ansi.h> -#include -#include -#include -#include -#include <_syslist.h> -#include - -#if defined (unix) || defined (__CYGWIN__) -static int do_system (struct _reent *ptr, const char *s); -#endif - -int -_system_r (struct _reent *ptr, - const char *s) -{ -#if defined(HAVE_SYSTEM) - return _system (s); - ptr = ptr; -#elif defined(NO_EXEC) - if (s == NULL) - return 0; - errno = ENOSYS; - return -1; -#else - - /* ??? How to handle (s == NULL) here is not exactly clear. - If _fork_r fails, that's not really a justification for returning 0. - For now we always return 0 and leave it to each target to explicitly - handle otherwise (this can always be relaxed in the future). */ - -#if defined (unix) || defined (__CYGWIN__) - if (s == NULL) - return 1; - return do_system (ptr, s); -#else - if (s == NULL) - return 0; - errno = ENOSYS; - return -1; -#endif - -#endif -} - -#ifndef _REENT_ONLY - -int -system (const char *s) -{ - return _system_r (_REENT, s); -} - -#endif - -#if defined (unix) && !defined (__CYGWIN__) && !defined(__rtems__) -extern char **environ; - -/* Only deal with a pointer to environ, to work around subtle bugs with shared - libraries and/or small data systems where the user declares his own - 'environ'. */ -static char ***p_environ = &environ; - -static int -do_system (struct _reent *ptr, - const char *s) -{ - char *argv[4]; - int pid, status; - - argv[0] = "sh"; - argv[1] = "-c"; - argv[2] = (char *) s; - argv[3] = NULL; - - if ((pid = _fork_r (ptr)) == 0) - { - _execve ("/bin/sh", argv, *p_environ); - exit (100); - } - else if (pid == -1) - return -1; - else - { - int rc = _wait_r (ptr, &status); - if (rc == -1) - return -1; - status = (status >> 8) & 0xff; - return status; - } -} -#endif - -#if defined (__CYGWIN__) -static int -do_system (struct _reent *ptr, - const char *s) -{ - char *argv[4]; - int pid, status; - - argv[0] = "sh"; - argv[1] = "-c"; - argv[2] = (char *) s; - argv[3] = NULL; - - if ((pid = vfork ()) == 0) - { - /* ??? It's not clear what's the right path to take (pun intended :-). - There won't be an "sh" in any fixed location so we need each user - to be able to say where to find "sh". That suggests using an - environment variable, but after a few more such situations we may - have too many of them. */ - char *sh = getenv ("SH_PATH"); - if (sh == NULL) - sh = "/bin/sh"; - _execve (sh, argv, environ); - exit (100); - } - else if (pid == -1) - return -1; - else - { - extern int _wait (int *); - int rc = _wait (&status); - if (rc == -1) - return -1; - status = (status >> 8) & 0xff; - return status; - } -} -#endif diff --git a/lib/stdlib/utoa.c b/lib/stdlib/utoa.c deleted file mode 100644 index 5ef304c..0000000 --- a/lib/stdlib/utoa.c +++ /dev/null @@ -1,74 +0,0 @@ -/* -FUNCTION -<>---unsigned integer to string - -INDEX - utoa - -SYNOPSIS - #include - char *utoa(unsigned <[value]>, char *<[str]>, int <[base]>); - char *__utoa(unsigned <[value]>, char *<[str]>, int <[base]>); - -DESCRIPTION -<> converts the unsigned integer [] to a null-terminated string -using the specified base, which must be between 2 and 36, inclusive. -<[str]> should be an array long enough to contain the converted -value, which in the worst case is sizeof(int)*8+1 bytes. - -RETURNS -A pointer to the string, <[str]>, or NULL if <[base]> is invalid. - -PORTABILITY -<> is non-ANSI. - -No supporting OS subroutine calls are required. -*/ - -#include - -char * -__utoa (unsigned value, - char *str, - int base) -{ - const char digits[] = "0123456789abcdefghijklmnopqrstuvwxyz"; - int i, j; - unsigned remainder; - char c; - - /* Check base is supported. */ - if ((base < 2) || (base > 36)) - { - str[0] = '\0'; - return NULL; - } - - /* Convert to string. Digits are in reverse order. */ - i = 0; - do - { - remainder = value % base; - str[i++] = digits[remainder]; - value = value / base; - } while (value != 0); - str[i] = '\0'; - - /* Reverse string. */ - for (j = 0, i--; j < i; j++, i--) - { - c = str[j]; - str[j] = str[i]; - str[i] = c; - } - - return str; -} - -char * -utoa (unsigned value, - char *str, - int base) -{ - return __utoa (value, str, base); -} diff --git a/lib/stdlib/valloc.c b/lib/stdlib/valloc.c deleted file mode 100644 index 0253866..0000000 --- a/lib/stdlib/valloc.c +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef MALLOC_PROVIDED -/* valloc.c -- a wrapper for valloc_r and pvalloc_r. */ - -#include <_ansi.h> -#include -#include -#include - -#ifndef _REENT_ONLY - -void * -valloc (size_t nbytes) -{ - return _valloc_r (_REENT, nbytes); -} - -void * -pvalloc (size_t nbytes) -{ - return _pvalloc_r (_REENT, nbytes); -} - -#endif -#endif diff --git a/lib/stdlib/vallocr.c b/lib/stdlib/vallocr.c deleted file mode 100644 index 9f05700..0000000 --- a/lib/stdlib/vallocr.c +++ /dev/null @@ -1,2 +0,0 @@ -#define DEFINE_VALLOC -#include "_mallocr.c" diff --git a/lib/stdlib/wcrtomb.c b/lib/stdlib/wcrtomb.c deleted file mode 100644 index 1b84720..0000000 --- a/lib/stdlib/wcrtomb.c +++ /dev/null @@ -1,81 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "local.h" - -#ifdef _REENT_THREAD_LOCAL -_Thread_local _mbstate_t _tls_wcrtomb_state; -#endif - -size_t -_wcrtomb_r (struct _reent *ptr, - char *s, - wchar_t wc, - mbstate_t *ps) -{ - int retval = 0; - char buf[10]; - -#ifdef _MB_CAPABLE - if (ps == NULL) - { - _REENT_CHECK_MISC(ptr); - ps = &(_REENT_WCRTOMB_STATE(ptr)); - } -#endif - - if (s == NULL) - retval = __WCTOMB (ptr, buf, L'\0', ps); - else - retval = __WCTOMB (ptr, s, wc, ps); - - if (retval == -1) - { - ps->__count = 0; - _REENT_ERRNO(ptr) = EILSEQ; - return (size_t)(-1); - } - else - return (size_t)retval; -} - -#ifndef _REENT_ONLY -size_t -wcrtomb (char *__restrict s, - wchar_t wc, - mbstate_t *__restrict ps) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - return _wcrtomb_r (_REENT, s, wc, ps); -#else - int retval = 0; - struct _reent *reent = _REENT; - char buf[10]; - -#ifdef _MB_CAPABLE - if (ps == NULL) - { - _REENT_CHECK_MISC(reent); - ps = &(_REENT_WCRTOMB_STATE(reent)); - } -#endif - - if (s == NULL) - retval = __WCTOMB (reent, buf, L'\0', ps); - else - retval = __WCTOMB (reent, s, wc, ps); - - if (retval == -1) - { - ps->__count = 0; - _REENT_ERRNO(reent) = EILSEQ; - return (size_t)(-1); - } - else - return (size_t)retval; -#endif /* not PREFER_SIZE_OVER_SPEED */ -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/wcsnrtombs.c b/lib/stdlib/wcsnrtombs.c deleted file mode 100644 index abef7ac..0000000 --- a/lib/stdlib/wcsnrtombs.c +++ /dev/null @@ -1,167 +0,0 @@ -/* -FUNCTION -<>, <>---convert a wide-character string to a character string - -INDEX - wcsrtombs -INDEX - _wcsrtombs_r -INDEX - wcsnrtombs -INDEX - _wcsnrtombs_r - -SYNOPSIS - #include - size_t wcsrtombs(char *__restrict <[dst]>, - const wchar_t **__restrict <[src]>, size_t <[len]>, - mbstate_t *__restrict <[ps]>); - - #include - size_t _wcsrtombs_r(struct _reent *<[ptr]>, char *<[dst]>, - const wchar_t **<[src]>, size_t <[len]>, - mbstate_t *<[ps]>); - - #include - size_t wcsnrtombs(char *__restrict <[dst]>, - const wchar_t **__restrict <[src]>, - size_t <[nwc]>, size_t <[len]>, - mbstate_t *__restrict <[ps]>); - - #include - size_t _wcsnrtombs_r(struct _reent *<[ptr]>, char *<[dst]>, - const wchar_t **<[src]>, size_t <[nwc]>, - size_t <[len]>, mbstate_t *<[ps]>); - -DESCRIPTION -The <> function converts a string of wide characters indirectly -pointed to by <[src]> to a corresponding multibyte character string stored in -the array pointed to by <[dst]>. No more than <[len]> bytes are written to -<[dst]>. - -If <[dst]> is NULL, no characters are stored. - -If <[dst]> is not NULL, the pointer pointed to by <[src]> is updated to point -to the character after the one that conversion stopped at. If conversion -stops because a null character is encountered, *<[src]> is set to NULL. - -The mbstate_t argument, <[ps]>, is used to keep track of the shift state. If -it is NULL, <> uses an internal, static mbstate_t object, which -is initialized to the initial conversion state at program startup. - -The <> function behaves identically to <>, except that -conversion stops after reading at most <[nwc]> characters from the buffer -pointed to by <[src]>. - -RETURNS -The <> and <> functions return the number of bytes -stored in the array pointed to by <[dst]> (not including any terminating -null), if successful, otherwise it returns (size_t)-1. - -PORTABILITY -<> is defined by C99 standard. -<> is defined by the POSIX.1-2008 standard. -*/ - -#include -#include -#include -#include -#include -#include -#include "local.h" -#include "../locale/setlocale.h" - -#ifdef _REENT_THREAD_LOCAL -_Thread_local _mbstate_t _tls_wcsrtombs_state; -#endif - -size_t -_wcsnrtombs_l (struct _reent *r, char *dst, const wchar_t **src, size_t nwc, - size_t len, mbstate_t *ps, struct __locale_t *loc) -{ - char *ptr = dst; - char buff[10]; - wchar_t *pwcs; - size_t n; - int i; - -#ifdef _MB_CAPABLE - if (ps == NULL) - { - _REENT_CHECK_MISC(r); - ps = &(_REENT_WCSRTOMBS_STATE(r)); - } -#endif - - /* If no dst pointer, treat len as maximum possible value. */ - if (dst == NULL) - len = (size_t)-1; - - n = 0; - pwcs = (wchar_t *)(*src); - - while (n < len && nwc-- > 0) - { - int count = ps->__count; - wint_t wch = ps->__value.__wch; - int bytes = loc->wctomb (r, buff, *pwcs, ps); - if (bytes == -1) - { - _REENT_ERRNO(r) = EILSEQ; - ps->__count = 0; - return (size_t)-1; - } - if (n + bytes <= len) - { - n += bytes; - if (dst) - { - for (i = 0; i < bytes; ++i) - *ptr++ = buff[i]; - ++(*src); - } - if (*pwcs++ == 0x00) - { - if (dst) - *src = NULL; - ps->__count = 0; - return n - 1; - } - } - else - { - /* not enough room, we must back up state to before __WCTOMB call */ - ps->__count = count; - ps->__value.__wch = wch; - len = 0; - } - } - - return n; -} - -size_t -_wcsnrtombs_r (struct _reent *r, - char *dst, - const wchar_t **src, - size_t nwc, - size_t len, - mbstate_t *ps) -{ - return _wcsnrtombs_l (_REENT, dst, src, nwc, len, ps, - __get_current_locale ()); -} - -#ifndef _REENT_ONLY -size_t -wcsnrtombs (char *__restrict dst, - const wchar_t **__restrict src, - size_t nwc, - size_t len, - mbstate_t *__restrict ps) -{ - return _wcsnrtombs_l (_REENT, dst, src, nwc, len, ps, - __get_current_locale ()); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/wcsrtombs.c b/lib/stdlib/wcsrtombs.c deleted file mode 100644 index dc4807d..0000000 --- a/lib/stdlib/wcsrtombs.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Doc in wcsnrtombs.c */ - -#include -#include -#include - -size_t -_wcsrtombs_r (struct _reent *r, - char *dst, - const wchar_t **src, - size_t len, - mbstate_t *ps) -{ - return _wcsnrtombs_r (r, dst, src, (size_t) -1, len, ps); -} - -#ifndef _REENT_ONLY -size_t -wcsrtombs (char *__restrict dst, - const wchar_t **__restrict src, - size_t len, - mbstate_t *__restrict ps) -{ - return _wcsnrtombs_r (_REENT, dst, src, (size_t) -1, len, ps); -} -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/wcstod.c b/lib/stdlib/wcstod.c deleted file mode 100644 index 7b09834..0000000 --- a/lib/stdlib/wcstod.c +++ /dev/null @@ -1,281 +0,0 @@ -/* -FUNCTION - <>, <>, <>, <>, <>, <>---wide char string to double or float - -INDEX - wcstod - -INDEX - wcstof - -INDEX - wcstold - -INDEX - wcstod_l - -INDEX - wcstof_l - -INDEX - wcstold_l - -INDEX - _wcstod_r - -INDEX - _wcstof_r - -SYNOPSIS - #include - double wcstod(const wchar_t *__restrict <[str]>, - wchar_t **__restrict <[tail]>); - float wcstof(const wchar_t *__restrict <[str]>, - wchar_t **__restrict <[tail]>); - long double wcstold(const wchar_t *__restrict <[str]>, - wchar_t **__restrict <[tail]>); - - #include - double wcstod_l(const wchar_t *__restrict <[str]>, - wchar_t **__restrict <[tail]>, locale_t <[locale]>); - float wcstof_l(const wchar_t *__restrict <[str]>, - wchar_t **__restrict <[tail]>, locale_t <[locale]>); - long double wcstold_l(const wchar_t *__restrict <[str]>, - wchar_t **__restrict <[tail]>, - locale_t <[locale]>); - - double _wcstod_r(void *<[reent]>, - const wchar_t *<[str]>, wchar_t **<[tail]>); - float _wcstof_r(void *<[reent]>, - const wchar_t *<[str]>, wchar_t **<[tail]>); - -DESCRIPTION - <>, <>, <> parse the wide-character string - <[str]>, producing a substring which can be converted to a double, - float, or long double value. The substring converted is the longest - initial subsequence of <[str]>, beginning with the first non-whitespace - character, that has one of these formats: - .[+|-]<[digits]>[.[<[digits]>]][(e|E)[+|-]<[digits]>] - .[+|-].<[digits]>[(e|E)[+|-]<[digits]>] - .[+|-](i|I)(n|N)(f|F)[(i|I)(n|N)(i|I)(t|T)(y|Y)] - .[+|-](n|N)(a|A)(n|N)[<(>[<[hexdigits]>]<)>] - .[+|-]0(x|X)<[hexdigits]>[.[<[hexdigits]>]][(p|P)[+|-]<[digits]>] - .[+|-]0(x|X).<[hexdigits]>[(p|P)[+|-]<[digits]>] - The substring contains no characters if <[str]> is empty, consists - entirely of whitespace, or if the first non-whitespace - character is something other than <<+>>, <<->>, <<.>>, or a - digit, and cannot be parsed as infinity or NaN. If the platform - does not support NaN, then NaN is treated as an empty substring. - If the substring is empty, no conversion is done, and - the value of <[str]> is stored in <<*<[tail]>>>. Otherwise, - the substring is converted, and a pointer to the final string - (which will contain at least the terminating null character of - <[str]>) is stored in <<*<[tail]>>>. If you want no - assignment to <<*<[tail]>>>, pass a null pointer as <[tail]>. - - This implementation returns the nearest machine number to the - input decimal string. Ties are broken by using the IEEE - round-even rule. However, <> is currently subject to - double rounding errors. - - <>, <>, <> are like <>, - <>, <> but perform the conversion based on the - locale specified by the locale object locale. If <[locale]> is - LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is - undefined. - - The alternate functions <<_wcstod_r>> and <<_wcstof_r>> are - reentrant versions of <> and <>, respectively. - The extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS - Return the converted substring value, if any. If - no conversion could be performed, 0 is returned. If the - correct value is out of the range of representable values, - plus or minus <> is returned, and <> is - stored in errno. If the correct value would cause underflow, 0 - is returned and <> is stored in errno. - -PORTABILITY -<> is ANSI. -<>, <> are C99. -<>, <>, <> are GNU extensions. - -Supporting OS subroutines required: <>, <>, <>, -<>, <>, <>, <>. -*/ - -/*- - * Copyright (c) 2002 Tim J. Robbins - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include "mprec.h" - -double -_wcstod_l (struct _reent *ptr, const wchar_t *nptr, wchar_t **endptr, - locale_t loc) -{ - static const mbstate_t initial; - mbstate_t mbs; - double val; - char *buf, *end; - const wchar_t *wcp; - size_t len; - - while (iswspace_l(*nptr, loc)) - nptr++; - - /* - * Convert the supplied numeric wide char. string to multibyte. - * - * We could attempt to find the end of the numeric portion of the - * wide char. string to avoid converting unneeded characters but - * choose not to bother; optimising the uncommon case where - * the input string contains a lot of text after the number - * duplicates a lot of strtod()'s functionality and slows down the - * most common cases. - */ - wcp = nptr; - mbs = initial; - if ((len = _wcsnrtombs_l(ptr, NULL, &wcp, (size_t) -1, 0, &mbs, loc)) - == (size_t) -1) { - if (endptr != NULL) - *endptr = (wchar_t *)nptr; - return (0.0); - } - if ((buf = _malloc_r(ptr, len + 1)) == NULL) - return (0.0); - mbs = initial; - _wcsnrtombs_l(ptr, buf, &wcp, (size_t) -1, len + 1, &mbs, loc); - - /* Let strtod() do most of the work for us. */ - val = _strtod_l(ptr, buf, &end, loc); - - /* - * We only know where the number ended in the _multibyte_ - * representation of the string. If the caller wants to know - * where it ended, count multibyte characters to find the - * corresponding position in the wide char string. - */ - if (endptr != NULL) { - const char *decimal_point = __get_numeric_locale(loc)->decimal_point; - /* The only valid multibyte char in a float converted by - strtod/wcstod is the radix char. What we do here is, - figure out if the radix char was in the valid leading - float sequence in the incoming string. If so, the - multibyte float string is strlen(radix char) - 1 bytes - longer than the incoming wide char string has characters. - To fix endptr, reposition end as if the radix char was - just one byte long. The resulting difference (end - buf) - is then equivalent to the number of valid wide characters - in the input string. */ - len = strlen (decimal_point); - if (len > 1) { - char *d = strstr (buf, decimal_point); - if (d && d < end) - end -= len - 1; - } - *endptr = (wchar_t *)nptr + (end - buf); - } - - _free_r(ptr, buf); - - return (val); -} - -double -_wcstod_r (struct _reent *ptr, - const wchar_t *nptr, - wchar_t **endptr) -{ - return _wcstod_l (ptr, nptr, endptr, __get_current_locale ()); -} - -float -_wcstof_r (struct _reent *ptr, - const wchar_t *nptr, - wchar_t **endptr) -{ - double retval = _wcstod_l (ptr, nptr, endptr, __get_current_locale ()); - if (isnan (retval)) - return nanf (""); - return (float)retval; -} - -#ifndef _REENT_ONLY - -double -wcstod_l (const wchar_t *__restrict nptr, wchar_t **__restrict endptr, - locale_t loc) -{ - return _wcstod_l (_REENT, nptr, endptr, loc); -} - -double -wcstod (const wchar_t *__restrict nptr, wchar_t **__restrict endptr) -{ - return _wcstod_l (_REENT, nptr, endptr, __get_current_locale ()); -} - -float -wcstof_l (const wchar_t *__restrict nptr, wchar_t **__restrict endptr, - locale_t loc) -{ - double val = _wcstod_l (_REENT, nptr, endptr, loc); - if (isnan (val)) - return nanf (""); - float retval = (float) val; -#ifndef NO_ERRNO - if (isinf (retval) && !isinf (val)) - _REENT_ERRNO(_REENT) = ERANGE; -#endif - return retval; -} - -float -wcstof (const wchar_t *__restrict nptr, - wchar_t **__restrict endptr) -{ - double val = _wcstod_l (_REENT, nptr, endptr, __get_current_locale ()); - if (isnan (val)) - return nanf (""); - float retval = (float) val; -#ifndef NO_ERRNO - if (isinf (retval) && !isinf (val)) - _REENT_ERRNO(_REENT) = ERANGE; -#endif - - return retval; -} - -#endif diff --git a/lib/stdlib/wcstoimax.c b/lib/stdlib/wcstoimax.c deleted file mode 100644 index 0c939c9..0000000 --- a/lib/stdlib/wcstoimax.c +++ /dev/null @@ -1,158 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Copyright (c) 2011 The FreeBSD Foundation - * All rights reserved. - * Portions of this software were developed by David Chisnall - * under sponsorship from the FreeBSD Foundation. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#if 0 -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "from @(#)strtol.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ -__FBSDID("FreeBSD: src/lib/libc/stdlib/strtoimax.c,v 1.8 2002/09/06 11:23:59 tjr Exp "); -#endif -__FBSDID("$FreeBSD: head/lib/libc/locale/wcstoimax.c 314436 2017-02-28 23:42:47Z imp $"); - -#include -#include -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" - -/* - * Convert a wide character string to an intmax_t integer. - */ - -/* - *Reentrant version of wcstoimax. - */ -static intmax_t -_wcstoimax_l(struct _reent *rptr, const wchar_t * __restrict nptr, - wchar_t ** __restrict endptr, int base, locale_t loc) -{ - const wchar_t *s = nptr; - uintmax_t acc; - wchar_t c; - uintmax_t cutoff; - int neg = 0, any, cutlim; - - /* - * See strtoimax for comments as to the logic used. - */ - do { - c = *s++; - } while (iswspace_l(c, loc)); - if (c == L'-') { - neg = 1; - c = *s++; - } else { - neg = 0; - if (c == L'+') - c = *s++; - } - if ((base == 0 || base == 16) && - c == L'0' && (*s == L'x' || *s == L'X')) { - c = s[1]; - s += 2; - base = 16; - } - if (base == 0) - base = c == L'0' ? 8 : 10; - acc = any = 0; - if (base < 2 || base > 36) - goto noconv; - - cutoff = neg ? -(uintmax_t)INTMAX_MIN : INTMAX_MAX; - cutlim = cutoff % base; - cutoff /= base; - for ( ; ; c = *s++) { -#ifdef notyet - if (iswdigit_l(c, loc)) - c = digittoint_l(c, loc); - else -#endif - if (c >= L'0' && c <= L'9') - c -= L'0'; - else if (c >= L'A' && c <= L'Z') - c -= L'A' - 10; - else if (c >= 'a' && c <= 'z') - c -= L'a' - 10; - else - break; - if (c >= base) - break; - if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - any = -1; - else { - any = 1; - acc *= base; - acc += c; - } - } - if (any < 0) { - acc = neg ? INTMAX_MIN : INTMAX_MAX; - _REENT_ERRNO(rptr) = ERANGE; - } else if (!any) { -noconv: - _REENT_ERRNO(rptr) = EINVAL; - } else if (neg) - acc = -acc; - if (endptr != NULL) - *endptr = (wchar_t *)(any ? s - 1 : nptr); - return (acc); -} - -intmax_t -_wcstoimax_r(struct _reent *rptr, const wchar_t *__restrict nptr, - wchar_t **__restrict endptr, int base) -{ - return _wcstoimax_l(rptr, nptr, endptr, base, __get_current_locale()); -} - -#ifndef _REENT_ONLY - -intmax_t -wcstoimax_l(const wchar_t * __restrict nptr, wchar_t ** __restrict endptr, - int base, locale_t loc) -{ - return _wcstoimax_l(_REENT, nptr, endptr, base, loc); -} - -intmax_t -wcstoimax(const wchar_t* __restrict nptr, wchar_t** __restrict endptr, int base) -{ - return _wcstoimax_l(_REENT, nptr, endptr, base, __get_current_locale()); -} - -#endif diff --git a/lib/stdlib/wcstol.c b/lib/stdlib/wcstol.c deleted file mode 100644 index 2a8c28f..0000000 --- a/lib/stdlib/wcstol.c +++ /dev/null @@ -1,237 +0,0 @@ -/* -FUNCTION - <>, <>---wide string to long - -INDEX - wcstol - -INDEX - wcstol_l - -INDEX - _wcstol_r - -SYNOPSIS - #include - long wcstol(const wchar_t *__restrict <[s]>, - wchar_t **__restrict <[ptr]>, int <[base]>); - - #include - long wcstol_l(const wchar_t *__restrict <[s]>, - wchar_t **__restrict <[ptr]>, int <[base]>, - locale_t <[locale]>); - - long _wcstol_r(void *<[reent]>, const wchar_t *<[s]>, - wchar_t **<[ptr]>, int <[base]>); - -DESCRIPTION -The function <> converts the wide string <<*<[s]>>> to -a <>. First, it breaks down the string into three parts: -leading whitespace, which is ignored; a subject string consisting -of characters resembling an integer in the radix specified by <[base]>; -and a trailing portion consisting of zero or more unparseable characters, -and always including the terminating null character. Then, it attempts -to convert the subject string into a <> and returns the -result. - -If the value of <[base]> is 0, the subject string is expected to look -like a normal C integer constant: an optional sign, a possible `<<0x>>' -indicating a hexadecimal base, and a number. If <[base]> is between -2 and 36, the expected form of the subject is a sequence of letters -and digits representing an integer in the radix specified by <[base]>, -with an optional plus or minus sign. The letters <>--<> (or, -equivalently, <>--<>) are used to signify values from 10 to 35; -only letters whose ascribed values are less than <[base]> are -permitted. If <[base]> is 16, a leading <<0x>> is permitted. - -The subject sequence is the longest initial sequence of the input -string that has the expected form, starting with the first -non-whitespace character. If the string is empty or consists entirely -of whitespace, or if the first non-whitespace character is not a -permissible letter or digit, the subject string is empty. - -If the subject string is acceptable, and the value of <[base]> is zero, -<> attempts to determine the radix from the input string. A -string with a leading <<0x>> is treated as a hexadecimal value; a string with -a leading 0 and no <> is treated as octal; all other strings are -treated as decimal. If <[base]> is between 2 and 36, it is used as the -conversion radix, as described above. If the subject string begins with -a minus sign, the value is negated. Finally, a pointer to the first -character past the converted subject string is stored in <[ptr]>, if -<[ptr]> is not <>. - -If the subject string is empty (or not in acceptable form), no conversion -is performed and the value of <[s]> is stored in <[ptr]> (if <[ptr]> is -not <>). - -The alternate function <<_wcstol_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - -<> is like <> but performs the conversion based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return the converted value, if any. If no -conversion was made, 0 is returned. - -<>, <> return <> or <> if the -magnitude of the converted value is too large, and sets <> -to <>. - -PORTABILITY -<> is ANSI. -<> is a GNU extension. - -No supporting OS subroutines are required. -*/ - -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" - -/* - * Convert a wide string to a long integer. - */ -static long -_wcstol_l (struct _reent *rptr, const wchar_t *nptr, wchar_t **endptr, - int base, locale_t loc) -{ - register const wchar_t *s = nptr; - register unsigned long acc; - register int c; - register unsigned long cutoff; - register int neg = 0, any, cutlim; - - /* - * Skip white space and pick up leading +/- sign if any. - * If base is 0, allow 0x for hex and 0 for octal, else - * assume decimal; if base is already 16, allow 0x. - */ - do { - c = *s++; - } while (iswspace_l(c, loc)); - if (c == L'-') { - neg = 1; - c = *s++; - } else if (c == L'+') - c = *s++; - if ((base == 0 || base == 16) && - c == L'0' && (*s == L'x' || *s == L'X')) { - c = s[1]; - s += 2; - base = 16; - } - if (base == 0) - base = c == L'0' ? 8 : 10; - - /* - * Compute the cutoff value between legal numbers and illegal - * numbers. That is the largest legal value, divided by the - * base. An input number that is greater than this value, if - * followed by a legal input character, is too big. One that - * is equal to this value may be valid or not; the limit - * between valid and invalid numbers is then based on the last - * digit. For instance, if the range for longs is - * [-2147483648..2147483647] and the input base is 10, - * cutoff will be set to 214748364 and cutlim to either - * 7 (neg==0) or 8 (neg==1), meaning that if we have accumulated - * a value > 214748364, or equal but the next digit is > 7 (or 8), - * the number is too big, and we will return a range error. - * - * Set any if any `digits' consumed; make it negative to indicate - * overflow. - */ - cutoff = neg ? -(unsigned long)LONG_MIN : LONG_MAX; - cutlim = cutoff % (unsigned long)base; - cutoff /= (unsigned long)base; - for (acc = 0, any = 0;; c = *s++) { - if (c >= L'0' && c <= L'9') - c -= L'0'; - else if (c >= L'A' && c <= L'Z') - c -= L'A' - 10; - else if (c >= L'a' && c <= L'z') - c -= L'a' - 10; - else - break; - if (c >= base) - break; - if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - any = -1; - else { - any = 1; - acc *= base; - acc += c; - } - } - if (any < 0) { - acc = neg ? LONG_MIN : LONG_MAX; - _REENT_ERRNO(rptr) = ERANGE; - } else if (neg) - acc = -acc; - if (endptr != 0) - *endptr = (wchar_t *) (any ? s - 1 : nptr); - return (acc); -} - -long -_wcstol_r (struct _reent *rptr, - const wchar_t *nptr, - wchar_t **endptr, - int base) -{ - return _wcstol_l (rptr, nptr, endptr, base, __get_current_locale ()); -} - -#ifndef _REENT_ONLY - -long -wcstol_l (const wchar_t *__restrict s, wchar_t **__restrict ptr, int base, - locale_t loc) -{ - return _wcstol_l (_REENT, s, ptr, base, loc); -} - -long -wcstol (const wchar_t *__restrict s, - wchar_t **__restrict ptr, - int base) -{ - return _wcstol_l (_REENT, s, ptr, base, __get_current_locale ()); -} - -#endif diff --git a/lib/stdlib/wcstold.c b/lib/stdlib/wcstold.c deleted file mode 100644 index 673d928..0000000 --- a/lib/stdlib/wcstold.c +++ /dev/null @@ -1,124 +0,0 @@ -/* -(C) Copyright IBM Corp. 2009 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of IBM nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -#define _GNU_SOURCE -#include -#include -#include -#include -#include -#include "local.h" -#include "../locale/setlocale.h" - -long double -wcstold_l (const wchar_t *__restrict nptr, wchar_t **__restrict endptr, - locale_t loc) -{ -#ifdef _LDBL_EQ_DBL -/* On platforms where long double is as wide as double. */ - return wcstod_l(nptr, endptr, loc); - -#else /* This is a duplicate of the code in wcstod.c, but converted to long double. */ - - static const mbstate_t initial; - mbstate_t mbs; - long double val; - char *buf, *end; - const wchar_t *wcp; - size_t len; - - while (iswspace (*nptr)) - nptr++; - - /* Convert the supplied numeric wide char string to multibyte. */ - wcp = nptr; - mbs = initial; - if ((len = _wcsnrtombs_l (_REENT, NULL, &wcp, (size_t) -1, 0, &mbs, loc)) - == (size_t) -1) - { - if (endptr != NULL) - *endptr = (wchar_t *) nptr; - return 0.0L; - } - - if ((buf = malloc (len + 1)) == NULL) - return 0.0L; - - mbs = initial; - _wcsnrtombs_l (_REENT, buf, &wcp, (size_t) -1, len + 1, &mbs, loc); - - val = strtold_l (buf, &end, loc); - - /* We only know where the number ended in the _multibyte_ - representation of the string. If the caller wants to know - where it ended, count multibyte characters to find the - corresponding position in the wide char string. */ - - if (endptr != NULL) - { - const char *decimal_point = __get_numeric_locale(loc)->decimal_point; - /* The only valid multibyte char in a float converted by - strtold/wcstold is the radix char. What we do here is, - figure out if the radix char was in the valid leading - float sequence in the incoming string. If so, the - multibyte float string is strlen (radix char) - 1 bytes - longer than the incoming wide char string has characters. - To fix endptr, reposition end as if the radix char was - just one byte long. The resulting difference (end - buf) - is then equivalent to the number of valid wide characters - in the input string. */ - len = strlen (decimal_point); - if (len > 1) - { - char *d = strstr (buf, decimal_point); - - if (d && d < end) - end -= len - 1; - } - - *endptr = (wchar_t *) nptr + (end - buf); - } - - free (buf); - - return val; -#endif /* _LDBL_EQ_DBL */ -} - -long double -wcstold (const wchar_t *__restrict nptr, wchar_t **__restrict endptr) -{ -#ifdef _LDBL_EQ_DBL -/* On platforms where long double is as wide as double. */ - return wcstod_l(nptr, endptr, __get_current_locale ()); -#else - return wcstold_l(nptr, endptr, __get_current_locale ()); -#endif -} diff --git a/lib/stdlib/wcstoll.c b/lib/stdlib/wcstoll.c deleted file mode 100644 index 34a7e37..0000000 --- a/lib/stdlib/wcstoll.c +++ /dev/null @@ -1,237 +0,0 @@ -/* -FUNCTION - <>, <>---wide string to long long - -INDEX - wcstoll - -INDEX - wcstoll_l - -INDEX - _wcstoll_r - -SYNOPSIS - #include - long long wcstoll(const wchar_t *__restrict <[s]>, - wchar_t **__restrict <[ptr]>,int <[base]>); - - #include - long long wcstoll_l(const wchar_t *__restrict <[s]>, - wchar_t **__restrict <[ptr]>, int <[base]>, - locale_t <[locale]>); - - long long _wcstoll_r(void *<[reent]>, const wchar_t *<[s]>, - wchar_t **<[ptr]>, int <[base]>); - -DESCRIPTION -The function <> converts the wide string <<*<[s]>>> to -a <>. First, it breaks down the string into three parts: -leading whitespace, which is ignored; a subject string consisting -of characters resembling an integer in the radix specified by <[base]>; -and a trailing portion consisting of zero or more unparseable characters, -and always including the terminating null character. Then, it attempts -to convert the subject string into a <> and returns the -result. - -If the value of <[base]> is 0, the subject string is expected to look -like a normal C integer constant: an optional sign, a possible `<<0x>>' -indicating a hexadecimal base, and a number. If <[base]> is between -2 and 36, the expected form of the subject is a sequence of letters -and digits representing an integer in the radix specified by <[base]>, -with an optional plus or minus sign. The letters <>--<> (or, -equivalently, <>--<>) are used to signify values from 10 to 35; -only letters whose ascribed values are less than <[base]> are -permitted. If <[base]> is 16, a leading <<0x>> is permitted. - -The subject sequence is the longest initial sequence of the input -string that has the expected form, starting with the first -non-whitespace character. If the string is empty or consists entirely -of whitespace, or if the first non-whitespace character is not a -permissible letter or digit, the subject string is empty. - -If the subject string is acceptable, and the value of <[base]> is zero, -<> attempts to determine the radix from the input string. A -string with a leading <<0x>> is treated as a hexadecimal value; a string with -a leading 0 and no <> is treated as octal; all other strings are -treated as decimal. If <[base]> is between 2 and 36, it is used as the -conversion radix, as described above. If the subject string begins with -a minus sign, the value is negated. Finally, a pointer to the first -character past the converted subject string is stored in <[ptr]>, if -<[ptr]> is not <>. - -If the subject string is empty (or not in acceptable form), no conversion -is performed and the value of <[s]> is stored in <[ptr]> (if <[ptr]> is -not <>). - -The alternate function <<_wcstoll_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - -<> is like <> but performs the conversion based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return the converted value, if any. If no -conversion was made, 0 is returned. - -<>, <> return <> or <> -if the magnitude of the converted value is too large, and sets <> -to <>. - -PORTABILITY -<> is ANSI. -<> is a GNU extension. - -No supporting OS subroutines are required. -*/ - -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define _GNU_SOURCE -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" - -/* - * Convert a wide string to a long long integer. - */ -long long -_wcstoll_l (struct _reent *rptr, const wchar_t *nptr, wchar_t **endptr, - int base, locale_t loc) -{ - register const wchar_t *s = nptr; - register unsigned long long acc; - register int c; - register unsigned long long cutoff; - register int neg = 0, any, cutlim; - - /* - * Skip white space and pick up leading +/- sign if any. - * If base is 0, allow 0x for hex and 0 for octal, else - * assume decimal; if base is already 16, allow 0x. - */ - do { - c = *s++; - } while (iswspace_l(c, loc)); - if (c == L'-') { - neg = 1; - c = *s++; - } else if (c == L'+') - c = *s++; - if ((base == 0 || base == 16) && - c == L'0' && (*s == L'x' || *s == L'X')) { - c = s[1]; - s += 2; - base = 16; - } - if (base == 0) - base = c == L'0' ? 8 : 10; - - /* - * Compute the cutoff value between legal numbers and illegal - * numbers. That is the largest legal value, divided by the - * base. An input number that is greater than this value, if - * followed by a legal input character, is too big. One that - * is equal to this value may be valid or not; the limit - * between valid and invalid numbers is then based on the last - * digit. For instance, if the range for longs is - * [-2147483648..2147483647] and the input base is 10, - * cutoff will be set to 214748364 and cutlim to either - * 7 (neg==0) or 8 (neg==1), meaning that if we have accumulated - * a value > 214748364, or equal but the next digit is > 7 (or 8), - * the number is too big, and we will return a range error. - * - * Set any if any `digits' consumed; make it negative to indicate - * overflow. - */ - cutoff = neg ? -(unsigned long long)LONG_LONG_MIN : LONG_LONG_MAX; - cutlim = cutoff % (unsigned long long)base; - cutoff /= (unsigned long long)base; - for (acc = 0, any = 0;; c = *s++) { - if (c >= L'0' && c <= L'9') - c -= L'0'; - else if (c >= L'A' && c <= L'Z') - c -= L'A' - 10; - else if (c >= L'a' && c <= L'z') - c -= L'a' - 10; - else - break; - if (c >= base) - break; - if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - any = -1; - else { - any = 1; - acc *= base; - acc += c; - } - } - if (any < 0) { - acc = neg ? LONG_LONG_MIN : LONG_LONG_MAX; - _REENT_ERRNO(rptr) = ERANGE; - } else if (neg) - acc = -acc; - if (endptr != 0) - *endptr = (wchar_t *) (any ? s - 1 : nptr); - return (acc); -} - -long long -_wcstoll_r (struct _reent *rptr, - const wchar_t *nptr, - wchar_t **endptr, - int base) -{ - return _wcstoll_l (rptr, nptr, endptr, base, __get_current_locale ()); -} - -#ifndef _REENT_ONLY - -long long -wcstoll_l (const wchar_t *__restrict s, wchar_t **__restrict ptr, int base, - locale_t loc) -{ - return _wcstoll_l (_REENT, s, ptr, base, loc); -} - -long long -wcstoll (const wchar_t *__restrict s, - wchar_t **__restrict ptr, - int base) -{ - return _wcstoll_l (_REENT, s, ptr, base, __get_current_locale ()); -} - -#endif diff --git a/lib/stdlib/wcstoll_r.c b/lib/stdlib/wcstoll_r.c deleted file mode 100644 index 2997587..0000000 --- a/lib/stdlib/wcstoll_r.c +++ /dev/null @@ -1 +0,0 @@ -/* dummy */ diff --git a/lib/stdlib/wcstombs.c b/lib/stdlib/wcstombs.c deleted file mode 100644 index 42be540..0000000 --- a/lib/stdlib/wcstombs.c +++ /dev/null @@ -1,75 +0,0 @@ -/* -FUNCTION -<>---minimal wide char string to multibyte string converter - -INDEX - wcstombs - -SYNOPSIS - #include - size_t wcstombs(char *restrict <[s]>, const wchar_t *restrict <[pwc]>, size_t <[n]>); - -DESCRIPTION -When _MB_CAPABLE is not defined, this is a minimal ANSI-conforming -implementation of <>. In this case, -all wide-characters are expected to represent single bytes and so -are converted simply by casting to char. - -When _MB_CAPABLE is defined, this routine calls <<_wcstombs_r>> to perform -the conversion, passing a state variable to allow state dependent -decoding. The result is based on the locale setting which may -be restricted to a defined set of locales. - -RETURNS -This implementation of <> returns <<0>> if -<[s]> is <> or is the empty string; -it returns <<-1>> if _MB_CAPABLE and one of the -wide-char characters does not represent a valid multi-byte character; -otherwise it returns the minimum of: <> or the -number of bytes that are transferred to <>, not including the -nul terminator. - -If the return value is -1, the state of the <> string is -indeterminate. If the input has a length of 0, the output -string will be modified to contain a wchar_t nul terminator if -<> > 0. - -PORTABILITY -<> is required in the ANSI C standard. However, the precise -effects vary with the locale. - -<> requires no supporting OS subroutines. -*/ - -#ifndef _REENT_ONLY - -#include -#include -#include - -size_t -wcstombs (char *__restrict s, - const wchar_t *__restrict pwcs, - size_t n) -{ -#ifdef _MB_CAPABLE - mbstate_t state; - state.__count = 0; - - return _wcstombs_r (_REENT, s, pwcs, n, &state); -#else /* not _MB_CAPABLE */ - int count = 0; - - if (n != 0) { - do { - if ((*s++ = (char) *pwcs++) == 0) - break; - count++; - } while (--n != 0); - } - - return count; -#endif /* not _MB_CAPABLE */ -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/wcstombs_r.c b/lib/stdlib/wcstombs_r.c deleted file mode 100644 index c6a06a3..0000000 --- a/lib/stdlib/wcstombs_r.c +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include -#include "local.h" - -size_t -_wcstombs_r (struct _reent *r, - char *__restrict s, - const wchar_t *__restrict pwcs, - size_t n, - mbstate_t *state) -{ - char *ptr = s; - size_t max = n; - char buff[8]; - int i, bytes, num_to_copy; - - if (s == NULL) - { - size_t num_bytes = 0; - while (*pwcs != 0) - { - bytes = __WCTOMB (r, buff, *pwcs++, state); - if (bytes == -1) - return -1; - num_bytes += bytes; - } - return num_bytes; - } - else - { - while (n > 0) - { - bytes = __WCTOMB (r, buff, *pwcs, state); - if (bytes == -1) - return -1; - num_to_copy = (n > bytes ? bytes : (int)n); - for (i = 0; i < num_to_copy; ++i) - *ptr++ = buff[i]; - - if (*pwcs == 0x00) - return ptr - s - (n >= bytes); - ++pwcs; - n -= num_to_copy; - } - return max; - } -} diff --git a/lib/stdlib/wcstoul.c b/lib/stdlib/wcstoul.c deleted file mode 100644 index 9c78fc3..0000000 --- a/lib/stdlib/wcstoul.c +++ /dev/null @@ -1,216 +0,0 @@ -/* -FUNCTION - <>, <>---wide string to unsigned long - -INDEX - wcstoul - -INDEX - wcstoul_l - -INDEX - _wcstoul_r - -SYNOPSIS - #include - unsigned long wcstoul(const wchar_t *__restrict <[s]>, - wchar_t **__restrict <[ptr]>, int <[base]>); - - #include - unsigned long wcstoul_l(const wchar_t *__restrict <[s]>, - wchar_t **__restrict <[ptr]>, int <[base]>, - locale_t <[locale]>); - - unsigned long _wcstoul_r(void *<[reent]>, const wchar_t *<[s]>, - wchar_t **<[ptr]>, int <[base]>); - -DESCRIPTION -The function <> converts the wide string <<*<[s]>>> to -an <>. First, it breaks down the string into three parts: -leading whitespace, which is ignored; a subject string consisting -of the digits meaningful in the radix specified by <[base]> -(for example, <<0>> through <<7>> if the value of <[base]> is 8); -and a trailing portion consisting of one or more unparseable characters, -which always includes the terminating null character. Then, it attempts -to convert the subject string into an unsigned long integer, and returns the -result. - -If the value of <[base]> is zero, the subject string is expected to look -like a normal C integer constant (save that no optional sign is permitted): -a possible <<0x>> indicating hexadecimal radix, and a number. -If <[base]> is between 2 and 36, the expected form of the subject is a -sequence of digits (which may include letters, depending on the -base) representing an integer in the radix specified by <[base]>. -The letters <>--<> (or <>--<>) are used as digits valued from -10 to 35. If <[base]> is 16, a leading <<0x>> is permitted. - -The subject sequence is the longest initial sequence of the input -string that has the expected form, starting with the first -non-whitespace character. If the string is empty or consists entirely -of whitespace, or if the first non-whitespace character is not a -permissible digit, the subject string is empty. - -If the subject string is acceptable, and the value of <[base]> is zero, -<> attempts to determine the radix from the input string. A -string with a leading <<0x>> is treated as a hexadecimal value; a string with -a leading <<0>> and no <> is treated as octal; all other strings are -treated as decimal. If <[base]> is between 2 and 36, it is used as the -conversion radix, as described above. Finally, a pointer to the first -character past the converted subject string is stored in <[ptr]>, if -<[ptr]> is not <>. - -If the subject string is empty (that is, if <<*>><[s]> does not start -with a substring in acceptable form), no conversion -is performed and the value of <[s]> is stored in <[ptr]> (if <[ptr]> is -not <>). - -The alternate function <<_wcstoul_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - - -<> is like <> but performs the conversion based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return the converted value, if any. If no -conversion was made, <<0>> is returned. - -<>, <> return <> if the magnitude of the -converted value is too large, and sets <> to <>. - -PORTABILITY -<> is ANSI. -<> is a GNU extension. - -<> requires no supporting OS subroutines. -*/ - -/* - * Copyright (c) 1990 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" - -/* - * Convert a wide string to an unsigned long integer. - */ -unsigned long -_wcstoul_l (struct _reent *rptr, const wchar_t *nptr, wchar_t **endptr, - int base, locale_t loc) -{ - register const wchar_t *s = nptr; - register unsigned long acc; - register int c; - register unsigned long cutoff; - register int neg = 0, any, cutlim; - - /* - * See strtol for comments as to the logic used. - */ - do { - c = *s++; - } while (iswspace_l(c, loc)); - if (c == L'-') { - neg = 1; - c = *s++; - } else if (c == L'+') - c = *s++; - if ((base == 0 || base == 16) && - c == L'0' && (*s == L'x' || *s == L'X')) { - c = s[1]; - s += 2; - base = 16; - } - if (base == 0) - base = c == L'0' ? 8 : 10; - cutoff = (unsigned long)ULONG_MAX / (unsigned long)base; - cutlim = (unsigned long)ULONG_MAX % (unsigned long)base; - for (acc = 0, any = 0;; c = *s++) { - if (c >= L'0' && c <= L'9') - c -= L'0'; - else if (c >= L'A' && c <= L'Z') - c -= L'A' - 10; - else if (c >= L'a' && c <= L'z') - c -= L'a' - 10; - else - break; - if (c >= base) - break; - if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - any = -1; - else { - any = 1; - acc *= base; - acc += c; - } - } - if (any < 0) { - acc = ULONG_MAX; - _REENT_ERRNO(rptr) = ERANGE; - } else if (neg) - acc = -acc; - if (endptr != 0) - *endptr = (wchar_t *) (any ? s - 1 : nptr); - return (acc); -} - -unsigned long -_wcstoul_r (struct _reent *rptr, - const wchar_t *nptr, - wchar_t **endptr, - int base) -{ - return _wcstoul_l (rptr, nptr, endptr, base, __get_current_locale ()); -} - -#ifndef _REENT_ONLY - -unsigned long -wcstoul_l (const wchar_t *__restrict s, wchar_t **__restrict ptr, int base, - locale_t loc) -{ - return _wcstoul_l (_REENT, s, ptr, base, loc); -} - -unsigned long -wcstoul (const wchar_t *__restrict s, - wchar_t **__restrict ptr, - int base) -{ - return _wcstoul_l (_REENT, s, ptr, base, __get_current_locale ()); -} - -#endif diff --git a/lib/stdlib/wcstoull.c b/lib/stdlib/wcstoull.c deleted file mode 100644 index 09422fa..0000000 --- a/lib/stdlib/wcstoull.c +++ /dev/null @@ -1,232 +0,0 @@ -/* -FUNCTION - <>, <>---wide string to unsigned long long - -INDEX - wcstoull - -INDEX - wcstoull_l - -INDEX - _wcstoull_r - -SYNOPSIS - #include - unsigned long long wcstoull(const wchar_t *__restrict <[s]>, - wchar_t **__restrict <[ptr]>, - int <[base]>); - - #include - unsigned long long wcstoull_l(const wchar_t *__restrict <[s]>, - wchar_t **__restrict <[ptr]>, - int <[base]>, - locale_t <[locale]>); - - unsigned long long _wcstoull_r(void *<[reent]>, const wchar_t *<[s]>, - wchar_t **<[ptr]>, int <[base]>); - -DESCRIPTION -The function <> converts the wide string <<*<[s]>>> to -an <>. First, it breaks down the string into three parts: -leading whitespace, which is ignored; a subject string consisting -of the digits meaningful in the radix specified by <[base]> -(for example, <<0>> through <<7>> if the value of <[base]> is 8); -and a trailing portion consisting of one or more unparseable characters, -which always includes the terminating null character. Then, it attempts -to convert the subject string into an unsigned long long integer, and returns the -result. - -If the value of <[base]> is zero, the subject string is expected to look -like a normal C integer constant: an optional sign (<<+>> or <<->>), -a possible <<0x>> indicating hexadecimal radix or a possible <0> indicating -octal radix, and a number. -If <[base]> is between 2 and 36, the expected form of the subject is a -sequence of digits (which may include letters, depending on the -base) representing an integer in the radix specified by <[base]>. -The letters <>--<> (or <>--<>) are used as digits valued from -10 to 35. If <[base]> is 16, a leading <<0x>> is permitted. - -The subject sequence is the longest initial sequence of the input -string that has the expected form, starting with the first -non-whitespace character. If the string is empty or consists entirely -of whitespace, or if the first non-whitespace character is not a -permissible digit, the subject string is empty. - -If the subject string is acceptable, and the value of <[base]> is zero, -<> attempts to determine the radix from the input string. A -string with a leading <<0x>> is treated as a hexadecimal value; a string with -a leading <<0>> and no <> is treated as octal; all other strings are -treated as decimal. If <[base]> is between 2 and 36, it is used as the -conversion radix, as described above. Finally, a pointer to the first -character past the converted subject string is stored in <[ptr]>, if -<[ptr]> is not <>. - -If the subject string is empty (that is, if <<*>><[s]> does not start -with a substring in acceptable form), no conversion -is performed and the value of <[s]> is stored in <[ptr]> (if <[ptr]> is -not <>). - -The alternate function <<_wcstoull_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - - -<> is like <> but performs the conversion based on the -locale specified by the locale object locale. If <[locale]> is -LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. - -RETURNS -<>, <> return <<0>> and sets <> to <> -if the value of <[base]> is not supported. - -<>, <> return the converted value, if any. If no -conversion was made, <<0>> is returned. - -<>, <> return <> if the magnitude of -the converted value is too large, and sets <> to <>. - -PORTABILITY -<> is ANSI. -<> is a GNU extension. - -<> requires no supporting OS subroutines. -*/ - -/* - * Copyright (c) 1990 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define _GNU_SOURCE -#include <_ansi.h> -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" - -/* Make up for older non-compliant limits.h. (This is a C99/POSIX function, - * and both require ULLONG_MAX in limits.h.) */ -#if !defined(ULLONG_MAX) -# define ULLONG_MAX ULONG_LONG_MAX -#endif - -/* - * Convert a wide string to an unsigned long long integer. - */ -unsigned long long -_wcstoull_l (struct _reent *rptr, const wchar_t *nptr, wchar_t **endptr, - int base, locale_t loc) -{ - register const wchar_t *s = nptr; - register unsigned long long acc; - register int c; - register unsigned long long cutoff; - register int neg = 0, any, cutlim; - - if(base < 0 || base == 1 || base > 36) { - _REENT_ERRNO(rptr) = EINVAL; - return(0ULL); - } - /* - * See strtol for comments as to the logic used. - */ - do { - c = *s++; - } while (iswspace_l(c, loc)); - if (c == L'-') { - neg = 1; - c = *s++; - } else if (c == L'+') - c = *s++; - if ((base == 0 || base == 16) && - c == L'0' && (*s == L'x' || *s == L'X')) { - c = s[1]; - s += 2; - base = 16; - } - if (base == 0) - base = c == L'0' ? 8 : 10; - cutoff = (unsigned long long)ULLONG_MAX / (unsigned long long)base; - cutlim = (unsigned long long)ULLONG_MAX % (unsigned long long)base; - for (acc = 0, any = 0;; c = *s++) { - if (c >= L'0' && c <= L'9') - c -= L'0'; - else if (c >= L'A' && c <= L'Z') - c -= L'A' - 10; - else if (c >= L'a' && c <= L'z') - c -= L'a' - 10; - else - break; - if (c >= base) - break; - if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - any = -1; - else { - any = 1; - acc *= base; - acc += c; - } - } - if (any < 0) { - acc = ULLONG_MAX; - _REENT_ERRNO(rptr) = ERANGE; - } else if (neg) - acc = -acc; - if (endptr != 0) - *endptr = (wchar_t *) (any ? s - 1 : nptr); - return (acc); -} - -unsigned long long -_wcstoull_r (struct _reent *rptr, - const wchar_t *nptr, - wchar_t **endptr, - int base) -{ - return _wcstoull_l (rptr, nptr, endptr, base, __get_current_locale ()); -} - -#ifndef _REENT_ONLY - -unsigned long long -wcstoull_l (const wchar_t *__restrict s, wchar_t **__restrict ptr, int base, - locale_t loc) -{ - return _wcstoull_l (_REENT, s, ptr, base, loc); -} - -unsigned long long -wcstoull (const wchar_t *__restrict s, - wchar_t **__restrict ptr, - int base) -{ - return _wcstoull_l (_REENT, s, ptr, base, __get_current_locale ()); -} - -#endif diff --git a/lib/stdlib/wcstoull_r.c b/lib/stdlib/wcstoull_r.c deleted file mode 100644 index 2997587..0000000 --- a/lib/stdlib/wcstoull_r.c +++ /dev/null @@ -1 +0,0 @@ -/* dummy */ diff --git a/lib/stdlib/wcstoumax.c b/lib/stdlib/wcstoumax.c deleted file mode 100644 index 623f5b9..0000000 --- a/lib/stdlib/wcstoumax.c +++ /dev/null @@ -1,157 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Copyright (c) 2011 The FreeBSD Foundation - * All rights reserved. - * Portions of this software were developed by David Chisnall - * under sponsorship from the FreeBSD Foundation. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#if 0 -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "from @(#)strtoul.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ -__FBSDID("FreeBSD: src/lib/libc/stdlib/strtoumax.c,v 1.8 2002/09/06 11:23:59 tjr Exp "); -#endif -__FBSDID("$FreeBSD: head/lib/libc/locale/wcstoumax.c 314436 2017-02-28 23:42:47Z imp $"); - -#include -#include -#include -#include -#include -#include -#include -#include "../locale/setlocale.h" - -/* - * Convert a wide character string to a uintmax_t integer. - */ - -/* - *Reentrant version of wcstoumax. - */ -static uintmax_t -_wcstoumax_l(struct _reent *rptr,const wchar_t * __restrict nptr, - wchar_t ** __restrict endptr, int base, locale_t loc) -{ - const wchar_t *s = nptr; - uintmax_t acc; - wchar_t c; - uintmax_t cutoff; - int neg = 0, any, cutlim; - - /* - * See strtoimax for comments as to the logic used. - */ - do { - c = *s++; - } while (iswspace_l(c, loc)); - if (c == L'-') { - neg = 1; - c = *s++; - } else { - neg = 0; - if (c == L'+') - c = *s++; - } - if ((base == 0 || base == 16) && - c == L'0' && (*s == L'x' || *s == L'X')) { - c = s[1]; - s += 2; - base = 16; - } - if (base == 0) - base = c == L'0' ? 8 : 10; - acc = any = 0; - if (base < 2 || base > 36) - goto noconv; - - cutoff = UINTMAX_MAX / base; - cutlim = UINTMAX_MAX % base; - for ( ; ; c = *s++) { -#ifdef notyet - if (iswdigit_l(c, loc)) - c = digittoint_l(c, loc); - else -#endif - if (c >= L'0' && c <= L'9') - c -= L'0'; - else if (c >= L'A' && c <= L'Z') - c -= L'A' - 10; - else if (c >= L'a' && c <= L'z') - c -= L'a' - 10; - else - break; - if (c >= base) - break; - if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - any = -1; - else { - any = 1; - acc *= base; - acc += c; - } - } - if (any < 0) { - acc = UINTMAX_MAX; - _REENT_ERRNO(rptr) = ERANGE; - } else if (!any) { -noconv: - _REENT_ERRNO(rptr) = EINVAL; - } else if (neg) - acc = -acc; - if (endptr != NULL) - *endptr = (wchar_t *)(any ? s - 1 : nptr); - return (acc); -} - -uintmax_t -_wcstoumax_r(struct _reent *rptr, const wchar_t *__restrict nptr, - wchar_t **__restrict endptr, int base) -{ - return _wcstoumax_l(rptr, nptr, endptr, base, __get_current_locale()); -} - -#ifndef _REENT_ONLY - -uintmax_t -wcstoumax_l(const wchar_t * __restrict nptr, wchar_t ** __restrict endptr, - int base, locale_t loc) -{ - return _wcstoumax_l(_REENT, nptr, endptr, base, loc); -} - -uintmax_t -wcstoumax(const wchar_t* __restrict nptr, wchar_t** __restrict endptr, int base) -{ - return _wcstoumax_l(_REENT, nptr, endptr, base, __get_current_locale()); -} - -#endif diff --git a/lib/stdlib/wctob.c b/lib/stdlib/wctob.c deleted file mode 100644 index 61365a1..0000000 --- a/lib/stdlib/wctob.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include -#include -#include -#include -#include "local.h" - -int -wctob (wint_t wc) -{ - struct _reent *reent; - mbstate_t mbs; - unsigned char pmb[MB_LEN_MAX]; - - if (wc == WEOF) - return EOF; - - /* Put mbs in initial state. */ - memset (&mbs, '\0', sizeof (mbs)); - - reent = _REENT; - _REENT_CHECK_MISC(reent); - - return __WCTOMB (reent, (char *) pmb, wc, &mbs) == 1 ? (int) pmb[0] : EOF; -} diff --git a/lib/stdlib/wctomb.c b/lib/stdlib/wctomb.c deleted file mode 100644 index f56dccf..0000000 --- a/lib/stdlib/wctomb.c +++ /dev/null @@ -1,77 +0,0 @@ -/* -FUNCTION -<>---minimal wide char to multibyte converter - -INDEX - wctomb - -SYNOPSIS - #include - int wctomb(char *<[s]>, wchar_t <[wchar]>); - -DESCRIPTION -When _MB_CAPABLE is not defined, this is a minimal ANSI-conforming -implementation of <>. The -only ``wide characters'' recognized are single bytes, -and they are ``converted'' to themselves. - -When _MB_CAPABLE is defined, this routine calls <<_wctomb_r>> to perform -the conversion, passing a state variable to allow state dependent -decoding. The result is based on the locale setting which may -be restricted to a defined set of locales. - -Each call to <> modifies <<*<[s]>>> unless <[s]> is a null -pointer or _MB_CAPABLE is defined and <[wchar]> is invalid. - -RETURNS -This implementation of <> returns <<0>> if -<[s]> is <>; it returns <<-1>> if _MB_CAPABLE is enabled -and the wchar is not a valid multi-byte character, it returns <<1>> -if _MB_CAPABLE is not defined or the wchar is in reality a single -byte character, otherwise it returns the number of bytes in the -multi-byte character. - -PORTABILITY -<> is required in the ANSI C standard. However, the precise -effects vary with the locale. - -<> requires no supporting OS subroutines. -*/ - -#ifndef _REENT_ONLY - -#include -#include -#include -#include "local.h" - -#ifdef _REENT_THREAD_LOCAL -_Thread_local _mbstate_t _tls_wctomb_state; -#endif - -int -wctomb (char *s, - wchar_t wchar) -{ -#ifdef _MB_CAPABLE - struct _reent *reent = _REENT; - - _REENT_CHECK_MISC(reent); - - return __WCTOMB (reent, s, wchar, &(_REENT_WCTOMB_STATE(reent))); -#else /* not _MB_CAPABLE */ - if (s == NULL) - return 0; - - /* Verify that wchar is a valid single-byte character. */ - if ((size_t)wchar >= 0x100) { - errno = EILSEQ; - return -1; - } - - *s = (char) wchar; - return 1; -#endif /* not _MB_CAPABLE */ -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/stdlib/wctomb_r.c b/lib/stdlib/wctomb_r.c deleted file mode 100644 index 3081e93..0000000 --- a/lib/stdlib/wctomb_r.c +++ /dev/null @@ -1,658 +0,0 @@ -#include -#include -#include -#include -#include -#include "mbctype.h" -#include "local.h" - -int -_wctomb_r (struct _reent *r, - char *s, - wchar_t _wchar, - mbstate_t *state) -{ - return __WCTOMB (r, s, _wchar, state); -} - -int -__ascii_wctomb (struct _reent *r, - char *s, - wchar_t _wchar, - mbstate_t *state) -{ - /* Avoids compiler warnings about comparisons that are always false - due to limited range when sizeof(wchar_t) is 2 but sizeof(wint_t) - is 4, as is the case on cygwin. */ - wint_t wchar = _wchar; - - if (s == NULL) - return 0; - -#ifdef __CYGWIN__ - if ((size_t)wchar >= 0x80) -#else - if ((size_t)wchar >= 0x100) -#endif - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - - *s = (char) wchar; - return 1; -} - -#ifdef _MB_CAPABLE -/* for some conversions, we use the __count field as a place to store a state value */ -#define __state __count - -int -__utf8_wctomb (struct _reent *r, - char *s, - wchar_t _wchar, - mbstate_t *state) -{ - wint_t wchar = _wchar; - int ret = 0; - - if (s == NULL) - return 0; /* UTF-8 encoding is not state-dependent */ - - if (sizeof (wchar_t) == 2 && state->__count == -4 - && (wchar < 0xdc00 || wchar > 0xdfff)) - { - /* There's a leftover lone high surrogate. Write out the CESU-8 value - of the surrogate and proceed to convert the given character. Note - to return extra 3 bytes. */ - wchar_t tmp; - tmp = (state->__value.__wchb[0] << 16 | state->__value.__wchb[1] << 8) - - (0x10000 >> 10 | 0xd80d); - *s++ = 0xe0 | ((tmp & 0xf000) >> 12); - *s++ = 0x80 | ((tmp & 0xfc0) >> 6); - *s++ = 0x80 | (tmp & 0x3f); - state->__count = 0; - ret = 3; - } - if (wchar <= 0x7f) - { - *s = wchar; - return ret + 1; - } - if (wchar >= 0x80 && wchar <= 0x7ff) - { - *s++ = 0xc0 | ((wchar & 0x7c0) >> 6); - *s = 0x80 | (wchar & 0x3f); - return ret + 2; - } - if (wchar >= 0x800 && wchar <= 0xffff) - { - /* No UTF-16 surrogate handling in UCS-4 */ - if (sizeof (wchar_t) == 2 && wchar >= 0xd800 && wchar <= 0xdfff) - { - wint_t tmp; - if (wchar <= 0xdbff) - { - /* First half of a surrogate pair. Store the state and - return ret + 0. */ - tmp = ((wchar & 0x3ff) << 10) + 0x10000; - state->__value.__wchb[0] = (tmp >> 16) & 0xff; - state->__value.__wchb[1] = (tmp >> 8) & 0xff; - state->__count = -4; - *s = (0xf0 | ((tmp & 0x1c0000) >> 18)); - return ret; - } - if (state->__count == -4) - { - /* Second half of a surrogate pair. Reconstruct the full - Unicode value and return the trailing three bytes of the - UTF-8 character. */ - tmp = (state->__value.__wchb[0] << 16) - | (state->__value.__wchb[1] << 8) - | (wchar & 0x3ff); - state->__count = 0; - *s++ = 0xf0 | ((tmp & 0x1c0000) >> 18); - *s++ = 0x80 | ((tmp & 0x3f000) >> 12); - *s++ = 0x80 | ((tmp & 0xfc0) >> 6); - *s = 0x80 | (tmp & 0x3f); - return 4; - } - /* Otherwise translate into CESU-8 value. */ - } - *s++ = 0xe0 | ((wchar & 0xf000) >> 12); - *s++ = 0x80 | ((wchar & 0xfc0) >> 6); - *s = 0x80 | (wchar & 0x3f); - return ret + 3; - } - if (wchar >= 0x10000 && wchar <= 0x10ffff) - { - *s++ = 0xf0 | ((wchar & 0x1c0000) >> 18); - *s++ = 0x80 | ((wchar & 0x3f000) >> 12); - *s++ = 0x80 | ((wchar & 0xfc0) >> 6); - *s = 0x80 | (wchar & 0x3f); - return 4; - } - - _REENT_ERRNO(r) = EILSEQ; - return -1; -} - -/* Cygwin defines its own doublebyte charset conversion functions - because the underlying OS requires wchar_t == UTF-16. */ -#ifndef __CYGWIN__ -int -__sjis_wctomb (struct _reent *r, - char *s, - wchar_t _wchar, - mbstate_t *state) -{ - wint_t wchar = _wchar; - - unsigned char char2 = (unsigned char)wchar; - unsigned char char1 = (unsigned char)(wchar >> 8); - - if (s == NULL) - return 0; /* not state-dependent */ - - if (char1 != 0x00) - { - /* first byte is non-zero..validate multi-byte char */ - if (_issjis1(char1) && _issjis2(char2)) - { - *s++ = (char)char1; - *s = (char)char2; - return 2; - } - else - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - } - *s = (char) wchar; - return 1; -} - -int -__eucjp_wctomb (struct _reent *r, - char *s, - wchar_t _wchar, - mbstate_t *state) -{ - wint_t wchar = _wchar; - unsigned char char2 = (unsigned char)wchar; - unsigned char char1 = (unsigned char)(wchar >> 8); - - if (s == NULL) - return 0; /* not state-dependent */ - - if (char1 != 0x00) - { - /* first byte is non-zero..validate multi-byte char */ - if (_iseucjp1 (char1) && _iseucjp2 (char2)) - { - *s++ = (char)char1; - *s = (char)char2; - return 2; - } - else if (_iseucjp2 (char1) && _iseucjp2 (char2 | 0x80)) - { - *s++ = (char)0x8f; - *s++ = (char)char1; - *s = (char)(char2 | 0x80); - return 3; - } - else - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - } - *s = (char) wchar; - return 1; -} - -int -__jis_wctomb (struct _reent *r, - char *s, - wchar_t _wchar, - mbstate_t *state) -{ - wint_t wchar = _wchar; - int cnt = 0; - unsigned char char2 = (unsigned char)wchar; - unsigned char char1 = (unsigned char)(wchar >> 8); - - if (s == NULL) - return 1; /* state-dependent */ - - if (char1 != 0x00) - { - /* first byte is non-zero..validate multi-byte char */ - if (_isjis (char1) && _isjis (char2)) - { - if (state->__state == 0) - { - /* must switch from ASCII to JIS state */ - state->__state = 1; - *s++ = ESC_CHAR; - *s++ = '$'; - *s++ = 'B'; - cnt = 3; - } - *s++ = (char)char1; - *s = (char)char2; - return cnt + 2; - } - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - if (state->__state != 0) - { - /* must switch from JIS to ASCII state */ - state->__state = 0; - *s++ = ESC_CHAR; - *s++ = '('; - *s++ = 'B'; - cnt = 3; - } - *s = (char)char2; - return cnt + 1; -} -#endif /* !__CYGWIN__ */ - -#ifdef _MB_EXTENDED_CHARSETS_ISO -static int -___iso_wctomb (struct _reent *r, char *s, wchar_t _wchar, int iso_idx, - mbstate_t *state) -{ - wint_t wchar = _wchar; - - if (s == NULL) - return 0; - - /* wchars <= 0x9f translate to all ISO charsets directly. */ - if (wchar >= 0xa0) - { - if (iso_idx >= 0) - { - unsigned char mb; - - for (mb = 0; mb < 0x60; ++mb) - if (__iso_8859_conv[iso_idx][mb] == wchar) - { - *s = (char) (mb + 0xa0); - return 1; - } - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - } - - if ((size_t)wchar >= 0x100) - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - - *s = (char) wchar; - return 1; -} - -int __iso_8859_1_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, -1, state); -} - -int __iso_8859_2_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 0, state); -} - -int __iso_8859_3_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 1, state); -} - -int __iso_8859_4_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 2, state); -} - -int __iso_8859_5_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 3, state); -} - -int __iso_8859_6_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 4, state); -} - -int __iso_8859_7_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 5, state); -} - -int __iso_8859_8_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 6, state); -} - -int __iso_8859_9_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 7, state); -} - -int __iso_8859_10_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 8, state); -} - -int __iso_8859_11_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 9, state); -} - -int __iso_8859_13_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 10, state); -} - -int __iso_8859_14_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 11, state); -} - -int __iso_8859_15_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 12, state); -} - -int __iso_8859_16_wctomb (struct _reent *r, char *s, wchar_t _wchar, - mbstate_t *state) -{ - return ___iso_wctomb (r, s, _wchar, 13, state); -} - -static wctomb_p __iso_8859_wctomb[17] = { - NULL, - __iso_8859_1_wctomb, - __iso_8859_2_wctomb, - __iso_8859_3_wctomb, - __iso_8859_4_wctomb, - __iso_8859_5_wctomb, - __iso_8859_6_wctomb, - __iso_8859_7_wctomb, - __iso_8859_8_wctomb, - __iso_8859_9_wctomb, - __iso_8859_10_wctomb, - __iso_8859_11_wctomb, - NULL, /* No ISO 8859-12 */ - __iso_8859_13_wctomb, - __iso_8859_14_wctomb, - __iso_8859_15_wctomb, - __iso_8859_16_wctomb -}; - -/* val *MUST* be valid! All checks for validity are supposed to be - performed before calling this function. */ -wctomb_p -__iso_wctomb (int val) -{ - return __iso_8859_wctomb[val]; -} -#endif /* _MB_EXTENDED_CHARSETS_ISO */ - -#ifdef _MB_EXTENDED_CHARSETS_WINDOWS -static int -___cp_wctomb (struct _reent *r, char *s, wchar_t _wchar, int cp_idx, - mbstate_t *state) -{ - wint_t wchar = _wchar; - - if (s == NULL) - return 0; - - if (wchar >= 0x80) - { - if (cp_idx >= 0) - { - unsigned char mb; - - for (mb = 0; mb < 0x80; ++mb) - if (__cp_conv[cp_idx][mb] == wchar) - { - *s = (char) (mb + 0x80); - return 1; - } - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - } - - if ((size_t)wchar >= 0x100) - { - _REENT_ERRNO(r) = EILSEQ; - return -1; - } - - *s = (char) wchar; - return 1; -} - -static int -__cp_437_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 0, state); -} - -static int -__cp_720_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 1, state); -} - -static int -__cp_737_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 2, state); -} - -static int -__cp_775_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 3, state); -} - -static int -__cp_850_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 4, state); -} - -static int -__cp_852_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 5, state); -} - -static int -__cp_855_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 6, state); -} - -static int -__cp_857_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 7, state); -} - -static int -__cp_858_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 8, state); -} - -static int -__cp_862_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 9, state); -} - -static int -__cp_866_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 10, state); -} - -static int -__cp_874_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 11, state); -} - -static int -__cp_1125_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 12, state); -} - -static int -__cp_1250_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 13, state); -} - -static int -__cp_1251_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 14, state); -} - -static int -__cp_1252_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 15, state); -} - -static int -__cp_1253_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 16, state); -} - -static int -__cp_1254_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 17, state); -} - -static int -__cp_1255_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 18, state); -} - -static int -__cp_1256_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 19, state); -} - -static int -__cp_1257_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 20, state); -} - -static int -__cp_1258_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 21, state); -} - -static int -__cp_20866_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 22, state); -} - -static int -__cp_21866_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 23, state); -} - -static int -__cp_101_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 24, state); -} - -static int -__cp_102_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 25, state); -} - -static int -__cp_103_wctomb (struct _reent *r, char *s, wchar_t _wchar, mbstate_t *state) -{ - return ___cp_wctomb (r, s, _wchar, 26, state); -} - -static wctomb_p __cp_xxx_wctomb[27] = { - __cp_437_wctomb, - __cp_720_wctomb, - __cp_737_wctomb, - __cp_775_wctomb, - __cp_850_wctomb, - __cp_852_wctomb, - __cp_855_wctomb, - __cp_857_wctomb, - __cp_858_wctomb, - __cp_862_wctomb, - __cp_866_wctomb, - __cp_874_wctomb, - __cp_1125_wctomb, - __cp_1250_wctomb, - __cp_1251_wctomb, - __cp_1252_wctomb, - __cp_1253_wctomb, - __cp_1254_wctomb, - __cp_1255_wctomb, - __cp_1256_wctomb, - __cp_1257_wctomb, - __cp_1258_wctomb, - __cp_20866_wctomb, - __cp_21866_wctomb, - __cp_101_wctomb, - __cp_102_wctomb, - __cp_103_wctomb, -}; - -/* val *MUST* be valid! All checks for validity are supposed to be - performed before calling this function. */ -wctomb_p -__cp_wctomb (int val) -{ - return __cp_xxx_wctomb[__cp_val_index (val)]; -} -#endif /* _MB_EXTENDED_CHARSETS_WINDOWS */ -#endif /* _MB_CAPABLE */ diff --git a/lib/string/Makefile.inc b/lib/string/Makefile.inc deleted file mode 100644 index a198aef..0000000 --- a/lib/string/Makefile.inc +++ /dev/null @@ -1,149 +0,0 @@ -libc_a_SOURCES += \ - %D%/bcopy.c \ - %D%/bzero.c \ - %D%/explicit_bzero.c \ - %D%/ffsl.c \ - %D%/ffsll.c \ - %D%/fls.c \ - %D%/flsl.c \ - %D%/flsll.c \ - %D%/index.c \ - %D%/memchr.c \ - %D%/memcmp.c \ - %D%/memcpy.c \ - %D%/memmove.c \ - %D%/memset.c \ - %D%/rindex.c \ - %D%/strcasecmp.c \ - %D%/strcat.c \ - %D%/strchr.c \ - %D%/strcmp.c \ - %D%/strcoll.c \ - %D%/strcpy.c \ - %D%/strcspn.c \ - %D%/strdup.c \ - %D%/strdup_r.c \ - %D%/strerror.c \ - %D%/strerror_r.c \ - %D%/strlcat.c \ - %D%/strlcpy.c \ - %D%/strlen.c \ - %D%/strlwr.c \ - %D%/strncasecmp.c \ - %D%/strncat.c \ - %D%/strncmp.c \ - %D%/strncpy.c \ - %D%/strnlen.c \ - %D%/strnstr.c \ - %D%/strpbrk.c \ - %D%/strrchr.c \ - %D%/strsep.c \ - %D%/strsignal.c \ - %D%/strspn.c \ - %D%/strtok.c \ - %D%/strtok_r.c \ - %D%/strupr.c \ - %D%/strxfrm.c \ - %D%/strstr.c \ - %D%/swab.c \ - %D%/timingsafe_bcmp.c \ - %D%/timingsafe_memcmp.c \ - %D%/u_strerr.c \ - %D%/wcscat.c \ - %D%/wcschr.c \ - %D%/wcscmp.c \ - %D%/wcscoll.c \ - %D%/wcscpy.c \ - %D%/wcscspn.c \ - %D%/wcslcat.c \ - %D%/wcslcpy.c \ - %D%/wcslen.c \ - %D%/wcsncat.c \ - %D%/wcsncmp.c \ - %D%/wcsncpy.c \ - %D%/wcsnlen.c \ - %D%/wcspbrk.c \ - %D%/wcsrchr.c \ - %D%/wcsspn.c \ - %D%/wcsstr.c \ - %D%/wcstok.c \ - %D%/wcswidth.c \ - %D%/wcsxfrm.c \ - %D%/wcwidth.c \ - %D%/wmemchr.c \ - %D%/wmemcmp.c \ - %D%/wmemcpy.c \ - %D%/wmemmove.c \ - %D%/wmemset.c \ - %D%/xpg_strerror_r.c - -%C%_ELIX_2_SOURCES = -if ELIX_LEVEL_1 -else -%C%_ELIX_2_SOURCES += \ - %D%/bcmp.c \ - %D%/memccpy.c \ - %D%/mempcpy.c \ - %D%/stpcpy.c \ - %D%/stpncpy.c \ - %D%/strndup.c \ - %D%/strcasestr.c \ - %D%/strchrnul.c \ - %D%/strndup_r.c \ - %D%/wcpcpy.c \ - %D%/wcpncpy.c \ - %D%/wcsdup.c -endif !ELIX_LEVEL_1 - -%C%_ELIX_4_SOURCES = -if ELIX_LEVEL_1 -else -if ELIX_LEVEL_2 -else -if ELIX_LEVEL_3 -else -%C%_ELIX_4_SOURCES += \ - %D%/gnu_basename.c \ - %D%/memmem.c \ - %D%/memrchr.c \ - %D%/rawmemchr.c \ - %D%/strcasecmp_l.c \ - %D%/strcoll_l.c \ - %D%/strncasecmp_l.c \ - %D%/strverscmp.c \ - %D%/strxfrm_l.c \ - %D%/wcscasecmp.c \ - %D%/wcscasecmp_l.c \ - %D%/wcscoll_l.c \ - %D%/wcsncasecmp.c \ - %D%/wcsncasecmp_l.c \ - %D%/wcsxfrm_l.c \ - %D%/wmempcpy.c -endif !ELIX_LEVEL_3 -endif !ELIX_LEVEL_2 -endif !ELIX_LEVEL_1 - -libc_a_SOURCES += $(%C%_ELIX_2_SOURCES) $(%C%_ELIX_4_SOURCES) - -LIBC_CHEWOUT_FILES += \ - %D%/bcmp.def %D%/memcpy.def %D%/strcmp.def %D%/strncat.def %D%/strstr.def \ - %D%/bcopy.def %D%/memmove.def %D%/strcoll.def %D%/strncmp.def %D%/strtok.def \ - %D%/bzero.def %D%/memset.def %D%/strcpy.def %D%/strncpy.def %D%/strxfrm.def \ - %D%/index.def %D%/rindex.def %D%/strcspn.def %D%/strpbrk.def %D%/swab.def \ - %D%/memchr.def %D%/strcat.def %D%/strerror.def %D%/strerror_r.def %D%/strrchr.def \ - %D%/memcmp.def %D%/strchr.def %D%/strlen.def %D%/strnlen.def %D%/strspn.def \ - %D%/strcasecmp.def %D%/strncasecmp.def %D%/strcasestr.def %D%/strlwr.def %D%/strupr.def \ - %D%/memccpy.def %D%/mempcpy.def %D%/stpcpy.def %D%/stpncpy.def %D%/strsignal.def \ - %D%/wcscasecmp.def %D%/wcscat.def %D%/wcschr.def %D%/wcscmp.def %D%/wcscoll.def \ - %D%/wcscpy.def %D%/wcscspn.def %D%/wcpcpy.def %D%/wcpncpy.def %D%/wcsdup.def \ - %D%/wcslcat.def %D%/wcslcpy.def %D%/wcslen.def %D%/wcsncasecmp.def %D%/wcsncat.def \ - %D%/wcsncmp.def %D%/wcsncpy.def %D%/wcsnlen.def %D%/wcspbrk.def \ - %D%/wcsrchr.def %D%/wcsspn.def %D%/wcsstr.def %D%/wcstok.def \ - %D%/wcswidth.def %D%/wcsxfrm.def %D%/wcwidth.def %D%/wmemchr.def \ - %D%/wmemcmp.def %D%/wmemcpy.def %D%/wmemmove.def %D%/wmemset.def \ - %D%/memmem.def %D%/memrchr.def %D%/rawmemchr.def %D%/strchrnul.def \ - %D%/strcasecmp_l.def %D%/strcoll_l.def %D%/strncasecmp_l.def %D%/strxfrm_l.def \ - %D%/wcscasecmp_l.def %D%/wcscoll_l.def %D%/wcsncasecmp_l.def %D%/wcsxfrm_l.def \ - %D%/strverscmp.def %D%/strnstr.def %D%/wmempcpy.def - -LIBC_CHAPTERS += %D%/strings.tex %D%/wcstrings.tex diff --git a/lib/string/WIDTH-A b/lib/string/WIDTH-A deleted file mode 100644 index 51e8f23..0000000 --- a/lib/string/WIDTH-A +++ /dev/null @@ -1,569 +0,0 @@ -# UAX #11: East Asian Ambiguous - -# Plane 00 -# Rows Positions (Cells) - - 00 A1 A4 A7-A8 AA AD-AE B0-B4 B6-BA BC-BF C6 D0 D7-D8 DE-E1 E6 E8-EA - 00 EC-ED F0 F2-F3 F7-FA FC FE - 01 01 11 13 1B 26-27 2B 31-33 38 3F-42 44 48-4B 4D 52-53 66-67 6B - 01 CE D0 D2 D4 D6 D8 DA DC - 02 51 61 C4 C7 C9-CB CD D0 D8-DB DD DF - 03 00-6F 91-A1 A3-A9 B1-C1 C3-C9 - 04 01 10-4F 51 - 20 10 13-16 18-19 1C-1D 20-22 24-27 30 32-33 35 3B 3E 74 7F 81-84 - 20 AC - 21 03 05 09 13 16 21-22 26 2B 53-54 5B-5E 60-6B 70-79 89 90-99 B8-B9 - 21 D2 D4 E7 - 22 00 02-03 07-08 0B 0F 11 15 1A 1D-20 23 25 27-2C 2E 34-37 3C-3D - 22 48 4C 52 60-61 64-67 6A-6B 6E-6F 82-83 86-87 95 99 A5 BF - 23 12 - 24 60-E9 EB-FF - 25 00-4B 50-73 80-8F 92-95 A0-A1 A3-A9 B2-B3 B6-B7 BC-BD C0-C1 C6-C8 - 25 CB CE-D1 E2-E5 EF - 26 05-06 09 0E-0F 1C 1E 40 42 60-61 63-65 67-6A 6C-6D 6F 9E-9F BF - 26 C6-CD CF-D3 D5-E1 E3 E8-E9 EB-F1 F4 F6-F9 FB-FC FE-FF - 27 3D 76-7F - 2B 56-59 - 32 48-4F - E0 00-FF - E1 00-FF - E2 00-FF - E3 00-FF - E4 00-FF - E5 00-FF - E6 00-FF - E7 00-FF - E8 00-FF - E9 00-FF - EA 00-FF - EB 00-FF - EC 00-FF - ED 00-FF - EE 00-FF - EF 00-FF - F0 00-FF - F1 00-FF - F2 00-FF - F3 00-FF - F4 00-FF - F5 00-FF - F6 00-FF - F7 00-FF - F8 00-FF - FE 00-0F - FF FD - 1F1 00-0A 10-2D 30-69 70-8D 8F-90 9B-AC - E01 00-EF - F00 00-FF - F01 00-FF - F02 00-FF - F03 00-FF - F04 00-FF - F05 00-FF - F06 00-FF - F07 00-FF - F08 00-FF - F09 00-FF - F0A 00-FF - F0B 00-FF - F0C 00-FF - F0D 00-FF - F0E 00-FF - F0F 00-FF - F10 00-FF - F11 00-FF - F12 00-FF - F13 00-FF - F14 00-FF - F15 00-FF - F16 00-FF - F17 00-FF - F18 00-FF - F19 00-FF - F1A 00-FF - F1B 00-FF - F1C 00-FF - F1D 00-FF - F1E 00-FF - F1F 00-FF - F20 00-FF - F21 00-FF - F22 00-FF - F23 00-FF - F24 00-FF - F25 00-FF - F26 00-FF - F27 00-FF - F28 00-FF - F29 00-FF - F2A 00-FF - F2B 00-FF - F2C 00-FF - F2D 00-FF - F2E 00-FF - F2F 00-FF - F30 00-FF - F31 00-FF - F32 00-FF - F33 00-FF - F34 00-FF - F35 00-FF - F36 00-FF - F37 00-FF - F38 00-FF - F39 00-FF - F3A 00-FF - F3B 00-FF - F3C 00-FF - F3D 00-FF - F3E 00-FF - F3F 00-FF - F40 00-FF - F41 00-FF - F42 00-FF - F43 00-FF - F44 00-FF - F45 00-FF - F46 00-FF - F47 00-FF - F48 00-FF - F49 00-FF - F4A 00-FF - F4B 00-FF - F4C 00-FF - F4D 00-FF - F4E 00-FF - F4F 00-FF - F50 00-FF - F51 00-FF - F52 00-FF - F53 00-FF - F54 00-FF - F55 00-FF - F56 00-FF - F57 00-FF - F58 00-FF - F59 00-FF - F5A 00-FF - F5B 00-FF - F5C 00-FF - F5D 00-FF - F5E 00-FF - F5F 00-FF - F60 00-FF - F61 00-FF - F62 00-FF - F63 00-FF - F64 00-FF - F65 00-FF - F66 00-FF - F67 00-FF - F68 00-FF - F69 00-FF - F6A 00-FF - F6B 00-FF - F6C 00-FF - F6D 00-FF - F6E 00-FF - F6F 00-FF - F70 00-FF - F71 00-FF - F72 00-FF - F73 00-FF - F74 00-FF - F75 00-FF - F76 00-FF - F77 00-FF - F78 00-FF - F79 00-FF - F7A 00-FF - F7B 00-FF - F7C 00-FF - F7D 00-FF - F7E 00-FF - F7F 00-FF - F80 00-FF - F81 00-FF - F82 00-FF - F83 00-FF - F84 00-FF - F85 00-FF - F86 00-FF - F87 00-FF - F88 00-FF - F89 00-FF - F8A 00-FF - F8B 00-FF - F8C 00-FF - F8D 00-FF - F8E 00-FF - F8F 00-FF - F90 00-FF - F91 00-FF - F92 00-FF - F93 00-FF - F94 00-FF - F95 00-FF - F96 00-FF - F97 00-FF - F98 00-FF - F99 00-FF - F9A 00-FF - F9B 00-FF - F9C 00-FF - F9D 00-FF - F9E 00-FF - F9F 00-FF - FA0 00-FF - FA1 00-FF - FA2 00-FF - FA3 00-FF - FA4 00-FF - FA5 00-FF - FA6 00-FF - FA7 00-FF - FA8 00-FF - FA9 00-FF - FAA 00-FF - FAB 00-FF - FAC 00-FF - FAD 00-FF - FAE 00-FF - FAF 00-FF - FB0 00-FF - FB1 00-FF - FB2 00-FF - FB3 00-FF - FB4 00-FF - FB5 00-FF - FB6 00-FF - FB7 00-FF - FB8 00-FF - FB9 00-FF - FBA 00-FF - FBB 00-FF - FBC 00-FF - FBD 00-FF - FBE 00-FF - FBF 00-FF - FC0 00-FF - FC1 00-FF - FC2 00-FF - FC3 00-FF - FC4 00-FF - FC5 00-FF - FC6 00-FF - FC7 00-FF - FC8 00-FF - FC9 00-FF - FCA 00-FF - FCB 00-FF - FCC 00-FF - FCD 00-FF - FCE 00-FF - FCF 00-FF - FD0 00-FF - FD1 00-FF - FD2 00-FF - FD3 00-FF - FD4 00-FF - FD5 00-FF - FD6 00-FF - FD7 00-FF - FD8 00-FF - FD9 00-FF - FDA 00-FF - FDB 00-FF - FDC 00-FF - FDD 00-FF - FDE 00-FF - FDF 00-FF - FE0 00-FF - FE1 00-FF - FE2 00-FF - FE3 00-FF - FE4 00-FF - FE5 00-FF - FE6 00-FF - FE7 00-FF - FE8 00-FF - FE9 00-FF - FEA 00-FF - FEB 00-FF - FEC 00-FF - FED 00-FF - FEE 00-FF - FEF 00-FF - FF0 00-FF - FF1 00-FF - FF2 00-FF - FF3 00-FF - FF4 00-FF - FF5 00-FF - FF6 00-FF - FF7 00-FF - FF8 00-FF - FF9 00-FF - FFA 00-FF - FFB 00-FF - FFC 00-FF - FFD 00-FF - FFE 00-FF - FFF 00-FD - 1000 00-FF - 1001 00-FF - 1002 00-FF - 1003 00-FF - 1004 00-FF - 1005 00-FF - 1006 00-FF - 1007 00-FF - 1008 00-FF - 1009 00-FF - 100A 00-FF - 100B 00-FF - 100C 00-FF - 100D 00-FF - 100E 00-FF - 100F 00-FF - 1010 00-FF - 1011 00-FF - 1012 00-FF - 1013 00-FF - 1014 00-FF - 1015 00-FF - 1016 00-FF - 1017 00-FF - 1018 00-FF - 1019 00-FF - 101A 00-FF - 101B 00-FF - 101C 00-FF - 101D 00-FF - 101E 00-FF - 101F 00-FF - 1020 00-FF - 1021 00-FF - 1022 00-FF - 1023 00-FF - 1024 00-FF - 1025 00-FF - 1026 00-FF - 1027 00-FF - 1028 00-FF - 1029 00-FF - 102A 00-FF - 102B 00-FF - 102C 00-FF - 102D 00-FF - 102E 00-FF - 102F 00-FF - 1030 00-FF - 1031 00-FF - 1032 00-FF - 1033 00-FF - 1034 00-FF - 1035 00-FF - 1036 00-FF - 1037 00-FF - 1038 00-FF - 1039 00-FF - 103A 00-FF - 103B 00-FF - 103C 00-FF - 103D 00-FF - 103E 00-FF - 103F 00-FF - 1040 00-FF - 1041 00-FF - 1042 00-FF - 1043 00-FF - 1044 00-FF - 1045 00-FF - 1046 00-FF - 1047 00-FF - 1048 00-FF - 1049 00-FF - 104A 00-FF - 104B 00-FF - 104C 00-FF - 104D 00-FF - 104E 00-FF - 104F 00-FF - 1050 00-FF - 1051 00-FF - 1052 00-FF - 1053 00-FF - 1054 00-FF - 1055 00-FF - 1056 00-FF - 1057 00-FF - 1058 00-FF - 1059 00-FF - 105A 00-FF - 105B 00-FF - 105C 00-FF - 105D 00-FF - 105E 00-FF - 105F 00-FF - 1060 00-FF - 1061 00-FF - 1062 00-FF - 1063 00-FF - 1064 00-FF - 1065 00-FF - 1066 00-FF - 1067 00-FF - 1068 00-FF - 1069 00-FF - 106A 00-FF - 106B 00-FF - 106C 00-FF - 106D 00-FF - 106E 00-FF - 106F 00-FF - 1070 00-FF - 1071 00-FF - 1072 00-FF - 1073 00-FF - 1074 00-FF - 1075 00-FF - 1076 00-FF - 1077 00-FF - 1078 00-FF - 1079 00-FF - 107A 00-FF - 107B 00-FF - 107C 00-FF - 107D 00-FF - 107E 00-FF - 107F 00-FF - 1080 00-FF - 1081 00-FF - 1082 00-FF - 1083 00-FF - 1084 00-FF - 1085 00-FF - 1086 00-FF - 1087 00-FF - 1088 00-FF - 1089 00-FF - 108A 00-FF - 108B 00-FF - 108C 00-FF - 108D 00-FF - 108E 00-FF - 108F 00-FF - 1090 00-FF - 1091 00-FF - 1092 00-FF - 1093 00-FF - 1094 00-FF - 1095 00-FF - 1096 00-FF - 1097 00-FF - 1098 00-FF - 1099 00-FF - 109A 00-FF - 109B 00-FF - 109C 00-FF - 109D 00-FF - 109E 00-FF - 109F 00-FF - 10A0 00-FF - 10A1 00-FF - 10A2 00-FF - 10A3 00-FF - 10A4 00-FF - 10A5 00-FF - 10A6 00-FF - 10A7 00-FF - 10A8 00-FF - 10A9 00-FF - 10AA 00-FF - 10AB 00-FF - 10AC 00-FF - 10AD 00-FF - 10AE 00-FF - 10AF 00-FF - 10B0 00-FF - 10B1 00-FF - 10B2 00-FF - 10B3 00-FF - 10B4 00-FF - 10B5 00-FF - 10B6 00-FF - 10B7 00-FF - 10B8 00-FF - 10B9 00-FF - 10BA 00-FF - 10BB 00-FF - 10BC 00-FF - 10BD 00-FF - 10BE 00-FF - 10BF 00-FF - 10C0 00-FF - 10C1 00-FF - 10C2 00-FF - 10C3 00-FF - 10C4 00-FF - 10C5 00-FF - 10C6 00-FF - 10C7 00-FF - 10C8 00-FF - 10C9 00-FF - 10CA 00-FF - 10CB 00-FF - 10CC 00-FF - 10CD 00-FF - 10CE 00-FF - 10CF 00-FF - 10D0 00-FF - 10D1 00-FF - 10D2 00-FF - 10D3 00-FF - 10D4 00-FF - 10D5 00-FF - 10D6 00-FF - 10D7 00-FF - 10D8 00-FF - 10D9 00-FF - 10DA 00-FF - 10DB 00-FF - 10DC 00-FF - 10DD 00-FF - 10DE 00-FF - 10DF 00-FF - 10E0 00-FF - 10E1 00-FF - 10E2 00-FF - 10E3 00-FF - 10E4 00-FF - 10E5 00-FF - 10E6 00-FF - 10E7 00-FF - 10E8 00-FF - 10E9 00-FF - 10EA 00-FF - 10EB 00-FF - 10EC 00-FF - 10ED 00-FF - 10EE 00-FF - 10EF 00-FF - 10F0 00-FF - 10F1 00-FF - 10F2 00-FF - 10F3 00-FF - 10F4 00-FF - 10F5 00-FF - 10F6 00-FF - 10F7 00-FF - 10F8 00-FF - 10F9 00-FF - 10FA 00-FF - 10FB 00-FF - 10FC 00-FF - 10FD 00-FF - 10FE 00-FF - 10FF 00-FD - diff --git a/lib/string/ambiguous.t b/lib/string/ambiguous.t deleted file mode 100644 index f8b7842..0000000 --- a/lib/string/ambiguous.t +++ /dev/null @@ -1,61 +0,0 @@ -{ - { 0x00A1, 0x00A1 }, { 0x00A4, 0x00A4 }, { 0x00A7, 0x00A8 }, - { 0x00AA, 0x00AA }, { 0x00AE, 0x00AE }, { 0x00B0, 0x00B4 }, - { 0x00B6, 0x00BA }, { 0x00BC, 0x00BF }, { 0x00C6, 0x00C6 }, - { 0x00D0, 0x00D0 }, { 0x00D7, 0x00D8 }, { 0x00DE, 0x00E1 }, - { 0x00E6, 0x00E6 }, { 0x00E8, 0x00EA }, { 0x00EC, 0x00ED }, - { 0x00F0, 0x00F0 }, { 0x00F2, 0x00F3 }, { 0x00F7, 0x00FA }, - { 0x00FC, 0x00FC }, { 0x00FE, 0x00FE }, { 0x0101, 0x0101 }, - { 0x0111, 0x0111 }, { 0x0113, 0x0113 }, { 0x011B, 0x011B }, - { 0x0126, 0x0127 }, { 0x012B, 0x012B }, { 0x0131, 0x0133 }, - { 0x0138, 0x0138 }, { 0x013F, 0x0142 }, { 0x0144, 0x0144 }, - { 0x0148, 0x014B }, { 0x014D, 0x014D }, { 0x0152, 0x0153 }, - { 0x0166, 0x0167 }, { 0x016B, 0x016B }, { 0x01CE, 0x01CE }, - { 0x01D0, 0x01D0 }, { 0x01D2, 0x01D2 }, { 0x01D4, 0x01D4 }, - { 0x01D6, 0x01D6 }, { 0x01D8, 0x01D8 }, { 0x01DA, 0x01DA }, - { 0x01DC, 0x01DC }, { 0x0251, 0x0251 }, { 0x0261, 0x0261 }, - { 0x02C4, 0x02C4 }, { 0x02C7, 0x02C7 }, { 0x02C9, 0x02CB }, - { 0x02CD, 0x02CD }, { 0x02D0, 0x02D0 }, { 0x02D8, 0x02DB }, - { 0x02DD, 0x02DD }, { 0x02DF, 0x02DF }, { 0x0391, 0x03A1 }, - { 0x03A3, 0x03A9 }, { 0x03B1, 0x03C1 }, { 0x03C3, 0x03C9 }, - { 0x0401, 0x0401 }, { 0x0410, 0x044F }, { 0x0451, 0x0451 }, - { 0x2010, 0x2010 }, { 0x2013, 0x2016 }, { 0x2018, 0x2019 }, - { 0x201C, 0x201D }, { 0x2020, 0x2022 }, { 0x2024, 0x2027 }, - { 0x2030, 0x2030 }, { 0x2032, 0x2033 }, { 0x2035, 0x2035 }, - { 0x203B, 0x203B }, { 0x203E, 0x203E }, { 0x2074, 0x2074 }, - { 0x207F, 0x207F }, { 0x2081, 0x2084 }, { 0x20AC, 0x20AC }, - { 0x2103, 0x2103 }, { 0x2105, 0x2105 }, { 0x2109, 0x2109 }, - { 0x2113, 0x2113 }, { 0x2116, 0x2116 }, { 0x2121, 0x2122 }, - { 0x2126, 0x2126 }, { 0x212B, 0x212B }, { 0x2153, 0x2154 }, - { 0x215B, 0x215E }, { 0x2160, 0x216B }, { 0x2170, 0x2179 }, - { 0x2189, 0x2189 }, { 0x2190, 0x2199 }, { 0x21B8, 0x21B9 }, - { 0x21D2, 0x21D2 }, { 0x21D4, 0x21D4 }, { 0x21E7, 0x21E7 }, - { 0x2200, 0x2200 }, { 0x2202, 0x2203 }, { 0x2207, 0x2208 }, - { 0x220B, 0x220B }, { 0x220F, 0x220F }, { 0x2211, 0x2211 }, - { 0x2215, 0x2215 }, { 0x221A, 0x221A }, { 0x221D, 0x2220 }, - { 0x2223, 0x2223 }, { 0x2225, 0x2225 }, { 0x2227, 0x222C }, - { 0x222E, 0x222E }, { 0x2234, 0x2237 }, { 0x223C, 0x223D }, - { 0x2248, 0x2248 }, { 0x224C, 0x224C }, { 0x2252, 0x2252 }, - { 0x2260, 0x2261 }, { 0x2264, 0x2267 }, { 0x226A, 0x226B }, - { 0x226E, 0x226F }, { 0x2282, 0x2283 }, { 0x2286, 0x2287 }, - { 0x2295, 0x2295 }, { 0x2299, 0x2299 }, { 0x22A5, 0x22A5 }, - { 0x22BF, 0x22BF }, { 0x2312, 0x2312 }, { 0x2460, 0x24E9 }, - { 0x24EB, 0x254B }, { 0x2550, 0x2573 }, { 0x2580, 0x258F }, - { 0x2592, 0x2595 }, { 0x25A0, 0x25A1 }, { 0x25A3, 0x25A9 }, - { 0x25B2, 0x25B3 }, { 0x25B6, 0x25B7 }, { 0x25BC, 0x25BD }, - { 0x25C0, 0x25C1 }, { 0x25C6, 0x25C8 }, { 0x25CB, 0x25CB }, - { 0x25CE, 0x25D1 }, { 0x25E2, 0x25E5 }, { 0x25EF, 0x25EF }, - { 0x2605, 0x2606 }, { 0x2609, 0x2609 }, { 0x260E, 0x260F }, - { 0x261C, 0x261C }, { 0x261E, 0x261E }, { 0x2640, 0x2640 }, - { 0x2642, 0x2642 }, { 0x2660, 0x2661 }, { 0x2663, 0x2665 }, - { 0x2667, 0x266A }, { 0x266C, 0x266D }, { 0x266F, 0x266F }, - { 0x269E, 0x269F }, { 0x26BF, 0x26BF }, { 0x26C6, 0x26CD }, - { 0x26CF, 0x26D3 }, { 0x26D5, 0x26E1 }, { 0x26E3, 0x26E3 }, - { 0x26E8, 0x26E9 }, { 0x26EB, 0x26F1 }, { 0x26F4, 0x26F4 }, - { 0x26F6, 0x26F9 }, { 0x26FB, 0x26FC }, { 0x26FE, 0x26FF }, - { 0x273D, 0x273D }, { 0x2776, 0x277F }, { 0x2B56, 0x2B59 }, - { 0x3248, 0x324F }, { 0xE000, 0xF8FF }, { 0xFFFD, 0xFFFD }, - { 0x1F100, 0x1F10A }, { 0x1F110, 0x1F12D }, { 0x1F130, 0x1F169 }, - { 0x1F170, 0x1F18D }, { 0x1F18F, 0x1F190 }, { 0x1F19B, 0x1F1AC }, - { 0xF0000, 0xFFFFD }, { 0x100000, 0x10FFFD } -}; diff --git a/lib/string/bcmp.c b/lib/string/bcmp.c deleted file mode 100644 index 747f8af..0000000 --- a/lib/string/bcmp.c +++ /dev/null @@ -1,41 +0,0 @@ -/* -FUNCTION - <>---compare two memory areas - -INDEX - bcmp - -SYNOPSIS - #include - int bcmp(const void *<[s1]>, const void *<[s2]>, size_t <[n]>); - -DESCRIPTION - This function compares not more than <[n]> bytes of the - object pointed to by <[s1]> with the object pointed to by <[s2]>. - - This function is identical to <>. - -RETURNS - The function returns an integer greater than, equal to or - less than zero according to whether the object pointed to by - <[s1]> is greater than, equal to or less than the object - pointed to by <[s2]>. - -PORTABILITY -<> requires no supporting OS subroutines. - -QUICKREF - bcmp ansi pure -*/ - -#include -#include - -int -bcmp (const void *m1, - const void *m2, - size_t n) - -{ - return memcmp (m1, m2, n); -} diff --git a/lib/string/bcopy.c b/lib/string/bcopy.c deleted file mode 100644 index d8bdeb5..0000000 --- a/lib/string/bcopy.c +++ /dev/null @@ -1,32 +0,0 @@ -/* -FUNCTION - <>---copy memory regions - -SYNOPSIS - #include - void bcopy(const void *<[in]>, void *<[out]>, size_t <[n]>); - -DESCRIPTION - This function copies <[n]> bytes from the memory region - pointed to by <[in]> to the memory region pointed to by - <[out]>. - - This function is implemented in term of <>. - -PORTABILITY -<> requires no supporting OS subroutines. - -QUICKREF - bcopy - pure -*/ - -#include -#include - -void -bcopy (const void *b1, - void *b2, - size_t length) -{ - memmove (b2, b1, length); -} diff --git a/lib/string/bzero.c b/lib/string/bzero.c deleted file mode 100644 index dc52170..0000000 --- a/lib/string/bzero.c +++ /dev/null @@ -1,34 +0,0 @@ -/* -FUNCTION -<>---initialize memory to zero - -INDEX - bzero - -SYNOPSIS - #include - void bzero(void *<[b]>, size_t <[length]>); - -DESCRIPTION -<> initializes <[length]> bytes of memory, starting at address -<[b]>, to zero. - -RETURNS -<> does not return a result. - -PORTABILITY -<> is in the Berkeley Software Distribution. -Neither ANSI C nor the System V Interface Definition (Issue 2) require -<>. - -<> requires no supporting OS subroutines. -*/ - -#include - -void -bzero(void *b, size_t length) -{ - - memset(b, 0, length); -} diff --git a/lib/string/combining.t b/lib/string/combining.t deleted file mode 100644 index 0d7345c..0000000 --- a/lib/string/combining.t +++ /dev/null @@ -1,122 +0,0 @@ -{ - { 0x0300, 0x036F }, { 0x0483, 0x0489 }, { 0x0591, 0x05BD }, - { 0x05BF, 0x05BF }, { 0x05C1, 0x05C2 }, { 0x05C4, 0x05C5 }, - { 0x05C7, 0x05C7 }, { 0x0600, 0x0605 }, { 0x0610, 0x061A }, - { 0x061C, 0x061C }, { 0x064B, 0x065F }, { 0x0670, 0x0670 }, - { 0x06D6, 0x06DD }, { 0x06DF, 0x06E4 }, { 0x06E7, 0x06E8 }, - { 0x06EA, 0x06ED }, { 0x070F, 0x070F }, { 0x0711, 0x0711 }, - { 0x0730, 0x074A }, { 0x07A6, 0x07B0 }, { 0x07EB, 0x07F3 }, - { 0x07FD, 0x07FD }, { 0x0816, 0x0819 }, { 0x081B, 0x0823 }, - { 0x0825, 0x0827 }, { 0x0829, 0x082D }, { 0x0859, 0x085B }, - { 0x0890, 0x0891 }, { 0x0898, 0x089F }, { 0x08CA, 0x0902 }, - { 0x093A, 0x093A }, { 0x093C, 0x093C }, { 0x0941, 0x0948 }, - { 0x094D, 0x094D }, { 0x0951, 0x0957 }, { 0x0962, 0x0963 }, - { 0x0981, 0x0981 }, { 0x09BC, 0x09BC }, { 0x09C1, 0x09C4 }, - { 0x09CD, 0x09CD }, { 0x09E2, 0x09E3 }, { 0x09FE, 0x09FE }, - { 0x0A01, 0x0A02 }, { 0x0A3C, 0x0A3C }, { 0x0A41, 0x0A42 }, - { 0x0A47, 0x0A48 }, { 0x0A4B, 0x0A4D }, { 0x0A51, 0x0A51 }, - { 0x0A70, 0x0A71 }, { 0x0A75, 0x0A75 }, { 0x0A81, 0x0A82 }, - { 0x0ABC, 0x0ABC }, { 0x0AC1, 0x0AC5 }, { 0x0AC7, 0x0AC8 }, - { 0x0ACD, 0x0ACD }, { 0x0AE2, 0x0AE3 }, { 0x0AFA, 0x0AFF }, - { 0x0B01, 0x0B01 }, { 0x0B3C, 0x0B3C }, { 0x0B3F, 0x0B3F }, - { 0x0B41, 0x0B44 }, { 0x0B4D, 0x0B4D }, { 0x0B55, 0x0B56 }, - { 0x0B62, 0x0B63 }, { 0x0B82, 0x0B82 }, { 0x0BC0, 0x0BC0 }, - { 0x0BCD, 0x0BCD }, { 0x0C00, 0x0C00 }, { 0x0C04, 0x0C04 }, - { 0x0C3C, 0x0C3C }, { 0x0C3E, 0x0C40 }, { 0x0C46, 0x0C48 }, - { 0x0C4A, 0x0C4D }, { 0x0C55, 0x0C56 }, { 0x0C62, 0x0C63 }, - { 0x0C81, 0x0C81 }, { 0x0CBC, 0x0CBC }, { 0x0CBF, 0x0CBF }, - { 0x0CC6, 0x0CC6 }, { 0x0CCC, 0x0CCD }, { 0x0CE2, 0x0CE3 }, - { 0x0D00, 0x0D01 }, { 0x0D3B, 0x0D3C }, { 0x0D41, 0x0D44 }, - { 0x0D4D, 0x0D4D }, { 0x0D62, 0x0D63 }, { 0x0D81, 0x0D81 }, - { 0x0DCA, 0x0DCA }, { 0x0DD2, 0x0DD4 }, { 0x0DD6, 0x0DD6 }, - { 0x0E31, 0x0E31 }, { 0x0E34, 0x0E3A }, { 0x0E47, 0x0E4E }, - { 0x0EB1, 0x0EB1 }, { 0x0EB4, 0x0EBC }, { 0x0EC8, 0x0ECE }, - { 0x0F18, 0x0F19 }, { 0x0F35, 0x0F35 }, { 0x0F37, 0x0F37 }, - { 0x0F39, 0x0F39 }, { 0x0F71, 0x0F7E }, { 0x0F80, 0x0F84 }, - { 0x0F86, 0x0F87 }, { 0x0F8D, 0x0F97 }, { 0x0F99, 0x0FBC }, - { 0x0FC6, 0x0FC6 }, { 0x102D, 0x1030 }, { 0x1032, 0x1037 }, - { 0x1039, 0x103A }, { 0x103D, 0x103E }, { 0x1058, 0x1059 }, - { 0x105E, 0x1060 }, { 0x1071, 0x1074 }, { 0x1082, 0x1082 }, - { 0x1085, 0x1086 }, { 0x108D, 0x108D }, { 0x109D, 0x109D }, - { 0x1160, 0x11FF }, { 0x135D, 0x135F }, { 0x1712, 0x1714 }, - { 0x1732, 0x1733 }, { 0x1752, 0x1753 }, { 0x1772, 0x1773 }, - { 0x17B4, 0x17B5 }, { 0x17B7, 0x17BD }, { 0x17C6, 0x17C6 }, - { 0x17C9, 0x17D3 }, { 0x17DD, 0x17DD }, { 0x180B, 0x180F }, - { 0x1885, 0x1886 }, { 0x18A9, 0x18A9 }, { 0x1920, 0x1922 }, - { 0x1927, 0x1928 }, { 0x1932, 0x1932 }, { 0x1939, 0x193B }, - { 0x1A17, 0x1A18 }, { 0x1A1B, 0x1A1B }, { 0x1A56, 0x1A56 }, - { 0x1A58, 0x1A5E }, { 0x1A60, 0x1A60 }, { 0x1A62, 0x1A62 }, - { 0x1A65, 0x1A6C }, { 0x1A73, 0x1A7C }, { 0x1A7F, 0x1A7F }, - { 0x1AB0, 0x1ACE }, { 0x1B00, 0x1B03 }, { 0x1B34, 0x1B34 }, - { 0x1B36, 0x1B3A }, { 0x1B3C, 0x1B3C }, { 0x1B42, 0x1B42 }, - { 0x1B6B, 0x1B73 }, { 0x1B80, 0x1B81 }, { 0x1BA2, 0x1BA5 }, - { 0x1BA8, 0x1BA9 }, { 0x1BAB, 0x1BAD }, { 0x1BE6, 0x1BE6 }, - { 0x1BE8, 0x1BE9 }, { 0x1BED, 0x1BED }, { 0x1BEF, 0x1BF1 }, - { 0x1C2C, 0x1C33 }, { 0x1C36, 0x1C37 }, { 0x1CD0, 0x1CD2 }, - { 0x1CD4, 0x1CE0 }, { 0x1CE2, 0x1CE8 }, { 0x1CED, 0x1CED }, - { 0x1CF4, 0x1CF4 }, { 0x1CF8, 0x1CF9 }, { 0x1DC0, 0x1DFF }, - { 0x200B, 0x200F }, { 0x202A, 0x202E }, { 0x2060, 0x2064 }, - { 0x2066, 0x206F }, { 0x20D0, 0x20F0 }, { 0x2CEF, 0x2CF1 }, - { 0x2D7F, 0x2D7F }, { 0x2DE0, 0x2DFF }, { 0x302A, 0x302D }, - { 0x3099, 0x309A }, { 0xA66F, 0xA672 }, { 0xA674, 0xA67D }, - { 0xA69E, 0xA69F }, { 0xA6F0, 0xA6F1 }, { 0xA802, 0xA802 }, - { 0xA806, 0xA806 }, { 0xA80B, 0xA80B }, { 0xA825, 0xA826 }, - { 0xA82C, 0xA82C }, { 0xA8C4, 0xA8C5 }, { 0xA8E0, 0xA8F1 }, - { 0xA8FF, 0xA8FF }, { 0xA926, 0xA92D }, { 0xA947, 0xA951 }, - { 0xA980, 0xA982 }, { 0xA9B3, 0xA9B3 }, { 0xA9B6, 0xA9B9 }, - { 0xA9BC, 0xA9BD }, { 0xA9E5, 0xA9E5 }, { 0xAA29, 0xAA2E }, - { 0xAA31, 0xAA32 }, { 0xAA35, 0xAA36 }, { 0xAA43, 0xAA43 }, - { 0xAA4C, 0xAA4C }, { 0xAA7C, 0xAA7C }, { 0xAAB0, 0xAAB0 }, - { 0xAAB2, 0xAAB4 }, { 0xAAB7, 0xAAB8 }, { 0xAABE, 0xAABF }, - { 0xAAC1, 0xAAC1 }, { 0xAAEC, 0xAAED }, { 0xAAF6, 0xAAF6 }, - { 0xABE5, 0xABE5 }, { 0xABE8, 0xABE8 }, { 0xABED, 0xABED }, - { 0xD7B0, 0xD7C6 }, { 0xD7CB, 0xD7FB }, { 0xFB1E, 0xFB1E }, - { 0xFE00, 0xFE0F }, { 0xFE20, 0xFE2F }, { 0xFEFF, 0xFEFF }, - { 0xFFF9, 0xFFFB }, { 0x101FD, 0x101FD }, { 0x102E0, 0x102E0 }, - { 0x10376, 0x1037A }, { 0x10A01, 0x10A03 }, { 0x10A05, 0x10A06 }, - { 0x10A0C, 0x10A0F }, { 0x10A38, 0x10A3A }, { 0x10A3F, 0x10A3F }, - { 0x10AE5, 0x10AE6 }, { 0x10D24, 0x10D27 }, { 0x10EAB, 0x10EAC }, - { 0x10EFD, 0x10EFF }, { 0x10F46, 0x10F50 }, { 0x10F82, 0x10F85 }, - { 0x11001, 0x11001 }, { 0x11038, 0x11046 }, { 0x11070, 0x11070 }, - { 0x11073, 0x11074 }, { 0x1107F, 0x11081 }, { 0x110B3, 0x110B6 }, - { 0x110B9, 0x110BA }, { 0x110BD, 0x110BD }, { 0x110C2, 0x110C2 }, - { 0x110CD, 0x110CD }, { 0x11100, 0x11102 }, { 0x11127, 0x1112B }, - { 0x1112D, 0x11134 }, { 0x11173, 0x11173 }, { 0x11180, 0x11181 }, - { 0x111B6, 0x111BE }, { 0x111C9, 0x111CC }, { 0x111CF, 0x111CF }, - { 0x1122F, 0x11231 }, { 0x11234, 0x11234 }, { 0x11236, 0x11237 }, - { 0x1123E, 0x1123E }, { 0x11241, 0x11241 }, { 0x112DF, 0x112DF }, - { 0x112E3, 0x112EA }, { 0x11300, 0x11301 }, { 0x1133B, 0x1133C }, - { 0x11340, 0x11340 }, { 0x11366, 0x1136C }, { 0x11370, 0x11374 }, - { 0x11438, 0x1143F }, { 0x11442, 0x11444 }, { 0x11446, 0x11446 }, - { 0x1145E, 0x1145E }, { 0x114B3, 0x114B8 }, { 0x114BA, 0x114BA }, - { 0x114BF, 0x114C0 }, { 0x114C2, 0x114C3 }, { 0x115B2, 0x115B5 }, - { 0x115BC, 0x115BD }, { 0x115BF, 0x115C0 }, { 0x115DC, 0x115DD }, - { 0x11633, 0x1163A }, { 0x1163D, 0x1163D }, { 0x1163F, 0x11640 }, - { 0x116AB, 0x116AB }, { 0x116AD, 0x116AD }, { 0x116B0, 0x116B5 }, - { 0x116B7, 0x116B7 }, { 0x1171D, 0x1171F }, { 0x11722, 0x11725 }, - { 0x11727, 0x1172B }, { 0x1182F, 0x11837 }, { 0x11839, 0x1183A }, - { 0x1193B, 0x1193C }, { 0x1193E, 0x1193E }, { 0x11943, 0x11943 }, - { 0x119D4, 0x119D7 }, { 0x119DA, 0x119DB }, { 0x119E0, 0x119E0 }, - { 0x11A01, 0x11A0A }, { 0x11A33, 0x11A38 }, { 0x11A3B, 0x11A3E }, - { 0x11A47, 0x11A47 }, { 0x11A51, 0x11A56 }, { 0x11A59, 0x11A5B }, - { 0x11A8A, 0x11A96 }, { 0x11A98, 0x11A99 }, { 0x11C30, 0x11C36 }, - { 0x11C38, 0x11C3D }, { 0x11C3F, 0x11C3F }, { 0x11C92, 0x11CA7 }, - { 0x11CAA, 0x11CB0 }, { 0x11CB2, 0x11CB3 }, { 0x11CB5, 0x11CB6 }, - { 0x11D31, 0x11D36 }, { 0x11D3A, 0x11D3A }, { 0x11D3C, 0x11D3D }, - { 0x11D3F, 0x11D45 }, { 0x11D47, 0x11D47 }, { 0x11D90, 0x11D91 }, - { 0x11D95, 0x11D95 }, { 0x11D97, 0x11D97 }, { 0x11EF3, 0x11EF4 }, - { 0x11F00, 0x11F01 }, { 0x11F36, 0x11F3A }, { 0x11F40, 0x11F40 }, - { 0x11F42, 0x11F42 }, { 0x13430, 0x13440 }, { 0x13447, 0x13455 }, - { 0x16AF0, 0x16AF4 }, { 0x16B30, 0x16B36 }, { 0x16F4F, 0x16F4F }, - { 0x16F8F, 0x16F92 }, { 0x16FE4, 0x16FE4 }, { 0x1BC9D, 0x1BC9E }, - { 0x1BCA0, 0x1BCA3 }, { 0x1CF00, 0x1CF2D }, { 0x1CF30, 0x1CF46 }, - { 0x1D167, 0x1D169 }, { 0x1D173, 0x1D182 }, { 0x1D185, 0x1D18B }, - { 0x1D1AA, 0x1D1AD }, { 0x1D242, 0x1D244 }, { 0x1DA00, 0x1DA36 }, - { 0x1DA3B, 0x1DA6C }, { 0x1DA75, 0x1DA75 }, { 0x1DA84, 0x1DA84 }, - { 0x1DA9B, 0x1DA9F }, { 0x1DAA1, 0x1DAAF }, { 0x1E000, 0x1E006 }, - { 0x1E008, 0x1E018 }, { 0x1E01B, 0x1E021 }, { 0x1E023, 0x1E024 }, - { 0x1E026, 0x1E02A }, { 0x1E08F, 0x1E08F }, { 0x1E130, 0x1E136 }, - { 0x1E2AE, 0x1E2AE }, { 0x1E2EC, 0x1E2EF }, { 0x1E4EC, 0x1E4EF }, - { 0x1E8D0, 0x1E8D6 }, { 0x1E944, 0x1E94A }, { 0xE0001, 0xE0001 }, - { 0xE0020, 0xE007F }, { 0xE0100, 0xE01EF } -}; diff --git a/lib/string/explicit_bzero.c b/lib/string/explicit_bzero.c deleted file mode 100644 index 5124df2..0000000 --- a/lib/string/explicit_bzero.c +++ /dev/null @@ -1,16 +0,0 @@ -/* $OpenBSD: explicit_bzero.c,v 1.2 2014/06/10 04:17:37 deraadt Exp $ */ -/* - * Public domain. - * Written by Ted Unangst - */ - -#include - -/* - * explicit_bzero - don't let the compiler optimize away bzero - */ -void -explicit_bzero(void *p, size_t n) -{ - bzero(p, n); -} diff --git a/lib/string/ffsl.c b/lib/string/ffsl.c deleted file mode 100644 index 4b1d52d..0000000 --- a/lib/string/ffsl.c +++ /dev/null @@ -1,34 +0,0 @@ -/*- - * Copyright (c) 2017 embedded brains GmbH - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -int -ffsl(long i) -{ - - return (__builtin_ffsl(i)); -} diff --git a/lib/string/ffsll.c b/lib/string/ffsll.c deleted file mode 100644 index 7172506..0000000 --- a/lib/string/ffsll.c +++ /dev/null @@ -1,34 +0,0 @@ -/*- - * Copyright (c) 2017 embedded brains GmbH - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -int -ffsll(long long i) -{ - - return (__builtin_ffsll(i)); -} diff --git a/lib/string/fls.c b/lib/string/fls.c deleted file mode 100644 index a3e88d2..0000000 --- a/lib/string/fls.c +++ /dev/null @@ -1,38 +0,0 @@ -/*- - * Copyright (c) 2017 embedded brains GmbH - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -int -fls(int i) -{ - - if (i == 0) - return 0; - - return (sizeof(i) * CHAR_BIT - __builtin_clz(i)); -} diff --git a/lib/string/flsl.c b/lib/string/flsl.c deleted file mode 100644 index af6277d..0000000 --- a/lib/string/flsl.c +++ /dev/null @@ -1,38 +0,0 @@ -/*- - * Copyright (c) 2017 embedded brains GmbH - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -int -flsl(long i) -{ - - if (i == 0) - return 0; - - return (sizeof(i) * CHAR_BIT - __builtin_clzl(i)); -} diff --git a/lib/string/flsll.c b/lib/string/flsll.c deleted file mode 100644 index 3936184..0000000 --- a/lib/string/flsll.c +++ /dev/null @@ -1,38 +0,0 @@ -/*- - * Copyright (c) 2017 embedded brains GmbH - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -int -flsll(long long i) -{ - - if (i == 0) - return 0; - - return (sizeof(i) * CHAR_BIT - __builtin_clzll(i)); -} diff --git a/lib/string/gnu_basename.c b/lib/string/gnu_basename.c deleted file mode 100644 index c435425..0000000 --- a/lib/string/gnu_basename.c +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _NO_BASENAME -/* Copyright 2015 Red Hat, Inc. - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -/* The differences with the POSIX version (unix/basename.c): - * - declared in (instead of ); - * - the argument is never modified, and therefore is marked const; - * - the empty string is returned if path is an empty string, "/", or ends - * with a trailing slash. - */ - -#include - -char * -__gnu_basename (const char *path) -{ - char *p; - if ((p = strrchr (path, '/'))) - return p + 1; - return (char *) path; -} - -#endif /* !_NO_BASENAME */ diff --git a/lib/string/index.c b/lib/string/index.c deleted file mode 100644 index 4a67885..0000000 --- a/lib/string/index.c +++ /dev/null @@ -1,38 +0,0 @@ -/* -FUNCTION - <>---search for character in string - -INDEX - index - -SYNOPSIS - #include - char * index(const char *<[string]>, int <[c]>); - -DESCRIPTION - This function finds the first occurence of <[c]> (converted to - a char) in the string pointed to by <[string]> (including the - terminating null character). - - This function is identical to <>. - -RETURNS - Returns a pointer to the located character, or a null pointer - if <[c]> does not occur in <[string]>. - -PORTABILITY -<> requires no supporting OS subroutines. - -QUICKREF - index - pure -*/ - -#include -#include - -char * -index (const char *s, - int c) -{ - return strchr (s, c); -} diff --git a/lib/string/local.h b/lib/string/local.h deleted file mode 100644 index 4cb5285..0000000 --- a/lib/string/local.h +++ /dev/null @@ -1,18 +0,0 @@ -#include <_ansi.h> -#include "../ctype/local.h" - -/* internal function to compute width of wide char. */ -int __wcwidth (wint_t); - -/* - Taken from glibc: - Add the compiler optimization to inhibit loop transformation to library - calls. This is used to avoid recursive calls in memset and memmove - default implementations. -*/ -#ifdef _HAVE_CC_INHIBIT_LOOP_TO_LIBCALL -# define __inhibit_loop_to_libcall \ - __attribute__ ((__optimize__ ("-fno-tree-loop-distribute-patterns"))) -#else -# define __inhibit_loop_to_libcall -#endif diff --git a/lib/string/memccpy.c b/lib/string/memccpy.c deleted file mode 100644 index 6757cb3..0000000 --- a/lib/string/memccpy.c +++ /dev/null @@ -1,136 +0,0 @@ -/* -FUNCTION - <>---copy memory regions with end-token check - -SYNOPSIS - #include - void* memccpy(void *restrict <[out]>, const void *restrict <[in]>, - int <[endchar]>, size_t <[n]>); - -DESCRIPTION - This function copies up to <[n]> bytes from the memory region - pointed to by <[in]> to the memory region pointed to by - <[out]>. If a byte matching the <[endchar]> is encountered, - the byte is copied and copying stops. - - If the regions overlap, the behavior is undefined. - -RETURNS - <> returns a pointer to the first byte following the - <[endchar]> in the <[out]> region. If no byte matching - <[endchar]> was copied, then <> is returned. - -PORTABILITY -<> is a GNU extension. - -<> requires no supporting OS subroutines. - - */ - -#include <_ansi.h> -#include -#include -#include - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X, Y) \ - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) - -/* How many bytes are copied each iteration of the word copy loop. */ -#define LITTLEBLOCKSIZE (sizeof (long)) - -/* Threshhold for punting to the byte copier. */ -#define TOO_SMALL(LEN) ((LEN) < LITTLEBLOCKSIZE) - -/* Macros for detecting endchar */ -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - - -void * -memccpy (void *__restrict dst0, - const void *__restrict src0, - int endchar0, - size_t len0) -{ - -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - void *ptr = NULL; - char *dst = (char *) dst0; - char *src = (char *) src0; - char endchar = endchar0 & 0xff; - - while (len0--) - { - if ((*dst++ = *src++) == endchar) - { - ptr = dst; - break; - } - } - - return ptr; -#else - void *ptr = NULL; - unsigned char *dst = dst0; - const unsigned char *src = src0; - long *aligned_dst; - const long *aligned_src; - unsigned char endchar = endchar0 & 0xff; - - /* If the size is small, or either SRC or DST is unaligned, - then punt into the byte copy loop. This should be rare. */ - if (!TOO_SMALL(len0) && !UNALIGNED (src, dst)) - { - unsigned int i; - unsigned long mask = 0; - - aligned_dst = (long*)dst; - aligned_src = (long*)src; - - /* The fast code reads the ASCII one word at a time and only - performs the bytewise search on word-sized segments if they - contain the search character, which is detected by XORing - the word-sized segment with a word-sized block of the search - character and then detecting for the presence of NULL in the - result. */ - for (i = 0; i < LITTLEBLOCKSIZE; i++) - mask = (mask << 8) + endchar; - - - /* Copy one long word at a time if possible. */ - while (len0 >= LITTLEBLOCKSIZE) - { - unsigned long buffer = (unsigned long)(*aligned_src); - buffer ^= mask; - if (DETECTNULL (buffer)) - break; /* endchar is found, go byte by byte from here */ - *aligned_dst++ = *aligned_src++; - len0 -= LITTLEBLOCKSIZE; - } - - /* Pick up any residual with a byte copier. */ - dst = (char*)aligned_dst; - src = (char*)aligned_src; - } - - while (len0--) - { - if ((*dst++ = *src++) == endchar) - { - ptr = dst; - break; - } - } - - return ptr; -#endif /* not PREFER_SIZE_OVER_SPEED */ -} diff --git a/lib/string/memchr.c b/lib/string/memchr.c deleted file mode 100644 index 21bc4d8..0000000 --- a/lib/string/memchr.c +++ /dev/null @@ -1,126 +0,0 @@ -/* -FUNCTION - <>---find character in memory - -INDEX - memchr - -SYNOPSIS - #include - void *memchr(const void *<[src]>, int <[c]>, size_t <[length]>); - -DESCRIPTION - This function searches memory starting at <<*<[src]>>> for the - character <[c]>. The search only ends with the first - occurrence of <[c]>, or after <[length]> characters; in - particular, <> does not terminate the search. - -RETURNS - If the character <[c]> is found within <[length]> characters - of <<*<[src]>>>, a pointer to the character is returned. If - <[c]> is not found, then <> is returned. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - memchr ansi pure -*/ - -#include <_ansi.h> -#include -#include - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X) ((long)X & (sizeof (long) - 1)) - -/* How many bytes are loaded each iteration of the word copy loop. */ -#define LBLOCKSIZE (sizeof (long)) - -/* Threshhold for punting to the bytewise iterator. */ -#define TOO_SMALL(LEN) ((LEN) < LBLOCKSIZE) - -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -/* DETECTCHAR returns nonzero if (long)X contains the byte used - to fill (long)MASK. */ -#define DETECTCHAR(X,MASK) (DETECTNULL(X ^ MASK)) - -void * -memchr (const void *src_void, - int c, - size_t length) -{ - const unsigned char *src = (const unsigned char *) src_void; - unsigned char d = c; - -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) - unsigned long *asrc; - unsigned long mask; - unsigned int i; - - while (UNALIGNED (src)) - { - if (!length--) - return NULL; - if (*src == d) - return (void *) src; - src++; - } - - if (!TOO_SMALL (length)) - { - /* If we get this far, we know that length is large and src is - word-aligned. */ - /* The fast code reads the source one word at a time and only - performs the bytewise search on word-sized segments if they - contain the search character, which is detected by XORing - the word-sized segment with a word-sized block of the search - character and then detecting for the presence of NUL in the - result. */ - asrc = (unsigned long *) src; - mask = d << 8 | d; - mask = mask << 16 | mask; - for (i = 32; i < LBLOCKSIZE * 8; i <<= 1) - mask = (mask << i) | mask; - - while (length >= LBLOCKSIZE) - { - if (DETECTCHAR (*asrc, mask)) - break; - length -= LBLOCKSIZE; - asrc++; - } - - /* If there are fewer than LBLOCKSIZE characters left, - then we resort to the bytewise loop. */ - - src = (unsigned char *) asrc; - } - -#endif /* not PREFER_SIZE_OVER_SPEED */ - - while (length--) - { - if (*src == d) - return (void *) src; - src++; - } - - return NULL; -} diff --git a/lib/string/memcmp.c b/lib/string/memcmp.c deleted file mode 100644 index 342fb9f..0000000 --- a/lib/string/memcmp.c +++ /dev/null @@ -1,105 +0,0 @@ -/* -FUNCTION - <>---compare two memory areas - -INDEX - memcmp - -SYNOPSIS - #include - int memcmp(const void *<[s1]>, const void *<[s2]>, size_t <[n]>); - -DESCRIPTION - This function compares not more than <[n]> characters of the - object pointed to by <[s1]> with the object pointed to by <[s2]>. - - -RETURNS - The function returns an integer greater than, equal to or - less than zero according to whether the object pointed to by - <[s1]> is greater than, equal to or less than the object - pointed to by <[s2]>. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - memcmp ansi pure -*/ - -#include - - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X, Y) \ - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) - -/* How many bytes are copied each iteration of the word copy loop. */ -#define LBLOCKSIZE (sizeof (long)) - -/* Threshhold for punting to the byte copier. */ -#define TOO_SMALL(LEN) ((LEN) < LBLOCKSIZE) - -int -memcmp (const void *m1, - const void *m2, - size_t n) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - unsigned char *s1 = (unsigned char *) m1; - unsigned char *s2 = (unsigned char *) m2; - - while (n--) - { - if (*s1 != *s2) - { - return *s1 - *s2; - } - s1++; - s2++; - } - return 0; -#else - unsigned char *s1 = (unsigned char *) m1; - unsigned char *s2 = (unsigned char *) m2; - unsigned long *a1; - unsigned long *a2; - - /* If the size is too small, or either pointer is unaligned, - then we punt to the byte compare loop. Hopefully this will - not turn up in inner loops. */ - if (!TOO_SMALL(n) && !UNALIGNED(s1,s2)) - { - /* Otherwise, load and compare the blocks of memory one - word at a time. */ - a1 = (unsigned long*) s1; - a2 = (unsigned long*) s2; - while (n >= LBLOCKSIZE) - { - if (*a1 != *a2) - break; - a1++; - a2++; - n -= LBLOCKSIZE; - } - - /* check m mod LBLOCKSIZE remaining characters */ - - s1 = (unsigned char*)a1; - s2 = (unsigned char*)a2; - } - - while (n--) - { - if (*s1 != *s2) - return *s1 - *s2; - s1++; - s2++; - } - - return 0; -#endif /* not PREFER_SIZE_OVER_SPEED */ -} - diff --git a/lib/string/memcpy.c b/lib/string/memcpy.c deleted file mode 100644 index 52f716b..0000000 --- a/lib/string/memcpy.c +++ /dev/null @@ -1,105 +0,0 @@ -/* -FUNCTION - <>---copy memory regions - -SYNOPSIS - #include - void* memcpy(void *restrict <[out]>, const void *restrict <[in]>, - size_t <[n]>); - -DESCRIPTION - This function copies <[n]> bytes from the memory region - pointed to by <[in]> to the memory region pointed to by - <[out]>. - - If the regions overlap, the behavior is undefined. - -RETURNS - <> returns a pointer to the first byte of the <[out]> - region. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - memcpy ansi pure - */ - -#include <_ansi.h> -#include -#include "local.h" - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X, Y) \ - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) - -/* How many bytes are copied each iteration of the 4X unrolled loop. */ -#define BIGBLOCKSIZE (sizeof (long) << 2) - -/* How many bytes are copied each iteration of the word copy loop. */ -#define LITTLEBLOCKSIZE (sizeof (long)) - -/* Threshhold for punting to the byte copier. */ -#define TOO_SMALL(LEN) ((LEN) < BIGBLOCKSIZE) - -void * -__inhibit_loop_to_libcall -memcpy (void *__restrict dst0, - const void *__restrict src0, - size_t len0) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - char *dst = (char *) dst0; - char *src = (char *) src0; - - void *save = dst0; - - while (len0--) - { - *dst++ = *src++; - } - - return save; -#else - char *dst = dst0; - const char *src = src0; - long *aligned_dst; - const long *aligned_src; - - /* If the size is small, or either SRC or DST is unaligned, - then punt into the byte copy loop. This should be rare. */ - if (!TOO_SMALL(len0) && !UNALIGNED (src, dst)) - { - aligned_dst = (long*)dst; - aligned_src = (long*)src; - - /* Copy 4X long words at a time if possible. */ - while (len0 >= BIGBLOCKSIZE) - { - *aligned_dst++ = *aligned_src++; - *aligned_dst++ = *aligned_src++; - *aligned_dst++ = *aligned_src++; - *aligned_dst++ = *aligned_src++; - len0 -= BIGBLOCKSIZE; - } - - /* Copy one long word at a time if possible. */ - while (len0 >= LITTLEBLOCKSIZE) - { - *aligned_dst++ = *aligned_src++; - len0 -= LITTLEBLOCKSIZE; - } - - /* Pick up any residual with a byte copier. */ - dst = (char*)aligned_dst; - src = (char*)aligned_src; - } - - while (len0--) - *dst++ = *src++; - - return dst0; -#endif /* not PREFER_SIZE_OVER_SPEED */ -} diff --git a/lib/string/memmem.c b/lib/string/memmem.c deleted file mode 100644 index 65267b9..0000000 --- a/lib/string/memmem.c +++ /dev/null @@ -1,187 +0,0 @@ -/* Optimized memmem function. - Copyright (c) 2018 Arm Ltd. All rights reserved. - - SPDX-License-Identifier: BSD-3-Clause - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. The name of the company may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/* -FUNCTION - <>---find memory segment - -INDEX - memmem - -SYNOPSIS - #include - void *memmem(const void *<[s1]>, size_t <[l1]>, const void *<[s2]>, - size_t <[l2]>); - -DESCRIPTION - - Locates the first occurrence in the memory region pointed to - by <[s1]> with length <[l1]> of the sequence of bytes pointed - to by <[s2]> of length <[l2]>. If you already know the - lengths of your haystack and needle, <> is much faster - than <>. - -RETURNS - Returns a pointer to the located segment, or a null pointer if - <[s2]> is not found. If <[l2]> is 0, <[s1]> is returned. - -PORTABILITY -<> is a newlib extension. - -<> requires no supporting OS subroutines. - -QUICKREF - memmem pure -*/ - -#include -#include - -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - -/* Small and efficient memmem implementation (quadratic worst-case). */ -void * -memmem (const void *haystack, size_t hs_len, const void *needle, size_t ne_len) -{ - const char *hs = haystack; - const char *ne = needle; - - if (ne_len == 0) - return (void *)hs; - int i; - int c = ne[0]; - const char *end = hs + hs_len - ne_len; - - for ( ; hs <= end; hs++) - { - if (hs[0] != c) - continue; - for (i = ne_len - 1; i != 0; i--) - if (hs[i] != ne[i]) - break; - if (i == 0) - return (void *)hs; - } - - return NULL; -} - -#else - -# define RETURN_TYPE void * -# define AVAILABLE(h, h_l, j, n_l) ((j) <= (h_l) - (n_l)) -# include "str-two-way.h" - -#define hash2(p) (((size_t)(p)[0] - ((size_t)(p)[-1] << 3)) % sizeof (shift)) - -/* Fast memmem algorithm with guaranteed linear-time performance. - Small needles up to size 2 use a dedicated linear search. Longer needles - up to size 256 use a novel modified Horspool algorithm. It hashes pairs - of characters to quickly skip past mismatches. The main search loop only - exits if the last 2 characters match, avoiding unnecessary calls to memcmp - and allowing for a larger skip if there is no match. A self-adapting - filtering check is used to quickly detect mismatches in long needles. - By limiting the needle length to 256, the shift table can be reduced to 8 - bits per entry, lowering preprocessing overhead and minimizing cache effects. - The limit also implies worst-case performance is linear. - Needles larger than 256 characters use the linear-time Two-Way algorithm. */ -void * -memmem (const void *haystack, size_t hs_len, const void *needle, size_t ne_len) -{ - const unsigned char *hs = haystack; - const unsigned char *ne = needle; - - if (ne_len == 0) - return (void *) hs; - if (ne_len == 1) - return (void *) memchr (hs, ne[0], hs_len); - - /* Ensure haystack length is >= needle length. */ - if (hs_len < ne_len) - return NULL; - - const unsigned char *end = hs + hs_len - ne_len; - - if (ne_len == 2) - { - uint32_t nw = ne[0] << 16 | ne[1], hw = hs[0] << 16 | hs[1]; - for (hs++; hs <= end && hw != nw; ) - hw = hw << 16 | *++hs; - return hw == nw ? (void *)(hs - 1) : NULL; - } - - /* Use Two-Way algorithm for very long needles. */ - if (__builtin_expect (ne_len > 256, 0)) - return two_way_long_needle (hs, hs_len, ne, ne_len); - - uint8_t shift[256]; - size_t tmp, shift1; - size_t m1 = ne_len - 1; - size_t offset = 0; - int i; - - /* Initialize bad character shift hash table. */ - memset (shift, 0, sizeof (shift)); - for (i = 1; i < m1; i++) - shift[hash2 (ne + i)] = i; - shift1 = m1 - shift[hash2 (ne + m1)]; - shift[hash2 (ne + m1)] = m1; - - for ( ; hs <= end; ) - { - /* Skip past character pairs not in the needle. */ - do - { - hs += m1; - tmp = shift[hash2 (hs)]; - } - while (hs <= end && tmp == 0); - - /* If the match is not at the end of the needle, shift to the end - and continue until we match the last 2 characters. */ - hs -= tmp; - if (tmp < m1) - continue; - - /* The last 2 characters match. If the needle is long, check a - fixed number of characters first to quickly filter out mismatches. */ - if (m1 <= 15 || memcmp (hs + offset, ne + offset, sizeof (long)) == 0) - { - if (memcmp (hs, ne, m1) == 0) - return (void *) hs; - - /* Adjust filter offset when it doesn't find the mismatch. */ - offset = (offset >= sizeof (long) ? offset : m1) - sizeof (long); - } - - /* Skip based on matching the last 2 characters. */ - hs += shift1; - } - return NULL; -} -#endif /* Compilation for speed. */ diff --git a/lib/string/memmove.c b/lib/string/memmove.c deleted file mode 100644 index da5dfdb..0000000 --- a/lib/string/memmove.c +++ /dev/null @@ -1,136 +0,0 @@ -/* -FUNCTION - <>---move possibly overlapping memory - -INDEX - memmove - -SYNOPSIS - #include - void *memmove(void *<[dst]>, const void *<[src]>, size_t <[length]>); - -DESCRIPTION - This function moves <[length]> characters from the block of - memory starting at <<*<[src]>>> to the memory starting at - <<*<[dst]>>>. <> reproduces the characters correctly - at <<*<[dst]>>> even if the two areas overlap. - - -RETURNS - The function returns <[dst]> as passed. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - memmove ansi pure -*/ - -#include -#include <_ansi.h> -#include -#include -#include "local.h" - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X, Y) \ - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) - -/* How many bytes are copied each iteration of the 4X unrolled loop. */ -#define BIGBLOCKSIZE (sizeof (long) << 2) - -/* How many bytes are copied each iteration of the word copy loop. */ -#define LITTLEBLOCKSIZE (sizeof (long)) - -/* Threshhold for punting to the byte copier. */ -#define TOO_SMALL(LEN) ((LEN) < BIGBLOCKSIZE) - -/*SUPPRESS 20*/ -void * -__inhibit_loop_to_libcall -memmove (void *dst_void, - const void *src_void, - size_t length) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - char *dst = dst_void; - const char *src = src_void; - - if (src < dst && dst < src + length) - { - /* Have to copy backwards */ - src += length; - dst += length; - while (length--) - { - *--dst = *--src; - } - } - else - { - while (length--) - { - *dst++ = *src++; - } - } - - return dst_void; -#else - char *dst = dst_void; - const char *src = src_void; - long *aligned_dst; - const long *aligned_src; - - if (src < dst && dst < src + length) - { - /* Destructive overlap...have to copy backwards */ - src += length; - dst += length; - while (length--) - { - *--dst = *--src; - } - } - else - { - /* Use optimizing algorithm for a non-destructive copy to closely - match memcpy. If the size is small or either SRC or DST is unaligned, - then punt into the byte copy loop. This should be rare. */ - if (!TOO_SMALL(length) && !UNALIGNED (src, dst)) - { - aligned_dst = (long*)dst; - aligned_src = (long*)src; - - /* Copy 4X long words at a time if possible. */ - while (length >= BIGBLOCKSIZE) - { - *aligned_dst++ = *aligned_src++; - *aligned_dst++ = *aligned_src++; - *aligned_dst++ = *aligned_src++; - *aligned_dst++ = *aligned_src++; - length -= BIGBLOCKSIZE; - } - - /* Copy one long word at a time if possible. */ - while (length >= LITTLEBLOCKSIZE) - { - *aligned_dst++ = *aligned_src++; - length -= LITTLEBLOCKSIZE; - } - - /* Pick up any residual with a byte copier. */ - dst = (char*)aligned_dst; - src = (char*)aligned_src; - } - - while (length--) - { - *dst++ = *src++; - } - } - - return dst_void; -#endif /* not PREFER_SIZE_OVER_SPEED */ -} diff --git a/lib/string/mempcpy.c b/lib/string/mempcpy.c deleted file mode 100644 index 1291656..0000000 --- a/lib/string/mempcpy.c +++ /dev/null @@ -1,100 +0,0 @@ -/* -FUNCTION - <>---copy memory regions and return end pointer - -SYNOPSIS - #include - void* mempcpy(void *<[out]>, const void *<[in]>, size_t <[n]>); - -DESCRIPTION - This function copies <[n]> bytes from the memory region - pointed to by <[in]> to the memory region pointed to by - <[out]>. - - If the regions overlap, the behavior is undefined. - -RETURNS - <> returns a pointer to the byte following the - last byte copied to the <[out]> region. - -PORTABILITY -<> is a GNU extension. - -<> requires no supporting OS subroutines. - - */ - -#include <_ansi.h> -#include -#include -#include - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X, Y) \ - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) - -/* How many bytes are copied each iteration of the 4X unrolled loop. */ -#define BIGBLOCKSIZE (sizeof (long) << 2) - -/* How many bytes are copied each iteration of the word copy loop. */ -#define LITTLEBLOCKSIZE (sizeof (long)) - -/* Threshhold for punting to the byte copier. */ -#define TOO_SMALL(LEN) ((LEN) < BIGBLOCKSIZE) - -void * -mempcpy (void *dst0, - const void *src0, - size_t len0) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - char *dst = (char *) dst0; - char *src = (char *) src0; - - while (len0--) - { - *dst++ = *src++; - } - - return dst; -#else - char *dst = dst0; - const char *src = src0; - long *aligned_dst; - const long *aligned_src; - - /* If the size is small, or either SRC or DST is unaligned, - then punt into the byte copy loop. This should be rare. */ - if (!TOO_SMALL(len0) && !UNALIGNED (src, dst)) - { - aligned_dst = (long*)dst; - aligned_src = (long*)src; - - /* Copy 4X long words at a time if possible. */ - while (len0 >= BIGBLOCKSIZE) - { - *aligned_dst++ = *aligned_src++; - *aligned_dst++ = *aligned_src++; - *aligned_dst++ = *aligned_src++; - *aligned_dst++ = *aligned_src++; - len0 -= BIGBLOCKSIZE; - } - - /* Copy one long word at a time if possible. */ - while (len0 >= LITTLEBLOCKSIZE) - { - *aligned_dst++ = *aligned_src++; - len0 -= LITTLEBLOCKSIZE; - } - - /* Pick up any residual with a byte copier. */ - dst = (char*)aligned_dst; - src = (char*)aligned_src; - } - - while (len0--) - *dst++ = *src++; - - return dst; -#endif /* not PREFER_SIZE_OVER_SPEED */ -} diff --git a/lib/string/memrchr.c b/lib/string/memrchr.c deleted file mode 100644 index 652efb3..0000000 --- a/lib/string/memrchr.c +++ /dev/null @@ -1,126 +0,0 @@ -/* -FUNCTION - <>---reverse search for character in memory - -INDEX - memrchr - -SYNOPSIS - #include - void *memrchr(const void *<[src]>, int <[c]>, size_t <[length]>); - -DESCRIPTION - This function searches memory starting at <[length]> bytes - beyond <<*<[src]>>> backwards for the character <[c]>. - The search only ends with the first occurrence of <[c]>; in - particular, <> does not terminate the search. - -RETURNS - If the character <[c]> is found within <[length]> characters - of <<*<[src]>>>, a pointer to the character is returned. If - <[c]> is not found, then <> is returned. - -PORTABILITY -<> is a GNU extension. - -<> requires no supporting OS subroutines. - -QUICKREF - memrchr -*/ - -#include <_ansi.h> -#include -#include - -/* Nonzero if X is not aligned on a "long" boundary. */ -#define UNALIGNED(X) ((long)(X + 1) & (sizeof (long) - 1)) - -/* How many bytes are loaded each iteration of the word copy loop. */ -#define LBLOCKSIZE (sizeof (long)) - -/* Threshhold for punting to the bytewise iterator. */ -#define TOO_SMALL(LEN) ((LEN) < LBLOCKSIZE) - -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -/* DETECTCHAR returns nonzero if (long)X contains the byte used - to fill (long)MASK. */ -#define DETECTCHAR(X,MASK) (DETECTNULL(X ^ MASK)) - -void * -memrchr (const void *src_void, - int c, - size_t length) -{ - const unsigned char *src = (const unsigned char *) src_void + length - 1; - unsigned char d = c; - -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) - unsigned long *asrc; - unsigned long mask; - unsigned int i; - - while (UNALIGNED (src)) - { - if (!length--) - return NULL; - if (*src == d) - return (void *) src; - src--; - } - - if (!TOO_SMALL (length)) - { - /* If we get this far, we know that length is large and src is - word-aligned. */ - /* The fast code reads the source one word at a time and only - performs the bytewise search on word-sized segments if they - contain the search character, which is detected by XORing - the word-sized segment with a word-sized block of the search - character and then detecting for the presence of NUL in the - result. */ - asrc = (unsigned long *) (src - LBLOCKSIZE + 1); - mask = d << 8 | d; - mask = mask << 16 | mask; - for (i = 32; i < LBLOCKSIZE * 8; i <<= 1) - mask = (mask << i) | mask; - - while (length >= LBLOCKSIZE) - { - if (DETECTCHAR (*asrc, mask)) - break; - length -= LBLOCKSIZE; - asrc--; - } - - /* If there are fewer than LBLOCKSIZE characters left, - then we resort to the bytewise loop. */ - - src = (unsigned char *) asrc + LBLOCKSIZE - 1; - } - -#endif /* not PREFER_SIZE_OVER_SPEED */ - - while (length--) - { - if (*src == d) - return (void *) src; - src--; - } - - return NULL; -} diff --git a/lib/string/memset.c b/lib/string/memset.c deleted file mode 100644 index e8e667a..0000000 --- a/lib/string/memset.c +++ /dev/null @@ -1,96 +0,0 @@ -/* -FUNCTION - <>---set an area of memory - -INDEX - memset - -SYNOPSIS - #include - void *memset(void *<[dst]>, int <[c]>, size_t <[length]>); - -DESCRIPTION - This function converts the argument <[c]> into an unsigned - char and fills the first <[length]> characters of the array - pointed to by <[dst]> to the value. - -RETURNS - <> returns the value of <[dst]>. - -PORTABILITY -<> is ANSI C. - - <> requires no supporting OS subroutines. - -QUICKREF - memset ansi pure -*/ - -#include -#include "local.h" - -#define LBLOCKSIZE (sizeof(long)) -#define UNALIGNED(X) ((long)X & (LBLOCKSIZE - 1)) -#define TOO_SMALL(LEN) ((LEN) < LBLOCKSIZE) - -void * -__inhibit_loop_to_libcall -memset (void *m, - int c, - size_t n) -{ - char *s = (char *) m; - -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) - unsigned int i; - unsigned long buffer; - unsigned long *aligned_addr; - unsigned int d = c & 0xff; /* To avoid sign extension, copy C to an - unsigned variable. */ - - while (UNALIGNED (s)) - { - if (n--) - *s++ = (char) c; - else - return m; - } - - if (!TOO_SMALL (n)) - { - /* If we get this far, we know that n is large and s is word-aligned. */ - aligned_addr = (unsigned long *) s; - - /* Store D into each char sized location in BUFFER so that - we can set large blocks quickly. */ - buffer = (d << 8) | d; - buffer |= (buffer << 16); - for (i = 32; i < LBLOCKSIZE * 8; i <<= 1) - buffer = (buffer << i) | buffer; - - /* Unroll the loop. */ - while (n >= LBLOCKSIZE*4) - { - *aligned_addr++ = buffer; - *aligned_addr++ = buffer; - *aligned_addr++ = buffer; - *aligned_addr++ = buffer; - n -= 4*LBLOCKSIZE; - } - - while (n >= LBLOCKSIZE) - { - *aligned_addr++ = buffer; - n -= LBLOCKSIZE; - } - /* Pick up the remainder with a bytewise loop. */ - s = (char*)aligned_addr; - } - -#endif /* not PREFER_SIZE_OVER_SPEED */ - - while (n--) - *s++ = (char) c; - - return m; -} diff --git a/lib/string/mkunidata b/lib/string/mkunidata deleted file mode 100644 index 7b6135f..0000000 --- a/lib/string/mkunidata +++ /dev/null @@ -1,73 +0,0 @@ -#! /bin/sh - -echo Generating Unicode width data for newlib/libc/string/wcwidth.c - -cd `dirname $0` -PATH="$PATH":. # ensure access to uniset tool - -############################################################################# -# checks and (with option -u) downloads - -case "$1" in --h) echo "Usage: $0 [-h|-u|-i]" - echo "Generate width data tables ambiguous.t, combining.t, wide.t" - echo "from local Unicode files UnicodeData.txt, Blocks.txt, EastAsianWidth.txt." - echo "" - echo "Options:" - echo " -u download files from unicode.org first, download uniset tool" - echo " -i copy files from /usr/share/unicode/ucd first" - echo " -h show this" - exit - ;; --u) - wget () { - ref=`basename $1` - ref=`ls "$ref" 2> /dev/null || echo 01-Jan-1970` - curl -R -O --connect-timeout 55 -z "$ref" "$1" - } - - echo downloading uniset tool - wget https://www.cl.cam.ac.uk/~mgk25/download/uniset.tar.gz - gzip -dc uniset.tar.gz | tar xvf - uniset - - echo downloading data from unicode.org - for data in UnicodeData.txt Blocks.txt EastAsianWidth.txt - do wget http://unicode.org/Public/UNIDATA/$data - done - ;; --i) - echo copying data from /usr/share/unicode/ucd - for data in UnicodeData.txt Blocks.txt EastAsianWidth.txt - do cp /usr/share/unicode/ucd/$data . - done - ;; -esac - -echo checking uniset tool -type uniset || exit 9 - -echo checking Unicode data files -for data in UnicodeData.txt Blocks.txt EastAsianWidth.txt -do if [ -r $data ] - then true - else echo $data not available, skipping table generation - exit - fi -done - -echo generating from Unicode version `sed -e 's,[^.0-9],,g' -e 1q Blocks.txt` - -############################################################################# -# table generation - -echo generating combining characters table -uniset +cat=Me +cat=Mn +cat=Cf -00AD +1160-11FF +200B +D7B0-D7C6 +D7CB-D7FB c > combining.t - -echo generating ambiguous width characters table -sh ./mkwidthA && uniset +WIDTH-A -cat=Me -cat=Mn -cat=Cf c > ambiguous.t - -echo generating wide characters table -sh ./mkwide - -############################################################################# -# end diff --git a/lib/string/mkwide b/lib/string/mkwide deleted file mode 100644 index 55a0bab..0000000 --- a/lib/string/mkwide +++ /dev/null @@ -1,49 +0,0 @@ -#! /bin/sh - -# generate list of wide characters, with convex closure - -skipcheck=false - -if [ ! -r EastAsianWidth.txt ] -then ln -s /usr/share/unicode/ucd/EastAsianWidth.txt . || exit 1 -fi -if [ ! -r UnicodeData.txt ] -then ln -s /usr/share/unicode/ucd/UnicodeData.txt . || exit 1 -fi -if [ ! -r Blocks.txt ] -then ln -s /usr/share/unicode/ucd/Blocks.txt . || exit 1 -fi - -sed -e "s,^\([^;]*\);[NAH],\1," -e t -e d EastAsianWidth.txt > wide.na -sed -e "s,^\([^;]*\);[WF],\1," -e t -e d EastAsianWidth.txt > wide.fw - -PATH="$PATH:." # for uniset - -nrfw=`uniset +wide.fw nr | sed -e 's,.*:,,'` -echo FW $nrfw -nrna=`uniset +wide.na nr | sed -e 's,.*:,,'` -echo NAH $nrna - -extrablocks="2E80-303E" - -# check all blocks -includes () { - nr=`uniset +wide.$2 -$1 nr | sed -e 's,.*:,,'` - test $nr != $3 -} -echo "adding compact closure of wide ranges, this may take ~10min" -for b in $extrablocks `sed -e 's,^\([0-9A-F]*\)\.\.\([0-9A-F]*\).*,\1-\2,' -e t -e d Blocks.txt` -do range=$b - echo checking $range $* >&2 - if includes $range fw $nrfw && ! includes $range na $nrna - then echo $range - fi -done > wide.blocks - -( -sed -e "s,^,//," -e 1q EastAsianWidth.txt -sed -e "s,^,//," -e 1q Blocks.txt -uniset `sed -e 's,^,+,' wide.blocks` +wide.fw c -) > wide.t - -rm -f wide.na wide.fw wide.blocks diff --git a/lib/string/mkwidthA b/lib/string/mkwidthA deleted file mode 100644 index 343ab40..0000000 --- a/lib/string/mkwidthA +++ /dev/null @@ -1,20 +0,0 @@ -#! /bin/sh - -# generate WIDTH-A file, listing Unicode characters with width property -# Ambiguous, from EastAsianWidth.txt - -if [ ! -r EastAsianWidth.txt ] -then ln -s /usr/share/unicode/ucd/EastAsianWidth.txt . || exit 1 -fi -if [ ! -r UnicodeData.txt ] -then ln -s /usr/share/unicode/ucd/UnicodeData.txt . || exit 1 -fi -if [ ! -r Blocks.txt ] -then ln -s /usr/share/unicode/ucd/Blocks.txt . || exit 1 -fi - -sed -e "s,^\([^;]*\);A,\1," -e t -e d EastAsianWidth.txt > width-a-new -rm -f WIDTH-A -echo "# UAX #11: East Asian Ambiguous" > WIDTH-A -PATH="$PATH:." uniset +width-a-new compact >> WIDTH-A -rm -f width-a-new diff --git a/lib/string/rawmemchr.c b/lib/string/rawmemchr.c deleted file mode 100644 index 56e2b5e..0000000 --- a/lib/string/rawmemchr.c +++ /dev/null @@ -1,114 +0,0 @@ -/* -FUNCTION - <>---find character in memory - -INDEX - rawmemchr - -SYNOPSIS - #include - void *rawmemchr(const void *<[src]>, int <[c]>); - -DESCRIPTION - This function searches memory starting at <<*<[src]>>> for the - character <[c]>. The search only ends with the first occurrence - of <[c]>; in particular, <> does not terminate the search. - No bounds checking is performed, so this function should only - be used when it is certain that the character <[c]> will be found. - -RETURNS - A pointer to the first occurance of character <[c]>. - -PORTABILITY -<> is a GNU extension. - -<> requires no supporting OS subroutines. - -QUICKREF - rawmemchr -*/ - -#include <_ansi.h> -#include -#include - -/* Nonzero if X is not aligned on a "long" boundary. */ -#define UNALIGNED(X) ((long)X & (sizeof (long) - 1)) - -/* How many bytes are loaded each iteration of the word copy loop. */ -#define LBLOCKSIZE (sizeof (long)) - -/* Threshhold for punting to the bytewise iterator. */ -#define TOO_SMALL(LEN) ((LEN) < LBLOCKSIZE) - -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -/* DETECTCHAR returns nonzero if (long)X contains the byte used - to fill (long)MASK. */ -#define DETECTCHAR(X,MASK) (DETECTNULL(X ^ MASK)) - -void * -rawmemchr (const void *src_void, - int c) -{ - const unsigned char *src = (const unsigned char *) src_void; - unsigned char d = c; - -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) - unsigned long *asrc; - unsigned long mask; - unsigned int i; - - while (UNALIGNED (src)) - { - if (*src == d) - return (void *) src; - src++; - } - - /* If we get this far, we know that src is word-aligned. */ - /* The fast code reads the source one word at a time and only - performs the bytewise search on word-sized segments if they - contain the search character, which is detected by XORing - the word-sized segment with a word-sized block of the search - character and then detecting for the presence of NUL in the - result. */ - asrc = (unsigned long *) src; - mask = d << 8 | d; - mask = mask << 16 | mask; - for (i = 32; i < LBLOCKSIZE * 8; i <<= 1) - mask = (mask << i) | mask; - - while (1) - { - if (DETECTCHAR (*asrc, mask)) - break; - asrc++; - } - - /* We have the matching word, now we resort to a bytewise loop. */ - - src = (unsigned char *) asrc; - -#endif /* !PREFER_SIZE_OVER_SPEED && !__OPTIMIZE_SIZE__ */ - - while (1) - { - if (*src == d) - return (void *) src; - src++; - } -} diff --git a/lib/string/rindex.c b/lib/string/rindex.c deleted file mode 100644 index 39e5aa2..0000000 --- a/lib/string/rindex.c +++ /dev/null @@ -1,38 +0,0 @@ -/* -FUNCTION - <>---reverse search for character in string - -INDEX - rindex - -SYNOPSIS - #include - char * rindex(const char *<[string]>, int <[c]>); - -DESCRIPTION - This function finds the last occurence of <[c]> (converted to - a char) in the string pointed to by <[string]> (including the - terminating null character). - - This function is identical to <>. - -RETURNS - Returns a pointer to the located character, or a null pointer - if <[c]> does not occur in <[string]>. - -PORTABILITY -<> requires no supporting OS subroutines. - -QUICKREF - rindex - pure -*/ - -#include -#include - -char * -rindex (const char *s, - int c) -{ - return strrchr (s, c); -} diff --git a/lib/string/stpcpy.c b/lib/string/stpcpy.c deleted file mode 100644 index 4e2ae9f..0000000 --- a/lib/string/stpcpy.c +++ /dev/null @@ -1,84 +0,0 @@ -/* -FUNCTION - <>---copy string returning a pointer to its end - -INDEX - stpcpy - -SYNOPSIS - #include - char *stpcpy(char *restrict <[dst]>, const char *restrict <[src]>); - -DESCRIPTION - <> copies the string pointed to by <[src]> - (including the terminating null character) to the array - pointed to by <[dst]>. - -RETURNS - This function returns a pointer to the end of the destination string, - thus pointing to the trailing '\0'. - -PORTABILITY -<> is a GNU extension, candidate for inclusion into POSIX/SUSv4. - -<> requires no supporting OS subroutines. - -QUICKREF - stpcpy gnu -*/ - -#include -#include - -/*SUPPRESS 560*/ -/*SUPPRESS 530*/ - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X, Y) \ - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) - -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -char* -stpcpy (char *__restrict dst, - const char *__restrict src) -{ -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) - long *aligned_dst; - const long *aligned_src; - - /* If SRC or DEST is unaligned, then copy bytes. */ - if (!UNALIGNED (src, dst)) - { - aligned_dst = (long*)dst; - aligned_src = (long*)src; - - /* SRC and DEST are both "long int" aligned, try to do "long int" - sized copies. */ - while (!DETECTNULL(*aligned_src)) - { - *aligned_dst++ = *aligned_src++; - } - - dst = (char*)aligned_dst; - src = (char*)aligned_src; - } -#endif /* not PREFER_SIZE_OVER_SPEED */ - - while ((*dst++ = *src++)) - ; - return --dst; -} diff --git a/lib/string/stpncpy.c b/lib/string/stpncpy.c deleted file mode 100644 index 87fe268..0000000 --- a/lib/string/stpncpy.c +++ /dev/null @@ -1,107 +0,0 @@ -/* -FUNCTION - <>---counted copy string returning a pointer to its end - -INDEX - stpncpy - -SYNOPSIS - #include - char *stpncpy(char *restrict <[dst]>, const char *restrict <[src]>, - size_t <[length]>); - -DESCRIPTION - <> copies not more than <[length]> characters from the - the string pointed to by <[src]> (including the terminating - null character) to the array pointed to by <[dst]>. If the - string pointed to by <[src]> is shorter than <[length]> - characters, null characters are appended to the destination - array until a total of <[length]> characters have been - written. - -RETURNS - This function returns a pointer to the end of the destination string, - thus pointing to the trailing '\0', or, if the destination string is - not null-terminated, pointing to dst + n. - -PORTABILITY -<> is a GNU extension, candidate for inclusion into POSIX/SUSv4. - -<> requires no supporting OS subroutines. - -QUICKREF - stpncpy gnu -*/ - -#include -#include - -/*SUPPRESS 560*/ -/*SUPPRESS 530*/ - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X, Y) \ - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) - -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -#define TOO_SMALL(LEN) ((LEN) < sizeof (long)) - -char * -stpncpy (char *__restrict dst, - const char *__restrict src, - size_t count) -{ - char *ret = NULL; - -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) - long *aligned_dst; - const long *aligned_src; - - /* If SRC and DEST is aligned and count large enough, then copy words. */ - if (!UNALIGNED (src, dst) && !TOO_SMALL (count)) - { - aligned_dst = (long*)dst; - aligned_src = (long*)src; - - /* SRC and DEST are both "long int" aligned, try to do "long int" - sized copies. */ - while (count >= sizeof (long int) && !DETECTNULL(*aligned_src)) - { - count -= sizeof (long int); - *aligned_dst++ = *aligned_src++; - } - - dst = (char*)aligned_dst; - src = (char*)aligned_src; - } -#endif /* not PREFER_SIZE_OVER_SPEED */ - - while (count > 0) - { - --count; - if ((*dst++ = *src++) == '\0') - { - ret = dst - 1; - break; - } - } - - while (count-- > 0) - *dst++ = '\0'; - - return ret ? ret : dst; -} diff --git a/lib/string/str-two-way.h b/lib/string/str-two-way.h deleted file mode 100644 index e13f949..0000000 --- a/lib/string/str-two-way.h +++ /dev/null @@ -1,416 +0,0 @@ -/* Byte-wise substring search, using the Two-Way algorithm. - * Copyright (C) 2008, 2010 Eric Blake - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - - -/* Before including this file, you need to include , and define: - RESULT_TYPE A macro that expands to the return type. - AVAILABLE(h, h_l, j, n_l) A macro that returns nonzero if there are - at least N_L bytes left starting at - H[J]. H is 'unsigned char *', H_L, J, - and N_L are 'size_t'; H_L is an - lvalue. For NUL-terminated searches, - H_L can be modified each iteration to - avoid having to compute the end of H - up front. - - For case-insensitivity, you may optionally define: - CMP_FUNC(p1, p2, l) A macro that returns 0 iff the first L - characters of P1 and P2 are equal. - CANON_ELEMENT(c) A macro that canonicalizes an element - right after it has been fetched from - one of the two strings. The argument - is an 'unsigned char'; the result must - be an 'unsigned char' as well. - - This file undefines the macros documented above, and defines - LONG_NEEDLE_THRESHOLD. -*/ - -#include -#include -#include <_ansi.h> - -/* We use the Two-Way string matching algorithm, which guarantees - linear complexity with constant space. Additionally, for long - needles, we also use a bad character shift table similar to the - Boyer-Moore algorithm to achieve improved (potentially sub-linear) - performance. - - See http://www-igm.univ-mlv.fr/~lecroq/string/node26.html#SECTION00260 - and http://en.wikipedia.org/wiki/Boyer-Moore_string_search_algorithm -*/ - -/* Point at which computing a bad-byte shift table is likely to be - worthwhile. Small needles should not compute a table, since it - adds (1 << CHAR_BIT) + NEEDLE_LEN computations of preparation for a - speedup no greater than a factor of NEEDLE_LEN. The larger the - needle, the better the potential performance gain. On the other - hand, on non-POSIX systems with CHAR_BIT larger than eight, the - memory required for the table is prohibitive. */ -#if CHAR_BIT < 10 -# define LONG_NEEDLE_THRESHOLD 32U -#else -# define LONG_NEEDLE_THRESHOLD SIZE_MAX -#endif - -#define MAX(a, b) ((a < b) ? (b) : (a)) - -#ifndef CANON_ELEMENT -# define CANON_ELEMENT(c) c -#endif -#ifndef CMP_FUNC -# define CMP_FUNC memcmp -#endif - -/* Perform a critical factorization of NEEDLE, of length NEEDLE_LEN. - Return the index of the first byte in the right half, and set - *PERIOD to the global period of the right half. - - The global period of a string is the smallest index (possibly its - length) at which all remaining bytes in the string are repetitions - of the prefix (the last repetition may be a subset of the prefix). - - When NEEDLE is factored into two halves, a local period is the - length of the smallest word that shares a suffix with the left half - and shares a prefix with the right half. All factorizations of a - non-empty NEEDLE have a local period of at least 1 and no greater - than NEEDLE_LEN. - - A critical factorization has the property that the local period - equals the global period. All strings have at least one critical - factorization with the left half smaller than the global period. - - Given an ordered alphabet, a critical factorization can be computed - in linear time, with 2 * NEEDLE_LEN comparisons, by computing the - larger of two ordered maximal suffixes. The ordered maximal - suffixes are determined by lexicographic comparison of - periodicity. */ -static size_t -critical_factorization (const unsigned char *needle, size_t needle_len, - size_t *period) -{ - /* Index of last byte of left half, or SIZE_MAX. */ - size_t max_suffix, max_suffix_rev; - size_t j; /* Index into NEEDLE for current candidate suffix. */ - size_t k; /* Offset into current period. */ - size_t p; /* Intermediate period. */ - unsigned char a, b; /* Current comparison bytes. */ - - /* Invariants: - 0 <= j < NEEDLE_LEN - 1 - -1 <= max_suffix{,_rev} < j (treating SIZE_MAX as if it were signed) - min(max_suffix, max_suffix_rev) < global period of NEEDLE - 1 <= p <= global period of NEEDLE - p == global period of the substring NEEDLE[max_suffix{,_rev}+1...j] - 1 <= k <= p - */ - - /* Perform lexicographic search. */ - max_suffix = SIZE_MAX; - j = 0; - k = p = 1; - while (j + k < needle_len) - { - a = CANON_ELEMENT (needle[j + k]); - b = CANON_ELEMENT (needle[(size_t)(max_suffix + k)]); - if (a < b) - { - /* Suffix is smaller, period is entire prefix so far. */ - j += k; - k = 1; - p = j - max_suffix; - } - else if (a == b) - { - /* Advance through repetition of the current period. */ - if (k != p) - ++k; - else - { - j += p; - k = 1; - } - } - else /* b < a */ - { - /* Suffix is larger, start over from current location. */ - max_suffix = j++; - k = p = 1; - } - } - *period = p; - - /* Perform reverse lexicographic search. */ - max_suffix_rev = SIZE_MAX; - j = 0; - k = p = 1; - while (j + k < needle_len) - { - a = CANON_ELEMENT (needle[j + k]); - b = CANON_ELEMENT (needle[max_suffix_rev + k]); - if (b < a) - { - /* Suffix is smaller, period is entire prefix so far. */ - j += k; - k = 1; - p = j - max_suffix_rev; - } - else if (a == b) - { - /* Advance through repetition of the current period. */ - if (k != p) - ++k; - else - { - j += p; - k = 1; - } - } - else /* a < b */ - { - /* Suffix is larger, start over from current location. */ - max_suffix_rev = j++; - k = p = 1; - } - } - - /* Choose the longer suffix. Return the first byte of the right - half, rather than the last byte of the left half. */ - if (max_suffix_rev + 1 < max_suffix + 1) - return max_suffix + 1; - *period = p; - return max_suffix_rev + 1; -} - -/* Return the first location of non-empty NEEDLE within HAYSTACK, or - NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This - method is optimized for NEEDLE_LEN < LONG_NEEDLE_THRESHOLD. - Performance is guaranteed to be linear, with an initialization cost - of 2 * NEEDLE_LEN comparisons. - - If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at - most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. - If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * - HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. */ -static RETURN_TYPE __attribute__ ((__used__)) -two_way_short_needle (const unsigned char *haystack, size_t haystack_len, - const unsigned char *needle, size_t needle_len) -{ - size_t i; /* Index into current byte of NEEDLE. */ - size_t j; /* Index into current window of HAYSTACK. */ - size_t period; /* The period of the right half of needle. */ - size_t suffix; /* The index of the right half of needle. */ - - /* Factor the needle into two halves, such that the left half is - smaller than the global period, and the right half is - periodic (with a period as large as NEEDLE_LEN - suffix). */ - suffix = critical_factorization (needle, needle_len, &period); - - /* Perform the search. Each iteration compares the right half - first. */ - if (CMP_FUNC (needle, needle + period, suffix) == 0) - { - /* Entire needle is periodic; a mismatch can only advance by the - period, so use memory to avoid rescanning known occurrences - of the period. */ - size_t memory = 0; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Scan for matches in right half. */ - i = MAX (suffix, memory); - while (i < needle_len && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (memory < i + 1 && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i + 1 < memory + 1) - return (RETURN_TYPE) (haystack + j); - /* No match, so remember how many repetitions of period - on the right half were scanned. */ - j += period; - memory = needle_len - period; - } - else - { - j += i - suffix + 1; - memory = 0; - } - } - } - else - { - /* The two halves of needle are distinct; no extra memory is - required, and any mismatch results in a maximal shift. */ - period = MAX (suffix, needle_len - suffix) + 1; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Scan for matches in right half. */ - i = suffix; - while (i < needle_len && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (i != SIZE_MAX && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i == SIZE_MAX) - return (RETURN_TYPE) (haystack + j); - j += period; - } - else - j += i - suffix + 1; - } - } - return NULL; -} - -/* Return the first location of non-empty NEEDLE within HAYSTACK, or - NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This - method is optimized for LONG_NEEDLE_THRESHOLD <= NEEDLE_LEN. - Performance is guaranteed to be linear, with an initialization cost - of 3 * NEEDLE_LEN + (1 << CHAR_BIT) operations. - - If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at - most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, - and sublinear performance O(HAYSTACK_LEN / NEEDLE_LEN) is possible. - If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * - HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and - sublinear performance is not possible. */ -_NOINLINE_STATIC RETURN_TYPE __attribute__ ((__used__)) -two_way_long_needle (const unsigned char *haystack, size_t haystack_len, - const unsigned char *needle, size_t needle_len) -{ - size_t i; /* Index into current byte of NEEDLE. */ - size_t j; /* Index into current window of HAYSTACK. */ - size_t period; /* The period of the right half of needle. */ - size_t suffix; /* The index of the right half of needle. */ - size_t shift_table[1U << CHAR_BIT]; /* See below. */ - - /* Factor the needle into two halves, such that the left half is - smaller than the global period, and the right half is - periodic (with a period as large as NEEDLE_LEN - suffix). */ - suffix = critical_factorization (needle, needle_len, &period); - - /* Populate shift_table. For each possible byte value c, - shift_table[c] is the distance from the last occurrence of c to - the end of NEEDLE, or NEEDLE_LEN if c is absent from the NEEDLE. - shift_table[NEEDLE[NEEDLE_LEN - 1]] contains the only 0. */ - for (i = 0; i < 1U << CHAR_BIT; i++) - shift_table[i] = needle_len; - for (i = 0; i < needle_len; i++) - shift_table[CANON_ELEMENT (needle[i])] = needle_len - i - 1; - - /* Perform the search. Each iteration compares the right half - first. */ - if (CMP_FUNC (needle, needle + period, suffix) == 0) - { - /* Entire needle is periodic; a mismatch can only advance by the - period, so use memory to avoid rescanning known occurrences - of the period. */ - size_t memory = 0; - size_t shift; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Check the last byte first; if it does not match, then - shift to the next possible match location. */ - shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])]; - if (0 < shift) - { - if (memory && shift < period) - { - /* Since needle is periodic, but the last period has - a byte out of place, there can be no match until - after the mismatch. */ - shift = needle_len - period; - } - memory = 0; - j += shift; - continue; - } - /* Scan for matches in right half. The last byte has - already been matched, by virtue of the shift table. */ - i = MAX (suffix, memory); - while (i < needle_len - 1 && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len - 1 <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (memory < i + 1 && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i + 1 < memory + 1) - return (RETURN_TYPE) (haystack + j); - /* No match, so remember how many repetitions of period - on the right half were scanned. */ - j += period; - memory = needle_len - period; - } - else - { - j += i - suffix + 1; - memory = 0; - } - } - } - else - { - /* The two halves of needle are distinct; no extra memory is - required, and any mismatch results in a maximal shift. */ - size_t shift; - period = MAX (suffix, needle_len - suffix) + 1; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Check the last byte first; if it does not match, then - shift to the next possible match location. */ - shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])]; - if (0 < shift) - { - j += shift; - continue; - } - /* Scan for matches in right half. The last byte has - already been matched, by virtue of the shift table. */ - i = suffix; - while (i < needle_len - 1 && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len - 1 <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (i != SIZE_MAX && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i == SIZE_MAX) - return (RETURN_TYPE) (haystack + j); - j += period; - } - else - j += i - suffix + 1; - } - } - return NULL; -} - -#undef AVAILABLE -#undef CANON_ELEMENT -#undef CMP_FUNC -#undef MAX -#undef RETURN_TYPE diff --git a/lib/string/strcasecmp.c b/lib/string/strcasecmp.c deleted file mode 100644 index c75a3e2..0000000 --- a/lib/string/strcasecmp.c +++ /dev/null @@ -1,51 +0,0 @@ -/* -FUNCTION - <>---case-insensitive character string compare - -INDEX - strcasecmp - -SYNOPSIS - #include - int strcasecmp(const char *<[a]>, const char *<[b]>); - -DESCRIPTION - <> compares the string at <[a]> to - the string at <[b]> in a case-insensitive manner. - -RETURNS - - If <<*<[a]>>> sorts lexicographically after <<*<[b]>>> (after - both are converted to lowercase), <> returns a - number greater than zero. If the two strings match, - <> returns zero. If <<*<[a]>>> sorts - lexicographically before <<*<[b]>>>, <> returns a - number less than zero. - -PORTABILITY -<> is in the Berkeley Software Distribution. - -<> requires no supporting OS subroutines. It uses -tolower() from elsewhere in this library. - -QUICKREF - strcasecmp -*/ - -#include -#include - -int -strcasecmp (const char *s1, - const char *s2) -{ - int d = 0; - for ( ; ; ) - { - const int c1 = tolower(*s1++); - const int c2 = tolower(*s2++); - if (((d = c1 - c2) != 0) || (c2 == '\0')) - break; - } - return d; -} diff --git a/lib/string/strcasecmp_l.c b/lib/string/strcasecmp_l.c deleted file mode 100644 index 587f56e..0000000 --- a/lib/string/strcasecmp_l.c +++ /dev/null @@ -1,54 +0,0 @@ -/* -FUNCTION - <>---case-insensitive character string compare - -INDEX - strcasecmp_l - -SYNOPSIS - #include - int strcasecmp_l(const char *<[a]>, const char *<[b]>, - locale_t <[locale]>); - -DESCRIPTION - <> compares the string at <[a]> to - the string at <[b]> in a case-insensitive manner. - - if <[locale]> is LC_GLOBAL_LOCALE or not a valid locale object, the - behaviour is undefined. - -RETURNS - - If <<*<[a]>>> sorts lexicographically after <<*<[b]>>> (after - both are converted to lowercase), <> returns a - number greater than zero. If the two strings match, - <> returns zero. If <<*<[a]>>> sorts - lexicographically before <<*<[b]>>>, <> returns a - number less than zero. - -PORTABILITY -<> is POSIX-1.2008. - -<> requires no supporting OS subroutines. It uses -tolower_l() from elsewhere in this library. - -QUICKREF - strcasecmp_l -*/ - -#include -#include - -int -strcasecmp_l (const char *s1, const char *s2, struct __locale_t *locale) -{ - int d = 0; - for ( ; ; ) - { - const int c1 = tolower_l (*s1++, locale); - const int c2 = tolower_l (*s2++, locale); - if (((d = c1 - c2) != 0) || (c2 == '\0')) - break; - } - return d; -} diff --git a/lib/string/strcasestr.c b/lib/string/strcasestr.c deleted file mode 100644 index 36e1839..0000000 --- a/lib/string/strcasestr.c +++ /dev/null @@ -1,146 +0,0 @@ -/* -FUNCTION - <>---case-insensitive character string search - -INDEX - strcasestr - -SYNOPSIS - #include - char *strcasestr(const char *<[s]>, const char *<[find]>); - -DESCRIPTION - <> searchs the string <[s]> for - the first occurrence of the sequence <[find]>. <> - is identical to <> except the search is - case-insensitive. - -RETURNS - - A pointer to the first case-insensitive occurrence of the sequence - <[find]> or <> if no match was found. - -PORTABILITY -<> is in the Berkeley Software Distribution. - -<> requires no supporting OS subroutines. It uses -tolower() from elsewhere in this library. - -QUICKREF - strcasestr -*/ - -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * The quadratic code is derived from software contributed to Berkeley by - * Chris Torek. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -/* Linear algorithm Copyright (C) 2008 Eric Blake - * Permission to use, copy, modify, and distribute the linear portion of - * software is freely granted, provided that this notice is preserved. - */ - -#include - -#include -#include -#include - -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) -# define RETURN_TYPE char * -# define AVAILABLE(h, h_l, j, n_l) \ - (!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l)) \ - && ((h_l) = (j) + (n_l))) -# define CANON_ELEMENT(c) tolower (c) -#if __GNUC_PREREQ (4, 2) -/* strncasecmp uses signed char, CMP_FUNC is expected to use unsigned char. */ -#pragma GCC diagnostic ignored "-Wpointer-sign" -#endif -# define CMP_FUNC strncasecmp -# include "str-two-way.h" -#endif - -/* - * Find the first occurrence of find in s, ignore case. - */ -char * -strcasestr (const char *s, - const char *find) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - - /* Less code size, but quadratic performance in the worst case. */ - char c, sc; - size_t len; - - if ((c = *find++) != 0) { - c = tolower((unsigned char)c); - len = strlen(find); - do { - do { - if ((sc = *s++) == 0) - return (NULL); - } while ((char)tolower((unsigned char)sc) != c); - } while (strncasecmp(s, find, len) != 0); - s--; - } - return ((char *)s); - -#else /* compilation for speed */ - - /* Larger code size, but guaranteed linear performance. */ - const char *haystack = s; - const char *needle = find; - size_t needle_len; /* Length of NEEDLE. */ - size_t haystack_len; /* Known minimum length of HAYSTACK. */ - int ok = 1; /* True if NEEDLE is prefix of HAYSTACK. */ - - /* Determine length of NEEDLE, and in the process, make sure - HAYSTACK is at least as long (no point processing all of a long - NEEDLE if HAYSTACK is too short). */ - while (*haystack && *needle) - ok &= (tolower ((unsigned char) *haystack++) - == tolower ((unsigned char) *needle++)); - if (*needle) - return NULL; - if (ok) - return (char *) s; - needle_len = needle - find; - haystack = s + 1; - haystack_len = needle_len - 1; - - /* Perform the search. */ - if (needle_len < LONG_NEEDLE_THRESHOLD) - return two_way_short_needle ((const unsigned char *) haystack, - haystack_len, - (const unsigned char *) find, needle_len); - return two_way_long_needle ((const unsigned char *) haystack, haystack_len, - (const unsigned char *) find, needle_len); -#endif /* compilation for speed */ -} diff --git a/lib/string/strcat.c b/lib/string/strcat.c deleted file mode 100644 index 92313c4..0000000 --- a/lib/string/strcat.c +++ /dev/null @@ -1,97 +0,0 @@ -/* -FUNCTION - <>---concatenate strings - -INDEX - strcat - -SYNOPSIS - #include - char *strcat(char *restrict <[dst]>, const char *restrict <[src]>); - -DESCRIPTION - <> appends a copy of the string pointed to by <[src]> - (including the terminating null character) to the end of the - string pointed to by <[dst]>. The initial character of - <[src]> overwrites the null character at the end of <[dst]>. - -RETURNS - This function returns the initial value of <[dst]> - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strcat ansi pure -*/ - -#include -#include - -/* Nonzero if X is aligned on a "long" boundary. */ -#define ALIGNED(X) \ - (((long)X & (sizeof (long) - 1)) == 0) - -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - - -/*SUPPRESS 560*/ -/*SUPPRESS 530*/ - -char * -strcat (char *__restrict s1, - const char *__restrict s2) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - char *s = s1; - - while (*s1) - s1++; - - while (*s1++ = *s2++) - ; - return s; -#else - char *s = s1; - - - /* Skip over the data in s1 as quickly as possible. */ - if (ALIGNED (s1)) - { - unsigned long *aligned_s1 = (unsigned long *)s1; - while (!DETECTNULL (*aligned_s1)) - aligned_s1++; - - s1 = (char *)aligned_s1; - } - - while (*s1) - s1++; - - /* s1 now points to the its trailing null character, we can - just use strcpy to do the work for us now. - - ?!? We might want to just include strcpy here. - Also, this will cause many more unaligned string copies because - s1 is much less likely to be aligned. I don't know if its worth - tweaking strcpy to handle this better. */ - strcpy (s1, s2); - - return s; -#endif /* not PREFER_SIZE_OVER_SPEED */ -} diff --git a/lib/string/strchr.c b/lib/string/strchr.c deleted file mode 100644 index 96f30be..0000000 --- a/lib/string/strchr.c +++ /dev/null @@ -1,116 +0,0 @@ -/* -FUNCTION - <>---search for character in string - -INDEX - strchr - -SYNOPSIS - #include - char * strchr(const char *<[string]>, int <[c]>); - -DESCRIPTION - This function finds the first occurence of <[c]> (converted to - a char) in the string pointed to by <[string]> (including the - terminating null character). - -RETURNS - Returns a pointer to the located character, or a null pointer - if <[c]> does not occur in <[string]>. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strchr ansi pure -*/ - -#include -#include - -/* Nonzero if X is not aligned on a "long" boundary. */ -#define UNALIGNED(X) ((long)X & (sizeof (long) - 1)) - -/* How many bytes are loaded each iteration of the word copy loop. */ -#define LBLOCKSIZE (sizeof (long)) - -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -/* DETECTCHAR returns nonzero if (long)X contains the byte used - to fill (long)MASK. */ -#define DETECTCHAR(X,MASK) (DETECTNULL(X ^ MASK)) - -char * -strchr (const char *s1, - int i) -{ - const unsigned char *s = (const unsigned char *)s1; - unsigned char c = i; - -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) - unsigned long mask,j; - unsigned long *aligned_addr; - - /* Special case for finding 0. */ - if (!c) - { - while (UNALIGNED (s)) - { - if (!*s) - return (char *) s; - s++; - } - /* Operate a word at a time. */ - aligned_addr = (unsigned long *) s; - while (!DETECTNULL (*aligned_addr)) - aligned_addr++; - /* Found the end of string. */ - s = (const unsigned char *) aligned_addr; - while (*s) - s++; - return (char *) s; - } - - /* All other bytes. Align the pointer, then search a long at a time. */ - while (UNALIGNED (s)) - { - if (!*s) - return NULL; - if (*s == c) - return (char *) s; - s++; - } - - mask = c; - for (j = 8; j < LBLOCKSIZE * 8; j <<= 1) - mask = (mask << j) | mask; - - aligned_addr = (unsigned long *) s; - while (!DETECTNULL (*aligned_addr) && !DETECTCHAR (*aligned_addr, mask)) - aligned_addr++; - - /* The block of bytes currently pointed to by aligned_addr - contains either a null or the target char, or both. We - catch it using the bytewise search. */ - - s = (unsigned char *) aligned_addr; - -#endif /* not PREFER_SIZE_OVER_SPEED */ - - while (*s && *s != c) - s++; - if (*s == c) - return (char *)s; - return NULL; -} diff --git a/lib/string/strchrnul.c b/lib/string/strchrnul.c deleted file mode 100644 index f5c3eb2..0000000 --- a/lib/string/strchrnul.c +++ /dev/null @@ -1,40 +0,0 @@ -/* -FUNCTION - <>---search for character in string - -INDEX - strchrnul - -SYNOPSIS - #include - char * strchrnul(const char *<[string]>, int <[c]>); - -DESCRIPTION - This function finds the first occurence of <[c]> (converted to - a char) in the string pointed to by <[string]> (including the - terminating null character). - -RETURNS - Returns a pointer to the located character, or a pointer - to the concluding null byte if <[c]> does not occur in <[string]>. - -PORTABILITY -<> is a GNU extension. - -<> requires no supporting OS subroutines. It uses -strchr() and strlen() from elsewhere in this library. - -QUICKREF - strchrnul -*/ - -#include - -char * -strchrnul (const char *s1, - int i) -{ - char *s = strchr(s1, i); - - return s ? s : (char *)s1 + strlen(s1); -} diff --git a/lib/string/strcmp.c b/lib/string/strcmp.c deleted file mode 100644 index 894424a..0000000 --- a/lib/string/strcmp.c +++ /dev/null @@ -1,99 +0,0 @@ -/* -FUNCTION - <>---character string compare - -INDEX - strcmp - -SYNOPSIS - #include - int strcmp(const char *<[a]>, const char *<[b]>); - -DESCRIPTION - <> compares the string at <[a]> to - the string at <[b]>. - -RETURNS - If <<*<[a]>>> sorts lexicographically after <<*<[b]>>>, - <> returns a number greater than zero. If the two - strings match, <> returns zero. If <<*<[a]>>> - sorts lexicographically before <<*<[b]>>>, <> returns a - number less than zero. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strcmp ansi pure -*/ - -#include -#include - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X, Y) \ - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) - -/* DETECTNULL returns nonzero if (long)X contains a NULL byte. */ -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -int -strcmp (const char *s1, - const char *s2) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - while (*s1 != '\0' && *s1 == *s2) - { - s1++; - s2++; - } - - return (*(unsigned char *) s1) - (*(unsigned char *) s2); -#else - unsigned long *a1; - unsigned long *a2; - - /* If s1 or s2 are unaligned, then compare bytes. */ - if (!UNALIGNED (s1, s2)) - { - /* If s1 and s2 are word-aligned, compare them a word at a time. */ - a1 = (unsigned long*)s1; - a2 = (unsigned long*)s2; - while (*a1 == *a2) - { - /* To get here, *a1 == *a2, thus if we find a null in *a1, - then the strings must be equal, so return zero. */ - if (DETECTNULL (*a1)) - return 0; - - a1++; - a2++; - } - - /* A difference was detected in last few bytes of s1, so search bytewise */ - s1 = (char*)a1; - s2 = (char*)a2; - } - - while (*s1 != '\0' && *s1 == *s2) - { - s1++; - s2++; - } - return (*(unsigned char *) s1) - (*(unsigned char *) s2); -#endif /* not PREFER_SIZE_OVER_SPEED */ -} diff --git a/lib/string/strcoll.c b/lib/string/strcoll.c deleted file mode 100644 index 7fa8d13..0000000 --- a/lib/string/strcoll.c +++ /dev/null @@ -1,44 +0,0 @@ -/* -FUNCTION - <>---locale-specific character string compare - -INDEX - strcoll - -SYNOPSIS - #include - int strcoll(const char *<[stra]>, const char * <[strb]>); - -DESCRIPTION - <> compares the string pointed to by <[stra]> to - the string pointed to by <[strb]>, using an interpretation - appropriate to the current <> state. - - (NOT Cygwin:) The current implementation of <> simply - uses <> and does not support any language-specific sorting. - -RETURNS - If the first string is greater than the second string, - <> returns a number greater than zero. If the two - strings are equivalent, <> returns zero. If the first - string is less than the second string, <> returns a - number less than zero. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strcoll ansi pure -*/ - -#include - -int -strcoll (const char *a, - const char *b) - -{ - return strcmp (a, b); -} diff --git a/lib/string/strcoll_l.c b/lib/string/strcoll_l.c deleted file mode 100644 index 89a7d05..0000000 --- a/lib/string/strcoll_l.c +++ /dev/null @@ -1,46 +0,0 @@ -/* -FUNCTION - <>---locale-specific character string compare - -INDEX - strcoll_l - -SYNOPSIS - #include - int strcoll_l(const char *<[stra]>, const char * <[strb]>, - locale_t <[locale]>); - -DESCRIPTION - <> compares the string pointed to by <[stra]> to - the string pointed to by <[strb]>, using an interpretation - appropriate to the current <> state. - - (NOT Cygwin:) The current implementation of <> simply - uses <> and does not support any language-specific sorting. - - If <[locale]> is LC_GLOBAL_LOCALE or not a valid locale object, the - behaviour is undefined. - -RETURNS - If the first string is greater than the second string, - <> returns a number greater than zero. If the two - strings are equivalent, <> returns zero. If the first - string is less than the second string, <> returns a - number less than zero. - -PORTABILITY -<> is POSIX-1.2008. - -<> requires no supporting OS subroutines. - -QUICKREF - strcoll_l ansi pure -*/ - -#include - -int -strcoll_l (const char *a, const char *b, struct __locale_t *locale) -{ - return strcmp (a, b); -} diff --git a/lib/string/strcpy.c b/lib/string/strcpy.c deleted file mode 100644 index 94e16b5..0000000 --- a/lib/string/strcpy.c +++ /dev/null @@ -1,92 +0,0 @@ -/* -FUNCTION - <>---copy string - -INDEX - strcpy - -SYNOPSIS - #include - char *strcpy(char *<[dst]>, const char *<[src]>); - -DESCRIPTION - <> copies the string pointed to by <[src]> - (including the terminating null character) to the array - pointed to by <[dst]>. - -RETURNS - This function returns the initial value of <[dst]>. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strcpy ansi pure -*/ - -#include -#include - -/*SUPPRESS 560*/ -/*SUPPRESS 530*/ - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X, Y) \ - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) - -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -char* -strcpy (char *dst0, - const char *src0) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - char *s = dst0; - - while (*dst0++ = *src0++) - ; - - return s; -#else - char *dst = dst0; - const char *src = src0; - long *aligned_dst; - const long *aligned_src; - - /* If SRC or DEST is unaligned, then copy bytes. */ - if (!UNALIGNED (src, dst)) - { - aligned_dst = (long*)dst; - aligned_src = (long*)src; - - /* SRC and DEST are both "long int" aligned, try to do "long int" - sized copies. */ - while (!DETECTNULL(*aligned_src)) - { - *aligned_dst++ = *aligned_src++; - } - - dst = (char*)aligned_dst; - src = (char*)aligned_src; - } - - while ((*dst++ = *src++)) - ; - return dst0; -#endif /* not PREFER_SIZE_OVER_SPEED */ -} diff --git a/lib/string/strcspn.c b/lib/string/strcspn.c deleted file mode 100644 index abaa93a..0000000 --- a/lib/string/strcspn.c +++ /dev/null @@ -1,48 +0,0 @@ -/* -FUNCTION - <>---count characters not in string - -INDEX - strcspn - -SYNOPSIS - size_t strcspn(const char *<[s1]>, const char *<[s2]>); - -DESCRIPTION - This function computes the length of the initial part of - the string pointed to by <[s1]> which consists entirely of - characters <[NOT]> from the string pointed to by <[s2]> - (excluding the terminating null character). - -RETURNS - <> returns the length of the substring found. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - */ - -#include - -size_t -strcspn (const char *s1, - const char *s2) -{ - const char *s = s1; - const char *c; - - while (*s1) - { - for (c = s2; *c; c++) - { - if (*s1 == *c) - break; - } - if (*c) - break; - s1++; - } - - return s1 - s; -} diff --git a/lib/string/strdup.c b/lib/string/strdup.c deleted file mode 100644 index 3f2a026..0000000 --- a/lib/string/strdup.c +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _REENT_ONLY - -#include -#include -#include - -char * -strdup (const char *str) -{ - return _strdup_r (_REENT, str); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/string/strdup_r.c b/lib/string/strdup_r.c deleted file mode 100644 index 14c80f7..0000000 --- a/lib/string/strdup_r.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include -#include - -char * -_strdup_r (struct _reent *reent_ptr, - const char *str) -{ - size_t len = strlen (str) + 1; - char *copy = _malloc_r (reent_ptr, len); - if (copy) - { - memcpy (copy, str, len); - } - return copy; -} diff --git a/lib/string/strerror.c b/lib/string/strerror.c deleted file mode 100644 index 8f961d3..0000000 --- a/lib/string/strerror.c +++ /dev/null @@ -1,905 +0,0 @@ -/*** -**** CAUTION!!! KEEP DOC CONSISTENT---if you change text of a message -**** here, change two places: -**** 1) the leading doc section (alphabetized by macro) -**** 2) the real text inside switch(errnum) -***/ - -/* -FUNCTION - <>, <>---convert error number to string - -INDEX - strerror - -INDEX - strerror_l - -SYNOPSIS - #include - char *strerror(int <[errnum]>); - char *strerror_l(int <[errnum]>, locale_t <[locale]>); - char *_strerror_r(struct _reent <[ptr]>, int <[errnum]>, - int <[internal]>, int *<[error]>); - -DESCRIPTION -<> converts the error number <[errnum]> into a -string. The value of <[errnum]> is usually a copy of <>. -If <> is not a known error number, the result points to an -empty string. - -<> is like <> but creates a string in a format -as expected in locale <[locale]>. If <[locale]> is LC_GLOBAL_LOCALE or -not a valid locale object, the behaviour is undefined. - -This implementation of <> prints out the following strings -for each of the values defined in `<>': - -o+ -o 0 -Success - -o E2BIG -Arg list too long - -o EACCES -Permission denied - -o EADDRINUSE -Address already in use - -o EADDRNOTAVAIL -Address not available - -o EADV -Advertise error - -o EAFNOSUPPORT -Address family not supported by protocol family - -o EAGAIN -No more processes - -o EALREADY -Socket already connected - -o EBADF -Bad file number - -o EBADMSG -Bad message - -o EBUSY -Device or resource busy - -o ECANCELED -Operation canceled - -o ECHILD -No children - -o ECOMM -Communication error - -o ECONNABORTED -Software caused connection abort - -o ECONNREFUSED -Connection refused - -o ECONNRESET -Connection reset by peer - -o EDEADLK -Deadlock - -o EDESTADDRREQ -Destination address required - -o EEXIST -File exists - -o EDOM -Mathematics argument out of domain of function - -o EFAULT -Bad address - -o EFBIG -File too large - -o EHOSTDOWN -Host is down - -o EHOSTUNREACH -Host is unreachable - -o EIDRM -Identifier removed - -o EILSEQ -Illegal byte sequence - -o EINPROGRESS -Connection already in progress - -o EINTR -Interrupted system call - -o EINVAL -Invalid argument - -o EIO -I/O error - -o EISCONN -Socket is already connected - -o EISDIR -Is a directory - -o ELIBACC -Cannot access a needed shared library - -o ELIBBAD -Accessing a corrupted shared library - -o ELIBEXEC -Cannot exec a shared library directly - -o ELIBMAX -Attempting to link in more shared libraries than system limit - -o ELIBSCN -<<.lib>> section in a.out corrupted - -o EMFILE -File descriptor value too large - -o EMLINK -Too many links - -o EMSGSIZE -Message too long - -o EMULTIHOP -Multihop attempted - -o ENAMETOOLONG -File or path name too long - -o ENETDOWN -Network interface is not configured - -o ENETRESET -Connection aborted by network - -o ENETUNREACH -Network is unreachable - -o ENFILE -Too many open files in system - -o ENOBUFS -No buffer space available - -o ENODATA -No data - -o ENODEV -No such device - -o ENOENT -No such file or directory - -o ENOEXEC -Exec format error - -o ENOLCK -No lock - -o ENOLINK -Virtual circuit is gone - -o ENOMEM -Not enough space - -o ENOMSG -No message of desired type - -o ENONET -Machine is not on the network - -o ENOPKG -No package - -o ENOPROTOOPT -Protocol not available - -o ENOSPC -No space left on device - -o ENOSR -No stream resources - -o ENOSTR -Not a stream - -o ENOSYS -Function not implemented - -o ENOTBLK -Block device required - -o ENOTCONN -Socket is not connected - -o ENOTDIR -Not a directory - -o ENOTEMPTY -Directory not empty - -o ENOTRECOVERABLE -State not recoverable - -o ENOTSOCK -Socket operation on non-socket - -o ENOTSUP -Not supported - -o ENOTTY -Not a character device - -o ENXIO -No such device or address - -o EOPNOTSUPP -Operation not supported on socket - -o EOVERFLOW -Value too large for defined data type - -o EOWNERDEAD -Previous owner died - -o EPERM -Not owner - -o EPIPE -Broken pipe - -o EPROTO -Protocol error - -o EPROTOTYPE -Protocol wrong type for socket - -o EPROTONOSUPPORT -Unknown protocol - -o ERANGE -Result too large - -o EREMOTE -Resource is remote - -o EROFS -Read-only file system - -o ESHUTDOWN -Can't send after socket shutdown - -o ESOCKTNOSUPPORT -Socket type not supported - -o ESPIPE -Illegal seek - -o ESRCH -No such process - -o ESRMNT -Srmount error - -o ESTRPIPE -Strings pipe error - -o ETIME -Stream ioctl timeout - -o ETIMEDOUT -Connection timed out - -o ETXTBSY -Text file busy - -o EWOULDBLOCK -Operation would block (usually same as EAGAIN) - -o EXDEV -Cross-device link - -o- - -<<_strerror_r>> is a reentrant version of the above. - -RETURNS -This function returns a pointer to a string. Your application must -not modify that string. - -PORTABILITY -ANSI C requires <>, but does not specify the strings used -for each error number. - -<> is POSIX-1.2008. - -Although this implementation of <> is reentrant (depending -on <<_user_strerror>>), ANSI C declares that subsequent calls to -<> may overwrite the result string; therefore portable -code cannot depend on the reentrancy of this subroutine. - -Although this implementation of <> guarantees a non-null -result with a NUL-terminator, some implementations return <> -on failure. Although POSIX allows <> to set <> -to EINVAL on failure, this implementation does not do so (unless -you provide <<_user_strerror>>). - -POSIX recommends that unknown <[errnum]> result in a message -including that value, however it is not a requirement and this -implementation does not provide that information (unless you -provide <<_user_strerror>>). - -This implementation of <> provides for user-defined -extensibility. <> defines <[__ELASTERROR]>, which can be -used as a base for user-defined error values. If the user supplies a -routine named <<_user_strerror>>, and <[errnum]> passed to -<> does not match any of the supported values, -<<_user_strerror>> is called with three arguments. The first is of -type <[int]>, and is the <[errnum]> value unknown to <>. -The second is of type <[int]>, and matches the <[internal]> argument -of <<_strerror_r>>; this should be zero if called from <> -and non-zero if called from any other function; <<_user_strerror>> can -use this information to satisfy the POSIX rule that no other -standardized function can overwrite a static buffer reused by -<>. The third is of type <[int *]>, and matches the -<[error]> argument of <<_strerror_r>>; if a non-zero value is stored -into that location (usually <[EINVAL]>), then <> will set -<> to that value, and the XPG variant of <> will -return that value instead of zero or <[ERANGE]>. <<_user_strerror>> -returns a <[char *]> value; returning <[NULL]> implies that the user -function did not choose to handle <[errnum]>. The default -<<_user_strerror>> returns <[NULL]> for all input values. Note that -<<_user_sterror>> must be thread-safe, and only denote errors via the -third argument rather than modifying <>, if <> and -<> are are to comply with POSIX. - -<> requires no supporting OS subroutines. - -QUICKREF - strerror ansi pure -*/ - -#include -#include - -char * -_strerror_r (struct _reent *ptr, - int errnum, - int internal, - int *errptr) -{ - char *error; - extern char *_user_strerror (int, int, int *); - - switch (errnum) - { - case 0: - error = "Success"; - break; -/* go32 defines EPERM as EACCES */ -#if defined (EPERM) && (!defined (EACCES) || (EPERM != EACCES)) - case EPERM: - error = "Not owner"; - break; -#endif -#ifdef ENOENT - case ENOENT: - error = "No such file or directory"; - break; -#endif -#ifdef ESRCH - case ESRCH: - error = "No such process"; - break; -#endif -#ifdef EINTR - case EINTR: - error = "Interrupted system call"; - break; -#endif -#ifdef EIO - case EIO: - error = "I/O error"; - break; -#endif -/* go32 defines ENXIO as ENODEV */ -#if defined (ENXIO) && (!defined (ENODEV) || (ENXIO != ENODEV)) - case ENXIO: - error = "No such device or address"; - break; -#endif -#ifdef E2BIG - case E2BIG: - error = "Arg list too long"; - break; -#endif -#ifdef ENOEXEC - case ENOEXEC: - error = "Exec format error"; - break; -#endif -#ifdef EALREADY - case EALREADY: - error = "Socket already connected"; - break; -#endif -#ifdef EBADF - case EBADF: - error = "Bad file number"; - break; -#endif -#ifdef ECHILD - case ECHILD: - error = "No children"; - break; -#endif -#ifdef EDESTADDRREQ - case EDESTADDRREQ: - error = "Destination address required"; - break; -#endif -#ifdef EAGAIN - case EAGAIN: - error = "No more processes"; - break; -#endif -#ifdef ENOMEM - case ENOMEM: - error = "Not enough space"; - break; -#endif -#ifdef EACCES - case EACCES: - error = "Permission denied"; - break; -#endif -#ifdef EFAULT - case EFAULT: - error = "Bad address"; - break; -#endif -#ifdef ENOTBLK - case ENOTBLK: - error = "Block device required"; - break; -#endif -#ifdef EBUSY - case EBUSY: - error = "Device or resource busy"; - break; -#endif -#ifdef EEXIST - case EEXIST: - error = "File exists"; - break; -#endif -#ifdef EXDEV - case EXDEV: - error = "Cross-device link"; - break; -#endif -#ifdef ENODEV - case ENODEV: - error = "No such device"; - break; -#endif -#ifdef ENOTDIR - case ENOTDIR: - error = "Not a directory"; - break; -#endif -#ifdef EHOSTDOWN - case EHOSTDOWN: - error = "Host is down"; - break; -#endif -#ifdef EINPROGRESS - case EINPROGRESS: - error = "Connection already in progress"; - break; -#endif -#ifdef EISDIR - case EISDIR: - error = "Is a directory"; - break; -#endif -#ifdef EINVAL - case EINVAL: - error = "Invalid argument"; - break; -#endif -#ifdef ENETDOWN - case ENETDOWN: - error = "Network interface is not configured"; - break; -#endif -#ifdef ENETRESET - case ENETRESET: - error = "Connection aborted by network"; - break; -#endif -#ifdef ENFILE - case ENFILE: - error = "Too many open files in system"; - break; -#endif -#ifdef EMFILE - case EMFILE: - error = "File descriptor value too large"; - break; -#endif -#ifdef ENOTTY - case ENOTTY: - error = "Not a character device"; - break; -#endif -#ifdef ETXTBSY - case ETXTBSY: - error = "Text file busy"; - break; -#endif -#ifdef EFBIG - case EFBIG: - error = "File too large"; - break; -#endif -#ifdef EHOSTUNREACH - case EHOSTUNREACH: - error = "Host is unreachable"; - break; -#endif -#ifdef ENOSPC - case ENOSPC: - error = "No space left on device"; - break; -#endif -#ifdef ENOTSUP - case ENOTSUP: - error = "Not supported"; - break; -#endif -#ifdef ESPIPE - case ESPIPE: - error = "Illegal seek"; - break; -#endif -#ifdef EROFS - case EROFS: - error = "Read-only file system"; - break; -#endif -#ifdef EMLINK - case EMLINK: - error = "Too many links"; - break; -#endif -#ifdef EPIPE - case EPIPE: - error = "Broken pipe"; - break; -#endif -#ifdef EDOM - case EDOM: - error = "Mathematics argument out of domain of function"; - break; -#endif -#ifdef ERANGE - case ERANGE: - error = "Result too large"; - break; -#endif -#ifdef ENOMSG - case ENOMSG: - error = "No message of desired type"; - break; -#endif -#ifdef EIDRM - case EIDRM: - error = "Identifier removed"; - break; -#endif -#ifdef EILSEQ - case EILSEQ: - error = "Illegal byte sequence"; - break; -#endif -#ifdef EDEADLK - case EDEADLK: - error = "Deadlock"; - break; -#endif -#ifdef ENETUNREACH - case ENETUNREACH: - error = "Network is unreachable"; - break; -#endif -#ifdef ENOLCK - case ENOLCK: - error = "No lock"; - break; -#endif -#ifdef ENOSTR - case ENOSTR: - error = "Not a stream"; - break; -#endif -#ifdef ETIME - case ETIME: - error = "Stream ioctl timeout"; - break; -#endif -#ifdef ENOSR - case ENOSR: - error = "No stream resources"; - break; -#endif -#ifdef ENONET - case ENONET: - error = "Machine is not on the network"; - break; -#endif -#ifdef ENOPKG - case ENOPKG: - error = "No package"; - break; -#endif -#ifdef EREMOTE - case EREMOTE: - error = "Resource is remote"; - break; -#endif -#ifdef ENOLINK - case ENOLINK: - error = "Virtual circuit is gone"; - break; -#endif -#ifdef EADV - case EADV: - error = "Advertise error"; - break; -#endif -#ifdef ESRMNT - case ESRMNT: - error = "Srmount error"; - break; -#endif -#ifdef ECOMM - case ECOMM: - error = "Communication error"; - break; -#endif -#ifdef EPROTO - case EPROTO: - error = "Protocol error"; - break; -#endif -#ifdef EPROTONOSUPPORT - case EPROTONOSUPPORT: - error = "Unknown protocol"; - break; -#endif -#ifdef EMULTIHOP - case EMULTIHOP: - error = "Multihop attempted"; - break; -#endif -#ifdef EBADMSG - case EBADMSG: - error = "Bad message"; - break; -#endif -#ifdef ELIBACC - case ELIBACC: - error = "Cannot access a needed shared library"; - break; -#endif -#ifdef ELIBBAD - case ELIBBAD: - error = "Accessing a corrupted shared library"; - break; -#endif -#ifdef ELIBSCN - case ELIBSCN: - error = ".lib section in a.out corrupted"; - break; -#endif -#ifdef ELIBMAX - case ELIBMAX: - error = "Attempting to link in more shared libraries than system limit"; - break; -#endif -#ifdef ELIBEXEC - case ELIBEXEC: - error = "Cannot exec a shared library directly"; - break; -#endif -#ifdef ENOSYS - case ENOSYS: - error = "Function not implemented"; - break; -#endif -#ifdef ENMFILE - case ENMFILE: - error = "No more files"; - break; -#endif -#ifdef ENOTEMPTY - case ENOTEMPTY: - error = "Directory not empty"; - break; -#endif -#ifdef ENAMETOOLONG - case ENAMETOOLONG: - error = "File or path name too long"; - break; -#endif -#ifdef ELOOP - case ELOOP: - error = "Too many symbolic links"; - break; -#endif -#ifdef ENOBUFS - case ENOBUFS: - error = "No buffer space available"; - break; -#endif -#ifdef ENODATA - case ENODATA: - error = "No data"; - break; -#endif -#ifdef EAFNOSUPPORT - case EAFNOSUPPORT: - error = "Address family not supported by protocol family"; - break; -#endif -#ifdef EPROTOTYPE - case EPROTOTYPE: - error = "Protocol wrong type for socket"; - break; -#endif -#ifdef ENOTSOCK - case ENOTSOCK: - error = "Socket operation on non-socket"; - break; -#endif -#ifdef ENOPROTOOPT - case ENOPROTOOPT: - error = "Protocol not available"; - break; -#endif -#ifdef ESHUTDOWN - case ESHUTDOWN: - error = "Can't send after socket shutdown"; - break; -#endif -#ifdef ECONNREFUSED - case ECONNREFUSED: - error = "Connection refused"; - break; -#endif -#ifdef ECONNRESET - case ECONNRESET: - error = "Connection reset by peer"; - break; -#endif -#ifdef EADDRINUSE - case EADDRINUSE: - error = "Address already in use"; - break; -#endif -#ifdef EADDRNOTAVAIL - case EADDRNOTAVAIL: - error = "Address not available"; - break; -#endif -#ifdef ECONNABORTED - case ECONNABORTED: - error = "Software caused connection abort"; - break; -#endif -#if (defined(EWOULDBLOCK) && (!defined (EAGAIN) || (EWOULDBLOCK != EAGAIN))) - case EWOULDBLOCK: - error = "Operation would block"; - break; -#endif -#ifdef ENOTCONN - case ENOTCONN: - error = "Socket is not connected"; - break; -#endif -#ifdef ESOCKTNOSUPPORT - case ESOCKTNOSUPPORT: - error = "Socket type not supported"; - break; -#endif -#ifdef EISCONN - case EISCONN: - error = "Socket is already connected"; - break; -#endif -#ifdef ECANCELED - case ECANCELED: - error = "Operation canceled"; - break; -#endif -#ifdef ENOTRECOVERABLE - case ENOTRECOVERABLE: - error = "State not recoverable"; - break; -#endif -#ifdef EOWNERDEAD - case EOWNERDEAD: - error = "Previous owner died"; - break; -#endif -#ifdef ESTRPIPE - case ESTRPIPE: - error = "Streams pipe error"; - break; -#endif -#if defined(EOPNOTSUPP) && (!defined(ENOTSUP) || (ENOTSUP != EOPNOTSUPP)) - case EOPNOTSUPP: - error = "Operation not supported on socket"; - break; -#endif -#ifdef EOVERFLOW - case EOVERFLOW: - error = "Value too large for defined data type"; - break; -#endif -#ifdef EMSGSIZE - case EMSGSIZE: - error = "Message too long"; - break; -#endif -#ifdef ETIMEDOUT - case ETIMEDOUT: - error = "Connection timed out"; - break; -#endif - default: - if (!errptr) - errptr = &_REENT_ERRNO(ptr); - if ((error = _user_strerror (errnum, internal, errptr)) == 0) - error = ""; - break; - } - - return error; -} - -char * -strerror (int errnum) -{ - return _strerror_r (_REENT, errnum, 0, NULL); -} - -char * -strerror_l (int errnum, locale_t locale) -{ - /* We don't support per-locale error messages. */ - return _strerror_r (_REENT, errnum, 0, NULL); -} diff --git a/lib/string/strerror_r.c b/lib/string/strerror_r.c deleted file mode 100644 index 660fee8..0000000 --- a/lib/string/strerror_r.c +++ /dev/null @@ -1,77 +0,0 @@ -/* GNU variant of strerror_r. */ -/* -FUNCTION - <>---convert error number to string and copy to buffer - -INDEX - strerror_r - -SYNOPSIS - #include - #ifdef _GNU_SOURCE - char *strerror_r(int <[errnum]>, char *<[buffer]>, size_t <[n]>); - #else - int strerror_r(int <[errnum]>, char *<[buffer]>, size_t <[n]>); - #endif - -DESCRIPTION -<> converts the error number <[errnum]> into a -string and copies the result into the supplied <[buffer]> for -a length up to <[n]>, including the NUL terminator. The value of -<[errnum]> is usually a copy of <>. If <> is not a known -error number, the result is the empty string. - -See <> for how strings are mapped to <>. - -RETURNS -There are two variants: the GNU version always returns a NUL-terminated -string, which is <[buffer]> if all went well, but which is another -pointer if <[n]> was too small (leaving <[buffer]> untouched). If the -return is not <[buffer]>, your application must not modify that string. -The POSIX version returns 0 on success, <[EINVAL]> if <> was not -recognized, and <[ERANGE]> if <[n]> was too small. The variant chosen -depends on macros that you define before inclusion of <>. - -PORTABILITY -<> with a <[char *]> result is a GNU extension. -<> with an <[int]> result is required by POSIX 2001. -This function is compliant only if <<_user_strerror>> is not provided, -or if it is thread-safe and uses separate storage according to whether -the second argument of that function is non-zero. For more details -on <<_user_strerror>>, see the <> documentation. - -POSIX states that the contents of <[buf]> are unspecified on error, -although this implementation guarantees a NUL-terminated string for -all except <[n]> of 0. - -POSIX recommends that unknown <[errnum]> result in a message including -that value, however it is not a requirement and this implementation -provides only an empty string (unless you provide <<_user_strerror>>). -POSIX also recommends that unknown <[errnum]> fail with EINVAL even -when providing such a message, however it is not a requirement and -this implementation will return success if <<_user_strerror>> provided -a non-empty alternate string without assigning into its third argument. - -<> requires no supporting OS subroutines. - -*/ - -#undef __STRICT_ANSI__ -#define _GNU_SOURCE -#include -#include -#undef strerror_r - -/* For backwards-compatible linking, this must be the GNU signature; - see xpg_strerror_r.c for the POSIX version. */ -char * -strerror_r (int errnum, - char *buffer, - size_t n) -{ - char *error = _strerror_r (_REENT, errnum, 1, NULL); - - if (strlen (error) >= n) - return error; - return strcpy (buffer, error); -} diff --git a/lib/string/strings.tex b/lib/string/strings.tex deleted file mode 100644 index 6aec5fe..0000000 --- a/lib/string/strings.tex +++ /dev/null @@ -1,205 +0,0 @@ -@node Strings -@chapter Strings and Memory (@file{string.h}) - -This chapter describes string-handling functions and functions for -managing areas of memory. The corresponding declarations are in -@file{string.h}. - -@menu -* bcmp:: Compare two memory areas -* bcopy:: Copy memory regions -* bzero:: Initialize memory to zero -* index:: Search for character in string -* memccpy:: Copy memory regions up to end-token -* memchr:: Find character in memory -* memcmp:: Compare two memory areas -* memcpy:: Copy memory regions -* memmem:: Find memory segment -* memmove:: Move possibly overlapping memory -* mempcpy:: Copy memory regions and locate end -* memrchr:: Reverse search for character in memory -* memset:: Set an area of memory -* rawmemchr:: Find character in memory -* rindex:: Reverse search for character in string -* stpcpy:: Copy string returning a pointer to its end -* stpncpy:: Counted copy string returning a pointer to its end -* strcasecmp:: Compare strings ignoring case -* strcasestr:: Find string segment ignoring case -* strcat:: Concatenate strings -* strchr:: Search for character in string -* strchrnul:: Search for character in string -* strcmp:: Character string compare -* strcoll:: Locale-specific character string compare -* strcpy:: Copy string -* strcspn:: Count chars not in string -* strerror:: Convert error number to string (strerror, strerror_l) -* strerror_r:: Convert error number to string -* strlen:: Character string length -* strlwr:: Convert string to lowercase -* strncasecmp:: Compare strings ignoring case -* strncat:: Concatenate strings -* strncmp:: Character string compare -* strncpy:: Counted copy string -* strnstr:: Find string segment -* strnlen:: Character string length -* strpbrk:: Find chars in string -* strrchr:: Reverse search for character in string -* strsignal:: Return signal message string -* strspn:: Find initial match -* strstr:: Find string segment -* strtok:: Get next token from a string -* strupr:: Convert string to upper case -* strverscmp:: Compare version strings -* strxfrm:: Transform string -* swab:: Swap adjacent bytes -* wcscasecmp:: Compare wide character strings ignoring case -* wcsdup:: Wide character string duplicate -* wcsncasecmp:: Compare wide character strings ignoring case -@end menu - -@page -@include string/bcmp.def - -@page -@include string/bcopy.def - -@page -@include string/bzero.def - -@page -@include string/index.def - -@page -@include string/memccpy.def - -@page -@include string/memchr.def - -@page -@include string/memcmp.def - -@page -@include string/memcpy.def - -@page -@include string/memmem.def - -@page -@include string/memmove.def - -@page -@include string/mempcpy.def - -@page -@include string/memrchr.def - -@page -@include string/memset.def - -@page -@include string/rawmemchr.def - -@page -@include string/rindex.def - -@page -@include string/stpcpy.def - -@page -@include string/stpncpy.def - -@page -@include string/strcasecmp.def - -@page -@include string/strcasestr.def - -@page -@include string/strcat.def - -@page -@include string/strchr.def - -@page -@include string/strchrnul.def - -@page -@include string/strcmp.def - -@page -@include string/strcoll.def - -@page -@include string/strcpy.def - -@page -@include string/strcspn.def - -@page -@include string/strerror.def - -@page -@include string/strerror_r.def - -@page -@include string/strlen.def - -@page -@include string/strlwr.def - -@page -@include string/strncasecmp.def - -@page -@include string/strncat.def - -@page -@include string/strncmp.def - -@page -@include string/strncpy.def - -@page -@include string/strnstr.def - -@page -@include string/strnlen.def - -@page -@include string/strpbrk.def - -@page -@include string/strrchr.def - -@page -@include string/strsignal.def - -@page -@include string/strspn.def - -@page -@include string/strstr.def - -@page -@include string/strtok.def - -@page -@include string/strupr.def - -@page -@include string/strverscmp.def - -@page -@include string/strxfrm.def - -@page -@include string/swab.def - -@page -@include string/wcscasecmp.def - -@page -@include string/wcsdup.def - -@page -@include string/wcsncasecmp.def diff --git a/lib/string/strlcat.c b/lib/string/strlcat.c deleted file mode 100644 index f359779..0000000 --- a/lib/string/strlcat.c +++ /dev/null @@ -1,57 +0,0 @@ -/* $OpenBSD: strlcat.c,v 1.19 2019/01/25 00:19:25 millert Exp $ */ - -/* - * Copyright (c) 1998, 2015 Todd C. Miller - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include -#include - -/* - * Appends src to string dst of size dsize (unlike strncat, dsize is the - * full size of dst, not space left). At most dsize-1 characters - * will be copied. Always NUL terminates (unless dsize <= strlen(dst)). - * Returns strlen(src) + MIN(dsize, strlen(initial dst)). - * If retval >= dsize, truncation occurred. - */ -size_t -strlcat (char *dst, - const char *src, - size_t dsize) -{ - const char *odst = dst; - const char *osrc = src; - size_t n = dsize; - size_t dlen; - - /* Find the end of dst and adjust bytes left but don't go past end. */ - while (n-- != 0 && *dst != '\0') - dst++; - dlen = dst - odst; - n = dsize - dlen; - - if (n-- == 0) - return(dlen + strlen(src)); - while (*src != '\0') { - if (n != 0) { - *dst++ = *src; - n--; - } - src++; - } - *dst = '\0'; - - return(dlen + (src - osrc)); /* count does not include NUL */ -} diff --git a/lib/string/strlcpy.c b/lib/string/strlcpy.c deleted file mode 100644 index 3df2e45..0000000 --- a/lib/string/strlcpy.c +++ /dev/null @@ -1,52 +0,0 @@ -/* $OpenBSD: strlcpy.c,v 1.16 2019/01/25 00:19:25 millert Exp $ */ - -/* - * Copyright (c) 1998, 2015 Todd C. Miller - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include -#include - -/* - * Copy string src to buffer dst of size dsize. At most dsize-1 - * chars will be copied. Always NUL terminates (unless dsize == 0). - * Returns strlen(src); if retval >= dsize, truncation occurred. - */ -size_t -strlcpy (char *dst, - const char *src, - size_t dsize) -{ - const char *osrc = src; - size_t nleft = dsize; - - /* Copy as many bytes as will fit. */ - if (nleft != 0) { - while (--nleft != 0) { - if ((*dst++ = *src++) == '\0') - break; - } - } - - /* Not enough room in dst, add NUL and traverse rest of src. */ - if (nleft == 0) { - if (dsize != 0) - *dst = '\0'; /* NUL-terminate dst */ - while (*src++) - ; - } - - return(src - osrc - 1); /* count does not include NUL */ -} diff --git a/lib/string/strlen.c b/lib/string/strlen.c deleted file mode 100644 index acffa49..0000000 --- a/lib/string/strlen.c +++ /dev/null @@ -1,82 +0,0 @@ -/* -FUNCTION - <>---character string length - -INDEX - strlen - -SYNOPSIS - #include - size_t strlen(const char *<[str]>); - -DESCRIPTION - The <> function works out the length of the string - starting at <<*<[str]>>> by counting chararacters until it - reaches a <> character. - -RETURNS - <> returns the character count. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strlen ansi pure -*/ - -#include <_ansi.h> -#include -#include - -#define LBLOCKSIZE (sizeof (long)) -#define UNALIGNED(X) ((long)X & (LBLOCKSIZE - 1)) - -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -size_t -strlen (const char *str) -{ - const char *start = str; - -#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) - unsigned long *aligned_addr; - - /* Align the pointer, so we can search a word at a time. */ - while (UNALIGNED (str)) - { - if (!*str) - return str - start; - str++; - } - - /* If the string is word-aligned, we can check for the presence of - a null in each word-sized block. */ - aligned_addr = (unsigned long *)str; - while (!DETECTNULL (*aligned_addr)) - aligned_addr++; - - /* Once a null is detected, we check each byte in that block for a - precise position of the null. */ - str = (char *) aligned_addr; - -#endif /* not PREFER_SIZE_OVER_SPEED */ - - while (*str) - str++; - return str - start; -} diff --git a/lib/string/strlwr.c b/lib/string/strlwr.c deleted file mode 100644 index 7211c59..0000000 --- a/lib/string/strlwr.c +++ /dev/null @@ -1,40 +0,0 @@ -/* -FUNCTION - <>---force string to lowercase - -INDEX - strlwr - -SYNOPSIS - #include - char *strlwr(char *<[a]>); - -DESCRIPTION - <> converts each character in the string at <[a]> to - lowercase. - -RETURNS - <> returns its argument, <[a]>. - -PORTABILITY -<> is not widely portable. - -<> requires no supporting OS subroutines. - -QUICKREF - strlwr -*/ - -#include -#include - -char * -strlwr (char *s) -{ - unsigned char *ucs = (unsigned char *) s; - for ( ; *ucs != '\0'; ucs++) - { - *ucs = tolower(*ucs); - } - return s; -} diff --git a/lib/string/strncasecmp.c b/lib/string/strncasecmp.c deleted file mode 100644 index 09dd98b..0000000 --- a/lib/string/strncasecmp.c +++ /dev/null @@ -1,53 +0,0 @@ -/* -FUNCTION - <>---case-insensitive character string compare - -INDEX - strncasecmp - -SYNOPSIS - #include - int strncasecmp(const char *<[a]>, const char * <[b]>, size_t <[length]>); - -DESCRIPTION - <> compares up to <[length]> characters - from the string at <[a]> to the string at <[b]> in a - case-insensitive manner. - -RETURNS - - If <<*<[a]>>> sorts lexicographically after <<*<[b]>>> (after - both are converted to lowercase), <> returns a - number greater than zero. If the two strings are equivalent, - <> returns zero. If <<*<[a]>>> sorts - lexicographically before <<*<[b]>>>, <> returns a - number less than zero. - -PORTABILITY -<> is in the Berkeley Software Distribution. - -<> requires no supporting OS subroutines. It uses -tolower() from elsewhere in this library. - -QUICKREF - strncasecmp -*/ - -#include -#include - -int -strncasecmp (const char *s1, - const char *s2, - size_t n) -{ - int d = 0; - for ( ; n != 0; n--) - { - const int c1 = tolower(*s1++); - const int c2 = tolower(*s2++); - if (((d = c1 - c2) != 0) || (c2 == '\0')) - break; - } - return d; -} diff --git a/lib/string/strncasecmp_l.c b/lib/string/strncasecmp_l.c deleted file mode 100644 index b15c6c5..0000000 --- a/lib/string/strncasecmp_l.c +++ /dev/null @@ -1,56 +0,0 @@ -/* -FUNCTION - <>---case-insensitive character string compare - -INDEX - strncasecmp_l - -SYNOPSIS - #include - int strncasecmp_l(const char *<[a]>, const char * <[b]>, - size_t <[length]>, locale_t <[locale]>); - -DESCRIPTION - <> compares up to <[length]> characters - from the string at <[a]> to the string at <[b]> in a - case-insensitive manner. - - if <[locale]> is LC_GLOBAL_LOCALE or not a valid locale object, the - behaviour is undefined. - -RETURNS - - If <<*<[a]>>> sorts lexicographically after <<*<[b]>>> (after - both are converted to lowercase), <> returns a - number greater than zero. If the two strings are equivalent, - <> returns zero. If <<*<[a]>>> sorts - lexicographically before <<*<[b]>>>, <> returns a - number less than zero. - -PORTABILITY -<> is POSIX-1.2008. - -<> requires no supporting OS subroutines. It uses -tolower_l() from elsewhere in this library. - -QUICKREF - strncasecmp_l -*/ - -#include -#include - -int -strncasecmp_l (const char *s1, const char *s2, size_t n, - struct __locale_t *locale) -{ - int d = 0; - for ( ; n != 0; n--) - { - const int c1 = tolower_l (*s1++, locale); - const int c2 = tolower_l (*s2++, locale); - if (((d = c1 - c2) != 0) || (c2 == '\0')) - break; - } - return d; -} diff --git a/lib/string/strncat.c b/lib/string/strncat.c deleted file mode 100644 index 7351913..0000000 --- a/lib/string/strncat.c +++ /dev/null @@ -1,107 +0,0 @@ -/* -FUNCTION - <>---concatenate strings - -INDEX - strncat - -SYNOPSIS - #include - char *strncat(char *restrict <[dst]>, const char *restrict <[src]>, - size_t <[length]>); - -DESCRIPTION - <> appends not more than <[length]> characters from - the string pointed to by <[src]> (including the terminating - null character) to the end of the string pointed to by - <[dst]>. The initial character of <[src]> overwrites the null - character at the end of <[dst]>. A terminating null character - is always appended to the result - -WARNINGS - Note that a null is always appended, so that if the copy is - limited by the <[length]> argument, the number of characters - appended to <[dst]> is <>. - -RETURNS - This function returns the initial value of <[dst]> - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strncat ansi pure -*/ - -#include -#include - -/* Nonzero if X is aligned on a "long" boundary. */ -#define ALIGNED(X) \ - (((long)X & (sizeof (long) - 1)) == 0) - -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -char * -strncat (char *__restrict s1, - const char *__restrict s2, - size_t n) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - char *s = s1; - - while (*s1) - s1++; - while (n-- != 0 && (*s1++ = *s2++)) - { - if (n == 0) - *s1 = '\0'; - } - - return s; -#else - char *s = s1; - - /* Skip over the data in s1 as quickly as possible. */ - if (ALIGNED (s1)) - { - unsigned long *aligned_s1 = (unsigned long *)s1; - while (!DETECTNULL (*aligned_s1)) - aligned_s1++; - - s1 = (char *)aligned_s1; - } - - while (*s1) - s1++; - - /* s1 now points to the its trailing null character, now copy - up to N bytes from S2 into S1 stopping if a NULL is encountered - in S2. - - It is not safe to use strncpy here since it copies EXACTLY N - characters, NULL padding if necessary. */ - while (n-- != 0 && (*s1++ = *s2++)) - { - if (n == 0) - *s1 = '\0'; - } - - return s; -#endif /* not PREFER_SIZE_OVER_SPEED */ -} diff --git a/lib/string/strncmp.c b/lib/string/strncmp.c deleted file mode 100644 index 16f8a77..0000000 --- a/lib/string/strncmp.c +++ /dev/null @@ -1,114 +0,0 @@ -/* -FUNCTION - <>---character string compare - -INDEX - strncmp - -SYNOPSIS - #include - int strncmp(const char *<[a]>, const char * <[b]>, size_t <[length]>); - -DESCRIPTION - <> compares up to <[length]> characters - from the string at <[a]> to the string at <[b]>. - -RETURNS - If <<*<[a]>>> sorts lexicographically after <<*<[b]>>>, - <> returns a number greater than zero. If the two - strings are equivalent, <> returns zero. If <<*<[a]>>> - sorts lexicographically before <<*<[b]>>>, <> returns a - number less than zero. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strncmp ansi pure -*/ - -#include -#include - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X, Y) \ - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) - -/* DETECTNULL returns nonzero if (long)X contains a NULL byte. */ -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -int -strncmp (const char *s1, - const char *s2, - size_t n) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - if (n == 0) - return 0; - - while (n-- != 0 && *s1 == *s2) - { - if (n == 0 || *s1 == '\0') - break; - s1++; - s2++; - } - - return (*(unsigned char *) s1) - (*(unsigned char *) s2); -#else - unsigned long *a1; - unsigned long *a2; - - if (n == 0) - return 0; - - /* If s1 or s2 are unaligned, then compare bytes. */ - if (!UNALIGNED (s1, s2)) - { - /* If s1 and s2 are word-aligned, compare them a word at a time. */ - a1 = (unsigned long*)s1; - a2 = (unsigned long*)s2; - while (n >= sizeof (long) && *a1 == *a2) - { - n -= sizeof (long); - - /* If we've run out of bytes or hit a null, return zero - since we already know *a1 == *a2. */ - if (n == 0 || DETECTNULL (*a1)) - return 0; - - a1++; - a2++; - } - - /* A difference was detected in last few bytes of s1, so search bytewise */ - s1 = (char*)a1; - s2 = (char*)a2; - } - - while (n-- > 0 && *s1 == *s2) - { - /* If we've run out of bytes or hit a null, return zero - since we already know *s1 == *s2. */ - if (n == 0 || *s1 == '\0') - return 0; - s1++; - s2++; - } - return (*(unsigned char *) s1) - (*(unsigned char *) s2); -#endif /* not PREFER_SIZE_OVER_SPEED */ -} diff --git a/lib/string/strncpy.c b/lib/string/strncpy.c deleted file mode 100644 index e7eb34d..0000000 --- a/lib/string/strncpy.c +++ /dev/null @@ -1,118 +0,0 @@ -/* -FUNCTION - <>---counted copy string - -INDEX - strncpy - -SYNOPSIS - #include - char *strncpy(char *restrict <[dst]>, const char *restrict <[src]>, - size_t <[length]>); - -DESCRIPTION - <> copies not more than <[length]> characters from the - the string pointed to by <[src]> (including the terminating - null character) to the array pointed to by <[dst]>. If the - string pointed to by <[src]> is shorter than <[length]> - characters, null characters are appended to the destination - array until a total of <[length]> characters have been - written. - -RETURNS - This function returns the initial value of <[dst]>. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strncpy ansi pure -*/ - -#include -#include - -/*SUPPRESS 560*/ -/*SUPPRESS 530*/ - -/* Nonzero if either X or Y is not aligned on a "long" boundary. */ -#define UNALIGNED(X, Y) \ - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) - -#if LONG_MAX == 2147483647L -#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) -#else -#if LONG_MAX == 9223372036854775807L -/* Nonzero if X (a long int) contains a NULL byte. */ -#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) -#else -#error long int is not a 32bit or 64bit type. -#endif -#endif - -#ifndef DETECTNULL -#error long int is not a 32bit or 64bit byte -#endif - -#define TOO_SMALL(LEN) ((LEN) < sizeof (long)) - -char * -strncpy (char *__restrict dst0, - const char *__restrict src0, - size_t count) -{ -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) - char *dscan; - const char *sscan; - - dscan = dst0; - sscan = src0; - while (count > 0) - { - --count; - if ((*dscan++ = *sscan++) == '\0') - break; - } - while (count-- > 0) - *dscan++ = '\0'; - - return dst0; -#else - char *dst = dst0; - const char *src = src0; - long *aligned_dst; - const long *aligned_src; - - /* If SRC and DEST is aligned and count large enough, then copy words. */ - if (!UNALIGNED (src, dst) && !TOO_SMALL (count)) - { - aligned_dst = (long*)dst; - aligned_src = (long*)src; - - /* SRC and DEST are both "long int" aligned, try to do "long int" - sized copies. */ - while (count >= sizeof (long int) && !DETECTNULL(*aligned_src)) - { - count -= sizeof (long int); - *aligned_dst++ = *aligned_src++; - } - - dst = (char*)aligned_dst; - src = (char*)aligned_src; - } - - while (count > 0) - { - --count; - if ((*dst++ = *src++) == '\0') - break; - } - - while (count-- > 0) - *dst++ = '\0'; - - return dst0; -#endif /* not PREFER_SIZE_OVER_SPEED */ -} diff --git a/lib/string/strndup.c b/lib/string/strndup.c deleted file mode 100644 index 3ac890a..0000000 --- a/lib/string/strndup.c +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef _REENT_ONLY - -#include <_ansi.h> -#include -#include -#include - -char * -strndup (const char *str, - size_t n) -{ - return _strndup_r (_REENT, str, n); -} - -#endif /* !_REENT_ONLY */ diff --git a/lib/string/strndup_r.c b/lib/string/strndup_r.c deleted file mode 100644 index 1b6cf84..0000000 --- a/lib/string/strndup_r.c +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -#include - -char * -_strndup_r (struct _reent *reent_ptr, - const char *str, - size_t n) -{ - const char *ptr = str; - size_t len; - char *copy; - - while (n-- > 0 && *ptr) - ptr++; - - len = ptr - str; - - copy = _malloc_r (reent_ptr, len + 1); - if (copy) - { - memcpy (copy, str, len); - copy[len] = '\0'; - } - return copy; -} diff --git a/lib/string/strnlen.c b/lib/string/strnlen.c deleted file mode 100644 index 3ee18d1..0000000 --- a/lib/string/strnlen.c +++ /dev/null @@ -1,42 +0,0 @@ -/* -FUNCTION - <>---character string length - -INDEX - strnlen - -SYNOPSIS - #include - size_t strnlen(const char *<[str]>, size_t <[n]>); - -DESCRIPTION - The <> function works out the length of the string - starting at <<*<[str]>>> by counting chararacters until it - reaches a NUL character or the maximum: <[n]> number of - characters have been inspected. - -RETURNS - <> returns the character count or <[n]>. - -PORTABILITY -<> is a GNU extension. - -<> requires no supporting OS subroutines. - -*/ - -#undef __STRICT_ANSI__ -#include <_ansi.h> -#include - -size_t -strnlen (const char *str, - size_t n) -{ - const char *start = str; - - while (n-- > 0 && *str) - str++; - - return str - start; -} diff --git a/lib/string/strnstr.c b/lib/string/strnstr.c deleted file mode 100644 index cb5f719..0000000 --- a/lib/string/strnstr.c +++ /dev/null @@ -1,51 +0,0 @@ -/* -FUNCTION - <>---find string segment - -INDEX - strnstr - -SYNOPSIS - #include - size_t strnstr(const char *<[s1]>, const char *<[s2]>, size_t <[n]>); - -DESCRIPTION - Locates the first occurrence in the string pointed to by <[s1]> of - the sequence of limited to the <[n]> characters in the string - pointed to by <[s2]> - -RETURNS - Returns a pointer to the located string segment, or a null - pointer if the string <[s2]> is not found. If <[s2]> points to - a string with zero length, <[s1]> is returned. - - -PORTABILITY -<> is a BSD extension. - -<> requires no supporting OS subroutines. - -QUICKREF - strnstr pure - -*/ - -#define _GNU_SOURCE -#include - -/* - * Find the first occurrence of find in s, where the search is limited to the - * first slen characters of s. - */ -char * -strnstr(const char *haystack, const char *needle, size_t haystack_len) -{ - size_t needle_len = strnlen(needle, haystack_len); - - if (needle_len < haystack_len || !needle[needle_len]) { - char *x = memmem(haystack, haystack_len, needle, needle_len); - if (x && !memchr(haystack, 0, x - haystack)) - return x; - } - return NULL; -} diff --git a/lib/string/strpbrk.c b/lib/string/strpbrk.c deleted file mode 100644 index 774db1e..0000000 --- a/lib/string/strpbrk.c +++ /dev/null @@ -1,51 +0,0 @@ -/* -FUNCTION - <>---find characters in string - -INDEX - strpbrk - -SYNOPSIS - #include - char *strpbrk(const char *<[s1]>, const char *<[s2]>); - -DESCRIPTION - This function locates the first occurence in the string - pointed to by <[s1]> of any character in string pointed to by - <[s2]> (excluding the terminating null character). - -RETURNS - <> returns a pointer to the character found in <[s1]>, or a - null pointer if no character from <[s2]> occurs in <[s1]>. - -PORTABILITY -<> requires no supporting OS subroutines. -*/ - -#include - -char * -strpbrk (const char *s1, - const char *s2) -{ - const char *c = s2; - if (!*s1) - return (char *) NULL; - - while (*s1) - { - for (c = s2; *c; c++) - { - if (*s1 == *c) - break; - } - if (*c) - break; - s1++; - } - - if (*c == '\0') - s1 = NULL; - - return (char *) s1; -} diff --git a/lib/string/strrchr.c b/lib/string/strrchr.c deleted file mode 100644 index 35a7060..0000000 --- a/lib/string/strrchr.c +++ /dev/null @@ -1,53 +0,0 @@ -/* -FUNCTION - <>---reverse search for character in string - -INDEX - strrchr - -SYNOPSIS - #include - char * strrchr(const char *<[string]>, int <[c]>); - -DESCRIPTION - This function finds the last occurence of <[c]> (converted to - a char) in the string pointed to by <[string]> (including the - terminating null character). - -RETURNS - Returns a pointer to the located character, or a null pointer - if <[c]> does not occur in <[string]>. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strrchr ansi pure -*/ - -#include - -char * -strrchr (const char *s, - int i) -{ - const char *last = NULL; - char c = i; - - if (c) - { - while ((s=strchr(s, c))) - { - last = s; - s++; - } - } - else - { - last = strchr(s, c); - } - - return (char *) last; -} diff --git a/lib/string/strsep.c b/lib/string/strsep.c deleted file mode 100644 index e1262ac..0000000 --- a/lib/string/strsep.c +++ /dev/null @@ -1,18 +0,0 @@ -/* BSD strsep function */ - -/* Copyright 2002, Red Hat Inc. */ - -/* undef STRICT_ANSI so that strsep prototype will be defined */ -#undef __STRICT_ANSI__ -#include -#include <_ansi.h> -#include - -extern char *__strtok_r (char *, const char *, char **, int); - -char * -strsep (register char **source_ptr, - register const char *delim) -{ - return __strtok_r (*source_ptr, delim, source_ptr, 0); -} diff --git a/lib/string/strsignal.c b/lib/string/strsignal.c deleted file mode 100644 index 89d39fe..0000000 --- a/lib/string/strsignal.c +++ /dev/null @@ -1,253 +0,0 @@ -/* -FUNCTION - <>---convert signal number to string - -INDEX - strsignal - -SYNOPSIS - #include - char *strsignal(int <[signal]>); - -DESCRIPTION -<> converts the signal number <[signal]> into a -string. If <[signal]> is not a known signal number, the result -will be of the form "Unknown signal NN" where NN is the <[signal]> -is a decimal number. - -RETURNS -This function returns a pointer to a string. Your application must -not modify that string. - -PORTABILITY -POSIX.1-2008 C requires <>, but does not specify the strings used -for each signal number. - -<> requires no supporting OS subroutines. - -QUICKREF - strsignal pure -*/ - -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 2010, 2017. - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - */ - -#include -#include -#include -#include -#include - -#ifdef _REENT_THREAD_LOCAL -_Thread_local char _tls_signal_buf[_REENT_SIGNAL_SIZE]; -#endif - -char * -strsignal (int signal) -{ - char *buffer; - struct _reent *ptr; - - ptr = _REENT; - - _REENT_CHECK_SIGNAL_BUF(ptr); - buffer = _REENT_SIGNAL_BUF(ptr); - -#if defined(SIGRTMIN) && defined(SIGRTMAX) - if ((signal >= SIGRTMIN) && (signal <= SIGRTMAX)) { - siprintf (buffer, "Real-time signal %d", signal - SIGRTMIN); - return buffer; - } -#endif - - switch (signal) { -#ifdef SIGHUP - case SIGHUP: - buffer = "Hangup"; - break; -#endif -#ifdef SIGINT - case SIGINT: - buffer = "Interrupt"; - break; -#endif -#ifdef SIGQUIT - case SIGQUIT: - buffer = "Quit"; - break; -#endif -#ifdef SIGILL - case SIGILL: - buffer = "Illegal instruction"; - break; -#endif -#ifdef SIGTRAP - case SIGTRAP: - buffer = "Trace/breakpoint trap"; - break; -#endif -#ifdef SIGIOT - #if defined(SIGABRT) && (SIGIOT != SIGABRT) - case SIGABRT: - #endif - case SIGIOT: - buffer = "IOT trap"; - break; -#endif -#ifdef SIGEMT - case SIGEMT: - buffer = "EMT trap"; - break; -#endif -#ifdef SIGFPE - case SIGFPE: - buffer = "Floating point exception"; - break; -#endif -#ifdef SIGKILL - case SIGKILL: - buffer = "Killed"; - break; -#endif -#ifdef SIGBUS - case SIGBUS: - buffer = "Bus error"; - break; -#endif -#ifdef SIGSEGV - case SIGSEGV: - buffer = "Segmentation fault"; - break; -#endif -#ifdef SIGSYS - case SIGSYS: - buffer = "Bad system call"; - break; -#endif -#ifdef SIGPIPE - case SIGPIPE: - buffer = "Broken pipe"; - break; -#endif -#ifdef SIGALRM - case SIGALRM: - buffer = "Alarm clock"; - break; -#endif -#ifdef SIGTERM - case SIGTERM: - buffer = "Terminated"; - break; -#endif -#ifdef SIGURG - case SIGURG: - buffer = "Urgent I/O condition"; - break; -#endif -#ifdef SIGSTOP - case SIGSTOP: - buffer = "Stopped (signal)"; - break; -#endif -#ifdef SIGTSTP - case SIGTSTP: - buffer = "Stopped"; - break; -#endif -#ifdef SIGCONT - case SIGCONT: - buffer = "Continued"; - break; -#endif -#ifdef SIGCHLD - #if defined(SIGCLD) && (SIGCHLD != SIGCLD) - case SIGCLD: - #endif - case SIGCHLD: - buffer = "Child exited"; - break; -#endif -#ifdef SIGTTIN - case SIGTTIN: - buffer = "Stopped (tty input)"; - break; -#endif -#ifdef SIGTTOUT - case SIGTTOUT: - buffer = "Stopped (tty output)"; - break; -#endif -#ifdef SIGIO - #if defined(SIGPOLL) && (SIGIO != SIGPOLL) - case SIGPOLL: - #endif - case SIGIO: - buffer = "I/O possible"; - break; -#endif -#ifdef SIGWINCH - case SIGWINCH: - buffer = "Window changed"; - break; -#endif -#ifdef SIGUSR1 - case SIGUSR1: - buffer = "User defined signal 1"; - break; -#endif -#ifdef SIGUSR2 - case SIGUSR2: - buffer = "User defined signal 2"; - break; -#endif -#ifdef SIGPWR - case SIGPWR: - buffer = "Power Failure"; - break; -#endif -#ifdef SIGXCPU - case SIGXCPU: - buffer = "CPU time limit exceeded"; - break; -#endif -#ifdef SIGXFSZ - case SIGXFSZ: - buffer = "File size limit exceeded"; - break; -#endif -#ifdef SIGVTALRM - case SIGVTALRM : - buffer = "Virtual timer expired"; - break; -#endif -#ifdef SIGPROF - case SIGPROF: - buffer = "Profiling timer expired"; - break; -#endif -#if defined(SIGLOST) && SIGLOST != SIGPWR - case SIGLOST: - buffer = "Resource lost"; - break; -#endif - default: - siprintf (buffer, "Unknown signal %d", signal); - break; - } - - return buffer; -} diff --git a/lib/string/strspn.c b/lib/string/strspn.c deleted file mode 100644 index baf2399..0000000 --- a/lib/string/strspn.c +++ /dev/null @@ -1,52 +0,0 @@ -/* -FUNCTION - <>---find initial match - -INDEX - strspn - -SYNOPSIS - #include - size_t strspn(const char *<[s1]>, const char *<[s2]>); - -DESCRIPTION - This function computes the length of the initial segment of - the string pointed to by <[s1]> which consists entirely of - characters from the string pointed to by <[s2]> (excluding the - terminating null character). - -RETURNS - <> returns the length of the segment found. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strspn ansi pure -*/ - -#include - -size_t -strspn (const char *s1, - const char *s2) -{ - const char *s = s1; - const char *c; - - while (*s1) - { - for (c = s2; *c; c++) - { - if (*s1 == *c) - break; - } - if (*c == '\0') - break; - s1++; - } - - return s1 - s; -} diff --git a/lib/string/strstr.c b/lib/string/strstr.c deleted file mode 100644 index 84e4632..0000000 --- a/lib/string/strstr.c +++ /dev/null @@ -1,204 +0,0 @@ -/* Optimized strstr function. - Copyright (c) 2018 Arm Ltd. All rights reserved. - - SPDX-License-Identifier: BSD-3-Clause - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. The name of the company may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/* -FUNCTION - <>---find string segment - -INDEX - strstr - -SYNOPSIS - #include - char *strstr(const char *<[s1]>, const char *<[s2]>); - -DESCRIPTION - Locates the first occurrence in the string pointed to by <[s1]> of - the sequence of characters in the string pointed to by <[s2]> - (excluding the terminating null character). - -RETURNS - Returns a pointer to the located string segment, or a null - pointer if the string <[s2]> is not found. If <[s2]> points to - a string with zero length, <[s1]> is returned. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strstr ansi pure -*/ - -#include -#include - -#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) \ - || CHAR_BIT > 8 - -/* Small and efficient strstr implementation. */ -char * -strstr (const char *hs, const char *ne) -{ - size_t i; - int c = ne[0]; - - if (c == 0) - return (char*)hs; - - for ( ; hs[0] != '\0'; hs++) - { - if (hs[0] != c) - continue; - for (i = 1; ne[i] != 0; i++) - if (hs[i] != ne[i]) - break; - if (ne[i] == '\0') - return (char*)hs; - } - - return NULL; -} - -#else /* compilation for speed */ - -# define RETURN_TYPE char * -# define AVAILABLE(h, h_l, j, n_l) (((j) <= (h_l) - (n_l)) \ - || ((h_l) += strnlen ((const char *) (h) + (h_l), (n_l) | 2048), ((j) <= (h_l) - (n_l)))) - -# include "str-two-way.h" - -/* Number of bits used to index shift table. */ -#define SHIFT_TABLE_BITS 6 - -static inline char * -strstr2 (const unsigned char *hs, const unsigned char *ne) -{ - uint32_t h1 = (ne[0] << 16) | ne[1]; - uint32_t h2 = 0; - int c; - for (c = hs[0]; h1 != h2 && c != 0; c = *++hs) - h2 = (h2 << 16) | c; - return h1 == h2 ? (char *)hs - 2 : NULL; -} - -static inline char * -strstr3 (const unsigned char *hs, const unsigned char *ne) -{ - uint32_t h1 = (ne[0] << 24) | (ne[1] << 16) | (ne[2] << 8); - uint32_t h2 = 0; - int c; - for (c = hs[0]; h1 != h2 && c != 0; c = *++hs) - h2 = (h2 | c) << 8; - return h1 == h2 ? (char *)hs - 3 : NULL; -} - -static inline char * -strstr4 (const unsigned char *hs, const unsigned char *ne) -{ - uint32_t h1 = (ne[0] << 24) | (ne[1] << 16) | (ne[2] << 8) | ne[3]; - uint32_t h2 = 0; - int c; - for (c = hs[0]; c != 0 && h1 != h2; c = *++hs) - h2 = (h2 << 8) | c; - return h1 == h2 ? (char *)hs - 4 : NULL; -} - -/* Extremely fast strstr algorithm with guaranteed linear-time performance. - Small needles up to size 4 use a dedicated linear search. Longer needles - up to size 254 use Sunday's Quick-Search algorithm. Due to its simplicity - it has the best average performance of string matching algorithms on almost - all inputs. It uses a bad-character shift table to skip past mismatches. - By limiting the needle length to 254, the shift table can be reduced to 8 - bits per entry, lowering preprocessing overhead and minimizing cache effects. - The limit also implies the worst-case performance is linear. - Even larger needles are processed by the linear-time Two-Way algorithm. -*/ -char * -strstr (const char *haystack, const char *needle) -{ - const unsigned char *hs = (const unsigned char *) haystack; - const unsigned char *ne = (const unsigned char *) needle; - int i; - - /* Handle short needle special cases first. */ - if (ne[0] == '\0') - return (char *) hs; - if (ne[1] == '\0') - return (char*)strchr ((const char *) hs, ne[0]); - if (ne[2] == '\0') - return strstr2 (hs, ne); - if (ne[3] == '\0') - return strstr3 (hs, ne); - if (ne[4] == '\0') - return strstr4 (hs, ne); - - size_t ne_len = strlen ((const char *) ne); - size_t hs_len = strnlen ((const char *) hs, ne_len | 512); - - /* Ensure haystack length is >= needle length. */ - if (hs_len < ne_len) - return NULL; - - /* Use the Quick-Search algorithm for needle lengths less than 255. */ - if (__builtin_expect (ne_len < 255, 1)) - { - uint8_t shift[1 << SHIFT_TABLE_BITS]; - const unsigned char *end = hs + hs_len - ne_len; - - /* Initialize bad character shift hash table. */ - memset (shift, ne_len + 1, sizeof (shift)); - for (i = 0; i < ne_len; i++) - shift[ne[i] % sizeof (shift)] = ne_len - i; - - do - { - hs--; - - /* Search by skipping past bad characters. */ - size_t tmp = shift[hs[ne_len] % sizeof (shift)]; - for (hs += tmp; hs <= end; hs += tmp) - { - tmp = shift[hs[ne_len] % sizeof (shift)]; - if (memcmp (hs, ne, ne_len) == 0) - return (char*) hs; - } - if (end[ne_len] == 0) - return NULL; - end += strnlen ((const char *) (end + ne_len), 2048); - } - while (hs <= end); - - return NULL; - } - - /* Use Two-Way algorithm for very long needles. */ - return two_way_long_needle (hs, hs_len, ne, ne_len); -} -#endif /* compilation for speed */ diff --git a/lib/string/strtok.c b/lib/string/strtok.c deleted file mode 100644 index 2a11c91..0000000 --- a/lib/string/strtok.c +++ /dev/null @@ -1,94 +0,0 @@ -/* -FUNCTION - <>, <>, <>---get next token from a string - -INDEX - strtok - -INDEX - strtok_r - -INDEX - strsep - -SYNOPSIS - #include - char *strtok(char *restrict <[source]>, - const char *restrict <[delimiters]>); - char *strtok_r(char *restrict <[source]>, - const char *restrict <[delimiters]>, - char **<[lasts]>); - char *strsep(char **<[source_ptr]>, const char *<[delimiters]>); - -DESCRIPTION - The <> function is used to isolate sequential tokens in a - null-terminated string, <<*<[source]>>>. These tokens are delimited - in the string by at least one of the characters in <<*<[delimiters]>>>. - The first time that <> is called, <<*<[source]>>> should be - specified; subsequent calls, wishing to obtain further tokens from - the same string, should pass a null pointer instead. The separator - string, <<*<[delimiters]>>>, must be supplied each time and may - change between calls. - - The <> function returns a pointer to the beginning of each - subsequent token in the string, after replacing the separator - character itself with a null character. When no more tokens remain, - a null pointer is returned. - - The <> function has the same behavior as <>, except - a pointer to placeholder <<*<[lasts]>>> must be supplied by the caller. - - The <> function is similar in behavior to <>, except - a pointer to the string pointer must be supplied <<<[source_ptr]>>> and - the function does not skip leading delimiters. When the string starts - with a delimiter, the delimiter is changed to the null character and - the empty string is returned. Like <> and <>, the - <<*<[source_ptr]>>> is updated to the next character following the - last delimiter found or NULL if the end of string is reached with - no more delimiters. - -RETURNS - <>, <>, and <> all return a pointer to the - next token, or <> if no more tokens can be found. For - <>, a token may be the empty string. - -NOTES - <> is unsafe for multi-threaded applications. <> - and <> are thread-safe and should be used instead. - -PORTABILITY -<> is ANSI C. -<> is POSIX. -<> is a BSD extension. - -<>, <>, and <> require no supporting OS subroutines. - -QUICKREF - strtok ansi impure -*/ - -/* undef STRICT_ANSI so that strtok_r prototype will be defined */ -#undef __STRICT_ANSI__ -#include -#include -#include <_ansi.h> -#include - -#ifdef _REENT_THREAD_LOCAL -_Thread_local char *_tls_strtok_last; -#endif - -#ifndef _REENT_ONLY - -extern char *__strtok_r (char *, const char *, char **, int); - -char * -strtok (register char *__restrict s, - register const char *__restrict delim) -{ - struct _reent *reent = _REENT; - - _REENT_CHECK_MISC(reent); - return __strtok_r (s, delim, &(_REENT_STRTOK_LAST(reent)), 1); -} -#endif diff --git a/lib/string/strtok_r.c b/lib/string/strtok_r.c deleted file mode 100644 index d17fd69..0000000 --- a/lib/string/strtok_r.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 1988 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -char * -__strtok_r (register char *s, - register const char *delim, - char **lasts, - int skip_leading_delim) -{ - register char *spanp; - register int c, sc; - char *tok; - - - if (s == NULL && (s = *lasts) == NULL) - return (NULL); - - /* - * Skip (span) leading delimiters (s += strspn(s, delim), sort of). - */ -cont: - c = *s++; - for (spanp = (char *)delim; (sc = *spanp++) != 0;) { - if (c == sc) { - if (skip_leading_delim) { - goto cont; - } - else { - *lasts = s; - s[-1] = 0; - return (s - 1); - } - } - } - - if (c == 0) { /* no non-delimiter characters */ - *lasts = NULL; - return (NULL); - } - tok = s - 1; - - /* - * Scan token (scan for delimiters: s += strcspn(s, delim), sort of). - * Note that delim must have one NUL; we stop if we see that, too. - */ - for (;;) { - c = *s++; - spanp = (char *)delim; - do { - if ((sc = *spanp++) == c) { - if (c == 0) - s = NULL; - else - s[-1] = 0; - *lasts = s; - return (tok); - } - } while (sc != 0); - } - /* NOTREACHED */ -} - -char * -strtok_r (register char *__restrict s, - register const char *__restrict delim, - char **__restrict lasts) -{ - return __strtok_r (s, delim, lasts, 1); -} diff --git a/lib/string/strupr.c b/lib/string/strupr.c deleted file mode 100644 index a175d5c..0000000 --- a/lib/string/strupr.c +++ /dev/null @@ -1,40 +0,0 @@ -/* -FUNCTION - <>---force string to uppercase - -INDEX - strupr - -SYNOPSIS - #include - char *strupr(char *<[a]>); - -DESCRIPTION - <> converts each character in the string at <[a]> to - uppercase. - -RETURNS - <> returns its argument, <[a]>. - -PORTABILITY -<> is not widely portable. - -<> requires no supporting OS subroutines. - -QUICKREF - strupr -*/ - -#include -#include - -char * -strupr (char *s) -{ - unsigned char *ucs = (unsigned char *) s; - for ( ; *ucs != '\0'; ucs++) - { - *ucs = toupper(*ucs); - } - return s; -} diff --git a/lib/string/strverscmp.c b/lib/string/strverscmp.c deleted file mode 100644 index 04aa721..0000000 --- a/lib/string/strverscmp.c +++ /dev/null @@ -1,92 +0,0 @@ -/* -FUNCTION - <>---version string compare - -INDEX - strverscmp - -SYNOPSIS - #define _GNU_SOURCE - #include - int strverscmp(const char *<[a]>, const char *<[b]>); - -DESCRIPTION - <> compares the string at <[a]> to - the string at <[b]> in a version-logical order. - -RETURNS - - If <<*<[a]>>> version-sorts after <<*<[b]>>>, <> returns - a number greater than zero. If the two strings match, <> - returns zero. If <<*<[a]>>> version-sorts before <<*<[b]>>>, - <> returns a number less than zero. - -PORTABILITY -<> is a GNU extension. - -<> requires no supporting OS subroutines. It uses -isdigit() from elsewhere in this library. - -QUICKREF - strverscmp -*/ - -/* -From musl src/string/strverscmp.c - -Copyright © 2005-2014 Rich Felker, et al. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#define _GNU_SOURCE -#include -#include - -int strverscmp(const char *l0, const char *r0) -{ - const unsigned char *l = (const void *)l0; - const unsigned char *r = (const void *)r0; - size_t i, dp, j; - int z = 1; - - /* Find maximal matching prefix and track its maximal digit - * suffix and whether those digits are all zeros. */ - for (dp=i=0; l[i]==r[i]; i++) { - int c = l[i]; - if (!c) return 0; - if (!isdigit(c)) dp=i+1, z=1; - else if (c!='0') z=0; - } - - if (l[dp]!='0' && r[dp]!='0') { - /* If we're not looking at a digit sequence that began - * with a zero, longest digit string is greater. */ - for (j=i; isdigit(l[j]); j++) - if (!isdigit(r[j])) return 1; - if (isdigit(r[j])) return -1; - } else if (z && dp>---transform string - -INDEX - strxfrm - -SYNOPSIS - #include - size_t strxfrm(char *restrict <[s1]>, const char *restrict <[s2]>, - size_t <[n]>); - -DESCRIPTION - This function transforms the string pointed to by <[s2]> and - places the resulting string into the array pointed to by - <[s1]>. The transformation is such that if the <> - function is applied to the two transformed strings, it returns - a value greater than, equal to, or less than zero, - correspoinding to the result of a <> function applied - to the same two original strings. - - No more than <[n]> characters are placed into the resulting - array pointed to by <[s1]>, including the terminating null - character. If <[n]> is zero, <[s1]> may be a null pointer. If - copying takes place between objects that overlap, the behavior - is undefined. - - (NOT Cygwin:) The current implementation of <> simply copies - the input and does not support any language-specific transformations. - -RETURNS - The <> function returns the length of the transformed string - (not including the terminating null character). If the value returned - is <[n]> or more, the contents of the array pointed to by - <[s1]> are indeterminate. - -PORTABILITY -<> is ANSI C. - -<> requires no supporting OS subroutines. - -QUICKREF - strxfrm ansi pure -*/ - -#include - -size_t -strxfrm (char *__restrict s1, - const char *__restrict s2, - size_t n) -{ - size_t res; - res = 0; - while (n-- > 0) - { - if ((*s1++ = *s2++) != '\0') - ++res; - else - return res; - } - while (*s2) - { - ++s2; - ++res; - } - - return res; -} diff --git a/lib/string/strxfrm_l.c b/lib/string/strxfrm_l.c deleted file mode 100644 index 0ac5243..0000000 --- a/lib/string/strxfrm_l.c +++ /dev/null @@ -1,71 +0,0 @@ -/* -FUNCTION - <>---transform string - -INDEX - strxfrm_l - -SYNOPSIS - #include - size_t strxfrm_l(char *restrict <[s1]>, const char *restrict <[s2]>, - size_t <[n]>, locale_t <[locale]>); - -DESCRIPTION - This function transforms the string pointed to by <[s2]> and - places the resulting string into the array pointed to by - <[s1]>. The transformation is such that if the <> - function is applied to the two transformed strings, it returns - a value greater than, equal to, or less than zero, - correspoinding to the result of a <> function applied - to the same two original strings. - - No more than <[n]> characters are placed into the resulting - array pointed to by <[s1]>, including the terminating null - character. If <[n]> is zero, <[s1]> may be a null pointer. If - copying takes place between objects that overlap, the behavior - is undefined. - - (NOT Cygwin:) The current implementation of <> simply copies - the input and does not support any language-specific transformations. - - If <[locale]> is LC_GLOBAL_LOCALE or not a valid locale object, the - behaviour is undefined. - -RETURNS - The <> function returns the length of the transformed string - (not including the terminating null character). If the value returned - is <[n]> or more, the contents of the array pointed to by - <[s1]> are indeterminate. - -PORTABILITY -<> is POSIX-1.2008. - -<> requires no supporting OS subroutines. - -QUICKREF - strxfrm_l ansi pure -*/ - -#include - -size_t -strxfrm_l (char *__restrict s1, const char *__restrict s2, size_t n, - struct __locale_t *locale) -{ - size_t res; - res = 0; - while (n-- > 0) - { - if ((*s1++ = *s2++) != '\0') - ++res; - else - return res; - } - while (*s2) - { - ++s2; - ++res; - } - - return res; -} diff --git a/lib/string/swab.c b/lib/string/swab.c deleted file mode 100644 index 28ab978..0000000 --- a/lib/string/swab.c +++ /dev/null @@ -1,37 +0,0 @@ -/* -FUNCTION - <>---swap adjacent bytes - -SYNOPSIS - #include - void swab(const void *<[in]>, void *<[out]>, ssize_t <[n]>); - -DESCRIPTION - This function copies <[n]> bytes from the memory region - pointed to by <[in]> to the memory region pointed to by - <[out]>, exchanging adjacent even and odd bytes. - -PORTABILITY -<> requires no supporting OS subroutines. -*/ - -#include - -void -swab (const void *b1, - void *b2, - ssize_t length) -{ - const char *from = b1; - char *to = b2; - ssize_t ptr; - for (ptr = 1; ptr < length; ptr += 2) - { - char p = from[ptr]; - char q = from[ptr-1]; - to[ptr-1] = p; - to[ptr ] = q; - } - if (ptr == length) /* I.e., if length is odd, */ - to[ptr-1] = 0; /* then pad with a NUL. */ -} diff --git a/lib/string/timingsafe_bcmp.c b/lib/string/timingsafe_bcmp.c deleted file mode 100644 index 0b73615..0000000 --- a/lib/string/timingsafe_bcmp.c +++ /dev/null @@ -1,29 +0,0 @@ -/* $OpenBSD: timingsafe_bcmp.c,v 1.2 2014/06/10 04:17:37 deraadt Exp $ */ -/* - * Copyright (c) 2010 Damien Miller. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include - -int -timingsafe_bcmp(const void *b1, const void *b2, size_t n) -{ - const unsigned char *p1 = b1, *p2 = b2; - int ret = 0; - - for (; n > 0; n--) - ret |= *p1++ ^ *p2++; - return (ret != 0); -} diff --git a/lib/string/timingsafe_memcmp.c b/lib/string/timingsafe_memcmp.c deleted file mode 100644 index 04e2ac5..0000000 --- a/lib/string/timingsafe_memcmp.c +++ /dev/null @@ -1,46 +0,0 @@ -/* $OpenBSD: timingsafe_memcmp.c,v 1.1 2014/06/13 02:12:17 matthew Exp $ */ -/* - * Copyright (c) 2014 Google Inc. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include -#include - -int -timingsafe_memcmp(const void *b1, const void *b2, size_t len) -{ - const unsigned char *p1 = b1, *p2 = b2; - size_t i; - int res = 0, done = 0; - - for (i = 0; i < len; i++) { - /* lt is -1 if p1[i] < p2[i]; else 0. */ - int lt = (p1[i] - p2[i]) >> CHAR_BIT; - - /* gt is -1 if p1[i] > p2[i]; else 0. */ - int gt = (p2[i] - p1[i]) >> CHAR_BIT; - - /* cmp is 1 if p1[i] > p2[i]; -1 if p1[i] < p2[i]; else 0. */ - int cmp = lt - gt; - - /* set res = cmp if !done. */ - res |= cmp & ~done; - - /* set done if p1[i] != p2[i]. */ - done |= lt | gt; - } - - return (res); -} diff --git a/lib/string/u_strerr.c b/lib/string/u_strerr.c deleted file mode 100644 index cde05ad..0000000 --- a/lib/string/u_strerr.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <_ansi.h> - -char * -_user_strerror (int errnum, - int internal, - int *errptr) -{ - /* prevent warning about unused parameters */ - (void) errnum; - (void) internal; - (void) errptr; - - return 0; -} diff --git a/lib/string/uniset b/lib/string/uniset deleted file mode 100644 index b118dd6..0000000 --- a/lib/string/uniset +++ /dev/null @@ -1,697 +0,0 @@ -#!/usr/bin/perl -# Uniset -- Unicode subset manager -- Markus Kuhn -# http://www.cl.cam.ac.uk/~mgk25/download/uniset.tar.gz - -require 5.014; -use open ':utf8'; -use FindBin qw($RealBin); # to find directory where this file is located - -binmode(STDOUT, ":utf8"); -binmode(STDIN, ":utf8"); - -my (%name, %invname, %category, %comment); - -print <. - -yyyy yyyy (optionally prefixed with 0x) is a Unicode character - belonging to the specified subset. - -yyyy-yyyy a range of Unicode characters belonging to -yyyy..yyyy the specified subset. - -xx yy yy yy-yy yy xx denotes a row (high-byte) and the yy specify - corresponding low bytes or with a hyphen also ranges of - low bytes in the Unicode values that belong to this - subset. This is also the format that is generated by - the compact command. -End -exit 1 if $#ARGV < 0; - - -# Subroutine to identify whether the ISO 10646/Unicode character code -# ucs belongs into the East Asian Wide (W) or East Asian FullWidth -# (F) category as defined in Unicode Technical Report #11. - -sub iswide ($) { - my $ucs = shift(@_); - - return ($ucs >= 0x1100 && - ($ucs <= 0x115f || # Hangul Jamo - $ucs == 0x2329 || $ucs == 0x232a || - ($ucs >= 0x2e80 && $ucs <= 0xa4cf && - $ucs != 0x303f) || # CJK .. Yi - ($ucs >= 0xac00 && $ucs <= 0xd7a3) || # Hangul Syllables - ($ucs >= 0xf900 && $ucs <= 0xfaff) || # CJK Comp. Ideographs - ($ucs >= 0xfe30 && $ucs <= 0xfe6f) || # CJK Comp. Forms - ($ucs >= 0xff00 && $ucs <= 0xff60) || # Fullwidth Forms - ($ucs >= 0xffe0 && $ucs <= 0xffe6) || - ($ucs >= 0x20000 && $ucs <= 0x2fffd) || - ($ucs >= 0x30000 && $ucs <= 0x3fffd))); -} - -# Return the Unicode name that belongs to a given character code - -# Jamo short names, see Unicode 3.0, table 4-4, page 86 - -my @lname = ('G', 'GG', 'N', 'D', 'DD', 'R', 'M', 'B', 'BB', 'S', 'SS', '', - 'J', 'JJ', 'C', 'K', 'T', 'P', 'H'); # 1100..1112 -my @vname = ('A', 'AE', 'YA', 'YAE', 'EO', 'E', 'YEO', 'YE', 'O', - 'WA', 'WAE', 'OE', 'YO', 'U', 'WEO', 'WE', 'WI', 'YU', - 'EU', 'YI', 'I'); # 1161..1175 -my @tname = ('G', 'GG', 'GS', 'N', 'NJ', 'NH', 'D', 'L', 'LG', 'LM', - 'LB', 'LS', 'LT', 'LP', 'LH', 'M', 'B', 'BS', 'S', 'SS', - 'NG', 'J', 'C', 'K', 'T', 'P', 'H'); # 11a8..11c2 - -sub name { - my $ucs = shift(@_); - - # The intervals used here reflect Unicode Version 3.2 - if (($ucs >= 0x3400 && $ucs <= 0x4db5) || - ($ucs >= 0x4e00 && $ucs <= 0x9fa5) || - ($ucs >= 0x20000 && $ucs <= 0x2a6d6)) { - return "CJK UNIFIED IDEOGRAPH-" . sprintf("%04X", $ucs); - } - - if ($ucs >= 0xac00 && $ucs <= 0xd7a3) { - my $s = $ucs - 0xac00; - my $l = 0x1100 + int($s / (21 * 28)); - my $v = 0x1161 + int(($s % (21 * 28)) / 28); - my $t = 0x11a7 + $s % 28; - return "HANGUL SYLLABLE " . - ($lname[int($s / (21 * 28))] . - $vname[int(($s % (21 * 28)) / 28)] . - $tname[$s % 28 - 1]); - } - - return $name{$ucs}; -} - -sub is_unicode { - my $ucs = shift(@_); - - # The intervals used here reflect Unicode Version 3.2 - if (($ucs >= 0x3400 && $ucs <= 0x4db5) || - ($ucs >= 0x4e00 && $ucs <= 0x9fa5) || - ($ucs >= 0xac00 && $ucs <= 0xd7a3) || - ($ucs >= 0x20000 && $ucs <= 0x2a6d6)) { - return 1; - } - - return exists $name{$ucs}; -} - -my @search_path = (); -if ($RealBin =~ m|^(.*)/bin\z| && -d "$1/share/uniset") { - push @search_path, "$1/share/uniset"; -} else { - push @search_path, $RealBin; -} - -sub search_open { - my ($mode, $fn) = @_; - my $file; - return $file if open($file, $mode, $fn); - return undef if $fn =~ m|/|; - for my $path (@search_path) { - return $file if open($file, $mode, "$path/$fn"); - } - return undef; -} - -my $html = 0; -my $image = 0; -my $adducs = 0; -my $unicodedata = "UnicodeData.txt"; -my $blockdata = "Blocks.txt"; - -# read list of all Unicode names -my $data = search_open('<', $unicodedata); -unless ($data) { - die ("Can't open Unicode database '$unicodedata':\n$!\n\n" . - "Please make sure that you have downloaded the file\n" . - "http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\n"); -} -while (<$data>) { - if (/^([0-9,A-F]{4,8});([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*)$/) { - next if $2 ne '' && substr($2, 0, 1) eq '<'; - $ucs = hex($1); - $name{$ucs} = $2; - $invname{$2} = $ucs; - $category{$ucs} = $3; - $comment{$ucs} = $12; - } else { - die("Syntax error in line '$_' in file '$unicodedata'\n"); - } -} -close($data); - -# read list of all Unicode blocks -$data = search_open('<', $blockdata); -unless ($data) { - die ("Can't open Unicode blockname list '$blockdata':\n$!\n\n" . - "Please make sure that you have downloaded the file\n" . - "http://www.unicode.org/Public/UNIDATA/Blocks.txt\n"); -} -my $blocks = 0; -my (@blockstart, @blockend, @blockname); -while (<$data>) { - if (/^\s*([0-9,A-F]{4,8})\s*\.\.\s*([0-9,A-F]{4,8})\s*;\s*(.*)$/) { - $blockstart[$blocks] = hex($1); - $blockend [$blocks] = hex($2); - $blockname [$blocks] = $3; - $blocks++; - } elsif (/^\s*\#/ || /^\s*$/) { - # ignore comments and empty lines - } else { - die("Syntax error in line '$_' in file '$blockdata'\n"); - } -} -close($data); -if ($blockend[$blocks-1] < 0x110000) { - $blockstart[$blocks] = 0x110000; - $blockend [$blocks] = 0x7FFFFFFF; - $blockname [$blocks] = "Beyond Plane 16"; - $blocks++; -} - -# process command line arguments -while ($_ = shift(@ARGV)) { - if (/^html$/) { - $html = 1; - } elsif (/^ucs$/) { - $adducs = 1; - } elsif (/^img$/) { - $html = 1; - $image = 1; - } elsif (/^template$/) { - $template = shift(@ARGV); - open(TEMPLATE, $template) || die("Can't open template file '$template': $!\n"); - while (

4m7kt)(=e`>+qUe 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

p=Y7-&>P}b=z;uP-X?Aky`h&xPiRPmenKBY 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%0A+AoTzY4bVg1@n1mwYd>mWxfbK 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%0DQcp_DG5&y`dh%XY3td0aCizA`P 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 diff --git a/lib/iconv/ccs/binary/cns11643_plane1.cct b/lib/iconv/ccs/binary/cns11643_plane1.cct deleted file mode 100644 index 509604bb46aa5e3e2ef94f6bfd0321d130c7e0d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236400 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�nBtteV5Y8hDjhlR$|z3*=aCvFa<$l1;s|z)T!>w(Ph!`j zdh7;AD|Qq`+61ft;R4&6SgdAf96k6FYQc}X z3-Qa{`S{iD0{j|Z9e$m!7QfL~kKgRuhun_B*)()X5i^orI*t$x51?{gQg;fTYej zA*pmuN%lEsB*o4}$$saGq{(?mQsP{bR692%jm{&IGUriAmGgQz>bybjb>1w;oVUu& z&fDcK=RO#F@S};(T8Vaj~zNxWv~$bJ|PSw32h)w=mHdh2J;AOfF*2!1mOw9i2iV#7z_uA z(Quep3^T;RaEMq7)5MW*l(;OMATAF_h%3S|;#x{dTt}&h>nVgdPDzN{DFtyCB_|%B zl*EISjQC@`gLoz0PP`hXh}Yw7#C!1r#3yu^_?8I~-!TEt4kqZyO4vN7v8|qSlKGxX zITBAUui29?IpC=?^mtk*;f7J$!ewN91ntNPHZR%-8GD1q(dJFzX@Y zK<_woo&iaRXG9+IjLXBGDRrG^T3zc|wG?{REd`!m`naC!!b#8dl-6?-6ZYI9k9clV z@AKSg==I!fDe~OwFnI2B=sgen`aF;Lc%COXa?ev-i{}}E!}BLO<#{FC?|GG@^!&xZ z@qA+7dOouhdwy`3ygP$M-i%1D_Z;2+-#Ca&Ep=5f6eUY}RS z>-HkN9h=O9*`4fFR%v31Z%efc8>?gqIPJ-bI1myDW%!4+@grRYBOh zF6j4e2%O%-0ct`Ad- zeYm>a=T`H4gu2D&RrmNvHOCiG_xXNfAbi&uG`{N%i0>wY$ajmu;=A3T_uXya`|dS( zeNPxvz9$V5-?Ij_?>U3n_h*CF_m)BId)FZKy>IaO{%*j0pBn_eFAYX=r$IqhSh~nc zODkDzDJSbJ)nvV;ooupHkS&%@vfa{4_E@^fUWY~(`@Kl!i&Cm(fSy^<{J#j6`hOWL_x~zb=f5gg>Ax{p;y)g&^4}b+_um?<_1_V!@xKtM z^1l?x^S>G?^1mA?_J0(q^nXj4{6A8LKpJHXWKz07Hl+{jq0qqTlsRyAoD(=N&JA1; z?+NUUcLpws_XaMBcLhq~-GLf98mObGKsy}?h?qz~o^S-T2`pe{EdhJ7AmB*W1w0&e zAi(1VC}Cb8E-VbN!u&u|SP+<&V1apwJ+Lfs1P)1Tfei^B_@$yHa9mLzxLwf{xKpt& z@O!l~@VHtUct))Xyrh-|UREmt@2cg2&kUi!HwH5BgCQ8qH28yAhCuLqizIk~MH;-& zf&_CdieQmN7Ob(zgAEpCkc;I7`Hpx{@SfoQ;Df=A;6uUA z;O~RY!N-CP!KZ@Ny1z!lZ1YZue1z!uc2j7U)1>cM`2fv6k1;3{3!S5(b z@O#P{{E@PS(&BxgoH#FZ8XXJmWul>yBsWyX(S#}_&QPVq6{=CRhC~*1NP!iF)IM8C z8;1`~IEIjcV+=VZo{(GO4fz#qp^)N0D57W&(Q0)lX^4adE!xnKAsQOBXhO?wOK8zxe3OC`KCa+}Z&P%K?^5)J?^E=JA6N8*pHgtc ze^%SVZ>lZfkJZ-jr)pF9uWB^>qcJaXs-Zu!)4)d3jJc6awKp zToQSPrX$ZY@yLrzEbRL`qJ+g81v@nwFjhdA z_ebMcLv+CBiH^tR(TTV$I-PJuXSk8*g0V8XFb%fNBZ~sg|IK>W=hK+(ITr3XLl$Yg|d$XokY*1m$LE%9|i4GU29ztd$C}HY%=AQNzL-YDOKR=8gNP6-$g- zwNTWiFHBv>rKlU!Vd`c}oVwE&q3-3zsOOCPsppOL)W;DH^;d43`b=0${X>$ZzL4}& zUn|ViHwqK=y~0NQsIbOPRv2UH3VSS5fyS~Gme?igc`>5EGkB(g#RK%`|2x7m9^u?}? z@MFJ?2xB)yc(LOVZtT&xD)vW)iT#PS$KK{Lv3G=ZvG=68v5(Y=*yr3t><4LH{1gQi z-=%QIa}=)lSqeOUktR2OiKaMysir7is40jStCR6cO<}x7&Bp6ACGmPqUc6D0A8%6k z$9s(Jafz`bZnCg(kFhQ8wIt(yOMjfjkoW+mjZa~!_$;Q3&tuZ~5~hx?V4C&-M2&&^B29@zof=K+ch%Ej^L>m7pB94C>k zTevLUF3qPqr3G}Cw2+o*%4of&md1>ow9D8<`;6T*gX!o2OivGC2KrY)4SiKaLH`C+ z&+DilePdirA5VDb-%E?>$D~E{6N(`Htin$}rwGt5X`1LaH2dlAj6KXr)##0)9I%&4ZBnbfo}%f?=23v)1+VHopkqJa4gk%R2cb*Dx)~TwN@th z*7AhVT9>e3u7ndK5+vqMM2WIQ48s$nL~UY%s7cHarHKWiDshmgOdKLg5^F?x;wVv( zxQwh%{DLS>{Fbat+(=d>ZYFCIw-eQg`!HwXesW*pA+kF02w9tWl&niU7PKUuB=;v? z4w@6M25pHqBZkCVL3`repf&M+5KDX%bR@ot=n_9hv}}4r&F+fm*_?=mJw1rB7gG$I zOR;P|m0*jhI9o>1Y&jKU8{;OnDQ;kUm_k;>6tH5Zh?Ox3)|)J3$z%~5N($L9Ps}D2 z6g#D9XP1o<_K;D=t{J85mUTaSrL}>*5%aLeF)w=y=40<5>e$~A``CMkdiHU$fqgnZ zpM4>Svo8jn?8^}=`vH|?KVyp7zcD53*E|XPov@MpQCglnNkJ!1({Ph#X*kKVHGRo) zYiqLEh$Igf)k&GPDT!EHk_IfCG+P^!R%?6GX6;Pk){dmh+MJ{@e{u*5CKs?!atRA0 zS1>YpglJ42BYTpU5iQBfiO%HhL{IWjf}4DtXiYvxaFXwk9mx;L_T)!ock&bRK=L!P zIr$Hgll+2gN`6Cfli!go{ig*3{ig@r{dWS|HVOHe}2&0UmkJyD`JKHDyqL9 ziRJd|VnzM>Sbo1bme+5M6~J3JM?W36_OncRf08NdA7(20XPIRG0>k#NuwDHJ*`EGY zw!8mGvU#9^Cmm=~^bfRX!~<^SjIv5-ni(>-^HPV4iqjlhz(K7H$j2XBZqX&MC#Rsk@ z`2#lvLj$+Q@qydpu7Nw^&Vjp`{(;}|3I|Jq)Zjjz zdayxRG}xxm4t8jCgIuF?P+-Id71q8%HI^9EV(g%v5D%IO(cp@(WpGv4Jh(1AFt{mf zA3Q8<8$2p(9sGr~e(-W>-Qbnd+QI9k&4V{e_YK}8>=?XR+BkTpv}W)@W!d0E%JRV{ zl@)_eE2{@zR2C1urK}u$S6Mswp0Z@{YmIgAdksGLgT^s*ipDUsQ)3!R(^!TwH1?q^ z4K{R+(LI!JB!&u%9wPC=p#efQG)TyXh6!Y7l28my6Uw0lLOygEDIK~xNDuuw7#}(wj1Aox z=^uI|!VWzaEgX6(Rx$KUta9k3xO?aorh4d&L}2J`ws+_qo?+-cY0J|KWDdi6TN!dC4nUX*JcV*W| zrm}tHTuuK-i8geH5HDGn~FxJOt~Y|#^lJnF*34jWJgwv{UfVJdSu;5jT|#ZM=mqvja+Vwk6dLc z9=XPt82O!%8M)tT8hO}i7AQ+ z9<}2wqc~nS8pUfzV|dl*FkU&jNVrBf2+QaZ!ajP8u#VnD*hX(Bu+h5-_vpQFI_f?G zAAN{GM;{@~qt6n==pPB^=qIFU^sgi``V)zcrID7g(@EXfnWT2?EYdi3E~yy1fK-j; zl7_K-Qa@Hmn#U?g^;jjT8EYezV?Ck5F<_WJu@~aL zvDf3Cv3KL-*n4sR*hg_CC?Ia}&Aa7bNn>D-(I+ zO)O`;gXNA(q~dXzQaG;C7LFsPl5uCWVcf&R#)DGH__VfYd{$dNzM?G|KccN1zd~Cv z{!4A?_^-8PdHSm5o1U+Bg1$ zsb>5S*4X&-*2wtF*3kH?*68@3t?}_Utikbjt6t)?@PvkRPv}V3 zgoSiW;P7#^i*!yzNZSNO+9%>9J~2#MCq_bL6LX=eiDRLPiLFri#O0yNiEE+{4Puvx4o47C9IPpldb>jEYj)^CtofFSSn^1ta0KWvF3?y z;*p8(;=zd@!@L(=u7h_Dwdh_+&HdoNP@NPj>R~NfFOEDOO4+ zm8SYhjg_9%;i5?c>76u@zDbuUhqN`5!`j-(NmIk* zjHz{U&eSrwY-*ZZH8oEjGwq+e#?&}@qm`Y!-^xrrU`liv{ZJ%b2 zl}`GnvdHk%X(Tyy1{s(-lMGIsO@^i}Ad*wLq57%9P~B8nsAj4>v~Q{|R6ErW?Vf6i z_D;1%yQbQroT=Vu&y+eIpK>s*Q$(U<%9|*i@+U%5p+sk`YMA;>X#do;QSQ`Du>(_gG6$x9mnfUMFIh76oRBm1 zyizgs4z8X0BGxwbHPbfreIh)4l8`%nic&RwsuG#bP%5Xhw9V6dO`PeAOdZpgn0lx4 zOx)>wQ|EM{scX8-)IMEl>Y1)Jbx+sZ%BLG_mD63eqG_(JY+7b3oi^A?rp>m3X^Smy z+J@uPcHBCR-+}&Y$7O zlQR-JcScI*&7e&849;}Uc$l6UFVivOXS!wrO#4hEQ9ct(RLmq3l{15h$jmg$n^|Uw znHAPOv&wpAHk0);N0KeGjl#a!j;MULD=M4i3VE|UZO1I%)Hf^g7tc!kC9|?v_pB<} zGm8lMvw9P6)@rMswc)zjMR);;&6jWhSOt#j^KTkqT}ww}3HZQQxnZC!J3 z;Pl*Eczo_%XYSnl&b+w~ac1sgynpU9JTdn<&dz;{C+EKRG|%txADBPQ-#lOHZ<{ao zH_g|EMDz6_@%;XfY`!@po$n68S8zkZc_hZ4*Ts70(HL*u9^=eAVtw;?j63h8%jZLM z$$W&aoTuord4{f-XX)bkA*OGBnBmWlF}(SuL~MQ~5ug7>vUL6?Xa4-1{;v7^VuJbS zwA}gUwSDuinw0Zzm{jv$+xYX}*?9Bc+XVAJI*S%gbrvjSItv%FoW%=;e!)VKpSw`% z=PZ=@`xdH0iiLe4)k0H9xzHMtFSJL^3msAGLU$Bh=#82dI8n<2KPFrd$3zPfx_UuH zS1q84x&>>3UN|h2EgZ247q*-w3s-pB7k(8|FI*i$7M_+W7M_)=7M_BE$-AR7SpuC#T=7*agWKec$&$$SY;C} z*4iYCbvD`Jew%o)!6sj9vPl;YII9=iosElK&Zfm~XXRp_vu@Gl7caW~!bP87vPk+x zi=mKy@sL)vc)3u!c!kig_$#4)@i#)<;*C0f3zV>r`QxrnKsqZ8P4XVi#>v+ zV!vXk(l1}C@ynKK{mP~KkZGwo>RM80wM!b4Ysqd?FJU&#lH1v~L^uyDd7Z6GBYw@& zgkQBZ{aN+23riAMb^{n5zEaMZUl9aF7b9#gMe8`G^^7t^lX5Yw+5k7-sOq?=ZL zPdBeTMYpd!OE;{%Mz^fIPPeYSK{u|vMekpEn{Hcqm+oBoknUdjfsq_Ml@T92j}aX# zPqZGaO6)&amuNY-FVS#tf1>eVQ=<7`OQPvuZz6F}o?s6u63K%WR&>zL3J*G1@j-(1 z9}FZb4u+ED2V=?ohhkF0p+Twf(6G{XXhdr{G-V1Lnz1v!!L$A?2hu&hOhu%&cSiMkcTFvDVt7SslYK73gS|zls)(WkwbwYHtRccx7 zkfN)dQuAuJ)VA6ywXVvPNdTs3GNtAr`I>NU};Nt<`|pi{AW$f;btDim0~Iuu;} zO(?W_BbB>)Gu^v-JC(P3ht$4$m)5=doCjNdArxMHk;-3vIp$b>HHNLe7PGJZIfk#k z9kZ>zLvvO?v&B~bVT-T+(`i`!%Bfxb#;ITZ&Z%2F$%C)$@Z)P~e&<@c-?f(Mcdwlj zqSh{?3f3;B3fBr^&b4B?Z>@~xuGKKIwYo&dT2rEJtvS)Y)|TjBYiD!Uy4k>5FB@9p zvB5Qk6kAg}jcbMwvt|q>*6aPM`gtDD`i1_$daj>bF9;W{m;3$emEnT*no$2b zmnvCT#sceFTC{GU#p`BTxQ->d*PV&3bq`yxezh{be!a)Lext{?e%v2izm+OozcUtG zznhke`4che{$nhKfUp~pW1lCAK!R8T($9OxN_s~;p&Z_sEW;# zsq)R;vDoH0w0!e?TCrKqAe%LedUHRc-E3quo9&6d&CUdOvnRpXKpQx$O7IVB+1O#dIsdRfP<%KRC_20p-hcSMc){TpY4zb(Y0cpeXyovRwCeB= z@w_8BjQ+@(jP6KbLUg1uAv{vcmLF+lE046Z6-W4N*%1}1IihBDM>MSV2+GEf#FCvy z;>oTf@0kmZeB|^U`P{=C`N9)F@=p(a^wdDv(X>Fx(ab>U(KEs=N6!v79NimkJ(?eG zJX#cPI$9ELKH5sv9_^s&j>_YOM@{jfqn3E_Q7f%GO3;R*UfOsxMC*@E(b}WeC&Wi@ zPDqa4o{$}VAR#^aN4DzdpV;c7@3H!$->~%2Z&~Kp1xe1ay-EJDi<5$5QFGxjnlT(> z*~GCV%N`pr7abdRlE-GKeaDt*)3FsAJ+?-hj~z|Ok8QDrV^^AskNrAOe(Yx2a_kny zc8C-wjkdkV7yfY?(9b^s82>iP};ND( z@3|cS#1_1;1Ay3quXX?sTX6DD0AdTXcLESwc*afuVheM30uWnNxD$Zbnv$IW#MV^o z1R%DiWhVf!wS7AQh~4Mi2|%pGzY~C1$GWhVf!(${wa5G#EXpxC#h@9qR3R`$_O z0Agj|?F1lJwj&LISXo9I0I~9%Gyr1dm!<&_D{n{xAXeUz20*O5Ee(KJMRytiv5LMl z0Ac}$1t3c03oI-EvC7Fb0AiK1X#m73 zH`4%!RbG|`K&0uZbEE)9TK zWM?`6u}DTb0I^6;IsmcA8R-DTA{V3s5Q`L~0}zXprUMYGu1yCZR^5^gK&-ka9e`Lh zHywajH9sAIShXY_fLINZ4nV9%pAJB*7EK2rR*Ri0}!hVr2`PFW6}YL)g{vb zh}BJ}0}!j5PX{1Yx0DV*tbR2efLQ&}bO2%vm!$&`Yq&BUfLOyV=>WtUewPkFtl`0Q z0AdZlPX{2@@Ju=Yv4$7Y0f;qzm<~X!@$+;5VvRqh0}yN4nE^noDJKJfSo7%_0K}Tl z$^anNe0~N1vF4%-0AkIh834qZD>DFyHP>VS5R2~503a4UkO4p}%E7D3 zwO*D1K&*FU`4Hf+&pV&V1R&P=LM8yQu2(Vvo^pMV2|%ptlS}|&U0-AZ5bOFO6M$IvNm&5I zy3?}&h$XVJ0EqSEWC0NCIVTH%SkK-p0Ajrt0}fm5&CdcL)>{Jwh8(fLQ<2SpdWaUdRFw0I|V0vjB(^WM?)2v60Md0AeGjWdjf!IV&50*y!GD_*G`KEE|B>XmvIKvC;Z$ z0Aiy}*#N{wJF=+F0I|u;T>!);Pum4RZ1S94cP8&mUb+i_*ksWz0Al;AcL5OF zU$+Z@*naUY0AdFey8wtC(Cq>scF?#BfY?F%E&yT&J-Yyi9SrOOAa;=61wiZ|y9;fPbSXcmJhhN?WK||RG0I`$ZIRL~?adH5No#y2L5Ic?J01!K^&jBEI+LQx8?6f=QpVK>L zA~^uW&Wz*$5IZ}W13>KTEP$|=&o1Qv5Ieh;13>KT(HsC`XK&2`Aa?eS8~|cxAIJe9 zcK-J{0L0EeodZDZ{Bt<~#LmB*13>KjYdHYKF1(!sK;@oqv0^s>u}gy80K@_j3qb6WayJ06OWNH4#4cgG0f=4p?gk)s zh1v~3>(SMS*kK zow@$zZUAD}zuXN#?E1I60f=4yaW??5>nHDN+vwQXu?K+Ijr2VL#BOBm0U&lWXAc0e zo9FHUAolPDdjN<%e90aFVh{*KKy2av0K^vj8xRYR{NDs(VU2$SVhjHVAhzIt0Ah=_fmo0pKn48o zKy2RsMQ0O1^)$z1)cT(Cm^;k z1;plU1F_&5*&u;=(`!kUDIk^udIbmN;P96e5DUwoI`kFx{S3syJpjb^x`j?~OaO?5 zbhjHBKtl;Ph02E=kwKrFOT11SZ>_5l#f zE9LuO@F^fR)iwaJPzE3Y5X%qq0Ep!WVJV*vK&&)Z_P+pPr5&oDeo6tcP!@ot0zfR( z>L8Uu`Wc9Y`Zf>?wN_QG4uDu~p03&q{W<}}ngNIfZv?LOa{`Ekk;DMI4RN-CSm=2Q zh~?8Tr%Yb44uIIyo}0|;2O<`(I|*yhy`6o9pek(xvAtFN6c8&)0kNw76OZ`6fmnz> z!vP>Rsw}Ds@0I^&EVqu)E(4zy8Qa~*9 zW}ggz*j@l)VXYcYE7jMV0%D=v{{;{W_tbNZ(9-`1#P*#KVt)o=q5dyGEGz*K3poI> zkat2-K>{F_-w8e024bNG&#MzatmwZ0u`;lM{sV}GS`Q?+0?Y{@Rt7*U%z6rlg%TVf zl|_{TVs-5hI{;$MJ=PPV)xQ9-umnIX5NprP z@3g0YSTDo?QUjy|UI1c2k^-^%KY`dl3WyD-fLJC4#KN9e&jJt&u>&9$VwVD9p#&hd z?`I&Ep8{f2y)c+{x)cy=cQS(BPFN4T&OSG+fr^AM&nX}lW^6yFi<<&sMcY7ZDk=^U z0wn;k5RIT}8;I>o0kQm_fml%rh)wNN0L0o;K&%UZSQrxkv0eaTVLQ^^1`Y?d4nQny zdmD&_Ig5&7u$%&7p#&h7|1UtS=w~2SwhhE0uty@Lh!6JWZ6H<$K&%TyS9qNc^YWiS ztV;%42Ot)5$%$GZbOMOg0T2sO(YO==IrOQKqXZ(>+1m``?}NSp5Gw#6mLE7V<`Y1y z41icfEi43e5B5I*b^(axrhwSqR!$0t)oY-20AjsHm!Vh8&4uGoKa8VR?1gw7;7GVJ zS<;*WV#V7)tR8?^d%qcgSXdK)Sg+r1?gbzg`T#&Icb~r01VF655IwO?hs)wk0kPs- zP}U0M{jzN!7M4!jQa~({0%G+kAQpvrf-Q&ag**Ua1qHlfcw`EQ6_-IxB(9LBfLL*j zya#EJ_d-13NGRtaDIiwf2g|@H$jhM}0AlqOP)bsx|2H63zYWB~y)k<|P6c8Kt((u{?5&>G7 zhp{9YSS8Fz3W$Z6mhu3IO=*h&#EMPuEU|`rC>yNb%}D{V;zqdwQR>@Jcs@fU(cWIj zVW$5Bh~;hrvCslnfQYw&SXkNyVg*_;{73l@AQo!dKrGa7NGTu|%6|c3#XkeF5YsM5 zN@N>|m7fq|Q$Q>*sx9)LfmkF3#6l#ufmnSz^i&7S+dwST+&;u`pHuV&y3y z7DgIGQa~*FFF>qA2$2UMmWQO~OCt{>Wrjw0z5)=7)|tgrh!(>meg+dwQl+L~G; z1;j!v1;h%9B+!HZ1Y)7y0I5RqZ$K>c$s;dTTjT)5f++`ki@HXgM9QIFsb-*;Gy*^@ zECCRU)WH~2KrECgAQs9L5DVprs}R&0Qa~&UKrGA!0I`ts9VsBzodRM5Y6@mCA?2Xl z7M@)IK&+%NsG(#qrdD25Zgc<;%K;!3BG@SbAQsw80kKfRQN~baff==wT5z}@fLJaj z;6Rkyc(@=1#PR@$O+~>4R}P?{20$$20K}&L3P7v?fLMsZ&p<5Hm5^XwP5`k``!^sK zmH~*BG^;gGJ0W!g5DPM1r6M6u0kKdAAQtihNC3ntwt-ma?KTh#H9jPsAqB*${|gWc zQA+`_Py!GOc?yUH2p2W%hmrO`g1x~~1?4snYweu@TrmBc+j=NPgsJAXc#r#5(dZ%JFYNY(xvQW38Yc_2bQ9{{mH#0q%{nAa2#t6(L1*a85tkZU1DQf&edt8OsT&@%vH zq5lC`JLr!3Bths+u;m003!^vysTop}G3o{&79IycEaW0cDIgY00kOdp5KF=KseMVB z>rf;t5=<0H(z#4Oy$!@F{tbxLq<~mA0I|>`cwS>kZVHGM0uT#YA^@?FH)_nVofHs@ zrGQux_D8aq+y-KUDIk{O7`K5~5Cpe@Sg6%Ns<3VYv2g%mVJ?39DFwu`KLfF_$DolI z^k5r^g&Ly(AQrX_KrH0jKrGZw+)_ZS=HGx=h)oKJg;H)j0Nd=cDvbcdS^ z{wHcw8Z~@ho{q#K@kj#Ngm(zBvKRod2@S6w<5`oK1p2Opb^wUwrGQu|0I|>x0I^Cl zw2=a0p#&gSBPB!-ixd!R1t1oO>&xOw_{)h~3W&w!Fy?I_mfQwnqtN4MGNK{i2VSt9 zRu};R?fH%6u)dZ^1WTe-F_`TQ{YzU5&Q#Qar5Z5(0>o-h1F1VAik69BQU4v896PJ;j-R{IY?tRZXzKrHCbX&@HNLBGiovJ5Pp z24cxyfLPE90Aj(t-*y^^b>;iO*xpy>EA|O}g;3g0syg~V#Udt6eMZY$|bNI0I{HFZQ5UeSl8cySYL5GH&L2|CGFZ=S_$@>(?G0* z0Ka`2hy`;BOaO=l_ayQQ5DUEB(?Bek{{qB==401!)qBPY6yE~SNZIaodo#DY0^ zr*$=h`u+mMf~9&e0U*`|fLKsjxeo*PIGFUozhx-=0>nlj#tI&RcV$Kn_I?1wf-U^p z4FIvMMp8`!Al8*g;t~MFA^?ch0w5N&3xHVHfs{dlf&IJ=Ji8=el(-RxK}#wbo%}Qq z3-%YVCuni)X(0A=55d@(ZUG^A&2%X8cOW*1fag68#DY1_oCad!zW}i*0K|e<@fRSL z)PrX}4a9;u_+6L5l>&V~4a7!H1F_6$AQk~Y?CEF!1&Gx~K=u6OKLD|YzXP$LbpXVY zFl`2H0wC6v0H+=P*7`3%ELc7b#L`w5N?YXsh&7xBVnH1vV2TB8paM=`TRey~fPI2N z01yj~_W%$J)?~p1n1ZzRm#zN=h^0>hu^}+}3;hDbG60BW3sa|oSo$;&%eb@vh_##s zVts9(=M#hf0f^=O^GU(~U*+ElK%f5!AoiE++iN*~?yZ~{?--|ycNa&-J{yGPq9OS%Age$o;2)SRO}Em3fAsI`dpWz-|@PW^NbMW$qHxXI>(x$m9#k zGYbU!0S{XS_}J1+g`g$VC}_ zo!kcmDejYk1otUHoO?nLKc%?^JOX_o@;uZ?ZJPn<|a+ zt|$%j9xr8h&zFXHFO*7oCrc%~mr8v+4#aI)2W7ToK>U`=Af9*+lnIzut0W(Au!WGN zr5Lidlt8YwN~ju;u~bV9WNmGR1TC%5ftEI?wnYt55-pTMFo@UUfU?9P$R_E80@_|E z&oT&Qw+ut}mNAHyj6*pslTbs;5|k}I4A~{ep-$vpD7WQpDA4*2lqvcOst|tzm5INF zD#d?+_KQzJ<>H^ADsdXh7q637i+9M2#23j60Tat_FP2Bz%H%;X_Q-0llqcG%<#8|) zNVV0M51e#l01eBPCglmhzp|1pK*#n0Hg-@R zmJG{dk}<%@PRPBIDS1jV0|?o9K*=7K2PG?VkL3Rmh?Q5PU&{ID*YYy-TX_}wgFGAk zNnVVu$!k%LLWr(c~FtBBJtC=&EbiWvQ} zB0|5eVCat&Vfqh>ApNN#MSr1)(tlEf=&uz?`p=3?_m2v``;>y`=D=L{8L+^8Cfw;d z3(j$GfV12i;cWL-xYU0>TiZld538R0H$CfkUI1g&WXrc)x!H4!4fNk=6;gNjw8Wk7nUa#UVHcTYyt7 zm%{?Zm2fk9HQb0^12>^Jz~%m%;ArcuaI^SMxTyUuxVZfRI9K{4EJELebKP&j75;bO z!j|{onwGENTHtWy@XWGI_k&QprT+mx;1^OYj;PGy_;LS>8i zQl(tJ5Ad+X$|7l_vP9af%vOk%1qxKzfvS~ls6$y{bSm>OpE4f{D$9&v<$hyCS#D&M z6_%8;($b|YxAZDA?R`p~eL`92o&hMroU+P)SXtb%s$^R)S0-DpQnrilQ)p{0^ zYF&?Xwr)T=#G4VJVhbX~wj#yYr3g>77m^jD-r1VC1C2C5UEiK@j}Xk&Xe z+T1QgRqdsKhZUhM?QN*Iy#tlBLugYwiNaDls+0y$nY0^imG+};(m}LCI))r^PZ zUWK7&tE}io6@hM1+0d;j1l_LEquDA8TA*sj_Nl~J5g=fNss^l7CBZ6GDzp-CuyrcP z*r<|X&8j-U$JPKcwh}O~^_X1MgyE_-%&0nm5vr)ptg6KA^Ct2f@Kf{o9snk_G=M3&#H8ZED@IxKIhS}gCV>MdWY+ARP^w12NE zw*Rckv#+VL>>PEreLaAZHmFPO8`XvO%>Yt54U{f7wGhBcx%S=a9Qz)1 z34oO<00~H;&-XZ`2A`s{({=TeyG;B zf2PLT|ER{>zf$Yke^RTZX|+_5p`p<;HFk7^2EsOiOu2J3a%{6kYdl}0uw0;lEju+8 z_FbBC`yNeOOOD1O&ehQ3QjJ+$qp`KuX)Nsx8lqjSF}HVU41kH%ORXA%)TY6u4vkLg z)L>FZqm_cAE@`hurs&gXq+=RLF{eQlmuuvTD>bm_fP+(XRXzT2w+5`4EZH@hiw%L7D+vr}^Hn@MK6}hj|?(<)-ZFS$Q zZE+vhHn|_vcK9FBw)>yZO8rl1CI08NQ0N7%EcAP=H1v{I5_(lzAAL<*7kyj1FZPbM zDE7X#IQF5|7XMUhWdEpbZ~0s+Z2eM8xBsXmjX!BE#-Ftf_AQtfJq^TSO?E!kY!_gS zb|Kazs=%D$O3Wp$!|d%Xm_=&Btj5zoEJj!ySgYNMwb(tF*zLt+{tzZ@31iKoDApp1 zVIFZD^NUlMPdti++9xo7`z+>cpTmOf^O&!F3G=qEV2<{qn7jQt%+-D~=8)ck1*FHZ zp!6QhF1-(2#r7aZNuR*N(kC&O^cl=AJ%M?p&tV?vtC(K#Iz}qq#B_=eFoWVF%%u1j zvnW2njEc`Nv*L3shMvMGMH<5u>vUE{hK^8d)ODig>Qd-7T@bxM$Dq4(A#}Gcie91% zqkD7_bgwRsX6h2CK*yrFx+Gez1H`k=iZ$pgSfh@>L^>L4*O@>rnH|#s8kW>ifQdC@ zPC&&nI?C9kqm8pVyKz}(GalACjMwU%#@lpu%W;4XJ`DiEX8|two=#-{Kqs|-tP|Tm z)wS9GtdqD;>Dt|w>LEX04~O#ficqm$9xBtz{gwI#K*ZAVX1zUb(KAx3J}PzSZ3>s3 ztMcoCVgpVGh4e0CL@%?)^a_7MuMDO1j(C?IT=l9KiKg_)_M7$Ds$2D$s)zJm>{-3n z_&dGdcv9~%{$B4h{#h@K{YCGL|Dad2{G^YI*Wqr(nRvcxC!P>rjCV?TxUz+hSGE@5 zY`YK-8C!9lOoV63+HkH+g%_%{I8TM+Va$L>FyO^tB(AkvaiyEW5w{&jL*VpQ!iQJ4 z25__`jwi+Acvi~1_ub`lRN zUc&>5Pw-OJXLyO~3%p466<((L4zE!C1>dhag$q?b_R}oUS#0vb{pat&yd9U2A(e4kO|I}rLZzX)F?JEMyVleR2U*g2Owg7 z25^Gmd3s{@=|{>R>;0L7Ige%OeofjcuU$? z+q#aBi_RnpJ2ntW#U_HZpFF9%5fd7Evk7CaPq)M76AtU=>25PPLyX z0<>$f?lcffSnO>C;qD+1zm(90Ac9D02%!!m{1zk87$u3~4l7aAK@lkhLkK(KL`err z)X9zzHM*mKnZ2B-)?GnV>Fyv%_g#e9eGfs|A0YIh$B2g3CkUnJS)#1tIikGdEuvob zF3}+SjHvGTBT?D$HBr&=XQD~=15wrSGtnqZ6V0;oO!@E@Q;Tf3NiMt8lmqWI<-%N( zL{?-H$@ZJXfRHVLMJ6FEGZn%L6Nqp$iBy=WN!4XKpzAkvs0IKVJ7TKSjhp1E36o59 z5ajF4n_$(lNvc{kNmQ4c>UCF{YIWC{8gwU2jk*_1xx`B*iSAWXhwgQgT=%A_P4}^> zS;sL~6YIfx*!_eH5V2k}1t?gjn>9P!oo2VY z*KBu>nl=7Oz{XAkK6b{e@*gyZ-OJ{n`)YH@eXZH!zTT|%-)Q!^Z!!nmH=85w+svr{ zPBZ3z(5&-6YBq#EFgHa%HWQ(5%w@3+WMk{aB&^#_Ds_9v0|b}MvGT}VYaZ#h?<1pb zEm_c}C-d7ZB#34v+d86TV@I46cl49B9fPEzV}xw#7$sXet|Kk78%d+=CNdy9M!IEp zkWSe>q+WJENy#1{t+IzmO!g?LlYLJ%!P_iic&DWb&aqfjc^0!O-$JU2ELv5y#i**a zm{fHZjjG9_10yLt7&#eKKqSi$%GJ>(_bP0=Jm$Z0v-4?g54*=f%7D_h^ zFz*qINjGk(C#Edm$}@{oH*eAC7A?4L$wKQ61LXT*OC#~5rG5JtwUW|BF_q|5Ym$dfjUAziYLH-nY6! zA6xCA@2wrtpR8@sQ`YwAnpG6#P?fRulsLMDs)}u=eDPhBH+~W2k6%K05|>i$L?%_i z@+ot&h-z&urwZFDDWs!{f;(y`Wk($qlGRh~a4XdTw^24#J4LJH6r+Qwkj_8>x|c!; zl2Q{EN<-Kv72&3;tU)Se@1;DUKFS*!qC~CJ6h_QYTH+ApO)OC2)+NfWI!v*;BUDni zN>y90pgQeWQ*Eu+P+HNoR9JQ+C4q0EQo36x9dRpFW4()#MDL;6TkoeLvIi(B{0QYx zJwZ8DFH=0nD-_r9J|%;{rqGU`sHlu%OUcf#C1vYv3EA1UOlXsh2c2t+%g(d0vMshw z*&Z7L@3kr5LYo{evMFJqO$E2x+$yQfuaet5Dy7Y*(%A%hgN?5@+H&<)TbABt%hB6y z+4``}Ktydug0WeM1aO@@Z6wieYqU<-nyoW76R~0wIIgs1IK0mEn7|OU0ZeRV_P8p zsm+)8+*ZwI&@I*tw6t|2pkL3S1<+=i4{fKzsvUGhbs-&9?WPO#m(nz`hqe(yx&kn= z<$#8*Y^w!KtcWH$+G%5lldgtXx(e!~%b+g01RA0Xp%Jvx6>4SCvAl9rtR?Kv;}^R_Q0>xHux>t2fs}_;rD4T z{1HvVpVDUdbJ_rZNt1Az*1{Kn;EN0Gnd)62{DNy|RJnGpIu8V6RN7;zDm$x^+WG3J zy;MJEFV-Kl*XkGS<@yzSoqpBcpufW2sK3%)q`%g_Uw@swUjMkgO8>MyNu01piRbJL zanc?lUa~ugSL|-$RlAFL-Odv4*uBKNb|>+HJwp7!9w7c?_Y>dP!^EHMKH@BghuG|h z5$8D)#Q6>oZtRc(78U~Zs}iuU9af7&ZM8e(R+mFz^*BUUuOmf791<(zXtTxvBirkc zSqA|nd(hEp{g;7QM}_ALN0aAUN4@7~M~!Elv(j^hv%zzgv(dB3S?Ag2Z1!B>to2;v ztoB^ytn%z}mV3C)1D;Ihen7->1GUbOzr~sGi=CbRHfLr);!OFq&X^x_M*W177ce_n zKj}>RT}}oNvawLNGZ5-`hC5 zTb!!saVHeL+o_D+=Y*q=I+5sOPDS+h&idHv&brte&S>Z@XKm~w=YiPg&QSa(XE1Tf z=}(;L3M4kU$mCX64ZG8oncC}uTDh*OwoKOnsKnK*uXgcFwXRH4or`M{yR_DJSCvER zs&+uGR*%Bf;=x?}0PbQ#PFDc1u$Z;WRS)&Kg7Ba#1dq5%)T1t;dfp{4ExP!ot6d_` z&8}4F7MC`9n=6#K!xe__a+Rv@b+zd4cV(F#a_OxPyL8qkTw>3Yt~SpJ7u@=s%Ov`( z%i8gZD+<5v>I}W%LR$amYSn-466wEmWt)C>8LVfyvjQ93-0)8KfwtZ5Mre*!aCg^z{C0h70Un)Hr@f0ypDw1 z+cE9-b<6@X_Mkh}G4Bp_EV?^8mfUp5VYj>EMz;*Q$!&mccB9ZScPn(<-3C4Fj=|5k zap+mM2ztYTmXF^tX6a`rABG z{T&{Y{%(&>f4`?)|B%P6KjA_3&w3#J3m&!pq{pa#+oRRL=aK0@^vLxedp!EDJ(T`i zPlx``9$bHxSE(=XHUjRo2GFqirV_x!mH`&F60ot=-UdL$wwRi|O@N8*07NXn`@Quh z$lGQ@0V%8YR++Tk3X|SjZXy63Yw@<5Xm7E};gy=afS2`oYfV9~#5Cd+nWnuK>%7-v zUG&4O}VKB=S5*W{@8wF44X3Yb?2Ft3ui;l`|;>TKNda5uZwQ+ z6VYvcV|0hVHMYwyie2n)j_vk0#4h!>#P;|bV>$k&Sg}76FY!m?b^dT%>JKMizcs1# zQ%R%W#9I9Pl+|C7a{0jrNkE8=`gxL=Um#)qnUa*BFB$by(4^l2&HAm-AwLN%`EAhE zAnfY6zf5_zzfyUxzf}1fKcardFIWH8kE&nwE7Y&~mFf@uu=-1XQ2(RftN+;_&~FU* z^qT^H{Y3%Dba6m#x+I`7aRW+IRzP7Y4#1}J0LZrr@Tm4c%qk6}tWY3qRR{PK765VF zfrQl<;8N~D(&`PMrc^-h=nohiqXFD88!$Q!1~A7`K<8Ku7(Leo%$}P9gy&emsemc^*MK>?79gYRgW}lcU|Vc!kcsaOMiMzeQ7SK}X)OT! zYhln16$fjS(xBR;3}#X4AnDNt+hZ8uVf8`0l@7WfN6-x@*IH#Tct9Br)+ysbwK^3H z>$`(mQ%^9W?+tnANWjbMcK~ zqk2;~rQaOR#CL~nCSKTN5`@jBtT1iL3ENG1VWX)iOqr^~22*`lNHvCwDOI?TvV&9!gkMCnD#7&TLMSIO@X6fQD8OP8n`Ol z95@Zc0vPk5Fdcm+48?vMj>lgN#}Y4xnZ)bi1MHh&r|8o#FY_;90sehB3qLdBaGV=y z3v7r9K{UtM7;uL(%&^-~e2`k9Cje=bsjzZltvzZ5CLUyTGzuSNW( zHzHos+mWE@-AKsve#B$?AmTIq6gfa`jCvjCL;<89bvrJI`W$7^jzDEp5~z+!15MH9 zum~`*(r8Qg{{qBDl`(S^iILGnoQfvnj%YmLjsn~=>PQBnW;Pfl*;o`+_C|{(W6_{` zGFpnyMH$n4G-_IohCDY%qoP}*A@%LinCaeV*z-`75uJ?g$6t(=;h#lY!+(m#L|;aQ zl5e6Z=(}hq^h4CB{4r`!{xwP}*P>?SItEvs%~+Hh8A5puV^Z#6V(Pt2T%E%t)VU0! zmNN;Ho@t_Rrh_svtyG*5Qz<6o=wiZ-ekSM`Vi?aDlkki)G0!9u^~^AF&ozuPa4q;V zegh*8-^8?sf6Yk3w=!+v@T4UK--3z6 zB|X23@x3p_c;44zXy6Yqb>Nd268Jo(3Vaz;gujc)!`}la`6qxRuZzRs^Wy&KMR8T^ zG!PqSMRoB^c|)8pZ;T7%ig=zz7Z+-%cmr;aH{zan6P}1;R99R_^~Ckmui~1(wQ*(m zhBy+wIUa}}i>qVD*3pZ^k(Zf%&Wi z-@GBgGoO>lG;dCD&D#@Z>f!`J?MrZ-!UWG*k;wIm61spUfrcFkZOoO>#KMVAQ8ZC5 zi6?U9iA0XPD-l%ofF!Q|M3rVZQLULxwBV}=D|LB-qOMQyoi`*hoi`^6ytgFsz4s;z zfrk>R@Z*U{^oc|?dK!pL)UqcMT=8p(8qGV2PQ$y2l;ML!p82ChuKA0E!1-k&%Xu1z zO-S2*O619ZPDGUHL|C~#c|fx*S*y7yDZzIq+wjYhQhaYxgl8o?@SLO=FG#lI`;sz1 z#ul2}llf*zvczmk+5zk8qyVx^MUr_=CTXMklS1cEve-G6%ymvB_c;$H3!R6OInIS- zzH=p6;JiFp=Di}B?fiAJ(0eSo&wG2a*n4-f$oVj!W*e4L~LpC+w=?~_<~EvXHk&8oxavbykQRukUF z5`oLuM3l?2(M&cO%?AIo^VoPapJk#ItRYs(>SN8UAR%S>2^pJ}P_W5_n-!$IY*s4B zN>U+K)|O(U$`Q6sGs{BwAy$DeuyTBr-EY2zEjJ%yUDR>bP2ItIsC(EF=L2l1^Fg-E z`3zg`eV)zCe2KLMUS{dQYpgl^2R0S`lFd$h#pWb_V4=2CY=vZv&6jghapl&ONV7fF zs@aheYw}YyfPPis2U2QWk*YMSQq^XCDnuDm6=rj)&P=8n%(hg$*`BI0$5TG4Cl#Qk zQbB4a<)`LSUg}7y!g(~+?7ciy?YuJ8;JiE4?0hOEaz2x)ah^=IIzLF&dp}9lc|T1x zc|T7b@P3)9@_v(Q^?sMC^!}Iw!saD5_(Sh1JsYV*ds0)c@pDt53-u37Ff<43zp_|;tr>bkBt zb$wTix}~e#ds|m9aA%h-c6XOOc25@_yT7Y5@jw^c_D~lOd87;0Jkh1lJljR$&v#ky zlU-K)#jY0fOI@wzPrEw2f9i?^zUm4EzU~SKzU_*Hf9%R(PIcunf9;BfFX^W6tZs=n zr#l)b?N+yycV{8B-C9k3H>MGF(|AX>4Oe!H&FbzXrR`=ZUAN3>?3Oy`x~nDg-Bpss z?gNtL?mEfg?pn!8ca7wV?lSq6-6isCx`pyvx~t^Jx=ZD^b=OO7@2-&F+g&VwtUC{R zygMIxwz~j%zPku{xjP$que%WWuv>_H)SZL;&~4WIwcDoox!bBaqerhftH+>O-(%8j z=&@)v^-!9fJq|px$BFZMym)Sp8_(}?;YB@mytv1MR{;*Tu18@O^~eDaD=|xZU_i#o z%v2BGX6wnbxq7l~-X4Lis|R&<_b8mbJu2sLkJ35XgE*&pVCUsMa_@CL@xb*xvB2>j zCU9?0XZXn;HvDvtAo5&K0rT6QLgv*TN9^^UqQpBr{^a{TE$jz9`nHdHs^x#^Q9D2B z$&P&1gSUO&(ZRxi<-ChVoqLf86xg2ut|FLPHit6z2(u1*Woq;L0-AY3?qG9!)RX$pX>|cvwbW+*Vl>9_r>wWz9@dQFM?m*$1_|BSlMg) zvJE%(CGiLP68Iy12J;hrdh;`VcJs4+l=;OzuldbBxA~nupZQ&o9` z-{yS0pKw0eZ*;!U?{xmYpLTxUZ}9%9U*%2r6W;X$ChxWZ%zMFr*1LTG_g*-l^jbwoK?em|)nJZ+9xRWz2C23Hpkqe|v$W%b`P#X`9PN?8LhV(9 z1=_0zbG6qG=4o#j%+}sASYkLfC^XzLxX*CsV1eP`!Fp;p@k zLru0_LqX>yLmnq@$mbLc`JK5#5og&@z*#XAcGe7eo%KU*r*z2aMTT5n)lkT(8FF|r zz`~k_tbl{102NDn!$YJuI%M(202$jm1jON?yx_#pzTnZJg5c^ zjwq22Mzpr?MrxTKMrsp(9SJ2lqaw)}qbQOwszNr5BFLuED(&vkR>P&E^@cs8Ee77G z$dEbOU=WNp8uCW#427f32H|Lvp=>mtEFUc-8%MK9(P$p27|kX1qdBB;luw#Qc_ayF zSj(sxFtNBTKI*U~N1Zly)MOhNwc3V83ETK6&owbBaLtSsy5>f+U57?v-o?=Z*YfB- z*U`~T*R7*m-)*Bw@13K3-#w!O-~FRu??a=V-bY7M-p5B7?^B~u@6)5K_rz%2``l=z z@8oF2`|>CV5*p3&y*YXy`0;2(@DHQ4!9R{x1-}?=4*qGhF8K9mb@1EKmf)r_N#wjS zab)Y5JaXY!TjZj#_Q>wBj>x5BvdG>sX(VT?j>#WuWD3R_n5waQK*c6vqOr_)`&cRl zjdA1hFNEw~PzPH^)nSpN*ILJ|Exb`(nJv z_uY6$@T`euX2XOazG)&WzImcGv1OtqalypCq%639QW310ln0w8pUGCv-i%!!95 z3**trym(@=AkI!^$9pEliQdWf#K2@*VrG&_&P~RWS4`%nZkx=c@11P)Jv`aLoSYPC zUz`+c-Zi<+rYR!QGG&OgPMIR@QxZltC1s$gqBuIWFHTIA zB+XOt$uwp7V%lc-^E5*KJWU(crd8w_GfHyf3`(9qQ$=4k)8WdVQThsJU|;c! z!Y7GaAw{Q%gH%4$$tI8oF;r;~SbmeIqj}-`I@W zH#=ht9+`1Pj?OqESIsygH_j-Sn`U6<=9#kiv6<5N?K2&TduPg$56^hnM`rR;AI!K7 zAJ4c9f0*$YKArIyzL@bE{ygI}oIPtIH_qbZ=2;`Tb(SEv&6>&WvlzK!R!3eoYalac z^<){KVOwXVfQjt@G^~i00VWonZKE}_4Ip(}PU`_5Yn>I-v01q*IjeH9vzV)U7IqEH zDqS$+L3>!w+S>$X{o@A$0Ich{`Wci$}LyMLDOJu++X zJu$2GJvD3got!oKKAgpUpUvuhU(J%fA7;(Lzs^#@Gw0~w);ULT$DBKuHRlZG%y}dE zbGG2VIZv=?&Jrx0BZK90reFskU?p?GhzxMB=v+Lan~O#CbI}Mj7XV~z1n{v8U}Ald z&be@;cg_x$5{^ zb2agI<|^Xv&FzoBKUW+7aIPW#$y`(X=Q${maZr}nbx@kfKUkC82Uyq=K*E+DEC*C< z1)yQ802f=CY&n=r!Ux%;@?a`yIw)l=2PLfapp11M^s)Yf1*zb{{1kI=e~LMzmvCG&)&X5J*PpC{xE^G12oJSlIPH_H|CUPL=j zYxVP1t#dwLaL>mLsd+bfa9&9tnn&ns=l#L!<^#bS=7Ygw^W5m|^DXha=Xue4<}LF3 z<{jFT^OWnQ`B3oX`ON5R^H%1Kd5U>+-om^+Z)4t{Cz%iCTjO8OGvqh(G4e0-diwi$ zE&b!Xjy^Sy(VPXF>&yk4Z~X%8JA1+I+qmHH?OcckFInJ6FIx}*CYENh7sTJIOB=`Iavixt4DhGcDgO+USfWuj{NOpKIe12=`nH`p#YQyS6T6ht6LL`z}}t z`F1Tud>1bjgmy3Gg)Upl4RM$90S}u42-gU+e7>Dd~G{Ddl@(Deik~ zDe8M?Ddu~BXt#}Rf*zdbz=XrHc_#x zNz^TilMTzFWHaDlTbEmsvgK@6wVcIjmJwFB472)WB}*(vSaP`{MJ-pRoXg_Wb<1w; zEz2R-t;---bh*=a_i}OQ{$*k4k>wck-m;ticsb%awOkU)I2>ozA5Jiv4d=mr^3d*;no#CSMJQ{fGL*AY1-MvYw0@-|3ajg2#g^y7qpkV;8L=$-S!qx?nXgRiY5s_#F_ySYgsiVY^$myy{b++S4&v;s*nw?a#PG|Cp)oP7n)uz zi5*-mWsj`Zhu%%wc<-fY-bZOGxQ^{#y{+S%!O7s9$vKO&p7YPObv9UU17{;=6XzVx zxtz_M^Eg{LTRGb}=W{OLZ0GFY?Bra?*~Phtb1`Q(=Mv7PoXa?SID0u<4v&+`;d2C> zEKW8jhm*_6joFYy!N60DRlyb^A`#I&D3Qi@bic`(0;T+)9a_TtsoCZ$g zKiS)VZX5sqyH+tLeQxo(;xp3c6`xA)PG6kflU}!0yf>5Xgq*UHoSv|+7ct+IG~@s72swd&%n#oN|u)(#YJDn4hecCD^> zL-EG7`n87QbBi~xHLf)kpI5wPtr_rt*qUxlzlN_F){J|1?Y(I4C3`O|zO?wVy(N41 zr!&&))0_6zaIP)R5S$SFR&ZQ!o8bAZ^;u^Lo)SDMxI%Eb-~qw?fA7hE7yjuAlw8F< zYi}J`y*`~@YhUYFldVB(k~QfXv1VE`r_V`m=DfoBo^yb9`72!Q19VARC==X1wc{nxnSYxeY+>5q!fPrsXfFMU>eFE@j`am}&jTyvGaRC=Uz1z^Rn9 z11fw{Fd-Nhj0r{sBZ32hGC_fWFStZ-P{0wKAvh#BSFlyEU9d~=e^Q-30l3mY;1rkz z?+ZQv!1#xPfFLLU*R%ik_HSQ-t?6y)^V1ikx2Jccccw2)?@C|9HF3>ck_)snF2%KR zX|A2?DCQRPiZhG(#e(9j;_Tv_;#}Zjw1BPSrg`biG(Rm!XQi{#IqBSVUOGQrkSbxr zFT6mwUARNIQ+T0pm+&It#lqdfON5sSFB9$&?iF%{JYlAgFBAx~gxSIzVeT2Po$>S; z&zu3G5B>v6_#fRxzKL(I~dh`Fc?>wKwU&lX#pTR$qe-?i||7`vS{zm>L{yF?}`J4IY@wf1|^0)EN=U>3z z&fme`$-j`li+>USV*YOaCHzbIm+|-Tx&Paj@ISf$5C_7bbx;P>3>lz7XdJp1u7@eu z1;4B0DAy?uBRh~r1V?@YZG_H&Hb9%8e5ewB4{C+lKqQP2nuM-^87Ud zilHh%Mq(BDF4W}$=7mCz&5!_Z^Ulh9KjYUUZ}1oSxE3^&3w>;VBWZg>Iy%YSs? z|4lltT(3M^xj}hKxdw(@JCQ1&_KA^J#EA4GCy-~5=d_<=xmZ4yhZX8k5E#S9t8t&< zJ7dzACbknhh{wncAb>?eLR1koL@iKPQ}<9G*}kGT&^fNX0MClMPJkGaH{4s?WqwyM zFIXO|35tW@tLMR+LSrCcXeYD-+79i4Y9JYaLm?0(^eXfs^b+(k^a}I=^dX2BdK+$q zTi_9R6ut@m5d;DK0AheHSFR#wA?yE5O86h$4dg=PQs^BJlGKiv5fkD=yvTjXm&k|6 zx5($npO8rpli5cSUPMO>6+(4CD3(pnOrUx%QbSNyiBf_tK`LUg&daG%B$s-@@6?I zKOh(VtK0tH_5YR$A;&>jUy&S=m&-A^0mS#|U@0sCQG5~jPWUdRK*?9;0-ifZd86`r zu$V)IJTHna)djpm{qXcbz6R)TPo{b)G|*E@hV zph7es-GdgWKU06D{!sl#O$Ug*YtYCvVhyCJ(396>&Ns{cmdvkH~#na``0Ug*W-2gG(LkL#K#SPG@fgmG7cF> zjo%Yz5_gmD36urg2(L8|ijh1Y++HTH~TzzXj2B zM)#7t$35&GaSyl;yPfWYd)n=HkGt*edH1Y4?Gf=GU(B2pRcjef~|03z%jjz5%$vZuOK-SgdZ-7DRT z-G{rEyKn3D_0IN=^-he8jhr0ij8}|{##Q4h6V?g;#PP`+C!d)*Jay~T-{Q}nn0nms z9*8@;a{7kpUrk>%(?0X$%(L?)^ZVw7^Lg_HP!+XfC}9=sfEhRnLRTMve+J>I zmC6cbwX#^bPg$;PR6eM@4^e^$RRn<%8^RzlB#yj{yokJlhR_H)kH*kLXg8Wf8MGgr zMF&w9okjy_6dgyGL70&p9RqQylj@%|eHupN)HpO|jZI_Kups8N9TQ`1SPO#LvW^iL_~pX}hV&v>yb#=9zYwxTb6nFOqNC4I)~1ko9C8*+6!YPm|A* zkCP9PkCOM0C&@R+8_D03FOnz7-;mdl50Lkhzaw8GpCX?l?;u|%kCCsEFO#p3Pm(v0 z&r@~OwbcF8Pqyv03vB1w*4xgoooD0Nw*2?i``0S~LTfkK&Zalh=g=N{j6OsM=p%Fp z1kn!BEA;=t-dP7XmB;NqP$(2A?gc6|xU^`o0t<_ioXCm0ySp^nG)d!Wlhj#Q7T4nL zEV_%k%L0qTF5cX}cjo=?op~(r>Sey73xZjQ*%i3R`dS*-8U;}A8Eho3-vSf zGxaC*zZ(n&z2UQ|!GgB)?XTtu&b#XWjlkD>dyT!q zzRteaUT5EF-(+8FUvA%E-(g>7-`EIz-R^?9 z;dkIC;aA}6;eR&b#1Fx*!_UHRH@Elw3Bb1_u!smEj9AhLQ=f%gfLz=N2wI4oi#(1z zfjo>nh)PFc8?ot?s2hzi^aJRX=(CMD^d0Em(Dmr!=tJne=+)?h=p*Rg(Hqcf(3{Y^ z(W}ra(EA&2+uO0F*d^Fy*rnLB*!9>b9>gQ?a6AkT;BVru;*Xd5mo*xaVc>*sRao}f|C}L7Lu-!&XYe-`ct5kOp2MZgz_8ZGqo*sWFyGS z{r&En6{y8jFSV3fLiJHSw63)Nv@9Bw){!=Zwzv_{&Z9ACb7-?@je|fMp;D|y$ofrY zPi7k9E8_*T1>+^-8?z1L4dVmj72`Rhf$^T%h1rrlo&7U=4SO&9J_pJf$;sjj=8WcK zHbT+!Ik}t<+$8q`_e~?<{7>$4?l$g*M#%Y7?knyQ?m6xj?se`X?hfuB+}qrD+>P98 z-22>H-19<#&>?gQw+hb-uZS{5C&cZ=V;W&}GsRGGhvxRaKLK&Rc!0Qjdj%>m%!R>tX8=>uKvf>kaGKMg;sr z>n+=Rdyf4tM~b7h{ek_4{jsB!{gI=kBh7x^e#QRA(ZYVS5$=A@e%pSb5%2!Wk?I0m z|AA&VxEH&H9-HT)x2?COH^o=$TjE#wmHsV(GlA2=*TKiZ`@v_yM~ztYzk?5hPeLa{ zXF~@=hrFt#YRxDiLrkDrRah`&p;NUTiUNZhH2RaC%mu=?iqzCQt= z1CS03guem?0Z{lyU?|WNNCl<>nLuBlE6@f08Gr!Yfg$iWKsL}G=mYeIzk|O7Mgqg& z4Zv_94Piq3idc?Via3KfjW~ulg~T99NHmg&B%_9*ET}qE4eAd13D_BI0Zv4JML$Bn z1yj+V!S3j%=ojdFU>f=*`WgB$I2de${swl!reIrP4`DB2Phk(^((s+|SUj$AGQztX-pcM2GBs7n8v3` zX---lt&--amC<~(Vp@zbm+_9-mXTz_n1#&IOpy5#a}E>EoX?!h1env9!bgY2W6pBjO5@J19JlCy~OGiN5}Bey%Z2e%h5n^(Y_$D6}L@h0(p;-Q<{ z`~C!YLwWVQUc5z((CTU2_dI|%gEy5oi#Lq-Gp`%3H*coUEA$Ariw24Yi-w2>iE>4+ z#R74;*exy*bHqBaR*V-%#UimsED;mLDluQ|6MMyaaj}>!E|Z;#WA1M5 zZ0=$1Ywl-GH}^4TSSDMjmNLsx%Ry_ZwUxEEwTHEjwU>38b-MM9t)=y~t+n-q^}Q|C z`qBE%*4FyX*3SCX`pWjg_S_D!ceW3+54R7okFf7{40j+MXvYFafdg>NcZ_$8bHE*A z9FrUq9KD*r{tqwVnBmBG3~|hIpV)cpnvR-*DnuRTdO~c;7wZ^r>rDE@5A7Ve_TH?lIKVU!Mvl?+X z69_X2^9dY+fG~qFmB1hn2y+Mvh%(}F;!)xe;vwRG;xSShsV%7uiAExk$mBNURB}gh z2Dv9Whunocl-&J0tv7Gpm;kvCIhQ<`+>3mlQb3tN8B3W+*-qI(*+$t)*+(5uok+z} zMN~djNR3k~sI}At^%v?AYBkM5TSoKHme5wxPSLi|9@F;Hj?#A1w$g6W_Ry}0vsURZJmsCDX}tGb@29@D@kvoUN08_&jqR5qNAV}oooyP93aUd#TYxxnvFfPIR6ntiqr z*G%BBI6MxAL*aZvUg2i&Y`hJ;rMxI_E6>8y@HX*Q@Z!9UJO}RxZynFYE9RB)YIrMo zb-Z7AcHtP|F5%z8=c3`_fOwDio%ot~v-qC)wD_U;i}Fm*OYlW8x#?)#B&k{o=>6Px3T*JJ~ncE5$U0 zSz%N5Q)Vc8D!VEBC`(kWRqa$M-|xOzL6xd(P^GKxs{U1dQ1?^ksM%_cnxU4dgX)Xw zOX{ualj<{?faap+yyk{>qP9>wRXagjpq;D}>SpO+dbXaY7wf+mB8GBfmT`zN!#Kh? z$k@j?z&OejF~v>g<~inBX1RHkd6Idmd4@U9Jk~thJlgz|d5k&VGR;zJskEH7oVA>{ z_OmXq&asWQ^|TGN4Yv)o<=JxWE$!p&6YUf1lNMNARukt@W+(t@N$-t?+aG9REK5uE34Jolu`p zdZ=%xS7=};Gt@uSIn*OGAe0sA6v_$p3}uA6hn|F9guaEb;j`g?!jHob!heNdgrAms zVuF}Dri|%gvY0BSiD_e^*n!xy*i*w@!=3MU->i^mnMkQ3R6nX!*IH_q*X{Lf$|TP|HChXa!e*CeRDkfC9UemtN-qU%sH}sCQf9Yv- z2)!#KlQEyUjOkF>Ss=-hKqUhu84{udC&`syBofI;$smbTGETBsGFdW0GE355QYbkk z@ksheU=pTewnQP}OQ`Zb^1kvx@;rIAe1cpe@26O#a4M|I2}-DPoN}mYvTB&BkruCl zs>Z7(sK%*At1?uBR72EI^&quSEl}TA-%vkLUsGRI-&Wt%7&RtMOcT{?(cIL+wJ&sJ zok%BbZtwdOFr*vW8rmCL8z6>+A#R8n9vL1O=NmD`IYz*UG@^}*jSG!%Bf?Z?T5hJ8 z0W;4GnunVuW`&t<=9n2~nOO-sEf+19tnIBxYq1Tqp=}Fo2ph~c$u`GUXj^1M*;Mwf z_I{41&J@Q-XS(CA0f4XkFvF?NJL+(u;hbQ*^?wb|7Q@k`U=%sk4dS`mkUZNN9 z&hd`(PWDdlVtjO;-M7KF$5-#$>pSS%?K|Mx;@j@q=G*Vv;rIHB{Wkwu|1JM1|8@U4 z|7rgX|FOWAz{kMXV0CCzXnZI?R1g{ynh9v?vWmmfswSxfJl0z zbEHkAOL^ zQS_7(l;5dcsd(yI>Uw%#dMElkdM521J%jd%-h$qi4x=xk|Ht&1=Erv?KwnHRq>rNy zrl-?W=@S{*j2u=sRv~KuYZz-JYZ_|=s}rjqt2-;5HG$QW)r*zN7P0Ht8#!@~hf~6F zb7CAPC&BS^Q}|_kF`vNK@@afDU(L_s+xZLlJid@m;iLF^zUx1T*nFaJu23O7Alxs! zAp9m-D%l{pAlW84Bne4sB*!I3CCeoV$sWlr$r{NyNla2LIU>0zSuI&1*&>I@@p8VL zC7&Frlq4ViHI+HG}i|Q>W}7)^CR!vGzC~bBSXNn9T7I=+tT?O7>TE9X`xCIqZ8DqA#4x&hbvVlj-C;#m+e{ii_l;x;~Y3 zD`{KOrUc?@aD6FhS&~wcTGGyqci(YebYFAdbYFGfa^G{GbYF6x_f&fxc!getSLx+= z`Cgf~#B1_0y-U1uZ?RYGWq2iCkyr0EdJDZgAH(PMd3+~*$9=#1j`%kF4*L%Ij{5KU z@A#kiU-{qpKl_{C|G&Tfr2nD+abR;WC72dy2(}B>1viHlh8BcSp`SwN(9{qZ0zz{` z@DMDtID`llhGvGlhI@rYVL_N5J`tH1!A1%q(;_n>g%M(8VT2VyL>fo0M;1qZj!cS7 zj}Xceu|%vaRvtSOI~6+-I~n^B`x5&U`!|k>tKynO=R}u8w?w-{*F=ZJ*Tnn8w?sol zeZ{7VEtU7GpVr#zI@Wco%L4uaUILGR%fJiZI&ca212_k~0nP$X5sW6V|HDfl-XR@G zJ1QTwu5rjK1e1a31%AVH$E0G?FzJ|%;0H`kOeUr+rZf02wl}sXPK_(VIdD;&7pKP+ z90tAqzcHSsp_FXBDoBjRJ?6XJd1L*gA$I*CDc zl1nH=3X=j-uoN`q0_8Hb9d!;>M%_uDOP@|(NY~OCbS9ljC(vJzK&4<%ch?2?AhWVPEDf<*ek?@T>VN`Q`kB{Pp|`{8RiY{&xOu z{u=%k{-69a{B``({NMP8`OAd!g^NUErDLVtB@NPUlK0Y~(n4vLbcD2%w52phl9arX zrb_dr1=2Cnfzlq*;nLAkw{)1~xwM7kt>m=igS<>$Avepta;H3^C{#ogG39I}pkk?* zDuGI-602LO!oPp5}qpsWodYTDtC_u1>c?SFc;8Tc!`_gL;1x*#F@r z45JMBhSi2uh8Koc#$Sx(#!{o&7&q1!%Zx$e4r7VYY1(PpYuabtZQf|EHt#j>GcPfp zG;c9)Hg7WTGA}jnH*YoXFt0P8Hy<~zwa6@YE%z*UtQ0H3T4DoiR$I{Kws~z9o89)8 z?X$g&y}NyYeWCM&bHDSL^N6#;S?k>FtahGq?rrS!W;HhdRO=aKEKcByWl(LJMS0zEBxjDufguYuE8F`Zoy?CS_l^+g_t3Hh!SFi z$RT35Pq=q@Kv*5tg|%T-L>E~bu||p`iAXGBj6@^Vk(CisBwYSW`O5ND<;%*Km;V~8 zh*ig`Vy9#0u9{i(Q}z4mf2-fs z?x~wnw*b+q3GDyy5(o(J1^5T}glLIqi%3JXM%+Y}Al*n0(vS2aU!yi-Mq#F4CSk^4 zrenrohGI|{7zT?`VJ2WkWAboTTpg|!SC6a4t;emx{np5xPa}LGwkP~U>_BWwd`Wyx zd`kSA#3HfDHRLi1gF>ayDfcPYDR(HhC=V!isq?6E>UQc@x`xiBOXy@eNVn5XbQxVp zFQTuYhv;kQ0s2~cCH+@=8GSut6pPQ2vh=K4)@GKQ6=H4t;md1+09eaeQC2x?6)VD8 z&sxV?!>VMhWmT}2vg+AtwwA5qtmmxZY~gGY3>0MYp9oqA1_=7_zX`Gh-30CU?*uIc zt@$qmU4(!TCj3=+RCr7}U22j#r3fiUik7;hVkuFolS-rksX;1}vZQe-PI5^qmC~eC zd7XT%e3N{o0;8x>!jxDQUsbAdsESlpwMCPq8LG+D}lia>gnd`;c4gH<2~;^?mgly_nz{8^ltW^@E-E+Zvy*2yo7h7 z_p0$aRx|e>2zKy<*evBad~Ib&z$6 zwVSnvb)9vDb)0pGb%wQ{b)I#RwU4dh9OIne?BpEb9Ovv1OcN9cCJXQap#UeCB$zE= z2^1P zw6)qg?Q-1{-F4k_-Cz3O42umg!yLmR!$QL@<26$k;|b$K;|=3I<5S~f(|Rw0*I+wd3sg;srl^c});NF}`?S zF|U|kJgazqvA9@JOet}c)RokhEG_Z7>7HSpF&?OAxF_4Q+Vh+DvG=q0Z||E@i1()V zFYillLurfBmfjEE7v6W?f4yIQLZ8?d^}P?w4&(>M1%3)l3XBg<362gH1jhzf27e2w zL#mK2qzIWphVZy>B$^eS5cwD#8yy|ZiF}O?kG6{TjdqR>ie^W9L`OyYl<$tMh^>sR zj$Mj(jCYCmjHk!D#XH4`aZ;QUPbBi1!2S;}ktj$^NlZ+POiW7TR&=fyQZb++qawSa zZ^es>`xS30cU11F{8IU%YDiVMrbo@dnn5)~YP!~B)LyN+Mhrt_BC-)tgEcMtk``bK(3dRKZw`cV3}^p(^qeJ;HxeJZ^qeJOn{|4V*H{!;!} z{z(2p{#^cEepfMGF-Iv=Dpadf8&$ulR%+&Ge$p(`Jk!=|S8F$F*J@X2*J)qrKIlH{ z-s@iJTj*ElR~xW~{iZgibYp|@gQ2sG`E6IYkqT#uUve z8eTN5D8K0EqM1eGiY67!D;i%ky=b&$w&k7Wt5t4QSY=kJRcSkBJ8aw41onS;3ELst z0o#7tUfT)VKHC#}nq6MJy4YD?--amutU|04e?Z;*dfYL#l$3e|pf4^87o2n|xZSG!-kTf0Z!QNP|mH!ut|!x6(#({R&Z z(=gKj(?C93;Z`43Ide-T(jDIyfni;zWl%RI{`%NMKGs(iA4!m0+rZRQCKm(Vp_$hish9ZD-TwsRHatIt6)`&tD3L>H9`MX zC#t?x{a$sT22n$rpoXF&48Nvl4e3cL#T$_)lGk@|^yb{(=54{U0`j-HCIT zb4&0@a7%Dqa6y(K%ajd~^_BIP^^o;eq$<)CIK@(>PH9l>Rh?8lP?xA(8mfk_J+AMg z-((OP_@+YBbW?$8nrWhGMv<^cT%<4J7YT}#mSW2`%TCJ<+tuQy#kY!|6<;cTSp2B? zL&+C+Yj=9dr;-K_%|rEIJe1OzrKD0^>HJbc6WIUZB}!qX@X|S@cz;`eyMQU62$Tdg z0a3sZPzBLJSa4m)8!8QN3a^jei=K<#i5`yr9=#d86}=q2A3YPj8hseO5`9vBGqxr6 zAU-TUI8Kk>jDJZ`61W60v8Uqaiusj2EBjQXS3RlvtLk#qjT%o4y+%!d8OM!p*WpiVVdH)n(O14PSe~1QZ2}e3oYZa})IM>g5{g z>gyip&T(hEGd%*2$g{UpRjMsD`@03a0e_%0NDXcX?iRz!LGno{#-e$az=aH@JKyh zORfH%{$7D_AR45H=atPaLzE%o)0)8k4=)ifj3164Ob9C)zp7igxbl2e-|G3*`PGHh zQ)({MT&WvZC#nei(*A(w)?IE*K~J& zsW%h~1=81GMy^q4 zuUG(!+daWO$;~K@mPSfrcC9}ne4tDa|0zB%K0AIaA*-ZT7cL<6#6I|SX(xH7x}+mPSTJ!?!ux2*sCvu%@U$?**n8i+}9a$-Y4L-)KMd6OC@ zH+0VHk~gJcYD2rc_IcA93LDzyrR7a;n92dgx~8S!n8@)`N~ik3oNd zE`jca?t%X2o-{xI&l6ZSrge5bi3v=r)vdZ1IG}*apH=CEu&(6-v$s3rLn+MGsls7nUNZ!!KyYI76 z$z*miCpj>gn}j9@B?l*mB!?!4C5I;ulJk=bk_(fIl8cj#{k@URxJ6xb{n8RmldV7p+`5p0AI zaTftWwm?=Pd!S~bNT}aYX|VRNwy<`v;jjYOJ;cwjc`z!B0t>)?fz3dqAU`8#p-!M4 zpfa(4<9gr+BCs;pQrJP*0oY;KG1zg~8Q4kKDcBL%EW}I%7a>MS5F$hz z@o)3_|9{!&|Je^yk!_G|kzbGv$Rx5SY7%N5YA)($6b0o(okE>Nok2av4aE<~55ted zqlsNexunS?X(I;2NJ&zRg^0Gz=EoL>>}(E z>@w^M>;dc{>>BJg>}SMmga_e8tVMi6d`5gkv_mdI)*)M?QX9`cn;+ksKrd8()E(FY z)O-{jMMFtZ64Y+gE7U{OJJfU3OVm@;6VzAKN7O&4zfq4-&roksZ&0sMk5DgAUr;wN z*D*cuqwx876<&h}i4Nja(i8GuXFq0- z;*Q`B;|}MJ(FTQ6=~3QPJy!KrXR3#&hpO|``RXz1vFcK_ zS+icVU-PnY2=RUGJMCosKE2BDz22L*PbN zE)UqEpdb(RVSoF}E;dv3b}b z*pb)~*wNUb*gp8a_=)%eyc4g(JMd<_9&g9n@K_>_SVD9Yi-{iMXJSv1o^+d>O3_f7 z`}_U`RFqEC4C*!NWok!82Sz%hGlR(>GH{Fu?5FG}?C0zk?6;hEoHXt@R)iN(MKlp00!4HYQM6bD6Uk&$1zAy~`D9Rx zVGFSU7LJ{QeT6H;*We@gmH1lxGJFL-hWF!t#Ygd8{Bk^*NFox5M52#aN(>T5kYG>?!O5_8azl z4wVbz!npt!!6k7qTncwScMg}vMRBoQw(t+(Pa=w_LSz%UMIKSHs7fRd8AKtGOym>s zL@`lBWEMF@3Q>_rC31;0BEP6iln{Nt`(_2ZNFy`J%rc#fp`a^hiX)0cjU#zRsE4a3 zsteS1&8x-%JO}j$^!xQ1!xs~1iCLr88f(H@Wv#Sswo2_0d#T-TFZG=FK)e%ub9|t$ z#>eu@{Pq4dfs=u%;Ktyg;IZJ*;E~`xayYa!v^w-#Xjy1}_*nRKcuZ_mEI&3ZHX=3% zhJh(zrLZbkEo=>JEldipf&1Y~xCJhPSHVl+F1Q0OgR9|gI3I3=$KXZqAUxds`ribH zuK|umAQ2#fkI*7C2pwWC;u~TLvH&>|IT@LU9EF^KoQd3r+>Jz{&?poNf#RUFC>=_V zx{SJrx`I-o)#w;nhb~83(MGfu?L5{cnQ)=aGIU%^__k{X*J7T18qz+C-`+^``Wt^rZBl zWKgMbVea#2E)QQ!8px0!r0F^#MsF=&$z)@!??h>$T-FLow1U! zm$8TOC*vC9IO7asE8{w26XPo5GUE#47-KEtETfRUg1v|Rncbb!jnjdX%4x~z$boP= zahkyX4=>S!(~i@Ilg@3=6?03uZz7q9>wvqD`XHqDP{7(O%I$(H_x#(HhYu(FM^C(Gk&3(LvFA z(G}5A(Hqfz(QeT_(GAf_(OS_f(M{21(OprwEFg=>ys`?}2*pT6fnuJ5tKcgRD9$Rb zDXu8~RIF02RMsiiD3>dzscX~~>Pod!b4c@6^Ir4Am)8UVJkoyC7V2l{XX;Prf7crf zdc$W!g9&Z%SxPOft-GwttxK(&tiM>-SXWuMSXWy&SRdIMZ0YuTdyT!qzRteaUT5EF z-(+8FUvA%E-(g>7-)P@w-)@JwM`%-MTj+TBTv%IfE$;dkIC;aA}6 z;eW!9zz@N%!_UHRH^2WkLI2y~SVRO7Ml3k;joIkcW{6k?ANb z%805&-9W8HA3(1}pGBWQ??C^Cu16n7A42a%uSOq4A3^_)-hf_%-h|$bUWHzP-j7aV z?ATK566`YUQtVmmdTbO6;t_Z_9)<_-H}O~TN&Ex+6MPEc5&jweI{q=f1>p;xPh3X) zjrc2ZDRDWm1qnuilNOT}lCF`?lRl99Q=pVgikY&6@*Cwdr7d+Nl}&Y1o521LFHubO zQcI~NR3Ftt?MmxU%c4PP9ce>oi)k_%kH(zjk|&S5BDke7551D9Cr)%I`p08 zC=V#>m3`GC)o}G9HB7xwy+-}3dbxV3dRgP>c$cO`+&8^K4bDFu0 zxs^H9TwrMe`#-!yz_Q=c*_v+cVx3^UY<*CUnL zWlwRmc091(us^o9ay+uPbfh`X+ppN)*jqSm+ArGA*>Bq~*zee1*;5^WOYbte46em) zq1)!U=xOV1=}qz0`j+@qex-kl|4iU?;C1kE@P6=F@KNwZ@bBQm;FI9V(Am(z(BaU+ z@PhD}u)Q3JEsQOSEsinb{P?N(i}<^Ei^R&rjl`WqtfHa<2djtu@Z~i@03CpIU?A`c zJ_vvUAK^oRo z@hf6EVkzPb;xytI;uHddBq7mAB9e?8hO(gQP&KGKs3+*oU<+^}_!a#K{T7`Henxi( zpQ2x&@1fJcm*{8c$LPUe8}J*t6PSW+g*}A5h&_cpj7`IJ!ej9`JOST@(3{YYkV(iO zbR#^+XAuSxh7zEJ4urJk@BcPI|3V^;w2@d(+(z6&TuS&cT zKdp@BqZQL)w7HCTjJC`q1I8?5j%I?)pO|x)aOQmGWG29z#vH~R&K$yA%v{8r$DYrw zU>{^3W&gyP&w+DhagdxvoS!)}IUhOQxjneO8W*A#@aFO6@KC%-yq|bzUK7~=;U$Lh z>Uq6*i+Bj$G~RnIz?;FF%A3U-#`~Gqjn|tuljjwBgxiG!MT12{M1w@RqSqpUxLoWO zmxwuHomeZzi=$$Z*dvyR31XF)FZPMOV!gOn%odl4Ps*;!9?GuCewY0ro21YyzA8Q` zz9~K`J}6wu7s@o%OXXeVGv)2Zi-=@3Nlj4W)%(;()yLJF)%EJV>OJb6>O<-s>Qc={ z%}LD}%~{P*ZKgI$J4E|bo2MJBE71M$H$4XPt{}e z6g^pw)f4m&^$+xa>F?+t>!0ec>YWC+;hG`U*v05EWt)4M+nd{&v&=c>?&i+s9_GI0 ze&%#@A9IFzvW03XvmCV?w4_>FS$kW1So>IeS*Ka2Ti;k)+Fn~*+g@1TTT^Wxt?#UD zZQrczY+tRftS@ZOZ4i5B`!M@(`w;sG`)>Pi2hxFdEN~P!0LOgCc*i&g+%d*6$uYsv z%h3e(e|U)*j(o=u$1Dfh<#nxgMP0wTR=IqxWv*(M%&m3X+;+Fwt#|kKcJ_AkcJTJ_ zw)6J#cJuc1cJg-d&hr_3dfzX;r9Q2HZQy+1V&IR!reKRuYUo1{68ao`A4~~-3$_k@ z43>xPg>HrJhmhgL;YH!A;alM=;hW)WVMjS5#*EQp#27iois53E*zVZ<#M;Jj0aq)b zRb#5ARu#bvfEgeGbAegFB7gwQ2iSlHfB_(&27dVRnjiobpatMSCqN2_0TQAd@fsmO zN|EQ0*N|6{myn%Nolt#H(@`@}g{Z@*uberc0OWwPK?+C*XMqdAd=LY|K@c1bvcLjx z6i5O`fJ|^KI1|KzZL#gKY1lj1*0^@KRNP(cL+od4OWb(e2ka+o7M_8hK$uCGPv8&) zgc*dX1O|aXm_t}VkP(j)j}ng%4-xkhj}g;IZAooNG!ltKCbc1_k~@+!$UVt9ZqL^daYx2a|h|?~@BC6DVUT6Div%J1E;ITPgb}8?9@-MxO4=#f7TROlUfNOGZrWDbP1+vXRoW%mG1?v44%&6vaavzS z24fy$33CNg!HhANGM6*8OfECQT+Ng-S1~M~tJrJVe>C&|n&9X?#XikG%O-OO92SSi;czIN zPn;{r46cp0fwz9AGF}aDC9jV63(w9QBitqY zTlic!Toe%R5x)~(6K@vZ6Q3486n_za7Ppoh7oQSu5T6sT7vC0t67LXy5dR}SDn2jn zE7>Z(F8*75Rs2l+M*LFzM0`wqM7&!3T)bcWSo}$rCT}PICVM5DrZ6jPihjxrWlv={ zWglgUvbCz6Dn-=<_J4SZR8@mAU3FLWuj+%UpE^g)R&&%0wM-pUUsPXGZ&jaEpHT-i z7d7WKH#8Hqh1#jw3EBefWUWv)O9#`j^*p^;|3x1$lpC^)LyQ^55ynBrKE?sYQO1ZV zZYnp;G0!r~&7;hd%u~%X%z5Uq=Go@a=AX=C%=zYNmRd`t<+SCj<-Dbzb%Aw`b+oOg zZJ=$qZKy5JmTPNiA8(&%pJ1P44>)Qa35U+H)Dd&+b*ynj99~DX`TVa5j$V&ri9_o! zI!q3iV}%2B38=?i2VC1+M_gN7$6Tjen_L@QCtN6Zt=sKhKp168W_q9 z^$&Fp^#~0JWraG0azZ^r8KLf>C!rUiZy{{>Z1|t>@e0tf?EAO<9W zN&v!rgHRwG z1UEO%6xt201vi03pa)z7R)Fc)(YRr_akyMu9xfl3jq8ug!hOPh#?kOvLM6dMh!Cm> zD+o%WoOqsins|ZuC$Sx=Jt?2GhzyX&k>`@Xk$zd$i58ZM3_ze)NI#&$J%&*R(IR_cR{;4Xq>nUs@U+Lhnk?WXxwQ zWBQnXFb^=FGEXp%G0!m1GaoSjWZq+5X1-v)WNMi2na`Lvm`K)j<|ihF&0#axOm>(Z zVsBteI5Likqv1$7VUB@Q#L;pZI7v<>w?FqY?-K7W?<(&KuQmS;?;qYv-e0^=yz{)b zya&8fyfeIXeph}+{t4c7o`nCU`TAcI^j|2PESx4x2xG!M!dJpkqS2xeqS2B930jgZ z86)9J7D%!rP{}|^hJ+}=Npd9^i9|9|GDsqojFT*uOqPt0%#!q%6iQA>Jd!>Vn1m^r zEm27L5~`$+ysvzaJWrl2pCFgW`^gt6oC>RAf)c76ryQ!BtQw{otIAP9RpV6?RO3{m zRT-*5sv#<S%ruc@!9Z>#UBjT)0Crip5{Xl`oY+80`~PNb7IU;k@@ z{?iR@4ebrB4G=@Z5I4jOj|>kC^Nkqe93x;v8qvnZ#)U?>5n-$|EjLljfSG3o&BM(S zv%*X_bIc60%&as!!HbqlmiAVpwb%;U(6)s(gbik!WSe6vv@NosY${t97@y7AqfpxZXzIJqQo_2h5ymg#(6gWFNTRCq!+Bh#d?l_39JFaW4 z7p{x08?J}0KV7$7SocBqA@?S?!xQr~f&Cv|Vv3jM1-%sSRPRhL+Dr5T-Z|cJ-pSqx zUW}LSv->vq_W0_3dwmCeyL|_ITYTGn+kE?dJA7V$vESxD>%Zkc<-hJf=RfVg;Xmg8 z68ISS8mJDA3XKothYCVtLK8wQ!~cZR!VMv2m>vEj+&$7GGBA=B84yX2bdI!%bcvLe z2g^&#!{yQPNO_>#8wD zS>lH;uL%Npm3W$Xn|P5}U$L&@aP67ebG3HZI$$fX8K?)20{eiqz;<9aumLy@Sddzz z8F>f!82J!+ANc?|8g&PJ0$u)j9Y+X;E=e5I4=Gm;RN9{VIN^HVGp66aEP#(z$Z(|izs@^3Ci!3 zu2ejAEp|t0gNWTO=?!Ue1@Z2W2!RMn(9sWm{@I$Hg?;Ywh5MDmZ6p$ zOT6t|+dxaMWr$_Cg=XDn{mlBMb+7dc>(|x;)*aSe)=#Wmwr_1ByUgBb7uaj<61&B& zu~*sew@dA2d%c}&Z?M3qZaHe@LGwg1q5 zto=m$+4dj*(|_-WPw%1j@7g!Ha@~3ExNEq($GyqD#&e&i#IwRv>bcER<|+2v>nZXS zde(VJo@JgpJ>$Joymelox7NGed#kV9x7c^P?+)KGAKkac$McbVi+rnn>wI_nmiU(Y zDtw{NP@p5w8F)XiGq63dBXBBkE^sFBdw>#@2bICGp>d%Jq2ZzNp^>3KLMKD#LvhG` zZVW#gJ`g$5WsHsPnb0${=lkMciVqj>F8;ZAPw}qe4~su8{b}|M*|};rvgK zTFFN8{F0|i;$=CM>69sy^JNn$LnwKaQIye?Q)QDW*HVU2#!`MSn_51(TtP*styDkN zPHm=|saooJDv_2?n@tnaYH0^5zN#oEx|n z9+g+h`#Z0R$L6VdBwjUd5wD)t!jthI_|NZu{c!%D^LO(f6s#9?3%Y98*LK#vUb~_8 z)7qW2(c0&0U#fkg_SxExYTvJYs`kCwM{3`!eW-S|Xsu{r-9qt1alB!I_+-QN;$`BQ z;v2;(s>0*Kn$#LmHN9rFN-F z>XR;$`D6jv%EsbGp1evfluP9G@<9r(;yUFh``zrB&%v9M$VhJxz}` zZEkw3>7gc9v%9&yxgT!-ioe87>iO!&)sLxvRv%M8(9+rBXi>BTTe@31THGx!v{+h9 zEiYtcOOkq>Zw8_+E+G%>h z^qT2YlgG5x^s#A&X}RTU%Ti0eg=kr1nQAGs+-kYra>6>$cG7yrdfIy4`h#_v?U?n7 zKfHc;0FT(6_L%)4d%OJsyWjqI`{VY9?d$C!yVoAEKWY~`+nrA5r_PU^pEyPB;r7n< zKiVg{$Ga!FC%7MSS9+)(hNsFy^RPTz57R^UT;-kWo#9n@o4hKo+}q@P(x>;CeIZ}K z*W&a0x_s+>8lTtqKu85xO`n~H!*Vfq5p8I+R{pb6?AI?9AbguZf;xokqNyA8a zq`{=UBn#O}wvpS(cJguZrjnZ|ODRhz3n`9 zrgl*`P#>c{LanFe(a%+kp#N4el0J<73;ihl2>mBIkHKejGdq}E7PJCc2U&Yq`&eJI zzGdxatzt{r&$IsleXwdy1Bb~e;}|&_j)WuPAe=`z9?laS7w1V%g!6Y!2WJE4CT=ZH z%xmVwc$;`uo`?4guODvzioe9eJU_3K_ZZK|+rWE@_XID(dy*ICJ;>Y4Q}9*%CjJJ& z6M|<28wIn3*9w2A9Uz<`yh?b!mLQxU94%C^mozQqIX2g#Tv0m zOcD#krQ$Ymy_ha;5;urlVzpQz=81!1s(4p}SX?P)i+iL`N;gW^ODVFbtgx}Xu~zPo zx5^Q@UanKjR9>&VRykWaM@dlTD3VRJx~iM|5-aQA3xZ+i<@jVh9tS^QdWv*=Uhll$J`1z|v%?vCu5#mbI1=ki9XjV{Joi z<82dclWfCnTkW6Nx7pvaciMN_Pun-yx7**aziRJ?+rQ#3@r-@9{eAm$_80A6+1EM? zopsLr&TpLGIS)CHI)8Q^bbjmH>-^Dqz**nk)BaHVJl9y)HLiTu7}xc#Yh47_4A&Od zHSX!|Yu(qo=eTchU+tdZCc0}q4W1fLy+`FK@czYnop-+1;ZLg`N$Q2c>VAIeu*55To=7Nx-zPYilali^SX1pAB(*b`yjTS zO70m?no62T8cUi)(vu!1eNFO`{p1s58bw5Drqoh+lqQOhQbXZWq!clwj>4rVDX&vs zp>CtTO>LlELtjL1q93P^X57c##PM<-CaD}F_~ zUHXyq6Y0CsUD6k&A4tEH?v=hNeM?%?*d>2R9+LOSWAcOYk&01@Masp>zbU_09#-D3 zim7^3537D?+S7Ej>HDTfn%Aid)%U2^s@JHusK0C(r`g_esO77c11(2dzH8Z~*{vCl zj6;SY(~()o4CERl4;hOz>o)0*>weY!qMNJVY9NEt4_ewS9P16X1va8>o{eC8-1dm=JNsGtPxfE!IgY*d z@9n?X3Qh=)3DSd%pdc86v}ixv{uO_T#i6C4TSI>dEeXvIjSbHY&j?Qs z6T;KNKZg&7e+|D7*%~<)`8hH->Wxn7p4C04dv5pm?&;lM#6F9)_jL8#K)RMhAT1#M zMs`v36c5Eru~6KUUDQvhA5%Y|7SL~?&!(&Cw=!xNTbWy!FEd|YidbveFSECE-r#KG ze8<_zS-@Sy{eZWF_XTf1?>O%}-cjDKyo0=-c}9LK|4YGcfnL}lGzlLRb_u@{J|skh zL7_)@zmOr?Alf6k;t#JM9>B1=FT}r!_lft5zY-r3|0F&p){Bpd4~UP5cZq)y9~XZw z-6#D;`knN!^k?Z&=}GB+=`FH*WRgZ%<74t?=Es}M)vv0DYDQ_|EvH&WYWBD6*X-4NqdBPAr})9j?72yM(#uwAxn@|$Sufn!t#=3i{)L*PRml;Uu`RGi*2{tp0tg2OmST0nC=+vnCZC2F~~92ai?>+ zv(b6hdEWVl^R)AvbA9`2*BaL<*L|*)?q%*3?z`Q~-8zrfWAYe0MvvaJ#QTsp=I!#X z^Beth{R;nme!hQ=f2tqx*ZJvwiNC^M>fh11v-7>qcRSzdyy6e9A0EKQzzc!hfvbZv zg7*hM4c-%aE_6$HKm-kMh&~a0Jo;30Y4`GON9@DcH?h63uVY`umi4UZIatz3*+BV{ z`UQ0{oyGo^vygj|_fKA&H-vwdcaC?8_dI{EU{3XB;giBQg)a$T5WXSYAbeWL7Bz{U z7UfAsNaErllC$D*k};BV(m$ke>1nB|QPKFQ{8jlR1w~0!l9ey3URAxM+Nv7eyrG$+ z=Bg{zZ>ir_&(mC|xj{2SGfP9ze6J}*`r-Dk_)C-_ETjVAAY_DwtkRv)oztoGO8xtW z4-LbOADSOCziK9N^*rHy()*FO!*BNo{15s!`#1QX^grVd`6K?I|Fh2Boga1X z>O2_O8~8HtRp6Vz?BGMeM}kiU&ji59o5Bx=M@L?d0!!x$~V+~)PvOD=$@XV ztbcM&aen9g#>wH2;qMoGEjTRvTDV8}sc^dFTFG3=G|4rRNs_6OA+k|2s_a2oQ=_`^ zW%&;Iw{nZ3O#!d>mD^NTHE(PdscY5CG|M%MHMeVS)!d;GA@xWzQi}+YM#QXpPWPhj z1>F~hBj&HoKbm)$519{}PnpkI23tp2&sgG?N*miov9WA-Iv5VBW3{8g(GRzO#b2V( zQRKMCL30diAKtEU$y^qf(pBeDyX3A?ccJ?!x839LZ1isM9`Jwc-{*hR|E_Ht=oWhTwHUPH=DVT#yx_hUlTKp}WJY!;>RdMMgz`h<+d4 z9sMe5>*jRJx`o|!-M&~b=8ruaJ57F`@*L$^%2vuD>K*jE=vw;k^zF>koU@#%{E7Ul z_}>Yxt3E1RCMl3Ckc^eJG=3=OD*4Je%{MgP_@CeZ`{C0&uX&sLclBD$U7B^8W18cd z4Q?%>L5#>+U5|)*<}$dFe$t~JTFoZxixZ2WJ1@duIAW3Vn4)g z?qT;-^>BJ_B`qesPI-;;24y0xj`2S84^EtO4gYF>C;y1xoN$ontZbI&8*w6Ab^UPrSNtWWwEd-RTH7pZzLj9T)+)5s*adE#8|t7Ixgy@wbk}9Sb_wn#EB^5M z;Q=fQz8QQyC#u8Wy)LZ<}wmJ3Jn@r>di}gV#|L6o(k$iU>VY9{Du# zS>)qLX;*m{rR#8aPwZsuW6BZgjeM3ws+1`|R~755y1!bNSh-fe!{-P%RL1G;uX%+X zD}t+nD}(O@B_VbsKT3_VyUuiL(`$^YU(-_D|PBR zrp4yUgpv8t>9H9xndXXrtp7(3AZJBR&Xj);2!tg$+X>4ENY250LOwEJ)-1xT!T|<| zvmyhYCK8B}furUS<}4e?TtQfI=fIYggq6s^uDc0$BLmOgL%0XYrQS=p7s-8Y6=4-J zXyR(ZYGjb?KEi#-ppVuN)*yp#T1!}q40f&~tV0I>SV$;DhO8-bxZ;i8L@*!U?C&tvI%TtWE+GekdcQt1P(H41((1@M%`aUs6s}? zc?2FZn!zXVk-E8 z6Y7z1kHf4P89z)+5F_IS5`qL7{}v3CkqP-Sf()6UZzMD#6TXoXENLOMAd^3U*Ad8+8?^-Onkn{z9CT#CfP#VO z=z??TbaWbeEjl1xFmujKV!Sv`ij#AmkC(>F;*@xKeE!Ud@dYy{pu^C-_$~3jqI8rQ zzcs$NU}C|f_>%bF3dRN4C8GK}yqiB3}{J!|Qcwu}^d~KW^uZ(lh5$LF# z&vQ=YY|NjAUX9K`ugMqWSLave&&Vg|bK=~1Rh$D-oCyVjIyyv=ZG!7qOk_Bsz$8qK$YPaS`!G;%ws8#13K(aUijiIFdM) zIFUG&SWj#qN{C`&F_A?S5;??!#BYg*iHC?%qKw#xjz!0z^_B`e{163~2f7CIXxqI1ye z(7EXK=nd#R^hWeA=uPO&XaPDOU4Sk`7ooSHe?@Oa7o$tizoB=cE6}^pmFV5*J?OpY zDs(k^AG!uzi>^Zp(IT`MC81=r1T96&PzqX(Qc)UOk?YO%<@$3wayxSaxxri@Cv)LF zN&ki2=l5IKePAN&KKmlW_Lv3PV>V=ux$6p3vd4@ig?(m^Nom<*a#FIl zBulcFdX$DId+DVNJlV@U$%14r8%y?b@nkPQDcLJHUJc1!QBtzE4wAhRkt`+I+vq5~ zsAMlGE!j)PlD#GWO7=o-ws2p`pUBNpAU8`(J@pLM-tJ|z+vWImOM`iurLpE@k_sn5uK8t}}gF)8!eCbD9gPn#}4 zD1^*s(Zyswvm`1>Nr_5wMxwF=OH`Kr$wVauPgIs?NmNpg(Rxi((o+(ZjDII8lk$qp zpIC{!BD;^gBKH#VihMk;C^%W&YhF zX+Sk8BWp*_lC>+znzbvvgsdIqYHOa>ACCOIVOOlP- zFG)5&o@5iGC)u!^SoJ05#6);btgat&VvaLAcfVONMWh5 z6qY8g!%|rKtSKx5q_B(^OkuS_3X6P=wZ^s6jisZ%CF4|)OT#lx6$5DJ=t&tTMoPwsd5V>i zabo{h#wjU5RC$2}5f>6fRgfU!LV~Dj02dNORYSQ+38E@U5b+ZUB0-h}QS~J!h(t*V zqB=+r)h8#2((*ZVztyMZb0iu099c>}r!gg;qsW@iQKsc{R0EWd&rv}>M+x~H736c8 z@O(~lMm|T4=W{e#ZAv~zw^#@17ySj&FNTvwNWZi~`o)N)Us?wl54S@4#fYU}S_c?Y z(l4z;+VJ#?71A#@NWa*z^otYHFYQ?R#RcgXcSicfgQs7-So)>Y7{Jpn!9@Bcgr{G^ zkbWtI^h+_8Eh#!y4B3*R)5U4olA^Q4Shl3-S9n8#WlM@6TT%?!lA?GqWJ^eC*%ERh zTT+t9mX!WbhGk1iv201%kkYed6HBpdNm*VgmMtlRY)R?)vN7dJ*%E3V4bPTTBxOrz zM=O%DC3F#kN>58}FtR2$m;)FmnZK|S$qhE1+^D=ja)S%WjjCZ>wCV!M4SpiIA;?H> zRAb2vc%zb<+(^nrRG+NL$VG^-Ttr<`E~5UTa}koHT!bto7tsj02zg#3o{LcQnTt>+ zauKRTE~4q*xrnsXLGuMt2Wl*J&;qFgjSb%I^qM-*B~l0ajMRZ)p#HdFupUweh9P=L z9THydDw`FMhtx1}Gdsa=qGok5kSGjOazk8zxH2v;V zo*Xx5`aQYs^Pa)((;i&Y?@iP6ceVyHH2tB2;U^=Y>5pQX{z9a<63G(FIs9PuBBEbX{nnq zEp;=lrB;KMx+P6Zt--X^+CH?@x+E>N9@A1AQnb{@gqFHByOugdsoYk^7Pe(kDqGW( z$~I6c+cT8P&NQWRJFZlAfl}FXQA%ZRno_yb7U)H(tOliW2z0>Fimt;kTnAj7p#!eY zA^l2D(E*o$4!G=3>43{eQM2lRX_Xa8I$(N|4w!-IfSCy$Fe_OHjHztd36*VSLS@SV zm2Kr&&ZJ6AWy`6l{FO7h@^=oVvgLxxw(6o(wmfnbsBHNuDqBHTm2EYsY-#}uN5tO`*hC`4P2m~vZBn?|*QLew;(6<3Iw zKq1h_+=YM6I|&)CLMsdms8sXCL~@_N@9#7pA{-cX^WZ zm)?P%-@JLAxEIr3`ZDyFohkauzyPL@;kUhfUZ2`Q zKBgTMq-h7Mb89b3J19!h4mMnZc2JsKJBTauWT4Dz#FcsSEXq6uDD#v#isQ-wiX>&8 z5|nwWUX^)GS(JIrm@?0FWAn@EG-X~(LYb$*lzG}DWu7iYnWx8yHzVlYOc&I> zwc)xq3$A->1Kpbi*S%S@>fUUid$V7p?#-E1_tu`OdjnOOYm*yPWv;jzQ(oAmQ__2#8hRWEUL0FrYegZ=sFTJ_F$^A;$Bo`BrfR$88llZpxJ_-elg8f z*?CGrvsHGAf@`+QelG{j7Bxe&MN4S5DpE9C^emb!257dJpxI)jXtvn6W{Z|B1Q3_B*DN__tDqIoOl%$Ai#uQQNB)w5fR=tr1(;I0oN^hjY^+tM3 zZ)C{O8yRuEk?8_@BTE*&k@bXapf#a4vQ4udv-hdyaVDvG+Hp0HJE7+BWT<((DQX^H zFKV97BsEVUq2>wVYMv0T<_Ra%JP}OI69qL-7pCTkZS4Uy4`~o7rx?@9kP=!Ma*|f2 zWD}(itqe6yD?_WN=T)4ekEr;Ko}`swfL4YHS{YV`R)&phWjGh5mEqpROV`Tuszl*q zN)!REL=l1#rS=CQrbMYd54;H|QEE>JL5WiPvv8a!p+pg1P>Is8ON=Q|q_`4A21=Ah zP@>2aN)&}onMH}BN+?m9{!591>pawHI**nNorh+J_5wN&9j^1x&oLzFJj|HR!}N_bJ-j;SbISyUA63>AeZp`!4nsVIEC zs3QG{?6MYtCgMdbMiXcVFejY2o3QHWt01?u`9GAT`?K*lr*ls+^HR9vG# zYoOyA1;%LheVh!90=IzIhem-f7bIyEguQ7LFa>}J6aaOD#eFCMq`fEr8f)Z93IGKt z0F(&@fC^UtG~o(>=10^?3V@a`HRD>66aX4f03aC(09`@>pr32N6#zy|0bst*oH1Xw zBWxgIN2qjIg!x_`-2tK`z!t}a3X?h)l>2(iGuSxjyn*19jX?jh? zr`L3Rdd-08H4~p+vqWr|UUL%DYc5Q$d0D2{e3)JfV0tagI=vQQ)9bon;y!1?(u~=# z3}(ZPFdLTRvtcDZ8&;*vhMVx&a5FX=R>N#q1GC{4m2$NTHFO%1{YD<>Mt1W5r>d2V9I@2bv?dx6mre>hELn z+L@TV2C%ti5T9#?V6GXyB{Cq4M)A33H_SC-NpsB}m}{0Cq`+L03Uf{RVlc3M%U#IB z=9>H=JZ!GXe_pV+dX6w{t|`Lini806isO+!ITa`2fPA7*j_n8^w8nVckLCMUyZa*Z&PlVdYE1Fq2blYlfMe z8fJ2uq?sI&G?UZeGdaT-=9HP7<(w5}au%4$+3=a1A1eiCutJ%B=-gcnT?Wxi~=*v zliJ3a&$i+7BrD95Y}h=>ku*(x&1E3IjD~!#PBKSP13+72N zY@XDE&yz?nPoiM+B-%tq9rJw-%#--oJV|gwcuq7(cviGYvQ`H3Bst8Jl(ni)HN^VbdBnOl!PbI#Q-Jod<*Xv?c`8ns9j}F|CQhw5AKD zHQo5MCI-`*9(-Cuf@uu}o7T{EOqkZN3ppr%wg{#*5}4LB>g9(Nb|p+}nm21;TBC<) zjbWb+o7On=?J%uz!L-KB@viE?rZvIagV-!2B!W>0HVcVP>%wOt-7pL3!Dk_q_n5o6 zIecsuA~-4E72mgh6~35|TvNQJ95vvAbaw5`$St z&%b6NGS&&vWJ#3KXT{!=@Kk#okq%XGdjuv8Flgv< zJ??$G1DiB-!K5K}%30c>i%pZwjR>RjV=!sZ$N;p@`NtFh?Frj+0JJ9@%mL6of7Sp1 z?PnPV0BAq^=>Y)R6GsgM(0&ecAb|EOS_T4Wzp`r}fcAHv9SETPJ=9zP?eBdq7eM<} z69)lkzgjj3K>PbX8U&#Inwtg#XusAu7(n}VKMn@azHrqL0PTw&83Lev@t~mq+LO3L z0kkK-HWWbnk{QDQv@g{R1JJ%~&oBV(DU0&}v@Z|j0ccM>nFpXfjXWGc`-*3V187el zJpw>`M%@Si?U_490BFyeI}$*9cH2k*?JEzB1kj$dVibV(-1|oXXkQf{1)x2TF&aR7 z{+7`I+6$(R0nol$IR-%cn$N}nXkWWvEP(bx&sYHMMZb&%(7tZ%H~{VIA0G#xeZ#Qv z0NRTM;{mjnyfq#`dujdz0PSV^2>{wRelr0;d--h>0kl^{CIV=$JUtOWdlh98fc8z# zP6E)rdHiGm?bVXW0NS^FFd0C5&5ct4wAb3FLC;&_0fX_JG>YC;-rYCI;H0OJ_cslUtAg?TG-|&q)I9i4QFpOjtG(1MSfa z&^`{JJ&J+$In(kn&>l?!?ei0$eLMxU&j-+cAr9K-9;X3(4L8d_ADH44}O_3us@M2HF=Tf%b&}+83pP_M{}xo}2*f zOZo)uOEJ)%k^mmj0{3fj|BKzn)yXwUeGnE>rseSr4tO91V;IB3s5Dd-inuLjUw z^rt}kIvli@BtUyvpb-b{6#&{Rzg1zNeX~-1PE)2!0qylTXm142-j-v>L3<|#+P4E} z?@9vg-3OQn(B6ZA_TB_&A4mi33ojD1FUkPzNm)R9a#qm3GlI_CXA^FT4cMz6b~HNm)UAassq3xdhO@6s4qr_T^bXds=P<4%*WORGgzF zf%fzi(4KLMnF89gvVivN3xM{O0NQf_w66lto;#olKzr`cswB{!3!r^f0<`C60qq5s z4BA&Gf%YN*?d$pg?dyN5O9SoeGeCPu3TQ7&0qq;Jg7yGxv?(o0tMXmtJIXheZz~6= z0JK*EXs-g$UJ0PR3J2|*GC=!g9JE(!H7TII76a{d7Xa-65C+iR2%vo{2HG13wH`JC zXy1x~_QnCNDWJV^NGlH7w*hEx1<>Axf%bL)?VT8C-wvR?D+9E5H#9?Th0@0NNL) zf%c>XXirXn_9Z`*VxWB)2HKYnDLY#_u?z$4OY_Pw(7qHv`?B+;W6F|1`|><04%*X_ zK>LcLv?S2JLPV!B(m;E9R?wa?fO(Sf3o`-QvvAO!eF4zE5$0nolG0owC3 zKzjiO+QW{#SJ1xZWOW8;UxR`6q9oA1?xI2a`Xta^k^4 zrg%m1wql!NlVY>tWyMy-i;6cCFDMeAy)psXtFnUjO&0*|n=#N{4WNCCP16TxuT6mV zx(v`>KhSVoKiB}Ey?%%RKzsc#!+HI11Az8=0PPJapuO=TK>OAV(7r7Rw6|sj?d=KB z-l=NGL3`ImH-Pq@Q|=rOfcEZO&w2M?&uKRf+I!MKdv9xJ2528R7m_4G!9i=GA2Z z?du0O^a9$~PiyD{w68xS0nlCwpuGeG?PW=zeIpLq%j1nWXfN*tv{&Guy)p^3S7D%i z6As!p18A>K1MOQd&|cFAXs=BI?R6MvuTKH(4GGZRcoCp|YgwC+odvXSO9Sn#0NUF! zKzn-{Xz#>9`*r~BT^9w~d(uFAudTBe&^`d5y&6FKP(}1`7Y^FTGC=#{oa$dmDWE+W zK>LzE1=^R5D$feqQ!8mnpnXLWXivvLdqx7ZXJ&x*tORJ!PJs560NQiTR!-tzpnYWx z=hw>7oZl-k(4GUJJ@=wO`zkUIK>Ml`(4L-q(>Z%6~}r5I>0!$JGTUO;rfMb_N^J9eH#wiTLHAU^#R)3`vC2oSwZ`D477K3xsyP9&p_{Qo;+{dgMs$m4A9<} z0@`<80JIOh7t8?dLjc-`G0;9{EX)ep7pH;tC^ z*{06|+Fv$Z^~<>lemVE7FXt9>5@>(fb%gr_?f*Y-;9k!C)?PvT%b-1aId?OYK>N$C z`FJ_^3NPo@UIu7?8Fk{4K>N$CadtWPxl%y;%d9PRId_qgK>N$C>2o>vXfEfL%H`Yv RxttpomvevNf2SSr{{U;nr7i#f diff --git a/lib/iconv/ccs/binary/cns11643_plane14.cct b/lib/iconv/ccs/binary/cns11643_plane14.cct deleted file mode 100644 index bdd01f47cea5fb246886a8e097eb4347399ab741..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 217604 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